aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/3proxy/3proxy.initd29
-rw-r--r--testing/3proxy/APKBUILD13
-rw-r--r--testing/6cord/6cord.post-install4
-rw-r--r--testing/6cord/APKBUILD27
-rw-r--r--testing/9base/APKBUILD25
-rw-r--r--testing/9base/config.mk.riscv6424
-rw-r--r--testing/9base/riscv64.patch13
-rw-r--r--testing/a2jmidid/APKBUILD31
-rw-r--r--testing/a2jmidid/check-for-libc-backtrace.patch34
-rw-r--r--testing/a2jmidid/riscv.patch12
-rw-r--r--testing/abc/APKBUILD29
-rw-r--r--testing/ace-of-penguins/APKBUILD74
-rw-r--r--testing/ace-of-penguins/ace.patch76
-rw-r--r--testing/ace-of-penguins/canfield.desktop9
-rw-r--r--testing/ace-of-penguins/fix-font.patch24
-rw-r--r--testing/ace-of-penguins/freecell.desktop9
-rw-r--r--testing/ace-of-penguins/golf.desktop9
-rw-r--r--testing/ace-of-penguins/mastermind.desktop9
-rw-r--r--testing/ace-of-penguins/merlin.desktop9
-rw-r--r--testing/ace-of-penguins/minesweeper.desktop9
-rw-r--r--testing/ace-of-penguins/pegged.desktop9
-rw-r--r--testing/ace-of-penguins/penguins.desktop9
-rw-r--r--testing/ace-of-penguins/solitaire.desktop9
-rw-r--r--testing/ace-of-penguins/spider.desktop9
-rw-r--r--testing/ace-of-penguins/taipei-editor.desktop9
-rw-r--r--testing/ace-of-penguins/taipei.desktop9
-rw-r--r--testing/ace-of-penguins/thornq.desktop9
-rw-r--r--testing/acme-redirect/APKBUILD64
-rw-r--r--testing/acme-redirect/acme-redirect.pre-install6
-rw-r--r--testing/acme-tiny/APKBUILD36
-rw-r--r--testing/acmetool/APKBUILD59
-rw-r--r--testing/acmetool/glide.lock114
-rw-r--r--testing/acmetool/glide.yaml41
-rw-r--r--testing/acmetool/go.mod44
-rw-r--r--testing/acmetool/go.sum85
-rw-r--r--testing/actionlint/APKBUILD38
-rw-r--r--testing/adjtimex/10-Makefile.patch35
-rw-r--r--testing/adjtimex/APKBUILD33
-rw-r--r--testing/admesh/APKBUILD29
-rw-r--r--testing/advancemame/APKBUILD62
-rw-r--r--testing/advancemame/formatsec.patch13
-rw-r--r--testing/advancescan/0001-cpp17-throw.patch276
-rw-r--r--testing/advancescan/APKBUILD27
-rw-r--r--testing/adwaita-qt/APKBUILD33
-rw-r--r--testing/aercbook/0001-zig-0.12-std.ChildProcess.exec-run.patch23
-rw-r--r--testing/aercbook/0002-zig-0.12-convert-some-vars-to-consts.patch55
-rw-r--r--testing/aercbook/APKBUILD35
-rw-r--r--testing/aero2solver/APKBUILD64
-rwxr-xr-xtesting/aero2solver/aero2solver.confd14
-rwxr-xr-xtesting/aero2solver/aero2solver.initd27
-rw-r--r--testing/aero2solver/aero2solver.logrotate5
-rwxr-xr-xtesting/aero2solver/aero2solver.pre-install6
-rw-r--r--testing/afetch/APKBUILD25
-rw-r--r--testing/agate/APKBUILD44
-rw-r--r--testing/agate/agate.confd8
-rw-r--r--testing/agate/agate.initd21
-rw-r--r--testing/agate/agate.pre-install6
-rw-r--r--testing/age/APKBUILD44
-rw-r--r--testing/agg/APKBUILD5
-rw-r--r--testing/aide/APKBUILD42
-rw-r--r--testing/airsonic-advanced/APKBUILD48
-rw-r--r--testing/airsonic-advanced/airsonic-advanced.initd14
-rw-r--r--testing/airsonic-advanced/airsonic-advanced.pre-install6
-rw-r--r--testing/airsonic-advanced/maven.patch8
-rw-r--r--testing/alarmwakeup/APKBUILD43
-rw-r--r--testing/alda/APKBUILD47
-rw-r--r--testing/alda/alda-player3
-rw-r--r--testing/allegro/APKBUILD30
-rw-r--r--testing/alpine-lift/APKBUILD36
-rw-r--r--testing/alpine-lift/makefile.patch13
-rw-r--r--testing/alps/APKBUILD45
-rw-r--r--testing/alps/alps.confd11
-rw-r--r--testing/alps/alps.initd23
-rw-r--r--testing/alps/alps.pre-install6
-rw-r--r--testing/alps/fix-statics-dir.patch26
-rw-r--r--testing/alsa-ucm-conf-asahi/APKBUILD20
-rw-r--r--testing/alttab/0001-Fix-memleaks-in-error-case.patch41
-rw-r--r--testing/alttab/0002-Remove-check-around-free.patch27
-rw-r--r--testing/alttab/APKBUILD16
-rw-r--r--testing/amazon-ssm-agent/001_sanitize_makefile.patch74
-rw-r--r--testing/amazon-ssm-agent/APKBUILD58
-rw-r--r--testing/amazon-ssm-agent/amazon-ssm-agent.initd21
-rw-r--r--testing/amdgpu-fan/APKBUILD36
-rw-r--r--testing/ameba/APKBUILD31
-rw-r--r--testing/amiitool/APKBUILD10
-rw-r--r--testing/amiitool/zero-gitversion.patch15
-rw-r--r--testing/ampy/APKBUILD39
-rw-r--r--testing/amule/APKBUILD64
-rw-r--r--testing/amule/fix-gcc11-include.patch10
-rw-r--r--testing/anarch/APKBUILD28
-rw-r--r--testing/anari-sdk/APKBUILD64
-rw-r--r--testing/anbox/APKBUILD120
-rw-r--r--testing/anbox/anbox-container-manager.initd38
-rw-r--r--testing/anbox/anbox-launch.sh23
-rw-r--r--testing/anbox/anbox.confd8
-rw-r--r--testing/anbox/anbox.desktop9
-rw-r--r--testing/anbox/anbox.post-install11
-rw-r--r--testing/anbox/fix-gtest-use.patch47
-rw-r--r--testing/anbox/give-more-time-to-start.patch13
-rw-r--r--testing/anbox/musl-fixes.patch26
-rw-r--r--testing/android-apkeep/APKBUILD50
-rw-r--r--testing/android-apktool/APKBUILD26
-rw-r--r--testing/android-apktool/apktool3
-rw-r--r--testing/android-file-transfer/APKBUILD46
-rw-r--r--testing/android-tools/APKBUILD32
-rw-r--r--testing/android-translation-layer/APKBUILD48
-rw-r--r--testing/angband/APKBUILD54
-rw-r--r--testing/animatch/APKBUILD46
-rw-r--r--testing/anki/APKBUILD155
-rw-r--r--testing/anki/disable-git-checks.patch30
-rw-r--r--testing/anki/dprint-update-for-musl-aarch64.patch11
-rw-r--r--testing/anki/no-update.patch13
-rw-r--r--testing/anki/strip-formatter-deps.patch9
-rw-r--r--testing/anki/strip-type-checking-deps.patch23
-rw-r--r--testing/ansible-bender/APKBUILD48
-rw-r--r--testing/ansiweather/APKBUILD25
-rw-r--r--testing/anthy/APKBUILD55
-rw-r--r--testing/antibody/APKBUILD34
-rw-r--r--testing/apache-mod-auth-gssapi/APKBUILD44
-rw-r--r--testing/apache-mod-auth-gssapi/mod-auth-gssapi.conf19
-rw-r--r--testing/apache-mod-auth-openidc/APKBUILD61
-rw-r--r--testing/apache2-mod-perl/APKBUILD11
-rw-r--r--testing/aparte/APKBUILD41
-rw-r--r--testing/apk-autoupdate/APKBUILD10
-rw-r--r--testing/apk-snap/APKBUILD32
-rwxr-xr-xtesting/apk-snap/apk-snap.post-deinstall36
-rwxr-xr-xtesting/apk-snap/apk-snap.post-install46
-rwxr-xr-xtesting/apk-snap/apk-snap.post-upgrade46
-rw-r--r--testing/apk-tools3/APKBUILD85
-rw-r--r--testing/apmpkg/APKBUILD58
-rw-r--r--testing/apmpkg/fix-with-outdated-rust.patch22
-rw-r--r--testing/apollo/APKBUILD33
-rw-r--r--testing/apollo/apollo.initd26
-rw-r--r--testing/aports-ghpr/APKBUILD33
-rw-r--r--testing/aports-ghpr/add-toml-file.patch6
-rw-r--r--testing/aports-glmr/APKBUILD31
-rw-r--r--testing/apostrophe/APKBUILD57
-rw-r--r--testing/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch40
-rw-r--r--testing/apparmor/0002-utils-remove-vim-from-the-default-build.patch46
-rw-r--r--testing/apparmor/0003-parser-remove-specific-tests-for-rttime.patch73
-rw-r--r--testing/apparmor/0004-parser-remove-specific-tests-for-ofile.patch28
-rw-r--r--testing/apparmor/0005-utils-adjust-tests-to-match-the-Alpine-layout.patch38
-rw-r--r--testing/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch28
-rw-r--r--testing/apparmor/0007-Remove-Locale-gettext-from-parser-tests.patch39
-rw-r--r--testing/apparmor/0008-Fix-profile-loading-in-busybox.patch27
-rw-r--r--testing/apparmor/0009-ensure-make-apparmor_parser-is-cached.patch135
-rw-r--r--testing/apparmor/0010-Revert-utils-test-network.py-fix-failing-testcase.patch26
-rw-r--r--testing/apparmor/0011-Generate-CAPABILITIES-in-a-script-due-to-make-4.3.patch104
-rw-r--r--testing/apparmor/APKBUILD234
-rw-r--r--testing/apparmor/apparmor.initd91
-rw-r--r--testing/apprise/APKBUILD40
-rw-r--r--testing/appstream-generator/APKBUILD36
-rw-r--r--testing/apt-dater/APKBUILD4
-rw-r--r--testing/apt-mirror/APKBUILD23
-rw-r--r--testing/aptdec/APKBUILD52
-rw-r--r--testing/aptdec/soname-dynlink.patch37
-rw-r--r--testing/apulse/APKBUILD32
-rw-r--r--testing/aqemu/APKBUILD42
-rw-r--r--testing/aqemu/appdata.patch13
-rw-r--r--testing/aqemu/fix-includes.patch10
-rw-r--r--testing/aqemu/fix-qt-segfault.patch121
-rw-r--r--testing/aravis/APKBUILD58
-rw-r--r--testing/aravis/aravis-0.8.22.patch40
-rw-r--r--testing/arc-icon-theme/APKBUILD32
-rw-r--r--testing/arc-theme/APKBUILD299
-rw-r--r--testing/arcanist/APKBUILD49
-rw-r--r--testing/arcticons-icon-theme/APKBUILD35
-rw-r--r--testing/ardour/APKBUILD84
-rw-r--r--testing/arj/APKBUILD52
-rw-r--r--testing/armadillo/APKBUILD40
-rw-r--r--testing/armagetronad/APKBUILD20
-rw-r--r--testing/arp-scan/APKBUILD37
-rw-r--r--testing/art_standalone/APKBUILD77
-rw-r--r--testing/artifactory-oss/APKBUILD101
-rw-r--r--testing/artifactory-oss/artifactory-oss.post-install7
-rw-r--r--testing/artifactory-oss/artifactory-oss.pre-install6
-rw-r--r--testing/artifactory-oss/artifactory.confd44
-rw-r--r--testing/asahi-audio/APKBUILD31
-rw-r--r--testing/asahi-fwextract/APKBUILD26
-rw-r--r--testing/asahi-scripts/APKBUILD28
-rw-r--r--testing/asciinema-rs/APKBUILD22
-rw-r--r--testing/asciinema-rs/openssl3.patch2546
-rw-r--r--testing/aspell-es/APKBUILD29
-rw-r--r--testing/assimp/01-rm-revision-test.patch14
-rw-r--r--testing/assimp/02-fix-ssize-32bit.patch40
-rw-r--r--testing/assimp/APKBUILD45
-rw-r--r--testing/asteroid-alarmclock/APKBUILD46
-rw-r--r--testing/asteroid-btsyncd/APKBUILD49
-rw-r--r--testing/asteroid-btsyncd/asteroid-btsyncd.desktop7
-rw-r--r--testing/asteroid-calculator/APKBUILD40
-rw-r--r--testing/asteroid-calendar/APKBUILD43
-rw-r--r--testing/asteroid-camera/APKBUILD38
-rw-r--r--testing/asteroid-compass/APKBUILD41
-rw-r--r--testing/asteroid-diamonds/APKBUILD39
-rw-r--r--testing/asteroid-flashlight/APKBUILD42
-rw-r--r--testing/asteroid-hrm/APKBUILD41
-rw-r--r--testing/asteroid-icons-ion/APKBUILD25
-rw-r--r--testing/asteroid-languages/APKBUILD27
-rw-r--r--testing/asteroid-launcher/APKBUILD66
-rw-r--r--testing/asteroid-music/APKBUILD39
-rw-r--r--testing/asteroid-settings/APKBUILD48
-rw-r--r--testing/asteroid-stopwatch/APKBUILD38
-rw-r--r--testing/asteroid-timer/APKBUILD41
-rw-r--r--testing/asteroid-wallpapers/APKBUILD25
-rw-r--r--testing/asteroid-weather/APKBUILD41
-rw-r--r--testing/asymptote/APKBUILD18
-rw-r--r--testing/asymptote/fix-nullopt-not-declared.patch14
-rw-r--r--testing/async-profiler/APKBUILD40
-rw-r--r--testing/async-profiler/thread-smoke-test_should_do_some_real_work.patch32
-rw-r--r--testing/atari800/APKBUILD16
-rw-r--r--testing/atinout/0001-make-gcc-happy-by-adding-fallthrough-comment.patch25
-rw-r--r--testing/atinout/0002-do-not-rely-on-CR-in-modem-output.patch84
-rw-r--r--testing/atinout/APKBUILD25
-rw-r--r--testing/atlantik/APKBUILD53
-rw-r--r--testing/atlas/APKBUILD53
-rw-r--r--testing/atomicparsley/APKBUILD39
-rw-r--r--testing/atomicparsley/musl-fpos_t.patch24
-rw-r--r--testing/atool/APKBUILD2
-rw-r--r--testing/aubio/APKBUILD28
-rw-r--r--testing/aufs-util/APKBUILD6
-rw-r--r--testing/ausweisapp2/APKBUILD33
-rw-r--r--testing/authenticator-rs/APKBUILD37
-rw-r--r--testing/autobrr/APKBUILD58
-rw-r--r--testing/autobrr/autobrr.confd9
-rw-r--r--testing/autobrr/autobrr.initd22
-rw-r--r--testing/autobrr/autobrr.pre-install6
-rw-r--r--testing/autoconf-policy/APKBUILD16
-rw-r--r--testing/autocutsel/APKBUILD26
-rw-r--r--testing/autofs/10-glibc.patch120
-rw-r--r--testing/autofs/APKBUILD62
-rw-r--r--testing/autofs/autofs.confd7
-rw-r--r--testing/autofs/autofs.initd14
-rw-r--r--testing/autofs/pid_t.patch14
-rw-r--r--testing/autorandr/APKBUILD51
-rw-r--r--testing/autorestic/APKBUILD31
-rw-r--r--testing/autoscan/APKBUILD50
-rw-r--r--testing/autoscan/autoscan.confd6
-rw-r--r--testing/autoscan/autoscan.initd29
-rw-r--r--testing/autoscan/autoscan.pre-install6
-rw-r--r--testing/autotrash/APKBUILD29
-rw-r--r--testing/avara/APKBUILD51
-rw-r--r--testing/avara/avara2
-rw-r--r--testing/avara/nullptr.patch17
-rw-r--r--testing/avarice/APKBUILD36
-rw-r--r--testing/avarice/drop_keyword_unused.patch41
-rw-r--r--testing/avdl/APKBUILD29
-rw-r--r--testing/avida/APKBUILD19
-rw-r--r--testing/avida/musl123.patch13
-rw-r--r--testing/avr-libc-git/APKBUILD41
-rw-r--r--testing/avra/APKBUILD27
-rw-r--r--testing/aws-session-manager-plugin/001_correct_makefile.patch50
-rw-r--r--testing/aws-session-manager-plugin/APKBUILD56
-rw-r--r--testing/aws-session-manager-plugin/session-manager-plugin.initd20
-rw-r--r--testing/aws-session-manager-plugin/ssmcli.initd20
-rw-r--r--testing/awscli-plugin-endpoint/APKBUILD28
-rw-r--r--testing/awslogs/APKBUILD26
-rw-r--r--testing/azorius/APKBUILD74
-rw-r--r--testing/azorius/azorius.confd16
-rw-r--r--testing/azorius/azorius.initd94
-rw-r--r--testing/azorius/azorius.pre-install11
-rw-r--r--testing/azorius/upgradedb.patch11
-rw-r--r--testing/azote/APKBUILD44
-rw-r--r--testing/azpainter/APKBUILD37
-rw-r--r--testing/azure-iot-sdk-c-static/001-c-utility.patch13
-rw-r--r--testing/azure-iot-sdk-c-static/APKBUILD66
-rw-r--r--testing/b2sum/APKBUILD4
-rw-r--r--testing/b3sum/APKBUILD30
-rw-r--r--testing/b4/APKBUILD32
-rw-r--r--testing/babashka/APKBUILD76
-rw-r--r--testing/babeltrace/APKBUILD40
-rw-r--r--testing/backup-manager/APKBUILD2
-rw-r--r--testing/baculum/APKBUILD140
-rw-r--r--testing/baculum/fix-missing-common-pages.patch12
-rw-r--r--testing/badwolf/APKBUILD25
-rw-r--r--testing/baikal/APKBUILD69
-rw-r--r--testing/baikal/baikal_sqlite.post-install10
-rw-r--r--testing/bake/01-no-backtrace-on-musl.patch11
-rw-r--r--testing/bake/APKBUILD29
-rw-r--r--testing/bakelite/APKBUILD23
-rw-r--r--testing/bananui-clock/APKBUILD34
-rw-r--r--testing/bananui-daemons/APKBUILD33
-rw-r--r--testing/bananui-shell/APKBUILD43
-rw-r--r--testing/bananui/APKBUILD60
-rw-r--r--testing/bankstown-lv2/APKBUILD28
-rw-r--r--testing/barcode/APKBUILD39
-rw-r--r--testing/barcode/common.patch25
-rw-r--r--testing/barman/APKBUILD45
-rwxr-xr-xtesting/barman/barman.pre-install4
-rw-r--r--testing/barnyard2/APKBUILD7
-rw-r--r--testing/barrier/0001-cstddef.patch24
-rw-r--r--testing/barrier/APKBUILD59
-rw-r--r--testing/bartib/APKBUILD34
-rw-r--r--testing/base64c/APKBUILD47
-rw-r--r--testing/base64c/no-valgrind.patch26
-rw-r--r--testing/bat/APKBUILD35
-rw-r--r--testing/bazel/APKBUILD97
-rw-r--r--testing/bazel/bash_completion.patch13
-rw-r--r--testing/bazel/python3.patch36
-rw-r--r--testing/bazel5/0001-Do-not-use-prebuilt-binaries.patch35
-rw-r--r--testing/bazel5/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch75
-rw-r--r--testing/bazel5/0003-Make-generate_bash_completion-compatible-with-busybo.patch28
-rw-r--r--testing/bazel5/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch34
-rw-r--r--testing/bazel5/APKBUILD70
-rw-r--r--testing/bazel6/0001-Do-not-use-prebuilt-binaries.patch20
-rw-r--r--testing/bazel6/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch61
-rw-r--r--testing/bazel6/0003-Make-generate_bash_completion-compatible-with-busybo.patch13
-rw-r--r--testing/bazel6/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch22
-rw-r--r--testing/bazel6/APKBUILD68
-rw-r--r--testing/bcg729/APKBUILD31
-rw-r--r--testing/bchunk/APKBUILD6
-rw-r--r--testing/bcnm/APKBUILD13
-rw-r--r--testing/bdfr/APKBUILD45
-rw-r--r--testing/beancount-language-server/APKBUILD30
-rw-r--r--testing/beard/APKBUILD6
-rw-r--r--testing/bees/10-pthread_getname1.patch36
-rw-r--r--testing/bees/APKBUILD27
-rw-r--r--testing/bees/no-werror.patch11
-rw-r--r--testing/bees/ppc64le_fix_min_compare.patch11
-rw-r--r--testing/belcard/APKBUILD35
-rw-r--r--testing/belcard/fix-cmake-path.patch13
-rw-r--r--testing/belle-sip/APKBUILD34
-rw-r--r--testing/belr/APKBUILD25
-rw-r--r--testing/bemenu/APKBUILD25
-rw-r--r--testing/berry-lang/APKBUILD31
-rw-r--r--testing/bestline/APKBUILD31
-rw-r--r--testing/bettercap/APKBUILD37
-rw-r--r--testing/betula/APKBUILD52
-rw-r--r--testing/betula/betula.confd3
-rw-r--r--testing/betula/betula.initd18
-rw-r--r--testing/betula/betula.pre-install9
-rw-r--r--testing/bfs/APKBUILD28
-rw-r--r--testing/bgpq4/APKBUILD34
-rw-r--r--testing/bgs/APKBUILD2
-rw-r--r--testing/bindfs/APKBUILD40
-rw-r--r--testing/bindfs/musl-getmntent-issue.patch18
-rw-r--r--testing/binutils-cross-embedded/APKBUILD101
-rw-r--r--testing/binwalk/APKBUILD18
-rw-r--r--testing/biome/APKBUILD42
-rw-r--r--testing/biometryd/0001-Add-missing-headers-for-gcc-13.patch37
-rw-r--r--testing/biometryd/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch125
-rw-r--r--testing/biometryd/0004-disable_flaky_test.patch13
-rw-r--r--testing/biometryd/0005-add-missing-types-header.patch24
-rw-r--r--testing/biometryd/0006-direct-path-to-qmlplugindump.patch25
-rw-r--r--testing/biometryd/APKBUILD65
-rw-r--r--testing/bionic_translation/APKBUILD39
-rw-r--r--testing/bird/APKBUILD43
-rw-r--r--testing/bird/bird-make-test-bsprintf.patch20
-rw-r--r--testing/bird/bird.initd52
-rw-r--r--testing/birdtray/APKBUILD31
-rw-r--r--testing/bitlbee-facebook/APKBUILD15
-rw-r--r--testing/bitlbee-mastodon/APKBUILD10
-rw-r--r--testing/bitritter/APKBUILD53
-rw-r--r--testing/bitritter/bitritter.desktop12
-rw-r--r--testing/black/APKBUILD29
-rw-r--r--testing/blackbox/APKBUILD6
-rw-r--r--testing/blender/APKBUILD118
-rw-r--r--testing/blender/musl-fixes.patch78
-rw-r--r--testing/blender/openimageio-lib.patch13
-rw-r--r--testing/blender/python-3.8.patch49
-rw-r--r--testing/bliss/APKBUILD36
-rw-r--r--testing/bluez-alsa/APKBUILD45
-rwxr-xr-xtesting/bluez-alsa/bluealsa.initd7
-rw-r--r--testing/bm818-tools/APKBUILD47
-rw-r--r--testing/boa-cli/APKBUILD38
-rw-r--r--testing/bobcat/APKBUILD12
-rw-r--r--testing/boinc/APKBUILD80
-rw-r--r--testing/bonzomatic/APKBUILD39
-rw-r--r--testing/bootinfo/APKBUILD29
-rw-r--r--testing/bootloose/APKBUILD31
-rw-r--r--testing/bootterm/APKBUILD23
-rw-r--r--testing/bordeaux/APKBUILD73
-rw-r--r--testing/bordeaux/bordeaux.confd9
-rw-r--r--testing/bordeaux/bordeaux.initd27
-rw-r--r--testing/bore/APKBUILD36
-rw-r--r--testing/borgmatic/APKBUILD28
-rw-r--r--testing/boson/APKBUILD25
-rw-r--r--testing/boxed-cpp/APKBUILD35
-rw-r--r--testing/boxes/APKBUILD19
-rw-r--r--testing/boxes/fix-test.patch36
-rw-r--r--testing/brial/APKBUILD36
-rw-r--r--testing/brltty/APKBUILD15
-rw-r--r--testing/broot/APKBUILD27
-rw-r--r--testing/btcd/APKBUILD39
-rw-r--r--testing/btfs/APKBUILD12
-rw-r--r--testing/btpd/APKBUILD6
-rw-r--r--testing/buf/APKBUILD73
-rw-r--r--testing/buildah/APKBUILD24
-rw-r--r--testing/buildcache/APKBUILD40
-rw-r--r--testing/buildcache/include-cstdint.patch20
-rw-r--r--testing/buku/APKBUILD32
-rw-r--r--testing/bullet/APKBUILD63
-rw-r--r--testing/bump2version/APKBUILD29
-rw-r--r--testing/burp/APKBUILD28
-rw-r--r--testing/butane/APKBUILD28
-rw-r--r--testing/bwrap-oci/APKBUILD2
-rw-r--r--testing/c2rust/0001-link-clang-dynamic.patch232
-rw-r--r--testing/c2rust/0002-use-system-tinycbor.patch64
-rw-r--r--testing/c2rust/APKBUILD80
-rw-r--r--testing/c2rust/df42b55eae9ecfd4380004a513a10526ef8776cf.patch183
-rw-r--r--testing/cachefilesd-inotify/APKBUILD33
-rw-r--r--testing/cachefilesd-inotify/cachefilesd.initd53
-rw-r--r--testing/cadence/APKBUILD43
-rw-r--r--testing/caffeine-ng/APKBUILD53
-rw-r--r--testing/caffeine-ng/mandir.patch13
-rw-r--r--testing/calf/APKBUILD49
-rw-r--r--testing/calibre/0001-calibre-no-update.patch25
-rw-r--r--testing/calibre/APKBUILD115
-rw-r--r--testing/capnproto/APKBUILD43
-rw-r--r--testing/caps2esc/APKBUILD37
-rw-r--r--testing/carapace/APKBUILD40
-rw-r--r--testing/care/10-tests-musl-compat.patch26
-rw-r--r--testing/care/APKBUILD46
-rw-r--r--testing/cargo-crev/APKBUILD39
-rw-r--r--testing/cargo-crev/use-index-guix-from-crates.io.patch38
-rw-r--r--testing/cargo-generate/APKBUILD47
-rw-r--r--testing/cargo-generate/remove-cargo-husky.patch53
-rw-r--r--testing/cargo-leptos/APKBUILD44
-rw-r--r--testing/cargo-machete/APKBUILD40
-rw-r--r--testing/cargo-run-bin/APKBUILD41
-rw-r--r--testing/cargo-shuttle/APKBUILD49
-rw-r--r--testing/cargo-sort/APKBUILD38
-rw-r--r--testing/cargo-update/APKBUILD51
-rw-r--r--testing/cargo-vendor-filterer/APKBUILD37
-rw-r--r--testing/castero/APKBUILD45
-rw-r--r--testing/castor/APKBUILD29
-rw-r--r--testing/catatonit/APKBUILD30
-rw-r--r--testing/catatonit/fix-undeclared-identifier.patch13
-rw-r--r--testing/catcodec/APKBUILD30
-rw-r--r--testing/catdoc/APKBUILD28
-rw-r--r--testing/catfish/APKBUILD50
-rw-r--r--testing/catimg/APKBUILD31
-rw-r--r--testing/cava/APKBUILD15
-rw-r--r--testing/cawbird/APKBUILD30
-rw-r--r--testing/ccrtp/APKBUILD32
-rw-r--r--testing/ccze/001-fix-autoconf.patch24
-rw-r--r--testing/ccze/002-fix-error_t.patch41
-rw-r--r--testing/ccze/APKBUILD45
-rw-r--r--testing/cdba/APKBUILD50
-rw-r--r--testing/cddlib/APKBUILD45
-rw-r--r--testing/cdist/APKBUILD36
-rw-r--r--testing/cdogs-sdl/APKBUILD39
-rw-r--r--testing/cdogs-sdl/no-werror.patch13
-rw-r--r--testing/cdrdao/APKBUILD36
-rw-r--r--testing/celery/APKBUILD46
-rw-r--r--testing/celery/celery.confd4
-rw-r--r--testing/celery/celery.initd16
-rw-r--r--testing/celery/celery.pre-install7
-rw-r--r--testing/cemu/APKBUILD107
-rw-r--r--testing/cemu/cmake-fixes.patch21
-rw-r--r--testing/cemu/execinfo.patch42
-rw-r--r--testing/certbot-dns-njalla/APKBUILD38
-rw-r--r--testing/certigo/APKBUILD32
-rw-r--r--testing/certstrap/APKBUILD37
-rw-r--r--testing/cfssl/APKBUILD43
-rw-r--r--testing/cgal/APKBUILD29
-rw-r--r--testing/cgiirc/APKBUILD6
-rw-r--r--testing/cgiirc/cgiirc.post-install43
-rw-r--r--testing/cglm/APKBUILD40
-rw-r--r--testing/cgo/APKBUILD23
-rw-r--r--testing/chamo/APKBUILD95
-rw-r--r--testing/charls/APKBUILD34
-rw-r--r--testing/checkpolicy/APKBUILD11
-rw-r--r--testing/cherrytree/APKBUILD68
-rw-r--r--testing/chez-scheme/APKBUILD46
-rw-r--r--testing/chez-scheme/remove-xlocale.patch11
-rw-r--r--testing/chiaki/APKBUILD32
-rw-r--r--testing/chicago95/APKBUILD38
-rw-r--r--testing/chim/APKBUILD42
-rw-r--r--testing/chocolate-doom/10-remove-redundant-demoextend-definition.patch25
-rw-r--r--testing/chocolate-doom/APKBUILD24
-rw-r--r--testing/cilium-cli/APKBUILD48
-rw-r--r--testing/cimg/APKBUILD21
-rw-r--r--testing/cinny-web/APKBUILD35
-rw-r--r--testing/cinny/0001-disable-tauri-updater.patch25
-rw-r--r--testing/cinny/APKBUILD83
-rw-r--r--testing/cinny/cinny.desktop13
-rw-r--r--testing/cinny/in.cinny.Cinny.appdata.xml.in59
-rw-r--r--testing/circuslinux/APKBUILD54
-rw-r--r--testing/circuslinux/circuslinux-icon.xpm49
-rw-r--r--testing/circuslinux/circuslinux.desktop14
-rw-r--r--testing/cjose/APKBUILD44
-rw-r--r--testing/ckb-next/983.patch19
-rw-r--r--testing/ckb-next/APKBUILD63
-rw-r--r--testing/clapper/APKBUILD36
-rw-r--r--testing/clatd/APKBUILD27
-rw-r--r--testing/clementine/APKBUILD76
-rw-r--r--testing/clementine/cxx17.patch73
-rw-r--r--testing/clevis-extra-pins/APKBUILD26
-rw-r--r--testing/clevis/APKBUILD46
-rw-r--r--testing/click/0001-configure.ac-fix-building-against-BusyBox-sed.patch34
-rw-r--r--testing/click/APKBUILD64
-rw-r--r--testing/clinfo/APKBUILD25
-rw-r--r--testing/cliphist/APKBUILD37
-rw-r--r--testing/clipit/APKBUILD32
-rw-r--r--testing/clipman/APKBUILD24
-rw-r--r--testing/cliquer/APKBUILD44
-rw-r--r--testing/clisp/APKBUILD42
-rw-r--r--testing/clisp/no-page.h.patch12
-rw-r--r--testing/cln/APKBUILD43
-rwxr-xr-xtesting/clojure/APKBUILD30
-rw-r--r--testing/clojure/clojure3
-rw-r--r--testing/closure-compiler/APKBUILD32
-rw-r--r--testing/closure-compiler/closure-compiler4
-rw-r--r--testing/cloud-hypervisor/APKBUILD37
-rw-r--r--testing/cloud-init/APKBUILD60
-rw-r--r--testing/cloud-init/add_distro-alpine.patch10
-rw-r--r--testing/cloud-init/alpine.py205
-rw-r--r--testing/cloud-init/cloud.cfg76
-rw-r--r--testing/cloud-init/hosts.alpine.tmpl23
-rwxr-xr-xtesting/cloud-utils/APKBUILD27
-rw-r--r--testing/cloudflare-ddns/APKBUILD22
-rw-r--r--testing/cloudflared/APKBUILD64
-rw-r--r--testing/cloudflared/cloudflared.confd1
-rw-r--r--testing/cloudflared/cloudflared.initd12
-rw-r--r--testing/cloudflared/cloudflared.pre-install6
-rw-r--r--testing/cloudflared/config.yml3
-rw-r--r--testing/cloudflared/goflags.patch13
-rw-r--r--testing/cloudfoundry-cli/APKBUILD30
-rw-r--r--testing/cloudfoundry-cli/fix-cgo.patch30
-rw-r--r--testing/cluster-glue/APKBUILD17
-rw-r--r--testing/cm256cc/APKBUILD46
-rw-r--r--testing/cmake-extras/APKBUILD29
-rw-r--r--testing/cmake-extras/Use_gtest_cmake_from_mir.patch171
-rw-r--r--testing/cmake-extras/qmlplugindump_path.patch13
-rw-r--r--testing/cmusfm/APKBUILD34
-rw-r--r--testing/cni-plugins/APKBUILD27
-rw-r--r--testing/coccinelle/APKBUILD69
-rw-r--r--testing/coccinelle/SCORE_expected.sexpbin17538 -> 0 bytes
-rw-r--r--testing/coccinelle/unit-test-score.binbin0 -> 18964 bytes
-rw-r--r--testing/cockroach/01_no_githooks.patch31
-rw-r--r--testing/cockroach/APKBUILD41
-rw-r--r--testing/cockroach/cockroach.confd1
-rw-r--r--testing/cockroach/cockroach.initd10
-rw-r--r--testing/cockroach/cockroach.pre-install6
-rw-r--r--testing/cocogitto/APKBUILD64
-rw-r--r--testing/code-oss/APKBUILD160
-rwxr-xr-xtesting/code-oss/code-oss.post-install10
-rw-r--r--testing/code-oss/electron21.patch125
-rw-r--r--testing/code-oss/enable-extensions.patch15
-rw-r--r--testing/code-oss/launcher7
-rw-r--r--testing/code-oss/no-git.patch11
-rw-r--r--testing/code-oss/no-res.patch.noauto15
-rw-r--r--testing/code-oss/no-source-maps.patch23
-rw-r--r--testing/code-oss/system-electron.patch.noauto16
-rw-r--r--testing/code-oss/webpack-hash.patch.noauto11
-rw-r--r--testing/codeberg-cli/APKBUILD47
-rw-r--r--testing/codemadness-frontends/APKBUILD37
-rw-r--r--testing/coin/APKBUILD36
-rw-r--r--testing/coin/TestSuitePatch.patch11
-rw-r--r--testing/colorpicker/APKBUILD24
-rw-r--r--testing/comics-downloader/APKBUILD41
-rw-r--r--testing/commoncpp/APKBUILD47
-rw-r--r--testing/compiz/APKBUILD107
-rw-r--r--testing/compiz/basename.patch25
-rw-r--r--testing/compiz/boost.patch27
-rw-r--r--testing/compiz/gtest.patch101
-rw-r--r--testing/compiz/libgen.patch12
-rw-r--r--testing/compiz/opengl.patch60
-rw-r--r--testing/compiz/protobuf.patch12
-rw-r--r--testing/compiz/startup-notification-long.patch19
-rw-r--r--testing/compton-conf/APKBUILD31
-rw-r--r--testing/conduit/APKBUILD59
-rw-r--r--testing/conduit/conduit.confd5
-rw-r--r--testing/conduit/conduit.initd18
-rw-r--r--testing/conduit/conduit.pre-install6
-rw-r--r--testing/conduit/conduit.toml60
-rw-r--r--testing/conduit/downgrade-rocksdb.patch1572
-rw-r--r--testing/conduit/system-sqlite.patch25
-rw-r--r--testing/confclerk/APKBUILD28
-rw-r--r--testing/confd/0001-add-file-backend-to-quick-start-guide-727.patch27
-rw-r--r--testing/confd/APKBUILD40
-rw-r--r--testing/conmon/APKBUILD25
-rw-r--r--testing/conntracct/APKBUILD51
-rw-r--r--testing/conntracct/conntracct.confd4
-rw-r--r--testing/conntracct/conntracct.initd13
-rw-r--r--testing/conntracct/conntracct.pre-install6
-rw-r--r--testing/conntracct/dont-run-setcap.patch20
-rw-r--r--testing/conntracct/fix-cgo.patch10
-rw-r--r--testing/consolation/APKBUILD34
-rw-r--r--testing/consolation/consolation.initd29
-rw-r--r--testing/console_bridge/APKBUILD6
-rw-r--r--testing/consul-replicate/APKBUILD21
-rw-r--r--testing/consul/APKBUILD72
-rw-r--r--testing/consul/acl.json.sample8
-rw-r--r--testing/consul/consul.confd2
-rw-r--r--testing/consul/consul.initd48
-rw-r--r--testing/consul/consul.pre-install7
-rw-r--r--testing/consul/encrypt.json.sample5
-rw-r--r--testing/consul/server.json8
-rw-r--r--testing/consul/tls.json.sample8
-rw-r--r--testing/contour/APKBUILD82
-rw-r--r--testing/contour/libunicode-fix-catch-in-cmake.patch19
-rw-r--r--testing/convert2json/APKBUILD41
-rw-r--r--testing/copyq/APKBUILD41
-rw-r--r--testing/coq/APKBUILD81
-rw-r--r--testing/coreboot-tools/APKBUILD74
-rw-r--r--testing/corectrl/APKBUILD63
-rw-r--r--testing/coredns/APKBUILD41
-rw-r--r--testing/coredns/coredns.confd4
-rw-r--r--testing/coredns/coredns.initd13
-rw-r--r--testing/coredns/coredns.pre-install6
-rw-r--r--testing/corkscrew/APKBUILD54
-rw-r--r--testing/corkscrew/corkscrew-2.0-from-debian-readme.patch20
-rw-r--r--testing/corkscrew/corkscrew-2.0-typo.patch11
-rw-r--r--testing/corkscrew/corkscrew.197
-rw-r--r--testing/cosmopolitan/APKBUILD52
-rw-r--r--testing/cosmopolitan/no-clang-test.patch12
-rw-r--r--testing/coventry/APKBUILD49
-rw-r--r--testing/coventry/coventry.initd26
-rw-r--r--testing/cowsay/APKBUILD23
-rw-r--r--testing/cowsay/cowsay.patch27
-rw-r--r--testing/coxeter/APKBUILD49
-rw-r--r--testing/coxeter/add-sagemath-interface.patch101
-rw-r--r--testing/coxeter/makefile12
-rw-r--r--testing/coxeter/test-input9
-rw-r--r--testing/coxeter/test-output13
-rw-r--r--testing/cozy/APKBUILD58
-rw-r--r--testing/cozy/fix-legacy-version.patch76
-rw-r--r--testing/cpd/APKBUILD30
-rw-r--r--testing/cpiped/APKBUILD2
-rw-r--r--testing/cpplint/APKBUILD42
-rw-r--r--testing/cppzmq/APKBUILD37
-rw-r--r--testing/cproc/APKBUILD35
-rw-r--r--testing/cpu-x/APKBUILD64
-rw-r--r--testing/cpu-x/no-bracktrace.patch41
-rw-r--r--testing/cpuburn/APKBUILD77
-rw-r--r--testing/cpuburn/cpuburn-1.4a-variables.patch40
-rw-r--r--testing/cpufetch/APKBUILD26
-rw-r--r--testing/crazydiskinfo/APKBUILD38
-rw-r--r--testing/crazydiskinfo/disable-linking-tinfow.patch15
-rw-r--r--testing/crda/01-Makefile-dont-run-ldconfig.patch10
-rw-r--r--testing/crda/APKBUILD34
-rw-r--r--testing/create-tauri-app/APKBUILD43
-rw-r--r--testing/createrepo_c/APKBUILD64
-rw-r--r--testing/createrepo_c/no-bash.patch10
-rw-r--r--testing/creduce/204.patch79
-rw-r--r--testing/creduce/APKBUILD37
-rw-r--r--testing/cri-o/APKBUILD110
-rw-r--r--testing/cri-o/cni-plugins-path.patch23
-rw-r--r--testing/cri-o/crio.conf11
-rwxr-xr-xtesting/cri-o/crio.initd37
-rw-r--r--testing/cri-o/crio.logrotated7
-rw-r--r--testing/cri-o/fix-test.patch72
-rw-r--r--testing/cri-o/makefile-fix-install.patch122
-rw-r--r--testing/cri-o/remove-systemd-files.patch13
-rw-r--r--testing/crispy-doom/APKBUILD35
-rw-r--r--testing/criu/APKBUILD68
-rw-r--r--testing/criu/lfs64-test.patch20
-rw-r--r--testing/criu/lfs64.patch58
-rw-r--r--testing/croc/APKBUILD27
-rw-r--r--testing/crossplane/APKBUILD29
-rw-r--r--testing/crosstool-ng/0001-sunrpc.diff33
-rw-r--r--testing/crosstool-ng/APKBUILD53
-rw-r--r--testing/crowdsec/APKBUILD94
-rw-r--r--testing/crowdsec/crowdsec.initd18
-rw-r--r--testing/crowdsec/system-sqlite.patch11
-rw-r--r--testing/crypto++/APKBUILD29
-rw-r--r--testing/cscope/APKBUILD4
-rw-r--r--testing/csfml/APKBUILD22
-rw-r--r--testing/csmith/APKBUILD19
-rw-r--r--testing/csol/10-fix-ncurses.patch13
-rw-r--r--testing/csol/APKBUILD31
-rw-r--r--testing/ctop/APKBUILD24
-rw-r--r--testing/ctorrent-dnh/APKBUILD4
-rw-r--r--testing/cue-cli/APKBUILD52
-rw-r--r--testing/cups-pdf/APKBUILD9
-rw-r--r--testing/cura/APKBUILD75
-rw-r--r--testing/cura/AppDesktopData.patch58
-rw-r--r--testing/cura/CuraVersion.patch16
-rw-r--r--testing/cura/cmake-helpers.patch95
-rw-r--r--testing/cura/cmake.patch85
-rw-r--r--testing/curlftpfs/APKBUILD11
-rw-r--r--testing/curlpp/APKBUILD2
-rw-r--r--testing/curtail/APKBUILD46
-rw-r--r--testing/cutechess/APKBUILD64
-rw-r--r--testing/cvise/APKBUILD71
-rw-r--r--testing/cvs-fast-export/APKBUILD45
-rw-r--r--testing/cwm/APKBUILD22
-rw-r--r--testing/cyrus-sasl-xoauth2/APKBUILD38
-rw-r--r--testing/cz-viator-hourglass-black/APKBUILD32
-rw-r--r--testing/cz-viator-hourglass-black/py3.patch20
-rw-r--r--testing/daemontools/APKBUILD2
-rw-r--r--testing/daktilo/APKBUILD50
-rw-r--r--testing/dapr-cli/APKBUILD54
-rw-r--r--testing/dar/APKBUILD29
-rw-r--r--testing/darcs/APKBUILD62
-rw-r--r--testing/darcs/cabal.project.freeze217
-rw-r--r--testing/dart-sass/APKBUILD56
-rw-r--r--testing/dart-sass/lock.patch672
-rw-r--r--testing/dart-sass/sass3
-rw-r--r--testing/dart-stage0/APKBUILD62
-rw-r--r--testing/dart/APKBUILD237
-rw-r--r--testing/dart/build-config.patch20
-rw-r--r--testing/dart/gcc13.patch20
-rw-r--r--testing/dart/no-werror.patch13
-rw-r--r--testing/dart/unbundle.patch439
-rw-r--r--testing/dart/where-we-are-heading-prefixes-are-not-needed.patch29
-rw-r--r--testing/darts-clone/APKBUILD41
-rw-r--r--testing/dasht/APKBUILD30
-rw-r--r--testing/datamash/APKBUILD32
-rw-r--r--testing/dbus-broker/APKBUILD29
-rw-r--r--testing/dbus-waiter/APKBUILD35
-rw-r--r--testing/dcd/APKBUILD35
-rw-r--r--testing/dcd/do-shared-linking.patch90
-rw-r--r--testing/dcmtk/10-offile.patch70
-rw-r--r--testing/dcmtk/20-thai.patch35
-rw-r--r--testing/dcmtk/30-dont_export_all_executables.patch24
-rw-r--r--testing/dcmtk/40-dcmqrscp.patch81
-rw-r--r--testing/dcmtk/APKBUILD105
-rw-r--r--testing/dcmtk/dcmtk.initd21
-rwxr-xr-xtesting/dcmtk/dcmtk.pre-install6
-rw-r--r--testing/dcnnt/APKBUILD33
-rw-r--r--testing/dcontainers/APKBUILD37
-rw-r--r--testing/ddcci-driver-linux-src/APKBUILD39
-rw-r--r--testing/ddcutil/APKBUILD32
-rw-r--r--testing/ddcutil/execinfo.patch76
-rw-r--r--testing/ddgr/APKBUILD9
-rw-r--r--testing/ddnrs/APKBUILD38
-rw-r--r--testing/ddnrs/ddnrs.pre-install6
-rw-r--r--testing/ddserver/APKBUILD28
-rw-r--r--testing/deadbeef-soxr/APKBUILD34
-rw-r--r--testing/deadbeef-soxr/remove-native-build-opt.patch7
-rw-r--r--testing/debconf/APKBUILD8
-rw-r--r--testing/debconf/fix-makefile_destdir.patch4
-rw-r--r--testing/deblob/APKBUILD30
-rw-r--r--testing/dehydrated/APKBUILD21
-rw-r--r--testing/delfin/APKBUILD52
-rw-r--r--testing/delfin/cargo-auditable.patch24
-rw-r--r--testing/deluge/10-python38-logging.patch15
-rw-r--r--testing/deluge/APKBUILD50
-rw-r--r--testing/desed/APKBUILD42
-rw-r--r--testing/desed/Cargo.lock473
-rw-r--r--testing/desync/APKBUILD38
-rw-r--r--testing/detox/APKBUILD14
-rw-r--r--testing/deutex/APKBUILD10
-rw-r--r--testing/devil/APKBUILD45
-rw-r--r--testing/devil/fix_mismatching_signatures.patch21
-rw-r--r--testing/dex/APKBUILD26
-rw-r--r--testing/dfl-applications/APKBUILD27
-rw-r--r--testing/dfl-ipc/APKBUILD26
-rw-r--r--testing/dfl-login1/APKBUILD26
-rw-r--r--testing/dfl-sni/APKBUILD26
-rw-r--r--testing/dfu-programmer/APKBUILD44
-rw-r--r--testing/dfu-util/APKBUILD27
-rw-r--r--testing/dhewm3/APKBUILD42
-rw-r--r--testing/dhewm3/dhewm3.pngbin23573 -> 23572 bytes
-rw-r--r--testing/dhewm3/fix-musl.patch31
-rw-r--r--testing/diceware/APKBUILD42
-rw-r--r--testing/diceware/no-pkg_resources.patch247
-rw-r--r--testing/diebahn/APKBUILD42
-rw-r--r--testing/diffoscope/APKBUILD27
-rw-r--r--testing/diffstat/APKBUILD32
-rw-r--r--testing/ding-libs/APKBUILD21
-rw-r--r--testing/ding-libs/musl-fixes.patch24
-rw-r--r--testing/ding-libs/path_utils_ut-allow-single-as-well.patch36
-rw-r--r--testing/dinit-alpine/APKBUILD27
-rw-r--r--testing/dinit/APKBUILD38
-rw-r--r--testing/dino/APKBUILD52
-rw-r--r--testing/dino/bump-signal-version.patch13
-rw-r--r--testing/direnv/APKBUILD36
-rw-r--r--testing/disfetch/APKBUILD20
-rw-r--r--testing/diskonaut/APKBUILD33
-rw-r--r--testing/diskus/APKBUILD26
-rw-r--r--testing/dislocker/APKBUILD37
-rw-r--r--testing/dislocker/fix-build.patch147
-rw-r--r--testing/dislocker/mbedtls-3.patch23
-rw-r--r--testing/dissent/APKBUILD41
-rw-r--r--testing/dissent/dissent.desktop8
-rw-r--r--testing/distrobuilder/APKBUILD68
-rw-r--r--testing/distrobuilder/glide-0_git20181004.lock48
-rw-r--r--testing/distrobuilder/glide-0_git20181004.yaml15
-rw-r--r--testing/dive/APKBUILD34
-rw-r--r--testing/dlib/APKBUILD41
-rw-r--r--testing/dma/APKBUILD46
-rw-r--r--testing/dma/dma.cron5
-rw-r--r--testing/dma/musl-fixes.patch37
-rw-r--r--testing/dmarc-metrics-exporter/APKBUILD71
-rwxr-xr-xtesting/dmarc-metrics-exporter/dmarc-metrics-exporter.confd10
-rwxr-xr-xtesting/dmarc-metrics-exporter/dmarc-metrics-exporter.initd15
-rwxr-xr-xtesting/dmarc-metrics-exporter/dmarc-metrics-exporter.pre-install7
-rw-r--r--testing/dmg2img/APKBUILD28
-rw-r--r--testing/dmg2img/openssl-compatibility.patch219
-rw-r--r--testing/dnscontrol/APKBUILD35
-rw-r--r--testing/dnscontrol/dnsconfig.js9
-rw-r--r--testing/dnscrypt-wrapper/APKBUILD4
-rw-r--r--testing/dnsenum/APKBUILD28
-rw-r--r--testing/dnsfunnel/APKBUILD43
-rw-r--r--testing/dnsfunnel/dnsfunnel.initd17
-rw-r--r--testing/dnsfunnel/dnsfunnel.pre-install5
-rw-r--r--testing/dnsperf/APKBUILD47
-rw-r--r--testing/dnssec-tools/APKBUILD13
-rw-r--r--testing/dnstap-ldns/APKBUILD41
-rw-r--r--testing/doasedit/APKBUILD22
-rw-r--r--testing/docbook2mdoc/APKBUILD27
-rw-r--r--testing/docbook2mdoc/fix-mandir.patch17
-rw-r--r--testing/docbook2mdoc/strtonum.patch86
-rw-r--r--testing/docker-auth/APKBUILD43
-rw-r--r--testing/docker-auth/docker-auth.confd10
-rw-r--r--testing/docker-auth/docker-auth.initd20
-rw-r--r--testing/docker-auth/docker-auth.pre-install6
-rw-r--r--testing/docker-auth/reference-example.patch905
-rw-r--r--testing/docker-credential-ecr-login/APKBUILD40
-rw-r--r--testing/docker-volume-local-persist/APKBUILD35
-rw-r--r--testing/docker-volume-local-persist/gomod.patch84
-rw-r--r--testing/dockerize/APKBUILD89
-rw-r--r--testing/dolt/APKBUILD34
-rw-r--r--testing/dooit/APKBUILD37
-rw-r--r--testing/dosbox-staging/APKBUILD49
-rw-r--r--testing/dosbox/APKBUILD52
-rw-r--r--testing/dotenv-linter/APKBUILD34
-rw-r--r--testing/dovecot-fts-xapian/APKBUILD36
-rw-r--r--testing/dovi-tool/APKBUILD37
-rw-r--r--testing/downloader-cli/APKBUILD37
-rw-r--r--testing/draw/APKBUILD26
-rw-r--r--testing/drawing/APKBUILD44
-rw-r--r--testing/drawing/fix-bindtextdomain.patch13
-rw-r--r--testing/drawpile/APKBUILD116
-rw-r--r--testing/drawpile/drawpile-server.pre-install8
-rwxr-xr-xtesting/drawpile/drawpile.initd18
-rw-r--r--testing/droidcam/APKBUILD53
-rw-r--r--testing/droidcam/droidcam.post-install8
-rw-r--r--testing/droidcam/makefile.patch13
-rw-r--r--testing/droidcam/release-paths.patch29
-rw-r--r--testing/drone-cli/APKBUILD31
-rw-r--r--testing/drone/APKBUILD48
-rw-r--r--testing/dropwatch/APKBUILD36
-rw-r--r--testing/drumgizmo/APKBUILD45
-rw-r--r--testing/drumgizmo/gcc13.patch10
-rw-r--r--testing/dsnet/APKBUILD44
-rw-r--r--testing/dsp/APKBUILD28
-rw-r--r--testing/dstask/APKBUILD61
-rw-r--r--testing/dstask/integration-tests.patch50
-rw-r--r--testing/dsymbol/APKBUILD33
-rw-r--r--testing/dtrx/APKBUILD40
-rw-r--r--testing/dublin-traceroute/APKBUILD38
-rw-r--r--testing/duc/APKBUILD35
-rw-r--r--testing/duf/APKBUILD31
-rw-r--r--testing/duktape/APKBUILD31
-rw-r--r--testing/duktape/duktape.pc10
-rw-r--r--testing/dum/APKBUILD48
-rw-r--r--testing/dum/strip-env_logger-features.patch8
-rw-r--r--testing/dumb_runtime_dir/APKBUILD24
-rw-r--r--testing/dump1090/APKBUILD35
-rw-r--r--testing/dump978/APKBUILD38
-rw-r--r--testing/dune-deps/APKBUILD71
-rw-r--r--testing/dustracing2d/APKBUILD28
-rw-r--r--testing/dvdbackup/10-dvdbackup-dvdread-6.1.patch90
-rw-r--r--testing/dvdbackup/APKBUILD35
-rw-r--r--testing/dwl/APKBUILD28
-rw-r--r--testing/dwl/xwayland.patch12
-rw-r--r--testing/dxvk/APKBUILD52
-rw-r--r--testing/e2fsimage/APKBUILD31
-rw-r--r--testing/easyloggingpp-dev/APKBUILD50
-rw-r--r--testing/easyloggingpp-dev/musl-compat.patch38
-rw-r--r--testing/eatmemory/APKBUILD2
-rw-r--r--testing/eboard/APKBUILD34
-rw-r--r--testing/ebook-tools/10-cmake_libzip_zipconf_path.patch76
-rw-r--r--testing/ebook-tools/APKBUILD35
-rw-r--r--testing/ecasound/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch45
-rw-r--r--testing/ecasound/APKBUILD12
-rw-r--r--testing/eccodes/APKBUILD54
-rw-r--r--testing/eclib/APKBUILD38
-rw-r--r--testing/eclipse-ecj/10-jar-signature.patch15
-rw-r--r--testing/eclipse-ecj/20-javac-version.patch15
-rw-r--r--testing/eclipse-ecj/APKBUILD45
-rwxr-xr-xtesting/eclipse-ecj/ecj4
-rw-r--r--testing/ecm/APKBUILD50
-rw-r--r--testing/ecos/APKBUILD39
-rw-r--r--testing/editline/APKBUILD33
-rw-r--r--testing/edward/0001-editor-fix-current-address-when-moving-a-single-line.patch60
-rw-r--r--testing/edward/0002-editor-Fix-discarding-of-addrs-for-cmds-expecting-a-.patch65
-rw-r--r--testing/edward/APKBUILD33
-rw-r--r--testing/efl/APKBUILD54
-rw-r--r--testing/eiwd/0001-resolving-service-none.patch37
-rw-r--r--testing/eiwd/APKBUILD59
-rw-r--r--testing/eiwd/eiwd.confd24
-rw-r--r--testing/eiwd/eiwd.initd25
-rw-r--r--testing/eiwd/iwd_passphrase34
-rw-r--r--testing/eiwd/main.conf36
-rw-r--r--testing/ejabberd/APKBUILD69
-rw-r--r--testing/ejabberd/ejabberd.confd5
-rw-r--r--testing/ejabberd/ejabberd.initd47
-rw-r--r--testing/ejabberd/ejabberd.logrotate12
-rw-r--r--testing/ejabberd/ejabberd.pre-install6
-rw-r--r--testing/ejabberd/makefile.patch12
-rw-r--r--testing/ejson/APKBUILD44
-rw-r--r--testing/elastic-beats/APKBUILD152
-rw-r--r--testing/elastic-beats/filebeat.confd5
-rw-r--r--testing/elastic-beats/filebeat.initd31
-rw-r--r--testing/elastic-beats/metricbeat.confd5
-rw-r--r--testing/elastic-beats/metricbeat.initd31
-rw-r--r--testing/electron-tasje/APKBUILD35
-rw-r--r--testing/electron/0001-src-fix-HasOnly-capability-in-node-credentials.patch55
-rw-r--r--testing/electron/0002-http-add-maximum-chunk-extension-size.patch273
-rw-r--r--testing/electron/0004-lib-update-undici-to-v5.28.3.patch46
-rw-r--r--testing/electron/0005-zlib-pause-stream-if-outgoing-buffer-is-full.patch146
-rw-r--r--testing/electron/0006-deps-fix-GHSA-f74f-cvh7-c6q6-CVE-2024-24806.patch74
-rw-r--r--testing/electron/APKBUILD589
-rw-r--r--testing/electron/chromium-icu-74.patch20
-rw-r--r--testing/electron/chromium-revert-drop-of-system-java.patch17
-rw-r--r--testing/electron/compiler.patch123
-rw-r--r--testing/electron/default.conf9
-rw-r--r--testing/electron/disable-dns_config_service.patch15
-rw-r--r--testing/electron/disable-failing-tests.patch361
-rw-r--r--testing/electron/electron-launcher.sh20
-rw-r--r--testing/electron/electron.desktop8
-rw-r--r--testing/electron/fc-cache-version.patch13
-rw-r--r--testing/electron/fix-missing-cstdint-include-musl.patch13
-rw-r--r--testing/electron/fix-opus.patch12
-rw-r--r--testing/electron/fstatat-32bit.patch17
-rw-r--r--testing/electron/gdbinit.patch22
-rw-r--r--testing/electron/generic-sensor-include.patch11
-rw-r--r--testing/electron/icon.patch21
-rw-r--r--testing/electron/import-version.patch15
-rw-r--r--testing/electron/libstdc++13.patch279
-rw-r--r--testing/electron/mman.patch13
-rw-r--r--testing/electron/musl-auxv.patch11
-rw-r--r--testing/electron/musl-sandbox.patch124
-rw-r--r--testing/electron/musl-tid-caching.patch85
-rw-r--r--testing/electron/musl-v8-monotonic-pthread-cont_timedwait.patch23
-rw-r--r--testing/electron/no-execinfo.patch69
-rw-r--r--testing/electron/no-mallinfo.patch124
-rw-r--r--testing/electron/no-res-ninit-nclose.patch32
-rw-r--r--testing/electron/no-sandbox-settls.patch14
-rw-r--r--testing/electron/node-configure-distutils.patch52
-rw-r--r--testing/electron/node-gyp-distutils.patch11
-rw-r--r--testing/electron/partalloc-no-tagging-arm64.patch14
-rw-r--r--testing/electron/perfetto-libstdc++.patch20
-rw-r--r--testing/electron/pvalloc.patch33
-rw-r--r--testing/electron/python-jinja-3.10.patch22
-rw-r--r--testing/electron/quiche-array.patch12
-rw-r--r--testing/electron/random-fixes.patch94
-rw-r--r--testing/electron/system-zstd.patch46
-rw-r--r--testing/electron/temp-failure-retry.patch19
-rw-r--r--testing/electron/unbundle-node.patch56
-rw-r--r--testing/electron/webpack-hash.patch12
-rw-r--r--testing/electron/yes-musl.patch11
-rw-r--r--testing/elektra/APKBUILD57
-rw-r--r--testing/elektra/benchmark-dupe.patch62
-rw-r--r--testing/elektra/gcc12.patch12
-rw-r--r--testing/elektra/musl-1.2.3.patch44
-rw-r--r--testing/element-desktop/APKBUILD170
-rw-r--r--testing/element-desktop/add-alpine-targets.patch52
-rwxr-xr-xtesting/element-desktop/element-desktop3
-rw-r--r--testing/element-desktop/tasje-no-fuses.patch58
-rw-r--r--testing/element-desktop/tasje-one-hak.patch20
-rw-r--r--testing/element-desktop/use-system-fonts.patch.reactsdk169
-rw-r--r--testing/element-desktop/use-system-fonts.patch.web11
-rw-r--r--testing/element-desktop/use-system-headers.patch15
-rw-r--r--testing/elementary-photos/APKBUILD61
-rw-r--r--testing/elf_diff/APKBUILD48
-rwxr-xr-xtesting/elf_diff/elf_diff5
-rw-r--r--testing/elfio/APKBUILD37
-rw-r--r--testing/elfio/fix-cmake-install-dir.patch35
-rw-r--r--testing/elfio/page_size.patch33
-rw-r--r--testing/eludris/APKBUILD34
-rw-r--r--testing/elvish/APKBUILD29
-rw-r--r--testing/emacs-ace-window/APKBUILD38
-rw-r--r--testing/emacs-async-await/APKBUILD40
-rw-r--r--testing/emacs-async/APKBUILD38
-rw-r--r--testing/emacs-avy/APKBUILD39
-rw-r--r--testing/emacs-buttercup/APKBUILD42
-rw-r--r--testing/emacs-cangjie/APKBUILD40
-rw-r--r--testing/emacs-centaur-tabs/APKBUILD38
-rw-r--r--testing/emacs-circe/APKBUILD42
-rw-r--r--testing/emacs-circe/fix-test-tracking.patch27
-rw-r--r--testing/emacs-compat/APKBUILD48
-rw-r--r--testing/emacs-consult/APKBUILD39
-rw-r--r--testing/emacs-dash/APKBUILD40
-rw-r--r--testing/emacs-deferred/APKBUILD33
-rw-r--r--testing/emacs-elfeed/APKBUILD41
-rw-r--r--testing/emacs-embark/APKBUILD63
-rw-r--r--testing/emacs-ement/APKBUILD47
-rw-r--r--testing/emacs-ert-async/APKBUILD36
-rw-r--r--testing/emacs-f/APKBUILD45
-rw-r--r--testing/emacs-fsm/APKBUILD36
-rw-r--r--testing/emacs-git-timemachine/APKBUILD38
-rw-r--r--testing/emacs-hackernews/APKBUILD35
-rw-r--r--testing/emacs-helm/APKBUILD43
-rw-r--r--testing/emacs-helm/remove-autoload-check.patch26
-rw-r--r--testing/emacs-hnreader/APKBUILD48
-rw-r--r--testing/emacs-howdoyou/APKBUILD53
-rw-r--r--testing/emacs-howdoyou/dont-test-against-google.patch23
-rw-r--r--testing/emacs-hydra/APKBUILD46
-rw-r--r--testing/emacs-iter2/APKBUILD39
-rw-r--r--testing/emacs-jabber/APKBUILD59
-rw-r--r--testing/emacs-lab/APKBUILD45
-rw-r--r--testing/emacs-liberime/APKBUILD43
-rw-r--r--testing/emacs-lingva/APKBUILD36
-rw-r--r--testing/emacs-magit/APKBUILD71
-rw-r--r--testing/emacs-memoize/APKBUILD40
-rw-r--r--testing/emacs-persist/APKBUILD40
-rw-r--r--testing/emacs-plz-see/APKBUILD39
-rw-r--r--testing/emacs-plz/APKBUILD47
-rw-r--r--testing/emacs-popup/APKBUILD39
-rw-r--r--testing/emacs-posframe/APKBUILD34
-rw-r--r--testing/emacs-powerline/APKBUILD35
-rw-r--r--testing/emacs-promise/APKBUILD41
-rw-r--r--testing/emacs-pyim-basedict/APKBUILD34
-rw-r--r--testing/emacs-pyim-cangjiedict/APKBUILD36
-rw-r--r--testing/emacs-pyim-smzmdict/APKBUILD36
-rw-r--r--testing/emacs-pyim-wbdict/APKBUILD35
-rw-r--r--testing/emacs-pyim/APKBUILD46
-rw-r--r--testing/emacs-repology/APKBUILD46
-rw-r--r--testing/emacs-request/APKBUILD57
-rw-r--r--testing/emacs-rime/APKBUILD47
-rw-r--r--testing/emacs-s/APKBUILD41
-rw-r--r--testing/emacs-srv/APKBUILD39
-rw-r--r--testing/emacs-srv/optional-dns.el.patch38
-rw-r--r--testing/emacs-svg-lib/APKBUILD35
-rw-r--r--testing/emacs-taxy-magit-section/APKBUILD38
-rw-r--r--testing/emacs-taxy/APKBUILD34
-rw-r--r--testing/emacs-vterm/APKBUILD54
-rw-r--r--testing/emacs-with-editor/APKBUILD38
-rw-r--r--testing/emacs-xr/APKBUILD40
-rw-r--r--testing/embree3/APKBUILD47
-rw-r--r--testing/embree3/fix-install-detection.patch14
-rw-r--r--testing/emby/APKBUILD86
-rw-r--r--testing/emby/emby-migrate56
-rw-r--r--testing/emby/emby-server6
-rw-r--r--testing/emby/emby.confd8
-rw-r--r--testing/emby/emby.initd14
-rw-r--r--testing/emby/emby.pre-install7
-rw-r--r--testing/empede/APKBUILD48
-rw-r--r--testing/empede/empede.confd4
-rw-r--r--testing/empede/empede.initd17
-rw-r--r--testing/empede/empede.pre-install6
-rw-r--r--testing/emscripten/APKBUILD189
-rw-r--r--testing/emscripten/add-global-cache.patch33
-rw-r--r--testing/emscripten/add-system-level-config.patch85
-rw-r--r--testing/emscripten/binaryen-wasm-js-path.patch40
-rw-r--r--testing/emscripten/closurecompiler-externs-path.patch17
-rw-r--r--testing/emscripten/closurecompiler-language_in-es6.patch21
-rw-r--r--testing/emscripten/embuilder-fix-task-all-for-wasm.patch35
-rw-r--r--testing/emscripten/embuilder-omit-provided.patch67
-rw-r--r--testing/emscripten/emscripten.cfg21
-rw-r--r--testing/emscripten/fix-python-shebang.patch104
-rw-r--r--testing/emscripten/move-emcc-txt.patch12
-rw-r--r--testing/emscripten/settings_template-paths.patch51
-rw-r--r--testing/emulationstation/APKBUILD94
-rw-r--r--testing/emulationstation/default-paths.patch10
-rw-r--r--testing/emulationstation/emulationstation.pngbin4870 -> 4074 bytes
-rw-r--r--testing/emulationstation/pugixml.patch152
-rw-r--r--testing/endeavour/APKBUILD39
-rw-r--r--testing/endless-sky/APKBUILD48
-rw-r--r--testing/endless-sky/install-path.patch13
-rw-r--r--testing/endlessh/APKBUILD24
-rw-r--r--testing/enjoy/0001-fix-printf-format-specifier.patch28
-rw-r--r--testing/enjoy/0002-fix-setting-timestamp-of-input-event.patch37
-rw-r--r--testing/enjoy/APKBUILD33
-rw-r--r--testing/enjoy/correct_udev_rules_path.patch14
-rw-r--r--testing/enlighten/APKBUILD25
-rw-r--r--testing/envconsul/APKBUILD16
-rw-r--r--testing/envsubst/APKBUILD28
-rw-r--r--testing/eolie/APKBUILD38
-rw-r--r--testing/eolie/dont-require-py3-gettext-support.patch13
-rw-r--r--testing/epoch/APKBUILD10
-rw-r--r--testing/epr/APKBUILD29
-rw-r--r--testing/epson-inkjet-printer-escpr/APKBUILD28
-rw-r--r--testing/epub2txt/APKBUILD23
-rw-r--r--testing/ergo-ldap/APKBUILD25
-rw-r--r--testing/espeakup/APKBUILD40
-rw-r--r--testing/espeakup/espeakup.confd3
-rw-r--r--testing/espeakup/espeakup.initd7
-rw-r--r--testing/espeakup/modules-load.conf1
-rw-r--r--testing/esptool/APKBUILD46
-rw-r--r--testing/etcd/APKBUILD53
-rw-r--r--testing/etcd/etcd.confd17
-rw-r--r--testing/etcd/etcd.initd10
-rw-r--r--testing/etcd/etcd.yaml-3.5.13143
-rw-r--r--testing/ettercap/APKBUILD44
-rw-r--r--testing/eva/APKBUILD36
-rw-r--r--testing/eva/deps.patch156
-rw-r--r--testing/evolution-on/APKBUILD1
-rw-r--r--testing/eww/APKBUILD59
-rw-r--r--testing/eww/update-cargo-lock.patch11
-rw-r--r--testing/exabgp/APKBUILD49
-rw-r--r--testing/exabgp/exabgp.confd3
-rw-r--r--testing/exabgp/exabgp.initd61
-rw-r--r--testing/exabgp/exabgp.pre-install6
-rw-r--r--testing/exabgp/unvendor.patch414
-rw-r--r--testing/exercism/APKBUILD49
-rw-r--r--testing/exfatprogs/APKBUILD40
-rw-r--r--testing/extrace/APKBUILD25
-rw-r--r--testing/extremetuxracer/APKBUILD9
-rw-r--r--testing/extundelete/APKBUILD4
-rw-r--r--testing/f3/APKBUILD12
-rw-r--r--testing/f_scripts/APKBUILD99
-rw-r--r--testing/fabric/APKBUILD28
-rw-r--r--testing/fakeroot-tcp/APKBUILD66
-rw-r--r--testing/fakeroot-tcp/do-not-redefine-id_t.patch21
-rw-r--r--testing/fakeroot-tcp/fakeroot-no64.patch17
-rw-r--r--testing/fakeroot-tcp/fakeroot-skip-ipc-sanity-check.patch59
-rw-r--r--testing/fakeroot-tcp/fakeroot-stdint.patch34
-rw-r--r--testing/fakeroot-tcp/fix-format.patch25
-rw-r--r--testing/fakeroot-tcp/fix-shell-in-fakeroot.patch13
-rw-r--r--testing/fakeroot-tcp/xstatjunk.patch13
-rw-r--r--testing/fasd/APKBUILD25
-rw-r--r--testing/fast_float/APKBUILD47
-rw-r--r--testing/fastd/APKBUILD46
-rw-r--r--testing/fastd/fix-segfault-with-musl.patch35
-rw-r--r--testing/fatback/APKBUILD23
-rw-r--r--testing/fathom/APKBUILD38
-rw-r--r--testing/fatrace/APKBUILD25
-rw-r--r--testing/fatresize/APKBUILD2
-rw-r--r--testing/faudio/APKBUILD35
-rw-r--r--testing/faultstat/APKBUILD6
-rw-r--r--testing/faust/APKBUILD117
-rw-r--r--testing/faust/busybox.patch28
-rw-r--r--testing/faust/gcc13.patch24
-rw-r--r--testing/faust/no-execinfo.patch22
-rw-r--r--testing/faust/usage.patch866
-rw-r--r--testing/fava/APKBUILD72
-rw-r--r--testing/fbgrab/APKBUILD23
-rw-r--r--testing/fbp/APKBUILD29
-rw-r--r--testing/fceux/01-rdtsc.patch76
-rw-r--r--testing/fceux/APKBUILD66
-rw-r--r--testing/fceux/scons-python3.patch108
-rw-r--r--testing/fcitx5-anthy/APKBUILD38
-rw-r--r--testing/fcitx5-bamboo/APKBUILD47
-rw-r--r--testing/fcitx5-chewing/APKBUILD47
-rw-r--r--testing/fcitx5-chinese-addons/APKBUILD57
-rw-r--r--testing/fcitx5-configtool/APKBUILD61
-rw-r--r--testing/fcitx5-gtk/APKBUILD71
-rw-r--r--testing/fcitx5-hangul/APKBUILD37
-rw-r--r--testing/fcitx5-kkc/APKBUILD42
-rw-r--r--testing/fcitx5-kkc/cxx17.patch14
-rw-r--r--testing/fcitx5-lua/APKBUILD41
-rw-r--r--testing/fcitx5-m17n/APKBUILD39
-rw-r--r--testing/fcitx5-qt/APKBUILD80
-rw-r--r--testing/fcitx5-rime/APKBUILD38
-rw-r--r--testing/fcitx5-table-extra/APKBUILD34
-rw-r--r--testing/fcitx5-table-other/APKBUILD34
-rw-r--r--testing/fcitx5-unikey/APKBUILD49
-rw-r--r--testing/fcitx5/APKBUILD59
-rw-r--r--testing/fdm-materials/APKBUILD27
-rw-r--r--testing/fdm/APKBUILD30
-rw-r--r--testing/fdm/fix-base64.patch52
-rw-r--r--testing/featherpad/APKBUILD44
-rw-r--r--testing/felix/APKBUILD59
-rw-r--r--testing/felix/use-system-libs.patch61
-rw-r--r--testing/ffcall/APKBUILD41
-rw-r--r--testing/fff/APKBUILD23
-rw-r--r--testing/fflas-ffpack/APKBUILD41
-rw-r--r--testing/ffms2/APKBUILD37
-rw-r--r--testing/ffms2/ffmpeg-fix-api.patch355
-rw-r--r--testing/ffsend/APKBUILD59
-rw-r--r--testing/ffsend/wl-clipboard.patch159
-rw-r--r--testing/fgt/APKBUILD34
-rw-r--r--testing/fheroes2/APKBUILD46
-rw-r--r--testing/fheroes2/fheroes2.post-install14
-rw-r--r--testing/fiery/APKBUILD50
-rw-r--r--testing/fig2dev/APKBUILD67
-rw-r--r--testing/filebeat/APKBUILD42
-rw-r--r--testing/filebeat/filebeat.confd2
-rw-r--r--testing/filebeat/filebeat.initd42
-rw-r--r--testing/filebeat/filebeat.yml119
-rw-r--r--testing/filebrowser/APKBUILD53
-rw-r--r--testing/filebrowser/filebrowser.confd1
-rw-r--r--testing/filebrowser/filebrowser.initd13
-rw-r--r--testing/filebrowser/filebrowser.pre-install5
-rw-r--r--testing/fileshelter/APKBUILD47
-rw-r--r--testing/fileshelter/fileshelter.initd13
-rw-r--r--testing/fileshelter/fileshelter.pre-install6
-rw-r--r--testing/fileshelter/std-optional.patch11
-rw-r--r--testing/filite/APKBUILD39
-rw-r--r--testing/filite/fix-build.patch3110
-rw-r--r--testing/filite/system-sqlite.patch24
-rw-r--r--testing/findtow/APKBUILD25
-rw-r--r--testing/finger/APKBUILD32
-rw-r--r--testing/firecracker/APKBUILD78
-rw-r--r--testing/firectl/APKBUILD29
-rw-r--r--testing/firefox-developer-edition/APKBUILD272
-rw-r--r--testing/firefox-developer-edition/disable-moz-stackwalk.patch (renamed from testing/thunderbird/disable-moz-stackwalk.patch)0
-rw-r--r--testing/firefox-developer-edition/distribution.ini8
-rw-r--r--testing/firefox-developer-edition/firefox-developer-edition.desktop340
-rw-r--r--testing/firefox-developer-edition/fix-fortify-system-wrappers.patch15
-rw-r--r--testing/firefox-developer-edition/fix-rust-target.patch31
-rw-r--r--testing/firefox-developer-edition/fix-webrtc-glibcisms.patch20
-rw-r--r--testing/firefox-developer-edition/icu74.patch38
-rw-r--r--testing/firefox-developer-edition/install-dir.patch40
-rw-r--r--testing/firefox-developer-edition/lfs64.patch35
-rw-r--r--testing/firefox-developer-edition/no-ccache-stats.patch13
-rw-r--r--testing/firefox-developer-edition/python-deps.patch12
-rw-r--r--testing/firefox-developer-edition/rust-lto-thin.patch12
-rw-r--r--testing/firefox-developer-edition/sandbox-fork.patch15
-rw-r--r--testing/firefox-developer-edition/sandbox-largefile.patch17
-rw-r--r--testing/firefox-developer-edition/sandbox-sched_setscheduler.patch24
-rw-r--r--testing/firefox-developer-edition/stab.h (renamed from testing/thunderbird/stab.h)0
-rw-r--r--testing/firefox-developer-edition/vendor-prefs.js19
-rw-r--r--testing/firehol/APKBUILD43
-rw-r--r--testing/firehol/firehol.initd66
-rw-r--r--testing/firewalld/APKBUILD84
-rw-r--r--testing/firewalld/firewalld.initd12
-rw-r--r--testing/flamegraph/APKBUILD12
-rw-r--r--testing/flameshot/APKBUILD50
-rw-r--r--testing/flann/APKBUILD11
-rw-r--r--testing/flannel/APKBUILD63
-rw-r--r--testing/flannel/flanneld.confd2
-rwxr-xr-xtesting/flannel/flanneld.initd19
-rw-r--r--testing/flannel/flanneld.logrotated7
-rw-r--r--testing/flare-engine/APKBUILD34
-rw-r--r--testing/flare-game/APKBUILD21
-rwxr-xr-xtesting/flare-game/flare-game-data-downloader.sh13
-rwxr-xr-xtesting/flare-game/flare-game.post-install13
-rw-r--r--testing/flatpak-xdg-utils/APKBUILD32
-rw-r--r--testing/flauschige-uhr/APKBUILD25
-rw-r--r--testing/flightgear/APKBUILD91
-rwxr-xr-xtesting/flightgear/flightgear-data-downloader.sh15
-rwxr-xr-xtesting/flightgear/flightgear.post-install4
-rw-r--r--testing/flightgear/musl-fenv.patch19
-rw-r--r--testing/flightgear/musl-fix_error_h.patch14
-rw-r--r--testing/flightgear/musl-fix_feenableexcept.patch11
-rw-r--r--testing/flightgear/musl-fix_fpos_t.patch17
-rw-r--r--testing/flightgear/musl-fixes.patch83
-rw-r--r--testing/flightgear/musl-include-fcntl.patch10
-rw-r--r--testing/flightgear/no-execinfo.patch21
-rw-r--r--testing/flint/APKBUILD51
-rw-r--r--testing/flint/fix-sdiv_qrnnd-test.patch22
-rw-r--r--testing/flintqs/APKBUILD41
-rw-r--r--testing/flit/APKBUILD37
-rwxr-xr-xtesting/flit/install-wheel-scripts.py64
-rw-r--r--testing/flowd/APKBUILD13
-rw-r--r--testing/flowd/format-security.patch13
-rw-r--r--testing/fluent-bit/APKBUILD76
-rw-r--r--testing/fluent-bit/chunkio-static-lib-fts.patch10
-rw-r--r--testing/fluent-bit/exclude-luajit.patch12
-rw-r--r--testing/fluent-bit/fluent-bit.initd14
-rw-r--r--testing/fluent-bit/xsi-strerror.patch15
-rw-r--r--testing/fluffychat/APKBUILD323
-rw-r--r--testing/fluffychat/fluffychat.desktop8
-rw-r--r--testing/fluffychat/gcc13.patch.webrtc10
-rw-r--r--testing/fluffychat/no-sqlcipher.patch.noauto49
-rw-r--r--testing/fluffychat/no-upgrade-debug-info.patch.webrtc11
-rw-r--r--testing/fluffychat/no-werror.patch11
-rw-r--r--testing/fluffychat/sqlite-soname.patch.noauto11
-rw-r--r--testing/fluffychat/still-hive.patch90
-rw-r--r--testing/fluffychat/system-flutter.patch15
-rw-r--r--testing/fluffychat/toolhack.patch.webrtc22
-rw-r--r--testing/fluffychat/use-alpine-target.patch.webrtc15
-rw-r--r--testing/fluffychat/wrapper.patch.webrtc14
-rw-r--r--testing/flutter/APKBUILD505
-rw-r--r--testing/flutter/alpine-target.patch14
-rw-r--r--testing/flutter/doctor.patch17
-rwxr-xr-xtesting/flutter/flutter23
-rw-r--r--testing/flutter/git-revision.patch.engine22
-rw-r--r--testing/flutter/libstdc++13.patch.engine103
-rw-r--r--testing/flutter/musl-no-execinfo.patch.engine11
-rw-r--r--testing/flutter/musl-no-mallinfo.patch.engine29
-rw-r--r--testing/flutter/no-lock.patch19
-rw-r--r--testing/flutter/no-runtime-download.patch38
-rw-r--r--testing/flutter/no-vpython.patch.engine11
-rw-r--r--testing/flutter/opt-in-analytics.patch22
-rw-r--r--testing/flutter/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch18
-rw-r--r--testing/flutter/shared-libcxx.patch.engine33
-rw-r--r--testing/flutter/system-icu.patch.engine37
-rw-r--r--testing/flutter/target-musl.patch.engine345
-rw-r--r--testing/flutter/unbundle.patch21
-rw-r--r--testing/flutter/unbundle.patch.engine950
-rw-r--r--testing/flutter/version.patch288
-rw-r--r--testing/flux/APKBUILD58
-rw-r--r--testing/fnf/APKBUILD28
-rw-r--r--testing/foma/APKBUILD35
-rw-r--r--testing/font-anonymous-pro/APKBUILD29
-rw-r--r--testing/font-babelstone-han/APKBUILD21
-rw-r--r--testing/font-chivo/APKBUILD28
-rw-r--r--testing/font-comic-neue/APKBUILD9
-rw-r--r--testing/font-commit-mono/APKBUILD20
-rw-r--r--testing/font-cousine/APKBUILD22
-rw-r--r--testing/font-fira-code/APKBUILD47
-rw-r--r--testing/font-fira-code/fontconfig.conf16
-rw-r--r--testing/font-fira/APKBUILD34
-rw-r--r--testing/font-firamath/APKBUILD20
-rw-r--r--testing/font-fontawesome-4/APKBUILD26
-rw-r--r--testing/font-hanazono/APKBUILD22
-rw-r--r--testing/font-intel-one-mono/APKBUILD22
-rw-r--r--testing/font-ipa/APKBUILD25
-rw-r--r--testing/font-katex/APKBUILD26
-rw-r--r--testing/font-material-icons/APKBUILD21
-rw-r--r--testing/font-merriweather/APKBUILD22
-rw-r--r--testing/font-monaspace/APKBUILD59
-rw-r--r--testing/font-monocraft/APKBUILD20
-rw-r--r--testing/font-noto-emoji/APKBUILD28
-rw-r--r--testing/font-raleway/APKBUILD40
-rw-r--r--testing/font-siji/APKBUILD4
-rw-r--r--testing/font-stix-otf/APKBUILD29
-rw-r--r--testing/font-tamzen/APKBUILD10
-rw-r--r--testing/font-teluguvijayam/APKBUILD69
-rw-r--r--testing/font-tinos/APKBUILD22
-rw-r--r--testing/font-tiresias/APKBUILD32
-rw-r--r--testing/font-twemoji/APKBUILD23
-rw-r--r--testing/fontforge/APKBUILD77
-rw-r--r--testing/fontforge/fix-select.patch27
-rw-r--r--testing/foolsm/APKBUILD26
-rw-r--r--testing/foolsm/foolsm.confd1
-rw-r--r--testing/foolsm/foolsm.initd11
-rw-r--r--testing/forgejo-runner/APKBUILD47
-rw-r--r--testing/forgejo-runner/forgejo-runner.confd17
-rw-r--r--testing/forgejo-runner/forgejo-runner.initd38
-rw-r--r--testing/forgejo-runner/forgejo-runner.logrotate5
-rw-r--r--testing/forgejo-runner/forgejo-runner.pre-install14
l---------testing/forgejo-runner/forgejo-runner.pre-upgrade1
-rw-r--r--testing/forgejo/APKBUILD108
-rw-r--r--testing/forgejo/forgejo.ini26
-rw-r--r--testing/forgejo/forgejo.initd15
-rw-r--r--testing/forgejo/forgejo.pre-install7
-rw-r--r--testing/fox/APKBUILD73
-rw-r--r--testing/foxtrotgps/APKBUILD33
-rw-r--r--testing/foxtrotgps/fix-timespec.patch13
-rw-r--r--testing/fpc-stage0/APKBUILD53
-rw-r--r--testing/fpc/APKBUILD72
-rw-r--r--testing/fplll/APKBUILD56
-rw-r--r--testing/fpp/APKBUILD38
-rw-r--r--testing/fq/APKBUILD35
-rw-r--r--testing/fq/enable-cgo.patch17
-rw-r--r--testing/fragments/APKBUILD55
-rw-r--r--testing/fragments/no-cargo-home.patch13
-rw-r--r--testing/freealut/0000-configure.patch21
-rw-r--r--testing/freealut/0001-freebsd_pthread.patch11
-rw-r--r--testing/freealut/0002-am_maintainer_mode.patch10
-rw-r--r--testing/freealut/0003-findutils_syntax.patch11
-rw-r--r--testing/freealut/APKBUILD41
-rw-r--r--testing/freecad/APKBUILD107
-rw-r--r--testing/freecad/missing-include-cstdint.patch11
-rw-r--r--testing/freecad/no-execinfo.patch46
-rw-r--r--testing/freecad/no-workaround-spnav.patch69
-rw-r--r--testing/freecad/numpy-1.20.patch25
-rw-r--r--testing/freecad/opencascade-7.8.0.patch877
-rw-r--r--testing/freecad/resourceDirectory.patch11
-rw-r--r--testing/freecad/tests.patch33
-rw-r--r--testing/freediameter/APKBUILD54
-rw-r--r--testing/freedoom/APKBUILD20
-rw-r--r--testing/freedoom/support-python-pil-10.patch40
-rw-r--r--testing/freetube/APKBUILD56
-rw-r--r--testing/freetube/freetube.sh3
-rw-r--r--testing/freetube/tasje-dotdash.patch12
-rw-r--r--testing/frescobaldi/APKBUILD35
-rw-r--r--testing/freshrss/APKBUILD155
-rw-r--r--testing/freshrss/defaults.patch26
-rw-r--r--testing/freshrss/fpm-pool.conf56
-rwxr-xr-xtesting/freshrss/freshrss-openrc.post-install11
-rwxr-xr-xtesting/freshrss/freshrss.confd4
-rw-r--r--testing/freshrss/freshrss.crontab1
-rwxr-xr-xtesting/freshrss/freshrss.pre-install6
-rw-r--r--testing/fscryptctl/APKBUILD26
-rw-r--r--testing/fulcrum/APKBUILD36
-rw-r--r--testing/fusee-nano/APKBUILD40
-rw-r--r--testing/fusee-nano/broken-makefile.patch13
-rw-r--r--testing/fuzzylite/APKBUILD43
-rw-r--r--testing/fuzzylite/no-werror.patch13
-rw-r--r--testing/fwallet/APKBUILD99
-rw-r--r--testing/fwallet/flutter-3.19.patch128
-rw-r--r--testing/fwallet/no-werror.patch11
-rw-r--r--testing/fwallet/system-flutter.patch15
-rw-r--r--testing/fzy/APKBUILD7
-rw-r--r--testing/g4music/APKBUILD39
-rw-r--r--testing/galera/APKBUILD66
-rw-r--r--testing/galera/musl-page-size.patch16
-rw-r--r--testing/galera/musl-sched_param.patch12
-rw-r--r--testing/galera/musl-sys-poll-h.patch11
-rw-r--r--testing/galera/musl-wordsize.patch14
-rw-r--r--testing/gambit/APKBUILD42
-rw-r--r--testing/gambit/tests.patch14
-rw-r--r--testing/game-devices-udev/APKBUILD23
-rw-r--r--testing/gamescope/APKBUILD78
-rw-r--r--testing/gamescope/gcc13.patch41
-rw-r--r--testing/gamescope/null.patch47
-rw-r--r--testing/gamescope/system-wlroots-libliftoff.patch10
-rw-r--r--testing/gamja/APKBUILD35
-rw-r--r--testing/gammaray/APKBUILD38
-rw-r--r--testing/gammastep/APKBUILD50
-rw-r--r--testing/gatling/APKBUILD45
-rw-r--r--testing/gatling/build-fixes.patch15
-rw-r--r--testing/gaupol/APKBUILD43
-rw-r--r--testing/gb/APKBUILD10
-rw-r--r--testing/gcc-cross-embedded-stage1/APKBUILD144
-rw-r--r--testing/gcc-cross-embedded/APKBUILD166
-rw-r--r--testing/gcompris-qt/APKBUILD30
-rw-r--r--testing/gdb-esp/APKBUILD134
-rw-r--r--testing/gdcm/10-docbook4.patch175
-rw-r--r--testing/gdcm/30-off_t.patch211
-rw-r--r--testing/gdcm/40-java.patch18
-rw-r--r--testing/gdcm/50-use_copyright.patch29
-rw-r--r--testing/gdcm/60-fix_export_variables.patch34
-rw-r--r--testing/gdcm/70-vtk9.3.0.patch94
-rw-r--r--testing/gdcm/APKBUILD183
-rw-r--r--testing/gdm-settings/APKBUILD44
-rw-r--r--testing/gearmand/APKBUILD52
-rw-r--r--testing/gede/APKBUILD21
-rw-r--r--testing/genact/APKBUILD34
-rw-r--r--testing/geodns/APKBUILD23
-rw-r--r--testing/geomyidae/APKBUILD2
-rw-r--r--testing/geonames/APKBUILD40
-rw-r--r--testing/geotagging/APKBUILD39
-rw-r--r--testing/geotagging/fix-exiv2.patch11
-rw-r--r--testing/gerbera/0001-Remove-IN-and-OUT-dropped-upstream.patch777
-rw-r--r--testing/gerbera/APKBUILD113
-rw-r--r--testing/gerbera/disable-git-test.patch11
-rw-r--r--testing/gerbera/gerbera.confd27
-rw-r--r--testing/gerbera/gerbera.initd34
-rw-r--r--testing/gerbera/gerbera.post-deinstall6
-rw-r--r--testing/gerbera/gerbera.pre-install7
-rw-r--r--testing/gerbera/upnp-updates.patch54
-rw-r--r--testing/getdns/APKBUILD50
-rw-r--r--testing/getmail6/APKBUILD35
-rw-r--r--testing/getssl/APKBUILD7
-rw-r--r--testing/getting-things-gnome/APKBUILD35
-rw-r--r--testing/getting-things-gnome/dont-require-py3-gettext.patch17
-rw-r--r--testing/gf2x/APKBUILD39
-rw-r--r--testing/gfan/APKBUILD31
-rw-r--r--testing/gforth/APKBUILD2
-rw-r--r--testing/ghidra/APKBUILD116
-rw-r--r--testing/ghidra/ghidra.desktop9
-rw-r--r--testing/ghidra/ghidra.sh3
-rw-r--r--testing/ghidra/use-system-protoc.patch97
-rw-r--r--testing/ghq/APKBUILD46
-rw-r--r--testing/ginac/APKBUILD39
-rw-r--r--testing/ginger/APKBUILD12
-rw-r--r--testing/gingerbase/APKBUILD6
-rw-r--r--testing/git-bug/APKBUILD67
-rw-r--r--testing/git-bug/Makefile.patch14
-rw-r--r--testing/git-bug/fix-tests.patch40
-rw-r--r--testing/git-cola/APKBUILD33
-rw-r--r--testing/git-extras/APKBUILD33
-rw-r--r--testing/git-filter-repo/10-no-version-test.patch17
-rw-r--r--testing/git-filter-repo/20-git-filter-repo.patch17
-rw-r--r--testing/git-filter-repo/APKBUILD35
-rw-r--r--testing/git-flow/APKBUILD24
-rw-r--r--testing/git-flow/add-destdir-support.patch11
-rw-r--r--testing/git-flow/fix-busybox-readlink.patch11
-rw-r--r--testing/git-quick-stats/APKBUILD32
-rw-r--r--testing/git-review/APKBUILD31
-rw-r--r--testing/git-revise/APKBUILD26
-rw-r--r--testing/git-secret/APKBUILD15
-rw-r--r--testing/git2json/APKBUILD21
-rw-r--r--testing/gitoxide/APKBUILD74
-rw-r--r--testing/gitoxide/skip-online-tests.patch20
-rw-r--r--testing/gitoxide/system-curl.patch27
-rw-r--r--testing/gitoxide/zlib-ng.patch52
-rw-r--r--testing/glacier-calc/APKBUILD26
-rw-r--r--testing/glacier-calc/remove-mapplauncherd-dep.patch12
-rw-r--r--testing/glfw-wayland/APKBUILD52
-rw-r--r--testing/glfw-wayland/request-order.patch49
-rw-r--r--testing/glfw-wayland/silence-gigaspam.patch28
-rw-r--r--testing/glmark2/APKBUILD12
-rw-r--r--testing/glmark2/py3-compat.patch22
-rw-r--r--testing/glog/APKBUILD38
-rw-r--r--testing/glog/pc-file.patch39
-rw-r--r--testing/gloox/APKBUILD35
-rw-r--r--testing/glow/APKBUILD47
-rw-r--r--testing/glslviewer/APKBUILD54
-rw-r--r--testing/gmenuharness/APKBUILD46
-rw-r--r--testing/gmic/APKBUILD67
-rw-r--r--testing/gmic/notune.patch13
-rw-r--r--testing/gmic/rpath.patch26
-rw-r--r--testing/gmid/APKBUILD49
-rw-r--r--testing/gmid/gmid.conf31
-rw-r--r--testing/gmid/gmid.confd2
-rw-r--r--testing/gmid/gmid.initd45
-rw-r--r--testing/gmid/gmid.pre-install6
-rw-r--r--testing/gmobile/APKBUILD33
-rw-r--r--testing/gmsh/APKBUILD62
-rw-r--r--testing/gn/APKBUILD31
-rw-r--r--testing/gn/python3.patch220
-rw-r--r--testing/gnome-common/APKBUILD32
-rw-r--r--testing/gnome-latex/APKBUILD61
-rw-r--r--testing/gnome-metronome/APKBUILD42
-rw-r--r--testing/gnomecast/APKBUILD50
-rw-r--r--testing/gnomecast/no-pandoc.patch23
-rw-r--r--testing/gnu-apl/APKBUILD40
-rw-r--r--testing/gnunet-gtk/APKBUILD36
-rw-r--r--testing/gnunet/APKBUILD87
-rw-r--r--testing/gnunet/gnunet-system-services.initd18
-rw-r--r--testing/gnunet/gnunet-system.conf3
-rw-r--r--testing/gnunet/gnunet-user-services.initd16
-rw-r--r--testing/gnunet/gnunet.post-install16
-rw-r--r--testing/gnunet/gnunet.pre-install11
-rw-r--r--testing/gnunet/setup-gnunet-user90
-rw-r--r--testing/gnurl/APKBUILD86
-rw-r--r--testing/go-acceptlanguageparser/APKBUILD36
-rw-r--r--testing/go-conf/APKBUILD43
-rw-r--r--testing/go-context/APKBUILD37
-rw-r--r--testing/go-httputils/APKBUILD36
-rw-r--r--testing/go-jsonnet/APKBUILD40
-rw-r--r--testing/go-mtpfs/APKBUILD27
-rw-r--r--testing/go-mux/APKBUILD35
-rw-r--r--testing/go-nats/APKBUILD38
-rw-r--r--testing/go-nuid/APKBUILD36
-rw-r--r--testing/go-passbolt-cli/APKBUILD36
-rwxr-xr-xtesting/go-passbolt-cli/passbolt-cli-helper.sh16
-rw-r--r--testing/go-phoenix/APKBUILD37
-rw-r--r--testing/go-pkac/APKBUILD36
-rw-r--r--testing/go-securecookie/APKBUILD36
-rw-r--r--testing/go-sloth/APKBUILD36
-rw-r--r--testing/go-spreed-turnservicecli/APKBUILD36
-rw-r--r--testing/go-swag/APKBUILD46
-rw-r--r--testing/go-swag/enums-test-32bit.patch22
-rw-r--r--testing/go-uuid/APKBUILD36
-rw-r--r--testing/go-websocket/APKBUILD32
-rw-r--r--testing/gobang/APKBUILD36
-rw-r--r--testing/gobolight/APKBUILD38
-rw-r--r--testing/gobuster/APKBUILD30
-rw-r--r--testing/gocryptfs/APKBUILD38
-rw-r--r--testing/gocryptfs/remove_pandoc.patch18
-rw-r--r--testing/godot/APKBUILD157
-rw-r--r--testing/godot/crash_handler_x11.patch27
-rw-r--r--testing/godot/gcc13.patch10
-rw-r--r--testing/godot/no-execinfo.patch27
-rw-r--r--testing/gomp/APKBUILD26
-rw-r--r--testing/googler/APKBUILD33
-rw-r--r--testing/goomwwm/APKBUILD2
-rw-r--r--testing/gops/APKBUILD30
-rw-r--r--testing/gopt/APKBUILD47
-rw-r--r--testing/goreman/APKBUILD29
-rw-r--r--testing/gortr/APKBUILD54
-rw-r--r--testing/gortr/gortr.confd2
-rw-r--r--testing/gortr/gortr.initd26
-rw-r--r--testing/gortr/gortr.pre-install6
-rw-r--r--testing/gosu/APKBUILD41
-rw-r--r--testing/gotestsum/APKBUILD24
-rw-r--r--testing/goxel/APKBUILD34
-rw-r--r--testing/goxel/fix-musl.patch13
-rw-r--r--testing/goxel/goxel.desktop7
-rw-r--r--testing/gpa/APKBUILD13
-rw-r--r--testing/gperftools/APKBUILD108
-rw-r--r--testing/gperftools/failed-tests.patch29
-rw-r--r--testing/gperftools/pkgconfig.patch19
-rw-r--r--testing/gpg-remailer/APKBUILD6
-rw-r--r--testing/gpm/APKBUILD76
-rw-r--r--testing/gpm/constify-format-strings.patch85
-rw-r--r--testing/gpm/error-format.patch39
-rw-r--r--testing/gpm/fix-highly-illegal-return-of-in-as-char.patch44
-rw-r--r--testing/gpm/fix-signedness-issue.patch24
-rw-r--r--testing/gpm/gpm-include-sysmacros.patch10
-rw-r--r--testing/gpm/gpm.confd8
-rw-r--r--testing/gpm/gpm.initd10
-rw-r--r--testing/gpm/install-shared-libs-with-+x-perms.patch25
-rw-r--r--testing/gpm/install-unversioned-solibrary.patch36
-rw-r--r--testing/gpm/musl-fixes.patch64
-rw-r--r--testing/gprbuild/APKBUILD31
-rw-r--r--testing/gpsbabel/APKBUILD63
-rw-r--r--testing/gpscorrelate/APKBUILD47
-rw-r--r--testing/gpscorrelate/exiv2-0.28.patch87
-rw-r--r--testing/gr-satellites/APKBUILD39
-rw-r--r--testing/gr-satellites/no-zip-man.patch18
-rw-r--r--testing/gradio/APKBUILD34
-rw-r--r--testing/grafana-image-renderer/APKBUILD34
-rw-r--r--testing/grafana-image-renderer/grafana-image-renderer.json20
-rw-r--r--testing/grafana/APKBUILD50
-rw-r--r--testing/grafana/grafana.confd16
-rw-r--r--testing/grafana/grafana.initd24
-rw-r--r--testing/grafana/grafana.pre-install8
-rw-r--r--testing/granite7/APKBUILD49
-rw-r--r--testing/grass/APKBUILD35
-rw-r--r--testing/grcov/APKBUILD36
-rw-r--r--testing/greetd-mini-wl-greeter/APKBUILD42
-rw-r--r--testing/greetd-regreet/APKBUILD39
-rw-r--r--testing/greetd-wlgreet/APKBUILD43
-rw-r--r--testing/grip/APKBUILD32
-rw-r--r--testing/gron/APKBUILD40
-rw-r--r--testing/gron/go.mod10
-rw-r--r--testing/gron/go.sum12
-rw-r--r--testing/grpc-health-check/APKBUILD34
-rw-r--r--testing/grpc-java/APKBUILD25
-rw-r--r--testing/grpcui/APKBUILD31
-rw-r--r--testing/grpcurl/APKBUILD31
-rw-r--r--testing/gsettings-qt/APKBUILD32
-rw-r--r--testing/gsimplecal/APKBUILD28
-rw-r--r--testing/gst-plugins-rs/APKBUILD60
-rw-r--r--testing/gst-plugins-rs/dylib.patch13
-rw-r--r--testing/gst-rtsp-server/APKBUILD43
-rw-r--r--testing/gstreamer-vaapi/APKBUILD32
-rw-r--r--testing/gstreamermm/APKBUILD22
-rw-r--r--testing/gtk4-layer-shell/APKBUILD62
-rw-r--r--testing/gtk4-layer-shell/no-lua-test.patch13
-rw-r--r--testing/gtkhash/APKBUILD89
-rw-r--r--testing/gtklock/APKBUILD25
-rw-r--r--testing/gtksourceviewmm3/APKBUILD38
-rw-r--r--testing/gtksourceviewmm4/APKBUILD39
-rw-r--r--testing/gtkwave/APKBUILD46
-rw-r--r--testing/guacamole-server/APKBUILD47
-rw-r--r--testing/guake/APKBUILD59
-rw-r--r--testing/guake/fix-install.patch19
-rw-r--r--testing/guetzli/APKBUILD27
-rw-r--r--testing/gufw/APKBUILD46
-rw-r--r--testing/guish/APKBUILD31
-rw-r--r--testing/gumbo-parser/APKBUILD46
-rw-r--r--testing/gutenprint/APKBUILD81
-rw-r--r--testing/gutenprint/gutenprint-O6.patch281
-rw-r--r--testing/gutenprint/musl-fix-header.patch12
-rw-r--r--testing/gutenprint/pagesize-name-clash.patch14
-rw-r--r--testing/gx-go/APKBUILD53
-rw-r--r--testing/gx-go/glide.lock86
-rw-r--r--testing/gx-go/glide.yaml12
-rw-r--r--testing/gx-go/gomod.patch190
-rw-r--r--testing/gx/APKBUILD44
-rw-r--r--testing/gx/glide.lock84
-rw-r--r--testing/gx/glide.yaml16
-rw-r--r--testing/gyp/APKBUILD29
-rw-r--r--testing/h1-cli/APKBUILD37
-rw-r--r--testing/h26forge/APKBUILD30
-rw-r--r--testing/h4h5tools/APKBUILD39
-rw-r--r--testing/h4h5tools/h4h5tools-format-security-fix.patch46
-rw-r--r--testing/habitctl/APKBUILD30
-rw-r--r--testing/halp/APKBUILD52
-rw-r--r--testing/hamlib/APKBUILD52
-rw-r--r--testing/hamster-time-tracker/APKBUILD62
-rw-r--r--testing/hamster-time-tracker/no-version-check.patch24
-rw-r--r--testing/handbrake/APKBUILD97
-rw-r--r--testing/handbrake/handbrake-9999-remove-dvdnav-dup.patch20
-rw-r--r--testing/handbrake/handbrake-9999-remove-faac-dependency.patch84
-rw-r--r--testing/handlebars/APKBUILD44
-rw-r--r--testing/handlebars/test_lmdb_cache.patch15
-rw-r--r--testing/hangover-wine/APKBUILD133
-rw-r--r--testing/hangover-wine/rpath.patch57
-rw-r--r--testing/hardened-malloc/APKBUILD33
-rw-r--r--testing/hare-cairo/APKBUILD30
-rw-r--r--testing/hare-madeline/APKBUILD26
-rw-r--r--testing/hare-scfg/APKBUILD28
-rw-r--r--testing/hare-wayland/APKBUILD29
-rw-r--r--testing/hare-xkb/APKBUILD31
-rw-r--r--testing/haredo/APKBUILD31
-rw-r--r--testing/hari/APKBUILD24
-rw-r--r--testing/harminv/APKBUILD19
-rw-r--r--testing/hashcat/0001-fix-modules-path.patch33
-rw-r--r--testing/hashcat/APKBUILD30
-rw-r--r--testing/hatop/APKBUILD22
-rw-r--r--testing/hctl/APKBUILD33
-rw-r--r--testing/hdf4/10-hdf-ppc.patch189
-rw-r--r--testing/hdf4/20-hdf-4.2.4-sparc.patch78
-rw-r--r--testing/hdf4/30-hdf-s390.patch317
-rw-r--r--testing/hdf4/40-hdf-arm.patch81
-rw-r--r--testing/hdf4/50-hdf-aarch64.patch289
-rw-r--r--testing/hdf4/60-hdf-ppc64le.patch83
-rw-r--r--testing/hdf4/APKBUILD117
-rw-r--r--testing/hdr10plus-tool/APKBUILD37
-rw-r--r--testing/headscale/APKBUILD63
-rw-r--r--testing/headscale/headscale.initd25
-rw-r--r--testing/headscale/headscale.pre-install6
-rw-r--r--testing/heh/APKBUILD40
-rw-r--r--testing/helm-ls/APKBUILD35
-rw-r--r--testing/helmfile/APKBUILD62
-rw-r--r--testing/helvum/APKBUILD29
-rw-r--r--testing/helvum/pipewire-rs-0.7.2.patch17
-rw-r--r--testing/heplify-server/APKBUILD47
-rw-r--r--testing/heplify-server/default-config.patch33
-rw-r--r--testing/heplify-server/heplify-server.initd4
-rw-r--r--testing/heplify/APKBUILD38
-rw-r--r--testing/heplify/heplify.initd2
-rw-r--r--testing/herbe/APKBUILD24
-rw-r--r--testing/hex/APKBUILD34
-rw-r--r--testing/hexdiff/APKBUILD29
-rw-r--r--testing/hexedit/APKBUILD41
-rw-r--r--testing/hexer/APKBUILD15
-rw-r--r--testing/hexinject/APKBUILD30
-rw-r--r--testing/hexinject/fix-build.patch15
-rw-r--r--testing/hfsprogs/APKBUILD68
-rw-r--r--testing/hfsprogs/APSL-2.0.txt366
-rw-r--r--testing/hfsprogs/fix-stdarg.patch122
-rw-r--r--testing/hfsprogs/musl-compat.patch136
-rw-r--r--testing/hfst/APKBUILD36
-rw-r--r--testing/hfst/missing_unistd_include.patch10
-rw-r--r--testing/hiawatha/APKBUILD50
-rw-r--r--testing/hiawatha/hiawatha.conf.sample10
-rw-r--r--testing/hiawatha/letsencrypt.helper2
-rw-r--r--testing/hidrd/APKBUILD34
-rw-r--r--testing/hidrd/fix-check.patch198
-rw-r--r--testing/hidrd/musl-fix-headers.patch2
-rw-r--r--testing/hikari/APKBUILD45
-rw-r--r--testing/hikari/flag-arg.patch17
-rw-r--r--testing/hilbish/APKBUILD58
-rw-r--r--testing/hilbish/hilbish.post-install3
l---------testing/hilbish/hilbish.post-upgrade1
-rw-r--r--testing/hilbish/hilbish.pre-deinstall3
-rw-r--r--testing/himitsu-firefox/APKBUILD26
-rwxr-xr-xtesting/himitsu-firefox/himitsu-firefox.post-install10
-rw-r--r--testing/himitsu-git/APKBUILD28
-rw-r--r--testing/himitsu-keyring/APKBUILD29
-rw-r--r--testing/hiprompt-gtk-py/APKBUILD30
-rw-r--r--testing/hiredict/APKBUILD51
-rw-r--r--testing/homebank/APKBUILD17
-rw-r--r--testing/homer-app/0001-change-web-and-config-paths.patch89
-rw-r--r--testing/homer-app/APKBUILD32
-rw-r--r--testing/homer-app/change-default-locations.patch50
-rw-r--r--testing/homer-app/homer-app.initd2
-rw-r--r--testing/hopalong/APKBUILD37
-rw-r--r--testing/horizon/APKBUILD138
-rw-r--r--testing/horizon/json-cast-character-to-unsigned-for-comparrison.patch19
-rw-r--r--testing/horizon/riscv.patch24
-rw-r--r--testing/horizon/strerror.patch12
-rw-r--r--testing/horizon/werror.patch12
-rw-r--r--testing/horust/APKBUILD44
-rw-r--r--testing/hotspot/APKBUILD44
-rw-r--r--testing/howard-bc/APKBUILD10
-rw-r--r--testing/hping3/APKBUILD8
-rw-r--r--testing/hping3/hping3-bytesex.patch8
-rw-r--r--testing/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch143
-rw-r--r--testing/hplip/APKBUILD63
-rw-r--r--testing/hplip/fix-includes.patch20
-rw-r--r--testing/hplip/fix-memmove.patch12
-rw-r--r--testing/hplip/more-imageprocessor-removes.patch67
-rw-r--r--testing/hplip/no-empty-glob.patch18
-rw-r--r--testing/hplip/python-3.8-compat.patch15
-rw-r--r--testing/hsetroot/APKBUILD2
-rw-r--r--testing/hstdb/APKBUILD52
-rw-r--r--testing/hstdb/default-histfile-path.patch33
-rw-r--r--testing/hstdb/fix-format_duration-panicing.patch332
-rw-r--r--testing/hstdb/rename-text_excluded.patch27
-rw-r--r--testing/hstdb/replace-pretty_env_logger.patch137
-rw-r--r--testing/hstdb/strip-features.patch12
-rw-r--r--testing/htmlcxx/APKBUILD30
-rw-r--r--testing/htmldoc/APKBUILD30
-rw-r--r--testing/htslib/APKBUILD49
-rw-r--r--testing/httpie-oauth/APKBUILD14
-rw-r--r--testing/httrack/APKBUILD11
-rw-r--r--testing/hub/APKBUILD8
-rw-r--r--testing/hubble-cli/APKBUILD57
-rw-r--r--testing/hubble-cli/byteorder-add-s390x-support.patch11
-rw-r--r--testing/hunspell-ca-es/APKBUILD22
-rw-r--r--testing/hunspell-es-ar/APKBUILD35
-rw-r--r--testing/hurl/APKBUILD30
-rw-r--r--testing/hw-probe/APKBUILD33
-rw-r--r--testing/hwatch/APKBUILD42
-rw-r--r--testing/hwloc/APKBUILD44
-rw-r--r--testing/hx/APKBUILD30
-rw-r--r--testing/hx/broken-makefile.patch40
-rw-r--r--testing/hx/hx.post-install7
-rw-r--r--testing/hy/0001-get_version.py-Also-write-VERSIONFILE-when-HY_VERSIO.patch49
-rw-r--r--testing/hy/APKBUILD40
-rw-r--r--testing/hyperfine/APKBUILD40
-rw-r--r--testing/hyperlink/APKBUILD40
-rw-r--r--testing/hyperlink/bump-getrandom.patch42
-rw-r--r--testing/hypnotix/APKBUILD46
-rw-r--r--testing/hyprcursor/APKBUILD57
-rw-r--r--testing/hyprland/APKBUILD96
-rw-r--r--testing/hyprland/use-system-installed-udis86.patch15
-rw-r--r--testing/hyx/APKBUILD22
-rw-r--r--testing/i2pd/APKBUILD54
-rw-r--r--testing/i2pd/i2pd.confd13
-rw-r--r--testing/i2pd/i2pd.initd52
-rw-r--r--testing/i2pd/i2pd.pre-install7
-rw-r--r--testing/i2util/APKBUILD2
-rw-r--r--testing/i3blocks/APKBUILD37
-rw-r--r--testing/i3blocks/fix-makefile.patch15
-rw-r--r--testing/i3status-rust/APKBUILD64
-rw-r--r--testing/i3wm-gaps/APKBUILD39
-rw-r--r--testing/ibmswtpm2/APKBUILD24
-rw-r--r--testing/ibus-anthy/APKBUILD32
-rw-r--r--testing/ibus-rime/APKBUILD33
-rw-r--r--testing/icdiff/APKBUILD42
-rw-r--r--testing/icdiff/disable-git-diff-test.patch15
-rw-r--r--testing/icdiff/fix-flake8-binary.patch24
-rw-r--r--testing/icdiff/fix-python-interpreter.patch12
-rw-r--r--testing/icestorm/0001-fix-format-specifiers.patch95
-rw-r--r--testing/icestorm/APKBUILD33
-rw-r--r--testing/icingaweb2-module-businessprocess/APKBUILD15
-rw-r--r--testing/icingaweb2-module-fileshipper/APKBUILD14
-rw-r--r--testing/icingaweb2-module-generictts/APKBUILD12
-rw-r--r--testing/icingaweb2-module-pnp/APKBUILD8
-rw-r--r--testing/icmake/APKBUILD11
-rw-r--r--testing/idesk/APKBUILD37
-rw-r--r--testing/idesk/imlib2.patch27
-rw-r--r--testing/ideviceinstaller/APKBUILD33
-rw-r--r--testing/idevicerestore/APKBUILD33
-rw-r--r--testing/idris/APKBUILD157
-rw-r--r--testing/idris/cabal.config98
-rw-r--r--testing/ifuse/APKBUILD34
-rw-r--r--testing/igrep/APKBUILD40
-rw-r--r--testing/igt-gpu-tools/APKBUILD61
-rw-r--r--testing/igt-gpu-tools/musl.patch99
-rw-r--r--testing/iipsrv/APKBUILD63
-rw-r--r--testing/iipsrv/RawTile.patch10
-rw-r--r--testing/iipsrv/apache.iipsrv.conf1
-rw-r--r--testing/iipsrv/iipsrv.confd5
-rw-r--r--testing/iipsrv/iipsrv.initd14
-rw-r--r--testing/iipsrv/iipsrv.pre-install8
-rw-r--r--testing/iipsrv/lighttpd.iipsrv.conf6
-rw-r--r--testing/iir1/APKBUILD41
-rw-r--r--testing/ijq/APKBUILD35
-rw-r--r--testing/ijq/makefile.patch9
-rw-r--r--testing/imapfilter/APKBUILD12
-rw-r--r--testing/imediff/APKBUILD33
-rw-r--r--testing/imgdiff/APKBUILD30
-rw-r--r--testing/imrsh/APKBUILD29
-rw-r--r--testing/infiniband-diags/APKBUILD30
-rw-r--r--testing/initify/APKBUILD2
-rw-r--r--testing/innernet/APKBUILD69
-rw-r--r--testing/innernet/innernet-server.confd4
-rw-r--r--testing/innernet/innernet-server.initd19
-rw-r--r--testing/innernet/innernet.confd4
-rw-r--r--testing/innernet/innernet.initd19
-rw-r--r--testing/innernet/unbundle-sqlite.patch25
-rw-r--r--testing/interception-tools/APKBUILD50
-rw-r--r--testing/interception-tools/modules-load.conf1
-rw-r--r--testing/interception-tools/udevmon.initd11
-rw-r--r--testing/intiface-central/APKBUILD85
-rw-r--r--testing/intiface-central/intiface-central7
-rw-r--r--testing/intiface-central/intiface-central.desktop8
-rw-r--r--testing/intiface-central/no-werror.patch11
-rw-r--r--testing/intiface-central/pmos-fit-screen.patch105
-rw-r--r--testing/intiface-central/system-corrosion.patch24
-rw-r--r--testing/intiface-central/system-flutter.patch15
-rw-r--r--testing/iodine/APKBUILD27
-rw-r--r--testing/ion-shell/APKBUILD28
-rw-r--r--testing/ion-shell/ion-shell.post-install3
l---------testing/ion-shell/ion-shell.post-upgrade1
-rw-r--r--testing/ion-shell/ion-shell.pre-deinstall3
-rw-r--r--testing/iozone/APKBUILD45
-rw-r--r--testing/ip2location/APKBUILD40
-rw-r--r--testing/iprange/APKBUILD2
-rw-r--r--testing/irccd/APKBUILD34
-rw-r--r--testing/ircd-hybrid/APKBUILD44
-rw-r--r--testing/irclog2html/APKBUILD26
-rw-r--r--testing/isoimagewriter/APKBUILD31
-rw-r--r--testing/isoinfo/APKBUILD25
-rw-r--r--testing/isomd5sum/APKBUILD31
-rw-r--r--testing/itd/APKBUILD33
-rw-r--r--testing/iverilog/APKBUILD40
-rw-r--r--testing/j4-dmenu-desktop/APKBUILD33
-rw-r--r--testing/jack_capture/APKBUILD28
-rw-r--r--testing/jackal/APKBUILD60
-rw-r--r--testing/jackal/config.yml.tmpl138
-rw-r--r--testing/jackal/init.sql3
-rw-r--r--testing/jackal/jackal.initd18
-rw-r--r--testing/jackal/jackal.logrotate7
-rw-r--r--testing/jackal/jackal.post-install12
-rw-r--r--testing/jackal/jackal.pre-install11
-rw-r--r--testing/jackdaw/APKBUILD46
-rw-r--r--testing/jackett/APKBUILD70
-rw-r--r--testing/jackett/jackett.confd6
-rw-r--r--testing/jackett/jackett.initd26
-rw-r--r--testing/jackett/jackett.pre-install6
-rw-r--r--testing/jackline/APKBUILD107
-rw-r--r--testing/jackline/use-built-in-uchar-lib.patch10
-rw-r--r--testing/jalv/APKBUILD55
-rw-r--r--testing/jami-daemon/APKBUILD86
-rw-r--r--testing/jami-daemon/dhtnet-unpack-dir.patch11
-rw-r--r--testing/jami-qt/APKBUILD77
-rw-r--r--testing/jami-qt/drop-qt-version-check.patch19
-rw-r--r--testing/jami-qt/system.patch33
-rw-r--r--testing/jaq/APKBUILD36
-rw-r--r--testing/jaq/fix-drop-test.patch13
-rw-r--r--testing/java-asmtools/APKBUILD26
-rw-r--r--testing/java-asmtools/java-version-check.patch17
-rw-r--r--testing/java-jtharness/APKBUILD22
-rw-r--r--testing/java-jtreg/APKBUILD90
-rw-r--r--testing/java-jtreg/disable-gcc-error.patch23
-rw-r--r--testing/java-jtreg/fix-build.patch11
-rw-r--r--testing/java-jtreg/headless-tests.patch17
-rw-r--r--testing/java-jtreg/jtreg-symlink-patch.txt27
-rw-r--r--testing/jbigkit/APKBUILD4
-rw-r--r--testing/jdebp-redo/APKBUILD43
-rw-r--r--testing/jdupes/APKBUILD15
-rw-r--r--testing/jdupes/system-xxhash.patch48
-rw-r--r--testing/jedi-language-server/APKBUILD46
-rw-r--r--testing/jfrog-cli/APKBUILD18
-rw-r--r--testing/jgmenu/APKBUILD38
-rw-r--r--testing/jhead/APKBUILD30
-rw-r--r--testing/jicofo/APKBUILD63
-rw-r--r--testing/jicofo/jicofo.conf10
-rw-r--r--testing/jicofo/jicofo.confd36
-rw-r--r--testing/jicofo/jicofo.initd28
-rw-r--r--testing/jicofo/jicofo.logrotate10
-rw-r--r--testing/jicofo/jicofo.pre-install6
-rw-r--r--testing/jicofo/sip-communicator.properties1
-rw-r--r--testing/jigasi/APKBUILD55
-rw-r--r--testing/jigasi/jigasi.confd27
-rw-r--r--testing/jigasi/jigasi.initd29
-rw-r--r--testing/jigasi/jigasi.logrotate10
-rw-r--r--testing/jigasi/jigasi.pre-install6
-rw-r--r--testing/jigasi/sip-communicator.properties160
-rw-r--r--testing/jinja2-cli/APKBUILD26
-rw-r--r--testing/jitsi-meet/APKBUILD86
-rw-r--r--testing/jitsi-meet/openssl3.patch13
-rw-r--r--testing/jitsi-videobridge/APKBUILD67
-rw-r--r--testing/jitsi-videobridge/jitsi-videobridge.confd34
-rw-r--r--testing/jitsi-videobridge/jitsi-videobridge.initd28
-rw-r--r--testing/jitsi-videobridge/jitsi-videobridge.logrotate12
-rw-r--r--testing/jitsi-videobridge/jitsi-videobridge.pre-install6
-rw-r--r--testing/jitsi-videobridge/jvb.conf13
-rw-r--r--testing/jitsi-videobridge/sip-communicator.properties20
-rw-r--r--testing/jitterentropy-rngd/APKBUILD31
-rw-r--r--testing/jitterentropy-rngd/jitterentropy-rngd.initd13
-rw-r--r--testing/jreleaser/APKBUILD61
-rw-r--r--testing/jrsonnet-cli/APKBUILD36
-rw-r--r--testing/jshon/APKBUILD37
-rw-r--r--testing/jshon/disable-werror.patch10
-rw-r--r--testing/jshon/missing-typesh.patch10
-rw-r--r--testing/jsmn/APKBUILD22
-rw-r--r--testing/json-c0.12/APKBUILD45
-rw-r--r--testing/json2tsv/APKBUILD52
-rw-r--r--testing/jsonnet-bundler/APKBUILD30
-rw-r--r--testing/jsonnet-language-server/APKBUILD30
-rw-r--r--testing/junit2html/APKBUILD33
-rw-r--r--testing/junit2html/setup.py.patch10
-rw-r--r--testing/jwt-cli/APKBUILD34
-rw-r--r--testing/k2/APKBUILD27
-rw-r--r--testing/k3s/APKBUILD73
-rw-r--r--testing/k3s/k3s.confd4
-rw-r--r--testing/k3s/k3s.initd28
-rw-r--r--testing/k3s/k3s.logrotate11
-rw-r--r--testing/k3s/k3s.modules-load2
-rw-r--r--testing/k3sup/APKBUILD53
-rw-r--r--testing/kabmat/APKBUILD29
-rw-r--r--testing/kabmat/makefile.patch43
-rw-r--r--testing/kak-lsp/APKBUILD34
-rw-r--r--testing/kakoune/APKBUILD30
-rw-r--r--testing/kakoune/alpine-linux.kak4
-rw-r--r--testing/kanister-tools/APKBUILD62
-rw-r--r--testing/kannel/APKBUILD18
-rw-r--r--testing/kannel/gcc-10.patch30
-rw-r--r--testing/kapow/APKBUILD33
-rw-r--r--testing/kapow/fix-cgo.patch11
-rw-r--r--testing/katana/APKBUILD35
-rw-r--r--testing/katarakt/APKBUILD32
-rw-r--r--testing/kblocks/APKBUILD31
-rw-r--r--testing/kblog/APKBUILD32
-rw-r--r--testing/kbounce/APKBUILD31
-rw-r--r--testing/kbreakout/APKBUILD31
-rw-r--r--testing/kbs2/APKBUILD52
-rw-r--r--testing/kbs2/cargo-update-libc-lfs64.patch16
-rw-r--r--testing/kcgi/APKBUILD30
-rw-r--r--testing/kdeedu-data/APKBUILD26
-rw-r--r--testing/kdegraphics-mobipocket/APKBUILD28
-rw-r--r--testing/kdegraphics-thumbnailers/APKBUILD26
-rw-r--r--testing/kdevelop-python/APKBUILD34
-rw-r--r--testing/kdiamond/APKBUILD27
-rw-r--r--testing/kdiskmark/APKBUILD47
-rw-r--r--testing/keama/APKBUILD34
-rw-r--r--testing/keepassxc-browser/APKBUILD30
-rw-r--r--testing/kerberoast/APKBUILD37
-rw-r--r--testing/kexec-tools/APKBUILD37
-rw-r--r--testing/kexec-tools/fix-build-on-Alpine-linux.patch28
-rw-r--r--testing/kexec-tools/kexec-tools-2.0.16-fix-config-sub.patch10
-rw-r--r--testing/keybase-client/APKBUILD13
-rw-r--r--testing/keynav/APKBUILD30
-rw-r--r--testing/keystone/APKBUILD59
-rw-r--r--testing/keystone/none-build-type.patch15
-rw-r--r--testing/kfc/APKBUILD26
-rw-r--r--testing/kfourinline/APKBUILD27
-rw-r--r--testing/kgoldrunner/APKBUILD27
-rw-r--r--testing/kgx/APKBUILD40
-rw-r--r--testing/khelpcenter/APKBUILD31
-rw-r--r--testing/khinsider/APKBUILD34
-rw-r--r--testing/khronos/APKBUILD38
-rw-r--r--testing/kibana/APKBUILD58
-rw-r--r--testing/kibana/default_config.patch17
-rw-r--r--testing/kibana/kibana.initd31
-rw-r--r--testing/kibana/kibana.pre-install4
-rw-r--r--testing/kicad-library/APKBUILD55
-rw-r--r--testing/kicad/APKBUILD115
-rw-r--r--testing/kigo/APKBUILD27
-rw-r--r--testing/killbots/APKBUILD27
-rw-r--r--testing/kimchi/APKBUILD21
-rw-r--r--testing/kind/APKBUILD47
-rw-r--r--testing/kind/skip-version-test.patch11
-rw-r--r--testing/kine/APKBUILD32
-rw-r--r--testing/kio-fuse/APKBUILD41
-rw-r--r--testing/kio-fuse/kio-fuse.post-install5
-rw-r--r--testing/kio-fuse/modules-load.conf1
-rw-r--r--testing/kipi-plugins/APKBUILD27
-rw-r--r--testing/kirc/APKBUILD29
-rw-r--r--testing/kiriki/APKBUILD27
-rw-r--r--testing/kismet/APKBUILD94
-rw-r--r--testing/kitty/APKBUILD40
-rw-r--r--testing/kitty/fix-ppc64le-build-ioctl-with-musl.patch22
-rw-r--r--testing/kjumpingcube/APKBUILD27
-rw-r--r--testing/kjv/APKBUILD30
-rw-r--r--testing/klfc/APKBUILD87
-rw-r--r--testing/klfc/cabal.config68
-rw-r--r--testing/klfc/ghc9-001.patch22
-rw-r--r--testing/klfc/ghc9-002.patch41
-rw-r--r--testing/klickety/APKBUILD27
-rw-r--r--testing/klines/APKBUILD27
-rw-r--r--testing/kmscon/APKBUILD47
-rw-r--r--testing/knative-client/APKBUILD49
-rw-r--r--testing/knavalbattle/APKBUILD27
-rw-r--r--testing/knetwalk/APKBUILD31
-rw-r--r--testing/knights/APKBUILD27
-rw-r--r--testing/knxd/APKBUILD49
-rw-r--r--testing/ko/APKBUILD47
-rw-r--r--testing/ko/unset-CGO_ENABLED.patch20
-rw-r--r--testing/kodi-audioencoder-flac/APKBUILD30
-rw-r--r--testing/kodi-audioencoder-lame/APKBUILD30
-rw-r--r--testing/kodi-audioencoder-vorbis/APKBUILD30
-rw-r--r--testing/kodi-audioencoder-wav/APKBUILD30
-rw-r--r--testing/kodi-game-libretro-atari800/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-beetle-bsnes/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-beetle-lynx/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-beetle-ngp/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-beetle-pce-fast/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-beetle-pcfx/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-beetle-psx/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-beetle-saturn/APKBUILD36
-rw-r--r--testing/kodi-game-libretro-beetle-supergrafx/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-beetle-vb/APKBUILD38
-rw-r--r--testing/kodi-game-libretro-beetle-wswan/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-desmume/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-dosbox/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-fbneo/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-frodo/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-mame2000/APKBUILD35
-rw-r--r--testing/kodi-game-libretro-mame2003/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-mgba/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-mupen64plus-nx/APKBUILD34
-rw-r--r--testing/kodi-game-libretro-nestopia/APKBUILD37
-rw-r--r--testing/kodi-game-libretro-snes9x/APKBUILD36
-rw-r--r--testing/kodi-game-libretro-theodore/APKBUILD37
-rw-r--r--testing/kodi-game-libretro/APKBUILD31
-rw-r--r--testing/kodi-inputstream-adaptive/APKBUILD41
-rw-r--r--testing/kodi-inputstream-ffmpegdirect/APKBUILD35
-rw-r--r--testing/kodi-inputstream-ffmpegdirect/ctime.patch12
-rw-r--r--testing/kodi-inputstream-ffmpegdirect/gcc13.patch24
-rw-r--r--testing/kodi-inputstream-rtmp/APKBUILD30
-rw-r--r--testing/kodi-peripheral-joystick/APKBUILD30
-rw-r--r--testing/kodi-pvr-hts/APKBUILD33
-rw-r--r--testing/kodi-pvr-hts/ctime.patch12
-rw-r--r--testing/kodi-pvr-iptvsimple/APKBUILD30
-rw-r--r--testing/kodi-vfs-libarchive/APKBUILD30
-rw-r--r--testing/kodi-vfs-rar/APKBUILD30
-rw-r--r--testing/kodi-vfs-sacd/APKBUILD33
-rw-r--r--testing/kodi-vfs-sacd/int-conversion.patch16
-rw-r--r--testing/kodi-vfs-sftp/APKBUILD30
-rw-r--r--testing/komikku/APKBUILD59
-rw-r--r--testing/kompose/APKBUILD67
-rw-r--r--testing/kompose/fix-cgo.patch11
-rw-r--r--testing/kondo/APKBUILD45
-rw-r--r--testing/kopia/APKBUILD51
-rw-r--r--testing/kopia/skip-docker-tests.patch13
-rw-r--r--testing/kops/APKBUILD33
-rw-r--r--testing/kotlin-language-server/APKBUILD31
-rw-r--r--testing/kpatch/02-argp.patch11
-rw-r--r--testing/kpatch/03-ppc64.patch15
-rw-r--r--testing/kpatch/APKBUILD41
-rw-r--r--testing/krita-plugin-gmic/APKBUILD53
-rw-r--r--testing/krita-plugin-gmic/gmic-sys.patch14
-rw-r--r--testing/krita-plugin-gmic/no-qt6.patch11
-rw-r--r--testing/kube-no-trouble/APKBUILD39
-rw-r--r--testing/kubectl-cert-manager/APKBUILD34
-rw-r--r--testing/kubectl-krew/APKBUILD42
-rw-r--r--testing/kubectl-krew/test-use-testing-tmpdir.patch15
-rw-r--r--testing/kubectl-oidc_login/APKBUILD32
-rw-r--r--testing/kubeone/APKBUILD61
-rw-r--r--testing/kubepug/APKBUILD52
-rw-r--r--testing/kubernetes/APKBUILD190
-rw-r--r--testing/kubernetes/ensure-cgo-usage.patch32
-rw-r--r--testing/kubernetes/kube-apiserver.confd7
-rwxr-xr-xtesting/kubernetes/kube-apiserver.initd20
-rw-r--r--testing/kubernetes/kube-apiserver.logrotated7
-rw-r--r--testing/kubernetes/kube-controller-manager.confd7
-rwxr-xr-xtesting/kubernetes/kube-controller-manager.initd19
-rw-r--r--testing/kubernetes/kube-controller-manager.logrotated7
-rw-r--r--testing/kubernetes/kube-proxy.confd4
-rwxr-xr-xtesting/kubernetes/kube-proxy.initd20
-rw-r--r--testing/kubernetes/kube-proxy.logrotated8
-rw-r--r--testing/kubernetes/kube-scheduler.confd7
-rwxr-xr-xtesting/kubernetes/kube-scheduler.initd19
-rw-r--r--testing/kubernetes/kube-scheduler.logrotated7
-rw-r--r--testing/kubernetes/kubelet.confd1
-rwxr-xr-xtesting/kubernetes/kubelet.initd23
-rw-r--r--testing/kubernetes/kubelet.logrotated7
-rw-r--r--testing/kubernetes/make-e2e_node-run-over-distro-bins.patch10
-rw-r--r--testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch19
-rw-r--r--testing/kubesplit/APKBUILD40
-rw-r--r--testing/kumactl/APKBUILD114
-rw-r--r--testing/kumactl/kuma-cp.confd16
-rw-r--r--testing/kumactl/kuma-cp.initd29
-rw-r--r--testing/kumactl/kuma-cp.pre-install6
-rw-r--r--testing/kumactl/kuma-dp.confd16
-rw-r--r--testing/kumactl/kuma-dp.initd28
l---------testing/kumactl/kuma-dp.pre-install1
-rw-r--r--testing/kyotocabinet/APKBUILD28
-rw-r--r--testing/ladspa/APKBUILD30
-rw-r--r--testing/ladspa/fix-memleak-in-plugin-scanning.patch11
-rw-r--r--testing/laminar/APKBUILD77
-rw-r--r--testing/laminar/laminar.initd23
-rw-r--r--testing/laminar/laminar.pre-install10
-rw-r--r--testing/laminar/laminard-location.patch13
-rw-r--r--testing/laminar/libstdc++13.patch12
-rw-r--r--testing/laminar/musl.patch12
-rw-r--r--testing/laminar/no-network.patch22
-rw-r--r--testing/laszip/APKBUILD29
-rw-r--r--testing/laz-perf/APKBUILD33
-rw-r--r--testing/laze/APKBUILD60
-rw-r--r--testing/lazymc/APKBUILD45
-rw-r--r--testing/lazymc/lazymc.confd3
-rw-r--r--testing/lazymc/lazymc.initd27
-rw-r--r--testing/lazymc/lazymc.pre-install6
-rw-r--r--testing/lcalc/APKBUILD39
-rw-r--r--testing/lcov/APKBUILD20
-rw-r--r--testing/ldapdomaindump/APKBUILD37
-rw-r--r--testing/ledger/APKBUILD35
-rw-r--r--testing/ledmon/10-musl-build.patch218
-rw-r--r--testing/ledmon/APKBUILD42
-rw-r--r--testing/legume/APKBUILD34
-rwxr-xr-xtesting/leiningen/APKBUILD28
-rw-r--r--testing/lemmy-ui/APKBUILD97
-rw-r--r--testing/lemmy-ui/lemmy-ui.confd13
-rw-r--r--testing/lemmy-ui/lemmy-ui.initd27
-rw-r--r--testing/lemmy-ui/lemmy-ui.pre-install11
-rw-r--r--testing/lemmy/APKBUILD76
-rw-r--r--testing/lemmy/fix-db-init-script.patch26
-rw-r--r--testing/lemmy/lemmy-localdb.post-install9
-rw-r--r--testing/lemmy/lemmy.initd26
-rw-r--r--testing/lemmy/lemmy.pre-install11
-rw-r--r--testing/lemonbar/APKBUILD13
-rw-r--r--testing/leptosfmt/APKBUILD42
-rw-r--r--testing/level-zero/APKBUILD37
-rw-r--r--testing/levmar-dev/APKBUILD33
-rw-r--r--testing/lf/APKBUILD37
-rw-r--r--testing/lfm/APKBUILD27
-rw-r--r--testing/lfm/interp.patch10
-rw-r--r--testing/lgogdownloader/APKBUILD36
-rw-r--r--testing/lib3mf/APKBUILD38
-rw-r--r--testing/libabigail/APKBUILD96
-rw-r--r--testing/libabigail/apk.patch16
-rw-r--r--testing/libabigail/musl-fts.patch11
-rw-r--r--testing/libantic/APKBUILD40
-rw-r--r--testing/libantlr3c/APKBUILD8
-rw-r--r--testing/libarb/APKBUILD38
-rw-r--r--testing/libaudec/APKBUILD42
-rw-r--r--testing/libax25/APKBUILD44
-rw-r--r--testing/libax25/musl.patch10
-rw-r--r--testing/libb2/APKBUILD33
-rw-r--r--testing/libbamf/APKBUILD41
-rw-r--r--testing/libbaseencode/APKBUILD26
-rw-r--r--testing/libblastrampoline/APKBUILD37
-rw-r--r--testing/libbloom/APKBUILD10
-rw-r--r--testing/libbraiding/APKBUILD32
-rw-r--r--testing/libcec-rpi/APKBUILD57
-rw-r--r--testing/libcec-rpi/fix-null-return.patch20
-rw-r--r--testing/libcli/APKBUILD6
-rw-r--r--testing/libconnman-qt/APKBUILD25
-rw-r--r--testing/libcork/APKBUILD41
-rw-r--r--testing/libcork/fix-gcc-10.patch1182
-rw-r--r--testing/libcork/format-security.patch13
-rw-r--r--testing/libcork/no-git.patch33
-rw-r--r--testing/libcorkipset/APKBUILD37
-rw-r--r--testing/libcorkipset/fix-gcc-10.patch1548
-rw-r--r--testing/libcotp/APKBUILD29
-rw-r--r--testing/libctl/APKBUILD12
-rw-r--r--testing/libcyaml/APKBUILD32
-rw-r--r--testing/libcypher-parser/APKBUILD61
-rw-r--r--testing/libdatrie/APKBUILD37
-rw-r--r--testing/libdng/APKBUILD36
-rw-r--r--testing/libdparse/389.patch23
-rw-r--r--testing/libdparse/APKBUILD35
-rw-r--r--testing/libdsme/APKBUILD33
-rw-r--r--testing/libdsme/fix-musl-incompatibility.patch145
-rw-r--r--testing/libeantic/APKBUILD73
-rw-r--r--testing/libeantic/t-init-test.patch20
-rw-r--r--testing/libeatmydata/18.patch26
-rw-r--r--testing/libeatmydata/APKBUILD42
-rw-r--r--testing/libecap/APKBUILD8
-rw-r--r--testing/libemf2svg/APKBUILD2
-rw-r--r--testing/liberasurecode/APKBUILD8
-rw-r--r--testing/libexosip2/APKBUILD42
-rw-r--r--testing/libfishsound/APKBUILD12
-rw-r--r--testing/libfixposix/APKBUILD32
-rw-r--r--testing/libfort/APKBUILD30
-rw-r--r--testing/libfossil/APKBUILD46
-rw-r--r--testing/libfyaml/APKBUILD38
-rw-r--r--testing/libgdiplus/APKBUILD32
-rw-r--r--testing/libgeotiff/APKBUILD52
-rw-r--r--testing/libgivaro/APKBUILD41
-rw-r--r--testing/libgivaro/gcc13.patch12
-rw-r--r--testing/libglacierapp/APKBUILD28
-rw-r--r--testing/libglibutil/APKBUILD23
-rw-r--r--testing/libgnomecanvas/APKBUILD36
-rw-r--r--testing/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch43
-rw-r--r--testing/libgpod/0002-Fix-spelling-errors-in-comments-and-strings-using-co.patch293
-rw-r--r--testing/libgpod/0003-Fixed-PList-deprecation.patch44
-rw-r--r--testing/libgpod/APKBUILD43
-rw-r--r--testing/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch11
-rw-r--r--testing/libgrapheme/APKBUILD25
-rw-r--r--testing/libgrilio/APKBUILD25
-rw-r--r--testing/libguestfs/APKBUILD193
-rw-r--r--testing/libguestfs/fix-missing-error-h.patch46
-rw-r--r--testing/libguestfs/fix-missing-int64_t.patch22
-rw-r--r--testing/libguestfs/python-3.8.patch49
-rw-r--r--testing/libhandy/APKBUILD43
-rw-r--r--testing/libhandy/skip-test.patch20
-rw-r--r--testing/libhomfly/APKBUILD37
-rw-r--r--testing/libhwpwm/APKBUILD26
-rw-r--r--testing/libhx/APKBUILD28
-rw-r--r--testing/libibmad/APKBUILD2
-rw-r--r--testing/libibumad/APKBUILD2
-rw-r--r--testing/libideviceactivation/APKBUILD33
-rw-r--r--testing/libigraph/APKBUILD46
-rw-r--r--testing/libiio/APKBUILD63
-rw-r--r--testing/libime/APKBUILD76
-rw-r--r--testing/libiml/APKBUILD44
-rw-r--r--testing/libimobiledevice-glue/APKBUILD35
-rw-r--r--testing/libiodata/APKBUILD23
-rw-r--r--testing/libiphb/APKBUILD35
-rw-r--r--testing/libirecovery/APKBUILD43
-rw-r--r--testing/libiscsi/APKBUILD2
-rw-r--r--testing/libjodycode/APKBUILD28
-rw-r--r--testing/libkkc/APKBUILD61
-rw-r--r--testing/liblastfm-qt/APKBUILD46
-rw-r--r--testing/liblastfm-qt/remove-deprecated-staging-server.patch98
-rw-r--r--testing/liblastfm-qt/remove-dynamic-exception-specifications.patch57
-rw-r--r--testing/liblinbox/APKBUILD50
-rw-r--r--testing/liblo/APKBUILD32
-rw-r--r--testing/liblouis/APKBUILD41
-rw-r--r--testing/libm4ri/APKBUILD48
-rw-r--r--testing/libm4rie/APKBUILD37
-rw-r--r--testing/libmce-qt/APKBUILD24
-rw-r--r--testing/libmdbx/0001-mdbx-Remove-all-checks-for-amalgated-or-git-source-i.patch207
-rw-r--r--testing/libmdbx/APKBUILD48
-rw-r--r--testing/libmdbx/fix-example.patch11
-rw-r--r--testing/libmdf/APKBUILD38
-rw-r--r--testing/libmedc/APKBUILD43
-rw-r--r--testing/libmedc/cmake-config-dir.patch11
-rw-r--r--testing/libmedc/hdf5.patch94
-rw-r--r--testing/libmesode/10-patch-configure.patch32
-rw-r--r--testing/libmesode/APKBUILD50
-rw-r--r--testing/libmhash/APKBUILD35
-rw-r--r--testing/libmlocale/APKBUILD30
-rw-r--r--testing/libmodbus/772a6e2d2249e34f460a072f6452349ae6b3b921.patch315
-rw-r--r--testing/libmodbus/APKBUILD33
-rw-r--r--testing/libmpfi/APKBUILD44
-rw-r--r--testing/libmrss/APKBUILD13
-rw-r--r--testing/libmustache/APKBUILD2
-rw-r--r--testing/libmygpo-qt/APKBUILD47
-rw-r--r--testing/libmygpo-qt/fix-tests.patch21
-rw-r--r--testing/libmysofa/APKBUILD52
-rw-r--r--testing/libmysofa/install-header.patch25
-rw-r--r--testing/libneo4j-client/APKBUILD87
-rw-r--r--testing/libnest2d/APKBUILD40
-rw-r--r--testing/libnest2d/allow-disallowed-area.patch124
-rw-r--r--testing/libnfc/APKBUILD47
-rw-r--r--testing/libngf-qt/APKBUILD29
-rw-r--r--testing/libngf/APKBUILD35
-rw-r--r--testing/libntl/APKBUILD50
-rw-r--r--testing/libnxml/APKBUILD3
-rw-r--r--testing/libofx/APKBUILD56
-rw-r--r--testing/liboggz/APKBUILD14
-rw-r--r--testing/libopensles-standalone/APKBUILD38
-rw-r--r--testing/libopensmtpd/APKBUILD25
-rw-r--r--testing/libosip2/APKBUILD31
-rw-r--r--testing/libphutil/APKBUILD48
-rw-r--r--testing/libpostal/APKBUILD44
-rw-r--r--testing/libqb/APKBUILD58
-rw-r--r--testing/libqd/APKBUILD37
-rw-r--r--testing/libqofono/APKBUILD55
-rw-r--r--testing/libqtdbusmock/APKBUILD45
-rw-r--r--testing/libqtdbustest/APKBUILD43
-rw-r--r--testing/librasterlite2/10-musl.patch15
-rw-r--r--testing/librasterlite2/20-skip-tests.patch50
-rw-r--r--testing/librasterlite2/APKBUILD55
-rw-r--r--testing/libreoffice-voikko/APKBUILD27
-rw-r--r--testing/libresource/APKBUILD39
-rw-r--r--testing/libresource/fix-pkgconfig-version.patch53
-rw-r--r--testing/libresourceqt/APKBUILD27
-rw-r--r--testing/librespot/APKBUILD44
-rw-r--r--testing/librespot/cargo-bump-libc-lfs64.patch16
-rw-r--r--testing/librespot/librespot.confd3
-rw-r--r--testing/librespot/librespot.initd11
-rw-r--r--testing/librespot/librespot.pre-install4
-rw-r--r--testing/libretro-2048/APKBUILD23
-rw-r--r--testing/libretro-3dengine/APKBUILD24
-rw-r--r--testing/libretro-81/APKBUILD23
-rw-r--r--testing/libretro-atari800/APKBUILD11
-rw-r--r--testing/libretro-beetle-bsnes/APKBUILD25
-rw-r--r--testing/libretro-beetle-bsnes/patch-musl.patch63
-rw-r--r--testing/libretro-beetle-lynx/APKBUILD23
-rw-r--r--testing/libretro-beetle-ngp/APKBUILD23
-rw-r--r--testing/libretro-beetle-pce-fast/APKBUILD12
-rw-r--r--testing/libretro-beetle-pcfx/APKBUILD14
-rw-r--r--testing/libretro-beetle-saturn/APKBUILD14
-rw-r--r--testing/libretro-beetle-supergrafx/APKBUILD12
-rw-r--r--testing/libretro-beetle-vb/APKBUILD23
-rw-r--r--testing/libretro-beetle-wswan/APKBUILD23
-rw-r--r--testing/libretro-bk/APKBUILD23
-rw-r--r--testing/libretro-blastem/APKBUILD20
-rw-r--r--testing/libretro-blastem/patch-unbundle.patch92
-rw-r--r--testing/libretro-bluemsx/APKBUILD15
-rw-r--r--testing/libretro-bluemsx/patch-unbundle.patch38
-rw-r--r--testing/libretro-cannonball/APKBUILD12
-rw-r--r--testing/libretro-cap32/APKBUILD8
-rw-r--r--testing/libretro-craft/APKBUILD24
-rw-r--r--testing/libretro-crocods/APKBUILD15
-rw-r--r--testing/libretro-crocods/patch-unbundle.patch33
-rw-r--r--testing/libretro-daphne/APKBUILD16
-rw-r--r--testing/libretro-daphne/patch-unbundle.patch67
-rw-r--r--testing/libretro-dinothawr/APKBUILD15
-rw-r--r--testing/libretro-dinothawr/patch-unbundle.patch128
-rw-r--r--testing/libretro-dolphin/APKBUILD49
-rw-r--r--testing/libretro-dosbox/APKBUILD23
-rw-r--r--testing/libretro-fbneo/APKBUILD17
-rw-r--r--testing/libretro-fbneo/patch-unbundle.patch12
-rw-r--r--testing/libretro-fceumm/APKBUILD23
-rw-r--r--testing/libretro-flycast/APKBUILD46
-rw-r--r--testing/libretro-flycast/patch-unbundle.patch160
-rw-r--r--testing/libretro-fmsx/APKBUILD23
-rw-r--r--testing/libretro-freechaf/APKBUILD23
-rw-r--r--testing/libretro-freeintv/APKBUILD25
-rw-r--r--testing/libretro-frodo/APKBUILD14
-rw-r--r--testing/libretro-frodo/patch-unbundle.patch38
-rw-r--r--testing/libretro-fuse/APKBUILD8
-rw-r--r--testing/libretro-gambatte/APKBUILD23
-rw-r--r--testing/libretro-gearboy/APKBUILD24
-rw-r--r--testing/libretro-genesis-plus-gx/APKBUILD8
-rw-r--r--testing/libretro-gme/APKBUILD10
-rw-r--r--testing/libretro-gong/APKBUILD25
-rw-r--r--testing/libretro-gpsp/APKBUILD23
-rw-r--r--testing/libretro-gw/APKBUILD8
-rw-r--r--testing/libretro-handy/APKBUILD23
-rw-r--r--testing/libretro-hatari/APKBUILD24
-rw-r--r--testing/libretro-mame2000/APKBUILD10
-rw-r--r--testing/libretro-mame2003/APKBUILD8
-rw-r--r--testing/libretro-melonds/APKBUILD24
-rw-r--r--testing/libretro-meteor/APKBUILD23
-rw-r--r--testing/libretro-mrboom/APKBUILD23
-rw-r--r--testing/libretro-mu/APKBUILD26
-rw-r--r--testing/libretro-neocd/APKBUILD29
-rw-r--r--testing/libretro-neocd/patch-unbundle.patch91
-rw-r--r--testing/libretro-nxengine/APKBUILD8
-rw-r--r--testing/libretro-o2em/APKBUILD23
-rw-r--r--testing/libretro-openlara/APKBUILD10
-rw-r--r--testing/libretro-opera/APKBUILD8
-rw-r--r--testing/libretro-parallel-n64/APKBUILD17
-rw-r--r--testing/libretro-parallel-n64/patch-aarch64.patch12
-rw-r--r--testing/libretro-parallel-n64/patch-arm.patch29
-rw-r--r--testing/libretro-pcem/APKBUILD2
-rw-r--r--testing/libretro-pcsx-rearmed/APKBUILD17
-rw-r--r--testing/libretro-picodrive/APKBUILD28
-rw-r--r--testing/libretro-pocketcdg/APKBUILD8
-rw-r--r--testing/libretro-pokemini/APKBUILD23
-rw-r--r--testing/libretro-ppsspp/APKBUILD87
-rw-r--r--testing/libretro-ppsspp/gcc12.patch12
-rw-r--r--testing/libretro-ppsspp/gcc13.patch71
-rw-r--r--testing/libretro-ppsspp/patch-disable-git-version.patch25
-rw-r--r--testing/libretro-ppsspp/patch-unbundle.patch178
-rw-r--r--testing/libretro-prosystem/APKBUILD23
-rw-r--r--testing/libretro-quicknes/APKBUILD23
-rw-r--r--testing/libretro-sameboy/APKBUILD23
-rw-r--r--testing/libretro-scummvm/APKBUILD6
-rw-r--r--testing/libretro-snes9x/APKBUILD9
-rw-r--r--testing/libretro-stella2014/APKBUILD23
-rw-r--r--testing/libretro-tgbdual/APKBUILD23
-rw-r--r--testing/libretro-theodore/APKBUILD13
-rw-r--r--testing/libretro-tyrquake/APKBUILD8
-rw-r--r--testing/libretro-uzem/APKBUILD23
-rw-r--r--testing/libretro-vba-next/APKBUILD23
-rw-r--r--testing/libretro-vbam/APKBUILD23
-rw-r--r--testing/libretro-vecx/APKBUILD23
-rw-r--r--testing/libretro-virtualjaguar/APKBUILD23
-rw-r--r--testing/libretro-xrick/APKBUILD8
-rw-r--r--testing/libretro-yabause/APKBUILD6
-rw-r--r--testing/librewolf/APKBUILD749
-rw-r--r--testing/librewolf/disable-moz-stackwalk.patch28
-rw-r--r--testing/librewolf/distribution.ini9
-rw-r--r--testing/librewolf/fix-fortify-system-wrappers.patch11
-rw-r--r--testing/librewolf/fix-rust-target.patch31
-rw-r--r--testing/librewolf/fix-webrtc-glibcisms.patch20
-rw-r--r--testing/librewolf/force-can-use-pack-relative-relocs.patch11
-rw-r--r--testing/librewolf/icu74.patch37
-rw-r--r--testing/librewolf/lfs64.patch35
-rw-r--r--testing/librewolf/librewolf.desktop386
-rw-r--r--testing/librewolf/no-ccache-stats.patch13
-rw-r--r--testing/librewolf/ppc-musttail.patch30
-rw-r--r--testing/librewolf/python-deps.patch10
-rw-r--r--testing/librewolf/riscv64-no-lto.patch16
-rw-r--r--testing/librewolf/rust-lto-thin.patch12
-rw-r--r--testing/librewolf/sandbox-fork.patch15
-rw-r--r--testing/librewolf/sandbox-largefile.patch17
-rw-r--r--testing/librewolf/sandbox-sched_setscheduler.patch24
-rw-r--r--testing/librewolf/sqlite-ppc.patch39
-rw-r--r--testing/librewolf/vendor-prefs.js9
-rw-r--r--testing/libsailfishkeyprovider/APKBUILD27
-rw-r--r--testing/libsbsms/APKBUILD42
-rw-r--r--testing/libsds/02-install-target.patch3
-rw-r--r--testing/libsds/APKBUILD9
-rw-r--r--testing/libsemanage/APKBUILD8
-rw-r--r--testing/libsemigroups/APKBUILD39
-rw-r--r--testing/libserialport/APKBUILD25
-rw-r--r--testing/libsigc++3/APKBUILD34
-rw-r--r--testing/libsignal-protocol-c/APKBUILD43
-rw-r--r--testing/libsigrok/APKBUILD9
-rw-r--r--testing/libsigrokdecode/APKBUILD12
-rw-r--r--testing/libsigrokdecode/python-3.12.patch25
-rw-r--r--testing/libsigsegv/APKBUILD35
-rw-r--r--testing/libsirocco/APKBUILD36
-rw-r--r--testing/libslirp/APKBUILD40
-rw-r--r--testing/libslirp/version.patch11
-rw-r--r--testing/libsmi/APKBUILD36
-rw-r--r--testing/libsoundio/APKBUILD35
-rw-r--r--testing/libspatialindex/APKBUILD33
-rw-r--r--testing/libspatialite/APKBUILD35
-rw-r--r--testing/libspiro/APKBUILD33
-rw-r--r--testing/libstirshaken/0001-eradicate-Werror.patch36
-rwxr-xr-xtesting/libstirshaken/APKBUILD46
-rw-r--r--testing/libsymmetrica/APKBUILD43
-rw-r--r--testing/libtbb/APKBUILD57
-rw-r--r--testing/libtbb/musl.patch18
-rw-r--r--testing/libtbb/tbb.pc5
-rw-r--r--testing/libtbb/tbbmalloc.pc5
-rw-r--r--testing/libtbb/tbbmalloc_proxy.pc5
-rw-r--r--testing/libthai/APKBUILD32
-rw-r--r--testing/libthreadar/APKBUILD27
-rw-r--r--testing/libthreadar/alpine_strerror_r.patch19
-rw-r--r--testing/libtickit/APKBUILD41
-rw-r--r--testing/libtins/APKBUILD35
-rw-r--r--testing/libtommath/APKBUILD36
-rw-r--r--testing/libtorrent-rasterbar/APKBUILD47
-rw-r--r--testing/libtsm/APKBUILD33
-rw-r--r--testing/libubox/APKBUILD54
-rw-r--r--testing/libucl/APKBUILD42
-rw-r--r--testing/libuecc/APKBUILD4
-rw-r--r--testing/libui/APKBUILD32
-rw-r--r--testing/libunicode/APKBUILD58
-rw-r--r--testing/libunicode/rm-catch2-supression.patch17
-rw-r--r--testing/libuninameslist/APKBUILD26
-rw-r--r--testing/libupnp/APKBUILD37
-rw-r--r--testing/libupnpp/APKBUILD29
-rw-r--r--testing/liburing/APKBUILD28
-rw-r--r--testing/libusb-moded-qt/APKBUILD24
-rw-r--r--testing/libuser/0001-remove-unused-execinfo.h.patch27
-rw-r--r--testing/libuser/APKBUILD49
-rw-r--r--testing/libva-utils/APKBUILD39
-rw-r--r--testing/libva-vdpau-driver/APKBUILD51
-rw-r--r--testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch29
-rw-r--r--testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-glext-missing-definition.patch16
-rw-r--r--testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch11
-rw-r--r--testing/libva-vdpau-driver/musl-fixes.patch11
-rw-r--r--testing/libvdpau-va-gl/APKBUILD31
-rw-r--r--testing/libvisio2svg/APKBUILD2
-rw-r--r--testing/libvmaf/APKBUILD30
-rw-r--r--testing/libvmime/APKBUILD57
-rw-r--r--testing/libvmime/fix-icu-70-1.patch38
-rw-r--r--testing/libvoikko/APKBUILD40
-rw-r--r--testing/libwbxml/APKBUILD6
-rw-r--r--testing/libwhich/APKBUILD27
-rw-r--r--testing/libxml++-2.6/APKBUILD34
-rw-r--r--testing/libxml++/APKBUILD40
-rw-r--r--testing/libxmp/APKBUILD34
-rw-r--r--testing/libzim/APKBUILD46
-rw-r--r--testing/libzim/cython-not-cython3.patch11
-rw-r--r--testing/libzn_poly/APKBUILD45
-rw-r--r--testing/libzookeeper/APKBUILD26
-rw-r--r--testing/libzookeeper/fix-sprintf-overflow.patch11
-rw-r--r--testing/licenseheaders/APKBUILD13
-rw-r--r--testing/lidarr/0001-disable-restart.patch20
-rw-r--r--testing/lidarr/APKBUILD102
-rw-r--r--testing/lidarr/lidarr.confd10
-rw-r--r--testing/lidarr/lidarr.initd34
-rw-r--r--testing/lidarr/lidarr.pre-install6
-rw-r--r--testing/lidarr/package_info4
-rw-r--r--testing/light/APKBUILD36
-rw-r--r--testing/lightdm-mobile-greeter/APKBUILD23
-rw-r--r--testing/lightdm-settings/APKBUILD35
-rw-r--r--testing/lilv/APKBUILD24
-rw-r--r--testing/limkd/APKBUILD35
-rw-r--r--testing/limnoria/APKBUILD34
-rw-r--r--testing/links-graphics/APKBUILD32
-rw-r--r--testing/linphone/APKBUILD91
-rw-r--r--testing/linphone/fix-cmake-path.patch31
-rw-r--r--testing/linux-amlogic/0001-ARM64-defconfig-enable-CEC-support.patch45
-rw-r--r--testing/linux-amlogic/0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch62
-rw-r--r--testing/linux-amlogic/0001-drm-meson-fix-max-mode_config-height-width.patch33
-rw-r--r--testing/linux-amlogic/0002-ASoC-meson-add-meson-audio-core-driver.patch288
-rw-r--r--testing/linux-amlogic/0003-ASoC-meson-add-register-definitions.patch358
-rw-r--r--testing/linux-amlogic/0004-ASoC-meson-add-aiu-i2s-dma-support.patch422
-rw-r--r--testing/linux-amlogic/0005-ASoC-meson-add-initial-i2s-dai-support.patch516
-rw-r--r--testing/linux-amlogic/0006-ASoC-meson-add-aiu-spdif-dma-support.patch443
-rw-r--r--testing/linux-amlogic/0007-ASoC-meson-add-initial-spdif-dai-support.patch430
-rw-r--r--testing/linux-amlogic/0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch29
-rw-r--r--testing/linux-amlogic/0008-drm-meson-Add-HDMI-1.4-4k-modes.patch165
-rw-r--r--testing/linux-amlogic/0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch187
-rw-r--r--testing/linux-amlogic/0009-drm-meson-Use-drm_fbdev_generic_setup.patch100
-rw-r--r--testing/linux-amlogic/0010-fixup-drm-meson-Use-optional-canvas-provider.patch21
-rw-r--r--testing/linux-amlogic/0010-snd-meson-activate-HDMI-audio-path.patch53
-rw-r--r--testing/linux-amlogic/0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch20
-rw-r--r--testing/linux-amlogic/0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch36
-rw-r--r--testing/linux-amlogic/0012-drm-meson-add-support-for-1080p25-mode.patch21
-rw-r--r--testing/linux-amlogic/0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch861
-rw-r--r--testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch147
-rw-r--r--testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch76
-rw-r--r--testing/linux-amlogic/0015-drm-meson-add-HDMI-div40-TMDS-mode.patch69
-rw-r--r--testing/linux-amlogic/0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch28
-rw-r--r--testing/linux-amlogic/0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch198
-rw-r--r--testing/linux-amlogic/0017-soc-amlogic-add-meson-canvas-driver.patch314
-rw-r--r--testing/linux-amlogic/0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch39
-rw-r--r--testing/linux-amlogic/0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch102
-rw-r--r--testing/linux-amlogic/0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch46
-rw-r--r--testing/linux-amlogic/0020-drm-meson-Add-YUV420-output-support.patch582
-rw-r--r--testing/linux-amlogic/0020-drm-meson-Use-optional-canvas-provider.patch172
-rw-r--r--testing/linux-amlogic/0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch25
-rw-r--r--testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch31
-rw-r--r--testing/linux-amlogic/0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch1258
-rw-r--r--testing/linux-amlogic/0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch124
-rw-r--r--testing/linux-amlogic/0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch198
-rw-r--r--testing/linux-amlogic/0024-drm-meson-Add-primary-plane-scaling.patch285
-rw-r--r--testing/linux-amlogic/0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch55
-rw-r--r--testing/linux-amlogic/0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch79
-rw-r--r--testing/linux-amlogic/0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch38
-rw-r--r--testing/linux-amlogic/0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch38
-rw-r--r--testing/linux-amlogic/0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch38
-rw-r--r--testing/linux-amlogic/0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch38
-rw-r--r--testing/linux-amlogic/0032-drm-meson-Add-support-for-VIC-alternate-timings.patch328
-rw-r--r--testing/linux-amlogic/0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch2969
-rw-r--r--testing/linux-amlogic/0034-MAINTAINERS-Add-meson-video-decoder.patch32
-rw-r--r--testing/linux-amlogic/0035-arm64-dts-meson-gx-add-vdec-entry.patch38
-rw-r--r--testing/linux-amlogic/0036-arm64-dts-meson-add-vdec-entries.patch63
-rw-r--r--testing/linux-amlogic/0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch153
-rw-r--r--testing/linux-amlogic/0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch49
-rw-r--r--testing/linux-amlogic/0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch270
-rw-r--r--testing/linux-amlogic/0040-media-meson-vdec-add-H.264-decoding-support.patch591
-rw-r--r--testing/linux-amlogic/0041-media-meson-vdec-add-MPEG4-decoding-support.patch313
-rw-r--r--testing/linux-amlogic/0042-media-meson-vdec-add-MJPEG-decoding-support.patch253
-rw-r--r--testing/linux-amlogic/0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch42
-rw-r--r--testing/linux-amlogic/APKBUILD355
-rw-r--r--testing/linux-amlogic/add-phicomm-n1.patch60
-rw-r--r--testing/linux-amlogic/bt-btbcm.patch11
-rw-r--r--testing/linux-amlogic/config-changes-amlogic.aarch6413
-rw-r--r--testing/linux-amlogic/defconfig882
-rw-r--r--testing/linux-amlogic/text_offset.patch26
-rw-r--r--testing/linux-apfs-rw-src/APKBUILD33
-rw-r--r--testing/linux-asahi/385ea7b5023486aba7919cec8b6b3f6a843a1013.patch78
-rw-r--r--testing/linux-asahi/6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch47
-rw-r--r--testing/linux-asahi/APKBUILD219
-rw-r--r--testing/linux-asahi/config-asahi.aarch646762
-rw-r--r--testing/linux-edge/APKBUILD222
-rw-r--r--testing/linux-edge/config-edge.aarch648927
-rw-r--r--testing/linux-edge/config-edge.armv77756
-rw-r--r--testing/linux-edge/config-edge.x86_648480
-rw-r--r--testing/linux-elm/APKBUILD215
-rw-r--r--testing/linux-elm/config6836
-rw-r--r--testing/linux-elm/fix-mmc-order.patch12
-rw-r--r--testing/linux-elm/kernel.its.elm62
-rw-r--r--testing/linux-elm/mps-ter12x24-font-kernel.patch1659
-rw-r--r--testing/linux-gru/APKBUILD220
-rw-r--r--testing/linux-gru/PATCH-v4-00-11-media-rkvdec-Add-H.264-High-10-and-4-2-2-profile-support.patch2119
-rw-r--r--testing/linux-gru/config7386
-rw-r--r--testing/linux-gru/fix-gru-analogix_dp_core.patch17
-rw-r--r--testing/linux-gru/fix-rk3399-gru-mmc-order.patch18
-rw-r--r--testing/linux-gru/kernel.its.gru48
-rw-r--r--testing/linux-openvfd/APKBUILD26
-rw-r--r--testing/linux-sophgo/APKBUILD150
-rw-r--r--testing/linux-sophgo/sophgo.riscv64.config5540
-rw-r--r--testing/linux-starfive/APKBUILD251
-rw-r--r--testing/linux-starfive/aurel32.6.7.y.patch5023
-rw-r--r--testing/linux-starfive/config-starfive.riscv645744
-rw-r--r--testing/linux-timemachine/APKBUILD20
-rw-r--r--testing/linuxkit/APKBUILD41
-rw-r--r--testing/linuxptp/APKBUILD48
-rw-r--r--testing/linuxwave/APKBUILD36
-rw-r--r--testing/lipstick-asteroidos/0001-Drop-Qt-extended-surface.patch229
-rw-r--r--testing/lipstick-asteroidos/0002-Disables-tests-and-doc.patch20
-rw-r--r--testing/lipstick-asteroidos/APKBUILD79
-rw-r--r--testing/liquibase/APKBUILD16
-rw-r--r--testing/liquid-dsp/APKBUILD41
-rw-r--r--testing/listenbrainz-mpd/APKBUILD48
-rw-r--r--testing/lite-editor-colors/APKBUILD21
-rw-r--r--testing/lite-editor-plugins/APKBUILD60
-rw-r--r--testing/lite-editor/APKBUILD28
-rw-r--r--testing/lite-editor/dont-assume-local-project.patch74
-rw-r--r--testing/lite-xl/APKBUILD34
-rw-r--r--testing/litehtml/APKBUILD49
-rw-r--r--testing/litehtml/fix-gtest-check.patch20
-rw-r--r--testing/litespeed/APKBUILD133
-rw-r--r--testing/litespeed/include.patch118
-rw-r--r--testing/litespeed/install.patch209
-rw-r--r--testing/litespeed/litespeed.initd33
-rw-r--r--testing/litespeed/litespeed.pre-install6
-rw-r--r--testing/litespeed/ls_lock.patch34
-rw-r--r--testing/litespeed/thread.patch37
-rw-r--r--testing/litterbox/APKBUILD30
-rw-r--r--testing/livestreamer/APKBUILD26
-rw-r--r--testing/lizardfs/APKBUILD160
-rw-r--r--testing/lizardfs/gcc13.patch12
-rw-r--r--testing/lizardfs/lizardfs-cgiserv.confd10
-rw-r--r--testing/lizardfs/lizardfs-cgiserv.initd22
-rw-r--r--testing/lizardfs/lizardfs-chunkserver.initd9
-rw-r--r--testing/lizardfs/lizardfs-cstdio-header.patch32
-rw-r--r--testing/lizardfs/lizardfs-iostat-header.patch13
-rw-r--r--testing/lizardfs/lizardfs-master.initd8
-rw-r--r--testing/lizardfs/lizardfs-metalogger.initd8
-rw-r--r--testing/lizardfs/lizardfs-uraft.patch94
-rw-r--r--testing/lizardfs/lizardfs.pre-install7
-rw-r--r--testing/lkrg/AKMBUILD3
-rw-r--r--testing/lkrg/APKBUILD39
-rw-r--r--testing/lkrg/lkrg.post-deinstall2
-rw-r--r--testing/llmnrd/APKBUILD12
-rw-r--r--testing/lmdbxx/APKBUILD21
-rw-r--r--testing/lnav/APKBUILD32
-rw-r--r--testing/lockrun/APKBUILD2
-rw-r--r--testing/log4cpp/APKBUILD15
-rw-r--r--testing/log4cxx/APKBUILD59
-rw-r--r--testing/log4cxx/log4cxx-0.10.0-missing_includes.patch38
-rw-r--r--testing/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch117
-rw-r--r--testing/logc-libs/APKBUILD55
-rw-r--r--testing/logc/APKBUILD54
-rw-r--r--testing/logisim-evolution/APKBUILD45
-rw-r--r--testing/logisim-evolution/Desktop-file.patch13
-rwxr-xr-xtesting/logisim-evolution/logisim-evolution2
-rw-r--r--testing/logstash/APKBUILD84
-rw-r--r--testing/logstash/logstash.conf16
-rw-r--r--testing/logstash/logstash.confd20
-rw-r--r--testing/logstash/logstash.initd43
-rw-r--r--testing/logstash/logstash.pre-install6
-rw-r--r--testing/logstash/logstash.profile3
-rw-r--r--testing/logwatch/APKBUILD16
-rw-r--r--testing/lol-html/APKBUILD56
-rw-r--r--testing/lol-html/lockfile.patch1087
-rw-r--r--testing/lol-html/lol-html.pc.in12
-rw-r--r--testing/lolcat/APKBUILD13
-rw-r--r--testing/lolcat/fix-url-and-version.patch24
-rw-r--r--testing/lolcat/makefile.patch17
-rw-r--r--testing/lomiri-action-api/0002-Use-qmltestrunner-qt5.patch53
-rw-r--r--testing/lomiri-action-api/APKBUILD43
-rw-r--r--testing/lomiri-api/0001-Add-missing-headers-for-GCC13.patch37
-rw-r--r--testing/lomiri-api/APKBUILD50
-rw-r--r--testing/lomiri-api/qmltestrunner.patch15
-rw-r--r--testing/lomiri-app-launch/0001-liblomiri-app-launch-jobs-posix.cpp-pass-more-enviro.patch27
-rw-r--r--testing/lomiri-app-launch/APKBUILD68
-rw-r--r--testing/lomiri-calculator-app/0001-point-qmlscene-to-qmlscene-qt5.patch35
-rw-r--r--testing/lomiri-calculator-app/APKBUILD53
-rw-r--r--testing/lomiri-clock-app/0001-point-qmlscene-to-qmlscene-qt5.patch37
-rw-r--r--testing/lomiri-clock-app/APKBUILD64
-rw-r--r--testing/lomiri-content-hub/APKBUILD76
-rw-r--r--testing/lomiri-content-hub/qdoc.patch17
-rw-r--r--testing/lomiri-content-hub/qmlplugindump.patch13
-rw-r--r--testing/lomiri-docviewer-app/0001-non-click-mode-install-icon-and-splash.patch85
-rw-r--r--testing/lomiri-docviewer-app/APKBUILD60
-rw-r--r--testing/lomiri-download-manager/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch218
-rw-r--r--testing/lomiri-download-manager/0001-docs-use-qdoc-qt5-directly-instead-of-qtswitcher.patch29
-rw-r--r--testing/lomiri-download-manager/APKBUILD58
-rw-r--r--testing/lomiri-filemanager-app/0001-include-paths.h.patch25
-rw-r--r--testing/lomiri-filemanager-app/0002-link-libintl.patch25
-rw-r--r--testing/lomiri-filemanager-app/APKBUILD62
-rw-r--r--testing/lomiri-gallery-app/0001-update-for-newer-Exiv2-version.patch66
-rw-r--r--testing/lomiri-gallery-app/0002-disable-werror.patch25
-rw-r--r--testing/lomiri-gallery-app/APKBUILD63
-rw-r--r--testing/lomiri-history-service/0001-CMakeLists.txt-Add-ENABLE_WERROR-CMake-option-defaul.patch38
-rw-r--r--testing/lomiri-history-service/0002-upgrade-to-C-17.patch25
-rw-r--r--testing/lomiri-history-service/0003-remove-systemd-dependency.patch24
-rw-r--r--testing/lomiri-history-service/0004-remove-daemon-directory.patch26
-rw-r--r--testing/lomiri-history-service/APKBUILD65
-rw-r--r--testing/lomiri-indicator-location/0001-manually-disable-tests.patch43
-rw-r--r--testing/lomiri-indicator-location/APKBUILD50
-rw-r--r--testing/lomiri-indicator-network/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch117
-rw-r--r--testing/lomiri-indicator-network/APKBUILD61
-rw-r--r--testing/lomiri-libusermetrics/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch135
-rw-r--r--testing/lomiri-libusermetrics/APKBUILD56
-rw-r--r--testing/lomiri-location-service/APKBUILD62
-rw-r--r--testing/lomiri-location-service/cstdint.patch24
-rw-r--r--testing/lomiri-notifications/APKBUILD41
-rw-r--r--testing/lomiri-schemas/0001-data-schemas-com.lomiri.Shell.gschema.xml.in-Add-log.patch31
-rw-r--r--testing/lomiri-schemas/APKBUILD38
-rw-r--r--testing/lomiri-settings-components/APKBUILD42
-rw-r--r--testing/lomiri-settings-components/qmltestrunner.patch29
-rw-r--r--testing/lomiri-sounds/APKBUILD30
-rw-r--r--testing/lomiri-system-settings/0001-Migrate-to-upstream-maliit-keyboard.patch81
-rw-r--r--testing/lomiri-system-settings/0002-Use-qmltestrunner-qt5.patch25
-rw-r--r--testing/lomiri-system-settings/APKBUILD80
-rw-r--r--testing/lomiri-telephony-service/APKBUILD61
-rw-r--r--testing/lomiri-terminal-app/APKBUILD54
-rw-r--r--testing/lomiri-thumbnailer/APKBUILD74
-rw-r--r--testing/lomiri-thumbnailer/disable-qml-and-dbus-tests.patch42
-rw-r--r--testing/lomiri-thumbnailer/fix-googletest.patch14
-rw-r--r--testing/lomiri-thumbnailer/manually-disable-tests.patch24
-rw-r--r--testing/lomiri-trust-store/APKBUILD56
-rw-r--r--testing/lomiri-ui-extras/0004-Disable-tst_printers-unittest.patch25
-rw-r--r--testing/lomiri-ui-extras/APKBUILD51
-rw-r--r--testing/lomiri-ui-toolkit/0001-Remove-debian-isms-from-test-runner.patch31
-rw-r--r--testing/lomiri-ui-toolkit/0002-Don-t-build-app-launch-profiler.patch25
-rw-r--r--testing/lomiri-ui-toolkit/APKBUILD63
-rw-r--r--testing/lomiri-url-dispatcher/0001-remove-systemd.patch64
-rw-r--r--testing/lomiri-url-dispatcher/APKBUILD56
-rw-r--r--testing/lomiri-weather-app/0001-rename-WEATHER_APP_DIR-to-LOMIRI_WEATHER_APP_DIR.patch21
-rw-r--r--testing/lomiri-weather-app/0002-point-qmlscene-to-qmlscene-qt5.patch21
-rw-r--r--testing/lomiri-weather-app/APKBUILD60
-rw-r--r--testing/lomiri/0001-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch40
-rw-r--r--testing/lomiri/0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch59
-rw-r--r--testing/lomiri/0003-cursor-Always-follow-cursor-position-from-mir.patch32
-rw-r--r--testing/lomiri/0004-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch26
-rw-r--r--testing/lomiri/0005-Add-qt5-suffix-to-search-for-Qt-tools.patch47
-rw-r--r--testing/lomiri/0006-No-systemd.patch22
-rw-r--r--testing/lomiri/0007-Disable-lightdm-integration.patch40
-rw-r--r--testing/lomiri/0008-Change-hard-coded-launcher-logo-to-one-set-by-a-reso.patch158
-rw-r--r--testing/lomiri/APKBUILD115
-rw-r--r--testing/lomiri/home.svg72
-rw-r--r--testing/looking-glass/APKBUILD71
-rw-r--r--testing/looking-glass/missing-includes.patch92
-rw-r--r--testing/looking-glass/obs-plugins-lib.patch12
-rw-r--r--testing/looking-glass/werror.patch24
-rw-r--r--testing/loolwsd/10-musl.patch230
-rw-r--r--testing/loolwsd/APKBUILD49
-rw-r--r--testing/lotide/APKBUILD89
-rw-r--r--testing/lotide/cargo-update-libc_patch14
-rw-r--r--testing/lotide/hitide.confd11
-rw-r--r--testing/lotide/hitide.initd23
-rw-r--r--testing/lotide/hitide.pre-install11
-rw-r--r--testing/lotide/lotide.confd33
-rw-r--r--testing/lotide/lotide.initd80
-rw-r--r--testing/lotide/lotide.post-install7
-rw-r--r--testing/lotide/lotide.pre-install11
-rw-r--r--testing/lottieconverter/APKBUILD49
-rw-r--r--testing/lout/APKBUILD35
-rw-r--r--testing/lout/lout-3.40-makefile.patch69
-rw-r--r--testing/lout/lout.post-install4
-rw-r--r--testing/lout/makefile.patch41
-rwxr-xr-xtesting/love/APKBUILD31
-rw-r--r--testing/lowjs/APKBUILD54
-rw-r--r--testing/lowjs/make-flags.patch4
-rw-r--r--testing/lowjs/musl.patch45
-rw-r--r--testing/lowjs/unbundle-c-ares.patch19
-rw-r--r--testing/lowjs/unbundle-duktape.patch36
-rw-r--r--testing/lowjs/unbundle-mbedtls.patch18
-rw-r--r--testing/lpac/APKBUILD37
-rw-r--r--testing/lrcalc/APKBUILD35
-rw-r--r--testing/lrdf/APKBUILD36
-rw-r--r--testing/lrzsz/APKBUILD17
-rw-r--r--testing/lsd/APKBUILD38
-rw-r--r--testing/lsdvd/APKBUILD29
-rw-r--r--testing/lshell/APKBUILD14
-rw-r--r--testing/lsip6/APKBUILD30
-rw-r--r--testing/lsix/APKBUILD20
-rw-r--r--testing/lsmash/APKBUILD6
-rw-r--r--testing/lttng-tools/APKBUILD43
-rw-r--r--testing/lua-ansicolors/APKBUILD51
-rw-r--r--testing/lua-connman_dbus/APKBUILD55
-rw-r--r--testing/lua-dbus_proxy/APKBUILD55
-rw-r--r--testing/lua-editorconfig/APKBUILD61
-rw-r--r--testing/lua-etlua/APKBUILD65
-rw-r--r--testing/lua-fn/APKBUILD24
-rw-r--r--testing/lua-inet/APKBUILD38
-rw-r--r--testing/lua-inet/luacheck.patch8
-rw-r--r--testing/lua-jsonschema/APKBUILD52
-rw-r--r--testing/lua-lanes/APKBUILD53
-rw-r--r--testing/lua-language-server/APKBUILD44
-rwxr-xr-xtesting/lua-language-server/wrapper11
-rw-r--r--testing/lua-lapis/APKBUILD61
-rw-r--r--testing/lua-lcurses/APKBUILD3
-rw-r--r--testing/lua-libmodbus/APKBUILD12
-rw-r--r--testing/lua-linenoise/APKBUILD6
-rw-r--r--testing/lua-linotify/APKBUILD55
-rw-r--r--testing/lua-linotify/makefile.patch25
-rw-r--r--testing/lua-luastatic/APKBUILD58
-rw-r--r--testing/lua-lupa/APKBUILD36
-rw-r--r--testing/lua-middleclass/APKBUILD42
-rw-r--r--testing/lua-mimetypes/APKBUILD60
-rw-r--r--testing/lua-net-url/APKBUILD55
-rw-r--r--testing/lua-pgmoon/APKBUILD52
-rw-r--r--testing/lua-resty-openssl/APKBUILD36
-rw-r--r--testing/lua-resty-redis/APKBUILD12
-rw-r--r--testing/lua-resty-upload/APKBUILD9
-rw-r--r--testing/lua-xml/APKBUILD7
-rw-r--r--testing/lua5.2-penlight/APKBUILD6
-rw-r--r--testing/luacov-html/APKBUILD56
-rw-r--r--testing/luacov/APKBUILD56
-rw-r--r--testing/luacov/reporter_fix.lua.patch22
-rw-r--r--testing/luakit/APKBUILD36
-rw-r--r--testing/luakit/config-mk.patch12
-rw-r--r--testing/luakit/tests.patch55
-rw-r--r--testing/luksmeta/APKBUILD43
-rw-r--r--testing/luksmeta/force-creation-of-luks1-containers-in-tests.patch26
-rw-r--r--testing/luksmeta/musl.patch175
-rw-r--r--testing/luksmeta/relax-content-tests-in-test-suite.patch150
-rw-r--r--testing/lumina-desktop/APKBUILD176
-rw-r--r--testing/lumins/APKBUILD25
-rw-r--r--testing/lutgen/APKBUILD46
-rw-r--r--testing/lv2/APKBUILD27
-rw-r--r--testing/lwan/APKBUILD10
-rw-r--r--testing/lwan/gettid.patch76
-rw-r--r--testing/lxappearance/APKBUILD28
-rw-r--r--testing/lxd-feature/APKBUILD133
-rw-r--r--testing/lxd-feature/lxd-feature.confd26
-rw-r--r--testing/lxd-feature/lxd-feature.initd51
-rw-r--r--testing/lxd-feature/lxd-feature.pre-install (renamed from testing/lxd/lxd.pre-install)0
-rw-r--r--testing/lxd/APKBUILD176
-rw-r--r--testing/lxd/add-missing-includes.patch14
-rw-r--r--testing/lxd/lxd-dont-go-get.patch68
-rw-r--r--testing/lxd/lxd.confd23
-rw-r--r--testing/lxd/lxd.initd13
-rw-r--r--testing/lxqt-build-tools/APKBUILD34
-rw-r--r--testing/lychee/APKBUILD45
-rw-r--r--testing/lynis/APKBUILD22
-rw-r--r--testing/lyrebird/APKBUILD35
-rw-r--r--testing/lzbench/APKBUILD25
-rw-r--r--testing/lzfse/APKBUILD39
-rw-r--r--testing/lzlib/APKBUILD29
-rw-r--r--testing/lzop/APKBUILD36
-rw-r--r--testing/m17n-db/APKBUILD42
-rw-r--r--testing/m17n-lib/APKBUILD75
-rw-r--r--testing/m2r2/APKBUILD35
-rw-r--r--testing/m2r2/mistune1.patch82
-rw-r--r--testing/m2r2/no-circular-import.patch37
-rw-r--r--testing/ma1sd/APKBUILD16
-rw-r--r--testing/macchina/APKBUILD41
-rw-r--r--testing/maddy/APKBUILD68
-rw-r--r--testing/maddy/maddy.initd37
-rw-r--r--testing/maddy/maddy.pre-install6
-rw-r--r--testing/maddy/use-syslog.patch14
-rw-r--r--testing/mage/APKBUILD40
-rw-r--r--testing/mailctl/APKBUILD65
-rw-r--r--testing/mailctl/cabal.project.freeze203
-rw-r--r--testing/maildir2rss/APKBUILD30
-rw-r--r--testing/mailsec-check/APKBUILD37
-rw-r--r--testing/mailsec-check/mtasts_test.patch13
-rw-r--r--testing/mailtutan/APKBUILD34
-rw-r--r--testing/mailutils/APKBUILD53
-rw-r--r--testing/mailutils/disable-koi8-r-test.patch4
-rw-r--r--testing/makeself/APKBUILD8
-rw-r--r--testing/makeself/makeself-header_path.patch5
-rw-r--r--testing/mame/APKBUILD244
-rw-r--r--testing/mame/fix-musl.patch28
-rw-r--r--testing/mame/fix-ppc64le-float.patch115
-rw-r--r--testing/mame/nonag.patch32
-rw-r--r--testing/mangal/APKBUILD44
-rw-r--r--testing/mangr0ve/APKBUILD25
-rw-r--r--testing/manifest-tool/APKBUILD37
-rw-r--r--testing/manticore/0001-use-shared-boost-lib.patch13
-rw-r--r--testing/manticore/APKBUILD102
-rw-r--r--testing/manticore/manticore.initd21
-rwxr-xr-xtesting/manticore/manticore.pre-install6
-rw-r--r--testing/mapnik/APKBUILD54
-rw-r--r--testing/mapnik/boost-1.77.patch48
-rw-r--r--testing/mapnik/gcc13.patch12
-rw-r--r--testing/mapnik/scons4.patch11
-rw-r--r--testing/mapserver/10-musl.patch33
-rw-r--r--testing/mapserver/APKBUILD60
-rw-r--r--testing/mariadb-connector-odbc/APKBUILD35
-rw-r--r--testing/marisa-trie/APKBUILD42
-rw-r--r--testing/marknote/APKBUILD55
-rw-r--r--testing/marxan/APKBUILD33
-rw-r--r--testing/masky/APKBUILD40
-rw-r--r--testing/massif-visualizer/APKBUILD34
-rw-r--r--testing/massivethreads/0001-musl-fixes.patch77
-rw-r--r--testing/massivethreads/APKBUILD48
-rw-r--r--testing/mat2/APKBUILD52
-rw-r--r--testing/mat2/manpage-dir.patch13
-rw-r--r--testing/materia-gtk-theme/APKBUILD33
-rw-r--r--testing/materia-kde/APKBUILD19
-rw-r--r--testing/matrix-synapse-rest-password-provider/APKBUILD23
-rw-r--r--testing/matterbridge/APKBUILD39
-rw-r--r--testing/matterbridge/matterbridge.confd1
-rw-r--r--testing/matterbridge/matterbridge.initd15
-rw-r--r--testing/matterbridge/matterbridge.pre-install8
-rw-r--r--testing/mattermost-desktop/APKBUILD80
-rwxr-xr-xtesting/mattermost-desktop/mattermost-desktop3
-rw-r--r--testing/mautrix-discord/APKBUILD56
-rw-r--r--testing/mautrix-discord/default-log-dir.patch17
-rw-r--r--testing/mautrix-discord/mautrix-discord.confd7
-rw-r--r--testing/mautrix-discord/mautrix-discord.initd20
-rw-r--r--testing/mautrix-discord/mautrix-discord.pre-install6
-rw-r--r--testing/mautrix-gmessages/APKBUILD55
-rw-r--r--testing/mautrix-gmessages/default-log-dir.patch17
-rw-r--r--testing/mautrix-gmessages/mautrix-gmessages.confd7
-rw-r--r--testing/mautrix-gmessages/mautrix-gmessages.initd20
-rw-r--r--testing/mautrix-gmessages/mautrix-gmessages.pre-install6
-rw-r--r--testing/mautrix-meta/APKBUILD51
-rw-r--r--testing/mautrix-meta/default-log-dir.patch17
-rw-r--r--testing/mautrix-meta/mautrix-meta.confd7
-rw-r--r--testing/mautrix-meta/mautrix-meta.initd20
-rw-r--r--testing/mautrix-meta/mautrix-meta.pre-install6
-rw-r--r--testing/mautrix-signal/APKBUILD80
-rw-r--r--testing/mautrix-signal/default-log-dir.patch17
-rw-r--r--testing/mautrix-signal/mautrix-signal.confd7
-rw-r--r--testing/mautrix-signal/mautrix-signal.initd20
-rw-r--r--testing/mautrix-signal/mautrix-signal.pre-install6
-rw-r--r--testing/mautrix-slack/APKBUILD56
-rw-r--r--testing/mautrix-slack/default-log-dir.patch17
-rw-r--r--testing/mautrix-slack/mautrix-slack.confd7
-rw-r--r--testing/mautrix-slack/mautrix-slack.initd20
-rw-r--r--testing/mautrix-slack/mautrix-slack.pre-install6
-rw-r--r--testing/mautrix-telegram/APKBUILD50
-rw-r--r--testing/mautrix-telegram/default-log-dir.patch16
-rw-r--r--testing/mautrix-telegram/mautrix-telegram.confd7
-rw-r--r--testing/mautrix-telegram/mautrix-telegram.initd20
-rw-r--r--testing/mautrix-telegram/mautrix-telegram.post-upgrade11
-rw-r--r--testing/mautrix-telegram/mautrix-telegram.pre-install6
-rw-r--r--testing/mautrix-whatsapp/APKBUILD39
-rw-r--r--testing/mautrix-whatsapp/default-log-dir.patch16
-rw-r--r--testing/mautrix-whatsapp/mautrix-whatsapp.confd7
-rw-r--r--testing/mautrix-whatsapp/mautrix-whatsapp.initd21
-rw-r--r--testing/mautrix-whatsapp/mautrix-whatsapp.pre-install6
l---------testing/mautrix-whatsapp/mautrix-whatsapp.pre-upgrade1
-rw-r--r--testing/maxima/APKBUILD88
-rw-r--r--testing/maxima/handle-multiple-ldflags.patch43
-rw-r--r--testing/mbpfan/01-remove-systemd.patch12
-rw-r--r--testing/mbpfan/APKBUILD29
-rw-r--r--testing/mbpfan/mbpfan.initd9
-rw-r--r--testing/mbrola/APKBUILD27
-rw-r--r--testing/mbrola/terrible-makefile.patch22
-rw-r--r--testing/mce-dev/APKBUILD29
-rw-r--r--testing/mcjoin/APKBUILD25
-rw-r--r--testing/mcman/APKBUILD37
-rw-r--r--testing/mcqd/APKBUILD29
-rw-r--r--testing/md2gemini/APKBUILD31
-rw-r--r--testing/md5ha1/APKBUILD2
-rw-r--r--testing/mdbook-katex/APKBUILD33
-rw-r--r--testing/mdbook/APKBUILD26
-rw-r--r--testing/mdcat/APKBUILD54
-rw-r--r--testing/mdevd/APKBUILD38
-rw-r--r--testing/mdevd/mdevd.initd36
-rw-r--r--testing/mdnsd/APKBUILD51
-rw-r--r--testing/mdnsd/mdnsd.confd8
-rw-r--r--testing/mdnsd/mdnsd.initd21
-rw-r--r--testing/mdp/APKBUILD2
-rw-r--r--testing/mediascanner2/0001-rename-msg-to-message.patch39
-rw-r--r--testing/mediascanner2/0002-point-qmlplugindump-to-qmlplugindump-qt5.patch25
-rw-r--r--testing/mediascanner2/0003-disable-coverage-report.patch58
-rw-r--r--testing/mediascanner2/APKBUILD53
-rw-r--r--testing/mediastreamer2-plugin-openh264/APKBUILD41
-rw-r--r--testing/mediastreamer2-plugin-x264/APKBUILD39
-rw-r--r--testing/mediastreamer2-plugin-x264/fix-cmakelists.patch18
-rw-r--r--testing/mediastreamer2-plugin-x264/no-werror.patch17
-rw-r--r--testing/mediastreamer2/APKBUILD78
-rw-r--r--testing/mediastreamer2/fix-cmake-path.patch14
-rw-r--r--testing/mediastreamer2/fix-soname.patch12
-rw-r--r--testing/mednafen/APKBUILD34
-rw-r--r--testing/mednafen/ppc64.patch17
-rw-r--r--testing/meek/APKBUILD78
-rw-r--r--testing/meek/glide.lock25
-rw-r--r--testing/meek/glide.yaml9
-rw-r--r--testing/meep/APKBUILD27
-rw-r--r--testing/megatools/APKBUILD63
-rw-r--r--testing/megazeux/APKBUILD40
-rw-r--r--testing/memdump/APKBUILD2
-rw-r--r--testing/memtester/APKBUILD32
-rw-r--r--testing/menumaker/APKBUILD33
-rw-r--r--testing/mepo/0001-zig-0.12-adapt-build.zig.patch32
-rw-r--r--testing/mepo/0002-zig-0.12-convert-some-vars-to-consts.patch347
-rw-r--r--testing/mepo/0003-zig-0.12-roll-the-version.patch24
-rw-r--r--testing/mepo/0004-zig-0.12-std.os.SIG-std.os.linux.SIG.patch61
-rw-r--r--testing/mepo/0005-zig-0.12-std.os.getenv-std.posix.getenv.patch52
-rw-r--r--testing/mepo/0006-zig-0.12-std.os.sigaction-std.posix.sigaction.patch30
-rw-r--r--testing/mepo/0007-zig-0.12-std.mem.copy-std.mem.copyForwards.patch22
-rw-r--r--testing/mepo/0008-zig-0.12-std.math.absCast-abs.patch32
-rw-r--r--testing/mepo/0009-zig-0.12-std.ChildProcess.exec-std.ChildProcess.run.patch22
-rw-r--r--testing/mepo/0010-zig-0.12-std.os.exit-std.posix.exit.patch22
-rw-r--r--testing/mepo/0011-zig-0.12-std.os.poll-std.posix.poll.patch47
-rw-r--r--testing/mepo/0012-zig-0.12-std.math.absInt-abs.patch52
-rw-r--r--testing/mepo/APKBUILD80
-rw-r--r--testing/mergerfs/APKBUILD8
-rw-r--r--testing/merlin/APKBUILD98
-rw-r--r--testing/mesa-asahi/APKBUILD339
-rw-r--r--testing/meson-tools/APKBUILD4
-rw-r--r--testing/metalang99/APKBUILD24
-rw-r--r--testing/metalog/APKBUILD48
-rw-r--r--testing/metalog/metalog.confd10
-rw-r--r--testing/metalog/metalog.initd28
-rw-r--r--testing/metricbeat/APKBUILD44
-rw-r--r--testing/metricbeat/metricbeat.confd2
-rw-r--r--testing/metricbeat/metricbeat.initd42
-rw-r--r--testing/metricbeat/metricbeat.yml105
-rw-r--r--testing/mgba/APKBUILD94
-rw-r--r--testing/mgba/mgba-qt.desktop9
-rw-r--r--testing/mgba/mgba-qt5.11.patch35
-rw-r--r--testing/mgba/no-rpath.patch16
-rw-r--r--testing/mgba/python3.patch10
-rwxr-xr-xtesting/mgba/test-py.sh32
-rw-r--r--testing/mhddfs/APKBUILD31
-rw-r--r--testing/mhddfs/local-uthash.patch21
-rw-r--r--testing/micro/APKBUILD45
-rw-r--r--testing/micropython/APKBUILD56
-rw-r--r--testing/micropython/micropython-1.9.4-prevent-stripping.patch22
-rw-r--r--testing/micropython/no-werror.patch11
-rw-r--r--testing/micropython/no_ssl.patch18
-rw-r--r--testing/micropython/no_ussl.patch15
-rw-r--r--testing/micropython/python3.patch50
-rw-r--r--testing/milkytracker/APKBUILD42
-rw-r--r--testing/milkytracker/fix-crash.patch16
-rw-r--r--testing/mimalloc1/APKBUILD107
-rw-r--r--testing/mimalloc1/cmake-add-insecure-suffix.patch42
-rw-r--r--testing/mimedefang/APKBUILD63
-rw-r--r--testing/mimedefang/date-test.patch11
-rw-r--r--testing/mimedefang/mimedefang.pre-install6
-rw-r--r--testing/mimeo/APKBUILD26
-rw-r--r--testing/mimic1/APKBUILD44
-rw-r--r--testing/mimic1/fix-musl-incompabilities.patch31
-rw-r--r--testing/mimir/APKBUILD60
-rw-r--r--testing/mimir/mimir.confd5
-rw-r--r--testing/mimir/mimir.initd11
-rwxr-xr-xtesting/mimir/mimir.pre-install6
-rw-r--r--testing/mimir/mimir.yaml50
-rw-r--r--testing/mingw-w64-libusb/APKBUILD46
-rw-r--r--testing/minidyndns/APKBUILD4
-rw-r--r--testing/minikube/APKBUILD71
-rw-r--r--testing/minikube/skip-amd64-only-test.patch15
-rw-r--r--testing/minimodem/APKBUILD34
-rw-r--r--testing/minio-client/APKBUILD42
-rw-r--r--testing/minio/APKBUILD73
-rw-r--r--testing/minio/minio.confd13
-rw-r--r--testing/minio/minio.initd25
-rw-r--r--testing/minio/minio.pre-install6
-rw-r--r--testing/minisatip/APKBUILD63
-rw-r--r--testing/minisatip/default_document_root.patch11
-rw-r--r--testing/minisatip/minisatip.confd2
-rw-r--r--testing/minisatip/minisatip.initd13
-rw-r--r--testing/minisatip/minisatip.pre-install7
-rw-r--r--testing/minisign/APKBUILD27
-rw-r--r--testing/mint-themes/APKBUILD139
-rw-r--r--testing/mint-x-icons/APKBUILD25
-rw-r--r--testing/mint-y-icons/APKBUILD25
-rw-r--r--testing/mir-core/APKBUILD34
-rw-r--r--testing/mir/0001-Fix-the-signature-of-drmModeCrtcSetGamma.patch70
-rw-r--r--testing/mir/APKBUILD111
-rw-r--r--testing/miraclecast/APKBUILD47
-rw-r--r--testing/mitmproxy/APKBUILD93
-rw-r--r--testing/mitmproxy/fix-openssl-tests.patch20
-rw-r--r--testing/mitmproxy/skip-test-optmanager-x86.patch11
-rw-r--r--testing/mitra/APKBUILD100
-rw-r--r--testing/mitra/config.yaml121
-rw-r--r--testing/mitra/init.sql2
-rw-r--r--testing/mitra/mitra.initd27
-rw-r--r--testing/mitra/mitra.post-install7
-rw-r--r--testing/mitra/mitra.pre-install11
-rw-r--r--testing/mixxx/APKBUILD72
-rw-r--r--testing/mixxx/mixxx.post-install4
l---------testing/mixxx/mixxx.post-upgrade1
-rw-r--r--testing/mjpg-streamer/APKBUILD53
-rw-r--r--testing/mjpg-streamer/version.patch21
-rw-r--r--testing/mkcert/APKBUILD32
-rw-r--r--testing/mkdocs-bootstrap/APKBUILD26
-rw-r--r--testing/mkdocs-bootstrap386/APKBUILD26
-rw-r--r--testing/mkdocs-bootstrap4/APKBUILD26
-rw-r--r--testing/mkdocs-bootswatch/APKBUILD26
-rw-r--r--testing/mkdocs-cinder/APKBUILD26
-rw-r--r--testing/mkdocs-cluster/APKBUILD26
-rw-r--r--testing/mkdocs-gitbook/APKBUILD26
-rw-r--r--testing/mkdocs-ivory/APKBUILD26
-rw-r--r--testing/mkdocs-rtd-dropdown/APKBUILD26
-rw-r--r--testing/mkdocs-windmill/APKBUILD26
-rw-r--r--testing/mkg3a/APKBUILD32
-rw-r--r--testing/mkmr/APKBUILD43
-rw-r--r--testing/mkrundir/APKBUILD27
-rw-r--r--testing/mktorrent-borg/APKBUILD19
-rw-r--r--testing/mle/APKBUILD36
-rw-r--r--testing/mlite/APKBUILD26
-rw-r--r--testing/mlxl/APKBUILD30
-rw-r--r--testing/mlxl/flags.patch11
-rw-r--r--testing/mm-common/APKBUILD30
-rw-r--r--testing/mm/APKBUILD1
-rw-r--r--testing/mmc-utils/APKBUILD30
-rw-r--r--testing/mmix/APKBUILD29
-rw-r--r--testing/mml/APKBUILD59
-rw-r--r--testing/mmtc/APKBUILD32
-rw-r--r--testing/mnamer/APKBUILD30
-rw-r--r--testing/mnemosyne/APKBUILD47
-rw-r--r--testing/mnemosyne/fix-loading-icons.patch76
-rw-r--r--testing/moarvm/APKBUILD43
-rw-r--r--testing/mobpass/APKBUILD9
-rw-r--r--testing/modem-manager-gui/APKBUILD33
-rw-r--r--testing/modem-manager-gui/musl-compatibility.patch15
-rw-r--r--testing/moderncli/APKBUILD34
-rw-r--r--testing/moe/APKBUILD15
-rw-r--r--testing/moka-icon-theme/APKBUILD16
-rw-r--r--testing/monero/APKBUILD42
-rw-r--r--testing/monero/easylogging.patch11
-rw-r--r--testing/monero/system-miniupnpc.patch103
-rw-r--r--testing/monero/version-string.patch13
-rw-r--r--testing/monetdb/APKBUILD6
-rw-r--r--testing/mongo-cxx-driver/01-dont-build-mongo-tests.patch10
-rw-r--r--testing/mongo-cxx-driver/APKBUILD43
-rw-r--r--testing/mongo-cxx-driver/no-mongo-tests.patch22
-rw-r--r--testing/mongo-php7-library/APKBUILD33
-rw-r--r--testing/mono/APKBUILD85
-rw-r--r--testing/mono/mono-try-catch.patch31
-rw-r--r--testing/mono/python3.patch60
-rw-r--r--testing/moon-buggy/APKBUILD40
-rw-r--r--testing/moon-buggy/skip-install-data-hook.patch14
-rw-r--r--testing/moosefs/APKBUILD19
-rw-r--r--testing/moosefs/moosefs-nbd.patch42
-rw-r--r--testing/morph-browser/APKBUILD61
-rw-r--r--testing/most/APKBUILD28
-rw-r--r--testing/motion/APKBUILD21
-rw-r--r--testing/mp3gain/APKBUILD26
-rw-r--r--testing/mp3val/APKBUILD27
-rw-r--r--testing/mpdcron/APKBUILD2
-rw-r--r--testing/mpdecimal/APKBUILD35
-rw-r--r--testing/mpdris2-rs/APKBUILD36
-rw-r--r--testing/mpdris2/APKBUILD11
-rw-r--r--testing/mpop/APKBUILD6
-rw-r--r--testing/mpv-sponsorblock/APKBUILD39
-rw-r--r--testing/mpvpaper/APKBUILD33
-rw-r--r--testing/mqtt2prometheus/APKBUILD31
-rw-r--r--testing/mrsh/APKBUILD32
-rw-r--r--testing/msgpack-d/APKBUILD33
-rw-r--r--testing/msh/APKBUILD46
-rw-r--r--testing/msh/msh.confd3
-rw-r--r--testing/msh/msh.initd26
-rw-r--r--testing/msh/msh.pre-install6
-rw-r--r--testing/mspdebug/APKBUILD23
-rw-r--r--testing/msr-tools/APKBUILD23
-rw-r--r--testing/mstflint/0001-fix-musl.patch26
-rw-r--r--testing/mstflint/APKBUILD48
-rw-r--r--testing/mtg/APKBUILD46
-rw-r--r--testing/mtg/apk.go6
-rw-r--r--testing/mtg/go.mod5
-rw-r--r--testing/mtg/go.sum183
-rw-r--r--testing/mtg/increase-test-timeout.patch11
-rw-r--r--testing/mtg/mtg.conf3
-rw-r--r--testing/mtg/mtg.confd5
-rw-r--r--testing/mtg/mtg.initd2
-rw-r--r--testing/mtg/skip-network-tests.patch29
-rw-r--r--testing/mtm/APKBUILD27
-rw-r--r--testing/mtxclient/APKBUILD33
-rw-r--r--testing/multibootusb/APKBUILD52
-rw-r--r--testing/muon/APKBUILD64
-rw-r--r--testing/muon/fix-tests.patch28
-rw-r--r--testing/muse/APKBUILD51
-rw-r--r--testing/musescore/APKBUILD50
-rw-r--r--testing/musescore/musescore.pre-install5
-rw-r--r--testing/musescore/musescore.pre-upgrade1
-rw-r--r--testing/musikcube/APKBUILD108
-rw-r--r--testing/musikcube/locale.patch15
-rw-r--r--testing/musikcube/sys.patch37
-rw-r--r--testing/musikcube/tinfo.patch16
-rw-r--r--testing/mustach/APKBUILD31
-rw-r--r--testing/mwoffliner/APKBUILD38
-rw-r--r--testing/mxclient/APKBUILD27
-rw-r--r--testing/mxml/APKBUILD30
-rw-r--r--testing/mycli/APKBUILD35
-rw-r--r--testing/mycroft-core/0001-remove-xmlrunner-dep.patch24
-rw-r--r--testing/mycroft-core/0002-follow-xdg-for-skill-settings.patch204
-rw-r--r--testing/mycroft-core/0003-xdg.patch775
-rw-r--r--testing/mycroft-core/0004-relax-dep-requirements.patch33
-rw-r--r--testing/mycroft-core/0005-make-some-deps-optional.patch187
-rw-r--r--testing/mycroft-core/APKBUILD54
-rw-r--r--testing/mycroft-core/mycroft-core.post-install13
-rw-r--r--testing/mycroft-core/mycroft.conf6
-rw-r--r--testing/mycroft-gui/APKBUILD36
-rw-r--r--testing/mycroft-skill-alarm/APKBUILD21
-rw-r--r--testing/mycroft-skill-audio-record/APKBUILD21
-rw-r--r--testing/mycroft-skill-cocktail/APKBUILD20
-rw-r--r--testing/mycroft-skill-configuration/APKBUILD21
-rw-r--r--testing/mycroft-skill-date-time/APKBUILD21
-rw-r--r--testing/mycroft-skill-dismissal/APKBUILD20
-rw-r--r--testing/mycroft-skill-email/APKBUILD20
-rw-r--r--testing/mycroft-skill-fallback-duckduckgo/APKBUILD21
-rw-r--r--testing/mycroft-skill-fallback-unknown/APKBUILD21
-rw-r--r--testing/mycroft-skill-fallback-wolfram-alpha/APKBUILD21
-rw-r--r--testing/mycroft-skill-ip/APKBUILD21
-rw-r--r--testing/mycroft-skill-joke/APKBUILD21
-rw-r--r--testing/mycroft-skill-learning/APKBUILD20
-rw-r--r--testing/mycroft-skill-mark2/APKBUILD21
-rw-r--r--testing/mycroft-skill-moviemaster/APKBUILD20
-rw-r--r--testing/mycroft-skill-naptime/APKBUILD21
-rw-r--r--testing/mycroft-skill-npr-news/APKBUILD21
-rw-r--r--testing/mycroft-skill-pairing/APKBUILD21
-rw-r--r--testing/mycroft-skill-personal/APKBUILD21
-rw-r--r--testing/mycroft-skill-playback-control/APKBUILD21
-rw-r--r--testing/mycroft-skill-pokemon/APKBUILD20
-rw-r--r--testing/mycroft-skill-query/APKBUILD21
-rw-r--r--testing/mycroft-skill-reminder/APKBUILD21
-rw-r--r--testing/mycroft-skill-singing/APKBUILD21
-rw-r--r--testing/mycroft-skill-speak/APKBUILD21
-rw-r--r--testing/mycroft-skill-spelling/APKBUILD21
-rw-r--r--testing/mycroft-skill-stock/APKBUILD21
-rw-r--r--testing/mycroft-skill-stop/APKBUILD21
-rw-r--r--testing/mycroft-skill-support/APKBUILD21
-rw-r--r--testing/mycroft-skill-timer/APKBUILD21
-rw-r--r--testing/mycroft-skill-version-checker/APKBUILD21
-rw-r--r--testing/mycroft-skill-volume/APKBUILD21
-rw-r--r--testing/mycroft-skill-weather/APKBUILD21
-rw-r--r--testing/mycroft-skill-wiki/APKBUILD21
-rw-r--r--testing/mycroft-skills-kit/APKBUILD27
-rw-r--r--testing/mycroft-skills-kit/remove-typing-dep.patch27
-rw-r--r--testing/mycroft-skills-manager/APKBUILD24
-rw-r--r--testing/mycroft-skills/APKBUILD39
-rw-r--r--testing/mygui/APKBUILD43
-rw-r--r--testing/mynewt-newt/APKBUILD28
-rw-r--r--testing/mypaint/APKBUILD63
-rw-r--r--testing/mypaint/fix-invalid-mode-ru.patch98
-rw-r--r--testing/n30f/APKBUILD4
-rw-r--r--testing/nano-hare/APKBUILD23
-rw-r--r--testing/nanomsg/APKBUILD31
-rw-r--r--testing/nauty/APKBUILD37
-rw-r--r--testing/nawk/APKBUILD29
-rw-r--r--testing/nb/APKBUILD45
-rw-r--r--testing/nbsdgames/APKBUILD36
-rw-r--r--testing/nbsdgames/fix-makefile-path.patch124
-rw-r--r--testing/nbtscan/APKBUILD29
-rw-r--r--testing/ncdu2/APKBUILD42
-rw-r--r--testing/ncpamixer/APKBUILD25
-rw-r--r--testing/ndpi/APKBUILD21
-rw-r--r--testing/neard/APKBUILD22
-rw-r--r--testing/neatvi/APKBUILD34
-rw-r--r--testing/neatvi/conf.patch10
-rw-r--r--testing/neatvnc/APKBUILD28
-rw-r--r--testing/nebula/APKBUILD39
-rw-r--r--testing/nebula/nebula.initd19
-rw-r--r--testing/nebula/nebula.pre-install6
-rw-r--r--testing/nemo-keepalive/APKBUILD28
-rw-r--r--testing/nemo-qml-plugin-alarms/APKBUILD32
-rw-r--r--testing/nemo-qml-plugin-dbus/APKBUILD28
-rw-r--r--testing/nemo-qml-plugin-devicelock/APKBUILD24
-rw-r--r--testing/nemo-qml-plugin-models/APKBUILD28
-rw-r--r--testing/nemo-qml-plugin-systemsettings/0001-Remove-developer-mode.patch736
-rw-r--r--testing/nemo-qml-plugin-systemsettings/0002-Remove-broken-certificatemodel.patch996
-rw-r--r--testing/nemo-qml-plugin-systemsettings/APKBUILD29
-rw-r--r--testing/neomutt/APKBUILD37
-rw-r--r--testing/netcdf-fortran/APKBUILD42
-rw-r--r--testing/netdata/APKBUILD97
-rw-r--r--testing/netdata/netdata.initd18
-rw-r--r--testing/netdata/netdata.pre-install5
-rw-r--r--testing/netdisco/APKBUILD61
-rw-r--r--testing/netdiscover/APKBUILD43
-rw-r--r--testing/netpbm/01-makefile.patch11
-rw-r--r--testing/netpbm/02-installnetpbm.patch51
-rw-r--r--testing/netpbm/APKBUILD41
-rw-r--r--testing/netpbm/config.mk14
-rw-r--r--testing/netsed/APKBUILD2
-rw-r--r--testing/netsurf/APKBUILD55
-rw-r--r--testing/netsurf/non-coreutils-install-compatibility.patch27
-rw-r--r--testing/newlib-stage1/APKBUILD144
-rw-r--r--testing/newlib/APKBUILD144
-rw-r--r--testing/newsyslog/10-compat.patch80
-rw-r--r--testing/newsyslog/20-html.patch23
-rw-r--r--testing/newsyslog/APKBUILD51
-rw-r--r--testing/next/APKBUILD26
-rw-r--r--testing/nextpnr/APKBUILD69
-rw-r--r--testing/nginx-naxsi/APKBUILD193
-rw-r--r--testing/nginx-naxsi/anonymise.patch75
-rw-r--r--testing/nginx-naxsi/default.conf20
-rw-r--r--testing/nginx-naxsi/nginx-naxsi.pre-install9
l---------testing/nginx-naxsi/nginx-naxsi.pre-upgrade1
-rw-r--r--testing/nginx-naxsi/nginx.conf92
-rw-r--r--testing/nginx-naxsi/nginx.initd47
-rw-r--r--testing/nginx-naxsi/nginx.logrotate12
-rw-r--r--testing/nginx-naxsi/sysguard.conf25
-rw-r--r--testing/nginx-naxsi/sysguard.patch10
-rw-r--r--testing/nginx-ultimate-bad-bot-blocker/APKBUILD6
-rw-r--r--testing/ngs/APKBUILD79
-rw-r--r--testing/ngs/busybox-compat.patch13
-rw-r--r--testing/ngs/cmakelists.patch39
-rw-r--r--testing/ngspice/APKBUILD54
-rw-r--r--testing/nheko/APKBUILD70
-rw-r--r--testing/nicotine-plus/APKBUILD41
-rw-r--r--testing/nil/APKBUILD46
-rw-r--r--testing/nim/APKBUILD88
-rw-r--r--testing/nim/nim-config-enable-ucontext.patch11
-rw-r--r--testing/nim/nim-config-fix-paths.patch15
-rw-r--r--testing/nim/niminst-fix-paths.patch170
-rw-r--r--testing/nimble/APKBUILD24
-rw-r--r--testing/nitro/APKBUILD38
-rw-r--r--testing/nitro/fix-path-max.patch10
-rw-r--r--testing/nitro/gettid.patch11
-rw-r--r--testing/nitro/path-max.patch12
-rw-r--r--testing/nitrocli/APKBUILD44
-rw-r--r--testing/nitrocli/src-tests-run.rs-use-python3.patch34
-rw-r--r--testing/nix/APKBUILD97
-rw-r--r--testing/nix/nix-daemon.initd7
-rw-r--r--testing/nix/nix-profile.sh84
-rw-r--r--testing/nix/nix.pre-install10
-rw-r--r--testing/nixpacks/APKBUILD29
-rw-r--r--testing/nkk/APKBUILD37
-rw-r--r--testing/nkk/pc-opengl.patch14
-rw-r--r--testing/nlohmann-json/APKBUILD40
-rw-r--r--testing/nlopt/APKBUILD38
-rw-r--r--testing/nm-tray/APKBUILD39
-rw-r--r--testing/nmail/APKBUILD57
-rw-r--r--testing/nmap-parse-output/APKBUILD33
-rw-r--r--testing/nmon/APKBUILD44
-rw-r--r--testing/nmon/glibc.patch29
-rw-r--r--testing/noblenote/APKBUILD29
-rw-r--r--testing/node-closurecompiler-externs/APKBUILD29
-rw-r--r--testing/node-closurecompiler-externs/domain.js-fix-type-annotations.patch35
-rw-r--r--testing/node-libpg-query/APKBUILD50
-rw-r--r--testing/node-libpg-query/bump-gyp.patch57
-rw-r--r--testing/node-libpg-query/gyp.patch18
-rw-r--r--testing/node-libpg-query/package.patch33
-rw-r--r--testing/nodejs18/APKBUILD222
-rw-r--r--testing/nodejs18/disable-running-gyp-on-shared-deps.patch22
-rw-r--r--testing/nodejs18/fix-build-with-system-c-ares.patch535
-rw-r--r--testing/noggin-model/APKBUILD26
-rw-r--r--testing/noggin/APKBUILD37
-rw-r--r--testing/noice/APKBUILD2
-rw-r--r--testing/nom/APKBUILD41
-rw-r--r--testing/nom/update-go-sqlite3.patch28
-rw-r--r--testing/nomacs/APKBUILD60
-rw-r--r--testing/nomacs/fix-std-cout.patch20
-rw-r--r--testing/nomad/APKBUILD73
-rw-r--r--testing/nomad/nomad.confd1
-rw-r--r--testing/nomad/nomad.initd38
-rw-r--r--testing/nomad/nvidia-driver.patch21
-rw-r--r--testing/nomad/server.hcl12
-rw-r--r--testing/nomad/static-assets.patch16
-rw-r--r--testing/nomad/ui-remove-husky.patch43
-rw-r--r--testing/nomp/APKBUILD30
-rw-r--r--testing/nomp/fix-include.patch10
-rw-r--r--testing/nomp/make-path.patch13
-rw-r--r--testing/normaliz/APKBUILD51
-rw-r--r--testing/noson-app/APKBUILD47
-rw-r--r--testing/noson/APKBUILD40
-rw-r--r--testing/noson/gcc12.patch13
-rw-r--r--testing/notepadqq/APKBUILD36
-rw-r--r--testing/nototools/APKBUILD32
-rw-r--r--testing/nototools/data_path.patch14
-rw-r--r--testing/novnc/APKBUILD44
-rw-r--r--testing/novnc/alpine-specific-launch.js.patch47
-rw-r--r--testing/npapi-vlc/APKBUILD44
-rw-r--r--testing/npd6/APKBUILD36
-rw-r--r--testing/npd6/npd6.confd1
-rw-r--r--testing/npd6/npd6.initd10
-rw-r--r--testing/npd6/remove-sysctl-h.patch12
-rw-r--r--testing/nqp/APKBUILD37
-rw-r--r--testing/nsh/APKBUILD47
-rw-r--r--testing/nsh/nsh.post-install3
-rw-r--r--testing/nsh/nsh.pre-deinstall3
-rw-r--r--testing/nsjail/APKBUILD43
-rw-r--r--testing/nsjail/protobuf-23.patch24
-rw-r--r--testing/nsnake/APKBUILD11
-rw-r--r--testing/nsq/APKBUILD38
-rw-r--r--testing/nsq/glibc-test.patch13
-rw-r--r--testing/nsq/more-test-procs.patch11
-rw-r--r--testing/nsq/no-fmt.patch11
-rw-r--r--testing/nsss/APKBUILD35
-rw-r--r--testing/ntfy-alertmanager/APKBUILD38
-rw-r--r--testing/ntfy-alertmanager/ntfy-alertmanager.initd12
-rw-r--r--testing/ntfy-alertmanager/ntfy-alertmanager.pre-install6
-rw-r--r--testing/nuklear/APKBUILD24
-rw-r--r--testing/nullmailer/APKBUILD76
-rw-r--r--testing/nullmailer/adminaddr.conf5
-rw-r--r--testing/nullmailer/defaultdomain.conf5
-rw-r--r--testing/nullmailer/fix-tests-catch-port.patch28
-rw-r--r--testing/nullmailer/me.conf5
-rw-r--r--testing/nullmailer/nullmailer-2.2-disable-dns-using-test.patch26
-rw-r--r--testing/nullmailer/nullmailer-2.2-disable-smtp-auth-tests.patch57
-rw-r--r--testing/nullmailer/nullmailer-2.2-fix-test-racecondition.patch29
-rw-r--r--testing/nullmailer/nullmailer.initd30
-rw-r--r--testing/nullmailer/nullmailer.post-deinstall8
-rw-r--r--testing/nullmailer/nullmailer.pre-install6
-rw-r--r--testing/nullmailer/remotes.conf34
-rw-r--r--testing/numbat/APKBUILD41
-rw-r--r--testing/numbat/use-system-openssl.patch368
-rw-r--r--testing/nut/APKBUILD80
-rw-r--r--testing/nut/nut.pre-install7
-rw-r--r--testing/nut/openssl-1.1.patch70
-rw-r--r--testing/nut/upsd.initd40
-rw-r--r--testing/nut/upsmon.initd35
-rw-r--r--testing/nuzzle/APKBUILD36
-rw-r--r--testing/nvchecker/APKBUILD60
-rw-r--r--testing/nvchecker/nvchecker.post-install16
-rw-r--r--testing/nvi/01additional_upstream_data.patch3482
-rw-r--r--testing/nvi/03db4.patch25
-rw-r--r--testing/nvi/04confdefs.patch10
-rw-r--r--testing/nvi/06default_value_escapetime.patch15
-rw-r--r--testing/nvi/07flush_cache.patch46
-rw-r--r--testing/nvi/08lfs.patch25
-rw-r--r--testing/nvi/08safe_printf.patch15
-rw-r--r--testing/nvi/08tempfile_umask.patch28
-rw-r--r--testing/nvi/09casting.patch24
-rw-r--r--testing/nvi/10no_one_line_visual.patch21
-rw-r--r--testing/nvi/11backward_sentence_moving.patch15
-rw-r--r--testing/nvi/12horiz_scroll_count.patch15
-rw-r--r--testing/nvi/13widechar_horrors.patch64
-rw-r--r--testing/nvi/14private_regex_fixes.patch28
-rw-r--r--testing/nvi/15search_word.patch26
-rw-r--r--testing/nvi/16manpage_errors.patch767
-rw-r--r--testing/nvi/17tutorial_typos.patch60
-rw-r--r--testing/nvi/18dbpagesize_binpower.patch22
-rw-r--r--testing/nvi/19include_term_h.patch25
-rw-r--r--testing/nvi/21exrc_writability_check.patch58
-rw-r--r--testing/nvi/24fallback_to_dumb_term.patch26
-rw-r--r--testing/nvi/25manpage_note_dropped_F.patch55
-rw-r--r--testing/nvi/26trailing_tab_segv.patch15
-rw-r--r--testing/nvi/27support_C_locale.patch27
-rw-r--r--testing/nvi/29file_backup.patch32
-rw-r--r--testing/nvi/APKBUILD109
-rw-r--r--testing/nvidia-src/APKBUILD40
-rw-r--r--testing/nvim-cmp-buffer/APKBUILD25
-rw-r--r--testing/nvim-cmp-cmdline/APKBUILD25
-rw-r--r--testing/nvim-cmp-lsp/APKBUILD30
-rw-r--r--testing/nvim-cmp-luasnip/APKBUILD25
-rw-r--r--testing/nvim-cmp-path/APKBUILD25
-rw-r--r--testing/nvim-cmp/APKBUILD30
-rw-r--r--testing/nvim-gruvbox/APKBUILD24
-rw-r--r--testing/nvim-lualine/APKBUILD29
-rw-r--r--testing/nvim-packer/APKBUILD29
-rw-r--r--testing/nvim-treesitter/APKBUILD30
-rw-r--r--testing/nvimpager/APKBUILD26
-rw-r--r--testing/nvtop/APKBUILD49
-rw-r--r--testing/nwg-bar/APKBUILD30
-rw-r--r--testing/nwg-displays/APKBUILD36
-rw-r--r--testing/nwg-dock/APKBUILD31
-rw-r--r--testing/nymphcast-client/APKBUILD34
-rw-r--r--testing/nymphcast-mediaserver/60_nymphcast-mediaserver.nft7
-rw-r--r--testing/nymphcast-mediaserver/APKBUILD41
-rw-r--r--testing/nymphcast/APKBUILD35
-rw-r--r--testing/nymphrpc/APKBUILD26
-rw-r--r--testing/nzbget/APKBUILD19
-rw-r--r--testing/nzbget/openssl3.patch29
-rw-r--r--testing/oauth2-proxy/APKBUILD43
-rw-r--r--testing/oauth2-proxy/make-dont-disable-cgo.patch16
-rw-r--r--testing/oauth2-proxy/oauth2-proxy.confd5
-rw-r--r--testing/oauth2-proxy/oauth2-proxy.initd37
-rw-r--r--testing/oauth2-proxy/oauth2-proxy.pre-install6
-rw-r--r--testing/obfs4proxy/APKBUILD48
-rw-r--r--testing/obfs4proxy/glide.lock25
-rw-r--r--testing/obfs4proxy/glide.yaml15
-rw-r--r--testing/objconv/APKBUILD32
-rw-r--r--testing/obs-studio/APKBUILD32
-rw-r--r--testing/ocaml-alcotest/APKBUILD103
-rw-r--r--testing/ocaml-alcotest/test-expected-output.patch9
-rw-r--r--testing/ocaml-amqp-client/APKBUILD86
-rw-r--r--testing/ocaml-angstrom/APKBUILD82
-rw-r--r--testing/ocaml-arp/APKBUILD99
-rw-r--r--testing/ocaml-asn1-combinators/APKBUILD85
-rw-r--r--testing/ocaml-astring/APKBUILD82
-rw-r--r--testing/ocaml-atd/APKBUILD93
-rw-r--r--testing/ocaml-atd/disable-ocaml-internals-test.patch11
-rw-r--r--testing/ocaml-base/APKBUILD77
-rw-r--r--testing/ocaml-base64/APKBUILD79
-rw-r--r--testing/ocaml-bigarray-compat/APKBUILD85
-rw-r--r--testing/ocaml-bigstringaf/APKBUILD79
-rw-r--r--testing/ocaml-biniou/APKBUILD80
-rw-r--r--testing/ocaml-bisect_ppx/APKBUILD82
-rw-r--r--testing/ocaml-bitstring/APKBUILD82
-rw-r--r--testing/ocaml-bos/APKBUILD91
-rw-r--r--testing/ocaml-ca-certs-nss/APKBUILD101
-rw-r--r--testing/ocaml-ca-certs/APKBUILD88
-rw-r--r--testing/ocaml-cairo2/APKBUILD88
-rw-r--r--testing/ocaml-calendar/APKBUILD64
-rw-r--r--testing/ocaml-camlp5/APKBUILD50
-rw-r--r--testing/ocaml-camlzip/APKBUILD76
-rw-r--r--testing/ocaml-camomile/APKBUILD96
-rw-r--r--testing/ocaml-charinfo_width/APKBUILD78
-rw-r--r--testing/ocaml-cmdliner/APKBUILD72
-rw-r--r--testing/ocaml-cohttp/APKBUILD107
-rw-r--r--testing/ocaml-compiler-libs-repackaged/APKBUILD77
-rw-r--r--testing/ocaml-conduit/APKBUILD93
-rw-r--r--testing/ocaml-containers/APKBUILD95
-rw-r--r--testing/ocaml-containers/use-built-in-libraries.patch10
-rw-r--r--testing/ocaml-cstruct/APKBUILD88
-rw-r--r--testing/ocaml-ctypes/APKBUILD79
-rw-r--r--testing/ocaml-curses/APKBUILD93
-rw-r--r--testing/ocaml-dns/APKBUILD114
-rw-r--r--testing/ocaml-domain-name/APKBUILD79
-rw-r--r--testing/ocaml-down/APKBUILD83
-rw-r--r--testing/ocaml-duration/APKBUILD79
-rw-r--r--testing/ocaml-easy-format/APKBUILD80
-rw-r--r--testing/ocaml-eqaf/APKBUILD79
-rw-r--r--testing/ocaml-erm_xml/APKBUILD85
-rw-r--r--testing/ocaml-erm_xmpp/APKBUILD98
-rw-r--r--testing/ocaml-ethernet/APKBUILD84
-rw-r--r--testing/ocaml-extlib/APKBUILD60
-rw-r--r--testing/ocaml-ezxmlm/APKBUILD80
-rw-r--r--testing/ocaml-fileutils/APKBUILD93
-rw-r--r--testing/ocaml-fix/APKBUILD81
-rw-r--r--testing/ocaml-fmt/APKBUILD85
-rw-r--r--testing/ocaml-fpath/APKBUILD82
-rw-r--r--testing/ocaml-gen/APKBUILD79
-rw-r--r--testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch109
-rw-r--r--testing/ocaml-gettext/0002-pr_gettext-stop-printing-extracted-strings.patch26
-rw-r--r--testing/ocaml-gettext/0003-add-more-generated-files-to-.gitignore.patch44
-rw-r--r--testing/ocaml-gettext/APKBUILD122
-rw-r--r--testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch33
-rw-r--r--testing/ocaml-gitlab/APKBUILD107
-rw-r--r--testing/ocaml-gitlab/rename-to-olab.patch36
-rw-r--r--testing/ocaml-gmap/APKBUILD79
-rw-r--r--testing/ocaml-happy-eyeballs-lwt/APKBUILD99
-rw-r--r--testing/ocaml-happy-eyeballs/APKBUILD89
-rw-r--r--testing/ocaml-hex/APKBUILD77
-rw-r--r--testing/ocaml-higlo/APKBUILD81
-rw-r--r--testing/ocaml-hkdf/APKBUILD83
-rw-r--r--testing/ocaml-integers/APKBUILD77
-rw-r--r--testing/ocaml-ipaddr/APKBUILD87
-rw-r--r--testing/ocaml-iri/APKBUILD80
-rw-r--r--testing/ocaml-iso8601/APKBUILD74
-rw-r--r--testing/ocaml-jsonm/APKBUILD99
-rw-r--r--testing/ocaml-lablgtk3-extras/APKBUILD84
-rw-r--r--testing/ocaml-lablgtk3/APKBUILD84
-rw-r--r--testing/ocaml-labltk/APKBUILD82
-rw-r--r--testing/ocaml-lambda-term/APKBUILD82
-rw-r--r--testing/ocaml-lambdasoup/APKBUILD88
-rw-r--r--testing/ocaml-libvirt/0001-Add-a-binding-for-virDomainCreateXML.patch213
-rw-r--r--testing/ocaml-libvirt/0001-Remove-unused-not_supported-function.patch57
-rw-r--r--testing/ocaml-libvirt/0001-Suppress-errors-to-stderr-and-use-thread-local-virEr.patch1864
-rw-r--r--testing/ocaml-libvirt/0001-Use-C99-standard-int64_t-instead-of-OCaml-defined-an.patch35
-rw-r--r--testing/ocaml-libvirt/0001-Use-g-warn-error.patch78
-rw-r--r--testing/ocaml-libvirt/0002-Don-t-bother-checking-return-from-virInitialize.patch32
-rw-r--r--testing/ocaml-libvirt/0002-Update-dependencies.patch44
-rw-r--r--testing/ocaml-libvirt/0003-Add-a-binding-for-virConnectGetAllDomainStats-RHBZ-1.patch393
-rw-r--r--testing/ocaml-libvirt/0004-examples-Print-more-stats-in-the-get_all_domain_stat.patch42
-rw-r--r--testing/ocaml-libvirt/0005-Change-binding-of-virConnectGetAllDomainStats-to-ret.patch127
-rw-r--r--testing/ocaml-libvirt/APKBUILD102
-rw-r--r--testing/ocaml-logs/APKBUILD91
-rw-r--r--testing/ocaml-lru/APKBUILD79
-rw-r--r--testing/ocaml-lwd/APKBUILD100
-rw-r--r--testing/ocaml-lwt-dllist/APKBUILD79
-rw-r--r--testing/ocaml-lwt/APKBUILD110
-rw-r--r--testing/ocaml-lwt_log/APKBUILD74
-rw-r--r--testing/ocaml-lwt_ssl/APKBUILD81
-rw-r--r--testing/ocaml-magic-mime/APKBUILD73
-rw-r--r--testing/ocaml-markup/APKBUILD99
-rw-r--r--testing/ocaml-menhir/APKBUILD76
-rw-r--r--testing/ocaml-merlin-extend/APKBUILD86
-rw-r--r--testing/ocaml-metrics/APKBUILD87
-rw-r--r--testing/ocaml-mew/APKBUILD81
-rw-r--r--testing/ocaml-mew/use-built-in-result-lib.patch9
-rw-r--r--testing/ocaml-mew_vi/APKBUILD78
-rw-r--r--testing/ocaml-mikmatch/APKBUILD62
-rw-r--r--testing/ocaml-mirage-clock/APKBUILD77
-rw-r--r--testing/ocaml-mirage-crypto/APKBUILD91
-rw-r--r--testing/ocaml-mirage-flow/APKBUILD86
-rw-r--r--testing/ocaml-mirage-kv/APKBUILD79
-rw-r--r--testing/ocaml-mirage-net/APKBUILD82
-rw-r--r--testing/ocaml-mirage-profile/APKBUILD87
-rw-r--r--testing/ocaml-mirage-random/APKBUILD77
-rw-r--r--testing/ocaml-mirage-time/APKBUILD77
-rw-r--r--testing/ocaml-mmap/APKBUILD78
-rw-r--r--testing/ocaml-mqtt/APKBUILD89
-rw-r--r--testing/ocaml-mqtt/tls-lwt.patch8
-rw-r--r--testing/ocaml-mtime/APKBUILD81
-rw-r--r--testing/ocaml-notty/APKBUILD82
-rw-r--r--testing/ocaml-num/APKBUILD54
-rw-r--r--testing/ocaml-obuild/APKBUILD45
-rw-r--r--testing/ocaml-ocf/APKBUILD81
-rw-r--r--testing/ocaml-ocplib-endian/APKBUILD78
-rw-r--r--testing/ocaml-omake/APKBUILD53
-rw-r--r--testing/ocaml-omod/APKBUILD94
-rw-r--r--testing/ocaml-omod/fix-cache-dir.patch13
-rw-r--r--testing/ocaml-otoml/APKBUILD83
-rw-r--r--testing/ocaml-otr/APKBUILD84
-rw-r--r--testing/ocaml-ounit/APKBUILD89
-rw-r--r--testing/ocaml-parsexp/APKBUILD79
-rw-r--r--testing/ocaml-pbkdf/APKBUILD81
-rw-r--r--testing/ocaml-pcre/APKBUILD77
-rw-r--r--testing/ocaml-ppx_blob/APKBUILD81
-rw-r--r--testing/ocaml-ppx_derivers/APKBUILD81
-rw-r--r--testing/ocaml-ppx_deriving/APKBUILD79
-rw-r--r--testing/ocaml-ppx_sexp_conv/APKBUILD82
-rw-r--r--testing/ocaml-ppxlib/APKBUILD91
-rw-r--r--testing/ocaml-psq/APKBUILD79
-rw-r--r--testing/ocaml-ptime/APKBUILD81
-rw-r--r--testing/ocaml-ptmap/APKBUILD86
-rw-r--r--testing/ocaml-qcheck/APKBUILD71
-rw-r--r--testing/ocaml-qtest/APKBUILD72
-rw-r--r--testing/ocaml-randomconv/APKBUILD77
-rw-r--r--testing/ocaml-re/APKBUILD79
-rw-r--r--testing/ocaml-react/APKBUILD87
-rw-r--r--testing/ocaml-result/APKBUILD77
-rw-r--r--testing/ocaml-rresult/APKBUILD81
-rw-r--r--testing/ocaml-sedlex/APKBUILD79
-rw-r--r--testing/ocaml-seq/APKBUILD80
-rw-r--r--testing/ocaml-sexplib/APKBUILD82
-rw-r--r--testing/ocaml-sexplib0/APKBUILD79
-rw-r--r--testing/ocaml-sha/APKBUILD75
-rw-r--r--testing/ocaml-ssl/APKBUILD87
-rw-r--r--testing/ocaml-stdlib-shims/APKBUILD56
-rw-r--r--testing/ocaml-stk/APKBUILD95
-rw-r--r--testing/ocaml-stk/font.patch33
-rw-r--r--testing/ocaml-stringext/APKBUILD79
-rw-r--r--testing/ocaml-tcpip/APKBUILD101
-rw-r--r--testing/ocaml-tls/APKBUILD103
-rw-r--r--testing/ocaml-tophide/APKBUILD54
-rw-r--r--testing/ocaml-topkg/APKBUILD80
-rw-r--r--testing/ocaml-trie/APKBUILD79
-rw-r--r--testing/ocaml-tsdl-image/APKBUILD88
-rw-r--r--testing/ocaml-tsdl-ttf/APKBUILD88
-rw-r--r--testing/ocaml-tsdl/APKBUILD100
-rw-r--r--testing/ocaml-uri/APKBUILD85
-rw-r--r--testing/ocaml-uucd/APKBUILD83
-rw-r--r--testing/ocaml-uucp/APKBUILD89
-rw-r--r--testing/ocaml-uuidm/APKBUILD90
-rw-r--r--testing/ocaml-uunf/APKBUILD93
-rw-r--r--testing/ocaml-uuseg/APKBUILD93
-rw-r--r--testing/ocaml-uutf/APKBUILD84
-rw-r--r--testing/ocaml-x509/APKBUILD92
-rw-r--r--testing/ocaml-xml-light/APKBUILD90
-rw-r--r--testing/ocaml-xml-light/Makefile-explicit-target-fix.patch11
-rw-r--r--testing/ocaml-xmlm/APKBUILD82
-rw-r--r--testing/ocaml-xtmpl/APKBUILD87
-rw-r--r--testing/ocaml-yojson/APKBUILD87
-rw-r--r--testing/ocaml-zarith/APKBUILD66
-rw-r--r--testing/ocaml-zed/APKBUILD82
-rw-r--r--testing/ocaml-zed/use-built-in-result-lib.patch8
-rw-r--r--testing/ocaml5/APKBUILD114
-rw-r--r--testing/ocamlclean/APKBUILD30
-rw-r--r--testing/ocamlnet/APKBUILD104
-rw-r--r--testing/ocamlnet/fix-version-number.patch11
-rw-r--r--testing/ocfs2-tools/APKBUILD14
-rw-r--r--testing/ocfs2-tools/musl-sys-raw.h.patch37
-rw-r--r--testing/ocfs2-tools/new-linux.patch37
-rw-r--r--testing/ocp-indent/APKBUILD102
-rw-r--r--testing/ocp-index/APKBUILD109
-rw-r--r--testing/octave/APKBUILD50
-rw-r--r--testing/octave/abs.patch17
-rw-r--r--testing/octave/libinterp-deps.patch10
-rw-r--r--testing/octoprint-creality2xfix/APKBUILD36
-rw-r--r--testing/octoprint-filecheck/APKBUILD36
-rw-r--r--testing/octoprint-firmwarecheck/APKBUILD36
-rw-r--r--testing/octoprint-pisupport/APKBUILD36
-rw-r--r--testing/octoprint/APKBUILD109
-rw-r--r--testing/octoprint/config.yaml153
-rw-r--r--testing/octoprint/fix-tests.patch9
-rw-r--r--testing/octoprint/netaddr-0.10.patch33
-rw-r--r--testing/octoprint/octoprint.initd24
-rw-r--r--testing/octoprint/octoprint.pre-install6
-rw-r--r--testing/octoprint/pydantic-2.0.patch28
-rw-r--r--testing/odyssey/APKBUILD31
-rw-r--r--testing/odyssey/argp.patch13
-rw-r--r--testing/odyssey/types.patch12
-rw-r--r--testing/ogdi/10-optimisation.patch16
-rw-r--r--testing/ogdi/20-external.patch28
-rw-r--r--testing/ogdi/APKBUILD93
-rw-r--r--testing/oh-my-zsh/APKBUILD22
-rw-r--r--testing/oh-my-zsh/install-path.patch5
-rw-r--r--testing/oil/APKBUILD32
-rw-r--r--testing/ois/APKBUILD29
-rw-r--r--testing/ol/APKBUILD35
-rw-r--r--testing/ol/GNUmakefile.patch21
-rw-r--r--testing/ol/memfd_create.patch107
-rw-r--r--testing/ol/tests-Makefile.patch395
-rw-r--r--testing/olsrd/APKBUILD80
-rw-r--r--testing/olsrd/bison.patch16
-rw-r--r--testing/olsrd/musl.patch11
-rw-r--r--testing/olsrd/olsrd.confd1
-rw-r--r--testing/olsrd/olsrd.initd14
-rw-r--r--testing/ombi/APKBUILD89
-rw-r--r--testing/ombi/ombi.confd4
-rw-r--r--testing/ombi/ombi.initd24
-rw-r--r--testing/ombi/ombi.pre-install6
-rw-r--r--testing/onboard/APKBUILD30
-rw-r--r--testing/onboard/glibc-musl-error.patch62
-rw-r--r--testing/one-dnn/APKBUILD46
-rw-r--r--testing/one-dnn/gcc13.patch12
-rw-r--r--testing/onefetch/APKBUILD27
-rw-r--r--testing/onevpl-intel-gpu/APKBUILD40
-rw-r--r--testing/onioncat/APKBUILD36
-rw-r--r--testing/onnxruntime/0001-Remove-MATH_NO_EXCEPT-macro.patch50
-rw-r--r--testing/onnxruntime/APKBUILD99
-rw-r--r--testing/onnxruntime/no-execinfo.patch22
-rw-r--r--testing/onnxruntime/system.patch66
-rw-r--r--testing/opa/APKBUILD77
-rw-r--r--testing/opa/tests-go1.22-compat.patch274
-rw-r--r--testing/opcr-policy/APKBUILD37
-rw-r--r--testing/open-plc-utils/APKBUILD41
-rw-r--r--testing/open-zwave-control-panel/APKBUILD29
-rw-r--r--testing/open-zwave-control-panel/makefile.patch81
-rw-r--r--testing/opencascade/APKBUILD59
-rw-r--r--testing/opencascade/cmake_add_buildtype_none.patch13
-rw-r--r--testing/opencascade/cmake_fix_install_dir.patch30
-rw-r--r--testing/opencascade/no_feenableexcept.patch41
-rw-r--r--testing/opencascade/no_mallinfo.patch28
-rw-r--r--testing/opencc/APKBUILD36
-rw-r--r--testing/opencolorio/APKBUILD69
-rw-r--r--testing/opencolorio/gcc9.patch26
-rw-r--r--testing/opencolorio/ocio-1.1.0-yamlcpp060.patch46
-rw-r--r--testing/openconnect/APKBUILD50
-rw-r--r--testing/openconnect/openconnect.confd26
-rw-r--r--testing/openconnect/openconnect.initd88
-rw-r--r--testing/openconnect/openconnect.logrotate7
-rw-r--r--testing/opencsg/APKBUILD34
-rw-r--r--testing/opendht/APKBUILD75
-rw-r--r--testing/opendmarc/APKBUILD73
-rw-r--r--testing/opendmarc/config-defaults.patch175
-rw-r--r--testing/opendmarc/dmarcfail-fix-shebang.patch8
-rw-r--r--testing/opendmarc/fix-153-duplicate-dkim-auth_result-sections.patch37
-rw-r--r--testing/opendmarc/fix-193-sql-strict-mode-compatibility.patch202
-rw-r--r--testing/opendmarc/netdb_defines.patch20
-rw-r--r--testing/opendmarc/opendmarc.initd32
-rw-r--r--testing/opendmarc/opendmarc.pre-install5
-rw-r--r--testing/openfire/APKBUILD86
-rw-r--r--testing/openfire/openfire.confd6
-rw-r--r--testing/openfire/openfire.initd24
-rw-r--r--testing/openfire/openfire.logrotate8
-rwxr-xr-xtesting/openfire/openfire.post-install18
l---------testing/openfire/openfire.post-upgrade1
-rwxr-xr-xtesting/openfire/openfire.pre-install6
-rw-r--r--testing/openfortivpn/APKBUILD41
-rw-r--r--testing/openfpgaloader/APKBUILD43
-rw-r--r--testing/openhmd/APKBUILD33
-rw-r--r--testing/openimageio/APKBUILD62
-rw-r--r--testing/openimageio/boost-python.patch12
-rw-r--r--testing/openjdk12/APKBUILD296
-rw-r--r--testing/openjdk12/Alpine_Bug_10126.java13
-rw-r--r--testing/openjdk12/HelloWorld.java3
-rw-r--r--testing/openjdk12/TestCryptoLevel.java72
-rw-r--r--testing/openjdk12/TestECDSA.java49
-rw-r--r--testing/openjdk12/aarch64.patch10
-rw-r--r--testing/openjdk12/build.patch517
-rw-r--r--testing/openjdk12/fix-bootjdk-check.patch15
-rw-r--r--testing/openjdk12/make-4.3.patch17
-rw-r--r--testing/openjdk12/ppc64le.patch183
-rw-r--r--testing/openjdk13/APKBUILD296
-rw-r--r--testing/openjdk13/Alpine_Bug_10126.java13
-rw-r--r--testing/openjdk13/HelloWorld.java3
-rw-r--r--testing/openjdk13/TestCryptoLevel.java72
-rw-r--r--testing/openjdk13/TestECDSA.java49
-rw-r--r--testing/openjdk13/aarch64.patch12
-rw-r--r--testing/openjdk13/build.patch520
-rw-r--r--testing/openjdk13/fix-bootjdk-check.patch15
-rw-r--r--testing/openjdk13/make-4.3.patch17
-rw-r--r--testing/openjdk13/ppc64le.patch241
-rw-r--r--testing/openjdk14/APKBUILD295
-rw-r--r--testing/openjdk14/Alpine_Bug_10126.java13
-rw-r--r--testing/openjdk14/HelloWorld.java3
-rw-r--r--testing/openjdk14/TestCryptoLevel.java72
-rw-r--r--testing/openjdk14/TestECDSA.java49
-rw-r--r--testing/openjdk14/aarch64.patch10
-rw-r--r--testing/openjdk14/build.patch517
-rw-r--r--testing/openjdk14/fix-bootjdk-check.patch15
-rw-r--r--testing/openjdk14/make-4.3.patch17
-rw-r--r--testing/openjdk14/ppc64le.patch238
-rw-r--r--testing/openjfx/APKBUILD53
-rw-r--r--testing/openjfx/openjfx.profile3
-rw-r--r--testing/openjfx/remove-version-suffix-check.patch42
-rw-r--r--testing/openmg/APKBUILD28
-rw-r--r--testing/openmg/format-security.patch119
-rw-r--r--testing/openmpi/APKBUILD55
-rw-r--r--testing/openmw/APKBUILD45
-rw-r--r--testing/openocd-esp32/APKBUILD78
-rw-r--r--testing/openocd-esp32/fix-jimtcl-link.patch44
-rw-r--r--testing/openocd-git/APKBUILD96
-rw-r--r--testing/openocd-git/fix-jimtcl-link.patch44
-rw-r--r--testing/openocd-riscv/APKBUILD77
-rw-r--r--testing/openocd-riscv/fix-jimtcl-link.patch44
-rw-r--r--testing/openra/APKBUILD51
-rw-r--r--testing/openresty/APKBUILD155
-rw-r--r--testing/openscad/APKBUILD61
-rw-r--r--testing/openscad/boost-1.72.patch24
-rw-r--r--testing/openscap-daemon/APKBUILD17
-rw-r--r--testing/openscap/APKBUILD56
-rw-r--r--testing/openscap/fix-ppc64le-path_max.patch34
-rw-r--r--testing/openscap/path_mounted.patch12
-rw-r--r--testing/openscenegraph/APKBUILD39
-rw-r--r--testing/openscenegraph/add-missing-include-for-ppc64le.patch13
-rw-r--r--testing/openscenegraph/musl-fixes.patch22
-rw-r--r--testing/openslide/APKBUILD52
-rw-r--r--testing/opensm/APKBUILD10
-rw-r--r--testing/opensmtpd-filter-dkimsign/APKBUILD34
-rw-r--r--testing/opensmtpd-filter-dkimsign/dkimsign-genkey101
-rw-r--r--testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.post-install7
-rw-r--r--testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.pre-install6
-rw-r--r--testing/opensmtpd-filter-rspamd/APKBUILD25
-rw-r--r--testing/openspades/APKBUILD55
-rw-r--r--testing/openssh-askpass/APKBUILD33
-rw-r--r--testing/openssl1.1-compat/APKBUILD177
-rw-r--r--testing/openssl1.1-compat/man-section.patch54
-rw-r--r--testing/openssl1.1-compat/ppc64.patch96
-rw-r--r--testing/opensubdiv/APKBUILD61
-rw-r--r--testing/opentelemetry-cpp/APKBUILD108
-rw-r--r--testing/opentelemetry-cpp/gcc13.patch12
-rw-r--r--testing/openttd-opengfx/APKBUILD13
-rw-r--r--testing/openttd-openmsx/APKBUILD14
-rw-r--r--testing/openttd-opensfx/APKBUILD21
-rw-r--r--testing/openttd/APKBUILD62
-rw-r--r--testing/openttd/no-sse4.patch13
-rw-r--r--testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch20
-rw-r--r--testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch19
-rw-r--r--testing/openv2g/APKBUILD40
-rw-r--r--testing/openv2g/makefiles.patch192
-rw-r--r--testing/openvas-smb/001-cmakelist-fortify.patch13
-rw-r--r--testing/openvas-smb/APKBUILD42
-rw-r--r--testing/openvas-smb/comparison_fn_t.patch38
-rw-r--r--testing/openvas-smb/disable-backtrace.patch135
-rw-r--r--testing/openvas-smb/fix-missing-includes-path.patch160
-rw-r--r--testing/openvas-smb/mingw-alpine-support.patch13
-rw-r--r--testing/openvpn3/APKBUILD42
-rw-r--r--testing/openvpn3/unvendor.patch34
-rw-r--r--testing/openwsman/APKBUILD61
-rw-r--r--testing/opkg-utils/APKBUILD37
-rw-r--r--testing/opkg/APKBUILD36
-rw-r--r--testing/opmsg/APKBUILD16
-rw-r--r--testing/optee-client/APKBUILD38
-rw-r--r--testing/orage/APKBUILD45
-rw-r--r--testing/oras-cli/APKBUILD53
-rw-r--r--testing/osmctools/APKBUILD34
-rw-r--r--testing/ospd-acunetix/APKBUILD33
-rw-r--r--testing/ospd-ancor/APKBUILD32
-rw-r--r--testing/ospd-debsecan/APKBUILD34
-rw-r--r--testing/ospd-ikeprobe/APKBUILD31
-rw-r--r--testing/ospd-ikescan/APKBUILD31
-rw-r--r--testing/ospd-nmap/APKBUILD33
-rw-r--r--testing/ospd-ovaldi/APKBUILD32
-rw-r--r--testing/ospd-paloalto/APKBUILD33
-rw-r--r--testing/ospd-ssh-keyscan/APKBUILD32
-rw-r--r--testing/ospd-w3af/APKBUILD32
-rw-r--r--testing/ossec-hids-agent/APKBUILD85
-rw-r--r--testing/ossec-hids-agent/config63
-rw-r--r--testing/ossec-hids-agent/makefile.patch47
-rw-r--r--testing/ossec-hids-agent/musl_lack_of_a_out_h.patch13
-rw-r--r--testing/ossec-hids-agent/ossec-hids-agent.logrotate5
-rw-r--r--testing/ossec-hids-local/APKBUILD87
-rw-r--r--testing/ossec-hids-local/config63
-rw-r--r--testing/ossec-hids-local/makefile.patch47
-rw-r--r--testing/ossec-hids-local/musl_lack_of_a_out_h.patch13
-rw-r--r--testing/ossec-hids-local/ossec-hids-local.logrotate5
-rw-r--r--testing/ossec-hids-server/APKBUILD87
-rw-r--r--testing/ossec-hids-server/config63
-rw-r--r--testing/ossec-hids-server/makefile.patch47
-rw-r--r--testing/ossec-hids-server/musl_lack_of_a_out_h.patch13
-rw-r--r--testing/ossec-hids-server/ossec-hids-server.logrotate5
-rw-r--r--testing/ossec-hids/APKBUILD54
-rwxr-xr-xtesting/ossec-hids/ossec-hids.pre-install9
-rw-r--r--testing/ossp-uuid/APKBUILD35
-rw-r--r--testing/ossp-uuid/uuid.patch208
-rw-r--r--testing/ostinato/APKBUILD47
-rw-r--r--testing/ostinato/ModelTest.patch18
-rw-r--r--testing/ostinato/bug-265.patch97
-rw-r--r--testing/otf-atkinson-hyperlegible/APKBUILD27
-rw-r--r--testing/otpclient/APKBUILD43
-rw-r--r--testing/otrs/APKBUILD96
-rw-r--r--testing/ouch/APKBUILD54
-rw-r--r--testing/ouch/use-system-libs.patch11
-rw-r--r--testing/ovn/APKBUILD152
-rw-r--r--testing/ovn/ovn-controller.initd22
-rw-r--r--testing/ovn/ovn-ctl.confd3
-rw-r--r--testing/ovn/ovn-northd.initd22
-rw-r--r--testing/ovn/ovn-ovsdb-server-nb.initd22
-rw-r--r--testing/ovn/ovn-ovsdb-server-sb.initd22
-rw-r--r--testing/ovn/ovn.post-install3
-rw-r--r--testing/ovn/ovs-ifupdown-alpine.patch17
-rw-r--r--testing/ovn/ovs-modules.initd20
-rw-r--r--testing/ovn/ovs-vswitchd.confd6
-rw-r--r--testing/ovn/ovs-vswitchd.initd25
-rw-r--r--testing/ovn/ovsdb-server.confd16
-rw-r--r--testing/ovn/ovsdb-server.initd50
-rw-r--r--testing/ovos-audio/APKBUILD53
-rw-r--r--testing/ovos-core/APKBUILD69
-rw-r--r--testing/ovos-core/ovos.conf1
-rw-r--r--testing/ovos-core/profile.sh2
-rw-r--r--testing/ovos-dinkum-listener/APKBUILD51
-rw-r--r--testing/ovos-gui/APKBUILD46
-rw-r--r--testing/ovos-messagebus/APKBUILD40
-rw-r--r--testing/ovos-phal/APKBUILD54
-rw-r--r--testing/ovos-shell/APKBUILD59
-rw-r--r--testing/ovos-skill-hello-world/APKBUILD39
-rw-r--r--testing/ovos-skill-manager/APKBUILD81
-rw-r--r--testing/ovos-skill-manager/appstore-use-last-compatible-archive.patch26
-rw-r--r--testing/ovos-skill-manager/fix-github-main-branch-detection.patch31
-rw-r--r--testing/ovos/APKBUILD28
-rw-r--r--testing/ovpncc/APKBUILD24
-rw-r--r--testing/p0f/APKBUILD18
-rw-r--r--testing/p910nd/APKBUILD23
-rw-r--r--testing/p910nd/fix-paths.patch16
-rw-r--r--testing/p910nd/p910nd.confd2
-rw-r--r--testing/p910nd/p910nd.initd2
-rw-r--r--testing/packer/APKBUILD39
-rw-r--r--testing/pacparser/APKBUILD38
-rw-r--r--testing/pacparser/spidermonkey-make.patch16
-rw-r--r--testing/palp/APKBUILD47
-rw-r--r--testing/pam-krb5/APKBUILD8
-rw-r--r--testing/pam_mount/APKBUILD57
-rw-r--r--testing/pam_mount/rundir.patch13
-rw-r--r--testing/pam_sqlite3/APKBUILD23
-rw-r--r--testing/pam_sqlite3/broken-makefile.patch13
-rw-r--r--testing/pamtester/APKBUILD28
-rw-r--r--testing/pandoc/APKBUILD54
-rw-r--r--testing/pandoc/cabal.project.freeze223
-rw-r--r--testing/pandoc/disable-pandoc-citeproc.patch20
-rw-r--r--testing/pantalaimon/APKBUILD90
-rw-r--r--testing/pantalaimon/fix-media.patch24
-rw-r--r--testing/pantalaimon/fix-presence.patch28
-rw-r--r--testing/pantalaimon/fix-tox.patch24
-rw-r--r--testing/pantalaimon/fix-typo.patch24
-rw-r--r--testing/paperde/APKBUILD51
-rw-r--r--testing/paperkey/APKBUILD37
-rw-r--r--testing/papirus-icon-theme/APKBUILD17
-rw-r--r--testing/paprefs/APKBUILD33
-rw-r--r--testing/par/APKBUILD26
-rw-r--r--testing/par2cmdline-turbo/APKBUILD37
-rw-r--r--testing/par2cmdline/APKBUILD25
-rw-r--r--testing/paraexec/APKBUILD8
-rw-r--r--testing/parcellite/APKBUILD27
-rw-r--r--testing/pari/APKBUILD50
-rw-r--r--testing/pash/APKBUILD20
-rw-r--r--testing/pass-otp/APKBUILD22
-rw-r--r--testing/pass2csv/APKBUILD29
-rw-r--r--testing/passt/APKBUILD29
-rw-r--r--testing/pastebinc/APKBUILD2
-rw-r--r--testing/pastel/APKBUILD18
-rw-r--r--testing/pathvector/APKBUILD32
-rw-r--r--testing/pathvector/pathvector.yml1
-rw-r--r--testing/pcem/APKBUILD37
-rw-r--r--testing/pcl/APKBUILD111
-rw-r--r--testing/pcl/fix-broken-flags.patch30
-rw-r--r--testing/pcl/gcc8.patch36
-rw-r--r--testing/pcsc-perl/APKBUILD19
-rw-r--r--testing/pcsc-tools/APKBUILD12
-rw-r--r--testing/pcsx2/APKBUILD164
-rw-r--r--testing/pcsx2/PCSX2.desktop15
-rw-r--r--testing/pcsx2/fast-float.patch14
-rw-r--r--testing/pcsx2/fix-lfs64.patch118
-rw-r--r--testing/pcsx2/ryml.patch13
-rw-r--r--testing/pcsx2/unbundle-vulkan.patch25
-rw-r--r--testing/pcsx2/version.patch23
-rw-r--r--testing/pcsx2/zstd.patch10
-rw-r--r--testing/pcsxr/APKBUILD46
-rw-r--r--testing/pcsxr/fix-assert-64bit.patch13
-rw-r--r--testing/pcsxr/fix-musl.patch14
-rw-r--r--testing/pcsxr/fix-uncompress2.patch23
-rw-r--r--testing/pcsxr/fix-undefined-operations.patch194
-rw-r--r--testing/pdal-python-plugins/APKBUILD33
-rw-r--r--testing/pdal/APKBUILD76
-rw-r--r--testing/pdf2svg/APKBUILD2
-rw-r--r--testing/pdfcpu/APKBUILD32
-rw-r--r--testing/pdfcrack/APKBUILD8
-rw-r--r--testing/pdm/APKBUILD61
-rw-r--r--testing/pebble-le/APKBUILD54
-rw-r--r--testing/pebble-le/pebble-le.pre-install5
-rw-r--r--testing/pebble-le/simpleble.patch45
-rw-r--r--testing/peervpn/APKBUILD4
-rw-r--r--testing/peg/APKBUILD27
-rw-r--r--testing/pegasus-frontend/APKBUILD26
-rw-r--r--testing/pegasus-frontend/qt-5-14-compatibility.patch32
-rw-r--r--testing/pegtl/APKBUILD38
-rw-r--r--testing/percona-toolkit/APKBUILD6
-rw-r--r--testing/perl-adapter-async/APKBUILD50
-rw-r--r--testing/perl-algorithm-backoff/APKBUILD39
-rw-r--r--testing/perl-algorithm-c3/APKBUILD31
-rw-r--r--testing/perl-algorithm-cron/APKBUILD8
-rw-r--r--testing/perl-aliased/APKBUILD5
-rw-r--r--testing/perl-anyevent-dns-etchosts/APKBUILD15
-rw-r--r--testing/perl-anyevent-future/APKBUILD37
-rw-r--r--testing/perl-anyevent-http/APKBUILD40
-rw-r--r--testing/perl-anyevent-influxdb/APKBUILD39
-rw-r--r--testing/perl-anyevent-mocktcpserver/APKBUILD38
-rw-r--r--testing/perl-anyevent-mqtt/APKBUILD47
-rw-r--r--testing/perl-anyevent-riperedis/APKBUILD42
-rw-r--r--testing/perl-anyevent-riperedis/test-redisrunner.patch18
-rw-r--r--testing/perl-anyevent-xmpp/APKBUILD46
-rw-r--r--testing/perl-anyevent-xmpp/delivery-receipt-1.patch45
-rw-r--r--testing/perl-anyevent-xmpp/delivery-receipt-2.patch24
-rw-r--r--testing/perl-anyevent-xmpp/doc-typo-fix.patch24
-rw-r--r--testing/perl-archive-extract/APKBUILD10
-rw-r--r--testing/perl-autobox/APKBUILD2
-rw-r--r--testing/perl-barcode-zbar/APKBUILD38
-rw-r--r--testing/perl-bind-config-parser/APKBUILD10
-rw-r--r--testing/perl-bsd-resource/APKBUILD28
-rw-r--r--testing/perl-bytes-random-secure/APKBUILD38
-rw-r--r--testing/perl-cache-lru/APKBUILD38
-rw-r--r--testing/perl-cairo-gobject/APKBUILD35
-rw-r--r--testing/perl-cairo/APKBUILD32
-rw-r--r--testing/perl-cgi-expand/APKBUILD6
-rw-r--r--testing/perl-check-unitcheck/APKBUILD42
-rw-r--r--testing/perl-class-accessor-grouped/APKBUILD8
-rw-r--r--testing/perl-class-c3-componentised/APKBUILD7
-rw-r--r--testing/perl-class-c3/APKBUILD31
-rw-r--r--testing/perl-class-inner/APKBUILD31
-rw-r--r--testing/perl-class-xsaccessor/APKBUILD37
-rw-r--r--testing/perl-clone-choose/APKBUILD7
-rw-r--r--testing/perl-clone-pp/APKBUILD33
-rw-r--r--testing/perl-color-ansi-util/APKBUILD38
-rw-r--r--testing/perl-color-rgb-util/APKBUILD39
-rw-r--r--testing/perl-conf-libconfig/APKBUILD9
-rw-r--r--testing/perl-constant-defer/APKBUILD17
-rw-r--r--testing/perl-constant-generate/APKBUILD17
-rw-r--r--testing/perl-context-preserve/APKBUILD7
-rw-r--r--testing/perl-couchbase/APKBUILD39
-rw-r--r--testing/perl-cpan-changes/APKBUILD41
-rw-r--r--testing/perl-crypt-cast5/APKBUILD33
-rw-r--r--testing/perl-crypt-openssl-aes/APKBUILD32
-rw-r--r--testing/perl-crypt-random-seed/APKBUILD38
-rw-r--r--testing/perl-crypt-saltedhash/APKBUILD5
-rw-r--r--testing/perl-crypt-urandom/APKBUILD39
-rw-r--r--testing/perl-css-object/APKBUILD38
-rw-r--r--testing/perl-curry/APKBUILD38
-rw-r--r--testing/perl-daemon-control/APKBUILD7
-rw-r--r--testing/perl-dancer-plugin-auth-extensible/APKBUILD11
-rw-r--r--testing/perl-dancer-plugin-dbic/APKBUILD14
-rw-r--r--testing/perl-dancer-plugin-passphrase/APKBUILD12
-rw-r--r--testing/perl-dancer-plugin-swig/APKBUILD36
-rw-r--r--testing/perl-dancer-session-cookie/APKBUILD19
-rw-r--r--testing/perl-data-dumper-concise/APKBUILD4
-rw-r--r--testing/perl-data-entropy/APKBUILD40
-rw-r--r--testing/perl-data-float/APKBUILD38
-rw-r--r--testing/perl-data-printer/APKBUILD41
-rw-r--r--testing/perl-data-validate-domain/APKBUILD39
-rw-r--r--testing/perl-data-validate-ip/APKBUILD41
-rw-r--r--testing/perl-database-async-engine-postgresql/APKBUILD57
-rw-r--r--testing/perl-database-async/APKBUILD53
-rw-r--r--testing/perl-datetime-format-atom/APKBUILD39
-rw-r--r--testing/perl-datetime-format-flexible/APKBUILD42
-rw-r--r--testing/perl-datetime-format-rfc3339/APKBUILD39
-rw-r--r--testing/perl-datetime-format-sqlite/APKBUILD41
-rw-r--r--testing/perl-datetime-timezone-alias/APKBUILD44
-rw-r--r--testing/perl-datetime-timezone-catalog-extend/APKBUILD39
-rw-r--r--testing/perl-dbicx-sugar/APKBUILD10
-rw-r--r--testing/perl-dbix-class-candy/APKBUILD13
-rw-r--r--testing/perl-dbix-class-helpers/APKBUILD2
-rw-r--r--testing/perl-dbix-class/APKBUILD74
-rw-r--r--testing/perl-dbix-datasource/APKBUILD10
-rw-r--r--testing/perl-dbix-introspector/APKBUILD9
-rw-r--r--testing/perl-devel-confess/APKBUILD39
-rw-r--r--testing/perl-devel-leak/APKBUILD2
-rw-r--r--testing/perl-devel-refcount/APKBUILD38
-rw-r--r--testing/perl-digest-bcrypt/APKBUILD15
-rw-r--r--testing/perl-digest-crc/APKBUILD39
-rw-r--r--testing/perl-dns-unbound/APKBUILD108
-rw-r--r--testing/perl-email-abstract/APKBUILD14
-rw-r--r--testing/perl-email-mime-attachment-stripper/APKBUILD24
-rw-r--r--testing/perl-email-reply/APKBUILD23
-rw-r--r--testing/perl-env-path/APKBUILD39
-rw-r--r--testing/perl-ev-hiredis/APKBUILD61
-rw-r--r--testing/perl-ev-hiredis/use-system-hiredis.patch21
-rw-r--r--testing/perl-extutils-makemaker/APKBUILD30
-rw-r--r--testing/perl-extutils-xsbuilder/APKBUILD22
-rw-r--r--testing/perl-feed-find/APKBUILD39
-rw-r--r--testing/perl-ffi-c/APKBUILD44
-rw-r--r--testing/perl-ffi-platypus-type-enum/APKBUILD39
-rw-r--r--testing/perl-ffi-platypus/APKBUILD48
-rw-r--r--testing/perl-file-homedir/APKBUILD41
-rw-r--r--testing/perl-file-mmagic-xs/APKBUILD40
-rw-r--r--testing/perl-file-mmagic-xs/format-security.patch13
-rw-r--r--testing/perl-file-rename/APKBUILD40
-rw-r--r--testing/perl-font-ttf/APKBUILD31
-rw-r--r--testing/perl-freezethaw/APKBUILD5
-rw-r--r--testing/perl-future-http/APKBUILD42
-rw-r--r--testing/perl-future-q/APKBUILD41
-rw-r--r--testing/perl-future-queue/APKBUILD38
-rw-r--r--testing/perl-gearman/APKBUILD48
-rw-r--r--testing/perl-getopt-long-descriptive/APKBUILD26
-rw-r--r--testing/perl-getopt-tabular/APKBUILD18
-rw-r--r--testing/perl-git-raw/APKBUILD56
-rw-r--r--testing/perl-git-raw/libgit2-1.7.1-tests.patch47
-rw-r--r--testing/perl-git-raw/libgit2-riscv64-tests.patch19
-rw-r--r--testing/perl-git-raw/libgit2-shared.mk.pl213
-rw-r--r--testing/perl-git-raw/libgit2-version-tests.patch64
-rw-r--r--testing/perl-git-repository/APKBUILD54
-rw-r--r--testing/perl-git-repository/git-2.38.1-tests.patch33
-rw-r--r--testing/perl-git-repository/git-2.40.0-tests.patch24
-rw-r--r--testing/perl-git-version-compare/APKBUILD39
-rw-r--r--testing/perl-glib-ex-objectbits/APKBUILD21
-rw-r--r--testing/perl-glib-object-introspection/APKBUILD38
-rw-r--r--testing/perl-graphql-client/APKBUILD53
-rw-r--r--testing/perl-gtk2-ex-listmodelconcat/APKBUILD29
-rw-r--r--testing/perl-gtk2-ex-widgetbits/APKBUILD33
-rw-r--r--testing/perl-gtk2/APKBUILD16
-rw-r--r--testing/perl-gtk3/APKBUILD35
-rw-r--r--testing/perl-guard/APKBUILD37
-rw-r--r--testing/perl-hash-merge/APKBUILD20
-rw-r--r--testing/perl-hash-ordered/APKBUILD46
-rw-r--r--testing/perl-html-object/APKBUILD51
-rw-r--r--testing/perl-html-selector-xpath/APKBUILD39
-rw-r--r--testing/perl-html-tableextract/APKBUILD15
-rw-r--r--testing/perl-http-lite/APKBUILD48
-rw-r--r--testing/perl-http-parser-xs/APKBUILD48
-rw-r--r--testing/perl-http-thin/APKBUILD41
-rw-r--r--testing/perl-http-xsheaders/APKBUILD42
-rw-r--r--testing/perl-i18n-langinfo-wide/APKBUILD30
-rw-r--r--testing/perl-indirect/APKBUILD39
-rw-r--r--testing/perl-io-async-resolver-dns/APKBUILD37
-rw-r--r--testing/perl-io-lambda/APKBUILD38
-rw-r--r--testing/perl-io-sessiondata/APKBUILD3
-rw-r--r--testing/perl-io-socket-timeout/APKBUILD34
-rw-r--r--testing/perl-json-maybeutf8/APKBUILD39
-rw-r--r--testing/perl-json-path/APKBUILD42
-rw-r--r--testing/perl-json-validator/APKBUILD51
-rw-r--r--testing/perl-libapreq2/APKBUILD25
-rw-r--r--testing/perl-libapreq2/link-in-apr-shared-objects.patch29
-rw-r--r--testing/perl-libintl-perl/APKBUILD37
-rw-r--r--testing/perl-lingua-en-inflect/APKBUILD40
-rw-r--r--testing/perl-linux-pid/APKBUILD10
-rw-r--r--testing/perl-list-binarysearch-xs/APKBUILD39
-rw-r--r--testing/perl-list-binarysearch/APKBUILD42
-rw-r--r--testing/perl-list-binarysearch/documentation.patch24
-rw-r--r--testing/perl-lockfile-simple/APKBUILD40
-rw-r--r--testing/perl-log-fu/APKBUILD29
-rw-r--r--testing/perl-log-message-simple/APKBUILD9
-rw-r--r--testing/perl-log-message/APKBUILD9
-rw-r--r--testing/perl-lv/APKBUILD59
-rw-r--r--testing/perl-lwp-online/APKBUILD38
-rw-r--r--testing/perl-lwp-useragent-cached/APKBUILD28
-rw-r--r--testing/perl-mastodon-client/APKBUILD45
-rw-r--r--testing/perl-math-int64/APKBUILD37
-rw-r--r--testing/perl-math-libm/APKBUILD33
-rw-r--r--testing/perl-math-random-isaac-xs/APKBUILD2
-rw-r--r--testing/perl-mce/APKBUILD7
-rw-r--r--testing/perl-memory-process/APKBUILD36
-rw-r--r--testing/perl-memory-usage/APKBUILD35
-rw-r--r--testing/perl-minion-backend-redis/APKBUILD53
-rw-r--r--testing/perl-minion-backend-sqlite/APKBUILD37
-rw-r--r--testing/perl-minion/APKBUILD54
-rw-r--r--testing/perl-mixin-event-dispatch/APKBUILD47
-rw-r--r--testing/perl-module-build-prereqs-fromcpanfile/APKBUILD36
-rw-r--r--testing/perl-module-find/APKBUILD38
-rw-r--r--testing/perl-module-generic/APKBUILD56
-rw-r--r--testing/perl-module-generic/skip-broken-tests.patch40
-rw-r--r--testing/perl-mojo-pg/APKBUILD38
-rw-r--r--testing/perl-mojo-reactor-ioasync/APKBUILD37
-rw-r--r--testing/perl-mojo-redis/APKBUILD63
-rw-r--r--testing/perl-mojo-sqlite/APKBUILD40
-rw-r--r--testing/perl-mojolicious-plugin-openapi/APKBUILD46
-rw-r--r--testing/perl-musicbrainz-discid/APKBUILD30
-rw-r--r--testing/perl-net-address-ip-local/APKBUILD37
-rw-r--r--testing/perl-net-amqp-rabbitmq/APKBUILD37
-rw-r--r--testing/perl-net-async-redis-xs/APKBUILD64
-rw-r--r--testing/perl-net-async-redis/APKBUILD77
-rw-r--r--testing/perl-net-async-xmpp/APKBUILD50
-rw-r--r--testing/perl-net-curl-promiser/APKBUILD75
-rw-r--r--testing/perl-net-curl/APKBUILD46
-rw-r--r--testing/perl-net-idn-encode/APKBUILD48
-rw-r--r--testing/perl-net-idn-encode/perl-5.38-compat.patch38
-rw-r--r--testing/perl-net-irr/APKBUILD40
-rw-r--r--testing/perl-net-jabber-bot/APKBUILD42
-rw-r--r--testing/perl-net-jabber/APKBUILD50
-rw-r--r--testing/perl-net-jabber/builtin-digest-sha.patch42
-rw-r--r--testing/perl-net-jabber/hash-randomization.patch13
-rw-r--r--testing/perl-net-libresolv/APKBUILD36
-rw-r--r--testing/perl-net-mpd/APKBUILD37
-rw-r--r--testing/perl-net-mqtt-simple/APKBUILD46
-rw-r--r--testing/perl-net-mqtt/APKBUILD53
-rw-r--r--testing/perl-net-netmask/APKBUILD32
-rw-r--r--testing/perl-net-patricia/APKBUILD32
-rw-r--r--testing/perl-net-pcap/APKBUILD39
-rw-r--r--testing/perl-net-xmpp/APKBUILD43
-rw-r--r--testing/perl-net-xmpp/loop-var.patch26
-rw-r--r--testing/perl-net-xmpp/no-gtalk.patch11
-rw-r--r--testing/perl-netaddr-mac/APKBUILD42
-rw-r--r--testing/perl-nice-try/APKBUILD39
-rw-r--r--testing/perl-number-format/APKBUILD18
-rw-r--r--testing/perl-number-misc/APKBUILD33
-rw-r--r--testing/perl-number-tolerant/APKBUILD15
-rw-r--r--testing/perl-object-event/APKBUILD36
-rw-r--r--testing/perl-openapi-client/APKBUILD38
-rw-r--r--testing/perl-opentracing/APKBUILD55
-rw-r--r--testing/perl-pango/APKBUILD29
-rw-r--r--testing/perl-path-iter/APKBUILD14
-rw-r--r--testing/perl-perlio-locale/APKBUILD33
-rw-r--r--testing/perl-perlio-via-timeout/APKBUILD32
-rw-r--r--testing/perl-plack-middleware-expires/APKBUILD17
-rw-r--r--testing/perl-plack-middleware-reverseproxy/APKBUILD9
-rw-r--r--testing/perl-pod-cpandoc/APKBUILD30
-rw-r--r--testing/perl-pod-tidy/APKBUILD37
-rw-r--r--testing/perl-ppi-xs/APKBUILD39
-rw-r--r--testing/perl-proc-guard/APKBUILD42
-rw-r--r--testing/perl-promise-es6/APKBUILD85
-rw-r--r--testing/perl-promise-me/APKBUILD42
-rw-r--r--testing/perl-promise-xs/APKBUILD43
-rw-r--r--testing/perl-protocol-database-postgresql/APKBUILD53
-rw-r--r--testing/perl-protocol-redis-faster/APKBUILD38
-rw-r--r--testing/perl-protocol-redis/APKBUILD42
-rw-r--r--testing/perl-protocol-xmpp/APKBUILD49
-rw-r--r--testing/perl-redis/APKBUILD35
-rw-r--r--testing/perl-ref-util-xs/APKBUILD4
-rw-r--r--testing/perl-regexp-grammars/APKBUILD38
-rw-r--r--testing/perl-role-eventemitter/APKBUILD39
-rw-r--r--testing/perl-rxperl-anyevent/APKBUILD45
-rw-r--r--testing/perl-rxperl-ioasync/APKBUILD45
-rw-r--r--testing/perl-rxperl-mojo/APKBUILD45
-rw-r--r--testing/perl-rxperl/APKBUILD45
-rw-r--r--testing/perl-ryu-async/APKBUILD54
-rw-r--r--testing/perl-ryu/APKBUILD58
-rw-r--r--testing/perl-scalar-readonly/APKBUILD39
-rw-r--r--testing/perl-sentinel/APKBUILD38
-rw-r--r--testing/perl-sereal-decoder/APKBUILD41
-rw-r--r--testing/perl-sereal-encoder/APKBUILD45
-rw-r--r--testing/perl-sereal/APKBUILD46
-rw-r--r--testing/perl-session-storage-secure/APKBUILD44
-rw-r--r--testing/perl-snmp-info/APKBUILD42
-rw-r--r--testing/perl-snmp/APKBUILD6
-rw-r--r--testing/perl-soap-lite/APKBUILD13
-rw-r--r--testing/perl-sort-naturally/APKBUILD4
-rw-r--r--testing/perl-sort-versions/APKBUILD38
-rw-r--r--testing/perl-sql-abstract-classic/APKBUILD37
-rw-r--r--testing/perl-sql-abstract-pg/APKBUILD38
-rw-r--r--testing/perl-sql-abstract/APKBUILD38
-rw-r--r--testing/perl-starman/APKBUILD20
-rw-r--r--testing/perl-statistics-descriptive/APKBUILD14
-rw-r--r--testing/perl-storable-improved/APKBUILD39
-rw-r--r--testing/perl-string-camelcase/APKBUILD3
-rw-r--r--testing/perl-string-compare-constanttime/APKBUILD2
-rw-r--r--testing/perl-string-crc32/APKBUILD6
-rw-r--r--testing/perl-string-random/APKBUILD27
-rw-r--r--testing/perl-string-util/APKBUILD39
-rw-r--r--testing/perl-syntax-keyword-match/APKBUILD37
-rw-r--r--testing/perl-sys-syscall/0001-restore-missing-changes-from-0.20.0.22.patch125
-rw-r--r--testing/perl-sys-syscall/APKBUILD45
-rw-r--r--testing/perl-sys-syscall/aarch64.patch72
-rw-r--r--testing/perl-sys-syscall/ppc64le.patch31
-rw-r--r--testing/perl-sys-syscall/ppc64le_epoll.patch11
-rw-r--r--testing/perl-sys-syscall/s390x.patch34
-rw-r--r--testing/perl-sys-virt/APKBUILD39
-rw-r--r--testing/perl-system-command/APKBUILD39
-rw-r--r--testing/perl-template-plugin-csv/APKBUILD10
-rw-r--r--testing/perl-template-plugin-number-format/APKBUILD37
-rw-r--r--testing/perl-term-size/APKBUILD8
-rw-r--r--testing/perl-term-ui/APKBUILD11
-rw-r--r--testing/perl-test-api/APKBUILD3
-rw-r--r--testing/perl-test-checkdeps/APKBUILD36
-rw-r--r--testing/perl-test-class-tiny/APKBUILD39
-rw-r--r--testing/perl-test-describeme/APKBUILD38
-rw-r--r--testing/perl-test-distribution/APKBUILD36
-rw-r--r--testing/perl-test-expander/APKBUILD55
-rw-r--r--testing/perl-test-file/APKBUILD22
-rw-r--r--testing/perl-test-files/APKBUILD57
-rw-r--r--testing/perl-test-lwp-useragent/APKBUILD46
-rw-r--r--testing/perl-test-memorygrowth/APKBUILD37
-rw-r--r--testing/perl-test-modern/APKBUILD12
-rw-r--r--testing/perl-test-randomresult/APKBUILD38
-rw-r--r--testing/perl-test-redisserver/APKBUILD38
-rw-r--r--testing/perl-test-requires-git/APKBUILD38
-rw-r--r--testing/perl-test-roo/APKBUILD10
-rw-r--r--testing/perl-test-settings/APKBUILD38
-rw-r--r--testing/perl-test-timer/APKBUILD35
-rw-r--r--testing/perl-test-toolbox/APKBUILD25
-rw-r--r--testing/perl-test-trap/APKBUILD10
-rw-r--r--testing/perl-test-unit/20_fix-defined-array-warnings.patch20
-rw-r--r--testing/perl-test-unit/30_fix-xism-test-suite-failures.patch29
-rw-r--r--testing/perl-test-unit/40_make-deep-test-less-fragile.patch23
-rw-r--r--testing/perl-test-unit/APKBUILD42
-rw-r--r--testing/perl-test-unit/testcase.patch11
-rw-r--r--testing/perl-test-useallmodules/APKBUILD35
-rw-r--r--testing/perl-test-utf8/APKBUILD10
-rw-r--r--testing/perl-test2-tools-explain/APKBUILD38
-rw-r--r--testing/perl-text-aspell/APKBUILD40
-rw-r--r--testing/perl-text-brew/APKBUILD4
-rw-r--r--testing/perl-text-table-any/APKBUILD39
-rw-r--r--testing/perl-text-table-sprintf/APKBUILD38
-rw-r--r--testing/perl-throwable/APKBUILD12
-rw-r--r--testing/perl-tickit-widget-choice/APKBUILD37
-rw-r--r--testing/perl-tickit-widget-entry-plugin-completion/APKBUILD37
-rw-r--r--testing/perl-tickit-widget-floatbox/APKBUILD38
-rw-r--r--testing/perl-tickit-widget-menu/APKBUILD37
-rw-r--r--testing/perl-tickit-widget-scrollbox/APKBUILD38
-rw-r--r--testing/perl-tie-ixhash/APKBUILD37
-rw-r--r--testing/perl-time-timegm/APKBUILD2
-rw-r--r--testing/perl-types-path-tiny/APKBUILD39
-rw-r--r--testing/perl-uri-db/APKBUILD37
-rw-r--r--testing/perl-uri-encode-xs/APKBUILD37
-rw-r--r--testing/perl-uri-fetch/APKBUILD39
-rw-r--r--testing/perl-uri-nested/APKBUILD37
-rw-r--r--testing/perl-uri-redis/APKBUILD39
-rw-r--r--testing/perl-uri-tcp/APKBUILD37
-rw-r--r--testing/perl-url-encode/APKBUILD5
-rw-r--r--testing/perl-variable-disposition/APKBUILD46
-rw-r--r--testing/perl-webservice-swigclient/APKBUILD35
-rw-r--r--testing/perl-www-curl/APKBUILD44
-rw-r--r--testing/perl-www-curl/WWW-Curl-4.17-RT117793.patch25
-rw-r--r--testing/perl-www-curl/fix-curl.xs.patch163
-rw-r--r--testing/perl-www-curl/perl-5.26.patch12
-rw-r--r--testing/perl-x-tiny/APKBUILD39
-rw-r--r--testing/perl-xml-atom/APKBUILD42
-rw-r--r--testing/perl-xml-bare/APKBUILD31
-rw-r--r--testing/perl-xml-feed/APKBUILD45
-rw-r--r--testing/perl-xml-libxml-sax-chunkparser/APKBUILD40
-rw-r--r--testing/perl-xml-libxml-sax-chunkparser/fix-tests.patch52
-rw-r--r--testing/perl-xml-rpc/APKBUILD17
-rw-r--r--testing/perl-xml-stream/APKBUILD39
-rw-r--r--testing/perl-xml-stream/improvements.patch34
-rw-r--r--testing/persistent-cache-cpp/0001-src-core-Add-library-versioning.patch74
-rw-r--r--testing/persistent-cache-cpp/APKBUILD55
-rw-r--r--testing/persistent-cache-cpp/remove-docs-html-from-makefile.patch22
-rw-r--r--testing/pest-language-server/APKBUILD38
-rw-r--r--testing/pest-language-server/use-openssl.patch531
-rw-r--r--testing/pfetch/APKBUILD19
-rw-r--r--testing/pfqueue/APKBUILD42
-rw-r--r--testing/pgcli/APKBUILD38
-rw-r--r--testing/phabricator/APKBUILD82
-rw-r--r--testing/phabricator/phd.initd10
-rw-r--r--testing/phonon-backend-vlc/APKBUILD56
-rw-r--r--testing/phoronix-test-suite/APKBUILD38
-rw-r--r--testing/phoronix-test-suite/appdata.patch22
-rw-r--r--testing/phoronix-test-suite/php-discovery.patch14
-rw-r--r--testing/php7-diseval/APKBUILD35
-rw-r--r--testing/php7-gearman/APKBUILD43
-rw-r--r--testing/php7-libvirt-php/APKBUILD42
-rw-r--r--testing/php7-libvirt-php/musl-fixes.patch16
-rw-r--r--testing/php7-libvirt-php/musl-idn.patch11
-rw-r--r--testing/php7-libvirt-php/offline-tests.patch30
-rw-r--r--testing/php7-pdlib/APKBUILD42
-rw-r--r--testing/php7-pecl-decimal/APKBUILD41
-rw-r--r--testing/php7-pecl-decimal/fix-build.patch61
-rw-r--r--testing/php7-pecl-decimal/fix-test.patch49
-rw-r--r--testing/php7-pecl-decimal/fix-tests.patch138
-rw-r--r--testing/php7-pecl-grpc/APKBUILD32
-rw-r--r--testing/php7-pecl-inotify/APKBUILD38
-rw-r--r--testing/php7-pecl-mongodb/APKBUILD39
-rw-r--r--testing/php7-pecl-mustache/APKBUILD38
-rw-r--r--testing/php7-pecl-pcov/APKBUILD42
-rw-r--r--testing/php7-pecl-rdkafka/APKBUILD35
-rw-r--r--testing/php7-pecl-rrd/APKBUILD37
-rw-r--r--testing/php7-pecl-seaslog/APKBUILD43
-rw-r--r--testing/php7-pecl-solr/APKBUILD38
-rw-r--r--testing/php7-pecl-stats/APKBUILD41
-rw-r--r--testing/php7-pecl-swoole/APKBUILD40
-rw-r--r--testing/php7-pecl-varnish/APKBUILD37
-rw-r--r--testing/php7-pecl-xlswriter/APKBUILD37
-rw-r--r--testing/php7-pecl-xlswriter/fix-musl.patch40
-rw-r--r--testing/php7-pecl-zstd/APKBUILD36
-rw-r--r--testing/php7-spx/APKBUILD31
-rw-r--r--testing/php7-tideways_xhprof/APKBUILD37
-rw-r--r--testing/php81-pecl-amqp/APKBUILD40
-rw-r--r--testing/php81-pecl-apcu/APKBUILD49
-rw-r--r--testing/php81-pecl-ast/APKBUILD38
-rw-r--r--testing/php81-pecl-brotli/APKBUILD50
-rw-r--r--testing/php81-pecl-couchbase/APKBUILD39
-rw-r--r--testing/php81-pecl-csv/APKBUILD36
-rw-r--r--testing/php81-pecl-decimal/APKBUILD38
-rw-r--r--testing/php81-pecl-ds/APKBUILD52
-rw-r--r--testing/php81-pecl-event/APKBUILD43
-rw-r--r--testing/php81-pecl-grpc/APKBUILD37
-rw-r--r--testing/php81-pecl-igbinary/APKBUILD49
-rw-r--r--testing/php81-pecl-imagick/APKBUILD48
-rw-r--r--testing/php81-pecl-immutable_cache/APKBUILD39
-rw-r--r--testing/php81-pecl-jsmin/APKBUILD51
-rw-r--r--testing/php81-pecl-jsmin/fix-php8.patch87
-rw-r--r--testing/php81-pecl-jsmin/fix-tests.patch39
-rw-r--r--testing/php81-pecl-luasandbox/APKBUILD41
-rw-r--r--testing/php81-pecl-lzf/APKBUILD36
-rw-r--r--testing/php81-pecl-mailparse/APKBUILD38
-rw-r--r--testing/php81-pecl-maxminddb/APKBUILD38
-rw-r--r--testing/php81-pecl-mcrypt/APKBUILD36
-rw-r--r--testing/php81-pecl-memcache/APKBUILD39
-rw-r--r--testing/php81-pecl-memcached/APKBUILD48
-rw-r--r--testing/php81-pecl-memprof/APKBUILD39
-rw-r--r--testing/php81-pecl-mongodb/APKBUILD40
-rw-r--r--testing/php81-pecl-msgpack/APKBUILD50
-rw-r--r--testing/php81-pecl-oauth/APKBUILD42
-rw-r--r--testing/php81-pecl-oauth/pcre.patch13
-rw-r--r--testing/php81-pecl-opentelemetry/APKBUILD38
-rw-r--r--testing/php81-pecl-pcov/APKBUILD38
-rw-r--r--testing/php81-pecl-protobuf/APKBUILD38
-rw-r--r--testing/php81-pecl-psr/APKBUILD34
-rw-r--r--testing/php81-pecl-rdkafka/APKBUILD38
-rw-r--r--testing/php81-pecl-redis/APKBUILD49
-rw-r--r--testing/php81-pecl-smbclient/APKBUILD39
-rw-r--r--testing/php81-pecl-ssh2/APKBUILD41
-rw-r--r--testing/php81-pecl-swoole/APKBUILD63
-rw-r--r--testing/php81-pecl-timezonedb/APKBUILD38
-rw-r--r--testing/php81-pecl-uploadprogress/APKBUILD47
-rw-r--r--testing/php81-pecl-uuid/APKBUILD35
-rw-r--r--testing/php81-pecl-vips/APKBUILD36
-rw-r--r--testing/php81-pecl-xdebug/APKBUILD53
-rw-r--r--testing/php81-pecl-xhprof/APKBUILD62
-rw-r--r--testing/php81-pecl-xlswriter/APKBUILD38
-rw-r--r--testing/php81-pecl-xmlrpc/APKBUILD39
-rw-r--r--testing/php81-pecl-yaml/APKBUILD40
-rw-r--r--testing/php81-pecl-zephir_parser/APKBUILD37
-rw-r--r--testing/php81-pecl-zstd/APKBUILD39
-rw-r--r--testing/php81-spx/APKBUILD39
-rw-r--r--testing/php81-tideways_xhprof/APKBUILD36
-rw-r--r--testing/php81/APKBUILD671
-rw-r--r--testing/php81/disabled-tests.list193
-rw-r--r--testing/php81/disabled-tests.ppc64le.list3
-rw-r--r--testing/php81/disabled-tests.riscv64.list7
-rw-r--r--testing/php81/disabled-tests.s390x.list2
-rw-r--r--testing/php81/disabled-tests.x86.list8
-rw-r--r--testing/php81/fix-curl.patch28
-rw-r--r--testing/php81/fix-icu74.patch13
-rw-r--r--testing/php81/fix-lfs64.patch30
-rw-r--r--testing/php81/fix-libxml-1.patch67
-rw-r--r--testing/php81/fix-libxml-2.patch244
-rw-r--r--testing/php81/fix-s390x-test.patch42
-rw-r--r--testing/php81/fix-tests-devserver.patch23
-rw-r--r--testing/php81/includedir.patch41
-rw-r--r--testing/php81/install-pear.patch14
-rw-r--r--testing/php81/php81-fpm-version-suffix.patch79
-rw-r--r--testing/php81/php81-fpm.initd93
-rw-r--r--testing/php81/php81-fpm.logrotate13
-rw-r--r--testing/php81/php81-module.conf13
-rw-r--r--testing/php81/sharedir.patch11
-rw-r--r--testing/php82-pdlib/APKBUILD47
-rw-r--r--testing/php82-pecl-apfd/APKBUILD38
-rw-r--r--testing/php82-pecl-excimer/APKBUILD37
-rw-r--r--testing/php82-pecl-immutable_cache/APKBUILD39
-rw-r--r--testing/php82-pecl-jsmin/APKBUILD51
-rw-r--r--testing/php82-pecl-jsmin/fix-php8.patch87
-rw-r--r--testing/php82-pecl-jsmin/fix-tests.patch39
-rw-r--r--testing/php82-pecl-oauth/APKBUILD51
-rw-r--r--testing/php82-pecl-oauth/fix-tests.patch85
-rw-r--r--testing/php82-pecl-phalcon/APKBUILD48
-rw-r--r--testing/php82-pecl-runkit7/APKBUILD37
-rw-r--r--testing/php82-pecl-teds/APKBUILD36
-rw-r--r--testing/php82-pecl-vld/APKBUILD37
-rw-r--r--testing/php82-pecl-zephir_parser/APKBUILD37
-rw-r--r--testing/php82-snappy/APKBUILD48
-rw-r--r--testing/php83-pecl-apfd/APKBUILD38
-rw-r--r--testing/php83-pecl-eio/APKBUILD43
-rw-r--r--testing/php83-pecl-excimer/APKBUILD37
-rw-r--r--testing/php83-pecl-jsmin/APKBUILD51
-rw-r--r--testing/php83-pecl-jsmin/fix-php8.patch87
-rw-r--r--testing/php83-pecl-jsmin/fix-tests.patch39
-rw-r--r--testing/php83-pecl-phalcon/APKBUILD48
-rw-r--r--testing/php83-pecl-vld/APKBUILD37
-rw-r--r--testing/php83-pecl-zmq/APKBUILD42
-rw-r--r--testing/phpspy/APKBUILD35
-rw-r--r--testing/phpspy/fix-install.patch14
-rw-r--r--testing/phpspy/libpthread.patch11
-rw-r--r--testing/phpspy/remove-termbox-check.patch16
-rw-r--r--testing/physlock/APKBUILD26
-rw-r--r--testing/physlock/disable_systemd.patch11
-rw-r--r--testing/pick/APKBUILD29
-rw-r--r--testing/picotts/APKBUILD40
-rw-r--r--testing/pict-rs/APKBUILD48
-rw-r--r--testing/pict-rs/config-file.patch247
-rw-r--r--testing/pict-rs/pict-rs.initd28
-rw-r--r--testing/pict-rs/pict-rs.pre-install11
-rw-r--r--testing/pidif/APKBUILD39
-rw-r--r--testing/pigpio/APKBUILD63
-rw-r--r--testing/pigpio/pigpio.post-install7
-rw-r--r--testing/pigpio/pigpiod.initd9
-rw-r--r--testing/pijul/APKBUILD41
-rw-r--r--testing/pike/APKBUILD184
-rw-r--r--testing/piknik/APKBUILD44
-rw-r--r--testing/piler/0001-utf8_encode_char.patch10
-rw-r--r--testing/piler/0002-manticore-conf.patch17
-rw-r--r--testing/piler/0003-fix_pilerpurge_for_rt_index.patch91
-rw-r--r--testing/piler/APKBUILD114
-rw-r--r--testing/piler/piler-smtp.initd12
-rw-r--r--testing/piler/piler.initd16
-rw-r--r--testing/piler/piler.pre-install6
-rw-r--r--testing/piler/searchd.confd8
-rw-r--r--testing/piler/searchd.initd21
-rw-r--r--testing/pimd-dense/APKBUILD49
-rw-r--r--testing/pimd-dense/pimd-dense.confd1
-rw-r--r--testing/pimd-dense/pimd-dense.initd13
-rw-r--r--testing/pimd/APKBUILD47
-rw-r--r--testing/pimd/pimd.confd3
-rw-r--r--testing/pimd/pimd.initd15
-rw-r--r--testing/pinentry-bemenu/APKBUILD39
-rw-r--r--testing/pinentry-bemenu/meson-ungit.patch15
-rw-r--r--testing/pinephone-call-audio/APKBUILD24
-rw-r--r--testing/pinephone-compass/APKBUILD44
-rw-r--r--testing/pinephone-compass/correct_udev_rules_path.patch13
-rw-r--r--testing/pipectl/APKBUILD28
-rw-r--r--testing/pipeline/APKBUILD47
-rw-r--r--testing/piper-phonemize/APKBUILD61
-rw-r--r--testing/piper-phonemize/add-pkgconfig-support.patch50
-rw-r--r--testing/piper-phonemize/no-rpath.patch13
-rw-r--r--testing/piper-phonemize/use-system-espeak-ng.patch110
-rw-r--r--testing/piper-phonemize/use-system-onnxruntime.patch36
-rw-r--r--testing/piper-tts/APKBUILD54
-rw-r--r--testing/piper-tts/no-rpath.patch12
-rw-r--r--testing/piper-tts/use-system-libs.patch130
-rw-r--r--testing/pipexec/APKBUILD47
-rw-r--r--testing/pipexec/dont-require-bash.patch67
-rw-r--r--testing/piping-server/APKBUILD40
-rw-r--r--testing/piping-server/piping-server.initd20
-rw-r--r--testing/pithos/APKBUILD47
-rw-r--r--testing/pithos/no-optimise.patch10
-rw-r--r--testing/pitivi/APKBUILD61
-rw-r--r--testing/pixi/APKBUILD53
-rw-r--r--testing/pixiewps/APKBUILD6
-rw-r--r--testing/pixz/0001-use-posix-shell-for-tests.patch82
-rw-r--r--testing/pixz/APKBUILD48
-rw-r--r--testing/pixz/endian.patch26
-rw-r--r--testing/planarity/APKBUILD42
-rw-r--r--testing/planner/APKBUILD28
-rw-r--r--testing/plasma-mycroft/APKBUILD37
-rw-r--r--testing/platformio-core/APKBUILD37
-rw-r--r--testing/please-build/APKBUILD80
-rw-r--r--testing/please-build/fix-test.patch38
-rw-r--r--testing/please-build/go-1.22.patch564
-rw-r--r--testing/please/APKBUILD52
-rw-r--r--testing/please/please.pam4
-rw-r--r--testing/plfit/APKBUILD38
-rw-r--r--testing/plib/APKBUILD57
-rw-r--r--testing/plib/CVE-2011-4620.patch11
-rw-r--r--testing/plib/CVE-2012-4552.patch55
-rw-r--r--testing/plots/APKBUILD43
-rw-r--r--testing/plplot/APKBUILD37
-rw-r--r--testing/ply/APKBUILD34
-rw-r--r--testing/plzip/APKBUILD12
-rw-r--r--testing/pmbootstrap/APKBUILD31
-rw-r--r--testing/pmbootstrap/modules-load.conf2
-rw-r--r--testing/pmbootstrap/pmbootstrap.post-install6
-rw-r--r--testing/pmccabe/APKBUILD26
-rw-r--r--testing/pnmixer/APKBUILD4
-rw-r--r--testing/pnpm/APKBUILD49
-rw-r--r--testing/poco/APKBUILD31
-rw-r--r--testing/poco/cxxflags.patch24
-rw-r--r--testing/podman-compose/APKBUILD23
-rw-r--r--testing/podman/APKBUILD37
-rw-r--r--testing/podman/libpod-config.patch34
-rw-r--r--testing/poetry/APKBUILD44
-rw-r--r--testing/poetry/poetry.py10
-rw-r--r--testing/poke/APKBUILD36
-rw-r--r--testing/pokoy/APKBUILD28
-rw-r--r--testing/pokoy/broken-makefile.patch15
-rw-r--r--testing/policycoreutils/0003-fix-pam-rules.patch34
-rw-r--r--testing/policycoreutils/APKBUILD27
-rw-r--r--testing/policycoreutils/busybox-install-compat.patch11
-rw-r--r--testing/polipo/APKBUILD30
-rw-r--r--testing/polyglot/APKBUILD29
-rw-r--r--testing/polyml/APKBUILD46
-rw-r--r--testing/polyml/fix-build-libffi-3.3.patch16
-rw-r--r--testing/pomo/APKBUILD37
-rw-r--r--testing/pongoos-loader/APKBUILD20
-rw-r--r--testing/popeye/APKBUILD36
-rw-r--r--testing/portmidi/00_cmake.patch33
-rw-r--r--testing/portmidi/01_pmlinux.patch17
-rw-r--r--testing/portmidi/02_pmlinuxalsa.patch33
-rw-r--r--testing/portmidi/03_pm_test_Makefile.patch39
-rw-r--r--testing/portmidi/11-pmlinuxalsa.patch70
-rw-r--r--testing/portmidi/13-disablejni.patch86
-rw-r--r--testing/portmidi/20-movetest.patch1001
-rw-r--r--testing/portmidi/21-hardentests.patch93
-rw-r--r--testing/portmidi/30-porttime_cmake.patch32
-rw-r--r--testing/portmidi/40-test_sysex.patch19
-rw-r--r--testing/portmidi/41-pm_linux.patch77
-rw-r--r--testing/portmidi/50-change_assert.patch41
-rw-r--r--testing/portmidi/51-remove_assert.patch13
-rw-r--r--testing/portmidi/APKBUILD63
-rw-r--r--testing/portsmf/APKBUILD31
-rw-r--r--testing/postfwd/APKBUILD47
-rw-r--r--testing/postfwd/postfwd.confd19
-rw-r--r--testing/postfwd/postfwd.initd19
-rwxr-xr-xtesting/postfwd/postfwd.pre-install6
-rw-r--r--testing/postgresql-citus/APKBUILD35
-rw-r--r--testing/postgresql-citus/postgresql-citus.post-install10
-rw-r--r--testing/postgresql-hll/APKBUILD34
-rw-r--r--testing/postgresql-pg_cron/APKBUILD35
-rw-r--r--testing/postgresql-pg_cron/postgresql-pg_cron.post-install10
-rw-r--r--testing/postgresql-pg_graphql/APKBUILD71
-rw-r--r--testing/postgresql-pg_graphql/remove-regex.patch66
-rw-r--r--testing/postgresql-pg_later/APKBUILD71
-rw-r--r--testing/postgresql-pg_later/remove-tls.patch646
-rw-r--r--testing/postgresql-pg_partman/APKBUILD58
-rw-r--r--testing/postgresql-pg_partman/fix-python-shebang.patch24
-rw-r--r--testing/postgresql-pg_variables/APKBUILD39
-rw-r--r--testing/postgresql-pgmq/APKBUILD68
-rw-r--r--testing/postgresql-pgmq/bump-pgrx.patch168
-rw-r--r--testing/pounce/APKBUILD44
-rw-r--r--testing/pounce/calico.confd22
-rw-r--r--testing/pounce/calico.initd21
-rw-r--r--testing/pounce/pounce.confd13
-rw-r--r--testing/pounce/pounce.initd41
-rw-r--r--testing/pounce/pounce.pre-install5
-rw-r--r--testing/powder-toy/APKBUILD43
-rw-r--r--testing/power-profiles-daemon/0001-dbus-no-systemd.patch13
-rw-r--r--testing/power-profiles-daemon/APKBUILD48
-rw-r--r--testing/powerctl/APKBUILD32
-rw-r--r--testing/powerctl/getopts-fs-flags.patch79
-rw-r--r--testing/powerctl/new-hare-strings.patch37
-rw-r--r--testing/powerctl/powerctl.post-install2
-rw-r--r--testing/powerline-extra-symbols/APKBUILD11
-rw-r--r--testing/powerstat/APKBUILD25
-rw-r--r--testing/powersupply/APKBUILD33
-rw-r--r--testing/ppl/APKBUILD57
-rw-r--r--testing/ppl/gcc13.patch12
-rw-r--r--testing/ppsspp/APKBUILD80
-rwxr-xr-xtesting/ppsspp/ppsspp3
-rwxr-xr-xtesting/ppsspp/ppsspp-headless3
-rw-r--r--testing/ppsspp/ppsspp-version.patch9
-rw-r--r--testing/ppsspp/ppsspp.desktop11
-rw-r--r--testing/pptpclient/APKBUILD4
-rw-r--r--testing/pqiv/APKBUILD8
-rw-r--r--testing/prettier/APKBUILD45
-rw-r--r--testing/primecount/APKBUILD41
-rw-r--r--testing/primesieve/APKBUILD34
-rw-r--r--testing/prjtrellis-db/APKBUILD66
-rw-r--r--testing/prjtrellis/0001-library-install-path.patch86
-rw-r--r--testing/prjtrellis/APKBUILD41
-rw-r--r--testing/procs/APKBUILD35
-rw-r--r--testing/profanity/APKBUILD58
-rw-r--r--testing/profiled/APKBUILD22
-rw-r--r--testing/proftpd/APKBUILD194
-rw-r--r--testing/proftpd/fix-ar-dir.patch13
-rw-r--r--testing/proftpd/fix-autoconf.patch22
-rw-r--r--testing/proftpd/mod_sftp.conf10
-rw-r--r--testing/proftpd/mod_tls_shmcache.conf3
-rw-r--r--testing/proftpd/proftpd.conf87
-rw-r--r--testing/proftpd/proftpd.initd35
-rw-r--r--testing/proftpd/proftpd.logrotate9
-rw-r--r--testing/proftpd/proftpd.pre-install7
-rw-r--r--testing/projectm/APKBUILD100
-rw-r--r--testing/projectm/fix-missing-gl-symbols-on-arm.patch23
-rw-r--r--testing/projectsandcastle-loader/APKBUILD26
-rw-r--r--testing/prometheus-bind-exporter/APKBUILD50
-rw-r--r--testing/prometheus-bind-exporter/bind-exporter.confd4
-rw-r--r--testing/prometheus-bind-exporter/bind-exporter.initd15
-rw-r--r--testing/prometheus-bind-exporter/prometheus-bind-exporter.pre-install5
-rw-r--r--testing/prometheus-ceph-exporter/APKBUILD48
-rw-r--r--testing/prometheus-ceph-exporter/ceph-exporter.confd3
-rwxr-xr-xtesting/prometheus-ceph-exporter/ceph-exporter.initd18
-rwxr-xr-xtesting/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-install (renamed from testing/prometheus-node-exporter/prometheus-node-exporter.pre-install)0
l---------testing/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-upgrade1
-rw-r--r--testing/prometheus-node-exporter/APKBUILD44
-rw-r--r--testing/prometheus-node-exporter/disable-go-race-detector.patch33
-rw-r--r--testing/prometheus-node-exporter/node-exporter.confd7
-rwxr-xr-xtesting/prometheus-node-exporter/node-exporter.initd22
l---------testing/prometheus-node-exporter/prometheus-node-exporter.pre-upgrade1
-rw-r--r--testing/prometheus-rethinkdb-exporter/APKBUILD14
-rw-r--r--testing/prometheus-smartctl-exporter/APKBUILD44
-rw-r--r--testing/prometheus-smartctl-exporter/prometheus-smartctl-exporter.pre-install8
-rw-r--r--testing/prometheus-smartctl-exporter/smartctl-exporter.confd10
-rwxr-xr-xtesting/prometheus-smartctl-exporter/smartctl-exporter.initd7
-rw-r--r--testing/prometheus-smokeping-prober/APKBUILD44
-rwxr-xr-xtesting/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-install6
l---------testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-upgrade1
-rw-r--r--testing/prometheus-smokeping-prober/smokeping-prober.confd7
-rwxr-xr-xtesting/prometheus-smokeping-prober/smokeping-prober.initd24
-rw-r--r--testing/prometheus-snmp-exporter/APKBUILD54
-rw-r--r--testing/prometheus-snmp-exporter/prometheus-snmp-exporter.confd1
-rw-r--r--testing/prometheus-snmp-exporter/prometheus-snmp-exporter.initd8
-rw-r--r--testing/prometheus-snmp-exporter/prometheus-snmp-exporter.pre-install5
-rw-r--r--testing/prometheus-unbound-exporter/0001-dont-authenticate-by-default.patch15
-rw-r--r--testing/prometheus-unbound-exporter/APKBUILD45
-rwxr-xr-xtesting/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-install6
l---------testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-upgrade1
-rw-r--r--testing/prometheus-unbound-exporter/unbound-exporter.confd7
-rwxr-xr-xtesting/prometheus-unbound-exporter/unbound-exporter.initd21
-rw-r--r--testing/prometheus-wireguard-exporter/APKBUILD38
-rw-r--r--testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.confd1
-rw-r--r--testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.initd11
-rw-r--r--testing/proot/APKBUILD54
-rw-r--r--testing/proot/tests-musl-compat.patch26
-rw-r--r--testing/properties-cpp/APKBUILD44
-rw-r--r--testing/properties-cpp/cmake-cleanup.patch399
-rw-r--r--testing/prosody-filer/APKBUILD48
-rw-r--r--testing/prosody-filer/prosody-filer.confd19
-rw-r--r--testing/prosody-filer/prosody-filer.initd19
-rw-r--r--testing/prosody-filer/prosody-filer.pre-install11
-rw-r--r--testing/prosody-modules/APKBUILD18
-rw-r--r--testing/protoc-gen-go/APKBUILD34
-rw-r--r--testing/protoc-gen-js/APKBUILD30
-rw-r--r--testing/protoconf/APKBUILD37
-rw-r--r--testing/prowlarr/0001-disable-restart.patch20
-rw-r--r--testing/prowlarr/APKBUILD98
-rw-r--r--testing/prowlarr/package_info4
-rw-r--r--testing/prowlarr/prowlarr.confd9
-rw-r--r--testing/prowlarr/prowlarr.initd33
-rw-r--r--testing/prowlarr/prowlarr.pre-install6
-rw-r--r--testing/psftools/APKBUILD37
-rw-r--r--testing/psi-notify/APKBUILD31
-rw-r--r--testing/psi-plus/APKBUILD59
-rw-r--r--testing/pspp/APKBUILD47
-rw-r--r--testing/ptpd/APKBUILD48
-rw-r--r--testing/ptpd/ptpd-2.3.1-fix-libressl-compatibility.patch24
-rw-r--r--testing/ptpd/ptpd-2.3.1-fix-snmp.patch12
-rw-r--r--testing/ptpd/ptpd2.confd4
-rw-r--r--testing/ptpd/ptpd2.rc56
-rw-r--r--testing/ptylie/APKBUILD2
-rw-r--r--testing/pully/APKBUILD31
-rw-r--r--testing/pully/pully.confd10
-rw-r--r--testing/pully/pully.initd21
-rw-r--r--testing/pulsar-client-cpp/APKBUILD57
-rw-r--r--testing/pulsar-client-cpp/cxx17.patch13
-rw-r--r--testing/pulsar-client-cpp/no-werror.patch13
-rw-r--r--testing/pulseview/APKBUILD40
-rw-r--r--testing/pulseview/fix-build-template.patch51
-rw-r--r--testing/pulseview/remove-broken-testcases.patch11
-rw-r--r--testing/pulumi-watch/APKBUILD35
-rw-r--r--testing/pup/APKBUILD44
-rw-r--r--testing/pure-data/APKBUILD80
-rw-r--r--testing/pure-data/implicit.patch12
-rw-r--r--testing/pure-data/system-portmidi.patch28
-rw-r--r--testing/pure-ftpd/APKBUILD50
-rw-r--r--testing/pure-ftpd/minimal.patch23
-rw-r--r--testing/pure-ftpd/pure-ftpd.confd90
-rw-r--r--testing/pure-ftpd/pure-ftpd.initd77
-rw-r--r--testing/purple-facebook/APKBUILD22
-rw-r--r--testing/purple-hangouts/APKBUILD24
-rw-r--r--testing/pw-volume/APKBUILD42
-rw-r--r--testing/pw-volume/update-lockfile.patch180
-rw-r--r--testing/pwauth/APKBUILD25
-rw-r--r--testing/pwru/APKBUILD35
-rw-r--r--testing/pwsafe/APKBUILD32
-rw-r--r--testing/pxalarm/APKBUILD19
-rw-r--r--testing/pxmenu/APKBUILD20
-rw-r--r--testing/py-spy/APKBUILD64
-rw-r--r--testing/py3-actdiag/APKBUILD24
-rw-r--r--testing/py3-adapt-parser/APKBUILD27
-rw-r--r--testing/py3-adapt-parser/relax-dep-requirements.patch13
-rw-r--r--testing/py3-aesedb/APKBUILD50
-rw-r--r--testing/py3-agithub/APKBUILD24
-rw-r--r--testing/py3-aiodocker/APKBUILD40
-rw-r--r--testing/py3-aiohttp-debugtoolbar/APKBUILD24
-rw-r--r--testing/py3-aiohttp-jinja2/APKBUILD18
-rw-r--r--testing/py3-aiohttp-remotes/APKBUILD54
-rw-r--r--testing/py3-aiohttp-session/APKBUILD11
-rw-r--r--testing/py3-aioopenssl/APKBUILD30
-rw-r--r--testing/py3-aiosasl/APKBUILD30
-rw-r--r--testing/py3-aiosmb/APKBUILD48
-rw-r--r--testing/py3-aiowinreg/APKBUILD48
-rw-r--r--testing/py3-aioxmpp/APKBUILD44
-rw-r--r--testing/py3-ajsonrpc/APKBUILD36
-rw-r--r--testing/py3-ajsonrpc/no-test-install.patch8
-rw-r--r--testing/py3-alembic/APKBUILD29
-rw-r--r--testing/py3-allfiles/APKBUILD18
-rw-r--r--testing/py3-altgraph/APKBUILD39
-rw-r--r--testing/py3-amqp/APKBUILD37
-rw-r--r--testing/py3-ansi2html/APKBUILD36
-rw-r--r--testing/py3-anyascii/APKBUILD36
-rw-r--r--testing/py3-anyjson/APKBUILD35
-rw-r--r--testing/py3-anyjson/python3.patch58
-rw-r--r--testing/py3-apicula/APKBUILD47
-rw-r--r--testing/py3-apsw/APKBUILD38
-rw-r--r--testing/py3-apsw/detect-sqlite-config.patch8
-rw-r--r--testing/py3-arcus/APKBUILD42
-rw-r--r--testing/py3-arcus/cmake-helpers.patch254
-rw-r--r--testing/py3-arcus/cmake.patch32
-rw-r--r--testing/py3-arcus/pyproject.patch20
-rw-r--r--testing/py3-argcomplete/APKBUILD34
-rw-r--r--testing/py3-arpeggio/APKBUILD33
-rw-r--r--testing/py3-arrow/APKBUILD35
-rw-r--r--testing/py3-asif/APKBUILD27
-rw-r--r--testing/py3-ask/APKBUILD14
-rw-r--r--testing/py3-astor/APKBUILD29
-rw-r--r--testing/py3-astral/APKBUILD24
-rw-r--r--testing/py3-astroid/APKBUILD29
-rw-r--r--testing/py3-asttokens/APKBUILD28
-rw-r--r--testing/py3-asyauth/APKBUILD39
-rw-r--r--testing/py3-async-lru/APKBUILD38
-rw-r--r--testing/py3-asysocks/APKBUILD38
-rw-r--r--testing/py3-audioread/APKBUILD28
-rw-r--r--testing/py3-authres/APKBUILD29
-rw-r--r--testing/py3-autopep8/APKBUILD26
-rw-r--r--testing/py3-avro/APKBUILD36
-rw-r--r--testing/py3-axolotl-curve25519/APKBUILD27
-rw-r--r--testing/py3-axolotl/APKBUILD31
-rw-r--r--testing/py3-banal/APKBUILD27
-rw-r--r--testing/py3-bandwidth-sdk/APKBUILD7
-rw-r--r--testing/py3-banknumber/APKBUILD31
-rw-r--r--testing/py3-barcodenumber/APKBUILD14
-rw-r--r--testing/py3-base58/APKBUILD30
-rw-r--r--testing/py3-bbopt/APKBUILD28
-rw-r--r--testing/py3-beartype/APKBUILD44
-rw-r--r--testing/py3-bencode/APKBUILD42
-rw-r--r--testing/py3-betamax/APKBUILD29
-rw-r--r--testing/py3-betamax/tests-disable-broken-assertion.patch17
-rw-r--r--testing/py3-betamax_matchers/APKBUILD27
-rw-r--r--testing/py3-betamax_serializers/APKBUILD27
-rw-r--r--testing/py3-bidict/APKBUILD48
-rw-r--r--testing/py3-bidict/no-typing-ext.patch9
-rw-r--r--testing/py3-billiard/APKBUILD36
-rw-r--r--testing/py3-biopython/APKBUILD28
-rw-r--r--testing/py3-bite-parser/APKBUILD43
-rw-r--r--testing/py3-bitstruct/APKBUILD42
-rw-r--r--testing/py3-blessings/APKBUILD25
-rw-r--r--testing/py3-blinker/APKBUILD29
-rw-r--r--testing/py3-blis/APKBUILD44
-rw-r--r--testing/py3-blist/APKBUILD33
-rw-r--r--testing/py3-blist/fix-python3.7.patch12
-rw-r--r--testing/py3-blockchain/APKBUILD5
-rw-r--r--testing/py3-blockdiag/APKBUILD24
-rw-r--r--testing/py3-bookkeeper/APKBUILD27
-rw-r--r--testing/py3-bottle-api/APKBUILD14
-rw-r--r--testing/py3-bottle-hotqueue/APKBUILD28
-rw-r--r--testing/py3-bottle-pgsql/APKBUILD17
-rw-r--r--testing/py3-bottle-redis/APKBUILD18
-rw-r--r--testing/py3-bottle-renderer/APKBUILD16
-rw-r--r--testing/py3-bottle-request/APKBUILD16
-rw-r--r--testing/py3-bottle-rest/APKBUILD28
-rw-r--r--testing/py3-bottle-session/APKBUILD18
-rw-r--r--testing/py3-bottle-sqlalchemy/APKBUILD16
-rw-r--r--testing/py3-bottle-sqlite/APKBUILD20
-rw-r--r--testing/py3-bottle-websocket/APKBUILD16
-rw-r--r--testing/py3-bottle-werkzeug/APKBUILD16
-rw-r--r--testing/py3-bson/APKBUILD5
-rw-r--r--testing/py3-businesstime/APKBUILD16
-rw-r--r--testing/py3-c3d/APKBUILD30
-rw-r--r--testing/py3-cachy/APKBUILD26
-rw-r--r--testing/py3-cairocffi/APKBUILD42
-rw-r--r--testing/py3-cairosvg/APKBUILD34
-rw-r--r--testing/py3-caldav/APKBUILD44
-rw-r--r--testing/py3-case/APKBUILD30
-rw-r--r--testing/py3-cassandra-driver/APKBUILD26
-rw-r--r--testing/py3-casttube/APKBUILD24
-rw-r--r--testing/py3-catalogue/APKBUILD32
-rw-r--r--testing/py3-catkin-pkg/APKBUILD26
-rw-r--r--testing/py3-cbor2/APKBUILD49
-rw-r--r--testing/py3-cbor2/fix-32bit-tests.patch29
-rw-r--r--testing/py3-cchardet/APKBUILD27
-rw-r--r--testing/py3-cdio/APKBUILD16
-rw-r--r--testing/py3-cdio/assertEquals.patch23
-rw-r--r--testing/py3-certauth/APKBUILD39
-rw-r--r--testing/py3-chameleon/APKBUILD27
-rw-r--r--testing/py3-cherrypy/APKBUILD25
-rw-r--r--testing/py3-chromecast/APKBUILD24
-rw-r--r--testing/py3-ciso8601/APKBUILD34
-rw-r--r--testing/py3-cjkwrap/APKBUILD28
-rw-r--r--testing/py3-class-doc/APKBUILD39
-rw-r--r--testing/py3-class-doc/masonry.patch11
-rw-r--r--testing/py3-cleo/APKBUILD25
-rw-r--r--testing/py3-cli_helpers/APKBUILD32
-rw-r--r--testing/py3-click-completion/APKBUILD33
-rw-r--r--testing/py3-click-default-group/APKBUILD40
-rw-r--r--testing/py3-click-threading/APKBUILD32
-rw-r--r--testing/py3-clickclick/APKBUILD50
-rw-r--r--testing/py3-clickclick/Remove-unused-six-from-setup_requires-1.patch30
-rw-r--r--testing/py3-clickclick/fix-quoting-style-in-assert.patch25
-rw-r--r--testing/py3-clikit/APKBUILD25
-rw-r--r--testing/py3-cloudpickle/APKBUILD28
-rw-r--r--testing/py3-cmd2/APKBUILD34
-rw-r--r--testing/py3-cobs/APKBUILD18
-rw-r--r--testing/py3-codecov/APKBUILD16
-rw-r--r--testing/py3-colander/APKBUILD15
-rw-r--r--testing/py3-colored/APKBUILD28
-rw-r--r--testing/py3-colorlog/APKBUILD33
-rw-r--r--testing/py3-colorthief/APKBUILD34
-rw-r--r--testing/py3-colour/APKBUILD32
-rw-r--r--testing/py3-columnize/APKBUILD20
-rw-r--r--testing/py3-commonmark/APKBUILD31
-rw-r--r--testing/py3-compdb/APKBUILD9
-rw-r--r--testing/py3-confluent-kafka/APKBUILD21
-rw-r--r--testing/py3-convertdate/APKBUILD24
-rw-r--r--testing/py3-cookiecutter/APKBUILD53
-rw-r--r--testing/py3-cookies/APKBUILD31
-rw-r--r--testing/py3-coreapi/APKBUILD9
-rw-r--r--testing/py3-crc16/APKBUILD20
-rw-r--r--testing/py3-cssselect/APKBUILD29
-rw-r--r--testing/py3-cssselect2/APKBUILD33
-rw-r--r--testing/py3-cssselect2/tests.patch33
-rw-r--r--testing/py3-cssutils/APKBUILD34
-rw-r--r--testing/py3-cstruct/APKBUILD32
-rw-r--r--testing/py3-cucumber-tag-expressions/APKBUILD43
-rw-r--r--testing/py3-curio/APKBUILD29
-rw-r--r--testing/py3-cvxpy/APKBUILD37
-rw-r--r--testing/py3-cymem/APKBUILD31
-rw-r--r--testing/py3-d2to1/APKBUILD29
-rw-r--r--testing/py3-daemon/APKBUILD36
-rw-r--r--testing/py3-daiquiri/APKBUILD38
-rw-r--r--testing/py3-dask/APKBUILD34
-rw-r--r--testing/py3-dataclasses-json/APKBUILD38
-rw-r--r--testing/py3-dataclasses-serialization/APKBUILD61
-rw-r--r--testing/py3-dataclasses-serialization/root.patch15
-rw-r--r--testing/py3-dateparser/APKBUILD68
-rw-r--r--testing/py3-daterangestr/APKBUILD14
-rw-r--r--testing/py3-ddt/APKBUILD33
-rw-r--r--testing/py3-delegator/APKBUILD24
-rw-r--r--testing/py3-dep-logic/APKBUILD37
-rw-r--r--testing/py3-dexml/APKBUILD25
-rw-r--r--testing/py3-dexml/py3.patch13
-rw-r--r--testing/py3-dict2xml/APKBUILD34
-rw-r--r--testing/py3-dill/APKBUILD32
-rw-r--r--testing/py3-discid/APKBUILD5
-rw-r--r--testing/py3-discogs-client/APKBUILD29
-rw-r--r--testing/py3-diskcache/APKBUILD11
-rw-r--r--testing/py3-distorm3/APKBUILD15
-rw-r--r--testing/py3-distributed/APKBUILD32
-rw-r--r--testing/py3-django-auth-ldap/APKBUILD49
-rw-r--r--testing/py3-django-compress-staticfiles/APKBUILD39
-rw-r--r--testing/py3-django-cors-headers/APKBUILD29
-rw-r--r--testing/py3-django-debug-toolbar/APKBUILD23
-rw-r--r--testing/py3-django-js-asset/APKBUILD31
-rw-r--r--testing/py3-django-mptt/APKBUILD20
-rw-r--r--testing/py3-django-rest-swagger/APKBUILD33
-rw-r--r--testing/py3-django-suit/APKBUILD9
-rw-r--r--testing/py3-django-taggit-serializer/APKBUILD6
-rw-r--r--testing/py3-django-taggit/APKBUILD29
-rw-r--r--testing/py3-django-timezone-field/APKBUILD43
-rw-r--r--testing/py3-dkimpy/APKBUILD32
-rw-r--r--testing/py3-dnslib/APKBUILD38
-rw-r--r--testing/py3-docformatter/APKBUILD56
-rw-r--r--testing/py3-docformatter/fix-tests.patch19
-rw-r--r--testing/py3-dogpile.cache/APKBUILD32
-rw-r--r--testing/py3-doit/APKBUILD20
-rw-r--r--testing/py3-dominate/APKBUILD28
-rw-r--r--testing/py3-dotty-dict/APKBUILD33
-rw-r--r--testing/py3-dpath/APKBUILD22
-rw-r--r--testing/py3-drf-yasg/APKBUILD15
-rw-r--r--testing/py3-dt-schema/APKBUILD55
-rw-r--r--testing/py3-dulwich/APKBUILD33
-rw-r--r--testing/py3-dunamai/APKBUILD36
-rw-r--r--testing/py3-duniterpy/APKBUILD48
-rw-r--r--testing/py3-duniterpy/Remove_empty_homepage_field_from_pyproject.patch12
-rw-r--r--testing/py3-duniterpy/Support_py3-libnacl_1.9.0.patch25
-rw-r--r--testing/py3-dweepy/APKBUILD14
-rw-r--r--testing/py3-ecos/APKBUILD37
-rw-r--r--testing/py3-ecos/use_external_ecos.patch44
-rw-r--r--testing/py3-editdistance-s/APKBUILD32
-rw-r--r--testing/py3-empy/APKBUILD6
-rw-r--r--testing/py3-enzyme/APKBUILD30
-rw-r--r--testing/py3-eradicate/APKBUILD29
-rw-r--r--testing/py3-euclid3/APKBUILD33
-rw-r--r--testing/py3-eventlet/APKBUILD44
-rw-r--r--testing/py3-evohome-client/APKBUILD13
-rw-r--r--testing/py3-fann2/APKBUILD29
-rw-r--r--testing/py3-fastapi/APKBUILD66
-rw-r--r--testing/py3-fastapi/pytest-markers.patch12
-rw-r--r--testing/py3-fastavro/APKBUILD28
-rw-r--r--testing/py3-fastdiff/APKBUILD35
-rw-r--r--testing/py3-feedgen/APKBUILD42
-rw-r--r--testing/py3-feedgenerator/APKBUILD14
-rw-r--r--testing/py3-ffmpeg/APKBUILD33
-rw-r--r--testing/py3-findpython/APKBUILD37
-rw-r--r--testing/py3-firmata/APKBUILD16
-rw-r--r--testing/py3-firmata/py311.patch13
-rw-r--r--testing/py3-fitipy/APKBUILD24
-rw-r--r--testing/py3-flake8-blind-except/APKBUILD19
-rw-r--r--testing/py3-flake8-builtins/APKBUILD20
-rw-r--r--testing/py3-flake8-commas/APKBUILD33
-rw-r--r--testing/py3-flake8-copyright/APKBUILD19
-rw-r--r--testing/py3-flake8-debugger/APKBUILD25
-rw-r--r--testing/py3-flake8-import-order/APKBUILD24
-rw-r--r--testing/py3-flake8-isort/APKBUILD28
-rw-r--r--testing/py3-flake8-polyfill/APKBUILD27
-rw-r--r--testing/py3-flake8-print/APKBUILD22
-rw-r--r--testing/py3-flake8-quotes/APKBUILD30
-rw-r--r--testing/py3-flake8-snippets/APKBUILD16
-rw-r--r--testing/py3-flake8-todo/APKBUILD14
-rw-r--r--testing/py3-flask-accept/APKBUILD46
-rw-r--r--testing/py3-flask-admin/APKBUILD22
-rw-r--r--testing/py3-flask-autorouter/APKBUILD27
-rw-r--r--testing/py3-flask-basicauth/APKBUILD16
-rw-r--r--testing/py3-flask-bcrypt/APKBUILD22
-rw-r--r--testing/py3-flask-bootstrap/APKBUILD16
-rw-r--r--testing/py3-flask-cache/APKBUILD18
-rw-r--r--testing/py3-flask-cdn/APKBUILD16
-rw-r--r--testing/py3-flask-cdn/assertEquals.patch96
-rw-r--r--testing/py3-flask-components/APKBUILD26
-rw-r--r--testing/py3-flask-components/importlib.patch15
-rw-r--r--testing/py3-flask-dbconfig/APKBUILD14
-rw-r--r--testing/py3-flask-flatpages/APKBUILD27
-rw-r--r--testing/py3-flask-gzip/APKBUILD14
-rw-r--r--testing/py3-flask-headers/APKBUILD16
-rw-r--r--testing/py3-flask-httpauth/APKBUILD30
-rw-r--r--testing/py3-flask-json-schema/APKBUILD30
-rw-r--r--testing/py3-flask-limiter/APKBUILD50
-rw-r--r--testing/py3-flask-limiter/our-std-is-good-enough.patch22
-rw-r--r--testing/py3-flask-loopback/APKBUILD20
-rw-r--r--testing/py3-flask-mailman/APKBUILD35
-rw-r--r--testing/py3-flask-markdown/APKBUILD16
-rw-r--r--testing/py3-flask-migrate/APKBUILD39
-rw-r--r--testing/py3-flask-paginate/APKBUILD29
-rw-r--r--testing/py3-flask-peewee/APKBUILD20
-rw-r--r--testing/py3-flask-principal/APKBUILD18
-rw-r--r--testing/py3-flask-qrcode/APKBUILD22
-rw-r--r--testing/py3-flask-restaction/APKBUILD16
-rw-r--r--testing/py3-flask-restful/APKBUILD27
-rw-r--r--testing/py3-flask-restless/APKBUILD18
-rw-r--r--testing/py3-flask-security/APKBUILD61
-rw-r--r--testing/py3-flask-security/nowarnings.patch12
-rw-r--r--testing/py3-flask-security/remove_importlib_resources.patch13
-rw-r--r--testing/py3-flask-sqlalchemy/APKBUILD28
-rw-r--r--testing/py3-flask-themer/APKBUILD35
-rw-r--r--testing/py3-flexmock/APKBUILD29
-rw-r--r--testing/py3-forbiddenfruit/APKBUILD12
-rw-r--r--testing/py3-fpdf/APKBUILD26
-rw-r--r--testing/py3-freetype-py/APKBUILD41
-rw-r--r--testing/py3-fsspec/APKBUILD28
-rw-r--r--testing/py3-funcparserlib/APKBUILD20
-rw-r--r--testing/py3-furl/APKBUILD17
-rw-r--r--testing/py3-fuzzyfinder/APKBUILD23
-rw-r--r--testing/py3-fuzzywuzzy/APKBUILD32
-rw-r--r--testing/py3-geoip/APKBUILD31
-rw-r--r--testing/py3-geoip2/APKBUILD45
-rw-r--r--testing/py3-geojson/APKBUILD27
-rw-r--r--testing/py3-gettext/APKBUILD31
-rw-r--r--testing/py3-gevent-websocket/APKBUILD7
-rw-r--r--testing/py3-git-versioner/APKBUILD50
-rw-r--r--testing/py3-gitdb2/APKBUILD28
-rw-r--r--testing/py3-github3/APKBUILD43
-rw-r--r--testing/py3-gitlab/APKBUILD49
-rw-r--r--testing/py3-gitpython/APKBUILD29
-rw-r--r--testing/py3-glob2/APKBUILD6
-rw-r--r--testing/py3-gls/APKBUILD37
-rw-r--r--testing/py3-gnupg/APKBUILD27
-rw-r--r--testing/py3-google-trans-new/APKBUILD36
-rw-r--r--testing/py3-googletrans/APKBUILD34
-rw-r--r--testing/py3-googletrans/client.patch12
-rw-r--r--testing/py3-gpxpy/APKBUILD27
-rw-r--r--testing/py3-grequests/APKBUILD33
-rw-r--r--testing/py3-gtts-token/APKBUILD28
-rw-r--r--testing/py3-gtts/APKBUILD31
-rw-r--r--testing/py3-h2/APKBUILD32
-rw-r--r--testing/py3-h5py/APKBUILD38
-rw-r--r--testing/py3-halo/APKBUILD28
-rw-r--r--testing/py3-hatch-openzim-bootstrap/APKBUILD41
-rw-r--r--testing/py3-hatch-openzim/APKBUILD41
-rw-r--r--testing/py3-hbmqtt/APKBUILD32
-rw-r--r--testing/py3-heapdict/APKBUILD29
-rw-r--r--testing/py3-helper/APKBUILD13
-rw-r--r--testing/py3-hg-git/APKBUILD37
-rw-r--r--testing/py3-hijri-converter/APKBUILD28
-rw-r--r--testing/py3-hiplot/APKBUILD52
-rw-r--r--testing/py3-holidays/APKBUILD27
-rw-r--r--testing/py3-hotqueue/APKBUILD32
-rw-r--r--testing/py3-html2text/APKBUILD30
-rw-r--r--testing/py3-html5-parser/APKBUILD41
-rw-r--r--testing/py3-httpbin/0001-Use-Brotli-instead-of-brotlipy.patch27
-rw-r--r--testing/py3-httpbin/APKBUILD30
-rw-r--r--testing/py3-httpretty/APKBUILD31
-rw-r--r--testing/py3-humanhash3/APKBUILD24
-rw-r--r--testing/py3-humanize/APKBUILD33
-rw-r--r--testing/py3-hurry.filesize/APKBUILD7
-rw-r--r--testing/py3-hyperopt/APKBUILD24
-rw-r--r--testing/py3-i18naddress/APKBUILD38
-rw-r--r--testing/py3-ifaddr/APKBUILD29
-rw-r--r--testing/py3-igraph/APKBUILD49
-rw-r--r--testing/py3-imageio-ffmpeg/APKBUILD44
-rw-r--r--testing/py3-imageio/APKBUILD41
-rw-r--r--testing/py3-imdbpy/APKBUILD26
-rw-r--r--testing/py3-incoming/APKBUILD14
-rw-r--r--testing/py3-incoming/assertEquals.patch31
-rw-r--r--testing/py3-infinity/APKBUILD13
-rw-r--r--testing/py3-inflect/APKBUILD29
-rw-r--r--testing/py3-inflection/APKBUILD32
-rw-r--r--testing/py3-influxdb/APKBUILD33
-rw-r--r--testing/py3-iniparse/APKBUILD8
-rw-r--r--testing/py3-inotify/APKBUILD29
-rw-r--r--testing/py3-inotify/force-c-ext.patch14
-rw-r--r--testing/py3-inquirer/APKBUILD38
-rw-r--r--testing/py3-inquirer/disable-failing-tests.patch27
-rw-r--r--testing/py3-inquirer/loosen-deps.patch16
-rw-r--r--testing/py3-inquirer/use-py3-in-tests.patch105
-rw-r--r--testing/py3-intervals/APKBUILD15
-rw-r--r--testing/py3-invoke/APKBUILD32
-rw-r--r--testing/py3-ioflo/APKBUILD35
-rw-r--r--testing/py3-iso639-lang/APKBUILD35
-rw-r--r--testing/py3-iso8601/APKBUILD29
-rw-r--r--testing/py3-isodate/APKBUILD28
-rw-r--r--testing/py3-itemadapter/APKBUILD32
-rw-r--r--testing/py3-itemloaders/APKBUILD38
-rw-r--r--testing/py3-itunespy/APKBUILD28
-rw-r--r--testing/py3-janus/APKBUILD38
-rw-r--r--testing/py3-janus/no-typing-extensions.patch42
-rw-r--r--testing/py3-jaraco-itertools/APKBUILD29
-rw-r--r--testing/py3-jeepney/APKBUILD23
-rw-r--r--testing/py3-joblib/APKBUILD29
-rw-r--r--testing/py3-json-logger/APKBUILD26
-rw-r--r--testing/py3-jsonpatch/APKBUILD30
-rw-r--r--testing/py3-jsonpickle/APKBUILD35
-rw-r--r--testing/py3-jsonpickle/test-opts.patch12
-rw-r--r--testing/py3-jsonpickle/tests.patch15
-rw-r--r--testing/py3-jsonpointer/APKBUILD30
-rw-r--r--testing/py3-jsonrpc-server/APKBUILD28
-rw-r--r--testing/py3-jsonschema417/APKBUILD67
-rw-r--r--testing/py3-junit-xml/APKBUILD13
-rw-r--r--testing/py3-jwcrypto/APKBUILD31
-rw-r--r--testing/py3-k5test/APKBUILD25
-rw-r--r--testing/py3-kazoo/APKBUILD28
-rw-r--r--testing/py3-keepalive/APKBUILD46
-rw-r--r--testing/py3-keepalive/fix-import.patch18
-rw-r--r--testing/py3-keepalive/py3.patch553
-rw-r--r--testing/py3-kerberos/APKBUILD12
-rw-r--r--testing/py3-keyring/APKBUILD25
-rw-r--r--testing/py3-kikit/APKBUILD63
-rw-r--r--testing/py3-kitchen/APKBUILD28
-rw-r--r--testing/py3-kombu/APKBUILD38
-rw-r--r--testing/py3-korean-lunar-calendar/APKBUILD24
-rw-r--r--testing/py3-landlock/APKBUILD43
-rw-r--r--testing/py3-langcodes/APKBUILD40
-rw-r--r--testing/py3-language-data/APKBUILD37
-rw-r--r--testing/py3-language-server/APKBUILD37
-rw-r--r--testing/py3-lark-parser/APKBUILD28
-rw-r--r--testing/py3-latex2mathml/APKBUILD33
-rw-r--r--testing/py3-lazy-object-proxy/APKBUILD25
-rw-r--r--testing/py3-lazy/APKBUILD27
-rw-r--r--testing/py3-levenshtein/APKBUILD45
-rw-r--r--testing/py3-lib_users/APKBUILD16
-rw-r--r--testing/py3-lib_users/setuptools.patch11
-rw-r--r--testing/py3-libacl/APKBUILD10
-rw-r--r--testing/py3-libarchive-c/APKBUILD32
-rw-r--r--testing/py3-libevdev/APKBUILD28
-rw-r--r--testing/py3-liblarch/APKBUILD13
-rw-r--r--testing/py3-libmdbx/APKBUILD29
-rw-r--r--testing/py3-libnacl/APKBUILD35
-rw-r--r--testing/py3-librtmp/APKBUILD5
-rw-r--r--testing/py3-limits/APKBUILD50
-rw-r--r--testing/py3-limits/our-std-is-good-enough.patch22
-rw-r--r--testing/py3-lingua-franca/APKBUILD42
-rw-r--r--testing/py3-lingua-franca/relax-dep-requirements.patch10
-rw-r--r--testing/py3-linkify-it-py/APKBUILD35
-rw-r--r--testing/py3-litex-hub-modules/0001-fix-pythondata_software_compiler_rt-python3.patch405
-rw-r--r--testing/py3-litex-hub-modules/0002-fix-pythondata-cpu-blackparrot-python3.patch2824
-rw-r--r--testing/py3-litex-hub-modules/APKBUILD235
-rw-r--r--testing/py3-litex/0001-litedram-phy-lpddr-fix-use-of-invalid-escape-sequenc.patch105
-rw-r--r--testing/py3-litex/0002-litex-fix-invalid-escape-sequence.patch16
-rw-r--r--testing/py3-litex/0003-litepcie-fix-package-absent-from-packages-configuration.patch23
-rw-r--r--testing/py3-litex/APKBUILD249
-rw-r--r--testing/py3-livestream/APKBUILD25
-rw-r--r--testing/py3-lmdb/APKBUILD34
-rw-r--r--testing/py3-locket/APKBUILD24
-rw-r--r--testing/py3-log-symbols/APKBUILD28
-rw-r--r--testing/py3-logbook/APKBUILD30
-rw-r--r--testing/py3-lsp-black/APKBUILD37
-rw-r--r--testing/py3-lsp-mypy/APKBUILD44
-rw-r--r--testing/py3-lsprotocol/APKBUILD44
-rw-r--r--testing/py3-luhn/APKBUILD5
-rw-r--r--testing/py3-lunr/APKBUILD28
-rw-r--r--testing/py3-ly/APKBUILD36
-rw-r--r--testing/py3-lzo/APKBUILD42
-rw-r--r--testing/py3-m2crypto/APKBUILD19
-rw-r--r--testing/py3-mando/APKBUILD32
-rw-r--r--testing/py3-manuel/APKBUILD32
-rw-r--r--testing/py3-mapbox-earcut/APKBUILD32
-rw-r--r--testing/py3-marisa-trie/APKBUILD52
-rw-r--r--testing/py3-markdown2/APKBUILD43
-rw-r--r--testing/py3-marshmallow-enum/APKBUILD31
-rw-r--r--testing/py3-marshmallow/APKBUILD36
-rw-r--r--testing/py3-mautrix/APKBUILD24
-rw-r--r--testing/py3-maxminddb/APKBUILD41
-rw-r--r--testing/py3-mbedtls/APKBUILD52
-rw-r--r--testing/py3-memory-profiler/APKBUILD60
-rw-r--r--testing/py3-memory-profiler/assertRaisesRegexp.patch14
-rw-r--r--testing/py3-migen/0001-fix-get_var_name.patch113
-rw-r--r--testing/py3-migen/0002-fix-incorrect-use-of-is.patch29
-rw-r--r--testing/py3-migen/APKBUILD51
-rw-r--r--testing/py3-milc/APKBUILD36
-rw-r--r--testing/py3-minidb/APKBUILD31
-rw-r--r--testing/py3-minidump/APKBUILD34
-rw-r--r--testing/py3-minikerberos/APKBUILD44
-rw-r--r--testing/py3-minio/APKBUILD38
-rw-r--r--testing/py3-minio/assertEquals.patch9
-rw-r--r--testing/py3-mistletoe/APKBUILD32
-rw-r--r--testing/py3-mitmproxy-rs/APKBUILD46
-rw-r--r--testing/py3-mmh3/APKBUILD37
-rw-r--r--testing/py3-modbus-tk/APKBUILD30
-rw-r--r--testing/py3-mongo/APKBUILD30
-rw-r--r--testing/py3-mopidy-jellyfin/APKBUILD35
-rw-r--r--testing/py3-mopidy-local/APKBUILD37
-rw-r--r--testing/py3-mopidy-mpd/APKBUILD25
-rw-r--r--testing/py3-mopidy-spotify/APKBUILD45
-rw-r--r--testing/py3-mopidy-subidy/APKBUILD28
-rw-r--r--testing/py3-mopidy-tidal/APKBUILD39
-rw-r--r--testing/py3-more-properties/APKBUILD52
-rw-r--r--testing/py3-more-properties/root.patch15
-rw-r--r--testing/py3-moviepy/APKBUILD30
-rw-r--r--testing/py3-moviepy/decorators.patch47
-rw-r--r--testing/py3-mpd2/APKBUILD12
-rw-r--r--testing/py3-msldap/APKBUILD45
-rw-r--r--testing/py3-mtranslate/APKBUILD24
-rw-r--r--testing/py3-multi-key-dict/APKBUILD24
-rw-r--r--testing/py3-murmurhash/APKBUILD37
-rw-r--r--testing/py3-mypy-extensions/APKBUILD28
-rw-r--r--testing/py3-mypy/APKBUILD28
-rw-r--r--testing/py3-nanoid/APKBUILD28
-rw-r--r--testing/py3-natpmp/APKBUILD35
-rw-r--r--testing/py3-ncclient/APKBUILD27
-rw-r--r--testing/py3-netifaces2/APKBUILD52
-rw-r--r--testing/py3-netmiko/APKBUILD29
-rw-r--r--testing/py3-networkx/APKBUILD33
-rw-r--r--testing/py3-networkx/fix-test_numpy_type-under-python3.8.patch88
-rw-r--r--testing/py3-nikola/APKBUILD42
-rw-r--r--testing/py3-nmap/APKBUILD13
-rw-r--r--testing/py3-nose-of-yeti/APKBUILD39
-rw-r--r--testing/py3-nose-of-yeti/use-pytest-asyncio.patch20
-rw-r--r--testing/py3-nose-timer/APKBUILD24
-rw-r--r--testing/py3-nose-timer/assertEquals.patch9
-rw-r--r--testing/py3-notifymail/APKBUILD5
-rw-r--r--testing/py3-nptyping/APKBUILD44
-rw-r--r--testing/py3-ntplib/APKBUILD22
-rw-r--r--testing/py3-num2words/APKBUILD28
-rw-r--r--testing/py3-numpy-stl/APKBUILD34
-rw-r--r--testing/py3-nwdiag/APKBUILD14
-rw-r--r--testing/py3-onelogin/APKBUILD53
-rw-r--r--testing/py3-openapi-codec/APKBUILD13
-rw-r--r--testing/py3-openapi-codec/assertEquals.patch43
-rw-r--r--testing/py3-openssh-wrapper/APKBUILD30
-rw-r--r--testing/py3-openwisp-utils/APKBUILD43
-rw-r--r--testing/py3-optuna/APKBUILD52
-rw-r--r--testing/py3-orderedmultidict/APKBUILD5
-rw-r--r--testing/py3-osqp/APKBUILD40
-rw-r--r--testing/py3-outcome/APKBUILD28
-rw-r--r--testing/py3-ovos-backend-client/APKBUILD48
-rw-r--r--testing/py3-ovos-bus-client/APKBUILD47
-rw-r--r--testing/py3-ovos-classifiers/APKBUILD53
-rw-r--r--testing/py3-ovos-classifiers/assertEquals.patch18
-rw-r--r--testing/py3-ovos-config/APKBUILD48
-rw-r--r--testing/py3-ovos-media-plugin-simple/APKBUILD36
-rw-r--r--testing/py3-ovos-microphone-plugin-alsa/APKBUILD37
-rw-r--r--testing/py3-ovos-ocp-audio-plugin/APKBUILD61
-rw-r--r--testing/py3-ovos-ocp-files-plugin/APKBUILD51
-rw-r--r--testing/py3-ovos-ocp-m3u-plugin/APKBUILD34
-rw-r--r--testing/py3-ovos-ocp-news-plugin/APKBUILD46
-rw-r--r--testing/py3-ovos-ocp-rss-plugin/APKBUILD37
-rw-r--r--testing/py3-ovos-phal-plugin-connectivity-events/APKBUILD45
-rw-r--r--testing/py3-ovos-phal-plugin-ipgeo/APKBUILD38
-rw-r--r--testing/py3-ovos-phal-plugin-network-manager/APKBUILD40
-rw-r--r--testing/py3-ovos-phal-plugin-oauth/APKBUILD43
-rw-r--r--testing/py3-ovos-phal-plugin-system/APKBUILD33
-rw-r--r--testing/py3-ovos-plugin-manager/APKBUILD41
-rw-r--r--testing/py3-ovos-stt-plugin-server/APKBUILD34
-rw-r--r--testing/py3-ovos-tts-plugin-mimic3-server/APKBUILD38
-rw-r--r--testing/py3-ovos-utils/APKBUILD57
-rw-r--r--testing/py3-ovos-vad-plugin-webrtcvad/APKBUILD39
-rw-r--r--testing/py3-ovos-workshop/APKBUILD53
-rw-r--r--testing/py3-ovos-ww-plugin-vosk/APKBUILD42
-rw-r--r--testing/py3-owslib/APKBUILD36
-rw-r--r--testing/py3-padacioso/APKBUILD40
-rw-r--r--testing/py3-padaos/APKBUILD28
-rw-r--r--testing/py3-padatious/APKBUILD28
-rw-r--r--testing/py3-pako/APKBUILD28
-rw-r--r--testing/py3-pam/APKBUILD41
-rw-r--r--testing/py3-pandas/APKBUILD27
-rw-r--r--testing/py3-parameterized/APKBUILD34
-rw-r--r--testing/py3-parse/APKBUILD35
-rw-r--r--testing/py3-parsel/APKBUILD28
-rw-r--r--testing/py3-partd/APKBUILD28
-rw-r--r--testing/py3-parver/APKBUILD34
-rw-r--r--testing/py3-pass-git-helper/APKBUILD27
-rw-r--r--testing/py3-passlib/APKBUILD35
-rw-r--r--testing/py3-passlib/skip-bsdi_crypt-test.patch12
-rw-r--r--testing/py3-pastel/APKBUILD25
-rw-r--r--testing/py3-patatt/APKBUILD29
-rw-r--r--testing/py3-path/APKBUILD29
-rw-r--r--testing/py3-pathvalidate/APKBUILD35
-rw-r--r--testing/py3-pbkdf2/APKBUILD5
-rw-r--r--testing/py3-pcbnewtransition/APKBUILD47
-rw-r--r--testing/py3-pdal/APKBUILD23
-rw-r--r--testing/py3-pdfkit/APKBUILD28
-rw-r--r--testing/py3-pebble/APKBUILD41
-rw-r--r--testing/py3-pefile/APKBUILD31
-rw-r--r--testing/py3-pelican/APKBUILD63
-rw-r--r--testing/py3-pelican/no-locales-for-tests.patch19
-rw-r--r--testing/py3-pelican/remove-shebang.patch21
-rw-r--r--testing/py3-pep8-naming/APKBUILD18
-rw-r--r--testing/py3-petact/APKBUILD24
-rw-r--r--testing/py3-pg_activity/APKBUILD31
-rw-r--r--testing/py3-pgspecial/APKBUILD31
-rw-r--r--testing/py3-phpserialize/APKBUILD5
-rw-r--r--testing/py3-piccata/APKBUILD46
-rw-r--r--testing/py3-pickle-secure/APKBUILD36
-rw-r--r--testing/py3-piexif/APKBUILD29
-rw-r--r--testing/py3-pika/APKBUILD18
-rw-r--r--testing/py3-pip-system-certs/APKBUILD33
-rw-r--r--testing/py3-pivy/APKBUILD36
-rw-r--r--testing/py3-pkgconfig/APKBUILD25
-rw-r--r--testing/py3-pkginfo/APKBUILD33
-rw-r--r--testing/py3-pkginfo/disable-failing-test.patch10
-rw-r--r--testing/py3-pkginfo/dont-package-tests.patch10
-rw-r--r--testing/py3-plac/APKBUILD31
-rw-r--r--testing/py3-playsound/APKBUILD30
-rw-r--r--testing/py3-plexapi/APKBUILD44
-rw-r--r--testing/py3-pockethernet/APKBUILD16
-rw-r--r--testing/py3-pocketsphinx/APKBUILD27
-rw-r--r--testing/py3-poetry-dynamic-versioning/APKBUILD37
-rw-r--r--testing/py3-pokebase/APKBUILD24
-rw-r--r--testing/py3-poppler-qt5/APKBUILD37
-rw-r--r--testing/py3-portalocker/APKBUILD30
-rw-r--r--testing/py3-pprintpp/APKBUILD36
-rw-r--r--testing/py3-praw/APKBUILD33
-rw-r--r--testing/py3-prawcore/APKBUILD28
-rw-r--r--testing/py3-precis-i18n/APKBUILD30
-rw-r--r--testing/py3-precis-i18n/Support-Unicode-12.1-for-Python-3.8.patch2091
-rw-r--r--testing/py3-precise-runner/APKBUILD28
-rw-r--r--testing/py3-preggy/APKBUILD29
-rw-r--r--testing/py3-preshed/APKBUILD36
-rw-r--r--testing/py3-proglog/APKBUILD42
-rw-r--r--testing/py3-progressbar/APKBUILD29
-rw-r--r--testing/py3-progressbar2/APKBUILD36
-rw-r--r--testing/py3-proplot/APKBUILD40
-rw-r--r--testing/py3-protego/APKBUILD31
-rw-r--r--testing/py3-proxmoxer/APKBUILD43
-rw-r--r--testing/py3-publicsuffix2/APKBUILD34
-rw-r--r--testing/py3-pure_protobuf/APKBUILD41
-rw-r--r--testing/py3-pure_protobuf/use_fixed_version.patch23
-rw-r--r--testing/py3-puremagic/APKBUILD34
-rw-r--r--testing/py3-py-radix/APKBUILD17
-rw-r--r--testing/py3-py-radix/assertEquals.patch181
-rw-r--r--testing/py3-py-radix/python3.10-support.patch96
-rw-r--r--testing/py3-pyache/APKBUILD24
-rw-r--r--testing/py3-pyaes/APKBUILD27
-rw-r--r--testing/py3-pyalsaaudio/APKBUILD28
-rw-r--r--testing/py3-pyatem/APKBUILD73
-rw-r--r--testing/py3-pyatem/openswitcher-proxy.confd10
-rw-r--r--testing/py3-pyatem/openswitcher-proxy.initd21
-rw-r--r--testing/py3-pyatem/openswitcher-proxy.pre-install4
-rw-r--r--testing/py3-pyaudio/APKBUILD24
-rw-r--r--testing/py3-pyautogui/APKBUILD34
-rw-r--r--testing/py3-pybars3/APKBUILD33
-rw-r--r--testing/py3-pycaption/APKBUILD37
-rw-r--r--testing/py3-pycolorterm/APKBUILD4
-rw-r--r--testing/py3-pycosat/APKBUILD18
-rw-r--r--testing/py3-pydbus/APKBUILD25
-rw-r--r--testing/py3-pydes/APKBUILD29
-rw-r--r--testing/py3-pydocstyle/APKBUILD29
-rw-r--r--testing/py3-pydot/APKBUILD30
-rw-r--r--testing/py3-pyee/APKBUILD28
-rw-r--r--testing/py3-pygdbmi/APKBUILD27
-rw-r--r--testing/py3-pygelbooru/APKBUILD34
-rw-r--r--testing/py3-pygfm/APKBUILD11
-rw-r--r--testing/py3-pygithub/APKBUILD30
-rw-r--r--testing/py3-pyglm/APKBUILD51
-rw-r--r--testing/py3-pygpgme/APKBUILD16
-rw-r--r--testing/py3-pygpgme/py3.11.patch13
-rw-r--r--testing/py3-pygtail/APKBUILD18
-rw-r--r--testing/py3-pyinstrument/APKBUILD35
-rw-r--r--testing/py3-pyisbn/APKBUILD11
-rw-r--r--testing/py3-pyjokes/APKBUILD25
-rw-r--r--testing/py3-pykwalify/APKBUILD32
-rw-r--r--testing/py3-pykwalify/fix-duplicate-key-error.patch22
-rw-r--r--testing/py3-pykwalify/fix-unexpected-keyword-arguments.patch25
-rw-r--r--testing/py3-pylev/APKBUILD25
-rw-r--r--testing/py3-pylint/APKBUILD38
-rw-r--r--testing/py3-pylru/APKBUILD35
-rw-r--r--testing/py3-pymaging-png/APKBUILD5
-rw-r--r--testing/py3-pymaging/APKBUILD5
-rw-r--r--testing/py3-pymata/APKBUILD27
-rw-r--r--testing/py3-pymata4/APKBUILD27
-rw-r--r--testing/py3-pymediainfo/APKBUILD29
-rw-r--r--testing/py3-pymeeus/APKBUILD28
-rw-r--r--testing/py3-pymeta3/APKBUILD27
-rw-r--r--testing/py3-pymsgbox/APKBUILD35
-rw-r--r--testing/py3-pymsteams/APKBUILD33
-rw-r--r--testing/py3-pymysql/APKBUILD27
-rw-r--r--testing/py3-pynest2d/APKBUILD49
-rw-r--r--testing/py3-pynest2d/cmake-helpers.patch253
-rw-r--r--testing/py3-pynest2d/cmake.patch34
-rw-r--r--testing/py3-pynest2d/pyproject.patch21
-rw-r--r--testing/py3-pynvim/APKBUILD29
-rw-r--r--testing/py3-pyowm/APKBUILD24
-rw-r--r--testing/py3-pypandoc/APKBUILD34
-rw-r--r--testing/py3-pyparted/APKBUILD40
-rw-r--r--testing/py3-pyparted/archlabels-armv8l.patch20
-rw-r--r--testing/py3-pyperclip/APKBUILD28
-rw-r--r--testing/py3-pyphen/APKBUILD32
-rw-r--r--testing/py3-pyproj/APKBUILD36
-rw-r--r--testing/py3-pyramid-addons/APKBUILD28
-rw-r--r--testing/py3-pyramid-controllers/APKBUILD27
-rw-r--r--testing/py3-pyramid-layout/APKBUILD29
-rw-r--r--testing/py3-pyramid/APKBUILD33
-rw-r--r--testing/py3-pyrebase/APKBUILD32
-rw-r--r--testing/py3-pyrebase/drop-requirements.patch18
-rw-r--r--testing/py3-pyro4/APKBUILD32
-rw-r--r--testing/py3-pyroma/APKBUILD29
-rw-r--r--testing/py3-pyrss2gen/APKBUILD27
-rw-r--r--testing/py3-pyscreeze/APKBUILD34
-rw-r--r--testing/py3-pysequoia/APKBUILD54
-rw-r--r--testing/py3-pyserial/APKBUILD27
-rw-r--r--testing/py3-pysimplesoap/APKBUILD5
-rw-r--r--testing/py3-pysonic/APKBUILD21
-rw-r--r--testing/py3-pyspinel/APKBUILD44
-rw-r--r--testing/py3-pysrt/APKBUILD35
-rw-r--r--testing/py3-pysrt/assertEquals.patch49
-rw-r--r--testing/py3-pystache/APKBUILD35
-rw-r--r--testing/py3-pytaglib/APKBUILD33
-rw-r--r--testing/py3-pyte/APKBUILD12
-rw-r--r--testing/py3-pytest-black/APKBUILD29
-rw-r--r--testing/py3-pytest-expect/APKBUILD5
-rw-r--r--testing/py3-pytest-flake8/APKBUILD26
-rw-r--r--testing/py3-pytest-helpers-namespace/APKBUILD42
-rw-r--r--testing/py3-pytest-html/APKBUILD49
-rw-r--r--testing/py3-pytest-isort/APKBUILD29
-rw-r--r--testing/py3-pytest-metadata/APKBUILD40
-rw-r--r--testing/py3-pytest-mypy/APKBUILD48
-rw-r--r--testing/py3-pytest-regtest/APKBUILD44
-rw-r--r--testing/py3-pytest-subprocess/APKBUILD40
-rw-r--r--testing/py3-pytest-trio/APKBUILD28
-rw-r--r--testing/py3-python-archive/APKBUILD10
-rw-r--r--testing/py3-python-editor/APKBUILD28
-rw-r--r--testing/py3-python-gssapi/APKBUILD29
-rw-r--r--testing/py3-python-iptables/APKBUILD40
-rw-r--r--testing/py3-python-jose/APKBUILD37
-rw-r--r--testing/py3-python-logstash/APKBUILD29
-rw-r--r--testing/py3-python-mystrom/APKBUILD27
-rw-r--r--testing/py3-python-stdnum/APKBUILD13
-rw-r--r--testing/py3-python-versioneer/APKBUILD24
-rw-r--r--testing/py3-pytube/APKBUILD42
-rw-r--r--testing/py3-pytweening/APKBUILD37
-rw-r--r--testing/py3-pyvcd/APKBUILD36
-rw-r--r--testing/py3-pyvows/APKBUILD34
-rw-r--r--testing/py3-pyvows/drop-requirements.patch37
-rw-r--r--testing/py3-pywal/APKBUILD34
-rw-r--r--testing/py3-pyzor/APKBUILD7
-rw-r--r--testing/py3-qasync/APKBUILD28
-rw-r--r--testing/py3-qbittorrent-api/APKBUILD46
-rw-r--r--testing/py3-qdldl/APKBUILD34
-rw-r--r--testing/py3-qpageview/APKBUILD35
-rw-r--r--testing/py3-qrcode/APKBUILD31
-rw-r--r--testing/py3-qt.py/APKBUILD33
-rw-r--r--testing/py3-qt.py/importlib.patch20
-rw-r--r--testing/py3-quebra-frases/APKBUILD39
-rw-r--r--testing/py3-queuelib/APKBUILD24
-rw-r--r--testing/py3-rabbit/APKBUILD5
-rw-r--r--testing/py3-radon/APKBUILD31
-rw-r--r--testing/py3-raet/APKBUILD28
-rw-r--r--testing/py3-rapidjson/APKBUILD56
-rw-r--r--testing/py3-rarfile/APKBUILD32
-rw-r--r--testing/py3-rdflib/APKBUILD35
-rw-r--r--testing/py3-rdflib/py3.7.patch19
-rw-r--r--testing/py3-readchar/APKBUILD30
-rw-r--r--testing/py3-readme_renderer/APKBUILD35
-rw-r--r--testing/py3-recommonmark/APKBUILD11
-rw-r--r--testing/py3-recurring-ical-events/APKBUILD36
-rw-r--r--testing/py3-redmine/APKBUILD20
-rw-r--r--testing/py3-redmine/assertEquals.patch23
-rw-r--r--testing/py3-remind/APKBUILD36
-rw-r--r--testing/py3-requests-file/APKBUILD31
-rw-r--r--testing/py3-requests-futures/APKBUILD28
-rw-r--r--testing/py3-requests-kerberos/APKBUILD37
-rw-r--r--testing/py3-requests-wsgi-adapter/APKBUILD36
-rw-r--r--testing/py3-rfc-bibtex/APKBUILD29
-rw-r--r--testing/py3-rfc3987/APKBUILD7
-rw-r--r--testing/py3-rich-click/APKBUILD44
-rw-r--r--testing/py3-riotctrl/APKBUILD46
-rw-r--r--testing/py3-rope/APKBUILD27
-rw-r--r--testing/py3-rosdistro/APKBUILD33
-rw-r--r--testing/py3-rospkg/APKBUILD32
-rw-r--r--testing/py3-rpio/APKBUILD5
-rw-r--r--testing/py3-rply/APKBUILD28
-rw-r--r--testing/py3-rss2email/APKBUILD27
-rw-r--r--testing/py3-rst.linker/APKBUILD36
-rw-r--r--testing/py3-rst/APKBUILD5
-rw-r--r--testing/py3-rstr/APKBUILD33
-rw-r--r--testing/py3-rtree/APKBUILD34
-rw-r--r--testing/py3-ruamel.yaml.clib/APKBUILD28
-rw-r--r--testing/py3-ruamel.yaml/APKBUILD25
-rw-r--r--testing/py3-sabctools/APKBUILD47
-rw-r--r--testing/py3-schema/APKBUILD11
-rw-r--r--testing/py3-scikit-learn/APKBUILD30
-rw-r--r--testing/py3-scikit-optimize/APKBUILD33
-rw-r--r--testing/py3-scour/APKBUILD35
-rw-r--r--testing/py3-scrapy/APKBUILD49
-rw-r--r--testing/py3-scs/APKBUILD32
-rw-r--r--testing/py3-secretstorage/APKBUILD28
-rw-r--r--testing/py3-semantic-version/APKBUILD26
-rw-r--r--testing/py3-send2trash/APKBUILD26
-rw-r--r--testing/py3-seqdiag/APKBUILD22
-rw-r--r--testing/py3-serial/APKBUILD60
-rw-r--r--testing/py3-serpent/APKBUILD30
-rw-r--r--testing/py3-setuptools-declarative-requirements/APKBUILD38
-rw-r--r--testing/py3-setuptools-git/APKBUILD35
-rw-r--r--testing/py3-setuptools-lint/APKBUILD21
-rw-r--r--testing/py3-sh/APKBUILD37
-rw-r--r--testing/py3-shellingham/APKBUILD29
-rw-r--r--testing/py3-shodan/APKBUILD48
-rw-r--r--testing/py3-shortuuid/APKBUILD14
-rw-r--r--testing/py3-simber/APKBUILD32
-rw-r--r--testing/py3-simplematch/APKBUILD39
-rw-r--r--testing/py3-simplesoapy/APKBUILD27
-rw-r--r--testing/py3-simplespectral/APKBUILD30
-rw-r--r--testing/py3-slidge-style-parser/APKBUILD45
-rw-r--r--testing/py3-slixmpp/APKBUILD63
-rw-r--r--testing/py3-slugify/APKBUILD27
-rw-r--r--testing/py3-smmap2/APKBUILD28
-rw-r--r--testing/py3-snapshottest/APKBUILD44
-rw-r--r--testing/py3-snapshottest/importlib.patch24
-rw-r--r--testing/py3-sniffio/APKBUILD24
-rw-r--r--testing/py3-soappy/APKBUILD27
-rw-r--r--testing/py3-soapy_power/APKBUILD28
-rw-r--r--testing/py3-solidpython/APKBUILD61
-rw-r--r--testing/py3-solidpython/poetry-core.patch11
-rw-r--r--testing/py3-sortedcollections/APKBUILD29
-rw-r--r--testing/py3-spacy/APKBUILD43
-rw-r--r--testing/py3-sparqlwrapper/APKBUILD32
-rw-r--r--testing/py3-speechpy/APKBUILD24
-rw-r--r--testing/py3-speechrecognition/APKBUILD31
-rw-r--r--testing/py3-sphinx-argparse/APKBUILD35
-rw-r--r--testing/py3-sphinx-autoapi/APKBUILD39
-rw-r--r--testing/py3-sphinx-autodoc-typehints/APKBUILD39
-rw-r--r--testing/py3-sphinx-theme-better/APKBUILD13
-rw-r--r--testing/py3-sphinx-theme-bootstrap/APKBUILD14
-rw-r--r--testing/py3-sphinx-theme-bw/APKBUILD12
-rw-r--r--testing/py3-sphinx-theme-cloud/APKBUILD40
-rw-r--r--testing/py3-sphinx-theme-cloud/markup.patch13
-rw-r--r--testing/py3-sphinx-theme-epfl/APKBUILD16
-rw-r--r--testing/py3-sphinx-theme-guzzle/APKBUILD5
-rw-r--r--testing/py3-sphinx-theme-quark/APKBUILD18
-rw-r--r--testing/py3-sphinx-theme-quark/tinycss.patch112
-rw-r--r--testing/py3-sphinx-theme-readable/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-actdiag/APKBUILD25
-rw-r--r--testing/py3-sphinxcontrib-adadomain/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-autoprogram/APKBUILD41
-rw-r--r--testing/py3-sphinxcontrib-bitbucket/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-blockdiag/APKBUILD21
-rw-r--r--testing/py3-sphinxcontrib-cacoo/APKBUILD14
-rw-r--r--testing/py3-sphinxcontrib-cartouche/APKBUILD14
-rw-r--r--testing/py3-sphinxcontrib-doxylink/APKBUILD29
-rw-r--r--testing/py3-sphinxcontrib-fulltoc/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-gist/APKBUILD25
-rw-r--r--testing/py3-sphinxcontrib-gist/fix-build.patch19
-rw-r--r--testing/py3-sphinxcontrib-git/APKBUILD14
-rw-r--r--testing/py3-sphinxcontrib-gravatar/APKBUILD7
-rw-r--r--testing/py3-sphinxcontrib-htsql/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-httpdomain/APKBUILD33
-rw-r--r--testing/py3-sphinxcontrib-hydomain/APKBUILD33
-rw-r--r--testing/py3-sphinxcontrib-images/APKBUILD27
-rw-r--r--testing/py3-sphinxcontrib-inheritance/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-issuetracker/APKBUILD14
-rw-r--r--testing/py3-sphinxcontrib-lassodomain/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-manpage/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-nwdiag/APKBUILD21
-rw-r--r--testing/py3-sphinxcontrib-phpdomain/APKBUILD29
-rw-r--r--testing/py3-sphinxcontrib-programoutput/APKBUILD11
-rw-r--r--testing/py3-sphinxcontrib-restbuilder/APKBUILD22
-rw-r--r--testing/py3-sphinxcontrib-seqdiag/APKBUILD22
-rw-r--r--testing/py3-sphinxcontrib-slide/APKBUILD19
-rw-r--r--testing/py3-sphinxcontrib-spelling/APKBUILD32
-rw-r--r--testing/py3-sphinxcontrib-sqltable/APKBUILD16
-rw-r--r--testing/py3-sphinxcontrib-textstyle/APKBUILD15
-rw-r--r--testing/py3-sphobjinv/APKBUILD29
-rw-r--r--testing/py3-spidev/APKBUILD30
-rw-r--r--testing/py3-spin/APKBUILD35
-rw-r--r--testing/py3-spinners/APKBUILD28
-rw-r--r--testing/py3-spnego/APKBUILD51
-rw-r--r--testing/py3-sportydatagen/APKBUILD36
-rw-r--r--testing/py3-spotipy/APKBUILD28
-rw-r--r--testing/py3-sqlalchemy-utils/APKBUILD26
-rw-r--r--testing/py3-srsly/APKBUILD31
-rw-r--r--testing/py3-srt/APKBUILD43
-rw-r--r--testing/py3-sshuttle/APKBUILD37
-rw-r--r--testing/py3-sstash/APKBUILD7
-rw-r--r--testing/py3-stringcase/APKBUILD30
-rw-r--r--testing/py3-svgpath/105_use-better-than-nothing-font.patch300
-rw-r--r--testing/py3-svgpath/APKBUILD37
-rw-r--r--testing/py3-svgpath/no-install-tests.patch15
-rw-r--r--testing/py3-swagger-ui-bundle/APKBUILD49
-rw-r--r--testing/py3-sybil/APKBUILD28
-rw-r--r--testing/py3-syrupy/APKBUILD36
-rw-r--r--testing/py3-tabulate/APKBUILD35
-rw-r--r--testing/py3-tailer/APKBUILD22
-rw-r--r--testing/py3-tasklib/APKBUILD25
-rw-r--r--testing/py3-tblib/APKBUILD29
-rw-r--r--testing/py3-telegram-bot/APKBUILD11
-rw-r--r--testing/py3-telegram-text/APKBUILD33
-rw-r--r--testing/py3-telegram/0002-Remove-binarys.patch17
-rw-r--r--testing/py3-telegram/APKBUILD31
-rw-r--r--testing/py3-telemetrix/APKBUILD27
-rw-r--r--testing/py3-telethon-session-sqlalchemy/APKBUILD24
-rw-r--r--testing/py3-telethon/APKBUILD32
-rw-r--r--testing/py3-teletype/APKBUILD31
-rw-r--r--testing/py3-terminaltables/APKBUILD31
-rw-r--r--testing/py3-testfixtures/APKBUILD29
-rw-r--r--testing/py3-testresources/APKBUILD5
-rw-r--r--testing/py3-textual/APKBUILD61
-rw-r--r--testing/py3-tg/0001-Allow-newer-python-telegram.patch23
-rw-r--r--testing/py3-tg/APKBUILD31
-rw-r--r--testing/py3-thefuzz/APKBUILD35
-rw-r--r--testing/py3-thinc/APKBUILD36
-rw-r--r--testing/py3-ticket-auth/APKBUILD5
-rw-r--r--testing/py3-tidalapi/APKBUILD36
-rw-r--r--testing/py3-tinycss2/APKBUILD40
-rw-r--r--testing/py3-tinydb/APKBUILD27
-rw-r--r--testing/py3-tldextract/APKBUILD28
-rw-r--r--testing/py3-tls_parser/APKBUILD11
-rw-r--r--testing/py3-tlslite-ng/APKBUILD31
-rw-r--r--testing/py3-tmdbv3api/APKBUILD24
-rw-r--r--testing/py3-tokenizers/APKBUILD38
-rw-r--r--testing/py3-tomlkit/APKBUILD30
-rw-r--r--testing/py3-toolz/APKBUILD28
-rw-r--r--testing/py3-toposort/APKBUILD37
-rw-r--r--testing/py3-tpm2-pytss/APKBUILD64
-rw-r--r--testing/py3-transitions/APKBUILD29
-rw-r--r--testing/py3-translationstring/APKBUILD11
-rw-r--r--testing/py3-trimesh/APKBUILD65
-rw-r--r--testing/py3-trio/APKBUILD32
-rw-r--r--testing/py3-trivup/APKBUILD30
-rw-r--r--testing/py3-trustme/APKBUILD28
-rw-r--r--testing/py3-truststore/APKBUILD45
-rw-r--r--testing/py3-twiggy/APKBUILD13
-rw-r--r--testing/py3-twine/APKBUILD38
-rw-r--r--testing/py3-typed-ast/APKBUILD39
-rw-r--r--testing/py3-typing_inspect/APKBUILD39
-rw-r--r--testing/py3-tzlocal/APKBUILD25
-rw-r--r--testing/py3-u-msgpack/APKBUILD19
-rw-r--r--testing/py3-uc-micro-py/APKBUILD34
-rw-r--r--testing/py3-ufonormalizer/APKBUILD15
-rw-r--r--testing/py3-ujson/APKBUILD27
-rw-r--r--testing/py3-unearth/APKBUILD42
-rw-r--r--testing/py3-unicorn-hat/APKBUILD9
-rw-r--r--testing/py3-unicrypto/APKBUILD47
-rw-r--r--testing/py3-unidns/APKBUILD45
-rw-r--r--testing/py3-unoconv/APKBUILD16
-rw-r--r--testing/py3-unoconv/CVE-2019-17400.patch102
-rw-r--r--testing/py3-untokenize/APKBUILD37
-rw-r--r--testing/py3-update-checker/APKBUILD31
-rw-r--r--testing/py3-uptime/APKBUILD5
-rw-r--r--testing/py3-uritools/APKBUILD32
-rw-r--r--testing/py3-urlobject/APKBUILD5
-rw-r--r--testing/py3-us/APKBUILD21
-rw-r--r--testing/py3-us/fix-requires.patch16
-rw-r--r--testing/py3-utc/APKBUILD5
-rw-r--r--testing/py3-utils/APKBUILD46
-rw-r--r--testing/py3-utils/fix-setuptools-deprecation.patch11
-rw-r--r--testing/py3-utils/pytest.patch14
-rw-r--r--testing/py3-utils/typing-ext.patch22
-rw-r--r--testing/py3-vatnumber/APKBUILD17
-rw-r--r--testing/py3-vatnumber/py3.patch10
-rw-r--r--testing/py3-vcversioner/APKBUILD37
-rw-r--r--testing/py3-vdf/APKBUILD45
-rw-r--r--testing/py3-venusian/APKBUILD13
-rw-r--r--testing/py3-vine/APKBUILD30
-rw-r--r--testing/py3-virtualenvwrapper/APKBUILD41
-rw-r--r--testing/py3-visitor/APKBUILD5
-rw-r--r--testing/py3-vlc/APKBUILD24
-rw-r--r--testing/py3-voluptuous/APKBUILD38
-rw-r--r--testing/py3-w3lib/APKBUILD32
-rw-r--r--testing/py3-ward/APKBUILD53
-rw-r--r--testing/py3-wasabi/APKBUILD32
-rw-r--r--testing/py3-wbdata/APKBUILD22
-rw-r--r--testing/py3-weasyprint/APKBUILD34
-rw-r--r--testing/py3-webdavclient3/APKBUILD39
-rw-r--r--testing/py3-webob/APKBUILD31
-rw-r--r--testing/py3-webrtcvad/APKBUILD45
-rw-r--r--testing/py3-websockets/APKBUILD42
-rw-r--r--testing/py3-webtest/APKBUILD28
-rw-r--r--testing/py3-webvtt/APKBUILD43
-rw-r--r--testing/py3-wg-netns/APKBUILD31
-rw-r--r--testing/py3-wifi/APKBUILD5
-rw-r--r--testing/py3-wikipedia/APKBUILD28
-rw-r--r--testing/py3-winacl/APKBUILD37
-rw-r--r--testing/py3-wolframalpha/APKBUILD31
-rw-r--r--testing/py3-wsgiprox/APKBUILD49
-rw-r--r--testing/py3-wstools/APKBUILD37
-rw-r--r--testing/py3-wstools/python3.10-support.patch11
-rw-r--r--testing/py3-wstools/python3.12-support.patch22
-rw-r--r--testing/py3-wtf-peewee/APKBUILD14
-rw-r--r--testing/py3-wxpython/APKBUILD41
-rw-r--r--testing/py3-x-wr-timezone/APKBUILD39
-rw-r--r--testing/py3-xapp/APKBUILD28
-rw-r--r--testing/py3-xlwt/APKBUILD14
-rw-r--r--testing/py3-xmldiff/APKBUILD28
-rw-r--r--testing/py3-xmltodict/APKBUILD32
-rw-r--r--testing/py3-xsdata/APKBUILD55
-rw-r--r--testing/py3-xsdata/typing.patch26
-rw-r--r--testing/py3-yapf/APKBUILD27
-rw-r--r--testing/py3-yapsy/APKBUILD26
-rw-r--r--testing/py3-yapsy/deprecated.patch96
-rw-r--r--testing/py3-yara/APKBUILD23
-rw-r--r--testing/py3-yara/use-system-yara.patch9
-rw-r--r--testing/py3-youtube-search/APKBUILD28
-rw-r--r--testing/py3-zabbix/APKBUILD27
-rw-r--r--testing/py3-zeroconf/APKBUILD36
-rw-r--r--testing/py3-zfs-autobackup/APKBUILD30
-rw-r--r--testing/py3-zict/APKBUILD32
-rw-r--r--testing/py3-zimscraperlib/APKBUILD69
-rw-r--r--testing/py3-zope-configuration/APKBUILD29
-rw-r--r--testing/py3-zope-exceptions/APKBUILD26
-rw-r--r--testing/py3-zope-i18nmessageid/APKBUILD18
-rw-r--r--testing/py3-zope-schema/APKBUILD11
-rw-r--r--testing/py3-zope-testing/APKBUILD27
-rw-r--r--testing/py3-zope-testrunner/APKBUILD25
-rw-r--r--testing/pympress/APKBUILD55
-rw-r--r--testing/pypy-bootstrap/APKBUILD121
-rw-r--r--testing/pypy-bootstrap/py2_cve-2021-3177.py2patch150
-rw-r--r--testing/pypy-bootstrap/py2_musl-find_library.py2patch45
-rw-r--r--testing/pypy-bootstrap/py2_unchecked-ioctl.py2patch11
-rw-r--r--testing/pypy/APKBUILD101
-rw-r--r--testing/pypy3/0001-time.patch10
-rw-r--r--testing/pypy3/0002-extern-stdio.patch11
-rw-r--r--testing/pypy3/APKBUILD135
-rw-r--r--testing/pypykatz/APKBUILD43
-rw-r--r--testing/pyradio/APKBUILD52
-rw-r--r--testing/qbittorrent-cli/APKBUILD30
-rw-r--r--testing/qbittorrent-nox/APKBUILD43
-rw-r--r--testing/qbittorrent-nox/qbittorrent-nox.confd3
-rw-r--r--testing/qbittorrent-nox/qbittorrent-nox.initd16
-rw-r--r--testing/qbittorrent-nox/qbittorrent-nox.pre-install6
-rw-r--r--testing/qdjango/APKBUILD35
-rw-r--r--testing/qdjango/no_docs_tests.patch14
-rw-r--r--testing/qflipper/APKBUILD80
-rw-r--r--testing/qgis/10-exiv2-0.28.patch37
-rw-r--r--testing/qgis/20-protobuf-23.patch15
-rw-r--r--testing/qgis/30-qgstyle-infinite-loop.patch61
-rw-r--r--testing/qgis/40-pdal.patch176
-rw-r--r--testing/qgis/APKBUILD337
-rw-r--r--testing/qhull/APKBUILD36
-rw-r--r--testing/qmk-cli/APKBUILD64
-rw-r--r--testing/qmk-cli/add-plugdev.patch120
-rw-r--r--testing/qml-asteroid/APKBUILD58
-rw-r--r--testing/qmlrunner/APKBUILD28
-rw-r--r--testing/qoi/APKBUILD40
-rw-r--r--testing/qownnotes/APKBUILD59
-rw-r--r--testing/qownnotes/botan.patch17
-rw-r--r--testing/qownnotes/exclude.patch31
-rw-r--r--testing/qownnotes/md4c.patch15
-rw-r--r--testing/qownnotes/no-werror.patch12
-rw-r--r--testing/qpdfview/APKBUILD39
-rw-r--r--testing/qperf/APKBUILD2
-rw-r--r--testing/qqc2-suru-style/APKBUILD29
-rw-r--r--testing/qscintilla/APKBUILD27
-rw-r--r--testing/qspectrumanalyzer/APKBUILD35
-rw-r--r--testing/qsstv/APKBUILD42
-rw-r--r--testing/qstardict/APKBUILD2
-rw-r--r--testing/qsynth/APKBUILD40
-rw-r--r--testing/qt-creator/APKBUILD87
-rw-r--r--testing/qt-creator/fix-execinfo.patch84
-rw-r--r--testing/qt-creator/fix-malloc-trim.patch11
-rw-r--r--testing/qt-wayland-shell-helpers/APKBUILD27
-rw-r--r--testing/qt-wayland-shell-helpers/fix-qt-include-directory.patch9
-rw-r--r--testing/qt5-qtsystems/APKBUILD39
-rw-r--r--testing/qt5ct/APKBUILD33
-rw-r--r--testing/qt6ct/APKBUILD31
-rw-r--r--testing/qt6ct/find-lrelease.patch11
-rw-r--r--testing/qtile/APKBUILD39
-rw-r--r--testing/qtmir/0001-Wayland-hack-set-maliit-server-to-inputmethod-type-W.patch29
-rw-r--r--testing/qtmir/0002-Squash-of-miroil-patches.patch12405
-rw-r--r--testing/qtmir/0003-Require-miroil-in-out-.pc-file.patch24
-rw-r--r--testing/qtmir/0004-Update-for-Mir-2.15-removals.patch97
-rw-r--r--testing/qtmir/APKBUILD84
-rw-r--r--testing/qtox/APKBUILD51
-rw-r--r--testing/qtpass/APKBUILD36
-rw-r--r--testing/qtposition_gpsd/APKBUILD25
-rw-r--r--testing/qtquickcontrols-nemo/APKBUILD23
-rw-r--r--testing/quakespasm/APKBUILD11
-rw-r--r--testing/quark/APKBUILD26
-rw-r--r--testing/quaternion/APKBUILD30
-rw-r--r--testing/qucs-s/APKBUILD43
-rw-r--r--testing/queercat/APKBUILD23
-rw-r--r--testing/quickjs/00-makefile.patch41
-rw-r--r--testing/quickjs/APKBUILD48
-rw-r--r--testing/quilt/APKBUILD42
-rw-r--r--testing/quodlibet/APKBUILD43
-rw-r--r--testing/quota-tools/APKBUILD40
-rw-r--r--testing/r2ghidra/APKBUILD55
-rw-r--r--testing/r2ghidra/use-system-pugixml.patch71
-rw-r--r--testing/rabbitmq-server/APKBUILD114
-rw-r--r--testing/rabbitmq-server/py3.patch112
-rw-r--r--testing/rabbitmq-server/rabbitmq-server.initd46
-rw-r--r--testing/racket/0001-Ensure-that-the-GMP-ARM-extra-file-has-the-correct-e.patch133
-rw-r--r--testing/racket/APKBUILD60
-rw-r--r--testing/radarr/0001-disable-restart.patch20
-rw-r--r--testing/radarr/APKBUILD101
-rw-r--r--testing/radarr/package_info4
-rw-r--r--testing/radarr/radarr.confd10
-rw-r--r--testing/radarr/radarr.initd34
-rw-r--r--testing/radarr/radarr.pre-install6
-rw-r--r--testing/radicale/APKBUILD50
-rw-r--r--testing/radicale/radicale.confd1
-rw-r--r--testing/radicale/radicale.initd28
-rw-r--r--testing/radicale/radicale.pre-install8
-rw-r--r--testing/radio-cli/APKBUILD31
-rw-r--r--testing/rage/APKBUILD57
-rw-r--r--testing/rage/fix-build-32bit.patch229
-rw-r--r--testing/rakudo/APKBUILD55
-rw-r--r--testing/rancher-cli/APKBUILD31
-rw-r--r--testing/randrctl/APKBUILD13
-rw-r--r--testing/rankwidth/APKBUILD36
-rw-r--r--testing/rankwidth/igraph-0.10.1.patch11
-rw-r--r--testing/rapidfuzz/APKBUILD45
-rw-r--r--testing/rapidfuzz/cstdint.patch12
-rw-r--r--testing/rasdaemon/APKBUILD64
-rw-r--r--testing/rasdaemon/libargp.patch11
-rw-r--r--testing/rasdaemon/rasdaemon.initd20
-rw-r--r--testing/raspberrypi-usbboot/APKBUILD40
-rw-r--r--testing/raspberrypi-usbboot/patch-main.c.patch15
-rw-r--r--testing/rathole/APKBUILD34
-rw-r--r--testing/ratpoison/APKBUILD40
-rw-r--r--testing/rattler-build/APKBUILD61
-rw-r--r--testing/rauc/APKBUILD77
-rw-r--r--testing/rav1e/APKBUILD36
-rw-r--r--testing/razercfg/APKBUILD13
-rw-r--r--testing/rbw/APKBUILD51
-rw-r--r--testing/rclone-browser/APKBUILD33
-rw-r--r--testing/rclone-browser/quick_fix_for_qt-5.15.patch19
-rw-r--r--testing/rcon-cli/APKBUILD24
-rw-r--r--testing/rcs/APKBUILD31
-rw-r--r--testing/rdedup/APKBUILD38
-rw-r--r--testing/rdedup/getrandom-0.2.10.patch61
-rw-r--r--testing/rdrview/APKBUILD28
-rw-r--r--testing/rdrview/curl-7.85.0-CURLOPT_PROTOCOLS-deprecation.patch24
-rw-r--r--testing/reaction/APKBUILD49
-rw-r--r--testing/reaction/reaction.confd4
-rwxr-xr-xtesting/reaction/reaction.initd14
-rw-r--r--testing/reaction/reaction.yml95
-rw-r--r--testing/readosm/APKBUILD14
-rw-r--r--testing/reason/APKBUILD162
-rw-r--r--testing/reason/rtop.sh.patch41
-rw-r--r--testing/reaver-wps-fork-t6x/APKBUILD10
-rw-r--r--testing/reaver-wps-fork-t6x/reassociate-fix-bug.patch27
-rw-r--r--testing/rebar3/APKBUILD110
-rw-r--r--testing/recoll/APKBUILD39
-rw-r--r--testing/recoll/no-glibc.patch14
-rw-r--r--testing/recoll/xattrs.patch11
-rw-r--r--testing/recyclarr-cli/0001-disable-gitversion.patch32
-rw-r--r--testing/recyclarr-cli/0002-build-dotnet8.patch23
-rw-r--r--testing/recyclarr-cli/APKBUILD57
-rw-r--r--testing/redict/APKBUILD68
-rw-r--r--testing/redict/redict-sentinel.initd33
-rw-r--r--testing/redict/redict.conf.patch71
-rw-r--r--testing/redict/redict.confd7
-rw-r--r--testing/redict/redict.initd41
-rw-r--r--testing/redict/redict.logrotate4
-rw-r--r--testing/redict/redict.post-install11
-rw-r--r--testing/redict/redict.pre-install6
-rw-r--r--testing/redict/sentinel.conf.patch13
-rw-r--r--testing/refind/01-missing-always-inline.patch17
-rw-r--r--testing/refind/APKBUILD35
-rw-r--r--testing/refpolicy/APKBUILD62
-rw-r--r--testing/refpolicy/Makefile.devel22
-rw-r--r--testing/reg/APKBUILD39
-rw-r--r--testing/regal/APKBUILD55
-rw-r--r--testing/release-plz/APKBUILD55
-rw-r--r--testing/remake/APKBUILD43
-rw-r--r--testing/remind-caldav/APKBUILD26
-rw-r--r--testing/repgrep/APKBUILD58
-rw-r--r--testing/repo/APKBUILD21
-rw-r--r--testing/repowerd/0001-dbus-Remove-at_console-filtering.patch30
-rw-r--r--testing/repowerd/APKBUILD55
-rw-r--r--testing/repowerd/repowerd.initd12
-rw-r--r--testing/reprotest/APKBUILD37
-rw-r--r--testing/reptyr/APKBUILD23
-rw-r--r--testing/reredirect/APKBUILD28
-rw-r--r--testing/responder/APKBUILD32
-rw-r--r--testing/responder/fhs.patch69
-rw-r--r--testing/restart-services/APKBUILD11
-rw-r--r--testing/restart-services/alpine.patch56
-rw-r--r--testing/restic.mk/APKBUILD25
-rw-r--r--testing/restinio/APKBUILD50
-rw-r--r--testing/restinio/lfs64.patch20
-rw-r--r--testing/rezolus/APKBUILD61
-rw-r--r--testing/rezolus/config.toml83
-rw-r--r--testing/rezolus/minimize-size.patch11
-rw-r--r--testing/rezolus/openssl.patch60
-rw-r--r--testing/rezolus/remove-http-sampler.patch121
-rw-r--r--testing/rezolus/remove-ntp-sampler.patch96
-rw-r--r--testing/rezolus/rezolus.confd14
-rw-r--r--testing/rezolus/rezolus.initd18
-rw-r--r--testing/rezolus/rezolus.logrotate6
-rw-r--r--testing/rezolus/rezolus.pre-install6
-rw-r--r--testing/rgxg/APKBUILD2
-rw-r--r--testing/rhasspy-nlu/APKBUILD36
-rw-r--r--testing/ri-li/APKBUILD36
-rw-r--r--testing/ri-li/iostream.patch202
-rw-r--r--testing/ri-li/pointers.patch35
-rw-r--r--testing/ri-li/ri-li.desktop13
-rw-r--r--testing/riemann-cli/APKBUILD43
-rw-r--r--testing/riemann-cli/Cargo.lock117
-rw-r--r--testing/riemann-cli/no-unstable.patch13
-rw-r--r--testing/rime-plum/APKBUILD54
-rw-r--r--testing/rinetd/APKBUILD55
-rw-r--r--testing/rinetd/rinetd.initd13
-rw-r--r--testing/rio/APKBUILD45
-rw-r--r--testing/ripasso-cursive/APKBUILD46
-rw-r--r--testing/ripdrag/APKBUILD35
-rw-r--r--testing/river/APKBUILD64
-rw-r--r--testing/rizin-cutter/APKBUILD47
-rw-r--r--testing/rizin/APKBUILD80
-rw-r--r--testing/rkdeveloptool/APKBUILD25
-rw-r--r--testing/rke/APKBUILD34
-rw-r--r--testing/rlottie/APKBUILD38
-rw-r--r--testing/rlwrap/APKBUILD39
-rw-r--r--testing/rmlint/APKBUILD44
-rw-r--r--testing/rmlint/remove-usage-of-lseek64.patch18
-rw-r--r--testing/rnote/APKBUILD57
-rw-r--r--testing/rocksdb/10-support-busybox-install.patch20
-rw-r--r--testing/rocksdb/APKBUILD39
-rw-r--r--testing/rocksdb/ppc64le-determine-platform.patch11
-rw-r--r--testing/rofi-blocks/APKBUILD57
-rw-r--r--testing/rofi-blocks/fix-check_page_data.patch31
-rw-r--r--testing/rofi-blocks/fix-format-long-int.patch35
-rw-r--r--testing/rofi-blocks/fix-missing-include.patch28
-rw-r--r--testing/rofi-json-menu/APKBUILD37
-rw-r--r--testing/rofi-pass/APKBUILD28
-rw-r--r--testing/rosdep/APKBUILD29
-rw-r--r--testing/rosenpass/APKBUILD34
-rw-r--r--testing/roswell/APKBUILD36
-rw-r--r--testing/rpg-cli/APKBUILD28
-rw-r--r--testing/rss-email/APKBUILD46
-rw-r--r--testing/rsstail/APKBUILD2
-rw-r--r--testing/rtl-power-fftw/APKBUILD42
-rw-r--r--testing/rtl-power-fftw/missing-cstdint.patch12
-rw-r--r--testing/rtl8812au-src/APKBUILD42
-rw-r--r--testing/rtl8821ce-src/APKBUILD39
-rw-r--r--testing/rtl88x2bu-src/APKBUILD43
-rw-r--r--testing/rtmidi/APKBUILD40
-rw-r--r--testing/rtptools/APKBUILD18
-rw-r--r--testing/rtw89-src/APKBUILD33
-rw-r--r--testing/rubberband/APKBUILD37
-rw-r--r--testing/rubberband/patch-Makefile.patch11
-rw-r--r--testing/ruby-build/APKBUILD37
-rwxr-xr-xtesting/ruby-build/ruby-build.post-install11
-rw-r--r--testing/ruby-ttytest/APKBUILD43
-rw-r--r--testing/ruby-ttytest/fix-flaky-test.patch12
-rw-r--r--testing/ruby-ttytest/gemspec.patch13
-rw-r--r--testing/ruby-ttytest/skip-yard.patch26
-rw-r--r--testing/rue/APKBUILD25
-rw-r--r--testing/ruff-lsp/APKBUILD40
-rw-r--r--testing/runst/APKBUILD42
-rw-r--r--testing/ruqola/APKBUILD34
-rw-r--r--testing/rust-script/APKBUILD33
-rw-r--r--testing/rustdesk-server/APKBUILD54
-rw-r--r--testing/rustdesk-server/cargo.lock.patch53
-rw-r--r--testing/rustdesk-server/hbbr.confd11
-rwxr-xr-xtesting/rustdesk-server/hbbr.initd19
-rw-r--r--testing/rustdesk-server/hbbs.confd11
-rwxr-xr-xtesting/rustdesk-server/hbbs.initd18
-rwxr-xr-xtesting/rustdesk-server/rustdesk-server.pre-install6
-rw-r--r--testing/rustic/APKBUILD82
-rw-r--r--testing/rustic/build-with-system-tls.patch225
-rw-r--r--testing/rustic/fix-abscissa_core-features.patch35
-rw-r--r--testing/rustic/make-self-update-optional.patch101
-rw-r--r--testing/rustic/rustic_core-add-tls-native.patch53
-rw-r--r--testing/rustscan/APKBUILD42
-rw-r--r--testing/rustscan/Cargo.lock.patch1159
-rw-r--r--testing/rustypaste-cli/APKBUILD38
-rw-r--r--testing/ruuvi-prometheus/APKBUILD23
-rw-r--r--testing/rvlprog/APKBUILD24
-rw-r--r--testing/ry/APKBUILD2
-rw-r--r--testing/s-postgray/APKBUILD33
-rw-r--r--testing/s3cmd/APKBUILD27
-rw-r--r--testing/s3fs-fuse/APKBUILD41
-rw-r--r--testing/s5cmd/APKBUILD37
-rw-r--r--testing/sacc/APKBUILD12
-rw-r--r--testing/sailfish-access-control/APKBUILD22
-rw-r--r--testing/sakura/APKBUILD24
-rw-r--r--testing/sandbar/APKBUILD24
-rw-r--r--testing/sane-airscan/APKBUILD37
-rw-r--r--testing/satellite/APKBUILD46
-rw-r--r--testing/satellite/satellite.confd1
-rw-r--r--testing/satellite/satellite.initd17
-rw-r--r--testing/satellite/satellite.pre-install7
-rw-r--r--testing/satty/APKBUILD52
-rw-r--r--testing/sauerbraten/APKBUILD43
-rwxr-xr-xtesting/sauerbraten/sauerbraten-client7
-rwxr-xr-xtesting/sauerbraten/sauerbraten-server7
-rw-r--r--testing/sbase/APKBUILD60
-rw-r--r--testing/sbase/sbase.post-install7
l---------testing/sbase/sbase.post-upgrade1
-rw-r--r--testing/sbase/sbase.pre-deinstall7
-rw-r--r--testing/sbase/setup-sbase.in122
-rw-r--r--testing/sbcl/0001-Fix-sb-bsd-sockets-on-musl-libc.patch47
-rw-r--r--testing/sbcl/0002-Fix-threads-on-musl-libc.patch36
-rw-r--r--testing/sbcl/0003-Fix-foreign-tests-on-musl-libc.patch127
-rw-r--r--testing/sbcl/0004-Only-include-old-memcpy-version-on-glibc.patch27
-rw-r--r--testing/sbcl/APKBUILD57
-rw-r--r--testing/sbcl/Fix-ARM-build-using-ECL-host.patch36
-rw-r--r--testing/sbcl/march-armv5-removed.patch18
-rw-r--r--testing/sblg/APKBUILD34
-rw-r--r--testing/sblim-sfcc/APKBUILD17
-rw-r--r--testing/sblim-wbemcli/APKBUILD2
-rw-r--r--testing/sbt/APKBUILD34
-rw-r--r--testing/sc-controller/APKBUILD53
-rw-r--r--testing/sc-im/APKBUILD26
-rw-r--r--testing/sc3-plugins/APKBUILD34
-rw-r--r--testing/scaleway-cli/APKBUILD46
-rw-r--r--testing/scalingo/APKBUILD33
-rw-r--r--testing/scap-workbench/APKBUILD49
-rw-r--r--testing/scap-workbench/appdata.patch13
-rw-r--r--testing/scap-workbench/remove-werror-cxx-flags.patch13
-rw-r--r--testing/schismtracker/APKBUILD42
-rw-r--r--testing/schroot/APKBUILD70
-rw-r--r--testing/schroot/busybox-compat.patch50
-rw-r--r--testing/schroot/getent.patch25
-rw-r--r--testing/schroot/getmntent.patch60
-rw-r--r--testing/schroot/musl.patch51
-rw-r--r--testing/schroot/pam.d.schroot.patch20
-rw-r--r--testing/schroot/remove-networks.patch41
-rw-r--r--testing/schroot/schroot-cppunit.patch11
-rw-r--r--testing/scooper/APKBUILD33
-rw-r--r--testing/scratch/APKBUILD2
-rw-r--r--testing/scrcpy/APKBUILD37
-rw-r--r--testing/scream/APKBUILD56
-rw-r--r--testing/scream/scream-alsa.confd20
-rwxr-xr-xtesting/scream/scream-alsa.initd21
-rw-r--r--testing/screenfetch/APKBUILD22
-rw-r--r--testing/screenkey/APKBUILD29
-rw-r--r--testing/scrypt/APKBUILD36
-rw-r--r--testing/sct/APKBUILD23
-rw-r--r--testing/scummvm/APKBUILD47
-rw-r--r--testing/scummvm/disable-forbidden.patch16
-rw-r--r--testing/sd/APKBUILD49
-rw-r--r--testing/sdl2_net/APKBUILD34
-rw-r--r--testing/sdparm/APKBUILD6
-rw-r--r--testing/sdrangel/APKBUILD84
-rw-r--r--testing/sdrangel/no-march-magic.patch14
-rw-r--r--testing/seamonkey/APKBUILD93
-rw-r--r--testing/seamonkey/avoid-getcontext-musl.patch15
-rw-r--r--testing/seamonkey/discard-x86-precision-musl.patch11
-rw-r--r--testing/seamonkey/firefox-gcc-6.0.patch26
-rw-r--r--testing/seamonkey/fix-aouth.patch11
-rw-r--r--testing/seamonkey/fix-crmf.patch13
-rw-r--r--testing/seamonkey/fix-hunspell.patch16
-rw-r--r--testing/seamonkey/fix-i686-musl.patch20
-rw-r--r--testing/seamonkey/fix-libevent.patch11
-rw-r--r--testing/seamonkey/fix-libgen.patch20
-rw-r--r--testing/seamonkey/fix-linux-syscall.patch16
-rw-r--r--testing/seamonkey/fix-mallinfo.patch18
-rw-r--r--testing/seamonkey/fix-platform-linux.patch13
-rw-r--r--testing/seamonkey/fix-siginfo_t.patch11
-rw-r--r--testing/seamonkey/fix-stabs.patch19
-rw-r--r--testing/seamonkey/fix-sysctl.patch11
-rw-r--r--testing/seamonkey/fix-system-headers.patch28
-rw-r--r--testing/seamonkey/mozconfig57
-rw-r--r--testing/searchmonkey/APKBUILD32
-rw-r--r--testing/searchmonkey/searchmonkey.desktop9
-rw-r--r--testing/seastar/APKBUILD96
-rw-r--r--testing/seaweedfs/APKBUILD59
-rw-r--r--testing/seaweedfs/seaweedfs.confd4
-rw-r--r--testing/seaweedfs/seaweedfs.initd19
-rw-r--r--testing/secsipidx/APKBUILD31
-rw-r--r--testing/sedutil/APKBUILD2
-rw-r--r--testing/seed7/APKBUILD96
-rw-r--r--testing/seed7/makefile.patch10
-rw-r--r--testing/semodule-utils/APKBUILD23
-rw-r--r--testing/sems/APKBUILD230
-rw-r--r--testing/sems/Fix-find-openssl.patch11
-rw-r--r--testing/sems/Fix-openssl-1.1.patch25
-rw-r--r--testing/sems/remove-dsm.patch23
-rw-r--r--testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch26
-rw-r--r--testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch33
-rw-r--r--testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch26
-rw-r--r--testing/sems/sems-0004-musl-fixes.patch56
-rw-r--r--testing/sems/sems-0005-stats-needs-version.patch12
-rw-r--r--testing/sems/sems-0011-Add-SBC-dependencies.patch22
-rw-r--r--testing/sems/sems-0013-Fix-for-C-11.patch45
-rwxr-xr-xtesting/sems/sems.initd48
-rw-r--r--testing/sems/sems.pre-install6
-rw-r--r--testing/sems/std-types.patch281
-rw-r--r--testing/sentinel-minipot/APKBUILD77
-rw-r--r--testing/sentinel-minipot/fix-configure-msgpack-c.patch7
-rw-r--r--testing/sentinel-minipot/no-valgrind.patch26
-rw-r--r--testing/sentinel-minipot/sentinel-minipot.confd38
-rw-r--r--testing/sentinel-minipot/sentinel-minipot.initd37
-rw-r--r--testing/sentinel-minipot/sentinel-minipot.pre-install5
-rw-r--r--testing/sentinel-proxy/APKBUILD78
-rw-r--r--testing/sentinel-proxy/example.cfg.patch34
-rw-r--r--testing/sentinel-proxy/fix-configure-msgpack-c.patch7
-rw-r--r--testing/sentinel-proxy/sentinel-proxy.confd17
-rw-r--r--testing/sentinel-proxy/sentinel-proxy.initd33
-rw-r--r--testing/sentinel-proxy/sentinel-proxy.pre-install6
-rw-r--r--testing/sentrypeer/APKBUILD54
-rw-r--r--testing/sequoia-chameleon-gnupg/APKBUILD45
-rw-r--r--testing/sequoia-sqv/APKBUILD63
-rw-r--r--testing/serd/APKBUILD24
-rw-r--r--testing/serialdv/APKBUILD36
-rw-r--r--testing/setroot/APKBUILD11
-rw-r--r--testing/setroot/imlib2.patch13
-rw-r--r--testing/setserial/APKBUILD32
-rw-r--r--testing/setserial/ioctls.patch14
-rw-r--r--testing/setserial/setserial.patch28
-rw-r--r--testing/sfeed/APKBUILD23
-rw-r--r--testing/sflowtool/APKBUILD30
-rw-r--r--testing/sfwbar/APKBUILD32
-rw-r--r--testing/sgt-puzzles/0001-change-desktop-variables-according-to-prefix.patch13
-rw-r--r--testing/sgt-puzzles/APKBUILD67
-rw-r--r--testing/shadowsocks-libev/APKBUILD14
-rw-r--r--testing/shairport-sync/APKBUILD46
-rw-r--r--testing/shairport-sync/shairport-sync.initd14
-rw-r--r--testing/shc/APKBUILD2
-rw-r--r--testing/shellinabox/APKBUILD4
-rw-r--r--testing/shfm/APKBUILD19
-rw-r--r--testing/shiboken2/APKBUILD69
-rw-r--r--testing/shiboken2/musl-execinfo.patch32
-rw-r--r--testing/shine/APKBUILD2
-rw-r--r--testing/shipments/APKBUILD36
-rw-r--r--testing/shntool/24bit.patch46
-rw-r--r--testing/shntool/APKBUILD13
-rw-r--r--testing/shotcut/APKBUILD29
-rw-r--r--testing/shotcut/shotcut-melt.patch13
-rw-r--r--testing/shutdown-clear-machine-id/APKBUILD20
-rw-r--r--testing/shutdown-clear-machine-id/clear-machine-id.shutdown.initd8
-rw-r--r--testing/shutdown-clear-machine-id/shutdown-clear-machine-id.post-install13
-rw-r--r--testing/sieve-connect/APKBUILD29
-rw-r--r--testing/sigil/APKBUILD67
-rw-r--r--testing/sigma/APKBUILD32
-rw-r--r--testing/sigma/remove_data_file_installation.patch26
-rw-r--r--testing/signal-desktop/APKBUILD489
-rw-r--r--testing/signal-desktop/bettersqlite-use-system-sqlcipher.patch56
-rw-r--r--testing/signal-desktop/libsignal-auditable.patch11
-rw-r--r--testing/signal-desktop/ringrtc-webrtc-renamed.patch21
-rwxr-xr-xtesting/signal-desktop/signal-desktop6
-rw-r--r--testing/signal-desktop/signal-disable-updates.patch9
-rw-r--r--testing/signal-desktop/signal-show-window-please.patch11
-rw-r--r--testing/signal-desktop/signal-update-links.patch25
-rw-r--r--testing/signal-desktop/webrtc-compiler.patch40
-rw-r--r--testing/signal-desktop/webrtc-gcc13.patch20
-rw-r--r--testing/signal-desktop/webrtc-shared-like-my-wife.patch28
-rw-r--r--testing/sigrok-cli/APKBUILD6
-rw-r--r--testing/sigrok-firmware-fx2lafw-bin/APKBUILD11
-rw-r--r--testing/siji-ng/APKBUILD24
-rw-r--r--testing/silc-client/APKBUILD23
-rw-r--r--testing/silc-client/format-security.patch22
-rw-r--r--testing/simavr/APKBUILD31
-rw-r--r--testing/simgear/APKBUILD52
-rw-r--r--testing/simgear/gcc12.patch12
-rw-r--r--testing/simgear/musl-fixes.patch59
-rw-r--r--testing/simgear/musl-strerror_r.patch25
-rw-r--r--testing/simgear/musl-u_types.patch94
-rw-r--r--testing/simh/APKBUILD27
-rw-r--r--testing/simh/gcc-10.patch24
-rw-r--r--testing/simp1e-cursors/APKBUILD61
-rw-r--r--testing/simp1e-cursors/py3.patch11
-rw-r--r--testing/simpleble/APKBUILD66
-rw-r--r--testing/simpleble/bluez.patch14
-rw-r--r--testing/simpleble/fmt.patch24
-rw-r--r--testing/simpleiot/APKBUILD35
-rw-r--r--testing/simpleiot/dont-run-golangci.patch10
-rw-r--r--testing/simplescreenrecorder/APKBUILD32
-rw-r--r--testing/simplesnap/0001-fix-simplesnap-line-2-dotlockfile-command-not-found.patch66
-rw-r--r--testing/simplesnap/0002-trap-do-not-define-ECODE-at-setup.patch41
-rw-r--r--testing/simplesnap/0003-use-CHECKHOST-in-checkbackups-function.patch32
-rw-r--r--testing/simplesnap/APKBUILD39
-rw-r--r--testing/sing-box/APKBUILD50
-rw-r--r--testing/sing-box/sing-box.initd17
-rw-r--r--testing/sing-geoip/APKBUILD27
-rw-r--r--testing/sing-geosite/APKBUILD24
-rw-r--r--testing/singular/APKBUILD73
-rw-r--r--testing/singularity/APKBUILD73
-rw-r--r--testing/sipexer/APKBUILD36
-rw-r--r--testing/sipgrep/APKBUILD2
-rw-r--r--testing/siril/APKBUILD49
-rw-r--r--testing/siril/lfs64.patch41
-rw-r--r--testing/sish/APKBUILD35
-rw-r--r--testing/sish/sish.confd4
-rw-r--r--testing/sish/sish.initd19
-rw-r--r--testing/sish/sish.pre-install6
-rw-r--r--testing/skia-sharp/APKBUILD185
-rw-r--r--testing/skim/APKBUILD108
-rw-r--r--testing/slick-greeter/APKBUILD41
-rw-r--r--testing/slick-greeter/get-rid-of-gnome-common.patch84
-rw-r--r--testing/slidge-matridge/APKBUILD67
-rw-r--r--testing/slidge-matridge/matridge.conf8
-rw-r--r--testing/slidge/APKBUILD79
-rw-r--r--testing/slidge/common.conf.example7
-rw-r--r--testing/slidge/slidge.confd17
-rw-r--r--testing/slidge/slidge.initd37
-rw-r--r--testing/slidge/slidge.pre-install11
-rw-r--r--testing/slirp4netns/APKBUILD35
-rw-r--r--testing/sloccount/APKBUILD9
-rw-r--r--testing/slop/APKBUILD34
-rw-r--r--testing/slrn/APKBUILD29
-rw-r--r--testing/slurm/APKBUILD29
-rw-r--r--testing/slurm/fix-includes.patch22
-rw-r--r--testing/smplxmpp/APKBUILD44
-rw-r--r--testing/smplxmpp/argp.patch24
-rw-r--r--testing/smplxmpp/fmt10.patch43
-rw-r--r--testing/snac/APKBUILD40
-rw-r--r--testing/snac/snac.initd83
-rw-r--r--testing/snac/snac.pre-install11
-rw-r--r--testing/snapper/APKBUILD71
-rw-r--r--testing/snapper/drift-file-path.patch10
-rw-r--r--testing/snapper/miss-tinfo-link-to-ncurses.patch11
-rw-r--r--testing/snapper/musl-_nl_msg_cat_cntr.patch41
-rw-r--r--testing/snapper/musl-mktime.patch19
-rw-r--r--testing/snapper/musl-posix.patch21
-rw-r--r--testing/snapper/musl-stdout_stderr.patch15
-rw-r--r--testing/snapper/musl-u_int_type.patch19
-rw-r--r--testing/snapper/remove-systemd.patch29
-rw-r--r--testing/snapper/skip-locale-tests.patch13
-rw-r--r--testing/snapper/statvfs64.patch15
-rw-r--r--testing/snapraid/APKBUILD10
-rw-r--r--testing/sndfile-tools/APKBUILD38
-rw-r--r--testing/snes9x/APKBUILD45
-rw-r--r--testing/snore/APKBUILD25
-rw-r--r--testing/snowflake/APKBUILD36
-rw-r--r--testing/so/APKBUILD32
-rw-r--r--testing/soapy-bladerf/APKBUILD30
-rw-r--r--testing/soapy-hackrf/APKBUILD32
-rw-r--r--testing/soapy-sdr-remote/APKBUILD41
-rw-r--r--testing/soapy-sdr-remote/soapy-sdr-remote.initd15
-rw-r--r--testing/soju/APKBUILD69
-rw-r--r--testing/soju/config.patch11
-rw-r--r--testing/soju/makefile.patch15
-rw-r--r--testing/soju/soju.initd33
-rw-r--r--testing/soju/soju.pre-install12
-rw-r--r--testing/solanum/10-gio-types.patch11
-rw-r--r--testing/solanum/APKBUILD51
-rw-r--r--testing/solanum/appdata.patch14
-rw-r--r--testing/solarus-engine/APKBUILD64
-rw-r--r--testing/solarus-quest-editor/APKBUILD55
-rw-r--r--testing/solidity/APKBUILD38
-rw-r--r--testing/somebar/APKBUILD37
-rw-r--r--testing/sonar-scanner/APKBUILD43
-rw-r--r--testing/sonar-scanner/fix-reflection.patch22
-rw-r--r--testing/sonarr/0001-disable-restart.patch20
-rw-r--r--testing/sonarr/APKBUILD104
-rw-r--r--testing/sonarr/package_info4
-rw-r--r--testing/sonarr/sonarr.confd10
-rw-r--r--testing/sonarr/sonarr.initd34
-rw-r--r--testing/sonarr/sonarr.pre-install6
-rw-r--r--testing/sopel/APKBUILD44
-rw-r--r--testing/sopel/add-tpaste-us.patch37
-rw-r--r--testing/sopel/sopel.conf1
-rw-r--r--testing/sopel/sopel.initd11
-rw-r--r--testing/sopel/sopel.pre-install6
-rw-r--r--testing/sopel/update-requirements.patch16
-rw-r--r--testing/sopwith/APKBUILD36
-rw-r--r--testing/sopwith/select.patch12
-rw-r--r--testing/soqt/APKBUILD30
-rw-r--r--testing/sord/APKBUILD24
-rw-r--r--testing/sos/APKBUILD39
-rw-r--r--testing/sos/Gopkg.lock45
-rw-r--r--testing/sos/Gopkg.toml42
-rw-r--r--testing/sos/use-go-modules.patch51
-rw-r--r--testing/soundfont-vintage-dreams-waves/APKBUILD26
-rw-r--r--testing/soundfont-vintage-dreams-waves/LICENSE21
-rw-r--r--testing/spacectl/APKBUILD54
-rw-r--r--testing/spacenavd/APKBUILD31
-rw-r--r--testing/spampd/APKBUILD31
-rw-r--r--testing/spark/APKBUILD4
-rw-r--r--testing/speakersafetyd/APKBUILD35
-rw-r--r--testing/speakersafetyd/speakersafetyd.initd7
-rw-r--r--testing/spectrwm/APKBUILD43
-rw-r--r--testing/speedcrunch/APKBUILD35
-rw-r--r--testing/speedtest-go/APKBUILD39
-rw-r--r--testing/speedtest-go/settings-change.patch30
-rw-r--r--testing/speedtest-go/speedtest-go.initd14
-rw-r--r--testing/speedtest/APKBUILD14
-rw-r--r--testing/speedtest_exporter/0001-Fix-log.Infof-format-test-error.patch34
-rw-r--r--testing/speedtest_exporter/APKBUILD51
-rw-r--r--testing/speedtest_exporter/speedtest_exporter.confd3
-rw-r--r--testing/speedtest_exporter/speedtest_exporter.initd14
-rw-r--r--testing/speedtest_exporter/speedtest_exporter.pre-install6
-rw-r--r--testing/spi-tools/APKBUILD34
-rw-r--r--testing/spice-html5/APKBUILD10
-rw-r--r--testing/spike/APKBUILD34
-rw-r--r--testing/spin/APKBUILD2
-rw-r--r--testing/spiritvnc/APKBUILD26
-rw-r--r--testing/splitter/APKBUILD48
-rw-r--r--testing/splix/APKBUILD54
-rw-r--r--testing/splix/splix-deviceID.patch105
-rw-r--r--testing/splix/splix.post-install14
-rw-r--r--testing/spnavcfg/APKBUILD29
-rw-r--r--testing/spnavcfg/makefile.patch14
-rw-r--r--testing/sponskrub/APKBUILD25
-rw-r--r--testing/spotify-player/APKBUILD42
-rw-r--r--testing/spotify-tui/APKBUILD36
-rw-r--r--testing/spotify-tui/deps.patch2603
-rw-r--r--testing/spread-sheet-widget/APKBUILD34
-rw-r--r--testing/spreed-webrtc/APKBUILD58
-rw-r--r--testing/spreed-webrtc/spreed-webrtc.initd22
-rw-r--r--testing/spreed-webrtc/spreed-webrtc.pre-install4
-rw-r--r--testing/spvm-errno/APKBUILD38
-rw-r--r--testing/spvm-math/APKBUILD38
-rw-r--r--testing/spvm-mime-base64/APKBUILD38
-rw-r--r--testing/spvm-thread/APKBUILD38
-rw-r--r--testing/sqlar/APKBUILD2
-rw-r--r--testing/sqliteodbc/APKBUILD6
-rw-r--r--testing/sqlmap/APKBUILD58
-rw-r--r--testing/sqlmap/reduce-amount-of-third-party-dependencies.patch897
-rw-r--r--testing/sqm-scripts/10-defaults.sh.patch11
-rw-r--r--testing/sqm-scripts/APKBUILD23
-rw-r--r--testing/squashfs-tools-ng/APKBUILD47
-rw-r--r--testing/squeak-vm/APKBUILD2
-rw-r--r--testing/srain/APKBUILD42
-rw-r--r--testing/sratom/APKBUILD24
-rw-r--r--testing/srb2/APKBUILD45
-rw-r--r--testing/srb2/fix-backtrace.patch14
-rw-r--r--testing/sregex/APKBUILD43
-rw-r--r--testing/sregex/disable-broken-tests.patch29
-rw-r--r--testing/ssdfs-tools/APKBUILD41
-rw-r--r--testing/ssh-audit/APKBUILD17
-rw-r--r--testing/ssh-cert-authority/APKBUILD32
-rw-r--r--testing/ssh-honeypot/APKBUILD21
-rw-r--r--testing/ssh-tools/APKBUILD16
-rw-r--r--testing/sshign/APKBUILD21
-rw-r--r--testing/sshsrv/APKBUILD34
-rw-r--r--testing/sshuttle/APKBUILD21
-rw-r--r--testing/sshuttle/no-scm.patch18
-rw-r--r--testing/ssldump/0010-openssl.patch216
-rw-r--r--testing/ssldump/0020-libpcap.patch43
-rw-r--r--testing/ssldump/0030-aes.patch191
-rw-r--r--testing/ssldump/0040-cvs-20060619.patch191
-rw-r--r--testing/ssldump/0050-table-stops.patch54
-rw-r--r--testing/ssldump/0060-link_layer.patch91
-rw-r--r--testing/ssldump/0070-pcap-vlan.patch36
-rw-r--r--testing/ssldump/0080-tlsv12.patch218
-rw-r--r--testing/ssldump/0090-ssl-enums.patch1806
-rw-r--r--testing/ssldump/0100-ciphersuites.patch161
-rw-r--r--testing/ssldump/APKBUILD66
-rw-r--r--testing/sslh/APKBUILD72
-rw-r--r--testing/sslh/config.patch34
-rw-r--r--testing/sslh/fail2ban.patch22
-rw-r--r--testing/sslh/fix-make-install.patch13
-rw-r--r--testing/sslh/generate-version.patch43
-rw-r--r--testing/sslh/sslh.confd18
-rw-r--r--testing/sslh/sslh.initd15
-rw-r--r--testing/sslscan/APKBUILD37
-rw-r--r--testing/sssd/0001-makefile.patch31
-rw-r--r--testing/sssd/0002-src.patch35
-rw-r--r--testing/sssd/0003-alpine.patch95
-rw-r--r--testing/sssd/APKBUILD111
-rw-r--r--testing/sssd/UTIL-Fix-compilation-with-curl-7.62.0.patch58
-rw-r--r--testing/sssd/cifsidmap.h160
-rw-r--r--testing/sssd/musl_fixup.patch68
-rw-r--r--testing/sssd/nss.h15
-rw-r--r--testing/sssd/sssd.initd10
-rw-r--r--testing/ssss/APKBUILD32
-rw-r--r--testing/ssu-sysinfo/APKBUILD25
-rw-r--r--testing/st-xrdb/APKBUILD36
-rw-r--r--testing/st-xrdb/st-xrdb.patch209
-rw-r--r--testing/stack/APKBUILD53
-rw-r--r--testing/stack/aeson.patch46
-rw-r--r--testing/stack/cabal.config2912
-rw-r--r--testing/stack/ghc9.0.x.patch212
-rw-r--r--testing/stack/persistent.patch46
-rw-r--r--testing/stagit/APKBUILD22
-rw-r--r--testing/stardict/APKBUILD24
-rw-r--r--testing/stardict/gnome-doc-utils.patch21
-rw-r--r--testing/starfighter/APKBUILD30
-rw-r--r--testing/stargazer/APKBUILD39
-rw-r--r--testing/stargazer/fix-name-max.patch10
-rw-r--r--testing/startup/APKBUILD105
-rw-r--r--testing/stayrtr/APKBUILD54
-rw-r--r--testing/stayrtr/stayrtr.confd2
-rw-r--r--testing/stayrtr/stayrtr.initd26
-rw-r--r--testing/stayrtr/stayrtr.pre-install6
-rw-r--r--testing/stdx-allocator/APKBUILD38
-rw-r--r--testing/steamguard-cli/APKBUILD48
-rw-r--r--testing/steamguard-cli/openssl.patch393
-rw-r--r--testing/steghide/APKBUILD47
-rw-r--r--testing/steghide/build-fixes-new-gcc.patch164
-rw-r--r--testing/steghide/missing-files-configure-in.patch18
-rw-r--r--testing/steghide/steghide-0.5.1-am.patch19
-rw-r--r--testing/stern/APKBUILD53
-rw-r--r--testing/stgit/APKBUILD45
-rw-r--r--testing/sthttpd/APKBUILD69
-rw-r--r--testing/sthttpd/libhttpd-c.patch34
-rw-r--r--testing/sthttpd/sthttpd-makeweb-notsuid.patch9
-rw-r--r--testing/sthttpd/sthttpd-webgroup.patch13
-rw-r--r--testing/sthttpd/sthttpd.conf8
-rw-r--r--testing/sthttpd/sthttpd.pre-install8
-rw-r--r--testing/sthttpd/thttpd.confd7
-rw-r--r--testing/sthttpd/thttpd.initd27
-rw-r--r--testing/sthttpd/thttpd.logrotated11
-rw-r--r--testing/stm32flash/APKBUILD25
-rw-r--r--testing/stockfish/APKBUILD65
-rw-r--r--testing/stockfish/no-lto.patch47
-rw-r--r--testing/stoken/APKBUILD48
-rw-r--r--testing/stone-soup/APKBUILD116
-rw-r--r--testing/stone-soup/crawl-tiles.desktop7
-rw-r--r--testing/stone-soup/crawl.desktop8
-rw-r--r--testing/stone-soup/no-execinfo.patch13
-rw-r--r--testing/stone-soup/root-owner.patch13
-rw-r--r--testing/straw-viewer/APKBUILD31
-rw-r--r--testing/streamlink/APKBUILD34
-rw-r--r--testing/strfry/APKBUILD132
-rw-r--r--testing/strfry/pre-build-pkgver_patch11
-rw-r--r--testing/strfry/strfry-conf.patch20
-rw-r--r--testing/strfry/strfry.confd7
-rw-r--r--testing/strfry/strfry.initd30
-rw-r--r--testing/strfry/strfry.pre-install11
-rw-r--r--testing/stubby/APKBUILD50
-rw-r--r--testing/stubby/stubby.confd2
-rw-r--r--testing/stubby/stubby.initd15
-rw-r--r--testing/stubbyboot/APKBUILD58
-rw-r--r--testing/stubbyboot/no-werror.patch13
-rw-r--r--testing/sturmreader/APKBUILD52
-rw-r--r--testing/sturmreader/intl.patch13
-rw-r--r--testing/stw/APKBUILD30
-rw-r--r--testing/subdl/0001-Remove-bogus-empty-package.patch31
-rw-r--r--testing/subdl/APKBUILD32
-rw-r--r--testing/sublime-music/APKBUILD55
-rw-r--r--testing/sublime-music/fix-python3.11.patch35
-rw-r--r--testing/subliminal/APKBUILD50
-rw-r--r--testing/subliminal/legendastv.patch10
-rw-r--r--testing/subliminal/tests.patch88
-rw-r--r--testing/subtitleeditor/APKBUILD2
-rw-r--r--testing/sudo-ldap/APKBUILD79
-rw-r--r--testing/suil/APKBUILD24
-rw-r--r--testing/sunwait/APKBUILD25
-rw-r--r--testing/supercollider/00-fortified-headers.patch11
-rw-r--r--testing/supercollider/APKBUILD69
-rw-r--r--testing/supercronic/APKBUILD39
-rw-r--r--testing/supercronic/python3.patch13
-rw-r--r--testing/superlu/APKBUILD44
-rw-r--r--testing/supermin/APKBUILD21
-rw-r--r--testing/surf/APKBUILD25
-rw-r--r--testing/surf/webkit2gtk-4.1.patch19
-rw-r--r--testing/surfraw/APKBUILD38
-rw-r--r--testing/suru-icon-theme/APKBUILD21
-rw-r--r--testing/svgbob/APKBUILD36
-rw-r--r--testing/svgbob/update-cargo-lock.patch22
-rw-r--r--testing/svls/APKBUILD35
-rw-r--r--testing/svt-av1/APKBUILD42
-rw-r--r--testing/svt-hevc/APKBUILD31
-rw-r--r--testing/svt-vp9/APKBUILD31
-rw-r--r--testing/svxlink-sounds-en_us-heather-16k/APKBUILD22
-rw-r--r--testing/svxlink/APKBUILD63
-rw-r--r--testing/svxlink/svxlink.confd21
-rw-r--r--testing/svxlink/svxlink.initd32
-rw-r--r--testing/svxlink/svxlink.post-install4
-rw-r--r--testing/svxlink/svxlink.pre-install5
-rw-r--r--testing/swaks/APKBUILD27
-rw-r--r--testing/swappy/APKBUILD27
-rw-r--r--testing/sway-audio-idle-inhibit/APKBUILD33
-rw-r--r--testing/swayhide/APKBUILD34
-rw-r--r--testing/swi-prolog/APKBUILD91
-rw-r--r--testing/swig3/APKBUILD41
-rw-r--r--testing/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch191
-rw-r--r--testing/sxcs/APKBUILD27
-rw-r--r--testing/sylpheed-imap-notify/APKBUILD2
-rw-r--r--testing/symbiyosys/APKBUILD25
-rw-r--r--testing/sympow/APKBUILD39
-rw-r--r--testing/synadm/APKBUILD29
-rw-r--r--testing/synapse-bt/APKBUILD19
-rw-r--r--testing/synapse-bt/openssl3.patch2608
-rw-r--r--testing/syncthing-gtk/APKBUILD34
-rw-r--r--testing/sysls/APKBUILD24
-rw-r--r--testing/t2sz/APKBUILD33
-rw-r--r--testing/tabby/APKBUILD36
-rw-r--r--testing/tabby/usr-bin.patch10
-rw-r--r--testing/tachyon/APKBUILD49
-rw-r--r--testing/tagutil/APKBUILD33
-rw-r--r--testing/tagutil/patch-musl.patch32
-rw-r--r--testing/tailspin/APKBUILD47
-rw-r--r--testing/tang/APKBUILD57
-rw-r--r--testing/tang/man-pages.patch20
-rw-r--r--testing/tang/tang.initd27
-rw-r--r--testing/tang/tang.pre-install10
-rw-r--r--testing/tang/tangd-wrapper4
-rw-r--r--testing/tangctl/APKBUILD47
-rw-r--r--testing/tangctl/tang-location.patch12
-rw-r--r--testing/tangram/APKBUILD63
-rw-r--r--testing/tangram/busybox.patch20
-rw-r--r--testing/tanidvr/APKBUILD4
-rw-r--r--testing/tanka/APKBUILD37
-rw-r--r--testing/tartube/APKBUILD57
-rw-r--r--testing/taskcafe/APKBUILD56
-rw-r--r--testing/taskcafe/taskcafe.confd1
-rw-r--r--testing/taskcafe/taskcafe.initd14
-rw-r--r--testing/taskcafe/taskcafe.pre-install6
-rw-r--r--testing/tauri-cli/APKBUILD35
-rw-r--r--testing/tayga/APKBUILD35
-rw-r--r--testing/tayga/implicit-function-decl.patch12
-rw-r--r--testing/tcc/APKBUILD47
-rw-r--r--testing/tcc/libtcc.pc.in12
-rw-r--r--testing/tcl-curl/APKBUILD63
-rw-r--r--testing/tcmu-runner/APKBUILD52
-rw-r--r--testing/tcmu-runner/tcmu-runner-fix-i586-size_t-error.patch23
-rw-r--r--testing/tcolors/APKBUILD25
-rw-r--r--testing/tcpreplay/APKBUILD51
-rw-r--r--testing/tcpreplay/skip-tests-require-root.patch109
-rw-r--r--testing/td-agent-bit/APKBUILD6
-rw-r--r--testing/tdrop/APKBUILD6
-rw-r--r--testing/tealdeer/APKBUILD48
-rw-r--r--testing/tealdeer/use-system-tls.patch219
-rw-r--r--testing/teapot-tools/APKBUILD48
-rw-r--r--testing/telegraf/APKBUILD46
-rw-r--r--testing/telegraf/telegraf.confd4
-rw-r--r--testing/telegraf/telegraf.initd19
-rw-r--r--testing/telegraf/telegraf.pre-install8
-rw-r--r--testing/telegram-tdlib/APKBUILD35
-rw-r--r--testing/templ/APKBUILD40
-rw-r--r--testing/tengine/APKBUILD82
-rw-r--r--testing/tengine/tengine.initd70
-rw-r--r--testing/tengine/tengine.logrotate12
-rw-r--r--testing/tengine/tengine.pre-install9
l---------testing/tengine/tengine.pre-upgrade1
-rw-r--r--testing/tere/APKBUILD54
-rw-r--r--testing/tere/deps.patch415
-rw-r--r--testing/termbox/APKBUILD10
-rw-r--r--testing/termcolor/APKBUILD29
-rw-r--r--testing/terminalpp/APKBUILD84
-rw-r--r--testing/termusic-mpv/APKBUILD37
-rw-r--r--testing/terra/APKBUILD80
-rw-r--r--testing/terra/no-execinfo.patch36
-rw-r--r--testing/terra/system-lua.patch35
-rw-r--r--testing/terra/version.patch18
-rw-r--r--testing/tesseract-git/APKBUILD49
-rw-r--r--testing/tesseract-git/include-time-h.patch10
-rw-r--r--testing/tetragon-client/APKBUILD72
-rw-r--r--testing/texlab/APKBUILD42
-rw-r--r--testing/texmaker/APKBUILD29
-rw-r--r--testing/texmaker/musl-1.2.3.patch13
-rw-r--r--testing/texstudio/APKBUILD44
-rw-r--r--testing/texstudio/qt6.patch13
-rw-r--r--testing/textadept/APKBUILD75
-rw-r--r--testing/tf/0001-Add-DESTDIR-support.patch113
-rw-r--r--testing/tf/0002-Correct-use-of-va_list.patch34
-rw-r--r--testing/tf/0003-Minor-man-page-fixes.patch112
-rw-r--r--testing/tf/0006-Fix-library-install-path.patch38
-rw-r--r--testing/tf/0007-Fix-spelling-errors.patch59
-rw-r--r--testing/tf/0008-Build-on-musl.patch49
-rw-r--r--testing/tf/APKBUILD50
-rw-r--r--testing/thanos/APKBUILD76
-rw-r--r--testing/thanos/assume-no-moving-gc.patch28
-rw-r--r--testing/thanos/thanos.confd3
-rw-r--r--testing/thanos/thanos.initd17
-rw-r--r--testing/thanos/thanos.pre-install4
-rw-r--r--testing/theforceengine/APKBUILD54
-rw-r--r--testing/theforceengine/backtrace.patch32
-rw-r--r--testing/theforceengine/compilation_32bit_systems.patch29
-rw-r--r--testing/theforceengine/path_max.patch13
-rw-r--r--testing/thefuck/APKBUILD15
-rw-r--r--testing/thefuck/ash.patch15
-rw-r--r--testing/thelounge/APKBUILD81
-rw-r--r--testing/thelounge/no-version-test.patch19
-rw-r--r--testing/thelounge/thelounge.initd14
-rw-r--r--testing/thelounge/thelounge.post-install13
-rw-r--r--testing/thelounge/thelounge.pre-install6
-rw-r--r--testing/theme.sh/APKBUILD29
-rw-r--r--testing/thermald/APKBUILD21
-rw-r--r--testing/thermald/no-werror.patch13
-rw-r--r--testing/thermald/ppc64le.patch46
-rw-r--r--testing/thonny/APKBUILD40
-rw-r--r--testing/thumbdrives/APKBUILD25
-rw-r--r--testing/thunarx-python/APKBUILD33
-rw-r--r--testing/thunderbird/APKBUILD320
-rw-r--r--testing/thunderbird/disable-ccache-stats.patch20
-rw-r--r--testing/thunderbird/fd6847c9416f9eebde636e21d794d25d1be8791d.patch37
-rw-r--r--testing/thunderbird/fix-fortify-system-wrappers.patch13
-rw-r--r--testing/thunderbird/fix-musl.patch11
-rw-r--r--testing/thunderbird/fix-rust-target.patch23
-rw-r--r--testing/thunderbird/fix-sandbox-membarrier.patch54
-rw-r--r--testing/thunderbird/fix-seccomp-bpf.patch14
-rw-r--r--testing/thunderbird/fix-toolkit.patch90
-rw-r--r--testing/thunderbird/fix-tools.patch37
-rw-r--r--testing/thunderbird/fix-webrtc-glibcisms.patch20
-rw-r--r--testing/thunderbird/mallinfo.patch20
-rw-r--r--testing/thunderbird/thunderbird.desktop64
-rw-r--r--testing/tic-80/APKBUILD151
-rw-r--r--testing/tic-80/use-repo-deps.patch315
-rw-r--r--testing/ticker/APKBUILD49
-rw-r--r--testing/tiled/APKBUILD24
-rw-r--r--testing/tillitis-key1-apps/APKBUILD42
-rw-r--r--testing/tillitis-key1-apps/fix-cgo.patch11
-rw-r--r--testing/tillitis-key1-apps/runsign.sh.patch11
-rw-r--r--testing/time/APKBUILD2
-rw-r--r--testing/timed/0001-Fixes-build.patch455
-rw-r--r--testing/timed/APKBUILD39
-rw-r--r--testing/timescaledb/APKBUILD29
-rw-r--r--testing/timeshift/APKBUILD30
-rw-r--r--testing/timew/APKBUILD36
-rw-r--r--testing/timew/fix-man-install.patch20
-rw-r--r--testing/timewarrior/APKBUILD41
-rw-r--r--testing/timg/APKBUILD29
-rw-r--r--testing/tintin/APKBUILD26
-rw-r--r--testing/tinycbor/0001-disable-failing-tests.patch54
-rw-r--r--testing/tinycbor/APKBUILD17
-rw-r--r--testing/tinyscheme/APKBUILD25
-rw-r--r--testing/tiptop/APKBUILD14
-rw-r--r--testing/tiptop/format-security.patch13
-rw-r--r--testing/tkts/APKBUILD32
-rw-r--r--testing/tkts/correct_paths.patch11
-rw-r--r--testing/tldr-python-client/APKBUILD33
-rw-r--r--testing/tmate/APKBUILD27
-rw-r--r--testing/tmate/implicit-decl.patch12
-rw-r--r--testing/tmate/msgpack-c.patch13
-rw-r--r--testing/tmpl/APKBUILD32
-rw-r--r--testing/tmpmail/APKBUILD29
-rw-r--r--testing/tmux-resurrect/APKBUILD27
-rw-r--r--testing/tmux-resurrect/ps.patch16
-rw-r--r--testing/tncattach/APKBUILD29
-rw-r--r--testing/tnef/APKBUILD32
-rw-r--r--[-rwxr-xr-x]testing/toapk/APKBUILD24
-rw-r--r--testing/toapk/fennel5.3.patch22
-rw-r--r--testing/today/APKBUILD22
-rw-r--r--testing/tomcat9/10-daemon.patch34
-rw-r--r--testing/tomcat9/APKBUILD130
-rw-r--r--testing/tomcat9/tomcat9.pre-install6
-rw-r--r--testing/toml2json/APKBUILD40
-rw-r--r--testing/toot/01-skip-version-test.patch15
-rw-r--r--testing/toot/APKBUILD32
-rw-r--r--testing/tootik/APKBUILD68
-rw-r--r--testing/tootik/fix-32bit-maxint.patch24
-rw-r--r--testing/tootik/tootik.cfg63
-rw-r--r--testing/tootik/tootik.confd56
-rw-r--r--testing/tootik/tootik.initd73
-rw-r--r--testing/tootik/tootik.pre-install11
-rw-r--r--testing/topgit/APKBUILD18
-rw-r--r--testing/torrent-file-editor/APKBUILD35
-rw-r--r--testing/toss/APKBUILD23
-rw-r--r--testing/toxcore/APKBUILD36
-rw-r--r--testing/toxic/APKBUILD23
-rw-r--r--testing/toybox/APKBUILD12
-rw-r--r--testing/tpm2-pkcs11/APKBUILD61
-rw-r--r--testing/tpm2-tools/APKBUILD18
-rw-r--r--testing/tpm2-tss-engine/APKBUILD31
-rw-r--r--testing/traefik/APKBUILD67
-rw-r--r--testing/traefik/traefik.confd6
-rw-r--r--testing/traefik/traefik.initd16
-rw-r--r--testing/traefik/traefik.pre-install6
-rw-r--r--testing/traefik/traefik.toml27
-rw-r--r--testing/trafficserver9/10-fix-PATH_MAX-on-ppc64le.patch10
-rw-r--r--testing/trafficserver9/20-adapt-trafficserver.patch56
-rw-r--r--testing/trafficserver9/30-fix-perl-installation.patch11
-rw-r--r--testing/trafficserver9/40-alpine-dir-layout.patch28
-rw-r--r--testing/trafficserver9/APKBUILD286
-rw-r--r--testing/trafficserver9/fix-pthread.patch22
-rw-r--r--testing/trafficserver9/no-execinfo.patch49
-rw-r--r--testing/trafficserver9/trafficserver.initd43
-rw-r--r--testing/trafficserver9/trafficserver9.post-install3
-rw-r--r--testing/trafficserver9/trafficserver9.pre-install6
-rw-r--r--testing/transmission-remote-gtk/APKBUILD36
-rw-r--r--testing/trantor/APKBUILD43
-rw-r--r--testing/tre/APKBUILD37
-rw-r--r--testing/tree-sitter-c-sharp/APKBUILD25
-rw-r--r--testing/tree-sitter-caddy/APKBUILD34
-rw-r--r--testing/tree-sitter-clojure/APKBUILD29
-rw-r--r--testing/tree-sitter-dart/APKBUILD27
-rw-r--r--testing/tree-sitter-elixir/APKBUILD25
-rw-r--r--testing/tree-sitter-git-commit/APKBUILD27
-rw-r--r--testing/tree-sitter-git-diff/APKBUILD27
-rw-r--r--testing/tree-sitter-git-rebase/APKBUILD27
-rw-r--r--testing/tree-sitter-hare/APKBUILD28
-rw-r--r--testing/tree-sitter-hcl/APKBUILD29
-rw-r--r--testing/tree-sitter-just/APKBUILD37
-rw-r--r--testing/tree-sitter-kotlin/APKBUILD25
-rw-r--r--testing/tree-sitter-make/APKBUILD27
-rw-r--r--testing/tree-sitter-markdown/APKBUILD34
-rw-r--r--testing/tree-sitter-nix/APKBUILD29
-rw-r--r--testing/tree-sitter-ron/APKBUILD27
-rw-r--r--testing/tree-sitter-scheme/APKBUILD27
-rw-r--r--testing/tree-sitter-ssh-client-config/APKBUILD25
-rw-r--r--testing/tree-sitter-xml/APKBUILD34
-rw-r--r--testing/treecat/APKBUILD29
-rw-r--r--testing/tremc/APKBUILD21
-rw-r--r--testing/trigger-rally/0001-fix-sdl2-detection.patch26
-rw-r--r--testing/trigger-rally/APKBUILD78
-rw-r--r--testing/trigger-rally/trigger-rally.desktop15
-rw-r--r--testing/trippy/APKBUILD43
-rw-r--r--testing/trivy/APKBUILD34
-rw-r--r--testing/trojita/APKBUILD33
-rw-r--r--testing/trunk/APKBUILD49
-rw-r--r--testing/tsung/0005-Do-not-install-manpages-in-main-install.patch18
-rw-r--r--testing/tsung/APKBUILD17
-rw-r--r--testing/tsung/support-python3.patch120
-rw-r--r--testing/ttdl/APKBUILD39
-rw-r--r--testing/ttf-anonymous-pro/APKBUILD24
-rw-r--r--testing/ttf-font-awesome-4/APKBUILD24
-rw-r--r--testing/ttf-font-awesome-4/ttf-font-awesome-4.post-install4
-rw-r--r--testing/ttf-google-opensans/APKBUILD27
-rwxr-xr-xtesting/ttf-google-opensans/ttf-google-opensans.post-install4
-rw-r--r--testing/ttf-mononoki/APKBUILD19
-rw-r--r--testing/tty-clock/APKBUILD30
-rw-r--r--testing/tty-proxy/APKBUILD27
-rw-r--r--testing/tty-share/APKBUILD29
-rw-r--r--testing/ttyper/APKBUILD32
-rw-r--r--testing/tui-journal/APKBUILD42
-rw-r--r--testing/tuir/APKBUILD24
-rw-r--r--testing/tup/APKBUILD58
-rw-r--r--testing/tup/s390x_risc3264_support.patch30
-rw-r--r--testing/tup/system_inih.patch16
-rw-r--r--testing/tuptime/APKBUILD35
-rw-r--r--testing/tuptime/tuptime-openrc.post-install5
-rw-r--r--testing/tuptime/tuptime.cron2
-rw-r--r--testing/tuptime/tuptime.initd24
-rw-r--r--testing/tuptime/tuptime.post-install5
-rw-r--r--testing/tuptime/tuptime.pre-install2
-rw-r--r--testing/turn-rs/APKBUILD66
-rw-r--r--testing/turn-rs/turn-rs.confd3
-rw-r--r--testing/turn-rs/turn-rs.initd25
-rw-r--r--testing/turn-rs/turn-rs.pre-install6
-rw-r--r--testing/turnstile/APKBUILD42
-rw-r--r--testing/turnstile/turnstiled.confd2
-rw-r--r--testing/turnstile/turnstiled.initd10
-rw-r--r--testing/tweeny/APKBUILD27
-rw-r--r--testing/twemproxy/APKBUILD17
-rw-r--r--testing/twemproxy/use-system-libyaml.patch38
-rw-r--r--testing/twiggy/APKBUILD9
-rw-r--r--testing/twinkle/APKBUILD51
-rw-r--r--testing/twinkle/glibc.patch22
-rw-r--r--testing/typescript/APKBUILD28
-rw-r--r--testing/typst-lsp/APKBUILD41
-rw-r--r--testing/typstfmt/APKBUILD36
-rw-r--r--testing/u1db-qt/0001-point-qmlplugindump-to-qmlplugindump-qt5.patch25
-rw-r--r--testing/u1db-qt/0002-point-qmltestrunner-to-qmltestrunner-qt5.patch23
-rw-r--r--testing/u1db-qt/APKBUILD45
-rw-r--r--testing/uasm/APKBUILD27
-rw-r--r--testing/ubase/APKBUILD46
-rw-r--r--testing/ubase/config.patch16
-rw-r--r--testing/ubase/setup-ubase.in125
-rw-r--r--testing/ubase/ubase.post-install7
l---------testing/ubase/ubase.post-upgrade1
-rw-r--r--testing/ubase/ubase.pre-deinstall7
-rw-r--r--testing/ubuntu-archive-keyring/APKBUILD34
-rw-r--r--testing/uclient/APKBUILD46
-rw-r--r--testing/ucspi-tcp/APKBUILD4
-rw-r--r--testing/udftools/APKBUILD32
-rw-r--r--testing/udpcast/APKBUILD51
-rw-r--r--testing/udpcast/fix-includes.patch10
-rw-r--r--testing/udpt/APKBUILD45
-rw-r--r--testing/udpt/lock.patch13
-rw-r--r--testing/udpt/udpt.conf13
-rw-r--r--testing/udpt/udpt.initd20
-rwxr-xr-xtesting/udpt/udpt.pre-install5
-rw-r--r--testing/ueberzug/APKBUILD40
-rw-r--r--testing/uefitool/APKBUILD31
-rw-r--r--testing/ufw-extras/APKBUILD21
-rw-r--r--testing/ufw/APKBUILD35
-rw-r--r--testing/ufw/fix-lib_path.patch11
-rw-r--r--testing/ufw/ufw.initd137
-rw-r--r--testing/unclutter-xfixes/APKBUILD24
-rw-r--r--testing/undock/APKBUILD35
-rw-r--r--testing/unicorn/APKBUILD65
-rw-r--r--testing/unicorn/endian.patch57
-rw-r--r--testing/unicorn/python-libdir.patch13
-rw-r--r--testing/unify/APKBUILD30
-rw-r--r--testing/unit-php81/APKBUILD73
-rw-r--r--testing/unit-php81/fix-tls-tests.patch40
-rw-r--r--testing/unit-php81/phpver.patch15
-rw-r--r--testing/unshield/APKBUILD38
-rw-r--r--testing/up/APKBUILD34
-rw-r--r--testing/upmpdcli/APKBUILD24
-rw-r--r--testing/upterm/APKBUILD64
-rw-r--r--testing/upterm/uptermd.confd7
-rw-r--r--testing/upterm/uptermd.initd12
-rw-r--r--testing/uranium/874_fix-simplebutton-use-of-um-colorimage.patch34
-rw-r--r--testing/uranium/APKBUILD61
-rw-r--r--testing/uranium/cmake-helpers.patch89
-rw-r--r--testing/uranium/cmake.patch16
-rw-r--r--testing/uranium/fix-logger-used-but-not-imported.patch14
-rw-r--r--testing/uranium/qt-try-ints-then-bytes.patch96
-rw-r--r--testing/urlwatch/APKBUILD42
-rw-r--r--testing/urlwatch/lxml-5.patch35
-rw-r--r--testing/usb-moded/APKBUILD49
-rw-r--r--testing/usb-moded/fix-musl-incompatibility.patch54
-rw-r--r--testing/usbguard-notifier/APKBUILD50
-rw-r--r--testing/usbguard-notifier/no-systemd.patch93
-rw-r--r--testing/usbguard/APKBUILD73
-rw-r--r--testing/usbguard/gcc13.patch12
-rw-r--r--testing/usbguard/usbguard.initd11
-rw-r--r--testing/usbip-utils/APKBUILD70
-rw-r--r--testing/usbip-utils/fix-ppc64le-disable-werror.patch11
-rw-r--r--testing/usbip-utils/usbip.confd18
-rw-r--r--testing/usbip-utils/usbip.initd244
-rw-r--r--testing/usbmuxd/001-confiure-no-udev.patch11
-rw-r--r--testing/usbmuxd/APKBUILD18
-rw-r--r--testing/usbmuxd/libplist-2.3.0.patch34
-rw-r--r--testing/usbmuxd/usbmuxd.post-install4
-rw-r--r--testing/user-managerd/APKBUILD24
-rw-r--r--testing/usql/APKBUILD46
-rw-r--r--testing/ustr/APKBUILD2
-rw-r--r--testing/ustream-ssl/APKBUILD42
-rw-r--r--testing/utop/APKBUILD145
-rw-r--r--testing/uucp/APKBUILD10
-rw-r--r--testing/uucp/format-strings.patch13
-rw-r--r--testing/uxn/APKBUILD29
-rw-r--r--testing/vala-language-server/APKBUILD33
-rw-r--r--testing/vale/APKBUILD35
-rw-r--r--testing/valkey/APKBUILD106
-rw-r--r--testing/valkey/sentinel.conf.patch64
-rw-r--r--testing/valkey/valkey-compat.pre-install6
-rw-r--r--testing/valkey/valkey-sentinel.confd10
-rw-r--r--testing/valkey/valkey-sentinel.initd38
-rw-r--r--testing/valkey/valkey.conf.patch87
-rw-r--r--testing/valkey/valkey.confd10
-rw-r--r--testing/valkey/valkey.initd46
-rw-r--r--testing/valkey/valkey.pre-install6
-rw-r--r--testing/vals/APKBUILD37
-rw-r--r--testing/vamp-sdk/APKBUILD33
-rw-r--r--testing/varnish-modules/APKBUILD39
-rw-r--r--testing/vbindiff/APKBUILD27
-rw-r--r--testing/vcdimager/APKBUILD2
-rw-r--r--testing/vcmi/APKBUILD54
-rw-r--r--testing/vcsh/APKBUILD35
-rw-r--r--testing/vcstool/APKBUILD57
-rw-r--r--testing/vdpauinfo/APKBUILD28
-rw-r--r--testing/vdr-plugin-dvbapi/APKBUILD2
-rw-r--r--testing/vector/APKBUILD96
-rw-r--r--testing/vector/logrotate14
-rw-r--r--testing/vector/skip-failed-tests.patch12
-rw-r--r--testing/vector/use-system-libs.patch77
-rw-r--r--testing/vector/vector.confd13
-rw-r--r--testing/vector/vector.initd38
-rw-r--r--testing/vector/vector.pre-install7
-rw-r--r--testing/vectoroids/APKBUILD35
-rw-r--r--testing/vectoroids/vectoroids-icon.xpm49
-rw-r--r--testing/vectoroids/vectoroids.desktop9
-rw-r--r--testing/venc/APKBUILD31
-rw-r--r--testing/vera++/APKBUILD44
-rw-r--r--testing/vera++/drop-failing-ruledump-test.patch34
-rw-r--r--testing/vera++/fix-not-declared-in-this-scope.patch11
-rw-r--r--testing/veracrypt/APKBUILD48
-rw-r--r--testing/veracrypt/sysmacros.patch13
-rw-r--r--testing/vfd-configurations/APKBUILD26
-rw-r--r--testing/vice/APKBUILD54
-rw-r--r--testing/vice/fix__u_char.patch13
-rw-r--r--testing/victoria-metrics/APKBUILD63
-rw-r--r--testing/victoria-metrics/victoria-metrics.confd18
-rw-r--r--testing/victoria-metrics/victoria-metrics.initd21
-rw-r--r--testing/victoria-metrics/victoria-metrics.pre-install8
-rw-r--r--testing/vidcutter/APKBUILD27
-rw-r--r--testing/vidcutter/pyqt5-5.15.8.patch17
-rw-r--r--testing/video-trimmer/APKBUILD40
-rw-r--r--testing/vidstab/APKBUILD33
-rw-r--r--testing/viewnior/APKBUILD46
-rw-r--r--testing/viewnior/exiv2-0.28.patch147
-rw-r--r--testing/vile/APKBUILD42
-rw-r--r--testing/vim-airline/APKBUILD23
-rw-r--r--testing/vim-rust/APKBUILD1
-rw-r--r--testing/vimb/APKBUILD26
-rw-r--r--testing/vimiv-qt/APKBUILD28
-rw-r--r--testing/vimiv/APKBUILD27
-rw-r--r--testing/vimix-theme/APKBUILD83
-rw-r--r--testing/vinegar/APKBUILD38
-rw-r--r--testing/virtctl/APKBUILD54
-rw-r--r--testing/virter/APKBUILD58
-rw-r--r--testing/virter/update-mockery.patch19
-rw-r--r--testing/virtme-ng/APKBUILD22
-rw-r--r--testing/virtualgl/APKBUILD61
-rw-r--r--testing/virtualgl/install.patch13
-rw-r--r--testing/visidata/APKBUILD44
-rw-r--r--testing/visidata/devendor-appdirs.patch26
-rw-r--r--testing/visidata/sh-default.patch13
-rw-r--r--testing/visidata/use-importlib.patch25
-rw-r--r--testing/visurf/APKBUILD42
-rw-r--r--testing/vit/APKBUILD32
-rw-r--r--testing/vivid/APKBUILD33
-rw-r--r--testing/vixl/0001-vixl-Meson-support.patch814
-rw-r--r--testing/vixl/APKBUILD33
-rw-r--r--testing/vkbasalt/APKBUILD45
-rw-r--r--testing/vlang/APKBUILD61
-rw-r--r--testing/vmtouch/APKBUILD27
-rw-r--r--testing/voikko-fi/APKBUILD24
-rw-r--r--testing/volatility3/APKBUILD27
-rw-r--r--testing/volumeicon/APKBUILD34
-rw-r--r--testing/vpnc/APKBUILD38
-rw-r--r--testing/vpnc/vpnc.confd4
-rw-r--r--testing/vpnc/vpnc.initd103
-rw-r--r--testing/vtk/APKBUILD55
-rw-r--r--testing/vtk/fix-build.patch20
-rw-r--r--testing/vtk/pthreads_declaration.patch11
-rw-r--r--testing/vym/APKBUILD38
-rw-r--r--testing/w_scan2/APKBUILD6
-rw-r--r--testing/wabt/APKBUILD77
-rw-r--r--testing/waffle/APKBUILD30
-rw-r--r--testing/waifu2x-converter-cpp/APKBUILD35
-rw-r--r--testing/wait4x/APKBUILD26
-rw-r--r--testing/warp-s3/APKBUILD34
-rw-r--r--testing/warpinator/APKBUILD71
-rw-r--r--testing/warzone2100/APKBUILD72
-rw-r--r--testing/warzone2100/samurai.patch13
-rw-r--r--testing/wasmtime/APKBUILD74
-rw-r--r--testing/wasmtime/system-zstd.patch67
-rw-r--r--testing/watchbind/APKBUILD36
-rw-r--r--testing/watchdog/APKBUILD34
-rw-r--r--testing/watchexec/APKBUILD37
-rw-r--r--testing/watchman/APKBUILD35
-rw-r--r--testing/watchman/Replaced-memset-calls-with-appropriate-C++11-init-or-assignment.patch482
-rw-r--r--testing/watchman/e77eb9597c4c094a0b0bbeef0b957b49b40b87eb.patch48
-rw-r--r--testing/watchmate/APKBUILD52
-rw-r--r--testing/watershot/APKBUILD47
-rw-r--r--testing/watershot/cargo-features.patch364
-rw-r--r--testing/way-displays/APKBUILD31
-rw-r--r--testing/wayfire-plugins-extra/APKBUILD33
-rw-r--r--testing/wayfire/APKBUILD24
-rw-r--r--testing/wayfire/wayfire.post-install10
-rw-r--r--testing/waylevel/APKBUILD42
-rw-r--r--testing/waylock/APKBUILD41
-rw-r--r--testing/waylock/pam-base-auth.patch7
-rw-r--r--testing/waynergy/APKBUILD35
-rw-r--r--testing/waypipe/APKBUILD35
-rw-r--r--testing/wayqt/APKBUILD35
-rw-r--r--testing/wayvnc/APKBUILD26
-rw-r--r--testing/wazero/APKBUILD39
-rw-r--r--testing/wazero/debug-test-path.patch14
-rw-r--r--testing/wbg/APKBUILD34
-rw-r--r--testing/wch-isp/APKBUILD30
-rw-r--r--testing/wcm/APKBUILD15
-rw-r--r--testing/websocat/APKBUILD26
-rw-r--r--testing/websocketd/APKBUILD24
-rw-r--r--testing/websocketd/make.patch33
-rw-r--r--testing/websockify/APKBUILD21
-rw-r--r--testing/weex/APKBUILD41
-rw-r--r--testing/weggli/APKBUILD34
-rw-r--r--testing/welle-io/APKBUILD66
-rw-r--r--testing/wesnoth/APKBUILD37
-rw-r--r--testing/wf-config/APKBUILD17
-rw-r--r--testing/wf-shell/APKBUILD34
-rw-r--r--testing/wf-shell/wf-shell.post-install8
-rw-r--r--testing/wgcf/APKBUILD47
-rw-r--r--testing/wget2/APKBUILD64
-rw-r--r--testing/whipper/APKBUILD37
-rw-r--r--testing/wiimms-iso-tools/APKBUILD32
-rw-r--r--testing/wiimms-iso-tools/wiimms-iso-tools.patch46
-rw-r--r--testing/wiimms-szs-tools/APKBUILD32
-rw-r--r--testing/wiimms-szs-tools/wiimms-szs-tools.patch77
-rw-r--r--testing/wiki-tui/APKBUILD41
-rw-r--r--testing/windowmaker/APKBUILD37
-rw-r--r--testing/wine-mono/APKBUILD16
-rw-r--r--testing/wine-staging/APKBUILD175
-rw-r--r--testing/wine-staging/rpath.patch57
-rw-r--r--testing/winetricks/APKBUILD12
-rw-r--r--testing/wireguard-go/APKBUILD16
-rw-r--r--testing/wiremapper/APKBUILD26
-rw-r--r--testing/wiringx/APKBUILD16
-rw-r--r--testing/witchery/APKBUILD31
-rw-r--r--testing/witchery/correct-install-location.patch9
-rw-r--r--testing/wk-adblock/APKBUILD43
-rw-r--r--testing/wk-adblock/cargo-lock.patch1062
-rw-r--r--testing/wk-adblock/webkit2gtk-4.1.patch13
-rw-r--r--testing/wl-clipboard-x11/APKBUILD11
-rw-r--r--testing/wl-gammarelay/APKBUILD29
-rw-r--r--testing/wlavu/APKBUILD30
-rw-r--r--testing/wlclock/APKBUILD33
-rw-r--r--testing/wlopm/APKBUILD26
-rw-r--r--testing/wlrobs/APKBUILD43
-rw-r--r--testing/wlroots0.12/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch51
-rw-r--r--testing/wlroots0.12/APKBUILD52
-rw-r--r--testing/wlroots0.15/0001-wlr_output_commit_state_clear_back_buffer.patch30
-rw-r--r--testing/wlroots0.15/APKBUILD57
-rw-r--r--testing/wlvncc/APKBUILD49
-rw-r--r--testing/wmctrl/APKBUILD37
-rw-r--r--testing/wmctrl/fix-x86_64.patch33
-rw-r--r--testing/wmi-client/APKBUILD3
-rw-r--r--testing/wmutils/APKBUILD8
-rw-r--r--testing/wob/APKBUILD32
-rw-r--r--testing/wofi/APKBUILD30
-rw-r--r--testing/wok/APKBUILD12
-rw-r--r--testing/wol/0001-musl-fixes.patch17
-rw-r--r--testing/wol/APKBUILD50
-rw-r--r--testing/wolfssh/APKBUILD54
-rw-r--r--testing/woodpecker/0001-we-use-the-prebuild-webui.patch25
-rw-r--r--testing/woodpecker/APKBUILD74
-rw-r--r--testing/woodpecker/fix-cgo.patch53
-rw-r--r--testing/woodpecker/woodpecker.conf8
-rw-r--r--testing/woodpecker/woodpecker.confd4
-rw-r--r--testing/woodpecker/woodpecker.initd22
-rw-r--r--testing/woodpecker/woodpecker.pre-install6
-rw-r--r--testing/wordgrinder/APKBUILD11
-rw-r--r--testing/wordgrinder/fixes-musl.patch28
-rw-r--r--testing/words/APKBUILD127
-rw-r--r--testing/wpa_actiond/APKBUILD19
-rw-r--r--testing/wpa_actiond/wait-for-three-failed-PONGs-before-disco.patch72
-rw-r--r--testing/wpaperd/APKBUILD52
-rw-r--r--testing/wpaperd/cargo-lock.patch11
-rw-r--r--testing/wput/APKBUILD22
-rw-r--r--testing/wqy-zenhei/44-wqy-zenhei.conf29
-rw-r--r--testing/wqy-zenhei/91-wqy-zenhei.conf24
-rw-r--r--testing/wqy-zenhei/APKBUILD37
-rw-r--r--testing/wroomd/APKBUILD44
-rw-r--r--testing/wroomd/de.abscue.obp.Wroomd.conf15
-rw-r--r--testing/wroomd/wroomd.initd11
-rw-r--r--testing/wshowkeys/APKBUILD38
-rw-r--r--testing/wshowkeys/fix-protocol-error.patch23
-rw-r--r--testing/wsmancli/APKBUILD6
-rw-r--r--testing/wtfutil/APKBUILD34
-rw-r--r--testing/wys/APKBUILD39
-rw-r--r--testing/wys/wys.desktop11
-rw-r--r--testing/x11-calc/APKBUILD25
-rw-r--r--testing/x11docker/APKBUILD32
-rw-r--r--testing/x11docker/x11docker.post-install11
-rw-r--r--testing/xa/APKBUILD6
-rw-r--r--testing/xandikos/APKBUILD57
-rw-r--r--testing/xandikos/xandikos.confd25
-rw-r--r--testing/xandikos/xandikos.initd32
-rw-r--r--testing/xandikos/xandikos.pre-install6
-rw-r--r--testing/xboard/APKBUILD53
-rw-r--r--testing/xca/APKBUILD32
-rw-r--r--testing/xcaddy/APKBUILD33
-rw-r--r--testing/xcape/APKBUILD25
-rw-r--r--testing/xcompmgr/APKBUILD35
-rw-r--r--testing/xcur2png/APKBUILD35
-rw-r--r--testing/xdg-desktop-portal-hyprland/APKBUILD48
-rw-r--r--testing/xdg-desktop-portal-hyprland/use-system-installed-sdbus-c++.patch32
-rw-r--r--testing/xdg-desktop-portal-wlr/0001-core-fix-error-handling-in-main.patch51
-rw-r--r--testing/xdg-desktop-portal-wlr/APKBUILD30
-rw-r--r--testing/xdg-ninja/APKBUILD24
-rw-r--r--testing/xdg-user-dirs-gtk/APKBUILD33
-rw-r--r--testing/xdg-user-dirs-gtk/more-desktops.patch13
-rw-r--r--testing/xdg-user-dirs/APKBUILD32
-rw-r--r--testing/xed/APKBUILD53
-rw-r--r--testing/xendmail/APKBUILD40
-rw-r--r--testing/xf86-input-wacom/APKBUILD30
-rw-r--r--testing/xf86-video-vboxvideo/APKBUILD12
-rw-r--r--testing/xfce4-calculator-plugin/APKBUILD13
-rw-r--r--testing/xfce4-diskperf-plugin/APKBUILD46
-rw-r--r--testing/xfce4-docklike-plugin/APKBUILD36
-rw-r--r--testing/xfce4-fsguard-plugin/APKBUILD47
-rw-r--r--testing/xfce4-genmon-plugin/APKBUILD28
-rw-r--r--testing/xfce4-hamster-plugin/APKBUILD33
-rw-r--r--testing/xfce4-mailwatch-plugin/APKBUILD30
-rw-r--r--testing/xfce4-mixer/APKBUILD37
-rw-r--r--testing/xfce4-mpc-plugin/APKBUILD47
-rw-r--r--testing/xfce4-netload-plugin/APKBUILD46
-rw-r--r--testing/xfce4-panel-profiles/APKBUILD28
-rw-r--r--testing/xfce4-places-plugin/APKBUILD41
-rw-r--r--testing/xfce4-pulseaudio-plugin/APKBUILD30
-rw-r--r--testing/xfce4-sensors-plugin/APKBUILD33
-rw-r--r--testing/xfce4-smartbookmark-plugin/APKBUILD46
-rw-r--r--testing/xfce4-statusnotifier-plugin/APKBUILD33
-rw-r--r--testing/xfce4-stopwatch-plugin/APKBUILD32
-rw-r--r--testing/xfce4-stopwatch-plugin/plugindir.patch14
-rw-r--r--testing/xfce4-systemload-plugin/10-wrong-var-type-on-32bit.patch21
-rw-r--r--testing/xfce4-systemload-plugin/APKBUILD35
-rw-r--r--testing/xfce4-timer-plugin/APKBUILD31
-rw-r--r--testing/xfce4-verve-plugin/APKBUILD47
-rw-r--r--testing/xfd/APKBUILD8
-rw-r--r--testing/xfdashboard/APKBUILD27
-rw-r--r--testing/xfe/10-fix-build.patch7
-rw-r--r--testing/xfe/APKBUILD62
-rw-r--r--testing/xgalaga/APKBUILD51
-rw-r--r--testing/xgalaga/xgalaga-hyperspace.desktop11
-rw-r--r--testing/xgalaga/xgalaga-icon.xpm55
-rw-r--r--testing/xgalaga/xgalaga.desktop12
-rw-r--r--testing/xiccd/APKBUILD49
-rw-r--r--testing/xisxwayland/APKBUILD32
-rw-r--r--testing/xkb-switch/APKBUILD34
-rw-r--r--testing/xlhtml/APKBUILD34
-rw-r--r--testing/xload/APKBUILD17
-rw-r--r--testing/xmag/APKBUILD37
-rw-r--r--testing/xml2rfc/APKBUILD24
-rw-r--r--testing/xmp/APKBUILD38
-rw-r--r--testing/xmpp-dns/APKBUILD35
-rw-r--r--testing/xmppipe/APKBUILD29
-rw-r--r--testing/xmrig-proxy/APKBUILD27
-rw-r--r--testing/xmrig/APKBUILD32
-rw-r--r--testing/xob/APKBUILD31
-rw-r--r--testing/xone-src/APKBUILD42
-rw-r--r--testing/xone-src/modules-load.conf2
-rw-r--r--testing/xone-src/xone-src.post-install10
-rw-r--r--testing/xonotic-data/APKBUILD22
-rw-r--r--testing/xonotic/APKBUILD114
-rw-r--r--testing/xonotic/xonotic-glx.desktop11
-rw-r--r--testing/xonotic/xonotic-moncontrol.patch12
-rw-r--r--testing/xonotic/xonotic-sdl.desktop11
-rw-r--r--testing/xonsh/APKBUILD67
-rw-r--r--testing/xonsh/no-col.patch13
-rw-r--r--testing/xonsh/xonsh.post-install3
l---------testing/xonsh/xonsh.post-upgrade1
-rw-r--r--testing/xonsh/xonsh.pre-deinstall3
-rw-r--r--testing/xorgxrdp/APKBUILD30
-rw-r--r--testing/xosview/APKBUILD27
-rw-r--r--testing/xournal/APKBUILD37
-rw-r--r--testing/xournal/static-inline.patch56
-rw-r--r--testing/xplr/APKBUILD60
-rw-r--r--testing/xplr/modified-field-lua54.patch13
-rw-r--r--testing/xplr/remove-vendored-lua.patch48
-rw-r--r--testing/xremap-wlr/APKBUILD36
-rw-r--r--testing/xsane/0001-libpng15.patch30
-rw-r--r--testing/xsane/APKBUILD36
-rw-r--r--testing/xsecurelock/APKBUILD42
-rw-r--r--testing/xsel/APKBUILD40
-rw-r--r--testing/xsoldier/APKBUILD39
-rw-r--r--testing/xsoldier/xsoldier.desktop12
-rw-r--r--testing/xsoldier/xsoldier.xpm54
-rw-r--r--testing/xtensor/APKBUILD37
-rw-r--r--testing/xtitle/APKBUILD2
-rw-r--r--testing/xtl/APKBUILD37
-rw-r--r--testing/xva-img/APKBUILD8
-rw-r--r--testing/xvidtune/APKBUILD31
-rw-r--r--testing/xvkbd/APKBUILD11
-rw-r--r--testing/xwaylandvideobridge/APKBUILD50
-rw-r--r--testing/yaegi/APKBUILD45
-rw-r--r--testing/yafic/APKBUILD39
-rw-r--r--testing/yafic/openssl-1.1.patch136
-rw-r--r--testing/yamkix/APKBUILD49
-rw-r--r--testing/yara/APKBUILD39
-rw-r--r--testing/yara/remove-test-rules.patch21
-rw-r--r--testing/yarr/APKBUILD44
-rwxr-xr-xtesting/yarr/yarr.confd12
-rwxr-xr-xtesting/yarr/yarr.initd17
-rwxr-xr-xtesting/yarr/yarr.pre-install6
-rw-r--r--testing/yaru-common/APKBUILD334
-rw-r--r--testing/yass/APKBUILD31
-rw-r--r--testing/yass/build.xml24
-rw-r--r--testing/yass/yass3
-rw-r--r--testing/yazi/APKBUILD50
-rw-r--r--testing/yazi/system-lua.patch154
-rw-r--r--testing/ydcv/APKBUILD15
-rw-r--r--testing/yices2/APKBUILD44
-rw-r--r--testing/yodl/APKBUILD2
-rw-r--r--testing/yoe-kiosk-browser/APKBUILD28
-rw-r--r--testing/yoshimi/APKBUILD44
-rw-r--r--testing/yosys/APKBUILD74
-rw-r--r--testing/youki/APKBUILD52
-rw-r--r--testing/youtube-tui/APKBUILD28
-rw-r--r--testing/youtube-viewer/APKBUILD49
-rw-r--r--testing/ytmdl/APKBUILD61
-rw-r--r--testing/ytop/APKBUILD22
-rw-r--r--testing/ytt/0001-e2e-tests.patch24
-rw-r--r--testing/ytt/APKBUILD67
-rw-r--r--testing/yubico-piv-tool/APKBUILD34
-rw-r--r--testing/yubikey-agent/APKBUILD28
-rw-r--r--testing/z/APKBUILD8
-rw-r--r--testing/zafiro-icon-theme/APKBUILD15
-rw-r--r--testing/zapret/APKBUILD49
-rw-r--r--testing/zapret/zapret.confd5
-rw-r--r--testing/zapret/zapret.initd52
-rw-r--r--testing/zapret/zapret.pre-install5
-rw-r--r--testing/zaproxy/APKBUILD37
-rw-r--r--testing/zarchive/APKBUILD36
-rw-r--r--testing/zarf/APKBUILD32
-rw-r--r--testing/zathura-cb/APKBUILD34
-rw-r--r--testing/zathura-pdf-mupdf/APKBUILD31
-rw-r--r--testing/zathura-pdf-mupdf/c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch48
-rw-r--r--testing/zef/APKBUILD37
-rw-r--r--testing/zeitgeist/APKBUILD66
-rw-r--r--testing/zeitgeist/gettext_0.20.patch13
-rw-r--r--testing/zerofree/APKBUILD24
-rw-r--r--testing/zerofree/types.patch10
-rw-r--r--testing/zeromq-gsl/APKBUILD29
-rw-r--r--testing/zeromq-gsl/fix-makefile.patch33
-rw-r--r--testing/zfs-src/AKMBUILD18
-rw-r--r--testing/zfs-src/APKBUILD27
-rw-r--r--testing/zfsnap/APKBUILD48
-rw-r--r--testing/zig/APKBUILD79
-rw-r--r--testing/zig/zig.pre-upgrade11
-rw-r--r--testing/zile/APKBUILD44
-rw-r--r--testing/zim-tools/APKBUILD32
-rw-r--r--testing/zim/APKBUILD27
-rw-r--r--testing/zimg/APKBUILD59
-rw-r--r--testing/zimwriterfs/APKBUILD35
-rw-r--r--testing/zita-convolver/APKBUILD26
-rw-r--r--testing/zita-convolver/patch-Makefile.patch47
-rw-r--r--testing/zita-njbridge/APKBUILD25
-rw-r--r--testing/zita-resampler/APKBUILD13
-rw-r--r--testing/zita-resampler/patch-Makefile.patch38
-rw-r--r--testing/zkgroup/APKBUILD28
-rw-r--r--testing/zls/APKBUILD54
-rw-r--r--testing/znc-backlog/APKBUILD27
-rw-r--r--testing/znc-clientbuffer/APKBUILD25
-rw-r--r--testing/znc-playback/APKBUILD27
-rw-r--r--testing/znc-push/APKBUILD27
-rw-r--r--testing/zola/APKBUILD41
-rw-r--r--testing/zot/APKBUILD132
-rw-r--r--testing/zot/basename_patch10
-rw-r--r--testing/zot/bump-go-sqlite3.patch800
-rw-r--r--testing/zot/zot.confd10
-rw-r--r--testing/zot/zot.initd22
-rw-r--r--testing/zot/zot.pre-install6
-rw-r--r--testing/zrepl/APKBUILD65
-rw-r--r--testing/zrepl/zrepl.initd12
-rw-r--r--testing/zrepl/zrepl.yml12
-rw-r--r--testing/zsh-fast-syntax-highlighting/APKBUILD34
-rw-r--r--testing/zsh-fzf-tab/APKBUILD25
-rw-r--r--testing/zsh-histdb-skim/APKBUILD45
-rw-r--r--testing/zsh-history-substring-search/APKBUILD19
-rw-r--r--testing/zsh-manydots-magic/APKBUILD21
-rw-r--r--testing/zutty/APKBUILD37
-rw-r--r--testing/zycore/APKBUILD38
-rw-r--r--testing/zydis/APKBUILD42
7077 files changed, 277763 insertions, 139096 deletions
diff --git a/testing/3proxy/3proxy.initd b/testing/3proxy/3proxy.initd
index 337904dbab3..2a0328af2fd 100644
--- a/testing/3proxy/3proxy.initd
+++ b/testing/3proxy/3proxy.initd
@@ -1,29 +1,12 @@
#!/sbin/openrc-run
-#
-# Start 3proxy tiny proxy server.
-#
-
-CONFFILE=/etc/${SVCNAME}/${SVCNAME}.cfg
-PIDFILE=/var/run/${SVCNAME}.pid
+supervisor="supervise-daemon"
+command="/usr/bin/3proxy"
+CONFFILE=/etc/$SVCNAME/$SVCNAME.cfg
+command_args="$CONFFILE"
+command_user="$(id -u 3proxy):$(id -g 3proxy)"
+required_files="$CONFFILE"
depend() {
need net
}
-start() {
- if [ ! -f "${CONFFILE}" ]; then
- eerror "Configuration file ${CONFFILE} not found!"
- return 1
- fi
-
- ebegin "Starting 3proxy"
- start-stop-daemon --start --quiet --exec /usr/bin/3proxy --pidfile "${PIDFILE}" \
- -- --pidfile "${PIDFILE}" --user 3proxy.3proxy "${CONFFILE}" #2>/dev/null
- eend $?
-}
-
-stop() {
- ebegin "Stopping 3proxy"
- start-stop-daemon --stop --quiet --pidfile "${PIDFILE}"
- eend $?
-}
diff --git a/testing/3proxy/APKBUILD b/testing/3proxy/APKBUILD
index f7cda3a4904..1e6ff881022 100644
--- a/testing/3proxy/APKBUILD
+++ b/testing/3proxy/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: sillysausage <sillysausage@privatedemail.net>
# Maintainer:
pkgname=3proxy
-pkgver=0.8.13
+pkgver=0.9.4
pkgrel=0
pkgdesc="Really tiny cross-platform proxy servers set"
url="https://3proxy.ru"
@@ -13,7 +13,7 @@ options="!check" # No test suite
makedepends="linux-headers"
install="3proxy.pre-install"
subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/z3APA3A/3proxy/archive/$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/3proxy/3proxy/archive/$pkgver.tar.gz
$pkgname.initd
"
@@ -24,11 +24,14 @@ build() {
package() {
make -f Makefile.Linux DESTDIR="$pkgdir" prefix="/usr" install
install -Dm755 "$srcdir"/3proxy.initd "$pkgdir"/etc/init.d/3proxy
- mv "$pkgdir"/usr/etc/3proxy "$pkgdir"/etc/3proxy
+ mv "$pkgdir"/usr/local/3proxy/libexec/*.so "$pkgdir"/usr/lib/
+ rm -rf "$pkgdir"/usr/local
chown -R 3proxy:3proxy "$pkgdir"/etc/3proxy
install -Dm644 copying "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="94b4a2568917c1d720276e38050a13e144d3e92ff41edd02eeebac0a6c21e6a839a58ea7dcb3abc03370e0f18452c953cfd7ad15ebac87e66b78d94fa52fbd79 3proxy-0.8.13.tar.gz
-b3ae325013d37a021439bcacb42f5fa51440873b68ea8c42ef30d87df73d47c4426f7f96acf05c6e877f967c66d7ee65663889f8163dd5cf1ffec89344cb49c4 3proxy.initd"
+sha512sums="
+d3316f6ee1217e580ce593a7bfd9d76672487a89862f247373b0acf3ea207887c758168e33b25db9fc974063deab0826c20d455cab2536d03eee49d8bddda6b5 3proxy-0.9.4.tar.gz
+043fa5784623e29961ae92f5370598d420e55da6d04f6421b585ac050694982765d6b57ee0276a10738bc8ad0e49ddc4edf6ef288bb9c68e7da11b572066688e 3proxy.initd
+"
diff --git a/testing/6cord/6cord.post-install b/testing/6cord/6cord.post-install
deleted file mode 100644
index 6e6b1d74789..00000000000
--- a/testing/6cord/6cord.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-echo "Before start, please copy /usr/share/6cord/6cord.toml to ${XDG_CONFIG_HOME:-$HOME/.config}/6cord/6cord.toml!"
-echo "This way, you can customize the client to your fit."
diff --git a/testing/6cord/APKBUILD b/testing/6cord/APKBUILD
deleted file mode 100644
index cf36947069b..00000000000
--- a/testing/6cord/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname="6cord"
-pkgver="9.6"
-pkgrel=1
-pkgdesc="Discord TUI + SIXEL client"
-url="https://gitlab.com/diamondburned/6cord"
-arch="all !mips !mips64" # FTBFS on mips
-license="MPL-2.0"
-makedepends="go"
-install="$pkgname.post-install"
-source="https://gitlab.com/diamondburned/6cord/-/archive/stable-$pkgver/6cord-stable-$pkgver.tar.bz2"
-options="!check" # no testsuite
-builddir="$srcdir/6cord-stable-$pkgver"
-
-build() {
- go build -o bin/6cord
-}
-
-package() {
- install -Dm755 "$builddir"/bin/6cord \
- "$pkgdir"/usr/bin/6cord
- install -Dm755 "$builddir"/6cord.toml \
- "$pkgdir"/usr/share/$pkgname/6cord.toml
-}
-
-sha512sums="e41de615e6ed95ac269725ae3155b15218d627821977f0e2e98a075a7b0e83028fdc94d200bf86bdc8271aede43c775dddf493e48ace3f52cd297d3e09cdb2db 6cord-stable-9.6.tar.bz2"
diff --git a/testing/9base/APKBUILD b/testing/9base/APKBUILD
index 9279ad54a4d..ea56d9b5fed 100644
--- a/testing/9base/APKBUILD
+++ b/testing/9base/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Joshua Haase <hahj87@gmail.com>
# Maintainer: Joshua Haase <hahj87@gmail.com>
-pkgname="9base"
+pkgname=9base
pkgver=6
-pkgrel=0
+pkgrel=1
pkgdesc="A port of various Plan 9 tools for Unix."
url="https://tools.suckless.org/9base/"
-arch="all !armv7 !armhf !aarch64 !mips !mips64" # Needs arch specific config.mk
+arch="all !armv7 !armhf !aarch64" # Needs arch specific config.mk
license="MIT"
-makedepends="libucontext-dev linux-headers"
+makedepends="linux-headers"
subpackages="$pkgname-doc $pkgname-troff"
options="!check" # No test suite present
source="https://dl.suckless.org/tools/9base-$pkgver.tar.gz
@@ -15,8 +15,13 @@ source="https://dl.suckless.org/tools/9base-$pkgver.tar.gz
config.mk.i686
config.mk.s390x
config.mk.ppc64le
+ config.mk.riscv64
dirread.patch
- s390x.patch"
+ s390x.patch
+ riscv64.patch"
+
+# Fix build with gcc >= 10, too many definitions affected.
+export CFLAGS="$CFLAGS -fcommon"
prepare() {
default_prepare
@@ -42,14 +47,18 @@ troff() {
cd "$pkgdir"
mkdir -p "$subpkgdir/usr/lib/9base/bin"
mv "$pkgdir/usr/lib/9base/bin/troff" "$subpkgdir/usr/lib/9base/bin/troff"
- mkdir -p "$subpkgdir/usr/lib/9base/lib/troff"
+ mkdir -p "$subpkgdir/usr/lib/9base/lib"
mv "$pkgdir/usr/lib/9base/lib/troff" "$subpkgdir/usr/lib/9base/lib/troff"
}
-sha512sums="38108a94118b56c6f3982e692beb1068c52f9aecd74447d6b552b77fae5e365eab72b4781bdf07d9696ac89d54371c1cae8cc0363de510b53988302acef50dba 9base-6.tar.gz
+sha512sums="
+38108a94118b56c6f3982e692beb1068c52f9aecd74447d6b552b77fae5e365eab72b4781bdf07d9696ac89d54371c1cae8cc0363de510b53988302acef50dba 9base-6.tar.gz
3a30955d59ad78c1bc4e2fbd0f511eb85624ed48b0aeceef436e3456f685690e064eb1f171a2080a34a0fcb40d874277a282864c720c9e612eca3ad848dec35e config.mk.x86_64
7a58d4762c5ec9a0191f2cce15b23b2e60ec9445c357dc2e3925a5b4d5dec1c5eed6fb3565be07a25616c0c2b0768c21737b2d35082deb17bfc7a7f5f0c0d2a6 config.mk.i686
61e67a22abf8f7d3dbfadda92cf0836e8726ae8225939318d0bf34dc05b47a12dd41de895f7b5df515ba5cd783dae368cce98706366cc28360a1987b4e7c652c config.mk.s390x
dd0f9ff55e103fd16f689f01e41769cf6bc6370201e790bf64236570cda2d0e6ef2954f1b5798feb4ebd65fc1a0563ce71c8a9b7fb05166a8ff28ac8be472dfe config.mk.ppc64le
+d832d40601687068ac5c558db4e2d52cff25a0c7a04d0de0d2d4987015e60a0c3b9da8dc9f47e836ed2ee77fda991111a0a2039007d7803e85d6d62885d835c3 config.mk.riscv64
5b47647245366e786059a28747fe9a36fd87d9df2e1a7f68e9a41f4adb7ec96f230a9abe94acbe5f82d62f4f85b061ff7ab7356d32072dd9ef7f677379f456f5 dirread.patch
-f1f05e2a6081f2a451256de9af669e1ff1e82b6603b376677825421c11bd6ef22a8ab0eb89c15b0589252bada71b58214b6306127bdd379952203105f14e49e9 s390x.patch"
+f1f05e2a6081f2a451256de9af669e1ff1e82b6603b376677825421c11bd6ef22a8ab0eb89c15b0589252bada71b58214b6306127bdd379952203105f14e49e9 s390x.patch
+aec441bd768a969ff11774be6bf85413b61f45b9967f7720b7e8b5ef75ae6f834cf8f40177114c337c95e33f0b5a717685b54cd8a43b953cd2301616241abf33 riscv64.patch
+"
diff --git a/testing/9base/config.mk.riscv64 b/testing/9base/config.mk.riscv64
new file mode 100644
index 00000000000..6f61bb02110
--- /dev/null
+++ b/testing/9base/config.mk.riscv64
@@ -0,0 +1,24 @@
+# Customize to fit your system
+
+# paths
+PREFIX = /usr/lib/9base
+MANPREFIX = ${PREFIX}/share/man
+
+VERSION = 6
+#OBJTYPE = 386
+#OBJTYPE = arm
+OBJTYPE = riscv64
+
+# Linux/BSD
+#CFLAGS += -Wall -Wno-missing-braces -Wno-parentheses -Wno-switch -c -I. -DPREFIX="\"${PREFIX}\""
+CFLAGS += -c -I. -DPREFIX="\"${PREFIX}\""
+LDFLAGS += -static
+
+# Solaris
+#CFLAGS = -fast -xtarget=ultra -D__sun__ -c -I. -DPREFIX="\"${PREFIX}\""
+#LDFLAGS = -dn
+
+# compiler
+AR = ar rc
+CC = cc
+YACC = ../yacc/9yacc
diff --git a/testing/9base/riscv64.patch b/testing/9base/riscv64.patch
new file mode 100644
index 00000000000..24e83eb7ba3
--- /dev/null
+++ b/testing/9base/riscv64.patch
@@ -0,0 +1,13 @@
+Taken from the posix-riscv64 subdirectory in the community/drawterm source.
+
+diff -uNr 9base-6-orig/lib9/getcallerpc-riscv64.c 9base-6/lib9/getcallerpc-riscv64.c
+--- 9base-6-orig/lib9/getcallerpc-riscv64.c 1970-01-01 01:00:00.000000000 +0100
++++ 9base-6/lib9/getcallerpc-riscv64.c 2021-07-04 16:39:04.452113924 +0200
+@@ -0,0 +1,7 @@
++#include <lib9.h>
++
++ulong
++getcallerpc(void *x)
++{
++ return ((uintptr*)x)[-1];
++}
diff --git a/testing/a2jmidid/APKBUILD b/testing/a2jmidid/APKBUILD
new file mode 100644
index 00000000000..37af43e5496
--- /dev/null
+++ b/testing/a2jmidid/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=a2jmidid
+pkgver=9
+pkgrel=3
+pkgdesc="ALSA sequencer to JACK MIDI bridging"
+url="https://github.com/jackaudio/a2jmidid"
+arch="all"
+license="GPL-2.0-or-later"
+depends="py3-dbus"
+makedepends="meson jack-dev alsa-lib-dev dbus-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jackaudio/a2jmidid/archive/$pkgver.tar.gz
+ check-for-libc-backtrace.patch
+ riscv.patch"
+options="!check" # No testsuite
+
+build() {
+ abuild-meson . build
+ meson compile -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+5bd13b6904ed68c5bfe40ca516fd49b7eb4d4a946b9908ee04687265848734c8e1a81579f0f1a5bd0752595be8858dc748da10487b7f366394c09a5ffc7d5e5c a2jmidid-9.tar.gz
+0639c8f2070a8af2872a073c255f0d4dca709363457c726fc0824a6574ca479a78a079a2f71dac18b2f0fa738a8f96ce261984a88687ad804f45a0aad81a869f check-for-libc-backtrace.patch
+4664c339daf6e4342ff42ed884fe2b4e57c7ad08c86ac5b01ac928be35e6b143f9816736df9845a2c95855001249af7187aefdefc680176e9286c2e82064758a riscv.patch
+"
diff --git a/testing/a2jmidid/check-for-libc-backtrace.patch b/testing/a2jmidid/check-for-libc-backtrace.patch
new file mode 100644
index 00000000000..774914cf6be
--- /dev/null
+++ b/testing/a2jmidid/check-for-libc-backtrace.patch
@@ -0,0 +1,34 @@
+Check if libc supports error backtracing from execinfo.h before attempting
+to use it (musl does not support this).
+--- a2jmidid-9/sigsegv.c
++++ a2jmidid-9/sigsegv.c
+@@ -28,7 +28,9 @@
+ #include <signal.h>
+ #include <ucontext.h>
+ #include <dlfcn.h>
++#ifdef LIBC_HAS_BACKTRACE
+ #include <execinfo.h>
++#endif
+ #include <errno.h>
+ #ifndef NO_CPP_DEMANGLE
+ //#include <cxxabi.h>
+@@ -148,12 +150,14 @@
+ bp = (void**)bp[0];
+ }
+ #else
+- a2j_error("Stack trace (non-dedicated):");
+- sz = backtrace(bt, 20);
+- strings = backtrace_symbols(bt, sz);
++ #ifdef LIBC_HAS_BACKTRACE
++ a2j_error("Stack trace (non-dedicated):");
++ sz = backtrace(bt, 20);
++ strings = backtrace_symbols(bt, sz);
+
+- for(i = 0; i < sz; ++i)
+- a2j_error("%s", strings[i]);
++ for(i = 0; i < sz; ++i)
++ a2j_error("%s", strings[i]);
++ #endif
+ #endif
+ a2j_error("End of stack trace");
+ exit (-1);
diff --git a/testing/a2jmidid/riscv.patch b/testing/a2jmidid/riscv.patch
new file mode 100644
index 00000000000..705ed7741fd
--- /dev/null
+++ b/testing/a2jmidid/riscv.patch
@@ -0,0 +1,12 @@
+diff -upr a2jmidid-9.orig/sigsegv.c a2jmidid-9/sigsegv.c
+--- a2jmidid-9.orig/sigsegv.c 2021-07-11 11:43:22.326350510 +0200
++++ a2jmidid-9/sigsegv.c 2021-07-11 11:43:34.907756185 +0200
+@@ -91,7 +91,7 @@ static void signal_segv(int signum, sigi
+ a2j_error("info.si_errno = %d", info->si_errno);
+ a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]);
+ a2j_error("info.si_addr = %p", info->si_addr);
+-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__)
++#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) && !defined(__riscv)
+ for(i = 0; i < NGREG; i++)
+ a2j_error("reg[%02d] = 0x" REGFORMAT, i,
+ #if defined(__powerpc__) && !defined(__powerpc64__)
diff --git a/testing/abc/APKBUILD b/testing/abc/APKBUILD
new file mode 100644
index 00000000000..8252fcbda40
--- /dev/null
+++ b/testing/abc/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=abc
+pkgver=0_git20240102
+_commit=8c7327b8df411654b7d38ccb678c500049fc2b5b
+pkgrel=0
+_abc=896e5e7
+pkgdesc="System for Sequential Logic Synthesis and Formal Verification"
+url="https://github.com/berkeley-abc/abc"
+arch="all"
+license="MIT"
+makedepends="
+ readline-dev
+ "
+source="https://github.com/berkeley-abc/abc/archive/$_commit/abc-$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit/"
+options="!check" # current yosys employee confirmed those dont work
+
+build() {
+ make ABC_USE_PIC=1 abc
+}
+
+package() {
+ install -Dm755 abc -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+17532541730dccc14819c4087ae8c3582f32ec26bc3a572be3caafa08b3a8519e47fa272ecbbeda3ca061fce75c7e87b30a76633ef5c15b76e922e0574fb5016 abc-8c7327b8df411654b7d38ccb678c500049fc2b5b.tar.gz
+"
diff --git a/testing/ace-of-penguins/APKBUILD b/testing/ace-of-penguins/APKBUILD
new file mode 100644
index 00000000000..db0c9fd3f7a
--- /dev/null
+++ b/testing/ace-of-penguins/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Keith Toh <ktprograms@gmail.com>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=ace-of-penguins
+pkgver=1.4
+pkgrel=2
+pkgdesc="Collection of one-player games for X"
+url="https://www.delorie.com/store/ace/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="libpng-dev libx11-dev libxpm-dev zlib-dev"
+subpackages="$pkgname-doc"
+# .desktop files were taken from ace-of-penguins AUR files, with slight
+# modifications.
+# https://aur.archlinux.org/packages/ace-of-penguins
+source="https://www.delorie.com/store/ace/ace-$pkgver.tar.gz
+ ace.patch
+ fix-font.patch
+ canfield.desktop
+ freecell.desktop
+ golf.desktop
+ mastermind.desktop
+ merlin.desktop
+ minesweeper.desktop
+ pegged.desktop
+ penguins.desktop
+ solitaire.desktop
+ spider.desktop
+ taipei-editor.desktop
+ taipei.desktop
+ thornq.desktop
+ "
+builddir="$srcdir/ace-$pkgver"
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir"/usr/lib/libcards.a
+ install -Dm644 docs/*.* -t "$pkgdir"/usr/share/doc/ace-of-penguins/
+ install -Dm644 "$srcdir"/*.desktop -t "$pkgdir"/usr/share/applications/
+}
+
+sha512sums="
+cd382db95dc17d75a76809c7f1e096e14f5863c1166aa5db7f93204ce949a9ed21979212946b9d3a09667f4a93b30f4cc44a220940f9b5dd8996f28ecb4a6dcc ace-1.4.tar.gz
+6846662deda4c21a89ecaf55afe1580f82f67122f236618a94dcd584cd3a5a76d0429c9bd4ac808e29d04ae78ab9cf9417e274585f87af46a0a769af4917f509 ace.patch
+b3cd34677326d4b9e47875698aa1bca6985231e1f0e14dc9acdb815c443f767f1199dbd8dd0c72a3aaa2eba62e35c3473a60acaab7c606d848c6cbdb854d3487 fix-font.patch
+4ba6813cb57d2ed41ee8a582b4cc3026a9f69d4c78ee5a012cdcb3284efee0b3efb04917ad2bd9fb4846b7007cce4bfef7e5e9bd8e91c229b4ed31d077f4f10b canfield.desktop
+3f0b3a55af0df885d23fcd73764e0548b7f7d0e25eb881ee1e24d108dd51a234e4140d37a6c616bc39dc2eb70aeeb0f370a1c0ef0ec3314ffb4a07ab89e0b005 freecell.desktop
+d76332b739d938ed29ad30f41baaddff6efa70e674aa7354f60b342f828d470212bebacb2a02f6921b8740a616b97b97002455eb153555d7350ffab3ea7b670a golf.desktop
+24adc08aa52625c25d6315160f45ce3ded0b733238c09aff1764c39f5e95229bff7da70757318048c703faf120a273127bc965ae462bb0b47460f5cf1a4607da mastermind.desktop
+d235d731fc8d3e43537a0e16d61c62f032cb78ce341279af36c4bdd7e7f7101d12ffd04d767ecd51cc6b6e993b46694b09abebb45631cd16a175013f65dc6329 merlin.desktop
+8015901cd23d17b19daa62cc2f2f9d377b9af37d5099b651e9ff0f07af07262b65ac81cb84a6d672f429a2bf0e69ab11f7376e90fcafe11dd977b58901152cf4 minesweeper.desktop
+70f86cb3919c6f5627fcd86fef5812bdeb5370cc0eab47530912ef4c1a300865b204b5091ce1fc0bd51b857996a9fff795c1847c8d48daa8f80ddabd6a7c5521 pegged.desktop
+a224aed5a4ffb26f84d892285559767da203542e8610d06a39562bb491458ffacba834191f7970cb5d868f302bfd242a3db8dcb4659c368081cf81e45179bd92 penguins.desktop
+d51a8657471729a7fabd85a88aa90b6cb2598a078c9880bb945ada923eaa9340ba82a22d2f8a477fd84201a9282d1667c24d043989d8fd24a3d04a75c89e3ef2 solitaire.desktop
+8a9fa45b275acccb78a52db218d424abc71af2f3aa1ae5f8a197a5685a48ed08a90b57225f563ae430211ebadb5f63217650fc2b5cff5a7b4e6abdb9757f6202 spider.desktop
+8c5c81bd806b3a453c2480bf6a3cc83f532c99c9ee439a906ee1eccaf908380d83441ad538179ca9c9fa9f3fd6d5c0de1a97a09794ec5df470e6a1f8baf3c181 taipei-editor.desktop
+7930c8af3def8f0d1ff9f8e0a2fcdc8d953eeb2699c4bf5dde794e862ddf616a9d86b202f1e7b9a8507b7e898721a62b3edafa59d9c27d0d4ce73fc89fcbb0f3 taipei.desktop
+b8a84c7aa1fca593a604e936e9500939a92a3278252ebf86ad3d1b168ead4ec9e6319f37c81e74d8d577b4bae647ce2238dafb57550ca8d7fea66fc5d5aa5c7d thornq.desktop
+"
diff --git a/testing/ace-of-penguins/ace.patch b/testing/ace-of-penguins/ace.patch
new file mode 100644
index 00000000000..3728795c6c8
--- /dev/null
+++ b/testing/ace-of-penguins/ace.patch
@@ -0,0 +1,76 @@
+Some patches have been taken from the ace-of-penguins AUR package.
+https://aur.archlinux.org/cgit/aur.git/tree/ace14_fixes.patch?h=ace-of-penguins
+
+diff -Naur ace-1.4/config.guess ace-1.4-alpine/config.guess
+--- ace-1.4/config.guess 2012-03-24 18:00:49.000000000 +0000
++++ ace-1.4-alpine/config.guess 2021-12-19 21:36:35.650013257 +0000
+@@ -882,6 +882,9 @@
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ fi
+ exit ;;
++ aarch64*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+@@ -950,7 +953,7 @@
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+- ppc64:Linux:*:*)
++ ppc64*:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+diff -Naur ace-1.4/lib/Makefile.am ace-1.4-alpine/lib/Makefile.am
+--- ace-1.4/lib/Makefile.am 2012-03-24 18:00:49.000000000 +0000
++++ ace-1.4-alpine/lib/Makefile.am 2021-12-19 21:36:12.876679139 +0000
+@@ -6,7 +6,7 @@
+ CLEANFILES = images.c images.d
+
+ INCLUDES = $(X_CFLAGS) @PDA@
+-AM_LDFLAGS = $(X_LIBS)
++AM_LDFLAGS = $(X_LIBS) -lpng -lz -lm
+
+ BUILD_CC = @BUILD_CC@
+ AR = @AR@
+diff -Naur ace-1.4/lib/make-imglib.c ace-1.4-alpine/lib/make-imglib.c
+--- ace-1.4/lib/make-imglib.c 2012-03-24 18:00:49.000000000 +0000
++++ ace-1.4-alpine/lib/make-imglib.c 2021-12-19 21:36:12.876679139 +0000
+@@ -86,7 +86,7 @@
+ png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, 0, 0, 0);
+ info_ptr = png_create_info_struct (png_ptr);
+
+- if (setjmp (png_ptr->jmpbuf)) {
++ if (setjmp (png_jmpbuf (png_ptr))) {
+ fclose (f);
+ continue;
+ }
+diff -Naur ace-1.4/lib/xwin.c ace-1.4-alpine/lib/xwin.c
+--- ace-1.4/lib/xwin.c 2012-03-24 18:00:49.000000000 +0000
++++ ace-1.4-alpine/lib/xwin.c 2021-12-19 21:36:12.876679139 +0000
+@@ -55,7 +55,6 @@
+ { "-visual", OPTION_INTEGER, &visual_id },
+ { 0, 0, 0 }
+ };
+-OptionDesc *xwin_options = xwin_options_list;
+
+ Display *display=0;
+ int screen=0;
+@@ -841,13 +840,13 @@
+ png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, 0, 0, 0);
+ info_ptr = png_create_info_struct (png_ptr);
+
+- if (setjmp (png_ptr->jmpbuf)) {
++ if (setjmp (png_jmpbuf (png_ptr))) {
+ fprintf(stderr, "Invalid PNG image!\n");
+ return;
+ }
+
+ file_bytes = src->file_data;
+- png_set_read_fn (png_ptr, (voidp)&file_bytes, (png_rw_ptr)png_reader);
++ png_set_read_fn (png_ptr, &file_bytes, (png_rw_ptr)png_reader);
+
+ png_read_info (png_ptr, info_ptr);
+
diff --git a/testing/ace-of-penguins/canfield.desktop b/testing/ace-of-penguins/canfield.desktop
new file mode 100644
index 00000000000..d302a7a76c4
--- /dev/null
+++ b/testing/ace-of-penguins/canfield.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Canfield
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/canfield
+Terminal=false
+Categories=Game;BoardGame;
diff --git a/testing/ace-of-penguins/fix-font.patch b/testing/ace-of-penguins/fix-font.patch
new file mode 100644
index 00000000000..6326dc917b2
--- /dev/null
+++ b/testing/ace-of-penguins/fix-font.patch
@@ -0,0 +1,24 @@
+Without this patch, trying to open the help screen could make the program
+segfault if the appropriate fonts weren't installed.
+
+--- ace-1.4/lib/help.c 2022-02-17 03:11:56.410174316 +0000
++++ ace-1.4-alpine/lib/help.c 2022-02-17 03:46:31.476912695 +0000
+@@ -179,7 +179,18 @@
+ for (i=0; i<17; i++)
+ {
+ if (!fonts[i])
++ {
+ fonts[i] = XLoadQueryFont(display, i & STYLE_TT ? "fixed" : "variable");
++ if (!fonts[i])
++ {
++ int count;
++ char **fontlist = XListFonts(display, "*", 1, &count);
++ if (count == 0)
++ abort();
++ fonts[i] = XLoadQueryFont(display, fontlist[0]);
++ XFreeFontNames(fontlist);
++ }
++ }
+ thin_space[i] = XTextWidth(fonts[i], " ", 1);
+ }
+ for (i=0; i<NTAGS; i++)
diff --git a/testing/ace-of-penguins/freecell.desktop b/testing/ace-of-penguins/freecell.desktop
new file mode 100644
index 00000000000..c698869b18b
--- /dev/null
+++ b/testing/ace-of-penguins/freecell.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Freecell
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/freecell
+Terminal=false
+Categories=Game;CardGame;
diff --git a/testing/ace-of-penguins/golf.desktop b/testing/ace-of-penguins/golf.desktop
new file mode 100644
index 00000000000..d4ea7c026dd
--- /dev/null
+++ b/testing/ace-of-penguins/golf.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Golf
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/golf
+Terminal=false
+Categories=Game;CardGame;
diff --git a/testing/ace-of-penguins/mastermind.desktop b/testing/ace-of-penguins/mastermind.desktop
new file mode 100644
index 00000000000..494f3a3c113
--- /dev/null
+++ b/testing/ace-of-penguins/mastermind.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Mastermind
+GenericName=
+Comment=Guess a secret combination of colors
+Icon=
+Exec=/usr/bin/mastermind
+Terminal=false
+Categories=Game;LogicGame;
diff --git a/testing/ace-of-penguins/merlin.desktop b/testing/ace-of-penguins/merlin.desktop
new file mode 100644
index 00000000000..1cf45b40518
--- /dev/null
+++ b/testing/ace-of-penguins/merlin.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Merlin
+GenericName=
+Comment=Classical puzzle
+Icon=
+Exec=/usr/bin/merlin
+Terminal=false
+Categories=Game;LogicGame;
diff --git a/testing/ace-of-penguins/minesweeper.desktop b/testing/ace-of-penguins/minesweeper.desktop
new file mode 100644
index 00000000000..55c2f752477
--- /dev/null
+++ b/testing/ace-of-penguins/minesweeper.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Minesweeper
+GenericName=
+Comment=Find all hidden mines in a minefield
+Icon=
+Exec=/usr/bin/minesweeper
+Terminal=false
+Categories=Game;LogicGame;
diff --git a/testing/ace-of-penguins/pegged.desktop b/testing/ace-of-penguins/pegged.desktop
new file mode 100644
index 00000000000..d04338a2504
--- /dev/null
+++ b/testing/ace-of-penguins/pegged.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Pegged
+GenericName=
+Comment=Classical board game
+Icon=
+Exec=/usr/bin/pegged
+Terminal=false
+Categories=Game;LogicGame;
diff --git a/testing/ace-of-penguins/penguins.desktop b/testing/ace-of-penguins/penguins.desktop
new file mode 100644
index 00000000000..5435826c3b8
--- /dev/null
+++ b/testing/ace-of-penguins/penguins.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Penguins
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/penguins
+Terminal=false
+Categories=Game;CardGame;
diff --git a/testing/ace-of-penguins/solitaire.desktop b/testing/ace-of-penguins/solitaire.desktop
new file mode 100644
index 00000000000..ace3939c2f6
--- /dev/null
+++ b/testing/ace-of-penguins/solitaire.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Solitaire
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/solitaire
+Terminal=false
+Categories=Game;CardGame;
diff --git a/testing/ace-of-penguins/spider.desktop b/testing/ace-of-penguins/spider.desktop
new file mode 100644
index 00000000000..b4bd4e587c8
--- /dev/null
+++ b/testing/ace-of-penguins/spider.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Spider
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/spider
+Terminal=false
+Categories=Game;BoardGame;
diff --git a/testing/ace-of-penguins/taipei-editor.desktop b/testing/ace-of-penguins/taipei-editor.desktop
new file mode 100644
index 00000000000..7de2984abe6
--- /dev/null
+++ b/testing/ace-of-penguins/taipei-editor.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Taipei Editor
+GenericName=
+Comment=Editor for your own Taipei levels
+Icon=
+Exec=/usr/bin/taipedit
+Terminal=false
+Categories=Game;BoardGame;
diff --git a/testing/ace-of-penguins/taipei.desktop b/testing/ace-of-penguins/taipei.desktop
new file mode 100644
index 00000000000..e862d4d53ea
--- /dev/null
+++ b/testing/ace-of-penguins/taipei.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Taipei
+GenericName=
+Comment=Asian puzzle: remove pairs of equal stones
+Icon=
+Exec=/usr/bin/taipei
+Terminal=false
+Categories=Game;BoardGame;
diff --git a/testing/ace-of-penguins/thornq.desktop b/testing/ace-of-penguins/thornq.desktop
new file mode 100644
index 00000000000..4d83f3af55e
--- /dev/null
+++ b/testing/ace-of-penguins/thornq.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=Thornq
+GenericName=
+Comment=Solitary card game
+Icon=
+Exec=/usr/bin/thornq
+Terminal=false
+Categories=Game;CardGame;
diff --git a/testing/acme-redirect/APKBUILD b/testing/acme-redirect/APKBUILD
deleted file mode 100644
index 1edc0f108fa..00000000000
--- a/testing/acme-redirect/APKBUILD
+++ /dev/null
@@ -1,64 +0,0 @@
-# Contributor: kpcyrd <git@rxv.cc>
-# Maintainer: kpcyrd <git@rxv.cc>
-pkgname=acme-redirect
-pkgver=0.4.0
-pkgrel=0
-pkgdesc="Tiny http daemon that answers acme challenges and redirects everything else to https"
-url="https://github.com/kpcyrd/acme-redirect"
-arch="x86_64 armhf armv7" # limited by cargo
-license="GPL-3.0-or-later"
-makedepends="
- cargo
- openssl-dev
- scdoc
- "
-subpackages="$pkgname-doc
- $pkgname-openrc
- $pkgname-bash-completion
- $pkgname-zsh-completion
- $pkgname-fish-completion
- "
-install="$pkgname.pre-install"
-options="net"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kpcyrd/acme-redirect/archive/v$pkgver.tar.gz"
-
-build() {
- cargo build --release --locked
-
- mkdir -p completions
- "target/release/acme-redirect" completions bash > completions/acme-redirect.bash
- "target/release/acme-redirect" completions zsh > completions/_acme-redirect
- "target/release/acme-redirect" completions fish > completions/acme-redirect.fish
-
- make docs
-}
-
-check() {
- cargo test --release --locked
-}
-
-package() {
- install -Dm755 "$builddir/target/release/acme-redirect" -t "$pkgdir/usr/bin"
-
- install -Dm755 "$builddir/contrib/openrc/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
- install -Dm755 "$builddir/contrib/cron/acme-redirect.cron" \
- "$pkgdir"/etc/periodic/daily/acme-redirect
-
- install -Dm644 "$builddir/contrib/confs/acme-redirect.conf" -t "$pkgdir/etc"
- install -Dm644 "$builddir/contrib/confs/certs.d/example.com.conf" "$pkgdir/etc/acme-redirect.d/example.com.conf.sample"
-
- install -Dm644 -t "$pkgdir/usr/share/man/man1" \
- "$builddir/contrib/docs/acme-redirect.1"
- install -Dm644 -t "$pkgdir/usr/share/man/man5" \
- "$builddir/contrib/docs/acme-redirect.conf.5" \
- "$builddir/contrib/docs/acme-redirect.d.5"
-
- install -Dm644 "$builddir/completions/acme-redirect.bash" \
- "$pkgdir/usr/share/bash-completion/completions/acme-redirect"
- install -Dm644 "$builddir/completions/_acme-redirect" \
- "$pkgdir/usr/share/zsh/site-functions/_acme-redirect"
- install -Dm644 "$builddir/completions/acme-redirect.fish" \
- "$pkgdir/usr/share/fish/completions/acme-redirect.fish"
-}
-
-sha512sums="726cb8a28e93743ff6bb28b3f134b11980ba7731ed18900602401e595c21ff7c51f935e0cca1a98f4e69cc08bdd8ca3f5437c4450c296313d631fa9df81f8fa1 acme-redirect-0.4.0.tar.gz"
diff --git a/testing/acme-redirect/acme-redirect.pre-install b/testing/acme-redirect/acme-redirect.pre-install
deleted file mode 100644
index 138ea113ba9..00000000000
--- a/testing/acme-redirect/acme-redirect.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S acme-redirect 2>/dev/null
-adduser -S -D -H -s /sbin/nologin -G acme-redirect -g acme-redirect acme-redirect 2>/dev/null
-
-exit 0
diff --git a/testing/acme-tiny/APKBUILD b/testing/acme-tiny/APKBUILD
new file mode 100644
index 00000000000..2ff92c9543d
--- /dev/null
+++ b/testing/acme-tiny/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-pypi, template 3
+# Contributor: Niklas Meyer <derlinkman@gmail.com>
+# Maintainer: Niklas Meyer <derlinkman@gmail.com>
+pkgname=acme-tiny
+pkgver=5.0.1
+pkgrel=2
+pkgdesc="A tiny script to issue and renew TLS certs from Let's Encrypt"
+url="https://pypi.org/project/acme-tiny/"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/a/acme-tiny/acme-tiny-$pkgver.tar.gz"
+options="!check" # tests are broken so we skip them
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+12940426b0fd9cce333ae400161ba371f2c05fdcbb7ac5931079e9b420a5504c89b35613678c9527333647a7ca2f5cfd4eb238ca7b762c5488b9dd98fb3e4731 acme-tiny-5.0.1.tar.gz
+"
diff --git a/testing/acmetool/APKBUILD b/testing/acmetool/APKBUILD
index 0524f2302d9..c96ccca8f19 100644
--- a/testing/acmetool/APKBUILD
+++ b/testing/acmetool/APKBUILD
@@ -1,58 +1,47 @@
# Contributor: kpcyrd <git@rxv.cc>
# Maintainer: kpcyrd <git@rxv.cc>
pkgname=acmetool
-pkgver=0.0.67
-pkgrel=2
+pkgver=0.2.2
+pkgrel=5
pkgdesc="An easy-to-use command line tool for automatically acquiring certificates from ACME servers (such as Let's Encrypt)"
-url="https://github.com/hlandau/acme"
+url="https://github.com/hlandau/acmetool"
arch="all"
license="MIT"
-makedepends="glide go libcap-dev"
+makedepends="go libcap-dev"
subpackages="$pkgname-doc"
# no test suite available
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hlandau/acme/archive/v$pkgver.tar.gz
- glide.lock
- glide.yaml
+options="!check net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hlandau/acmetool/archive/v$pkgver.tar.gz
+ go.mod
+ go.sum
"
-builddir="$srcdir/src/github.com/hlandau/acme"
+
+export GOPATH="$srcdir/go"
+export GOCACHE="$srcdir/go-build"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir/acmetool-$pkgver" "$builddir"
- cd "$builddir"
- cp "$srcdir"/glide.yaml "$srcdir"/glide.lock .
- export GOPATH="$srcdir"
- glide install --skip-test
default_prepare
+
+ cp "$srcdir"/go.mod "$srcdir"/go.sum "$builddir"/
}
build() {
- cd "$builddir"
- export GOPATH="$srcdir"
- go build -v -ldflags "-s -w -X github.com/hlandau/acme/hooks.DefaultPath=/etc/acme/hooks" \
+ go build -v \
+ -ldflags "-X github.com/hlandau/acmetool/hooks.DefaultPath=/etc/acme/hooks" \
./cmd/acmetool/...
}
package() {
- cd "$builddir"
install -Dm 755 acmetool "$pkgdir/usr/bin/acmetool"
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README"
- install -Dm644 _doc/* -t "$pkgdir/usr/share/doc/$pkgname/"
-}
-
-glide_init() {
- abuild clean deps unpack prepare
- cd "$builddir"
- export GOPATH="$srcdir"
- rm -f glide.yaml glide.lock
- glide init --non-interactive
- glide update
- cp glide.yaml glide.lock "$startdir"
- cd "$startdir" && abuild checksum clean
+ install -Dm644 README.md "$pkgdir/usr/share/doc/acmetool/README"
+ cp -a _doc/* "$pkgdir/usr/share/doc/$pkgname/"
}
-sha512sums="b0c3013167ceee6c1e577cf1678c256ffed243e8aa5038d86836e625a7c484fd5ca2bb79feb1cae981afc49a6e1635b62b23e58d11a86cc9c1e5012d9e0a638a acmetool-0.0.67.tar.gz
-6ea636b99e3a2cab73e52a75bc92430fae6515d00c3287f5bbe942666e8fbba0883a3a89a6930021c7aae4451c4a9586eb034c35282d0e331d2f7b8456897bca glide.lock
-108403fb50acdc3f74ad02d07b22665192206db8450a94156c57e129577835663f36c1a7fd40bd924bc84297c07417465b8013d9262bc497b74c000c268c7d42 glide.yaml"
+sha512sums="
+c24bebbf52664cfda0442db86f8437244322a709413fdd03a79294feac99045f0e06b4342a6186ae4aa400fb627e740f00eadf7522919d3faff4270badb38451 acmetool-0.2.2.tar.gz
+5c3e8400b46fbfe00553698c200075367bd6d6e19d3aaddf8029c9a3e43ae0b9a19496175358d8439cd6edf0d1652d68ed1ae1980318bad8f04112f7ef009841 go.mod
+e52269c2d78c8ca6e769ae918b369591e8965db0283e7c8c2f18531e4af36fd71589596d91dbf0f75fd5aeca36d95c522f28a4c8ae006a300a8ea9fc2e3eb305 go.sum
+"
diff --git a/testing/acmetool/glide.lock b/testing/acmetool/glide.lock
deleted file mode 100644
index 866904b34c6..00000000000
--- a/testing/acmetool/glide.lock
+++ /dev/null
@@ -1,114 +0,0 @@
-hash: 68dde426608bc23d6537ee62c8ca73feaa28d8f541c638ed718e0cb1cbde9ba0
-updated: 2019-03-03T17:03:03.354765212Z
-imports:
-- name: github.com/alecthomas/template
- version: a0175ee3bccc567396460bf5acd36800cb10c49c
- subpackages:
- - parse
-- name: github.com/alecthomas/units
- version: 2efee857e7cfd4f3d0138cc3cbb1b4966962b93a
-- name: github.com/btcsuite/winsvc
- version: f8fb11f83f7e860e3769a08e6811d1b399a43722
- subpackages:
- - mgr
- - svc
- - winapi
-- name: github.com/coreos/go-systemd
- version: d1b7d058aa2adfc795ad17ff4aaa2bc64ec11c78
- subpackages:
- - dbus
- - journal
- - unit
-- name: github.com/erikdubbelboer/gspt
- version: 2cac68f23d57e3e28a73b70d8d5d904749ec46e8
-- name: github.com/godbus/dbus
- version: d41f4c66e71d091df57cfee7bf5978c0d612a174
-- name: github.com/hlandau/buildinfo
- version: 337a29b5499734e584d4630ce535af64c5fe7813
-- name: github.com/hlandau/dexlogconfig
- version: 244f29bd260884993b176cd14ef2f7631f6f3c18
-- name: github.com/hlandau/goutils
- version: 0cdb66aea5b843822af6fdffc21286b8fe8379c4
- subpackages:
- - clock
- - net
- - os
- - test
- - text
-- name: github.com/hlandau/xlog
- version: 197ef798aed28e08ed3e176e678fda81be993a31
-- name: github.com/jmhodges/clock
- version: 880ee4c335489bc78d01e4d0a254ae880734bc15
-- name: github.com/mattn/go-isatty
- version: 6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c
-- name: github.com/mattn/go-runewidth
- version: ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb
-- name: github.com/mitchellh/go-wordwrap
- version: ad45545899c7b13c020ea92b2072220eefad42b8
-- name: github.com/ogier/pflag
- version: 45c278ab3607870051a2ea9040bb85fcb8557481
-- name: github.com/peterhellberg/link
- version: 6d32b8d78d1e440948a1c461c5abcc6bf7881641
-- name: github.com/satori/go.uuid
- version: 36e9d2ebbde5e3f13ab2e25625fd453271d6522e
-- name: github.com/shiena/ansicolor
- version: a422bbe96644373c5753384a59d678f7d261ff10
-- name: golang.org/x/crypto
- version: d6449816ce06963d9d136eee5a56fca5b0616e7e
- subpackages:
- - ocsp
-- name: golang.org/x/net
- version: 8d16fa6dc9a85c1cd3ed24ad08ff21cf94f10888
- subpackages:
- - context
- - context/ctxhttp
- - idna
-- name: golang.org/x/sys
- version: b126b21c05a91c856b027c16779c12e3bf236954
- subpackages:
- - unix
-- name: golang.org/x/text
- version: 7922cc490dd5a7dbaa7fd5d6196b49db59ac042f
- subpackages:
- - secure/bidirule
- - transform
- - unicode/bidi
- - unicode/norm
-- name: gopkg.in/alecthomas/kingpin.v2
- version: 947dcec5ba9c011838740e680966fd7087a71d0d
-- name: gopkg.in/cheggaaa/pb.v1
- version: 72b964305fba1230d3d818711138195f22b9ceea
-- name: gopkg.in/hlandau/configurable.v1
- version: 41496864a1fe3e0fef2973f22372b755d2897402
-- name: gopkg.in/hlandau/easyconfig.v1
- version: 7589cb96edce2f94f8c1e6eb261f8c2b06220fe7
- subpackages:
- - adaptflag
- - cflag
-- name: gopkg.in/hlandau/service.v2
- version: b64b3467ebd16f64faec1640c25e318efc0c0d7b
- subpackages:
- - daemon
- - daemon/bansuid
- - gsptcall
-- name: gopkg.in/hlandau/svcutils.v1
- version: c25dac49e50cbbcbef8c81b089f56156f4067729
- subpackages:
- - caps
- - chroot
- - dupfd
- - exepath
- - passwd
- - pidfile
- - setuid
- - systemd
-- name: gopkg.in/square/go-jose.v1
- version: 6e50787b7338112747e64f32753fb4f9dbfb8f79
- subpackages:
- - cipher
- - json
-- name: gopkg.in/tylerb/graceful.v1
- version: 4654dfbb6ad53cb5e27f37d99b02e16c1872fbbb
-- name: gopkg.in/yaml.v2
- version: 5420a8b6744d3b0345ab293f6fcba19c978f1183
-testImports: []
diff --git a/testing/acmetool/glide.yaml b/testing/acmetool/glide.yaml
deleted file mode 100644
index 9778ebf4920..00000000000
--- a/testing/acmetool/glide.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-package: github.com/hlandau/acme
-import:
-- package: github.com/coreos/go-systemd
- subpackages:
- - dbus
- - unit
-- package: github.com/hlandau/dexlogconfig
-- package: github.com/hlandau/goutils
- subpackages:
- - clock
- - net
- - os
- - text
-- package: github.com/hlandau/xlog
-- package: github.com/jmhodges/clock
-- package: github.com/mitchellh/go-wordwrap
-- package: github.com/peterhellberg/link
-- package: github.com/satori/go.uuid
-- package: golang.org/x/crypto
- subpackages:
- - ocsp
-- package: golang.org/x/net
- subpackages:
- - context
- - context/ctxhttp
- - idna
-- package: gopkg.in/alecthomas/kingpin.v2
-- package: gopkg.in/cheggaaa/pb.v1
-- package: gopkg.in/hlandau/easyconfig.v1
- subpackages:
- - adaptflag
-- package: gopkg.in/hlandau/service.v2
-- package: gopkg.in/hlandau/svcutils.v1
- subpackages:
- - chroot
- - exepath
- - passwd
- - systemd
-- package: gopkg.in/square/go-jose.v1
-- package: gopkg.in/tylerb/graceful.v1
-- package: gopkg.in/yaml.v2
diff --git a/testing/acmetool/go.mod b/testing/acmetool/go.mod
new file mode 100644
index 00000000000..5fa7e6008ee
--- /dev/null
+++ b/testing/acmetool/go.mod
@@ -0,0 +1,44 @@
+module github.com/hlandau/acmetool
+
+go 1.16
+
+require (
+ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect
+ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect
+ github.com/btcsuite/winsvc v1.0.0 // indirect
+ github.com/coreos/go-systemd v0.0.0-20180409111510-d1b7d058aa2a // indirect
+ github.com/erikdubbelboer/gspt v0.0.0-20171114050331-2cac68f23d57 // indirect
+ github.com/fatih/color v1.12.0 // indirect
+ github.com/gofrs/uuid v4.4.0+incompatible
+ github.com/google/go-cmp v0.5.9 // indirect
+ github.com/hlandau/buildinfo v0.0.0-20161112115716-337a29b54997 // indirect
+ github.com/hlandau/dexlogconfig v0.0.0-20161112114350-244f29bd2608
+ github.com/hlandau/goutils v0.0.0-20160722130800-0cdb66aea5b8
+ github.com/hlandau/xlog v1.0.0
+ github.com/hlandauf/go-systemd v22.2.1-0.20210317225616-d4cbd5bfbd43+incompatible
+ github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548
+ github.com/mattn/go-runewidth v0.0.3 // indirect
+ github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7
+ github.com/ogier/pflag v0.0.2-0.20160129220114-45c278ab3607 // indirect
+ github.com/peterhellberg/link v1.0.1-0.20180124233705-6d32b8d78d1e // indirect
+ github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
+ github.com/stretchr/testify v1.7.0 // indirect
+ golang.org/x/crypto v0.0.0-20180411161317-d6449816ce06 // indirect
+ golang.org/x/net v0.0.0-20180417003750-8d16fa6dc9a8
+ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect
+ golang.org/x/text v0.3.1-0.20180410181320-7922cc490dd5 // indirect
+ gopkg.in/alecthomas/kingpin.v2 v2.2.6
+ gopkg.in/cheggaaa/pb.v1 v1.0.22
+ gopkg.in/hlandau/acmeapi.v2 v2.0.2
+ gopkg.in/hlandau/configurable.v1 v1.0.1 // indirect
+ gopkg.in/hlandau/easyconfig.v1 v1.0.16
+ gopkg.in/hlandau/service.v2 v2.0.16
+ gopkg.in/hlandau/svcutils.v1 v1.0.10
+ gopkg.in/hlandauf/dbus.v5 v5.990.1 // indirect
+ gopkg.in/square/go-jose.v1 v1.1.1
+ gopkg.in/square/go-jose.v2 v2.6.0 // indirect
+ gopkg.in/tylerb/graceful.v1 v1.2.15
+ gopkg.in/yaml.v2 v2.2.1
+)
+
+replace golang.org/x/sys => golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c
diff --git a/testing/acmetool/go.sum b/testing/acmetool/go.sum
new file mode 100644
index 00000000000..7629daf52ba
--- /dev/null
+++ b/testing/acmetool/go.sum
@@ -0,0 +1,85 @@
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk=
+github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
+github.com/coreos/go-systemd v0.0.0-20180409111510-d1b7d058aa2a h1:kJfKDOt1RNg9d0/s1KKRY0W3iJkfnURwhZo3BbaDIMY=
+github.com/coreos/go-systemd v0.0.0-20180409111510-d1b7d058aa2a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/erikdubbelboer/gspt v0.0.0-20171114050331-2cac68f23d57 h1:3r+tV/4K76VpFxFiH7IjAB6S9dOx4k7NSkvy5M3guUY=
+github.com/erikdubbelboer/gspt v0.0.0-20171114050331-2cac68f23d57/go.mod h1:v6o7m/E9bfvm79dE1iFiF+3T7zLBnrjYjkWMa1J+Hv0=
+github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc=
+github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
+github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
+github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
+github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/hlandau/buildinfo v0.0.0-20161112115716-337a29b54997 h1:pSU4Sj7AD5qh+4V5FRlpiw3DpuNQ459c3j8h2F38q74=
+github.com/hlandau/buildinfo v0.0.0-20161112115716-337a29b54997/go.mod h1:Oara+TmqGrvsLVEj5YkFe+PP9cSkp0kFD2PFQ5gjHok=
+github.com/hlandau/dexlogconfig v0.0.0-20161112114350-244f29bd2608 h1:ouW4TuIFOsfgql1NgzTHGgW6esZ41RW5NZwHz3ALXn8=
+github.com/hlandau/dexlogconfig v0.0.0-20161112114350-244f29bd2608/go.mod h1:JpXGCMr2CULPTjnwD8PL9A7YipEitrd+xSHTIK8orHU=
+github.com/hlandau/goutils v0.0.0-20160722130800-0cdb66aea5b8 h1:9aNGW7btNlVqbcqAc2YVwjI0fhZFmoZHkC3+ZJyt1DM=
+github.com/hlandau/goutils v0.0.0-20160722130800-0cdb66aea5b8/go.mod h1:pYz0KEJgONY133I+1Pkmn6MLptkdKyz3SHgGmpDWyFI=
+github.com/hlandau/xlog v1.0.0 h1:tcFGp86iK+v6NwbyuG9wyLB77SBkvAJUjOkRJo3H8C0=
+github.com/hlandau/xlog v1.0.0/go.mod h1:aZl5hrokGCtnAFcvft2givQmKZYVfHRvQJbjoqI2lm8=
+github.com/hlandauf/go-systemd v22.2.1-0.20210317225616-d4cbd5bfbd43+incompatible h1:435zI8sPEgcr0HUwAczIY6cQQzJRJ+qlyj/tsDZzsww=
+github.com/hlandauf/go-systemd v22.2.1-0.20210317225616-d4cbd5bfbd43+incompatible/go.mod h1:Tfuxf4cwByXRPnu6MRc3Wn66VjG+worH/9IhfvPnlZg=
+github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548 h1:dYTbLf4m0a5u0KLmPfB6mgxbcV7588bOCx79hxa5Sr4=
+github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548/go.mod h1:hGT6jSUVzF6no3QaDSMLGLEHtHSBSefs+MgcDWnmhmo=
+github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
+github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
+github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4=
+github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM=
+github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
+github.com/ogier/pflag v0.0.2-0.20160129220114-45c278ab3607 h1:xZoOomu8/sOa+6Q469LrXeyq2YsmkhZo8wU6EzNWMDg=
+github.com/ogier/pflag v0.0.2-0.20160129220114-45c278ab3607/go.mod h1:zkFki7tvTa0tafRvTBIZTvzYyAu6kQhPZFnshFFPE+g=
+github.com/peterhellberg/link v1.0.1-0.20180124233705-6d32b8d78d1e h1:UNCcSD9GJ5vTa9Nl0jlCFVuaSQc8H6wADKWAIMs0SXI=
+github.com/peterhellberg/link v1.0.1-0.20180124233705-6d32b8d78d1e/go.mod h1:gtSlOT4jmkY8P47hbTc8PTgiDDWpdPbFYl75keYyBB8=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 h1:X+yvsM2yrEktyI+b2qND5gpH8YhURn0k8OCaeRnkINo=
+github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+golang.org/x/crypto v0.0.0-20180411161317-d6449816ce06 h1:EOqG0JqGlLr+punVB69jvWCv/ErZKGlC7PMdyHfv+Bc=
+golang.org/x/crypto v0.0.0-20180411161317-d6449816ce06/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/net v0.0.0-20180417003750-8d16fa6dc9a8 h1:x78T1ffZeQiacNSxOb00nz8Y+6YRQ8Jc2nlHAgp3HZc=
+golang.org/x/net v0.0.0-20180417003750-8d16fa6dc9a8/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/text v0.3.1-0.20180410181320-7922cc490dd5 h1:23hw054QGj0KDkhDTmeMTzaawNqHp/Q5B65f8TTG3vg=
+golang.org/x/text v0.3.1-0.20180410181320-7922cc490dd5/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/cheggaaa/pb.v1 v1.0.22 h1:c9uUtBcJbskglPcslP+bFq43Y9mR+Hja6qPRW0bsOJ0=
+gopkg.in/cheggaaa/pb.v1 v1.0.22/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
+gopkg.in/hlandau/acmeapi.v2 v2.0.2 h1:S5jEi1/TiaPpfQ9Mwvhfi9NRDYZ+zA+UcRbysH4ygNM=
+gopkg.in/hlandau/acmeapi.v2 v2.0.2/go.mod h1:aWwBqx5Cy/gAMFsLZOKe0T/ZUMvy2kmsIIAZFjBOtFc=
+gopkg.in/hlandau/configurable.v1 v1.0.1 h1:rH8g/WXZu2b/eyLagvsqUf9q5mO66hfGHW5L4rm8ktk=
+gopkg.in/hlandau/configurable.v1 v1.0.1/go.mod h1:rlyQpcii/QkMGudMSMoe3jjHAgqLZuqg0hQkiUcNfF8=
+gopkg.in/hlandau/easyconfig.v1 v1.0.16 h1:ldFeTZmzPDiiFbyeV8eOMVLAqSCWI0rg8W3GK3Z9wH0=
+gopkg.in/hlandau/easyconfig.v1 v1.0.16/go.mod h1:fljDHM+/VAXpyEN/45q6RFtcOFnUaF1Wgr6p4LLICoU=
+gopkg.in/hlandau/service.v2 v2.0.16 h1:mmaXq+/O4vXTWEGHdVy+Cy5S7h2djyu8Rodm6qE3oV4=
+gopkg.in/hlandau/service.v2 v2.0.16/go.mod h1:3f+96gui2lGv8llWOAUPi9+oI+TOBIyvlVHa1DUwliA=
+gopkg.in/hlandau/svcutils.v1 v1.0.10 h1:eIasSJy56y3H3rJ0US4EJURTAfHXItiehMxZRRs7TrU=
+gopkg.in/hlandau/svcutils.v1 v1.0.10/go.mod h1:aAoYFMVAq2ck6z8av+FBxzX/qX1ehmUIc5PgGBf+P3I=
+gopkg.in/hlandauf/dbus.v5 v5.990.1 h1:5ei2lTlF906KJlYbA8xv0LJFSV9Jb0Lr4EWSlzXyo3U=
+gopkg.in/hlandauf/dbus.v5 v5.990.1/go.mod h1:MofjUhKgyhZW5tf4SWxHvGcU4jKyvuHrsifrQNhNuvA=
+gopkg.in/square/go-jose.v1 v1.1.1 h1:pA7KxQLcwADLRJ3lpUC+vIe4LCO8oRBMoq1HJoJhA3U=
+gopkg.in/square/go-jose.v1 v1.1.1/go.mod h1:QpYS+a4WhS+DTlyQIi6Ka7MS3SuR9a055rgXNEe6EiA=
+gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
+gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
+gopkg.in/tylerb/graceful.v1 v1.2.15 h1:1JmOyhKqAyX3BgTXMI84LwT6FOJ4tP2N9e2kwTCM0nQ=
+gopkg.in/tylerb/graceful.v1 v1.2.15/go.mod h1:yBhekWvR20ACXVObSSdD3u6S9DeSylanL2PAbAC/uJ8=
+gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/testing/actionlint/APKBUILD b/testing/actionlint/APKBUILD
new file mode 100644
index 00000000000..ca38e6fcfaf
--- /dev/null
+++ b/testing/actionlint/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=actionlint
+pkgver=1.6.27
+pkgrel=2
+pkgdesc="Static checker for GitHub Actions workflow files"
+url="https://github.com/rhysd/actionlint"
+arch="all"
+license="MIT"
+makedepends="go ronn"
+options="chmod-clean net"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rhysd/actionlint/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags="-buildid= -X github.com/rhysd/actionlint.version=$pkgver -s -w" \
+ ./cmd/$pkgname
+ ronn ./man/$pkgname.1.ronn
+}
+
+check() {
+ go test .
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 man/$pkgname.1 "$pkgdir"/usr/share/man/man1/$pkgname.1
+ install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+53427f8f676c489cda56ba2a3fc03d3955cb96d038a2127a46bb3372de47910bf54585e643fbc90f7b3bd3cfbba1c9801b993cad023846d1815814a1108de763 actionlint-1.6.27.tar.gz
+"
diff --git a/testing/adjtimex/10-Makefile.patch b/testing/adjtimex/10-Makefile.patch
new file mode 100644
index 00000000000..80ca12135ee
--- /dev/null
+++ b/testing/adjtimex/10-Makefile.patch
@@ -0,0 +1,35 @@
+Author: Anjandev Momi <anjan@momi.ca>
+URL: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=adjtimex
+Summary: create directory on install and make mandir respect DESTDIR
+----
+diff -ruN adjtimex-debian-1.29-10.old/Makefile.in adjtimex-debian-1.29-10/Makefile.in
+--- adjtimex-debian-1.29-10.old/Makefile.in 2018-07-25 17:02:11.000000000 +0000
++++ adjtimex-debian-1.29-10/Makefile.in 2019-01-01 02:58:05.867107891 +0000
+@@ -8,7 +8,7 @@
+ prefix = @prefix@
+ man1dir=@mandir@/man1
+ exec_prefix = @exec_prefix@
+-bindir=/sbin
++bindir=$(DESTDIR)/$(prefix)/bin
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+
+@@ -18,7 +18,7 @@
+ # Extension (not including `.') for the manual page filenames.
+ manext = 8
+ # Where to put the manual pages.
+-mandir = $(prefix)/share/man/man$(manext)
++mandir = $(DESTDIR)/$(prefix)/share/man/man$(manext)
+
+ #### End of system configuration section. ####
+
+@@ -42,7 +42,8 @@
+ $(CC) $(CFLAGS) -c mat.c
+
+ install: all
+- $(INSTALL) -g bin -m 755 -o root adjtimex $(bindir)/adjtimex
++ $(INSTALL) -d -g root -m 755 -o root $(bindir)
++ $(INSTALL) -g root -m 755 -o root adjtimex $(bindir)/adjtimex
+ $(INSTALL) -d -g root -m 755 -o root $(mandir)
+ -$(INSTALL) -g root -m 644 -o root $(srcdir)/adjtimex.8 \
+ $(mandir)/adjtimex.$(manext)
diff --git a/testing/adjtimex/APKBUILD b/testing/adjtimex/APKBUILD
new file mode 100644
index 00000000000..d29289b16db
--- /dev/null
+++ b/testing/adjtimex/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=adjtimex
+pkgver=1.29
+pkgrel=0
+pkgdesc="Allows configuration of kernel time variables"
+url="https://github.com/rogers0/adjtimex"
+options="!check" # No tests
+arch="all"
+subpackages="$pkgname-doc"
+license="GPL-2.0-or-later"
+source="http://ftp.debian.org/debian/pool/main/a/adjtimex/adjtimex_$pkgver.orig.tar.gz
+ 10-Makefile.patch"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5a48cdc538866c06562f62e369c08d60978c791ed91565262c0179c6fa25dd343963992d00e10f32475fdc00b458f81cf9c61adbfa9e1b7a8d4981ebeeff5649 adjtimex_1.29.orig.tar.gz
+f75ede467d2b089306aa0bf08613c835d040f019eb74987869dd0495d2768db66f718a977fda6600238ba1a3582137d7035dfc900d10fd8531e5fbc091b53d93 10-Makefile.patch
+"
diff --git a/testing/admesh/APKBUILD b/testing/admesh/APKBUILD
new file mode 100644
index 00000000000..63ce6a1dab6
--- /dev/null
+++ b/testing/admesh/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=admesh
+pkgver=0.98.5
+pkgrel=0
+pkgdesc="A program for processing triangulated solid meshes"
+url="https://github.com/admesh/admesh"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libtool"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/admesh/admesh/releases/download/v$pkgver/admesh-$pkgver.tar.gz"
+options="!check" # no unit tests
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+8d94966caf65ec09a143b0d9ed4a1dce1ccd6dc2281b6da02c620d6f31439c2ce4b6501bfca4392ed96727696df3a15c86890e4dd6fc995bc8cf9d130f25786a admesh-0.98.5.tar.gz
+"
diff --git a/testing/advancemame/APKBUILD b/testing/advancemame/APKBUILD
index 358ec13256a..d9519441620 100644
--- a/testing/advancemame/APKBUILD
+++ b/testing/advancemame/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=advancemame
pkgver=3.9
-pkgrel=0
+pkgrel=4
pkgdesc="A port of the MAME emulator for Arcade Monitors and TVs but also for LCDs and PC monitors"
url="http://www.advancemame.it"
-arch="all"
+# armhf: fails with clang
+arch="all !armhf"
license="GPL-2.0-only"
makedepends="
alsa-lib-dev
- clang-dev
+ clang
expat-dev
freetype-dev
linux-headers
@@ -17,27 +18,25 @@ makedepends="
zlib-dev
"
subpackages="$pkgname-doc $pkgname-data::noarch $pkgname-mess $pkgname-menu"
-source="https://github.com/amadvance/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz
- fix-ppc64le-float128.patch"
+source="https://github.com/amadvance/advancemame/releases/download/v$pkgver/advancemame-$pkgver.tar.gz
+ fix-ppc64le-float128.patch
+ formatsec.patch
+ "
options="!check"
+# Fix build with gcc 10
+export CFLAGS="$CFLAGS -fcommon"
+
prepare() {
default_prepare
+
+ update_config_guess
+ update_config_sub
}
build() {
- cd "$builddir"
-
-case "$CARCH" in
- armhf|mips*)
- true
- ;;
- *)
- export CC=clang
- export CXX=clang++
- ;;
-esac
-
+ export CC=clang
+ export CXX=clang++
./configure \
--build=$CBUILD \
@@ -51,33 +50,32 @@ esac
}
package() {
- cd "$builddir"
- make bindir="${pkgdir}/usr/bin/" \
- datadir="${pkgdir}/usr/share/" \
- mandir="${pkgdir}/usr/share/man/" \
- pkgdocdir="${pkgdir}/usr/share/doc/${pkgname}/" \
+ make bindir="$pkgdir/usr/bin/" \
+ datadir="$pkgdir/usr/share/" \
+ mandir="$pkgdir/usr/share/man/" \
+ pkgdocdir="$pkgdir/usr/share/doc/$pkgname/" \
install
}
data() {
- pkgdesc="Distrubition files for advancemame"
- depends="$pkgname"
- mkdir -p "$subpkgdir"/usr/share/advance
- mv "$pkgdir"/usr/share/advance/* "$subpkgdir"/usr/share/advance/
+ pkgdesc="Distribution files for advancemame"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ amove usr/share/advance/*
}
mess() {
pkgdesc="Advancemame port of MESS."
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/advmess "$subpkgdir"/usr/bin/
+ amove usr/bin/advmess
}
menu() {
pkgdesc="An emulator frontend with sound and animated previews of your games."
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/advmenu "$subpkgdir"/usr/bin/
+ amove usr/bin/advmenu
}
-sha512sums="43f9ba746f222b17ade2d213d6af7cc8fe6b3ee6008633f02b8877f4c7f75628bdf1cc9718db09f5f9a482d194c8ba94f9047334e8012d23c598454e5dab2eb3 advancemame-3.9.tar.gz
-d42a9b3c65c2d96be5287c7541eb1e911562b3f2aaf07c55c1849725592857716ce496405e3da2243edcbd4b7307226306533ddf66ef2e081b4c492412930d1b fix-ppc64le-float128.patch"
+sha512sums="
+43f9ba746f222b17ade2d213d6af7cc8fe6b3ee6008633f02b8877f4c7f75628bdf1cc9718db09f5f9a482d194c8ba94f9047334e8012d23c598454e5dab2eb3 advancemame-3.9.tar.gz
+d42a9b3c65c2d96be5287c7541eb1e911562b3f2aaf07c55c1849725592857716ce496405e3da2243edcbd4b7307226306533ddf66ef2e081b4c492412930d1b fix-ppc64le-float128.patch
+461a76d3db95d9c894ec6937be18f2d1d7f193c2c06e14c4b3bb7cb860c7b2054f46fac636c8ebd9616d48a079b07f6cd2b1647ec0d706e26a473ac08d1ce504 formatsec.patch
+"
diff --git a/testing/advancemame/formatsec.patch b/testing/advancemame/formatsec.patch
new file mode 100644
index 00000000000..5ed46f57328
--- /dev/null
+++ b/testing/advancemame/formatsec.patch
@@ -0,0 +1,13 @@
+diff --git a/advance/menu/emulator.cc b/advance/menu/emulator.cc
+index cfa4300..3c3d5d6 100644
+--- a/advance/menu/emulator.cc
++++ b/advance/menu/emulator.cc
+@@ -2203,7 +2203,7 @@ bool advmess::run(const game& g, const game* bios, unsigned orientation, bool se
+ }
+ }
+ error += "\n";
+- target_err(error.c_str());
++ target_err("%s", error.c_str());
+ }
+
+ for (int i = 0; i < argc; ++i)
diff --git a/testing/advancescan/0001-cpp17-throw.patch b/testing/advancescan/0001-cpp17-throw.patch
new file mode 100644
index 00000000000..c48e7c92490
--- /dev/null
+++ b/testing/advancescan/0001-cpp17-throw.patch
@@ -0,0 +1,276 @@
+Author: Patrycja Rosa <alpine@ptrcnull.me>
+Date: Thu, 03 Feb 2022 05:06:47 +0100
+
+ replace throw with noexcept
+
+ throw has been deprecated in C++11 and removed in C++17
+
+diff --git a/conf.cc b/conf.cc
+index e9b596d..e537e00 100644
+--- a/conf.cc
++++ b/conf.cc
+@@ -28,7 +28,7 @@
+
+ using namespace std;
+
+-static void expand_tree(const string& path, filepath_container& ds) throw (error)
++static void expand_tree(const string& path, filepath_container& ds) noexcept (false)
+ {
+ DIR* dir = opendir(path.c_str());
+ if (!dir)
+diff --git a/file.cc b/file.cc
+index 1e90348..36f3495 100644
+--- a/file.cc
++++ b/file.cc
+@@ -98,7 +98,7 @@ void infopath::readonly_set(bool Areadonly)
+ /**
+ * Check if a file exists.
+ */
+-bool file_exists(const string& path) throw (error)
++bool file_exists(const string& path) noexcept (false)
+ {
+ struct stat s;
+ if (stat(path.c_str(), &s) != 0) {
+@@ -114,7 +114,7 @@ bool file_exists(const string& path) throw (error)
+ /**
+ * Write a whole file.
+ */
+-void file_write(const string& path, const char* data, unsigned size) throw (error)
++void file_write(const string& path, const char* data, unsigned size) noexcept (false)
+ {
+ FILE* f = fopen(path.c_str(), "wb");
+ if (!f)
+@@ -134,7 +134,7 @@ void file_write(const string& path, const char* data, unsigned size) throw (erro
+ /**
+ * Read a whole file.
+ */
+-void file_read(const string& path, char* data, unsigned size) throw (error)
++void file_read(const string& path, char* data, unsigned size) noexcept (false)
+ {
+ file_read(path, data, 0, size);
+ }
+@@ -142,7 +142,7 @@ void file_read(const string& path, char* data, unsigned size) throw (error)
+ /**
+ * Read a whole file.
+ */
+-void file_read(const string& path, char* data, unsigned offset, unsigned size) throw (error)
++void file_read(const string& path, char* data, unsigned offset, unsigned size) noexcept (false)
+ {
+ FILE* f = fopen(path.c_str(), "rb");
+ if (!f)
+@@ -166,7 +166,7 @@ void file_read(const string& path, char* data, unsigned offset, unsigned size) t
+ /**
+ * Get the time of a file.
+ */
+-time_t file_time(const string& path) throw (error)
++time_t file_time(const string& path) noexcept (false)
+ {
+ struct stat s;
+ if (stat(path.c_str(), &s)!=0)
+@@ -178,7 +178,7 @@ time_t file_time(const string& path) throw (error)
+ /**
+ * Set the time of a file.
+ */
+-void file_utime(const string& path, time_t tod) throw (error)
++void file_utime(const string& path, time_t tod) noexcept (false)
+ {
+ struct utimbuf u;
+
+@@ -192,7 +192,7 @@ void file_utime(const string& path, time_t tod) throw (error)
+ /**
+ * Get the size of a file.
+ */
+-unsigned file_size(const string& path) throw (error)
++unsigned file_size(const string& path) noexcept (false)
+ {
+ struct stat s;
+ if (stat(path.c_str(), &s)!=0)
+@@ -204,7 +204,7 @@ unsigned file_size(const string& path) throw (error)
+ /**
+ * Get the crc of a file.
+ */
+-crc_t file_crc(const string& path) throw (error)
++crc_t file_crc(const string& path) noexcept (false)
+ {
+ unsigned size = file_size(path);
+
+@@ -227,7 +227,7 @@ crc_t file_crc(const string& path) throw (error)
+ /**
+ * Copy a file.
+ */
+-void file_copy(const string& path1, const string& path2) throw (error)
++void file_copy(const string& path1, const string& path2) noexcept (false)
+ {
+ unsigned size;
+
+@@ -249,7 +249,7 @@ void file_copy(const string& path1, const string& path2) throw (error)
+ /**
+ * Move a file.
+ */
+-void file_move(const string& path1, const string& path2) throw (error)
++void file_move(const string& path1, const string& path2) noexcept (false)
+ {
+ if (rename(path1.c_str(), path2.c_str())!=0
+ && errno==EXDEV) {
+@@ -271,7 +271,7 @@ void file_move(const string& path1, const string& path2) throw (error)
+ /**
+ * Remove a file.
+ */
+-void file_remove(const string& path1) throw (error)
++void file_remove(const string& path1) noexcept (false)
+ {
+ if (remove(path1.c_str())!=0) {
+ throw error() << "Failed remove of " << path1;
+@@ -281,7 +281,7 @@ void file_remove(const string& path1) throw (error)
+ /**
+ * Rename a file.
+ */
+-void file_rename(const string& path1, const string& path2) throw (error)
++void file_rename(const string& path1, const string& path2) noexcept (false)
+ {
+ if (rename(path1.c_str(), path2.c_str())!=0) {
+ throw error() << "Failed rename of " << path1 << " to " << path2;
+@@ -291,7 +291,7 @@ void file_rename(const string& path1, const string& path2) throw (error)
+ /**
+ * Randomize a name file.
+ */
+-string file_randomize(const string& path, int n) throw ()
++string file_randomize(const string& path, int n) noexcept (true)
+ {
+ ostringstream os;
+
+@@ -307,7 +307,7 @@ string file_randomize(const string& path, int n) throw ()
+ return os.str();
+ }
+
+-string file_temp(const string& path) throw ()
++string file_temp(const string& path) noexcept (true)
+ {
+ ostringstream os;
+
+@@ -319,7 +319,7 @@ string file_temp(const string& path) throw ()
+ /**
+ * Get the directory from a path.
+ */
+-string file_dir(const string& path) throw ()
++string file_dir(const string& path) noexcept (true)
+ {
+ size_t pos = path.rfind('/');
+ if (pos == string::npos) {
+@@ -332,7 +332,7 @@ string file_dir(const string& path) throw ()
+ /**
+ * Get the file name from a path.
+ */
+-string file_name(const string& path) throw ()
++string file_name(const string& path) noexcept (true)
+ {
+ size_t pos = path.rfind('/');
+ if (pos == string::npos) {
+@@ -345,7 +345,7 @@ string file_name(const string& path) throw ()
+ /**
+ * Get the basepath (path without extension) from a path.
+ */
+-string file_basepath(const string& path) throw ()
++string file_basepath(const string& path) noexcept (true)
+ {
+ size_t dot = path.rfind('.');
+ if (dot == string::npos)
+@@ -357,7 +357,7 @@ string file_basepath(const string& path) throw ()
+ /**
+ * Get the basename (name without extension) from a path.
+ */
+-string file_basename(const string& path) throw ()
++string file_basename(const string& path) noexcept (true)
+ {
+ string name = file_name(path);
+ size_t dot = name.rfind('.');
+@@ -370,7 +370,7 @@ string file_basename(const string& path) throw ()
+ /**
+ * Get the extension from a path.
+ */
+-string file_ext(const string& path) throw ()
++string file_ext(const string& path) noexcept (true)
+ {
+ string name = file_name(path);
+ size_t dot = name.rfind('.');
+@@ -383,7 +383,7 @@ string file_ext(const string& path) throw ()
+ /**
+ * Compare two path.
+ */
+-int file_compare(const string& path1, const string& path2) throw ()
++int file_compare(const string& path1, const string& path2) noexcept (true)
+ {
+ return strcasecmp(path1.c_str(), path2.c_str());
+ }
+@@ -391,7 +391,7 @@ int file_compare(const string& path1, const string& path2) throw ()
+ /**
+ * Convert a path to the C format.
+ */
+-string file_adjust(const string& path) throw ()
++string file_adjust(const string& path) noexcept (true)
+ {
+ string r;
+ for(unsigned i=0;i<path.length();++i) {
+@@ -409,7 +409,7 @@ string file_adjust(const string& path) throw ()
+ /**
+ * Make a drectory tree.
+ */
+-void file_mktree(const std::string& path) throw (error)
++void file_mktree(const std::string& path) noexcept (false)
+ {
+ string dir = file_dir(path);
+ string name = file_name(path);
+diff --git a/file.h b/file.h
+index 1b0cf85..b3843c0 100644
+--- a/file.h
++++ b/file.h
+@@ -67,28 +67,28 @@ typedef unsigned crc_t;
+ crc_t crc_compute(const char* data, unsigned len);
+ crc_t crc_compute(crc_t pred, const char* data, unsigned len);
+
+-bool file_exists(const std::string& file) throw (error);
+-void file_write(const std::string& path, const char* data, unsigned size) throw (error);
+-void file_read(const std::string& path, char* data, unsigned size) throw (error);
+-void file_read(const std::string& path, char* data, unsigned offset, unsigned size) throw (error);
+-time_t file_time(const std::string& path) throw (error);
+-void file_utime(const std::string& path, time_t tod) throw (error);
+-unsigned file_size(const std::string& path) throw (error);
+-crc_t file_crc(const std::string& path) throw (error);
+-void file_copy(const std::string& path1, const std::string& path2) throw (error);
+-void file_move(const std::string& path1, const std::string& path2) throw (error);
+-void file_remove(const std::string& path1) throw (error);
+-void file_mktree(const std::string& path1) throw (error);
++bool file_exists(const std::string& file) noexcept (false);
++void file_write(const std::string& path, const char* data, unsigned size) noexcept (false);
++void file_read(const std::string& path, char* data, unsigned size) noexcept (false);
++void file_read(const std::string& path, char* data, unsigned offset, unsigned size) noexcept (false);
++time_t file_time(const std::string& path) noexcept (false);
++void file_utime(const std::string& path, time_t tod) noexcept (false);
++unsigned file_size(const std::string& path) noexcept (false);
++crc_t file_crc(const std::string& path) noexcept (false);
++void file_copy(const std::string& path1, const std::string& path2) noexcept (false);
++void file_move(const std::string& path1, const std::string& path2) noexcept (false);
++void file_remove(const std::string& path1) noexcept (false);
++void file_mktree(const std::string& path1) noexcept (false);
+
+-std::string file_temp(const std::string& path) throw ();
+-std::string file_randomize(const std::string& path, int n) throw ();
+-std::string file_name(const std::string& file) throw ();
+-std::string file_dir(const std::string& file) throw ();
+-std::string file_basename(const std::string& file) throw ();
+-std::string file_basepath(const std::string& file) throw ();
+-std::string file_ext(const std::string& file) throw ();
+-int file_compare(const std::string& path1, const std::string& path2) throw ();
+-std::string file_adjust(const std::string& path) throw ();
++std::string file_temp(const std::string& path) noexcept (true);
++std::string file_randomize(const std::string& path, int n) noexcept (true);
++std::string file_name(const std::string& file) noexcept (true);
++std::string file_dir(const std::string& file) noexcept (true);
++std::string file_basename(const std::string& file) noexcept (true);
++std::string file_basepath(const std::string& file) noexcept (true);
++std::string file_ext(const std::string& file) noexcept (true);
++int file_compare(const std::string& path1, const std::string& path2) noexcept (true);
++std::string file_adjust(const std::string& path) noexcept (true);
+
+ #endif
+
diff --git a/testing/advancescan/APKBUILD b/testing/advancescan/APKBUILD
index 4c5c65d0f75..063781108e5 100644
--- a/testing/advancescan/APKBUILD
+++ b/testing/advancescan/APKBUILD
@@ -1,22 +1,26 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=advancescan
pkgver=1.18
-pkgrel=0
+pkgrel=1
pkgdesc="Command line rom manager for AdvanceMAME and AdvanceMESS"
url="http://www.advancemame.it"
arch="all"
license="GPL"
makedepends="zlib-dev"
subpackages="$pkgname-doc"
-source="https://github.com/amadvance/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz"
+source="https://github.com/amadvance/advancescan/releases/download/v$pkgver/advancescan-$pkgver.tar.gz
+ 0001-cpp17-throw.patch
+ "
options="!check"
prepare() {
default_prepare
+
+ update_config_guess
+ update_config_sub
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,12 +32,15 @@ build() {
}
package() {
- cd "$builddir"
- make bindir="${pkgdir}/usr/bin/" \
- datadir="${pkgdir}/usr/share/" \
- mandir="${pkgdir}/usr/share/man/" \
- pkgdocdir="${pkgdir}/usr/share/doc/${pkgname}/" \
- install
+ make \
+ bindir="$pkgdir/usr/bin/" \
+ datadir="$pkgdir/usr/share/" \
+ mandir="$pkgdir/usr/share/man/" \
+ pkgdocdir="$pkgdir/usr/share/doc/advancescan/" \
+ install
}
-sha512sums="ad7529fb2dd625f8d5aa5f5d1cabfbeb5612b1da6e0952a451abd162a95aadf616b74b2bf5b6c4963188cea1267394f2ee84c3f47a323d345d285e9c63622889 advancescan-1.18.tar.gz"
+sha512sums="
+ad7529fb2dd625f8d5aa5f5d1cabfbeb5612b1da6e0952a451abd162a95aadf616b74b2bf5b6c4963188cea1267394f2ee84c3f47a323d345d285e9c63622889 advancescan-1.18.tar.gz
+795b13bf7f11fdad59644de6cd03196ea05a87ba9c70b3fd89da0f6b2d202759dbecc70736603cb56aea0cd4cb33cb62fcf067c4ea8a061d45d7786c0881f6ef 0001-cpp17-throw.patch
+"
diff --git a/testing/adwaita-qt/APKBUILD b/testing/adwaita-qt/APKBUILD
deleted file mode 100644
index 15d5952ab76..00000000000
--- a/testing/adwaita-qt/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=adwaita-qt
-pkgver=1.1.4
-pkgrel=0
-pkgdesc="style to bend Qt applications to look like they belong into GNOME Shell"
-url="https://github.com/FedoraQt/adwaita-qt"
-arch="all"
-license="GPL-2.0-only AND LGPL-2.1-only"
-makedepends="cmake qt5-qtbase-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/FedoraQt/adwaita-qt/archive/$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DUSE_QT4=Off \
- $CMAKE_CROSSOPTS .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="78390787c4b080608036605c6c713bbd5d482b039796e76974ca8c034e0d8af694704e063d53f99a3e5e7ac4d48f6325ff1c90d67fbeb4bc9e49792485e11cb1 adwaita-qt-1.1.4.tar.gz"
diff --git a/testing/aercbook/0001-zig-0.12-std.ChildProcess.exec-run.patch b/testing/aercbook/0001-zig-0.12-std.ChildProcess.exec-run.patch
new file mode 100644
index 00000000000..80c13b7f292
--- /dev/null
+++ b/testing/aercbook/0001-zig-0.12-std.ChildProcess.exec-run.patch
@@ -0,0 +1,23 @@
+From b7be34e4c7183817729e9e23eba32d93fceaf34d Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sat, 20 Apr 2024 22:25:14 +0200
+Subject: [PATCH] zig 0.12: std.ChildProcess.exec -> run
+
+solves "error: struct 'child_process.ChildProcess' has no member named 'exec'"
+---
+ src/gitversiontag.zig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gitversiontag.zig b/src/gitversiontag.zig
+index 40aed0f..08480a7 100644
+--- a/src/gitversiontag.zig
++++ b/src/gitversiontag.zig
+@@ -6,7 +6,7 @@ pub fn gitVersionTag(a: std.mem.Allocator) []const u8 {
+ "--sort=-creatordate",
+ };
+
+- if (std.ChildProcess.exec(.{ .argv = args[0..], .allocator = a })) |ret| {
++ if (std.ChildProcess.run(.{ .argv = args[0..], .allocator = a })) |ret| {
+ var it = std.mem.split(u8, ret.stdout, "\n");
+ if (it.next()) |firstline| {
+ return firstline;
diff --git a/testing/aercbook/0002-zig-0.12-convert-some-vars-to-consts.patch b/testing/aercbook/0002-zig-0.12-convert-some-vars-to-consts.patch
new file mode 100644
index 00000000000..af73b72e80d
--- /dev/null
+++ b/testing/aercbook/0002-zig-0.12-convert-some-vars-to-consts.patch
@@ -0,0 +1,55 @@
+From 5e40820838eaaf78e95132cb6fdc906686904480 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sat, 20 Apr 2024 22:29:48 +0200
+Subject: [PATCH] zig 0.12: convert some vars to consts
+
+solves "error: local variable is never mutated"
+---
+ src/args.zig | 6 +++---
+ src/main.zig | 2 +-
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/args.zig b/src/args.zig
+index a243c98..89a980e 100644
+--- a/src/args.zig
++++ b/src/args.zig
+@@ -401,7 +401,7 @@ fn parseInt(comptime T: type, str: []const u8) !T {
+ base1024 = true;
+ }
+ if (buf.len != 0) {
+- var pow: u3 = switch (buf[buf.len - 1]) {
++ const pow: u3 = switch (buf[buf.len - 1]) {
+ 'k', 'K' => 1, //kilo
+ 'm', 'M' => 2, //mega
+ 'g', 'G' => 3, //giga
+@@ -415,7 +415,7 @@ fn parseInt(comptime T: type, str: []const u8) !T {
+
+ if (comptime std.math.maxInt(T) < 1024)
+ return error.Overflow;
+- var base: T = if (base1024) 1024 else 1000;
++ const base: T = if (base1024) 1024 else 1000;
+ multiplier = try std.math.powi(T, base, @intCast(pow));
+ }
+ }
+@@ -567,7 +567,7 @@ pub const ErrorCollection = struct {
+
+ /// Appends an error to the collection
+ fn insert(self: *Self, err: Error) !void {
+- var dupe = Error{
++ const dupe = Error{
+ .option = try self.arena.allocator().dupe(u8, err.option),
+ .kind = switch (err.kind) {
+ .invalid_value => |v| Error.Kind{
+diff --git a/src/main.zig b/src/main.zig
+index 7759ebc..38f2a99 100644
+--- a/src/main.zig
++++ b/src/main.zig
+@@ -440,7 +440,7 @@ pub fn main() anyerror!void {
+ help();
+ return;
+ }
+- var key: []const u8 = options.positionals[1];
++ const key: []const u8 = options.positionals[1];
+ var value: []const u8 = undefined;
+ if (options.positionals.len >= 3) {
+ value = options.positionals[2];
diff --git a/testing/aercbook/APKBUILD b/testing/aercbook/APKBUILD
new file mode 100644
index 00000000000..d73e3f57796
--- /dev/null
+++ b/testing/aercbook/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Coco Liliace <coco@liliace.dev>
+# Maintainer: Coco Liliace <coco@liliace.dev>
+pkgname=aercbook
+pkgver=0.1.5
+pkgrel=1
+pkgdesc="Minimalistic address book for aerc"
+url="https://sr.ht/~renerocksai/aercbook/"
+arch="aarch64 x86_64"
+license="MIT"
+makedepends="zig"
+options="!check" # no tests
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~renerocksai/aercbook/archive/v$pkgver.tar.gz
+ 0001-zig-0.12-std.ChildProcess.exec-run.patch
+ 0002-zig-0.12-convert-some-vars-to-consts.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+ aarch64|x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ zig build -Doptimize=ReleaseSafe ${cputarget:+-Dcpu="$cputarget"}
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin ./zig-out/bin/aercbook
+}
+
+sha512sums="
+ffabe7017e5d15df2cf19fa7663b045a7e693acfd34d25a85aa22235ed1f02d5ea40cee2cd0ff9f35d0ad497aefcde5048097365b7037c06c95729cf29d46614 aercbook-0.1.5.tar.gz
+d6c164144d7296df949d24a876ae45e72236efdc1c0997ffe079125ae13794e78c60ffcee3d6d9b33dc5d6021225da27a9e6ba2669d8d4b53939b977e4de1255 0001-zig-0.12-std.ChildProcess.exec-run.patch
+81ed9206b6530fd072732bb9587a3a8ad2c89518203ce49bc225799a06a30548e3654a16cf63bb16db4a6afa1be1c8394317c0b003eaa95eb982fca604f1489c 0002-zig-0.12-convert-some-vars-to-consts.patch
+"
diff --git a/testing/aero2solver/APKBUILD b/testing/aero2solver/APKBUILD
new file mode 100644
index 00000000000..c486c971f53
--- /dev/null
+++ b/testing/aero2solver/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: nezu <nezu@nezu.cc>
+# Maintainer: nezu <nezu@nezu.cc>
+pkgname=aero2solver
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Automatic captcha solver for aero2.pl"
+url="https://github.com/dumbasPL/aero2solver"
+# s390x: builds, but inference fails
+arch="all !s390x"
+license="MIT"
+makedepends="cargo cargo-auditable cmake clang-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/dumbasPL/aero2solver/archive/refs/tags/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.logrotate
+ "
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ MODEL_PATH=/usr/share/$pkgname/model \
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -m755 -D target/release/$pkgname \
+ -t "$pkgdir"/usr/bin/
+
+ install -m644 -D model/captcha.cfg \
+ -t "$pkgdir"/usr/share/$pkgname/model/
+ install -m644 -D model/captcha.names \
+ -t "$pkgdir"/usr/share/$pkgname/model/
+ install -m644 -D model/captcha.weights \
+ -t "$pkgdir"/usr/share/$pkgname/model/
+
+ install -m644 -D LICENSE \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.logrotate \
+ "$pkgdir"/etc/logrotate.d/$pkgname
+}
+
+sha512sums="
+d319eadf9908adc6bee4ef184226ee7b7371095fe03e204141718b90d01aeafec85c9fae1aacc04c8e67570e1c93ae916e5c3aa8a6d0bc2794e10becdd802734 aero2solver-1.0.0.tar.gz
+5183024b38e2b2257b23f82caec82baeb2ebf8c53238c9ce52f32f790909c30f40f2ea47a58bc861da08f84dd861434faeeeb617b0463e17794dc2aa6502d1b3 aero2solver.initd
+9ab94bc219108505264d94c396e979ab54da29fe8adebee247d747bd0035242d7aec6fe4e43a7f297667b51520edd6621167a7dab75987a2fd9ff587368aa2e4 aero2solver.confd
+466789dc2f8877bf04e2bbf0ef142f4cb4b70b1021def3deec39fa854e9661f0c0d583030ceebb4916996c8af4ea1df9a1b3a3d130223c3eea1a23737adba39a aero2solver.logrotate
+"
diff --git a/testing/aero2solver/aero2solver.confd b/testing/aero2solver/aero2solver.confd
new file mode 100755
index 00000000000..36e7ba804de
--- /dev/null
+++ b/testing/aero2solver/aero2solver.confd
@@ -0,0 +1,14 @@
+# Configuration for /etc/init.d/aero2solver
+
+# User (and group) to run aero2solver as.
+#command_user="aero2solver"
+
+# Additional arguments for aero2solver daemon.
+# check `aero2solver --help` for available options
+#command_args=
+
+# File to redirect stdout/stderr into. Set to empty string to disable.
+#logfile="/var/log/aero2solver.log"
+
+# Comment out to disable process supervisor.
+supervisor=supervise-daemon
diff --git a/testing/aero2solver/aero2solver.initd b/testing/aero2solver/aero2solver.initd
new file mode 100755
index 00000000000..f9adf5addcb
--- /dev/null
+++ b/testing/aero2solver/aero2solver.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+
+name="aero2solver"
+description="Aero2 solver daemon"
+
+: ${command_user:="aero2solver:aero2solver"}
+: ${logfile:="/var/log/$RC_SVCNAME.log"}
+
+command="/usr/bin/aero2solver"
+command_args="$command_args"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+output_log="$logfile"
+error_log="$logfile"
+
+depend() {
+ need net
+ use dns
+ after firewall
+}
+
+start_pre() {
+ if [ "$logfile" ]; then
+ checkpath -f -m 644 -o "$command_user" "$logfile"
+ fi
+}
diff --git a/testing/aero2solver/aero2solver.logrotate b/testing/aero2solver/aero2solver.logrotate
new file mode 100644
index 00000000000..01191319f3f
--- /dev/null
+++ b/testing/aero2solver/aero2solver.logrotate
@@ -0,0 +1,5 @@
+/var/log/aero2solver.log {
+ copytruncate
+ missingok
+ notifempty
+}
diff --git a/testing/aero2solver/aero2solver.pre-install b/testing/aero2solver/aero2solver.pre-install
new file mode 100755
index 00000000000..b0ed3fd67a7
--- /dev/null
+++ b/testing/aero2solver/aero2solver.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S aero2solver 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G aero2solver -g aero2solver aero2solver 2>/dev/null
+
+exit 0
diff --git a/testing/afetch/APKBUILD b/testing/afetch/APKBUILD
new file mode 100644
index 00000000000..0173dabe25d
--- /dev/null
+++ b/testing/afetch/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: KikooDX <kikoodx@paranoici.org>
+# Maintainer: KikooDX <kikoodx@paranoici.org>
+pkgname=afetch
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="Fast and simple system info written in C"
+url="https://github.com/13-CF/afetch"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-doc"
+options="!check" # there is no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/13-CF/afetch/archive/refs/tags/V$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+90503f197b454e2edd8d11db3246c57f975b962c639bddc73563c12c5bf63448c4de5b24c550459a3a75cbddb1812a2999363de347c9b970b8eb4d7cd305375c afetch-2.2.0.tar.gz
+"
diff --git a/testing/agate/APKBUILD b/testing/agate/APKBUILD
new file mode 100644
index 00000000000..6580f80abe2
--- /dev/null
+++ b/testing/agate/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=agate
+pkgver=3.3.7
+pkgrel=0
+pkgdesc="Simple Gemini server for static files"
+url="https://github.com/mbrubeck/agate"
+# rust-ring
+arch="all !s390x !ppc64le !riscv64"
+license="Apache-2.0"
+makedepends="cargo cargo-auditable openssl-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mbrubeck/agate/archive/refs/tags/v$pkgver.tar.gz
+ agate.initd
+ agate.confd
+ "
+
+prepare() {
+ default_prepare
+
+ sed -i 's/version = "3.3.1"/version = "3.3.3"/' Cargo.lock
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release
+}
+
+check() {
+ cargo test
+}
+
+package() {
+ install -Dm755 target/release/agate -t "$pkgdir"/usr/bin
+ install -Dm755 "$srcdir"/agate.initd "$pkgdir"/etc/init.d/agate
+ install -Dm644 "$srcdir"/agate.confd "$pkgdir"/etc/conf.d/agate
+}
+
+sha512sums="
+09038d3ce0b2268548634f428c18787ff999993f8ec502e6c05e77c876075b30b401eff8e49eba90f575d8209aff970f5a8179441037c2dd69b497757584b5d5 agate-3.3.7.tar.gz
+711c7687e3e5421d0d625a11aa0067cc5fb4dbe9656e8d9aee2dd1a0fa0befe7a83c705c4875c8f20d3701fa0557c80af4b82373bade7c5be2c4dbd27e9f5141 agate.initd
+d8f54616edafaf513c591fc3ab405c65044a8f43cf1e50e43c7cac5ae3fa5c383a267108c10210ea236a5edfa1fcf2014a932e77bc216cc06dce83cab7e32c85 agate.confd
+"
diff --git a/testing/agate/agate.confd b/testing/agate/agate.confd
new file mode 100644
index 00000000000..d2e8d4789b5
--- /dev/null
+++ b/testing/agate/agate.confd
@@ -0,0 +1,8 @@
+output_log=/var/log/agate.log
+error_log=/var/log/agate.log
+content_path=/var/gemini/
+certificate_path=/var/gemini/.certificates
+hostname=localhost
+
+# comment to run without process supervisor
+supervisor=supervise-daemon
diff --git a/testing/agate/agate.initd b/testing/agate/agate.initd
new file mode 100644
index 00000000000..a26ed87f750
--- /dev/null
+++ b/testing/agate/agate.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+name="agate"
+command="/usr/bin/agate"
+command_user="agate:agate"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+command_args="--content '$content_path' --certs '$certificate_path' --hostname '$hostname'"
+
+depend() {
+ need net localmount
+ after firewall
+}
+
+start_pre() {
+ checkpath -f "$output_log" -o "$command_user"
+ checkpath -f "$error_log" -o "$command_user"
+ checkpath -d "$content_path" -o "$command_user"
+ checkpath -d "$certificate_path" -o "$command_user"
+}
diff --git a/testing/agate/agate.pre-install b/testing/agate/agate.pre-install
new file mode 100644
index 00000000000..a48174c72ff
--- /dev/null
+++ b/testing/agate/agate.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S agate 2>/dev/null
+adduser -S -D -H -h /var/lib/agate -s /sbin/nologin -G agate -g agate agate 2>/dev/null
+
+exit 0
diff --git a/testing/age/APKBUILD b/testing/age/APKBUILD
deleted file mode 100644
index 8f530e06a3c..00000000000
--- a/testing/age/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=age
-pkgver=1.0.0_p2
-_realver=${pkgver/_p/-beta}
-pkgrel=1
-pkgdesc="Simple, modern and secure encryption tool"
-url="https://github.com/FiloSottile/age"
-arch="all"
-license="BSD-3-Clause"
-makedepends="go"
-options="net"
-source="https://github.com/FiloSottile/age/archive/v$_realver/age-$_realver.tar.gz"
-builddir="$srcdir/filippo.io/age"
-
-export GOPATH="$srcdir"
-
-prepare() {
- default_prepare
- cd "$srcdir"
- mkdir -p "$(dirname "$builddir")"
- cp -r "$srcdir/$pkgname-$_realver" "$builddir"
-}
-
-build() {
- mkdir -p bin
- go build -o bin filippo.io/age/cmd/...
-}
-
-check() {
- go test ./...
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin
- install -m755 bin/* "$pkgdir"/usr/bin/
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="461a5b98924081420dbc43fdc2ed870fa8f51249fb6a34287963bc3b96f31308b1f729228d7019a3d5640f24374227c52a2dcfd4f87e19b5a5ad5968dfbc78c7 age-1.0.0-beta2.tar.gz"
diff --git a/testing/agg/APKBUILD b/testing/agg/APKBUILD
index 5d8ac2b8cf6..634985362f0 100644
--- a/testing/agg/APKBUILD
+++ b/testing/agg/APKBUILD
@@ -2,14 +2,13 @@
# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
pkgname=agg
pkgver=2.5
-pkgrel=1
+pkgrel=3
pkgdesc="Anti-Grain Geometry (AGG) is a general purpose graphical toolkit written completely in standard and platform independent C++."
options="!check" # No testsuite
url="https://src.fedoraproject.org/rpms/agg"
arch="all"
license="GPL-2.0-or-later"
-options="!check"
-makedepends="autoconf automake libtool sdl-dev freetype-dev"
+makedepends="autoconf automake libtool sdl12-compat-dev freetype-dev"
subpackages="$pkgname-dev"
source="https://sources.archlinux.org/other/community/agg/$pkgname-free-$pkgver.tar.gz
agg-2.4-depends.patch
diff --git a/testing/aide/APKBUILD b/testing/aide/APKBUILD
new file mode 100644
index 00000000000..d70c9794e58
--- /dev/null
+++ b/testing/aide/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=aide
+pkgver=0.18.6
+pkgrel=0
+pkgdesc="file integrity checker and intrusion detection program"
+url="https://aide.github.io/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ autoconf
+ automake
+ bison
+ flex
+ libgcrypt-dev
+ pcre2-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/aide/aide/releases/download/v$pkgver/aide-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+c0e7c366029a401bce4cf44762caecada4d4831bfc2f00ebab6cb818ba259fae5409fdfcc7386d2bc9ca91a8e8fe0eb78927205bc75513578b8a3ccd17183744 aide-0.18.6.tar.gz
+"
diff --git a/testing/airsonic-advanced/APKBUILD b/testing/airsonic-advanced/APKBUILD
new file mode 100644
index 00000000000..ec5e7c161b6
--- /dev/null
+++ b/testing/airsonic-advanced/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=airsonic-advanced
+_sha=1397446f979b1cdea283eec89ce4f0eae7d63450
+pkgver=11.0.0_git20230217
+pkgrel=0
+pkgdesc="Modern implementation of the Airsonic fork with several key performance and feature enhancements"
+url="https://github.com/airsonic-advanced/airsonic-advanced"
+# inconsistent test and build failures on other arches
+arch="x86_64"
+license="GPL-3.0-or-later"
+depends="openjdk11"
+makedepends="maven"
+subpackages="$pkgname-openrc"
+pkgusers="airsonic-advanced"
+pkggroups="airsonic-advanced"
+install="$pkgname.pre-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/airsonic-advanced/airsonic-advanced/archive/$_sha.tar.gz
+ maven.patch
+ airsonic-advanced.initd
+ "
+builddir="$srcdir/$pkgname-$_sha"
+
+build() {
+ mvn clean package -DskipTests
+}
+
+check() {
+ mvn test
+}
+
+package() {
+ install -dm755 -o airsonic-advanced -g airsonic-advanced \
+ "$pkgdir"/var/airsonic
+
+ install -m755 -o airsonic-advanced -g airsonic-advanced \
+ "$builddir"/airsonic-main/target/airsonic.war \
+ "$pkgdir"/var/airsonic/airsonic.war
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+f415620bdbed9fb3874afbf30d9362e68b1e9e8e90dbbed4ca3206b643cad97ca0558e64ec5b4440382f0ec908c3325e321ea3631c38ff9a2109163c8f0cfe0b airsonic-advanced-11.0.0_git20230217.tar.gz
+6cb52fee19815fcdf2596e55d97d3e750321b1df7a4fec36fc9bc2a57d4be979a3905a42d3aa9dbeb2bf0d4f56edbf344f13551219b8e4d2ca583abd4bb5c8f9 maven.patch
+ca87e6a7199950e6ac52aeb076a03f831d60ee9d4ceed47366bbd78443765d205796d895ebb244051d8033e5b2e9ccd648d20434039c854b8b50e766cc5cd10d airsonic-advanced.initd
+"
diff --git a/testing/airsonic-advanced/airsonic-advanced.initd b/testing/airsonic-advanced/airsonic-advanced.initd
new file mode 100644
index 00000000000..c1ce9bd894c
--- /dev/null
+++ b/testing/airsonic-advanced/airsonic-advanced.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name="airsonic-advanced"
+command="/usr/lib/jvm/java-11-openjdk/jre/bin/java"
+command_args="-jar airsonic.war"
+command_user="airsonic-advanced:airsonic-advanced"
+directory="/var/airsonic"
+pidfile="/run/airsonic-advanced.pid"
+
+depend() {
+ need net localmount
+ after firewall
+}
diff --git a/testing/airsonic-advanced/airsonic-advanced.pre-install b/testing/airsonic-advanced/airsonic-advanced.pre-install
new file mode 100644
index 00000000000..373b896d5ca
--- /dev/null
+++ b/testing/airsonic-advanced/airsonic-advanced.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S airsonic-advanced 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G airsonic-advanced -g airsonic-advanced airsonic-advanced 2>/dev/null
+
+exit 0
diff --git a/testing/airsonic-advanced/maven.patch b/testing/airsonic-advanced/maven.patch
new file mode 100644
index 00000000000..56594b62899
--- /dev/null
+++ b/testing/airsonic-advanced/maven.patch
@@ -0,0 +1,8 @@
+fixes maven 3.9 breaking change
+https://maven.apache.org/docs/3.9.0/release-notes.html#potentially-breaking-core-changes
+--- airsonic-advanced-1397446f979b1cdea283eec89ce4f0eae7d63450/.mvn/maven.config
++++ airsonic-advanced-1397446f979b1cdea283eec89ce4f0eae7d63450/.mvn/maven.config
+@@ -1 +1,2 @@
+---settings ./.mvn/settings.xml
++--settings
++./.mvn/settings.xml
diff --git a/testing/alarmwakeup/APKBUILD b/testing/alarmwakeup/APKBUILD
new file mode 100644
index 00000000000..fa95b97fb3e
--- /dev/null
+++ b/testing/alarmwakeup/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Affe Null <affenull2345@gmail.com>
+pkgname=alarmwakeup
+pkgver=0.2.1
+pkgrel=0
+pkgdesc="RTC alarm management daemon"
+url="https://git.abscue.de/obp/alarmwakeup"
+arch="all"
+license="GPL-3.0-or-later"
+pkggroups="rtc"
+makedepends="
+ linux-headers
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-libs
+ $pkgname-utils
+ "
+source="
+ https://git.abscue.de/obp/alarmwakeup/-/archive/v$pkgver/alarmwakeup-v$pkgver.tar.gz
+ "
+options="!check suid" # no tests available
+builddir="$srcdir/alarmwakeup-v$pkgver"
+
+build() {
+ make
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+ # limit access to "rtc" group
+ chgrp rtc "$pkgdir/usr/bin/alarm-wakeup-daemon"
+ chmod 4750 "$pkgdir/usr/bin/alarm-wakeup-daemon"
+}
+
+utils() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ amove usr/bin/alarm-wakeup-ctl
+}
+
+sha512sums="
+070308f3bf6ab6c57102663341ba4b2456bc6dd6f0e6bcf459b7fdd43e29e610447f4c4c75e188731e4ed9d5d2ce02b6d9b33236d06cfcca47b3b594fce03283 alarmwakeup-v0.2.1.tar.gz
+"
diff --git a/testing/alda/APKBUILD b/testing/alda/APKBUILD
new file mode 100644
index 00000000000..f68c89a1d04
--- /dev/null
+++ b/testing/alda/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=alda
+pkgver=2.2.7
+pkgrel=4
+pkgdesc="Music programming language for musicians"
+url="https://github.com/alda-lang/alda"
+arch="x86_64"
+# aarch64: segfaults on gradle build
+# everything else: blocked by openjdk17
+license="EPL-2.0"
+depends="openjdk17"
+makedepends="go openjdk17-jdk gradle"
+source="$pkgname-$pkgver.tar.gz::https://github.com/alda-lang/alda/archive/refs/tags/release-$pkgver.tar.gz
+ alda-player
+ "
+builddir="$srcdir/$pkgname-release-$pkgver"
+options="!check" # no tests provided by upstream
+
+build() {
+ (
+ cd player
+ gradle --no-daemon build
+ )
+
+ (
+ cd client
+ go generate
+ go build
+ )
+}
+
+package() {
+ install -Dm755 client/client \
+ "$pkgdir"/usr/bin/alda
+
+ install -Dm644 player/build/libs/alda-player-fat.jar \
+ -t "$pkgdir"/usr/share/alda/
+
+ install -Dm755 "$srcdir"/alda-player \
+ -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+8df7280be8cdd30f45167288f6eb799803eb1aa950d220a80d57692e91acac85518623ef5e49c251594cb9af1de5ea9c84ab3961d12c2c68cd20482a7c63302a alda-2.2.7.tar.gz
+77d841e2b7873eb0de06723a5ea5373cc251ff8e82e1d542bc6e1fd297808e94bb9c322783366cbbea31f40284b073ed584296d02f30e36f9ac29158ad53430c alda-player
+"
diff --git a/testing/alda/alda-player b/testing/alda/alda-player
new file mode 100644
index 00000000000..91ff4e17f2e
--- /dev/null
+++ b/testing/alda/alda-player
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/lib/jvm/java-17-openjdk/bin/java -jar /usr/share/alda/alda-player-fat.jar "$@"
diff --git a/testing/allegro/APKBUILD b/testing/allegro/APKBUILD
deleted file mode 100644
index 69c4c1a8e27..00000000000
--- a/testing/allegro/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=allegro
-pkgver=5.2.6.0
-pkgrel=0
-arch="all"
-url="https://liballeg.org"
-pkgdesc="Portable library mainly aimed at video game and multimedia programming"
-license="BSD-3-Clause"
-makedepends="cmake xorg-server-dev mesa-dev glu-dev libxcursor-dev libjpeg-turbo-dev
- libwebp-dev flac-dev libvorbis-dev libxi-dev libtheora-dev alsa-lib-dev
- pulseaudio-dev sdl2-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/liballeg/allegro5/archive/$pkgver/allegro5-$pkgver.tar.gz"
-subpackages="$pkgname-dev"
-options="!check" # No tests
-builddir="$srcdir/allegro5-$pkgver"
-
-build() {
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DALLEGRO_SDL=ON
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="d590c1a00d1b314c6946e0f6ad3e3a8b6e6309bada2ec38857186f817147ac99dae8a1c4412abe701af88da5dca3dd8f989a1da66630192643d3c08c0146b603 allegro-5.2.6.0.tar.gz"
diff --git a/testing/alpine-lift/APKBUILD b/testing/alpine-lift/APKBUILD
new file mode 100644
index 00000000000..35d4343c313
--- /dev/null
+++ b/testing/alpine-lift/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=alpine-lift
+pkgver=0.2.0
+pkgrel=15
+pkgdesc="Basic cloud-init-like for Alpine Linux"
+url="https://github.com/bjwschaap/alpine-lift"
+license="MIT"
+arch="all"
+makedepends="go"
+options="!check" #no golint avail
+source="$pkgname-$pkgver.tar.gz::https://github.com/bjwschaap/alpine-lift/archive/refs/tags/v$pkgver.tar.gz
+makefile.patch
+"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_CPPFLAGS="$CPPFLAGS"
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_CXXFLAGS="$CXXFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ export GOFLAGS="$GOFLAGS -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
+ make localbuild
+}
+
+package() {
+ install -m755 -D bin/lift \
+ "$pkgdir"/usr/bin/lift
+}
+sha512sums="
+d7e457b4f1147390e1d0932786a23c1339d9099eebfc3ac43ebda5866614b2a29a06345b2ffc822da32c3598efd9adb757d472dbf7fd24c6da8179b63b5dcd6f alpine-lift-0.2.0.tar.gz
+6285b8a839b5c6ad0f4e7208903060cbbf289a5cc1661d5618f8e9d0d2a7ed0c35d5160992246eef303de66e90416f6f44787ceb918bbcf398248831e5e778ae makefile.patch
+"
diff --git a/testing/alpine-lift/makefile.patch b/testing/alpine-lift/makefile.patch
new file mode 100644
index 00000000000..35085007c68
--- /dev/null
+++ b/testing/alpine-lift/makefile.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 0e66003..3269166 100644
+--- a/Makefile
++++ b/Makefile
+@@ -25,7 +25,7 @@ upxbuild:
+ ${DOCKERRUN} ash -c "apk add --no-cache git upx libc-dev gcc && GO111MODULE=on go mod download && ${GOBUILD} -o bin/${BINNAME} github.com/bjwschaap/alpine-lift/cmd/lift && ${UPX}"
+
+ localbuild:
+- ${GOBUILD} -v -race -o bin/${BINNAME} github.com/bjwschaap/alpine-lift/cmd/lift
++ ${GOBUILD} -v -o bin/${BINNAME} github.com/bjwschaap/alpine-lift/cmd/lift
+
+ upx:
+ ${UPX}
diff --git a/testing/alps/APKBUILD b/testing/alps/APKBUILD
new file mode 100644
index 00000000000..5da273ae366
--- /dev/null
+++ b/testing/alps/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=alps
+pkgver=0_git20230807
+pkgrel=3
+_commit=652ea9c7885a6c508d3c69c37b7c65e5bbe4fe77
+pkgdesc="Simple and extensible webmail"
+url="https://sr.ht/~migadu/alps/"
+arch="all"
+license="MIT"
+makedepends="go"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$_commit.tar.gz::https://git.sr.ht/~migadu/alps/archive/$_commit.tar.gz
+ fix-statics-dir.patch
+
+ alps.confd
+ alps.initd
+ "
+builddir="$srcdir/alps-$_commit"
+options="!check net" # no tests in upstream
+
+build() {
+ go build -o alps ./cmd/alps
+}
+
+package() {
+ install -Dm755 alps "$pkgdir"/usr/bin/alps
+
+ install -dm755 "$pkgdir"/var/lib/alps
+ cp -r themes "$pkgdir"/var/lib/alps
+ for asset in plugins/*/public/*.html plugins/*/public/**/*; do
+ install -Dm644 "$asset" "$pkgdir"/var/lib/alps/"$asset"
+ done
+
+ install -Dm755 "$srcdir"/alps.initd "$pkgdir"/etc/init.d/alps
+ install -Dm644 "$srcdir"/alps.confd "$pkgdir"/etc/conf.d/alps
+}
+
+sha512sums="
+17161088b6cd50d07e24deb90b54e17a54f0e634f9101aec1565cf16a1960ee9a086004d76052c3385fe93e4f71aa4335f4d1656523ae59dcdb8d899fccd3e07 alps-652ea9c7885a6c508d3c69c37b7c65e5bbe4fe77.tar.gz
+789b4cae9b2c4acb5b05288c4f9858de1b5cfda87bc96c40505e9447ec9ad39fdabbd5af0c65007c51a5f3a425602ea7a81d3f6c62894dddf6790fe26793755c fix-statics-dir.patch
+61c1b05851ae05fbf51cb8eb060c5677de7145a07dac3a194a3f7513b2ff3bf5f3792a749d1a2eef09fc6378f2fbf2021cc49dffe652f51230120c40a7062b6c alps.confd
+6e109577d662ce61d2b753e5b82237827646f10d0af02b10b3f184a10bb747c3c8303e7d20a5cc2b7c31ac4a6f3aef62290c068868e647c9b1ce711dfb6e025a alps.initd
+"
diff --git a/testing/alps/alps.confd b/testing/alps/alps.confd
new file mode 100644
index 00000000000..cd610105fd1
--- /dev/null
+++ b/testing/alps/alps.confd
@@ -0,0 +1,11 @@
+# Configuration for /etc/init.d/alps
+
+# space-separated list of imap/smtp servers
+servers="imap://localhost"
+
+theme="alps"
+listen_address=":1323"
+command_user="alps:alps"
+
+# comment this out for old style service management
+supervisor=supervise-daemon
diff --git a/testing/alps/alps.initd b/testing/alps/alps.initd
new file mode 100644
index 00000000000..307c6e333dd
--- /dev/null
+++ b/testing/alps/alps.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+
+name="alps webmail server"
+
+command="/usr/bin/alps"
+command_args="${listen_address:+-addr $listen_address} ${theme:+-theme $theme} $servers"
+: ${command_user:="alps:alps"}
+command_background=yes
+directory="/var/lib/alps"
+pidfile="/run/alps.pid"
+
+output_log="/var/log/alps.log"
+error_log="/var/log/alps.log"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 755 -o "$command_user" /var/lib/alps
+ checkpath -f -m 644 -o "$command_user" /var/log/alps.log
+}
diff --git a/testing/alps/alps.pre-install b/testing/alps/alps.pre-install
new file mode 100644
index 00000000000..176a8010928
--- /dev/null
+++ b/testing/alps/alps.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S alps
+adduser -S -D -H -h /var/lib/alps -s /sbin/nologin -G alps -g alps alps
+
+exit 0
diff --git a/testing/alps/fix-statics-dir.patch b/testing/alps/fix-statics-dir.patch
new file mode 100644
index 00000000000..72eaffaaab3
--- /dev/null
+++ b/testing/alps/fix-statics-dir.patch
@@ -0,0 +1,26 @@
+diff --git a/cmd/alps/main.go b/cmd/alps/main.go
+index 5a00957..f537177 100644
+--- a/cmd/alps/main.go
++++ b/cmd/alps/main.go
+@@ -23,7 +23,7 @@ import (
+ _ "git.sr.ht/~migadu/alps/plugins/viewtext"
+ )
+
+-var themesPath = "./themes"
++var themesPath = "/var/lib/alps/themes"
+
+ func main() {
+ var (
+diff --git a/plugin.go b/plugin.go
+index e634f02..43b8164 100644
+--- a/plugin.go
++++ b/plugin.go
+@@ -7,7 +7,7 @@ import (
+ )
+
+ // PluginDir is the path to the plugins directory.
+-const PluginDir = "plugins"
++const PluginDir = "/var/lib/alps/plugins"
+
+ // Plugin extends alps with additional functionality.
+ type Plugin interface {
diff --git a/testing/alsa-ucm-conf-asahi/APKBUILD b/testing/alsa-ucm-conf-asahi/APKBUILD
new file mode 100644
index 00000000000..32a94dbce83
--- /dev/null
+++ b/testing/alsa-ucm-conf-asahi/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=alsa-ucm-conf-asahi
+pkgver=5
+pkgrel=0
+pkgdesc="ALSA Use Case Manager configuration for Apple silicon devices"
+url="https://asahilinux.org/"
+arch="aarch64"
+license="BSD-3-Clause"
+depends="alsa-ucm-conf>=1.2.7.2"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsahiLinux/alsa-ucm-conf-asahi/archive/refs/tags/v$pkgver.tar.gz"
+
+package() {
+ install -vdm 755 "$pkgdir/usr/share/alsa/ucm2/conf.d"
+ cp -av ucm2/conf.d/macaudio "$pkgdir/usr/share/alsa/ucm2/conf.d/"
+}
+
+sha512sums="
+4e2f8b0108c0ec4168ebe1dae88da0b486cc26695ca89fc450340fbc5532616847eb9c49097be5216e8b7b8cb7c62ac78032d253d4264ac0d0378817bf85af81 alsa-ucm-conf-asahi-5.tar.gz
+"
diff --git a/testing/alttab/0001-Fix-memleaks-in-error-case.patch b/testing/alttab/0001-Fix-memleaks-in-error-case.patch
deleted file mode 100644
index 730e0fff54c..00000000000
--- a/testing/alttab/0001-Fix-memleaks-in-error-case.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 980bdef0fde36772e283e36a7e12ce28ff1901aa Mon Sep 17 00:00:00 2001
-From: Michael Vetter <jubalh@iodoru.org>
-Date: Thu, 3 Oct 2019 17:25:19 +0200
-Subject: [PATCH] Fix memleaks in error case
-
-We should free img.data.
----
- src/pngd.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/pngd.c b/src/pngd.c
-index ef46621..fb3fd25 100644
---- a/src/pngd.c
-+++ b/src/pngd.c
-@@ -250,6 +250,7 @@ int pngReadToDrawable(char *pngpath, Drawable d, uint8_t bg_red,
- fclose(infile);
- if (!img.data || img.width == 0 || img.height == 0) {
- fprintf(stderr, "error loading png data\n");
-+ pngFree(&img);
- return 0;
- }
- if (debug > 0)
-@@ -259,6 +260,7 @@ int pngReadToDrawable(char *pngpath, Drawable d, uint8_t bg_red,
- pad = 32;
- if (!xdata) {
- fprintf(stderr, "xdata malloc error\n");
-+ pngFree(&img);
- return 0;
- }
- ximage =
-@@ -267,6 +269,7 @@ int pngReadToDrawable(char *pngpath, Drawable d, uint8_t bg_red,
- if (!ximage) {
- fprintf(stderr, "error creating ximage\n");
- free(xdata);
-+ pngFree(&img);
- return 0;
- }
- ximage->byte_order = MSBFirst;
---
-2.24.0
-
diff --git a/testing/alttab/0002-Remove-check-around-free.patch b/testing/alttab/0002-Remove-check-around-free.patch
deleted file mode 100644
index a3f26b3b905..00000000000
--- a/testing/alttab/0002-Remove-check-around-free.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f7e8ff30190a3134863d7ff03becc2e397ec9db0 Mon Sep 17 00:00:00 2001
-From: Michael Vetter <jubalh@iodoru.org>
-Date: Thu, 3 Oct 2019 17:20:40 +0200
-Subject: [PATCH] Remove check around free()
-
-free(NULL) is noop. We don't need to check for this.
----
- src/randr.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/randr.c b/src/randr.c
-index e4ebe9d..0622c73 100644
---- a/src/randr.c
-+++ b/src/randr.c
-@@ -186,8 +186,7 @@ bool randrGetViewport(quad * res, bool * multihead)
- if (no < 1) {
- msg(0, "randr didn't detect any output\n");
- *multihead = false;
-- if (oq != NULL)
-- free(oq);
-+ free(oq);
- return false;
- }
- if (no == 1) {
---
-2.24.0
-
diff --git a/testing/alttab/APKBUILD b/testing/alttab/APKBUILD
index ff90e2938bf..ad4539408b7 100644
--- a/testing/alttab/APKBUILD
+++ b/testing/alttab/APKBUILD
@@ -1,19 +1,17 @@
# Contributor: Alexander Kulak <sa-dev@rainbow.by>
# Maintainer: Alexander Kulak <sa-dev@rainbow.by>
pkgname=alttab
-pkgver=1.4.0
+pkgver=1.7.1
pkgrel=0
pkgdesc="X11 window switcher designed for minimalistic window managers"
url="https://github.com/sagb/alttab"
options="!check"
arch="all"
license="GPL-3.0-or-later"
-makedepends="libx11-dev libxft-dev fts-dev libxrender-dev libxrandr-dev
- libpng-dev uthash-dev"
+makedepends="autoconf automake libx11-dev libxft-dev musl-fts-dev libxrender-dev libxrandr-dev
+ libpng-dev uthash-dev libxpm-dev"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/sagb/alttab/archive/v$pkgver.tar.gz
- 0001-Fix-memleaks-in-error-case.patch
- 0002-Remove-check-around-free.patch
"
prepare() {
@@ -28,7 +26,7 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --localstatedir=/var && \
+ --localstatedir=/var
make
}
@@ -36,6 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="263625e4dfabcb697fdf38b330fd7e179a36e5c1111fe8a2aa98a6eb1434c8ff20400f0317845bd5a0f0454baf6b59369ab25270953690f544d0923fc4deab3b alttab-1.4.0.tar.gz
-7368b0706ccca5ae70cb050912be06b718a9727f3460abd5f349834f16f0d45a643e3f0914875a0aaa5d275d55d10953b302eb1d0891e179a3ecf62fdd34fbd7 0001-Fix-memleaks-in-error-case.patch
-d69d5b9d90d84cc8c7f54ba7132602ab4e3ed8b0bdcf3ff07cc317f093c925855dfd15f883809e710fb0cbfebcf05dbcdca58e69842e050ef7ad6dc903a52c1b 0002-Remove-check-around-free.patch"
+sha512sums="
+d9f6c1d00be21e975521ebc39e800f00522f0d898512a7e3a406ae859890c553a1ae312a0947701085831aa5e62b5b9db859ae84af4b3e8f3370462634a5ab97 alttab-1.7.1.tar.gz
+"
diff --git a/testing/amazon-ssm-agent/001_sanitize_makefile.patch b/testing/amazon-ssm-agent/001_sanitize_makefile.patch
new file mode 100644
index 00000000000..bdb14a7e113
--- /dev/null
+++ b/testing/amazon-ssm-agent/001_sanitize_makefile.patch
@@ -0,0 +1,74 @@
+# Remove CGO flag, and make build options match the same format
+--- a/makefile
++++ b/makefile
+@@ -1,6 +1,6 @@
+ COPY := cp -p
+ GO_BUILD_NOPIE := CGO_ENABLED=0 go build -ldflags "-s -w" -trimpath
+-GO_BUILD_PIE := go build -ldflags "-s -w -extldflags=-Wl,-z,now,-z,relro,-z,defs" -buildmode=pie -trimpath
++GO_BUILD_PIE := go build -ldflags "-s -w -extldflags=-Wl,-z,now,-z,relro,-z,defs" -buildmode=pie -trimpath
+ GO_BUILD_STATIC_PIE := go build -ldflags '-linkmode external -s -w -extldflags "-static-pie -Wl,-z,relro,-z,defs"' -buildmode=pie -trimpath -tags 'osusergo netgo static_build'
+ GO_BUILD_DEBUG := go build -gcflags "all=-N -l"
+
+@@ -34,7 +34,7 @@
+ github.com/aws/amazon-ssm-agent/agent/... \
+ github.com/aws/amazon-ssm-agent/core/...
+
+-build:: build-linux build-freebsd build-windows build-linux-386 build-windows-386 build-arm build-arm64 build-darwin-amd64 build-darwin-arm64
++build:: build-linux-amd64 build-freebsd build-windows build-linux-386 build-windows-386 build-linux-arm build-linux-arm64 build-darwin-amd64 build-darwin-arm64
+
+ prepack:: cpy-plugins copy-win-dep prepack-linux prepack-linux-arm64 prepack-linux-386 prepack-windows prepack-windows-386
+
+@@ -149,11 +149,11 @@
+ # Pre-defined recipes for various supported builds:
+
+ # Production 64bit linux binaries are built using GO_BUILD_STATIC_PIE
+-.PHONY: build-linux
+-build-linux: GOARCH=amd64
+-build-linux: GOOS=linux
+-build-linux: GO_BUILD=$(GO_BUILD_PIE)
+-build-linux: build-any-amd64-linux
++.PHONY: build-linux-amd64
++build-linux-amd64: GOARCH=amd64
++build-linux-amd64: GOOS=linux
++build-linux-amd64: GO_BUILD=$(GO_BUILD_PIE)
++build-linux-amd64: build-any-amd64-linux
+
+ .PHONY: build-linux-debug
+ build-linux-debug: clean pre-release
+@@ -193,7 +193,7 @@
+ .PHONY: build-linux-386
+ build-linux-386: GOOS=linux
+ build-linux-386: GOARCH=386
+-build-linux-386: GO_BUILD=$(GO_BUILD_NOPIE)
++build-linux-386: GO_BUILD=$(GO_BUILD_PIE)
+ build-linux-386: build-any-linux-386
+
+ .PHONY: build-windows-386
+@@ -205,17 +205,17 @@
+ build-windows-386: GO_WORKER_SRC_TYPE=windows
+ build-windows-386: build-any-windows-386
+
+-.PHONY: build-arm
+-build-arm: GOOS=linux
+-build-arm: GOARCH=arm
+-build-arm: GO_BUILD=GOARM=6 $(GO_BUILD_NOPIE)
+-build-arm: build-any-arm
++.PHONY: build-linux-arm
++build-linux-arm: GOOS=linux
++build-linux-arm: GOARCH=arm
++build-linux-arm: GO_BUILD=GOARM=6 $(GO_BUILD_PIE)
++build-linux-arm: build-any-linux-arm
+
+-.PHONY: build-arm64
+-build-arm64: GOOS=linux
+-build-arm64: GOARCH=arm64
+-build-arm64: GO_BUILD=$(GO_BUILD_NOPIE)
+-build-arm64: build-any-linux-arm64
++.PHONY: build-linux-arm64
++build-linux-arm64: GOOS=linux
++build-linux-arm64: GOARCH=arm64
++build-linux-arm64: GO_BUILD=$(GO_BUILD_PIE)
++build-linux-arm64: build-any-linux-arm64
+
+ .PHONY: copy-src
+ copy-src:
diff --git a/testing/amazon-ssm-agent/APKBUILD b/testing/amazon-ssm-agent/APKBUILD
new file mode 100644
index 00000000000..e10d984a904
--- /dev/null
+++ b/testing/amazon-ssm-agent/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Will Sinatra <wpsinatra@gmail.com>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=amazon-ssm-agent
+pkgver=3.3.217.0
+pkgrel=0
+pkgdesc="Amazon SSM Agent for managing EC2 Instances using the SSM APIs."
+url="https://aws.amazon.com/documentation/systems-manager/"
+license="Apache-2.0"
+arch="all !s390x !riscv64 !ppc64le"
+# armv7/armhf/x86 complains about cgo linking not being enabled
+makedepends="go gcompat bash cgo"
+source="https://github.com/aws/amazon-ssm-agent/archive/$pkgver/amazon-ssm-agent-$pkgver.tar.gz
+ amazon-ssm-agent.initd
+ 001_sanitize_makefile.patch"
+subpackages="$pkgname-openrc"
+options="!check"
+_binaries="amazon-ssm-agent
+ ssm-agent-worker
+ ssm-cli
+ ssm-document-worker
+ ssm-session-logger
+ ssm-session-worker
+ ssm-setup-cli
+ "
+
+case "$CARCH" in
+ armhf) build_arch=arm ;;
+ armv7) build_arch=arm ;;
+ x86) build_arch=386 ;;
+ x86_64) build_arch=amd64 ;;
+ aarch64) build_arch=arm64 ;;
+esac
+
+build() {
+ make build-linux-$build_arch
+}
+
+package() {
+ for bin in $_binaries; do
+ install -Dm0755 "$builddir"/bin/linux_$build_arch/$bin "$pkgdir"/usr/bin/$bin
+ done
+
+ install -Dm0644 "$builddir"/bin/amazon-ssm-agent.json.template \
+ "$pkgdir"/etc/amazon/ssm/amazon-ssm-agent.json.template
+ install -Dm0644 "$builddir"/bin/seelog_unix.xml \
+ "$pkgdir"/etc/amazon/ssm/seelog.xml
+ install -Dm0644 "$builddir"/bin/seelog_windows.xml.template \
+ "$pkgdir"/etc/amazon/ssm/seelog_windows.xml.template
+
+ install -Dm0755 "$srcdir"/amazon-ssm-agent.initd \
+ "$pkgdir"/etc/init.d/amazon-ssm-agent
+}
+
+sha512sums="
+96b4ef5b3b997b01c667bfbf4bb972cd401eddbfef430b19c69a0e5a498f63abc01fa0ea7ede4c16f4ea7acce63c9b05eae1157c34b27906df669214ad1064a6 amazon-ssm-agent-3.3.217.0.tar.gz
+2c07d6777ad0d3994f09838818bff2c0bc061238e2c3ca757a9bd04cd25924ce24bdc2ecd7edbd4b10717ba3c8806398626e0718acf8e7ba5c66853369b20f48 amazon-ssm-agent.initd
+d90a10ed7f3cf0a58bb73f737c2d10d56b3942886535df7d9215e2cf809c59ef708ed4d9775062e46343cf64726d25adaf048c86f39d4a7647deebd91d69c2f9 001_sanitize_makefile.patch
+"
diff --git a/testing/amazon-ssm-agent/amazon-ssm-agent.initd b/testing/amazon-ssm-agent/amazon-ssm-agent.initd
new file mode 100644
index 00000000000..7862dbe5490
--- /dev/null
+++ b/testing/amazon-ssm-agent/amazon-ssm-agent.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+description="Initialize Amazon SSM Agent"
+command="/usr/bin/amazon-ssm-agent"
+
+start() {
+ ebegin "Starting SSM Agent"
+ start-stop-daemon --start \
+ --chdir ${SSM Agent_path} \
+ --exec ${command} ${command_args} \
+ -b --make-pidfile \
+ --pidfile "${pidfile}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping SSM Agent"
+ start-stop-daemon --stop \
+ --exec ${command} \
+ --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/testing/amdgpu-fan/APKBUILD b/testing/amdgpu-fan/APKBUILD
new file mode 100644
index 00000000000..ea1a75b1593
--- /dev/null
+++ b/testing/amdgpu-fan/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=amdgpu-fan
+pkgver=0.1.0
+pkgrel=4
+pkgdesc="Fan controller for AMD graphics cards running the amdgpu driver on Linux"
+url="https://github.com/zzkW35/amdgpu-fan"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="python3 py3-yaml py3-numpy"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/zzkW35/amdgpu-fan/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ sed -i "s/PROJECTVERSION/$pkgver/g" setup.py
+}
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD/build/lib" pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+b21d8e413d44a263fdbef37fff11a496fe5e46a1f4d1e7ade161dde36750cf0dc02dfd2ccaebc455dac5aa023150101a65a255a38e6d9b70a6bba39da8f26378 amdgpu-fan-0.1.0.tar.gz
+"
diff --git a/testing/ameba/APKBUILD b/testing/ameba/APKBUILD
deleted file mode 100644
index 2b78e3ba755..00000000000
--- a/testing/ameba/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=ameba
-pkgver=0.12.1
-pkgrel=0
-pkgdesc="A static code analysis tool for Crystal"
-url="https://github.com/crystal-ameba/ameba"
-arch="x86_64" # limited by crystal aport
-license="MIT"
-makedepends="crystal libxml2-dev shards yaml-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/veelenga/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-export CRYSTAL_CACHE_DIR="$srcdir/.cache"
-
-build() {
- cd "$builddir"
- make CRFLAGS="--release"
-}
-
-check() {
- cd "$builddir"
- make test SPEC_FLAGS="--no-color"
-}
-
-package() {
- cd "$builddir"
- make install PREFIX="$pkgdir/usr"
-}
-
-sha512sums="1c7612541c2a6cc79a9c95baf702d02c417fa1e9ec8614b24e96ba4e6df6147fc11919740820e9c36f0fed547c122a090acffcfda7844ea5049be2eaf29b4999 ameba-0.12.1.tar.gz"
diff --git a/testing/amiitool/APKBUILD b/testing/amiitool/APKBUILD
index 7bfee44eb8c..7c7193a3097 100644
--- a/testing/amiitool/APKBUILD
+++ b/testing/amiitool/APKBUILD
@@ -3,7 +3,7 @@
pkgname=amiitool
pkgver=2
_pkgver=r2
-pkgrel=0
+pkgrel=2
pkgdesc="Reverse-engineered amiibo cryptography"
url="https://github.com/socram8888/amiitool"
arch="all"
@@ -12,6 +12,7 @@ options="!check" # No test suite
makedepends="git mbedtls-dev" # git is used to pull head version
source="$pkgname-$_pkgver.tar.gz::https://github.com/socram8888/amiitool/archive/$_pkgver.tar.gz
fix-mbedtls_include.patch
+ zero-gitversion.patch
"
builddir="$srcdir/$pkgname-$_pkgver"
@@ -23,5 +24,8 @@ package() {
make prefix=/usr DESTDIR="$pkgdir" install
}
-sha512sums="28087a022a88ca604f610dff6f49f19f4c273d7787401a3e1dd998243ba4ca3628adb58bf9ea20e8e6c77cc021bedfeda8b632e0a50efe752eec543f20ef33d6 amiitool-r2.tar.gz
-50bc13ff736c65b05b402e3dc1c3e61242271e9d311f5a60169263e2dd6ca5765dee6b1cde963e3a76980deaf29ee1e65991b9028f9c58c3a6402d959015993e fix-mbedtls_include.patch"
+sha512sums="
+28087a022a88ca604f610dff6f49f19f4c273d7787401a3e1dd998243ba4ca3628adb58bf9ea20e8e6c77cc021bedfeda8b632e0a50efe752eec543f20ef33d6 amiitool-r2.tar.gz
+50bc13ff736c65b05b402e3dc1c3e61242271e9d311f5a60169263e2dd6ca5765dee6b1cde963e3a76980deaf29ee1e65991b9028f9c58c3a6402d959015993e fix-mbedtls_include.patch
+52d4588b155d66f762523247b4a2ba98c1230d06adc9de4b065a6ccbfe4acc6ed5834a7426d0e81fadd8a8517667da61fdd3653d46c7b718d887a470028cc5b5 zero-gitversion.patch
+"
diff --git a/testing/amiitool/zero-gitversion.patch b/testing/amiitool/zero-gitversion.patch
new file mode 100644
index 00000000000..a3c975285fe
--- /dev/null
+++ b/testing/amiitool/zero-gitversion.patch
@@ -0,0 +1,15 @@
+These git commands now error out, instead of returning aports info.
+
+--- a/Makefile
++++ b/Makefile
+@@ -46,8 +46,8 @@
+ $(CC) $(ALL_CFLAGS) -c $< -o $@
+
+ gitversion.h:
+- echo "#define GIT_COMMIT_ID 0x`git rev-parse HEAD | head -c8`" > $(PWD)/gitversion.h
+- echo "#define GIT_COMMIT_COUNT `git rev-list --count --all`" >> $(PWD)/gitversion.h
++ echo "#define GIT_COMMIT_ID 0x0" > $(PWD)/gitversion.h
++ echo "#define GIT_COMMIT_COUNT 0" >> $(PWD)/gitversion.h
+
+ # Static mbed TLS
+ mbedtls: $(MBEDTLS_CONFIG)
diff --git a/testing/ampy/APKBUILD b/testing/ampy/APKBUILD
index 3242b9d5968..8299dbb9448 100644
--- a/testing/ampy/APKBUILD
+++ b/testing/ampy/APKBUILD
@@ -1,19 +1,26 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# This package is in search of a new maintainer
pkgname=ampy
-pkgver=0.20171212
-pkgrel=3
+_pkgname=adafruit-ampy
+pkgver=1.1.0
+pkgrel=5
pkgdesc="Utility to interact with a MicroPython board over a serial connection"
-url="https://github.com/adafruit/ampy"
+url="https://github.com/scientifichackers/ampy"
arch="noarch"
license="MIT"
-depends="python3 py3-serial py3-click py3-setuptools"
-subpackages="$pkgname-doc"
-_commit="d3df5f57398c581f8a6c1b930b740fd7060e6833"
-source="https://github.com/adafruit/ampy/archive/$_commit/master.tar.gz"
-
-builddir="$srcdir/$pkgname-$_commit"
+depends="
+ py3-click
+ py3-dotenv
+ py3-pyserial
+ python3
+ "
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
prepare() {
+ default_prepare
touch CONTRIBUTING.md
}
@@ -21,13 +28,17 @@ build() {
python3 setup.py build
}
+check() {
+ python3 setup.py check
+}
+
package() {
- python3 setup.py install --prefix=/usr \
- --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 CONTRIBUTING.md README.md \
- "$pkgdir"/usr/share/doc/$pkgname/
+ install -m644 README.md "$pkgdir"/usr/share/doc/$pkgname/
}
-sha512sums="b075745030e924be6bc0eb83fbb2960f27932dd44399a8fe6ce1e54bfbb2bdeba9c159db1add337023327a86ca3808479873afc92ff99b9c024e244cb53bafd5 master.tar.gz"
+sha512sums="
+b06a1007cda17d29c6441c2b8c7d5f7e40e41783e87334791254654d6a6157768af7a4c5b348f8b64620b47a4d86cd86d45bdb02be18c7a146deab74c4935645 adafruit-ampy-1.1.0.tar.gz
+"
diff --git a/testing/amule/APKBUILD b/testing/amule/APKBUILD
index e8f5dec3985..6fee968f6ee 100644
--- a/testing/amule/APKBUILD
+++ b/testing/amule/APKBUILD
@@ -1,46 +1,66 @@
# Contributor: August Klein <amatcoder@gmail.com>
# Maintainer: August Klein <amatcoder@gmail.com>
pkgname=amule
-_commit=314e62e87ff0481d3171f74751aaf0179e518765
-pkgver=11025
-pkgrel=2
-pkgdesc="An eMule-like client for the eD2k and Kademlia networks"
-url="http://www.amule.org"
-arch="all"
+_pkgname=aMule
+pkgver=2.3.3
+pkgrel=13
+pkgdesc="eMule-like client for the eD2k and Kademlia networks"
+url="https://www.amule.org/"
+arch="all !x86" # crypto++
license="GPL-2.0-or-later"
-makedepends="bison boost-dev crypto++-dev gd-dev geoip-dev libsm-dev libupnp-dev
- wxgtk3-dev"
+makedepends="
+ bison
+ boost-dev
+ crypto++-dev
+ gd-dev
+ geoip-dev
+ libsm-dev
+ libupnp-dev
+ wxwidgets-dev
+ "
+options="!check" # unexpected end of file
subpackages="$pkgname-lang $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://repo.or.cz/amule.git/snapshot/$_commit.tar.gz"
+source="$_pkgname-$pkgver.tar.xz::https://downloads.sourceforge.net/project/amule/aMule/$pkgver/aMule-$pkgver.tar.xz
+ fix-gcc11-include.patch
+ "
-builddir="$srcdir/$pkgname-${_commit:0:7}"
+builddir="$srcdir/$_pkgname-$pkgver"
build() {
+ export CFLAGS="$CFLAGS -flto=auto -DNDEBUG"
+ export CXXFLAGS="$CXXFLAGS -flto=auto -DNDEBUG"
+
./configure \
- CPPFLAGS="$CPPFLAGS -Wno-unused-local-typedefs" \
- CFLAGS="$CFLAGS -fPIC" \
- CXXFLAGS="$CXXFLAGS -fPIC" \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--mandir=/usr/share/man \
- --enable-amule-daemon \
- --enable-amulecmd \
- --enable-amule-gui \
- --enable-webserver \
+ --disable-debug \
--enable-alc \
--enable-alcc \
+ --enable-amule-daemon \
+ --enable-amule-gui \
+ --enable-amulecmd \
+ --enable-ccache \
--enable-geoip \
+ --enable-optimize \
--enable-upnp \
- --enable-ccache \
- --disable-debug \
- --with-boost \
- --with-wx-config=wx-config-gtk3
+ --enable-webserver \
+ --enable-fileview \
+ --with-boost
+
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="26be2ce0c504091a6f668832b8dcd2b5b806a8a968e2d6db756be87c1eac7efe9bad587de7708542f21b70008da0fad36278428f62d8c86c6a9ba7db00044675 amule-11025.tar.gz"
+sha512sums="
+a5a80c5ddd1e107d92070c1d8e232c2762c4c54791abc067c739eef7c690062ed164dd7733808f80c762719261162aeb3d602308964dda2670a0bb059d87b74e aMule-2.3.3.tar.xz
+ce5e35ad33a188358dc311df06a2357dba52b5905f345dcba0fb44337ee1a1314579e918cb4e0cc60818a39d5c4678321262e9d6b1e17fe800fda55a5def1976 fix-gcc11-include.patch
+"
diff --git a/testing/amule/fix-gcc11-include.patch b/testing/amule/fix-gcc11-include.patch
new file mode 100644
index 00000000000..34fb3367e34
--- /dev/null
+++ b/testing/amule/fix-gcc11-include.patch
@@ -0,0 +1,10 @@
+--- a/src/libs/common/MuleDebug.cpp
++++ b/src/libs/common/MuleDebug.cpp
+@@ -24,6 +24,7 @@
+ //
+
+ #include <cstdlib> // Needed for std::abort()
++#include <exception>
+
+ #include "config.h" // Needed for HAVE_CXXABI and HAVE_EXECINFO
+
diff --git a/testing/anarch/APKBUILD b/testing/anarch/APKBUILD
new file mode 100644
index 00000000000..1ea4bd00daf
--- /dev/null
+++ b/testing/anarch/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Waweic <waweic@activ.ism.rocks>
+# Maintainer: Waweic <waweic@activ.ism.rocks>
+pkgname=anarch
+pkgver=1.0
+pkgrel=1
+pkgdesc="Extremely small 90s style doom clone"
+url="https://gitlab.com/drummyfish/anarch"
+arch="all"
+license="CC0-1.0"
+makedepends="sdl2-dev"
+subpackages="$pkgname-doc"
+source="https://gitlab.com/drummyfish/anarch/-/archive/$pkgver/anarch-$pkgver.tar.gz"
+options="!check" # No tests in source
+
+build() {
+ cc -O3 -o anarch main_sdl.c -lSDL2
+}
+
+package() {
+ install -Dm755 anarch -t "$pkgdir"/usr/bin/
+ for file in README.md IDEAS.txt; do
+ install -Dm644 $file -t "$pkgdir"/usr/share/doc/$pkgname/
+ done
+}
+
+sha512sums="
+f9d3335401a0cfd03ab253e4545675c41ba5d1c552eed3d6932ab6aa2b27d90817a844b5fb0f1199b7e4bc7a6319cc6a5ea0c1014bd1e2ae637c2eef4f4c1fda anarch-1.0.tar.gz
+"
diff --git a/testing/anari-sdk/APKBUILD b/testing/anari-sdk/APKBUILD
new file mode 100644
index 00000000000..bfe1b69e600
--- /dev/null
+++ b/testing/anari-sdk/APKBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=anari-sdk
+pkgver=0.7.2
+pkgrel=0
+pkgdesc="SDK for the ANARI 3D rendering engine interface API"
+url="https://github.com/KhronosGroup/ANARI-SDK"
+arch="all"
+license="Apache-2.0"
+makedepends="cmake ninja python3 glm-dev"
+subpackages="$pkgname-static $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/ANARI-SDK/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/ANARI-SDK-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+
+ # render tests require a valid device
+ sed -i /add_subdirectory\(render\)/d tests/CMakeLists.txt
+
+ cmake -B build-shared -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_CTS=OFF \
+ -DBUILD_HELIDE_DEVICE=OFF \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_EXAMPLES=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build-shared
+
+ cmake -B build-static -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_CTS=OFF \
+ -DBUILD_HELIDE_DEVICE=OFF \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_EXAMPLES=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build-static
+}
+
+check() {
+ msg "Testing shared version"
+ ctest --test-dir build-shared --output-on-failure
+
+ msg "Testing static version"
+ ctest --test-dir build-static --output-on-failure
+}
+
+package() {
+ # installing static first lets shared overwrite the executables so they
+ # themselves are not statically linking the library
+ DESTDIR="$pkgdir" cmake --install build-static
+ DESTDIR="$pkgdir" cmake --install build-shared
+}
+
+sha512sums="
+e54969a6b6186eb9a1d7c8ba16647ea0e54114d130947a2690fb0ed42094ea8d0fba8d289cf79b56fbae337fafc829077e9c9dddeedf5e03c3a6ca1747531dea anari-sdk-0.7.2.tar.gz
+"
diff --git a/testing/anbox/APKBUILD b/testing/anbox/APKBUILD
deleted file mode 100644
index dfc0f6e512c..00000000000
--- a/testing/anbox/APKBUILD
+++ /dev/null
@@ -1,120 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Contributor: Grant Miller <GrantM11235@gmail.com>
-# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: Antoine Fontaine <antoine.fontaine@epfl.ch>
-pkgname=anbox
-pkgver=0_git20200519
-pkgrel=0
-_commit="35fe93b8407d2fec9d925e35a5294c567569d9ed"
-_cpu_features_commit="b5c271c53759b2b15ff91df19bd0b32f2966e275"
-pkgdesc="Android in a box"
-url="https://github.com/anbox/anbox"
-arch="x86_64 armv7 aarch64"
-license="GPL-3.0-or-later"
-subpackages="$pkgname-openrc"
-install="$pkgname.post-install"
-depends="
- dbus
- dbus-libs
- mesa-gles
- mesa-egl
- fuse3
- "
-makedepends="
- mesa-dev
- python2
- cmake
- cmake-extras
- lxc-dev
- sdl2-dev
- sdl2_image-dev
- boost-dev
- dbus-dev
- libcap-dev
- libdwarf-dev
- protobuf-dev
- elogind-dev
- properties-cpp-dev
- libexecinfo-dev
- gtest-dev
- "
-source="
- $pkgname-$_commit.tar.gz::https://github.com/anbox/anbox/archive/$_commit.tar.gz
- cpu_features-$_cpu_features_commit.tar.gz::https://github.com/google/cpu_features/archive/$_cpu_features_commit.tar.gz
- anbox-container-manager.initd
- anbox.confd
- musl-fixes.patch
- fix-gtest-use.patch
- give-more-time-to-start.patch
- anbox-launch.sh
- anbox.desktop
- "
-builddir="$srcdir/$pkgname-$_commit"
-
-prepare() {
- # the bundled cpu_features is outdated and breaks build on arm.
- rm -r external/cpu_features
- cp -r $srcdir/cpu_features-*/ external/cpu_features
-
- default_prepare
-
- mkdir -p "$builddir"/build
-}
-
-build() {
- cd "$builddir"/build
- cmake "$builddir" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DANBOX_VERSION=alpine-$pkgver-r$pkgrel \
- -DWerror=OFF
-
- make
-}
-
-check() {
- cd "$builddir"/build
- make test
-}
-
-package() {
- cd "$builddir"/build
- DESTDIR="$pkgdir" make install
-
- # CPU Feature install itself. That's bad.
- rm "$pkgdir"/usr/bin/list_cpu_features
- rm "$pkgdir"/usr/lib/backward/BackwardConfig.cmake
- rm -r "$pkgdir"/usr/lib/cmake/CpuFeatures
- rm -r "$pkgdir"/usr/include
-
- install -m755 -D "$srcdir"/anbox-container-manager.initd \
- "$pkgdir"/etc/init.d/anbox-container-manager
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
- install -m755 -D "$srcdir"/$pkgname-launch.sh \
- "$pkgdir"/usr/bin/$pkgname-launch
-
- install -m644 -D "$srcdir"/$pkgname.desktop \
- "$pkgdir"/usr/share/applications/$pkgname.desktop
- install -m644 -D "$builddir"/snap/gui/icon.png \
- "$pkgdir"/usr/share/icons/hicolor/512x512/anbox.png
-
- # this is a dependency of the init script
- install -m755 -D "$builddir"/scripts/anbox-bridge.sh \
- "$pkgdir"/usr/share/anbox/anbox-bridge.sh
- # this is for convinience, to allow someone to get root access
- install -m755 -D "$builddir"/scripts/anbox-shell.sh \
- "$pkgdir"/usr/share/anbox/anbox-shell.sh
-}
-
-sha512sums="f94fa0392f39752bc905d47d9379c20a5736d01390418473887c66c91acdaabbd110b79d769b9d1782822a70a2190183b6747621e5c0b651765f9274ee75e0f0 anbox-35fe93b8407d2fec9d925e35a5294c567569d9ed.tar.gz
-c0ec9b603cec2cc9049923e15ef50c85806bc0a0ffe57b63348631061aeddb73c1eca910b25696cf5eac2606aec3f86db29e8a01e01cf438bfee86edfe909e4a cpu_features-b5c271c53759b2b15ff91df19bd0b32f2966e275.tar.gz
-959058eb1c1e3eb0d1593695ee57fbc0cc567f260235e81d7b56da62b0b80fca9112d5f16a1e1c5c0e6223c8a1899f97f906c7cc763dc015e094aacded818a2f anbox-container-manager.initd
-6a3bc88142c5287ec54d481a4788eceb7772d9974af950b5286ce63a49d05d9d49fce5ba1d02b4b1c9893896fd4ba218fd4d39b8e640bdd61ad196b5d5c9a021 anbox.confd
-401669509e05eb586ad40fc9e8f4284b52183f06c60e87bf4e923be165a72f10263daf226db7fd610ef6ff25d09abd140ca2d59187e2d1b85a0bd6ae887dd944 musl-fixes.patch
-12723c70e09c14f5e36499545edd1ec2a613e1d2bdc2cf134e8ddd9cb2d91695c9a74efa4530dce129a74f4b345ef59dff74c6703ed789b994e66c7e2901f11f fix-gtest-use.patch
-67fc97d5274dec6240937981dbd41ae307bc0a77b54ad7200b187423a8184e848a1b8f983cf4b8f17d88b9d77213b06a8e17ba0c80f226f6755a1ae4acbd53ae give-more-time-to-start.patch
-921d69e28a2f63a6eaccdfbd6f53173d2e0c59dd650dd83c0d8f816b5f23f1ba61abb393b0cf5e48d80ce363df4f3e609de34a4e5a73c2b520dba96b76eda0c9 anbox-launch.sh
-3e458e6215ecf0ac94d749f4d78e464850dcf2cc2b616b2f7ddf26e9617d63a90bd0c8be59e4540141a813af4bad84d0f84874105f7ef9de8149666fc3828da7 anbox.desktop"
diff --git a/testing/anbox/anbox-container-manager.initd b/testing/anbox/anbox-container-manager.initd
deleted file mode 100644
index d692e052381..00000000000
--- a/testing/anbox/anbox-container-manager.initd
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/sbin/openrc-run
-
-supervisor=supervise-daemon
-
-name="Anbox container manager"
-command=/usr/bin/anbox
-command_args="container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/usr/share/anbox/android.img"
-
-depend() {
- need localmount sysfs cgroups fuse
- use net
- after firewall
-}
-
-start_pre() {
- # that's all you need to avoid the lxc dependency
- checkpath --directory /usr/lib/lxc
- checkpath --directory /usr/lib/lxc/rootfs
-
- modprobe loop
- modprobe tun
-
- if ip link show anbox0 >/dev/null 2>&1; then
- ewarn "anbox0 network interface already exists"
- else
- ebegin "Creating anbox0 network interface"
- /usr/share/anbox/anbox-bridge.sh start
- eend $?
- fi
-}
-
-stop_post() {
- if ip link show anbox0 >/dev/null 2>&1; then
- ebegin "Removing anbox0 network interface"
- /usr/share/anbox/anbox-bridge.sh stop
- eend $?
- fi
-}
diff --git a/testing/anbox/anbox-launch.sh b/testing/anbox/anbox-launch.sh
deleted file mode 100644
index ce5286a8dfc..00000000000
--- a/testing/anbox/anbox-launch.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-# https://gitlab.com/postmarketOS/pmaports/-/issues/479
-# EGL_PLATFORM=wayland is broken on desktop as
-# Anbox require PBuffer support but Wayland EGL
-# doesn't provide it. Unsetting this value
-# unbreaks Anbox on e.g. Plasma Mobile.
-if [ "$EGL_PLATFORM" = wayland ]; then
- export EGL_PLATFORM
- unset EGL_PLATFORM
-fi
-
-# This breaks Anbox display if EGL_PLATFORM is not
-# set to wayland. Since EGL_PLATFORM is never set
-# to wayland, let's unset SDL_VIDEODRIVER if it is.
-if [ "$SDL_VIDEODRIVER" = wayland ]; then
- export SDL_VIDEODRIVER
- unset SDL_VIDEODRIVER
-fi
-
-# We let Anbox autostart the session manager as this
-# provides a splash-screen
-anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
diff --git a/testing/anbox/anbox.confd b/testing/anbox/anbox.confd
deleted file mode 100644
index a519399936b..00000000000
--- a/testing/anbox/anbox.confd
+++ /dev/null
@@ -1,8 +0,0 @@
-# Sample conf.d file for alpine linux
-
-#
-# Specify daemon options here.
-#
-
-sample_opts=""
-sample_user=""
diff --git a/testing/anbox/anbox.desktop b/testing/anbox/anbox.desktop
deleted file mode 100644
index 2a677b12f84..00000000000
--- a/testing/anbox/anbox.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=Anbox
-GenericName=Android in a box
-Version=1.0
-Type=Application
-Icon=/usr/share/icons/hicolor/512x512/anbox.png
-TryExec=anbox
-Exec=anbox-launch
-Terminal=false
diff --git a/testing/anbox/anbox.post-install b/testing/anbox/anbox.post-install
deleted file mode 100644
index 79cf891163a..00000000000
--- a/testing/anbox/anbox.post-install
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-cat <<EOT
-
-Anbox needs an adapted android image installed to /usr/share/anbox/android.img.
-You can build one using the instructions here:
-https://github.com/anbox/anbox/blob/master/docs/build-android.md.
-Alternatively, you can use a prebuilt one by upstream:
-https://build.anbox.io/android-images/
-
-EOT
diff --git a/testing/anbox/fix-gtest-use.patch b/testing/anbox/fix-gtest-use.patch
deleted file mode 100644
index 25aa3159fba..00000000000
--- a/testing/anbox/fix-gtest-use.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/external/cpu_features/CMakeLists.txt
-+++ b/external/cpu_features/CMakeLists.txt
-@@ -159,44 +159,6 @@ endif()
-
- include(CTest)
- if(BUILD_TESTING)
-- # Automatically incorporate googletest into the CMake Project if target not
-- # found.
-- if(NOT TARGET gtest OR NOT TARGET gmock_main)
-- # Download and unpack googletest at configure time.
-- configure_file(
-- cmake/googletest.CMakeLists.txt.in
-- googletest-download/CMakeLists.txt
-- )
--
-- execute_process(
-- COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
-- RESULT_VARIABLE result
-- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download)
--
-- if(result)
-- message(FATAL_ERROR "CMake step for googletest failed: ${result}")
-- endif()
--
-- execute_process(
-- COMMAND ${CMAKE_COMMAND} --build .
-- RESULT_VARIABLE result
-- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download)
--
-- if(result)
-- message(FATAL_ERROR "Build step for googletest failed: ${result}")
-- endif()
--
-- # Prevent overriding the parent project's compiler/linker settings on
-- # Windows.
-- set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
--
-- # Add googletest directly to our build. This defines the gtest and
-- # gtest_main targets.
-- add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
-- ${CMAKE_BINARY_DIR}/googletest-build
-- EXCLUDE_FROM_ALL)
-- endif()
--
- add_subdirectory(test)
- endif()
-
diff --git a/testing/anbox/give-more-time-to-start.patch b/testing/anbox/give-more-time-to-start.patch
deleted file mode 100644
index 55e65407e4a..00000000000
--- a/testing/anbox/give-more-time-to-start.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Anbox tend not to leave enough time for Android to start.
-This patch gives more breathing room.
---- a/src/anbox/cmds/launch.cpp
-+++ a/src/anbox/cmds/launch.cpp
-@@ -35,7 +35,7 @@ namespace fs = boost::filesystem;
-
- namespace {
- constexpr unsigned int max_session_mgr_wait_attempts{10};
--const std::chrono::seconds session_mgr_wait_interval{5};
-+const std::chrono::seconds session_mgr_wait_interval{60};
- constexpr unsigned int max_dbus_service_wait_attempts{10};
- const std::chrono::seconds dbus_service_wait_interval{5};
-
diff --git a/testing/anbox/musl-fixes.patch b/testing/anbox/musl-fixes.patch
deleted file mode 100644
index cd14a08d618..00000000000
--- a/testing/anbox/musl-fixes.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/external/process-cpp-minimal/include/core/posix/standard_stream.h b/external/process-cpp-minimal/include/core/posix/standard_stream.h
-index f50a9b7..4a67a80 100644
---- a/external/process-cpp-minimal/include/core/posix/standard_stream.h
-+++ b/external/process-cpp-minimal/include/core/posix/standard_stream.h
-@@ -23,6 +23,10 @@
-
- #include <cstdint>
-
-+#undef stdin
-+#undef stdout
-+#undef stderr
-+
- namespace core
- {
- namespace posix
-diff --git a/external/process-cpp-minimal/src/CMakeLists.txt b/external/process-cpp-minimal/src/CMakeLists.txt
-index dec4659..20c9053 100644
---- a/external/process-cpp-minimal/src/CMakeLists.txt
-+++ b/external/process-cpp-minimal/src/CMakeLists.txt
-@@ -46,4 +46,5 @@ target_link_libraries(
-
- ${Boost_LIBRARIES}
- ${CMAKE_THREAD_LIBS_INIT}
-+ execinfo
- )
-
diff --git a/testing/android-apkeep/APKBUILD b/testing/android-apkeep/APKBUILD
new file mode 100644
index 00000000000..c376ecd09e5
--- /dev/null
+++ b/testing/android-apkeep/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=android-apkeep
+pkgver=0.16.0
+pkgrel=0
+pkgdesc="A command-line tool for downloading Android APK files from various sources"
+url="https://github.com/EFForg/apkeep"
+# ppc64le, riscv64, s390x: ring crate
+arch="all !ppc64le !riscv64 !s390x"
+license="MIT"
+makedepends="
+ bzip2-dev
+ cargo
+ cargo-auditable
+ openssl-dev
+ zstd-dev
+ "
+source="https://github.com/EFForg/apkeep/archive/refs/tags/$pkgver/apkeep-$pkgver.tar.gz"
+options="!check" # no tests
+builddir="$srcdir/apkeep-$pkgver"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided libs
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ bzip2 = { rustc-link-lib = ["bz2"] }
+ zstd = { rustc-link-lib = ["zstd"] }
+ EOF
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/apkeep "$pkgdir"/usr/bin/apkeep
+}
+
+sha512sums="
+912d83d138e4440e2fc1e8e8a47f92e821fcdaa0378a6a28659a511f082df3d8056d0e0be1d7df227edae2b8c1adaa40ad5f39889fce4d70fa8b1044479b6b62 apkeep-0.16.0.tar.gz
+"
diff --git a/testing/android-apktool/APKBUILD b/testing/android-apktool/APKBUILD
new file mode 100644
index 00000000000..0ef2fc795c6
--- /dev/null
+++ b/testing/android-apktool/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=android-apktool
+pkgver=2.9.3
+pkgrel=0
+pkgdesc="Tool for reverse engineering Android apk files"
+url="https://apktool.org/"
+arch="all !x86 !armhf !armv7 !riscv64"
+# disabled due to openjdk11 limitations
+license="Apache-2.0"
+depends="openjdk11-jre-headless"
+source="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_$pkgver.jar
+ apktool
+ "
+options="!check"
+# no tests available
+
+package() {
+ install -Dm644 "$srcdir"/apktool_$pkgver.jar "$pkgdir"/usr/share/apktool/apktool.jar
+ install -Dm755 "$srcdir"/apktool "$pkgdir"/usr/bin/apktool
+}
+
+sha512sums="
+c4867b62c4dbe2b03ffa4f28458138541dc765aafeef84becc9a10d001e67bf6c49a6dab54b0ac6c292bac65c50764efe17d8c7ff6bdf26dc4e960042a8f4162 apktool_2.9.3.jar
+8cb0d693996fe5a3df2f49120336962bc4d36ad6540744b6bc53dd1c03cc2b34e339f3749804abd9c054510b7093da77b18e77e886795c4f6b2206c64ea0247e apktool
+"
diff --git a/testing/android-apktool/apktool b/testing/android-apktool/apktool
new file mode 100644
index 00000000000..c75fd969c86
--- /dev/null
+++ b/testing/android-apktool/apktool
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/lib/jvm/java-11-openjdk/bin/java -jar /usr/share/apktool/apktool.jar "$@"
diff --git a/testing/android-file-transfer/APKBUILD b/testing/android-file-transfer/APKBUILD
new file mode 100644
index 00000000000..2b8f045fe32
--- /dev/null
+++ b/testing/android-file-transfer/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=android-file-transfer
+pkgver=4.3
+pkgrel=0
+pkgdesc="Android MTP client with minimalistic UI"
+url="https://whoozle.github.io/android-file-transfer-linux/"
+license="LGPL-2.1-only"
+arch="all"
+makedepends="
+ cmake
+ file-dev
+ fuse-dev
+ linux-headers
+ openssl-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ readline-dev
+ samurai
+ taglib-dev
+ zlib-dev
+ "
+subpackages="$pkgname-cli $pkgname-libs $pkgname-dev"
+source="https://github.com/whoozle/android-file-transfer-linux/archive/v$pkgver/android-file-transfer-$pkgver.tar.gz"
+builddir="$srcdir/android-file-transfer-linux-$pkgver"
+options="!check" # no test suite
+
+cli() {
+ amove usr/bin/aft-mtp-*
+}
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIB=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+f5e51ad1532be44916df51dda5f6f7423a5b0d8ebd733a0a3f0424f684b9f84fc5996fb5effd45009eb1c60d873f79e8ecc47a9dc09ff429b4a458807a79ca8c android-file-transfer-4.3.tar.gz
+"
diff --git a/testing/android-tools/APKBUILD b/testing/android-tools/APKBUILD
deleted file mode 100644
index 4e488003571..00000000000
--- a/testing/android-tools/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
-pkgname=android-tools
-pkgver=29.0.6
-pkgrel=1
-pkgdesc="Android platform tools"
-url="https://sites.google.com/a/android.com/tools/"
-arch="x86 x86_64 aarch64 armv7 armhf"
-license="Apache-2.0 MIT"
-options="!check" # upstream doesn't have a test suite
-makedepends="pcre2-dev linux-headers libusb-dev gtest-dev go perl cmake"
-source="https://github.com/nmeum/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.xz"
-
-build() {
- cd "$builddir"
-
- mkdir build && cd build
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ..
- make
-}
-
-package() {
- cd "$builddir/build"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="35f9eed7d67e726ba549cfd7b662308aaa86a595f93cbc30c59b371df7784931062e271c78ade2a0b51c3433e12ec4d141b70f1738625ab3af026ba278b9e612 android-tools-29.0.6.tar.xz"
diff --git a/testing/android-translation-layer/APKBUILD b/testing/android-translation-layer/APKBUILD
new file mode 100644
index 00000000000..7321a999411
--- /dev/null
+++ b/testing/android-translation-layer/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=android-translation-layer
+pkgver=0_git20240219
+pkgrel=0
+_commit="d3eedb0305d52be28d90560f1e099dd11056ab5d"
+pkgdesc="A translation layer for running Android apps on a Linux system"
+url="https://gitlab.com/android_translation_layer/android_translation_layer"
+arch="x86_64 aarch64 armv7"
+license="GPL-3.0-only"
+# libopensles-standalone is not strictly required but some Android applications depend on it
+depends="libopensles-standalone"
+makedepends="
+ alsa-lib-dev
+ bionic_translation-dev
+ art_standalone-dev
+ ffmpeg-dev
+ glib-dev
+ gtk4.0-dev
+ java-common
+ libportal-dev
+ meson
+ openjdk8-jdk
+ openxr-dev
+ skia-sharp-dev
+ vulkan-loader-dev
+ "
+subpackages="$pkgname-dbg"
+source="https://gitlab.com/mis012/android_translation_layer/-/archive/$_commit/android_translation_layer-$_commit.tar.gz"
+builddir="$srcdir/android_translation_layer-$_commit"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+c1d16346076fae74323bf573e436a3867dc03d5bdb58690bf304dabe9d209ee1d00339a92d16d13263efc1c4530523ef742044fbed425a9a75c538ac780d0376 android_translation_layer-d3eedb0305d52be28d90560f1e099dd11056ab5d.tar.gz
+"
diff --git a/testing/angband/APKBUILD b/testing/angband/APKBUILD
new file mode 100644
index 00000000000..a7678998a44
--- /dev/null
+++ b/testing/angband/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Elly Fong-Jones <elly@elly.town>
+# Maintainer: Elly Fong-Jones <elly@elly.town>
+pkgname=angband
+pkgver=4.2.5
+pkgrel=0
+pkgdesc="Roguelike computer role playing game"
+url="https://rephial.org"
+arch="all"
+# License: GPL-2.0-only for the actual code, but the tile sets (which this build
+# includes) have different licenses. See docs/copying.rst in the source tree for
+# full details.
+license="GPL-2.0-only AND custom"
+makedepends="ncurses-dev sdl2-dev sdl2_image-dev sdl2_mixer-dev sdl2_ttf-dev"
+checkdepends="perl"
+source="https://github.com/angband/angband/releases/download/$pkgver/Angband-$pkgver.tar.gz"
+builddir="$srcdir/Angband-$pkgver"
+
+# Angband has a unit test suite, but it requires the game to be installed
+# to run: https://github.com/angband/angband/issues/5517
+options="!check"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --bindir=/usr/bin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-curses \
+ --disable-x11 \
+ --enable-sdl2 \
+ --disable-sdl \
+ --disable-test \
+ --disable-stats
+ make
+}
+
+check() {
+ make tests
+ # Note: there are also a handful of integration tests, but they don't
+ # have a separate build target and instead compile extra code into
+ # the production binary. We don't want the extra code size, so they
+ # aren't run here.
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5d907849da64c27b16ebd8fac839eb7db72d7f2352671c57545beea6700dfd1c5b3387e6a222da12ef066329c28108d03bad6e84c99ab8bcb68513adbb71aad1 Angband-4.2.5.tar.gz
+"
diff --git a/testing/animatch/APKBUILD b/testing/animatch/APKBUILD
deleted file mode 100644
index 3171b6209c8..00000000000
--- a/testing/animatch/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=animatch
-pkgver=1.0.2
-pkgrel=0
-_commit_libsuperderpy="b592a3382fd5d3efc88a0df29031e267f6497910"
-arch="all"
-url="https://gitlab.com/HolyPangolin/animatch"
-pkgdesc="Animatch is a match-three game with cute animals"
-license="GPL-3.0-or-later"
-makedepends="cmake ninja allegro-dev mesa-dev"
-source="https://gitlab.com/HolyPangolin/animatch/-/archive/v$pkgver/animatch-v$pkgver.tar.gz
- libsuperderpy-$_commit_libsuperderpy.tar.gz::https://gitlab.com/dosowisko.net/libsuperderpy/-/archive/$_commit_libsuperderpy.tar.gz"
-subpackages="$pkgname-static $pkgname-doc"
-options="!check" # No tests
-builddir="$srcdir/$pkgname-v$pkgver"
-
-prepare() {
- default_prepare
-
- # libsuperderpy doesn't have a stable ABI yet so build it statically to prevent conflicts with other packages using it
- rmdir "$builddir"/libsuperderpy
- mv "$srcdir"/libsuperderpy-$_commit_libsuperderpy "$builddir"/libsuperderpy
-}
-
-build() {
- cmake -B "$builddir"/build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_SHARED_LIBS=OFF \
- -DLIBSUPERDERPY_IMGUI=OFF \
- -GNinja
- ninja -C build
-}
-
-check() {
- cd "$builddir"/build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="6eb052e4aabf43032fb229757f65ed01739a3ecad2037e354d14dbeb0f5e1c88ec00054b9976b91309b0ddc7efcd684f2f97f50ddb7d15c740058a47015310df animatch-v1.0.2.tar.gz
-6fb917ebdd563f26475627ecd8f53d1fb59edb0a56965dff824178e41cbd53f8ea746289e491bddcd5cfbc091a047b4ca084af7a359e2aac4ae9c80093392071 libsuperderpy-b592a3382fd5d3efc88a0df29031e267f6497910.tar.gz"
diff --git a/testing/anki/APKBUILD b/testing/anki/APKBUILD
new file mode 100644
index 00000000000..fa352a278b6
--- /dev/null
+++ b/testing/anki/APKBUILD
@@ -0,0 +1,155 @@
+# Maintainer: Frank Oltmanns <alpine@oltmanns.dev>
+# Contributor: Alexander Bocken <alexander@bocken.org>
+
+pkgname=anki
+pkgver=23.12.1
+pkgrel=2
+# Remember to update the following lines when updating the pkgver
+# anki -> git rev-parse $pkgver --short=8
+# ftl -> git submodule
+_tags_ftl_core="fb301cc62da3b7a83b4ea266d9a2e70cfc1a8418"
+_tags_ftl_desktop="8c2191a7c797747cec767e3953bbbcc50acc5246"
+_anki_commit="c0f2fa48"
+
+# This APKBUILD and the patches use the PKGBUILD for Anki 23.10 as
+# a basis.
+_caches_yarn="yarn-cache"
+_caches_cargo="cargo-cache"
+
+# For translations
+_core_i18n_repo="anki-core-i18n"
+_qtftl_i18n_repo="anki-desktop-ftl"
+
+pkgdesc="flashcard program using spaced repetition"
+url="https://apps.ankiweb.net/"
+
+# py3-pyqt6-webengine is only available for
+# - x86_64
+# - aarch64
+# - x86
+# But upstream only supports 64-bit architectures:
+arch="x86_64 aarch64"
+license="AGPL-3.0-or-later"
+options="!check" # no test suite provided
+
+# The makedepends and depends are copied from the PKGBUILD
+# for 23.10 in the Arch User Repository, with the exception
+# that libxcrypt-compat has been removed from that list.
+makedepends="
+ bash
+ rsync
+ ninja
+ git
+ cargo
+ py3-installer
+ py3-wheel
+ nodejs
+ yarn
+ protoc
+ "
+
+depends="
+ python3
+ py3-stringcase
+ py3-beautifulsoup4
+ py3-waitress
+ py3-requests
+
+ py3-decorator
+ py3-markdown
+ py3-orjson
+ py3-protobuf
+ py3-pysocks
+ py3-distro
+
+ py3-jsonschema
+ py3-send2trash
+ py3-certifi
+ py3-flask-cors
+ py3-qt6
+ py3-pyqt6-webengine
+ qt6-qtmultimedia
+ qt6-qtsvg
+ "
+subpackages="$pkgname-pyc"
+source="
+ https://github.com/ankitects/anki/archive/$pkgver/anki-$pkgver.tar.gz
+ anki-core-i18n-$_tags_ftl_core.tar.gz::https://github.com/ankitects/anki-core-i18n/archive/$_tags_ftl_core.tar.gz
+ anki-desktop-ftl-$_tags_ftl_desktop.tar.gz::https://github.com/ankitects/anki-desktop-ftl/archive/$_tags_ftl_desktop.tar.gz
+ disable-git-checks.patch
+ no-update.patch
+ strip-formatter-deps.patch
+ strip-type-checking-deps.patch
+ dprint-update-for-musl-aarch64.patch
+ "
+
+prepare() {
+ default_prepare
+
+ # Notes:
+ # - The original PKGBUILD changes the optimization level to "3". Instead
+ # the APKBUILD sticks to upstream's optimization settings.
+ # - The original PKGBUILD changes the rust toolchain channel to
+ # "stable". Since, the APKBUILD doesn't use rustup, we can skip that.
+
+ # Build process wants .git/HEAD to be present. Workaround to be able to use tarballs
+ # (together with disable-git-checks.patch)
+ mkdir -p .git
+ touch .git/HEAD
+ sed -i "s/MY_REV/$_anki_commit/" build/runner/src/build.rs
+
+ # place translations in build dir
+ rm -r ftl/core-repo ftl/qt-repo
+ mv "$srcdir"/anki-core-i18n-$_tags_ftl_core ftl/core-repo
+ mv "$srcdir"/anki-desktop-ftl-$_tags_ftl_desktop ftl/qt-repo
+
+ # fetch rust packages
+ export CARGO_HOME="$srcdir/$_caches_cargo" # do not litter in ~
+ cargo fetch --target="$CTARGET" --locked
+
+ # fetch node packages already in prepare()
+ export YARN_CACHE_FOLDER="$srcdir/$_caches_yarn" # do not litter in ~
+ yarn install --immutable --modules-folder out/node_modules
+ ln -sf out/node_modules ./
+
+ # mask pip-sync as we provide dependencies ourselves
+ local venv="out/pyenv"
+ python -m venv --system-site-packages --without-pip "$venv"
+ printf '#!/bin/bash\nexit 0' > "$venv/bin/pip-sync"
+ chmod +x "$venv/bin/pip-sync"
+}
+
+build() {
+ export YARN_CACHE_FOLDER="$srcdir/$_caches_yarn" # do not litter in ~
+
+ #use local binaries instead of downloading them
+ export PYTHON_BINARY=$(which python)
+ export PROTOC_BINARY=$(which protoc)
+ export NODE_BINARY=$(which node)
+ export YARN_BINARY=$(which yarn)
+
+ export CARGO_HOME="$srcdir/$_caches_cargo" # do not litter in ~
+ export RELEASE=2 # anki-internal variable for optimization
+ # set to "1" for faster but less optimized build
+ export LDFLAGS="$LDFLAGS -fuse-ld=lld"
+ ./ninja wheels
+}
+
+package() {
+ for file in out/wheels/*.whl; do
+ python -m installer --destdir="$pkgdir" $file
+ done
+
+ install -Dm644 qt/bundle/lin/anki.desktop "$pkgdir"/usr/share/applications/anki.desktop
+ install -Dm644 qt/bundle/lin/anki.png "$pkgdir"/usr/share/pixmaps/anki.png
+}
+sha512sums="
+076d3eba5db7dd4b8e00de9b69140a54f73c2e6ce52f46ddce9a6455a8ce7ae5d49bfb2fc60571d851d6b4948a08a0b3deb508aa37c7e79624b6273837a975a5 anki-23.12.1.tar.gz
+12e9187bda8f728d06a904fe21f3820aa2acad0e1924933d9db24f3879936b0a7b489934186fcab85440a40b974917ada729b5a7ec276ca2acea70b5c88caa5a anki-core-i18n-fb301cc62da3b7a83b4ea266d9a2e70cfc1a8418.tar.gz
+91c3609fa8ca67de2d520798acbb7200d310c4d587270143528a5c18ed341c7dd3b9ddc8d79fe1f44224e83dc06f12cdbcdcf2114969513cbd60e82950343373 anki-desktop-ftl-8c2191a7c797747cec767e3953bbbcc50acc5246.tar.gz
+60f2f37d4fc03d7c0681b2d6b9af17b2f7cd341ef6bd4504cd7dd6cb191c666b128a4c2184ced5295fab98c5f83affc4bfd4c5dc23f502371e2e095aa880e526 disable-git-checks.patch
+36c3bddb5de84f0f5eebe46b506b9723ecc80dd69281b3d2ffc9842fa2db181ececd8232ae0b3366bcfd5cb68a4d760abcadd3dada2a7ce2d2da26586a132e09 no-update.patch
+f71b45b08b8f05d98faab3a88d7ba2847a948a12ca26c682d58541dc423ad72ae8aac5b34155472869ebbf195e5e5c488cfc4e640df7247c7674e5dfad053d60 strip-formatter-deps.patch
+2c7d1ab46d81e65f22e63cb5af37daef27a78d348f240570f9250730d6b33311670876027fd1c54d4c69922c18a7458e82211cb232e98591e182ac11c49877db strip-type-checking-deps.patch
+627d30af756ad51fa76ea3113e18662c8bfa5ba7e89b418604e13581cc811ce89c674042181566fff962adef0dd5edb2e5af2803c33cee470661f2d2d1f4c331 dprint-update-for-musl-aarch64.patch
+"
diff --git a/testing/anki/disable-git-checks.patch b/testing/anki/disable-git-checks.patch
new file mode 100644
index 00000000000..905e641b78e
--- /dev/null
+++ b/testing/anki/disable-git-checks.patch
@@ -0,0 +1,30 @@
+We provide source tarballs without git functionality.
+'MY_REV' gets replaced with the corresponding revision in prepare().
+--- a/build/ninja_gen/src/git.rs
++++ b/build/ninja_gen/src/git.rs
+@@ -13,7 +13,7 @@ pub struct SyncSubmodule {
+
+ impl BuildAction for SyncSubmodule {
+ fn command(&self) -> &str {
+- "git -c protocol.file.allow=always submodule update --init $path"
++ "true"
+ }
+
+ fn files(&mut self, build: &mut impl build::FilesHandle) {
+--- a/build/runner/src/build.rs
++++ b/build/runner/src/build.rs
+@@ -161,13 +161,7 @@ fn maybe_update_buildhash(build_root: &Utf8Path) {
+ }
+
+ fn get_buildhash() -> String {
+- let output = Command::new("git")
+- .args(["rev-parse", "--short=8", "HEAD"])
+- .output()
+- .expect("git");
+- assert!(output.status.success(),
+- "Invoking 'git' failed. Make sure you're building from a clone of the git repo, and that 'git' is installed.");
+- String::from_utf8(output.stdout).unwrap().trim().into()
++ String::from("MY_REV").trim().into()
+ }
+
+ fn write_if_changed(path: &Utf8Path, contents: &str) {
diff --git a/testing/anki/dprint-update-for-musl-aarch64.patch b/testing/anki/dprint-update-for-musl-aarch64.patch
new file mode 100644
index 00000000000..8984a340ac5
--- /dev/null
+++ b/testing/anki/dprint-update-for-musl-aarch64.patch
@@ -0,0 +1,11 @@
+--- a/package.json
++++ b/package.json
+@@ -23,7 +23,7 @@
+ "caniuse-lite": "^1.0.30001431",
+ "cross-env": "^7.0.2",
+ "diff": "^5.0.0",
+- "dprint": "=0.35.3",
++ "dprint": "^0.42.5",
+ "esbuild": "^0.18.10",
+ "esbuild-sass-plugin": "^2",
+ "esbuild-svelte": "^0.7.4",
diff --git a/testing/anki/no-update.patch b/testing/anki/no-update.patch
new file mode 100644
index 00000000000..7dc6228e2c6
--- /dev/null
+++ b/testing/anki/no-update.patch
@@ -0,0 +1,13 @@
+diff --git a/qt/aqt/update.py b/qt/aqt/update.py
+index 212ddf93d..6f716cc04 100644
+--- a/qt/aqt/update.py
++++ b/qt/aqt/update.py
+@@ -11,6 +11,8 @@ from aqt.utils import openLink, show_warning, showText, tr
+
+
+ def check_for_update() -> None:
++ return
++
+ from aqt import mw
+
+ def do_check(_col: Collection) -> CheckForUpdateResponse:
diff --git a/testing/anki/strip-formatter-deps.patch b/testing/anki/strip-formatter-deps.patch
new file mode 100644
index 00000000000..1f65cb25126
--- /dev/null
+++ b/testing/anki/strip-formatter-deps.patch
@@ -0,0 +1,9 @@
+ Remove dependency on dev-python/black used to format the generated hooks.py
+ file as it's not relevant in a packaging use case.
+--- a/pylib/tools/hookslib.py
++++ b/pylib/tools/hookslib.py
+@@ -208,4 +208,3 @@ def write_file(path: str, hooks: list[Hook], prefix: str, suffix: str):
+ os.environ["USERPROFILE"] = os.environ["HOME"]
+ with open(path, "wb") as file:
+ file.write(code.encode("utf8"))
+- subprocess.run([sys.executable, "-m", "black", "-q", path], check=True)
diff --git a/testing/anki/strip-type-checking-deps.patch b/testing/anki/strip-type-checking-deps.patch
new file mode 100644
index 00000000000..d9c4e034669
--- /dev/null
+++ b/testing/anki/strip-type-checking-deps.patch
@@ -0,0 +1,23 @@
+We don't do type checking (via mypy and related) downstream.
+Mypy-protobuf generates mypy stub files from protobuf specs and should
+therefore be stripped.
+--- a/build/configure/src/python.rs
++++ b/build/configure/src/python.rs
+@@ -87,9 +87,7 @@ pub struct GenPythonProto {
+ impl BuildAction for GenPythonProto {
+ fn command(&self) -> &str {
+ "$protoc $
+- --plugin=protoc-gen-mypy=$protoc-gen-mypy $
+ --python_out=$builddir/pylib $
+- --mypy_out=$builddir/pylib $
+ -Iproto $in"
+ }
+
+@@ -107,7 +105,6 @@ impl BuildAction for GenPythonProto {
+ .collect();
+ build.add_inputs("in", &self.proto_files);
+ build.add_inputs("protoc", inputs![":protoc_binary"]);
+- build.add_inputs("protoc-gen-mypy", inputs![":pyenv:protoc-gen-mypy"]);
+ build.add_outputs("", python_outputs);
+ }
+ }
diff --git a/testing/ansible-bender/APKBUILD b/testing/ansible-bender/APKBUILD
new file mode 100644
index 00000000000..e122afa16f6
--- /dev/null
+++ b/testing/ansible-bender/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=ansible-bender
+pkgver=0.10.1
+pkgrel=2
+pkgdesc="Container image builder using Buildah and Ansible"
+url="https://ansible-community.github.io/ansible-bender/"
+# s390x: blocked by aardvark-dns and netavark -> podman
+arch="all !s390x"
+license="MIT"
+depends="
+ ansible-core
+ buildah
+ py3-jsonschema
+ py3-tabulate
+ py3-yaml
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-flexmock podman"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ansible-community/ansible-bender/archive/refs/tags/$pkgver.tar.gz"
+
+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 tests/unit/
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ install -Dm644 docs/md_docs/*.md -t "$pkgdir"/usr/share/doc/$pkgname/
+}
+
+sha512sums="
+46388d075a484ee97ecfe0340bce63cccd1a014e9ff4bba96a9e1cf68d870fb6840fb10203bc24c9ef286cc2ddf5c2111fc2c6a03d5f3aeda72881c542d0dfcc ansible-bender-0.10.1.tar.gz
+"
diff --git a/testing/ansiweather/APKBUILD b/testing/ansiweather/APKBUILD
new file mode 100644
index 00000000000..11a43b5b5be
--- /dev/null
+++ b/testing/ansiweather/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer:
+pkgname=ansiweather
+pkgver=1.19.0
+pkgrel=1
+pkgdesc="Weather in terminal, with ANSI colors and Unicode symbols"
+url="https://github.com/fcambus/ansiweather"
+arch="noarch"
+license="BSD-2-Clause"
+depends="
+ bc
+ curl
+ jq
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/fcambus/ansiweather/releases/download/$pkgver/ansiweather-$pkgver.tar.gz"
+options="!check" # no tests
+
+package() {
+ install -Dm755 ansiweather -t "$pkgdir"/usr/bin/
+ install -Dm644 ansiweather.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+1dc521c904041a698fbb1a3a78f5a0b7d5bdc731258ab9cc384ee1a9f750c60723b0038288d7d98875672d167614f7bb8ca69ff1f7d38a28d52916afd5bda0a2 ansiweather-1.19.0.tar.gz
+"
diff --git a/testing/anthy/APKBUILD b/testing/anthy/APKBUILD
deleted file mode 100644
index e78e2d3825b..00000000000
--- a/testing/anthy/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=anthy
-pkgver=9100h
-_filecode=37536
-pkgrel=1
-pkgdesc="Hiragana text to Kana Kanji mixed text Japanese input method"
-url="http://sourceforge.jp/projects/anthy/"
-arch="all"
-license="LGPL-2.1-or-later"
-subpackages="$pkgname-dev $pkgname-emacs::noarch"
-source="http://dl.sourceforge.jp/anthy/${_filecode}/${pkgname}-${pkgver}.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --host=$CHOST \
- --build=$CBUILD \
- --target=$CTARGET \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- cd "$builddir"
- ./src-util/anthy-agent --version
-}
-
-package() {
- cd "$builddir"
- make EMACS=emacs DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/share/emacs
-}
-
-emacs() {
- depends="$pkgname"
- pkgdesc="emacs support for Anthy"
- cd "$builddir"
- make EMACS=emacs DESTDIR="$subpkgdir" install
- rm -rf "$subpkgdir"/etc
- rm -rf "$subpkgdir"/usr/bin
- rm -rf "$subpkgdir"/usr/include
- rm -rf "$subpkgdir"/usr/lib
- rm -rf "$subpkgdir"/usr/share/anthy
-}
-
-sha512sums="315ebd9e1af208f3ecaeaa13620213b35f004e47edb54e60c3e02c2997444cd2326cc58b725dd2d0bd6a723130884d946ea193ea3d92418082256b59ecc8d88b anthy-9100h.tar.gz"
diff --git a/testing/antibody/APKBUILD b/testing/antibody/APKBUILD
new file mode 100644
index 00000000000..520869fd59f
--- /dev/null
+++ b/testing/antibody/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Aleks Bunin <alpinelinux@compuix.com>
+# Maintainer: Aleks Bunin <alpinelinux@compuix.com>
+pkgname=antibody
+pkgver=6.1.1
+pkgrel=20
+pkgdesc="The fastest zsh shell plugin manager."
+url="https://github.com/getantibody/antibody"
+license="MIT"
+arch="all"
+depends="git zsh"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/getantibody/antibody/archive/v$pkgver.tar.gz"
+options="!check" # uses removed github api
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o antibody -ldflags "-X main.version=$pkgver" -trimpath
+}
+
+check() {
+ go test -v -cover ./...
+}
+
+package() {
+ install -sD -m 755 antibody "$pkgdir"/usr/bin/antibody
+}
+
+sha512sums="
+0a436227d195b1e68be03d62d0f7fab0f10c4434df10e047468809a6dcf330623c54ddf4e52c459d7b816a3be977e62c6aba58408881f9a45583456e37614b04 antibody-6.1.1.tar.gz
+"
diff --git a/testing/apache-mod-auth-gssapi/APKBUILD b/testing/apache-mod-auth-gssapi/APKBUILD
index 4bf30fa8af4..705e686915e 100644
--- a/testing/apache-mod-auth-gssapi/APKBUILD
+++ b/testing/apache-mod-auth-gssapi/APKBUILD
@@ -1,33 +1,39 @@
-# Maintainer:
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=apache-mod-auth-gssapi
-pkgver=1.6.1
-pkgrel=2
-pkgdesc="GSSAPI Authentication module for Apache"
-url="https://github.com/modauthgssapi/mod_auth_gssapi"
+pkgver=1.6.5
+pkgrel=1
+pkgdesc="GSSAPI authentication for Apache"
+url="https://github.com/gssapi/mod_auth_gssapi"
arch="all"
license="MIT"
depends="apache2"
-makedepends="apache2-dev krb5-dev"
-source="https://github.com/modauthgssapi/mod_auth_gssapi/releases/download/v$pkgver/mod_auth_gssapi-$pkgver.tar.gz"
-
+makedepends="apache2-dev krb5-dev openssl-dev>3
+automake autoconf m4 libtool flex bison"
+options="!check" # some packages missing from Alpine, see: https://github.com/gssapi/mod_auth_gssapi/ on "Tests" paragraph
+source="$pkgname-$pkgver.zip::https://github.com/gssapi/mod_auth_gssapi/archive/v$pkgver.zip
+mod-auth-gssapi.conf"
builddir="$srcdir"/mod_auth_gssapi-$pkgver
+prepare() {
+ autoreconf -fi
+}
+
build() {
- cd "$builddir"
./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
+ --prefix=/usr \
+ --enable-static=no
make
}
package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/etc/apache2/conf.d \
- "$pkgdir"/usr/lib/apache2
- install -D -m755 ./src/.libs/*.so "$pkgdir"/usr/lib/apache2
- echo "LoadModule auth_gssapi_module modules/mod_auth_gssapi.so" \
- > "$pkgdir"/etc/apache2/conf.d/mod-auth-gssapi.conf
+ make DESTDIR="$pkgdir" install
+ mkdir -p "$pkgdir"/etc/apache2/conf.d
+ install -D -m644 ../../mod-auth-gssapi.conf "$pkgdir"/etc/apache2/conf.d/mod-auth-gssapi.conf
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="56b770124826b3fe33af8b7022a4c16f979c7f25cb40a0f0c6320beb9ecc0add96f1586fddc6998551cefdaef366ab798346f69db823a3bf607ca9dc561c1f60 mod_auth_gssapi-1.6.1.tar.gz"
+sha512sums="
+356f2b0287bc8d3a976f1c5251654362b6489f0cda177fe43811fa873b8bccd6de6b5cb111dc8c13b40d3235ee4200aeac0bfa49ae8f3575b96292a65f647e51 apache-mod-auth-gssapi-1.6.5.zip
+45658d5446f18315de1a66b682a0669d15b0782e46e649b7d5c4bea2e1c9735909ee1b4d36e9eaa0e54bac68773bb68610d4a0bf68a9eccb368d569489246dfa mod-auth-gssapi.conf
+"
diff --git a/testing/apache-mod-auth-gssapi/mod-auth-gssapi.conf b/testing/apache-mod-auth-gssapi/mod-auth-gssapi.conf
new file mode 100644
index 00000000000..6be2dcc6f90
--- /dev/null
+++ b/testing/apache-mod-auth-gssapi/mod-auth-gssapi.conf
@@ -0,0 +1,19 @@
+LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
+
+## example, see mod_auth_gssapi README for more options
+#<Directory "/var/www/private">
+# AuthType GSSAPI
+# AuthName "GSSAPI Single Sign On Login"
+# GssapiCredStore keytab:/etc/apache2/krb5.keytab
+# Require valid-user
+# GssapiBasicAuth On
+# GssapiAllowedMech krb5
+# GssapiNegotiateOnce On
+# GssapiLocalName On
+# GssapiUseSessions On
+# GssapiDelegCcacheDir /run/httpd/clientcaches
+# GssapiPublishErrors On
+# GssapiAcceptorName HTTP@{HOSTNAME}
+## See http://www.jfcarter.net/~jimc/documents/bugfix/41-auth-kerb.html for details
+#</Directory>
+
diff --git a/testing/apache-mod-auth-openidc/APKBUILD b/testing/apache-mod-auth-openidc/APKBUILD
new file mode 100644
index 00000000000..11eb98866b0
--- /dev/null
+++ b/testing/apache-mod-auth-openidc/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Takumi Takahashi <takumiiinn@gmail.com>
+pkgname=apache-mod-auth-openidc
+_pkgname=mod_auth_openidc
+pkgver=2.4.15.7
+pkgrel=0
+pkgdesc="OpenID Connect Relying Party implementation for Apache HTTP Server 2.x"
+url="https://www.mod-auth-openidc.org"
+arch="all !s390x" # tests fails on s390x from cjose
+license="Apache-2.0"
+depends="apache2"
+makedepends="
+ apache2-dev
+ cjose-dev
+ curl-dev
+ hiredis-dev
+ jansson-dev
+ jq-dev
+ musl-dev
+ oniguruma-dev
+ openssl-dev
+ pcre2-dev
+ "
+subpackages="$pkgname-doc $pkgname-static"
+source="https://github.com/OpenIDC/mod_auth_openidc/releases/download/v$pkgver/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+# secfixes:
+# 2.4.15.3-r0:
+# - CVE-2024-24814
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --with-jq=/usr
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/apache2
+ /usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/build-1/libtool' mod_auth_openidc.la "$pkgdir"/usr/lib/apache2
+ /usr/share/build-1/libtool --mode=install install mod_auth_openidc.la "$pkgdir"/usr/lib/apache2
+
+ mkdir -p "$pkgdir"/etc/apache2/conf.d
+ cat <<- __EOF__ > "$pkgdir"/etc/apache2/conf.d/mod-auth-openidc.conf
+ LoadModule auth_openidc_module modules/mod_auth_openidc.so
+
+ __EOF__
+ cat auth_openidc.conf >> "$pkgdir"/etc/apache2/conf.d/mod-auth-openidc.conf
+
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/"$pkgname"/README.md
+}
+
+sha512sums="
+cf32be4eaf5df9000af760bc1ef2fe372110fb385c4fc216724563eb71593a765a533acbf5210fd0686a58eab606bd362c8f1514c2f179906a502b25556a14b6 mod_auth_openidc-2.4.15.7.tar.gz
+"
diff --git a/testing/apache2-mod-perl/APKBUILD b/testing/apache2-mod-perl/APKBUILD
index ef6a3381560..989172e5d0e 100644
--- a/testing/apache2-mod-perl/APKBUILD
+++ b/testing/apache2-mod-perl/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=apache2-mod-perl
_pkgreal=mod_perl
-pkgver=2.0.11
+pkgver=2.0.13
pkgrel=0
pkgdesc="Perl Module for Apache2"
url="https://perl.apache.org/"
@@ -14,7 +14,7 @@ depends_dev="$pkgname"
makedepends="apache2-dev perl-dev perl-linux-pid apr-dev apr-util-dev"
options="!check" # fails to start test server
subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev"
-source="https://www-eu.apache.org/dist/perl/$_pkgreal-$pkgver.tar.gz
+source="https://archive.apache.org/dist/perl/$_pkgreal-$pkgver.tar.gz
$pkgname.conf"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -29,7 +29,6 @@ check() {
make test
}
-
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
@@ -48,5 +47,7 @@ dev() {
"$subpkgdir"/usr/lib/perl5/vendor_perl/auto/Apache2
}
-sha512sums="f232b215ccb9217f69ccced8a037470e5975900b9a6fcc5a2e4674e6559d21f026547c1b97c48109352043946dc22539dd38004759be16ad5cfcb3a96973dfdf mod_perl-2.0.11.tar.gz
-15a430ce597e370997a08d6aa1b5e55d4fa723ecac031fe39906c8cc767b90d5bf63e3026dfaa8b10ae8b09a17832f4f07cb8b2fdcd6c9ef427edfaf4e8a48b0 apache2-mod-perl.conf"
+sha512sums="
+453c789743487e2d1167d005f21ef9780f36488db8830103e4ea0a0656f685bf5ec423cd1baa68ee30efc75d9e2b845c9656458203b9f48de81a315a91d587c9 mod_perl-2.0.13.tar.gz
+15a430ce597e370997a08d6aa1b5e55d4fa723ecac031fe39906c8cc767b90d5bf63e3026dfaa8b10ae8b09a17832f4f07cb8b2fdcd6c9ef427edfaf4e8a48b0 apache2-mod-perl.conf
+"
diff --git a/testing/aparte/APKBUILD b/testing/aparte/APKBUILD
new file mode 100644
index 00000000000..a540a642fa0
--- /dev/null
+++ b/testing/aparte/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=aparte
+pkgver=0.2.0_git20240324
+_gitrev=e5d9ac7f3bb6cd6d135657d9342f9ccac6f1d182
+pkgrel=0
+pkgdesc="Simple XMPP console client written in Rust"
+url="https://github.com/paulfariello/aparte"
+arch="all"
+license="MPL-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ protoc
+ sqlite-dev
+ "
+source="https://github.com/paulfariello/aparte/archive/$_gitrev/aparte-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dvm755 target/release/aparte \
+ -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+49d8ba59dcb8978e56dd9e36e62bb151239961302ddfffdcac1345aeaa41a1736e3970157f744b074ced2d7fc3f368de02be93d0d8ca713a6cec14f604992620 aparte-e5d9ac7f3bb6cd6d135657d9342f9ccac6f1d182.tar.gz
+"
diff --git a/testing/apk-autoupdate/APKBUILD b/testing/apk-autoupdate/APKBUILD
index a039b6045d2..4b43c45bd51 100644
--- a/testing/apk-autoupdate/APKBUILD
+++ b/testing/apk-autoupdate/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=apk-autoupdate
-pkgver=0_git20180503
-pkgrel=1
-_gitrev=881b6ba1f562f4bc07132f75adddd81439b5e312
+pkgver=0_git20210421
+pkgrel=0
+_gitrev=1704b284cbb2a8dd8a7791d13d9741cdfa062aad
pkgdesc="Alpine's tool for automatic updates"
url="https://github.com/jirutka/apk-autoupdate/"
arch="all"
@@ -24,4 +24,6 @@ package() {
make install DESTDIR="$pkgdir" prefix=/usr
}
-sha512sums="b1978d2a53311d4952901bb498526134f6238516b3651db162b1f172fac7cffa31957cb5f003fc32fa10589a08b1118d8ae1bd28c71aaff17bd64625ae3c4d00 apk-autoupdate-881b6ba1f562f4bc07132f75adddd81439b5e312.tar.gz"
+sha512sums="
+146aa997632a4da7d70528fdedf9605253b8a6b73e26d99779c8296a94e293d36fed29d12733d98b85ffef2dd7a4e2f3969ce4e00a1874ad2b8ebcadf319615e apk-autoupdate-1704b284cbb2a8dd8a7791d13d9741cdfa062aad.tar.gz
+"
diff --git a/testing/apk-snap/APKBUILD b/testing/apk-snap/APKBUILD
new file mode 100644
index 00000000000..d5cc2c3a8fc
--- /dev/null
+++ b/testing/apk-snap/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Jacob Ludvigsen <jacob.ludvigsen@protonmail.com>
+# Maintainer: Jacob Ludvigsen <jacob.ludvigsen@protonmail.com>
+pkgname=apk-snap
+pkgver=3.1.1
+pkgrel=0
+pkgdesc="Port of snap-pac from Arch Linux. Triggers filesystem snapshots before and after every apk commit"
+url="https://gitlab.com/papiris/apk-snap"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 snapper"
+makedepends="py3-sphinx sphinx"
+checkdepends="py3-pytest"
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
+subpackages="$pkgname-doc"
+source="https://gitlab.com/papiris/apk-snap/-/archive/$pkgver/apk-snap-$pkgver.tar.bz2"
+
+build() {
+ make man
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+ install -Dm644 $builddir/extra/snapper-config-apk-snap $pkgdir/etc/apk-snap/default-snapper-config-apk-snap.conf
+}
+
+sha512sums="
+f56a82d911aa14f6917603eff1d716cfd211344077d68525d73f68f7df62d4ba07b841ba1ccc7ef38dff4d8fc08e02b98335dc475d2a695cbfc27716d28e7582 apk-snap-3.1.1.tar.bz2
+"
diff --git a/testing/apk-snap/apk-snap.post-deinstall b/testing/apk-snap/apk-snap.post-deinstall
new file mode 100755
index 00000000000..794168ae66b
--- /dev/null
+++ b/testing/apk-snap/apk-snap.post-deinstall
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+SNAPPER_CONFIGS_FILE="/etc/snapper/snapper"
+SNAPPER_CONFIG_APK_SNAP_ITEM="root-apk-snap"
+
+# Check if /etc/snapper/snapper exists, add call to config for apk-snap
+if [ -f "$SNAPPER_CONFIGS_FILE" ]; then
+ # Extract the value of SNAPPER_CONFIGS from the file
+ SNAPPER_CONFIGS=$(awk -F'[:"]+' '/^SNAPPER_CONFIGS=/ {print $3}' "$SNAPPER_CONFIGS_FILE")
+
+ # Check if "root-apk-snap" is in the SNAPPER_CONFIGS
+ if [ -n "$SNAPPER_CONFIGS" ] && echo "$SNAPPER_CONFIGS" | grep -qw "$SNAPPER_CONFIG_APK_SNAP_ITEM"; then
+ SNAPPER_CONFIGS=$(echo "$SNAPPER_CONFIGS" | sed "s/\b$DEFAULT_SNAPPER_ITEM\b//g" | sed 's/ / /g' | sed 's/^ //;s/ $//')
+ sed -i "/^SNAPPER_CONFIGS=/s/=.*/=\"$SNAPPER_CONFIGS\"/" "$SNAPPER_CONFIGS_FILE"
+ echo "$SNAPPER_CONFIG_APK_SNAP_ITEM removed from SNAPPER_CONFIGS: $SNAPPER_CONFIGS"
+ fi
+else
+ echo "Snapper not properly installed, $SNAPPER_CONFIGS_FILE does not exist"
+fi
+
+
+# Check if snapper config for apk-snap, and snapshots subvol exists; and take appropriate action
+if [ -f "/etc/snapper/configs/root-apk-snap" ] && [ -d "/.snapshots" ]; then
+ echo "snapper config for apk-snap removed, ./snapshots subvol not removed."
+ rm -f /etc/snapper/configs/root-apk-snap
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] && [ ! -d "/.snapshots" ]; then
+ echo "snapper config for apk-snap removed, snapshots subvol does not exist."
+ rm -f /etc/snapper/configs/root-apk-snap
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] || [ -d "/.snapshots" ]; then
+ echo "snapper config for apk-snap does not exist, snapshots subvol not removed."
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] || [ ! -d "/.snapshots" ]; then
+ echo "snapper config for apk-snap does not exist, snapshots subvol does not exist."
+fi
diff --git a/testing/apk-snap/apk-snap.post-install b/testing/apk-snap/apk-snap.post-install
new file mode 100755
index 00000000000..03d70da3720
--- /dev/null
+++ b/testing/apk-snap/apk-snap.post-install
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+SNAPPER_CONFIGS_FILE="/etc/snapper/snapper"
+SNAPPER_CONFIG_APK_SNAP_ITEM="root-apk-snap"
+DEFAULT_APK_SNAPPER_CONFIG="/etc/apk-snap/default-snapper-config-apk-snap.conf"
+
+# Check if /etc/snapper/snapper exists, add call to config for apk-snap
+if [ -f "$SNAPPER_CONFIGS_FILE" ]; then
+ # Extract the value of SNAPPER_CONFIGS from the file
+ SNAPPER_CONFIGS=$(awk -F'[:"]+' '/^SNAPPER_CONFIGS=/ {print $3}' "$SNAPPER_CONFIGS_FILE")
+
+ # Check if "root-apk-snap" is in the SNAPPER_CONFIGS
+ if [ -n "$SNAPPER_CONFIGS" ] && echo "$SNAPPER_CONFIGS" | grep -qw "$SNAPPER_CONFIG_APK_SNAP_ITEM"; then
+ :
+ else
+ # Add "root-apk-snap" to SNAPPER_CONFIGS
+ SNAPPER_CONFIGS="$SNAPPER_CONFIGS $SNAPPER_CONFIG_APK_SNAP_ITEM"
+ sed -i "/^SNAPPER_CONFIGS=/s/=.*/=\"$SNAPPER_CONFIGS\"/" "$SNAPPER_CONFIGS_FILE"
+ echo "$SNAPPER_CONFIG_APK_SNAP_ITEM added to $SNAPPER_CONFIGS_FILE"
+ fi
+else
+ echo "Snapper not properly installed, $SNAPPER_CONFIGS_FILE does not exist"
+ exit 1
+fi
+
+
+# Check if snapper config for apk-snap, and snapshots subvol exists; and take appropriate action
+if [ -f "/etc/snapper/configs/root-apk-snap" ] && [ -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap exists, ./snapshots subvol exists."
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] && [ ! -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap exists, ./snapshots subvol does not exist."
+ echo "Creating /.snapshots subvol"
+ btrfs subvol create /.snapshots
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] || [ -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap does not exist, snapshots subvol exists."
+ echo "Creating snapper config for apk-snap"
+ install -Dm 644 $DEFAULT_APK_SNAPPER_CONFIG /etc/snapper/configs/$SNAPPER_CONFIG_APK_SNAP_ITEM
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] || [ ! -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap does not exist, snapshots subvol does not exist."
+ echo "Creating /.snapshots subvol and snapper config for apk-snap"
+ btrfs subvol create /.snapshots
+ install -Dm 644 $DEFAULT_APK_SNAPPER_CONFIG /etc/snapper/configs/$SNAPPER_CONFIG_APK_SNAP_ITEM
+fi
diff --git a/testing/apk-snap/apk-snap.post-upgrade b/testing/apk-snap/apk-snap.post-upgrade
new file mode 100755
index 00000000000..03d70da3720
--- /dev/null
+++ b/testing/apk-snap/apk-snap.post-upgrade
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+SNAPPER_CONFIGS_FILE="/etc/snapper/snapper"
+SNAPPER_CONFIG_APK_SNAP_ITEM="root-apk-snap"
+DEFAULT_APK_SNAPPER_CONFIG="/etc/apk-snap/default-snapper-config-apk-snap.conf"
+
+# Check if /etc/snapper/snapper exists, add call to config for apk-snap
+if [ -f "$SNAPPER_CONFIGS_FILE" ]; then
+ # Extract the value of SNAPPER_CONFIGS from the file
+ SNAPPER_CONFIGS=$(awk -F'[:"]+' '/^SNAPPER_CONFIGS=/ {print $3}' "$SNAPPER_CONFIGS_FILE")
+
+ # Check if "root-apk-snap" is in the SNAPPER_CONFIGS
+ if [ -n "$SNAPPER_CONFIGS" ] && echo "$SNAPPER_CONFIGS" | grep -qw "$SNAPPER_CONFIG_APK_SNAP_ITEM"; then
+ :
+ else
+ # Add "root-apk-snap" to SNAPPER_CONFIGS
+ SNAPPER_CONFIGS="$SNAPPER_CONFIGS $SNAPPER_CONFIG_APK_SNAP_ITEM"
+ sed -i "/^SNAPPER_CONFIGS=/s/=.*/=\"$SNAPPER_CONFIGS\"/" "$SNAPPER_CONFIGS_FILE"
+ echo "$SNAPPER_CONFIG_APK_SNAP_ITEM added to $SNAPPER_CONFIGS_FILE"
+ fi
+else
+ echo "Snapper not properly installed, $SNAPPER_CONFIGS_FILE does not exist"
+ exit 1
+fi
+
+
+# Check if snapper config for apk-snap, and snapshots subvol exists; and take appropriate action
+if [ -f "/etc/snapper/configs/root-apk-snap" ] && [ -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap exists, ./snapshots subvol exists."
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] && [ ! -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap exists, ./snapshots subvol does not exist."
+ echo "Creating /.snapshots subvol"
+ btrfs subvol create /.snapshots
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] || [ -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap does not exist, snapshots subvol exists."
+ echo "Creating snapper config for apk-snap"
+ install -Dm 644 $DEFAULT_APK_SNAPPER_CONFIG /etc/snapper/configs/$SNAPPER_CONFIG_APK_SNAP_ITEM
+
+elif [ -f "/etc/snapper/configs/root-apk-snap" ] || [ ! -d "/.snapshots" ]; then
+ echo "Snapper config for apk-snap does not exist, snapshots subvol does not exist."
+ echo "Creating /.snapshots subvol and snapper config for apk-snap"
+ btrfs subvol create /.snapshots
+ install -Dm 644 $DEFAULT_APK_SNAPPER_CONFIG /etc/snapper/configs/$SNAPPER_CONFIG_APK_SNAP_ITEM
+fi
diff --git a/testing/apk-tools3/APKBUILD b/testing/apk-tools3/APKBUILD
new file mode 100644
index 00000000000..3ae7dae436a
--- /dev/null
+++ b/testing/apk-tools3/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Sertonix <sertonix@posteo.net>
+pkgname=apk-tools3
+pkgver=3.0.0_pre2_git20240401
+_commit=b7a7ea728e242a04f32f8e56ddc3d8d85960ee28
+pkgrel=0
+pkgdesc="Alpine Package Keeper v3 - package manager for alpine"
+arch="all"
+url="https://git.alpinelinux.org/apk-tools"
+license="GPL-2.0-only"
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-static $pkgname-doc $pkgname-libs"
+# Musl 1.2 introduced new ABI for time64 => upgrading apk-tools
+# while staying on musl <1.2 causes missing symbols
+# 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"
+_lua="5.3"
+makedepends_build="openssl>3 lua$_lua lua$_lua-lzlib scdoc"
+makedepends_host="meson zlib-dev zstd-dev openssl-dev zlib-static zstd-static openssl-libs-static linux-headers"
+makedepends="$makedepends_build $makedepends_host"
+_d_lua=disabled
+if [ "$CBUILD" = "$CHOST" ]; then
+ _d_lua=enabled
+ subpackages="$subpackages lua$_lua-apk3:luaapk"
+ makedepends="$makedepends lua$_lua-dev"
+
+ # ca-certificates-bundle needed for https certificate validation
+ depends="$depends ca-certificates-bundle"
+fi
+source="$pkgname-$pkgver.tar.gz::https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/$_commit/apk-tools-$_commit.tar.gz"
+builddir=$srcdir/apk-tools-$_commit
+
+build() {
+ abuild-meson \
+ --bindir=/sbin \
+ --libdir=/lib \
+ -Dlua_version=$_lua -Dlua=$_d_lua \
+ -Ddocs=enabled \
+ -Dhelp=enabled \
+ -Dstatic_apk=true \
+ . output
+ VERSION=$pkgver-r$pkgrel meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ install -d "$pkgdir"/lib/apk/db \
+ "$pkgdir"/lib/apk/exec \
+ "$pkgdir"/etc/apk/keys \
+ "$pkgdir"/etc/apk/protected_paths.d
+}
+
+static() {
+ pkgdesc="$pkgdesc (static binary)"
+ depends=""
+
+ amove sbin/apk.static
+ ${CROSS_COMPILE}strip "$subpkgdir"/sbin/apk.static
+ local pubkey="${PACKAGER_PUBKEY:-$PACKAGER_PRIVKEY.pub}"
+ openssl dgst -sha1 -sign "$PACKAGER_PRIVKEY" \
+ -out "$subpkgdir"/sbin/apk.static.SIGN.RSA."${pubkey##*/}" \
+ "$subpkgdir"/sbin/apk.static
+}
+
+libs() {
+ pkgdesc="$pkgdesc (libraries)"
+ amove 'lib/libapk*'
+}
+
+luaapk() {
+ pkgdesc="Lua module for $pkgname"
+ depends=""
+ amove 'usr/lib/lua*'
+}
+
+sha512sums="
+b7889bd50192e83ab051ab9bf2cebf80a0c22029b8a60b9329e426ac0e394dc856a4ecb5648c32cc3eb72d6b0cf09a8395b54c53d48fb5ab4645d0f8bdaa69cd apk-tools3-3.0.0_pre2_git20240401.tar.gz
+"
diff --git a/testing/apmpkg/APKBUILD b/testing/apmpkg/APKBUILD
new file mode 100644
index 00000000000..734d0214c8e
--- /dev/null
+++ b/testing/apmpkg/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: kedap <kedap.dev@protonmail.com>
+# Maintainer: kedap <kedap.dev@protonmail.com>
+pkgname=apmpkg
+pkgver=1.5.1
+pkgrel=3
+pkgdesc="A Package Manager as a model: PKGBUILD"
+url="https://github.com/kedap/apmpkg"
+# armhf: test timeout
+# s390x, riscv64: limited by rust/cargo
+arch="all !s390x !armhf !riscv64"
+license="Apache-2.0"
+depends="git fakeroot wget ruby-bundler py3-pip bash ruby-dev npm"
+makedepends="cargo openssl-dev>3 patchutils cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/Kedap/apmpkg/archive/refs/tags/$pkgver.tar.gz
+ fix-with-outdated-rust.patch
+ "
+
+
+build() {
+ cargo auditable build --release --locked --verbose
+}
+
+check() {
+ cargo test --all --release --locked --verbose
+}
+
+package() {
+ install -Dm 755 target/release/$pkgname -t "$pkgdir"/usr/bin
+ mkdir -p "$pkgdir"/etc/apmpkg
+ cp -r src/iiabc "$pkgdir"/etc/apmpkg
+ mkdir -p $pkgdir/etc/apmpkg/paquetes
+
+ #Install documentation
+ install -Dm0644 man/*.1 -t "$pkgdir"/usr/share/man/man1
+
+ #Install bash completion
+ install -Dm0644 completions/$pkgname.bash-completion \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+
+ #Install zsh completion
+ install -Dm0644 completions/_$pkgname \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+
+ #Install fish completion
+ install -Dm0644 completions/$pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+}
+
+sha512sums="
+20190348ab2a2d12b2647dcdd017e6fb739b3cf2c3eb559b15d0ce7058d38fd9bccd3bc4385707594e0bebb551d746df6a646f94d079d5b92f7a8c366a350c61 apmpkg-1.5.1.tar.gz
+31c7b35f4bd114d3ccae4bffe5e0bcdb4a477f1803206ba771dcfc212a03df741387abbd110a407e6f057aedfa620c694898875b9be52388fced8aa360a09fef fix-with-outdated-rust.patch
+"
diff --git a/testing/apmpkg/fix-with-outdated-rust.patch b/testing/apmpkg/fix-with-outdated-rust.patch
new file mode 100644
index 00000000000..7f280ac442a
--- /dev/null
+++ b/testing/apmpkg/fix-with-outdated-rust.patch
@@ -0,0 +1,22 @@
+Author: Kedap <kedap.dev@protonmail.com>
+Summary: Fix the problem with compilation in outdate versions of rust
+--- a/src/core_funcions.rs 2021-09-29 13:25:40.248455519 -0500
++++ b/core_funcions.rs 2021-09-29 16:03:46.198414493 -0500
+@@ -281,7 +281,7 @@
+ let depen_arr = &adi_paquete.dependencias;
+
+ //Selecionando los gestores instalados
+- for gestor in catalogo {
++ for gestor in catalogo.iter() {
+ let comando = Command::new("bash")
+ .arg("-c")
+ .arg(gestor)
+@@ -368,7 +368,7 @@
+ let mut gestores = Vec::new();
+
+ //Selecionando los gestores instalados
+- for gestor in catalogo {
++ for gestor in catalogo.iter() {
+ let comando = Command::new("bash")
+ .arg("-c")
+ .arg(gestor)
diff --git a/testing/apollo/APKBUILD b/testing/apollo/APKBUILD
new file mode 100644
index 00000000000..5b38062c137
--- /dev/null
+++ b/testing/apollo/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: David Sugar <tychosoft@gmail.com>
+# Contributor: David Sugar <tychosoft@gmail.com>
+pkgname=apollo
+pkgver=0.2.1
+pkgrel=2
+pkgdesc="Web management and api services for Coventry"
+url="https://www.tychosoft.com/tychosoft/apollo/wiki"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="make musl-dev go"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://www.tychosoft.com/api/packages/tychosoft/generic/apollo/$pkgver/apollo-$pkgver.tar.gz apollo.initd"
+
+build() {
+ make PREFIX=/usr SYSCONFDIR=/etc LOCALSTATEDIR=/var release
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr SYSCONFDIR=/etc LOCALSTATEDIR=/var install
+ install -D -m 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+ install -Dm644 FEATURES.md "$pkgdir"/usr/share/doc/$pkgname/FEATURES.md
+}
+
+sha512sums="
+86627bda730a5d0734f12de5b64ad37916c36803de61391edf8ef241a5e96859b07db7eae68890d4e98e7f5d142a55646215f8404c06bfcba7d5ba3f8f20b4d8 apollo-0.2.1.tar.gz
+110cb34c47d2ea9f887b393e24393a2f3224989bc9f659983eaa7fdc678f46ca34f412018a016be331eb53a886b1ca39e8479571fb6c2a0ed6f5294c3a99c16c apollo.initd
+"
diff --git a/testing/apollo/apollo.initd b/testing/apollo/apollo.initd
new file mode 100644
index 00000000000..4bc6370c9e6
--- /dev/null
+++ b/testing/apollo/apollo.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name=apollo
+command="/usr/sbin/apollo"
+pidfile="/run/apollo.pid"
+extra_started_commands="reload"
+
+depend() {
+ use logger dns
+ need net
+ after coventry
+}
+
+stop() {
+ ebegin "Stopping ${RC_SVCNAME}"
+ start-stop-daemon --signal INT --pidfile "${pidfile}"
+ eend $? "Failed to stop ${RC_SVCNAME}"
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
+
diff --git a/testing/aports-ghpr/APKBUILD b/testing/aports-ghpr/APKBUILD
deleted file mode 100644
index daa189eaa13..00000000000
--- a/testing/aports-ghpr/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=aports-ghpr
-pkgver=0.2
-pkgrel=3
-pkgdesc="Search aport in github pull requests"
-url="https://git.alpinelinux.org/cgit/user/ncopa/aports-ghpr"
-arch="all !mips !mips64" # blocked by dep
-license="ISC"
-makedepends="go dep"
-source="https://dev.alpinelinux.org/archive/aports-ghpr/aports-ghpr-$pkgver.tar.xz
- add-toml-file.patch"
-builddir="$srcdir/src/github.com/aports-ghpr/$pkgname"
-options="!check"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir/$pkgname-$pkgver" "$builddir/"
- default_prepare
-}
-build() {
- cd "$builddir"
- export GOPATH="$srcdir"
- dep ensure -v
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" prefix=/usr install
-}
-
-sha512sums="5358bcc0706020c90aa18e74a75534844ce44959455cf18ba61eae6307a7b2d0ded849aed3c9ca3115cd82182ca4f5125037c16ffcd5969d1b582735db1f216c aports-ghpr-0.2.tar.xz
-ce320bee6eb10f5b80a7dba7124d17437ac6b21a53bff29a7fd2022399312543322a5102a61f2c63b8fadc12c52ed517bf1289a0f97cdd18435db56bdfd75695 add-toml-file.patch"
diff --git a/testing/aports-ghpr/add-toml-file.patch b/testing/aports-ghpr/add-toml-file.patch
deleted file mode 100644
index cce11685ffb..00000000000
--- a/testing/aports-ghpr/add-toml-file.patch
+++ /dev/null
@@ -1,6 +0,0 @@
---- /dev/null
-+++ src/Gopkg.toml
-@@ -0,0 +1,3 @@
-+[[constraint]]
-+ name = "github.com/google/go-github"
-+ version = "15.0.0"
diff --git a/testing/aports-glmr/APKBUILD b/testing/aports-glmr/APKBUILD
new file mode 100644
index 00000000000..3d062711251
--- /dev/null
+++ b/testing/aports-glmr/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=aports-glmr
+pkgver=0.2
+pkgrel=20
+pkgdesc="CLI tool to search open merge requests for aports"
+url="https://gitlab.alpinelinux.org/ncopa/aports-glmr"
+license="MIT"
+arch="all"
+makedepends="go"
+source="https://gitlab.alpinelinux.org/ncopa/aports-glmr/-/archive/$pkgver/aports-glmr-$pkgver.tar.gz"
+options="!check" # no checks
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ DESTDIR="$pkgdir" make install prefix=/usr
+}
+
+sha512sums="
+5e7b92b5428d144de5d67ea1ac5acfe651cb3ad0a98b499132d31444a0aefff53b7a3846001a2af66f69b212c7688dfc8211a991858d33c745ced4a50dab2e6f aports-glmr-0.2.tar.gz
+"
diff --git a/testing/apostrophe/APKBUILD b/testing/apostrophe/APKBUILD
new file mode 100644
index 00000000000..88aa3438902
--- /dev/null
+++ b/testing/apostrophe/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=apostrophe
+pkgver=2.6.3
+pkgrel=6
+pkgdesc="distraction free Markdown editor for GNU/Linux made with GTK+"
+url="https://gitlab.gnome.org/World/apostrophe"
+arch="aarch64 x86_64" # py3-pypandoc
+license="GPL-3.0-or-later"
+depends="
+ font-fira-otf
+ gspell
+ gtk+3.0
+ libhandy1
+ py3-cairo
+ py3-chardet
+ py3-enchant
+ py3-gobject3
+ py3-levenshtein
+ py3-pypandoc
+ py3-regex
+ py3-setuptools
+ webkit2gtk
+ "
+makedepends="meson gtk+3.0-dev gobject-introspection-dev gspell-dev gettext-dev
+ libhandy1-dev sassc"
+checkdepends="appstream-glib desktop-file-utils"
+subpackages="$pkgname-lang"
+source="https://gitlab.gnome.org/World/apostrophe/-/archive/v$pkgver/apostrophe-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ # fix font finding
+ sed -i 's|/app/share/fonts/FiraSans-Regular.ttf|/usr/share/fonts/OTF/FiraSans-Regular.otf|' \
+ data/media/css/web/base.css
+ sed -i 's|/app/share/fonts/FiraMono-Regular.ttf|/usr/share/fonts/OTF/FiraMono-Regular.otf|' \
+ data/media/css/web/base.css
+
+}
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+1820fd609efe4ac0b7babdeb2aa552a72dd9623f4caeb8eb9e638a52a546b76fda5119931d10b630234a595d227ff7090a63503fd9da94d553439b91a03ac876 apostrophe-v2.6.3.tar.gz
+"
diff --git a/testing/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch b/testing/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch
deleted file mode 100644
index 4180cf65817..00000000000
--- a/testing/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-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/testing/apparmor/0002-utils-remove-vim-from-the-default-build.patch b/testing/apparmor/0002-utils-remove-vim-from-the-default-build.patch
deleted file mode 100644
index f3fa0bbc61b..00000000000
--- a/testing/apparmor/0002-utils-remove-vim-from-the-default-build.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 24aca47716b70c1d0e3b58a1fbd8e312fec70e07 Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Wed, 4 Jul 2018 17:02:34 +0200
-Subject: [PATCH 2/7] utils: remove vim from the default build
-
-We will build the vim utils as a separate target
----
- utils/Makefile | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/utils/Makefile b/utils/Makefile
-index 68f8c376..01604796 100644
---- a/utils/Makefile
-+++ b/utils/Makefile
-@@ -32,7 +32,6 @@ MANPAGES = ${TOOLS:=.8} logprof.conf.5
-
- all: docs
- $(MAKE) -C po all
-- $(MAKE) -C vim all
-
- .PHONY: docs
- docs: ${MANPAGES} ${HTMLMANPAGES}
-@@ -58,7 +57,6 @@ install: ${MANPAGES} ${HTMLMANPAGES}
- install -m 755 $(filter-out aa-easyprof, ${TOOLS}) ${BINDIR}
- $(MAKE) -C po install DESTDIR=${DESTDIR} NAME=${NAME}
- $(MAKE) install_manpages DESTDIR=${DESTDIR}
-- $(MAKE) -C vim install DESTDIR=${DESTDIR}
- ln -sf aa-status.8 ${DESTDIR}/${MANDIR}/man8/apparmor_status.8
- ${PYTHON} ${PYSETUP} install --prefix=${PYPREFIX} --root=${DESTDIR} --version=${VERSION}
-
-@@ -69,7 +67,6 @@ endif
- clean: pod_clean
- rm -f core core.* *.o *.s *.a *~
- $(MAKE) -C po clean
-- $(MAKE) -C vim clean
- $(MAKE) -C test clean
- rm -rf staging/ build/
- rm -f apparmor/*.pyc apparmor/rule/*.pyc
-@@ -100,4 +97,3 @@ check: check_severity_db check_pod_files
- $(PYFLAKES) $$i || exit 1; \
- done
- $(MAKE) -C test check
-- $(MAKE) -C vim check
---
-2.20.1
-
diff --git a/testing/apparmor/0003-parser-remove-specific-tests-for-rttime.patch b/testing/apparmor/0003-parser-remove-specific-tests-for-rttime.patch
deleted file mode 100644
index fe5ac45d4b9..00000000000
--- a/testing/apparmor/0003-parser-remove-specific-tests-for-rttime.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 3e78593208264935ed2589d784cbcb69f750c274 Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Wed, 4 Jul 2018 17:05:10 +0200
-Subject: [PATCH 3/7] parser: remove specific tests for rttime
-
-musl libc doesn't implement this feature, so the tests fail.
-We must find a way to skip those tests instead of removing them
----
- parser/tst/equality.sh | 18 +++++++++---------
- .../tst/simple_tests/rlimits/ok_rlimit_13.sd | 7 -------
- .../tst/simple_tests/rlimits/ok_rlimit_18.sd | 7 -------
- 3 files changed, 9 insertions(+), 23 deletions(-)
- delete mode 100644 parser/tst/simple_tests/rlimits/ok_rlimit_13.sd
- delete mode 100644 parser/tst/simple_tests/rlimits/ok_rlimit_18.sd
-
-diff --git a/parser/tst/equality.sh b/parser/tst/equality.sh
-index 029eec46..3b2f0f9f 100755
---- a/parser/tst/equality.sh
-+++ b/parser/tst/equality.sh
-@@ -525,15 +525,15 @@ verify_binary_equality "@{profile_name} is literal in peer with esc alt sequence
-
-
- # verify rlimit data conversions
--verify_binary_equality "set rlimit rttime <= 12 weeks" \
-- "/t { set rlimit rttime <= 12 weeks, }" \
-- "/t { set rlimit rttime <= $((12 * 7)) days, }" \
-- "/t { set rlimit rttime <= $((12 * 7 * 24)) hours, }" \
-- "/t { set rlimit rttime <= $((12 * 7 * 24 * 60)) minutes, }" \
-- "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60)) seconds, }" \
-- "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000)) ms, }" \
-- "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000 * 1000)) us, }" \
-- "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000 * 1000)), }"
-+#verify_binary_equality "set rlimit rttime <= 12 weeks" \
-+# "/t { set rlimit rttime <= 12 weeks, }" \
-+# "/t { set rlimit rttime <= $((12 * 7)) days, }" \
-+# "/t { set rlimit rttime <= $((12 * 7 * 24)) hours, }" \
-+# "/t { set rlimit rttime <= $((12 * 7 * 24 * 60)) minutes, }" \
-+# "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60)) seconds, }" \
-+# "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000)) ms, }" \
-+# "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000 * 1000)) us, }" \
-+# "/t { set rlimit rttime <= $((12 * 7 * 24 * 60 * 60 * 1000 * 1000)), }"
-
- verify_binary_equality "set rlimit cpu <= 42 weeks" \
- "/t { set rlimit cpu <= 42 weeks, }" \
-diff --git a/parser/tst/simple_tests/rlimits/ok_rlimit_13.sd b/parser/tst/simple_tests/rlimits/ok_rlimit_13.sd
-deleted file mode 100644
-index 50b9a6f3..00000000
---- a/parser/tst/simple_tests/rlimits/ok_rlimit_13.sd
-+++ /dev/null
-@@ -1,7 +0,0 @@
--#
--#=DESCRIPTION simple rttime rlimit allows default units
--#=EXRESULT PASS
--
--profile rlimit {
-- set rlimit rttime <= 12,
--}
-diff --git a/parser/tst/simple_tests/rlimits/ok_rlimit_18.sd b/parser/tst/simple_tests/rlimits/ok_rlimit_18.sd
-deleted file mode 100644
-index f2747f10..00000000
---- a/parser/tst/simple_tests/rlimits/ok_rlimit_18.sd
-+++ /dev/null
-@@ -1,7 +0,0 @@
--#
--#=DESCRIPTION simple realtime time rlimit test
--#=EXRESULT PASS
--
--profile rlimit {
-- set rlimit rttime <= 60minutes,
--}
---
-2.20.1
-
diff --git a/testing/apparmor/0004-parser-remove-specific-tests-for-ofile.patch b/testing/apparmor/0004-parser-remove-specific-tests-for-ofile.patch
deleted file mode 100644
index 2847bc1df2a..00000000000
--- a/testing/apparmor/0004-parser-remove-specific-tests-for-ofile.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 7227f8c49cf74ff470248cdb946dd27872854979 Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Wed, 4 Jul 2018 17:08:11 +0200
-Subject: [PATCH 4/7] parser: remove specific tests for ofile
-
-musl libc doesn't implement this feature, so the test fail.
-We must find a way to skip this test instead of removing it
----
- parser/tst/simple_tests/rlimits/ok_rlimit_09.sd | 7 -------
- 1 file changed, 7 deletions(-)
- delete mode 100644 parser/tst/simple_tests/rlimits/ok_rlimit_09.sd
-
-diff --git a/parser/tst/simple_tests/rlimits/ok_rlimit_09.sd b/parser/tst/simple_tests/rlimits/ok_rlimit_09.sd
-deleted file mode 100644
-index 6510ae72..00000000
---- a/parser/tst/simple_tests/rlimits/ok_rlimit_09.sd
-+++ /dev/null
-@@ -1,7 +0,0 @@
--#
--#=DESCRIPTION simple max open file (same as nofile) rlimit test
--#=EXRESULT PASS
--
--profile rlimit {
-- set rlimit ofile <= 1234,
--}
---
-2.20.1
-
diff --git a/testing/apparmor/0005-utils-adjust-tests-to-match-the-Alpine-layout.patch b/testing/apparmor/0005-utils-adjust-tests-to-match-the-Alpine-layout.patch
deleted file mode 100644
index bb904946261..00000000000
--- a/testing/apparmor/0005-utils-adjust-tests-to-match-the-Alpine-layout.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 1951d7c3535d46edbfe16b8a1b8d2176d96d4235 Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Mon, 23 Mar 2020 16:12:36 +0000
-Subject: [PATCH 07/12] utils: adjust tests to match the Alpine layout
-
-Here we need to adjust several utilities path with the ones used by
-Alpine
----
- utils/test/test-aa.py | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/utils/test/test-aa.py b/utils/test/test-aa.py
-index b5221737..9d1d3ecc 100644
---- a/utils/test/test-aa.py
-+++ b/utils/test/test-aa.py
-@@ -157,15 +157,13 @@ class AaTest_get_interpreter_and_abstraction(AATest):
- tests = [
- ('#!/bin/bash', ('/bin/bash', 'abstractions/bash')),
- ('#!/bin/dash', ('/bin/dash', 'abstractions/bash')),
-- ('#!/bin/sh', ('/bin/sh', 'abstractions/bash')),
-- ('#! /bin/sh ', ('/bin/sh', 'abstractions/bash')),
-- ('#! /bin/sh -x ', ('/bin/sh', 'abstractions/bash')), # '-x' is not part of the interpreter path
-+ ('#!/bin/sh', ('/bin/sh', None)),
-+ ('#! /bin/sh ', ('/bin/sh', None)),
-+ ('#! /bin/sh -x ', ('/bin/sh', None)), # '-x' is not part of the interpreter path
- ('#!/usr/bin/perl', ('/usr/bin/perl', 'abstractions/perl')),
- ('#!/usr/bin/perl -w', ('/usr/bin/perl', 'abstractions/perl')), # '-w' is not part of the interpreter path
-- ('#!/usr/bin/python', ('/usr/bin/python', 'abstractions/python')),
-- ('#!/usr/bin/python2', ('/usr/bin/python2', 'abstractions/python')),
-- ('#!/usr/bin/python2.7', ('/usr/bin/python2.7', 'abstractions/python')),
- ('#!/usr/bin/python3', ('/usr/bin/python3', 'abstractions/python')),
-+ ('#!/usr/bin/python3.8', ('/usr/bin/python3.8', 'abstractions/python')),
- ('#!/usr/bin/python4', ('/usr/bin/python4', None)), # python abstraction is only applied to py2 and py3
- ('#!/usr/bin/ruby', ('/usr/bin/ruby', 'abstractions/ruby')),
- ('#!/usr/bin/ruby2.2', ('/usr/bin/ruby2.2', 'abstractions/ruby')),
---
-2.25.2
-
diff --git a/testing/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch b/testing/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
deleted file mode 100644
index 14dddeae1e1..00000000000
--- a/testing/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-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/testing/apparmor/0007-Remove-Locale-gettext-from-parser-tests.patch b/testing/apparmor/0007-Remove-Locale-gettext-from-parser-tests.patch
deleted file mode 100644
index bad8cbe195a..00000000000
--- a/testing/apparmor/0007-Remove-Locale-gettext-from-parser-tests.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 05dd326460042c0f82234b7299a0327529c98d4f Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Thu, 31 Jan 2019 13:36:34 +0000
-Subject: [PATCH 7/7] Remove Locale::gettext from parser tests
-
-The package for Alpine doesn't exists and it seems that the tests run ok
-without this
----
- parser/tst/gen-dbus.pl | 1 -
- parser/tst/gen-xtrans.pl | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/parser/tst/gen-dbus.pl b/parser/tst/gen-dbus.pl
-index 1fe58108..3fa5d0ce 100755
---- a/parser/tst/gen-dbus.pl
-+++ b/parser/tst/gen-dbus.pl
-@@ -17,7 +17,6 @@
- #
-
- use strict;
--use Locale::gettext;
- use POSIX;
-
- setlocale(LC_MESSAGES, "");
-diff --git a/parser/tst/gen-xtrans.pl b/parser/tst/gen-xtrans.pl
-index 8cf077f4..64219cef 100755
---- a/parser/tst/gen-xtrans.pl
-+++ b/parser/tst/gen-xtrans.pl
-@@ -1,7 +1,6 @@
- #!/usr/bin/perl
-
- use strict;
--use Locale::gettext;
- use POSIX;
-
- setlocale(LC_MESSAGES, "");
---
-2.20.1
-
diff --git a/testing/apparmor/0008-Fix-profile-loading-in-busybox.patch b/testing/apparmor/0008-Fix-profile-loading-in-busybox.patch
deleted file mode 100644
index 37d5f12a812..00000000000
--- a/testing/apparmor/0008-Fix-profile-loading-in-busybox.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 2a6a482eac7c6290d2e4349ff4bae1b9a749497f Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Sun, 22 Mar 2020 17:30:20 +0000
-Subject: [PATCH 08/12] Fix profile loading in busybox
-
-Just apply the patch present in
-https://gitlab.com/apparmor/apparmor/-/issues/80
----
- parser/rc.apparmor.functions | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/parser/rc.apparmor.functions b/parser/rc.apparmor.functions
-index 22e8367f..8c1c57c5 100644
---- a/parser/rc.apparmor.functions
-+++ b/parser/rc.apparmor.functions
-@@ -140,7 +140,7 @@ force_complain() {
- local profile=$1
-
- # if profile not in complain mode
-- if ! egrep -q "^/.*[ \t]+flags[ \t]*=[ \t]*\([ \t]*complain[ \t]*\)[ \t]+{" $profile ; then
-+ if ! egrep -q '^/.*[ \t]+flags[ \t]*=[ \t]*\([ \t]*complain[ \t]*\)[ \t]+\{' $profile ; then
- local link="${PROFILE_DIR}/force-complain/`basename ${profile}`"
- if [ -e "$link" ] ; then
- aa_log_warning_msg "found $link, forcing complain mode"
---
-2.25.2
-
diff --git a/testing/apparmor/0009-ensure-make-apparmor_parser-is-cached.patch b/testing/apparmor/0009-ensure-make-apparmor_parser-is-cached.patch
deleted file mode 100644
index cb6a92cf82d..00000000000
--- a/testing/apparmor/0009-ensure-make-apparmor_parser-is-cached.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 71bbc6a4ce79802ad037227382817c5998ffbb2e Mon Sep 17 00:00:00 2001
-From: Eric Chiang <ericchiang@google.com>
-Date: Thu, 17 Jan 2019 11:02:57 -0800
-Subject: [PATCH 09/12] *: ensure make apparmor_parser is cached
-
-This change updates parser/Makefile to respect target dependencies and
-not rebuild apparmor_parser if nothing's changed. The goal is to allow
-cross-compiled tests #17 to run on a target system without the tests
-attempting to rebuild the parser.
-
-Two changes were made:
-
-* Generate af_names.h in a script so the script timestamp is compared.
-* Use FORCE instead of PHONY for libapparmor_re/libapparmor_re.a
-
-Changes to list_af_names are intended to exactly replicate the old
-behavior.
-
-Signed-off-by: Eric Chiang <ericchiang@google.com>
----
- common/Make.rules | 21 ---------------------
- common/list_af_names.sh | 19 +++++++++++++++++++
- parser/Makefile | 13 +++++--------
- utils/vim/create-apparmor.vim.py | 2 +-
- 4 files changed, 25 insertions(+), 30 deletions(-)
- create mode 100755 common/list_af_names.sh
-
-diff --git a/common/Make.rules b/common/Make.rules
-index d2149fcd..357bdec8 100644
---- a/common/Make.rules
-+++ b/common/Make.rules
-@@ -87,27 +87,6 @@ CAPABILITIES=$(shell echo "\#include <linux/capability.h>" | cpp -dM | LC_ALL=C
- list_capabilities: /usr/include/linux/capability.h
- @echo "$(CAPABILITIES)"
-
--# =====================
--# generate list of network protocols based on
--# sys/socket.h for use in multiple locations in
--# the source tree
--# =====================
--
--# These are the families that it doesn't make sense for apparmor
--# to mediate. We use PF_ here since that is what is required in
--# bits/socket.h, but we will rewrite these as AF_.
--
--FILTER_FAMILIES=PF_UNIX
--
--__FILTER=$(shell echo $(strip $(FILTER_FAMILIES)) | sed -e 's/ /\\\|/g')
--
--# emits the AF names in a "AF_NAME NUMBER," pattern
--AF_NAMES=$(shell echo "\#include <sys/socket.h>" | cpp -dM | LC_ALL=C sed -n -e '/$(__FILTER)/d' -e 's/PF_LOCAL/PF_UNIX/' -e 's/^\#define[ \t]\+PF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\).*$$/AF_\1 \2,/p' | sort -n -k2)
--
--.PHONY: list_af_names
--list_af_names:
-- @echo "$(AF_NAMES)"
--
- # =====================
- # manpages
- # =====================
-diff --git a/common/list_af_names.sh b/common/list_af_names.sh
-new file mode 100755
-index 00000000..d7987537
---- /dev/null
-+++ b/common/list_af_names.sh
-@@ -0,0 +1,19 @@
-+#!/bin/bash -e
-+
-+# =====================
-+# generate list of network protocols based on
-+# sys/socket.h for use in multiple locations in
-+# the source tree
-+# =====================
-+
-+# It doesn't make sence for AppArmor to mediate PF_UNIX, filter it out. Search
-+# for "PF_" constants since that is what is required in bits/socket.h, but
-+# rewrite as "AF_".
-+
-+echo "#include <sys/socket.h>" | \
-+ cpp -dM | \
-+ LC_ALL=C sed -n \
-+ -e '/PF_UNIX/d' \
-+ -e 's/PF_LOCAL/PF_UNIX/' \
-+ -e 's/^#define[ \t]\+PF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\).*$/AF_\1 \2,/p' | \
-+ sort -n -k2
-diff --git a/parser/Makefile b/parser/Makefile
-index c1ca4b45..aa5ab730 100644
---- a/parser/Makefile
-+++ b/parser/Makefile
-@@ -281,10 +281,9 @@ parser_version.h: Makefile
- # as well as the filtering that occurs for network protocols that
- # apparmor should not mediate.
-
--.PHONY: af_names.h
--af_names.h:
-- echo "$(AF_NAMES)" | LC_ALL=C sed -n -e 's/[ \t]\?AF_MAX[ \t]\+[0-9]\+,//g' -e 's/[ \t]\+\?AF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\),/#ifndef AF_\1\n# define AF_\1 \2\n#endif\nAA_GEN_NET_ENT("\L\1", \UAF_\1)\n\n/pg' > $@
-- echo "$(AF_NAMES)" | LC_ALL=C sed -n -e 's/.*,[ \t]\+AF_MAX[ \t]\+\([0-9]\+\),\?.*/#define AA_AF_MAX \1\n/p' >> $@
-+af_names.h: ../common/list_af_names.sh
-+ ../common/list_af_names.sh | LC_ALL=C sed -n -e 's/[ \t]\?AF_MAX[ \t]\+[0-9]\+,//g' -e 's/[ \t]\+\?AF_\([A-Z0-9_]\+\)[ \t]\+\([0-9]\+\),/#ifndef AF_\1\n# define AF_\1 \2\n#endif\nAA_GEN_NET_ENT("\L\1", \UAF_\1)\n/pg' > $@
-+ ../common/list_af_names.sh | LC_ALL=C sed -n -e 's/AF_MAX[ \t]\+\([0-9]\+\),\?.*/\n#define AA_AF_MAX \1\n/p' >> $@
- # cat $@
-
- cap_names.h: /usr/include/linux/capability.h
-@@ -304,10 +303,7 @@ tests: apparmor_parser ${TESTS}
- sh -e -c 'for test in ${TESTS} ; do echo "*** running $${test}" && ./$${test}; done'
- $(Q)$(MAKE) -s -C tst tests
-
--# always need to rebuild.
--.SILENT: $(AAREOBJECT)
--.PHONY: $(AAREOBJECT)
--$(AAREOBJECT):
-+$(AAREOBJECT): FORCE
- $(MAKE) -C $(AAREDIR) CFLAGS="$(EXTRA_CXXFLAGS)"
-
- .PHONY: install-rhel4
-@@ -408,3 +404,4 @@ clean: pod_clean
- $(MAKE) -s -C po clean
- $(MAKE) -s -C tst clean
-
-+FORCE:
-diff --git a/utils/vim/create-apparmor.vim.py b/utils/vim/create-apparmor.vim.py
-index 10bd5b8d..fea134f6 100644
---- a/utils/vim/create-apparmor.vim.py
-+++ b/utils/vim/create-apparmor.vim.py
-@@ -57,7 +57,7 @@ for cap in capabilities:
- benign_caps.append(cap)
-
- # get network protos list
--(rc, output) = cmd(['make', '-s', '--no-print-directory', 'list_af_names'])
-+(rc, output) = cmd(['../../common/list_af_names.sh'])
- if rc != 0:
- sys.stderr.write("make list_af_names failed: " + output)
- exit(rc)
---
-2.25.2
-
diff --git a/testing/apparmor/0010-Revert-utils-test-network.py-fix-failing-testcase.patch b/testing/apparmor/0010-Revert-utils-test-network.py-fix-failing-testcase.patch
deleted file mode 100644
index b3c8a7215c1..00000000000
--- a/testing/apparmor/0010-Revert-utils-test-network.py-fix-failing-testcase.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 03baa934e415e4181bb43e466e09af2ec1f512f0 Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Mon, 23 Mar 2020 16:17:59 +0000
-Subject: [PATCH 10/12] Revert "utils/test-network.py: fix failing testcase"
-
-This reverts commit 0c65b9aeb925297b95e249caa57d33221295d5ea.
----
- utils/test/test-network.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/utils/test/test-network.py b/utils/test/test-network.py
-index 8605786d..73a6b9d1 100644
---- a/utils/test/test-network.py
-+++ b/utils/test/test-network.py
-@@ -31,7 +31,7 @@ exp = namedtuple('exp', ['audit', 'allow_keyword', 'deny', 'comment',
-
- class NetworkKeywordsTest(AATest):
- def test_network_keyword_list(self):
-- rc, output = cmd(['make', '-s', '--no-print-directory', 'list_af_names'])
-+ rc, output = cmd('../../common/list_af_names.sh')
- self.assertEqual(rc, 0)
-
- af_names = []
---
-2.25.2
-
diff --git a/testing/apparmor/0011-Generate-CAPABILITIES-in-a-script-due-to-make-4.3.patch b/testing/apparmor/0011-Generate-CAPABILITIES-in-a-script-due-to-make-4.3.patch
deleted file mode 100644
index 14cc0b272b8..00000000000
--- a/testing/apparmor/0011-Generate-CAPABILITIES-in-a-script-due-to-make-4.3.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From e23c66c45436833046a0f7bdd80ad41fc6ebd050 Mon Sep 17 00:00:00 2001
-From: allgdante <allan.garret@gmail.com>
-Date: Mon, 23 Mar 2020 15:09:15 +0000
-Subject: [PATCH 11/12] Generate CAPABILITIES in a script due to make 4.3
-
-This way we could generate the capabilities in a way that works with
-every version of make.
-Changes to list_capabilities are intended to exactly replicate the old
-behavior.
----
- common/Make.rules | 13 -------------
- common/list_capabilities.sh | 14 ++++++++++++++
- parser/Makefile | 2 +-
- utils/Makefile | 2 +-
- utils/vim/create-apparmor.vim.py | 2 +-
- 5 files changed, 17 insertions(+), 16 deletions(-)
- create mode 100755 common/list_capabilities.sh
-
-diff --git a/common/Make.rules b/common/Make.rules
-index 357bdec8..ecc6181a 100644
---- a/common/Make.rules
-+++ b/common/Make.rules
-@@ -74,19 +74,6 @@ endif
- pod_clean:
- -rm -f ${MANPAGES} *.[0-9].gz ${HTMLMANPAGES} pod2htm*.tmp
-
--# =====================
--# generate list of capabilities based on
--# /usr/include/linux/capabilities.h for use in multiple locations in
--# the source tree
--# =====================
--
--# emits defined capabilities in a simple list, e.g. "CAP_NAME CAP_NAME2"
--CAPABILITIES=$(shell echo "\#include <linux/capability.h>" | cpp -dM | LC_ALL=C sed -n -e '/CAP_EMPTY_SET/d' -e 's/^\#define[ \t]\+CAP_\([A-Z0-9_]\+\)[ \t]\+\([0-9xa-f]\+\)\(.*\)$$/CAP_\1/p' | LC_ALL=C sort)
--
--.PHONY: list_capabilities
--list_capabilities: /usr/include/linux/capability.h
-- @echo "$(CAPABILITIES)"
--
- # =====================
- # manpages
- # =====================
-diff --git a/common/list_capabilities.sh b/common/list_capabilities.sh
-new file mode 100755
-index 00000000..4e37cda7
---- /dev/null
-+++ b/common/list_capabilities.sh
-@@ -0,0 +1,14 @@
-+#!/bin/bash -e
-+
-+# =====================
-+# generate list of capabilities based on
-+# /usr/include/linux/capabilities.h for use in multiple locations in
-+# the source tree
-+# =====================
-+
-+echo "#include <linux/capability.h>" | \
-+ cpp -dM | \
-+ LC_ALL=C sed -n \
-+ -e '/CAP_EMPTY_SET/d' \
-+ -e 's/^\#define[ \t]\+CAP_\([A-Z0-9_]\+\)[ \t]\+\([0-9xa-f]\+\)\(.*\)$/CAP_\1/p' | \
-+ LC_ALL=C sort
-diff --git a/parser/Makefile b/parser/Makefile
-index aa5ab730..1df7c143 100644
---- a/parser/Makefile
-+++ b/parser/Makefile
-@@ -287,7 +287,7 @@ af_names.h: ../common/list_af_names.sh
- # cat $@
-
- cap_names.h: /usr/include/linux/capability.h
-- echo "$(CAPABILITIES)" | LC_ALL=C sed -n -e "s/[ \\t]\\?CAP_\\([A-Z0-9_]\\+\\)/\{\"\\L\\1\", \\UCAP_\\1\},\\n/pg" > $@
-+ ../common/list_capabilities.sh | LC_ALL=C sed -n -e "s/[ \\t]\\?CAP_\\([A-Z0-9_]\\+\\)/\{\"\\L\\1\", \\UCAP_\\1\},\\n/pg" > $@
-
- tst_lib: lib.c parser.h $(filter-out lib.o, ${TEST_OBJECTS})
- $(CXX) $(TEST_CFLAGS) -o $@ $< $(filter-out $(<:.c=.o), ${TEST_OBJECTS}) $(TEST_LDFLAGS) $(TEST_LDLIBS)
-diff --git a/utils/Makefile b/utils/Makefile
-index 01604796..16248083 100644
---- a/utils/Makefile
-+++ b/utils/Makefile
-@@ -77,7 +77,7 @@ clean: pod_clean
- .SILENT: check_severity_db
- check_severity_db: /usr/include/linux/capability.h severity.db
- # The sed statement is based on the one in the parser's makefile
-- RC=0 ; for cap in ${CAPABILITIES} ; do \
-+ RC=0 ; for cap in $(shell ../common/list_capabilities.sh) ; do \
- if ! grep -q -w $${cap} severity.db ; then \
- echo "Warning! capability $${cap} not found in severity.db" ; \
- RC=1 ; \
-diff --git a/utils/vim/create-apparmor.vim.py b/utils/vim/create-apparmor.vim.py
-index fea134f6..6a5f02a2 100644
---- a/utils/vim/create-apparmor.vim.py
-+++ b/utils/vim/create-apparmor.vim.py
-@@ -45,7 +45,7 @@ def cmd(command, input=None, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, s
- return [sp.returncode, out + outerr]
-
- # get capabilities list
--(rc, output) = cmd(['make', '-s', '--no-print-directory', 'list_capabilities'])
-+(rc, output) = cmd(['../../common/list_capabilities.sh'])
- if rc != 0:
- sys.stderr.write("make list_capabilities failed: " + output)
- exit(rc)
---
-2.25.2
-
diff --git a/testing/apparmor/APKBUILD b/testing/apparmor/APKBUILD
deleted file mode 100644
index 29cc9636e03..00000000000
--- a/testing/apparmor/APKBUILD
+++ /dev/null
@@ -1,234 +0,0 @@
-# Contributor: Allan Garret <allan.garret@gmail.com>
-# Maintainer: Allan Garret <allan.garret@gmail.com>
-pkgname=apparmor
-pkgver=2.13.4
-pkgrel=0
-pkgdesc="Linux application security framework - mandatory access control for programs"
-url="https://gitlab.com/apparmor/apparmor/wikis/home"
-arch="all"
-license="GPL-2.0-only"
-depends="bash"
-makedepends="sed python3 autoconf automake libtool bison flex perl-dev swig
- gettext-dev python3-dev linux-pam-dev linux-headers"
-checkdepends="dejagnu py3-pyflakes"
-
-subpackages="
- libapparmor:_libapparmor
- libapparmor-doc:_libapparmor_doc
- libapparmor-dev:_libapparmor_dev
- py3-$pkgname:_py3_apparmor
- perl-$pkgname:_perl_apparmor
- $pkgname-utils:_apparmor_utils
- $pkgname-utils-doc:_apparmor_utils_doc
- $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://gitlab.com/apparmor/apparmor/-/archive/v$pkgver/apparmor-v$pkgver.tar.gz
-
- apparmor.initd
-
- 0001-Fix-linking-against-gettext-on-musl-libc.patch
- 0002-utils-remove-vim-from-the-default-build.patch
- 0003-parser-remove-specific-tests-for-rttime.patch
- 0004-parser-remove-specific-tests-for-ofile.patch
- 0005-utils-adjust-tests-to-match-the-Alpine-layout.patch
- 0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
- 0007-Remove-Locale-gettext-from-parser-tests.patch
- 0008-Fix-profile-loading-in-busybox.patch
- 0009-ensure-make-apparmor_parser-is-cached.patch
- 0010-Revert-utils-test-network.py-fix-failing-testcase.patch
- 0011-Generate-CAPABILITIES-in-a-script-due-to-make-4.3.patch
- "
-
-builddir="$srcdir"/$pkgname-v$pkgver
-
-build() {
- export PYTHON_VERSION=3
- export PYTHON_VERSIONS=python3
- export PYTHON=/usr/bin/python3
-
- cd "$builddir"/libraries/libapparmor
- msg "Building: libapparmor"
- ./autogen.sh
- ./configure --prefix=/usr --with-python --with-perl
- make
-
- cd "$builddir"
- 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 parser install DESTDIR="$pkgdir"
- mv "$pkgdir"/lib "$pkgdir"/usr/lib
- mkdir -p "$pkgdir"/usr/libexec/apparmor
- mv "$pkgdir"/usr/lib/apparmor/rc.apparmor.functions \
- "$pkgdir"/usr/libexec/apparmor/
- rmdir "$pkgdir"/usr/lib/apparmor
- install -Dm755 "$srcdir"/apparmor.initd \
- "$pkgdir"/etc/init.d/apparmor
-}
-
-_libapparmor() {
- pkgdesc="AppArmor library"
- depends="bash sed"
-
- cd "$builddir"
- make -C libraries/libapparmor install DESTDIR="$subpkgdir"
-
- # Move development files
- mkdir -p "$subpkgdir"-dev/usr
- mv "$subpkgdir"/usr/include "$subpkgdir"-dev/usr/
- mkdir -p "$subpkgdir"-dev/usr/lib
- mv "$subpkgdir"/usr/lib/libapparmor.a "$subpkgdir"-dev/usr/lib/
- mv "$subpkgdir"/usr/lib/pkgconfig "$subpkgdir"-dev/usr/lib/
-
- # Move python3 files
- mkdir -p "$subpkgdir"/../py3-$pkgname/usr/lib
- mv "$subpkgdir"/usr/lib/python3.* "$subpkgdir"/../py3-$pkgname/usr/lib
-
- # Move perl files
- mkdir -p "$subpkgdir"/../perl-$pkgname/usr/lib
- mv "$subpkgdir"/usr/lib/perl5 "$subpkgdir"/../perl-$pkgname/usr/lib
-
- # Move doc files
- mkdir -p "$subpkgdir-doc"/usr/share
- mv "$subpkgdir"/usr/share/man "$subpkgdir-doc"/usr/share/
-}
-
-_libapparmor_doc() {
- pkgdesc="AppArmor Library (doc files)"
-
- cd "$builddir"
- for i in 2 3; do
- find "$subpkgdir"/usr/share/man/man"$i" -type f -exec gzip -9v {} +
- done
-}
-
-_libapparmor_dev() {
- pkgdesc="AppArmor Library (development files)"
-}
-
-_py3_apparmor() {
- pkgdesc="Python3 module for apparmor"
- depends="libapparmor python3"
-}
-
-_perl_apparmor() {
- pkgdesc="Perl module for apparmor"
- depends="libapparmor perl"
-}
-
-_apparmor_utils() {
- pkgdesc="AppArmor userspace utilities"
- depends="py3-apparmor libapparmor perl python3 bash"
-
- cd "$builddir"
- make -C utils install DESTDIR="$subpkgdir" BINDIR="$subpkgdir"/usr/bin
-
- cd "$builddir"
- make -C binutils install DESTDIR="$subpkgdir" BINDIR="$subpkgdir"/usr/bin
-
- mkdir -p "$subpkgdir"-doc/usr/share
- mv "$subpkgdir"/usr/share/man "$subpkgdir"-doc/usr/share/
-
- mkdir -p "$subpkgdir"-lang/usr/share
- mv "$subpkgdir"/usr/share/locale "$subpkgdir"-lang/usr/share/
-}
-
-_apparmor_utils_doc() {
- pkgdesc="AppArmor userspace utilites (doc files)"
-
- cd "$builddir"
- for i in 1 5 8; do
- find "$subpkgdir"/usr/share/man/man"$i" -type f -exec gzip -9v {} +
- done
- cd "$subpkgdir"/usr/share/man/man8
- rm apparmor_status.8
- ln -s aa-status.8.gz apparmor_status.8.gz
-}
-
-_apparmor_utils_lang() {
- pkgdesc="Languages for package $subpkgname"
-}
-
-_apparmor_profiles() {
- pkgdesc="AppArmor sample pre-made profiles"
- depends="apparmor"
-
- cd "$builddir"
- make -C profiles install DESTDIR="$subpkgdir"
-}
-
-_apparmor_pam() {
- pkgdesc="AppArmor PAM library"
- depends="libapparmor linux-pam"
-
- cd "$builddir"
- make -C changehat/pam_apparmor install DESTDIR="$subpkgdir"/usr
-}
-
-_apparmor_pam_doc() {
- pkgdesc="AppArmor PAM library (doc files)"
-
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/apparmor
- install -Dm644 changehat/pam_apparmor/README \
- "$subpkgdir"/usr/share/doc/apparmor/README.pam_apparmor
-}
-
-_apparmor_vim() {
- pkgdesc="AppArmor VIM support"
- depends="vim"
-
- cd "$builddir"/utils/vim
- install -Dm644 apparmor.vim \
- "$subpkgdir"/usr/share/vim/vimfiles/syntax/apparmor.vim
-}
-
-
-
-sha512sums="a3800abc736da725fba3f831d4f26f2ce00179c1c8ad46fc5f27a068dc99c610031979c401cb9f86921bbea9dcb5c33dd2dac0536627040e0068c906c3cda942 apparmor-v2.13.4.tar.gz
-1a57cc577ba3aedfbe10ef6148c1e8f5d0bbf65c99e60eec80c52409c9dab59ae002024500c6e4fd0e01e8c7aeb0c85e3e6b41cacee08c17fdd869d31bca614e apparmor.initd
-e94f44427ed3c6f64462170939ffc92ce9ac1a58c61c7c7c3483fe16fe8e1c419daade9d56cdd342132e4d823dcac1963a86ad889f10bf71fd52b7f54c4694ed 0001-Fix-linking-against-gettext-on-musl-libc.patch
-20817633590c40eb5f6132c11396cf0bbd532b6e436aa90b6ccc61d7c914794d868ec981b91406f6c11f550102aa25a32982610445cc8e5e703ee90697233263 0002-utils-remove-vim-from-the-default-build.patch
-568e10bda27745ac6e1b9495bb6863e93466ee1c387912393c2c7396bcedd7400b13ee233dd953f82460328e3aae45dd2f7aba92962edef31330d6b4dbc9951b 0003-parser-remove-specific-tests-for-rttime.patch
-3a84fb3b2b19ccf52e179190e98ec0da2469727eaaa73d0094b0e9c85b80738c9cb9da9242d17a472a649e6042933bedb5f78c3f574d555369a4ece38a1d8a8a 0004-parser-remove-specific-tests-for-ofile.patch
-ebe2494e0023d45a41623038f8126fd5366606507d7c1caadf776253a5a64e2979ed157b00d2240556945c414fd3a6dff3d5ce971a5c975033dfb53db60abecc 0005-utils-adjust-tests-to-match-the-Alpine-layout.patch
-38ebb30a0185f8eabd9103925959da365f64ef485f66ffb10180ac596fc172f9c98df39baec0b035138e9ab32056148e69a066faba9faebf9e92bf7a09c150c0 0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
-093c2f216776c5cc67294a134af6ef788dd5a82477592093abbdd244d65591006890a7c911d4f72d7c0ceac5d3ee33927b055a6d3731284701057b35372e7265 0007-Remove-Locale-gettext-from-parser-tests.patch
-017de8d6632204b0bdf025d25ef94be639adf742281693dc028eca428171409dcf86c7547f61ad6c4c7f4175480940eaca3e3ad888e5a9649946f56eafc50e40 0008-Fix-profile-loading-in-busybox.patch
-4e8dc9e0ca8c68b13a5a6c8c0eb1c8fb11fc1d59741753a0fd55a80f1b7f8e6d73c7c13a53a855f374d7555389ca7853adf2e3ee273b084967141a4b30d58fab 0009-ensure-make-apparmor_parser-is-cached.patch
-3ffb2927fbdab331bc70391eaae8ed56026245ec7e91a2d88a5a480a344b22b17ce7f45f43e1ff6be531d2c87f0c4b19d73014d7bcfe4d86ff888e2a2fb9fd83 0010-Revert-utils-test-network.py-fix-failing-testcase.patch
-938ebb8c88e8d567f434cd849db283fa8aa6184249db7bb4dee0be77d0ddd2362ac1f6d457f822073e0e135520c330f251de36b0d98539cea5ad8816d5c1cb12 0011-Generate-CAPABILITIES-in-a-script-due-to-make-4.3.patch"
diff --git a/testing/apparmor/apparmor.initd b/testing/apparmor/apparmor.initd
deleted file mode 100644
index 15058f28953..00000000000
--- a/testing/apparmor/apparmor.initd
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/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/testing/apprise/APKBUILD b/testing/apprise/APKBUILD
new file mode 100644
index 00000000000..10968141d35
--- /dev/null
+++ b/testing/apprise/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=apprise
+pkgver=1.7.6
+pkgrel=0
+pkgdesc="Push Notifications that work with just about every platform"
+url="https://github.com/caronc/apprise"
+arch="noarch"
+license="BSD-2-Clause"
+depends="py3-certifi py3-requests py3-requests-oauthlib py3-click py3-markdown py3-yaml"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-mock"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://codeload.github.com/caronc/apprise/tar.gz/refs/tags/v$pkgver"
+options="net"
+
+case "$CARCH" in
+s390x|x86)
+ options="$options !check" # some tests fail on package builders
+ ;;
+esac
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ sh bin/test.sh
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ install -Dm644 packaging/man/apprise.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+be1469b26c72255b95a055073e8ba2e147fb66a79bbdc82d38dbd765d059d7f9d4b6142728a2e583d4ad2370d489303c342500f472946fabd41f01463d2a1fde apprise-1.7.6.tar.gz
+"
diff --git a/testing/appstream-generator/APKBUILD b/testing/appstream-generator/APKBUILD
deleted file mode 100644
index 06d601cedba..00000000000
--- a/testing/appstream-generator/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=appstream-generator
-pkgver=0.8.2
-pkgrel=0
-pkgdesc="A fast AppStream metadata generator"
-url="https://github.com/ximion/appstream-generator"
-arch="x86 x86_64 aarch64" # ldc
-license="LGPL-3.0-or-later"
-makedepends="meson ldc ldc-runtime appstream-dev libarchive-dev gir-to-d
- cairo-dev gdk-pixbuf-dev librsvg-dev freetype-dev fontconfig-dev
- pango-dev yarn lmdb-dev glibd-dev libsoup-dev gobject-introspection-dev
- coreutils" # needs cp with preserve-ownership
-subpackages="$pkgname-doc"
-source="https://github.com/ximion/appstream-generator/archive/v$pkgver/appstream-generator-$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="fb5264817f54da80e4baa51624e1c9fa9cb0c85a6115211adb8fc2918755477d12e519185173c532404f200eabacf77d61d05266980b6fca11378ca7153d2b4e appstream-generator-0.8.2.tar.gz"
diff --git a/testing/apt-dater/APKBUILD b/testing/apt-dater/APKBUILD
index f21315c001b..fc754dd385d 100644
--- a/testing/apt-dater/APKBUILD
+++ b/testing/apt-dater/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
pkgname=apt-dater
pkgver=1.0.4
-pkgrel=1
+pkgrel=3
pkgdesc="terminal-based remote package update manager"
url="https://github.com/DE-IBH/apt-dater"
arch="all"
license="GPL-2.0-or-later"
-depends="lockfile-progs screen openssh-client util-linux"
+depends="lockfile-progs screen openssh-client util-linux-misc"
makedepends="automake popt-dev glib-dev ncurses-dev tcl-dev libconfig-dev libxml2-dev
xxd"
subpackages="$pkgname-doc $pkgname-lang"
diff --git a/testing/apt-mirror/APKBUILD b/testing/apt-mirror/APKBUILD
new file mode 100644
index 00000000000..8ca67c7323a
--- /dev/null
+++ b/testing/apt-mirror/APKBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Hugo Rodrigues <hugorodrigues@hugorodrigues.xyz>
+pkgname=apt-mirror
+pkgver=0.5.4
+pkgrel=0
+pkgdesc="A small tool that provides ability to mirror APT repositories"
+url="https://apt-mirror.github.io/"
+arch="noarch"
+license="GPL-2.0-only"
+depends="perl wget"
+# NB: Upstream doesn't provide integration tests
+options="!check"
+subpackages="
+ $pkgname-doc
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/apt-mirror/apt-mirror/archive/refs/tags/$pkgver.tar.gz"
+
+package() {
+ DESTDIR="$pkgdir" PREFIX="/usr" make install
+}
+
+sha512sums="
+4fad124d1a7db55e77cf1acac138d68e82dfc70621014bc67a8003bc33988c668d77be18f7497c4c4faf10c99599f14612fb5535db43147a3f98ce9a660557be apt-mirror-0.5.4.tar.gz
+"
diff --git a/testing/aptdec/APKBUILD b/testing/aptdec/APKBUILD
new file mode 100644
index 00000000000..e1b71e10f93
--- /dev/null
+++ b/testing/aptdec/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=aptdec
+pkgver=1.8.0
+pkgrel=0
+pkgdesc="NOAA APT satellite imagery decoder library"
+_argparse=c612dc03958cdbd538ca306d61853b643a435933
+url="https://github.com/Xerbo/aptdec"
+license="GPL-2.0-or-later"
+arch="all"
+makedepends="
+ cmake
+ libpng-dev
+ libsndfile-dev
+ samurai
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Xerbo/aptdec/archive/refs/tags/v$pkgver.tar.gz
+ argparse-$_argparse.tar.gz::https://github.com/cofyc/argparse/archive/$_argparse.tar.gz
+ soname-dynlink.patch
+ "
+options="!check" # does not have any tests
+
+prepare() {
+ default_prepare
+
+ rmdir src/argparse
+ ln -sfv "$srcdir"/argparse-$_argparse \
+ "$builddir"/src/argparse
+}
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DVERSION="$pkgver"
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+3d10aa33bc443ba0ce00be7d00a5c95de54f98d13818a84535971a35575e1012a9c579cf154e17ffb3fe3d03fa964d11f7589082c9b4cab53c5b4ff1efc84c96 aptdec-1.8.0.tar.gz
+77370375e7594a640d410f051ed6230b2f81e47dea88498cefdd9285e28b620c4e096fab24bf4067b755343be3b7d0f71bc361e8ad00ac047c1b9d53890647d0 argparse-c612dc03958cdbd538ca306d61853b643a435933.tar.gz
+264070fa0759cd070753f22702a3466cf72f4d1fda85a15fa905774654c456a04e9e75eedd7b4ee5add3124d65230f0fc86f07880e65770a1eef3341068a3a66 soname-dynlink.patch
+"
diff --git a/testing/aptdec/soname-dynlink.patch b/testing/aptdec/soname-dynlink.patch
new file mode 100644
index 00000000000..1d30d2ee7a2
--- /dev/null
+++ b/testing/aptdec/soname-dynlink.patch
@@ -0,0 +1,37 @@
+link the tool to the shared lib, not the static one
+set soname
+--
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c0b13fd..aade67e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -16,11 +16,11 @@ set(EXE_C_SOURCE_FILES src/main.c src/pngio.c src/argparse/argparse.c src/util.c
+ set(LIB_C_HEADER_FILES src/apt.h)
+
+ # Link with static library for aptdec executable, so we don't need to set the path
+-add_library(aptstatic STATIC ${LIB_C_SOURCE_FILES})
+
+ # Create shared library for 3rd party apps
+ add_library(apt SHARED ${LIB_C_SOURCE_FILES})
+ set_target_properties(apt PROPERTIES PUBLIC_HEADER ${LIB_C_HEADER_FILES})
++set_target_properties(apt PROPERTIES VERSION "${VERSION}" SOVERSION "${VERSION}")
+
+ add_compile_definitions(PALETTE_DIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${CMAKE_PROJECT_NAME}/palettes")
+
+@@ -30,7 +30,7 @@ if (PNG_FOUND AND LIBSNDFILE_FOUND)
+ include_directories(${LIBSNDFILE_INCLUDE_DIR})
+ target_link_libraries(aptdec PRIVATE PNG::PNG)
+ target_link_libraries(aptdec PRIVATE ${LIBSNDFILE_LIBRARY})
+- target_link_libraries(aptdec PRIVATE aptstatic)
++ target_link_libraries(aptdec PRIVATE apt)
+ if (MSVC)
+ target_compile_options(aptdec PRIVATE /D_CRT_SECURE_NO_WARNINGS=1 /DAPT_API_STATIC)
+ else()
+@@ -54,7 +54,6 @@ if (MSVC)
+ else()
+ # Math
+ target_link_libraries(apt PRIVATE m)
+- target_link_libraries(aptstatic PRIVATE m)
+
+ if(CMAKE_BUILD_TYPE MATCHES "Release")
+ target_compile_options(apt PRIVATE -Wall -Wextra -pedantic -Wno-missing-field-initializers)
diff --git a/testing/apulse/APKBUILD b/testing/apulse/APKBUILD
new file mode 100644
index 00000000000..7a5fe26915f
--- /dev/null
+++ b/testing/apulse/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=apulse
+pkgver=0.1.13
+pkgrel=1
+pkgdesc="PulseAudio emulation for ALSA"
+url="https://github.com/i-rinat/apulse"
+arch="all"
+license="MIT"
+makedepends="cmake glib-dev alsa-lib-dev"
+options="!check" # no tests
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/i-rinat/apulse/archive/v$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="366385ae2304f7ff697ba70951d0753a5b1630310922e3763fd0813a73e0b4088b715135295aa2fa9111b8edcf91d82849dc31346b292b2e9db598bcdd47b007 apulse-0.1.13.tar.gz"
diff --git a/testing/aqemu/APKBUILD b/testing/aqemu/APKBUILD
index beacd96b7cb..31819140132 100644
--- a/testing/aqemu/APKBUILD
+++ b/testing/aqemu/APKBUILD
@@ -2,33 +2,41 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=aqemu
pkgver=0.9.4
-pkgrel=0
+pkgrel=3
pkgdesc="GUI for virtual machines using QEMU as the backend"
url="https://sourceforge.net/projects/aqemu/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-only"
depends="qemu"
options="!check" #no check/test provided
-makedepends="cmake libvncserver-dev bzip2 qt5-qtbase-dev glib-dev"
+makedepends="
+ cmake
+ glib-dev
+ libvncserver-dev
+ qt5-qtbase-dev
+ samurai
+ "
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/TBK/aqemu/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- mkdir -p build
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/TBK/aqemu/archive/v$pkgver.tar.gz
+ appdata.patch
+ fix-includes.patch
+ fix-qt-segfault.patch
+ "
build() {
- cd build
- cmake \
- -DCMAKE_INSTALL_PREFIX="/usr" \
- -DMAN_PAGE_COMPRESSOR=gzip ..
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
}
package() {
- cd build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="e10e2c558572e6194abadeb46034a59d1b5837efe77012c2ef2d4c5ae610e7a7b09e2315e6d5fd8a12fd7f9db34068a15926b0dbe8f91db6a0d4f48eea722a9d aqemu-0.9.4.tar.gz"
+sha512sums="
+e10e2c558572e6194abadeb46034a59d1b5837efe77012c2ef2d4c5ae610e7a7b09e2315e6d5fd8a12fd7f9db34068a15926b0dbe8f91db6a0d4f48eea722a9d aqemu-0.9.4.tar.gz
+2a711dc5935e2d5d5fb825b2209ce8f206bc178bc4af3b21e7be8220963fd2c68a529c94bea86333331dfd5557104101a17fd68f701b8288926878449dafaf7b appdata.patch
+3220e25280a5728f299f30147c0a78537a672541a0c561aedad10af38650ef0a9145d7898060230147878fa497320ab789310b055c018a59f6474f588c4a042b fix-includes.patch
+61d7982877392a9224add9448466273f6e485bc6b9dc85339159f27647312bb6ef6f4467d74dd6aa6b4e77aaea4ab03d4e8a3b4d4363bdb119334a3aeeb255c9 fix-qt-segfault.patch
+"
diff --git a/testing/aqemu/appdata.patch b/testing/aqemu/appdata.patch
new file mode 100644
index 00000000000..379e305283f
--- /dev/null
+++ b/testing/aqemu/appdata.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 241155d..09559b7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -274,7 +274,7 @@ FILE( GLOB app_menu "${CMAKE_CURRENT_SOURCE_DIR}/resources/menu_data/aqemu.deskt
+ INSTALL( FILES ${app_menu} DESTINATION share/applications )
+
+ FILE( GLOB app_menu "${CMAKE_CURRENT_SOURCE_DIR}/resources/menu_data/aqemu.appdata.xml" )
+-INSTALL( FILES ${app_menu} DESTINATION share/appdata )
++INSTALL( FILES ${app_menu} DESTINATION share/metainfo )
+
+ # Create docs .bz2 files
+ MACRO( create_docs _sources )
diff --git a/testing/aqemu/fix-includes.patch b/testing/aqemu/fix-includes.patch
new file mode 100644
index 00000000000..7e159f11903
--- /dev/null
+++ b/testing/aqemu/fix-includes.patch
@@ -0,0 +1,10 @@
+--- aqemu-0.9.4.orig/src/docopt/docopt_value.h
++++ aqemu-0.9.4/src/docopt/docopt_value.h
+@@ -13,6 +13,7 @@
+ #include <iosfwd>
+ #include <string>
+ #include <vector>
++#include <stdexcept>
+
+ namespace docopt {
+
diff --git a/testing/aqemu/fix-qt-segfault.patch b/testing/aqemu/fix-qt-segfault.patch
new file mode 100644
index 00000000000..1c5176df945
--- /dev/null
+++ b/testing/aqemu/fix-qt-segfault.patch
@@ -0,0 +1,121 @@
+Patch-Source: https://github.com/tobimensch/aqemu/pull/116
+--
+From dc19121a923c71eed248cd6310b9b06ec0af6abe Mon Sep 17 00:00:00 2001
+From: Moskaliou Nikita <44800696+nikitamos@users.noreply.github.com>
+Date: Sun, 5 Dec 2021 19:36:44 +0300
+Subject: [PATCH] Change widgets names
+
+Several widgets in the src/Main_Window.ui file had the same name ("widget"), for several users AQEMU crashed with SEGFAULT. So, the names were changed and now everything works fine
+---
+ src/Main_Window.ui | 28 +++++-----------------------
+ 1 file changed, 5 insertions(+), 23 deletions(-)
+
+diff --git a/src/Main_Window.ui b/src/Main_Window.ui
+index 8fdd51d..52b7c71 100644
+--- a/src/Main_Window.ui
++++ b/src/Main_Window.ui
+@@ -226,7 +226,7 @@
+ </widget>
+ </item>
+ <item>
+- <widget class="QWidget" name="widget" native="true">
++ <widget class="QWidget" name="general_Machine_Sets" native="true">
+ <layout class="QGridLayout" name="gridLayout_12">
+ <property name="leftMargin">
+ <number>24</number>
+@@ -275,9 +275,6 @@
+ <property name="maxCount">
+ <number>64</number>
+ </property>
+- <property name="sizeAdjustPolicy">
+- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
+- </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+@@ -294,9 +291,6 @@
+ <property name="maxCount">
+ <number>16</number>
+ </property>
+- <property name="sizeAdjustPolicy">
+- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
+- </property>
+ <item>
+ <property name="text">
+ <string>1</string>
+@@ -395,9 +389,6 @@
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+- <property name="sizeAdjustPolicy">
+- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
+- </property>
+ </widget>
+ </item>
+ <item row="2" column="2">
+@@ -526,9 +517,6 @@
+ <property name="maxCount">
+ <number>8</number>
+ </property>
+- <property name="sizeAdjustPolicy">
+- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
+- </property>
+ <item>
+ <property name="text">
+ <string>Floppy</string>
+@@ -586,9 +574,6 @@
+ <property name="maxCount">
+ <number>8</number>
+ </property>
+- <property name="sizeAdjustPolicy">
+- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
+- </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+@@ -618,9 +603,6 @@
+ <property name="maxCount">
+ <number>128</number>
+ </property>
+- <property name="sizeAdjustPolicy">
+- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
+- </property>
+ <item>
+ <property name="text">
+ <string>en-us (default)</string>
+@@ -1333,7 +1315,7 @@
+ </widget>
+ </item>
+ </layout>
+- <zorder>widget</zorder>
++ <zorder>general_Machine_Sets</zorder>
+ <zorder>GB_Options</zorder>
+ <zorder>GB_Audio</zorder>
+ <zorder>GB_Memory</zorder>
+@@ -2457,7 +2439,7 @@
+ </layout>
+ </item>
+ <item row="1" column="0" colspan="2">
+- <widget class="QWidget" name="widget" native="true">
++ <widget class="QWidget" name="protocol_Sets" native="true">
+ <layout class="QHBoxLayout" name="Widget_Redirection_Protocol">
+ <property name="spacing">
+ <number>6</number>
+@@ -2515,7 +2497,7 @@
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2">
+- <widget class="QWidget" name="widget" native="true">
++ <widget class="QWidget" name="ip_Sets" native="true">
+ <layout class="QHBoxLayout" name="Widget_Redirection_Net">
+ <property name="spacing">
+ <number>6</number>
+@@ -3018,7 +3000,7 @@
+ <x>0</x>
+ <y>0</y>
+ <width>982</width>
+- <height>24</height>
++ <height>22</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuVM">
diff --git a/testing/aravis/APKBUILD b/testing/aravis/APKBUILD
new file mode 100644
index 00000000000..dde69c3399e
--- /dev/null
+++ b/testing/aravis/APKBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Karel Gardas <karel@functional.vision>
+pkgname=aravis
+pkgver=0.8.31
+pkgrel=0
+pkgdesc="Aravis is a glib/gobject based library for video acquisition using Genicam cameras."
+url="https://github.com/AravisProject/aravis"
+# arm: sigbus
+arch="x86 x86_64 aarch64 ppc64le"
+license="LGPL-2.0-or-later"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ gst-plugins-base-dev
+ gstreamer-dev
+ gtk+3.0-dev
+ libusb-dev
+ libxml2-dev
+ meson
+ "
+subpackages="$pkgname-dev $pkgname-libs $pkgname-viewer $pkgname-viewer-lang"
+source="$pkgname-$pkgver.tar.xz::https://github.com/AravisProject/aravis/releases/download/$pkgver/aravis-$pkgver.tar.xz
+ aravis-0.8.22.patch
+ "
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dusb=enabled \
+ -Dviewer=enabled \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+viewer() {
+ pkgdesc="$pkgdesc (camera viewer)"
+ amove usr/bin/arv-viewer* \
+ usr/lib/gstreamer-* \
+ usr/share/applications \
+ usr/share/icons \
+ usr/share/metainfo
+}
+
+viewer_lang() {
+ default_lang
+ install_if="$subpkgname=$pkgver-r$pkgrel lang"
+}
+
+sha512sums="
+11ff1afbf5728af945536134676b01b854dc0bda6cafd659e51334e816777905b6c3860de1f2b4030ca0c0ac6ca74f04a8ac6373bbb122553329a7781bc86908 aravis-0.8.31.tar.xz
+b69356e9867b431d5c1a194c78dc188e5981dcb84683ebfc608cac0fbc5c6e9f773b5d14c69b81731925190a798c53f9eb1160b947711419aea8b22c4f1cafb0 aravis-0.8.22.patch
+"
diff --git a/testing/aravis/aravis-0.8.22.patch b/testing/aravis/aravis-0.8.22.patch
new file mode 100644
index 00000000000..c4650d29246
--- /dev/null
+++ b/testing/aravis/aravis-0.8.22.patch
@@ -0,0 +1,40 @@
+--- aravis-0.8.22-orig/src/arvuvdevice.c
++++ aravis-0.8.22/src/arvuvdevice.c
+@@ -37,6 +37,7 @@
+ #include <arvstr.h>
+ #include <arvzip.h>
+ #include <arvmisc.h>
++#include <stdio.h>
+
+ enum
+ {
+@@ -740,6 +741,13 @@
+ index = get_guid_index(devices[i]);
+ if (index > 0)
+ libusb_get_string_descriptor_ascii (usb_device, index, guid, 256);
++
++ /*
++ * When guid_index is wrongly equal to the product index, append the serial number
++ * Matching code in arvuvinterface.c
++ */
++ if (index == desc.iProduct)
++ snprintf((char *)guid, 256, "%s-%s", product, serial_number);
+
+ if ((priv->vendor != NULL &&
+ g_strcmp0 ((char * ) manufacturer, priv->vendor) == 0 &&
+--- aravis-0.8.22-orig/src/arvuvinterface.c
++++ aravis-0.8.22/src/arvuvinterface.c
+@@ -240,6 +240,13 @@
+ if (index > 0)
+ libusb_get_string_descriptor_ascii (device_handle, index, guid, 256);
+
++ /*
++ * When guid_index is wrongly equal to the product index, append the serial number
++ * Matching code in arvuvdevice.c
++ */
++ if (index == desc.iProduct)
++ snprintf((char *)guid, 256, "%s-%s", product, serial_nbr);
++
+ device_infos = arv_uv_interface_device_infos_new ((char *) manufacturer, (char *) product,
+ (char *) serial_nbr, (char *) guid);
+ g_hash_table_replace (uv_interface->priv->devices, device_infos->id,
diff --git a/testing/arc-icon-theme/APKBUILD b/testing/arc-icon-theme/APKBUILD
new file mode 100644
index 00000000000..880a3475c0a
--- /dev/null
+++ b/testing/arc-icon-theme/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=arc-icon-theme
+pkgver=20161122
+pkgrel=0
+pkgdesc="Arc Icon Theme"
+options="!check" #there are no checks
+url="https://github.com/horst3180/arc-icon-theme"
+arch="noarch"
+makedepends="autoconf automake"
+license="GPL-3.0-or-later"
+depends="moka-icon-theme"
+source="$pkgname-$pkgver.tar.gz::https://github.com/horst3180/arc-icon-theme/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="5d0f1417358eb81994868949acefe146537d8f3cc2fd7f529f9e6ba9c264845e50962f94427bac1262a76d3ca98d05795819d7c4a6ecd3139b0b57a6e9fdfad1 arc-icon-theme-20161122.tar.gz"
diff --git a/testing/arc-theme/APKBUILD b/testing/arc-theme/APKBUILD
index 59c05d8fbc3..c2366c57130 100644
--- a/testing/arc-theme/APKBUILD
+++ b/testing/arc-theme/APKBUILD
@@ -1,39 +1,282 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
# Maintainer: Sascha Paunovic <azarus@posteo.net>
pkgname=arc-theme
-pkgver=20200513
+pkgver=20221218
pkgrel=0
-pkgdesc="A flat theme with transparent elements"
-url="https://github.com/jnsh/arc-theme"
-arch="noarch !mips !mips64" # requires too much RAM on mips
-license="GPL-3.0"
-depends="gtk-murrine-engine"
-makedepends="automake autoconf libtool gtk+3.0-dev inkscape optipng sassc"
-source="arc-theme-$pkgver.tar.gz::https://github.com/jnsh/arc-theme/archive/$pkgver.tar.gz"
+pkgdesc="Flat theme with transparent elements"
options="!check" # no test suite
-builddir="$srcdir/$pkgname-$pkgver"
+url="https://github.com/jnsh/arc-theme"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="glib-dev sassc meson"
+subpackages="
+ arc:arc:noarch
+ arc-cinnamon:arc_cinnamon
+ arc-gnome:arc_gnome
+ arc-gtk2:arc_gtk2
+ arc-gtk3:arc_gtk3
+ arc-gtk4:arc_gtk4
+ arc-metacity:arc_metacity
+ arc-xfwm:arc_xfwm
+ arc-lighter-gtk2:lighter_gtk2
+ arc-lighter-gtk3:lighter_gtk3
+ arc-lighter-gtk4:lighter_gtk4
+ arc-lighter-metacity:lighter_metacity
+ arc-lighter-xfwm:lighter_xfwm
+ arc-lighter:lighter
+ arc-dark-cinnamon:dark_cinnamon
+ arc-dark-gnome:dark_gnome
+ arc-dark-gtk2:dark_gtk2
+ arc-dark-gtk3:dark_gtk3
+ arc-dark-gtk4:dark_gtk4
+ arc-dark-metacity:dark_metacity
+ arc-dark-xfwm:dark_xfwm
+ arc-dark:dark
+ arc-darker-gtk2:darker_gtk2
+ arc-darker-gtk3:darker_gtk3
+ arc-darker-gtk4:darker_gtk4
+ arc-darker-metacity:darker_metacity
+ arc-darker-xfwm:darker_xfwm
+ arc-darker:darker
+ "
+source="https://github.com/jnsh/arc-theme/releases/download/$pkgver/arc-theme-$pkgver.tar.xz"
build() {
- cd "$builddir"
- autoreconf -vif
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-unity \
- --disable-cinnamon \
- --disable-gnome-shell \
- --disable-metacity \
- make
+ abuild-meson -Dcinnamon_version=5.6 \
+ -Dgnome_shell_version=43 \
+ -Dthemes=cinnamon,gnome-shell,gtk2,gtk3,gtk4,metacity,xfwm \
+ . build
+ meson compile -C build
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install -C build
+}
+
+arc() {
+ pkgdesc="Arc GTK Theme"
+ depends=""
+ amove usr/share/themes/Arc/index.theme
+}
+
+arc_cinnamon() {
+ pkgdesc="Cinnamon assets for Arc"
+ depends=""
+ install_if="arc=$pkgver-r$pkgrel cinnamon-desktop"
+ amove usr/share/themes/Arc/cinnamon
+}
+
+arc_gtk4() {
+ pkgdesc="GTK+4.0 assets for Arc"
+ depends=""
+ install_if="arc=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/share/themes/Arc/gtk-4.0
+}
+
+arc_gtk3() {
+ pkgdesc="GTK+3.0 assets for Arc"
+ depends=""
+ install_if="arc=$pkgver-r$pkgrel gtk+3.0"
+
+ amove usr/share/themes/Arc/gtk-3.0
+}
+
+arc_gtk2() {
+ pkgdesc="GTK+2.0 assets for Arc"
+ depends="gtk-murrine-engine"
+ install_if="arc=$pkgver-r$pkgrel gtk+2.0"
+
+ amove usr/share/themes/Arc/gtk-2.0
+}
+
+arc_gnome() {
+ pkgdesc="GNOME Shell assets for Arc"
+ depends=""
+ install_if="arc=$pkgver-r$pkgrel gnome-shell"
+
+ amove usr/share/themes/Arc/gnome-shell
+}
+
+arc_xfwm() {
+ pkgdesc="xfwm assets for Arc"
+ depends=""
+ install_if="arc=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Arc/xfwm4
+}
+
+arc_metacity() {
+ pkgdesc="metacity assets for Arc"
+ depends=""
+ install_if="arc=$pkgver-r$pkgrel metacity"
+
+ amove usr/share/themes/Arc/metacity-1
+}
+
+lighter() {
+ pkgdesc="Lighter version of Arc"
+ depends=""
+ amove usr/share/themes/Arc-Lighter/index.theme
+}
+
+lighter_gtk4() {
+ pkgdesc="GTK+4.0 assets for Lighter version of Arc"
+ depends=""
+ install_if="arc-lighter=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/share/themes/Arc-Lighter/gtk-4.0
+}
+
+lighter_gtk3() {
+ pkgdesc="GTK+3.0 assets for Lighter version of Arc"
+ depends=""
+ install_if="arc-lighter=$pkgver-r$pkgrel gtk+3.0"
+
+ amove usr/share/themes/Arc-Lighter/gtk-3.0
+}
+
+lighter_gtk2() {
+ pkgdesc="GTK+2.0 assets for Lighter version of Arc"
+ depends="gtk-murrine-engine"
+ install_if="arc-lighter=$pkgver-r$pkgrel gtk+2.0"
+
+ amove usr/share/themes/Arc-Lighter/gtk-2.0
+}
+
+lighter_gnome() {
+ pkgdesc="GNOME Shell assets for Lighter version of Arc"
+ depends=""
+ install_if="arc-lighter=$pkgver-r$pkgrel gnome-shell"
+
+ amove usr/share/themes/Arc-Lighter/gnome-shell
+}
+
+lighter_xfwm() {
+ pkgdesc="xfwm assets for Lighter version of Arc"
+ depends=""
+ install_if="arc-lighter=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Arc-Lighter/xfwm4
+}
+
+lighter_metacity() {
+ pkgdesc="metacity assets for Lighter version of Arc"
+ depends=""
+ install_if="arc-lighter=$pkgver-r$pkgrel metacity"
+
+ amove usr/share/themes/Arc-Lighter/metacity-1
+}
+
+dark() {
+ pkgdesc="Dark version of Arc"
+ depends=""
+ amove usr/share/themes/Arc-Dark/index.theme
+}
+
+dark_cinnamon() {
+ pkgdesc="Cinnamon assets for Dark version of Arc"
+ depends=""
+ install_if="arc-dark=$pkgver-r$pkgrel cinnamon-desktop"
+ amove usr/share/themes/Arc-Dark/cinnamon
+}
+
+dark_gtk4() {
+ pkgdesc="GTK+4.0 assets for Dark version of Arc"
+ depends=""
+ install_if="arc-dark=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/share/themes/Arc-Dark/gtk-4.0
+}
+
+dark_gtk3() {
+ pkgdesc="GTK+3.0 assets for Dark version of Arc"
+ depends=""
+ install_if="arc-dark=$pkgver-r$pkgrel gtk+3.0"
+
+ amove usr/share/themes/Arc-Dark/gtk-3.0
+}
+
+dark_gtk2() {
+ pkgdesc="GTK+2.0 assets for Dark version of Arc"
+ depends="gtk-murrine-engine"
+ install_if="arc-dark=$pkgver-r$pkgrel gtk+2.0"
+
+ amove usr/share/themes/Arc-Dark/gtk-2.0
+}
+
+dark_gnome() {
+ pkgdesc="GNOME Shell assets for Dark version of Arc"
+ depends=""
+ install_if="arc-dark=$pkgver-r$pkgrel gnome-shell"
+
+ amove usr/share/themes/Arc-Dark/gnome-shell
+}
+
+dark_xfwm() {
+ pkgdesc="xfwm assets for Dark version of Arc"
+ depends=""
+ install_if="arc-dark=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Arc-Dark/xfwm4
+}
+
+dark_metacity() {
+ pkgdesc="metacity assets for Dark version of Arc"
+ depends=""
+ install_if="arc-dark=$pkgver-r$pkgrel metacity"
+
+ amove usr/share/themes/Arc-Dark/metacity-1
+}
+
+darker() {
+ pkgdesc="Darker version of Arc"
+ depends=""
+ amove usr/share/themes/Arc-Darker/index.theme
+}
+
+darker_gtk4() {
+ pkgdesc="GTK+4.0 assets for Darker version of Arc"
+ depends=""
+ install_if="arc-darker=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/share/themes/Arc-Darker/gtk-4.0
+}
+
+darker_gtk3() {
+ pkgdesc="GTK+3.0 assets for Darker version of Arc"
+ depends=""
+ install_if="arc-darker=$pkgver-r$pkgrel gtk+3.0"
+
+ amove usr/share/themes/Arc-Darker/gtk-3.0
+}
+
+darker_gtk2() {
+ pkgdesc="GTK+2.0 assets for Darker version of Arc"
+ depends="gtk-murrine-engine"
+ install_if="arc-darker=$pkgver-r$pkgrel gtk+2.0"
+
+ amove usr/share/themes/Arc-Darker/gtk-2.0
+}
+
+darker_xfwm() {
+ pkgdesc="xfwm assets for Darker version of Arc"
+ depends=""
+ install_if="arc-darker=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Arc-Darker/xfwm4
+}
+
+darker_metacity() {
+ pkgdesc="metacity assets for Darker version of Arc"
+ depends=""
+ install_if="arc-darker=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Arc-Darker/metacity-1
}
-sha512sums="52e9ecdde0fcb1f2fea3d7d5d1fcb642a1ebb778e0c2bad3f15c420b648958bdb2f6f5d63799105e76dd4ebbee8dbd56e594699893333585639867a653c11ec8 arc-theme-20200513.tar.gz"
+sha512sums="
+5a84b717de022c673c6af260381542365550f629f43ae99c7ab8b22b4c09024403a1bc06279b40d3560e86d9810683c2e8337799a4cc67ef7aeb93223b5f56a1 arc-theme-20221218.tar.xz
+"
diff --git a/testing/arcanist/APKBUILD b/testing/arcanist/APKBUILD
deleted file mode 100644
index 81afa80d96f..00000000000
--- a/testing/arcanist/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=arcanist
-pkgver=0_git20180717
-pkgrel=0
-pkgdesc="Command line interface for Phabricator"
-url="http://www.phabricator.com/docs/arcanist/"
-arch="noarch"
-license="Apache-2.0"
-depends="php7"
-depends="php7 php7-curl php-json libphutil"
-options="!check" # no checks
-subpackages=""
-source="https://dev.alpinelinux.org/archive/arcanist/arcanist-$pkgver.tar.gz"
-builddir="$srcdir/arcanist-stable"
-
-build() {
- :
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/php/$pkgname \
- "$pkgdir"/usr/bin
- for i in externals resources scripts src; do
- cp -r "$builddir"/$i "$pkgdir"/usr/share/php/$pkgname/
- done
- ln -sf /usr/share/php/$pkgname/scripts/arcanist.php \
- "$pkgdir"/usr/bin/arc
-}
-
-snapshot() {
- local pkgver=0_git$(date +%Y%m%d)
- msg "Grabbing the latest stable snapshot"
- mkdir -p "$srcdir"
- wget -O "$srcdir"/$pkgname-$pkgver.tar.gz \
- https://github.com/phacility/arcanist/archive/stable.tar.gz
- ssh distfiles.alpinelinux.org \
- "mkdir -p archive/$pkgname/"
- scp "$srcdir"/$pkgname-$pkgver.tar.gz \
- dev.alpinelinux.org:/archive/$pkgname/
- sed -i -e "s/^pkgver=.*/pkgver=$pkgver/" \
- "$startdir"/APKBUILD
- sed -i -e "s/^pkgrel=.*/pkgrel=0/" \
- "$startdir"/APKBUILD
- abuild checksum
-}
-
-sha512sums="27c544d0da05502ce58ecc5198d0e964e53f44ced64298352b44388b70b345dd87bf0a04fc54f8ab44d32640a0964a5ba54bffeacb9f2cfcc24e004b6ea209d0 arcanist-0_git20180717.tar.gz"
diff --git a/testing/arcticons-icon-theme/APKBUILD b/testing/arcticons-icon-theme/APKBUILD
new file mode 100644
index 00000000000..1e380b0ed9c
--- /dev/null
+++ b/testing/arcticons-icon-theme/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Sertonix <sertonix@posteo.net>
+# Maintainer: Sertonix <sertonix@posteo.net>
+pkgname=arcticons-icon-theme
+pkgver=8.7.1.0
+pkgrel=0
+pkgdesc="A monotone line-based icon pack for android - freedesktop version"
+url="https://github.com/Donnnno/Arcticons-Linux"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="$pkgname-light $pkgname-dark"
+subpackages="$pkgname-light:theme $pkgname-dark:theme"
+source="https://github.com/Donnnno/Arcticons-Linux/archive/$pkgver/arcticons-icon-theme-$pkgver.tar.gz"
+builddir="$srcdir/Arcticons-Linux-$pkgver"
+options="!check"
+
+build() {
+ :
+}
+
+package() {
+ install -d "$pkgdir/usr/share/icons"
+ cp -r arcticons-dark arcticons-light -t "$pkgdir/usr/share/icons"
+}
+
+theme() {
+ depends=
+ variant="${subpkgname##"$pkgname"-}"
+ pkgdesc="$pkgdesc ($variant)"
+
+ amove usr/share/icons/arcticons-"$variant"
+}
+
+sha512sums="
+f4312fb390328d1cd95da8cb5a748fceebf814ce9fef18c6c7f6690d04bea42d56123c842c9eabd184ae87953558f520b23684c2432bce5589e1c76760571321 arcticons-icon-theme-8.7.1.0.tar.gz
+"
diff --git a/testing/ardour/APKBUILD b/testing/ardour/APKBUILD
new file mode 100644
index 00000000000..6eccd886cab
--- /dev/null
+++ b/testing/ardour/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=ardour
+pkgver=7.5.0
+pkgrel=2
+pkgdesc="professional-grade digital audio workstation"
+url="https://ardour.org/"
+arch="all !ppc64le" # Does not build on ppc64le.
+license="GPL-2.0-or-later AND CC0-1.0 AND MIT"
+makedepends="
+ alsa-lib-dev
+ atkmm-dev
+ aubio-dev
+ boost-dev
+ fftw-dev
+ fluidsynth-dev
+ gtk+2.0-dev
+ gtkmm-dev
+ hidapi-dev
+ itstool
+ jack-dev
+ libarchive-dev
+ liblo-dev
+ libpng-dev
+ libsamplerate-dev
+ libsigc++-dev
+ libsndfile-dev
+ lilv-dev
+ lrdf-dev
+ lv2-dev
+ pulseaudio-dev
+ python3
+ readline-dev
+ redland-dev
+ rubberband-dev
+ serd-dev
+ sratom-dev
+ suil-dev
+ taglib-dev
+ vamp-sdk-dev
+ "
+# the tarballs get randomly removed- ping someone in #alpine-devel to update
+# this
+source="https://dev.alpinelinux.org/archive/ardour/Ardour-$pkgver.tar.xz
+ $pkgname-midi-$pkgver.zip.noauto::https://dev.alpinelinux.org/archive/ardour/ArdourBundledMedia-$pkgver.zip
+ "
+builddir="$srcdir/Ardour-$pkgver"
+ldpath="/usr/lib/ardour7"
+
+build() {
+ export LINKFLAGS="$LDFLAGS"
+ python3 waf configure \
+ --prefix=/usr \
+ --cxx11 \
+ --keepflags \
+ --optimize \
+ --freedesktop \
+ --no-phone-home \
+ --with-backends=pulseaudio,jack,alsa,dummy
+ #FIXME: add missing dependencies
+ # --use-external-libs
+ python3 waf build
+}
+
+check() {
+ python3 waf test
+}
+
+package() {
+ python3 waf install --destdir="$pkgdir"
+
+ mkdir -p "$pkgdir"/usr/share/ardour${pkgver%%.*}/media/
+ unzip "$srcdir"/$pkgname-midi-$pkgver.zip.noauto \
+ -d "$pkgdir"/usr/share/ardour${pkgver%%.*}/media/
+
+ mkdir -p "$pkgdir"/usr/share/metainfo
+ mv "$pkgdir"/usr/share/appdata/*.xml "$pkgdir"/usr/share/metainfo
+ rmdir "$pkgdir"/usr/share/appdata
+}
+
+sha512sums="
+5acc2937351cbaf15c365b8543eeb0836f146fab62b2aa36113dceee2f5b4c88fcc8f05612aa683f1c2e985ea4e9ffadc0d411422d1ae6fe2137c0358cb91ed0 Ardour-7.5.0.tar.xz
+94b681f989e834f5de25ce87da9c174b11d90617063f8c96147d7eb470391b35f6d54b85de16da8d963cacb01b50d1c1fab0fddd18eb3b086fe17124ecfa4f65 ardour-midi-7.5.0.zip.noauto
+"
diff --git a/testing/arj/APKBUILD b/testing/arj/APKBUILD
new file mode 100644
index 00000000000..630b05d6513
--- /dev/null
+++ b/testing/arj/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Olliver Schinagl <oliver@schinagl.nl>
+# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
+pkgname='arj'
+pkgver='0_git20220125'
+_commit='e0362c432615a2db2758f6917e451216f693d55f'
+pkgrel=1
+pkgdesc='Open source implementation and maximum compatible of the world-famous ARJ archiver.'
+url='https://arj.sourceforge.net/'
+arch='all !armv7 !armhf !x86' # 32 bit builds seem to segfault
+license='GPL-2.0-or-later'
+options='!check' # tests performed as part of build
+makedepends='autoconf automake git rsync'
+subpackages="${pkgname}-doc"
+source="${pkgname}-${pkgver}.tar.gz::https://gitlab.alpinelinux.org/mirror/arj/-/archive/${_commit}/arj-${_commit}.tar.gz"
+builddir="${srcdir}/${pkgname}-${_commit}"
+
+prepare() {
+ default_prepare
+
+ (
+ cd gnu
+ aclocal
+ autoupdate
+ autoconf
+ # Included files are horribly outdated and are unable to build.
+ update_config_guess
+ update_config_sub
+
+ ./configure \
+ --build="${CBUILD}" \
+ --host="${CHOST}" \
+ --mandir='/usr/share/man' \
+ --prefix='/usr' \
+ --sysconfdir='/etc' \
+ ;
+ )
+ make prepare
+}
+
+build() {
+ make -j1
+}
+
+package() {
+ make DESTDIR="${pkgdir}" install
+
+ find "${pkgdir}" -name 'arj-register*' -delete
+}
+
+sha512sums="
+ca200f0c782763435a51ea077e30eaf0f684b881d1f97f21dc4671b20a0abea37b8b3f458ece7640c98bbe5b06e0ceb72ac11ffbcc1ebc0f67b46d15e96f7ea2 arj-0_git20220125.tar.gz
+"
diff --git a/testing/armadillo/APKBUILD b/testing/armadillo/APKBUILD
deleted file mode 100644
index c569fed90bc..00000000000
--- a/testing/armadillo/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
-# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
-pkgname=armadillo
-pkgver=9.880.1
-pkgrel=0
-pkgdesc="C++ library for linear algebra & scientific computing"
-url="http://arma.sourceforge.net/"
-arch="all !mips !mips64" # blocked by openblas
-license="Apache-2.0"
-options="!check" # Armadillo must be installed before the tests can be compiled
-makedepends="
- arpack-dev
- cmake
- hdf5-dev
- lapack-dev
- openblas-dev
- superlu-dev
- "
-subpackages="
- $pkgname-dev
- "
-source="
- https://downloads.sourceforge.net/project/arma/armadillo-$pkgver.tar.xz
- "
-
-build() {
- cmake . \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_LIBDIR=lib
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir/usr/lib/cmake"
- mv "$pkgdir/usr/share/Armadillo/CMake"/* "$pkgdir/usr/lib/cmake"
- rm -rf "$pkgdir/usr/share"
-}
-
-sha512sums="41852b573065a2b26617c402a11a4eb7f64b04ae809fd9e15e568a8e1ec85a2febf407fd4f795a4aa84222b24375c0a316101e0ffaa9166a5bda67735c3c3b98 armadillo-9.880.1.tar.xz"
diff --git a/testing/armagetronad/APKBUILD b/testing/armagetronad/APKBUILD
index c8ac50e6fe2..69d3f1414a1 100644
--- a/testing/armagetronad/APKBUILD
+++ b/testing/armagetronad/APKBUILD
@@ -1,27 +1,22 @@
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
pkgname=armagetronad
-pkgver=0.2.8.3.5
+pkgver=0.2.9.1.1
pkgrel=0
-pkgdesc="A Tron Clone in 3D."
+pkgdesc="Tron Clone in 3D"
url="http://armagetronad.net/"
arch="all"
license="GPL-1.0-only"
-makedepends="sdl_image-dev sdl_mixer-dev ftgl-dev libxml2-dev"
+makedepends="sdl_image-dev sdl_mixer-dev ftgl-dev libxml2-dev sdl12-compat-dev"
subpackages="$pkgname-doc"
options="!check" #the tests are deactivated because the make check has not been declared
-source="https://launchpad.net/armagetronad/${pkgver%.*.*}/$pkgver/+download/armagetronad-$pkgver.src.tar.gz"
-
-prepare() {
- default_prepare
- update_config_guess
-}
+source="$pkgname-$pkgver.tar.bz2::https://launchpad.net/armagetronad/${pkgver%.*.*}/$pkgver/+download/armagetronad-$pkgver.tbz"
build() {
./configure \
--prefix=/usr \
--disable-useradd \
- --enable-dirty \
--enable-music \
--enable-armathentication \
--enable-master \
@@ -39,7 +34,6 @@ build() {
make
}
-
package() {
make -j1 DESTDIR="$pkgdir" install
@@ -47,4 +41,6 @@ package() {
rm -rf "$pkgdir"/etc/init.d
}
-sha512sums="ee3c1be492e3f5e35e29bdefd39a3407272acc8f392030d011162af45834a617715435b32dae1a45f9889455847b629a23f6711eaf901a1f61da84bdf2dbd7e0 armagetronad-0.2.8.3.5.src.tar.gz"
+sha512sums="
+2bdda4c48c224e1ed54b9526aad3ad15a0514d1aa7724c0d743933e8fce576b47dfc2622bc1a27a97f004e6e99bc398b0cc4207501c56252605401dcb03a09cf armagetronad-0.2.9.1.1.tar.bz2
+"
diff --git a/testing/arp-scan/APKBUILD b/testing/arp-scan/APKBUILD
deleted file mode 100644
index fa6eeb96731..00000000000
--- a/testing/arp-scan/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Antoine Tenart <antoine.tenart@ack.tf>
-# Maintainer: Antoine Tenart <antoine.tenart@ack.tf>
-pkgname=arp-scan
-pkgver=1.9.7
-pkgrel=0
-pkgdesc="Address Resolution Protocol (ARP) packet scanner"
-url="https://github.com/royhills/arp-scan"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="autoconf automake libpcap-dev libtool"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/royhills/arp-scan/archive/$pkgver.tar.gz"
-
-
-prepare() {
- default_prepare
- autoreconf -vfi
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --mandir=/usr/share/man
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="2aa808521a64cd3e2a6a270c6725f2cffa4cfce5c251e5483053c8ea9f56fb1368dd9aae2afcf8fffe1030fe2fc37723f0701c9eafa7cd1d52df459c07a80870 arp-scan-1.9.7.tar.gz"
diff --git a/testing/art_standalone/APKBUILD b/testing/art_standalone/APKBUILD
new file mode 100644
index 00000000000..dba179260bc
--- /dev/null
+++ b/testing/art_standalone/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=art_standalone
+pkgver=0_git20240220
+pkgrel=1
+_commit="672e299f85cf91901ba107d90084fd67865f047a"
+pkgdesc="A standalone version of Dalvik with Art build in"
+url="https://gitlab.com/android_translation_layer/dalvik_standalone"
+arch="x86_64 aarch64 armv7"
+license="Apache-2.0"
+depends="wolfssl-jni"
+# bash is used by /usr/bin/dx
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ bash
+ "
+case "$CARCH" in
+ aarch64|armv7) depends_dev="$depends_dev vixl-dev" ;;
+esac
+makedepends="$depends_dev
+ bionic_translation-dev
+ bsd-compat-headers
+ expat-dev
+ icu-dev
+ java-common
+ libbsd-dev
+ libcap-dev
+ libunwind-dev
+ lz4-dev
+ meson
+ openjdk8-jdk
+ openssl-dev
+ python3
+ valgrind-dev
+ wolfssl-jni-dev
+ xz-dev
+ zip
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-dbg"
+source="https://gitlab.com/android_translation_layer/art_standalone/-/archive/$_commit/art_standalone-$_commit.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/art_standalone-$_commit"
+
+prepare() {
+ default_prepare
+
+ # Hack
+ ln -s /usr/bin/python3 python
+ export PATH="$PATH:$PWD"
+}
+
+build() {
+ make PREFIX=/usr ____LIBDIR=lib
+}
+
+package() {
+ DESTDIR="$pkgdir" make \
+ ____PREFIX="$pkgdir"/usr \
+ ____INSTALL_ETC="$pkgdir"/etc \
+ ____LIBDIR=lib \
+ install
+}
+
+dev() {
+ default_dev
+
+ mkdir -p "$subpkgdir"/usr/lib/java
+ mv "$pkgdir"/usr/lib/java/core-all_classes.jar "$subpkgdir"/usr/lib/java
+ mv "$pkgdir"/usr/lib/java/dx.jar "$subpkgdir"/usr/lib/java
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/dx "$subpkgdir"/usr/bin/dx
+}
+
+sha512sums="
+8a91136df527ec094683313aaa24326afe338e051d1c15fb4942cc39ecdeb79fb5e082eede6213c9c311d357e37805db93fc888c0f880231ebcda0089474fdb6 art_standalone-672e299f85cf91901ba107d90084fd67865f047a.tar.gz
+"
diff --git a/testing/artifactory-oss/APKBUILD b/testing/artifactory-oss/APKBUILD
deleted file mode 100644
index 2ae034e16d3..00000000000
--- a/testing/artifactory-oss/APKBUILD
+++ /dev/null
@@ -1,101 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=artifactory-oss
-_pkgname=artifactory
-pkgver=4.16.1
-pkgrel=0
-pkgdesc="Open source Maven repository manager"
-url="https://www.jfrog.com/open-source/"
-arch="noarch !mips !mips64" # java
-license="AGPL-3.0"
-depends="jetty-runner openjdk8-jre-base"
-makedepends="unzip zip"
-install="$pkgname.pre-install $pkgname.post-install"
-pkgusers="artifact"
-pkggroups="artifact"
-source="https://jcenter.bintray.com/org/artifactory/oss/jfrog-$pkgname/$pkgver/jfrog-$pkgname-$pkgver.zip
- $_pkgname.confd"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare || return 1
-
- cd "$builddir"
-
- # Prepare default storage config (this is copied from Artifactory).
- cat > etc/storage.properties <<-'EOF'
- type=derby
- url=jdbc:derby:{db.home};create=true
- driver=org.apache.derby.jdbc.EmbeddedDriver
- EOF
-
- # Allow to change logs directory using system property.
- sed -i 's|${artifactory.home}/logs|${artifactory.logs}|' \
- etc/logback.xml || return 1
-
- cd webapps
-
- # Remove tomcat-juli from WAR, it conflicts with Jetty's implementation.
- zip -d $_pkgname.war WEB-INF/lib/tomcat-juli-*.jar || return 1
-
- # Patch web.xml inside WAR; remove second declaration of
- # welcome-file-list that overwrites the previous correct one.
- unzip $_pkgname.war WEB-INF/web.xml || return 1
- patch -l WEB-INF/web.xml <<-EOF || return 1
- @@ -159,8 +159,5 @@
- <url-pattern>/ui/*</url-pattern>
- </servlet-mapping>
-
- - <welcome-file-list>
- - <welcome-file>TC7-49422</welcome-file>
- - </welcome-file-list>
-
- </web-app>
- EOF
- zip -u $_pkgname.war WEB-INF/web.xml
-}
-
-package() {
- local libdir="$pkgdir/var/lib/$_pkgname"
-
- cd "$builddir"
-
- install -m 644 -D webapps/$_pkgname.war \
- "$pkgdir"/usr/share/java/$_pkgname.war || return 1
-
- install -m 750 -o $pkgusers -g $pkggroups -d \
- "$libdir" "$libdir"/etc "$libdir"/data || return 1
-
- install -m 755 -o $pkgusers -g $pkggroups -d \
- "$pkgdir"/var/log/$_pkgname || return 1
-
- # Derby insists on logging into ./logs, so we must symlink it.
- ln -s /var/log/$_pkgname "$libdir"/logs || return 1
-
- local f
- for f in artifactory.system.properties mimetypes.xml storage.properties; do
- install -m 644 -D etc/$f "$pkgdir"/etc/$_pkgname/$f || return 1
- ln -s /etc/$_pkgname/$f "$libdir"/etc/$f || return 1
- done
-
- # Fix permissions, this file may contain DB password.
- install -m 640 -o root -g $pkggroups etc/storage.properties \
- "$pkgdir"/etc/$_pkgname/storage.properties || return 1
-
- # Artifactory dumps settings from web admin interface, so keep it in
- # /usr/lib instead of /etc.
- install -m 600 -o $pkgusers -g $pkggroups \
- etc/artifactory.config.xml "$libdir"/etc/ || return 1
-
- # Artifactory doesn't like symlinked logback.xml, so we must keep it here.
- install -m 644 -o $pkgusers -g $pkggroups \
- etc/logback.xml "$libdir"/etc/ || return 1
-
- mkdir -p "$pkgdir"/etc/init.d
- ln -s jetty-runner "$pkgdir"/etc/init.d/$_pkgname || return 1
-
- install -m 644 -D "$srcdir"/$_pkgname.confd "$pkgdir"/etc/conf.d/$_pkgname
-}
-
-sha512sums="21999e0f8741f68c8a075132238f823532c1216d2828e1ce3e79dbb5a11687cc6bda60d9493002e4eada177a761e9fcacf08b99e3bcd2af75e1c76574a2eb6fb jfrog-artifactory-oss-4.16.1.zip
-2701ea102da77b86be3b9aa75d5aa92fd5d81081ae1c835aaea49b0f0fd015bd5b32128ba913afda10fac122eec2d0bd1e203af4ee3d13106c3e66e7d1b83498 artifactory.confd"
diff --git a/testing/artifactory-oss/artifactory-oss.post-install b/testing/artifactory-oss/artifactory-oss.post-install
deleted file mode 100644
index c9d0f9398db..00000000000
--- a/testing/artifactory-oss/artifactory-oss.post-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-cat <<EOF
-*
-* Default admin user is "admin" with password "password".
-*
-EOF
diff --git a/testing/artifactory-oss/artifactory-oss.pre-install b/testing/artifactory-oss/artifactory-oss.pre-install
deleted file mode 100644
index 1bb67829621..00000000000
--- a/testing/artifactory-oss/artifactory-oss.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S artifact 2>/dev/null
-adduser -S -D -H -h /var/lib/artifactory -s /sbin/nologin -G artifact -g artifactory artifact 2>/dev/null
-
-exit 0
diff --git a/testing/artifactory-oss/artifactory.confd b/testing/artifactory-oss/artifactory.confd
deleted file mode 100644
index a0dadfee917..00000000000
--- a/testing/artifactory-oss/artifactory.confd
+++ /dev/null
@@ -1,44 +0,0 @@
-# User to run the application.
-user="artifact"
-
-# Path of the WAR file, the web app directory, or the context xml file to run.
-webapp_path="/usr/share/java/artifactory.war"
-
-# The relative URL root (i.e. context path) of the application.
-#context_root=""
-
-# The port to listen on for HTTP connections (or 0 for a randomly allocated port).
-server_port="8080"
-
-# The name or IP of the interface to listen on (default is all interfaces).
-#server_bind_address=""
-
-# Path of the log file to catch stdout/stderr of the server process.
-# Use empty value to disable stdout/sderr logging.
-server_out_log="/var/log/artifactory/server.log"
-
-# Path of the access log file.
-# Use empty value to disable access log.
-#server_access_log="/var/log/artifactory/access.log"
-
-# Additional JARs to be added to the classloader.
-# It may contain space or colon separated paths of JAR files or directories.
-#server_extra_jars="/usr/share/java/postgresql-jdbc.jar"
-
-# Java system properties to pass to the JVM.
-# Define space separated tuples of <name>=<value>; it will be transformed into
-# -D<name>=<value> arguments for java.
-java_properties="
- artifactory.home=/var/lib/artifactory
- artifactory.logs=/var/log/artifactory"
-
-# Initial and maximum size of the heap (in megabytes).
-# Note: This sets parameters -Xms and -Xmx.
-java_heap_size="512"
-
-# Additional options to pass to the JVM.
-java_opts="-XX:+UseG1GC -XX:MaxGCPauseMillis=80 -Xss256k"
-
-# You may use rc_need, rc_use, rc_after, rc_before and rc_provide variables to
-# influence the dependencies of the service.
-#rc_use="postgresql"
diff --git a/testing/asahi-audio/APKBUILD b/testing/asahi-audio/APKBUILD
new file mode 100644
index 00000000000..2f2596e1831
--- /dev/null
+++ b/testing/asahi-audio/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=asahi-audio
+pkgver=1.7
+pkgrel=0
+pkgdesc="userspace audio configuration for Apple Silicon Macs"
+url="https://github.com/AsahiLinux/asahi-audio"
+arch="aarch64" # only needed for asahi/aarch64 on apple silicon
+license="MIT"
+options="!check"
+depends="
+ bankstown-lv2
+ lsp-plugins-lv2
+ pipewire
+ speakersafetyd
+ wireplumber
+ "
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsahiLinux/asahi-audio/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR=$pkgdir install
+}
+
+sha512sums="
+cb5007189c7b661704c748159db69eaa9131c0d73cf631254151e4843b4140957f5fd989cd0fd8785abe50aa43e6d58ee4ecf98f5a3bd4d1462b2c3a049dd7d2 asahi-audio-1.7.tar.gz
+"
diff --git a/testing/asahi-fwextract/APKBUILD b/testing/asahi-fwextract/APKBUILD
new file mode 100644
index 00000000000..f04427669fe
--- /dev/null
+++ b/testing/asahi-fwextract/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+
+pkgname=asahi-fwextract
+pkgver=0.7.1
+pkgrel=0
+pkgdesc="Asahi Linux firmware extractor"
+_sourcename=asahi-installer
+_installerver=0.7.1
+arch="aarch64"
+url="http://asahilinux.org"
+license="MIT"
+source="${pkgname}-${_installerver}.tar.gz::https://github.com/AsahiLinux/${_sourcename}/archive/refs/tags/v${_installerver}.tar.gz"
+depends="python3 asahi-scripts lzfse"
+makedepends="py3-build py3-installer py3-wheel py3-setuptools"
+builddir="$srcdir"/$_sourcename-$_installerver
+
+build() {
+ python -m build --wheel --no-isolation
+}
+
+package() {
+ python -m installer --destdir="$pkgdir" dist/*.whl
+}
+sha512sums="
+4635f559f31b62b264c417017eb0e4a16960035c7c0482b9343d413cee4b5a9d26cc5e69bffd15478ad9e5e531a4eb3d8e786ccc89466d4d23c68f7c61ed42a5 asahi-fwextract-0.7.1.tar.gz
+"
diff --git a/testing/asahi-scripts/APKBUILD b/testing/asahi-scripts/APKBUILD
new file mode 100644
index 00000000000..ac834d7ea77
--- /dev/null
+++ b/testing/asahi-scripts/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=asahi-scripts
+pkgver=20230821
+pkgrel=1
+pkgdesc='Asahi Linux maintenance scripts'
+arch='aarch64'
+url='http://asahilinux.org'
+license='MIT'
+source="${pkgname}-${pkgver}.tar.gz::https://github.com/AsahiLinux/${pkgname}/archive/refs/tags/${pkgver}.tar.gz"
+#install=asahi-scripts.install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr DESTDIR=${pkgdir} all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr DESTDIR=${pkgdir} install
+
+ install -Dm644 "$srcdir/${pkgname}-${pkgver}/LICENSE" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+sha512sums="
+90e25f476f6b128742650c4809537ae45666071e611ea47484c1c1e05ac6681ae8e0bf7b6d26ea95ccc292666c8810c0c377a416b31e7d6b22e437fbc1ef23a3 asahi-scripts-20230821.tar.gz
+"
diff --git a/testing/asciinema-rs/APKBUILD b/testing/asciinema-rs/APKBUILD
index 0c806f73120..2e77d07691c 100644
--- a/testing/asciinema-rs/APKBUILD
+++ b/testing/asciinema-rs/APKBUILD
@@ -2,25 +2,31 @@
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=asciinema-rs
pkgver=0.5.1
-pkgrel=0
+pkgrel=3
pkgdesc="A reimplementation of the asciinema command line program written in Rust."
url="https://github.com/LegNeato/asciinema-rs"
arch="x86_64" # Limited by cargo
license="Apache-2.0 MIT"
-provides="asciinema"
-makedepends="cargo openssl-dev"
-source="https://github.com/LegNeato/asciinema-rs/archive/v$pkgver/$pkgname-v$pkgver.tar.gz"
+makedepends="cargo openssl-dev cargo-auditable"
+source="https://github.com/LegNeato/asciinema-rs/archive/v$pkgver/asciinema-rs-v$pkgver.tar.gz
+ openssl3.patch
+ "
+options="!check" # fail on 'home'
+
build() {
- cargo build --release --locked
+ cargo auditable build --release --locked
}
check() {
- cargo test --release --locked
+ cargo test --release --locked
}
package() {
- install -Dt "$pkgdir"/usr/bin target/release/asciinema
+ install -Dt "$pkgdir"/usr/bin target/release/asciinema
}
-sha512sums="59a786a6a82122c33200bc7eb30e96e38548e45eb478eae259fa8ccd601b0bd596d4d9066ce75a5dc95abdaa97554f4a05cc2218b4c228566a65ed510d35c600 asciinema-rs-v0.5.1.tar.gz"
+sha512sums="
+59a786a6a82122c33200bc7eb30e96e38548e45eb478eae259fa8ccd601b0bd596d4d9066ce75a5dc95abdaa97554f4a05cc2218b4c228566a65ed510d35c600 asciinema-rs-v0.5.1.tar.gz
+0618071301549fa61965c2644a0f6b717caa54ab3ec60c4d345e182b89180a6ab03956f9a027f9e72c7ea99d9212689ab24e9b7f70e924d6d45e3efc17496812 openssl3.patch
+"
diff --git a/testing/asciinema-rs/openssl3.patch b/testing/asciinema-rs/openssl3.patch
new file mode 100644
index 00000000000..0133cb16642
--- /dev/null
+++ b/testing/asciinema-rs/openssl3.patch
@@ -0,0 +1,2546 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 82e57ee..e4acba8 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,1843 +1,1911 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
+ [[package]]
+ name = "adler32"
+ version = "1.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
+
+ [[package]]
+ name = "aho-corasick"
+ version = "0.6.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e"
+ dependencies = [
+- "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.1.1",
+ ]
+
+ [[package]]
+ name = "ansi_term"
+ version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+ dependencies = [
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "arrayvec"
+ version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
+ dependencies = [
+- "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nodrop",
+ ]
+
+ [[package]]
+ name = "asciicast"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4521e5a844fab4639ec32b21de3a2639f7c2783ba6bb9daead2672b6a298ed7b"
+ dependencies = [
+- "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono",
++ "serde 1.0.80",
++ "serde_derive",
++ "serde_json",
+ ]
+
+ [[package]]
+ name = "asciinema"
+ version = "0.5.1"
+ dependencies = [
+- "asciicast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "config 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_builder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pty-shell 0.3.0",
+- "reqwest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
+- "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "asciicast",
++ "chrono",
++ "config",
++ "derive_builder",
++ "failure",
++ "libc",
++ "openssl-probe",
++ "os_type",
++ "pty-shell",
++ "reqwest",
++ "serde 1.0.80",
++ "serde_derive",
++ "serde_json",
++ "structopt",
++ "tempfile",
++ "termcolor",
++ "termion",
++ "url",
++ "url_serde",
++ "uuid 0.6.5",
+ ]
+
+ [[package]]
+ name = "atty"
+ version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "termion",
++ "winapi 0.3.6",
+ ]
+
++[[package]]
++name = "autocfg"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
++
+ [[package]]
+ name = "backtrace"
+ version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a"
+ dependencies = [
+- "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace-sys",
++ "cfg-if 0.1.6",
++ "libc",
++ "rustc-demangle",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "backtrace-sys"
+ version = "0.1.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0"
+ dependencies = [
+- "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
+ ]
+
+ [[package]]
+ name = "base64"
+ version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+ dependencies = [
+- "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "safemem",
+ ]
+
+ [[package]]
+ name = "bitflags"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3"
+
+ [[package]]
+ name = "bitflags"
+ version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
+
+ [[package]]
+ name = "build_const"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
+
+ [[package]]
+ name = "byteorder"
+ version = "1.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
+
+ [[package]]
+ name = "bytes"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
+
+ [[package]]
+ name = "bytes"
+ version = "0.4.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62"
+ dependencies = [
+- "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "iovec",
+ ]
+
+ [[package]]
+ name = "cc"
+ version = "1.0.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
+
+ [[package]]
+ name = "cfg-if"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "chrono"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
+ dependencies = [
+- "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer",
++ "num-traits 0.2.6",
++ "serde 1.0.80",
++ "time",
+ ]
+
+ [[package]]
+ name = "clap"
+ version = "2.32.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
+ dependencies = [
+- "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term",
++ "atty",
++ "bitflags 1.0.4",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
+ ]
+
+ [[package]]
+ name = "cloudabi"
+ version = "0.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.0.4",
+ ]
+
+ [[package]]
+ name = "config"
+ version = "0.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e595d1735d8ab6b04906bbdcfc671cce2a5e609b6f8e92865e67331cc2f41ba4"
+ dependencies = [
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde-hjson 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
+- "toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.2.0",
++ "nom",
++ "serde 1.0.80",
++ "serde-hjson",
++ "serde_json",
++ "toml",
++ "yaml-rust",
+ ]
+
+ [[package]]
+ name = "core-foundation"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
+ dependencies = [
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation-sys",
++ "libc",
+ ]
+
+ [[package]]
+ name = "core-foundation-sys"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "crc"
+ version = "1.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
+ dependencies = [
+- "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "build_const",
+ ]
+
+ [[package]]
+ name = "crossbeam-deque"
+ version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3486aefc4c0487b9cb52372c97df0a48b8c249514af1ee99703bf70d2f2ceda1"
+ dependencies = [
+- "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch",
++ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "crossbeam-epoch"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9"
+ dependencies = [
+- "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec",
++ "cfg-if 0.1.6",
++ "crossbeam-utils",
++ "lazy_static 1.2.0",
++ "memoffset",
++ "scopeguard",
+ ]
+
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015"
+
+ [[package]]
+ name = "derive_builder"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c998e6ab02a828dd9735c18f154e14100e674ed08cb4e1938f0e4177543f439"
+ dependencies = [
+- "derive_builder_core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "derive_builder_core",
++ "quote 0.3.15",
++ "syn 0.11.11",
+ ]
+
+ [[package]]
+ name = "derive_builder_core"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "735e24ee9e5fa8e16b86da5007856e97d592e11867e45d76e0c0d0a164a0b757"
+ dependencies = [
+- "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15",
++ "syn 0.11.11",
+ ]
+
+ [[package]]
+ name = "dtoa"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
+
+ [[package]]
+ name = "encoding_rs"
+ version = "0.8.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5"
+ dependencies = [
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6",
+ ]
+
+ [[package]]
+ name = "errno"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e2b2decb0484e15560df3210cf0d78654bb0864b2c138977c07e377a1bae0e2"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "libc",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "failure"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7"
+ dependencies = [
+- "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace",
++ "failure_derive",
+ ]
+
+ [[package]]
+ name = "failure_derive"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596"
+ dependencies = [
+- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.20",
++ "quote 0.6.9",
++ "syn 0.15.18",
++ "synstructure",
+ ]
+
+ [[package]]
+ name = "fnv"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+
+ [[package]]
+ name = "foreign-types"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+ dependencies = [
+- "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "foreign-types-shared",
+ ]
+
+ [[package]]
+ name = "foreign-types-shared"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+ [[package]]
+ name = "fuchsia-zircon"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.0.4",
++ "fuchsia-zircon-sys",
+ ]
+
+ [[package]]
+ name = "fuchsia-zircon-sys"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+ [[package]]
+ name = "futures"
+ version = "0.1.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b"
+
+ [[package]]
+ name = "futures-cpupool"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "num_cpus",
+ ]
+
+ [[package]]
+ name = "gcc"
+ version = "0.3.55"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+
+ [[package]]
+ name = "h2"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed"
+ dependencies = [
+- "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "bytes 0.4.10",
++ "fnv",
++ "futures",
++ "http",
++ "indexmap",
++ "log 0.4.6",
++ "slab 0.4.1",
++ "string",
++ "tokio-io",
+ ]
+
+ [[package]]
+ name = "heck"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82"
+ dependencies = [
+- "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation",
+ ]
+
+ [[package]]
+ name = "http"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "24f58e8c2d8e886055c3ead7b28793e1455270b5fb39650984c224bc538ba581"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "fnv",
++ "itoa",
+ ]
+
+ [[package]]
+ name = "httparse"
+ version = "1.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
+
+ [[package]]
+ name = "hyper"
+ version = "0.12.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95ffee0d1d30de4313fdaaa485891ce924991d45bbc18adfc8ac5b1639e62fbb"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "futures-cpupool",
++ "h2",
++ "http",
++ "httparse",
++ "iovec",
++ "itoa",
++ "log 0.4.6",
++ "net2",
++ "time",
++ "tokio",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-tcp",
++ "tokio-threadpool",
++ "tokio-timer",
++ "want",
+ ]
+
+ [[package]]
+ name = "hyper-tls"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "hyper",
++ "native-tls",
++ "tokio-io",
+ ]
+
+ [[package]]
+ name = "idna"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+
+ [[package]]
+ name = "indexmap"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
+
+ [[package]]
+ name = "iovec"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "itoa"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
+
+ [[package]]
+ name = "kernel32-sys"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+
+ [[package]]
+ name = "lazy_static"
+ version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
+
+ [[package]]
+ name = "lazy_static"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
+
+ [[package]]
+ name = "lazycell"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0"
+
+ [[package]]
+ name = "libc"
+ version = "0.2.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"
+
+ [[package]]
+ name = "libflate"
+ version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "21138fc6669f438ed7ae3559d5789a5f0ba32f28c1f0608d1e452b0bb06ee936"
+ dependencies = [
+- "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32",
++ "byteorder",
++ "crc",
+ ]
+
+ [[package]]
+ name = "linked-hash-map"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd"
+ dependencies = [
+- "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_test 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 0.8.23",
++ "serde_test",
+ ]
+
+ [[package]]
+ name = "linked-hash-map"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e"
+
+ [[package]]
+ name = "lock_api"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a"
+ dependencies = [
+- "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "owning_ref",
++ "scopeguard",
+ ]
+
+ [[package]]
+ name = "log"
+ version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+ dependencies = [
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.6",
+ ]
+
+ [[package]]
+ name = "log"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
+ dependencies = [
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6",
+ ]
+
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+
+ [[package]]
+ name = "memchr"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "memchr"
+ version = "2.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
+ dependencies = [
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6",
++ "libc",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "memoffset"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
+
+ [[package]]
+ name = "mime"
+ version = "0.3.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630"
+ dependencies = [
+- "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.2.0",
+ ]
+
+ [[package]]
+ name = "mime_guess"
+ version = "2.0.0-alpha.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
+ dependencies = [
+- "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime",
++ "phf",
++ "phf_codegen",
++ "unicase 1.4.2",
+ ]
+
+ [[package]]
+ name = "mio"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e"
+ dependencies = [
+- "bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.3.0",
++ "libc",
++ "log 0.3.9",
++ "miow 0.1.5",
++ "net2",
++ "nix 0.5.1",
++ "slab 0.1.3",
++ "time",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "mio"
+ version = "0.6.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432"
+ dependencies = [
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "lazycell",
++ "libc",
++ "log 0.4.6",
++ "miow 0.2.1",
++ "net2",
++ "slab 0.4.1",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "mio-uds"
+ version = "0.6.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
+ dependencies = [
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec",
++ "libc",
++ "mio 0.6.16",
+ ]
+
+ [[package]]
+ name = "miow"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+
+ [[package]]
+ name = "miow"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+
+ [[package]]
+ name = "native-tls"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2"
+ dependencies = [
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.2.0",
++ "libc",
++ "log 0.4.6",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
+ ]
+
+ [[package]]
+ name = "net2"
+ version = "0.2.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+ dependencies = [
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6",
++ "libc",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "nix"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79"
+ dependencies = [
+- "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 0.4.0",
++ "libc",
+ ]
+
+ [[package]]
+ name = "nix"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.0.4",
++ "bytes 0.4.10",
++ "cfg-if 0.1.6",
++ "gcc",
++ "libc",
++ "void",
+ ]
+
+ [[package]]
+ name = "nodrop"
+ version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2"
+
+ [[package]]
+ name = "nom"
+ version = "3.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b"
+ dependencies = [
+- "memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 1.0.2",
+ ]
+
+ [[package]]
+ name = "num-integer"
+ version = "0.1.39"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
+ dependencies = [
+- "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.6",
+ ]
+
+ [[package]]
+ name = "num-traits"
+ version = "0.1.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+ dependencies = [
+- "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.6",
+ ]
+
+ [[package]]
+ name = "num-traits"
+ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
+
+ [[package]]
+ name = "num_cpus"
+ version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+-name = "openssl"
+-version = "0.10.15"
++name = "once_cell"
++version = "1.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
++
++[[package]]
++name = "openssl"
++version = "0.10.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.0.4",
++ "cfg-if 1.0.0",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
++dependencies = [
++ "proc-macro2 1.0.43",
++ "quote 1.0.21",
++ "syn 1.0.99",
+ ]
+
+ [[package]]
+ name = "openssl-probe"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+
+ [[package]]
+ name = "openssl-sys"
+-version = "0.9.39"
++version = "0.9.75"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f"
+ dependencies = [
+- "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
+ ]
+
+ [[package]]
+ name = "os_type"
+ version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
+ dependencies = [
+- "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex",
+ ]
+
+ [[package]]
+ name = "owning_ref"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
+ dependencies = [
+- "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "stable_deref_trait",
+ ]
+
+ [[package]]
+ name = "parking_lot"
+ version = "0.6.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
+ dependencies = [
+- "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api",
++ "parking_lot_core",
+ ]
+
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand 0.5.5",
++ "rustc_version",
++ "smallvec",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "percent-encoding"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+
+ [[package]]
+ name = "phf"
+ version = "0.7.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6"
+ dependencies = [
+- "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_shared",
+ ]
+
+ [[package]]
+ name = "phf_codegen"
+ version = "0.7.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7d187f00cd98d5afbcd8898f6cf181743a449162aeb329dcd2f3849009e605ad"
+ dependencies = [
+- "phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_generator",
++ "phf_shared",
+ ]
+
+ [[package]]
+ name = "phf_generator"
+ version = "0.7.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b"
+ dependencies = [
+- "phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_shared",
++ "rand 0.5.5",
+ ]
+
+ [[package]]
+ name = "phf_shared"
+ version = "0.7.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93"
+ dependencies = [
+- "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "siphasher",
++ "unicase 1.4.2",
+ ]
+
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
+
+ [[package]]
+ name = "proc-macro2"
+ version = "0.4.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee"
+ dependencies = [
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab"
++dependencies = [
++ "unicode-ident",
+ ]
+
+ [[package]]
+ name = "pty"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f50f3d255966981eb4e4c5df3e983e6f7d163221f547406d83b6a460ff5c5ee8"
+ dependencies = [
+- "errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "errno",
++ "libc",
+ ]
+
+ [[package]]
+ name = "pty-shell"
+ version = "0.3.0"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nix 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pty 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "mio 0.5.1",
++ "nix 0.10.0",
++ "pty",
++ "termios",
+ ]
+
+ [[package]]
+ name = "quote"
+ version = "0.3.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
+
+ [[package]]
+ name = "quote"
+ version = "0.6.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b"
+ dependencies = [
+- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.20",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
++dependencies = [
++ "proc-macro2 1.0.43",
+ ]
+
+ [[package]]
+ name = "rand"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd"
+ dependencies = [
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon",
++ "libc",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "rand"
+ version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-zircon",
++ "libc",
++ "rand_core 0.2.2",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "rand_core"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372"
+ dependencies = [
+- "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.0",
+ ]
+
+ [[package]]
+ name = "rand_core"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db"
+
+ [[package]]
+ name = "redox_syscall"
+ version = "0.1.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1"
+
+ [[package]]
+ name = "redox_termios"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
+ dependencies = [
+- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall",
+ ]
+
+ [[package]]
+ name = "regex"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467"
+ dependencies = [
+- "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick",
++ "memchr 2.1.1",
++ "regex-syntax",
++ "thread_local",
++ "utf8-ranges",
+ ]
+
+ [[package]]
+ name = "regex-syntax"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d"
+ dependencies = [
+- "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ucd-util",
+ ]
+
+ [[package]]
+ name = "remove_dir_all"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
+ dependencies = [
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "reqwest"
+ version = "0.9.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00a5870d8edc74fc6e1eb58edbd2815d2243e1a2255d6bf9c82a7a875901b5db"
+ dependencies = [
+- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_urlencoded 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64",
++ "bytes 0.4.10",
++ "encoding_rs",
++ "futures",
++ "http",
++ "hyper",
++ "hyper-tls",
++ "libflate",
++ "log 0.4.6",
++ "mime",
++ "mime_guess",
++ "native-tls",
++ "serde 1.0.80",
++ "serde_json",
++ "serde_urlencoded",
++ "tokio",
++ "tokio-io",
++ "url",
++ "uuid 0.7.1",
+ ]
+
+ [[package]]
+ name = "rustc-demangle"
+ version = "0.1.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
+
+ [[package]]
+ name = "rustc_version"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+ dependencies = [
+- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver",
+ ]
+
+ [[package]]
+ name = "ryu"
+ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7"
+
+ [[package]]
+ name = "safemem"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
+
+ [[package]]
+ name = "schannel"
+ version = "0.1.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56"
+ dependencies = [
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.2.0",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "scopeguard"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+
+ [[package]]
+ name = "security-framework"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0"
+ dependencies = [
+- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
+ ]
+
+ [[package]]
+ name = "security-framework-sys"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf"
+ dependencies = [
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation-sys",
++ "libc",
+ ]
+
+ [[package]]
+ name = "semver"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+ dependencies = [
+- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver-parser",
+ ]
+
+ [[package]]
+ name = "semver-parser"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+ [[package]]
+ name = "serde"
+ version = "0.8.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
+
+ [[package]]
+ name = "serde"
+ version = "1.0.80"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef"
+
+ [[package]]
+ name = "serde-hjson"
+ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b833c5ad67d52ced5f5938b2980f32a9c1c5ef047f0b4fb3127e7a423c76153"
+ dependencies = [
+- "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "linked-hash-map 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 0.2.11",
++ "linked-hash-map 0.3.0",
++ "num-traits 0.1.43",
++ "regex",
++ "serde 0.8.23",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+ version = "1.0.80"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c"
+ dependencies = [
+- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.20",
++ "quote 0.6.9",
++ "syn 0.15.18",
+ ]
+
+ [[package]]
+ name = "serde_json"
+ version = "1.0.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce"
+ dependencies = [
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa",
++ "ryu",
++ "serde 1.0.80",
+ ]
+
+ [[package]]
+ name = "serde_test"
+ version = "0.8.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5"
+ dependencies = [
+- "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 0.8.23",
+ ]
+
+ [[package]]
+ name = "serde_urlencoded"
+ version = "0.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aaed41d9fb1e2f587201b863356590c90c1157495d811430a0c0325fe8169650"
+ dependencies = [
+- "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dtoa",
++ "itoa",
++ "serde 1.0.80",
++ "url",
+ ]
+
+ [[package]]
+ name = "siphasher"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+
+ [[package]]
+ name = "slab"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e"
+
+ [[package]]
+ name = "slab"
+ version = "0.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d"
+
+ [[package]]
+ name = "smallvec"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d"
+ dependencies = [
+- "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unreachable",
+ ]
+
+ [[package]]
+ name = "stable_deref_trait"
+ version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+
+ [[package]]
+ name = "string"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970"
+
+ [[package]]
+ name = "strsim"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
+
+ [[package]]
+ name = "structopt"
+ version = "0.2.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41c4a2479a078509940d82773d90ff824a8c89533ab3b59cd3ce8b0c0e369c02"
+ dependencies = [
+- "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "structopt-derive 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap",
++ "structopt-derive",
+ ]
+
+ [[package]]
+ name = "structopt-derive"
+ version = "0.2.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5352090cfae7a2c85e1a31146268b53396106c88ca5d6ccee2e3fae83b6e35c2"
+ dependencies = [
+- "heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "heck",
++ "proc-macro2 0.4.20",
++ "quote 0.6.9",
++ "syn 0.15.18",
+ ]
+
+ [[package]]
+ name = "syn"
+ version = "0.11.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
+ dependencies = [
+- "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15",
++ "synom",
++ "unicode-xid 0.0.4",
+ ]
+
+ [[package]]
+ name = "syn"
+ version = "0.15.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90c39a061e2f412a9f869540471ab679e85e50c6b05604daf28bc3060f75c430"
+ dependencies = [
+- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.20",
++ "quote 0.6.9",
++ "unicode-xid 0.1.0",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.99"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
++dependencies = [
++ "proc-macro2 1.0.43",
++ "quote 1.0.21",
++ "unicode-ident",
+ ]
+
+ [[package]]
+ name = "synom"
+ version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
+ dependencies = [
+- "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.0.4",
+ ]
+
+ [[package]]
+ name = "synstructure"
+ version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
+ dependencies = [
+- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.20",
++ "quote 0.6.9",
++ "syn 0.15.18",
++ "unicode-xid 0.1.0",
+ ]
+
+ [[package]]
+ name = "tempfile"
+ version = "3.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b"
+ dependencies = [
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6",
++ "libc",
++ "rand 0.5.5",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "termcolor"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "adc4587ead41bf016f11af03e55a624c06568b5a19db4e90fde573d805074f83"
+ dependencies = [
+- "wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wincolor",
+ ]
+
+ [[package]]
+ name = "termion"
+ version = "1.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_syscall",
++ "redox_termios",
+ ]
+
+ [[package]]
+ name = "termios"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "textwrap"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
+ dependencies = [
+- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
+ ]
+
+ [[package]]
+ name = "thread_local"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+ dependencies = [
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.2.0",
+ ]
+
+ [[package]]
+ name = "time"
+ version = "0.1.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b"
+ dependencies = [
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "tokio"
+ version = "0.1.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "mio 0.6.16",
++ "tokio-codec",
++ "tokio-current-thread",
++ "tokio-executor",
++ "tokio-fs",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-tcp",
++ "tokio-threadpool",
++ "tokio-timer",
++ "tokio-udp",
++ "tokio-uds",
+ ]
+
+ [[package]]
+ name = "tokio-codec"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "tokio-io",
+ ]
+
+ [[package]]
+ name = "tokio-current-thread"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "tokio-executor",
+ ]
+
+ [[package]]
+ name = "tokio-executor"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
+ ]
+
+ [[package]]
+ name = "tokio-fs"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "tokio-io",
++ "tokio-threadpool",
+ ]
+
+ [[package]]
+ name = "tokio-io"
+ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "log 0.4.6",
+ ]
+
+ [[package]]
+ name = "tokio-reactor"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018"
+ dependencies = [
+- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
++ "futures",
++ "lazy_static 1.2.0",
++ "log 0.4.6",
++ "mio 0.6.16",
++ "num_cpus",
++ "parking_lot",
++ "slab 0.4.1",
++ "tokio-executor",
++ "tokio-io",
+ ]
+
+ [[package]]
+ name = "tokio-tcp"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "iovec",
++ "mio 0.6.16",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+
+ [[package]]
+ name = "tokio-threadpool"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68"
+ dependencies = [
+- "crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque",
++ "crossbeam-utils",
++ "futures",
++ "log 0.4.6",
++ "num_cpus",
++ "rand 0.5.5",
++ "tokio-executor",
+ ]
+
+ [[package]]
+ name = "tokio-timer"
+ version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e"
+ dependencies = [
+- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
++ "futures",
++ "slab 0.4.1",
++ "tokio-executor",
+ ]
+
+ [[package]]
+ name = "tokio-udp"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "log 0.4.6",
++ "mio 0.6.16",
++ "tokio-codec",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+
+ [[package]]
+ name = "tokio-uds"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70"
+ dependencies = [
+- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.10",
++ "futures",
++ "iovec",
++ "libc",
++ "log 0.4.6",
++ "mio 0.6.16",
++ "mio-uds",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+
+ [[package]]
+ name = "toml"
+ version = "0.4.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4a2ecc31b0351ea18b3fe11274b8db6e4d82bce861bbb22e6dbed40417902c65"
+ dependencies = [
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.80",
+ ]
+
+ [[package]]
+ name = "try-lock"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
+
+ [[package]]
+ name = "ucd-util"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444"
+
+ [[package]]
+ name = "unicase"
+ version = "1.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "unicase"
+ version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "unicode-bidi"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
+ ]
+
++[[package]]
++name = "unicode-ident"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
++
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25"
+
+ [[package]]
+ name = "unicode-segmentation"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1"
+
+ [[package]]
+ name = "unicode-width"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+
+ [[package]]
+ name = "unicode-xid"
+ version = "0.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
+
+ [[package]]
+ name = "unicode-xid"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+ [[package]]
+ name = "unreachable"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
+ dependencies = [
+- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "void",
+ ]
+
+ [[package]]
+ name = "url"
+ version = "1.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+ dependencies = [
+- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna",
++ "matches",
++ "percent-encoding",
+ ]
+
+ [[package]]
+ name = "url_serde"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
+ dependencies = [
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.80",
++ "url",
+ ]
+
+ [[package]]
+ name = "utf8-ranges"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
+
+ [[package]]
+ name = "uuid"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
+ dependencies = [
+- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6",
++ "rand 0.4.3",
++ "serde 1.0.80",
+ ]
+
+ [[package]]
+ name = "uuid"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6"
+ dependencies = [
+- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.5.5",
+ ]
+
+ [[package]]
+ name = "vcpkg"
+-version = "0.2.6"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+ [[package]]
+ name = "vec_map"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+
+ [[package]]
+ name = "version_check"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+ [[package]]
+ name = "void"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+ [[package]]
+ name = "want"
+ version = "0.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "log 0.4.6",
++ "try-lock",
+ ]
+
+ [[package]]
+ name = "winapi"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+ [[package]]
+ name = "winapi"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
+ dependencies = [
+- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
+ ]
+
+ [[package]]
+ name = "winapi-build"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+ [[package]]
+ name = "winapi-i686-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+ [[package]]
+ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+ [[package]]
+ name = "wincolor"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eeb06499a3a4d44302791052df005d5232b927ed1a9658146d842165c4de7767"
+ dependencies = [
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "ws2_32-sys"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+
+ [[package]]
+ name = "yaml-rust"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95acf0db5515d07da9965ec0e0ba6cc2d825e2caeb7303b66ca441729801254e"
+ dependencies = [
+- "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "linked-hash-map 0.5.1",
+ ]
+-
+-[metadata]
+-"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
+-"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e"
+-"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+-"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
+-"checksum asciicast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4521e5a844fab4639ec32b21de3a2639f7c2783ba6bb9daead2672b6a298ed7b"
+-"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
+-"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a"
+-"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0"
+-"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+-"checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3"
+-"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
+-"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
+-"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
+-"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
+-"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62"
+-"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
+-"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
+-"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
+-"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
+-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+-"checksum config 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e595d1735d8ab6b04906bbdcfc671cce2a5e609b6f8e92865e67331cc2f41ba4"
+-"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
+-"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
+-"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
+-"checksum crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3486aefc4c0487b9cb52372c97df0a48b8c249514af1ee99703bf70d2f2ceda1"
+-"checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9"
+-"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015"
+-"checksum derive_builder 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c998e6ab02a828dd9735c18f154e14100e674ed08cb4e1938f0e4177543f439"
+-"checksum derive_builder_core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "735e24ee9e5fa8e16b86da5007856e97d592e11867e45d76e0c0d0a164a0b757"
+-"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
+-"checksum encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)" = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5"
+-"checksum errno 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1e2b2decb0484e15560df3210cf0d78654bb0864b2c138977c07e377a1bae0e2"
+-"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7"
+-"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596"
+-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+-"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+-"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+-"checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b"
+-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+-"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+-"checksum h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed"
+-"checksum heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82"
+-"checksum http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "24f58e8c2d8e886055c3ead7b28793e1455270b5fb39650984c224bc538ba581"
+-"checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
+-"checksum hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)" = "95ffee0d1d30de4313fdaaa485891ce924991d45bbc18adfc8ac5b1639e62fbb"
+-"checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661"
+-"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+-"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
+-"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
+-"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
+-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+-"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
+-"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
+-"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0"
+-"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"
+-"checksum libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "21138fc6669f438ed7ae3559d5789a5f0ba32f28c1f0608d1e452b0bb06ee936"
+-"checksum linked-hash-map 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd"
+-"checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e"
+-"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a"
+-"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+-"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
+-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+-"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
+-"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
+-"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
+-"checksum mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630"
+-"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
+-"checksum mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e"
+-"checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432"
+-"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
+-"checksum miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1"
+-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+-"checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2"
+-"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+-"checksum nix 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f"
+-"checksum nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79"
+-"checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2"
+-"checksum nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b"
+-"checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
+-"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+-"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
+-"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
+-"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613"
+-"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106"
+-"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
+-"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
+-"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
+-"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
+-"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+-"checksum phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6"
+-"checksum phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "7d187f00cd98d5afbcd8898f6cf181743a449162aeb329dcd2f3849009e605ad"
+-"checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b"
+-"checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93"
+-"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
+-"checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee"
+-"checksum pty 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f50f3d255966981eb4e4c5df3e983e6f7d163221f547406d83b6a460ff5c5ee8"
+-"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
+-"checksum quote 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "63b5829244f52738cfee93b3a165c1911388675be000c888d2fae620dee8fa5b"
+-"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd"
+-"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c"
+-"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372"
+-"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db"
+-"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1"
+-"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
+-"checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467"
+-"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d"
+-"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
+-"checksum reqwest 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "00a5870d8edc74fc6e1eb58edbd2815d2243e1a2255d6bf9c82a7a875901b5db"
+-"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
+-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+-"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7"
+-"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
+-"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56"
+-"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+-"checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0"
+-"checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf"
+-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+-"checksum serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
+-"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef"
+-"checksum serde-hjson 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0b833c5ad67d52ced5f5938b2980f32a9c1c5ef047f0b4fb3127e7a423c76153"
+-"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c"
+-"checksum serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce"
+-"checksum serde_test 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5"
+-"checksum serde_urlencoded 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aaed41d9fb1e2f587201b863356590c90c1157495d811430a0c0325fe8169650"
+-"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+-"checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e"
+-"checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d"
+-"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d"
+-"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+-"checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970"
+-"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
+-"checksum structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "41c4a2479a078509940d82773d90ff824a8c89533ab3b59cd3ce8b0c0e369c02"
+-"checksum structopt-derive 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "5352090cfae7a2c85e1a31146268b53396106c88ca5d6ccee2e3fae83b6e35c2"
+-"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
+-"checksum syn 0.15.18 (registry+https://github.com/rust-lang/crates.io-index)" = "90c39a061e2f412a9f869540471ab679e85e50c6b05604daf28bc3060f75c430"
+-"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
+-"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
+-"checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b"
+-"checksum termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "adc4587ead41bf016f11af03e55a624c06568b5a19db4e90fde573d805074f83"
+-"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
+-"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
+-"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
+-"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+-"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b"
+-"checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895"
+-"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
+-"checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c"
+-"checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde"
+-"checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75"
+-"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21"
+-"checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018"
+-"checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912"
+-"checksum tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68"
+-"checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e"
+-"checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c"
+-"checksum tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70"
+-"checksum toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4a2ecc31b0351ea18b3fe11274b8db6e4d82bce861bbb22e6dbed40417902c65"
+-"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
+-"checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444"
+-"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+-"checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90"
+-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-"checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25"
+-"checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1"
+-"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+-"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
+-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+-"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
+-"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+-"checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
+-"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
+-"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
+-"checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6"
+-"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d"
+-"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+-"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+-"checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3"
+-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+-"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
+-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-"checksum wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eeb06499a3a4d44302791052df005d5232b927ed1a9658146d842165c4de7767"
+-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+-"checksum yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "95acf0db5515d07da9965ec0e0ba6cc2d825e2caeb7303b66ca441729801254e"
diff --git a/testing/aspell-es/APKBUILD b/testing/aspell-es/APKBUILD
new file mode 100644
index 00000000000..4afb0845ae9
--- /dev/null
+++ b/testing/aspell-es/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Nulo <alpine@nulo.in>
+# Maintainer: Nulo <alpine@nulo.in>
+pkgname=aspell-es
+pkgver=1.11
+pkgrel=0
+_lang=${pkgname##*-}
+_name=${pkgname%%-*}6-$_lang-$pkgver-2
+pkgdesc="Spanish dictionary for aspell"
+url="http://aspell.net/"
+arch="noarch"
+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() {
+ ./configure
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -D -m644 Copyright "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+5d0159f24d6bff43db682a4beb25e82dd362c205acf7c9e0d728808c0e54a8a566befe26316f384099c72e6c429713f8ad7d2dc66a8f04a15e1d5a9cfe2290d8 aspell6-es-1.11-2.tar.bz2
+"
diff --git a/testing/assimp/01-rm-revision-test.patch b/testing/assimp/01-rm-revision-test.patch
deleted file mode 100644
index 47a2a61fe6c..00000000000
--- a/testing/assimp/01-rm-revision-test.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- assimp-5.0.0/test/unit/utVersion.cpp.orig 2019-10-27 02:51:11.128925442 +0000
-+++ assimp-5.0.0/test/unit/utVersion.cpp 2019-10-27 02:54:22.554333936 +0000
-@@ -66,9 +66,9 @@
- EXPECT_NE( aiGetCompileFlags(), 0U );
- }
-
--TEST_F( utVersion, aiGetVersionRevisionTest ) {
-+/*TEST_F( utVersion, aiGetVersionRevisionTest ) {
- EXPECT_NE( aiGetVersionRevision(), 0U );
--}
-+}*/
-
- TEST_F( utVersion, aiGetBranchNameTest ) {
- EXPECT_NE( nullptr, aiGetBranchName() );
diff --git a/testing/assimp/02-fix-ssize-32bit.patch b/testing/assimp/02-fix-ssize-32bit.patch
deleted file mode 100644
index f1df86d1db1..00000000000
--- a/testing/assimp/02-fix-ssize-32bit.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 0fb68863ffb226044200e5ed1c70eb882be60f78 Mon Sep 17 00:00:00 2001
-From: kuba-- <kuba@sourced.tech>
-Date: Mon, 11 Nov 2019 20:37:48 +0100
-Subject: [PATCH] Add __DEFINED_ssize_t for alpine gcc
-
----
- src/zip.h | 13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/src/zip.h b/src/zip.h
-index c9463a1..a48d64d 100644
---- a/contrib/zip/src/zip.h
-+++ b/contrib/zip/src/zip.h
-@@ -20,8 +20,9 @@ extern "C" {
- #endif
-
- #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \
-- !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(__ssize_t_defined)
--#define _SSIZE_T
-+ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \
-+ !defined(_SSIZE_T) && !defined(_SSIZE_T_)
-+
- // 64-bit Windows is the only mainstream platform
- // where sizeof(long) != sizeof(void*)
- #ifdef _WIN64
-@@ -29,6 +30,14 @@ typedef long long ssize_t; /* byte count or error */
- #else
- typedef long ssize_t; /* byte count or error */
- #endif
-+
-+#define _SSIZE_T_DEFINED
-+#define _SSIZE_T_DEFINED_
-+#define __DEFINED_ssize_t
-+#define __ssize_t_defined
-+#define _SSIZE_T
-+#define _SSIZE_T_
-+
- #endif
-
- #ifndef MAX_PATH
diff --git a/testing/assimp/APKBUILD b/testing/assimp/APKBUILD
deleted file mode 100644
index 0fe910aa7a1..00000000000
--- a/testing/assimp/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor: Russ Webber <russ@rw.id.au>
-# Maintainer: Russ Webber <russ@rw.id.au>
-pkgname=assimp
-pkgver=5.0.0
-pkgrel=1
-pkgdesc="Open Asset Import Library imports and exports 3D model formats."
-url="http://www.assimp.org/"
-arch="all !s390x !mips !mips64" # fails to build on big-endian
-license="BSD-3-Clause"
-makedepends="cmake zlib-dev minizip-dev"
-subpackages="$pkgname-dev"
-source="assimp-$pkgver.tar.gz::https://github.com/assimp/assimp/archive/v$pkgver.tar.gz
- 01-rm-revision-test.patch
- 02-fix-ssize-32bit.patch"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
-
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DASSIMP_BUILD_TESTS=True \
- ${CMAKE_CROSSOPTS} .
- make
-}
-
-check() {
- cd "$builddir"/bin
- ./unit
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -vf "$pkgdir"/usr/lib/libIrrXML.a
-}
-
-sha512sums="0f73b6e961cd8455d6b6c8c10ed8b99485d846c96377b5d4fcc3b83f737647207c1306aa3dd51dad9654fbfa61bfe1119b34646f90288ae7ecab45efa6fa418a assimp-5.0.0.tar.gz
-535a80c5899a2994735e7b17b4e3fdb3ff2b53e64c09ec8fcab1dbcea2ad696fed50aeb1667a3c4e00a8a3ddf411d33ec1d36fcb256e26f02cf951f0e2c83a73 01-rm-revision-test.patch
-19a52d40887de945b74efe0f7e105a02eab306e6295d2d9b32f76bed9596c93ab954118df6e7afdafd2488e0e1feb666c734a8eb56e0edc34510efe3f8f99374 02-fix-ssize-32bit.patch"
diff --git a/testing/asteroid-alarmclock/APKBUILD b/testing/asteroid-alarmclock/APKBUILD
new file mode 100644
index 00000000000..709ba23d979
--- /dev/null
+++ b/testing/asteroid-alarmclock/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-alarmclock
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default alarm clock app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-alarmclock"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ libngf-qt
+ mapplauncherd
+ nemo-qml-plugin-alarms
+ nemo-qml-plugin-configuration
+ nemo-qml-plugin-time
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-alarmclock/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DSYSTEMD=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+fff0ea11474e857dc4dd875c33e65661f79c2a6af2a6094965dc32ce343919e6baeba9e4d235f3592ef4036f34d1005da0f6f99e75d4eba6617a1f48e9d4253b asteroid-alarmclock-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-btsyncd/APKBUILD b/testing/asteroid-btsyncd/APKBUILD
new file mode 100644
index 00000000000..7c3252c1b21
--- /dev/null
+++ b/testing/asteroid-btsyncd/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-btsyncd
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Bluetooth Low Energy synchronization daemon for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-btsyncd"
+# armhf blocked by nemo-qml-plugin-systemsettings
+arch="all !armhf"
+license="GPL-3.0-or-later"
+makedepends="
+ extra-cmake-modules
+ glibmm-dev
+ nemo-qml-plugin-systemsettings-dev
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qtmpris-dev
+ samurai
+ timed-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-btsyncd/archive/refs/tags/$pkgver.tar.gz
+ asteroid-btsyncd.desktop
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm644 "$srcdir"/asteroid-btsyncd.desktop -t "$pkgdir"/etc/xdg/autostart/
+}
+
+sha512sums="
+b0fba66730cde57260deefb53536004ddd5746c97a2c0adfdd0c28a66c05a0d910cf1d36c188c389ae90c9bf3f37943ea7024db5ee558e432770d72ef9f8c243 asteroid-btsyncd-2.0.0.tar.gz
+c6d1f3e1870c9bf0c65dc25961f58c3277149f6f7cc141bf0fd89ead191a1d9d72c3c414485f9b1b6407f066e51949b17be8eeb2473dcafb2e2bc5af1015b903 asteroid-btsyncd.desktop
+"
diff --git a/testing/asteroid-btsyncd/asteroid-btsyncd.desktop b/testing/asteroid-btsyncd/asteroid-btsyncd.desktop
new file mode 100644
index 00000000000..c4e2864b976
--- /dev/null
+++ b/testing/asteroid-btsyncd/asteroid-btsyncd.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=asteroid-btsyncd
+Comment=Start Asteroid Bluetooth Sync daemon
+Type=Application
+Exec=/usr/bin/asteroid-btsyncd
+TryExec=/usr/bin/asteroid-btsyncd
+Terminal=false
diff --git a/testing/asteroid-calculator/APKBUILD b/testing/asteroid-calculator/APKBUILD
new file mode 100644
index 00000000000..f92d658ec71
--- /dev/null
+++ b/testing/asteroid-calculator/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-calculator
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default calculator app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-calculator"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="mapplauncherd"
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-calculator/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7a115627715864a6261ef1c46b4c61777b8013abe82a904ebe7aab803d4f31d3115390fd5a9c834529eb738e01bce19872a91c117bb1f60df96c67609f448a24 asteroid-calculator-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-calendar/APKBUILD b/testing/asteroid-calendar/APKBUILD
new file mode 100644
index 00000000000..beb2e37506d
--- /dev/null
+++ b/testing/asteroid-calendar/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-calendar
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default calendar app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-calendar"
+# armhf blocked by nemo-qml-plugin-calendar
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ nemo-qml-plugin-calendar
+ nemo-qml-plugin-time
+ qt5-qtvirtualkeyboard
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-calendar/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+c4515928cef970c099a72fa468fa92fe213518946f46af1382e6b983ade66a9bebcc466a9dbf3842fb5f64704169ea0ca616734da30e6f3eaa256cf2ff8cdab0 asteroid-calendar-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-camera/APKBUILD b/testing/asteroid-camera/APKBUILD
new file mode 100644
index 00000000000..53ca2df14d6
--- /dev/null
+++ b/testing/asteroid-camera/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-camera
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default camera app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-camera"
+# armhf blocked by extra-cmake-modules
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="mapplauncherd"
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtmultimedia-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-camera/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1b09ea8fbb6d94d6b793ca83675cbd4282d07c5dc2ffabed025227e9a8a3072c187226c653c630aeb2d51721bcb71d69dbf67c9f4e2bb79f230f07e4bf260194 asteroid-camera-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-compass/APKBUILD b/testing/asteroid-compass/APKBUILD
new file mode 100644
index 00000000000..8fbdb35c208
--- /dev/null
+++ b/testing/asteroid-compass/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-compass
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default compass app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-compass"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ qt5-qtsensors
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-compass/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+b08e5b6a8b5102298e9ac511b088b926ac8a6e1230bf4643a86e759732015cc3f6dcb31d40f2481b55a76c098928d0da09501b1313c508c3670e36afb49707b4 asteroid-compass-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-diamonds/APKBUILD b/testing/asteroid-diamonds/APKBUILD
new file mode 100644
index 00000000000..d78522021c2
--- /dev/null
+++ b/testing/asteroid-diamonds/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-diamonds
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="A 2048-like game for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-diamonds"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="mapplauncherd"
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-diamonds/archive/refs/tags/$pkgver.tar.gz"
+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="
+534e0a7a66d96454acf1ac6e20ceb06d73f394b51b70f450a99f2991469127c48ddbbafcb912184d92ff9d91cfe091158ff8d9f003ce025bf4199561e079b014 asteroid-diamonds-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-flashlight/APKBUILD b/testing/asteroid-flashlight/APKBUILD
new file mode 100644
index 00000000000..fb2088efc19
--- /dev/null
+++ b/testing/asteroid-flashlight/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-flashlight
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default flashlight app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-flashlight"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ nemo-keepalive
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-flashlight/archive/refs/tags/$pkgver.tar.gz"
+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="
+002a9d3d75857c08f270a6cd273e10422059143f3cdcf616bbaee470708b9d8f620d683d9aa95b6b65b26cdc88547e10833aba9e89a98d735dbe5e3f037f3bf9 asteroid-flashlight-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-hrm/APKBUILD b/testing/asteroid-hrm/APKBUILD
new file mode 100644
index 00000000000..d0020d71cf5
--- /dev/null
+++ b/testing/asteroid-hrm/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-hrm
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default heart-rate-monitor app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-hrm"
+# armhf blocked by qt5-qtsensors
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ qt5-qtsensors
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-hrm/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+83a8d1bf9bde82d08111ee0a7bb51e9b3fc3613eceb0d6ce03ccc36add6187d5865fa2ca697450a60eb830ffd5e3a7c26c73a33d98c97df9a18db9f3f5a5b55e asteroid-hrm-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-icons-ion/APKBUILD b/testing/asteroid-icons-ion/APKBUILD
new file mode 100644
index 00000000000..1b26516c7e9
--- /dev/null
+++ b/testing/asteroid-icons-ion/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-icons-ion
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default set of icons of AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-icons-ion"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-icons-ion/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No code to test
+
+package() {
+ cd src
+ find . -type f | while read -r i; do
+ install -Dm644 $i "$pkgdir"/usr/share/icons/asteroid/$i
+ done
+}
+
+sha512sums="
+d8969d8b49079792b7a7f3f017762a70bdfc117e54c8057d6c06e1c36cd1158442f4e1054eca7798d6a1b2385bba12aede8c294f39afbfeb6d56946f6a2f2ba3 asteroid-icons-ion-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-languages/APKBUILD b/testing/asteroid-languages/APKBUILD
new file mode 100644
index 00000000000..9b0ca51f3c3
--- /dev/null
+++ b/testing/asteroid-languages/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=asteroid-languages
+pkgver=0_git20230112
+pkgrel=0
+_commit="162f8cffeae4af2ddfd8f74efd3e2f8a04d455a5"
+pkgdesc="Set of config files describing the languages that are available on AsteroidOS"
+url="https://github.com/AsteroidOS/supported-languages"
+# armhf blocked by nemo-qml-plugin-calendar
+arch="noarch"
+license="CC0-1.0"
+source="$pkgname-$_commit.tar.gz::https://github.com/AsteroidOS/supported-languages/archive/$_commit/supported-languages-$_commit.tar.gz
+ "
+options="!check" # No code to test
+builddir="$srcdir/supported-languages-$_commit"
+
+package() {
+ echo $PWD
+ find . -type f -name "*.conf" | while read -r i; do
+ echo $i
+ install -Dm644 $i "$pkgdir"/usr/share/jolla-supported-languages/$i
+ done
+}
+
+sha512sums="
+9dd3bfd6990532d2a41564d8fe47e2f7b04f88799e0723d8c90addaca44d593c2a93dfa919ff3fe1a34bdc9f2b6d6b2c94ac0e0e832e499c52ad9fcfe09452b0 asteroid-languages-162f8cffeae4af2ddfd8f74efd3e2f8a04d455a5.tar.gz
+"
diff --git a/testing/asteroid-launcher/APKBUILD b/testing/asteroid-launcher/APKBUILD
new file mode 100644
index 00000000000..3d6b98f36d9
--- /dev/null
+++ b/testing/asteroid-launcher/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-launcher
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="AsteroidOS launcher and Wayland compositor based on Qt5, QML and QtWayland via Lipstick"
+url="https://github.com/AsteroidOS/asteroid-launcher"
+# armhf blocked by nemo-qml-plugin-calendar
+arch="all !armhf"
+license="BSD-3-Clause AND MIT"
+depends="
+ asteroid-icons-ion
+ asteroid-languages
+ asteroid-wallpapers
+ lipstick-asteroidos
+ mce
+ nemo-qml-plugin-calendar
+ nemo-qml-plugin-configuration
+ nemo-qml-plugin-systemsettings
+ nemo-qml-plugin-time
+ qt5-qtgraphicaleffects
+ "
+# Normally we shouldn't hard depend on fonts, but in this case these fonts are
+# hardcoded for some supported watchfaces
+depends="$depends
+ font-noto-emoji
+ font-opensans
+ font-raleway-otf
+ font-roboto
+ "
+makedepends="
+ extra-cmake-modules
+ lipstick-asteroidos-dev
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ samurai
+ "
+subpackages="$pkgname-dbg"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-launcher/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -dm755 "$pkgdir"/usr/share/translations
+ lrelease-qt5 -idbased i18n/asteroid-launcher.*.ts
+ cp i18n/asteroid-launcher.*.qm "$pkgdir"/usr/share/translations/
+}
+
+sha512sums="
+67b3c9ad5842e64036b4ac7f459258c7264a356bef6b13a72078523e808ddae815d47724ed2ad2c10bb4d3c06a756628dcb83d7f7d6021ba86caede0ce5340c8 asteroid-launcher-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-music/APKBUILD b/testing/asteroid-music/APKBUILD
new file mode 100644
index 00000000000..af7cdb8cdc5
--- /dev/null
+++ b/testing/asteroid-music/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-music
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default music app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-music"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="mapplauncherd"
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-music/archive/refs/tags/$pkgver.tar.gz"
+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="
+aafc8a7d0fbec29f2a2008a28fb7dfffca9699ddbca346fe65c83e770c3f279e0723ec75074ed2c238de5ebfbd47b887f5e49998bee63500be7a211b0b1f6ba9 asteroid-music-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-settings/APKBUILD b/testing/asteroid-settings/APKBUILD
new file mode 100644
index 00000000000..877a1de9ae7
--- /dev/null
+++ b/testing/asteroid-settings/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-settings
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default settings app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-settings"
+# armhf blocked by nemo-qml-plugin-systemsettings
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ mce
+ nemo-qml-plugin-configuration
+ nemo-qml-plugin-systemsettings
+ nemo-qml-plugin-time
+ "
+makedepends="
+ dbus-dev
+ dbus-glib-dev
+ extra-cmake-modules
+ mce-dev
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtmultimedia-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-settings/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+90ea5c3d13926b53d021d623b0816e65bdb4c18e8ab12c69dd502c5dfc113306bd2cab94e49e4d993d642e4c02e89878b5f02234cd5b616d595e6ab6aaeefa31 asteroid-settings-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-stopwatch/APKBUILD b/testing/asteroid-stopwatch/APKBUILD
new file mode 100644
index 00000000000..0d0fd381595
--- /dev/null
+++ b/testing/asteroid-stopwatch/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-stopwatch
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default stopwatch app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-stopwatch"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="mapplauncherd"
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-stopwatch/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7bb3fc9b9853bdd226f9ada224337a8b9acc1a0ddcb235a84cbf09822ee97f976e75316a3011fbc416c3f61ba01dec7e1c2177956fa82efca01df04059559f53 asteroid-stopwatch-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-timer/APKBUILD b/testing/asteroid-timer/APKBUILD
new file mode 100644
index 00000000000..4bd71602b72
--- /dev/null
+++ b/testing/asteroid-timer/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-timer
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default timer app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-timer"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ nemo-qml-plugin-alarms
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-timer/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a4cc9b0702ce9fe7e7465d24ee6f7714444f35f56dfcc20de17aef3db564fc2eaf84ee02d9e1abad76532feffbe3772b9e8efc9b0abf2dcc9fa314e9a17e7b35 asteroid-timer-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-wallpapers/APKBUILD b/testing/asteroid-wallpapers/APKBUILD
new file mode 100644
index 00000000000..778b7603d38
--- /dev/null
+++ b/testing/asteroid-wallpapers/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-wallpapers
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default set of wallpapers for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-wallpapers"
+arch="noarch"
+license="CC0-1.0 AND CC-BY-2.0 AND CC-BY-NC-SA-2.0"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-wallpapers/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No code to test
+
+package() {
+ install -dm755 "$pkgdir"/usr/share/asteroid-launcher/wallpapers
+ find . -mindepth 1 -maxdepth 1 -type d -not -empty -not -name ".*" | while read -r i; do
+ cp -R "$i" "$pkgdir"/usr/share/asteroid-launcher/wallpapers/
+ done
+}
+
+sha512sums="
+6acfbb74f7620abfa57acb72f3f044ccec082beb1fb5111bba9256201088ca68d20c1f838c7fda8495afc5462813a07461aff09099129190ad3d11cd84451932 asteroid-wallpapers-2.0.0.tar.gz
+"
diff --git a/testing/asteroid-weather/APKBUILD b/testing/asteroid-weather/APKBUILD
new file mode 100644
index 00000000000..0a5e998f1fe
--- /dev/null
+++ b/testing/asteroid-weather/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=asteroid-weather
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Default weather app for AsteroidOS"
+url="https://github.com/AsteroidOS/asteroid-weather"
+# armhf blocked by qml-asteroid
+arch="all !armhf"
+license="GPL-3.0-or-later"
+depends="
+ mapplauncherd
+ nemo-qml-plugin-configuration
+ "
+makedepends="
+ extra-cmake-modules
+ qml-asteroid-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/asteroid-weather/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+689890839110b96850d600ed1edfa501ceddbb4b892bc151cb6460274ca5255b0d96032c61a6440c063f87307942da5f0b68b0d7e04d23bb5e4df2b0af7f2598 asteroid-weather-2.0.0.tar.gz
+"
diff --git a/testing/asymptote/APKBUILD b/testing/asymptote/APKBUILD
index f8d71d3f97b..a7e631f70cb 100644
--- a/testing/asymptote/APKBUILD
+++ b/testing/asymptote/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: Julian Weigt <juw@posteo.de>
# Maintainer: Julian Weigt <juw@posteo.de>
pkgname=asymptote
-pkgver=2.65
+pkgver=2.86
pkgrel=0
pkgdesc="A vector graphics language for technical drawing"
-url="http://asymptote.sourceforge.net/"
-arch="all !mips64" # blocked by texlive
+url="https://asymptote.sourceforge.net/"
+arch="all !ppc64le !s390x !riscv64" #blocked by texlive
license="GPL-3.0-only"
depends="texlive texlive-dvi ghostscript"
### Optional dependencies
@@ -13,9 +13,11 @@ depends="texlive texlive-dvi ghostscript"
# fftw for fourier transform of data
# numpy pyqt5 cson and librsvg for GUI program xasy. I could not find cson for alpine though.
# freeglut for openGL support
-makedepends="zlib-dev texinfo autoconf"
+makedepends="zlib-dev texinfo autoconf bison flex texmf-dist-latexextra"
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/sourceforge/asymptote/asymptote-$pkgver.src.tgz"
+source="https://downloads.sourceforge.net/sourceforge/asymptote/asymptote-$pkgver.src.tgz
+ fix-nullopt-not-declared.patch
+ "
prepare() {
default_prepare
@@ -32,7 +34,6 @@ build() {
--disable-gc
make asy
-
#-j1 is needed for building documentation with pdflatex due to probably race conditions
make -j1 all
}
@@ -49,4 +50,7 @@ package() {
make -j1 DESTDIR="$pkgdir" install-all
}
-sha512sums="c6879689192c1646a318b389de222accc55c8d5e9df17fab3c88c37f627d2cff8133cdefe9e6dec2784cf72edf261e557ad83f7fac6e67fd49c483e9d8971026 asymptote-2.65.src.tgz"
+sha512sums="
+9e11dbfca10379f07b50dcce0d63c12b793f47741651b1804cf0825e87604c40b5b94acf343ce7f5ca7da83b5ebb0e213090ada80e0b6ebe4f6cec9db67209d6 asymptote-2.86.src.tgz
+54bb8b5d71d5ad663da60f4be9b725a9f00cdaf8dd68326a696683269b3bdcb07ba885d6347643c67159a7a38ec7b3196e7c1617fe99d41a4a1a62b135861fce fix-nullopt-not-declared.patch
+"
diff --git a/testing/asymptote/fix-nullopt-not-declared.patch b/testing/asymptote/fix-nullopt-not-declared.patch
new file mode 100644
index 00000000000..a1e0ddefce4
--- /dev/null
+++ b/testing/asymptote/fix-nullopt-not-declared.patch
@@ -0,0 +1,14 @@
+--- a/common.h
++++ b/common.h
+@@ -38,6 +38,11 @@
+ using nonstd::optional;
+ using nonstd::nullopt;
+ using nonstd::make_optional;
++#else
++#include <optional>
++using std::optional;
++using std::nullopt;
++using std::make_optional;
+ #endif
+ #endif
+
diff --git a/testing/async-profiler/APKBUILD b/testing/async-profiler/APKBUILD
deleted file mode 100644
index 985f068447b..00000000000
--- a/testing/async-profiler/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Andrey Pustovetov <andrey.pustovetov@gmail.com>
-# Maintainer: Andrey Pustovetov <andrey.pustovetov@gmail.com>
-pkgname=async-profiler
-pkgver=1.5
-pkgrel=0
-pkgdesc="Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events"
-url="https://github.com/jvm-profiling-tools/async-profiler"
-arch="x86 x86_64"
-license="Apache-2.0"
-depends="bash"
-makedepends="linux-headers openjdk8"
-checkdepends="openjdk8-dbg"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jvm-profiling-tools/async-profiler/archive/v$pkgver.tar.gz
- thread-smoke-test_should_do_some_real_work.patch
- "
-
-build() {
- make
-}
-
-check() {
- # exclude tests depended to modify /proc/sys/kernel/perf_event_paranoid
- JAVA_HOME="/usr/lib/jvm/default-jvm" \
- test/alloc-smoke-test.sh
- echo "All tests passed"
-}
-
-package() {
- local homedir="/usr/share/$pkgname"
- local destdir="$pkgdir/$homedir"
- mkdir -p "$destdir"
- install -Dm0644 "$builddir"/build/libasyncProfiler.so "$destdir"/build/libasyncProfiler.so
- install -Dm0755 "$builddir"/build/jattach "$destdir"/build/jattach
- install -Dm0755 "$builddir"/profiler.sh "$destdir"/profiler.sh
- mkdir -p "$pkgdir"/usr/bin
- ln -sf "$homedir"/profiler.sh "$pkgdir"/usr/bin/profiler.sh
-}
-
-sha512sums="a127f6c676e2f06c2690ea04da660e36a5c127dc22b9f2edec801bd1829bcd3fb608572a8e38fcfa1e27067da27b16f77d2cb1fa7848e6afdf4bdda361f47e86 async-profiler-1.5.tar.gz
-180d5a4231eab62399888491ae80338f38f0ebbfbd1157bea2d58bfc1f6c344d9ba144aa87deb11c2143a9df5dd21531fdcf98f2d5d9ce8f715e8caeb2b2ac2e thread-smoke-test_should_do_some_real_work.patch"
diff --git a/testing/async-profiler/thread-smoke-test_should_do_some_real_work.patch b/testing/async-profiler/thread-smoke-test_should_do_some_real_work.patch
deleted file mode 100644
index 3f0e4e83aaf..00000000000
--- a/testing/async-profiler/thread-smoke-test_should_do_some_real_work.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/test/ThreadsTarget.java b/test/ThreadsTarget.java
-index cc6289c..89b2ba9 100644
---- a/test/ThreadsTarget.java
-+++ b/test/ThreadsTarget.java
-@@ -1,3 +1,5 @@
-+import java.math.BigInteger;
-+
- public class ThreadsTarget {
- public static void main(String[] args) {
- new Thread(new Runnable() {
-@@ -17,17 +19,17 @@ public class ThreadsTarget {
-
- static void methodForThreadEarlyEnd() {
- long now = System.currentTimeMillis();
-- long counter = 0;
-+ BigInteger counter = BigInteger.ZERO;
- while (System.currentTimeMillis() - now < 300) {
-- counter++;
-+ counter = counter.nextProbablePrime();
- }
- }
-
- static void methodForRenamedThread() {
- long now = System.currentTimeMillis();
-- long counter = 0;
-+ BigInteger counter = BigInteger.ZERO;
- while (System.currentTimeMillis() - now < 1000) {
-- counter++;
-+ counter = counter.nextProbablePrime();
- }
- }
- }
diff --git a/testing/atari800/APKBUILD b/testing/atari800/APKBUILD
index 4d8b3273fad..088b6a4798b 100644
--- a/testing/atari800/APKBUILD
+++ b/testing/atari800/APKBUILD
@@ -1,22 +1,21 @@
# Contributor: Paul Bredbury <brebs@sent.com>
+# Maintainer:
pkgname=atari800
-pkgver=4.1.0
+pkgver=5.2.0
pkgrel=0
pkgdesc="Atari 8-bit computer emulator"
url="https://atari800.github.io/"
arch="x86_64"
license="GPL-2.0-or-later"
-makedepends="autoconf automake sdl-dev mesa-dev unzip"
+makedepends="autoconf automake sdl12-compat-dev mesa-dev unzip"
options="!check" # No test suite
subpackages="$pkgname-doc"
-source="https://github.com/atari800/atari800/archive/ATARI800_${pkgver//./_}.tar.gz
- onscreenkeyboard.patch::https://github.com/atari800/atari800/commit/5c6410cca5accc9540e461d312e9becf64a67baa.patch
- "
+source="https://github.com/atari800/atari800/archive/ATARI800_${pkgver//./_}.tar.gz"
builddir="$srcdir/atari800-ATARI800_${pkgver//./_}"
prepare() {
default_prepare
- autoreconf -fi
+ ./autogen.sh
}
build() {
@@ -28,5 +27,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="a93ff5380d1e5fcdaf1e88eb63e89f4b2228314836dc71d1591ec2699cad9f775d2ea47b46b4be2620a0b65ed7b1b4c019715d647ddda94155c96770defed23c ATARI800_4_1_0.tar.gz
-84c666a4d594b4d195a170db511f029bc0c0ef8bddf8c74847599b7b2ce168bc9bdd7960b9c7b6301a64cb00793ff3f5f79293d159cb54869f977a4cdff345f4 onscreenkeyboard.patch"
+sha512sums="
+adcd19343c59771724f71d25d9c163843d953140696830e72520392519122f9b6b74cb8ceabf91618afc1cbdd30739342320f934ef63390a0c680243d9eac015 ATARI800_5_2_0.tar.gz
+"
diff --git a/testing/atinout/0001-make-gcc-happy-by-adding-fallthrough-comment.patch b/testing/atinout/0001-make-gcc-happy-by-adding-fallthrough-comment.patch
deleted file mode 100644
index ce7800fe0b9..00000000000
--- a/testing/atinout/0001-make-gcc-happy-by-adding-fallthrough-comment.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ca2e04f8b069d269172f0d55d3716a809537f696 Mon Sep 17 00:00:00 2001
-From: Beralt Meppelink <b.meppelink@riwo.eu>
-Date: Fri, 27 Oct 2017 09:12:18 +0200
-Subject: [PATCH 1/2] make gcc happy by adding fallthrough comment
-
----
- atinout.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/atinout.c b/atinout.c
-index d04f300..924b5bc 100644
---- a/atinout.c
-+++ b/atinout.c
-@@ -150,7 +150,7 @@ static bool is_final_result(const char * const response)
- if (strcmp(&response[1], "K\r\n") == 0) {
- return true;
- }
-- /* no break */
-+ // fallthrough
- default:
- return false;
- }
---
-2.23.0
-
diff --git a/testing/atinout/0002-do-not-rely-on-CR-in-modem-output.patch b/testing/atinout/0002-do-not-rely-on-CR-in-modem-output.patch
deleted file mode 100644
index 593dc853812..00000000000
--- a/testing/atinout/0002-do-not-rely-on-CR-in-modem-output.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 65dae46181119867cd8e93ca5b33d3b0cf3df08c Mon Sep 17 00:00:00 2001
-From: Beralt Meppelink <b.meppelink@riwo.eu>
-Date: Fri, 27 Oct 2017 10:42:50 +0200
-Subject: [PATCH 2/2] do not rely on CR in modem output
-
----
- atinout.c | 24 +++++++++++-------------
- 1 file changed, 11 insertions(+), 13 deletions(-)
-
-diff --git a/atinout.c b/atinout.c
-index 924b5bc..4cd7689 100644
---- a/atinout.c
-+++ b/atinout.c
-@@ -34,7 +34,6 @@
-
- #define MAX_LINE_LENGTH (4 * 1024)
- static char buf[MAX_LINE_LENGTH];
--static char buf2[MAX_LINE_LENGTH];
-
- static struct option long_options[] = {
- {"help", no_argument, NULL, 'h'},
-@@ -125,36 +124,36 @@ static bool is_final_result(const char * const response)
- }
- return false;
- case 'B':
-- if (strcmp(&response[1], "USY\r\n") == 0) {
-+ if (strcmp(&response[1], "USY\n") == 0) {
- return true;
-- }
-+ }
-+
- return false;
-
- case 'E':
-- if (strcmp(&response[1], "RROR\r\n") == 0) {
-+ if (strcmp(&response[1], "RROR\n") == 0) {
- return true;
- }
- return false;
- case 'N':
-- if (strcmp(&response[1], "O ANSWER\r\n") == 0) {
-+ if (strcmp(&response[1], "O ANSWER\n") == 0) {
- return true;
- }
-- if (strcmp(&response[1], "O CARRIER\r\n") == 0) {
-+ if (strcmp(&response[1], "O CARRIER\n") == 0) {
- return true;
- }
-- if (strcmp(&response[1], "O DIALTONE\r\n") == 0) {
-+ if (strcmp(&response[1], "O DIALTONE\n") == 0) {
- return true;
- }
- return false;
- case 'O':
-- if (strcmp(&response[1], "K\r\n") == 0) {
-+ if (strcmp(&response[1], "K\n") == 0) {
- return true;
- }
- // fallthrough
- default:
- return false;
- }
--
- }
-
- int main(int argc, char *argv[])
-@@ -248,11 +247,10 @@ int main(int argc, char *argv[])
- fprintf(stderr, "EOF from modem\n");
- return EXIT_FAILURE;
- }
-- strcpy(buf2, line);
-- strip_cr(buf2);
-- res = fputs(buf2, output);
-+ strip_cr(line);
-+ res = fputs(line, output);
- if (res < 0) {
-- fprintf(stderr, "failed to write '%s' to output file (res = %d)\n", buf2, res);
-+ fprintf(stderr, "failed to write '%s' to output file (res = %d)\n", line, res);
- return EXIT_FAILURE;
- }
- } while (! is_final_result(line));
---
-2.23.0
-
diff --git a/testing/atinout/APKBUILD b/testing/atinout/APKBUILD
deleted file mode 100644
index 111b096c879..00000000000
--- a/testing/atinout/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname="atinout"
-pkgver=0.9.1
-pkgrel=0
-pkgdesc="AT commands as input are sent to modem and responses given as output"
-url="http://atinout.sourceforge.net/index.html"
-arch="all"
-license="GPL-3.0-or-later"
-subpackages="$pkgname-doc"
-source="https://netcologne.dl.sourceforge.net/project/atinout/v$pkgver/atinout-$pkgver.tar.gz
- 0001-make-gcc-happy-by-adding-fallthrough-comment.patch
- 0002-do-not-rely-on-CR-in-modem-output.patch"
-options="!check" # No test suite
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="ae25b2c4f3e2a9b861a7fc7d8e469d0d9d7a230281266393ce8547abca7e2368a709db3293ca31c00d5599b1de12ae9c8cd2bc0beefce53fa30012b6a2d7764b atinout-0.9.1.tar.gz
-429de947dfeca56bd9a02f23aef69a458d3f1a8d9f2a8a02d298fed8f1379b703f88ec0ef6642d2cc36e8abed466f169ba5f3ca22795691bfcfd5b6a1168038d 0001-make-gcc-happy-by-adding-fallthrough-comment.patch
-e6afa0e6724fa80299f766a94f53f9d71b1787653ed1de0ce65c6294a0cc5044da4da0b45a2b4009851aa6b752bbb5021ddae1dccf845ce69ad4fed96d9792a5 0002-do-not-rely-on-CR-in-modem-output.patch"
diff --git a/testing/atlantik/APKBUILD b/testing/atlantik/APKBUILD
new file mode 100644
index 00000000000..155ca08cade
--- /dev/null
+++ b/testing/atlantik/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: team/kde <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=kde-other
+pkgname=atlantik
+# 3.5.10 is 15 years old but the latest commit is actually modern and even updated to Qt6
+pkgver=3.5.10_git20240323
+pkgrel=0
+_commit="6e505f9cd605b1055da3f0ed5d7996968b7d8280"
+# armhf blocked by extra-cmake-modules
+arch="all !armhf"
+url="https://apps.kde.org/atlantik/"
+pkgdesc="KDE client for playing Monopoly-like games on the monopd network"
+license="GPL-2.0-or-later AND GFDL-1.2-only"
+makedepends="
+ extra-cmake-modules
+ kconfig-dev
+ kconfigwidgets-dev
+ kcoreaddons-dev
+ kcrash-dev
+ kdoctools-dev
+ ki18n-dev
+ kiconthemes-dev
+ knotifications-dev
+ knotifyconfig-dev
+ kwidgetsaddons-dev
+ kxmlgui-dev
+ libkdegames-dev
+ qt6-qtbase-dev
+ samurai
+ "
+_repo_url="https://invent.kde.org/games/atlantik.git"
+source="$pkgname-$_commit.tar.gz::https://invent.kde.org/games/atlantik/-/archive/$_commit/atlantik-$_commit.tar.gz"
+subpackages="$pkgname-doc $pkgname-lang"
+options="!check" # No tests
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+04b3ced08973b6af14b2427cf9abd2edf2a4b56d01aa1b0c959d1afaba4814ad2db9a56a72476076e9b9931af29b96ed3e68117164a22a5dabf25166ce3fc55f atlantik-6e505f9cd605b1055da3f0ed5d7996968b7d8280.tar.gz
+"
diff --git a/testing/atlas/APKBUILD b/testing/atlas/APKBUILD
new file mode 100644
index 00000000000..d96c978d335
--- /dev/null
+++ b/testing/atlas/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=atlas
+pkgver=0.19.0
+pkgrel=2
+pkgdesc="Database schema migration tool using modern DevOps principles"
+url="https://atlasgo.io/"
+# x86, armhf, armv7: multiple packages fail to build on 32-bit platforms due to integer overflow
+# riscv64: github.com/remyoudompheng/bigfft fails to build
+arch="all !x86 !armhf !armv7 !riscv64"
+license="Apache-2.0"
+makedepends="go sqlite-dev"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/ariga/atlas/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver/cmd/atlas"
+options="net" # download Go modules
+
+export CGO_ENABLED=1 # required for sqlite driver
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o atlas \
+ -ldflags "-X ariga.io/atlas/cmd/atlas/internal/cmdapi.version=v$pkgver"
+
+ for shell in bash fish zsh; do
+ ./atlas completion $shell > atlas.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 atlas -t "$pkgdir"/usr/bin/
+
+ install -Dm644 atlas.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/atlas
+ install -Dm644 atlas.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/atlas.fish
+ install -Dm644 atlas.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_atlas
+}
+
+sha512sums="
+c24f18b98037892c20e0cadd4187819ce5a19679b132b6e81ac2d218bf3b3d845c79d17ea0d5f51e090fb72f6caf7ccd25c240040f9c32ce82c543a439668141 atlas-0.19.0.tar.gz
+"
diff --git a/testing/atomicparsley/APKBUILD b/testing/atomicparsley/APKBUILD
index b26dd2257ee..8229348529d 100644
--- a/testing/atomicparsley/APKBUILD
+++ b/testing/atomicparsley/APKBUILD
@@ -1,36 +1,31 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=atomicparsley
-pkgver=0.9.6
-_gittag=da2f6e4fc120
+pkgver=20221229
+_pkgtag=172126.d813aa6
pkgrel=1
pkgdesc="A command line program for reading, parsing and setting iTunes-style metadata in MPEG4 files"
-url="http://atomicparsley.sourceforge.net/"
+url="https://atomicparsley.sourceforge.net/"
arch="all"
+options="!check" # no test/check available
license="GPL-2.0-or-later"
-makedepends="automake autoconf libtool zlib-dev linux-headers"
-source="$pkgname-$pkgver.tar.gz::https://bitbucket.org/wez/atomicparsley/get/$pkgver.tar.gz
- musl-fpos_t.patch
- "
-builddir="$srcdir/wez-$pkgname-$_gittag"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
+makedepends="cmake samurai zlib-dev linux-headers"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wez/atomicparsley/archive/$pkgver.$_pkgtag.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver.$_pkgtag"
build() {
- ./configure --prefix=/usr
- make
-}
-
-check() {
- make check
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ # install -Dm755 AtomicParsley "$pkgdir"/usr/bin/AtomicParsley
+ ln -s AtomicParsley "$pkgdir"/usr/bin/$pkgname
}
-sha512sums="8bf7982dd34b8b38a08508229ae877144149ac0d9feb97e52dac9606a37de570751e4e4b154baa4beb2ce7236297164f3edb42bb8a6c493a624db531cc4de1d2 atomicparsley-0.9.6.tar.gz
-5f0803437116672ff011c428137c3217571b31b01af11f8689ceb77f96284fb2c8fce7c719d30a396d0367bed38b8c9a32330df5651e401ac7be11591baaf609 musl-fpos_t.patch"
+sha512sums="
+eb6de26f71a977cf4512f0d4249c3e0ae9225b5aef42a4bbdaaa54b022985f277095b7019c741a26078d26fba07e8dea7bf117017d0ef43d630751873e6b4899 atomicparsley-20221229.tar.gz
+"
diff --git a/testing/atomicparsley/musl-fpos_t.patch b/testing/atomicparsley/musl-fpos_t.patch
deleted file mode 100644
index 35bd8a8f797..00000000000
--- a/testing/atomicparsley/musl-fpos_t.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/parsley.cpp b/src/parsley.cpp
-index 3031711..8a4a7a1 100644
---- a/src/parsley.cpp
-+++ b/src/parsley.cpp
-@@ -4388,7 +4388,8 @@ void APar_MergeTempFile(FILE* dest_file, FILE *src_file, uint64_t src_file_size,
- fpos_t file_offset = {0};
- file_offset.__pos = dest_position + file_pos;
- #else
-- off_t file_offset = dest_position + file_pos;
-+ fpos_t file_offset = {0};
-+ *(uint64_t*) &file_offset = dest_position + file_pos;
- #endif
- fsetpos(dest_file, &file_offset);
- fwrite(buffer, max_buffer, 1, dest_file);
-@@ -4403,7 +4404,8 @@ void APar_MergeTempFile(FILE* dest_file, FILE *src_file, uint64_t src_file_size,
- fpos_t file_offset = {0};
- file_offset.__pos = dest_position + file_pos;
- #else
-- off_t file_offset = dest_position + file_pos;
-+ fpos_t file_offset = {0};
-+ *(uint64_t*) &file_offset = dest_position + file_pos;
- #endif
- fsetpos(dest_file, &file_offset );
- fwrite(buffer, src_file_size - file_pos, 1, dest_file);
diff --git a/testing/atool/APKBUILD b/testing/atool/APKBUILD
index bab33ba7878..235fd73ee51 100644
--- a/testing/atool/APKBUILD
+++ b/testing/atool/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Camille Scholtz <onodera@openmailbox.org>
pkgname=atool
pkgver=0.39.0
-pkgrel=3
+pkgrel=4
pkgdesc="a Perl script for managing file archives of various types"
options="!check" # No testsuite
url="https://nongnu.org/atool/"
diff --git a/testing/aubio/APKBUILD b/testing/aubio/APKBUILD
deleted file mode 100644
index 11edf3e2ad6..00000000000
--- a/testing/aubio/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=aubio
-pkgver=0.4.8
-pkgrel=0
-pkgdesc="tool designed for the extraction of annotations from audio signals"
-url="https://aubio.org"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="ffmpeg-dev
- fftw-dev
- jack-dev
- libsamplerate-dev
- libsndfile-dev
- python3"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://aubio.org/pub/aubio-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- python3 waf configure --prefix=/usr
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="e58b32beda36865a5243ec7ed4647cf96e3652a25fd319fc697c08f93487f895070dc66b830700b40b879220c2e3a53b8cdc255ce2e34770ba5e34b36a4f51b4 aubio-0.4.8.tar.bz2"
diff --git a/testing/aufs-util/APKBUILD b/testing/aufs-util/APKBUILD
index d8380c03e79..911e7d46d37 100644
--- a/testing/aufs-util/APKBUILD
+++ b/testing/aufs-util/APKBUILD
@@ -1,9 +1,9 @@
-# Maintainer: Natanael Copa <ncopa@alpinleinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=aufs-util
pkgver=20161219
-pkgrel=0
+pkgrel=2
pkgdesc="Utilities for aufs"
-url="http://aufs.sourceforge.net/"
+url="https://aufs.sourceforge.net/"
arch="all"
license="GPL-2.0"
depends=""
diff --git a/testing/ausweisapp2/APKBUILD b/testing/ausweisapp2/APKBUILD
deleted file mode 100644
index 60923c593e5..00000000000
--- a/testing/ausweisapp2/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: André Klitzing <aklitzing@gmail.com>
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=ausweisapp2
-pkgver=1.20.0
-pkgrel=1
-pkgdesc="Official authentication app for German ID card and residence permit"
-url="https://www.ausweisapp.bund.de/"
-arch="all !armhf" # missing qt5-qtquickcontrols2
-license="EUPL-1.2"
-depends="pcsc-lite pcsc-cyberjack ccid acsccid"
-makedepends="cmake pkgconf pcsc-lite-dev http-parser-dev openssl-dev
- qt5-qtbase-dev qt5-qtsvg-dev qt5-qtwebsockets-dev qt5-qttools-dev
- qt5-qtdeclarative-dev qt5-qtquickcontrols2-dev"
-source="https://github.com/Governikus/AusweisApp2/releases/download/$pkgver/AusweisApp2-$pkgver.tar.gz"
-options="!check" # no upstream tests in release build
-builddir="$srcdir/AusweisApp2-$pkgver"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- $CMAKE_CROSSOPTS .
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-sha512sums="9fe83d59a02e8ae89dae9264a94b3d1bd943b6d4843dd8a833e9bb65a0d98c6d78f7c7b69f5cae74f013b84bf580228e1a9805f8deb8fcfc33f002f73e61d4ee AusweisApp2-1.20.0.tar.gz"
diff --git a/testing/authenticator-rs/APKBUILD b/testing/authenticator-rs/APKBUILD
new file mode 100644
index 00000000000..9493886e94e
--- /dev/null
+++ b/testing/authenticator-rs/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: 3nodeproblem <git@3n.anonaddy.com>
+# Maintainer: 3nodeproblem <git@3n.anonaddy.com>
+pkgname=authenticator-rs
+pkgver=0.7.5
+pkgrel=0
+pkgdesc="TOTP MFA/2FA application written in Rust and GTK3"
+url="https://github.com/grumlimited/authenticator-rs"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust and cargo
+license="GPL-3.0-or-later"
+subpackages="$pkgname-lang"
+makedepends="
+ cargo
+ curl-dev
+ gtk+3.0-dev
+ meson
+ openssl-dev>3
+ sqlite-dev
+ zlib-dev
+ "
+source="https://github.com/grumlimited/authenticator-rs/archive/refs/tags/$pkgver/authenticator-rs-$pkgver.tar.gz"
+options="net !check" # No tests
+
+# size optimisations
+
+
+build() {
+ RELEASE_VERSION=$pkgver make release-version
+ make release
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+}
+
+sha512sums="
+08f5362b4dc8deb8ed27caf08c2729dcdbf043382404d1e11f3d69e2862852246ea0d97e242e1c65363e05d83069c6a623e47fdc7dfce5d8623e39e5554faf31 authenticator-rs-0.7.5.tar.gz
+"
diff --git a/testing/autobrr/APKBUILD b/testing/autobrr/APKBUILD
new file mode 100644
index 00000000000..500b99599ee
--- /dev/null
+++ b/testing/autobrr/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=autobrr
+pkgver=1.40.1
+pkgrel=1
+pkgdesc="The modern download automation tool for torrents"
+url="https://autobrr.com/"
+arch="x86_64 aarch64 armv7"
+license="GPL-2.0-or-later"
+options="net"
+makedepends="go pnpm"
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/autobrr/autobrr/archive/v$pkgver.tar.gz
+ autobrr.initd
+ autobrr.confd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+
+ pnpm --dir web install --frozen-lockfile --ignore-scripts
+ go mod download
+}
+
+build() {
+ local ldflags="
+ -X main.version=v$pkgver
+ -X main.commit=alpine-r$pkgrel
+ -X main.date=$(date -u "+%Y-%m-%dT%H:%M:%SZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+
+ pnpm --dir web run build
+ mkdir -p bin
+ go build -ldflags "$ldflags" -o bin/ ./cmd/...
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 ./bin/* -t "$pkgdir"/usr/bin
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+13f7cb9e03ed93410edf46baf940b221f1323a0ac1576e28f68d57d384c88779e35f1fe0e505bbc7bfd62a68f2319cf39ae2147acec9845853b623bef7941118 autobrr-1.40.1.tar.gz
+42ce693eca67ca8b4c863440ebfb3efb41c197302274ccecd1b080c3e1f01e03078ab46b2fae8ca6cf5add4153296adb10e324b02dbe89c939465305be49f760 autobrr.initd
+4072cabb7131a23283b1fecdd1370eb935ae156284972a5e503de36054a358f74112a40e200662386e85af51507213e3f25afdf343a2673e6ef372b7b5e04a80 autobrr.confd
+"
diff --git a/testing/autobrr/autobrr.confd b/testing/autobrr/autobrr.confd
new file mode 100644
index 00000000000..c749918fce1
--- /dev/null
+++ b/testing/autobrr/autobrr.confd
@@ -0,0 +1,9 @@
+# autobrr configuration options
+
+command_user="autobrr:autobrr" # user:group
+directory="/var/lib/autobrr"
+supervisor="supervise-daemon"
+logdir="/var/log/autobrr"
+
+# Environment variables overrides the config file
+export AUTOBRR__LOG_PATH="$logdir/output.log"
diff --git a/testing/autobrr/autobrr.initd b/testing/autobrr/autobrr.initd
new file mode 100644
index 00000000000..812e0a3bb29
--- /dev/null
+++ b/testing/autobrr/autobrr.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/autobrr
+: ${command_user:=autobrr:autobrr}
+: ${directory:=/var/lib/autobrr}
+: ${logdir:=/var/log/autobrr}
+
+name=autobrr
+description="autobrr daemon"
+command="/usr/bin/autobrr"
+command_args="--config=$directory"
+command_background=true
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ use dns logger
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory" "$logdir"
+}
diff --git a/testing/autobrr/autobrr.pre-install b/testing/autobrr/autobrr.pre-install
new file mode 100644
index 00000000000..e58322718e8
--- /dev/null
+++ b/testing/autobrr/autobrr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S autobrr 2>/dev/null
+adduser -S -D -h /var/lib/autobrr -s /sbin/nologin -G autobrr -g autobrr autobrr 2>/dev/null
+
+exit 0
diff --git a/testing/autoconf-policy/APKBUILD b/testing/autoconf-policy/APKBUILD
new file mode 100644
index 00000000000..3597276f4a1
--- /dev/null
+++ b/testing/autoconf-policy/APKBUILD
@@ -0,0 +1,16 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=autoconf-policy
+pkgver=0.1
+pkgrel=0
+pkgdesc="policy helpers for executing autotools-based configure scripts"
+url="https://gitlab.alpinelinux.org/kaniini/autoconf-policy"
+arch="all"
+license="Unlicense"
+source="https://gitlab.alpinelinux.org/kaniini/autoconf-policy/-/archive/$pkgver/autoconf-policy-$pkgver.tar.bz2"
+options="!check" # No test suite
+
+package() {
+ make DESTDIR="$pkgdir" ARCH="$CARCH" install
+}
+
+sha512sums="406f1361ae2fd40c421a8e002069ac544473d9f44768d60fc1c3d28e8f1db55310980dbe77a354d968a1ce3b1900162d64c72f9be2ded59c64b9a4166e2f10c2 autoconf-policy-0.1.tar.bz2"
diff --git a/testing/autocutsel/APKBUILD b/testing/autocutsel/APKBUILD
deleted file mode 100644
index b42427cd61a..00000000000
--- a/testing/autocutsel/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Steeve Chailloux <steeve@chaahk.com>
-# Maintainer: Steeve Chailloux <steeve@chaahk.com>
-pkgname=autocutsel
-pkgver=0.10.0
-pkgrel=0
-pkgdesc="automated xcutsel"
-url="http://www.nongnu.org/autocutsel/"
-arch="all"
-license="GPL-2.0"
-makedepends="libx11-dev libxaw-dev"
-source="https://github.com/sigmike/autocutsel/releases/download/$pkgver/$pkgname-$pkgver.tar.gz"
-
-builddir=$srcdir/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr --mandir=/usr/share/man
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="2d9b7114fde67ee217ceee673e32b407eef5b266a9d457a83b35d1c6227e5873cc7928aa10f7d84ce5e8c78d4940ee29985696f49b4015269584f1559f6b6d1d autocutsel-0.10.0.tar.gz"
diff --git a/testing/autofs/10-glibc.patch b/testing/autofs/10-glibc.patch
deleted file mode 100644
index a02112eefda..00000000000
--- a/testing/autofs/10-glibc.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -Naur autofs-5.1.4-clean/daemon/Makefile autofs-5.1.4-patched/daemon/Makefile
---- autofs-5.1.4-clean/daemon/Makefile 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/daemon/Makefile 2018-06-15 20:58:25.362236144 +0300
-@@ -6,7 +6,7 @@
- include ../Makefile.rules
-
- SRCS = automount.c indirect.c direct.c spawn.c module.c mount.c \
-- lookup.c state.c flag.c
-+ state.c flag.c
- OBJS = automount.o indirect.o direct.o spawn.o module.o mount.o \
- lookup.o state.o flag.o
-
-diff -Naur autofs-5.1.4-clean/daemon/automount.c autofs-5.1.4-patched/daemon/automount.c
---- autofs-5.1.4-clean/daemon/automount.c 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/daemon/automount.c 2018-06-15 20:58:25.365569508 +0300
-@@ -269,7 +269,7 @@
- return -1;
- }
-
-- if (fs.f_type != (__SWORD_TYPE) AUTOFS_SUPER_MAGIC) {
-+ if (fs.f_type != (long int) AUTOFS_SUPER_MAGIC) {
- crit(ap->logopt, "attempt to remove directory from a "
- "non-autofs filesystem!");
- crit(ap->logopt,
-diff -Naur autofs-5.1.4-clean/daemon/lookup.c autofs-5.1.4-patched/daemon/lookup.c
---- autofs-5.1.4-clean/daemon/lookup.c 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/daemon/lookup.c 2018-06-15 20:58:25.368902873 +0300
-@@ -382,7 +382,7 @@
- if (!S_ISREG(st.st_mode))
- return NSS_STATUS_NOTFOUND;
-
-- if (st.st_mode & __S_IEXEC)
-+ if (st.st_mode & S_IEXEC)
- type = src_prog;
- else
- type = src_file;
-@@ -942,7 +942,7 @@
- if (!S_ISREG(st.st_mode))
- return NSS_STATUS_NOTFOUND;
-
-- if (st.st_mode & __S_IEXEC)
-+ if (st.st_mode & S_IEXEC)
- type = src_prog;
- else
- type = src_file;
-diff -Naur autofs-5.1.4-clean/include/nsswitch.h autofs-5.1.4-patched/include/nsswitch.h
---- autofs-5.1.4-clean/include/nsswitch.h 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/include/nsswitch.h 2018-06-15 20:58:25.372236237 +0300
-@@ -24,7 +24,7 @@
- #include <netdb.h>
- #include "list.h"
-
--#define NSSWITCH_FILE _PATH_NSSWITCH_CONF
-+#define NSSWITCH_FILE "/dev/null"
-
- enum nsswitch_status {
- NSS_STATUS_UNKNOWN = -1,
-diff -Naur autofs-5.1.4-clean/include/rpc_subs.h autofs-5.1.4-patched/include/rpc_subs.h
---- autofs-5.1.4-clean/include/rpc_subs.h 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/include/rpc_subs.h 2018-06-15 20:58:25.358902779 +0300
-@@ -18,7 +18,7 @@
-
- #include <rpc/rpc.h>
- #include <rpc/pmap_prot.h>
--#include <nfs/nfs.h>
-+#include <linux/nfs.h>
- #include <linux/nfs2.h>
- #include <linux/nfs3.h>
-
-diff -Naur autofs-5.1.4-clean/modules/lookup_multi.c autofs-5.1.4-patched/modules/lookup_multi.c
---- autofs-5.1.4-clean/modules/lookup_multi.c 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/modules/lookup_multi.c 2018-06-15 20:58:25.372236237 +0300
-@@ -247,7 +247,7 @@
- continue;
- }
-
-- if (st.st_mode & __S_IEXEC)
-+ if (st.st_mode & S_IEXEC)
- type = src_prog;
- else
- type = src_file;
-@@ -452,7 +452,7 @@
- continue;
- }
-
-- if (st.st_mode & __S_IEXEC)
-+ if (st.st_mode & S_IEXEC)
- type = src_prog;
- else
- type = src_file;
-diff -Naur autofs-5.1.4-clean/samples/auto.master autofs-5.1.4-patched/samples/auto.master
---- autofs-5.1.4-clean/samples/auto.master 2017-12-19 05:46:44.000000000 +0300
-+++ autofs-5.1.4-patched/samples/auto.master 2018-06-15 20:58:25.362236144 +0300
-@@ -4,7 +4,7 @@
- # mount-point [map-type[,format]:]map [options]
- # For details of the format look at auto.master(5).
- #
--/misc /etc/auto.misc
-+/misc /etc/autofs/auto.misc
- #
- # NOTE: mounts done from a hosts map will be mounted with the
- # "nosuid" and "nodev" options unless the "suid" and "dev"
-@@ -12,14 +12,14 @@
- #
- /net -hosts
- #
--# Include /etc/auto.master.d/*.autofs
-+# Include /etc/autofs/auto.master.d/*.autofs
- # To add an extra map using this mechanism you will need to add
- # two configuration items - one /etc/auto.master.d/extra.autofs file
- # (using the same line format as the auto.master file)
- # and a separate mount map (e.g. /etc/auto.extra or an auto.extra NIS map)
- # that is referred to by the extra.autofs file.
- #
--+dir:/etc/auto.master.d
-++dir:/etc/autofs/auto.master.d
- #
- # If you have fedfs set up and the related binaries, either
- # built as part of autofs or installed from another package,
-
diff --git a/testing/autofs/APKBUILD b/testing/autofs/APKBUILD
deleted file mode 100644
index 43777cead99..00000000000
--- a/testing/autofs/APKBUILD
+++ /dev/null
@@ -1,62 +0,0 @@
-# Contributor: Alex Laskin <alex@lask.in>
-# Maintainer: Alex Laskin <alex@lask.in>
-pkgname=autofs
-pkgver=5.1.6
-pkgrel=1
-pkgdesc="A kernel-based automounter for Linux"
-url="https://www.kernel.org/pub/linux/daemons/autofs/"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="linux-headers automake flex bison rpcgen libtirpc-dev libnfs-dev coreutils"
-subpackages="$pkgname-doc $pkgname-openrc"
-options="!check" # no test suite provided
-source="
- https://www.kernel.org/pub/linux/daemons/$pkgname/v5/$pkgname-$pkgver.tar.xz
- autofs.initd
- autofs.confd
- pid_t.patch
- 10-glibc.patch
- "
-
-prepare() {
- default_prepare
- sed -i 's,nfs/nfs.h,linux/nfs.h,g' */*.[ch]
- sed -i 's,__S_IEXEC,S_IXUSR,g' */*.[ch]
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc/autofs \
- --with-mapdir=/etc/autofs \
- --with-confdir=/etc/conf.d \
- --without-hesiod \
- --with-libtirpc \
- --enable-ignore-busy
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"/etc/autofs/
- install -m644 samples/auto.master \
- samples/auto.misc \
- samples/auto.net \
- samples/auto.smb \
- "$pkgdir"/etc/autofs/
-
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
-
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
-
- rm -f "$pkgdir"/usr/share/man/man5/autofs.5
-}
-
-sha512sums="dc8b2bd86c140905dd1bc461bfc469f92363d9c2687fe422e1e751cc7ad64c0733b011c80bf4840e510e5909176cd1a066968b9a5ba835b62c4cf27537863cf2 autofs-5.1.6.tar.xz
-e7ffe40cf5f302f7de7cc59752699adad4be89fa78fa1a79c32ce4059ec2f563c0f107ca2cec850cabfb1cdebca5ff1f369167479423ab6cfe509225a799a00e autofs.initd
-74884b94d8c5dc72579c9c0c9f13c8918ee0babe6fc1e6352bb79cfaf6f5ce3daa87a9b2ea2f34a4600c93a971b329aa0892785fe2efd42829fb7953a6130dd7 autofs.confd
-78dfd13e06a7adec4336b18a03a1c0bd9d651ce01bf5e716a75d5574e033db9c3fff3baf660c4a6ad757403db5242a7abecf68cdb4cc9bb4d005992b6fe44ca6 pid_t.patch
-0de8adc821fa59a9c5392ea5e4a3b540a39f38b8bb2ddde8d20ca4946e3d1467c80bb375d918a11e2331281e220da56e66c2aa1e974b9e6e40c7d3a3b4cdac5e 10-glibc.patch"
diff --git a/testing/autofs/autofs.confd b/testing/autofs/autofs.confd
deleted file mode 100644
index 86ac0e2cd52..00000000000
--- a/testing/autofs/autofs.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-# Autofs conf.d file
-
-#
-# Specify daemon options here.
-#
-
-automount_opts=""
diff --git a/testing/autofs/autofs.initd b/testing/autofs/autofs.initd
deleted file mode 100644
index 1614fe1fe6e..00000000000
--- a/testing/autofs/autofs.initd
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name="${RC_SVCNAME}"
-description="Kernel-based automounter"
-
-command=/usr/sbin/automount
-command_args="$automount_opts"
-command_args_foreground="-f"
-
-depend() {
- need net
- after firewall
-}
diff --git a/testing/autofs/pid_t.patch b/testing/autofs/pid_t.patch
deleted file mode 100644
index 1766c34e989..00000000000
--- a/testing/autofs/pid_t.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/include/log.h b/include/log.h
-index 69eed96..14051cc 100644
---- a/include/log.h
-+++ b/include/log.h
-@@ -46,6 +46,8 @@ extern void log_crit(unsigned, const char* msg, ...);
- extern void log_debug(unsigned int, const char* msg, ...);
- extern void logmsg(const char* msg, ...);
-
-+#include <unistd.h> /* Required for pid_t */
-+
- extern pid_t log_pidinfo(struct autofs_point *ap, pid_t pid, char *label);
-
- #define debug(opt, msg, args...) \
-
diff --git a/testing/autorandr/APKBUILD b/testing/autorandr/APKBUILD
new file mode 100644
index 00000000000..d3596ffdf8f
--- /dev/null
+++ b/testing/autorandr/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+pkgname=autorandr
+pkgver=1.15
+pkgrel=0
+pkgdesc="Auto-detect the connected display hardware and load the appropriate X11 setup using xrandr"
+url="https://github.com/phillipberndt/autorandr"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ py3-packaging
+ python3
+ xdpyinfo
+ xrandr
+ "
+makedepends="
+ bash-completion-dev
+ libxcb-dev
+ py3-setuptools_scm
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/phillipberndt/autorandr/archive/$pkgver.tar.gz"
+subpackages="
+ $pkgname-udev
+ $pkgname-doc
+ $pkgname-launcher::all
+ $pkgname-bash-completion
+ "
+options="!check" # no tests
+
+package() {
+ make DESTDIR="$pkgdir" \
+ UDEV_RULES_DIR="/etc/udev/rules.d" install_udev \
+ install_manpage \
+ install_bash_completion \
+ install_launcher \
+ install_autorandr
+}
+
+udev() {
+ install_if="$pkgname=$pkgver-r$pkgrel udev"
+ amove etc/udev/rules.d/
+}
+
+launcher() {
+ amove usr/bin/autorandr-launcher
+ amove etc/xdg/autostart/autorandr-launcher.desktop
+}
+
+sha512sums="
+2837348b755f5c4b30ad2b68e191e1969a467401cf32dda495dd19867e391f8b8b4a9c0b4958ef33f75c71aace46686995e27bab805e1e40cc4a1af44e9f0405 autorandr-1.15.tar.gz
+"
diff --git a/testing/autorestic/APKBUILD b/testing/autorestic/APKBUILD
new file mode 100644
index 00000000000..cf6525e6222
--- /dev/null
+++ b/testing/autorestic/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=autorestic
+pkgver=1.8.2
+pkgrel=1
+pkgdesc="Config driven, easy backup cli for restic."
+url="https://github.com/cupcakearmy/autorestic"
+arch="all"
+license="Apache-2.0"
+# !check: no tests available
+# net: required to fetch go dependencies
+options="!check net"
+depends="restic"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cupcakearmy/autorestic/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build
+}
+
+package() {
+ install -Dm755 autorestic "$pkgdir"/usr/bin/autorestic
+}
+
+sha512sums="
+4413a553b7dec65ab185cce5b850b460664519975c585c337c30bf3ac7c8e5dc6bad8b852fb784ed7cbcb18c534930166c8f6d67793681c64872b6a35f2883f3 autorestic-1.8.2.tar.gz
+"
diff --git a/testing/autoscan/APKBUILD b/testing/autoscan/APKBUILD
new file mode 100644
index 00000000000..ef0acaa7e86
--- /dev/null
+++ b/testing/autoscan/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=autoscan
+pkgver=1.4.0
+pkgrel=3
+pkgdesc="Autoscan replaces the default Plex and Emby behaviour for picking up changes on the file system."
+url="https://github.com/Cloudbox/autoscan"
+arch="x86_64 aarch64 armv7"
+license="MIT"
+options="net" # for downloading Go modules
+makedepends="go"
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-v$pkgver.tar.gz::https://github.com/Cloudbox/autoscan/archive/v$pkgver.tar.gz
+ autoscan.initd
+ autoscan.confd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ # strings used to parse "$Version ($GitCommit@$Timestamp)"
+ local ldflags="
+ -X main.Version=$pkgver
+ -X main.GitCommit=alpine
+ -X main.Timestamp=r$pkgrel
+ "
+
+ go build -ldflags "$ldflags" -o bin/autoscan ./cmd/autoscan
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/autoscan -t "$pkgdir"/usr/bin
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+4527a988797fcee2049e0d9c00a4544948c056d30402abefc9bedfa7b0c5d6e141c3ec9c23caefea3875378db2ba0cdc99cc1bed12aca2e66fc908af8296a133 autoscan-v1.4.0.tar.gz
+d567c68c0b346c96292dad19389f7c4a83609aae406f577d7cca9a1b2a336de3044224cb252ddb9a49dab874182e9a05fd549f102ad39ff12cc3b30bedf6a061 autoscan.initd
+7d1e0accbe7c5e7fe26652bd234ad4b7e5877c640ddf15cf5d1f6c621d1e7d1a5729af270414ddddaed4f0eee51ca88dd403f81fadb10fcc403100f56fd42629 autoscan.confd
+"
diff --git a/testing/autoscan/autoscan.confd b/testing/autoscan/autoscan.confd
new file mode 100644
index 00000000000..16dec8a9392
--- /dev/null
+++ b/testing/autoscan/autoscan.confd
@@ -0,0 +1,6 @@
+# autoscan configuration options
+
+command_user="autoscan:autoscan" # user:group
+directory="/var/lib/autoscan"
+logdir="/var/log/autoscan"
+supervisor="supervise-daemon"
diff --git a/testing/autoscan/autoscan.initd b/testing/autoscan/autoscan.initd
new file mode 100644
index 00000000000..3a36e5ed171
--- /dev/null
+++ b/testing/autoscan/autoscan.initd
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/autoscan
+: ${command_user:=autoscan:autoscan}
+: ${directory:=/var/lib/autoscan}
+: ${logdir:=/var/log/autoscan}
+
+name=autoscan
+description="autoscan daemon"
+command="/usr/bin/autoscan"
+command_args="
+ --config=$directory/config.yml
+ --database=$directory/autoscan.db
+ --log=$directory/activity.log"
+command_background=true
+
+pidfile="/run/$name.pid"
+output_log="$logdir/output.log"
+error_log="$logdir/error.log"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory" "$logdir"
+ checkpath -f -o "$command_user" "$output_log" "$error_log"
+}
diff --git a/testing/autoscan/autoscan.pre-install b/testing/autoscan/autoscan.pre-install
new file mode 100644
index 00000000000..01c3896f48a
--- /dev/null
+++ b/testing/autoscan/autoscan.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S autoscan 2>/dev/null
+adduser -S -D -h /var/lib/autoscan -s /sbin/nologin -G autoscan -g autoscan autoscan 2>/dev/null
+
+exit 0
diff --git a/testing/autotrash/APKBUILD b/testing/autotrash/APKBUILD
new file mode 100644
index 00000000000..b8d38066906
--- /dev/null
+++ b/testing/autotrash/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Thiago Perrotta <tbperrotta@gmail.com>
+# Maintainer: Thiago Perrotta <tbperrotta@gmail.com>
+pkgname=autotrash
+pkgver=0.4.6
+pkgrel=1
+pkgdesc="Tool to automatically purge old trashed files"
+url="https://bneijt.nl/pr/autotrash/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 py3-setuptools"
+makedepends="py3-gpep517 py3-poetry-core py3-installer"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/a/autotrash/autotrash-$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/autotrash*.whl
+}
+
+sha512sums="
+cfa59d025bb37ee31f0726e7f218f328af7e51c34de606fac384a342bd3e73761b313a3b71c4b2f3130125997640d5f18bd97ac6885d092749fc9e46aac744d5 autotrash-0.4.6.tar.gz
+"
diff --git a/testing/avara/APKBUILD b/testing/avara/APKBUILD
index 42f178230ba..ddcce248507 100644
--- a/testing/avara/APKBUILD
+++ b/testing/avara/APKBUILD
@@ -1,36 +1,43 @@
# Contributor: shrizza <shrizza@gmail.com>
# Maintainer: shrizza <shrizza@gmail.com>
-pkgname="avara"
-_sha="b8700db3c696b9813b511b06a92c9faab55b282a"
-pkgver="0_git20191006"
+pkgname=avara
+pkgver=0.7.1
pkgrel=0
pkgdesc="Port of the original 1996 Mac OS game from Ambrosia Software"
url="https://github.com/avaraline/Avara"
-arch="all"
+# videogame
+arch="all !armhf !s390x"
license="MIT"
-makedepends="clang clang-dev directfb-dev glu-dev sdl2_net-dev sdl2_mixer-dev sdl2"
+makedepends="
+ directfb-dev
+ glu-dev
+ sdl2-dev
+ sdl2_mixer-dev
+ sdl2_net-dev
+ rsync
+ "
options="!check"
-subpackages="$pkgname-doc"
-source="avara $pkgname-$pkgver.zip::https://github.com/avaraline/Avara/archive/$_sha.zip"
-builddir="$srcdir/Avara-$_sha"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/avaraline/Avara/archive/refs/tags/$pkgver.tar.gz
+ avara
+ nullptr.patch
+ "
+builddir="$srcdir/Avara-$pkgver"
build() {
- make
+ make CC=${CC:-cc} CXX=${CXX:-c++} GIT_HASH=$pkgver GIT_BRANCH=alpine
}
package() {
- mkdir -p "$pkgdir/usr/bin/"
- install -Dm755 ../avara "$pkgdir/usr/bin/"
- mkdir -p "$pkgdir/var/games/$pkgname/"
- cp -r build/Avara "$pkgdir/var/games/$pkgname/"
- cp -r build/bsps "$pkgdir/var/games/$pkgname/"
- cp -r build/levels "$pkgdir/var/games/$pkgname/"
- cp -r build/rsrc "$pkgdir/var/games/$pkgname/"
- cp -r build/shaders "$pkgdir/var/games/$pkgname/"
- mkdir -p "$pkgdir/usr/share/doc/$pkgname/"
- install -Dm644 CONTRIBUTORS.md "$pkgdir/usr/share/doc/$pkgname/"
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/"
+ install -Dm755 "$srcdir"/avara -t "$pkgdir"/usr/bin
+ mkdir -p "$pkgdir"/var/games/avara
+ cp -r build/Avara "$pkgdir"/var/games/avara/
+ cp -r build/levels "$pkgdir"/var/games/avara/
+ cp -r build/rsrc "$pkgdir"/var/games/avara/
}
-sha512sums="928326dad78b077fe82f13f9c56a00996ef8555108e0964a72e73c84fb073a2d6a9e7a545d129f90386f5f30cf7976abc29a38ff71f7c6e114521f6c0dcd36bf avara
-03dfb9b173749fac97591053cd7d55976617eb4fb64bcb4286a1b511d18dcb557dcbb408bf4c4e5d5bf7c47f41b2134808613938a9535c51d5e486e123a9271c avara-0_git20191006.zip"
+sha512sums="
+1ccb3419b11bd95b7ec529b5078bad2341737b4dd43215ffdbda020cf71e7832b5ec0f6c637a99c89ccd23ebb3f55fdcb6fc18d4f57b71f24aa83081b8be96b2 avara-0.7.1.tar.gz
+c0bb030ef44d732bb7a493df9d3b7d120159d37f25440711e2edfd3e11a896764ce88b58ae1f5e1f51d81809c95a7c6570122d042bb9c95af919f78d50524d9e avara
+92aaca8946ded9fd956fb1ab55c36b401918034b918407b326cbca136b5ce29f64a337a14fe18feb71018f6d3ca2ed53b03ce924d2a545d3686420d903e7fbbd nullptr.patch
+"
diff --git a/testing/avara/avara b/testing/avara/avara
index 15048a9f5bc..6225c1a5d5b 100644
--- a/testing/avara/avara
+++ b/testing/avara/avara
@@ -1,3 +1,3 @@
#!/bin/sh
-/var/games/avara/Avara
+exec /var/games/avara/Avara "$@"
diff --git a/testing/avara/nullptr.patch b/testing/avara/nullptr.patch
new file mode 100644
index 00000000000..747ab2eeb4b
--- /dev/null
+++ b/testing/avara/nullptr.patch
@@ -0,0 +1,17 @@
+diff --git a/src/util/AvaraGL.cpp b/src/util/AvaraGL.cpp
+index b302c9a..5c3783f 100644
+--- a/src/util/AvaraGL.cpp
++++ b/src/util/AvaraGL.cpp
+@@ -334,10 +334,10 @@ void AvaraGLDrawPolygons(CBSPPart* part) {
+ glDisable(GL_CULL_FACE);
+ }
+
+- glBindVertexArray(NULL);
++ glBindVertexArray(0);
+ glCheckErrors();
+
+- glBindBuffer(GL_ARRAY_BUFFER, NULL);
++ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ glCheckErrors();
+
+ }
diff --git a/testing/avarice/APKBUILD b/testing/avarice/APKBUILD
index 79bd4fc399d..cf728a59d01 100644
--- a/testing/avarice/APKBUILD
+++ b/testing/avarice/APKBUILD
@@ -1,23 +1,32 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=avarice
-_releasever=2.13
-_svnver=375
-_svndate=20160229
-# The latest AVaRICE release doesn't comply on all but history environments.
-# Sadly, new release are no longer created.
-pkgver=${_releasever}_svn$_svnver
-pkgrel=2
+pkgver=2.14
+pkgrel=3
pkgdesc="AVaRICE interfaces with GDB and allows debugging of AVR MCUs"
-url="http://avarice.sourceforge.net/"
+url="https://github.com/avrdudes/avarice"
arch="all"
license="GPL-2.0-only"
-makedepends="binutils-dev libusb-dev libusb-compat-dev hidapi-dev perl"
+makedepends="
+ autoconf
+ automake
+ binutils-dev
+ hidapi-dev
+ libusb-compat-dev
+ libusb-dev
+ perl
+ "
depends="gdb-multiarch"
subpackages="$pkgname-doc"
-source="http://deb.debian.org/debian/pool/main/a/avarice/avarice_$_releasever+svn$_svnver.orig.tar.xz"
-builddir="$srcdir/$pkgname-${_releasever}svn$_svndate"
+source="$pkgname-$pkgver.tar.gz::https://github.com/avrdudes/avarice/archive/refs/tags/avarice-rel-${pkgver/./_}.tar.gz
+ drop_keyword_unused.patch
+ "
+
+builddir="$srcdir/avarice-avarice-rel-${pkgver/./_}"
build() {
+ ./Bootstrap
+ # gcc12 defaults to 17 which fails due to throw()
+ export CXXFLAGS="$CXXFLAGS -std=c++14"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -33,4 +42,7 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="8050948ebea9cc4f9d2e90a1eb97962d6335b5a7b750b92ea16e3add4e9163a9fae10cb8c72ddc303126090472aabff21ea6286ac5e33a21800f09886b63000e avarice_2.13+svn375.orig.tar.xz"
+sha512sums="
+b302e91859f0a2891c80f036430468274b327b7f9168c042748e98d00e010b180be995343a47878acf2702637b402483c494aec4fb53063d5fc2d2fe82c58f83 avarice-2.14.tar.gz
+8e9faf7eab5807f3b100ba29e7aab857f91947981a25dccc3096c9462d777be9fb19cf410e8634884b3ce9299fe410e24d1cd107c4bdbf0a537b9f9322e7c627 drop_keyword_unused.patch
+"
diff --git a/testing/avarice/drop_keyword_unused.patch b/testing/avarice/drop_keyword_unused.patch
new file mode 100644
index 00000000000..d2c48a8ca4d
--- /dev/null
+++ b/testing/avarice/drop_keyword_unused.patch
@@ -0,0 +1,41 @@
+Drop __unused keyword, which was used to suppress warnings about unused
+parameters, but which is not recognized by our toolchain.
+--- avarice-2.14.orig/src/jtag2usb.cc
++++ avarice-2.14/src/jtag2usb.cc
+@@ -739,7 +739,7 @@
+
+ #ifdef HAVE_LIBUSB_2_0
+ /* USB thread */
+-static void *usb_thread(void * data __unused)
++static void *usb_thread(void * data)
+ {
+ struct pollfd fds[2];
+
+--- avarice-2.14.orig/src/jtag3io.cc
++++ avarice-2.14/src/jtag3io.cc
+@@ -350,12 +350,12 @@
+ throw jtag_exception("doSimpleJtagCommand(): too many failures");
+ }
+
+-void jtag3::changeBitRate(int newBitRate __unused)
++void jtag3::changeBitRate(int newBitRate)
+ {
+ throw;
+ }
+
+-bool jtag3::synchroniseAt(int bitrate __unused)
++bool jtag3::synchroniseAt(int bitrate)
+ {
+ throw;
+ }
+--- avarice-2.14.orig/src/jtag3prog.cc
++++ avarice-2.14/src/jtag3prog.cc
+@@ -106,7 +106,7 @@
+ }
+
+
+-void jtag3::downloadToTarget(const char* filename __unused, bool program __unused, bool verify __unused)
++void jtag3::downloadToTarget(const char* filename, bool program, bool verify)
+ {
+ statusOut("\nDownload not done.\n");
+ throw jtag_exception("Target programming not implemented for JTAGICE3");
diff --git a/testing/avdl/APKBUILD b/testing/avdl/APKBUILD
new file mode 100644
index 00000000000..59ede86eb67
--- /dev/null
+++ b/testing/avdl/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Tom Tsagk <tomtsagk@darkdimension.org>
+# Maintainer: Tom Tsagk <tomtsagk@darkdimension.org>
+pkgname=avdl
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="Abstract video-game development language compiler"
+url="https://darkdimension.org/avdl.html"
+arch="all"
+license="GPL-3.0-only"
+makedepends="musl-dev glew-dev sdl2-dev sdl2_mixer-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tomtsagk/avdl/archive/refs/tags/v$pkgver.tar.gz"
+
+check() {
+ make test
+}
+
+build() {
+ make prefix=/usr
+}
+
+package() {
+ make DESTDIR="$pkgdir" prefix=/usr install
+
+}
+
+sha512sums="
+0c0f4b80810ff8575169fce3601cd93813f9e54763d0e4b4b3d447204b8560b17a34d3f69ed861a6712841abb5fc1426868f175b84008054d95b5c26fb024faf avdl-0.4.3.tar.gz
+"
diff --git a/testing/avida/APKBUILD b/testing/avida/APKBUILD
index adf7dafb210..56828bad8cf 100644
--- a/testing/avida/APKBUILD
+++ b/testing/avida/APKBUILD
@@ -3,15 +3,17 @@ pkgname=avida
pkgver=0_git20190813
_sha=ca1f311bc1bcaf021390c63bce6aa9455bbd44cc
_apto_sha=9184c91a3a82297c420540baaf355aac80213a29
-pkgrel=0
+pkgrel=1
pkgdesc="A scientific software platform for conducting and analyzing experiments with self-replicating and evolving computer programs"
url="https://avida.devosoft.org/"
arch="x86 x86_64" # build currently fails on non-intel arches
license="GPL-3.0-only"
-makedepends="cmake linux-headers"
+makedepends="cmake linux-headers samurai"
source="$pkgname-$pkgver.tar.gz::https://github.com/devosoft/avida/archive/$_sha.tar.gz
apto.tar.gz::https://github.com/dmbryson/apto/archive/$_apto_sha.tar.gz
- 10-remove-forced-tcmalloc.patch"
+ 10-remove-forced-tcmalloc.patch
+ musl123.patch
+ "
builddir="$srcdir/avida-$_sha"
prepare() {
@@ -21,14 +23,14 @@ prepare() {
}
build() {
- cmake -B build \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE=None \
-DAVD_UNIT_TESTS:BOOL=ON \
-DAVD_ENABLE_TCMALLOC:BOOL=OFF \
-DHAVE_FUSED_MADD:BOOL=OFF \
-DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-expansion-to-defined"
- make -C build
+ cmake --build build
}
check() {
@@ -41,6 +43,9 @@ package() {
cp -R avida-core/support/* "$pkgdir"/usr/share/avida
}
-sha512sums="09332469e4aab96c0775f3d8e5a8e9c2544468bd6b461e5a30edac2d6fb0049fbb4db4860e54d94a2f010830a593377bc5345404ca6d78acba1e968a352f889d avida-0_git20190813.tar.gz
+sha512sums="
+09332469e4aab96c0775f3d8e5a8e9c2544468bd6b461e5a30edac2d6fb0049fbb4db4860e54d94a2f010830a593377bc5345404ca6d78acba1e968a352f889d avida-0_git20190813.tar.gz
e0f8aab74198f07e2edbd0d5083792eaab91a96c4065e1bba6295bb4d6a784665744d812ce1e40393a1da015a9048cbc6c15229dd20da2de9f32692b0d870cfb apto.tar.gz
-be92b7f3015cccaa64f2065bb552237176b044cbc16fa6dcef368b02aa53c9c3fdcfbb608b4fea2d6d720fe2a01f3362da87bf427fcb95942486c06fddba2892 10-remove-forced-tcmalloc.patch" \ No newline at end of file
+be92b7f3015cccaa64f2065bb552237176b044cbc16fa6dcef368b02aa53c9c3fdcfbb608b4fea2d6d720fe2a01f3362da87bf427fcb95942486c06fddba2892 10-remove-forced-tcmalloc.patch
+c1ef9b2176eba944fdb546fea64119a9515dfd8b3ab904eb7d7b621ac1d0734f7b20cd198df40356fa38280e21dfb126fb5601ca580a656c925f98338bb358cc musl123.patch
+"
diff --git a/testing/avida/musl123.patch b/testing/avida/musl123.patch
new file mode 100644
index 00000000000..e7d60080816
--- /dev/null
+++ b/testing/avida/musl123.patch
@@ -0,0 +1,13 @@
+diff --git a/avida-core/source/cpu/cTestCPUInterface.cc b/avida-core/source/cpu/cTestCPUInterface.cc
+index 7e78a59..a827712 100644
+--- a/avida-core/source/cpu/cTestCPUInterface.cc
++++ b/avida-core/source/cpu/cTestCPUInterface.cc
+@@ -152,7 +152,7 @@ int cTestCPUInterface::GetStateGridID(cAvidaContext& ctx)
+ Apto::Array<int> cTestCPUInterface::GetFormedGroupArray()
+ {
+ Apto::Array<int> null_array;
+- null_array.SetAll(NULL);
++ null_array.SetAll(0);
+ return null_array;
+ }
+
diff --git a/testing/avr-libc-git/APKBUILD b/testing/avr-libc-git/APKBUILD
new file mode 100644
index 00000000000..02e42b3c339
--- /dev/null
+++ b/testing/avr-libc-git/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=avr-libc-git
+_avrlibc_pkgver=2.1.0
+pkgver=0_git20240218
+_commit=22d588c80066102993263018d5324d1424c13f0d
+provides=avrlibc=$_avrlibc_pkgver
+pkgrel=4
+pkgdesc="The C runtime library for the AVR family of microcontrollers - git version"
+url="https://github.com/avrdudes/avr-libc"
+depends="gcc-avr"
+makedepends="
+ autoconf
+ automake
+ python3
+ "
+arch="x86_64 ppc64le aarch64 x86"
+license="BSD-3-Clause"
+subpackages="$pkgname-doc"
+builddir="$srcdir/$pkgname-$pkgname-${pkgver//./_}-release"
+source="
+ avr-libc-$_commit.tar.gz::https://github.com/avrdudes/avr-libc/archive/$_commit.tar.gz
+ "
+builddir="$srcdir/avr-libc-$_commit"
+
+build() {
+ ./bootstrap
+ CC=avr-gcc ./configure \
+ --build="$(/bin/sh config.guess)" \
+ --host=avr \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+6c1651250cd3fb7b9207c6566b869f8203c17bfb9ffca0a55f3ec28fbed880b23123b3ecf56bbf54605dacfb0ca20906433d7f89cc966e145b126f2437ab7495 avr-libc-22d588c80066102993263018d5324d1424c13f0d.tar.gz
+"
diff --git a/testing/avra/APKBUILD b/testing/avra/APKBUILD
new file mode 100644
index 00000000000..ba11ad239ce
--- /dev/null
+++ b/testing/avra/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Bryce Vandegrift <bryce@brycevandegrift.xyz>
+# Maintainer: Bryce Vandegrift <bryce@brycevandegrift.xyz>
+pkgname=avra
+pkgver=1.4.2
+pkgrel=0
+pkgdesc="Assembler for the Atmel AVR microcontroller family"
+url="https://github.com/Ro5bert/avra"
+arch="all"
+license="GPL-2.0-or-later"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hsoft/avra/archive/$pkgver.tar.gz"
+
+build() {
+ make PREFIX=/usr
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+}
+
+sha512sums="
+f51a43b1b28102d6180ce27e74b50642de8f3d18fa35a82904fddaac993e87e1096667f2245bebfad92e4ba3283330f6ac4b6083e486be5af9edca7b7e90e56f avra-1.4.2.tar.gz
+"
diff --git a/testing/aws-session-manager-plugin/001_correct_makefile.patch b/testing/aws-session-manager-plugin/001_correct_makefile.patch
new file mode 100644
index 00000000000..9b2eeb29cef
--- /dev/null
+++ b/testing/aws-session-manager-plugin/001_correct_makefile.patch
@@ -0,0 +1,50 @@
+# Corrects build configuration issues
+# Homogenizes build commands to make building on multiple carches easier
+# Enables ssmcli for armv7/aarch64
+--- a/makefile
++++ b/makefile
+@@ -1,5 +1,5 @@
+ COPY := cp -p
+-GO_BUILD := go build -i
++GO_BUILD := go build
+
+ # Default build configuration, can be overridden at build time.
+ GOARCH?=$(shell go env GOARCH)
+@@ -16,9 +16,9 @@
+
+ checkstyle::
+ # Run checkstyle script
+- $(GO_SPACE)/Tools/src/checkstyle.sh
++# $(GO_SPACE)/Tools/src/checkstyle.sh
+
+-build:: build-linux-amd64 build-linux-386 build-arm build-arm64 build-darwin-arm64 build-darwin-amd64 build-windows-amd64 build-windows-386
++build:: build-linux-amd64 build-linux-386 build-linux-arm build-linux-arm64 build-darwin-arm64 build-darwin-amd64 build-windows-amd64 build-windows-386
+
+ prepack:: prepack-linux-amd64 prepack-linux-386 prepack-linux-arm64 prepack-windows-386 prepack-windows-amd64
+
+@@ -97,17 +97,21 @@
+ GOOS=linux GOARCH=386 $(GO_BUILD) -ldflags "-s -w" -o $(GO_SPACE)/bin/linux_386/ssmcli -v \
+ $(GO_SPACE)/src/ssmcli-main/main.go
+
+-.PHONY: build-arm
+-build-arm: checkstyle copy-src pre-build
++.PHONY: build-linux-arm
++build-linux-arm: checkstyle copy-src pre-build
+ @echo "Build for ARM platform"
+ GOOS=linux GOARCH=arm GOARM=6 $(GO_BUILD) -ldflags "-s -w -extldflags=-Wl,-z,now,-z,relro,-z,defs" -o $(GO_SPACE)/bin/linux_arm_plugin/session-manager-plugin -v \
+ $(GO_SPACE)/src/sessionmanagerplugin-main/main.go
++ GOOS=linux GOARCH=arm GOARM=6 $(GO_BUILD) -ldflags "-s -w" -o $(GO_SPACE)/bin/linux_arm/ssmcli -v \
++ $(GO_SPACE)/src/ssmcli-main/main.go
+
+-.PHONY: build-arm64
+-build-arm64: checkstyle copy-src pre-build
++.PHONY: build-linux-arm64
++build-linux-arm64: checkstyle copy-src pre-build
+ @echo "Build for ARM64 platform"
+ GOOS=linux GOARCH=arm64 $(GO_BUILD) -ldflags "-s -w -extldflags=-Wl,-z,now,-z,relro,-z,defs" -o $(GO_SPACE)/bin/linux_arm64_plugin/session-manager-plugin -v \
+ $(GO_SPACE)/src/sessionmanagerplugin-main/main.go
++ GOOS=linux GOARCH=arm64 $(GO_BUILD) -ldflags "-s -w" -o $(GO_SPACE)/bin/linux_arm64/ssmcli -v \
++ $(GO_SPACE)/src/ssmcli-main/main.go
+
+ .PHONY: build-darwin-arm64
+ build-darwin-arm64: checkstyle copy-src pre-build
diff --git a/testing/aws-session-manager-plugin/APKBUILD b/testing/aws-session-manager-plugin/APKBUILD
new file mode 100644
index 00000000000..964c8331cbb
--- /dev/null
+++ b/testing/aws-session-manager-plugin/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Will Sinatra <wpsinatra@gmail.com>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=aws-session-manager-plugin
+pkgver=1.2.553.0
+pkgrel=0
+pkgdesc="AWS Session Manager Plugin for aws-cli."
+url="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html"
+license="Apache-2.0"
+arch="" # blocked by aws-cli
+#arch="x86_64 aarch64"
+# aws-cli is not packaged on the following arches due to missing dependency py3-awscrt
+# armhf, armv7, s390x, ppc64le
+# aws-cli is not packaged on the following arches due to compilation issues
+# x86
+depends="aws-cli amazon-ssm-agent"
+makedepends="go gcompat"
+source="$pkgname-$pkgver.tar.gz::https://github.com/aws/session-manager-plugin/archive/refs/tags/$pkgver.tar.gz
+ 001_correct_makefile.patch
+ ssmcli.initd
+ session-manager-plugin.initd"
+options="!check"
+builddir="$srcdir/session-manager-plugin-$pkgver"
+subpackages="$pkgname-openrc"
+
+case "$CARCH" in
+ armhf) build_arch=arm ;;
+ armv7) build_arch=arm ;;
+ x86) build_arch=x86 ;;
+ x86_64) build_arch=amd64 ;;
+ aarch64) build_arch=arm64 ;;
+esac
+
+build() {
+ make build-linux-$build_arch
+}
+
+package() {
+ #ssmcli
+ install -Dm0755 "$builddir"/bin/linux_$build_arch/ssmcli -t "$pkgdir"/usr/bin/
+ install -Dm0644 "$builddir"/bin/seelog_unix.xml -t "$pkgdir"/etc/amazon/ssmcli/seelog.xml
+
+ #session-manager-plugin
+ install -Dm0755 "$builddir"/bin/linux_${build_arch}_plugin/session-manager-plugin -t "$pkgdir"/usr/bin/
+ install -Dm0644 "$builddir"/bin/seelog_unix.xml -t "$pkgdir"/etc/amazon/sessionmanagerplugin/seelog.xml
+ install -Dm0644 "$builddir"/bin/seelog_windows.xml.template -t "$pkgdir"/etc/amazon/sessionmanagerplugin/
+
+ install -Dm0755 "$srcdir"/session-manager-plugin.initd -t "$pkgdir"/etc/init.d/session-manager-plugin
+ install -Dm0755 "$srcdir"/ssmcli.initd -t "$pkgdir"/etc/init.d/ssmcli
+}
+
+sha512sums="
+49d4715adfce526376bd4f4d2cf136779aff0912e904f7158a8dc3e163f77afbf43511358cb3e17587d16d2f81a55fae007ed8f04d144e513948f2b7878a2e45 aws-session-manager-plugin-1.2.553.0.tar.gz
+61df1f326d0963f8b81ccef56e87b907eff57cb98ecfb3839a61d008157bdcf8180609fdc23b75ad01cf3c7a99d89cd50e52f48c9b0c42144a166f27738394a4 001_correct_makefile.patch
+5e08d65a18117bcf821fea79ae03c69063196c116864ae7261ab58a07000c3dc04d53cdab50a47461ab2b08421f0d63a4c349d91d05223634cc8e4f1af8bca74 ssmcli.initd
+c0c9a0f24005b0c0c609a82b7754f41a5511a730d6cf5a74f01c427596c5e676f9a96077cb917530ded49dca06a916cde62152f006a3856f9313d7681dc6ebf5 session-manager-plugin.initd
+"
diff --git a/testing/aws-session-manager-plugin/session-manager-plugin.initd b/testing/aws-session-manager-plugin/session-manager-plugin.initd
new file mode 100644
index 00000000000..d9241461e66
--- /dev/null
+++ b/testing/aws-session-manager-plugin/session-manager-plugin.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+description="Initialize Amazon Session Manager Plugin"
+command="/usr/bin/session-manager-plugin"
+
+start() {
+ ebegin "Starting Session Manager Plugin"
+ start-stop-daemon --start \
+ --exec ${command} ${command_args} \
+ -b --make-pidfile \
+ --pidfile "${pidfile}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Session Manager Plugin"
+ start-stop-daemon --stop \
+ --exec ${command} \
+ --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/testing/aws-session-manager-plugin/ssmcli.initd b/testing/aws-session-manager-plugin/ssmcli.initd
new file mode 100644
index 00000000000..e3c1bc950d5
--- /dev/null
+++ b/testing/aws-session-manager-plugin/ssmcli.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+description="Initialize Amazon SSMCLI"
+command="/usr/bin/ssmcli"
+
+start() {
+ ebegin "Starting SSMCLI"
+ start-stop-daemon --start \
+ --exec ${command} ${command_args} \
+ -b --make-pidfile \
+ --pidfile "${pidfile}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping SSMCLI"
+ start-stop-daemon --stop \
+ --exec ${command} \
+ --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/testing/awscli-plugin-endpoint/APKBUILD b/testing/awscli-plugin-endpoint/APKBUILD
new file mode 100644
index 00000000000..b5bb386ffc9
--- /dev/null
+++ b/testing/awscli-plugin-endpoint/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=awscli-plugin-endpoint
+pkgver=0.4
+pkgrel=2
+pkgdesc="Allows overriding endpoints in AWS CLI"
+url="https://github.com/wbingli/awscli-plugin-endpoint/"
+# aws-cli
+arch=""
+#arch="noarch !armhf !armv7 !ppc64le !s390x !x86"
+license="Apache-2.0"
+depends="aws-cli python3"
+makedepends="py3-setuptools"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="https://github.com/wbingli/awscli-plugin-endpoint/archive/refs/tags/$pkgver/awscli-plugin-endpoint-$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir" --skip-build
+}
+
+sha512sums="
+0e81130ac6baf7b43a77e37213cbc042dca0cefd4a43db92cd6d7fe53d0f81e902d35ea055669477001158ee2cb5e898f5ea9474167a18203ecb7392f183d14a awscli-plugin-endpoint-0.4.tar.gz
+"
diff --git a/testing/awslogs/APKBUILD b/testing/awslogs/APKBUILD
deleted file mode 100644
index e44098cbc65..00000000000
--- a/testing/awslogs/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Paul Bredbury <brebs@sent.com>
-# Maintainer:
-pkgname=awslogs
-pkgver=0.11.0
-pkgrel=2
-pkgdesc="AWS CloudWatch log retriever"
-url="https://github.com/jorgebastida/awslogs"
-arch="noarch"
-license="BSD-3-Clause-Attribution"
-depends="py3-boto3 py3-jmespath py3-termcolor py3-dateutil"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jorgebastida/awslogs/archive/$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --root="$pkgdir"
-}
-
-sha512sums="30118717535ef46acc387473a0dffc61169e234b290555097db4d0deb0cfedba23a18147c9c40bc1f983f5ac18a051f057ec6aaa13a1ca8d7caa23e3c53a3e1b awslogs-0.11.0.tar.gz"
diff --git a/testing/azorius/APKBUILD b/testing/azorius/APKBUILD
new file mode 100644
index 00000000000..629891b181a
--- /dev/null
+++ b/testing/azorius/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=azorius
+pkgver=0.3.4
+pkgrel=2
+pkgdesc="Social link aggregator and comment forum with ActivityPub"
+url="https://azorius.net/"
+arch="all"
+license="ISC"
+makedepends="go sqlite-dev"
+install="$pkgname.pre-install"
+pkgusers="azorius"
+pkggroups="azorius"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://humungus.tedunangst.com/r/azorius/d/azorius-$pkgver.tgz
+ azorius.initd
+ azorius.confd
+
+ upgradedb.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make
+}
+
+check() {
+ ./azorius version
+
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 azorius -t "$pkgdir"/usr/bin/
+ install -dm750 -o azorius -g azorius "$pkgdir"/var/lib/azorius
+
+ install -dm755 "$pkgdir"/usr/share/webapps/azorius
+ install -Dm644 docs/*.html -t "$pkgdir"/usr/share/webapps/azorius/docs/
+ install -Dm644 views/* -t "$pkgdir"/usr/share/webapps/azorius/views/
+
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+ local man sec fname; for man in \
+ docs/*.1 \
+ docs/*.7 \
+ docs/*.8
+ do
+ fname="$(basename $man)"
+ sec="${fname##*.}"
+
+ case "$fname" in
+ azorius*)
+ install -Dm644 $man \
+ "$pkgdir"/usr/share/man/man$sec/$fname
+ ;;
+ *)
+ install -Dm644 $man \
+ "$pkgdir"/usr/share/man/man$sec/azorius-$fname
+ ;;
+ esac
+ done
+
+ install -Dm755 "$srcdir"/azorius.initd "$pkgdir"/etc/init.d/azorius
+ install -Dm644 "$srcdir"/azorius.confd "$pkgdir"/etc/conf.d/azorius
+}
+
+sha512sums="
+6475846d8f6972d34a6672eee62ce7fbcce7524fd6e980c60e874699b714c4ce550b35806625e6b60f00b9e2fb85175998d715644993fb169809b60343642725 azorius-0.3.4.tgz
+aa8641ef0a4c6b27d4ac21f2dd974dcd090f5867ee314c4322f39284a8e80b430f522fcb75c51db8dd0c00791a2c76652827eda091183ee57a2b3f8c97d8b88c azorius.initd
+fb522c19c7debd64c57087d5a77f03f0418e0eb929c570cbb0cb5fb36a97e63b09b34bc4137aff36fe625fb3ced8b1d16529a8ba1af79cffa67a9033acfa7a1d azorius.confd
+45878a9c132bfa2faa6e142b2b7494bb64a183112356481b651e90fec5f011fc3da3a882316034ffd73ec00d913aa2b678806684ed2eb334704e6aa1a8245b80 upgradedb.patch
+"
diff --git a/testing/azorius/azorius.confd b/testing/azorius/azorius.confd
new file mode 100644
index 00000000000..287194b0af3
--- /dev/null
+++ b/testing/azorius/azorius.confd
@@ -0,0 +1,16 @@
+# Configuration for /etc/init.d/azorius
+
+# Azorius data directory
+#data_dir="/var/lib/azorius"
+
+# Azorius view directory
+#view_dir="/usr/share/webapps/azorius"
+
+# Azorius log file
+#log_file="/var/log/azorius.log"
+
+# Azorius listen ip & port
+#listen_addr="127.0.0.1:8282"
+
+# Additional options to pass to Azorius
+#extra_opts=""
diff --git a/testing/azorius/azorius.initd b/testing/azorius/azorius.initd
new file mode 100644
index 00000000000..5a03bdbbf8a
--- /dev/null
+++ b/testing/azorius/azorius.initd
@@ -0,0 +1,94 @@
+#!/sbin/openrc-run
+
+name=azorius
+description="Azorius is an ActivityPub link aggregator and comment forum"
+
+extra_stopped_commands="setup upgradedb cleanup"
+extra_started_commands="adduser chpass"
+description_setup="Initialize a new azorius.db"
+description_upgradedb="Upgrade azorius.db to new schema"
+description_cleanup="Move old attachments to trash"
+description_adduser="Add a new user account"
+description_chpass="Change password of user"
+
+: ${data_dir:="/var/lib/azorius"}
+: ${view_dir:="/usr/share/webapps/azorius"}
+: ${log_file:="/var/log/azorius.log"}
+: ${listen_addr:="127.0.0.1:8282"}
+
+command="/usr/bin/azorius"
+command_args="
+ -datadir $data_dir
+ -viewdir $view_dir
+ -log $log_file
+ $extra_opts
+ "
+command_background="yes"
+command_user="azorius:azorius"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need localmount net
+ after firewall
+}
+
+fix_perms() {
+ checkpath -f -m 0640 -o "$command_user" "$log_file"
+ checkpath -d -m 0750 -o "$command_user" "$data_dir"
+}
+
+start_pre() {
+ fix_perms || return 1
+
+ if [ ! -f "$data_dir/azorius.db" ]; then
+ setup || return 1
+ fi
+
+ azorius_exec setconfig listenaddr "$listen_addr"
+}
+
+setup() {
+ local db_file="$data_dir/azorius.db"
+
+ fix_perms || return 1
+
+ if [ -f "$db_file" ]; then
+ eerror "$db_file already exists!"
+ return 1
+ fi
+
+ ebegin "Creating a new database at $db_file"
+ azorius_exec init
+ eend $?
+}
+
+adduser() {
+ azorius_exec adduser
+}
+
+chpass() {
+ read -p "username: " username
+
+ azorius_exec chpass $username
+}
+
+upgradedb() {
+ fix_perms || return 1
+
+ ebegin "Upgrading the Azorius database"
+ azorius_exec upgrade
+ eend $?
+}
+
+cleanup() {
+ fix_perms || return 1
+
+ ebegin "Cleaning up Azorius attachments"
+ azorius_exec trash
+ eend $?
+}
+
+azorius_exec() {
+ start-stop-daemon --exec "$command" --user "$command_user" \
+ -- $command_args $*
+}
diff --git a/testing/azorius/azorius.pre-install b/testing/azorius/azorius.pre-install
new file mode 100644
index 00000000000..1ecc926660b
--- /dev/null
+++ b/testing/azorius/azorius.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S azorius 2>/dev/null
+adduser -S -D -H \
+ -h /var/lib/azorius \
+ -s /sbin/nologin \
+ -G azorius \
+ -g "Azorius federated link sharer" \
+ azorius 2>/dev/null
+
+exit 0
diff --git a/testing/azorius/upgradedb.patch b/testing/azorius/upgradedb.patch
new file mode 100644
index 00000000000..9fc2d5080a2
--- /dev/null
+++ b/testing/azorius/upgradedb.patch
@@ -0,0 +1,11 @@
+--- a/upgradedb.go
++++ b/upgradedb.go
+@@ -116,7 +116,7 @@
+ var lnk string
+ err := rows.Scan(&postid, &lnk)
+ if err != nil {
+- elog.Fatalf("can't scan link: %s")
++ elog.Fatalf("can't scan link: %s", lnk)
+ }
+ m := re_linkhost.FindStringSubmatch(lnk)
+ if len(m) > 1 {
diff --git a/testing/azote/APKBUILD b/testing/azote/APKBUILD
new file mode 100644
index 00000000000..068528edeb5
--- /dev/null
+++ b/testing/azote/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Matthew T Hoare <matthew.t.hoare@gmail.com>
+# Maintainer: Matthew T Hoare <matthew.t.hoare@gmail.com>
+pkgname=azote
+pkgver=1.12.4
+pkgrel=1
+pkgdesc="Wallpaper and colour manager for Sway, i3 and other window managers"
+url="https://github.com/nwg-piotr/azote"
+arch="noarch"
+license="GPL-3.0-or-later AND BSD-3-Clause"
+depends="
+ feh
+ gtk+3.0
+ py3-cairo
+ py3-gobject3
+ py3-pillow
+ py3-send2trash
+ python3
+ xrandr
+ "
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+options="!check" # no checks
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/nwg-piotr/azote/archive/v$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+
+ install -Dm755 dist/azote "$pkgdir"/usr/bin/azote
+ install -D -t "$pkgdir"/usr/share/icons/hicolor/scalable/apps/azote.svg dist/azote.svg
+ install -D -t "$pkgdir"/usr/share/"$pkgname" dist/indicator_active.png
+ install -D -t "$pkgdir"/usr/share/"$pkgname" dist/indicator_attention.png
+ install -D -t "$pkgdir"/usr/share/applications dist/azote.desktop
+}
+
+sha512sums="
+c40beafd5fa0d5337d0b09b9f0ab0e128a46d2e2eea1ecf0ef082ade2d531e4ef70d57dc932226ea7a88d2b4a72340ae0f41e049152b80d6c0d9da0ecae90640 azote-1.12.4.tar.gz
+"
diff --git a/testing/azpainter/APKBUILD b/testing/azpainter/APKBUILD
new file mode 100644
index 00000000000..d2ddfffd8ec
--- /dev/null
+++ b/testing/azpainter/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=azpainter
+pkgver=3.0.7
+pkgrel=0
+pkgdesc="Paint software for editing illustrations and images"
+url="http://azsky2.html.xdomain.jp"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ fontconfig-dev
+ freetype-dev
+ libpng-dev
+ libx11-dev
+ libxcursor-dev
+ libxext-dev
+ libxi-dev
+ tiff-dev
+ samurai
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-v$pkgver.tar.gz::https://gitlab.com/azelpg/azpainter/-/archive/v$pkgver/azpainter-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # No tests
+
+build() {
+ ./configure --prefix=/usr
+ samu -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" samu -C build install
+}
+
+sha512sums="
+68002777fa9df7bac78d6d99231400ceb9ca89a0fb7233f5abe90d2c376746d4a56e38c663fecdc07daf84a27b7fb43190efc8be6282611ba87b683d3851ec2e azpainter-v3.0.7.tar.gz
+"
diff --git a/testing/azure-iot-sdk-c-static/001-c-utility.patch b/testing/azure-iot-sdk-c-static/001-c-utility.patch
deleted file mode 100644
index 9b746a13175..00000000000
--- a/testing/azure-iot-sdk-c-static/001-c-utility.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/c-utility/pal/linux/socket_async_os.h b/c-utility/pal/linux/socket_async_os.h
-index bd59e48..1797089 100644
---- a/c-utility/pal/linux/socket_async_os.h
-+++ b/c-utility/pal/linux/socket_async_os.h
-@@ -10,7 +10,7 @@
- #include <sys/select.h>
- #include <netinet/in.h>
- #include <netinet/tcp.h>
--#include <sys/errno.h>
-+#include <errno.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <netdb.h>
diff --git a/testing/azure-iot-sdk-c-static/APKBUILD b/testing/azure-iot-sdk-c-static/APKBUILD
index a8655b64ac4..52152ec8bf6 100644
--- a/testing/azure-iot-sdk-c-static/APKBUILD
+++ b/testing/azure-iot-sdk-c-static/APKBUILD
@@ -1,25 +1,25 @@
# Contributor: Michael John <gosh.mike@gmail.com>
# Maintainer: Michael John <gosh.mike@gmail.com>
pkgname=azure-iot-sdk-c-static
-pkgver=1.3.7
-pkgrel=1
+pkgver=1.11.0
+pkgrel=0
pkgdesc="Azure IoT SDK"
url="https://github.com/Azure/azure-iot-sdk-c"
arch="all"
license="MIT"
options="!check" # make check not implemented
makedepends="cmake openssl-dev openssl-libs-static libcurl curl-dev libuuid util-linux-dev busybox"
-_azure_c_shared_utility_commit="48f7a556865731f0e96c47eb5e9537361f24647c"
-_azure_umqtt_c_commit="65cdd1013715fb9d208c42f957eb353fbe22bafb"
-_azure_uamqp_c_commit="142cfab9d66c6f81ea0cceb635f31e00cfa51c77"
-_parson_commit="c5bb9557fe98367aa8e041c65863909f12ee76b2"
-_uhttp_commit="b67a6bfa0d018a8a23176ee214e46c208fc323c3"
-_riot_commit="bc97a5eaff53535eddbdf95b4f477c6caf3b7788"
-_utpm_commit="afe8ad192502979e2b754c7d7c0b2e7178c78d09"
+_azure_c_shared_utility_commit="4f1b7cd6bf48833fe4b9e23e2ff07510753faee5"
+_azure_umqtt_c_commit="9201d60bbc12a02ac5456b6105bb50919d392105"
+_azure_uamqp_c_commit="b7bdf307a0db8840156d9f6e40f704c1d5924306"
+_parson_commit="4158fdbea7da5a7c7efb182b69707c78f35a398f"
+_uhttp_commit="33485e2e43f9c8f186dfff8afda7efd905b636f1"
+_riot_commit="f6bebff2f5a68f5bc18d23ed164800db33b7d2a4"
+_utpm_commit="4fc2aa8717f15ad22e4cd9571d2784cef25932be"
_azure_macro_utils_c_commit="5926caf4e42e98e730e6d03395788205649a3ada"
-_umock_c_commit="5e3d93112360ee2d4a622b1c48eb70896da3e8c7"
-_azure_c_testrunnerswitcher_commit="a33cd0a8524da8e45642baa112a506d4d2e5a59e"
-_azure_ctest_commit="13baad856c3cb9e5457bff52bc8c2de87f21fa07"
+_umock_c_commit="504193e65d1c2f6eb50c15357167600a296df7ff"
+_azure_c_testrunnerswitcher_commit="8734bd6c53c88dd6c0cea8e87d70b9964726484a"
+_azure_ctest_commit="4aa84c45236ecda21983fb682f542f17d0b21e19"
source="$pkgname-$pkgver.tar.gz::https://github.com/Azure/azure-iot-sdk-c/archive/$pkgver.tar.gz
$pkgname-$pkgver-azure_c_shared_utility.tar.gz::https://github.com/Azure/azure-c-shared-utility/archive/$_azure_c_shared_utility_commit.tar.gz
$pkgname-$pkgver-azure_umqtt_c.tar.gz::https://github.com/Azure/azure-umqtt-c/archive/$_azure_umqtt_c_commit.tar.gz
@@ -28,11 +28,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/Azure/azure-iot-sdk-c/archiv
$pkgname-$pkgver-uhttp.tar.gz::https://github.com/Azure/azure-uhttp-c/archive/$_uhttp_commit.tar.gz
$pkgname-$pkgver-riot.tar.gz::https://github.com/Microsoft/RIoT/archive/$_riot_commit.tar.gz
$pkgname-$pkgver-utpm.tar.gz::https://github.com/Azure/azure-utpm-c/archive/$_utpm_commit.tar.gz
- $pkgname-$pkgver-azure_macro_utils_c.tar.gz::https://github.com/Azure/azure-macro-utils-c/archive/$_azure_macro_utils_c_commit.tar.gz
+ $pkgname-$pkgver-macro_utils_c.tar.gz::https://github.com/Azure/macro-utils-c/archive/$_azure_macro_utils_c_commit.tar.gz
$pkgname-$pkgver-umock_c.tar.gz::https://github.com/Azure/umock-c/archive/$_umock_c_commit.tar.gz
- $pkgname-$pkgver-azure_c_testrunnerswitcher.tar.gz::https://github.com/Azure/azure-c-testrunnerswitcher/archive/$_azure_c_testrunnerswitcher_commit.tar.gz
- $pkgname-$pkgver-azure_ctest.tar.gz::https://github.com/Azure/azure-ctest/archive/$_azure_ctest_commit.tar.gz
- 001-c-utility.patch
+ $pkgname-$pkgver-c_testrunnerswitcher.tar.gz::https://github.com/Azure/c-testrunnerswitcher/archive/$_azure_c_testrunnerswitcher_commit.tar.gz
+ $pkgname-$pkgver-ctest.tar.gz::https://github.com/Azure/azure-ctest/archive/$_azure_ctest_commit.tar.gz
"
builddir="$srcdir/${pkgname%-static}-$pkgver"
@@ -45,10 +44,10 @@ prepare() {
mv "$srcdir"/azure-uhttp-c-$_uhttp_commit/* "$builddir"/deps/uhttp/
mv "$srcdir"/RIoT-$_riot_commit/* "$builddir"/provisioning_client/deps/RIoT/
mv "$srcdir"/azure-utpm-c-$_utpm_commit/* "$builddir"/provisioning_client/deps/utpm/
- mv "$srcdir"/azure-macro-utils-c-$_azure_macro_utils_c_commit/* "$builddir"/deps/azure-macro-utils-c/
+ mv "$srcdir"/macro-utils-c-$_azure_macro_utils_c_commit/* "$builddir"/deps/azure-macro-utils-c/
mv "$srcdir"/umock-c-$_umock_c_commit/* "$builddir"/deps/umock-c/
- mv "$srcdir"/azure-c-testrunnerswitcher-$_azure_c_testrunnerswitcher_commit/* "$builddir"/deps/azure-c-testrunnerswitcher/
- mv "$srcdir"/azure-ctest-$_azure_ctest_commit/* "$builddir"/deps/azure-ctest/
+ mv "$srcdir"/c-testrunnerswitcher-$_azure_c_testrunnerswitcher_commit/* "$builddir"/deps/azure-c-testrunnerswitcher/
+ mv "$srcdir"/ctest-$_azure_ctest_commit/* "$builddir"/deps/azure-ctest/
default_prepare
}
@@ -75,18 +74,21 @@ build() {
package() {
cd "$builddir"/cmake-build
make DESTDIR="$pkgdir" install
+
+ mv "$pkgdir"/usr/cmake "$pkgdir"/usr/lib/cmake
}
-sha512sums="a6e9b15d42d91c7c5bd553317af1e4cc1bd84b87da447e476ad2c851db264aaab21da8d1816542cb7a6f12f0ca34a7e09349f6d0af3517567fdf3ff904ce48b3 azure-iot-sdk-c-static-1.3.7.tar.gz
-c20074707e8601e090ee8daac1d96fdfb4f60ac60fd9c824dad81aa4c2f22b04733c82c01c1ae92110c26871b81674e8771d9ed65081f1c0c197a362275a28f1 azure-iot-sdk-c-static-1.3.7-azure_c_shared_utility.tar.gz
-8cd33dcde966132e2aa0c6d931e75f9bcdc5734d57d8f6bb8a922711b0b63c2f0e58d379fe92371886387dfbb0b8c117b512873363eb76cf22fa985dbf11d52e azure-iot-sdk-c-static-1.3.7-azure_umqtt_c.tar.gz
-80f95bc969c2e50124622561b5f939e981a8d317e3e9514e52ce020f0f20a125622bf914f16927edafc7ff3c878fb1d6a28f4f5e66bda52dcc8aa2dc34761f73 azure-iot-sdk-c-static-1.3.7-azure_uamqp_c.tar.gz
-8c9a4ebd4e2cccac17b21bc8e51e38b185b5b87ba7fb77321158751978bef2f40166acd8265e8b0589fb76b93998a40a09d5cd2030e59c3f01c6c4727b8abc0b azure-iot-sdk-c-static-1.3.7-parson.tar.gz
-75fafe242324bb2fc72befdd06427350e6f99aec9496fdf38b9660e7965fad89276ee543f36c3ba3360fc99b8301e74e2c1723d17f39e8471beee3e32cacb348 azure-iot-sdk-c-static-1.3.7-uhttp.tar.gz
-e2655a4846c7ae15e1a0d3638b49e99dcb1d50b6aeb6ac9a85498be66e904af84d86ee1d739fa3122e539a5a1fdc125dcb679098be040f386bf4ec63c0679570 azure-iot-sdk-c-static-1.3.7-riot.tar.gz
-75b7ac6a2686bb09fe0ff17c159d2b7043dca37a63f91939904e187955ce63c1736393bf16674ff25443cf1898a0b319ae4a326a12af5b733bc7fd54c86c0584 azure-iot-sdk-c-static-1.3.7-utpm.tar.gz
-97621f276657af976c4022c9600540ecae2287b3b386b9e097d661828a62c120348d354b3f86f3ef4d49f3c54830887662d3910ed5cec4a634949fa389b4ad55 azure-iot-sdk-c-static-1.3.7-azure_macro_utils_c.tar.gz
-9f5c0ce782f66a41e702e2d54dcff92b07b30e7c2be0ee2c63a56e2bff0c26a1de7f77abcb2a964d668deea817dcb3a4771e328707c2d982c23526465c950608 azure-iot-sdk-c-static-1.3.7-umock_c.tar.gz
-c42350f39116dfdc3788d596ca22cf7e6040745e795c11ca1f6cb4fd63eeb2d913e89a1a50e8170612dea28b2a01306e04d865bd26046a10458ecffac3c0b6a1 azure-iot-sdk-c-static-1.3.7-azure_c_testrunnerswitcher.tar.gz
-2f2dca81f101c33bf0a99c5e86012c0830686797b2934c7972c411f108ce0c31570988321cc58aabb3fcc0a2ecefbdab9dc950c7f922065b7bde8eb3207f2059 azure-iot-sdk-c-static-1.3.7-azure_ctest.tar.gz
-419f71afc6be9e9ee27c11d5bdc7cad3e417ac3bd2d8cbb2a706c9be81ff88d99fb810bfc84a2424fefb2076e27f13bfaf14370e450c08ac09e8ebadfe1ac5cd 001-c-utility.patch"
+sha512sums="
+7e78e4bded0d4b7acebc863350c451d40067d97112edf465efb99057e18854c279b40798fddd07051987f5abd1d9a7f220b3a7d108e0e1c35adae96ef6b73615 azure-iot-sdk-c-static-1.11.0.tar.gz
+5374585bd05ad2b55d2aa183d65b0b371d52b7f3145bcc9486e92d306d172109a8a6b13e14b56073426c3b02541044864d63fc728a9006a8dcd7ab552002be79 azure-iot-sdk-c-static-1.11.0-azure_c_shared_utility.tar.gz
+97d5383184c99186783738613d00e77041fe4ff3af4c14fe775e4be8b38a77a69d093ed8636a67ee85e8e09c8732b8839375aa178128f1ae58792d7c8698f829 azure-iot-sdk-c-static-1.11.0-azure_umqtt_c.tar.gz
+a23ddab35caa6f9303072f235591d64f5cfe3c2f4a16e9f317380a9d887f47f146b0bca5afcb2e3a199b146e8092192ede2ec68685edb8a7fb11cfe5641815b8 azure-iot-sdk-c-static-1.11.0-azure_uamqp_c.tar.gz
+52854bb2cdc890c0abf7c9eec2cb0dbc5452bc78c73b1364cb3ef8d37d636f41335e58a11f7fe6faae762dea3bee24ddccb020bc188229db143cf5e871f6f149 azure-iot-sdk-c-static-1.11.0-parson.tar.gz
+ad9c8f21cee431ac39a5ffc5f1007b76c5ba1768dca6cebf8fceda33747c3accbce48ace72173cfe746316a0a136a7e770005ba98b8f99e5bb3889b5bdc2e973 azure-iot-sdk-c-static-1.11.0-uhttp.tar.gz
+5d07bc934ab8d64c2bc930636fe135e677cac6bd6ae85ca6028eb4a28ef5776d6326bdd1f654646597a169f7da8e36318ea36496523052a826686aa1d959c967 azure-iot-sdk-c-static-1.11.0-riot.tar.gz
+cef3cb9c5578a88f0839f68429da72ac40f8f82cace53cf0ab93e9a8dcb546fab23f16c51bec960edf83fdbde92a069c72e9d8f794d891f6408a991a6e871ee6 azure-iot-sdk-c-static-1.11.0-utpm.tar.gz
+8f9fd02012202db6cff5b647edbc8332a2c03963e80182a630af6a884f23df96b8e24d60e5412bfc2a0a7f43240a54f9597040aa28a9d3e1566755e1d52aac62 azure-iot-sdk-c-static-1.11.0-macro_utils_c.tar.gz
+68d5d986314dbd46d20de2a9b9454154c11675c25d1b5a5b1cfecdd0c0945d9dc68d0348ec1dbb00b5d1a6a1f0356121ba561d7c8fffb97ab37864edade5a85b azure-iot-sdk-c-static-1.11.0-umock_c.tar.gz
+0b2d630228d65bf63be8c41ca998de24011165b3dc879a86df6372a253c1bfd9e928672fb0817ca8c036274ed05ef2ee58ec4b7102d3c5bf6222cac452da07d0 azure-iot-sdk-c-static-1.11.0-c_testrunnerswitcher.tar.gz
+0bf0ccbb7c63e62beb62b690a9d4d173518bada9987cf7c569c27ab9d843f1f5ca844001a542d617b402637bd16969f22c50361421c39cbfce73d662b9f423bb azure-iot-sdk-c-static-1.11.0-ctest.tar.gz
+"
diff --git a/testing/b2sum/APKBUILD b/testing/b2sum/APKBUILD
index 0097c45e845..85543bf7542 100644
--- a/testing/b2sum/APKBUILD
+++ b/testing/b2sum/APKBUILD
@@ -1,9 +1,9 @@
-# Maintainer: Alex Raschi <raschi.alex@gmail.com>
+# Maintainer:
pkgname=b2sum
_pkgname=BLAKE2
pkgver=20190729
_commit=997fa5ba1e14b52c554fb03ce39e579e6f27b90c
-pkgrel=0
+pkgrel=2
pkgdesc="BLAKE2 command line utility with multiple algorithms"
url="https://blake2.net/"
arch="all"
diff --git a/testing/b3sum/APKBUILD b/testing/b3sum/APKBUILD
deleted file mode 100644
index 02b46539362..00000000000
--- a/testing/b3sum/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
-pkgname=b3sum
-pkgver=0.3.4
-pkgrel=0
-pkgdesc="Command line implementation of the BLAKE3 hash function"
-url="https://blake3.io"
-arch="all !s390x !armhf !mips !mips64" # armhf: 'vaddq_u32': target specific option mismatch
-license="CC0-1.0 OR Apache-2.0"
-makedepends="cargo"
-source="b3sum-$pkgver.tar.gz::https://crates.io/api/v1/crates/b3sum/$pkgver/download"
-
-case "$CARCH" in
- arm*) _features="neon" ;;
-esac
-
-build() {
- cargo build --release --locked --no-default-features ${_features:+--features="$_features"}
-}
-
-check() {
- cargo test --release --locked --no-default-features ${_features:+--features="$_features"}
-}
-
-package() {
- cargo install --path . --root="$pkgdir/usr" --no-default-features ${_features:+--features "$_features"}
- rm "$pkgdir"/usr/.crates.toml
-}
-
-sha512sums="35fb4c821d7a9ef08c10f4bf31ddae229c16bd2fe83ebf8592a5d8e015c6080facde41385a97e1d93a6df3da026e92bcf2bb3caf4a17dc7c832dbb5b39b0b2c1 b3sum-0.3.4.tar.gz"
diff --git a/testing/b4/APKBUILD b/testing/b4/APKBUILD
new file mode 100644
index 00000000000..266d0b65f25
--- /dev/null
+++ b/testing/b4/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=b4
+pkgver=0.13.0
+pkgrel=0
+pkgdesc="Tool to help with email-based patch workflows"
+url="https://b4.docs.kernel.org/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="py3-requests git git-email git-filter-repo py3-dnspython py3-patatt py3-dkimpy"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="https://git.kernel.org/pub/scm/utils/b4/b4.git/snapshot/b4-$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+692d01970019d3fc604187882004d97f4286a22d87e5778d7830ec247757534a9d951fa8edfe9e04e8f14107c77b08b6c15024f37bd99f4abf3aa0d823df21e5 b4-0.13.0.tar.gz
+"
diff --git a/testing/babashka/APKBUILD b/testing/babashka/APKBUILD
new file mode 100644
index 00000000000..79fb70c1145
--- /dev/null
+++ b/testing/babashka/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Alex McGrath <amk@amk.ie>
+pkgname=babashka
+pkgver=1.3.188
+pkgrel=0
+pkgdesc="Native, fast starting Clojure interpreter for scripting"
+url="https://github.com/babashka/babashka"
+license="GPL-3.0-or-later"
+arch="x86_64" # openjdk-mandrel
+makedepends="openjdk17-static-libs openjdk17 openjdk-mandrel leiningen"
+
+_bbcore_hash="52a6037bd4b632bffffb04394fb4efd0cdab6b1e"
+_bbcurl_hash="e936acd40544eb637b6041c7e89454b21eb7ee34"
+_bbnrepl_hash="edd3d613bfb9bf3adabfd0bda5c3f5c6ee85ec20"
+_depsclj_hash="3e5dcdfe7b32e0d358a6f48cd46120596e83f02f"
+_depstar_hash="c419b8c82041855d55593c5b561fc7cea8234712"
+_fs_hash="374c36a3f7316e7a445f47220719283947a97e14"
+_pods_hash="6ad6045b94bc871c5107bfc75d39643b6c1bc8ba"
+_process_hash="abe7ea36ebf1d666834f73d35530df946a7c31bd"
+_sci_hash="ad79a6c476affd1f8208efbfdba57992a68c8056"
+
+source="babashka-$pkgver.tar.gz::https://github.com/babashka/babashka/archive/v$pkgver.tar.gz
+https://github.com/borkdude/sci/archive/$_sci_hash.tar.gz
+https://github.com/babashka/babashka.curl/archive/$_bbcurl_hash.tar.gz
+https://github.com/babashka/babashka.nrepl/archive/$_bbnrepl_hash.tar.gz
+https://github.com/babashka/depstar/archive/$_depstar_hash.tar.gz
+https://github.com/babashka/process/archive/$_process_hash.tar.gz
+https://github.com/babashka/pods/archive/$_pods_hash.tar.gz
+https://github.com/borkdude/deps.clj/archive/$_depsclj_hash.tar.gz
+https://github.com/babashka/fs/archive/$_fs_hash.tar.gz
+https://github.com/babashka/babashka.core/archive/$_bbcore_hash.tar.gz
+"
+
+options="!check" # fails due to a dep on version of go-sqlite3 that is broken on musl
+
+prepare() {
+ default_prepare
+
+ mv -Tv "$srcdir/sci-$_sci_hash" "$builddir/sci"
+ mv -Tv "$srcdir/babashka.curl-$_bbcurl_hash" "$builddir/babashka.curl"
+ mv -Tv "$srcdir/babashka.nrepl-$_bbnrepl_hash" "$builddir/babashka.nrepl"
+ mv -Tv "$srcdir/depstar-$_depstar_hash" "$builddir/depstar"
+ mv -Tv "$srcdir/process-$_process_hash" "$builddir/process"
+ mv -Tv "$srcdir/pods-$_pods_hash" "$builddir/pods"
+ mv -Tv "$srcdir/deps.clj-$_depsclj_hash" "$builddir/deps.clj"
+ mv -Tv "$srcdir/fs-$_fs_hash" "$builddir/fs"
+ mv -Tv "$srcdir/babashka.core-$_bbcore_hash" "$builddir/babashka.core"
+}
+
+build() {
+ export GRAALVM_HOME=/usr/lib/jvm/java-17-openjdk/
+ script/uberjar
+ script/compile
+}
+
+check() {
+ script/test
+}
+
+package() {
+ install -Dm755 "$builddir"/bb \
+ "$pkgdir"/usr/bin/bb
+}
+
+sha512sums="
+8b9b65c72289ad4cb1dce518807e826a3827232d235a4e8b3be2237c7fe74c95f6caeacb34a25525a4136275b80414aa1f1c9ec5a023aa998a63a0543e5421e3 babashka-1.3.188.tar.gz
+30bc3a066cb2f62c5384ad75166edc0e6d15970765dc9fee0b10bb7b24d8e44608d151abb2dfd12db32b6589756e6d853b171c0470289edda56abb9a0669f906 ad79a6c476affd1f8208efbfdba57992a68c8056.tar.gz
+94219410d4e7f750bb36486e5a5f5fda8bcd35333aadd325db5e299a9985272e17b334180cb2d0a7eb4c104db459d96bbd0f9c38fbc1592195c9658a7aacf390 e936acd40544eb637b6041c7e89454b21eb7ee34.tar.gz
+f8eee32ef1192212c6e774d24c88fc5aa9151f1452f22e3386a513f400aa346029d84cecb74c9e2f78d6d8fd3b8864890ef9198fa36caf7e29a9168f978ce418 edd3d613bfb9bf3adabfd0bda5c3f5c6ee85ec20.tar.gz
+b8cf5a3a518ef3ccd8c95bb9b3e6782123c9908501ceba74153c06b14f90ee3728fa3b0e2f66d8f4625f2e8ebe8d29efcfe3adcd85ecc8e067edb95b3359caa2 c419b8c82041855d55593c5b561fc7cea8234712.tar.gz
+174074639cd4bc04f8ea682f241afacb2d0b257e918defa9e528fdfe58e3597578398402cde36b65b609d7eeb37f908f504125814b072ecc2df87f8f66404511 abe7ea36ebf1d666834f73d35530df946a7c31bd.tar.gz
+3707693151a2fa032426448326e77a99493017af82bff902160483ce6d5bed13d51e5ea92750f1725f26f1b66ed9256260ebbcbbce30897370553252d540faca 6ad6045b94bc871c5107bfc75d39643b6c1bc8ba.tar.gz
+4a12791ee00b93dac45a7e9373e44398da17ba24577926f9c997a280be0027ba258912e6a8942042953a71bb8411a557bf03f6dd58909eb4706562d7598af88a 3e5dcdfe7b32e0d358a6f48cd46120596e83f02f.tar.gz
+e96fb6c41b7366690d05818cbf1c6285c630639d6f7bebc25e735fd3cdec772221c2b37d39f14bfd7ba6d6f1be05b7cdf77d9c1a5f1ab007d4c9efc190ac801a 374c36a3f7316e7a445f47220719283947a97e14.tar.gz
+2001b729aea5ca34b31e998920b77c935a15e796748fc4ee7943fd70ae8b1baa97885d56f7ab2cdb890cd4da4135112a3172c9a92ecfd1db047d0e6d5f738294 52a6037bd4b632bffffb04394fb4efd0cdab6b1e.tar.gz
+"
diff --git a/testing/babeltrace/APKBUILD b/testing/babeltrace/APKBUILD
deleted file mode 100644
index 283d8d4940d..00000000000
--- a/testing/babeltrace/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Michael Jeanson <mjeanson@efficios.com>
-# Maintainer: Michael Jeanson <mjeanson@efficios.com>
-pkgname=babeltrace
-pkgver=1.5.8
-pkgrel=0
-pkgdesc="Trace converter and read/write library"
-url="https://www.efficios.com/babeltrace"
-arch="all"
-license="MIT"
-depends_dev="glib-dev"
-makedepends="$depends_dev popt-dev util-linux-dev bash perl"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.efficios.com/files/babeltrace/babeltrace-$pkgver.tar.bz2"
-
-case "$CARCH" in
-mips*) options="!check";;
-esac
-
-build() {
- # This package uses _init functions to initialise extensions. With
- # --as-needed this will not work.
- export LDFLAGS="$LDFLAGS -Wl,--no-as-needed"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --disable-static \
- --disable-debug-info
- make V=1
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="827749ae8507efd433bb97ef668628837a3ff15b5be5097af5621d46055c6f10401da0be1f9d9f843a96c8c307b33745e04284d166e275e03b7ddb0a7dd57e96 babeltrace-1.5.8.tar.bz2"
diff --git a/testing/backup-manager/APKBUILD b/testing/backup-manager/APKBUILD
index 129d26df285..03fc0aabc7a 100644
--- a/testing/backup-manager/APKBUILD
+++ b/testing/backup-manager/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname="backup-manager"
pkgver="0.7.15"
-pkgrel=0
+pkgrel=1
pkgdesc="Backup Manager is a command line backup tool for GNU/Linux"
url="https://github.com/sukria/Backup-Manager"
arch="noarch"
diff --git a/testing/baculum/APKBUILD b/testing/baculum/APKBUILD
deleted file mode 100644
index 0f9401babac..00000000000
--- a/testing/baculum/APKBUILD
+++ /dev/null
@@ -1,140 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=baculum
-pkgver=9.6.3
-pkgrel=2
-pkgdesc="API layer to Baculum WebGUI tool for Bacula Community program"
-url="https://bacula.org/"
-arch="noarch"
-license="AGPLv3"
-depends=""
-_php=php7
-_api_depends="$_php-bcmath
- $_php-common
- $_php-mysqlnd
- $_php-pdo
- $_php-pgsql
- $_php-xml"
-_web_depends="
- $_php-common
- $_php-ctype
- $_php-dom
- $_php-mbstring
- $_php-xml
- "
-makedepends="
- $_api_depends
- $_web_depends
- "
-pkggroups="www-data"
-install=""
-subpackages="$pkgname-common:_common
- $pkgname-api:_api
- $pkgname-web:_web
- $pkgname-api-apache2:_api_apache2
- $pkgname-api-lighttpd:_api_lighttpd
- $pkgname-web-apache2:_web_apache2
- $pkgname-web-lighttpd:_web_lighttpd
- "
-source="https://downloads.sourceforge.net/project/bacula/bacula/$pkgver/bacula-gui-$pkgver.tar.gz
- fix-missing-common-pages.patch
- "
-builddir="$srcdir/"bacula-gui-$pkgver/baculum
-
-build() {
- :
-}
-
-check() {
- :
-}
-
-package() {
- mkdir -p "$pkgdir"/etc/baculum
- make -j1 DESTDIR="$pkgdir" HTTPDNAME=apache2
- # will be symlinks
- rmdir "$pkgdir"/usr/share/baculum/htdocs/assets \
- "$pkgdir"/usr/share/baculum/htdocs/protected/runtime \
- "$pkgdir"/var/cache/baculum
-
-}
-
-_common() {
- pkgdesc="Common libraries for Baculum"
- amove usr/share/baculum/htdocs/protected/Common \
- usr/share/baculum/htdocs/protected/application.xml \
- usr/share/baculum/htdocs/framework \
- usr/share/baculum/htdocs/themes \
- usr/share/baculum/htdocs/LICENSE \
- usr/share/baculum/htdocs/AUTHORS \
- usr/share/baculum/htdocs/README \
- usr/share/baculum/htdocs/INSTALL \
- usr/share/baculum/htdocs/index.php
- install -d -m775 -g www-data "$subpkgdir"/var/cache/baculum \
- "$subpkgdir"/var/log/baculum
- ln -s /var/cache/baculum \
- "$subpkgdir"/usr/share/baculum/htdocs/assets
- ln -s /var/cache/baculum \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/runtime
- ls -la "$subpkgdir"/var/cache/baculum
-}
-
-_api() {
- pkgdesc="Baculum API files"
- depends="$pkgname-common=$pkgver-r$pkgrel $_api_depends"
- amove \
- usr/share/baculum/htdocs/protected/API
- # will be symlinks
- rm -r "$subpkgdir"/usr/share/baculum/htdocs/protected/API/Config \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/API/Logs
- ln -s /var/cache/baculum "$subpkgdir"/usr/share/baculum/htdocs/protected/API/Logs
-}
-
-_web() {
- pkgdesc="Baculum Web files"
- depends="$pkgname-common=$pkgver-r$pkgrel $_web_depends"
- amove \
- usr/share/baculum/htdocs/protected/Web
- # will be symlinks
- rm -r "$subpkgdir"/usr/share/baculum/htdocs/protected/Web/Config \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/Web/Logs
- ln -s /var/cache/baculum "$subpkgdir"/usr/share/baculum/htdocs/protected/Web/Logs
-}
-
-_api_apache2() {
- pkgdesc="Apache configuration for Baculum API"
- amove etc/baculum/Config-api-apache \
- etc/apache2/conf.d/baculum-api.conf
- mkdir -p "$subpkgdir"/usr/share/baculum/htdocs/protected/API
- ln -s /etc/baculum/Config-api-apache \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/API/Config
-}
-
-_api_lighttpd() {
- pkgdesc="Lighttpd configuration for Baculum API"
- amove etc/baculum/Config-api-lighttpd \
- etc/baculum/baculum-api-lighttpd.conf
- mkdir -p "$subpkgdir"/usr/share/baculum/htdocs/protected/API
- ln -s /etc/baculum/Config-api-lighttpd \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/API/Config
-}
-
-_web_apache2() {
- pkgdesc="Apache configuration for Baculum WebGUI"
- amove etc/baculum/Config-web-apache \
- etc/apache2/conf.d/baculum-web.conf
- mkdir -p "$subpkgdir"/usr/share/baculum/htdocs/protected/Web
- ln -s /etc/baculum/Config-web-apache \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/Web/Config
-}
-
-_web_lighttpd() {
- pkgdesc="Lighttpd configuration for Baculum WebGUI"
- amove etc/baculum/Config-web-lighttpd \
- etc/baculum/baculum-web-lighttpd.conf
- mkdir -p "$subpkgdir"/usr/share/baculum/htdocs/protected/Web
- ln -s /etc/baculum/Config-web-lighttpd \
- "$subpkgdir"/usr/share/baculum/htdocs/protected/Web/Config
-}
-
-sha512sums="1c23523cea4554eb4fbddfd5372567456c1a0df5752b063a5336e33ab1739ea288fb83355a698f54ee576bbe022aa12252e0a9d9942adbdd9c5bda627a16e339 bacula-gui-9.6.3.tar.gz
-6c87cd9c4e2946077b9f0204cccf231b1e4f70620b18590511a84859b391acbc20ee8471c6d7b1c0e62b1b64ee2d77e39aee600b3ea474131cc39510e830155b fix-missing-common-pages.patch"
diff --git a/testing/baculum/fix-missing-common-pages.patch b/testing/baculum/fix-missing-common-pages.patch
deleted file mode 100644
index 9e51872f424..00000000000
--- a/testing/baculum/fix-missing-common-pages.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile b/baculum/Makefile
-index 224d35a..4851d80 100644
---- a/Makefile
-+++ b/Makefile
-@@ -53,6 +53,7 @@ apidatadirsrc = $(datadir)/$(apidir)/Class \
- $(datadir)/$(apidir)/Pages
-
- commondatadirsrc = $(datadir)/$(commondir)/Class \
-+ $(datadir)/$(commondir)/Pages \
- $(datadir)/$(commondir)/Portlets
-
- datafilesrc = $(datadir)/application.xml
diff --git a/testing/badwolf/APKBUILD b/testing/badwolf/APKBUILD
deleted file mode 100644
index 5a4ad9d375e..00000000000
--- a/testing/badwolf/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: Haelwenn (lanodan) Monnier <contact+alpine@hacktivis.me>
-pkgname=badwolf
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="A minimalist and privacy-oriented WebKit browser"
-url="https://hacktivis.me/projects/badwolf"
-arch="all"
-license="BSD-3-Clause"
-makedepends="webkit2gtk-dev"
-subpackages="$pkgname-doc $pkgname-dbg"
-source="https://hacktivis.me/releases/badwolf-$pkgver.tar.gz"
-
-build() {
- make PREFIX=/usr CFLAGS="$CFLAGS"
-}
-
-check() {
- make test
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="72437709a32937c33dc0509f94efbb5f3551b039017d3067b02f5d2b275eb4f3883dba8dc1c1b4b82bfa31a7b174f5fa393ceeefaf627d9b6c27be0fea5a0652 badwolf-1.0.0.tar.gz"
diff --git a/testing/baikal/APKBUILD b/testing/baikal/APKBUILD
new file mode 100644
index 00000000000..54205d178dd
--- /dev/null
+++ b/testing/baikal/APKBUILD
@@ -0,0 +1,69 @@
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=baikal
+pkgver=0.9.5
+pkgrel=0
+pkgdesc="Baïkal is a Calendar+Contacts server"
+url="https://sabre.io/baikal"
+arch="noarch"
+license="GPL-3.0-only"
+makedepends="
+ composer
+ rsync
+ "
+_phpv=82
+_php=php$_phpv
+_composer="$_php -d memory_limit=512M /usr/bin/composer.phar"
+_phpstan="$_php -d memory_limit=512M vendor/phpstan/phpstan/phpstan.phar"
+depends="
+ $_php-dom
+ $_php-openssl
+ $_php-pdo
+ $_php-session
+ $_php-simplexml
+ $_php-tokenizer
+ $_php-xmlreader
+ $_php-xmlwriter
+ "
+subpackages="
+ ${pkgname}_sqlite:_sqlite
+ "
+install="${pkgname}_sqlite.post-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sabre-io/baikal/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir"/Baikal-$pkgver
+_grp_www="www-data"
+
+build() {
+ mkdir -p build/baikal/Specific/db build/baikal/config
+ rsync -av \
+ Core html LICENSE README.md composer.json \
+ --exclude="*.swp" \
+ build/baikal
+ $_composer install --no-interaction --no-dev -d build/baikal
+}
+
+check() {
+ $_composer remove --dev friendsofphp/php-cs-fixer
+ $_phpstan analyse Core html
+}
+
+package() {
+ mkdir -p "$pkgdir"/var/www
+
+ cp -r build/baikal "$pkgdir"/var/www/
+
+ ln -s html "$pkgdir"/var/www/baikal/htm
+
+ chgrp $_grp_www "$pkgdir"/var/www/baikal/config
+ chgrp $_grp_www "$pkgdir"/var/www/baikal/Specific/db
+}
+
+_sqlite() {
+ depends="$pkgname $_php-pdo_sqlite"
+ pkgdesc="$pkgdesc (sqlite3 backend)"
+
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="
+2e50e51c5c70233d2a508b7bf87a1bcb629c01afc204628c13107cf4929e30fd8594ec85262bf5f7c41a10e5a26253a51ba89320e1bdbfbf99c16e0f4f6d9425 baikal-0.9.5.tar.gz
+"
diff --git a/testing/baikal/baikal_sqlite.post-install b/testing/baikal/baikal_sqlite.post-install
new file mode 100644
index 00000000000..1e6d3e17119
--- /dev/null
+++ b/testing/baikal/baikal_sqlite.post-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+db_file=/var/www/baikal/Specific/db/db.sqlite
+
+if ! [ -f "$db_file" ]; then
+ touch "$db_file"
+ chgrp www-data "$db_file"
+fi
+
+exit 0
diff --git a/testing/bake/01-no-backtrace-on-musl.patch b/testing/bake/01-no-backtrace-on-musl.patch
new file mode 100644
index 00000000000..f6b8a252414
--- /dev/null
+++ b/testing/bake/01-no-backtrace-on-musl.patch
@@ -0,0 +1,11 @@
+--- a/util/include/bake_util.h
++++ b/util/include/bake_util.h
+@@ -37,7 +37,7 @@
+ #define UT_EXPORT
+ #endif
+
+-#ifndef __ANDROID__
++#if !defined(__ANDROID__) && defined(__GLIBC__)
+ #define ENABLE_BACKTRACE
+ #endif
+
diff --git a/testing/bake/APKBUILD b/testing/bake/APKBUILD
new file mode 100644
index 00000000000..03d8fd76cca
--- /dev/null
+++ b/testing/bake/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Rob Blanckaert <basicer@gmail.com>
+# Maintainer: Rob Blanckaert <basicer@gmail.com>
+pkgname=bake
+pkgver=2.5.1
+pkgrel=0
+pkgdesc="A build system that lets you clone, build and run C/C++ projects with a single command"
+url="https://github.com/SanderMertens/bake"
+# other architectures unsupported
+arch="x86 x86_64 armv7 armhf aarch64"
+license="GPL-3.0-or-later"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/SanderMertens/bake/archive/refs/tags/$pkgver.tar.gz
+ 01-no-backtrace-on-musl.patch
+ "
+# no tests
+options="!check"
+
+build() {
+ make -C build-Linux
+}
+
+package() {
+ install -Dm755 bake "$pkgdir"/usr/bin/bake
+}
+
+sha512sums="
+22942f157cf3e54fb6418a93bcfc940a538894ca56551b93bcb0c0bb5e907614a6b67f06e79046aa55e8649a4ef59012a8bc4912898e772d4a75b05af06d31cc bake-2.5.1.tar.gz
+e42652d91c047baf398c53ac6a6761381482a23bdf5dabb85c552dd816517084cd7d03acf7dc72347625e164ccbad043416cd3e22e6af8f707f36648d994949a 01-no-backtrace-on-musl.patch
+"
diff --git a/testing/bakelite/APKBUILD b/testing/bakelite/APKBUILD
new file mode 100644
index 00000000000..052058e1b06
--- /dev/null
+++ b/testing/bakelite/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
+# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
+pkgname=bakelite
+pkgver=0.4.2
+pkgrel=0
+pkgdesc="still experimental incremental backup with strong cryptographic confidentiality baked into the data model"
+url="https://github.com/richfelker/bakelite"
+arch="all !riscv64" # textrels
+license="GPL-2.0-only"
+options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/richfelker/bakelite/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ install -Dm0755 bakelite "$pkgdir"/usr/bin/bakelite
+}
+
+sha512sums="
+b8a4e707f233e30680cd9b10d7f6ff3c9892592662763e59439eabdac7fdca859a1970e1abb213fdc7b1d638d9a90be7f0194ce98d35ad9798388356b2ac7ad4 bakelite-0.4.2.tar.gz
+"
diff --git a/testing/bananui-clock/APKBUILD b/testing/bananui-clock/APKBUILD
new file mode 100644
index 00000000000..a9f3ad98e01
--- /dev/null
+++ b/testing/bananui-clock/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Affe Null <affenull2345@gmail.com>
+pkgname=bananui-clock
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Alarm clock app for bananui"
+url="https://git.abscue.de/obp/bananui/clock"
+arch="all"
+license="GPL-3.0-or-later"
+depends="
+ alarmwakeup
+ "
+makedepends="
+ alarmwakeup-dev
+ bananui-dev
+ libnotify-dev
+ meson
+ "
+source="
+ bananui-clock-v$pkgver.tar.gz::https://git.abscue.de/obp/bananui/clock/-/archive/v$pkgver/clock-v$pkgver.tar.gz
+ "
+options="!check" # no tests available
+builddir="$srcdir/clock-v$pkgver"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir/" meson install --no-rebuild -C output
+}
+sha512sums="
+0539cf56510f5f2226e4a9e3a8b05e9f0c6c1ba528b1d337877a5206a953ee98ef5cb95a5560a9cfea0e0188fb825004c4f8e168b26619ee388d85c38145bcfa bananui-clock-v0.1.0.tar.gz
+"
diff --git a/testing/bananui-daemons/APKBUILD b/testing/bananui-daemons/APKBUILD
new file mode 100644
index 00000000000..01f9d17de9c
--- /dev/null
+++ b/testing/bananui-daemons/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Affe Null <affenull2345@gmail.com>
+pkgname=bananui-daemons
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Keypad controlled UI for feature phones (daemons)"
+url="https://git.abscue.de/obp/bananui/settings-daemons"
+arch="all"
+license="GPL-3.0-or-later"
+depends="
+ brightnessctl-udev
+ "
+makedepends="
+ glib-dev
+ meson
+ "
+source="
+ bananui-daemons-v$pkgver.tar.gz::https://git.abscue.de/obp/bananui/settings-daemons/-/archive/v$pkgver/settings-daemons-v$pkgver.tar.gz
+ "
+options="!check" # no tests available
+builddir="$srcdir/settings-daemons-v$pkgver"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir/" meson install --no-rebuild -C output
+}
+
+sha512sums="
+90cbe5c7af36d1e69fd9030fcea4c51d55c152532e88a3697fc1deacaa6b5f723505f65aa18b891db753ef9b51901349a36db6597195d8930f71823158eae450 bananui-daemons-v0.1.0.tar.gz
+"
diff --git a/testing/bananui-shell/APKBUILD b/testing/bananui-shell/APKBUILD
new file mode 100644
index 00000000000..0b1776cd538
--- /dev/null
+++ b/testing/bananui-shell/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Affe Null <affenull2345@gmail.com>
+pkgname=bananui-shell
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Keypad controlled UI for feature phones (shell)"
+url="https://git.abscue.de/obp/bananui/shell"
+arch="all !s390x" # blocked by phoc
+license="LGPL-3.0-or-later"
+makedepends="
+ bananui-dev
+ callaudiod-dev
+ eudev-dev
+ feedbackd-dev
+ gnome-desktop-dev
+ gnome-menus-dev
+ meson
+ wayland-protocols
+ "
+depends="
+ bananui-daemons
+ bash
+ phoc
+ superd
+ xwayland
+ "
+source="
+ bananui-shell-v$pkgver.tar.gz::https://git.abscue.de/obp/bananui/shell/-/archive/v$pkgver/shell-v$pkgver.tar.gz
+ "
+options="!check" # no tests available
+builddir="$srcdir/shell-v$pkgver"
+
+build() {
+ abuild-meson . output -Dsuperd=true
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir/" meson install --no-rebuild -C output
+}
+
+sha512sums="
+99ab6e9057bc69f075f20173edac6288b6598477d0c66a088526cd12b48118715bb211cc15482969b9d5ef1122708c6a249a14fb9afbfb872ee6663e13f1d80c bananui-shell-v0.2.0.tar.gz
+"
diff --git a/testing/bananui/APKBUILD b/testing/bananui/APKBUILD
new file mode 100644
index 00000000000..8296284dcfd
--- /dev/null
+++ b/testing/bananui/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Affe Null <affenull2345@gmail.com>
+pkgname=bananui
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="Keypad controlled UI for feature phones"
+url="https://git.abscue.de/obp/bananui/bananui"
+arch="all"
+license="LGPL-3.0-or-later"
+makedepends="
+ librsvg-dev
+ libxkbcommon-dev
+ meson
+ pango-dev
+ wayland-dev
+ wayland-protocols
+ "
+depends="
+ adwaita-icon-theme
+ font-opensans
+ hicolor-icon-theme
+ "
+_igel_commit="4fcf8c8e4522209485454d343f14cacf6ea922a7"
+source="
+ https://git.abscue.de/obp/bananui/bananui/-/archive/v$pkgver/bananui-v$pkgver.tar.gz
+ https://git.abscue.de/stachel-os/igel-interpreter/-/archive/$_igel_commit/igel-interpreter-$_igel_commit.tar.gz
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-demos
+ $pkgname-dev
+ "
+options="!check" # no tests available
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ rm -rf "$builddir/subprojects/igel-interpreter"
+ mv "$srcdir/igel-interpreter-$_igel_commit" "$builddir/subprojects/igel-interpreter"
+}
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir/" meson install --no-rebuild -C output
+}
+
+demos() {
+ depends="font-noto-emoji"
+ pkgdesc="$pkgdesc (demo applications)"
+ amove usr/bin/bananui-uitest usr/bin/bananui-menutest
+}
+
+sha512sums="
+05517d4f8ec5514df035edd8743ee78cad17ea4734c380fb88bdbcffd72e5968aae2a21635c828e6f13852faa421e1d2862aa1f0c5d053a4d8648708de81b6bb bananui-v2.0.0.tar.gz
+2450e908a93526f00fbb51e3de453adaf85fb12273ce025be6455061c1639046320cfb978e559209c57e18a81a076e1272a8a058eaf73ecf2b516e400fa94e29 igel-interpreter-4fcf8c8e4522209485454d343f14cacf6ea922a7.tar.gz
+"
diff --git a/testing/bankstown-lv2/APKBUILD b/testing/bankstown-lv2/APKBUILD
new file mode 100644
index 00000000000..9b16b5655ef
--- /dev/null
+++ b/testing/bankstown-lv2/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=bankstown-lv2
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="A barebones, fast LV2 bass enhancement plugin"
+url="https://crates.io/crates/bankstown-lv2"
+arch="aarch64" # for now needed only aarch64/apple silicon
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/chadmed/bankstown/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/"bankstown-$pkgver
+
+build() {
+ cargo auditable build --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ make DESTDIR=$pkgdir LIBDIR=/usr/lib install
+}
+
+sha512sums="
+74dbb96440f0260e08b3f96b28c310326d63bdb4360d4f43f2e1f9c89ff9c0fd4f3c81c78837e64df77e16034e28a23be217b647f3008cf5293c959a26f895d2 bankstown-lv2-1.1.0.tar.gz
+"
diff --git a/testing/barcode/APKBUILD b/testing/barcode/APKBUILD
new file mode 100644
index 00000000000..03ece95eea5
--- /dev/null
+++ b/testing/barcode/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: mio <miyopan@e.email>
+# Maintainer: mio <miyopan@e.email>
+pkgname=barcode
+pkgver=0.99
+pkgrel=1
+pkgdesc="Convert text strings to printed bars in various standards"
+url="https://www.gnu.org/software/barcode/"
+license="GPL-3.0-or-later"
+arch="all !ppc64le" # Build error on ppc64le
+source="https://ftp.gnu.org/gnu/barcode/barcode-$pkgver.tar.gz
+ common.patch
+ "
+options="!check" # No tests
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+
+ rm -r "$pkgdir"/usr/share/info
+}
+
+sha512sums="
+f500dbe7eaa657ed6879316835557533e0972c8740a8bb61bea46efdd4120827a3c412ca24fec6e1833395191521425dae272f10d8553a252896b363290118b1 barcode-0.99.tar.gz
+a8d7d5721d28f7ae882b192db5ca69cd1b4e0a737f514e9ef096643800739fe99b015932a9b38b90194a175a5e541258f3e9252711ef23e978b909860fa050aa common.patch
+"
diff --git a/testing/barcode/common.patch b/testing/barcode/common.patch
new file mode 100644
index 00000000000..50c807b6234
--- /dev/null
+++ b/testing/barcode/common.patch
@@ -0,0 +1,25 @@
+diff --git a/barcode.h b/barcode.h
+index ed90e0c..ff7b8b4 100644
+--- a/barcode.h
++++ b/barcode.h
+@@ -123,6 +123,6 @@ extern int Barcode_Version(char *versionname);
+ }
+ #endif
+
+-int streaming;
++extern int streaming;
+
+ #endif /* _BARCODE_H_ */
+diff --git a/library.c b/library.c
+index 30946ff..5390a2b 100644
+--- a/library.c
++++ b/library.c
+@@ -30,6 +30,8 @@
+ #endif
+ #include <errno.h>
+
++int streaming;
++
+ /*
+ * This function allocates a barcode structure and strdup()s the
+ * text string. It returns NULL in case of error
diff --git a/testing/barman/APKBUILD b/testing/barman/APKBUILD
index 202993f484e..773ddcd5f9d 100644
--- a/testing/barman/APKBUILD
+++ b/testing/barman/APKBUILD
@@ -1,30 +1,39 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=barman
-pkgver=2.10
-pkgrel=0
+pkgver=3.10.0
+pkgrel=1
pkgdesc="Backup and recovery manager for PostgreSQL"
-url="http://www.pgbarman.org"
+url="https://pgbarman.org"
arch="noarch"
-license="GPL"
-depends="python3 py3-setuptools rsync py3-argcomplete py3-dateutil py3-psycopg2 py3-argh"
-subpackages="$pkgname-doc"
-source="https://sourceforge.net/projects/pgbarman/files/${pkgver}/barman-${pkgver}.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+license="GPL-3.0-or-later"
+depends="python3 rsync postgresql-client py3-argcomplete py3-dateutil py3-psycopg2 py3-boto3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-pyc"
+pkgusers="barman"
+pkggroups="barman"
+install="$pkgname.pre-install"
+options="!check" #pytest does not start and I don't know why
+checkdepends="py3-pytest-timeout py3-mock py3-pytest-runner py3-pip py3-mock"
+source="$pkgname-$pkgver.tar.gz::https://github.com/EnterpriseDB/barman/releases/download/release/$pkgver/barman-$pkgver.tar.gz"
build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ install -Dm0644 ./scripts/barman.bash_completion \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -d -o $pkgusers -g $pkggroups -m 755 "$pkgdir"/var/log/$pkgname
+
+ cd doc
+ install -Dm0644 barman.conf -t "$pkgdir/etc"
}
-sha512sums="64e9386603158bfe19723ec273f8fb3e6856d76315a3e3c31ef489fcb8caaa44a019fff6087dd3d8810661ca8c613552680e5a10e9d673ef96962340dd12dd6a barman-2.10.tar.gz"
+sha512sums="
+84bdd314ee336b1e0863f42be071927da6d333e9a31655a69444c9922310d78f03d1a2a64a36565dc4f3469a33b0d2286ece796aa22b760e97e0610ce51aed25 barman-3.10.0.tar.gz
+"
diff --git a/testing/barman/barman.pre-install b/testing/barman/barman.pre-install
new file mode 100755
index 00000000000..48a58bc2b57
--- /dev/null
+++ b/testing/barman/barman.pre-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+addgroup -S barman 2>/dev/null
+adduser -SD -h /var/lib/barman/ -s /sbin/nologin -G barman -g barman barman 2>/dev/null
+exit 0
diff --git a/testing/barnyard2/APKBUILD b/testing/barnyard2/APKBUILD
index 7ad8291c5bd..b839e67530d 100644
--- a/testing/barnyard2/APKBUILD
+++ b/testing/barnyard2/APKBUILD
@@ -3,15 +3,16 @@
pkgname=barnyard2
pkgver=2.1.14_git20160413
_gitrev=f9186f2478bfb096c5a43bdb0c91985c3ef3e20d
-pkgrel=0
+pkgrel=1
pkgdesc="Parser for Snort unified/unified2 files"
url="https://github.com/firnsy/barnyard2"
-arch="all"
+# riscv64, ppc64le: blocked by snort -> luajit
+arch="all !ppc64le !riscv64"
license="GPL-2.0-only"
depends="snort"
install="$pkgname.pre-install"
makedepends="libtool autoconf automake make libpcap-dev libdnet-dev daq-dev
- mariadb-connector-c-dev postgresql-dev"
+ mariadb-connector-c-dev libpq-dev"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.zip::https://github.com/firnsy/barnyard2/archive/$_gitrev.zip
10-fix-output-fwsam-and-database_cache.patch
diff --git a/testing/barrier/0001-cstddef.patch b/testing/barrier/0001-cstddef.patch
new file mode 100644
index 00000000000..8cd4c340aa5
--- /dev/null
+++ b/testing/barrier/0001-cstddef.patch
@@ -0,0 +1,24 @@
+diff --git a/src/lib/base/Event.h b/src/lib/base/Event.h
+index 38a2cf11..7f4461c9 100644
+--- a/src/lib/base/Event.h
++++ b/src/lib/base/Event.h
+@@ -18,6 +18,7 @@
+
+ #pragma once
+
++#include <cstddef>
+ #include "common/basic_types.h"
+ #include "common/stdmap.h"
+
+diff --git a/src/lib/io/StreamBuffer.h b/src/lib/io/StreamBuffer.h
+index 364175f0..91246b3e 100644
+--- a/src/lib/io/StreamBuffer.h
++++ b/src/lib/io/StreamBuffer.h
+@@ -18,6 +18,7 @@
+
+ #pragma once
+
++#include <cstddef>
+ #include "base/EventTypes.h"
+ #include "common/stdlist.h"
+ #include "common/stdvector.h"
diff --git a/testing/barrier/APKBUILD b/testing/barrier/APKBUILD
new file mode 100644
index 00000000000..154459878f9
--- /dev/null
+++ b/testing/barrier/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=barrier
+pkgver=2.4.0
+pkgrel=1
+pkgdesc="share keyboard and mouse between systems over network"
+url="https://github.com/debauchee/barrier"
+arch="all"
+license="GPL-2.0-only"
+depends="hicolor-icon-theme"
+makedepends="qt5-qtbase-dev cmake avahi-dev libxtst-dev curl-dev gtest-dev samurai"
+subpackages="$pkgname-doc"
+_filesystemver=614bbe87b80435d87ab8791564370e0c1d13627d
+source="$pkgname-$pkgver.tar.gz::https://github.com/debauchee/barrier/archive/v$pkgver.tar.gz
+ https://github.com/gulrak/filesystem/archive/$_filesystemver/filesystem-$_filesystemver.tar.gz
+
+ 0001-cstddef.patch
+ "
+
+prepare() {
+ rmdir ext/gulrak-filesystem
+ mv "$srcdir"/filesystem-$_filesystemver ext/gulrak-filesystem
+
+ default_prepare
+}
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBARRIER_REVISION:STRING=00000000 \
+ -DBARRIER_VERSION_STAGE=RELEASE \
+ -DBARRIER_USE_EXTERNAL_GTEST=true
+ cmake --build build
+}
+
+check() {
+ PATH="$PATH:$PWD/build/bin" \
+ ctest --output-on-failure --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+
+ # license
+ install -Dm0644 LICENSE -t "$pkgdir"/usr/share/doc/"$pkgname"
+
+ # manpages
+ install -Dm0644 doc/*.1 -t "$pkgdir"/usr/share/man/man1
+
+ # examples
+ install -Dm0644 doc/barrier.conf.example* -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+dff8d95c358688952baee0bbbf56b818e40a6c0483d58f6cadd55558ab5d0cefc92a37b0751bfd70868686e1716c729871ae00a30ee9b0ba944f531dfb742449 barrier-2.4.0.tar.gz
+6190a994ce7296a7e0c29d1e079de9dbf5a16667f6339b52b4b2c537ba569f53fc12ee1c361ec1f38474c263a0b7aa995a95d41da9bf6cedc78c6231ce586b70 filesystem-614bbe87b80435d87ab8791564370e0c1d13627d.tar.gz
+113ec97e6b2076f46b9b03eabb84a63ad60f3c612a5bc1e8c1d80d8db54817805ffa9e3436dba87471963d329a27419ef94e192cd7f4809882587044a6704a8d 0001-cstddef.patch
+"
diff --git a/testing/bartib/APKBUILD b/testing/bartib/APKBUILD
new file mode 100644
index 00000000000..5b64805a5df
--- /dev/null
+++ b/testing/bartib/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=bartib
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="simple timetracker for the command line"
+url="https://github.com/nikolassv/bartib"
+arch="all !s390x !riscv64" # limeted by rust/cargo
+license="GPL-3.0-or-later"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/nikolassv/bartib/archive/refs/tags/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ cargo auditable install --frozen --offline --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="
+ba66195bf6bc382cf366de95aadb3b6c49c5d27bf772cd2cdbe082740df181c6efdd12d04a05cde6afe5c3b732226ba806981d27d275924e1b2c2545fd67cd3b bartib-1.0.1.tar.gz
+"
diff --git a/testing/base64c/APKBUILD b/testing/base64c/APKBUILD
new file mode 100644
index 00000000000..2ef81736c39
--- /dev/null
+++ b/testing/base64c/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=base64c
+pkgver=0.2.1
+pkgrel=0
+pkgdesc="Base64 encoding/decoding library for C"
+url="https://gitlab.nic.cz/turris/base64c"
+arch="all"
+license="MIT"
+makedepends="
+ autoconf
+ automake
+ libtool
+ "
+checkdepends="check-dev"
+subpackages="$pkgname-dev"
+source="https://gitlab.nic.cz/turris/base64c/-/archive/v$pkgver/base64c-v$pkgver.tar.bz2
+ no-valgrind.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ $(want_check && echo '--enable-tests' || :)
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+6183b8314ce7066b3fabfc155606da76d9690ff9ada924e64c86e607d050c453a0fd9a245ee8de732e7daccb5bd532c03e0b191f4f4cf1d49f97973461757754 base64c-v0.2.1.tar.bz2
+1c3d5617839107bf45e9fda590acce3fb9ab97f70b55ac49fd47d595e53fdbdd81ae65407f98efe21b9b34e1d711b706a2d25c6b69b121058207006622cceb9d no-valgrind.patch
+"
diff --git a/testing/base64c/no-valgrind.patch b/testing/base64c/no-valgrind.patch
new file mode 100644
index 00000000000..b5b1731579c
--- /dev/null
+++ b/testing/base64c/no-valgrind.patch
@@ -0,0 +1,26 @@
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -16,23 +16,6 @@
+ env AM_TAP_AWK='$(AWK)' TEST_OUTPUT_TAP="/dev/stdout" \
+ '$(SHELL)' '$(srcdir)/.aux/tap-driver.sh'
+
+-## Valgrind
+-VALGRIND_memcheck_FLAGS = \
+- --leak-check=full \
+- --show-leak-kinds=definite,indirect,possible \
+- --track-fds=yes \
+- --track-origins=yes \
+- --trace-children=yes \
+- --child-silent-after-fork=no
+-@VALGRIND_CHECK_RULES@
+-
+-# Rules generated for valgrind are for some reason called *-am. This is just an alias
+-check-valgrind: check-valgrind-am
+-define check_valgrind_rule
+-check-valgrind-$(1): check-valgrind-$(1)-am
+-endef
+-$(foreach tool,$(valgrind_tools),$(eval $(call check_valgrind_rule,$(tool))))
+-
+ ## Coverage
+ CODE_COVERAGE_LCOV_OPTIONS := --no-external
+ CODE_COVERAGE_GENHTML_OPTIONS := --prefix $(dir $(abs_top_builddir))
diff --git a/testing/bat/APKBUILD b/testing/bat/APKBUILD
deleted file mode 100644
index e7696f6d782..00000000000
--- a/testing/bat/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Chloe Kudryavtsev <toast@toastin.space>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=bat
-pkgver=0.15.4
-pkgrel=0
-pkgdesc="A cat(1) clone with wings"
-url="https://github.com/sharkdp/bat"
-arch="x86_64 x86 armhf armv7 aarch64 ppc64le" # limited by rust/cargo
-license="Apache-2.0"
-depends="less" # Required for RAW-CONTROL-CHARS
-makedepends="cargo clang-dev llvm-dev"
-options="net"
-subpackages="$pkgname-doc $pkgname-fish-completion::noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sharkdp/bat/archive/v$pkgver.tar.gz"
-
-export CARGO_HOME="$srcdir"/cargo
-
-build() {
- cargo build --release --locked
-}
-
-check() {
- cargo test --release --locked
-}
-
-package() {
- install -Dm755 target/release/"$pkgname" "$pkgdir"/usr/bin/"$pkgname"
- find "$srcdir" -name bat.1 -exec install -Dm644 {} \
- "$pkgdir/usr/share/man/man1/bat.1" \;
-
- find "$srcdir" -name bat.fish -exec install -Dm644 {} \
- "$pkgdir"/usr/share/fish/completions/bat.fish \;
-}
-
-sha512sums="f4338799047c1169c759a0ddf61481972d53103c5e29374ec2fb7bf814458ff6b724aacd551264ad7fc5e135c1e4484a38e391e046e76e113d404a92442db538 bat-0.15.4.tar.gz"
diff --git a/testing/bazel/APKBUILD b/testing/bazel/APKBUILD
deleted file mode 100644
index 01c061d0603..00000000000
--- a/testing/bazel/APKBUILD
+++ /dev/null
@@ -1,97 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=bazel
-pkgver=2.0.0
-pkgrel=5
-pkgdesc="A fast, scalable, multi-language and extensible build system"
-url="https://bazel.build"
-arch="x86_64"
-license="Apache-2.0"
-depends="bash libarchive openjdk8 zip unzip"
-makedepends="python3 linux-headers protobuf"
-options="!strip"
-subpackages="
- $pkgname-doc
- $pkgname-bash-completion:bashcomp:noarch
- $pkgname-zsh-completion:zshcomp:noarch
- $pkgname-examples::noarch
- "
-source="https://github.com/bazelbuild/bazel/releases/download/$pkgver/bazel-$pkgver-dist.zip
- bash_completion.patch
- python3.patch"
-
-build() {
- export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
- export PYTHON_BIN_PATH=/usr/bin/python3
-
- env EXTRA_BAZEL_ARGS="--host_javabase=@local_jdk//:jdk" \
- bash ./compile.sh
-
- ./output/bazel shutdown
-
- ./scripts/generate_bash_completion.sh \
- --bazel=output/bazel \
- --output=output/bazel-complete.bash \
- --prepend=scripts/bazel-complete-header.bash \
- --prepend=scripts/bazel-complete-template.bash
-
- echo startup --server_javabase=$JAVA_HOME \
- >> scripts/packages/bazel.bazelrc
-}
-
-check() {
- ./output/bazel test \
- --verbose_failures \
- --spawn_strategy=standalone \
- --genrule_strategy=standalone \
- --verbose_test_summary \
- --test_verbose_timeout_warnings \
- examples/cpp:hello-success_test
-
- ./output/bazel shutdown
-}
-
-package() {
- install -Dm755 ./scripts/packages/bazel.sh "$pkgdir"/usr/bin/bazel
- install -Dm755 ./output/bazel "$pkgdir"/usr/bin/bazel-real
- install -Dm755 ./scripts/packages/bazel.bazelrc \
- "$pkgdir"/etc/bazel.bazelrc
-
- install -m644 -D -t "$pkgdir"/usr/share/doc/$pkgname README.md
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completion for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
- mv "$builddir"/output/bazel-complete.bash \
- "$subpkgdir"/usr/share/bash-completion/completions/bazel
-}
-
-zshcomp() {
- depends=""
- pkgdesc="Zsh completion for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel zsh"
-
- mkdir -p "$subpkgdir"/usr/share/zsh/site-functions
- mv "$builddir"/scripts/zsh_completion/_bazel \
- "$subpkgdir"/usr/share/zsh/site-functions/_bazel
-}
-
-examples() {
- mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"
- for d in examples third_party tools; do
- mv "$builddir/$d" "$subpkgdir/usr/share/doc/$pkgname"
- done
-}
-
-unpack() {
- mkdir -p "$builddir"
- unzip "$srcdir"/bazel-$pkgver-dist.zip -d "$builddir" > /dev/null
-}
-
-sha512sums="db609e9d0ee0cdbfb999de850db17907af02dc26e605f4617dfeb2fbac5c30c4c0a9f48c6ba3673ffe8babb5b9e157cc51c32832015b85ed279b6b160506cdae bazel-2.0.0-dist.zip
-6eb1fcb553518348f5c2dacf239377dbaa2593b751ba98c0c257d0138c55b159891fa3744168a6cff8b305758c64f9153cdc01dd3394b5fff2168319188288df bash_completion.patch
-0f8fddb7a43f6382a003037e1ba0cfc0e7f510f341a4a29c73e13cc7f64862d6156e14111005f300b0dad22815bd95b3670f8e0d33ce3f4388b0990bbbc5c5e6 python3.patch"
diff --git a/testing/bazel/bash_completion.patch b/testing/bazel/bash_completion.patch
deleted file mode 100644
index 74cedc6a773..00000000000
--- a/testing/bazel/bash_completion.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Bash completion patch to fix error in expr
-
---- a/scripts/generate_bash_completion.sh.orig
-+++ a/scripts/generate_bash_completion.sh
-@@ -34,7 +34,7 @@
- }
-
- get_optarg() {
-- expr -- "${1}" : "[^=]*=\\(.*\\)"
-+ expr "${1}" : "[^=]*=\\(.*\\)"
- }
-
- append=
diff --git a/testing/bazel/python3.patch b/testing/bazel/python3.patch
deleted file mode 100644
index e427ba83ad3..00000000000
--- a/testing/bazel/python3.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Some scripts rely on /usr/bin/pyhton.
-
-python2 package provides /usr/bin/python as a link to /usr/bin/python2
-so there is no any issue here, but we do not want python2.
-
-python3 package do not provide /usr/bin/python, only /usr/bin/python3.
-
-To make things work we need to change shebang '#!/usr/bin/env python' to
-'#!/usr/bin/env python3'.
-
-This is a longstanding issue, one of the first traces to it could be seen
-here [1] and here [2].
-
-[1] https://github.com/bazelbuild/bazel/issues/544
-[2] https://github.com/bazelbuild/bazel/issues/8446
-
-
---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt.orig
-+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- from __future__ import absolute_import
- from __future__ import division
---- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java.orig
-+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
-@@ -241,7 +241,7 @@
- .addOutput(executable)
- .setShellCommand(
- shExecutable,
-- "echo '#!/usr/bin/env python' | cat - "
-+ "echo '#!/usr/bin/env python3' | cat - "
- + zipFile.getExecPathString()
- + " > "
- + executable.getExecPathString())
diff --git a/testing/bazel5/0001-Do-not-use-prebuilt-binaries.patch b/testing/bazel5/0001-Do-not-use-prebuilt-binaries.patch
new file mode 100644
index 00000000000..05492081a03
--- /dev/null
+++ b/testing/bazel5/0001-Do-not-use-prebuilt-binaries.patch
@@ -0,0 +1,35 @@
+From ace6bb4b6fa0ff09d38bd31c26c21dd81aaadca6 Mon Sep 17 00:00:00 2001
+From: Wolf <wolf@wolfsden.cz>
+Date: Wed, 20 Jul 2022 02:00:52 +0200
+Subject: [PATCH 1/4] Do not use prebuilt binaries
+
+Prebuilt binaries (ijar, singlejar) for linux are glibc specific,
+meaning they do not work on alpine. Change the select to use _cc_binary
+version instead.
+---
+ tools/jdk/BUILD.tools | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
+index ad3e61e41a..7586fc22de 100644
+--- a/tools/jdk/BUILD.tools
++++ b/tools/jdk/BUILD.tools
+@@ -168,7 +168,6 @@ alias(
+ alias(
+ name = "ijar_prebuilt_binary_or_cc_binary",
+ actual = select({
+- "//src/conditions:linux_x86_64": ":ijar_prebuilt_binary_linux",
+ "//src/conditions:darwin": ":ijar_prebuilt_binary_darwin",
+ "//src/conditions:windows": ":ijar_prebuilt_binary_windows",
+ "//conditions:default": "@remote_java_tools//:ijar_cc_binary",
+@@ -198,7 +197,6 @@ alias(
+ alias(
+ name = "singlejar_prebuilt_or_cc_binary",
+ actual = select({
+- "//src/conditions:linux_x86_64": ":prebuilt_singlejar_linux",
+ "//src/conditions:darwin": ":prebuilt_singlejar_darwin",
+ "//src/conditions:windows": ":prebuilt_singlejar_windows",
+ "//conditions:default": "@remote_java_tools//:singlejar_cc_bin",
+--
+2.36.2
+
diff --git a/testing/bazel5/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch b/testing/bazel5/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
new file mode 100644
index 00000000000..d0b7bb550af
--- /dev/null
+++ b/testing/bazel5/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
@@ -0,0 +1,75 @@
+From 75a294bc20878ece2b45359a9c06db644744112f Mon Sep 17 00:00:00 2001
+From: Wolf <wolf@wolfsden.cz>
+Date: Wed, 20 Jul 2022 02:00:52 +0200
+Subject: [PATCH 2/4] Prefer local_jdk instead of remote_jdk11
+
+---
+ .../devtools/build/lib/rules/java/JavaOptions.java | 2 +-
+ tools/jdk/BUILD.tools | 2 +-
+ tools/jdk/default_java_toolchain.bzl | 10 +++++-----
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+index 7794ef22c1..693f640131 100644
+--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
++++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+@@ -511,7 +511,7 @@ public class JavaOptions extends FragmentOptions {
+
+ @Option(
+ name = "tool_java_runtime_version",
+- defaultValue = "remotejdk_11",
++ defaultValue = "local_jdk",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help = "The Java runtime version used to execute tools during the build")
+diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
+index 7586fc22de..8edd0f9619 100644
+--- a/tools/jdk/BUILD.tools
++++ b/tools/jdk/BUILD.tools
+@@ -328,7 +328,7 @@ alias(
+
+ alias(
+ name = "host_jdk",
+- actual = ":remote_jdk11",
++ actual = "@local_jdk//:jdk",
+ )
+
+ bootclasspath(
+diff --git a/tools/jdk/default_java_toolchain.bzl b/tools/jdk/default_java_toolchain.bzl
+index af3a646a44..da137ed26d 100644
+--- a/tools/jdk/default_java_toolchain.bzl
++++ b/tools/jdk/default_java_toolchain.bzl
+@@ -98,7 +98,7 @@ DEFAULT_TOOLCHAIN_CONFIGURATION = dict(
+ "@remote_java_tools//:java_compiler_jar",
+ "@remote_java_tools//:jdk_compiler_jar",
+ ],
+- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
++ java_runtime = "@local_jdk//:jdk",
+ )
+
+ # The 'vanilla' toolchain is an unsupported alternative to the default.
+@@ -137,9 +137,9 @@ PREBUILT_TOOLCHAIN_CONFIGURATION = dict(
+ "@remote_java_tools//:java_compiler_jar",
+ "@remote_java_tools//:jdk_compiler_jar",
+ ],
+- ijar = ["@bazel_tools//tools/jdk:ijar_prebuilt_binary"],
+- singlejar = ["@bazel_tools//tools/jdk:prebuilt_singlejar"],
+- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
++ ijar = ["@remote_java_tools//:ijar_cc_binary"],
++ singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
++ java_runtime = "@local_jdk//:jdk",
+ )
+
+ # The new toolchain is using all the tools from sources.
+@@ -158,7 +158,7 @@ NONPREBUILT_TOOLCHAIN_CONFIGURATION = dict(
+ ],
+ ijar = ["@remote_java_tools//:ijar_cc_binary"],
+ singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
+- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
++ java_runtime = "@local_jdk//:jdk",
+ )
+
+ def default_java_toolchain(name, configuration = DEFAULT_TOOLCHAIN_CONFIGURATION, toolchain_definition = True, **kwargs):
+--
+2.36.2
+
diff --git a/testing/bazel5/0003-Make-generate_bash_completion-compatible-with-busybo.patch b/testing/bazel5/0003-Make-generate_bash_completion-compatible-with-busybo.patch
new file mode 100644
index 00000000000..4856fa02f9a
--- /dev/null
+++ b/testing/bazel5/0003-Make-generate_bash_completion-compatible-with-busybo.patch
@@ -0,0 +1,28 @@
+From a4491ac9103c6e02631fce120594e5797130271d Mon Sep 17 00:00:00 2001
+From: Wolf <wolf@wolfsden.cz>
+Date: Wed, 20 Jul 2022 02:00:53 +0200
+Subject: [PATCH 3/4] Make generate_bash_completion compatible with busybox
+
+Under busybox, expr does not accept -- (since it is not defined to take
+any options, I would say it makes sense), so remove it from the script
+generating bash completion.
+---
+ scripts/generate_bash_completion.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/generate_bash_completion.sh b/scripts/generate_bash_completion.sh
+index 778810570c..46a3965f85 100755
+--- a/scripts/generate_bash_completion.sh
++++ b/scripts/generate_bash_completion.sh
+@@ -34,7 +34,7 @@ die() {
+ }
+
+ get_optarg() {
+- expr -- "${1}" : "[^=]*=\\(.*\\)"
++ expr "${1}" : "[^=]*=\\(.*\\)"
+ }
+
+ append=
+--
+2.36.2
+
diff --git a/testing/bazel5/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch b/testing/bazel5/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
new file mode 100644
index 00000000000..a15074cb43e
--- /dev/null
+++ b/testing/bazel5/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
@@ -0,0 +1,34 @@
+From d958b7c41d5e26ba2fb1382d8ede2de61f87e292 Mon Sep 17 00:00:00 2001
+From: Wolf <wolf@wolfsden.cz>
+Date: Wed, 20 Jul 2022 02:00:53 +0200
+Subject: [PATCH 4/4] Use nojdk bazel for generating the bash completion
+
+---
+ scripts/BUILD | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/BUILD b/scripts/BUILD
+index c477439950..7fc19a58e0 100644
+--- a/scripts/BUILD
++++ b/scripts/BUILD
+@@ -12,7 +12,7 @@ genrule(
+ outs = ["bazel-complete.bash"],
+ cmd = " ".join([
+ "$(location :generate_bash_completion.sh)",
+- "--bazel=$(location //src:bazel)",
++ "--bazel=$(location //src:bazel_nojdk)",
+ "--output=$@",
+ "--prepend=$(location bazel-complete-header.bash)",
+ "--prepend=$(location bazel-complete-template.bash)",
+@@ -20,7 +20,7 @@ genrule(
+ output_to_bindir = 1,
+ tools = [
+ ":generate_bash_completion.sh",
+- "//src:bazel",
++ "//src:bazel_nojdk",
+ ],
+ visibility = ["//scripts/packages:__subpackages__"],
+ )
+--
+2.36.2
+
diff --git a/testing/bazel5/APKBUILD b/testing/bazel5/APKBUILD
new file mode 100644
index 00000000000..f9062bef22e
--- /dev/null
+++ b/testing/bazel5/APKBUILD
@@ -0,0 +1,70 @@
+# Maintainer: Gray Wolf <wolf@wolfsden.cz>
+pkgname=bazel5
+pkgver=5.3.2
+pkgrel=0
+pkgdesc="Bazel is an open-source build and test tool"
+url="https://bazel.build/"
+# 1. Copy arch line from openjdk11, since we depend on it
+# 2. aarch64, ppc64le times out in CI, 1h is not enough
+arch="all !x86 !armhf !armv7 !riscv64 !s390x !aarch64 !ppc64le"
+license="Apache-2.0"
+depends="bash openjdk11-jdk"
+makedepends="linux-headers python3 unzip zip"
+# Bazel binary is thin C++ client with zip file embedded into the binary,
+# stripping breaks that: https://github.com/bazelbuild/bazel/issues/11842
+options="!strip"
+provides="bazel=$pkgver-r$pkgrel"
+subpackages="$pkgname-bash-completion"
+source="
+ https://github.com/bazelbuild/bazel/releases/download/$pkgver/bazel-$pkgver-dist.zip
+ 0001-Do-not-use-prebuilt-binaries.patch
+ 0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
+ 0003-Make-generate_bash_completion-compatible-with-busybo.patch
+ 0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
+"
+builddir="$srcdir/"
+
+build() {
+ EMBED_LABEL=$pkgver-$pkgrel \
+ EXTRA_BAZEL_ARGS=--tool_java_runtime_version=local_jdk \
+ ./compile.sh
+
+ ./output/bazel build //scripts:bazel-complete.bash
+ cp bazel-bin/scripts/bazel-complete.bash output/
+
+ ./output/bazel clean --expunge
+}
+
+check() {
+ # shellcheck disable=SC2046
+ ./output/bazel build $(\
+ ./output/bazel query --noshow_progress '//examples/...' \
+ | grep -vF \
+ -e /android/ \
+ -e /windows/ \
+ -e :hello-error-prone \
+ )
+ ./output/bazel test \
+ //examples/cpp:hello-success_test \
+ //examples/java-native/src/test/java/com/example/myproject:custom \
+ //examples/java-native/src/test/java/com/example/myproject:hello \
+ //examples/java-starlark/src/test/java/com/example/myproject:pass \
+ //examples/py_native:test \
+ //examples/shell:test
+
+ ./output/bazel clean --expunge
+}
+
+package() {
+ install -Dm 755 -t "$pkgdir/usr/bin" output/bazel
+ install -Dm 644 output/bazel-complete.bash \
+ "$pkgdir/usr/share/bash-completion/completions/bazel"
+}
+
+sha512sums="
+a63895c224d51619cf83e6e55872aa6d55d17c7dcea59eaf467069d2c95259f5964fbf8fa5994df0e3c030234a7adf70a2715edb4edbbe2bf69d21dd698c0833 bazel-5.3.2-dist.zip
+5b7709629f1f4a4604abbf626c17b0a83f3ddcb8e71a05d253eb592e1006027d693d58d67d35deb941ed1e0e60fa8d1f3229b59f844fa7e3eca866cafc2354f2 0001-Do-not-use-prebuilt-binaries.patch
+b5b6aeb5d8b097bd6f58d441f801dce9b3f2ed7706623d0c8650582a421509e4c843b6e298affeb3256dded4f706a56502847b391ec666ac882362d34529ad25 0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
+a422b45f90733157c14f3c4c54a88acd1ad49053b043a90a37c67e6d5342acb9685c467c642c232fc5cc6c80ec35a8187284da06d36e8084f0583e86e73a9130 0003-Make-generate_bash_completion-compatible-with-busybo.patch
+fb51b7caf1b05c3f531bbbbdb4fe76666c07f423d66ab0826a0590f09b71e67197d46a36c307d1690845f8055c523c27f00a21e890b7457b402d68ba1a12b085 0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
+"
diff --git a/testing/bazel6/0001-Do-not-use-prebuilt-binaries.patch b/testing/bazel6/0001-Do-not-use-prebuilt-binaries.patch
new file mode 100644
index 00000000000..58232e4d1ce
--- /dev/null
+++ b/testing/bazel6/0001-Do-not-use-prebuilt-binaries.patch
@@ -0,0 +1,20 @@
+diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
+index a8bb7c7889..bd756ba8a3 100644
+--- a/tools/jdk/BUILD.tools
++++ b/tools/jdk/BUILD.tools
+@@ -162,7 +162,6 @@ alias(
+ alias(
+ name = "ijar_prebuilt_binary_or_cc_binary",
+ actual = select({
+- "//src/conditions:linux_x86_64": ":ijar_prebuilt_binary_linux",
+ "//src/conditions:darwin": ":ijar_prebuilt_binary_darwin",
+ "//src/conditions:windows": ":ijar_prebuilt_binary_windows",
+ "//conditions:default": "@remote_java_tools//:ijar_cc_binary",
+@@ -192,7 +191,6 @@ alias(
+ alias(
+ name = "singlejar_prebuilt_or_cc_binary",
+ actual = select({
+- "//src/conditions:linux_x86_64": ":prebuilt_singlejar_linux",
+ "//src/conditions:darwin": ":prebuilt_singlejar_darwin",
+ "//src/conditions:windows": ":prebuilt_singlejar_windows",
+ "//conditions:default": "@remote_java_tools//:singlejar_cc_bin",
diff --git a/testing/bazel6/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch b/testing/bazel6/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
new file mode 100644
index 00000000000..54848cea90c
--- /dev/null
+++ b/testing/bazel6/0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
@@ -0,0 +1,61 @@
+diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+index 8e81e124e9..cccf832d94 100644
+--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
++++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+@@ -535,7 +535,7 @@ public class JavaOptions extends FragmentOptions {
+
+ @Option(
+ name = "tool_java_runtime_version",
+- defaultValue = "remotejdk_11",
++ defaultValue = "local_jdk",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ help = "The Java runtime version used to execute tools during the build")
+diff --git a/tools/jdk/BUILD.tools b/tools/jdk/BUILD.tools
+index bd756ba8a3..bd4c517984 100644
+--- a/tools/jdk/BUILD.tools
++++ b/tools/jdk/BUILD.tools
+@@ -298,7 +298,7 @@ alias(
+
+ alias(
+ name = "host_jdk",
+- actual = ":remote_jdk11",
++ actual = "@local_jdk//:jdk",
+ )
+
+ bootclasspath(
+diff --git a/tools/jdk/default_java_toolchain.bzl b/tools/jdk/default_java_toolchain.bzl
+index 7251e79068..46de360f75 100644
+--- a/tools/jdk/default_java_toolchain.bzl
++++ b/tools/jdk/default_java_toolchain.bzl
+@@ -84,7 +84,7 @@ DEFAULT_TOOLCHAIN_CONFIGURATION = dict(
+ # Turbine is not a worker and parallel GC is faster for short-lived programs.
+ "-XX:+UseParallelGC",
+ ],
+- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
++ java_runtime = "@local_jdk//:jdk",
+ )
+
+ # The 'vanilla' toolchain is an unsupported alternative to the default.
+@@ -119,9 +119,9 @@ PREBUILT_TOOLCHAIN_CONFIGURATION = dict(
+ # Turbine is not a worker and parallel GC is faster for short-lived programs.
+ "-XX:+UseParallelGC",
+ ],
+- ijar = ["@bazel_tools//tools/jdk:ijar_prebuilt_binary"],
+- singlejar = ["@bazel_tools//tools/jdk:prebuilt_singlejar"],
+- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
++ ijar = ["@remote_java_tools//:ijar_cc_binary"],
++ singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
++ java_runtime = "@local_jdk//:jdk",
+ )
+
+ # The new toolchain is using all the tools from sources.
+@@ -136,7 +136,7 @@ NONPREBUILT_TOOLCHAIN_CONFIGURATION = dict(
+ ],
+ ijar = ["@remote_java_tools//:ijar_cc_binary"],
+ singlejar = ["@remote_java_tools//:singlejar_cc_bin"],
+- java_runtime = "@bazel_tools//tools/jdk:remote_jdk11",
++ java_runtime = "@local_jdk//:jdk",
+ )
+
+ def default_java_toolchain(name, configuration = DEFAULT_TOOLCHAIN_CONFIGURATION, toolchain_definition = True, **kwargs):
diff --git a/testing/bazel6/0003-Make-generate_bash_completion-compatible-with-busybo.patch b/testing/bazel6/0003-Make-generate_bash_completion-compatible-with-busybo.patch
new file mode 100644
index 00000000000..26b847743bf
--- /dev/null
+++ b/testing/bazel6/0003-Make-generate_bash_completion-compatible-with-busybo.patch
@@ -0,0 +1,13 @@
+diff --git a/scripts/generate_bash_completion.sh b/scripts/generate_bash_completion.sh
+index 778810570c..46a3965f85 100755
+--- a/scripts/generate_bash_completion.sh
++++ b/scripts/generate_bash_completion.sh
+@@ -34,7 +34,7 @@ die() {
+ }
+
+ get_optarg() {
+- expr -- "${1}" : "[^=]*=\\(.*\\)"
++ expr "${1}" : "[^=]*=\\(.*\\)"
+ }
+
+ append=
diff --git a/testing/bazel6/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch b/testing/bazel6/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
new file mode 100644
index 00000000000..fa3075cbd4f
--- /dev/null
+++ b/testing/bazel6/0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
@@ -0,0 +1,22 @@
+diff --git a/scripts/BUILD b/scripts/BUILD
+index c477439950..7fc19a58e0 100644
+--- a/scripts/BUILD
++++ b/scripts/BUILD
+@@ -12,7 +12,7 @@ genrule(
+ outs = ["bazel-complete.bash"],
+ cmd = " ".join([
+ "$(location :generate_bash_completion.sh)",
+- "--bazel=$(location //src:bazel)",
++ "--bazel=$(location //src:bazel_nojdk)",
+ "--output=$@",
+ "--prepend=$(location bazel-complete-header.bash)",
+ "--prepend=$(location bazel-complete-template.bash)",
+@@ -20,7 +20,7 @@ genrule(
+ output_to_bindir = 1,
+ tools = [
+ ":generate_bash_completion.sh",
+- "//src:bazel",
++ "//src:bazel_nojdk",
+ ],
+ visibility = ["//scripts/packages:__subpackages__"],
+ )
diff --git a/testing/bazel6/APKBUILD b/testing/bazel6/APKBUILD
new file mode 100644
index 00000000000..4dd7c843a8b
--- /dev/null
+++ b/testing/bazel6/APKBUILD
@@ -0,0 +1,68 @@
+# Maintainer: Leon White <badfunkstripe@gmail.com>
+pkgname=bazel6
+pkgver=6.1.0
+pkgrel=0
+pkgdesc="Bazel is an open-source build and test tool"
+url="https://bazel.build/"
+arch="all !x86 !armhf !armv7 !riscv64 !s390x !aarch64 !ppc64le"
+license="Apache-2.0"
+depends="bash openjdk11-jdk"
+makedepends="linux-headers python3 unzip zip"
+# Bazel binary is thin C++ client with zip file embedded into the binary,
+# stripping breaks that: https://github.com/bazelbuild/bazel/issues/11842
+options="!strip"
+provides="bazel=$pkgver-r$pkgrel"
+subpackages="$pkgname-bash-completion"
+source="
+ https://github.com/bazelbuild/bazel/releases/download/$pkgver/bazel-$pkgver-dist.zip
+ 0001-Do-not-use-prebuilt-binaries.patch
+ 0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
+ 0003-Make-generate_bash_completion-compatible-with-busybo.patch
+ 0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
+"
+builddir="$srcdir/"
+
+build() {
+ EMBED_LABEL=$pkgver-$pkgrel \
+ EXTRA_BAZEL_ARGS=--tool_java_runtime_version=local_jdk \
+ ./compile.sh
+
+ ./output/bazel build //scripts:bazel-complete.bash
+ cp bazel-bin/scripts/bazel-complete.bash output/
+
+ ./output/bazel clean --expunge
+}
+
+check() {
+ # shellcheck disable=SC2046
+ ./output/bazel build $(\
+ ./output/bazel query --noshow_progress '//examples/...' \
+ | grep -vF \
+ -e /android/ \
+ -e /windows/ \
+ -e :hello-error-prone \
+ )
+ ./output/bazel test \
+ //examples/cpp:hello-success_test \
+ //examples/java-native/src/test/java/com/example/myproject:custom \
+ //examples/java-native/src/test/java/com/example/myproject:hello \
+ //examples/java-starlark/src/test/java/com/example/myproject:pass \
+ //examples/py_native:test \
+ //examples/shell:test
+
+ ./output/bazel clean --expunge
+}
+
+package() {
+ install -Dm 755 -t "$pkgdir/usr/bin" output/bazel
+ install -Dm 644 output/bazel-complete.bash \
+ "$pkgdir/usr/share/bash-completion/completions/bazel"
+}
+
+sha512sums="
+222c72b34566229bb96e2936558f5f8078e3999a10af5beaac231d2ada2e7a69444c4174b1f588f8471424c097422faa7a2bc7a402ee78fbd81729f85ba21bfb bazel-6.1.0-dist.zip
+a18fbeccd595ed86f66557d6cd270ccc2bc9b2736b8f1fc2c79e3fe219e5af836f5b73b211ae31df33af2e7c3097e438e88034ffecea41731b2147fed6ee1bf4 0001-Do-not-use-prebuilt-binaries.patch
+32019e3ef57e00215e1123b40de78328767b16151d885746086494e27f47648d601971528c8df8c6c1c309928b60629417c2fcdcf085badce6a3a5ea7c3aca34 0002-Prefer-local_jdk-instead-of-remote_jdk11.patch
+b0bae27087f8d1da6a455500fc9fb4758ffdeaa27f0b11de720a0607aa3a4d682adfc1286b6385fe53e67296e7af1f61570b6b3093def1e8cee8531c7f4f5f82 0003-Make-generate_bash_completion-compatible-with-busybo.patch
+a102371e03345e62e3ecc181382481563be92246bda08d9a6c24964c35d07301a20ecc32d519a9c9d9a6d0827b6773357f9ac756fa01ae685666100f0413d09b 0004-Use-nojdk-bazel-for-generating-the-bash-completion.patch
+"
diff --git a/testing/bcg729/APKBUILD b/testing/bcg729/APKBUILD
new file mode 100644
index 00000000000..23a9451ca0d
--- /dev/null
+++ b/testing/bcg729/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=bcg729
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="A C implementation of the ITU G729 Annex A/B codec"
+url="https://github.com/BelledonneCommunications/bcg729"
+arch="all"
+license="GPL-3.0"
+makedepends="cmake"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/BelledonneCommunications/bcg729/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_STATIC=NO \
+ -DCMAKE_INSTALL_LIBDIR="/usr/lib" .
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="e8cc4b7486a9a29fb729ab9fd9e3c4a2155573f38cec16f5a53db3b416fc1119ea5f5a61243a8d37cb0b64580c5df1b632ff165dc7ff47421fa567dafffaacd8 bcg729-1.1.1.tar.gz"
diff --git a/testing/bchunk/APKBUILD b/testing/bchunk/APKBUILD
index 064d5552c49..73820608729 100644
--- a/testing/bchunk/APKBUILD
+++ b/testing/bchunk/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Alexander Edland <alpine@ocv.me>
-# Maintainer: Alexander Edland <alpine@ocv.me>
+# Maintainer:
pkgname=bchunk
pkgver=1.2.2
-pkgrel=0
+pkgrel=2
pkgdesc="Convert bin+cue CD images to .iso and .cdr"
url="https://github.com/hessu/bchunk"
arch="all"
@@ -22,7 +22,7 @@ package() {
mkdir -p \
"$pkgdir/usr/bin" \
"$pkgdir/usr/share/man/man1"
-
+
make -j1 \
BIN_DIR="$pkgdir/usr/bin" \
MAN_DIR="$pkgdir/usr/share/man" \
diff --git a/testing/bcnm/APKBUILD b/testing/bcnm/APKBUILD
index 97d3818ff55..c953f70c87a 100644
--- a/testing/bcnm/APKBUILD
+++ b/testing/bcnm/APKBUILD
@@ -1,13 +1,14 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=bcnm
-pkgver=0.0.1.0
+pkgver=0.0.1.7
pkgrel=0
pkgdesc="Better Client Network Manager"
-url="https://skarnet.org/software/bcnm"
+url=https://skarnet.org/software/bcnm/
arch="all"
license="ISC"
-makedepends="skalibs-dev linux-headers"
+options="!check"
+makedepends="skalibs-dev>=2.14 linux-headers"
subpackages="$pkgname-dev $pkgname-doc"
source="https://skarnet.org/software/bcnm/bcnm-$pkgver.tar.gz"
@@ -33,4 +34,6 @@ doc() {
cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname"
}
-sha512sums="abe37c2629baa3c583734c7f783565c52f376ff553c503b5666e081cce042efa2e4d2a219b4911b23ea1c437f1ab0d9d1a928cc5126d8efb65e2981b86b220e1 bcnm-0.0.1.0.tar.gz"
+sha512sums="
+b8e03eef743097b6f44864269b336dc579b8b835ba24006d09d7da5d03637f101c1840594af8b7a28cb2062096df0e3ade7559b6f97b9472d24df42d2998e6d2 bcnm-0.0.1.7.tar.gz
+"
diff --git a/testing/bdfr/APKBUILD b/testing/bdfr/APKBUILD
new file mode 100644
index 00000000000..5efac06c274
--- /dev/null
+++ b/testing/bdfr/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=bdfr
+pkgver=2.6.2
+pkgrel=1
+pkgdesc="Downloads and archives content from reddit"
+url="https://github.com/aliparlakci/bulk-downloader-for-reddit"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ py3-appdirs
+ py3-beautifulsoup4
+ py3-click
+ py3-dict2xml
+ py3-praw
+ py3-requests
+ py3-yaml
+ python3
+ yt-dlp-core
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+source="https://github.com/aliparlakci/bulk-downloader-for-reddit/archive/refs/tags/v$pkgver/bdfr-$pkgver.tar.gz"
+builddir="$srcdir/bulk-downloader-for-reddit-$pkgver"
+options="!check" # require actually downloading a bunch of data from the apis
+
+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="
+2f5cdd9bb8be388add20dec70af378a5c13c7d1964dd601c4297f5873924321fd0dcd9e114e7e7243e812f60392890a05e2bc01b1d3004a2ddefb8fbfebc6ef9 bdfr-2.6.2.tar.gz
+"
diff --git a/testing/beancount-language-server/APKBUILD b/testing/beancount-language-server/APKBUILD
new file mode 100644
index 00000000000..be4ef78c2a7
--- /dev/null
+++ b/testing/beancount-language-server/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=beancount-language-server
+pkgver=1.3.4
+pkgrel=0
+pkgdesc="Language server for Beancount files"
+url="https://github.com/polarmutex/beancount-language-server"
+license="MIT"
+arch="all !armhf" # FTBFS
+makedepends="cargo cargo-auditable"
+source="https://github.com/polarmutex/beancount-language-server/archive/v$pkgver/beancount-language-server-$pkgver.tar.gz"
+options="!check net" # no test suite, fetch dependencies
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+48f06ccca47a4819a9a3214206ae3a517ee74174b13f4b6d7783fe7a89c8430494e9f19869f2ead49000a87c533c6495f3e11af1def8a7155b4a8ca32ef1eae7 beancount-language-server-1.3.4.tar.gz
+"
diff --git a/testing/beard/APKBUILD b/testing/beard/APKBUILD
index ae6801ad1a8..908f673663b 100644
--- a/testing/beard/APKBUILD
+++ b/testing/beard/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Andrew Hills <ahills@ednos.net>
# Maintainer: Andrew Hills <ahills@ednos.net>
pkgname=beard
-pkgver=0.3
+pkgver=0.4
pkgrel=0
pkgdesc="Simple hibernation daemon"
url="https://github.com/ahills/beard"
@@ -20,4 +20,6 @@ package() {
make PREFIX=/usr DESTDIR="$pkgdir" openrc install
}
-sha512sums="4348bc06811e1dbdcb7d5e8b90c8f927f13cf66aa9536dfa4566388e8ddb5e75dd4681f7e8034125832784c9864015872a2708688d8a4051ac3b69a80334c09d beard-0.3.tar.gz"
+sha512sums="
+fbc09780d64543ff3a95315f3766f633ba23bc1c09943dd378be113f5b0b6dfb6bf35e069809e56fb6cea57c12e6998f6984a4ff0cff31462689975527f13aa7 beard-0.4.tar.gz
+"
diff --git a/testing/bees/10-pthread_getname1.patch b/testing/bees/10-pthread_getname1.patch
index 2a5d88c56ab..98f7798c109 100644
--- a/testing/bees/10-pthread_getname1.patch
+++ b/testing/bees/10-pthread_getname1.patch
@@ -1,23 +1,13 @@
---- bees-0.6.1/lib/task.cc
-+++ bees-0.6.1/lib/task.cc
-@@ -104,7 +104,6 @@
-
- char buf[24];
- memset(buf, '\0', sizeof(buf));
-- DIE_IF_MINUS_ERRNO(pthread_getname_np(pthread_self(), buf, sizeof(buf)));
- Cleanup pthread_name_cleaner([&]() {
- pthread_setname_np(pthread_self(), buf);
- });
---- bees-0.6.1/src/bees.cc
-+++ bees-0.6.1/src/bees.cc
-@@ -160,10 +160,6 @@
- // OK try the pthread name next.
- char buf[24];
- memset(buf, '\0', sizeof(buf));
-- int err = pthread_getname_np(pthread_self(), buf, sizeof(buf));
-- if (err) {
-- return string("pthread_getname_np: ") + strerror(err);
-- }
- buf[sizeof(buf) - 1] = '\0';
-
- // thread_getname_np returns process name
+diff --git a/lib/task.cc b/lib/task.cc
+index 9604ff2..238a841 100644
+--- a/lib/task.cc
++++ b/lib/task.cc
+@@ -32,8 +32,6 @@ namespace crucible {
+ pthread_getname()
+ {
+ char buf[thread_name_length + 1] = { 0 };
+- // We'll get an empty name if this fails...
+- pthread_getname_np(pthread_self(), buf, sizeof(buf));
+ // ...or at least null-terminated garbage
+ buf[thread_name_length] = '\0';
+ return buf;
diff --git a/testing/bees/APKBUILD b/testing/bees/APKBUILD
index e6c01172ea9..46c77fde152 100644
--- a/testing/bees/APKBUILD
+++ b/testing/bees/APKBUILD
@@ -1,19 +1,20 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
# Maintainer: Bradley Saulteaux <bradsoto@gmail.com>
pkgname=bees
-pkgver=0.6.1
-pkgrel=1
+pkgver=0.10
+pkgrel=0
pkgdesc="Best-Effort Extent-Same, a btrfs dedup agent"
url="https://github.com/Zygo/bees"
-arch="" # fails to build with GCC 9.3
+arch="all"
license="GPL-3.0-or-later"
-depends="btrfs-progs"
+depends="btrfs-progs bash util-linux-misc"
makedepends="btrfs-progs-dev util-linux-dev"
-install=""
subpackages="$pkgname-openrc"
-source="${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/Zygo/bees/archive/v$pkgver.tar.gz
+ no-werror.patch
10-pthread_getname1.patch
- ppc64le_fix_min_compare.patch
- bees.initd"
+ bees.initd
+ "
build() {
make all
@@ -30,7 +31,9 @@ package() {
"$pkgdir"/etc/init.d/$pkgname
}
-sha512sums="cd44d21959d3ab4dda255f0a4a57bd3aeecfb9fee6ea26d68a1b5f84d407f75bd0b442ecf4fefc5ac856dcd9af035f44ceeff77a8926b164f97a15350efcee33 bees-0.6.1.tar.gz
-50c9cc16f094a0a69f31cf6e42601b9114344ea23a1455d6b5a3f18829ad03426ebdc37187af747bb74f51f75866c3a6da8805d0537af8e729a2f53819d52efb 10-pthread_getname1.patch
-2e13a670184d71b64e04450adb182d0a6e842e1a7d561882e0a07ae4ea7a9ed15a3fcce03f61c5412eabdb2fadf559f221e21ffd10440c4b8b700f3eab02aab4 ppc64le_fix_min_compare.patch
-093bc4c9604a0b28b39069e447d83800c91d0974fe4618ce5e5063e5c816b2d63c1b633710c592d76e8f6367d696283d6fa4a3a9561b09ce62fa28cabf8e55d0 bees.initd"
+sha512sums="
+77a4ae3d66430c2d9dc0351c16c60bad95f21e238fc00f5f5787f55929ba75ee25212ac4bb4a3e4a9419cec27bbcfd2987aa925a54bc2872609b38a698dbedc3 bees-0.10.tar.gz
+54dfe7b30ccb75500662001de00a55eca43d813a793f46f2ad062e26826083d593ee7c62ca090eac299285f8d758541754408b657f5d4695d951e08ea2cb8b10 no-werror.patch
+3cd163540719b8859e3d9dec0e75284c030f1b9acdd7dfc5cf2ab5f313254f318a16cce254b18dfe928ae5127564d772b850167e89541b83a4f5872ff2835a65 10-pthread_getname1.patch
+093bc4c9604a0b28b39069e447d83800c91d0974fe4618ce5e5063e5c816b2d63c1b633710c592d76e8f6367d696283d6fa4a3a9561b09ce62fa28cabf8e55d0 bees.initd
+"
diff --git a/testing/bees/no-werror.patch b/testing/bees/no-werror.patch
new file mode 100644
index 00000000000..20c087db2cc
--- /dev/null
+++ b/testing/bees/no-werror.patch
@@ -0,0 +1,11 @@
+diff --git a/makeflags b/makeflags
+index e008011..a17e9e2 100644
+--- a/makeflags
++++ b/makeflags
+@@ -1,5 +1,5 @@
+ # Default:
+-CCFLAGS = -Wall -Wextra -Werror -O3
++CCFLAGS = -Wall -Wextra
+
+ # Optimized:
+ # CCFLAGS = -Wall -Wextra -Werror -O3 -march=native
diff --git a/testing/bees/ppc64le_fix_min_compare.patch b/testing/bees/ppc64le_fix_min_compare.patch
deleted file mode 100644
index 49cb49359d2..00000000000
--- a/testing/bees/ppc64le_fix_min_compare.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/fiemap.cc
-+++ b/src/fiemap.cc
-@@ -27,7 +27,7 @@
- if (argc > 2) { fm.fm_start = stoull(argv[2], nullptr, 0); }
- if (argc > 3) { fm.fm_length = stoull(argv[3], nullptr, 0); }
- if (argc > 4) { fm.fm_flags = stoull(argv[4], nullptr, 0); }
-- fm.fm_length = min(fm.fm_length, FIEMAP_MAX_OFFSET - fm.fm_start);
-+ fm.fm_length = min(fm.fm_length, (uint64_t)FIEMAP_MAX_OFFSET - fm.fm_start);
- uint64_t stop_at = fm.fm_start + fm.fm_length;
- uint64_t last_byte = fm.fm_start;
- do {
diff --git a/testing/belcard/APKBUILD b/testing/belcard/APKBUILD
index 4cae7e34246..9aaca7b2f90 100644
--- a/testing/belcard/APKBUILD
+++ b/testing/belcard/APKBUILD
@@ -1,40 +1,37 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=belcard
-pkgver=4.3.1
+pkgver=5.3.38
pkgrel=0
pkgdesc="C++ library to manipulate VCard standard format"
-url="https://linphone.org"
+url="https://linphone.org/"
arch="all"
license="GPL-3.0-or-later"
options="!check" # not test available
-makedepends="cmake bctoolbox-dev belr-dev"
-subpackages="$pkgname-dev"
-source="https://www.linphone.org/releases/sources/belcard/belcard-$pkgver.tar.gz"
-source="$pkgname-$pkgver.tar.gz::https://github.com/BelledonneCommunications/belcard/archive/$pkgver.tar.gz"
+makedepends="cmake bctoolbox-dev belr-dev samurai"
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.bz2::https://gitlab.linphone.org/BC/public/belcard/-/archive/$pkgver/belcard-$pkgver.tar.bz2
+ fix-cmake-path.patch
+ "
build() {
- cmake -B build . \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_MODULE_PATH=/usr/lib/cmake \
- -DCMAKE_INSTALL_DATADIR=lib \
+ -DCMAKE_INSTALL_DATADIR=share \
-DENABLE_STRICT=NO \
- -DENABLE_SHARED=YES \
+ -DBUILD_SHARED_LIBS=YES \
-DENABLE_STATIC=NO \
-DENABLE_UNIT_TESTS=NO
- make -C build
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-dev() {
- default_dev
- mkdir -p "$subpkgdir"/usr/lib/cmake/belcard
- mv "$pkgdir"/usr/share/belcard/cmake/* "$subpkgdir"/usr/lib/cmake/belcard
-}
-
-
-sha512sums="b88fc12a3d5854394bd447e30de1874365f467c7adf1084f8701297b693ead8a2d1c50429f5d854fcd11b778b5f56d1f2c05487a82e0a7c8fe6dcaebbb32dcad belcard-4.3.1.tar.gz"
+sha512sums="
+c64763df96a3fdb0e50e3022173ed195f7ac5a4836c547aeb129aecb7667fe76fa78b7b0aa948d2840c4476c474bd9c73249cf5bbd19a6c1ba7971fd969452d2 belcard-5.3.38.tar.bz2
+325ded3645fa04c65a171b17fcdd69e3bb877f5e3f07935dfc0cad624921733d1ef9bb715705a61bf806129b055462f505ed6698df95d5e1d1b09105f274ee81 fix-cmake-path.patch
+"
diff --git a/testing/belcard/fix-cmake-path.patch b/testing/belcard/fix-cmake-path.patch
new file mode 100644
index 00000000000..4585422dbc6
--- /dev/null
+++ b/testing/belcard/fix-cmake-path.patch
@@ -0,0 +1,13 @@
+Adapted from https://github.com/OpenMandrivaAssociation/belcard/blob/master/belcard-5.3.6-fix-cmake-dir.patch
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -119,7 +119,7 @@ if(ENABLE_TOOLS)
+ 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("${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/testing/belle-sip/APKBUILD b/testing/belle-sip/APKBUILD
index 05be0408601..4bbf77a4418 100644
--- a/testing/belle-sip/APKBUILD
+++ b/testing/belle-sip/APKBUILD
@@ -1,36 +1,44 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=belle-sip
-pkgver=4.3.1
+pkgver=5.3.38
pkgrel=0
pkgdesc="SIP (RFC3261) implementation written in C"
-url="https://www.linphone.org"
-arch="all !mips !mips64" # java
+url="https://www.linphone.org/"
+arch="all !riscv64" # java
license="GPL-2.0-or-later"
options="!check" # no test available
makedepends="cmake libantlr3c libantlr3c-dev bctoolbox-dev
-zlib-dev mbedtls-dev openjdk8-jre-base"
+zlib-dev mbedtls-dev java-jre-headless belr-dev samurai"
subpackages="$pkgname-dev"
source="https://gitlab.linphone.org/BC/public/belle-sip/-/archive/$pkgver/belle-sip-$pkgver.tar.gz
antlr.jar::https://github.com/antlr/website-antlr3/blob/gh-pages/download/antlr-3.4-complete.jar?raw=true"
+# unversioned provider of java-jre-headless needs to be selected explicitly
+case "$CARCH" in
+armv7|armhf|x86)
+ makedepends="$makedepends openjdk8-jre-base"
+ ;;
+esac
+
build() {
- cmake -B build \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_MODULE_PATH=/usr/lib/cmake \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DENABLE_STATIC=NO \
- -DENABLE_SHARED=YES \
- -DENABLE_TESTS=NO \
- -DENABLE_STRICT=NO \
- -DANTLR3_JAR_PATH="$srcdir"/antlr.jar
- make -C build
+ -DBUILD_SHARED_LIBS=YES \
+ -DENABLE_UNIT_TESTS=NO \
+ -DENABLE_STRICT=NO
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="1c0d2fcdab3029362084a17148489bf6c3230db4c92a8565f093b8f7f667130c9739f64eae76b7167e63a19ad33b4346a3ce5ccfcce03798e46b63b1aa74ef52 belle-sip-4.3.1.tar.gz
-04be4dfba3a21f3ab9d9e439a64958bd8e844a9f151b798383bd9e0dd6ebc416783ae7cb1d1dbb27fb7288ab9756b13b8338cdb8ceb41a10949c852ad45ab1f2 antlr.jar"
+sha512sums="
+bb6143c2ac7b8551d58f4c15076dbb56405cc653e50030a7d7208d27401658fe199bdb65332dbfbece5a68f93957140b59def88777e7abf6222550c192be7c2c belle-sip-5.3.38.tar.gz
+04be4dfba3a21f3ab9d9e439a64958bd8e844a9f151b798383bd9e0dd6ebc416783ae7cb1d1dbb27fb7288ab9756b13b8338cdb8ceb41a10949c852ad45ab1f2 antlr.jar
+"
diff --git a/testing/belr/APKBUILD b/testing/belr/APKBUILD
index c8800478b75..dac79920b8c 100644
--- a/testing/belr/APKBUILD
+++ b/testing/belr/APKBUILD
@@ -1,32 +1,35 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=belr
-pkgver=4.3.1
+pkgver=5.3.38
pkgrel=0
pkgdesc="ABNF Parser"
-url="https://www.linphone.org"
+url="https://www.linphone.org/"
arch="all"
license="GPL-3.0-or-later"
options="!check" # not test available
-makedepends="cmake bctoolbox-dev eudev-dev"
+makedepends="cmake bctoolbox-dev eudev-dev samurai"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/BelledonneCommunications/belr/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.bz2::https://gitlab.linphone.org/BC/public/belr/-/archive/$pkgver/belr-$pkgver.tar.bz2"
build() {
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_MODULE_PATH=/usr/lib/cmake \
-DENABLE_STRICT=NO \
- -DENABLE_SHARED=YES \
- -DENABLE_TESTS=NO \
+ -DBUILD_SHARED_LIBS=YES \
+ -DENABLE_UNIT_TESTS=NO \
-DENABLE_STATIC=NO \
- .
- make
+ -DENABLE_STRICT=NO
+
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="38bc304be3a0bf70d33fe145e87cec0f23ce94ae66a1d86ea722fd7452d63dfa3093dc24396fdbb901afada8f8aa3f9dacf76043be4014e3a4c334e1f9179d13 belr-4.3.1.tar.gz"
+sha512sums="
+925a82f221458eb2791d524661283a318c6d846b2a79bbdff6223de43d96b08db457d33d695ccd2b8f09b8d2b50009c050e2cd135d73648af01fc66dc803e4b4 belr-5.3.38.tar.bz2
+"
diff --git a/testing/bemenu/APKBUILD b/testing/bemenu/APKBUILD
deleted file mode 100644
index 78bda5b0f69..00000000000
--- a/testing/bemenu/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Cosmo Borsky <me@cosmoborsky.com>
-# Maintainer: Cosmo Borsky <me@cosmoborsky.com>
-pkgname=bemenu
-pkgver=0.4.1
-pkgrel=1
-pkgdesc="Dynamic menu library and client program inspired by dmenu with support for wayland compositors"
-options="!check" # No testsuite
-url="https://github.com/Cloudef/bemenu"
-arch="all"
-license="GPL-3.0-or-later AND LGPL-3.0-or-later"
-depends_dev="libxkbcommon-dev libxinerama-dev ncurses-dev wayland-dev pango-dev
- wayland-protocols"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-dbg"
-source="bemenu-$pkgver.tar.gz::https://github.com/Cloudef/bemenu/archive/$pkgver.tar.gz"
-
-build() {
- PREFIX=/usr CFLAGS="$CFLAGS -g" make
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="d86b80b2eccbfca73287975f6f5ff9d86c7541900caec858c9aeff9cb7da2ee563e34e378561822671ba16e0f2af3440e0329f5c77f06ff5adcf332451452bf2 bemenu-0.4.1.tar.gz"
diff --git a/testing/berry-lang/APKBUILD b/testing/berry-lang/APKBUILD
new file mode 100644
index 00000000000..7cd89445706
--- /dev/null
+++ b/testing/berry-lang/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=berry-lang
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Ultra-lightweight embedded scripting language"
+url="https://github.com/berry-lang/berry"
+arch="all !s390x" # tests fail on big-endian
+license="MIT"
+makedepends="python3 readline-dev"
+source="https://github.com/berry-lang/berry/archive/refs/tags/v$pkgver/berry-lang-$pkgver.tar.gz"
+builddir="$srcdir/berry-$pkgver"
+
+build() {
+ make
+}
+
+check() {
+ local testcase
+ for testcase in tests/*; do
+ ./berry $testcase
+ done
+}
+
+package() {
+ install -Dm755 berry -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+84e035392d659e5de310a8a536c2abb1e0973cdfd7d7c3feb7eb433711d3fdd1b275065d54877b8ef824e3d4413dcb063c688a22f700724a422f90f77522aad7 berry-lang-1.1.0.tar.gz
+"
diff --git a/testing/bestline/APKBUILD b/testing/bestline/APKBUILD
new file mode 100644
index 00000000000..82b77063495
--- /dev/null
+++ b/testing/bestline/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Sebastian Hudak <sebastian@sebsite.pw>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=bestline
+# No official release tagged yet; not ready to be moved out of testing.
+pkgver=0.0_git20211108
+_commit=8ab535e621b3848f8491469c2083c7ecb0df3e22
+pkgrel=0
+pkgdesc="Minimal replacement for readline"
+url="https://github.com/jart/bestline"
+arch="all"
+license="BSD-2-Clause"
+depends_dev="$pkgname"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$_commit.tar.gz::https://github.com/jart/bestline/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No test suite
+
+build() {
+ # Makefile doesn't use -fPIC, which is needed for shared library
+ ${CC:-gcc} $CFLAGS -fPIC -c -o bestline.o bestline.c
+ ${CC:-gcc} $LDFLAGS -shared -o libbestline.so bestline.o
+}
+
+package() {
+ install -Dm755 libbestline.so "$pkgdir"/usr/lib/libbestline.so
+ install -Dm644 bestline.h "$pkgdir"/usr/include/bestline.h
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/bestline/README.md
+ install -m644 bestline.gif "$pkgdir"/usr/share/doc/bestline/bestline.gif
+}
+
+sha512sums="cd7411604c47a6910188394343b0388a0e580de891d332f4eea89f308888dfce5348fc94e826cb6cf960896ebf6272280cca90caca4537ca54e8719df61ec57b bestline-8ab535e621b3848f8491469c2083c7ecb0df3e22.tar.gz"
diff --git a/testing/bettercap/APKBUILD b/testing/bettercap/APKBUILD
new file mode 100644
index 00000000000..05e746c9328
--- /dev/null
+++ b/testing/bettercap/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=bettercap
+pkgver=2.32.0
+pkgrel=20
+pkgdesc="The Swiss Army knife for 802.11, BLE and Ethernet networks reconnaissance and MITM attacks"
+url="https://www.bettercap.org"
+arch="all"
+license="GPL-3.0-only"
+makedepends="libusb-dev libnetfilter_queue-dev libpcap-dev linux-headers go"
+source="https://github.com/bettercap/bettercap/archive/refs/tags/v$pkgver/bettercap-v$pkgver.tar.gz"
+
+export GOFLAGS="$GOFLAGS -modcacherw -trimpath"
+
+# github.com/chifflier/nfqueue-go/nfqueue 2017-02-22 does not include
+# <sys/types.h> for these types, this is the easiest patch
+export CGO_CFLAGS="$CFLAGS -Du_int32_t=uint32_t -Du_int16_t=uint16_t -Du_int8_t=uint8_t"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o "$builddir/bettercap" .
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 "$builddir"/bettercap -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+0728d2dab0c0a07fdfd91490f450be46b004ae994024bfdb6ef1b7ecac8044c4c70da9fdf986b9b31033c9698fb63e4f619604095727fb26d9ba2abc233b27d1 bettercap-v2.32.0.tar.gz
+"
diff --git a/testing/betula/APKBUILD b/testing/betula/APKBUILD
new file mode 100644
index 00000000000..ae85032b8d0
--- /dev/null
+++ b/testing/betula/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=betula
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="free single-user bookmarking software"
+url="https://betula.mycorrhiza.wiki/"
+arch="all"
+license="AGPL-3.0-only"
+options="net" # go modules
+makedepends="go sqlite-dev"
+checkdepends="curl"
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+builddir="$srcdir/$pkgname-v$pkgver"
+source="$pkgname-v$pkgver.tar.gz::https://git.sr.ht/~bouncepaw/betula/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export CGO_ENABLED=1
+
+build() {
+ go mod tidy
+ go build -o betula ./cmd/betula
+}
+
+check() {
+ ./test-web.sh
+ local ret=$?
+
+ # Cleanup so we don't hang CI
+ killall -q betula
+ return $ret
+}
+
+package() {
+ install -Dm755 betula "$pkgdir"/usr/bin/betula
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+
+}
+sha512sums="
+812c228d4d99b21637c28513b3b09cc9357ea6b9bc9b2a5d17b40b06d5cb714992d1690177047a3b2460f605fa376c68baa2d9ea3131d1ff12cbb9c4bfc3060b betula-v1.1.0.tar.gz
+93b8c65542050a04c225dbbf375dc5b1c44ac21f49c03976745d76e6d8f3b2cc4b66151324cf7e60d7fe5737c7f6b054798d7f5aa01de1eea86ba7e3002929fa betula.initd
+9d45d9b2b67248ec1cf7736453af1c54da3ddb82b1f37df2046e45603db90ee4654f23b7c5d40e702a3ae56f9a800ddc051369dbf5082e86580ab625208f595e betula.confd
+"
diff --git a/testing/betula/betula.confd b/testing/betula/betula.confd
new file mode 100644
index 00000000000..25c85aacb2d
--- /dev/null
+++ b/testing/betula/betula.confd
@@ -0,0 +1,3 @@
+supervisor=supervise-daemon
+datadir="/var/lib/betula"
+opts=""
diff --git a/testing/betula/betula.initd b/testing/betula/betula.initd
new file mode 100644
index 00000000000..e4131182704
--- /dev/null
+++ b/testing/betula/betula.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+name=betula
+description="Self-hosted personal link collection manager"
+
+command=/usr/bin/betula
+command_user=betula:betula
+command_args="${datadir}/links ${opts}"
+
+depend() {
+ use logger dns
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user "$datadir"
+}
diff --git a/testing/betula/betula.pre-install b/testing/betula/betula.pre-install
new file mode 100644
index 00000000000..60674c64498
--- /dev/null
+++ b/testing/betula/betula.pre-install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+user=betula
+group=betula
+
+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/testing/bfs/APKBUILD b/testing/bfs/APKBUILD
deleted file mode 100644
index e184d8e8e09..00000000000
--- a/testing/bfs/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: dai9ah <dai9ah@protonmail.com>
-# Maintainer: dai9ah <dai9ah@protonmail.com>
-pkgname=bfs
-pkgver=1.7
-pkgrel=0
-pkgdesc="Breadth-first variant of the UNIX find command"
-url="https://github.com/tavianator/bfs"
-arch="all"
-license="0BSD"
-makedepends="acl-dev libcap-dev linux-headers attr-dev"
-checkdepends="bash acl"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tavianator/bfs/archive/$pkgver.tar.gz
- "
-
-build() {
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="f28fade6f41ff985bb69a9e1d48341a2f4740c0f7d1ee2c9109eddf85de384c1d3ab88a934a2a6c2a955041a53560dce0a38f97d1118d117380542020390c2b8 bfs-1.7.tar.gz"
diff --git a/testing/bgpq4/APKBUILD b/testing/bgpq4/APKBUILD
new file mode 100644
index 00000000000..0087906a14d
--- /dev/null
+++ b/testing/bgpq4/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=bgpq4
+pkgver=1.12
+pkgrel=0
+pkgdesc="bgp filtering automation tool"
+url="https://github.com/bgp/bgpq4"
+arch="all"
+options="!check" #no test suite
+license="BSD-2-Clause"
+makedepends="autoconf automake libtool"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/bgp/bgpq4/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+501714dca3aa7f27f0f56c581c5d82fb1b609f5bad1254b453517f821ef99e673a0a118c6b2aa6e2430167fe322656d2e20ead9a09ec834709e586d07ec8abbc bgpq4-1.12.tar.gz
+"
diff --git a/testing/bgs/APKBUILD b/testing/bgs/APKBUILD
index b886bd9c9b1..01b6ce779f3 100644
--- a/testing/bgs/APKBUILD
+++ b/testing/bgs/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: dai9ah <dai9ah@protonmail.com>
pkgname=bgs
pkgver=0.8
-pkgrel=0
+pkgrel=1
pkgdesc="Extremely fast and small background setter for X"
url="https://github.com/Gottox/bgs"
arch="all"
diff --git a/testing/bindfs/APKBUILD b/testing/bindfs/APKBUILD
new file mode 100644
index 00000000000..f6fd531721b
--- /dev/null
+++ b/testing/bindfs/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Daniel Gerber <dg@atufi.org>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=bindfs
+pkgver=1.17.6
+pkgrel=0
+pkgdesc="FUSE filesystem for mirroring a directory to another directory"
+url="https://bindfs.org"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="linux-headers fuse3-dev" # or fuse-dev
+checkdepends="ruby ruby-etc"
+subpackages="$pkgname-doc"
+options="!check"
+source="https://bindfs.org/downloads/bindfs-$pkgver.tar.gz
+ musl-getmntent-issue.patch"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ # NOTE: this requires the fuse kernel module to be loaded
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+57a6cf3cdeb6a3ebdbcd59349e0f6fbcb60c4383a26ffc7be3b61152138d593f995501234cb5d4082e689b640de73efc60ce05219c3df1ff776498be27bfe0f1 bindfs-1.17.6.tar.gz
+1c6491241393974923ed512ac2621c864f6f5e9f7e6faca83154cb785332049b49e18dda31ce297a4531bb0abf42d5039c996d0223eac105b0b7af377fd8c2ec musl-getmntent-issue.patch
+"
diff --git a/testing/bindfs/musl-getmntent-issue.patch b/testing/bindfs/musl-getmntent-issue.patch
new file mode 100644
index 00000000000..9003c6f9b28
--- /dev/null
+++ b/testing/bindfs/musl-getmntent-issue.patch
@@ -0,0 +1,18 @@
+# workaroung for musl getmntent: avoid using fusermount in test setup
+--- a/tests/common.rb
++++ b/tests/common.rb
+@@ -213,11 +213,5 @@ def nonroot_testenv(bindfs_args, options = {}, &block)
+ end
+
+ def umount_cmd
+- if !`which fusermount3`.strip.empty?
+- 'fusermount3 -uz'
+- elsif !`which fusermount`.strip.empty?
+- 'fusermount -uz'
+- else
+- 'umount'
+- end
++ 'umount'
+ end
+
+ def assert
diff --git a/testing/binutils-cross-embedded/APKBUILD b/testing/binutils-cross-embedded/APKBUILD
deleted file mode 100644
index dc9ad2c6ca9..00000000000
--- a/testing/binutils-cross-embedded/APKBUILD
+++ /dev/null
@@ -1,101 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Based on binutils-avr
-_pkgbase=binutils
-_targets="
- arm-none-eabi
- mips-mti-elf
- msp430-elf
- "
-pkgname="$_pkgbase-cross-embedded"
-pkgver=2.34
-pkgrel=0
-pkgdesc="Tools necessary to build programs for embedded targets"
-url="https://www.gnu.org/software/binutils/"
-makedepends="gettext libtool autoconf automake bison texinfo zlib-dev"
-arch="all"
-license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
-for target in $_targets; do
- targetnorm="${target//-/_}"
- subpackages="$_pkgbase-$target:$targetnorm $subpackages"
-done
-source="https://ftp.gnu.org/gnu/$_pkgbase/$_pkgbase-$pkgver.tar.xz"
-
-builddir="$srcdir/$_pkgbase-$pkgver"
-
-build() {
- for target in $_targets; do
- workingdir="$srcdir/build-$target"
- mkdir "$workingdir"
- cd "$workingdir"
- "$builddir"/configure \
- --target=$target \
- --with-sysroot=/usr/$target \
- --prefix=/usr/ \
- --infodir=/deleteme/info \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --mandir=/deleteme/man \
- --with-gnu-as \
- --with-gnu-ld \
- --enable-deterministic-archieves \
- --enable-interwork \
- --enable-multilib \
- --enable-plugins \
- --enable-ld=default \
- --disable-nls
- make tooldir=/usr
- done
-}
-
-check() {
- for target in $_targets; do
- workingdir="$srcdir/build-$target"
- cd "$workingdir"
- make check
- done
-}
-
-package() {
- for target in $_targets; do
- depends="$depends $_pkgbase-$target"
- done
- mkdir -p "$pkgdir"
-}
-
-_install_subpkg() {
- target="${subpkgname#$_pkgbase-}"
- pkgdesc="Tools necessary to build programs for $target"
- workingdir="$srcdir/build-$target"
- cd "$workingdir"
- make install DESTDIR="$subpkgdir"
- rm -rf "$subpkgdir"/deleteme
- for bin in ar as nm objcopy objdump ranlib strip readelf; do
- rm -f "$subpkgdir"/usr/bin/"$bin"
- done
-}
-
-arm_none_eabi() {
- _install_subpkg
-}
-
-avr() {
- _install_subpkg
-}
-
-mips_mti_elf() {
- _install_subpkg
-}
-
-msp430_elf() {
- _install_subpkg
-}
-
-xtensa_esp32_elf() {
- _install_subpkg
-}
-
-xtensa_lx106_elf() {
- _install_subpkg
-}
-
-sha512sums="2c7976939dcf5e8c5b7374cccd39bfe803b1bec73c6abfa0eb17c24e1942574c6bdb874c66a092a82adc443182eacd8a5a8001c19a76101f0c7ba40c27de0bbd binutils-2.34.tar.xz"
diff --git a/testing/binwalk/APKBUILD b/testing/binwalk/APKBUILD
index cf94300151f..b13db61fbcf 100644
--- a/testing/binwalk/APKBUILD
+++ b/testing/binwalk/APKBUILD
@@ -1,21 +1,29 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=binwalk
-pkgver=2.2.0
-pkgrel=2
+pkgver=2.4.0
+pkgrel=1
pkgdesc="Fast, easy to use tool for analyzing and extracting firmware images"
url="https://github.com/ReFirmLabs/binwalk/"
arch="noarch"
license="MIT"
depends="py3-pycryptodome python3"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ReFirmLabs/binwalk/archive/v$pkgver.tar.gz"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OSPG/binwalk/archive/refs/tags/v$pkgver.tar.gz"
+
+# secfixes:
+# 2.3.4-r0:
+# - CVE-2022-4510
build() {
python3 setup.py build
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="5f3ed31c0b5f9ca3057f86e82787a73b06f9f73747b51dd72130a78e4d69cf43a0207bffc495d177e97811de5bf835b3d0507f314b7a0c960eddf6d1efe0f0f9 binwalk-2.2.0.tar.gz"
+sha512sums="
+41bee6a0d1cd587f81dcf81c30215a305b61e4db208bc9d8e4f0b9f12acb47e4dc2e6af23e06118ef6e30c484f6be743b456b6d4324be4388413ff291682345e binwalk-2.4.0.tar.gz
+"
diff --git a/testing/biome/APKBUILD b/testing/biome/APKBUILD
new file mode 100644
index 00000000000..52e858dd24d
--- /dev/null
+++ b/testing/biome/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=biome
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="Toolchain of the web"
+url="https://biomejs.dev/"
+license="MIT"
+arch="aarch64 x86_64" # architectures supported by upstream
+makedepends="cargo cargo-auditable"
+source="https://github.com/biomejs/biome/archive/cli/v$pkgver/biome-$pkgver.tar.gz"
+builddir="$srcdir/biome-cli-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+
+ git init
+ git config --local user.name "example"
+ git config --local user.email "example@example.com"
+ git add .
+ git commit -m "needed for symlink tests"
+}
+
+build() {
+ BIOME_VERSION="$pkgver" cargo auditable build -p biome_cli --frozen --release
+}
+
+check() {
+ cargo test -p biome_cli --frozen -- \
+ --skip commands::check::max_diagnostics_default \
+ --skip commands::ci::max_diagnostics \
+ --skip commands::ci::max_diagnostics_default
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2d650d072e35662b2cab9250ef3aaaabc19e9d4eaf4526e6148cb27cefa2f8d82d37a05d64852120635e24a1e846cecbc21c658d25d40adf7d35b1b8e10adf3a biome-1.6.0.tar.gz
+"
diff --git a/testing/biometryd/0001-Add-missing-headers-for-gcc-13.patch b/testing/biometryd/0001-Add-missing-headers-for-gcc-13.patch
new file mode 100644
index 00000000000..3b484057669
--- /dev/null
+++ b/testing/biometryd/0001-Add-missing-headers-for-gcc-13.patch
@@ -0,0 +1,37 @@
+From c1ebddbf24b55d145a34722aaba79f0eb7e4d13b Mon Sep 17 00:00:00 2001
+From: Marius Gripsgard <mariogrip@debian.org>
+Date: Thu, 27 Jul 2023 03:17:55 +0200
+Subject: [PATCH] Add missing headers for gcc 13
+
+---
+ src/biometry/util/cli.h | 1 +
+ src/biometry/util/not_reachable.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/biometry/util/cli.h b/src/biometry/util/cli.h
+index b591ba5..4823fa9 100644
+--- a/src/biometry/util/cli.h
++++ b/src/biometry/util/cli.h
+@@ -32,6 +32,7 @@
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
++#include <cstdint>
+
+ namespace biometry
+ {
+diff --git a/src/biometry/util/not_reachable.h b/src/biometry/util/not_reachable.h
+index 1d6d120..8a6176b 100644
+--- a/src/biometry/util/not_reachable.h
++++ b/src/biometry/util/not_reachable.h
+@@ -24,6 +24,7 @@
+
+ #include <stdexcept>
+ #include <string>
++#include <cstdint>
+
+ namespace biometry
+ {
+--
+2.40.1
+
diff --git a/testing/biometryd/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch b/testing/biometryd/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
new file mode 100644
index 00000000000..41feb166c06
--- /dev/null
+++ b/testing/biometryd/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
@@ -0,0 +1,125 @@
+From a5117d6b6e2bb7cf3181d2e07021c6dc55069252 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 31 Jan 2024 22:29:26 +0100
+Subject: [PATCH] Use CMAKE_INSTALL_FULL_* for installing
+
+While I don't think there should be a difference between the two
+variables for most cases, for SYSCONFDIR we might end up installing into
+/usr/etc/ if we don't use the FULL_SYSCONFDIR variable.
+---
+ data/CMakeLists.txt | 6 +++---
+ doc/CMakeLists.txt | 2 +-
+ include/CMakeLists.txt | 2 +-
+ include/biometry/CMakeLists.txt | 2 +-
+ include/biometry/hardware/CMakeLists.txt | 2 +-
+ src/biometry/CMakeLists.txt | 4 ++--
+ src/biometry/qml/Biometryd/CMakeLists.txt | 2 +-
+ 7 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 64d61b5..0b8a542 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -7,17 +7,17 @@ configure_file(
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/biometryd.pc
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
++ DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig
+ )
+
+ install(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/com.ubports.biometryd.Service.conf
+- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d/
++ DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/dbus-1/system.d/
+ )
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/biometryd.conf
+- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/init
++ DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init
+ )
+
+ if (USE_SYSTEMD)
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 94d5928..bd283f2 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -22,7 +22,7 @@ if (DOXYGEN_FOUND)
+ COMMENT "Generating API documentation with Doxygen" VERBATIM)
+ install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+- DESTINATION ${CMAKE_INSTALL_DOCDIR})
++ DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR})
+
+ endif ()
+ endif ()
+diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
+index 572e4e3..084af7c 100644
+--- a/include/CMakeLists.txt
++++ b/include/CMakeLists.txt
+@@ -2,5 +2,5 @@ add_subdirectory(biometry)
+
+ install(
+ DIRECTORY biometry
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
++ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}
+ )
+diff --git a/include/biometry/CMakeLists.txt b/include/biometry/CMakeLists.txt
+index ad66907..d9de0bc 100644
+--- a/include/biometry/CMakeLists.txt
++++ b/include/biometry/CMakeLists.txt
+@@ -2,7 +2,7 @@ configure_file(version.h.in version.h)
+
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/version.h
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/biometry
++ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/biometry
+ )
+
+ add_subdirectory(hardware)
+\ No newline at end of file
+diff --git a/include/biometry/hardware/CMakeLists.txt b/include/biometry/hardware/CMakeLists.txt
+index a0236b8..98179dd 100644
+--- a/include/biometry/hardware/CMakeLists.txt
++++ b/include/biometry/hardware/CMakeLists.txt
+@@ -5,5 +5,5 @@ set(
+
+ install(
+ FILES ${BIOMETRY_HARDWARE_HEADERS}
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/biometry/hardware
++ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/biometry/hardware
+ )
+diff --git a/src/biometry/CMakeLists.txt b/src/biometry/CMakeLists.txt
+index e36fbb1..3ad7f94 100644
+--- a/src/biometry/CMakeLists.txt
++++ b/src/biometry/CMakeLists.txt
+@@ -174,10 +174,10 @@ target_link_libraries(
+
+ install(
+ TARGETS biometry
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
+ )
+
+ install(
+ TARGETS biometryd
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++ RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
+ )
+diff --git a/src/biometry/qml/Biometryd/CMakeLists.txt b/src/biometry/qml/Biometryd/CMakeLists.txt
+index 1ac216c..7a1cc5b 100644
+--- a/src/biometry/qml/Biometryd/CMakeLists.txt
++++ b/src/biometry/qml/Biometryd/CMakeLists.txt
+@@ -43,7 +43,7 @@ target_link_libraries(biometryd-qml biometry Qt5::Core Qt5::Qml Qt5::Quick)
+ # can test the module within the build env.
+ configure_file(qmldir qmldir COPYONLY)
+
+-set(PLUGIN_DIR ${CMAKE_INSTALL_LIBDIR}/qt5/qml/Biometryd)
++set(PLUGIN_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml/Biometryd)
+
+ install(
+ TARGETS biometryd-qml
+--
+2.43.0
+
diff --git a/testing/biometryd/0004-disable_flaky_test.patch b/testing/biometryd/0004-disable_flaky_test.patch
new file mode 100644
index 00000000000..1840817b6d2
--- /dev/null
+++ b/testing/biometryd/0004-disable_flaky_test.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/test_daemon.cpp b/tests/test_daemon.cpp
+index c848fb9..3e49d8d 100644
+--- a/tests/test_daemon.cpp
++++ b/tests/test_daemon.cpp
+@@ -174,7 +174,7 @@ TEST_F(Daemon, invoking_test_command_succeeds)
+ core::posix::wait::Flags::untraced)));
+ }
+
+-TEST_F(Daemon, invoking_run_succeeds)
++TEST_F(Daemon, DISABLED_invoking_run_succeeds)
+ {
+ auto json = R"_(
+ {
diff --git a/testing/biometryd/0005-add-missing-types-header.patch b/testing/biometryd/0005-add-missing-types-header.patch
new file mode 100644
index 00000000000..32d5b4a4a63
--- /dev/null
+++ b/testing/biometryd/0005-add-missing-types-header.patch
@@ -0,0 +1,24 @@
+From e57f23457e54727abd575b89b1824427ac5f3c4b Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 15 Oct 2023 20:06:27 -0400
+Subject: [PATCH] add missing types header
+
+---
+ src/biometry/qml/Biometryd/user.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/biometry/qml/Biometryd/user.cpp b/src/biometry/qml/Biometryd/user.cpp
+index 0e0d7b2..fe0d802 100644
+--- a/src/biometry/qml/Biometryd/user.cpp
++++ b/src/biometry/qml/Biometryd/user.cpp
+@@ -18,6 +18,7 @@
+ */
+
+ #include <biometry/qml/Biometryd/user.h>
++#include <sys/types.h>
+
+ biometry::qml::User::User(QObject *parent) : QObject{parent}
+ {
+--
+2.42.0
+
diff --git a/testing/biometryd/0006-direct-path-to-qmlplugindump.patch b/testing/biometryd/0006-direct-path-to-qmlplugindump.patch
new file mode 100644
index 00000000000..9020564da1d
--- /dev/null
+++ b/testing/biometryd/0006-direct-path-to-qmlplugindump.patch
@@ -0,0 +1,25 @@
+From d811b8b332f0bbaf8e258c831ba9ee5be1dc31a5 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 15 Oct 2023 20:15:10 -0400
+Subject: [PATCH] direct path to qmlplugindump
+
+---
+ src/biometry/qml/Biometryd/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/biometry/qml/Biometryd/CMakeLists.txt b/src/biometry/qml/Biometryd/CMakeLists.txt
+index 735b0d2..b2ddd62 100644
+--- a/src/biometry/qml/Biometryd/CMakeLists.txt
++++ b/src/biometry/qml/Biometryd/CMakeLists.txt
+@@ -60,7 +60,7 @@ if (NOT CMAKE_CROSSCOMPILING)
+ SOURCES ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes)
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+- COMMAND qmlplugindump -notrelocatable Biometryd 0.0 ../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
++ COMMAND /usr/lib/qt5/bin/qmlplugindump -notrelocatable Biometryd 0.0 ../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ DEPENDS biometryd-qml
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ )
+--
+2.42.0
+
diff --git a/testing/biometryd/APKBUILD b/testing/biometryd/APKBUILD
new file mode 100644
index 00000000000..14232dce1ed
--- /dev/null
+++ b/testing/biometryd/APKBUILD
@@ -0,0 +1,65 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=biometryd
+pkgver=0.3.1
+pkgrel=0
+pkgdesc="Mediates and multiplexes access to biometric devices"
+url="https://gitlab.com/ubports/development/core/biometryd"
+arch="all"
+license="GPL-3.0-only"
+depends="qt5-qtbase-sqlite"
+makedepends="
+ abseil-cpp-dev
+ cmake
+ cmake-extras
+ dbus-cpp-dev
+ dconf-dev
+ elfutils-dev
+ gnome-keyring
+ gtest-dev
+ libapparmor-dev
+ libphonenumber-dev
+ libqtdbustest
+ lomiri-api-dev
+ process-cpp-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ telepathy-mission-control-dev
+ telepathy-qt-dev
+ "
+subpackages="$pkgname-dev"
+source="https://gitlab.com/ubports/development/core/biometryd/-/archive/$pkgver/biometryd-$pkgver.tar.gz
+ 0001-Add-missing-headers-for-gcc-13.patch
+ 0004-disable_flaky_test.patch
+ 0005-add-missing-types-header.patch
+ 0006-direct-path-to-qmlplugindump.patch
+ 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DUSE_SYSTEMD=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure -E "test_(daemon|dbus_(codec|stub_skeleton))"
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+357b9507596b080f14ed327a346eb45f3389de4c5699b0bff399feced1cf1d1bb489c5e3f27e8aa816c541d6ffc8152136e3cdf2928074469d6052c9c7eaca2b biometryd-0.3.1.tar.gz
+89cb2cd23bafbf7bf6be13378ba98f3c15748b72d0938523546a853948bcf9af9c9405231810bf96be750f0cfdf0e524e2a8468f6bf707faefef3560b16be81c 0001-Add-missing-headers-for-gcc-13.patch
+4e0d8622df89742602ac43d5519c8d818da9e350b208b2468dce6b4a3764c6002f6ae67657c2b535f531c4f77374bee93f9e7be4b1cf3c3c1ef5f45d8abb8749 0004-disable_flaky_test.patch
+8b702ef0e2a3e5f2b98c6e63661de0996d28dc3c8d09510802eae27ce1f453a5048b5ad987151821ba72c4a3bd2ebeaad3905c641f72e7528b63fb7148a0a3ef 0005-add-missing-types-header.patch
+09960fd3fef3c8671c394c4d60b29f65a2b0f71cb002e007445154bcce1a932f29f383d0c272fa10883c8099df9dbb675517d393376ff443a3f1fd5ad640c818 0006-direct-path-to-qmlplugindump.patch
+a8b429c7fe8cb8655823e7836fc79af839dca6bee3e0c8122bbe00bbf1dfb11afc9a50c4a761f1fce503f8a5951e2d156a805e2419b94a345ab2e985fe9c3eed 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+"
diff --git a/testing/bionic_translation/APKBUILD b/testing/bionic_translation/APKBUILD
new file mode 100644
index 00000000000..4998670fc55
--- /dev/null
+++ b/testing/bionic_translation/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=bionic_translation
+pkgver=0_git20240202
+pkgrel=0
+_commit="534380e8d8bac0ec858012cdac05bb3f9d9367d1"
+pkgdesc="A set of libraries for loading bionic-linked .so files on musl/glibc"
+url="https://gitlab.com/android_translation_layer/bionic_translation"
+arch="x86_64 aarch64 armv7"
+license="Apache-2.0"
+makedepends="
+ elfutils-dev
+ libbsd-dev
+ libunwind-dev
+ mesa-dev
+ meson
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-dbg"
+source="https://gitlab.com/android_translation_layer/bionic_translation/-/archive/$_commit/bionic_translation-$_commit.tar.gz"
+builddir="$srcdir/bionic_translation-$_commit"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+55bf53043318e4b25c689f38910aa535c4eceacde5ab6ffc986a43cc5985e6617089fd97c1827d4c29f77aeda486e415286a1a7c54e0eed8fb89efa6cadad29f bionic_translation-534380e8d8bac0ec858012cdac05bb3f9d9367d1.tar.gz
+"
diff --git a/testing/bird/APKBUILD b/testing/bird/APKBUILD
deleted file mode 100644
index 466aa237187..00000000000
--- a/testing/bird/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Francesco Zanini <francesco@zanini.me>
-# Contributor: Katie Holly <holly@fuslvz.ws>
-# Maintainer: Francesco Zanini <francesco@zanini.me>
-pkgname=bird
-pkgver=2.0.7
-pkgrel=0
-pkgdesc="BIRD Internet Routing Daemon"
-url="https://bird.network.cz/"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="bison flex ncurses-dev readline-dev linux-headers"
-subpackages="$pkgname-openrc"
-source="
- ftp://bird.network.cz/pub/bird/bird-$pkgver.tar.gz
- bird-make-test-bsprintf.patch
- bird.initd
- "
-
-# flawed test on big-endian
-case "$CARCH" in
-s390x|mips*) options="!check";;
-esac
-
-build() {
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm755 "$srcdir"/bird.initd "$pkgdir"/etc/init.d/bird
-}
-
-sha512sums="48ca63be923285dd282e80d7e2b240256953fd7ad4f6eaa5dcba2648f3f148be20198bc8c6e7e888aac1588ecb005a4f4c03e979853e76ea6f8680643a874b35 bird-2.0.7.tar.gz
-e0a9bab1bb84ab4efbf51c4c015bf35196d146560f737979d3a17c44dc2397d9578e61a3bba0c58f3cdbb108074f17288bf536db5d8d4dce87c91f1be3dc6282 bird-make-test-bsprintf.patch
-da2fd6eaf5e468eed1054c23299ae899d5b1152c94a500db2242c63cdd543a32218e45373470ff367d5736022ced18e6a427f6b98e69a34ae2d3bf811550d828 bird.initd"
diff --git a/testing/bird/bird-make-test-bsprintf.patch b/testing/bird/bird-make-test-bsprintf.patch
deleted file mode 100644
index d42027c374c..00000000000
--- a/testing/bird/bird-make-test-bsprintf.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -urp a/lib/printf_test.c b/lib/printf_test.c
---- a/lib/printf_test.c 1970-01-01 00:00:00.000000000 +0000
-+++ b/lib/printf_test.c 1970-01-01 00:00:00.000000000 +0000
-@@ -33,10 +33,14 @@ t_simple(void)
- BSPRINTF(1, "\xff", buf, "%c", 0xff);
-
- errno = 5;
-- BSPRINTF(18, "Input/output error", buf, "%m");
-+ // glibc returns "Input/output error" while musl-libc returns "I/O error"
-+ //BSPRINTF(18, "Input/output error", buf, "%m");
-+ BSPRINTF(9, "I/O error", buf, "%m");
- errno = 0;
-
-- BSPRINTF(18, "Input/output error", buf, "%M", 5);
-+ // glibc returns "Input/output error" while musl-libc returns "I/O error"
-+ //BSPRINTF(18, "Input/output error", buf, "%M", 5);
-+ BSPRINTF(9, "I/O error", buf, "%M", 5);
-
- BSPRINTF(11, "TeSt%StRiNg", buf, "%s", "TeSt%StRiNg");
-
diff --git a/testing/bird/bird.initd b/testing/bird/bird.initd
deleted file mode 100644
index 94b953974bf..00000000000
--- a/testing/bird/bird.initd
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Copyright 2019 Alarig Le Lay <alarig@grifon.fr>
-# Distributed under the terms of the GNU General Public License v2
-
-extra_started_commands="reload"
-
-pidfile="/run/${RC_SVCNAME}.pid"
-command="/usr/sbin/${RC_SVCNAME}"
-retry=15
-
-CONF_FILE="/etc/${RC_SVCNAME}.conf"
-SOCK="/run/${RC_SVCNAME}.ctl"
-
-client_args="-s ${SOCK}"
-command_args="${client_args} -R -c ${CONF_FILE} -P ${pidfile}"
-client_args="${client_args} -r"
-
-depend() {
- need net
- use logger
- after firewall
-}
-
-check_run() {
- BIRD_CHECK_CONF="birdc ${client_args} configure check \"${CONF_FILE}\""
- # Check if the bird parser returns what we want
- # We can’t use $? because it’s always 0 if the sock works
- STATE=$(${BIRD_CHECK_CONF} | grep 'Configuration OK')
-
- if [ -n "${STATE}" ]; then
- return 0
- else
- # We remove the first three lines (garbage informations), the
- # errors begin after that
- eerror "$(${BIRD_CHECK_CONF} | sed '1,3d')"
- return 1
- fi
-}
-
-reload() {
- check_run || return 1
- ebegin "Reloading BIRD"
- start-stop-daemon --signal HUP --pidfile "${pidfile}"
- eend $?
-}
-
-stop_pre() {
- if [ "${RC_CMD}" = "restart" ] ; then
- check_run || return 1
- fi
-}
diff --git a/testing/birdtray/APKBUILD b/testing/birdtray/APKBUILD
new file mode 100644
index 00000000000..0d8bce736e2
--- /dev/null
+++ b/testing/birdtray/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Nathan <ndowens@artixlinux.org>
+pkgname=birdtray
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="Run Thunderbird with a system tray icon"
+url="https://github.com/gyunaev/birdtray"
+arch="all"
+license="GPL-3.0-only"
+makedepends="cmake qt5-qttools-dev qt5-qtbase-dev qt5-qtsvg-dev
+ qt5-qtx11extras-dev"
+options="!check" # test fails with tests_NOTBUILT executable missing
+source="$pkgname-$pkgver.tar.gz::https://github.com/gyunaev/birdtray/archive/v$pkgver.tar.gz
+ "
+
+build() {
+ cp -r src/translations translations
+
+ if [ "$CBUILD" != "$CHOST" ]; then
+ export CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="898bfcebc7ba4b738e3ab41539c4de48871ebccf431bb1b12464e7f2956bad95af6158742c64ec5923d63889e777c98c75db31121d926e26f3dfe1b34d9f8b4a birdtray-1.9.0.tar.gz"
diff --git a/testing/bitlbee-facebook/APKBUILD b/testing/bitlbee-facebook/APKBUILD
index 7e30c020ead..44d6111c978 100644
--- a/testing/bitlbee-facebook/APKBUILD
+++ b/testing/bitlbee-facebook/APKBUILD
@@ -1,16 +1,15 @@
-# Contributor: Marvin Steadfast <marvin@xsteadfastx.org>
-# Maintainer: Marvin Steadfast <marvin@xsteadfastx.org>
+# Contributor: Marvin Preuss <marvin@xsteadfastx.org>
+# Maintainer: Marvin Preuss <marvin@xsteadfastx.org>
pkgname=bitlbee-facebook
-pkgver=1.2.0
+pkgver=1.2.2
pkgrel=0
pkgdesc="Facebook protocol plugin for BitlBee"
-url="https://github.com/jgeboski/bitlbee-facebook"
+url="https://github.com/bitlbee/bitlbee-facebook"
arch="all"
license="GPL-2.0-or-later"
depends="bitlbee"
makedepends="bitlbee-dev autoconf automake libtool json-glib-dev"
-source="https://github.com/jgeboski/bitlbee-facebook/releases/download/v$pkgver/bitlbee-facebook-$pkgver.tar.gz"
-
+source="https://github.com/bitlbee/bitlbee-facebook/releases/download/v$pkgver/bitlbee-facebook-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -26,4 +25,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="5cd5e7cd85b24c76ebb62932c9ad513d08059f08e3b8817e1a767d5677cd0a28812a622237a1de77cf5f6b62b3df65ec236a7f552fdd647248e315e8fb050a6e bitlbee-facebook-1.2.0.tar.gz"
+sha512sums="
+801524a4a092175d995c5b14c3687fb0ac0d3b2dbaa6b7140bc026fdbb1232831f095204b3ce9810f0c48e5ade931f5cd6125ddc7c0d58990179fb94779d2b2a bitlbee-facebook-1.2.2.tar.gz
+"
diff --git a/testing/bitlbee-mastodon/APKBUILD b/testing/bitlbee-mastodon/APKBUILD
index 0f5918baf00..8b372e07d9e 100644
--- a/testing/bitlbee-mastodon/APKBUILD
+++ b/testing/bitlbee-mastodon/APKBUILD
@@ -1,7 +1,7 @@
-# Contributor: Marvin Steadfast <marvin@xsteadfastx.org>
-# Maintainer: Marvin Steadfast <marvin@xsteadfastx.org>
+# Contributor: Marvin Preuss <marvin@xsteadfastx.org>
+# Maintainer: Marvin Preuss <marvin@xsteadfastx.org>
pkgname=bitlbee-mastodon
-pkgver=1.4.4
+pkgver=1.4.5
pkgrel=0
pkgdesc="Mastodon plugin for Bitlbee"
url="https://alexschroeder.ch/cgit/bitlbee-mastodon"
@@ -24,4 +24,6 @@ build() {
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="b5a84cd6b716f94f67f7780dfe9f1ea7c9de2469322185199814ef5acab75b1f1b95389c614e37e012edfbe4ecabb347e5a308f14e2496542cbbdd1d46b46065 bitlbee-mastodon-1.4.4.tar.gz"
+sha512sums="
+19a83e17afe3ac3c0b4d7ac87b30521e5fe54ea1f498e55373156112abac12ed4c84a80023c4be0c31f9b668325e89ec03906d90d91379a3a9874a608ce41307 bitlbee-mastodon-1.4.5.tar.gz
+"
diff --git a/testing/bitritter/APKBUILD b/testing/bitritter/APKBUILD
new file mode 100644
index 00000000000..232fcd613dc
--- /dev/null
+++ b/testing/bitritter/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Clayton Craft <clayton@craftyguy.net>
+# Maintainer:
+pkgname=bitritter
+pkgver=0_git20240415
+pkgrel=0
+_commit="0a6b24a27fb28d06b22c6257d00d403889ece377"
+pkgdesc="GTK-based bitwarden client"
+url="https://codeberg.org/Chfkch/bitritter"
+arch="all !s390x" # 'nix' crate fails to compile
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ glib-dev
+ graphene-dev
+ gtk4.0-dev
+ libadwaita-dev
+ openssl-dev
+"
+source="
+ $pkgname-$_commit.tar.gz::https://codeberg.org/Chfkch/bitritter/archive/$_commit.tar.gz
+ bitritter.desktop
+ "
+builddir="$srcdir/$pkgname"
+
+export PKG_CONFIG_PATH=/usr/lib/pkgconfig
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ glib_sys_NO_PKG_CONFIG=1 \
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/bitritter \
+ -t "$pkgdir"/usr/bin/
+ install -Dm644 "$srcdir"/bitritter.desktop \
+ -t "$pkgdir"/usr/share/applications/
+}
+
+sha512sums="
+1e2e1f11d9ce2dde92da308bb3a1be8a4f57183e20e1f36cf28e12bacfe21357a3ddee91366bb760b233716251243205895e51bf1832090db618a192e7569450 bitritter-0a6b24a27fb28d06b22c6257d00d403889ece377.tar.gz
+03b31377d37edbaa3cb2447e02caea0ecaad4a0b78b9adb61d0c218af1be5472090b6cc3a8139ddd40a82bc75e826900033ea4225277cdd0f0f77c34543500be bitritter.desktop
+"
diff --git a/testing/bitritter/bitritter.desktop b/testing/bitritter/bitritter.desktop
new file mode 100644
index 00000000000..822f7b1461c
--- /dev/null
+++ b/testing/bitritter/bitritter.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Bitritter
+GenericName=Password Manager
+Comment=BitWarden-compatible client
+TryExec=bitritter
+Exec=bitritter %u
+# Icon=
+Terminal=false
+Type=Application
+Categories=Utility;
+StartupNotify=false
+StartupWMClass=Bitritter
diff --git a/testing/black/APKBUILD b/testing/black/APKBUILD
deleted file mode 100644
index d6dc023182d..00000000000
--- a/testing/black/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=black
-pkgver=19.10_beta0
-_pkgver=${pkgver/_beta/b}
-pkgrel=0
-pkgdesc="The uncompromising Python code formatter"
-url="https://github.com/psf/black"
-arch="noarch !s390x !mips !mips64" # tests fail on s390x and mips
-license="MIT"
-depends="python3 py3-click py3-attrs py3-toml py3-appdirs py3-typed-ast py3-regex py3-pathspec"
-makedepends="py3-setuptools"
-checkdepends="py3-aiohttp py3-aiohttp-cors"
-source="https://files.pythonhosted.org/packages/source/b/black/black-$_pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$_pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m unittest tests/test_black.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
-}
-
-sha512sums="abc6d2623ab50e59bed01fdb7a6ee7434c2d3e0f779a046d9141087aa6ef46b73b3aacc6bf84ac70b9384817bd2c707a3fa262811f11a2f61a99251d2b84dd02 black-19.10b0.tar.gz"
diff --git a/testing/blackbox/APKBUILD b/testing/blackbox/APKBUILD
index 5b6c34c2073..c56fbb7633d 100644
--- a/testing/blackbox/APKBUILD
+++ b/testing/blackbox/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Galen Abell <galen@galenabell.com>
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=blackbox
-pkgver=1.20200429
+pkgver=1.20220610
pkgrel=0
pkgdesc="Safely store secrets in Git/Mercurial/Subversion"
url="https://github.com/StackExchange/blackbox"
@@ -17,4 +17,6 @@ package() {
make PREFIX="$pkgdir" copy-install
}
-sha512sums="afa8fec6abbaf3485f4df15993c8eb5e2903c8d1a1fe427b9362c89d49ef68c474d226cfa899a80d12fd8b8d570349a09d8a61bfc4b5559ab4ae3d836780175f blackbox-1.20200429.tar.gz"
+sha512sums="
+db45d7874e5a1e62e8a078eca8c3fed8fae895ee979e516bd900374c5a39808f4dec39a637ae870bbf37bb4d05fe0b469decdc163000b0f49b87e094a4eab62c blackbox-1.20220610.tar.gz
+"
diff --git a/testing/blender/APKBUILD b/testing/blender/APKBUILD
deleted file mode 100644
index 04fdc471c03..00000000000
--- a/testing/blender/APKBUILD
+++ /dev/null
@@ -1,118 +0,0 @@
-# Contributor: Mark Riedesel <mark@klowner.com>
-# Maintainer: Mark Riedesel <mark@klowner.com>
-pkgname=blender
-pkgver=2.81a
-_pkgver=${pkgver/[a-z]}
-pkgrel=1
-pkgdesc="3D Creation/Animation/Publishing System"
-url="https://www.blender.org/"
-#arch="x86_64"
-license="GPL-2.0-or-later"
-depends="blender-shared=$pkgver-r$pkgrel"
-makedepends="cmake libx11-dev libjpeg-turbo-dev zlib-dev libpng-dev freetype-dev python3-dev
- openimageio-dev opencolorio-dev glew-dev openal-soft-dev ffmpeg-dev
- fftw-dev tiff-dev mesa-dev libxi-dev libsndfile-dev libxmu-dev boost-dev
- openexr-dev py3-numpy-dev opensubdiv-dev lzo-dev libxrender-dev openjpeg-dev"
-subpackages="$pkgname-doc $pkgname-shared::noarch $pkgname-headless $pkgname-player py3-$pkgname:python"
-source="https://download.blender.org/source/blender-$_pkgver.tar.xz
- musl-fixes.patch
- python-3.8.patch
- openimageio-lib.patch
- "
-
-builddir="$srcdir"/$pkgname-$_pkgver
-
-build() {
- # Headless
- cd "$builddir"
- mkdir -p "$builddir"/build-headless
- cd "$builddir"/build-headless
- _build -C../build_files/cmake/config/blender_headless.cmake
-
- # Full
- cd "$builddir"
- mkdir -p "$builddir"/build-full
- cd "$builddir"/build-full
- _build -C../build_files/cmake/config/blender_full.cmake
-
- # Python module
- cd "$builddir"
- mkdir -p "$builddir"/build-py
- cd "$builddir"/build-py
- _build -C../build_files/cmake/config/bpy_module.cmake
-
-}
-
-_build() {
- local PY_VERSION=$(python3 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))')
-
- cmake .. $@ \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DWITH_PYTHON_INSTALL:BOOL=OFF \
- -DWITH_INSTALL_PORTABLE:BOOL=OFF \
- -DWITH_OPENCOLORIO:BOOL=ON \
- -DWITH_IMAGE_OPENEXR=ON \
- -DWITH_IMAGE_OPENJPEG=ON \
- -DWITH_TBB:BOOL=OFF \
- -DWITH_SYSTEM_LZO=ON \
- -DPYTHON_VERSION=$PY_VERSION \
- -DNO_EXECINFO:BOOL=ON
- make
-}
-
-
-package() {
- # Install headless files
- cd "$builddir"/build-headless
- make DESTDIR="$pkgdir"/headless install
-
- # Rename the headless blender to blender-headless
- mkdir -p "$pkgdir"/usr/bin
- mv "$pkgdir"/headless/usr/bin/blender "$pkgdir"/usr/bin/blender-headless
- rm -rf "$pkgdir"/headless
-
- # Install python module
- cd "$builddir"/build-py
- make DESTDIR="$pkgdir" install
-
- # Install the full package
- cd "$builddir"/build-full
- make DESTDIR="$pkgdir" install
-}
-
-shared() {
- pkgdesc="Blender shared runtime data and add-on scripts"
- mkdir -p "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/share/blender "$subpkgdir"/usr/share/
-}
-
-headless() {
- pkgdesc="$pkgdesc (headless build)"
- depends="blender-shared=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/blender-headless "$subpkgdir"/usr/bin/
-}
-
-player() {
- pkgdesc="Blender player runtime"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/blenderplayer "$subpkgdir"/usr/bin/
-}
-
-python() {
- local PY_VERSION=$(python3 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))')
-
- pkgdesc="Blender modules for Python 3"
- mkdir -p "$subpkgdir"/usr/lib/python${PY_VERSION}/site-packages
- mv "$pkgdir"/usr/lib/python${PY_VERSION}/site-packages/bpy.so "$subpkgdir"/usr/lib/python${PY_VERSION}/site-packages/
- rm -rf "$pkgdir"/usr/lib
-
- # Symlink to the blender-shared files
- ln -s /usr/share/blender/${_pkgver} "$subpkgdir"/usr/lib/python${PY_VERSION}/site-packages/${_pkgver}
-}
-
-sha512sums="b7eed47afc4bdb87e9e8a579565935ae8489459197fb9b5978285cfe255ea4fc4151a1178526857921f3b2d54cf63b68dda66586565340f7bfd4274b82e7e9ff blender-2.81.tar.xz
-f931712c27d5012f1fb01b97107eba9e3bc195c0aafb0a1e782030b5eedf8beb4d15153b46464492098974e17e0b0a1659a078e811423b5a27cdd350209d90c3 musl-fixes.patch
-d95456d26bcf0b28776d4b36a20a210235b11b2ee32b6f051c88d08199792484811573b55f1850f3c1cda816d491ef332de1fe81421b761a7b4be515df726b4e python-3.8.patch
-42ed74bfae38721b7e8301dfe00a97cba0b25886cb39017620d442f9403386b5ca68daa0907d003e210ae01321986772c9721ea3de512701e6565d60a19f0c8e openimageio-lib.patch"
diff --git a/testing/blender/musl-fixes.patch b/testing/blender/musl-fixes.patch
deleted file mode 100644
index 89ecee70875..00000000000
--- a/testing/blender/musl-fixes.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0c2e4f8..5b7b747 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -185,6 +185,18 @@ if(UNIX AND NOT APPLE)
- set(_init_OPENSUBDIV OFF)
- set(_init_OPENVDB OFF)
- set(_init_OPENIMAGEDENOISE OFF)
-+ # musl-libc related checks (missing execinfo.h, and feenableexcept())
-+ include(CheckIncludeFiles)
-+ check_include_files(execinfo.h HAVE_EXECINFO_H)
-+ if (HAVE_EXECINFO_H)
-+ add_definitions(-DHAVE_EXECINFO_H)
-+ endif()
-+
-+ include(CheckLibraryExists)
-+ check_library_exists(m feenableexcept "fenv.h" HAVE_FEENABLEEXCEPT)
-+ if (HAVE_FEENABLEEXCEPT)
-+ add_definitions(-DHAVE_FEENABLEEXCEPT)
-+ endif()
- elseif(WIN32)
- set(_init_JACK OFF)
- elseif(APPLE)
-diff --git a/intern/guardedalloc/intern/mallocn_intern.h b/intern/guardedalloc/intern/mallocn_intern.h
-index e6e0907..6868a88 100644
---- a/intern/guardedalloc/intern/mallocn_intern.h
-+++ b/intern/guardedalloc/intern/mallocn_intern.h
-@@ -40,7 +40,8 @@
- #undef HAVE_MALLOC_STATS
- #define USE_MALLOC_USABLE_SIZE /* internal, when we have malloc_usable_size() */
-
--#if defined(__linux__) || (defined(__FreeBSD_kernel__) && !defined(__FreeBSD__)) || \
-+#if (defined(__linux__) && defined(HAVE_EXECINFO_H)) \
-+ || (defined(__FreeBSD_kernel__) && !defined(__FreeBSD__)) || \
- defined(__GLIBC__)
- # include <malloc.h>
- # define HAVE_MALLOC_STATS
-diff --git a/source/blender/blenlib/intern/system.c b/source/blender/blenlib/intern/system.c
-index 941c2b6..2b710a4 100644
---- a/source/blender/blenlib/intern/system.c
-+++ b/source/blender/blenlib/intern/system.c
-@@ -38,7 +38,9 @@
- # include <dbghelp.h>
- # pragma warning(pop)
- #else
--# include <execinfo.h>
-+# if defined(HAVE_EXECINFO_H)
-+# include <execinfo.h>
-+# endif
- # include <unistd.h>
- #endif
-
-diff --git a/source/creator/creator_signals.c b/source/creator/creator_signals.c
-index e8c6e92..5b54ea9 100644
---- a/source/creator/creator_signals.c
-+++ b/source/creator/creator_signals.c
-@@ -329,7 +329,7 @@ void main_signal_setup_fpe(void)
- * set breakpoints on sig_handle_fpe */
- signal(SIGFPE, sig_handle_fpe);
-
--# if defined(__linux__) && defined(__GNUC__)
-+# if defined(__linux__) && defined(__GNUC__) && defined(HAVE_FEENABLEEXCEPT)
- feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
- # endif /* defined(__linux__) && defined(__GNUC__) */
- # if defined(OSX_SSE_FPE)
-diff --git a/source/blender/blenlib/intern/system.c b/source/blender/blenlib/intern/system.c
-index 2b710a4..0e2948c 100644
---- a/source/blender/blenlib/intern/system.c
-+++ b/source/blender/blenlib/intern/system.c
-@@ -83,7 +83,7 @@ void BLI_system_backtrace(FILE *fp)
- {
- /* ------------- */
- /* Linux / Apple */
--#if defined(__linux__) || defined(__APPLE__)
-+#if (defined(__linux__) && defined(HAVE_EXECINFO_H)) || defined(__APPLE__)
-
- # define SIZE 100
- void *buffer[SIZE];
diff --git a/testing/blender/openimageio-lib.patch b/testing/blender/openimageio-lib.patch
deleted file mode 100644
index 81d2a20936b..00000000000
--- a/testing/blender/openimageio-lib.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/build_files/cmake/Modules/FindOpenImageIO.cmake b/build_files/cmake/Modules/FindOpenImageIO.cmake
-index 5652e16..9358cc7 100644
---- a/build_files/cmake/Modules/FindOpenImageIO.cmake
-+++ b/build_files/cmake/Modules/FindOpenImageIO.cmake
-@@ -71,7 +71,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenImageIO DEFAULT_MSG
- OPENIMAGEIO_LIBRARY OPENIMAGEIO_INCLUDE_DIR)
-
- IF(OPENIMAGEIO_FOUND)
-- SET(OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY})
-+ SET(OPENIMAGEIO_LIBRARIES ${OPENEXR_ILMIMF_LIBRARY} ${OPENIMAGEIO_LIBRARY})
- SET(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
- IF(EXISTS ${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO/pugixml.hpp)
- SET(OPENIMAGEIO_PUGIXML_FOUND TRUE)
diff --git a/testing/blender/python-3.8.patch b/testing/blender/python-3.8.patch
deleted file mode 100644
index c26934e3447..00000000000
--- a/testing/blender/python-3.8.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Index: blender-2.80_patched/source/blender/python/generic/py_capi_utils.c
-===================================================================
---- blender-2.80_patched/source/blender/python/generic/py_capi_utils.c
-+++ blender-2.80_patched/source/blender/python/generic/py_capi_utils.c
-@@ -717,9 +717,11 @@
- ****************************************************************************/
- PyObject *PyC_DefaultNameSpace(const char *filename)
- {
-- PyInterpreterState *interp = PyThreadState_GET()->interp;
-+ PyObject *modules = PyImport_GetModuleDict();
-+ PyObject *builtins = PyDict_GetItemString(modules, "builtins");
-+
- PyObject *mod_main = PyModule_New("__main__");
-- PyDict_SetItemString(interp->modules, "__main__", mod_main);
-+ PyDict_SetItemString(modules, "__main__", mod_main);
- Py_DECREF(mod_main); /* sys.modules owns now */
- PyModule_AddStringConstant(mod_main, "__name__", "__main__");
- if (filename) {
-@@ -727,8 +729,8 @@
- * note: this wont map to a real file when executing text-blocks and buttons. */
- PyModule_AddObject(mod_main, "__file__", PyC_UnicodeFromByte(filename));
- }
-- PyModule_AddObject(mod_main, "__builtins__", interp->builtins);
-- Py_INCREF(interp->builtins); /* AddObject steals a reference */
-+ PyModule_AddObject(mod_main, "__builtins__", builtins);
-+ Py_INCREF(builtins); /* AddObject steals a reference */
- return PyModule_GetDict(mod_main);
- }
-
-@@ -755,15 +757,15 @@
- /* restore MUST be called after this */
- void PyC_MainModule_Backup(PyObject **main_mod)
- {
-- PyInterpreterState *interp = PyThreadState_GET()->interp;
-- *main_mod = PyDict_GetItemString(interp->modules, "__main__");
-+ PyObject *modules = PyImport_GetModuleDict();
-+ *main_mod = PyDict_GetItemString(modules, "__main__");
- Py_XINCREF(*main_mod); /* don't free */
- }
-
- void PyC_MainModule_Restore(PyObject *main_mod)
- {
-- PyInterpreterState *interp = PyThreadState_GET()->interp;
-- PyDict_SetItemString(interp->modules, "__main__", main_mod);
-+ PyObject *modules = PyImport_GetModuleDict();
-+ PyDict_SetItemString(modules, "__main__", main_mod);
- Py_XDECREF(main_mod);
- }
-
diff --git a/testing/bliss/APKBUILD b/testing/bliss/APKBUILD
new file mode 100644
index 00000000000..1355fe88f5c
--- /dev/null
+++ b/testing/bliss/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=bliss
+pkgver=0.77
+pkgrel=1
+pkgdesc="Tool for computing automorphism groups and canonical labelings of graphs"
+url="https://users.aalto.fi/~tjunttil/bliss"
+arch="all"
+license="LGPL-3.0-only"
+makedepends="cmake samurai"
+source="https://archive.org/download/bliss-$pkgver.tar.gz/bliss-$pkgver.tar.gz"
+subpackages="$pkgname-dev"
+builddir="$srcdir/Bliss-$pkgver"
+
+build() {
+ cmake -G Ninja -B builddir \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build builddir
+}
+
+check() {
+ ./builddir/bliss -version
+}
+
+package() {
+ install -Dm755 builddir/bliss "$pkgdir"/usr/bin/bliss
+ install -Dm755 builddir/libbliss.a "$pkgdir"/usr/lib/libbliss.a
+ for file in include/bliss/*; do
+ install -Dm644 "$file" "$pkgdir"/usr/"$file"
+ done
+}
+
+sha512sums="
+27bd44695f2c1f3dfcb2f39f75fea3f61db29dfde4bef545bd14017830cd3d399b2e448ae7a703a5886bd433b22f6eddfaa99618c8714340d366d8e387ae6583 bliss-0.77.tar.gz
+"
diff --git a/testing/bluez-alsa/APKBUILD b/testing/bluez-alsa/APKBUILD
deleted file mode 100644
index b34f0edf8eb..00000000000
--- a/testing/bluez-alsa/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Maintainer: Bradley Saulteaux <-@bradso.to>
-pkgname=bluez-alsa
-pkgver=2.1.0
-pkgrel=1
-pkgdesc="Bluetooth Audio ALSA Backend"
-url="https://github.com/Arkq/bluez-alsa"
-arch="all"
-license="MIT"
-depends="bluez"
-subpackages="$pkgname-openrc"
-makedepends="automake autoconf libtool alsa-lib-dev bluez-dev glib-dev sbc-dev
- dbus-dev fdk-aac-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Arkq/bluez-alsa/archive/v$pkgver.tar.gz
- bluealsa.initd
- "
-
-prepare() {
- default_prepare
- autoreconf --install
- mkdir build
-}
-
-build() {
- cd build
- ../configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-aac \
- --enable-ofono \
- --disable-static
- make
-}
-
-check() {
- cd build
- make check
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
- install -Dm755 ../../bluealsa.initd "$pkgdir"/etc/init.d/bluealsa
-}
-sha512sums="8b6d520f5733799b1c509052ac527377cbe5e0106b75180f783f83071246937b5dc7a22c2d27f3e9e331c52c74be59f3bc6d78caab97b41f06cfd6ed5191b584 bluez-alsa-2.1.0.tar.gz
-7952c75a47ef8bbbd9ea7c8f16e62ff6355db4011a4c3a7c9d084c740cebde945bb443a987169a8e314d422958288fd02704a25d28c9770fcb8a2c050530ab26 bluealsa.initd"
diff --git a/testing/bluez-alsa/bluealsa.initd b/testing/bluez-alsa/bluealsa.initd
deleted file mode 100755
index 01b6d826887..00000000000
--- a/testing/bluez-alsa/bluealsa.initd
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/sbin/openrc-run
-depend() {
- need bluetooth
-}
-command="/usr/bin/$RC_SVCNAME"
-command_background="yes"
-pidfile="/run/$RC_SVCNAME.pid"
diff --git a/testing/bm818-tools/APKBUILD b/testing/bm818-tools/APKBUILD
new file mode 100644
index 00000000000..df9d7c5dbb6
--- /dev/null
+++ b/testing/bm818-tools/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Alistair Francis <alistair@alistair23.me>
+pkgname=bm818-tools
+pkgver=0.7
+pkgrel=0
+pkgdesc="Free tools for use with the BM818 modem"
+url="https://source.puri.sm/Librem5/bm818-tools"
+arch="all"
+license="GPL-3.0-or-later"
+depends="
+ ppp
+ python3
+ py3-pyserial
+ py3-udev
+ "
+
+source="
+ https://source.puri.sm/Librem5/bm818-tools/-/archive/v$pkgver/bm818-tools-v$pkgver.tar.gz
+"
+options="!check" # no test suite
+builddir="$srcdir/bm818-tools-v$pkgver"
+
+package() {
+ install -D -m755 "usr/bin/bm818-fw-check" "$pkgdir/usr/bin/bm818-fw-check"
+ install -D -m755 "usr/bin/bm818-tool" "$pkgdir/usr/bin/bm818-tool"
+ install -D -m755 "usr/bin/bm818-volte" "$pkgdir/usr/bin/bm818-volte"
+ install -D -m755 "usr/bin/bm818-volte-check" "$pkgdir/usr/bin/bm818-volte-check"
+
+ for f in usr/share/bm818-tools/*; do
+ install -D -t "$pkgdir/usr/share/bm818-tools/" $f;
+ done
+
+ # Copy the glade file for the GUI
+ #
+ # We don't install the desktop file (usr/share/applications/bm818-tool.desktop)
+ # as by default the user won't have permissions to run the GUI. To access the
+ # modem you need to be root or the user needs to be a member of the dialout group.
+ #
+ # We don't want to add the user to the dialout group just to run this GUI, instead
+ # let's just expect the user to run the scripts or GUI from the terminal as
+ # root (or add themselves to dialout).
+ # See: https://source.puri.sm/Librem5/bm818-tools/-/issues/5
+ install -D -m755 "data/bm818-tool.glade" "$pkgdir/usr/share/bm818-tools/bm818-tool.glade"
+}
+
+sha512sums="
+1c3ff524e68271189da6d2cd0413d64acf6f3b5e0ce2c05d97e537aadc7dd82615597b51985ee23f790a51e4261e20480988133fb481dc0b042bc968e7ce6849 bm818-tools-v0.7.tar.gz
+"
diff --git a/testing/boa-cli/APKBUILD b/testing/boa-cli/APKBUILD
new file mode 100644
index 00000000000..fa3a8f589c4
--- /dev/null
+++ b/testing/boa-cli/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=boa-cli
+pkgver=0.18
+pkgrel=0
+pkgdesc="Embeddable and experimental Javascript engine written in Rust"
+url="https://github.com/boa-dev/boa/"
+# 32-bit: failing tests
+# ppc64le: corosensei crate
+# s390x: nix crate
+arch="all !armhf !armv7 !x86 !ppc64le !s390x"
+license="MIT OR Unlicense"
+makedepends="cargo cargo-auditable"
+checkdepends="openssl-dev"
+source="https://github.com/boa-dev/boa/archive/refs/tags/v$pkgver/boa-$pkgver.tar.gz"
+builddir="$srcdir/boa-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --package boa_cli --release --frozen --bin boa
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/boa "$pkgdir"/usr/bin/boa
+}
+
+sha512sums="
+a7b61f22b7081d55316a9260da7adc740033de2258c441ce599ba082ae07d1712e51de8f575bd997b6b367bc7d0655839cfc16b0014a56283ff9de3a40c0fb12 boa-0.18.tar.gz
+"
diff --git a/testing/bobcat/APKBUILD b/testing/bobcat/APKBUILD
index fe5a983fec1..2ba94720185 100644
--- a/testing/bobcat/APKBUILD
+++ b/testing/bobcat/APKBUILD
@@ -1,17 +1,17 @@
# Contributor: Shiz <hi@shiz.me>
# Maintainer: Shiz <hi@shiz.me>
pkgname=bobcat
-pkgver=4.08.01
+pkgver=4.09.00
pkgrel=0
pkgdesc="Brokken's Own Base Classes And Templates"
-url="https://fbb-git.github.io/bobcat/"
+url="https://gitlab.com/fbb-git/bobcat"
arch="all"
license="GPL-2.0-or-later"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="icmake bash yodl"
subpackages="$pkgname-doc $pkgname-dev"
options="!check" # no tests provided by upstream.
-source="bobcat-$pkgver.tar.gz::https://github.com/fbb-git/bobcat/archive/$pkgver.tar.gz
+source="bobcat-$pkgver.tar.gz::https://gitlab.com/fbb-git/bobcat/-/archive/$pkgver/bobcat-$pkgver.tar.gz
dont-use-reserved-name-for-page-size.patch
avoid-gnuisms.patch
avoid-strerror_r.patch
@@ -34,7 +34,9 @@ package() {
./build install hlm "$pkgdir"
}
-sha512sums="8752392e6feb0f3caf119ebf58423dc4cb24f0cd9f421e58ba14648baf8603235bfb44c24d5ea1ecee78a52620fe3ad2936091ec47b0de924c4af00ebc8b16f1 bobcat-4.08.01.tar.gz
+sha512sums="
+03357d7b6dc00d7f41a59775703e42474b07ef121a4187270b439b8e23ddd0f1e43d1fba5fa27839cc2426cb01fd800c42f1da931280331dcc29b4cc8d64f816 bobcat-4.09.00.tar.gz
6521da77c2452fb2c4b209c24e5dae04650636224efe5e75e2f2e64ab1c6457392ad4cdc4afbe79526734c8211488b2dc5915210ee7af646e7d0af04579cd484 dont-use-reserved-name-for-page-size.patch
24eb74e7dab68cb70f89459228f0f302a5214f8d45bc31e38a8d608edfa97cfe61710212fface32fc480fc4ef2fb23bbca7ed806dd40330e6da69774b3d1965d avoid-gnuisms.patch
-1129bb0666f6809ab2cca60bb164f4c557be7d27db84e41712643ee5027b8c7b62bc82e8f1c5fa9a1e737e487fe58f163afd6687d94fbacb9a23ad7818851cf0 avoid-strerror_r.patch"
+1129bb0666f6809ab2cca60bb164f4c557be7d27db84e41712643ee5027b8c7b62bc82e8f1c5fa9a1e737e487fe58f163afd6687d94fbacb9a23ad7818851cf0 avoid-strerror_r.patch
+"
diff --git a/testing/boinc/APKBUILD b/testing/boinc/APKBUILD
index 988a8cdf833..f7dc23e2879 100644
--- a/testing/boinc/APKBUILD
+++ b/testing/boinc/APKBUILD
@@ -1,27 +1,59 @@
# Contributor: Joe Searle <joe@jsearle.net>
+# Contributor: knuxify <knuxify@gmail.com>
# Maintainer: Joe Searle <joe@jsearle.net>
pkgname=boinc
-pkgver=7.16.1
+pkgver=7.24.3
_pkgver=${pkgver%.*}
-pkgrel=2
-pkgdesc="Open-source software for volunteer computing and grid computing."
+pkgrel=0
+pkgdesc="Open-source software for volunteer computing and grid computing"
url="https://boinc.berkeley.edu/"
-arch="all"
+arch="all !riscv64"
options="!check" # nothing is actually done by make check
license="LGPL-3.0-or-later"
depends="bash procps shadow"
-makedepends="$depends_dev automake autoconf curl-dev docbook2x freeglut-dev
- glu-dev libjpeg-turbo-dev libnotify-dev openssl-dev libtool
- libxi-dev libxmu-dev libxscrnsaver-dev m4 mesa-dev pkgconf
- sqlite-dev wxgtk-dev"
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ clang
+ curl-dev
+ docbook2x
+ freeglut-dev
+ glu-dev
+ libjpeg-turbo-dev
+ libnotify-dev
+ libtool
+ libxi-dev
+ libxmu-dev
+ libxscrnsaver-dev
+ m4
+ mesa-dev
+ openssl-dev>3
+ sqlite-dev
+ wxwidgets-dev
+ "
install="$pkgname.pre-install"
pkgusers="boinc"
pkggroups="boinc"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-gui $pkgname-lang $pkgname-libs $pkgname-openrc $pkgname-screensaver"
+subpackages="
+ $pkgname-doc
+ $pkgname-dev
+ $pkgname-gui
+ $pkgname-lang
+ $pkgname-libs
+ $pkgname-screensaver
+ "
source="boinc-$pkgver.tar.gz::https://github.com/BOINC/boinc/archive/client_release/$_pkgver/$pkgver.tar.gz"
builddir="$srcdir/$pkgname-client_release-$_pkgver-$pkgver"
build() {
+ # GCC fails on non-x86 architectures
+ export CC=clang
+ export CXX=clang++
+ # a bunch of failures in vendored ancient libzip that is patched..
+ export CFLAGS="$CFLAGS -O2 -Wno-error=format-security"
+ export CXXFLAGS="$CXXFLAGS -O2 -Wno-error=format-security"
+
./_autosetup
./configure \
@@ -50,38 +82,18 @@ package() {
make DESTDIR="$pkgdir" install
}
-_cleanup_empty_dirs() {
- local _dir
- _dir="${1:-"$pkgdir"}"
-
- find "$_dir" -mindepth 1 -depth -type d -exec rmdir --ignore-fail-on-non-empty '{}' +
-}
-
-libs() {
- default_libs
- depends="$depends_libs"
-
- _cleanup_empty_dirs
-}
-
gui() {
- depends="$depends_gui"
pkgdesc="$pkgdesc (manager)"
- mkdir -p "$subpkgdir/usr/bin"
- mv "$pkgdir/usr/bin/boincmgr" "$subpkgdir/usr/bin"
-
- _cleanup_empty_dirs
+ amove usr/bin/boincmgr
}
screensaver() {
- depends="$depends_screensaver"
pkgdesc="$pkgdesc (screensaver)"
- mkdir -p "$subpkgdir/usr/bin"
- mv "$pkgdir/usr/bin/boincscr" "$subpkgdir/usr/bin"
-
- _cleanup_empty_dirs
+ amove usr/bin/boincscr
}
-sha512sums="53d320564a4a7de1b4d47c5f9492a9180c2875f9910cd609d370217075790fa01627ea4ccb79b1e7216308ff9e8ad0c7974cd2df3ad81e0ef17133ee3782a221 boinc-7.16.1.tar.gz"
+sha512sums="
+d66664df49b83fb71e8f06e6f9ca0aee720ec04b1fb95b08426ee9af365403605624ba6dc1f78f3fba3f966d365b610ed24ceffdc54b071509f4f0bf959e027c boinc-7.24.3.tar.gz
+"
diff --git a/testing/bonzomatic/APKBUILD b/testing/bonzomatic/APKBUILD
index 87e81c87729..793f80c418f 100644
--- a/testing/bonzomatic/APKBUILD
+++ b/testing/bonzomatic/APKBUILD
@@ -1,16 +1,26 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=bonzomatic
-_datever=2020-05-09
+_datever=2023-06-15
pkgver=${_datever//-/}
pkgrel=0
pkgdesc="OpenGL shader livecoding toy"
url="https://github.com/Gargaj/Bonzomatic"
arch="all"
license="Unlicense"
-depends=""
-makedepends="cmake fontconfig-dev mesa-dev alsa-lib-dev libxrandr-dev libxinerama-dev libxcursor-dev glu-dev libxi-dev"
-install=""
-subpackages=""
+makedepends="
+ alsa-lib-dev
+ cmake
+ fontconfig-dev
+ glew-dev
+ glfw-dev
+ glu-dev
+ libxcursor-dev
+ libxi-dev
+ libxinerama-dev
+ libxrandr-dev
+ mesa-dev
+ samurai
+ "
source="https://github.com/Gargaj/Bonzomatic/archive/$_datever/bonzomatic-$_datever.tar.gz"
builddir="$srcdir/Bonzomatic-$_datever"
options="!check" # no test suite
@@ -19,17 +29,20 @@ build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake -B build \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- ${CMAKE_CROSSOPTS} .
- make -C build
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ $CMAKE_CROSSOPTS
+ # broken
+ # -DBONZOMATIC_USE_SYSTEM_GLFW=ON \
+ # -DBONZOMATIC_USE_SYSTEM_GLEW=ON \
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="550d2cb1a4c135824782b0f9577f51b62f940f0c915a55861c241bd2937d91c2233c4ce5e4563e8d8a63237bc3b5e1273e738a912ee8ab1d5f62ad7bbdac5c33 bonzomatic-2020-05-09.tar.gz"
+sha512sums="
+60651dc16ce9c38e117a7530dbf17452dbcc50f2fa067b99a4c732c692e1b9b377da489135227c9d0492d9fe38e445a39d459f1f6567043054fdbc1646f85c1f bonzomatic-2023-06-15.tar.gz
+"
diff --git a/testing/bootinfo/APKBUILD b/testing/bootinfo/APKBUILD
new file mode 100644
index 00000000000..fb0363b8804
--- /dev/null
+++ b/testing/bootinfo/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer:
+pkgname=bootinfo
+pkgver=0.1.0
+pkgrel=3
+pkgdesc="Bootloader info for ARM devices"
+url="https://git.sr.ht/~martijnbraam/bootinfo"
+arch="noarch"
+license="GPL-3.0"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/bootinfo/archive/$pkgver.tar.gz"
+depends="python3"
+makedepends="py3-setuptools python3-dev"
+checkdepends="py3-pytest"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest bootinfo
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+88723e0cd5d8e52b21badb47d1ccbd258934b473256092a919301492d2a45e2d2dc045a8ff98c92a26be1c03975b01767879b1d671e2fd63a135b7ec39924c44 bootinfo-0.1.0.tar.gz
+"
diff --git a/testing/bootloose/APKBUILD b/testing/bootloose/APKBUILD
new file mode 100644
index 00000000000..bb5c7ceb1ad
--- /dev/null
+++ b/testing/bootloose/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=bootloose
+pkgver=0.7.1
+pkgrel=3
+pkgdesc="Manage containers that look like virtual machines"
+url="https://github.com/k0sproject/bootloose"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="https://github.com/k0sproject/bootloose/archive/refs/tags/v$pkgver/bootloose-$pkgver.tar.gz"
+options="chmod-clean"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make
+}
+
+check() {
+ make test-unit
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+515d6eff47705c84c10421a32fe18a2fcefdf5214824a08f3651a632b0e0ba53c4e83f485ac81eba483c795d285bbda31c8f134c4128e4df609e6528c3f8819d bootloose-0.7.1.tar.gz
+"
diff --git a/testing/bootterm/APKBUILD b/testing/bootterm/APKBUILD
new file mode 100644
index 00000000000..652fadbef85
--- /dev/null
+++ b/testing/bootterm/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=bootterm
+pkgver=0.4
+pkgrel=2
+pkgdesc="Simple, reliable and powerful terminal designed to ease connection to ephemeral serial ports"
+url="https://github.com/wtarreau/bootterm"
+arch="all"
+license="MIT"
+makedepends="linux-headers"
+subpackages="$pkgname-dbg"
+
+source="$pkgname-$pkgver.tar.gz::https://github.com/wtarreau/bootterm/archive/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="a4f1abcc4deaa8667ea3b41caf63f15c92bf19cc0c1ad57d1119acd4ba232d130675a94971b8270a869eededd073f2fd55d4ec7a95058f6bebd57f73e0cea9d9 bootterm-0.4.tar.gz"
diff --git a/testing/bordeaux/APKBUILD b/testing/bordeaux/APKBUILD
new file mode 100644
index 00000000000..098481f6c7d
--- /dev/null
+++ b/testing/bordeaux/APKBUILD
@@ -0,0 +1,73 @@
+# Maintainer: David Sugar <tychosoft@gmail.com>
+# Contributor: David Sugar <tychosoft@gmail.com>
+pkgname=bordeaux
+pkgver=0.8.1
+pkgrel=0
+pkgdesc="SIP telephony application server"
+url="https://www.tychosoft.com/tychosoft/bordeaux/wiki"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake fmt-dev>=8.1.0 flite-dev openssl-dev moderncli-dev>=0.8.0 libosip2-dev>=5.3.0 libexosip2-dev>=5.3.0 rapidjson-dev"
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-dev $pkgname-coventry $pkgname-generic $pkgname-en_voices"
+source="https://www.tychosoft.com/api/packages/tychosoft/generic/bordeaux/$pkgver/bordeaux-$pkgver.tar.gz bordeaux.initd bordeaux.confd"
+
+build() {
+ cmake \
+ -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc \
+ -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=/var \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DCMAKE_INSTALL_SBINDIR=/usr/sbin \
+ -DSERVER_PREFIX_PATH=/var/lib/bordeaux \
+ -DSERVER_LOGGER_PATH=/var/log/bordeaux \
+ -DSERVER_CONFIG_FILE=/etc/bordeaux.conf \
+ -DCMAKE_BUILD_TYPE=Release .
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+ install -d -m 750 -g adm "$pkgdir"/var/log/$pkgname
+ install -d -m 700 "$pkgdir"/var/lib/$pkgname
+ install -D -m 700 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -D -m 640 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
+ install -Dm644 drivers/DRIVER.md "$pkgdir"/usr/share/licenses/$pkgname/DRIVER.md
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+ install -Dm644 FEATURES.md "$pkgdir"/usr/share/doc/$pkgname/FEATURES.md
+}
+
+en_voices() {
+ pkgdesc="bordeaux default english voice"
+ depends="bordeaux"
+ amove usr/share/bordeaux/voices/en
+ amove usr/lib/bordeaux/plugin_en.so
+}
+
+dev() {
+ default_dev
+ pkgdesc="bordeaux headers and dev utils"
+ amove usr/bin/bordeauxsnd
+}
+
+coventry() {
+ pkgdesc="bordeaux coventry driver"
+ depends="bordeaux"
+ amove usr/lib/bordeaux/driver_coventry.so
+}
+
+generic() {
+ pkgdesc="bordeaux generic driver"
+ depends="bordeaux"
+ amove usr/lib/bordeaux/driver_generic.so
+}
+
+sha512sums="
+904bb25268a08f2e8995027f7504b6e31d2a7d7cf4a350f6ee45c589a569a7b2516769e06ff6b362ced48e5a3b57757797e9e66726cb0b06dd0ad963677e5746 bordeaux-0.8.1.tar.gz
+ff38a277a26a5224ab041fc6916f7ff9305f85e2d72679ae3b00084a35f80eb3d7453faa1bf2d49d306bb75747bdc1ec78bb6cc14e3d1fc627ed623142a5afa0 bordeaux.initd
+c6e67fbc38c8e75ea742e6b6204c8a0406b0f9226f0e667ee72c4e51bfa8d0fd45445ba160d1e7198ce509778abe94b6a86044e2aef86c31385f69f901570a1c bordeaux.confd
+"
diff --git a/testing/bordeaux/bordeaux.confd b/testing/bordeaux/bordeaux.confd
new file mode 100644
index 00000000000..1ab5938684d
--- /dev/null
+++ b/testing/bordeaux/bordeaux.confd
@@ -0,0 +1,9 @@
+# setup bordeaux daemon environment
+
+# Driver specifies the bordeaux driver, for example coventry or generic
+DRIVER=coventry
+
+# Specifies startup dependencies, such as coventry, asterisk, etc, if ran
+# on the same machine, otherwise can be left blank.
+DEPENDS=coventry
+
diff --git a/testing/bordeaux/bordeaux.initd b/testing/bordeaux/bordeaux.initd
new file mode 100644
index 00000000000..1f952560f81
--- /dev/null
+++ b/testing/bordeaux/bordeaux.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name=bordeaux
+command="/usr/sbin/bordeaux"
+command_args="-d ${DRIVER:-coventry}"
+pidfile="/run/bordeaux.pid"
+extra_started_commands="reload"
+
+depend() {
+ use logger dns
+ need net
+ after firewall ${DEPENDS:-coventry}
+}
+
+stop() {
+ ebegin "Stopping ${RC_SVCNAME}"
+ start-stop-daemon --signal INT --pidfile "${pidfile}"
+ eend $? "Failed to stop ${RC_SVCNAME}"
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
+
diff --git a/testing/bore/APKBUILD b/testing/bore/APKBUILD
new file mode 100644
index 00000000000..4b1808d3937
--- /dev/null
+++ b/testing/bore/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=bore
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="Simple CLI tool for making tunnels to localhost"
+url="https://github.com/ekzhang/bore"
+# riscv64: rust broken
+# s390x: tests fail
+arch="all !riscv64 !s390x"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ekzhang/bore/archive/v$pkgver/bore-$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m 755 target/release/bore -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+55d783a46e25393fc003d9c90760c141692af88fe88fecfc27c632bdc6d3352309691f8995484d9a94022c0e8e1636480104d3b7f20bf848647bb34770a8b170 bore-0.5.0.tar.gz
+"
diff --git a/testing/borgmatic/APKBUILD b/testing/borgmatic/APKBUILD
deleted file mode 100644
index 6e602b138f4..00000000000
--- a/testing/borgmatic/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=borgmatic
-pkgver=1.5.3
-pkgrel=0
-pkgdesc="Simple, configuration-driven backup software for servers and workstations"
-url="https://torsion.org/borgmatic/"
-arch="noarch !s390x !mips !mips64" # limited by borgbackup
-license="GPL-3.0-or-later"
-depends="borgbackup python3 py3-setuptools py3-pykwalify py3-requests py3-ruamel.yaml py3-colorama"
-checkdepends="py3-pytest py3-pytest-cov py3-flexmock"
-source="$pkgname-$pkgver.tar.gz::https://projects.torsion.org/witten/borgmatic/archive/$pkgver.tar.gz"
-builddir="$srcdir/borgmatic"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # omit a simple test that requires borgmatic to be available in $PATH
- pytest -k "not test_borgmatic_version_matches_news_version"
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
-}
-
-sha512sums="aec949b00009893e90cd52a8d0cc18e7196581674390385293d2869f542f01016f676bbea08c74190132ca769b8dede8c4ac29bbd90a96a8a428425330c70a10 borgmatic-1.5.3.tar.gz"
diff --git a/testing/boson/APKBUILD b/testing/boson/APKBUILD
new file mode 100644
index 00000000000..31e8d743a2c
--- /dev/null
+++ b/testing/boson/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=boson
+pkgver=0_git20211219
+_gitrev=9b1786213591691b8cb41ec06ada111af11c30a0
+pkgrel=0
+pkgdesc="Implementation of the meson language written in C11"
+url="https://git.sr.ht/~bl4ckb0ne/boson"
+arch="all"
+license="GPL-3.0-only"
+source="$pkgname-$_gitrev.tar.gz::https://git.sr.ht/~bl4ckb0ne/boson/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+65394c70ef6ad696955145d7d11807b05ec0e33c046f57f8b289078a75e4e9b326ffb6b51e9f121333c94d7349fc0903550299518266ec7a3fc600dc0d701fd9 boson-9b1786213591691b8cb41ec06ada111af11c30a0.tar.gz
+"
diff --git a/testing/boxed-cpp/APKBUILD b/testing/boxed-cpp/APKBUILD
new file mode 100644
index 00000000000..eed0b05f308
--- /dev/null
+++ b/testing/boxed-cpp/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=boxed-cpp
+pkgver=1.4.0
+pkgrel=0
+pkgdesc="Boxing primitive types in C++"
+url="https://contour-terminal.org"
+arch="noarch"
+license="Apache-2.0"
+makedepends="catch2-3 cmake samurai"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/contour-terminal/boxed-cpp/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBOXED_CPP_TESTS=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build -C Release --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm 644 LICENSE.txt "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+0ded6de3fdacebcb4e8e0939038a3da14cb0c5331f156563ce29fbff45d4fa34a00c9cb17e5fd0b6a93bca12884bc6cbae0c33ffa47b772abb6de263964b36ae boxed-cpp-1.4.0.tar.gz
+"
diff --git a/testing/boxes/APKBUILD b/testing/boxes/APKBUILD
index 24e80d3b010..64820536af7 100644
--- a/testing/boxes/APKBUILD
+++ b/testing/boxes/APKBUILD
@@ -1,21 +1,19 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="boxes"
-pkgver="1.3"
+pkgname=boxes
+pkgver=2.2.1
pkgrel=0
pkgdesc="Text mode box and comment drawing filter"
url="https://boxes.thomasjensen.com"
arch="all"
license="GPL-2.0"
-makedepends="bison flex"
+makedepends="bison flex libunistring-dev pcre2-dev"
checkdepends="bash"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.zip::https://github.com/ascii-boxes/boxes/archive/v$pkgver.zip
-fix-test.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ascii-boxes/boxes/archive/refs/tags/v$pkgver.tar.gz"
build() {
- make GLOBALCONF=/etc/boxes-config
+ make -j1 GLOBALCONF=/etc/boxes-config
}
check() {
@@ -25,8 +23,9 @@ check() {
package() {
install -D -m 644 doc/boxes.1 $pkgdir/usr/share/man/man1/boxes.1
install -D -m 644 boxes-config $pkgdir/etc/boxes-config
- install -D -m 755 src/boxes $pkgdir/usr/bin/boxes
+ install -D -m 755 out/boxes $pkgdir/usr/bin/boxes
}
-sha512sums="6d3078bb3c365835fe5cbd8a56b0cf98c7f335aa3be3a18c10329c339862525878b8d0d4c1f5bb8ca07dbc8eea47313ee4516b42c26d20d9aef21552f057bf2c boxes-1.3.zip
-0fb90533f56348fa5f91f080eb97e061d44a682c078c08b5409a637e644c784db47b97122daf4235bd3c57b6c07045a4a786bf029a6e0ac9f4a1ba1bcd08f538 fix-test.patch"
+sha512sums="
+0afa115d5ec01944878ef4d8f33e2887d123b172a0589eda53a04ba671916d9ef1d8299f9df9aeac8989807f86ca1b96b1c34aed03856643a89a07586b82e3b6 boxes-2.2.1.tar.gz
+"
diff --git a/testing/boxes/fix-test.patch b/testing/boxes/fix-test.patch
deleted file mode 100644
index ca52af25456..00000000000
--- a/testing/boxes/fix-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/test/004_missing_option_argument.txt b/test/004_missing_option_argument.txt
-deleted file mode 100644
-index d0fa894..0000000
---- a/test/004_missing_option_argument.txt
-+++ /dev/null
-@@ -1,11 +0,0 @@
--:ARGS
---s
--:INPUT
--:OUTPUT-FILTER
--1s/^.\+: /boxes: /
--1s/-- s$/-- 's'/
--:EXPECTED-ERROR 1
--boxes: option requires an argument -- 's'
--Usage: boxes [options] [infile [outfile]]
--Try `boxes -h' for more information.
--:EOF
-diff --git a/test/065_size_missing_argument.txt b/test/065_size_missing_argument.txt
-deleted file mode 100644
-index 2c432e7..0000000
---- a/test/065_size_missing_argument.txt
-+++ /dev/null
-@@ -1,12 +0,0 @@
--:ARGS
---s
--:INPUT
--foo
--:OUTPUT-FILTER
--1s/^.\+: /boxes: /
--1s/-- s$/-- 's'/
--:EXPECTED-ERROR 1
--boxes: option requires an argument -- 's'
--Usage: boxes [options] [infile [outfile]]
--Try `boxes -h' for more information.
--:EOF
-\ No newline at end of file
diff --git a/testing/brial/APKBUILD b/testing/brial/APKBUILD
new file mode 100644
index 00000000000..2a12edc4df4
--- /dev/null
+++ b/testing/brial/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=brial
+pkgver=1.2.11
+pkgrel=3
+pkgdesc="BRiAl (Boolean Ring Algebra) is the successor to PolyBoRi"
+url="https://github.com/BRiAl/BRiAl"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="boost-dev libm4ri-dev"
+subpackages="$pkgname-dev"
+source="https://github.com/BRiAl/BRiAl/releases/download/$pkgver/brial-$pkgver.tar.bz2"
+options="!check" # fail for some reason on boost 1.81
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+00532b6361c709fce44940bfd22563046cfcbc06d41282a01a26f9bcb25fa86df1406685d7ba4b1ebbb08cd7fa8b9811c81eccf78e72ea96960ef7a059c2e926 brial-1.2.11.tar.bz2
+"
diff --git a/testing/brltty/APKBUILD b/testing/brltty/APKBUILD
index 34429c48b3b..1f1d2f1bd51 100644
--- a/testing/brltty/APKBUILD
+++ b/testing/brltty/APKBUILD
@@ -1,6 +1,7 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Contributor:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=brltty
-pkgver=6.1
+pkgver=6.6
pkgrel=1
pkgdesc="Refreshable braille display driver daemon"
url="http://brltty.app"
@@ -9,17 +10,19 @@ license="LGPL-2.1-or-later"
makedepends="
autoconf
automake
+ gettext-dev
gpm-dev
icu-dev
liblouis-dev
linux-headers
tcl
"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-lang"
source="http://brltty.app/archive/brltty-$pkgver.tar.xz"
options="!check" # no upstream test suite
prepare() {
+ default_prepare
cp /usr/share/abuild/config.guess acdir/
cp /usr/share/abuild/config.sub acdir/
./autogen
@@ -35,7 +38,7 @@ build() {
--localstatedir=/var \
--with-tables-directory=/usr/share/brltty \
--enable-gpm
- make -j1
+ make
}
package() {
@@ -44,4 +47,6 @@ package() {
"$pkgdir"/etc/$pkgname.conf
}
-sha512sums="030ef60ef7a9a60dc2fba2a64ea0a0868395eee6f2f86876b4e4111e804a05b44f798a154a69a8f5e0f6358130993c360a550f7decac0535450f9cf939231eaf brltty-6.1.tar.xz"
+sha512sums="
+852bfd9179570be7b0da8b1279f84bdfedc14a319988d9c2eac5a20a9ce8977f31fdee167e8e96bb411184a1d72f4cdc633944c7b3f55bddae411fc71a9e6898 brltty-6.6.tar.xz
+"
diff --git a/testing/broot/APKBUILD b/testing/broot/APKBUILD
deleted file mode 100644
index 7dd9dfcac5b..00000000000
--- a/testing/broot/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=broot
-pkgver=0.14.2
-pkgrel=0
-pkgdesc="New way to see and navigate directory trees"
-url="https://github.com/Canop/broot"
-arch="all !s390x !mips !mips64" # blocked by cargo
-license="MIT"
-makedepends="cargo"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://crates.io/api/v1/crates/broot/$pkgver/download"
-
-build() {
- cargo build --release --locked
-}
-
-check() {
- cargo test --release --locked
-}
-
-package() {
- install -Dm0755 target/release/broot "$pkgdir"/usr/bin/broot
- install -Dm0644 man/page "$pkgdir"/usr/share/man/man1/broot.1
-}
-
-sha512sums="51655d3f134f8b2b022b0f777f003e5af66ee926cfd43b907c4d2878304bc4858de7ab83610da2d3f30f80ed36df3dab22e0e265a4ddfd649f3b6bdfda44432a broot-0.14.2.tar.gz"
diff --git a/testing/btcd/APKBUILD b/testing/btcd/APKBUILD
new file mode 100644
index 00000000000..fa857dae688
--- /dev/null
+++ b/testing/btcd/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Michał Adamski <michal@ert.pl>
+pkgname=btcd
+pkgver=0.23.4
+_pkgver=${pkgver/_/-}
+pkgrel=5
+pkgdesc="Alternative full node bitcoin implementation written in Go"
+url="https://github.com/btcsuite/btcd#btcd"
+arch="all"
+license="ISC"
+makedepends="go"
+source="https://github.com/btcsuite/btcd/archive/v$_pkgver/btcd-$_pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$_pkgver"
+
+# secfixes:
+# 0.23.3-r0:
+# - CVE-2022-39389
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ mkdir bin
+ go build -trimpath -v -o bin . ./cmd/...
+}
+
+check() {
+ export GOFLAGS="${GOFLAGS/-trimpath/}"
+ go test ./...
+}
+
+package() {
+ for bin in bin/*; do
+ install -Dm755 $bin "$pkgdir"/usr/$bin
+ done
+}
+sha512sums="
+aa6c40d58d8d4e7302005fa80b192a8f0298707d67685273e2b57cc339f2a999ea1953215f1a89c0480ea926dc6a55740c243656b67ca3b9d494b05f06537880 btcd-0.23.4.tar.gz
+"
diff --git a/testing/btfs/APKBUILD b/testing/btfs/APKBUILD
index 79f4b9eea05..748227ef4ea 100644
--- a/testing/btfs/APKBUILD
+++ b/testing/btfs/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: dai9ah <dai9ah@protonmail.com>
# Maintainer: dai9ah <dai9ah@protonmail.com>
pkgname=btfs
-pkgver=2.21
-pkgrel=0
+pkgver=2.24
+pkgrel=12
pkgdesc="Bittorrent filesystem based on FUSE"
options="!check" # No testsuite
url="https://github.com/johang/btfs"
-arch="all"
+arch="all !armhf" # blocked by libtorrent-rasterbar
license="GPL-3.0-or-later"
depends="python3"
-makedepends="autoconf automake curl-dev fuse-dev libtorrent-rasterbar-dev"
+makedepends="autoconf automake curl-dev fuse-dev libtorrent-rasterbar-dev boost-dev"
subpackages="$pkgname-doc"
source="btfs-$pkgver.tar.gz::https://github.com/johang/btfs/archive/v$pkgver.tar.gz"
@@ -33,4 +33,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="ebef8820d71244d092f64c5d6970bd69fed9044c01f11a505536d265b8d57b34b94e63b5262950ef54d41c6d9dbaa4b301a827ce5fdd205f8dcb6b67765b6f4d btfs-2.21.tar.gz"
+sha512sums="
+33339d9eefe6836c8c96c4ea0fb6ee99150df5500f4d1dce107c20df72e0d2959152fca0901676cec1eebf1de39a69dc46ea96442aecd234c9fb4e7618337b0c btfs-2.24.tar.gz
+"
diff --git a/testing/btpd/APKBUILD b/testing/btpd/APKBUILD
index 12e4959bc60..49158152814 100644
--- a/testing/btpd/APKBUILD
+++ b/testing/btpd/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Cág <ca6c@bitmessage.ch>
-# Maintainer
+# Maintainer:
pkgname=btpd
pkgver=0.16
-pkgrel=1
+pkgrel=2
pkgdesc="The BitTorrent Protocol Daemon"
url="https://github.com/btpd/btpd"
arch="all"
license="BSD-2-Clause BSD-3-Clause"
depends=""
-makedepends="autoconf automake openssl-dev"
+makedepends="autoconf automake openssl-dev>3"
install=""
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz"
diff --git a/testing/buf/APKBUILD b/testing/buf/APKBUILD
new file mode 100644
index 00000000000..401eda0de76
--- /dev/null
+++ b/testing/buf/APKBUILD
@@ -0,0 +1,73 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=buf
+pkgver=1.29.0
+pkgrel=2
+pkgdesc="CLI to work with Protocol Buffers"
+url="https://buf.build/"
+# 32bit: fail tests with int overflow
+arch="all !x86 !armhf !armv7"
+license="Apache-2.0"
+makedepends="go"
+checkdepends="protobuf-dev protoc-gen-go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ $pkgname-protoc-plugins:_protoc
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/bufbuild/buf/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ for binary in buf protoc-gen-buf-breaking protoc-gen-buf-lint; do
+ go build -v ./cmd/$binary
+ done
+
+ for shell in bash fish zsh; do
+ ./buf completion $shell > buf.$shell
+ done
+
+ # These programs are required for check phase
+ mkdir -p "$builddir"/bin
+ for cmd in writer receiver; do
+ go build -v -o bin/ ./private/buf/cmd/buf/command/alpha/protoc/internal/protoc-gen-insertion-point-$cmd
+ done
+}
+
+check() {
+ export PATH="$PATH:$builddir/bin"
+
+ # TestCompareGeneratedStubsGoogleapisGo fails due to difference in protoc versions
+ # TestCompareGoogleapis fails (TODO: investigate more)
+ # TestGitCloner tries to clone a remote repository
+ # TestWorkspaceGit checks the project root whether it is a git repo
+ go test -skip 'TestCompareGeneratedStubsGoogleapisGo|TestCompareGoogleapis|TestGitCloner|TestWorkspaceGit' ./...
+}
+
+package() {
+ install -Dm755 buf -t "$pkgdir"/usr/bin/
+
+ install -Dm644 buf.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/buf
+ install -Dm644 buf.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/buf.fish
+ install -Dm644 buf.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_buf
+
+ install -Dm755 protoc-gen-buf-breaking protoc-gen-buf-lint \
+ -t "$pkgdir"/usr/bin/
+}
+
+_protoc() {
+ pkgdesc="$pkgdesc (protoc plugins)"
+ depends="protoc"
+
+ amove usr/bin/protoc-gen-buf-*
+}
+
+sha512sums="
+4b7e034429cb4eb3607546f6e671919ed3863221a52b374fb608148836dafb8aba7609716a2c3ceb30dc6b30370e8956a74d1d187cec3a48f7cf3216501e3466 buf-1.29.0.tar.gz
+"
diff --git a/testing/buildah/APKBUILD b/testing/buildah/APKBUILD
deleted file mode 100644
index 018a9fb9038..00000000000
--- a/testing/buildah/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: kohnish <kohnish@gmx.com>
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: kohnish <kohnish@gmx.com>
-pkgname=buildah
-pkgver=1.14.9
-pkgrel=0
-pkgdesc="A tool that facilitates building OCI container images"
-url="https://github.com/containers/buildah"
-arch="all !mips !mips64" # fails to build on mips
-license="Apache-2.0"
-makedepends="go go-md2man lvm2-dev gpgme-dev libseccomp-dev btrfs-progs-dev bash"
-subpackages="$pkgname-doc"
-options="!check" # TODO: enable tests
-source="$pkgname-$pkgver.tar.gz::https://github.com/containers/buildah/archive/v$pkgver.tar.gz"
-
-build() {
- GIT_COMMIT="$pkgver" make
-}
-
-package() {
- GIT_COMMIT="$pkgver" make install PREFIX=/usr DESTDIR="$pkgdir"
-}
-
-sha512sums="6bd420d4ff15d0c8d8682a23e4d1a45e8b85d59f62697bdab2fe81dba57a913871e8b7670dca20470093c77cb17fe5ca4fb1ff627279cc812aa7efe5b3cab4ab buildah-1.14.9.tar.gz"
diff --git a/testing/buildcache/APKBUILD b/testing/buildcache/APKBUILD
new file mode 100644
index 00000000000..1168ef8d8f3
--- /dev/null
+++ b/testing/buildcache/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: André Klitzing <aklitzing@gmail.com>
+# Maintainer: André Klitzing <aklitzing@gmail.com>
+pkgname=buildcache
+pkgver=0.28.9
+pkgrel=0
+pkgdesc="Advanced compiler accelerator"
+url="https://gitlab.com/bits-n-bites/buildcache"
+arch="all !s390x !armhf" # failing tests
+license="Zlib"
+makedepends="
+ openssl-dev>3
+ cmake
+ "
+source="https://gitlab.com/bits-n-bites/buildcache/-/archive/v$pkgver/buildcache-v$pkgver.tar.gz
+ include-cstdint.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ cmake \
+ -B build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ "src"
+ cmake --build build
+}
+
+check() {
+ cmake --build build --target test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -rf "$pkgdir/usr/share/lua-examples/"
+}
+
+sha512sums="
+be543f0fa7550fedad62efbfc90a522d21276f0379fb836b758d775a95e9a0c6c872b397167a129c8d472a03324081cb7d46d6fdc6c7d369a6594fa64358d2f3 buildcache-v0.28.9.tar.gz
+c57f6c09cbea6e2781e7d71c58e25659dfb9150779afbadc3a0e4c52de531cc5ecc3094b2b0b9571a0f2542453221c53ca54ed65f7492938d1112fae417c3f36 include-cstdint.patch
+"
diff --git a/testing/buildcache/include-cstdint.patch b/testing/buildcache/include-cstdint.patch
new file mode 100644
index 00000000000..7cf2c44d194
--- /dev/null
+++ b/testing/buildcache/include-cstdint.patch
@@ -0,0 +1,20 @@
+--- a/src/base/env_utils.hpp
++++ b/src/base/env_utils.hpp
+@@ -21,6 +21,7 @@
+ #define BUILDCACHE_ENV_UTILS_HPP_
+
+ #include <string>
++#include <cstdint>
+
+ namespace bcache {
+ /// @brief A helper class for reading and parsing environment variables.
+--- a/src/base/hmac.cpp
++++ b/src/base/hmac.cpp
+@@ -45,6 +45,7 @@
+ #include <array>
+ #include <stdexcept>
+ #include <vector>
++#include <cstdint>
+
+ namespace bcache {
+
diff --git a/testing/buku/APKBUILD b/testing/buku/APKBUILD
deleted file mode 100644
index e20e84f29eb..00000000000
--- a/testing/buku/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=buku
-pkgver=4.3
-pkgrel=0
-pkgdesc="Cmdline bookmark management utility"
-options="!check" # Requires unpackaged vcrpy
-url="https://github.com/jarun/Buku"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="python3 py3-urllib3 py3-cryptography py3-html5lib py3-beautifulsoup4
- py3-certifi"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc
- $pkgname-bash-completion
- $pkgname-zsh-completion
- $pkgname-fish-completion
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/jarun/Buku/archive/v$pkgver.tar.gz"
-
-package() {
- install -Dm0755 buku "$pkgdir"/usr/bin/buku
- install -Dm0644 buku.1 "$pkgdir"/usr/share/man/man1/buku.1
-
- install -Dm644 "$builddir"/auto-completion/bash/buku-completion.bash \
- "$pkgdir"/usr/share/bash-completion/completions/buku
- install -Dm644 "$builddir"/auto-completion/zsh/_buku \
- "$pkgdir"/usr/share/zsh/site-functions/_buku
- install -Dm644 "$builddir"/auto-completion/fish/buku.fish \
- "$pkgdir"/usr/share/fish/completions/buku.fish
-}
-sha512sums="0f6118fd1914347fe14b333b65bfd7edf9fafd0ca1cc29a13c44c28abb9d8a144e98b1c34bbee90817afdda09a1322c83d8b6ef366917a9e4f6d6d7ec90ecd26 buku-4.3.tar.gz"
diff --git a/testing/bullet/APKBUILD b/testing/bullet/APKBUILD
deleted file mode 100644
index 86083b60328..00000000000
--- a/testing/bullet/APKBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Contributor: Asriel Dreemurr <asriel.danctnix@gmail.com>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=bullet
-pkgver=2.89
-pkgrel=1
-pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation"
-url="https://pybullet.org/Bullet/phpBB3/"
-arch="all !mips !mips64"
-license="Zlib"
-makedepends="cmake doxygen graphviz-dev ttf-dejavu mesa-dev glu-dev python3-dev py3-numpy-dev"
-options="!check" # cannot build tests
-subpackages="$pkgname-dev $pkgname-doc"
-source="bullet3-$pkgver.tar.gz::https://github.com/bulletphysics/bullet3/archive/$pkgver.tar.gz"
-builddir="$srcdir/bullet3-$pkgver"
-
-prepare() {
- default_prepare
- mkdir "$builddir"/build
-}
-
-build() {
- cd "$builddir"/build
-
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_SHARED_LIBS=1 \
- -DBUILD_BULLET2_DEMOS=0 \
- -DBUILD_CPU_DEMOS=0 \
- -DINSTALL_LIBS=1 \
- -DINSTALL_EXTRA_LIBS=1 \
- -DBUILD_PYBULLET=ON \
- -DBUILD_PYBULLET_NUMPY=ON \
- -DBUILD_OPENGL3_DEMOS=0 \
- -DBUILD_UNIT_TESTS=0 \
- -DCMAKE_BUILD_TYPE=None
-
- make
-
- cd ..
- doxygen
-}
-
-package() {
- cd "$builddir"/build
- make -j1 DESTDIR="$pkgdir" install # avoid libtool errors
-
- # Install LICENSE
- install -Dm644 ../LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
-}
-
-doc() {
- default_doc
-
- # install docs
- install -Dm644 "$builddir"/docs/GPU_rigidbody_using_OpenCL.pdf $subpkgdir/usr/share/doc/bullet/GPU_rigidbody_using_OpenCL.pdf
- install -Dm644 "$builddir"/docs/Bullet_User_Manual.pdf $subpkgdir/usr/share/doc/bullet/Bullet_User_Manual.pdf
- install -Dm644 "$builddir"/docs/BulletQuickstart.pdf $subpkgdir/usr/share/doc/bullet/BulletQuickstart.pdf
- cp -r "$builddir"/html $subpkgdir/usr/share/doc/bullet/html
-}
-
-
-sha512sums="3c4ba6a3b3623ef44dd4a23e0bc2e90dec1f2b7af463edcb886e110feac1dfb4a91945f0ed640052cac228318539e275976d37238102fb10a0f78aef065a730b bullet3-2.89.tar.gz"
diff --git a/testing/bump2version/APKBUILD b/testing/bump2version/APKBUILD
new file mode 100644
index 00000000000..24aee1bd885
--- /dev/null
+++ b/testing/bump2version/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Charles Wimmer <charles@wimmer.net>
+# Maintainer: Charles Wimmer <charles@wimmer.net>
+pkgname=bump2version
+pkgver=1.0.1
+pkgrel=6
+pkgdesc="Version-bump your software with a single command!"
+url="https://github.com/c4urself/bump2version"
+arch="noarch"
+license="MIT"
+depends="python3 py3-setuptools"
+checkdepends="py3-tox py3-pytest py3-testfixtures"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/c4urself/bump2version/archive/v$pkgver.tar.gz"
+
+provides="py3-bump2version=$pkgver-r$pkgrel"
+replaces="py3-bump2version"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py check
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="aceb3770b2537e93a996795dba521d1b862d61fe07d6f4e086ba1d2b8e478690394a82dba9e40b32ea969b19b049750635508c1ecd45646e24d4e45ad2d47795 bump2version-1.0.1.tar.gz"
diff --git a/testing/burp/APKBUILD b/testing/burp/APKBUILD
index 4380071f7bd..bdc4035ab23 100644
--- a/testing/burp/APKBUILD
+++ b/testing/burp/APKBUILD
@@ -1,36 +1,31 @@
-# Maintainer: Bernhard J. M. Gruen <bernhard.gruen@googlemail.com>
+# Contributor: Bernhard J. M. Gruen <bernhard.gruen@googlemail.com>
+# Maintainer:
pkgname=burp
-pkgver=2.3.22
+pkgver=3.1.4
pkgrel=0
pkgdesc="A network backup and restore program"
url="https://burp.grke.org"
arch="all"
license="AGPL-3.0-only"
makedepends="
+ bsd-compat-headers
+ librsync-dev
+ linux-headers
uthash-dev
- openssl-dev
+ openssl-dev>3
zlib-dev
- librsync-dev
- libtool
- automake
- autoconf
"
checkdepends="check-dev"
subpackages="
$pkgname-doc
$pkgname-server
"
-source="https://github.com/grke/burp/archive/$pkgver.zip
+source="https://github.com/grke/burp/releases/download/$pkgver/burp-$pkgver.tar.bz2
burp.init
"
# Check is deactivated as it needs --enable-forks in check/check-dev
options="!check"
-prepare() {
- default_prepare
- autoreconf -vif
-}
-
build() {
./configure \
--prefix=/usr \
@@ -71,6 +66,7 @@ server() {
mkdir -p "$subpkgdir"/usr/share/burp/scripts
mv "$pkgdir"/usr/share/burp/scripts "$subpkgdir"/usr/share/burp
+ # shellcheck disable=2115
rm -rf "$pkgdir"/usr/share
mkdir -p "$subpkgdir"/etc/burp
@@ -86,5 +82,7 @@ server() {
done
}
-sha512sums="5180c6a0c2ad8942100965b2c70c3b43b772a36961ec36d5c3643359639281431be38b271530f8129b7b57f51d1ded53776e2732b01f856d8acc0db572a238d3 2.3.22.zip
-ef98c1fb938063fee35cc5ae5ff9179a759b89b3c2629320ff4dffb4c42395cac1ad6b4615c6c1f34cc4be3ce54397b00f583ba5f3cd2fe8498902d4d9445e8f burp.init"
+sha512sums="
+034478a3010eaf4fdbc45a77d37fa6dc18d8c7294af3ce2706ba1372e983e6acd7c7d98b345295b4791762a2ab9a636261e6946dfcaccac00663655f21e5cd52 burp-3.1.4.tar.bz2
+ef98c1fb938063fee35cc5ae5ff9179a759b89b3c2629320ff4dffb4c42395cac1ad6b4615c6c1f34cc4be3ce54397b00f583ba5f3cd2fe8498902d4d9445e8f burp.init
+"
diff --git a/testing/butane/APKBUILD b/testing/butane/APKBUILD
new file mode 100644
index 00000000000..67017b2460a
--- /dev/null
+++ b/testing/butane/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer:
+pkgname=butane
+pkgver=0.19.0
+pkgrel=3
+pkgdesc="Butane to Ignition config generator"
+url="https://github.com/coreos/butane"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/coreos/butane/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ go build -o butane \
+ -ldflags "-X github.com/coreos/butane/internal/version.Raw=v$pkgver"\
+ internal/main.go
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 butane -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+5a4ff22160a01a87342c0bcacfc729fb43d8909191a7c7530d95d0a4db875c3621910b0ff6bd33705ac4346f9942cb48718aa1e149162b1c5a5b1480e215acf8 butane-0.19.0.tar.gz
+"
diff --git a/testing/bwrap-oci/APKBUILD b/testing/bwrap-oci/APKBUILD
index 4e1515bf931..8dadd9f3150 100644
--- a/testing/bwrap-oci/APKBUILD
+++ b/testing/bwrap-oci/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Shawn Johnson <sjohnson@axiomega.com>
pkgname=bwrap-oci
pkgver=0.2
-pkgrel=0
+pkgrel=1
pkgdesc="Run an OCI container using Bubblewrap"
url="https://github.com/projectatomic/bwrap-oci"
arch="all"
diff --git a/testing/c2rust/0001-link-clang-dynamic.patch b/testing/c2rust/0001-link-clang-dynamic.patch
new file mode 100644
index 00000000000..5c02fdca821
--- /dev/null
+++ b/testing/c2rust/0001-link-clang-dynamic.patch
@@ -0,0 +1,232 @@
+Link dynamically against libclang
+diff -rupN a/c2rust/Cargo.toml b/c2rust/Cargo.toml
+--- a/c2rust/Cargo.toml 2024-01-06 22:49:13.145706727 +0100
++++ b/c2rust/Cargo.toml 2024-01-06 22:49:56.895188304 +0100
+@@ -31,7 +31,3 @@ time-macros = "=0.2.6"
+
+ [build-dependencies]
+ c2rust-build-paths = { path = "../c2rust-build-paths", version = "0.18.0" }
+-
+-[features]
+-# Force static linking of LLVM
+-llvm-static = ["c2rust-transpile/llvm-static"]
+diff -rupN a/c2rust-ast-exporter/Cargo.toml b/c2rust-ast-exporter/Cargo.toml
+--- a/c2rust-ast-exporter/Cargo.toml 2024-01-06 22:49:13.132373552 +0100
++++ b/c2rust-ast-exporter/Cargo.toml 2024-01-06 22:50:53.591183135 +0100
+@@ -24,8 +24,3 @@ clang-sys = "1.3"
+ cmake = "0.1.49"
+ env_logger = "0.10"
+ c2rust-build-paths = { path = "../c2rust-build-paths", version = "0.18.0" }
+-
+-[features]
+-default = []
+-# Force static linking of LLVM
+-llvm-static = []
+diff -rupN a/c2rust-ast-exporter/build.rs b/c2rust-ast-exporter/build.rs
+--- a/c2rust-ast-exporter/build.rs 2024-01-06 22:49:13.132373552 +0100
++++ b/c2rust-ast-exporter/build.rs 2024-01-06 22:49:18.425644161 +0100
+@@ -147,55 +147,7 @@ fn build_native(llvm_info: &LLVMInfo) {
+
+ println!("cargo:rustc-link-search=native={}", llvm_lib_dir);
+
+- // Some distro's, including arch and Fedora, no longer build with
+- // BUILD_SHARED_LIBS=ON; programs linking to clang are required to
+- // link to libclang-cpp.so instead of individual libraries.
+- let use_libclang = if cfg!(target_os = "macos") {
+- // We hit an issue linking against the shared libraries for the homebrew
+- // version of LLVM 15 because they use a feature (opaque pointers) which
+- // are not understood by earlier versions of LLVM so we link against
+- // libclang unless static linking has been explicitly requested.
+- !cfg!(feature = "llvm-static")
+- } else {
+- // target_os = "linux"
+- let mut libclang_path = PathBuf::new();
+- libclang_path.push(llvm_lib_dir);
+- libclang_path.push("libclang-cpp.so");
+- libclang_path.exists()
+- };
+-
+- if use_libclang {
+- println!("cargo:rustc-link-lib=clang-cpp");
+- } else {
+- // Link against these Clang libs. The ordering here is important! Libraries
+- // must be listed before their dependencies when statically linking.
+- let mut clang_libs = vec![
+- "clangTooling",
+- "clangFrontend",
+- "clangASTMatchers",
+- "clangParse",
+- "clangSerialization",
+- "clangSema",
+- "clangEdit",
+- "clangAnalysis",
+- "clangDriver",
+- "clangFormat",
+- "clangToolingCore",
+- "clangAST",
+- "clangRewrite",
+- "clangLex",
+- "clangBasic",
+- ];
+- if llvm_info.llvm_major_version >= 15 {
+- // insert after clangSema
+- let sema_pos = clang_libs.iter().position(|&r| r == "clangSema").unwrap();
+- clang_libs.insert(sema_pos + 1, "clangSupport");
+- }
+-
+- for lib in &clang_libs {
+- println!("cargo:rustc-link-lib={}", lib);
+- }
+- }
++ println!("cargo:rustc-link-lib=clang-cpp");
+
+ for lib in &llvm_info.libs {
+ // IMPORTANT: We cannot specify static= or dylib= here because rustc
+diff -rupN a/c2rust-ast-exporter/src/CMakeLists.txt b/c2rust-ast-exporter/src/CMakeLists.txt
+--- a/c2rust-ast-exporter/src/CMakeLists.txt 2024-01-06 22:49:13.132373552 +0100
++++ b/c2rust-ast-exporter/src/CMakeLists.txt 2024-01-06 22:49:18.425644161 +0100
+@@ -95,11 +95,7 @@ set_target_properties(c2rust-ast-exporte
+ # PRIVATE was added to make c2rust-ast-exporter build with LLVM 6.0. Keyword
+ # description: https://cmake.org/pipermail/cmake/2016-May/063400.html
+ target_link_libraries(c2rust-ast-exporter PRIVATE
+- clangAST
+- clangFrontend
+- clangTooling
+- clangBasic
+- clangASTMatchers
++ clang-cpp
+ tinycbor
+ )
+
+diff -rupN a/c2rust-ast-exporter/src/CMakeLists.txt.orig b/c2rust-ast-exporter/src/CMakeLists.txt.orig
+--- a/c2rust-ast-exporter/src/CMakeLists.txt.orig 1970-01-01 01:00:00.000000000 +0100
++++ b/c2rust-ast-exporter/src/CMakeLists.txt.orig 2023-05-22 22:14:35.000000000 +0200
+@@ -0,0 +1,117 @@
++cmake_minimum_required(VERSION 3.4.3)
++project(ASTExporter)
++
++#################################################
++# TinyCBOR #
++#################################################
++
++set(TINYCBOR_REPO "https://github.com/intel/tinycbor.git" CACHE STRING "tinycbor git repo URL")
++
++# v0.6.3 tag, but using the commit hash instead (of the tarball hash) for integrity checks
++# unlike a .tar.gz MD5 hash, this SHA-1 commit hash should stay stable regardless of compression/archiving
++# (GitHub has changed this), and still retains the integrity check
++set(TINYCBOR_TAG "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7" CACHE STRING "tinycbor git tag/branch/commit hash")
++
++set(TINYCBOR_PREFIX "${CMAKE_BINARY_DIR}/tinycbor" CACHE STRING "tinycbor install prefix")
++
++if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
++ set(MAKE "gmake")
++else()
++ set(MAKE "make")
++endif()
++
++include(ExternalProject)
++ExternalProject_Add(tinycbor_build
++ PREFIX ${TINYCBOR_PREFIX}
++ INSTALL_DIR ${CMAKE_BINARY_DIR}
++ GIT_REPOSITORY ${TINYCBOR_REPO}
++ GIT_TAG ${TINYCBOR_TAG}
++ # the fd redirection here fails when the build run inside Cargo.
++ # patch from upstream:
++ # https://github.com/intel/tinycbor/commit/6176e0a28d7c5ef3a5e9cbd02521999c412de72c
++ PATCH_COMMAND patch --forward -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/tinycbor_fix_build.patch || true
++ CONFIGURE_COMMAND ${MAKE} .config && cat ${CMAKE_CURRENT_SOURCE_DIR}/tinycbor.config >> .config
++ BUILD_COMMAND ${MAKE} --quiet prefix=<INSTALL_DIR> CFLAGS=-fPIC
++ INSTALL_COMMAND ${MAKE} --quiet prefix=<INSTALL_DIR> install
++ BUILD_IN_SOURCE 1
++ BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/lib/libtinycbor.a
++)
++
++include_directories(${CMAKE_BINARY_DIR}/include)
++
++add_library(tinycbor STATIC IMPORTED)
++set_target_properties(tinycbor PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/libtinycbor.a)
++add_dependencies(tinycbor tinycbor_build)
++
++set(AST_EXPORTER_SRCS
++ AstExporter.cpp
++ FloatingLexer.cpp
++ ExportResult.cpp
++ )
++
++set(AST_EXPORTER_BIN_SRCS
++ ${AST_EXPORTER_SRCS}
++ Main.cpp
++ )
++
++find_package(LLVM REQUIRED CONFIG)
++
++# Debian and Ubuntu's clang cmake files are broken, so we can't require the
++# package here. We already have to manually order the link against the clang
++# libs in build.rs, so that's not so bad.
++find_package(Clang CONFIG)
++
++include_directories(${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS})
++add_definitions(${LLVM_DEFINITIONS} ${CLANG_DEFINITIONS})
++
++if (DEFINED CLANG_INSTALL_PREFIX)
++ add_definitions(-DCLANG_BIN_PATH="${CLANG_INSTALL_PREFIX}/bin")
++elseif(DEFINED LLVM_INSTALL_PREFIX)
++ add_definitions(-DCLANG_BIN_PATH="${LLVM_INSTALL_PREFIX}/bin")
++elseif(DEFINED LLVM_TOOLS_BINARY_DIR)
++ add_definitions(-DCLANG_BIN_PATH="${LLVM_TOOLS_BINARY_DIR}")
++else()
++ message(FATAL_ERROR "Cannot find path to clang binary")
++endif()
++add_definitions(-DCLANG_VERSION_STRING="${LLVM_PACKAGE_VERSION}")
++
++set(LLVM_LINK_COMPONENTS support)
++
++# LLVM is not always built with RTTI, we don't need it either.
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
++
++# The executable
++add_executable(c2rust-ast-exporter ${AST_EXPORTER_BIN_SRCS})
++
++# The library
++add_library(clangAstExporter STATIC ${AST_EXPORTER_SRCS})
++
++add_definitions(-DCLANG_LIBDIR_SUFFIX="${LLVM_LIBDIR_SUFFIX}")
++
++set_target_properties(c2rust-ast-exporter PROPERTIES
++ CXX_STANDARD 14
++ CXX_EXTENSIONS OFF
++ )
++# PRIVATE was added to make c2rust-ast-exporter build with LLVM 6.0. Keyword
++# description: https://cmake.org/pipermail/cmake/2016-May/063400.html
++target_link_libraries(c2rust-ast-exporter PRIVATE
++ clangAST
++ clangFrontend
++ clangTooling
++ clangBasic
++ clangASTMatchers
++ tinycbor
++ )
++
++set_target_properties(clangAstExporter PROPERTIES
++ CXX_STANDARD 17 # will decay to 14 if compiler doesn't support c++17
++ CXX_EXTENSIONS OFF
++ )
++target_link_libraries(clangAstExporter PRIVATE
++ clangAST
++ clangFrontend
++ clangTooling
++ clangBasic
++ clangASTMatchers
++ tinycbor
++ )
+diff -rupN a/c2rust-transpile/Cargo.toml b/c2rust-transpile/Cargo.toml
+--- a/c2rust-transpile/Cargo.toml 2024-01-06 22:49:13.145706727 +0100
++++ b/c2rust-transpile/Cargo.toml 2024-01-06 22:49:18.425644161 +0100
+@@ -38,7 +38,3 @@ smallvec = "1.0"
+ strum = "0.24"
+ strum_macros = "0.24"
+ syn = { version = "1.0", features = ["full", "extra-traits", "parsing", "printing"]}
+-
+-[features]
+-# Force static linking of LLVM
+-llvm-static = ["c2rust-ast-exporter/llvm-static"]
diff --git a/testing/c2rust/0002-use-system-tinycbor.patch b/testing/c2rust/0002-use-system-tinycbor.patch
new file mode 100644
index 00000000000..808c181aadb
--- /dev/null
+++ b/testing/c2rust/0002-use-system-tinycbor.patch
@@ -0,0 +1,64 @@
+Use system's tinycbor instead of vendoring it in
+diff -rupN a/c2rust-ast-exporter/build.rs b/c2rust-ast-exporter/build.rs
+--- a/c2rust-ast-exporter/build.rs 2023-05-22 22:14:35.000000000 +0200
++++ b/c2rust-ast-exporter/build.rs 2024-01-06 22:54:06.039088094 +0100
+@@ -142,7 +142,7 @@ fn build_native(llvm_info: &LLVMInfo) {
+ };
+
+ // Statically link against 'clangAstExporter' which requires 'tinycbor'
+- println!("cargo:rustc-link-lib=static=tinycbor");
++ println!("cargo:rustc-link-lib=dylib=tinycbor");
+ println!("cargo:rustc-link-lib=static=clangAstExporter");
+
+ println!("cargo:rustc-link-search=native={}", llvm_lib_dir);
+diff -rupN a/c2rust-ast-exporter/src/CMakeLists.txt b/c2rust-ast-exporter/src/CMakeLists.txt
+--- a/c2rust-ast-exporter/src/CMakeLists.txt 2023-05-22 22:14:35.000000000 +0200
++++ b/c2rust-ast-exporter/src/CMakeLists.txt 2024-01-06 22:55:39.124799597 +0100
+@@ -5,14 +5,9 @@ project(ASTExporter)
+ # TinyCBOR #
+ #################################################
+
+-set(TINYCBOR_REPO "https://github.com/intel/tinycbor.git" CACHE STRING "tinycbor git repo URL")
+-
+-# v0.6.3 tag, but using the commit hash instead (of the tarball hash) for integrity checks
+-# unlike a .tar.gz MD5 hash, this SHA-1 commit hash should stay stable regardless of compression/archiving
+-# (GitHub has changed this), and still retains the integrity check
+-set(TINYCBOR_TAG "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7" CACHE STRING "tinycbor git tag/branch/commit hash")
+-
+-set(TINYCBOR_PREFIX "${CMAKE_BINARY_DIR}/tinycbor" CACHE STRING "tinycbor install prefix")
++include(FindPkgConfig)
++pkg_search_module(TINYCBOR REQUIRED tinycbor)
++include_directories(${TINYCBOR_INCLUDE_DIRS})
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ set(MAKE "gmake")
+@@ -20,29 +15,6 @@ else()
+ set(MAKE "make")
+ endif()
+
+-include(ExternalProject)
+-ExternalProject_Add(tinycbor_build
+- PREFIX ${TINYCBOR_PREFIX}
+- INSTALL_DIR ${CMAKE_BINARY_DIR}
+- GIT_REPOSITORY ${TINYCBOR_REPO}
+- GIT_TAG ${TINYCBOR_TAG}
+- # the fd redirection here fails when the build run inside Cargo.
+- # patch from upstream:
+- # https://github.com/intel/tinycbor/commit/6176e0a28d7c5ef3a5e9cbd02521999c412de72c
+- PATCH_COMMAND patch --forward -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/tinycbor_fix_build.patch || true
+- CONFIGURE_COMMAND ${MAKE} .config && cat ${CMAKE_CURRENT_SOURCE_DIR}/tinycbor.config >> .config
+- BUILD_COMMAND ${MAKE} --quiet prefix=<INSTALL_DIR> CFLAGS=-fPIC
+- INSTALL_COMMAND ${MAKE} --quiet prefix=<INSTALL_DIR> install
+- BUILD_IN_SOURCE 1
+- BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/lib/libtinycbor.a
+-)
+-
+-include_directories(${CMAKE_BINARY_DIR}/include)
+-
+-add_library(tinycbor STATIC IMPORTED)
+-set_target_properties(tinycbor PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/libtinycbor.a)
+-add_dependencies(tinycbor tinycbor_build)
+-
+ set(AST_EXPORTER_SRCS
+ AstExporter.cpp
+ FloatingLexer.cpp
diff --git a/testing/c2rust/APKBUILD b/testing/c2rust/APKBUILD
new file mode 100644
index 00000000000..3ac6780ff14
--- /dev/null
+++ b/testing/c2rust/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=c2rust
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="Transpile C99-compliant code to (unsafe) Rust code"
+url="https://github.com/immunant/c2rust"
+# riscv64: libc crate sup
+# s390x: missing big endian support in c2rust-bitfields-derive
+# ppc64le: tinycbor not packaged due to segfault in unit tests
+arch="all !riscv64 !s390x !ppc64le"
+license="BSD-3-Clause"
+# Note: LLVM's CMake hooks check for presence of static libs and complain if
+# they are missing. So they are needed for building even when linking
+# dynamically
+makedepends="
+ cargo
+ cargo-auditable
+ clang17-dev
+ clang17-static
+ cmake
+ libxml2-dev
+ llvm17-dev
+ llvm17-gtest
+ llvm17-static
+ ncurses-dev
+ openssl-dev
+ rust
+ tinycbor-dev
+ "
+checkdepends="
+ python3
+ py3-plumbum
+ py3-toml
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/immunant/c2rust/archive/refs/tags/v$pkgver.tar.gz
+ 0001-link-clang-dynamic.patch
+ 0002-use-system-tinycbor.patch
+ df42b55eae9ecfd4380004a513a10526ef8776cf.patch
+ "
+
+# Unit tests all fail using rust 1.72.1 with:
+#
+# error[E0554]: #![feature] may not be used on the stable release channel
+#
+# Eventually, unit tests should also run on stable rust
+options="!check"
+
+export CARGO_PROFILE_RELEASE_LTO="true"
+export CARGO_PROFILE_RELEASE_PANIC="abort"
+export CARGO_PROFILE_RELEASE_OPT_LEVEL="s"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen --package c2rust
+}
+
+check() {
+ ./scripts/test_translator.py tests
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/lib
+ for bin in c2rust c2rust-transpile; do
+ install -D -m755 target/release/$bin -t "$pkgdir"/usr/bin/
+ done
+}
+
+sha512sums="
+16033110923d22d12c55bdd13aacbeb05b95a54b93b8eabf478b111e99fba6c523102e871f4812d35152a9c02fae39ee25307acdfbe6d7bef23113f5c9db8dde c2rust-0.18.0.tar.gz
+3bd7def407277482a33c5074388a10afadf1b40b3f09e2fc87e9942a802b65ca2ee356be56e4baa66d669c57dcfd52ef27d59e740f0c735eb09c03fbf21015bb 0001-link-clang-dynamic.patch
+be29e0f4576301b64f5fc38684ddb90e469526be4ce8ef428feee0d5962748c428045dcb81635ff92e132daebb1fa1b338a81ce1ea13d02b802ec057d0653b93 0002-use-system-tinycbor.patch
+34764bd19f927bff11e86a26f6826b0875abebfb78256d895d36e04cf16f9a98ac8672ba7de0891613112e3aef724c501045ab303093c3fcad135590c82f3506 df42b55eae9ecfd4380004a513a10526ef8776cf.patch
+"
diff --git a/testing/c2rust/df42b55eae9ecfd4380004a513a10526ef8776cf.patch b/testing/c2rust/df42b55eae9ecfd4380004a513a10526ef8776cf.patch
new file mode 100644
index 00000000000..83d0b8796ae
--- /dev/null
+++ b/testing/c2rust/df42b55eae9ecfd4380004a513a10526ef8776cf.patch
@@ -0,0 +1,183 @@
+From df42b55eae9ecfd4380004a513a10526ef8776cf Mon Sep 17 00:00:00 2001
+From: Per Larsen <perl@immunant.com>
+Date: Fri, 3 Nov 2023 16:18:56 -0700
+Subject: [PATCH] Add support for LLVM17. Closes #1039.
+
+Also adds extremely limited support for ARMs scalable vector
+extension types such that Apple Silicon macs can run unit tests..
+---
+ c2rust-ast-exporter/src/AstExporter.cpp | 27 ++++++++++++++++++++++--
+ c2rust-ast-exporter/src/ast_tags.hpp | 6 ++++++
+ c2rust-transpile/src/c_ast/conversion.rs | 9 ++++++++
+ c2rust-transpile/src/c_ast/iterators.rs | 2 +-
+ c2rust-transpile/src/c_ast/mod.rs | 4 ++++
+ c2rust-transpile/src/translator/mod.rs | 3 +++
+ 6 files changed, 48 insertions(+), 3 deletions(-)
+
+diff --git a/c2rust-ast-exporter/src/AstExporter.cpp b/c2rust-ast-exporter/src/AstExporter.cpp
+index b58308e51f..fc6e78aec1 100644
+--- a/c2rust-ast-exporter/src/AstExporter.cpp
++++ b/c2rust-ast-exporter/src/AstExporter.cpp
+@@ -85,6 +85,7 @@ std::string make_realpath(std::string const &path) {
+ }
+
+ // Helper to smooth out differences between versions of clang
++#if CLANG_VERSION_MAJOR < 17
+ Optional<APSInt> getIntegerConstantExpr(const Expr &E, const ASTContext &Ctx) {
+ #if CLANG_VERSION_MAJOR < 12
+ APSInt value;
+@@ -96,6 +97,13 @@ Optional<APSInt> getIntegerConstantExpr(const Expr &E, const ASTContext &Ctx) {
+ return E.getIntegerConstantExpr(Ctx);
+ #endif // CLANG_VERSION_MAJOR
+ }
++#else
++#include <optional>
++std::optional<APSInt> getIntegerConstantExpr(const Expr &E,
++ const ASTContext &Ctx) {
++ return E.getIntegerConstantExpr(Ctx);
++}
++#endif // CLANG_VERSION_MAJOR
+ } // namespace
+
+ class TranslateASTVisitor;
+@@ -363,7 +371,7 @@ class TypeEncoder final : public TypeVisitor<TypeEncoder> {
+ }
+ }();
+ // All the SVE types present in Clang 10 are 128-bit vectors
+- // (see `AArch64SVEACLETypes.def`), so we can divide 128
++ // (see `AArch64SVEACLETypes.def`), so we can divide 128
+ // by their element size to get element count.
+ auto ElemCount = 128 / Context->getTypeSize(ElemType);
+ #endif // CLANG_VERSION_MAJOR >= 11
+@@ -403,7 +411,7 @@ class TypeEncoder final : public TypeVisitor<TypeEncoder> {
+ // Constructed as a consequence of the conversion of
+ // built-in to normal vector types.
+ case BuiltinType::Float16: return TagHalf;
+- case BuiltinType::Half: return TagHalf;
++ case BuiltinType::Half: return TagHalf;
+ #if CLANG_VERSION_MAJOR >= 11
+ case BuiltinType::BFloat16: return TagBFloat16;
+ #endif
+@@ -418,6 +426,12 @@ class TypeEncoder final : public TypeVisitor<TypeEncoder> {
+ case BuiltinType::Bool: return TagBool;
+ case BuiltinType::WChar_S: return TagSWChar;
+ case BuiltinType::WChar_U: return TagUWChar;
++#if CLANG_VERSION_MAJOR >= 16
++ case BuiltinType::SveCount: return TagSveCount;
++ case BuiltinType::SveBool: return TagSveBool;
++ case BuiltinType::SveBoolx2: return TagSveBoolx2;
++ case BuiltinType::SveBoolx4: return TagSveBoolx4;
++#endif
+ }
+ }();
+
+@@ -1499,7 +1513,11 @@ class TranslateASTVisitor final
+ cbor_encoder_create_array(&array, &entry, 2);
+ cbor_encode_int(&entry, 2);
+ cbor_encode_uint(&entry,
++#if CLANG_VERSION_MAJOR < 17
+ uintptr_t(designator.getField()));
++#else
++ uintptr_t(designator.getFieldDecl()));
++#endif // CLANG_VERSION_MAJOR
+ } else if (designator.isArrayRangeDesignator()) {
+ cbor_encoder_create_array(&array, &entry, 3);
+ cbor_encode_int(&entry, 3);
+@@ -2300,6 +2318,11 @@ class TranslateASTVisitor final
+ case clang::StringLiteral::StringKind::UTF32:
+ cbor_encode_uint(array, StringTypeTag::TagUTF32);
+ break;
++#if CLANG_VERSION_MAJOR >= 17
++ case clang::StringLiteral::StringKind::Unevaluated:
++ cbor_encode_uint(array, StringTypeTag::TagUnevaluated);
++ break;
++#endif // CLANG_VERSION_MAJOR
+ }
+ // The size of the wchar_t type in C is implementation defined
+ cbor_encode_uint(array, SL->getCharByteWidth());
+diff --git a/c2rust-ast-exporter/src/ast_tags.hpp b/c2rust-ast-exporter/src/ast_tags.hpp
+index ab6e87344b..2027957d5f 100644
+--- a/c2rust-ast-exporter/src/ast_tags.hpp
++++ b/c2rust-ast-exporter/src/ast_tags.hpp
+@@ -142,6 +142,11 @@ enum TypeTag {
+ TagComplexType,
+ TagHalf,
+ TagBFloat16,
++
++ TagSveCount,
++ TagSveBool,
++ TagSveBoolx2,
++ TagSveBoolx4,
+ };
+
+ enum StringTypeTag {
+@@ -150,6 +155,7 @@ enum StringTypeTag {
+ TagUTF8,
+ TagUTF16,
+ TagUTF32,
++ TagUnevaluated,
+ };
+
+ // From `clang/Basic/TargetInfo.h`
+diff --git a/c2rust-transpile/src/c_ast/conversion.rs b/c2rust-transpile/src/c_ast/conversion.rs
+index 26033bf0ae..3fe769fca5 100644
+--- a/c2rust-transpile/src/c_ast/conversion.rs
++++ b/c2rust-transpile/src/c_ast/conversion.rs
+@@ -804,6 +804,15 @@ impl ConversionContext {
+ self.processed_nodes.insert(new_id, OTHER_TYPE);
+ }
+
++ TypeTag::TagSveCount
++ | TypeTag::TagSveBool
++ | TypeTag::TagSveBoolx2
++ | TypeTag::TagSveBoolx4 => {
++ let ty = CTypeKind::UnhandledSveType;
++ self.add_type(new_id, not_located(ty));
++ self.processed_nodes.insert(new_id, OTHER_TYPE);
++ }
++
+ TypeTag::TagVectorType => {
+ let elt =
+ from_value(ty_node.extras[0].clone()).expect("Vector child not found");
+diff --git a/c2rust-transpile/src/c_ast/iterators.rs b/c2rust-transpile/src/c_ast/iterators.rs
+index 6817cf1e1a..22ba07e71c 100644
+--- a/c2rust-transpile/src/c_ast/iterators.rs
++++ b/c2rust-transpile/src/c_ast/iterators.rs
+@@ -285,7 +285,7 @@ fn immediate_type_children(kind: &CTypeKind) -> Vec<SomeId> {
+ TypeOfExpr(e) => intos![e],
+ Void | Bool | Short | Int | Long | LongLong | UShort | UInt | ULong | ULongLong | SChar
+ | UChar | Char | Double | LongDouble | Float | Int128 | UInt128 | BuiltinFn | Half
+- | BFloat16 => {
++ | BFloat16 | UnhandledSveType => {
+ vec![]
+ }
+
+diff --git a/c2rust-transpile/src/c_ast/mod.rs b/c2rust-transpile/src/c_ast/mod.rs
+index 56b067f3e8..182b795812 100644
+--- a/c2rust-transpile/src/c_ast/mod.rs
++++ b/c2rust-transpile/src/c_ast/mod.rs
+@@ -1672,6 +1672,10 @@ pub enum CTypeKind {
+
+ Half,
+ BFloat16,
++
++ // ARM Scalable Vector Extention types
++ // TODO: represent all the individual types in AArch64SVEACLETypes.def
++ UnhandledSveType,
+ }
+
+ impl CTypeKind {
+diff --git a/c2rust-transpile/src/translator/mod.rs b/c2rust-transpile/src/translator/mod.rs
+index 91144d0f29..99dca9734e 100644
+--- a/c2rust-transpile/src/translator/mod.rs
++++ b/c2rust-transpile/src/translator/mod.rs
+@@ -4921,6 +4921,9 @@ impl<'c> Translation<'c> {
+ // Handled in `import_simd_typedef`
+ }
+ TypeOfExpr(_) | BuiltinFn => {}
++ UnhandledSveType => {
++ // TODO: handle SVE types
++ }
+ }
+ }
+
diff --git a/testing/cachefilesd-inotify/APKBUILD b/testing/cachefilesd-inotify/APKBUILD
deleted file mode 100644
index 71a7467fb95..00000000000
--- a/testing/cachefilesd-inotify/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Jake Buchholz <tomalok@gmail.com>
-# Maintainer: Jake Buchholz <tomalok@gmail.com>
-pkgname=cachefilesd-inotify
-pkgver=0.11.0
-pkgrel=0
-pkgdesc="Userspace daemon acting as a backend for FS-Cache (uses INOTIFY instead of DNOTIFY)"
-url="https://gitlab.com/tomalok/cachefilesd-inotify"
-arch="all"
-license="GPL-2.0-or-later"
-depends="attr"
-makedepends="rpm file"
-provides="cachefilesd=$pkgver-r$pkgrel"
-replaces="cachefilesd"
-options="!check"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="https://gitlab.com/tomalok/cachefilesd-inotify/-/archive/$pkgver/$pkgname-$pkgver.tar.bz2
- cachefilesd.initd"
-
-build() {
- sed -i "s#/sbin/#/usr/bin/#g" cachefilesd.c
- sed -i "s#/sbin/#/usr/bin/#g" cachefilesd.service
- sed -i "s/^secctx/#secctx/g" cachefilesd.conf
- make CFLAGS="$CFLAGS"
-}
-
-package() {
- make DESTDIR="$pkgdir" SBINDIR=/usr/bin install
- mkdir -p "$pkgdir"/var/cache/fscache
- install -D -m 755 "$srcdir/cachefilesd.initd" "$pkgdir/etc/init.d/cachefilesd"
-}
-
-sha512sums="f283d0d2357da648515225a5162b53a4603fc466d291a68c4833a39ce1aed2784f9734a23ebcb47d1efbea0d3659733f9c1d8a0137e6e98281e6f4085328d049 cachefilesd-inotify-0.11.0.tar.bz2
-854b66470ace24caf24e979de3c1c12a426972bc745823b3a0f47ac80811ac5da4fa6a249e65386acdec2e7561178bb1d2c4b301a2178458f10496bb8eac5b2f cachefilesd.initd"
diff --git a/testing/cachefilesd-inotify/cachefilesd.initd b/testing/cachefilesd-inotify/cachefilesd.initd
deleted file mode 100644
index 589faa7d57a..00000000000
--- a/testing/cachefilesd-inotify/cachefilesd.initd
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/cachefilesd/files/cachefilesd.init,v 1.2 2010/09/20 08:45:22 jlec Exp $
-
-depend() {
- need localmount
- use logger
- before nfsmount
-}
-
-checkxattr() {
- local testpath testfile ret
- testpath=$(awk '/^[[:space:]]*dir/ {print $2}' /etc/cachefilesd.conf)
- testfile="${testpath}/.tmp-xattr-test.cachefilesd"
- touch "${testfile}"
- # creates a file in the testpath and tries to set an attribute on it to check
- # if the support is available
- attr -s test -V xattr "${testfile}" 2>&1 > /dev/null
- ret=$?
- rm -f "${testfile}"
- [ ${ret} -ne 0 ] && eerror "xattr support missing on the ${testpath} filesystem"
- return ${ret}
-}
-
-start() {
- ebegin "Starting cachefilesd"
- checkxattr || return $?
- # check if the cachefiles modules is loaded (or builtin)
- if [ ! -c /dev/cachefiles ] ; then
- local ret
- einfo "/dev/cachefiles doesn't exist, trying to modprobe cachefiles"
- modprobe cachefiles
- ret=$?
- if [ $ret -ne 0 ] ; then
- eerror "cachefiles modules cannot be loaded so cachefilesd "
- eerror "cannot be started, aborting. Did you build fscache in your "
- eerror "kernel? Note that you need a 2.6.30 or better kernel"
- return $ret
- fi
- fi
- start-stop-daemon --start --pidfile /var/run/cachefilesd.pid --exec /usr/bin/cachefilesd -- ${OPTIONS}
- eend $? "Failed to start cachefilesd. Check the system log to see the error"
-
-}
-
-stop() {
- ebegin "Stopping cachefilesd"
- start-stop-daemon --stop --exec /usr/bin/cachefilesd --pidfile /var/run/cachefilesd.pid
- eend $? "Failed to stop cachefilesd"
-}
-
-
diff --git a/testing/cadence/APKBUILD b/testing/cadence/APKBUILD
new file mode 100644
index 00000000000..c4e2bf6a328
--- /dev/null
+++ b/testing/cadence/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=cadence
+pkgver=0.9.2
+pkgrel=0
+pkgdesc="Collection of tools useful for audio production"
+url="https://kx.studio/Applications:Cadence"
+# py3-qt5 not packaged on armhf
+arch="all !armhf"
+license="GPL-2.0-or-later"
+depends="
+ jack-dbus
+ jack_capture
+ a2jmidid
+ py3-qt5
+ py3-dbus
+ "
+makedepends="
+ qt5-qtbase-dev
+ "
+source="https://github.com/falkTX/Cadence/archive/v$pkgver/cadence-$pkgver.tar.gz"
+options="!check" # No testsuite
+builddir="$srcdir/Cadence-$pkgver"
+
+build() {
+ make
+}
+
+package() {
+ make install PREFIX=/usr DESTDIR="$pkgdir"
+
+ # Taken from AUR:
+ # Removing claudia, as its runtime dependency ladish (dead) depends on
+ # flowcanvas (dead)
+ rm -rfv "$pkgdir/usr/bin/claudia"* \
+ "$pkgdir/usr/share/applications/claudia"* \
+ "$pkgdir/usr/share/$pkgname/"{icons,src}/{,ui_}claudia* \
+ "$pkgdir/usr/share/icons/hicolor/"{128x128,16x16,256x256,48x48,scalable}/apps/claudia*
+}
+
+sha512sums="
+d8a1b52c361e3e18a193d1c283bb69abe18ce667b554fc53cb9b752d92747269145144ae512895ffbb5df76efe8671cfc0782f29e59d0d7cd3d97c97240bdecf cadence-0.9.2.tar.gz
+"
diff --git a/testing/caffeine-ng/APKBUILD b/testing/caffeine-ng/APKBUILD
new file mode 100644
index 00000000000..81cf2d5cd26
--- /dev/null
+++ b/testing/caffeine-ng/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=caffeine-ng
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="Status bar application able to temporarily inhibit the screensaver and sleep mode"
+url="https://codeberg.org/WhyNotHugo/caffeine-ng"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ gtk+3.0
+ libayatana-appindicator
+ libnotify
+ py3-click
+ py3-dbus
+ py3-ewmh
+ py3-gobject3
+ py3-pulsectl
+ py3-setproctitle
+ xdg-utils
+ "
+makedepends="
+ gtk+3.0-dev
+ libayatana-appindicator-dev
+ libnotify-dev
+ meson
+ py3-dbus-dev
+ py3-gobject3-dev
+ python3-dev
+ scdoc
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="caffeine-ng-$pkgver.tar.gz::https://codeberg.org/attachments/6da08199-604f-4f0f-b9dd-c50efe587965
+ mandir.patch
+ "
+builddir="$srcdir/caffeine-ng-v4.2.0-0-g5027f55"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+ff732b56baa96f9f8eb0d05b502c56612cbd5a9c48c65820724c3abbb9ad4e2770997285cb0e4a1617cc5c70c8881a015451b4c00a6513daada97b93920a2cf8 caffeine-ng-4.2.0.tar.gz
+b19bc62609dc77fb8da6ca6691fb2edfe99b1444119ecda15cad8bb79d832802e917249251f1d50127b394f80a443b3ae722a9a076f21a3563d1c007d833af09 mandir.patch
+"
diff --git a/testing/caffeine-ng/mandir.patch b/testing/caffeine-ng/mandir.patch
new file mode 100644
index 00000000000..262d1203b7e
--- /dev/null
+++ b/testing/caffeine-ng/mandir.patch
@@ -0,0 +1,13 @@
+diff --git a/meson.build b/meson.build
+index 1f84fe8..423aed7 100644
+--- a/meson.build
++++ b/meson.build
+@@ -103,7 +103,7 @@ custom_target(
+ feed: true,
+ capture: true,
+ install: true,
+- install_dir: join_paths(mandir, 'man1/caffeine')
++ install_dir: join_paths(mandir, 'man1')
+ )
+
+ install_subdir('caffeine/assets/glade',
diff --git a/testing/calf/APKBUILD b/testing/calf/APKBUILD
deleted file mode 100644
index 9ab414c2f51..00000000000
--- a/testing/calf/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=calf
-pkgver=0.90.3
-pkgrel=0
-pkgdesc="Calf Studio Gear"
-url="https://calf-studio-gear.org"
-arch="all"
-license="GPL-2.0-only AND LGPL-2.1-only"
-makedepends="autoconf automake expat-dev fluidsynth-dev gtk+2.0-dev jack-dev
- libtool lv2-dev"
-subpackages="$pkgname-static $pkgname-jack $pkgname-doc $pkgname-lv2"
-source="http://calf-studio-gear.org/files/calf-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- autoreconf -vif
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-jack() {
- pkgdesc="Calf Studio Gear (JACK utils)"
- amove usr/bin/calfjackhost
-}
-
-lv2() {
- pkgdesc="Calf Studio Gear (LV2 plugins)"
- amove usr/lib/lv2/*
-}
-
-sha512sums="a17be4f2e753c5426ff6995ebf4e88f1d4916629f624fcb576e09e5cafd56474fc8944d9defba31561a3476c55d78dd69189cedb11197a09cc3af6e59aa2a867 calf-0.90.3.tar.gz"
diff --git a/testing/calibre/0001-calibre-no-update.patch b/testing/calibre/0001-calibre-no-update.patch
new file mode 100644
index 00000000000..85b3e59d397
--- /dev/null
+++ b/testing/calibre/0001-calibre-no-update.patch
@@ -0,0 +1,25 @@
+diff --color -Nur calibre-6.17.0.orig/src/calibre/gui2/update.py calibre-6.17.0/src/calibre/gui2/update.py
+--- calibre-6.17.0.orig/src/calibre/gui2/update.py 2023-05-06 11:36:35.678461036 -0700
++++ calibre-6.17.0/src/calibre/gui2/update.py 2023-05-06 11:39:10.365134930 -0700
+@@ -82,20 +82,6 @@
+ while not self.shutdown_event.is_set():
+ calibre_update_version = NO_CALIBRE_UPDATE
+ plugins_update_found = 0
+- try:
+- version = get_newest_version()
+- if version[:2] > numeric_version[:2]:
+- calibre_update_version = version
+- except Exception as e:
+- prints('Failed to check for calibre update:', as_unicode(e))
+- try:
+- update_plugins = get_plugin_updates_available(raise_error=True)
+- if update_plugins is not None:
+- plugins_update_found = len(update_plugins)
+- except Exception as e:
+- prints('Failed to check for plugin update:', as_unicode(e))
+- if calibre_update_version != NO_CALIBRE_UPDATE or plugins_update_found > 0:
+- self.signal.update_found.emit(calibre_update_version, plugins_update_found)
+ self.shutdown_event.wait(self.INTERVAL)
+
+ def shutdown(self):
+
diff --git a/testing/calibre/APKBUILD b/testing/calibre/APKBUILD
new file mode 100644
index 00000000000..34f60eeced7
--- /dev/null
+++ b/testing/calibre/APKBUILD
@@ -0,0 +1,115 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=calibre
+pkgver=7.9.0
+pkgrel=1
+pkgdesc="Ebook management application"
+# qt6-webengine
+arch="x86_64 aarch64"
+url="https://calibre-ebook.com"
+license="GPL-3.0-or-later"
+depends="
+ font-liberation
+ libwmf
+ mtdev
+ optipng
+ poppler
+ py3-apsw
+ py3-beautifulsoup4
+ py3-css-parser
+ py3-cssselect
+ py3-dateutil
+ py3-dnspython
+ py3-feedparser
+ py3-fonttools
+ py3-html2text
+ py3-html5-parser
+ py3-html5lib
+ py3-jeepney
+ py3-lxml
+ py3-markdown
+ py3-mechanize
+ py3-msgpack
+ py3-netifaces
+ py3-pillow
+ py3-psutil
+ py3-pycryptodome
+ py3-pygments
+ py3-pyqt6-webengine
+ py3-regex
+ py3-xxhash
+ py3-zeroconf
+ qt6-qtimageformats
+ qt6-qtsvg
+ qt6-qtwebengine
+ udisks2
+ "
+makedepends="
+ cmake
+ curl
+ hunspell-dev
+ hyphen-dev
+ libmtp-dev
+ libstemmer-dev
+ libusb-dev
+ podofo-dev
+ py3-pyqt-builder
+ py3-pyqt6-sip
+ py3-sip
+ python3-dev
+ qt6-qtbase-dev
+ uchardet-dev
+ xdg-utils
+ "
+subpackages="
+ $pkgname-pyc
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="https://download.calibre-ebook.com/$pkgver/calibre-$pkgver.tar.xz
+ 0001-$pkgname-no-update.patch
+ "
+# net: downloads iso-codes
+# !check: no tests ran
+options="net !check"
+
+export LANG="en_US.UTF-8"
+
+prepare() {
+ default_prepare
+
+ rm -f resources/calibre-portable.*
+}
+
+build() {
+ python3 setup.py build
+ python3 setup.py iso639
+ python3 setup.py iso3166
+ python3 setup.py liberation_fonts --system-liberation_fonts --path-to-liberation_fonts /usr/share/fonts/liberation
+ python3 setup.py mathjax
+ python3 setup.py gui
+}
+
+check() {
+ python3 -m unittest discover
+}
+
+package() {
+ # needed for zsh
+ mkdir -p "$pkgdir"/usr/share/zsh/site-functions
+
+ python3 setup.py install \
+ --staging-root="$pkgdir"/usr \
+ --system-plugins-location=/usr/share/calibre/system-plugins
+
+ cp -a man-pages/ "$pkgdir"/usr/share/man
+
+ rm -r "$pkgdir"/usr/share/calibre/rapydscript/
+
+ python3 -m compileall -fq "$pkgdir"/usr
+}
+
+sha512sums="
+388f47e13e0a682ae61a32ec2d7840e1514dd5cc79cc9ba271cee7619ad67f270c5059849e9412545bd4b9fa0904d105f5e88736956aba37abf9ef3ac8e1e09f calibre-7.9.0.tar.xz
+eb8e7ce40ff8b8daf6e7e55a5dff8ec4dff06c45744266bb48b3194e92ab1196bc91468203e3c2ca1e5144166a7d6be90e6cf0253513e761b56a4c85be4c2c76 0001-calibre-no-update.patch
+"
diff --git a/testing/capnproto/APKBUILD b/testing/capnproto/APKBUILD
deleted file mode 100644
index ec9dc263197..00000000000
--- a/testing/capnproto/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Nick Black <dankamongmen@gmail.com>
-# Maintainer:
-pkgname=capnproto
-pkgver=0.7.0
-pkgrel=2
-pkgdesc="Tools for working with the Cap'n Proto format"
-url="https://capnproto.org/"
-arch="all"
-license="MIT"
-depends=
-makedepends="linux-headers"
-subpackages="$pkgname-dev"
-case "$CARCH" in
- mips*|s390x|armhf|armv7) options="!check";; # FAIL: capnp-test
-esac
-source="https://capnproto.org/$pkgname-c++-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-c++-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr/ --without-openssl
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir"
-}
-
-# We want to move the schema compilers into the dev package.
-# See https://wiki.alpinelinux.org/wiki/APKBUILD_Reference#dev.28.29
-dev() {
- default_dev
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin
-}
-
-sha512sums="9f8fb5753155798fcf9377a87f984a54d9fc5157c41aa11cd94108a773ca22d6e6952657e2d8079c9806f7de06f316c94957329fa52dbab6207aaa3b52348f04 capnproto-c++-0.7.0.tar.gz"
diff --git a/testing/caps2esc/APKBUILD b/testing/caps2esc/APKBUILD
new file mode 100644
index 00000000000..a02d4f9c103
--- /dev/null
+++ b/testing/caps2esc/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Evan Johnston <evan@d2evs.net>
+# Maintainer: Evan Johnston <evan@d2evs.net>
+pkgname=caps2esc
+pkgver=0.3.2
+pkgrel=0
+pkgdesc="Transforming the most useless key ever in the most useful one"
+url="https://gitlab.com/interception/linux/plugins/caps2esc"
+arch="all"
+license="MIT"
+depends="interception-tools"
+makedepends="
+ cmake
+ linux-headers
+ samurai
+ "
+source="https://gitlab.com/interception/linux/plugins/caps2esc/-/archive/v$pkgver/caps2esc-v$pkgver.tar.gz"
+builddir="$srcdir/caps2esc-v$pkgver"
+options="!check" # no tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1d077720131df92d38daa2a72432b02f3f43f3ad49028e9029a804c6cad218508a96b0c0b67a5ed2506f5b80ed062c01423032a7133218f37c60ad4f32c22147 caps2esc-v0.3.2.tar.gz
+"
diff --git a/testing/carapace/APKBUILD b/testing/carapace/APKBUILD
new file mode 100644
index 00000000000..2209a51c57a
--- /dev/null
+++ b/testing/carapace/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Andrej Kolchin <KAAtheWise@protonmail.com>
+# Maintainer: Andrej Kolchin <KAAtheWise@protonmail.com>
+pkgname=carapace
+pkgver=1.0.1
+pkgrel=0
+pkgdesc="Multi-shell multi-command argument completer"
+url="https://carapace.sh/"
+arch="all"
+license="MIT"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rsteube/carapace-bin/archive/v$pkgver.tar.gz"
+# fixes the tar archive unpacking to carapace-bin-$pkgver
+_pkgname=carapace-bin
+builddir="$srcdir/$_pkgname-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+build() {
+ go generate ./cmd/carapace/...
+ go build -tags release ./cmd/carapace
+}
+
+check() {
+ # The three lone tests in the repository.
+ go test \
+ ./cmd/carapace/... \
+ ./pkg/actions/tools/pandoc \
+ ./pkg/actions/env
+}
+
+package() {
+ install -Dm755 carapace -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+4e4d745879209343ff06e2d716bcbb7ec59920bb885deea9cb6a765d4c7a2040e4ace578e3fa820bda4c89a6ecab55e48e914f22c00565551331645e62e3fe73 carapace-1.0.1.tar.gz
+"
diff --git a/testing/care/10-tests-musl-compat.patch b/testing/care/10-tests-musl-compat.patch
new file mode 100644
index 00000000000..8a92c3fa52a
--- /dev/null
+++ b/testing/care/10-tests-musl-compat.patch
@@ -0,0 +1,26 @@
+The same change was made in src/.
+
+--- a/test/ptrace-2.c
++++ b/test/ptrace-2.c
+@@ -52,6 +52,12 @@
+ # endif
+ #endif
+
++#if defined(__GLIBC__)
++# define PTRACE_REQUEST_TYPE enum __ptrace_request
++#else
++# define PTRACE_REQUEST_TYPE int
++#endif
++
+ /**
+ * Compute the offset of the register @reg_name in the USER area.
+ */
+@@ -200,7 +206,7 @@
+
+ int main(int argc, char *argv[])
+ {
+- enum __ptrace_request restart_how;
++ PTRACE_REQUEST_TYPE restart_how;
+ int last_exit_status = -1;
+ pid_t *pids = NULL;
+ long status;
diff --git a/testing/care/APKBUILD b/testing/care/APKBUILD
new file mode 100644
index 00000000000..b1062bdb4ff
--- /dev/null
+++ b/testing/care/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Peter Shkenev <santurysim@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=care
+pkgver=2.3.0
+_prootver=5.4.0
+pkgrel=0
+pkgdesc="Comprehensive Archiver for Reproducible Execution"
+url="https://proot-me.github.io/care/"
+arch="aarch64 armhf armv7 x86 x86_64"
+license="GPL-2.0-or-later"
+depends="proot"
+makedepends="
+ bsd-compat-headers
+ libarchive-dev
+ linux-headers
+ py3-docutils
+ talloc-dev
+ talloc-static
+ uthash-dev
+ "
+checkdepends="bash coreutils grep lzop mcookie strace"
+subpackages="$pkgname-doc"
+source="https://github.com/proot-me/proot/archive/v$_prootver/proot-$_prootver.tar.gz
+ 10-tests-musl-compat.patch
+ "
+options="!check"
+builddir="$srcdir"/proot-"$_prootver"
+
+build() {
+ make -C src care GIT=false
+ make -C doc care/man.1
+}
+
+check() {
+ make -C test
+}
+
+package() {
+ install -Dm 0755 "$builddir"/src/care "$pkgdir"/usr/bin/care
+ install -Dm 0644 ./doc/care/man.1 "$pkgdir"/usr/share/man/man1/care.1
+}
+
+sha512sums="
+c4d7b7428758c0d8f6a89ecaa01d1d7d5d9663a84b7e730e8160bc2a2385a7e278589f5dd86f5cd4f8e0736f09b3097b9efea7814096fd2d28e6032435b9ee63 proot-5.4.0.tar.gz
+d09de6d776072e9991abd04e294e6d36bd1634b9e972294a112526ebf3f63e919d01755de1ecd7253d614b41b07fe6882df8787c638b8576bcf2555abcafa466 10-tests-musl-compat.patch
+"
diff --git a/testing/cargo-crev/APKBUILD b/testing/cargo-crev/APKBUILD
new file mode 100644
index 00000000000..7a07120bd88
--- /dev/null
+++ b/testing/cargo-crev/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=cargo-crev
+pkgver=0.25.5
+pkgrel=0
+pkgdesc="Cryptographically verifiable code review system for cargo"
+url="https://github.com/crev-dev/cargo-crev"
+# s390x: failing tests
+arch="all !s390x"
+license="MPL-2.0 OR MIT OR Apache-2.0"
+makedepends="cargo cargo-auditable openssl-dev"
+source="https://github.com/crev-dev/cargo-crev/archive/v$pkgver/cargo-crev-$pkgver.tar.gz
+ use-index-guix-from-crates.io.patch
+ "
+
+export OPENSSL_NO_VENDOR=1
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release -p cargo-crev --no-default-features
+}
+
+check() {
+ cargo test --frozen --no-default-features
+}
+
+package() {
+ install -Dm755 target/release/cargo-crev "$pkgdir"/usr/bin/cargo-crev
+}
+
+sha512sums="
+621447b0f5e32ed11af3d4e985d77986e94ceb6d6e0359880e70c20120698fb685b64062824fbd0bfffd9de565a6d5894788996c74637444d7bbdb47ed8e3807 cargo-crev-0.25.5.tar.gz
+84123bf4c1f1dfcb4dc1e5b31f5b5351a21cf24a56a8b0e07bffce00b5c0170f373dbb1d3d293beff4cc3f4873e831f9967da872f7408cf491f8926b1cc717c0 use-index-guix-from-crates.io.patch
+"
diff --git a/testing/cargo-crev/use-index-guix-from-crates.io.patch b/testing/cargo-crev/use-index-guix-from-crates.io.patch
new file mode 100644
index 00000000000..30c11226988
--- /dev/null
+++ b/testing/cargo-crev/use-index-guix-from-crates.io.patch
@@ -0,0 +1,38 @@
+Patch-Source: https://github.com/crev-dev/cargo-crev/commit/1c372955d79b65de27cfcb20afb29f962f965933.patch
+--
+From 1c372955d79b65de27cfcb20afb29f962f965933 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Orhun=20Parmaks=C4=B1z?= <orhunparmaksiz@gmail.com>
+Date: Wed, 22 Nov 2023 00:33:35 +0100
+Subject: [PATCH] fix(deps): use index-guix dependency from crates.io (#690)
+
+---
+ Cargo.lock | 2 ++
+ crevette/Cargo.toml | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index c6909595..28cb2852 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -3344,6 +3344,8 @@ dependencies = [
+ [[package]]
+ name = "index-guix"
+ version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd5527d0b9a90f16299c4db9a1c93c74089abe2e38dbd640b69e4afc378038e3"
+ dependencies = [
+ "gix 0.55.2",
+ "nom",
+diff --git a/crevette/Cargo.toml b/crevette/Cargo.toml
+index e4bea234..30afe4d4 100644
+--- a/crevette/Cargo.toml
++++ b/crevette/Cargo.toml
+@@ -23,7 +23,7 @@ toml_edit = { version = "0.21.0", features = ["serde"] }
+ cargo_author = { version = "1.0.6", optional = true }
+ flate2 = { version = "1.0.28", optional = true }
+ index-debcargo = { version = "1.1.0", optional = true }
+-index-guix = { version = "1.0.0", optional = true, path = "../../index-guix" }
++index-guix = { version = "1.0.0", optional = true }
+ reqwest = { version = "0.11.22", features = ["blocking"], optional = true }
+
+ [features]
diff --git a/testing/cargo-generate/APKBUILD b/testing/cargo-generate/APKBUILD
new file mode 100644
index 00000000000..ee654908f80
--- /dev/null
+++ b/testing/cargo-generate/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=cargo-generate
+pkgver=0.20.0
+pkgrel=0
+pkgdesc="Use pre-existing git repositories as templates"
+url="https://github.com/cargo-generate/cargo-generate"
+license="MIT OR Apache-2.0"
+arch="all !s390x" # fails to build nix crate
+makedepends="cargo libgit2-dev openssl-dev cargo-auditable"
+source="https://github.com/cargo-generate/cargo-generate/archive/v$pkgver/cargo-generate-$pkgver.tar.gz
+ remove-cargo-husky.patch
+ "
+options="net" # fetch dependencies
+
+prepare() {
+ default_prepare
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided libs
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ git2 = { rustc-link-lib = ["git2"] }
+ EOF
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --no-default-features
+}
+
+check() {
+ cargo test --frozen --lib --no-default-features
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+ab6fa4b3519c4e35fef65eeb38caa226713fae5204950fc7b04fb38fa77d21045b7dee0defb2499df54dc17dd8780e3f580e13085de1dfdac87d1ac536c52afd cargo-generate-0.20.0.tar.gz
+50054cda7a9f22f89f1b447a197365737a73132ddd7c53f7a7e49eecf1bc1a6bb15dd7c97cf2cdda3b3468a94e6a9d8f0ce8910c972558eb09d16424667fdc31 remove-cargo-husky.patch
+"
diff --git a/testing/cargo-generate/remove-cargo-husky.patch b/testing/cargo-generate/remove-cargo-husky.patch
new file mode 100644
index 00000000000..ceef9f531ec
--- /dev/null
+++ b/testing/cargo-generate/remove-cargo-husky.patch
@@ -0,0 +1,53 @@
+Remove cargo-husky dependency to fix running `cargo test` command on buildozer
+
+> error: failed to run custom build command for `cargo-husky v1.5.0`
+>
+> Caused by:
+> process didn't exit successfully: `/home/buildozer/aports/testing/cargo-generate/src/cargo-generate-0.18.1/target/debug/build/cargo-husky-d53e0402e0fa64a4/build-script-build` (exit status: 1)
+> --- stderr
+> Error: IO error: Permission denied (os error 13)
+> warning: build failed, waiting for other jobs to finish...
+> >>> ERROR: cargo-generate: check failed
+
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -142,7 +142,6 @@ dependencies = [
+ "assert_cmd",
+ "auth-git2",
+ "bstr",
+- "cargo-husky",
+ "clap",
+ "console",
+ "dialoguer",
+@@ -179,12 +178,6 @@ dependencies = [
+ "walkdir",
+ ]
+
+-[[package]]
+-name = "cargo-husky"
+-version = "1.5.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad"
+-
+ [[package]]
+ name = "cc"
+ version = "1.0.83"
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -61,16 +61,6 @@ indoc = "~2.0"
+ url = "~2.5"
+ bstr = "~1.9"
+
+-[dev-dependencies.cargo-husky]
+-version = "~1.5"
+-default-features = false
+-features = [
+- "prepush-hook",
+- "run-cargo-test",
+- "run-cargo-clippy",
+- "run-cargo-fmt",
+-]
+-
+ [features]
+ default = ["vendored-libgit2"]
+ vendored-libgit2 = ["git2/vendored-libgit2"]
diff --git a/testing/cargo-leptos/APKBUILD b/testing/cargo-leptos/APKBUILD
new file mode 100644
index 00000000000..3f63e8e6765
--- /dev/null
+++ b/testing/cargo-leptos/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=cargo-leptos
+pkgver=0.2.16
+pkgrel=0
+pkgdesc="Build tool for Leptos"
+url="https://leptos.dev"
+arch="x86_64 aarch64" # dart-sass
+license="MIT"
+makedepends="cargo-auditable"
+depends="
+ binaryen
+ cargo
+ cargo-generate
+ dart-sass
+"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/leptos-rs/cargo-leptos/archive/refs/tags/v$pkgver.tar.gz
+"
+options="net"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen --features no_downloads
+}
+
+check() {
+ cargo test --frozen --features no_downloads
+}
+
+package() {
+ install -Dm 755 target/release/cargo-leptos "$pkgdir"/usr/bin/cargo-leptos
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+334dadf021fa7aabcd3e8a71d0512ce3fdc04ec058fd9b22bfd0b1f89bbd8bc9e3f7fd37973a5a9ad656802174293607330cd07db1283366d0264daa9a704bbd cargo-leptos-0.2.16.tar.gz
+"
diff --git a/testing/cargo-machete/APKBUILD b/testing/cargo-machete/APKBUILD
new file mode 100644
index 00000000000..b5e2b592293
--- /dev/null
+++ b/testing/cargo-machete/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=cargo-machete
+pkgver=0.6.2
+pkgrel=0
+pkgdesc="Cargo subcommand for removing unused Rust dependencies"
+url="https://github.com/bnjbvr/cargo-machete"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/bnjbvr/cargo-machete/archive/v$pkgver.tar.gz"
+options="net" # cargo fetch
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/cargo-machete" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE.md -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+c0b33ca808f75bc51e1aeb0b685abf2e170200dc4b11560ec8c2e1a64793b29216ac80f23d91731288e808097fd7a36a541c1c7666b696fc23f068ecd56c05be cargo-machete-0.6.2.tar.gz
+"
diff --git a/testing/cargo-run-bin/APKBUILD b/testing/cargo-run-bin/APKBUILD
new file mode 100644
index 00000000000..c024df9bf30
--- /dev/null
+++ b/testing/cargo-run-bin/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=cargo-run-bin
+pkgver=1.7.2
+pkgrel=0
+pkgdesc="Build, cache, and run CLI tools scoped in Cargo.toml"
+url="https://github.com/dustinblackman/cargo-run-bin"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dustinblackman/cargo-run-bin/archive/v$pkgver.tar.gz"
+options="net"
+options="$options !check" # https://github.com/dustinblackman/cargo-run-bin/issues/18
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/cargo-bin" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+5a81437f15f99b145ed6be4c3943e50e8f8f8b40bb36dc8a37ea29d6e43bfb0cb928d77ba3db19d0d919b4a8f4cbd3296b996db0c2ce0c42397393269a017f5d cargo-run-bin-1.7.2.tar.gz
+"
diff --git a/testing/cargo-shuttle/APKBUILD b/testing/cargo-shuttle/APKBUILD
new file mode 100644
index 00000000000..589be4e5942
--- /dev/null
+++ b/testing/cargo-shuttle/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=cargo-shuttle
+pkgver=0.44.0
+pkgrel=0
+pkgdesc="Cargo command for the Shuttle platform"
+url="https://github.com/shuttle-hq/shuttle"
+license="Apache-2.0"
+# s390x, ppc64le, riscv64: blocked by ring crate
+arch="all !s390x !ppc64le !riscv64"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/shuttle-hq/shuttle/archive/v$pkgver/shuttle-$pkgver.tar.gz"
+builddir="$srcdir/shuttle-$pkgver"
+# tests require git/submodules to be initialized
+options="!check"
+
+prepare() {
+ default_prepare
+ cargo fetch --locked
+}
+
+build() {
+ cargo auditable build -p "$pkgname" --release --frozen
+ mkdir -p completions/
+ local compgen="target/release/$pkgname generate shell"
+ $compgen bash >"completions/$pkgname.bash"
+ $compgen fish >"completions/$pkgname.fish"
+ $compgen zsh >"completions/_$pkgname"
+ mkdir -p man/
+ "target/release/$pkgname" generate manpage > "man/$pkgname.1"
+}
+
+package() {
+ install -Dm755 "target/release/$pkgname" -t "$pkgdir/usr/bin/"
+ install -Dm644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm644 "completions/$pkgname.bash" "$pkgdir/usr/share/bash-completion/completions/$pkgname"
+ install -Dm644 "completions/$pkgname.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d"
+ install -Dm644 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions"
+ install -Dm 644 "man/$pkgname.1" -t "$pkgdir/usr/share/man/man1"
+}
+
+sha512sums="
+1b66899d06dddda6f17ff26853c6ecb199340740b11fc0ade63c9d358c6df85406f0addf639b42c9daeb43ed9fd21328e29c0689f13cc951c61385e0c8ee8625 shuttle-0.44.0.tar.gz
+"
diff --git a/testing/cargo-sort/APKBUILD b/testing/cargo-sort/APKBUILD
new file mode 100644
index 00000000000..b209c7cb701
--- /dev/null
+++ b/testing/cargo-sort/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=cargo-sort
+pkgver=1.0.9_git20240110
+_gitrev=55ec89082466f6bb246d870a8d56d166a8e1f08b
+pkgrel=0
+pkgdesc="Check if tables and items in a .toml file are lexically sorted"
+url="https://github.com/DevinR528/cargo-sort"
+arch="all"
+license="MIT OR Apache-2.0"
+makedepends="cargo-auditable"
+depends="cargo"
+source="
+ $pkgname-$_gitrev.tar.gz::https://github.com/DevinR528/cargo-sort/archive/$_gitrev.tar.gz
+"
+options="net"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 target/release/cargo-sort "$pkgdir"/usr/bin/cargo-sort
+}
+
+sha512sums="
+064ccafb11d250bb20453eba55eb1b108f1cb6ef3dda4728f0462a2d4c011da884443c7fd4de7b7d2a1cc8ac3ac4cf0ca1658c08f0be561844fc9e7553a430a1 cargo-sort-55ec89082466f6bb246d870a8d56d166a8e1f08b.tar.gz
+"
diff --git a/testing/cargo-update/APKBUILD b/testing/cargo-update/APKBUILD
new file mode 100644
index 00000000000..0c40f8d7764
--- /dev/null
+++ b/testing/cargo-update/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=cargo-update
+pkgver=13.3.0
+pkgrel=0
+pkgdesc="cargo subcommand for checking and applying updates to installed executables"
+url="https://github.com/nabijaczleweli/cargo-update"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable ronn curl-dev libgit2-dev libssh-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/nabijaczleweli/cargo-update/archive/refs/tags/v$pkgver.tar.gz"
+
+export LIBSSH2_SYS_USE_PKG_CONFIG=1
+
+prepare() {
+ default_prepare
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided libs
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ git2 = { rustc-link-lib = ["git2"] }
+ EOF
+
+ cargo fetch --target="$CTARGET"
+}
+
+build() {
+ cargo auditable build --frozen --release
+ ronn --roff --organization="CARGO-UPDATE $pkgver" man/*.md
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin/ \
+ target/release/cargo-install-update \
+ target/release/cargo-install-update-config
+
+ install -Dm644 man/cargo-install-update*.1 \
+ -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+ef12ab1c998efeaab2ac680f9714ad6626434db021fd5aaa09f5f9e262fa6bea32fba53e513bf3a2fcc043e28fe2f19a24f163b1614899dc2d899472c0451ae0 cargo-update-13.3.0.tar.gz
+"
diff --git a/testing/cargo-vendor-filterer/APKBUILD b/testing/cargo-vendor-filterer/APKBUILD
new file mode 100644
index 00000000000..5bd506b1fd4
--- /dev/null
+++ b/testing/cargo-vendor-filterer/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=cargo-vendor-filterer
+pkgver=0.5.9
+pkgrel=1
+pkgdesc="cargo vendor with filtering for platforms and more"
+url="https://github.com/coreos/cargo-vendor-filterer"
+arch="all"
+license="Apache-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/coreos/cargo-vendor-filterer/archive/refs/tags/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen --no-default-features
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2fd85f797da1d75f8a4b109278bccef1b1e0faf10653a8f472e5de48ea31f743916865853a68c5d87d0820deeaed7240f1ba50df71b2b977a35465ce14b04357 cargo-vendor-filterer-0.5.9.tar.gz
+"
diff --git a/testing/castero/APKBUILD b/testing/castero/APKBUILD
new file mode 100644
index 00000000000..5c9e72acb21
--- /dev/null
+++ b/testing/castero/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=castero
+pkgver=0.9.5
+pkgrel=2
+pkgdesc="TUI podcast client for the terminal"
+url="https://github.com/xgi/castero"
+arch="noarch"
+license="MIT"
+depends="
+ py3-beautifulsoup4
+ py3-cjkwrap
+ py3-grequests
+ py3-lxml
+ py3-mpv
+ py3-requests
+ py3-tz
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xgi/castero/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ # Remove py3-vlc as we rely on py3-mpv
+ sed -i '/python-vlc/d' setup.py
+}
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest -k 'not test_player_vlcplayer'
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+3bd962f8a609dbd37cd133902f1cf8d619749179aeb790339a52849e4222c95b35d396a8b20e8690b412616cb2699fcba3d3ecfc87360579eaa08dfdddc9db30 castero-0.9.5.tar.gz
+"
diff --git a/testing/castor/APKBUILD b/testing/castor/APKBUILD
new file mode 100644
index 00000000000..6d497a1db3e
--- /dev/null
+++ b/testing/castor/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Joel Hansen <joelh@disroot.org>
+pkgname=castor
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="Graphical browser for Gemini, Gopher and Finger"
+url="https://sr.ht/~julienxx/Castor/"
+license="MIT"
+arch="all !s390x !riscv64" # limited by rust/cargo
+makedepends="rust cargo gtk+3.0-dev openssl-dev>3 cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~julienxx/castor/archive/$pkgver.tar.gz"
+
+
+build() {
+ cargo auditable build --release --locked --verbose
+}
+
+check() {
+ cargo test --release --locked -- --test-threads=1
+}
+
+package() {
+ install -Dm755 target/release/castor "$pkgdir"/usr/bin/castor
+ install -Dm644 data/Castor.desktop -t "$pkgdir"/usr/share/applications
+ install -Dm644 data/org.typed-hole.castor.svg -t "$pkgdir"/usr/share/pixmaps
+}
+
+sha512sums="
+a860f4df5034569675d09ca507e970c1bf22cab24810e12f2afcaa9f8a4a52b8ba019e0b956562953571d7995c1222a9fbc2f8acd09c13e94378dcee4e3c062d castor-0.9.0.tar.gz
+"
diff --git a/testing/catatonit/APKBUILD b/testing/catatonit/APKBUILD
deleted file mode 100644
index 9190ef33e8b..00000000000
--- a/testing/catatonit/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=catatonit
-pkgver=0.1.5
-pkgrel=0
-pkgdesc="A container init that is so simple it's effectively brain-dead"
-url="https://github.com/openSUSE/catatonit"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="autoconf automake libtool"
-options="!check" # no test suite
-source="$pkgname-$pkgver.tar.xz::https://github.com/openSUSE/catatonit/releases/download/v$pkgver/catatonit.tar.xz
- fix-undeclared-identifier.patch"
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="5dedd2fcbcef30fef6caa1384909c8d25e5d742a56963ab0371acd738fc8d164c4a745cb7744284f77fe0f868075aec6882f4c1189cafd456b703edfce6cec01 catatonit-0.1.5.tar.xz
-e1b77829cf76b49904ec51799b2b95ba94d482bc8038714c1363655e2e22dd1467cb906423873facf270ea6f64df0956a8e0ebad8a2892bebeacecdce9115fcf fix-undeclared-identifier.patch"
diff --git a/testing/catatonit/fix-undeclared-identifier.patch b/testing/catatonit/fix-undeclared-identifier.patch
deleted file mode 100644
index cbe2ae8eb13..00000000000
--- a/testing/catatonit/fix-undeclared-identifier.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/catatonit.c b/catatonit.c
-index db972d6..51d530b 100644
---- a/catatonit.c
-+++ b/catatonit.c
-@@ -34,6 +34,8 @@
-
- #include "config.h"
-
-+extern char **__environ;
-+
- static enum loglevel_t {
- LOG_FATAL = 0,
- LOG_ERROR = 1,
diff --git a/testing/catcodec/APKBUILD b/testing/catcodec/APKBUILD
index 7edb4b27e89..ded8b0f0c24 100644
--- a/testing/catcodec/APKBUILD
+++ b/testing/catcodec/APKBUILD
@@ -2,34 +2,28 @@
# Maintainer:
pkgname=catcodec
pkgver=1.0.5
-pkgrel=0
+pkgrel=2
pkgdesc="Decodes and encodes sample catalogues for OpenTTD"
-url="http://www.openttd.org/en/download-catcodec"
+url="https://www.openttd.org/downloads/catcodec-releases/latest"
arch="all"
license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends=""
-install=""
+options="!check" # to testsuite
subpackages="$pkgname-doc"
-source="http://binaries.openttd.org/extra/$pkgname/$pkgver/$pkgname-$pkgver-source.tar.xz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://cdn.openttd.org/catcodec-releases/$pkgver/catcodec-$pkgver-source.tar.xz"
build() {
- cd "$builddir"
make VERBOSE=1
}
package() {
- cd "$builddir"
+ install -Dm755 catcodec "$pkgdir"/usr/bin/catcodec
+ install -Dm644 docs/catcodec.1 \
+ "$pkgdir"/usr/share/man/man1/catcodec.1
- install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm644 docs/$pkgname.1 \
- "$pkgdir"/usr/share/man/man1/$pkgname.1
-
- mkdir -p "$pkgdir"/usr/share/docs/$pkgname/
- install -m644 changelog.txt docs/readme.txt \
- "$pkgdir"/usr/share/docs/$pkgname/
+ install -Dm644 changelog.txt docs/readme.txt \
+ -t "$pkgdir"/usr/share/doc/catcodec/
}
-sha512sums="e6e17da17f2449ff5d3a18c34ba3125d475a481ef1dc73ba03dac32fc8523a8929d2cbdfda5f647a0226aa007a217fc90c85ec4cc46937f75e15a596277e0db5 catcodec-1.0.5-source.tar.xz"
+sha512sums="
+e6e17da17f2449ff5d3a18c34ba3125d475a481ef1dc73ba03dac32fc8523a8929d2cbdfda5f647a0226aa007a217fc90c85ec4cc46937f75e15a596277e0db5 catcodec-1.0.5-source.tar.xz
+"
diff --git a/testing/catdoc/APKBUILD b/testing/catdoc/APKBUILD
new file mode 100644
index 00000000000..bfaced72370
--- /dev/null
+++ b/testing/catdoc/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=catdoc
+pkgver=0.95
+pkgrel=1
+pkgdesc="Convertor for Microsoft Word, Excel, PowerPoint and RTF Files to text"
+options="!check" # No testsuite
+url="https://www.wagner.pp.ru/~vitus/software/catdoc/"
+arch="all"
+license="GPL-2.0-only"
+subpackages="$pkgname-doc"
+source="http://ftp.wagner.pp.ru/pub/catdoc/catdoc-$pkgver.tar.gz"
+
+# This update is missing wordview.desktop and wordview.xpm
+# And is 75% smaller? Something is possibly off, but it does work.
+
+build() {
+ ./configure --prefix=/usr --with-wish=/usr/bin/wish
+ make installroot="$pkgdir"
+}
+
+package() {
+ install -d "$pkgdir/usr/share/man/man1"
+ install -m644 doc/*.1 "$pkgdir/usr/share/man/man1"
+ make -j1 installroot="$pkgdir" mandir=/usr/share/man/ install
+}
+
+sha512sums="dd6bded4b6b70749c007256b182b063ff266f86d53024d8582001678821e8096c5b980bc8f43015d9c82bbe022d71d4ba5fe68aff31b2ff6db3688595e651b2c catdoc-0.95.tar.gz"
diff --git a/testing/catfish/APKBUILD b/testing/catfish/APKBUILD
new file mode 100644
index 00000000000..af7d9725e26
--- /dev/null
+++ b/testing/catfish/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=catfish
+pkgver=4.18.0
+pkgrel=2
+pkgdesc="Catfish is a handy file searching tool for Linux and Unix"
+url="https://docs.xfce.org/apps/catfish/start"
+# x86, s390x: zeitgeist
+arch="noarch !s390x !x86"
+license="GPL-2.0-or-later"
+depends="
+ gtk+3.0
+ plocate
+ py3-cairo
+ py3-dbus
+ py3-gobject3
+ py3-pexpect
+ py3-zeitgeist
+ zeitgeist
+ "
+makedepends="
+ intltool
+ py3-distutils-extra
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-lang
+ $pkgname-pyc
+ "
+source="https://gitlab.xfce.org/apps/catfish/-/archive/catfish-$pkgver/catfish-catfish-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+options="!check" # No upstream test suite
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+e07011198ae339521e3b2c6f95af63a7a166859297c7f2b2e38c588f427aea33d785f90b0e0cf9e82e3a351fe3b10bd9cb79330910c74f7d2a1de1087559dae6 catfish-catfish-4.18.0.tar.gz
+"
diff --git a/testing/catimg/APKBUILD b/testing/catimg/APKBUILD
deleted file mode 100644
index 45216927044..00000000000
--- a/testing/catimg/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=catimg
-pkgver=2.6.0
-pkgrel=0
-pkgdesc="terminal image renderer"
-url="https://github.com/posva/catimg"
-arch="all"
-license="MIT"
-makedepends="cmake"
-options="!check" # no tests
-subpackages="$pkgname-doc"
-source="catimg-$pkgver.tar.gz::https://github.com/posva/catimg/archive/$pkgver.tar.gz"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- $CMAKE_CROSSOPTS .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="a3c0ed92a797dc6e213e202cf36d4da32f4baba0ba4dc60875f4df152e3df10ec2276723e10826ce13ac1ddb4f32f75e0d6851767003032ecaa73fe0851e6559 catimg-2.6.0.tar.gz"
diff --git a/testing/cava/APKBUILD b/testing/cava/APKBUILD
index 6f2b7e759c7..83d86e70f2d 100644
--- a/testing/cava/APKBUILD
+++ b/testing/cava/APKBUILD
@@ -1,19 +1,18 @@
# Contributor: Galen Abell <galen@galenabell.com>
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=cava
-pkgver=0.7.0
+pkgver=0.10.1
pkgrel=0
-pkgdesc="Console-based Audio Visualizer for ALSA"
-url="https://karlstav.github.io/cava"
+pkgdesc="Console-based Audio Visualizer"
+url="https://github.com/karlstav/cava"
arch="all"
license="MIT"
-depends="alsa-lib iniparser"
-makedepends="autoconf automake libtool m4 fftw-dev ncurses-dev"
+makedepends="autoconf automake alsa-lib-dev libtool m4 fftw-dev ncurses-dev iniparser-dev xxd pulseaudio-dev pipewire-dev sdl2-dev"
source="cava-$pkgver.tar.gz::https://github.com/karlstav/cava/archive/$pkgver.tar.gz"
prepare() {
default_prepare
- autoreconf -fi
+ ./autogen.sh
}
build() {
@@ -35,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="e7693ce6e571cc0aea789fd5b9b04c1f123678ddcd21e1e3e2d90133eb67634c0813f9b35cf3db9a87786c9cf61a5c3fd6a104a20e0bf5ed1b9a71797429b984 cava-0.7.0.tar.gz"
+sha512sums="
+8a71628bae6621ef925f5fed94659b07d9220e142c17514bed79e1105a9160494bf3978267c9de3ab6cd2126ece50419fb4245ccf190f3a299fc0cfb111be354 cava-0.10.1.tar.gz
+"
diff --git a/testing/cawbird/APKBUILD b/testing/cawbird/APKBUILD
deleted file mode 100644
index 1ff17765232..00000000000
--- a/testing/cawbird/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=cawbird
-pkgver=1.0.5
-pkgrel=0
-pkgdesc="Fork of the Corebird GTK Twitter client that continues to work with Twitter"
-url="https://ibboard.co.uk/cawbird"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="gtk+3.0-dev gspell-dev gst-plugins-base-dev libsoup-dev json-glib-dev meson ninja sqlite-dev vala"
-options="!check" # Error creating directory /home/pmos/.config/cawbird: No such file or directory
-source="$pkgname-$pkgver.tar.gz::https://github.com/IBBoard/cawbird/archive/v$pkgver.tar.gz"
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="4401fc4427f2eddf667de6c8bbc32643079d8f875d850a64ae85112ce4eba16cc8201407291376af996ba8fbb5c6af4ca78d89fcb7eeb9790043156ae92b65bd cawbird-1.0.5.tar.gz"
diff --git a/testing/ccrtp/APKBUILD b/testing/ccrtp/APKBUILD
new file mode 100644
index 00000000000..69a0d10edca
--- /dev/null
+++ b/testing/ccrtp/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=ccrtp
+pkgver=2.1.2
+pkgrel=0
+pkgdesc="An implementation of RTP, the real-time transport protocol from the IETF"
+url="https://www.gnu.org/software/ccrtp/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="cmake samurai libgcrypt-dev commoncpp-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://ftp.gnu.org/gnu/ccrtp/ccrtp-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DLIB_VERSION=3.1.0 \
+ -DSOVERSION=3 # ???
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a835f57a0eef7cba11c55c93ce2f11ebd8ab4099e7c723043c51e4872f3da87af946fc50fac18b47ea5d72b2a1227b377810e9134c1f3a8982d4ce5944d043e9 ccrtp-2.1.2.tar.gz
+"
diff --git a/testing/ccze/001-fix-autoconf.patch b/testing/ccze/001-fix-autoconf.patch
new file mode 100644
index 00000000000..ffc24234f04
--- /dev/null
+++ b/testing/ccze/001-fix-autoconf.patch
@@ -0,0 +1,24 @@
+Fixes configure.ac for use with newer autoconf versions
+
+diff --git a/configure.ac b/configure.ac
+index d488c23..91da296 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -89,7 +89,7 @@ AC_SUBST(PCRE_LIBS)
+ AC_MSG_RESULT(found)
+
+ AC_MSG_CHECKING(for suboptarg)
+-AC_RUN_IFELSE(AC_LANG_PROGRAM(
++AC_RUN_IFELSE([AC_LANG_SOURCE(
+ [[#include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -101,7 +101,7 @@ extern char *suboptarg;
+ char *value;
+
+ getsubopt (&subopts, empty_subopts, &value);
+- exit (!suboptarg);]]), [have_suboptarg="yes"],
++ exit (!suboptarg);]])], [have_suboptarg="yes"],
+ [have_suboptarg="no"], [have_suboptarg="no"])
+ AC_MSG_RESULT(${have_suboptarg})
+ case ${have_suboptarg} in
diff --git a/testing/ccze/002-fix-error_t.patch b/testing/ccze/002-fix-error_t.patch
new file mode 100644
index 00000000000..1fc308d3552
--- /dev/null
+++ b/testing/ccze/002-fix-error_t.patch
@@ -0,0 +1,41 @@
+Defines error_t
+
+diff --git a/src/ccze.h b/src/ccze.h
+index 6f73999..c51618d 100644
+--- a/src/ccze.h
++++ b/src/ccze.h
+@@ -22,6 +22,8 @@
+ #ifndef _CCZE_H
+ #define _CCZE_H 1
+
++#include "error_t.h"
++
+ #ifdef HAVE_SYSTEM_H
+ # include "system.h"
+ #endif
+diff --git a/src/error_t.h b/src/error_t.h
+new file mode 100644
+index 0000000..b6c312b
+--- /dev/null
++++ b/src/error_t.h
+@@ -0,0 +1,20 @@
++/* Define error_t.
++ Copyright (C) 1991-2020 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++ The GNU C Library 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.1 of the License, or (at your option) any later version.
++ The GNU C Library 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
++ Lesser General Public License for more details.
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, see
++ <https://www.gnu.org/licenses/>. */
++#ifndef __error_t_defined
++# define __error_t_defined 1
++
++typedef int error_t;
++
++#endif
diff --git a/testing/ccze/APKBUILD b/testing/ccze/APKBUILD
new file mode 100644
index 00000000000..e14536d4a6e
--- /dev/null
+++ b/testing/ccze/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: mcrmonkey <git@manchestermonkey.co.uk>
+# Maintainer: mcrmonkey <git@manchestermonkey.co.uk>
+pkgname=ccze
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="A fast log colorizer written in C, intended to be a drop-in replacement for colorize (http://colorize.raszi.hu)"
+options="!check" # No testsuite
+url="https://git.madhouse-project.org/archive/ccze"
+arch="all"
+license="GPL-2.0-only"
+makedepends="musl-dev pcre-dev ncurses-dev autoconf automake"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver-3.tar.gz::https://git.madhouse-project.org/archive/ccze/archive/ccze-$pkgver-2.tar.gz
+ 001-fix-autoconf.patch
+ 002-fix-error_t.patch"
+builddir="$srcdir/ccze"
+
+prepare() {
+ default_prepare
+ update_config_guess
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+62b5065fd77f04f879af63806ae32ac11b5205e8570e8c522714cfadf72d4d1a165a1968878c59593709f754a797ea7289d2b9c959fcfaba52f300027a0981bc ccze-0.2.1-3.tar.gz
+e869de966de949d270983531c4a2dd7dfcf08e0d9cd390063c128a6316d1f39b1b118bd7c8ad4b589aee468a08d578a5dfdb2c7eeb158926129aaa72fbc8034a 001-fix-autoconf.patch
+2100de615d10ac466fe68f2533436d4c7a37bc599eb43489e208d7c5706a400423adc3d8c46dfe5beb1d5e05e8c6709c6318c133fb8b72c467abaaaba39af544 002-fix-error_t.patch
+"
diff --git a/testing/cdba/APKBUILD b/testing/cdba/APKBUILD
new file mode 100644
index 00000000000..0bedb12388b
--- /dev/null
+++ b/testing/cdba/APKBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Caleb Connolly <caleb.connolly@linaro.org>
+pkgname=cdba
+pkgver=1.0
+pkgrel=0
+pkgdesc="Tool for remote board access"
+url="https://github.com/linux-msm/cdba"
+arch="all"
+license="BSD-3-Clause"
+subpackages="$pkgname-server"
+makedepends="
+ eudev-dev
+ linux-headers
+ libftdi1-dev
+ libgpiod-dev
+ meson
+ yaml-dev
+"
+source="
+ cdba-v$pkgver.tar.gz::https://github.com/linux-msm/cdba/archive/v$pkgver.tar.gz
+"
+options="!check"
+
+build() {
+ abuild-meson . output \
+ -Dserver=enabled
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+server() {
+ amove usr/bin/cdba-server
+
+ install -Dm644 "$builddir"/shell/README -t \
+ "$subpkgdir"/usr/share/cdba/shell
+ install -Dm644 "$builddir"/shell/cdba-shell -t \
+ "$subpkgdir"/usr/share/cdba/shell
+ install -Dm644 "$builddir"/shell/post-receive -t \
+ "$subpkgdir"/usr/share/cdba/shell
+ install -Dm644 "$builddir"/shell/setup.sh -t \
+ "$subpkgdir"/usr/share/cdba/shell
+ install -Dm644 "$builddir"/shell/update -t \
+ "$subpkgdir"/usr/share/cdba/shell
+}
+
+sha512sums="
+c543034f65e66c59c36f69740478c24502f2c3dbf4d4660cf37a0d06158395030147b923a35f055842358886bee7d2e6369105e67c0032b50e970aa1ff45db16 cdba-v1.0.tar.gz
+"
diff --git a/testing/cddlib/APKBUILD b/testing/cddlib/APKBUILD
new file mode 100644
index 00000000000..f62b195b3a9
--- /dev/null
+++ b/testing/cddlib/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=cddlib
+pkgver=0.94m
+pkgrel=2
+pkgdesc="Library implementing Double Description Method for convex polyhedra"
+url="https://people.inf.ethz.ch/fukudak/cdd_home"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="gmp-dev"
+source="https://github.com/cddlib/cddlib/releases/download/$pkgver/cddlib-$pkgver.tar.gz"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-tools:_tools
+ $pkgname-doc
+ "
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_tools() {
+ pkgdesc="$pkgdesc (utilities)"
+ amove usr/bin
+}
+
+sha512sums="
+50997bda38c36990456345881dc1eac65b1880aa510ea3812ae46a122ba7696bf3577f2b6976ff16811ee00f0a920c8ed6f1e7de0a4060bfaa96def11bab816e cddlib-0.94m.tar.gz
+"
diff --git a/testing/cdist/APKBUILD b/testing/cdist/APKBUILD
index 6c8b5fc3f95..625b9bcc29f 100644
--- a/testing/cdist/APKBUILD
+++ b/testing/cdist/APKBUILD
@@ -1,21 +1,31 @@
-# Contributor: Lucas Ramage <ramage.lucas@protonmail.com>
-# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
+# Contributor: Lucas Ramage <lucas.ramage@infinite-omicron.com>
+# Maintainer: Lucas Ramage <lucas.ramage@infinite-omicron.com>
pkgname=cdist
-pkgver=6.0.3
-pkgrel=1
+pkgver=7.0.0
+pkgrel=5
pkgdesc="A Usable Configuration Management System"
-arch="noarch"
-url="https://www.cdi.st/"
-options="!check"
+url="https://www.cdi.st"
license="GPL-3.0-or-later"
+arch="noarch"
depends="python3"
-source="$pkgname-$pkgver.tar.gz::https://code.ungleich.ch/ungleich-public/$pkgname/uploads/d7ea119847fbc79658ef574470a99512/${pkgname}-${pkgver}.tar.gz"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver-1.tar.gz::https://code.ungleich.ch/ungleich-public/cdist/archive/$pkgver.tar.gz"
+builddir="$srcdir/cdist"
+
+build() {
+ echo "VERSION = \"$pkgver\"" > cdist/version.py
+ python3 setup.py build
+}
+
+check() {
+ python3 -m unittest discover
+}
package() {
- ./bin/${pkgname} 2> /dev/null
- python3 setup.py build install --root="${pkgdir}"
- find "$pkgdir" -type d -exec chmod 0755 {} \;
- find "$pkgdir" -type f -exec chmod a+r {} \;
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="0d386531db3f61bb2aa93a81dbb64c4fef3199b8b21cc11bafd6cf7b9955e71ad2488b16f8d4b6f55404e1cf506cf507d4453f67f7f2030855e0303ff4a30b26 cdist-6.0.3.tar.gz"
+sha512sums="
+88c6f7ff68c42dc7db37a5df1fa48ee06b1dc505ec78148bc65923dab68c9dbcf302dc2fb7197f43202ffbcb11c3a82b7303398a805b445f18e43b6fec30c813 cdist-7.0.0-1.tar.gz
+"
diff --git a/testing/cdogs-sdl/APKBUILD b/testing/cdogs-sdl/APKBUILD
index 3b21ffe55ce..1f6dab8adee 100644
--- a/testing/cdogs-sdl/APKBUILD
+++ b/testing/cdogs-sdl/APKBUILD
@@ -1,25 +1,42 @@
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=cdogs-sdl
-pkgver=0.7.3
-pkgrel=1
+pkgver=2.1.0
+pkgrel=0
pkgdesc="Classic overhead run-and-gun game"
url="https://cxong.github.io/cdogs-sdl/"
arch="all"
-license="GPL-1.0-only"
-makedepends="cmake sdl2_image-dev sdl2-dev sdl2_mixer-dev mesa-dev"
+license="GPL-2.0-or-later AND BSD-2-Clause"
+makedepends="
+ cmake
+ gtk+3.0-dev
+ mesa-dev
+ samurai
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_mixer-dev
+ "
options="!check" #make check not implemented
-source="$pkgname-$pkgver.tar.gz::https://github.com/cxong/cdogs-sdl/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cxong/cdogs-sdl/archive/$pkgver.tar.gz
+ no-werror.patch
+ "
build() {
- cmake CMakeLists.txt \
- -DCMAKE_INSTALL_PREFIX=/usr \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr/share/cdogs-sdl/ \
-DCDOGS_DATA_DIR=/usr/share/cdogs-sdl/ \
- -DCMAKE_BUILD_TYPE=None
- make
+ -DCMAKE_BUILD_TYPE=None \
+ -Wno-dev
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ mv "$pkgdir"/usr/share/cdogs-sdl/bin/ "$pkgdir"/usr/bin/
+ mv "$pkgdir"/usr/share/cdogs-sdl/share/* "$pkgdir"/usr/share/
}
-sha512sums="9f144a01aac60a9ebd62490e6cf0767d54464557c00233b03a0d6641a9c031e57eccf2cb27033127f197c5da836e974756d8f4b9c537419d2161036c9f87e2fa cdogs-sdl-0.7.3.tar.gz"
+
+sha512sums="
+92b82a94cd73c7e33e141878db6ee71ca1e164a41c79e0c575aa02f4121506496e2e8e6bbef1eb239c7b145b90c0a49c3f31f4cc6d8817f75e91f5554b6d6d05 cdogs-sdl-2.1.0.tar.gz
+d4eedbfe425d659ee3fff0203f2dd49640da394db895964416ea86a98f601ee8136ac129f1c3c48b9bd525bf5e34854a861bfc881fb997ae7c61a01227137a89 no-werror.patch
+"
diff --git a/testing/cdogs-sdl/no-werror.patch b/testing/cdogs-sdl/no-werror.patch
new file mode 100644
index 00000000000..66ef6681bf7
--- /dev/null
+++ b/testing/cdogs-sdl/no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8c4a2d1..4fe06b7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -132,7 +132,7 @@ else()
+ endif()
+ endif()
+ if(NOT BEOS AND NOT HAIKU)
+- add_definitions(-Winline -Werror)
++ add_definitions(-Winline)
+ set(EXTRA_LIBRARIES "m")
+ endif()
+ endif()
diff --git a/testing/cdrdao/APKBUILD b/testing/cdrdao/APKBUILD
deleted file mode 100644
index f9c74e9137f..00000000000
--- a/testing/cdrdao/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=cdrdao
-pkgver=1.2.4
-pkgrel=0
-pkgdesc="record audio/data CD-Rs in disk-at-once mode"
-url="http://cdrdao.sourceforge.net/index.html"
-arch="all"
-license="GPL-2.0-only"
-makedepends="lame libmad libvorbis libao linux-headers"
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/cdrdao/cdrdao-$pkgver.tar.bz2"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --without-xdao \
- --with-lame \
- --with-ogg-support \
- --with-mp3-support
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="41f20275ca44ec9003d0e3ed280cc98012353005cda6f544ebfa44f3f79f991845c0ef17af74db9456f1bacc342a7fd48c9e942d757927a4a9ff91808f7bbb09 cdrdao-1.2.4.tar.bz2"
diff --git a/testing/celery/APKBUILD b/testing/celery/APKBUILD
deleted file mode 100644
index 30854cfa475..00000000000
--- a/testing/celery/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=celery
-pkgver=4.4.2
-pkgrel=0
-pkgdesc="An asynchronous task queue/job queue based on distributed message passing"
-url="http://www.celeryproject.org/"
-arch="noarch !s390x" # lmited by py3-kombu
-license="Apache-2.0"
-depends="py3-urllib3 py3-redis py3-vine py3-kombu py3-billiard py3-tz"
-makedepends="python3-dev py3-setuptools"
-install="$pkgname.pre-install"
-source="https://files.pythonhosted.org/packages/source/c/celery/celery-$pkgver.tar.gz
- celery.confd
- celery.initd"
-pkgusers="celery"
-pkggroups="celery"
-subpackages="$pkgname-openrc"
-provides="py3-celery"
-
-# TODO: requires many many many dependencies
-options="!check"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- install -dm755 "$pkgdir/$confdir"
- install -dm755 "$pkgdir/$confdir/conf.d"
-
- # install scripts
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
-
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- python3 setup.py test
-}
-
-sha512sums="2d0aaf1cb51db162b55f679de194404cc596ac08b47e52581b1bc1d8b39546b44ec682d9eba64f5341884b62e846fb5df8feb2ad11f5213af0384656124abaf4 celery-4.4.2.tar.gz
-f9458bce0d8990de646df564bec96baa0e45867f44e41380d38520905e00c941b1ce261314bb78edaa14c591e0aa9386d24c58a61f69fb0fecc616c34a24dea1 celery.confd
-ff8c0451efa7157fd61f2335f4187bef6cbdd51856c7cfad4de02244c6c5ca7c584f9108731b52f020fee866365d9f092ded266c90d13cb34e92a7ffb63fed57 celery.initd"
diff --git a/testing/celery/celery.confd b/testing/celery/celery.confd
deleted file mode 100644
index 664ec4a84df..00000000000
--- a/testing/celery/celery.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-CELERY_USER=celery
-CELERY_LOG=/var/log/celery.log
-CELERY_REDIR="1>/dev/null 2>> ${CELERY_LOG}"
-CELERY_OPTS="-A celeryapp -B --loglevel=info $CELERY_REDIR"
diff --git a/testing/celery/celery.initd b/testing/celery/celery.initd
deleted file mode 100644
index 0d45cc98c33..00000000000
--- a/testing/celery/celery.initd
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-description="celery queue worker"
-
-: ${CELERY_USER:="celery"}
-: ${CELERY_GROUP:="$(id -gn $LS_USER)"}
-
-pidfile="/run/$RC_SVCNAME.sd.pid"
-supervise_daemon_args="-u $CELERY_USER -g $CELERY_GROUP -p $pidfile"
-command=/usr/bin/celery
-command_args="${CELERY_OPTS}"
-
-depends() {
- use net
-}
diff --git a/testing/celery/celery.pre-install b/testing/celery/celery.pre-install
deleted file mode 100644
index 05ba0f501a3..00000000000
--- a/testing/celery/celery.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-addgroup -S celery 2>/dev/null
-adduser -S -D -H -h /usr/share/celery -s /sbin/nologin -G celery -g celery celery 2>/dev/null
-
-exit 0
-
diff --git a/testing/cemu/APKBUILD b/testing/cemu/APKBUILD
new file mode 100644
index 00000000000..d58ec102d91
--- /dev/null
+++ b/testing/cemu/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: Joshua Murphy <joshuamurphy@posteo.net>
+# Maintainer: Joshua Murphy <joshuamurphy@posteo.net>
+pkgname=cemu
+pkgver=2.0.61
+_pkgver=2.0-61
+pkgrel=1
+_cubeb=2071354a69aca7ed6df3b4222e305746c2113f60
+_imgui=f65bcf481ab34cd07d3909aab1479f409fa79f2f
+pkgdesc="Wii U Emulator"
+url="https://cemu.info"
+arch="x86_64"
+license="MPL-2.0"
+makedepends="
+ boost-dev
+ clang
+ cmake
+ curl-dev
+ fmt-dev
+ glm-dev
+ glslang-dev
+ glslang-static
+ gtk+3.0-dev
+ hidapi-dev
+ libpng-dev
+ libucontext-dev
+ libusb-dev
+ libzip-dev
+ lld
+ llvm
+ mesa-dev
+ nasm
+ openssl-dev
+ pugixml-dev
+ pulseaudio-dev
+ rapidjson-dev
+ samurai
+ sdl2-dev
+ speexdsp-dev
+ vulkan-loader-dev
+ wayland-dev
+ wxwidgets-dev
+ zarchive-dev
+ zlib-dev
+ zstd-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$_pkgver.tar.gz::https://github.com/cemu-project/Cemu/archive/v$_pkgver.tar.gz
+ cubeb-$_cubeb.tar.gz::https://github.com/mozilla/cubeb/archive/$_cubeb.tar.gz
+ imgui-$_imgui.tar.gz::https://github.com/ocornut/imgui/archive/$_imgui.tar.gz
+ cmake-fixes.patch
+ execinfo.patch
+ "
+builddir="$srcdir/Cemu-$_pkgver"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ rmdir dependencies/cubeb
+ rmdir dependencies/imgui
+
+ ln -sfv "$srcdir"/cubeb-$_cubeb dependencies/cubeb
+ ln -sfv "$srcdir"/imgui-$_imgui dependencies/imgui
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ export CC=clang
+ export CXX=clang++
+ export LDFLAGS="$LDFLAGS -fuse-ld=lld -lucontext"
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DENABLE_DISCORD_RPC=OFF \
+ -DENABLE_VCPKG=OFF \
+ -DPORTABLE=OFF \
+ -DUSE_SANITIZERS=OFF \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/
+ cp -a bin/ "$pkgdir"/usr/lib/cemu
+
+ install -Dm755 /dev/stdin "$pkgdir"/usr/bin/cemu <<- EOF
+ #!/bin/sh
+ exec /usr/lib/cemu/Cemu_release "\$@"
+ EOF
+}
+
+lang() {
+ pkgdesc="Translations for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ amove usr/lib/cemu/resources/??
+}
+
+sha512sums="
+573b9795201066a6a1375095f586d08df1c01c8be609a638d1c3164c99e73468357199912079c8099608716bd631dc609bf86a12528eaf72bdbafb4a70caf0ff cemu-2.0-61.tar.gz
+64a25d58f6a842947ac8ee1125574fc6a34b261e97a11a9fcdf27cccaf35dad49f12f3f2d8abb1e057932059629c3e568421cf2c09b064d76de21c1a8d8542a3 cubeb-2071354a69aca7ed6df3b4222e305746c2113f60.tar.gz
+6e5bbede4435bd7248ae426eed519d702c5770ac211d2cf18c4b9f9fa7e83b901e4f80662c0f39e1d688bc3eaf674dd21c9d3e42e7324e5ab9bc16af67c13429 imgui-f65bcf481ab34cd07d3909aab1479f409fa79f2f.tar.gz
+79d1fd6c733094a50e11622ec611cd06ca609bb088210ba00534f846209dc7f1f09f8308ba0c04f60b37871218155dd1865df290ecffdc4275d6c5c703da6e6a cmake-fixes.patch
+0467091365c2cdb475bb6034115be4998af71803e351e5fdf7591a640eb328a22c7cc27c2760096410e2fd597989e6986e3fb6fceb91acde5ea47cdf9ba2bce6 execinfo.patch
+"
diff --git a/testing/cemu/cmake-fixes.patch b/testing/cemu/cmake-fixes.patch
new file mode 100644
index 00000000000..f7e96a4bbbc
--- /dev/null
+++ b/testing/cemu/cmake-fixes.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c988508..d2fa47d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -120,6 +120,8 @@ endif ()
+
+ option(ENABLE_WXWIDGETS "Build with wxWidgets UI (Currently required)" ON)
+
++find_package(PkgConfig REQUIRED)
++
+ set(THREADS_PREFER_PTHREAD_FLAG true)
+ find_package(Threads REQUIRED)
+ find_package(SDL2 REQUIRED)
+@@ -135,6 +137,7 @@ find_package(OpenSSL COMPONENTS Crypto SSL REQUIRED)
+ find_package(glm REQUIRED)
+ find_package(fmt 9 REQUIRED)
+ find_package(PNG REQUIRED)
++pkg_check_modules(EGL REQUIRED egl IMPORTED_TARGET GLOBAL)
+
+ # glslang versions older than 11.11.0 define targets without a namespace
+ if (NOT TARGET glslang::SPIRV AND TARGET SPIRV)
diff --git a/testing/cemu/execinfo.patch b/testing/cemu/execinfo.patch
new file mode 100644
index 00000000000..5c2dc0fbdbb
--- /dev/null
+++ b/testing/cemu/execinfo.patch
@@ -0,0 +1,42 @@
+diff --git a/src/Common/ExceptionHandler/ExceptionHandler_posix.cpp b/src/Common/ExceptionHandler/ExceptionHandler_posix.cpp
+index 34430e3..35df995 100644
+--- a/src/Common/ExceptionHandler/ExceptionHandler_posix.cpp
++++ b/src/Common/ExceptionHandler/ExceptionHandler_posix.cpp
+@@ -1,5 +1,5 @@
+ #include <signal.h>
+-#include <execinfo.h>
++//#include <execinfo.h>
+ #include <string.h>
+ #include <string>
+ #include "config/CemuConfig.h"
+@@ -76,10 +76,10 @@ void handlerDumpingSignal(int sig, siginfo_t *info, void *context)
+ }
+
+ void* backtraceArray[128];
+- size_t size;
++ size_t size = 0;
+
+ // get void*'s for all entries on the stack
+- size = backtrace(backtraceArray, 128);
++ //size = backtrace(backtraceArray, 128);
+ // replace the deepest entry with the actual crash address
+ #if defined(ARCH_X86_64) && BOOST_OS_LINUX > 0
+ ucontext_t *uc = (ucontext_t *)context;
+@@ -89,7 +89,7 @@ void handlerDumpingSignal(int sig, siginfo_t *info, void *context)
+ CrashLog_WriteLine(fmt::format("Error: signal {}:", sig));
+
+ #if BOOST_OS_LINUX
+- char** symbol_trace = backtrace_symbols(backtraceArray, size);
++ char** symbol_trace = NULL;
+
+ if (symbol_trace)
+ {
+@@ -98,7 +98,7 @@ void handlerDumpingSignal(int sig, siginfo_t *info, void *context)
+ }
+ else
+ {
+- CrashLog_WriteLine("Failed to read backtrace");
++ CrashLog_WriteLine("No backtraces");
+ }
+ #else
+ backtrace_symbols_fd(backtraceArray, size, STDERR_FILENO);
diff --git a/testing/certbot-dns-njalla/APKBUILD b/testing/certbot-dns-njalla/APKBUILD
new file mode 100644
index 00000000000..dbcd2e85b09
--- /dev/null
+++ b/testing/certbot-dns-njalla/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Nulo <git@nulo.in>
+# Maintainer: Nulo <git@nulo.in>
+pkgname=certbot-dns-njalla
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="Certbot plugin for using the Njalla DNS API"
+url="https://github.com/chaptergy/certbot-dns-njalla"
+# options="!check" # TODO: enable tests
+arch="noarch"
+license="Apache-2.0"
+depends="
+ certbot
+ py3-acme
+ py3-dns-lexicon
+ py3-dnspython
+ "
+makedepends="py3-setuptools"
+checkdepends="
+ py3-mock
+ py3-requests
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/chaptergy/certbot-dns-njalla/archive/v$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python -m unittest discover -p '*_test.py'
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+91223a70bf9f097f5b2f1cd75ce79626dfcb760e3b3146c31d701df4f63e2cfefc83368b4c5b6151415a443108adf2a653e3f38b5eeac859a6f93feb9ecb42c0 certbot-dns-njalla-1.0.2.tar.gz
+"
diff --git a/testing/certigo/APKBUILD b/testing/certigo/APKBUILD
new file mode 100644
index 00000000000..a52f17fcaab
--- /dev/null
+++ b/testing/certigo/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=certigo
+pkgver=1.16.0
+pkgrel=15
+pkgdesc="Utility to examine and validate certificates in a variety of formats"
+url="https://github.com/square/certigo"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/square/certigo/archive/v$pkgver/v$pkgver.tar.gz"
+options="chmod-clean"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -trimpath
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 certigo "$pkgdir"/usr/bin/certigo
+}
+
+sha512sums="
+036f05004d242714ad50d4e8ce2a55d922d1bcb248a3bfcc2a153ca7dfbb12a521ed18bb269a6aebb9754fc69198664544da7fb0bb3b438b70373e2e7bd2e14a certigo-1.16.0.tar.gz
+"
diff --git a/testing/certstrap/APKBUILD b/testing/certstrap/APKBUILD
new file mode 100644
index 00000000000..78ebe02c1ac
--- /dev/null
+++ b/testing/certstrap/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=certstrap
+pkgver=1.3.0
+pkgrel=15
+pkgdesc="Tools to bootstrap CAs, certificate requests, and signed certificates"
+url="https://github.com/square/certstrap"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/square/certstrap/archive/v$pkgver/v$pkgver.tar.gz"
+options="chmod-clean"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -trimpath
+}
+
+check() {
+ # Fix GO 1.18 compatibility
+ # https://github.com/golang/go/issues/41682
+ # SHA1 support will be removed in GO 1.19
+ export GODEBUG=x509sha1=1
+ # Certificates have expired on 13 Mar 2024
+ go test -v -skip 'TestCertificateAuthority|TestCertificateVerify' ./...
+}
+
+package() {
+ install -Dm755 certstrap "$pkgdir"/usr/bin/certstrap
+}
+
+sha512sums="
+f3ef9fb9e581acb028f447ac2e2b924a27d6c652d3be30a1df310f7bfde2c8cc40f5ad0fdba0396fbc6bb332c24853aeedee78a00d5217ca02007130e26c5455 certstrap-1.3.0.tar.gz
+"
diff --git a/testing/cfssl/APKBUILD b/testing/cfssl/APKBUILD
index d4f1bbbed8f..2cf11ff1d73 100644
--- a/testing/cfssl/APKBUILD
+++ b/testing/cfssl/APKBUILD
@@ -1,30 +1,35 @@
-# Contributor:
-# Maintainer:
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
pkgname=cfssl
-pkgver=1.4.1
-pkgrel=1
+pkgver=1.6.4
+pkgrel=6
pkgdesc="Cloudflare PKI and TLS toolkit"
-url="https://cfssl.org"
-arch="all"
+url="https://cfssl.org/"
license="BSD-2-Clause"
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cloudflare/cfssl/archive/v$pkgver.tar.gz"
+arch="all !riscv64" # FTBFS
+options="!check" # TODO: fix and enable tests
+makedepends="go sqlite-dev"
+source="https://github.com/cloudflare/cfssl/archive/v$pkgver/cfssl-$pkgver.tar.gz"
-build() {
- cd "$srcdir"
+export GOFLAGS="$GOFLAGS -trimpath -modcacherw -mod=vendor -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
- mkdir -p src/github.com/cloudflare
- cp -r "$builddir" src/github.com/cloudflare/cfssl
+build() {
+ go build \
+ -ldflags="-X github.com/cloudflare/cfssl/cli/version.version=$pkgver" \
+ -v -o bin/ ./cmd/...
+}
- export GOPATH="$PWD"
- go install -tags pkcs11 github.com/cloudflare/cfssl/cmd/...
+check() {
+ go test ./...
}
package() {
- cd "$srcdir"/bin
-
- mkdir -p "$pkgdir"/usr/bin
- install -m755 "$srcdir"/bin/* "$pkgdir"/usr/bin/
+ install -Dm755 bin/* -t "$pkgdir"/usr/bin/
}
-sha512sums="0aa557708a300e2eaf48a99d55794069530b6842584cdd867a864272b205c89d5abc2acf3a19d34b3b5519a6429b5f55685129638e65d574ad6afe5b7e1e1e8f cfssl-1.4.1.tar.gz"
+sha512sums="
+6327d15dda24bf072958c74f4cd0bf1aa4023f935bb24da7f5655739992970fa777f6771603dd3a6edfee6cd2ed418a2fef335f7209ce88cf07674d592c3110f cfssl-1.6.4.tar.gz
+"
diff --git a/testing/cgal/APKBUILD b/testing/cgal/APKBUILD
deleted file mode 100644
index 617aef9b124..00000000000
--- a/testing/cgal/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=cgal
-pkgver=4.14
-pkgrel=3
-pkgdesc="Efficient and reliable geometric algorithms as C++ library"
-url="https://www.cgal.org/"
-arch="all"
-license="GPL-3.0-or-later custom" # Dual licensed under GPL-3.0+ and commercial
-subpackages="$pkgname-dev $pkgname-doc"
-makedepends="mpfr-dev gmp-dev mesa-dev glu-dev boost-dev cmake zlib-dev"
-source="https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-$pkgver/CGAL-$pkgver.tar.xz"
-builddir="$srcdir/CGAL-$pkgver"
-# Citing from.https://github.com/CGAL/cgal/wiki/Testing#test-suite-directory
-# > The test/ directory is not part of external releases.
-options="!check"
-
-build() {
- mkdir -p build
- cd build
- cmake ../ -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib
- make
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="1f22da098a136c26fd51c7ac401212865dce7cc5110ca6a083ef6f09ead5c03a002bfd16752cb298427b84bd5b4900b52c6514f97ccd0e199ffb28e9fe640c43 CGAL-4.14.tar.xz"
diff --git a/testing/cgiirc/APKBUILD b/testing/cgiirc/APKBUILD
index 7904078d476..8dd72832c53 100644
--- a/testing/cgiirc/APKBUILD
+++ b/testing/cgiirc/APKBUILD
@@ -1,8 +1,8 @@
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=cgiirc
pkgver=0.5.12
-pkgrel=0
+pkgrel=1
pkgdesc="A perl/CGI program to use IRC from a web browser"
url="http://cgiirc.org/"
arch="all"
diff --git a/testing/cgiirc/cgiirc.post-install b/testing/cgiirc/cgiirc.post-install
index f6907c64c5f..8fc4cab7c0d 100644
--- a/testing/cgiirc/cgiirc.post-install
+++ b/testing/cgiirc/cgiirc.post-install
@@ -1,23 +1,26 @@
#!/bin/sh
-echo "*" >&2
-echo "* CGI:IRC has been installed to:" >&2
-echo "* /usr/share/webapps/cgiirc" >&2
-echo "* An config file has been installed to:" >&2
-echo "* /etc/cgiirc/cgiirc.config" >&2
-echo "* If you use lighttpd:" >&2
-echo "* 1) Enable mod_cgi from lighttpd.conf and modify it adding in cgi.assign section:" >&2
-echo "* cgi.assign = ( " >&2
-echo "* ".pl" => "/usr/bin/perl", " >&2
-echo "* ".cgi" => "/usr/bin/perl", " >&2
-echo "* " >&2
-echo "* ) " >&2
-echo "* 2) Create a symlink to /usr/share/webapps/cgiirc:" >&2
-echo "* ln -s /usr/share/webapps/cgiirc /var/www/localhost/htdocs/cgi-bin" >&2
-echo "* This is needed because lighttpd mod_cgi matches cgi-bin dir in order to allow exec cgi." >&2
-echo "* " >&2
-echo "* 3) Restart lighttpd when done." >&2
-echo "* " >&2
-echo "* 4) Go with your browser in http://your.ip.address/cgi-bin/irc.cgi" >&2
-echo "*" >&2
+cat >&2 <<EOF
+*
+* CGI:IRC has been installed to:
+* /usr/share/webapps/cgiirc
+* An config file has been installed to:
+* /etc/cgiirc/cgiirc.config
+* If you use lighttpd:
+* 1) Enable mod_cgi from lighttpd.conf and modify it adding in cgi.assign section:
+* cgi.assign = (
+* ".pl" => "/usr/bin/perl",
+* ".cgi" => "/usr/bin/perl",
+*
+* )
+* 2) Create a symlink to /usr/share/webapps/cgiirc:
+* ln -s /usr/share/webapps/cgiirc /var/www/localhost/htdocs/cgi-bin
+* This is needed because lighttpd mod_cgi matches cgi-bin dir in order to allow exec cgi.
+*
+* 3) Restart lighttpd when done.
+*
+* 4) Go with your browser in http://your.ip.address/cgi-bin/irc.cgi
+*
+EOF
+
exit 0
diff --git a/testing/cglm/APKBUILD b/testing/cglm/APKBUILD
deleted file mode 100644
index b1b7af8e81b..00000000000
--- a/testing/cglm/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Leon Marz <lmarz@cs.uni-frankfurt.de>
-# Maintainer: Leon Marz <lmarz@cs.uni-frankfurt.de>
-pkgname=cglm
-pkgver=0.7.4
-pkgrel=0
-pkgdesc="Highly Optimized Graphics Math (glm) for C"
-url="https://github.com/recp/cglm"
-arch="x86_64 armv7"
-# Currently, the glmc_uniscaled test fails on all other achitectures
-license="MIT"
-makedepends="autoconf automake libtool py3-sphinx py3-sphinx_rtd_theme"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/recp/cglm/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- sh autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
- cd "docs"
- sphinx-build source build
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir/usr/share/doc/cglm"
- cp -a docs/build "$pkgdir/usr/share/doc/cglm"
-}
-
-sha512sums="10d0d455204577161244b539999d0a703136b823ce75061e7b16f034c498e88a0c7665cc0ba2246800938ca394a8334aa610ee3c375396f335597045cad42a8d cglm-0.7.4.tar.gz"
diff --git a/testing/cgo/APKBUILD b/testing/cgo/APKBUILD
new file mode 100644
index 00000000000..107a941b9ea
--- /dev/null
+++ b/testing/cgo/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: KikooDX <kikoodx@paranoici.org>
+# Maintainer: KikooDX <kikoodx@paranoici.org>
+pkgname=cgo
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="Simple terminal gopher client"
+url="https://github.com/kieselsteini/cgo"
+arch="all"
+license="0BSD"
+subpackages="$pkgname-doc"
+options="!check" # there is no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/kieselsteini/cgo/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="bbf0d6f366d34e62411424620a1f31b70a13243104d6bb5c2e7197f5dc34bc517fb2430fb06772e9c7175c83372e2c71729dd3e775afbb89745e27817b840708 cgo-0.6.1.tar.gz"
diff --git a/testing/chamo/APKBUILD b/testing/chamo/APKBUILD
new file mode 100644
index 00000000000..3bd47924e9e
--- /dev/null
+++ b/testing/chamo/APKBUILD
@@ -0,0 +1,95 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=chamo
+pkgver=4.0
+pkgrel=0
+pkgdesc="Emacs-inspired text editor written in and configurable with OCaml"
+url="https://framagit.org/zoggy/chamo"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+depends="
+ font-dejavu
+ font-liberation
+ "
+depends_dev="
+ ocaml-fmt-dev
+ ocaml-integers-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-ocf-dev
+ ocaml-pcre-dev
+ ocaml-ppx_blob-dev
+ ocaml-re-dev
+ ocaml-sedlex-dev
+ ocaml-stk-dev
+ ocaml-uutf-dev
+ ocaml-xmlm-dev
+ ocaml-xtmpl-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+options="!check" # no tests provided
+subpackages="
+ $pkgname-byte
+ $pkgname-dev
+ "
+source="https://framagit.org/zoggy/chamo/-/archive/$pkgver/chamo-$pkgver.tar.bz2"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+
+ rm -v "$pkgdir"/usr/bin/chamo_byte
+}
+
+byte() {
+ pkgdesc="$pkgdesc (bytecode executable)"
+ depends="$depends ocaml-runtime"
+
+ amove usr/bin/chamo.byte
+ ln -sv chamo.byte "$subpkgdir"/usr/bin/chamo_byte
+}
+
+dev() {
+ pkgdesc="$pkgdesc (development files)"
+ depends="$depends_dev"
+
+ amove $_ocamldir
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f83be446a5b0f1178a2e854691973da41d8a1ada12098e9f0d65bde5301a6242a79a58dfb9b2f244a8548b01453eba4788d06b8ab62b8a04b29b9f6cedc31b54 chamo-4.0.tar.bz2
+"
diff --git a/testing/charls/APKBUILD b/testing/charls/APKBUILD
new file mode 100644
index 00000000000..9ce25d5d3bd
--- /dev/null
+++ b/testing/charls/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=charls
+pkgver=2.4.2
+pkgrel=0
+pkgdesc="Optimized implementation of the JPEG-LS standard for lossless and near-lossless image compression"
+url="https://github.com/team-charls/charls"
+arch="all"
+license="BSD-3-Clause"
+makedepends="cmake samurai"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/team-charls/charls/archive/$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+check() {
+ # The testprogram requires "Press any key + 'enter' to exit program"
+ echo "end\n" | ./build/test/charlstest -unittest
+}
+
+sha512sums="
+4f1b587f008956ab6fb9d2473c37a7b1a842633113245be7f8bb29b8c64304a6d580a29fcfca97ba1ac75adedbaf89e29adc4ac9e4117e1af1aa5949dbd34df9 charls-2.4.2.tar.gz
+"
diff --git a/testing/checkpolicy/APKBUILD b/testing/checkpolicy/APKBUILD
index 92b4cbd5320..47cfd2f1bb3 100644
--- a/testing/checkpolicy/APKBUILD
+++ b/testing/checkpolicy/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Tycho Andersen <tycho@docker.com>
pkgname=checkpolicy
-pkgver=2.8
+pkgver=3.6
pkgrel=0
pkgdesc="SELinux policy checker"
url="https://selinuxproject.org/"
@@ -12,18 +12,17 @@ source="https://github.com/SELinuxProject/selinux/archive/checkpolicy-$pkgver.ta
builddir="$srcdir/selinux-checkpolicy-$pkgver/checkpolicy"
build() {
- cd "$builddir"
- make
+ make CFLAGS="$CFLAGS -fcommon"
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="67d88c049ef069a73bfc2663b0049d178dd43b0a3b5ca65716793d5f5bf992082aea4d4261d9d3fa0f9ab2dec3fc042c6f9917bceea40007332f9ac74f5bdb32 checkpolicy-2.8.tar.gz"
+sha512sums="
+a47db91c1277026ff724c6ec50500552e97c77fa63c8df30a0a8e7dce39d9f39b82fef84bd9fd2841ff6a608d2921296ff0e0e4992de53a414163e04ff51733f checkpolicy-3.6.tar.gz
+"
diff --git a/testing/cherrytree/APKBUILD b/testing/cherrytree/APKBUILD
new file mode 100644
index 00000000000..642f2c005fa
--- /dev/null
+++ b/testing/cherrytree/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=cherrytree
+pkgver=1.1.2
+pkgrel=0
+pkgdesc="hierarchical note taking application featuring rich text and syntax highlighting"
+url="https://github.com/giuspen/cherrytree"
+license="GPL-3.0-or-later"
+# s390x: libxml++2.6 missing
+arch="all !s390x"
+makedepends="
+ cmake
+ curl-dev
+ fmt-dev
+ gspell-dev
+ gtkmm3-dev
+ gtksourceviewmm3-dev
+ libxml++-2.6-dev
+ python3
+ samurai
+ spdlog-dev
+ sqlite-dev
+ uchardet-dev
+ vte3-dev
+ "
+checkdepends="xvfb-run"
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://github.com/giuspen/cherrytree/releases/download/v$pkgver/cherrytree_$pkgver.tar.xz"
+builddir="$srcdir/${pkgname}_$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_TESTING=ON \
+ -DAUTO_RUN_TESTING=OFF \
+ -DPYTHON_EXEC=/usr/bin/python3
+ cmake --build build
+}
+
+check() {
+ # Skip broken ExportsMultipleParametersTests.ChecksExports tests
+ #
+ # (run_tests_with_x_1:7077): Gtk-WARNING **: 04:05:18.849:
+ # Found an icon but could not load it. Most likely gdk-pixbuf does not
+ # provide SVG support.
+ #
+ # [ FAILED ] ExportsTests/ExportsMultipleParametersTests.ChecksExports
+ # /testing/cherrytree/src/cherrytree_0.99.44/tests/data_данные
+ # /test_документ.ctb", "--export_to_html_dir")
+ xvfb-run -a ctest --test-dir build -j $JOBS --output-on-failure \
+ -E ExportsMultipleParametersTests.ChecksExports
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+
+ # Remove gmock/gtest files
+ rm -rv "$pkgdir"/usr/include "$pkgdir"/usr/lib
+
+ # bundled breeze-icons
+ rm -rv "$pkgdir"/usr/share/cherrytree/icons
+}
+
+sha512sums="
+39d1e765e3a644966a5571580baf7cd33b2ac65a05efebd31bfe7a6b037359f880309806d95e240d78a3f21dd312b7b4decdcd5cc5e50b48935ea3643a9dcf7e cherrytree_1.1.2.tar.xz
+"
diff --git a/testing/chez-scheme/APKBUILD b/testing/chez-scheme/APKBUILD
deleted file mode 100644
index e353f30ed09..00000000000
--- a/testing/chez-scheme/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=chez-scheme
-pkgver=9.5.2
-pkgrel=0
-pkgdesc="Cisco R6RS Scheme Compiler"
-url="https://github.com/cisco/ChezScheme"
-arch="x86 x86_64" #armv7/aarch64 ports WIP
-license="Apache-2.0"
-makedepends="util-linux-dev ncurses-dev libx11-dev"
-subpackages="$pkgname-doc"
-source="https://github.com/cisco/ChezScheme/releases/download/v$pkgver/csv$pkgver.tar.gz
- remove-xlocale.patch"
-builddir="$srcdir"/csv$pkgver
-options="!check" #No defined checks
-
-build() {
- case "$CARCH" in
- x86) _host=ti3le ;;
- x86_64) _host=ta6le ;;
- armv7) _host=i3nt ;; #void uses arm32le, which is flagged as nonvalid
- aarch64) _host=ta6le ;; #compiler error
- esac
-
- case "$CARCH" in
- x86) conf="--threads" ;;
- x86_64) conf="--threads" ;;
- armv7) ;;
- aarch64) conf="--threads" ;;
- esac
-
- ./configure \
- --installprefix=/usr \
- --temproot=$pkgdir \
- --installschemename="chez" \
- --installscriptname="chez-script" \
- --machine=$_host \
- $conf
-}
-
-package() {
- make install DESTDIR="$pkgdir"
-}
-
-sha512sums="a2dacb8689b49365a33518522df6e8a964f15ec22945c2949c2593612139bf56a755ad269b6c955ac8fed6d6221c6b861f1b0d41a255e2715817b0024c8b9cef csv9.5.2.tar.gz
-29386e6990a4adefcb1bbe7289a27b94dd8d225f2dbcbb1c704ca973263025083a70737a38fa2c815d12036980481b6614d3a332eb05caab2063259896e5b4af remove-xlocale.patch"
diff --git a/testing/chez-scheme/remove-xlocale.patch b/testing/chez-scheme/remove-xlocale.patch
deleted file mode 100644
index c04542b3505..00000000000
--- a/testing/chez-scheme/remove-xlocale.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/c/expeditor.c
-+++ src/c/expeditor.c
-@@ -546,8 +546,5 @@
- #include <sys/ioctl.h>
- #include <wchar.h>
- #include <locale.h>
--#ifndef __GLIBC__
--#include <xlocale.h>
--#endif
-
- #if defined(TIOCGWINSZ) && defined(SIGWINCH) && defined(EINTR)
diff --git a/testing/chiaki/APKBUILD b/testing/chiaki/APKBUILD
new file mode 100644
index 00000000000..d031c1dfe98
--- /dev/null
+++ b/testing/chiaki/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Micheal Smith <xulfer@cheapbsd.net>
+# Maintainer: Micheal Smith <xulfer@cheapbsd.net>
+pkgname=chiaki
+pkgver=2.2.0
+pkgrel=0
+pkgdesc="Open Source PS4 and PS5 remote play client"
+url="https://git.sr.ht/~thestr4ng3r/chiaki"
+arch="all !s390x"
+license="GPL-3.0-or-later"
+makedepends="cmake samurai python3 ffmpeg-dev opus-dev protobuf py3-protobuf
+ py3-setuptools protoc sdl2-dev qt5-qtmultimedia-dev qt5-qtsvg-dev openssl-dev"
+source="$pkgname-$pkgver-src.tar.gz::https://git.sr.ht/~thestr4ng3r/chiaki/refs/download/v$pkgver/chiaki-v$pkgver-src.tar.gz"
+builddir="$srcdir/$pkgname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1d9c02911073776047c472043526f27ab53d5a517e4646b8d2c910401dffd20a5aaebe5737c9cb399665e2334e1a75b2528c3d03a200dc88423141f96127897e chiaki-2.2.0-src.tar.gz
+"
diff --git a/testing/chicago95/APKBUILD b/testing/chicago95/APKBUILD
new file mode 100644
index 00000000000..697b25c95de
--- /dev/null
+++ b/testing/chicago95/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Adam Thiede <me@adamthiede.com>
+# Maintainer: Adam Thiede <me@adamthiede.com>
+pkgname=chicago95
+pkgver=3.0.1
+pkgrel=0
+pkgdesc="Windows 95 gtk theme, icons, and fonts"
+url="https://github.com/grassmunk/chicago95"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="$pkgname-icons"
+subpackages="$pkgname-icons $pkgname-fonts"
+source="$pkgname-$pkgver.tar.gz::https://github.com/grassmunk/Chicago95/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests, just a theme
+builddir="$srcdir/Chicago95-$pkgver"
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/themes/
+ cp -a Theme/Chicago95 "$pkgdir"/usr/share/themes/
+
+ mkdir -p "$pkgdir"/usr/share/icons/
+ cp -a Icons/Chicago95 Icons/Chicago95-tux "$pkgdir"/usr/share/icons/
+
+ mkdir -p "$pkgdir"/usr/share/fonts/Chicago95/
+ cp -a Fonts/bitmap Fonts/vga_font "$pkgdir"/usr/share/fonts/Chicago95/
+}
+
+icons() {
+ amove /usr/share/icons/Chicago95
+ amove /usr/share/icons/Chicago95-tux
+}
+
+fonts() {
+ amove /usr/share/fonts/Chicago95
+}
+
+sha512sums="
+361b871d111f4a7a96680d61c47f1e89a38a26cee3aea1c636b24c4e5a60972b1d79d43200f3f6a2e64f27ff37ca71c781da699cc18461ffdd6f9220741101f9 chicago95-3.0.1.tar.gz
+"
diff --git a/testing/chim/APKBUILD b/testing/chim/APKBUILD
new file mode 100644
index 00000000000..65e6531faf9
--- /dev/null
+++ b/testing/chim/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jeff Dickey <release@chim.sh>
+# Maintainer: Jeff Dickey <release@chim.sh>
+pkgname=chim
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="Cross-platform binary shims with optional remote fetching."
+url="https://chim.sh"
+arch="all !s390x !riscv64 !ppc64le" # limited by cargo
+license="MIT"
+makedepends="
+ bzip2-dev
+ cargo
+ cargo-auditable
+ xz-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jdxcode/chim/archive/refs/tags/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ git init .
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm0755 target/release/"$pkgname" -t "$pkgdir"/usr/bin
+ install -Dm0644 README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+8068c4ac56df1f8bd7cf75a189bf3b773fdbe35733dc430261c41f4400c91a092ee2c30d03cd7936d1775477ba7f2479098eee09a218f766a1698e09b19cdda6 chim-1.1.2.tar.gz
+"
diff --git a/testing/chocolate-doom/10-remove-redundant-demoextend-definition.patch b/testing/chocolate-doom/10-remove-redundant-demoextend-definition.patch
new file mode 100644
index 00000000000..29ee9f6f13f
--- /dev/null
+++ b/testing/chocolate-doom/10-remove-redundant-demoextend-definition.patch
@@ -0,0 +1,25 @@
+From a8fd4b1f563d24d4296c3e8225c8404e2724d4c2 Mon Sep 17 00:00:00 2001
+From: Jordan Christiansen <xordspar0@gmail.com>
+Date: Sun, 15 Mar 2020 16:55:33 -0500
+Subject: [PATCH] Remove redundant demoextend definition
+
+GCC 10 enables -fno-common by default, which causes the linker to fail when
+there are multple definitions of a global variable.
+
+See https://gcc.gnu.org/gcc-10/porting_to.html
+---
+ src/hexen/mn_menu.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c
+index 059f45b3e..a97b7fcd1 100644
+--- a/src/hexen/mn_menu.c
++++ b/src/hexen/mn_menu.c
+@@ -131,7 +131,6 @@ boolean MenuActive;
+ int InfoType;
+ int messageson = true;
+ boolean mn_SuicideConsole;
+-boolean demoextend; // from h2def.h
+
+ // PRIVATE DATA DEFINITIONS ------------------------------------------------
+
diff --git a/testing/chocolate-doom/APKBUILD b/testing/chocolate-doom/APKBUILD
index 5a9b356e590..59244468915 100644
--- a/testing/chocolate-doom/APKBUILD
+++ b/testing/chocolate-doom/APKBUILD
@@ -1,21 +1,21 @@
-# Maintainer: Alex Raschi <raschi.alex@gmail.com>
+# Maintainer: Jordan Christiansen <xordspar0@gmail.com>
pkgname=chocolate-doom
-pkgver=3.0.0
-pkgrel=0
+pkgver=3.0.1
+pkgrel=3
pkgdesc="Portable release of Doom, Heretic, Hexen, and Strife"
url="https://www.chocolate-doom.org"
arch="all"
license="GPL-2.0-or-later"
-depends=""
makedepends="sdl2-dev sdl2_net-dev sdl2_mixer-dev libpng-dev
- libsamplerate-dev mesa-dev"
+ libsamplerate-dev mesa-dev"
subpackages="$pkgname-doc"
options="!check" # no test suite
-source="https://www.chocolate-doom.org/downloads/$pkgver/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="
+ https://www.chocolate-doom.org/downloads/$pkgver/chocolate-doom-$pkgver.tar.gz
+ 10-remove-redundant-demoextend-definition.patch
+"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,8 +27,10 @@ build() {
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ make appdatadir=/usr/share/metainfo DESTDIR="$pkgdir" install
}
-sha512sums="41f235c0d84ef21070636ad0610e97898dfd366fae7f9244bd2aebf8974db98dcf55f70bcab2f93589b9bf31dd421db32e8af88e0f8e0a655d2b9f1d4ead2afd chocolate-doom-3.0.0.tar.gz"
+sha512sums="
+bec5daf5b26a8dd238780cb4e0c23ffc59b97825d323aa67bb6a3279cd243c18c03e899c4cb4b3106ac187330c6421915a14a6a7c0d34cb0ee75d6f29f9dc905 chocolate-doom-3.0.1.tar.gz
+8e5ea517ade7915bf40c4f7b6746ec4055009fcbb76f2e6e7ee52dfaaa5f362bc5cd23b88e91cd098beb5b4f793eb89c4e65da8e125623ab63d6652ba99357f2 10-remove-redundant-demoextend-definition.patch
+"
diff --git a/testing/cilium-cli/APKBUILD b/testing/cilium-cli/APKBUILD
new file mode 100644
index 00000000000..ad99e349c6e
--- /dev/null
+++ b/testing/cilium-cli/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=cilium-cli
+pkgver=0.15.23
+pkgrel=2
+pkgdesc="CLI to install, manage and troubleshoot Kubernetes clusters running Cilium"
+url="https://cilium.io/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/cilium/cilium-cli/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v \
+ -ldflags "-X github.com/cilium/cilium-cli/internal/cli/cmd.Version=v$pkgver" \
+ ./cmd/cilium
+
+ for shell in bash fish zsh; do
+ ./cilium completion $shell > cilium.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 cilium -t "$pkgdir"/usr/bin/
+
+ install -Dm644 cilium.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/cilium
+ install -Dm644 cilium.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/cilium.fish
+ install -Dm644 cilium.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_cilium
+}
+
+sha512sums="
+374a1fad145a8947f42f2bef41c9599996c211fcee4d2261bd6f8ddbe21633ec5cf3b3b69e7416933c3aacd075c06f625ecb2125848d9a77eb4573f6da318376 cilium-cli-0.15.23.tar.gz
+"
diff --git a/testing/cimg/APKBUILD b/testing/cimg/APKBUILD
new file mode 100644
index 00000000000..a1a573ac0b1
--- /dev/null
+++ b/testing/cimg/APKBUILD
@@ -0,0 +1,21 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=cimg
+pkgver=3.3.5
+pkgrel=0
+pkgdesc="Small C++ toolkit for image processing"
+url="https://cimg.eu"
+arch="noarch"
+license="CECILL-C OR CECILL-2.0"
+options="!check" # no test suite
+source="https://github.com/GreycLab/CImg/archive/v.$pkgver/CImg-v.$pkgver.tar.gz"
+builddir="$srcdir/CImg-v.$pkgver"
+
+package() {
+ install -Dm644 CImg.h -t "$pkgdir"/usr/include/
+ install -Dm644 plugins/*.h -t "$pkgdir"/usr/include/CImg/plugins/
+}
+
+sha512sums="
+dfcdaf923de725a706733361358871c8a7e7780b12e3d658de907803f4b31b6b2473c129cff08ca7d9012e66ab5f99e308d2dbc21dd7218f028028a423bcf68d CImg-v.3.3.5.tar.gz
+"
diff --git a/testing/cinny-web/APKBUILD b/testing/cinny-web/APKBUILD
new file mode 100644
index 00000000000..68553f1f692
--- /dev/null
+++ b/testing/cinny-web/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+_pkgname=cinny
+pkgname="$_pkgname"-web
+pkgver=3.2.0
+pkgrel=0
+pkgdesc="A Matrix client focusing primarily on simple, elegant and secure interface. (website)"
+url="https://cinny.in/"
+arch="noarch"
+license="AGPL3"
+makedepends="npm"
+source="
+ $_pkgname-$pkgver.tar.gz::https://github.com/cinnyapp/cinny/archive/v$pkgver.tar.gz
+"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no test suite
+
+build() {
+ export NODE_OPTIONS="--max-old-space-size=4000"
+ npm ci
+ npm run build
+}
+
+package() {
+ local webroot="$pkgdir"/usr/share/webapps/cinny
+ install -d "$webroot"
+ cp -r "$builddir"/dist/* "$webroot"
+
+ install -Dm644 "$builddir"/dist/config.json "$pkgdir"/etc/cinny/config.json
+ ln -sf /etc/cinny/config.json "$pkgdir"/usr/share/webapps/cinny/config.json
+}
+
+sha512sums="
+04f247e6a5685471c5819dffd4f18a3159768586433f25c9e298827cbf0c0bd00e0aa435e5b8a5f035724f83fb27dc345e427d01ea7e7f835c84b940926f2997 cinny-3.2.0.tar.gz
+"
diff --git a/testing/cinny/0001-disable-tauri-updater.patch b/testing/cinny/0001-disable-tauri-updater.patch
new file mode 100644
index 00000000000..484ad76fe10
--- /dev/null
+++ b/testing/cinny/0001-disable-tauri-updater.patch
@@ -0,0 +1,25 @@
+From 48c4ad45995f35b0e458f3e0fdb17ba61bda4bce Mon Sep 17 00:00:00 2001
+From: Krishan <33421343+kfiven@users.noreply.github.com>
+Date: Wed, 20 Jul 2022 20:27:42 +0530
+Subject: [PATCH] disable tauri updater
+
+---
+ src-tauri/tauri.conf.json | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json
+index 10a9d32..1e0707b 100644
+--- a/src-tauri/tauri.conf.json
++++ b/src-tauri/tauri.conf.json
+@@ -49,7 +49,7 @@
+ }
+ },
+ "updater": {
+- "active": true,
++ "active": false,
+ "endpoints": [
+ "https://github.com/cinnyapp/cinny-desktop/releases/download/tauri/release.json"
+ ],
+--
+2.42.0
+
diff --git a/testing/cinny/APKBUILD b/testing/cinny/APKBUILD
new file mode 100644
index 00000000000..5515d25e45d
--- /dev/null
+++ b/testing/cinny/APKBUILD
@@ -0,0 +1,83 @@
+# Contributor: jane400 <alpine@j4ne.de>
+# Maintainer:
+pkgname=cinny
+pkgver=3.2.1
+_releasedate="2023-11-01"
+pkgrel=1
+pkgdesc="Yet another matrix client"
+url="https://cinny.in"
+# limited by tauri platform support
+arch="x86_64 x86 aarch64 armv7"
+license="AGPL-3.0-only"
+depends="gst-plugins-good"
+makedepends="
+ cargo
+ gtk+3.0-dev
+ libayatana-appindicator-dev
+ nodejs
+ npm
+ openssl-dev
+ tauri-cli
+ vips-dev
+ webkit2gtk-dev
+ "
+# Adapted from https://github.com/flathub/in.cinny.Cinny
+source="
+ cinny-$pkgver.zip::https://github.com/cinnyapp/cinny-desktop/releases/download/v$pkgver/cinny-desktop-v$pkgver.zip
+ 0001-disable-tauri-updater.patch
+ in.cinny.Cinny.appdata.xml.in
+ cinny.desktop
+"
+builddir="$srcdir/cinny-desktop"
+_jsdir="$builddir/cinny"
+_rustdir="$builddir/src-tauri"
+options="net !check" # no checks
+
+# secfixes:
+# 2.2.4-r1:
+# - CVE-2023-28103
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL=2
+export NODE_OPTIONS="--max-old-space-size=4000"
+
+prepare() {
+ default_prepare
+
+ # they don't know how to specify dependencies correctly
+ cd "$_jsdir"
+ npm ci --legacy-peer-deps
+
+ cd "$builddir"
+ npm ci
+
+ cd "$_rustdir"
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo-tauri build -b "none"
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin "$_rustdir"/target/release/cinny
+
+ install -Dm644 -t "$pkgdir"/usr/share/applications/ "$srcdir"/cinny.desktop
+
+ # Generate appdata file
+ mkdir -p "$pkgdir"/usr/share/metainfo/
+ export DATE="$_releasedate"
+ export VERSION="$pkgver-$pkgrel"
+ envsubst < "$srcdir"/in.cinny.Cinny.appdata.xml.in > "$pkgdir"/usr/share/metainfo/in.cinny.Cinny.appdata.xml
+
+ install -Dm644 "$_rustdir"/icons/32x32.png "$pkgdir"/usr/share/icons/hicolor/32x32/apps/cinny.png
+ install -Dm644 "$_rustdir"/icons/128x128.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/cinny.png
+ install -Dm644 "$_rustdir"/icons/128x128@2x.png "$pkgdir"/usr/share/icons/hicolor/256x256/apps/cinny.png
+ install -Dm644 "$_rustdir"/icons/icon.png "$pkgdir"/usr/share/icons/hicolor/512x512/apps/cinny.png
+}
+
+sha512sums="
+d46e20e07d35cf2e9477325e3fd3c80e5b43024ff827624d88a577c7f0f507ab1cce147959ce69b4a8f2a781b10234b493c5019bb9b0b50091f4320ca53f5c0d cinny-3.2.1.zip
+0884a48c4a74c13b1fc3ce4a25fa9d44766f0e7ee6f6ec75c287a145e8df9c318684aa3defb2a6e2ab348d164ebb6d8e86d79a6ba97fb3519af49ee476ff9127 0001-disable-tauri-updater.patch
+f5cdcf87cbb78764323ca2dffc1f5a76c8db28f3683cc6e8b8f444fe73638963a1df882f2ec937c470047864aa6398fc1ccf47275ea5f8e11d10560c5f553ade in.cinny.Cinny.appdata.xml.in
+f94ce9099642c1b765399d2d3c617c2cdb63fef6fffa9e5556d8eba7a26090ce429ded5b2a5280d79f9986ab6ad86a6cfdfd27c39dbb06418fc57b22cef313c1 cinny.desktop
+"
diff --git a/testing/cinny/cinny.desktop b/testing/cinny/cinny.desktop
new file mode 100644
index 00000000000..63ab58046e5
--- /dev/null
+++ b/testing/cinny/cinny.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.5
+Type=Application
+
+Name=Cinny
+Comment=Yet another matrix client with simple, elegant and secure interface.
+Icon=cinny
+Exec=cinny
+Terminal=false
+Categories=Network;InstantMessaging;
+Keywords=Matrix;matrix.org;chat;irc;communications;talk;riot;element;fractal;voip;
+X-Purism-FormFactor=Workstation;Mobile;
+SingleMainWindow=true
diff --git a/testing/cinny/in.cinny.Cinny.appdata.xml.in b/testing/cinny/in.cinny.Cinny.appdata.xml.in
new file mode 100644
index 00000000000..c0b092124d9
--- /dev/null
+++ b/testing/cinny/in.cinny.Cinny.appdata.xml.in
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<component type="desktop-application">
+ <id>in.cinny.Cinny</id>
+
+ <name>Cinny</name>
+ <summary>Yet another Matrix client with simple, elegant and secure interface.</summary>
+ <developer_name>Ajay Bura</developer_name>
+
+ <metadata_license>CC0-1.0</metadata_license>
+ <project_license>MIT</project_license>
+
+ <url type="homepage">https://cinny.in</url>
+ <url type="bugtracker">https://gitlab.alpinelinux.org/alpine/aports/-/issues</url>
+ <url type="donation">https://cinny.in/#sponsor</url>
+
+ <supports>
+ <control>pointing</control>
+ <control>keyboard</control>
+ <control>touch</control>
+ </supports>
+
+ <description>
+ <p>
+ Cinny is a matrix.org client focusing primarily on simple, elegant and secure interface protected by e2ee with the power of open source.
+ </p>
+ <p>
+ Features: User-friendly design, Login and register, Full space support, Encryption and emoji verification, Ability to create new rooms and tweak settings, Support replies, markdown, message editing, Dark, light, and black themes.
+ </p>
+ </description>
+
+ <custom>
+ <value key="Purism::form_factor">workstation</value>
+ <value key="Purism::form_factor">mobile</value>
+ </custom>
+
+ <launchable type="desktop-id">cinny.desktop</launchable>
+
+ <!-- We just use the flathub pictures, provides a nice page in appstores -->
+ <screenshots>
+ <screenshot type="default">
+ <image>https://raw.githubusercontent.com/flathub/in.cinny.Cinny/master/resources/screenshot1.png</image>
+ </screenshot>
+ <screenshot>
+ <image>https://raw.githubusercontent.com/flathub/in.cinny.Cinny/master/resources/screenshot2.png</image>
+ </screenshot>
+ <screenshot>
+ <image>https://raw.githubusercontent.com/flathub/in.cinny.Cinny/master/resources/screenshot3.png</image>
+ </screenshot>
+ </screenshots>
+
+ <provides>
+ <binary>cinny</binary>
+ </provides>
+
+ <releases>
+ <release version="$VERSION" date="$DATE"/>
+ </releases>
+ <content_rating type="oars-1.1"/>
+</component>
diff --git a/testing/circuslinux/APKBUILD b/testing/circuslinux/APKBUILD
new file mode 100644
index 00000000000..8db9e1dc1f0
--- /dev/null
+++ b/testing/circuslinux/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=circuslinux
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Clone of the Atari 2600 game Circus Atari"
+url="http://www.newbreedsoftware.com/circus-linux/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="$pkgname-data libmikmod"
+makedepends="bash automake autoconf sdl12-compat-dev sdl_image-dev sdl_mixer-dev"
+subpackages="$pkgname-data::noarch $pkgname-doc"
+source="https://github.com/antonialoytorrens/nbs/raw/master/unix/x/circus-linux/src/circuslinux-$pkgver.tar.gz
+ circuslinux.desktop
+ circuslinux-icon.xpm
+ "
+
+prepare() {
+ default_prepare
+ update_config_sub
+ update_config_guess
+ autoreconf -fvi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --datadir=/usr/share/circuslinux
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install \
+ datadir="$pkgdir"/usr/share/circuslinux \
+ prefix="$pkgdir"/usr
+ install -Dm644 "$srcdir"/circuslinux.desktop \
+ "$pkgdir"/usr/share/applications/circuslinux.desktop
+ install -Dm644 "$srcdir"/circuslinux-icon.xpm \
+ "$pkgdir"/usr/share/pixmaps/circuslinux-icon.xpm
+}
+
+data() {
+ pkgdesc="$pkgdesc (data files)"
+ amove /usr/share/circuslinux
+}
+
+sha512sums="2a5b85c50fcc2363858ba5515c17e9733699b4139e10d9b047aeb4b3c6fc6c75f75f1ea24e8f0e6fc5b6a7d78af8ab6f44f0c572f81271d3a4a6c49548fa139a circuslinux-1.0.3.tar.gz
+087ba7a781dbcfc17e6f4976ba3c4e4381fcd3618b3c4998b2cfc1a4c96aed7883c222d81eaa72c605cf68a138db088e8cdf3441e7e849ffdfa5d82d2e95319c circuslinux.desktop
+15914ac850aecf92ff09f907123356caf77fcdd6c24e76acdd7575279591beb785676aa8452ccc302314d1d04a8320cc10b39942b629197bb6134dea0e9c413c circuslinux-icon.xpm"
diff --git a/testing/circuslinux/circuslinux-icon.xpm b/testing/circuslinux/circuslinux-icon.xpm
new file mode 100644
index 00000000000..596197994e2
--- /dev/null
+++ b/testing/circuslinux/circuslinux-icon.xpm
@@ -0,0 +1,49 @@
+/* XPM */
+static char * circuslinux_icon_xpm[] = {
+"32 32 14 1",
+" c None",
+". c #000000",
+"+ c #FFFFFF",
+"@ c #CCCCCC",
+"# c #B2B2B2",
+"$ c #E5E5E5",
+"% c #FF0000",
+"& c #7F0000",
+"* c #191919",
+"= c #333333",
+"- c #4C4C4C",
+"; c #999999",
+"> c #666667",
+", c #7F7F7F",
+"................................",
+"................................",
+"............+++@#...............",
+"...........+$$$$@#....%%%%......",
+"..........+$$$$$$@#.%%%%%.......",
+".........+$$$$$@.$@#.%%&%%......",
+".........+$$$$$.@.$.#.%%%%%.....",
+"............@$$$$$$$@#.&%&%%....",
+".......%%%%%.$$$$#$$$##.%%%%%...",
+".*..%%%%%%%.@$$$$.$$$.#.%&%..*.*",
+"*.%%%%&%&%%.$$$$...$....%%.*****",
+"=*.%%%%&%%%.$$$$$.$$$.#...=*=*=*",
+"*=*.%%&%%%%.$$$$$#$$#...*=*=*=*=",
+"===.%%%%...@$$$$$$$#*%%%.=======",
+"=-=.%&%.+$$$$$%@$$$.%%%%%.=-=-=-",
+"---.%%%.$.@$$%.%$$$*%%%%%...----",
+"---.%%%.$@@$$%.&;$$.%%%%%.@#.---",
+">->-.%&%..$$$$&.%@$#*%%%.#$#.>->",
+">>>>>.%&%.$$$$;%.%@$#.*.#%@#.>>>",
+">>>>>>.%%.@$$$$;&.&$$$$%&.%.>>>>",
+",>,>,>,.%.#@$$$$@%.&%%&..%.,>,>,",
+",,,,,,,,.+.#@$$$$#%....%%.,,,,,,",
+",,,,,,,,.+@.#$$$$@#%%%%..,,,,,,,",
+";,;,;,;,.+$$.$$$@#@@@#.;,;,;,;,;",
+";;;;;;;;.+$$$@$@#.###.;;;;;;;;;;",
+";;;;;;;;.+$$$$$#.;...;;;;;;;;;;;",
+"#;#;#;#;.+$$$@#.;#;#;#;#;#;#;#;#",
+"########.@$$@#.;################",
+"########.#@$@$#.################",
+"#@#@#@#@#.####.@#@#@#@#@#@#@#@#@",
+"@@@@@@@@@@....@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"};
diff --git a/testing/circuslinux/circuslinux.desktop b/testing/circuslinux/circuslinux.desktop
new file mode 100644
index 00000000000..c7188144422
--- /dev/null
+++ b/testing/circuslinux/circuslinux.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Circus Linux!
+GenericName=Circus Linux
+Comment=Throw the clowns before they fall and hit the balloons with them
+Comment[ca]=Llança els pallassos abans de que caiguin i peta els globus amb ells
+Comment[de]=Werfe die Clowns bevor sie fallen und treffe die Ballone mit ihnen
+Icon=circuslinux-icon
+Exec=circuslinux --fullscreen
+Terminal=false
+StartupNotify=false
+Categories=Application;Game;ArcadeGame;
+Keywords=Game;ArcadeGame;
diff --git a/testing/cjose/APKBUILD b/testing/cjose/APKBUILD
deleted file mode 100644
index 22d7d5b1acd..00000000000
--- a/testing/cjose/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Johan Bergström <bugs@bergstroem.nu>
-# Maintainer: Johan Bergström <bugs@bergstroem.nu>
-pkgname=cjose
-pkgver=0.6.1
-pkgrel=0
-pkgdesc="A C library implementing the Javascript Object Signing and Encryption"
-url="https://github.com/cisco/cjose"
-arch="all !s390x !mips !mips64" # tests fails on s390x
-license="MIT"
-depends="jansson openssl"
-makedepends="check-dev coreutils doxygen jansson-dev openssl-dev perl"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cisco/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver/"
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --enable-static=no \
- --with-openssl=/usr \
- --with-jansson=/usr \
- --disable-doxygen-ps \
- --disable-doxygen-pdf
- make
- # need to invoke doc generation, otherwise it doesn't get installed properly
- make doxygen
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="7ae67a6d19591b3d19b888270ec0ca17df399bea117e42686fc1de39b3741ed9a8816f96d33d090687c49c3123cdc95430a781835a525a02d22561ebf5aaa653 cjose-0.6.1.tar.gz"
diff --git a/testing/ckb-next/983.patch b/testing/ckb-next/983.patch
new file mode 100644
index 00000000000..4cdcd09e334
--- /dev/null
+++ b/testing/ckb-next/983.patch
@@ -0,0 +1,19 @@
+From 76a47f95b442a1ae5a9c7448566eaafd8863ca8d Mon Sep 17 00:00:00 2001
+From: Willow Barraco <contact@willowbarraco.fr>
+Date: Wed, 19 Jul 2023 09:38:09 +0200
+Subject: [PATCH] Fix ckb-next-daemon OpenRC service file
+
+---
+ linux/openrc/ckb-next-daemon.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/linux/openrc/ckb-next-daemon.in b/linux/openrc/ckb-next-daemon.in
+index 4b154fca..26d38d93 100755
+--- a/linux/openrc/ckb-next-daemon.in
++++ b/linux/openrc/ckb-next-daemon.in
+@@ -7,4 +7,4 @@ command="@CMAKE_INSTALL_PREFIX@/bin/ckb-next-daemon"
+ description="Corsair Keyboards and Mice Daemon"
+ pidfile="/dev/input/ckb0/pid"
+ logfile="/var/log/${RC_SVCNAME}.log"
+-start_stop_daemon_args+="--background --stdout ${logfile} --stderr ${logfile}"
++start_stop_daemon_args="$start_stop_daemon_args --background --stdout ${logfile} --stderr ${logfile}"
diff --git a/testing/ckb-next/APKBUILD b/testing/ckb-next/APKBUILD
new file mode 100644
index 00000000000..26c102f7736
--- /dev/null
+++ b/testing/ckb-next/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=ckb-next
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="RGB Driver for Linux"
+url="https://github.com/ckb-next/ckb-next"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ eudev-dev
+ libdbusmenu-qt-dev
+ pulseaudio-dev
+ qt5-qttools-dev
+ qt5-qtx11extras-dev
+ quazip-dev
+ samurai
+ xcb-util-wm-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-daemon
+ $pkgname-daemon-openrc
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/ckb-next/ckb-next/archive/refs/tags/v$pkgver.tar.gz
+ 983.patch
+ "
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_LIBEXECDIR=lib \
+ -DDISABLE_UPDATER=1 \
+ -DUDEV_RULE_DIRECTORY=/usr/lib/udev/rules.d \
+ -DFORCE_INIT_SYSTEM=openrc
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+daemon() {
+ amove usr/bin/ckb-next-daemon
+
+ amove usr/lib/udev/rules.d
+}
+
+openrc() {
+ default_openrc
+
+ install_if="openrc $pkgname-daemon=$pkgver-r$pkgrel"
+}
+
+sha512sums="
+34236199d420b663bb71db9400622bb868a3a0b384b58d5da3f80d2bd7ec9586d4e4ac9caad0b047b8440dc4200e4dd6077f4e0d1edb5a75a1327bf9c9ba9392 ckb-next-0.6.0.tar.gz
+3ea2dfbe671005a013f66334c9d757fccc6dc2cf5bf5ed056ba9a7329378c3de43ee420150a774581e2f3b9b261069f140077ecf1cf6579fa11bfbc003532aa2 983.patch
+"
diff --git a/testing/clapper/APKBUILD b/testing/clapper/APKBUILD
new file mode 100644
index 00000000000..6e0470b62b6
--- /dev/null
+++ b/testing/clapper/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=clapper
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="A GNOME media player built using GJS with GTK4 toolkit and powered by GStreamer with OpenGL rendering"
+url="https://github.com/Rafostar/clapper"
+arch="all !s390x !armhf" # no gjs
+license="GPL-3.0-or-later"
+depends="
+ gjs
+ hicolor-icon-theme
+ "
+makedepends="
+ gjs-dev
+ gst-plugins-base-dev
+ gstreamer-dev
+ gtk4.0-dev
+ meson
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Rafostar/clapper/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+ldpath="/usr/lib/gstreamer-1.0/"
+
+build() {
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+46934a6e1224e88338e85154bbc489dcd006887863fcdc880fa631e5573afa48de32c23fa0bcc9b2206f324e51b6f071d250b340c41a450e9d0c497863feacbf clapper-0.5.2.tar.gz
+"
diff --git a/testing/clatd/APKBUILD b/testing/clatd/APKBUILD
new file mode 100644
index 00000000000..cc21ebb5532
--- /dev/null
+++ b/testing/clatd/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=clatd
+pkgver=1.6
+pkgrel=0
+pkgdesc="A 464XLAT CLAT implementation for Linux"
+url="https://github.com/toreanderson/clatd"
+arch="noarch"
+license="MIT"
+depends="
+ perl
+ perl-io-socket-ip
+ perl-net-dns
+ perl-net-ip
+ tayga
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/toreanderson/clatd/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no checks
+
+package() {
+ install -Dm755 clatd "$pkgdir/usr/bin/clatd"
+ install -Dm755 scripts/clatd.networkmanager "$pkgdir/etc/NetworkManager/dispatcher.d/50-clatd"
+}
+
+sha512sums="
+606d579fb658cca7f9d0dddf9c49671e4b2774aafb1200e9bdd95964e5bd7bb33f313d340ac24a556f97d253b13a0498056b3b971bfb7c9119d3223f90031d74 clatd-1.6.tar.gz
+"
diff --git a/testing/clementine/APKBUILD b/testing/clementine/APKBUILD
new file mode 100644
index 00000000000..57ec3c655e8
--- /dev/null
+++ b/testing/clementine/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=clementine
+pkgver=1.4.0_git20220324
+pkgrel=11
+_tag=1.4.0rc1-814-g2b340da79
+pkgdesc="A modern music player and library organizer"
+url="https://clementine-player.org"
+arch="all"
+license="GPL-3.0-or-later"
+depends="gst-plugins-good"
+makedepends="alsa-lib-dev
+ boost-dev
+ chromaprint-dev
+ cmake
+ fftw-dev
+ glib-dev
+ glu-dev
+ gst-plugins-base-dev
+ gstreamer-dev
+ gtest-dev
+ libcdio-dev
+ libgpod-dev
+ liblastfm-qt-dev
+ libmtp-dev
+ libmygpo-qt-dev
+ libx11-dev
+ projectm-dev
+ protobuf-dev
+ pulseaudio-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ qt5-qtx11extras-dev
+ samurai
+ sparsehash
+ taglib-dev
+"
+checkdepends="gtest-dev"
+source="https://github.com/clementine-player/Clementine/releases/download/$_tag/clementine-$_tag.tar.xz
+ cxx17.patch
+ "
+builddir="$srcdir/clementine-$_tag"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -std=c++17 -Wno-error=format" \
+ -DBUNDLE_PROJECTM_PRESETS=OFF \
+ -DUSE_SYSTEM_PROJECTM=ON \
+ -DUSE_SYSTEM_TAGLIB=ON \
+ -DBUILD_WERROR=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+ cmake --build build --target build_tests
+}
+
+check() {
+ cd "$builddir"/build/tests
+ for test in *_test; do
+ ./$test
+ done
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+38c826e91a23f3d23c30ad9cc34e84c141b4a09badfb08149eff7c6a2ded6e4dabd5a08671a8a82385ba56a2a2d3830ee96e839f86261e0e60180481db4b240a clementine-1.4.0rc1-814-g2b340da79.tar.xz
+7cf24bc057c17188084cc252ec2b049e66d27b272b7cfd50d99e1627a80800b5f81b7e5aa57fd551d70f32f864dbfcf13c19f945bfadbdce71a2671dd4b21cb9 cxx17.patch
+"
diff --git a/testing/clementine/cxx17.patch b/testing/clementine/cxx17.patch
new file mode 100644
index 00000000000..67bb4a79add
--- /dev/null
+++ b/testing/clementine/cxx17.patch
@@ -0,0 +1,73 @@
+diff --git a/3rdparty/libprojectm/CMakeLists.txt b/3rdparty/libprojectm/CMakeLists.txt
+index ce58344..a70f8a2 100644
+--- a/3rdparty/libprojectm/CMakeLists.txt
++++ b/3rdparty/libprojectm/CMakeLists.txt
+@@ -24,8 +24,6 @@ set(BUILD_PROJECTM_STATIC ON)
+ set(DISABLE_NATIVE_PRESETS ON)
+ set(DISABLE_MILKDROP_PRESETS OFF)
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+-
+ pkg_check_modules(GLEW glew)
+
+ if(DISABLE_NATIVE_PRESETS)
+diff --git a/3rdparty/qtsingleapplication/CMakeLists.txt b/3rdparty/qtsingleapplication/CMakeLists.txt
+index 7825ab9..c405256 100644
+--- a/3rdparty/qtsingleapplication/CMakeLists.txt
++++ b/3rdparty/qtsingleapplication/CMakeLists.txt
+@@ -1,5 +1,4 @@
+ cmake_minimum_required(VERSION 3.0.0)
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
+
+ set(SINGLEAPP-SOURCES
+ qtlocalpeer.cpp
+diff --git a/ext/libclementine-common/CMakeLists.txt b/ext/libclementine-common/CMakeLists.txt
+index ad35a51..5aff49a 100644
+--- a/ext/libclementine-common/CMakeLists.txt
++++ b/ext/libclementine-common/CMakeLists.txt
+@@ -2,8 +2,6 @@ include_directories(${PROTOBUF_INCLUDE_DIRS})
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
+-
+ set(SOURCES
+ core/closure.cpp
+ core/latch.cpp
+diff --git a/ext/libclementine-remote/CMakeLists.txt b/ext/libclementine-remote/CMakeLists.txt
+index 70761b4..5f860fb 100644
+--- a/ext/libclementine-remote/CMakeLists.txt
++++ b/ext/libclementine-remote/CMakeLists.txt
+@@ -1,7 +1,5 @@
+ include_directories(${PROTOBUF_INCLUDE_DIRS})
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
+-
+ set(MESSAGES
+ remotecontrolmessages.proto
+ )
+diff --git a/ext/libclementine-tagreader/CMakeLists.txt b/ext/libclementine-tagreader/CMakeLists.txt
+index d7ae9f6..c51dbaf 100644
+--- a/ext/libclementine-tagreader/CMakeLists.txt
++++ b/ext/libclementine-tagreader/CMakeLists.txt
+@@ -3,8 +3,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ include_directories(${CMAKE_SOURCE_DIR}/ext/libclementine-common)
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++0x")
+-
+ set(MESSAGES
+ tagreadermessages.proto
+ )
+diff --git a/gst/moodbar/CMakeLists.txt b/gst/moodbar/CMakeLists.txt
+index 636ef9f..8828674 100644
+--- a/gst/moodbar/CMakeLists.txt
++++ b/gst/moodbar/CMakeLists.txt
+@@ -1,7 +1,6 @@
+ cmake_minimum_required(VERSION 3.0.0)
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -Wall --std=c++0x")
+
+ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+
diff --git a/testing/clevis-extra-pins/APKBUILD b/testing/clevis-extra-pins/APKBUILD
new file mode 100644
index 00000000000..b7d0f11b7f0
--- /dev/null
+++ b/testing/clevis-extra-pins/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=clevis-extra-pins
+pkgver=0_git20230629
+_gitrev=684702e18e07fd3d453b5844051d9a7e424a9bb8
+pkgrel=0
+pkgdesc="Additional pins for Clevis binding framework"
+url="https://github.com/anatol/clevis.go"
+license="GPL-3.0-or-later"
+arch="noarch"
+depends="bash clevis"
+source="https://github.com/anatol/clevis.go/archive/$_gitrev/clevis-extra-pins-$pkgver.tar.gz"
+builddir="$srcdir/clevis.go-$_gitrev"
+options="!check" # no test suite for bash scripts
+
+package() {
+ install -Dm755 \
+ clevis-decrypt-yubikey \
+ clevis-encrypt-yubikey \
+ clevis-encrypt-remote \
+ -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+969bc1812e39be36719ceb82e76876e8fcde874e92a89808a3ce5c19ba4be3d99f4285fa2e8c73ad25e157cc12f03edaa76084e599ec62e08887ec80e258ab7c clevis-extra-pins-0_git20230629.tar.gz
+"
diff --git a/testing/clevis/APKBUILD b/testing/clevis/APKBUILD
new file mode 100644
index 00000000000..99488ae82f0
--- /dev/null
+++ b/testing/clevis/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=clevis
+pkgver=19
+pkgrel=0
+pkgdesc="Pluggable framework for automated decryption"
+url="https://github.com/latchset/clevis"
+license="GPL-3.0-or-later WITH OpenSSL-Exception"
+arch="all"
+depends="bash cryptsetup jose libpwquality"
+makedepends="
+ asciidoc
+ bash-completion-dev
+ meson
+ tpm2-tools
+ cryptsetup-dev
+ jansson-dev
+ jose-dev
+ audit-dev
+ udisks2-dev
+ luksmeta-dev
+ "
+checkdepends="jq keyutils tang"
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-bash-completion
+ "
+source="https://github.com/latchset/clevis/archive/v$pkgver/clevis-$pkgver.tar.gz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+dee19354c908c3843fc295a84b431780d5d6062c77766ee7ce9550636d3623d92b0cd1f6d4c40d57bef14debddc161da2b72289a5d6185cdd17b09a1ef67409a clevis-19.tar.gz
+"
diff --git a/testing/click/0001-configure.ac-fix-building-against-BusyBox-sed.patch b/testing/click/0001-configure.ac-fix-building-against-BusyBox-sed.patch
new file mode 100644
index 00000000000..fe809899700
--- /dev/null
+++ b/testing/click/0001-configure.ac-fix-building-against-BusyBox-sed.patch
@@ -0,0 +1,34 @@
+From 56dd84d0626f99f97ae94d868058367ee46d9a73 Mon Sep 17 00:00:00 2001
+From: Ratchanan Srirattanamet <ratchanan@ubports.com>
+Date: Fri, 22 Mar 2024 17:30:28 +0700
+Subject: [PATCH] configure.ac: fix building against BusyBox sed
+
+Welp, when you are not using `-E` (extended) mode, basic POSIX regex
+means that `+` doesn't have to be escaped. Escaping it confuses some
+version of sed, such as BusyBox sed in recent version of Alpine Linux
+which fails with `sed: bad regex '\+': Repetition not preceded by valid
+expression`.
+
+POSIX regex, why do you have basic mode?
+
+Fixes: https://gitlab.com/ubports/development/core/click/-/issues/26
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index ff69711..f173da9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -154,7 +154,7 @@ AC_SUBST(COVERAGE_LDFLAGS)
+
+ # Python can't accept some characters in our Debian version, so strip those out.
+ AC_SUBST(PYTHON_PACKAGE_VERSION,
+- [$(echo "$PACKAGE_VERSION" | sed -e 's/[[^a-zA-Z0-9.+-]]//g' -e 's/\+//2g')])
++ [$(echo "$PACKAGE_VERSION" | sed -e 's/[[^a-zA-Z0-9.+-]]//g' -e 's/+//2g')])
+
+ AC_CONFIG_FILES([
+ Makefile
+--
+2.44.0
+
diff --git a/testing/click/APKBUILD b/testing/click/APKBUILD
new file mode 100644
index 00000000000..689088bc3f5
--- /dev/null
+++ b/testing/click/APKBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=click
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="Simplified packaging format"
+url="https://gitlab.com/ubports/development/core/click"
+arch="all"
+license="GPL-3.0-only"
+depends_dev="
+ dbus-test-runner-dev
+ gobject-introspection-dev
+ gtest-dev
+ libgee-dev
+ process-cpp-dev
+ properties-cpp-dev
+ "
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ cmake
+ dbus-test-runner
+ gobject-introspection
+ intltool
+ json-glib-dev
+ libtool
+ py3-setuptools
+ vala
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-pyc"
+source="https://gitlab.com/ubports/development/core/click/-/archive/$pkgver/click-$pkgver.tar.gz
+ 0001-configure.ac-fix-building-against-BusyBox-sed.patch
+ "
+options="!check" # Needs dpkg
+
+build() {
+ ./autogen.sh
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-packagekit \
+ --disable-systemd
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir/" PYTHON_INSTALL_FLAGS="--root=$pkgdir/" install
+
+ # Make abuild's version check happy (#386)
+ sed -i s/+ubports//g "$pkgdir"/usr/lib/pkgconfig/*.pc
+}
+
+sha512sums="
+56244d2baa71bbfc168f57e4eea30a5ee0bde6da6e92e2063ede97d2ef93d44123a1af7a0c1610090ae48a9cf77e2daa554e9407454b7f8f53d1f655956e9cb0 click-0.5.2.tar.gz
+40cf041438fae2a916c4277ebedca005338c011697248b69568b49559fe7f2a482199eeafe7704b54e73cf5e85c6c78022c750e29efc083aef1e7213314b3e34 0001-configure.ac-fix-building-against-BusyBox-sed.patch
+"
diff --git a/testing/clinfo/APKBUILD b/testing/clinfo/APKBUILD
new file mode 100644
index 00000000000..45caf136d53
--- /dev/null
+++ b/testing/clinfo/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Dennis Krupenik <dennis@krupenik.com>
+# Maintainer: Dennis Krupenik <dennis@krupenik.com>
+pkgname=clinfo
+pkgver=3.0.23.01.25
+pkgrel=0
+pkgdesc="Print all known information about all available OpenCL platforms and devices in the system"
+url="https://github.com/Oblomov/clinfo"
+arch="all"
+license="CC0-1.0"
+makedepends="opencl-headers opencl-icd-loader-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Oblomov/clinfo/archive/$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+options="!check" # no upstream test suite
+
+build() {
+ make
+}
+
+package() {
+ make BINDIR="$pkgdir"/usr/bin MANDIR="$pkgdir"/usr/share/man install
+}
+
+sha512sums="
+c8e0f33a304a64f1fb4b4ffecb2a62bc10fb5e9777cc8d0cd44bf551e5c94141f04d4cafd28fe6e796bc365e356027297fc9c91359b23b152b1c98d9a128515c clinfo-3.0.23.01.25.tar.gz
+"
diff --git a/testing/cliphist/APKBUILD b/testing/cliphist/APKBUILD
new file mode 100644
index 00000000000..821b622d276
--- /dev/null
+++ b/testing/cliphist/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer:
+pkgname=cliphist
+pkgver=0.5.0
+pkgrel=2
+pkgdesc="wayland clipboard manager"
+url="https://github.com/sentriz/cliphist"
+arch="all"
+license="GPL-3.0" # does not specify if -only
+options="!check net" # no testsuite
+depends="wl-clipboard"
+makedepends="go"
+subpackages="$pkgname-fzf::noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sentriz/cliphist/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build
+}
+
+package() {
+ install -D -m755 cliphist -t "$pkgdir"/usr/bin/
+ install -D -m755 contrib/cliphist-fzf -t "$pkgdir"/usr/bin/
+}
+
+fzf() {
+ pkgdesc="$pkgdesc with fzf picker"
+ depends="$pkgname=$pkgver-r$pkgrel fzf"
+
+ amove usr/bin/cliphist-fzf
+}
+
+sha512sums="
+c1ef41d8efe574850e0a2e77d2d8989e6c17162b4eaef34362ec4f00ec79e5e71a60a9773c452f008e1851665e424a4ef4d3b1aef62338e14134310399be5baa cliphist-0.5.0.tar.gz
+"
diff --git a/testing/clipit/APKBUILD b/testing/clipit/APKBUILD
new file mode 100644
index 00000000000..bad2f7f0b04
--- /dev/null
+++ b/testing/clipit/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=clipit
+pkgver=1.4.5
+pkgrel=2
+pkgdesc="ClipIt is a lightweight GTK+ clipboard manager"
+url="https://github.com/CristianHenzel/ClipIt"
+arch="all"
+license="GPL-3.0-only"
+makedepends="intltool gtk+2.0-dev gtk+3.0-dev xdotool-dev automake autoconf"
+options="!check"
+subpackages="$pkgname-doc"
+source="ClipIt-$pkgver.tar.gz::https://github.com/CristianHenzel/ClipIt/archive/v$pkgver.tar.gz"
+builddir="$srcdir/ClipIt-$pkgver"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-gtk3
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="2bfa2635be9fd63a8bf41842da5a6a4063b442b4e8d011bb1a696ae1e9883408fb327eb331e220d10569ec72c399ca79ac5a94f7fe5402ae4fae11bacbe87b70 ClipIt-1.4.5.tar.gz"
diff --git a/testing/clipman/APKBUILD b/testing/clipman/APKBUILD
deleted file mode 100644
index c8a0daa2e80..00000000000
--- a/testing/clipman/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=clipman
-pkgver=1.5.2
-pkgrel=0
-pkgdesc="A simple clipboard manager for Wayland"
-url="https://github.com/yory8/clipman"
-arch="all"
-license="GPL-3.0-only"
-depends="wl-clipboard"
-makedepends="go"
-options="!check" # no tests
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/yory8/clipman/archive/v$pkgver.tar.gz"
-
-build() {
- go build -o $pkgname
-}
-
-package() {
- install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm644 docs/clipman.1 -t "$pkgdir"/usr/share/man/man1
-}
-sha512sums="26247e07407b32672cf6dfb71c95036eaee5cdcd07231e33374ff1f0d45009407fcaf600d12bd6788da32f0c61e89503b95aff67a28581283d5ab9cee70ceb12 clipman-1.5.2.tar.gz"
diff --git a/testing/cliquer/APKBUILD b/testing/cliquer/APKBUILD
new file mode 100644
index 00000000000..fb53f7b58c9
--- /dev/null
+++ b/testing/cliquer/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=cliquer
+pkgver=1.22
+pkgrel=2
+pkgdesc="Set of C routines for finding cliques in an arbitrary weighted graph"
+url="https://github.com/dimpase/autocliquer"
+arch="all"
+license="GPL-2.0-or-later"
+source="https://github.com/dimpase/autocliquer/releases/download/v$pkgver/cliquer-$pkgver.tar.gz"
+subpackages="
+ $pkgname-tests:_tests
+ $pkgname-static
+ $pkgname-libs
+ $pkgname-dev
+ "
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_tests() {
+ pkgdesc="$pkgdesc (tests)"
+ amove usr/share
+}
+
+sha512sums="
+3285cb0a3987ff730d9f9b25419a98201f399daf28444179ba8902211ddda87adcc7189f5b94f062d0648039a1b6217b80c8db482887d7dc8552b20459eff861 cliquer-1.22.tar.gz
+"
diff --git a/testing/clisp/APKBUILD b/testing/clisp/APKBUILD
deleted file mode 100644
index 16799df1296..00000000000
--- a/testing/clisp/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=clisp
-pkgver=2.49
-pkgrel=3
-pkgdesc="ANSI Common Lisp interpreter, compiler and debugger"
-url="https://clisp.sourceforge.io/"
-arch="x86_64"
-license="GPL-2.0-only"
-depends_dev="libsigsegv-dev ffcall ncurses-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
- no-page.h.patch"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- ulimit -s 16384
-
- ./configure \
- --prefix=/usr \
- --with-ffcall \
- --with-dynamic-ffi \
- --without-dynamic-modules \
- --disable-mmap \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- "$builddir"
- make -j1
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="eef66fc85199a2c283b616db61bf67ff103eeb0f19fa907da48994dc790b6f5f8d0c74fb3bd723c6b827c0ff3cfd89fa6ba67934fc669ed5d5249044b5140d81 clisp-2.49.tar.bz2
-86273c5d5d05a8d41ab6311192e0c757d3f7fe4d78546590830aa00f8c2f170fcb08f66ea739ae8834cec00cdf0f6a20824eb6a3d0f6df97be405c26b1cc5d39 no-page.h.patch"
diff --git a/testing/clisp/no-page.h.patch b/testing/clisp/no-page.h.patch
deleted file mode 100644
index aafb98a31e7..00000000000
--- a/testing/clisp/no-page.h.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/src/unix.d
-+++ b/src/unix.d
-@@ -135,9 +135,6 @@
- #ifdef UNIX_AUX
- #include <sys/mmu.h> /* for SHMLBA */
- #endif
-- #if defined(UNIX_LINUX) && !defined(UNIX_GNU)
-- #include <asm/page.h> /* for SHMLBA on Linux 2.0 */
-- #endif
- /* <sys/shm.h> declares shmget(), shmat(), shmdt(), shmctl() */
- #endif
- /* used by SPVW, STREAM */
diff --git a/testing/cln/APKBUILD b/testing/cln/APKBUILD
new file mode 100644
index 00000000000..c492952dbbc
--- /dev/null
+++ b/testing/cln/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=cln
+pkgver=1.3.7
+pkgrel=0
+pkgdesc="C++ class library for numbers"
+url="https://www.ginac.de/CLN/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="gmp-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.ginac.de/CLN/cln-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-gmp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ cd ./doc && mkdir -pv "$pkgdir"/usr/share/doc/cln/examples && \
+ cp -rpv ./cln.texi "$pkgdir"/usr/share/doc/cln/
+ cd ../examples && rm -rv ./Make* \
+ contfrac e fibonacci legendre lucaslehmer nextprime perfnum pi \
+ contfrac.o e.o fibonacci.o legendre.o lucaslehmer.o nextprime.o perfnum.o pi.o && \
+ cp -rpv ./* "$pkgdir"/usr/share/doc/cln/examples
+}
+
+sha512sums="
+39abfae41504030cce16d0ed0547eafaa9a819f1225289d262cdd8e50d9af5bdb695d6e5a7f4b3577af29bedaf2e31700655b07a624b4232aecf8d795f697a1b cln-1.3.7.tar.bz2
+"
diff --git a/testing/clojure/APKBUILD b/testing/clojure/APKBUILD
deleted file mode 100755
index c2f5739d66f..00000000000
--- a/testing/clojure/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=clojure
-pkgver=1.10.1
-pkgrel=2
-pkgdesc="The Clojure Programming Language"
-url="https://clojure.org"
-arch="all !armv7 !armhf !x86 !mips !mips64" # java
-license="EPL-1.0"
-makedepends="maven"
-source="https://github.com/clojure/clojure/archive/clojure-$pkgver.tar.gz
- clojure"
-depends="openjdk12"
-builddir="$srcdir/clojure-clojure-$pkgver"
-options="!check" #Check occurs in build
-
-build() {
- mvn -Plocal package
-}
-
-package() {
- install -Dm644 "$builddir/clojure.jar" \
- "$pkgdir/usr/share/clojure/clojure.jar"
-
- install -Dm755 "$srcdir/clojure" \
- "$pkgdir/usr/bin/clojure"
-}
-
-sha512sums="942a9f9cb1f41c2df3eb904d8dd5406832d7078850694e14867cff5c2d7a871184adc4659aae50b88e27076c30d221b443a5c42a7d1cc419d4cf75637110075f clojure-1.10.1.tar.gz
-763079a57001c5d53c0c3fefc1a556a60c77983ddcece12b8cb6a419df1acba19e4ec194e08b6692b1ec1261abd7aa59d06513d9cff07cc0716e3b9f412f47f4 clojure"
diff --git a/testing/clojure/clojure b/testing/clojure/clojure
deleted file mode 100644
index 0225bb606e2..00000000000
--- a/testing/clojure/clojure
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-/usr/bin/java -jar /usr/share/clojure/clojure.jar "$@"
diff --git a/testing/closure-compiler/APKBUILD b/testing/closure-compiler/APKBUILD
deleted file mode 100644
index f77a813aac0..00000000000
--- a/testing/closure-compiler/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-# TODO: Build it from source instead of downloading prebuilt JAR (although
-# it does not contain any native binaries), so we can patch it when needed.
-pkgname=closure-compiler
-pkgver=20171203
-pkgrel=0
-pkgdesc="A JavaScript checker and optimizer"
-url="https://developers.google.com/closure/compiler/"
-arch="noarch !s390x !mips !mips64" # java
-license="Apache-2.0"
-depends="openjdk8-jre-base"
-source="$pkgname-$pkgver-jar.tar.gz::https://dl.google.com/$pkgname/compiler-$pkgver.tar.gz
- $pkgname"
-builddir="$srcdir/$pkgname-$pkgver"
-
-check() {
- java -jar "$srcdir"/$pkgname-v$pkgver.jar --version
-}
-
-package() {
- cd "$srcdir"
-
- install -D -m 644 $pkgname-v$pkgver.jar \
- "$pkgdir"/usr/share/java/$pkgname-$pkgver.jar
- ln -s $pkgname-$pkgver.jar "$pkgdir"/usr/share/java/$pkgname.jar
-
- install -D -m 755 $pkgname "$pkgdir"/usr/bin/$pkgname
-}
-
-sha512sums="478e8f1b665e4ac74f5307aa9fdc8042d743e8e455144894a1dde8596f29befff08e34343718a663fa0ae82007d72908b015af388bfac19cdfaa95985737614b closure-compiler-20171203-jar.tar.gz
-18127beb77da790d1fa13fddc4056c485ca2b4a263becd7d37542dc705d08c342f842aa22322dd9aaa8e0ad651f45fc4c0ff632201cc5f20d391843d2c1b2661 closure-compiler"
diff --git a/testing/closure-compiler/closure-compiler b/testing/closure-compiler/closure-compiler
deleted file mode 100644
index 65e6560ddd0..00000000000
--- a/testing/closure-compiler/closure-compiler
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-JAVA_HOME=${JAVA_HOME:="/usr/lib/jvm/default-jvm"}
-"$JAVA_HOME"/bin/java -jar /usr/share/java/closure-compiler.jar "$@"
diff --git a/testing/cloud-hypervisor/APKBUILD b/testing/cloud-hypervisor/APKBUILD
new file mode 100644
index 00000000000..9d3032c0729
--- /dev/null
+++ b/testing/cloud-hypervisor/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=cloud-hypervisor
+pkgver=38.0
+pkgrel=0
+pkgdesc="Virtual machine monitor for modern cloud workloads"
+url="https://www.cloudhypervisor.org/"
+# Only x86_64 and aarch64 are officially supported
+arch="x86_64 aarch64"
+license="Apache-2.0 AND BSD-3-Clause"
+makedepends="cargo libcap-utils cargo-auditable"
+source="https://github.com/cloud-hypervisor/cloud-hypervisor/releases/download/v$pkgver/cloud-hypervisor-v$pkgver.tar.xz"
+builddir="$srcdir/$pkgname-v$pkgver"
+# tests require CAP_NET_ADMIN capability
+# setcap cap_net_admin
+options="!check setcap"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin/ \
+ target/release/cloud-hypervisor \
+ target/release/ch-remote
+
+ # Needs NET_ADMIN capabilities to set TAP interfaces up on the host
+ setcap cap_net_admin=+ep "$pkgdir"/usr/bin/cloud-hypervisor
+}
+
+sha512sums="
+5ca0bcf6394957381fb2345bb345501926b7a9b23ea57a9ab3d78db6f32cef9bf494fc909b06d8687dfe8ca2f43fccd3eebb9470136b87eb0a3c62a233e61b65 cloud-hypervisor-v38.0.tar.xz
+"
diff --git a/testing/cloud-init/APKBUILD b/testing/cloud-init/APKBUILD
deleted file mode 100644
index 45512eb0f9a..00000000000
--- a/testing/cloud-init/APKBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Contributor: Matt Dainty <matt+alpine@bodgit-n-scarper.com>
-# Maintainer:
-pkgname=cloud-init
-pkgver=18.5
-pkgrel=3
-pkgdesc="Cloud instance init scripts"
-url="https://cloud-init.io"
-arch="noarch"
-license="Apache-2.0 OR GPL-3.0-only"
-depends="e2fsprogs-extra python3 py3-configobj py3-jinja2 py3-jsonpatch py3-jsonschema
- py3-oauthlib py3-requests py3-serial py3-six py3-yaml"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch $pkgname-openrc"
-source="https://launchpad.net/cloud-init/trunk/18.5/+download/cloud-init-$pkgver.tar.gz
- add_distro-alpine.patch
- cloud.cfg
- hosts.alpine.tmpl
- alpine.py
- "
-prepare() {
- default_prepare
-
- install -m644 "$srcdir"/alpine.py \
- "$builddir"/cloudinit/distros/
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --init-system=sysvinit_openrc
-
- install -m644 "$srcdir"/cloud.cfg \
- "$pkgdir"/etc/cloud/
-
- install -m644 "$srcdir"/hosts.alpine.tmpl \
- "$pkgdir"/etc/cloud/templates/
-
- 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="f89ee636922e33b5b2dcb5230763404fbeee148e28b8f61bf5b2f1f07000f960f9d38545dfb7bcbe9afb8253f77d66c94b39e9a159715b44a440a7cbe1fe1aeb cloud-init-18.5.tar.gz
-4ab37323e7662445af90ce2654199fe3080e256571e8e12b121ebde791b98e68d368b10c5f22b7e8840c0ba9593dd0a6e37ec60724cd0ae4c806944a826741e3 add_distro-alpine.patch
-7dd8c3a2050af5536154e77cc3913d34b7d85d02130ea9b9f5b54710f96cd22cb4c255af34f3c710a1319f9bd0f667441482695e9bad927026f952d0cf39de41 cloud.cfg
-813a67d446ee65f5ef5a45fe60bef4d0e404c5d1f9cb732bc0ec0b706a0274f4bc1e7f87e676da1ca9366c2f933163f620ee296ed783372869438dd8a928117b hosts.alpine.tmpl
-301e99d25cbe3607f6187ef477e15c8ffc356456117fcd662528194d880a989ba79622208eb84c27decf19060c3810c9ff11441d041c2061feced823e453acaf alpine.py"
diff --git a/testing/cloud-init/add_distro-alpine.patch b/testing/cloud-init/add_distro-alpine.patch
deleted file mode 100644
index ed27e1daa3a..00000000000
--- a/testing/cloud-init/add_distro-alpine.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/cloudinit/distros/__init__.py
-+++ b/cloudinit/distros/__init__.py
-@@ -41,6 +41,7 @@
- 'freebsd': ['freebsd'],
- 'suse': ['opensuse', 'sles'],
- 'arch': ['arch'],
-+ 'alpine': ['alpine'],
- }
-
- LOG = logging.getLogger(__name__)
diff --git a/testing/cloud-init/alpine.py b/testing/cloud-init/alpine.py
deleted file mode 100644
index 31b9e1840be..00000000000
--- a/testing/cloud-init/alpine.py
+++ /dev/null
@@ -1,205 +0,0 @@
-# Copyright (C) 2016 Matt Dainty
-#
-# Author: Matt Dainty <matt@bodgit-n-scarper.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 3, as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-from cloudinit import distros
-from cloudinit import helpers
-from cloudinit import log as logging
-from cloudinit import util
-
-from cloudinit.distros.parsers.hostname import HostnameConf
-
-from cloudinit.settings import PER_INSTANCE
-
-LOG = logging.getLogger(__name__)
-
-
-class Distro(distros.Distro):
- network_conf_fn = "/etc/network/interfaces"
- init_cmd = ['rc-service'] # init scripts
-
- def __init__(self, name, cfg, paths):
- distros.Distro.__init__(self, name, cfg, paths)
- # This will be used to restrict certain
- # calls from repeatly happening (when they
- # should only happen say once per instance...)
- self._runner = helpers.Runners(paths)
- self.osfamily = 'alpine'
- cfg['ssh_svcname'] = 'sshd'
-
- def apply_locale(self, locale, out_fn=None):
- # No locale support yet
- pass
-
- def install_packages(self, pkglist):
- self.update_package_sources()
- self.package_command('add', pkgs=pkglist)
-
- def _write_network(self, settings):
- util.write_file(self.network_conf_fn, settings)
- return ['all']
-
- def _bring_up_interfaces(self, device_names):
- use_all = False
- for d in device_names:
- if d == 'all':
- use_all = True
- if use_all:
- return distros.Distro._bring_up_interface(self, '--all')
- else:
- return distros.Distro._bring_up_interfaces(self, device_names)
-
- def _select_hostname(self, hostname, fqdn):
- # Prefer the short hostname over the long
- # fully qualified domain name
- if not hostname:
- return fqdn
- return hostname
-
- def _write_hostname(self, your_hostname, out_fn):
- conf = None
- try:
- # Try to update the previous one
- # so lets see if we can read it first.
- conf = self._read_hostname_conf(out_fn)
- except IOError:
- pass
- if not conf:
- conf = HostnameConf('')
- conf.set_hostname(your_hostname)
- util.write_file(out_fn, str(conf), 0o644)
-
- def _read_system_hostname(self):
- sys_hostname = self._read_hostname(self.hostname_conf_fn)
- return (self.hostname_conf_fn, sys_hostname)
-
- def _read_hostname_conf(self, filename):
- conf = HostnameConf(util.load_file(filename))
- conf.parse()
- return conf
-
- def _read_hostname(self, filename, default=None):
- hostname = None
- try:
- conf = self._read_hostname_conf(filename)
- hostname = conf.hostname
- except IOError:
- pass
- if not hostname:
- return default
- return hostname
-
- def set_timezone(self, tz):
- distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))
-
- def package_command(self, command, args=None, pkgs=None):
- if pkgs is None:
- pkgs = []
-
- cmd = ['apk']
- # Redirect output
- cmd.append("--quiet")
-
- if args and isinstance(args, str):
- cmd.append(args)
- elif args and isinstance(args, list):
- cmd.extend(args)
-
- if command:
- cmd.append(command)
-
- pkglist = util.expand_package_list('%s-%s', pkgs)
- cmd.extend(pkglist)
-
- # Allow the output of this to flow outwards (ie not be captured)
- util.subp(cmd, capture=False)
-
- def update_package_sources(self):
- self._runner.run("update-sources", self.package_command,
- ["update"], freq=PER_INSTANCE)
-
- def add_user(self, name, **kwargs):
- if util.is_user(name):
- LOG.info("User %s already exists, skipping." % name)
- return
-
- adduser_cmd = ['adduser', name, '-D']
- log_adduser_cmd = ['adduser', name, '-D']
-
- # Since we are creating users, we want to carefully validate the
- # inputs. If something goes wrong, we can end up with a system
- # that nobody can login to.
- adduser_opts = {
- "gecos": '-g',
- "homedir": '-h',
- "uid": '-u',
- "shell": '-s',
- }
-
- adduser_flags = {
- "system": '-S',
- }
-
- redact_opts = ['passwd']
-
- # Check the values and create the command
- for key, val in kwargs.items():
-
- if key in adduser_opts and val and isinstance(val, str):
- adduser_cmd.extend([adduser_opts[key], val])
-
- # Redact certain fields from the logs
- if key in redact_opts:
- log_adduser_cmd.extend([adduser_opts[key], 'REDACTED'])
- else:
- log_adduser_cmd.extend([adduser_opts[key], val])
-
- elif key in adduser_flags and val:
- adduser_cmd.append(adduser_flags[key])
- log_adduser_cmd.append(adduser_flags[key])
-
- # Don't create the home directory if directed so or if the user is a
- # system user
- if 'no_create_home' in kwargs or 'system' in kwargs:
- adduser_cmd.append('-H')
- log_adduser_cmd.append('-H')
-
- # Run the command
- LOG.debug("Adding user %s", name)
- try:
- util.subp(adduser_cmd, logstring=log_adduser_cmd)
- except Exception as e:
- util.logexc(LOG, "Failed to create user %s", name)
- raise e
-
- # Unlock the user
- LOG.debug("Unlocking user %s", name)
- try:
- util.subp(['passwd', '-u', name], logstring=['passwd', '-u', name])
- except Exception as e:
- util.logexc(LOG, "Failed to unlock user %s", name)
- raise e
-
- if 'groups' in kwargs:
- groups = kwargs['groups']
- if groups and isinstance(groups, str):
- # Why are these even a single string in the first place?
- groups = groups.split(',')
- for group in groups:
- try:
- util.subp(['adduser', name, group], logstring=['adduser', name, group])
- except Exception as e:
- util.logexc(LOG, "Failed to add user %s to group %s", name, group)
- raise e
diff --git a/testing/cloud-init/cloud.cfg b/testing/cloud-init/cloud.cfg
deleted file mode 100644
index 26f13624489..00000000000
--- a/testing/cloud-init/cloud.cfg
+++ /dev/null
@@ -1,76 +0,0 @@
-# The top level settings are used as module
-# and system configuration.
-
-# A set of users which may be applied and/or used by various modules
-# when a 'default' entry is found it will reference the 'default_user'
-# from the distro configuration specified below
-users:
- - default
-
-# If this is set, 'root' will not be able to ssh in and they
-# will get a message to login instead as the above $user (ubuntu)
-disable_root: true
-ssh_pwauth: false
-
-# This will cause the set+update hostname module to not operate (if true)
-# preserve_hostname: false
-
-syslog_fix_perms: root:root
-
-ssh_deletekeys: false
-ssh_genkeytypes: [rsa, dsa]
-
-cloud_init_modules:
- - seed_random
- - bootcmd
- - write-files
- - growpart
- - resizefs
- - set_hostname
- - update_hostname
- - update_etc_hosts
- - ca-certs
- - users-groups
- - ssh
-
-cloud_config_modules:
- - disk_setup
- - mounts
- - ssh-import-id
- - set-passwords
- - timezone
- - puppet
- - chef
- - salt-minion
- - mcollective
- - disable-ec2-metadata
- - runcmd
-
-cloud_final_modules:
- - scripts-vendor
- - scripts-per-once
- - scripts-per-boot
- - scripts-per-instance
- - scripts-user
- - ssh-authkey-fingerprints
- - keys-to-console
- - phone-home
- - final-message
- - power-state-change
-
-# System and/or distro specific settings
-# (not accessible to handlers/transforms)
-system_info:
- # This will affect which distro class gets used
- distro: alpine
- # Default user name + that default users groups (if added/used)
- default_user:
- name: alpine
- lock_passwd: false
- gecos: Alpine
- sudo: ["ALL=(ALL) NOPASSWD:ALL"]
- shell: /bin/ash
- # Other config here will be given to the distro class and/or path classes
- paths:
- cloud_dir: /var/lib/cloud/
- templates_dir: /etc/cloud/templates/
diff --git a/testing/cloud-init/hosts.alpine.tmpl b/testing/cloud-init/hosts.alpine.tmpl
deleted file mode 100644
index 27662289fdc..00000000000
--- a/testing/cloud-init/hosts.alpine.tmpl
+++ /dev/null
@@ -1,23 +0,0 @@
-## template:jinja
-{#
-This file /etc/cloud/templates/hosts.alpine.tmpl is only utilized
-if enabled in cloud-config. Specifically, in order to enable it
-you need to add the following to config:
- manage_etc_hosts: template
--#}
-# Your system has configured 'manage_etc_hosts' as 'template'.
-# As a result, if you wish for changes to this file to persist
-# then you will need to either
-# a.) make changes to the master file in /etc/cloud/templates/hosts.alpine.tmpl
-# b.) change or remove the value of 'manage_etc_hosts' in
-# /etc/cloud/cloud.cfg or cloud-config from user-data
-#
-# The following lines are desirable for IPv4 capable hosts
-127.0.0.1 {{fqdn}} {{hostname}}
-127.0.0.1 localhost.localdomain localhost
-127.0.0.1 localhost4.localdomain4 localhost4
-
-# The following lines are desirable for IPv6 capable hosts
-::1 {{fqdn}} {{hostname}}
-::1 localhost.localdomain localhost
-::1 localhost6.localdomain6 localhost6
diff --git a/testing/cloud-utils/APKBUILD b/testing/cloud-utils/APKBUILD
deleted file mode 100755
index f7156680005..00000000000
--- a/testing/cloud-utils/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Vladimir Avinkin <mouzfun@gmail.com>
-# Maintainer: Vladimir Avinkin <mouzfun@gmail.com>
-pkgname=cloud-utils
-pkgver=0.30
-pkgrel=0
-pkgdesc="Useful set of utilities for interacting with a cloud"
-url="https://launchpad.net/cloud-utils/"
-arch="noarch !mips !mips64 !s390x" # tests are broken on big-endian
-license="GPL-3.0-or-later"
-depends="bash python3 sfdisk sgdisk util-linux qemu-img mtools cdrkit coreutils"
-subpackages="$pkgname-doc"
-source="https://launchpad.net/$pkgname/trunk/0.3/+download/$pkgname-$pkgver.tar.gz"
-
-build() {
- make
-}
-
-check() {
- # the other tests require root permissions
- PATH=$PATH:$builddir/bin TMPDIR="$srcdir" ./test/test-growpart-fsimage
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="62274b80ada530e5cac32b34e9f9cd4994bf81b336da039f10035beeae6a01f11aaa24fd2ba436001844fca7542cce2527711c8ae87a5b53f4cab505dcb07f28 cloud-utils-0.30.tar.gz"
diff --git a/testing/cloudflare-ddns/APKBUILD b/testing/cloudflare-ddns/APKBUILD
deleted file mode 100644
index 4c571f7d512..00000000000
--- a/testing/cloudflare-ddns/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
-pkgname=cloudflare-ddns
-pkgver=1.3.0
-pkgrel=0
-pkgdesc="DDNS script to sync public IP address to CloudFlare dns records"
-options="!check" # No testsuite
-url="https://github.com/ailionx/cloudflare-ddns"
-arch="noarch"
-license="MIT"
-depends="py3-setuptools py3-requests"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ailionx/cloudflare-ddns/archive/$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b059b7795bb26de2c83e3619a5dba281bfacbbf0fa33a5678846043d64f805b8f40c3266e246f1dfd36003205babed4938a039f9f669aabedf9903ca0360a867 cloudflare-ddns-1.3.0.tar.gz"
diff --git a/testing/cloudflared/APKBUILD b/testing/cloudflared/APKBUILD
new file mode 100644
index 00000000000..c092b3c7afb
--- /dev/null
+++ b/testing/cloudflared/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Piper McCorkle <piper@cloudflare.com>
+# Maintainer: Piper McCorkle <piper@cloudflare.com>
+pkgname=cloudflared
+pkgver=2023.7.3
+pkgrel=4
+pkgdesc="Cloudflare Tunnel client"
+url="https://github.com/cloudflare/cloudflared"
+# TODO: Doesn't compile with Go 1.21.
+# See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15252
+#arch="aarch64 x86 x86_64"
+arch=""
+license="Apache-2.0"
+makedepends="go gettext"
+subpackages="$pkgname-doc $pkgname-openrc"
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+install="$pkgname.pre-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cloudflare/cloudflared/archive/refs/tags/$pkgver.tar.gz
+ goflags.patch
+ config.yml
+ $pkgname.initd
+ $pkgname.confd
+ "
+options="!check" # require privileged icmp sockets
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod vendor
+}
+
+build() {
+ make cloudflared
+ DATE="2023" VERSION="$pkgver" envsubst < cloudflared_man_template > cloudflared.1
+}
+
+check() {
+ _goarch=$(go tool dist env | grep GOARCH | sed 's/^GOARCH="//; s/"$//')
+ # Go race detector is only supported on amd64, ppc64le, and arm64
+ if [ $_goarch = "amd64" ] || [ $_goarch = "ppc64le" ] || [ $_goarch = "arm64" ]; then
+ _race=-race
+ fi
+ go test -mod=vendor -buildmode=default $_race ./...
+}
+
+package() {
+ install -D -m755 ./cloudflared "$pkgdir"/usr/bin/cloudflared
+ install -D -m644 ./cloudflared.1 "$pkgdir"/usr/share/man/man1/cloudflared.1
+
+ install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -D -m755 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -D -m644 "$srcdir"/config.yml "$pkgdir"/etc/$pkgname/config.yml
+}
+
+sha512sums="
+45833cfd35ad8458882008dc73878948955584a1ce26ff63126b7045d5807d67d275c56ac5d39695f42839daf948a78c894c28f692183e92674d43d9254d7534 cloudflared-2023.7.3.tar.gz
+deb54b26ac89da74f6d1016deebdd2a15e302d49c1c2b83787b905e70b00250ddf9568d078c4d1d7b53bba9ab1aa182fbcadca2376a7008f07ce4502a4c6f91c goflags.patch
+01f43af92c2c804f6b31189b78f81a76f078179065bebf12118a8bb3ba22e1c8042ef760f24acdf1356bbe5235df7d2a00d55a158e5fec5063c5d2d6abcd7dee config.yml
+76b684ef4d0267e8546a21cc60239ef94cbb5fd6b3c0f4fbf4e843eb6e8b56943d3200a160e1749b228306e5649e6a1fa90a58f14fb68c5794f2c760a6c14506 cloudflared.initd
+47c71a328d49f3d35dd6e0268e1d734cd21ecc84b24459f77a46df7632f9a8fdb7817cf49187f965c13c94017e4454897caa99ca12b41037dfe0455bb156ef09 cloudflared.confd
+"
diff --git a/testing/cloudflared/cloudflared.confd b/testing/cloudflared/cloudflared.confd
new file mode 100644
index 00000000000..d4cc428bdcd
--- /dev/null
+++ b/testing/cloudflared/cloudflared.confd
@@ -0,0 +1 @@
+command_args="tunnel --config /etc/cloudflared/config.yml run"
diff --git a/testing/cloudflared/cloudflared.initd b/testing/cloudflared/cloudflared.initd
new file mode 100644
index 00000000000..8f425bd0602
--- /dev/null
+++ b/testing/cloudflared/cloudflared.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name=cloudflared
+command=/usr/bin/cloudflared
+command_user=cloudflared:cloudflared
+command_background="yes"
+pidfile=/run/${RC_SVCNAME}.pid
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/cloudflared/cloudflared.pre-install b/testing/cloudflared/cloudflared.pre-install
new file mode 100644
index 00000000000..71fbf728974
--- /dev/null
+++ b/testing/cloudflared/cloudflared.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S cloudflared 2>/dev/null
+adduser -S -D -s /sbin/nologin -G cloudflared -g cloudflared cloudflared 2>/dev/null
+
+exit 0
diff --git a/testing/cloudflared/config.yml b/testing/cloudflared/config.yml
new file mode 100644
index 00000000000..14ca83280be
--- /dev/null
+++ b/testing/cloudflared/config.yml
@@ -0,0 +1,3 @@
+# cloudflared's configuration file
+# cloudflare tunnel see:
+# https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/#4-create-a-configuration-file
diff --git a/testing/cloudflared/goflags.patch b/testing/cloudflared/goflags.patch
new file mode 100644
index 00000000000..89891b944b0
--- /dev/null
+++ b/testing/cloudflared/goflags.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 06fa005..6146471 100644
+--- a/Makefile
++++ b/Makefile
+@@ -126,7 +126,7 @@ ifeq ($(FIPS), true)
+ $(info Building cloudflared with go-fips)
+ cp -f fips/fips.go.linux-amd64 cmd/cloudflared/fips.go
+ endif
+- GOOS=$(TARGET_OS) GOARCH=$(TARGET_ARCH) $(ARM_COMMAND) go build -v -mod=vendor $(GO_BUILD_TAGS) $(LDFLAGS) $(IMPORT_PATH)/cmd/cloudflared
++ GOOS=$(TARGET_OS) GOARCH=$(TARGET_ARCH) $(ARM_COMMAND) go build -v $(GOFLAGS) $(GO_BUILD_TAGS) $(LDFLAGS) $(IMPORT_PATH)/cmd/cloudflared
+ ifeq ($(FIPS), true)
+ rm -f cmd/cloudflared/fips.go
+ ./check-fips.sh cloudflared
diff --git a/testing/cloudfoundry-cli/APKBUILD b/testing/cloudfoundry-cli/APKBUILD
index 88e737b1da4..ffe50cba32b 100644
--- a/testing/cloudfoundry-cli/APKBUILD
+++ b/testing/cloudfoundry-cli/APKBUILD
@@ -1,28 +1,40 @@
# Contributor: Thomas Boerger <thomas@webhippie.de>
# Maintainer: Thomas Boerger <thomas@webhippie.de>
pkgname=cloudfoundry-cli
-pkgver=6.51.0
+pkgver=8.7.9
pkgrel=1
pkgdesc="A CLI for Cloud Foundry written in Go"
url="https://github.com/cloudfoundry/cli"
arch="all !s390x !armv7"
license="Apache-2.0"
makedepends="go bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cloudfoundry/cli/archive/v$pkgver.tar.gz"
+checkdepends="ginkgo"
+options="!check" # some tests fail
+source="$pkgname-$pkgver.tar.gz::https://github.com/cloudfoundry/cli/archive/v$pkgver.tar.gz
+ fix-cgo.patch
+ "
builddir="$srcdir/cli-$pkgver"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+export GOFLAGS="$GOFLAGS -mod=mod -modcacherw"
+
build() {
- mkdir -p src/code.cloudfoundry.org/
- ln -fs "$builddir" src/code.cloudfoundry.org/cli
+ make build GOFLAGS="$GOFLAGS"
+}
- cd src/code.cloudfoundry.org/cli
- GOPATH="$builddir" make build
+check() {
+ make test GOFLAGS="$GOFLAGS"
}
package() {
mkdir -p "$pkgdir"/usr/bin
- install -Dm755 out/cf out/cf6 \
- "$pkgdir"/usr/bin
+ install -Dm755 out/cf "$pkgdir"/usr/bin/cf
}
-sha512sums="434702d2dc1f1c6727fe7a8a39eb91730d228cf2dfbdf294b68212b1e5cf362032ade26461d2e6951e1eadfc2884a8358f89ec42ddab9c3bb2279a87d3cb6719 cloudfoundry-cli-6.51.0.tar.gz"
+sha512sums="
+211181ebfbe000ff90e5548ed4881d8d52fb3303438ca6b77b0d9ebc9300ed73f918cb87c9133ad01611c69efab425f5a57a51a8207c5db036d57fa20c8ebcc0 cloudfoundry-cli-8.7.9.tar.gz
+da6f16ef0b5aebb12bcac1272ce731debf25c8533df15074d00beff3910fc0c0fe9e3bb1e817333c585fc71844d4b22e7addc1b08a8b131f9ef11fcc5bbe5e1b fix-cgo.patch
+"
diff --git a/testing/cloudfoundry-cli/fix-cgo.patch b/testing/cloudfoundry-cli/fix-cgo.patch
new file mode 100644
index 00000000000..3cd9f1eff9c
--- /dev/null
+++ b/testing/cloudfoundry-cli/fix-cgo.patch
@@ -0,0 +1,30 @@
+--- a/Makefile
++++ b/Makefile
+@@ -156,23 +156,23 @@
+ go build -ldflags "$(LD_FLAGS)" -o out/cf .
+ else
+ out/cf: $(GOSRC)
+- CGO_ENABLED=0 go build \
++ go build \
+ $(REQUIRED_FOR_STATIC_BINARY) \
+ -ldflags "$(LD_FLAGS_LINUX)" -o out/cf .
+ endif
+
+ out/cf-cli_linux_i686: $(GOSRC)
+- CGO_ENABLED=0 GOARCH=386 GOOS=linux go build \
++ GOARCH=386 GOOS=linux go build \
+ $(REQUIRED_FOR_STATIC_BINARY) \
+ -ldflags "$(LD_FLAGS_LINUX)" -o out/cf-cli_linux_i686 .
+
+ out/cf-cli_linux_x86-64: $(GOSRC)
+- CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build \
++ GOARCH=amd64 GOOS=linux go build \
+ $(REQUIRED_FOR_STATIC_BINARY) \
+ -ldflags "$(LD_FLAGS_LINUX)" -o out/cf-cli_linux_x86-64 .
+
+ out/cf-cli_linux_arm64: $(GOSRC)
+- CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build \
++ GOARCH=arm64 GOOS=linux go build \
+ $(REQUIRED_FOR_STATIC_BINARY) \
+ -ldflags "$(LD_FLAGS_LINUX)" -o out/cf-cli_linux_arm64 .
+
diff --git a/testing/cluster-glue/APKBUILD b/testing/cluster-glue/APKBUILD
index 56442fb2f04..7e49da60c02 100644
--- a/testing/cluster-glue/APKBUILD
+++ b/testing/cluster-glue/APKBUILD
@@ -1,28 +1,28 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=cluster-glue
pkgver=1.0.12
-pkgrel=2
+pkgrel=5
pkgdesc="Reusable cluster components"
url="https://clusterlabs.org"
arch="all"
license="GPL-2.0-only AND LGPL-2.1-or-later"
-depends=""
depends_dev="net-snmp-dev libxml2-dev glib-dev bzip2-dev curl-dev
e2fsprogs-dev libaio-dev"
makedepends="$depends_dev asciidoc autoconf automake libtool"
-install=""
pkggroups="haclient"
pkgusers="hacluster"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="https://github.com/ClusterLabs/cluster-glue/archive/glue-$pkgver.tar.gz
$pkgname.post-install
- $pkgname.pre-install"
+ $pkgname.pre-install
+ "
-builddir="$srcdir"/$pkgname-glue-$pkgver
+builddir="$srcdir/$pkgname-glue-$pkgver"
prepare() {
default_prepare
+
./autogen.sh
}
@@ -46,9 +46,8 @@ package() {
libs() {
pkgdesc="Reusable cluster components (libraries)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/lib*.so.* \
- "$subpkgdir"/usr/lib/
+
+ amove usr/lib/lib*.so.*
}
sha512sums="e0da2b17499fb4ba83bb3414123fd00b44f24b3ef817a4802f628467e2876bb8a453b99e4443439edb31de315e8d76292694584e27dbf4310efdc8d438a25272 glue-1.0.12.tar.gz
diff --git a/testing/cm256cc/APKBUILD b/testing/cm256cc/APKBUILD
new file mode 100644
index 00000000000..62f4626e88b
--- /dev/null
+++ b/testing/cm256cc/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=cm256cc
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Fast GF(256) Cauchy MDS Block Erasure Codec library in C++"
+url="https://github.com/f4exb/cm256cc"
+license="GPL-3.0-only AND MIT AND BSD-3-Clause"
+# requires ssse3/neon and does not build anything otherwise
+arch="aarch64 x86_64"
+makedepends="
+ cmake
+ samurai
+ "
+subpackages="$pkgname-dev"
+checkdepends="xvfb-run"
+source="$pkgname-$pkgver.tar.gz::https://github.com/f4exb/cm256cc/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_DISTRIBUTION=ON \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DBUILD_TOOLS="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ./build/cm256_test
+ ./build/cm256_rx
+ ./build/cm256_tx
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ # these are just unit tests
+ # shellcheck disable=2115
+ rm -rfv "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2bd02675bb2c1c2b422c626c92bd36a0c0fc7a46a0512475424b1bc781d816137eadc52f33f11e100cdc69a7a595f3153fbed0020d6038916e305a2923700959 cm256cc-1.1.0.tar.gz
+"
diff --git a/testing/cmake-extras/APKBUILD b/testing/cmake-extras/APKBUILD
deleted file mode 100644
index c7e0de9c3f4..00000000000
--- a/testing/cmake-extras/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=cmake-extras
-pkgver=0_git20190219
-_commit="365500ed7903180d034b64e06d0c0cdd9de2162f"
-pkgrel=0
-pkgdesc="A collection of add-ons for the CMake build tool"
-url="https://github.com/ubports/cmake-extras"
-arch="noarch"
-license="LGPL-3.0-only"
-depends="cmake"
-options="!check" # No testsuite
-source="$pkgname-$_commit.tar.gz::https://github.com/ubports/cmake-extras/archive/$_commit.tar.gz
- Use_gtest_cmake_from_mir.patch
- qmlplugindump_path.patch"
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- cmake \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-sha512sums="79c8224fd96368ca68534c90178c16178e668bc0655ea42d139fcee4a995c92bc9b6c20f2b6cd0df2bc38cc009f9e15306513d06a3f095c5f344994cae4cb01c cmake-extras-365500ed7903180d034b64e06d0c0cdd9de2162f.tar.gz
-996334490e062868b2dd24a0d2d688d95877343ae2db6a06efc580d14ffe1d00f0c9277be0929b9c7c859aef2dea0be68ddc49a7495ad16eaa0a156838f8bca9 Use_gtest_cmake_from_mir.patch
-e55bd3ae7372b33534d239f7e959af0eba5687aba0386613381e4f9fc840f89213f5ae92544b7e969943d46e815d49c66fd24c29c44fd4166bb3a6bf81e1ac7e qmlplugindump_path.patch"
diff --git a/testing/cmake-extras/Use_gtest_cmake_from_mir.patch b/testing/cmake-extras/Use_gtest_cmake_from_mir.patch
deleted file mode 100644
index 915baf899f6..00000000000
--- a/testing/cmake-extras/Use_gtest_cmake_from_mir.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-diff --git a/src/GMock/GMockConfig.cmake b/src/GMock/GMockConfig.cmake
-index 2078030..77ba4a3 100644
---- a/src/GMock/GMockConfig.cmake
-+++ b/src/GMock/GMockConfig.cmake
-@@ -1,92 +1,77 @@
--# Copyright (C) 2014 Canonical Ltd
--#
--# This program is free software: you can redistribute it and/or modify
--# it under the terms of the GNU Lesser General Public License version 3 as
--# published by the Free Software Foundation.
--#
--# 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 Lesser General Public License for more details.
--#
--# You should have received a copy of the GNU Lesser General Public License
--# along with this program. If not, see <http://www.gnu.org/licenses/>.
--
--# Build with system gmock and embedded gtest
--#
--# Usage:
--#
--# find_package(GMock)
--#
--# ...
--#
--# target_link_libraries(
--# my-target
--# ${GTEST_BOTH_LIBRARIES}
--# )
--#
--# NOTE: Due to the way this package finder is implemented, do not attempt
--# to find the GMock package more than once.
--
--find_package(Threads)
--
--if (EXISTS "/usr/src/googletest")
-- # As of version 1.8.0
-- set(GMOCK_SOURCE_DIR "/usr/src/googletest/googlemock" CACHE PATH "gmock source directory")
-- set(GMOCK_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/include" CACHE PATH "gmock source include directory")
-- set(GTEST_INCLUDE_DIRS "/usr/src/googletest/googletest/include" CACHE PATH "gtest source include directory")
-+include(FindPackageHandleStandardArgs)
-+
-+find_package(GTest)
-+
-+pkg_check_modules (GTEST REQUIRED "gtest >= 1.8.0")
-+pkg_check_modules (GTEST_MAIN REQUIRED "gtest_main >= 1.8.0")
-+if (GTEST_FOUND AND GTEST_MAIN_FOUND)
-+ set(GTEST_LIBRARY ${GTEST_LIBRARIES})
-+ set(GTEST_MAIN_LIBRARY ${GTEST_MAIN_LIBRARIES})
-+ set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
-+endif()
-+
-+if (NOT GTEST_FOUND)
-+ include(ExternalProject)
-+
-+ find_path(GTEST_ROOT
-+ NAMES CMakeLists.txt
-+ PATHS /usr/src/gtest /usr/src/googletest/googletest/
-+ DOC "Path to GTest CMake project")
-+
-+ ExternalProject_Add(GTest PREFIX ./gtest
-+ SOURCE_DIR ${GTEST_ROOT}
-+ CMAKE_ARGS
-+ -DCMAKE_CXX_COMPILER_WORKS=1
-+ -DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}'
-+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-+ INSTALL_COMMAND true
-+ BUILD_BYPRODUCTS
-+ ${CMAKE_CURRENT_BINARY_DIR}/gtest/src/GTest-build/libgtest.a
-+ ${CMAKE_CURRENT_BINARY_DIR}/gtest/src/GTest-build/libgtest_main.a
-+ ${CMAKE_CURRENT_BINARY_DIR}/gtest/src/GMock-build/libgmock.a)
-+
-+ ExternalProject_Get_Property(GTest binary_dir)
-+
-+ add_library(gtest UNKNOWN IMPORTED)
-+ set_target_properties(gtest PROPERTIES IMPORTED_LOCATION ${binary_dir}/libgtest.a)
-+ add_dependencies(gtest GTest)
-+ set(GTEST_LIBRARY "gtest")
-+
-+ add_library(gtest_main UNKNOWN IMPORTED)
-+ set_target_properties(gtest_main PROPERTIES IMPORTED_LOCATION ${binary_dir}/libgtest_main.a)
-+ add_dependencies(gtest_main GTest)
-+ set(GTEST_MAIN_LIBRARY "gtest_main")
-+
-+ set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
-+ find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h)
-+ find_package_handle_standard_args(GTest GTEST_LIBRARY GTEST_BOTH_LIBRARIES GTEST_INCLUDE_DIRS)
-+endif()
-+
-+find_file(GMOCK_SOURCE
-+ NAMES gmock-all.cc
-+ DOC "GMock source"
-+ PATHS /usr/src/googletest/googlemock/src/ /usr/src/gmock/ /usr/src/gmock/src)
-+
-+if (EXISTS ${GMOCK_SOURCE})
-+ find_path(GMOCK_INCLUDE_DIR gmock/gmock.h PATHS /usr/src/googletest/googlemock/include)
-+
-+ add_library(GMock STATIC ${GMOCK_SOURCE})
-+
-+ if (EXISTS /usr/src/googletest/googlemock/src)
-+ set_source_files_properties(${GMOCK_SOURCE} PROPERTIES COMPILE_FLAGS "-I/usr/src/googletest/googlemock")
-+ endif()
-+
-+ if (EXISTS /usr/src/gmock/src)
-+ set_source_files_properties(${GMOCK_SOURCE} PROPERTIES COMPILE_FLAGS "-I/usr/src/gmock")
-+ endif()
-+
-+ find_package_handle_standard_args(GMock DEFAULT_MSG GMOCK_INCLUDE_DIR)
-+
-+ set(GMOCK_LIBRARY GMock)
- else()
-- set(GMOCK_SOURCE_DIR "/usr/src/gmock" CACHE PATH "gmock source directory")
-- set(GMOCK_INCLUDE_DIRS "/usr/include" CACHE PATH "gmock source include directory")
-- set(GTEST_INCLUDE_DIRS "/usr/include" CACHE PATH "gtest source include directory")
-+ # Assume gmock is no longer source, we'll find out soon enough if that's wrong
-+ add_custom_target(GMock)
-+ string(REPLACE gtest gmock GMOCK_LIBRARY ${GTEST_LIBRARY})
- endif()
-
--# We add -g so we get debug info for the gtest stack frames with gdb.
--# The warnings are suppressed so we get a noise-free build for gtest and gmock if the caller
--# has these warnings enabled.
--set(findgmock_cxx_flags "${CMAKE_CXX_FLAGS} -g -Wno-old-style-cast -Wno-missing-field-initializers -Wno-ctor-dtor-privacy -Wno-switch-default")
--
--set(findgmock_bin_dir "${CMAKE_CURRENT_BINARY_DIR}/gmock")
--set(findgmock_gtest_lib "${findgmock_bin_dir}/gtest/libgtest.a")
--set(findgmock_gtest_main_lib "${findgmock_bin_dir}/gtest/libgtest_main.a")
--set(findgmock_gmock_lib "${findgmock_bin_dir}/libgmock.a")
--set(findgmock_gmock_main_lib "${findgmock_bin_dir}/libgmock_main.a")
--
--include(ExternalProject)
--ExternalProject_Add(GMock SOURCE_DIR "${GMOCK_SOURCE_DIR}"
-- BINARY_DIR "${findgmock_bin_dir}"
-- BUILD_BYPRODUCTS "${findgmock_gtest_lib}"
-- "${findgmock_gtest_main_lib}"
-- "${findgmock_gmock_lib}"
-- "${findgmock_gmock_main_lib}"
-- INSTALL_COMMAND ""
-- CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${findgmock_cxx_flags}")
--
--add_library(gtest INTERFACE)
--target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIRS})
--target_link_libraries(gtest INTERFACE ${findgmock_gtest_lib} ${CMAKE_THREAD_LIBS_INIT})
--add_dependencies(gtest GMock)
--
--add_library(gtest_main INTERFACE)
--target_include_directories(gtest_main INTERFACE ${GTEST_INCLUDE_DIRS})
--target_link_libraries(gtest_main INTERFACE ${findgmock_gtest_main_lib} gtest)
--
--add_library(gmock INTERFACE)
--target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIRS})
--target_link_libraries(gmock INTERFACE ${findgmock_gmock_lib} gtest)
--
--add_library(gmock_main INTERFACE)
--target_include_directories(gmock_main INTERFACE ${GMOCK_INCLUDE_DIRS})
--target_link_libraries(gmock_main INTERFACE ${findgmock_gmock_main_lib} gmock)
--
--set(GTEST_LIBRARIES gtest)
--set(GTEST_MAIN_LIBRARIES gtest_main)
--set(GMOCK_LIBRARIES gmock gmock_main)
--set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
--
--unset(findgmock_cxx_flags)
--unset(findgmock_bin_dir)
--unset(findgmock_gtest_lib)
--unset(findgmock_gtest_main_lib)
--unset(findgmock_gmock_lib)
--unset(findgmock_gmock_main_lib)
-+set(GMOCK_LIBRARIES ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY})
diff --git a/testing/cmake-extras/qmlplugindump_path.patch b/testing/cmake-extras/qmlplugindump_path.patch
deleted file mode 100644
index 475b3826ae6..00000000000
--- a/testing/cmake-extras/qmlplugindump_path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/QmlPlugins/QmlPluginsConfig.cmake b/src/QmlPlugins/QmlPluginsConfig.cmake
-index f563330..7e326bf 100644
---- a/src/QmlPlugins/QmlPluginsConfig.cmake
-+++ b/src/QmlPlugins/QmlPluginsConfig.cmake
-@@ -2,7 +2,7 @@
- # target before loading this plugin.
-
- if(NOT TARGET qmlplugindump)
-- find_program(qmlplugindump_exe qmlplugindump)
-+ find_program(qmlplugindump_exe qmlplugindump HINTS /usr/lib/qt5/bin/)
-
- if(NOT qmlplugindump_exe)
- msg(FATAL_ERROR "Could not locate qmlplugindump.")
diff --git a/testing/cmusfm/APKBUILD b/testing/cmusfm/APKBUILD
new file mode 100644
index 00000000000..54949135a3b
--- /dev/null
+++ b/testing/cmusfm/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Cássio Ãvila <cassioavila@yandex.com>
+# Maintainer: Cássio Ãvila <cassioavila@yandex.com>
+pkgname=cmusfm
+pkgver=0.5.0
+pkgrel=0
+pkgdesc="Last.fm standalone scrobbler for the cmus music player"
+url="https://github.com/Arkq/cmusfm"
+arch="all !s390x" # 1 test fails
+license="GPL-3.0-or-later"
+depends="cmus"
+makedepends="autoconf automake curl-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Arkq/cmusfm/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure --prefix /usr --build=$CBUILD --host=$CHOST
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+497ba0c9f776b8d2f11934a5dbc2ea4b4971511f3c3c4df602d1742ba5fcaf4c0f91d5f8a1ebe849e184718e7090fcf146560445398e85f97722bb62c0976fd3 cmusfm-0.5.0.tar.gz
+"
diff --git a/testing/cni-plugins/APKBUILD b/testing/cni-plugins/APKBUILD
deleted file mode 100644
index 472383578d1..00000000000
--- a/testing/cni-plugins/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=cni-plugins
-pkgver=0.8.6
-pkgrel=0
-pkgdesc="Some standard networking plugins, maintained by the CNI team"
-options="!check"
-url="https://github.com/containernetworking/cni"
-arch="all"
-license="Apache-2.0"
-makedepends="go bash linux-headers"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/containernetworking/plugins/archive/v$pkgver.tar.gz"
-builddir="$srcdir/plugins-$pkgver"
-
-build() {
- bash ./build_linux.sh
-}
-
-package() {
- mkdir -p "$pkgdir/usr/share/$pkgname/"
- cp -ar bin "$pkgdir/usr/share/$pkgname/"
- mkdir -p $pkgdir/usr/share/licenses/$pkgname
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-}
-
-sha512sums="8815de8b375c737c3a1951b0a7ef5786209fdcf723aa1bc7c2dab7e1bbdee4933a7237f41bdee4208828b457bc79ec69ff68db060c52bab13863f42b042480c8 cni-plugins-0.8.6.tar.gz"
diff --git a/testing/coccinelle/APKBUILD b/testing/coccinelle/APKBUILD
index c9325fc6df4..202a1941d1d 100644
--- a/testing/coccinelle/APKBUILD
+++ b/testing/coccinelle/APKBUILD
@@ -1,32 +1,34 @@
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+
pkgname=coccinelle
-pkgver=1.0.8
-pkgrel=1
-pkgdesc="SmPL (Semantic Patch Language) implementation"
-url="http://coccinelle.lip6.fr/"
-# x86, armhf, s390x, mips, mips64: limited by ocaml aport
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64"
-license="GPL-2.0-only"
-subpackages="$pkgname-doc"
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="provides the spatch matching and transformation engine implementing semantic patch language"
+url="https://coccinelle.gitlabpages.inria.fr/website/"
makedepends="
autoconf
automake
- ocaml-dev
- ocaml-findlib-dev
- ocaml-num-dev
+ ocaml
+ ocaml-findlib
+ ocaml-num
ocaml-ocamldoc
- pcre-dev
"
-depends="python3"
-subpackages="$pkgname-bash-completion:bashcomp:noarch $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/coccinelle/coccinelle/archive/$pkgver.tar.gz
- SCORE_expected.sexp
+depends="
+ pcre
+ python3
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
"
+# riscv64, loongarch64: ocaml
+arch="all !riscv64 !loongarch64"
+license="GPL-2.0-only"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/coccinelle/coccinelle/archive/$pkgver.tar.gz
-prepare() {
- ln -sf ../../SCORE_expected.sexp tests/
-}
+ unit-test-score.bin
+ "
build() {
./autogen
@@ -34,25 +36,26 @@ build() {
--prefix=/usr \
--enable-release=yes \
--with-python=/usr/bin/python3
- # Workaround: Build fails without forbidding parallel build
- make -j 1
-}
-check() {
- make check
+ # parallel build broken, but at least coccinelle is relatively small
+ make -j 1
}
package() {
make DESTDIR="$pkgdir" MANDIR="/usr/share/man" install
}
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion/completions
+check() {
+ # coccinelle runs unit tests and compares results with a score file to
+ # track new regressions. We provide it as unit-test-score.bin new to the
+ # APKBUILD.
+ ./spatch.opt \
+ --testall \
+ --no-update-score-file \
+ --expected-score-file "$srcdir"/unit-test-score.bin
}
-sha512sums="496b1632c92cc026fbe28f784f56d4cd78f89a8ccd28dc7db1069c0c6b2b239675a10da305e37ed2a03c605668ecd3399aeed522f12ec3fbbf3ca07277ab7bce coccinelle-1.0.8.tar.gz
-5b5947b61eea90874f48bce06e045761d3b19af857541869a2a01818f4a41bc7181f78313170780e7f05ba88d2652c6b3caa427bd9f51ebb9267837090f7f7da SCORE_expected.sexp"
+sha512sums="
+f935aef406d3356a8e3d08fa7dacd6dd8d49aeb3f00668b775a63881b8d8a259acbbaa21348cb32a8a1cc5cf13dcf10d7e871de0f7c0abb6e45eac24e892df98 coccinelle-1.1.1.tar.gz
+fbd6b52cbea7367f1dc103b9a1d6e7c0bb352952c6cc9436c484c1eb71d0fa605a67c51641be9dc3c72511f8efb78c2d937d4fae1986c3731905df2625c522d5 unit-test-score.bin
+"
diff --git a/testing/coccinelle/SCORE_expected.sexp b/testing/coccinelle/SCORE_expected.sexp
deleted file mode 100644
index d896429c615..00000000000
--- a/testing/coccinelle/SCORE_expected.sexp
+++ /dev/null
Binary files differ
diff --git a/testing/coccinelle/unit-test-score.bin b/testing/coccinelle/unit-test-score.bin
new file mode 100644
index 00000000000..37f06af715a
--- /dev/null
+++ b/testing/coccinelle/unit-test-score.bin
Binary files differ
diff --git a/testing/cockroach/01_no_githooks.patch b/testing/cockroach/01_no_githooks.patch
deleted file mode 100644
index ef641804261..00000000000
--- a/testing/cockroach/01_no_githooks.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/src/github.com/cockroachdb/cockroach/Makefile b/src/github.com/cockroachdb/cockroach/Makefile
-index f988916..5d0bf8d 100644
---- a/src/github.com/cockroachdb/cockroach/Makefile
-+++ b/src/github.com/cockroachdb/cockroach/Makefile
-@@ -253,18 +253,18 @@ $(foreach v,$(filter-out $(strip $(VALID_VARS)),$(.VARIABLES)),\
- .ALWAYS_REBUILD:
- .PHONY: .ALWAYS_REBUILD
-
--ifneq ($(GIT_DIR),)
-+#ifneq ($(GIT_DIR),)
- # If we're in a git worktree, the git hooks directory may not be in our root,
- # so we ask git for the location.
- #
- # Note that `git rev-parse --git-path hooks` requires git 2.5+.
--GITHOOKS := $(subst githooks/,$(GITHOOKSDIR)/,$(wildcard githooks/*))
--$(GITHOOKSDIR)/%: githooks/%
-- @echo installing $<
-- @rm -f $@
-- @mkdir -p $(dir $@)
-- @ln -s ../../$(basename $<) $(dir $@)
--endif
-+#GITHOOKS := $(subst githooks/,$(GITHOOKSDIR)/,$(wildcard githooks/*))
-+#$(GITHOOKSDIR)/%: githooks/%
-+# @echo installing $<
-+# @rm -f $@
-+# @mkdir -p $(dir $@)
-+# @ln -s ../../$(basename $<) $(dir $@)
-+#endif
-
- .SECONDARY: pkg/ui/yarn.installed
- pkg/ui/yarn.installed: pkg/ui/package.json pkg/ui/yarn.lock pkg/ui/yarn.protobufjs-cli.lock | bin/.submodules-initialized
diff --git a/testing/cockroach/APKBUILD b/testing/cockroach/APKBUILD
deleted file mode 100644
index 43bb422e3e4..00000000000
--- a/testing/cockroach/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Joe Holden <jwh@zorins.us>
-# Maintainer: Joe Holden <jwh@zorins.us>
-pkgname=cockroach
-pkgver=19.1.3
-pkgrel=1
-pkgdesc="The open source, cloud-native SQL database."
-url="https://cockroachlabs.com"
-arch="x86_64 aarch64"
-license="Apache-2.0"
-makedepends="go bash cmake autoconf linux-headers ncurses-dev coreutils"
-install="$pkgname.pre-install"
-pkgusers="cockroach"
-pkggroups="cockroach"
-subpackages="$pkgname-openrc"
-options="!check" # tests are broken
-source="${pkgname}-v${pkgver}.tar.gz::https://binaries.cockroachdb.com/${pkgname}-v${pkgver}.src.tgz
- cockroach.initd
- cockroach.confd
- 01_no_githooks.patch"
-
-builddir=${srcdir}/${pkgname}-v${pkgver}
-
-# Fails with a permission denied error on some builders without this.
-export GO111MODULE=off
-
-build() {
- local flags="-D_BSD_SOURCE -Wno-format"
- make CXXFLAGS="$flags -Wno-deprecated-copy -Wno-redundant-move -Wno-pessimizing-move -Wno-array-bounds" \
- CFLAGS="$flags" \
- TAGS="stdmalloc" BUILDTYPE="release" buildoss
-}
-
-package() {
- install -m755 -D ${srcdir}/${pkgname}.initd ${pkgdir}/etc/init.d/${pkgname}
- install -m644 -D ${srcdir}/${pkgname}.confd ${pkgdir}/etc/conf.d/${pkgname}
- install -m755 -o ${pkgusers} -g ${pkggroups} -D src/github.com/cockroachdb/${pkgname}/${pkgname}oss ${pkgdir}/usr/sbin/${pkgname}
-}
-sha512sums="acb44e9f340b90eda1575318c1099e5ccc5ed8fbfec40399c2d0349b30c91abee732c079c81391a6372985cd671305f9bf5e0ae5a6b470ec24f44683ade35b6c cockroach-v19.1.3.tar.gz
-94264601b5b8516d87072017d40ba293d17320c706ad7a2e3c49f1af2b1030071e33cf3353adce26c634d284d0be4e41f2f9a9749c5071e9f0921ed03429f4cf cockroach.initd
-7039d17eb3c251d941bc73af2264c9618b59f8301165764371bf1539c46366d35496b2c00ea134731fd1ca9a0b362f9ba331b03aa62339f75e14504af9eb44f9 cockroach.confd
-fe611479ba32a01a1ee7770170c54570cb4ac558fb756c44c90f9e31d59a5da74af81adf1e100e723d3956aea96748955919e5b000ee91d8f8fcb26cc678556f 01_no_githooks.patch"
diff --git a/testing/cockroach/cockroach.confd b/testing/cockroach/cockroach.confd
deleted file mode 100644
index 132daea1b02..00000000000
--- a/testing/cockroach/cockroach.confd
+++ /dev/null
@@ -1 +0,0 @@
-cockroach_opts="start --insecure --store=/var/lib/cockroach"
diff --git a/testing/cockroach/cockroach.initd b/testing/cockroach/cockroach.initd
deleted file mode 100644
index 33f4dc8636c..00000000000
--- a/testing/cockroach/cockroach.initd
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name=CockroachDB
-description="The open source, cloud-native SQL database."
-
-command=/usr/sbin/cockroach
-command_args="${cockroach_opts}"
-command_user="cockroach:cockroach"
-pidfile=/run/${RC_SVCNAME}.pid
diff --git a/testing/cockroach/cockroach.pre-install b/testing/cockroach/cockroach.pre-install
deleted file mode 100644
index 03cdcfe1884..00000000000
--- a/testing/cockroach/cockroach.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S cockroach 2>/dev/null
-adduser -S -H -D -h /var/empty -s /sbin/nologin -G cockroach -g cockroach cockroach 2>/dev/null
-
-exit 0
diff --git a/testing/cocogitto/APKBUILD b/testing/cocogitto/APKBUILD
new file mode 100644
index 00000000000..8863f207acd
--- /dev/null
+++ b/testing/cocogitto/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Thomas Böhler <witcher@wiredspace.de>
+# Maintainer: Thomas Böhler <witcher@wiredspace.de>
+pkgname=cocogitto
+pkgver=6.1.0
+pkgrel=0
+pkgdesc="The Conventional Commits toolbox"
+url="https://docs.cocogitto.io/"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/cocogitto/cocogitto/archive/refs/tags/$pkgver.tar.gz
+ "
+options="!check" # tests relies on, among other things, specific tags
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ local compgen="target/release/cog generate-completions"
+
+ $compgen bash > cog.bash
+ $compgen fish > cog.fish
+ $compgen zsh > cog.zsh
+
+ mkdir man
+ target/release/cog generate-manpages man
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin target/release/cog
+
+ install -Dm644 -t "$pkgdir"/usr/share/doc/"$pkgname" CHANGELOG.md
+ install -Dm644 -t "$pkgdir"/usr/share/doc/"$pkgname" README.md
+
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/"$pkgname" LICENSE
+
+ for i in man/*.1; do
+ gzip "$i"
+ install -Dm644 -t "$pkgdir"/usr/share/man/man1 "$i".gz
+ done
+
+ install -Dm644 cog.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/cog
+ install -Dm644 cog.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/cog.fish
+ install -Dm644 cog.bash \
+ "$pkgdir"/usr/share/zsh/site-functions/_cog
+}
+
+sha512sums="
+362d5fb3d976353bdd1b1bdae04c261865e7e5da44af68f591ee974c83aab54b827db6b50f1aa16ef362201fa04e595b8ffae9a6743b7505a3511fef6b4242f1 cocogitto-6.1.0.tar.gz
+"
diff --git a/testing/code-oss/APKBUILD b/testing/code-oss/APKBUILD
new file mode 100644
index 00000000000..9b0ba5009ea
--- /dev/null
+++ b/testing/code-oss/APKBUILD
@@ -0,0 +1,160 @@
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=code-oss
+pkgver=1.88.0
+pkgrel=0
+# get this from vscodium
+_productjson=2faafce844f574e1db0a27def376bacad2a15023
+pkgdesc="Visual Studio Code (OSS, with VSX)"
+url="https://github.com/microsoft/vscode"
+arch="aarch64 x86_64" # electron
+license="MIT"
+depends="electron ripgrep"
+makedepends="
+ electron-dev
+ imagemagick
+ jq
+ krb5-dev
+ libsecret-dev
+ libxkbfile-dev
+ nodejs18
+ npm
+ pngquant
+ python3
+ yarn
+ "
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+install="$pkgname.post-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/microsoft/vscode/archive/refs/tags/$pkgver.tar.gz
+ product-$_productjson.json::https://github.com/VSCodium/vscodium/raw/$_productjson/product.json
+ launcher
+ enable-extensions.patch
+ no-git.patch
+ no-res.patch.noauto
+ electron21.patch
+ webpack-hash.patch.noauto
+ system-electron.patch.noauto
+ no-source-maps.patch
+ "
+builddir="$srcdir/vscode-$pkgver"
+options="!check net" # no tests (that make sense to run..)
+
+export ELECTRON_SKIP_BINARY_DOWNLOAD=1
+export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
+export npm_config_nodedir=/usr/include/electron/node_headers
+export npm_config_build_from_source=true
+
+prepare() {
+ default_prepare
+
+ sed -i '/^disturl\b/d' .yarnrc
+ echo 'ignore-engines "true"' >> .yarnrc
+
+ # block husky
+ git init .
+
+ # electron 20+ workaround for bad gyp usage
+ # XXX: LARGEFILE64 fixme
+ export CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
+ export CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
+ export CXXFLAGS="$CXXFLAGS -std=c++17 -D_LARGEFILE64_SOURCE"
+
+ yarn install --cache-folder "$srcdir" --frozen-lockfile
+
+ patch -Np1 < "$srcdir"/webpack-hash.patch.noauto
+ patch -Np1 < "$srcdir"/no-res.patch.noauto
+ patch -Np1 < "$srcdir"/system-electron.patch.noauto
+
+ # patch out telemetry
+ # backported from https://github.com/VSCodium/vscodium/blob/master/undo_telemetry.sh
+ rg --no-ignore -l "\.data\.microsoft\.com" . \
+ | grep -v "\.map\$" | xargs -t -n 1 -P ${JOBS:-2} sed -i -E "s|//[^/]+\.data\.microsoft\.com|//0\.0\.0\.0|g"
+
+ # merge the product.json from the repo with one from vscodium repo
+ # this fixes some extensions, including python
+ cp product.json original_product.json
+ jq -s '.[0] * .[1]' original_product.json "$srcdir"/product-$_productjson.json > product.json
+}
+
+build() {
+ node18 --max_old_space_size=4096 ./node_modules/.bin/gulp vscode-linux-x64-min
+
+ cd resources/linux
+
+ mv code.png code-1024-x.png
+ local size
+ for size in 16 24 32 48 64 128 192 256 512; do
+ convert code-1024-x.png -resize ${size}x$size code-$size-x.png
+ < code-$size-x.png pngquant --speed 1 - > code-$size.png
+ done
+ < code-1024-x.png pngquant --speed 1 - > code-1024.png
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/applications
+ sed -e "s|@@NAME_LONG@@|Code - OSS|g" \
+ -e "s|@@NAME_SHORT@@|Code - OSS|g" \
+ -e "s|@@NAME@@|code-oss|g" \
+ -e "s|@@EXEC@@|/usr/bin/code-oss|g" \
+ -e "s|@@ICON@@|com.visualstudio.code.oss|g" \
+ -e "s|@@URLPROTOCOL@@|code-oss|g" \
+ resources/linux/code.desktop > "$pkgdir"/usr/share/applications/code-oss.desktop
+ sed -e "s|@@NAME_LONG@@|Code - OSS|g" \
+ -e "s|@@NAME_SHORT@@|Code - OSS|g" \
+ -e "s|@@NAME@@|code-oss|g" \
+ -e "s|@@EXEC@@|/usr/bin/code-oss|g" \
+ -e "s|@@ICON@@|com.visualstudio.code.oss|g" \
+ -e "s|@@URLPROTOCOL@@|code-oss|g" \
+ resources/linux/code-url-handler.desktop > "$pkgdir"/usr/share/applications/code-oss-url-handler.desktop
+
+ for size in 16 24 32 48 64 128 192 256 512 1024; do
+ install -Dm644 resources/linux/code-$size.png \
+ "$pkgdir"/usr/share/icons/hicolor/${size}x$size/apps/com.visualstudio.code.oss.png
+ done
+
+ mkdir -p "$pkgdir"/usr/share/metainfo
+ sed -e "s|@@NAME_LONG@@|Code - OSS|g" \
+ -e "s|@@NAME@@|code-oss|g" \
+ -e "s|@@LICENSE@@|MIT|g" \
+ resources/linux/code.appdata.xml > "$pkgdir"/usr/share/metainfo/code-oss.appdata.xml
+
+ mkdir -p "$pkgdir"/usr/share/mime/packages
+ sed -e "s|@@NAME_LONG@@|Code - OSS|g" \
+ -e "s|@@NAME@@|code-oss|g" \
+ resources/linux/code-workspace.xml > "$pkgdir"/usr/share/mime/packages/code-oss-workspace.xml
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ sed -e "s|@@APPNAME@@|code-oss|g" \
+ resources/completions/bash/code > "$pkgdir"/usr/share/bash-completion/completions/code-oss
+
+ mkdir -p "$pkgdir"/usr/share/zsh/site-functions
+ sed -e "s|@@APPNAME@@|code-oss|g" \
+ resources/completions/zsh/_code > "$pkgdir"/usr/share/zsh/site-functions/_code-oss
+
+ mkdir -p "$pkgdir"/usr/lib/code-oss/resources
+ cp -a ../VSCode-linux-x64/resources/app "$pkgdir"/usr/lib/code-oss/resources/
+
+ # disable update server
+ sed -i "/updateUrl/d" "$pkgdir"/usr/lib/code-oss/resources/app/product.json
+
+ # link to system rg
+ ln -sfv /usr/bin/rg \
+ "$pkgdir"/usr/lib/code-oss/resources/app/node_modules.asar.unpacked/@vscode/ripgrep/bin/rg
+
+ install -Dm755 "$srcdir"/launcher "$pkgdir"/usr/bin/code-oss
+}
+
+sha512sums="
+62617506f0b28d75329eed12041ad81813d14468d42686f4efab0bdf5a9c1c72ca8f094d43992dbf1a4319c112eddfb96ed0a6455d5c23f24cd4dd3dfeb6c012 code-oss-1.88.0.tar.gz
+c46cdcad59d796ea91492ee763897baaf36f7329126d6fd8f6bb782aaefeeba9ddf79c877ab8c22ad1f2194fee5b57b998b81ff994f714d36fc0759da8905ce2 product-2faafce844f574e1db0a27def376bacad2a15023.json
+cca94a1762eec922b6fc4a93301087588455a82ea0e19733cb1067deec1fc64e05d466613860820d680dd8cf16e2aca30bc11afc84a315de1a9c2cb12854cbea launcher
+9f36c7fa6f0fd6a516f8e22c47f53013337985e59085bf1ea70165d42a513a92aa2a7a99ef0715e752c7190fd39ba703d405838e61bcfb60cabe47c421781eb4 enable-extensions.patch
+4f10b14aaab71e69652662dea0dd5ba00d996282bc864743210185d93a9b7c54c71942fe1e7cd630abd914e3c770eca6c2110c13fb6a8c5e728c5172d1d0cd9f no-git.patch
+48e46bd2ec1490e456a9227c4d74eae5e5c6a7e48a98f8f463370bf60eb7fcb140337e3e02577dea1eabbc48174e2e3b31a4717a945d5dc21ccdbfd3a9807349 no-res.patch.noauto
+050bcf858362836ad71ae204a50ce61eb1d512ae29778bff4f1f162a8650892e4a9d44295319d8142126a49a8fa1e6b306429c74a7448077051d479f04c19a93 electron21.patch
+0939ed0e39883b27ac13cdde2e1dbce506043997b6b52610d1f75560db58bac646d6f8fd6b909e8ad595aab6ed9f3777206e33d7fa5a58e0a7acc4c530b5d6b0 webpack-hash.patch.noauto
+7808076aff7037369c9dd40ee07374311a954be513ae08b4c152ff04cbd6fc20ab9e9799e0b62da91135084f98dc55fbe0b593f4a263c30dd12fd88d680f3db0 system-electron.patch.noauto
+20310187474b13bb0d4a7d39cdd93cdb005bf241110da0b02c4fa0927363fe8ea566dd259ce767ceffab771806f3365c209e401f1a3435361582bbedb525c5c7 no-source-maps.patch
+"
diff --git a/testing/code-oss/code-oss.post-install b/testing/code-oss/code-oss.post-install
new file mode 100755
index 00000000000..2579b25376c
--- /dev/null
+++ b/testing/code-oss/code-oss.post-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cat <<EOF
+*
+* This package uses the OpenVSX registry for extensions, not the regular vscode
+* registry. As such, some things may be missing or out of date, and this is not
+* a bug.
+* https://open-vsx.org/
+*
+EOF
diff --git a/testing/code-oss/electron21.patch b/testing/code-oss/electron21.patch
new file mode 100644
index 00000000000..bd66a8cc823
--- /dev/null
+++ b/testing/code-oss/electron21.patch
@@ -0,0 +1,125 @@
+web-tree-sitter: https://github.com/tree-sitter/tree-sitter/issues/2338
+diff --git a/package.json b/package.json
+index 00d5e86..eda82d2 100644
+--- a/package.json
++++ b/package.json
+@@ -219,6 +219,10 @@
+ "xml2js": "^0.5.0",
+ "yaserver": "^0.4.0"
+ },
++ "resolutions": {
++ "nan": "^2.18.0",
++ "node-addon-api": "^7.1.0"
++ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/microsoft/vscode.git"
+diff --git a/yarn.lock b/yarn.lock
+index be4114f..20d1ed1 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -6778,10 +6778,10 @@
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+
+-nan@^2.12.1:
+- version "2.14.2"
+- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
+- integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
++nan@^2.12.1, nan@^2.18.0:
++ version "2.18.0"
++ resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
++ integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
+
+ nanoid@3.3.3:
+ version "3.3.3"
+@@ -6883,35 +6883,10 @@
+ dependencies:
+ semver "^7.3.5"
+
+-node-addon-api@7.1.0, node-addon-api@^7.1.0:
++node-addon-api@7.1.0, node-addon-api@^3.0.2, node-addon-api@^3.2.1, node-addon-api@^4.2.0, node-addon-api@^4.3.0, node-addon-api@^6.0.0, node-addon-api@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb"
+ integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==
+-
+-node-addon-api@^3.0.2:
+- version "3.1.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239"
+- integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
+-
+-node-addon-api@^3.2.1:
+- version "3.2.1"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+- integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+-
+-node-addon-api@^4.2.0:
+- version "4.2.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.2.0.tgz#117cbb5a959dff0992e1c586ae0393573e4d2a87"
+- integrity sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==
+-
+-node-addon-api@^4.3.0:
+- version "4.3.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
+- integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
+-
+-node-addon-api@^6.0.0:
+- version "6.0.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.0.0.tgz#cfb3574e6df708ff71a30db6c4762d9e06e11c27"
+- integrity sha512-GyHvgPvUXBvAkXa0YvYnhilSB1A+FRYMpIVggKzPZqdaZfevZOuzfWzyvgzOwRLHBeo/MMswmJFsrNF4Nw1pmA==
+
+ node-fetch@2.6.8:
+ version "2.6.8"
+--- ./remote/package.json.orig
++++ ./remote/package.json
+@@ -36,5 +36,9 @@
+ "vscode-textmate": "9.0.0",
+ "yauzl": "^2.9.2",
+ "yazl": "^2.4.3"
++ },
++ "resolutions": {
++ "nan": "^2.18.0",
++ "node-addon-api": "^7.1.0"
+ }
+ }
+--- ./remote/yarn.lock.orig
++++ ./remote/yarn.lock
+@@ -389,6 +389,11 @@
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
++nan@^2.18.0:
++ version "2.18.0"
++ resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
++ integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
++
+ napi-build-utils@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
+@@ -406,25 +411,10 @@
+ dependencies:
+ semver "^7.3.5"
+
+-node-addon-api@7.1.0, node-addon-api@^7.1.0:
++node-addon-api@7.1.0, node-addon-api@^3.0.2, node-addon-api@^3.2.1, node-addon-api@^4.3.0, node-addon-api@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.0.tgz#71f609369379c08e251c558527a107107b5e0fdb"
+ integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==
+-
+-node-addon-api@^3.0.2:
+- version "3.1.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.1.0.tgz#98b21931557466c6729e51cb77cd39c965f42239"
+- integrity sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==
+-
+-node-addon-api@^3.2.1:
+- version "3.2.1"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+- integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+-
+-node-addon-api@^4.3.0:
+- version "4.3.0"
+- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
+- integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
+
+ node-gyp-build@^4.3.0:
+ version "4.3.0"
diff --git a/testing/code-oss/enable-extensions.patch b/testing/code-oss/enable-extensions.patch
new file mode 100644
index 00000000000..c1e0f1fa5fe
--- /dev/null
+++ b/testing/code-oss/enable-extensions.patch
@@ -0,0 +1,15 @@
+diff --git a/product.json b/product.json
+index 212ad63..85ec061 100644
+--- a/product.json
++++ b/product.json
+@@ -29,6 +29,10 @@
+ "reportIssueUrl": "https://github.com/microsoft/vscode/issues/new",
+ "urlProtocol": "code-oss",
+ "webviewContentExternalBaseUrlTemplate": "https://{{uuid}}.vscode-cdn.net/insider/ef65ac1ba57f57f2a3961bfe94aa20481caca4c6/out/vs/workbench/contrib/webview/browser/pre/",
++ "extensionsGallery": {
++ "serviceUrl": "https://open-vsx.org/vscode/gallery",
++ "itemUrl": "https://open-vsx.org/vscode/item"
++ },
+ "builtInExtensions": [
+ {
+ "name": "ms-vscode.js-debug-companion",
diff --git a/testing/code-oss/launcher b/testing/code-oss/launcher
new file mode 100644
index 00000000000..6910c13336a
--- /dev/null
+++ b/testing/code-oss/launcher
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+ELECTRON_RUN_AS_NODE=1 \
+ELECTRON_STILL_PASS_THE_DEFAULT_FLAGS=1 \
+exec /usr/bin/electron "/usr/lib/code-oss/resources/app/out/cli.js" \
+ --app="/usr/lib/code-oss/resources/app" \
+ "$@"
diff --git a/testing/code-oss/no-git.patch b/testing/code-oss/no-git.patch
new file mode 100644
index 00000000000..41e4e7a33e8
--- /dev/null
+++ b/testing/code-oss/no-git.patch
@@ -0,0 +1,11 @@
+diff --git a/build/npm/postinstall.js b/build/npm/postinstall.js
+index 187f123..8e489fb 100644
+--- a/build/npm/postinstall.js
++++ b/build/npm/postinstall.js
+@@ -110,6 +110,3 @@
+
+ yarnInstall(dir, opts);
+ }
+-
+-cp.execSync('git config pull.rebase merges');
+-cp.execSync('git config blame.ignoreRevsFile .git-blame-ignore-revs');
diff --git a/testing/code-oss/no-res.patch.noauto b/testing/code-oss/no-res.patch.noauto
new file mode 100644
index 00000000000..f39d7fb8717
--- /dev/null
+++ b/testing/code-oss/no-res.patch.noauto
@@ -0,0 +1,15 @@
+this is called to verify some fetched stuff (that the export= disables don't even
+fix, funny..), but none of it is used or even unpacked, so just skip it because
+it fails.
+--
+--- a/node_modules/sumchecker/index.js
++++ b/node_modules/sumchecker/index.js
+@@ -110,6 +110,8 @@
+ async validateFile (baseDir, filename) {
+ return new Promise((resolve, reject) => {
+ debug(`validateFile: ${filename}`)
++ resolve()
++ return
+
+ const metadata = this.checksums[filename]
+ if (!metadata) {
diff --git a/testing/code-oss/no-source-maps.patch b/testing/code-oss/no-source-maps.patch
new file mode 100644
index 00000000000..5c292d833dd
--- /dev/null
+++ b/testing/code-oss/no-source-maps.patch
@@ -0,0 +1,23 @@
+Error: EMFILE: too many open files, open '/home/lauren/aports/testing/code-oss/src/vscode-1.85.0/out-build/vs/base/browser/ui/list/listView.js.map'
+--- ./build/lib/optimize.ts.orig
++++ ./build/lib/optimize.ts
+@@ -121,7 +121,7 @@
+ }
+
+ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.IFile[], dest: string, fileContentMapper: (contents: string, path: string) => string): NodeJS.ReadWriteStream {
+- const useSourcemaps = /\.js$/.test(dest) && !/\.nls\.js$/.test(dest);
++ const useSourcemaps = false;
+
+ // If a bundle ends up including in any of the sources our copyright, then
+ // insert a fake source at the beginning of each bundle with our copyright
+--- ./build/lib/optimize.js.orig
++++ ./build/lib/optimize.js
+@@ -103,7 +103,7 @@
+ return code.replace('"$BASE_URL"', 'baseUrl');
+ }
+ function toConcatStream(src, bundledFileHeader, sources, dest, fileContentMapper) {
+- const useSourcemaps = /\.js$/.test(dest) && !/\.nls\.js$/.test(dest);
++ const useSourcemaps = false;
+ // If a bundle ends up including in any of the sources our copyright, then
+ // insert a fake source at the beginning of each bundle with our copyright
+ let containsOurCopyright = false;
diff --git a/testing/code-oss/system-electron.patch.noauto b/testing/code-oss/system-electron.patch.noauto
new file mode 100644
index 00000000000..30ad5828251
--- /dev/null
+++ b/testing/code-oss/system-electron.patch.noauto
@@ -0,0 +1,16 @@
+--- ./node_modules/@vscode/gulp-electron/src/index.js.orig
++++ ./node_modules/@vscode/gulp-electron/src/index.js
+@@ -48,11 +48,8 @@
+
+ var sources = es
+ .merge(es.readArray(buffer), pass)
+- .pipe(moveApp(platform, opts));
+-
+- var electron = download(opts).pipe(platform.patch(opts));
+-
+- es.merge(sources, electron).pipe(result);
++ .pipe(moveApp(platform, opts))
++ .pipe(result);
+
+ buffer = null;
+ })
diff --git a/testing/code-oss/webpack-hash.patch.noauto b/testing/code-oss/webpack-hash.patch.noauto
new file mode 100644
index 00000000000..7b4e1f85dc3
--- /dev/null
+++ b/testing/code-oss/webpack-hash.patch.noauto
@@ -0,0 +1,11 @@
+--- a/node_modules/webpack/lib/util/createHash.js
++++ b/node_modules/webpack/lib/util/createHash.js
+@@ -142,7 +142,7 @@
+ default:
+ if (crypto === undefined) crypto = require("crypto");
+ return new BulkUpdateDecorator(
+- () => crypto.createHash(algorithm),
++ () => crypto.createHash("sha1"),
+ algorithm
+ );
+ }
diff --git a/testing/codeberg-cli/APKBUILD b/testing/codeberg-cli/APKBUILD
new file mode 100644
index 00000000000..f1c8697861e
--- /dev/null
+++ b/testing/codeberg-cli/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=codeberg-cli
+pkgver=0.3.5
+pkgrel=0
+pkgdesc="CLI Tool for Codeberg similar to gh and glab"
+url="https://codeberg.org/RobWalt/codeberg-cli"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/RobWalt/codeberg-cli/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+options="net !check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm755 target/release/berg -t "$pkgdir"/usr/bin
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ mkdir -p "$pkgdir"/usr/share/fish/vendor_completions.d
+ mkdir -p "$pkgdir"/usr/share/zsh/site-functions
+
+ target/release/berg completion bash > "$pkgdir"/usr/share/bash-completion/completions/berg
+ target/release/berg completion fish > "$pkgdir"/usr/share/fish/vendor_completions.d/berg.fish
+ target/release/berg completion zsh > "$pkgdir"/usr/share/zsh/site-functions/_berg
+}
+
+sha512sums="
+cd22faee4d2fca78dcdee857112dd5cd8c03f314266a8ddaabddb4fcc054688fe1d3b679c904b84a40356b1404893e7999f0ddb651efcdfdc83c93cf512e5ce2 codeberg-cli-0.3.5.tar.gz
+"
diff --git a/testing/codemadness-frontends/APKBUILD b/testing/codemadness-frontends/APKBUILD
deleted file mode 100644
index 3c112a59cda..00000000000
--- a/testing/codemadness-frontends/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Miles Alan <m@milesalan.com>
-pkgname=codemadness-frontends
-pkgver=0.1
-pkgrel=0
-pkgdesc="Experimental (cli, web, and gopher) frontends for youtube, reddit, & duckduckgo"
-url="https://www.codemadness.org/idiotbox.html"
-arch="all"
-license="ISC"
-makedepends="libressl-dev libtls-standalone"
-options="!check" # Has no tests
-source="$pkgname-$pkgver.tar.gz::https://codemadness.org/releases/frontends/frontends-$pkgver.tar.gz"
-builddir="$srcdir/frontends-$pkgver"
-
-prepare() {
- sed -i 's/^#FRONTENDS_/FRONTENDS_/g' Makefile
- sed -i 's/^#LIBTLS_/LIBTLS_/g' Makefile
- default_prepare
-}
-
-build() {
- make
-}
-
-package() {
- install -Dm755 youtube/cgi $pkgdir/usr/bin/youtube-cgi
- install -Dm755 youtube/gopher $pkgdir/usr/bin/youtube-gopher
- install -Dm755 youtube/cli $pkgdir/usr/bin/youtube-cli
-
- install -Dm755 duckduckgo/gopher $pkgdir/usr/bin/duckduckgo-gopher
- install -Dm755 duckduckgo/cli $pkgdir/usr/bin/duckduckgo-cli
-
- install -Dm755 reddit/gopher $pkgdir/usr/bin/reddit-gopher
- install -Dm755 reddit/cli $pkgdir/usr/bin/reddit-cli
-}
-
-
-sha512sums="1c563cf135567069fed33a36af177a15872a5288e1ef0211432dff72ff07458b86b421014b307d8015e847bf646e8bdd888b8f983d214edc4952c555e7963506 codemadness-frontends-0.1.tar.gz"
diff --git a/testing/coin/APKBUILD b/testing/coin/APKBUILD
new file mode 100644
index 00000000000..7881fd9d021
--- /dev/null
+++ b/testing/coin/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=coin
+pkgver=4.0.0
+pkgrel=6
+pkgdesc="OpenGL OpenInventor compatible graphics library"
+url="https://github.com/coin3d/coin"
+license="BSD-3-Clause"
+arch="all"
+makedepends="boost-dev cmake glu-dev graphviz samurai"
+subpackages="$pkgname-dev"
+source="https://github.com/coin3d/coin/releases/download/Coin-$pkgver/coin-$pkgver-src.tar.gz
+ TestSuitePatch.patch
+ "
+builddir="$srcdir/coin"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCOIN_BUILD_TESTS=ON
+ cmake --build build
+}
+
+check() {
+ cmake --build build --target test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+e036276a243bfe252569cee1b67d38b8633fcf35bdf4e366a92ca67e23799d54d91fe272c23b383c451d330cee284809f28f237857493948149e0da1ebd64fae coin-4.0.0-src.tar.gz
+aab464244b13371badf0878e5bfbcce859a42756cf8c7657d1480318aa291d296eac2741219c346bae056f761c5f46857f8fd1ec1c4129f86bc10236d3869deb TestSuitePatch.patch
+"
diff --git a/testing/coin/TestSuitePatch.patch b/testing/coin/TestSuitePatch.patch
new file mode 100644
index 00000000000..ce484e52c4a
--- /dev/null
+++ b/testing/coin/TestSuitePatch.patch
@@ -0,0 +1,11 @@
+--- ./testsuite/TestSuiteUtils.cpp
++++ ./testsuite/TestSuiteUtils.cpp
+@@ -39,7 +39,7 @@
+ #elif defined(_WIN32)
+ #define USE_WIN32
+ #else //_WIN32
+-#error Unknown system
++#define USE_POSIX
+ #endif //POSIX
+
+ #include <Inventor/errors/SoDebugError.h>
diff --git a/testing/colorpicker/APKBUILD b/testing/colorpicker/APKBUILD
new file mode 100644
index 00000000000..15603ae8c72
--- /dev/null
+++ b/testing/colorpicker/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: jona <ein.jona.mit.f@gmail.com>
+# Maintainer: jona <ein.jona.mit.f@gmail.com>
+pkgname=colorpicker
+pkgver=0_git20201128
+pkgrel=1
+_commit="782eafb16f1799376d548c93bf2786abc8ebd76e"
+pkgdesc="simplest command line color picker"
+url="https://github.com/ym1234/colorpicker"
+arch="all"
+license="MIT"
+options="!check" # no test suite
+makedepends="libx11-dev"
+source="https://github.com/ym1234/colorpicker/archive/$_commit/colorpicker-$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="4274d891257dff072ff6d74a3a388989a07ef45db47df45926deea99283ee08237070de161e184a9e1dd7c2ad4ec03131a8ed8854558897bdde6e4691937a316 colorpicker-782eafb16f1799376d548c93bf2786abc8ebd76e.tar.gz"
diff --git a/testing/comics-downloader/APKBUILD b/testing/comics-downloader/APKBUILD
new file mode 100644
index 00000000000..0f17a826b0b
--- /dev/null
+++ b/testing/comics-downloader/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=comics-downloader
+pkgver=0.33.8
+pkgrel=2
+pkgdesc="Tool to download comics and manga in pdf/epub/cbr/cbz from a website"
+url="https://github.com/Girbons/comics-downloader"
+license="MIT"
+arch="all"
+# tests download stuff from random website and compare to predefined values
+options="chmod-clean !check"
+makedepends="go mesa-dev libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev"
+subpackages="$pkgname-gui:gui"
+source="$pkgver-$pkgname.tar.gz::https://github.com/Girbons/comics-downloader/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o build/comics-downloader ./cmd/downloader
+ go build -o build/comics-downloader-gui ./cmd/gui
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 "$builddir"/build/comics-downloader \
+ "$pkgdir"/usr/bin/comics-downloader-linux
+}
+
+gui() {
+ install -Dm755 "$builddir"/build/comics-downloader-gui \
+ "$subpkgdir"/usr/bin/comics-downloader-linux-gui
+}
+
+sha512sums="
+0556444babdb8fbbce01ca661272ecedea3e4c8c5fcfe8d505368bb64a41c58c3c3cef5688c3823fcde078f7954d0754d955ea74356f20adcf7e6f45fc73f06d 0.33.8-comics-downloader.tar.gz
+"
diff --git a/testing/commoncpp/APKBUILD b/testing/commoncpp/APKBUILD
new file mode 100644
index 00000000000..33ae399f940
--- /dev/null
+++ b/testing/commoncpp/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=commoncpp
+pkgver=7.0.1
+pkgrel=1
+pkgdesc="Class framework designed for telephony applications"
+url="https://www.gnu.org/software/commoncpp/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake samurai openssl-dev>3"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
+source="https://git.savannah.gnu.org/cgit/commoncpp.git/snapshot/commoncpp-$pkgver.tar.gz"
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DBUILD_TESTING=ON
+ cmake --build build
+}
+
+check() {
+ cd build/test
+ for test in test-*; do
+ echo "Running test $test"
+ ./$test
+ done
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+ amove usr/share/ucommon
+}
+
+tools() {
+ amove usr/bin
+}
+
+sha512sums="
+8c16cd3bc498af13545529801213e7a1f2e19ce2a2de38887a6d85e5768d2f2aed703d56dcb1c520d0fb3df54b8f8be8ba24821ac1b8d26c31962a2806b796b7 commoncpp-7.0.1.tar.gz
+"
diff --git a/testing/compiz/APKBUILD b/testing/compiz/APKBUILD
new file mode 100644
index 00000000000..6dda64466c0
--- /dev/null
+++ b/testing/compiz/APKBUILD
@@ -0,0 +1,107 @@
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=compiz
+pkgver=0.9.14.2
+pkgrel=4
+pkgdesc="OpenGL window and compositing manager"
+url="http://www.compiz.org/"
+arch="all"
+depends_dev="
+ cython
+ dbus-glib-dev
+ glu-dev
+ gtk+3.0-dev
+ intltool
+ libjpeg-turbo-dev
+ libnotify-dev
+ libpng-dev
+ librsvg-dev
+ libsm-dev
+ libxext-dev
+ libxi-dev
+ libxinerama-dev
+ libwnck3-dev
+ mesa-dev
+ metacity-dev
+ protobuf-dev
+ py3-setuptools
+ python3-dev
+ startup-notification-dev
+ "
+makedepends="
+ $depends_dev
+ boost-dev
+ cairo-dev
+ cmake
+ glibmm-dev
+ gtest-dev
+ libice-dev
+ libx11-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxdamage-dev
+ libxml2-dev
+ libxrandr-dev
+ libxslt-dev
+ pango-dev
+ py3-setuptools
+ samurai
+ xz
+ "
+subpackages="
+ $pkgname-dev:_dev
+ $pkgname-utils:_utils:noarch
+ $pkgname-lang
+ $pkgname-pyc
+ "
+license=MIT
+source="$pkgname-$pkgver.tar.xz::https://launchpad.net/compiz/${pkgver%.*}/$pkgver/+download/compiz-$pkgver.tar.xz
+ basename.patch
+ boost.patch
+ gtest.patch
+ libgen.patch
+ opengl.patch
+ protobuf.patch
+ startup-notification-long.patch
+ "
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ cmake -S . -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCOMPIZ_WERROR=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+_dev() {
+ default_dev
+ amove usr/share/cmake-*
+ amove usr/share/compiz/cmake
+ amove usr/share/compiz/xslt
+}
+
+_utils() {
+ depends="py3-cairo"
+ pkgdesc="$pkgdesc (development utilities)"
+
+ amove usr/bin/ccsm
+}
+sha512sums="
+6d064c65be2af5a9676021d35ade64d262f1ddff0e974bd711805b6975d99697bb188f4a13d919b6f0f26a49544305d397d6c74e790b7672caeffc38f74ab145 compiz-0.9.14.2.tar.xz
+2d749f3e384e43454c7c9f4cf16c5289905142d5b14ced2f7a8e173a282e7a4b49e32c106d34d77f9c201f81dfb0bb92090680d9c5250f3571e136b28626c940 basename.patch
+669c32ad7e4428dbbc20bcc8f99764f2c0a28b0641b094fa89abcdf760df82d3fddaf1ac6b0596d0a80c1fe81e641c0ad64b550b93a6dfdf7f4759d687840a8f boost.patch
+2bbc6456deb85474416049eed194d5df7ec6c445f61c8f691f05f86cfee761cb634011fa658f2cd04c6740fea00400d536437bc7f210730f6651c490e96cb6c9 gtest.patch
+1b3ada1f7fe818cadff8729a3778f161776be4641e1bf36a2ab185921fbcff2e64b9a1d2576441913c7561e1d327612ebdd4a20fde9941a57b3f32e7084f444c libgen.patch
+aa6b4ba66b512d8cb09b17cd7e30a0ac2ed64ed11ef17613587c1b16c8c6146b2b526aba580b04db03f5b653c4c08ba0e7c57f2edd732a535db5da9f61c7b8f5 opengl.patch
+9dd0d4c2361fd56645d2f7b634dee32f1d44a67d36b53e550108acc78a8400bfd3c57132a8a029e9884b9f05cdd3a7533c65355d0a3dd80564544931eaced258 protobuf.patch
+2258ab2cf9cea0f3b16c0054b5471e89c11eb75b2dc337e4a2ad63d443435668f383e89e08903085ffc3de78816c41e1d3104e987d792fdf801be85e779faac3 startup-notification-long.patch
+"
diff --git a/testing/compiz/basename.patch b/testing/compiz/basename.patch
new file mode 100644
index 00000000000..fd51d5a825b
--- /dev/null
+++ b/testing/compiz/basename.patch
@@ -0,0 +1,25 @@
+diff --git a/plugins/colorfilter/src/colorfilter.cpp b/plugins/colorfilter/src/colorfilter.cpp
+index ca7eb41..b7004b5 100644
+--- a/plugins/colorfilter/src/colorfilter.cpp
++++ b/plugins/colorfilter/src/colorfilter.cpp
+@@ -262,7 +262,7 @@ ColorfilterScreen::loadFilters ()
+ loaded = 0;
+ for (int i = 0; i < count; i++)
+ {
+- name = CompString (basename (filters.at (i).s ().c_str ()));
++ name = CompString (basename ((char*)filters.at (i).s ().c_str ()));
+ if (boost::algorithm::ends_with (name, ".frag"))
+ name.erase (name.end () - 5, name.end ());
+ file = filters.at (i).s ();
+diff --git a/compizconfig/libcompizconfig/src/main.c b/compizconfig/libcompizconfig/src/main.c
+index 1664d40..0029739 100644
+--- a/compizconfig/libcompizconfig/src/main.c
++++ b/compizconfig/libcompizconfig/src/main.c
+@@ -34,6 +34,7 @@
+ #include <math.h>
+ #include <errno.h>
+ #include <assert.h>
++#include <libgen.h>
+
+ #include <ccs.h>
+
diff --git a/testing/compiz/boost.patch b/testing/compiz/boost.patch
new file mode 100644
index 00000000000..96c2ed9388c
--- /dev/null
+++ b/testing/compiz/boost.patch
@@ -0,0 +1,27 @@
+
+diff --git a/src/timer/src/timer.cpp b/src/timer/src/timer.cpp
+index fb6a7ec..61221be 100644
+--- a/src/timer/src/timer.cpp
++++ b/src/timer/src/timer.cpp
+@@ -168,7 +168,7 @@ PrivateTimer::PrivateTimer () :
+ mMaxTime (0),
+ mMinDeadline (0),
+ mMaxDeadline (0),
+- mCallBack (NULL)
++ mCallBack ([]() -> int { return 0; })
+ {
+ }
+
+diff --git a/plugins/mousepoll/src/mousepoll.cpp b/plugins/mousepoll/src/mousepoll.cpp
+index 7b7e717..147a591 100644
+--- a/plugins/mousepoll/src/mousepoll.cpp
++++ b/plugins/mousepoll/src/mousepoll.cpp
+@@ -201,7 +201,7 @@ MousePoller::getPosition ()
+ MousePoller::MousePoller () :
+ mActive (false),
+ mPoint (0, 0),
+- mCallback (NULL)
++ mCallback ([](const CompPoint &) { })
+ {
+ }
+
diff --git a/testing/compiz/gtest.patch b/testing/compiz/gtest.patch
new file mode 100644
index 00000000000..37eac2d8f57
--- /dev/null
+++ b/testing/compiz/gtest.patch
@@ -0,0 +1,101 @@
+diff --git a/compizconfig/gsettings/mocks/CMakeLists.txt b/compizconfig/gsettings/mocks/CMakeLists.txt
+index 14fe51e..d105bb1 100644
+--- a/compizconfig/gsettings/mocks/CMakeLists.txt
++++ b/compizconfig/gsettings/mocks/CMakeLists.txt
+@@ -8,7 +8,7 @@ if (GLIB_FOUND)
+ ${CMAKE_CURRENT_SOURCE_DIR}/../gsettings_backend_shared
+ ${GLIB_INCLUDE_DIRS})
+
+- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+
+ add_library (compizconfig_ccs_gsettings_wrapper_mock STATIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/ccs_gsettings_wrapper_mock.cpp
+diff --git a/compizconfig/gsettings/tests/CMakeLists.txt b/compizconfig/gsettings/tests/CMakeLists.txt
+index 9a81a5d..2e3bbb0 100644
+--- a/compizconfig/gsettings/tests/CMakeLists.txt
++++ b/compizconfig/gsettings/tests/CMakeLists.txt
+@@ -16,7 +16,7 @@ pkg_check_modules (COMPIZCONFIG_TEST_GSETTINGS gio-2.0 glib-2.0)
+
+ if (COMPIZCONFIG_TEST_GSETTINGS_FOUND)
+
+- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+
+ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../libcompizconfig/tests)
+ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../testenvironments)
+diff --git a/compizconfig/integration/gnome/gsettings/tests/CMakeLists.txt b/compizconfig/integration/gnome/gsettings/tests/CMakeLists.txt
+index 683c83f..7778503 100644
+--- a/compizconfig/integration/gnome/gsettings/tests/CMakeLists.txt
++++ b/compizconfig/integration/gnome/gsettings/tests/CMakeLists.txt
+@@ -11,7 +11,7 @@ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../mocks/libcompizconfig)
+ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../tests/)
+ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../src/)
+
+-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+
+ add_executable (compizconfig_test_ccs_gnome_gsettings_integrated_setting
+ ${CMAKE_CURRENT_SOURCE_DIR}/compizconfig_test_ccs_gnome_gsettings_integrated_setting.cpp)
+diff --git a/compizconfig/integration/gnome/tests/CMakeLists.txt b/compizconfig/integration/gnome/tests/CMakeLists.txt
+index 30fd552..26fdff1 100644
+--- a/compizconfig/integration/gnome/tests/CMakeLists.txt
++++ b/compizconfig/integration/gnome/tests/CMakeLists.txt
+@@ -8,7 +8,7 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../../../gsettings/mocks)
+ include_directories (${CMAKE_SOURCE_DIR}/compizconfig/tests)
+ link_directories (${CMAKE_INSTALL_PREFIX}/lib)
+
+-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+
+ add_library (compizconfig_ccs_mock_gnome_integrated_setting_composition
+ ${CMAKE_CURRENT_SOURCE_DIR}/compizconfig_ccs_mock_gnome_integrated_setting_composition.c)
+diff --git a/compizconfig/libcompizconfig/tests/CMakeLists.txt b/compizconfig/libcompizconfig/tests/CMakeLists.txt
+index a3a42f9..78446f4 100644
+--- a/compizconfig/libcompizconfig/tests/CMakeLists.txt
++++ b/compizconfig/libcompizconfig/tests/CMakeLists.txt
+@@ -9,7 +9,7 @@ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../mocks/libcompizconfig)
+ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../../tests/)
+ link_directories (${CMAKE_CURRENT_BINARY_DIR}/../src/)
+
+-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+
+ add_definitions (-DCONFIGDIR="${COMPIZCONFIG_CONFIG_DIR}")
+
+diff --git a/cmake/CompizCommon.cmake b/cmake/CompizCommon.cmake
+index b567cfc..d06e86b 100644
+--- a/cmake/CompizCommon.cmake
++++ b/cmake/CompizCommon.cmake
+@@ -54,7 +54,7 @@ set (
+
+ # Almost everything is a shared library now, so almost everything needs -fPIC
+ set (COMMON_FLAGS "-fPIC -Wall")
+-set (COMMON_CXX_FLAGS "-std=c++11")
++set (COMMON_CXX_FLAGS "-std=c++14")
+
+ option (COMPIZ_SUBOBJECT_LINKAGE_WARNINGS "Warn about subobject linkage" OFF)
+ if (NOT COMPIZ_SUBOBJECT_LINKAGE_WARNINGS)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index fcf974f..997d050 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -16,7 +16,6 @@ add_subdirectory( servergrab )
+ IF (COMPIZ_BUILD_TESTING)
+ add_subdirectory( privatescreen/tests )
+ add_subdirectory( wrapsystem/tests )
+-add_subdirectory( plugin )
+ add_subdirectory( option/tests )
+ add_subdirectory( tests )
+ ENDIF (COMPIZ_BUILD_TESTING)
+diff --git a/tests/acceptance-tests/autopilot/CMakeLists.txt b/tests/acceptance-tests/autopilot/CMakeLists.txt
+index 9999379..d6e1f7c 100644
+--- a/tests/acceptance-tests/autopilot/CMakeLists.txt
++++ b/tests/acceptance-tests/autopilot/CMakeLists.txt
+@@ -7,6 +7,3 @@ set (COMPIZ_AUTOPILOT_ACCEPTANCE_TEST_LIBRARIES
+
+ target_link_libraries (compiz_autopilot_acceptance_tests
+ ${COMPIZ_AUTOPILOT_ACCEPTANCE_TEST_LIBRARIES})
+-
+-install (TARGETS compiz_autopilot_acceptance_tests
+- RUNTIME DESTINATION ${exec_prefix})
diff --git a/testing/compiz/libgen.patch b/testing/compiz/libgen.patch
new file mode 100644
index 00000000000..e191dfa6940
--- /dev/null
+++ b/testing/compiz/libgen.patch
@@ -0,0 +1,12 @@
+diff --git a/plugins/colorfilter/src/colorfilter.cpp b/plugins/colorfilter/src/colorfilter.cpp
+index e2711fa..ca7eb41 100644
+--- a/plugins/colorfilter/src/colorfilter.cpp
++++ b/plugins/colorfilter/src/colorfilter.cpp
+@@ -24,6 +24,7 @@
+ #include <fstream>
+ #include <algorithm>
+ #include <boost/algorithm/string.hpp>
++#include <libgen.h>
+
+ using namespace boost::placeholders;
+
diff --git a/testing/compiz/opengl.patch b/testing/compiz/opengl.patch
new file mode 100644
index 00000000000..c8a147da61c
--- /dev/null
+++ b/testing/compiz/opengl.patch
@@ -0,0 +1,60 @@
+diff --git a/plugins/opengl/CMakeLists.txt b/plugins/opengl/CMakeLists.txt
+index 63db12b..2fc6046 100644
+--- a/plugins/opengl/CMakeLists.txt
++++ b/plugins/opengl/CMakeLists.txt
+@@ -21,7 +21,7 @@ include_directories (src/glxtfpbind/include)
+ else (USE_GLES)
+ find_package (OpenGL)
+ if (OPENGL_FOUND)
+- compiz_plugin(opengl PLUGINDEPS composite LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY} ${INTERNAL_LIBRARIES} dl INCDIRS ${OPENGL_INCLUDE_DIR})
++ compiz_plugin(opengl PLUGINDEPS composite LIBRARIES ${OPENGL_LIBRARIES} ${INTERNAL_LIBRARIES} dl INCDIRS ${OPENGL_INCLUDE_DIR})
+ endif (OPENGL_FOUND)
+ endif (USE_GLES)
+
+diff --git a/cmake/plugin_extensions/CompizOpenGLFixups.cmake b/cmake/plugin_extensions/CompizOpenGLFixups.cmake
+index 8691371..f230ceb 100644
+--- a/cmake/plugin_extensions/CompizOpenGLFixups.cmake
++++ b/cmake/plugin_extensions/CompizOpenGLFixups.cmake
+@@ -4,7 +4,7 @@ if (${COMPIZ_CURRENT_PLUGIN} STREQUAL "opengl")
+ if (USE_GLES)
+ set (PKGCONFIG_LIBS "${OPENGL_egl_LIBRARY} -lGLESv2")
+ else (USE_GLES)
+- set (PKGCONFIG_LIBS "${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY}")
++ set (PKGCONFIG_LIBS "${OPENGL_LIBRARIES}")
+ endif (USE_GLES)
+ endif (${COMPIZ_CURRENT_PLUGIN} STREQUAL "opengl")
+
+diff --git a/plugins/opengl/compiz-opengl.pc.in b/plugins/opengl/compiz-opengl.pc.in
+index d8b0b79..12c55c7 100644
+--- a/plugins/opengl/compiz-opengl.pc.in
++++ b/plugins/opengl/compiz-opengl.pc.in
+@@ -8,5 +8,5 @@ Description: Opengl compositing plugin for compiz
+ Version: @VERSION@
+
+ Requires: compiz compiz-composite
+-Libs: @PKGCONFIG_LIBS@ -L${libdir} -lopengl
++Libs: -lGL -L${libdir} -lopengl
+ Cflags: @COMPIZ_CFLAGS@ -I${includedir}/compiz
+\ No newline at end of file
+diff --git a/plugins/opengl/src/screen.cpp b/plugins/opengl/src/screen.cpp
+index fcf19ca..39bf966 100644
+--- a/plugins/opengl/src/screen.cpp
++++ b/plugins/opengl/src/screen.cpp
+@@ -40,6 +40,7 @@
+
+ #include <dlfcn.h>
+ #include <math.h>
++#include <GL/glx.h>
+
+ using namespace boost::placeholders;
+
+@@ -1354,8 +1355,7 @@ GLScreen::GLScreen (CompScreen *s) :
+ GL::bufferAge = true;
+ }
+
+- priv->getProcAddress = (GL::GLXGetProcAddressProc)
+- getProcAddress ("glXGetProcAddressARB");
++ priv->getProcAddress = &glXGetProcAddressARB;
+ GL::bindTexImage = (GL::GLXBindTexImageProc)
+ getProcAddress ("glXBindTexImageEXT");
+ GL::releaseTexImage = (GL::GLXReleaseTexImageProc)
diff --git a/testing/compiz/protobuf.patch b/testing/compiz/protobuf.patch
new file mode 100644
index 00000000000..3236f36a96e
--- /dev/null
+++ b/testing/compiz/protobuf.patch
@@ -0,0 +1,12 @@
+diff --git a/compizconfig/libcompizconfig/src/CMakeLists.txt b/compizconfig/libcompizconfig/src/CMakeLists.txt
+index 53d92f3..b740d06 100644
+--- a/compizconfig/libcompizconfig/src/CMakeLists.txt
++++ b/compizconfig/libcompizconfig/src/CMakeLists.txt
+@@ -40,6 +40,7 @@ if (HAVE_PROTOBUF)
+ ${LIBCOMPIZCONFIG_FILES}
+ ${CMAKE_CURRENT_BINARY_DIR}/compizconfig.pb.cc
+ )
++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
+ set (LIBCOMPIZCONFIG_LIBRARIES
+ ${LIBCOMPIZCONFIG_LIBRARIES}
+ protobuf)
diff --git a/testing/compiz/startup-notification-long.patch b/testing/compiz/startup-notification-long.patch
new file mode 100644
index 00000000000..1f08d75386c
--- /dev/null
+++ b/testing/compiz/startup-notification-long.patch
@@ -0,0 +1,19 @@
+diff --git a/src/screen.cpp b/src/screen.cpp
+index 9ab20be..89832e0 100644
+--- a/src/screen.cpp
++++ b/src/screen.cpp
+@@ -2322,9 +2322,12 @@ cps::StartupSequence::handleStartupSequenceTimeout ()
+
+ foreach (CompStartupSequence *s, startupSequences)
+ {
++ long sec, usec;
+ sn_startup_sequence_get_last_active_time (s->sequence,
+- &active.tv_sec,
+- &active.tv_usec);
++ &sec,
++ &usec);
++ active.tv_sec = sec;
++ active.tv_usec = usec;
+
+ elapsed = ((((double) now.tv_sec - active.tv_sec) * 1000000.0 +
+ (now.tv_usec - active.tv_usec))) / 1000.0;
diff --git a/testing/compton-conf/APKBUILD b/testing/compton-conf/APKBUILD
index fe718de7dda..c1a7b06823e 100644
--- a/testing/compton-conf/APKBUILD
+++ b/testing/compton-conf/APKBUILD
@@ -1,38 +1,35 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=compton-conf
-pkgver=0.14.1
+pkgver=0.16.0
pkgrel=1
pkgdesc="GUI configuration tool for compton X composite manager"
-url="https://github.com/lxde/compton-conf"
+url="https://github.com/lxqt/compton-conf"
options="!check" # No testsuite
-arch="" # fails to build
+arch="all"
license="LGPL-2.1-or-later"
-depends_dev="libconfig-dev qt5-qtbase-dev qt5-qttools-dev lxqt-build-tools"
-makedepends="cmake $depends_dev"
-source="compton-conf-$pkgver.tar.gz::https://github.com/lxde/compton-conf/archive/$pkgver.tar.gz"
+makedepends="cmake libconfig-dev qt5-qtbase-dev qt5-qttools-dev lxqt-build-tools"
+source="compton-conf-$pkgver.tar.gz::https://github.com/lxqt/compton-conf/archive/$pkgver.tar.gz"
build() {
- mkdir build && cd build
-
if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux \
- -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake .. \
+ cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} \
- -DPULL_TRANSLATIONS=False
- make
+ $CMAKE_CROSSOPTS .
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --build build --target install
}
-sha512sums="e40810c44076e9f06970c4645e2f72fadbf7912485f1815d02593ae7a5db4987054f263a73252ba1c99de7b9812decd92021bc5758f211325e494912535c51f7 compton-conf-0.14.1.tar.gz"
+sha512sums="
+7aa39d2091ce6d6cb79077eb79593c7b7fae882f617dc9eccc7e1f904a20dc281db3be82cc063bc38c7c021f158aec0a085ac9b48abfdc418f8471513e10361e compton-conf-0.16.0.tar.gz
+"
diff --git a/testing/conduit/APKBUILD b/testing/conduit/APKBUILD
new file mode 100644
index 00000000000..d2b2ab2d7ce
--- /dev/null
+++ b/testing/conduit/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=conduit
+pkgver=0.7.0
+pkgrel=0
+pkgdesc="Simple, fast and reliable chat server powered by Matrix"
+url="https://conduit.rs/"
+arch="all !s390x" # nix
+license="Apache-2.0"
+makedepends="cargo sqlite-dev cargo-auditable clang17-libclang rocksdb-dev snappy-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="https://gitlab.com/famedly/conduit/-/archive/v$pkgver/conduit-v$pkgver.tar.gz
+ https://github.com/leso-kn/ring/archive/refs/heads/riscv64-support-0.16.20-compat.tar.gz
+ system-sqlite.patch
+ downgrade-rocksdb.patch
+
+ conduit.toml
+ conduit.initd
+ conduit.confd
+ "
+builddir="$srcdir/conduit-v$pkgver"
+options="net"
+
+_features="--no-default-features --features=conduit_bin,backend_sqlite,backend_rocksdb"
+
+export ROCKSDB_LIB_DIR="/usr/lib/"
+export SNAPPY_LIB_DIR="/usr/lib/"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen $_features
+}
+
+check() {
+ cargo test --frozen $_features
+}
+
+package() {
+ install -Dm755 target/release/conduit -t "$pkgdir"/usr/bin
+ install -Dm755 "$srcdir"/conduit.initd "$pkgdir"/etc/init.d/conduit
+ install -Dm644 "$srcdir"/conduit.confd "$pkgdir"/etc/conf.d/conduit
+ install -Dm644 "$srcdir"/conduit.toml "$pkgdir"/etc/conduit/conduit.toml
+}
+
+sha512sums="
+8a5bd0ac7600ef5051c29a91fb8edc8abf651eff2eff6eeec75f3edaf5ee2ad40afaf297e99cbc28e75b87f89656fda536402194cb2a2f0e2b96dec10a225798 conduit-v0.7.0.tar.gz
+a68b9cbf701350c4e77f67f2e979180a9926895debc56764f3376cb6bcc390e310e8fcdd7fb5dc22423d41f65b129b119014400b5365a1b00422a0f0133f887f riscv64-support-0.16.20-compat.tar.gz
+7bc072043ebedd74ff8805c8b478ecc35f42e81a53d6b2c13d9d8568ad27b64b992d4a9bab9a6ced253971bbd4922f4da814cf2decdf253a2f5a078ced55f834 system-sqlite.patch
+95b0c587902d0b83206154cebe55c73a7bdb91155f743df44f5fc503d2a3455e09ce471999637f6c9981418ff72bf2f150abc78ba5997ef28ff352b80479f9cd downgrade-rocksdb.patch
+35600dd6a6c3700c6de44a3f364b08873f660c4798bff1241feeca70f7d63d5b36c0697b103e380ff0d1d8e26caf3464ad2c71902cfde465e5a128bf8cff2179 conduit.toml
+be411bc3447d684c546249e6fe6573d1c7798c7dfc148564b00b60026592eafa66dec4289a2d336656291ba1b915dd8b1e4df632de44a0ec0b3ad7d971ab062f conduit.initd
+8769e2feb4e0db08d7c6861a9d9110db8b846a496086f697080fda7270c97b506cbb10326cf708cdeab5eda68ec93a5ad86db4db5b9b0ebc189e6a5cefacf3a1 conduit.confd
+"
diff --git a/testing/conduit/conduit.confd b/testing/conduit/conduit.confd
new file mode 100644
index 00000000000..885fc75c39b
--- /dev/null
+++ b/testing/conduit/conduit.confd
@@ -0,0 +1,5 @@
+# Configuration file for conduit
+
+supervisor=supervise-daemon
+
+export CONDUIT_CONFIG=/etc/conduit/conduit.toml
diff --git a/testing/conduit/conduit.initd b/testing/conduit/conduit.initd
new file mode 100644
index 00000000000..66ebb705b2b
--- /dev/null
+++ b/testing/conduit/conduit.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+command="/usr/bin/conduit"
+command_user="conduit:conduit"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+output_log="/var/log/conduit.log"
+error_log="/var/log/conduit.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -d -m 0755 -o "$command_user" /var/lib/conduit
+ checkpath -f -m 0644 -o "$command_user" "$output_log"
+}
diff --git a/testing/conduit/conduit.pre-install b/testing/conduit/conduit.pre-install
new file mode 100644
index 00000000000..cac0ec13e06
--- /dev/null
+++ b/testing/conduit/conduit.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S conduit 2>/dev/null
+adduser -S -D -H -h /var/lib/conduit -s /sbin/nologin -G conduit -g conduit conduit 2>/dev/null
+
+exit 0
diff --git a/testing/conduit/conduit.toml b/testing/conduit/conduit.toml
new file mode 100644
index 00000000000..5fa06cd829a
--- /dev/null
+++ b/testing/conduit/conduit.toml
@@ -0,0 +1,60 @@
+[global]
+# The server_name is the pretty name of this server. It is used as a suffix for user
+# and room ids. Examples: matrix.org, conduit.rs
+
+# The Conduit server needs all /_matrix/ requests to be reachable at
+# https://your.server.name/ on port 443 (client-server) and 8448 (federation).
+
+# If that's not possible for you, you can create /.well-known files to redirect
+# requests. See
+# https://matrix.org/docs/spec/client_server/latest#get-well-known-matrix-client
+# and
+# https://matrix.org/docs/spec/server_server/r0.1.4#get-well-known-matrix-server
+# for more information
+
+# YOU NEED TO EDIT THIS
+#server_name = "your.server.name"
+
+# This is the only directory where Conduit will save its data
+database_path = "/var/lib/conduit/"
+database_backend = "rocksdb"
+
+# The port Conduit will be running on. You need to set up a reverse proxy in
+# your web server (e.g. apache or nginx), so all requests to /_matrix on port
+# 443 and 8448 will be forwarded to the Conduit instance running on this port
+# Docker users: Don't change this, you'll need to map an external port to this.
+port = 6167
+
+# Max size for uploads
+max_request_size = 20_000_000 # in bytes
+
+# Enables registration. If set to false, no users can register on this server.
+allow_registration = true
+
+# A static registration token that new users will have to provide when creating
+# an account. YOU NEED TO EDIT THIS.
+# - Insert a password that users will have to enter on registration
+# - Start the line with '#' to remove the condition
+registration_token = ""
+
+allow_federation = true
+allow_check_for_updates = false
+
+# Enable the display name lightning bolt on registration.
+enable_lightning_bolt = true
+
+# Servers listed here will be used to gather public keys of other servers.
+# Generally, copying this exactly should be enough. (Currently, Conduit doesn't
+# support batched key requests, so this list should only contain Synapse
+# servers.)
+trusted_servers = ["matrix.org"]
+
+#max_concurrent_requests = 100 # How many requests Conduit sends to other servers at the same time
+
+# Controls the log verbosity. See also [here][0].
+#
+# [0]: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives
+#log = "..."
+
+address = "127.0.0.1" # This makes sure Conduit can only be reached using the reverse proxy
+#address = "0.0.0.0" # If Conduit is running in a container, make sure the reverse proxy (ie. Traefik) can reach it.
diff --git a/testing/conduit/downgrade-rocksdb.patch b/testing/conduit/downgrade-rocksdb.patch
new file mode 100644
index 00000000000..8e3d0752631
--- /dev/null
+++ b/testing/conduit/downgrade-rocksdb.patch
@@ -0,0 +1,1572 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 6e870c0..702c9ec 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+ [[package]]
+ name = "ahash"
+-version = "0.8.11"
++version = "0.8.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
++checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+ dependencies = [
+ "cfg-if",
+ "once_cell",
+@@ -46,15 +46,15 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+ [[package]]
+ name = "anstyle"
+-version = "1.0.6"
++version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
++checksum = "2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220"
+
+ [[package]]
+ name = "arc-swap"
+-version = "1.7.0"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
++checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+
+ [[package]]
+ name = "arrayref"
+@@ -88,7 +88,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -204,22 +204,23 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+ [[package]]
+ name = "bindgen"
+-version = "0.69.4"
++version = "0.65.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
++checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5"
+ dependencies = [
+- "bitflags 2.4.2",
++ "bitflags 1.3.2",
+ "cexpr",
+ "clang-sys",
+- "itertools 0.12.1",
+ "lazy_static",
+ "lazycell",
++ "peeking_take_while",
++ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -256,15 +257,15 @@ dependencies = [
+
+ [[package]]
+ name = "bumpalo"
+-version = "3.15.4"
++version = "3.14.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
++checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+ [[package]]
+ name = "bytemuck"
+-version = "1.15.0"
++version = "1.14.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
++checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
+
+ [[package]]
+ name = "byteorder"
+@@ -291,9 +292,9 @@ dependencies = [
+
+ [[package]]
+ name = "cc"
+-version = "1.0.90"
++version = "1.0.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
++checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+ dependencies = [
+ "jobserver",
+ "libc",
+@@ -314,12 +315,6 @@ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+-[[package]]
+-name = "cfg_aliases"
+-version = "0.1.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+-
+ [[package]]
+ name = "clang-sys"
+ version = "1.7.0"
+@@ -333,9 +328,9 @@ dependencies = [
+
+ [[package]]
+ name = "clap"
+-version = "4.5.2"
++version = "4.4.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
++checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+ dependencies = [
+ "clap_builder",
+ "clap_derive",
+@@ -343,9 +338,9 @@ dependencies = [
+
+ [[package]]
+ name = "clap_builder"
+-version = "4.5.2"
++version = "4.4.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
++checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+ dependencies = [
+ "anstyle",
+ "clap_lex",
+@@ -353,21 +348,21 @@ dependencies = [
+
+ [[package]]
+ name = "clap_derive"
+-version = "4.5.0"
++version = "4.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
++checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+ dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+ name = "clap_lex"
+-version = "0.7.0"
++version = "0.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
++checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+
+ [[package]]
+ name = "color_quant"
+@@ -405,10 +400,10 @@ dependencies = [
+ "regex",
+ "reqwest",
+ "ring",
++ "rocksdb",
+ "ruma",
+ "rusqlite",
+ "rust-argon2",
+- "rust-rocksdb",
+ "sd-notify",
+ "serde",
+ "serde_html_form",
+@@ -490,18 +485,18 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+ [[package]]
+ name = "crc32fast"
+-version = "1.4.0"
++version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
++checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+ dependencies = [
+ "cfg-if",
+ ]
+
+ [[package]]
+ name = "crossbeam-channel"
+-version = "0.5.12"
++version = "0.5.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
++checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
+ dependencies = [
+ "crossbeam-utils",
+ ]
+@@ -524,9 +519,9 @@ dependencies = [
+
+ [[package]]
+ name = "curve25519-dalek"
+-version = "4.1.2"
++version = "4.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
++checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+ dependencies = [
+ "cfg-if",
+ "cpufeatures",
+@@ -547,7 +542,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -631,9 +626,9 @@ dependencies = [
+
+ [[package]]
+ name = "ed25519-dalek"
+-version = "2.1.1"
++version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
++checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
+ dependencies = [
+ "curve25519-dalek",
+ "ed25519",
+@@ -646,9 +641,9 @@ dependencies = [
+
+ [[package]]
+ name = "either"
+-version = "1.10.0"
++version = "1.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
++checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+
+ [[package]]
+ name = "encoding_rs"
+@@ -700,9 +695,9 @@ dependencies = [
+
+ [[package]]
+ name = "fiat-crypto"
+-version = "0.2.6"
++version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
++checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
+
+ [[package]]
+ name = "figment"
+@@ -809,7 +804,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -867,9 +862,9 @@ dependencies = [
+
+ [[package]]
+ name = "gif"
+-version = "0.13.1"
++version = "0.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
++checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+ dependencies = [
+ "color_quant",
+ "weezl",
+@@ -899,7 +894,7 @@ dependencies = [
+ "futures-sink",
+ "futures-util",
+ "http",
+- "indexmap 2.2.5",
++ "indexmap 2.2.1",
+ "slab",
+ "tokio",
+ "tokio-util",
+@@ -963,9 +958,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+ [[package]]
+ name = "hermit-abi"
+-version = "0.3.9"
++version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
++checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+
+ [[package]]
+ name = "hmac"
+@@ -989,9 +984,9 @@ dependencies = [
+
+ [[package]]
+ name = "http"
+-version = "0.2.12"
++version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
++checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+ dependencies = [
+ "bytes",
+ "fnv",
+@@ -1088,9 +1083,9 @@ dependencies = [
+
+ [[package]]
+ name = "image"
+-version = "0.24.9"
++version = "0.24.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
++checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+ dependencies = [
+ "bytemuck",
+ "byteorder",
+@@ -1113,9 +1108,9 @@ dependencies = [
+
+ [[package]]
+ name = "indexmap"
+-version = "2.2.5"
++version = "2.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
++checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b"
+ dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+@@ -1161,15 +1156,6 @@ dependencies = [
+ "either",
+ ]
+
+-[[package]]
+-name = "itertools"
+-version = "0.12.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+-dependencies = [
+- "either",
+-]
+-
+ [[package]]
+ name = "itoa"
+ version = "1.0.10"
+@@ -1178,9 +1164,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+ [[package]]
+ name = "jobserver"
+-version = "0.1.28"
++version = "0.1.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
++checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+ dependencies = [
+ "libc",
+ ]
+@@ -1193,9 +1179,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
+
+ [[package]]
+ name = "js-sys"
+-version = "0.3.69"
++version = "0.3.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
++checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+ dependencies = [
+ "wasm-bindgen",
+ ]
+@@ -1267,18 +1253,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.153"
++version = "0.2.152"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
++checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+
+ [[package]]
+ name = "libloading"
+-version = "0.8.3"
++version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
++checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+ dependencies = [
+ "cfg-if",
+- "windows-targets 0.52.4",
++ "windows-sys 0.48.0",
+ ]
+
+ [[package]]
+@@ -1292,6 +1278,22 @@ dependencies = [
+ "redox_syscall",
+ ]
+
++[[package]]
++name = "librocksdb-sys"
++version = "0.11.0+8.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e"
++dependencies = [
++ "bindgen",
++ "bzip2-sys",
++ "cc",
++ "glob",
++ "libc",
++ "libz-sys",
++ "lz4-sys",
++ "zstd-sys",
++]
++
+ [[package]]
+ name = "libsqlite3-sys"
+ version = "0.26.0"
+@@ -1300,7 +1300,6 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+ dependencies = [
+- "cc",
+ "pkg-config",
+ "vcpkg",
+ ]
+@@ -1311,6 +1310,7 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+ dependencies = [
++ "cc",
+ "pkg-config",
+ "vcpkg",
+ ]
+@@ -1332,9 +1334,9 @@ dependencies = [
+
+ [[package]]
+ name = "log"
+-version = "0.4.21"
++version = "0.4.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
++checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+ [[package]]
+ name = "lru-cache"
+@@ -1408,9 +1410,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.7.2"
++version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
++checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+ dependencies = [
+ "adler",
+ "simd-adler32",
+@@ -1418,9 +1420,9 @@ dependencies = [
+
+ [[package]]
+ name = "mio"
+-version = "0.8.11"
++version = "0.8.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
++checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+ dependencies = [
+ "libc",
+ "wasi",
+@@ -1429,13 +1431,12 @@ dependencies = [
+
+ [[package]]
+ name = "nix"
+-version = "0.28.0"
++version = "0.27.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
++checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+ dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+- "cfg_aliases",
+ "libc",
+ ]
+
+@@ -1478,18 +1479,19 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+ [[package]]
+ name = "num-integer"
+-version = "0.1.46"
++version = "0.1.45"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
++checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+ dependencies = [
++ "autocfg",
+ "num-traits",
+ ]
+
+ [[package]]
+ name = "num-traits"
+-version = "0.2.18"
++version = "0.2.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
++checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+ dependencies = [
+ "autocfg",
+ ]
+@@ -1663,9 +1665,15 @@ dependencies = [
+ "proc-macro2",
+ "proc-macro2-diagnostics",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
++[[package]]
++name = "peeking_take_while"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
++
+ [[package]]
+ name = "pem"
+ version = "3.0.3"
+@@ -1684,9 +1692,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+ [[package]]
+ name = "persy"
+-version = "1.5.0"
++version = "1.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9ef4b7250ab3a90ded0e284b2633469c23ef01ea868fe7cbb64e2f0a7d6f6d02"
++checksum = "3cd38c602b23c2f451842d89f27cd5e0d4b292176daf40feeda859c658dcdc76"
+ dependencies = [
+ "crc",
+ "data-encoding",
+@@ -1700,22 +1708,22 @@ dependencies = [
+
+ [[package]]
+ name = "pin-project"
+-version = "1.1.5"
++version = "1.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
++checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+ dependencies = [
+ "pin-project-internal",
+ ]
+
+ [[package]]
+ name = "pin-project-internal"
+-version = "1.1.5"
++version = "1.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
++checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -1742,9 +1750,9 @@ dependencies = [
+
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.30"
++version = "0.3.29"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
++checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+
+ [[package]]
+ name = "platforms"
+@@ -1754,9 +1762,9 @@ checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
+
+ [[package]]
+ name = "png"
+-version = "0.17.13"
++version = "0.17.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
++checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+ dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+@@ -1777,21 +1785,30 @@ version = "0.2.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
++[[package]]
++name = "prettyplease"
++version = "0.2.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
++dependencies = [
++ "proc-macro2",
++ "syn 2.0.48",
++]
++
+ [[package]]
+ name = "proc-macro-crate"
+-version = "2.0.2"
++version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
++checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+ dependencies = [
+- "toml_datetime",
+- "toml_edit",
++ "toml_edit 0.20.7",
+ ]
+
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.79"
++version = "1.0.78"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
++checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+ dependencies = [
+ "unicode-ident",
+ ]
+@@ -1804,7 +1821,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ "version_check",
+ "yansi",
+ ]
+@@ -1882,7 +1899,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+- "regex-automata 0.4.6",
++ "regex-automata 0.4.5",
+ "regex-syntax 0.8.2",
+ ]
+
+@@ -1897,9 +1914,9 @@ dependencies = [
+
+ [[package]]
+ name = "regex-automata"
+-version = "0.4.6"
++version = "0.4.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
++checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+@@ -1920,9 +1937,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+ [[package]]
+ name = "reqwest"
+-version = "0.11.26"
++version = "0.11.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
++checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
+ dependencies = [
+ "base64",
+ "bytes",
+@@ -1947,7 +1964,6 @@ dependencies = [
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+- "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-rustls",
+@@ -1972,17 +1988,26 @@ dependencies = [
+
+ [[package]]
+ name = "ring"
+-version = "0.17.8"
++version = "0.17.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
++checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+ dependencies = [
+ "cc",
+- "cfg-if",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+- "windows-sys 0.52.0",
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "rocksdb"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe"
++dependencies = [
++ "libc",
++ "librocksdb-sys",
+ ]
+
+ [[package]]
+@@ -2045,7 +2070,7 @@ dependencies = [
+ "bytes",
+ "form_urlencoded",
+ "http",
+- "indexmap 2.2.5",
++ "indexmap 2.2.1",
+ "js_int",
+ "konst",
+ "percent-encoding",
+@@ -2071,7 +2096,7 @@ version = "0.27.11"
+ source = "git+https://github.com/ruma/ruma?rev=5495b85aa311c2805302edb0a7de40399e22b397#5495b85aa311c2805302edb0a7de40399e22b397"
+ dependencies = [
+ "as_variant",
+- "indexmap 2.2.5",
++ "indexmap 2.2.1",
+ "js_int",
+ "js_option",
+ "percent-encoding",
+@@ -2129,7 +2154,7 @@ dependencies = [
+ "quote",
+ "ruma-identifiers-validation",
+ "serde",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ "toml",
+ ]
+
+@@ -2166,7 +2191,7 @@ name = "ruma-state-res"
+ version = "0.10.0"
+ source = "git+https://github.com/ruma/ruma?rev=5495b85aa311c2805302edb0a7de40399e22b397#5495b85aa311c2805302edb0a7de40399e22b397"
+ dependencies = [
+- "itertools 0.11.0",
++ "itertools",
+ "js_int",
+ "ruma-common",
+ "ruma-events",
+@@ -2202,32 +2227,6 @@ dependencies = [
+ "crossbeam-utils",
+ ]
+
+-[[package]]
+-name = "rust-librocksdb-sys"
+-version = "0.20.0+9.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "48b14f4848d8574c074bb26445b43e63735d802ef2fc5cc40c1b015134baee0c"
+-dependencies = [
+- "bindgen",
+- "bzip2-sys",
+- "cc",
+- "glob",
+- "libc",
+- "libz-sys",
+- "lz4-sys",
+- "zstd-sys",
+-]
+-
+-[[package]]
+-name = "rust-rocksdb"
+-version = "0.24.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d36eae38b1d3d0018e273191f791343bd3eb030d7da63aaa20350e41c0182881"
+-dependencies = [
+- "libc",
+- "rust-librocksdb-sys",
+-]
+-
+ [[package]]
+ name = "rustc-demangle"
+ version = "0.1.23"
+@@ -2300,9 +2299,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+ [[package]]
+ name = "ryu"
+-version = "1.0.17"
++version = "1.0.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
++checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
+ [[package]]
+ name = "schannel"
+@@ -2360,38 +2359,38 @@ dependencies = [
+
+ [[package]]
+ name = "semver"
+-version = "1.0.22"
++version = "1.0.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
++checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+
+ [[package]]
+ name = "serde"
+-version = "1.0.197"
++version = "1.0.196"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
++checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+ dependencies = [
+ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.197"
++version = "1.0.196"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
++checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+ name = "serde_html_form"
+-version = "0.2.5"
++version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "50437e6a58912eecc08865e35ea2e8d365fbb2db0debb1c8bb43bf1faf055f25"
++checksum = "20e1066e1cfa6692a722cf40386a2caec36da5ddc4a2c16df592f0f609677e8c"
+ dependencies = [
+ "form_urlencoded",
+- "indexmap 2.2.5",
++ "indexmap 2.2.1",
+ "itoa",
+ "ryu",
+ "serde",
+@@ -2399,9 +2398,9 @@ dependencies = [
+
+ [[package]]
+ name = "serde_json"
+-version = "1.0.114"
++version = "1.0.113"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
++checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+ dependencies = [
+ "itoa",
+ "ryu",
+@@ -2410,9 +2409,9 @@ dependencies = [
+
+ [[package]]
+ name = "serde_path_to_error"
+-version = "0.1.16"
++version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
++checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
+ dependencies = [
+ "itoa",
+ "serde",
+@@ -2441,11 +2440,11 @@ dependencies = [
+
+ [[package]]
+ name = "serde_yaml"
+-version = "0.9.32"
++version = "0.9.31"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
++checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e"
+ dependencies = [
+- "indexmap 2.2.5",
++ "indexmap 2.2.1",
+ "itoa",
+ "ryu",
+ "serde",
+@@ -2553,12 +2552,12 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+ [[package]]
+ name = "socket2"
+-version = "0.5.6"
++version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
++checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+ dependencies = [
+ "libc",
+- "windows-sys 0.52.0",
++ "windows-sys 0.48.0",
+ ]
+
+ [[package]]
+@@ -2605,9 +2604,9 @@ dependencies = [
+
+ [[package]]
+ name = "syn"
+-version = "2.0.52"
++version = "2.0.48"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
++checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -2643,29 +2642,29 @@ dependencies = [
+
+ [[package]]
+ name = "thiserror"
+-version = "1.0.58"
++version = "1.0.56"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
++checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+ dependencies = [
+ "thiserror-impl",
+ ]
+
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.58"
++version = "1.0.56"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
++checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+ name = "thread_local"
+-version = "1.1.8"
++version = "1.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
++checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+ dependencies = [
+ "cfg-if",
+ "once_cell",
+@@ -2726,9 +2725,9 @@ dependencies = [
+
+ [[package]]
+ name = "time"
+-version = "0.3.34"
++version = "0.3.36"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
++checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+ dependencies = [
+ "deranged",
+ "itoa",
+@@ -2747,9 +2746,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+ [[package]]
+ name = "time-macros"
+-version = "0.2.17"
++version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
++checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
+ dependencies = [
+ "num-conv",
+ "time-core",
+@@ -2772,9 +2771,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+ [[package]]
+ name = "tokio"
+-version = "1.36.0"
++version = "1.35.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
++checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+ dependencies = [
+ "backtrace",
+ "bytes",
+@@ -2796,7 +2795,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -2848,32 +2847,43 @@ dependencies = [
+
+ [[package]]
+ name = "toml"
+-version = "0.8.2"
++version = "0.8.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
++checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+ dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+- "toml_edit",
++ "toml_edit 0.21.0",
+ ]
+
+ [[package]]
+ name = "toml_datetime"
+-version = "0.6.3"
++version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
++checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+ dependencies = [
+ "serde",
+ ]
+
+ [[package]]
+ name = "toml_edit"
+-version = "0.20.2"
++version = "0.20.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
++checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+ dependencies = [
+- "indexmap 2.2.5",
++ "indexmap 2.2.1",
++ "toml_datetime",
++ "winnow",
++]
++
++[[package]]
++name = "toml_edit"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
++dependencies = [
++ "indexmap 2.2.1",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+@@ -2947,7 +2957,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+@@ -3120,9 +3130,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+ [[package]]
+ name = "unicode-normalization"
+-version = "0.1.23"
++version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
++checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+ dependencies = [
+ "tinyvec",
+ ]
+@@ -3135,9 +3145,9 @@ checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+
+ [[package]]
+ name = "unsigned-varint"
+-version = "0.8.0"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
++checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105"
+
+ [[package]]
+ name = "untrusted"
+@@ -3200,9 +3210,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+ [[package]]
+ name = "wasm-bindgen"
+-version = "0.2.92"
++version = "0.2.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
++checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+ dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+@@ -3210,24 +3220,24 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-backend"
+-version = "0.2.92"
++version = "0.2.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
++checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+ dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-futures"
+-version = "0.4.42"
++version = "0.4.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
++checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+ dependencies = [
+ "cfg-if",
+ "js-sys",
+@@ -3237,9 +3247,9 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-macro"
+-version = "0.2.92"
++version = "0.2.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
++checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+ dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+@@ -3247,28 +3257,28 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-macro-support"
+-version = "0.2.92"
++version = "0.2.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
++checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-shared"
+-version = "0.2.92"
++version = "0.2.90"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
++checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+
+ [[package]]
+ name = "web-sys"
+-version = "0.3.69"
++version = "0.3.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
++checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
+ dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+@@ -3298,9 +3308,9 @@ checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+
+ [[package]]
+ name = "wildmatch"
+-version = "2.3.1"
++version = "2.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "017f0a8ed8331210d91b7a4c30d4edef8f21a65c02f2540496e2e79725f6d8a8"
++checksum = "495ec47bf3c1345005f40724f0269362c8556cbc43aed0526ed44cae1d35fceb"
+
+ [[package]]
+ name = "winapi"
+@@ -3339,7 +3349,7 @@ version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+ dependencies = [
+- "windows-targets 0.52.4",
++ "windows-targets 0.52.0",
+ ]
+
+ [[package]]
+@@ -3359,17 +3369,17 @@ dependencies = [
+
+ [[package]]
+ name = "windows-targets"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
++checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+ dependencies = [
+- "windows_aarch64_gnullvm 0.52.4",
+- "windows_aarch64_msvc 0.52.4",
+- "windows_i686_gnu 0.52.4",
+- "windows_i686_msvc 0.52.4",
+- "windows_x86_64_gnu 0.52.4",
+- "windows_x86_64_gnullvm 0.52.4",
+- "windows_x86_64_msvc 0.52.4",
++ "windows_aarch64_gnullvm 0.52.0",
++ "windows_aarch64_msvc 0.52.0",
++ "windows_i686_gnu 0.52.0",
++ "windows_i686_msvc 0.52.0",
++ "windows_x86_64_gnu 0.52.0",
++ "windows_x86_64_gnullvm 0.52.0",
++ "windows_x86_64_msvc 0.52.0",
+ ]
+
+ [[package]]
+@@ -3380,9 +3390,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+ [[package]]
+ name = "windows_aarch64_gnullvm"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
++checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+ [[package]]
+ name = "windows_aarch64_msvc"
+@@ -3392,9 +3402,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+ [[package]]
+ name = "windows_aarch64_msvc"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
++checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+ [[package]]
+ name = "windows_i686_gnu"
+@@ -3404,9 +3414,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+ [[package]]
+ name = "windows_i686_gnu"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
++checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+ [[package]]
+ name = "windows_i686_msvc"
+@@ -3416,9 +3426,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+ [[package]]
+ name = "windows_i686_msvc"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
++checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+ [[package]]
+ name = "windows_x86_64_gnu"
+@@ -3428,9 +3438,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+ [[package]]
+ name = "windows_x86_64_gnu"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
++checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+ [[package]]
+ name = "windows_x86_64_gnullvm"
+@@ -3440,9 +3450,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+ [[package]]
+ name = "windows_x86_64_gnullvm"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
++checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+ [[package]]
+ name = "windows_x86_64_msvc"
+@@ -3452,15 +3462,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+ [[package]]
+ name = "windows_x86_64_msvc"
+-version = "0.52.4"
++version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
++checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+ [[package]]
+ name = "winnow"
+-version = "0.5.40"
++version = "0.5.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
++checksum = "1931d78a9c73861da0134f453bb1f790ce49b2e30eba8410b4b79bac72b46a2d"
+ dependencies = [
+ "memchr",
+ ]
+@@ -3477,9 +3487,9 @@ dependencies = [
+
+ [[package]]
+ name = "yansi"
+-version = "1.0.1"
++version = "1.0.0-rc.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
++checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377"
+
+ [[package]]
+ name = "zerocopy"
+@@ -3498,7 +3508,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.52",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+diff --git a/Cargo.toml b/Cargo.toml
+index cc5b37e..affd704 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -97,6 +97,8 @@ threadpool = "1.8.1"
+ # Used for ruma wrapper
+ serde_html_form = "0.2.0"
+
++rocksdb = { version = "0.21.0", default-features = true, features = ["multi-threaded-cf", "zstd", "lz4"], optional = true }
++
+ thread_local = "1.1.7"
+ # used for TURN server authentication
+ hmac = "0.12.1"
+@@ -114,18 +116,8 @@ async-trait = "0.1.68"
+
+ sd-notify = { version = "0.4.1", optional = true }
+
+-[dependencies.rocksdb]
+-package = "rust-rocksdb"
+-version = "0.24.0"
+-optional = true
+-features = [
+- "multi-threaded-cf",
+- "zstd",
+- "lz4",
+-]
+-
+ [target.'cfg(unix)'.dependencies]
+-nix = { version = "0.28", features = ["resource"] }
++nix = { version = "0.27", features = ["resource"] }
+
+ [features]
+ default = ["conduit_bin", "backend_sqlite", "backend_rocksdb", "systemd"]
+diff --git a/flake.nix b/flake.nix
+index 114e221..5a4568b 100644
+--- a/flake.nix
++++ b/flake.nix
+@@ -53,24 +53,10 @@
+ pkgs.pkgsBuildHost.rustPlatform.bindgenHook
+ ];
+
+- rocksdb' = pkgs:
+- let
+- version = "9.1.0";
+- in
+- pkgs.rocksdb.overrideAttrs (old: {
+- inherit version;
+- src = pkgs.fetchFromGitHub {
+- owner = "facebook";
+- repo = "rocksdb";
+- rev = "v${version}";
+- hash = "sha256-vRPyrXkXVVhP56n5FVYef8zbIsnnanQSpElmQLZ7mh8=";
+- };
+- });
+-
+ env = pkgs: {
+ CONDUIT_VERSION_EXTRA = self.shortRev or self.dirtyShortRev;
+- ROCKSDB_INCLUDE_DIR = "${rocksdb' pkgs}/include";
+- ROCKSDB_LIB_DIR = "${rocksdb' pkgs}/lib";
++ ROCKSDB_INCLUDE_DIR = "${pkgs.rocksdb}/include";
++ ROCKSDB_LIB_DIR = "${pkgs.rocksdb}/lib";
+ }
+ // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isStatic {
+ ROCKSDB_STATIC = "";
+diff --git a/src/database/abstraction/rocksdb.rs b/src/database/abstraction/rocksdb.rs
+index 447ee03..7a93d78 100644
+--- a/src/database/abstraction/rocksdb.rs
++++ b/src/database/abstraction/rocksdb.rs
+@@ -23,23 +23,29 @@ pub struct RocksDbEngineTree<'a> {
+ fn db_options(max_open_files: i32, rocksdb_cache: &rocksdb::Cache) -> rocksdb::Options {
+ let mut block_based_options = rocksdb::BlockBasedOptions::default();
+ block_based_options.set_block_cache(rocksdb_cache);
+- block_based_options.set_bloom_filter(10.0, false);
++
++ // "Difference of spinning disk"
++ // https://zhangyuchi.gitbooks.io/rocksdbbook/content/RocksDB-Tuning-Guide.html
+ block_based_options.set_block_size(4 * 1024);
+ block_based_options.set_cache_index_and_filter_blocks(true);
+- block_based_options.set_pin_l0_filter_and_index_blocks_in_cache(true);
+- block_based_options.set_optimize_filters_for_memory(true);
+
+ let mut db_opts = rocksdb::Options::default();
+ db_opts.set_block_based_table_factory(&block_based_options);
++ db_opts.set_optimize_filters_for_hits(true);
++ db_opts.set_skip_stats_update_on_db_open(true);
++ db_opts.set_level_compaction_dynamic_level_bytes(true);
++ db_opts.set_target_file_size_base(256 * 1024 * 1024);
++ //db_opts.set_compaction_readahead_size(2 * 1024 * 1024);
++ //db_opts.set_use_direct_reads(true);
++ //db_opts.set_use_direct_io_for_flush_and_compaction(true);
+ db_opts.create_if_missing(true);
+ db_opts.increase_parallelism(num_cpus::get() as i32);
+ db_opts.set_max_open_files(max_open_files);
+- db_opts.set_compression_type(rocksdb::DBCompressionType::Lz4);
+- db_opts.set_bottommost_compression_type(rocksdb::DBCompressionType::Zstd);
++ db_opts.set_compression_type(rocksdb::DBCompressionType::Zstd);
+ db_opts.set_compaction_style(rocksdb::DBCompactionStyle::Level);
++ db_opts.optimize_level_style_compaction(10 * 1024 * 1024);
+
+ // https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning
+- db_opts.set_level_compaction_dynamic_level_bytes(true);
+ db_opts.set_max_background_jobs(6);
+ db_opts.set_bytes_per_sync(1048576);
+
+@@ -53,6 +59,9 @@ fn db_options(max_open_files: i32, rocksdb_cache: &rocksdb::Cache) -> rocksdb::O
+ // restored via federation.
+ db_opts.set_wal_recovery_mode(rocksdb::DBRecoveryMode::TolerateCorruptedTailRecords);
+
++ let prefix_extractor = rocksdb::SliceTransform::create_fixed_prefix(1);
++ db_opts.set_prefix_extractor(prefix_extractor);
++
+ db_opts
+ }
+
+@@ -138,17 +147,12 @@ impl RocksDbEngineTree<'_> {
+
+ impl KvTree for RocksDbEngineTree<'_> {
+ fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>> {
+- let readoptions = rocksdb::ReadOptions::default();
+-
+- Ok(self.db.rocks.get_cf_opt(&self.cf(), key, &readoptions)?)
++ Ok(self.db.rocks.get_cf(&self.cf(), key)?)
+ }
+
+ fn insert(&self, key: &[u8], value: &[u8]) -> Result<()> {
+- let writeoptions = rocksdb::WriteOptions::default();
+ let lock = self.write_lock.read().unwrap();
+- self.db
+- .rocks
+- .put_cf_opt(&self.cf(), key, value, &writeoptions)?;
++ self.db.rocks.put_cf(&self.cf(), key, value)?;
+ drop(lock);
+
+ self.watchers.wake(key);
+@@ -157,31 +161,22 @@ impl KvTree for RocksDbEngineTree<'_> {
+ }
+
+ fn insert_batch<'a>(&self, iter: &mut dyn Iterator<Item = (Vec<u8>, Vec<u8>)>) -> Result<()> {
+- let writeoptions = rocksdb::WriteOptions::default();
+ for (key, value) in iter {
+- self.db
+- .rocks
+- .put_cf_opt(&self.cf(), key, value, &writeoptions)?;
++ self.db.rocks.put_cf(&self.cf(), key, value)?;
+ }
+
+ Ok(())
+ }
+
+ fn remove(&self, key: &[u8]) -> Result<()> {
+- let writeoptions = rocksdb::WriteOptions::default();
+- Ok(self
+- .db
+- .rocks
+- .delete_cf_opt(&self.cf(), key, &writeoptions)?)
++ Ok(self.db.rocks.delete_cf(&self.cf(), key)?)
+ }
+
+ fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + 'a> {
+- let readoptions = rocksdb::ReadOptions::default();
+-
+ Box::new(
+ self.db
+ .rocks
+- .iterator_cf_opt(&self.cf(), readoptions, rocksdb::IteratorMode::Start)
++ .iterator_cf(&self.cf(), rocksdb::IteratorMode::Start)
+ .map(|r| r.unwrap())
+ .map(|(k, v)| (Vec::from(k), Vec::from(v))),
+ )
+@@ -192,14 +187,11 @@ impl KvTree for RocksDbEngineTree<'_> {
+ from: &[u8],
+ backwards: bool,
+ ) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + 'a> {
+- let readoptions = rocksdb::ReadOptions::default();
+-
+ Box::new(
+ self.db
+ .rocks
+- .iterator_cf_opt(
++ .iterator_cf(
+ &self.cf(),
+- readoptions,
+ rocksdb::IteratorMode::From(
+ from,
+ if backwards {
+@@ -215,33 +207,23 @@ impl KvTree for RocksDbEngineTree<'_> {
+ }
+
+ fn increment(&self, key: &[u8]) -> Result<Vec<u8>> {
+- let readoptions = rocksdb::ReadOptions::default();
+- let writeoptions = rocksdb::WriteOptions::default();
+-
+ let lock = self.write_lock.write().unwrap();
+
+- let old = self.db.rocks.get_cf_opt(&self.cf(), key, &readoptions)?;
++ let old = self.db.rocks.get_cf(&self.cf(), key)?;
+ let new = utils::increment(old.as_deref()).unwrap();
+- self.db
+- .rocks
+- .put_cf_opt(&self.cf(), key, &new, &writeoptions)?;
++ self.db.rocks.put_cf(&self.cf(), key, &new)?;
+
+ drop(lock);
+ Ok(new)
+ }
+
+ fn increment_batch<'a>(&self, iter: &mut dyn Iterator<Item = Vec<u8>>) -> Result<()> {
+- let readoptions = rocksdb::ReadOptions::default();
+- let writeoptions = rocksdb::WriteOptions::default();
+-
+ let lock = self.write_lock.write().unwrap();
+
+ for key in iter {
+- let old = self.db.rocks.get_cf_opt(&self.cf(), &key, &readoptions)?;
++ let old = self.db.rocks.get_cf(&self.cf(), &key)?;
+ let new = utils::increment(old.as_deref()).unwrap();
+- self.db
+- .rocks
+- .put_cf_opt(&self.cf(), key, new, &writeoptions)?;
++ self.db.rocks.put_cf(&self.cf(), key, new)?;
+ }
+
+ drop(lock);
+@@ -253,14 +235,11 @@ impl KvTree for RocksDbEngineTree<'_> {
+ &'a self,
+ prefix: Vec<u8>,
+ ) -> Box<dyn Iterator<Item = (Vec<u8>, Vec<u8>)> + 'a> {
+- let readoptions = rocksdb::ReadOptions::default();
+-
+ Box::new(
+ self.db
+ .rocks
+- .iterator_cf_opt(
++ .iterator_cf(
+ &self.cf(),
+- readoptions,
+ rocksdb::IteratorMode::From(&prefix, rocksdb::Direction::Forward),
+ )
+ .map(|r| r.unwrap())
diff --git a/testing/conduit/system-sqlite.patch b/testing/conduit/system-sqlite.patch
new file mode 100644
index 00000000000..348adc3770a
--- /dev/null
+++ b/testing/conduit/system-sqlite.patch
@@ -0,0 +1,25 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index e773892..d69f3d9 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1331,7 +1331,6 @@ version = "0.25.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "29f835d03d717946d28b1d1ed632eb6f0e24a299388ee623d0c23118d3e8a7fa"
+ dependencies = [
+- "cc",
+ "pkg-config",
+ "vcpkg",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index 7dc6448..344e2e9 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -71,7 +71,7 @@ opentelemetry = { version = "0.18.0", features = ["rt-tokio"] }
+ opentelemetry-jaeger = { version = "0.17.0", features = ["rt-tokio"] }
+ tracing-opentelemetry = "0.18.0"
+ lru-cache = "0.1.2"
+-rusqlite = { version = "0.29.0", optional = true, features = ["bundled"] }
++rusqlite = { version = "0.29.0", optional = true }
+ parking_lot = { version = "0.12.1", optional = true }
+ crossbeam = { version = "0.8.1", optional = true }
+ num_cpus = "1.13.0"
diff --git a/testing/confclerk/APKBUILD b/testing/confclerk/APKBUILD
deleted file mode 100644
index 1b4fcb51b9a..00000000000
--- a/testing/confclerk/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=confclerk
-pkgver=0.6.4
-pkgrel=0
-pkgdesc="Offline conference schedule application"
-url="http://www.toastfreeware.priv.at/confclerk"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="qt5-qtbase-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::http://git.toastfreeware.priv.at/toast/confclerk.git/snapshot/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver-4884e9f"
-options="!check" # no tests
-
-build() {
- qmake-qt5
- make all data/confclerk.1
-}
-
-package() {
- make install INSTALL_ROOT="$pkgdir"
-
- install -Dm644 data/confclerk.1 "$pkgdir"/usr/share/man/man1/confclerk.1
- install -Dm644 data/confclerk.desktop "$pkgdir"/usr/share/applications/confclerk.desktop
- install -Dm644 data/confclerk.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/confclerk.svg
-}
-
-sha512sums="d118ec50e6aa0337a8e7df52c6e501efd26fbc64ba8b21ace2eba8896127e8402aa4e550e6ccea1b3c81ac650c004c5d6f4bb49054af8c87c9ce96ddf08cafaa confclerk-0.6.4.tar.gz"
diff --git a/testing/confd/0001-add-file-backend-to-quick-start-guide-727.patch b/testing/confd/0001-add-file-backend-to-quick-start-guide-727.patch
deleted file mode 100644
index e1b16f904a0..00000000000
--- a/testing/confd/0001-add-file-backend-to-quick-start-guide-727.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From cccd334562329858feac719ad94b75aa87968a99 Mon Sep 17 00:00:00 2001
-From: Britt Treece <britt.treece@gmail.com>
-Date: Mon, 16 Jul 2018 04:59:03 -0500
-Subject: [PATCH] add file backend to quick start guide (#727)
-
-* add file backend to quick start guide
-
-* add formatting to file backend debug call
-
-* fix my poorly exec'ed fork update
----
- backends/file/client.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/backends/file/client.go b/backends/file/client.go
-index f7c4460..c37684a 100644
---- a/backends/file/client.go
-+++ b/backends/file/client.go
-@@ -112,7 +112,7 @@ func (c *Client) watchChanges(watcher *f
- for {
- select {
- case event := <-watcher.Events:
-- log.Debug("event:", event)
-+ log.Debug("event: %v", event)
- if event.Op&fsnotify.Write == fsnotify.Write ||
- event.Op&fsnotify.Remove == fsnotify.Remove ||
- event.Op&fsnotify.Create == fsnotify.Create {
diff --git a/testing/confd/APKBUILD b/testing/confd/APKBUILD
deleted file mode 100644
index 328d692362c..00000000000
--- a/testing/confd/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: tang0th <tang0th@gmx.com>
-# Contributor: fchavant <francois@lightcurve.io>
-# Maintainer:
-pkgname=confd
-pkgver=0.16.0
-pkgrel=2
-pkgdesc="Manage local application configuration files using templates and data from etcd or consul"
-url="http://confd.io"
-arch="all"
-license="MIT"
-depends=""
-makedepends="go"
-install=""
-subpackages=""
-source="$pkgname-$pkgver.tar.gz::https://github.com/kelseyhightower/$pkgname/archive/v$pkgver.tar.gz
- 0001-add-file-backend-to-quick-start-guide-727.patch"
-
-build() {
- export GOPATH="$srcdir"
- mkdir -p "$GOPATH/src/github.com/kelseyhightower"
- mv "$srcdir/$pkgname-$pkgver" "$GOPATH/src/github.com/kelseyhightower/confd"
- cd "$GOPATH/src/github.com/kelseyhightower/confd"
- make
-}
-
-check() {
- # Errors out with
- # backends/file/client.go:115:14: Debug call has arguments but no formatting directives
- [ "$CARCH" = armv7 ] && return 0
- export GOPATH="$srcdir"
- cd "$GOPATH/src/github.com/kelseyhightower/confd"
- make test
-}
-
-package() {
- install -Dm755 "$srcdir/src/github.com/kelseyhightower/confd/bin/confd" "$pkgdir/usr/bin/confd"
-}
-
-sha512sums="eafabf85d1d7193847a78dcfde7b9961bdf5b634165d27acc760aff6e4ef79cac9688abdfcac049773a28f997f87ea94e6a7606ee7f7d7aaaeaa8ba67f7e48b7 confd-0.16.0.tar.gz
-d57124541a84d2d9bc8e3de7bb463a724e39f99345da3732e9770439e6356f8e7633e8968cf8a654c43a92c5f99ede51badb8f18981214cdd827e10d702b0239 0001-add-file-backend-to-quick-start-guide-727.patch"
diff --git a/testing/conmon/APKBUILD b/testing/conmon/APKBUILD
deleted file mode 100644
index 0332644f0d2..00000000000
--- a/testing/conmon/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=conmon
-pkgver=2.0.17
-pkgrel=0
-pkgdesc="An OCI container runtime monitor"
-url="https://github.com/containers/conmon"
-arch="all"
-license="Apache-2.0"
-makedepends="glib-dev bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/containers/conmon/archive/v$pkgver.tar.gz"
-
-build() {
- make
-}
-
-check() {
- ./bin/conmon --version
-}
-
-package() {
- make install PREFIX=/usr DESTDIR="$pkgdir"
-}
-
-sha512sums="45660bf99a077c582c787ac08d47ea935777c5b93c1095619fc0361188f77b178ee600e52e15b6f006953cbd4716d5bd240c9f438f3765004af60a11d019b357 conmon-2.0.17.tar.gz"
diff --git a/testing/conntracct/APKBUILD b/testing/conntracct/APKBUILD
new file mode 100644
index 00000000000..3923e50b00b
--- /dev/null
+++ b/testing/conntracct/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Mark Pashmfouroush <mark@markpash.me>
+# Maintainer: Mark Pashmfouroush <mark@markpash.me>
+pkgname=conntracct
+pkgver=0.2.7
+pkgrel=23
+pkgdesc="Tool for extracting network flow information from Linux hosts"
+url="https://github.com/ti-mo/conntracct"
+license="Apache-2.0"
+arch="all"
+options="net !check" # can't load and test BPF probes in CI
+makedepends="go mage"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/ti-mo/conntracct/archive/$pkgver.tar.gz
+ conntracct.confd
+ conntracct.initd
+ dont-run-setcap.patch
+ fix-cgo.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ mage build
+}
+
+check() {
+ go test -v \
+ -coverprofile=test/output/integration.cover \
+ -covermode=atomic \
+ -tags=integration ./... \
+ -exec=sudo
+}
+
+package() {
+ install -Dm644 "$srcdir"/conntracct.confd "$pkgdir"/etc/conf.d/conntracct
+ install -Dm755 "$srcdir"/conntracct.initd "$pkgdir"/etc/init.d/conntracct
+ install -Dm755 "$builddir"/build/conntracct "$pkgdir"/usr/bin/conntracct
+ install -d "$pkgdir"/etc/conntracct
+}
+
+sha512sums="
+f018116dbeb937a5e308fa05dcbe9633ee1227a3bdce6c946cca1c5d73bb463c0085835c042becc62f7ad597b243c470c06e9712a1dffb844c4c858615da09af conntracct-0.2.7.tar.gz
+e2474f6a0fd86014ec87c662cbb3f51a906e3d5905ad7d77e557a3c42c1efaeace40dd0e3811c75536bb6b031be68453e7e945786ef1af158398424fba5213a8 conntracct.confd
+6654dc698e93e384b72186454494fe5df92ad99d915b60b58301e75e31eaac532614b7e7856a36d7be487fae5f3c4fbd9fae1ef6df2ff83cee91f5e412240398 conntracct.initd
+911a1e8d761071c2c8c077b7b6306c11aa318a671576ccc14486d70118a15eab4850257996f991b92e462b0897ac6e917007009696cd32885c344ffa5966c2e4 dont-run-setcap.patch
+2d27248ac1499cb1f240b3290c31cdfec6e360fb34e158b1578013742d1919df8f938a3efab5b52a739331eeff1d766f046c1dd8a0d752a8a7b2d620bc323f3f fix-cgo.patch
+"
diff --git a/testing/conntracct/conntracct.confd b/testing/conntracct/conntracct.confd
new file mode 100644
index 00000000000..7c9592f3758
--- /dev/null
+++ b/testing/conntracct/conntracct.confd
@@ -0,0 +1,4 @@
+# /etc/conf.d/conntracct
+
+# Uncomment and fill to specify custom arguments
+# ARGS=""
diff --git a/testing/conntracct/conntracct.initd b/testing/conntracct/conntracct.initd
new file mode 100644
index 00000000000..63cd34d5101
--- /dev/null
+++ b/testing/conntracct/conntracct.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+name=conntracct
+description="Conntracct is a tool for extracting network flow information from Linux hosts"
+command=/usr/bin/conntracct
+command_args="$ARGS"
+command_user="conntracct:conntracct"
+supervisor="supervise-daemon"
+capabilities="^cap_sys_admin,^cap_net_admin,^cap_dac_override,^cap_sys_resource"
+
+depend() {
+ need net
+}
diff --git a/testing/conntracct/conntracct.pre-install b/testing/conntracct/conntracct.pre-install
new file mode 100644
index 00000000000..74ed4bdd761
--- /dev/null
+++ b/testing/conntracct/conntracct.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S conntracct 2>/dev/null
+adduser -S -D -H -s /bin/nologin -G conntracct -g conntracct conntracct 2>/dev/null
+
+exit 0
diff --git a/testing/conntracct/dont-run-setcap.patch b/testing/conntracct/dont-run-setcap.patch
new file mode 100644
index 00000000000..9b422b1b761
--- /dev/null
+++ b/testing/conntracct/dont-run-setcap.patch
@@ -0,0 +1,20 @@
+diff --git a/magefile.go b/magefile.go
+index f995949..368c873 100644
+--- a/magefile.go
++++ b/magefile.go
+@@ -51,15 +51,6 @@ func Build() error {
+ return err
+ }
+
+- // 'Minimal' capability set to run without being uid 0.
+- // cap_sys_admin for calling bpf().
+- // cap_ipc_lock for locking memory for the ring buffer.
+- // cap_dac_override for opening /sys/kernel/debug/tracing/*
+- // cap_net_admin for managing sysctl net.netfilter.nf_conntrack_acct
+- if err := sh.Run("sudo", "setcap", "cap_sys_admin,cap_ipc_lock,cap_net_admin,cap_dac_override,cap_sys_resource+eip", realPath); err != nil {
+- return err
+- }
+-
+ fmt.Printf("Successfully built %s!\n", buildPath)
+ return nil
+ }
diff --git a/testing/conntracct/fix-cgo.patch b/testing/conntracct/fix-cgo.patch
new file mode 100644
index 00000000000..19d83dc1b77
--- /dev/null
+++ b/testing/conntracct/fix-cgo.patch
@@ -0,0 +1,10 @@
+--- a/magefile.go
++++ b/magefile.go
+@@ -18,7 +18,6 @@
+
+ var (
+ buildEnv = map[string]string{
+- "CGO_ENABLED": "0",
+ }
+
+ build = func() error {
diff --git a/testing/consolation/APKBUILD b/testing/consolation/APKBUILD
deleted file mode 100644
index 961e3b38618..00000000000
--- a/testing/consolation/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=consolation
-pkgver=0.0.7
-pkgrel=0
-pkgdesc="Libinput-based console pointer support for copy-paste"
-arch="all"
-url="https://salsa.debian.org/consolation-team/consolation"
-license="MIT GPL-2.0-only"
-source="https://deb.debian.org/debian/pool/main/c/consolation/${pkgname}_${pkgver}.orig.tar.xz
- consolation.initd"
-makedepends="linux-headers libinput-dev eudev-dev libevdev-dev"
-subpackages="$pkgname-doc"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- ./configure --prefix=/usr --sbindir=/usr/sbin
-}
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir/" install
- install -Dm755 "${srcdir}/consolation.initd" \
- "${pkgdir}/etc/init.d/consolation"
-}
-
-check() {
- make check
-}
-sha512sums="d04cb6ff18de20c9c060ad96863c9871204ceb5be58fd1073bb11aff8c072cc78c1271678bb1d3b05578c5959f332ea14ac7634af0346a03ff5925ecd0f71305 consolation_0.0.7.orig.tar.xz
-7cdfcf71d4e8fa9ed4b9d42f3cd40fdd4fee68b268dda5a1e2743fe44eea7cbb46c947181c83fae070fbfe4fd3af6f040d409a1ee62f8ba972fb00f0de7ec726 consolation.initd"
diff --git a/testing/consolation/consolation.initd b/testing/consolation/consolation.initd
deleted file mode 100644
index 66319a2b302..00000000000
--- a/testing/consolation/consolation.initd
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/sbin/openrc-run
-
-cmd=/usr/sbin/consolation
-cmd_args="--no-daemon"
-pid=/run/consolation.pid
-description="Linux Console Pointer Interface"
-
-depend() {
- after bootmisc
-}
-
-start() {
- ebegin "Starting Consolation"
- start-stop-daemon --start --exec $cmd --background \
- --pidfile $pid --make-pidfile -- $cmd_args
- eend $?
-}
-
-stop() {
- ebegin "Stopping Consolation"
- start-stop-daemon --stop --exec $cmd
- eend $?
-}
-
-restart() {
- stop
- start
-}
-
diff --git a/testing/console_bridge/APKBUILD b/testing/console_bridge/APKBUILD
index abdcee23709..7848e69a22b 100644
--- a/testing/console_bridge/APKBUILD
+++ b/testing/console_bridge/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Russ Webber <russ@rw.id.au>
# Maintainer: Russ Webber <russ@rw.id.au>
pkgname=console_bridge
-pkgver=1.0.0
+pkgver=1.0.2
pkgrel=0
pkgdesc="Logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages."
url="https://github.com/ros/console_bridge"
@@ -34,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="f416d2b62c7b9c7e9788b5e06d8de34badbd0fb346ecbfa209af8ee4fa0c0799ea07d847da466723a9f554cb308055807fa90604c5ee886fabd86a89698ed77a console_bridge-1.0.0.tar.gz"
+sha512sums="
+ed427da8e59f9629f8d70e0a14415f88177c06fbaf7334bee56135dde91d19a1b54f5c9c668e0fd68314ab8dfd61446a174b9f528304decc5d4626a7c98882cb console_bridge-1.0.2.tar.gz
+"
diff --git a/testing/consul-replicate/APKBUILD b/testing/consul-replicate/APKBUILD
index a0e9e1009b7..e41e1d73981 100644
--- a/testing/consul-replicate/APKBUILD
+++ b/testing/consul-replicate/APKBUILD
@@ -2,31 +2,32 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=consul-replicate
pkgver=0.4.0
-pkgrel=3
+pkgrel=23
pkgdesc="Consul cross-DC KV replication daemon"
url="https://www.consul.io/"
arch="all"
license="MPL-2.0"
-depends=""
makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hashicorp/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hashicorp/consul-replicate/archive/v$pkgver.tar.gz"
-build() {
- cd "$builddir"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GO111MODULE=off
+build() {
mkdir -p "$builddir/src/github.com/hashicorp"
- ln -s "$builddir" "$builddir/src/github.com/hashicorp/$pkgname"
+ ln -sf "$builddir" "$builddir/src/github.com/hashicorp/$pkgname"
cd "$builddir/src/github.com/hashicorp/$pkgname"
GOPATH="$builddir" go build -v -o bin/$pkgname
}
package() {
- cd "$builddir"
-
# Main binary
install -m750 -D bin/$pkgname "$pkgdir"/usr/bin/$pkgname
}
-sha512sums="960f8a54890932663d832247e2f9eec536a6e4f21e3e1f602399e9465cbb355eb2e4dcbc198bd2362442088c1912664b0640b59ce099c988508f4715b73fbcd7 consul-replicate-0.4.0.tar.gz"
+sha512sums="
+960f8a54890932663d832247e2f9eec536a6e4f21e3e1f602399e9465cbb355eb2e4dcbc198bd2362442088c1912664b0640b59ce099c988508f4715b73fbcd7 consul-replicate-0.4.0.tar.gz
+"
diff --git a/testing/consul/APKBUILD b/testing/consul/APKBUILD
deleted file mode 100644
index 05e767feff3..00000000000
--- a/testing/consul/APKBUILD
+++ /dev/null
@@ -1,72 +0,0 @@
-# Contributor: Olivier Mauras <olivier@mauras.ch>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=consul
-pkgver=1.7.3
-pkgrel=0
-pkgdesc="Tool for service discovery, monitoring and configuration"
-url="https://www.consul.io"
-arch="all !aarch64 !mips !mips64"
-license="MPL-2.0"
-makedepends="bash go"
-install="$pkgname.pre-install"
-pkgusers="consul"
-pkggroups="consul"
-subpackages="$pkgname-openrc"
-source="consul-$pkgver.tar.gz::https://github.com/hashicorp/consul/archive/v$pkgver.tar.gz
- consul.initd
- consul.confd
- acl.json.sample
- encrypt.json.sample
- server.json
- tls.json.sample"
-builddir="$srcdir/src/github.com/hashicorp/$pkgname"
-
-prepare() {
- default_prepare
- mkdir -p "$srcdir/src/github.com/hashicorp"
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
-}
-
-build() {
- GOPATH="$srcdir" go build -v -o bin/$pkgname \
- -ldflags "-X github.com/hashicorp/consul/version.GitDescribe='$pkgver'" \
- --tags consul
-}
-
-check() {
- GOPATH="$srcdir" go test
-}
-
-package() {
- # Consul init script
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- # Consul init conf
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
- # Main binary
- install -m750 -o root -g consul \
- -D bin/$pkgname \
- "$pkgdir"/usr/sbin/$pkgname
- # Consul datadir
- install -m750 -o consul -g consul -d "$pkgdir"/var/$pkgname
- # Consul configdir
- install -m750 -o root -g consul -d "$pkgdir"/etc/$pkgname
- # Consul sample config files
- for cf in acl.json.sample encrypt.json.sample server.json tls.json.sample; do
- install -m640 -o root -g consul "$srcdir"/$cf "$pkgdir"/etc/$pkgname
- done
-}
-
-cleanup_srcdir() {
- [ -d src ] && chmod -R +w src
- default_cleanup_srcdir
-}
-
-sha512sums="6cbc4f3fce613b3f8ac220038cd013ce14801ccc6c999b12e42f2149277f845531932243b063fbd83d92b84ed75000c47636f7883bd04079c0b82c642e021c01 consul-1.7.3.tar.gz
-a8d16de59b821c027151d775fefc65773e6a5e5c377dd1d6f96f8b682298cd6c8f4daa4bcd46fa2dd05585e6e6b4fb9c9c7edd3e840b75acf745b6ae2b985be3 consul.initd
-f2c5af74dfcbca2fea8ebea31139d93f44455b93ef17ec611b880d7071af4125615dbbd23969d0d04ca636c26d7b4e7eb97f1266baa89252097f4cbc5173d817 consul.confd
-d4310dde63d3b8fc4791124bd255bf2a1402b86d00f6b1732e18b0caedb75eae6c77382e1a48f12469828ef4bb363db4580fb1aafa63fcdc97b1431f6ea96d58 acl.json.sample
-ec30ad73c13f9dd5ba15389567436dbf74c24e822cb959c6ccc40a35e36e212313c70f3cf1ccee3f63a7bb98760173d6c2478161a25b85e14dd889a47572aff1 encrypt.json.sample
-a8b984db03f0bfb652d541dbdd3f1bc9be22f16cce78f73e495cc54adea1e09e9ac0e2f306ca8436590433c80a2ef824641f790b30aea9acb806b01fcabc918e server.json
-7582f1845a742cf570db5aa52077eb4c4cbfe68ee2ae9569cc2806444217eba0ee960a3a52f3edd1a7c36ca8b7811df5cab6dd062b060ab43ed57b8c811c85de tls.json.sample"
diff --git a/testing/consul/acl.json.sample b/testing/consul/acl.json.sample
deleted file mode 100644
index 629e05ca060..00000000000
--- a/testing/consul/acl.json.sample
+++ /dev/null
@@ -1,8 +0,0 @@
-# Sample locked down default ACL policy
-# Use uuidgen to generate a master_token - Accepts any string format
-#{
-# "acl_datacenter": "dc1",
-# "acl_master_token": "35629809-57c6-4ef5-a807-b3a23394d57d",
-# "acl_default_policy": "deny",
-# "acl_down_policy": "deny"
-#}
diff --git a/testing/consul/consul.confd b/testing/consul/consul.confd
deleted file mode 100644
index c06224b95f0..00000000000
--- a/testing/consul/consul.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# Consul startup
-consul_opts="agent -config-dir=/etc/consul"
diff --git a/testing/consul/consul.initd b/testing/consul/consul.initd
deleted file mode 100644
index 15d8208823d..00000000000
--- a/testing/consul/consul.initd
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/sbin/openrc-run
-description="A tool for service discovery, monitoring and configuration"
-description_checkconfig="Verify configuration files"
-description_healthcheck="Check health status"
-description_reload="Reload configuration"
-
-extra_commands="checkconfig"
-extra_started_commands="healthcheck reload"
-
-command="/usr/sbin/$RC_SVCNAME"
-command_args="$consul_opts"
-command_user="$RC_SVCNAME:$RC_SVCNAME"
-
-supervisor=supervise-daemon
-pidfile="/run/$RC_SVCNAME.pid"
-output_log="/var/log/$RC_SVCNAME.log"
-error_log="/var/log/$RC_SVCNAME.log"
-umask=027
-respawn_max=0
-respawn_delay=10
-healthcheck_timer=60
-
-depend() {
- need net
- after firewall
-}
-
-checkconfig() {
- ebegin "Checking /etc/consul"
- $command validate /etc/consul
- eend $?
-}
-
-start_pre() {
- checkconfig
- checkpath -f -m 0640 -o "$command_user" "$output_log" "$error_log"
-}
-
-healthcheck() {
- $command config list -kind proxy-defaults
-}
-
-reload() {
- start_pre \
- && ebegin "Reloading $RC_SVCNAME configuration" \
- && supervise-daemon "$RC_SVCNAME" --signal HUP --pidfile "$pidfile"
- eend $?
-}
diff --git a/testing/consul/consul.pre-install b/testing/consul/consul.pre-install
deleted file mode 100644
index ea7f6848ec2..00000000000
--- a/testing/consul/consul.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-# Create consul group and user
-addgroup -S consul 2>/dev/null
-adduser -S -D -h /var/consul -s /sbin/nologin -G consul -g consul consul 2>/dev/null
-
-exit 0
diff --git a/testing/consul/encrypt.json.sample b/testing/consul/encrypt.json.sample
deleted file mode 100644
index 8e8fc89a666..00000000000
--- a/testing/consul/encrypt.json.sample
+++ /dev/null
@@ -1,5 +0,0 @@
-# Enable gossip message encryption
-# Use 'consul keygen' to generate a new one
-#{
-# "encrypt": "HnAKJceZzkkqiHBkP52iEQ=="
-#}
diff --git a/testing/consul/server.json b/testing/consul/server.json
deleted file mode 100644
index d09b568e216..00000000000
--- a/testing/consul/server.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "data_dir": "/var/consul",
- "server": true,
- "bootstrap_expect": 1,
- "disable_update_check": true,
- "disable_remote_exec": true,
- "enable_syslog": true
-}
diff --git a/testing/consul/tls.json.sample b/testing/consul/tls.json.sample
deleted file mode 100644
index 93b2392f052..00000000000
--- a/testing/consul/tls.json.sample
+++ /dev/null
@@ -1,8 +0,0 @@
-# Enable RPC encryption with TLS
-#{
-# "ca_file": "/etc/consul/ssl/ca_cert.pem",
-# "cert_file": "/etc/consul/ssl/server.pem",
-# "key_file": "/etc/consul/ssl/server.key",
-# "verify_incoming": true,
-# "verify_outgoing": true
-#}
diff --git a/testing/contour/APKBUILD b/testing/contour/APKBUILD
new file mode 100644
index 00000000000..288b1c7cc54
--- /dev/null
+++ b/testing/contour/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=contour
+pkgver=0.4.3.6442
+pkgrel=0
+pkgdesc="Modern C++ Terminal Emulator"
+url="https://contour-terminal.org"
+arch="x86_64 " # aarch64 fails due to QOpenGLFunctions_3_3_Core, rest lack libunicode
+license="Apache-2.0"
+makedepends="
+ boxed-cpp-dev
+ catch2-3
+ cmake
+ extra-cmake-modules
+ fmt-dev
+ harfbuzz-dev
+ libunicode-dev
+ libutempter-dev
+ libxcb-dev
+ msgsl
+ ncurses
+ ninja
+ qt6-qt5compat-dev
+ qt6-qtbase-dev
+ qt6-qtdeclarative-dev
+ qt6-qtmultimedia-dev
+ range-v3-dev
+ yaml-cpp-dev
+"
+subpackages="
+ $pkgname-doc
+ $pkgname-fish-plugin:_fish:noarch
+ $pkgname-zsh-plugin:_zsh:noarch
+"
+source="$pkgname-$pkgver.tar.gz::https://github.com/contour-terminal/contour/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCONTOUR_QT_VERSION=6 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCONTOUR_INSTALL_TOOLS=ON \
+ -DCONTOUR_TESTING=ON \
+ -DCRISPY_TESTING=ON \
+ -DLIBTERMINAL_TESTING=ON
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build -C Release --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ rm "$pkgdir"/usr/share/contour/README.md "$pkgdir"/usr/share/contour/shell-integration/shell-integration.tcsh
+
+ mkdir -p "$pkgdir"/usr/share/licenses/"$pkgname"
+ mv "$pkgdir"/usr/share/contour/LICENSE.txt "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+_fish() {
+ pkgdesc="$pkgdesc (fish integration)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel fish"
+
+ mkdir -p "$subpkgdir"/usr/share/fish/plugins/"$pkgname"
+ mv "$pkgdir"/usr/share/contour/shell-integration/shell-integration.fish "$subpkgdir"/usr/share/fish/plugins/"$pkgname"/contour.plugin.fish
+}
+
+_zsh() {
+ pkgdesc="$pkgdesc (zsh integration)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel zsh"
+
+ mkdir -p "$subpkgdir"/usr/share/zsh/plugins/"$pkgname"
+ mv "$pkgdir"/usr/share/contour/shell-integration/shell-integration.zsh "$subpkgdir"/usr/share/zsh/plugins/"$pkgname"/contour.plugin.zsh
+}
+
+sha512sums="
+f0a91fbd5abefbbac0f785bb8f454759568e3daadbad6ff1ade00fccf8b0af94f16747816598c706a698d65ce884a2e9499512942e6f22263ebc654ae6fb6879 contour-0.4.3.6442.tar.gz
+"
diff --git a/testing/contour/libunicode-fix-catch-in-cmake.patch b/testing/contour/libunicode-fix-catch-in-cmake.patch
new file mode 100644
index 00000000000..4bf665cf3e7
--- /dev/null
+++ b/testing/contour/libunicode-fix-catch-in-cmake.patch
@@ -0,0 +1,19 @@
+diff --git a/src/libunicode/CMakeLists.txt b/src/libunicode/CMakeLists.txt
+index 6c5ac20..9fa13a3 100644
+--- a/src/libunicode/CMakeLists.txt
++++ b/src/libunicode/CMakeLists.txt
+@@ -223,10 +223,10 @@ if(LIBUNICODE_TESTING)
+ # supress conversion warnings for Catch2
+ # https://github.com/catchorg/Catch2/issues/2583
+ # https://github.com/SFML/SFML/blob/e45628e2ebc5843baa3739781276fa85a54d4653/test/CMakeLists.txt#L18-L22
+- set_target_properties(Catch2 PROPERTIES COMPILE_OPTIONS "" EXPORT_COMPILE_COMMANDS OFF)
+- set_target_properties(Catch2WithMain PROPERTIES EXPORT_COMPILE_COMMANDS OFF)
+- get_target_property(CATCH2_INCLUDE_DIRS Catch2 INTERFACE_INCLUDE_DIRECTORIES)
+- target_include_directories(Catch2 SYSTEM INTERFACE ${CATCH2_INCLUDE_DIRS})
++ # set_target_properties(Catch2 PROPERTIES COMPILE_OPTIONS "" EXPORT_COMPILE_COMMANDS OFF)
++ # set_target_properties(Catch2WithMain PROPERTIES EXPORT_COMPILE_COMMANDS OFF)
++ # get_target_property(CATCH2_INCLUDE_DIRS Catch2 INTERFACE_INCLUDE_DIRECTORIES)
++ # target_include_directories(Catch2 SYSTEM INTERFACE ${CATCH2_INCLUDE_DIRS})
+
+ target_link_libraries(unicode_test unicode Catch2::Catch2WithMain fmt::fmt-header-only)
+ add_test(unicode_test unicode_test)
diff --git a/testing/convert2json/APKBUILD b/testing/convert2json/APKBUILD
new file mode 100644
index 00000000000..2c0e1eea1a9
--- /dev/null
+++ b/testing/convert2json/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Simon Rupf <simon@rupf.net>
+pkgname=convert2json
+pkgver=0.8.2
+pkgrel=0
+pkgdesc="Utilities to convert CSV, INI, TOML, XML & YAML to JSON, including jq/jaq wrappers."
+url="https://github.com/simonrupf/convert2json"
+arch="all"
+license="MIT"
+depends="jaq"
+makedepends="
+ cargo
+ cargo-auditable
+ clang15-dev
+ "
+source="https://github.com/simonrupf/convert2json/archive/$pkgver/convert2json-$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/cq target/release/tq target/release/xq \
+ target/release/yq target/release/csv2json target/release/toml2json \
+ target/release/xml2json target/release/yaml2json \
+ -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+40e21178f740a2806c6efe20c3e61ef2f2ee097273cf0e78a8cf87dc90eaf395a07241d01359a64087c53fc2be92655003592a1f2dd2a90eba273777a34902e5 convert2json-0.8.2.tar.gz
+"
diff --git a/testing/copyq/APKBUILD b/testing/copyq/APKBUILD
index 9484ad72850..dbab360c200 100644
--- a/testing/copyq/APKBUILD
+++ b/testing/copyq/APKBUILD
@@ -3,36 +3,41 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=copyq
_pkgname=CopyQ
-pkgver=3.11.1
+pkgver=8.0.0
pkgrel=0
pkgdesc="Clipboard manager with searchable and editable history"
url="https://github.com/hluk/CopyQ"
-arch="all"
+arch="all !armhf"
license="GPL-3.0-or-later"
-makedepends="cmake libxfixes-dev libxtst-dev qt5-qtscript-dev
- qt5-qtsvg-dev qt5-qttools-dev qt5-qtx11extras-dev"
+makedepends="
+ cmake
+ extra-cmake-modules
+ knotifications-dev
+ kstatusnotifieritem-dev
+ libxfixes-dev
+ libxtst-dev
+ qt6-qtsvg-dev
+ qt6-qttools-dev
+ qt6-qtwayland-dev
+ samurai
+ "
options="!check" # upstream does not provide check
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-bash-completion"
source="$pkgname-$pkgver.tar.gz::https://github.com/hluk/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
-prepare() {
- default_prepare
- mkdir "$builddir"/build
-}
-
build() {
- cd "$builddir"/build
- cmake .. \
- -DWITH_QT5=TRUE \
+ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_QT6=ON
+ cmake --build build
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="9804b6259d64cdeb9bd4e93da992306a28e1e8792abca2265ded9b3a562922494f162ce3d862b13999fd6afb8f53bb68bdb25889e34543f6316d7576d9af7532 copyq-3.11.1.tar.gz"
+sha512sums="
+d5ed5fb8973834999c2b56a0c53de407f9ee704f1d6db60645ec7bdf05fdc93fc69b2b8f6127dd812de6c32e0e3a175db56b2cd6e90da7d031b6e531197b994e copyq-8.0.0.tar.gz
+"
diff --git a/testing/coq/APKBUILD b/testing/coq/APKBUILD
index 26f689f9df9..0b283a2d358 100644
--- a/testing/coq/APKBUILD
+++ b/testing/coq/APKBUILD
@@ -1,41 +1,70 @@
# Contributor: alpine-mips-patches <info@mobile-stream.com>
-# Maintainer: alpine-mips-patches <info@mobile-stream.com>
+# Contributor: omni <omni+alpine@hack.org>
+# Contributor: Jason Gross <jasongross9@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=coq
-pkgver=8.8.2
-pkgrel=0
-pkgdesc="A formal proof management system"
+pkgver=8.19.1
+pkgrel=3
+pkgdesc="Formal proof management system"
url="https://coq.inria.fr"
-arch="aarch64 ppc64le x86_64" # reflect ocaml aport platforms
-license="LGPL-2.1"
-depends="ocaml-runtime"
-makedepends="ocaml ocaml-compiler-libs ocaml-findlib ocaml-camlp5-dev ocaml-num-dev"
-options="!check"
-subpackages="$pkgname-doc $pkgname-emacs:emacs:noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/coq/$pkgname/archive/V$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+# riscv64, loongarch64: ocaml
+# s390x: not useful
+# 32-bit: huge package and nobody would use it there
+arch="all !armhf !armv7 !x86 !s390x !riscv64 !loongarch64"
+license="LGPL-2.1-or-later"
+makedepends="
+ bash
+ dune
+ linux-headers
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib-dev
+ ocaml-zarith
+ "
+options="!check" # many tests in 'make test-suite' fail
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/coq/coq/archive/V$pkgver.tar.gz"
build() {
- cd "$builddir"
./configure \
-prefix /usr \
- -coqdocdir /usr/share/texmf-dist/tex/latex/misc \
- -bytecode-compiler no \
- -coqide no \
- -nodebug
- make world
+ -mandir /usr/share/man \
+ -docdir /usr/share/doc \
+ -libdir "$(ocamlc -where)/coq"
+ make dunestrap
+ dune build -p coq,coq-core,coq-stdlib
}
package() {
- cd "$builddir"
- make OLDROOT= COQINSTALLPREFIX="$pkgdir" install
+ dune install coq coq-core coq-stdlib \
+ --prefix=/usr \
+ --destdir="$pkgdir" \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/doc \
+ --libdir="$(ocamlc -where)"
}
-emacs() {
- depends="$pkgname=$pkgver-r$pkgrel emacs"
- pkgdesc="$pkgdesc (Emacs files)"
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
- mkdir -p "$subpkgdir/usr/share"
- mv "$pkgdir/usr/share/emacs" "$subpkgdir/usr/share"
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="b0f0480fe052fced6016014cf1872d4e004b0dacb779927376d797c279aca9d5f6f4ed3d0f5ee5d42748bbd5c29b43f7a69748564a12a116bcc7ba3b052d8954 coq-8.8.2.tar.gz"
+sha512sums="
+ec8379df34ba6e72bcf0218c66fef248b0e4c5c436fb3f2d7dd83a2c5f349dd0874a67484fcf9c0df3e5d5937d7ae2b2a79274725595b4b0065a381f70769b42 coq-8.19.1.tar.gz
+"
diff --git a/testing/coreboot-tools/APKBUILD b/testing/coreboot-tools/APKBUILD
new file mode 100644
index 00000000000..344fc1f0ff2
--- /dev/null
+++ b/testing/coreboot-tools/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Nulo <alpine@nulo.in>
+# Maintainer: Adam Thiede <me@adamthiede.com>
+pkgname=coreboot-tools
+pkgver=24.02
+pkgrel=0
+pkgdesc="Tools from the coreboot project"
+url="https://review.coreboot.org/coreboot"
+# coreboot only runs on x86_64 and x86 systems
+arch="x86 x86_64"
+license="GPL-2.0-only"
+
+# All specified dependencies are just for configurator subpackage.
+# Everything else builds with default tooling.
+makedepends="
+ inkscape
+ meson
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ qt5-qtsvg-dev
+ yaml-cpp-dev
+ "
+subpackages="$pkgname-ectool $pkgname-nvramtool $pkgname-nvramtool-doc:nvramtool_doc:noarch $pkgname-ifdtool $pkgname-configurator"
+source="https://coreboot.org/releases/coreboot-$pkgver.tar.xz"
+builddir="$srcdir/coreboot-$pkgver"
+options="!check" # no test suite
+
+build() {
+ make -e -C util/ectool
+ make -e -C util/nvramtool CFLAGS="$CFLAGS -I. -DCMOS_HAL=1"
+ make -e -C util/ifdtool
+ abuild-meson -Db_lto=true util/coreboot-configurator util/coreboot-configurator/output
+ meson compile -C util/coreboot-configurator/output
+}
+
+package() {
+ make -e -C util/ectool PREFIX="$pkgdir/usr" install
+ make -e -C util/nvramtool PREFIX="$pkgdir/usr" install
+ make -e -C util/ifdtool PREFIX="$pkgdir/usr" install
+}
+
+nvramtool() {
+ pkgdesc="Manipulates NVRAM from userspace"
+
+ amove usr/sbin/nvramtool
+}
+
+nvramtool_doc() {
+ pkgdesc="Manipulates NVRAM from userspace (documentation)"
+ install_if="$pkgname-nvramtool=$pkgver-r$pkgrel docs"
+
+ amove usr/share/man/man8/nvramtool*
+ gzip -9n "$subpkgdir"/usr/share/man/man8/*
+}
+
+ectool() {
+ pkgdesc="Dumps the RAM of a laptop’s Embedded/Environmental Controller (EC)"
+
+ amove usr/sbin/ectool
+}
+
+ifdtool() {
+ pkgdesc="Extract and dump Intel Firmware Descriptor information"
+
+ amove usr/bin/ifdtool
+}
+
+configurator() {
+ pkgdesc="Graphical NVRAMtool frontend"
+ DESTDIR="$subpkgdir" meson install --no-rebuild -C $builddir/util/coreboot-configurator/output
+}
+
+sha512sums="
+e73fa1346bccaea66d7cc6b3c336c4e2f46bbcd046202f7981b8e2b5e5b59192dce729e72daa16dc4020c004bbfab2364551718e349d939ade2985519912a377 coreboot-24.02.tar.xz
+"
diff --git a/testing/corectrl/APKBUILD b/testing/corectrl/APKBUILD
new file mode 100644
index 00000000000..036bcb58094
--- /dev/null
+++ b/testing/corectrl/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer:
+pkgname=corectrl
+pkgver=1.3.10
+pkgrel=0
+pkgdesc="Control your hardware with application profiles"
+url="https://gitlab.com/corectrl/corectrl"
+# fails to build
+arch="all !armhf !armv7 !ppc64le !x86 !s390x"
+license="GPL-3.0-only"
+depends="
+ hwdata
+ procps
+ qt5-qtquickcontrols2
+ qt5-qtsvg
+ qt5-qtxmlpatterns
+ "
+makedepends="
+ botan-dev
+ cmake
+ fmt-dev
+ polkit-dev
+ pugixml-dev
+ qt5-qtbase-dev
+ qt5-qtcharts-dev
+ qt5-qtquickcontrols2-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ quazip-dev
+ samurai
+ "
+checkdepends="catch2"
+source="https://gitlab.com/corectrl/corectrl/-/archive/v$pkgver/corectrl-v$pkgver.tar.bz2
+ "
+builddir="$srcdir/corectrl-v$pkgver"
+options="!check" # one version comparison test segfaults
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+167dc67a57ec2ec710730e9d31a86d7d9fb409806c3be917186501804e5c17f65de87ac404027cc75d1c6c06adc26ac3763312b09253349787ce4ddd45d6696e corectrl-v1.3.10.tar.bz2
+"
diff --git a/testing/coredns/APKBUILD b/testing/coredns/APKBUILD
deleted file mode 100644
index ab7f448b92b..00000000000
--- a/testing/coredns/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Mark Pashmfouroush <mark@markpash.me>
-# Maintainer: Mark Pashmfouroush <mark@markpash.me>
-pkgname=coredns
-pkgver=1.6.9
-pkgrel=0
-pkgdesc="CoreDNS is a fast and flexible DNS server"
-url="https://github.com/coredns/coredns"
-arch="all !mips !x86 !armv7 !armhf"
-license="Apache-2.0"
-options="net"
-makedepends="go"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/coredns/coredns/archive/v$pkgver.tar.gz
- coredns.confd
- coredns.initd
- "
-
-build() {
- make
-}
-
-check() {
- cd "$builddir"/request; go test ./...
- cd "$builddir"/core; go test ./...
- cd "$builddir"/coremain; go test ./...
- cd "$builddir"/plugin; go test ./...
-}
-
-package() {
- install -Dm644 "$srcdir"/coredns.confd "$pkgdir"/etc/conf.d/coredns
- install -Dm755 "$srcdir"/coredns.initd "$pkgdir"/etc/init.d/coredns
- install -Dm755 "$builddir"/coredns "$pkgdir"/usr/bin/coredns
- setcap cap_net_bind_service=+ep "$pkgdir"/usr/bin/coredns
- install -d "$pkgdir"/etc/coredns
-}
-
-sha512sums="8b3fbdb03682091d38ebf70435c2e41637ea8f3147911ca1c0d675139c47d9fd727ec0ddf62d213f5e99738030be08ba8844a784d027aa90afb28027a38336e2 coredns-1.6.9.tar.gz
-2ff396033c570f45b5880556a8724b05356276db451cf6e6cfb477f64f4b863801a891940f72c0b1c8268bae176094d02890d27146901f296e4e8d9b703934d2 coredns.confd
-62b6d9c8c980990bec896b2d6e0e626b0ea4a7db80ac925772e0d6f2793a6a511165bbd76b52f38a2e8243ffc68e430b32cf33c32332b483fc528ed57e2b2927 coredns.initd"
diff --git a/testing/coredns/coredns.confd b/testing/coredns/coredns.confd
deleted file mode 100644
index 665d1c1c53b..00000000000
--- a/testing/coredns/coredns.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-# /etc/conf.d/coredns
-
-# Uncomment and fill to specify custom arguments
-# ARGS=""
diff --git a/testing/coredns/coredns.initd b/testing/coredns/coredns.initd
deleted file mode 100644
index 45bbc797d15..00000000000
--- a/testing/coredns/coredns.initd
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/sbin/openrc-run
-
-name=coredns
-description="CoreDNS is a fast and flexible DNS server"
-command=/usr/bin/coredns
-command_args="$ARGS"
-command_user="coredns:coredns"
-supervisor="supervise-daemon"
-
-depend() {
- need net
- provide dns
-}
diff --git a/testing/coredns/coredns.pre-install b/testing/coredns/coredns.pre-install
deleted file mode 100644
index 3b5a3a83c46..00000000000
--- a/testing/coredns/coredns.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S coredns 2>/dev/null
-adduser -S -D -H -s /bin/nologin -G coredns -g coredns coredns 2>/dev/null
-
-exit 0
diff --git a/testing/corkscrew/APKBUILD b/testing/corkscrew/APKBUILD
deleted file mode 100644
index 2f738991c06..00000000000
--- a/testing/corkscrew/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Contributor: Matt Dainty <matt+alpine@bodgit-n-scarper.com>
-# Maintainer:
-pkgname=corkscrew
-pkgver=2.0
-pkgrel=1
-_commit=a94f745b40077172b8fe7d77e2d583b9cf900281
-pkgdesc="Tool for tunneling SSH through HTTP proxies"
-url="https://github.com/bryanpkc/corkscrew/"
-arch="all"
-license="GPL"
-depends=""
-makedepends="autoconf automake"
-install=""
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/bryanpkc/corkscrew/archive/$_commit.tar.gz
- corkscrew-2.0-from-debian-readme.patch
- corkscrew-2.0-typo.patch
- corkscrew.1
- "
-
-_builddir="$srcdir"/$pkgname-$_commit
-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
- aclocal && autoheader && autoconf && automake --add-missing --force || return 1
-}
-
-build() {
- cd "$_builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
-
- install -m644 -D "$srcdir"/corkscrew.1 \
- "$pkgdir"/usr/share/man/man1/corkscrew.1 || return 1
-}
-
-sha512sums="3023df4a366d08d131fe3c73c4841c4aed3b257c6deb64c4db2f0f6e210483d7c563937468f8c9e5da8441305951ffccb5bc05da6da24bc0463f1806ad7e6abe corkscrew-2.0.tar.gz
-2514663f2f120c49b7c0d40246ca5fae49f9c27097c17c38992085bc9f4ae3e2f1a749ceaf400b10b4b68c809365a420865fab90fead585949ad440a19f02aeb corkscrew-2.0-from-debian-readme.patch
-197dd0d3de4a026603af8ea4bf8cdf1d25b7555166b817697474961020491b4f181c67e431f340791f22768c28b40262819780c77055ec3d066c60c19f57ac2e corkscrew-2.0-typo.patch
-a59c99056ef4c12dec854ab0b571b9778b78c3d429193c1365ef2c1a37edb478e8d7e7948e830b22dfe3fb724e6be0b6176ac541da1fa5a2678a608f2b025e90 corkscrew.1"
diff --git a/testing/corkscrew/corkscrew-2.0-from-debian-readme.patch b/testing/corkscrew/corkscrew-2.0-from-debian-readme.patch
deleted file mode 100644
index ed92d657443..00000000000
--- a/testing/corkscrew/corkscrew-2.0-from-debian-readme.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/README
-+++ b/README
-@@ -66,7 +66,7 @@
- following line to your ~/.ssh/config file will usually do the trick
- (replace proxy.example.com and 8080 with correct values):
-
-- ProxyCommand /usr/local/bin/corkscrew proxy.example.com 8080 %h %p
-+ ProxyCommand /usr/bin/corkscrew proxy.example.com 8080 %h %p
-
- NOTE: Command line syntax has changed since version 1.5. Please notice
- that the proxy port is NOT optional anymore and is required in the
-@@ -91,7 +91,7 @@
- Now you will have to change the ProxyCommand line in your ~/.ssh/config
- file. Here's an example:
-
-- ProxyCommand /usr/local/bin/corkscrew proxy.work.com 80 %h %p ~/.ssh/myauth
-+ ProxyCommand /usr/bin/corkscrew proxy.work.com 80 %h %p ~/.ssh/myauth
-
- The proxy authentication feature is very new and has not been tested
- extensively so your mileage may vary. If you encounter any problems when
diff --git a/testing/corkscrew/corkscrew-2.0-typo.patch b/testing/corkscrew/corkscrew-2.0-typo.patch
deleted file mode 100644
index 00de90e28da..00000000000
--- a/testing/corkscrew/corkscrew-2.0-typo.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/README
-+++ b/README
-@@ -105,7 +105,7 @@
-
- NOTE: I have had problems using the auth features with Mircosoft Proxy
- server. The problems are sporadic, and I believe that they are related
--to the round-robin setup that I was testing it again. Your mileage may
-+to the round-robin setup that I was testing it against. Your mileage may
- vary.
-
-
diff --git a/testing/corkscrew/corkscrew.1 b/testing/corkscrew/corkscrew.1
deleted file mode 100644
index 1c19c63581f..00000000000
--- a/testing/corkscrew/corkscrew.1
+++ /dev/null
@@ -1,97 +0,0 @@
-.\" Hey, EMACS: -*- nroff -*-
-.\" First parameter, NAME, should be all caps
-.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
-.\" other parameters are allowed: see man(7), man(1)
-.TH CORKSCREW 1 "November 22, 2003"
-.\" Please adjust this date whenever revising the manpage.
-.\"
-.\" Some roff macros, for reference:
-.\" .nh disable hyphenation
-.\" .hy enable hyphenation
-.\" .ad l left justify
-.\" .ad b justify to both left and right margins
-.\" .nf disable filling
-.\" .fi enable filling
-.\" .br insert line break
-.\" .sp <n> insert n+1 empty lines
-.\" for manpage-specific macros, see man(7)
-.SH NAME
-corkscrew \- Tunnel TCP connections through HTTP proxies
-.SH SYNOPSIS
-.B corkscrew
-.BR
-proxy
-.BR
-proxyport
-.BR
-targethost
-.BR
-targetport
-.BR
-[ authfile ]
-.br
-.SH DESCRIPTION
-This manual page documents briefly the
-.BR corkscrew
-command.
-This manual page was written for the Debian distribution
-because the original program does not have a manual page.
-
-corkscrew is a simple tool to tunnel TCP connections through an HTTP
-proxy supporting the CONNECT method. It reads stdin and writes to
-stdout during the connection, just like netcat.
-It can be used for instance to connect to an SSH server running on
-a remote 443 port through a strict HTTPS proxy.
-
-
-.SH PARAMETERS
-
-.TP
-.B proxy
-This is the name of the host running the HTTP proxy.
-.TP
-.B proxyport
-This is the port on which to connect on the proxy.
-.TP
-.B target
-This is the host to reach through the proxy.
-.TP
-.B targetport
-This is the port to connect to on the target host.
-
-.SH COMMON USAGE
-
-The common usage of corkscrew is to put the following line in your
-ssh_config:
-
-ProxyCommand corkscrew proxy proxyport %h %p
-
-This will let your ssh connection go through the proxy with the help
-of corkscrew.
-
-.SH AUTH FILE
-
-The auth file is made of one single line containing your username and
-password in the form:
-
-username:password
-
-You should add the path to your auth file in the proxy command
-described above:
-
-ProxyCommand corkscrew proxy proxyport %h %p auth-file
-
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIssh_config\fR\|(5)
-
-.PP
-.\" TeX users may be more comfortable with the \fB<whatever>\fP and
-.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
-.\" respectively.
-.SH AUTHOR
-corkscrew was written by Pat Padgett <agroman@agroman.net>.
-Thomas Seyrat <tomasera@debian.org> is the debian maintainer for this
-package. This manual page was written by Laurent Fousse
-<laurent@komite.net>, for the Debian GNU/Linux system (but may be used
-by others).
diff --git a/testing/cosmopolitan/APKBUILD b/testing/cosmopolitan/APKBUILD
new file mode 100644
index 00000000000..6431385f711
--- /dev/null
+++ b/testing/cosmopolitan/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Sebastian Hudak <sebastian@sebsite.pw>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=cosmopolitan
+pkgver=1.0
+pkgrel=0
+pkgdesc="Build-once run-anywhere C library"
+url="https://justine.lol/cosmopolitan/"
+arch="x86_64"
+license="ISC"
+subpackages="$pkgname-doc"
+source="https://justine.lol/cosmopolitan/cosmopolitan-$pkgver.tar.gz
+ no-clang-test.patch
+ "
+options="!fhs !check" # installs to /opt, checks fail on builders
+builddir="$srcdir/cosmopolitan"
+
+_mode=rel
+
+build() {
+ # Build doesn't work with custom *FLAGS.
+ # This is due to the nature of Cosmpolitan and APE binaries and
+ # probably can't be worked around.
+ make CFLAGS= CXXFLAGS= CPPFLAGS= LDFLAGS= MODE="$_mode" \
+ o/cosmopolitan.h \
+ o/cosmopolitan.html \
+ o/"$_mode"/ape \
+ o/"$_mode"/cosmopolitan.a \
+ o/"$_mode"/libc
+}
+
+check() {
+ make CFLAGS= CXXFLAGS= CPPFLAGS= LDFLAGS= MODE="$_mode" \
+ o/"$_mode"/test/libc
+}
+
+package() {
+ install -Dm644 o/cosmopolitan.h \
+ "$pkgdir"/opt/cosmopolitan/include/cosmopolitan.h
+ install -Dm644 o/cosmopolitan.html \
+ "$pkgdir"/usr/share/doc/cosmopolitan.html
+ install -Dm644 o/"$_mode"/ape/* \
+ -t "$pkgdir"/opt/cosmopolitan/lib/
+ install -m644 o/"$_mode"/cosmopolitan.a \
+ "$pkgdir"/opt/cosmopolitan/lib/cosmopolitan.a
+ install -m644 o/"$_mode"/libc/crt/crt.o \
+ "$pkgdir"/opt/cosmopolitan/lib/crt.o
+}
+
+sha512sums="
+1fb01ad95d5d0908e608febd191545ca2ed06d37ff64715c3241528be2f36f656b68103178c925a8d0a985a9fd40f8f62e034a05ed719d682c5b1c336ff25c8d cosmopolitan-1.0.tar.gz
+b6d892a8ecc0a50a8cae49a0ba4ef9940316ee4ff9c36f247bda521c2ffb853062c56716bd8226144348760b581bc2cf5c65a06775162c362b4e966ac413409a no-clang-test.patch
+"
diff --git a/testing/cosmopolitan/no-clang-test.patch b/testing/cosmopolitan/no-clang-test.patch
new file mode 100644
index 00000000000..1f6623bb9d2
--- /dev/null
+++ b/testing/cosmopolitan/no-clang-test.patch
@@ -0,0 +1,12 @@
+Clang test segfaults.
+See https://groups.google.com/g/cosmopolitan-libc/c/COPYVF7sE-Y
+
+--- cosmopolitan/test/libc/release/test.mk 2021-05-17 03:35:10.000000000 +0000
++++ cosmopolitan-alpine/test/libc/release/test.mk 2022-01-07 02:47:16.666693677 +0000
+@@ -147,6 +137,5 @@
+ o/$(MODE)/test/libc/release/smokecxx.com.runs \
+ o/$(MODE)/test/libc/release/smokeansi.com \
+ o/$(MODE)/test/libc/release/smokeansi.com.runs \
+- o/$(MODE)/test/libc/release/clang.ok \
+ o/$(MODE)/test/libc/release/emulate.ok \
+ o/$(MODE)/test/libc/release/metal.ok
diff --git a/testing/coventry/APKBUILD b/testing/coventry/APKBUILD
new file mode 100644
index 00000000000..f20d6ff31d1
--- /dev/null
+++ b/testing/coventry/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: David Sugar <tychosoft@gmail.com>
+# Contributor: David Sugar <tychosoft@gmail.com>
+pkgname=coventry
+pkgver=0.8.1
+pkgrel=0
+pkgdesc="Residential IP telephony gateway"
+url="https://www.tychosoft.com/tychosoft/coventry/wiki"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake fmt-dev>=8.1.0 openssl-dev moderncli-dev>=0.8.0 libosip2-dev>=5.3.0 libexosip2-dev>=5.3.0"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://www.tychosoft.com/api/packages/tychosoft/generic/coventry/$pkgver/coventry-$pkgver.tar.gz coventry.initd"
+
+build() {
+ cmake \
+ -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc \
+ -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=/var \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DSERVER_PREFIX_PATH=/var/lib/coventry \
+ -DSERVER_LOGGER_PATH=/var/log/coventry \
+ -DSERVER_CONFIG_FILE=/etc/coventry.conf \
+ -DCMAKE_BUILD_TYPE=Release .
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+ strip "$pkgdir"/usr/bin/pbx-*
+ strip "$pkgdir"/usr/sbin/coventry
+ gzip "$pkgdir"/usr/share/man/man*/*
+ install -d -m 750 -g adm "$pkgdir"/var/log/$pkgname
+ install -d -m 700 "$pkgdir"/var/lib/$pkgname
+ install -D -m 700 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+ install -Dm644 FEATURES.md "$pkgdir"/usr/share/doc/$pkgname/FEATURES.md
+ install -Dm644 AGENTS.md "$pkgdir"/usr/share/doc/$pkgname/AGENTS.md
+ install -Dm644 UTILITIES.md "$pkgdir"/usr/share/doc/$pkgname/UTILITIES.md
+}
+
+sha512sums="
+dfaef6e24d47f0c27a3b2833da3835b479a3e8c1226bb24e48752fcd610e52baf5a30853467bb1ed4dcd170731e8df81b9df6e65d597e5b693b61bdfde1bb664 coventry-0.8.1.tar.gz
+fd601c29764a34d3f8f1102982885a350a7a7f16edcbb8fdb1096b77600c686a87ec2de37ee502c9a7f1494e9b1dd7f8050eb6fe069f2e57ebc0e8da958f9bd3 coventry.initd
+"
diff --git a/testing/coventry/coventry.initd b/testing/coventry/coventry.initd
new file mode 100644
index 00000000000..602dd6ed30e
--- /dev/null
+++ b/testing/coventry/coventry.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name=coventry
+command="/usr/sbin/coventry"
+pidfile="/run/coventry.pid"
+extra_started_commands="reload"
+
+depend() {
+ use logger dns
+ need net
+ after firewall
+}
+
+stop() {
+ ebegin "Stopping ${RC_SVCNAME}"
+ start-stop-daemon --signal INT --pidfile "${pidfile}"
+ eend $? "Failed to stop ${RC_SVCNAME}"
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
+
diff --git a/testing/cowsay/APKBUILD b/testing/cowsay/APKBUILD
new file mode 100644
index 00000000000..04fcc8d1876
--- /dev/null
+++ b/testing/cowsay/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Raymond Page <pagerc@gmail.com>
+# Maintainer: Raymond Page <pagerc@gmail.com>
+pkgname=cowsay
+pkgver=3.04
+pkgrel=2
+pkgdesc="Configurable talking cow (and a few other creatures)"
+arch="noarch"
+url="https://github.com/tnalpgge/rank-amateur-cowsay"
+license="Artistic-1.0-Perl OR GPL-2.0-or-later"
+depends="perl"
+subpackages="$pkgname-doc"
+source="https://github.com/tnalpgge/rank-amateur-cowsay/archive/cowsay-$pkgver.tar.gz
+ cowsay.patch
+ "
+options="!check"
+builddir="$srcdir/rank-amateur-cowsay-cowsay-$pkgver"
+
+package() {
+ echo "$pkgdir/usr" | ./install.sh
+}
+
+sha512sums="99d21ef9a7c7c76056cb7acb2c771fbdabfedde4f6edb5d3035337c59f9e88944690d1b43282c32827ad79339199716366c8be73b0dea09063ec2d52220c1b51 cowsay-3.04.tar.gz
+a8621a32e5904d8f020623e96487bc20142fa93e60da5f30689edddc278be56a108d5bf4ada665b3cb7b0122e0e3d1e8a4a56fd7e0d41c536ded29cca6761615 cowsay.patch"
diff --git a/testing/cowsay/cowsay.patch b/testing/cowsay/cowsay.patch
new file mode 100644
index 00000000000..9f569a9475e
--- /dev/null
+++ b/testing/cowsay/cowsay.patch
@@ -0,0 +1,27 @@
+This patch hardcodes the installation prefix to /usr and updates
+the location of the man pages from $PREFIX/man to $PREFIX/share/man.
+
+--- cowsay-3.03/install.sh.orig 2020-06-05 13:39:36.615616000 +0000
++++ cowsay-3.03/install.sh 2020-06-05 13:40:24.178066800 +0000
+@@ -67,7 +67,7 @@
+ echo Okay, time to install this puppy.
+
+ echo s,%BANGPERL%,!$usethisperl,\; > install.pl
+-echo s,%PREFIX%,$PREFIX,\; >> install.pl
++echo s,%PREFIX%,/usr,\; >> install.pl
+ set -x
+ mkdir -p $PREFIX/bin || (mkdir $PREFIX; mkdir $PREFIX/bin)
+ $usethisperl -p install.pl cowsay > $PREFIX/bin/cowsay
+@@ -74,8 +74,8 @@
+ chmod a+x $PREFIX/bin/cowsay
+ ln -s cowsay $PREFIX/bin/cowthink
+-mkdir -p $PREFIX/man/man1 || ($mkdir $PREFIX; mkdir $PREFIX/man; mkdir $PREFIX/man/man1)
+-$usethisperl -p install.pl cowsay.1 > $PREFIX/man/man1/cowsay.1
+-chmod a+r $PREFIX/man/man1/cowsay.1
+-ln -s cowsay.1 $PREFIX/man/man1/cowthink.1
++mkdir -p $PREFIX/share/man/man1 || ($mkdir $PREFIX; mkdir $PREFIX/man; mkdir $PREFIX/man/man1)
++$usethisperl -p install.pl cowsay.1 > $PREFIX/share/man/man1/cowsay.1
++chmod a+r $PREFIX/share/man/man1/cowsay.1
++ln -s cowsay.1 $PREFIX/share/man/man1/cowthink.1
+ mkdir -p $PREFIX/share/cows || (mkdir $PREFIX; mkdir $PREFIX/share; mkdir $PREFIX/share/cows)
+ tar -cf - $filelist | (cd $PREFIX/share && tar -xvf -)
diff --git a/testing/coxeter/APKBUILD b/testing/coxeter/APKBUILD
new file mode 100644
index 00000000000..0dedb2248f4
--- /dev/null
+++ b/testing/coxeter/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=coxeter
+pkgver=3.0
+pkgrel=1
+pkgdesc="Tool for studying combinatorial aspects of Coxeter group theory"
+url="http://math.univ-lyon1.fr/~ducloux/coxeter/coxeter3/english/coxeter3_e.html"
+arch="all"
+license="GPL-1.0-only"
+source="https://archive.org/download/coxeter-$pkgver.tar.xz/coxeter-$pkgver.tar.xz
+ add-sagemath-interface.patch
+ makefile
+ test-input
+ test-output"
+subpackages="$pkgname-dev $pkgname-libs"
+
+prepare() {
+ default_prepare
+ cp "$srcdir"/makefile .
+}
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+ make -e
+}
+
+check() {
+ LD_LIBRARY_PATH=. ./coxeter < "$srcdir"/test-input > actual-test-output
+ diff "$srcdir"/test-output actual-test-output
+}
+
+package() {
+ install -Dm755 coxeter "$pkgdir"/usr/bin/coxeter
+ install -Dm755 libcoxeter3.so.0.0.0 "$pkgdir"/usr/lib/libcoxeter3.so.0.0.0
+ ln -s libcoxeter3.so.0.0.0 "$pkgdir"/usr/lib/libcoxeter3.so
+ install -Dm644 -t "$pkgdir"/usr/include/coxeter ./*.h ./*.hpp
+ install -dm755 "$pkgdir"/usr/share/coxeter
+ cp -vR coxeter_matrices "$pkgdir"/usr/share/coxeter/.
+ cp -vR headers "$pkgdir"/usr/share/coxeter/.
+ cp -vR messages "$pkgdir"/usr/share/coxeter/.
+}
+
+sha512sums="
+d7702ec7f84593aa2d6290e9405494f491f4a143be6db763f2a1974baffa6ab5b4cfeec4a0699ba37a547dd20e0c991ce9753778f0fb9a8b03c3a093f6bf7ebc coxeter-3.0.tar.xz
+5c76577ba110ca550756c5149067ed0c8ebfbea01888e922c826b5f919549784de7e0921cae4604221f123586b69740e677da3699f676ba40bd04fbcc0f68382 add-sagemath-interface.patch
+dddce060808349d9849efd7446a139d54be8d57e2012079f96776ac85d9ef197a59d2e2c32ad950ca8cfa0cf1281d1912a31f828702edd923697cd67647f4e80 makefile
+bca860dd0b717ea5cd7ba3213583f07a39f1e33451a53765db444f11a2e59a1e3d1eedb6465f6601dc67bfc30d856a793c6a05f65f53e10651509aeabebaaa91 test-input
+52e7198f6ebeb05b9ddd00a280ab1e168e82f31e2124bebbac84d0bdc35096ab0caaedae7a0e58e25e1b327ed93754261254fc89a1a05589e5fd53282adc4101 test-output
+"
diff --git a/testing/coxeter/add-sagemath-interface.patch b/testing/coxeter/add-sagemath-interface.patch
new file mode 100644
index 00000000000..1158ca46d80
--- /dev/null
+++ b/testing/coxeter/add-sagemath-interface.patch
@@ -0,0 +1,101 @@
+From 0c8eb9cdba9cc54415fc4f808f71f1e3e2323e85 Mon Sep 17 00:00:00 2001
+From: Jeroen Demeyer <jdemeyer@cage.ugent.be>
+Date: Mon, 26 Feb 2018 14:43:08 +0100
+Subject: [PATCH] Add Sage interface
+
+---
+ sage.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ sage.h | 22 ++++++++++++++++++++++
+ 2 files changed, 77 insertions(+)
+ create mode 100644 sage.cpp
+ create mode 100644 sage.h
+
+diff --git a/sage.cpp b/sage.cpp
+new file mode 100644
+index 0000000..503654d
+--- /dev/null
++++ b/sage.cpp
+@@ -0,0 +1,55 @@
++/*
++ Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++*/
++
++#include "sage.h"
++
++namespace sage {
++
++ void interval(List<CoxWord>& list, CoxGroup& W, const CoxWord& g, const CoxWord& h)
++
++ /*
++ Return a list of the elements in the Bruhat interval between g and h.
++ Note that this assumes that g and h are in order.
++ */
++ {
++ if (not W.inOrder(g,h)) {
++ return;
++ }
++
++ W.extendContext(h);
++
++ CoxNbr x = W.contextNumber(g);
++ CoxNbr y = W.contextNumber(h);
++
++ BitMap b(W.contextSize());
++ W.extractClosure(b,y);
++
++ BitMap::ReverseIterator b_rend = b.rend();
++ List<CoxNbr> res(0);
++
++ for (BitMap::ReverseIterator i = b.rbegin(); i != b_rend; ++i)
++ if (not W.inOrder(x,*i)) {
++ BitMap bi(W.contextSize());
++ W.extractClosure(bi,*i);
++ CoxNbr z = *i; // andnot will invalidate iterator
++ b.andnot(bi);
++ b.setBit(z); // otherwise the decrement will not be correct
++ } else
++ res.append(*i);
++
++ schubert::NFCompare nfc(W.schubert(),W.ordering());
++ Permutation a(res.size());
++ sortI(res,nfc,a);
++
++ list.setSize(0);
++ for (size_t j = 0; j < res.size(); ++j) {
++ CoxWord w(0);
++ W.schubert().append(w, res[a[j]]);
++ list.append(w);
++ }
++
++ return;
++ }
++
++}
+diff --git a/sage.h b/sage.h
+new file mode 100644
+index 0000000..fed0a7a
+--- /dev/null
++++ b/sage.h
+@@ -0,0 +1,22 @@
++/*
++ Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++*/
++
++#ifndef SAGE_H /* guard against multiple inclusions */
++#define SAGE_H
++
++#include "globals.h"
++#include "coxgroup.h"
++#include "coxtypes.h"
++#include "schubert.h"
++#include "list.h"
++
++namespace sage {
++ using namespace coxeter;
++ using namespace coxtypes;
++ using namespace list;
++
++ void interval(List<CoxWord>& result, CoxGroup& W, const CoxWord& g, const CoxWord& h);
++}
++
++#endif
diff --git a/testing/coxeter/makefile b/testing/coxeter/makefile
new file mode 100644
index 00000000000..ec973192917
--- /dev/null
+++ b/testing/coxeter/makefile
@@ -0,0 +1,12 @@
+.POSIX:
+
+objects = affine.o automata.o bits.o cells.o commands.o constants.o coxgroup.o coxtypes.o error.o fcoxgroup.o files.o general.o graph.o help.o interactive.o interface.o invkl.o io.o kl.o klsupport.o main.o memory.o minroots.o posets.o sage.o schubert.o special.o transducer.o type.o typeA.o uneqkl.o wgraph.o
+
+coxeter: libcoxeter3.so.0.0.0
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -L. -o coxeter main.o -l:libcoxeter3.so.0.0.0
+
+libcoxeter3.so.0.0.0: $(objects)
+ $(CXX) $(CXXFLAGS) -shared -Wl,-soname=libcoxeter3.so.0.0.0 -o libcoxeter3.so.0.0.0 $(objects)
+
+.cpp.o:
+ $(CXX) $(CXXFLAGS) -fPIC -c -o $@ $<
diff --git a/testing/coxeter/test-input b/testing/coxeter/test-input
new file mode 100644
index 00000000000..fb732368d43
--- /dev/null
+++ b/testing/coxeter/test-input
@@ -0,0 +1,9 @@
+type
+A
+3
+compute
+1 3 2 1 2 3 1 2 1
+ihbetti
+213
+q
+q
diff --git a/testing/coxeter/test-output b/testing/coxeter/test-output
new file mode 100644
index 00000000000..b97ee097be2
--- /dev/null
+++ b/testing/coxeter/test-output
@@ -0,0 +1,13 @@
+This is Coxeter version 3.1.
+Enter help if you need assistance, carriage return to start the program.
+
+coxeter :
+type :
+rank : coxeter : enter your element (finish with a carriage return) :
+213
+coxeter : enter your element (finish with a carriage return) :
+h[0] = 1 h[1] = 3 h[2] = 3 h[3] = 1
+
+size : 8
+
+coxeter : coxeter : \ No newline at end of file
diff --git a/testing/cozy/APKBUILD b/testing/cozy/APKBUILD
new file mode 100644
index 00000000000..83ba3da47f0
--- /dev/null
+++ b/testing/cozy/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Tim Magee <timothy@eastlincoln.net>
+# Maintainer:
+pkgname=cozy
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Modern audiobook player for Linux"
+url="https://cozy.sh"
+# armhf, ppc64le: py3-pylast
+# s390x: doubt anyone would use this on a mainframe
+arch="noarch !armhf !ppc64le !s390x"
+license="GPL-3.0-only"
+depends="
+ gst-libav
+ gst-plugins-bad
+ gst-plugins-good
+ gst-plugins-ugly
+ gtk+3.0
+ libdazzle
+ libhandy1
+ py3-cairo
+ py3-distro
+ py3-gobject3
+ py3-gst
+ py3-mutagen
+ py3-packaging
+ py3-peewee
+ py3-requests
+ py3-tz
+ "
+makedepends="
+ desktop-file-utils
+ gobject-introspection-dev
+ gtk+3.0-dev
+ libhandy1-dev
+ meson
+ py3-gobject3-dev
+ "
+subpackages="$pkgname-pyc $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/geigi/cozy/archive/refs/tags/$pkgver.tar.gz
+ fix-legacy-version.patch
+ "
+options="!check" # no tests
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ ln -sfv com.github.geigi.cozy "$pkgdir"/usr/bin/cozy
+ python3 -m compileall -fq "$pkgdir"/usr/lib/python*
+}
+
+sha512sums="
+db6c4a5ed47e139d87ca8a0d3c1d2681305ee565322209240e52acc1ac41c9669fb3ae06ca517d668e5f7a86319861089772b0d7b8f1aa22cfb5462913a9d3f5 cozy-1.2.1.tar.gz
+64624f020beb3c2dd8a2a8972da3bd312e26b5d8f6dbbc6af998c2e05feb1991d0298c49209ed08969f1306109fcaa48a6154b647ca1c7cb895b18daa944dd6f fix-legacy-version.patch
+"
diff --git a/testing/cozy/fix-legacy-version.patch b/testing/cozy/fix-legacy-version.patch
new file mode 100644
index 00000000000..a1fc1f4a501
--- /dev/null
+++ b/testing/cozy/fix-legacy-version.patch
@@ -0,0 +1,76 @@
+Patch-Source: https://github.com/geigi/cozy/pull/762
+--
+From 6422aaafa9655b91f29bdb399970181ef4a888df Mon Sep 17 00:00:00 2001
+From: suve <veg@svgames.pl>
+Date: Wed, 29 Mar 2023 12:22:58 +0200
+Subject: [PATCH 1/2] Fix crash on startup
+
+This commit fixes the program crashing because of an uncaught exception.
+The bug was triggered by app_settings.last_launched_version being
+unset - which would always be the case when launching the program for
+the first time!
+
+The bug could also be triggered by manually changing the setting
+to an invalid value - e.g. by running:
+$ gsettings set com.github.geigi.cozy last-launched-version 'ayy lmao'
+---
+ cozy/ui/widgets/whats_new_window.py | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/cozy/ui/widgets/whats_new_window.py b/cozy/ui/widgets/whats_new_window.py
+index 1e80d1ef..1a79005b 100644
+--- a/cozy/ui/widgets/whats_new_window.py
++++ b/cozy/ui/widgets/whats_new_window.py
+@@ -51,12 +51,16 @@ def __init__(self, **kwargs):
+ def _fill_window(self):
+ self.children = []
+
+- last_launched_version = version.parse(self.app_settings.last_launched_version)
+-
+- if type(last_launched_version) is version.LegacyVersion:
++ try:
++ last_launched_version = version.parse(self.app_settings.last_launched_version)
++ except version.InvalidVersion:
+ self._fill_welcome()
+ else:
+- self._fill_whats_new(last_launched_version)
++ if type(last_launched_version) is version.LegacyVersion:
++ self._fill_welcome()
++ else:
++ self._fill_whats_new(last_launched_version)
++
+
+ def _fill_welcome(self):
+ from cozy.ui.widgets.welcome import Welcome
+
+From 5dd970aafb9f50803344cf1e2c5c91751658a58e Mon Sep 17 00:00:00 2001
+From: suve <veg@svgames.pl>
+Date: Sun, 28 May 2023 12:09:02 +0200
+Subject: [PATCH 2/2] Remove usage of version.LegacyVersion
+
+The "packaging" module has deprecated its LegacyVersion identifier back
+in 2020, finally removing it in 2021. This causes cozy to crash when
+running against new version of said module, with the following error:
+> AttributeError: module 'packaging.version'
+> has no attribute 'LegacyVersion'
+---
+ cozy/ui/widgets/whats_new_window.py | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/cozy/ui/widgets/whats_new_window.py b/cozy/ui/widgets/whats_new_window.py
+index 1a79005b..da3a06f9 100644
+--- a/cozy/ui/widgets/whats_new_window.py
++++ b/cozy/ui/widgets/whats_new_window.py
+@@ -56,11 +56,7 @@ def _fill_window(self):
+ except version.InvalidVersion:
+ self._fill_welcome()
+ else:
+- if type(last_launched_version) is version.LegacyVersion:
+- self._fill_welcome()
+- else:
+- self._fill_whats_new(last_launched_version)
+-
++ self._fill_whats_new(last_launched_version)
+
+ def _fill_welcome(self):
+ from cozy.ui.widgets.welcome import Welcome
diff --git a/testing/cpd/APKBUILD b/testing/cpd/APKBUILD
deleted file mode 100644
index 8454f82bb85..00000000000
--- a/testing/cpd/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=cpd
-pkgver=0.5.1
-pkgrel=1
-pkgdesc="C++ implementation of the Coherent Point Drift point set registration algorithm."
-url="https://github.com/gadomski/cpd"
-arch="all !armv7 !mips !mips64" # Fails to get checksum
-license="GPL-2.0-or-later"
-makedepends="cmake eigen-dev fgt-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/gadomski/$pkgname/archive/v$pkgver.tar.gz"
-
-build() {
- mkdir build && cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DWITH_TESTS=OFF \
- -DBUILD_SHARED_LIBS=ON \
- -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="19552ae103b4a0290f4c3af170ae602fee2d8a7ac73d83d05658086484f74bbe3b841b006c9013103cb4ff953462ce96607e87522b8bca9f7ff1c22857452ce4 cpd-0.5.1.tar.gz"
diff --git a/testing/cpiped/APKBUILD b/testing/cpiped/APKBUILD
index 178f312a825..75100201e8d 100644
--- a/testing/cpiped/APKBUILD
+++ b/testing/cpiped/APKBUILD
@@ -1,4 +1,4 @@
-# Maintainer: Marvin Steadfast <marvin@xsteadfastx.org>
+# Maintainer: Marvin Preuss <marvin@xsteadfastx.org>
pkgname=cpiped
pkgver=0.1.0
pkgrel=0
diff --git a/testing/cpplint/APKBUILD b/testing/cpplint/APKBUILD
new file mode 100644
index 00000000000..adc06ca9aa9
--- /dev/null
+++ b/testing/cpplint/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=cpplint
+pkgver=1.6.1_git20240320
+pkgrel=1
+_gitrev="3791cc41ac0afcea7b80a96cc3ca2fc71d73fcc0"
+pkgdesc="Static code checker for C++"
+url="https://github.com/cpplint/cpplint"
+arch="noarch"
+license="BSD-3-Clause"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+ py3-pytest-runner
+ py3-pytest-timeout
+ py3-testfixtures
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/cpplint/cpplint/archive/$_gitrev/cpplint-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+fca7eec2f08225d280b50d25268a00ad7bb2a01c16351363403e6463e4add163e5d5339aafd9167b2ef578653b9d61c8de19937f49cbb7c31d5207de7ac01358 cpplint-1.6.1_git20240320.tar.gz
+"
diff --git a/testing/cppzmq/APKBUILD b/testing/cppzmq/APKBUILD
deleted file mode 100644
index e696f6d5673..00000000000
--- a/testing/cppzmq/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Andreas Laghamn <andreas.laghamn@gmail.com>
-# Maintainer: Andreas Laghamn <andreas.laghamn@gmail.com>
-pkgname=cppzmq
-pkgver=4.6.0
-pkgrel=2
-pkgdesc="High-level C++ binding for ZeroMQ"
-url="https://github.com/zeromq/cppzmq"
-arch="noarch"
-license="MIT"
-makedepends="cmake zeromq-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/zeromq/cppzmq/archive/v$pkgver.tar.gz"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_VERBOSE_MAKEFILE=ON \
- -DCPPZMQ_BUILD_TESTS=ON \
- $CMAKE_CROSSOPTS .
- make -C build
-}
-
-check() {
- cd build
- ctest
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"/usr/lib
- mv "$pkgdir"/usr/share/cmake "$pkgdir"/usr/lib
-}
-sha512sums="f30b37c970790de2684086638084e65310396072c1c1d00415c9a36b7ef6d79fe500ce174fddab699a602a80341e2fb7f309dec2eb96252531b5ca5cf7ac5027 cppzmq-4.6.0.tar.gz"
diff --git a/testing/cproc/APKBUILD b/testing/cproc/APKBUILD
new file mode 100644
index 00000000000..6153c1da1e7
--- /dev/null
+++ b/testing/cproc/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+pkgname=cproc
+pkgver=0_git20230502
+_commit=0985a7893a4b5de63a67ebab445892d9fffe275b
+pkgrel=0
+pkgdesc="A C11 compiler based on the QBE compiler backend"
+url="https://sr.ht/~mcf/cproc"
+arch="x86_64 aarch64" # See https://github.com/michaelforney/cproc#supported-targets
+license="ISC AND MIT AND Unlicense"
+depends="binutils qbe cmd:cpp"
+subpackages="$pkgname-doc"
+source="$pkgname-$_commit.tar.gz::https://github.com/michaelforney/cproc/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --target=$CTARGET \
+ --prefix=/usr \
+ --with-cpp=cpp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cbc38f304ac1d12c691c42cd67a6229f6ae6549a1270be17857b72ee1817d9c167d5e7bbe58f266cf56ee848453da923b1d910d660ee24abc3d5ed54b955035e cproc-0985a7893a4b5de63a67ebab445892d9fffe275b.tar.gz
+"
diff --git a/testing/cpu-x/APKBUILD b/testing/cpu-x/APKBUILD
new file mode 100644
index 00000000000..02247b8b1a7
--- /dev/null
+++ b/testing/cpu-x/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=cpu-x
+pkgver=5.0.3
+pkgrel=0
+pkgdesc="CPU-X is a system profiling and monitoring application (similar to CPU-Z)"
+url="https://thetumultuousunicornofdarkness.github.io/CPU-X/"
+arch="x86_64 x86" # no libcpuid in others architectures
+license="GPL-3.0-only"
+depends="
+ gtkmm3
+ libcpuid
+ ncurses
+ mesa
+ opencl
+ pciutils
+ procps-ng
+ vulkan-loader
+ "
+makedepends="
+ cmake
+ gtkmm3-dev
+ libcpuid-dev
+ mesa-dev
+ nasm
+ ncurses-dev
+ opencl-dev
+ pciutils-dev
+ procps-ng-dev
+ samurai
+ vulkan-headers
+ vulkan-loader-dev
+ "
+subpackages="$pkgname-lang $pkgname-bash-completion $pkgname-zsh-completion $pkgname-fish-completion"
+options="!check" # check failed
+source="$pkgname-$pkgver.tar.gz::https://github.com/TheTumultuousUnicornOfDarkness/CPU-X/archive/refs/tags/v$pkgver.tar.gz
+ no-bracktrace.patch
+ "
+builddir="$srcdir/CPU-X-$pkgver"
+
+build() {
+ # GLFW disable
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DWITH_OPENCL=ON \
+ -DWITH_LIBGLFW=OFF \
+ -DCMAKE_BUILD_TYPE=None \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d9a29a5303101a6c00d9145265d85acec865833f175246bde550ba2dff24a924c1b2de7579b3d8e20aa163092d269af9bbb24e073585d3e18a2c726e48d9be41 cpu-x-5.0.3.tar.gz
+96f0e100a2ca2898b014ca5f52937a2de041743777fbf318e2d3f82240e9fe40106d295c2ce80478e1540ed35c96a98c70acd1549b89daae44f6d9ff88251734 no-bracktrace.patch
+"
diff --git a/testing/cpu-x/no-bracktrace.patch b/testing/cpu-x/no-bracktrace.patch
new file mode 100644
index 00000000000..d5c0e7aed70
--- /dev/null
+++ b/testing/cpu-x/no-bracktrace.patch
@@ -0,0 +1,41 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -130,7 +130,6 @@
+ enable_testing()
+ find_package(PkgConfig REQUIRED)
+ find_package(Threads REQUIRED)
+-find_package(Backtrace REQUIRED)
+ find_package(Filesystem REQUIRED)
+ if(WITH_GETTEXT)
+ find_package(Gettext)
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -255,7 +255,6 @@
+ target_link_libraries(${APP_EXEC}
+ ${Intl_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+- ${Backtrace_LIBRARIES}
+ std::filesystem
+
+ ${GTK3_LIBRARIES}
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -22,7 +22,6 @@
+ */
+
+ #include <unistd.h>
+-#include <execinfo.h>
+ #include <getopt.h>
+ #include <cstdlib>
+ #include <cstring>
+@@ -370,10 +369,6 @@
+ void *bt[16];
+ std::string::size_type addr_start, addr_end;
+ std::string line, address, line_number;
+-
+- /* Get the backtrace */
+- bt_size = backtrace(bt, 16);
+- bt_syms = backtrace_symbols(bt, bt_size);
+
+ /* Print the backtrace */
+ Logger::set_verbosity(LOG_ERROR); // disable DEBUG mode for popen_to_str()
diff --git a/testing/cpuburn/APKBUILD b/testing/cpuburn/APKBUILD
new file mode 100644
index 00000000000..2f5bfec5f9c
--- /dev/null
+++ b/testing/cpuburn/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Olliver Schinagl <oliver@schinagl.nl>
+# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
+pkgname="cpuburn"
+pkgver="1.4a_git20160316"
+pkgrel=2
+pkgdesc="Suite of CPU burn utitilies"
+url="https://ssvb.github.io/2012/04/10/cpuburn-arm-cortex-a9.html"
+arch="aarch64 armhf armv7 x86 x86_64"
+license="MIT"
+options="!check textrels" # No checks available
+_githash="ad7e646700d14b81413297bda02fb7fe96613c3f"
+source="
+ https://github.com/ssvb/cpuburn-arm/archive/${_githash}.zip
+ cpuburn_1_4a.tar.gz::https://dev.gentoo.org/~conikost/files/cpuburn_1_4a_tar.gz
+ cpuburn-1.4a-variables.patch
+"
+builddir="${srcdir}/cpuburn-1.4a"
+
+build() {
+ cd "${srcdir}/cpuburn-arm-${_githash}"
+ case "${CARCH}" in
+ armhf|armv7)
+ gcc -o "cpuburn-a7" "cpuburn-a7.S"
+ gcc -o "cpuburn-a8" "cpuburn-a8.S"
+ gcc -o "cpuburn-a9" "cpuburn-a9.S"
+ gcc -o "cpuburn-a53" "cpuburn-a53.S"
+ gcc -o "cpuburn-krait" "cpuburn-krait.S"
+ ;;
+ aarch64)
+ gcc -o "cpuburn-a53" "cpuburn-a53.S"
+ ;;
+ esac
+
+ cd "${srcdir}/cpuburn-1.4a"
+ sed -i -e 's|gcc -s|$(CC) $(CFLAGS) -m32 $(LDFLAGS)|' Makefile
+ case "${CARCH}" in
+ x86|x86_64)
+ make
+ ;;
+ esac
+}
+
+package() {
+ case "${CARCH}" in
+ armhf|armv7)
+ install -D -m 0755 "${srcdir}/cpuburn-arm-${_githash}/cpuburn-a7" \
+ "${pkgdir}/usr/bin/cpuburn-a7"
+ install -D -m 0755 "${srcdir}/cpuburn-arm-${_githash}/cpuburn-a8" \
+ "${pkgdir}/usr/bin/cpuburn-a8"
+ install -D -m 0755 "${srcdir}/cpuburn-arm-${_githash}/cpuburn-a9" \
+ "${pkgdir}/usr/bin/cpuburn-a9"
+ install -D -m 0755 "${srcdir}/cpuburn-arm-${_githash}/cpuburn-a53" \
+ "${pkgdir}/usr/bin/cpuburn-a53"
+ install -D -m 0755 "${srcdir}/cpuburn-arm-${_githash}/cpuburn-krait" \
+ "${pkgdir}/usr/bin/cpuburn-krait"
+ ;;
+ aarch64)
+ install -D -m 0755 "${srcdir}/cpuburn-arm-${_githash}/cpuburn-a53" \
+ "${pkgdir}/usr/bin/cpuburn-a53"
+ ;;
+ x86|x86_64)
+ for _bin in "${srcdir}/cpuburn-1.4a/"*; do
+ if [ ! -f "${_bin}" ] || [ ! -x "${_bin}" ]; then
+ continue
+ fi
+ install -D -m 0755 "${_bin}" \
+ "${pkgdir}/usr/bin/${_bin##*/}"
+ done
+ ;;
+ esac
+}
+
+sha512sums="
+101775ac456c3cb49256e96ebac483568b59a5260c07bfae94800a5f0872a395dbae81ab9cc81ace75e827fe0c16c60b3f2dd8ae85b3c8067b34c3da792a8162 ad7e646700d14b81413297bda02fb7fe96613c3f.zip
+db84cabe70af0b6b3579c746f6df08c268b7145c9521fc609ce5b4cfd497dbb0639e52ab55f34110cff297ec23cf1413db28c6bff4e6f81a69722626886df7ce cpuburn_1_4a.tar.gz
+eef2f5dfc3a49712568001a273be117126beac27560b6e4386e89893ef30acda76c956b96a9a86bf1a0a424003f3eb9214a8a4a1c828fcbbf809eed82a5a7af7 cpuburn-1.4a-variables.patch
+"
diff --git a/testing/cpuburn/cpuburn-1.4a-variables.patch b/testing/cpuburn/cpuburn-1.4a-variables.patch
new file mode 100644
index 00000000000..3e8b666c29e
--- /dev/null
+++ b/testing/cpuburn/cpuburn-1.4a-variables.patch
@@ -0,0 +1,40 @@
+--- cpuburn-1.4a.orig/burnK7.S
++++ cpuburn-1.4a/burnK7.S
+@@ -74,6 +74,7 @@ int_exit:
+ push %eax
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ .fill 64
+ half: .long 0x7fffffff,0
+--- cpuburn-1.4a.orig/burnP5.S
++++ cpuburn-1.4a/burnP5.S
+@@ -77,6 +77,7 @@ crunch:
+ #else
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ half: .long 0xffffffff,0x3fdfffff
+ one: .long 0xffffffff,0x3fefffff
+--- cpuburn-1.4a.orig/burnP6.S
++++ cpuburn-1.4a/burnP6.S
+@@ -69,6 +69,7 @@ int_exit: # error abort
+ push %eax # *BSD syscall
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ half: .long 0x7fffffff,0
+ e: .long 0xffffffff,0x3fdfffff
+--- cpuburn-1.4a.orig/burnK6.S
++++ cpuburn-1.4a/burnK6.S
+@@ -68,6 +68,7 @@ int_exit:
+ push %eax
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ half: .long 0x7fffffff,0
+ e: .long 0xffffffff,0x3fdfffff
diff --git a/testing/cpufetch/APKBUILD b/testing/cpufetch/APKBUILD
new file mode 100644
index 00000000000..07cb9825154
--- /dev/null
+++ b/testing/cpufetch/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=cpufetch
+pkgver=1.05
+pkgrel=0
+pkgdesc="simple yet fancy CPU architecture fetching tool"
+url="https://github.com/Dr-Noob/cpufetch"
+arch="x86_64 armhf armv7 aarch64 riscv64" # x86 missing asm/hwcap.h
+license="MIT"
+options="!check" # no test
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Dr-Noob/cpufetch/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir"/usr/share/licenses
+}
+
+sha512sums="
+ec303e292ddc928e5cf2c81e0b38fd0853e1a3ffb9a20413e09677ec91777806c4774a0a6d618adde4f13328c930ce35a80e679609438542486999ab9e1308b4 cpufetch-1.05.tar.gz
+"
diff --git a/testing/crazydiskinfo/APKBUILD b/testing/crazydiskinfo/APKBUILD
new file mode 100644
index 00000000000..2cbd40e3f7b
--- /dev/null
+++ b/testing/crazydiskinfo/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=crazydiskinfo
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="interactive TUI S.M.A.R.T viewer"
+url="https://github.com/otakuto/crazydiskinfo"
+arch="all"
+license="MIT"
+options="!check" # no tests
+makedepends="cmake ncurses-dev libatasmart-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/otakuto/crazydiskinfo/archive/$pkgver.tar.gz
+ disable-linking-tinfow.patch
+ "
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ make -C build
+}
+
+check() {
+ CTEST_OUTPUT_ON_FAILURE=1 make -C build check
+}
+
+package() {
+ make -C build DESTDIR="$pkgdir" install
+}
+
+sha512sums="57e9ea4f8abec18355806da35225132f06a5562b1717e6dca1515043b2a0f2a51b47a2bcda31f1e64d6b2e9c8c6de5445d835f59eed79fd0911e06fd32296803 crazydiskinfo-1.1.0.tar.gz
+d1f1ee89be20302f76e360bf1b8aa9bac253a0e273b926225d8e65144f7c4443123a6304c93aeb102d7a93408ad3fecf1788cca06aee1b94f734dd4a3cd7170f disable-linking-tinfow.patch"
diff --git a/testing/crazydiskinfo/disable-linking-tinfow.patch b/testing/crazydiskinfo/disable-linking-tinfow.patch
new file mode 100644
index 00000000000..0eeae5f8977
--- /dev/null
+++ b/testing/crazydiskinfo/disable-linking-tinfow.patch
@@ -0,0 +1,15 @@
+Author: Milan P. Stanić <mps@arvanta.net>
+Date: Sat Jul 18 21:55:27 2020 +0200
+Upstream: No
+
+Alpine Linux doesn't have libtinfo
+
+--- a/CMakeLists.txt 2020-02-05 23:22:57.000000000 +0100
++++ b/CMakeLists.txt 2020-07-18 21:40:13.157880457 +0200
+@@ -5,6 +5,5 @@
+ set(CMAKE_CXX_FLAGS "-Wall -std=c++11")
+ SET_TARGET_PROPERTIES(CrazyDiskInfo PROPERTIES OUTPUT_NAME crazy)
+ target_link_libraries(CrazyDiskInfo atasmart)
+-target_link_libraries(CrazyDiskInfo tinfow)
+ target_link_libraries(CrazyDiskInfo ncursesw)
+ INSTALL(TARGETS CrazyDiskInfo RUNTIME DESTINATION /usr/sbin)
diff --git a/testing/crda/01-Makefile-dont-run-ldconfig.patch b/testing/crda/01-Makefile-dont-run-ldconfig.patch
deleted file mode 100644
index d1e7477b68c..00000000000
--- a/testing/crda/01-Makefile-dont-run-ldconfig.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/Makefile 2014-12-11 00:51:29.000000000 +0100
-+++ b/Makefile 2016-04-23 03:03:33.785974265 +0200
-@@ -127,7 +127,6 @@
- $(NQ) ' INSTALL libreg'
- $(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
- $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
-- $(Q)ldconfig
-
- %.o: %.c regdb.h $(LIBREG)
- $(NQ) ' CC ' $@
diff --git a/testing/crda/APKBUILD b/testing/crda/APKBUILD
deleted file mode 100644
index 5683baa0d27..00000000000
--- a/testing/crda/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
-pkgname=crda
-pkgver=4.14
-pkgrel=0
-pkgdesc="Linux Central Regulatory Domain Agent"
-url="https://wireless.wiki.kernel.org/en/developers/Regulatory/CRDA"
-arch=""
-license="GPL"
-depends="wireless-regdb"
-makedepends="linux-headers libnl-dev py2-m2crypto libgcrypt-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/crda.git/snapshot/$pkgname-$pkgver.tar.gz
- 01-Makefile-dont-run-ldconfig.patch"
-
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
- sed 's/-Werror//' -i $builddir/Makefile
-}
-
-build() {
- cd "$builddir"
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="0d52cf62589ec2debfd66de95b82b03a1c15048d8425cf5ef43c3e1f51ce1311a6d898fd5f69badcceb3181d35c836db197c6f070654dab351b01e96a1dd1053 crda-4.14.tar.gz
-c642976b193722c0050c13331a010b466cea8391bb5f945832604a556e274ea1a4b289c78f74ff5d502fae800f18219db3d10ff10c0528eefc5e9443a963640f 01-Makefile-dont-run-ldconfig.patch"
diff --git a/testing/create-tauri-app/APKBUILD b/testing/create-tauri-app/APKBUILD
new file mode 100644
index 00000000000..91a2594e182
--- /dev/null
+++ b/testing/create-tauri-app/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=create-tauri-app
+pkgver=3.13.17
+pkgrel=0
+pkgdesc="Build tool for Leptos"
+url="https://tauri.app"
+arch="all !s390x" # nix
+license="MIT OR Apache-2.0"
+makedepends="cargo-auditable"
+depends="cargo"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/tauri-apps/create-tauri-app/archive/refs/tags/create-tauri-app-v$pkgver.tar.gz
+"
+options="net"
+builddir="$srcdir/$pkgname-$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 target/release/cargo-create-tauri-app "$pkgdir"/usr/bin/cargo-create-tauri-app
+
+ for l in _APACHE-2.0 _MIT .spdx
+ do
+ install -Dm 644 LICENSE"$l" "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE"$l"
+ done
+}
+
+sha512sums="
+404446367f0de92837f4f43cb591f363363bd7d7345feecebb106db4579279c352a573915dcbf33748979b57c3567171d65c5c91e616b1d7ae8c8b74bc8eadcb create-tauri-app-3.13.17.tar.gz
+"
diff --git a/testing/createrepo_c/APKBUILD b/testing/createrepo_c/APKBUILD
index 632f55ee0d8..3636b2be460 100644
--- a/testing/createrepo_c/APKBUILD
+++ b/testing/createrepo_c/APKBUILD
@@ -1,14 +1,13 @@
-# Contributor:
# Maintainer: Paul Morgan <jumanjiman@gmail.com>
pkgname=createrepo_c
-pkgver=0.15.7
-pkgrel=0
+pkgver=1.0.2
+pkgrel=1
pkgdesc="C implementation of createrepo"
url="https://github.com/rpm-software-management/createrepo_c/"
arch="all"
license="GPL-2.0-or-later"
makedepends="
- bash-completion
+ bash-completion-dev
bzip2-dev
cmake
curl-dev
@@ -19,10 +18,11 @@ makedepends="
libxml2-dev
python3-dev
rpm-dev
- scanelf
+ samurai
sqlite-dev
xz-dev
zlib-dev
+ zstd-dev
"
checkdepends="
check-dev
@@ -30,65 +30,51 @@ checkdepends="
xz
"
subpackages="
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-bash-completion
$pkgname-dev
$pkgname-doc
$pkgname-libs
- py3-${pkgname}:py3
+ py3-$pkgname-pyc
+ py3-$pkgname:py3
"
source="
$pkgname-$pkgver.tar.gz::https://github.com/rpm-software-management/createrepo_c/archive/$pkgver.tar.gz
+ no-bash.patch
"
build() {
- mkdir "$builddir"/build
- cd "$builddir"/build
-
- # Pass cmake variables so
- # end user does not need to set LD_LIBRARY_PATH.
- # https://cmake.org/Wiki/CMake_RPATH_handling#Always_full_RPATH
- cmake .. \
+ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_SKIP_BUILD_RPATH=true \
- -DCMAKE_BUILD_WITH_INSTALL_RPATH=false \
- -DCMAKE_INSTALL_RPATH=/usr/lib \
- -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=true \
- -DPYTHON_DESIRED=3 \
+ -DCMAKE_SKIP_INSTALL_RPATH=true \
-DWITH_ZCHUNK=OFF \
-DWITH_LIBMODULEMD=OFF \
-DENABLE_DRPM=OFF
- make
+ cmake --build build
+
+ if want_check; then
+ cmake --build build --target tests
+ fi
}
check() {
- cd "$builddir"/build
- make tests
- tests/run_gtester.sh
+ cd build
+ ./tests/run_tests.sh
}
package() {
- cd "$builddir"/build
- make install/strip DESTDIR=$pkgdir
+ DESTDIR="$pkgdir" cmake --install build
+ python3 -m compileall -fq "$pkgdir"/usr/lib/python*
}
py3() {
pkgdesc="Python3 bindings for createrepo_c"
- depends="python3 $pkgname-libs"
-
- # This is architecture-specific and provides a *.so file.
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="${pkgname}=$pkgver-r${pkgrel} bash-completion"
- mkdir -p "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/share/bash-completion "$subpkgdir"/usr/share/
+ amove usr/lib/python*
}
-sha512sums="8a20bda92338db87f8ac27a6c3e191f6ac63a6be0e77bdc3227143acc2eb5b4fe06f6fdbb13b2031f69555c7f8a053d6155e4515620724515b173bd546648f1f createrepo_c-0.15.7.tar.gz"
+sha512sums="
+b4ceba2f0b558843bdc04be30a10ffb785eea0beb6e1f1efe7373b2a47c8aba554f1a881194c02d1b3980332912d92aa84fdda079324b60c2d57c55e43fa9eb6 createrepo_c-1.0.2.tar.gz
+2511216ef3a3ba85458a7bf6b405be44379597f94e3f377454bc0814d90bb0d1b4f0c1d4707c78a37dc07cbd594911b9f5ac03952ae7bd8a1d9828bea65a6e28 no-bash.patch
+"
diff --git a/testing/createrepo_c/no-bash.patch b/testing/createrepo_c/no-bash.patch
new file mode 100644
index 00000000000..bd9ca651b27
--- /dev/null
+++ b/testing/createrepo_c/no-bash.patch
@@ -0,0 +1,10 @@
+diff --git a/tests/run_tests.sh.in b/tests/run_tests.sh.in
+index db53cdc..7e87742 100755
+--- a/tests/run_tests.sh.in
++++ b/tests/run_tests.sh.in
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ BINDIR="${CMAKE_BINARY_DIR}/tests/"
+ RET=0
diff --git a/testing/creduce/204.patch b/testing/creduce/204.patch
deleted file mode 100644
index 1c02a36553e..00000000000
--- a/testing/creduce/204.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-See: https://github.com/csmith-project/creduce/pull/204
-From 37a8db44d97029e95f3ab9a728d23053eb82c1cd Mon Sep 17 00:00:00 2001
-From: Bernhard Rosenkraenzer <bero@lindev.ch>
-Date: Thu, 6 Feb 2020 15:02:35 +0100
-Subject: [PATCH] Port to LLVM 10.0
-
----
- clang_delta/TransformationManager.cpp | 27 +++++++++++++++++++++++++--
- 1 file changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/clang_delta/TransformationManager.cpp b/clang_delta/TransformationManager.cpp
-index ca2f2b48..acf82837 100644
---- a/clang_delta/TransformationManager.cpp
-+++ b/clang_delta/TransformationManager.cpp
-@@ -16,6 +16,7 @@
-
- #include <sstream>
-
-+#include "clang/Basic/Builtins.h"
- #include "clang/Basic/Diagnostic.h"
- #include "clang/Basic/TargetInfo.h"
- #include "clang/Lex/Preprocessor.h"
-@@ -101,6 +102,7 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
- CompilerInvocation &Invocation = ClangInstance->getInvocation();
- InputKind IK = FrontendOptions::getInputKindForExtension(
- StringRef(SrcFileName).rsplit('.').second);
-+#if LLVM_VERSION_MAJOR < 10
- if (IK.getLanguage() == InputKind::C) {
- Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::C, T, PPOpts);
- }
-@@ -111,6 +113,18 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
- Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind::CXX, T, PPOpts);
- }
- else if(IK.getLanguage() == InputKind::OpenCL) {
-+#else
-+ if (IK.getLanguage() == Language::C) {
-+ Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind(Language::C), T, PPOpts);
-+ }
-+ else if (IK.getLanguage() == Language::CXX) {
-+ // ISSUE: it might cause some problems when building AST
-+ // for a function which has a non-declared callee, e.g.,
-+ // It results an empty AST for the caller.
-+ Invocation.setLangDefaults(ClangInstance->getLangOpts(), InputKind(Language::CXX), T, PPOpts);
-+ }
-+ else if(IK.getLanguage() == Language::OpenCL) {
-+#endif
- //Commandline parameters
- std::vector<const char*> Args;
- Args.push_back("-x");
-@@ -122,7 +136,7 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
- ClangInstance->createFileManager();
-
- if(CLCPath != NULL && ClangInstance->hasFileManager() &&
-- ClangInstance->getFileManager().getDirectory(CLCPath, false) != NULL) {
-+ ClangInstance->getFileManager().getDirectory(CLCPath, false)) {
- Args.push_back("-I");
- Args.push_back(CLCPath);
- }
-@@ -132,10 +146,19 @@ bool TransformationManager::initializeCompilerInstance(std::string &ErrorMsg)
- Args.push_back("-fno-builtin");
-
- CompilerInvocation::CreateFromArgs(Invocation,
-+#if LLVM_VERSION_MAJOR >= 10
-+ Args,
-+#else
- &Args[0], &Args[0] + Args.size(),
-+#endif
- ClangInstance->getDiagnostics());
- Invocation.setLangDefaults(ClangInstance->getLangOpts(),
-- InputKind::OpenCL, T, PPOpts);
-+#if LLVM_VERSION_MAJOR >= 10
-+ InputKind(Language::OpenCL),
-+#else
-+ InputKind::OpenCL,
-+#endif
-+ T, PPOpts);
- }
- else {
- ErrorMsg = "Unsupported file type!";
diff --git a/testing/creduce/APKBUILD b/testing/creduce/APKBUILD
deleted file mode 100644
index 7b7556e8aae..00000000000
--- a/testing/creduce/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=creduce
-pkgver=2.10.0
-pkgrel=3
-pkgdesc="A C/C++ program reducer"
-url="https://embed.cs.utah.edu/creduce/"
-arch="all"
-license="custom"
-# util-linux provides lscpu
-depends="clang indent perl perl-exporter-lite perl-file-which
- perl-getopt-tabular perl-regexp-common perl-term-readkey
- util-linux"
-makedepends="clang-dev clang-static flex llvm-dev zlib-dev"
-source="https://embed.cs.utah.edu/creduce/creduce-$pkgver.tar.gz
- 204.patch"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --libexecdir=/usr/lib/$pkgname
-
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="f2f2cc498cbf78331ea62e533579c84042ddc1ad8eb146adeae6b3a833e0ea4bb26a4ab5f1f61a30500a5a0c9c89cc1d4e4c8547aa9e4a14d3b5d744aeb4f6a7 creduce-2.10.0.tar.gz
-c8c91ee37f6d633c34e6828a6235c409ec1e3f35292dc0722aa1c054ec8040cbd2bdb5f0792785a5c61cf3922c08f95ed819f9b1c2d82e793591c61dcbbb7249 204.patch"
diff --git a/testing/cri-o/APKBUILD b/testing/cri-o/APKBUILD
new file mode 100644
index 00000000000..3a21471e5a6
--- /dev/null
+++ b/testing/cri-o/APKBUILD
@@ -0,0 +1,110 @@
+# Contributor: ungleich <foss@ungleich.ch>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: ungleich <foss@ungleich.ch>
+pkgname=cri-o
+pkgver=1.29.1
+pkgrel=2
+pkgdesc="OCI-based implementation of Kubernetes Container Runtime Interface"
+url="https://github.com/cri-o/cri-o/"
+arch="all"
+license="Apache-2.0"
+# Most tests will fail if not ran as root
+# since it tries to create network interfaces
+options="net chmod-clean !check"
+depends="
+ cni-plugins
+ conmon
+ conntrack-tools
+ containers-common
+ iproute2
+ iptables
+ oci-runtime
+ "
+makedepends="
+ bash
+ btrfs-progs-dev
+ eudev-dev
+ glib-dev
+ go
+ go-md2man
+ gpgme-dev
+ libseccomp-dev
+ libselinux-dev
+ lvm2-dev
+ ostree-dev
+ sqlite-dev
+ tzdata
+ "
+checkdepends="bats cri-tools jq parallel sudo conmon"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ $pkgname-openrc
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/cri-o/cri-o/archive/v$pkgver/cri-o-$pkgver.tar.gz
+ crio.conf
+ crio.initd
+ crio.logrotated
+ cni-plugins-path.patch
+ makefile-fix-install.patch
+ fix-test.patch
+ remove-systemd-files.patch
+ "
+
+# secfixes:
+# 1.23.2-r0:
+# - CVE-2022-0811
+# 1.24.1-r0:
+# - CVE-2022-1708
+# 1.26.2-r0:
+# - CVE-2022-4318
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOBIN="$GOPATH/bin"
+
+build() {
+ # https://github.com/cri-o/cri-o/blob/master/install.md#build-tags
+ make BUILDTAGS="libsqlite3 seccomp selinux apparmor containers_image_openpgp containers_image_ostree_stub"
+}
+
+check() {
+ make localintegration
+}
+
+package() {
+ make \
+ DESTDIR="$pkgdir" \
+ PREFIX=/usr \
+ CRICTL_CONFIG_DIR="/etc/crio" \
+ OCIUMOUNTINSTALLDIR="/etc/crio" \
+ FISHINSTALLDIR=/usr/share/fish/vendor_completions.d \
+ install.bin-nobuild install.man-nobuild install.completions install.config-nobuild
+
+ # We want it in etc so apk does not overwrite it
+ mkdir -p "$pkgdir"/usr/share/oci-umount/oci-umount.d/
+ ln -sf ../../../../etc/crio/crio-umount.conf "$pkgdir"/usr/share/oci-umount/oci-umount.d/crio-umount.conf
+
+ # The CNI plugins are recommended to be installed as examples
+ install -Dm644 contrib/cni/*.conflist -t "$pkgdir"/usr/share/doc/cri-o/examples/cni/
+
+ install -Dm755 "$srcdir"/crio.initd "$pkgdir"/etc/init.d/crio
+ install -Dm644 "$srcdir"/crio.conf "$pkgdir"/etc/crio/crio.conf
+ install -Dm644 "$srcdir"/crio.logrotated "$pkgdir"/etc/logrotate.d/crio
+}
+
+sha512sums="
+58b01efb166ac74bdc4e17046010f5546b494fb8157e5269323520de2c5e971272c23090e22712d452081eba651ef6e1f2c228def135cdcde943e9aee0225b08 cri-o-1.29.1.tar.gz
+1f60719677295c9c5c615eb25d9159bde0af68a132eee67747f57fe76642d457c98c896c6189f85637d7b4ac24ba55fd9eaeb1699f43c3c5077b645f72a479fb crio.conf
+26048a219bc426ef4a4f50e96d6e0ded1c55dc8415df9a2773764d2ebcb3d9e91077b2916da1ff32674ca4a53062e41e185503d671dacc3167a018b0066347e1 crio.initd
+1115228546a696eeebeb6d4b3e5c3152af0c99a2559097fc5829d8b416d979c457b4b1789e0120054babf57f585d3f63cbe49949d40417ae7aab613184bf4516 crio.logrotated
+0a567dfa431ab1e53f2a351689be8d588a60cc5fcdbda403ec4f8b6ab9b1c18ad425f6c47f9a5ab1491e3a61a269dc4efa6a59e91e7521fa2b6bb165074aa8e0 cni-plugins-path.patch
+09025bff1fed5004a15696cbc7c63260ae7c206ffe2c8506e6063e8889b7aa98bd5c7df2f0c109860d8432ddf5f3b6326dbfd46589d05cf87f26c38e4bdadb9c makefile-fix-install.patch
+b0fdaf2280968a69e05ef72288bbf6fc03787616c6b6fca1e4398f9849167f4773e5e6e72bf1738d1fff2a84e97aa00f23aabcd50898ba8ed130969f50363006 fix-test.patch
+ae7e4a43f18076f19f3ae37d7302bfdf7a3befadf33e46bc9b1b14d50b605e8ba0d06d479568c24e8bf68f17c80ae48798068b2a46c3bcab565a5d225779f30e remove-systemd-files.patch
+"
diff --git a/testing/cri-o/cni-plugins-path.patch b/testing/cri-o/cni-plugins-path.patch
new file mode 100644
index 00000000000..5a76edbc926
--- /dev/null
+++ b/testing/cri-o/cni-plugins-path.patch
@@ -0,0 +1,23 @@
+Alpine's cni-plugins are installs at /usr/libexec/cni/
+
+--- a/docs/crio.conf.5.md
++++ b/docs/crio.conf.5.md
+@@ -301,7 +301,7 @@
+ **network_dir**="/etc/cni/net.d/"
+ Path to the directory where CNI configuration files are located.
+
+-**plugin_dirs**=["/opt/cni/bin/",]
++**plugin_dirs**=["/usr/libexec/cni/",]
+ List of paths to directories where CNI plugin binaries are located.
+
+ ## CRIO.METRICS TABLE
+--- a/pkg/config/config_unix.go
++++ b/pkg/config/config_unix.go
+@@ -5,7 +5,7 @@
+ // Defaults for linux/unix if none are specified
+ const (
+ cniConfigDir = "/etc/cni/net.d/"
+- cniBinDir = "/opt/cni/bin/"
++ cniBinDir = "/usr/libexec/cni/"
+ containerExitsDir = "/var/run/crio/exits"
+ ContainerAttachSocketDir = "/var/run/crio"
diff --git a/testing/cri-o/crio.conf b/testing/cri-o/crio.conf
new file mode 100644
index 00000000000..525c6a4ed01
--- /dev/null
+++ b/testing/cri-o/crio.conf
@@ -0,0 +1,11 @@
+[crio.runtime]
+
+# Overide defaults to not use systemd cgroups.
+conmon_cgroup = "pod"
+cgroup_manager = "cgroupfs"
+
+default_runtime = "crun"
+
+[crio.runtime.runtimes.crun]
+runtime_type = "oci"
+runtime_root = "/run/crun"
diff --git a/testing/cri-o/crio.initd b/testing/cri-o/crio.initd
new file mode 100755
index 00000000000..c5eec65dfdd
--- /dev/null
+++ b/testing/cri-o/crio.initd
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+# Copyright 2015-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="OCI Kubernetes Container Runtime daemon"
+pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
+extra_started_commands="reload"
+command="/usr/bin/${RC_SVCNAME}"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args=" \
+ --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
+ --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ checkpath --directory --owner root:root --mode 0775 \
+ /var/log/${RC_SVCNAME}
+ checkpath --file --owner root:root --mode 0644 \
+ /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log
+ checkpath --directory --owner root:root --mode 0750 \
+ /var/lib/crio
+}
+
+start() {
+ checkconfig
+ default_start
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/testing/cri-o/crio.logrotated b/testing/cri-o/crio.logrotated
new file mode 100644
index 00000000000..fb0b8b14a8a
--- /dev/null
+++ b/testing/cri-o/crio.logrotated
@@ -0,0 +1,7 @@
+/var/log/crio/crio.log {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/testing/cri-o/fix-test.patch b/testing/cri-o/fix-test.patch
new file mode 100644
index 00000000000..bf4f8ef8f44
--- /dev/null
+++ b/testing/cri-o/fix-test.patch
@@ -0,0 +1,72 @@
+diff --git a/test/cgroups.bats b/test/cgroups.bats
+index 8beb6f06..80193413 100644
+--- a/test/cgroups.bats
++++ b/test/cgroups.bats
+@@ -45,6 +45,10 @@ EOF
+ }
+
+ @test "conmon pod cgroup" {
++ if [[ "$CONTAINER_CGROUP_MANAGER" != "systemd" ]]; then
++ skip "need systemd cgroup manager"
++ fi
++
+ CONTAINER_CGROUP_MANAGER="systemd" CONTAINER_DROP_INFRA_CTR=false CONTAINER_CONMON_CGROUP="pod" start_crio
+
+ jq ' .linux.cgroup_parent = "Burstablecriotest123.slice"' \
+@@ -61,6 +65,10 @@ EOF
+ skip "not yet supported by conmonrs"
+ fi
+
++ if [[ "$CONTAINER_CGROUP_MANAGER" != "systemd" ]]; then
++ skip "need systemd cgroup manager"
++ fi
++
+ CONTAINER_CGROUP_MANAGER="systemd" CONTAINER_DROP_INFRA_CTR=false CONTAINER_CONMON_CGROUP="customcrioconmon.slice" start_crio
+
+ jq ' .linux.cgroup_parent = "Burstablecriotest123.slice"' \
+@@ -77,6 +85,10 @@ EOF
+ skip "not supported for conmon"
+ fi
+
++ if [[ "$CONTAINER_CGROUP_MANAGER" != "systemd" ]]; then
++ skip "need systemd cgroup manager"
++ fi
++
+ configure_monitor_cgroup_for_conmonrs "customcrioconmon.slice"
+
+ CONTAINER_CGROUP_MANAGER="systemd" CONTAINER_DROP_INFRA_CTR=true start_crio
+diff --git a/test/cni_plugin_helper.bash b/test/cni_plugin_helper.bash
+index 04492172..abae521e 100755
+--- a/test/cni_plugin_helper.bash
++++ b/test/cni_plugin_helper.bash
+@@ -48,7 +48,7 @@ EOT
+ . "$TEST_DIR"/cni_plugin_helper_input.env
+ rm -f "$TEST_DIR"/cni_plugin_helper_input.env
+
+-result=$(/opt/cni/bin/bridge "$@") || exit $?
++result=$(/usr/libexec/cni/bridge "$@") || exit $?
+
+ if [[ "${DEBUG_ARGS}" == "malformed-result" ]]; then
+ cat <<-EOF
+diff --git a/test/common.sh b/test/common.sh
+index f7f8e1f2..45b7dd58 100644
+--- a/test/common.sh
++++ b/test/common.sh
+@@ -41,7 +41,7 @@ # CNI path
+ if command -v host-local >/dev/null; then
+ CONTAINER_CNI_PLUGIN_DIR=${CONTAINER_CNI_PLUGIN_DIR:-$(dirname "$(readlink "$(command -v host-local)")")}
+ else
+- CONTAINER_CNI_PLUGIN_DIR=${CONTAINER_CNI_PLUGIN_DIR:-/opt/cni/bin}
++ CONTAINER_CNI_PLUGIN_DIR=${CONTAINER_CNI_PLUGIN_DIR:-/usr/libexec/cni}
+ fi
+ # Runtime
+ CONTAINER_DEFAULT_RUNTIME=${CONTAINER_DEFAULT_RUNTIME:-runc}
+@@ -74,7 +74,7 @@ CHECKCRIU_BINARY=${CHECKCRIU_BINARY:-${CRIO_ROOT}/test/checkcriu/checkcriu}
+ # The default log directory where all logs will go unless directly specified by the kubelet
+ DEFAULT_LOG_PATH=${DEFAULT_LOG_PATH:-/var/log/crio/pods}
+ # Cgroup manager to be used
+-CONTAINER_CGROUP_MANAGER=${CONTAINER_CGROUP_MANAGER:-systemd}
++CONTAINER_CGROUP_MANAGER=${CONTAINER_CGROUP_MANAGER:-cgroupfs}
+ # Image volumes handling
+ CONTAINER_IMAGE_VOLUMES=${CONTAINER_IMAGE_VOLUMES:-mkdir}
+ # Container pids limit
diff --git a/testing/cri-o/makefile-fix-install.patch b/testing/cri-o/makefile-fix-install.patch
new file mode 100644
index 00000000000..82bb1889229
--- /dev/null
+++ b/testing/cri-o/makefile-fix-install.patch
@@ -0,0 +1,122 @@
+--- a/Makefile
++++ b/Makefile
+@@ -9,11 +9,11 @@
+
+ PROJECT := github.com/cri-o/cri-o
+ CRIO_INSTANCE := crio_dev
+-PREFIX ?= ${DESTDIR}/usr/local
++PREFIX ?= /usr/local
+ BINDIR ?= ${PREFIX}/bin
+ LIBEXECDIR ?= ${PREFIX}/libexec
+ MANDIR ?= ${PREFIX}/share/man
+-ETCDIR ?= ${DESTDIR}/etc
++ETCDIR ?= /etc
+ ETCDIR_CRIO ?= ${ETCDIR}/crio
+ DATAROOTDIR ?= ${PREFIX}/share/containers
+ BUILDTAGS ?= containers_image_ostree_stub \
+@@ -26,7 +26,7 @@
+ $(shell hack/seccomp_tag.sh) \
+ $(shell hack/selinux_tag.sh) \
+ $(shell hack/libsubid_tag.sh)
+-CRICTL_CONFIG_DIR=${DESTDIR}/etc
++CRICTL_CONFIG_DIR = /etc
+ CONTAINER_RUNTIME ?= podman
+ BUILD_PATH := $(shell pwd)/build
+ BUILD_BIN_PATH := ${BUILD_PATH}/bin
+@@ -420,60 +420,62 @@
+ install: install.bin install.man install.completions install.systemd install.config
+
+ install.bin-nobuild:
+- install ${SELINUXOPT} -D -m 755 bin/crio $(BINDIR)/crio
+- install ${SELINUXOPT} -D -m 755 bin/pinns $(BINDIR)/pinns
++ install ${SELINUXOPT} -D -m 755 bin/crio ${DESTDIR}$(BINDIR)/crio
++ install ${SELINUXOPT} -D -m 755 bin/pinns ${DESTDIR}$(BINDIR)/pinns
+
+ install.bin: binaries install.bin-nobuild
+
+ install.man-nobuild:
+- install ${SELINUXOPT} -d -m 755 $(MANDIR)/man5
+- install ${SELINUXOPT} -d -m 755 $(MANDIR)/man8
+- install ${SELINUXOPT} -m 644 $(filter %.5,$(MANPAGES)) -t $(MANDIR)/man5
+- install ${SELINUXOPT} -m 644 $(filter %.8,$(MANPAGES)) -t $(MANDIR)/man8
++ install ${SELINUXOPT} -d -m 755 ${DESTDIR}$(MANDIR)/man5
++ install ${SELINUXOPT} -d -m 755 ${DESTDIR}$(MANDIR)/man8
++ install ${SELINUXOPT} -m 644 $(filter %.5,$(MANPAGES)) -t ${DESTDIR}$(MANDIR)/man5
++ install ${SELINUXOPT} -m 644 $(filter %.8,$(MANPAGES)) -t ${DESTDIR}$(MANDIR)/man8
+
+ install.man: $(MANPAGES) install.man-nobuild
+
+ install.config-nobuild:
+- install ${SELINUXOPT} -d $(DATAROOTDIR)/oci/hooks.d
+- install ${SELINUXOPT} -d $(ETCDIR_CRIO)/crio.conf.d
+- install ${SELINUXOPT} -D -m 644 crio.conf $(ETCDIR_CRIO)/crio.conf
+- install ${SELINUXOPT} -D -m 644 crio-umount.conf $(OCIUMOUNTINSTALLDIR)/crio-umount.conf
+- install ${SELINUXOPT} -D -m 644 crictl.yaml $(CRICTL_CONFIG_DIR)
++ install ${SELINUXOPT} -d ${DESTDIR}$(ETCDIR_CRIO)/crio.conf.d
++ install ${SELINUXOPT} -d ${DESTDIR}$(ETCDIR)/containers/oci/hooks.d
++ install ${SELINUXOPT} -d ${DESTDIR}$(DATAROOTDIR)/oci/hooks.d
++ install ${SELINUXOPT} -D -m 644 crio.conf ${DESTDIR}$(ETCDIR_CRIO)/crio.conf
++ install ${SELINUXOPT} -D -m 644 crio-umount.conf ${DESTDIR}$(OCIUMOUNTINSTALLDIR)/crio-umount.conf
++ install ${SELINUXOPT} -D -m 644 crictl.yaml ${DESTDIR}$(CRICTL_CONFIG_DIR)
+
+ install.config: crio.conf install.config-nobuild
+
+ install.completions:
+- install ${SELINUXOPT} -d -m 755 ${BASHINSTALLDIR}
+- install ${SELINUXOPT} -d -m 755 ${FISHINSTALLDIR}
+- install ${SELINUXOPT} -d -m 755 ${ZSHINSTALLDIR}
+- install ${SELINUXOPT} -D -m 644 -t ${BASHINSTALLDIR} completions/bash/crio
+- install ${SELINUXOPT} -D -m 644 -t ${FISHINSTALLDIR} completions/fish/crio.fish
+- install ${SELINUXOPT} -D -m 644 -t ${ZSHINSTALLDIR} completions/zsh/_crio
++ install ${SELINUXOPT} -d -m 755 ${DESTDIR}${BASHINSTALLDIR}
++ install ${SELINUXOPT} -d -m 755 ${DESTDIR}${FISHINSTALLDIR}
++ install ${SELINUXOPT} -d -m 755 ${DESTDIR}${ZSHINSTALLDIR}
++ install ${SELINUXOPT} -D -m 644 -t ${DESTDIR}${BASHINSTALLDIR} completions/bash/crio
++ install ${SELINUXOPT} -D -m 644 -t ${DESTDIR}${FISHINSTALLDIR} completions/fish/crio.fish
++ install ${SELINUXOPT} -D -m 644 -t ${DESTDIR}${ZSHINSTALLDIR} completions/zsh/_crio
+
+ install.systemd:
+- install ${SELINUXOPT} -D -m 644 contrib/systemd/crio.service $(PREFIX)/lib/systemd/system/crio.service
+- install ${SELINUXOPT} -D -m 644 contrib/systemd/crio-wipe.service $(PREFIX)/lib/systemd/system/crio-wipe.service
++ install ${SELINUXOPT} -D -m 644 contrib/systemd/crio.service ${DESTDIR}$(PREFIX)/lib/systemd/system/crio.service
++ install ${SELINUXOPT} -D -m 644 contrib/systemd/crio-wipe.service ${DESTDIR}$(PREFIX)/lib/systemd/system/crio-wipe.service
+
+ uninstall:
+- rm -f $(BINDIR)/crio
+- rm -f $(BINDIR)/pinns
++ rm -f $(DESTDIR)$(BINDIR)/crio
++ rm -f $(DESTDIR)$(BINDIR)/pinns
+ for i in $(filter %.5,$(MANPAGES)); do \
+- rm -f $(MANDIR)/man5/$$(basename $${i}); \
++ rm -f $(DESTDIR)$(MANDIR)/man5/$$(basename $${i}); \
+ done
+ for i in $(filter %.8,$(MANPAGES)); do \
+- rm -f $(MANDIR)/man8/$$(basename $${i}); \
++ rm -f $(DESTDIR)$(MANDIR)/man8/$$(basename $${i}); \
+ done
+- rm -f ${BASHINSTALLDIR}/crio
+- rm -f ${FISHINSTALLDIR}/crio.fish
+- rm -f ${ZSHINSTALLDIR}/_crio
+- rm -f $(PREFIX)/lib/systemd/system/crio-wipe.service
+- rm -f $(PREFIX)/lib/systemd/system/crio.service
+- rm -f $(PREFIX)/lib/systemd/system/cri-o.service
+- rm -rf $(DATAROOTDIR)/oci/hooks.d
+- rm -f $(ETCDIR_CRIO)/crio.conf
+- rm -rf $(ETCDIR_CRIO)/crio.conf.d
+- rm -f $(OCIUMOUNTINSTALLDIR)/crio-umount.conf
+- rm -f $(CRICTL_CONFIG_DIR)/crictl.yaml
++ rm -f $(DESTDIR)${BASHINSTALLDIR}/crio
++ rm -f $(DESTDIR)${FISHINSTALLDIR}/crio.fish
++ rm -f $(DESTDIR)${ZSHINSTALLDIR}/_crio
++ rm -f $(DESTDIR)$(PREFIX)/lib/systemd/system/crio-wipe.service
++ rm -f $(DESTDIR)$(PREFIX)/lib/systemd/system/crio.service
++ rm -f $(DESTDIR)$(PREFIX)/lib/systemd/system/cri-o.service
++ rm -f $(DESTDIR)$(ETCDIR_CRIO)/crio.conf
++ rm -rf $(DESTDIR)$(ETCDIR_CRIO)/crio.conf.d
++ rm -rf $(DESTDIR)$(ETCDIR)/containers/oci/hooks.d
++ rm -rf $(DESTDIR)$(DATAROOTDIR)/oci/hooks.d
++ rm -f $(DESTDIR)$(OCIUMOUNTINSTALLDIR)/crio-umount.conf
++ rm -f $(DESTDIR)$(CRICTL_CONFIG_DIR)/crictl.yaml
+
+ docs-validation:
+ $(GO_RUN) -tags "$(BUILDTAGS)" ./test/docs-validation
diff --git a/testing/cri-o/remove-systemd-files.patch b/testing/cri-o/remove-systemd-files.patch
new file mode 100644
index 00000000000..bf1a0ab87d5
--- /dev/null
+++ b/testing/cri-o/remove-systemd-files.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 19f8052..135385c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -403,7 +403,7 @@ get-script:
+ sed -i '/# INCLUDE/q' scripts/get
+ cat contrib/bundle/install-paths contrib/bundle/install >> scripts/get
+
+-install: install.bin install.man install.completions install.systemd install.config
++install: install.bin install.man install.completions install.config
+
+ install.bin-nobuild:
+ install ${SELINUXOPT} -D -m 755 bin/crio $(BINDIR)/crio
diff --git a/testing/crispy-doom/APKBUILD b/testing/crispy-doom/APKBUILD
new file mode 100644
index 00000000000..fb0aebadcb5
--- /dev/null
+++ b/testing/crispy-doom/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Jordan Christiansen <xordspar0@gmail.com>
+# Maintainer: Jordan Christiansen <xordspar0@gmail.com>
+pkgname=crispy-doom
+pkgver=6.0
+pkgrel=0
+pkgdesc="Limit-removing enhanced-resolution Doom source port based on Chocolate Doom"
+url="https://github.com/fabiangreffrath/crispy-doom"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="autoconf automake sdl2-dev sdl2_mixer-dev sdl2_net-dev libsamplerate-dev libpng-dev"
+subpackages="$pkgname-doc"
+options="!check" # upstream has no tests
+source="https://github.com/fabiangreffrath/crispy-doom/archive/refs/tags/crispy-doom-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+44ab9ffea1febe7eaab0c28d5dd178df821c200354aa9aeecd0b84dbe98419a037416f8d8e6176611dbd1a2dba8ec050d9e7267c61dcf8640c08c422765b270f crispy-doom-6.0.tar.gz
+"
diff --git a/testing/criu/APKBUILD b/testing/criu/APKBUILD
index 206345f8729..81961c6c268 100644
--- a/testing/criu/APKBUILD
+++ b/testing/criu/APKBUILD
@@ -1,23 +1,53 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=criu
-pkgver=3.14
-pkgrel=0
+pkgver=3.19
+pkgrel=1
pkgdesc="Process tree checkpoint/restore utility"
url="https://criu.org"
arch="x86_64"
license="GPL-2.0-or-later LGPL-2.1-only"
-makedepends="xmlto asciidoc python3 protobuf-c-dev libnet-dev libnl3-dev
- protobuf-dev libcap-dev"
+makedepends="
+ asciidoc
+ libaio-dev
+ libcap-dev
+ libnet-dev
+ libnl3-dev
+ nftables-dev
+ protobuf-c-dev
+ protobuf-dev
+ py3-gpep517
+ py3-protobuf
+ py3-setuptools
+ py3-wheel
+ python3
+ xmlto
+ "
checkdepends="py3-yaml"
options="!check" # https://github.com/checkpoint-restore/criu/issues/434
-subpackages="$pkgname-dev $pkgname-doc py3-$pkgname:_py:noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/checkpoint-restore/criu/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-doc py3-$pkgname-pyc py3-$pkgname:_py:noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/checkpoint-restore/criu/archive/v$pkgver.tar.gz
+ lfs64.patch
+ lfs64-test.patch
+ "
build() {
- # https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed
- export LDFLAGS=$(echo $LDFLAGS |sed 's|-Wl,--as-needed||') PYTHON=python3
- make
+ make \
+ CONFIG_AMDGPU=n \
+ PREFIX=/usr \
+ DESTDIR="$pkgdir" \
+ LIBDIR=/usr/lib \
+ LD="${CC:-gcc}"
+ cd crit
+ CRIU_VERSION_MAJOR="${pkgver%%.*}" \
+ CRIU_VERSION_MINOR="${pkgver##*.}" \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ cd ../lib
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -25,9 +55,18 @@ check() {
}
package() {
- make PREFIX=/usr DESTDIR="$pkgdir" LIBDIR=/usr/lib install
+ make \
+ CONFIG_AMDGPU=n \
+ PREFIX=/usr \
+ DESTDIR="$pkgdir" \
+ LIBDIR=/usr/lib \
+ LD="${CC:-gcc}" install
rm "$pkgdir"/usr/libexec/criu/scripts/systemd-autofs-restart.sh
rm -f "$pkgdir"/usr/lib/*.a
+ python3 -m installer -d "$pkgdir" \
+ crit/.dist/*.whl
+ python3 -m installer -d "$pkgdir" \
+ lib/.dist/*.whl
}
_py() {
@@ -36,8 +75,11 @@ _py() {
pkgdesc="Python3 bindings for Criu"
depends="python3 py3-protobuf"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+ amove usr/lib/python*
}
-sha512sums="4ef716cebcfa5db77122bfc53875b229cd4734567a940b22f1b5eac988aa240b953d1a87412ca55044e82ed6fe5b3f70b0830344a62bdf673090031634db806f criu-3.14.tar.gz"
+sha512sums="
+d243818cdac51580c952a80e9164786a67ce5e294c0faa6dc700f5e8da8e36495f0b64f5c27b345ede7d6697ed7a69fa4e9a85cef451f32e3ffeb78564884571 criu-3.19.tar.gz
+d8906903972ec92667c60b6a9b8b1ca360a657556afcd62f851af0e98e904c1b58899377dfba475599f46e4b825ebf6edfe844b839149e47983084a0f55b0352 lfs64.patch
+f89267453dc089125d29f696635d798602658b5deeda83d1de0ae5959eea60804f3e26dd024520d12fed104692a65f11c3d1e0db819e7e87dda450120981afd8 lfs64-test.patch
+"
diff --git a/testing/criu/lfs64-test.patch b/testing/criu/lfs64-test.patch
new file mode 100644
index 00000000000..d4295c06314
--- /dev/null
+++ b/testing/criu/lfs64-test.patch
@@ -0,0 +1,20 @@
+--- a/test/zdtm/static/unlink_multiple_largefiles.c
++++ b/test/zdtm/static/unlink_multiple_largefiles.c
+@@ -124,7 +124,7 @@
+ check_extent_map(fiemap);
+ free(fiemap);
+
+- lseek64(fd, FSIZE, SEEK_SET);
++ lseek(fd, FSIZE, SEEK_SET);
+
+ create_check_pattern(ebuf, BUFSIZE, seed);
+
+@@ -174,7 +174,7 @@
+ }
+ test_msg("Created file: %s, fd %d\n", fnm, fd);
+
+- if (lseek64(fd, FSIZE, SEEK_SET) < 0) {
++ if (lseek(fd, FSIZE, SEEK_SET) < 0) {
+ pr_perror("Cannot seek to offset %llx", FSIZE);
+ goto failed;
+ }
diff --git a/testing/criu/lfs64.patch b/testing/criu/lfs64.patch
new file mode 100644
index 00000000000..8fdbbcddd8a
--- /dev/null
+++ b/testing/criu/lfs64.patch
@@ -0,0 +1,58 @@
+--- a/criu/include/restorer.h
++++ b/criu/include/restorer.h
+@@ -177,7 +177,7 @@
+ struct rst_aio_ring *rings;
+ unsigned int rings_n;
+
+- struct rlimit64 *rlims;
++ struct rlimit *rlims;
+ unsigned int rlims_n;
+
+ pid_t *helpers /* the TASK_HELPERS to wait on at the end of restore */;
+--- a/criu/include/fdinfo.h
++++ b/criu/include/fdinfo.h
+@@ -10,7 +10,7 @@
+ #include "images/timerfd.pb-c.h"
+
+ struct fdinfo_common {
+- off64_t pos;
++ off_t pos;
+ int flags;
+ int mnt_id;
+ int owner;
+--- a/criu/cr-restore.c
++++ b/criu/cr-restore.c
+@@ -3172,9 +3172,9 @@
+ {
+ int i;
+ TaskRlimitsEntry *rls = core->tc->rlimits;
+- struct rlimit64 *r;
++ struct rlimit *r;
+
+- ta->rlims = (struct rlimit64 *)rst_mem_align_cpos(RM_PRIVATE);
++ ta->rlims = (struct rlimit *)rst_mem_align_cpos(RM_PRIVATE);
+
+ if (!rls)
+ return prepare_rlimits_from_fd(pid, ta);
+--- a/criu/cr-dump.c
++++ b/criu/cr-dump.c
+@@ -358,7 +358,7 @@
+ int res;
+
+ for (res = 0; res < rls->n_rlimits; res++) {
+- struct rlimit64 lim;
++ struct rlimit lim;
+
+ if (syscall(__NR_prlimit64, pid, res, NULL, &lim)) {
+ pr_perror("Can't get rlimit %d", res);
+--- a/criu/servicefd.c
++++ b/criu/servicefd.c
+@@ -66,7 +66,7 @@
+
+ int init_service_fd(void)
+ {
+- struct rlimit64 rlimit;
++ struct rlimit rlimit;
+
+ /*
+ * Service fd engine implies that file descriptors used won't be
diff --git a/testing/croc/APKBUILD b/testing/croc/APKBUILD
deleted file mode 100644
index 57489c551e7..00000000000
--- a/testing/croc/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: André Klitzing <aklitzing@@gmail.com>
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=croc
-pkgver=8.0.11
-pkgrel=0
-pkgdesc="Easily and securely send things from one computer to another"
-url="https://github.com/schollz/croc"
-arch="all !s390x !mips !mips64" # s390x fails: https://github.com/schollz/croc/issues/218
-license="MIT"
-makedepends="go"
-source="https://github.com/schollz/croc/releases/download/v$pkgver/croc_${pkgver}_src.tar.gz"
-
-build() {
- export CGO_LDFLAGS="$LDFLAGS"
- export GOFLAGS="$GOFLAGS -trimpath -mod=vendor"
- go build
-}
-
-check() {
- go test ./...
-}
-
-package() {
- install -Dm755 -t "$pkgdir/usr/bin/" "$pkgname"
-}
-
-sha512sums="13781abb411ed24b6297da664b414601b837d08551d63169d9fe490a34e58dfc09d47b84a31ade1b76b0f2078b1980df43a253d8e75920aa0c125dbb6b3f31ca croc_8.0.11_src.tar.gz"
diff --git a/testing/crossplane/APKBUILD b/testing/crossplane/APKBUILD
new file mode 100644
index 00000000000..31e34c4ee9b
--- /dev/null
+++ b/testing/crossplane/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Hugo Rodrigues <hugorodrigues@hugorodrigues.xyz>>
+# Maintainer: Hugo Rodrigues <hugorodrigues@hugorodrigues.xyz>>
+pkgname=crossplane
+pkgver=0.5.8
+pkgrel=2
+pkgdesc="Quick and reliable way to convert NGINX configurations into JSON and back."
+url="https://github.com/nginxinc/crossplane/"
+arch="noarch"
+license="Apache-2.0"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://pypi.io/packages/source/c/crossplane/crossplane-$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+40354ff7aa3a75093527550971a12e128b9f6e18589d1a0f568c6b276589a3440f4ee3a7f9efc80b301971af87321d2b2a363ced6e10353b9b8ae5add7b7fb60 crossplane-0.5.8.tar.gz
+"
diff --git a/testing/crosstool-ng/0001-sunrpc.diff b/testing/crosstool-ng/0001-sunrpc.diff
new file mode 100644
index 00000000000..24f7b457606
--- /dev/null
+++ b/testing/crosstool-ng/0001-sunrpc.diff
@@ -0,0 +1,33 @@
+--- a/sunrpc/rpc/types.h
++++ a/sunrpc/rpc/types.h
+@@ -69,24 +69,14 @@ typedef unsigned long rpcport_t;
+ #include <sys/types.h>
+ #endif
+
+-#if defined __APPLE_CC__ || defined __FreeBSD__
+-# define __u_char_defined
+-# define __daddr_t_defined
+-#endif
+-
+-#ifndef __u_char_defined
+-typedef __u_char u_char;
+-typedef __u_short u_short;
+-typedef __u_int u_int;
+-typedef __u_long u_long;
+-typedef __quad_t quad_t;
+-typedef __u_quad_t u_quad_t;
+-typedef __fsid_t fsid_t;
++/* IMPORTANT NOTE: This has been modified to build against the musl C
++ * library and it probably now ONLY builds with the musl C library.
++ *
++ * See: https://sourceware.org/bugzilla/show_bug.cgi?id=21604
++ */
+ # define __u_char_defined
+-#endif
+ #ifndef __daddr_t_defined
+-typedef __daddr_t daddr_t;
+-typedef __caddr_t caddr_t;
++typedef int daddr_t;
+ # define __daddr_t_defined
+ #endif
+
diff --git a/testing/crosstool-ng/APKBUILD b/testing/crosstool-ng/APKBUILD
index 4d9914900eb..d39e20ac174 100644
--- a/testing/crosstool-ng/APKBUILD
+++ b/testing/crosstool-ng/APKBUILD
@@ -1,20 +1,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=crosstool-ng
-pkgver=1.24.0
+pkgver=1.25.0
pkgrel=0
pkgdesc="tool for building toolchains"
url="http://crosstool-ng.org/"
license="LGPL-2.1-or-later GPL-2.0-or-later CC-BY-SA-2.5"
arch="x86 x86_64 ppc64le"
-depends="bash gawk bison flex automake autoconf libtool cvs sed texinfo gperf"
+depends="
+ autoconf
+ automake
+ bash
+ bison
+ cvs
+ file
+ flex
+ g++
+ gawk
+ gperf
+ libtool
+ make
+ patch
+ sed
+ wget
+ xz
+ texinfo"
makedepends="ncurses-dev help2man xz gettext-dev"
-subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
-source="http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-$pkgver.tar.xz"
-
-builddir="$srcdir/$pkgname-$pkgver"
+subpackages="$pkgname-doc $pkgname-bash-completion"
+source="http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-$pkgver.tar.xz
+ 0001-sunrpc.diff"
build() {
- cd "$builddir"
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
@@ -23,19 +38,21 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
-}
-bashcomp() {
- depends=""
- pkgdesc="Bash completion for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- # bash completion has it's own package
- mkdir -p "$subpkgdir"/usr/share/bash-completion/completions/
+ # bash completion
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions/
mv "$pkgdir"/usr/share/bash-completion/completions/ct-ng \
- "$subpkgdir"/usr/share/bash-completion/completions/$pkgname
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+
+ # glibc patch
+ for glibc in 2.28 2.29; do
+ install -D -m 0644 "$srcdir"/0001-sunrpc.diff \
+ "$pkgdir"/usr/share/crosstool-ng/packages/glibc/$glibc/0001-sunrpc.patch
+ done
}
-sha512sums="89b8794a4184ad4928750e29712ed4f194aa1d0b93768d67ff64f30c30f1b1e165647cafc6de94d68d3ef70e50446e544dad65aa36137511a32ee7a667dddfb4 crosstool-ng-1.24.0.tar.xz"
+sha512sums="
+e25b6fb577ce439592a889fe73bbde4109309e7fe154e7133fefaeb5522c97e3f96958941aa1bc86448fcecb6b4021ff793c595048f5ef8e5ecc75e9a48c0c45 crosstool-ng-1.25.0.tar.xz
+4ef553b1e5295924e86c8457fac7ad128107f97c7ea247246f89a626937906f67f9a734aa77dc438680c2ac4d684f74819f8fde105459de4402dc7315fffa805 0001-sunrpc.diff
+"
diff --git a/testing/crowdsec/APKBUILD b/testing/crowdsec/APKBUILD
new file mode 100644
index 00000000000..80aa7a41b5a
--- /dev/null
+++ b/testing/crowdsec/APKBUILD
@@ -0,0 +1,94 @@
+# Contributor: tetsumaki <yd-alpine@tetsumaki.net>
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=crowdsec
+pkgver=1.6.1
+pkgrel=0
+pkgdesc="behavior detection engine, coupled with a global IP reputation network"
+url="https://crowdsec.net/"
+arch="all"
+license="MIT"
+makedepends="go sqlite-dev re2-dev"
+subpackages="
+ $pkgname-openrc
+ $pkgname-email-plugin:_plugin
+ $pkgname-http-plugin:_plugin
+ $pkgname-slack-plugin:_plugin
+ $pkgname-splunk-plugin:_plugin
+ "
+options="!check" # no test suite identified
+source="$pkgname-$pkgver.tar.gz::https://github.com/crowdsecurity/crowdsec/archive/refs/tags/v$pkgver.tar.gz
+ system-sqlite.patch
+ crowdsec.initd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make \
+ BUILD_VERSION=v$pkgver \
+ BUILD_TAG="aports"
+}
+
+package() {
+ install -dm 0755 \
+ "$pkgdir"/etc/crowdsec/acquis.d \
+ "$pkgdir"/etc/crowdsec/hub \
+ "$pkgdir"/etc/crowdsec/notifications \
+ "$pkgdir"/etc/crowdsec/patterns \
+ "$pkgdir"/usr/libexec/crowdsec/plugins \
+ "$pkgdir"/var/lib/crowdsec/data
+ install -Dm 0755 "$srcdir"/crowdsec.initd "$pkgdir"/etc/init.d/crowdsec
+ install -Dm 0755 cmd/crowdsec-cli/cscli "$pkgdir"/usr/bin/cscli
+ install -m 0755 cmd/crowdsec/crowdsec "$pkgdir"/usr/bin/crowdsec
+ install -m 0644 config/patterns/* "$pkgdir"/etc/crowdsec/patterns/
+ install -m 0644 \
+ config/acquis.yaml \
+ config/console.yaml \
+ config/profiles.yaml \
+ config/simulation.yaml \
+ "$pkgdir"/etc/crowdsec/
+ install -m 0600 \
+ config/local_api_credentials.yaml \
+ config/online_api_credentials.yaml \
+ "$pkgdir"/etc/crowdsec/
+ install -m 0600 \
+ cmd/notification-email/email.yaml \
+ cmd/notification-http/http.yaml \
+ cmd/notification-slack/slack.yaml \
+ cmd/notification-splunk/splunk.yaml \
+ cmd/notification-sentinel/sentinel.yaml \
+ "$pkgdir"/etc/crowdsec/notifications
+ install -m 0551 \
+ cmd/notification-email/notification-email \
+ cmd/notification-http/notification-http \
+ cmd/notification-slack/notification-slack \
+ cmd/notification-splunk/notification-splunk \
+ cmd/notification-sentinel/notification-sentinel \
+ "$pkgdir"/usr/libexec/crowdsec/plugins/
+ sed \
+ -e '/^\s*pid_dir:/d' \
+ -e 's/^\(\s*log_dir:\s*\)\(.*\)$/\1\/var\/log\/crowdsec\//' \
+ -e 's/^\(\s*plugin_dir:\s*\)\(.*\)$/\1\/usr\/libexec\/crowdsec\/plugins\//' \
+ -e 's/^\(\s*group:\s*\)\(\w*\)\(.*\)$/\1nobody\3/' \
+ config/config.yaml \
+ | install -m 0600 /dev/stdin "$pkgdir"/etc/crowdsec/config.yaml
+ sed 's/systemctl reload crowdsec/rc-service crowdsec reload/' config/crowdsec.cron.daily \
+ | install -Dm 0750 /dev/stdin "$pkgdir"/etc/periodic/daily/crowdsec
+}
+
+_plugin() {
+ _subpkgname="${subpkgname:9:(${#subpkgname}-16)}"
+ pkgdesc="$pkgname plugin: $_subpkgname"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ amove etc/crowdsec/notifications/$_subpkgname.yaml
+ amove usr/libexec/crowdsec/plugins/notification-$_subpkgname
+}
+
+sha512sums="
+96dddefcb459e044c2e73cf110b5a6b403fafbb7a68321fc1482a836c6d1ac515c0fd294d831fea5f3367f0057d5e6d1f978721132b7ee52e9c4fde9e36e9078 crowdsec-1.6.1.tar.gz
+ddabca84cb32b6461a3944b00e38807715320bbf46cf7b39fcbba0190d6dae7748950e1a424b95247779fdd15dbb2120fab43b80b479a03c895f246d45ecaf7b system-sqlite.patch
+098db47afd457c9d68c69097c31fae29cd0c0dc98199b254f75b130ac228ac43c024182bebd7eae756ae4fa2f54682b7f0534cb04311468224d9df2ce4f67ec2 crowdsec.initd
+"
diff --git a/testing/crowdsec/crowdsec.initd b/testing/crowdsec/crowdsec.initd
new file mode 100644
index 00000000000..78f4940c436
--- /dev/null
+++ b/testing/crowdsec/crowdsec.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+command=/usr/bin/crowdsec
+command_args="-c /etc/crowdsec/config.yaml"
+pidfile="/run/${RC_SVCNAME}.pid"
+command_background=true
+extra_started_commands="reload"
+description_reload="Reload configuration"
+
+depend() {
+ after firewall
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME"
+ start-stop-daemon --signal HUP --pidfile "$pidfile"
+ eend $?
+}
diff --git a/testing/crowdsec/system-sqlite.patch b/testing/crowdsec/system-sqlite.patch
new file mode 100644
index 00000000000..63a5b7cd0f9
--- /dev/null
+++ b/testing/crowdsec/system-sqlite.patch
@@ -0,0 +1,11 @@
+--- a/Makefile 2023-09-18 11:54:09.000000000 +0200
++++ b/Makefile 2023-09-18 20:19:59.347761343 +0200
+@@ -81,7 +81,7 @@ ifneq (,$(DOCKER_BUILD))
+ LD_OPTS_VARS += -X '$(GO_MODULE_NAME)/pkg/cwversion.System=docker'
+ endif
+
+-GO_TAGS := netgo,osusergo,sqlite_omit_load_extension
++GO_TAGS := netgo,osusergo,sqlite_omit_load_extension,libsqlite3
+
+ # this will be used by Go in the make target, some distributions require it
+ export PKG_CONFIG_PATH:=/usr/local/lib/pkgconfig:$(PKG_CONFIG_PATH)
diff --git a/testing/crypto++/APKBUILD b/testing/crypto++/APKBUILD
deleted file mode 100644
index 59c69ef9cc6..00000000000
--- a/testing/crypto++/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: August Klein <amatcoder@gmail.com>
-# Maintainer: August Klein <amatcoder@gmail.com>
-pkgname=crypto++
-_pkgname=cryptopp
-pkgver=8.2.0
-_pkgver=${pkgver//./}
-pkgrel=0
-pkgdesc="A free C++ class library of cryptographic schemes"
-url="https://www.cryptopp.com/"
-arch="all"
-license="BSL-1.0"
-depends_dev="$pkgname"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://www.cryptopp.com/${_pkgname}${_pkgver}.zip"
-builddir="$srcdir"
-
-build() {
- make CXXFLAGS="${CXXFLAGS} -DNDEBUG -fPIC" -f GNUmakefile dynamic libcryptopp.pc
-}
-
-check() {
- make -f GNUmakefile check
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX="/usr" install-lib
-}
-
-sha512sums="753513a4ec8dd0fff2f551853ce6bd265d82219c28b033565b565b5e567fbee17adb419f4cde58a97e62b7d6533f4099aa4996cd0ba4775c6a2e7ae63a879da5 cryptopp820.zip"
diff --git a/testing/cscope/APKBUILD b/testing/cscope/APKBUILD
index ff4a2fab0d4..5ffcb61bfbc 100644
--- a/testing/cscope/APKBUILD
+++ b/testing/cscope/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=cscope
pkgver=15.9
-pkgrel=0
+pkgrel=1
pkgdesc="Cscope is a developer's tool for browsing source code."
-url="http://cscope.sourceforge.net/"
+url="https://cscope.sourceforge.net/"
arch="all"
license="BSD-3-Clause"
makedepends="ncurses-dev"
diff --git a/testing/csfml/APKBUILD b/testing/csfml/APKBUILD
index c57ad02aa97..6bb5f8093b5 100644
--- a/testing/csfml/APKBUILD
+++ b/testing/csfml/APKBUILD
@@ -1,32 +1,34 @@
# Maintainer: Daniel Sabogal <dsabogalcc@gmail.com>
pkgname=csfml
-pkgver=2.5
-pkgrel=1
+pkgver=2.5.2
+pkgrel=0
pkgdesc="C bindings for SFML"
url="https://www.sfml-dev.org/"
arch="all"
-license="zlib"
-makedepends="cmake doxygen sfml-dev"
+license="Zlib"
+makedepends="cmake doxygen samurai sfml-dev"
subpackages="$pkgname-dev $pkgname-doc"
-options="!check"
source="$pkgname-$pkgver.tar.gz::https://github.com/SFML/CSFML/archive/$pkgver.tar.gz"
-
builddir="$srcdir/CSFML-$pkgver"
+options="!check"
+
build() {
- cmake . \
+ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCSFML_BUILD_DOC=TRUE \
-DCSFML_LINK_SFML_STATICALLY=FALSE \
-DSFML_DIR=/usr/share/SFML/cmake/Modules
- make
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" -C "$builddir" install
+ DESTDIR="$pkgdir" cmake --install build
mkdir -p "$pkgdir"/usr/share/doc
mv "$pkgdir"/usr/share/CSFML/doc "$pkgdir"/usr/share/doc/CSFML
}
-sha512sums="186ed87d8b925cfd51cc4aa0ba440407d18adc875da760576b5fafdf3e8c7e01ca0f594d9950495eb3e607c65bff12341a81df24af81043dce89d25d7cc24626 csfml-2.5.tar.gz"
+sha512sums="
+d651b42e777647d748edf8d2cc40e6df9b0e3fe0f9af5f5c84e9d62ac5bdf6e7e0ff4bb037ee81b59e0bdec544ad05e3b503a4555f03bfa6292a80c6188c12dc csfml-2.5.2.tar.gz
+"
diff --git a/testing/csmith/APKBUILD b/testing/csmith/APKBUILD
index d1cba970594..b4d368904e9 100644
--- a/testing/csmith/APKBUILD
+++ b/testing/csmith/APKBUILD
@@ -1,29 +1,34 @@
# Maintainer: Daniel Sabogal <dsabogalcc@gmail.com>
pkgname=csmith
pkgver=2.3.0
-pkgrel=0
+pkgrel=1
pkgdesc="Tool for generating random C programs"
url="https://embed.cs.utah.edu/csmith/"
arch="all"
license="BSD-2-Clause"
-depends=""
makedepends="m4"
subpackages="$pkgname-doc"
options="!check" # no test suite
-source="https://embed.cs.utah.edu/csmith/$pkgname-$pkgver.tar.gz
+source="https://embed.cs.utah.edu/csmith/csmith-$pkgver.tar.gz
support-ppc64le.patch
fix-s390x-read_time.patch
"
-builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+}
build() {
- cd "$builddir"
- ./configure --prefix=/usr
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
# scripts depend on source tree to be available
diff --git a/testing/csol/10-fix-ncurses.patch b/testing/csol/10-fix-ncurses.patch
new file mode 100644
index 00000000000..165da890471
--- /dev/null
+++ b/testing/csol/10-fix-ncurses.patch
@@ -0,0 +1,13 @@
+Some systems require ncursesw.h to handle the Unicode characters that
+csol uses, but we only have /usr/include/ncurses.h. The CMake
+CURSES_NEED_WIDE explicitly requires ncursesw.h, so we disable it.
+--- ./CMakeLists.txt.orig 2021-05-08 13:30:58 +02:00
++++ ./CMakeLists.txt 2022-02-10 20:58:42 +01:00
+@@ -9,7 +9,6 @@
+ file(COPY games DESTINATION .)
+ file(COPY themes DESTINATION .)
+
+-set(CURSES_NEED_WIDE TRUE)
+ find_package(Curses REQUIRED)
+ include_directories("$(CURSES_INCLUDE_DIR)")
+
diff --git a/testing/csol/APKBUILD b/testing/csol/APKBUILD
new file mode 100644
index 00000000000..ce83359057e
--- /dev/null
+++ b/testing/csol/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Erwan Rouchet <lucidiot@brainshit.fr>
+# Maintainer: Erwan Rouchet <lucidiot@brainshit.fr>
+pkgname=csol
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="Small collection of solitaire/patience games to play in the terminal"
+url="https://nielssp.dk/csol/"
+arch="all"
+license="MIT"
+makedepends="cmake ncurses-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/nielssp/csol/archive/v$pkgver.tar.gz
+ 10-fix-ncurses.patch
+ "
+subpackages="$pkgname-doc"
+options="!check" # no tests
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+2bac4e373d84c585e8bdb4671e5a446d2a174f8bfa60eaa6a8fe0d1ff5074878f2f8d0907297dd1452e5e5b1e7bfd73ba672a7820a3d4664e9abd6e654f57107 csol-1.6.0.tar.gz
+2ad2b066bdd79413ea7a72482999fc9a47d6c3b07af753ab45ee07e8ed107dbf0b2ea7492ad60eaafcc69cbf78ff0ee75b84eac127823250c5513be0d10d1a74 10-fix-ncurses.patch
+"
diff --git a/testing/ctop/APKBUILD b/testing/ctop/APKBUILD
deleted file mode 100644
index 39da64aa248..00000000000
--- a/testing/ctop/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Shyam Sunder <sgsunder1@gmail.com>
-# Maintainer: Shyam Sunder <sgsunder1@gmail.com>
-pkgname=ctop
-pkgver=0.7.2
-pkgrel=2
-pkgdesc="Top-like interface for container metrics"
-url="https://ctop.sh/"
-arch="all !mips !mips64" # blocked by docker, dep
-license="MIT"
-depends="docker"
-makedepends="go dep"
-options="!check" # No test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/bcicen/$pkgname/archive/v$pkgver.tar.gz"
-
-build() {
- make build
-}
-
-package() {
- install -Dm755 "$builddir"/ctop \
- "$pkgdir"/usr/bin/ctop
-}
-
-sha512sums="d5ef30800534b85b41215170f588cf2ad6460fb7a3fb1d1921ff1f8a7e6c515c76cdb2a089da1ae91067b3893e8a83fcea5616c2ace372bca2394dd57e22c887 ctop-0.7.2.tar.gz"
diff --git a/testing/ctorrent-dnh/APKBUILD b/testing/ctorrent-dnh/APKBUILD
index 06d2c7ddead..f3a7164a6be 100644
--- a/testing/ctorrent-dnh/APKBUILD
+++ b/testing/ctorrent-dnh/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Denis Ryabyy <vv1r0x@gmail.com>
pkgname=ctorrent-dnh
pkgver=3.3.2
-pkgrel=0
+pkgrel=2
pkgdesc="Enhanced CTorrent is a BitTorrent client for unix-like environments"
url="http://www.rahul.net/dholmes/ctorrent/"
arch="all"
@@ -16,7 +16,7 @@ build() {
./configure --prefix=/usr && make
}
-package () {
+package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/testing/cue-cli/APKBUILD b/testing/cue-cli/APKBUILD
new file mode 100644
index 00000000000..8aa0453215f
--- /dev/null
+++ b/testing/cue-cli/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=cue-cli
+pkgver=0.7.0
+pkgrel=2
+pkgdesc="CLI for CUE configuration and validation language"
+url="https://cuelang.org/"
+# 32-bit: value out of int range
+# s390x: TextExe fails (slice bounds out of range)
+arch="all !x86 !armhf !armv7 !s390x"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cue-lang/cue/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/cue-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o bin/cue \
+ -ldflags "-X cuelang.org/go/cmd/cue/cmd.version=v$pkgver" \
+ ./cmd/cue/
+
+ for shell in bash fish zsh; do
+ ./bin/cue completion $shell > cue.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/cue -t "$pkgdir"/usr/bin/
+
+ install -Dm644 cue.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/cue
+ install -Dm644 cue.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/cue.fish
+ install -Dm644 cue.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_cue
+}
+
+sha512sums="
+471ebc4ac81dfc0df42d8e8bd5e858b8a2f958c909ccd0b391ed4af669e7eba3908bcde63ca21973f072e35f66d307180fb3fc43627eb4de6385011bcf48aed1 cue-cli-0.7.0.tar.gz
+"
diff --git a/testing/cups-pdf/APKBUILD b/testing/cups-pdf/APKBUILD
index 85a7f7466a7..0b24be3f2bf 100644
--- a/testing/cups-pdf/APKBUILD
+++ b/testing/cups-pdf/APKBUILD
@@ -1,17 +1,16 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=cups-pdf
pkgver=3.0.1
-pkgrel=1
+pkgrel=2
pkgdesc="CUPS PDF printer"
url="https://www.cups-pdf.de"
arch="all"
-license="GPL"
+license="GPL-2.0-or-later"
makedepends="cups-dev"
options="!check"
pkgusers="lp"
pkggroups="lp"
source="https://www.cups-pdf.de/src/cups-pdf_$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
build() {
cd "$builddir/src"
@@ -19,9 +18,9 @@ build() {
}
package() {
- cd "$builddir"
install -D -m755 src/cups-pdf "$pkgdir"/usr/lib/cups/backend/cups-pdf
- install -D -m644 extra/cups-pdf.conf "$pkgdir"/etc/cups/cups-pdf.conf
+ install -d -g lp "$pkgdir"/etc/cups
+ install -D -m644 -g lp extra/cups-pdf.conf "$pkgdir"/etc/cups/cups-pdf.conf
install -D -m644 extra/CUPS-PDF_opt.ppd "$pkgdir"/usr/share/ppd/cups-pdf/cups-pdf.ppd
install -d -o lp -g lp "$pkgdir"/var/spool/cups-pdf
}
diff --git a/testing/cura/APKBUILD b/testing/cura/APKBUILD
new file mode 100644
index 00000000000..c6964f877a2
--- /dev/null
+++ b/testing/cura/APKBUILD
@@ -0,0 +1,75 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=cura
+# uranium and curaengine packages must be updated in sync with this verion number
+# py3-pynest2d and fdm-materials should be checked as well, but their versions are not always in sync
+pkgver=5.2.2
+pkgrel=1
+pkgdesc="3D printer / slicing GUI built on top of the Uranium framework"
+url="https://ultimaker.com/software/ultimaker-cura"
+arch="noarch !ppc64le !x86 !armhf !riscv64 !s390x !armv7" # ppc64le: no py3-keyring
+# x86: no curaengine
+# armhf: no uranium, qt5-qtquickcontrols, qt5-qtquickcontrols2, qt5-qtgraphicaleffects
+# riscv64: no uranium
+# s390x: no py3-trimesh, no py3-numpy-stl
+# armv7: no py3-trimesh
+license="LGPL-3.0-or-later"
+# add cura-binary-data to depends when packaged
+depends="
+ curaengine
+ fdm-materials
+ uranium
+ py3-arcus
+ py3-keyring
+ py3-numpy-stl
+ py3-pyclipper
+ py3-pynest2d
+ py3-pyserial
+ py3-qt6
+ py3-requests
+ py3-trimesh
+ py3-zeroconf
+ "
+makedepends="samurai cmake gettext gettext-dev" # needs msginit from gettext
+checkdepends="py3-pytest"
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/Cura/archive/refs/tags/$pkgver.tar.gz
+ AppDesktopData.patch
+ CuraVersion.patch
+ cmake-helpers.patch
+ cmake.patch"
+builddir="$srcdir/Cura-$pkgver"
+options="!check" # tests broken after v5.x
+
+build() {
+ local pyver="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
+ cmake -B build -G Ninja \
+ -DCURA_VERSION=$pkgver \
+ -DPython_VERSION=$pyver \
+ -DURANIUM_DIR=/usr/share/uranium \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DGETTEXT_MSGINIT_EXECUTABLE=msginit \
+ -DCURA_BINARY_DATA_DIRECTORY=/usr/share/cura \
+ -DCMAKE_BUILD_TYPE=minsizerel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ mv $pkgdir/usr/bin/cura_app.py $pkgdir/usr/bin/cura
+
+ # don't ever send any user or print info through the internet to Ultimaker
+ rm -rf "$pkgdir/usr/lib/cura/plugins/SliceInfoPlugin"
+
+ install -d "$pkgdir"/usr/share/locale
+ mv "$pkgdir"/usr/share/cura/resources/i18n/* "$pkgdir"/usr/share/locale/
+}
+
+sha512sums="
+5d4e0fdc740d0c048905e2b87cc8c73eedea59b54766b74760505902007b365582d22b46b1cfdcd6914828840865c10a3beb0ef6a1f04ea181c81d44f42434bc cura-5.2.2.tar.gz
+214e373f6cab7e3ccac12c96d1b5ca636d8d1e9ecdadaae84fc28fb429969c7c2d6055ce2a01b6db3ad85ab6cbc8d135cf2c26c77d7cfe13a73eb81aa5e85f11 AppDesktopData.patch
+e3bb302db70ca195b2ce9831e71302c8ee2a51955fecc7264a495d7d4fc9c107cfd48811aa5865f16671e7b1ae126f95d3d7bbb6a70f367f7f91a2b32bce377b CuraVersion.patch
+0db4ff97e7f82ae1a9dbc9c330d08c3e46249feeb3fb630f7c4e2de73749327337ec041680c39a07e0b5034c1b3f3656d75614ab4dc2f39861c8e27bdb2a58ef cmake-helpers.patch
+05a73f892700ff6279230385b04180873a62b7413fa7f7d55ae150f1bcee57ef05eda0bd7fe444fe660ab66a044c958f42badd33b743fca81033ae8f19dd3805 cmake.patch
+"
diff --git a/testing/cura/AppDesktopData.patch b/testing/cura/AppDesktopData.patch
new file mode 100644
index 00000000000..9e2134f5823
--- /dev/null
+++ b/testing/cura/AppDesktopData.patch
@@ -0,0 +1,58 @@
+--- /dev/null
++++ ./com.ultimaker.cura.appdata.xml
+@@ -0,0 +1,33 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- Copyright 2016 Richard Hughes <richard@hughsie.com> -->
++<component type="desktop">
++ <id>com.ultimaker.cura.desktop</id>
++ <metadata_license>CC0-1.0</metadata_license>
++ <project_license>LGPL-3.0 and CC-BY-SA-4.0</project_license>
++ <name>Cura</name>
++ <summary>The world's most advanced 3d printer software</summary>
++ <description>
++ <p>
++ Cura creates a seamless integration between hardware, software and
++ materials for the best 3D printing experience around.
++ Cura supports the 3MF, OBJ and STL file formats and is available on
++ Windows, Mac and Linux.
++ </p>
++ <ul>
++ <li>Novices can start printing right away</li>
++ <li>Experts are able to customize 300 settings to achieve the best results</li>
++ <li>Optimized profiles for Ultimaker materials</li>
++ <li>Supported by a global network of Ultimaker certified service partners</li>
++ <li>Print multiple objects at once with different settings for each object</li>
++ <li>Cura supports STL, 3MF and OBJ file formats</li>
++ <li>Open source and completely free</li>
++ </ul>
++ </description>
++ <screenshots>
++ <screenshot type="default">
++ <image>https://raw.githubusercontent.com/Ultimaker/Cura/master/screenshot.png</image>
++ </screenshot>
++ </screenshots>
++ <url type="homepage">https://ultimaker.com/software/ultimaker-cura?utm_source=cura&amp;utm_medium=software&amp;utm_campaign=cura-update-linux</url>
++ <translation type="gettext">Cura</translation>
++</component>
+--- /dev/null
++++ ./com.ultimaker.cura.desktop.in
+@@ -0,0 +1,19 @@
++[Desktop Entry]
++Name=Ultimaker Cura
++Name[de]=Ultimaker Cura
++Name[nl]=Ultimaker Cura
++GenericName=3D Printing Software
++GenericName[de]=3D-Druck-Software
++GenericName[nl]=3D-printsoftware
++Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great.
++Comment[de]=Cura wandelt 3D-Modelle in Pfade für einen 3D-Drucker um. Es bereitet Ihren Druck für maximale Genauigkeit, minimale Druckzeit und guter Zuverlässigkeit mit vielen zusätzlichen Funktionen vor, damit Ihr Druck großartig wird.
++Comment[nl]=Cura converteert 3D-modellen naar paden voor een 3D printer. Het bereidt je print voor om zeer precies, snel en betrouwbaar te kunnen printen, met veel extra functionaliteit om je print er goed uit te laten komen.
++Exec=@CMAKE_INSTALL_FULL_BINDIR@/cura %F
++TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura
++Icon=cura-icon
++Terminal=false
++Type=Application
++MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;text/x-gcode;application/x-amf;application/x-ply;application/x-ctm;model/vnd.collada+xml;model/gltf-binary;model/gltf+json;model/vnd.collada+xml+zip;
++Categories=Graphics;
++Keywords=3D;Printing;Slicer;
++StartupWMClass=cura.real
diff --git a/testing/cura/CuraVersion.patch b/testing/cura/CuraVersion.patch
new file mode 100644
index 00000000000..916225d09c9
--- /dev/null
+++ b/testing/cura/CuraVersion.patch
@@ -0,0 +1,16 @@
+--- /dev/null
++++ ./cura/CuraVersion.py.in
+@@ -0,0 +1,13 @@
++# Copyright (c) 2020 Ultimaker B.V.
++# Cura is released under the terms of the LGPLv3 or higher.
++
++CuraAppName = "@CURA_APP_NAME@"
++CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@"
++CuraVersion = "@CURA_VERSION@"
++CuraBuildType = "@CURA_BUILDTYPE@"
++CuraDebugMode = True if "@_cura_debugmode@" == "ON" else False
++CuraCloudAPIRoot = "@CURA_CLOUD_API_ROOT@"
++CuraCloudAPIVersion = "@CURA_CLOUD_API_VERSION@"
++CuraCloudAccountAPIRoot = "@CURA_CLOUD_ACCOUNT_API_ROOT@"
++CuraMarketplaceRoot = "@CURA_MARKETPLACE_ROOT@"
++CuraDigitalFactoryURL = "@CURA_DIGITAL_FACTORY_URL@"
diff --git a/testing/cura/cmake-helpers.patch b/testing/cura/cmake-helpers.patch
new file mode 100644
index 00000000000..6204aaa585c
--- /dev/null
+++ b/testing/cura/cmake-helpers.patch
@@ -0,0 +1,95 @@
+--- /dev/null
++++ ./cmake/CuraPluginInstall.cmake
+@@ -0,0 +1,92 @@
++# Copyright (c) 2022 Ultimaker B.V.
++# CuraPluginInstall.cmake is released under the terms of the LGPLv3 or higher.
++
++#
++# This module detects all plugins that need to be installed and adds them using the CMake install() command.
++# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it.
++#
++# Plugins can be configured to NOT BE INSTALLED via the variable "CURA_NO_INSTALL_PLUGINS" as a list of string in the
++# form of "a;b;c" or "a,b,c". By default all plugins will be installed.
++#
++
++option(PRINT_PLUGIN_LIST "Should the list of plugins that are installed be printed?" ON)
++
++# Options or configuration variables
++set(CURA_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.")
++
++file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json)
++list(LENGTH _plugin_json_list _plugin_json_list_len)
++
++# Sort the lists alphabetically so we can handle cases like this:
++# - plugins/my_plugin/plugin.json
++# - plugins/my_plugin/my_module/plugin.json
++# In this case, only "plugins/my_plugin" should be added via install().
++set(_no_install_plugin_list ${CURA_NO_INSTALL_PLUGINS})
++# Sanitize the string so the comparison will be case-insensitive.
++string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list)
++string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list)
++
++# WORKAROUND counterpart of what's in cura-build.
++string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}")
++
++list(LENGTH _no_install_plugin_list _no_install_plugin_list_len)
++
++if(_no_install_plugin_list_len GREATER 0)
++ list(SORT _no_install_plugin_list)
++endif()
++if(_plugin_json_list_len GREATER 0)
++ list(SORT _plugin_json_list)
++endif()
++
++# Check all plugin directories and add them via install() if needed.
++set(_install_plugin_list "")
++foreach(_plugin_json_path ${_plugin_json_list})
++ get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY)
++ file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir})
++ get_filename_component(_plugin_dir_name ${_plugin_dir} NAME)
++
++ # Make plugin name comparison case-insensitive
++ string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase)
++
++ # Check if this plugin needs to be skipped for installation
++ set(_add_plugin ON) # Indicates if this plugin should be added to the build or not.
++ set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is
++ # specified in the NO_INSTALL_PLUGINS list.
++ if(_no_install_plugin_list)
++ if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list)
++ set(_add_plugin OFF)
++ set(_is_no_install_plugin ON)
++ endif()
++ endif()
++
++ # Make sure this is not a subdirectory in a plugin that's already in the install list
++ if(_add_plugin)
++ foreach(_known_install_plugin_dir ${_install_plugin_list})
++ if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+")
++ set(_add_plugin OFF)
++ break()
++ endif()
++ endforeach()
++ endif()
++
++ if(_add_plugin)
++ if(${PRINT_PLUGIN_LIST})
++ message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}")
++ endif()
++ get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY)
++ install(DIRECTORY ${_rel_plugin_dir}
++ DESTINATION lib${LIB_SUFFIX}/cura/${_rel_plugin_parent_dir}
++ PATTERN "__pycache__" EXCLUDE
++ PATTERN "*.qmlc" EXCLUDE
++ )
++ list(APPEND _install_plugin_list ${_plugin_dir})
++ elseif(_is_no_install_plugin)
++ if(${PRINT_PLUGIN_LIST})
++ message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}")
++ endif()
++ execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py
++ -d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages
++ ${_plugin_dir_name}
++ RESULT_VARIABLE _mod_json_result)
++ endif()
++endforeach()
diff --git a/testing/cura/cmake.patch b/testing/cura/cmake.patch
new file mode 100644
index 00000000000..a74477fa20a
--- /dev/null
+++ b/testing/cura/cmake.patch
@@ -0,0 +1,85 @@
+--- ./CMakeLists.txt.orig
++++ ./CMakeLists.txt
+@@ -1,10 +1,6 @@
+ # Copyright (c) 2022 Ultimaker B.V.
+ # Cura is released under the terms of the LGPLv3 or higher.
+
+-# NOTE: This is only being used for translation scripts.
+-
+-# For MSVC flags, will be ignored on non-Windows OS's and this project in general. Only needed for cura-build-environment.
+-cmake_policy(SET CMP0091 NEW)
+ project(cura)
+ cmake_minimum_required(VERSION 3.18)
+
+@@ -15,8 +11,44 @@
+ set(URANIUM_DIR "${CMAKE_SOURCE_DIR}/../Uranium" CACHE PATH "The location of the Uranium repository")
+ set(URANIUM_SCRIPTS_DIR "${URANIUM_DIR}/scripts" CACHE PATH "The location of the scripts directory of the Uranium repository")
+
++option(CURA_DEBUGMODE "Enable debug dialog and other debug features" OFF)
++if(CURA_DEBUGMODE)
++ set(_cura_debugmode "ON")
++endif()
++
+ option(GENERATE_TRANSLATIONS "Should the translations be generated?" ON)
+
++set(CURA_APP_NAME "cura" CACHE STRING "Short name of Cura, used for configuration folder")
++set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura")
++set(CURA_VERSION "master" CACHE STRING "Version name of Cura")
++set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'")
++set(CURA_CLOUD_API_ROOT "" CACHE STRING "Alternative Cura cloud API root")
++set(CURA_CLOUD_API_VERSION "" CACHE STRING "Alternative Cura cloud API version")
++set(CURA_CLOUD_ACCOUNT_API_ROOT "" CACHE STRING "Alternative Cura cloud account API version")
++set(CURA_MARKETPLACE_ROOT "" CACHE STRING "Alternative Marketplace location")
++set(CURA_DIGITAL_FACTORY_URL "" CACHE STRING "Alternative Digital Factory location")
++
++configure_file(${CMAKE_SOURCE_DIR}/com.ultimaker.cura.desktop.in ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop @ONLY)
++
++configure_file(cura/CuraVersion.py.in CuraVersion.py @ONLY)
++
++if(NOT DEFINED Python_VERSION)
++ set(Python_VERSION
++ 3.11
++ CACHE STRING "Python Version" FORCE)
++ message(STATUS "Setting Python version to ${Python_VERSION}. Set Python_VERSION if you want to compile against an other version.")
++endif()
++if(APPLE)
++ set(Python_FIND_FRAMEWORK NEVER)
++endif()
++find_package(Python ${Python_VERSION} EXACT REQUIRED COMPONENTS Interpreter)
++message(STATUS "Linking and building ${project_name} against Python ${Python_VERSION}")
++if(NOT DEFINED Python_SITELIB_LOCAL)
++ set(Python_SITELIB_LOCAL
++ "${Python_SITELIB}"
++ CACHE PATH "Local alternative site-package location to install Cura" FORCE)
++endif()
++
+ if(NOT ${URANIUM_DIR} STREQUAL "")
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${URANIUM_DIR}/cmake")
+ endif()
+@@ -29,4 +61,24 @@
+ if(${GENERATE_TRANSLATIONS})
+ CREATE_TRANSLATION_TARGETS()
+ endif()
+-endif()
+\ No newline at end of file
++endif()
++
++install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
++
++include(CuraPluginInstall)
++
++install(FILES cura_app.py DESTINATION ${CMAKE_INSTALL_BINDIR}
++ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
++install(DIRECTORY cura DESTINATION "${Python_SITELIB_LOCAL}")
++install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION "${Python_SITELIB_LOCAL}/cura/")
++if(NOT APPLE AND NOT WIN32)
++ install(FILES ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop
++ DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
++ install(FILES ${CMAKE_SOURCE_DIR}/resources/images/cura-icon.png
++ DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps/)
++ install(FILES com.ultimaker.cura.appdata.xml
++ DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
++ install(FILES cura.sharedmimeinfo
++ DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
++ RENAME cura.xml )
++endif()
diff --git a/testing/curlftpfs/APKBUILD b/testing/curlftpfs/APKBUILD
index b6075b3a114..61db1fae1d0 100644
--- a/testing/curlftpfs/APKBUILD
+++ b/testing/curlftpfs/APKBUILD
@@ -2,16 +2,14 @@
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=curlftpfs
pkgver=0.9.2
-pkgrel=1
+pkgrel=3
pkgdesc="Fuse mount FTP server"
url="https://sourceforge.net/projects/curlftpfs/"
arch="all"
license="GPL-2.0-only"
-depends="libcurl glib"
makedepends="curl-dev glib-dev fuse-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/project/curlftpfs/curlftpfs/0.9.2/curlftpfs-0.9.2.tar.gz
+source="https://downloads.sourceforge.net/project/curlftpfs/curlftpfs/$pkgver/curlftpfs-$pkgver.tar.gz
001-uclibc_mod.patch
500-fix-CURLOPT_INFILESIZE.patch
510-free_ftpfs_file-memleak-fix.patch
@@ -20,7 +18,6 @@ source="https://downloads.sourceforge.net/project/curlftpfs/curlftpfs/0.9.2/curl
540-consistent-feature-flag.patch
550-getpass-prototype.patch
"
-builddir="$srcdir/${pkgname}-${pkgver}"
patch_args="-p1"
prepare() {
@@ -29,17 +26,15 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--target=$CTARGET \
--prefix=/usr
- make CFLAGS="-I/usr/include/fuse -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D__off_t=off_t -D_FILE_OFFSET_BITS=64"
+ make CFLAGS="$CFLAGS -I/usr/include/fuse -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D__off_t=off_t -D_FILE_OFFSET_BITS=64"
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/testing/curlpp/APKBUILD b/testing/curlpp/APKBUILD
index 5da7b27135c..b57d8d9808a 100644
--- a/testing/curlpp/APKBUILD
+++ b/testing/curlpp/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=curlpp
pkgver=0.8.1
-pkgrel=0
+pkgrel=1
pkgdesc="C++ wrapper for libcURL"
url="http://curlpp.org"
arch="all"
diff --git a/testing/curtail/APKBUILD b/testing/curtail/APKBUILD
new file mode 100644
index 00000000000..d114d8559d2
--- /dev/null
+++ b/testing/curtail/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=curtail
+_pkgname=Curtail
+pkgver=1.9.1
+pkgrel=0
+pkgdesc="Simple & useful image compressor"
+url="https://github.com/Huluti/Curtail"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ jpegoptim
+ libwebp
+ pngquant
+ py3-gobject3
+ "
+makedepends="
+ appstream-glib
+ desktop-file-utils
+ gettext
+ gtk+3.0-dev
+ meson
+ py3-gobject3-dev
+ python3
+ "
+source="https://github.com/Huluti/Curtail/archive/$pkgver/curtail-$pkgver.tar.gz"
+subpackages="$pkgname-lang"
+
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ abuild-meson . build
+ meson compile -C build
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+7ff0ff10068c5ff2694f6674376edf84957759b6274740d47d11a584943b026183b13a59b777c27569b6997c3cb358694fa93c55a1136b9d1fab08e768d1a1a4 curtail-1.9.1.tar.gz
+"
diff --git a/testing/cutechess/APKBUILD b/testing/cutechess/APKBUILD
new file mode 100644
index 00000000000..fc390bdc4b3
--- /dev/null
+++ b/testing/cutechess/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: Prokop RandáÄek <prokop@rdck.dev>
+pkgname=cutechess
+pkgver=1.3.1
+pkgrel=0
+pkgdesc="GUI, CLI and library for playing chess"
+url="https://cutechess.com"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ qt6-qt5compat-dev
+ qt6-qtbase-dev
+ qt6-qtsvg-dev
+ samurai
+ "
+subpackages="
+ $pkgname-doc:cutechess_doc:noarch
+ $pkgname-cli
+ $pkgname-cli-doc:cli_doc:noarch
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/cutechess/cutechess/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto -Wno-deprecated-declarations" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DWITH_TESTS="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ # manual doc install
+ gzip -9n "$pkgdir"/usr/share/man/man*/*
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+cutechess_doc() {
+ install_if="$pkgname=$pkgver-r$pkgrel docs"
+
+ amove usr/share/man/man5
+}
+
+cli() {
+ pkgdesc="Commandline interface for cutechess"
+
+ amove usr/bin/cutechess-cli
+}
+
+cli_doc() {
+ install_if="$pkgname-cli=$pkgver-r$pkgrel docs"
+
+ amove usr/share/man/man6
+}
+
+sha512sums="
+d6078d7ba30f735f4a12719f75e028fb990d7e6d4f5aebd3ba6295523513adf26725854c7d221dbb6c6a93cc8b4a7edd10c6d6cb1741678136367b63da08c471 cutechess-1.3.1.tar.gz
+"
diff --git a/testing/cvise/APKBUILD b/testing/cvise/APKBUILD
new file mode 100644
index 00000000000..583b39f9270
--- /dev/null
+++ b/testing/cvise/APKBUILD
@@ -0,0 +1,71 @@
+# Maintainer:
+pkgname=cvise
+pkgver=2.8.0
+pkgrel=2
+_llvmver=16
+pkgdesc="Python port of C-Reduce, for program testcase minimisation"
+url="https://github.com/marxin/cvise"
+arch="all"
+license="NCSA"
+depends="
+ cmd:clang-format
+ py3-chardet
+ py3-pebble
+ py3-psutil
+ unifdef
+ "
+makedepends="
+ clang$_llvmver-dev
+ clang$_llvmver-static
+ cmake
+ flex
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ samurai
+ "
+checkdepends="
+ py3-pytest-forked
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/marxin/cvise/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ export CC=clang-$_llvmver
+ export CXX=clang++-$_llvmver
+ export CFLAGS="${CFLAGS/-fstack-clash-protection} -O2 -DNDEBUG"
+ export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection} -O2 -DNDEBUG"
+
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ cd build
+ # simple_deduction: for some reason it checks for a short string but gets a wall of text in a reduced case
+ pytest -c /dev/null -n auto --forked -k 'not test_simple_reduction'
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ # remove tests
+ rm -r "$pkgdir"/usr/share/cvise/tests
+ python3 -m compileall -fq "$pkgdir"/usr/share/cvise
+}
+
+pyc() {
+ pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
+ install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"
+
+ cd "$pkgdir"
+ local IFS='
+'
+ # shellcheck disable=2046
+ amove $(find usr/share/cvise -type d -name __pycache__)
+}
+
+sha512sums="
+7e2dee2001aacb96cf5ffdb62047d229e23273fd26f34648e23ab4374bf6cae149f13db529494ce8d2d16555a0d2143487923c57f4b303b0ab1f678ffcff6f6e cvise-2.8.0.tar.gz
+"
diff --git a/testing/cvs-fast-export/APKBUILD b/testing/cvs-fast-export/APKBUILD
new file mode 100644
index 00000000000..2ca6f824b1f
--- /dev/null
+++ b/testing/cvs-fast-export/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=cvs-fast-export
+pkgver=1.65
+pkgrel=0
+pkgdesc="Export RCS or CVS history as a fast-import stream"
+url="http://www.catb.org/esr/cvs-fast-export/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="cvs rcs"
+makedepends="asciidoctor bison flex libxslt"
+checkdepends="python3"
+subpackages="$pkgname-doc $pkgname-tools::noarch"
+source="https://gitlab.com/esr/cvs-fast-export/-/archive/$pkgver/cvs-fast-export-$pkgver.tar.gz"
+options="!check" # take 50 years
+
+build() {
+ # "make all" will run the commands below + html.
+ # html can not run in parallel because the ".adoc.html"
+ # rules reuse the "docbook-xsl.css" file name.
+ make cvs-fast-export man
+}
+
+check() {
+ # v1.55 - More then one job and the tests
+ # are executed in the wrong order!
+ make -j 1 check
+}
+
+package() {
+ make DESTDIR="$pkgdir" prefix=/usr install
+}
+
+tools() {
+ pkgdesc="$pkgdesc (extra tools)"
+ depends="$pkgname=$pkgver-r$pkgrel git python3 rsync"
+
+ amove \
+ usr/bin/cvsconvert \
+ usr/bin/cvssync
+}
+
+sha512sums="
+84665f654364c111455edec5c335cf75dbdb8b63759b94eee85b4bc7389d3c90d85e0c84e8d2ba2d7ab89588d568c6e56b6f8c4a8fbd9f3083a370d9b1302e63 cvs-fast-export-1.65.tar.gz
+"
diff --git a/testing/cwm/APKBUILD b/testing/cwm/APKBUILD
deleted file mode 100644
index 3f8fd83162b..00000000000
--- a/testing/cwm/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Cág <ca6c@bitmessage.ch>
-# Maintainer
-pkgname=cwm
-pkgver=6.7
-pkgrel=0
-pkgdesc="A lightweight and efficient window manager for X11"
-url="https://github.com/chneukirchen/cwm"
-arch="all"
-license="ISC"
-makedepends="libx11-dev libxft-dev libxrandr-dev byacc bsd-compat-headers"
-subpackages="$pkgname-doc"
-source="cwm-$pkgver.tar.gz::https://github.com/chneukirchen/cwm/archive/v$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir/" PREFIX=/usr install
-}
-
-sha512sums="5ad0fa56d9c96c36cc32e68128e58d4e3a7483f349bb26be1083c5b5c6d853ff05eec1a783b07ed928bd99a35a2e0b2d7053fc89b828aa9bdfe3589a318c4171 cwm-6.7.tar.gz"
diff --git a/testing/cyrus-sasl-xoauth2/APKBUILD b/testing/cyrus-sasl-xoauth2/APKBUILD
new file mode 100644
index 00000000000..811708acd4f
--- /dev/null
+++ b/testing/cyrus-sasl-xoauth2/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Julian Weigt <juw@posteo.de>
+# Maintainer: Julian Weigt <juw@posteo.de>
+pkgname=cyrus-sasl-xoauth2
+pkgver=0.2
+pkgrel=1
+pkgdesc="XOAUTH2 mechanism plugin for cyrus-sasl"
+arch="all"
+url="https://github.com/moriyoshi/cyrus-sasl-xoauth2"
+license="MIT"
+makedepends="libtool autoconf automake cyrus-sasl-dev"
+subpackages="$pkgname-doc $pkgname-static"
+source="$pkgname-$pkgver.tar.gz::https://github.com/moriyoshi/cyrus-sasl-xoauth2/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ sh autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+c3a8fdc7c51a22df9fd8da5418a95e146b46c6865d4990dcf4053f18ca9ee9900b3b564e85cc8ec7bcde75966385b148e8320059b00f2f1374d4601c50e2c821 cyrus-sasl-xoauth2-0.2.tar.gz
+"
diff --git a/testing/cz-viator-hourglass-black/APKBUILD b/testing/cz-viator-hourglass-black/APKBUILD
new file mode 100644
index 00000000000..12160f00c79
--- /dev/null
+++ b/testing/cz-viator-hourglass-black/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Daniil Nemtsev <nmsv@pm.me>
+# Maintainer: Daniil Nemtsev <nmsv@pm.me>
+pkgname=cz-viator-hourglass-black
+pkgver=20210706
+pkgrel=0
+pkgdesc="A X11 cursor theme inspired by the classical DMZ theme."
+url="https://github.com/charakterziffer/cursor-toolbox"
+arch="noarch"
+license="GPL-3.0"
+makedepends="python3 inkscape xcursorgen"
+options="!check" # no tests
+_gitrev=02a7977b3d009525c95787c756fce8d824960e4c
+source="$pkgname-$_gitrev.tar.gz::https://github.com/charakterziffer/cursor-toolbox/archive/$_gitrev.tar.gz
+ py3.patch
+ "
+builddir="$srcdir"/cursor-toolbox-$_gitrev
+
+build() {
+ python3 render-pngs.py svgs/template-black.svg
+ python3 render-pngs.py svgs/spinner-hourglass.svg
+ ./make.sh
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/icons/$pkgname
+ cp -r My-Cursor-Theme/* "$pkgdir"/usr/share/icons/"$pkgname"
+}
+
+sha512sums="
+cdeed1b5edeb071fe61d0b4ea8c7e324f24a17540f975f7213af6f9d9682ea2569e4b3a8427258c21f80dc969c8705f814f52d8212f2a9419e6bb9227e0d6244 cz-viator-hourglass-black-02a7977b3d009525c95787c756fce8d824960e4c.tar.gz
+ae16551659b5334161f73cbac6430a1fdd6e6f4f134dc8dcfd616d577e751ecc77c59145bafca459aafc1461a7ae60d6aa142d6f9fd4b091c81717450fee62cc py3.patch
+"
diff --git a/testing/cz-viator-hourglass-black/py3.patch b/testing/cz-viator-hourglass-black/py3.patch
new file mode 100644
index 00000000000..a4c9422c21f
--- /dev/null
+++ b/testing/cz-viator-hourglass-black/py3.patch
@@ -0,0 +1,20 @@
+--- a/render-pngs.py
++++ b/render-pngs.py
+@@ -82,7 +82,7 @@
+ def isFloat(self, stringVal):
+ try:
+ return (float(stringVal), True)[1]
+- except (ValueError, TypeError), e:
++ except (ValueError, TypeError) as e:
+ return False
+
+ def parseCoordinates(self, val):
+@@ -236,7 +236,7 @@
+ xmlParser.setContentHandler(svgLayerHandler)
+ try:
+ xmlParser.parse(svgFilename)
+- except SAXParseException, e:
++ except SAXParseException as e:
+ fatalError("Error parsing SVG file '%s': line %d,col %d: %s. If you're seeing this within inkscape, it probably indicates a bug that should be reported." % (svgfile, e.getLineNumber(), e.getColumnNumber(), e.getMessage()))
+
+ # verify that the svg file actually contained some rectangles.
diff --git a/testing/daemontools/APKBUILD b/testing/daemontools/APKBUILD
index 5b82c50f59c..6b4049c19a6 100644
--- a/testing/daemontools/APKBUILD
+++ b/testing/daemontools/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Johannes Findeisen <you@hanez.org>
pkgname=daemontools
pkgver=0.76
-pkgrel=1
+pkgrel=2
pkgdesc="Collection of tools for managing UNIX services"
url="https://cr.yp.to/daemontools.html"
arch="all"
diff --git a/testing/daktilo/APKBUILD b/testing/daktilo/APKBUILD
new file mode 100644
index 00000000000..2d47e2fd94c
--- /dev/null
+++ b/testing/daktilo/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=daktilo
+pkgver=0.6.0
+pkgrel=0
+pkgdesc="Turn your keyboard into a typewriter"
+url="https://github.com/orhun/daktilo"
+arch="all"
+license="MIT OR Apache-2.0"
+depends="alsa-lib libxi-dev libxtst-dev"
+makedepends="cargo cargo-auditable alsa-lib-dev"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/orhun/daktilo/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+ mkdir -p man
+ OUT_DIR=man/ target/release/daktilo-mangen
+ mkdir -p completions
+ OUT_DIR=completions/ target/release/daktilo-completions
+}
+
+check() {
+ OUT_DIR=target cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 "man/$pkgname.1" -t "$pkgdir/usr/share/man/man1"
+ install -Dm 644 "completions/$pkgname.bash" "$pkgdir/usr/share/bash-completion/completions/$pkgname"
+ install -Dm 644 "completions/$pkgname.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d"
+ install -Dm 644 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions"
+}
+
+sha512sums="
+58f2de4cd9c39e0c1e210e09ac2fd48d3411c756e2256b88f4b3515831759a00260fa23683e9f52f5032c52e3c903b4498fe1eac313c7e94c431270e638292ea daktilo-0.6.0.tar.gz
+"
diff --git a/testing/dapr-cli/APKBUILD b/testing/dapr-cli/APKBUILD
new file mode 100644
index 00000000000..adf45d3bb01
--- /dev/null
+++ b/testing/dapr-cli/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=dapr-cli
+pkgver=1.12.0
+# API version described in https://docs.dapr.io/reference/api/
+_runtimever=1.0
+pkgrel=2
+pkgdesc="CLI tool for Dapr the portable, event-driven runtime to build distributed applications"
+url="https://dapr.io/"
+# 32-bit: not useful
+arch="all !x86 !armhf !armv7"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/dapr/cli/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/cli-$pkgver"
+
+build() {
+ local _goldflags="
+ -X main.version=$pkgver
+ -X main.apiVersion=$_runtimever
+ -X github.com/dapr/cli/pkg/standalone.gitversion=0000000
+ -X github.com/dapr/cli/pkg/standalone.gitcommit=AlpineLinux
+ "
+
+ go build -v -ldflags "$_goldflags" -o dapr
+
+ for shell in bash fish zsh; do
+ ./dapr completion $shell > dapr.$shell
+ done
+}
+
+check() {
+ # Avoid integration tests that require a local Docker or Kubernetes instance
+ go test ./pkg/...
+}
+
+package() {
+ install -Dm755 dapr -t "$pkgdir"/usr/bin/
+
+ install -Dm644 dapr.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/dapr
+ install -Dm644 dapr.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/dapr.fish
+ install -Dm644 dapr.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_dapr
+}
+
+sha512sums="
+766fe23d28172192a5308af13a72db9067a128a56c1658b48cd58c5cef6b458e37cbac4053798aec0fc416871da0f741c9e147aba0efb57292c86db5ad9ccd68 dapr-cli-1.12.0.tar.gz
+"
diff --git a/testing/dar/APKBUILD b/testing/dar/APKBUILD
deleted file mode 100644
index 79b5c74e0d9..00000000000
--- a/testing/dar/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Simon Rupf <simon@rupf.net>
-pkgname=dar
-pkgver=2.6.10
-pkgrel=0
-pkgdesc="Disk ARchive"
-url="http://dar.linux.free.fr/"
-arch="all"
-license="GPL-2.0-or-later"
-options="!check" # the provided "make check" requires root permissions
-makedepends="zlib-dev bzip2-dev lzo-dev xz-dev libgcrypt-dev gpgme-dev
- e2fsprogs-dev librsync-dev curl-dev gettext-dev automake
- autoconf libtool libthreadar-dev"
-subpackages="$pkgname-doc $pkgname-lang $pkgname-libs $pkgname-dev"
-source="https://downloads.sourceforge.net/dar/dar-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --disable-dar-static \
- --disable-static \
- --disable-upx
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="2fceafba6c6851c5dd11c0d1a3fda8aeddac16f39cf0051027b178703a5e821fb769c42624063d8722d80ea62bb735f3b0c6c39538c1c939234df49d6b757428 dar-2.6.10.tar.gz"
diff --git a/testing/darcs/APKBUILD b/testing/darcs/APKBUILD
new file mode 100644
index 00000000000..dd067e16355
--- /dev/null
+++ b/testing/darcs/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: gay <gay@disroot.org>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=darcs
+pkgver=2.18.2
+pkgrel=0
+pkgdesc="Patch-based revision control system"
+url="https://darcs.net/"
+arch="aarch64 x86_64" # limited by ghc
+license="GPL-2.0-or-later"
+makedepends="cabal ghc curl-dev ncurses-dev zlib-dev"
+#checkdepends="diffutils grep lighttpd musl-locales"
+options="!check" # tests relying on presence of shell utils fail without giving detailed log
+subpackages="$pkgname-doc"
+source="https://hackage.haskell.org/package/darcs-$pkgver/darcs-$pkgver.tar.gz
+ cabal.project.freeze
+ "
+
+# Directory where cabal files are stored.
+export CABAL_DIR="$srcdir/dist"
+
+# Needed to fix build on aarch64.
+export PATH="$PATH:/usr/lib/llvm15/bin"
+
+cabal_update() {
+ cd $builddir
+ cabal v2-update
+ (
+ cd "$builddir"
+ cabal v2-freeze --shadow-installed-packages
+ mv cabal.project.freeze "$startdir/"
+ )
+}
+
+prepare() {
+ default_prepare
+ ln -sf "$srcdir/cabal.project.freeze" \
+ "$builddir/cabal.project.freeze"
+}
+
+build() {
+ cabal v2-update
+ cabal v2-build darcs:exes \
+ --jobs=${JOBS:-1} \
+ --prefix=/usr \
+ --docdir=/usr/share/doc/$pkgname \
+ --sysconfdir=/etc
+}
+
+check() {
+ cabal test
+}
+
+package() {
+ cd dist-newstyle/build/*-linux/ghc-*/$pkgname-$pkgver/build/$pkgname
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 $pkgname.1 "$pkgdir"/usr/share/man/man1/$pkgname.1
+}
+
+sha512sums="
+f776b3b2efd73e9515a99bf154468aa4aef925d20c9de564a78f7a19bf302db31c6e4cdbca2c2c700a0d5cde1b62a426159554f543898712b1f603401c534a9c darcs-2.18.2.tar.gz
+b177b661b37a907db1af30e6f796a5c2f600bc8b19411b3a741b071a45ee257a2371e160ea7c1cc31b07a288f2aa9966a14318ca1c0c0eede6aa11fe81798de9 cabal.project.freeze
+"
diff --git a/testing/darcs/cabal.project.freeze b/testing/darcs/cabal.project.freeze
new file mode 100644
index 00000000000..c6677adac2a
--- /dev/null
+++ b/testing/darcs/cabal.project.freeze
@@ -0,0 +1,217 @@
+active-repositories: hackage.haskell.org:merge
+constraints: any.Cabal ==3.10.2.0,
+ any.Cabal-syntax ==3.10.2.0,
+ any.FindBin ==0.0.5,
+ any.HUnit ==1.6.2.0,
+ any.OneTuple ==0.4.1.1,
+ any.QuickCheck ==2.14.3,
+ QuickCheck -old-random +templatehaskell,
+ any.StateVar ==1.2.2,
+ any.aeson ==2.2.1.0,
+ aeson +ordered-keymap,
+ any.ansi-terminal ==1.1,
+ ansi-terminal -example,
+ any.ansi-terminal-types ==1.1,
+ any.ansi-wl-pprint ==1.0.2,
+ ansi-wl-pprint -example,
+ any.appar ==0.1.8,
+ any.array ==0.5.6.0,
+ any.asn1-encoding ==0.9.6,
+ any.asn1-parse ==0.9.5,
+ any.asn1-types ==0.3.4,
+ any.assoc ==1.1,
+ assoc +tagged,
+ any.async ==2.2.5,
+ async -bench,
+ any.attoparsec ==0.14.4,
+ attoparsec -developer,
+ any.attoparsec-aeson ==2.2.0.1,
+ any.base ==4.19.1.0,
+ any.base-orphans ==0.9.1,
+ any.base16-bytestring ==1.0.2.0,
+ any.base64-bytestring ==1.2.1.0,
+ any.basement ==0.0.16,
+ any.bifunctors ==5.6.2,
+ bifunctors +tagged,
+ any.binary ==0.8.9.1,
+ any.bitvec ==1.1.5.0,
+ bitvec +simd,
+ any.blaze-builder ==0.4.2.3,
+ any.boring ==0.2.1,
+ boring +tagged,
+ any.byteorder ==1.0.4,
+ any.bytestring ==0.12.1.0,
+ any.call-stack ==0.4.0,
+ any.case-insensitive ==1.2.1.0,
+ any.cereal ==0.5.8.3,
+ cereal -bytestring-builder,
+ any.cmdargs ==0.10.22,
+ cmdargs +quotation -testprog,
+ any.colour ==2.3.6,
+ any.comonad ==5.0.8,
+ comonad +containers +distributive +indexed-traversable,
+ any.conduit ==1.3.5,
+ any.conduit-extra ==1.3.6,
+ any.constraints ==0.14,
+ any.containers ==0.6.8,
+ any.contravariant ==1.5.5,
+ contravariant +semigroups +statevar +tagged,
+ any.cookie ==0.5.0,
+ any.crypton ==0.34,
+ crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
+ any.crypton-connection ==0.3.2,
+ any.crypton-x509 ==1.7.6,
+ any.crypton-x509-store ==1.6.9,
+ any.crypton-x509-system ==1.6.7,
+ any.crypton-x509-validation ==1.6.12,
+ any.cryptonite ==0.30,
+ cryptonite -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq -support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
+ darcs +executable -rts -static +terminfo +threaded -warn-as-error,
+ any.data-default-class ==0.1.2.0,
+ any.data-fix ==0.3.2,
+ any.data-ordlist ==0.4.7.0,
+ any.deepseq ==1.5.0.0,
+ any.digest ==0.0.2.1,
+ digest -have_arm64_crc32c -have_builtin_prefetch -have_mm_prefetch -have_sse42 -have_strong_getauxval -have_weak_getauxval -pkg-config,
+ any.directory ==1.3.8.1,
+ any.distributive ==0.6.2.1,
+ distributive +semigroups +tagged,
+ any.dlist ==1.0,
+ dlist -werror,
+ any.exceptions ==0.10.7,
+ any.extensible-exceptions ==0.1.1.4,
+ any.fgl ==5.8.2.0,
+ fgl +containers042,
+ any.filepath ==1.4.200.1,
+ any.filtrable ==0.1.6.0,
+ filtrable +containers,
+ any.generically ==0.1.1,
+ any.ghc-bignum ==1.3,
+ any.ghc-boot-th ==9.8.2,
+ any.ghc-prim ==0.11.0,
+ any.hashable ==1.4.4.0,
+ hashable +integer-gmp -random-initial-seed,
+ any.haskeline ==0.8.2.1,
+ any.hostname ==1.0,
+ any.hourglass ==0.2.12,
+ any.hsc2hs ==0.68.10,
+ hsc2hs -in-ghc-tree,
+ any.html ==1.0.1.2,
+ any.http-client ==0.7.17,
+ http-client +network-uri,
+ any.http-client-tls ==0.3.6.3,
+ any.http-conduit ==2.3.8.3,
+ http-conduit +aeson,
+ any.http-types ==0.12.4,
+ any.indexed-traversable ==0.1.3,
+ any.indexed-traversable-instances ==0.1.1.2,
+ any.integer-conversion ==0.1.0.1,
+ any.integer-gmp ==1.1,
+ any.integer-logarithms ==1.0.3.1,
+ integer-logarithms -check-bounds +integer-gmp,
+ any.iproute ==1.7.12,
+ any.leancheck ==1.0.2,
+ any.memory ==0.18.0,
+ memory +support_bytestring +support_deepseq,
+ any.mime-types ==0.1.2.0,
+ any.mmap ==0.5.9,
+ mmap -mmaptest,
+ any.monad-control ==1.0.3.1,
+ any.mono-traversable ==1.0.17.0,
+ any.mtl ==2.3.1,
+ any.network ==3.1.4.0,
+ network -devel,
+ any.network-uri ==2.6.4.2,
+ any.old-locale ==1.0.0.7,
+ any.old-time ==1.1.0.4,
+ any.os-string ==2.0.2,
+ any.parsec ==3.1.17.0,
+ any.pem ==0.2.4,
+ any.pretty ==1.1.3.6,
+ any.prettyprinter ==1.7.1,
+ prettyprinter -buildreadme +text,
+ any.prettyprinter-ansi-terminal ==1.1.3,
+ any.prettyprinter-compat-ansi-wl-pprint ==1.0.2,
+ any.primitive ==0.9.0.0,
+ any.process ==1.6.18.0,
+ any.quickcheck-instances ==0.3.30,
+ quickcheck-instances -bytestring-builder,
+ any.random ==1.2.1.2,
+ any.regex-applicative ==0.3.4,
+ any.regex-base ==0.94.0.2,
+ any.regex-posix ==0.96.0.1,
+ regex-posix -_regex-posix-clib,
+ any.regex-tdfa ==1.3.2.2,
+ regex-tdfa +doctest -force-o2,
+ any.resourcet ==1.3.0,
+ any.rts ==1.0.2,
+ any.safe ==0.3.21,
+ any.scientific ==0.3.7.0,
+ scientific -bytestring-builder -integer-simple,
+ any.semialign ==1.3,
+ semialign +semigroupoids,
+ any.semigroupoids ==6.0.0.1,
+ semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
+ any.socks ==0.6.1,
+ any.split ==0.2.5,
+ any.splitmix ==0.1.0.5,
+ splitmix -optimised-mixer,
+ any.stm ==2.5.2.1,
+ any.streaming-commons ==0.2.2.6,
+ streaming-commons -use-bytestring-builder,
+ any.strict ==0.5,
+ any.strict-identity ==0.1.0.0,
+ any.system-fileio ==0.3.16.4,
+ any.system-filepath ==0.4.14,
+ any.tagged ==0.8.8,
+ tagged +deepseq +transformers,
+ any.tar ==0.6.2.0,
+ any.template-haskell ==2.21.0.0,
+ any.temporary ==1.3,
+ any.terminal-size ==0.3.4,
+ any.terminfo ==0.4.1.6,
+ any.test-framework ==0.8.2.0,
+ any.test-framework-hunit ==0.3.0.2,
+ test-framework-hunit -base3 +base4,
+ any.test-framework-leancheck ==0.0.4,
+ any.test-framework-quickcheck2 ==0.3.0.5,
+ any.text ==2.1.1,
+ any.text-iso8601 ==0.1,
+ any.text-short ==0.1.5,
+ text-short -asserts,
+ any.th-abstraction ==0.6.0.0,
+ any.th-compat ==0.1.5,
+ any.these ==1.2,
+ any.time ==1.12.2,
+ any.time-compat ==1.9.6.1,
+ time-compat -old-locale,
+ any.tls ==1.9.0,
+ tls +compat -hans +network,
+ any.transformers ==0.6.1.0,
+ any.transformers-base ==0.4.6,
+ transformers-base +orphaninstances,
+ any.transformers-compat ==0.7.2,
+ transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
+ any.type-equality ==1,
+ any.typed-process ==0.2.11.1,
+ any.unix ==2.8.4.0,
+ any.unix-compat ==0.7.1,
+ unix-compat -old-time,
+ any.unix-time ==0.4.12,
+ any.unliftio-core ==0.2.1.0,
+ any.unordered-containers ==0.2.20,
+ unordered-containers -debug,
+ any.utf8-string ==1.0.2,
+ any.uuid-types ==1.0.5.1,
+ any.vector ==0.13.1.0,
+ vector +boundschecks -internalchecks -unsafechecks -wall,
+ any.vector-algorithms ==0.9.0.1,
+ vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks,
+ any.vector-stream ==0.1.0.1,
+ any.witherable ==0.4.2,
+ any.xml ==1.3.14,
+ any.zip-archive ==0.4.3.2,
+ zip-archive -executable,
+ any.zlib ==0.7.0.0,
+ zlib -bundled-c-zlib +non-blocking-ffi -pkg-config
+index-state: hackage.haskell.org 2024-04-12T15:34:42Z
diff --git a/testing/dart-sass/APKBUILD b/testing/dart-sass/APKBUILD
new file mode 100644
index 00000000000..84f37119774
--- /dev/null
+++ b/testing/dart-sass/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=dart-sass
+pkgver=1.75.0
+pkgrel=0
+pkgdesc="The primary implementation of Sass"
+url="https://sass-lang.com/dart-sass"
+# armv7: no buf
+arch="aarch64 x86_64" # dart
+license="MIT"
+depends="dartaotruntime"
+makedepends="
+ buf
+ dart-sdk
+ "
+_protocol_ver=2.6.0
+source="
+ https://github.com/sass/dart-sass/archive/refs/tags/$pkgver/dart-sass-$pkgver.tar.gz
+ https://github.com/sass/sass/archive/refs/tags/embedded-protocol-$_protocol_ver.tar.gz
+ sass
+
+ lock.patch
+ "
+builddir="$srcdir/dart-sass-$pkgver/"
+
+prepare() {
+ mkdir build
+ mv "$srcdir/sass-embedded-protocol-$_protocol_ver" build/language
+
+ default_prepare
+
+ dart pub get --enforce-lockfile
+}
+
+build() {
+ UPDATE_SASS_SASS_REPO=false \
+ dart run grinder protobuf
+ dart compile aot-snapshot -Dversion="$pkgver" ./bin/sass.dart
+}
+
+check() {
+ # sanity
+ dartaotruntime ./bin/sass.aot --version
+}
+
+package() {
+ install -Dm644 ./bin/sass.aot "$pkgdir"/usr/lib/dart-sass/sass.aot
+ install -Dm755 "$srcdir"/sass "$pkgdir"/usr/bin/sass
+}
+
+sha512sums="
+63989e547e21de730781ea1207596c2318e4df86d63f2ed39186a370c95dfcc31a92b507746bafc4ef3cf8f72b5cfda77eba7ee40b62663b7aa0a92a814536bb dart-sass-1.75.0.tar.gz
+0735d97d5fab04353d3bd82b765572481b3c04b263963f25511990e6be3c6b424ef86131d3f1cf1069bb8ed7b4f14db635fa9f4b9b44d0497274b9cacf6ca60f embedded-protocol-2.6.0.tar.gz
+e974b32f3ca9155868282c2259f693b49bd8c8b57772126efa6e29efedcf4acdb2b1359ae0cb5b0552dfd84daa0ae9273ebe90de7f66670a0a6abd75958cac6d sass
+2c1aebfe586fc8388ab176daadd2ce245a41ef45e1eeade8f8f6438115ba3933a77b8da460eaeb7a31c2e4c32524bb9a7c1dacbbdb188ecde3d11c0c27bada29 lock.patch
+"
diff --git a/testing/dart-sass/lock.patch b/testing/dart-sass/lock.patch
new file mode 100644
index 00000000000..f3bb6327a9c
--- /dev/null
+++ b/testing/dart-sass/lock.patch
@@ -0,0 +1,672 @@
+--- /dev/null
++++ ./pubspec.lock
+@@ -0,0 +1,669 @@
++# Generated by pub
++# See https://dart.dev/tools/pub/glossary#lockfile
++packages:
++ _fe_analyzer_shared:
++ dependency: transitive
++ description:
++ name: _fe_analyzer_shared
++ sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
++ url: "https://pub.dev"
++ source: hosted
++ version: "67.0.0"
++ analyzer:
++ dependency: "direct dev"
++ description:
++ name: analyzer
++ sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
++ url: "https://pub.dev"
++ source: hosted
++ version: "6.4.1"
++ archive:
++ dependency: "direct dev"
++ description:
++ name: archive
++ sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.4.10"
++ args:
++ dependency: "direct main"
++ description:
++ name: args
++ sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.4.2"
++ async:
++ dependency: "direct main"
++ description:
++ name: async
++ sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.11.0"
++ boolean_selector:
++ dependency: transitive
++ description:
++ name: boolean_selector
++ sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.1"
++ charcode:
++ dependency: "direct main"
++ description:
++ name: charcode
++ sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.3.1"
++ checked_yaml:
++ dependency: transitive
++ description:
++ name: checked_yaml
++ sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.0.3"
++ cli_pkg:
++ dependency: "direct main"
++ description:
++ name: cli_pkg
++ sha256: f812467b5d6a5f26ad0fba5dcfc95133df02edbae47dfa4ade3df5d2b5afdcf2
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.10.0"
++ cli_repl:
++ dependency: "direct main"
++ description:
++ name: cli_repl
++ sha256: a2ee06d98f211cb960c777519cb3d14e882acd90fe5e078668e3ab4baab0ddd4
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.2.3"
++ cli_util:
++ dependency: "direct dev"
++ description:
++ name: cli_util
++ sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.4.1"
++ collection:
++ dependency: "direct main"
++ description:
++ name: collection
++ sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.18.0"
++ convert:
++ dependency: transitive
++ description:
++ name: convert
++ sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.1.1"
++ coverage:
++ dependency: transitive
++ description:
++ name: coverage
++ sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.7.2"
++ crypto:
++ dependency: "direct dev"
++ description:
++ name: crypto
++ sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.0.3"
++ csslib:
++ dependency: transitive
++ description:
++ name: csslib
++ sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.0.0"
++ dart_mappable:
++ dependency: transitive
++ description:
++ name: dart_mappable
++ sha256: f9f272f2af6c11adf4abc22574eb946df110251052a0d00c03519ecf2442defc
++ url: "https://pub.dev"
++ source: hosted
++ version: "4.2.1"
++ dart_style:
++ dependency: "direct dev"
++ description:
++ name: dart_style
++ sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.3.6"
++ dartdoc:
++ dependency: "direct dev"
++ description:
++ name: dartdoc
++ sha256: "09c07e4b5313a301f8a6fe5a3b43d2dd7fd2b0817d51d563f7dcacdac62ecf68"
++ url: "https://pub.dev"
++ source: hosted
++ version: "8.0.7"
++ ffi:
++ dependency: transitive
++ description:
++ name: ffi
++ sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.2"
++ file:
++ dependency: transitive
++ description:
++ name: file
++ sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
++ url: "https://pub.dev"
++ source: hosted
++ version: "7.0.0"
++ fixnum:
++ dependency: transitive
++ description:
++ name: fixnum
++ sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.1.0"
++ frontend_server_client:
++ dependency: transitive
++ description:
++ name: frontend_server_client
++ sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.2.0"
++ glob:
++ dependency: transitive
++ description:
++ name: glob
++ sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.2"
++ grinder:
++ dependency: "direct dev"
++ description:
++ name: grinder
++ sha256: e1996e485d2b56bb164a8585679758d488fbf567273f51c432c8733fee1f6188
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.9.5"
++ html:
++ dependency: transitive
++ description:
++ name: html
++ sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.15.4"
++ http:
++ dependency: "direct main"
++ description:
++ name: http
++ sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.2.1"
++ http_multi_server:
++ dependency: transitive
++ description:
++ name: http_multi_server
++ sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.2.1"
++ http_parser:
++ dependency: transitive
++ description:
++ name: http_parser
++ sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
++ url: "https://pub.dev"
++ source: hosted
++ version: "4.0.2"
++ io:
++ dependency: transitive
++ description:
++ name: io
++ sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.0.4"
++ js:
++ dependency: "direct main"
++ description:
++ name: js
++ sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.6.7"
++ json_annotation:
++ dependency: transitive
++ description:
++ name: json_annotation
++ sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
++ url: "https://pub.dev"
++ source: hosted
++ version: "4.8.1"
++ lints:
++ dependency: "direct dev"
++ description:
++ name: lints
++ sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.0.0"
++ logging:
++ dependency: transitive
++ description:
++ name: logging
++ sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.2.0"
++ markdown:
++ dependency: transitive
++ description:
++ name: markdown
++ sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051
++ url: "https://pub.dev"
++ source: hosted
++ version: "7.2.2"
++ matcher:
++ dependency: transitive
++ description:
++ name: matcher
++ sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.12.16+1"
++ meta:
++ dependency: "direct main"
++ description:
++ name: meta
++ sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.12.0"
++ mime:
++ dependency: transitive
++ description:
++ name: mime
++ sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.0.5"
++ native_stack_traces:
++ dependency: transitive
++ description:
++ name: native_stack_traces
++ sha256: c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.5.6"
++ native_synchronization:
++ dependency: "direct main"
++ description:
++ name: native_synchronization
++ sha256: ff200fe0a64d733ff7d4dde2005271c297db81007604c8cd21037959858133ab
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.2.0"
++ node_interop:
++ dependency: "direct main"
++ description:
++ name: node_interop
++ sha256: "3af2420c728173806f4378cf89c53ba9f27f7f67792b898561bff9d390deb98e"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.0"
++ node_preamble:
++ dependency: "direct dev"
++ description:
++ name: node_preamble
++ sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.0.2"
++ oauth2:
++ dependency: transitive
++ description:
++ name: oauth2
++ sha256: c4013ef62be37744efdc0861878fd9e9285f34db1f9e331cc34100d7674feb42
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.0.2"
++ package_config:
++ dependency: "direct main"
++ description:
++ name: package_config
++ sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.0"
++ path:
++ dependency: "direct main"
++ description:
++ name: path
++ sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.9.0"
++ petitparser:
++ dependency: transitive
++ description:
++ name: petitparser
++ sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
++ url: "https://pub.dev"
++ source: hosted
++ version: "6.0.2"
++ pointycastle:
++ dependency: transitive
++ description:
++ name: pointycastle
++ sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.7.4"
++ pool:
++ dependency: "direct main"
++ description:
++ name: pool
++ sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.5.1"
++ protobuf:
++ dependency: "direct main"
++ description:
++ name: protobuf
++ sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.1.0"
++ protoc_plugin:
++ dependency: "direct dev"
++ description:
++ name: protoc_plugin
++ sha256: fb0554851c9eca30bd18405fbbfe81e39166d4a2f0e5b770606fd69da3da0b2f
++ url: "https://pub.dev"
++ source: hosted
++ version: "21.1.2"
++ pub_api_client:
++ dependency: "direct dev"
++ description:
++ name: pub_api_client
++ sha256: cc3d2c93df3823553de6a3e7d3ac09a3f43f8c271af4f43c2795266090ac9625
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.7.0"
++ pub_semver:
++ dependency: "direct main"
++ description:
++ name: pub_semver
++ sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.4"
++ pubspec:
++ dependency: transitive
++ description:
++ name: pubspec
++ sha256: f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.3.0"
++ pubspec_parse:
++ dependency: "direct dev"
++ description:
++ name: pubspec_parse
++ sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.2.3"
++ quiver:
++ dependency: transitive
++ description:
++ name: quiver
++ sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.2.1"
++ retry:
++ dependency: transitive
++ description:
++ name: retry
++ sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.1.2"
++ shelf:
++ dependency: transitive
++ description:
++ name: shelf
++ sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.4.1"
++ shelf_packages_handler:
++ dependency: transitive
++ description:
++ name: shelf_packages_handler
++ sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.0.2"
++ shelf_static:
++ dependency: transitive
++ description:
++ name: shelf_static
++ sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.1.2"
++ shelf_web_socket:
++ dependency: transitive
++ description:
++ name: shelf_web_socket
++ sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.0.4"
++ source_map_stack_trace:
++ dependency: transitive
++ description:
++ name: source_map_stack_trace
++ sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.1"
++ source_maps:
++ dependency: "direct main"
++ description:
++ name: source_maps
++ sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703"
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.10.12"
++ source_span:
++ dependency: "direct main"
++ description:
++ name: source_span
++ sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.10.0"
++ stack_trace:
++ dependency: "direct main"
++ description:
++ name: stack_trace
++ sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.11.1"
++ stream_channel:
++ dependency: "direct main"
++ description:
++ name: stream_channel
++ sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.2"
++ stream_transform:
++ dependency: "direct main"
++ description:
++ name: stream_transform
++ sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.0"
++ string_scanner:
++ dependency: "direct main"
++ description:
++ name: string_scanner
++ sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.2.0"
++ term_glyph:
++ dependency: "direct main"
++ description:
++ name: term_glyph
++ sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.2.1"
++ test:
++ dependency: "direct dev"
++ description:
++ name: test
++ sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.25.2"
++ test_api:
++ dependency: transitive
++ description:
++ name: test_api
++ sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.7.0"
++ test_core:
++ dependency: transitive
++ description:
++ name: test_core
++ sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4"
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.6.0"
++ test_descriptor:
++ dependency: "direct dev"
++ description:
++ name: test_descriptor
++ sha256: abe245e8b0d61245684127fe32343542c25dc2a1ce8f405531637241d98d07e4
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.0.1"
++ test_process:
++ dependency: "direct dev"
++ description:
++ name: test_process
++ sha256: "217f19b538926e4922bdb2a01410100ec4e3beb4cc48eae5ae6b20037b07bbd6"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.0"
++ type_plus:
++ dependency: transitive
++ description:
++ name: type_plus
++ sha256: "2e33cfac2e129297d5874567bdf7587502ec359881e9318551e014d91b02f84a"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.1.0"
++ typed_data:
++ dependency: "direct main"
++ description:
++ name: typed_data
++ sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.3.2"
++ uri:
++ dependency: transitive
++ description:
++ name: uri
++ sha256: "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.0.0"
++ vm_service:
++ dependency: transitive
++ description:
++ name: vm_service
++ sha256: e7d5ecd604e499358c5fe35ee828c0298a320d54455e791e9dcf73486bc8d9f0
++ url: "https://pub.dev"
++ source: hosted
++ version: "14.1.0"
++ watcher:
++ dependency: "direct main"
++ description:
++ name: watcher
++ sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.1.0"
++ web:
++ dependency: transitive
++ description:
++ name: web
++ sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
++ url: "https://pub.dev"
++ source: hosted
++ version: "0.5.1"
++ web_socket_channel:
++ dependency: transitive
++ description:
++ name: web_socket_channel
++ sha256: "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2"
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.4.4"
++ webkit_inspection_protocol:
++ dependency: transitive
++ description:
++ name: webkit_inspection_protocol
++ sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
++ url: "https://pub.dev"
++ source: hosted
++ version: "1.2.1"
++ xml:
++ dependency: transitive
++ description:
++ name: xml
++ sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
++ url: "https://pub.dev"
++ source: hosted
++ version: "6.5.0"
++ yaml:
++ dependency: "direct dev"
++ description:
++ name: yaml
++ sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
++ url: "https://pub.dev"
++ source: hosted
++ version: "3.1.2"
++sdks:
++ dart: ">=3.3.0 <4.0.0"
diff --git a/testing/dart-sass/sass b/testing/dart-sass/sass
new file mode 100644
index 00000000000..1d0a5443fb3
--- /dev/null
+++ b/testing/dart-sass/sass
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec dartaotruntime /usr/lib/dart-sass/sass.aot "$@"
diff --git a/testing/dart-stage0/APKBUILD b/testing/dart-stage0/APKBUILD
new file mode 100644
index 00000000000..69a2e0e888a
--- /dev/null
+++ b/testing/dart-stage0/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=dart-stage0
+# upgrade checklist: https://md.sdomi.pl/Q-ECZTJ2Qqyp3ahfJuYSBw
+pkgver=3.2.0_alpha150_p0
+pkgrel=0
+pkgdesc="Dart is a client-optimized language for fast apps on any platform (temporary bootstrap package)"
+url="https://dart.dev/"
+arch="aarch64 armv7 riscv64 x86_64"
+license="BSD-3-Clause"
+options="!check"
+
+_canonver="${pkgver/_p/.}"
+case "$pkgver" in
+ *.*.*_alpha*)
+ _canonver="${_canonver/_alpha/-}.dev"
+ ;;
+ *.*.*_beta*)
+ _canonver="${_canonver/_beta/-}.beta"
+ ;;
+esac
+
+source="
+ dart-musl-stage0-x64-$_canonver.tar.gz.noauto::https://github.com/dart-musl/dart/releases/download/$_canonver/dartsdk-linux-x64-release.tar.gz
+ dart-musl-stage0-arm-$_canonver.tar.gz.noauto::https://github.com/dart-musl/dart/releases/download/$_canonver/dartsdk-linux-arm-release.tar.gz
+ dart-musl-stage0-arm64-$_canonver.tar.gz.noauto::https://github.com/dart-musl/dart/releases/download/$_canonver/dartsdk-linux-arm64-release.tar.gz
+ dart-musl-stage0-riscv64-$_canonver.tar.gz.noauto::https://github.com/dart-musl/dart/releases/download/$_canonver/dartsdk-linux-riscv64-release.tar.gz
+"
+builddir="$srcdir/"
+
+provides="dart-bootstrap=$pkgver-r$pkgrel"
+provider_priority=42
+
+case "$CARCH" in
+ aarch64) _dart_arch="arm64" ;;
+ armv7) _dart_arch="arm" ;;
+ riscv64) _dart_arch="riscv64" ;;
+ x86_64) _dart_arch="x64" ;;
+esac
+
+build() {
+ :
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib "$pkgdir"/usr/bin "$pkgdir"/usr/include
+ (
+ cd "$pkgdir"/usr/lib
+ tar xf "$srcdir"/dart-musl-stage0-$_dart_arch-$_canonver.tar.gz.noauto
+ mv dart-sdk dart
+ )
+ ln -s ../lib/dart/bin/dart "$pkgdir"/usr/bin/dart
+ ln -s ../lib/dart/bin/dartaotruntime "$pkgdir"/usr/bin/dartaotruntime
+ ln -s ../lib/dart/include "$pkgdir"/usr/include/dart
+}
+
+sha512sums="
+6fa5e6db8764af8be4c1578823395d2dca309629a144f95ef341b4c583e1ca7380847a2043ffaa0d8a2a3fac4938a88f474d606236a8a67113b5782754654300 dart-musl-stage0-x64-3.2.0-150.0.dev.tar.gz.noauto
+024664e5096c4c692a71573a53c7f68c043083fb6fde783b8fe4912f8779ad772fbf3c3bc89ac1130e9f7ff449464482a5f2551688e21c390e9c46e39cf59f03 dart-musl-stage0-arm-3.2.0-150.0.dev.tar.gz.noauto
+1cef3ed441c5873aec489edb72bc57a0e5653eb9965de277b631e2e5ef1f84b9b129a4fbc754e57047675b84eddb5fd1efb96561f534e006fb33eaeb62deaf4c dart-musl-stage0-arm64-3.2.0-150.0.dev.tar.gz.noauto
+7e2901498a4ea177bc7f54d9fd8f01ce2f29ee497fcf7e3fee9b7fc19c226b6ebdab11b555c90d9765022d3439256f37aa9f134af3138fa16d861d8f1ca0645a dart-musl-stage0-riscv64-3.2.0-150.0.dev.tar.gz.noauto
+"
diff --git a/testing/dart/APKBUILD b/testing/dart/APKBUILD
new file mode 100644
index 00000000000..66ad847e37a
--- /dev/null
+++ b/testing/dart/APKBUILD
@@ -0,0 +1,237 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=dart
+# upgrade checklist: https://md.sdomi.pl/Q-ECZTJ2Qqyp3ahfJuYSBw
+pkgver=3.3.2
+pkgrel=0
+_bootstrap=3.2.0_alpha150_p0
+pkgdesc="Dart is a client-optimized language for fast apps on any platform"
+url="https://dart.dev/"
+arch="aarch64 armv7 x86_64"
+license="BSD-3-Clause"
+makedepends="
+ curl
+ dart-bootstrap=>$_bootstrap
+ gn
+ icu-dev
+ lld
+ llvm
+ python3
+ ripgrep
+ samurai
+ zlib-dev
+ zstd
+ "
+subpackages="$pkgname-sdk dartaotruntime"
+
+case "$pkgver" in
+ *.*.*_pre*)
+ _canonver="${pkgver/_pre/-}"
+ _canonver="${_canonver/-r/.}.dev"
+ ;;
+ *.*.*_beta*)
+ _canonver="${pkgver/_beta/-}"
+ _canonver="${_canonver/-r/.}.beta"
+ ;;
+ *.*.*)
+ _canonver="$pkgver"
+ ;;
+esac
+
+source="
+ https://ab-sn.lnl.gay/dart-sdk-$_canonver.tar.zst
+
+ build-config.patch
+ gcc13.patch
+ no-werror.patch
+ unbundle.patch
+ where-we-are-heading-prefixes-are-not-needed.patch
+ "
+builddir="$srcdir/dart-sdk-$_canonver"
+
+# gclient comes from teapot-tools
+_distbucket="sakamoto/lnl-aports-snapshots/"
+snapshot() {
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ echo "
+solutions = [{
+ 'name': 'sdk',
+ 'url': 'https://dart.googlesource.com/sdk.git@$_canonver',
+}]
+target_cpu = ['x64', 'arm64', 'arm', 'riscv64']
+target_cpu_only = True
+" > .gclient
+
+ gclient sync --no-history --nohooks --tpot-cipd-ignore-platformed
+
+ for elf in $(scanelf -RA -F "%F" sdk); do
+ rm -f "$elf"
+ done
+
+ mv sdk dart-sdk-$_canonver
+
+ msg "generating tarball.."
+ tar -cf dart-sdk-$_canonver.tar \
+ --exclude="ChangeLog*" \
+ --exclude="sdk/buildtools/*/clang" \
+ --exclude="third_party/fuchsia/sdk/linux/arch" \
+ --exclude=".build-id" \
+ --exclude-backups \
+ --exclude-caches-all \
+ --exclude-vcs \
+ dart-sdk-$_canonver
+
+ zstd --auto-threads=logical --ultra --long -22 -T0 -vv dart-sdk-$_canonver.tar -o "$SRCDEST"/dart-sdk-$_canonver.tar.zst
+ mcli cp "$SRCDEST"/dart-sdk-$_canonver.tar.zst "$_distbucket"
+}
+
+case "$CARCH" in
+ aarch64)
+ _arch="arm64"
+ _out="$builddir/out/ReleaseARM64"
+ ;;
+ armv7)
+ _arch="arm"
+ _out="$builddir/out/ReleaseARM"
+ ;;
+ riscv64)
+ _arch="riscv64"
+ _out="$builddir/out/ReleaseRISCV64"
+ ;;
+ x86_64)
+ _arch="x64"
+ _out="$builddir/out/ReleaseX64"
+ ;;
+esac
+
+prepare() {
+ default_prepare
+
+ mkdir -p .git/logs
+ echo '' > .git/logs/HEAD
+
+ # bind bootstrapped interpreter
+ rm -rf tools/sdks/dart-sdk
+ ln -s /usr/lib/dart tools/sdks/dart-sdk
+
+ ln -s /usr/bin/gn buildtools/gn
+ mkdir -p buildtools/ninja
+ ln -s /usr/bin/samu buildtools/ninja/ninja
+
+ # gclient hooks
+ python3 tools/generate_package_config.py
+ python3 tools/generate_sdk_version_file.py
+
+ # google analytics, doubleclick
+ echo '' > tools/bots/dartdoc_footer.html
+ rm third_party/devtools/web/devtools_analytics.js
+
+ # disarm analytics for sure
+ rg --no-ignore -l 'google-analytics\.com' . \
+ | rg -v "\.map\$" \
+ | xargs -t -n 1 -P ${JOBS:-2} sed -i -E 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g'
+ rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \
+ | xargs -t -n 1 -P ${JOBS:-2} sed -i -E 's|UA-[0-9]+-[0-9]+|UA-2137-0|g'
+
+ sed -i 's/Unknown timestamp/'"$(date -uIm)"'/' tools/make_version.py
+
+ # reusable system library settings
+ local use_system="
+ icu
+ zlib
+ "
+ for _lib in $use_system; do
+ msg "Removing buildscripts for system provided $_lib"
+ find . -type f -path "*third_party/$_lib/*" \
+ \! -path "*third_party/$_lib/chromium/*" \
+ \! -path "*third_party/$_lib/google/*" \
+ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+ -delete
+ done
+ msg "Replacing gn files"
+ python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+ $use_system
+}
+
+build() {
+ # shellcheck disable=2089
+ local gn_args="
+ create_kernel_service_snapshot=true
+ dart_snapshot_kind=\"app-jit\"
+ dart_sysroot=\"\"
+ dart_use_tcmalloc=false
+ "
+
+ msg "Building"
+ # shellcheck disable=2116,2090
+ python3 ./tools/build.py \
+ --no-clang \
+ --arch="$_arch" \
+ --mode=release \
+ --no-goma \
+ --no-verify-sdk-hash \
+ --gn-args="$(echo $gn_args)" \
+ create_sdk runtime
+}
+
+check() {
+ # check sanity
+ "$_out"/dart-sdk/bin/dart --version
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/lib "$pkgdir"/usr/include
+
+ cp -r "$_out"/dart-sdk "$pkgdir"/usr/lib/dart
+
+ ln -s ../lib/dart/include "$pkgdir"/usr/include/dart
+ ln -s ../lib/dart/bin/dart "$pkgdir"/usr/bin/dart
+ ln -s ../lib/dart/bin/dartaotruntime "$pkgdir"/usr/bin/dartaotruntime
+
+ find "$pkgdir"/usr/lib/dart/bin/resources/devtools -type f -exec chmod 644 {} \;
+}
+
+dartaotruntime() {
+ amove usr/bin/dartaotruntime
+ amove usr/lib/dart/bin/dartaotruntime
+}
+
+sdk() {
+ # do the stuff -dev does by default here
+ default_dev
+
+ # must be set after default_dev or gets cleared
+ depends="dart=$pkgver-r$pkgrel dartaotruntime=$pkgver-r$pkgrel"
+ provides="dart-bootstrap=$pkgver-r$pkgrel dart-devtools=$pkgver-r$pkgrel"
+ provider_priority=100
+
+ _snapshots="
+ analysis_server
+ dart2js
+ dartdevc
+ dds_aot
+ frontend_server
+ gen_kernel_aot
+ kernel-service
+ kernel_worker
+ "
+ for snap in $_snapshots; do
+ amove usr/lib/dart/bin/snapshots/$snap.dart.snapshot
+ done
+ amove usr/lib/dart/bin/resources/dartdoc
+ amove usr/lib/dart/bin/resources/devtools
+ amove usr/lib/dart/bin/snapshots/dart2wasm_product.snapshot
+ amove usr/lib/dart/bin/utils
+ amove usr/lib/dart/lib
+}
+
+sha512sums="
+f5521b4f779b9e657e351734af0a845cfa83fada99a65896d812643ed80467892c6bb4127d687f5ac6e684e7efd1c7eaf41dfed696dd69486897b29a6c9a9b42 dart-sdk-3.3.2.tar.zst
+3ae8364a172b029cf0b45cd4fd1ac192a20772c84924bb59a1775339ed6314cf81c398b078823fd9f07abc1b0de4b5704c76ce84c64f8924e645f00cfcda4ff3 build-config.patch
+03562a3fa935b6819458acdfcadf24f71accf73e2000d158c1fe41aca068b21fb158350a32911c322672b592beefea1e9c7e4675a98418804e60000049a656c8 gcc13.patch
+e7f5c715d9ed01c36e8b60892332b1bc763a3f98ca87905e2102491c469db60ab21dba9b3e116e1a7ec3faef7d65b8fdd60d7148cfb848ef5a2b411a06f425cf no-werror.patch
+14b6b024688110631dfce6d51b895e84d4306a00e66c0e5306126f6d27cbd13894bf2c50faffab99e57107901ec3977a4b0038bee9e165f733ef9e4ccc14af1a unbundle.patch
+641909211afa784d06c864777f04afc619fa669bbd4be30343feb67ed3c7c797f48eac22821a70f18c098d1c04206bd44c3b88aaf2e9bf0c3938ba58578f1f15 where-we-are-heading-prefixes-are-not-needed.patch
+"
diff --git a/testing/dart/build-config.patch b/testing/dart/build-config.patch
new file mode 100644
index 00000000000..94775ab18c7
--- /dev/null
+++ b/testing/dart/build-config.patch
@@ -0,0 +1,20 @@
+--- ./build/config/linux/BUILD.gn.orig
++++ ./build/config/linux/BUILD.gn
+@@ -13,14 +13,9 @@
+ ldflags += [ "-Wl,--exclude-libs=libc++.a" ]
+ }
+
+- # Explicitly use static linking for libstdc++ and libgcc to minimize
+- # dependencies.
+- if (!use_flutter_cxx) {
+- ldflags += [
+- "-static-libgcc",
+- "-static-libstdc++",
+- ]
+- }
++ ldflags += [ "-L/lib", "-fuse-ld=lld" ]
++ ldflags += string_split(getenv("LDFLAGS"), " ")
++ cflags += string_split(getenv("CFLAGS"), " ")
+
+ if (sysroot != "") {
+ cflags += [ "--sysroot=" + sysroot ]
diff --git a/testing/dart/gcc13.patch b/testing/dart/gcc13.patch
new file mode 100644
index 00000000000..e7ac784fa60
--- /dev/null
+++ b/testing/dart/gcc13.patch
@@ -0,0 +1,20 @@
+--- a/runtime/bin/ffi_test/ffi_test_functions_generated.cc
++++ b/runtime/bin/ffi_test/ffi_test_functions_generated.cc
+@@ -11,6 +11,7 @@
+ #include <sys/types.h>
+
+ #include <cmath>
++#include <cstdint>
+ #include <iostream>
+ #include <limits>
+
+--- a/runtime/bin/ffi_test/ffi_test_functions.cc
++++ b/runtime/bin/ffi_test/ffi_test_functions.cc
+@@ -13,6 +13,7 @@
+ #include <sys/types.h>
+
+ #include <cmath>
++#include <cstdint>
+ #include <iostream>
+ #include <limits>
+
diff --git a/testing/dart/no-werror.patch b/testing/dart/no-werror.patch
new file mode 100644
index 00000000000..92dbce7dad4
--- /dev/null
+++ b/testing/dart/no-werror.patch
@@ -0,0 +1,13 @@
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -672,10 +672,6 @@
+ "-Wextra",
+ ]
+
+- if (dart_sysroot != "alpine") {
+- cflags += [ "-Werror" ]
+- }
+-
+ defines = []
+ if (!using_sanitizer && !is_clang) {
+ # _FORTIFY_SOURCE isn't really supported by Clang now, see
diff --git a/testing/dart/unbundle.patch b/testing/dart/unbundle.patch
new file mode 100644
index 00000000000..c115ae90169
--- /dev/null
+++ b/testing/dart/unbundle.patch
@@ -0,0 +1,439 @@
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+new file mode 100644
+index 00000000000..9e54d4efe4e
+--- /dev/null
++++ b/build/linux/unbundle/icu.gn
+@@ -0,0 +1,262 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++group("icu") {
++ public_deps = [
++ ":icui18n",
++ ":icuuc",
++ ]
++}
++
++config("icu_config") {
++ defines = [
++ "USING_SYSTEM_ICU=1",
++ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
++
++ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
++ # on classes through the U_COMMON_API and U_I18N_API macros (among others).
++ # When linking against the system ICU library, we want its symbols to have
++ # public LTO visibility. This disables CFI checks for the ICU classes and
++ # allows whole-program optimization to be applied to the rest of Chromium.
++ #
++ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only
++ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because
++ # we override the default system UCHAR_TYPE (char16_t), it is not possible
++ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API
++ # and U_I18N_API macros are set to U_IMPORT which is an empty definition.
++ #
++ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply
++ # public visibility (and thus public LTO visibility) to all ICU classes is
++ # to define U_IMPORT to have the same value as U_EXPORT. For more details,
++ # please see: https://crbug.com/822820
++ "U_IMPORT=U_EXPORT",
++ ]
++}
++
++pkg_config("system_icui18n") {
++ packages = [ "icu-i18n" ]
++}
++
++pkg_config("system_icuuc") {
++ packages = [ "icu-uc" ]
++}
++
++source_set("icui18n") {
++ public_deps = [ ":icui18n_shim" ]
++ public_configs = [
++ ":icu_config",
++ ":system_icui18n",
++ ]
++}
++
++source_set("icuuc") {
++ public_deps = [ ":icuuc_shim" ]
++ public_configs = [
++ ":icu_config",
++ ":system_icuuc",
++ ]
++}
++
++group("icui18n_hidden_visibility") {
++ public_deps = [ ":icui18n" ]
++}
++
++group("icuuc_hidden_visibility") {
++ public_deps = [ ":icuuc" ]
++}
++
++shim_headers("icui18n_shim") {
++ root_path = "source/i18n"
++ headers = [
++ # This list can easily be updated using the commands below:
++ # cd third_party/icu/source/i18n
++ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u
++ "unicode/alphaindex.h",
++ "unicode/basictz.h",
++ "unicode/calendar.h",
++ "unicode/choicfmt.h",
++ "unicode/coleitr.h",
++ "unicode/coll.h",
++ "unicode/compactdecimalformat.h",
++ "unicode/curramt.h",
++ "unicode/currpinf.h",
++ "unicode/currunit.h",
++ "unicode/datefmt.h",
++ "unicode/dcfmtsym.h",
++ "unicode/decimfmt.h",
++ "unicode/dtfmtsym.h",
++ "unicode/dtitvfmt.h",
++ "unicode/dtitvinf.h",
++ "unicode/dtptngen.h",
++ "unicode/dtrule.h",
++ "unicode/fieldpos.h",
++ "unicode/fmtable.h",
++ "unicode/format.h",
++ "unicode/fpositer.h",
++ "unicode/gender.h",
++ "unicode/gregocal.h",
++ "unicode/listformatter.h",
++ "unicode/measfmt.h",
++ "unicode/measunit.h",
++ "unicode/measure.h",
++ "unicode/msgfmt.h",
++ "unicode/numfmt.h",
++ "unicode/numsys.h",
++ "unicode/plurfmt.h",
++ "unicode/plurrule.h",
++ "unicode/rbnf.h",
++ "unicode/rbtz.h",
++ "unicode/regex.h",
++ "unicode/region.h",
++ "unicode/reldatefmt.h",
++ "unicode/scientificnumberformatter.h",
++ "unicode/search.h",
++ "unicode/selfmt.h",
++ "unicode/simpletz.h",
++ "unicode/smpdtfmt.h",
++ "unicode/sortkey.h",
++ "unicode/stsearch.h",
++ "unicode/tblcoll.h",
++ "unicode/timezone.h",
++ "unicode/tmunit.h",
++ "unicode/tmutamt.h",
++ "unicode/tmutfmt.h",
++ "unicode/translit.h",
++ "unicode/tzfmt.h",
++ "unicode/tznames.h",
++ "unicode/tzrule.h",
++ "unicode/tztrans.h",
++ "unicode/ucal.h",
++ "unicode/ucol.h",
++ "unicode/ucoleitr.h",
++ "unicode/ucsdet.h",
++ "unicode/udat.h",
++ "unicode/udateintervalformat.h",
++ "unicode/udatpg.h",
++ "unicode/ufieldpositer.h",
++ "unicode/uformattable.h",
++ "unicode/ugender.h",
++ "unicode/ulocdata.h",
++ "unicode/umsg.h",
++ "unicode/unirepl.h",
++ "unicode/unum.h",
++ "unicode/unumsys.h",
++ "unicode/upluralrules.h",
++ "unicode/uregex.h",
++ "unicode/uregion.h",
++ "unicode/ureldatefmt.h",
++ "unicode/usearch.h",
++ "unicode/uspoof.h",
++ "unicode/utmscale.h",
++ "unicode/utrans.h",
++ "unicode/vtzone.h",
++ ]
++}
++
++shim_headers("icuuc_shim") {
++ root_path = "source/common"
++ headers = [
++ # This list can easily be updated using the commands below:
++ # cd third_party/icu/source/common
++ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u
++ "unicode/appendable.h",
++ "unicode/brkiter.h",
++ "unicode/bytestream.h",
++ "unicode/bytestrie.h",
++ "unicode/bytestriebuilder.h",
++ "unicode/caniter.h",
++ "unicode/casemap.h",
++ "unicode/char16ptr.h",
++ "unicode/chariter.h",
++ "unicode/dbbi.h",
++ "unicode/docmain.h",
++ "unicode/dtintrv.h",
++ "unicode/edits.h",
++ "unicode/enumset.h",
++ "unicode/errorcode.h",
++ "unicode/filteredbrk.h",
++ "unicode/icudataver.h",
++ "unicode/icuplug.h",
++ "unicode/idna.h",
++ "unicode/localematcher.h",
++ "unicode/localpointer.h",
++ "unicode/locdspnm.h",
++ "unicode/locid.h",
++ "unicode/messagepattern.h",
++ "unicode/normalizer2.h",
++ "unicode/normlzr.h",
++ "unicode/parseerr.h",
++ "unicode/parsepos.h",
++ "unicode/platform.h",
++ "unicode/ptypes.h",
++ "unicode/putil.h",
++ "unicode/rbbi.h",
++ "unicode/rep.h",
++ "unicode/resbund.h",
++ "unicode/schriter.h",
++ "unicode/simpleformatter.h",
++ "unicode/std_string.h",
++ "unicode/strenum.h",
++ "unicode/stringpiece.h",
++ "unicode/stringtriebuilder.h",
++ "unicode/symtable.h",
++ "unicode/ubidi.h",
++ "unicode/ubiditransform.h",
++ "unicode/ubrk.h",
++ "unicode/ucasemap.h",
++ "unicode/ucat.h",
++ "unicode/uchar.h",
++ "unicode/ucharstrie.h",
++ "unicode/ucharstriebuilder.h",
++ "unicode/uchriter.h",
++ "unicode/uclean.h",
++ "unicode/ucnv.h",
++ "unicode/ucnv_cb.h",
++ "unicode/ucnv_err.h",
++ "unicode/ucnvsel.h",
++ "unicode/uconfig.h",
++ "unicode/ucurr.h",
++ "unicode/udata.h",
++ "unicode/udisplaycontext.h",
++ "unicode/uenum.h",
++ "unicode/uidna.h",
++ "unicode/uiter.h",
++ "unicode/uldnames.h",
++ "unicode/ulistformatter.h",
++ "unicode/uloc.h",
++ "unicode/umachine.h",
++ "unicode/umisc.h",
++ "unicode/unifilt.h",
++ "unicode/unifunct.h",
++ "unicode/unimatch.h",
++ "unicode/uniset.h",
++ "unicode/unistr.h",
++ "unicode/unorm.h",
++ "unicode/unorm2.h",
++ "unicode/uobject.h",
++ "unicode/urename.h",
++ "unicode/urep.h",
++ "unicode/ures.h",
++ "unicode/uscript.h",
++ "unicode/uset.h",
++ "unicode/usetiter.h",
++ "unicode/ushape.h",
++ "unicode/usprep.h",
++ "unicode/ustring.h",
++ "unicode/ustringtrie.h",
++ "unicode/utext.h",
++ "unicode/utf.h",
++ "unicode/utf16.h",
++ "unicode/utf32.h",
++ "unicode/utf8.h",
++ "unicode/utf_old.h",
++ "unicode/utrace.h",
++ "unicode/utypes.h",
++ "unicode/uvernum.h",
++ "unicode/uversion.h",
++ ]
++}
+diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py
+new file mode 100755
+index 00000000000..1aed7bca99d
+--- /dev/null
++++ b/build/linux/unbundle/replace_gn_files.py
+@@ -0,0 +1,65 @@
++#!/usr/bin/env python3
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++"""
++Replaces GN files in tree with files from here that
++make the build use system libraries.
++"""
++
++import argparse
++import os
++import shutil
++import sys
++
++
++REPLACEMENTS = {
++ 'icu': 'third_party/icu/BUILD.gn',
++ 'protobuf': 'build/secondary/third_party/protobuf/BUILD.gn',
++ 'zlib': 'third_party/zlib/BUILD.gn',
++}
++
++
++def DoMain(argv):
++ my_dirname = os.path.dirname(__file__)
++ source_tree_root = os.path.abspath(
++ os.path.join(my_dirname, '..', '..', '..'))
++
++ parser = argparse.ArgumentParser()
++ parser.add_argument('--system-libraries', nargs='*', default=[])
++ parser.add_argument('--undo', action='store_true')
++
++ args = parser.parse_args(argv)
++
++ handled_libraries = set()
++ for lib, path in REPLACEMENTS.items():
++ if lib not in args.system_libraries:
++ continue
++ handled_libraries.add(lib)
++
++ if args.undo:
++ # Restore original file, and also remove the backup.
++ # This is meant to restore the source tree to its original state.
++ os.rename(os.path.join(source_tree_root, path + '.orig'),
++ os.path.join(source_tree_root, path))
++ else:
++ # Create a backup copy for --undo.
++ shutil.copyfile(os.path.join(source_tree_root, path),
++ os.path.join(source_tree_root, path + '.orig'))
++
++ # Copy the GN file from directory of this script to target path.
++ shutil.copyfile(os.path.join(my_dirname, '%s.gn' % lib),
++ os.path.join(source_tree_root, path))
++
++ unhandled_libraries = set(args.system_libraries) - handled_libraries
++ if unhandled_libraries:
++ print('Unrecognized system libraries requested: %s' % ', '.join(
++ sorted(unhandled_libraries)), file=sys.stderr)
++ return 1
++
++ return 0
++
++
++if __name__ == '__main__':
++ sys.exit(DoMain(sys.argv[1:]))
+diff --git a/build/linux/unbundle/zlib.gn b/build/linux/unbundle/zlib.gn
+new file mode 100644
+index 00000000000..fa2bbffd25f
+--- /dev/null
++++ b/build/linux/unbundle/zlib.gn
+@@ -0,0 +1,63 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/shim_headers.gni")
++
++shim_headers("zlib_shim") {
++ root_path = "."
++ headers = [ "zlib.h" ]
++ additional_includes = [ "third_party" ]
++
++}
++
++config("system_zlib") {
++ defines = [ "USE_SYSTEM_ZLIB=1" ]
++}
++
++config("zlib_config") {
++ configs = [ ":system_zlib" ]
++}
++
++source_set("zlib") {
++ public_deps = [ ":zlib_shim" ]
++ libs = [ "z" ]
++ public_configs = [ ":system_zlib" ]
++}
++
++shim_headers("minizip_shim") {
++ root_path = "contrib"
++ headers = [
++ "minizip/crypt.h",
++ "minizip/ioapi.h",
++ "minizip/iowin32.h",
++ "minizip/mztools.h",
++ "minizip/unzip.h",
++ "minizip/zip.h",
++ ]
++}
++
++source_set("minizip") {
++ deps = [ ":minizip_shim" ]
++ libs = [ "minizip" ]
++}
++
++static_library("zip") {
++ sources = [
++ "google/zip.cc",
++ "google/zip.h",
++ "google/zip_internal.cc",
++ "google/zip_internal.h",
++ "google/zip_reader.cc",
++ "google/zip_reader.h",
++ ]
++ deps = [ ":minizip" ]
++}
++
++static_library("compression_utils") {
++ sources = [
++ "google/compression_utils.cc",
++ "google/compression_utils.h",
++ ]
++ deps = [ ":zlib" ]
++}
+diff --git a/build/shim_headers.gni b/build/shim_headers.gni
+index dc57d12ed0c..1d24e0ad00e 100644
+--- a/build/shim_headers.gni
++++ b/build/shim_headers.gni
+@@ -7,6 +7,11 @@ template("shim_headers") {
+ shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}"
+ config(config_name) {
+ include_dirs = [ shim_headers_path ]
++ if (defined(invoker.additional_includes)) {
++ foreach(i, invoker.additional_includes) {
++ include_dirs += [ shim_headers_path + "/" + i ]
++ }
++ }
+ }
+ action(action_name) {
+ script = "//tools/generate_shim_headers.py"
+@@ -26,11 +31,12 @@ template("shim_headers") {
+ args += invoker.headers
+ outputs = []
+ foreach(h, invoker.headers) {
+- outputs += [ shim_headers_path + "/" + rebase_path(invoker.root_path,"//") + "/" + h ]
++ outputs += [ shim_headers_path + "/" +
++ rebase_path(invoker.root_path, "//") + "/" + h ]
+ }
+ }
+ group(target_name) {
+- deps = [ ":${action_name}" ]
++ public_deps = [ ":${action_name}" ]
+ all_dependent_configs = [ ":${config_name}" ]
+ }
+ }
diff --git a/testing/dart/where-we-are-heading-prefixes-are-not-needed.patch b/testing/dart/where-we-are-heading-prefixes-are-not-needed.patch
new file mode 100644
index 00000000000..84add1a2d00
--- /dev/null
+++ b/testing/dart/where-we-are-heading-prefixes-are-not-needed.patch
@@ -0,0 +1,29 @@
+--- ./build/toolchain/linux/BUILD.gn.orig
++++ ./build/toolchain/linux/BUILD.gn
+@@ -37,7 +37,7 @@
+ }
+
+ gcc_toolchain("arm") {
+- prefix = "arm-linux-gnueabihf-"
++ prefix = ""
+ if (arm_toolchain_prefix != "") {
+ prefix = arm_toolchain_prefix
+ }
+@@ -73,7 +73,7 @@
+ }
+
+ gcc_toolchain("arm64") {
+- prefix = "aarch64-linux-gnu-"
++ prefix = ""
+ if (arm64_toolchain_prefix != "") {
+ prefix = arm64_toolchain_prefix
+ }
+@@ -215,7 +215,7 @@
+ }
+
+ gcc_toolchain("riscv64") {
+- prefix = "riscv64-linux-gnu-"
++ prefix = ""
+ if (riscv64_toolchain_prefix != "") {
+ prefix = riscv64_toolchain_prefix
+ }
diff --git a/testing/darts-clone/APKBUILD b/testing/darts-clone/APKBUILD
new file mode 100644
index 00000000000..4254e8b7688
--- /dev/null
+++ b/testing/darts-clone/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=darts-clone
+pkgver=0_git20181117
+_gitrev=e40ce4627526985a7767444b6ed6893ab6ff8983
+pkgrel=0
+pkgdesc="C++ header library for a static double-array trie structure"
+url="https://github.com/s-yata/darts-clone"
+arch="all !s390x" # s390x: failed dictionary test
+license="BSD-2-Clause"
+makedepends="autoconf automake libtool"
+subpackages="$pkgname-dev"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/s-yata/darts-clone/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ cd "$builddir"/test
+ ./test-darts
+ ./test-tools.sh
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+092cc833fff937365117f5b780f09a1ffdd25104ab57e36f7cba25a9a6bee289c105cae997a50b61b5b542c1c34d71bddf132d0ca14d563198b57caa9af2ac22 darts-clone-e40ce4627526985a7767444b6ed6893ab6ff8983.tar.gz
+"
diff --git a/testing/dasht/APKBUILD b/testing/dasht/APKBUILD
new file mode 100644
index 00000000000..bbf3e93464c
--- /dev/null
+++ b/testing/dasht/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Clayton Craft <clayton@craftyguy.net>
+# Maintainer: Clayton Craft <clayton@craftyguy.net>
+pkgname=dasht
+pkgver=2.4.0
+pkgrel=0
+pkgdesc="collection of shell scripts for searching, browsing, and managing API documentation from Dash"
+url="https://github.com/sunaku/dasht"
+arch="noarch"
+license="ISC"
+depends="
+ socat
+ sqlite
+ w3m
+ wget
+"
+options="!check" # no tests
+subpackages="$pkgname-zsh-completion $pkgname-doc"
+source="https://github.com/sunaku/dasht/archive/v$pkgver/dasht-$pkgver.tar.gz"
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/man
+ mkdir -p "$pkgdir"/usr/share/zsh/site-functions
+ mv bin "$pkgdir"/usr/
+ mv man "$pkgdir"/usr/share/
+ mv etc/zsh/completions/* "$pkgdir"/usr/share/zsh/site-functions/
+}
+
+sha512sums="
+4810fa05df78179d268bd2d2bbe4d821ef7330e837aa1b76034edd79add34e4087d6a0983c34504f905adf0ccee9515c88e70cbe330cdc68c5be33deb12a3166 dasht-2.4.0.tar.gz
+"
diff --git a/testing/datamash/APKBUILD b/testing/datamash/APKBUILD
index 9b90204feaa..a9b3465ebbc 100644
--- a/testing/datamash/APKBUILD
+++ b/testing/datamash/APKBUILD
@@ -1,25 +1,27 @@
# Contributor: Assaf Gordon <assafgordon@gmail.com>
-# Maintainer: Assaf Gordon <assafgordon@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=datamash
-pkgver=1.7
-pkgrel=0
-pkgdesc="command-line text/math procesing"
+pkgver=1.8
+pkgrel=1
+pkgdesc="Command-line text/math processing"
url="https://www.gnu.org/software/datamash/"
arch="all"
license="GPL-3.0-or-later"
+subpackages="$pkgname-doc $pkgname-bash-completion"
source="https://ftpmirror.gnu.org/datamash/datamash-$pkgver.tar.gz"
-subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
+ --sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --localstatedir=/var \
--disable-nls \
--disable-werror \
- --with-bash-completion-dir=local
+ --with-bash-completion-dir=/usr/share/bash-completion/completions
make
}
@@ -29,19 +31,11 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/share/datamash/examples \
- "$pkgdir"/usr/lib/charset.alias
-}
-
-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"/usr/share/datamash/bash-completion.d/datamash \
- "$subpkgdir"/usr/share/bash-completion/completions/
- rm -r "$pkgdir"/usr/share/datamash/bash-completion.d || true
+ rm -vrf "$pkgdir"/usr/share/datamash/examples
+ rmdir -v "$pkgdir"/usr/share/datamash
}
-sha512sums="29d82d6a1ac25a6ceb901c14fdeacbcb575771f405d844a66df525f820f1515d84989480807e466ddaa0a1ebc5cf698191538391b0c64bddf0d80462f66a5992 datamash-1.7.tar.gz"
+sha512sums="
+5ef312a73ebee5df7308b7e368f296714fcc396761499d4a5ba94906f6ecdb0867193c5ce25668bf56b7a5339a8a833a98b3ad564c01544880a6ec210c7b922a datamash-1.8.tar.gz
+"
diff --git a/testing/dbus-broker/APKBUILD b/testing/dbus-broker/APKBUILD
new file mode 100644
index 00000000000..cf1c530a1a8
--- /dev/null
+++ b/testing/dbus-broker/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=dbus-broker
+pkgver=35
+pkgrel=0
+pkgdesc="Linux D-Bus Message Broker"
+url="https://github.com/bus1/dbus-broker"
+arch="all"
+license="Apache-2.0"
+makedepends="meson linux-headers py3-docutils"
+subpackages="$pkgname-doc"
+source="https://github.com/bus1/dbus-broker/releases/download/v$pkgver/dbus-broker-$pkgver.tar.xz"
+
+build() {
+ # launcher: requires systemd
+ abuild-meson . build -Dlauncher=false -Ddocs=true
+ meson compile -C build
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+409e415889bd53b78e92ba077455e5583852a071e233e4b23dcbb23d8a367f177d6c8138e6fc113dcfe48440b68d594c1a076cb43ef445d472645f671d5ae033 dbus-broker-35.tar.xz
+"
diff --git a/testing/dbus-waiter/APKBUILD b/testing/dbus-waiter/APKBUILD
new file mode 100644
index 00000000000..a28f9af0a69
--- /dev/null
+++ b/testing/dbus-waiter/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=dbus-waiter
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Implement readiness notifications for dbus services"
+url="https://git.sr.ht/~whynothugo/dbus-waiter"
+# s390x: nix/libc crate
+arch="all !s390x"
+license="ISC"
+makedepends="cargo cargo-auditable"
+source="dbus-waiter-$pkgver.tar.gz::https://git.sr.ht/~whynothugo/dbus-waiter/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="net" # fetch dependencies
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 0755 target/release/$pkgname "$pkgdir/usr/bin/$pkgname"
+}
+
+sha512sums="
+abb1ab4b09ac104ba28e0c1a05d19feae13308bd6ff356653100a834d496861dcc32b4ca0de51640df5ce467b6d9ec2b90e7094f5043b0db1ee71a74315124e9 dbus-waiter-0.2.0.tar.gz
+"
diff --git a/testing/dcd/APKBUILD b/testing/dcd/APKBUILD
deleted file mode 100644
index 0d8f9dd5b73..00000000000
--- a/testing/dcd/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=dcd
-pkgver=0.12.0
-_githash=33dbd7653ecf830b735382e11d9bee66853a6dcf
-pkgrel=0
-pkgdesc="The D Completion Daemon is an auto-complete program for the D programming language"
-url="https://github.com/dlang-community/DCD"
-arch="x86 x86_64 aarch64" # ldc
-license="GPL-3.0-or-later"
-makedepends="ldc ldc-runtime stdx-allocator-dev dsymbol-dev libdparse-dev
- msgpack-d-dev dcontainers-dev bash"
-options="!check" # Can only be run with a DMD version of DCD
-source="https://github.com/dlang-community/DCD/archive/v$pkgver/dcd-$pkgver.tar.gz
- do-shared-linking.patch"
-builddir="$srcdir/DCD-$pkgver"
-
-prepare() {
- default_prepare
-
- mkdir bin
- echo $_githash > bin/githash.txt
-}
-
-build() {
- make DFLAGS="-link-defaultlib-shared" ldc
-}
-
-package() {
- install -d "$pkgdir"/usr/bin
- install -m0755 bin/dcd-client bin/dcd-server "$pkgdir"/usr/bin/
-}
-
-sha512sums="caadc5d497d6a209fda23523164247c1b921cebbe641fb6b5cedcecd20075d9283407f132886a369b15286c327e6a9e6015f290c31283e2a49a0e676b4cf82a9 dcd-0.12.0.tar.gz
-3d0a85c47eca379ee350ba007200469e2c95ae3822d3826c275e6b4be7fa7d7d8e1c730fe971c6d67589888d94ea0c108581164952072ee9e956cf001298e21f do-shared-linking.patch"
diff --git a/testing/dcd/do-shared-linking.patch b/testing/dcd/do-shared-linking.patch
deleted file mode 100644
index abb63b36c50..00000000000
--- a/testing/dcd/do-shared-linking.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-diff --git a/makefile b/makefile
-index 2bf0be9..2c568f0 100644
---- a/makefile
-+++ b/makefile
-@@ -1,4 +1,4 @@
--.PHONY: all
-++.PHONY: all
-
- all: dmd
- dmd: dmdserver dmdclient
-@@ -32,8 +32,7 @@ clean:
-
- CLIENT_SRC := \
- $(shell find src/dcd/common -name "*.d")\
-- $(shell find src/dcd/client -name "*.d")\
-- $(shell find msgpack-d/src/ -name "*.d")
-+ $(shell find src/dcd/client -name "*.d")
-
- DMD_CLIENT_FLAGS := -Imsgpack-d/src\
- -Imsgpack-d/src\
-@@ -49,8 +48,8 @@ GDC_CLIENT_FLAGS := -Imsgpack-d/src\
- -frelease\
- -obin/dcd-client
-
--LDC_CLIENT_FLAGS := -Imsgpack-d/src\
-- -Imsgpack-d/src\
-+LDC_CLIENT_FLAGS := \
-+ $(shell pkg-config --cflags msgpack-d) $(subst -l,-L=-l,$(shell pkg-config --libs msgpack-d))\
- -J=bin\
- -release\
- -O5\
-@@ -63,29 +62,7 @@ override GDC_CLIENT_FLAGS += $(DFLAGS)
-
- SERVER_SRC := \
- $(shell find src/dcd/common -name "*.d")\
-- $(shell find src/dcd/server -name "*.d")\
-- $(shell find ${DSYMBOL_DIR}/src -name "*.d")\
-- $(shell find ${STDXALLOC_DIR}/source -name "*.d")\
-- ${DPARSE_DIR}/src/dparse/ast.d\
-- ${DPARSE_DIR}/src/dparse/entities.d\
-- ${DPARSE_DIR}/src/dparse/lexer.d\
-- ${DPARSE_DIR}/src/dparse/parser.d\
-- ${DPARSE_DIR}/src/dparse/formatter.d\
-- ${DPARSE_DIR}/src/dparse/rollback_allocator.d\
-- ${DPARSE_DIR}/src/dparse/stack_buffer.d\
-- ${DPARSE_DIR}/src/std/experimental/lexer.d\
-- containers/src/containers/dynamicarray.d\
-- containers/src/containers/ttree.d\
-- containers/src/containers/unrolledlist.d\
-- containers/src/containers/openhashset.d\
-- containers/src/containers/hashset.d\
-- containers/src/containers/internal/hash.d\
-- containers/src/containers/internal/node.d\
-- containers/src/containers/internal/storage_type.d\
-- containers/src/containers/internal/element_type.d\
-- containers/src/containers/internal/backwards.d\
-- containers/src/containers/slist.d\
-- $(shell find msgpack-d/src/ -name "*.d")
-+ $(shell find src/dcd/server -name "*.d")
-
- DMD_SERVER_FLAGS := -Icontainers/src\
- -Imsgpack-d/src\
-@@ -117,10 +94,10 @@ GDC_SERVER_FLAGS := -Icontainers/src\
- -frelease\
- -obin/dcd-server
-
--LDC_SERVER_FLAGS := -Icontainers/src\
-- -Imsgpack-d/src\
-- -I${DPARSE_DIR}/src\
-- -I${DSYMBOL_DIR}/src\
-+LDC_SERVER_FLAGS := $(shell pkg-config --cflags dcontainers) $(subst -l,-L=-l,$(shell pkg-config --libs dcontainers))\
-+ $(shell pkg-config --cflags msgpack-d) $(subst -l,-L=-l,$(shell pkg-config --libs msgpack-d))\
-+ $(shell pkg-config --cflags dparse) $(subst -l,-L=-l,$(shell pkg-config --libs dparse))\
-+ $(shell pkg-config --cflags dsymbol) $(subst -l,-L=-l,$(shell pkg-config --libs dsymbol))\
- -Isrc\
- -J=bin\
- -O5\
-@@ -150,10 +127,10 @@ gdcserver: githash
- mkdir -p bin
- ${GDC} ${SERVER_SRC} ${GDC_SERVER_FLAGS}
-
--ldcclient: githash
-+ldcclient:
- ${LDC} ${CLIENT_SRC} ${LDC_CLIENT_FLAGS} -oq -of=bin/dcd-client
-
--ldcserver: githash
-+ldcserver:
- ${LDC} $(LDC_SERVER_FLAGS) ${SERVER_SRC} -oq -of=bin/dcd-server
-
- test: debugserver dmdclient
diff --git a/testing/dcmtk/10-offile.patch b/testing/dcmtk/10-offile.patch
new file mode 100644
index 00000000000..1a92d973149
--- /dev/null
+++ b/testing/dcmtk/10-offile.patch
@@ -0,0 +1,70 @@
+Author: Holger Jaekel <holger.jaekel@gmx.de>
+Summary: Use ANSI C functions like fopen() instead of
+ non-ANSI Posix functions like fopen64().
+----
+
+--- a/ofstd/include/dcmtk/ofstd/offile.h.orig
++++ b/ofstd/include/dcmtk/ofstd/offile.h
+@@ -356,7 +356,7 @@
+ {
+ if (file_) fclose();
+ #ifdef EXPLICIT_LFS_64
+- file_ = :: fopen64(filename, modes);
++ file_ = :: fopen(filename, modes);
+ #else
+ file_ = STDIO_NAMESPACE fopen(filename, modes);
+ #endif
+@@ -463,7 +463,7 @@
+ {
+ #if defined(EXPLICIT_LFS_64) && ! defined(__MINGW32__)
+ // MinGW has EXPLICIT_LFS_64 but no freopen64()
+- file_ = :: freopen64(filename, modes, file_);
++ file_ = :: freopen(filename, modes, file_);
+ #else
+ file_ = STDIO_NAMESPACE freopen(filename, modes, file_);
+ #endif
+@@ -482,7 +482,7 @@
+ if (file_) fclose();
+ #if defined(EXPLICIT_LFS_64) && ! defined(__MINGW32__)
+ // MinGW has EXPLICIT_LFS_64 but no tmpfile64()
+- file_ = :: tmpfile64();
++ file_ = :: tmpfile();
+ #else
+ file_ = STDIO_NAMESPACE tmpfile();
+ #endif
+@@ -806,7 +806,7 @@
+ #else
+ #ifdef HAVE_FSEEKO
+ #ifdef EXPLICIT_LFS_64
+- result = :: fseeko64(file_, off, whence);
++ result = :: fseeko(file_, off, whence);
+ #else
+ result = :: fseeko(file_, off, whence);
+ #endif
+@@ -839,7 +839,7 @@
+ offile_off_t result;
+ #ifdef HAVE_FSEEKO
+ #ifdef EXPLICIT_LFS_64
+- result = :: ftello64(file_);
++ result = :: ftello(file_);
+ #else
+ result = :: ftello(file_);
+ #endif
+@@ -863,7 +863,7 @@
+ int result;
+ #if defined(EXPLICIT_LFS_64) && ! defined(__MINGW32__) && ! defined(__QNX__)
+ // MinGW and QNX have EXPLICIT_LFS_64 but no fgetpos64()
+- result = :: fgetpos64(file_, pos);
++ result = :: fgetpos(file_, pos);
+ #else
+ result = STDIO_NAMESPACE fgetpos(file_, pos);
+ #endif
+@@ -883,7 +883,7 @@
+ int result;
+ #if defined(EXPLICIT_LFS_64) && ! defined(__MINGW32__) && ! defined(__QNX__)
+ // MinGW and QNX have EXPLICIT_LFS_64 but no fsetpos64()
+- result = :: fsetpos64(file_, pos);
++ result = :: fsetpos(file_, pos);
+ #else
+ result = STDIO_NAMESPACE fsetpos(file_, pos);
+ #endif
diff --git a/testing/dcmtk/20-thai.patch b/testing/dcmtk/20-thai.patch
new file mode 100644
index 00000000000..a40b8fb0b51
--- /dev/null
+++ b/testing/dcmtk/20-thai.patch
@@ -0,0 +1,35 @@
+Author: Holger Jaekel <holger.jaekel@gmx.de>
+Summary: Character set ISO_IR 166 fails, so we remove the test.
+----
+
+--- a/dcmdata/tests/tspchrs.cc
++++ b/dcmdata/tests/tspchrs.cc
+@@ -46,7 +46,7 @@
+ OFCHECK(converter.selectCharacterSet("ISO_IR 148").good());
+ OFCHECK(converter.selectCharacterSet("ISO_IR 203").good());
+ OFCHECK(converter.selectCharacterSet("ISO_IR 13 ").good());
+- OFCHECK(converter.selectCharacterSet("ISO_IR 166").good());
++ // OFCHECK(converter.selectCharacterSet("ISO_IR 166").good());
+ OFCHECK(converter.selectCharacterSet("ISO_IR 192").good());
+ OFCHECK(converter.selectCharacterSet(" GB18030 ").good());
+ OFCHECK(converter.selectCharacterSet(" GBK ").good());
+@@ -63,7 +63,7 @@
+ OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 148").good());
+ OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 203").good());
+ OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 13 ").good());
+- OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 166").good());
++ // OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 166").good());
+ #if DCMTK_ENABLE_CHARSET_CONVERSION == DCMTK_CHARSET_CONVERSION_ICONV
+ // (only the ICONV library supports these character sets)
+ OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 87 ").good());
+@@ -169,8 +169,8 @@
+ OFCHECK(converter.convertString("Japanese\\\033(J\324\317\300\336\\Text", resultStr, "\\").good());
+ OFCHECK_EQUAL(resultStr, "Japanese\\\357\276\224\357\276\217\357\276\200\357\276\236\\Text");
+ // the following should fail (wrong character set)
+- OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 166").good());
+- OFCHECK(converter.convertString("Yamada^Tarou=\033$B;3ED\033(B^\033$BB@O:\033(B=\033$B$d$^$@\033(B^\033$B$?$m$&\033(B", resultStr, delimiters).bad());
++ // OFCHECK(converter.selectCharacterSet("\\ISO 2022 IR 166").good());
++ // OFCHECK(converter.convertString("Yamada^Tarou=\033$B;3ED\033(B^\033$BB@O:\033(B=\033$B$d$^$@\033(B^\033$B$?$m$&\033(B", resultStr, delimiters).bad());
+ } else {
+ // in case there is no libiconv, report a warning but do not fail
+ DCMDATA_WARN("Cannot test DcmSpecificCharacterSet since the underlying character set conversion library is not available");
diff --git a/testing/dcmtk/30-dont_export_all_executables.patch b/testing/dcmtk/30-dont_export_all_executables.patch
new file mode 100644
index 00000000000..9859fec2448
--- /dev/null
+++ b/testing/dcmtk/30-dont_export_all_executables.patch
@@ -0,0 +1,24 @@
+Description: Don't add executables to cmake exports
+ CMake exports are used by other packages that compile
+ and link against dcmtk. Because Debian moves some of
+ these executables and also doesn't install the test
+ executables, this import may fail leading to failure
+ to configure the according package.
+Bug-Debian: https://bugs.debian.org/803304
+Author: Gert Wollny <gw.fossdev@gmail.com>
+--- a/CMake/dcmtkMacros.cmake
++++ b/CMake/dcmtkMacros.cmake
+@@ -55,11 +55,11 @@
+ endif()
+
+ # Collect executable as part of global DCMTK_EXECUTABLE_TARGETS property
+- set_property(GLOBAL APPEND PROPERTY DCMTK_EXECUTABLE_TARGETS ${PROGRAM})
++ #set_property(GLOBAL APPEND PROPERTY DCMTK_EXECUTABLE_TARGETS ${PROGRAM})
+
+ # declare installation files, also export DCMTKTargets.cmake
+ install(TARGETS ${PROGRAM}
+- EXPORT DCMTKTargets
++ # EXPORT DCMTKTargets
+ COMPONENT bin
+ DESTINATION ${CMAKE_INSTALL_BINDIR})
+ endif()
diff --git a/testing/dcmtk/40-dcmqrscp.patch b/testing/dcmtk/40-dcmqrscp.patch
new file mode 100644
index 00000000000..ec40c2b348d
--- /dev/null
+++ b/testing/dcmtk/40-dcmqrscp.patch
@@ -0,0 +1,81 @@
+Author: Jürgen Salk <jsa@debian.org>
+Description: The original maintainer Jürgen Salk applied
+ a set of patches to the original code. This file contains
+ changes to C++ code
+Forwarded: no
+
+--- a/dcmqrdb/etc/dcmqrscp.cfg
++++ b/dcmqrdb/etc/dcmqrscp.cfg
+@@ -21,8 +21,8 @@
+ # SpecificCharacterSet = "ISO_IR 192", override, discard, transliterate
+
+ #
+-# UserName = <not used>
+-# GroupName = <not used>
++UserName = dcmtk
++GroupName = dcmtk
+
+ HostTable BEGIN
+ #
+@@ -38,12 +38,13 @@
+ # NOTE: in the current implementation you cannot substitute an IP address
+ # for a hostname.
+ #
+-acme1 = (ACME1, acmehost1, 5678)
+-acme2 = (ACME2, acmehost2, 5678)
+-acmeCTcompany = acme1, acme2
+-united1 = (UNITED1, unitedhost1, 104)
+-united2 = (UNITED2, unitedhost2, 104)
+-unitedMRcompany = united1, united2
++# Example:
++#acme1 = (ACME1, acmehost1, 5678)
++#acme2 = (ACME2, acmehost2, 5678)
++#acmeCTcompany = acme1, acme2
++#united1 = (UNITED1, unitedhost1, 104)
++#united2 = (UNITED2, unitedhost2, 104)
++#unitedMRcompany = united1, united2
+ #
+ HostTable END
+
+@@ -61,8 +62,9 @@
+ # VendorName = SymbolicName
+ # The symbolic name should be defined in the HostTable.
+ #
+-"Acme CT Company" = acmeCTcompany
+-"United MR Company" = unitedMRcompany
++# Example:
++#"Acme CT Company" = acmeCTcompany
++#"United MR Company" = unitedMRcompany
+ #
+ VendorTable END
+
+@@ -80,8 +82,13 @@
+ # Entry in HostTable |
+ # ANY
+ #
+-COMMON /home/dicom/db/COMMON R (200, 1024mb) ANY
+-ACME_STORE /home/dicom/db/ACME_STORE RW (9, 1024mb) acmeCTcompany
+-UNITED_STORE /home/dicom/db/UNITED_STORE RW (9, 1024mb) unitedMRcompany
++# Example:
++#
++#ACME_STORE /var/lib/dcmtk/db/ACME_STORE RW (9, 1024mb) acmeCTcompany
++#UNITED_STORE /var/lib/dcmtk/db/UNITED_STORE RW (9, 1024mb) unitedMRcompany
++#
++# Uncomment and adjust the following lines for a common r/rw storage area:
++#READWRITE /var/lib/dcmtk/db/READWRITE RW (10, 1024mb) ANY
++#READ /var/lib/dcmtk/db/READ R (200, 1024mb) ANY
+ #
+ AETable END
+--- a/dcmqrdb/docs/dcmqrcnf.txt
++++ b/dcmqrdb/docs/dcmqrcnf.txt
+@@ -46,8 +46,8 @@
+ MaxPDUSize = 8192
+ MaxAssociations = 20
+ SpecificCharacterSet = fallback
+-UserName = (do not change user)
+-GroupName = (do not change group)
++UserName = dcmtk
++GroupName = dcmtk
+
+ Available options for specific character sets are:
+
diff --git a/testing/dcmtk/APKBUILD b/testing/dcmtk/APKBUILD
new file mode 100644
index 00000000000..7cc25f24c6a
--- /dev/null
+++ b/testing/dcmtk/APKBUILD
@@ -0,0 +1,105 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=dcmtk
+pkgver=3.6.8
+_pkgver=${pkgver//./}
+pkgrel=0
+pkgdesc="OFFIS DICOM toolkit"
+url="https://dcmtk.org/"
+# armhf: compile fails with bad immediate value for offset
+arch="all !armhf"
+license="BSD-3-Clause"
+makedepends="
+ cmake
+ libpng-dev
+ libsndfile-dev
+ libxml2-dev
+ openjpeg-dev
+ openssl-dev
+ samurai
+ tiff-dev
+ zlib-dev
+ "
+install="$pkgname.pre-install"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc libdcmtk"
+source="https://dicom.offis.de/download/dcmtk/dcmtk$_pkgver/dcmtk-$pkgver.tar.gz
+ 10-offile.patch
+ 20-thai.patch
+ 30-dont_export_all_executables.patch
+ 40-dcmqrscp.patch
+ dcmtk.initd
+ "
+
+# secfixes:
+# 3.6.7-r0:
+# - CVE-2022-43272
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ # SKIP_RPATH=OFF to run test suite
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DBUILD_SHARED_LIBS=ON \
+ -DDCMTK_WITH_OPENSSL=ON \
+ -DDCMTK_ENABLE_PRIVATE_TAGS=ON \
+ -DDCMTK_WITH_XML=ON \
+ -DDCMTK_WITH_DOXYGEN=OFF \
+ -DDCMTK_WITH_TIFF=ON \
+ -DDCMTK_WITH_ZLIB=ON \
+ -DDCMTK_WITH_ICONV=OFF \
+ -DDCMTK_WITH_ICU=OFF \
+ -DUSE_COMPILER_HIDDEN_VISIBILITY=ON \
+ -DCMAKE_SKIP_RPATH=OFF \
+ -DDCMTK_ENABLE_STL=ON \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # remove test binaries
+ rm "$pkgdir"/usr/bin/*_tests
+ rm "$pkgdir"/usr/bin/drttest
+ rm "$pkgdir"/usr/bin/mkreport
+ rm "$pkgdir"/usr/bin/msgserv
+ rm "$pkgdir"/usr/bin/wltest
+ rm "$pkgdir"/usr/share/dcmtk-$pkgver/SC.dump
+ rm "$pkgdir"/usr/share/dcmtk-$pkgver/VLP.dump
+
+ # remove changelog
+ rm -rf "$pkgdir"/usr/share/doc
+
+ # remove example modality worklist database and example queries
+ rm -rf "$pkgdir"/usr/share/dcmtk/wlistdb "$pkgdir"/usr/share/dcmtk/wlistqry
+}
+
+openrc() {
+ pkgdesc="$pkgdesc (OpenRC init scripts)"
+ install -Dm755 "$srcdir"/dcmtk.initd "$subpkgdir"/etc/init.d/dcmtk
+}
+
+libdcmtk() {
+ pkgdesc="OFFIS DICOM toolkit runtime libraries"
+ amove usr/lib
+ amove usr/share/dcmtk-$pkgver/*.dic
+}
+
+sha512sums="
+1bb2aad1aa63e0a1b79d92d7c932a969deccde03fdb484dbd44198effb58d50de44a2b0cda150ce7df63e4e986af5bc1f694c8a7988b4c049c578d83ba81184a dcmtk-3.6.8.tar.gz
+14f9faa64c04435345cb46511f5d4e1c17fc000df2ddca330d28961b92a16b06dd9b689d331583009ac2d34e307d28c5bcaec0704f70329328b4100fc9efd042 10-offile.patch
+70dd062b3e0b176c6a3627ea6b30383d7c21ea4088c2f76ece8123a6d625de482c05cf9ad4f76a290a5d3308616d0ba2fc34189c337f7c475aadb8ff1c9c101b 20-thai.patch
+1a487ec720d75945a6a62a8e6b5f5dc33a363af1f58595ac84fc910b76dadd458f1c6b599bdea6e45570630496ce8d7c5efc544252f6421d83c7370d83e9b8b1 30-dont_export_all_executables.patch
+37b7867b379456aed71f15609dd57be142984b0430605eba9771d2766817ac95e6526759b105686a76df28f09e49ee5e8907f46c38b4d7de947278b0faaf7568 40-dcmqrscp.patch
+dd8e24011178f3b5fa35150439aea2640a6f9da702da883a61e6eeb835223ee6967e4586f4e75b004e04da0f061c1edbf6d00a252480c64142a68b3213810aad dcmtk.initd
+"
diff --git a/testing/dcmtk/dcmtk.initd b/testing/dcmtk/dcmtk.initd
new file mode 100644
index 00000000000..8fd94746b7c
--- /dev/null
+++ b/testing/dcmtk/dcmtk.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+CONFIG=/etc/dcmtk/dcmqrscp.cfg
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting DCMTK central test node dcmqrscp"
+ start-stop-daemon --start --quiet --background \
+ --make-pidfile --pidfile "/var/run/${SVCNAME}.pid" \
+ --exec /usr/bin/dcmqrscp -- -c "${CONFIG}"
+ eend ${?}
+}
+
+stop() {
+ ebegin "Stopping DCMTK central test node dcmqrscp"
+ start-stop-daemon --stop --quiet --pidfile "/var/run/${SVCNAME}.pid"
+ eend ${?}
+}
diff --git a/testing/dcmtk/dcmtk.pre-install b/testing/dcmtk/dcmtk.pre-install
new file mode 100755
index 00000000000..c3f89f0fba3
--- /dev/null
+++ b/testing/dcmtk/dcmtk.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S dcmtk 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G dcmtk -g dcmtk dcmtk 2>/dev/null
+
+exit 0
diff --git a/testing/dcnnt/APKBUILD b/testing/dcnnt/APKBUILD
new file mode 100644
index 00000000000..f5c7766124d
--- /dev/null
+++ b/testing/dcnnt/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=dcnnt
+pkgver=0.10.0
+pkgrel=1
+pkgdesc="UI-less tool to connect Android phone with desktop"
+url="https://github.com/cyanomiko/dcnnt-py"
+arch="noarch"
+license="MIT"
+depends="py3-pycryptodome"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cyanomiko/dcnnt-py/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-py-$pkgver"
+options="!check" # No tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ install -Dm644 doc/*.md -t "$pkgdir"/usr/share/doc/$pkgname
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+a675b027e7a60db2d80abb574db45233d968b29d0f4b3ad3c274fa8609cb1c544b31e3989be02601ab5b9292212374064c47f39d270949df115d73685c226611 dcnnt-0.10.0.tar.gz
+"
diff --git a/testing/dcontainers/APKBUILD b/testing/dcontainers/APKBUILD
deleted file mode 100644
index 7e4143175bb..00000000000
--- a/testing/dcontainers/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=dcontainers
-pkgver=0.8.0_alpha19
-_alphanum=${pkgver/${pkgver%alpha*}/}
-_pkgver=${pkgver/_$_alphanum/}
-_verstring=$_pkgver-${_alphanum/ha/ha.}
-pkgrel=0
-pkgdesc="Containers backed by std.experimental.allocator"
-url="https://github.com/dlang-community/containers"
-arch="x86 x86_64 aarch64" # ldc
-license="BSL-1.0"
-makedepends="meson ldc ldc-runtime stdx-allocator-dev"
-subpackages="$pkgname-dev"
-source="https://github.com/dlang-community/containers/archive/v$_verstring/containers-$_verstring.tar.gz"
-builddir="$srcdir/containers-$_verstring"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="ef415e2bf7829e05c458cee0e41b6fc5768805a8dee332fb6a01a72e1e723f240f183cd1fd5ed74848cc4ea860b0746dca1c5dee13d37f819f0025da99098c4a containers-0.8.0-alpha.19.tar.gz"
diff --git a/testing/ddcci-driver-linux-src/APKBUILD b/testing/ddcci-driver-linux-src/APKBUILD
new file mode 100644
index 00000000000..95ca6d437f3
--- /dev/null
+++ b/testing/ddcci-driver-linux-src/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=ddcci-driver-linux-src
+_modname=ddcci-driver-linux
+pkgver=0.4.4
+pkgrel=2
+pkgdesc="Linux kernel drivers for DDC/CI monitors (sources, AKMS)"
+url="https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="akms"
+options="!check" # no tests
+source="$_modname-$pkgver.tar.gz::https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux/-/archive/v$pkgver/ddcci-driver-linux-v$pkgver.tar.gz"
+builddir="$srcdir/$_modname-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ cat > AKMBUILD <<- EOF
+ modname=$_modname
+ modver=$pkgver-r$pkgrel
+ EOF
+ cat >> AKMBUILD <<- 'EOF'
+ built_modules='ddcci/ddcci.ko ddcci-backlight/ddcci-backlight.ko'
+
+ build() {
+ make ${MAKEFLAGS:-} -C "$kernel_srcdir" M="$builddir/ddcci" src="$srcdir/ddcci"
+ make ${MAKEFLAGS:-} -C "$kernel_srcdir" M="$builddir/ddcci-backlight" src="$srcdir/ddcci-backlight" KBUILD_EXTRA_SYMBOLS="$builddir/ddcci/Module.symvers"
+ }
+ EOF
+}
+
+package() {
+ install -D -m644 -t "$pkgdir/usr/src/$_modname-$pkgver" AKMBUILD
+ cp -a ddcci ddcci-backlight include "$pkgdir/usr/src/$_modname-$pkgver/"
+}
+
+sha512sums="
+f88ded47818c65c91d88ae16871304d8a72785d8ca5df56464258ccf32f2d52d8623bc88e8f05ed2f6b47fc23e64aa1ef3d430912e7535d94e959fa21e7235b2 ddcci-driver-linux-0.4.4.tar.gz
+"
diff --git a/testing/ddcutil/APKBUILD b/testing/ddcutil/APKBUILD
deleted file mode 100644
index 04bc7aa3f69..00000000000
--- a/testing/ddcutil/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Alex Laskin <alex@lask.in>
-# Maintainer: Alex Laskin <alex@lask.in>
-pkgname=ddcutil
-pkgver=0.9.1
-pkgrel=0
-pkgdesc="Query and change Linux monitor settings using DDC/CI and USB"
-url="https://github.com/rockowitz/ddcutil"
-arch="all"
-license="GPL-2.0-only"
-makedepends="linux-headers autoconf automake libtool eudev-dev libusb-dev libxrandr-dev glib-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rockowitz/ddcutil/archive/v${pkgver}.tar.gz
- execinfo.patch"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -rf "$pkgdir/usr/include" "$pkgdir/usr/lib" "$pkgdir/usr/share/ddcutil"
-}
-sha512sums="b2d5866606a4bc081d89180e910822f2a2a653a2782e3df582536ddc86c7d3dc02309dbb41f8d566f6ebdc5d82d3aa11792a04c28b3d83552b024dfd59891fda ddcutil-0.9.1.tar.gz
-4d99a24bd863f060d74111f6853e039a0dc67a3e1c986ea9fac3a35451caf4e95d8749016800be6f259e4cb451c9db734dcef0b710b542ee3f987586cacb8e04 execinfo.patch"
diff --git a/testing/ddcutil/execinfo.patch b/testing/ddcutil/execinfo.patch
deleted file mode 100644
index 99448d70b06..00000000000
--- a/testing/ddcutil/execinfo.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- ddcutil-0.9.1-clean/src/test/i2c/i2c_io_old.c
-+++ ddcutil-0.9.1-patched/src/test/i2c/i2c_io_old.c
-@@ -34,7 +34,9 @@
-
- #include <assert.h>
- #include <errno.h>
-+#ifdef HAVE_EXECINFO_H
- #include <execinfo.h>
-+#endif
- #include <fcntl.h>
- #include <stdio.h>
- #include <stdlib.h>
---- ddcutil-0.9.1-clean/src/util/debug_util.c
-+++ ddcutil-0.9.1-patched/src/util/debug_util.c
-@@ -26,7 +26,9 @@
- */
-
- /** \cond */
-+#ifdef HAVE_EXECINFO_H
- #include <execinfo.h>
-+
- #include <glib-2.0/glib.h>
- #include <stdbool.h>
- #include <stdio.h>
-@@ -82,7 +84,6 @@
- return result;
- }
-
--
- #ifdef OLD
- /** Show the call stack.
- *
-@@ -194,5 +195,5 @@
- g_ptr_array_free(callstack, true);
- }
- }
--
-+#endif
-
---- ddcutil-0.9.1-clean/src/util/debug_util.h
-+++ ddcutil-0.9.1-patched/src/util/debug_util.h
-@@ -30,7 +30,9 @@
-
- #include <glib-2.0/glib.h>
-
-+#ifdef HAVE_EXECINFO_H
- GPtrArray * get_backtrace(int stack_adjust);
- void show_backtrace(int stack_adjust);
-+#endif
-
- #endif /* DEBUG_UTIL_H_ */
-
---- ddcutil-0.9.1-clean/src/util/error_info.c
-+++ ddcutil-0.9.1-patched/src/util/error_info.c
-@@ -101,7 +101,9 @@
- bool debug = false;
- if (debug) {
- printf("(%s) Starting. erec=%p\n", __func__, erec);
-+#ifdef HAVE_EXECINFO_H
- show_backtrace(2);
-+#endif
- }
- if (erec) {
- VALID_DDC_ERROR_PTR(erec);
-
---- ddcutil-0.9.1-clean/src/util/edid.h
-+++ ddcutil-0.9.1-patched/src/util/edid.h
-@@ -36,6 +36,7 @@
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
-+#include <sys/types.h>
- /** \endcond */
-
- #include "coredefs.h"
-
diff --git a/testing/ddgr/APKBUILD b/testing/ddgr/APKBUILD
index f9d18885491..01a2d723bf8 100644
--- a/testing/ddgr/APKBUILD
+++ b/testing/ddgr/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: dai9ah <dai9ah@protonmail.com>
# Maintainer: dai9ah <dai9ah@protonmail.com>
pkgname=ddgr
-pkgver=1.8.1
+pkgver=2.2
pkgrel=0
pkgdesc="DuckDuckGo from the terminal"
url="https://github.com/jarun/ddgr"
@@ -22,10 +22,11 @@ package() {
install -Dm644 "$builddir"/auto-completion/bash/* \
-t "$pkgdir"/usr/share/bash-completion/completions/
install -Dm644 "$builddir"/auto-completion/fish/* \
- -t "$pkgdir"/usr/share/fish/completions/
+ -t "$pkgdir"/usr/share/fish/vendor_completions.d/
install -Dm644 "$builddir"/auto-completion/zsh/* \
-t "$pkgdir"/usr/share/zsh/site-functions/
-
}
-sha512sums="60fe045674f0d6e4b77e067c18fe26a59e8c1c2f139a773e5d4d5d308eb99473ef7df76c62995eddddd030758c63e9417d5d55e9448346f824b8391c99861c2f ddgr-1.8.1.tar.gz"
+sha512sums="
+a61860fe0866b76f89b263bd9d3b3a2b3be52ed6af4885ec9dd076ae192fcdf9e412d9516cb9c3405792ee3d98745b70e059fd41cfb61d835241153d4b63db0e ddgr-2.2.tar.gz
+"
diff --git a/testing/ddnrs/APKBUILD b/testing/ddnrs/APKBUILD
new file mode 100644
index 00000000000..477ad596d7d
--- /dev/null
+++ b/testing/ddnrs/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=ddnrs
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="A simple tool to update dns records to match your current IP"
+url="https://codeberg.org/Kladky/ddnrs"
+arch="all"
+license="AGPL-3.0-only"
+makedepends="
+ make
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/Kladky/ddnrs/archive/$pkgver.tar.gz"
+options="!check" # no tests
+builddir="$srcdir/$pkgname"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ CARGO="cargo auditable" make build-frozen
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+ DESTDIR="$pkgdir" make install-openrc
+}
+
+sha512sums="
+e979b5fb2643cf297e82120f0dc297651f38ee24b0dfbbcbf0b0dcab5939b13dab234ced152f753d8b610425e25dc853ac9476b6597fab3c3d1d5d7b34f480c9 ddnrs-0.2.0.tar.gz
+"
diff --git a/testing/ddnrs/ddnrs.pre-install b/testing/ddnrs/ddnrs.pre-install
new file mode 100644
index 00000000000..265643e1be6
--- /dev/null
+++ b/testing/ddnrs/ddnrs.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S ddnrs 2>/dev/null
+adduser -S -D -s /sbin/nologin -H -G ddnrs -g ddnrs ddnrs 2>/dev/null
+
+exit 0
diff --git a/testing/ddserver/APKBUILD b/testing/ddserver/APKBUILD
new file mode 100644
index 00000000000..3667f674f8b
--- /dev/null
+++ b/testing/ddserver/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: dkrefft <dkrefft@posteo.de>
+# Maintainer: dkrefft <dkrefft@posteo.de>
+pkgname=ddserver
+pkgver=0_git20200930
+pkgrel=1
+_commit="02b23b2cf451b2780a551861ef1eaaa10ca710ed"
+pkgdesc="server to forward PTP USB messages between qDslrDashboard and USB camera"
+url="https://github.com/hubaiz/DslrDashboardServer"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # no test suite
+makedepends="libusb-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/hubaiz/DslrDashboardServer/archive/$_commit.tar.gz"
+builddir="$srcdir/DslrDashboardServer-$_commit"
+
+build() {
+ make -C src/ \
+ CXX="${CXX:-g++}" \
+ CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libusb-1.0)" \
+ LIBS="-lpthread -lrt -lstdc++ $(pkg-config --libs libusb-1.0)"
+}
+
+package() {
+ install -D -m755 src/$pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="85d25847506fa250abdc9d685e3fe9b5e49a57d6c583aea1e080dca683f36a8978ce48ce18e0956fde34c76931a155d7aeae53069a2afa0308a2850ac139a144 ddserver-02b23b2cf451b2780a551861ef1eaaa10ca710ed.tar.gz"
+
diff --git a/testing/deadbeef-soxr/APKBUILD b/testing/deadbeef-soxr/APKBUILD
new file mode 100644
index 00000000000..099c4f8cf70
--- /dev/null
+++ b/testing/deadbeef-soxr/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Taner Tas <taner76@gmail.com>
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=deadbeef-soxr
+pkgver=20180801 # No version information. Use last commit date.
+pkgrel=0
+pkgdesc="Sox resampler plugin for deadbeef audio player."
+url="https://github.com/silentlexx/deadbeef_soxr"
+# blocked by deadbeef -> libdispatch-dev
+arch="all !s390x !armhf !riscv64"
+license="GPL-2.0-or-later"
+depends="deadbeef"
+makedepends="
+ deadbeef-dev
+ soxr-dev
+ "
+_commit="103341b7388d38110181494bb9763daa9dafa63e"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/silentlexx/deadbeef_soxr/archive/$_commit.tar.gz
+ remove-native-build-opt.patch
+ "
+builddir="$srcdir/deadbeef_soxr-$_commit"
+options="!check" # No test suite
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p $pkgdir/usr/lib/deadbeef/
+ mv $builddir/ddb_soxr_dsp.so $pkgdir/usr/lib/deadbeef/
+}
+
+sha512sums="613b239596570d2748288d2682b9e509a01c27a5ad761374b30bbbeb0d2e9029e5b9bf4cb99a5902a214e93772327925b2778f0e98c3c92ce38ea2a11ae475de deadbeef-soxr-20180801.tar.gz
+e735fcdd079aa9d87421c493d954a1869653c665de9745c98c988af7339491cb93462ed35f34a04ab3a55e19e69c444ed78a726a753b6ea6fdba15b8d3029209 remove-native-build-opt.patch"
diff --git a/testing/deadbeef-soxr/remove-native-build-opt.patch b/testing/deadbeef-soxr/remove-native-build-opt.patch
new file mode 100644
index 00000000000..2832d4f653c
--- /dev/null
+++ b/testing/deadbeef-soxr/remove-native-build-opt.patch
@@ -0,0 +1,7 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,2 +1,2 @@
+ all:
+- gcc -I/usr/include -I/opt/deadbeef/include -std=c99 -shared -O2 -o ddb_soxr_dsp.so soxr.c -lsoxr -fPIC -Wall -march=native
+\ No newline at end of file
++ gcc -I/usr/include -I/opt/deadbeef/include -std=c99 -shared -O2 -o ddb_soxr_dsp.so soxr.c -lsoxr -fPIC -Wall
diff --git a/testing/debconf/APKBUILD b/testing/debconf/APKBUILD
index e60ee9c325f..1abc890fc44 100644
--- a/testing/debconf/APKBUILD
+++ b/testing/debconf/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=debconf
-pkgver=1.5.73
+pkgver=1.5.82
pkgrel=0
pkgdesc="A configuration management system for Debian packages."
url="https://packages.debian.org/debconf"
@@ -42,5 +42,7 @@ utils() {
make PREFIX=/usr DESTDIR="$subpkgdir" install-utils
}
-sha512sums="fa2e240842f4f020df031ef37803c22a680372b996302372dfd3377bf21723f2e949167f9ea13ebad5c1c516052c26adcd627d152a62110ccddd3a9e2b892bdc debconf_1.5.73.tar.xz
-17094b77ccf7922daf28dbf2eba84a322ac8ca265a41403b963d97ea4c1c16d8e530bcb3414f9b1bca88cbc5f726d2401376ee20674547d7b528c52d8f496f8c fix-makefile_destdir.patch"
+sha512sums="
+5a9b26d90cf02e6f5b267e6e6416e91ac31115b124b05b4edd2dd785eea92a6d9c060f591dad6645784ff956a07555cb1bf11a35f4712d5bc308c4b6726da88a debconf_1.5.82.tar.xz
+df98c6d92675240691c2b68e36aa5c511887a21bef3a619c074b2c1814c228a39c488a9de03789c77cf67b1abd74521224451b4c2fe49331cd038986c006e74b fix-makefile_destdir.patch
+"
diff --git a/testing/debconf/fix-makefile_destdir.patch b/testing/debconf/fix-makefile_destdir.patch
index 7093e293502..24553f8252e 100644
--- a/testing/debconf/fix-makefile_destdir.patch
+++ b/testing/debconf/fix-makefile_destdir.patch
@@ -68,10 +68,10 @@
# Other libs and helper stuff.
- install -m 0644 confmodule.sh confmodule $(prefix)/usr/share/debconf/
- install frontend $(prefix)/usr/share/debconf/
-- install -m 0755 transition_db.pl fix_db.pl $(prefix)/usr/share/debconf/
+- install -m 0755 fix_db.pl $(prefix)/usr/share/debconf/
+ install -m 0644 confmodule.sh confmodule $(DESTDIR)$(PREFIX)/share/debconf/
+ install frontend $(DESTDIR)$(PREFIX)/share/debconf/
-+ install -m 0755 transition_db.pl fix_db.pl $(DESTDIR)$(PREFIX)/share/debconf/
++ install -m 0755 fix_db.pl $(DESTDIR)$(PREFIX)/share/debconf/
# Install essential programs.
- install -d $(prefix)/usr/sbin $(prefix)/usr/bin
+ install -d $(DESTDIR)$(PREFIX)/sbin $(DESTDIR)$(PREFIX)/bin
diff --git a/testing/deblob/APKBUILD b/testing/deblob/APKBUILD
new file mode 100644
index 00000000000..d7fc9505aa4
--- /dev/null
+++ b/testing/deblob/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=deblob
+pkgver=0.7
+pkgrel=0
+pkgdesc="Remove binary executables (blobs) from a directory"
+url="https://hacktivis.me/projects/deblob"
+arch="aarch64 riscv64 x86_64" # hare
+license="BSD-3-Clause"
+makedepends="hare"
+subpackages="$pkgname-doc"
+source="
+ deblob-$pkgver.tar.gz::https://git.sr.ht/~lanodan/deblob/archive/$pkgver.tar.gz
+ "
+
+build() {
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+92fe9d9a4fc7c3a33f53e9f414005da6820b00dbc835a31560cc0fde28e9ecf75b53b23cecbbf93c287052da1ca7166d46233546fd69b7bd7760f10d15487509 deblob-0.7.tar.gz
+"
diff --git a/testing/dehydrated/APKBUILD b/testing/dehydrated/APKBUILD
new file mode 100644
index 00000000000..049edb4801e
--- /dev/null
+++ b/testing/dehydrated/APKBUILD
@@ -0,0 +1,21 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=dehydrated
+pkgver=0.7.1
+pkgrel=0
+pkgdesc="shellscript letsencrypt/acme client"
+options="!check" #there are no checks
+url="https://github.com/dehydrated-io/dehydrated"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dehydrated-io/dehydrated/archive/refs/tags/v$pkgver.tar.gz"
+
+package() {
+ install -Dm755 dehydrated "$pkgdir"/usr/bin/dehydrated
+ install -Dm644 docs/examples/config "$pkgdir"/etc/dehydrated/config
+ install -Dm644 docs/examples/domains.txt "$pkgdir"/etc/dehydrated/domains.txt
+}
+
+sha512sums="
+1d584c3876cdc1ef213b2feb02e15d2b47ef2b6504e8a837ad45d9d14929a82de28bee7395a75659721ae18bd8f26f4f2759ad8eaef66c671c7085c9859f6555 dehydrated-0.7.1.tar.gz
+"
diff --git a/testing/delfin/APKBUILD b/testing/delfin/APKBUILD
new file mode 100644
index 00000000000..0c8dc1337c2
--- /dev/null
+++ b/testing/delfin/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=delfin
+pkgver=0.4.4
+pkgrel=0
+pkgdesc="Stream movies and TV shows from Jellyfin"
+url="https://delfin.avery.cafe/"
+arch="all !x86" # x86: fails to build
+license="GPL-3.0-only"
+depends="
+ gtk4.0
+ libadwaita
+ mpv
+ "
+makedepends="
+ cargo
+ cargo-auditable
+ clang
+ desktop-file-utils
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ mpv-dev
+ "
+source="delfin-$pkgver.tar.gz::https://codeberg.org/avery42/delfin/archive/v$pkgver.tar.gz
+ cargo-auditable.patch
+ "
+builddir="$srcdir/$pkgname"
+
+prepare() {
+ default_prepare
+ cargo fetch --locked
+}
+
+build() {
+ abuild-meson . output -Dprofile=release
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild -C output
+}
+
+package() {
+ cd "$builddir/output"
+ meson install --no-rebuild --destdir "$pkgdir"
+}
+
+sha512sums="
+6b48321bca2de86e74c3fcbb0fd072c1cdbc1d3ad9b59d323381b93ae4b3254c6c103e622e9b2452fa72a3e2ee38a0e9db00efef304f8eb201e254b82d90b2b2 delfin-0.4.4.tar.gz
+2b3f51bf47e847a959545844c37921c612b4b91387f94ad6b1a146be2ce81615274ea6f245eb6b08f21c2d506a7af1f4bfd358feddeacf3623b08e087292fe63 cargo-auditable.patch
+"
diff --git a/testing/delfin/cargo-auditable.patch b/testing/delfin/cargo-auditable.patch
new file mode 100644
index 00000000000..a1be67c6b5e
--- /dev/null
+++ b/testing/delfin/cargo-auditable.patch
@@ -0,0 +1,24 @@
+diff --git a/delfin/meson.build b/delfin/meson.build
+index 61283cd..0af6cd9 100644
+--- a/delfin/meson.build
++++ b/delfin/meson.build
+@@ -17,6 +17,7 @@ run_command(
+ )
+
+ cargo = find_program('cargo', required: true)
++cargo_auditable = find_program('cargo-auditable', required: true)
+
+-cargo_options = ['--target-dir', meson.project_build_root() / 'delfin']
++cargo_options = ['--target-dir', meson.project_build_root() / 'delfin', '--frozen']
+ rust_target = 'debug'
+
+ if get_option('profile') == 'release'
+@@ -33,7 +33,7 @@ custom_target(
+ output: meson.project_name(),
+ console: true,
+ command: [
+- cargo, 'build', cargo_options,
++ cargo, 'auditable', 'build', cargo_options,
+ '&&', 'cp', 'delfin' / rust_target / meson.project_name(), '@OUTPUT@',
+ ],
+ install: true,
diff --git a/testing/deluge/10-python38-logging.patch b/testing/deluge/10-python38-logging.patch
deleted file mode 100644
index a3c9ad4e99f..00000000000
--- a/testing/deluge/10-python38-logging.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://dev.deluge-torrent.org/changeset/351664ec071daa04
-Slated for 2.0.4 release
-diff --git a/deluge/log.py b/deluge/log.py
-index 75e8308b5..0f9877fdb 100644
---- a/deluge/log.py
-+++ b/deluge/log.py
-@@ -86,7 +86,7 @@ def critical(self, msg, *args, **kwargs):
- def exception(self, msg, *args, **kwargs):
- yield LoggingLoggerClass.exception(self, msg, *args, **kwargs)
-
-- def findCaller(self, stack_info=False): # NOQA: N802
-+ def findCaller(self, *args, **kwargs): # NOQA: N802
- f = logging.currentframe().f_back
- rv = '(unknown file)', 0, '(unknown function)'
- while hasattr(f, 'f_code'):
diff --git a/testing/deluge/APKBUILD b/testing/deluge/APKBUILD
deleted file mode 100644
index 9ba046214a4..00000000000
--- a/testing/deluge/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: August Klein <amatcoder@gmail.com>
-# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: August Klein <amatcoder@gmail.com>
-pkgname=deluge
-pkgver=2.0.3
-pkgrel=5
-pkgdesc="A lightweight, Free Software, cross-platform BitTorrent client"
-url="https://deluge-torrent.org/"
-arch="noarch"
-license="GPL-3.0-or-later"
-options="!check" # `setup.py check` run no test
-depends="
- py3-setuptools
- py3-twisted
- py3-rencode
- py3-openssl
- py3-xdg
- py3-pillow
- py3-mako
- py3-chardet
- py3-six
- py3-setproctitle
- py3-zope-interface
- py3-asn1
- py3-markupsafe
- py3-service_identity
- py3-pyhamcrest
- py3-hyperlink
- py3-libtorrent-rasterbar
- py3-gobject3
- py3-cairo
- py3-wheel
- "
-subpackages="$pkgname-doc"
-source="http://download.deluge-torrent.org/source/${pkgver%.*}/deluge-$pkgver.tar.xz
- 10-python38-logging.patch
- "
-
-replaces="$pkgname-lang" # Overwrite removed subpackage
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3abec24495b22ec10649865c7ce7c3271224c7d25c0647b43f3c177b7ccb45d4c5c593f8c89d8bc8eac85ae5dc737f9960827587912dd527bb96100304a7d480 deluge-2.0.3.tar.xz
-8ab11f87ddf62a7cba2d2783eec2c439fdc416e5d165ac6b510a9818c28573df32ef408bb16ca61d93b27bb5090782f5b4005a4ad50cfa9fa6dfb869aa2be57c 10-python38-logging.patch"
diff --git a/testing/desed/APKBUILD b/testing/desed/APKBUILD
new file mode 100644
index 00000000000..bbca5fd5f05
--- /dev/null
+++ b/testing/desed/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=desed
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Demystify and debug your sed scripts, from comfort of your terminal"
+url="https://github.com/SoptikHa2/desed"
+# riscv64: rust broken
+arch="all !riscv64"
+license="GPL-3.0-or-later"
+depends="sed" # needs GNU sed
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-doc"
+source="https://github.com/SoptikHa2/desed/archive/v$pkgver/desed-$pkgver.tar.gz
+ Cargo.lock
+ "
+
+
+prepare() {
+ default_prepare
+
+ mv "$srcdir"/Cargo.lock .
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+ install -D -m644 $pkgname.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+19849bc5f4c6513ce062a78a7c59b1f7ba6b53c6c9fc18150dbf367b2fa29443044afc683a3bb9289d5dc9a2f0e57b7cc497296d8532e53fbdc6f54ec84e0add desed-1.2.1.tar.gz
+86fbd9a43e7a82edebd949c1bc9157fed5df982334f920bcf11f202471bbafb9ae49ba14162f3553e382f46164151d988516a417ea46d00eb00afffc9dd31be4 Cargo.lock
+"
diff --git a/testing/desed/Cargo.lock b/testing/desed/Cargo.lock
new file mode 100644
index 00000000000..3f851eea59c
--- /dev/null
+++ b/testing/desed/Cargo.lock
@@ -0,0 +1,473 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "anyhow"
+version = "1.0.66"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cassowary"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "3.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+dependencies = [
+ "atty",
+ "bitflags",
+ "clap_lex",
+ "indexmap",
+ "once_cell",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "crossterm"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67"
+dependencies = [
+ "bitflags",
+ "crossterm_winapi",
+ "libc",
+ "mio",
+ "parking_lot",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
+]
+
+[[package]]
+name = "crossterm_winapi"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "desed"
+version = "1.2.1"
+dependencies = [
+ "anyhow",
+ "cfg-if",
+ "clap",
+ "crossterm",
+ "inotify",
+ "kqueue",
+ "tui",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "inotify"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf888f9575c290197b2c948dc9e9ff10bd1a39ad1ea8585f734585fa6b9d3f9"
+dependencies = [
+ "bitflags",
+ "futures-core",
+ "inotify-sys",
+ "libc",
+ "tokio",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "kqueue"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
+dependencies = [
+ "bitflags",
+ "libc",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.137"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+dependencies = [
+ "libc",
+ "mio",
+ "signal-hook",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+[[package]]
+name = "socket2"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+
+[[package]]
+name = "tokio"
+version = "1.21.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099"
+dependencies = [
+ "autocfg",
+ "libc",
+ "mio",
+ "pin-project-lite",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "tui"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccdd26cbd674007e649a272da4475fb666d3aa0ad0531da7136db6fab0e5bad1"
+dependencies = [
+ "bitflags",
+ "cassowary",
+ "crossterm",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
diff --git a/testing/desync/APKBUILD b/testing/desync/APKBUILD
new file mode 100644
index 00000000000..9fe94f29e57
--- /dev/null
+++ b/testing/desync/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=desync
+pkgver=0.9.5
+pkgrel=5
+pkgdesc="Alternative casync implementation"
+url="https://github.com/folbricht/desync"
+arch="all"
+license="BSD-3-Clause"
+makedepends="go"
+depends="fuse"
+source="$pkgname-$pkgver.tar.gz::https://github.com/folbricht/desync/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export GOFLAGS="$GOFLAGS -trimpath -mod=readonly -modcacherw"
+ mkdir build
+ go build -o build ./cmd/desync
+}
+
+check() {
+ # this test requires the fuse module to be loaded
+ if ! grep -Fxq "^fuse " /proc/modules; then
+ rm -rf mount-index_linux_test.go
+ fi
+ go test ./...
+}
+
+package() {
+ install -Dm755 ./build/desync -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+650b397e218d852ceb8e0df5ebc2c8177f607f6e52017d075e746c358e0a1d110cfb0e893760eb86fdf72f428ea12a1cd5cc3843e6569e1f078a139e08d07543 desync-0.9.5.tar.gz
+"
diff --git a/testing/detox/APKBUILD b/testing/detox/APKBUILD
index 351a3750b9d..7f5edd75192 100644
--- a/testing/detox/APKBUILD
+++ b/testing/detox/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: z3bra <willy at mailoo dot org>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=detox
-pkgver=1.3.0
-pkgrel=1
+pkgver=2.0.0
+pkgrel=0
pkgdesc="Utility for cleaning up filenames"
url="https://github.com/dharple/detox"
arch="all"
@@ -10,9 +10,7 @@ license="BSD-3-Clause"
makedepends="autoconf automake coreutils libtool"
subpackages="$pkgname-doc"
options="!check" # no upstream/available test-suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/dharple/detox/archive/v$pkgver.tar.gz"
-
-builddir="$srcdir/$pkgname-$pkgver"
+source="detox-$pkgver.tar.gz::https://github.com/dharple/detox/archive/v$pkgver.tar.gz"
prepare() {
default_prepare
@@ -20,7 +18,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -31,8 +28,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="e30d4a2151e4288036db04e0fe91273acf5a6d353126dce0ba19d4fe8a568078e58441fddfd49b6d5034a880e0eccd58a70024cfd2093ad610c6838303b45978 detox-1.3.0.tar.gz"
+sha512sums="
+a52e0f66caedce03d442dfe1f4b2f1db991c20dbc22b975c106266f1b5edcf653b22b166bbcae908c549371296c732898655002b3b95929fab5f4c03a526118f detox-2.0.0.tar.gz
+"
diff --git a/testing/deutex/APKBUILD b/testing/deutex/APKBUILD
index 22190bb9516..8d73f52aa92 100644
--- a/testing/deutex/APKBUILD
+++ b/testing/deutex/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: Antoine Fontaine <antoine.fontaine@epfl.ch>
-pkgname="deutex"
-pkgver="5.2.1"
-pkgrel=0
+# Maintainer:
+pkgname=deutex
+pkgver=5.2.2
+pkgrel=1
pkgdesc="WAD composer for Doom, Heretic, Hexen, and Strife"
url="https://github.com/Doom-Utils/deutex"
arch="all"
@@ -38,4 +38,4 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="976ba8ac3d3fef9cfec77272ed9b492abe1bae559633f4460c1a1f52ba373c0d2953831a18956afde0935ab7759c3bcb3274a8dec910c78af10044d0f568ba92 deutex-5.2.1.tar.gz"
+sha512sums="b64511c8af4d7a0a65fa3951b4ca2d41aac2d6d5d21fe8ec336a684718f7e7940e8cb420201b5d6897690a573d846f22723aa72296bc8cc0dabda680ed5845e3 deutex-5.2.2.tar.gz"
diff --git a/testing/devil/APKBUILD b/testing/devil/APKBUILD
new file mode 100644
index 00000000000..4bf660656b1
--- /dev/null
+++ b/testing/devil/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=devil
+pkgver=1.8.0
+pkgrel=0
+pkgdesc="A full featured cross-platform image library"
+arch="all"
+url="https://openil.sourceforge.net/"
+license="LGPL-2.1-only"
+makedepends="$depends_dev
+ cmake
+ jasper-dev
+ lcms2-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ samurai
+ "
+source="
+ https://downloads.sourceforge.net/openil/DevIL-$pkgver.tar.gz
+
+ fix_mismatching_signatures.patch
+ "
+subpackages="$pkgname-dev"
+builddir="$srcdir/DevIL/DevIL"
+options="!check" # no unit tests provided
+
+build() {
+ # "register" storage class specifier is no longer allowed in modern C++
+ # standards. Until upstream removes the qualifier, we can just ignore the
+ # warning.
+ export CXXFLAGS="$CXXFLAGS -Wno-register"
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+103fa51f4094af0fe988bf9520e1b9178900f980b72226e64ede60b6b0938a646c670a37372214edb557e492947cd5af5012a3ac906734a5ea83e072f81db583 DevIL-1.8.0.tar.gz
+779ab33b29c792aa737a858e85b6ece26e9b88818ba734ac7eee9655c447f0f32ec5fe6e520db712e903fc2c945b933a173b149759cd764dcb4af3fcf94dc6c0 fix_mismatching_signatures.patch
+"
diff --git a/testing/devil/fix_mismatching_signatures.patch b/testing/devil/fix_mismatching_signatures.patch
new file mode 100644
index 00000000000..e5136b61c13
--- /dev/null
+++ b/testing/devil/fix_mismatching_signatures.patch
@@ -0,0 +1,21 @@
+This fixes mismatching function signatures when using function pointers to
+iJp2_file_read and iJp2_file_write in jas_stream_opts_t.
+
+--- a/src-IL/src/il_jp2.cpp
++++ b/src-IL/src/il_jp2.cpp
+@@ -314,13 +314,13 @@
+
+
+
+-static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, int cnt)
++static ssize_t iJp2_file_read(jas_stream_obj_t *obj, char *buf, size_t cnt)
+ {
+ obj;
+ return iread(buf, 1, cnt);
+ }
+
+-static int iJp2_file_write(jas_stream_obj_t *obj, char *buf, int cnt)
++static ssize_t iJp2_file_write(jas_stream_obj_t *obj, const char *buf, size_t cnt)
+ {
+ obj;
+ return iwrite(buf, 1, cnt);
diff --git a/testing/dex/APKBUILD b/testing/dex/APKBUILD
new file mode 100644
index 00000000000..e777d8d35b0
--- /dev/null
+++ b/testing/dex/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=dex
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="program to generate and execute DesktopEntry files of the Application type"
+url="https://github.com/jceb/dex"
+arch="all"
+license="GPL-3.0-or-later"
+depends="python3"
+makedepends="py3-sphinx"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jceb/dex/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no testsuite
+
+build() {
+ make
+}
+
+package() {
+ make install PREFIX=/usr MANPREFIX=/usr/share/man DESTDIR="$pkgdir"
+}
+
+sha512sums="
+d68f5482cb0948f27a724437ddfc6de9a0f502bfd0d5c60c76fb85dda3c30e4c432013e530f6a91138c9ac9ff36b3824cd5e382e9d29bb9fb2ec2b9de4133094 dex-0.9.0.tar.gz
+"
diff --git a/testing/dfl-applications/APKBUILD b/testing/dfl-applications/APKBUILD
new file mode 100644
index 00000000000..ca99143c69c
--- /dev/null
+++ b/testing/dfl-applications/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=dfl-applications
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Thin wrapper around QApplication, QGuiApplication and QCoreApplication"
+url="https://gitlab.com/desktop-frameworks/applications/"
+arch="all"
+license="GPL-3.0-only"
+makedepends="qt5-qtbase-dev meson dfl-ipc-dev"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/desktop-frameworks/applications/-/archive/v$pkgver/applications-v$pkgver.tar.gz"
+builddir="$srcdir/applications-v$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+3265053d39c90ffa2a35b430bedb22c0c8ea11068146eb87dac021554757475ac7c9085e67c892f6e128e36f6ffc34de082e72e178e8e99ae6d65ecb73632cbe dfl-applications-0.2.0.tar.gz
+"
diff --git a/testing/dfl-ipc/APKBUILD b/testing/dfl-ipc/APKBUILD
new file mode 100644
index 00000000000..36e4ac4790d
--- /dev/null
+++ b/testing/dfl-ipc/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=dfl-ipc
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Very simple set of IPC classes for inter-process communication"
+url="https://gitlab.com/desktop-frameworks/ipc"
+arch="all"
+license="GPL-3.0-only"
+makedepends="qt5-qtbase-dev meson"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/desktop-frameworks/ipc/-/archive/v$pkgver/ipc-v$pkgver.tar.gz"
+builddir="$srcdir/ipc-v$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+bb143bf336aa400bea6187b230eda82a9f42c15d881a43c6af87af7d2d340f96eb0e2b1a8941bc7200d0721d1978acf5a42bee42b137472a17a89c3c8d149bd3 dfl-ipc-0.2.0.tar.gz
+"
diff --git a/testing/dfl-login1/APKBUILD b/testing/dfl-login1/APKBUILD
new file mode 100644
index 00000000000..f36e63c8e82
--- /dev/null
+++ b/testing/dfl-login1/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=dfl-login1
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Implementation of systemd/elogind for DFL"
+url="https://gitlab.com/desktop-frameworks/login1"
+arch="all"
+license="GPL-3.0-only"
+makedepends="qt5-qtbase-dev meson"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/desktop-frameworks/login1/-/archive/v$pkgver/login1-v$pkgver.tar.gz"
+builddir="$srcdir/login1-v$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+c95717a5c731d894a1d21c14c305f14cfaf026ed8ad752de5a68fbef814244c1db9b3d9c3dee858d44018b4c433dc1dc99c8e9ed7abdbc5ca55b14c697bbbe74 dfl-login1-0.2.0.tar.gz
+"
diff --git a/testing/dfl-sni/APKBUILD b/testing/dfl-sni/APKBUILD
new file mode 100644
index 00000000000..a791fa7a42e
--- /dev/null
+++ b/testing/dfl-sni/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=dfl-sni
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Implementation of the XDG Status Notification Specifications"
+url="https://gitlab.com/desktop-frameworks/status-notifier/"
+arch="all"
+license="GPL-3.0-only"
+makedepends="qt5-qtbase-dev meson"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/desktop-frameworks/status-notifier/-/archive/v$pkgver/status-notifier-v$pkgver.tar.gz"
+builddir="$srcdir/status-notifier-v$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+a513eba3402094287b54636c0af5a9eea0fb26440923ca0b0ba28ceeec5a56f8336b1611cc65fe4b61c796b44d2abdc16e71dc726ecd4c69d52864da50dc6fda dfl-sni-0.2.0.tar.gz
+"
diff --git a/testing/dfu-programmer/APKBUILD b/testing/dfu-programmer/APKBUILD
new file mode 100644
index 00000000000..82eac810451
--- /dev/null
+++ b/testing/dfu-programmer/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Peter Shkenev <santurysim@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=dfu-programmer
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Command-line programmer for Atmel USB microcontrollers"
+url="https://dfu-programmer.github.io/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ bash
+ libusb-dev
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ "
+source="
+ https://github.com/dfu-programmer/dfu-programmer/releases/download/v$pkgver/dfu-programmer-$pkgver.tar.gz
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 dfu_completion "$pkgdir"/usr/share/bash-completion/completions/dfu-programmer
+}
+
+sha512sums="
+76946be7c20522e6da512016b09b19a144ec6af70f1b01d697b12efb99cd3177233fe6778c4a4efe0d287b095c8e99a616ba013bf08843601c940bbea4283639 dfu-programmer-1.1.0.tar.gz
+"
diff --git a/testing/dfu-util/APKBUILD b/testing/dfu-util/APKBUILD
index bc7375c34c6..3270781b3e1 100644
--- a/testing/dfu-util/APKBUILD
+++ b/testing/dfu-util/APKBUILD
@@ -1,31 +1,28 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=dfu-util
-pkgver=0.9
-pkgrel=0
+pkgver=0.11
+pkgrel=1
pkgdesc="Host side implementation of the DFU 1.0 and DFU 1.1 specifications"
-url="http://dfu-util.sourceforge.net/"
+url="https://dfu-util.sourceforge.net/"
arch="all"
license="GPL-2.0-only"
-depends=
makedepends="libusb-dev"
subpackages="$pkgname-doc"
-source="http://$pkgname.sourceforge.net/releases/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
+source="https://dfu-util.sourceforge.net/releases/dfu-util-$pkgver.tar.gz"
-build () {
- cd "$builddir"
+build() {
./configure --prefix=/usr
make
}
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
check() {
- cd "$builddir"
make check
}
-sha512sums="caa7148b7a9004e2b1f7bc4f1a26b48abfe311743bc0eeed1ab57459910371affc39b6fe7e74b7cac6ca9de41a9901b7a970253ca92d7d66d5008f8a11d2c952 dfu-util-0.9.tar.gz"
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+fc5304a483ac10e35bf1b9304becdeb407b2e44d8ac51474d2fa17877e6cf71b0126f7e12ebb331d75e7adeb9c173ff5cf083a06ded5847dbe477534cf26a553 dfu-util-0.11.tar.gz
+"
diff --git a/testing/dhewm3/APKBUILD b/testing/dhewm3/APKBUILD
index 82e96cede2f..1fb4031621f 100644
--- a/testing/dhewm3/APKBUILD
+++ b/testing/dhewm3/APKBUILD
@@ -1,38 +1,44 @@
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=dhewm3
-pkgver=1.5.1_rc1
-_realver=1.5.1_PRE1
+pkgver=1.5.2
pkgrel=0
pkgdesc="Doom 3 engine with native 64-bit support, SDL, and OpenAL"
url="https://dhewm3.org/"
-arch="x86_64 x86" #disabled for the other architectures due to compiling problems
+arch="all !riscv64"
license="GPL-3.0-only"
-depends="curl libjpeg-turbo libvorbis sdl2 zlib libogg libpng libvorbis"
-makedepends="openal-soft-dev make cmake sdl2-dev zlib-dev libjpeg-turbo-dev libogg-dev libpng-dev libvorbis-dev"
+depends="curl libogg libpng libvorbis"
+makedepends="cmake libjpeg-turbo-dev libogg-dev libpng-dev libvorbis-dev
+ openal-soft-dev sdl2-dev zlib-dev"
options="!check" # make check not implemented
-source="$pkgname-$_realver.tar.gz::https://github.com/dhewm/dhewm3/archive/$_realver.tar.gz
- fix-musl.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/dhewm/dhewm3/archive/$pkgver.tar.gz
dhewm3.desktop
dhewm3.png"
-builddir="$srcdir/$pkgname-$_realver/neo"
+builddir="$srcdir/$pkgname-$pkgver/neo"
build() {
- cmake CMakeLists.txt \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DD3XP=1 \
- -DDEDICATED=1 .
- make
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DD3XP=1 \
+ -DDEDICATED=1 \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" libdir="$pkgdir/usr/lib" install
+ DESTDIR="$pkgdir" cmake --install build
install -Dm644 "$srcdir"/dhewm3.desktop "$pkgdir/usr/share/applications/dhewm3.desktop"
install -Dm644 "$srcdir"/dhewm3.png "$pkgdir/usr/share/pixmaps/dhewm3.png"
}
-sha512sums="73b2c43e16a82bc1a4fd6646493e7c69049a3c3abaac2206436f10d6180d616ad38c2c3480538e2690654c2cb73ec1be47d312939d64fd92ce03aff7fe64ceba dhewm3-1.5.1_PRE1.tar.gz
-396b1b4fe1889abf14141887e4a490b6069234784fd934ee120c68bf868febf767cf900a59871453ebd3adf62bf74bc7fba2bf5169b4594b6e735e0888930566 fix-musl.patch
+sha512sums="
+37aa177b6366e37e836a3fe1da5d7dd0869a8d3788a9a70b928355a161034c8b8b6b66b91f7383cdc0bd9c78cbf8fde1129c6ad6405a244069368fbf230e0137 dhewm3-1.5.2.tar.gz
377d34c4d9ab21b09a501431e1bf8d123d3655a47499a7664db85168e2f85b73c8792bc958026593299eac57449f813b10047beb302784cc53d096e1cc37efbd dhewm3.desktop
-13f7a50d1f57d35bf582c3d99ff4dea4b18e60827f62aa640b7b43d419a3f4f478b45311d2abacfd2aa2f033c59f5c6253aa4916fc234b41eb6cc70d5eeac17c dhewm3.png"
+11957d10fd685c5b7967c6baf7e6c75e6995f76a028fa0dba75c4d596e84acb4f9ab863c0ae0b4e164483ef089111f4b3eb31fd5c770f0e77048112210b60b97 dhewm3.png
+"
diff --git a/testing/dhewm3/dhewm3.png b/testing/dhewm3/dhewm3.png
index 69ac661a806..1eeb1704958 100644
--- a/testing/dhewm3/dhewm3.png
+++ b/testing/dhewm3/dhewm3.png
Binary files differ
diff --git a/testing/dhewm3/fix-musl.patch b/testing/dhewm3/fix-musl.patch
deleted file mode 100644
index f4b33eb0c52..00000000000
--- a/testing/dhewm3/fix-musl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/sys/posix/posix_main.cpp
-+++ b/sys/posix/posix_main.cpp
-@@ -362,7 +362,7 @@
- static const int crashSigs[] = { SIGILL, SIGABRT, SIGFPE, SIGSEGV };
- static const char* crashSigNames[] = { "SIGILL", "SIGABRT", "SIGFPE", "SIGSEGV" };
-
--#if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__)
-+#if ( defined(__linux__) && defined(__GLIBC__) ) || defined(__FreeBSD__) || defined(__APPLE__)
- // TODO: https://github.com/ianlancetaylor/libbacktrace looks interesting and also supports windows apparently
- #define D3_HAVE_BACKTRACE
- #include <execinfo.h>
---- a/sys/posix/posix_net.cpp
-+++ b/sys/posix/posix_net.cpp
-@@ -644,7 +644,7 @@
- return -1;
- }
-
--#if defined(_GNU_SOURCE)
-+#if defined(_GNU_SOURCE) && defined(TEMP_FAILURE_RETRY)
- // handle EINTR interrupted system call with TEMP_FAILURE_RETRY - this is probably GNU libc specific
- if ( ( nbytes = TEMP_FAILURE_RETRY( read( fd, data, size ) ) ) == -1 ) {
- #else
-@@ -701,7 +701,7 @@
- return -1;
- }
-
--#if defined(_GNU_SOURCE)
-+#if defined(_GNU_SOURCE) && defined(TEMP_FAILURE_RETRY)
- // handle EINTR interrupted system call with TEMP_FAILURE_RETRY - this is probably GNU libc specific
- if ( ( nbytes = TEMP_FAILURE_RETRY ( write( fd, data, size ) ) ) == -1 ) {
- #else
diff --git a/testing/diceware/APKBUILD b/testing/diceware/APKBUILD
new file mode 100644
index 00000000000..d64421a54eb
--- /dev/null
+++ b/testing/diceware/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=diceware
+pkgver=0.10
+pkgrel=1
+pkgdesc="Passphrases you will remember"
+url="https://github.com/ulif/diceware"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/ulif/diceware/archive/v$pkgver/diceware-$pkgver.tar.gz
+ no-pkg_resources.patch
+ "
+
+prepare() {
+ default_prepare
+
+ sed -i "s/version = .*/version = '$pkgver'/" diceware/__about__.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 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+8fa8979c39ccb4b4a2de2f326794d3ea685edfb280fc24b0709a891636201d7c2206e5a804705132facf2f9c81866f32c3f950817fa5fc88cc2bf0300c62d9ba diceware-0.10.tar.gz
+9598d2576bf75933a92b003b52e38964e4949197bbdbed5edf95b605e7634fbae814d88f26fee43772f0341ef1bd2d2325d3a7638ba0d3598d308607476f7805 no-pkg_resources.patch
+"
diff --git a/testing/diceware/no-pkg_resources.patch b/testing/diceware/no-pkg_resources.patch
new file mode 100644
index 00000000000..3a41ccd5ad5
--- /dev/null
+++ b/testing/diceware/no-pkg_resources.patch
@@ -0,0 +1,247 @@
+Patch-Source: https://github.com/ulif/diceware/pull/62
+From 4e11c42940a60518f7b895ca036d461bc2bcbb91 Mon Sep 17 00:00:00 2001
+From: Hartmut Goebel <h.goebel@crazy-compilers.com>
+Date: Mon, 29 Apr 2019 10:42:12 +0200
+Subject: [PATCH 1/4] Get package version from module `__about__`.
+
+---
+ diceware/__about__.py | 1 +
+ diceware/__init__.py | 3 +--
+ setup.py | 5 ++++-
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+ create mode 100644 diceware/__about__.py
+
+diff --git a/diceware/__about__.py b/diceware/__about__.py
+new file mode 100644
+index 0000000..2ed0450
+--- /dev/null
++++ b/diceware/__about__.py
+@@ -0,0 +1,6 @@
++version = "0.9.7.dev0"
++random_sources = {
++ 'system': 'diceware.random_sources:SystemRandomSource',
++ 'realdice': 'diceware.random_sources:RealDiceRandomSource',
++ # add more sources of randomness here...
++}
+diff --git a/diceware/__init__.py b/diceware/__init__.py
+index 6f00228..b0d0880 100644
+--- a/diceware/__init__.py
++++ b/diceware/__init__.py
+@@ -16,23 +16,20 @@
+ """diceware -- rememberable passphrases
+ """
+ import argparse
+-import pkg_resources
+ import sys
+ import logging
+ from errno import ENOENT
+ from random import SystemRandom
++from .__about__ import version as __version__
+ from diceware.config import get_config_dict
+ from diceware.logger import configure
+ from diceware.wordlist import (
+ WordList, get_wordlist_path, get_wordlists_dir, get_wordlist_names,
+ )
+
+-__version__ = pkg_resources.get_distribution('diceware').version
+-
+ #: Special chars inserted on demand
+ SPECIAL_CHARS = r"~!#$%^&*()-=+[]\{}:;" + r'"' + r"'<>?/0123456789"
+
+-
+ GPL_TEXT = (
+ """
+ This program is free software: you can redistribute it and/or modify
+@@ -73,10 +70,16 @@ def get_random_sources():
+ that provides a `choice(sequence)` method that works like the
+ respective method in the standard Python lib `random` module.
+ """
++ from .__about__ import random_sources
+ result = dict()
+- for entry_point in pkg_resources.iter_entry_points(
+- group="diceware_random_sources"):
+- result.update({entry_point.name: entry_point.load()})
++ for name, spec in random_sources.items():
++ module, func = spec.split(":")
++ module = __import__(module, fromlist=['__name__'], level=0)
++ try:
++ func = getattr(module, func)
++ except AttributeError as exc:
++ raise ImportError(str(exc))
++ result[name] = func
+ return result
+
+
+@@ -84,7 +87,7 @@ def handle_options(args):
+ """Handle commandline options.
+ """
+ plugins = get_random_sources()
+- random_sources = plugins.keys()
++ rnd_sources = plugins.keys()
+ wordlist_names = get_wordlist_names()
+ defaults = get_config_dict()
+ parser = argparse.ArgumentParser(
+@@ -108,11 +111,11 @@ def handle_options(args):
+ '-d', '--delimiter', default='',
+ help="Separate words by DELIMITER. Empty string by default.")
+ parser.add_argument(
+- '-r', '--randomsource', default='system', choices=random_sources,
++ '-r', '--randomsource', default='system', choices=rnd_sources,
+ metavar="SOURCE",
+ help=(
+ "Get randomness from this source. Possible values: `%s'. "
+- "Default: system" % "', `".join(sorted(random_sources))))
++ "Default: system" % "', `".join(sorted(rnd_sources))))
+ parser.add_argument(
+ '-w', '--wordlist', default=['en_eff'], choices=wordlist_names,
+ metavar="NAME", nargs='*',
+diff --git a/diceware/__main__.py b/diceware/__main__.py
+new file mode 100644
+index 0000000..031df43
+--- /dev/null
++++ b/diceware/__main__.py
+@@ -0,0 +1,2 @@
++from . import main
++main()
+diff --git a/diceware/random_sources.py b/diceware/random_sources.py
+index 72f69a7..8bc6d35 100644
+--- a/diceware/random_sources.py
++++ b/diceware/random_sources.py
+@@ -15,7 +15,7 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ """Sources of randomness.
+
+-Please register all sources as entry point in ``setup.py``. Look out for
++Please register all sources as entry point in ``__about__.py``. Look out for
+ "SystemRandomSource" for an example.
+
+ For developers of interfaces to other sources of randomness: Currently,
+@@ -45,21 +45,15 @@ If you want to manage own commandline options with your plugin, you can
+ implement a `classmethod` called ``update_argparser(parser)`` which gets
+ an `argparse.ArgumentParser` instance as argument (no pun intended).
+
+-Finally, to register the source, add some stanza in `setup.py` of your
+-project that looks like::
++Finally, to register the source, add some stanza in `__about__.py`
++that looks like::
+
+ # ...
+- setup(
+- # ...
+- entry_points={
+- # console scripts and other entry points...
+- 'diceware_random_sources': [
+- 'myrandom = mypkg.mymodule:MyRandomSource',
+- 'myothersrc = mypkg.mymodule:MyOtherSource',
+- ],
+- },
+- # ...
+- )
++ random_sources' = {
++ # ...
++ 'myrandom': 'mypkg.mymodule:MyRandomSource',
++ 'myothersrc': 'mypkg.mymodule:MyOtherSource',
++ }
+ # ...
+
+ Here the `myrandom` and `myothersrc` lines register random sources that
+diff --git a/setup.py b/setup.py
+index 3a7228e..8a82624 100644
+--- a/setup.py
++++ b/setup.py
+@@ -2,8 +2,12 @@ import os
+ from setuptools import setup
+
+
+-def read(fname):
+- return open(os.path.join(os.path.dirname(__file__), fname)).read()
++def read(*parts):
++ with open(os.path.join(os.path.dirname(__file__), *parts)) as fp:
++ return fp.read()
++
++version = {}
++exec(read("diceware", "__about__.py"), version)
+
+
+ setup_requires = [
+@@ -27,7 +31,7 @@ docs_require = [
+
+ setup(
+ name="diceware",
+- version="0.10",
++ version=version["version"],
+ author="Uli Fouquet",
+ author_email="uli@gnufix.de",
+ description=(
+@@ -75,10 +79,5 @@ setup(
+ 'console_scripts': [
+ 'diceware = diceware:main',
+ ],
+- 'diceware_random_sources': [
+- 'system = diceware.random_sources:SystemRandomSource',
+- 'realdice = diceware.random_sources:RealDiceRandomSource',
+- # add more sources of randomness here...
+- ],
+ },
+ )
+diff --git a/tests/test_diceware.py b/tests/test_diceware.py
+index 7867101..c52bb8f 100644
+--- a/tests/test_diceware.py
++++ b/tests/test_diceware.py
+@@ -180,6 +180,14 @@ class TestDicewareModule(object):
+ assert 'system' in sources_dict
+ assert isinstance(sources_dict['system'], type)
+
++ def test_get_random_sources_non_existing(self, monkeypatch):
++ import diceware
++ monkeypatch.setattr(
++ diceware.__about__, 'random_sources',
++ {'foo': 'diceware.random_sources:NotExistingSource'})
++ with pytest.raises(ImportError):
++ get_random_sources()
++
+ def test_insert_special_char(self):
+ # we can insert special chars in words.
+ fake_rnd = FakeRandom()
+diff --git a/tests/test_random_sources.py b/tests/test_random_sources.py
+index 91f3b09..a544357 100644
+--- a/tests/test_random_sources.py
++++ b/tests/test_random_sources.py
+@@ -1,12 +1,11 @@
+ from __future__ import unicode_literals
+-import pkg_resources
+ import pytest
+ import sys
+ import argparse
+ from conftest import InputMock
+ from io import StringIO
+ from itertools import product, chain
+-from diceware import main
++from diceware import main, get_random_sources
+ from diceware.random_sources import (
+ SystemRandomSource, RealDiceRandomSource,
+ )
+@@ -38,10 +37,7 @@ class TestSystemRandomSource(object):
+ def test_registered_as_system(self):
+ # The SystemRandomInstance is registered as entry point with
+ # name 'system' in group 'diceware_random_sources'
+- sources_dict = dict()
+- for entry_point in pkg_resources.iter_entry_points(
+- group="diceware_random_sources"):
+- sources_dict.update({entry_point.name: entry_point.load()})
++ sources_dict = get_random_sources()
+ assert 'system' in sources_dict
+ assert sources_dict['system'] == SystemRandomSource
+
+@@ -110,10 +106,7 @@ class TestRealDiceRandomSource(object):
+ def test_registered_as_realdice(self):
+ # The RealDiceRandomSource is registered as entry point with
+ # name 'realdice' in group 'diceware_random_sources'
+- sources_dict = dict()
+- for entry_point in pkg_resources.iter_entry_points(
+- group="diceware_random_sources"):
+- sources_dict.update({entry_point.name: entry_point.load()})
++ sources_dict = get_random_sources()
+ assert 'realdice' in sources_dict
+ assert sources_dict['realdice'] == RealDiceRandomSource
+
diff --git a/testing/diebahn/APKBUILD b/testing/diebahn/APKBUILD
new file mode 100644
index 00000000000..3f9a83b4675
--- /dev/null
+++ b/testing/diebahn/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Usia Bechtle <usia@bechtlebox.de>
+# Maintainer: Usia Bechtle <usia@bechtlebox.de>
+pkgname=diebahn
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="GTK4 frontend for the travel information of the german railway"
+url="https://gitlab.com/schmiddi-on-mobile/railway"
+# s390x, ppc64le, riscv64: rust-ring
+arch="all !s390x !ppc64le !riscv64"
+license="GPL-3.0-or-later"
+makedepends="
+ cargo
+ desktop-file-utils
+ gtk4.0-dev
+ libadwaita-dev
+ libglibutil-dev
+ meson
+ "
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/schmiddi-on-mobile/railway/-/archive/$pkgver/railway-$pkgver.tar.gz"
+subpackages="$pkgname-lang"
+options="!check" # no tests
+builddir="$srcdir/railway-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+227650042752567bedcbef3eee1cb29dbb23b162f38934d3c51cfd2ff75ae58dbc7d3365083732b46013ba1b2d71c3f2be5d49cb7b2d96b66b6e405104516618 diebahn-2.0.0.tar.gz
+"
diff --git a/testing/diffoscope/APKBUILD b/testing/diffoscope/APKBUILD
deleted file mode 100644
index 9f5d203e76f..00000000000
--- a/testing/diffoscope/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=diffoscope
-pkgver=146
-pkgrel=0
-pkgdesc="In-depth comparison of files, archives, and directories"
-options="!check" # Requires unpackaged 'tlsh'
-url="https://diffoscope.org/"
-arch="noarch !mips !mips64"
-license="GPL-3.0-or-later"
-makedepends="python3-dev py3-setuptools py3-docutils"
-depends="py3-magic py3-libarchive-c"
-checkdepends="py3-pytest gzip bzip2 unzip libarchive-tools"
-source="https://salsa.debian.org/reproducible-builds/diffoscope/-/archive/$pkgver/diffoscope-$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9ca3dcac99bc863032d23df38866f98b8ea897da97379e0bd0e35c194a3c1a5abca624a10384b4c8b27b5a2371fade7a8b350b6a25ed05c4a2679e6ed046a1a2 diffoscope-146.tar.gz"
diff --git a/testing/diffstat/APKBUILD b/testing/diffstat/APKBUILD
deleted file mode 100644
index a75b5067927..00000000000
--- a/testing/diffstat/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Leszek Cimała <ernierasta@zori.cz>
-# Maintainer:
-pkgname=diffstat
-pkgver=1.63
-pkgrel=0
-pkgdesc="diffstat reads the output of diff and displays a histogram of the insertions, deletions, and modifications per-file."
-url="https://invisible-island.net/diffstat"
-arch="all"
-license="MIT"
-subpackages="$pkgname-doc"
-source="https://invisible-island.net/datafiles/release/diffstat.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="e1319f95088e615d442b0b02af922605d0c76e15ba2f0e8cf8c4db56949ac63f4a6e3e42099254480b9aab388cbd6550f515ed4d4995c6723d24f392d1872b16 diffstat.tar.gz"
diff --git a/testing/ding-libs/APKBUILD b/testing/ding-libs/APKBUILD
index 2abc6c263ac..07b7c009571 100644
--- a/testing/ding-libs/APKBUILD
+++ b/testing/ding-libs/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Vince Mele <vmele@inoc.com>
# Maintainer: Vince Mele <vmele@inoc.com>
pkgname=ding-libs
-pkgver=0.6.1
-pkgrel=5
+pkgver=0.6.2
+pkgrel=4
pkgdesc="'D is not GLib' utility libraries"
url="https://pagure.io/SSSD/ding-libs/"
arch="all"
@@ -13,12 +13,18 @@ depends=""
makedepends="icu-dev gettext-dev libintl"
install=""
subpackages="$pkgname-dev"
-source="https://releases.pagure.org/SSSD/$pkgname/$pkgname-$pkgver.tar.gz
+source="https://github.com/SSSD/ding-libs/releases/download/$pkgver/ding-libs-$pkgver.tar.gz
musl-fixes.patch
- path_utils_ut-allow-single-as-well.patch
"
builddir="$srcdir/$pkgname-$pkgver"
+prepare() {
+ default_prepare
+
+ #update_config_sub # No update needed for ./build/config.sub
+ #update_config_guess # No update needed for ./build/config.guess
+}
+
build() {
cd "$builddir"
export LDFLAGS="$LDFLAGS -lintl"
@@ -38,6 +44,7 @@ package() {
rm -rf $pkgdir/usr/share
}
-sha512sums="335a0925bfa7cc113e86c91ad3f2c8aac12711879d5c9b62660140a4b749335a74024c987fcd2304dd78176362997b3e0ebd745193aaffab7a368e2873118628 ding-libs-0.6.1.tar.gz
-e0333f963d32963b863d0d1f78b27d385ee909d1f118586c789814d7d63870dfc206f8cd14aee71ee95fc1a44ce01b88873a9f5b2ea3ccc2f018b1b6a1eca2a5 musl-fixes.patch
-f9b1cb90081652d286d1a0bb853c04dbd98a6b39da235bd9eb3c095631033e2d967f8d81e2284bafbf905caadc63873b96a69744939463343c677458d851cef0 path_utils_ut-allow-single-as-well.patch"
+sha512sums="
+566172e0addb0ee6e0ebd12874d3b72f2fa6bcb1ecc628c0c529984193290fae554efc40f52d2cec675bffab32a36183e47ec629db25e83ed2995f1049c64703 ding-libs-0.6.2.tar.gz
+22cdec129b19fbc7caf1c56004cd2d00197719bc1dc9835a5d74228affe947b93061ad57612a36b75032891e8e5d4d6970bbc9c6b0057659541686c76770221e musl-fixes.patch
+"
diff --git a/testing/ding-libs/musl-fixes.patch b/testing/ding-libs/musl-fixes.patch
index 6855a3b86cc..c6562abd32f 100644
--- a/testing/ding-libs/musl-fixes.patch
+++ b/testing/ding-libs/musl-fixes.patch
@@ -1,25 +1,25 @@
---- ding-libs-0.6.1/ini/ini_validators_ut_check.c
-+++ ding-libs-0.6.1-musl/ini/ini_validators_ut_check.c
-@@ -606,7 +606,7 @@
+--- a/ini/ini_validators_ut_check.c
++++ b/ini/ini_validators_ut_check.c
+@@ -608,7 +608,7 @@ START_TEST(test_ini_allowed_options_wrong_regex)
ret = strcmp(errmsg,
"[rule/options_for_foo]: Cannot compile regular expression "
"from option 'section_re'. "
- "Error: 'Unmatched [ or [^'");
+ "Error: 'Missing ']''");
- fail_unless(ret == 0, "Got msg: [%s]", errmsg);
- ini_errobj_next(errobj);
-
-@@ -1027,7 +1027,7 @@
+ if (ret != 0) {
+ ret = strcmp(errmsg,
+ "[rule/options_for_foo]: Cannot compile regular "
+@@ -1042,7 +1042,7 @@ START_TEST(test_ini_allowed_sections_wrong_regex)
errmsg = ini_errobj_get_msg(errobj);
ret = strcmp(errmsg,
"[rule/section_list]: Validator failed to use regex "
- "[^foo\\(*$]:[Unmatched ( or \\(]");
+ "[^foo\\(*$]:[Missing ')']");
- fail_unless(ret == 0, "Got msg: [%s]", errmsg);
- ini_errobj_next(errobj);
-
---- ding-libs-0.6.1/path_utils/path_utils.c
-+++ ding-libs-0.6.1-musl/path_utils/path_utils.c
+ if (ret !=0) {
+ ret = strcmp(errmsg,
+ "[rule/section_list]: Validator failed to use regex "
+--- a/path_utils/path_utils.c
++++ b/path_utils/path_utils.c
@@ -31,7 +31,7 @@
#include <stdlib.h>
#include <unistd.h>
diff --git a/testing/ding-libs/path_utils_ut-allow-single-as-well.patch b/testing/ding-libs/path_utils_ut-allow-single-as-well.patch
deleted file mode 100644
index 08cfe09b82d..00000000000
--- a/testing/ding-libs/path_utils_ut-allow-single-as-well.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 4236e323e8ab4f13770e1ac9e94666b304b693fb Mon Sep 17 00:00:00 2001
-From: Henrik Riomar <henrik.riomar@gmail.com>
-Date: Tue, 24 Jul 2018 21:59:36 +0000
-Subject: [PATCH] path_utils_ut: allow single / as well
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_266
- Multiple successive slashes are considered to be the same as one slash.
-
-When running the tests on a musl libc system
- get_dirname(p, PATH_MAX, "//foo//")
-actually results in a / and not //
-
-Reviewed-by: Michal Židek <mzidek@redhat.com>
----
- path_utils/path_utils_ut.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/path_utils/path_utils_ut.c b/path_utils/path_utils_ut.c
-index 27c99b6..061abfb 100644
---- a/path_utils/path_utils_ut.c
-+++ b/path_utils/path_utils_ut.c
-@@ -62,7 +62,7 @@ START_TEST(test_dirname)
- fail_unless_str_equal(p, "//foo");
-
- fail_unless(get_dirname(p, PATH_MAX, "//foo//") == SUCCESS);
-- fail_unless_str_equal(p, "//");
-+ fail_unless(!strcmp(p, "/") || !strcmp(p, "//"));
-
- fail_unless(get_dirname(p, PATH_MAX, "foo//bar") == SUCCESS);
- fail_unless_str_equal(p, "foo");
---
-2.18.0
-
diff --git a/testing/dinit-alpine/APKBUILD b/testing/dinit-alpine/APKBUILD
new file mode 100644
index 00000000000..e446d4e2f57
--- /dev/null
+++ b/testing/dinit-alpine/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=dinit-alpine
+pkgver=0_git20240128
+pkgrel=0
+_commit="9a5e07defa5d830c1a9ac59214af353c017daee8"
+pkgdesc="Various dinit service files used to boot Alpine"
+url="https://gitlab.alpinelinux.org/PureTryOut/dinit-alpine"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ dinit
+ findmnt
+ util-linux-login
+ "
+source="$pkgname-$_commit.tar.gz::https://gitlab.alpinelinux.org/PureTryOut/dinit-alpine/-/archive/$_commit.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/$pkgname-$_commit"
+
+package() {
+ mkdir -p "$pkgdir"/lib/dinit.d
+ cp -r services/* "$pkgdir"/lib/dinit.d/
+}
+
+sha512sums="
+c7b3dc45d171e4923a8dce7cbf8b954cf8cefec768ca280f421ca8c3ad5267d6c680a33f14a8b6d356512d5ad0452e8258fbb6ce538911b0a609b01a92a29686 dinit-alpine-9a5e07defa5d830c1a9ac59214af353c017daee8.tar.gz
+"
diff --git a/testing/dinit/APKBUILD b/testing/dinit/APKBUILD
new file mode 100644
index 00000000000..d611f480c52
--- /dev/null
+++ b/testing/dinit/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Sertonix <sertonix@posteo.net>
+# Maintainer: Sertonix <sertonix@posteo.net>
+pkgname=dinit
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="Service monitoring/init system"
+url="https://github.com/davmac314/dinit"
+arch="all"
+license="Apache-2.0"
+subpackages="$pkgname-doc $pkgname-shutdown:_shutdown"
+makedepends="m4"
+source="https://github.com/davmac314/dinit/releases/download/v$pkgver/dinit-$pkgver.tar.xz"
+
+build() {
+ make BUILD_SHUTDOWN=yes SHUTDOWN_PREFIX="dinit-"
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir"/ BUILD_SHUTDOWN=yes SHUTDOWN_PREFIX="dinit-" install
+}
+
+_shutdown() {
+ pkgdesc="dinit shutdown utils"
+ depends="$pkgname"
+
+ amove sbin/dinit-shutdown
+ amove sbin/dinit-halt
+ amove sbin/dinit-reboot
+ amove sbin/dinit-poweroff
+}
+
+sha512sums="
+bacb71b35e348a73c0a082599c357d05a773680d302f9b963e109b289fa5cd4ec616f73febaa76c96075e58711ffb14d84f2c734461a171f37b827038e1f9c1b dinit-0.18.0.tar.xz
+"
diff --git a/testing/dino/APKBUILD b/testing/dino/APKBUILD
deleted file mode 100644
index 4876bf089a0..00000000000
--- a/testing/dino/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=dino
-pkgver=0.1.0
-pkgrel=2
-pkgdesc="Modern Jabber/XMPP client"
-url="https://dino.im"
-arch="all"
-license="GPL-3.0-only"
-makedepends="
- glib-dev
- glib-networking
- gtk+3.0-dev
- gpgme-dev
- libgee-dev
- libsignal-protocol-c-dev
- libgcrypt-dev
- libsoup-dev
- sqlite-dev
- libqrencode-dev
- cmake
- vala
- ninja
-"
-subpackages="$pkgname-lang"
-source="
- https://github.com/dino/dino/releases/download/v$pkgver/dino-$pkgver.tar.gz
- bump-signal-version.patch
- "
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --with-tests
- make
-}
-
-check() {
- build/xmpp-vala-test
- build/signal-protocol-vala-test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="b63bf87dbf7f728f038f22d0dba34770a06d7eb1be2ec249293ff876e16c151165add895ff3cb20a3216c3581d20e10634d454ee8b024b895012efb34f9d7de8 dino-0.1.0.tar.gz
-01f26d8f130ba25aaf0dcc58fd4629c168435a833efe6bb95269b73992922f578364bf71ee141114a1a6ab677ee71d2a22426c46eb2b5ca4a0b5a6ce124e2e12 bump-signal-version.patch"
diff --git a/testing/dino/bump-signal-version.patch b/testing/dino/bump-signal-version.patch
deleted file mode 100644
index 26532b34cef..00000000000
--- a/testing/dino/bump-signal-version.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/plugins/signal-protocol/CMakeLists.txt b/plugins/signal-protocol/CMakeLists.txt
-index 0ae8411..a687c79 100644
---- a/plugins/signal-protocol/CMakeLists.txt
-+++ b/plugins/signal-protocol/CMakeLists.txt
-@@ -32,7 +32,7 @@ if(NOT BUILD_LIBSIGNAL_IN_TREE)
- # libsignal-protocol-c has a history of breaking compatibility on the patch level
- # we'll have to check compatibility for every new release
- # distro maintainers may update this dependency after compatibility tests
-- find_package(SignalProtocol 2.3.2 EXACT REQUIRED)
-+ find_package(SignalProtocol 2.3.3 EXACT REQUIRED)
- else()
- add_subdirectory(libsignal-protocol-c EXCLUDE_FROM_ALL)
- set_property(TARGET curve25519 PROPERTY POSITION_INDEPENDENT_CODE ON)
diff --git a/testing/direnv/APKBUILD b/testing/direnv/APKBUILD
deleted file mode 100644
index 34182d32436..00000000000
--- a/testing/direnv/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=direnv
-pkgver=2.21.3
-pkgrel=0
-pkgdesc="Environment variable switcher for the shell"
-url="https://direnv.net"
-arch="all"
-license="MIT"
-checkdepends="bash"
-makedepends="go"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/direnv/direnv/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/direnv/$pkgname"
-
-prepare() {
- mkdir -p "${builddir%/*}"
- ln -s "$srcdir"/$pkgname-$pkgver "$builddir"
-
- default_prepare
-}
-
-build() {
- make GOPATH="$srcdir"
-}
-
-check() {
- # Also has tests for tcsh and elvish, this manual call is done instead of
- # tests to avoid unwanted tests like 'shellcheck' and 'go-fmt'
- GOPATH="$srcdir" make test-go test-bash
-}
-
-package() {
- make DESTDIR="$pkgdir/usr" install
-}
-
-sha512sums="023c467436ec406d98c1f4409fd9cb530de255df53890f268bc0819702d4f35af46b2d21339e351b525a05bb20e62fb0d42ba09cabad5e356fc930405ab49dcd direnv-2.21.3.tar.gz"
diff --git a/testing/disfetch/APKBUILD b/testing/disfetch/APKBUILD
new file mode 100644
index 00000000000..9128afd8c33
--- /dev/null
+++ b/testing/disfetch/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Contributor: Dmitry Kruchko <corg@disroot.org>
+# Maintainer: Dmitry Kruchko <corg@disroot.org>
+pkgname=disfetch
+pkgver=3.7
+pkgrel=0
+pkgdesc="Yet another *nix distro fetching program, but less complex"
+url="https://github.com/q60/disfetch"
+arch="noarch"
+options="!check" # no tests
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/q60/disfetch/archive/refs/tags/$pkgver.tar.gz"
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+6f21d1cdcc357cf4b6d0d1c37ca7d035b9c4ec959f7e5b62921d88c15b7c5dec4d0ff457867d0de75afcba2758314242bd178330ca31ede58d89ca65e41b487d disfetch-3.7.tar.gz
+"
diff --git a/testing/diskonaut/APKBUILD b/testing/diskonaut/APKBUILD
new file mode 100644
index 00000000000..772e8cc760a
--- /dev/null
+++ b/testing/diskonaut/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=diskonaut
+pkgver=0.11.0
+pkgrel=3
+pkgdesc="Terminal disk space navigator"
+url="https://github.com/imsnif/diskonaut"
+license="MIT"
+arch="all !armhf !s390x !riscv64" # doesn't build
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/imsnif/diskonaut/archive/refs/tags/$pkgver.tar.gz"
+options="net"
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/diskonaut "$pkgdir"/usr/bin/diskonaut
+}
+
+sha512sums="
+c682f40e9a0592214826beba17a8b875a80a0a258e503fbcc821548fa41b998133cf30e020abffddc4775abb37e1df267669c7e4b3114fe0c4532b9a48972768 diskonaut-0.11.0.tar.gz
+"
diff --git a/testing/diskus/APKBUILD b/testing/diskus/APKBUILD
new file mode 100644
index 00000000000..d744ef8f1fc
--- /dev/null
+++ b/testing/diskus/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=diskus
+pkgver=0.7.0
+pkgrel=1
+pkgdesc="fast alternative for du"
+url="https://github.com/sharkdp/diskus"
+arch="all !s390x !riscv64" # limited by cargo
+options="!check" #size_of_single_file test timout on armhf
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgdir.tar.gz::https://github.com/sharkdp/diskus/archive/refs/tags/v$pkgver.tar.gz"
+
+
+build() {
+ cargo auditable build --release --locked
+}
+
+package() {
+ cargo auditable install --locked --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="
+092e3640000fb233d975efa2513cec1020376f93a106b9a2c19a390c27f37298dc3b412a0853cb3c1ab267f5b16cfc7379307c2e6599b9396369e1e1dcc5803a diskus-.tar.gz
+"
diff --git a/testing/dislocker/APKBUILD b/testing/dislocker/APKBUILD
index e242afeef25..4d9f6aa0eac 100644
--- a/testing/dislocker/APKBUILD
+++ b/testing/dislocker/APKBUILD
@@ -1,26 +1,41 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=dislocker
-pkgver=0.7.1
-pkgrel=4
-pkgdesc="Read/write Windows BitLocker-ed volumes."
+pkgver=0.7.3
+pkgrel=5
+pkgdesc="Read/write Windows BitLocker-ed volumes"
url="https://github.com/Aorimn/dislocker"
arch="all"
license="GPL-2.0-or-later"
options="!check" # No test suite
-makedepends="cmake make fuse-dev mbedtls-dev ruby-dev"
+depends="ruby"
+makedepends="
+ cmake
+ fuse-dev
+ mbedtls-dev
+ ruby-dev
+ samurai
+ "
subpackages="$pkgname-doc $pkgname-libs"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Aorimn/dislocker/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Aorimn/dislocker/archive/v$pkgver.tar.gz
+ fix-build.patch
+ mbedtls-3.patch
+ "
build() {
- cd "$builddir"
- cmake -DCMAKE_INSTALL_PREFIX=/usr .
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+
+ cmake --build build
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="8852ba3e363fdea992eebecfe1e4dad2b85404f57c57ce6b2937a9859d03cfa88d969926c9e11e6d22596c6d96805b7d1737893ae2c5a957448ab26708bce226 dislocker-0.7.1.tar.gz"
+sha512sums="
+c62241d70d51f6445a2f6d0f08e099bbc1a4257ca98232471fc43ec63e69d62ae5f702c995ec00b7e1db7d33f4bb3a31ea05bc13862bf3b539feb301a0e034ff dislocker-0.7.3.tar.gz
+7041559becbb5136d52b9494898ab3e315bdd7eddef7276e5f3f3cacd8a585718407d9fbcb9c589cc8702519d95cc4a37b6442358a5e8a3281ef5b05591295e6 fix-build.patch
+4b89b8357799fb1de5421d2b3d0390b3d39e6dda13b606120f52b6fda83a75c3d199c8cdea43cff7abb8b68d1fcb71314c108ff80b092c6f949d5564f67cd6f5 mbedtls-3.patch
+"
diff --git a/testing/dislocker/fix-build.patch b/testing/dislocker/fix-build.patch
new file mode 100644
index 00000000000..d9ba5609eac
--- /dev/null
+++ b/testing/dislocker/fix-build.patch
@@ -0,0 +1,147 @@
+diff -U3 -r a/src/config.c b/src/config.c
+--- a/src/config.c 2022-04-25 20:41:04.627290032 +0200
++++ b/src/config.c 2022-04-25 20:44:19.075583833 +0200
+@@ -56,13 +56,13 @@
+ static void setclearkey(dis_context_t dis_ctx, char* optarg)
+ {
+ (void) optarg;
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_USE_CLEAR_KEY, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_USE_CLEAR_KEY, &flag);
+ }
+ static void setbekfile(dis_context_t dis_ctx, char* optarg)
+ {
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_USE_BEK_FILE, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_USE_BEK_FILE, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_BEK_FILE_PATH, optarg);
+ }
+ static void setforceblock(dis_context_t dis_ctx, char* optarg)
+@@ -76,14 +76,14 @@
+ }
+ static void setfvek(dis_context_t dis_ctx, char* optarg)
+ {
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_USE_FVEK_FILE, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_USE_FVEK_FILE, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_FVEK_FILE_PATH, optarg);
+ }
+ static void setvmk(dis_context_t dis_ctx, char* optarg)
+ {
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_USE_VMK_FILE, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_USE_VMK_FILE, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_VMK_FILE_PATH, optarg);
+ }
+ static void setlogfile(dis_context_t dis_ctx, char* optarg)
+@@ -97,8 +97,8 @@
+ }
+ static void setrecoverypwd(dis_context_t dis_ctx, char* optarg)
+ {
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_USE_RECOVERY_PASSWORD, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_USE_RECOVERY_PASSWORD, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_RECOVERY_PASSWORD, optarg);
+ hide_opt(optarg);
+ }
+@@ -111,19 +111,19 @@
+ static void setro(dis_context_t dis_ctx, char* optarg)
+ {
+ (void) optarg;
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_READ_ONLY, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_READ_ONLY, &flag);
+ }
+ static void setstateok(dis_context_t dis_ctx, char* optarg)
+ {
+ (void) optarg;
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_DONT_CHECK_VOLUME_STATE, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_DONT_CHECK_VOLUME_STATE, &flag);
+ }
+ static void setuserpassword(dis_context_t dis_ctx, char* optarg)
+ {
+- int true = TRUE;
+- dis_setopt(dis_ctx, DIS_OPT_USE_USER_PASSWORD, &true);
++ int flag = TRUE;
++ dis_setopt(dis_ctx, DIS_OPT_USE_USER_PASSWORD, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_USER_PASSWORD, optarg);
+ hide_opt(optarg);
+ }
+@@ -266,7 +266,7 @@
+ return -1;
+
+ dis_config_t* cfg = &dis_ctx->cfg;
+- int true = TRUE;
++ int flag = TRUE;
+
+
+ long_opts = malloc(nb_options * sizeof(struct option));
+@@ -285,12 +285,12 @@
+ {
+ case 'c':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_USE_CLEAR_KEY, &true);
++ dis_setopt(dis_ctx, DIS_OPT_USE_CLEAR_KEY, &flag);
+ break;
+ }
+ case 'f':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_USE_BEK_FILE, &true);
++ dis_setopt(dis_ctx, DIS_OPT_USE_BEK_FILE, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_BEK_FILE_PATH, optarg);
+ break;
+ }
+@@ -312,13 +312,13 @@
+ }
+ case 'k':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_USE_FVEK_FILE, &true);
++ dis_setopt(dis_ctx, DIS_OPT_USE_FVEK_FILE, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_FVEK_FILE_PATH, optarg);
+ break;
+ }
+ case 'K':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_USE_VMK_FILE, &true);
++ dis_setopt(dis_ctx, DIS_OPT_USE_VMK_FILE, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_VMK_FILE_PATH, optarg);
+ break;
+ }
+@@ -340,7 +340,7 @@
+ }
+ case 'p':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_USE_RECOVERY_PASSWORD, &true);
++ dis_setopt(dis_ctx, DIS_OPT_USE_RECOVERY_PASSWORD, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_RECOVERY_PASSWORD, optarg);
+ hide_opt(optarg);
+ break;
+@@ -353,17 +353,17 @@
+ }
+ case 'r':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_READ_ONLY, &true);
++ dis_setopt(dis_ctx, DIS_OPT_READ_ONLY, &flag);
+ break;
+ }
+ case 's':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_DONT_CHECK_VOLUME_STATE, &true);
++ dis_setopt(dis_ctx, DIS_OPT_DONT_CHECK_VOLUME_STATE, &flag);
+ break;
+ }
+ case 'u':
+ {
+- dis_setopt(dis_ctx, DIS_OPT_USE_USER_PASSWORD, &true);
++ dis_setopt(dis_ctx, DIS_OPT_USE_USER_PASSWORD, &flag);
+ dis_setopt(dis_ctx, DIS_OPT_SET_USER_PASSWORD, optarg);
+ hide_opt(optarg);
+ break;
diff --git a/testing/dislocker/mbedtls-3.patch b/testing/dislocker/mbedtls-3.patch
new file mode 100644
index 00000000000..21175456ed7
--- /dev/null
+++ b/testing/dislocker/mbedtls-3.patch
@@ -0,0 +1,23 @@
+--- a/include/dislocker/ssl_bindings.h.in
++++ b/include/dislocker/ssl_bindings.h.in
+@@ -26,18 +26,14 @@
+ /*
+ * Here stand the bindings for polarssl SHA256/SHA2/SHA-2 function for dislocker
+ */
+-#include "@POLARSSL_INC_FOLDER@/config.h"
++#include "@POLARSSL_INC_FOLDER@/mbedtls_config.h"
+ #include "@POLARSSL_INC_FOLDER@/version.h"
+ #include "@POLARSSL_INC_FOLDER@/aes.h"
+
+ // Function's name changed
+ #if defined(MBEDTLS_SHA256_C)
+ # include "mbedtls/sha256.h"
+-# if MBEDTLS_VERSION_NUMBER >= 0x02070000
+-# define SHA256(input, len, output) mbedtls_sha256_ret(input, len, output, 0)
+-# else
+-# define SHA256(input, len, output) mbedtls_sha256(input, len, output, 0)
+-# endif /* POLARSSL_VERSION_NUMBER >= 0x02070000 */
++# define SHA256(input, len, output) mbedtls_sha256(input, len, output, 0)
+ #else /* defined(MBEDTLS_SHA256_C) */
+
+ # if defined(POLARSSL_SHA256_C)
diff --git a/testing/dissent/APKBUILD b/testing/dissent/APKBUILD
new file mode 100644
index 00000000000..f0c157fa186
--- /dev/null
+++ b/testing/dissent/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=dissent
+pkgver=0.0.22
+pkgrel=1
+pkgdesc="Lightweight and modern Discord client"
+url="https://libdb.so/dissent"
+# riscv64: https://github.com/ianlancetaylor/cgosymbolizer/issues/20
+arch="all !riscv64"
+license="GPL-3.0-or-later"
+options="net" # go dependencies
+makedepends="
+ go
+ gobject-introspection-dev
+ gtk4.0-dev
+ libadwaita-dev
+ "
+source="
+ https://github.com/diamondburned/dissent/archive/v$pkgver/dissent-$pkgver.tar.gz
+ dissent.desktop
+ "
+
+build() {
+ go build ./main.go
+}
+
+check() {
+ # no tests yet. but sure, try
+ go test ./...
+}
+
+package() {
+ install -Dm775 main "$pkgdir"/usr/bin/"$pkgname"
+ install -Dm644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -Dm644 ./internal/icons/hicolor/scalable/apps/so.libdb.dissent.svg -t "$pkgdir"/usr/share/icons/hicolor/scalable/apps/
+}
+
+sha512sums="
+dbf79c7e5cda0edd78a4793910f3d6625f038156d03b57dab9f3132cde0b86dee2b159f59e3d4fe79e13fc799789d1d9935c9a08697054812bd40c82a21cbda2 dissent-0.0.22.tar.gz
+c454be19d716d0e6a9265423e87d75af2bc7998dd953b606ddf4dcb8e31335fd0b89dec083fc8d114ee1de11ccca1f0b021c1ca2ae760f3e92de66c58dc3d485 dissent.desktop
+"
diff --git a/testing/dissent/dissent.desktop b/testing/dissent/dissent.desktop
new file mode 100644
index 00000000000..0d0f7b6383a
--- /dev/null
+++ b/testing/dissent/dissent.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Dissent
+Icon=so.libdb.dissent
+Exec=/usr/bin/dissent %U
+Categories=Network;InstantMessaging;Chat;VideoConference;
+Keywords=Discord;Chat;Messenger;Social
+X-Purism-FormFactor=Workstation;Mobile;
diff --git a/testing/distrobuilder/APKBUILD b/testing/distrobuilder/APKBUILD
index ef1c94e916d..a66f29c07f4 100644
--- a/testing/distrobuilder/APKBUILD
+++ b/testing/distrobuilder/APKBUILD
@@ -1,54 +1,36 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
pkgname=distrobuilder
-pkgver=0_git20181004
-_commit=d2329be9569d45028a38836186d2353b8ddfe1ca
-pkgrel=2
+pkgver=2.1
+pkgrel=16
pkgdesc="System container image builder"
-url="https://linuxcontainers.org/"
-arch="" # Build fails on the builders
+url="https://linuxcontainers.org/distrobuilder/"
+arch="all !armhf !armv7"
license="Apache-2.0"
-depends="gnupg1"
-makedepends="go linux-headers glide"
-subpackages="$pkgname-lxc::noarch $pkgname-lxd::noarch"
-options="!check" # has no check
-source="$pkgname-$pkgver.tar.gz::https://github.com/lxc/distrobuilder/archive/$_commit.tar.gz
- glide-$pkgver.yaml
- glide-$pkgver.lock
- "
-builddir="$srcdir/src/github.com/lxc/$pkgname"
+depends="gnupg xz"
+makedepends="go linux-headers"
+subpackages="$pkgname-lxc::noarch $pkgname-lxd::noarch $pkgname-doc"
+checkdepends="squashfs-tools"
+source="https://github.com/lxc/distrobuilder/archive/refs/tags/distrobuilder-$pkgver.tar.gz"
+builddir="$srcdir/distrobuilder-distrobuilder-$pkgver"
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-$_commit "$builddir"/
- cp "$srcdir"/glide-$pkgver.yaml glide.yaml
- cp "$srcdir"/glide-$pkgver.lock glide.lock
- export GLIDE_HOME="$srcdir/.glide"
- export GOPATH="$srcdir"
- glide install --skip-test
- default_prepare
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
-glide_init() {
- abuild clean deps unpack prepare
- cd "$builddir"
- export GLIDE_HOME="$srcdir/.glide"
- export GOPATH="$srcdir"
- rm -f glide.yaml glide.lock
- glide init --non-interactive
- glide update
- cp glide.yaml "$startdir"/glide-$pkgver.yaml
- cp glide.lock "$startdir"/glide-$pkgver.lock
- cd "$startdir" && abuild checksum clean
+build() {
+ go build -o out ./distrobuilder
}
-build() {
- export GOPATH="$srcdir"
- go build -o bin/$pkgname ./$pkgname
+check() {
+ go test ./...
}
package() {
- install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm755 out "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 -t "$pkgdir"/usr/share/doc/distrobuilder doc/*.md
+ install -Dm644 -t "$pkgdir"/usr/share/doc/distrobuilder/examples doc/examples/*.yaml
}
lxc() {
@@ -65,6 +47,6 @@ lxd() {
mkdir -p "$subpkgdir"
}
-sha512sums="de50479ab6de5bca80c48ca14ae29ad712a5c6ac1ec7661d28da5b42c77ef0bbc4c00f95080abad2838663c3cf015466c2e2d1ba75168a440df18dfebc2bc0a5 distrobuilder-0_git20181004.tar.gz
-602a97b07d6c0b0eca1cec26e3b66223cf0148842ccef429de273d77be2d91c24d98732977fc42b1f068f6f08807faebb061607bf27384bc1555daa8137d235f glide-0_git20181004.yaml
-1d941f26aaaebff4bccf6bc50688cd38f315e819f0521a1a0fa43acca00173c561376dd5ef7d2bf42d0fe03a016a5bb303e7c42786b847033215ebb2d74e5ba7 glide-0_git20181004.lock"
+sha512sums="
+8b57a90b1065efed29fa4a6d6c4699d81539a4bd802739d55b31d9a45b55d40fb19abe09ce76d861d96555c41942a7d874a8886ac4916fadab61eb190071b478 distrobuilder-2.1.tar.gz
+"
diff --git a/testing/distrobuilder/glide-0_git20181004.lock b/testing/distrobuilder/glide-0_git20181004.lock
deleted file mode 100644
index 312979bf005..00000000000
--- a/testing/distrobuilder/glide-0_git20181004.lock
+++ /dev/null
@@ -1,48 +0,0 @@
-hash: 556e42e36a49892bd4f9b6d826ced7c93825099add910613c0007ce7be1caf5c
-updated: 2018-12-16T13:51:16.459312047Z
-imports:
-- name: code.cloudfoundry.org/systemcerts
- version: ca00b2f806f2fa1ded784ade357bad1ea3f1fbbe
-- name: github.com/flosch/pongo2
- version: 24195e6d38b06020d7a92c7b11960cf2e7cad2f2
-- name: github.com/gorilla/websocket
- version: 95ba29eb981bbb27d92e1f70bf8a1949452d926b
-- name: github.com/inconshreveable/mousetrap
- version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
-- name: github.com/juju/errors
- version: 089d3ea4e4d597bd98acac068193d341983326a3
-- name: github.com/lxc/lxd
- version: ae0a67076b879e32620c4e31a993f14a4a167408
- subpackages:
- - shared
- - shared/api
- - shared/cancel
- - shared/ioprogress
- - shared/logger
- - shared/osarch
-- name: github.com/pkg/errors
- version: 059132a15dd08d6704c67711dae0cf35ab991756
-- name: github.com/spf13/cobra
- version: d2d81d9a96e23f0255397222bb0b4e3165e492dc
-- name: github.com/spf13/pflag
- version: 916c5bf2d89aff6fd3e10e7811337218dfa81cb5
-- name: gopkg.in/flosch/pongo2.v3
- version: 5e81b817a0c48c1c57cdf1a9056cf76bdee02ca9
-- name: gopkg.in/robfig/cron.v2
- version: be2e0b0deed5a68ffee390b4583a13aff8321535
-- name: gopkg.in/yaml.v2
- version: 51d6538a90f86fe93ac480b35f37b2be17fef232
-testImports:
-- name: github.com/davecgh/go-spew
- version: d8f796af33cc11cb798c1aaeb27a4ebc5099927d
- subpackages:
- - spew
-- name: github.com/pmezard/go-difflib
- version: 792786c7400a136282c1664665ae0a8db921c6c2
- subpackages:
- - difflib
-- name: github.com/stretchr/testify
- version: 5b93e2dc01fd8fbf32aa74a198b0ebe78f6f6b6f
- subpackages:
- - assert
- - require
diff --git a/testing/distrobuilder/glide-0_git20181004.yaml b/testing/distrobuilder/glide-0_git20181004.yaml
deleted file mode 100644
index f16d150e224..00000000000
--- a/testing/distrobuilder/glide-0_git20181004.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-package: github.com/lxc/distrobuilder
-import:
-- package: github.com/lxc/lxd
- subpackages:
- - shared
- - shared/api
- - shared/ioprogress
- - shared/osarch
-- package: github.com/spf13/cobra
-- package: gopkg.in/flosch/pongo2.v3
-- package: gopkg.in/yaml.v2
-testImport:
-- package: github.com/stretchr/testify
- subpackages:
- - require
diff --git a/testing/dive/APKBUILD b/testing/dive/APKBUILD
new file mode 100644
index 00000000000..741a3b43d22
--- /dev/null
+++ b/testing/dive/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=dive
+pkgver=0.11.0
+pkgrel=5
+pkgdesc="Tool for exploring each layer in a docker image"
+url="https://github.com/wagoodman/dive"
+arch="all"
+license="MIT"
+depends="docker"
+makedepends="go"
+source="https://github.com/wagoodman/dive/archive/v$pkgver/dive-$pkgver.tar.gz"
+options="chmod-clean !check" # No test suite
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -trimpath \
+ -ldflags "
+ -X main.version=$pkgver
+ " \
+ -o bin/dive .
+}
+
+package() {
+ install -Dm755 bin/dive "$pkgdir/usr/bin/dive"
+}
+
+sha512sums="
+79df3fe88d0bc5535ef6ec098cb8d8a264cf64ca353692809c0cb46f77a02edbbfb8df5848173e889b675cc00d8d7c0e5e4500198fc83d0e2f158ab7de4a0e23 dive-0.11.0.tar.gz
+"
diff --git a/testing/dlib/APKBUILD b/testing/dlib/APKBUILD
index 5d83748241d..bc21b6a3dfc 100644
--- a/testing/dlib/APKBUILD
+++ b/testing/dlib/APKBUILD
@@ -1,30 +1,35 @@
# Contributor: Davis E. King <davis@dlib.net>
# Maintainer: Adriaan Groenenboom <agboom@pm.me>
pkgname=dlib
-pkgver=19.18
-pkgrel=1
+pkgver=19.24.4
+pkgrel=0
pkgdesc="A toolkit for making real world machine learning and data analysis applications in C++"
url="http://dlib.net"
-arch="all !mips !mips64" # blocked by openblas
+arch="all"
license="BSL-1.0"
-makedepends="cmake openblas-dev libx11-dev libjpeg-turbo-dev libpng-dev"
-source="dlib-$pkgver.tar.bz2::https://downloads.sourceforge.net/project/dclib/dlib/v$pkgver/dlib-$pkgver.tar.bz2"
-sha512sums="0b65c35b6f351da948b2fe193b83ba22627dc259fc4adf3540abdca1febe87ec83d68ba64ea37f15c05173b92915cc5d2fa687d8f342ca203eac8a5c1e79ca8d dlib-19.18.tar.bz2"
+makedepends="
+ cmake
+ libjpeg-turbo-dev
+ libpng-dev
+ libx11-dev
+ openblas-dev
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/davisking/dlib/archive/refs/tags/v$pkgver.tar.gz"
build() {
- cd "$srcdir"
- mkdir -p build && cd build
- cmake \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib \
- -DBUILD_SHARED_LIBS:BOOL=ON \
- -DCMAKE_BUILD_TYPE=None \
- "../$pkgname-$pkgver"
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
}
package() {
- cd "$srcdir/build"
- make DESTDIR=${pkgdir} install
- install -Dm644 "../$pkgname-$pkgver/dlib/LICENSE.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ DESTDIR=$pkgdir cmake --install build
}
+
+sha512sums="
+36df942129ac00893056ca1db662a5fa655d2c8af24012df5001bed1675e9552b7b2dbec37841c21f4be60de932dc6453ea0e669a309377f8bc4cbf733da7821 dlib-19.24.4.tar.gz
+"
diff --git a/testing/dma/APKBUILD b/testing/dma/APKBUILD
deleted file mode 100644
index 85f99575388..00000000000
--- a/testing/dma/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=dma
-pkgver=0.13
-pkgrel=0
-pkgdesc="A small Mail Transport Agent from DragonFly BSD"
-url="https://github.com/corecode/dma"
-arch="x86_64 x86 ppc64le"
-license="BSD-3-Clause"
-makedepends="bison flex libbsd-dev bsd-compat-headers openssl-dev"
-options="suid"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/corecode/dma/archive/v$pkgver.tar.gz
- $pkgname.cron
- musl-fixes.patch"
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install install-etc
-
- local _prog=
- for _prog in bin/mailq bin/newailases sbin/sendmail; do
- mkdir -p "$pkgdir"/usr/${_prog%/*}
- ln -s /usr/sbin/dma "$pkgdir"/usr/$_prog
- done
-
- # Create spool directory.
- install -d -o root -g mail \
- -m 775 "$pkgdir"/var/spool/$pkgname
-
- # Install cronjob.
- install -Dm755 "$srcdir"/$pkgname.cron \
- "$pkgdir"/etc/periodic/15min/$pkgname
-
- # Install additional documentation files.
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname/examples
- install -m644 README.markdown TODO \
- "$pkgdir"/usr/share/doc/$pkgname/
-}
-
-sha512sums="12ca04c6e67ffeead4596dcbf6bbc42547461b224a7f70e7185822b5f968c369de4c20ae7de3415a54f6eef7d4acc12d5fca5ff5851d640f3611d89a345b41ac dma-0.13.tar.gz
-5a79895fd42ffee347b979402225eb8025ea9bb41d0dc24b43d4b1e64106f1c612024456ea98e20aef4258eb8e852b370410e47d6ee34cea630dda29cc54840e dma.cron
-051af3d10711f7565fedd3a06c152454020e903e2e923a37cc77ccbf4346f308edecfe4f3d3c37a3cb2e54d1fb336bb4d9cea2a7d6dc560aec3c2369eb55e6a9 musl-fixes.patch"
diff --git a/testing/dma/dma.cron b/testing/dma/dma.cron
deleted file mode 100644
index d37f4f9f3c6..00000000000
--- a/testing/dma/dma.cron
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# Flush the DMA queue automatically.
-
-/usr/sbin/dma -q1
-exit 0
diff --git a/testing/dma/musl-fixes.patch b/testing/dma/musl-fixes.patch
deleted file mode 100644
index bf7d805b2f4..00000000000
--- a/testing/dma/musl-fixes.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -upr dma-0.11.orig/dfcompat.c dma-0.11/dfcompat.c
---- dma-0.11.orig/dfcompat.c 2016-02-29 15:33:18.153280618 +0100
-+++ dma-0.11/dfcompat.c 2016-02-29 15:33:25.749914514 +0100
-@@ -105,7 +105,7 @@ reallocf(void *ptr, size_t size)
-
- #ifndef HAVE_GETPROGNAME
-
--#ifdef __GLIBC__
-+#ifdef __linux__
-
- #include <errno.h>
-
-diff -upr dma-0.11.orig/dma.h dma-0.11/dma.h
---- dma-0.11.orig/dma.h 2016-02-29 15:33:18.153280618 +0100
-+++ dma-0.11/dma.h 2016-02-29 15:33:25.749914514 +0100
-@@ -38,7 +38,7 @@
- #define DMA_H
-
- #include <sys/types.h>
--#include <sys/queue.h>
-+#include <bsd/sys/queue.h>
- #include <sys/socket.h>
- #include <arpa/nameser.h>
- #include <arpa/inet.h>
-diff -upr dma-0.11.orig/dns.c dma-0.11/dns.c
---- dma-0.11.orig/dns.c 2016-02-29 15:33:18.153280618 +0100
-+++ dma-0.11/dns.c 2016-02-29 15:33:30.979891954 +0100
-@@ -44,6 +44,9 @@
- #include <stdlib.h>
-
- #include "dma.h"
-+#ifndef roundup
-+#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
-+#endif
-
- static int
- sort_pref(const void *a, const void *b)
diff --git a/testing/dmarc-metrics-exporter/APKBUILD b/testing/dmarc-metrics-exporter/APKBUILD
new file mode 100644
index 00000000000..f58eff44547
--- /dev/null
+++ b/testing/dmarc-metrics-exporter/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=dmarc-metrics-exporter
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="Prometheus metrics exporter from DMARC reports"
+url="https://github.com/jgosmann/dmarc-metrics-exporter"
+arch="noarch !s390x"
+# s390x: because of py3-xsdata
+# see https://gitlab.alpinelinux.org/alpine/aports/-/issues/15642
+license="MIT"
+depends="
+ py3-bite-parser
+ py3-dataclasses-serialization
+ py3-prometheus-client
+ py3-structlog
+ py3-uvloop
+ py3-xsdata
+ uvicorn
+ "
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-poetry-core
+ py3-poetry-dynamic-versioning
+ py3-wheel
+ "
+checkdepends="
+ py3-aiohttp
+ py3-pytest-aiohttp
+ py3-pytest-asyncio
+ py3-pytest-forked
+ py3-requests
+ "
+install="$pkgname.pre-install"
+subpackages="$pkgname-pyc $pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jgosmann/dmarc-metrics-exporter/archive/refs/tags/v$pkgver.tar.gz
+ dmarc-metrics-exporter.initd
+ dmarc-metrics-exporter.confd
+ "
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # need a specific running imap server
+ pytest --forked \
+ --deselect=dmarc_metrics_exporter/tests/test_imap_queue.py \
+ --deselect=dmarc_metrics_exporter/tests/test_imap_client.py \
+ --deselect=dmarc_metrics_exporter/tests/test_e2e.py::test_successful_processing_of_incoming_queue_message
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ rm -r "$pkgdir"/usr/lib/python*/site-packages/dmarc_metrics_exporter/tests/
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+b19c52684f411e3ce5e621c567d69153fbaf2b156ce45883dae668fc9cf8e9b565f7af173fa75c32772bc72395a9df051d1447015bca21d8df700c543a26af86 dmarc-metrics-exporter-1.0.0.tar.gz
+a067d586708eed0501687d0117ad7cbf8acb4624b161daa99a39e8fb116d2f6265fa7000425f21139c6033b88da5915f5adef7584b0708b5d190343c387cc1a5 dmarc-metrics-exporter.initd
+b5c8ef2683b8d4a0cb6b886a8acdd5e7b8e361320cdb7256f9e29960b44cad590b1a98b65cad23de22e72c33519fcb9c971b92892683ab1692e060fb0772b0df dmarc-metrics-exporter.confd
+"
diff --git a/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.confd b/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.confd
new file mode 100755
index 00000000000..b3b26199d80
--- /dev/null
+++ b/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/dmarc-metrics-exporter
+
+# User (and group) to run as
+#command_user="prometheus"
+
+# Additional arguments
+#command_args=
+
+# Comment out to disable process supervisor.
+supervisor=supervise-daemon
diff --git a/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.initd b/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.initd
new file mode 100755
index 00000000000..0c42349a0e2
--- /dev/null
+++ b/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+name="dmarc-metrics-exporter"
+
+: ${command_user:="prometheus"}
+
+command="/usr/bin/dmarc-metrics-exporter"
+command_args="$command_args"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.pre-install b/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.pre-install
new file mode 100755
index 00000000000..f143b00e781
--- /dev/null
+++ b/testing/dmarc-metrics-exporter/dmarc-metrics-exporter.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S prometheus 2>/dev/null
+adduser -S -D -H -s /bin/false -G prometheus -g prometheus prometheus 2>/dev/null
+
+exit 0
+
diff --git a/testing/dmg2img/APKBUILD b/testing/dmg2img/APKBUILD
deleted file mode 100644
index 102646e8476..00000000000
--- a/testing/dmg2img/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=dmg2img
-pkgver=1.6.7
-pkgrel=0
-pkgdesc="A CLI tool to uncompress Apple's compressed DMG files to the HFS+ IMG format"
-url="http://vu1tur.eu.org/tools/"
-arch="all"
-license="GPL2"
-#no check/test available
-options="!check"
-makedepends="openssl-dev zlib-dev bzip2-dev"
-source="http://vu1tur.eu.org/tools/$pkgname-$pkgver.tar.gz
-openssl-compatibility.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- make PREFIX="/usr"
-}
-
-package() {
- cd "$builddir"
- make PREFIX="/usr" DESTDIR="$pkgdir" install
-}
-
-sha512sums="4c42841c5cdbf868b6038648a6c83e78d4b7f2010f7065d7b3f4c2c04d13af9489716c1dfa867aff5f3c3b3eef96dc3fc0610eff13fec139265f37f468e339e6 dmg2img-1.6.7.tar.gz
-fbddcbdfe3fa6d54b43395f6e37a64bad94342a864202854ec1dbfe1cf7e26660d2ff60b216c4f002d7fae04832b00c82c7b3f8545f0753407144abb7dda85f3 openssl-compatibility.patch"
diff --git a/testing/dmg2img/openssl-compatibility.patch b/testing/dmg2img/openssl-compatibility.patch
deleted file mode 100644
index 831da4cdb29..00000000000
--- a/testing/dmg2img/openssl-compatibility.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From f16f247d30f868e84f31e24792b4464488f1c009 Mon Sep 17 00:00:00 2001
-From: Peter Wu <peter@lekensteyn.nl>
-Date: Tue, 2 May 2017 15:53:38 +0200
-Subject: [PATCH] vfdecrypt: OpenSSL 1.1 compatibility
-
-Allocate contexts from the heap on all OpenSSL versions, this is needed
-since OpenSSL 1.1.0. No attempt is done at addressing issues like global
-variables and fixing potential memleaks on error paths.
-
-Compile-tested only with OpenSSL 1.1.0e (Arch Linux) and OpenSSL 1.0.2g
-(Ubuntu 16.04), I have no test file.
-
-Fixes https://github.com/Lekensteyn/dmg2img/issues/4
----
- vfdecrypt.c | 103 ++++++++++++++++++++++++++++++++++++++++------------
- 1 file changed, 80 insertions(+), 23 deletions(-)
-
-diff --git a/vfdecrypt.c b/vfdecrypt.c
-index 56d3530..b1a36d3 100644
---- a/vfdecrypt.c
-+++ b/vfdecrypt.c
-@@ -183,7 +183,7 @@ void adjust_v2_header_byteorder(cencrypted_v2_pwheader *pwhdr) {
- pwhdr->encrypted_keyblob_size = htonl(pwhdr->encrypted_keyblob_size);
- }
-
--HMAC_CTX hmacsha1_ctx;
-+HMAC_CTX *hmacsha1_ctx;
- AES_KEY aes_decrypt_key;
- int CHUNK_SIZE=4096; // default
-
-@@ -196,9 +196,9 @@ void compute_iv(uint32_t chunk_no, uint8_t *iv) {
- unsigned int mdLen;
-
- chunk_no = OSSwapHostToBigInt32(chunk_no);
-- HMAC_Init_ex(&hmacsha1_ctx, NULL, 0, NULL, NULL);
-- HMAC_Update(&hmacsha1_ctx, (void *) &chunk_no, sizeof(uint32_t));
-- HMAC_Final(&hmacsha1_ctx, mdResult, &mdLen);
-+ HMAC_Init_ex(hmacsha1_ctx, NULL, 0, NULL, NULL);
-+ HMAC_Update(hmacsha1_ctx, (void *) &chunk_no, sizeof(uint32_t));
-+ HMAC_Final(hmacsha1_ctx, mdResult, &mdLen);
- memcpy(iv, mdResult, CIPHER_BLOCKSIZE);
- }
-
-@@ -212,52 +212,75 @@ void decrypt_chunk(uint8_t *ctext, uint8_t *ptext, uint32_t chunk_no) {
- /* DES3-EDE unwrap operation loosely based on to RFC 2630, section 12.6
- * wrapped_key has to be 40 bytes in length. */
- int apple_des3_ede_unwrap_key(uint8_t *wrapped_key, int wrapped_key_len, uint8_t *decryptKey, uint8_t *unwrapped_key) {
-- EVP_CIPHER_CTX ctx;
-+ EVP_CIPHER_CTX *ctx;
- uint8_t *TEMP1, *TEMP2, *CEKICV;
- uint8_t IV[8] = { 0x4a, 0xdd, 0xa2, 0x2c, 0x79, 0xe8, 0x21, 0x05 };
- int outlen, tmplen, i;
-
-- EVP_CIPHER_CTX_init(&ctx);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ ctx = EVP_CIPHER_CTX_new();
-+#else
-+ ctx = malloc(sizeof(*ctx));
-+#endif
-+ if (!ctx) {
-+ fprintf(stderr, "Out of memory: EVP_CIPHER_CTX!\n");
-+ return(-1);
-+ }
-+
-+ EVP_CIPHER_CTX_init(ctx);
- /* result of the decryption operation shouldn't be bigger than ciphertext */
- TEMP1 = malloc(wrapped_key_len);
- TEMP2 = malloc(wrapped_key_len);
- CEKICV = malloc(wrapped_key_len);
- /* uses PKCS#7 padding for symmetric key operations by default */
-- EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, decryptKey, IV);
-+ EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, decryptKey, IV);
-
-- if(!EVP_DecryptUpdate(&ctx, TEMP1, &outlen, wrapped_key, wrapped_key_len)) {
-+ if(!EVP_DecryptUpdate(ctx, TEMP1, &outlen, wrapped_key, wrapped_key_len)) {
- fprintf(stderr, "internal error (1) during key unwrap operation!\n");
- return(-1);
- }
-- if(!EVP_DecryptFinal_ex(&ctx, TEMP1 + outlen, &tmplen)) {
-+ if(!EVP_DecryptFinal_ex(ctx, TEMP1 + outlen, &tmplen)) {
- fprintf(stderr, "internal error (2) during key unwrap operation!\n");
- return(-1);
- }
- outlen += tmplen;
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ EVP_CIPHER_CTX_reset(ctx);
-+#else
-+ EVP_CIPHER_CTX_cleanup(ctx);
-+#endif
-
- /* reverse order of TEMP3 */
- for(i = 0; i < outlen; i++) TEMP2[i] = TEMP1[outlen - i - 1];
-
-- EVP_CIPHER_CTX_init(&ctx);
-+ EVP_CIPHER_CTX_init(ctx);
- /* uses PKCS#7 padding for symmetric key operations by default */
-- EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, decryptKey, TEMP2);
-- if(!EVP_DecryptUpdate(&ctx, CEKICV, &outlen, TEMP2+8, outlen-8)) {
-+ EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, decryptKey, TEMP2);
-+ if(!EVP_DecryptUpdate(ctx, CEKICV, &outlen, TEMP2+8, outlen-8)) {
- fprintf(stderr, "internal error (3) during key unwrap operation!\n");
- return(-1);
- }
-- if(!EVP_DecryptFinal_ex(&ctx, CEKICV + outlen, &tmplen)) {
-+ if(!EVP_DecryptFinal_ex(ctx, CEKICV + outlen, &tmplen)) {
- fprintf(stderr, "internal error (4) during key unwrap operation!\n");
- return(-1);
- }
-
- outlen += tmplen;
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ EVP_CIPHER_CTX_reset(ctx);
-+#else
-+ EVP_CIPHER_CTX_cleanup(ctx);
-+#endif
-
- memcpy(unwrapped_key, CEKICV+4, outlen-4);
- free(TEMP1);
- free(TEMP2);
- free(CEKICV);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ EVP_CIPHER_CTX_free(ctx);
-+#else
-+ free(ctx);
-+#endif
- return(0);
- }
-
-@@ -279,31 +302,46 @@ int unwrap_v1_header(char *passphrase, cencrypted_v1_header *header, uint8_t *ae
- int unwrap_v2_header(char *passphrase, cencrypted_v2_pwheader *header, uint8_t *aes_key, uint8_t *hmacsha1_key) {
- /* derived key is a 3DES-EDE key */
- uint8_t derived_key[192/8];
-- EVP_CIPHER_CTX ctx;
-+ EVP_CIPHER_CTX *ctx;
- uint8_t *TEMP1;
- int outlen, tmplen;
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ ctx = EVP_CIPHER_CTX_new();
-+#else
-+ ctx = malloc(sizeof(*ctx));
-+#endif
-+ if (!ctx) {
-+ fprintf(stderr, "Out of memory: EVP_CIPHER_CTX!\n");
-+ return(-1);
-+ }
-+
- PKCS5_PBKDF2_HMAC_SHA1(passphrase, strlen(passphrase), (unsigned char*)header->kdf_salt, 20,
- PBKDF2_ITERATION_COUNT, sizeof(derived_key), derived_key);
-
- print_hex(derived_key, 192/8);
-
-- EVP_CIPHER_CTX_init(&ctx);
-+ EVP_CIPHER_CTX_init(ctx);
- /* result of the decryption operation shouldn't be bigger than ciphertext */
- TEMP1 = malloc(header->encrypted_keyblob_size);
- /* uses PKCS#7 padding for symmetric key operations by default */
-- EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, derived_key, header->blob_enc_iv);
-+ EVP_DecryptInit_ex(ctx, EVP_des_ede3_cbc(), NULL, derived_key, header->blob_enc_iv);
-
-- if(!EVP_DecryptUpdate(&ctx, TEMP1, &outlen, header->encrypted_keyblob, header->encrypted_keyblob_size)) {
-+ if(!EVP_DecryptUpdate(ctx, TEMP1, &outlen, header->encrypted_keyblob, header->encrypted_keyblob_size)) {
- fprintf(stderr, "internal error (1) during key unwrap operation!\n");
- return(-1);
- }
-- if(!EVP_DecryptFinal_ex(&ctx, TEMP1 + outlen, &tmplen)) {
-+ if(!EVP_DecryptFinal_ex(ctx, TEMP1 + outlen, &tmplen)) {
- fprintf(stderr, "internal error (2) during key unwrap operation!\n");
- return(-1);
- }
- outlen += tmplen;
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ EVP_CIPHER_CTX_free(ctx);
-+#else
-+ EVP_CIPHER_CTX_cleanup(ctx);
-+ free(ctx);
-+#endif
- memcpy(aes_key, TEMP1, 16);
- memcpy(hmacsha1_key, TEMP1, 20);
-
-@@ -446,8 +484,21 @@ int main(int argc, char *argv[]) {
- CHUNK_SIZE = v2header.blocksize;
- }
-
-- HMAC_CTX_init(&hmacsha1_ctx);
-- HMAC_Init_ex(&hmacsha1_ctx, hmacsha1_key, sizeof(hmacsha1_key), EVP_sha1(), NULL);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ hmacsha1_ctx = HMAC_CTX_new();
-+#else
-+ hmacsha1_ctx = malloc(sizeof(*hmacsha1_ctx));
-+#endif
-+ if (!hmacsha1_ctx) {
-+ fprintf(stderr, "Out of memory: HMAC CTX!\n");
-+ exit(1);
-+ }
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ HMAC_CTX_reset(hmacsha1_ctx);
-+#else
-+ HMAC_CTX_init(hmacsha1_ctx);
-+#endif
-+ HMAC_Init_ex(hmacsha1_ctx, hmacsha1_key, sizeof(hmacsha1_key), EVP_sha1(), NULL);
- AES_set_decrypt_key(aes_key, CIPHER_KEY_LENGTH * 8, &aes_decrypt_key);
-
- if (verbose >= 1) {
-@@ -472,5 +523,11 @@ int main(int argc, char *argv[]) {
- }
-
- if (verbose) fprintf(stderr, "%"PRIX32" chunks written\n", chunk_no);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ HMAC_CTX_free(hmacsha1_ctx);
-+#else
-+ HMAC_CTX_cleanup(hmacsha1_ctx);
-+ free(hmacsha1_ctx);
-+#endif
- return(0);
- }
diff --git a/testing/dnscontrol/APKBUILD b/testing/dnscontrol/APKBUILD
new file mode 100644
index 00000000000..f35cf0f9e5a
--- /dev/null
+++ b/testing/dnscontrol/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=dnscontrol
+pkgver=4.9.0
+pkgrel=0
+pkgdesc="Synchronize your DNS to multiple providers from a simple DSL"
+url="https://stackexchange.github.io/dnscontrol/"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/StackExchange/dnscontrol/archive/v$pkgver.tar.gz
+ dnsconfig.js"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build
+}
+
+check() {
+ ./dnscontrol check --config ../dnsconfig.js
+}
+
+package() {
+ install -Dm755 dnscontrol "$pkgdir"/usr/bin/dnscontrol
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+42dec7495e00595fb8d6ec174b45e87505a874a7f1ed286040a5ce0718cb9dee8b9a903f8c3f9f7c30a2e4e162a938b490667b397fe3ea6df79baa9df4036b58 dnscontrol-4.9.0.tar.gz
+5503f149662dcf4d8548bc7e60bf566b2c4e7580593a15cca8f344f37103f413b860f4cb25ed38a620cf650528f133e4dc4d51824993b4e314acba5308a225d4 dnsconfig.js
+"
diff --git a/testing/dnscontrol/dnsconfig.js b/testing/dnscontrol/dnsconfig.js
new file mode 100644
index 00000000000..2595cb00010
--- /dev/null
+++ b/testing/dnscontrol/dnsconfig.js
@@ -0,0 +1,9 @@
+var namecom = NewRegistrar("name.com", "NAMEDOTCOM");
+var r53 = NewDnsProvider("r53", "ROUTE53")
+
+D("example.com", namecom, DnsProvider(r53),
+ A("@", "1.2.3.4"),
+ CNAME("www","@"),
+ MX("@",5,"mail.myserver.com."),
+ A("test", "5.6.7.8")
+)
diff --git a/testing/dnscrypt-wrapper/APKBUILD b/testing/dnscrypt-wrapper/APKBUILD
index 5bec041a527..ed16f5aa118 100644
--- a/testing/dnscrypt-wrapper/APKBUILD
+++ b/testing/dnscrypt-wrapper/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dnscrypt-wrapper
pkgver=0.4.2
-pkgrel=0
+pkgrel=3
pkgdesc="dnscrypt wrapper (server-side dnscrypt proxy), which helps to add dnscrypt support to any name resolver"
url="https://github.com/Cofyc/dnscrypt-wrapper"
arch="all"
diff --git a/testing/dnsenum/APKBUILD b/testing/dnsenum/APKBUILD
index 8abe029461c..895e4b421a2 100644
--- a/testing/dnsenum/APKBUILD
+++ b/testing/dnsenum/APKBUILD
@@ -1,23 +1,29 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=dnsenum
-pkgver=1.2.4.2
+pkgver=1.3.2
pkgrel=0
-pkgdesc="A tool to enumerate DNS info about domains"
-url="https://github.com/fwaeytens/dnsenum"
+pkgdesc="Tool to enumerate DNS info about domains"
+url="https://github.com/SparrowOchon/dnsenum2"
arch="noarch"
license="GPL-2.0-or-later"
-depends="perl-net-ip perl-net-dns perl-net-netmask perl-xml-writer perl-string-random"
-source="$pkgname-$pkgver.tar.gz::https://github.com/fwaeytens/dnsenum/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
+depends="
+ perl-net-dns perl-net-ip perl-net-netmask
+ perl-string-random perl-xml-writer
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/SparrowOchon/dnsenum2/archive/v$pkgver.tar.gz"
+builddir="$srcdir/${pkgname}2-$pkgver"
+options="!check" # no tests provided
build() {
- return 0
+ make
}
package() {
- cd "$builddir"
- install -Dm755 $pkgname.pl "$pkgdir"/usr/bin/$pkgname || return 1
+ make DESTDIR="$pkgdir" INSTALL_DEPS=0 install
}
-sha512sums="c4ff6c6b6d6be0f60a3c784c259a51d51b6e0b72d1528efb8ed5ad038fd859d5884d13adb272b066f7b381a49b68ec6b507a9a94c2ca5061829051ff3adbc93b dnsenum-1.2.4.2.tar.gz"
+sha512sums="
+47915d3a61223898aa50b7d96993ac6dce26027e1ab6ed4f373d7e4df7e293583657f0c030fde00f6ec34e04a0d83a505abbcb0dbbf4db27cb29676cb3979156 dnsenum-1.3.2.tar.gz
+"
diff --git a/testing/dnsfunnel/APKBUILD b/testing/dnsfunnel/APKBUILD
new file mode 100644
index 00000000000..2f346d5299b
--- /dev/null
+++ b/testing/dnsfunnel/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Laurent Bercot <ska-devel@skarnet.org>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
+pkgname=dnsfunnel
+pkgver=0.0.1.6
+pkgrel=0
+pkgdesc="A small local DNS cache daemon"
+url=https://skarnet.org/software/dnsfunnel/
+arch="all"
+license="ISC"
+options="!check" # no test targets
+makedepends="skalibs-dev>=2.14 s6-dns-dev"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://skarnet.org/software/dnsfunnel/dnsfunnel-$pkgver.tar.gz
+ dnsfunnel.initd"
+install="dnsfunnel.pre-install"
+
+build() {
+ ./configure \
+ --enable-shared \
+ --enable-static \
+ --disable-allstatic \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --libexecdir="/usr/lib/$pkgname" \
+ --with-dynlib=/lib
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -D "$srcdir/dnsfunnel.initd" "$pkgdir/etc/init.d/dnsfunnel"
+}
+
+doc() {
+ default_doc
+ mkdir -p "$subpkgdir/usr/share/doc"
+ cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+ceecdbf268eca39ffac37d09a7f85fd799aa7fe1b15a83954bfb448f22edc53e84aab2e90d4492d6ddc7d1342e0f5889aa1bd1b16087a7d49c37ee35a8637bdb dnsfunnel-0.0.1.6.tar.gz
+b34242cbf457a26770e87ea36d2d6169a42367e4a04444a48b7cae3688827c61e93aeafbd1d009b19e327db66723e9a7c161c4a0b1e27fa3746ccf1cd29a5d2e dnsfunnel.initd
+"
diff --git a/testing/dnsfunnel/dnsfunnel.initd b/testing/dnsfunnel/dnsfunnel.initd
new file mode 100644
index 00000000000..077f5253cfd
--- /dev/null
+++ b/testing/dnsfunnel/dnsfunnel.initd
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+# Copyright 2020-2021 Laurent Bercot for Alpine Linux
+# Distributed under the terms of the ISC License.
+#
+
+name=dnsfunnel
+description="local DNS cache daemon"
+command=dnsfunneld
+command_args="-v2 -u `id -u dnsfunnel` -g `id -g dnsfunnel` -xn"
+command_background=true
+directory=/run/dnsfunnel/root
+pidfile=/run/dnsfunnel/dnsfunnel.pid
+
+start_pre() {
+ mkdir -p -m 0755 /run/dnsfunnel/root
+ dnsfunnel-translate
+}
diff --git a/testing/dnsfunnel/dnsfunnel.pre-install b/testing/dnsfunnel/dnsfunnel.pre-install
new file mode 100644
index 00000000000..b235e74775e
--- /dev/null
+++ b/testing/dnsfunnel/dnsfunnel.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+addgroup -S dnsfunnel 2>/dev/null
+adduser -S -D -H -s /bin/false -G dnsfunnel -g dnsfunnel dnsfunnel 2>/dev/null
+exit 0
diff --git a/testing/dnsperf/APKBUILD b/testing/dnsperf/APKBUILD
new file mode 100644
index 00000000000..0b6bf15bd6c
--- /dev/null
+++ b/testing/dnsperf/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Thomas Deutsch <thomas@tuxpeople.org>
+# Maintainer: Thomas Deutsch <thomas@tuxpeople.org>
+pkgname=dnsperf
+pkgver=2.14.0
+pkgrel=0
+pkgdesc="Dnsperf and resperf gather accurate latency and throughput metrics for DNS"
+url="https://www.dns-oarc.net/tools/dnsperf"
+arch="all"
+license="Apache-2.0"
+makedepends="
+ ck-dev
+ fstrm-dev
+ json-c-dev
+ krb5-dev
+ ldns-dev
+ libcap-dev
+ libxml2-dev
+ nghttp2-dev
+ openssl-dev
+ protobuf-c-dev
+ "
+subpackages="$pkgname-doc"
+source="https://www.dns-oarc.net/files/dnsperf/dnsperf-$pkgver.tar.gz"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ebca70071a07b2f5b2a07866c22aa9f459981f70be06047ada760bf7e53bf44c355cf964674483ce5eae736a64b9061d773a44e8c46f956525d29144ca48a9fd dnsperf-2.14.0.tar.gz
+"
diff --git a/testing/dnssec-tools/APKBUILD b/testing/dnssec-tools/APKBUILD
index e77ecb7fbe9..3aae4072992 100644
--- a/testing/dnssec-tools/APKBUILD
+++ b/testing/dnssec-tools/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dnssec-tools
pkgver=2.2.3
-pkgrel=5
+pkgrel=10
pkgdesc="Set of tools that will help ease the deployment of DNSSEC"
url="https://dnssec-tools.org/"
arch="all"
license="BSD-3-Clause"
depends="perl-net-dns-sec perl-mailtools"
-makedepends="autoconf automake bind-dev libtool openssl-dev perl-graphviz perl-crypt-openssl-random
+makedepends="autoconf automake bind-dev libtool openssl-dev>3 perl-graphviz perl-crypt-openssl-random
perl-net-dns perl-xml-simple perl-dev sed chrpath"
source="https://github.com/DNSSEC-Tools/DNSSEC-Tools/archive/dnssec-tools-$pkgver.tar.gz"
subpackages="$pkgname-dev $pkgname-doc"
@@ -16,8 +16,8 @@ subpackages="$pkgname-dev $pkgname-doc"
builddir="${srcdir}/DNSSEC-Tools-${pkgname}-${pkgver}/${pkgname}"
prepare() {
- local pf
update_config_guess
+ update_config_sub
default_prepare
sed -e '/^maninstall:/,+3s:$(MKPATH) $(mandir)/$(man1dir):$(MKPATH) $(DESTDIR)/$(mandir)/$(man1dir):' \
-i Makefile.in
@@ -29,7 +29,6 @@ prepare() {
}
build() {
- CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE=1"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -43,8 +42,10 @@ build() {
package() {
mkdir -p "$pkgdir"/usr/share/man/man1
- make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install -j1
chrpath -d "$pkgdir"/usr/bin/dt-*
}
-sha512sums="fd2467f116f77089bddf9311706f356957f4ae735d827d393534e4001b621c9dfc904ff3d4da698d37e8e97b1be9448ab2fd5455c124656399aac30f1f642baf dnssec-tools-2.2.3.tar.gz"
+sha512sums="
+fd2467f116f77089bddf9311706f356957f4ae735d827d393534e4001b621c9dfc904ff3d4da698d37e8e97b1be9448ab2fd5455c124656399aac30f1f642baf dnssec-tools-2.2.3.tar.gz
+"
diff --git a/testing/dnstap-ldns/APKBUILD b/testing/dnstap-ldns/APKBUILD
new file mode 100644
index 00000000000..6e43fd9f082
--- /dev/null
+++ b/testing/dnstap-ldns/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=dnstap-ldns
+pkgver=0.2.1
+pkgrel=0
+pkgdesc="Reference dnstap decoding utility"
+url="https://github.com/dnstap/dnstap-ldns"
+arch="all"
+license="Apache-2.0"
+makedepends="
+ autoconf
+ automake
+ fstrm-dev
+ ldns-dev
+ protobuf-c-dev
+ "
+source="https://github.com/dnstap/dnstap-ldns/archive/v$pkgver/dnstap-ldns-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+33040e78ffaefaa6fc996ae246b5b5341fd4ad4271a20be34bb53ccf4fd2cc96fb196a02b7a396b3cfd081e64486134baeef5b96c38143e581ff79f89806fea3 dnstap-ldns-0.2.1.tar.gz
+"
diff --git a/testing/doasedit/APKBUILD b/testing/doasedit/APKBUILD
new file mode 100644
index 00000000000..a3d8b4a5f99
--- /dev/null
+++ b/testing/doasedit/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Rosie K Languet <rkl@rosiesworkshop.net>
+# Contributor: Hygna <hygna@proton.me>
+# Maintainer: Rosie K Languet <rkl@rosiesworkshop.net>
+pkgname=doasedit
+pkgver=1.0.7
+pkgrel=0
+pkgdesc="Shellscript to edit files that are not in a user-writable location"
+url="https://codeberg.org/TotallyLeGIT/doasedit"
+arch="noarch"
+license="MIT"
+options="!check"
+depends="cmd:doas"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/TotallyLeGIT/doasedit/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+
+package() {
+ install -D -m755 "doasedit" "$pkgdir/usr/bin/doasedit"
+}
+
+sha512sums="
+72100a4294469bc06ab3f356f70950e621f5b80bf66fdba096a78158050fc50338d628c87f1aae9b15273fd6e67d0e9af8c227c611a94cf93d8d24f8ea905128 doasedit-1.0.7.tar.gz
+"
diff --git a/testing/docbook2mdoc/APKBUILD b/testing/docbook2mdoc/APKBUILD
new file mode 100644
index 00000000000..f32bc9c148e
--- /dev/null
+++ b/testing/docbook2mdoc/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer:
+pkgname=docbook2mdoc
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="DocBook to mdoc converter"
+url="https://mandoc.bsd.lv/docbook2mdoc/"
+arch="all"
+license="ISC"
+makedepends="bsd-compat-headers"
+subpackages="$pkgname-doc"
+options="!check" # no test suite
+source="https://mandoc.bsd.lv/docbook2mdoc/snapshots/docbook2mdoc-$pkgver.tgz
+ fix-mandir.patch
+ strtonum.patch"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="d935a12de59a1b91f51b3ddcc1047ce6e46f0490852c3ab1191402f6c2f9d8e79c57b1ad67ac7b2527c9aa4788f027ca6b83dffbcfed756af0422858713101be docbook2mdoc-1.1.0.tgz
+ff477e2f01275fa1dbcdb9c157c7086de76a66683855fba5cd7ac4c1fe0d258fde4869f4de12a740b5c0eee76e4f89d9e89fea9c528cfa0a4f2cf5bd9ebe3982 fix-mandir.patch
+d39eab31a4724bebc173f8b1a632049c4cf05c5aac9301b505fc968817fbed07a9227d8dffb1f059c59be8f2d93ed4ead18a8b09458cbff29d1643ecfa7b946d strtonum.patch"
diff --git a/testing/docbook2mdoc/fix-mandir.patch b/testing/docbook2mdoc/fix-mandir.patch
new file mode 100644
index 00000000000..008db2c56a9
--- /dev/null
+++ b/testing/docbook2mdoc/fix-mandir.patch
@@ -0,0 +1,17 @@
+OpenBSD uses $(PREFIX)/man as a MANDIR, we use $(PREFIX)/share/man.
+
+diff -upr docbook2mdoc-1.1.0.orig/Makefile docbook2mdoc-1.1.0/Makefile
+--- docbook2mdoc-1.1.0.orig/Makefile 2020-12-29 10:24:38.687808981 +0100
++++ docbook2mdoc-1.1.0/Makefile 2020-12-29 10:25:00.454608509 +0100
+@@ -20,9 +20,9 @@ www: docbook2mdoc.1.html docbook2mdoc-$(
+
+ install: all
+ mkdir -p $(DESTDIR)$(PREFIX)/bin
+- mkdir -p $(DESTDIR)$(PREFIX)/man/man1
++ mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
+ install -m 0755 docbook2mdoc $(DESTDIR)$(PREFIX)/bin
+- install -m 0444 docbook2mdoc.1 $(DESTDIR)$(PREFIX)/man/man1
++ install -m 0444 docbook2mdoc.1 $(DESTDIR)$(PREFIX)/share/man/man1
+
+ installwww: www
+ mkdir -p $(WWWPREFIX)/snapshots
diff --git a/testing/docbook2mdoc/strtonum.patch b/testing/docbook2mdoc/strtonum.patch
new file mode 100644
index 00000000000..2265b0d4e21
--- /dev/null
+++ b/testing/docbook2mdoc/strtonum.patch
@@ -0,0 +1,86 @@
+musl doesn't have strtonum, import it from OpenBSD.
+
+diff -upr docbook2mdoc-1.1.0.orig/Makefile docbook2mdoc-1.1.0/Makefile
+--- docbook2mdoc-1.1.0.orig/Makefile 2020-12-29 10:20:53.933977196 +0100
++++ docbook2mdoc-1.1.0/Makefile 2020-12-29 10:21:24.500779954 +0100
+@@ -4,8 +4,8 @@ WWWPREFIX = /var/www/vhosts/mdocml.bsd.l
+ PREFIX = /usr/local
+
+ HEADS = xmalloc.h node.h parse.h reorg.h macro.h format.h
+-SRCS = xmalloc.c node.c parse.c reorg.c macro.c docbook2mdoc.c tree.c main.c
+-OBJS = xmalloc.o node.o parse.o reorg.o macro.o docbook2mdoc.o tree.o main.o
++SRCS = xmalloc.c node.c parse.c reorg.c macro.c docbook2mdoc.c tree.c main.c strtonum.c
++OBJS = xmalloc.o node.o parse.o reorg.o macro.o docbook2mdoc.o tree.o main.o strtonum.o
+ DISTFILES = Makefile NEWS docbook2mdoc.1
+
+ all: docbook2mdoc
+diff -upr docbook2mdoc-1.1.0.orig/strtonum.c docbook2mdoc-1.1.0/strtonum.c
+--- docbook2mdoc-1.1.0.orig/strtonum.c 2020-12-29 10:22:06.460966781 +0100
++++ docbook2mdoc-1.1.0/strtonum.c 2020-12-29 10:21:09.747380938 +0100
+@@ -0,0 +1,66 @@
++/* $OpenBSD: strtonum.c,v 1.8 2015/09/13 08:31:48 guenther Exp $ */
++
++/*
++ * Copyright (c) 2004 Ted Unangst and Todd Miller
++ * All rights reserved.
++ *
++ * 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 <errno.h>
++#include <limits.h>
++#include <stdlib.h>
++
++#define INVALID 1
++#define TOOSMALL 2
++#define TOOLARGE 3
++
++long long
++strtonum(const char *numstr, long long minval, long long maxval,
++ const char **errstrp)
++{
++ long long ll = 0;
++ int error = 0;
++ char *ep;
++ struct errval {
++ const char *errstr;
++ int err;
++ } ev[4] = {
++ { NULL, 0 },
++ { "invalid", EINVAL },
++ { "too small", ERANGE },
++ { "too large", ERANGE },
++ };
++
++ ev[0].err = errno;
++ errno = 0;
++ if (minval > maxval) {
++ error = INVALID;
++ } else {
++ ll = strtoll(numstr, &ep, 10);
++ if (numstr == ep || *ep != '\0')
++ error = INVALID;
++ else if ((ll == LLONG_MIN && errno == ERANGE) || ll < minval)
++ error = TOOSMALL;
++ else if ((ll == LLONG_MAX && errno == ERANGE) || ll > maxval)
++ error = TOOLARGE;
++ }
++ if (errstrp != NULL)
++ *errstrp = ev[error].errstr;
++ errno = ev[error].err;
++ if (error)
++ ll = 0;
++
++ return (ll);
++}
++DEF_WEAK(strtonum);
diff --git a/testing/docker-auth/APKBUILD b/testing/docker-auth/APKBUILD
new file mode 100644
index 00000000000..4b3d32ae8bc
--- /dev/null
+++ b/testing/docker-auth/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Conrad Hoffmann <ch@bitfehler.net>
+pkgname=docker-auth
+pkgver=1.11.0
+pkgrel=7
+pkgdesc="Authentication server for Docker Registry 2"
+url="https://github.com/cesanta/docker_auth"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+install="$pkgname.pre-install"
+pkgusers="docker-auth"
+pkggroups="docker-auth"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cesanta/docker_auth/archive/refs/tags/$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ reference-example.patch
+ "
+builddir="$srcdir/docker_auth-$pkgver"
+options="net"
+
+build() {
+ make -C auth_server VERSION="$pkgver" BUILD_ID="$pkgver@alpine" build
+}
+
+check() {
+ ./auth_server/auth_server -h
+}
+
+package() {
+ install -D -m755 auth_server/auth_server "$pkgdir"/usr/bin/$pkgname
+ install -D -m640 -o $pkgusers -g $pkggroups \
+ examples/reference.yml "$pkgdir"/etc/$pkgname/config.yml
+ install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+3fcf54566ed22c9c9b5507695f5f50deb83312218820ab9a189e8ad5070f9514abb2a3888a5848f6c15fba2a3ef9b310021f24d9263600a3b54deaad30bd7ad5 docker-auth-1.11.0.tar.gz
+019969b04fca65c72f8a699814b6746885f815bebd985c706883170b15ba159b353aaa1c62524f4b43c960c183039f6f123260a820752817bfded4585330b8d1 docker-auth.initd
+fece8767508923b72d86ae106099d97cf92ab43f776fbc4ccc98fb751dff6650101df17827b51c25748052e4fc3f5e21139b84712cef0bfb6366ba8c8afcd1b9 docker-auth.confd
+c0132fe460bcfe36a0c7b16d543509516b5a0239e710cf9995809259d0112dbe408a1a6080b3b044127c2d0b48dd9a726db3f707d4073800067302282b44e016 reference-example.patch
+"
diff --git a/testing/docker-auth/docker-auth.confd b/testing/docker-auth/docker-auth.confd
new file mode 100644
index 00000000000..e5a9a748b5f
--- /dev/null
+++ b/testing/docker-auth/docker-auth.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/docker-registry
+
+# Path to the configuration file.
+cfgfile="/etc/docker-auth/config.yml"
+
+# The user and group to run docker-registry as.
+command_user="docker-auth:docker-auth"
+
+# Uncomment to run with process supervisor.
+# supervisor=supervise-daemon
diff --git a/testing/docker-auth/docker-auth.initd b/testing/docker-auth/docker-auth.initd
new file mode 100644
index 00000000000..e54a8986041
--- /dev/null
+++ b/testing/docker-auth/docker-auth.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+
+name="Docker registry authentication server"
+
+command="/usr/bin/docker-auth"
+# Without `-logtostderr=true` the daemon litters /tmp with logfiles
+command_args="-logtostderr=true $cfgfile"
+command_background="yes"
+logfile="/var/log/${RC_SVCNAME}.log"
+error_log="$logfile"
+output_log="$logfile"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+required_files="$cfgfile"
+
+start_pre() {
+ if [ "$logfile" ]; then
+ checkpath -f -m 0644 -o "$command_user" "$logfile" || return 1
+ fi
+}
diff --git a/testing/docker-auth/docker-auth.pre-install b/testing/docker-auth/docker-auth.pre-install
new file mode 100644
index 00000000000..a387e9825ef
--- /dev/null
+++ b/testing/docker-auth/docker-auth.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S docker-auth 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G docker-auth -g docker-auth docker-auth 2>/dev/null
+
+exit 0
diff --git a/testing/docker-auth/reference-example.patch b/testing/docker-auth/reference-example.patch
new file mode 100644
index 00000000000..4261fde3ad8
--- /dev/null
+++ b/testing/docker-auth/reference-example.patch
@@ -0,0 +1,905 @@
+diff --git a/examples/reference.yml b/examples/reference.yml
+index ce741d0..4adec43 100644
+--- a/examples/reference.yml
++++ b/examples/reference.yml
+@@ -10,452 +10,452 @@
+ # autoredirect: false
+ # rootcertbundle: "/path/to/server.pem"
+
+-server: # Server settings.
+- # Address to listen on.
+- # Can be HOST:PORT for TCP or file path (e.g. /run/docker_auth.sock) for Unix socket.
+- addr: ":5001"
+-
+- # Network, can be "tcp" or "unix" ("tcp" if unspecified).
+- net: "tcp"
+-
+- # URL path prefix to use.
+- path_prefix: ""
+-
+- # TLS options.
+- #
+- # Use specific certificate and key.
+- certificate: "/path/to/server.pem"
+- key: "/path/to/server.key"
+- #
+- # The following optional settings will fine tune TLS configuration to improve security.
+- # Leaving them unset should be just fine for most installations.
+- #
+- # Enable HTTP Strict Transport Security.
+- # hsts: true
+- #
+- # Set minimum TLS version.
+- # Values can be found at https://golang.org/pkg/crypto/tls/#pkg-constants
+- # Either the version name (i.e. TLS11) or its uint16 value can be specified.
+- # tls_min_version: TLS12
+- #
+- # List of TLS curve preferences.
+- # Values can be found at https://golang.org/pkg/crypto/tls/#CurveID
+- # Either CurveID names (i.e. P384) or uint16 values can be specified.
+- # tls_curve_preferences:
+- # - P521
+- # - 24
+- # - P256
+- #
+- # List of enabled TLS cipher suites.
+- # Values can be found at https://golang.org/pkg/crypto/tls/#pkg-constants
+- # Either CipherSuite names (i.e. TLS_RSA_WITH_RC4_128_SHA) or uint16 values can be specified.
+- # tls_cipher_suites:
+- # - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+- # - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+- # - 0xc014
+- # - 0xc00a
+-
+- # Use LetsEncrypt (https://letsencrypt.org/) to automatically obtain and maintain a certificate.
+- # Note that this only applies to server TLS certificate, this certificate will not be used for tokens
+- letsencrypt:
+- # Email is required. It will be used to register with LetsEncrypt.
+- email: webmaster@example.org
+- # Cache directory, where certificates issued by LE will be stored. Must exist.
+- # It is recommended to make it a volume mount so it persists across restarts.
+- cache_dir: /data/sslcache
+- # Normally LetsEncrypt will obtain a certificate for whichever host the client is connecting to.
+- # With this option, you can limit it to a specific host name.
+- # host: "docker.example.org"
+- # If neither certificate+key or letsencrypt are configured, the listener does not use TLS.
+-
+- # Take client's address from the specified HTTP header instead of connection.
+- # May be useful if the server is behind a proxy or load balancer.
+- # If configured, this header must be present, requests without it will be rejected.
+- # real_ip_header: "X-Forwarded-For"
+- # Optional position of client ip in X-Forwarded-For, negative starts from
+- # end of addresses.
+- # real_ip_pos: -2
+-
+-token: # Settings for the tokens.
+- issuer: "Acme auth server" # Must match issuer in the Registry config.
+- expiration: 900
+- # Token must be signed by a certificate that registry trusts, i.e. by a certificate to which a trust chain
+- # can be constructed from one of the certificates in registry's auth.token.rootcertbundle.
+- # If not specified, server's TLS certificate and key are used.
+- # certificate: "..."
+- # key: "..."
+-
+-# Authentication methods. All are tried, any one returning success is sufficient.
+-# At least one must be configured. If you want an unauthenticated public setup,
+-# configure static user map with anonymous access.
+-
+-# Static user map.
+-users:
+- # Password is specified as a BCrypt hash. Use `htpasswd -nB USERNAME` to generate.
+- "admin":
+- password: "$2y$05$LO.vzwpWC5LZGqThvEfznu8qhb5SGqvBSWY1J3yZ4AxtMRZ3kN5jC" # badmin
+- "test":
+- password: "$2y$05$WuwBasGDAgr.QCbGIjKJaep4dhxeai9gNZdmBnQXqpKly57oNutya" # 123
+- "": {} # Allow anonymous (no "docker login") access.
+-
+-# Google authentication.
+-# ==! NB: DO NOT ENTER YOUR GOOGLE PASSWORD AT "docker login". IT WILL NOT WORK.
+-# Instead, Auth server maintains a database of Google authentication tokens.
+-# Go to the server's port as HTTPS with your browser and follow the "Login with Google account" link.
+-# Once signed in, you will get a throw-away password which you can use for Docker login.
+-google_auth:
+- domain: "example.com" # Optional. If set, only logins from this domain are accepted.
+- # client_id and client_secret for API access. Required.
+- # Follow instructions here: https://developers.google.com/identity/sign-in/web/devconsole-project
+- # NB: Make sure JavaScript origins are configured correctly, and that third-party
+- # cookies are not blocked in the browser being used to login.
+- client_id: "1223123456-somethingsomething.apps.googleusercontent.com"
+- # Either client_secret or client_secret_file is required. Use client_secret_file if you don't
+- # want to have sensitive information checked in.
+- # client_secret: "verysecret"
+- client_secret_file: "/path/to/client_secret.txt"
+- # Where to store server tokens. Required.
+- token_db: "/somewhere/to/put/google_tokens.ldb"
+- # How long to wait when talking to Google servers. Optional.
+- http_timeout: 10
+-
+-# GitHub authentication.
+-# ==! NB: DO NOT ENTER YOUR GITHUB PASSWORD AT "docker login". IT WILL NOT WORK.
+-# Instead, Auth server maintains a database of GitHub authentication tokens.
+-# Go to the server's port as HTTPS with your browser and follow the "Login with GitHub account" link.
+-# Once signed in, you will get a throw-away password which you can use for Docker login.
+-github_auth:
+- organization: "acme" # Optional. If set, only logins from this organization are accepted.
+- # client_id and client_secret for API access. Required.
+- # You can register a new application here: https://github.com/settings/developers
+- # NB: Make sure JavaScript origins are configured correctly, and that third-party
+- # cookies are not blocked in the browser being used to login.
+- client_id: "1223123456"
+- # Either client_secret or client_secret_file is required. Use client_secret_file if you don't
+- # want to have sensitive information checked in.
+- # client_secret: "verysecret"
+- client_secret_file: "/path/to/client_secret.txt"
+- # Either token_db file for storing of server tokens.
+- token_db: "/somewhere/to/put/github_tokens.ldb"
+- # or google cloud storage for storing of the sensitive information,
+- gcs_token_db:
+- bucket: "tokenBucket"
+- client_secret_file: "/path/to/client_secret.json"
+- # or Redis,
+- redis_token_db:
+- redis_options:
+- # with a single instance,
+- addr: localhost:6379
+- redis_cluster_options:
+- # or in the cluster mode.
+- addrs: ["localhost:7000"]
+- # How long to wait when talking to GitHub servers. Optional.
+- http_timeout: "10s"
+- # How long to wait before revalidating the GitHub token. Optional.
+- revalidate_after: "1h"
+- # The Github Web URI in case you are using Github Enterprise.
+- # Includes the protocol, without trailing slash. Optional - defaults to: https://github.com
+- github_web_uri: "https://github.acme.com"
+- # The Github API URI in case you are using Github Enterprise.
+- # Includes the protocol, without trailing slash. - defaults to: https://api.github.com
+- github_api_uri: "https://github.acme.com/api/v3"
+- # Set an URL to display in the `docker login` command when succesfully authenticated. Optional.
+- registry_url: localhost:5000
+-
+-# OpenID Connect authentication
+-# ==! NB: DO NOT ENTER YOUR OIDC PASSWORD AT "docker login". IT WILL NOT WORK.
+-# Instead, Auth server maintains a database of OIDC authentication tokens.
+-# Go to the server's port as HTTPS with your browser and follow the "Login with OIDC account" link.
+-# Once signed in, you will get a throw-away password which you can use for Docker login.
+-oidc_auth:
+- # --- required ---
+- # The issuer URL of your OIDC provider. It has to be extendable with /.well-known/openid-configuration to request all
+- # OIDC endpoints for token and authorization requests
+- issuer: "my_issuer_url"
+- # The redirect URI which is registered for this client at your OIDC provider. It has to end with /oidc_auth.
+- redirect_url: "my_redirect_uri/oidc_auth"
+- # The client id and client secret of the client that is registered at your OIDC provider for docker_auth
+- client_id: "be4ut1fu1-cl13n7-1d"
+- client_secret: "be4ut1fu1-cl13n7-s3cr37"
+- # you can also give the client_secret in a file. Either a client_secret or a client_secret_file has to be provided
+- # client_secret_file: "/path/to/client_secret.txt"
+- #
+- # a file in which the tokens should be stored. Does not have to exist, it will be generated in this case
+- token_db: "/path/to/tokens.ldb"
+- # --- optional ---
+- # How long to wait when talking to the OIDC provider.
+- http_timeout: 10
+- # the url of the registry where you want to login. Is used to present the full docker login command.
+- registry_url: "url_of_my_beautiful_docker_registry"
+- # The claim to use for the username.
+- # Default: email
+- user_claim: email
+- # String array claims that will be used as labels.
+- label_claims:
+- - groups
+- # Default: [openid, email]
+- scopes:
+- - openid
+- - email
+-
+-
+-# Gitlab authentication.
+-# ==! NB: DO NOT ENTER YOUR Gitlab PASSWORD AT "docker login". IT WILL NOT WORK.
+-# Instead, Auth server maintains a database of Gitlab authentication tokens.
+-# Go to the server's port as HTTPS with your browser and follow the "Login with Gitlab account" link.
+-# Once signed in, you will get a throw-away password which you can use for Docker login.
+-gitlab_auth:
+- client_id: "1223123456"
+- # Either client_secret or client_secret_file is required. Use client_secret_file if you don't
+- # want to have sensitive information checked in.
+- # client_secret: "verysecret"
+- client_secret_file: "/path/to/client_secret.txt"
+- # Either token_db file for storing of server tokens.
+- token_db: "/somewhere/to/put/gitlab_tokens.ldb"
+- # or google cloud storage for storing of the sensitive information,
+- gcs_token_db:
+- bucket: "tokenBucket"
+- client_secret_file: "/path/to/client_secret.json"
+- # or Redis,
+- redis_token_db:
+- redis_options:
+- # with a single instance,
+- addr: localhost:6379
+- redis_cluster_options:
+- # or in the cluster mode.
+- addrs: ["localhost:7000"]
+- # How long to wait when talking to GitLab servers. Optional.
+- http_timeout: "10s"
+- # How long to wait before revalidating the Gitlab token. Optional.
+- revalidate_after: "1h"
+- # Includes the protocol, without trailing slash. Optional - defaults to: https://gitlab.com
+- gitlab_web_uri: "https://gitlab.com"
+- # Includes the protocol, without trailing slash. - defaults to: https://gitlab.com/api/v4
+- gitlab_api_uri: "https://gitlab.com/api/v4"
+- # Set an URL to display in the `docker login` command when successfully authenticated. Optional.
+- registry_url: localhost:5000
+- # grant_type is used for the authentication purpose. Required.
+- grant_type: "authorization_code"
+- # Redirect uri is used for the authentication purpose. Must end with '/gitlab_auth' prefix. Required.
+- redirect_uri: "https://localhost:5001/gitlab_auth"
+-
+-# LDAP authentication.
+-# Authentication is performed by first binding to the server, looking up the user entry
+-# by using the specified filter, and then re-binding using the matched DN and the password provided.
+-ldap_auth:
+- # Addr is the hostname:port or ip:port
+- addr: ldap.example.com:636
+- # Setup tls connection method to be
+- # "" or "none": the communication won't be encrypted
+- # "always": setup LDAP over SSL/TLS
+- # "starttls": sets StartTLS as the encryption method
+- tls: always
+- # set to true to allow insecure tls
+- insecure_tls_skip_verify: false
+- # set this to specify the ca certificate path
+- ca_certificate:
+- # In case bind DN and password is required for querying user information,
+- # specify them here. Plain text password is read from the file.
+- bind_dn:
+- bind_password_file:
+- # User query settings. ${account} is expanded from auth request
+- base: o=example.com
+- filter: (&(uid=${account})(objectClass=person))
+- # Labels can be mapped from LDAP attributes
+- labels:
+- # Add the user's title to a label called title
+- title:
+- attribute: title
+- # Add the user's memberOf values to a label called groups
+- groups:
+- attribute: memberOf
+- # Special handling to simplify the values to just the common name
+- parse_cn: true
+- # lower case the value
+- lower_case: true
+-
+-mongo_auth:
+- # Essentially all options are described here: https://godoc.org/gopkg.in/mgo.v2#DialInfo
+- dial_info:
+- # The MongoDB hostnames or IPs to connect to.
+- addrs: ["localhost"]
+- # The time to wait for a server to respond when first connecting and on
+- # follow up operations in the session. If timeout is zero, the call may
+- # block forever waiting for a connection to be established.
+- # (See https://golang.org/pkg/time/#ParseDuration for a format description.)
+- timeout: "10s"
+- # Database name that will be used on the MongoDB server.
+- database: "docker_auth"
+- # The username with which to connect to the MongoDB server.
+- username: ""
+- # Path to the text file with the password in it.
+- password_file: ""
+- # Enable TLS connection to MongoDB (only enable this if your server supports it)
+- enable_tls: false
+- # Name of the collection in which ACLs will be stored in MongoDB.
+- collection: "users"
+- # Unlike acl_mongo we don't cache the full user set. We just query mongo for
+- # an exact match for each authorization
+-
+-xorm_auth:
+- # the database type you'd like to connect to
+- database_type: "mysql"
+- # the connection string to connect to the database
+- conn_string: "username:password@/database_name?charset=utf8"
+-
+-# External authentication - call an external progam to authenticate user.
+-# Username and password are passed to command's stdin and exit code is examined.
+-# 0 - allow, 1 - deny, 2 - no match, other - error.
+-# In case of success, if any output is returned, it is parsed as a JSON object.
+-# The "labels" key may contain labels to be passed down to authz, where they can
+-# be used in matching. See ext_auth.sh for an example.
+-ext_auth:
+- command: "/usr/local/bin/my_auth" # Can be a relative path too; $PATH works.
+- args: ["--flag", "--more", "--flags"]
+-
+-# User written authentication plugin - call a user written program to authenticate user.
+-# Username of type string and password of authn.PasswordString is passed to the plugin
+-# Expects a boolean value whether the user is authenticate or not, authn.Labels, error
+-# The "labels" key may contain labels to be passed down to authz, where they can
+-# be used in matching.
+-plugin_authn:
+- plugin_path: ""
+-
+-# Authorization methods. All are tried, any one returning success is sufficient.
+-# At least one must be configured.
+-
+-# ACL specifies who can do what. If the match section of an entry matches the
+-# request, the set of allowed actions will be applied to the token request
+-# and a ticket will be issued only for those of the requested actions that are
+-# allowed by the rule.
+-# * It is possible to match on user's name ("account"), subject type ("type")
+-# and name ("name"; for type=repository this is the image name).
+-# * Matches are evaluated as shell file name patterns ("globs") by default,
+-# so "foobar", "f??bar", "f*bar" are all valid. For even more flexibility
+-# match patterns can be evaluated as regexes by enclosing them in //, e.g.
+-# "/(foo|bar)/".
+-# * IP match can be single IP address or a subnet in the "prefix/mask" notation.
+-# * ACL is evaluated in the order it is defined until a match is found.
+-# Rules below the first match are not evaluated, so you'll need to put more
+-# specific rules above more broad ones.
+-# * Empty match clause matches anything, it only makes sense at the end of the
+-# list and can be used as a way of specifying default permissions.
+-# * Empty actions set means "deny everything". Thus, a rule with `actions: []`
+-# is in effect a "deny" rule.
+-# * A special set consisting of a single "*" action means "allow everything".
+-# * If no match is found the default is to deny the request.
++#server: # Server settings.
++# # Address to listen on.
++# # Can be HOST:PORT for TCP or file path (e.g. /run/docker_auth.sock) for Unix socket.
++# addr: ":5001"
++#
++# # Network, can be "tcp" or "unix" ("tcp" if unspecified).
++# net: "tcp"
++#
++# # URL path prefix to use.
++# path_prefix: ""
++#
++# # TLS options.
++# #
++# # Use specific certificate and key.
++# certificate: "/path/to/server.pem"
++# key: "/path/to/server.key"
++# #
++# # The following optional settings will fine tune TLS configuration to improve security.
++# # Leaving them unset should be just fine for most installations.
++# #
++# # Enable HTTP Strict Transport Security.
++# # hsts: true
++# #
++# # Set minimum TLS version.
++# # Values can be found at https://golang.org/pkg/crypto/tls/#pkg-constants
++# # Either the version name (i.e. TLS11) or its uint16 value can be specified.
++# # tls_min_version: TLS12
++# #
++# # List of TLS curve preferences.
++# # Values can be found at https://golang.org/pkg/crypto/tls/#CurveID
++# # Either CurveID names (i.e. P384) or uint16 values can be specified.
++# # tls_curve_preferences:
++# # - P521
++# # - 24
++# # - P256
++# #
++# # List of enabled TLS cipher suites.
++# # Values can be found at https://golang.org/pkg/crypto/tls/#pkg-constants
++# # Either CipherSuite names (i.e. TLS_RSA_WITH_RC4_128_SHA) or uint16 values can be specified.
++# # tls_cipher_suites:
++# # - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
++# # - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
++# # - 0xc014
++# # - 0xc00a
++#
++# # Use LetsEncrypt (https://letsencrypt.org/) to automatically obtain and maintain a certificate.
++# # Note that this only applies to server TLS certificate, this certificate will not be used for tokens
++# letsencrypt:
++# # Email is required. It will be used to register with LetsEncrypt.
++# email: webmaster@example.org
++# # Cache directory, where certificates issued by LE will be stored. Must exist.
++# # It is recommended to make it a volume mount so it persists across restarts.
++# cache_dir: /data/sslcache
++# # Normally LetsEncrypt will obtain a certificate for whichever host the client is connecting to.
++# # With this option, you can limit it to a specific host name.
++# # host: "docker.example.org"
++# # If neither certificate+key or letsencrypt are configured, the listener does not use TLS.
++#
++# # Take client's address from the specified HTTP header instead of connection.
++# # May be useful if the server is behind a proxy or load balancer.
++# # If configured, this header must be present, requests without it will be rejected.
++# # real_ip_header: "X-Forwarded-For"
++# # Optional position of client ip in X-Forwarded-For, negative starts from
++# # end of addresses.
++# # real_ip_pos: -2
++#
++#token: # Settings for the tokens.
++# issuer: "Acme auth server" # Must match issuer in the Registry config.
++# expiration: 900
++# # Token must be signed by a certificate that registry trusts, i.e. by a certificate to which a trust chain
++# # can be constructed from one of the certificates in registry's auth.token.rootcertbundle.
++# # If not specified, server's TLS certificate and key are used.
++# # certificate: "..."
++# # key: "..."
++#
++## Authentication methods. All are tried, any one returning success is sufficient.
++## At least one must be configured. If you want an unauthenticated public setup,
++## configure static user map with anonymous access.
++#
++## Static user map.
++#users:
++# # Password is specified as a BCrypt hash. Use `htpasswd -nB USERNAME` to generate.
++# "admin":
++# password: "$2y$05$LO.vzwpWC5LZGqThvEfznu8qhb5SGqvBSWY1J3yZ4AxtMRZ3kN5jC" # badmin
++# "test":
++# password: "$2y$05$WuwBasGDAgr.QCbGIjKJaep4dhxeai9gNZdmBnQXqpKly57oNutya" # 123
++# "": {} # Allow anonymous (no "docker login") access.
++#
++## Google authentication.
++## ==! NB: DO NOT ENTER YOUR GOOGLE PASSWORD AT "docker login". IT WILL NOT WORK.
++## Instead, Auth server maintains a database of Google authentication tokens.
++## Go to the server's port as HTTPS with your browser and follow the "Login with Google account" link.
++## Once signed in, you will get a throw-away password which you can use for Docker login.
++#google_auth:
++# domain: "example.com" # Optional. If set, only logins from this domain are accepted.
++# # client_id and client_secret for API access. Required.
++# # Follow instructions here: https://developers.google.com/identity/sign-in/web/devconsole-project
++# # NB: Make sure JavaScript origins are configured correctly, and that third-party
++# # cookies are not blocked in the browser being used to login.
++# client_id: "1223123456-somethingsomething.apps.googleusercontent.com"
++# # Either client_secret or client_secret_file is required. Use client_secret_file if you don't
++# # want to have sensitive information checked in.
++# # client_secret: "verysecret"
++# client_secret_file: "/path/to/client_secret.txt"
++# # Where to store server tokens. Required.
++# token_db: "/somewhere/to/put/google_tokens.ldb"
++# # How long to wait when talking to Google servers. Optional.
++# http_timeout: 10
++#
++## GitHub authentication.
++## ==! NB: DO NOT ENTER YOUR GITHUB PASSWORD AT "docker login". IT WILL NOT WORK.
++## Instead, Auth server maintains a database of GitHub authentication tokens.
++## Go to the server's port as HTTPS with your browser and follow the "Login with GitHub account" link.
++## Once signed in, you will get a throw-away password which you can use for Docker login.
++#github_auth:
++# organization: "acme" # Optional. If set, only logins from this organization are accepted.
++# # client_id and client_secret for API access. Required.
++# # You can register a new application here: https://github.com/settings/developers
++# # NB: Make sure JavaScript origins are configured correctly, and that third-party
++# # cookies are not blocked in the browser being used to login.
++# client_id: "1223123456"
++# # Either client_secret or client_secret_file is required. Use client_secret_file if you don't
++# # want to have sensitive information checked in.
++# # client_secret: "verysecret"
++# client_secret_file: "/path/to/client_secret.txt"
++# # Either token_db file for storing of server tokens.
++# token_db: "/somewhere/to/put/github_tokens.ldb"
++# # or google cloud storage for storing of the sensitive information,
++# gcs_token_db:
++# bucket: "tokenBucket"
++# client_secret_file: "/path/to/client_secret.json"
++# # or Redis,
++# redis_token_db:
++# redis_options:
++# # with a single instance,
++# addr: localhost:6379
++# redis_cluster_options:
++# # or in the cluster mode.
++# addrs: ["localhost:7000"]
++# # How long to wait when talking to GitHub servers. Optional.
++# http_timeout: "10s"
++# # How long to wait before revalidating the GitHub token. Optional.
++# revalidate_after: "1h"
++# # The Github Web URI in case you are using Github Enterprise.
++# # Includes the protocol, without trailing slash. Optional - defaults to: https://github.com
++# github_web_uri: "https://github.acme.com"
++# # The Github API URI in case you are using Github Enterprise.
++# # Includes the protocol, without trailing slash. - defaults to: https://api.github.com
++# github_api_uri: "https://github.acme.com/api/v3"
++# # Set an URL to display in the `docker login` command when succesfully authenticated. Optional.
++# registry_url: localhost:5000
++#
++## OpenID Connect authentication
++## ==! NB: DO NOT ENTER YOUR OIDC PASSWORD AT "docker login". IT WILL NOT WORK.
++## Instead, Auth server maintains a database of OIDC authentication tokens.
++## Go to the server's port as HTTPS with your browser and follow the "Login with OIDC account" link.
++## Once signed in, you will get a throw-away password which you can use for Docker login.
++#oidc_auth:
++# # --- required ---
++# # The issuer URL of your OIDC provider. It has to be extendable with /.well-known/openid-configuration to request all
++# # OIDC endpoints for token and authorization requests
++# issuer: "my_issuer_url"
++# # The redirect URI which is registered for this client at your OIDC provider. It has to end with /oidc_auth.
++# redirect_url: "my_redirect_uri/oidc_auth"
++# # The client id and client secret of the client that is registered at your OIDC provider for docker_auth
++# client_id: "be4ut1fu1-cl13n7-1d"
++# client_secret: "be4ut1fu1-cl13n7-s3cr37"
++# # you can also give the client_secret in a file. Either a client_secret or a client_secret_file has to be provided
++# # client_secret_file: "/path/to/client_secret.txt"
++# #
++# # a file in which the tokens should be stored. Does not have to exist, it will be generated in this case
++# token_db: "/path/to/tokens.ldb"
++# # --- optional ---
++# # How long to wait when talking to the OIDC provider.
++# http_timeout: 10
++# # the url of the registry where you want to login. Is used to present the full docker login command.
++# registry_url: "url_of_my_beautiful_docker_registry"
++# # The claim to use for the username.
++# # Default: email
++# user_claim: email
++# # String array claims that will be used as labels.
++# label_claims:
++# - groups
++# # Default: [openid, email]
++# scopes:
++# - openid
++# - email
++#
++#
++## Gitlab authentication.
++## ==! NB: DO NOT ENTER YOUR Gitlab PASSWORD AT "docker login". IT WILL NOT WORK.
++## Instead, Auth server maintains a database of Gitlab authentication tokens.
++## Go to the server's port as HTTPS with your browser and follow the "Login with Gitlab account" link.
++## Once signed in, you will get a throw-away password which you can use for Docker login.
++#gitlab_auth:
++# client_id: "1223123456"
++# # Either client_secret or client_secret_file is required. Use client_secret_file if you don't
++# # want to have sensitive information checked in.
++# # client_secret: "verysecret"
++# client_secret_file: "/path/to/client_secret.txt"
++# # Either token_db file for storing of server tokens.
++# token_db: "/somewhere/to/put/gitlab_tokens.ldb"
++# # or google cloud storage for storing of the sensitive information,
++# gcs_token_db:
++# bucket: "tokenBucket"
++# client_secret_file: "/path/to/client_secret.json"
++# # or Redis,
++# redis_token_db:
++# redis_options:
++# # with a single instance,
++# addr: localhost:6379
++# redis_cluster_options:
++# # or in the cluster mode.
++# addrs: ["localhost:7000"]
++# # How long to wait when talking to GitLab servers. Optional.
++# http_timeout: "10s"
++# # How long to wait before revalidating the Gitlab token. Optional.
++# revalidate_after: "1h"
++# # Includes the protocol, without trailing slash. Optional - defaults to: https://gitlab.com
++# gitlab_web_uri: "https://gitlab.com"
++# # Includes the protocol, without trailing slash. - defaults to: https://gitlab.com/api/v4
++# gitlab_api_uri: "https://gitlab.com/api/v4"
++# # Set an URL to display in the `docker login` command when successfully authenticated. Optional.
++# registry_url: localhost:5000
++# # grant_type is used for the authentication purpose. Required.
++# grant_type: "authorization_code"
++# # Redirect uri is used for the authentication purpose. Must end with '/gitlab_auth' prefix. Required.
++# redirect_uri: "https://localhost:5001/gitlab_auth"
++#
++## LDAP authentication.
++## Authentication is performed by first binding to the server, looking up the user entry
++## by using the specified filter, and then re-binding using the matched DN and the password provided.
++#ldap_auth:
++# # Addr is the hostname:port or ip:port
++# addr: ldap.example.com:636
++# # Setup tls connection method to be
++# # "" or "none": the communication won't be encrypted
++# # "always": setup LDAP over SSL/TLS
++# # "starttls": sets StartTLS as the encryption method
++# tls: always
++# # set to true to allow insecure tls
++# insecure_tls_skip_verify: false
++# # set this to specify the ca certificate path
++# ca_certificate:
++# # In case bind DN and password is required for querying user information,
++# # specify them here. Plain text password is read from the file.
++# bind_dn:
++# bind_password_file:
++# # User query settings. ${account} is expanded from auth request
++# base: o=example.com
++# filter: (&(uid=${account})(objectClass=person))
++# # Labels can be mapped from LDAP attributes
++# labels:
++# # Add the user's title to a label called title
++# title:
++# attribute: title
++# # Add the user's memberOf values to a label called groups
++# groups:
++# attribute: memberOf
++# # Special handling to simplify the values to just the common name
++# parse_cn: true
++# # lower case the value
++# lower_case: true
++#
++#mongo_auth:
++# # Essentially all options are described here: https://godoc.org/gopkg.in/mgo.v2#DialInfo
++# dial_info:
++# # The MongoDB hostnames or IPs to connect to.
++# addrs: ["localhost"]
++# # The time to wait for a server to respond when first connecting and on
++# # follow up operations in the session. If timeout is zero, the call may
++# # block forever waiting for a connection to be established.
++# # (See https://golang.org/pkg/time/#ParseDuration for a format description.)
++# timeout: "10s"
++# # Database name that will be used on the MongoDB server.
++# database: "docker_auth"
++# # The username with which to connect to the MongoDB server.
++# username: ""
++# # Path to the text file with the password in it.
++# password_file: ""
++# # Enable TLS connection to MongoDB (only enable this if your server supports it)
++# enable_tls: false
++# # Name of the collection in which ACLs will be stored in MongoDB.
++# collection: "users"
++# # Unlike acl_mongo we don't cache the full user set. We just query mongo for
++# # an exact match for each authorization
++#
++#xorm_auth:
++# # the database type you'd like to connect to
++# database_type: "mysql"
++# # the connection string to connect to the database
++# conn_string: "username:password@/database_name?charset=utf8"
++#
++## External authentication - call an external progam to authenticate user.
++## Username and password are passed to command's stdin and exit code is examined.
++## 0 - allow, 1 - deny, 2 - no match, other - error.
++## In case of success, if any output is returned, it is parsed as a JSON object.
++## The "labels" key may contain labels to be passed down to authz, where they can
++## be used in matching. See ext_auth.sh for an example.
++#ext_auth:
++# command: "/usr/local/bin/my_auth" # Can be a relative path too; $PATH works.
++# args: ["--flag", "--more", "--flags"]
++#
++## User written authentication plugin - call a user written program to authenticate user.
++## Username of type string and password of authn.PasswordString is passed to the plugin
++## Expects a boolean value whether the user is authenticate or not, authn.Labels, error
++## The "labels" key may contain labels to be passed down to authz, where they can
++## be used in matching.
++#plugin_authn:
++# plugin_path: ""
++#
++## Authorization methods. All are tried, any one returning success is sufficient.
++## At least one must be configured.
++#
++## ACL specifies who can do what. If the match section of an entry matches the
++## request, the set of allowed actions will be applied to the token request
++## and a ticket will be issued only for those of the requested actions that are
++## allowed by the rule.
++## * It is possible to match on user's name ("account"), subject type ("type")
++## and name ("name"; for type=repository this is the image name).
++## * Matches are evaluated as shell file name patterns ("globs") by default,
++## so "foobar", "f??bar", "f*bar" are all valid. For even more flexibility
++## match patterns can be evaluated as regexes by enclosing them in //, e.g.
++## "/(foo|bar)/".
++## * IP match can be single IP address or a subnet in the "prefix/mask" notation.
++## * ACL is evaluated in the order it is defined until a match is found.
++## Rules below the first match are not evaluated, so you'll need to put more
++## specific rules above more broad ones.
++## * Empty match clause matches anything, it only makes sense at the end of the
++## list and can be used as a way of specifying default permissions.
++## * Empty actions set means "deny everything". Thus, a rule with `actions: []`
++## is in effect a "deny" rule.
++## * A special set consisting of a single "*" action means "allow everything".
++## * If no match is found the default is to deny the request.
++##
++## You can use the following variables from the ticket request in any field:
++## * ${account} - the account name, currently the same as authenticated user's name.
++## * ${service} - the service name, specified by auth.token.service in the registry config.
++## * ${type} - the type of the entity, normally "repository".
++## * ${name} - the name of the repository (i.e. image), e.g. centos.
++## * ${labels:<LABEL>} - tests all values in the list of lables:<LABEL> for the user. Refer to the labels doc for details
++#acl:
++# - match: {ip: "127.0.0.0/8"}
++# actions: ["*"]
++# comment: "Allow everything from localhost (IPv4)"
++# - match: {ip: "::1"}
++# actions: ["*"]
++# comment: "Allow everything from localhost (IPv6)"
++# - match: {ip: "172.17.0.1"}
++# actions: ["*"]
++# comment: "Allow everything from the local Docker bridge address"
++# - match: {account: "admin"}
++# actions: ["*"]
++# comment: "Admin has full access to everything."
++# - match: {account: "test", name: "test-*"}
++# actions: ["*"]
++# comment: "User \"test\" has full access to test-* images but nothing else. (1)"
++# - match: {account: "test"}
++# actions: []
++# comment: "User \"test\" has full access to test-* images but nothing else. (2)"
++# - match: {account: "/.+/", name: "${account}/*"}
++# actions: ["*"]
++# comment: "Logged in users have full access to images that are in their 'namespace'"
++# - match: {account: "/.+/", type: "registry", name: "catalog"}
++# actions: ["*"]
++# comment: "Logged in users can query the catalog."
++# - match: {account: "/.+/"}
++# actions: ["pull"]
++# comment: "Logged in users can pull all images."
++# - match: {account: "", name: "hello-world"}
++# actions: ["pull"]
++# comment: "Anonymous users can pull \"hello-world\"."
++# - match: {account: "/^(.+)@test.com$/", name: "${account:1}/*"}
++# actions: []
++# comment: "Emit domain part of account to make it a correct repo name"
++# - match: {labels: {"group": "VIP"}}
++# actions: ["push"]
++# comment: "Users assigned to group 'VIP' is able to push"
++# - match: {labels: {"group": "/trainee|dev/"}}
++# actions: ["push", "pull"]
++# comment: "Users assigned to group 'trainee' and 'dev' is able to push and pull"
++# - match: {name: "${labels:group}-shared/*"}
++# actions: ["push", "pull"]
++# comment: "Users can push to the shared namespace of any group they are in"
++# - match: {name: "${labels:project}/*"}
++# actions: ["push", "pull"]
++# comment: "Users can push to any project they are assigned to"
++# - match: {name: "${labels:project}-{labels:tier}/*"}
++# actions: ["push", "pull"]
++# comment: "Users can push to a project-tier/* that they are assigned to"
++# - match: {labels: {"title": "Developer"}}
++# actions: ["*"]
++# comment: "If you call yourself a developer you can do anything (this ACL is an example for LDAP labels as defined above)"
++# - match: {labels: {"groups": "Admin"}}
++# actions: ["push"]
++# comment: "If you are part of the admin group you can push. (this ACL is an example for LDAP labels as defined above)"
++# # Access is denied by default.
++#
++## (optional) Define to query ACL from a MongoDB server.
++#acl_mongo:
++# # Essentially all options are described here: https://godoc.org/gopkg.in/mgo.v2#DialInfo
++# dial_info:
++# # The MongoDB hostnames or IPs to connect to.
++# addrs: ["localhost"]
++# # The time to wait for a server to respond when first connecting and on
++# # follow up operations in the session. If timeout is zero, the call may
++# # block forever waiting for a connection to be established.
++# # (See https://golang.org/pkg/time/#ParseDuration for a format description.)
++# timeout: "10s"
++# # Database name that will be used on the MongoDB server.
++# database: "docker_auth"
++# # The username with which to connect to the MongoDB server.
++# username: ""
++# # Path to the text file with the password in it.
++# password_file: ""
++# # Enable TLS connection to MongoDB (only enable this if your server supports it)
++# enable_tls: false
++# # Name of the collection in which ACLs will be stored in MongoDB.
++# collection: "acl"
++# # Specify how long an ACL remains valid before they will be fetched again from
++# # the MongoDB server.
++# # (See https://golang.org/pkg/time/#ParseDuration for a format description.)
++# cache_ttl: "1m"
++#
++## (optional) Define to query ACL from a XORM.io database connection.
++#acl_xorm:
++# # the database type you'd like to connect to
++# database_type: "mysql"
++# conn_string: "username:password@/database_name?charset=utf8"
++# cache_ttl: "1m"
++#
++## (optioinal) Use casbin to verify permission
++#casbin_authz:
++# model_path: "path/to/model"
++# policy_path: "path/to/csv"
++#
++## External authorization - call an external progam to authorize user.
++## JSON of authz.AuthRequestInfo is passed to command's stdin and exit code is examined.
++## 0 - allow, 1 - deny, other - error.
++#ext_authz:
++# command: "/usr/local/bin/my_authz" # Can be a relative path too; $PATH works.
++# args: ["--flag", "--more", "--flags"]
++#
++## User written authorization plugin - call a user written program to authorize user.
++## *authz.AuthRequestInfo is passed to the plugin and expects an authorized set of actions or an error.
++## return the set of authorized actions is the user is authorized. Otherwise return nil
++#plugin_authz:
++# plugin_path: ""
+ #
+-# You can use the following variables from the ticket request in any field:
+-# * ${account} - the account name, currently the same as authenticated user's name.
+-# * ${service} - the service name, specified by auth.token.service in the registry config.
+-# * ${type} - the type of the entity, normally "repository".
+-# * ${name} - the name of the repository (i.e. image), e.g. centos.
+-# * ${labels:<LABEL>} - tests all values in the list of lables:<LABEL> for the user. Refer to the labels doc for details
+-acl:
+- - match: {ip: "127.0.0.0/8"}
+- actions: ["*"]
+- comment: "Allow everything from localhost (IPv4)"
+- - match: {ip: "::1"}
+- actions: ["*"]
+- comment: "Allow everything from localhost (IPv6)"
+- - match: {ip: "172.17.0.1"}
+- actions: ["*"]
+- comment: "Allow everything from the local Docker bridge address"
+- - match: {account: "admin"}
+- actions: ["*"]
+- comment: "Admin has full access to everything."
+- - match: {account: "test", name: "test-*"}
+- actions: ["*"]
+- comment: "User \"test\" has full access to test-* images but nothing else. (1)"
+- - match: {account: "test"}
+- actions: []
+- comment: "User \"test\" has full access to test-* images but nothing else. (2)"
+- - match: {account: "/.+/", name: "${account}/*"}
+- actions: ["*"]
+- comment: "Logged in users have full access to images that are in their 'namespace'"
+- - match: {account: "/.+/", type: "registry", name: "catalog"}
+- actions: ["*"]
+- comment: "Logged in users can query the catalog."
+- - match: {account: "/.+/"}
+- actions: ["pull"]
+- comment: "Logged in users can pull all images."
+- - match: {account: "", name: "hello-world"}
+- actions: ["pull"]
+- comment: "Anonymous users can pull \"hello-world\"."
+- - match: {account: "/^(.+)@test.com$/", name: "${account:1}/*"}
+- actions: []
+- comment: "Emit domain part of account to make it a correct repo name"
+- - match: {labels: {"group": "VIP"}}
+- actions: ["push"]
+- comment: "Users assigned to group 'VIP' is able to push"
+- - match: {labels: {"group": "/trainee|dev/"}}
+- actions: ["push", "pull"]
+- comment: "Users assigned to group 'trainee' and 'dev' is able to push and pull"
+- - match: {name: "${labels:group}-shared/*"}
+- actions: ["push", "pull"]
+- comment: "Users can push to the shared namespace of any group they are in"
+- - match: {name: "${labels:project}/*"}
+- actions: ["push", "pull"]
+- comment: "Users can push to any project they are assigned to"
+- - match: {name: "${labels:project}-{labels:tier}/*"}
+- actions: ["push", "pull"]
+- comment: "Users can push to a project-tier/* that they are assigned to"
+- - match: {labels: {"title": "Developer"}}
+- actions: ["*"]
+- comment: "If you call yourself a developer you can do anything (this ACL is an example for LDAP labels as defined above)"
+- - match: {labels: {"groups": "Admin"}}
+- actions: ["push"]
+- comment: "If you are part of the admin group you can push. (this ACL is an example for LDAP labels as defined above)"
+- # Access is denied by default.
+-
+-# (optional) Define to query ACL from a MongoDB server.
+-acl_mongo:
+- # Essentially all options are described here: https://godoc.org/gopkg.in/mgo.v2#DialInfo
+- dial_info:
+- # The MongoDB hostnames or IPs to connect to.
+- addrs: ["localhost"]
+- # The time to wait for a server to respond when first connecting and on
+- # follow up operations in the session. If timeout is zero, the call may
+- # block forever waiting for a connection to be established.
+- # (See https://golang.org/pkg/time/#ParseDuration for a format description.)
+- timeout: "10s"
+- # Database name that will be used on the MongoDB server.
+- database: "docker_auth"
+- # The username with which to connect to the MongoDB server.
+- username: ""
+- # Path to the text file with the password in it.
+- password_file: ""
+- # Enable TLS connection to MongoDB (only enable this if your server supports it)
+- enable_tls: false
+- # Name of the collection in which ACLs will be stored in MongoDB.
+- collection: "acl"
+- # Specify how long an ACL remains valid before they will be fetched again from
+- # the MongoDB server.
+- # (See https://golang.org/pkg/time/#ParseDuration for a format description.)
+- cache_ttl: "1m"
+-
+-# (optional) Define to query ACL from a XORM.io database connection.
+-acl_xorm:
+- # the database type you'd like to connect to
+- database_type: "mysql"
+- conn_string: "username:password@/database_name?charset=utf8"
+- cache_ttl: "1m"
+-
+-# (optioinal) Use casbin to verify permission
+-casbin_authz:
+- model_path: "path/to/model"
+- policy_path: "path/to/csv"
+-
+-# External authorization - call an external progam to authorize user.
+-# JSON of authz.AuthRequestInfo is passed to command's stdin and exit code is examined.
+-# 0 - allow, 1 - deny, other - error.
+-ext_authz:
+- command: "/usr/local/bin/my_authz" # Can be a relative path too; $PATH works.
+- args: ["--flag", "--more", "--flags"]
+-
+-# User written authorization plugin - call a user written program to authorize user.
+-# *authz.AuthRequestInfo is passed to the plugin and expects an authorized set of actions or an error.
+-# return the set of authorized actions is the user is authorized. Otherwise return nil
+-plugin_authz:
+- plugin_path: ""
+-
diff --git a/testing/docker-credential-ecr-login/APKBUILD b/testing/docker-credential-ecr-login/APKBUILD
deleted file mode 100644
index 63fa5c29fab..00000000000
--- a/testing/docker-credential-ecr-login/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Ty Sarna <ty@sarna.org>
-# Maintainer: Ty Sarna <ty@sarna.org>
-pkgname=docker-credential-ecr-login
-pkgver=0.4.0
-pkgrel=0
-pkgdesc="Credential helper for Docker to use the AWS Elastic Container Registry"
-url="https://github.com/awslabs/amazon-ecr-credential-helper"
-arch="x86_64 aarch64"
-license="Apache-2.0"
-depends="docker"
-makedepends="go docker"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/$pkgver/release.tar.gz"
-builddir="$srcdir/src/github.com/awslabs/amazon-ecr-credential-helper/ecr-login"
-
-prepare() {
- default_prepare
- mkdir -p "$srcdir/src/github.com/awslabs/amazon-ecr-credential-helper"
- mv "$srcdir"/ecr-login "$builddir"/
-}
-
-build() {
- GOPATH="$srcdir" go build -v -o bin/$pkgname \
- -ldflags "-s -X github.com/awslabs/amazon-ecr-credential-helper/ecr-login/version.Version=$pkgver" \
- $builddir/cli/docker-credential-ecr-login
-}
-
-check() {
- GOPATH="$srcdir" go test -v -timeout 30s -short
-}
-
-package() {
- install -m750 -o root -g docker \
- -D bin/$pkgname \
- "$pkgdir"/usr/bin/$pkgname
- install -Dm644 $srcdir/docs/$pkgname.1 \
- "$pkgdir"/usr/share/man/man1/$pkgname.1
-}
-
-sha512sums="ce8b8b9be77da2eccc4098b11f206521d6d9b3aac3ee2ed7c616a099a03e0819716bc2d1cb5b2028f5844b877c77af90dab1bed26102ce52e0be51d4113b050c docker-credential-ecr-login-0.4.0.tar.gz"
diff --git a/testing/docker-volume-local-persist/APKBUILD b/testing/docker-volume-local-persist/APKBUILD
index 00a2f12f064..52db04b89e4 100644
--- a/testing/docker-volume-local-persist/APKBUILD
+++ b/testing/docker-volume-local-persist/APKBUILD
@@ -1,27 +1,33 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=docker-volume-local-persist
pkgver=1.3.0
-pkgrel=3
+pkgrel=25
pkgdesc="Local Persist Volume Plugin for Docker"
-url="https://github.com/CWSpear/local-persist"
-arch="all !mips !mips64"
+url="https://github.com/MatchbookLab/local-persist"
+arch="all"
license="MIT"
depends="docker"
-makedepends="go glide"
-install=""
+makedepends="go"
subpackages="$pkgname-openrc"
source="
- docker-local-persist-$pkgver.tar.gz::https://github.com/CWSpear/local-persist/archive/v$pkgver.tar.gz
+ docker-local-persist-$pkgver.tar.gz::https://github.com/MatchbookLab/local-persist/archive/v$pkgver.tar.gz
docker-volume-local-persist.initd
+ gomod.patch
"
builddir="$srcdir/local-persist-$pkgver"
+export GOPATH="$startdir"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod download
+}
+
build() {
- cd "$builddir"
- export GOPATH="$startdir"
- glide install --skip-test
- go build -v -ldflags "-s -w" \
- -o bin/local-persist
+ go build -o bin/local-persist
}
package() {
@@ -31,5 +37,8 @@ package() {
"$pkgdir"/etc/init.d/docker-volume-local-persist
}
-sha512sums="43a061c937c84eaab817dc62e4be5adfee960e357a2eea504e87c8e5fda32f5a835dc6d145f7d787f4907cd592a04c0159455d8d28d40e158f5a93c4e4fc060a docker-local-persist-1.3.0.tar.gz
-806b53e97b52d7ec2517cd978ddce6de14321519a64a4f309e3ea233f77b0c6cb1c9ec6bd9431ebe6d1eef83c7fe6ab2b8720bc4e552b64f3741a1fcd0df4bac docker-volume-local-persist.initd"
+sha512sums="
+43a061c937c84eaab817dc62e4be5adfee960e357a2eea504e87c8e5fda32f5a835dc6d145f7d787f4907cd592a04c0159455d8d28d40e158f5a93c4e4fc060a docker-local-persist-1.3.0.tar.gz
+806b53e97b52d7ec2517cd978ddce6de14321519a64a4f309e3ea233f77b0c6cb1c9ec6bd9431ebe6d1eef83c7fe6ab2b8720bc4e552b64f3741a1fcd0df4bac docker-volume-local-persist.initd
+28f0a16f90ea90b908b117c185801b1b7d7ef569221db08f89b1b4fad48bef708b8effc1fc2a6e60a0cccaea02f5fc62694be0e15271f1953b8b3687be3dabde gomod.patch
+"
diff --git a/testing/docker-volume-local-persist/gomod.patch b/testing/docker-volume-local-persist/gomod.patch
new file mode 100644
index 00000000000..455081aa211
--- /dev/null
+++ b/testing/docker-volume-local-persist/gomod.patch
@@ -0,0 +1,84 @@
+diff --git a/go.mod b/go.mod
+new file mode 100644
+index 0000000..3e9dd07
+--- /dev/null
++++ b/go.mod
+@@ -0,0 +1,26 @@
++module local-persist-1.3.0
++
++go 1.19
++
++require (
++ github.com/docker/engine-api v0.4.0
++ github.com/docker/go-plugins-helpers v0.0.0-20161031114640-60d242cfd0fb
++ github.com/fatih/color v1.1.0
++ golang.org/x/net v0.0.0-20160322021652-4876518f9e71
++)
++
++require (
++ github.com/Microsoft/go-winio v0.3.6-0.20160621211438-ce2922f643c8 // indirect
++ github.com/Sirupsen/logrus v0.7.3 // indirect
++ github.com/coreos/go-systemd v0.0.0-20161102170722-64d5cd7cb947 // indirect
++ github.com/coreos/pkg v0.0.0-20161026222926-447b7ec906e5 // indirect
++ github.com/docker/distribution v2.5.0-rc.1.0.20161102195617-fbe6e8d212ed+incompatible // indirect
++ github.com/docker/go-connections v0.2.2-0.20161031182214-f512407a188e // indirect
++ github.com/docker/go-units v0.3.2-0.20161020213227-8a7beacffa30 // indirect
++ github.com/mattn/go-colorable v0.0.7-0.20161102080925-6e26b354bd2b // indirect
++ github.com/mattn/go-isatty v0.0.0-20160806122752-66b8e73f3f5c // indirect
++ github.com/opencontainers/runc v1.0.0-rc2.0.20161102180326-49ed0a10e4ed // indirect
++ github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 // indirect
++ github.com/stretchr/testify v1.8.0 // indirect
++ golang.org/x/sys v0.0.0-20161023150541-c200b10b5d5e // indirect
++)
+diff --git a/go.sum b/go.sum
+new file mode 100644
+index 0000000..cb6c846
+--- /dev/null
++++ b/go.sum
+@@ -0,0 +1,46 @@
++github.com/Microsoft/go-winio v0.3.6-0.20160621211438-ce2922f643c8 h1:Qp3i6ZUVcAOeTQj0KBsivXCfsnvsBASQYfXXS/N34NY=
++github.com/Microsoft/go-winio v0.3.6-0.20160621211438-ce2922f643c8/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
++github.com/Sirupsen/logrus v0.7.3 h1:G04jzNEnKQKTemyvbCV32zFbOu+D++ECKnCFazUjPdc=
++github.com/Sirupsen/logrus v0.7.3/go.mod h1:rmk17hk6i8ZSAJkSDa7nOxamrG+SP4P0mm+DAvExv4U=
++github.com/coreos/go-systemd v0.0.0-20161102170722-64d5cd7cb947 h1:9zLgi/vHKaTOHO7YtcSvAzSiytU13fhg/w5t8YOM/Ho=
++github.com/coreos/go-systemd v0.0.0-20161102170722-64d5cd7cb947/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
++github.com/coreos/pkg v0.0.0-20161026222926-447b7ec906e5 h1:aqoxNZ9nyZ9kabG+daqglH9RtWIbpxDjVQMoUsoVHuo=
++github.com/coreos/pkg v0.0.0-20161026222926-447b7ec906e5/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
++github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
++github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
++github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
++github.com/docker/distribution v2.5.0-rc.1.0.20161102195617-fbe6e8d212ed+incompatible h1:6W0HnJhig6393/Qm1Qv/4mhZl/TdsVuRP24WRVkCi64=
++github.com/docker/distribution v2.5.0-rc.1.0.20161102195617-fbe6e8d212ed+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
++github.com/docker/engine-api v0.4.0 h1:D0Osr6+45yAlQqLyoczv5qJtAu+P0HB0rLCddck03wY=
++github.com/docker/engine-api v0.4.0/go.mod h1:xtQCpzf4YysNZCVFfIGIm7qfLvYbxtLkEVVfKhTVOvw=
++github.com/docker/go-connections v0.2.2-0.20161031182214-f512407a188e h1:jcaJgljPmPKABWQTL7kZ4bn75pxBwDrzW9PcLkqkH7o=
++github.com/docker/go-connections v0.2.2-0.20161031182214-f512407a188e/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
++github.com/docker/go-plugins-helpers v0.0.0-20161031114640-60d242cfd0fb h1:3PbRNm4EK4EszBwI3UR2Wv6IR9tT+PozgOdgJjSq8hs=
++github.com/docker/go-plugins-helpers v0.0.0-20161031114640-60d242cfd0fb/go.mod h1:LFyLie6XcDbyKGeVK6bHe+9aJTYCxWLBg5IrJZOaXKA=
++github.com/docker/go-units v0.3.2-0.20161020213227-8a7beacffa30 h1:bANAGhKtjG23j8rJr6QEKZJlUaRhiTuq7kCaYV9Ggbg=
++github.com/docker/go-units v0.3.2-0.20161020213227-8a7beacffa30/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
++github.com/fatih/color v1.1.0 h1:4RQHlUrrLRssqNPpcM+ZLy+alwucmC4mkIGTbiVdCeY=
++github.com/fatih/color v1.1.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
++github.com/mattn/go-colorable v0.0.7-0.20161102080925-6e26b354bd2b h1:QDkLN5n0HZJHlRE6QtBlrhuHgiQVYBuJ+R7gfyJBQ84=
++github.com/mattn/go-colorable v0.0.7-0.20161102080925-6e26b354bd2b/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
++github.com/mattn/go-isatty v0.0.0-20160806122752-66b8e73f3f5c h1:3nKFouDdpgGUV/uerJcYWH45ZbJzX0SiVWfTgmUeTzc=
++github.com/mattn/go-isatty v0.0.0-20160806122752-66b8e73f3f5c/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
++github.com/opencontainers/runc v1.0.0-rc2.0.20161102180326-49ed0a10e4ed h1:CO6K4Ex3bZFJrue+c19dYXE0ZCa9qoux6JSPMZKEeHw=
++github.com/opencontainers/runc v1.0.0-rc2.0.20161102180326-49ed0a10e4ed/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
++github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
++github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
++github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 h1:4bT0pPowCpQImewr+BjzfUKcuFW+KVyB8d1OF3b6oTI=
++github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50/go.mod h1:1pdIZTAHUz+HDKDVZ++5xg/duPlhKAIzw9qy42CWYp4=
++github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
++github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
++github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
++github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
++github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
++golang.org/x/net v0.0.0-20160322021652-4876518f9e71 h1:uzpLVINUETeZRto6ZphAoh11snmPXlRiUF+rNKPHlO8=
++golang.org/x/net v0.0.0-20160322021652-4876518f9e71/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
++golang.org/x/sys v0.0.0-20161023150541-c200b10b5d5e h1:uau++4dmjGy3TuvPvRbhZHY+TQVsImIxtWY5HRh9eho=
++golang.org/x/sys v0.0.0-20161023150541-c200b10b5d5e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
++gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
++gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
++gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/testing/dockerize/APKBUILD b/testing/dockerize/APKBUILD
index 1e3756545b8..846c43f62f8 100644
--- a/testing/dockerize/APKBUILD
+++ b/testing/dockerize/APKBUILD
@@ -1,83 +1,30 @@
-# Maintainer: Christian Kampka <christian@kampka.net>
+# Contributor: Christian Kampka <christian@kampka.net>
+# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=dockerize
-pkgver=0.6.1
+pkgver=0.7.0
pkgrel=5
pkgdesc="Utility to simplify running applications in docker containers."
url="https://github.com/jwilder/dockerize"
-arch="x86 x86_64 ppc64le"
+arch="all"
license="MIT"
-makedepends="git go"
-source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar"
+options="!check" # No test suite
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jwilder/dockerize/archive/v$pkgver.tar.gz"
-_giturl="git://github.com/jwilder/${pkgname}.git"
-_disturl="dev.alpinelinux.org:/archive/$pkgname/"
-
-
-snapshot() {
- abuild clean
- abuild deps
-
- mkdir -p "$srcdir"
- cd "$srcdir"
-
- # dockerize utilizes glock for dependency resolution,
- # but we don't want to provide glock as a package since
- # it does not do stable releases.
- # Therefore, we build it here to resolve the dependencies
- # for the dockerize snapshot.
- _glock_giturl="git://github.com/robfig/glock.git"
- _glock_commit="e75a83a850fe9ff13fd63720d09d28aab795808e"
-
- export GOPATH="${srcdir}/glock"
- git clone -q ${_glock_giturl} || return 1
- cd "${srcdir}/glock"
- git checkout -q ${_glock_commit} || return 1
- go get -v -d || return 1
- go build || return 1
- GLOCK_BIN="${srcdir}/glock/glock"
-
- # now prepare the dockerize snapshot
-
- cd "$srcdir"
- msg "Creating snapshot: $_pkg"
- export GOPATH="${srcdir}/$pkgname"
- git clone -q ${_giturl} ${pkgname}|| return 1
- cd $pkgname
- git checkout -q v${pkgver} || return 1
- "$GLOCK_BIN" sync ../ || return 1
- cd $srcdir
- tar cf $pkgname-$pkgver.tar $pkgname || return 1
- rsync --progress -La $pkgname-${pkgver}.tar \
- $_disturl || return 1
- cd $startdir
- abuild checksum
- abuild undeps
-}
-
-_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
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- cd "$_builddir"
- GOARCH=$(go env | grep GOARCH | cut -d'=' -f 2 | xargs echo -n)
- export GOPATH="$_builddir"
- mkdir -p ${_builddir}/dist/linux/$GOARCH
- GOOS=linux go build -ldflags "-X main.buildVersion=${pkgver}" -o ${_builddir}/dist/linux/$GOARCH/dockerize
+ go build -ldflags "-X main.buildVersion=$pkgver"
}
package() {
- cd "$_builddir"
- GOARCH=$(go env | grep GOARCH | cut -d'=' -f 2 | xargs echo -n)
- install -Dm755 ${_builddir}/dist/linux/$GOARCH/dockerize \
- "$pkgdir"/usr/bin/dockerize
+ install -Dm0755 dockerize "$pkgdir"/usr/bin/dockerize
+ install -dm0755 "$pkgdir"/usr/share/dockerize/
+ cp -r examples "$pkgdir"/usr/share/dockerize/
}
-sha512sums="77c242b5841a1a1bb1330292dd197f763fdb5eb805f5e8cb05ad597a05f95f5b5031b4c56ee14979d3627f2a01bb34b6a0b7d179cda9ae0abd504fceaf4ecba8 dockerize-0.6.1.tar"
+
+sha512sums="
+694c9e7ce4c42b886ae5a9b6aaed8f255410f43d76440e6c9347c59821212ef37ceb46342e9569f34ee44dab07cf8dadde9c6011421694d9a9df195f0cfee3b8 dockerize-0.7.0.tar.gz
+"
diff --git a/testing/dolt/APKBUILD b/testing/dolt/APKBUILD
new file mode 100644
index 00000000000..b3b25caf75c
--- /dev/null
+++ b/testing/dolt/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=dolt
+pkgver=1.35.9
+pkgrel=0
+pkgdesc="Dolt – It's Git for Data"
+url="https://www.dolthub.com"
+arch="all !x86 !armhf !armv7" # fails on 32-bit
+license="Apache-2.0"
+options="!check chmod-clean net"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dolthub/dolt/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver/go"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ mkdir -p build
+ go build \
+ -mod=readonly \
+ -ldflags "-extldflags \"$LDFLAGS\"" \
+ -o build \
+ ./cmd/...
+}
+
+package() {
+ install -Dm755 build/dolt "$pkgdir"/usr/bin/dolt
+}
+
+sha512sums="
+faa25bb94a309ec26e0c7498f08aa38e958347e5256da5ee39130d20e8855b60b9d8070167704b4b7dd9353cb8d3ce373aa2c19661502261c45e1e8967dbf1f3 dolt-1.35.9.tar.gz
+"
diff --git a/testing/dooit/APKBUILD b/testing/dooit/APKBUILD
new file mode 100644
index 00000000000..4b770dd605e
--- /dev/null
+++ b/testing/dooit/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=dooit
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="TUI todo manager"
+url="https://github.com/kraanzu/dooit"
+arch="noarch"
+license="MIT"
+depends="
+ python3
+ py3-appdirs
+ py3-dateparser
+ py3-dateutil
+ py3-pyperclip
+ py3-textual
+ py3-tzlocal
+ py3-yaml
+ "
+makedepends="py3-gpep517 py3-poetry-core"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kraanzu/dooit/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no testsuite
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+9b95da5c667e2dfcb98deee8726800dd07837202140ce5c0f53052151cedf474133d3ad2263f1f66ca86bfe7e916a30ebc3618148454084144775c676eddb080 dooit-2.2.0.tar.gz
+"
diff --git a/testing/dosbox-staging/APKBUILD b/testing/dosbox-staging/APKBUILD
new file mode 100644
index 00000000000..d6f4d1d89ed
--- /dev/null
+++ b/testing/dosbox-staging/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=dosbox-staging
+pkgver=0.81.0
+pkgrel=0
+pkgdesc="revitalized dosbox DOS-emulator"
+url="https://dosbox-staging.github.io/"
+arch="all !x86" # TEXTREL on x86
+license="GPL-2.0-or-later"
+options="!check" # no test
+provides="dosbox"
+replaces="dosbox"
+depends="!dosbox" # dosbox provides same binary in /usr/bin/dosbox
+makedepends="
+ cmake
+ meson
+ alsa-lib-dev
+ fluidsynth-dev
+ iir1-dev
+ libpng-dev
+ libslirp-dev
+ opus-dev
+ opusfile-dev
+ speexdsp-dev
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_net-dev
+ zlib-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dosbox-staging/dosbox-staging/archive/v$pkgver.tar.gz"
+
+build() {
+ abuild-meson \
+ --prefix /usr \
+ --buildtype=minsize \
+ -Duse_mt32emu=false \
+ -Duse_zlib_ng=false \
+ -Ddefault_library=shared \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+96257602b0133ec78fbc7bd5803404d91abf673172e97319067a0f3f97db8860ae6d4771bb03cff5b73e033f220cb4fa6cd778cf549a9bc63e3550def9aa8797 dosbox-staging-0.81.0.tar.gz
+"
diff --git a/testing/dosbox/APKBUILD b/testing/dosbox/APKBUILD
deleted file mode 100644
index f08ee6e06de..00000000000
--- a/testing/dosbox/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=dosbox
-_pkgver=0.74-3
-pkgver=${_pkgver/-/\.}
-pkgrel=0
-pkgdesc="DOS-emulator that uses SDL-library"
-url="https://www.dosbox.com/"
-arch="all !x86" # textrel issue on x86
-license="GPL-2.0-or-later"
-makedepends="
- alsa-lib
- expat-dev
- libpng-dev
- libx11-dev
- libxau-dev
- libxcb-dev
- libdrm-dev
- libxext-dev
- libxfixes-dev
- libxdamage-dev
- libxxf86vm-dev
- libxshmfence-dev
- mesa-dev
- sdl-dev
- zlib-dev
- "
-
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/dosbox/dosbox-$_pkgver.tar.gz"
-builddir="$srcdir/"$pkgname-$_pkgver
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-opengl
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="3770f1578e71730168fba01809585f2a05cf8c4d420524687ba28791d242faad294401bb9cd268bba725798e1db853551f274dc00a4024331f5dcef9f87f8f5f dosbox-0.74-3.tar.gz"
diff --git a/testing/dotenv-linter/APKBUILD b/testing/dotenv-linter/APKBUILD
new file mode 100644
index 00000000000..2ed06e9443e
--- /dev/null
+++ b/testing/dotenv-linter/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=dotenv-linter
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="Lightning-fast linter for .env files"
+url="https://dotenv-linter.github.io"
+arch="all !s390x !ppc64le !riscv64" # rust/rustls
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="https://github.com/dotenv-linter/dotenv-linter/archive/refs/tags/v$pkgver/dotenv-linter-$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/dotenv-linter -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+5f513277e463d1d83953488934ede246634ba8752bc08f44e62a084aea8724d93da2d5bc9924609c2c2dde918d40d619674dfe5c4e8a31f887f7a7e48cd83918 dotenv-linter-3.3.0.tar.gz
+"
diff --git a/testing/dovecot-fts-xapian/APKBUILD b/testing/dovecot-fts-xapian/APKBUILD
deleted file mode 100644
index 00dd65805c4..00000000000
--- a/testing/dovecot-fts-xapian/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Duncan Bellamy <dunk@denkimushi.com>
-# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
-pkgname=dovecot-fts-xapian
-pkgver=1.3.1
-pkgrel=0
-pkgdesc="Dovecot xapian fts plugin"
-url="https://github.com/grosjo/fts-xapian"
-arch="all"
-license="LGPL-2.1-or-later"
-depends="dovecot xapian-core"
-makedepends="automake autoconf libtool dovecot-dev xapian-core-dev icu-dev sqlite-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/grosjo/fts-xapian/archive/$pkgver.tar.gz"
-builddir="$srcdir/"fts-xapian-$pkgver
-
-prepare() {
- default_prepare
- libtoolize
- autoreconf -vi
-}
-
-build() {
- PANDOC=false ./configure \
- --enable-static=no \
- --with-dovecot=/usr/lib/dovecot
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="23c3b3a912576bdccd78f01878f67496d68ce2fcedf7290fc58a5caf13690034265e4089bed12fa010afcd54ac738ae703b93c2e8b3ba74a8413f2bd50cfcd65 dovecot-fts-xapian-1.3.1.tar.gz"
diff --git a/testing/dovi-tool/APKBUILD b/testing/dovi-tool/APKBUILD
new file mode 100644
index 00000000000..b8a5d51d3cc
--- /dev/null
+++ b/testing/dovi-tool/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Petr Hodina <phodina@protonmail.com>
+# Maintainer: Petr Hodina <phodina@protonmail.com>
+pkgname=dovi-tool
+pkgver=2.0.3
+pkgrel=0
+pkgdesc="Library to read and write Dolby Vision metadata"
+url="https://github.com/quietvoid/dovi_tool"
+# arm: fails tests
+arch="all !armhf !armv7"
+license="MIT"
+makedepends="cargo cargo-auditable fontconfig-dev"
+checkdepends="font-opensans"
+source="$pkgname-$pkgver.tar.gz::https://github.com/quietvoid/dovi_tool/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/dovi_tool-$pkgver"
+options="net" # cargo fetch
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/dovi_tool -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+49f42d85bfcb22ce35800f2aeebaea8ae3880227f4727c4ba92e6123bd460d2df58b7346473b9bde5a0d64db88e0c8280921800f58794d72625af1f6921aa219 dovi-tool-2.0.3.tar.gz
+"
diff --git a/testing/downloader-cli/APKBUILD b/testing/downloader-cli/APKBUILD
new file mode 100644
index 00000000000..8e34904ac26
--- /dev/null
+++ b/testing/downloader-cli/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=downloader-cli
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="Simple downloader with an awesome progressbar"
+url="https://github.com/deepjyoti30/downloader-cli"
+arch="noarch"
+license="MIT"
+depends="py3-urllib3 py3-downloader-cli"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="py3-$pkgname-pyc py3-$pkgname:py3:noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/deepjyoti30/downloader-cli/archive/$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 -m pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+py3() {
+ depends="python3"
+ pkgdesc="Python library for $pkgname"
+
+ amove usr/lib/python3*
+}
+
+sha512sums="
+e652850888ff6cf3c0f381056f22eb7120c8b666c03eeb607c8dd2fd827d4f4c2fb5191666e0da0899f6b95d3a402f03672ccd2000ad4a87dc6b067d4372b906 downloader-cli-0.3.4.tar.gz
+"
diff --git a/testing/draw/APKBUILD b/testing/draw/APKBUILD
new file mode 100644
index 00000000000..7d41c561c75
--- /dev/null
+++ b/testing/draw/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=draw
+pkgver=0.1.1
+pkgrel=5
+pkgdesc="Draw in your terminal"
+url="https://github.com/maaslalani/draw"
+arch="all"
+license="MIT"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/maaslalani/draw/archive/v$pkgver.tar.gz"
+
+build() {
+ go build -o draw
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 ./draw "$pkgdir"/usr/bin/draw
+}
+
+sha512sums="
+60cf79fe27e42e303e5a642602cebd80cdf7364a60f7885c0277c25d925cba522ec6f35bf7584a1c5a7a52da361e65ed5959a6acb1bfe572f59346fcfc25a644 draw-0.1.1.tar.gz
+"
diff --git a/testing/drawing/APKBUILD b/testing/drawing/APKBUILD
new file mode 100644
index 00000000000..63cae6693f7
--- /dev/null
+++ b/testing/drawing/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=drawing
+pkgver=1.0.2
+pkgrel=0
+pkgdesc="Simple image editor for Linux"
+url="https://github.com/maoschanz/drawing"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ py3-cairo
+ py3-gobject3
+ "
+makedepends="
+ appstream-glib
+ desktop-file-utils
+ itstool
+ meson
+ py3-cairo-dev
+ py3-gobject3-dev
+ "
+source="
+ https://github.com/maoschanz/drawing/archive/$pkgver/drawing-$pkgver.tar.gz
+ fix-bindtextdomain.patch
+ "
+subpackages="$pkgname-lang"
+
+build() {
+ abuild-meson . build
+ meson compile -C build
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+61e3e2764832de6ed997bd6f72a63154fae332da76b12ede848b9c1e9d850ba46cf9ebdf16dd1b4d52827b5ec4e877aca03877d0557a2a2635279598992832d6 drawing-1.0.2.tar.gz
+a82cf5bb7c6936a1db20c3ab92bde0359f03437cddd8afa0477dc6808692963f55e386ead0bd3d6b67a70ce8dbbe3e863bb0f818b4bbfcdf8960da1920c6006f fix-bindtextdomain.patch
+"
diff --git a/testing/drawing/fix-bindtextdomain.patch b/testing/drawing/fix-bindtextdomain.patch
new file mode 100644
index 00000000000..9cde8a48f13
--- /dev/null
+++ b/testing/drawing/fix-bindtextdomain.patch
@@ -0,0 +1,13 @@
+Fix musl compatibility
+
+--- a/src/drawing.in
++++ b/src/drawing.in
+@@ -26,7 +26,7 @@
+ VERSION = '@VERSION@'
+ pkgdatadir = '@pkgdatadir@'
+ localedir = '@localedir@'
+-locale.bindtextdomain('drawing', localedir)
++# locale.bindtextdomain('drawing', localedir)
+
+ sys.path.insert(1, pkgdatadir)
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
diff --git a/testing/drawpile/APKBUILD b/testing/drawpile/APKBUILD
new file mode 100644
index 00000000000..0c053fa6caa
--- /dev/null
+++ b/testing/drawpile/APKBUILD
@@ -0,0 +1,116 @@
+# Contributor: mio <miyopan@e.email>
+# Maintainer: mio <miyopan@e.email>
+pkgname=drawpile
+pkgver=2.2.1
+pkgrel=0
+pkgdesc="Collaborative drawing program"
+url="https://drawpile.net/"
+license="GPL-3.0-or-later"
+# armhf: missing karchive5-dev kdnssd5-dev
+# ppc64le: unrecognized command-line option '-march=native' error
+# x86, armv7: cast from pointer to integer of different size error
+arch="aarch64 x86_64"
+pkgusers=drawpile
+pkggroups=drawpile
+makedepends="
+ cargo
+ cmake
+ extra-cmake-modules
+ giflib-dev
+ karchive5-dev
+ kdnssd5-dev
+ libmicrohttpd-dev
+ libsodium-dev
+ libvpx-dev
+ miniupnpc-dev
+ qt5-qtmultimedia-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ qt5-qtx11extras-dev
+ samurai
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-base
+ $pkgname-client
+ $pkgname-server
+ $pkgname-server-openrc
+ $pkgname-tools
+ "
+source="drawpile-$pkgver.tar.gz::https://github.com/drawpile/Drawpile/archive/$pkgver.tar.gz
+ drawpile.initd
+ drawpile-server.pre-install
+ "
+builddir="$srcdir"/Drawpile-"$pkgver"
+
+# Temporarily disable lto due to conflict with multiple Rust libs exposing
+# rust_eh_personality symbol.
+export CARGO_PROFILE_RELEASE_LTO="false"
+
+build() {
+ cmake -B build -G Ninja \
+ --preset linux-release-qt5-all-ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ # drawpile is a meta-package
+ depends="
+ $pkgname-base=$pkgver-r$pkgrel
+ $pkgname-client=$pkgver-r$pkgrel
+ $pkgname-server=$pkgver-r$pkgrel
+ $pkgname-tools=$pkgver-r$pkgrel
+ "
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm755 "$srcdir"/drawpile.initd "$pkgdir"/etc/init.d/drawpile
+ install -Dm644 LICENSE.txt \
+ "$pkgdir"/usr/share/licenses/drawpile-base/LICENSE.txt
+}
+
+base() {
+ pkgdesc="Common files for Drawpile"
+ arch="noarch"
+ amove usr/share
+}
+
+client() {
+ pkgdesc="$pkgdesc (Drawpile client)"
+ depends="$pkgname-base=$pkgver-r$pkgrel"
+ amove usr/bin/drawpile
+}
+
+server() {
+ pkgdesc="$pkgdesc (Drawpile server)"
+ depends="
+ $pkgname-base=$pkgver-r$pkgrel
+ qt5-qtbase-sqlite
+ "
+
+ amove usr/bin/drawpile-srv
+
+ install -d -o drawpile -g drawpile "$subpkgdir"/etc/drawpile/templates
+ install -d -o drawpile -g drawpile -m 750 "$subpkgdir"/var/lib/drawpile
+}
+
+tools() {
+ pkgdesc="$pkgdesc (Drawpile tools)"
+ depends="$pkgname-base=$pkgver-r$pkgrel"
+ # dprectool: convert between Drawpile session formats .dprec and .dptxt
+ # drawpile-cmd: render recordings
+ # drawpile-timelapse: turn drawpile recordings into timelapse videos
+ amove usr/bin/dprectool
+ amove usr/bin/drawpile-cmd
+ amove usr/bin/drawpile-timelapse
+}
+
+sha512sums="
+7480d10dd0ac6ea280b8abced66d7c1daca03e2a7dcb1e8c3378efb18a0a6ab5f72734619956c76827adbbf7969a3a930dd2dff951dcbbf7ff6d703e5a665e9e drawpile-2.2.1.tar.gz
+5a2e6d1e677a74a43838cce26bd6b6f6bceb858f3622912476665ad3f6cef3171aa0c5b56ca9343c5b7ec81c850ce251a177d77490854e7ef39796c4c7d53535 drawpile.initd
+712df7a0bac0d4ad25f4254f0caf09b4d496b64d1d0a8bbbdd28e3b6c10ac6305dab58ac48adc8b88d0b7c8898ce28613ae2e8951ba76ad2ef5da35b3d943a94 drawpile-server.pre-install
+"
diff --git a/testing/drawpile/drawpile-server.pre-install b/testing/drawpile/drawpile-server.pre-install
new file mode 100644
index 00000000000..ccef804fc8c
--- /dev/null
+++ b/testing/drawpile/drawpile-server.pre-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Add the server user and group.
+user=drawpile
+addgroup -S $user 2>/dev/null
+adduser -S -D -h /var/lib/drawpile -s /sbin/nologin -G $user -g $user $user 2>/dev/null
+
+exit 0
diff --git a/testing/drawpile/drawpile.initd b/testing/drawpile/drawpile.initd
new file mode 100755
index 00000000000..2afa1fdc47b
--- /dev/null
+++ b/testing/drawpile/drawpile.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+name="Drawpile Server"
+description="Collaborative drawing server"
+command="/usr/bin/drawpile-srv"
+command_args="--database /var/lib/drawpile/guiserver.db
+ --sessions /var/lib/drawpile/sessions
+ --templates /etc/drawpile/templates
+ --extauth https://drawpile.net/api/ext-auth/
+ "
+pidfile="/run/drawpile.pid"
+command_background=true
+command_user=drawpile:drawpile
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/droidcam/APKBUILD b/testing/droidcam/APKBUILD
new file mode 100644
index 00000000000..830414bb6a2
--- /dev/null
+++ b/testing/droidcam/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=droidcam
+pkgver=2.1.3
+pkgrel=0
+pkgdesc="GNU/Linux client for DroidCam"
+url="https://github.com/dev47apps/droidcam/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="
+ alsa-lib-dev
+ ffmpeg-dev
+ glib-dev
+ gtk+3.0-dev
+ libayatana-appindicator-dev
+ libjpeg-turbo-dev
+ libusbmuxd-dev
+ linux-headers
+ speex-dev
+ "
+subpackages="$pkgname-gui"
+install="$pkgname.post-install"
+source="https://github.com/dev47apps/droidcam/archive/refs/tags/v$pkgver/droidcam-$pkgver.tar.gz
+ makefile.patch
+ release-paths.patch
+ "
+options="!check"
+
+build() {
+ make APPINDICATOR=ayatana-appindicator3-0.1
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin \
+ droidcam \
+ droidcam-cli
+
+ install -Dm644 icon2.png "$pkgdir"/usr/share/droidcam/icon.png
+ install -Dm644 droidcam.desktop -t "$pkgdir"/usr/share/applications
+}
+
+gui() {
+ pkgdesc="$pkgdesc (GUI)"
+
+ amove usr/bin/droidcam
+ amove usr/share
+}
+
+sha512sums="
+74f6973179b383bb12b4b063b2c524c0be99ea9465c0f1423d11ece5aa90ab5d93929f029c1716513ab63a6e8707699e78f64e747a3583b5afaf5205a96e18bc droidcam-2.1.3.tar.gz
+cb43712132eae371d2ed06462ba2e5ab69b50d1494ef1bf942d867302aaa4f169bfa0b02c930076c17bca44d7dfdb754aa38413a67b75fda10ff01ede8748e80 makefile.patch
+33da7e155447a75cc0d88274c4b053c3cb6867aba411176b82b968bb690d60d429d3a39b1caf3bafe79c0958b24f7f6777e42e88de7c71b7eb271d196b7d50b9 release-paths.patch
+"
diff --git a/testing/droidcam/droidcam.post-install b/testing/droidcam/droidcam.post-install
new file mode 100644
index 00000000000..4a15d448e02
--- /dev/null
+++ b/testing/droidcam/droidcam.post-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+cat << EOF
+ To use DroidCam, you need to have the v4l2loopback kernel module;
+ you can install it from package v4l2loopback-src.
+
+ Enable with: `modprobe v4l2loopback exclusive_caps=1 max_buffers=16 max_openers=8`
+EOF
diff --git a/testing/droidcam/makefile.patch b/testing/droidcam/makefile.patch
new file mode 100644
index 00000000000..71625224aab
--- /dev/null
+++ b/testing/droidcam/makefile.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index f45cd20..0cf696b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -20,7 +20,7 @@ GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11`
+ GTK += `pkg-config --libs --cflags $(APPINDICATOR)`
+ LIBAV = `pkg-config --libs --cflags libswscale libavutil`
+ JPEG = `pkg-config --libs --cflags libturbojpeg`
+-USBMUXD = `pkg-config --libs --cflags libusbmuxd`
++USBMUXD = `pkg-config --libs --cflags libusbmuxd-2.0`
+ LIBS = -lspeex -lasound -lpthread -lm
+ SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c
+
diff --git a/testing/droidcam/release-paths.patch b/testing/droidcam/release-paths.patch
new file mode 100644
index 00000000000..b40da902cca
--- /dev/null
+++ b/testing/droidcam/release-paths.patch
@@ -0,0 +1,29 @@
+Change the paths to be /usr/bin and /usr/share instead of
+/usr/local/bin and /opt
+
+--- a/droidcam.desktop
++++ b/droidcam.desktop
+@@ -2,9 +2,9 @@
+ Encoding=UTF-8
+ Name=DroidCam
+ Comment=Use your phone as a webcam
+-TryExec=/usr/local/bin/droidcam
+-Exec=/usr/local/bin/droidcam
+-Icon=/opt/droidcam-icon.png
++TryExec=/usr/bin/droidcam
++Exec=/usr/bin/droidcam
++Icon=/usr/share/droidcam/icon.png
+ Terminal=false
+ Type=Application
+ Categories=Video;AudioVideo;
+--- a/src/droidcam.c
++++ b/src/droidcam.c
+@@ -43,7 +43,7 @@
+ extern const char *thread_cmd_val_str;
+ extern char snd_device[32];
+ extern char v4l2_device[32];
+-const char *APP_ICON_FILE = "/opt/droidcam-icon.png";
++const char *APP_ICON_FILE = "/usr/share/droidcam/icon.png";
+
+ void * AudioThreadProc(void * args);
+ void * VideoThreadProc(void * args);
diff --git a/testing/drone-cli/APKBUILD b/testing/drone-cli/APKBUILD
index b3fff661ea7..f2a7eb065c3 100644
--- a/testing/drone-cli/APKBUILD
+++ b/testing/drone-cli/APKBUILD
@@ -1,24 +1,20 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=drone-cli
-pkgver=1.2.1
-pkgrel=1
+pkgver=1.8.0
+pkgrel=2
pkgdesc="Drone CLI"
-url="https://github.com/drone/drone-cli"
-arch="all"
+url="https://github.com/harness/drone-cli"
license="Apache-2.0"
+arch="all"
makedepends="go"
-source="drone-cli-$pkgver.tar.gz::https://github.com/drone/drone-cli/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/drone/$pkgname"
+source="drone-cli-$pkgver.tar.gz::https://github.com/harness/drone-cli/archive/v$pkgver.tar.gz"
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
- default_prepare
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- export GOPATH="$srcdir"
go build -ldflags "-X main.version=$pkgver" -o bin/drone ./drone
}
@@ -30,9 +26,6 @@ package() {
install -Dm755 "$builddir"/bin/drone "$pkgdir"/usr/bin/drone
}
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="b61a9c48ff9751c60a3ec3dc6cab2d7d00603d0e126bd2d2d57800bc9472766881d66d70d5b968da4df187fd4d4c42d0b82e1c1a730b63ca7e36bfb469738648 drone-cli-1.2.1.tar.gz"
+sha512sums="
+d9b87df975f7f3c4b6ba3cc427e66e5c19c9f5de51aed521b1b34db3d12f03ac88324dae1ae3acdc24d5fa6251ca57e332f101a73cb0a53c7d01194cf1892d2c drone-cli-1.8.0.tar.gz
+"
diff --git a/testing/drone/APKBUILD b/testing/drone/APKBUILD
deleted file mode 100644
index a21d73e323d..00000000000
--- a/testing/drone/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=drone
-pkgver=1.7.0
-pkgrel=1
-pkgdesc="Container-Native, Continuous Delivery Platform"
-url="https://drone.io/"
-arch="all"
-license="custom"
-makedepends="go"
-options="!check"
-_commands="
- $pkgname-agent:_pkg
- $pkgname-controller:_pkg
- $pkgname-server:_pkg
- "
-subpackages="
- $_commands
- $pkgname-doc
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/drone/drone/archive/v$pkgver.tar.gz"
-
-export GOPATH="$srcdir"
-
-build() {
- for pkg in $_commands; do
- GO111MODULE=on go build -o bin/${pkg%%:*} ./cmd/${pkg%%:*}
- done
-}
-
-package() {
- install -Dm 644 "$builddir"/LICENSE \
- "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
-}
-
-_pkg() {
- pkgdesc="$pkgdesc ($subpkgname)"
- install_if="$pkgname"
- install -Dm775 "$builddir"/bin/$subpkgname \
- "$subpkgdir"/usr/bin/$subpkgname
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="db2dd8b1a8ee8d98d42ba9e1cecc85ee979b56ab1098435b6298fd90c75e73d6b5b30824e87915c1ad405dbdcb1db18f8834fb7985a2621c64dde47806e29f7f drone-1.7.0.tar.gz"
diff --git a/testing/dropwatch/APKBUILD b/testing/dropwatch/APKBUILD
new file mode 100644
index 00000000000..18f45bd199f
--- /dev/null
+++ b/testing/dropwatch/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=dropwatch
+pkgver=1.5.4
+pkgrel=4
+pkgdesc="Project to detect packet drops in the Linux kernel"
+url="https://github.com/nhorman/dropwatch"
+arch="all"
+license="GPL-2.0"
+makedepends="autoconf automake libtool
+libnl3-dev libpcap-dev binutils-dev readline-dev
+linux-headers bsd-compat-headers"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/nhorman/dropwatch/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4af06c05c694d4a044a5e92ba9869a865730bb2caa28cddc33160481f490ed77a7300ef57c9f76722d7bc8d4ac47cdfd5f13daf4f764500f3c90a72b5ee58d61 dropwatch-1.5.4.tar.gz
+"
diff --git a/testing/drumgizmo/APKBUILD b/testing/drumgizmo/APKBUILD
new file mode 100644
index 00000000000..e150dbc23f9
--- /dev/null
+++ b/testing/drumgizmo/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Veikka Valtteri Kallinen <valtteri@kallinen.xyz>
+# Maintainer: Veikka Valtteri Kallinen <valtteri@kallinen.xyz>
+pkgname=drumgizmo
+pkgver=0.9.20
+pkgrel=1
+pkgdesc="Multichannel, multilayered, cross-platform drum plugin"
+url="https://www.drumgizmo.org"
+arch="all"
+license="GPL-3.0-only"
+makedepends="libx11-dev libxext-dev libsndfile-dev lv2-dev"
+source="http://www.drumgizmo.org/releases/drumgizmo-$pkgver/drumgizmo-$pkgver.tar.gz
+ gcc13.patch
+ "
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-lv2 \
+ --disable-cli \
+ --disable-sse \
+ --without-nls
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ # manpages are for the disabled cli tool
+ rm -r "$pkgdir"/usr/share/man
+}
+
+sha512sums="
+3444201961d74e7787bebe4006df6c257f6c1a57dd81d272b203a4a56ad609d3fa4e88224dfe4ea6a67f4db94b340666d018cb79fc376dd264398f98d66433e8 drumgizmo-0.9.20.tar.gz
+ed13d9cce9c12cd2b8df3661442481660a66b5ccfc3129920811a79fdd3150bdff627cb96c7bb17c21a5dd3b94b34268328fb8e557d2611b2fa80284e02b6605 gcc13.patch
+"
diff --git a/testing/drumgizmo/gcc13.patch b/testing/drumgizmo/gcc13.patch
new file mode 100644
index 00000000000..76512ef1962
--- /dev/null
+++ b/testing/drumgizmo/gcc13.patch
@@ -0,0 +1,10 @@
+--- a/plugin/plugingizmo/plugin.h
++++ b/plugin/plugingizmo/plugin.h
+@@ -29,6 +29,7 @@
+ #include <vector>
+ #include <string>
+
++#include <cstdint>
+ #include <cstdlib>
+
+
diff --git a/testing/dsnet/APKBUILD b/testing/dsnet/APKBUILD
new file mode 100644
index 00000000000..ea822ecccb0
--- /dev/null
+++ b/testing/dsnet/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Marvin Preuss <marvin@xsteadfastx.org>
+# Maintainer: Marvin Preuss <marvin@xsteadfastx.org>
+pkgname=dsnet
+pkgver=0.7.3
+_rev=c7096d13183159647b92aaed522a406c29b91798 # used for version command
+pkgrel=2
+pkgdesc="fast command to manage a centralised wireguard VPN"
+url="https://github.com/naggie/dsnet"
+arch="all"
+license="MIT"
+makedepends="go"
+options="!check chmod-clean" # no tests available
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/naggie/dsnet/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags "
+ -X \"github.com/naggie/dsnet.GIT_COMMIT=$_rev\" \
+ -X \"github.com/naggie/dsnet.VERSION=$pkgver\" \
+ -X \"github.com/naggie/dsnet.BUILD_DATE=$(date)\" \
+ " \
+ -o dsnet \
+ ./cmd/root.go
+}
+
+package() {
+ install -Dm755 dsnet -t "$pkgdir"/usr/bin/
+
+ install -Dm644 CONFIG.md README.md \
+ -t "$pkgdir"/usr/share/doc/$pkgname/
+
+ install -Dm644 LICENSE.md \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+052967576f2ac8ee9c937a6fb13f796e6ae24f46c1d4e94ffa6212cb7e4ec2de60717dcff0224698d7250dbdb585512620a856f97785fb8795a13b3066295076 dsnet-0.7.3.tar.gz
+"
diff --git a/testing/dsp/APKBUILD b/testing/dsp/APKBUILD
new file mode 100644
index 00000000000..93fea6034a9
--- /dev/null
+++ b/testing/dsp/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=dsp
+pkgver=1.9
+pkgrel=1
+pkgdesc="audio processing program with an interactive mode"
+url="https://github.com/bmc0/dsp"
+arch="all"
+license="ISC"
+makedepends="ladspa-dev libsndfile-dev ffmpeg-dev fftw-dev libmad-dev libtool
+ libao-dev zita-convolver-dev alsa-lib-dev pulseaudio-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/bmc0/dsp/archive/v$pkgver/dsp-$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ ./configure --prefix=/usr # not a GNU autoconf
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm755 scripts/* -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+a923cf6931842f297c4b0c09c498fe96bad1e1b2564494861ca4fb9cf44f646d06ea6114ee802f15b52a6fe7dbcf1141ca616da57aa5853ee4bcb97a920daacd dsp-1.9.tar.gz
+"
diff --git a/testing/dstask/APKBUILD b/testing/dstask/APKBUILD
new file mode 100644
index 00000000000..dbd57cc444c
--- /dev/null
+++ b/testing/dstask/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=dstask
+pkgver=0.26
+pkgrel=6
+pkgdesc="Personal task tracker designed to help you focus"
+url="https://dstask.org/"
+license="MIT"
+arch="all"
+makedepends="go git"
+subpackages="
+ $pkgname-import:_import
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/naggie/dstask/archive/v$pkgver/dstask-$pkgver.tar.gz
+ integration-tests.patch
+ "
+
+export GOFLAGS="$GOFLAGS -trimpath -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ _git_commit=$(zcat "$srcdir"/dstask-$pkgver.tar.gz | git get-tar-commit-id)
+ _build_date=$(date -u "+%Y-%m-%dT%TZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ _ldflags="
+ -X github.com/naggie/dstask.GIT_COMMIT=$_git_commit
+ -X github.com/naggie/dstask.VERSION=$pkgver-r$pkgrel
+ -X github.com/naggie/dstask.BUILD_DATE=$_build_date
+ "
+
+ go build -ldflags="$_ldflags" -v -o bin/dstask ./cmd/dstask
+ go build -ldflags="$_ldflags" -v -o bin/dstask-import ./cmd/dstask-import
+}
+
+check() {
+ # tests try to make git commits and fail when hostname is not an FQDN
+ EMAIL="buildozer@alpinelinux.org" go test ./...
+}
+
+_import() {
+ pkgdesc="Import tool for dstask"
+ amove usr/bin/dstask-import
+}
+
+package() {
+ install -Dm755 bin/dstask "$pkgdir"/usr/bin/dstask
+ install -Dm755 bin/dstask-import "$pkgdir"/usr/bin/dstask-import
+
+ install -Dm644 .dstask-bash-completions.sh \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 .dstask-zsh-completions.sh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+a1c493b9e66ef0a11f6c525aa190eb6f5be91b19d63c6d491b2c972d43e5a82f157f6030cbf8debab92118e574ebc464bc14b7ae40f0381789cfa81fe17f86d6 dstask-0.26.tar.gz
+fefaca68b53248f77c09584393bb251af318704f0cf2cc79b927558a587aaaabda4d79c0d88836e1913d2697d2a3744f3fc760ab8ec4d36cb3957b61d9f68b40 integration-tests.patch
+"
diff --git a/testing/dstask/integration-tests.patch b/testing/dstask/integration-tests.patch
new file mode 100644
index 00000000000..0f59d680eff
--- /dev/null
+++ b/testing/dstask/integration-tests.patch
@@ -0,0 +1,50 @@
+Run integration tests against the dstask binary produced in the build step
+
+diff --git a/integration/main_test.go b/integration/main_test.go
+index 9464ba0..05539a5 100644
+--- a/integration/main_test.go
++++ b/integration/main_test.go
+@@ -4,7 +4,6 @@ import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+- "log"
+ "os"
+ "os/exec"
+ "testing"
+@@ -13,34 +12,12 @@ import (
+ "gotest.tools/assert"
+ )
+
+-func TestMain(m *testing.M) {
+- if err := compile(); err != nil {
+- log.Fatalf("compile error: %v", err)
+- }
+- cleanup := func() {
+- if err := os.Remove("dstask"); err != nil {
+- log.Panic("could not remove integration test binary")
+- }
+- }
+-
+- exitCode := m.Run()
+- cleanup()
+- os.Exit(exitCode)
+-}
+-
+-func compile() error {
+- // We expect to execute in the ./integration directory, and we will output
+- // our test binary there.
+- cmd := exec.Command("go", "build", "-mod=vendor", "-o", "./dstask", "../cmd/dstask/main.go")
+- return cmd.Run()
+-}
+-
+ // Create a callable closure that will run our test binary against a
+ // particular repository path. Any variables set in the environment will be
+ // passed to the test subprocess.
+ func testCmd(repoPath string) func(args ...string) ([]byte, *exec.ExitError, bool) {
+ return func(args ...string) ([]byte, *exec.ExitError, bool) {
+- cmd := exec.Command("./dstask", args...)
++ cmd := exec.Command("../bin/dstask", args...)
+ env := os.Environ()
+ cmd.Env = append(env, fmt.Sprintf("DSTASK_GIT_REPO=%s", repoPath))
+ output, err := cmd.Output()
diff --git a/testing/dsymbol/APKBUILD b/testing/dsymbol/APKBUILD
deleted file mode 100644
index bd75377b7e3..00000000000
--- a/testing/dsymbol/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=dsymbol
-pkgver=0.10.0
-pkgrel=0
-pkgdesc="Basic symbol lookup/resolution for libdparse"
-url="https://github.com/dlang-community/dsymbol"
-arch="x86 x86_64 aarch64" # ldc
-license="BSL-1.0"
-makedepends="meson ldc ldc-runtime stdx-allocator-dev libdparse-dev dcontainers-dev"
-subpackages="$pkgname-dev"
-source="https://github.com/dlang-community/dsymbol/archive/v$pkgver/dsymbol-$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="e421f3e4b35ad4ae585a8ac7d3f227494c1457326889fc982406bec4b30edfd9c0b69f35cbbb0bcba7a6382bc5c9414a86802104c43a606e3cb9572a56b549fa dsymbol-0.10.0.tar.gz"
diff --git a/testing/dtrx/APKBUILD b/testing/dtrx/APKBUILD
new file mode 100644
index 00000000000..243147f9f79
--- /dev/null
+++ b/testing/dtrx/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Rob Blanckaert <basicer@gmail.com>
+# Maintainer: Rob Blanckaert <basicer@gmail.com>
+pkgname=dtrx
+pkgver=8.5.3
+pkgrel=1
+pkgdesc="Do The Right eXtraction"
+url="http://www.brettcsmith.org/2007/dtrx/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-invoke"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dtrx-py/dtrx/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # requires all decompression programs and makes network requests
+
+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 tests/compare.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+11809e4961c149091eece5ee815cc5d85f7d746bfc632a63210d3d0b18975732b92c43d414aa5fcf37793ebc34a2b8a6c72bb243d8ab2813d470bad390ceedf4 dtrx-8.5.3.tar.gz
+"
diff --git a/testing/dublin-traceroute/APKBUILD b/testing/dublin-traceroute/APKBUILD
new file mode 100644
index 00000000000..6a7c6e096ea
--- /dev/null
+++ b/testing/dublin-traceroute/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=dublin-traceroute
+pkgver=0.4.2
+pkgrel=3
+pkgdesc="A NAT-aware multipath traceroute tool"
+url="https://dublin-traceroute.net/"
+arch="all"
+license="BSD-2-Clause"
+options="!check" # no googletest avail
+makedepends="python3-dev cmake jsoncpp-dev
+ libtins-dev libpcap-dev openssl-dev
+ samurai"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-contrib::noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/insomniacslk/dublin-traceroute/archive/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -D -m 644 ./COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+contrib() {
+ pkgdesc="Contrib scripts for $pkgname"
+ depends="py3-pygraphviz python3"
+ cd "$builddir"
+ install -D -m 755 scripts/to_graphviz.py "$subpkgdir"/usr/bin/dublin-to-graphviz
+}
+
+sha512sums="
+4711dbf1fd6190e0260e5dd0f5e2f296ccb88cc1fc301260f01fb357f44cc42f11a82d4ab09f9f571fabee4516374e87fb1bea8971432a6f145116cef57f553a dublin-traceroute-0.4.2.tar.gz
+"
diff --git a/testing/duc/APKBUILD b/testing/duc/APKBUILD
new file mode 100644
index 00000000000..eb5c5bcc7e9
--- /dev/null
+++ b/testing/duc/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Prokop RandáÄek <prokop@rdck.dev>
+# Maintainer: Prokop RandáÄek <prokop@rdck.dev>
+pkgname=duc
+pkgver=1.4.5
+pkgrel=0
+pkgdesc="Tool for inspecting disk usage"
+url="http://duc.zevv.nl/"
+arch="all"
+license="LGPL-3.0-or-later"
+makedepends="pango-dev glfw-dev kyotocabinet-dev ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/zevv/duc/releases/download/$pkgver/duc-$pkgver.tar.gz"
+options="!check" # tests are not included in the distributed tar
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-db-backend=kyotocabinet \
+ --enable-opengl \
+ --disable-x11
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b6d48222ed2821d3d1317102f867f71f9060a093ba11ba48d9f0d9dc743c5b361442cb605aec6e91dd6588ae4b51897b4ed5da96ba33019e8a501a262af12371 duc-1.4.5.tar.gz
+"
diff --git a/testing/duf/APKBUILD b/testing/duf/APKBUILD
new file mode 100644
index 00000000000..fd454cb1085
--- /dev/null
+++ b/testing/duf/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer:
+pkgname=duf
+pkgver=0.8.1
+pkgrel=18
+pkgdesc="Disk Usage/Free Utility"
+options="net !check" # No testsuite
+url="https://github.com/muesli/duf"
+license="MIT"
+arch="all"
+makedepends="go"
+source="https://github.com/muesli/duf/archive/v$pkgver/duf-$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -trimpath \
+ -ldflags "-X main.Version=$pkgver -extldflags \"$LDFLAGS\"" \
+ -o duf
+}
+
+package() {
+ install -Dm755 duf -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+598318cd90e8a27bdc448cb84682f3846baa02bab0f527a26de42b8b3efd3ba258a76b6f7a74a41405e20b23ccff92db1b6ef7d3412fc8261942a8ccde4241dc duf-0.8.1.tar.gz
+"
diff --git a/testing/duktape/APKBUILD b/testing/duktape/APKBUILD
deleted file mode 100644
index c85dc51ab24..00000000000
--- a/testing/duktape/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Cory Sanin <corysanin@outlook.com>
-# Maintainer: Cory Sanin <corysanin@outlook.com>
-pkgname=duktape
-pkgver=2.5.0
-pkgrel=0
-pkgdesc="Embeddable Javascript engine with a focus on portability and compact footprint"
-url="https://duktape.org"
-arch="all"
-license="MIT"
-options="!check" # no tests in release archive
-subpackages="$pkgname-dev"
-source="https://duktape.org/duktape-$pkgver.tar.xz
- $pkgname.pc
- "
-
-build() {
- make -f ./Makefile.sharedlibrary
-}
-
-check() {
- make check # update if tests are added
-}
-
-package() {
- make -f ./Makefile.sharedlibrary install INSTALL_PREFIX="$pkgdir/usr"
- mkdir -p "$pkgdir/usr/lib/pkgconfig/"
- sed "s/@VERSION@/$pkgver/" "$srcdir/$pkgname.pc" > "$pkgdir/usr/lib/pkgconfig/$pkgname.pc"
-}
-
-sha512sums="230e298a91cb48407d7c2a4b7c85cf9d53151d550e2fd7ba6cb8f9115682abce295fb78a3c3cd22b4812ce86944dd6d28c2b25c3845668a17232e3a08ea63837 duktape-2.5.0.tar.xz
-f7dc8853602233d67b69aff0ae32e9ed4c4a4888edfd27729174e240eca57a8f93a8b9db50e851091bed9cbed8d0028203a925c8424ea0c6f81a1dc046b9297d duktape.pc"
diff --git a/testing/duktape/duktape.pc b/testing/duktape/duktape.pc
deleted file mode 100644
index b7f115cfbe5..00000000000
--- a/testing/duktape/duktape.pc
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: duktape
-Description: Embeddable Javascript engine with a focus on portability and compact footprint
-Version: @VERSION@
-Libs: -L${libdir} -lduktape
-Cflags: -I${includedir} \ No newline at end of file
diff --git a/testing/dum/APKBUILD b/testing/dum/APKBUILD
new file mode 100644
index 00000000000..c87c6476d60
--- /dev/null
+++ b/testing/dum/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=dum
+pkgver=0.1.19
+pkgrel=1
+pkgdesc="An npm scripts runner written in Rust"
+url="https://github.com/egoist/dum"
+arch="aarch64 armhf armv7 ppc64le x86 x86_64" # blocked by rust/cargo
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="https://github.com/egoist/dum/archive/v$pkgver/dum-$pkgver.tar.gz
+ strip-env_logger-features.patch
+ "
+
+
+prepare() {
+ default_prepare
+
+ # Optimize binary for size.
+ cat >> Cargo.toml <<-EOF
+
+ [profile.release]
+ codegen-units = 1
+ lto = true
+ opt-level = "s"
+ panic = "abort"
+ EOF
+
+ # No --locked, we have to update lockfile after patching Cargo.toml.
+ cargo fetch --target="$CTARGET"
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m755 target/release/dum -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+ea86635c77a9cc369c3f0d8aa1c3bba3227f2a3132accccaaba4ccadaba9d2231ac149921bb70ba657878e2f6873a78b2cfaf5b4fb1476ebde5ad5b3b8264a3f dum-0.1.19.tar.gz
+d1834967fc1763723ced5d6ac9c158330daea610780feb91f4d50527040407dedff65f469f7906868172a9e877ae4ad3f2eb547c2f1cd0b305e35c3c36c118f6 strip-env_logger-features.patch
+"
diff --git a/testing/dum/strip-env_logger-features.patch b/testing/dum/strip-env_logger-features.patch
new file mode 100644
index 00000000000..4940a0c2580
--- /dev/null
+++ b/testing/dum/strip-env_logger-features.patch
@@ -0,0 +1,8 @@
+Build env_logger without unnecessary features to reduce the binary size by
+a factor of two.
+
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -18,1 +18,1 @@
+-env_logger = "0.9.0"
++env_logger = { version = "0.9.0", default-features = false, features = ["humantime"] }
diff --git a/testing/dumb_runtime_dir/APKBUILD b/testing/dumb_runtime_dir/APKBUILD
new file mode 100644
index 00000000000..cfc4c0018d4
--- /dev/null
+++ b/testing/dumb_runtime_dir/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Marten Ringwelski <git+alpine@maringuu.de>
+# Maintainer: Marten Ringwelski <git+alpine@maringuu.de>
+pkgname=dumb_runtime_dir
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Creates an XDG_RUNTIME_DIR on login and never removes it"
+url="https://github.com/ifreund/dumb_runtime_dir"
+arch="all"
+license="0BSD"
+makedepends="linux-pam-dev"
+source="https://github.com/ifreund/dumb_runtime_dir/archive/v$pkgver/dumb_runtime_dir-v$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX="/" DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f7607a1e048efa686e8f266efc9b798c905840fe660a8d3d4ead538b258971a1787406e94c792883e886360672ebc1d9fb812b2bf54755f1135a15479514d962 dumb_runtime_dir-v1.0.4.tar.gz
+"
diff --git a/testing/dump1090/APKBUILD b/testing/dump1090/APKBUILD
new file mode 100644
index 00000000000..46850273095
--- /dev/null
+++ b/testing/dump1090/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=dump1090
+pkgver=9.0
+pkgrel=0
+pkgdesc="Dump1090 is a simple Mode S decoder for RTLSDR devices"
+arch="all"
+url="https://github.com/flightaware/dump1090"
+license="GPL-2.0-or-later"
+depends="
+ rtl-sdr
+ bladerf
+ "
+makedepends="ncurses-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/flightaware/dump1090/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make all faup1090 EXTRACFLAGS=-DHTMLPATH=\\\"/usr/share/dump1090/html\\\"
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -D -m755 dump1090 "$pkgdir"/usr/bin/dump1090
+ install -D -m755 view1090 "$pkgdir"/usr/bin/view1090
+ install -D -m755 faup1090 "$pkgdir"/usr/lib/piaware/helpers/faup1090
+ install -d -m755 "$pkgdir"/usr/share/dump1090/html
+ cp -r public_html/* "$pkgdir"/usr/share/dump1090/html
+}
+
+sha512sums="
+07408c5680e626eccd3f74d35a6e8a7538dfffd31675f036580003dbba2a78f2487e1980d72d3ec7e44d3f94880e3f231ab1c97bd99ba1ca6cdcfa0ebf198aff dump1090-9.0.tar.gz
+"
diff --git a/testing/dump978/APKBUILD b/testing/dump978/APKBUILD
new file mode 100644
index 00000000000..94a782be2a3
--- /dev/null
+++ b/testing/dump978/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=dump978
+pkgver=9.0
+pkgrel=0
+pkgdesc="FlightAware's 978MHz UAT demodulator"
+arch="all"
+url="https://github.com/flightaware/dump978"
+license="BSD-2-Clause"
+depends="
+ bladerf
+ boost
+ rtl-sdr
+ soapy-sdr
+ "
+makedepends="
+ boost-dev
+ soapy-sdr-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/flightaware/dump978/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make all faup978
+}
+
+check() {
+ make fec_tests
+}
+
+package() {
+ install -D -m755 dump978-fa "$pkgdir"/usr/bin/dump978-fa
+ install -D -m755 skyaware978 "$pkgdir"/usr/bin/skyaware978
+ install -D -m755 faup978 "$pkgdir"/usr/lib/piaware/helpers/faup978
+}
+
+sha512sums="
+2a6effba4596a775228020c4cf3ca872179e9c5caf735126fdc4294b91e3f9447e4c6323f5ced8c92570cb6193363c796361c71b0a016ea1b1fe2b32e67a3dbc dump978-9.0.tar.gz
+"
diff --git a/testing/dune-deps/APKBUILD b/testing/dune-deps/APKBUILD
new file mode 100644
index 00000000000..55c022a6ca2
--- /dev/null
+++ b/testing/dune-deps/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=dune-deps
+pkgver=1.3.0
+pkgrel=2
+pkgdesc="Show dependency graph of a multi-component dune project"
+url="https://github.com/mjambon/dune-deps"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends="graphviz"
+makedepends="
+ dune
+ ocaml
+ ocaml-base-dev
+ ocaml-cmdliner-dev
+ ocaml-compiler-libs
+ ocaml-csexp-dev
+ ocaml-num-dev
+ ocaml-parsexp-dev
+ ocaml-sexplib-dev
+ ocaml-sexplib0-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/mjambon/dune-deps/archive/v$pkgver.tar.gz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build -p dune-deps @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f58e9f312667ff79d019e54abc2623ac974ede330a20e71ea56121e34cf0382ed0dc0a3921449b6e969f3eaee2631b14e4ba5e3ba0f13237690c4b9313b92df7 dune-deps-1.3.0.tar.gz
+"
diff --git a/testing/dustracing2d/APKBUILD b/testing/dustracing2d/APKBUILD
new file mode 100644
index 00000000000..5f2a2e9dc89
--- /dev/null
+++ b/testing/dustracing2d/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=dustracing2d
+_pkgname=DustRacing2D
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="Traditional top-down car racing game including a level editor"
+url="http://juzzlin.github.io/DustRacing2D/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake qt5-qttools-dev openal-soft-dev libvorbis-dev glu-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/juzzlin/DustRacing2D/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No test suite
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DReleaseBuild=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="9a49cd0302ab47b12ee587a33cc74c1df2bf6cf7925141cbf957fc90a5c1a34423d4420be28bcb6909a862daa12d6214b397fd0fc77e9e18fa649f3ca5c2e1ab dustracing2d-2.1.1.tar.gz"
diff --git a/testing/dvdbackup/10-dvdbackup-dvdread-6.1.patch b/testing/dvdbackup/10-dvdbackup-dvdread-6.1.patch
new file mode 100644
index 00000000000..d239600cbc2
--- /dev/null
+++ b/testing/dvdbackup/10-dvdbackup-dvdread-6.1.patch
@@ -0,0 +1,90 @@
+Author: Nicolas Porcel - taken from voidlinux
+Summary: fixes for musl
+----
+--- a/src/dvdbackup.c
++++ b/src/dvdbackup.c
+@@ -1132,7 +1132,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
+ int size;
+
+ /* DVD handler */
+- ifo_handle_t* ifo_file = NULL;
++ dvd_file_t* ifo_file = NULL;
+
+ if (title_set_info->number_of_title_sets + 1 < title_set) {
+ return(1);
+@@ -1181,7 +1181,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
+ if ((streamout_ifo = open(targetname_ifo, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1) {
+ fprintf(stderr, _("Error creating %s\n"), targetname_ifo);
+ perror(PACKAGE);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+@@ -1191,7 +1191,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
+ if ((streamout_bup = open(targetname_bup, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1) {
+ fprintf(stderr, _("Error creating %s\n"), targetname_bup);
+ perror(PACKAGE);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+@@ -1200,31 +1200,31 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
+
+ /* Copy VIDEO_TS.IFO, since it's a small file try to copy it in one shot */
+
+- if ((ifo_file = ifoOpen(dvd, title_set))== 0) {
++ if ((ifo_file = DVDOpenFile(dvd, title_set, DVD_READ_INFO_FILE))== 0) {
+ fprintf(stderr, _("Failed opening IFO for title set %d\n"), title_set);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+ return 1;
+ }
+
+- size = DVDFileSize(ifo_file->file) * DVD_VIDEO_LB_LEN;
++ size = DVDFileSize(ifo_file) * DVD_VIDEO_LB_LEN;
+
+ if ((buffer = (unsigned char *)malloc(size * sizeof(unsigned char))) == NULL) {
+ perror(PACKAGE);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+ return 1;
+ }
+
+- DVDFileSeek(ifo_file->file, 0);
++ DVDFileSeek(ifo_file, 0);
+
+- if (DVDReadBytes(ifo_file->file,buffer,size) != size) {
++ if (DVDReadBytes(ifo_file,buffer,size) != size) {
+ fprintf(stderr, _("Error reading IFO for title set %d\n"), title_set);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+@@ -1234,7 +1234,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
+
+ if (write(streamout_ifo,buffer,size) != size) {
+ fprintf(stderr, _("Error writing %s\n"),targetname_ifo);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+@@ -1243,7 +1243,7 @@ static int DVDCopyIfoBup(dvd_reader_t* dvd, title_set_
+
+ if (write(streamout_bup,buffer,size) != size) {
+ fprintf(stderr, _("Error writing %s\n"),targetname_bup);
+- ifoClose(ifo_file);
++ DVDCloseFile(ifo_file);
+ free(buffer);
+ close(streamout_ifo);
+ close(streamout_bup);
+-----
diff --git a/testing/dvdbackup/APKBUILD b/testing/dvdbackup/APKBUILD
new file mode 100644
index 00000000000..49747da40b0
--- /dev/null
+++ b/testing/dvdbackup/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=dvdbackup
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="Tool to rip video DVDs from the command line"
+url="https://dvdbackup.sourceforge.net/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="libdvdread-dev"
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://sourceforge.net/projects/dvdbackup/files/dvdbackup/dvdbackup-$pkgver/dvdbackup-$pkgver.tar.xz
+ 10-dvdbackup-dvdread-6.1.patch
+ "
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --prefix=/usr
+ make
+}
+
+package() {
+ mkdir -p $pkgdir/usr/share/locale
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="df9abb2ca0b8a7cd7855ddff94dae249b06b2ec0ee42f3e9c53aa46aebd9885bdf26dacecbd4a20ff5f642ea10c0c64b811d25c23802c8a2b1489281900fbe0d dvdbackup-0.4.2.tar.xz
+31bfbc09facc5fa827ac8f788f379d6cc4f84c8c8a6e3dc11be9a28455020a58cf47d8393815f5b416968e131b47c71185a1dda6832ca22bb95d0b7dc07a0604 10-dvdbackup-dvdread-6.1.patch"
diff --git a/testing/dwl/APKBUILD b/testing/dwl/APKBUILD
new file mode 100644
index 00000000000..745060123d6
--- /dev/null
+++ b/testing/dwl/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=dwl
+pkgver=0.5
+pkgrel=1
+pkgdesc="dwm for wayland"
+url="https://codeberg.org/dwl/dwl"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="wlroots-dev wayland-protocols"
+options="!check" # no tests
+subpackages="$pkgname-doc"
+source="https://codeberg.org/dwl/dwl/releases/download/v$pkgver/dwl-v$pkgver.tar.gz
+ xwayland.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+7bd292559b0ecafc54bf1c1ba0c3b6b0417e8bd03bb0058f492b87295c92b50932e25621cc5f804c38ad06ffadad7bb8017872fade4a04bf617b1d4f1993aae8 dwl-v0.5.tar.gz
+7c7952ede929faa137f690b3d1f44c1af4b40a3a6dac7bc3d5a377c8c454b35de1becdbbd1f3cbbde56c798f4f3bf78bc7eef4d7faa0e761d317179c072c629f xwayland.patch
+"
diff --git a/testing/dwl/xwayland.patch b/testing/dwl/xwayland.patch
new file mode 100644
index 00000000000..4bed22b3e17
--- /dev/null
+++ b/testing/dwl/xwayland.patch
@@ -0,0 +1,12 @@
+diff --git a/config.mk b/config.mk
+index f50156f..a20a8f0 100644
+--- a/config.mk
++++ b/config.mk
+@@ -10,5 +10,5 @@ MANDIR = $(PREFIX)/share/man
+ XWAYLAND =
+ XLIBS =
+ # Uncomment to build XWayland support
+-#XWAYLAND = -DXWAYLAND
+-#XLIBS = xcb xcb-icccm
++XWAYLAND = -DXWAYLAND
++XLIBS = xcb xcb-icccm
diff --git a/testing/dxvk/APKBUILD b/testing/dxvk/APKBUILD
deleted file mode 100644
index 39e2c317a49..00000000000
--- a/testing/dxvk/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=dxvk
-pkgver=1.7
-pkgrel=0
-pkgdesc="Vulkan-based compatibility layer for Direct3D 10/11"
-options="!check"
-url="https://github.com/doitsujin/dxvk"
-arch="x86_64 x86"
-license="Zlib"
-depends="bash wine"
-makedepends="
- meson
- glslang-dev
- mingw-w64-gcc
- wine-dev
- vulkan-loader
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/doitsujin/dxvk/archive/v$pkgver.tar.gz"
-
-case "$CARCH" in
- x86_64)
- _outdir=build/x64
- _crossfile=build-win64.txt
- _prefix=/usr/share/dxvk/x64
- ;;
- x86)
- _outdir=build/x32
- _crossfile=build-win32.txt
- _prefix=/usr/share/dxvk/x32
- ;;
-esac
-
-build() {
- meson . $_outdir \
- --cross-file=$_crossfile \
- --prefix=$_prefix \
- --bindir="" \
- --libdir="" \
- --buildtype=plain \
- -Denable_tests=false
- ninja -C $_outdir
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C $_outdir install
- install -Dm644 setup_dxvk.sh "$pkgdir"/usr/share/dxvk/setup_dxvk.sh
- mkdir -p "$pkgdir"/usr/bin
- ln -s /usr/share/dxvk/setup_dxvk.sh "$pkgdir"/usr/bin/setup_dxvk
- chmod +x "$pkgdir"/usr/share/dxvk/setup_dxvk.sh
-}
-sha512sums="3a78332dbaaed71fb007ef9b441b33892bd56844dfddc72ded926108712ade34060ddb850bf3943b175aed6e89d453fb84f12fe9c00a94e03a342de61d7aed0c dxvk-1.7.tar.gz"
diff --git a/testing/e2fsimage/APKBUILD b/testing/e2fsimage/APKBUILD
deleted file mode 100644
index 18036a76f59..00000000000
--- a/testing/e2fsimage/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer:
-pkgname=e2fsimage
-pkgver=0.2.3
-pkgrel=0
-pkgdesc="create and populate an ext2/3/4 filesystem image as non-root user"
-url="https://github.com/Ledest/e2fsimage"
-arch="all"
-license="BSD"
-makedepends="e2fsprogs-dev e2fsprogs-extra"
-subpackages="$pkgname-doc"
-source="e2fsimage-$pkgver.tar.gz::https://github.com/Ledest/e2fsimage/archive/$pkgver.tar.gz"
-builddir="$srcdir/e2fsimage-$pkgver"
-
-build() {
- cd "$builddir"
- prefix=/usr mandir=/usr/share/man ./configure
- make
-}
-
-check() {
- cd "$builddir"
- ./src/e2fsimage -f test.img -d ./src
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b6bf97ae35af7c48063f7a6dc19af80fec4bdfcd4d9b6064168b5e5a37ead57b3a01772f659f5004d6d5f1217cccba6a019e1974f87503fcaf526a15d6187ed7 e2fsimage-0.2.3.tar.gz"
diff --git a/testing/easyloggingpp-dev/APKBUILD b/testing/easyloggingpp-dev/APKBUILD
deleted file mode 100644
index c4d1b452a24..00000000000
--- a/testing/easyloggingpp-dev/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer:
-pkgname=easyloggingpp-dev
-_pkgname=easyloggingpp
-pkgver=9.96.7
-pkgrel=1
-pkgdesc="Single header C++ logging library"
-url="https://github.com/zuhd-org/easyloggingpp"
-arch="all"
-license="MIT"
-depends="libexecinfo-dev"
-checkdepends="gtest gtest-dev"
-makedepends="$depends_dev cmake"
-source="https://github.com/zuhd-org/$_pkgname/archive/v$pkgver/$_pkgname-$pkgver.tar.gz
- musl-compat.patch
- "
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- # FIXME: These tests fail.
- sed -i \
- -e '/command-line-args-test\.h/d' \
- -e '/helpers-test\.h/d' \
- test/main.cc
-}
-
-build() {
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_VERBOSE_MAKEFILE=ON \
- -DELPP_PKGCONFIG_INSTALL_DIR=/usr/lib/pkgconfig \
- -Dbuild_static_lib=ON \
- -Dtest=ON
- make
-}
-
-check() {
- make test ARGS="-V"
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="53ee637cd7462fac542170a81a9a206f3418dd8bc9e1f25d1d13dadef630e0fdf2880d71079808ebc49d36a7dbca7b5cdb76ad37b722c66b4b3d3efc8b5d2f35 easyloggingpp-9.96.7.tar.gz
-ad0d3d8bfd8a00513168cd0a814c30219fe60139b17cf153b0b68332edf5a0ce52c6aecf620452a19f78de36b37af38f44a5169c48ff556c7b305ba01c206ecb musl-compat.patch"
diff --git a/testing/easyloggingpp-dev/musl-compat.patch b/testing/easyloggingpp-dev/musl-compat.patch
deleted file mode 100644
index ca5efebc872..00000000000
--- a/testing/easyloggingpp-dev/musl-compat.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From b691bec24cf7a3d35748e47da78e3f98d6b9817d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Klitzing?= <aklitzing@gmail.com>
-Date: Wed, 21 Jun 2017 20:21:01 +0200
-Subject: [PATCH] Add __has_include check for execinfo.h
-
-This header is necessary later for the stacktrace feature.
-This fixes musl based distributions.
-
---- a/src/easylogging++.h
-+++ b/src/easylogging++.h
-@@ -205,7 +205,7 @@
- # define ELPP_INTERNAL_INFO(lvl, msg)
- #endif // (defined(ELPP_DEBUG_INFO))
- #if (defined(ELPP_FEATURE_ALL)) || (defined(ELPP_FEATURE_CRASH_LOG))
--# if (ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_ANDROID && !ELPP_OS_EMSCRIPTEN)
-+# if (__has_include(<execinfo.h>) && ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_ANDROID && !ELPP_OS_EMSCRIPTEN)
- # define ELPP_STACKTRACE 1
- # else
- # if ELPP_COMPILER_MSVC
---- a/cmake/easyloggingpp.pc.cmakein.orig
-+++ b/cmake/easyloggingpp.pc.cmakein
-@@ -3,4 +3,6 @@
- Version: @ELPP_VERSION_STRING@
- prefix=@CMAKE_INSTALL_PREFIX@
- includedir=@ELPP_INCLUDE_INSTALL_DIR@
-+libdir=@CMAKE_INSTALL_PREFIX@/lib
-+Libs: -L${libdir} -lexecinfo
- Cflags: -I${includedir}
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -91,6 +92,7 @@
- ELPP_FRESH_LOG_FILE
- )
-
-+ target_link_libraries(easyloggingpp-unit-tests execinfo)
- # Standard linking to gtest stuff.
- target_link_libraries(easyloggingpp-unit-tests gtest gtest_main)
-
diff --git a/testing/eatmemory/APKBUILD b/testing/eatmemory/APKBUILD
index ca6316e9cc8..bdfac3f93a7 100644
--- a/testing/eatmemory/APKBUILD
+++ b/testing/eatmemory/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=eatmemory
pkgver=0.1.6
-pkgrel=1
+pkgrel=2
pkgdesc="Simple C program to allocate memory from the command line"
url="https://github.com/julman99/eatmemory"
arch="all"
diff --git a/testing/eboard/APKBUILD b/testing/eboard/APKBUILD
new file mode 100644
index 00000000000..f949bb66486
--- /dev/null
+++ b/testing/eboard/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer:
+pkgname=eboard
+pkgver=1.1.3
+pkgrel=1
+pkgdesc="Chess board interface for Internet Chess Servers"
+url="https://github.com/fbergo/eboard"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ gstreamer-dev
+ gtk+2.0-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fbergo/eboard/archive/refs/tags/v$pkgver.tar.gz
+ $pkgname-fix-linking.patch::https://github.com/fbergo/eboard/commit/e529c55af7463f9169d9f36f5fc5cdbafccd66b6.diff
+ "
+options="!check" # does not have tests
+
+build() {
+ # not autotools
+ ./configure \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ mv "$pkgdir"/usr/man "$pkgdir"/usr/share/man
+}
+
+sha512sums="
+c89e234d35de9f52047dbdf370cd47d88f6135880985503c2a77602a67ced3a35f64e1803d36c337a505b5d7cc22a5c02c4ef776b187841c417511110e321fe3 eboard-1.1.3.tar.gz
+43e0194c237f9281ae814edd74da9e88fb0b16d74d66e490e61df4b3db82548cc667200255eb4440dbd74862a3f47f34c6e1ba3c4b695e2dc40b26f2f5e30d06 eboard-fix-linking.patch
+"
diff --git a/testing/ebook-tools/10-cmake_libzip_zipconf_path.patch b/testing/ebook-tools/10-cmake_libzip_zipconf_path.patch
deleted file mode 100644
index 71cc04baa59..00000000000
--- a/testing/ebook-tools/10-cmake_libzip_zipconf_path.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-Author: Pino Toscano <toscano.pino@tiscali.it>
-Description: Get the include dir also for zipconf.h
- Since libzip 0.11.x, the architecture-specific zipconf.h has been moved to
- an include directory within the library path.
- Adapt the CMake stuff to search for zipconf.h there, making sure to use all
- the include directories needed when wanting to use libzip.
-Forwarded: no
-Last-Update: 2014-02-16
-Bug-Debian: https://bugs.debian.org/739152
-
---- a/cmake/FindLibZip.cmake
-+++ b/cmake/FindLibZip.cmake
-@@ -2,7 +2,7 @@
- # Once done this will define
- #
- # LIBZIP_FOUND - system has the zip library
--# LIBZIP_INCLUDE_DIR - the zip include directory
-+# LIBZIP_INCLUDE_DIRS - the zip include directories
- # LIBZIP_LIBRARY - Link this to use the zip library
- #
- # Copyright (c) 2006, Pino Toscano, <toscano.pino@tiscali.it>
-@@ -10,12 +10,12 @@
- # Redistribution and use is allowed according to the terms of the BSD license.
- # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
--if (LIBZIP_LIBRARY AND LIBZIP_INCLUDE_DIR)
-+if (LIBZIP_LIBRARY AND LIBZIP_INCLUDE_DIRS)
- # in cache already
- set(LIBZIP_FOUND TRUE)
--else (LIBZIP_LIBRARY AND LIBZIP_INCLUDE_DIR)
-+else (LIBZIP_LIBRARY AND LIBZIP_INCLUDE_DIRS)
-
-- find_path(LIBZIP_INCLUDE_DIR zip.h
-+ find_path(_LIBZIP_INCLUDE_DIR zip.h
- ${GNUWIN32_DIR}/include
- )
-
-@@ -24,13 +24,26 @@
- ${GNUWIN32_DIR}/lib
- )
-
-+ if (LIBZIP_LIBRARY)
-+ get_filename_component(_LIBZIP_LIBRARY_DIR ${LIBZIP_LIBRARY} PATH)
-+
-+ find_path(_ZIPCONF_INCLUDE_DIR zipconf.h
-+ PATHS
-+ ${_LIBZIP_LIBRARY_DIR}/include
-+ ${_LIBZIP_LIBRARY_DIR}/libzip/include
-+ )
-+ endif()
-+
- include(FindPackageHandleStandardArgs)
-- FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibZip DEFAULT_MSG LIBZIP_LIBRARY LIBZIP_INCLUDE_DIR)
-+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibZip DEFAULT_MSG LIBZIP_LIBRARY _LIBZIP_INCLUDE_DIR _ZIPCONF_INCLUDE_DIR)
-
-+ set(LIBZIP_INCLUDE_DIRS)
-+ list(APPEND LIBZIP_INCLUDE_DIRS "${_LIBZIP_INCLUDE_DIR}")
-+ list(APPEND LIBZIP_INCLUDE_DIRS "${_ZIPCONF_INCLUDE_DIR}")
- # ensure that they are cached
-- set(LIBZIP_INCLUDE_DIR ${LIBZIP_INCLUDE_DIR} CACHE INTERNAL "The libzip include path")
-+ set(LIBZIP_INCLUDE_DIRS ${LIBZIP_INCLUDE_DIRS} CACHE INTERNAL "The libzip include paths")
- set(LIBZIP_LIBRARY ${LIBZIP_LIBRARY} CACHE INTERNAL "The libraries needed to use libzip")
-
--endif (LIBZIP_LIBRARY AND LIBZIP_INCLUDE_DIR)
-+endif (LIBZIP_LIBRARY AND LIBZIP_INCLUDE_DIRS)
-
--mark_as_advanced(LIBZIP_INCLUDE_DIR LIBZIP_LIBRARY)
-+mark_as_advanced(LIBZIP_INCLUDE_DIRS LIBZIP_LIBRARY)
---- a/src/libepub/CMakeLists.txt
-+++ b/src/libepub/CMakeLists.txt
-@@ -1,4 +1,4 @@
--include_directories (${EBOOK-TOOLS_SOURCE_DIR}/src/libepub ${LIBXML2_INCLUDE_DIR} ${LIBZIP_INCLUDE_DIR})
-+include_directories (${EBOOK-TOOLS_SOURCE_DIR}/src/libepub ${LIBXML2_INCLUDE_DIR} ${LIBZIP_INCLUDE_DIRS})
- add_library (epub SHARED epub.c ocf.c opf.c linklist.c list.c)
- target_link_libraries (epub ${LIBZIP_LIBRARY} ${LIBXML2_LIBRARIES})
-
diff --git a/testing/ebook-tools/APKBUILD b/testing/ebook-tools/APKBUILD
deleted file mode 100644
index cfb043a1128..00000000000
--- a/testing/ebook-tools/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Andrew Domaszek <brimston3@hg0.us>
-# Maintainer:
-pkgname=ebook-tools
-pkgver=0.2.2
-pkgrel=1
-pkgdesc="Tools for accessing and converting various ebook file formats."
-url="https://sourceforge.net/projects/ebook-tools/"
-arch="all"
-license="MIT"
-depends=""
-depends_dev="cmake libxml2-dev libzip-dev"
-makedepends="$depends_dev"
-install=""
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
- 10-cmake_libzip_zipconf_path.patch"
-
-builddir="$srcdir"/$pkgname-$pkgver
-build() {
- cd "$builddir"
- cmake \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=/usr \
- . || return 1
- make || return 1
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
- install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE || return 1
-}
-
-sha512sums="b4518249835ed7cc672392bf2f8b1c62bc218e41c53663bb26ab34c9e43a99b6b7ae794babdb4bd775e467bb17918703a66ee57c8cf94cb7afc4ba2a7f74816a ebook-tools-0.2.2.tar.gz
-5fadd9346232192ae618993c5f48ab84fac84d32dce3be55e4485d756f5a364569298488960bd21c0783d5e160a186f6f335d92194c5f63fc619218335f117ed 10-cmake_libzip_zipconf_path.patch"
diff --git a/testing/ecasound/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch b/testing/ecasound/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch
new file mode 100644
index 00000000000..28afc90c517
--- /dev/null
+++ b/testing/ecasound/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch
@@ -0,0 +1,45 @@
+Patch-Source: https://sourceforge.net/p/ecasound/bugs/54/attachment/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch
+--
+From f2edef1f1e7b56f43ceea63f0d3024474f813b5d Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Fri, 5 Nov 2021 23:26:19 +0000
+Subject: [PATCH] ecasignalview.cpp: always use "%s"-style format for
+ printf()-style functions
+
+`ncuses-6.3` added printf-style function attributes and now makes
+it easier to catch cases when user input is used in palce of format
+string when built with CFLAGS=-Werror=format-security:
+
+ ecasignalview.cpp:360:13:
+ error: format not a string literal and no format arguments [-Werror=format-security]
+ 360 | mvprintw(r++, 0, bar);
+ | ~~~~~~~~^~~~~~~~~~~~~
+
+Let's wrap all the missing places with "%s" format.
+---
+ ecatools/ecasignalview.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ecatools/ecasignalview.cpp b/ecatools/ecasignalview.cpp
+index ea56a138..7f3b765b 100644
+--- a/ecatools/ecasignalview.cpp
++++ b/ecatools/ecasignalview.cpp
+@@ -351,13 +351,13 @@ void ecasv_output_init(void)
+ ecasv_rate_msec, ecasv_buffersize, avg_length); */
+ ++r;
+ const char* bar="------------------------------------------------------------------------------\n";
+- mvprintw(r++, 0, bar);
++ mvprintw(r++, 0, "%s", bar);
+ mvprintw(r, 0, "channel");
+ if (ecasv_log_display_mode)
+ mvprintw(r++,38, "%s avg-peak dB max-peak dB clipped\n", ecasv_bar_buffer);
+ else
+ mvprintw(r++,38, "%s avg-peak max-peak clipped\n", ecasv_bar_buffer);
+- mvprintw(r++, 0, bar);
++ mvprintw(r++, 0, "%s", bar);
+
+ memset(ecasv_bar_buffer, ' ', ecasv_bar_length_const - 4);
+ ecasv_bar_buffer[ecasv_bar_length_const - 4] = 0;
+--
+2.33.1
+
diff --git a/testing/ecasound/APKBUILD b/testing/ecasound/APKBUILD
index 20e4c62dc64..9ec8436f85d 100644
--- a/testing/ecasound/APKBUILD
+++ b/testing/ecasound/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
pkgname=ecasound
pkgver=2.9.3
-pkgrel=1
+pkgrel=3
pkgdesc="Textmode multitrack audio processing"
url="https://ecasound.seul.org/ecasound/"
arch="all !s390x" # Testsuite fails
@@ -10,7 +10,9 @@ license="GPL-2.0-or-later"
makedepends="alsa-lib-dev readline-dev ncurses-dev
mpg123-dev lame-dev libsndfile-dev libsamplerate-dev"
subpackages="$pkgname-dev $pkgname-doc"
-source="http://ecasound.seul.org/download/ecasound-$pkgver.tar.gz"
+source="https://ecasound.seul.org/download/ecasound-$pkgver.tar.gz
+ 0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch
+ "
build() {
./configure --prefix=/usr \
@@ -25,9 +27,11 @@ package() {
make DESTDIR="$pkgdir" install
}
-
check() {
make check
}
-sha512sums="4f70e6f54cd05194a4ffe80905e7488d16d32d684c87736dfdac7b3aebf3d20cbf417964d75e00e781f6f0614b8b699061c69fcbf7e1761d66ce1abfcd5f1140 ecasound-2.9.3.tar.gz"
+sha512sums="
+4f70e6f54cd05194a4ffe80905e7488d16d32d684c87736dfdac7b3aebf3d20cbf417964d75e00e781f6f0614b8b699061c69fcbf7e1761d66ce1abfcd5f1140 ecasound-2.9.3.tar.gz
+fa2d3305b16de3c5e674c94d6e29465c78e9b9751b1e86a7761d839dd5e86d9fa8fb97b228394406d48cfc9329b8378914a618c37b300273f2467dad6dfeca1d 0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch
+"
diff --git a/testing/eccodes/APKBUILD b/testing/eccodes/APKBUILD
new file mode 100644
index 00000000000..156a0082d3f
--- /dev/null
+++ b/testing/eccodes/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Leon White <badfunkstripe@gmail.com>
+pkgname=eccodes
+pkgver=2.32.1
+pkgrel=0
+pkgdesc="API and tools for decoding and encoding WMO meteorological message formats"
+url="https://github.com/ecmwf/eccodes"
+# ecCodes only supports 64 bit platforms
+# s390x blocked by netcdf-dev
+arch="all !armhf !armv7 !s390x !x86"
+license="Apache-2.0"
+makedepends="
+ cmake
+ gfortran
+ git
+ jasper-dev
+ jpeg-dev
+ libaec-dev
+ netcdf-dev
+ openjpeg-dev
+ perl
+ py3-numpy
+ python3
+ "
+
+source="
+ eccodes-$pkgver-Source.tar.gz::https://confluence.ecmwf.int/download/attachments/45757960/eccodes-$pkgver-Source.tar.gz?api=v2
+ https://get.ecmwf.int/repository/test-data/eccodes/eccodes_test_data.tar.gz
+"
+
+builddir="$srcdir/$pkgname-$pkgver-Source"
+
+build() {
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
+ -DENABLE_EXTRA_TESTS=ON
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build
+}
+
+package() {
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7fdb34cee0b656ebbecc04d654642b0524eb6e772c1d811471061698f4ec2d31da3be3d66ee697dd3e106f3e8024058b4c165c6dad59868af66a38949c956c77 eccodes-2.32.1-Source.tar.gz
+86767a308841849c7ece006e9f6c68123dc07d8640b038e25529b91ab495d3f10ad5356e9100ef238de6756c67917be13a676f4ab0708fb381021c746e00183e eccodes_test_data.tar.gz
+"
diff --git a/testing/eclib/APKBUILD b/testing/eclib/APKBUILD
new file mode 100644
index 00000000000..e2e50c9b332
--- /dev/null
+++ b/testing/eclib/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=eclib
+pkgver=20231212
+pkgrel=1
+pkgdesc="Tools for creating the elliptic curve databases"
+url="https://github.com/JohnCremona/eclib"
+# armhf, armv7, x86: blocked by pari
+# s390x: blocked by flint
+arch="all !armhf !armv7 !s390x !x86"
+license="GPL-2.0-or-later"
+makedepends="boost-dev flint-dev libntl-dev pari-dev"
+source="https://github.com/JohnCremona/eclib/releases/download/v$pkgver/eclib-$pkgver.tar.bz2"
+subpackages="$pkgname-static $pkgname-dev $pkgname-libs $pkgname-doc"
+
+build() {
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --with-boost=yes \
+ --enable-mpfp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+692aa6bc2a52cd9496700990172b5a807abbd3f8bf8e931de14c48a401d1d383f95fa5def68bbf9a1aee08dfabac608604c0fd6f8bb49b813e6c6c909a2f27a7 eclib-20231212.tar.bz2
+"
diff --git a/testing/eclipse-ecj/10-jar-signature.patch b/testing/eclipse-ecj/10-jar-signature.patch
new file mode 100644
index 00000000000..a1cbc669a74
--- /dev/null
+++ b/testing/eclipse-ecj/10-jar-signature.patch
@@ -0,0 +1,15 @@
+Author: Holger Jaekel <holger.jaekel@gmx.de>
+Summary: remove signature from final JAR
+----
+
+--- a/build.xml
++++ b/build.xml
+@@ -30,8 +30,6 @@
+ <compilerarg line="-Xlint:none --patch-module java.compiler=javax17api.jar"/>
+ </javac>
+
+- <delete file="${basedir}/META-INF/MANIFEST.MF" failonerror="false"/>
+- <copy tofile="${basedir}/META-INF/MANIFEST.MF" file="${basedir}/scripts/binary/META-INF/MANIFEST.MF"/>
+ <zip destfile="${basedir}/${jar_file}">
+ <fileset dir="${output}" />
+ <fileset dir="${basedir}">
diff --git a/testing/eclipse-ecj/20-javac-version.patch b/testing/eclipse-ecj/20-javac-version.patch
new file mode 100644
index 00000000000..53fbcb65604
--- /dev/null
+++ b/testing/eclipse-ecj/20-javac-version.patch
@@ -0,0 +1,15 @@
+Author: Holger Jaekel <holger.jaekel@gmx.de>
+Summary: set javac version to 17
+----
+
+--- a/build.xml
++++ b/build.xml
+@@ -26,7 +26,7 @@
+ <javac srcdir="${basedir}" destdir="${output}"
+ debuglevel="lines,source"
+ debug="true"
+- release="11">
++ release="17">
+ <compilerarg line="-Xlint:none --patch-module java.compiler=javax17api.jar"/>
+ </javac>
+
diff --git a/testing/eclipse-ecj/APKBUILD b/testing/eclipse-ecj/APKBUILD
new file mode 100644
index 00000000000..368d7f7034b
--- /dev/null
+++ b/testing/eclipse-ecj/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=eclipse-ecj
+pkgver=4.26
+_pkgdate=202211231800
+pkgrel=0
+pkgdesc="Eclipse java bytecode compiler"
+url="https://www.eclipse.org/jdt/core/index.php"
+# x86, armhf and armv7 blocked by openjdk17
+# riscv64 blocked by java
+# ppc64le: jdk17 unsupported at 4.25
+arch="noarch !x86 !armv7 !armhf !riscv64 !ppc64le"
+license="EPL-2.0"
+depends="java-common"
+makedepends="apache-ant java-jdk"
+subpackages="$pkgname-doc"
+source="ecjsrc-$pkgver.zip::https://archive.eclipse.org/eclipse/downloads/drops4/R-$pkgver-$_pkgdate/ecjsrc-$pkgver.jar
+ ecj
+ 10-jar-signature.patch
+ 20-javac-version.patch
+ "
+builddir="$srcdir"
+
+build() {
+ ant build
+}
+
+check() {
+ CLASSPATH=$srcdir/ecj.jar ./ecj -v
+}
+
+package() {
+ install -Dm644 "$srcdir/ecj.jar" "$pkgdir/usr/share/java/eclipse-ecj-$pkgver.jar"
+ ln -s eclipse-ecj-$pkgver.jar "$pkgdir/usr/share/java/ecj.jar"
+ ln -s eclipse-ecj-$pkgver.jar "$pkgdir/usr/share/java/eclipse-ecj.jar"
+ install -Dm755 ecj "$pkgdir/usr/bin/ecj"
+ install -D -m 644 ecj.1 "$pkgdir/usr/share/man/man1/ecj.1"
+}
+
+sha512sums="
+e53534160e6a2cdc8c5db7caec617d5671eb59954a86b9dcb36a514024c3205167c8416560796ce61d1aa188f551660f3bfd8eab46fefe9111c8f0b7a977342f ecjsrc-4.26.zip
+17272b6bb21efeada37d60c1831685bc25128eddf55338807861a65c5117b37df8e18373f120f06e7488438d05750592029bf4dc9c74e38bc4159e4dc43dd2bf ecj
+1aaa946994bf0e914820f0ed91d0f1428a25acb02b967d7e267d887eefe31fd009d82660435d75834d986e44a463344b3289a73813379f2474382d5306c548aa 10-jar-signature.patch
+2a9ccd4fd4d1af046fbd6c01e7cc8427b9a1ee1052078672b82094c06dc0c2ac56ba7e6d92f61e57a0333aeeea7d8ac9ef9d5e4dcd98e3cef29a10288fbe7c20 20-javac-version.patch
+"
diff --git a/testing/eclipse-ecj/ecj b/testing/eclipse-ecj/ecj
new file mode 100755
index 00000000000..a162d120f00
--- /dev/null
+++ b/testing/eclipse-ecj/ecj
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+CLASSPATH=/usr/share/java/ecj.jar${CLASSPATH:+:}$CLASSPATH \
+/usr/bin/java org.eclipse.jdt.internal.compiler.batch.Main "$@"
diff --git a/testing/ecm/APKBUILD b/testing/ecm/APKBUILD
new file mode 100644
index 00000000000..63aa22f1052
--- /dev/null
+++ b/testing/ecm/APKBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Cormac Stephenson <c7s@kasku.net>
+pkgname=ecm
+pkgver=7.0.5
+pkgrel=1
+pkgdesc="Elliptic Curve Method for Integer Factorization"
+url="https://gitlab.inria.fr/zimmerma/ecm"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="
+ $pkgname-doc
+ $pkgname-dev
+ libecm
+ "
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="gmp-dev m4"
+source="https://gitlab.inria.fr/zimmerma/ecm/uploads/89f6f0d65d3e980cef33dc922004e4b2/ecm-$pkgver.tar.gz"
+
+build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-shared \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+libecm() {
+ license="LGPL-3.0-or-later"
+ amove usr/lib/libecm.so.*
+}
+
+libecmdev() {
+ license="LGPL-3.0-or-later"
+ default_dev
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f5a482a231339304683adc3334c9b86f21a0d9b42ea871418d4c01005057d560cd418eddfcc1c7be7f8c249960b2ee612a1454ccc5d8e41319b06c6f42e6662e ecm-7.0.5.tar.gz
+"
diff --git a/testing/ecos/APKBUILD b/testing/ecos/APKBUILD
new file mode 100644
index 00000000000..c86c9e6bbe6
--- /dev/null
+++ b/testing/ecos/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=ecos
+pkgver=2.0.10
+pkgrel=0
+pkgdesc="A lightweight conic solver for second-order cone programming"
+url="https://github.com/embotech/ecos"
+arch="all"
+license="GPL-3.0-only"
+makedepends="cmake"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/embotech/ecos/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # cannot get checks to pass
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ $CMAKE_CROSSOPTS .
+ make -C build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ make DESTDIR="$pkgdir" -C build install
+}
+
+sha512sums="
+b79434c194b5681f323b275eff0126f56beba792d270bd1773307cdf33297bee550b13bd2f96f5923dc4b8e200216d897ea01978f65da69dd81f1a669f8fd6e2 ecos-2.0.10.tar.gz
+"
diff --git a/testing/editline/APKBUILD b/testing/editline/APKBUILD
deleted file mode 100644
index 48574520e3c..00000000000
--- a/testing/editline/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=editline
-pkgver=1.17.1
-pkgrel=0
-pkgdesc="A readline() replacement for UNIX without termcap (ncurses)"
-url="https://troglobit.com/projects/editline/"
-arch="all"
-license="Spencer-94"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/troglobit/editline/releases/download/$pkgver/editline-$pkgver.tar.xz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="9b3f5f4a833e9e38c4f99d2e7f8d2716d4db74b6a2d3362e6c513505ff17a79044496405458835d508efd79cbe9046f3c1db602aaad210926312c22057145d35 editline-1.17.1.tar.xz"
diff --git a/testing/edward/0001-editor-fix-current-address-when-moving-a-single-line.patch b/testing/edward/0001-editor-fix-current-address-when-moving-a-single-line.patch
new file mode 100644
index 00000000000..8b9123a6568
--- /dev/null
+++ b/testing/edward/0001-editor-fix-current-address-when-moving-a-single-line.patch
@@ -0,0 +1,60 @@
+From 7f85285e784002921f22db29f6724f10bbea1182 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 17 Aug 2023 07:16:14 +0200
+Subject: [PATCH] editor: fix current address when moving a single line
+
+When moving a single line, we only want to return the destination line.
+---
+ lib/ed/editor.scm | 6 +++++-
+ tests/integration/move-update-current-on-single-line/cmds | 3 +++
+ tests/integration/move-update-current-on-single-line/opts | 1 +
+ .../move-update-current-on-single-line/testdata/input-file | 5 +++++
+ 4 files changed, 14 insertions(+), 1 deletion(-)
+ create mode 100644 tests/integration/move-update-current-on-single-line/cmds
+ create mode 100644 tests/integration/move-update-current-on-single-line/opts
+ create mode 100644 tests/integration/move-update-current-on-single-line/testdata/input-file
+
+diff --git a/lib/ed/editor.scm b/lib/ed/editor.scm
+index ccadd0b..9790407 100644
+--- a/lib/ed/editor.scm
++++ b/lib/ed/editor.scm
+@@ -452,7 +452,11 @@
+ (buffer-move! buffer sline eline dest-line)
+ (min
+ (editor-lines editor)
+- (+ dest-line (inc (- eline sline))))))
++ (let ((diff (- eline sline)))
++ (+ dest-line
++ ;; If we moved multiple lines, we need to increment
++ ;; the destination lines by the amount of lines moved.
++ (if (zero? diff) diff (inc diff)))))))
+
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+diff --git a/tests/integration/move-update-current-on-single-line/cmds b/tests/integration/move-update-current-on-single-line/cmds
+new file mode 100644
+index 0000000..34eb4a1
+--- /dev/null
++++ b/tests/integration/move-update-current-on-single-line/cmds
+@@ -0,0 +1,3 @@
++2m3
++.=
++Q
+diff --git a/tests/integration/move-update-current-on-single-line/opts b/tests/integration/move-update-current-on-single-line/opts
+new file mode 100644
+index 0000000..778c17f
+--- /dev/null
++++ b/tests/integration/move-update-current-on-single-line/opts
+@@ -0,0 +1 @@
++testdata/input-file
+diff --git a/tests/integration/move-update-current-on-single-line/testdata/input-file b/tests/integration/move-update-current-on-single-line/testdata/input-file
+new file mode 100644
+index 0000000..6392fd1
+--- /dev/null
++++ b/tests/integration/move-update-current-on-single-line/testdata/input-file
+@@ -0,0 +1,5 @@
++foo
++bar
++baz
++bla
++blubb
diff --git a/testing/edward/0002-editor-Fix-discarding-of-addrs-for-cmds-expecting-a-.patch b/testing/edward/0002-editor-Fix-discarding-of-addrs-for-cmds-expecting-a-.patch
new file mode 100644
index 00000000000..540669d38c7
--- /dev/null
+++ b/testing/edward/0002-editor-Fix-discarding-of-addrs-for-cmds-expecting-a-.patch
@@ -0,0 +1,65 @@
+From 66979c7d506ab89555cdc281c6ea6f89f92ee87e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Sat, 9 Dec 2023 00:25:10 +0100
+Subject: [PATCH] editor: Fix discarding of addrs for cmds expecting a single
+ addr
+
+Previously, the second address was discarded. That is, the first
+was passed to the command. This is, however, incorrect as addresses
+must be discarded starting at the beginning of an address list.
+
+From POSIX:
+
+ If more than the required number of addresses are provided
+ to a command, the addresses specified first shall be
+ evaluated and then discarded until the maximum number of
+ valid addresses remain, for the specified command.
+
+The addrlst->lpair function also correctly implements this algorithm, it
+is just incorrectly implemented in the editor-xexec function. The
+editor-exec function is fixed in this commit.
+---
+ lib/ed/editor.scm | 2 +-
+ tests/integration/discard-first-addr/cmds | 1 +
+ tests/integration/discard-first-addr/opts | 1 +
+ tests/integration/discard-first-addr/testdata/input-file | 2 ++
+ 4 files changed, 5 insertions(+), 1 deletion(-)
+ create mode 100644 tests/integration/discard-first-addr/cmds
+ create mode 100644 tests/integration/discard-first-addr/opts
+ create mode 100644 tests/integration/discard-first-addr/testdata/input-file
+
+diff --git a/lib/ed/editor.scm b/lib/ed/editor.scm
+index 9790407..f5a7f73 100644
+--- a/lib/ed/editor.scm
++++ b/lib/ed/editor.scm
+@@ -674,7 +674,7 @@
+ ;; or a line pair (depending on default address).
+ (line-addr (if (or (not line-pair) (range? default-addr))
+ line-pair
+- (car line-pair))))
++ (cdr line-pair))))
+ (editor-xexec editor line-addr cmd))))
+
+ ;;> Execute given `cmd` using given `editor` state on the address
+diff --git a/tests/integration/discard-first-addr/cmds b/tests/integration/discard-first-addr/cmds
+new file mode 100644
+index 0000000..752f603
+--- /dev/null
++++ b/tests/integration/discard-first-addr/cmds
+@@ -0,0 +1 @@
++1;/stdout/
+diff --git a/tests/integration/discard-first-addr/opts b/tests/integration/discard-first-addr/opts
+new file mode 100644
+index 0000000..778c17f
+--- /dev/null
++++ b/tests/integration/discard-first-addr/opts
+@@ -0,0 +1 @@
++testdata/input-file
+diff --git a/tests/integration/discard-first-addr/testdata/input-file b/tests/integration/discard-first-addr/testdata/input-file
+new file mode 100644
+index 0000000..3ff8447
+--- /dev/null
++++ b/tests/integration/discard-first-addr/testdata/input-file
+@@ -0,0 +1,2 @@
++{-# LANGUAGE LambdaCase #-}
++import System.IO (hFlush, hPutStrLn, stdout)
diff --git a/testing/edward/APKBUILD b/testing/edward/APKBUILD
new file mode 100644
index 00000000000..8a8feb0913c
--- /dev/null
+++ b/testing/edward/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+pkgname=edward
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Implementation of the ed text editor in Scheme"
+url="https://github.com/nmeum/edward"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="chicken"
+checkdepends="ed"
+subpackages="$pkgname-doc"
+source="https://github.com/nmeum/edward/releases/download/$pkgver/edward-$pkgver.tar.gz
+ 0001-editor-fix-current-address-when-moving-a-single-line.patch
+ 0002-editor-Fix-discarding-of-addrs-for-cmds-expecting-a-.patch"
+
+build() {
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make PREFIX=/usr DESTDIR=$pkgdir install
+}
+
+sha512sums="
+caa9a6dfad20f973d1fdc9615c1cad508d646877ca1a627d36365497ce750a1478f94fc0fb287d0840657a9ec048dba23b83d8f12073016858de9a17de3cd496 edward-1.0.1.tar.gz
+56274b808b63febb4cb2a247e0631612709da48f0e5b5d19fba73535e9dff1ac2492badc36ef9dd2155299afead98d7f65b21958fce82c5fa02d6a2c1abf498f 0001-editor-fix-current-address-when-moving-a-single-line.patch
+4868b138acfe8f0ae75f13e7308c5edacbe3fb79636698c7545ad8454bf80ee9a4eeb7a1c7dfe97ac2bf730277d3b03f35d5f509d01ee607cd1383fd6526b1c0 0002-editor-Fix-discarding-of-addrs-for-cmds-expecting-a-.patch
+"
diff --git a/testing/efl/APKBUILD b/testing/efl/APKBUILD
index a6801bdd00c..83165ae5719 100644
--- a/testing/efl/APKBUILD
+++ b/testing/efl/APKBUILD
@@ -1,53 +1,57 @@
# Contributor: Boris Faure <boris@fau.re>
# Maintainer: Boris Faure <boris@fau.re>
pkgname=efl
-pkgver=1.24.0
-pkgrel=0
+pkgver=1.27.0
+pkgrel=1
pkgdesc="Enlightenment Foundation Libraries"
url="https://www.enlightenment.org"
-arch="all !s390x !mips !mips64" # Missing librsvg
+# ppc64le, riscv64: luajit
+arch="all !ppc64le !riscv64"
license="LGPL-2.1-only"
makedepends="
- meson
- ninja
dbus-dev
+ eudev-dev
fontconfig-dev
freetype-dev
fribidi-dev
giflib-dev
- gstreamer-dev
gst-plugins-base-dev
+ gstreamer-dev
harfbuzz-dev
+ libheif-dev
+ libinput-dev
libjpeg-turbo-dev
- openjpeg-dev
libpng-dev
librsvg-dev
libsndfile-dev
+ libwebp-dev
libx11-dev
- libxkbcommon-dev
libxcomposite-dev
libxcursor-dev
libxdamage-dev
libxinerama-dev
+ libxkbcommon-dev
libxrandr-dev
- libxtst-dev
libxscrnsaver-dev
+ libxtst-dev
luajit-dev
mesa-dev
+ meson
+ openjpeg-dev
openssl-dev
+ pulseaudio-dev
wayland-dev
wayland-protocols
- xorgproto"
+ xorgproto
+ "
options="!check" # Test suite issues
-subpackages="$pkgname-dev"
+subpackages="$pkgname-dev $pkgname-gdb"
source="https://download.enlightenment.org/rel/libs/efl/efl-${pkgver/_/-}.tar.xz"
-#builddir="$srcdir/$pkgname-${pkgver/_alpha1/}"
build() {
- meson \
- --prefix=/usr \
- --libdir /usr/lib \
- --default-library=shared \
+ CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE -D__USE_MISC" \
+ abuild-meson \
+ -Db_lto=true \
-Ddebug=false \
-Doptimization=s \
-Dnls=false \
@@ -60,23 +64,31 @@ build() {
-Dharfbuzz=true \
-Dwl=true \
-Dnetwork-backend=connman \
- -Devas-loaders-disabler=pdf,ps,raw,tiff,json,webp \
+ -Devas-loaders-disabler=pdf,ps,raw,tiff,json,avif,jxl \
-Dphysics=false \
-Dsystemd=false \
-Dpulseaudio=false \
-Davahi=false \
- -Deeze=false \
-Dbindings= \
-Dbuild-examples=false \
-Dbuild-tests=false \
-Decore-imf-loaders-disabler=ibus,scim \
. build
- ninja -C build
+ meson compile -C build
}
package() {
- DESTDIR="$pkgdir" ninja -C build install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+gdb() {
+ pkgdesc="$pkgdesc (gdb integration)"
+ install_if="$pkgname=$pkgver-r$pkgrel gdb"
+
+ amove usr/share/gdb
}
-sha512sums="a3415e79eb0d13c1393f80728527d2b663b35e1b9ec815fadd0b43d754320ee8461aeade781b0264853e7935e920df7a5cc0b438c6b8a15a5744380a32f55080 efl-1.24.0.tar.xz"
+sha512sums="
+5dda2f630463a2504d9246be17449579bbc470904e137b02b3b5c44db033dec2688f6c477885de1485944d875ee62619b6e7c5d4d3657225951f6feaf83b4fa4 efl-1.27.0.tar.xz
+"
diff --git a/testing/eiwd/0001-resolving-service-none.patch b/testing/eiwd/0001-resolving-service-none.patch
new file mode 100644
index 00000000000..09851a53e95
--- /dev/null
+++ b/testing/eiwd/0001-resolving-service-none.patch
@@ -0,0 +1,37 @@
+--- a/src/resolve.c
++++ b/src/resolve.c
+@@ -621,7 +621,7 @@ static int resolve_init(void)
+ method_name = l_settings_get_value(iwd_get_config(), "Network",
+ "NameResolvingService");
+ if (!method_name)
+- method_name = "resolvconf";
++ method_name = "none";
+
+ for (i = 0; resolve_method_ops_list[i].name; i++) {
+ if (strcmp(resolve_method_ops_list[i].name, method_name))
+--- a/src/iwd.config.rst
++++ b/src/iwd.config.rst
+@@ -226,7 +226,7 @@ The group ``[Network]`` contains network
+ by default. This setting can also be overridden on a per-network basis.
+
+ * - NameResolvingService
+- - Values: resolvconf, **systemd**, none
++ - Values: resolvconf, systemd, **none**
+
+ Configures a DNS resolution method used by the system.
+
+@@ -234,10 +234,11 @@ The group ``[Network]`` contains network
+ ``EnableNetworkConfiguration`` and provides the choice of system
+ resolver integration.
+
+- If not specified, ``systemd`` is used as default.
++ If not specified, ``none`` is used as default and DNS and domain name
++ information is ignored.
+
+- If ``none`` is specified, then DNS and domain name information is
+- ignored.
++ In Alpine Linux, ``resolvconf`` requires the openresolv aport to be
++ installed.
+
+ * - RoutePriorityOffset
+ - Values: uint32 value (default: **300**)
diff --git a/testing/eiwd/APKBUILD b/testing/eiwd/APKBUILD
new file mode 100644
index 00000000000..e6971e51c00
--- /dev/null
+++ b/testing/eiwd/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=eiwd
+_realpkgname=iwd
+pkgver=2.16
+pkgrel=0
+pkgdesc="Internet Wireless Daemon without dbus"
+url="https://github.com/illiliti/eiwd"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="!iwd"
+replaces="iwd"
+options="!check" # doesn't work because of eapol issue
+makedepends="linux-headers readline-dev"
+checkdepends="coreutils"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/illiliti/eiwd/releases/download/$pkgver-1/iwd-$pkgver.tar.xz
+ 0001-resolving-service-none.patch
+ eiwd.initd
+ main.conf
+ iwd_passphrase
+ "
+builddir="$srcdir/iwd-$pkgver"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-systemd-service \
+ --disable-dbus
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -m750 -d "$pkgdir"/var/lib/$_realpkgname
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/main.conf \
+ "$pkgdir"/etc/$_realpkgname/main.conf
+ install -m755 -D "$srcdir"/iwd_passphrase \
+ "$pkgdir"/usr/bin
+}
+
+sha512sums="
+4c8c4e0bc63d1e24a93b6150993fac25d74c2b7ada5d4324c2aaf563899a1cb22d880ad332750a9fa3ededfacb90bb23d198aea4321d6a524d116c26e314a7c4 iwd-2.16.tar.xz
+aff4cd6bf4ae72aa64f9f5485bd310633f5219eb71532a8c0fa9a05abaaf50f7636a70a63e533370cd12a702854340e18b27b0537b26ead846fa9c351ec03b42 0001-resolving-service-none.patch
+b78d19f5a3ef5f12d33b4fab11ed348b1b2fe309310c33fe278d302cadf065dba72c13214bd760576ecb47f6681d012adcb4997e17a75778d41e3c4fd6a0eb01 eiwd.initd
+33517c2c72c43440ed2e68e53bb937d7d557efdf19a6f7fa9cceb87be4b64499f8b9bd6f981f5e413dc3d724eb13ec08b50a129dd81cf64872c362fc5e1d1321 main.conf
+06d0258e9e4d13a5cd7cb47cc30c122e2ea950c84b18352fef4982bef41961295316de396b7e6d0a33b949436da40d08fdd76230c7c228d8bdd0e33751cad26c iwd_passphrase
+"
diff --git a/testing/eiwd/eiwd.confd b/testing/eiwd/eiwd.confd
new file mode 100644
index 00000000000..bf771adcd3a
--- /dev/null
+++ b/testing/eiwd/eiwd.confd
@@ -0,0 +1,24 @@
+# Configuration for /etc/init.d/eiwd
+
+# A comma-separated list of patterns specifying the network interfaces that
+# eiwd is allowed to manage. Defaults to any wireless interfaces.
+#allowed_interfaces=
+
+# A comma-separated list of patterns specifying the network interfaces that
+# eiwd should ignore.
+#ignored_interfaces=
+
+# Extra options for eiwd(8).
+#command_args=
+
+# Log messages are redirected to syslog. Set to empty string to disable.
+#error_logger="logger -t eiwd -p daemon.info >/dev/null 2>&1"
+
+# Number of milliseconds to wait after starting and check that daemon is
+# still running. Set to empty string to disable.
+# NOTE: If you use eiwd together with ConnMan and ConnMan crashes when started
+# right after eiwd, increase this period to e.g. 200 ms.
+#start_wait=50
+
+# Uncomment to use process supervisor.
+# supervisor="supervise-daemon"
diff --git a/testing/eiwd/eiwd.initd b/testing/eiwd/eiwd.initd
new file mode 100644
index 00000000000..b72f5e8583f
--- /dev/null
+++ b/testing/eiwd/eiwd.initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+
+description="iNet wireless daemon without dbus"
+
+: ${error_logger="logger -t eiwd -p daemon.info >/dev/null 2>&1"}
+: ${start_wait=50} # milliseconds
+
+command="/usr/libexec/iwd"
+command_background="yes"
+command_args="
+ ${allowed_interfaces:+"--interfaces \"$allowed_interfaces\""}
+ ${ignored_interfaces:+"--nointerfaces \"$ignored_interfaces\""}
+ ${command_args:-}
+ "
+start_stop_daemon_args="
+ ${start_wait:+--wait $start_wait}
+ ${start_stop_daemon_args:-}
+ "
+pidfile="/run/iwd.pid"
+
+depend() {
+ before net
+ keyword -shutdown
+ provide wlan
+}
diff --git a/testing/eiwd/iwd_passphrase b/testing/eiwd/iwd_passphrase
new file mode 100644
index 00000000000..cf100dd4aef
--- /dev/null
+++ b/testing/eiwd/iwd_passphrase
@@ -0,0 +1,34 @@
+#!/bin/sh
+#
+# Simple script to generate iwd network files.
+
+[ "$1" ] || {
+ printf '%s\n' "usage: printf pass | ${0##*/} ssid" >&2
+ exit 1
+}
+
+# Read the password from 'stdin'.
+read -r pass; [ "$pass" ] || exit 1
+
+# Consider all characters as single-byte.
+export LC_CTYPE=C
+
+# The SSID appears verbatim in the name if it contains
+# only alphanumeric characters, spaces, underscores or
+# minus signs. Otherwise it is encoded as an equal sign
+# followed by the lower-case hex encoding of the name.
+case $1 in
+ *[!A-Za-z0-9_' '-]*)
+ ssid="=$(printf %s "$1" | od -vA n -t x1 | tr -d '\n ')"
+ ;;
+
+ *)
+ ssid=$1
+ ;;
+esac
+
+printf '%s\n\n' "Save this output to /var/lib/iwd/$ssid.psk" >&2
+printf '[Security]\n'
+printf 'Passphrase=%s\n' "$pass"
+printf '\nTIP: You can use this output directly as the\n' >&2
+printf ' help messages are printed to stderr.\n' >&2
diff --git a/testing/eiwd/main.conf b/testing/eiwd/main.conf
new file mode 100644
index 00000000000..79b81a06f29
--- /dev/null
+++ b/testing/eiwd/main.conf
@@ -0,0 +1,36 @@
+# Note: The lines starting with # are ignored. To enable any of the
+# configuration options below, remove # from the beginning of a respective line.
+
+# this file is not distributed upstream as of iwd 1.0 version
+# It is created as transitional config from latest version
+# Please read iwd.config(5), iwd.network(5), iwctl(1), iwmon(1) before setting
+# these parameters below
+
+[EAP]
+mtu=1400
+
+[General]
+UseDefaultInterface=True
+EnableNetworkConfiguration=True
+ControlPortOverNL80211=True
+AddressRandomization=none
+#AddressRandomization=network
+#RoamThreshold=-70
+
+EnableIPv6=true
+
+[Network]
+
+NameResolvingService=resolvconf
+
+[Scan]
+
+DisablePeriodicScan=false
+DisableRoamingScan=true
+
+#[Blacklist]
+
+#[Rank]
+
+# BandModifier5Ghz=1.0
+
diff --git a/testing/ejabberd/APKBUILD b/testing/ejabberd/APKBUILD
deleted file mode 100644
index c4ac368704a..00000000000
--- a/testing/ejabberd/APKBUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: John Regan <john@jrjrtech.com>
-pkgname=ejabberd
-pkgver=17.09
-pkgrel=5
-pkgdesc="An erlang jabber server"
-url="https://www.ejabberd.im/"
-arch="all !mips !mips64" # blocked by erlang
-license="GPL-2.0-or-later"
-_erl_deps="erlang-asn1 erlang-crypto erlang-eldap erlang-mnesia
- erlang-public-key erlang-sasl erlang-ssl erlang-syntax-tools
- "
-_erl_make_deps="erlang-eunit erlang-parsetools"
-depends="erlang util-linux yaml $_erl_deps"
-depends_dev="erlang-dev expat-dev openssl-dev zlib-dev heimdal-dev yaml-dev git"
-makedepends="$depends_dev $_erl_make_deps automake autoconf gd-dev
- libjpeg-turbo-dev libpng-dev libwebp-dev"
-pkgusers="ejabberd"
-pkggroups="ejabberd"
-install="$pkgname.pre-install"
-options="!check" # test suite requires all kinds of services running
-subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/processone/$pkgname/archive/$pkgver.tar.gz
- https://github.com/processone/fast_tls/archive/1.0.7.tar.gz
- ejabberd.initd
- ejabberd.logrotate
- ejabberd.confd
- makefile.patch
- "
-
-prepare() {
- mkdir deps
- mv "$srcdir"/fast_tls-1.0.7 "$builddir"/deps/fast_tls
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- install -d ${pkgdir}/var/spool/$pkgname
- install -d ${pkgdir}/var/lib/$pkgname
- install -D -m0644 "$srcdir"/$pkgname.logrotate \
- ${pkgdir}/etc/logrotate.d/$pkgname
- install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
- chown -R ejabberd.ejabberd "$pkgdir"/var/log/ejabberd
- chown -R ejabberd.ejabberd "$pkgdir"/var/spool/ejabberd
- chown -R ejabberd.ejabberd "$pkgdir"/var/lib/ejabberd
- chgrp ejabberd "$pkgdir"/etc/ejabberd/ejabberd.yml \
- "$pkgdir"/etc/ejabberd/ejabberdctl.cfg "$pkgdir"/etc/ejabberd
-}
-
-sha512sums="3eb253642d6688bbe93d0a1234ac29725ed02ed929a1b87a8424e9d01b2200eb174192cd164ba2c31fb8082e92b2886e4068effa504f66025809685867ba90f0 ejabberd-17.09.tar.gz
-46a3ebab09ec5e18b086c8c3e2a87a5d6a35e406e8988c48979d94c3e303d5f9a8bcdb1e8ce74266ba8c59fbb4a4310e445f5ad65f072d28a7b44a0bdec50b62 1.0.7.tar.gz
-e2310e1b5b471e5c27ce2ec5d5fc6549656f9f49ba1d65a515ebc3af6d3237a461894c6c4c55c8c6eb1b9be0b01573057591ead51eb9014f5cf1258d387c9fc8 ejabberd.initd
-47fd2cfd9177c4e978a9799a153ba74392a9891822221af8194686a40f6bf01f38644833e1e1f5416c6357e0bfb7ca3dae96f55a4fcd7cd629ec798d85a72807 ejabberd.logrotate
-96a571c0ab2be366e931bda423a61ef920cbaba2107e61ddbc501472ce3efe2804418cc6579c99310b902a9a99aaecb9284cf2420c071dbca2f670efb4034135 ejabberd.confd
-36eacec7780ed95ffc310db30e34f9d5ba8ead65f8fc44fb06c7d825f7252effad83e07c4a010e65b80a63f4a1d985290e8a489906a8c225c306f5b5b642ce36 makefile.patch"
diff --git a/testing/ejabberd/ejabberd.confd b/testing/ejabberd/ejabberd.confd
deleted file mode 100644
index b92757ac4d0..00000000000
--- a/testing/ejabberd/ejabberd.confd
+++ /dev/null
@@ -1,5 +0,0 @@
-# Please configure everything at /etc/ejabberd/ejabberdctl.cfg
-# Put here only command line arguments for ejabberdctl (if any are required)
-
-#EJABBERDCTL_OPTS=""
-
diff --git a/testing/ejabberd/ejabberd.initd b/testing/ejabberd/ejabberd.initd
deleted file mode 100644
index eea73f11725..00000000000
--- a/testing/ejabberd/ejabberd.initd
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/files/ejabberd-3.initd,v 1.3 2010/06/02 07:12:27 pva Exp $
-
-depend() {
- use dns
- need net
- provide jabber-server
-}
-
-start() {
- if ejabberdctl status >/dev/null 2>&1; then
- ewarn "ejabberd is already started (manually?)."
- return 0
- fi
- ebegin "Starting ejabberd"
- /usr/sbin/ejabberdctl ${EJABBERDCTL_OPT} start
- eend $?
-}
-
-stop() {
- ejabberdctl status >/dev/null 2>&1
- if test $? = 3; then
- ewarn "ejabberd is already stopped (manually?)."
- return 0
- fi
- ebegin "Stopping ejabberd"
- if /usr/sbin/ejabberdctl stop >/dev/null 2>&1; then
- cnt=0
- sleep 1
- while ejabberdctl status >/dev/null 2>&1 || test $? = 1; do
- echo -n .
- cnt=`expr $cnt + 1`
- if [ $cnt -ge 60 ] ; then
- eend 1
- break
- fi
- sleep 1
- done
- eend 0
- else
- eend 1
- einfo "Please, run '/usr/sbin/ejabberdctl stop' to see what's going on."
- fi
- eend 0
-}
diff --git a/testing/ejabberd/ejabberd.logrotate b/testing/ejabberd/ejabberd.logrotate
deleted file mode 100644
index 03069078aa7..00000000000
--- a/testing/ejabberd/ejabberd.logrotate
+++ /dev/null
@@ -1,12 +0,0 @@
-/var/log/ejabberd/ejabberd.log {
- weekly
- missingok
- rotate 10
- compress
- delaycompress
- ifempty
- nomail
- sharedscripts
- postrotate ejabberdctl --node ejabberd reopen-log > /dev/null
- endscript
-}
diff --git a/testing/ejabberd/ejabberd.pre-install b/testing/ejabberd/ejabberd.pre-install
deleted file mode 100644
index 58a48d78d38..00000000000
--- a/testing/ejabberd/ejabberd.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S ejabberd 2>/dev/null
-adduser -S -D -H -h /var/lib/ejabberd -G ejabberd -g ejabberd ejabberd 2>/dev/null
-
-exit 0
diff --git a/testing/ejabberd/makefile.patch b/testing/ejabberd/makefile.patch
deleted file mode 100644
index 4d853d8f089..00000000000
--- a/testing/ejabberd/makefile.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile.in b/Makefile.in
-index 0d91344..1276950 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -87,6 +87,7 @@ deps/.got:
- $(REBAR) get-deps && :> deps/.got
-
- deps/.built: deps/.got
-+ $(SED) -i -e "23 i#include \<stdint.h\>" deps/stringprep/c_src/stringprep.cpp
- $(REBAR) compile && :> deps/.built
-
- src: deps/.built
diff --git a/testing/ejson/APKBUILD b/testing/ejson/APKBUILD
deleted file mode 100644
index 2e043cdd8f4..00000000000
--- a/testing/ejson/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Maintainer: Andy McLeod <andy@amcleod.ca>
-pkgname=ejson
-pkgver=1.2.1
-pkgrel=4
-pkgdesc="EJSON is a small library to manage encrypted secrets using asymmetric encryption."
-url="https://github.com/Shopify/ejson"
-arch="all"
-license="MIT"
-depends="mandoc" # Requires man to show help
-makedepends="go ronn"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Shopify/$pkgname/archive/v$pkgver.tar.gz"
-
-_gourl=github.com/Shopify/ejson
-builddir="$srcdir"/src/$_gourl
-
-prepare() {
- mkdir -p "${builddir%/*}"
- mv "$srcdir"/$pkgname-$pkgver "$builddir"
- default_prepare
-}
-
-build() {
- export GOPATH="$srcdir"
- CGO_ENABLED=0 go build -v -o e${pkgname} github.com/Shopify/ejson/cmd/ejson
-
- # Overwrite bundle exec so it runs our ronn command from the system not
- # from some rubygems repo
- sed -i 's|^BUNDLE_EXEC=.*|BUNDLE_EXEC=exec|' Makefile
- make man
-}
-
-check() {
- go test -v ./...
-}
-
-package() {
- install -Dm755 e${pkgname} "$pkgdir"/usr/bin/ejson
-
- # Keep this in the main package, ejson calls into 'man' to show
- # the help string
- mkdir -p "$pkgdir"/usr/share
- mv build/man "$pkgdir"/usr/share/man/
-}
-sha512sums="cd49e70b1578f0f960b6d6d77499297bcee7eac3b8595109757697ef844ba8867c353e257105af9b90fdbcca3a08445ae0c9b666c7bc6db26ab7303b5834c5bd ejson-1.2.1.tar.gz"
diff --git a/testing/elastic-beats/APKBUILD b/testing/elastic-beats/APKBUILD
new file mode 100644
index 00000000000..37f3a6fba10
--- /dev/null
+++ b/testing/elastic-beats/APKBUILD
@@ -0,0 +1,152 @@
+# Contributor: Ramanathan Sivagurunathan <ramzthecoder@gmail.com>
+# Maintainer:
+pkgname=elastic-beats
+pkgver=8.13.1
+pkgrel=1
+pkgdesc="Lightweight shippers for Elasticsearch & Logstash"
+url="https://www.elastic.co/products/beats"
+# riscv64: https://github.com/elastic/go-concert/issues/51
+# s390x: doesn't build
+# 32-bit: not useful
+arch="all !s390x !armhf !armv7 !x86 !riscv64"
+license="Apache-2.0"
+makedepends="
+ go
+ mage
+ python3
+ "
+subpackages="
+ filebeat
+ filebeat-openrc:filebeat_openrc:noarch
+ metricbeat
+ metricbeat-openrc:metricbeat_openrc:noarch
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/elastic/beats/archive/refs/tags/v$pkgver.tar.gz
+ filebeat.initd
+ filebeat.confd
+ metricbeat.initd
+ metricbeat.confd
+ "
+builddir="$srcdir/beats-$pkgver"
+options="net" # go
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+case "$CARCH" in
+x86_64) ;;
+# flaky elsewhere
+*) options="$options !check" ;;
+esac
+
+prepare() {
+ default_prepare
+
+ git init -q
+ git config user.email "example@example.com"
+ git config user.name "example"
+ git add .
+ git commit -q -m "init"
+ git tag "v$pkgver"
+}
+
+build() {
+ mkdir -p bin
+
+ # just these two for now
+ (
+ msg "building filebeat"
+ cd filebeat
+ # mage build
+ go build -o filebeat main.go
+ # mage update
+ )
+ (
+ msg "building metricbeat"
+ cd metricbeat
+ # mage build
+ go build -o metricbeat main.go
+ # fails in some random step presently
+ # mage update || :
+ )
+}
+
+check() {
+ msg "testing filebeat"
+ # shellcheck disable=2046
+ go test $(go list ./filebeat/... | grep -Ev '(journald|inputsource/unix)')
+ msg "testing metricbeat"
+ # shellcheck disable=2046
+ go test $(go list ./metricbeat/... | grep -Ev '(module/system/service)')
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/metricbeat "$pkgdir"/usr/share/filebeat
+
+ install -Dm644 \
+ filebeat/filebeat.yml \
+ filebeat/filebeat.reference.yml \
+ -t "$pkgdir"/etc/filebeat
+ cp -r filebeat/modules.d "$pkgdir"/etc/filebeat/
+ cp -r filebeat/module "$pkgdir"/usr/share/filebeat/
+
+ install -Dm644 \
+ metricbeat/metricbeat.yml \
+ metricbeat/metricbeat.reference.yml \
+ -t "$pkgdir"/etc/metricbeat
+ cp -r metricbeat/modules.d "$pkgdir"/etc/metricbeat/
+ cp -r metricbeat/module "$pkgdir"/usr/share/metricbeat/
+
+ # remove random stuff
+ local elf; scanelf -BRA -F "%F" "$pkgdir"/usr/share | while read -r elf; do
+ rm -v "$elf"
+ done
+
+ install -Dm755 \
+ filebeat/filebeat \
+ metricbeat/metricbeat \
+ -t "$pkgdir"/usr/bin/
+}
+
+filebeat() {
+ pkgdesc="FileBeat - Lightweight shipper for logs"
+
+ amove \
+ usr/bin/filebeat \
+ etc/filebeat \
+ usr/share/filebeat
+}
+
+filebeat_openrc() {
+ pkgdesc="FileBeat - Lightweight shipper for logs (OpenRC service files)"
+ install_if="filebeat=$pkgver-r$pkgrel openrc"
+
+ install -Dm755 "$srcdir"/filebeat.initd "$subpkgdir"/etc/init.d/filebeat
+ install -Dm644 "$srcdir"/filebeat.confd "$subpkgdir"/etc/conf.d/filebeat
+}
+
+metricbeat() {
+ pkgdesc="MetricBeat - Lightweight shipper for system and service statistics"
+
+ amove \
+ usr/bin/metricbeat \
+ etc/metricbeat \
+ usr/share/metricbeat
+}
+
+metricbeat_openrc() {
+ pkgdesc="MetricBeat - Lightweight shipper for system and service statistics (OpenRC service files)"
+ install_if="metricbeat=$pkgver-r$pkgrel openrc"
+
+ install -Dm755 "$srcdir"/metricbeat.initd "$subpkgdir"/etc/init.d/metricbeat
+ install -Dm644 "$srcdir"/metricbeat.confd "$subpkgdir"/etc/conf.d/metricbeat
+}
+
+sha512sums="
+490081cedfab4bb19b62314106eb93ec2adb5ab53779c56aab630fd2d573a2d46f7476bf7cc3474eb5bfa5f33801303f955b82a456f21af477cfb2e0da782edf elastic-beats-8.13.1.tar.gz
+526b149419cf51e21ab4b7b49b208dbef81571afd04f2c40ab05297d5eb4b03e64e6c7a06d1acf8771b7b0664a552082ce6f50d5cbc4218aca810440d6185990 filebeat.initd
+f6168b10da75919cf16b2a32a5b25847e9e49aaea7415e49d2644960fc586c60714754cbe60f5a6d290cd7b9f8d3fd86287e46e63891825feb82f747e235d58d filebeat.confd
+4736fab0119bea080cb5a938d0b40e803967cbfac373d1b714a43176032ea36b9865f3c6658e33ff6befa150ccdf6ddcbfcf59bd31e4ae961d075623eac80ea6 metricbeat.initd
+a81cd8a99acd9086b78f36113f08f8fb91373144dc51aa6b4235362e25bc4ff3b1f5ebfe6efe272a106a73d16c1c9d23dd1da6645074d4fd2d3b8713b6071f68 metricbeat.confd
+"
diff --git a/testing/elastic-beats/filebeat.confd b/testing/elastic-beats/filebeat.confd
new file mode 100644
index 00000000000..2aa592694ea
--- /dev/null
+++ b/testing/elastic-beats/filebeat.confd
@@ -0,0 +1,5 @@
+# Filebeat startup
+filebeat_opts="-c /etc/filebeat/filebeat.yml -e"
+
+# comment to not use process supervisor
+supervisor=supervise-daemon
diff --git a/testing/elastic-beats/filebeat.initd b/testing/elastic-beats/filebeat.initd
new file mode 100644
index 00000000000..036fc9c5bdf
--- /dev/null
+++ b/testing/elastic-beats/filebeat.initd
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+
+name=filebeat
+description="FileBeat - Lightweight shipper for logs"
+command=/usr/bin/filebeat
+command_args="$filebeat_opts"
+command_background=true
+pidfile=/run/${RC_SVCNAME}.pid
+output_log=/var/log/${RC_SVCNAME}.log
+error_log=/var/log/${RC_SVCNAME}.log
+
+extra_commands="checkconfig"
+description_checkconfig="Verify configuration file"
+
+start_pre() {
+ checkpath -f -m 0644 "$output_log"
+}
+
+depend() {
+ need net
+ after firewall
+}
+
+checkconfig() {
+ $command test config -c /etc/filebeat/filebeat.yml
+}
+
+start_pre() {
+ ebegin "checking configuration"
+ checkconfig
+}
diff --git a/testing/elastic-beats/metricbeat.confd b/testing/elastic-beats/metricbeat.confd
new file mode 100644
index 00000000000..04f5d195a82
--- /dev/null
+++ b/testing/elastic-beats/metricbeat.confd
@@ -0,0 +1,5 @@
+# Metricbeat startup
+metricbeat_opts="-c /etc/metricbeat/metricbeat.yml -e"
+
+# comment to not use process supervisor
+supervisor=supervise-daemon
diff --git a/testing/elastic-beats/metricbeat.initd b/testing/elastic-beats/metricbeat.initd
new file mode 100644
index 00000000000..5d84faed3bc
--- /dev/null
+++ b/testing/elastic-beats/metricbeat.initd
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+
+name=metricbeat
+description="MetricBeat - Lightweight shipper for system and service statistics"
+command=/usr/bin/metricbeat
+command_args="$metricbeat_opts"
+command_background=true
+pidfile=/run/${RC_SVCNAME}.pid
+output_log=/var/log/${RC_SVCNAME}.log
+error_log=/var/log/${RC_SVCNAME}.log
+
+extra_commands="checkconfig"
+description_checkconfig="Verify configuration file"
+
+start_pre() {
+ checkpath -f -m 0644 "$output_log"
+}
+
+depend() {
+ need net
+ after firewall
+}
+
+checkconfig() {
+ $command test config -c /etc/metricbeat/metricbeat.yml
+}
+
+start_pre() {
+ ebegin "checking configuration"
+ checkconfig
+}
diff --git a/testing/electron-tasje/APKBUILD b/testing/electron-tasje/APKBUILD
new file mode 100644
index 00000000000..71648c7b8aa
--- /dev/null
+++ b/testing/electron-tasje/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=electron-tasje
+pkgver=0.7.1
+pkgrel=0
+pkgdesc="Tiny replacement for electron-builder"
+url="https://codeberg.org/selfisekai/electron_tasje/"
+arch="aarch64 x86_64" # only useful on platforms with electron
+license="Apache-2.0 OR MIT"
+makedepends="cargo cargo-auditable"
+source="electron_tasje-${_rev:-"$pkgver"}.tar.gz::https://codeberg.org/selfisekai/electron_tasje/archive/${_rev:-"v$pkgver"}.tar.gz"
+builddir="$srcdir/electron_tasje"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test
+}
+
+package() {
+ install -Dm755 target/release/tasje "$pkgdir"/usr/bin/tasje
+}
+
+sha512sums="
+665ccbd6cb357c25d55daed4ad3b3ce008da258054951d9d069a5b12e72dd5812d534f906868e6b18e78949f058069a961c394c6f21ab3b3fab5393c330445e5 electron_tasje-0.7.1.tar.gz
+"
diff --git a/testing/electron/0001-src-fix-HasOnly-capability-in-node-credentials.patch b/testing/electron/0001-src-fix-HasOnly-capability-in-node-credentials.patch
new file mode 100644
index 00000000000..616f0f06c2b
--- /dev/null
+++ b/testing/electron/0001-src-fix-HasOnly-capability-in-node-credentials.patch
@@ -0,0 +1,55 @@
+From 0a26dd24fd73f5f5a34b4ba8d1441dbf3a426b3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= <tniessen@tnie.de>
+Date: Sat, 4 Nov 2023 00:39:57 +0000
+Subject: [PATCH 1/6] src: fix HasOnly(capability) in node::credentials
+
+SYS_capget with _LINUX_CAPABILITY_VERSION_3 returns the process's
+permitted capabilities as two 32-bit values. To determine if the only
+permitted capability is indeed CAP_NET_BIND_SERVICE, it is necessary to
+check both of those values.
+
+Not doing so creates a vulnerability that potentially allows
+unprivileged users to inject code into a privileged Node.js process
+through environment variables such as NODE_OPTIONS.
+
+PR-URL: https://github.com/nodejs-private/node-private/pull/505
+Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
+CVE-ID: CVE-2024-21892
+---
+ src/node_credentials.cc | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/third_party/electron_node/src/node_credentials.cc b/third_party/electron_node/src/node_credentials.cc
+index 52abaab7a6..f2980007b9 100644
+--- a/third_party/electron_node/src/node_credentials.cc
++++ b/third_party/electron_node/src/node_credentials.cc
+@@ -52,7 +52,7 @@ namespace credentials {
+ bool HasOnly(int capability) {
+ DCHECK(cap_valid(capability));
+
+- struct __user_cap_data_struct cap_data[2];
++ struct __user_cap_data_struct cap_data[_LINUX_CAPABILITY_U32S_3];
+ struct __user_cap_header_struct cap_header_data = {
+ _LINUX_CAPABILITY_VERSION_3,
+ getpid()};
+@@ -61,12 +61,11 @@ bool HasOnly(int capability) {
+ if (syscall(SYS_capget, &cap_header_data, &cap_data) != 0) {
+ return false;
+ }
+- if (capability < 32) {
+- return cap_data[0].permitted ==
+- static_cast<unsigned int>(CAP_TO_MASK(capability));
+- }
+- return cap_data[1].permitted ==
+- static_cast<unsigned int>(CAP_TO_MASK(capability));
++
++ static_assert(arraysize(cap_data) == 2);
++ return cap_data[CAP_TO_INDEX(capability)].permitted ==
++ static_cast<unsigned int>(CAP_TO_MASK(capability)) &&
++ cap_data[1 - CAP_TO_INDEX(capability)].permitted == 0;
+ }
+ #endif
+
+--
+2.43.1
+
diff --git a/testing/electron/0002-http-add-maximum-chunk-extension-size.patch b/testing/electron/0002-http-add-maximum-chunk-extension-size.patch
new file mode 100644
index 00000000000..fec3ff67bd4
--- /dev/null
+++ b/testing/electron/0002-http-add-maximum-chunk-extension-size.patch
@@ -0,0 +1,273 @@
+From 01d3bb793a5ef3bf0a36dde868626869e09fb558 Mon Sep 17 00:00:00 2001
+From: Paolo Insogna <paolo@cowtech.it>
+Date: Wed, 3 Jan 2024 07:23:15 +0100
+Subject: [PATCH] http: add maximum chunk extension size
+
+PR-URL: https://github.com/nodejs-private/node-private/pull/519
+Fixes: https://hackerone.com/reports/2233486
+Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
+Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
+Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
+CVE-ID: CVE-2024-22019
+---
+ doc/api/errors.md | 12 ++
+ lib/_http_server.js | 8 ++
+ src/node_http_parser.cc | 23 ++-
+ .../test-http-chunk-extensions-limit.js | 131 ++++++++++++++++++
+ 4 files changed, 171 insertions(+), 3 deletions(-)
+ create mode 100644 test/parallel/test-http-chunk-extensions-limit.js
+
+diff --git a/third_party/electron_node/doc/api/errors.md b/third_party/electron_node/doc/api/errors.md
+index 95ad3c9c671..9429baff516 100644
+--- a/third_party/electron_node/doc/api/errors.md
++++ b/third_party/electron_node/doc/api/errors.md
+@@ -3140,6 +3140,18 @@ malconfigured clients, if more than 8 KiB of HTTP header data is received then
+ HTTP parsing will abort without a request or response object being created, and
+ an `Error` with this code will be emitted.
+
++<a id="HPE_CHUNK_EXTENSIONS_OVERFLOW"></a>
++
++### `HPE_CHUNK_EXTENSIONS_OVERFLOW`
++
++<!-- YAML
++added: REPLACEME
++-->
++
++Too much data was received for a chunk extensions. In order to protect against
++malicious or malconfigured clients, if more than 16 KiB of data is received
++then an `Error` with this code will be emitted.
++
+ <a id="HPE_UNEXPECTED_CONTENT_LENGTH"></a>
+
+ ### `HPE_UNEXPECTED_CONTENT_LENGTH`
+diff --git a/third_party/electron_node/lib/_http_server.js b/third_party/electron_node/lib/_http_server.js
+index c62ea175995..c512653e60e 100644
+--- a/third_party/electron_node/lib/_http_server.js
++++ b/third_party/electron_node/lib/_http_server.js
+@@ -857,6 +857,11 @@ const requestHeaderFieldsTooLargeResponse = Buffer.from(
+ 'Connection: close\r\n\r\n', 'ascii',
+ );
+
++const requestChunkExtensionsTooLargeResponse = Buffer.from(
++ `HTTP/1.1 413 ${STATUS_CODES[413]}\r\n` +
++ 'Connection: close\r\n\r\n', 'ascii',
++);
++
+ function warnUnclosedSocket() {
+ if (warnUnclosedSocket.emitted) {
+ return;
+@@ -892,6 +897,9 @@ function socketOnError(e) {
+ case 'HPE_HEADER_OVERFLOW':
+ response = requestHeaderFieldsTooLargeResponse;
+ break;
++ case 'HPE_CHUNK_EXTENSIONS_OVERFLOW':
++ response = requestChunkExtensionsTooLargeResponse;
++ break;
+ case 'ERR_HTTP_REQUEST_TIMEOUT':
+ response = requestTimeoutResponse;
+ break;
+diff --git a/third_party/electron_node/src/node_http_parser.cc b/third_party/electron_node/src/node_http_parser.cc
+index a12d89c3cd6..c190eace435 100644
+--- a/third_party/electron_node/src/node_http_parser.cc
++++ b/third_party/electron_node/src/node_http_parser.cc
+@@ -79,6 +79,8 @@ const uint32_t kOnExecute = 5;
+ const uint32_t kOnTimeout = 6;
+ // Any more fields than this will be flushed into JS
+ const size_t kMaxHeaderFieldsCount = 32;
++// Maximum size of chunk extensions
++const size_t kMaxChunkExtensionsSize = 16384;
+
+ const uint32_t kLenientNone = 0;
+ const uint32_t kLenientHeaders = 1 << 0;
+@@ -261,6 +263,7 @@ class Parser : public AsyncWrap, public StreamListener {
+
+ num_fields_ = num_values_ = 0;
+ headers_completed_ = false;
++ chunk_extensions_nread_ = 0;
+ last_message_start_ = uv_hrtime();
+ url_.Reset();
+ status_message_.Reset();
+@@ -516,9 +519,22 @@ class Parser : public AsyncWrap, public StreamListener {
+ return 0;
+ }
+
+- // Reset nread for the next chunk
++ int on_chunk_extension(const char* at, size_t length) {
++ chunk_extensions_nread_ += length;
++
++ if (chunk_extensions_nread_ > kMaxChunkExtensionsSize) {
++ llhttp_set_error_reason(&parser_,
++ "HPE_CHUNK_EXTENSIONS_OVERFLOW:Chunk extensions overflow");
++ return HPE_USER;
++ }
++
++ return 0;
++ }
++
++ // Reset nread for the next chunk and also reset the extensions counter
+ int on_chunk_header() {
+ header_nread_ = 0;
++ chunk_extensions_nread_ = 0;
+ return 0;
+ }
+
+@@ -986,6 +1002,7 @@ class Parser : public AsyncWrap, public StreamListener {
+ bool headers_completed_ = false;
+ bool pending_pause_ = false;
+ uint64_t header_nread_ = 0;
++ uint64_t chunk_extensions_nread_ = 0;
+ uint64_t max_http_header_size_;
+ uint64_t last_message_start_;
+ ConnectionsList* connectionsList_;
+@@ -1164,9 +1181,9 @@ const llhttp_settings_t Parser::settings = {
+ Proxy<DataCall, &Parser::on_header_value>::Raw,
+
+ // on_chunk_extension_name
+- nullptr,
++ Proxy<DataCall, &Parser::on_chunk_extension>::Raw,
+ // on_chunk_extension_value
+- nullptr,
++ Proxy<DataCall, &Parser::on_chunk_extension>::Raw,
+
+ Proxy<Call, &Parser::on_headers_complete>::Raw,
+ Proxy<DataCall, &Parser::on_body>::Raw,
+diff --git a/third_party/electron_node/test/parallel/test-http-chunk-extensions-limit.js b/third_party/electron_node/test/parallel/test-http-chunk-extensions-limit.js
+new file mode 100644
+index 00000000000..6868b3da6cb
+--- /dev/null
++++ b/third_party/electron_node/test/parallel/test-http-chunk-extensions-limit.js
+@@ -0,0 +1,131 @@
++'use strict';
++
++const common = require('../common');
++const http = require('http');
++const net = require('net');
++const assert = require('assert');
++
++// Verify that chunk extensions are limited in size when sent all together.
++{
++ const server = http.createServer((req, res) => {
++ req.on('end', () => {
++ res.writeHead(200, { 'Content-Type': 'text/plain' });
++ res.end('bye');
++ });
++
++ req.resume();
++ });
++
++ server.listen(0, () => {
++ const sock = net.connect(server.address().port);
++ let data = '';
++
++ sock.on('data', (chunk) => data += chunk.toString('utf-8'));
++
++ sock.on('end', common.mustCall(function() {
++ assert.strictEqual(data, 'HTTP/1.1 413 Payload Too Large\r\nConnection: close\r\n\r\n');
++ server.close();
++ }));
++
++ sock.end('' +
++ 'GET / HTTP/1.1\r\n' +
++ 'Host: localhost:8080\r\n' +
++ 'Transfer-Encoding: chunked\r\n\r\n' +
++ '2;' + 'A'.repeat(20000) + '=bar\r\nAA\r\n' +
++ '0\r\n\r\n'
++ );
++ });
++}
++
++// Verify that chunk extensions are limited in size when sent in intervals.
++{
++ const server = http.createServer((req, res) => {
++ req.on('end', () => {
++ res.writeHead(200, { 'Content-Type': 'text/plain' });
++ res.end('bye');
++ });
++
++ req.resume();
++ });
++
++ server.listen(0, () => {
++ const sock = net.connect(server.address().port);
++ let remaining = 20000;
++ let data = '';
++
++ const interval = setInterval(
++ () => {
++ if (remaining > 0) {
++ sock.write('A'.repeat(1000));
++ } else {
++ sock.write('=bar\r\nAA\r\n0\r\n\r\n');
++ clearInterval(interval);
++ }
++
++ remaining -= 1000;
++ },
++ common.platformTimeout(20),
++ ).unref();
++
++ sock.on('data', (chunk) => data += chunk.toString('utf-8'));
++
++ sock.on('end', common.mustCall(function() {
++ assert.strictEqual(data, 'HTTP/1.1 413 Payload Too Large\r\nConnection: close\r\n\r\n');
++ server.close();
++ }));
++
++ sock.write('' +
++ 'GET / HTTP/1.1\r\n' +
++ 'Host: localhost:8080\r\n' +
++ 'Transfer-Encoding: chunked\r\n\r\n' +
++ '2;'
++ );
++ });
++}
++
++// Verify the chunk extensions is correctly reset after a chunk
++{
++ const server = http.createServer((req, res) => {
++ req.on('end', () => {
++ res.writeHead(200, { 'content-type': 'text/plain', 'connection': 'close', 'date': 'now' });
++ res.end('bye');
++ });
++
++ req.resume();
++ });
++
++ server.listen(0, () => {
++ const sock = net.connect(server.address().port);
++ let data = '';
++
++ sock.on('data', (chunk) => data += chunk.toString('utf-8'));
++
++ sock.on('end', common.mustCall(function() {
++ assert.strictEqual(
++ data,
++ 'HTTP/1.1 200 OK\r\n' +
++ 'content-type: text/plain\r\n' +
++ 'connection: close\r\n' +
++ 'date: now\r\n' +
++ 'Transfer-Encoding: chunked\r\n' +
++ '\r\n' +
++ '3\r\n' +
++ 'bye\r\n' +
++ '0\r\n' +
++ '\r\n',
++ );
++
++ server.close();
++ }));
++
++ sock.end('' +
++ 'GET / HTTP/1.1\r\n' +
++ 'Host: localhost:8080\r\n' +
++ 'Transfer-Encoding: chunked\r\n\r\n' +
++ '2;' + 'A'.repeat(10000) + '=bar\r\nAA\r\n' +
++ '2;' + 'A'.repeat(10000) + '=bar\r\nAA\r\n' +
++ '2;' + 'A'.repeat(10000) + '=bar\r\nAA\r\n' +
++ '0\r\n\r\n'
++ );
++ });
++}
+--
+2.44.0
+
diff --git a/testing/electron/0004-lib-update-undici-to-v5.28.3.patch b/testing/electron/0004-lib-update-undici-to-v5.28.3.patch
new file mode 100644
index 00000000000..a6719cdca88
--- /dev/null
+++ b/testing/electron/0004-lib-update-undici-to-v5.28.3.patch
@@ -0,0 +1,46 @@
+From 6027fadc38bd33317ac1f93629c72153741fbdc8 Mon Sep 17 00:00:00 2001
+From: Matteo Collina <hello@matteocollina.com>
+Date: Mon, 5 Feb 2024 17:21:04 +0100
+Subject: [PATCH 4/6] lib: update undici to v5.28.3
+
+Signed-off-by: Matteo Collina <hello@matteocollina.com>
+PR-URL: https://github.com/nodejs-private/node-private/pull/536
+CVE-ID: CVE-2024-24758
+
+backported (just secfix part) to v18.18.x
+Co-developed-by: lauren n. liberda <lauren@selfisekai.rocks>
+Signed-off-by: lauren n. liberda <lauren@selfisekai.rocks>
+---
+ deps/undici/src/lib/fetch/index.js | 3 +++
+ deps/undici/undici.js | 1 +
+ 2 files changed, 4 insertions(+)
+
+diff --git a/third_party/electron_node/deps/undici/src/lib/fetch/index.js b/third_party/electron_node/deps/undici/src/lib/fetch/index.js
+index 9f09670f82..5ef7a3f069 100644
+--- a/third_party/electron_node/deps/undici/src/lib/fetch/index.js
++++ b/third_party/electron_node/deps/undici/src/lib/fetch/index.js
+@@ -1201,6 +1201,9 @@ async function httpRedirectFetch (fetchParams, response) {
+ // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name
+ request.headersList.delete('authorization')
+
++ // https://fetch.spec.whatwg.org/#authentication-entries
++ request.headersList.delete('proxy-authorization', true)
++
+ // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement.
+ request.headersList.delete('cookie')
+ request.headersList.delete('host')
+diff --git a/third_party/electron_node/deps/undici/undici.js b/third_party/electron_node/deps/undici/undici.js
+index 0c3dc7ebfc..84a3d63ca1 100644
+--- a/third_party/electron_node/deps/undici/undici.js
++++ b/third_party/electron_node/deps/undici/undici.js
+@@ -9679,6 +9679,7 @@ var require_fetch = __commonJS({
+ }
+ if (!sameOrigin(requestCurrentURL(request), locationURL)) {
+ request.headersList.delete("authorization");
++ request.headersList.delete("proxy-authorization", true);
+ request.headersList.delete("cookie");
+ request.headersList.delete("host");
+ }
+--
+2.43.1
+
diff --git a/testing/electron/0005-zlib-pause-stream-if-outgoing-buffer-is-full.patch b/testing/electron/0005-zlib-pause-stream-if-outgoing-buffer-is-full.patch
new file mode 100644
index 00000000000..96f55cbdb4b
--- /dev/null
+++ b/testing/electron/0005-zlib-pause-stream-if-outgoing-buffer-is-full.patch
@@ -0,0 +1,146 @@
+From c7201faa5a436566c01f8fa60ad58d631430850b Mon Sep 17 00:00:00 2001
+From: Matteo Collina <hello@matteocollina.com>
+Date: Tue, 6 Feb 2024 16:47:20 +0100
+Subject: [PATCH 5/6] zlib: pause stream if outgoing buffer is full
+
+Signed-off-by: Matteo Collina <hello@matteocollina.com>
+PR-URL: https://github.com/nodejs-private/node-private/pull/540
+Reviewed-By: Robert Nagy <ronagy@icloud.com>
+Ref: https://hackerone.com/reports/2284065
+PR-URL: https://github.com/nodejs-private/node-private/pull/542
+CVE-ID: CVE-2024-22025
+---
+ lib/zlib.js | 33 +++++++++++++++++++-------
+ test/parallel/test-zlib-brotli-16GB.js | 22 +++++++++++++++++
+ test/parallel/test-zlib-params.js | 24 ++++++++++++-------
+ 3 files changed, 62 insertions(+), 17 deletions(-)
+ create mode 100644 test/parallel/test-zlib-brotli-16GB.js
+
+diff --git a/third_party/electron_node/lib/zlib.js b/third_party/electron_node/lib/zlib.js
+index 2b90c6f91f..5e6a979370 100644
+--- a/third_party/electron_node/lib/zlib.js
++++ b/third_party/electron_node/lib/zlib.js
+@@ -560,10 +560,11 @@ function processCallback() {
+ self.bytesWritten += inDelta;
+
+ const have = handle.availOutBefore - availOutAfter;
++ let streamBufferIsFull = false;
+ if (have > 0) {
+ const out = self._outBuffer.slice(self._outOffset, self._outOffset + have);
+ self._outOffset += have;
+- self.push(out);
++ streamBufferIsFull = !self.push(out);
+ } else {
+ assert(have === 0, 'have should not go down');
+ }
+@@ -588,13 +589,29 @@ function processCallback() {
+ handle.inOff += inDelta;
+ handle.availInBefore = availInAfter;
+
+- this.write(handle.flushFlag,
+- this.buffer, // in
+- handle.inOff, // in_off
+- handle.availInBefore, // in_len
+- self._outBuffer, // out
+- self._outOffset, // out_off
+- self._chunkSize); // out_len
++
++ if (!streamBufferIsFull) {
++ this.write(handle.flushFlag,
++ this.buffer, // in
++ handle.inOff, // in_off
++ handle.availInBefore, // in_len
++ self._outBuffer, // out
++ self._outOffset, // out_off
++ self._chunkSize); // out_len
++ } else {
++ const oldRead = self._read;
++ self._read = (n) => {
++ self._read = oldRead;
++ this.write(handle.flushFlag,
++ this.buffer, // in
++ handle.inOff, // in_off
++ handle.availInBefore, // in_len
++ self._outBuffer, // out
++ self._outOffset, // out_off
++ self._chunkSize); // out_len
++ self._read(n);
++ };
++ }
+ return;
+ }
+
+diff --git a/third_party/electron_node/test/parallel/test-zlib-brotli-16GB.js b/third_party/electron_node/test/parallel/test-zlib-brotli-16GB.js
+new file mode 100644
+index 0000000000..ba4f7ef5ae
+--- /dev/null
++++ b/third_party/electron_node/test/parallel/test-zlib-brotli-16GB.js
+@@ -0,0 +1,22 @@
++'use strict';
++
++const common = require('../common');
++const { createBrotliDecompress } = require('node:zlib');
++const strictEqual = require('node:assert').strictEqual;
++
++// This tiny HEX string is a 16GB file.
++// This test verifies that the stream actually stops.
++/* eslint-disable max-len */
++const content = 'cfffff7ff82700e2b14020f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c32200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bffcfffff7ff82700e2b00040f7fe9ffffffff04f00c4610180eefd3fffffffe19f0088c30200ddfb7ffeffffc33f0110870500baf7fffcffff877f02200e0b0074effff9ffff0fff04401c1600e8defff3ffff1ffe0980382c00d0bdffe7ffff3ffc1300715800a07bff3f';
++
++const buf = Buffer.from(content, 'hex');
++
++const decoder = createBrotliDecompress();
++decoder.end(buf);
++
++// We need to wait to verify that the libuv thread pool had time
++// to process the data and the buffer is not empty.
++setTimeout(common.mustCall(() => {
++ // There is only one chunk in the buffer
++ strictEqual(decoder._readableState.buffer.length, 1);
++}), common.platformTimeout(100));
+diff --git a/third_party/electron_node/test/parallel/test-zlib-params.js b/third_party/electron_node/test/parallel/test-zlib-params.js
+index 30d4f133ad..18271fe022 100644
+--- a/third_party/electron_node/test/parallel/test-zlib-params.js
++++ b/third_party/electron_node/test/parallel/test-zlib-params.js
+@@ -12,23 +12,29 @@ const deflater = zlib.createDeflate(opts);
+ const chunk1 = file.slice(0, chunkSize);
+ const chunk2 = file.slice(chunkSize);
+ const blkhdr = Buffer.from([0x00, 0x5a, 0x82, 0xa5, 0x7d]);
+-const expected = Buffer.concat([blkhdr, chunk2]);
+-let actual;
++const blkftr = Buffer.from('010000ffff7dac3072', 'hex');
++const expected = Buffer.concat([blkhdr, chunk2, blkftr]);
++const bufs = [];
++
++function read() {
++ let buf;
++ while ((buf = deflater.read()) !== null) {
++ bufs.push(buf);
++ }
++}
+
+ deflater.write(chunk1, function() {
+ deflater.params(0, zlib.constants.Z_DEFAULT_STRATEGY, function() {
+ while (deflater.read());
+- deflater.end(chunk2, function() {
+- const bufs = [];
+- let buf;
+- while ((buf = deflater.read()) !== null)
+- bufs.push(buf);
+- actual = Buffer.concat(bufs);
+- });
++
++ deflater.on('readable', read);
++
++ deflater.end(chunk2);
+ });
+ while (deflater.read());
+ });
+
+ process.once('exit', function() {
++ const actual = Buffer.concat(bufs);
+ assert.deepStrictEqual(actual, expected);
+ });
+--
+2.43.1
+
diff --git a/testing/electron/0006-deps-fix-GHSA-f74f-cvh7-c6q6-CVE-2024-24806.patch b/testing/electron/0006-deps-fix-GHSA-f74f-cvh7-c6q6-CVE-2024-24806.patch
new file mode 100644
index 00000000000..2d7ba8cce6e
--- /dev/null
+++ b/testing/electron/0006-deps-fix-GHSA-f74f-cvh7-c6q6-CVE-2024-24806.patch
@@ -0,0 +1,74 @@
+From 4c475d0047768f2d3cec4fe628d85d601374c2fe Mon Sep 17 00:00:00 2001
+From: Santiago Gimeno <santiago.gimeno@gmail.com>
+Date: Thu, 8 Feb 2024 00:17:40 +0100
+Subject: [PATCH 6/6] deps: fix GHSA-f74f-cvh7-c6q6/CVE-2024-24806
+
+Refs: https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
+PR-URL: https://github.com/nodejs/node/pull/51614
+---
+ deps/uv/src/idna.c | 8 ++++++--
+ deps/uv/test/test-idna.c | 7 ++++++-
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/third_party/electron_node/deps/uv/src/idna.c b/third_party/electron_node/deps/uv/src/idna.c
+index 93d982ca01..858b19d00e 100644
+--- a/third_party/electron_node/deps/uv/src/idna.c
++++ b/third_party/electron_node/deps/uv/src/idna.c
+@@ -274,6 +274,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
+ char* ds;
+ int rc;
+
++ if (s == se)
++ return UV_EINVAL;
++
+ ds = d;
+
+ si = s;
+@@ -308,8 +311,9 @@ long uv__idna_toascii(const char* s, const char* se, char* d, char* de) {
+ return rc;
+ }
+
+- if (d < de)
+- *d++ = '\0';
++ if (d >= de)
++ return UV_EINVAL;
+
++ *d++ = '\0';
+ return d - ds; /* Number of bytes written. */
+ }
+diff --git a/third_party/electron_node/deps/uv/test/test-idna.c b/third_party/electron_node/deps/uv/test/test-idna.c
+index f4fad9653d..37da38de2d 100644
+--- a/third_party/electron_node/deps/uv/test/test-idna.c
++++ b/third_party/electron_node/deps/uv/test/test-idna.c
+@@ -99,6 +99,7 @@ TEST_IMPL(utf8_decode1) {
+ TEST_IMPL(utf8_decode1_overrun) {
+ const char* p;
+ char b[1];
++ char c[1];
+
+ /* Single byte. */
+ p = b;
+@@ -112,6 +113,10 @@ TEST_IMPL(utf8_decode1_overrun) {
+ ASSERT_EQ((unsigned) -1, uv__utf8_decode1(&p, b + 1));
+ ASSERT_EQ(p, b + 1);
+
++ b[0] = 0x7F;
++ ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 0, c, c + 1));
++ ASSERT_EQ(UV_EINVAL, uv__idna_toascii(b, b + 1, c, c + 1));
++
+ return 0;
+ }
+
+@@ -145,8 +150,8 @@ TEST_IMPL(idna_toascii) {
+ /* Illegal inputs. */
+ F("\xC0\x80\xC1\x80", UV_EINVAL); /* Overlong UTF-8 sequence. */
+ F("\xC0\x80\xC1\x80.com", UV_EINVAL); /* Overlong UTF-8 sequence. */
++ F("", UV_EINVAL);
+ /* No conversion. */
+- T("", "");
+ T(".", ".");
+ T(".com", ".com");
+ T("example", "example");
+--
+2.43.1
+
diff --git a/testing/electron/APKBUILD b/testing/electron/APKBUILD
new file mode 100644
index 00000000000..d3c5e699305
--- /dev/null
+++ b/testing/electron/APKBUILD
@@ -0,0 +1,589 @@
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=electron
+pkgver=29.3.0
+_semver="${pkgver/_beta/-beta.}"
+pkgrel=1
+_chromium=122.0.6261.156
+_depot_tools=b5509953468edd0906f2dc297886939abbd2bed5
+pkgdesc="Electron cross-platform desktop toolkit"
+url="https://github.com/electron/electron"
+arch="aarch64 x86_64" # same as chromium
+license="MIT"
+depends="gtk+3.0 so:libudev.so.1 xdg-utils"
+makedepends="
+ alsa-lib-dev
+ aom-dev
+ base64-dev
+ bash
+ brotli-dev
+ bsd-compat-headers
+ bzip2-dev
+ c-ares-dev
+ cairo-dev
+ clang-dev
+ clang-extra-tools
+ compiler-rt
+ crc32c-dev
+ cups-dev
+ curl-dev
+ dav1d-dev
+ dbus-glib-dev
+ double-conversion-dev
+ eudev-dev
+ ffmpeg-dev
+ findutils
+ flac-dev
+ flex
+ freetype-dev
+ gperf
+ gtk+3.0-dev
+ gn
+ gzip
+ harfbuzz-dev
+ hdrhistogram-c-dev
+ highway-dev
+ hunspell-dev
+ http-parser-dev
+ hwdata-dev
+ java-jdk
+ jpeg-dev
+ krb5-dev
+ lcms2-dev
+ libarchive-tools
+ libavif-dev
+ libbsd-dev
+ libcap-dev
+ libdrm-dev
+ libevent-dev
+ libexif-dev
+ libgcrypt-dev
+ libjpeg-turbo-dev
+ libnotify-dev
+ libsecret-dev
+ libusb-dev
+ libva-dev
+ libwebp-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxinerama-dev
+ libxml2-dev
+ libxrandr-dev
+ libxscrnsaver-dev
+ libxslt-dev
+ linux-headers
+ lld
+ llvm
+ mesa-dev
+ minizip-dev
+ nghttp2-dev
+ nodejs
+ npm
+ nss-dev
+ openh264-dev
+ opus-dev
+ pciutils-dev
+ perl
+ pipewire-dev
+ pulseaudio-dev
+ py3-httplib2
+ py3-jinja2
+ py3-parsing
+ py3-setuptools
+ py3-six
+ python3
+ qt5-qtbase-dev
+ rsync
+ rust
+ samurai
+ speex-dev
+ sqlite-dev
+ xcb-proto
+ yarn
+ zlib-dev
+ zstd-dev
+ "
+subpackages="$pkgname-lang $pkgname-dev"
+# the lower patches are specific to electron, the top ones are from the equivalent chromium version
+source="https://ab-sn.lnl.gay/electron-$_semver-$_chromium.tar.zst
+ chromium-icu-74.patch
+ chromium-revert-drop-of-system-java.patch
+ compiler.patch
+ disable-failing-tests.patch
+ fc-cache-version.patch
+ fix-missing-cstdint-include-musl.patch
+ fix-opus.patch
+ fstatat-32bit.patch
+ gdbinit.patch
+ generic-sensor-include.patch
+ import-version.patch
+ libstdc++13.patch
+ mman.patch
+ musl-auxv.patch
+ musl-sandbox.patch
+ musl-tid-caching.patch
+ musl-v8-monotonic-pthread-cont_timedwait.patch
+ no-execinfo.patch
+ no-mallinfo.patch
+ no-res-ninit-nclose.patch
+ no-sandbox-settls.patch
+ partalloc-no-tagging-arm64.patch
+ perfetto-libstdc++.patch
+ pvalloc.patch
+ random-fixes.patch
+ quiche-array.patch
+ system-zstd.patch
+ temp-failure-retry.patch
+ yes-musl.patch
+ disable-dns_config_service.patch
+
+ icon.patch
+ python-jinja-3.10.patch
+ webpack-hash.patch
+ unbundle-node.patch
+ 0001-src-fix-HasOnly-capability-in-node-credentials.patch
+ 0002-http-add-maximum-chunk-extension-size.patch
+ 0004-lib-update-undici-to-v5.28.3.patch
+ 0005-zlib-pause-stream-if-outgoing-buffer-is-full.patch
+ 0006-deps-fix-GHSA-f74f-cvh7-c6q6-CVE-2024-24806.patch
+ node-configure-distutils.patch
+ node-gyp-distutils.patch
+
+ default.conf
+ electron.desktop
+ electron-launcher.sh
+ "
+# tests are todo for some base checks
+options="!check net suid"
+builddir="$srcdir/electron-$_semver-$_chromium"
+
+export PATH="$PATH:/usr/lib/qt5/bin"
+
+# clang uses much less memory (and this doesn't support gcc)
+export CC=clang
+export CXX=clang++
+
+# required to find the tools
+export AR=llvm-ar
+export NM=llvm-nm
+export LD=clang++
+
+# less log spam, reproducible
+export CFLAGS="${CFLAGS/-g/} -O2 -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
+export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
+export CPPFLAGS="${CPPFLAGS/-g/} -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
+case "$CARCH" in
+ aarch64|arm*|riscv64)
+ # not supported by clang here
+ export CFLAGS="${CFLAGS/-fstack-clash-protection}"
+ export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
+ ;;
+esac
+
+# breaks chromium-based stuff
+export CXXFLAGS="${CXXFLAGS/-D_GLIBCXX_ASSERTIONS=1}"
+
+# creates a dist tarball that does not need to git clone everything at build time.
+_distbucket="sakamoto/lnl-aports-snapshots/"
+snapshot() {
+ deps
+ # vpython3 execs system python3 with this set
+ export VPYTHON_BYPASS="manually managed python not supported by chrome operations"
+ export CHROMIUM_BUILDTOOLS_PATH="$srcdir/src/buildtools"
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ if ! [ -d depot_tools ]; then
+ (
+ git clone --depth 1 -b main https://chromium.googlesource.com/chromium/tools/depot_tools.git
+ cd depot_tools
+ git fetch --depth 1 origin $_depot_tools
+ git checkout $_depot_tools
+ )
+ fi
+
+ export PATH="$PATH:$srcdir/depot_tools"
+
+ echo "solutions = [
+ {
+ \"name\": \"src/electron\",
+ \"url\": \"https://github.com/electron/electron.git@v$_semver\",
+ \"deps_file\": \"DEPS\",
+ \"managed\": False,
+ \"custom_deps\": {
+ \"src\": \"https://chromium.googlesource.com/chromium/src.git@$_chromium\",
+ },
+ \"custom_vars\": {},
+ },
+ ]" > .gclient
+
+ python3 depot_tools/gclient.py sync \
+ --no-history \
+ --nohooks
+
+ python3 src/build/landmines.py
+ python3 src/build/util/lastchange.py -o src/build/util/LASTCHANGE
+ python3 src/build/util/lastchange.py -s src/third_party/dawn \
+ --revision src/gpu/webgpu/DAWN_VERSION
+ python3 src/build/util/lastchange.py -m GPU_LISTS_VERSION \
+ --revision-id-only --header src/gpu/config/gpu_lists_version.h
+ python3 src/build/util/lastchange.py -m SKIA_COMMIT_HASH \
+ -s src/third_party/skia --header src/skia/ext/skia_commit_hash.h
+
+ # rolled newer chromium with it included
+ sed -i '/reland_mojom_ts_generator_handle_empty_module_path_identically_to.patch/d' src/electron/patches/chromium/.patches
+
+ python3 src/electron/script/apply_all_patches.py \
+ src/electron/patches/config.json
+
+ python3 src/tools/update_pgo_profiles.py \
+ --target=linux \
+ update \
+ --gs-url-base=chromium-optimization-profiles/pgo_profiles
+
+ python3 src/tools/download_optimization_profile.py \
+ --newest_state=src/chrome/android/profiles/newest.txt \
+ --local_state=src/chrome/android/profiles/local.txt \
+ --output_name=src/chrome/android/profiles/afdo.prof \
+ --gs_url_base=chromeos-prebuilt/afdo-job/llvm
+
+ mv src $pkgname-$_semver-$_chromium
+
+ # extra binaries are most likely things we don't want, so nuke them all
+ for elf in $(scanelf -RA -F "%F" $pkgname-$_semver-$_chromium); do
+ rm -f "$elf"
+ done
+
+ msg "generating tarball.. (this takes a while)"
+ tar -cf $pkgname-$_semver-$_chromium.tar \
+ --exclude="ChangeLog*" \
+ --exclude="testdata/*" \
+ --exclude="test_data/*" \
+ --exclude="android_rust_toolchain/*" \
+ --exclude-backups \
+ --exclude-caches-all \
+ --exclude-vcs \
+ $pkgname-$_semver-$_chromium
+
+ zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv $pkgname-$_semver-$_chromium.tar -o "$SRCDEST"/$pkgname-$_semver-$_chromium.tar.zst
+ mcli cp "$SRCDEST"/$pkgname-$_semver-$_chromium.tar.zst "$_distbucket"
+}
+
+prepare() {
+ dos2unix third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
+
+ default_prepare
+
+ git init -q .
+
+ # link to system tools
+ ln -sfv /usr/bin/clang-format buildtools/linux64/clang-format
+ mkdir -p third_party/node/linux/node-linux-x64/bin
+ ln -sfv /usr/bin/node third_party/node/linux/node-linux-x64/bin/node
+ ln -sfv /usr/bin/java third_party/jdk/current/bin/java
+
+ (
+ cd electron
+ git init -q .
+ git config user.email "example@example.com"
+ git config user.name "example"
+ git config commit.gpgsign false
+ git add LICENSE
+ git commit -m "init"
+ git tag "v$_semver"
+ git pack-refs
+ yarn install --frozen-lockfile --no-scripts
+ )
+
+ (
+ cd third_party/node
+ ./update_npm_deps
+ )
+
+ # reusable system library settings
+ # libavif - https://github.com/AOMediaCodec/libavif/commit/4d2776a3
+ # libaom - https://aomedia.googlesource.com/aom/+/706ee36dcc82%5E%21/
+ # jsoncpp, re2, snappy, swiftshader-spirv, woff2 - requires use_custom_libcxx=false
+ local chromium_use_system="
+ brotli
+ crc32c
+ dav1d
+ double-conversion
+ ffmpeg
+ flac
+ fontconfig
+ freetype
+ harfbuzz-ng
+ highway
+ icu
+ libdrm
+ libevent
+ libjpeg
+ libsecret
+ libusb
+ libwebp
+ libxml
+ libxslt
+ openh264
+ opus
+ zlib
+ zstd
+ "
+
+ for _lib in $chromium_use_system jinja2 libjpeg_turbo; do
+ msg "Removing buildscripts for system provided $_lib"
+ find . -type f -path "*third_party/$_lib/*" \
+ \! -path "*third_party/$_lib/chromium/*" \
+ \! -path "*third_party/$_lib/google/*" \
+ \! -path './base/third_party/icu/*' \
+ \! -path './third_party/libxml/*' \
+ \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
+ \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
+ \! -path './third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h' \
+ \! -regex '.*\.\(gn\|gni\|gyp\|gypi\|isolate\|py\)' \
+ -delete
+ done
+
+ # ada - needs use_custom_libcxx=false
+ # llhttp - 9.x needed, 8.x in repo (2023-12-17)
+ local node_use_system="
+ base64
+ brotli
+ cares
+ corepack
+ histogram
+ nghttp2
+ nghttp3
+ ngtcp2
+ zlib
+ "
+ # some of these are provided by system, e.g. brotli. some are from chromium,
+ # e.g. boringssl (as openssl). some are not in use at all (corepack)
+ for _lib in $node_use_system openssl; do
+ msg "Removing buildscripts for $_lib"
+ find . -type f -path "*third_party/electron_node/deps/$_lib/*" \
+ \! -path "*third_party/electron_node/deps/$_lib/chromium/*" \
+ \! -path "*third_party/electron_node/deps/$_lib/google/*" \
+ \! -regex '.*\.\(gn\|gni\|gyp\|gypi\|isolate\|py\)' \
+ -delete
+ done
+ # XXX: hack. unbundle-node.patch uses this list to switch things
+ # in config.gypi. https://github.com/electron/electron/issues/40836
+ echo $node_use_system > third_party/electron_node/use_system.txt
+
+ rm -rf third_party/electron_node/tools/inspector_protocol/jinja2
+
+ # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
+ touch chrome/test/data/webui/i18n_process_css_test.html
+ # Use the file at run time instead of effectively compiling it in
+ sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
+ -i services/device/public/cpp/usb/BUILD.gn
+
+ msg "Running debundle script"
+ python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+ $chromium_use_system
+ python3 third_party/libaddressinput/chromium/tools/update-strings.py
+
+ # prevent annoying errors when regenerating gni
+ sed -i 's,^update_readme$,#update_readme,' \
+ third_party/libvpx/generate_gni.sh
+
+ # allow system dependencies in "official builds"
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py
+
+ # https://crbug.com/893950
+ sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \
+ third_party/blink/renderer/core/xml/*.cc \
+ third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \
+ third_party/libxml/chromium/*.cc \
+ third_party/maldoca/src/maldoca/ole/oss_utils.h
+
+ _configure
+}
+
+_configure() {
+ cd "$builddir"
+ msg "Configuring build"
+
+ local clang_ver="$(clang -dumpversion)"
+
+ case "$USE_CCACHE" in
+ 1)
+ local cc_wrapper="ccache"
+ ;;
+ *)
+ local cc_wrapper=""
+ ;;
+ esac
+
+ # shellcheck disable=2089
+ local gn_config="
+ cc_wrapper=\"$cc_wrapper\"
+ clang_base_path=\"/usr\"
+ custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
+ host_toolchain=\"//build/toolchain/linux/unbundle:default\"
+ import(\"//electron/build/args/release.gn\")
+
+ blink_enable_generated_code_formatting=false
+ chrome_pgo_phase=0
+ clang_use_chrome_plugins=false
+ clang_version=\"${clang_ver%%.*}\"
+ fatal_linker_warnings=false
+ ffmpeg_branding=\"Chrome\"
+ icu_use_data_file=true
+ is_cfi=false
+ is_clang=true
+ is_component_ffmpeg=true
+ is_debug=false
+ is_official_build=true
+ symbol_level=0
+ treat_warnings_as_errors=false
+ rustc_version=\"yes\"
+ rust_sysroot_absolute=\"/usr\"
+
+ angle_enable_gl_null=false
+ build_tflite_with_xnnpack=false
+ build_with_tflite_lib=true
+ disable_fieldtrial_testing_config=true
+ enable_hangout_services_extension=true
+ enable_library_cdms=false
+ enable_media_remoting=false
+ enable_nacl=false
+ enable_nocompile_tests=false
+ enable_paint_preview=false
+ enable_reading_list=false
+ enable_remoting=false
+ enable_reporting=false
+ enable_rust=true
+ enable_screen_ai_service=false
+ enable_service_discovery=false
+ enable_stripping=false
+ enable_vr=false
+ ozone_platform_headless=false
+
+ link_pulseaudio=true
+ proprietary_codecs=true
+ regenerate_x11_protos=true
+ rtc_link_pipewire=true
+ rtc_use_pipewire=true
+ skia_use_dawn=false
+ use_custom_libcxx=true
+ use_dawn=false
+ use_pulseaudio=true
+ use_sysroot=false
+ use_system_base64=true
+ use_system_cares=true
+ use_system_histogram=true
+ use_system_lcms2=true
+ use_system_libffi=true
+ use_system_llhttp=false
+ use_system_nghttp2=true
+ use_thin_lto=false
+ use_vaapi=true
+ "
+
+ # shellcheck disable=2086,2090,2116
+ gn gen out/Release --args="$(echo $gn_config)" \
+ --export-compile-commands
+}
+
+build() {
+ export PATH="$PATH:/usr/lib/qt5/bin"
+
+ ninja -C out/Release \
+ electron_dist_zip \
+ node_gypi_headers \
+ node_version_header
+
+ cp -vf out/Release/gen/node_headers/include/node/config.gypi third_party/electron_node/config.gypi
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/electron "$pkgdir"/usr/bin
+
+ bsdtar -xf out/Release/dist.zip -C "$pkgdir"/usr/lib/electron
+
+ chmod u+s "$pkgdir"/usr/lib/electron/chrome-sandbox
+
+ install -Dm755 "$srcdir"/electron-launcher.sh "$pkgdir"/usr/bin/electron
+ install -Dm755 "$srcdir"/default.conf "$pkgdir"/etc/electron/default.conf
+
+ mkdir -p "$pkgdir"/usr/include/electron
+
+ (
+ cd third_party/electron_node/
+ HEADERS_ONLY=1 python3 ./tools/install.py install "$pkgdir" "/usr/include/electron/node_headers"
+ )
+ # required overrides
+ install -Dm644 out/Release/gen/node_headers/include/node/* -t "$pkgdir"/usr/include/electron/node_headers/include/node
+ ln -sv /usr/include/electron/node_headers/include/node "$pkgdir"/usr/include/electron/node
+
+ mkdir -p "$pkgdir"/usr/include/electron/node_headers/include/nan
+ cp -v "$builddir"/third_party/nan/*.h "$pkgdir"/usr/include/electron/node_headers/include/nan
+ ln -sv /usr/include/electron/node_headers/include/nan "$pkgdir"/usr/include/electron/nan
+
+ install -Dm644 electron/default_app/icon.png \
+ "$pkgdir"/usr/share/icons/hicolor/1024x1024/apps/electron.png
+ install -Dm644 "$srcdir"/electron.desktop \
+ -t "$pkgdir"/usr/share/applications/
+}
+
+lang() {
+ pkgdesc="$pkgdesc (translations)"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ mkdir -p "$subpkgdir"/usr/lib/electron/locales
+
+ mv "$pkgdir"/usr/lib/electron/locales/*.pak \
+ "$subpkgdir"/usr/lib/electron/locales
+ mv "$subpkgdir"/usr/lib/electron/locales/en-US.pak \
+ "$pkgdir"/usr/lib/electron/locales
+}
+
+sha512sums="
+aef4dc07d9924892472637f95485ac0e9ab6216a9da5b290d105d82e8688fc45643515e43a41aee6e002ec4dbce512ae11c8ebe171d6629741cf1587bdda8a5b electron-29.3.0-122.0.6261.156.tar.zst
+4c540972fa12acd9f0aafb8dc7e9987c3d6e4f28ff679dde522ebcec2dc5ae1a62d9d255bed0a30b9c79ae3b90ab0f5b9ae1ef5b7bf338612e28d9ef70250ca3 chromium-icu-74.patch
+29bb685e03356a77df5fd347cdf55194cc8b3265c421cc76e54d64edefc329dbcb052deb26b22e8f587ce68456876c071de1b7d258dd0fcc6ee66c875ec4a020 chromium-revert-drop-of-system-java.patch
+c116ad6325a79b799b6c56312891d5b3d2f0d0c1c3e2c03f339144b3f93b871db190f83fe5eadc5542303d61849cc362299932a2f93661198e11ba0c1e492e48 compiler.patch
+111bc22fb704d97759988268a40d6b356c51b0bd7a8119a694e905ffe21850ff64e91566cd0dd0c9d62fcb46dca8acc821436c34eb0ba78be872ee4f7ec88a7b disable-failing-tests.patch
+5fc5c012c1db6cf1ba82f38c6f3f4f5ca3a209e47ac708a74de379b018e0649b7694877c9571ef79002dde875ffc07b458a3355425f1c01867f362c66c2bc1bf fc-cache-version.patch
+9200f78bad70e95c648a5e8392d50642190600f655c6baa366ff6467ebad52d3b3f305dad58f3610da67136f4b723557653b174ec5c25be8d8737ee04d9ee09f fix-missing-cstdint-include-musl.patch
+b24563e9a738c00fce7ff2fbdee3d7c024d9125d7c74d9ab90af6bdb16f7ec8419f2c8aa78c0640f6d5d81c17dc2c673a194401d354f466749672729b48ed068 fix-opus.patch
+c63dee5044353eb306a39ca1526158c0f003ab310ecb03d1c368dc2a979454590c84b8d3c15484517d5e66bb8add9b231da9abbadf2e50850abd72ac1345c4ab fstatat-32bit.patch
+33ee60863cc438ef57ffef92ba4cf67a856a5ffc16138bce241bcf87e47b15154aa86918e793c26f7ec4dc62a445257ad5673ed7001daf22c4043cf6cc57da7f gdbinit.patch
+36a764fa73443b47d38050b52dbe6ad2fa8d67201ff4ccdbad13b52308ef165ca046aac6f9609fe35890a6485f0f3e672e78cc41e3e44f3cdc7f145e540524e8 generic-sensor-include.patch
+8de65109ece27ea63bd469f2220c56b8c752ba0a50fdf390082a2d5ae74b8e010199126175569f6d5084270dd4e0571e68aec32c0bca8211a6699925b3a09124 import-version.patch
+993ce46dcd2c9e406d18d7af834e6e8cc4227bdba32c0b1804bb0489e11b47467557895281facf110abdb6aacf493b97f23bfb4f72ee95a41a618c547bfcea1a libstdc++13.patch
+e75f57ae34c97ca1caf15fa4b4106c6c1e79c31ed66869cf92ed9ea0c449886c9511e455047c17c1e9ad8b9a46ad4948511a4f2995a4b6030fb4d1c7ae21d038 mman.patch
+99bcc7dd485b404a90c606a96addab1d900852128d44fb8cea8acc7303189ef87c89a7b0e749fd0e10c5ef5f6bf1fadeb5c16a34503cab6a59938ce2653d887e musl-auxv.patch
+50c274a420bb8a7f14fcb56e40920dac8f708792a4520789b4987facea459bef88113d5a2b60fa8c57bee6e92bff3617d6b73fa305c8c44614c638971cffd440 musl-sandbox.patch
+e7163ac5810ac85366cef2447412287c856e3d67c6b77f219a6e5a418b1965b98e449c409424ad0704a5bded9355dd0aec3dc4585918ce5a2ab36c079707afe2 musl-tid-caching.patch
+92eb002718026611f5542362ad69b67f0a398ff71b3fca5c05d55cb5c6f9f29334e5e127bb4860cfaa3fba0f0d4c901e2b98808217e7dc02e254a64a5c9521aa musl-v8-monotonic-pthread-cont_timedwait.patch
+5eb0b83264e2c9213fb871838827eb7875c05131a42d901032d6d1f05eec98609fefac4772385046887a773daf4f1e0ee5a647e82c1c3d73aec3fcf76f887084 no-execinfo.patch
+8e17101d69e23b456a9c03dc2fe95bcd56846389707ba6f4720192a9e9168406d20d9168dbebbb3a47d921ec92e478f0e390f46e6b9bb43a34dda217c6e6448b no-mallinfo.patch
+e4c4e5bc6f828f9c883dd418c0ba01887949c29c311f76206a1ec29f620b0c0ba0452949dc2778a9c46ea066405857536964a36436a68eecf7da7952736333cf no-res-ninit-nclose.patch
+6dc4d8dc92e685dace62265a1ddb3aebc558aed54d20ff6d36b030be0c48d7e84662326c31363612492574d9a03c62653cdc21a60995b97dee1d75cae86a9f9b no-sandbox-settls.patch
+d4ac7f350806b4410ccb1df3b0ad7e90a7b6d724a16919761aa2d47a6f21008c7374da528b05b754ee712b85d23adfb113c7f7b9ca2ed5b47644fe3ea0cb9119 partalloc-no-tagging-arm64.patch
+8e1aca983890c78d81a6f888b2cf1aa42878d1f8523e87d63b800e1e468cbfd33e5ff6a0975775ca222fe82f30c6497da95505da01b091c8776a44c98ac86f0f perfetto-libstdc++.patch
+2eb434b4fc6aee77026492644cd86772a543d9845f112a75cd4c3e1f25c9435cc31f8454c1c73223451fc9be69b86e822ff68821978f67f2fc8bcba50296d8e0 pvalloc.patch
+803b8117c65132f76bec42054a4b2257a078b15b07fd08645fec2dfd51aa4e0075a9015300cd579d4ae0d757d9850b9988e080cfc2eea093f6684fdf82c4722c random-fixes.patch
+86f612dd2b39602984a75b1b11c2ab8bc8cc6b4e78fae998570a777a6901ae45fdcdb22e46dd006dab703a0674e64c72cf8120af2dc5b9e78004f402c7e65358 quiche-array.patch
+b3beb98b539fe160fbc493ba410ae0f68540cc4b6834f1f8ce9a22c3f4f59ef5d583ad48793e10549fd02a701f833a3969791ef4524322cd1e715ca5bf226bc8 system-zstd.patch
+e48693e6b7aeebf69a5acbf80d9a35defe4c23835121dfeb58b051ac7c527e758a41004f4d193274fe1b01c0bfb1dbc77b09cb6a404a3fdee507a2918afb0edb temp-failure-retry.patch
+914ccf649d7771f19f209ab97f99c481aebc6f66174d68e8b539f6ad4a70bc8cb0fae2df6dadbf0415958ffb3574c420fe029079dcce45f5e5add4db2e903566 yes-musl.patch
+4057cc78f10bfd64092bc35a373869abb1d68b880cdbca70422f39ffd78a929c19c7728d4d4c40709aaba25581148a93ae5343e724849fd35323062ed68753fa disable-dns_config_service.patch
+465107da7818b237e3c144a318ab80c3c9343b51ed38b8971ef204692d13346929becbe94cefad4c153788d3a200642143584d5ca070f6304e768ba2139c19ec icon.patch
+e05180199ee1d559e4e577cedd3e589844ecf40d98a86321bf1bea5607b02eeb5feb486deddae40e1005b644550331f6b8500177aa7e79bcb3750d3c1ceb76c3 python-jinja-3.10.patch
+2aa340854316f1284217c0ca17cbf44953684ad6c7da90815117df30928612eb9fb9ffb734b948dfc309cd25d1a67cd57f77aac2d052a3dd9aca07a3a58cbb30 webpack-hash.patch
+c83914c11d9f8f6d53653f67f91020db3d25d0614380053380f85e870418e834bf590afa065b182006d535290cc91a940fe085c1200cae9ca17107faceae1989 unbundle-node.patch
+85973875fb3acddabe2507e255b38fe498cf0b5fce7dcb93e389ccb7b1cae8acd5225f00fa61b7bd556f7cae5080ed03dca7263505fe8974e3fbf3a93937c555 0001-src-fix-HasOnly-capability-in-node-credentials.patch
+4b32258cc05ffe43364dbb775df53d0e7749d108ac31b3642cc069860b6e28d370bcb0cee01c652baed668c2c3111fde714084d0a85acd80b5b86880a703c2b2 0002-http-add-maximum-chunk-extension-size.patch
+b8ea46e2c0ad7bab6383fa3a42619be735eac67156e501b173b36e9522e8c384feb758b48276a16ac6a68b64cab8fb4cd4ed1841720ecf628bc55f45c05b58c4 0004-lib-update-undici-to-v5.28.3.patch
+1dc578fad461f8dc876a1bbbd9fd8f9b235a010fcfb30986cc2654253cce84040dc6fed37fa9fa5e70933ffb9d812c677ba0150e7d6a9d2032d412f9eba7f168 0005-zlib-pause-stream-if-outgoing-buffer-is-full.patch
+793d94cc5aec81eace96ca86bd70ad122d82918a521ecb8d30251c492818c19c7a020eed4dccb13d4129b61f0ca82972bd34f480ad094c45633042552bd39fe9 0006-deps-fix-GHSA-f74f-cvh7-c6q6-CVE-2024-24806.patch
+45e9b3f520a9d343daddda21fd220d675fbbebaeae923a4afb59f8b8d3c35cfa172ab4fdaed6f835d66a8ef470e1a4ab9d6e27c5538f5ce49cc4c1772fa514ef node-configure-distutils.patch
+e7e2f663e2c9329443fbaece2b3e37266bdb894f5764d9c4ef3720f1de84d13edee75a5e12210e4839912520c88332f4b231a6eacbc0e8dd5f7e3353d40fefba node-gyp-distutils.patch
+e8ea87c547546011c4c8fc2de30e4f443b85cd4cfcff92808e2521d2f9ada03feefb8e1b0cf0f6b460919c146e56ef8d5ad4bb5e2461cc5247c30d92eb4d068e default.conf
+191559fc7aa1ea0353c6fb0cc321ee1d5803a0e44848c8be941cfab96277b0de6a59962d373e2a2a1686c8f9be2bcf2d2f33706759a339a959e297d3f7fda463 electron.desktop
+5f7ba5ad005f196facec1c0f26108356b64cafb1e5cfa462ff714a33b8a4c757ac00bfcb080da09eb5b65032f8eb245d9676a61ec554515d125ed63912708648 electron-launcher.sh
+"
diff --git a/testing/electron/chromium-icu-74.patch b/testing/electron/chromium-icu-74.patch
new file mode 100644
index 00000000000..02a44b7a141
--- /dev/null
+++ b/testing/electron/chromium-icu-74.patch
@@ -0,0 +1,20 @@
+See ICU change https://github.com/unicode-org/icu/commit/2e45e6ec0e84a1c01812015a254ea31b286316fb
+
+Similar has happened in the past. See:
+https://chromium.googlesource.com/chromium/src/+/e60b571faa3f14dd9119a6792dccf12f8bf80192
+
+diff --git a/third_party/blink/renderer/platform/text/text_break_iterator.cc b/third_party/blink/renderer/platform/text/text_break_iterator.cc
+index ddfbd51..247da06 100644
+--- a/third_party/blink/renderer/platform/text/text_break_iterator.cc
++++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc
+@@ -161,7 +161,9 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
+ };
+ // clang-format on
+
+-#if U_ICU_VERSION_MAJOR_NUM >= 58
++#if U_ICU_VERSION_MAJOR_NUM >= 74
++#define BA_LB_COUNT (U_LB_COUNT - 8)
++#elif U_ICU_VERSION_MAJOR_NUM >= 58
+ #define BA_LB_COUNT (U_LB_COUNT - 3)
+ #else
+ #define BA_LB_COUNT U_LB_COUNT
diff --git a/testing/electron/chromium-revert-drop-of-system-java.patch b/testing/electron/chromium-revert-drop-of-system-java.patch
new file mode 100644
index 00000000000..24355bf42b1
--- /dev/null
+++ b/testing/electron/chromium-revert-drop-of-system-java.patch
@@ -0,0 +1,17 @@
+This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef
+allows using /usr/bin/java instead of a downloaded one (that doesn't work on musl)
+--
+--- a/third_party/closure_compiler/compiler.py 2021-05-20 04:17:53.000000000 +0200
++++ b/third_party/closure_compiler/compiler.py 2021-05-20 04:17:53.000000000 +0200
+@@ -13,8 +13,9 @@
+
+
+ _CURRENT_DIR = os.path.join(os.path.dirname(__file__))
+-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
+-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
++_JAVA_BIN = "java"
++_JDK_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
++_JAVA_PATH = _JDK_PATH if os.path.isfile(_JDK_PATH) else _JAVA_BIN
+
+ class Compiler(object):
+ """Runs the Closure compiler on given source files to typecheck them
diff --git a/testing/electron/compiler.patch b/testing/electron/compiler.patch
new file mode 100644
index 00000000000..2541d19992b
--- /dev/null
+++ b/testing/electron/compiler.patch
@@ -0,0 +1,123 @@
+--- ./build/config/compiler/BUILD.gn.orig
++++ ./build/config/compiler/BUILD.gn
+@@ -616,24 +618,6 @@
+ }
+ }
+
+- # TODO(crbug.com/1488374): This causes binary size growth and potentially
+- # other problems.
+- # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version.
+- if (default_toolchain != "//build/toolchain/cros:target" &&
+- !llvm_android_mainline) {
+- cflags += [
+- "-mllvm",
+- "-split-threshold-for-reg-with-hint=0",
+- ]
+- if (use_thin_lto && is_a_target_toolchain) {
+- if (is_win) {
+- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
+- } else {
+- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
+- }
+- }
+- }
+-
+ # TODO(crbug.com/1235145): Investigate why/if this should be needed.
+ if (is_win) {
+ cflags += [ "/clang:-ffp-contract=off" ]
+@@ -1011,17 +998,6 @@
+ # `-nodefaultlibs` from the linker invocation from Rust, which would be used
+ # to compile dylibs on Android, such as for constructing unit test APKs.
+ "-Cdefault-linker-libraries",
+-
+- # To make Rust .d files compatible with ninja
+- "-Zdep-info-omit-d-target",
+-
+- # If a macro panics during compilation, show which macro and where it is
+- # defined.
+- "-Zmacro-backtrace",
+-
+- # For deterministic builds, keep the local machine's current working
+- # directory from appearing in build outputs.
+- "-Zremap-cwd-prefix=.",
+ ]
+
+ if (!is_win || force_rustc_color_output) {
+@@ -1175,8 +1151,8 @@
+ } else if (current_cpu == "arm") {
+ if (is_clang && !is_android && !is_nacl &&
+ !(is_chromeos_lacros && is_chromeos_device)) {
+- cflags += [ "--target=arm-linux-gnueabihf" ]
+- ldflags += [ "--target=arm-linux-gnueabihf" ]
++ cflags += [ "--target=armv7-alpine-linux-musleabihf" ]
++ ldflags += [ "--target=armv7-alpine-linux-musleabihf" ]
+ }
+ if (!is_nacl) {
+ cflags += [
+@@ -1190,8 +1166,8 @@
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
+ !(is_chromeos_lacros && is_chromeos_device)) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ cflags += [ "--target=aarch64-alpine-linux-musl" ]
++ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
+--- ./build/config/rust.gni.orig
++++ ./build/config/rust.gni
+@@ -186,11 +186,11 @@
+ rust_abi_target = ""
+ if (is_linux || is_chromeos) {
+ if (current_cpu == "arm64") {
+- rust_abi_target = "aarch64-unknown-linux-gnu"
++ rust_abi_target = "aarch64-alpine-linux-musl"
+ } else if (current_cpu == "x86") {
+- rust_abi_target = "i686-unknown-linux-gnu"
++ rust_abi_target = "i586-alpine-linux-musl"
+ } else if (current_cpu == "x64") {
+- rust_abi_target = "x86_64-unknown-linux-gnu"
++ rust_abi_target = "x86_64-alpine-linux-musl"
+ } else if (current_cpu == "arm") {
+ if (arm_float_abi == "hard") {
+ float_suffix = "hf"
+@@ -199,13 +199,13 @@
+ }
+ if (arm_arch == "armv7-a" || arm_arch == "armv7") {
+ # No way to inform Rust about the -a suffix.
+- rust_abi_target = "armv7-unknown-linux-gnueabi" + float_suffix
++ rust_abi_target = "armv7-alpine-linux-musleabi" + float_suffix
+ } else {
+- rust_abi_target = "arm-unknown-linux-gnueabi" + float_suffix
++ rust_abi_target = "armv6-alpine-linux-musleabi" + float_suffix
+ }
+ } else {
+ # Best guess for other future platforms.
+- rust_abi_target = current_cpu + "-unknown-linux-gnu"
++ rust_abi_target = current_cpu + "-alpine-linux-musl"
+ }
+ } else if (is_android) {
+ import("//build/config/android/abi.gni")
+--- ./build/config/clang/BUILD.gn.orig
++++ ./build/config/clang/BUILD.gn
+@@ -128,14 +128,15 @@
+ } else if (is_apple) {
+ _dir = "darwin"
+ } else if (is_linux || is_chromeos) {
++ _dir = "linux"
+ if (current_cpu == "x64") {
+- _dir = "x86_64-unknown-linux-gnu"
++ _suffix = "-x86_64"
+ } else if (current_cpu == "x86") {
+- _dir = "i386-unknown-linux-gnu"
++ _suffix = "-i386"
+ } else if (current_cpu == "arm") {
+- _dir = "armv7-unknown-linux-gnueabihf"
++ _suffix = "-armhf"
+ } else if (current_cpu == "arm64") {
+- _dir = "aarch64-unknown-linux-gnu"
++ _suffix = "-aarch64"
+ } else {
+ assert(false) # Unhandled cpu type
+ }
diff --git a/testing/electron/default.conf b/testing/electron/default.conf
new file mode 100644
index 00000000000..41f3f03f144
--- /dev/null
+++ b/testing/electron/default.conf
@@ -0,0 +1,9 @@
+# Default settings for electron. This file is sourced by /bin/sh from
+# the electron launcher.
+
+# Options to pass to electron.
+ELECTRON_FLAGS="--enable-features=WebRTCPipeWireCapturer"
+
+# This can be 'x11', 'wayland', or 'auto'. Overriding default to 'auto',
+# but respecting the variable content if any
+ELECTRON_OZONE_PLATFORM_HINT="${ELECTRON_OZONE_PLATFORM_HINT:-auto}"
diff --git a/testing/electron/disable-dns_config_service.patch b/testing/electron/disable-dns_config_service.patch
new file mode 100644
index 00000000000..a72e1c47c7e
--- /dev/null
+++ b/testing/electron/disable-dns_config_service.patch
@@ -0,0 +1,15 @@
+diff --git a/net/dns/BUILD.gn b/net/dns/BUILD.gn
+index f36bf68..805d9a6 100644
+--- a/net/dns/BUILD.gn
++++ b/net/dns/BUILD.gn
+@@ -130,8 +130,8 @@ source_set("dns") {
+ ]
+ } else if (is_linux) {
+ sources += [
+- "dns_config_service_linux.cc",
+- "dns_config_service_linux.h",
++ "dns_config_service_fuchsia.cc",
++ "dns_config_service_fuchsia.h",
+ ]
+ } else if (is_posix) {
+ sources += [
diff --git a/testing/electron/disable-failing-tests.patch b/testing/electron/disable-failing-tests.patch
new file mode 100644
index 00000000000..2ee8f2be7bf
--- /dev/null
+++ b/testing/electron/disable-failing-tests.patch
@@ -0,0 +1,361 @@
+safesprintf emitnull:
+ error: conversion from 'std::nullptr_t' to 'const internal::Arg' is ambiguous
+ const internal::Arg arg_array[] = { args... };
+
+flatmap incompletetype:
+ error: static assertion failed due to requirement 'std::__is_complete_or_unbounded(std::__type_identity<std::pair<A, A>>{})': template argument must be a complete class or an unbounded array
+ static_assert(std::__is_complete_or_unbounded(__type_identity<_Tp>{}),
+
+i18n, time:
+ various icu failures (new icu time formatting? internal api difference?)
+ a ton of these fail:
+
+ Expected equality of these values:
+ u"Monday 16 May – Saturday 28 May"
+ Which is: u"Monday 16 May \x2013 Saturday 28 May"
+ DateIntervalFormat(begin_time, end_time, DATE_FORMAT_MONTH_WEEKDAY_DAY)
+ Which is: u"Monday 16\x2009\x2013\x2009Saturday 28 May"
+
+ ../../base/i18n/time_formatting_unittest.cc:84: Failure
+ Expected equality of these values:
+ clock12h_pm
+ Which is: u"3:42 PM"
+ TimeFormatTimeOfDay(time)
+ Which is: u"3:42\x202FPM"
+
+ .. and so on
+
+fileutiltest filetofile:
+ ../../base/files/file_util_unittest.cc:2692: Failure
+ Value of: stream
+ Actual: true
+ Expected: false
+
+stacktracetest: crashes (this doesn't seem to use execinfo so probably relies on glibc internal layout for tracing here)
+
+platformthreadtest canchangethreadtype:
+ ../../base/threading/platform_thread_unittest.cc:445: Failure
+ Expected equality of these values:
+ PlatformThread::CanChangeThreadType(ThreadType::kBackground, ThreadType::kResourceEfficient)
+ Which is: true
+ kCanIncreasePriority
+ Which is: false
+
+scopedfdownershiptrackingtest crashonunownedclose: fails due to scoped-file-no-close.patch
+
+stackcontainer customallocator:
+ ../../base/containers/stack_container_unittest.cc:211: Failure
+ Expected equality of these values:
+ 1
+ Allocator::deallocated
+ Which is: 0
+
+nativelibrarytest loadlibrarypreferownsymbols: crashes (probably musl dlopen does not play nice here)
+
+spantest empty: crashes (this looks fishy)
+
+readelfbuildid: crashes (this looks like glibc dynamic linker semantics)
+
+nss db unittest: various nss failures: e.g.:
+ ../../net/cert/nss_cert_database_unittest.cc:209: Failure
+ Expected equality of these values:
+ OK
+ Which is: 0
+ cert_db_->ImportFromPKCS12(GetPublicSlot(), pkcs12_data, u"12345", true, nullptr)
+ Which is: -702
+
+processutiltest cloneflags: fails in CI (ulimit? too many threads?)
+ ../../base/process/process_util_unittest.cc:1434: Failure
+ Value of: process.IsValid()
+ Actual: false
+ Expected: true
+
+addresstrackerlinuxnetlinktest:
+ ../../net/base/address_tracker_linux_unittest.cc:886: Failure
+ Value of: child.process.IsValid()
+ Actual: false
+ Expected: true
+
+ToAddressDoesNotDereference: ; Expected `get_for_extraction_cnt` to be 1 but got 0;
+
+DataCapturedManyThreads: flaky
+
+ProcessAlternativeServicesTest.Process*: crashed ?
+
+--- a/base/strings/safe_sprintf_unittest.cc
++++ b/base/strings/safe_sprintf_unittest.cc
+@@ -740,6 +740,7 @@
+ #endif
+ }
+
++#if 0
+ TEST(SafeSPrintfTest, EmitNULL) {
+ char buf[40];
+ #if defined(__GNUC__)
+@@ -756,6 +757,7 @@
+ #pragma GCC diagnostic pop
+ #endif
+ }
++#endif
+
+ TEST(SafeSPrintfTest, PointerSize) {
+ // The internal data representation is a 64bit value, independent of the
+--- a/base/containers/flat_map_unittest.cc
++++ b/base/containers/flat_map_unittest.cc
+@@ -52,6 +52,7 @@
+
+ } // namespace
+
++#if 0
+ TEST(FlatMap, IncompleteType) {
+ struct A {
+ using Map = flat_map<A, A>;
+@@ -65,6 +66,7 @@
+
+ A a;
+ }
++#endif
+
+ TEST(FlatMap, RangeConstructor) {
+ flat_map<int, int>::value_type input_vals[] = {
+--- a/base/BUILD.gn
++++ b/base/BUILD.gn
+@@ -3194,21 +3194,6 @@
+ "hash/md5_constexpr_unittest.cc",
+ "hash/md5_unittest.cc",
+ "hash/sha1_unittest.cc",
+- "i18n/break_iterator_unittest.cc",
+- "i18n/case_conversion_unittest.cc",
+- "i18n/char_iterator_unittest.cc",
+- "i18n/character_encoding_unittest.cc",
+- "i18n/file_util_icu_unittest.cc",
+- "i18n/icu_string_conversions_unittest.cc",
+- "i18n/icu_util_unittest.cc",
+- "i18n/message_formatter_unittest.cc",
+- "i18n/number_formatting_unittest.cc",
+- "i18n/rtl_unittest.cc",
+- "i18n/streaming_utf8_validator_unittest.cc",
+- "i18n/string_search_unittest.cc",
+- "i18n/time_formatting_unittest.cc",
+- "i18n/timezone_unittest.cc",
+- "i18n/transliterator_unittest.cc",
+ "immediate_crash_unittest.cc",
+ "json/json_parser_unittest.cc",
+ "json/json_reader_unittest.cc",
+--- a/base/files/file_util_unittest.cc
++++ b/base/files/file_util_unittest.cc
+@@ -2686,6 +2686,7 @@
+ }
+ }
+
++#if 0
+ TEST_F(FileUtilTest, FileToFILE) {
+ File file;
+ FILE* stream = FileToFILE(std::move(file), "w");
+@@ -2700,6 +2701,7 @@
+ EXPECT_FALSE(file.IsValid());
+ EXPECT_TRUE(CloseFile(stream));
+ }
++#endif
+
+ TEST_F(FileUtilTest, FILEToFile) {
+ ScopedFILE stream;
+--- a/base/debug/stack_trace_unittest.cc
++++ b/base/debug/stack_trace_unittest.cc
+@@ -345,6 +345,7 @@
+ // sometimes we read fp / pc from the place that previously held
+ // uninitialized value.
+ // TODO(crbug.com/1132511): Enable this test on Fuchsia.
++#if 0
+ #if defined(MEMORY_SANITIZER) || BUILDFLAG(IS_FUCHSIA)
+ #define MAYBE_TraceStackFramePointersFromBuffer \
+ DISABLED_TraceStackFramePointersFromBuffer
+@@ -357,6 +358,7 @@
+ const void* frames[kDepth];
+ ExpectStackFramePointers<kDepth>(frames, kDepth, /*copy_stack=*/true);
+ }
++#endif
+
+ #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_APPLE)
+ #define MAYBE_StackEnd StackEnd
+--- a/base/threading/platform_thread_unittest.cc
++++ b/base/threading/platform_thread_unittest.cc
+@@ -416,6 +416,7 @@
+ // platforms for all priorities. This not being the case. This test documents
+ // and hardcodes what we know. Please inform scheduler-dev@chromium.org if this
+ // proprerty changes for a given platform.
++#if 0
+ TEST(PlatformThreadTest, CanChangeThreadType) {
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
+ // On Ubuntu, RLIMIT_NICE and RLIMIT_RTPRIO are 0 by default, so we won't be
+@@ -472,6 +473,7 @@
+ ThreadType::kBackground));
+ #endif
+ }
++#endif
+
+ TEST(PlatformThreadTest, SetCurrentThreadTypeTest) {
+ TestPriorityResultingFromThreadType(ThreadType::kBackground,
+--- a/base/files/scoped_file_linux_unittest.cc
++++ b/base/files/scoped_file_linux_unittest.cc
+@@ -42,11 +42,13 @@
+ EXPECT_DEATH(ScopedFD(fd.get()), "");
+ }
+
++#if 0
+ TEST_F(ScopedFDOwnershipTrackingTest, CrashOnUnownedClose) {
+ ScopedFD fd = OpenFD();
+ subtle::EnableFDOwnershipEnforcement(true);
+ EXPECT_DEATH(close(fd.get()), "");
+ }
++#endif
+
+ #endif // defined(GTEST_HAS_DEATH_TEST)
+
+--- a/base/native_library_unittest.cc
++++ b/base/native_library_unittest.cc
+@@ -139,6 +139,7 @@
+ // Verifies that the |prefer_own_symbols| option satisfies its guarantee that
+ // a loaded library will always prefer local symbol resolution before
+ // considering global symbols.
++#if 0
+ TEST(NativeLibraryTest, LoadLibraryPreferOwnSymbols) {
+ NativeLibraryOptions options;
+ options.prefer_own_symbols = true;
+@@ -171,6 +172,7 @@
+ EXPECT_EQ(2, NativeLibraryTestIncrement());
+ EXPECT_EQ(3, NativeLibraryTestIncrement());
+ }
++#endif
+
+ #endif // !BUILDFLAG(IS_ANDROID) && !defined(THREAD_SANITIZER) && \
+ // !defined(MEMORY_SANITIZER)
+--- a/base/containers/span_unittest.cc
++++ b/base/containers/span_unittest.cc
+@@ -995,6 +995,7 @@
+ }
+ }
+
++#if 0
+ TEST(SpanTest, Empty) {
+ {
+ span<int> span;
+@@ -1014,6 +1015,7 @@
+ EXPECT_TRUE(span_of_checked_iterators.empty());
+ }
+ }
++#endif
+
+ TEST(SpanTest, OperatorAt) {
+ static constexpr int kArray[] = {1, 6, 1, 8, 0};
+--- a/base/debug/elf_reader_unittest.cc
++++ b/base/debug/elf_reader_unittest.cc
+@@ -194,6 +194,7 @@
+ }
+ }
+
++#if 0
+ TEST(ElfReaderTestWithCurrentImage, ReadElfBuildId) {
+ #if BUILDFLAG(IS_ANDROID)
+ // On Android the library loader memory maps the full so file.
+@@ -229,6 +230,7 @@
+ UnloadNativeLibrary(library);
+ #endif
+ }
++#endif
+
+ } // namespace debug
+ } // namespace base
+--- a/net/BUILD.gn
++++ b/net/BUILD.gn
+@@ -4826,7 +4826,6 @@
+ sources += [
+ "cert/internal/system_trust_store_nss_unittest.cc",
+ "cert/internal/trust_store_nss_unittest.cc",
+- "cert/nss_cert_database_unittest.cc",
+ "cert/x509_util_nss_unittest.cc",
+ ]
+ if (!is_castos) {
+--- a/base/process/process_util_unittest.cc
++++ b/base/process/process_util_unittest.cc
+@@ -1419,7 +1419,7 @@
+ return kSuccess;
+ }
+
+-#if defined(CLONE_NEWUSER) && defined(CLONE_NEWPID)
++#if 0 && defined(CLONE_NEWUSER) && defined(CLONE_NEWPID)
+ TEST_F(ProcessUtilTest, CloneFlags) {
+ if (!PathExists(FilePath("/proc/self/ns/user")) ||
+ !PathExists(FilePath("/proc/self/ns/pid"))) {
+--- a/net/base/address_tracker_linux_unittest.cc
++++ b/net/base/address_tracker_linux_unittest.cc
+@@ -831,6 +831,7 @@
+ //
+ // This test creates multiple concurrent `AddressTrackerLinux` instances in
+ // separate processes, each in their own PID namespaces.
++#if 0
+ TEST(AddressTrackerLinuxNetlinkTest, TestInitializeTwoTrackersInPidNamespaces) {
+ // This test initializes `kNumChildren` instances of `AddressTrackerLinux` in
+ // tracking mode, each in their own child process running in a PID namespace.
+@@ -901,6 +902,7 @@
+ ASSERT_EQ(exit_code, 0);
+ }
+ }
++#endif
+
+ MULTIPROCESS_TEST_MAIN(ChildProcessInitializeTrackerForTesting) {
+ base::test::TaskEnvironment task_env(
+--- a/base/trace_event/trace_event_unittest.cc
++++ b/base/trace_event/trace_event_unittest.cc
+@@ -1368,6 +1368,7 @@
+ }
+
+ // Test that data sent from multiple threads is gathered
++#if 0
+ TEST_F(TraceEventTestFixture, DataCapturedManyThreads) {
+ BeginTrace();
+
+@@ -1408,6 +1409,7 @@
+ delete task_complete_events[i];
+ }
+ }
++#endif
+
+ // Test that thread and process names show up in the trace.
+ // In SDK build, thread names are not tracked inside //base. Instead, there's
+--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
+@@ -1481,6 +1481,7 @@
+ // `base::to_address()` will use the dereference operator. This is not
+ // what we want; this test enforces extraction semantics for
+ // `to_address()`.
++#if 0
+ TEST_F(RawPtrTest, ToAddressDoesNotDereference) {
+ CountingRawPtr<int> ptr = nullptr;
+ int* raw = base::to_address(ptr);
+@@ -1492,6 +1493,7 @@
+ .get_for_duplication_cnt = 0}),
+ CountersMatch());
+ }
++#endif
+
+ TEST_F(RawPtrTest, ToAddressGivesBackRawAddress) {
+ int* raw = nullptr;
+--- a/net/http/http_stream_factory_unittest.cc
++++ b/net/http/http_stream_factory_unittest.cc
+@@ -3477,6 +3477,7 @@
+ DefaultCTPolicyEnforcer ct_policy_enforcer_;
+ };
+
++#if 0
+ TEST_F(ProcessAlternativeServicesTest, ProcessEmptyAltSvc) {
+ session_ =
+ std::make_unique<HttpNetworkSession>(session_params_, session_context_);
+@@ -3585,6 +3586,7 @@
+ alternatives[0].host_port_pair());
+ EXPECT_EQ(0u, alternatives[0].advertised_versions().size());
+ }
++#endif
+
+ } // namespace
+
diff --git a/testing/electron/electron-launcher.sh b/testing/electron/electron-launcher.sh
new file mode 100644
index 00000000000..546d4ccb1c4
--- /dev/null
+++ b/testing/electron/electron-launcher.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Allow the user to override command-line flags
+# This is based on Debian's chromium-browser package, and is intended
+# to be consistent with Debian.
+for f in /etc/electron/*.conf; do
+ [ -f ${f} ] && . "${f}"
+done
+
+# Prefer user defined ELECTRON_USER_FLAGS (from env) over system
+# default ELECTRON_FLAGS (from /etc/electron/default.conf).
+export ELECTRON_FLAGS="$ELECTRON_FLAGS ${ELECTRON_USER_FLAGS:-"$ELECTRON_USER_FLAGS"}"
+# Re-export, for it to be accessible by the process
+export ELECTRON_OZONE_PLATFORM_HINT="${ELECTRON_OZONE_PLATFORM_HINT}"
+
+if [ "$ELECTRON_RUN_AS_NODE" == "1" ] && [ "$ELECTRON_STILL_PASS_THE_DEFAULT_FLAGS" != "1" ]; then
+ exec "/usr/lib/electron/electron" "$@"
+fi
+
+exec "/usr/lib/electron/electron" "$@" ${ELECTRON_FLAGS}
diff --git a/testing/electron/electron.desktop b/testing/electron/electron.desktop
new file mode 100644
index 00000000000..a3cc6bbe05e
--- /dev/null
+++ b/testing/electron/electron.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=electron21
+Icon=electron
+Exec=electron %u
+Categories=Development;GTK;
+StartupNotify=true
+StartupWMClass=electron
diff --git a/testing/electron/fc-cache-version.patch b/testing/electron/fc-cache-version.patch
new file mode 100644
index 00000000000..3b768978a43
--- /dev/null
+++ b/testing/electron/fc-cache-version.patch
@@ -0,0 +1,13 @@
+instead of hardcoding the version, use the defined macro.
+--
+--- a/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
++++ b/third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc
+@@ -56,7 +56,7 @@
+ FcFini();
+
+ // Check existence of intended fontconfig cache file.
+- auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-9";
++ auto cache = fontconfig_caches + "/" + kCacheKey + "-le64.cache-" + FC_CACHE_VERSION;
+ bool cache_exists = access(cache.c_str(), F_OK) == 0;
+ return !cache_exists;
+ }
diff --git a/testing/electron/fix-missing-cstdint-include-musl.patch b/testing/electron/fix-missing-cstdint-include-musl.patch
new file mode 100644
index 00000000000..00f16afb736
--- /dev/null
+++ b/testing/electron/fix-missing-cstdint-include-musl.patch
@@ -0,0 +1,13 @@
+Patch-Source: https://github.com/void-linux/void-packages/blob/378db3cf5087877588aebaaa8ca3c9d94dfb54e0/srcpkgs/chromium/patches/fix-missing-cstdint-include-musl.patch
+fixed in https://github.com/google/quiche/commit/4d4820f0a959be7fa22285d114a5b5b8676f10fe
+--
+--- a/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
++++ b/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
+@@ -3,6 +3,7 @@
+
+ #include <stddef.h>
+
++#include <cstdint>
+ #include <functional>
+
+ #include "common/platform/api/quiche_export.h"
diff --git a/testing/electron/fix-opus.patch b/testing/electron/fix-opus.patch
new file mode 100644
index 00000000000..8841a32d728
--- /dev/null
+++ b/testing/electron/fix-opus.patch
@@ -0,0 +1,12 @@
+--- a/media/filters/ffmpeg_glue.cc
++++ b/media/filters/ffmpeg_glue.cc
+@@ -142,7 +142,7 @@ const char* FFmpegGlue::GetAllowedAudioDecoders() {
+ static const base::NoDestructor<std::string> kAllowedAudioCodecs([]() {
+ // This should match the configured lists in //third_party/ffmpeg.
+ std::string allowed_decoders(
+- "vorbis,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,"
++ "vorbis,opus,libopus,flac,pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,"
+ "mp3,pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw");
+ #if BUILDFLAG(USE_PROPRIETARY_CODECS)
+ allowed_decoders += ",aac";
+
diff --git a/testing/electron/fstatat-32bit.patch b/testing/electron/fstatat-32bit.patch
new file mode 100644
index 00000000000..1627ffa7e64
--- /dev/null
+++ b/testing/electron/fstatat-32bit.patch
@@ -0,0 +1,17 @@
+fstatat64 is macrod to fstatat in sys/stat.h in musl- but then that fstatat is
+used in the _syscall4 macro mapping to __NR_$name, and __NR_fstatat is not
+defined anywhere here, as it wants the 64 name.
+
+so, just let it keep the name with an undef of the stat.h macro, then the macro
+expansion below evaluates correctly.
+--- a/third_party/lss/linux_syscall_support.h
++++ b/third_party/lss/linux_syscall_support.h
+@@ -4947,7 +4947,8 @@
+ # endif
+ #endif
+ #if defined(__NR_fstatat64)
++ #undef fstatat64
+ LSS_INLINE _syscall4(int, fstatat64, int, d,
+ const char *, p,
+ struct kernel_stat64 *, b, int, f)
+ #endif
diff --git a/testing/electron/gdbinit.patch b/testing/electron/gdbinit.patch
new file mode 100644
index 00000000000..5958631ec6b
--- /dev/null
+++ b/testing/electron/gdbinit.patch
@@ -0,0 +1,22 @@
+aports is a git tree so these git commands get the wrong directory
+--- a/tools/gdb/gdbinit
++++ b/tools/gdb/gdbinit
+@@ -50,17 +50,7 @@
+
+ def set_src_dir(compile_dir):
+ global src_dir
+- git = subprocess.Popen(
+- ['git', '-C', compile_dir, 'rev-parse', '--show-toplevel'],
+- stdout=subprocess.PIPE,
+- stderr=subprocess.PIPE)
+- src_dir, _ = git.communicate()
+- if git.returncode:
+- return
+- if isinstance(src_dir, str):
+- src_dir = src_dir.rstrip()
+- else:
+- src_dir = src_dir.decode('utf-8').rstrip()
++ src_dir = os.path.abspath(os.getcwd())
+
+ load_libcxx_pretty_printers(src_dir)
+
diff --git a/testing/electron/generic-sensor-include.patch b/testing/electron/generic-sensor-include.patch
new file mode 100644
index 00000000000..e8e2563b3cc
--- /dev/null
+++ b/testing/electron/generic-sensor-include.patch
@@ -0,0 +1,11 @@
+--- a/services/device/public/cpp/generic_sensor/sensor_reading.h
++++ b/services/device/public/cpp/generic_sensor/sensor_reading.h
+@@ -5,6 +5,8 @@
+ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+
++#include <cstddef>
++#include <cstdint>
+ #include <type_traits>
+
+ namespace device {
diff --git a/testing/electron/icon.patch b/testing/electron/icon.patch
new file mode 100644
index 00000000000..101b60ac9cb
--- /dev/null
+++ b/testing/electron/icon.patch
@@ -0,0 +1,21 @@
+--- a/electron/default_app/default_app.ts
++++ b/electron/default_app/default_app.ts
+@@ -61,7 +61,7 @@
+ };
+
+ if (process.platform === 'linux') {
+- options.icon = url.fileURLToPath(new URL('icon.png', import.meta.url));
++ options.icon = 'file:///usr/share/icons/hicolor/1024x1024/apps/electron.png';
+ }
+
+ mainWindow = new BrowserWindow(options);
+--- a/electron/filenames.gni
++++ b/electron/filenames.gni
+@@ -6,7 +6,6 @@
+ ]
+
+ default_app_static_sources = [
+- "default_app/icon.png",
+ "default_app/index.html",
+ "default_app/package.json",
+ "default_app/styles.css",
diff --git a/testing/electron/import-version.patch b/testing/electron/import-version.patch
new file mode 100644
index 00000000000..d275038b27a
--- /dev/null
+++ b/testing/electron/import-version.patch
@@ -0,0 +1,15 @@
+they fixed the import to be glibc conditional, but now nothing is imported so
+all the string functions are missing.
+--
+--- a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
++++ b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+@@ -61,8 +61,7 @@
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if defined(__GLIBC__) && (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
+-#include <gnu/libc-version.h>
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
+
+ #include "base/linux_util.h"
+ #include "base/strings/string_split.h"
diff --git a/testing/electron/libstdc++13.patch b/testing/electron/libstdc++13.patch
new file mode 100644
index 00000000000..b04fa3551ba
--- /dev/null
+++ b/testing/electron/libstdc++13.patch
@@ -0,0 +1,279 @@
+missing libstdc++13 includes
+--
+--- a/third_party/ruy/src/ruy/profiler/instrumentation.h
++++ b/third_party/ruy/src/ruy/profiler/instrumentation.h
+@@ -19,6 +19,7 @@
+ #ifdef RUY_PROFILER
+ #include <cstdio>
+ #include <mutex>
++#include <string>
+ #include <vector>
+ #endif
+
+--- a/third_party/openscreen/src/platform/base/error.h
++++ b/third_party/openscreen/src/platform/base/error.h
+@@ -6,6 +6,7 @@
+ #define PLATFORM_BASE_ERROR_H_
+
+ #include <cassert>
++#include <cstdint>
+ #include <ostream>
+ #include <string>
+ #include <utility>
+--- a/ui/base/prediction/kalman_filter.h
++++ b/ui/base/prediction/kalman_filter.h
+@@ -8,6 +8,8 @@
+ #include "base/component_export.h"
+ #include "ui/gfx/geometry/matrix3_f.h"
+
++#include <cstdint>
++
+ namespace ui {
+
+ // This Kalman filter is used to predict state in one axles.
+--- a/ui/events/types/scroll_types.h
++++ b/ui/events/types/scroll_types.h
+@@ -5,6 +5,8 @@
+ #ifndef UI_EVENTS_TYPES_SCROLL_TYPES_H_
+ #define UI_EVENTS_TYPES_SCROLL_TYPES_H_
+
++#include <cstdint>
++
+ namespace ui {
+
+ enum class ScrollGranularity : uint8_t {
+--- a/third_party/webrtc/rtc_base/system/file_wrapper.h
++++ b/third_party/webrtc/rtc_base/system/file_wrapper.h
+@@ -14,6 +14,7 @@
+ #include <stddef.h>
+ #include <stdio.h>
+
++#include <cstdint>
+ #include <string>
+
+ #include "absl/strings/string_view.h"
+--- a/third_party/pdfium/constants/annotation_flags.h
++++ b/third_party/pdfium/constants/annotation_flags.h
+@@ -5,6 +5,8 @@
+ #ifndef CONSTANTS_ANNOTATION_FLAGS_H_
+ #define CONSTANTS_ANNOTATION_FLAGS_H_
+
++#include <cstdint>
++
+ namespace pdfium {
+ namespace annotation_flags {
+
+--- a/third_party/s2cellid/src/s2/util/math/mathutil.h
++++ b/third_party/s2cellid/src/s2/util/math/mathutil.h
+@@ -21,6 +21,7 @@
+ #ifndef S2_UTIL_MATH_MATHUTIL_H_
+ #define S2_UTIL_MATH_MATHUTIL_H_
+
++#include <cstdint>
+ #include <type_traits>
+
+ class MathUtil {
+--- a/third_party/s2cellid/src/s2/s1angle.h
++++ b/third_party/s2cellid/src/s2/s1angle.h
+@@ -24,6 +24,7 @@
+ #define S2_S1ANGLE_H_
+
+ #include <math.h>
++#include <cstdint>
+ #include <limits>
+ #include <ostream>
+ #include <type_traits>
+--- a/third_party/maldoca/src/maldoca/ole/header.h
++++ b/third_party/maldoca/src/maldoca/ole/header.h
+@@ -45,6 +45,8 @@
+
+ #include "absl/strings/string_view.h"
+
++#include <cstdint>
++
+ namespace maldoca {
+
+ class OLEHeader {
+--- a/components/password_manager/core/browser/generation/password_generator.h
++++ b/components/password_manager/core/browser/generation/password_generator.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
+ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
+
++#include <cstdint>
+ #include <string>
+
+
+--- a/base/debug/profiler.h
++++ b/base/debug/profiler.h
+@@ -7,6 +7,7 @@
+
+ #include <stddef.h>
+
++#include <cstdint>
+ #include <string>
+
+ #include "base/base_export.h"
+--- a/components/dom_distiller/core/url_utils.h
++++ b/components/dom_distiller/core/url_utils.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_DOM_DISTILLER_CORE_URL_UTILS_H_
+ #define COMPONENTS_DOM_DISTILLER_CORE_URL_UTILS_H_
+
++#include <cstdint>
+ #include <string>
+
+ #include "base/strings/string_piece_forward.h"
+--- a/components/feature_engagement/internal/event_storage_validator.h
++++ b/components/feature_engagement/internal/event_storage_validator.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
+
++#include <cstdint>
+ #include <string>
+
+ namespace feature_engagement {
+--- a/chrome/test/chromedriver/chrome/web_view_impl.cc
++++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
+@@ -8,6 +8,7 @@
+ #include <algorithm>
+ #include <memory>
+ #include <queue>
++#include <string>
+ #include <utility>
+ #include <vector>
+
+--- a/cc/trees/target_property.cc
++++ b/cc/trees/target_property.cc
+@@ -2,6 +2,8 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++#include <cstdint>
++
+ #include "cc/trees/target_property.h"
+
+ #include "ui/gfx/animation/keyframe/target_property.h"
+--- a/gpu/config/gpu_feature_info.h
++++ b/gpu/config/gpu_feature_info.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
+ #define GPU_CONFIG_GPU_FEATURE_INFO_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/gpu/config/gpu_driver_bug_workarounds.h
++++ b/gpu/config/gpu_driver_bug_workarounds.h
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+ #define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
+
++#include <cstdint>
+ #include <vector>
+
+ #include "build/build_config.h"
+--- a/third_party/blink/public/common/page_state/page_state.h
++++ b/third_party/blink/public/common/page_state/page_state.h
+@@ -5,6 +5,7 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_STATE_PAGE_STATE_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_STATE_PAGE_STATE_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/pdf/document_attachment_info.h
++++ b/pdf/document_attachment_info.h
+@@ -5,6 +5,7 @@
+ #ifndef PDF_DOCUMENT_ATTACHMENT_INFO_H_
+ #define PDF_DOCUMENT_ATTACHMENT_INFO_H_
+
++#include <cstdint>
+ #include <string>
+
+
+--- a/components/payments/content/utility/fingerprint_parser.h
++++ b/components/payments/content/utility/fingerprint_parser.h
+@@ -7,6 +7,7 @@
+
+ #include <stddef.h>
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/media/base/video_transformation.h
++++ b/media/base/video_transformation.h
+@@ -5,6 +5,7 @@
+ #ifndef MEDIA_BASE_VIDEO_TRANSFORMATION_H_
+ #define MEDIA_BASE_VIDEO_TRANSFORMATION_H_
+
++#include <cstdint>
+ #include <string>
+
+ #include "base/numerics/math_constants.h"
+--- a/components/omnibox/browser/on_device_head_model.h
++++ b/components/omnibox/browser/on_device_head_model.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
+ #define COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
+
++#include <cstdint>
+ #include <string>
+ #include <utility>
+ #include <vector>
+--- a/components/autofill/core/browser/autofill_ablation_study.h
++++ b/components/autofill/core/browser/autofill_ablation_study.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
+ #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
+
++#include <cstdint>
+ #include <string>
+
+ class GURL;
+--- a/components/autofill/core/browser/strike_databases/strike_database_base.h
++++ b/components/autofill/core/browser/strike_databases/strike_database_base.h
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_STRIKE_DATABASES_STRIKE_DATABASE_BASE_H_
+ #define COMPONENTS_AUTOFILL_CORE_BROWSER_STRIKE_DATABASES_STRIKE_DATABASE_BASE_H_
+
++#include <cstdint>
+ #include <map>
+ #include <string>
+ #include <vector>
+--- a/chrome/browser/resource_coordinator/decision_details.h
++++ b/chrome/browser/resource_coordinator/decision_details.h
+@@ -5,6 +5,7 @@
+ #ifndef CHROME_BROWSER_RESOURCE_COORDINATOR_DECISION_DETAILS_H_
+ #define CHROME_BROWSER_RESOURCE_COORDINATOR_DECISION_DETAILS_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/net/third_party/quiche/src/quiche/quic/core/qpack/qpack_stream_sender_delegate.h
++++ b/net/third_party/quiche/src/quiche/quic/core/qpack/qpack_stream_sender_delegate.h
+@@ -8,6 +8,8 @@
+ #include "absl/strings/string_view.h"
+ #include "quiche/quic/platform/api/quic_export.h"
+
++#include <cstdint>
++
+ namespace quic {
+
+ // This interface writes encoder/decoder data to peer.
+--- a/third_party/perfetto/include/perfetto/base/export.h
++++ b/third_party/perfetto/include/perfetto/base/export.h
+@@ -17,6 +17,8 @@
+ #ifndef INCLUDE_PERFETTO_BASE_EXPORT_H_
+ #define INCLUDE_PERFETTO_BASE_EXPORT_H_
+
++#include <cstdint>
++
+ #include "perfetto/base/build_config.h"
+ #include "perfetto/public/abi/export.h"
+
diff --git a/testing/electron/mman.patch b/testing/electron/mman.patch
new file mode 100644
index 00000000000..d15605a47ff
--- /dev/null
+++ b/testing/electron/mman.patch
@@ -0,0 +1,13 @@
+needed for PKEY_DISABLE_WRITE. these are documented as also being from sys/
+mman.h with GNU_SOURCE, but musl doesn't do that, so these are strictly from
+kernel headers
+--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
+@@ -60,6 +60,7 @@
+ #include <sys/mman.h>
+ #include <sys/resource.h>
+ #include <sys/time.h>
++#include <linux/mman.h>
+ #endif // BUILDFLAG(IS_POSIX)
+
+ #if BUILDFLAG(ENABLE_PARTITION_ALLOC_AS_MALLOC_SUPPORT) && BUILDFLAG(IS_MAC)
diff --git a/testing/electron/musl-auxv.patch b/testing/electron/musl-auxv.patch
new file mode 100644
index 00000000000..ce348cc4e23
--- /dev/null
+++ b/testing/electron/musl-auxv.patch
@@ -0,0 +1,11 @@
+--- ./v8/src/base/cpu.cc.orig
++++ ./v8/src/base/cpu.cc
+@@ -14,7 +14,7 @@
+ #if V8_OS_LINUX
+ #include <linux/auxvec.h> // AT_HWCAP
+ #endif
+-#if V8_GLIBC_PREREQ(2, 16) || V8_OS_ANDROID
++#if 1
+ #include <sys/auxv.h> // getauxval()
+ #endif
+ #if V8_OS_QNX
diff --git a/testing/electron/musl-sandbox.patch b/testing/electron/musl-sandbox.patch
new file mode 100644
index 00000000000..52c3b210503
--- /dev/null
+++ b/testing/electron/musl-sandbox.patch
@@ -0,0 +1,124 @@
+musl uses different syscalls from glibc for some functions, so the sandbox has
+to account for that
+--
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc ./sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+index ff5a1c0..da56b9b 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
++++ ./sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+@@ -139,21 +139,11 @@ namespace sandbox {
+ // present (as in newer versions of posix_spawn).
+ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+ const Arg<unsigned long> flags(0);
+-
+- // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
+- const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
+- CLONE_SIGHAND | CLONE_THREAD |
+- CLONE_SYSVSEM;
+- const uint64_t kObsoleteAndroidCloneMask = kAndroidCloneMask | CLONE_DETACHED;
+-
+- const uint64_t kGlibcPthreadFlags =
+- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD |
+- CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID;
+- const BoolExpr glibc_test = flags == kGlibcPthreadFlags;
+-
+- const BoolExpr android_test =
+- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
+- flags == kGlibcPthreadFlags);
++ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
++ CLONE_THREAD | CLONE_SYSVSEM;
++ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
++ CLONE_DETACHED;
++ const BoolExpr thread_clone_ok = (flags&~safe)==required;
+
+ // The following two flags are the two important flags in any vfork-emulating
+ // clone call. EPERM any clone call that contains both of them.
+@@ -163,7 +153,7 @@ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+ AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
+ (flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
+
+- return If(IsAndroid() ? android_test : glibc_test, Allow())
++ return If(thread_clone_ok, Allow())
+ .ElseIf(is_fork_or_clone_vfork, Error(EPERM))
+ .Else(CrashSIGSYSClone());
+ }
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc ./sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+index d9d1882..0567557 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ ./sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -392,6 +392,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
+ #if defined(__i386__)
+ case __NR_waitpid:
+ #endif
++ case __NR_set_tid_address:
+ return true;
+ case __NR_clone: // Should be parameter-restricted.
+ case __NR_setns: // Privileged.
+@@ -404,7 +405,6 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+ case __NR_set_thread_area:
+ #endif
+- case __NR_set_tid_address:
+ case __NR_unshare:
+ #if !defined(__mips__) && !defined(__aarch64__)
+ case __NR_vfork:
+@@ -514,6 +514,8 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
+ case __NR_mlock:
+ case __NR_munlock:
+ case __NR_munmap:
++ case __NR_mremap:
++ case __NR_membarrier:
+ return true;
+ case __NR_madvise:
+ case __NR_mincore:
+@@ -531,7 +533,6 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
+ case __NR_modify_ldt:
+ #endif
+ case __NR_mprotect:
+- case __NR_mremap:
+ case __NR_msync:
+ case __NR_munlockall:
+ case __NR_readahead:
+diff --git a/sandbox/linux/system_headers/linux_syscalls.h ./sandbox/linux/system_headers/linux_syscalls.h
+index 2b78a0c..b6fedb5 100644
+--- a/sandbox/linux/system_headers/linux_syscalls.h
++++ b/sandbox/linux/system_headers/linux_syscalls.h
+@@ -10,6 +10,7 @@
+ #define SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
+
+ #include "build/build_config.h"
++#include <sys/syscall.h>
+
+ #if defined(__x86_64__)
+ #include "sandbox/linux/system_headers/x86_64_linux_syscalls.h"
+--- a/sandbox/policy/linux/bpf_renderer_policy_linux.cc
++++ b/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+@@ -94,6 +94,9 @@
+ case __NR_pwrite64:
+ case __NR_sched_get_priority_max:
+ case __NR_sched_get_priority_min:
++ case __NR_sched_getparam:
++ case __NR_sched_getscheduler:
++ case __NR_sched_setscheduler:
+ case __NR_sysinfo:
+ case __NR_times:
+ case __NR_uname:
+--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -225,10 +225,15 @@
+ if (sysno == __NR_getpriority || sysno ==__NR_setpriority)
+ return RestrictGetSetpriority(current_pid);
+
++ // XXX: hacks for musl sandbox, calls needed?
++ if (sysno == __NR_sched_getparam || sysno == __NR_sched_getscheduler ||
++ sysno == __NR_sched_setscheduler) {
++ return Allow();
++ }
++
+ // The scheduling syscalls are used in threading libraries and also heavily in
+ // abseil. See for example https://crbug.com/1370394.
+- if (sysno == __NR_sched_getaffinity || sysno == __NR_sched_getparam ||
+- sysno == __NR_sched_getscheduler || sysno == __NR_sched_setscheduler) {
++ if (sysno == __NR_sched_getaffinity) {
+ return RestrictSchedTarget(current_pid, sysno);
+ }
+
diff --git a/testing/electron/musl-tid-caching.patch b/testing/electron/musl-tid-caching.patch
new file mode 100644
index 00000000000..498ce827317
--- /dev/null
+++ b/testing/electron/musl-tid-caching.patch
@@ -0,0 +1,85 @@
+the sandbox caching of thread id's only works with glibc
+see: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/32356
+see: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13579
+--
+--- a/sandbox/linux/services/namespace_sandbox.cc
++++ b/sandbox/linux/services/namespace_sandbox.cc
+@@ -209,6 +209,70 @@
+ return base::LaunchProcess(argv, launch_options_copy);
+ }
+
++#if defined(__aarch64__)
++#define TLS_ABOVE_TP
++#endif
++
++struct musl_pthread
++{
++ /* Part 1 -- these fields may be external or
++ * internal (accessed via asm) ABI. Do not change. */
++ struct pthread *self;
++#ifndef TLS_ABOVE_TP
++ uintptr_t *dtv;
++#endif
++ struct pthread *prev, *next; /* non-ABI */
++ uintptr_t sysinfo;
++#ifndef TLS_ABOVE_TP
++#ifdef CANARY_PAD
++ uintptr_t canary_pad;
++#endif
++ uintptr_t canary;
++#endif
++
++/* Part 2 -- implementation details, non-ABI. */
++ int tid;
++ int errno_val;
++ volatile int detach_state;
++ volatile int cancel;
++ volatile unsigned char canceldisable, cancelasync;
++ unsigned char tsd_used:1;
++ unsigned char dlerror_flag:1;
++ unsigned char *map_base;
++ size_t map_size;
++ void *stack;
++ size_t stack_size;
++ size_t guard_size;
++ void *result;
++ struct __ptcb *cancelbuf;
++ void **tsd;
++ struct {
++ volatile void *volatile head;
++ long off;
++ volatile void *volatile pending;
++ } robust_list;
++ int h_errno_val;
++ volatile int timer_id;
++ locale_t locale;
++ volatile int killlock[1];
++ char *dlerror_buf;
++ void *stdio_locks;
++
++ /* Part 3 -- the positions of these fields relative to
++ * the end of the structure is external and internal ABI. */
++#ifdef TLS_ABOVE_TP
++ uintptr_t canary;
++ uintptr_t *dtv;
++#endif
++};
++
++void MaybeUpdateMuslTidCache()
++{
++ pid_t real_tid = sys_gettid();
++ pid_t* cached_tid_location = &reinterpret_cast<struct musl_pthread*>(pthread_self())->tid;
++ *cached_tid_location = real_tid;
++}
++
+ // static
+ pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) {
+ const pid_t pid =
+@@ -226,6 +290,7 @@
+ #if defined(LIBC_GLIBC)
+ MaybeUpdateGlibcTidCache();
+ #endif
++ MaybeUpdateMuslTidCache();
+ return 0;
+ }
+
diff --git a/testing/electron/musl-v8-monotonic-pthread-cont_timedwait.patch b/testing/electron/musl-v8-monotonic-pthread-cont_timedwait.patch
new file mode 100644
index 00000000000..3a99ee54309
--- /dev/null
+++ b/testing/electron/musl-v8-monotonic-pthread-cont_timedwait.patch
@@ -0,0 +1,23 @@
+use monotonic clock for pthread_cond_timedwait with musl too, since it supports
+it
+--
+--- a/v8/src/base/platform/condition-variable.cc
++++ b/v8/src/base/platform/condition-variable.cc
+@@ -16,7 +16,7 @@
+
+ ConditionVariable::ConditionVariable() {
+ #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
+- (V8_OS_LINUX && V8_LIBC_GLIBC))
++ V8_OS_LINUX)
+ // On Free/Net/OpenBSD and Linux with glibc we can change the time
+ // source for pthread_cond_timedwait() to use the monotonic clock.
+ pthread_condattr_t attr;
+@@ -92,7 +92,7 @@
+ &native_handle_, &mutex->native_handle(), &ts);
+ #else
+ #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
+- (V8_OS_LINUX && V8_LIBC_GLIBC))
++ V8_OS_LINUX)
+ // On Free/Net/OpenBSD and Linux with glibc we can change the time
+ // source for pthread_cond_timedwait() to use the monotonic clock.
+ result = clock_gettime(CLOCK_MONOTONIC, &ts);
diff --git a/testing/electron/no-execinfo.patch b/testing/electron/no-execinfo.patch
new file mode 100644
index 00000000000..4b578976a3e
--- /dev/null
+++ b/testing/electron/no-execinfo.patch
@@ -0,0 +1,69 @@
+musl does not have execinfo.h, and hence no implementation of
+. backtrace()
+. backtrace_symbols()
+for discussion about this, see https://www.openwall.com/lists/musl/2021/07/16/1
+--
+--- a/v8/src/codegen/external-reference-table.cc
++++ b/v8/src/codegen/external-reference-table.cc
+@@ -11,7 +11,9 @@
+
+ #if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
+ #define SYMBOLIZE_FUNCTION
++#if defined(__GLIBC__)
+ #include <execinfo.h>
++#endif
+
+ #include <vector>
+
+@@ -96,7 +98,7 @@
+ }
+
+ const char* ExternalReferenceTable::ResolveSymbol(void* address) {
+-#ifdef SYMBOLIZE_FUNCTION
++#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__)
+ char** names = backtrace_symbols(&address, 1);
+ const char* name = names[0];
+ // The array of names is malloc'ed. However, each name string is static
+--- a/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
++++ b/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+@@ -58,7 +58,7 @@
+ #define HAVE_ERRNO_H 1
+
+ /* Define to 1 if you have the <execinfo.h> header file. */
+-#define HAVE_EXECINFO_H 1
++/* #define HAVE_EXECINFO_H 1 */
+
+ /* Define to 1 if you have the <fcntl.h> header file. */
+ #define HAVE_FCNTL_H 1
+--- a/base/debug/stack_trace.cc
++++ b/base/debug/stack_trace.cc
+@@ -251,7 +253,9 @@
+ }
+
+ void StackTrace::OutputToStream(std::ostream* os) const {
++#if defined(__GLIBC__) && !defined(_AIX)
+ OutputToStreamWithPrefix(os, nullptr);
++#endif
+ }
+
+ std::string StackTrace::ToString() const {
+@@ -281,7 +281,7 @@
+ }
+ std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
+ std::stringstream stream;
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ OutputToStreamWithPrefix(&stream, prefix_string);
+ #endif
+ return stream.str();
+--- a/base/debug/stack_trace_unittest.cc
++++ b/base/debug/stack_trace_unittest.cc
+@@ -33,7 +33,7 @@
+ typedef testing::Test StackTraceTest;
+ #endif
+
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if !defined(__UCLIBC__) && !defined(_AIX) && defined(__GLIBC__)
+ // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
+ // See https://crbug.com/706728
+
diff --git a/testing/electron/no-mallinfo.patch b/testing/electron/no-mallinfo.patch
new file mode 100644
index 00000000000..37abb3fe062
--- /dev/null
+++ b/testing/electron/no-mallinfo.patch
@@ -0,0 +1,124 @@
+musl does not implement mallinfo()/mallinfo2()
+(or rather, malloc-ng, musl's allocator, doesn't)
+--
+--- a/base/trace_event/malloc_dump_provider.cc
++++ b/base/trace_event/malloc_dump_provider.cc
+@@ -185,7 +185,6 @@
+ #define MALLINFO2_FOUND_IN_LIBC
+ struct mallinfo2 info = mallinfo2();
+ #endif
+-#endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ #if !defined(MALLINFO2_FOUND_IN_LIBC)
+ struct mallinfo info = mallinfo();
+ #endif
+@@ -205,6 +204,7 @@
+ sys_alloc_dump->AddScalar(MemoryAllocatorDump::kNameSize,
+ MemoryAllocatorDump::kUnitsBytes, info.uordblks);
+ }
++#endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ }
+ #endif
+
+@@ -339,7 +340,7 @@
+ &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
+-#else
++#elif defined(__GLIBC__)
+ ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+ &allocated_objects_size, &allocated_objects_count);
+ #endif
+--- a/base/process/process_metrics_posix.cc
++++ b/base/process/process_metrics_posix.cc
+@@ -105,7 +105,7 @@
+
+ #endif // !BUILDFLAG(IS_FUCHSIA)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+ namespace {
+
+ size_t GetMallocUsageMallinfo() {
+@@ -123,7 +123,7 @@
+ }
+
+ } // namespace
+-#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
++#endif // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
+ // BUILDFLAG(IS_ANDROID)
+
+ size_t ProcessMetrics::GetMallocUsage() {
+@@ -131,9 +131,9 @@
+ malloc_statistics_t stats = {0};
+ malloc_zone_statistics(nullptr, &stats);
+ return stats.size_in_use;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+ return GetMallocUsageMallinfo();
+-#elif BUILDFLAG(IS_FUCHSIA)
++#else
+ // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
+ return 0;
+ #endif
+--- ./third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc.orig
++++ ./third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc
+@@ -35,7 +35,7 @@
+
+ MemoryUsage GetMemoryUsage() {
+ MemoryUsage result;
+-#ifdef __linux__
++#if defined(__linux__) && defined(__GLIBC__)
+ rusage res;
+ if (getrusage(RUSAGE_SELF, &res) == 0) {
+ result.max_rss_kb = res.ru_maxrss;
+--- ./third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc
++++ ./third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc.orig
+@@ -86,11 +86,11 @@
+ }
+
+ size_t Process::GetMallocUsage() {
+-#if defined(HAVE_MALLINFO2)
++#if defined(HAVE_MALLINFO2) && defined(__GLIBC__)
+ struct mallinfo2 mi;
+ mi = ::mallinfo2();
+ return mi.uordblks;
+-#elif defined(HAVE_MALLINFO)
++#elif defined(HAVE_MALLINFO) && defined(__GLIBC__)
+ struct mallinfo mi;
+ mi = ::mallinfo();
+ return mi.uordblks;
+
+--- ./third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig 2019-09-30 13:03:42.556880537 -0400
++++ ./third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h 2019-09-30 13:07:27.989821227 -0400
+@@ -122,7 +122,9 @@
+ /* #undef HAVE_MALLCTL */
+
+ /* Define to 1 if you have the `mallinfo' function. */
++#if defined(__GLIBC__)
+ #define HAVE_MALLINFO 1
++#endif
+
+ /* Define to 1 if you have the <malloc.h> header file. */
+ #define HAVE_MALLOC_H 1
+--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
+@@ -717,7 +717,7 @@
+
+ #endif // !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_ANDROID)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if 0
+ SHIM_ALWAYS_EXPORT struct mallinfo mallinfo(void) __THROW {
+ base::SimplePartitionStatsDumper allocator_dumper;
+ Allocator()->DumpStats("malloc", true, &allocator_dumper);
+--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
+@@ -24,7 +24,7 @@
+ #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
+
+ // Platforms on which we override weak libc symbols.
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+
+ NOINLINE void FreeForTest(void* data) {
+ free(data);
diff --git a/testing/electron/no-res-ninit-nclose.patch b/testing/electron/no-res-ninit-nclose.patch
new file mode 100644
index 00000000000..d74f6cd88c9
--- /dev/null
+++ b/testing/electron/no-res-ninit-nclose.patch
@@ -0,0 +1,32 @@
+similar to dns-resolver.patch, musl doesn't have res_ninit and so on
+--
+--- a/net/dns/public/scoped_res_state.cc
++++ b/net/dns/public/scoped_res_state.cc
+@@ -13,7 +13,7 @@
+ namespace net {
+
+ ScopedResState::ScopedResState() {
+-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || defined(_GNU_SOURCE)
+ // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
+ // res_init behaves the same way.
+ memset(&_res, 0, sizeof(_res));
+@@ -25,16 +25,8 @@
+ }
+
+ ScopedResState::~ScopedResState() {
+-#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
+-
+- // Prefer res_ndestroy where available.
+-#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+- res_ndestroy(&res_);
+-#else
+- res_nclose(&res_);
+-#endif // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+-
+-#endif // !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
++ // musl res_init() doesn't actually do anything
++ // no destruction is necessary as no memory has been allocated
+ }
+
+ bool ScopedResState::IsValid() const {
diff --git a/testing/electron/no-sandbox-settls.patch b/testing/electron/no-sandbox-settls.patch
new file mode 100644
index 00000000000..02b3b4c49c8
--- /dev/null
+++ b/testing/electron/no-sandbox-settls.patch
@@ -0,0 +1,14 @@
+this optimisation of CLONE_SETTLS is not valid used like this, and future musl
+clone(3) will EINVAL on this use
+--
+--- a/sandbox/linux/services/credentials.cc
++++ b/sandbox/linux/services/credentials.cc
+@@ -89,7 +89,7 @@
+
+ int clone_flags = CLONE_FS | LINUX_SIGCHLD;
+ void* tls = nullptr;
+-#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
++#if 0 && (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
+ !defined(MEMORY_SANITIZER)
+ // Use CLONE_VM | CLONE_VFORK as an optimization to avoid copying page tables.
+ // Since clone writes to the new child's TLS before returning, we must set a
diff --git a/testing/electron/node-configure-distutils.patch b/testing/electron/node-configure-distutils.patch
new file mode 100644
index 00000000000..add7a169c2d
--- /dev/null
+++ b/testing/electron/node-configure-distutils.patch
@@ -0,0 +1,52 @@
+From 95534ad82f4e33f53fd50efe633d43f8da70cba6 Mon Sep 17 00:00:00 2001
+From: Luigi Pinca <luigipinca@gmail.com>
+Date: Wed, 8 Nov 2023 21:20:53 +0100
+Subject: [PATCH] build: fix build with Python 3.12
+
+Replace `distutils.version.StrictVersion` with
+`packaging.version.Version`.
+
+Refs: https://github.com/nodejs/node/pull/50209#issuecomment-1795852539
+PR-URL: https://github.com/nodejs/node/pull/50582
+Reviewed-By: Richard Lau <rlau@redhat.com>
+Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
+---
+ configure.py | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/third_party/electron_node/configure.py b/third_party/electron_node/configure.py
+index 33671a034290df..be95decd5668f2 100755
+--- a/third_party/electron_node/configure.py
++++ b/third_party/electron_node/configure.py
+@@ -14,8 +14,6 @@
+ import io
+ from pathlib import Path
+
+-from distutils.version import StrictVersion
+-
+ # If not run from node/, cd to node/.
+ os.chdir(Path(__file__).parent)
+
+@@ -30,6 +28,7 @@
+
+ sys.path.insert(0, str(tools_path / 'gyp' / 'pylib'))
+ from gyp.common import GetFlavor
++from packaging.version import Version
+
+ # imports in tools/configure.d
+ sys.path.insert(0, str(tools_path / 'configure.d'))
+@@ -1566,10 +1565,10 @@ def without_ssl_error(option):
+ # supported asm compiler for AVX2. See https://github.com/openssl/openssl/
+ # blob/OpenSSL_1_1_0-stable/crypto/modes/asm/aesni-gcm-x86_64.pl#L52-L69
+ openssl110_asm_supported = \
+- ('gas_version' in variables and StrictVersion(variables['gas_version']) >= StrictVersion('2.23')) or \
+- ('xcode_version' in variables and StrictVersion(variables['xcode_version']) >= StrictVersion('5.0')) or \
+- ('llvm_version' in variables and StrictVersion(variables['llvm_version']) >= StrictVersion('3.3')) or \
+- ('nasm_version' in variables and StrictVersion(variables['nasm_version']) >= StrictVersion('2.10'))
++ ('gas_version' in variables and Version(variables['gas_version']) >= Version('2.23')) or \
++ ('xcode_version' in variables and Version(variables['xcode_version']) >= Version('5.0')) or \
++ ('llvm_version' in variables and Version(variables['llvm_version']) >= Version('3.3')) or \
++ ('nasm_version' in variables and Version(variables['nasm_version']) >= Version('2.10'))
+
+ if is_x86 and not openssl110_asm_supported:
+ error('''Did not find a new enough assembler, install one or build with
diff --git a/testing/electron/node-gyp-distutils.patch b/testing/electron/node-gyp-distutils.patch
new file mode 100644
index 00000000000..80278b38812
--- /dev/null
+++ b/testing/electron/node-gyp-distutils.patch
@@ -0,0 +1,11 @@
+--- ./third_party/electron_node/tools/gyp/pylib/gyp/input.py.orig
++++ ./third_party/electron_node/tools/gyp/pylib/gyp/input.py
+@@ -16,7 +16,7 @@
+ import sys
+ import threading
+ import traceback
+-from distutils.version import StrictVersion
++from packaging.version import Version as StrictVersion
+ from gyp.common import GypError
+ from gyp.common import OrderedSet
+
diff --git a/testing/electron/partalloc-no-tagging-arm64.patch b/testing/electron/partalloc-no-tagging-arm64.patch
new file mode 100644
index 00000000000..e5c75251874
--- /dev/null
+++ b/testing/electron/partalloc-no-tagging-arm64.patch
@@ -0,0 +1,14 @@
+Hard-disable memory tagging on ARM64 - it does exist there but musl is
+missing some required interface headers for it, and it's not clear how
+to make the partalloc support code for it work.
+--- ./base/allocator/partition_allocator/partition_alloc.gni.orig
++++ ./base/allocator/partition_allocator/partition_alloc.gni
+@@ -30,7 +30,7 @@
+ }
+
+ has_memory_tagging =
+- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
++ false
+
+ declare_args() {
+ # Causes all the allocations to be routed via allocator_shim.cc. Usually,
diff --git a/testing/electron/perfetto-libstdc++.patch b/testing/electron/perfetto-libstdc++.patch
new file mode 100644
index 00000000000..31ff9d95bb5
--- /dev/null
+++ b/testing/electron/perfetto-libstdc++.patch
@@ -0,0 +1,20 @@
+--- a/third_party/perfetto/src/trace_processor/perfetto_sql/engine/created_function.cc
++++ b/third_party/perfetto/src/trace_processor/perfetto_sql/engine/created_function.cc
+@@ -107,7 +107,7 @@
+ // the destructors run correctly for non-trivial members of the
+ // union.
+ using Data =
+- std::variant<int64_t, double, OwnedString, OwnedBytes, nullptr_t>;
++ std::variant<int64_t, double, OwnedString, OwnedBytes, std::nullptr_t>;
+
+ StoredSqlValue(SqlValue value) {
+ switch (value.type) {
+@@ -132,7 +132,7 @@
+ }
+
+ SqlValue AsSqlValue() {
+- if (std::holds_alternative<nullptr_t>(data)) {
++ if (std::holds_alternative<std::nullptr_t>(data)) {
+ return SqlValue();
+ } else if (std::holds_alternative<int64_t>(data)) {
+ return SqlValue::Long(std::get<int64_t>(data));
diff --git a/testing/electron/pvalloc.patch b/testing/electron/pvalloc.patch
new file mode 100644
index 00000000000..1d874d6565b
--- /dev/null
+++ b/testing/electron/pvalloc.patch
@@ -0,0 +1,33 @@
+the pvalloc/valloc symbols are obsolete and not implemented in musl
+--
+--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
++++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
+@@ -375,7 +375,7 @@
+ ASSERT_GE(aligned_allocs_intercepted_by_alignment[128], 1u);
+ ASSERT_GE(aligned_allocs_intercepted_by_size[53], 1u);
+
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && defined(__GLIBC__)
+ void* pvalloc_ptr = pvalloc(67);
+ ASSERT_NE(nullptr, pvalloc_ptr);
+ ASSERT_EQ(0u, reinterpret_cast<uintptr_t>(pvalloc_ptr) % kPageSize);
+@@ -414,7 +414,7 @@
+ free(memalign_ptr);
+ ASSERT_GE(frees_intercepted_by_addr[Hash(memalign_ptr)], 1u);
+
+-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
++#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && defined(__GLIBC__)
+ free(pvalloc_ptr);
+ ASSERT_GE(frees_intercepted_by_addr[Hash(pvalloc_ptr)], 1u);
+ #endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
+--- a/base/process/memory_unittest.cc
++++ b/base/process/memory_unittest.cc
+@@ -359,7 +359,7 @@
+ #endif // BUILDFLAG(IS_WIN)
+ #endif // !BUILDFLAG(IS_MAC)
+
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS)
+
+ TEST_F(OutOfMemoryDeathTest, Valloc) {
+ ASSERT_OOM_DEATH({
diff --git a/testing/electron/python-jinja-3.10.patch b/testing/electron/python-jinja-3.10.patch
new file mode 100644
index 00000000000..d4571f19f06
--- /dev/null
+++ b/testing/electron/python-jinja-3.10.patch
@@ -0,0 +1,22 @@
+--- a/third_party/electron_node/tools/inspector_protocol/jinja2/runtime.py
++++ b/third_party/electron_node/tools/inspector_protocol/jinja2/runtime.py
+@@ -315,7 +315,7 @@ class Context(with_metaclass(ContextMeta
+
+ # register the context as mapping if possible
+ try:
+- from collections import Mapping
++ from collections.abc import Mapping
+ Mapping.register(Context)
+ except ImportError:
+ pass
+--- a/third_party/electron_node/tools/inspector_protocol/jinja2/sandbox.py
++++ b/third_party/electron_node/tools/inspector_protocol/jinja2/sandbox.py
+@@ -14,7 +14,7 @@
+ """
+ import types
+ import operator
+-from collections import Mapping
++from collections.abc import Mapping
+ from jinja2.environment import Environment
+ from jinja2.exceptions import SecurityError
+ from jinja2._compat import string_types, PY2
diff --git a/testing/electron/quiche-array.patch b/testing/electron/quiche-array.patch
new file mode 100644
index 00000000000..d016b38e6ec
--- /dev/null
+++ b/testing/electron/quiche-array.patch
@@ -0,0 +1,12 @@
+needed for push_back on array
+--
+--- a/net/third_party/quiche/src/quiche/common/quiche_endian.h
++++ b/net/third_party/quiche/src/quiche/common/quiche_endian.h
+@@ -6,6 +6,7 @@
+ #define QUICHE_COMMON_QUICHE_ENDIAN_H_
+
+ #include <algorithm>
++#include <array>
+ #include <cstdint>
+ #include <type_traits>
+
diff --git a/testing/electron/random-fixes.patch b/testing/electron/random-fixes.patch
new file mode 100644
index 00000000000..5bfdef58d74
--- /dev/null
+++ b/testing/electron/random-fixes.patch
@@ -0,0 +1,94 @@
+Patch-Source: https://gitlab.archlinux.org/archlinux/packaging/packages/chromium/-/blob/c073b0c20935d7eb452732e0f3b2860a96c3db21/random-build-fixes.patch
+--
+diff --git a/chrome/browser/download/bubble/download_bubble_update_service.cc b/chrome/browser/download/bubble/download_bubble_update_service.cc
+index 41b647f7b44..8940c6bb7fc 100644
+--- a/chrome/browser/download/bubble/download_bubble_update_service.cc
++++ b/chrome/browser/download/bubble/download_bubble_update_service.cc
+@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item) {
+ // Helper to get an iterator to the last element in the cache. The cache
+ // must not be empty.
+ template <typename Item>
+-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
++typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
+ CHECK(!cache.empty());
+ auto it = cache.end();
+ return std::prev(it);
+@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheImpl(
+ }
+
+ template <typename Id, typename Item>
+-SortedItems<Item>::iterator
++typename SortedItems<Item>::iterator
+ DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
+- SortedItems<Item>::iterator iter,
++ typename SortedItems<Item>::iterator iter,
+ SortedItems<Item>& cache,
+ IterMap<Id, Item>& iter_map) {
+ CHECK(iter != cache.end());
+diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc
+index c0708681ebd..98b8494d170 100644
+--- a/chrome/test/chromedriver/capabilities.cc
++++ b/chrome/test/chromedriver/capabilities.cc
+@@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base::Value& option,
+ "'version' field of type string");
+ }
+
+- brands.emplace_back(*brand, *version);
++ brands.emplace_back(BrandVersion{*brand, *version});
+ }
+
+ client_hints.brands = std::move(brands);
+@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::Value& option,
+ "a 'version' field of type string");
+ }
+
+- full_version_list.emplace_back(*brand, *version);
++ full_version_list.emplace_back(BrandVersion{*brand, *version});
+ }
+
+ client_hints.full_version_list = std::move(full_version_list);
+diff --git a/components/optimization_guide/core/tflite_model_executor.h b/components/optimization_guide/core/tflite_model_executor.h
+index c4f750f4684..b5635f4108b 100644
+--- a/components/optimization_guide/core/tflite_model_executor.h
++++ b/components/optimization_guide/core/tflite_model_executor.h
+@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public ModelExecutor<OutputType, InputType> {
+ void SendForBatchExecution(
+ BatchExecutionCallback callback_on_complete,
+ base::TimeTicks start_time,
+- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ override {
+ DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc b/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+index 2dc0b304092..a82f255090b 100644
+--- a/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
++++ b/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+@@ -169,7 +169,7 @@ class HTMLFastPathParser {
+ using Span = base::span<const Char>;
+ using USpan = base::span<const UChar>;
+ // 32 matches that used by HTMLToken::Attribute.
+- typedef std::conditional<std::is_same_v<Char, UChar>,
++ typedef typename std::conditional<std::is_same_v<Char, UChar>,
+ UCharLiteralBuffer<32>,
+ LCharLiteralBuffer<32>>::type LiteralBufferType;
+ typedef UCharLiteralBuffer<32> UCharLiteralBufferType;
+diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+index f0b49139147..a308fb67982 100644
+--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
++++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+@@ -91,12 +91,12 @@ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+ case kGradient:
+ GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
+ ImageDrawOptions());
+- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
++ flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
+ break;
+ case kImagePattern:
+ GetCanvasPattern()->GetPattern()->ApplyToFlags(
+ flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
+- flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
++ flags.setColor(SkColor4f{0.0f, 0.0f, 0.0f, global_alpha});
+ break;
+ default:
+ NOTREACHED();
diff --git a/testing/electron/system-zstd.patch b/testing/electron/system-zstd.patch
new file mode 100644
index 00000000000..0fcd3efc3a0
--- /dev/null
+++ b/testing/electron/system-zstd.patch
@@ -0,0 +1,46 @@
+From ae3ae3711784865bdc38bf119a6182a7b8dae91c Mon Sep 17 00:00:00 2001
+From: Matt Jolly <Matt.Jolly@footclan.ninja>
+Date: Sun, 17 Sep 2023 16:51:42 +1000
+Subject: [PATCH] Add system-zstd
+
+--- a/build/linux/unbundle/replace_gn_files.py
++++ b/build/linux/unbundle/replace_gn_files.py
+@@ -74,6 +74,7 @@ REPLACEMENTS = {
+ #
+ 'woff2': 'third_party/woff2/BUILD.gn',
+ 'zlib': 'third_party/zlib/BUILD.gn',
++ 'zstd': 'third_party/zstd/BUILD.gn',
+ }
+
+
+--- /dev/null
++++ b/build/linux/unbundle/zstd.gn
+@@ -0,0 +1,25 @@
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_zstd") {
++ packages = [ "libzstd" ]
++}
++
++shim_headers("zstd_shim") {
++ root_path = "src/lib"
++ headers = [
++ "zdict.h",
++ "zstd.h",
++ "zstd_errors.h",
++ ]
++}
++
++source_set("zstd") {
++ deps = [ ":zstd_shim" ]
++ public_configs = [ ":system_zstd" ]
++}
++
++source_set("decompress") {
++ deps = [ ":zstd_shim" ]
++ public_configs = [ ":system_zstd" ]
++}
+--
+2.42.0
+
diff --git a/testing/electron/temp-failure-retry.patch b/testing/electron/temp-failure-retry.patch
new file mode 100644
index 00000000000..560aa6578c2
--- /dev/null
+++ b/testing/electron/temp-failure-retry.patch
@@ -0,0 +1,19 @@
+random glibc macro, not provided by musl.
+https://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html
+--- a/sandbox/linux/suid/process_util.h
++++ b/sandbox/linux/suid/process_util.h
+@@ -11,6 +11,14 @@
+ #include <stdbool.h>
+ #include <sys/types.h>
+
++// Some additional functions
++# define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++
+ // This adjusts /proc/process/oom_score_adj so the Linux OOM killer
+ // will prefer certain process types over others. The range for the
+ // adjustment is [-1000, 1000], with [0, 1000] being user accessible.
diff --git a/testing/electron/unbundle-node.patch b/testing/electron/unbundle-node.patch
new file mode 100644
index 00000000000..58ec8145c8e
--- /dev/null
+++ b/testing/electron/unbundle-node.patch
@@ -0,0 +1,56 @@
+--- ./third_party/electron_node/BUILD.gn.orig
++++ ./third_party/electron_node/BUILD.gn
+@@ -39,6 +39,7 @@
+ node_release_urlbase = ""
+
+ # Allows downstream packagers (eg. Linux distributions) to build Electron against system shared libraries.
++ use_system_base64 = false
+ use_system_cares = false
+ use_system_nghttp2 = false
+ use_system_llhttp = false
+@@ -47,6 +48,11 @@
+
+ if (is_linux) {
+ import("//build/config/linux/pkg_config.gni")
++ if (use_system_base64) {
++ pkg_config("base64") {
++ packages = [ "base64" ]
++ }
++ }
+ if (use_system_cares) {
+ pkg_config("cares") {
+ packages = [ "libcares" ]
+@@ -208,7 +214,6 @@
+ ":node_js2c",
+ "deps/googletest:gtest",
+ "deps/ada",
+- "deps/base64",
+ "deps/simdutf",
+ "deps/uvwasi",
+ "//third_party/zlib",
+@@ -216,6 +221,11 @@
+ "//third_party/brotli:enc",
+ "//v8:v8_libplatform",
+ ]
++ if (use_system_base64) {
++ configs += [ ":base64" ]
++ } else {
++ deps += [ "deps/base64" ]
++ }
+ if (use_system_cares) {
+ configs += [ ":cares" ]
+ } else {
+--- ./electron/script/generate-config-gypi.py.orig
++++ ./electron/script/generate-config-gypi.py
+@@ -62,6 +62,11 @@
+ # Used by certain versions of node-gyp.
+ v['build_v8_with_gn'] = 'false'
+
++ with open(os.path.join(NODE_DIR, 'use_system.txt')) as f:
++ for dep in f.read().strip().split(' '):
++ if v.get(f'node_shared_{dep}') is not None:
++ v[f'node_shared_{dep}'] = 'true'
++
+ with open(target_file, 'w+') as f:
+ f.write(pprint.pformat(config, indent=2))
+
diff --git a/testing/electron/webpack-hash.patch b/testing/electron/webpack-hash.patch
new file mode 100644
index 00000000000..0aaf5e0a12c
--- /dev/null
+++ b/testing/electron/webpack-hash.patch
@@ -0,0 +1,12 @@
+--- a/electron/build/webpack/webpack.config.base.js
++++ b/electron/build/webpack/webpack.config.base.js
+@@ -117,7 +117,8 @@
+ entry,
+ target: alwaysHasNode ? 'node' : 'web',
+ output: {
+- filename: outputFilename
++ filename: outputFilename,
++ hashFunction: 'sha256'
+ },
+ resolve: {
+ alias: {
diff --git a/testing/electron/yes-musl.patch b/testing/electron/yes-musl.patch
new file mode 100644
index 00000000000..e860b8ece58
--- /dev/null
+++ b/testing/electron/yes-musl.patch
@@ -0,0 +1,11 @@
+--- ./buildtools/third_party/libc++/__config_site.orig
++++ ./buildtools/third_party/libc++/__config_site
+@@ -18,7 +18,7 @@
+ /* #undef _LIBCPP_ABI_FORCE_MICROSOFT */
+ /* #undef _LIBCPP_HAS_NO_THREADS */
+ /* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */
+-/* #undef _LIBCPP_HAS_MUSL_LIBC */
++#define _LIBCPP_HAS_MUSL_LIBC 1
+ /* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */
+ /* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */
+ /* #undef _LIBCPP_HAS_THREAD_API_WIN32 */
diff --git a/testing/elektra/APKBUILD b/testing/elektra/APKBUILD
index 19a8adf9a9d..7688227adb0 100644
--- a/testing/elektra/APKBUILD
+++ b/testing/elektra/APKBUILD
@@ -6,7 +6,7 @@
pkgname=elektra
_pkgname=libelektra
pkgver=0.8.21
-pkgrel=10
+pkgrel=23
pkgdesc="A universal and secure framework to access configuration parameters"
url="https://www.libelektra.org"
#arch="all !armhf" # armhf blocked by qt5-qtdeclarative
@@ -24,11 +24,11 @@ makedepends="
cmake
curl-dev
discount discount-dev
- fts-dev
+ musl-fts-dev
libdrm-dev
libgcrypt-dev
libgit2-dev
- openssl-dev
+ openssl-dev>3
lua$_luaver-dev
glib-dev
python3-dev
@@ -36,6 +36,7 @@ makedepends="
qt5-qtdeclarative-dev
qt5-qtsvg-dev
ruby ruby-dev
+ samurai
swig
yajl-dev
yaml-cpp-dev
@@ -51,15 +52,18 @@ subpackages="
ruby-elektra:_ruby
$pkgname-qt-gui:_gui
$pkgname-libs
- $pkgname-bash-completion:bashcomp:noarch
- $pkgname-fish-completion:fishcomp:noarch
- $pkgname-zsh-completion:zshcomp:noarch
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
$pkgname-plugins-all:_all:noarch
"
source="$_pkgname-$pkgver.tar.gz::https://github.com/ElektraInitiative/libelektra/archive/$pkgver.tar.gz
fix-bash-shebang.patch
fix-augeas-internal-inconsistency.patch
cmake-allow-override-rpath.patch
+ benchmark-dupe.patch
+ gcc12.patch
+ musl-1.2.3.patch
remove-unneeded-assembly.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -164,14 +168,8 @@ _bindings="
"
build() {
- mkdir -p "$builddir"/build
- cd "$builddir"/build
-
- cmake .. \
+ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_C_FLAGS_MINSIZEREL_INIT="$CFLAGS" \
- -DCMAKE_CXX_FLAGS_MINSIZEREL_INIT="$CXXFLAGS" \
- -DCMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT="$LDFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_RPATH=/usr/lib/$pkgname \
-DTARGET_PLUGIN_FOLDER=$pkgname \
@@ -191,7 +189,7 @@ build() {
-DLUA_INCLUDE_DIR="$(pkg-config --variable=includedir lua$_luaver )" \
-DTARGET_LUA_CMOD_FOLDER="$(pkg-config --variable=INSTALL_LMOD lua$_luaver)" \
-DTARGET_LUA_CMOD_FOLDER="$(pkg-config --variable=INSTALL_CMOD lua$_luaver)"
- make
+ cmake --build build
}
check() {
@@ -199,7 +197,7 @@ check() {
# Run tests that doesn't need to write into /etc.
# FIXME: Allow tests to fail for now.
- make run_nokdbtests || true
+ ninja run_nokdbtests || true
}
package() {
@@ -208,9 +206,7 @@ package() {
# dependencies. That's why they are defined in package().
depends="$depends $pkgname-resolver"
- cd "$builddir"/build
-
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
# This is a shell script that just executes /usr/lib/elektra/tool_exec/qt-gui.
# It was originally made as a workaround for some RPATH issue we don't have.
@@ -280,22 +276,6 @@ _gui() {
_submv usr/share/icons
}
-bashcomp() {
- pkgdesc="Bash completions for $pkgname"
- depends=""
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- _submv usr/share/bash-completion
-}
-
-fishcomp() {
- pkgdesc="Fish completions for $pkgname"
- depends=""
- install_if="$pkgname=$pkgver-r$pkgrel fish"
-
- _submv usr/share/fish/vendor_completions.d usr/share/fish/completions
-}
-
zshcomp() {
pkgdesc="ZSH completions for $pkgname"
depends=""
@@ -400,8 +380,13 @@ _submv() {
rmdir -p "$pkgdir"/${src%/*} 2>/dev/null || true
}
-sha512sums="9ad3bb7eeb36d921189d93cb347ec73262503d85397b574ef603080cee52d1959752740e5018a0e7eb5dc187bce8aae3b6fc0057a6385bce94e5338604c6bc57 libelektra-0.8.21.tar.gz
+sha512sums="
+9ad3bb7eeb36d921189d93cb347ec73262503d85397b574ef603080cee52d1959752740e5018a0e7eb5dc187bce8aae3b6fc0057a6385bce94e5338604c6bc57 libelektra-0.8.21.tar.gz
cbfe8b96a806825d5f7194734a646bdb3fb273bf6be44b3b47e9b2f63bf90a7ece867e74808da743ff33211abba0682aba55d02a3dbfa0a5efc3dc821444bd87 fix-bash-shebang.patch
48d645142bf63282e13d1c76c1ddedc5633e365a1a87d0cd49c75fa801eed44b57fb66eee49badc7a9e6210f6ccd2af82779f0658f90263fd23b959f4e70b84c fix-augeas-internal-inconsistency.patch
717b343b6509d14949a154bbbf13d5722f47f97717dbd839763fc89f8f9033d5214f903df23b4ca7f196ae9dbfe6a3348542411c714e471ca4a50b39bdff3abc cmake-allow-override-rpath.patch
-9ca27100c7b9e3b64146a4733e7007c6175ba475415cf7523315d21ba8fcfff65e3769ee2e9d59cdf2eb943a5c49786c4811e4deec6c694964da7e0e5292c1f9 remove-unneeded-assembly.patch"
+21f3f9cf874663b6ad60446d59830e8b59c16d9fb02df6c8ecb78f9fc5c785bc965d5325d46fd4b92e38c632b9b1641f13370bace69636049e172ec1f3da506b benchmark-dupe.patch
+0dd760f0a0c063fbe67f581945262e3846440ca2c5e656337b2529c9fcea3145777105372af86f4adefe3fd361309ee00f5bd584891172af7713ffb445511868 gcc12.patch
+9c21cce9247e76996286fefa68910e2cfafb24c1dc4af6711e9d37cf6cbe2c684072753395d98b04babaa93418722126cfa745f6a3e143ea1ace39fabc4d93a2 musl-1.2.3.patch
+9ca27100c7b9e3b64146a4733e7007c6175ba475415cf7523315d21ba8fcfff65e3769ee2e9d59cdf2eb943a5c49786c4811e4deec6c694964da7e0e5292c1f9 remove-unneeded-assembly.patch
+"
diff --git a/testing/elektra/benchmark-dupe.patch b/testing/elektra/benchmark-dupe.patch
new file mode 100644
index 00000000000..57ce62f64e0
--- /dev/null
+++ b/testing/elektra/benchmark-dupe.patch
@@ -0,0 +1,62 @@
+fix duplicate symbol between this and benchmark.c
+diff --git a/benchmarks/large.c b/benchmarks/large.c
+index aee787b..8892e1b 100644
+--- a/benchmarks/large.c
++++ b/benchmarks/large.c
+@@ -10,7 +10,7 @@
+
+ KDB * kdb;
+ Key * key;
+-KeySet * large;
++KeySet * large2;
+
+ void benchmarkOpen (void)
+ {
+@@ -39,33 +39,33 @@ void benchmarkLookupByName (void)
+ for (i = 0; i < NUM_DIR; i++)
+ {
+ snprintf (name, KEY_NAME_LENGTH, "%s/%s%d", KEY_ROOT, "dir", i);
+- ksLookupByName (large, name, 0);
++ ksLookupByName (large2, name, 0);
+ for (j = 0; j < NUM_KEY; j++)
+ {
+ snprintf (name, KEY_NAME_LENGTH, "%s/%s%d/%s%d", KEY_ROOT, "dir", i, "key", j);
+- ksLookupByName (large, name, 0);
++ ksLookupByName (large2, name, 0);
+ }
+ }
+ }
+
+ void benchmarkReread (void)
+ {
+- kdbGet (kdb, large, key);
++ kdbGet (kdb, large2, key);
+ }
+
+ void benchmarkInwrite (void)
+ {
+- kdbSet (kdb, large, key);
++ kdbSet (kdb, large2, key);
+ }
+
+ void benchmarkRewrite (void)
+ {
+- kdbSet (kdb, large, key);
++ kdbSet (kdb, large2, key);
+ }
+
+ void benchmarkWriteout (void)
+ {
+- kdbSet (kdb, large, key);
++ kdbSet (kdb, large2, key);
+ }
+
+ void benchmarkClose (void)
+@@ -113,6 +113,6 @@ int main (void)
+ benchmarkClose ();
+ timePrint ("Closed key database");
+
+- ksDel (large);
++ ksDel (large2);
+ keyDel (key);
+ }
diff --git a/testing/elektra/gcc12.patch b/testing/elektra/gcc12.patch
new file mode 100644
index 00000000000..f0ff513054c
--- /dev/null
+++ b/testing/elektra/gcc12.patch
@@ -0,0 +1,12 @@
+diff --git a/src/tools/kdb/cmdline.cpp b/src/tools/kdb/cmdline.cpp
+index b111366..96926a2 100644
+--- a/src/tools/kdb/cmdline.cpp
++++ b/src/tools/kdb/cmdline.cpp
+@@ -16,6 +16,7 @@
+
+ #include <cstdio>
+ #include <iostream>
++#include <limits>
+ #include <set>
+ #include <vector>
+
diff --git a/testing/elektra/musl-1.2.3.patch b/testing/elektra/musl-1.2.3.patch
new file mode 100644
index 00000000000..0c488d55ac8
--- /dev/null
+++ b/testing/elektra/musl-1.2.3.patch
@@ -0,0 +1,44 @@
+diff --git a/src/bindings/swig/ruby/kdb.i b/src/bindings/swig/ruby/kdb.i
+index 93d47f9..52681f4 100644
+--- a/src/bindings/swig/ruby/kdb.i
++++ b/src/bindings/swig/ruby/kdb.i
+@@ -260,7 +260,7 @@ underlaying key, which allows a Ruby-style iteration over metadata:
+ * cases this is useful, to allow passing in Symbols as meta names. */
+ %typemap(in) (const std::string & metaName) {
+ // typemap in for getMeta
+- $input = rb_funcall($input, rb_intern("to_s"), 0, NULL);
++ $input = rb_funcall($input, rb_intern("to_s"), 0, 0);
+ $1 = new std::string(StringValueCStr($input));
+ }
+ %typemap(freearg) (const std::string & metaName) {
+@@ -305,8 +305,8 @@ underlaying key, which allows a Ruby-style iteration over metadata:
+ /* $input substitution does not here, so we have to reference
+ input variables directly */
+
+- hash_size = NUM2INT(rb_funcall(argv[1], rb_intern("size"), 0, NULL));
+- keys_arr = rb_funcall(argv[1], rb_intern("keys"), 0, NULL);
++ hash_size = NUM2INT(rb_funcall(argv[1], rb_intern("size"), 0, 0));
++ keys_arr = rb_funcall(argv[1], rb_intern("keys"), 0, 0);
+ if (hash_size > 0) {
+ /* first we check if we can find the "flags" key.
+ this has to be passed to the kdb::Key constructor already */
+@@ -314,7 +314,7 @@ underlaying key, which allows a Ruby-style iteration over metadata:
+ key = rb_ary_entry(keys_arr, i);
+ val = rb_hash_aref(argv[1], key);
+ /* convert key to String, in case of being a Symbol */
+- key = rb_funcall(key, rb_intern("to_s"), 0, NULL);
++ key = rb_funcall(key, rb_intern("to_s"), 0, 0);
+ /* check for flags and extract them */
+ if (strcmp("flags", StringValueCStr(key)) == 0) {
+ Check_Type(val, T_FIXNUM);
+@@ -342,8 +342,8 @@ underlaying key, which allows a Ruby-style iteration over metadata:
+ for (i = 0; i < hash_size; i++) {
+ key = rb_ary_entry(keys_arr, i);
+ val = rb_hash_aref(argv[1], key);
+- key = rb_funcall(key, rb_intern("to_s"), 0, NULL);
+- val = rb_funcall(val, rb_intern("to_s"), 0, NULL);
++ key = rb_funcall(key, rb_intern("to_s"), 0, 0);
++ val = rb_funcall(val, rb_intern("to_s"), 0, 0);
+ /* ignore certain keys */
+ if (strcmp("flags", StringValueCStr(key)) == 0) continue;
+ /* 'value' has also a special meaning */
diff --git a/testing/element-desktop/APKBUILD b/testing/element-desktop/APKBUILD
new file mode 100644
index 00000000000..8d030b59dad
--- /dev/null
+++ b/testing/element-desktop/APKBUILD
@@ -0,0 +1,170 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=element-desktop
+pkgver=1.11.64
+pkgrel=0
+pkgdesc="Secure and independent communication, connected via Matrix"
+url="https://element.io/"
+arch="aarch64 x86_64" # same as electron
+license="Apache-2.0"
+depends="
+ electron
+ font-inconsolata
+ font-inter
+ font-nunito
+ font-opensans
+ font-twemoji
+ "
+makedepends="
+ cargo
+ electron-dev
+ electron-tasje
+ jq
+ libsecret-dev
+ nodejs
+ npm
+ python3
+ sqlcipher-dev
+ yarn
+ "
+source="
+ https://github.com/vector-im/element-desktop/archive/refs/tags/v$pkgver/element-desktop-$pkgver.tar.gz
+ https://github.com/vector-im/element-web/archive/refs/tags/v$pkgver/element-web-$pkgver.tar.gz
+
+ add-alpine-targets.patch
+ use-system-headers.patch
+ tasje-one-hak.patch
+ tasje-no-fuses.patch
+ use-system-fonts.patch.reactsdk
+ use-system-fonts.patch.web
+
+ element-desktop
+ "
+options="net !check" # broken
+
+# secfixes:
+# 1.11.30-r0:
+# - CVE-2023-30609
+# 1.11.26-r0:
+# - CVE-2023-28103
+# - CVE-2023-28427
+# 1.11.7-r0:
+# - CVE-2022-39249
+# - CVE-2022-39250
+# - CVE-2022-39251
+# - CVE-2022-39236
+# 1.11.4-r0:
+# - CVE-2022-36059
+# - CVE-2022-36060
+
+# used by buildscripts (at least web's webpack)
+export VERSION=$pkgver
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL=2
+export CARGO_PROFILE_RELEASE_STRIP="symbols"
+export NODE_OPTIONS="--openssl-legacy-provider"
+
+prepare() {
+ default_prepare
+
+ msg "Applying more patches"
+ for x in $source; do
+ case "$x" in
+ *.patch.web)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/element-web-$pkgver
+ ;;
+ esac
+ done
+
+ (
+ cd "$srcdir"/element-web-$pkgver
+
+ msg "Fetch element-web dependencies"
+ yarn install --frozen-lockfile --ignore-scripts
+ jq '.show_labs_settings = true' < config.sample.json > config.json
+
+ msg "Applying more patches"
+ for x in $source; do
+ case "$x" in
+ *.patch.reactsdk)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/element-web-$pkgver/node_modules/matrix-react-sdk
+ ;;
+ esac
+ done
+
+ rm -rf node_modules/matrix-react-sdk/res/fonts/
+ )
+
+ ln -s "$srcdir"/element-web-$pkgver/webapp webapp
+
+ msg "Fetch element-desktop dependencies"
+ yarn install --frozen-lockfile --ignore-scripts
+}
+
+build() {
+ (
+ cd "$srcdir"/element-web-$pkgver
+
+ msg "Build element-web"
+ NODE_ENV=production yarn build
+ )
+
+ msg "Build element-desktop"
+
+ yarn asar-webapp
+
+ # add "optional" native dependencies
+ # hak stands for hack
+ yarn run hak --target "$(uname -m)-alpine-linux-musl"
+
+ # stripping in build because it gets into asar
+ strip node_modules/keytar/build/Release/keytar.node
+
+ yarn build:ts
+
+ yarn build:res
+
+ yarn install --frozen-lockfile --ignore-scripts --production
+
+ tasje -c electron-builder.js pack
+}
+
+check() {
+ (
+ cd "$srcdir"/element-web-$pkgver
+
+ yarn test
+ )
+}
+
+package() {
+ local resources="dist/resources"
+
+ install -Dm644 $resources/app.asar "$pkgdir"/usr/lib/element-desktop/app.asar
+ install -Dm644 webapp.asar "$pkgdir"/usr/lib/element-desktop/webapp.asar
+
+ cp -r $resources/app.asar.unpacked "$pkgdir"/usr/lib/element-desktop/app.asar.unpacked
+
+ install -Dm644 $resources/img/element.png "$pkgdir"/usr/lib/element-desktop/img/element.png
+
+ install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ install -Dm644 dist/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ while read -r size; do
+ install -Dm644 dist/icons/$size.png "$pkgdir"/usr/share/icons/hicolor/$size/apps/$pkgname.png
+ done < dist/icons/size-list
+}
+
+sha512sums="
+3627b7ce207d10f73e91bca5f4bf5bd71262fa22eab678788f25fd6b89b9baaf55c41b642d855833196b1ed02dde8c73095ce5056211375b477b7c6d7ac4a4c4 element-desktop-1.11.64.tar.gz
+bc74ff9330c2972e22fdcd54a9a552c9dacc792874d7d7a30929b1f973f638fa4a88827bf5bc0268761175c21077ab5482475d012512ec480512b1eb15ddbc96 element-web-1.11.64.tar.gz
+4747893ed3e43d3074e9afe1cdd668a6be0de073d439205fe8c38c5e0f4091cc76e3cd15d98818bea5139add29501d8d07e83c58e9da230a4ce5bb538d388f80 add-alpine-targets.patch
+83f5e5fb197bc78e13dbb86dfcf2ef39c25ad9b54b72a911ad33fcd4a9725b6612e240edae030154b1512149408541b19f267bf517314447f1a2c6de6a45469e use-system-headers.patch
+e4f74e9b5eb6f6e8ea893925e3ad4fca2bbf7d6ba64e82e230f154d1c846668fe66fdd44875b1c8ac0281e7cad6a12e462ab765281e997a16616ccf855d82aa4 tasje-one-hak.patch
+9af00259f5e236f70a308f315d0c9116a68e1223d057a219344a8c72ec9b5694b92e3a1cb030c918a5be8c112dd1a5920b65b2b1eaf2b5b61fcb0d743d9a94b8 tasje-no-fuses.patch
+31e3bde9ac13d711af3b57768eea5f60013f93ac35ec49648a66da8b4652e5049c991bfadfbe373814f237c700b95f5b9d1ed0c8f7cf8e4ec489a44b17dbfad5 use-system-fonts.patch.reactsdk
+7dd96eb00dfc13e30d2274650a79aafce1bae3572ffcb4a5ce6a0ee6e4bc73cc8d6c0845d2dea930006f0fdd0ff313cd7615e6de58c95e674cb41dc978377f1d use-system-fonts.patch.web
+afc588311dc3b566a754e3e7fe6b37b99a06d47b8bbce0ed9acca8ef308fdab0bd1d41b406199e5cbdd86bdce695ff847cd8668857a235cbdc292ad8b899c063 element-desktop
+"
diff --git a/testing/element-desktop/add-alpine-targets.patch b/testing/element-desktop/add-alpine-targets.patch
new file mode 100644
index 00000000000..87e11483f35
--- /dev/null
+++ b/testing/element-desktop/add-alpine-targets.patch
@@ -0,0 +1,52 @@
+--- a/scripts/hak/target.ts
++++ b/scripts/hak/target.ts
+@@ -29,8 +29,10 @@
+ | "i686-unknown-linux-gnu"
+ | "x86_64-unknown-linux-musl"
+ | "x86_64-unknown-linux-gnu"
++ | "x86_64-alpine-linux-musl"
+ | "aarch64-unknown-linux-musl"
+ | "aarch64-unknown-linux-gnu"
++ | "aarch64-alpine-linux-musl"
+ | "powerpc64le-unknown-linux-musl"
+ | "powerpc64le-unknown-linux-gnu";
+
+@@ -112,6 +114,13 @@
+ libC: MUSL,
+ };
+
++const x8664AlpineLinuxMusl: LinuxTarget = {
++ id: "x86_64-alpine-linux-musl",
++ platform: "linux",
++ arch: "x64",
++ libC: MUSL,
++};
++
+ const i686UnknownLinuxGnu: LinuxTarget = {
+ id: "i686-unknown-linux-gnu",
+ platform: "linux",
+@@ -140,6 +149,13 @@
+ libC: MUSL,
+ };
+
++const aarch64AlpineLinuxMusl: LinuxTarget = {
++ id: "aarch64-alpine-linux-musl",
++ platform: "linux",
++ arch: "arm64",
++ libC: MUSL,
++};
++
+ const powerpc64leUnknownLinuxGnu: LinuxTarget = {
+ id: "powerpc64le-unknown-linux-gnu",
+ platform: "linux",
+@@ -167,8 +183,10 @@
+ "i686-unknown-linux-gnu": i686UnknownLinuxGnu,
+ "x86_64-unknown-linux-musl": x8664UnknownLinuxMusl,
+ "x86_64-unknown-linux-gnu": x8664UnknownLinuxGnu,
++ "x86_64-alpine-linux-musl": x8664AlpineLinuxMusl,
+ "aarch64-unknown-linux-musl": aarch64UnknownLinuxMusl,
+ "aarch64-unknown-linux-gnu": aarch64UnknownLinuxGnu,
++ "aarch64-alpine-linux-musl": aarch64AlpineLinuxMusl,
+ "powerpc64le-unknown-linux-musl": powerpc64leUnknownLinuxMusl,
+ "powerpc64le-unknown-linux-gnu": powerpc64leUnknownLinuxGnu,
+ };
diff --git a/testing/element-desktop/element-desktop b/testing/element-desktop/element-desktop
new file mode 100755
index 00000000000..de3c5b2d9de
--- /dev/null
+++ b/testing/element-desktop/element-desktop
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec electron /usr/lib/element-desktop/app.asar "$@"
diff --git a/testing/element-desktop/tasje-no-fuses.patch b/testing/element-desktop/tasje-no-fuses.patch
new file mode 100644
index 00000000000..8198e5ffed4
--- /dev/null
+++ b/testing/element-desktop/tasje-no-fuses.patch
@@ -0,0 +1,58 @@
+we can't do fuses because we ship one binary in the electron package.
+and we can't import them here, since they are in devDependencies, which are uninstalled at this stage.
+
+--- ./electron-builder.js.orig
++++ ./electron-builder.js
+@@ -1,8 +1,6 @@
+ const os = require("os");
+ const fs = require("fs");
+ const path = require("path");
+-const Arch = require("electron-builder").Arch;
+-const { flipFuses, FuseVersion, FuseV1Options } = require("@electron/fuses");
+
+ // Typescript conversion blocked on https://github.com/electron-userland/electron-builder/issues/7775
+
+@@ -35,43 +33,6 @@
+ const config = {
+ appId: "im.riot.app",
+ asarUnpack: "**/*.node",
+- afterPack: async (context) => {
+- if (context.electronPlatformName !== "darwin" || context.arch === Arch.universal) {
+- // Burn in electron fuses for proactive security hardening.
+- // On macOS, we only do this for the universal package, as the constituent arm64 and amd64 packages are embedded within.
+- const ext = {
+- darwin: ".app",
+- win32: ".exe",
+- linux: "",
+- }[context.electronPlatformName];
+-
+- let executableName = context.packager.appInfo.productFilename;
+- if (context.electronPlatformName === "linux") {
+- // Linux uses the package name as the executable name
+- executableName = context.packager.appInfo.name;
+- }
+-
+- const electronBinaryPath = path.join(context.appOutDir, `${executableName}${ext}`);
+- console.log(`Flipping fuses for: ${electronBinaryPath}`);
+-
+- await flipFuses(electronBinaryPath, {
+- version: FuseVersion.V1,
+- resetAdHocDarwinSignature: context.electronPlatformName === "darwin" && context.arch === Arch.universal,
+-
+- [FuseV1Options.EnableCookieEncryption]: true,
+- [FuseV1Options.OnlyLoadAppFromAsar]: true,
+-
+- [FuseV1Options.RunAsNode]: false,
+- [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
+- [FuseV1Options.EnableNodeCliInspectArguments]: false,
+-
+- // Mac app crashes on arm for us when `LoadBrowserProcessSpecificV8Snapshot` is enabled
+- [FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: false,
+- // https://github.com/electron/fuses/issues/7
+- [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: false,
+- });
+- }
+- },
+ files: [
+ "package.json",
+ "lib/**",
diff --git a/testing/element-desktop/tasje-one-hak.patch b/testing/element-desktop/tasje-one-hak.patch
new file mode 100644
index 00000000000..ac584aa0a6f
--- /dev/null
+++ b/testing/element-desktop/tasje-one-hak.patch
@@ -0,0 +1,20 @@
+directories in .hak/hakModules are already symlinked inside node_modules,
+and as such are already being copied by default. this makes tasje fail with:
+```
+thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value:
+FileAlreadyWritten("/node_modules/keytar/package.json")', src/main.rs:200:18
+```
+
+--- ./electron-builder.js.orig
++++ ./electron-builder.js
+@@ -74,10 +74,6 @@
+ },
+ files: [
+ "package.json",
+- {
+- from: ".hak/hakModules",
+- to: "node_modules",
+- },
+ "lib/**",
+ ],
+ extraResources: [
diff --git a/testing/element-desktop/use-system-fonts.patch.reactsdk b/testing/element-desktop/use-system-fonts.patch.reactsdk
new file mode 100644
index 00000000000..400ea50c6d5
--- /dev/null
+++ b/testing/element-desktop/use-system-fonts.patch.reactsdk
@@ -0,0 +1,169 @@
+--- a/src/utils/FontManager.ts
++++ b/src/utils/FontManager.ts
+@@ -108,20 +108,6 @@
+ }
+ colrFontCheckStarted = true;
+
+- if (await isColrFontSupported()) {
+- const path = `url('${require("../../res/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2")}')`;
+- document.fonts.add(new FontFace("Twemoji", path, {}));
+- // For at least Chrome on Windows 10, we have to explictly add extra
+- // weights for the emoji to appear in bold messages, etc.
+- document.fonts.add(new FontFace("Twemoji", path, { weight: "600" }));
+- document.fonts.add(new FontFace("Twemoji", path, { weight: "700" }));
+- } else {
+- // fall back to SBIX, generated via https://github.com/matrix-org/twemoji-colr/tree/matthew/sbix
+- const path = `url('${require("../../res/fonts/Twemoji_Mozilla/TwemojiMozilla-sbix.woff2")}')`;
+- document.fonts.add(new FontFace("Twemoji", path, {}));
+- document.fonts.add(new FontFace("Twemoji", path, { weight: "600" }));
+- document.fonts.add(new FontFace("Twemoji", path, { weight: "700" }));
+- }
+- // ...and if SBIX is not supported, the browser will fall back to one of the native fonts specified.
++ // no need, we ensure twemoji font is system
+ }
+
+--- a/res/themes/light/css/_fonts.pcss
++++ b/res/themes/light/css/_fonts.pcss
+@@ -17,8 +17,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-Regular.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-Regular.woff?v=3.18") format("woff");
++ local("Inter Regular");
+ }
+ @font-face {
+ font-family: "Inter";
+@@ -27,8 +26,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-Italic.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-Italic.woff?v=3.18") format("woff");
++ local("Inter Italic");
+ }
+
+ @font-face {
+@@ -38,8 +36,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-Medium.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-Medium.woff?v=3.18") format("woff");
++ local("Inter Medium");
+ }
+ @font-face {
+ font-family: "Inter";
+@@ -48,8 +45,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-MediumItalic.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-MediumItalic.woff?v=3.18") format("woff");
++ local("Inter Medium Italic");
+ }
+
+ @font-face {
+@@ -59,8 +55,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-SemiBold.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-SemiBold.woff?v=3.18") format("woff");
++ local("Inter SemiBold");
+ }
+ @font-face {
+ font-family: "Inter";
+@@ -69,8 +64,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-SemiBoldItalic.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-SemiBoldItalic.woff?v=3.18") format("woff");
++ local("Inter SemiBold Italic");
+ }
+
+ @font-face {
+@@ -80,8 +74,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-Bold.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-Bold.woff?v=3.18") format("woff");
++ local("Inter Bold");
+ }
+ @font-face {
+ font-family: "Inter";
+@@ -90,8 +83,7 @@
+ font-display: swap;
+ unicode-range: $inter-unicode-range;
+ src:
+- url("$(res)/fonts/Inter/Inter-BoldItalic.woff2?v=3.18") format("woff2"),
+- url("$(res)/fonts/Inter/Inter-BoldItalic.woff?v=3.18") format("woff");
++ local("Inter Bold Italic");
+ }
+
+ /* latin-ext */
+@@ -101,8 +93,7 @@
+ font-weight: 400;
+ src:
+ local("Inconsolata Regular"),
+- local("Inconsolata-Regular"),
+- url("$(res)/fonts/Inconsolata/QldKNThLqRwH-OJ1UHjlKGlX5qhExfHwNJU.woff2") format("woff2");
++ local("Inconsolata-Regular");
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+@@ -113,8 +104,7 @@
+ font-display: swap;
+ src:
+ local("Inconsolata Regular"),
+- local("Inconsolata-Regular"),
+- url("$(res)/fonts/Inconsolata/QldKNThLqRwH-OJ1UHjlKGlZ5qhExfHw.woff2") format("woff2");
++ local("Inconsolata-Regular");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,
+ U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+@@ -126,8 +116,7 @@
+ font-display: swap;
+ src:
+ local("Inconsolata Bold"),
+- local("Inconsolata-Bold"),
+- url("$(res)/fonts/Inconsolata/QldXNThLqRwH-OJ1UHjlKGHiw71n5_zaDpwm80E.woff2") format("woff2");
++ local("Inconsolata-Bold");
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
+ }
+ /* latin */
+@@ -138,8 +127,7 @@
+ font-display: swap;
+ src:
+ local("Inconsolata Bold"),
+- local("Inconsolata-Bold"),
+- url("$(res)/fonts/Inconsolata/QldXNThLqRwH-OJ1UHjlKGHiw71p5_zaDpwm.woff2") format("woff2");
++ local("Inconsolata-Bold");
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,
+ U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ }
+--- a/res/themes/legacy-light/css/_fonts.pcss
++++ b/res/themes/legacy-light/css/_fonts.pcss
+@@ -23,17 +23,17 @@
+ font-family: "Nunito";
+ font-style: normal;
+ font-weight: 400;
+- src: url("$(res)/fonts/Nunito/Nunito-Regular.ttf") format("truetype");
++ src: local("Nunito Regular");
+ }
+ @font-face {
+ font-family: "Nunito";
+ font-style: normal;
+ font-weight: 600;
+- src: url("$(res)/fonts/Nunito/Nunito-SemiBold.ttf") format("truetype");
++ src: local("Nunito SemiBold");
+ }
+ @font-face {
+ font-family: "Nunito";
+ font-style: normal;
+ font-weight: 700;
+- src: url("$(res)/fonts/Nunito/Nunito-Bold.ttf") format("truetype");
++ src: local("Nunito Bold");
+ }
diff --git a/testing/element-desktop/use-system-fonts.patch.web b/testing/element-desktop/use-system-fonts.patch.web
new file mode 100644
index 00000000000..b2b406e9446
--- /dev/null
+++ b/testing/element-desktop/use-system-fonts.patch.web
@@ -0,0 +1,11 @@
+--- a/src/vector/jitsi/index.pcss
++++ b/src/vector/jitsi/index.pcss
+@@ -20,7 +20,7 @@
+ font-family: "Nunito";
+ font-style: normal;
+ font-weight: 400;
+- src: url("~matrix-react-sdk/res/fonts/Nunito/Nunito-Regular.ttf") format("truetype");
++ src: local("Nunito Regular");
+ }
+
+ $dark-fg: #edf3ff;
diff --git a/testing/element-desktop/use-system-headers.patch b/testing/element-desktop/use-system-headers.patch
new file mode 100644
index 00000000000..231e1f20d2e
--- /dev/null
+++ b/testing/element-desktop/use-system-headers.patch
@@ -0,0 +1,15 @@
+--- a/scripts/hak/hakEnv.ts
++++ b/scripts/hak/hakEnv.ts
+@@ -99,11 +99,10 @@
+ return Object.assign({}, process.env, {
+ npm_config_arch: this.target.arch,
+ npm_config_target_arch: this.target.arch,
+- npm_config_disturl: "https://electronjs.org/headers",
++ npm_config_nodedir: "/usr/include/electron/node_headers",
+ npm_config_runtime: this.runtime,
+ npm_config_target: this.runtimeVersion,
+ npm_config_build_from_source: true,
+- npm_config_devdir: path.join(os.homedir(), ".electron-gyp"),
+ });
+ }
+
diff --git a/testing/elementary-photos/APKBUILD b/testing/elementary-photos/APKBUILD
new file mode 100644
index 00000000000..1e39aa74978
--- /dev/null
+++ b/testing/elementary-photos/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=elementary-photos
+pkgver=2.8.0
+pkgrel=1
+pkgdesc="Photo viewer and organizer designed for elementary OS"
+url="https://github.com/elementary/photos"
+arch="all !riscv64 !s390x" # blocked by libhandy1
+license="LGPL-2.1"
+depends="hicolor-icon-theme"
+makedepends="
+ geocode-glib-dev
+ gexiv2-dev
+ gexiv2-dev
+ glib-dev
+ granite-dev
+ gst-plugins-base-dev
+ gstreamer-dev
+ gtk+3.0-dev
+ json-glib-dev
+ libexif-dev
+ libgee-dev
+ libgphoto2-dev
+ libgudev-dev
+ libhandy1-dev
+ libraw-dev
+ libsoup-dev
+ libwebp-dev
+ libxml2-dev
+ meson
+ rest-dev
+ sqlite-dev
+ vala
+ webkit2gtk-dev
+ "
+subpackages="
+ $pkgname-lang
+ $pkgname-publishing
+ "
+source="https://github.com/elementary/photos/archive/$pkgver/$pkgname-$pkgver.tar.gz"
+builddir="$srcdir/photos-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ abuild-meson . output
+ meson compile -j ${JOBS:-0} -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+publishing() {
+ pkgdesc="$pkgdesc - publishing plugins"
+
+ amove usr/lib/io.elementary.photos/plugins/libpantheon-photos-publishing*.so
+}
+
+sha512sums="
+691212a03d19b51bed7cb11d7df32e276d8aa7c5810668a6a3898c1e22c0664672dec66055305cd0e82d52cf612e094fa8ccbe32f62cb73d579f17cfc6915758 elementary-photos-2.8.0.tar.gz
+"
diff --git a/testing/elf_diff/APKBUILD b/testing/elf_diff/APKBUILD
new file mode 100644
index 00000000000..7457d6d22f9
--- /dev/null
+++ b/testing/elf_diff/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=elf_diff
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Tool to compare ELF binaries"
+url="https://github.com/noseglasses/elf_diff"
+arch="noarch !s390x" # py3-progressbar2
+license="GPL-3.0-only"
+depends="
+ py3-anytree
+ py3-beautifulsoup4
+ py3-deepdiff
+ py3-dict2xml
+ py3-gitpython
+ py3-jinja2
+ py3-progressbar2
+ py3-yaml
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+options="!check" # unit tests fail
+
+subpackages="$pkgname-pyc"
+source="
+ https://files.pythonhosted.org/packages/source/e/elf_diff/elf_diff-$pkgver.tar.gz
+
+ elf_diff
+ "
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD" pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm755 "$srcdir"/elf_diff "$pkgdir"/usr/bin/elf_diff
+}
+
+sha512sums="
+b1eef9954ceabf3a1936423131eacd71cf942a5d2f28419b3afac837b6b56cf81a9ff884f6e36495d0f61840aa9f5e68836960d29b0a7d7e00f4a0e938fcc141 elf_diff-0.7.1.tar.gz
+1ca2c8c7325f78df0d4033fe7cc8ed2e1da2716e4407b10fbcdf38cededcd1113dcc7a74b1816dff84103119c894dd499b061cf9936f2ff18eebef632b494617 elf_diff
+"
diff --git a/testing/elf_diff/elf_diff b/testing/elf_diff/elf_diff
new file mode 100755
index 00000000000..61b9fa48493
--- /dev/null
+++ b/testing/elf_diff/elf_diff
@@ -0,0 +1,5 @@
+#!/usr/bin/env python3
+
+from elf_diff.__main__ import main
+
+main()
diff --git a/testing/elfio/APKBUILD b/testing/elfio/APKBUILD
new file mode 100644
index 00000000000..06c3176cd71
--- /dev/null
+++ b/testing/elfio/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
+pkgname=elfio
+pkgver=3.12
+pkgrel=0
+pkgdesc="ELF reader and producer implemented as a header only C++ library"
+url="https://github.com/serge1/ELFIO"
+arch="noarch"
+license="MIT"
+makedepends="cmake ninja"
+subpackages="$pkgname-dev"
+source="https://github.com/serge1/ELFIO/releases/download/Release_$pkgver/elfio-$pkgver.tar.gz
+ fix-cmake-install-dir.patch
+ page_size.patch
+ "
+options="!check" # no tests included in release tarball
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ rm -rf "$pkgdir"/usr/share/docs
+}
+
+sha512sums="
+13ec6be1f8ee3d7dc96d4ff141d3c199dacd818470c0d902403215571ce3d998afe9e71a8c64e0e69cfb86a4794752d93e2e406025f4812e499e51b67201e23c elfio-3.12.tar.gz
+a913982727ec3a0c35f7701302afded5c9c308d7bd059873b996cbfd69350a11a4c66f72beea0c1ffa1170504e82fb81ea59861122dd2e5d34138d47bd92ef1b fix-cmake-install-dir.patch
+512a47c6a7bd23ad44007a07882fec203782754a11756cde2ed81452bdd8250f8d92c44d3c4d235720c54dc2ee798e38c6e68f9a7597cd406f698c7921d341c6 page_size.patch
+"
diff --git a/testing/elfio/fix-cmake-install-dir.patch b/testing/elfio/fix-cmake-install-dir.patch
new file mode 100644
index 00000000000..22965925efa
--- /dev/null
+++ b/testing/elfio/fix-cmake-install-dir.patch
@@ -0,0 +1,35 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 11 Dec 2021 12:00:39 +0100
+Subject: [PATCH] Fix install directory for cmake files
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 87de541..8e4fe8a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -78,7 +78,7 @@ if(IS_TOP_PROJECT)
+ "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in"
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+ INSTALL_DESTINATION
+- ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
++ ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/)
+
+ # Install the previously generated "config" and "version" files
+ install(
+@@ -86,7 +86,7 @@ if(IS_TOP_PROJECT)
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+ DESTINATION
+- ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
++ ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/)
+
+ # Install the entire local `elfio` directory to the include directory
+ install(
+@@ -107,7 +107,7 @@ if(IS_TOP_PROJECT)
+ NAMESPACE
+ ${PROJECT_NAME}::
+ DESTINATION
+- ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake)
++ ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/)
+
+ # Add the elfio target to the ${PROJECT_NAME}_Targets export
+ install(
diff --git a/testing/elfio/page_size.patch b/testing/elfio/page_size.patch
new file mode 100644
index 00000000000..9739a803ffa
--- /dev/null
+++ b/testing/elfio/page_size.patch
@@ -0,0 +1,33 @@
+diff --git a/examples/writer/writer.cpp b/examples/writer/writer.cpp
+index 3b3e8b6..62e5592 100644
+--- a/examples/writer/writer.cpp
++++ b/examples/writer/writer.cpp
+@@ -39,8 +39,8 @@ THE SOFTWARE.
+ using namespace ELFIO;
+
+ const Elf64_Addr CODE_ADDR = 0x00401000;
+-const Elf_Xword PAGE_SIZE = 0x1000;
+-const Elf64_Addr DATA_ADDR = CODE_ADDR + PAGE_SIZE;
++const Elf_Xword pagesize = 0x1000;
++const Elf64_Addr DATA_ADDR = CODE_ADDR + pagesize;
+
+ int main( void )
+ {
+@@ -80,7 +80,7 @@ int main( void )
+ text_seg->set_virtual_address( CODE_ADDR );
+ text_seg->set_physical_address( CODE_ADDR );
+ text_seg->set_flags( PF_X | PF_R );
+- text_seg->set_align( PAGE_SIZE );
++ text_seg->set_align( pagesize );
+
+ // Add code section into program segment
+ text_seg->add_section( text_sec, text_sec->get_addr_align() );
+@@ -103,7 +103,7 @@ int main( void )
+ data_seg->set_virtual_address( DATA_ADDR );
+ data_seg->set_physical_address( DATA_ADDR );
+ data_seg->set_flags( PF_W | PF_R );
+- data_seg->set_align( PAGE_SIZE );
++ data_seg->set_align( pagesize );
+
+ // Add code section into program segment
+ data_seg->add_section( data_sec, data_sec->get_addr_align() );
diff --git a/testing/eludris/APKBUILD b/testing/eludris/APKBUILD
new file mode 100644
index 00000000000..587142efe6d
--- /dev/null
+++ b/testing/eludris/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Oliver Wilkes <oliverwilkes2006@icloud.com>
+# Maintainer: Oliver Wilkes <oliverwilkes2006@icloud.com>
+pkgname=eludris
+pkgver=0.3.3
+pkgrel=1
+pkgdesc="Simple CLI to help you with setting up and managing your Eludris instance"
+url="https://github.com/eludris/eludris/tree/main/cli"
+# rust-ring
+arch="all !ppc64le !s390x !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable openssl-dev"
+subpackages="$pkgname-doc"
+source="eludris-$pkgver.tar.gz::https://github.com/eludris/eludris/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no cli tests right now
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked --manifest-path cli/Cargo.toml
+}
+
+build() {
+ cargo auditable build --frozen --release --bin eludris
+}
+
+package() {
+ install -Dm755 target/release/eludris -t "$pkgdir"/usr/bin/
+
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+2f0d874620d1a28b8b29a688311b30206df20a92b3f637a364210297cce3bc4ca89066a2b71f317dc629b5bb1591c80b6226b977f26de8f3d1283ee50064c1a6 eludris-0.3.3.tar.gz
+"
diff --git a/testing/elvish/APKBUILD b/testing/elvish/APKBUILD
deleted file mode 100644
index c07ee3d583a..00000000000
--- a/testing/elvish/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Daniel Isaksen <d@duniel.no>
-pkgname=elvish
-pkgver=0.13.1
-pkgrel=1
-pkgdesc="A friendly and expressive shell for Linux, macOS and BSDs"
-url="https://elvish.io/"
-arch="all !mips !mips64" # boltdb
-license="BSD-2-Clause"
-makedepends="go"
-options="!check chmod-clean"
-source="$pkgname-$pkgver.tar.gz::https://github.com/elves/elvish/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/elves/$pkgname"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
- default_prepare
-}
-
-build() {
- export GOPATH="$srcdir"
- go build -o bin/$pkgname
-}
-
-package() {
- install -Dm755 "$builddir"/bin/elvish "$pkgdir"/usr/bin
-}
-
-sha512sums="c94b4c628e8e91c5778ecf201124ac98da6821cb95e6fdbcd0e0889914fb8e643043f41e4c693eb6b276cecc12bef60ca807c813e81b58ddd18d933825a7e785 elvish-0.13.1.tar.gz"
diff --git a/testing/emacs-ace-window/APKBUILD b/testing/emacs-ace-window/APKBUILD
new file mode 100644
index 00000000000..eb8875e2cb4
--- /dev/null
+++ b/testing/emacs-ace-window/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-ace-window
+pkgver=0.10.0_git20220911
+_gitrev=77115afc1b0b9f633084cf7479c767988106c196
+pkgrel=0
+_pkgreal=ace-window
+pkgdesc="Quickly switch windows in Emacs"
+url="https://github.com/abo-abo/ace-window"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-avy
+ "
+makedepends="emacs-nox"
+source="https://github.com/abo-abo/ace-window/archive/$_gitrev/emacs-ace-window-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+b159413cb2848907c7d8bce5c685c58314f6e52fca2368305f609690c03b1073ca0e067624390524e4d6b0452dca674509d8f6cb4b80571699d7c0b48be9eb8c emacs-ace-window-77115afc1b0b9f633084cf7479c767988106c196.tar.gz
+"
diff --git a/testing/emacs-async-await/APKBUILD b/testing/emacs-async-await/APKBUILD
new file mode 100644
index 00000000000..032a0a4008e
--- /dev/null
+++ b/testing/emacs-async-await/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-async-await
+pkgver=1.1_git20220826
+_gitrev=5d5b6ea07c09e3ec42f95b13fc837608658324e1
+pkgrel=0
+_pkgreal=async-await
+pkgdesc="Simple implementation of Async/Await"
+url="https://github.com/chuntaro/emacs-async-await"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-iter2
+ emacs-promise
+ "
+makedepends="emacs-nox"
+source="https://github.com/chuntaro/emacs-async-await/archive/$_gitrev/emacs-async-await-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+0967347fed289fb71f2acc7b0118b77cc5e91b3d5acd6d7b9d604832420f88e70e68210bdee4d858aa0ca437b080a36a599939a979069b8d1a21f83cf2469236 emacs-async-await-5d5b6ea07c09e3ec42f95b13fc837608658324e1.tar.gz
+"
diff --git a/testing/emacs-async/APKBUILD b/testing/emacs-async/APKBUILD
new file mode 100644
index 00000000000..62262b171ef
--- /dev/null
+++ b/testing/emacs-async/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-async
+pkgver=1.9.8
+pkgrel=0
+_pkgreal=async
+pkgdesc="Simple library for asynchronous processing"
+url="https://github.com/jwiegley/emacs-async"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+checkdepends="emacs-buttercup"
+source="https://github.com/jwiegley/emacs-async/archive/v$pkgver/emacs-async-$pkgver.tar.gz"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ HOME="$srcdir" buttercup -L . --traceback pretty
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$pkgname/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$pkgname
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+c4c5406ce28dbfea0130b43a7f85d0a47626cf630c73318280896bd28f29bf5a8949077c242cd9c6162fecabbc619b2a270d532df341c4e286f1f7bb499da5f3 emacs-async-1.9.8.tar.gz
+"
diff --git a/testing/emacs-avy/APKBUILD b/testing/emacs-avy/APKBUILD
new file mode 100644
index 00000000000..72ff4247844
--- /dev/null
+++ b/testing/emacs-avy/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-avy
+pkgver=0.5.0_git20230420
+_gitrev=be612110cb116a38b8603df367942e2bb3d9bdbe
+pkgrel=0
+_pkgreal=avy
+pkgdesc="Jump to things in Emacs tree-style"
+url="https://github.com/abo-abo/avy"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/abo-abo/avy/archive/$_gitrev/emacs-avy-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l avy-test -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 avy.el avy.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+4c83c598f39267f1508923ed0fbbf4ae0161768895ce02367ef98c651f17f0fd71edc118c517380e95265a7151bbb52708b82521647cdde6f3c072498bbe2972 emacs-avy-be612110cb116a38b8603df367942e2bb3d9bdbe.tar.gz
+"
diff --git a/testing/emacs-buttercup/APKBUILD b/testing/emacs-buttercup/APKBUILD
new file mode 100644
index 00000000000..bd51a15ece0
--- /dev/null
+++ b/testing/emacs-buttercup/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-buttercup
+pkgver=1.35
+pkgrel=0
+_pkgreal=buttercup
+pkgdesc="Behavior-Driven Emacs Lisp Testing"
+url="https://github.com/jorgenschaefer/emacs-buttercup"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="bash cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/jorgenschaefer/emacs-buttercup/archive/v$pkgver/emacs-buttercup-$pkgver.tar.gz"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l buttercup -f buttercup-run-discover \
+ -- --traceback pretty
+}
+
+package() {
+ install -Dvm755 bin/buttercup \
+ -t "$pkgdir"/usr/bin/
+
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+416edb974999e2eac38040ce72c241ab961cc63f40068711b0436e4f3ca49025955d5ee2d93168770da0f251269652e36c1c9c0436f6ee6133c6ca859dbfe487 emacs-buttercup-1.35.tar.gz
+"
diff --git a/testing/emacs-cangjie/APKBUILD b/testing/emacs-cangjie/APKBUILD
new file mode 100644
index 00000000000..d0461117b3d
--- /dev/null
+++ b/testing/emacs-cangjie/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-cangjie
+pkgver=0.7.4_git20230218
+_gitrev=d6882e15f47fdde37e9f739dde604d77d25f11db
+pkgrel=0
+_pkgreal=cangjie
+pkgdesc="Lookup Cangjie encoding of a Han character"
+url="https://github.com/kisaragi-hiu/cangjie.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-dash
+ emacs-f
+ emacs-s
+ "
+makedepends="emacs-nox"
+source="https://github.com/kisaragi-hiu/cangjie.el/archive/$_gitrev/emacs-cangjie-$_gitrev.tar.gz"
+builddir="$srcdir/cangjie.el-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+3b35b7cb777ea7781ed987970ecd956a05b26ac92b12940c1f7240ebcffd1cb6aab4e6d7fec82ab335acd7bacbc2a9d1f160aba32f0cf605cf03726c24fc15c3 emacs-cangjie-d6882e15f47fdde37e9f739dde604d77d25f11db.tar.gz
+"
diff --git a/testing/emacs-centaur-tabs/APKBUILD b/testing/emacs-centaur-tabs/APKBUILD
new file mode 100644
index 00000000000..dd95e8431f6
--- /dev/null
+++ b/testing/emacs-centaur-tabs/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-centaur-tabs
+pkgver=3.2_git20230601
+_gitrev=0bb1aa18d475319df85f192dce3327802866c3c3
+pkgrel=0
+_pkgreal=centaur-tabs
+pkgdesc="Aesthetic, modern looking tabs plugin"
+url="https://github.com/ema2159/centaur-tabs"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-powerline
+ "
+makedepends="emacs-nox"
+source="https://github.com/ema2159/centaur-tabs/archive/$_gitrev/emacs-centaur-tabs-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+f59668c6ea3af1624a94db4b5afa584f75544689cfc039be1869ed9c633303f13809c208a47dd3c9dfe4f6b27c83381372e46ea624af11e4eed9cedaae8218fd emacs-centaur-tabs-0bb1aa18d475319df85f192dce3327802866c3c3.tar.gz
+"
diff --git a/testing/emacs-circe/APKBUILD b/testing/emacs-circe/APKBUILD
new file mode 100644
index 00000000000..e8670c85b09
--- /dev/null
+++ b/testing/emacs-circe/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-circe
+pkgver=2.13
+pkgrel=0
+_pkgreal=circe
+pkgdesc="Client for IRC in Emacs"
+url="https://github.com/emacs-circe/circe"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+checkdepends="emacs-buttercup"
+source="https://github.com/emacs-circe/circe/archive/v$pkgver/emacs-circe-$pkgver.tar.gz
+ fix-test-tracking.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+ rm -v circe-pkg.elc
+}
+
+check() {
+ HOME="$srcdir" buttercup -L . --traceback pretty
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+10e5998fa211d5a340eacec6bf88fc4ef749fbae01cfbd8cd01204a7d4533d0ecb4dda54543667c5caf4f44142fef737dcc2750d44525f69dfff18e245cae02e emacs-circe-2.13.tar.gz
+696b5ebf5011dbf8a256a5350f03c58a15ee9d9f7b533628ec5f2644592141c287e7b98e67e0d0327e81c54a9888e938c510318c171b8b427924cbdadfe7bb5a fix-test-tracking.patch
+"
diff --git a/testing/emacs-circe/fix-test-tracking.patch b/testing/emacs-circe/fix-test-tracking.patch
new file mode 100644
index 00000000000..fffb5a44156
--- /dev/null
+++ b/testing/emacs-circe/fix-test-tracking.patch
@@ -0,0 +1,27 @@
+Patch-Source: https://github.com/emacs-circe/circe/commit/0bb4ee83693ef3a3504e3cdc512b218afb333af3.patch
+--
+From 0bb4ee83693ef3a3504e3cdc512b218afb333af3 Mon Sep 17 00:00:00 2001
+From: Ola Nilsson <ola.nilsson@gmail.com>
+Date: Tue, 5 Mar 2024 22:34:26 +0100
+Subject: [PATCH] Add lexical-cast to test-tracking.el
+
+Buttercup 1.34 requires lexical-cast: t in all files defining
+buttercup test suites for Emacs >= 29.
+It was already documented as a requirement, but was only actually
+required for some specific functionality. The introduction of
+Oclosures for Emacs versions that support them made it a hard
+requirement.
+---
+ tests/test-tracking.el | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test-tracking.el b/tests/test-tracking.el
+index 35076917..21b252a7 100644
+--- a/tests/test-tracking.el
++++ b/tests/test-tracking.el
+@@ -1,4 +1,4 @@
+-;;; Automated tests for tracking.el
++;;; test-tracking.el --- Automated tests for tracking.el -*- lexical-binding: t; -*-
+
+ (require 'tracking)
+
diff --git a/testing/emacs-compat/APKBUILD b/testing/emacs-compat/APKBUILD
new file mode 100644
index 00000000000..936dbe3d74d
--- /dev/null
+++ b/testing/emacs-compat/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-compat
+pkgver=29.1.4.5
+pkgrel=0
+_pkgreal=compat
+pkgdesc="Forwards-compatibility library for Emacs Lisp"
+url="https://github.com/emacs-compat/compat"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/emacs-compat/compat/archive/$pkgver/emacs-compat-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # $pkgver in directory name is needed for
+ # compat-package-get-version test to pass
+ mkdir -v test-$pkgver
+ mv -v compat-tests.el test-$pkgver/
+}
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq compat-strict t byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test-$pkgver \
+ -l compat-tests -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+9682224a1ab5238c7f584121652c55df257fd050279e8356632b2aafef4045dc89b2dfd20cf8f5030dda1d96db40c993cdc3ac0efd0263d23beee8310def0849 emacs-compat-29.1.4.5.tar.gz
+"
diff --git a/testing/emacs-consult/APKBUILD b/testing/emacs-consult/APKBUILD
new file mode 100644
index 00000000000..a019bf66f0d
--- /dev/null
+++ b/testing/emacs-consult/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-consult
+pkgver=1.4_git20240405
+_gitrev=ea7043381b93f0a5236f8ee3f21f151380a0b0f5
+pkgrel=0
+_pkgreal=consult
+pkgdesc="Useful commands based on Emacs completing-read"
+url="https://github.com/minad/consult"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-compat
+ "
+makedepends="emacs-nox"
+source="https://github.com/minad/consult/archive/$_gitrev/emacs-consult-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+48ce64d8316f4419b6de420323f3d01df4ae7623778dc681f3ff9465d8e8544e8c47d34c3fe826a9227b03305f1d1e6d1ac021fa3710f3dc446eff83a772ccb0 emacs-consult-ea7043381b93f0a5236f8ee3f21f151380a0b0f5.tar.gz
+"
diff --git a/testing/emacs-dash/APKBUILD b/testing/emacs-dash/APKBUILD
new file mode 100644
index 00000000000..5d389aee9ec
--- /dev/null
+++ b/testing/emacs-dash/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-dash
+pkgver=2.19.1_git20240216
+_gitrev=5df7605da5a080df769d4f260034fb0e5e86a7a4
+pkgrel=0
+_pkgreal=dash
+pkgdesc="Modern list library for Emacs"
+url="https://github.com/magnars/dash.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/magnars/dash.el/archive/$_gitrev/emacs-dash-$_gitrev.tar.gz"
+builddir="$srcdir/dash.el-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ dash.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l dev/examples -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 dash.el dash.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+88e212f781f40040c7e906d5b170c8d0a1c0dece6800f569ed62955299d6019af31614899c9f2006b3a3b6733b2972d7b99e374874b908f7aec57b6964787e44 emacs-dash-5df7605da5a080df769d4f260034fb0e5e86a7a4.tar.gz
+"
diff --git a/testing/emacs-deferred/APKBUILD b/testing/emacs-deferred/APKBUILD
new file mode 100644
index 00000000000..56944927fcd
--- /dev/null
+++ b/testing/emacs-deferred/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-deferred
+pkgver=0.5.1
+pkgrel=0
+_pkgreal=deferred
+pkgdesc="Manage asynchronous tasks in Elisp"
+url="https://github.com/kiwanami/emacs-deferred"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/kiwanami/emacs-deferred/archive/v$pkgver/emacs-deferred-$pkgver.tar.gz"
+options="!check" # tests require unpackaged "undercover"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+357890f73917c7929cbb79f71a26901ac24abe9ea532181b730deee8eba97709b41c360904e2a2a8028ee1295e7ae845da5c702c74256a450f3d144080960a2b emacs-deferred-0.5.1.tar.gz
+"
diff --git a/testing/emacs-elfeed/APKBUILD b/testing/emacs-elfeed/APKBUILD
new file mode 100644
index 00000000000..c450e95e7f1
--- /dev/null
+++ b/testing/emacs-elfeed/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-elfeed
+pkgver=3.4.1_git20240326
+_gitrev=5c05a1eab37bc113ecb158a4d57fe05352fa2c6a
+pkgrel=0
+_pkgreal=elfeed
+pkgdesc="Emacs Atom/RSS feed reader"
+url="https://github.com/skeeto/elfeed"
+arch="noarch"
+license="Unlicense"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+checkdepends="cmd:curl"
+source="https://github.com/skeeto/elfeed/archive/$_gitrev/emacs-elfeed-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+ rm -v elfeed-pkg.elc
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L tests \
+ -l elfeed-tests -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+681a137cf9e39bbc057f40cde1e6292c94b92d4eee26d78d0c961e7e01c4dd1fd67e659958d5d01b89a3df70e6ff1d7c0b2089eef91c36dee485607deb1958be emacs-elfeed-5c05a1eab37bc113ecb158a4d57fe05352fa2c6a.tar.gz
+"
diff --git a/testing/emacs-embark/APKBUILD b/testing/emacs-embark/APKBUILD
new file mode 100644
index 00000000000..61863df30d6
--- /dev/null
+++ b/testing/emacs-embark/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-embark
+pkgver=1.0_git20240327
+_gitrev=d3c9d1b4c890cf365846cc2b418f37341999e79f
+pkgrel=0
+_pkgreal=embark
+pkgdesc="Conveniently act on minibuffer completions"
+url="https://github.com/oantolin/embark"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-compat
+ "
+makedepends="
+ emacs-avy
+ emacs-consult
+ emacs-nox
+ "
+subpackages="
+ emacs-avy-embark-collect
+ emacs-embark-consult
+ "
+source="https://github.com/oantolin/embark/archive/$_gitrev/emacs-embark-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+collect() {
+ pkgdesc="Use Avy to jump to Embark Collect entries"
+ depends="$pkgname=$pkgver-r$pkgrel emacs-avy"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs-avy"
+
+ amove usr/share/emacs/site-lisp/$_pkgreal/avy-embark-collect.el*
+}
+
+consult() {
+ pkgdesc="Consult integration for Embark"
+ depends="$pkgname=$pkgver-r$pkgrel emacs-consult"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs-consult"
+
+ amove usr/share/emacs/site-lisp/$_pkgreal/embark-consult.el*
+}
+
+sha512sums="
+bfa06e7b7ab95bc52b27e727b397373423c832bd1ff602b0e9d7a9ac85d8a38c6007604c5d3a68ea5e7f4611471e563a91f3780ff514634654a4229feac1c657 emacs-embark-d3c9d1b4c890cf365846cc2b418f37341999e79f.tar.gz
+"
diff --git a/testing/emacs-ement/APKBUILD b/testing/emacs-ement/APKBUILD
new file mode 100644
index 00000000000..b7e1dd68226
--- /dev/null
+++ b/testing/emacs-ement/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-ement
+pkgver=0.14_git20240320
+_gitrev=7fbbb065a86b0f5c44e3249e3b38d484772b6d22
+pkgrel=0
+_pkgreal=ement
+pkgdesc="Matrix client for Emacs"
+url="https://github.com/alphapapa/ement.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-persist
+ emacs-plz
+ emacs-svg-lib
+ emacs-taxy
+ emacs-taxy-magit-section
+ "
+makedepends="emacs-nox"
+source="https://github.com/alphapapa/ement.el/archive/$_gitrev/emacs-ement-$_gitrev.tar.gz"
+builddir="$srcdir/ement.el-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L tests \
+ -l ement-tests -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+42232412a8f87b3d083d162d783f56b4bb2cc750ddd69a350b533f97bcef105a7501714856ed7f2f2778daddd397afd15d03b8323be787305121bb66698d3009 emacs-ement-7fbbb065a86b0f5c44e3249e3b38d484772b6d22.tar.gz
+"
diff --git a/testing/emacs-ert-async/APKBUILD b/testing/emacs-ert-async/APKBUILD
new file mode 100644
index 00000000000..0808d6f5017
--- /dev/null
+++ b/testing/emacs-ert-async/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-ert-async
+pkgver=0.1.2_git20200105
+_gitrev=ec884dea0b72ec15d6c360d0d1fc6528bd993e66
+pkgrel=0
+_pkgreal=ert-async
+pkgdesc="Async support for ERT testing framework"
+url="https://github.com/rejeep/ert-async.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/rejeep/ert-async.el/archive/$_gitrev/emacs-ert-async-$_gitrev.tar.gz"
+builddir="$srcdir/ert-async.el-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+848f36f023fce9eb7d7335a3496c7986b923f8bbe3964f3aa93896a60d7c3125825a5906683d654f7d847b21a9c903117f1fe48f67256821384836284d6832b0 emacs-ert-async-ec884dea0b72ec15d6c360d0d1fc6528bd993e66.tar.gz
+"
diff --git a/testing/emacs-f/APKBUILD b/testing/emacs-f/APKBUILD
new file mode 100644
index 00000000000..a7158199d65
--- /dev/null
+++ b/testing/emacs-f/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-f
+pkgver=0.20.0_git20240307
+_gitrev=1e7020dc0d4c52d3da9bd610d431cab13aa02d8c
+pkgrel=0
+_pkgreal=f
+pkgdesc="Modern API for working with files and directories in Emacs"
+url="https://github.com/rejeep/f.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-dash
+ emacs-s
+ "
+makedepends="emacs-nox"
+source="https://github.com/rejeep/f.el/archive/$_gitrev/emacs-f-$_gitrev.tar.gz"
+builddir="$srcdir/f.el-$_gitrev"
+options="!check" # tests require unpackaged "undercover"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l f-init -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+680de5a75ac9225024905a1ab14251c7eb78ee35a34c42da2566573f06e97a34cc7a643434b5d7dd65519cce24a01ae35b287e5baaff032f242fe10fabed1963 emacs-f-1e7020dc0d4c52d3da9bd610d431cab13aa02d8c.tar.gz
+"
diff --git a/testing/emacs-fsm/APKBUILD b/testing/emacs-fsm/APKBUILD
new file mode 100644
index 00000000000..907fc0a5797
--- /dev/null
+++ b/testing/emacs-fsm/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-fsm
+pkgver=0.2.1_git20221212
+_gitrev=595d57373934ad94423c7f37a6c9cce5df81ec6c
+pkgrel=0
+_pkgreal=fsm
+pkgdesc="State machine library inspired by Erlang's gen_fsm"
+url="https://elpa.gnu.org/packages/fsm.html"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/emacsmirror/fsm/archive/$_gitrev/emacs-fsm-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+538a1bd02c607bc56f28da07ea0c1341c37ee2a04b878e81fd2e4c56f4260779287004fcc329b43dd43ecfe9c75e9dbd4b8a107efdfdb71ae9fd7b8b38ad1bfd emacs-fsm-595d57373934ad94423c7f37a6c9cce5df81ec6c.tar.gz
+"
diff --git a/testing/emacs-git-timemachine/APKBUILD b/testing/emacs-git-timemachine/APKBUILD
new file mode 100644
index 00000000000..eea8d7bcd43
--- /dev/null
+++ b/testing/emacs-git-timemachine/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-git-timemachine
+pkgver=4.13_git20240309
+_gitrev=5ed73c3831cf6da10ba941e6abba708a86853e8f
+pkgrel=0
+_pkgreal=git-timemachine
+pkgdesc="Step through Git revisions of a file"
+url="https://codeberg.org/pidu/git-timemachine"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ cmd:git
+ "
+makedepends="emacs-nox"
+source="$pkgname-$_gitrev.tar.gz::https://codeberg.org/pidu/git-timemachine/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+8e09f181b85249157e3c6bbce561076f02075c08c2a06a30cc60dfc23ad3448feba3ae1ca56d35dbf0c95c63ffe10f2fd179367747db8d7ef61858d610907922 emacs-git-timemachine-5ed73c3831cf6da10ba941e6abba708a86853e8f.tar.gz
+"
diff --git a/testing/emacs-hackernews/APKBUILD b/testing/emacs-hackernews/APKBUILD
new file mode 100644
index 00000000000..db5bbd3f38a
--- /dev/null
+++ b/testing/emacs-hackernews/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-hackernews
+pkgver=0.7.0
+pkgrel=0
+_pkgreal=hackernews
+pkgdesc="Hacker News client using Firebase API"
+url="https://github.com/clarete/hackernews.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/clarete/hackernews.el/archive/v$pkgver/emacs-hackernews-$pkgver.tar.gz"
+builddir="$srcdir/hackernews.el-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+1de6075de0ed841b6c617e0016ab7e37619a7360676aba01e1c8a7a6e401dc600298c66a9c9da907af0c510d09c74f6fc4f49fdf9e400e9bdbb42cc3f853cdc8 emacs-hackernews-0.7.0.tar.gz
+"
diff --git a/testing/emacs-helm/APKBUILD b/testing/emacs-helm/APKBUILD
new file mode 100644
index 00000000000..a622d7403af
--- /dev/null
+++ b/testing/emacs-helm/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-helm
+pkgver=3.9.7_git20240329
+_gitrev=5632e1eb9a11e9df149dee23b2fe469dd7413739
+pkgrel=0
+_pkgreal=helm
+pkgdesc="Emacs incremental completion and selection narrowing framework"
+url="https://github.com/emacs-helm/helm"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-async
+ emacs-popup
+ "
+makedepends="emacs-nox"
+source="https://github.com/emacs-helm/helm/archive/$_gitrev/emacs-helm-$_gitrev.tar.gz
+ remove-autoload-check.patch
+ "
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm755 emacs-helm.sh "$pkgdir"/usr/bin/emacs-helm
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-autoloads.el\")"
+}
+
+sha512sums="
+c6a11ca1dd4774e138be904b35127d6d83e840fcbecc8020a7251f5f6810729de0b566ed8f266ee9db602eb4297206cbc7a6d5a114db49c2b6ccbb4410c72d4a emacs-helm-5632e1eb9a11e9df149dee23b2fe469dd7413739.tar.gz
+88b7e5bd620072e6e87d8f1eb335fa2fb5f1df5c3783b00607b5f5111fb3f937c36076c05c075e2276e368eba9f8e8d11cad8b1de5d05e1bab00ef6f766f7c61 remove-autoload-check.patch
+"
diff --git a/testing/emacs-helm/remove-autoload-check.patch b/testing/emacs-helm/remove-autoload-check.patch
new file mode 100644
index 00000000000..1ea821b5747
--- /dev/null
+++ b/testing/emacs-helm/remove-autoload-check.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://gitweb.gentoo.org/repo/gentoo.git/tree/app-emacs/helm/files/helm-3.8.8-no-autoload-check.patch
+--
+https://bugs.gentoo.org/800177
+
+--- a/emacs-helm.sh
++++ b/emacs-helm.sh
+@@ -137,19 +137,6 @@ LOAD_PATH=$($EMACS -q -batch --eval "(prin1 load-path)")
+
+ cd "${0%/*}" || exit 1
+
+-# Check if autoload file exists.
+-# It may be in a different directory if emacs-helm.sh is a symlink.
+-TRUENAME=$(find "${0%/*}" -path "$0" -printf "%l")
+-if [ -n "$TRUENAME" ]; then
+- AUTO_FILE="${TRUENAME%/*}/helm-autoloads.el"
+-else
+- AUTO_FILE="helm-autoloads.el"
+-fi
+-if [ ! -e "$AUTO_FILE" ]; then
+- echo No autoloads found, please run make first to generate autoload file
+- exit 1
+-fi
+-
+
+ cat > $CONF_FILE <<EOF
+ (setq initial-scratch-message (concat initial-scratch-message
diff --git a/testing/emacs-hnreader/APKBUILD b/testing/emacs-hnreader/APKBUILD
new file mode 100644
index 00000000000..30277bf1a01
--- /dev/null
+++ b/testing/emacs-hnreader/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-hnreader
+pkgver=0_git20221116
+_gitrev=8444e177035e236e991f9ea73074c053a45426ad
+pkgrel=0
+_pkgreal=hnreader
+pkgdesc="Read Hacker News in Org-mode"
+url="https://github.com/thanhvg/emacs-hnreader"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-promise
+ emacs-request
+ "
+makedepends="emacs-nox"
+checkdepends="
+ emacs-ert-async
+ emacs-f
+ "
+source="https://github.com/thanhvg/emacs-hnreader/archive/$_gitrev/emacs-hnreader-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l test-helper -l emacs-hnreader-test \
+ -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+da37a70159ca44ee067dbbf15e068e556f56f693e74826e8b452ea1c177d2c164995a9a499e7b736006d62795b890d68a09a72cf4231e784dda575221b11278f emacs-hnreader-8444e177035e236e991f9ea73074c053a45426ad.tar.gz
+"
diff --git a/testing/emacs-howdoyou/APKBUILD b/testing/emacs-howdoyou/APKBUILD
new file mode 100644
index 00000000000..ce80138311e
--- /dev/null
+++ b/testing/emacs-howdoyou/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-howdoyou
+pkgver=0_git20230927
+_gitrev=10f31a10803c3fd4c304f3a4495d57a0b9cf9ab5
+pkgrel=0
+_pkgreal=howdoyou
+pkgdesc="Search StackOverflow & display results in an Org-mode buffer"
+url="https://github.com/thanhvg/emacs-howdoyou"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-promise
+ emacs-request
+ "
+makedepends="emacs-nox"
+checkdepends="
+ cmd:curl
+ emacs-ert-async
+ emacs-f
+ "
+source="https://github.com/thanhvg/emacs-howdoyou/archive/$_gitrev/emacs-howdoyou-$_gitrev.tar.gz
+ dont-test-against-google.patch
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+options="net" # test visits StackOverflow and verifies that it can parse result
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l test-helper -l howdoyou-test \
+ -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+e5b763e0078eb53e1f21434df037ae7f9b56a5e88ba157ac147056c2af3653b229ebceee88153e98e84699dae60366de4c8d64e68f74100c3ce04038f282d91b emacs-howdoyou-10f31a10803c3fd4c304f3a4495d57a0b9cf9ab5.tar.gz
+c5eb2d7d87b865fae34c203397cb630060db0bd8bb5da553c2241d7f896c5685fe9117bb4002ab5700980b584924ee1c22c87a458833c6b4ac71a8534f2367f5 dont-test-against-google.patch
+"
diff --git a/testing/emacs-howdoyou/dont-test-against-google.patch b/testing/emacs-howdoyou/dont-test-against-google.patch
new file mode 100644
index 00000000000..37b6ae2fb40
--- /dev/null
+++ b/testing/emacs-howdoyou/dont-test-against-google.patch
@@ -0,0 +1,23 @@
+Google will sometimes ask for Captcha verification, causing the tests to fail
+
+
+--- a/test/howdoyou-test.el
++++ b/test/howdoyou-test.el
+@@ -17,7 +17,7 @@
+ (ert-deftest-async test/promise-dom (done)
+ (promise-done
+ (promise-chain
+- (howdoyou--promise-dom "https://www.google.com")
++ (howdoyou--promise-dom "https://alpinelinux.org")
+ (then (lambda (result)
+ (should (listp result))
+ ;; (message "%s" result)
+@@ -29,7 +29,7 @@
+ (ert-deftest-async test/promise-curl-dom (done)
+ (promise-done
+ (promise-chain
+- (howdoyou--curl-promise-dom "https://www.google.com")
++ (howdoyou--curl-promise-dom "https://alpinelinux.org")
+ (then (lambda (result)
+ (should (listp result))
+ ;; (message "%s" result)
diff --git a/testing/emacs-hydra/APKBUILD b/testing/emacs-hydra/APKBUILD
new file mode 100644
index 00000000000..901dc950085
--- /dev/null
+++ b/testing/emacs-hydra/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-hydra
+pkgver=0.15.0_git20220910
+_gitrev=317e1de33086637579a7aeb60f77ed0405bf359b
+pkgrel=0
+_pkgreal=hydra
+pkgdesc="Make Emacs bindings that stick around"
+url="https://github.com/abo-abo/hydra"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/abo-abo/hydra/archive/$_gitrev/emacs-hydra-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+
+prepare() {
+ default_prepare
+
+ mkdir -v test
+ mv -v hydra-test.el test/
+}
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l hydra-test -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+18323e2b39ea99ee411a689f63c92827919ef66aa49e13bc6a6393af5b29eac81d146397d2ce12a55c9e533f562472e3931a6c4883e183bcb162d3e2d38798cb emacs-hydra-317e1de33086637579a7aeb60f77ed0405bf359b.tar.gz
+"
diff --git a/testing/emacs-iter2/APKBUILD b/testing/emacs-iter2/APKBUILD
new file mode 100644
index 00000000000..3b926f8c75d
--- /dev/null
+++ b/testing/emacs-iter2/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-iter2
+pkgver=1.4
+pkgrel=0
+_pkgreal=iter2
+pkgdesc="Reimplementation of Elisp generators"
+url="https://github.com/doublep/iter2"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/doublep/iter2/archive/$pkgver/emacs-iter2-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l iter2-test -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+3fe6827388e61f6ce39aded0fc844d8aeea6bcef098ae226460632065bcaf33758cc5bfdab2c0eabd3c5d77c5fea93db714d375f1aee7daecc3a623789ed639c emacs-iter2-1.4.tar.gz
+"
diff --git a/testing/emacs-jabber/APKBUILD b/testing/emacs-jabber/APKBUILD
new file mode 100644
index 00000000000..36f85cf2f7c
--- /dev/null
+++ b/testing/emacs-jabber/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-jabber
+pkgver=0_git20240306
+_gitrev=633cb73633143ec093c291af94b008f456037e8b
+pkgrel=0
+_pkgreal=jabber
+pkgdesc="Jabber/XMPP client for Emacs"
+url="https://codeberg.org/emacs-jabber/emacs-jabber"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="
+ cmd:emacs
+ emacs-fsm
+ emacs-srv
+ "
+makedepends="emacs-nox"
+source="$pkgname-$_gitrev.tar.gz::https://codeberg.org/emacs-jabber/emacs-jabber/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname/lisp"
+
+prepare() {
+ default_prepare
+ cp -v ../jabber-ourversion.el .
+}
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq print-length nil load-prefer-newer t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ local tests="load-all.el skip-tag-forward.el history.el
+ jabberd.el nick-change-fail.el
+ caps-hash.el parse-next-stanza.el
+ "
+
+ export top_builddir="$builddir"
+ local test; for test in $tests; do
+ msg "Running tests from $test"
+
+ emacs -batch -q -no-site-file -L . \
+ -L ../tests -l "../tests/$test"
+ done
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+8891c9707c5cc463a4a1dcf2355c4122a4df82b0609bb8b8734588873f72fb571210050c2824fef7176ab79c107c5549e6ef58bfe57f59f7aa1faae774073254 emacs-jabber-633cb73633143ec093c291af94b008f456037e8b.tar.gz
+"
diff --git a/testing/emacs-lab/APKBUILD b/testing/emacs-lab/APKBUILD
new file mode 100644
index 00000000000..182ba11ff53
--- /dev/null
+++ b/testing/emacs-lab/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-lab
+pkgver=2.0.0
+pkgrel=0
+_pkgreal=lab
+pkgdesc="Emacs interface for GitLab"
+url="https://github.com/isamert/lab.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:curl
+ cmd:emacs
+ emacs-async-await
+ emacs-compat
+ emacs-f
+ emacs-memoize
+ emacs-promise
+ emacs-request
+ emacs-s
+ "
+makedepends="emacs-nox"
+source="https://github.com/isamert/lab.el/archive/v$pkgver/emacs-lab-$pkgver.tar.gz"
+builddir="$srcdir/lab.el-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+0835b57ddc74f1b066a36082cc89451b76637f6b1d4aba3313213baad45a5a77d3ff1a3cf595b2376a99b45d41c4d5aa94fe80a45e6c9157a5a558a68d06925d emacs-lab-2.0.0.tar.gz
+"
diff --git a/testing/emacs-liberime/APKBUILD b/testing/emacs-liberime/APKBUILD
new file mode 100644
index 00000000000..c1b3d13b3f9
--- /dev/null
+++ b/testing/emacs-liberime/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-liberime
+pkgver=0.0.6_git20230113
+_gitrev=cc9eb9812fd6f68e78ed6a0c0a85da7a18765753
+pkgrel=0
+_pkgreal=liberime
+pkgdesc="Emacs librime bindings"
+url="https://github.com/merrickluo/liberime"
+arch="all"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox librime-dev"
+checkdepends="emacs-pyim rime-plum-data"
+source="https://github.com/merrickluo/liberime/archive/$_gitrev/emacs-liberime-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # opens an interactive Emacs window
+
+build() {
+ make
+
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ liberime.el
+}
+
+check() {
+ mkdir -p "$srcdir"/.emacs.d/test/rime
+ make HOME="$srcdir" test
+}
+
+package() {
+ install -Dvm644 liberime.el* src/liberime-core.so \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+1f3d2e64e96c1a750ea685ba03e31b920888e2ebcd3ae9c1859771f22de4e2e270768e96fe10d06fb76d6f55ece271063e7832ce3aade6c348b9ddd17a0154f5 emacs-liberime-cc9eb9812fd6f68e78ed6a0c0a85da7a18765753.tar.gz
+"
diff --git a/testing/emacs-lingva/APKBUILD b/testing/emacs-lingva/APKBUILD
new file mode 100644
index 00000000000..cfedb36f32c
--- /dev/null
+++ b/testing/emacs-lingva/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-lingva
+pkgver=0_git20230801
+_gitrev=2667e33cf3524d07cf437dac9380371890efcb15
+pkgrel=0
+_pkgreal=lingva
+pkgdesc="Basic interface to Lingva (Google Translate alternative front-end)"
+url="https://codeberg.org/martianh/lingva.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="$pkgname-$_gitrev.tar.gz::https://codeberg.org/martianh/lingva.el/archive/$_gitrev.tar.gz"
+builddir="$srcdir/lingva.el"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+362ecc09e5eadbfcab07af114b7d9e410315284a69b7e37d342575ec6653ace351758cdb337c9d22b05c9760ebfc0fa9762f76c3f61e210958719ca51c125477 emacs-lingva-2667e33cf3524d07cf437dac9380371890efcb15.tar.gz
+"
diff --git a/testing/emacs-magit/APKBUILD b/testing/emacs-magit/APKBUILD
new file mode 100644
index 00000000000..12976ccf38c
--- /dev/null
+++ b/testing/emacs-magit/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-magit
+pkgver=3.3.0
+pkgrel=0
+_pkgreal=magit
+pkgdesc="Emacs interface for Git"
+url="https://magit.vc/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ cmd:git
+ emacs-dash
+ emacs-git-commit
+ emacs-magit-section
+ emacs-with-editor
+ "
+makedepends="emacs-nox"
+subpackages="
+ emacs-git-commit
+ emacs-magit-section
+ "
+source="https://github.com/magit/magit/releases/download/v$pkgver/magit-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver/lisp"
+options="!check" # release tarball lacks tests
+
+prepare() {
+ default_prepare
+
+ # experimental package requiring unpackaged "libegit2"
+ rm -v magit-libgit.el
+}
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ HOME="$srcdir" emacs -batch -q -no-site-file -L . -L ../t \
+ -l magit-tests -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/magit/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/magit
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+commit() {
+ pkgdesc="Major mode for editing Git commit messages"
+ depends="cmd:emacs emacs-dash emacs-with-editor"
+
+ amove usr/share/emacs/site-lisp/magit/git-commit.el*
+}
+
+section() {
+ pkgdesc="Collapsible sections like in Magit"
+ depends="cmd:emacs emacs-dash"
+
+ amove usr/share/emacs/site-lisp/magit/magit-section.el*
+}
+
+sha512sums="
+81259a5e7066af31b99b3935fd48c9a76e5001f2cb0fa16c2390c05a464bce13a770c255a44637ba85e6449beeb5af6cd925bca96a6c578da292376c2ae37d76 magit-3.3.0.tar.gz
+"
diff --git a/testing/emacs-memoize/APKBUILD b/testing/emacs-memoize/APKBUILD
new file mode 100644
index 00000000000..79a7599fee8
--- /dev/null
+++ b/testing/emacs-memoize/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-memoize
+pkgver=1.1_git20200103
+_gitrev=51b075935ca7070f62fae1d69fe0ff7d8fa56fdd
+pkgrel=0
+_pkgreal=memoize
+pkgdesc="Elisp memoization functions"
+url="https://github.com/skeeto/emacs-memoize"
+arch="noarch"
+license="Unlicense"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/skeeto/emacs-memoize/archive/$_gitrev/emacs-memoize-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l memoize-test -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 memoize.el memoize.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+c3d40fa6c58d81a2d68dc22adb05ac3f1aa737099467705a64abf2ac98c2fa86b26552a6ccc61697802864ad2cd8d422715620e29d30ce50cf976b2f029930ae emacs-memoize-51b075935ca7070f62fae1d69fe0ff7d8fa56fdd.tar.gz
+"
diff --git a/testing/emacs-persist/APKBUILD b/testing/emacs-persist/APKBUILD
new file mode 100644
index 00000000000..0a3e3b0f245
--- /dev/null
+++ b/testing/emacs-persist/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-persist
+pkgver=0.6_git20240114
+_gitrev=f569906232c3812f5f5d934130edfefbc9165d7f
+pkgrel=0
+_pkgreal=persist
+pkgdesc="Persist Variables between Emacs Sessions"
+url="https://elpa.gnu.org/packages/persist.html"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/emacsmirror/persist/archive/$_gitrev/emacs-persist-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l persist-tests -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+0a33620a5bdf5bb720cd78202e553cc58626a5c01e48a215c1ed06b2a37343973aa39675de1e92885548bbcff111f8ebb5bc89baa377b5981901a74ee702c914 emacs-persist-f569906232c3812f5f5d934130edfefbc9165d7f.tar.gz
+"
diff --git a/testing/emacs-plz-see/APKBUILD b/testing/emacs-plz-see/APKBUILD
new file mode 100644
index 00000000000..39bbb027ca3
--- /dev/null
+++ b/testing/emacs-plz-see/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-plz-see
+pkgver=0_git20231101
+_gitrev=c55e6aa2971caad582df1d449e0f57604250cae1
+pkgrel=0
+_pkgreal=plz-see
+pkgdesc="Interactive HTTP client based on Emacs-plz"
+url="https://github.com/astoff/plz-see.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-plz
+ "
+makedepends="emacs-nox"
+source="https://github.com/astoff/plz-see.el/archive/$_gitrev/emacs-plz-see-$_gitrev.tar.gz"
+builddir="$srcdir/plz-see.el-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/plz/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/plz
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+21344c9771e1a79a0dc7faf8bdcb29a4a8cfb97ef34105cf4752e69a80b6c18a1d975c2e3ad70124132156e2282a10d100fb506c8bf084d80afffc9f018a8584 emacs-plz-see-c55e6aa2971caad582df1d449e0f57604250cae1.tar.gz
+"
diff --git a/testing/emacs-plz/APKBUILD b/testing/emacs-plz/APKBUILD
new file mode 100644
index 00000000000..8bd5507de13
--- /dev/null
+++ b/testing/emacs-plz/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-plz
+pkgver=0.7.2
+pkgrel=0
+_pkgreal=plz
+pkgdesc="HTTP library with curl as backend"
+url="https://github.com/alphapapa/plz.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:curl cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/alphapapa/plz.el/archive/v$pkgver/emacs-plz-$pkgver.tar.gz"
+builddir="$srcdir/plz.el-$pkgver"
+options="net" # tests access httpbin.org
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ # Tests may fail due to network issues, try to repeat 3 times.
+ local i; for i in $(seq 0 3); do
+ [ $i -eq 0 ] || msg "Retrying ($i/3)..."
+ emacs -batch -q -no-site-file -L . -L tests -l test-plz \
+ -eval '(setq plz-test-uri-prefix "https://httpbin.org")' \
+ -f ert-run-tests-batch-and-exit && return 0
+ sleep 1
+ done
+ return 1
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/plz/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/plz
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+01951bbb0e59d6196338a806b4bab030538c411d185acf5462bc1eb4d3130b1da5d78a436e84163dd8167b3705edb6dcafdeef8d4611973521566d34f2ca5654 emacs-plz-0.7.2.tar.gz
+"
diff --git a/testing/emacs-popup/APKBUILD b/testing/emacs-popup/APKBUILD
new file mode 100644
index 00000000000..617c200493a
--- /dev/null
+++ b/testing/emacs-popup/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-popup
+pkgver=0.5.9
+pkgrel=0
+_pkgreal=popup
+pkgdesc="Visual popup user interface library"
+url="https://github.com/auto-complete/popup-el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/auto-complete/popup-el/archive/v$pkgver/emacs-popup-$pkgver.tar.gz"
+builddir="$srcdir/popup-el-$pkgver"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l tests/run-test.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+1a8c5ecb56e695f7a37915063d4e105cee92f8ae5a21e2e39ffe556dfdcf03c056b69f5e36c6ff3643713a914bb531adabcfbc525c531821e1520f7b3e93dc0b emacs-popup-0.5.9.tar.gz
+"
diff --git a/testing/emacs-posframe/APKBUILD b/testing/emacs-posframe/APKBUILD
new file mode 100644
index 00000000000..a634c2dc414
--- /dev/null
+++ b/testing/emacs-posframe/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-posframe
+pkgver=1.4.2
+pkgrel=0
+_pkgreal=posframe
+pkgdesc="Pop up a frame inside Emacs"
+url="https://github.com/tumashu/posframe"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/tumashu/posframe/archive/v$pkgver/emacs-posframe-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 posframe.el posframe.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+e11109d3a85ccaca53995473940aa0a4bd80d333b3001865ba2c9d2b4af647d71b279a70e3e086c14c853896a8c2d74eb54cbc4e129a1face9f186c126c41f7f emacs-posframe-1.4.2.tar.gz
+"
diff --git a/testing/emacs-powerline/APKBUILD b/testing/emacs-powerline/APKBUILD
new file mode 100644
index 00000000000..283d396dfb8
--- /dev/null
+++ b/testing/emacs-powerline/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-powerline
+pkgver=2.4_git20221110
+_gitrev=c35c35bdf5ce2d992882c1f06f0f078058870d4a
+pkgrel=0
+_pkgreal=powerline
+pkgdesc="Library for customizing the mode-line"
+url="https://github.com/milkypostman/powerline"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/milkypostman/powerline/archive/$_gitrev/emacs-powerline-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+be0eedd1b79e37b80f0520706af11b36d0775aced51f08239d240fc19c1c54124bc736009cb2eb1332b9a9a064221885dcaebfac5595211afe9939409256d92b emacs-powerline-c35c35bdf5ce2d992882c1f06f0f078058870d4a.tar.gz
+"
diff --git a/testing/emacs-promise/APKBUILD b/testing/emacs-promise/APKBUILD
new file mode 100644
index 00000000000..267fcf27eff
--- /dev/null
+++ b/testing/emacs-promise/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-promise
+pkgver=1.1_git20210307
+_gitrev=cec51feb5f957e8febe6325335cf57dc2db6be30
+pkgrel=0
+_pkgreal=promise
+pkgdesc="Simple implementation of Promises/A+"
+url="https://github.com/chuntaro/emacs-promise"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+checkdepends="emacs-ert-async"
+source="https://github.com/chuntaro/emacs-promise/archive/$_gitrev/emacs-promise-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l ert-async -l promise -l emacs-promise-test \
+ -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+36311aee3259960b4ed5b8dabe91c31ebab9aec1ad4b517356cb50014f130c850bfeae878d7b0ac17a92ad1122e90d784f496dd7e395c581ea43cb50d4f3663f emacs-promise-cec51feb5f957e8febe6325335cf57dc2db6be30.tar.gz
+"
diff --git a/testing/emacs-pyim-basedict/APKBUILD b/testing/emacs-pyim-basedict/APKBUILD
new file mode 100644
index 00000000000..9a58b3532c6
--- /dev/null
+++ b/testing/emacs-pyim-basedict/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-pyim-basedict
+pkgver=0.5.3
+pkgrel=0
+_pkgreal=pyim-basedict
+pkgdesc="Default Pinyin dict for Emacs-pyim"
+url="https://github.com/tumashu/pyim-basedict"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox emacs-pyim"
+source="https://github.com/tumashu/pyim-basedict/archive/v$pkgver/emacs-pyim-basedict-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc ./*.pyim \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/pyim/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/pyim
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+453a4caab29195baac23160ee95116af7033852e8cd79fd9824e5efe94c6bc480709457817c388b68bdf1ac002e01297e8395abd517a0a17d121cc5705d392fe emacs-pyim-basedict-0.5.3.tar.gz
+"
diff --git a/testing/emacs-pyim-cangjiedict/APKBUILD b/testing/emacs-pyim-cangjiedict/APKBUILD
new file mode 100644
index 00000000000..41f613e8bea
--- /dev/null
+++ b/testing/emacs-pyim-cangjiedict/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-pyim-cangjiedict
+pkgver=0_git20210617
+_gitrev=d17e3d32a6480939b350a91a915ebe8e6efad819
+pkgrel=0
+_pkgreal=pyim-cangjiedict
+pkgdesc="Cangjie dicts for Emacs-pyim"
+url="https://github.com/con5tella/pyim-cangjiedict"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox emacs-pyim"
+source="https://github.com/con5tella/pyim-cangjiedict/archive/$_gitrev/emacs-pyim-cangjiedict-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc ./*.pyim \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/pyim/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/pyim
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+eed4416458f82f93ac8388046a4634bb719deafbe4a23cbe3f5e5c16546d62b3892a3cda6b0deca16889c403b4088dc196ba19e6cf60138315285fa01e5fe78d emacs-pyim-cangjiedict-d17e3d32a6480939b350a91a915ebe8e6efad819.tar.gz
+"
diff --git a/testing/emacs-pyim-smzmdict/APKBUILD b/testing/emacs-pyim-smzmdict/APKBUILD
new file mode 100644
index 00000000000..a76772881d9
--- /dev/null
+++ b/testing/emacs-pyim-smzmdict/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-pyim-smzmdict
+pkgver=0_git20210505
+_gitrev=b66c7c52cfd862b3fdace04f49c2af6c394232b4
+pkgrel=0
+_pkgreal=pyim-smzmdict
+pkgdesc="Sanma(triple) Zhengma dict for Emacs-pyim"
+url="https://github.com/con5tella/pyim-smzmdict"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox emacs-pyim"
+source="https://github.com/con5tella/pyim-smzmdict/archive/$_gitrev/emacs-pyim-smzmdict-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc ./*.pyim \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/pyim/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/pyim
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+64c1add9965fb773f54500802c2a7e73589934431e7f6942dcc054b2773f2490c1a56579a111a8dc4c3296775b97dc9dec201aef413402957f9b98446cd77f2d emacs-pyim-smzmdict-b66c7c52cfd862b3fdace04f49c2af6c394232b4.tar.gz
+"
diff --git a/testing/emacs-pyim-wbdict/APKBUILD b/testing/emacs-pyim-wbdict/APKBUILD
new file mode 100644
index 00000000000..3e5927e6cea
--- /dev/null
+++ b/testing/emacs-pyim-wbdict/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-pyim-wbdict
+pkgver=0.3.0
+pkgrel=0
+_pkgreal=pyim-wbdict
+pkgdesc="Wubi dicts for Emacs-pyim"
+url="https://github.com/tumashu/pyim-wbdict"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox emacs-pyim"
+source="https://github.com/tumashu/pyim-wbdict/archive/$pkgver/emacs-pyim-wbdict-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc ./*.pyim \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/pyim/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/pyim
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+5dc31ab05cefea833f3232853d6f4dddf1b0ff115969f4934093fa329f23c2edcb36176d3b3959c9632c3ee78138e3dfc8ca0a07edc03965c6a970158c7c8ba5 emacs-pyim-wbdict-0.3.0.tar.gz
+"
diff --git a/testing/emacs-pyim/APKBUILD b/testing/emacs-pyim/APKBUILD
new file mode 100644
index 00000000000..561407d49e0
--- /dev/null
+++ b/testing/emacs-pyim/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-pyim
+pkgver=5.3.3
+pkgrel=0
+_pkgreal=pyim
+pkgdesc="Chinese input method derived from Emacs-eim"
+url="https://github.com/tumashu/pyim"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-async
+ emacs-posframe
+ emacs-xr
+ "
+makedepends="emacs-nox"
+checkdepends="emacs-pyim-basedict"
+options="!check" # circular dep with emacs-pyim-basedict
+source="https://github.com/tumashu/pyim/archive/v$pkgver/emacs-pyim-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l tests/pyim-tests.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/pyim/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/pyim
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+e66b2b11c53a0ee196b69760318f5bfb630a1cebd0cabc3a2c865db2aec484aa4e909e7b14f98e563f51ab3dbf2b7458bfea6790a170544503af80b90744d7b6 emacs-pyim-5.3.3.tar.gz
+"
diff --git a/testing/emacs-repology/APKBUILD b/testing/emacs-repology/APKBUILD
new file mode 100644
index 00000000000..ebcf0433a6c
--- /dev/null
+++ b/testing/emacs-repology/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-repology
+pkgver=1.2.4
+_gitrev=a6b41709525e60bdac807f153a3199003ee9d50f
+pkgrel=0
+_pkgreal=repology
+pkgdesc="Repology API access via Elisp"
+url="https://elpa.gnu.org/packages/repology.html"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/emacsmirror/repology/archive/$_gitrev/emacs-repology-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+
+prepare() {
+ default_prepare
+
+ mkdir -v test
+ mv -v repology-tests.el test/
+}
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L test \
+ -l repology-tests -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/$_pkgreal
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+af23239b50859385c1692f4a05d885cba775672cbdd45582232ab3c155b8799f086586e15b6cc606635115283aa5675267016436a7bbf442b52e45f6aa571d40 emacs-repology-1.2.4.tar.gz
+"
diff --git a/testing/emacs-request/APKBUILD b/testing/emacs-request/APKBUILD
new file mode 100644
index 00000000000..457819fb699
--- /dev/null
+++ b/testing/emacs-request/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-request
+pkgver=0.3.2_git20230126
+_gitrev=01e338c335c07e4407239619e57361944a82cb8a
+pkgrel=0
+_pkgreal=request
+pkgdesc="Easy HTTP request library"
+url="https://github.com/tkf/emacs-request"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="
+ emacs-deferred
+ emacs-nox
+ "
+checkdepends="
+ curl
+ py3-flask
+ py3-tornado
+ "
+options="!check" # fragile tests run a local HTTP server written in Python
+subpackages="$pkgname-deferred"
+source="https://github.com/tkf/emacs-request/archive/$_gitrev/emacs-request-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L tests \
+ -l test-request -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+deferred() {
+ pkgdesc="$pkgdesc returning deferred object"
+ depends="$pkgname=$pkgver-r$pkgrel emacs-deferred"
+
+ amove usr/share/emacs/site-lisp/request-deferred.el*
+}
+
+sha512sums="
+6ba0e28278f02033173ef58942c4b85b69b3d530bf10ff903c872d37eceafec8b1c6b081cd8dec84e48a2a60b38b67ffae6ef8c881b22e67c6f9fbeacd583844 emacs-request-01e338c335c07e4407239619e57361944a82cb8a.tar.gz
+"
diff --git a/testing/emacs-rime/APKBUILD b/testing/emacs-rime/APKBUILD
new file mode 100644
index 00000000000..061f6555698
--- /dev/null
+++ b/testing/emacs-rime/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-rime
+pkgver=1.0.5_git20240130
+_gitrev=d8c0a99b0282d3e0aca53146789f6864181228e7
+pkgrel=0
+_pkgreal=rime
+pkgdesc="RIME in Emacs"
+url="https://github.com/DogLooksGood/emacs-rime"
+arch="all"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-dash
+ emacs-popup
+ emacs-posframe
+ "
+makedepends="emacs-nox librime-dev"
+checkdepends="rime-plum-data"
+source="https://github.com/DogLooksGood/emacs-rime/archive/$_gitrev/emacs-rime-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # opens an interactive Emacs window
+
+build() {
+ make lib
+
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ rime*.el
+}
+
+check() {
+ make HOME="$srcdir" test
+}
+
+package() {
+ install -Dvm644 rime*.el* librime-emacs.so \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+d72e2e0fb72fec0cc1e2a5dff86480e1892c962799e258a12d5c2fe41d8a9d54226d0406ed30d19f111c099d22776691fe1c63a2a55320107f2c6fa9743a068f emacs-rime-d8c0a99b0282d3e0aca53146789f6864181228e7.tar.gz
+"
diff --git a/testing/emacs-s/APKBUILD b/testing/emacs-s/APKBUILD
new file mode 100644
index 00000000000..7ac8e9a256c
--- /dev/null
+++ b/testing/emacs-s/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-s
+pkgver=1.13.0_git20230414
+_gitrev=dda84d38fffdaf0c9b12837b504b402af910d01d
+pkgrel=0
+_pkgreal=s
+pkgdesc="Emacs string manipulation library"
+url="https://github.com/magnars/s.el"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/magnars/s.el/archive/$_gitrev/emacs-s-$_gitrev.tar.gz"
+builddir="$srcdir/s.el-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . -L dev \
+ -l examples-to-tests -l examples \
+ -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+07886d28975d6d96610d23eadb1be4fa1a1aba4c7f5414acc7ef77ba567dbee196373b83af4b22ec2377f39973d7c021f75096712bc3915b63cb99b7b79ef806 emacs-s-dda84d38fffdaf0c9b12837b504b402af910d01d.tar.gz
+"
diff --git a/testing/emacs-srv/APKBUILD b/testing/emacs-srv/APKBUILD
new file mode 100644
index 00000000000..5c3e4a5f090
--- /dev/null
+++ b/testing/emacs-srv/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-srv
+pkgver=0.2_git20180715
+_gitrev=714387d5a5cf34d8d8cd96bdb1f9cb8ded823ff7
+pkgrel=0
+_pkgreal=srv
+pkgdesc="Elisp library to perform SRV DNS requests"
+url="https://github.com/legoscia/srv.el"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/legoscia/srv.el/archive/$_gitrev/emacs-srv-$_gitrev.tar.gz
+ optional-dns.el.patch
+ "
+builddir="$srcdir/srv.el-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+72dc537f5db29009b2cdffc5b35d330adaa6793bba29773f49d294280f32ad082456cf5482cf773512cb85ad00113a9780c40c36ad663558ec6d772c09d0e1bc emacs-srv-714387d5a5cf34d8d8cd96bdb1f9cb8ded823ff7.tar.gz
+818343236430be0c1959fd62d75b636a08977632a733b3ee0f6c060621576bedf7f9e323337929ddcfac3b6ff50e64567a4eb666da7bede3561349b5236d9e04 optional-dns.el.patch
+"
diff --git a/testing/emacs-srv/optional-dns.el.patch b/testing/emacs-srv/optional-dns.el.patch
new file mode 100644
index 00000000000..7d4487619dd
--- /dev/null
+++ b/testing/emacs-srv/optional-dns.el.patch
@@ -0,0 +1,38 @@
+--- a/srv.el
++++ b/srv.el
+@@ -1,4 +1,4 @@
+-;;; srv.el --- perform SRV DNS requests
++;;; srv.el --- perform SRV DNS requests -*- lexical-binding: t; -*-
+
+ ;; Copyright (C) 2005, 2007, 2018 Magnus Henoch
+
+@@ -44,7 +44,8 @@
+
+ ;;; Code:
+
+-(require 'dns)
++(require 'dns nil t)
++(eval-when-compile (require 'cl-lib))
+
+ ;;;###autoload
+ (defun srv-lookup (target)
+@@ -55,6 +56,10 @@
+ a hostname and PORT is a numeric port. The caller is supposed to
+ make connection attempts in the order given, starting from the beginning
+ of the list. The list is empty if no SRV records were found."
++ (if (not (boundp 'dns-query-types))
++ (error "No dns.el available")
++ (unless (assq 'SRV dns-query-types)
++ (error "dns.el doesn't support SRV lookups"))
+ (let* ((result (srv--dns-query target))
+ (answers (mapcar #'(lambda (a)
+ (cadr (assq 'data a)))
+@@ -101,7 +106,7 @@
+ ;; Extract hostnames and ports
+ (mapcar #'(lambda (a) (cons (cadr (assq 'target a))
+ (cadr (assq 'port a))))
+- (nreverse weighted-result)))))
++ (nreverse weighted-result))))))
+
+ (defun srv--dns-query (target)
+ "Perform DNS query for TARGET.
diff --git a/testing/emacs-svg-lib/APKBUILD b/testing/emacs-svg-lib/APKBUILD
new file mode 100644
index 00000000000..a8a631adc83
--- /dev/null
+++ b/testing/emacs-svg-lib/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-svg-lib
+pkgver=0_git20240219
+_gitrev=39621cd178dbf903414156d893c1eefe217b7c29
+pkgrel=0
+_pkgreal=svg-lib
+pkgdesc="SVG tags, progress bars & icons for Emacs"
+url="https://github.com/rougier/svg-lib"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/rougier/svg-lib/archive/$_gitrev/emacs-svg-lib-$_gitrev.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ svg-lib.el
+}
+
+package() {
+ install -Dvm644 svg-lib.el svg-lib.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+cb4f5df903c4c4132741d0c5779c98137c1e4396d13bb7aee28516c27f5f08020d7431dec0e9e9b96439044d69e8c7977a1c45a06e875e1fc1969dd457ced220 emacs-svg-lib-39621cd178dbf903414156d893c1eefe217b7c29.tar.gz
+"
diff --git a/testing/emacs-taxy-magit-section/APKBUILD b/testing/emacs-taxy-magit-section/APKBUILD
new file mode 100644
index 00000000000..927d7fa38a2
--- /dev/null
+++ b/testing/emacs-taxy-magit-section/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-taxy-magit-section
+pkgver=0.13
+pkgrel=0
+_pkgreal=taxy-magit-section
+pkgdesc="View Taxy structs in a Magit Section buffer"
+url="https://elpa.gnu.org/packages/taxy-magit-section.html"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-magit-section
+ emacs-taxy
+ "
+makedepends="emacs-nox"
+source="https://github.com/alphapapa/taxy.el/archive/taxy-magit-section-$pkgver/emacs-taxy-magit-section-$pkgver.tar.gz"
+builddir="$srcdir/taxy.el-$_pkgreal-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/taxy/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/taxy
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+625b485cbb079e60d215ed3c4bee5899756b00dec92baa5f0d2e94b7830c1375e0d65bce53f8051137b1e7870336da3e2f6faf216f44cf54e256d0cd312fd81d emacs-taxy-magit-section-0.13.tar.gz
+"
diff --git a/testing/emacs-taxy/APKBUILD b/testing/emacs-taxy/APKBUILD
new file mode 100644
index 00000000000..d7b2a9e4fb7
--- /dev/null
+++ b/testing/emacs-taxy/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-taxy
+pkgver=0.10.1
+pkgrel=0
+_pkgreal=taxy
+pkgdesc="Programmable taxonomical grouping for arbitrary objects"
+url="https://elpa.gnu.org/packages/taxy.html"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/alphapapa/taxy.el/archive/$pkgver/emacs-taxy-$pkgver.tar.gz"
+builddir="$srcdir/taxy.el-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/taxy/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp/taxy
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+7e30db74f8d6173777931c1d8ca3ffcd9063e70bc0a21ed0c123aaf61be1dd7f23f70d7a6d95e22036d245eebf6205baf54c371f798861995b2ca352230d69ab emacs-taxy-0.10.1.tar.gz
+"
diff --git a/testing/emacs-vterm/APKBUILD b/testing/emacs-vterm/APKBUILD
new file mode 100644
index 00000000000..3d9734df4eb
--- /dev/null
+++ b/testing/emacs-vterm/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-vterm
+pkgver=0_git20240324
+_gitrev=ae4ae1aef2fcae98a37aad83f2a6aeeaeacedd4f
+pkgrel=0
+_pkgreal=vterm
+pkgdesc="Fully-fledged terminal emulator based on libvterm"
+url="https://github.com/akermu/emacs-libvterm"
+arch="all"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="
+ cmake
+ emacs-nox
+ libvterm-dev
+ ninja
+ "
+source="https://github.com/akermu/emacs-libvterm/archive/$_gitrev/emacs-vterm-$_gitrev.tar.gz"
+builddir="$srcdir/emacs-libvterm-$_gitrev"
+options="!check" # tests just run the terminal emulator for you to try out
+
+prepare() {
+ default_prepare
+
+ # use system header file
+ rm -v emacs-module.h
+}
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_SYSTEM_LIBVTERM=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+
+ emacs -batch -q -no-site-file -L . \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc vterm-module.so \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+8afa2f93aa922e143ff7366a99a66a32e7fec41bae8cb71522d1e6bbca5e0130886b60c560c294ceb655fd83a79e5ef35bd513793a3c2b4f6e71a262353ad8f9 emacs-vterm-ae4ae1aef2fcae98a37aad83f2a6aeeaeacedd4f.tar.gz
+"
diff --git a/testing/emacs-with-editor/APKBUILD b/testing/emacs-with-editor/APKBUILD
new file mode 100644
index 00000000000..53ad54ccb1f
--- /dev/null
+++ b/testing/emacs-with-editor/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-with-editor
+pkgver=3.3.2
+pkgrel=0
+_pkgreal=with-editor
+pkgdesc="Use Emacsclient as EDITOR of child processes"
+url="https://github.com/magit/with-editor"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ cmd:emacs
+ emacs-compat
+ "
+makedepends="emacs-nox"
+source="https://github.com/magit/with-editor/archive/v$pkgver/emacs-with-editor-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver/lisp"
+options="!check" # no tests provided
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+package() {
+ install -Dvm644 ./*.el ./*.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+9ee8f36da6e1735aedf9fb0dcf6480de649e3e2daebedd5fc1edf8a9f528046c269cc0bbe182d4cf33180ab11c4af3a794c49cfd2aaff9ddbddcd51b9c1fec21 emacs-with-editor-3.3.2.tar.gz
+"
diff --git a/testing/emacs-xr/APKBUILD b/testing/emacs-xr/APKBUILD
new file mode 100644
index 00000000000..f1426a4233a
--- /dev/null
+++ b/testing/emacs-xr/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=emacs-xr
+pkgver=1.25
+_gitrev=b3310b138e7f8a9fe315dd435739f83935c5769d
+pkgrel=0
+_pkgreal=xr
+pkgdesc="Convert string regexp to rx form"
+url="https://github.com/mattiase/xr"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="cmd:emacs"
+makedepends="emacs-nox"
+source="https://github.com/mattiase/xr/archive/$_gitrev/emacs-xr-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$_gitrev"
+
+build() {
+ emacs -batch -q -no-site-file -L . \
+ -eval '(setq byte-compile-error-on-warn t)' \
+ -f batch-byte-compile \
+ ./*.el
+}
+
+check() {
+ emacs -batch -q -no-site-file -L . \
+ -l xr-test -f ert-run-tests-batch-and-exit
+}
+
+package() {
+ install -Dvm644 xr.el xr.elc \
+ -t "$pkgdir"/usr/share/emacs/site-lisp/
+
+ cd "$pkgdir"/usr/share/emacs/site-lisp
+ emacs -batch -q -no-site-file \
+ -eval "(loaddefs-generate \".\" \"$_pkgreal-loaddefs.el\")"
+}
+
+sha512sums="
+ef9d365bf26934fef290068178adbe7ac58b3cdf5cfbebe91c6ccf4f0a927bfd089c2408f962468e42c7a79548afdc91b17e9ad144bd4ccd41575c1e47ae0a96 emacs-xr-1.25.tar.gz
+"
diff --git a/testing/embree3/APKBUILD b/testing/embree3/APKBUILD
new file mode 100644
index 00000000000..6f37a21a105
--- /dev/null
+++ b/testing/embree3/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Leon Marz <main@lmarz.org>
+# Maintainer: Leon Marz <main@lmarz.org>
+pkgname=embree3
+pkgver=3.13.5
+pkgrel=2
+pkgdesc="High Performance Ray Tracing Kernels"
+url="https://www.embree.org/"
+arch="aarch64 x86_64" # embree needs sse2 and 64 bit
+license="Apache-2.0"
+makedepends="clang cmake onetbb-dev samurai"
+subpackages="$pkgname-dev"
+source="embree-$pkgver.tar.gz::https://github.com/embree/embree/archive/v$pkgver.tar.gz
+ fix-install-detection.patch
+ "
+options="!check" # no tests provided
+builddir="$srcdir/embree-$pkgver"
+
+# has the same files as embree<4
+replaces="embree"
+
+build() {
+ # takes significantly less memory allowing higher than -j4
+ export CC=clang
+ export CXX=clang++
+
+ # build shared library
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DEMBREE_ISPC_SUPPORT=OFF \
+ -DEMBREE_TUTORIALS=OFF \
+ -DEMBREE_RAY_MASK=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ cd "$pkgdir"
+ rm -r usr/share
+}
+
+sha512sums="
+13ae19b1750197fb4887ba601c75d1b54b3c388224672b6561dd922bc9b9747139cf46ce554727e3afa13dcf152ce4d703935cb9105ced792b011f2d05fa3e95 embree-3.13.5.tar.gz
+c21523a6b7b20829a9c589eaba1d5fa235f123557d0ab59804e315002410a4ae1c3793d53ba114cf13c0cd008c54a4bf3d4781b5877d7ecdcbf4970ae2950324 fix-install-detection.patch
+"
diff --git a/testing/embree3/fix-install-detection.patch b/testing/embree3/fix-install-detection.patch
new file mode 100644
index 00000000000..a50e9927755
--- /dev/null
+++ b/testing/embree3/fix-install-detection.patch
@@ -0,0 +1,14 @@
+--- a/common/cmake/installTBB.cmake
++++ b/common/cmake/installTBB.cmake
+@@ -1,11 +1,6 @@
+ ## Copyright 2009-2021 Intel Corporation
+ ## SPDX-License-Identifier: Apache-2.0
+
+-IF (EMBREE_STATIC_LIB)
+- INSTALL(TARGETS TBB EXPORT TBB-targets)
+- INSTALL(EXPORT TBB-targets DESTINATION "${EMBREE_CMAKEEXPORT_DIR}" COMPONENT devel)
+-ENDIF()
+-
+ IF (EMBREE_INSTALL_DEPENDENCIES)
+ IF (TARGET TBB::tbb)
+ GET_TARGET_PROPERTY(LIB_PATH TBB::tbb IMPORTED_LOCATION_RELEASE)
diff --git a/testing/emby/APKBUILD b/testing/emby/APKBUILD
deleted file mode 100644
index 44d1e21c48d..00000000000
--- a/testing/emby/APKBUILD
+++ /dev/null
@@ -1,86 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Carlo Landmeter <clandmeter@gmail.com>
-pkgname=emby
-pkgver=3.0.5911
-pkgrel=3
-pkgdesc="Bring together your videos, music, photos, and live television"
-url="https://emby.media"
-arch="x86_64 x86"
-license="GPL-2.0"
-depends="ffmpeg mono imagemagick sqlite"
-pkgusers=$pkgname
-pkggroups=$pkgname
-depends_dev=""
-makedepends="$depends_dev"
-install="$pkgname.pre-install"
-subpackages="$pkgname-migrate"
-source="Emby-$pkgver.tar.gz::https://github.com/MediaBrowser/Emby/archive/$pkgver.tar.gz
- emby-server
- $pkgname.initd
- $pkgname.confd
- emby-migrate"
-
-_builddir="$srcdir"/Emby-$pkgver
-
-prepare() {
- local i
- local libMagicWand="libMagickWand-7.Q16HDRI.so.6"
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
- mkdir -p "$_builddir"/build
- if [ -e "/usr/lib/$libMagicWand" ]; then
- sed -i s/libMagickWand-6.Q8.so/$libMagicWand/g \
- "$_builddir"/MediaBrowser.Server.Mono/ImageMagickSharp.dll.config \
- || return 1
- else
- die "libMagickWand not found!"
- fi
- if [ -e "/usr/lib/libsqlite3.so.0" ]; then
- sed -i s/libsqlite3.so/libsqlite3.so.0/g \
- "$_builddir"/MediaBrowser.Server.Mono/System.Data.SQLite.dll.config \
- || return 1
- else
- die "libsqlite3 not found!"
- fi
-}
-
-build() {
- cd "$_builddir"
- xbuild \
- /p:Configuration='Release Mono' \
- /p:Platform='Any CPU' \
- /p:OutputPath="$_builddir"/build \
- /t:build MediaBrowser.Mono.sln || return 1
-}
-
-package() {
- cd "$_builddir"
- mkdir -p "$pkgdir"/usr/lib/emby || return 1
- install -d -o $pkgusers -g $pkggroups \
- "$pkgdir"/var/lib/emby || return 1
- cp -r "$_builddir"/build/* \
- "$pkgdir"/usr/lib/emby/
- install -Dm755 "$srcdir"/emby-server \
- "$pkgdir"/usr/bin/emby-server || return 1
- install -Dm755 "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/emby || return 1
- install -Dm644 "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/emby || return 1
-}
-
-migrate() {
- pkgdesc="$pkgname database migration script"
- depends="sqlite"
- install -Dm755 "$srcdir"/emby-migrate \
- "$subpkgdir"/usr/bin/emby-migrate || return 1
-}
-
-sha512sums="ec48ee8d8403074b91d0dfc90cf463bab805c8b59f06d8e9035a166b1a41d8b4f2c22d007f17b763c902e655c34c3dc01f73bedfe9ada7592e72fd3f96513e39 Emby-3.0.5911.tar.gz
-f161fbf2d83d91e5436578f1998410dba991c8d2de4fb8852ec106b13ce3e7119fec7432998dfffa2c488425e2a5eacaf34b0c4e6fc93ad370c1ba94b3eaa2e4 emby-server
-2a520ee646b0489bbacd79679e75828194cbcd41845948816d1ae4d129f7cd582561f7357fa0c6d7f3f1970cc7900ae34338d54a4e54d5b21284c020a911e284 emby.initd
-ebdb39d3e17277ecc51709fc6862265295892d6aa1b5f1b9da537a80552b81c845863cd058ab468f7cf20c22f8f56954b7cce4d149f8fa233ea19ae7aa0bc001 emby.confd
-d4275622b26228c352ee9150441995c2062f6afdda46ccca176ad13a17d5ce432f6cf80b7c7d3029763d3e6fb79cf9a7a07bdbf4fef1dfaee2811c56ec0ec7b9 emby-migrate"
diff --git a/testing/emby/emby-migrate b/testing/emby/emby-migrate
deleted file mode 100644
index a74429f23ee..00000000000
--- a/testing/emby/emby-migrate
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-USER='emby'
-GROUP='emby'
-
-usage() {
- echo 'Usage: emby-migrate-database {-u user} {-g group} old_path_full new_path_full'
- echo 'Default user: emby'
- echo 'Default group: emby'
-}
-
-migrate() {
- if [[ $1 && $2 ]]; then
- if [[ -f $1/data/library.db ]]; then
- if [[ ! -e $2 ]]; then
- mkdir -p $2
- fi
- if [[ -d $2 ]]; then
- if [[ -z $(ls $2) ]]; then
- cp -r $1/* $2/
- sqlite3 $2/data/library.db "UPDATE TypedBaseItems SET data = CAST(REPLACE(CAST(data AS TEXT), '$1', '$2') AS BLOB);"
- chown $USER:$GROUP -R $2
- echo "Migration complete. You can now delete $1."
- else
- echo "$2 is not empty. Aborting."
- fi
- else
- echo "$2 is not a directory. Aborting."
- fi
- else
- echo "$1 does not contain an emby database. Aborting."
- fi
- else
- usage
- fi
-}
-
-if [[ $1 == '--help' ]]; then
- usage
-else
- while getopts 'u:g:' opt; do
- case $opt in
- u)
- USER=$OPTARG
- ;;
- g)
- GROUP=$OPTARG
- ;;
- \?)
- usage
- ;;
- esac
- done
- shift $((OPTIND-1))
- migrate
-fi
diff --git a/testing/emby/emby-server b/testing/emby/emby-server
deleted file mode 100644
index f6f84eecbfe..00000000000
--- a/testing/emby/emby-server
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-exec /usr/bin/mono /usr/lib/emby/MediaBrowser.Server.Mono.exe \
- -programdata /var/lib/emby \
- -ffmpeg /usr/bin/ffmpeg \
- -ffprobe /usr/bin/ffprobe
diff --git a/testing/emby/emby.confd b/testing/emby/emby.confd
deleted file mode 100644
index ba1ccb2d6bf..00000000000
--- a/testing/emby/emby.confd
+++ /dev/null
@@ -1,8 +0,0 @@
-# emby settings
-emby_server="/usr/lib/emby/MediaBrowser.Server.Mono.exe"
-emby_user="emby"
-emby_group="emby"
-emby_pid="/var/run/emby.pid"
-datadir="/var/lib/emby"
-ffmpeg="/usr/bin/ffmpeg"
-ffprobe="/usr/bin/ffprobe"
diff --git a/testing/emby/emby.initd b/testing/emby/emby.initd
deleted file mode 100644
index e0e2dbb33f5..00000000000
--- a/testing/emby/emby.initd
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/sbin/openrc-run
-
-name=emby
-command=/usr/bin/mono
-command_args="$emby_server -programdata $datadir -ffmpeg $ffmpeg -ffprobe $ffprobe"
-command_background=true
-pidfile=$emby_pid
-start_stop_daemon_args="--user $emby_user --group $emby_group"
-
-depend() {
- use logger dns
- need net
- after firewall
-}
diff --git a/testing/emby/emby.pre-install b/testing/emby/emby.pre-install
deleted file mode 100644
index d287d7307f1..00000000000
--- a/testing/emby/emby.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-addgroup -S emby 2>/dev/null
-adduser -S -D -h /var/lib/emby -s /sbin/nologin -G emby \
- -g "Emby media server" emby 2>/dev/null
-
-exit 0
diff --git a/testing/empede/APKBUILD b/testing/empede/APKBUILD
new file mode 100644
index 00000000000..ca84836c78e
--- /dev/null
+++ b/testing/empede/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=empede
+pkgver=0.2.3
+pkgrel=0
+pkgdesc="A web client for MPD written in Rust"
+url="https://git.sijman.nl/_/empede"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+"
+install="empede.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sijman.nl/_/empede/archive/v$pkgver.tar.gz
+ empede.initd
+ empede.confd
+"
+builddir="$srcdir/$pkgname"
+options="net !check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/empede "$pkgdir"/usr/bin/empede
+ mkdir -p "$pkgdir"/usr/lib/empede
+ cp -af static templates -t "$pkgdir"/usr/lib/empede
+
+ install -Dm 644 LICENSE.md "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.md
+
+ install -Dm 755 "$srcdir"/empede.initd "$pkgdir"/etc/init.d/empede
+ install -Dm 644 "$srcdir"/empede.confd "$pkgdir"/etc/conf.d/empede
+}
+
+sha512sums="
+9683716fa8b9e0b950790f081f3fc74686af5b90b014f7e50f17bd56f1af8a1b86611142b66abb7d89ef52e29603b8763723d6b8ed094805a64aad8aaa46a11d empede-0.2.3.tar.gz
+a241ecc998a2d891008766b6c8cc636e904b9450a50ed3c965adb9f6d304cd205f7c45992761c3ee6a207a68d2b004a617bf7875194294e07bca7ff3c16e8e1d empede.initd
+4bcb3b089cd8c7c552e401ed9bc3da4ce631aa22d891b7ae0fa6d268921aeeddeee5951ae7655bdb155eda823f7886a2d644d762f4d48e80e8a5d0ccad063314 empede.confd
+"
diff --git a/testing/empede/empede.confd b/testing/empede/empede.confd
new file mode 100644
index 00000000000..dcd248e3199
--- /dev/null
+++ b/testing/empede/empede.confd
@@ -0,0 +1,4 @@
+#export MPD_HOST=localhost
+#export MPD_PORT=6600
+#export MPD_PASSWORD=
+export EMPEDE_BIND=0.0.0.0:3737
diff --git a/testing/empede/empede.initd b/testing/empede/empede.initd
new file mode 100644
index 00000000000..30818e58ee0
--- /dev/null
+++ b/testing/empede/empede.initd
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+
+command="/usr/bin/empede"
+command_user="empede:empede"
+command_background=true
+directory="/usr/lib/empede"
+pidfile="/run/$RC_SVCNAME.pid"
+
+output_log="/var/log/empede.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -f -m 0644 -o "$command_user" "$output_log"
+}
diff --git a/testing/empede/empede.pre-install b/testing/empede/empede.pre-install
new file mode 100644
index 00000000000..f55983850de
--- /dev/null
+++ b/testing/empede/empede.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S empede 2>/dev/null
+adduser -S -D -s /sbin/nologin -H -G empede -g empede empede 2>/dev/null
+
+exit 0
diff --git a/testing/emscripten/APKBUILD b/testing/emscripten/APKBUILD
deleted file mode 100644
index 237531646eb..00000000000
--- a/testing/emscripten/APKBUILD
+++ /dev/null
@@ -1,189 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-
-# Note: This software is total mess and it seems to be nearly impossible to
-# create a clean distribution package.
-pkgname=emscripten
-# Keep with sync with pkg emscrypten-fastcomp!
-pkgver=1.39.0
-pkgrel=1
-pkgdesc="An LLVM-to-JavaScript Compiler"
-url="https://emscripten.org/"
-arch="" # Test failures
-license="MIT UOI-NCSA"
-depends="$pkgname-optimizer>=$pkgver emscripten-fastcomp>=$pkgver
- nodejs python3 node-closurecompiler-externs"
-makedepends="binaryen clang cmake"
-checkdepends="closure-compiler"
-subpackages="$pkgname-optimizer
- $pkgname-libs-asmjs:libs_asmjs:noarch
- $pkgname-libs-wasm:libs_wasm:noarch"
-source="emscripten-$pkgver.tar.gz::https://github.com/emscripten-core/emscripten/archive/$pkgver.tar.gz
- fix-python-shebang.patch
- settings_template-paths.patch
- add-system-level-config.patch
- move-emcc-txt.patch
- binaryen-wasm-js-path.patch
- closurecompiler-externs-path.patch
- closurecompiler-language_in-es6.patch
- embuilder-fix-task-all-for-wasm.patch
- embuilder-omit-provided.patch
- add-global-cache.patch
- emscripten.cfg"
-
-_ports="Bullet-version_1:bullet
- FreeType-version_1:freetype
- libpng-version_1:libpng
- Ogg-version_1:ogg
- SDL2-version_13:sdl2
- SDL2_image-version_3:sdl2-image
- SDL2_net-version_2:sdl2-net
- SDL2_ttf-version_1:sdl2-ttf
- Vorbis-version_1:vorbis
- zlib-version_1:zlib
- "
-for _port in $_ports; do
- _port=${_port%:*}
- source="$source $pkgname-port-$_port-zip::https://github.com/emscripten-ports/${_port%-*}/archive/${_port##*-}.zip"
-done
-
-export EM_CACHE="$srcdir/cache"
-export EM_CONFIG="$srcdir/.emscripten"
-export EM_PORTS="$srcdir/ports"
-
-prepare() {
- default_prepare
-
- # This file is read from emcc.py for --help.
- cp site/build/text/docs/tools_reference/emcc.txt .
-
- sed -e "s|/usr/share/emscripten|$builddir|" \
- -e "s|/usr/bin/emoptimizer|$builddir/tools/optimizer/optimizer|" \
- "$srcdir"/emscripten.cfg > "$EM_CONFIG"
-
- # Symlink fetched ports to the directory where emscripten can find them.
- mkdir -p "$EM_PORTS"
- local port; for port in $_ports; do
- ln -s "$srcdir"/$pkgname-port-${port%:*}-zip "$EM_PORTS"/${port#*:}.zip
- done
-
- # Backup and patch system_libs.py to block fetching ports from internet.
- cp tools/system_libs.py tools/system_libs.py.orig
- sed -Ei 's/^(\s+).*\.urlopen\(.*/\1logging.error("fetching disabled in abuild"); exit(1)/' \
- tools/system_libs.py
-}
-
-build() {
- cd "$builddir"/tools/optimizer
-
- msg "Building optimizer..."
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_VERBOSE_MAKEFILE=ON
- make
-
- cd "$builddir"
-
- msg "Building libraries and ports for asm.js..."
- ./embuilder.py build ALL
-
- msg "Building libraries and ports for WebAssembly..."
- EMCC_WASM_BACKEND=1 ./embuilder.py build ALL
-}
-
-check() {
- cd "$builddir"/tests
-
- rm -f hello_world.js*
- ../emcc -Os --closure 1 -o hello_world.js hello_world.c
- node hello_world.js
-}
-
-package() {
- local destdir="$pkgdir/usr/share/$pkgname"
- local name
-
- mkdir -p "$destdir"
- cp -r "$builddir"/* "$destdir"/
-
- cd "$destdir"
-
- # Revert original file without connection blocking.
- mv tools/system_libs.py.orig tools/system_libs.py
-
- find . -name "*.bat" -delete
- find . -name "*.pyc" -delete # these contain wrong absolute path
- rm -r docs # there are only few PDFs and TeX sources
- rm -r media # media for website
- rm -r site # a website (?)
- rm -r tests # looks more like a dump of random sources than decent tests
- rm -r third_party # bundled stuff
- rm -r tools/optimizer # we've already built it
- rm AUTHORS LICENSE ./*.md ./*.markdown package.json
- rm system/lib/build_cxx_natively.sh tools/update_libc_symbols.sh # garbage
-
- mkdir -p "$pkgdir"/usr/bin
- for name in em++ em-config emar embuilder.py emcc emcmake \
- emconfigure emlink.py emmake emrun emscons
- do
- ln -s ../share/$pkgname/$name "$pkgdir"/usr/bin/$name
- done
-
- install -D -m 644 "$srcdir"/emscripten.cfg "$pkgdir"/etc/emscripten.cfg
-
- mkdir cache # this directory should not exist yet!
- install -m 644 "$EM_CACHE"/is_vanilla.txt cache/
-}
-
-optimizer() {
- pkgdesc="Emscripten's optimizer for asm.js code"
- depends=""
-
- install -D -m 755 "$builddir"/tools/optimizer/optimizer \
- "$subpkgdir"/usr/bin/emoptimizer
-}
-
-libs_asmjs() {
- pkgdesc="Prebuilt libraries and ports for Emscripten - asm.js"
- depends="$pkgname=$pkgver-r$pkgrel"
- local destdir="$subpkgdir/usr/share/$pkgname/cache/asmjs"
-
- mkdir -p "$destdir"
- cp -r "$EM_CACHE"/asmjs/*.bc "$destdir"/
-}
-
-libs_wasm() {
- pkgdesc="Prebuilt libraries and ports for Emscripten - WebAssembly"
- depends="$pkgname=$pkgver-r$pkgrel"
- local destdir="$subpkgdir/usr/share/$pkgname/cache/wasm"
-
- mkdir -p "$destdir"
- cp -r "$EM_CACHE"/wasm/*.bc "$destdir"/
-}
-
-sha512sums="29cafab7b880e7919c650e41e1fc04b75cc8325c6d10e425ecd1249326c46ce1d4ab0feaa8990e7f9fcdf78573d656b5cebecd6f8c4c8a38a949023930470c8d emscripten-1.39.0.tar.gz
-a61e172ced6b72adb53a840255a9753905a0c7a1c9f8965345781b9cdcc8a596c4dc88f036e91bd5c05d8b3eb2908bbb7d991c4e1abcf35a46be67b9765e546a fix-python-shebang.patch
-f190ea32dcd4af2661f455ffd8773cb0f7b30ba4a96d22609e11af7186ed1a5c230f3c379d717f23213e87143bb5601acc4d75799631854d0312ff308cbcc14b settings_template-paths.patch
-10a7a545f468a5f71fdf1cca0e0be983db5d21387202b851bd11f811c2a0a74f4e4c8733ae9ff933df4ea49c3f5e8e4e16fc3651bc98bb8c37a0828bb29eca7e add-system-level-config.patch
-6613ef4cf41bcf0ecc13a0415cdc847f4ec112f07dd19573000ea6a9a6f2360aee6b2db01f822d117d5022dc58b2421be89fe3421c46fd6857737d07ce489c1e move-emcc-txt.patch
-a2a2c9b56e8d655b06fdbac2e297e07a0bbcdc3e3df7c913b5caac8ddf20f66b91ed77ac46275adcf8e92baedb5a50cb554c8f3fa59823e17006e17d8d11e820 binaryen-wasm-js-path.patch
-1d699aa0ab4b257d58c30ebefd6fbce9a74df964c37f360dcbcaaa6e6c6f4bc8e3f706f32e5855fb6e307d099c7eaca47d07d12a52c83caab43b268fccb606ef closurecompiler-externs-path.patch
-5b63f42e4934c7c6d5eedb9e46636a488bc0723618dd0b5d5b720d58cf9d1f6a6e6a768fe1ce1188f86bbb931b6881dfdfc36f8c0584775cb66a9d9e8a2cbb9a closurecompiler-language_in-es6.patch
-53bb9b64222dd445e8aefbb5a4b87bc6d562ea578a6f7a04c2605703f0235633583144fe478031e650a7346ba89f6e0aaf6c435aedb8398131fa02940356bc17 embuilder-fix-task-all-for-wasm.patch
-3d2fb817ea3e1dd661900df1e27bd135f39076723494b7ffbbe9e1561ae0a0e62a4ed0058301cf3e6b9a13f75adafe58dc902d4a32ade2cb16754a7fd5e542af embuilder-omit-provided.patch
-8d02f598df12ecbebab151a9d9e6972164bddf4da586e5a3070f2a5b35248b622a663a513295c1bf79fcf13523940ea5e47f8ab1def86e28b260dba8bfef7bac add-global-cache.patch
-42142064f828c39fbeb04e65c13c0eae8d843ee8541e67db361086b2d44ad896604d561220363f71aa8aa9f07ae6c285a39f49d9078f5a56e022879ed987c020 emscripten.cfg
-3922486816cf7d99ee02c3c1ef63d94290e8ed304016dd9927137d04206e7674d9df8773a4abb7bb57783d0a5107ad0f893aa87acfb34f7b316eec22ca55a536 emscripten-port-Bullet-version_1-zip
-0d0b1280ba0501ad0a23cf1daa1f86821c722218b59432734d3087a89acd22aabd5c3e5e1269700dcd41e87073046e906060f167c032eb91a3ac8c5808a02783 emscripten-port-FreeType-version_1-zip
-a19ede8a4339f2745a490c22f3893899e1a5eae9d2b270e49d88d3a85239fbbaa26c9a352d0e6fb8bb69b4f45bd00c1ae9eff29b60cf03e79c5df45a4409992f emscripten-port-libpng-version_1-zip
-929e8d6003c06ae09593021b83323c8f1f54532b67b8ba189f4aedce52c25dc182bac474de5392c46ad5b0dea5a24928e4ede1492d52f4dd5cd58eea9be4dba7 emscripten-port-Ogg-version_1-zip
-e7cbcafc1398c337814caa4b91692989d65ed5ffdd8ff1bebb9673a566bba6c16f1e3b72abefaff4b3e390b6571eba678e9ea197cdfd14641648b5282688ef50 emscripten-port-SDL2-version_13-zip
-785d6f636b5124dbfc65841fcd5c75df42c8186cb85e5c977e6e321317f0381a7690125a78e6687da1081b1ce6c876040d04083e770e2c8b28e7c2e776287555 emscripten-port-SDL2_image-version_3-zip
-317b22ad9b6b2f7b40fac7b7c426da2fa2da1803bbe58d480631f1e5b190d730763f2768c77c72affa806c69a1e703f401b15a1be3ec611cd259950d5ebc3711 emscripten-port-SDL2_net-version_2-zip
-6ce426de0411ba51dd307027c4ef00ff3de4ee396018e524265970039132ab20adb29c2d2e61576c393056374f03fd148dd96f0c4abf8dcee51853dd32f0778f emscripten-port-SDL2_ttf-version_1-zip
-99bee75beb662f8520bbb18ad6dbf8590d30eb3a7360899f0ac4764ca72fe8013da37c9df21e525f9d2dc5632827d4b4cea558cbc938e7fbed0c41a29a7a2dc5 emscripten-port-Vorbis-version_1-zip
-77f7d8f18fe11bb66a57e358325b7422d721f7b506bd63293cfde74079f958864db66ead5a36c311a76dd8c2b089b7659641a5522de650de0f9e6865782a60dd emscripten-port-zlib-version_1-zip"
diff --git a/testing/emscripten/add-global-cache.patch b/testing/emscripten/add-global-cache.patch
deleted file mode 100644
index 710d842e474..00000000000
--- a/testing/emscripten/add-global-cache.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Mon, 3 Apr 2017 20:49:00 +0200
-Subject: [PATCH] Add support for global r/o cache of prebuilt libraries
-
---- a/tools/cache.py
-+++ b/tools/cache.py
-@@ -29,9 +29,12 @@
-
- if use_subdir:
- if os.environ.get('EMCC_WASM_BACKEND') and os.environ.get('EMCC_WASM_BACKEND') != '0':
-- dirname = os.path.join(dirname, 'wasm')
-+ self.subdir = 'wasm'
- else:
-- dirname = os.path.join(dirname, 'asmjs')
-+ self.subdir = 'asmjs'
-+ dirname = os.path.join(dirname, self.subdir)
-+ else:
-+ self.subdir = ''
- self.dirname = dirname
- self.debug = debug
-
-@@ -90,6 +93,11 @@
- if what is None:
- if shortname.endswith(('.bc', '.so', '.a')): what = 'system library'
- else: what = 'system asset'
-+ if shared.GLOBAL_CACHE_DIR and os.getenv('EM_USE_GLOBAL_CACHE') == '1' and not force:
-+ path = os.path.join(shared.GLOBAL_CACHE_DIR, self.subdir, shortname)
-+ if os.path.exists(path):
-+ logging.info('using %s: %s from global cache: %s' % (what, shortname, path))
-+ return path
- message = 'generating ' + what + ': ' + shortname + '... (this will be cached in "' + cachename + '" for subsequent builds)'
- logging.info(message)
- self.ensure()
diff --git a/testing/emscripten/add-system-level-config.patch b/testing/emscripten/add-system-level-config.patch
deleted file mode 100644
index b57860941cd..00000000000
--- a/testing/emscripten/add-system-level-config.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Wed, 29 Mar 2017 22:02:00 +0200
-Subject: [PATCH] Add system-level config /etc/emscripten.cfg
-
-If ~/.emscripten does not exist and /etc/emscripten.cfg do exist, then
-/etc/emscripten.cfg will be used.
-
---- a/emscripten.py
-+++ b/emscripten.py
-@@ -1791,7 +1791,7 @@
- help='Where to write the output; defaults to stdout.')
- parser.add_option('-c', '--compiler',
- default=None,
-- help='Which JS engine to use to run the compiler; defaults to the one in ~/.emscripten.')
-+ help='Which JS engine to use to run the compiler; defaults to the one in ~/.emscripten or /etc/emscripten.cfg.')
- parser.add_option('-s', '--setting',
- dest='settings',
- default=[],
-
---- a/tools/file_packager.py
-+++ b/tools/file_packager.py
-@@ -24,8 +24,8 @@
- it knows that closure is not run.
-
- --crunch=X Will compress dxt files to crn with quality level X. The crunch commandline tool must be present
-- and CRUNCH should be defined in ~/.emscripten that points to it. JS crunch decompressing code will
-- be added to convert the crn to dds in the browser.
-+ and CRUNCH should be defined in ~/.emscripten or /etc/emscripten.cfg that points to it. JS crunch
-+ decompressing code will be added to convert the crn to dds in the browser.
- crunch-worker.js will be generated in the current directory. You should include that file when
- packaging your site.
- DDS files will not be crunched if the .crn is more recent than the .dds. This prevents a lot of
---- a/tools/scons/site_scons/site_tools/emscripten/emscripten.py
-+++ b/tools/scons/site_scons/site_tools/emscripten/emscripten.py
-@@ -10,6 +10,8 @@
- EM_CONFIG = os.environ.get('EM_CONFIG')
- if not EM_CONFIG:
- EM_CONFIG = os.path.expanduser('~/.emscripten')
-+ if not os.path.exists(EM_CONFIG) and os.path.exists('/etc/emscripten.cfg'):
-+ EM_CONFIG = '/etc/emscripten.cfg'
-
- if emscripten_path is None:
-
---- a/tools/shared.py
-+++ b/tools/shared.py
-@@ -209,7 +209,10 @@
- EM_CONFIG = EM_CONFIG.replace(';', '\n') + '\n'
-
- if not EM_CONFIG:
-- EM_CONFIG = '~/.emscripten'
-+ if not os.path.exists(os.path.expanduser('~/.emscripten')) and os.path.exists('/etc/emscripten.cfg'):
-+ EM_CONFIG = '/etc/emscripten.cfg'
-+ else:
-+ EM_CONFIG = '~/.emscripten'
- if '\n' in EM_CONFIG:
- CONFIG_FILE = None
- logging.debug('EM_CONFIG is specified inline without a file')
-@@ -271,7 +274,7 @@
- # without a file, this hints to "default" location at ~/.emscripten)
- def hint_config_file_location():
- if CONFIG_FILE: return CONFIG_FILE
-- else: return '~/.emscripten'
-+ else: return '~/.emscripten' if os.path.exists(os.path.expanduser('~/.emscripten')) else '/etc/emscripten.cfg'
-
- def listify(x):
- if type(x) is not list: return [x]
-@@ -515,6 +515,8 @@
- sanity_file = CONFIG_FILE + '_sanity'
- if get_llvm_target() == WASM_TARGET:
- sanity_file += '_wasm'
-+ if not os.access(os.path.dirname(sanity_file), os.W_OK):
-+ sanity_file = os.path.join('/var/tmp', os.path.basename(sanity_file))
- if os.path.exists(sanity_file):
- try:
- sanity_mtime = os.stat(sanity_file).st_mtime
-@@ -580,7 +580,8 @@
-
- if not force:
- # Only create/update this file if the sanity check succeeded, i.e., we got here
-- f = open(sanity_file, 'w')
-+ f = open(sanity_file, 'w+')
- f.write(generate_sanity())
-+ os.chmod(sanity_file, 0o666)
- f.close()
-
diff --git a/testing/emscripten/binaryen-wasm-js-path.patch b/testing/emscripten/binaryen-wasm-js-path.patch
deleted file mode 100644
index d2c7ab994a0..00000000000
--- a/testing/emscripten/binaryen-wasm-js-path.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 02 Mar 2017 22:42:00 +0200
-Subject: [PATCH] Allow to specify path to wasm.js
-
-Add configuration variable BINARYEN_WASM_JS that allows to specify location of
-the Binaryen's wasm.js file.
-
---- a/emcc.py
-+++ b/emcc.py
-@@ -1282,6 +1282,11 @@
- shared.Settings.BINARYEN_ROOT = shared.BINARYEN_ROOT
- except:
- pass
-+ if not shared.Settings.BINARYEN_WASM_JS:
-+ try:
-+ shared.Settings.BINARYEN_WASM_JS = shared.BINARYEN_WASM_JS
-+ except:
-+ shared.Settings.BINARYEN_WASM_JS = os.path.join(BINARYEN_ROOT, 'bin', 'wasm.js')
- # default precise-f32 to on, since it works well in wasm
- # also always use f32s when asm.js is not in the picture
- if ('PRECISE_F32=0' not in settings_changes and 'PRECISE_F32=2' not in settings_changes) or 'asmjs' not in shared.Settings.BINARYEN_METHOD:
-@@ -2110,7 +2115,7 @@
- # BINARYEN_METHOD with something that doesn't use the polyfill, then we don't need it.
- if not shared.Settings.BINARYEN_METHOD or 'interpret' in shared.Settings.BINARYEN_METHOD:
- logging.debug('integrating wasm.js polyfill interpreter')
-- wasm_js = open(os.path.join(binaryen_bin, 'wasm.js')).read()
-+ wasm_js = open(shared.Settings.BINARYEN_WASM_JS).read()
- wasm_js = wasm_js.replace('EMSCRIPTEN_', 'emscripten_') # do not confuse the markers
- js = open(js_target).read()
- combined = open(js_target, 'w')
---- a/src/settings.js
-+++ b/src/settings.js
-@@ -709,6 +709,7 @@
- // required for all but the smallest modules to run in V8
- var BINARYEN_ROOT = ""; // Directory where we can find Binaryen. Will be automatically set for you,
- // but you can set it to override if you are a Binaryen developer.
-+var BINARYEN_WASM_JS = ""; // Path to the file wasm.js, the Binaryen components compiled to JavaScript.
-
- var WASM = 0; // Alias for BINARYEN, the two are identical. Both make us compile code to WebAssembly.
-
diff --git a/testing/emscripten/closurecompiler-externs-path.patch b/testing/emscripten/closurecompiler-externs-path.patch
deleted file mode 100644
index d760156c8de..00000000000
--- a/testing/emscripten/closurecompiler-externs-path.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Mon, 4 Apr 2017 19:30:00 +0200
-Subject: [PATCH] Fix path to closurecompiler-externs
-
-We ship closurecompiler-externs in package node-closurecompiler-externs.
-
---- a/tools/shared.py
-+++ b/tools/shared.py
-@@ -2130,7 +2130,7 @@
- raise Exception('closure compiler check failed')
-
- CLOSURE_EXTERNS = path_from_root('src', 'closure-externs.js')
-- NODE_EXTERNS_BASE = path_from_root('third_party', 'closure-compiler', 'node-externs')
-+ NODE_EXTERNS_BASE = '/usr/lib/node_modules/closurecompiler-externs'
- NODE_EXTERNS = os.listdir(NODE_EXTERNS_BASE)
- NODE_EXTERNS = [os.path.join(NODE_EXTERNS_BASE, name) for name in NODE_EXTERNS
- if name.endswith('.js')]
diff --git a/testing/emscripten/closurecompiler-language_in-es6.patch b/testing/emscripten/closurecompiler-language_in-es6.patch
deleted file mode 100644
index a1820fd3889..00000000000
--- a/testing/emscripten/closurecompiler-language_in-es6.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Mon, 3 Apr 2017 19:39:00 +0200
-Subject: [PATCH] Fix on newer Closure Compiler, change language_in to ES6
-
-And also fix name of the compilation_level.
-
-Upstream-Issue: https://github.com/kripken/emscripten/issues/5109
-
---- a/tools/shared.py
-+++ b/tools/shared.py
-@@ -2140,8 +2140,8 @@
- args = [JAVA,
- '-Xmx' + (os.environ.get('JAVA_HEAP_SIZE') or '1024m'), # if you need a larger Java heap, use this environment variable
- '-jar', CLOSURE_COMPILER,
-- '--compilation_level', 'ADVANCED_OPTIMIZATIONS',
-- '--language_in', 'ECMASCRIPT5',
-+ '--compilation_level', 'ADVANCED',
-+ '--language_in', 'ECMASCRIPT6',
- '--externs', CLOSURE_EXTERNS,
- #'--variable_map_output_file', filename + '.vars',
- '--js', filename, '--js_output_file', filename + '.cc.js']
diff --git a/testing/emscripten/embuilder-fix-task-all-for-wasm.patch b/testing/emscripten/embuilder-fix-task-all-for-wasm.patch
deleted file mode 100644
index 375891e6eb3..00000000000
--- a/testing/emscripten/embuilder-fix-task-all-for-wasm.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 2 Apr 2017 23:11:41 +0200
-Subject: [PATCH] embuilder: if EMCC_WASM_BACKEND, omit tasks using pthreads
- from ALL
-
-Fixes the following error:
-
- $ EMCC_WASM_BACKEND=1 ./embuild build ALL
- Traceback (most recent call last):
- File "emscripten/src/emscripten-1.37.9/emcc", line 13, in <module>
- emcc.run()
- File "emscripten/src/emscripten-1.37.9/emcc.py", line 1278, in run
- assert not shared.Settings.USE_PTHREADS, 'WebAssembly does not support pthreads'
- AssertionError: WebAssembly does not support pthreads
-
-Upstream-Issue: https://github.com/kripken/emscripten/pull/5107
----
- embuilder.py | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/embuilder.py b/embuilder.py
-index 6674ccd..eaa762a 100755
---- a/embuilder.py
-+++ b/embuilder.py
-@@ -84,6 +84,10 @@ def build_port(port_name, lib_name, params):
- tasks = sys.argv[2:]
- if 'ALL' in tasks:
- tasks = ['libc', 'libc-mt', 'dlmalloc', 'dlmalloc_threadsafe', 'pthreads', 'libcxx', 'libcxx_noexcept', 'libcxxabi', 'gl', 'binaryen', 'bullet', 'freetype', 'libpng', 'ogg', 'sdl2', 'sdl2-image', 'sdl2-ttf', 'sdl2-net', 'vorbis', 'zlib']
-+ if os.environ.get('EMCC_WASM_BACKEND') == '1':
-+ skip_tasks = {'libc-mt', 'dlmalloc_threadsafe', 'pthreads'}
-+ print('Skipping building of %s, because WebAssembly does not support pthreads.' % ', '.join(skip_tasks))
-+ tasks = [x for x in tasks if x not in skip_tasks]
- if os.environ.get('EMSCRIPTEN_NATIVE_OPTIMIZER'):
- print 'Skipping building of native-optimizer since environment variable EMSCRIPTEN_NATIVE_OPTIMIZER is present and set to point to a prebuilt native optimizer path.'
- elif hasattr(shared, 'EMSCRIPTEN_NATIVE_OPTIMIZER'):
diff --git a/testing/emscripten/embuilder-omit-provided.patch b/testing/emscripten/embuilder-omit-provided.patch
deleted file mode 100644
index 5bdcc26f820..00000000000
--- a/testing/emscripten/embuilder-omit-provided.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Remove task for building native_optimizer and binaryen. It's not needed,
-because we ship this binary as a package. Also we don't build
-emscripten-fastcomp with X86 target, so it can't be used to build this native
-binary.
-
---- a/embuilder.py
-+++ b/embuilder.py
-@@ -33,8 +33,6 @@
- libcxx_noexcept
- libcxxabi
- gl
-- native_optimizer
-- binaryen
- bullet
- freetype
- libpng
-@@ -48,14 +46,10 @@
-
- Issuing 'embuilder.py build ALL' causes each task to be built.
-
--It is also possible to build native_optimizer manually by using CMake. To
--do that, run
-+Do not use this tool to build native_optimizer manually - it's already
-+installed and configured on Alpine Linux.
-
-- 1. cd $EMSCRIPTEN/tools/optimizer
-- 2. cmake . -DCMAKE_BUILD_TYPE=Release
-- 3. make (or mingw32-make/vcbuild/msbuild on Windows)
--
--and set up the location to the native optimizer in ~/.emscripten
-+If you need binaryen, install it with apk: apk add binaryen.
-
- '''
- sys.exit(0)
-@@ -88,12 +82,6 @@
- skip_tasks = {'libc-mt', 'dlmalloc_threadsafe', 'pthreads'}
- print('Skipping building of %s, because WebAssembly does not support pthreads.' % ', '.join(skip_tasks))
- tasks = [x for x in tasks if x not in skip_tasks]
-- if os.environ.get('EMSCRIPTEN_NATIVE_OPTIMIZER'):
-- print 'Skipping building of native-optimizer since environment variable EMSCRIPTEN_NATIVE_OPTIMIZER is present and set to point to a prebuilt native optimizer path.'
-- elif hasattr(shared, 'EMSCRIPTEN_NATIVE_OPTIMIZER'):
-- print 'Skipping building of native-optimizer since .emscripten config file has set EMSCRIPTEN_NATIVE_OPTIMIZER to point to a prebuilt native optimizer path.'
-- else:
-- tasks += ['native_optimizer']
- for what in tasks:
- shared.logging.info('building and verifying ' + what)
- if what in ('libc', 'dlmalloc'):
-@@ -146,9 +134,7 @@
- }
- ''', ['gl.bc'])
- elif what == 'native_optimizer':
-- build('''
-- int main() {}
-- ''', ['optimizer.2.exe'], ['-O2'])
-+ shared.logging.warning('native_optimizer is already installed: /usr/bin/emoptimizer. Skipping build.')
- elif what == 'wasm_compiler_rt':
- if shared.get_llvm_target() == shared.WASM_TARGET:
- build('''
-@@ -177,7 +163,7 @@
- elif what == 'sdl2-ttf':
- build_port('sdl2-ttf', 'libsdl2_ttf.bc', ['-s', 'USE_SDL=2', '-s', 'USE_SDL_TTF=2', '-s', 'USE_FREETYPE=1'])
- elif what == 'binaryen':
-- build_port('binaryen', None, ['-s', 'BINARYEN=1'])
-+ shared.logging.warning('Run "apk add binaryen" to install binaryen. Skipping build.')
- else:
- shared.logging.error('unfamiliar build target: ' + what)
- sys.exit(1)
diff --git a/testing/emscripten/emscripten.cfg b/testing/emscripten/emscripten.cfg
deleted file mode 100644
index 9888ce606c8..00000000000
--- a/testing/emscripten/emscripten.cfg
+++ /dev/null
@@ -1,21 +0,0 @@
-import os
-
-EMSCRIPTEN_ROOT = '/usr/share/emscripten'
-LLVM_ROOT = '/usr/lib/emscripten-fastcomp/bin'
-BINARYEN_ROOT = '/usr'
-BINARYEN_WASM_JS = '/usr/share/binaryen/wasm.js'
-
-CLOSURE_COMPILER = os.getenv('CLOSURE', '/usr/share/java/closure-compiler.jar')
-CRUNCH = os.getenv('CRUNCH', 'crunch')
-EMSCRIPTEN_NATIVE_OPTIMIZER = '/usr/bin/emoptimizer'
-JAVA = os.path.join(os.getenv('JAVA_HOME', '/usr/lib/jvm/default-jvm'), 'bin/java')
-NODE_JS = os.getenv('NODE', 'node')
-PYTHON = '/usr/bin/python2'
-
-TEMP_DIR = '/tmp'
-
-COMPILER_ENGINE = NODE_JS
-JS_ENGINES = [NODE_JS]
-
-# Define environment variable EM_USE_GLOBAL_CACHE=1 to look into this cache.
-GLOBAL_CACHE_DIR = '/usr/share/emscripten/cache'
diff --git a/testing/emscripten/fix-python-shebang.patch b/testing/emscripten/fix-python-shebang.patch
deleted file mode 100644
index 4cb0c3d6a87..00000000000
--- a/testing/emscripten/fix-python-shebang.patch
+++ /dev/null
@@ -1,104 +0,0 @@
---- a/em++
-+++ b/em++
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emcc.py, which needs python 2.
- # It also tells emcc.py that we want C++ and not C by default
---- a/em++.py
-+++ b/em++.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emcc.py, which needs python 2.
- # It also tells emcc.py that we want C++ and not C by default
---- a/emar
-+++ b/emar
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emar.py, which needs python 2.
-
---- a/emcc
-+++ b/emcc
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emcc.py, which needs python 2.
-
---- a/emcmake
-+++ b/emcmake
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emcmake.py, which needs python 2.
-
---- a/emconfigure
-+++ b/emconfigure
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emconfigure.py, which needs python 2.
-
---- a/emmake
-+++ b/emmake
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # This script should work in python 2 *or* 3. It loads emmake.py, which needs python 2.
-
---- a/emranlib
-+++ b/emranlib
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- '''
- emcc - ranlib helper script
---- a/emrun
-+++ b/emrun
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- # emrun: Implements machinery that allows running a .html page as if it was a standard executable file.
- # Usage: emrun <options> filename.html <args to program>
---- a/system/bin/sdl-config
-+++ b/system/bin/sdl-config
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- from __future__ import print_function
- import sys
---- a/system/bin/sdl2-config
-+++ b/system/bin/sdl2-config
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- from __future__ import print_function
- import sys
---- a/tools/emprofile.py
-+++ b/tools/emprofile.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- import sys, shutil, os, json, tempfile, time
-
---- a/tools/ffdb.py
-+++ b/tools/ffdb.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python2
-
- import socket, json, sys, uuid, datetime, time, logging, cgi, zipfile, os, tempfile, atexit, subprocess, re, base64, struct, imghdr
-
diff --git a/testing/emscripten/move-emcc-txt.patch b/testing/emscripten/move-emcc-txt.patch
deleted file mode 100644
index 8875288310c..00000000000
--- a/testing/emscripten/move-emcc-txt.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-emcc.txt is read from emcc.py for --help. Move it to more reasonable location.
---- a/emcc.py
-+++ b/emcc.py
-@@ -153,7 +153,7 @@
-
- emcc: supported targets: llvm bitcode, javascript, NOT elf
- (autoconf likes to see elf above to enable shared object support)
--''' % (open(shared.path_from_root('site', 'build', 'text', 'docs', 'tools_reference', 'emcc.txt')).read())
-+''' % (open(shared.path_from_root('emcc.txt')).read())
- exit(0)
-
- elif sys.argv[1] == '--version':
diff --git a/testing/emscripten/settings_template-paths.patch b/testing/emscripten/settings_template-paths.patch
deleted file mode 100644
index 092535f1ef3..00000000000
--- a/testing/emscripten/settings_template-paths.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/tools/settings_template_readonly.py
-+++ b/tools/settings_template_readonly.py
-@@ -1,35 +1,35 @@
--# This file will be edited (the {{{ }}} things), and then ~/.emscripten created with the result, if ~/.emscripten doesn't exist.
--
- # Note: If you put paths relative to the home directory, do not forget os.path.expanduser
-
--# Note: On Windows, remember to escape backslashes! I.e. EMSCRIPTEN_ROOT='c:\emscripten\' is not valid, but EMSCRIPTEN_ROOT='c:\\emscripten\\' and EMSCRIPTEN_ROOT='c:/emscripten/' are.
--
- import os
-
- # this helps projects using emscripten find it
--EMSCRIPTEN_ROOT = os.path.expanduser(os.getenv('EMSCRIPTEN') or '{{{ EMSCRIPTEN_ROOT }}}') # directory
--LLVM_ROOT = os.path.expanduser(os.getenv('LLVM') or '{{{ LLVM_ROOT }}}') # directory
--BINARYEN_ROOT = os.path.expanduser(os.getenv('BINARYEN') or '{{{ BINARYEN_ROOT }}}') # directory
-+EMSCRIPTEN_ROOT = os.path.expanduser(os.getenv('EMSCRIPTEN') or '/usr/share/emscripten') # directory
-+LLVM_ROOT = os.path.expanduser(os.getenv('LLVM') or '/usr/lib/emscripten-fastcomp/bin') # directory
-+
-+if os.getenv('BINARYEN'):
-+ BINARYEN_ROOT = os.path.expanduser(os.getenv('BINARYEN')) # directory
-+else:
-+ BINARYEN_ROOT = '/usr'
-+ BINARYEN_WASM_JS = '/usr/share/binaryen/wasm.js'
-
- # If not specified, defaults to sys.executable.
--#PYTHON = 'python'
-+PYTHON = 'python2'
-
--# Add this if you have manually built the JS optimizer executable (in Emscripten/tools/optimizer) and want to run it from a custom location.
- # Alternatively, you can set this as the environment variable EMSCRIPTEN_NATIVE_OPTIMIZER.
--# EMSCRIPTEN_NATIVE_OPTIMIZER='/path/to/custom/optimizer(.exe)'
-+EMSCRIPTEN_NATIVE_OPTIMIZER='/usr/bin/emoptimizer'
-
- # See below for notes on which JS engine(s) you need
--NODE_JS = os.path.expanduser(os.getenv('NODE') or '{{{ NODE }}}') # executable
-+NODE_JS = os.path.expanduser(os.getenv('NODE') or '/usr/bin/node') # executable
- SPIDERMONKEY_ENGINE = [os.path.expanduser(os.getenv('SPIDERMONKEY') or 'js')] # executable
- V8_ENGINE = os.path.expanduser(os.getenv('V8') or 'd8') # executable
-
- JAVA = 'java' # executable
-
--TEMP_DIR = '{{{ TEMP }}}'
-+TEMP_DIR = '/tmp'
-
- CRUNCH = os.path.expanduser(os.getenv('CRUNCH') or 'crunch') # executable
-
--#CLOSURE_COMPILER = '..' # define this to not use the bundled version
-+CLOSURE_COMPILER = '/usr/share/java/closure-compiler.jar'
-
- ########################################################################################################
-
diff --git a/testing/emulationstation/APKBUILD b/testing/emulationstation/APKBUILD
index 20b36e3cc1c..9e9133bbe04 100644
--- a/testing/emulationstation/APKBUILD
+++ b/testing/emulationstation/APKBUILD
@@ -1,66 +1,74 @@
# Contributor: Taner Tas <taner76@gmail.com>
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=emulationstation
-_pkgname="EmulationStation"
-pkgver=2.7.6
-pkgrel=1
+pkgver=2.11.2
+_gbz35="05895874b2920ab6ffeeb574d053f3d9e976c000"
+pkgrel=0
pkgdesc="EmulationStation is a cross-platform graphical front-end for emulators with controller navigation."
url="https://github.com/RetroPie/EmulationStation"
-arch="all !s390x !mips !mips64" # vlc-dev disabled on s390x
+arch="all !armhf !s390x" # vlc-dev
license="MIT"
-makedepends="boost-dev freeimage-dev freetype-dev sdl2-dev mesa-dev alsa-lib-dev vlc-dev curl-dev cmake"
-_theme_name="gbz35"
-_theme_commit="49176c4b3dbe103da84bd29ef474fd3c9f60a8de"
-_pugixml_commit="f3139f4c0487a7455d66d4dcd3b0aab3d54c63d1"
-subpackages="$pkgname-theme-$_theme_name:theme:noarch"
+makedepends="
+ alsa-lib-dev
+ boost-dev
+ cmake
+ curl-dev
+ freeimage-dev
+ freetype-dev
+ mesa-dev
+ pugixml-dev
+ rapidjson-dev
+ samurai
+ sdl2-dev
+ vlc-dev
+ "
+subpackages="$pkgname-theme-gbz35:theme:noarch"
options="!check" # No test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/RetroPie/$_pkgname/archive/v$pkgver.tar.gz
- $pkgname-theme-$_theme_name-$_theme_commit.tar.gz::https://github.com/rxbrad/es-theme-$_theme_name/archive/$_theme_commit.tar.gz
- pugixml-$_pugixml_commit.tar.gz::https://github.com/zeux/pugixml/archive/$_pugixml_commit.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/RetroPie/EmulationStation/archive/v$pkgver.tar.gz
+ $pkgname-theme-gbz35-$_gbz35.tar.gz::https://github.com/rxbrad/es-theme-gbz35/archive/$_gbz35.tar.gz
default-paths.patch
+ pugixml.patch
emulationstation.desktop
- emulationstation.png"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-prepare() {
- if [ ! -d external/pugixml.dist ]; then
- mv -f external/pugixml external/pugixml.dist
- cp -aP "$srcdir"/pugixml-$_pugixml_commit external/pugixml
- fi
- default_prepare
-}
+ emulationstation.png
+ "
+builddir="$srcdir"/EmulationStation-$pkgver
build() {
- cmake .
- make
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
}
package() {
- depends="$pkgname-theme-default"
- mkdir -p "$pkgdir"/usr/bin
- mkdir -p "$pkgdir"/usr/share/pixmaps
- mkdir -p "$pkgdir"/usr/share/applications
- mkdir -p "$pkgdir"/usr/share/$pkgname/gamelists
- mkdir -p "$pkgdir"/usr/share/$pkgname/themes
- install -Dm755 emulationstation "$pkgdir"/usr/bin/emulationstation
- install -Dm644 "$srcdir"/$pkgname.png "$pkgdir"/usr/share/pixmaps/
- install -Dm644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications/
+ depends="$pkgname-theme-gbz35=$pkgver-r$pkgrel"
+
+ install -Dm755 emulationstation -t "$pkgdir"/usr/bin/
+ install -Dm644 "$srcdir"/emulationstation.png -t "$pkgdir"/usr/share/icons/hicolor/256x256/apps/
+ install -Dm644 "$srcdir"/emulationstation.desktop -t "$pkgdir"/usr/share/applications/
+
+ mkdir -p "$pkgdir"/usr/share/emulationstation/themes
+ cp -r "$srcdir"/es-theme-gbz35-$_gbz35 \
+ "$pkgdir"/usr/share/emulationstation/themes/gbz35
+
+ mkdir -p "$pkgdir"/usr/share/emulationstation/gamelists
}
theme() {
- pkgdesc="$_theme_name theme for $_pkgname"
+ pkgdesc="gbz35 theme for emulationstation"
license="CC-BY-NC-SA-3.0"
url="https://github.com/rxbrad/es-theme-gbz35"
- provides="$pkgname-theme-default"
- install -d -m755 "$subpkgdir"/usr/share/$pkgname/themes
- cp -r "$srcdir"/es-theme-$_theme_name-$_theme_commit \
- "$subpkgdir"/usr/share/$pkgname/themes/$_theme_name
+ amove usr/share/emulationstation/themes/gbz35
}
-sha512sums="9df1573d172b8a77a478283fad040d4ed535ba5ca90cf1d215e2d2eb0d258247e57c732a99034dc58d4b12afba2892d34f9f6c36c47a1b155b6328d4246e7cd9 emulationstation-2.7.6.tar.gz
-012beb7511e54786911de21b092b6c271aef44ac196b6c3a1e6be3eb6dad5cedef41ed1ae2652befc9486c851eca75dc025da42e0c59e5656adf5c02b3148d95 emulationstation-theme-gbz35-49176c4b3dbe103da84bd29ef474fd3c9f60a8de.tar.gz
-bc6ab2f39c7414e5baca2917710a7e5e280aef2562afeec93adcb01424512fba6682531e8fd9b9e5e6e08841433e5e390e832560400bafafd3b45ff9355f43ad pugixml-f3139f4c0487a7455d66d4dcd3b0aab3d54c63d1.tar.gz
-3c0fe93a76fe2f702cdc1870ebfe12b3305ba24a75e90ea6dde6d479c654f662d210e5b35ce3451f3f03902ebbaeb27d117e8ca94f5b117748bcd286f37bae39 default-paths.patch
+
+sha512sums="
+49abfdfb90ddd1abac0cca2008c9efaf657dbf973e3caa07d547163ed29b7a74c8cfc6e82e1bbad6da4c8c122c748783e003d70cc3a626edec9191ee055d4e19 emulationstation-2.11.2.tar.gz
+23e764e41a8ca359657508f5103c841e25d6403ddaafa9ca2f55379e42a17541d85cacac9d18fa9316d17450cd6bd6b8ae345f07165971b2a02e03b8e33bf35c emulationstation-theme-gbz35-05895874b2920ab6ffeeb574d053f3d9e976c000.tar.gz
+f97954e411078507b312b9859ff300bf2018945dedc2be593103a0aca1b0bd233a173ab6f74c983735bf0bbc0600b49ba6987b60c03ed697c1328f906c154799 default-paths.patch
+21755e8cb8a035cbd62318be3e45db0abc3dfce76ad82348a36e496b893e6583b1209a48dd9a001bbdd55c86479ef49bcccce67858a50273170cb9f5de62f67a pugixml.patch
814a196d234266809f2c3f64c7179e3138e017eb67d1c54dcc2e8c504c1439cb73f17352575cd582ce044b08405f3a369d049127c9f4c5a1336072435dfa54f0 emulationstation.desktop
-4a24c435aeef22d7d69c3af113bff97c2c99b4a1eb2e5c97f53a6cce1f11a4f92bf4250388598a89f8fd462e03ea6fc73b75739573faf6f7b30c98ab53ddb5bf emulationstation.png"
+70eb80598cd51edb1d95dd0a1784792e2e526b23efd46f1af3246e8ca321422cdd3309d11c23506cce68fca1f4bafec97d8a0436a53047bcb78b63eb3be23b7e emulationstation.png
+"
diff --git a/testing/emulationstation/default-paths.patch b/testing/emulationstation/default-paths.patch
index d150ba19c64..82bd226f309 100644
--- a/testing/emulationstation/default-paths.patch
+++ b/testing/emulationstation/default-paths.patch
@@ -1,12 +1,12 @@
--- a/es-core/src/ThemeData.cpp
+++ b/es-core/src/ThemeData.cpp
-@@ -538,7 +538,7 @@
-
+@@ -582,7 +582,7 @@
static const size_t pathCount = 2;
- fs::path paths[pathCount] = {
-- "/etc/emulationstation/themes",
+ std::string paths[pathCount] =
+ {
+- "/etc/emulationstation/themes",
+ "/usr/share/emulationstation/themes",
- getHomePath() + "/.emulationstation/themes"
+ Utils::FileSystem::getHomePath() + "/.emulationstation/themes"
};
--- a/es-app/src/SystemData.cpp
diff --git a/testing/emulationstation/emulationstation.png b/testing/emulationstation/emulationstation.png
index 251686c0768..c9fa4c55b59 100644
--- a/testing/emulationstation/emulationstation.png
+++ b/testing/emulationstation/emulationstation.png
Binary files differ
diff --git a/testing/emulationstation/pugixml.patch b/testing/emulationstation/pugixml.patch
new file mode 100644
index 00000000000..f05c7f694e6
--- /dev/null
+++ b/testing/emulationstation/pugixml.patch
@@ -0,0 +1,152 @@
+diff --git a/es-app/src/CollectionSystemManager.cpp b/es-app/src/CollectionSystemManager.cpp
+index 52dca51..30f62cd 100644
+--- a/es-app/src/CollectionSystemManager.cpp
++++ b/es-app/src/CollectionSystemManager.cpp
+@@ -12,7 +12,7 @@
+ #include "Settings.h"
+ #include "SystemData.h"
+ #include "ThemeData.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+ #include <fstream>
+
+ std::string myCollectionsName = "collections";
+diff --git a/es-app/src/Gamelist.cpp b/es-app/src/Gamelist.cpp
+index 0dd89ca..c74d14e 100644
+--- a/es-app/src/Gamelist.cpp
++++ b/es-app/src/Gamelist.cpp
+@@ -8,7 +8,7 @@
+ #include "Log.h"
+ #include "Settings.h"
+ #include "SystemData.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+
+ FileData* findOrCreateFile(SystemData* system, const std::string& path, FileType type)
+ {
+diff --git a/es-app/src/MetaData.cpp b/es-app/src/MetaData.cpp
+index 4841030..a71a500 100644
+--- a/es-app/src/MetaData.cpp
++++ b/es-app/src/MetaData.cpp
+@@ -2,7 +2,7 @@
+
+ #include "utils/FileSystemUtil.h"
+ #include "Log.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+
+ MetaDataDecl gameDecls[] = {
+ // key, type, default, statistic, name in GuiMetaDataEd, prompt in GuiMetaDataEd
+diff --git a/es-app/src/SystemData.h b/es-app/src/SystemData.h
+index 688bc80..5a2e8fa 100644
+--- a/es-app/src/SystemData.h
++++ b/es-app/src/SystemData.h
+@@ -9,7 +9,7 @@
+ #include <string>
+ #include <vector>
+
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+
+ class FileData;
+ class FileFilterIndex;
+diff --git a/es-app/src/scrapers/GamesDBJSONScraper.cpp b/es-app/src/scrapers/GamesDBJSONScraper.cpp
+index 9ca9f20..d92841c 100644
+--- a/es-app/src/scrapers/GamesDBJSONScraper.cpp
++++ b/es-app/src/scrapers/GamesDBJSONScraper.cpp
+@@ -10,7 +10,7 @@
+ #include "Settings.h"
+ #include "SystemData.h"
+ #include "utils/TimeUtil.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+
+ /* When raspbian will get an up to date version of rapidjson we'll be
+ able to have it throw in case of error with the following:
+diff --git a/es-app/src/scrapers/ScreenScraper.cpp b/es-app/src/scrapers/ScreenScraper.cpp
+index 8cd59eb..cb2f594 100644
+--- a/es-app/src/scrapers/ScreenScraper.cpp
++++ b/es-app/src/scrapers/ScreenScraper.cpp
+@@ -7,7 +7,7 @@
+ #include "PlatformId.h"
+ #include "Settings.h"
+ #include "SystemData.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+ #include <cstring>
+
+ using namespace PlatformIds;
+diff --git a/es-core/src/InputConfig.cpp b/es-core/src/InputConfig.cpp
+index 3a85ebb..56a6863 100644
+--- a/es-core/src/InputConfig.cpp
++++ b/es-core/src/InputConfig.cpp
+@@ -2,7 +2,7 @@
+
+ #include "Log.h"
+ #include "utils/StringUtil.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+
+ //some util functions
+ std::string inputTypeToString(InputType type)
+diff --git a/es-core/src/InputManager.cpp b/es-core/src/InputManager.cpp
+index 94e18ef..67a8901 100644
+--- a/es-core/src/InputManager.cpp
++++ b/es-core/src/InputManager.cpp
+@@ -6,7 +6,7 @@
+ #include "platform.h"
+ #include "Scripting.h"
+ #include "Window.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+ #include <SDL.h>
+ #include <iostream>
+ #include <assert.h>
+diff --git a/es-core/src/MameNames.cpp b/es-core/src/MameNames.cpp
+index e0dee5c..f05e864 100644
+--- a/es-core/src/MameNames.cpp
++++ b/es-core/src/MameNames.cpp
+@@ -3,7 +3,7 @@
+ #include "resources/ResourceManager.h"
+ #include "utils/FileSystemUtil.h"
+ #include "Log.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+ #include <string.h>
+
+ MameNames* MameNames::sInstance = nullptr;
+diff --git a/es-core/src/Settings.cpp b/es-core/src/Settings.cpp
+index d38bf95..d9a2ae0 100644
+--- a/es-core/src/Settings.cpp
++++ b/es-core/src/Settings.cpp
+@@ -4,7 +4,7 @@
+ #include "Log.h"
+ #include "Scripting.h"
+ #include "platform.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+ #include <algorithm>
+ #include <vector>
+
+diff --git a/es-core/src/ThemeData.cpp b/es-core/src/ThemeData.cpp
+index 52a35c6..c223978 100644
+--- a/es-core/src/ThemeData.cpp
++++ b/es-core/src/ThemeData.cpp
+@@ -7,7 +7,7 @@
+ #include "Log.h"
+ #include "platform.h"
+ #include "Settings.h"
+-#include <pugixml/src/pugixml.hpp>
++#include <pugixml.hpp>
+ #include <algorithm>
+
+ std::vector<std::string> ThemeData::sSupportedViews { { "system" }, { "basic" }, { "detailed" }, { "grid" }, { "video" } };
+diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
+index 03b743b..deec3de 100644
+--- a/external/CMakeLists.txt
++++ b/external/CMakeLists.txt
+@@ -2,4 +2,3 @@
+ # package managers are included with the project (in the 'external' folder)
+
+ add_subdirectory("nanosvg")
+-add_subdirectory("pugixml")
diff --git a/testing/endeavour/APKBUILD b/testing/endeavour/APKBUILD
new file mode 100644
index 00000000000..aed6544ed93
--- /dev/null
+++ b/testing/endeavour/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=endeavour
+pkgver=43.0
+pkgrel=1
+pkgdesc="Personal task manager for GNOME"
+url="https://wiki.gnome.org/Apps/Todo"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ evolution-data-server-dev
+ gnome-online-accounts-dev
+ gtk4.0-dev
+ itstool
+ libadwaita-dev
+ libpeas-dev
+ meson
+ "
+subpackages="$pkgname-lang $pkgname-doc $pkgname-dev"
+source="https://gitlab.gnome.org/World/Endeavour/-/archive/$pkgver/Endeavour-$pkgver.tar.gz"
+builddir="$srcdir/Endeavour-$pkgver"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+fca96729595f59b16d54e18cebed81e3b68e67f466f479bdcd0b68405b7051bade2a730f1b62502d0c7342a08fe3a8183b94a7f6be21830326ba0a7fab2480ed Endeavour-43.0.tar.gz
+"
diff --git a/testing/endless-sky/APKBUILD b/testing/endless-sky/APKBUILD
new file mode 100644
index 00000000000..7cfa7790443
--- /dev/null
+++ b/testing/endless-sky/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=endless-sky
+pkgver=0.9.16.1
+pkgrel=0
+pkgdesc="sandbox-style 2D space trading and combat game"
+url="https://endless-sky.github.io/"
+arch="all !s390x !riscv64" # videogame
+license="GPL-3.0-or-later AND CC-BY-SA-4.0 AND CC-BY-SA-3.0 AND CC-BY-3.0"
+makedepends="
+ glew-dev
+ libjpeg-turbo-dev
+ libmad-dev
+ libpng-dev
+ openal-soft-dev
+ scons
+ sdl2-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/endless-sky/endless-sky/archive/refs/tags/v$pkgver/endless-sky-$pkgver.tar.gz
+ install-path.patch"
+
+prepare() {
+ default_prepare
+
+ # use the fast lto instead of the slow lto
+ sed -i 's|-flto|-flto=auto|g' SConstruct
+}
+
+build() {
+ # lto fortify-headers
+ export CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE"
+ scons -j "${JOBS:-2}"
+}
+
+check() {
+ scons test
+}
+
+package() {
+ scons DESTDIR="$pkgdir" PREFIX=/usr install
+ install -Dm644 copyright "$pkgdir"/usr/share/licenses/$pkgname/copyright
+}
+
+sha512sums="
+83e0a47160506b1e3608f67534e2dbcf51515d809016efc379448d14331229ffe26360f82cc60c565c84b10c605aec846efc19bcd4af10ee116e5ef8fc804d56 endless-sky-0.9.16.1.tar.gz
+91a32aa67cf70a2c6462579cff01aba9d85901675e07c9f296ce03bb34f9dca0f18594c921856ff6c369fe6eb282d9da80148019ebbd7faeecc9231ddec2d57c install-path.patch
+"
diff --git a/testing/endless-sky/install-path.patch b/testing/endless-sky/install-path.patch
new file mode 100644
index 00000000000..3035c0e9f74
--- /dev/null
+++ b/testing/endless-sky/install-path.patch
@@ -0,0 +1,13 @@
+diff --git a/SConstruct b/SConstruct
+index 3ae455a..6d25bdf 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -157,7 +157,7 @@ env.AlwaysBuild("test")
+
+
+ # Install the binary:
+-env.Install("$DESTDIR$PREFIX/games", sky)
++env.Install("$DESTDIR$PREFIX/bin", sky)
+
+ # Install the desktop file:
+ env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop")
diff --git a/testing/endlessh/APKBUILD b/testing/endlessh/APKBUILD
new file mode 100644
index 00000000000..13f3633c95e
--- /dev/null
+++ b/testing/endlessh/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=endlessh
+pkgver=1.1
+pkgrel=0
+pkgdesc="SSH tarpit that very slowly sends an endless, random SSH banner"
+url="https://github.com/skeeto/endlessh"
+arch="all"
+license="Unlicense"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skeeto/endlessh/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+7df2463425ad1417a2e328eacfb840aed14727168b83b5adf80cf6c5c98a6fc05f96bba9257b543ef60202a74383e4978e92c4a1b959e35d4ab94e0e5bda14fd endlessh-1.1.tar.gz
+"
diff --git a/testing/enjoy/0001-fix-printf-format-specifier.patch b/testing/enjoy/0001-fix-printf-format-specifier.patch
new file mode 100644
index 00000000000..01db8593865
--- /dev/null
+++ b/testing/enjoy/0001-fix-printf-format-specifier.patch
@@ -0,0 +1,28 @@
+From 33a2902f242ad95308a5970a88369d0100a4c66a Mon Sep 17 00:00:00 2001
+From: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+Date: Wed, 23 Mar 2022 17:26:05 +0100
+Subject: [PATCH] fix printf format specifier
+
+`%ld` is the format specifier for long. The correct format specifier
+for `size_t` is `%zu`. Because `%zu` is somewhat obscure, cast the
+`size_t` variable to `long` instead and keep `%ld`.
+---
+ enjoy.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/enjoy.c b/enjoy.c
+index a698f17..4f0bf33 100644
+--- a/enjoy.c
++++ b/enjoy.c
+@@ -410,7 +410,7 @@ int main(int argc, char *argv[])
+ break;
+
+ char axis_as_mouse_key[20];
+- sprintf(axis_as_mouse_key, "axis%ld_as_mouse", axis);
++ sprintf(axis_as_mouse_key, "axis%zu_as_mouse", axis);
+ /* null to 0. */
+ if(!(atoi(cfg_get(cfg, axis_as_mouse_key) ? cfg_get(cfg, axis_as_mouse_key) : "0"))) {
+ if(axes[axis].x != 0 || axes[axis].y != 0)
+--
+2.35.1
+
diff --git a/testing/enjoy/0002-fix-setting-timestamp-of-input-event.patch b/testing/enjoy/0002-fix-setting-timestamp-of-input-event.patch
new file mode 100644
index 00000000000..1b567840b96
--- /dev/null
+++ b/testing/enjoy/0002-fix-setting-timestamp-of-input-event.patch
@@ -0,0 +1,37 @@
+From 9c35cf9caf031d6f67ec0211b8125d76f1983f58 Mon Sep 17 00:00:00 2001
+From: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+Date: Wed, 23 Mar 2022 17:45:43 +0100
+Subject: [PATCH] fix setting timestamp of input event
+
+On (some) 32 bit systems `struct input_event` has no member `time`.
+Instead, the macros `input_event_sec` and `input_event_usec` can be
+used in a portable fashion to access the timestamp.
+---
+ uinput.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/uinput.c b/uinput.c
+index 41e2cac..fe3a3d5 100644
+--- a/uinput.c
++++ b/uinput.c
+@@ -17,12 +17,19 @@
+ extern int axis_y_direction;
+ extern int motion_interval;
+
++static void _set_input_time(struct input_event *ie)
++{
++ struct timeval time;
++ gettimeofday(&time, NULL);
++ ie->input_event_sec = time.tv_sec;
++ ie->input_event_usec = time.tv_usec;
++}
+
+ void emit(int fd, int type, int code, int val)
+ {
+ struct input_event ie;
+ memset(&ie, 0, sizeof(ie));
+- gettimeofday(&ie.time, NULL);
++ _set_input_time(&ie);
+
+ ie.type = type;
+ ie.code = code;
diff --git a/testing/enjoy/APKBUILD b/testing/enjoy/APKBUILD
new file mode 100644
index 00000000000..8987b60b416
--- /dev/null
+++ b/testing/enjoy/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=enjoy
+pkgver=0.3
+pkgrel=1
+pkgdesc="daemon to map joystick events to mouse/key events"
+url="https://github.com/cjacker/enjoy"
+arch="all"
+license="MIT"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/cjacker/enjoy/archive/refs/tags/v$pkgver.tar.gz
+
+ 0001-fix-printf-format-specifier.patch
+ 0002-fix-setting-timestamp-of-input-event.patch
+ correct_udev_rules_path.patch
+ "
+makedepends="linux-headers"
+options="!check" # no unit tests provided
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+02dc462f8e2d88e090242ac28612e362baabd9d7071a8e9143f6e1d92f8a23ce747fd470fbb795c57d245908de6d42d5540273e755eecbac6c06c1ef26c7ba5c enjoy-0.3.tar.gz
+37e2bc17aadf40e1a3bbbf412f34e51e897bf529121283a025eb7915248f211e5fdeffa4d82e07e816fed666dbcdadd865e59b7980ce5c76e95c7c92b60a08f1 0001-fix-printf-format-specifier.patch
+6e89859c5b8752021e1517d2cfdb9a7e9e3bc89098cacbe4845c5ff76aed7b777949efaaeea152ee21a8cdc27112a34b3df2c0015fadc317e756ca626a735791 0002-fix-setting-timestamp-of-input-event.patch
+2d4db64553fb184611d1fa3e60fda6db034cccfea57711276e71ffc03a420696d8a7251a74e3e352d275842fa7e543b9e7f146b83cad94d0822d098189cbf37d correct_udev_rules_path.patch
+"
diff --git a/testing/enjoy/correct_udev_rules_path.patch b/testing/enjoy/correct_udev_rules_path.patch
new file mode 100644
index 00000000000..63783447746
--- /dev/null
+++ b/testing/enjoy/correct_udev_rules_path.patch
@@ -0,0 +1,14 @@
+--- a/Makefile
++++ b/Makefile
+@@ -7,9 +7,9 @@ withx:
+ gcc -Os -o enjoy-with-x enjoy.c cfg_parse.c uinput.c keytable.c x.c -lX11 -lXtst -pthread -DWITH_X
+
+ install: all
+- mkdir -p $(DESTDIR)/etc/udev/rules.d/
++ mkdir -p $(DESTDIR)/usr/lib/udev/rules.d/
+ mkdir -p $(DESTDIR)$(PREFIX)/bin/
+- install -D -m0644 99-uinput.rules $(DESTDIR)/etc/udev/rules.d/
++ install -D -m0644 99-uinput.rules $(DESTDIR)/usr/lib/udev/rules.d/
+ install -D -m0755 enjoy $(DESTDIR)$(PREFIX)/bin
+
+ clean:
diff --git a/testing/enlighten/APKBUILD b/testing/enlighten/APKBUILD
new file mode 100644
index 00000000000..5e2bb32fd89
--- /dev/null
+++ b/testing/enlighten/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Sam Stuewe <samuel.stuewe@gmail.com>
+pkgname=enlighten
+pkgver=0.9.2
+pkgrel=1
+pkgdesc="expressive, sysfs-based, backlight brightness manager"
+url="https://github.com/halosghost/enlighten"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-doc"
+makedepends="scdoc"
+source="$pkgname-v$pkgver.tar.gz::https://github.com/halosghost/enlighten/archive/v$pkgver.tar.gz"
+
+build() {
+ make CONFIGURATION=release VER="v$pkgver" bin doc
+}
+
+check() {
+ make CONFIGURATION=release check
+}
+
+package() {
+ make CONFIGURATION=release PREFIX="/usr" DESTDIR="$pkgdir" install
+}
+
+sha512sums="28c0c9c3324ca6ff15ede6ab4c65e45cf6acf55b5799f5ad0369b632cda7f1390a71a878eba30e7cc98b1a043697eedc8b2b1d7fb68d91ddcd8b74164a4bf7bf enlighten-v0.9.2.tar.gz"
diff --git a/testing/envconsul/APKBUILD b/testing/envconsul/APKBUILD
index 62579700409..e6f9dc6e6a7 100644
--- a/testing/envconsul/APKBUILD
+++ b/testing/envconsul/APKBUILD
@@ -1,17 +1,21 @@
# Contributor: Gennady Feldman <gena01@gmail.com>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=envconsul
-pkgver=0.9.3
-pkgrel=1
+pkgver=0.13.2
+pkgrel=5
pkgdesc="Read and set environmental variables for processes from Consul."
url="https://www.consul.io/"
-arch="all"
license="MPL-2.0"
+arch="all"
makedepends="go"
+options="net chmod-clean"
source="$pkgname-$pkgver.tar.gz::https://github.com/hashicorp/envconsul/archive/v$pkgver.tar.gz"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
build() {
- export CGO_ENABLED="0"
mkdir -p pkg/linux-$CARCH
go build -v -o pkg/linux-$CARCH/$pkgname
}
@@ -25,4 +29,6 @@ package() {
install -m755 -D pkg/linux-$CARCH/$pkgname "$pkgdir"/usr/bin/$pkgname
}
-sha512sums="7bf2503b3545fd5d0771b2ed637bf35855327b173c7968a19d896c87f5fe6a47049bc07d37a9a86d762103d9fbf41dd0ee220d23077a068195d9ddb0565566b7 envconsul-0.9.3.tar.gz"
+sha512sums="
+dacc65e19553de897195397126664882e3dedd4b9929c83c519311010ff1ab62663425556261a2ce3f37035576b63b4f26c4a0219dfd663d05e852c4cee2e6bb envconsul-0.13.2.tar.gz
+"
diff --git a/testing/envsubst/APKBUILD b/testing/envsubst/APKBUILD
new file mode 100644
index 00000000000..21e8e6c0ac1
--- /dev/null
+++ b/testing/envsubst/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=envsubst
+pkgver=0.1
+pkgrel=1
+pkgdesc="perform variable substitutions on input"
+url="https://github.com/kaniini/envsubst"
+arch="all"
+license="ISC"
+depends=""
+makedepends=""
+install=""
+subpackages=""
+source="https://distfiles.ariadne.space/envsubst/envsubst-$pkgver.tar.xz"
+builddir="$srcdir/envsubst-$pkgver"
+options="!check" # No test suite.
+replaces="gettext" # GNU gettext also provides envsubst.
+
+provider_priority=10 # lowest (other provider of cmd:envsubst is main/gettext)
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" prefix="/usr" install
+}
+
+sha512sums="587fed2481c044936d79b8d92719a2acaf4f5e54eef966e5a52fbd6feb3e8341b5130d6e3134b890ad469e99538fcafee4cac01349cab03f23f070eb214c0c5c envsubst-0.1.tar.xz"
diff --git a/testing/eolie/APKBUILD b/testing/eolie/APKBUILD
deleted file mode 100644
index 369126b4969..00000000000
--- a/testing/eolie/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Daniele Debernardi <drebrez@gmail.com>
-# Maintainer: Daniele Debernardi <drebrez@gmail.com>
-pkgname=eolie
-pkgver=0.9.98
-pkgrel=0
-pkgdesc="Web browser for GNOME"
-url="https://gitlab.gnome.org/World/eolie"
-arch="noarch !mips !mips64" # blocked by webkit2gtk
-license="GPL-3.0-or-later"
-depends="webkit2gtk gtkspell3 py3-cairo py3-gobject3"
-makedepends="meson python3 glib-dev gobject-introspection-dev gtk+3.0-dev"
-checkdepends="desktop-file-utils appstream-glib"
-subpackages="$pkgname-lang"
-source="https://adishatz.org/eolie/eolie-$pkgver.tar.xz
- dont-require-py3-gettext-support.patch
- "
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="36f26bd63dac2137bab4c931db0b7a1afb3c3443d7ae6ccb5034f71e6390914d34834195cfb2dfee94fbeaa82eb2be9a29d5e35a40990166549fd498aa744f36 eolie-0.9.98.tar.xz
-5420b20178a7c973ab9f6ac27b56c6660d103b48097b4f04c43f7856920cd653cf6a8fb83e9b3c2102c270b17ad1d371b3390e4340959971ba4bfecfab518806 dont-require-py3-gettext-support.patch"
diff --git a/testing/eolie/dont-require-py3-gettext-support.patch b/testing/eolie/dont-require-py3-gettext-support.patch
deleted file mode 100644
index fefb220fb52..00000000000
--- a/testing/eolie/dont-require-py3-gettext-support.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/eolie.in b/eolie.in
-index 2349b6d..97e542a 100755
---- a/eolie.in
-+++ b/eolie.in
-@@ -37,8 +37,6 @@ def install_excepthook():
- if __name__ == "__main__":
- install_excepthook()
-
-- locale.bindtextdomain('eolie', localedir)
-- locale.textdomain('eolie')
- gettext.bindtextdomain('eolie', localedir)
- gettext.textdomain('eolie')
-
diff --git a/testing/epoch/APKBUILD b/testing/epoch/APKBUILD
index d8d42396036..7b9299d4ec6 100644
--- a/testing/epoch/APKBUILD
+++ b/testing/epoch/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Jan Tatje <jan@jnt.io>
pkgname=epoch
pkgver=1.3.0
-pkgrel=0
+pkgrel=1
pkgdesc="The Epoch Init System is a small but powerful init system for Linux 2.6+."
url="https://universe2.us/epoch.html"
arch="all"
license="unlicense"
options="!check" # epoch has no tests
-source="http://universe2.us/epoch_1.3.0.tar.gz epoch.conf"
+source="http://universe2.us/epoch_$pkgver.tar.gz epoch.conf"
builddir="$srcdir/${pkgname}_${pkgver}"
build() {
@@ -22,5 +22,7 @@ package() {
cp $srcdir/epoch.conf $pkgdir/etc/epoch/epoch.conf
}
-sha512sums="1e4a8bee26d8819303cbeb67265ee74e294502acfb3f5e594222bb7bdcb2d077fe19e73c40e9111a6ef9af788d767434f5a9a357430b59d6a0cac0e36a3b8f9e epoch_1.3.0.tar.gz
-0ec063230441d2dd8cbefada9bd8121dae8cd77a309a093889028a0bedfe60eeef9a8fba4b174b5b9af512de2874a714e1e9bcdf4123e6108deda16dade2047e epoch.conf"
+sha512sums="
+1e4a8bee26d8819303cbeb67265ee74e294502acfb3f5e594222bb7bdcb2d077fe19e73c40e9111a6ef9af788d767434f5a9a357430b59d6a0cac0e36a3b8f9e epoch_1.3.0.tar.gz
+0ec063230441d2dd8cbefada9bd8121dae8cd77a309a093889028a0bedfe60eeef9a8fba4b174b5b9af512de2874a714e1e9bcdf4123e6108deda16dade2047e epoch.conf
+"
diff --git a/testing/epr/APKBUILD b/testing/epr/APKBUILD
new file mode 100644
index 00000000000..8455f11ab3b
--- /dev/null
+++ b/testing/epr/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Erwan Rouchet <lucidiot@brainshit.fr>
+# Maintainer: Erwan Rouchet <lucidiot@brainshit.fr>
+pkgname=epr
+pkgver=2.4.15
+pkgrel=1
+pkgdesc="CLI epub reader"
+url="https://github.com/wustho/epr"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-gpep517 py3-installer py3-poetry-core"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wustho/epr/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/epr*.whl
+}
+
+sha512sums="
+c1642191889ef3aebcc3b516281387a28edb39f6898bde68f9717b9eccf4c72bf567714a65b56d67f126139b04c8fc1921f0e69bf35effb85d8a3d7e1fd71fdf epr-2.4.15.tar.gz
+"
diff --git a/testing/epson-inkjet-printer-escpr/APKBUILD b/testing/epson-inkjet-printer-escpr/APKBUILD
deleted file mode 100644
index 10441b0ff14..00000000000
--- a/testing/epson-inkjet-printer-escpr/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=epson-inkjet-printer-escpr
-pkgver=1.7.7
-pkgrel=0
-pkgdesc="Epson Inkjet Printer Driver (ESC/P-R) for Linux"
-url="http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX"
-arch="all"
-license="GPL-2.0-or-later"
-depends="cups-filters"
-makedepends="cups-dev"
-source="$pkgname-$pkgver.tar.gz::https://download3.ebz.epson.net/dsc/f/03/00/10/49/18/f3016be6120a7271a6d9cb64872f817bce1920b8/epson-inkjet-printer-escpr-$pkgver-1lsb3.2.tar.gz"
-options="!check" # no test suite provided
-
-build() {
- ./configure \
- --disable-static \
- --prefix=/usr \
- --with-cupsfilterdir=/usr/lib/cups/filter \
- --with-cupsppddir=/usr/share/ppd
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="9663b9ed425fbe5d3f2b6f85f036cdbd230665919e2cc9d62a33ebae85a0068513417209dae97ce55e406124b92c96c455cdc204d3d2335f4215f57b79f9d2a9 epson-inkjet-printer-escpr-1.7.7.tar.gz"
diff --git a/testing/epub2txt/APKBUILD b/testing/epub2txt/APKBUILD
deleted file mode 100644
index 307d26a78ab..00000000000
--- a/testing/epub2txt/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Paper <paper@tilde.institute>
-# Maintainer: Paper <paper@tilde.institute>
-pkgname=epub2txt
-pkgver=2.01
-pkgrel=0
-pkgdesc="CLI utility for extracting text from EPUB documents"
-url="https://github.com/kevinboone/epub2txt2"
-arch="all"
-license="GPL-3.0-only"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kevinboone/epub2txt2/archive/v$pkgver.tar.gz"
-options='!check' #no testsuite
-builddir="$srcdir/$pkgname"2"-$pkgver"
-
-build() {
- make
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="87796e94cfa76380cd901f7c3ce7a09ebe510771966980a15df91df78330eab57453d83c2bfe4a2e502040f1809d0e1b0f8ef135597222f99495b81bde4ebe41 epub2txt-2.01.tar.gz"
diff --git a/testing/ergo-ldap/APKBUILD b/testing/ergo-ldap/APKBUILD
new file mode 100644
index 00000000000..4958eb7542f
--- /dev/null
+++ b/testing/ergo-ldap/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=ergo-ldap
+pkgver=0.0.1
+pkgrel=9
+pkgdesc="LDAP authentication plugin for Ergo IRCd"
+url="https://github.com/ergochat/ergo-ldap"
+arch="all"
+license="Apache-2.0"
+makedepends="go make"
+options="!check" # No tests
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ergochat/ergo-ldap/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin/ ergo-ldap
+ install -Dm644 -t "$pkgdir"/usr/share/doc/ergo-ldap/ example.yaml
+}
+
+sha512sums="
+16e36b2ec83fdc88c2b1ca93ba680a41fc58263f353411722d00d1fb479dd45d2e607bb1c5f34a0b2cdbf840a92c8dc1dcc4cee2292aa230b885ec979fa753b1 ergo-ldap-0.0.1.tar.gz
+"
diff --git a/testing/espeakup/APKBUILD b/testing/espeakup/APKBUILD
new file mode 100644
index 00000000000..9191e5f8fac
--- /dev/null
+++ b/testing/espeakup/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=espeakup
+pkgver=0.90
+pkgrel=2
+pkgdesc="Lightweight connector for espeak and speakup"
+url="https://github.com/linux-speakup/espeakup"
+arch="all !s390x" # s390x blocked by espeak-ng
+license="GPL-3.0-or-later"
+options="!check" # no tests
+makedepends="alsa-lib-dev espeak-ng-dev meson"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linux-speakup/espeakup/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ modules-load.conf
+ "
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+
+ install -Dm644 "$srcdir"/modules-load.conf \
+ "$pkgdir"/usr/lib/modules-load.d/$pkgname.conf
+}
+
+sha512sums="
+0731835a04063c5eac8ed0ed37cd92cc5d2dd1c58cbd94e158b7dfbb7bc0e2f84a6484fffd9009bf2920652a36fb737044b2e1fb67fb1679ee7150855bc9a15e espeakup-0.90.tar.gz
+54959d3fcc503f0579a38cc921ffa7ca530aecfcd84ec2a995d3a00b025904f6771ead9da1f9c0655e6a72d4451a1c816b7f2ea7ed38d797673e0c9a8ecca847 espeakup.initd
+b9126271274821a228045ab3c15b2ec3d1738f7d97851510fac30308387a48aeb7fa634fa45a09a0ae74ae1c5db1352833d2c49e542187b38835b365d80b49a2 espeakup.confd
+af8e8591fd6320dba20a8fe1b6e126f2ae45dfc0286c4c68e508f8141af940a5af43567ed0db4f5534fdfc91124a42619b9ca92de921a279a30d5dc4964ae311 modules-load.conf
+"
diff --git a/testing/espeakup/espeakup.confd b/testing/espeakup/espeakup.confd
new file mode 100644
index 00000000000..977171a9e34
--- /dev/null
+++ b/testing/espeakup/espeakup.confd
@@ -0,0 +1,3 @@
+# Configuration for /etc/init.d/espeakup
+
+#ESPEAKUP_OPTS=""
diff --git a/testing/espeakup/espeakup.initd b/testing/espeakup/espeakup.initd
new file mode 100644
index 00000000000..ce6207e2d3c
--- /dev/null
+++ b/testing/espeakup/espeakup.initd
@@ -0,0 +1,7 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="espeakup"
+command=/usr/bin/espeakup
+command_args="$ESPEAKUP_OPTS"
+command_args_foreground="-d"
diff --git a/testing/espeakup/modules-load.conf b/testing/espeakup/modules-load.conf
new file mode 100644
index 00000000000..38d53913d18
--- /dev/null
+++ b/testing/espeakup/modules-load.conf
@@ -0,0 +1 @@
+speakup_soft
diff --git a/testing/esptool/APKBUILD b/testing/esptool/APKBUILD
index 52cb02bc9aa..df6f1ba1de8 100644
--- a/testing/esptool/APKBUILD
+++ b/testing/esptool/APKBUILD
@@ -1,27 +1,43 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
pkgname=esptool
-pkgver=2.8
+pkgver=4.7.0
pkgrel=1
pkgdesc="ESP8266 and ESP32 serial bootloader utility"
-url="https://github.com/espressif/esptool"
-arch="noarch"
+url="https://docs.espressif.com/projects/esptool"
license="GPL-2.0-or-later"
-depends="python3 py3-serial py3-ecdsa py3-setuptools py3-pyaes"
-options="!check" # tests require older version of pycodestyle
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/espressif/esptool/archive/v$pkgver.tar.gz"
+arch="noarch"
+depends="
+ py3-bitstring
+ py3-cryptography
+ py3-ecdsa
+ py3-intelhex
+ py3-pyserial
+ py3-reedsolo
+ py3-yaml
+ "
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
+checkdepends="py3-elftools py3-pkcs11 py3-pytest py3-requests"
+subpackages="$pkgname-pyc"
+source="https://github.com/espressif/esptool/archive/v$pkgver/esptool-$pkgver.tar.gz"
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"
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -m host_test
+}
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 CONTRIBUTING.md README.md \
- "$pkgdir"/usr/share/doc/$pkgname/
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="14528197e760779f3bf50e2a44d477979675dd42451fa405e2ae87502158b21f999fb94561980c9eb0634d2d1fd3729779b78266403de858ed1d32e8d29604cc esptool-2.8.tar.gz"
+sha512sums="
+dda2af5d9b2f8a4ec5706eaf58021e95094c152380c732074809c370a5d1bfaeb424cb27f69a3b980dec83ae9c4c9ee1eddfeb0a7990c3b1f1494160a2d369cc esptool-4.7.0.tar.gz
+"
diff --git a/testing/etcd/APKBUILD b/testing/etcd/APKBUILD
index 2c41dc3adc2..8ab11d8d7ea 100644
--- a/testing/etcd/APKBUILD
+++ b/testing/etcd/APKBUILD
@@ -1,59 +1,56 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=etcd
-pkgver=3.4.9
-pkgrel=0
+pkgver=3.5.13
+pkgrel=1
pkgdesc="A highly-available key value store for shared configuration and service discovery"
-options="chmod-clean"
-url="https://github.com/coreos/etcd"
-arch="x86_64 ppc64le"
+url="https://github.com/etcd-io/etcd"
license="Apache-2.0"
+arch="all"
makedepends="go bash"
install="$pkgname.pre-install"
-pkgusers="$pkgname"
-pkggroups="$pkgname"
+provides="etcd-api"
+provider_priority=2
+options="net chmod-clean"
+pkgusers="etcd"
+pkggroups="etcd"
subpackages="$pkgname-doc $pkgname-ctl $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/coreos/etcd/archive/v$pkgver.tar.gz
- $pkgname.yaml-$pkgver::https://raw.githubusercontent.com/etcd-io/etcd/release-${pkgver%.*}/etcd.conf.yml.sample
+ $pkgname.yaml-$pkgver
$pkgname.confd
$pkgname.initd
"
-export CGO_ENABLED=0
-
-prepare() {
- default_prepare
- export GOPATH="$(pwd)/_gopath"
- _coreos="$GOPATH/src/github.com/coreos"
- mkdir -vp $_coreos
- ln -vsf $srcdir/$pkgname-$pkgver $_coreos/$pkgname
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -mod=mod"
+export CGO_ENABLED=1
build() {
- bash -x ./build
+ bash -x ./build.sh
}
package() {
mkdir -p "$pkgdir"/var/lib/$pkgname
chown -R $pkgusers:$pkggroups "$pkgdir"/var/lib/$pkgname
+ chmod 700 "$pkgdir"/var/lib/$pkgname
install -Dm755 bin/etcd "$pkgdir"/usr/bin/etcd
+ install -Dm755 bin/etcdctl "$pkgdir"/usr/bin/etcdctl
install -Dm644 $srcdir/$pkgname.yaml-$pkgver "$pkgdir"/etc/etcd/conf.yml
install -Dm644 $srcdir/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
install -Dm755 $srcdir/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
ctl() {
pkgdesc="A command-line client for etcd"
- install -Dm755 "$builddir"/bin/etcdctl "$subpkgdir"/usr/bin/etcdctl
+ amove usr/bin/etcdctl
}
-sha512sums="c9195cd82c82e80d852b9d3c62f424caee426e41035bce2f0c07878162fe1b90da9f3be0a0fd3966954aadfa474b213ab9654adb7da275cb16b304c4e4ba8e13 etcd-3.4.9.tar.gz
-aa42b93eb4bf762173563ffd0b93dd82f3aafdf277248ca356daa4aaf82da945d5f740c07db7e95d05895bb44a2bb303041f0a7b3329f7ce483d2785df011f9e etcd.yaml-3.4.9
-e2c178b376dc05de7daee6ca3b38cc289e7c73106055dcccde08fe36a392224edf9f98203d50f14c7abeea74552675ff73a061ba20c56628eb657fa15dcd8942 etcd.confd
-c251f63cbaee2d5edaed3f82b4d0b8918ecee977ee459b59f0b9fef02cfe69f0de997e9a59ad29732c58782c224591b0d27378b24435f1bac0e77a35d8886bba etcd.initd"
+sha512sums="
+dc85d80079b61e96eb06eb573d41d8972060392e49140a2414c283ea9edfef7b01d5554e50c7ab37c6ad079b373ae12a1b84dbcc533addc1d4d30a2a5abf7b7b etcd-3.5.13.tar.gz
+92e6a22dfe12eef76c186c04a4aadca5318300c18aefc979cc03926fddf40e0e9b3bf2b40b75702f2f710dc65420da676c734cfe4d246d86e0728d6e99f43426 etcd.yaml-3.5.13
+8b917d2b3a136a97dd9565a91377420ce1f812bfb10bb0caa95f1024dd366cb78ebb0539f16ddfbc399325d41a6664b856d49c5c9aa67bc27e36040f2227356e etcd.confd
+b67f7fd209a29ed2a6ef86d5a3c07cf5dc4138af7c61c3a928471cd79f5579ce7861fd21167db332727dfb2a8e554722366c6505e447f3b2feeae819f869aa11 etcd.initd
+"
diff --git a/testing/etcd/etcd.confd b/testing/etcd/etcd.confd
index 0656d612e19..1f916ee40bc 100644
--- a/testing/etcd/etcd.confd
+++ b/testing/etcd/etcd.confd
@@ -1,17 +1,2 @@
LOGPATH=/var/log/${RC_SVCNAME}
-USER=$RC_SVCNAME
-
-ETCD_CONFIG=/etc/etcd/conf.yml
-
-# Path to the data directory.
-#
-# default: "${name}.etcd"
-# distribution default: "/var/lib/etcd"
-#
-ETCD_DATA_DIR="/var/lib/etcd"
-
-# Any additional command-line options
-#
-# default: ""
-#
-#ETCD_OPTS=""
+ETCD_CONFIG_FILE=/etc/etcd/conf.yml
diff --git a/testing/etcd/etcd.initd b/testing/etcd/etcd.initd
index 779ab2990e7..3ef09782f86 100644
--- a/testing/etcd/etcd.initd
+++ b/testing/etcd/etcd.initd
@@ -7,10 +7,14 @@ supervisor=supervise-daemon
name="$RC_SVCNAME"
description="Highly-available key-value store"
+ETCD_DATA_DIR=$(sed -nr 's/^data-dir:\s*(\/.*)/\1/p' $ETCD_CONFIG_FILE)
+
command=/usr/bin/etcd
-command_args="--config-file=$ETCD_CONFIG --data-dir=$ETCD_DATA_DIR $ETCD_OPTS"
+command_args="--config-file=${ETCD_CONFIG_FILE}"
+: ${output_log:=$LOGPATH/$RC_SVCNAME.log}
+: ${error_log:=$LOGPATH/$RC_SVCNAME.log}
-command_user="$USER:$USER"
+command_user="etcd:etcd"
supervise_daemon_args="--chdir $ETCD_DATA_DIR"
@@ -20,5 +24,5 @@ depend() {
start_pre() {
checkpath -d -m 0775 -o "$command_user" "$LOGPATH"
- checkpath -d -m 0775 -o "$command_user" "$ETCD_DATA_DIR"
+ checkpath -d -m 0700 -o "$command_user" "$ETCD_DATA_DIR"
}
diff --git a/testing/etcd/etcd.yaml-3.5.13 b/testing/etcd/etcd.yaml-3.5.13
new file mode 100644
index 00000000000..f299e491e1d
--- /dev/null
+++ b/testing/etcd/etcd.yaml-3.5.13
@@ -0,0 +1,143 @@
+# This is the configuration file for the etcd server.
+
+# Human-readable name for this member.
+name: 'default'
+
+# Path to the data directory.
+data-dir: /var/lib/etcd
+
+# Path to the dedicated wal directory.
+wal-dir:
+
+# Number of committed transactions to trigger a snapshot to disk.
+snapshot-count: 10000
+
+# Time (in milliseconds) of a heartbeat interval.
+heartbeat-interval: 100
+
+# Time (in milliseconds) for an election to timeout.
+election-timeout: 1000
+
+# Raise alarms when backend size exceeds the given quota. 0 means use the
+# default quota.
+quota-backend-bytes: 0
+
+# List of comma separated URLs to listen on for peer traffic.
+listen-peer-urls: http://localhost:2380
+
+# List of comma separated URLs to listen on for client traffic.
+listen-client-urls: http://localhost:2379
+
+# Maximum number of snapshot files to retain (0 is unlimited).
+max-snapshots: 5
+
+# Maximum number of wal files to retain (0 is unlimited).
+max-wals: 5
+
+# Comma-separated white list of origins for CORS (cross-origin resource sharing).
+cors:
+
+# List of this member's peer URLs to advertise to the rest of the cluster.
+# The URLs needed to be a comma-separated list.
+initial-advertise-peer-urls: http://localhost:2380
+
+# List of this member's client URLs to advertise to the public.
+# The URLs needed to be a comma-separated list.
+advertise-client-urls: http://localhost:2379
+
+# Discovery URL used to bootstrap the cluster.
+discovery:
+
+# Valid values include 'exit', 'proxy'
+discovery-fallback: 'proxy'
+
+# HTTP proxy to use for traffic to discovery service.
+discovery-proxy:
+
+# DNS domain used to bootstrap initial cluster.
+discovery-srv:
+
+# Initial cluster configuration for bootstrapping.
+initial-cluster:
+
+# Initial cluster token for the etcd cluster during bootstrap.
+initial-cluster-token: 'etcd-cluster'
+
+# Initial cluster state ('new' or 'existing').
+initial-cluster-state: 'new'
+
+# Reject reconfiguration requests that would cause quorum loss.
+strict-reconfig-check: false
+
+# Accept etcd V2 client requests
+enable-v2: true
+
+# Enable runtime profiling data via HTTP server
+enable-pprof: true
+
+# Valid values include 'on', 'readonly', 'off'
+proxy: 'off'
+
+# Time (in milliseconds) an endpoint will be held in a failed state.
+proxy-failure-wait: 5000
+
+# Time (in milliseconds) of the endpoints refresh interval.
+proxy-refresh-interval: 30000
+
+# Time (in milliseconds) for a dial to timeout.
+proxy-dial-timeout: 1000
+
+# Time (in milliseconds) for a write to timeout.
+proxy-write-timeout: 5000
+
+# Time (in milliseconds) for a read to timeout.
+proxy-read-timeout: 0
+
+client-transport-security:
+ # Path to the client server TLS cert file.
+ cert-file:
+
+ # Path to the client server TLS key file.
+ key-file:
+
+ # Enable client cert authentication.
+ client-cert-auth: false
+
+ # Path to the client server TLS trusted CA cert file.
+ trusted-ca-file:
+
+ # Client TLS using generated certificates
+ auto-tls: false
+
+peer-transport-security:
+ # Path to the peer server TLS cert file.
+ cert-file:
+
+ # Path to the peer server TLS key file.
+ key-file:
+
+ # Enable peer client cert authentication.
+ client-cert-auth: false
+
+ # Path to the peer server TLS trusted CA cert file.
+ trusted-ca-file:
+
+ # Peer TLS using generated certificates.
+ auto-tls: false
+
+# The validity period of the self-signed certificate, the unit is year.
+self-signed-cert-validity: 1
+
+# Enable debug-level logging for etcd.
+#log-level: debug
+
+logger: zap
+
+# Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd.
+log-outputs: [stderr]
+
+# Force to create a new one member cluster.
+force-new-cluster: false
+
+auto-compaction-mode: periodic
+auto-compaction-retention: "1"
diff --git a/testing/ettercap/APKBUILD b/testing/ettercap/APKBUILD
index 0dad4d80d38..a4381c13244 100644
--- a/testing/ettercap/APKBUILD
+++ b/testing/ettercap/APKBUILD
@@ -1,46 +1,56 @@
# Contributor: Karim Kanso <kaz.kanso@gmail.com>
# Maintainer: Karim Kanso <kaz.kanso@gmail.com>
pkgname=ettercap
-pkgver=0.8.3
-pkgrel=1
+pkgver=0.8.3.1
+pkgrel=2
pkgdesc="Multipurpose sniffer/interceptor/logger for switched LAN"
url="https://www.ettercap-project.org/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="cmake make gcc musl-dev ncurses-dev curl-dev libpcap-dev
- libnet-dev pcre-dev flex bison linux-headers geoip-dev
- check-dev"
+makedepends="
+ bison
+ check-dev
+ cmake
+ curl-dev
+ flex
+ geoip-dev
+ libnet-dev
+ libpcap-dev
+ linux-headers
+ ncurses-dev
+ pcre-dev
+ samurai
+ "
subpackages="$pkgname-doc lib$pkgname:libs"
source="https://github.com/Ettercap/ettercap/releases/download/v$pkgver/ettercap-$pkgver.tar.gz
none-build-type.patch"
build() {
- mkdir build
- cd build
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} \
+ $CMAKE_CROSSOPTS \
-DENABLE_GTK=OFF \
-DINSTALL_DESKTOP=OFF \
-DBUNDLED_LIBS=OFF \
- -DENABLE_TESTS=ON \
- ..
- make
+ -DENABLE_TESTS=ON
+
+ cmake --build build
}
check() {
- make -C build test
+ ninja -C build test
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="d7058c1c633647bb5ae8575826c0c03e2adcc079e79b2cb188b2ab99cd7980ca439170571b8f80a98cc3327ce2cae9ad906391c1d79cfd763bacb3e6abf61b27 ettercap-0.8.3.tar.gz
-9aae86ee1599b4ffa0b9c0c5acc7939675db12c02d53f0e47d6e18acc513c020e0dbc63812536f8d8716132e0f8aeaf2ff737b0c9d11e8d814074ded82093b7c none-build-type.patch"
+sha512sums="
+5e3d79578e16b9a2a90a87dcd9b40696ac8dec439e017cbf60f209402e577e7563062769bb76a470d20d1a14269134b28d57d356380af6b5883e4824656b9807 ettercap-0.8.3.1.tar.gz
+9aae86ee1599b4ffa0b9c0c5acc7939675db12c02d53f0e47d6e18acc513c020e0dbc63812536f8d8716132e0f8aeaf2ff737b0c9d11e8d814074ded82093b7c none-build-type.patch
+"
diff --git a/testing/eva/APKBUILD b/testing/eva/APKBUILD
new file mode 100644
index 00000000000..3e7649cc584
--- /dev/null
+++ b/testing/eva/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=eva
+pkgver=0.3.1
+pkgrel=2
+pkgdesc="Calculator REPL, similar to bc(1)"
+url="https://github.com/nerdypepper/eva"
+license="MIT"
+arch="all !s390x !riscv64" # limited by rust/cargo
+makedepends="cargo cargo-auditable"
+source="https://github.com/nerdypepper/eva/archive/v$pkgver/eva-$pkgver.tar.gz
+ deps.patch
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/eva -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2bc6a14668f321e9dd17aab5d8e93abdc0bb4a6739365a68c33beb9f562e03e7924df0b75ad8ca8236b7c3fefc2b477b7ae8b6fe4da0ab45f40b63be4cb1e3d7 eva-0.3.1.tar.gz
+3ca527afe153d8189254dd4bcb54763e6f79a0893c97668152d407a903740898e71d26883143e13efa06233a8fc714f0776e1c139b8839bee779fdb1ea45f2e7 deps.patch
+"
diff --git a/testing/eva/deps.patch b/testing/eva/deps.patch
new file mode 100644
index 00000000000..28477d43218
--- /dev/null
+++ b/testing/eva/deps.patch
@@ -0,0 +1,156 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 5cd799b..97623c9 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -152,7 +152,7 @@ checksum = "e11dcc7e4d79a8c89b9ab4c6f5c30b1fc4a83c420792da3542fd31179ed5f517"
+ dependencies = [
+ "cfg-if",
+ "rustix",
+- "windows-sys",
++ "windows-sys 0.36.1",
+ ]
+
+ [[package]]
+@@ -177,9 +177,9 @@ dependencies = [
+
+ [[package]]
+ name = "io-lifetimes"
+-version = "0.7.3"
++version = "0.7.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1ea37f355c05dde75b84bba2d767906ad522e97cd9e2eef2be7a4ab7fb442c06"
++checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074"
+
+ [[package]]
+ name = "libc"
+@@ -364,16 +364,16 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+ [[package]]
+ name = "rustix"
+-version = "0.35.11"
++version = "0.35.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fbb2fda4666def1433b1b05431ab402e42a1084285477222b72d6c564c417cef"
++checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9"
+ dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+- "windows-sys",
++ "windows-sys 0.42.0",
+ ]
+
+ [[package]]
+@@ -442,7 +442,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8440c860cf79def6164e4a0a983bcc2305d82419177a0e0c71930d049e3ac5a1"
+ dependencies = [
+ "rustix",
+- "windows-sys",
++ "windows-sys 0.36.1",
+ ]
+
+ [[package]]
+@@ -532,39 +532,96 @@ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+ dependencies = [
+- "windows_aarch64_msvc",
+- "windows_i686_gnu",
+- "windows_i686_msvc",
+- "windows_x86_64_gnu",
+- "windows_x86_64_msvc",
++ "windows_aarch64_msvc 0.36.1",
++ "windows_i686_gnu 0.36.1",
++ "windows_i686_msvc 0.36.1",
++ "windows_x86_64_gnu 0.36.1",
++ "windows_x86_64_msvc 0.36.1",
+ ]
+
++[[package]]
++name = "windows-sys"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
++dependencies = [
++ "windows_aarch64_gnullvm",
++ "windows_aarch64_msvc 0.42.2",
++ "windows_i686_gnu 0.42.2",
++ "windows_i686_msvc 0.42.2",
++ "windows_x86_64_gnu 0.42.2",
++ "windows_x86_64_gnullvm",
++ "windows_x86_64_msvc 0.42.2",
++]
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
++
+ [[package]]
+ name = "windows_aarch64_msvc"
+ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
++
+ [[package]]
+ name = "windows_i686_gnu"
+ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
++[[package]]
++name = "windows_i686_gnu"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
++
+ [[package]]
+ name = "windows_i686_msvc"
+ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
++[[package]]
++name = "windows_i686_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
++
+ [[package]]
+ name = "windows_x86_64_gnu"
+ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
++
+ [[package]]
+ name = "windows_x86_64_msvc"
+ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
diff --git a/testing/evolution-on/APKBUILD b/testing/evolution-on/APKBUILD
index f2951306540..72ef3877110 100644
--- a/testing/evolution-on/APKBUILD
+++ b/testing/evolution-on/APKBUILD
@@ -1,4 +1,5 @@
# Contributor: Paul Bredbury <brebs@sent.com>
+# Maintainer:
pkgname=evolution-on
pkgver=3.24.2
pkgrel=0
diff --git a/testing/eww/APKBUILD b/testing/eww/APKBUILD
new file mode 100644
index 00000000000..0c23402bb4d
--- /dev/null
+++ b/testing/eww/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=eww
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="ElKowars wacky widgets"
+url="https://elkowar.github.io/eww/"
+arch="aarch64 x86_64" # blocked by rustup
+license="MIT"
+# XXX: eww requires rust nightly, so we cannot build it with our rustc.
+# Don't move this aport out of the testing repo until it can be built with
+# our rust!
+makedepends="
+ cargo-auditable
+ gtk+3.0-dev
+ gtk-layer-shell-dev
+ rustup
+ "
+subpackages="$pkgname-dbg"
+source="https://github.com/elkowar/eww/archive/refs/tags/v$pkgver/eww-$pkgver.tar.gz
+ update-cargo-lock.patch
+ "
+
+export CARGO_HOME="$srcdir/.cargo"
+export RUSTUP_HOME="$srcdir/.rustup"
+export PATH="$CARGO_HOME/bin:$PATH"
+
+export RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=-crt-static"
+# Reduce binary size (7.1 -> 4.1 MiB for 0.2.0_git20220215).
+
+prepare() {
+ default_prepare
+
+ rustup-init \
+ --target "$CARCH-unknown-linux-musl" \
+ --default-toolchain nightly \
+ --profile minimal \
+ --no-modify-path \
+ -y
+
+ cargo fetch --target="$CARCH-unknown-linux-musl" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --no-default-features --features=wayland
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m755 target/release/eww -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+1979251848fb21dac60b60fb149481aea3201c62a56b34cd2d5fbc8da53a4e9f019db393c9bcd31936f4cd739de295110217b5ecfef734b35d0f1c5cb785e646 eww-0.4.0.tar.gz
+da52a2dfa5e87a0b4c95a118ea1c1f61757ec75a01c79d4f194728eb9c9580fc4be3984205a00bd15977a5530b49bbfdfba57cb7645718b00b9f87fe21f0a445 update-cargo-lock.patch
+"
diff --git a/testing/eww/update-cargo-lock.patch b/testing/eww/update-cargo-lock.patch
new file mode 100644
index 00000000000..2a4748e1848
--- /dev/null
+++ b/testing/eww/update-cargo-lock.patch
@@ -0,0 +1,11 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -406,7 +406,7 @@
+
+ [[package]]
+ name = "eww"
+-version = "0.3.0"
++version = "0.4.0"
+ dependencies = [
+ "anyhow",
+ "bincode",
diff --git a/testing/exabgp/APKBUILD b/testing/exabgp/APKBUILD
new file mode 100644
index 00000000000..0f242aa9dff
--- /dev/null
+++ b/testing/exabgp/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=exabgp
+pkgver=4.2.21
+pkgrel=4
+pkgdesc="BGP swiss army knife of networking"
+url="https://github.com/Exa-Networks/exabgp"
+arch="noarch"
+license="BSD-3-Clause"
+depends="py3-six py3-parsing py3-bitstring"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-pyc"
+pkgusers="exabgp"
+pkggroups="exabgp"
+source="exabgp-$pkgver.tar.gz::https://github.com/Exa-Networks/exabgp/archive/refs/tags/$pkgver.tar.gz
+ exabgp.initd
+ exabgp.confd
+
+ unvendor.patch
+ "
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$builddir"/build/lib/ pytest
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir/"
+ rm -rf "$pkgdir"/usr/etc
+ install -Dm644 -t "$pkgdir"/etc/exabgp/ "$builddir"/etc/exabgp/*.conf
+ install -Dm644 -t "$pkgdir"/etc/exabgp/ "$builddir"/etc/exabgp/*.run
+ install -Dm644 -t "$pkgdir"/etc/exabgp/run "$builddir"/etc/exabgp/run/*
+ install -Dm644 "$builddir"/doc/man/exabgp.1 "$pkgdir"/usr/share/man/man1/exabgp.1
+ install -Dm644 "$builddir"/doc/man/exabgp.conf.5 "$pkgdir"/usr/share/man/man5/exabgp.conf.5
+ install -Dm755 "$srcdir"/exabgp.initd "$pkgdir"/etc/init.d/exabgp
+ install -Dm644 "$srcdir"/exabgp.confd "$pkgdir"/etc/conf.d/exabgp
+ PYTHONPATH="$builddir"/build/lib "$pkgdir"/usr/bin/exabgp --fi | sed "s/nobody/$pkgusers/g" > "$pkgdir"/etc/exabgp/exabgp.env
+}
+
+sha512sums="
+0efc7143191e8b557297e9329354c01e2418e0c4c45753941eba3a1f063e77d17a0efa7a14a3062764e45e709f0598f491c10e2c02e751590bb7c0943b61932b exabgp-4.2.21.tar.gz
+0a6ee4116632d1d869216804d6ace385238347a871cf243b29cf3a77ed04366395ef4fdc28e749daf8f28f048e6eb8fd80bc82e74ad1e5f80b782548d7746a34 exabgp.initd
+32d54bfd02f13d75c5d544141a4e3569ae873ab1ea77cb697a4475f18329c5b4e15a59ab0345b77a20bdfbe60e8322eb373af1f8530f96d5be07f4fb69ccba80 exabgp.confd
+3abce29e126ee7706cdd0d2c97593127c1184522b606353332f07872524514e119b884991d9439e0db6e892a69017bcc696f57f462416ea818bf8a8c4c3a0ca6 unvendor.patch
+"
diff --git a/testing/exabgp/exabgp.confd b/testing/exabgp/exabgp.confd
new file mode 100644
index 00000000000..6a1c03b7b4b
--- /dev/null
+++ b/testing/exabgp/exabgp.confd
@@ -0,0 +1,3 @@
+exabgp_user=exabgp
+exabgp_group=exabgp
+exabgp_conf_file=/etc/exabgp/exabgp.conf
diff --git a/testing/exabgp/exabgp.initd b/testing/exabgp/exabgp.initd
new file mode 100644
index 00000000000..1b6cfb44732
--- /dev/null
+++ b/testing/exabgp/exabgp.initd
@@ -0,0 +1,61 @@
+#!/sbin/openrc-run
+
+command="/usr/bin/exabgp"
+command_args="/etc/exabgp/exabgp.conf"
+command_background="true"
+pidfile="/var/run/${RC_SVCNAME}.pid"
+
+extra_started_commands="reload"
+extra_stopped_commands="setup"
+
+description="exabgp daemon"
+description_reload="Reload exabgp using USR1"
+
+
+depend() {
+ use net
+}
+
+start_pre() {
+ required_files="/etc/exabgp/exabgp.env /etc/exabgp/exabgp.conf"
+ for file in $required_files; do
+ case "$file" in
+ *.env)
+ if [ ! -f "$file" ]; then
+ eerror "env file ${file} missing run '/etc/init.d/exabgp setup' to create the file"
+ exit 1
+ fi
+ ;;
+ *.conf)
+ if [ ! -f "$file" ]; then
+ eerror "conf file ${file} does not exist, create manually"
+ exit 1
+ fi
+ ;;
+ *)
+ ;;
+ esac
+ done
+ mkdir /run/exabgp 2>/dev/null
+ if [ ! -p /run/exabgp/exabgp.in ]; then
+ mkfifo /run/exabgp/exabgp.in 2>/dev/null
+ fi
+ if [ ! -p /run/exabgp/exabgp.out ]; then
+ mkfifo /run/exabgp/exabgp.out 2>/dev/null
+ fi
+}
+
+reload() {
+ ebegin "Reloading $name"
+ start-stop-daemon --signal USR1 --pidfile "$pidfile"
+ eend ${?}
+}
+
+setup() {
+ ebegin "Creating /etc/exabgp/exabgp.env with defaults"
+ if [ ! -f "/etc/exabgp/exabgp.env" ]; then
+ "$command" --fi | sed "s/nobody/$exabgp_user/g" > /etc/exabgp/exabgp.env
+ eend ${?}
+ fi
+ eend ${?}
+}
diff --git a/testing/exabgp/exabgp.pre-install b/testing/exabgp/exabgp.pre-install
new file mode 100644
index 00000000000..48e3b8f817a
--- /dev/null
+++ b/testing/exabgp/exabgp.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S exabgp 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G exabgp -g exabgp exabgp 2>/dev/null
+
+exit 0
diff --git a/testing/exabgp/unvendor.patch b/testing/exabgp/unvendor.patch
new file mode 100644
index 00000000000..40a54868ff4
--- /dev/null
+++ b/testing/exabgp/unvendor.patch
@@ -0,0 +1,414 @@
+diff --git a/dev/profile/pyprof2calltree.py b/dev/profile/pyprof2calltree.py
+index fc73a1d..668e602 100755
+--- a/dev/profile/pyprof2calltree.py
++++ b/dev/profile/pyprof2calltree.py
+@@ -38,3 +38,3 @@ import tempfile
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/application/bgp.py b/lib/exabgp/application/bgp.py
+index 0780b47..275bc5c 100755
+--- a/lib/exabgp/application/bgp.py
++++ b/lib/exabgp/application/bgp.py
+@@ -24,3 +24,3 @@ from exabgp.reactor.loop import Reactor
+
+-from exabgp.vendoring import docopt
++import docopt
+
+@@ -39,3 +39,3 @@ def __exit(memory, code):
+ if memory:
+- from exabgp.vendoring import objgraph
++ import objgraph
+
+@@ -422,3 +422,3 @@ def run(env, comment, configurations, root, validate, pid=0):
+ finally:
+- from exabgp.vendoring import lsprofcalltree
++ import lsprofcalltree
+
+diff --git a/lib/exabgp/application/cli.py b/lib/exabgp/application/cli.py
+index ab5a10d..e0ba811 100644
+--- a/lib/exabgp/application/cli.py
++++ b/lib/exabgp/application/cli.py
+@@ -26,3 +26,3 @@ from exabgp.reactor.api.response.answer import Answer
+
+-from exabgp.vendoring import docopt
++import docopt
+
+diff --git a/lib/exabgp/application/healthcheck.py b/lib/exabgp/application/healthcheck.py
+index a2d0789..8705785 100644
+--- a/lib/exabgp/application/healthcheck.py
++++ b/lib/exabgp/application/healthcheck.py
+@@ -59,4 +59,4 @@ logger = logging.getLogger("healthcheck")
+ # Python 3.3+ or backport
+-from exabgp.vendoring.ipaddress import ip_network # pylint: disable=F0401
+-from exabgp.vendoring.ipaddress import ip_address # pylint: disable=F0401
++from ipaddress import ip_network # pylint: disable=F0401
++from ipaddress import ip_address # pylint: disable=F0401
+
+diff --git a/lib/exabgp/bgp/message/open/capability/capabilities.py b/lib/exabgp/bgp/message/open/capability/capabilities.py
+index 210542c..1a7962d 100644
+--- a/lib/exabgp/bgp/message/open/capability/capabilities.py
++++ b/lib/exabgp/bgp/message/open/capability/capabilities.py
+@@ -9,3 +9,3 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/bgp/message/open/capability/graceful.py b/lib/exabgp/bgp/message/open/capability/graceful.py
+index 8f87693..2950ff1 100644
+--- a/lib/exabgp/bgp/message/open/capability/graceful.py
++++ b/lib/exabgp/bgp/message/open/capability/graceful.py
+@@ -12,3 +12,3 @@ from struct import unpack
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/bgp/message/update/attribute/attributes.py b/lib/exabgp/bgp/message/update/attribute/attributes.py
+index d0f1a80..04c56e0 100644
+--- a/lib/exabgp/bgp/message/update/attribute/attributes.py
++++ b/lib/exabgp/bgp/message/update/attribute/attributes.py
+@@ -32,3 +32,3 @@ from exabgp.logger import LazyAttribute
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
+index c21b570..49bfc86 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/admingroup.py
+@@ -8,3 +8,3 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.notification import Notify
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
+index c57ba19..0fe5ba1 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/igpmetric.py
+@@ -9,5 +9,5 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+ from struct import unpack
+-from exabgp.vendoring import six
++import six
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.notification import Notify
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
+index b6dc588..2276a09 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradj.py
+@@ -10,6 +10,6 @@ import json
+ from struct import unpack
+-from exabgp.vendoring import six
++import six
+ from exabgp.util import hexstring
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE, LsGenericFlags
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
+index 4ec1b82..0d6255a 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/link/sradjlan.py
+@@ -10,6 +10,6 @@ import json
+ from struct import unpack
+-from exabgp.vendoring import six
++import six
+ from exabgp.util import hexstring
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.protocol.iso import ISO
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py b/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
+index c1ae183..d596a76 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/linkstate.py
+@@ -13,3 +13,3 @@ from struct import unpack
+ from exabgp.util import concat_strs
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.notification import Notify
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py b/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
+index 7644105..f4ba7d4 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/isisarea.py
+@@ -8,3 +8,3 @@ Copyright (c) 2014-2017 Exa Networks. All rights reserved.
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py b/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
+index 0afe8f5..572fd15 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/sralgo.py
+@@ -10,3 +10,3 @@ import json
+ from struct import unpack
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py b/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
+index c5ef17c..ab8662c 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/node/srcap.py
+@@ -11,3 +11,3 @@ from struct import unpack
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.update.attribute.bgpls.linkstate import LINKSTATE, LsGenericFlags
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
+index be76423..686c009 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/prefixmetric.py
+@@ -10,3 +10,3 @@ from struct import unpack
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.notification import Notify
+diff --git a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
+index bb991e5..7f791dc 100644
+--- a/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
++++ b/lib/exabgp/bgp/message/update/attribute/bgpls/prefix/srprefix.py
+@@ -10,6 +10,6 @@ import json
+ from struct import unpack
+-from exabgp.vendoring import six
++import six
+ from exabgp.util import hexstring
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.notification import Notify
+diff --git a/lib/exabgp/bgp/message/update/attribute/mprnlri.py b/lib/exabgp/bgp/message/update/attribute/mprnlri.py
+index 95b8da1..871f8a8 100644
+--- a/lib/exabgp/bgp/message/update/attribute/mprnlri.py
++++ b/lib/exabgp/bgp/message/update/attribute/mprnlri.py
+@@ -11,3 +11,3 @@ from struct import unpack
+
+-from exabgp.vendoring import six
++import six
+ from exabgp.util import concat_bytes
+diff --git a/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py b/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
+index 9d7c5a6..b529f2c 100644
+--- a/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
++++ b/lib/exabgp/bgp/message/update/attribute/sr/prefixsid.py
+@@ -10,3 +10,3 @@ import binascii
+ from struct import unpack
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/bgp/message/update/attribute/sr/srgb.py b/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
+index 540d23e..c56ea59 100644
+--- a/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
++++ b/lib/exabgp/bgp/message/update/attribute/sr/srgb.py
+@@ -11,3 +11,3 @@ from struct import pack
+ from exabgp.util import concat_bytes
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+ from exabgp.bgp.message.notification import Notify
+diff --git a/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py b/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
+index 706fe86..23d62b3 100644
+--- a/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
++++ b/lib/exabgp/bgp/message/update/nlri/bgpls/tlvs/ipreach.py
+@@ -12,3 +12,3 @@ from struct import unpack
+ import math
+-from exabgp.vendoring import ipaddress
++import ipaddress
+
+diff --git a/lib/exabgp/bgp/message/update/nlri/vpls.py b/lib/exabgp/bgp/message/update/nlri/vpls.py
+index 0c9e329..033d254 100644
+--- a/lib/exabgp/bgp/message/update/nlri/vpls.py
++++ b/lib/exabgp/bgp/message/update/nlri/vpls.py
+@@ -12,3 +12,3 @@ from struct import unpack
+ from struct import pack
+-from exabgp.vendoring import six
++import six
+ from exabgp.util import concat_bytes
+diff --git a/lib/exabgp/bgp/neighbor.py b/lib/exabgp/bgp/neighbor.py
+index dd26570..461a25a 100644
+--- a/lib/exabgp/bgp/neighbor.py
++++ b/lib/exabgp/bgp/neighbor.py
+@@ -18,3 +18,3 @@ try:
+ except ImportError:
+- from exabgp.vendoring.counter import Counter
++ from counter import Counter
+
+diff --git a/lib/exabgp/configuration/configuration.py b/lib/exabgp/configuration/configuration.py
+index f84a25d..0688be6 100644
+--- a/lib/exabgp/configuration/configuration.py
++++ b/lib/exabgp/configuration/configuration.py
+@@ -12,3 +12,3 @@ import sys
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/configuration/core/scope.py b/lib/exabgp/configuration/core/scope.py
+index 70352b8..cb2aed7 100644
+--- a/lib/exabgp/configuration/core/scope.py
++++ b/lib/exabgp/configuration/core/scope.py
+@@ -13,3 +13,3 @@ import pprint
+ # from copy import deepcopy
+-from exabgp.vendoring import six
++import six
+ from exabgp.protocol.ip import IP
+diff --git a/lib/exabgp/configuration/core/tokeniser.py b/lib/exabgp/configuration/core/tokeniser.py
+index 9164bba..90273c7 100644
+--- a/lib/exabgp/configuration/core/tokeniser.py
++++ b/lib/exabgp/configuration/core/tokeniser.py
+@@ -12,3 +12,3 @@ from exabgp.protocol.family import AFI
+ from collections import deque
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/configuration/environment.py b/lib/exabgp/configuration/environment.py
+index 20e98d3..cde47fb 100644
+--- a/lib/exabgp/configuration/environment.py
++++ b/lib/exabgp/configuration/environment.py
+@@ -317,3 +317,3 @@ class environment(object):
+
+-from exabgp.vendoring.six.moves import configparser as ConfigParser
++from six.moves import configparser as ConfigParser
+ from exabgp.util.hashtable import HashTable
+diff --git a/lib/exabgp/protocol/iso/__init__.py b/lib/exabgp/protocol/iso/__init__.py
+index fb483d3..fa6a5f2 100644
+--- a/lib/exabgp/protocol/iso/__init__.py
++++ b/lib/exabgp/protocol/iso/__init__.py
+@@ -12,3 +12,3 @@ Copyright (c) 2009-2017 Exa Networks. All rights reserved.
+
+-from exabgp.vendoring.bitstring import BitArray
++from bitstring import BitArray
+
+diff --git a/lib/exabgp/reactor/api/response/json.py b/lib/exabgp/reactor/api/response/json.py
+index a1fb6e5..6467fa2 100755
+--- a/lib/exabgp/reactor/api/response/json.py
++++ b/lib/exabgp/reactor/api/response/json.py
+@@ -16,3 +16,3 @@ import signal
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/reactor/asynchronous.py b/lib/exabgp/reactor/asynchronous.py
+index 837a4ff..6f5bcc2 100644
+--- a/lib/exabgp/reactor/asynchronous.py
++++ b/lib/exabgp/reactor/asynchronous.py
+@@ -12,3 +12,3 @@ from collections import deque
+ from exabgp.logger import Logger
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/reactor/keepalive.py b/lib/exabgp/reactor/keepalive.py
+index 3ad9937..f986e9a 100644
+--- a/lib/exabgp/reactor/keepalive.py
++++ b/lib/exabgp/reactor/keepalive.py
+@@ -8,3 +8,3 @@ Copyright (c) 2017-2017 Exa Networks. All rights reserved.
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/reactor/network/outgoing.py b/lib/exabgp/reactor/network/outgoing.py
+index 892342d..94d9180 100644
+--- a/lib/exabgp/reactor/network/outgoing.py
++++ b/lib/exabgp/reactor/network/outgoing.py
+@@ -2,3 +2,3 @@ import time
+
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/reactor/peer.py b/lib/exabgp/reactor/peer.py
+index e1ffb7c..9ae1029 100644
+--- a/lib/exabgp/reactor/peer.py
++++ b/lib/exabgp/reactor/peer.py
+@@ -13,3 +13,3 @@ from collections import defaultdict
+ # import traceback
+-from exabgp.vendoring import six
++import six
+ from exabgp.util import ordinal
+diff --git a/lib/exabgp/reactor/protocol.py b/lib/exabgp/reactor/protocol.py
+index 1c4b038..fef51ad 100644
+--- a/lib/exabgp/reactor/protocol.py
++++ b/lib/exabgp/reactor/protocol.py
+@@ -11,3 +11,3 @@ import os
+
+-from exabgp.vendoring import six
++import six
+ import traceback
+diff --git a/lib/exabgp/rib/outgoing.py b/lib/exabgp/rib/outgoing.py
+index a360bad..90d3b93 100644
+--- a/lib/exabgp/rib/outgoing.py
++++ b/lib/exabgp/rib/outgoing.py
+@@ -23,3 +23,3 @@ if sys.version_info[0] >= 3 and sys.version_info[1] >= 6:
+ else:
+- from exabgp.vendoring.ordereddict import OrderedDict as RIBdict
++ from ordereddict import OrderedDict as RIBdict
+
+diff --git a/lib/exabgp/util/coroutine.py b/lib/exabgp/util/coroutine.py
+index a54b0bd..7e6bbbb 100644
+--- a/lib/exabgp/util/coroutine.py
++++ b/lib/exabgp/util/coroutine.py
+@@ -10,3 +10,3 @@ License: 3-clause BSD. (See the COPYRIGHT file)
+ from functools import wraps
+-from exabgp.vendoring import six
++import six
+
+diff --git a/lib/exabgp/util/trace.py b/lib/exabgp/util/trace.py
+index a5a3a91..f23acb2 100644
+--- a/lib/exabgp/util/trace.py
++++ b/lib/exabgp/util/trace.py
+@@ -11,3 +11,3 @@ import traceback
+
+-from exabgp.vendoring.six.moves import StringIO
++from six.moves import StringIO
+
+diff --git a/lib/exabgp/vendoring/cmd2.py b/lib/exabgp/vendoring/cmd2.py
+index 9b179ec..d7e5c38 100644
+--- a/lib/exabgp/vendoring/cmd2.py
++++ b/lib/exabgp/vendoring/cmd2.py
+@@ -40,6 +40,6 @@ import platform
+ import copy
+-from exabgp.vendoring import six
++import six
+ from code import InteractiveConsole, InteractiveInterpreter
+ from optparse import make_option
+-from exabgp.vendoring import pyparsing
++import pyparsing
+
+diff --git a/lib/exabgp/vendoring/six.py b/lib/exabgp/vendoring/six.py
+index 20e866a..218e9d6 100644
+--- a/lib/exabgp/vendoring/six.py
++++ b/lib/exabgp/vendoring/six.py
+@@ -162,3 +162,3 @@ class _SixMetaPathImporter(object):
+ """
+- A meta path importer to from exabgp.vendoring import six.moves and its submodules.
++ A meta path importer to import six.moves and its submodules.
+
+diff --git a/qa/tests/cache_test.py b/qa/tests/cache_test.py
+index 3a8dc94..721f85c 100755
+--- a/qa/tests/cache_test.py
++++ b/qa/tests/cache_test.py
+@@ -14,5 +14,5 @@ import time
+ from exabgp.util.cache import Cache
+-from exabgp.vendoring import six
++import six
+
+-from exabgp.vendoring.six.moves import xrange
++from six.moves import xrange
+
+diff --git a/qa/tests/connection.py b/qa/tests/connection.py
+index 1586daf..8092ea5 100755
+--- a/qa/tests/connection.py
++++ b/qa/tests/connection.py
+@@ -17,3 +17,3 @@ import unittest
+ from exabgp.util.od import od
+-from exabgp.vendoring import six
++import six
+
+diff --git a/qa/tests/protocol.py b/qa/tests/protocol.py
+index 67e8e21..31c8a03 100755
+--- a/qa/tests/protocol.py
++++ b/qa/tests/protocol.py
+@@ -25,4 +25,4 @@ from exabgp.bgp.neighbor import Neighbor
+
+-from exabgp.vendoring import six
+-from exabgp.vendoring.six.moves import StringIO
++import six
++from six.moves import StringIO
+
diff --git a/testing/exercism/APKBUILD b/testing/exercism/APKBUILD
new file mode 100644
index 00000000000..2ff0539b671
--- /dev/null
+++ b/testing/exercism/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=exercism
+pkgver=3.2.0
+pkgrel=4
+pkgdesc="Command-line client for exercism.io"
+url="https://github.com/exercism/cli"
+arch="all"
+license="MIT"
+makedepends="go"
+options="!check"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/exercism/cli/archive/v$pkgver.tar.gz"
+builddir="$srcdir"/cli-$pkgver
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+prepare() {
+ default_prepare
+
+ go mod edit -replace=github.com/fsnotify/fsnotify=github.com/fsnotify/fsnotify@v1.5.1
+ go get -d github.com/fsnotify/fsnotify@v1.5.1
+}
+
+build() {
+ go build -o bin/exercism exercism/main.go
+}
+
+package() {
+ install -Dm755 bin/exercism "$pkgdir"/usr/bin/exercism
+
+ install -Dm644 shell/exercism_completion.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 shell/exercism.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 shell/exercism_completion.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+1d874652caf9845ab2f2e9da96083b29e903f4ba3de3c9dd16185a291d3cb5e224fe2264129fd47ed3eed2918f366b7d96e6aeaafb2db8a94cc7e39556756b46 exercism-3.2.0.tar.gz
+"
diff --git a/testing/exfatprogs/APKBUILD b/testing/exfatprogs/APKBUILD
deleted file mode 100644
index 323ad5460af..00000000000
--- a/testing/exfatprogs/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=exfatprogs
-# NOTE: keep in testing until kernel in main is upgraded to 5.7 and up
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="exfat filesystem userspace tools, mkfs and fsck"
-url="https://github.com/exfatprogs/exfatprogs"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="autoconf libtool automake linux-headers"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/exfatprogs/exfatprogs/archive/$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- -libdir=/usr/lib \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="faafab72e126c10be2f8d52bc1c81d0d9b1a24145f56ef50698eb84261e2111e8db1ebb2851e7cd826577e060a7c6a4f16337de4bca54d11e0aa3658a2677df3 exfatprogs-1.0.3.tar.gz"
diff --git a/testing/extrace/APKBUILD b/testing/extrace/APKBUILD
new file mode 100644
index 00000000000..f0c9d8e8cbd
--- /dev/null
+++ b/testing/extrace/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=extrace
+pkgver=0.9
+pkgrel=0
+pkgdesc="Trace exec() calls system-wide"
+url="https://github.com/leahneukirchen/extrace"
+arch="all"
+license="BSD-2-Clause AND GPL-2.0-or-later"
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="https://github.com/leahneukirchen/extrace/archive/v$pkgver/extrace-$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+}
+
+sha512sums="
+dfc2abaccf9e24428b1e3eacb12d11bb304d6a854f11d0be546d536369f8e0e9c81d52fd2a8f242f7d342c121693e7e3cadf5f9650cff5e81232b0853200b1bc extrace-0.9.tar.gz
+"
diff --git a/testing/extremetuxracer/APKBUILD b/testing/extremetuxracer/APKBUILD
index d78d33f5870..52353b721f1 100644
--- a/testing/extremetuxracer/APKBUILD
+++ b/testing/extremetuxracer/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname=extremetuxracer
-pkgver=0.8.0
+pkgver=0.8.3
pkgrel=0
pkgdesc="Downhill racing game starring Tux"
-url="https://sourceforge.net/projects/extremetuxracer"
+url="https://sourceforge.net/projects/extremetuxracer/"
arch="all"
license="GPL-2.0-only"
makedepends="sfml-dev glu-dev freetype-dev"
@@ -24,4 +24,7 @@ check() {
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="ff1e4dab4d2e72960eb8dd9643f0150255fe4196c2b25e67dd0d266a89f0b247ce76f818927cda35bbd669972f31f79b1461ccb1b2c7aeeb8d70aa39ed7bfd6d etr-0.8.0.tar.xz"
+
+sha512sums="
+75b6f2b4d7260216fb8b5bee1412ed929712e6de04a3b32ecf65ad747c6bff30e5eb5bedde24dca0afaec816c847860d9c589c66cdff08aa4bdcec224e727f1f etr-0.8.3.tar.xz
+"
diff --git a/testing/extundelete/APKBUILD b/testing/extundelete/APKBUILD
index 5127da58ad8..625466be7ce 100644
--- a/testing/extundelete/APKBUILD
+++ b/testing/extundelete/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=extundelete
pkgver=0.2.4
-pkgrel=0
+pkgrel=1
pkgdesc="Utility for recovering deleted files from ext2, ext3 or ext4 partitions by parsing the journal"
-url="http://extundelete.sourceforge.net"
+url="https://extundelete.sourceforge.net/"
arch="all"
license="GPL-2.0"
makedepends="e2fsprogs-dev"
diff --git a/testing/f3/APKBUILD b/testing/f3/APKBUILD
index c4668433142..fd57efae833 100644
--- a/testing/f3/APKBUILD
+++ b/testing/f3/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="f3"
-pkgver="7.2"
-pkgrel=0
-pkgdesc="F3 - Fight Flash Fraud "
+pkgname=f3
+pkgver=8.0
+pkgrel=1
+pkgdesc="F3 - Fight Flash Fraud"
url="http://oss.digirati.com.br/f3/"
arch="all"
-license="GPL-3.0"
+license="GPL-3.0-only"
options="!check" # no test provided
makedepends="argp-standalone eudev-dev parted-dev linux-headers"
subpackages="$pkgname-doc $pkgname-extra"
@@ -35,4 +35,4 @@ extra() {
done
}
-sha512sums="4e41fca8b02dbd6bfaae01237a47573916aefe47f5aafc864618d708568e32ec122390c03af24d89caaf03de692fa374e87747b07a8546eaf8cafd57887a61ac f3-7.2.tar.gz"
+sha512sums="4c929eb3ad56ffefff7ae3266148e2000e14f01553c1960ddbe77a164df18dda6f32980140b7568e32a3165f9362e4f43c990a946a62b15b06720d6f8b87f924 f3-8.0.tar.gz"
diff --git a/testing/f_scripts/APKBUILD b/testing/f_scripts/APKBUILD
new file mode 100644
index 00000000000..f068478fdcb
--- /dev/null
+++ b/testing/f_scripts/APKBUILD
@@ -0,0 +1,99 @@
+# Maintainer: Bobby Hamblin <hamblingreen@hotmail.com>
+# Contributor: Miles Alan <m@milesalan.com>
+pkgname=f_scripts
+pkgver=0.5
+pkgrel=2
+pkgdesc="Framebufferphone prompt-driven scripts which are compatible with fbp"
+url="http://git.sr.ht/~hamblingreen/f_scripts"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="oil"
+source="$pkgname-$pkgver.tar.gz::http://git.sr.ht/~hamblingreen/f_scripts/archive/$pkgver.tar.gz"
+options="!check" # Has no tests
+subpackages="
+ $pkgname-f_audio
+ $pkgname-f_files
+ $pkgname-f_game
+ $pkgname-f_maps
+ $pkgname-f_networks
+ $pkgname-f_phone
+ $pkgname-f_rss
+ $pkgname-f_theme
+ $pkgname-f_timer
+ $pkgname-f_web
+ $pkgname-f_youtube
+"
+
+package() {
+ mkdir -p "$pkgdir/usr/bin"
+}
+
+f_audio() {
+ pkgdesc="$pkgname - f_audio script, Adjust audio output devices and volume"
+ depends="$depends alsa-utils"
+ install -Dm755 "$builddir"/scripts/f_audio "$subpkgdir/usr/bin/f_audio"
+}
+
+f_files() {
+ pkgdesc="$pkgname - f_files script, Browse files on your filesystem"
+ depends="$depends vim mpv fbida-fbi fbida-fbgs"
+ install -Dm755 "$builddir"/scripts/f_files "$subpkgdir/usr/bin/f_files"
+}
+
+f_game() {
+ pkgdesc="$pkgname - f_game script, Play classic console games"
+ depends="$depends moon-buggy"
+ install -Dm755 "$builddir"/scripts/f_game "$subpkgdir/usr/bin/f_game"
+}
+
+f_maps() {
+ pkgdesc="$pkgname - f_maps script, Browse OSM maps using mepo (via SDL directfb)."
+ depends="$depends mepo tslib directfb mesa-gl kbd vis"
+ install -Dm755 "$builddir"/scripts/f_maps "$subpkgdir/usr/bin/f_maps"
+}
+
+f_networks() {
+ pkgdesc="$pkgname - f_networks script, Allows managing gsm/wpa connections via underlying nmcli calls"
+ depends="$depends networkmanager dnsmasq networkmanager networkmanager-cli networkmanager-openrc networkmanager-tui networkmanager-wifi networkmanager-wwan"
+ install -Dm755 "$builddir"/scripts/f_networks "$subpkgdir/usr/bin/f_networks"
+}
+
+f_phone() {
+ pkgdesc="$pkgname - f_phone script, Manages phone calls / text messages using modemmanager"
+ depends="$depends polkit modemmanager linuxconsoletools pn"
+ install -Dm755 "$builddir"/scripts/f_phone "$subpkgdir/usr/bin/f_phone"
+}
+
+f_rss() {
+ pkgdesc="$pkgname - f_rss script, Fetches data from RSS via sfeed and allows you to view via sfeed_curses"
+ depends="$depends sfeed w3m"
+ install -Dm755 "$builddir"/scripts/f_rss "$subpkgdir/usr/bin/f_rss"
+}
+
+f_theme() {
+ pkgdesc="$pkgname - f_theme script, Change the framebuffer theme (font & colors)"
+ depends="$depends terminus-font util-linux-misc"
+ install -Dm755 "$builddir"/scripts/f_theme "$subpkgdir/usr/bin/f_theme"
+}
+
+f_timer() {
+ pkgdesc="$pkgname - f_timer script, Set a countdown timer to be alerted"
+ depends="$depends linuxconsoletools util-linux-misc"
+ install -Dm755 "$builddir"/scripts/f_timer "$subpkgdir/usr/bin/f_timer"
+}
+
+f_web() {
+ pkgdesc="$pkgname - f_web script, Select a website and browse via w3m or netsurf"
+ depends="$depends w3m netsurf-framebuffer tslib"
+ install -Dm755 "$builddir"/scripts/f_web "$subpkgdir/usr/bin/f_web"
+}
+
+f_youtube() {
+ pkgdesc="$pkgname - f_youtube script, Listen or view youtube videos via mpv"
+ depends="$depends codemadness-frontends mpv youtube-dl"
+ install -Dm755 "$builddir"/scripts/f_youtube "$subpkgdir/usr/bin/f_youtube"
+}
+
+sha512sums="
+2e07ccf037835bdfc7f6528cb73a270098e94a81dab9cec2efc8641aa9a398d26a6d010f3ecdb0a4948b2865627e846315d50f0c27e836b526ff130394b69c0f f_scripts-0.5.tar.gz
+"
diff --git a/testing/fabric/APKBUILD b/testing/fabric/APKBUILD
index 4e169b86e43..f15b8e017ec 100644
--- a/testing/fabric/APKBUILD
+++ b/testing/fabric/APKBUILD
@@ -2,23 +2,39 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=fabric
_pkgname=fabric
-pkgver=2.5.0
+pkgver=3.2.2
pkgrel=1
-pkgdesc="A simple pythonic remote deployment tool"
+pkgdesc="simple pythonic remote deployment tool"
options="!check" # Fails to find 'fabfile' module
url="https://www.fabfile.org/"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-paramiko py3-invoke py3-setuptools"
+depends="
+ py3-decorator
+ py3-deprecated
+ py3-invoke
+ py3-paramiko
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
checkdepends="py3-pytest py3-mock"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
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="2dd3b0a6b7c21cce07439bf9ea1b869bac282cfd0abf502d297163ff56b46975b12ab4dbe262c6df89e0e7f980847b88286d0eccbdab7003b643443eb9046ba7 fabric-2.5.0.tar.gz"
+sha512sums="
+1af5526d5af2e55eaf76b1a11eb359b32d86f31201584a2e8b14443ae42807a11c218c2edabafa3eb91993ca7d9d78f705717ee875563ac5ff4d8dbc8a42ee4e fabric-3.2.2.tar.gz
+"
diff --git a/testing/fakeroot-tcp/APKBUILD b/testing/fakeroot-tcp/APKBUILD
new file mode 100644
index 00000000000..7d5448a7c3e
--- /dev/null
+++ b/testing/fakeroot-tcp/APKBUILD
@@ -0,0 +1,66 @@
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=fakeroot-tcp
+pkgver=1.32.1
+pkgrel=1
+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"
+provides="fakeroot"
+provider_priority=1
+checkdepends="bash"
+makedepends_build="libtool autoconf automake"
+makedepends_host="libcap-dev acl-dev linux-headers"
+makedepends="$makedepends_build $makedepends_host"
+builddir="$srcdir/fakeroot-$pkgver"
+source="https://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_$pkgver.orig.tar.gz
+ fakeroot-no64.patch
+ fakeroot-stdint.patch
+ xstatjunk.patch
+ fix-shell-in-fakeroot.patch
+ fakeroot-skip-ipc-sanity-check.patch
+ do-not-redefine-id_t.patch
+ fix-format.patch
+ "
+# compared to non-tcp, this one seems to fail
+options="!check"
+
+prepare() {
+ default_prepare
+ CONFIG_SHELL=/bin/sh ./bootstrap
+}
+
+build() {
+ # musl does not have _STAT_VER, it's really not used for
+ # anything, so define it as zero (just like uclibc does)
+ export CFLAGS="$CFLAGS -D_STAT_VER=0 $CFLAGS"
+
+ CONFIG_SHELL=/bin/sh ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static \
+ --with-ipc=tcp
+
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -r "$pkgdir"/usr/share/man
+}
+
+sha512sums="
+fe8263ca9b90e4df253311e5331721a8783260a1058b307d10ffbde47724fc24df584806b17af4477be47d90dc553abe6a476e02cf8ce2aebdd94357ff7d7f09 fakeroot_1.32.1.orig.tar.gz
+7a832e6bed3838c7c488e0e12ba84b8d256e84bbb06d6020247452a991de505fa5c6bd7bcb84dce8753eb242e0fcab863b5461301cd56695f2b003fe8d6ff209 fakeroot-no64.patch
+ed7a58b0d201139545420f9e5429f503c00e00f36dea84473e77ea99b23bb8d421da1a8a8ce98ff90e72e378dff4cb9ea3c1a863a969899a5f50dfac3b9c5fac fakeroot-stdint.patch
+70bf7609a5951326ac7372a252a15516f96a1ee6e458a659b16f0e4f1e2db6556482c71178d4b2f10e5ebdc0abfb7a3cc97c9878984e60cdf6e7d7281790e1fc xstatjunk.patch
+47593b3d86a66bab832c50a1d967cdc70e42bbd9ef4436f18140067ccefdd6418516e5157102c67e604f3623ed1b9f4fe1423fc5dad4dfe5356fc250c12818a7 fix-shell-in-fakeroot.patch
+9a3faf924891deb36fab8f200489ad6154df262735b563dea46283afcdc83d12d32b00db33848f2a5c52d0b4422942863247577634e37b9d693f2b3a398a0f1d fakeroot-skip-ipc-sanity-check.patch
+e07162ec511c38261ad2540864f922ee03f5daa1d5d23729879c9993d62b2ffebc27eab29f3eb522ddb10b052241e58b67265914ef9100b1911948e874bf53a1 do-not-redefine-id_t.patch
+481fac0b2b7388fbf8c6140311da856df1b8facfe331d04f2bc6275c766b8a81c1e07971ffd131aaf8416b8cda1f52fa4ed6d5f6ba913f69efe119288c016d78 fix-format.patch
+"
diff --git a/testing/fakeroot-tcp/do-not-redefine-id_t.patch b/testing/fakeroot-tcp/do-not-redefine-id_t.patch
new file mode 100644
index 00000000000..4d3bab190f8
--- /dev/null
+++ b/testing/fakeroot-tcp/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/testing/fakeroot-tcp/fakeroot-no64.patch b/testing/fakeroot-tcp/fakeroot-no64.patch
new file mode 100644
index 00000000000..ff95f96a9bf
--- /dev/null
+++ b/testing/fakeroot-tcp/fakeroot-no64.patch
@@ -0,0 +1,17 @@
+--- a/libfakeroot.c
++++ b/libfakeroot.c
+@@ -81,12 +81,14 @@
+ #define SEND_STAT64(a,b,c) send_stat64(a,b,c)
+ #define SEND_GET_STAT(a,b) send_get_stat(a,b)
+ #define SEND_GET_STAT64(a,b) send_get_stat64(a,b)
++#define SEND_GET_XATTR(a,b,c) send_get_xattr(a,b,c)
+ #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b,c)
+ #else
+ #define SEND_STAT(a,b,c) send_stat(a,b)
+ #define SEND_STAT64(a,b,c) send_stat64(a,b)
+ #define SEND_GET_STAT(a,b) send_get_stat(a)
+ #define SEND_GET_STAT64(a,b) send_get_stat64(a)
++#define SEND_GET_XATTR(a,b,c) send_get_xattr(a,b)
+ #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b)
+ #endif
+
diff --git a/testing/fakeroot-tcp/fakeroot-skip-ipc-sanity-check.patch b/testing/fakeroot-tcp/fakeroot-skip-ipc-sanity-check.patch
new file mode 100644
index 00000000000..9541973c049
--- /dev/null
+++ b/testing/fakeroot-tcp/fakeroot-skip-ipc-sanity-check.patch
@@ -0,0 +1,59 @@
+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])
+
+-if test $ac_cv_use_ipc = "sysv"; then
+- AC_MSG_CHECKING([whether SysV IPC message queues are actually working on the host])
+-
+- AC_LANG_PUSH(C)
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <stdlib.h>
+-#include <sys/types.h>
+-#include <sys/ipc.h>
+-#include <sys/msg.h>
+-#include <time.h>
+-#include <unistd.h>
+-
+-int main() {
+-
+- srandom(time(NULL)+getpid()*33151);
+- key_t msg_key = random();
+- int msg_get = msgget(msg_key, IPC_CREAT|0600);
+-
+- if (msg_get==-1) {
+- return 1;
+- } else {
+- msgctl(msg_get, IPC_RMID, NULL);
+- return 0;
+- }
+-
+-}]])],[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])
+- fi
+-
+- AC_LANG_POP(C)
+-fi
+-
+ AC_ARG_WITH([dbformat],
+ AS_HELP_STRING([--with-dbformat@<:@=DBFORMAT@:>@],
+ [database format to use: either inode (default) or path]),
diff --git a/testing/fakeroot-tcp/fakeroot-stdint.patch b/testing/fakeroot-tcp/fakeroot-stdint.patch
new file mode 100644
index 00000000000..bb4f67f0d06
--- /dev/null
+++ b/testing/fakeroot-tcp/fakeroot-stdint.patch
@@ -0,0 +1,34 @@
+--- fakeroot-1.18.2.orig/faked.c
++++ fakeroot-1.18.2/faked.c
+@@ -514,11 +514,11 @@
+
+ #ifdef FAKEROOT_DB_PATH
+ if (find_path(i->buf.dev, i->buf.ino, roots, path))
+- fprintf(f,"mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu %s\n",
++ fprintf(f,"mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64" %s\n",
+ (uint64_t) i->buf.mode,(uint64_t) i->buf.uid,(uint64_t) i->buf.gid,
+ (uint64_t) i->buf.nlink,(uint64_t) i->buf.rdev,path);
+ #else
+- fprintf(f,"dev=%llx,ino=%llu,mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu\n",
++ fprintf(f,"dev=%"PRIx64",ino=%"PRIu64",mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64"\n",
+ (uint64_t) i->buf.dev,(uint64_t) i->buf.ino,(uint64_t) i->buf.mode,
+ (uint64_t) i->buf.uid,(uint64_t) i->buf.gid,(uint64_t) i->buf.nlink,
+ (uint64_t) i->buf.rdev);
+@@ -544,7 +544,7 @@
+
+ while(1){
+ #ifdef FAKEROOT_DB_PATH
+- r=scanf("mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu "DB_PATH_SCAN"\n",
++ r=scanf("mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64" "DB_PATH_SCAN"\n",
+ &stmode, &stuid, &stgid, &stnlink, &strdev, &path);
+ if (r != 6)
+ break;
+@@ -559,7 +559,7 @@
+ stdev = path_st.st_dev;
+ stino = path_st.st_ino;
+ #else
+- r=scanf("dev=%llx,ino=%llu,mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu\n",
++ r=scanf("dev=%"PRIx64",ino=%"PRIu64",mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64"\n",
+ &stdev, &stino, &stmode, &stuid, &stgid, &stnlink, &strdev);
+ if (r != 7)
+ break;
diff --git a/testing/fakeroot-tcp/fix-format.patch b/testing/fakeroot-tcp/fix-format.patch
new file mode 100644
index 00000000000..8f8639647aa
--- /dev/null
+++ b/testing/fakeroot-tcp/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/testing/fakeroot-tcp/fix-shell-in-fakeroot.patch b/testing/fakeroot-tcp/fix-shell-in-fakeroot.patch
new file mode 100644
index 00000000000..ce5d23f0c85
--- /dev/null
+++ b/testing/fakeroot-tcp/fix-shell-in-fakeroot.patch
@@ -0,0 +1,13 @@
+Description: Fix shell in fakeroot.in
+ Use /bin/sh instead of @SHELL@ in fakeroot.in
+Author: Juan Picca <jumapico@gmail.com>
+Last-Update: 2016-06-27
+---
+--- a/scripts/fakeroot.in
++++ b/scripts/fakeroot.in
+@@ -1,4 +1,4 @@
+-#!@SHELL@
++#!/bin/sh
+
+ # This script first starts faked (the daemon), and then it will run
+ # the requested program with fake root privileges.
diff --git a/testing/fakeroot-tcp/xstatjunk.patch b/testing/fakeroot-tcp/xstatjunk.patch
new file mode 100644
index 00000000000..bda4469980d
--- /dev/null
+++ b/testing/fakeroot-tcp/xstatjunk.patch
@@ -0,0 +1,13 @@
+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} __${PRE}${FUNC}; do
++ for WRAPPED in ${PRE}${FUNC}; do
+ AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
+ dnl
+ dnl to unconditionally define only the _* functions, comment out the 2 lines above,
diff --git a/testing/fasd/APKBUILD b/testing/fasd/APKBUILD
deleted file mode 100644
index 470c8dd7bfa..00000000000
--- a/testing/fasd/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=fasd
-pkgver=1.0.1
-pkgrel=0
-pkgdesc="Command-line productivity booster, offers quick access to files and directories"
-url="https://github.com/clvv/fasd"
-arch="all"
-license="MIT"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/clvv/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- sed -i 's|^#!/usr/bin/env sh|#!/bin/sh|' fasd
-}
-
-package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir" PREFIX=/usr
-}
-
-sha512sums="0f68fe5501379738894ba8fd0495a137398b6d0196aac040028c45ae486ec040ea7c2e4521f6ad43b5d22f48d048dbc734716f5e7400e3b2b3184f820e969a19 fasd-1.0.1.tar.gz"
diff --git a/testing/fast_float/APKBUILD b/testing/fast_float/APKBUILD
new file mode 100644
index 00000000000..71d2cb73e1f
--- /dev/null
+++ b/testing/fast_float/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=fast_float
+pkgver=5.2.0
+pkgrel=1
+_tests=97a0b2e638feb479387554cf253e346500541e7e
+pkgdesc="Fast implementation of the C++ from_chars functions for float and double types"
+url="https://github.com/fastfloat/fast_float"
+arch="noarch"
+license="Apache-2.0 OR MIT"
+makedepends="cmake samurai"
+checkdepends="doctest-dev"
+source="https://github.com/fastfloat/fast_float/archive/v$pkgver/fast_float-$pkgver.tar.gz
+ https://github.com/fastfloat/supplemental_test_files/archive/$_tests.tar.gz
+ "
+
+prepare() {
+ default_prepare
+
+ mkdir -p builddir/_deps
+ mv "$srcdir"/supplemental_test_files-$_tests \
+ builddir/_deps/supplemental_test_files-src
+}
+
+build() {
+ cmake -B builddir -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_DATAROOTDIR=/usr/lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DFASTFLOAT_TEST="$(want_check && echo ON || echo OFF)" \
+ -DSYSTEM_DOCTEST=ON \
+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ cmake --build builddir
+}
+
+check() {
+ ctest --output-on-failure --test-dir builddir
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install builddir
+}
+
+sha512sums="
+c703c7cba3c69775317c66a62ce145646fd7d3d063124501e3d6a7deebb8c62c14a2ccdffed18de2d73d9d3a8ba2061ef1d34cc780ee0b6d607935d5f1b1de81 fast_float-5.2.0.tar.gz
+f2714a5d406c4e1f7a6e180a95d795edaa9033e6988955b76143884c020a9c379754474aa92f739a7f1feb9ac2d6c8d3bdb4ebe8bd23ab4b352ab809821eb43a 97a0b2e638feb479387554cf253e346500541e7e.tar.gz
+"
diff --git a/testing/fastd/APKBUILD b/testing/fastd/APKBUILD
index 80db1445a06..040f9fa273d 100644
--- a/testing/fastd/APKBUILD
+++ b/testing/fastd/APKBUILD
@@ -1,44 +1,39 @@
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
-# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=fastd
-pkgver=18
+pkgver=22
pkgrel=3
pkgdesc="Fast and Secure Tunneling Daemon"
url="https://github.com/NeoRaider/fastd/"
arch="all"
license="BSD-2-Clause AND BSD-3-Clause"
-makedepends="$depends_dev cmake doxygen bison bsd-compat-headers
- linux-headers libsodium-dev libcap-dev libuecc-dev json-c-dev"
+makedepends="meson libcap-dev json-c-dev libsodium-dev openssl-dev libuecc-dev
+ bison libmnl-dev cmocka-dev"
subpackages="$pkgname-doc $pkgname-openrc"
-source="https://git.universe-factory.net/fastd/snapshot/fastd-$pkgver.tar
- fix-segfault-with-musl.patch
+source="https://github.com/NeoRaider/fastd/releases/download/v$pkgver/fastd-$pkgver.tar.xz
fastd.conf
fastd.initd"
+# secfixes:
+# 21-r0:
+# - CVE-2020-27638
+
build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DENABLE_SYSTEMD=OFF \
- -DWITH_CIPHER_AES128_CTR_NACL=OFF \
- .
- make -C build
+ abuild-meson \
+ -Dsystemd=disabled \
+ -Dbuild_tests="$(options_has !check && echo false || echo true)" \
+ . output
+ meson compile -C output
}
check() {
- # no testsuite
- ./build/src/fastd --version
- ./build/src/fastd --verify-config
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
- make -C build install DESTDIR="$pkgdir"
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
- install -Dm644 COPYRIGHT \
- "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
- install -Dm644 doc/fastd.1 \
- "$pkgdir"/usr/share/man/man1/fastd.1
+ install -Dm0644 doc/fastd.1 -t "$pkgdir"/usr/share/man/man1
install -dm700 "$pkgdir"/etc/fastd/peers/
install -Dm600 "$srcdir"/fastd.conf \
@@ -47,7 +42,8 @@ package() {
"$pkgdir"/etc/init.d/fastd
}
-sha512sums="b732e8c083a5a35b7995f511673a3637d1f2b4893824867338dbeb06a73d8b7fd5658a7e459d1f44f1f247f06850c7720e2674c5a78a6b188334b35be352b2d0 fastd-18.tar
-4bb4fdf422f53562db5017f8c49ba3f95bde97a5afe8d94c8530848c054cdab05850f6a20498641a6adb1f023cd9c66a6a1a7ee183fd24898088d4cb3e8a5810 fix-segfault-with-musl.patch
+sha512sums="
+66196fa13c93b87b78b9e31bc267cf616dcfb4a964387c4a3f0f3176fa1529be335a6fac91379038d6a8b1a1be4fea547659551a8a9fa8d6939589d5f8a9a7aa fastd-22.tar.xz
3e6c3a77f93a1e670e8f018833c499e8ec57b8240a6f472da03254ad9a7e6fed2c3459fa47b06c97e42afcfe6f0adfaaec39bce6b6a286a1ce7ef3585853b118 fastd.conf
-e64b0c548cf063624ac0b632bac672c5f204586aa03aa9b06afc46f48645f1458e2400e98ee993c74aa5da3a9e86c4151e2e29c634ee59941cd81a216cea308a fastd.initd"
+e64b0c548cf063624ac0b632bac672c5f204586aa03aa9b06afc46f48645f1458e2400e98ee993c74aa5da3a9e86c4151e2e29c634ee59941cd81a216cea308a fastd.initd
+"
diff --git a/testing/fastd/fix-segfault-with-musl.patch b/testing/fastd/fix-segfault-with-musl.patch
deleted file mode 100644
index fc822a1a8bb..00000000000
--- a/testing/fastd/fix-segfault-with-musl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7d9f90ebe9dd3a7f6af1fbb97d8cc228fb0fded4 Mon Sep 17 00:00:00 2001
-From: David Bauer <mail@david-bauer.net>
-Date: Thu, 25 Jul 2019 18:51:25 +0200
-Subject: resolve: fix segmentation fault with musl >1.1.20
-
-When compiled with musl >1.1.20, fastd will crash in case it can't
-resolve a peers hostname. This is due to a changed implementation of
-freeaddrinfo in musl 1.1.21 onwards.
-
-This segfault is fixed by not calling freeaddrinfo in case the supplied
-pointer is null.
-
-Signed-off-by: David Bauer <mail@david-bauer.net>
----
- src/resolve.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/resolve.c b/src/resolve.c
-index 9bdfa1c..bfd2a59 100644
---- a/src/resolve.c
-+++ b/src/resolve.c
-@@ -104,7 +104,9 @@ static void * resolve_peer(void *varg) {
-
- fastd_async_enqueue(ASYNC_TYPE_RESOLVE_RETURN, ret, sizeof(fastd_async_resolve_return_t) + n_addr*sizeof(fastd_peer_address_t));
-
-- freeaddrinfo(res);
-+ if (res)
-+ freeaddrinfo(res);
-+
- free(arg->hostname);
- free(arg);
-
---
-cgit v1.2.1
-
diff --git a/testing/fatback/APKBUILD b/testing/fatback/APKBUILD
index 9ea99492875..5236883e31e 100644
--- a/testing/fatback/APKBUILD
+++ b/testing/fatback/APKBUILD
@@ -2,31 +2,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fatback
pkgver=1.3
-pkgrel=0
+pkgrel=2
pkgdesc="A tool for recovering files from FAT file systems"
-url="http://fatback.sourceforge.net/"
+url="https://sourceforge.net/projects/fatback/"
arch="all"
license="GPL-2.0"
-depends=""
makedepends="flex-dev"
-install=""
+options="!check" # no tests
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
-_builddir="$srcdir"/$pkgname-$pkgver
+source="https://downloads.sourceforge.net/fatback/fatback-$pkgver.tar.gz"
build() {
- cd "$_builddir"
./configure \
--prefix=/usr \
--infodir=/usr/share/info \
- --mandir=/usr/share/man \
- || return 1
- make || return 1
+ --mandir=/usr/share/man
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="be76a40eb981e3d33730811e846fc4fce6c6e4a7833ef37076d14da62e0741490b566bc17a4268f0861e004088493eb3e0d36771f4c7aa9bf7e765e5a0a65d82 fatback-1.3.tar.gz"
+sha512sums="
+be76a40eb981e3d33730811e846fc4fce6c6e4a7833ef37076d14da62e0741490b566bc17a4268f0861e004088493eb3e0d36771f4c7aa9bf7e765e5a0a65d82 fatback-1.3.tar.gz
+"
diff --git a/testing/fathom/APKBUILD b/testing/fathom/APKBUILD
new file mode 100644
index 00000000000..5fead0eb1db
--- /dev/null
+++ b/testing/fathom/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=fathom
+pkgver=1.3.1
+pkgrel=5
+pkgdesc="Privacy-focused website analytics"
+url="https://github.com/usefathom/fathom"
+arch="all"
+license="MIT"
+makedepends="npm go sqlite-dev"
+source="https://github.com/usefathom/fathom/archive/v$pkgver/fathom-v$pkgver.tar.gz"
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ npm ci
+ go mod vendor
+}
+
+build() {
+ go build -mod=mod -o fathom ./main.go
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 fathom "$pkgdir/usr/bin/fathom"
+}
+
+sha512sums="
+077887e753698d347ae3d0c199b085593a9f6bb38a04b7f3ad8df3889e104ceedd0ff92caa3f8cf1abb2adbdc0d6c3fcccc7c7ff711b757926605de6f8481d62 fathom-v1.3.1.tar.gz
+"
diff --git a/testing/fatrace/APKBUILD b/testing/fatrace/APKBUILD
new file mode 100644
index 00000000000..dce20f0f764
--- /dev/null
+++ b/testing/fatrace/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=fatrace
+pkgver=0.17.0
+pkgrel=0
+pkgdesc="Report system wide file access events"
+url="https://github.com/martinpitt/fatrace"
+license="GPL-3.0-or-later"
+arch="all"
+depends="python3 powertop"
+subpackages="$pkgname-doc"
+source="https://github.com/martinpitt/fatrace/archive/$pkgver/fatrace-$pkgver.tar.gz"
+options="!check" # tests require root privileges
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+b84bd4f1197a095fec0f9a6fe7a32e8dbf6978652f5062574c7fe7c16bcf48670b09abc0ab0a5624c5abebba2c1a7b0c1c2d20c400553aae84e9a3b37bdc90de fatrace-0.17.0.tar.gz
+"
diff --git a/testing/fatresize/APKBUILD b/testing/fatresize/APKBUILD
index 50b9f2aa8fd..8c877342929 100644
--- a/testing/fatresize/APKBUILD
+++ b/testing/fatresize/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=fatresize
pkgver=1.1.0
-pkgrel=0
+pkgrel=1
pkgdesc="The FAT16/FAT32 non-destructive resizer."
url="https://sourceforge.net/projects/fatresize/"
arch="all"
diff --git a/testing/faudio/APKBUILD b/testing/faudio/APKBUILD
deleted file mode 100644
index a8faf6adfce..00000000000
--- a/testing/faudio/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=faudio
-pkgver=20.03
-pkgrel=0
-pkgdesc="Accuracy-focused XAudio reimplementation for open platforms"
-url="https://fna-xna.github.io/"
-arch="all !mips !mips64"
-license="Zlib"
-makedepends="cmake ffmpeg-dev sdl2-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/FNA-XNA/FAudio/archive/$pkgver.tar.gz"
-builddir="$srcdir/FAudio-$pkgver"
-
-build() {
- cmake -B build . \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX="/usr" \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_INCLUDEDIR=include/FAudio \
- -DFFMPEG=ON \
- -DBUILD_TESTS=1
- make -C build
-}
-
-check() {
- cd build
- ./faudio_tests
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-sha512sums="4b5772a43d4af9fce443d6e2275024cce54693d27f8770e030dd1b3fbe75cf678f9189e897c002f9176e8fc8a2c552c8ac191c9e14079ce7308680c0fa84b00c faudio-20.03.tar.gz"
diff --git a/testing/faultstat/APKBUILD b/testing/faultstat/APKBUILD
index 51c91de7c52..8f770afbc2f 100644
--- a/testing/faultstat/APKBUILD
+++ b/testing/faultstat/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Milan P. Stanić <mps@arvanta.net>
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=faultstat
-pkgver=0.01.03
+pkgver=0.01.11
pkgrel=0
pkgdesc="page fault monitoring tool"
url="https://github.com/ColinIanKing/faultstat"
@@ -22,4 +22,6 @@ package() {
install -Dm644 bash-completion/* -t "$pkgdir"/usr/share/bash-completion/completions
}
-sha512sums="de0e934862c335640943115d80ad94947f7377f99c0a28c6843999d216fae009d8275df052fd8a58a3f025cbea8f67a52b2e33678c43bb55879ed1e522ba4e76 faultstat-0.01.03.tar.gz"
+sha512sums="
+5fcc9a58e5b9532156254c2721ac104ad1bbb0bc77e3d5fadde25e66c042be2441d907d274e2501aa5c43365269016fa962345318edf4266b9a5f632102e8bf1 faultstat-0.01.11.tar.gz
+"
diff --git a/testing/faust/APKBUILD b/testing/faust/APKBUILD
new file mode 100644
index 00000000000..f585a26c498
--- /dev/null
+++ b/testing/faust/APKBUILD
@@ -0,0 +1,117 @@
+# Contributor: Francesco Camuffo <dev@fmac.xyz>
+# Maintainer: Francesco Camuffo <dev@fmac.xyz>
+pkgname=faust
+pkgver=2.60.3
+pkgrel=2
+_llvmver=16
+pkgdesc="Functional programming language for realtime audio signal processing"
+url="https://faust.grame.fr"
+arch="all"
+license="GPL-2.0-or-later"
+# all faust* tools are bash
+depends="bash"
+depends_dev="$pkgname-tools=$pkgver-r$pkgrel"
+makedepends="
+ cmake
+ libmicrohttpd-dev
+ libsndfile-dev
+ llvm$_llvmver-dev
+ samurai
+ "
+subpackages="
+ $pkgname-tools
+ $pkgname-static
+ $pkgname-doc
+ $pkgname-dev
+ $pkgname-vim::noarch
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/grame-cncm/faust/releases/download/$pkgver/faust-$pkgver.tar.gz
+ busybox.patch
+ gcc13.patch
+ no-execinfo.patch
+ usage.patch
+ "
+
+prepare() {
+ default_prepare
+
+ # XXX: if the tests compile this faust segfaults
+ rm -v examples/physicalModeling/fds/2dKirchhoffThinPlate.dsp
+}
+
+build() {
+ cmake -B "$pkgname"-build -G Ninja \
+ -S build \
+ -C build/backends/all.cmake \
+ -C build/targets/all.cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINCLUDE_DYNAMIC=ON \
+ -DINCLUDE_STATIC=OFF \
+ -DINCLUDE_ITP=ON \
+ -DLLVM_CONFIG=/usr/lib/llvm$_llvmver/bin/llvm-config \
+ -Wno-dev
+ cmake --build "$pkgname"-build
+ make VERBOSE=1 -C tools/sound2faust sound2faust sound2file
+}
+
+check() {
+ make interp llvm -C tests/compile-tests
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install "$pkgname"-build
+ make VERBOSE=1 PREFIX=/usr DESTDIR="$pkgdir" install -C tools/sound2faust
+
+ # remove support for platforms not likely wanted
+ rm -rvf "$pkgdir"/usr/bin/faust2au \
+ "$pkgdir"/usr/lib/ios-libsndfile.a \
+ "$pkgdir"/usr/share/faust/AU \
+ "$pkgdir"/usr/share/faust/android \
+ "$pkgdir"/usr/share/faust/iOS \
+ "$pkgdir"/usr/share/faust/smartKeyboard \
+ "$pkgdir"/usr/share/faust/max-msp/sndfile
+ # rename generically named usage script
+ mv "$pkgdir"/usr/bin/usage.sh "$pkgdir"/usr/bin/faust-usage.sh
+
+ install -Dm644 syntax-highlighting/faust.vim \
+ -t "$pkgdir"/usr/share/vim/vimfiles/syntax/
+}
+
+doc() {
+ default_doc
+
+ amove usr/share/faust/examples
+}
+
+dev() {
+ pkgdesc="$pkgdesc (development files)"
+ depends="$depends_dev"
+ amove \
+ usr/bin/faust-config \
+ usr/include/* \
+ usr/lib/*.so
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+ amove usr/bin/encoderunitypackage \
+ usr/bin/faust2* \
+ usr/bin/filename2ident \
+ usr/bin/sound2*
+}
+
+vim() {
+ pkgdesc="$pkgdesc (vim syntax)"
+ install_if="vim $pkgname=$pkgver-r$pkgrel"
+
+ amove usr/share/vim/vimfiles
+}
+
+sha512sums="
+cdb31a519f5615ecdb36336d67de524b10acfc6e5449fea1a5a154a37d29f028c3db1ac0ba5f3bb9e0a39e00057397724dd5ad711fbab2ceacfb4cc1dee3e011 faust-2.60.3.tar.gz
+2e2aae4b3fe760e41b3a9b1b82edc9cfac674944efb41c296e1c71f80763cbadc72544e0cbd7f5048095322779c3d432838ea66d32376a29b95bb08fe8c25e96 busybox.patch
+edb822664f2277e58af82f6e339668c11a822880928646fddc21f4c245e81b70f9bc5e2892008dfe5c56a23b46aa50c40607f6ccca3a42029b7a21b0bf317302 gcc13.patch
+fb1ef67a0c1ba56ba98e5c85935566c263a7b51a44c8ffd1789f7379b9bd14cbb2b373392e70c1c9974163559dbed910be3af64ccd3198633758998dee5c7bb2 no-execinfo.patch
+ac45a55400970952daf7918f48b3d13efd06d5b3ffc1fa41e71d83eb3f53b31031fec353ab74e40c66667dbc3c6b32b2b38249a7e85c890221374cada38d4285 usage.patch
+"
diff --git a/testing/faust/busybox.patch b/testing/faust/busybox.patch
new file mode 100644
index 00000000000..9e632dfdd61
--- /dev/null
+++ b/testing/faust/busybox.patch
@@ -0,0 +1,28 @@
+ls -f doesn't exist so just pass the install location
+--
+diff --git a/tools/faust2appls/faust2lv2 b/tools/faust2appls/faust2lv2
+index 8fa948f..7527385 100755
+--- a/tools/faust2appls/faust2lv2
++++ b/tools/faust2appls/faust2lv2
+@@ -21,7 +21,7 @@
+ # that you can run the script from the faust-lv2 source directory. You can
+ # also specify this explicitly by setting the FAUSTLIB environment variable
+ # accordingly.
+-[ -z "$FAUSTLIB" ] && FAUSTLIB=$(dirname "$((ls -f /usr/share/faust/lv2ui.cpp /usr/local/share/faust/lv2ui.cpp /opt/local/share/faust/lv2ui.cpp "$PWD/lv2ui.cpp" 2>/dev/null)|tail -1)")
++[ -z "$FAUSTLIB" ] && FAUSTLIB=/usr/share/faust
+ [ -z "$FAUSTLIB" ] && FAUSTLIB="$PWD"
+
+ # defaults (these can be changed with the options listed below)
+diff --git a/tools/faust2appls/faust2pure b/tools/faust2appls/faust2pure
+index 265e4c4..e50478d 100755
+--- a/tools/faust2appls/faust2pure
++++ b/tools/faust2appls/faust2pure
+@@ -6,7 +6,7 @@
+ # locations here, and fall back to the current directory if the file isn't
+ # found. You can also specify this explicitly by setting the FAUSTLIB
+ # environment variable accordingly.
+-[ -z "$FAUSTLIB" ] && FAUSTLIB=$(dirname "$((ls -f /usr/share/faust/pure.cpp /usr/local/share/faust/pure.cpp /opt/local/share/faust/pure.cpp "$PWD/pure.cpp" 2>/dev/null)|tail -1)")
++[ -z "$FAUSTLIB" ] && FAUSTLIB=/usr/share/faust
+ [ -z "$FAUSTLIB" ] && FAUSTLIB="$PWD"
+
+ # defaults (these can be changed with the options listed below)
diff --git a/testing/faust/gcc13.patch b/testing/faust/gcc13.patch
new file mode 100644
index 00000000000..3aed0590f5f
--- /dev/null
+++ b/testing/faust/gcc13.patch
@@ -0,0 +1,24 @@
+diff --git a/architecture/faust/dsp/dsp.h b/architecture/faust/dsp/dsp.h
+index efa6fa1..ed38c22 100644
+--- a/architecture/faust/dsp/dsp.h
++++ b/architecture/faust/dsp/dsp.h
+@@ -25,6 +25,7 @@
+ #ifndef __dsp__
+ #define __dsp__
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include <cstdint>
+diff --git a/compiler/generator/Text.hh b/compiler/generator/Text.hh
+index d8ea070..0ffe6b0 100644
+--- a/compiler/generator/Text.hh
++++ b/compiler/generator/Text.hh
+@@ -24,6 +24,7 @@
+
+ #include <string.h>
+
++#include <cstdint>
+ #include <fstream>
+ #include <iostream>
+ #include <list>
diff --git a/testing/faust/no-execinfo.patch b/testing/faust/no-execinfo.patch
new file mode 100644
index 00000000000..1236f00d8e2
--- /dev/null
+++ b/testing/faust/no-execinfo.patch
@@ -0,0 +1,22 @@
+diff --git a/compiler/errors/exception.hh b/compiler/errors/exception.hh
+index 5aa80ac..c4a5bc3 100644
+--- a/compiler/errors/exception.hh
++++ b/compiler/errors/exception.hh
+@@ -29,7 +29,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ //#include <io.h>
+ #endif
+
+-#if !defined(EMCC) && !defined(WIN32) && !defined(ANDROID) && !defined(ALPINE)
++#if 0 && !defined(EMCC) && !defined(WIN32) && !defined(ANDROID) && !defined(ALPINE)
+ #include <execinfo.h>
+ #endif
+
+@@ -54,7 +54,7 @@ class faustexception : public std::runtime_error {
+
+ inline void stacktrace(std::stringstream& str, int val)
+ {
+-#if !defined(EMCC) && !defined(WIN32) && !defined(ANDROID) && !defined(ALPINE)
++#if 0 && !defined(EMCC) && !defined(WIN32) && !defined(ANDROID) && !defined(ALPINE)
+ void* callstack[val];
+ int frames = backtrace(callstack, val);
+ char** strs = backtrace_symbols(callstack, frames);
diff --git a/testing/faust/usage.patch b/testing/faust/usage.patch
new file mode 100644
index 00000000000..e6c656a70f3
--- /dev/null
+++ b/testing/faust/usage.patch
@@ -0,0 +1,866 @@
+diff --git a/tools/faust2appls/faust2alqt b/tools/faust2appls/faust2alqt
+index 0f58c39..0656b82 100755
+--- a/tools/faust2appls/faust2alqt
++++ b/tools/faust2appls/faust2alqt
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2alsa b/tools/faust2appls/faust2alsa
+index 94aded2..4e1ba48 100755
+--- a/tools/faust2appls/faust2alsa
++++ b/tools/faust2appls/faust2alsa
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2alsaconsole b/tools/faust2appls/faust2alsaconsole
+index 5117820..fea650c 100755
+--- a/tools/faust2appls/faust2alsaconsole
++++ b/tools/faust2appls/faust2alsaconsole
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2android b/tools/faust2appls/faust2android
+index d9013ce..c901554 100755
+--- a/tools/faust2appls/faust2android
++++ b/tools/faust2appls/faust2android
+@@ -10,7 +10,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ # change if you want to get the log of what's happening
+ LOG="/dev/null"
+diff --git a/tools/faust2appls/faust2androidunity b/tools/faust2appls/faust2androidunity
+index 646402c..13c2168 100755
+--- a/tools/faust2appls/faust2androidunity
++++ b/tools/faust2appls/faust2androidunity
+@@ -17,7 +17,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2api b/tools/faust2appls/faust2api
+index 3871ce6..16d9d2a 100755
+--- a/tools/faust2appls/faust2api
++++ b/tools/faust2appls/faust2api
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2au b/tools/faust2appls/faust2au
+index 1050986..17c5f96 100755
+--- a/tools/faust2appls/faust2au
++++ b/tools/faust2appls/faust2au
+@@ -6,7 +6,7 @@
+ # (c) Grame 2013
+ #
+ #####################################################################
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2audiokit b/tools/faust2appls/faust2audiokit
+index fbb209b..7ac5bf0 100755
+--- a/tools/faust2appls/faust2audiokit
++++ b/tools/faust2appls/faust2audiokit
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2bela b/tools/faust2appls/faust2bela
+index a5480f2..42811ba 100755
+--- a/tools/faust2appls/faust2bela
++++ b/tools/faust2appls/faust2bela
+@@ -1,7 +1,7 @@
+ #!/bin/bash -e
+
+ . faustpath
+-. usage.sh
++. faust-usage.sh
+
+ #FAUST DATA:
+ [ -z "$ARCHFILE" ] && ARCHFILE=$FAUSTARCH/bela.cpp
+diff --git a/tools/faust2appls/faust2bench b/tools/faust2appls/faust2bench
+index aecbfb3..bc27eb9 100755
+--- a/tools/faust2appls/faust2bench
++++ b/tools/faust2appls/faust2bench
+@@ -14,7 +14,7 @@
+ . faustoptflags
+
+ # Helper file to build the 'help' option
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2cagtk b/tools/faust2appls/faust2cagtk
+index 59084a4..7e859ff 100755
+--- a/tools/faust2appls/faust2cagtk
++++ b/tools/faust2appls/faust2cagtk
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS -I/opt/local/include" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2caqt b/tools/faust2appls/faust2caqt
+index d106fbe..d6bbebe 100755
+--- a/tools/faust2appls/faust2caqt
++++ b/tools/faust2appls/faust2caqt
+@@ -11,7 +11,7 @@ set -e
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2caqtios b/tools/faust2appls/faust2caqtios
+index 7fe3b0e..035987c 100755
+--- a/tools/faust2appls/faust2caqtios
++++ b/tools/faust2appls/faust2caqtios
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ #. faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS -DIOS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2cmajor b/tools/faust2appls/faust2cmajor
+index 2863bee..a2ceb29 100755
+--- a/tools/faust2appls/faust2cmajor
++++ b/tools/faust2appls/faust2cmajor
+@@ -10,7 +10,7 @@ set -e
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ ARCHFILE=$FAUSTARCH/cmajor/minimal.cmajor
+
+diff --git a/tools/faust2appls/faust2cpalrust b/tools/faust2appls/faust2cpalrust
+index ee4a7b4..8c3ca57 100755
+--- a/tools/faust2appls/faust2cpalrust
++++ b/tools/faust2appls/faust2cpalrust
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ SRC="0"
+ ARCHFILE=$FAUSTARCH/cpal.rs
+diff --git a/tools/faust2appls/faust2csound b/tools/faust2appls/faust2csound
+index 6e2ffc9..43da77e 100755
+--- a/tools/faust2appls/faust2csound
++++ b/tools/faust2appls/faust2csound
+@@ -10,7 +10,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2csvplot b/tools/faust2appls/faust2csvplot
+index cb8cd5b..30460ef 100755
+--- a/tools/faust2appls/faust2csvplot
++++ b/tools/faust2appls/faust2csvplot
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2daisy b/tools/faust2appls/faust2daisy
+index 0e71217..a173a5d 100755
+--- a/tools/faust2appls/faust2daisy
++++ b/tools/faust2appls/faust2daisy
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2dplug b/tools/faust2appls/faust2dplug
+index 39a4b5b..d4d572b 100755
+--- a/tools/faust2appls/faust2dplug
++++ b/tools/faust2appls/faust2dplug
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ DEBUG=false
+
+diff --git a/tools/faust2appls/faust2dssi b/tools/faust2appls/faust2dssi
+index d7b6b7a..390f934 100755
+--- a/tools/faust2appls/faust2dssi
++++ b/tools/faust2appls/faust2dssi
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2dummy b/tools/faust2appls/faust2dummy
+index edd7a79..446616e 100755
+--- a/tools/faust2appls/faust2dummy
++++ b/tools/faust2appls/faust2dummy
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2esp32 b/tools/faust2appls/faust2esp32
+index e0c5624..4564f07 100755
+--- a/tools/faust2appls/faust2esp32
++++ b/tools/faust2appls/faust2esp32
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ # change if you want to get the log of what's happening
+ LOG="/dev/null"
+diff --git a/tools/faust2appls/faust2faustvst b/tools/faust2appls/faust2faustvst
+index 0fa66b2..15822ee 100755
+--- a/tools/faust2appls/faust2faustvst
++++ b/tools/faust2appls/faust2faustvst
+@@ -4,7 +4,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ # Check for some common locations of the VST SDK files. This falls back to
+ # /usr/local/src/vstsdk if none of these are found. In that case, or if make
+diff --git a/tools/faust2appls/faust2feh b/tools/faust2appls/faust2feh
+index a76e671..f61e112 100755
+--- a/tools/faust2appls/faust2feh
++++ b/tools/faust2appls/faust2feh
+@@ -1,6 +1,6 @@
+ #! /bin/bash -e
+
+-. usage.sh
++. faust-usage.sh
+
+ if [[ $@ = "-help" ]] || [[ $@ = "-h" ]]; then
+ usage faust2feh "<file.dsp>"
+diff --git a/tools/faust2appls/faust2firefox b/tools/faust2appls/faust2firefox
+index 7ab5ea9..5f30052 100755
+--- a/tools/faust2appls/faust2firefox
++++ b/tools/faust2appls/faust2firefox
+@@ -1,6 +1,6 @@
+ #! /bin/bash -e
+
+-. usage.sh
++. faust-usage.sh
+
+ VIEWER_LAUNCH=${FAUST2FIREFOX_VIEWER_LAUNCH}
+ if [[ -z "${VIEWER_LAUNCH}" ]]; then
+diff --git a/tools/faust2appls/faust2gen b/tools/faust2appls/faust2gen
+index d0ef58d..9eddb5a 100755
+--- a/tools/faust2appls/faust2gen
++++ b/tools/faust2appls/faust2gen
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ POLY="MONO"
+ NVOICES=-1
+diff --git a/tools/faust2appls/faust2graph b/tools/faust2appls/faust2graph
+index ee58a1a..d27e358 100755
+--- a/tools/faust2appls/faust2graph
++++ b/tools/faust2appls/faust2graph
+@@ -3,7 +3,7 @@
+ # usage : faust2graph foo.dsp -> foo-sig.pdf
+ # usage : faust2graph -svg foo.dsp -> foo-sig.svg
+
+-. usage.sh
++. faust-usage.sh
+
+ FILES=""
+ IGNORE=""
+diff --git a/tools/faust2appls/faust2ios b/tools/faust2appls/faust2ios
+index e96ab71..ca8811d 100755
+--- a/tools/faust2appls/faust2ios
++++ b/tools/faust2appls/faust2ios
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ ARCHFILE=$FAUSTARCH/ios-coreaudio.cpp
+
+diff --git a/tools/faust2appls/faust2jack b/tools/faust2appls/faust2jack
+index 2a7e36c..f023ca3 100755
+--- a/tools/faust2appls/faust2jack
++++ b/tools/faust2appls/faust2jack
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS -I/opt/local/include" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2jackconsole b/tools/faust2appls/faust2jackconsole
+index 95fb259..dff4665 100755
+--- a/tools/faust2appls/faust2jackconsole
++++ b/tools/faust2appls/faust2jackconsole
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2jackrust b/tools/faust2appls/faust2jackrust
+index 4be4051..4475b82 100755
+--- a/tools/faust2appls/faust2jackrust
++++ b/tools/faust2appls/faust2jackrust
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ SRC="0"
+ ARCHFILE=$FAUSTARCH/jack.rs
+diff --git a/tools/faust2appls/faust2jackserver b/tools/faust2appls/faust2jackserver
+index 35e99c3..39deb1a 100755
+--- a/tools/faust2appls/faust2jackserver
++++ b/tools/faust2appls/faust2jackserver
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2jaqt b/tools/faust2appls/faust2jaqt
+index a92e1fd..80b0f98 100755
+--- a/tools/faust2appls/faust2jaqt
++++ b/tools/faust2appls/faust2jaqt
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2jaqtchain b/tools/faust2appls/faust2jaqtchain
+index 9c880f9..cd058ea 100755
+--- a/tools/faust2appls/faust2jaqtchain
++++ b/tools/faust2appls/faust2jaqtchain
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2juce b/tools/faust2appls/faust2juce
+index f35f88f..bf0e3d0 100755
+--- a/tools/faust2appls/faust2juce
++++ b/tools/faust2appls/faust2juce
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2ladspa b/tools/faust2appls/faust2ladspa
+index d48c3af..465db4d 100755
+--- a/tools/faust2appls/faust2ladspa
++++ b/tools/faust2appls/faust2ladspa
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2linuxunity b/tools/faust2appls/faust2linuxunity
+index b8ba4e6..6eaa52b 100755
+--- a/tools/faust2appls/faust2linuxunity
++++ b/tools/faust2appls/faust2linuxunity
+@@ -16,7 +16,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2lv2 b/tools/faust2appls/faust2lv2
+index 1fbb4b4..8fa948f 100755
+--- a/tools/faust2appls/faust2lv2
++++ b/tools/faust2appls/faust2lv2
+@@ -2,7 +2,7 @@
+
+ #set -x
+
+-. usage.sh
++. faust-usage.sh
+
+ # Default qmake setup (for GUI compilation). This requires Qt4 or Qt5 (Qt5 is
+ # preferred). We try to locate the qmake executable in some common locations
+diff --git a/tools/faust2appls/faust2mathdoc b/tools/faust2appls/faust2mathdoc
+index 4c9fdb9..0d19958 100755
+--- a/tools/faust2appls/faust2mathdoc
++++ b/tools/faust2appls/faust2mathdoc
+@@ -1,6 +1,6 @@
+ #! /bin/bash -e
+
+-. usage.sh
++. faust-usage.sh
+
+ # faust2mathdoc.sh
+ #
+diff --git a/tools/faust2appls/faust2max6 b/tools/faust2appls/faust2max6
+index fd45509..5e7a5e3 100755
+--- a/tools/faust2appls/faust2max6
++++ b/tools/faust2appls/faust2max6
+@@ -11,7 +11,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGSGENERIC" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2minimal b/tools/faust2appls/faust2minimal
+index 9c280c3..02b5620 100755
+--- a/tools/faust2appls/faust2minimal
++++ b/tools/faust2appls/faust2minimal
+@@ -14,7 +14,7 @@
+ . faustoptflags
+
+ # Helper file to build the 'help' option
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+ LIBADD+=" -pthread"
+diff --git a/tools/faust2appls/faust2msp b/tools/faust2appls/faust2msp
+index 5c0138b..e5191f9 100755
+--- a/tools/faust2appls/faust2msp
++++ b/tools/faust2appls/faust2msp
+@@ -10,7 +10,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGSGENERIC" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2netjackconsole b/tools/faust2appls/faust2netjackconsole
+index 71f9d70..12e3507 100755
+--- a/tools/faust2appls/faust2netjackconsole
++++ b/tools/faust2appls/faust2netjackconsole
+@@ -2,7 +2,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2netjackqt b/tools/faust2appls/faust2netjackqt
+index 9222492..158ed86 100755
+--- a/tools/faust2appls/faust2netjackqt
++++ b/tools/faust2appls/faust2netjackqt
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2nodejs b/tools/faust2appls/faust2nodejs
+index 1451fc5..7f549b4 100755
+--- a/tools/faust2appls/faust2nodejs
++++ b/tools/faust2appls/faust2nodejs
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ # exit if a command fails
+ set -e
+diff --git a/tools/faust2appls/faust2osxiosunity b/tools/faust2appls/faust2osxiosunity
+index 90a243f..0ed5ff0 100755
+--- a/tools/faust2appls/faust2osxiosunity
++++ b/tools/faust2appls/faust2osxiosunity
+@@ -27,7 +27,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2paqt b/tools/faust2appls/faust2paqt
+index 7036f8f..163d538 100755
+--- a/tools/faust2appls/faust2paqt
++++ b/tools/faust2appls/faust2paqt
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2plot b/tools/faust2appls/faust2plot
+index 55470f2..3301c9c 100755
+--- a/tools/faust2appls/faust2plot
++++ b/tools/faust2appls/faust2plot
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2portaudiojulia b/tools/faust2appls/faust2portaudiojulia
+index 3ddc32e..5a93ea9 100755
+--- a/tools/faust2appls/faust2portaudiojulia
++++ b/tools/faust2appls/faust2portaudiojulia
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ SRC="0"
+ ARCHFILE=$FAUSTARCH/julia/portaudio-gtk.jl
+diff --git a/tools/faust2appls/faust2portaudiorust b/tools/faust2appls/faust2portaudiorust
+index 6afae5c..c641151 100755
+--- a/tools/faust2appls/faust2portaudiorust
++++ b/tools/faust2appls/faust2portaudiorust
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ SRC="0"
+ ARCHFILE=$FAUSTARCH/portaudio.rs
+diff --git a/tools/faust2appls/faust2puredata b/tools/faust2appls/faust2puredata
+index dfb79a6..cea01fe 100755
+--- a/tools/faust2appls/faust2puredata
++++ b/tools/faust2appls/faust2puredata
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2raqt b/tools/faust2appls/faust2raqt
+index 014df7d..fc1ef13 100755
+--- a/tools/faust2appls/faust2raqt
++++ b/tools/faust2appls/faust2raqt
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2rpialsaconsole b/tools/faust2appls/faust2rpialsaconsole
+index aec2246..699813a 100755
+--- a/tools/faust2appls/faust2rpialsaconsole
++++ b/tools/faust2appls/faust2rpialsaconsole
+@@ -11,7 +11,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ ARCHFILE=$FAUSTARCH/alsa-console.cpp
+
+diff --git a/tools/faust2appls/faust2rpinetjackconsole b/tools/faust2appls/faust2rpinetjackconsole
+index 7576f00..2c556e3 100755
+--- a/tools/faust2appls/faust2rpinetjackconsole
++++ b/tools/faust2appls/faust2rpinetjackconsole
+@@ -11,7 +11,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ ARCHFILE=$FAUSTARCH/netjack-console.cpp
+
+diff --git a/tools/faust2appls/faust2sam b/tools/faust2appls/faust2sam
+index a08e507..627e554 100755
+--- a/tools/faust2appls/faust2sam
++++ b/tools/faust2appls/faust2sam
+@@ -12,7 +12,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ # change if you want to get the log of what's happening
+ LOG="/dev/null"
+diff --git a/tools/faust2appls/faust2sig b/tools/faust2appls/faust2sig
+index 651cca4..36feebc 100755
+--- a/tools/faust2appls/faust2sig
++++ b/tools/faust2appls/faust2sig
+@@ -3,7 +3,7 @@
+ # usage : faust2sig foo.dsp -> foo-sig.pdf
+ # usage : faust2sig -svg foo.dsp -> foo-sig.svg
+
+-. usage.sh
++. faust-usage.sh
+
+ echoHelp()
+ {
+diff --git a/tools/faust2appls/faust2smartkeyb b/tools/faust2appls/faust2smartkeyb
+index c297571..e5f2d18 100755
+--- a/tools/faust2appls/faust2smartkeyb
++++ b/tools/faust2appls/faust2smartkeyb
+@@ -8,7 +8,7 @@
+ #####################################################################
+
+ . faustpath
+-. usage.sh
++. faust-usage.sh
+
+ # change if you want to get the log of what's happening
+ LOG="/dev/null"
+diff --git a/tools/faust2appls/faust2sndfile b/tools/faust2appls/faust2sndfile
+index a47f3c1..831871e 100755
+--- a/tools/faust2appls/faust2sndfile
++++ b/tools/faust2appls/faust2sndfile
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2svg b/tools/faust2appls/faust2svg
+index 01df452..2ef49e6 100755
+--- a/tools/faust2appls/faust2svg
++++ b/tools/faust2appls/faust2svg
+@@ -1,6 +1,6 @@
+ #! /bin/bash -e
+
+-. usage.sh
++. faust-usage.sh
+
+ echoHelp()
+ {
+diff --git a/tools/faust2appls/faust2teensy b/tools/faust2appls/faust2teensy
+index 77536a1..ac51411 100755
+--- a/tools/faust2appls/faust2teensy
++++ b/tools/faust2appls/faust2teensy
+@@ -8,7 +8,7 @@
+ #####################################################################
+
+ . faustpath
+-. usage.sh
++. faust-usage.sh
+
+ # change if you want to get the log of what's happening
+ LOG="/dev/null"
+diff --git a/tools/faust2appls/faust2unity b/tools/faust2appls/faust2unity
+index a4e7231..0e395d4 100755
+--- a/tools/faust2appls/faust2unity
++++ b/tools/faust2appls/faust2unity
+@@ -18,7 +18,7 @@
+ # Several options are available, see architecture/unity/README.md for more info.
+
+ . faustpath
+-. usage.sh
++. faust-usage.sh
+
+ echoHelp()
+ {
+diff --git a/tools/faust2appls/faust2vcvrack b/tools/faust2appls/faust2vcvrack
+index 581a9bc..453cd36 100755
+--- a/tools/faust2appls/faust2vcvrack
++++ b/tools/faust2appls/faust2vcvrack
+@@ -9,7 +9,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+
+diff --git a/tools/faust2appls/faust2wasm b/tools/faust2appls/faust2wasm
+index 98b18a4..414fcac 100755
+--- a/tools/faust2appls/faust2wasm
++++ b/tools/faust2appls/faust2wasm
+@@ -2,7 +2,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ #-------------------------------------------------------------------
+ # Wrapping resources
+diff --git a/tools/faust2appls/faust2webaudiowasm b/tools/faust2appls/faust2webaudiowasm
+index c34e3cd..745eaa5 100755
+--- a/tools/faust2appls/faust2webaudiowasm
++++ b/tools/faust2appls/faust2webaudiowasm
+@@ -2,7 +2,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ #-------------------------------------------------------------------
+ # Wrapping resources
+diff --git a/tools/faust2appls/faust2webaudiowast b/tools/faust2appls/faust2webaudiowast
+index fc8c649..ba6af2a 100755
+--- a/tools/faust2appls/faust2webaudiowast
++++ b/tools/faust2appls/faust2webaudiowast
+@@ -2,7 +2,7 @@
+
+ . faustpath
+ . faustoptflags
+-. usage.sh
++. faust-usage.sh
+
+ #-------------------------------------------------------------------
+ # Wrapping resources
+diff --git a/tools/faust2appls/faust2winunity b/tools/faust2appls/faust2winunity
+index bdb24c1..08ed834 100755
+--- a/tools/faust2appls/faust2winunity
++++ b/tools/faust2appls/faust2winunity
+@@ -15,7 +15,7 @@
+ # These files are automatically generated by the "faust2unity" script
+
+ . faustpath
+-. usage.sh
++. faust-usage.sh
+ . faustoptflags
+
+ CXXFLAGS+=" $MYGCCFLAGS" # So that additional CXXFLAGS can be used
+diff --git a/tools/faust2appls/faustremote b/tools/faust2appls/faustremote
+index bcd374c..b51b4f4 100755
+--- a/tools/faust2appls/faustremote
++++ b/tools/faust2appls/faustremote
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-. usage.sh
++. faust-usage.sh
+
+ #USAGE : faustremote <servurl> ==> <targets>
+ #USAGE : faustremote [<servurl>] <platform> <arch> <srcfile> ==> <binary.zip>
diff --git a/testing/fava/APKBUILD b/testing/fava/APKBUILD
new file mode 100644
index 00000000000..d2b851b5a6f
--- /dev/null
+++ b/testing/fava/APKBUILD
@@ -0,0 +1,72 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=fava
+pkgver=1.26.4
+pkgrel=0
+pkgdesc="Web interface for Beancount"
+url="https://beancount.github.io/fava/"
+arch="all !ppc64le" # limited by beancount
+license="MIT"
+depends="
+ beancount
+ python3
+ py3-babel
+ py3-flask
+ py3-flask-babel
+ py3-jinja2
+ py3-werkzeug
+ py3-cheroot
+ py3-click
+ py3-markdown2
+ py3-ply
+ py3-simplejson
+ "
+makedepends="
+ npm
+ nodejs
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/beancount/fava/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ # static files aren't detected to be included in the wheel file
+ echo "recursive-include src/fava *.html *.js *.md beancount_file" >> MANIFEST.in
+
+ cd frontend
+ npm install --no-progress
+}
+
+build() {
+ cd frontend
+ npm run build
+ cd ..
+
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ pybabel compile -d src/fava/translations
+ 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
+
+ # test_cli.py requires fava to be available inside PATH
+ .testenv/bin/python3 -m pytest --ignore=tests/test_cli.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4db046ec53704da417518e83344db1b9ff7c88698a65c1ed8cfebfda53af6b27ef1e0caf7de75c2d4eed42b73075be9bc221f53c3d7f422531c20f7aa2ba6357 fava-1.26.4.tar.gz
+"
diff --git a/testing/fbgrab/APKBUILD b/testing/fbgrab/APKBUILD
deleted file mode 100644
index 16de893c243..00000000000
--- a/testing/fbgrab/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=fbgrab
-pkgver=1.3.3
-pkgrel=0
-pkgdesc="Framebuffer screenshot program"
-url="https://fbgrab.monells.se"
-arch="all"
-license="GPL-2.0-only"
-makedepends="zlib-dev libpng-dev gzip linux-headers"
-subpackages="$pkgname-doc"
-source="fbgrab-$pkgver.tar.gz::https://github.com/GunnarMonell/fbgrab/archive/$pkgver.tar.gz"
-options="!check" #No testsuite
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="463d05e7df4e652ccc7aa8144d06323f3a20dfae71aafea251699e3b45db0d50b5a1b97f3a115569f7d301380306cdf909aee5f628943ea05c8f23fc9bbf81c5 fbgrab-1.3.3.tar.gz"
diff --git a/testing/fbp/APKBUILD b/testing/fbp/APKBUILD
new file mode 100644
index 00000000000..0172a1e8cf4
--- /dev/null
+++ b/testing/fbp/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Miles Alan <m@milesalan.com>
+# Contributor: Miles Alan <m@milesalan.com>
+pkgname=fbp
+pkgver=0.5
+pkgrel=1
+arch="aarch64 x86_64" # Limited by zig aport
+url="https://git.sr.ht/~mil/fbp"
+pkgdesc="Framebuffer linux phone UI environment, supported best on the Pinephone"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~mil/fbp/archive/$pkgver.tar.gz"
+license="GPL-3.0-or-later"
+makedepends="zig>=0.9.1 freetype-dev linux-headers"
+options="!check" # Has no tests
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+ aarch64|x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ zig build -Drelease-safe ${cputarget:+-Dcpu="$cputarget"}
+}
+
+package() {
+ install -Dm755 zig-out/bin/fbp "$pkgdir/usr/bin/fbp"
+}
+
+sha512sums="
+7f73d9a532c40c6be1feeedc5fe7256e83deb5e431aef46c07eb98e00a884e0919a5a5f668a1cf2d7357930d0ae297a7ef681b8482ec99b8e653d03e2ce56ae0 fbp-0.5.tar.gz
+"
diff --git a/testing/fceux/01-rdtsc.patch b/testing/fceux/01-rdtsc.patch
new file mode 100644
index 00000000000..af0f73be1d3
--- /dev/null
+++ b/testing/fceux/01-rdtsc.patch
@@ -0,0 +1,76 @@
+https://github.com/TASEmulators/fceux/issues/663
+
+--- a/src/utils/timeStamp.cpp
++++ b/src/utils/timeStamp.cpp
+@@ -14,6 +14,7 @@
+ //-------------------------------------------------------------------------
+ //---- Time Stamp Record
+ //-------------------------------------------------------------------------
++#ifdef __QT_DRIVER__
+ #if defined(WIN32)
+ #include <intrin.h>
+ #pragma intrinsic(__rdtsc)
+@@ -25,6 +26,7 @@ static uint64_t rdtsc()
+ {
+ return __rdtsc();
+ }
++#endif
+
+ namespace FCEU
+ {
+@@ -36,12 +38,15 @@ uint64_t timeStampRecord::qpcFreq = 0;
+
+ void timeStampRecord::readNew(void)
+ {
+-#if defined(__linux__) || defined(__APPLE__) || defined(__unix__)
+- clock_gettime( CLOCK_REALTIME, &ts );
+-#else
+- QueryPerformanceCounter((LARGE_INTEGER*)&ts);
+-#endif
+- tsc = rdtsc();
++ #ifdef __QT_DRIVER__
++ tsc = rdtsc();
++ #else
++ #if defined(__linux__) || defined(__APPLE__) || defined(__unix__)
++ clock_gettime( CLOCK_REALTIME, &ts );
++ #else
++ QueryPerformanceCounter((LARGE_INTEGER*)&ts);
++ #endif
++ #endif
+ }
+ #if defined(WIN32)
+ void timeStampRecord::qpcCalibrate(void)
+
+
+--- a/src/utils/timeStamp.cpp
++++ b/src/utils/timeStamp.cpp
+@@ -14,7 +14,7 @@
+ //-------------------------------------------------------------------------
+ //---- Time Stamp Record
+ //-------------------------------------------------------------------------
+-#ifdef __QT_DRIVER__
++#ifdef __FCEU_X86_TSC_ENABLE
+ #if defined(WIN32)
+ #include <intrin.h>
+ #pragma intrinsic(__rdtsc)
+@@ -38,14 +38,14 @@ uint64_t timeStampRecord::qpcFreq = 0;
+
+ void timeStampRecord::readNew(void)
+ {
+- #ifdef __QT_DRIVER__
++ #ifdef __FCEU_X86_TSC_ENABLE
+ tsc = rdtsc();
++ #endif
++
++ #if defined(__linux__) || defined(__APPLE__) || defined(__unix__)
++ clock_gettime( CLOCK_REALTIME, &ts );
+ #else
+- #if defined(__linux__) || defined(__APPLE__) || defined(__unix__)
+- clock_gettime( CLOCK_REALTIME, &ts );
+- #else
+- QueryPerformanceCounter((LARGE_INTEGER*)&ts);
+- #endif
++ QueryPerformanceCounter((LARGE_INTEGER*)&ts);
+ #endif
+ }
+ #if defined(WIN32)
diff --git a/testing/fceux/APKBUILD b/testing/fceux/APKBUILD
index 1ad2453193b..2587bcac1cb 100644
--- a/testing/fceux/APKBUILD
+++ b/testing/fceux/APKBUILD
@@ -1,38 +1,62 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname=fceux
-pkgver=2.2.3
-pkgrel=0
+pkgver=2.6.6
+pkgrel=1
pkgdesc="Fast and ultra-compatible NES/Famicom emulator"
-url="http://www.fceux.com"
-arch=""
+url="https://fceux.com"
+arch="all"
license="GPL-2.0-only"
-depends_dev="sdl-dev gd-dev gtk+2.0-dev mesa-dev glu-dev"
-makedepends="$depends_dev scons"
+makedepends="
+ cmake
+ clang15-dev
+ ffmpeg-dev
+ lua5.1-dev
+ mesa-dev
+ minizip-dev
+ qt6-qtbase-dev
+ samurai
+ sdl2-dev
+ zlib-dev
+ "
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/project/fceultra/Source%20Code/$pkgver%20src/$pkgname-$pkgver.src.tar.gz
- scons-python3.patch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/TASEmulators/fceux/archive/refs/tags/v$pkgver.tar.gz
+ 01-rdtsc.patch"
options="!check" # no testsuite
build() {
- scons -C "$pkgname-$pkgver"
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+
+ case "$CARCH" in
+ aarch64|arm*)
+ # for some reason we have to manually pass this. i guess because
+ # the default is just GL?
+ export CXXFLAGS="$CXXFLAGS -DQT_OPENGL_ES_2"
+ ;;
+ esac
+
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DQT6=ON \
+ $CMAKE_CROSSOPTS
+ cmake --build build
}
package() {
- scons install -i --prefix="$pkgdir/usr"
-
+ DESTDIR="$pkgdir" cmake --install build
install -d "$pkgdir/usr/share/doc/$pkgname"
cp -r documentation/* "$pkgdir/usr/share/doc/$pkgname/"
- install -Dm644 changelog.txt "$pkgdir/usr/share/doc/$pkgname/"
-
- # desktop shortcut
- install -Dm644 "$pkgname.desktop" \
- "$pkgdir/usr/share/applications/$pkgname.desktop"
- install -Dm644 "$pkgname.png" \
- "$pkgdir/usr/share/pixmaps/$pkgname.png"
-
+ install -Dm644 changelog.txt -t "$pkgdir/usr/share/doc/$pkgname/"
rm -f "$pkgdir/usr/share/$pkgname/"*.dll
}
-sha512sums="6deb83e9e773694f4040f5f325b0b5b4f45d58bb3481db67b4659c940d90c4c87e3ffeac712b72ddb3f5d089cd9fc7b55b497db61f708c23a7c43c17eda55c7b fceux-2.2.3.src.tar.gz
-2c2cf6d7eac03a4cf7f66118e0f8af9562eb5497c2e3159952eced1edee5f38c983ede704536eade645f5c028635b8ff0ceca8769dcf0d50b3159a1666660ae0 scons-python3.patch"
+sha512sums="
+0a6cff4c6b900569978003675812d92d893281c2bdf3b0b58c07e257251648ee325f9bb29b01253ab1a5e9354631d91a6e67a1e6bb36ebe89d5067509cabfa64 fceux-2.6.6.tar.gz
+7ebd367bec7799023cf6a4fc95c93161760e33881bc2f705ef664758292066e8a49c7c774b0df7f7587eb913c5d2816caf49d9e15d1b165dc7d93dd7e4e59f23 01-rdtsc.patch
+"
diff --git a/testing/fceux/scons-python3.patch b/testing/fceux/scons-python3.patch
deleted file mode 100644
index d3be48de222..00000000000
--- a/testing/fceux/scons-python3.patch
+++ /dev/null
@@ -1,108 +0,0 @@
---- fceux-2.2.3/SConstruct.orig 2019-07-26 18:04:29.368573309 +0000
-+++ fceux-2.2.3/SConstruct 2019-07-26 18:04:31.975265342 +0000
-@@ -46,30 +46,30 @@
- # Default compiler flags:
- env.Append(CCFLAGS = ['-Wall', '-Wno-write-strings', '-Wno-sign-compare'])
-
--if os.environ.has_key('PLATFORM'):
-+if os.environ.get('PLATFORM'):
- env.Replace(PLATFORM = os.environ['PLATFORM'])
--if os.environ.has_key('CC'):
-+if os.environ.get('CC'):
- env.Replace(CC = os.environ['CC'])
--if os.environ.has_key('CXX'):
-+if os.environ.get('CXX'):
- env.Replace(CXX = os.environ['CXX'])
--if os.environ.has_key('WINDRES'):
-+if os.environ.get('WINDRES'):
- env.Replace(WINDRES = os.environ['WINDRES'])
--if os.environ.has_key('CFLAGS'):
-+if os.environ.get('CFLAGS'):
- env.Append(CCFLAGS = os.environ['CFLAGS'].split())
--if os.environ.has_key('CXXFLAGS'):
-+if os.environ.get('CXXFLAGS'):
- env.Append(CXXFLAGS = os.environ['CXXFLAGS'].split())
--if os.environ.has_key('CPPFLAGS'):
-+if os.environ.get('CPPFLAGS'):
- env.Append(CPPFLAGS = os.environ['CPPFLAGS'].split())
--if os.environ.has_key('LDFLAGS'):
-+if os.environ.get('LDFLAGS'):
- env.Append(LINKFLAGS = os.environ['LDFLAGS'].split())
--if os.environ.has_key('PKG_CONFIG_PATH'):
-+if os.environ.get('PKG_CONFIG_PATH'):
- env['ENV']['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH']
--if not os.environ.has_key('PKG_CONFIG_PATH') and env['PLATFORM'] == 'darwin':
-+if not os.environ.get('PKG_CONFIG_PATH') and env['PLATFORM'] == 'darwin':
- env['ENV']['PKG_CONFIG_PATH'] = "/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig"
--if os.environ.has_key('PKG_CONFIG_LIBDIR'):
-+if os.environ.get('PKG_CONFIG_LIBDIR'):
- env['ENV']['PKG_CONFIG_LIBDIR'] = os.environ['PKG_CONFIG_LIBDIR']
-
--print "platform: ", env['PLATFORM']
-+print ("platform: ", env['PLATFORM'])
-
- # compile with clang
- if env['CLANG']:
-@@ -103,18 +103,18 @@
- assert conf.CheckLibWithHeader('z', 'zlib.h', 'c', 'inflate;', 1), "please install: zlib"
- if env['SDL2']:
- if not conf.CheckLib('SDL2'):
-- print 'Did not find libSDL2 or SDL2.lib, exiting!'
-+ print ('Did not find libSDL2 or SDL2.lib, exiting!')
- Exit(1)
- env.Append(CPPDEFINES=["_SDL2"])
- env.ParseConfig('pkg-config sdl2 --cflags --libs')
- else:
- if not conf.CheckLib('SDL'):
-- print 'Did not find libSDL or SDL.lib, exiting!'
-+ print ('Did not find libSDL or SDL.lib, exiting!')
- Exit(1)
- env.ParseConfig('sdl-config --cflags --libs')
- if env['GTK']:
- if not conf.CheckLib('gtk-x11-2.0'):
-- print 'Could not find libgtk-2.0, exiting!'
-+ print ('Could not find libgtk-2.0, exiting!')
- Exit(1)
- # Add compiler and linker flags from pkg-config
- config_string = 'pkg-config --cflags --libs gtk+-2.0'
-@@ -153,7 +153,7 @@
- env.Append(CCFLAGS = ["-I/usr/include/lua"])
- lua_available = True
- if lua_available == False:
-- print 'Could not find liblua, exiting!'
-+ print ('Could not find liblua, exiting!')
- Exit(1)
- else:
- env.Append(CCFLAGS = ["-Isrc/lua/src"])
-@@ -167,7 +167,7 @@
- gd = conf.CheckLib('gd', autoadd=1)
- if gd == 0:
- env['LOGO'] = 0
-- print 'Did not find libgd, you won\'t be able to create a logo screen for your avis.'
-+ print ('Did not find libgd, you won\'t be able to create a logo screen for your avis.')
-
- if env['OPENGL'] and conf.CheckLibWithHeader('GL', 'GL/gl.h', 'c', autoadd=1):
- conf.env.Append(CCFLAGS = "-DOPENGL")
-@@ -181,8 +181,8 @@
- if env['FRAMESKIP']:
- env.Append(CPPDEFINES = ['FRAMESKIP'])
-
--print "base CPPDEFINES:",env['CPPDEFINES']
--print "base CCFLAGS:",env['CCFLAGS']
-+print ("base CPPDEFINES:",env['CPPDEFINES'])
-+print ("base CCFLAGS:",env['CCFLAGS'])
-
- if env['DEBUG']:
- env.Append(CPPDEFINES=["_DEBUG"], CCFLAGS = ['-g', '-O0'])
---- fceux-2.2.3/src/SConscript.orig 2019-07-26 18:08:11.297535443 +0000
-+++ fceux-2.2.3/src/SConscript 2019-07-26 18:08:33.857781956 +0000
-@@ -33,7 +33,7 @@
- platform_files = SConscript('drivers/sdl/SConscript')
- file_list.append(platform_files)
-
--print env['LINKFLAGS']
-+print (env['LINKFLAGS'])
-
- if env['PLATFORM'] == 'win32':
- fceux = env.Program('fceux.exe', file_list)
-
diff --git a/testing/fcitx5-anthy/APKBUILD b/testing/fcitx5-anthy/APKBUILD
new file mode 100644
index 00000000000..4cc3ceea443
--- /dev/null
+++ b/testing/fcitx5-anthy/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer:
+pkgname=fcitx5-anthy
+pkgver=5.1.3
+pkgrel=0
+pkgdesc="anthy input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-anthy"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ anthy-dev
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ fcitx5-qt-dev
+ qt5-qttools-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-anthy/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+dd1a9022424ea0fc45f27c17555eca15a475f5f9ac3dadba5c77d59d365eca959b52ee88293ff0fed72ecd90380e7d57c9eacbf6a26dcba5502588eb0c97dce7 fcitx5-anthy-5.1.3.tar.gz
+"
diff --git a/testing/fcitx5-bamboo/APKBUILD b/testing/fcitx5-bamboo/APKBUILD
new file mode 100644
index 00000000000..c2aeda613d4
--- /dev/null
+++ b/testing/fcitx5-bamboo/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer:
+pkgname=fcitx5-bamboo
+pkgver=1.0.4
+pkgrel=9
+_bamboo_core=f0ca534819fa84ee37df9277ff2449d82ed1ec3e
+pkgdesc="bamboo input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-bamboo"
+arch="all"
+license="LGPL-2.1-or-later AND MIT"
+makedepends="
+ cmake
+ extra-cmake-modules
+ fcitx5-dev
+ gettext-dev
+ go
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-bamboo/archive/refs/tags/$pkgver.tar.gz
+ bamboo-core-$_bamboo_core.tar.gz::https://github.com/BambooEngine/bamboo-core/archive/$_bamboo_core.tar.gz
+ "
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ rmdir bamboo/bamboo-core
+ ln -sfv "$srcdir"/bamboo-core-$_bamboo_core bamboo/bamboo-core
+}
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+80d5e73ff35fd8308c9ce24cc7cb131239470957959109ee7115ae8cac8b1583046f024ae19a6a5a5a2f29ff7c0adef1a4cd0ed06bce9e1128bc478d34f54333 fcitx5-bamboo-1.0.4.tar.gz
+3d8034b20c1001500216f94c6e03d07831ce762fcf57cb7b8d238efeb17f8ed40cd5aa6965793384bd0e8f20dac82c74bc2e08d89b4e91ccf3a494d7b9da4ae7 bamboo-core-f0ca534819fa84ee37df9277ff2449d82ed1ec3e.tar.gz
+"
diff --git a/testing/fcitx5-chewing/APKBUILD b/testing/fcitx5-chewing/APKBUILD
new file mode 100644
index 00000000000..5ba6499a85a
--- /dev/null
+++ b/testing/fcitx5-chewing/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: ProgCat <progcat@protonmail.com>
+# Maintainer: ProgCat <progcat@protonmail.com>
+pkgname=fcitx5-chewing
+pkgver=5.1.1
+pkgrel=0
+pkgdesc="Chewing Wrapper for Fcitx"
+url="https://github.com/fcitx/fcitx5-chewing"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ fcitx5-dev
+ gettext-dev
+ libchewing-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-chewing/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d88aad759398bca9417a0d77f5a897212a52b3ce9b7d4a891bd0ba9a86c2e3db7b9dd5525ffbc72baaa951b0024085f6eade6cbf62591a628303397164fd5856 fcitx5-chewing-5.1.1.tar.gz
+"
diff --git a/testing/fcitx5-chinese-addons/APKBUILD b/testing/fcitx5-chinese-addons/APKBUILD
new file mode 100644
index 00000000000..884d9949311
--- /dev/null
+++ b/testing/fcitx5-chinese-addons/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-chinese-addons
+pkgver=5.1.4
+pkgrel=1
+pkgdesc="Chinese Addons for Fcitx"
+url="https://github.com/fcitx/fcitx5-chinese-addons"
+# armhf, armv7, s390x, ppc64le, riscv64: qt6-qtwebengine
+arch="all !armhf !armv7 !ppc64le !s390x !riscv64"
+license="LGPL-2.1-or-later AND GPL-2.0-or-later"
+makedepends="
+ boost-dev
+ cmake
+ curl-dev
+ extra-cmake-modules
+ fcitx5-dev
+ fcitx5-lua-dev
+ fcitx5-qt-dev
+ fmt-dev
+ gettext-dev
+ libime-dev
+ libpinyin-dev
+ opencc-dev
+ qt6-qtbase-dev
+ qt6-qtwebengine-dev
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-chinese-addons/archive/refs/tags/$pkgver.tar.gz"
+options="net" # checksummed data modules
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DUSE_WEBKIT=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E testchttrans
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+596d12a033b9f8cb252e7b630872b999df965e1a1cfcf872683df2c148996a0440ce6f78625436c998749d2e81599aa2a7fdebdbd787a8e20ac777a700815ba9 fcitx5-chinese-addons-5.1.4.tar.gz
+"
diff --git a/testing/fcitx5-configtool/APKBUILD b/testing/fcitx5-configtool/APKBUILD
new file mode 100644
index 00000000000..82b5d19e015
--- /dev/null
+++ b/testing/fcitx5-configtool/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: ProgCat <progcat@protonmail.com>
+# Maintainer: ProgCat <progcat@protonmail.com>
+pkgname=fcitx5-configtool
+pkgver=5.1.4
+pkgrel=0
+pkgdesc="A configure tool for Fcitx5"
+url="https://github.com/fcitx/fcitx5-configtool"
+arch="all !armhf"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ fcitx5-dev
+ fcitx5-qt-dev
+ gettext-dev
+ iso-codes
+ iso-codes-dev
+ kcoreaddons5-dev
+ kdeclarative5-dev
+ ki18n5-dev
+ kiconthemes5-dev
+ kirigami2-dev
+ kpackage5-dev
+ kwidgetsaddons5-dev
+ libxkbcommon-dev
+ libxkbfile-dev
+ qt6-qtsvg-dev
+ libplasma-dev
+ qt6-qtdeclarative-dev
+ samurai
+ xkeyboard-config-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-configtool/archive/refs/tags/$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\
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DUSE_QT6=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+2012882d1c4e58d69898d3b2b60f26124d9b87a05e91192e776db2738402423c3c6ac181185aa1ccd19984c2d3fdac9ededf6a7477d79588170934f24790be47 fcitx5-configtool-5.1.4.tar.gz
+"
diff --git a/testing/fcitx5-gtk/APKBUILD b/testing/fcitx5-gtk/APKBUILD
new file mode 100644
index 00000000000..078130bdd5c
--- /dev/null
+++ b/testing/fcitx5-gtk/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-gtk
+pkgver=5.1.2
+pkgrel=0
+pkgdesc="Fcitx5 GTK module"
+url="https://github.com/fcitx/fcitx5-gtk/"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="fcitx5"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gobject-introspection-dev
+ gtk+3.0-dev
+ gtk4.0-dev
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ ${pkgname}3:_gtk3
+ ${pkgname}4:_gtk4
+ "
+options="!check" # no test suites
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-gtk/archive/$pkgver.tar.gz"
+
+build() {
+ _build 3
+ _build 4
+ _build libs
+}
+
+_build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B $pkgname-$1 -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_BUILD_RPATH=true \
+ -DENABLE_GTK2_IM_MODULE=OFF \
+ -DENABLE_GTK3_IM_MODULE=OFF \
+ -DENABLE_GTK4_IM_MODULE=OFF \
+ -DENABLE_GTK"$1"_IM_MODULE=ON \
+ -DENABLE_SNOOPER=ON \
+ -DENABLE_GIR=ON
+ cmake --build $pkgname-$1
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install $pkgname-3
+ DESTDIR="$pkgdir" cmake --install $pkgname-4
+ DESTDIR="$pkgdir" cmake --install $pkgname-libs
+}
+
+_gtk3() {
+ pkgdesc="${pkgdesc/GTK/GTK3}"
+ install_if="$pkgname=$pkgver-r$pkgrel gtk+3.0"
+ amove usr/lib/gtk-3.0
+}
+
+_gtk4() {
+ pkgdesc="${pkgdesc/GTK/GTK4}"
+ install_if="$pkgname=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/lib/gtk-4.0
+}
+
+sha512sums="
+9be64cce50f48f57340a69164ae8878ebc05f2e637ac281e3b5ff4c09427b40347088c51e799e345a3c7866026061787116acd5e081c77491638b582d766c94d fcitx5-gtk-5.1.2.tar.gz
+"
diff --git a/testing/fcitx5-hangul/APKBUILD b/testing/fcitx5-hangul/APKBUILD
new file mode 100644
index 00000000000..b4542a5fbc4
--- /dev/null
+++ b/testing/fcitx5-hangul/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-hangul
+pkgver=5.1.2
+pkgrel=0
+pkgdesc="libhangul input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-hangul"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ libhangul-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-hangul/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+5e1ba80a29ee08200d4bb40ffb33fa7ad69f6f8476e00c10e9e4e800d6d29bc7f92346d6f377b2497e7080f780d913c1aee7042048a0a6099a812b1dec34abe0 fcitx5-hangul-5.1.2.tar.gz
+"
diff --git a/testing/fcitx5-kkc/APKBUILD b/testing/fcitx5-kkc/APKBUILD
new file mode 100644
index 00000000000..a18620545a5
--- /dev/null
+++ b/testing/fcitx5-kkc/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-kkc
+pkgver=5.1.2
+pkgrel=0
+pkgdesc="libkkc input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-kkc"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ fcitx5-qt-dev
+ libkkc-dev
+ qt6-qttools-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-kkc/archive/refs/tags/$pkgver.tar.gz
+ cxx17.patch
+ "
+options="!check" # no tests
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ecf217da4c765dc8c10dd82fc5141bc51f8461624a4b45b2c2054b6775f424dfb3aa3c533d05f7595a3f63b4124ca5efebade2188ad6a47fcb553d61a6f3ccde fcitx5-kkc-5.1.2.tar.gz
+e58e74bc15497462414d2fbb99c0685249de5f5a5850d39696dfde7e3c171d5932a9b2f4bfd3d4a9c2e2d103ad2456cd2e7d0545a254b55b79cecb08d953d779 cxx17.patch
+"
diff --git a/testing/fcitx5-kkc/cxx17.patch b/testing/fcitx5-kkc/cxx17.patch
new file mode 100644
index 00000000000..1291ecba80f
--- /dev/null
+++ b/testing/fcitx5-kkc/cxx17.patch
@@ -0,0 +1,14 @@
+required against new fcitx libs
+diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
+index 2327132..8a6f0d8 100644
+--- a/gui/CMakeLists.txt
++++ b/gui/CMakeLists.txt
+@@ -17,7 +17,7 @@ qt5_wrap_ui(KKC_CONFIG_SRCS dictwidget.ui adddictdialog.ui shortcutwidget.ui add
+ add_library(fcitx5-kkc-config
+ MODULE ${KKC_CONFIG_SRCS})
+
+-add_definitions(-DQT_NO_KEYWORDS)
++add_definitions(-DQT_NO_KEYWORDS -std=c++17)
+
+ target_include_directories(fcitx5-kkc-config PRIVATE ${PROJECT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+
diff --git a/testing/fcitx5-lua/APKBUILD b/testing/fcitx5-lua/APKBUILD
new file mode 100644
index 00000000000..44d07374842
--- /dev/null
+++ b/testing/fcitx5-lua/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer:
+pkgname=fcitx5-lua
+pkgver=5.0.12
+pkgrel=0
+pkgdesc="Lua support for fcitx5"
+url="https://github.com/fcitx/fcitx5-lua"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ lua5.3-dev
+ samurai
+ "
+subpackages="$pkgname-lang $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-lua/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_DLOPEN=OFF \
+ -DLUA_LIBRARIES=/usr/lib/liblua-5.3.so.0 \
+ -DLUA_LIBRARY=/usr/lib/liblua-5.3.so.0 \
+ -DENABLE_TEST="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+09a0d9e21d378c114dfda1ba89c5f9bc49dca9fc2c3241451b00a3629510f2d152eef5a5d4a055c4aaab036c1469b6aa210400f0ffd90f3a81bcad5ea114c291 fcitx5-lua-5.0.12.tar.gz
+"
diff --git a/testing/fcitx5-m17n/APKBUILD b/testing/fcitx5-m17n/APKBUILD
new file mode 100644
index 00000000000..3367cf55de5
--- /dev/null
+++ b/testing/fcitx5-m17n/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer:
+pkgname=fcitx5-m17n
+pkgver=5.1.0
+pkgrel=1
+pkgdesc="m17n extra input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-m17n"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ fmt-dev
+ m17n-lib-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-m17n/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_TEST="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failre
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+de273de4a01d0c9f23c6b96fe984c97881947907911e3ea60fefc5dcb50e23dcd64a28e891893ed058fe4ec2c2f7f2dbc4a0f8de2957052ff9c5ea5d88f5ff21 fcitx5-m17n-5.1.0.tar.gz
+"
diff --git a/testing/fcitx5-qt/APKBUILD b/testing/fcitx5-qt/APKBUILD
new file mode 100644
index 00000000000..a65adb4b0f2
--- /dev/null
+++ b/testing/fcitx5-qt/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: ProgCat <progcat@protonmail.com>
+# Maintainer: ProgCat <progcat@protonmail.com>
+pkgname=fcitx5-qt
+pkgver=5.1.5
+pkgrel=0
+pkgdesc="Qt library and IM module for Fcitx5"
+url="https://github.com/fcitx/fcitx5-qt"
+arch="all"
+license="LGPL-2.1-or-later AND BSD-3-Clause"
+makedepends="
+ cmake
+ extra-cmake-modules
+ fcitx5-dev
+ libxkbcommon-dev
+ libxcb-dev
+ libxkbcommon-dev
+ libxcb-dev
+ libx11-dev
+ libxcb-dev
+ libxkbcommon-dev
+ qt5-qtbase-dev
+ qt6-qtbase-dev
+ qt6-qtwayland-dev
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-lang
+ $pkgname-qt5
+ $pkgname-qt6
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-qt/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CXXFLAGS="$CXXFLAGS -flto=auto -DNDEBUG" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DENABLE_QT4=Off \
+ -DENABLE_QT6=ON \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+qt5() {
+ pkgdesc="$pkgdesc (Qt5)"
+ install_if="$pkgname=$pkgver-r$pkgrel qt5-qtbase-x11"
+
+ amove usr/lib/libFcitx5Qt5*
+ amove usr/lib/qt5
+ amove usr/libexec/fcitx5-qt5-gui-wrapper
+ amove usr/share/applications/org.fcitx.fcitx5-qt5-gui-wrapper.desktop
+}
+
+qt6() {
+ pkgdesc="$pkgdesc (Qt6)"
+ install_if="$pkgname=$pkgver-r$pkgrel qt6-qtbase-x11"
+
+ amove usr/lib/libFcitx5Qt6*
+ amove usr/lib/fcitx5/qt6
+ amove usr/lib/qt6
+}
+
+sha512sums="
+a153571b9e393ab1fb355b6de840760e3fec186c62785ac2a8186e0a023d8f3b517a25ee251747ad457e12d649b55e8b558772b8c0b015b8ae459f3f66098a06 fcitx5-qt-5.1.5.tar.gz
+"
diff --git a/testing/fcitx5-rime/APKBUILD b/testing/fcitx5-rime/APKBUILD
new file mode 100644
index 00000000000..ebd15bcfdbf
--- /dev/null
+++ b/testing/fcitx5-rime/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-rime
+pkgver=5.1.5
+pkgrel=0
+pkgdesc="librime input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-rime"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ fcitx5-qt-dev
+ librime-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-rime/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+b80b86e3e984a7cba345087c6d7cdc88366297ab9027ee4767367454b65be870d4e5e53dd6214a856b9cf3b3edebaff75fa1d60faf9295f74a8a8706c0094f87 fcitx5-rime-5.1.5.tar.gz
+"
diff --git a/testing/fcitx5-table-extra/APKBUILD b/testing/fcitx5-table-extra/APKBUILD
new file mode 100644
index 00000000000..3a9e3b75244
--- /dev/null
+++ b/testing/fcitx5-table-extra/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-table-extra
+pkgver=5.1.4
+pkgrel=0
+pkgdesc="extra-table input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-table-extra"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ libime-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-table-extra/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+12611d16f06aa28d82764feb7a0bab8114106519be3e5f011eed6da6354729432968354adb48ddc425b215295cb6d5006ea8da82cb1ac78e77ae76c4ba1f40c7 fcitx5-table-extra-5.1.4.tar.gz
+"
diff --git a/testing/fcitx5-table-other/APKBUILD b/testing/fcitx5-table-other/APKBUILD
new file mode 100644
index 00000000000..77ed61001a1
--- /dev/null
+++ b/testing/fcitx5-table-other/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-table-other
+pkgver=5.1.1
+pkgrel=0
+pkgdesc="other-table input method support for fcitx5"
+url="https://github.com/fcitx/fcitx5-table-other"
+arch="noarch"
+license="GPL-3.0-only"
+makedepends="
+ cmake
+ extra-cmake-modules
+ gettext-dev
+ fcitx5-dev
+ libime-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-table-other/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+2447caebb5774d9157293c09729b63e3fc7bbd83ae32a39e2ed0b70a1979bb32dd757587da41b818d94ecd7c7c636c10a1fe0304b646e24fe6d8bda9b8774029 fcitx5-table-other-5.1.1.tar.gz
+"
diff --git a/testing/fcitx5-unikey/APKBUILD b/testing/fcitx5-unikey/APKBUILD
new file mode 100644
index 00000000000..8b2fc34ffbd
--- /dev/null
+++ b/testing/fcitx5-unikey/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=fcitx5-unikey
+pkgver=5.1.3
+pkgrel=0
+pkgdesc="Unikey Wrapper for Fcitx"
+url="https://github.com/fcitx/fcitx5-unikey"
+arch="all"
+license="LGPL-2.0-or-later AND GPL-2.0-or-later"
+makedepends="
+ cmake
+ extra-cmake-modules
+ fcitx5-dev
+ fcitx5-qt-dev
+ gettext-dev
+ qt6-qtbase-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5-unikey/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DENABLE_TEST="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+c74be9089bb8ef2e44678336b28ca397f2af06e2f69f66c94d55c2ab8325c97f01fa517398a4640e660dbe95b5090970c72adad39ba6d87276faa96b34b762e1 fcitx5-unikey-5.1.3.tar.gz
+"
diff --git a/testing/fcitx5/APKBUILD b/testing/fcitx5/APKBUILD
new file mode 100644
index 00000000000..bfbb2fa6a1a
--- /dev/null
+++ b/testing/fcitx5/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=fcitx5
+pkgver=5.1.8
+pkgrel=0
+pkgdesc="Generic input method framework"
+url="https://github.com/fcitx/fcitx5"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ cairo-dev
+ dbus-dev
+ enchant2-dev
+ extra-cmake-modules
+ fmt-dev
+ gdk-pixbuf-dev
+ iso-codes
+ iso-codes-dev
+ iso-codes-lang
+ json-c-dev
+ libxkbcommon-dev
+ libxkbfile-dev
+ mesa-dev
+ pango-dev
+ samurai
+ wayland-dev
+ wayland-protocols
+ xcb-imdkit-dev
+ xcb-util-keysyms-dev
+ xcb-util-wm-dev
+ xkeyboard-config-dev
+ libuv-dev
+ "
+
+subpackages="$pkgname-lang $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/fcitx5/archive/$pkgver/fcitx5-$pkgver.tar.gz"
+options="!check" # requires working dbus
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CXXFLAGS="$CXXFLAGS -DNDEBUG" \
+ cmake -G Ninja -B build -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+e815e7a991c2f07b64d33c988b20e6051fa5ab5d0c25f3971d6b1689d50eee3dd57f58e521d8fa8619b10c800ede664f4642c1e6f7d9344e6f7c2bd65c1340d1 fcitx5-5.1.8.tar.gz
+"
diff --git a/testing/fdm-materials/APKBUILD b/testing/fdm-materials/APKBUILD
new file mode 100644
index 00000000000..5bde97de88c
--- /dev/null
+++ b/testing/fdm-materials/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=fdm-materials
+pkgver=5.2.2
+pkgrel=0
+pkgdesc="FDM Material Database"
+url="https://github.com/Ultimaker/fdm_materials"
+arch="noarch"
+license="CC0-1.0"
+makedepends="cmake samurai"
+options="!check" # no checks provided
+source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/fdm_materials/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/fdm_materials-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+73eefec8b7b88af73afc578ffba583480bda30309945b1720d7a1a075bd7ab3279599d53fe83f4c96695f294a5a3e11297abc334ca6cc9db163d4eb0fbdaf0f9 fdm-materials-5.2.2.tar.gz
+"
diff --git a/testing/fdm/APKBUILD b/testing/fdm/APKBUILD
index 20a9123e1cf..d114265b877 100644
--- a/testing/fdm/APKBUILD
+++ b/testing/fdm/APKBUILD
@@ -1,26 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname="fdm"
-pkgver="2.0"
+pkgname=fdm
+pkgver=2.2
pkgrel=0
pkgdesc="A simple lightweight tool of fetching, filtering and delivering emails"
url="https://github.com/nicm/fdm"
arch="all"
license="ISC"
-depends=""
-makedepends="tdb-dev openssl-dev zlib-dev bsd-compat-headers pcre-dev
- automake autoconf libtool"
+makedepends="
+ openssl-dev>3
+ pcre2-dev
+ tdb-dev
+ zlib-dev
+ "
subpackages="$pkgname-doc"
source="https://github.com/nicm/fdm/releases/download/$pkgver/fdm-$pkgver.tar.gz
- fix-base64.patch
+ $pkgname-pcre2-fix.patch::https://github.com/nicm/fdm/commit/f1ec1982725d60045c0d871f3e613f2880046c22.patch
"
-bbuuilddir="$srcdir/fdm-$pkgver"
-
-prepare() {
- default_prepare
- autoreconf -vif
-}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,7 +26,7 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
- --enable-pcre
+ --enable-pcre2
make
}
@@ -40,5 +38,7 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="14e923202d17083ceb3b91b3a442d7e512c37f3d29535f22d8c0c4e1d57c97acc5d5465d643ed0cf437b3945ef777a6e38da3117219c2d54dcec88ecab1e10d9 fdm-2.0.tar.gz
-ec2ebaa39e653db807ed89ec162960d5734c858b1a15a92ea9dfcd34a39c803f33d0e05e7333d1878df9d5d6187da3d12249cc397d8fcdad4e3decd836cc0a59 fix-base64.patch"
+sha512sums="
+13efa0f272c5f6146b90e094602e8a9b52016af79ae0b6cd80dc9f36b2ba37f64cadae7313bd8db90bcb007dd07206a3614987f11bb82c3535e04f0511c9fc6d fdm-2.2.tar.gz
+408da5b9ee9936fb198cdeb5bf3ad8e350845e9d0b009830d933cde0d5f8175c573a526ade42459ee32ddf7b1354a254c284214891f61afa16e71296bf53b71d fdm-pcre2-fix.patch
+"
diff --git a/testing/fdm/fix-base64.patch b/testing/fdm/fix-base64.patch
deleted file mode 100644
index 0326f57c368..00000000000
--- a/testing/fdm/fix-base64.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 519e41833c1f7d353c09d8d51bfd6d13d0cfc16c Mon Sep 17 00:00:00 2001
-From: Nicholas Marriott <nicholas.marriott@gmail.com>
-Date: Mon, 18 Feb 2019 22:26:29 +0000
-Subject: [PATCH] Do not add base64.c twice, from Rosen Penev.
-
----
- Makefile.am | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 611ae87..e9f2f64 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -123,6 +123,3 @@ endif
- if NO_STRTONUM
- nodist_fdm_SOURCES += compat/strtonum.c
- endif
--if NO_B64_NTOP
--nodist_fdm_SOURCES += compat/base64.c
--endif
-From 3232e537ccaba4417b25d9d70264e4a5533042da Mon Sep 17 00:00:00 2001
-From: Nicholas Marriott <nicholas.marriott@gmail.com>
-Date: Mon, 18 Mar 2019 13:04:00 +0000
-Subject: [PATCH] Fix bas64 declarations, from makepost at firemail dot cc.
-
----
- fdm.h | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/fdm.h b/fdm.h
-index 41eaa37..511a7b1 100644
---- a/fdm.h
-+++ b/fdm.h
-@@ -20,7 +20,6 @@
- #define FDM_H
-
- #include <sys/param.h>
--#include <sys/cdefs.h>
- #include <sys/stat.h>
-
- #ifdef HAVE_QUEUE_H
-@@ -725,8 +724,8 @@ size_t strlcat(char *, const char *, size_t);
-
- #ifndef HAVE_B64_NTOP
- /* base64.c */
--int b64_ntop(src, srclength, target, targsize);
--int b64_pton(src, target, targsize);
-+int b64_ntop(u_char const *, size_t, char *, size_t);
-+int b64_pton(char const *, u_char *, size_t);
- #endif
-
- /* shm.c */
diff --git a/testing/featherpad/APKBUILD b/testing/featherpad/APKBUILD
new file mode 100644
index 00000000000..a0dfc326d2d
--- /dev/null
+++ b/testing/featherpad/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
+# Maintainer: Pedram Pourang <tsujan2000@gmail.com>
+pkgname=featherpad
+pkgver=1.5.0
+pkgrel=0
+pkgdesc="Lightweight Qt plain-text editor"
+url="https://github.com/tsujan/FeatherPad"
+license="GPL-3.0-or-later"
+arch="all"
+makedepends="
+ cmake
+ hunspell-dev
+ qt6-qtbase-dev
+ qt6-qtsvg-dev
+ qt6-qttools-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+options="!check" # no test suite
+source="https://github.com/tsujan/FeatherPad/releases/download/V$pkgver/FeatherPad-$pkgver.tar.xz"
+builddir="$srcdir/FeatherPad-$pkgver"
+
+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=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+lang() {
+ amove usr/share/$pkgname/translations
+}
+
+sha512sums="
+5104fbcb2f83e3bdb9c1394cd546b1d6036d3e00e4e358da05affed895a426b1d63bd4d62edc5c65beed96fa3d4adcdadafb4f5b2eb84406ba651576e49c2bb6 FeatherPad-1.5.0.tar.xz
+"
diff --git a/testing/felix/APKBUILD b/testing/felix/APKBUILD
new file mode 100644
index 00000000000..536d4776e9e
--- /dev/null
+++ b/testing/felix/APKBUILD
@@ -0,0 +1,59 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=felix
+pkgver=2.12.1
+pkgrel=0
+pkgdesc="Simple TUI file manager with vim-like key mapping"
+url="https://kyoheiu.dev/felix/"
+# s390x: nix crate doesn't build yet
+arch="all !s390x"
+license="MIT"
+makedepends="
+ bzip2-dev
+ cargo
+ cargo-auditable
+ libgit2-dev
+ oniguruma-dev
+ zlib-ng-dev
+ zstd-dev
+ "
+checkdepends="zoxide"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/kyoheiu/felix/archive/refs/tags/v$pkgver.tar.gz
+ use-system-libs.patch
+ "
+
+export RUSTONIG_DYNAMIC_LIBONIG=1
+
+prepare() {
+ default_prepare
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided libs
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ git2 = { rustc-link-lib = ["git2"] }
+ z-ng = { rustc-link-lib = ["z-ng"], rustc-cfg = ["zng"] }
+ EOF
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/fx -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+30ff3277d7e9c0c90387a91ed6c50ab1949905ccd645e9e95d2a56a0fd919e9e8bbb69ce4b72525f0e8ed775882840f3829e4387a39a2d2e760d8d1245d7e8c8 felix-2.12.1.tar.gz
+3f9383877e8ad036a09c75d954ec4574e26b1b1aa660170d065867be9080aad9e4bb8ad63d86a684d4c1534c86ebe29a35b746f73e572485b17f26177319d461 use-system-libs.patch
+"
diff --git a/testing/felix/use-system-libs.patch b/testing/felix/use-system-libs.patch
new file mode 100644
index 00000000000..30ad2a35e21
--- /dev/null
+++ b/testing/felix/use-system-libs.patch
@@ -0,0 +1,61 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index b08d2aa..0fbd4a8 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -147,6 +147,15 @@ dependencies = [
+ "inout",
+ ]
+
++[[package]]
++name = "cmake"
++version = "0.1.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
++dependencies = [
++ "cc",
++]
++
+ [[package]]
+ name = "constant_time_eq"
+ version = "0.1.5"
+@@ -376,6 +385,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+ dependencies = [
+ "crc32fast",
++ "libz-ng-sys",
+ "miniz_oxide",
+ ]
+
+@@ -542,6 +552,16 @@ dependencies = [
+ "redox_syscall",
+ ]
+
++[[package]]
++name = "libz-ng-sys"
++version = "1.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5"
++dependencies = [
++ "cmake",
++ "libc",
++]
++
+ [[package]]
+ name = "libz-sys"
+ version = "1.1.15"
+diff --git a/Cargo.toml b/Cargo.toml
+index 3ccaf0f..1aebeba 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -30,9 +30,9 @@ crossterm = "0.26.1"
+ serde_yaml = "0.9.25"
+ zip = "0.6.6"
+ tar = "0.4.39"
+-flate2 = "1.0.26"
++flate2 = {version = "1.0.26", default-features = false, features = ["zlib-ng"]}
+ lzma-rs = "0.3.0"
+-zstd = "0.12.4"
++zstd = {version = "0.12.4", default-features = false, features = ["pkg-config"]}
+ unicode-width = "0.1.10"
+ git2 = {version = "0.18.0", default-features = false }
+
diff --git a/testing/ffcall/APKBUILD b/testing/ffcall/APKBUILD
deleted file mode 100644
index 1f6785ac312..00000000000
--- a/testing/ffcall/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=ffcall
-pkgver=2.2
-pkgrel=1
-pkgdesc="C library for implementing foreign function calls in embedded interpreters"
-url="https://www.gnu.org/software/libffcall"
-arch="all !mips !mips64"
-license="GPL-2.0-or-later"
-makedepends="$depends_dev"
-subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/libffcall/libffcall-$pkgver.tar.gz"
-
-builddir="$srcdir"/libffcall-$pkgver
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static
- make -j1
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" htmldir=/usr/share/doc/ffcall install
-
- # One of the static libraries is not disabled by --disable-static
- # while all others are, so remove it here
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="b9d3ca4c67ab92915a8183d850153e585dcb58ceb2199a104426a7aae363d37017b1226440acd18a2db0cc207e044f71e932857189964261e8eaa6de5cef1731 libffcall-2.2.tar.gz"
diff --git a/testing/fff/APKBUILD b/testing/fff/APKBUILD
new file mode 100644
index 00000000000..24fb4be48a7
--- /dev/null
+++ b/testing/fff/APKBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Avis Orsetti <avisorsetti@riseup.net>
+pkgname=fff
+pkgver=2.2
+pkgrel=0
+pkgdesc="Simple and fast file manager"
+url="https://github.com/dylanaraps/fff"
+arch="noarch"
+license="MIT"
+depends="bash coreutils xdg-utils"
+subpackages="$pkgname-doc"
+options="!check" # No tests provided
+source="fff-$pkgver.tar.gz::https://github.com/dylanaraps/fff/archive/refs/tags/$pkgver.tar.gz"
+
+package() {
+ install -Dm755 -t "$pkgdir/usr/bin" $pkgname
+ install -Dm644 -t "$pkgdir/usr/share/man/man1" $pkgname.1
+ install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" README.md
+ install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE.md
+}
+
+sha512sums="
+364fef67b69aa28fc9448eb4b11c4d7152f11191fd4313f728b1bb00fbc80682dd2d3b4d65884aa3d70b82d319e2ca8e19bf7a06c04b250e49c3577caa5fe2cf fff-2.2.tar.gz
+"
diff --git a/testing/fflas-ffpack/APKBUILD b/testing/fflas-ffpack/APKBUILD
new file mode 100644
index 00000000000..d6e6c16e199
--- /dev/null
+++ b/testing/fflas-ffpack/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=fflas-ffpack
+pkgver=2.5.0
+pkgrel=3
+pkgdesc="Library for basic linear algebra operations over a finite field"
+url="https://github.com/linbox-team/fflas-ffpack"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ gmp-dev
+ libgivaro-dev
+ openblas-dev
+ "
+source="https://github.com/linbox-team/fflas-ffpack/releases/download/v$pkgver/fflas_ffpack-$pkgver.tar.bz2"
+builddir="$srcdir/fflas_ffpack-$pkgver"
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --without-archnative \
+ --enable-openmp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ mv "$pkgdir"/usr/bin/*fflas-ffpack-config "$pkgdir"/usr/bin/fflas-ffpack-config
+}
+
+sha512sums="
+afe09cdb51a19b819377ed5e04910ef9d05704f0a4e85feb618abe523e2baf5be6f310ad33f006ef306b37892238ce993eff1326f3bec2fa7a7e32535e1fb90a fflas_ffpack-2.5.0.tar.bz2
+"
diff --git a/testing/ffms2/APKBUILD b/testing/ffms2/APKBUILD
new file mode 100644
index 00000000000..165cf0d70f9
--- /dev/null
+++ b/testing/ffms2/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: duckl1ng <bogdan@sanocki.info>
+pkgname=ffms2
+pkgver=2.40
+pkgrel=0
+pkgdesc="Cross-platform wrapper library around FFmpeg"
+url="https://github.com/FFMS/ffms2"
+arch="all"
+license="MIT"
+makedepends="
+ autoconf
+ automake
+ ffmpeg-dev
+ ffmpeg-libavcodec
+ ffmpeg-libswresample
+ libtool
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/FFMS/ffms2/archive/refs/tags/$pkgver.tar.gz
+ ffmpeg-fix-api.patch
+ "
+options="!check" # No test suite
+
+build() {
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+}
+
+sha512sums="
+407c4b0871f5046b9d364c2946eae88c46eec381b5748530d82918742fd4a36849de590024f8235af2785bd631c0299e591499dc43ae157ff2c6a6f2dab78b67 ffms2-2.40.tar.gz
+d11913d36fbc1b3d4797ec8f4f77ff7d89eee3d80c02c594a88ece5e71a749f4f8e4417d9895b7d102226a3f331b2b29014d5882b3b08ca3c5545ceecc133653 ffmpeg-fix-api.patch
+"
diff --git a/testing/ffms2/ffmpeg-fix-api.patch b/testing/ffms2/ffmpeg-fix-api.patch
new file mode 100644
index 00000000000..e730037a4f3
--- /dev/null
+++ b/testing/ffms2/ffmpeg-fix-api.patch
@@ -0,0 +1,355 @@
+# source: https://github.com/FFMS/ffms2/pull/380
+diff --git a/configure.ac b/configure.ac
+index b35ef80bcd..d19714d0f6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,10 +102,10 @@ CFLAGS="$_CFLAGS $FFMPEG_CFLAGS"
+
+ AC_DEFUN([TEST_FFMPEG],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+- #include <libavcodec/avcodec.h>
++ #include <libavformat/avformat.h>
+ #include <libswscale/swscale.h>
+ ]],[[
+- avcodec_register_all();
++ avformat_network_init();
+ swscale_version();
+ ]])], [eval $1=yes], [eval $1=no])
+ ])
+diff --git a/src/core/audiosource.cpp b/src/core/audiosource.cpp
+index 37cf9aeefd..ac0966636f 100644
+--- a/src/core/audiosource.cpp
++++ b/src/core/audiosource.cpp
+@@ -285,10 +285,15 @@ FFMS_AudioSource::AudioBlock *FFMS_AudioSource::CacheBlock(CacheIterator &pos) {
+ int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) {
+ CurrentFrame = &Frames[PacketNumber];
+
+- AVPacket Packet;
+- if (!ReadPacket(&Packet))
++ AVPacket *Packet = av_packet_alloc();
++ if (!Packet)
++ throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_ALLOCATION_FAILED,
++ "Could not allocate packet.");
++ if (!ReadPacket(Packet)) {
++ av_packet_free(&Packet);
+ throw FFMS_Exception(FFMS_ERROR_PARSER, FFMS_ERROR_UNKNOWN,
+ "ReadPacket unexpectedly failed to read a packet");
++ }
+
+ // ReadPacket may have changed the packet number
+ CurrentFrame = &Frames[PacketNumber];
+@@ -297,8 +302,9 @@ int FFMS_AudioSource::DecodeNextBlock(CacheIterator *pos) {
+ int NumberOfSamples = 0;
+ AudioBlock *CachedBlock = nullptr;
+
+- int Ret = avcodec_send_packet(CodecContext, &Packet);
+- av_packet_unref(&Packet);
++ int Ret = avcodec_send_packet(CodecContext, Packet);
++ av_packet_unref(Packet);
++ av_packet_free(&Packet);
+
+ av_frame_unref(DecodeFrame);
+ Ret = avcodec_receive_frame(CodecContext, DecodeFrame);
+@@ -463,7 +469,7 @@ void FFMS_AudioSource::OpenFile() {
+
+ LAVFOpenFile(SourceFile.c_str(), FormatContext, TrackNumber);
+
+- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id);
++ auto *Codec = avcodec_find_decoder(FormatContext->streams[TrackNumber]->codecpar->codec_id);
+ if (Codec == nullptr)
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC,
+ "Audio codec not found");
+@@ -513,8 +519,6 @@ void FFMS_AudioSource::Seek() {
+ }
+
+ bool FFMS_AudioSource::ReadPacket(AVPacket *Packet) {
+- InitNullPacket(*Packet);
+-
+ while (av_read_frame(FormatContext, Packet) >= 0) {
+ if (Packet->stream_index == TrackNumber) {
+ // Required because not all audio packets, especially in ogg, have a pts. Use the previous valid packet's pts instead.
+diff --git a/src/core/indexing.cpp b/src/core/indexing.cpp
+index 23fb95b128..59fb4e8ea8 100644
+--- a/src/core/indexing.cpp
++++ b/src/core/indexing.cpp
+@@ -320,7 +320,7 @@ void FFMS_Indexer::CheckAudioProperties(int Track, AVCodecContext *Context) {
+ }
+ }
+
+-void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt, int *RepeatPict,
++void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict,
+ int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct) {
+ if (VideoContext.Parser) {
+ uint8_t *OB;
+@@ -330,8 +330,8 @@ void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt
+ av_parser_parse2(VideoContext.Parser,
+ VideoContext.CodecContext,
+ &OB, &OBSize,
+- pkt.data, pkt.size,
+- pkt.pts, pkt.dts, pkt.pos);
++ pkt->data, pkt->size,
++ pkt->pts, pkt->dts, pkt->pos);
+
+ // H.264 (PAFF) and HEVC may have one field per packet, so we need to track
+ // when we have a full or half frame available, and mark one of them as
+@@ -351,15 +351,15 @@ void FFMS_Indexer::ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt
+
+ *RepeatPict = VideoContext.Parser->repeat_pict;
+ *FrameType = VideoContext.Parser->pict_type;
+- *Invisible = (IncompleteFrame || VideoContext.Parser->repeat_pict < 0 || (pkt.flags & AV_PKT_FLAG_DISCARD));
++ *Invisible = (IncompleteFrame || VideoContext.Parser->repeat_pict < 0 || (pkt->flags & AV_PKT_FLAG_DISCARD));
+ } else {
+- *Invisible = !!(pkt.flags & AV_PKT_FLAG_DISCARD);
++ *Invisible = !!(pkt->flags & AV_PKT_FLAG_DISCARD);
+ }
+
+ if (VideoContext.CodecContext->codec_id == AV_CODEC_ID_VP8)
+- ParseVP8(pkt.data[0], Invisible, FrameType);
++ ParseVP8(pkt->data[0], Invisible, FrameType);
+ else if (VideoContext.CodecContext->codec_id == AV_CODEC_ID_VP9)
+- ParseVP9(pkt.data[0], Invisible, FrameType);
++ ParseVP9(pkt->data[0], Invisible, FrameType);
+ }
+
+ void FFMS_Indexer::Free() {
+@@ -384,7 +384,7 @@ FFMS_TrackType FFMS_Indexer::GetTrackType(int Track) {
+ }
+
+ const char *FFMS_Indexer::GetTrackCodec(int Track) {
+- AVCodec *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id);
++ auto *codec = avcodec_find_decoder(FormatContext->streams[Track]->codecpar->codec_id);
+ return codec ? codec->name : nullptr;
+ }
+
+@@ -402,7 +402,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ UseDTS);
+
+ if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+- AVCodec *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
++ auto *VideoCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
+ if (!VideoCodec) {
+ FormatContext->streams[i]->discard = AVDISCARD_ALL;
+ IndexMask.erase(i);
+@@ -433,7 +433,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ IndexMask.insert(i);
+ }
+ } else if (IndexMask.count(i) && FormatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+- AVCodec *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
++ auto *AudioCodec = avcodec_find_decoder(FormatContext->streams[i]->codecpar->codec_id);
+ if (AudioCodec == nullptr)
+ throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_UNSUPPORTED,
+ "Audio codec not found");
+@@ -458,32 +458,36 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ }
+ }
+
+- AVPacket Packet;
+- InitNullPacket(Packet);
++ AVPacket *Packet = av_packet_alloc();
++ if (!Packet)
++ throw FFMS_Exception(FFMS_ERROR_CODEC, FFMS_ERROR_ALLOCATION_FAILED,
++ "Could not allocate packet.");
+ std::vector<int64_t> LastValidTS(FormatContext->nb_streams, AV_NOPTS_VALUE);
+
+ int64_t filesize = avio_size(FormatContext->pb);
+ enum AVPictureStructure LastPicStruct = AV_PICTURE_STRUCTURE_UNKNOWN;
+- while (av_read_frame(FormatContext, &Packet) >= 0) {
++ while (av_read_frame(FormatContext, Packet) >= 0) {
+ // Update progress
+ // FormatContext->pb can apparently be NULL when opening images.
+ if (IC && FormatContext->pb) {
+- if ((*IC)(FormatContext->pb->pos, filesize, ICPrivate))
++ if ((*IC)(FormatContext->pb->pos, filesize, ICPrivate)) {
++ av_packet_free(&Packet);
+ throw FFMS_Exception(FFMS_ERROR_CANCELLED, FFMS_ERROR_USER,
+ "Cancelled by user");
++ }
+ }
+- if (!IndexMask.count(Packet.stream_index)) {
+- av_packet_unref(&Packet);
++ if (!IndexMask.count(Packet->stream_index)) {
++ av_packet_unref(Packet);
+ continue;
+ }
+
+- int Track = Packet.stream_index;
++ int Track = Packet->stream_index;
+ FFMS_Track &TrackInfo = (*TrackIndices)[Track];
+- bool KeyFrame = !!(Packet.flags & AV_PKT_FLAG_KEY);
++ bool KeyFrame = !!(Packet->flags & AV_PKT_FLAG_KEY);
+ ReadTS(Packet, LastValidTS[Track], (*TrackIndices)[Track].UseDTS);
+
+ if (FormatContext->streams[Track]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
+- int64_t PTS = TrackInfo.UseDTS ? Packet.dts : Packet.pts;
++ int64_t PTS = TrackInfo.UseDTS ? Packet->dts : Packet->pts;
+ if (PTS == AV_NOPTS_VALUE) {
+ // VPx alt-refs are output as packets which lack timestmps or durations, since
+ // they are invisible. Currently, the timestamp mangling code in libavformat
+@@ -495,9 +499,11 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ // FFMS2 currently sorts packets by PTS, which will break decoding, otherwise.
+ bool HasAltRefs = (FormatContext->streams[Track]->codecpar->codec_id == AV_CODEC_ID_VP8 ||
+ FormatContext->streams[Track]->codecpar->codec_id == AV_CODEC_ID_VP9);
+- if (Packet.duration == 0 && !HasAltRefs)
++ if (Packet->duration == 0 && !HasAltRefs) {
++ av_packet_free(&Packet);
+ throw FFMS_Exception(FFMS_ERROR_INDEXING, FFMS_ERROR_PARSER,
+ "Invalid packet pts, dts, and duration");
++ }
+
+ if (TrackInfo.empty())
+ PTS = 0;
+@@ -513,7 +519,7 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ ParseVideoPacket(AVContexts[Track], Packet, &RepeatPict, &FrameType, &Invisible, &LastPicStruct);
+
+ TrackInfo.AddVideoFrame(PTS, RepeatPict, KeyFrame,
+- FrameType, Packet.pos, Invisible);
++ FrameType, Packet->pos, Invisible);
+ } else if (FormatContext->streams[Track]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) {
+ // For video seeking timestamps are used only if all packets have
+ // timestamps, while for audio they're used if any have timestamps,
+@@ -522,28 +528,29 @@ FFMS_Index *FFMS_Indexer::DoIndexing() {
+ TrackInfo.HasTS = true;
+
+ int64_t StartSample = AVContexts[Track].CurrentSample;
+- uint32_t SampleCount = IndexAudioPacket(Track, &Packet, AVContexts[Track], *TrackIndices);
++ uint32_t SampleCount = IndexAudioPacket(Track, Packet, AVContexts[Track], *TrackIndices);
+ TrackInfo.SampleRate = AVContexts[Track].CodecContext->sample_rate;
+
+ TrackInfo.AddAudioFrame(LastValidTS[Track],
+- StartSample, SampleCount, KeyFrame, Packet.pos, Packet.flags & AV_PKT_FLAG_DISCARD);
++ StartSample, SampleCount, KeyFrame, Packet->pos, Packet->flags & AV_PKT_FLAG_DISCARD);
+ }
+
+- if (!(Packet.flags & AV_PKT_FLAG_DISCARD))
+- TrackInfo.LastDuration = Packet.duration;
++ if (!(Packet->flags & AV_PKT_FLAG_DISCARD))
++ TrackInfo.LastDuration = Packet->duration;
+
+- av_packet_unref(&Packet);
++ av_packet_unref(Packet);
+ }
++ av_packet_free(&Packet);
+
+ TrackIndices->Finalize(AVContexts, FormatContext->iformat->name);
+ return TrackIndices.release();
+ }
+
+-void FFMS_Indexer::ReadTS(const AVPacket &Packet, int64_t &TS, bool &UseDTS) {
+- if (!UseDTS && Packet.pts != AV_NOPTS_VALUE)
+- TS = Packet.pts;
++void FFMS_Indexer::ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS) {
++ if (!UseDTS && Packet->pts != AV_NOPTS_VALUE)
++ TS = Packet->pts;
+ if (TS == AV_NOPTS_VALUE)
+ UseDTS = true;
+- if (UseDTS && Packet.dts != AV_NOPTS_VALUE)
+- TS = Packet.dts;
++ if (UseDTS && Packet->dts != AV_NOPTS_VALUE)
++ TS = Packet->dts;
+ }
+diff --git a/src/core/indexing.h b/src/core/indexing.h
+index 3cfc3c30b3..5c06868890 100644
+--- a/src/core/indexing.h
++++ b/src/core/indexing.h
+@@ -80,10 +80,10 @@ struct FFMS_Indexer {
+ int64_t Filesize;
+ uint8_t Digest[20];
+
+- void ReadTS(const AVPacket &Packet, int64_t &TS, bool &UseDTS);
++ void ReadTS(const AVPacket *Packet, int64_t &TS, bool &UseDTS);
+ void CheckAudioProperties(int Track, AVCodecContext *Context);
+ uint32_t IndexAudioPacket(int Track, AVPacket *Packet, SharedAVContext &Context, FFMS_Index &TrackIndices);
+- void ParseVideoPacket(SharedAVContext &VideoContext, AVPacket &pkt, int *RepeatPict, int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct);
++ void ParseVideoPacket(SharedAVContext &VideoContext, AVPacket *pkt, int *RepeatPict, int *FrameType, bool *Invisible, enum AVPictureStructure *LastPicStruct);
+ void Free();
+ public:
+ FFMS_Indexer(const char *Filename);
+diff --git a/src/core/utils.cpp b/src/core/utils.cpp
+index ce67533fd7..8a2e99710e 100644
+--- a/src/core/utils.cpp
++++ b/src/core/utils.cpp
+@@ -62,12 +62,6 @@ void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo) {
+ }
+ }
+
+-void InitNullPacket(AVPacket &pkt) {
+- av_init_packet(&pkt);
+- pkt.data = nullptr;
+- pkt.size = 0;
+-}
+-
+ void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames) {
+ AP.SampleFormat = static_cast<FFMS_SampleFormat>(av_get_packed_sample_fmt(CTX->sample_fmt));
+ AP.BitsPerSample = av_get_bytes_per_sample(CTX->sample_fmt) * 8;
+diff --git a/src/core/utils.h b/src/core/utils.h
+index 9819dc7c9e..003ab794e9 100644
+--- a/src/core/utils.h
++++ b/src/core/utils.h
+@@ -58,7 +58,6 @@ std::unique_ptr<T> make_unique(Args&&... args) {
+ }
+
+ void ClearErrorInfo(FFMS_ErrorInfo *ErrorInfo);
+-void InitNullPacket(AVPacket &pkt);
+ void FillAP(FFMS_AudioProperties &AP, AVCodecContext *CTX, FFMS_Track &Frames);
+
+ void LAVFOpenFile(const char *SourceFile, AVFormatContext *&FormatContext, int Track);
+diff --git a/src/core/videosource.cpp b/src/core/videosource.cpp
+index 06bd1610e1..8956c22566 100644
+--- a/src/core/videosource.cpp
++++ b/src/core/videosource.cpp
+@@ -171,7 +171,7 @@ FFMS_VideoSource::FFMS_VideoSource(const char *SourceFile, FFMS_Index &Index, in
+
+ LAVFOpenFile(SourceFile, FormatContext, VideoTrack);
+
+- AVCodec *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id);
++ auto *Codec = avcodec_find_decoder(FormatContext->streams[VideoTrack]->codecpar->codec_id);
+ if (Codec == nullptr)
+ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_CODEC,
+ "Video codec not found");
+@@ -673,30 +673,34 @@ void FFMS_VideoSource::DecodeNextFrame(int64_t &AStartTime, int64_t &Pos) {
+ if (HasPendingDelayedFrames())
+ return;
+
+- AVPacket Packet;
+- InitNullPacket(Packet);
++ AVPacket *Packet = av_packet_alloc();
++ if (!Packet)
++ throw FFMS_Exception(FFMS_ERROR_DECODING, FFMS_ERROR_ALLOCATION_FAILED,
++ "Could not allocate packet.");
+
+- while (ReadFrame(&Packet) >= 0) {
+- if (Packet.stream_index != VideoTrack) {
+- av_packet_unref(&Packet);
++ while (ReadFrame(Packet) >= 0) {
++ if (Packet->stream_index != VideoTrack) {
++ av_packet_unref(Packet);
+ continue;
+ }
+
+ if (AStartTime < 0)
+- AStartTime = Frames.UseDTS ? Packet.dts : Packet.pts;
++ AStartTime = Frames.UseDTS ? Packet->dts : Packet->pts;
+
+ if (Pos < 0)
+- Pos = Packet.pos;
++ Pos = Packet->pos;
+
+- bool FrameFinished = DecodePacket(&Packet);
+- av_packet_unref(&Packet);
+- if (FrameFinished)
++ bool FrameFinished = DecodePacket(Packet);
++ av_packet_unref(Packet);
++ if (FrameFinished) {
++ av_packet_free(&Packet);
+ return;
++ }
+ }
+
+ // Flush final frames
+- InitNullPacket(Packet);
+- DecodePacket(&Packet);
++ DecodePacket(Packet);
++ av_packet_free(&Packet);
+ }
+
+ bool FFMS_VideoSource::SeekTo(int n, int SeekOffset) {
diff --git a/testing/ffsend/APKBUILD b/testing/ffsend/APKBUILD
index c618977ab58..47ce3dce0fc 100644
--- a/testing/ffsend/APKBUILD
+++ b/testing/ffsend/APKBUILD
@@ -1,39 +1,62 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ffsend
-pkgver=0.2.64
-pkgrel=0
+pkgver=0.2.76
+pkgrel=4
pkgdesc="A fully featured Firefox Send client"
url="https://gitlab.com/timvisee/ffsend"
-arch="all !mips !mips64 !ppc64le !s390x" # limited by cargo, ring dep
+# riscv64: blocked by cargo
+arch="all !riscv64"
license="GPL-3.0-only"
-makedepends="cargo openssl-dev"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
subpackages="
$pkgname-zsh-completion
$pkgname-fish-completion
$pkgname-bash-completion
"
-source="https://gitlab.com/timvisee/ffsend/-/archive/v$pkgver/ffsend-v$pkgver.tar.gz"
+source="https://gitlab.com/timvisee/ffsend/-/archive/v$pkgver/ffsend-v$pkgver.tar.gz
+ wl-clipboard.patch
+ "
builddir="$srcdir/$pkgname-v$pkgver"
+# The default features with crypto-ring replaced with crypto-openssl.
+_cargo_opts="--frozen --no-default-features --features=archive,clipboard,crypto-openssl,history,infer-command,qrcode,send3,urlshortener"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
build() {
- cargo build --release
+ cargo auditable build $_cargo_opts --release
}
check() {
- cargo test --release
+ cargo test $_cargo_opts
}
package() {
- cargo install --path . --root="$pkgdir/usr"
- rm "$pkgdir"/usr/.crates.toml
-
- install -Dm644 "$builddir"/contrib/completions/ffsend.bash \
- "$pkgdir"/usr/share/bash-completion/completions/ffsend
- install -Dm644 "$builddir"/contrib/completions/_ffsend \
- "$pkgdir"/usr/share/zsh/site-functions/_ffsend
- install -Dm644 "$builddir"/contrib/completions/ffsend.fish \
- "$pkgdir"/usr/share/fish/completions/ffsend.fish
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 contrib/completions/ffsend.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/ffsend
+ install -Dm644 contrib/completions/_ffsend \
+ -t "$pkgdir"/usr/share/zsh/site-functions/
+ install -Dm644 contrib/completions/ffsend.fish \
+ -t "$pkgdir"/usr/share/fish/vendor_completions.d/
+
+ # See infer-commands in the readme.
+ ln -s ffsend "$pkgdir"/usr/bin/ffget
+ ln -s ffsend "$pkgdir"/usr/bin/ffput
}
-sha512sums="efd2a5b239168b31fd5654b5579ffd9e0213407157fc4ef275ab54069bb781815d16a4d00182a37d34f89a0e73e280c8d2e29eb133644791df3c10fcb2be1bd8 ffsend-v0.2.64.tar.gz"
+sha512sums="
+3b4ee66725e9770497620f62d1012aa31c7e11b8b95d931d56bee3077556e743ae2b71f727403cf7f45a6809959815f3b3d94b041fdb5530713b76e00541139c ffsend-v0.2.76.tar.gz
+c16c58671da3c96ee64880366eafc070245d9c50806d192b195f77a4442216eaa24d035467e1e02f4e7622e7be431de8190ad5920672054d0889b7703159f9fc wl-clipboard.patch
+"
diff --git a/testing/ffsend/wl-clipboard.patch b/testing/ffsend/wl-clipboard.patch
new file mode 100644
index 00000000000..4bfc70995b9
--- /dev/null
+++ b/testing/ffsend/wl-clipboard.patch
@@ -0,0 +1,159 @@
+Patch-Source: https://gitlab.com/timvisee/ffsend/-/merge_requests/40
+--
+From 1de1b3a8572b48fb5041ba36af81495efcf81515 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 9 Oct 2022 19:49:46 +0200
+Subject: [PATCH] Add support for clipboard on Wayland using wl-copy(1)
+
+wl-copy(1) from the wl-clipboard package is equivalent of xcopy(1)
+on Wayland desktops.
+---
+ Cargo.toml | 2 +-
+ README.md | 8 ++++----
+ build.rs | 3 ++-
+ src/util.rs | 36 +++++++++++++++++++++++++++++++-----
+ 4 files changed, 38 insertions(+), 11 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index b91b9cd..e434248 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -98,7 +98,7 @@ infer-command = []
+ # Compile without colored output support
+ no-color = ["colored/no-color"]
+
+-# Automatic using build.rs: use xclip/xsel binary method for clipboard support
++# Automatic using build.rs: use wl-copy/xclip/xsel binary method for clipboard support
+ clipboard-bin = ["clipboard"]
+
+ # Automatic using build.rs: use native clipboard crate for clipboard support
+diff --git a/README.md b/README.md
+index cc9caf0..257cfee 100644
+--- a/README.md
++++ b/README.md
+@@ -140,10 +140,10 @@ all available subcommands.
+ - Linux:
+ - OpenSSL & CA certificates:
+ - Ubuntu, Debian and derivatives: `apt install openssl ca-certificates`
+- - Optional: `xclip` or `xsel` for clipboard support
+- - Ubuntu, Debian and derivatives: `apt install xclip`
+- - CentOS/Red Hat/openSUSE/Fedora: `yum install xclip`
+- - Arch: `pacman -S xclip`
++ - Optional: `wl-copy` (on Wayland), `xclip` (on Xorg) or `xsel` (on Xorg) for clipboard support
++ - Ubuntu, Debian and derivatives: `apt install wl-clipboard` or `apt install xclip`
++ - CentOS/Red Hat/openSUSE/Fedora: `yum install wl-clipboard` or `yum install xclip`
++ - Arch: `pacman -S wl-clipboard` or `pacman -S xclip`
+ - Windows specific:
+ - Optional OpenSSL with `crypto-openssl` feature: [» Installer][openssl-windows-installer] (`v1.1.0j` or above)
+ - macOS specific:
+diff --git a/build.rs b/build.rs
+index 32b3d32..dd4006c 100644
+--- a/build.rs
++++ b/build.rs
+@@ -14,7 +14,8 @@ fn main() {
+ #[cfg(not(feature = "clipboard-crate"))]
+ println!("cargo:rustc-cfg=feature=\"clipboard-bin\"");
+
+- // xclip and xsel paths are inserted at compile time
++ // wl-copy, xclip and xsel paths are inserted at compile time
++ println!("cargo:rerun-if-env-changed=WL_COPY_PATH");
+ println!("cargo:rerun-if-env-changed=XCLIP_PATH");
+ println!("cargo:rerun-if-env-changed=XSEL_PATH");
+ }
+diff --git a/src/util.rs b/src/util.rs
+index d4dad97..d7e6237 100644
+--- a/src/util.rs
++++ b/src/util.rs
+@@ -327,6 +327,12 @@ pub enum ClipboardType {
+ #[cfg(feature = "clipboard-crate")]
+ Native,
+
++ /// Manage clipboard through `wl-copy` (wl-clipboard) on Linux.
++ ///
++ /// May contain a binary path if specified at compile time through the `WL_COPY_PATH` variable.
++ #[cfg(feature = "clipboard-bin")]
++ Wlcopy(Option<String>),
++
+ /// Manage clipboard through `xclip` on Linux.
+ ///
+ /// May contain a binary path if specified at compile time through the `XCLIP_PATH` variable.
+@@ -351,10 +357,14 @@ impl ClipboardType {
+
+ #[cfg(feature = "clipboard-bin")]
+ {
+- if let Some(path) = option_env!("XCLIP_PATH") {
++ if let Some(path) = option_env!("WL_COPY_PATH") {
++ ClipboardType::Wlcopy(Some(path.to_owned()))
++ } else if let Some(path) = option_env!("XCLIP_PATH") {
+ ClipboardType::Xclip(Some(path.to_owned()))
+ } else if let Some(path) = option_env!("XSEL_PATH") {
+ ClipboardType::Xsel(Some(path.to_owned()))
++ } else if which("wl-copy").is_ok() {
++ ClipboardType::Wlcopy(None)
+ } else if which("xclip").is_ok() {
+ ClipboardType::Xclip(None)
+ } else if which("xsel").is_ok() {
+@@ -372,6 +382,8 @@ impl ClipboardType {
+ #[cfg(feature = "clipboard-crate")]
+ ClipboardType::Native => Self::native_set(content),
+ #[cfg(feature = "clipboard-bin")]
++ ClipboardType::Wlcopy(path) => Self::wlcopy_set(path.clone(), &content),
++ #[cfg(feature = "clipboard-bin")]
+ ClipboardType::Xclip(path) => Self::xclip_set(path.clone(), &content),
+ #[cfg(feature = "clipboard-bin")]
+ ClipboardType::Xsel(path) => Self::xsel_set(path.clone(), &content),
+@@ -389,6 +401,15 @@ impl ClipboardType {
+ .map_err(ClipboardError::Native)
+ }
+
++ #[cfg(feature = "clipboard-bin")]
++ fn wlcopy_set(path: Option<String>, content: &str) -> Result<(), ClipboardError> {
++ Self::sys_cmd_set(
++ "wl-copy",
++ &mut Command::new(path.unwrap_or_else(|| "wl-copy".into())),
++ content,
++ )
++ }
++
+ #[cfg(feature = "clipboard-bin")]
+ fn xclip_set(path: Option<String>, content: &str) -> Result<(), ClipboardError> {
+ Self::sys_cmd_set(
+@@ -456,6 +477,11 @@ impl fmt::Display for ClipboardType {
+ #[cfg(feature = "clipboard-crate")]
+ ClipboardType::Native => write!(f, "native"),
+ #[cfg(feature = "clipboard-bin")]
++ ClipboardType::Wlcopy(path) => match path {
++ None => write!(f, "wl-copy"),
++ Some(path) => write!(f, "wl-copy ({})", path),
++ },
++ #[cfg(feature = "clipboard-bin")]
+ ClipboardType::Xclip(path) => match path {
+ None => write!(f, "xclip"),
+ Some(path) => write!(f, "xclip ({})", path),
+@@ -479,19 +505,19 @@ pub enum ClipboardError {
+ #[fail(display = "failed to access clipboard")]
+ Native(#[cause] Compat<Error>),
+
+- /// The `xclip` or `xsel` binary could not be found on the system, required for clipboard support.
++ /// The `wl-copy`, `xclip` or `xsel` binary could not be found on the system, required for clipboard support.
+ #[cfg(feature = "clipboard-bin")]
+- #[fail(display = "failed to access clipboard, xclip or xsel is not installed")]
++ #[fail(display = "failed to access clipboard, neither wl-copy, xclip nor xsel is installed")]
+ NoBinary,
+
+- /// An error occurred while using `xclip` or `xsel` to set the clipboard contents.
++ /// An error occurred while using `wl-copy`, `xclip` or `xsel` to set the clipboard contents.
+ /// This problem probably occurred when starting, or while piping the clipboard contents to
+ /// the process.
+ #[cfg(feature = "clipboard-bin")]
+ #[fail(display = "failed to access clipboard using {}", _0)]
+ BinaryIo(&'static str, #[cause] IoError),
+
+- /// `xclip` or `xsel` unexpectedly exited with a non-successful status code.
++ /// `wl-copy`, `xclip` or `xsel` unexpectedly exited with a non-successful status code.
+ #[cfg(feature = "clipboard-bin")]
+ #[fail(
+ display = "failed to use clipboard, {} exited with status code {}",
+--
+GitLab
+
diff --git a/testing/fgt/APKBUILD b/testing/fgt/APKBUILD
deleted file mode 100644
index cb0e9650aac..00000000000
--- a/testing/fgt/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=fgt
-pkgver=0.4.6
-pkgrel=1
-pkgdesc="C++ library for fast Gauss transforms."
-url="https://github.com/gadomski/fgt"
-arch="all !mips !mips64" # blocked by eigen on mips
-license="LGPL-2.0-or-later"
-makedepends="cmake eigen-dev"
-install=""
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/gadomski/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
-
- mkdir build && cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DWITH_TESTS=OFF \
- -DBUILD_SHARED_LIBS=ON \
- -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b4da61b7c11e2dc526c8cbd81a4ea8a40acc12a3858dfd9b6436fac576d5efc7487c4efe30e29f7ff9c2455a6d89a70da19171bf7ec4206f13e65b2a159061df fgt-0.4.6.tar.gz"
diff --git a/testing/fheroes2/APKBUILD b/testing/fheroes2/APKBUILD
new file mode 100644
index 00000000000..c49ee8c0963
--- /dev/null
+++ b/testing/fheroes2/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: ovf <ovf@mm.st>
+pkgname=fheroes2
+pkgver=1.0.13
+pkgrel=0
+pkgdesc="Recreation of Heroes of Might and Magic II game engine"
+url="https://github.com/ihhub/fheroes2"
+arch="all"
+license="GPL-2.0-only"
+options="!check" # no test suite
+makedepends="
+ gettext
+ gnu-libiconv
+ sed
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_mixer-dev
+ zlib-dev
+ "
+subpackages="$pkgname-lang"
+source="https://github.com/ihhub/fheroes2/archive/$pkgver/fheroes2-$pkgver.tar.gz"
+install="$pkgname.post-install"
+langdir="/usr/share/$pkgname/files/lang"
+
+build() {
+ make FHEROES2_WITH_IMAGE=1 FHEROES2_DATA=/usr/share/fheroes2
+ # Use GNU iconv instead of musl-based one, because this project uses
+ # TRANSLIT iconv extension which is not present in musl implementation.
+ make -C files/lang ICONV=gnu-iconv
+}
+
+package() {
+ install -Dm755 src/dist/fheroes2 -t "$pkgdir"/usr/bin/
+ install -Dm644 script/packaging/common/fheroes2.desktop -t "$pkgdir"/usr/share/applications/
+ install -Dm644 files/data/*.h2d -t "$pkgdir"/usr/share/"$pkgname"/files/data/
+ install -Dm644 files/lang/*.mo -t "$pkgdir"/usr/share/"$pkgname"/files/lang/
+ install -Dm755 script/demo/download_demo_version.sh -t "$pkgdir"/usr/share/"$pkgname"/
+ install -Dm755 script/homm2/extract_homm2_resources.sh -t "$pkgdir"/usr/share/"$pkgname"/
+ install -Dm644 src/resources/fheroes2.png -t "$pkgdir"/usr/share/pixmaps/
+ install -dm755 "$pkgdir"/usr/share/fheroes2/data
+ install -dm755 "$pkgdir"/usr/share/fheroes2/maps
+}
+
+sha512sums="
+989b71ad6f217c5283441392e5a4bdee8b49d07261dba05372e185dbee239f4bb7b75290ca0b86fbf3dbf98edfaaca6234adc7e0483495ea799bf1636af3f6bc fheroes2-1.0.13.tar.gz
+"
diff --git a/testing/fheroes2/fheroes2.post-install b/testing/fheroes2/fheroes2.post-install
new file mode 100644
index 00000000000..9c89f43bf81
--- /dev/null
+++ b/testing/fheroes2/fheroes2.post-install
@@ -0,0 +1,14 @@
+#!/bin/sh
+cat <<EOF
+*
+* Attention! This installation doesn't provide game resources!
+*
+* To be able to play the game you have to extract resources from the original
+* distribution of Heroes of Might and Magic II using the script located at:
+* /usr/share/fheroes2/extract_homm2_resources.sh
+*
+* If you don't have the original distribution of Heroes of Might and Magic II
+* you can download a free demo version of the game using the script located at:
+* /usr/share/fheroes2/download_demo_version.sh
+*
+EOF
diff --git a/testing/fiery/APKBUILD b/testing/fiery/APKBUILD
new file mode 100644
index 00000000000..85dfc38cad9
--- /dev/null
+++ b/testing/fiery/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: psykose <alice@ayaya.ev>
+# Maintainer: team/kde <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=maui
+pkgname=fiery
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="KDE Convergent web browser"
+url="https://invent.kde.org/maui/fiery"
+# all other arches blocked by qt5-qtwebengine
+arch="x86_64 x86 aarch64"
+license="LicenseRef-KDE-Accepted-LGPL"
+depends="mauikit-filebrowsing"
+makedepends="
+ cmake
+ extra-cmake-modules
+ kcoreaddons5-dev
+ ki18n5-dev
+ mauikit-dev
+ mauikit-filebrowsing-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ qt5-qtwebengine-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+_repo_url="https://invent.kde.org/maui/fiery.git"
+source="https://invent.kde.org/maui/fiery/-/archive/v$pkgver/fiery-v$pkgver.tar.gz"
+builddir="$srcdir/fiery-v$pkgver"
+options="!check" # no tests
+
+provides="kde-sol=$pkgver-r$pkgrel kde-fiery=$pkgver-r$pkgrel"
+replaces="kde-sol kde-fiery"
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7064c3a2a2bc186cc7daab60400be7816fb0f332572a4c804009bb74a2c0bfd284af015811caa9d860318fe8d14c9e1dbb287423cc8cb59f43bee87202d7f52c fiery-v1.1.2.tar.gz
+"
diff --git a/testing/fig2dev/APKBUILD b/testing/fig2dev/APKBUILD
new file mode 100644
index 00000000000..59ad47f0f6f
--- /dev/null
+++ b/testing/fig2dev/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=fig2dev
+pkgver=3.2.8b
+pkgrel=0
+pkgdesc="translates Fig code to other graphic description languages"
+url="https://sourceforge.net/projects/mcj/"
+arch="all"
+license="MIT"
+makedepends="
+ diffutils
+ ghostscript
+ gzip
+ imagemagick
+ libpng-dev
+ netpbm
+ "
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/mcj/fig2dev-$pkgver.tar.xz"
+
+# secfixes:
+# 3.2.8b-r0:
+# - CVE-2021-37529
+# - CVE-2021-37530
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-transfig
+ make
+}
+
+check() {
+ # Expected result:
+ # 75 tests were successful.
+ # 4 tests were skipped.
+ #
+ # Skipped tests:
+ # [5: $i18ndir/cs_CZ.ps must exist]
+ # Broken test, only runs with "make installcheck", which then breaks:
+ # ".../tests/testsuite.dir/at-groups/5/test-source: line 15:"
+ # "/home/builder/aports/testing/fig2dev/src/fig2dev-3.2.8/fig2dev/tests/test1: not found"
+ #
+ # [55: accept large coordinates]
+ # Broken test, stalls waiting for input after error:
+ # "LaTeX Error: File 'pict2e.sty' not found."
+ # "Type X to quit or <RETURN> to proceed,"
+ # "or enter new name. (Default extension: sty)"
+ # Fix: Removed "texlive" from makedepends to skip test
+ #
+ # [59: conditionally allocate \XFigu]
+ # Passes with "texlive" in makedepends (but removed to skip test 55)
+ #
+ # [61: accept large coordinates]
+ # Passes with "texlive" in makedepends (but removed to skip test 55)
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b1f083db6c38d84e1df82c430fabda5ad13413e4d42eb20b6fd06fae5626911413c93846b7935873687b82f601e0674c3f3e1d36441dcfa1da6626bafc9d2139 fig2dev-3.2.8b.tar.xz
+"
diff --git a/testing/filebeat/APKBUILD b/testing/filebeat/APKBUILD
deleted file mode 100644
index 95f62a0d86f..00000000000
--- a/testing/filebeat/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Contributor: Ramanathan Sivagurunathan <ramzthecoder@gmail.com>
-# Maintainer: Ramanathan Sivagurunathan <ramzthecoder@gmail.com>
-pkgname=filebeat
-pkgver=7.5.2
-pkgrel=1
-pkgdesc="Lightweight Shipper for Logs"
-pkgusers="root"
-url="https://www.elastic.co/products/beats"
-arch="all !armhf !armv7 !aarch64"
-license="Apache-2.0"
-makedepends="go"
-subpackages="$pkgname-openrc"
-options="!check" # No test suite
-source="beats-$pkgver.tar.gz::https://github.com/elastic/beats/archive/v$pkgver.tar.gz
- filebeat.initd
- filebeat.confd
- filebeat.yml
- "
-builddir="$srcdir/src/github.com/elastic/beats/$pkgname"
-
-prepare() {
- mkdir -p "$srcdir/src/github.com/elastic/"
- mv "$srcdir/beats-$pkgver" "$srcdir/src/github.com/elastic/beats"
- default_prepare
-}
-
-build() {
- GOPATH="$srcdir" go build -v
-}
-
-package() {
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
- install -Dm644 "$srcdir/filebeat.yml" "$pkgdir/etc/$pkgname/filebeat.yml"
- install -Dm755 "$builddir/filebeat" "$pkgdir/usr/bin/filebeat"
-}
-
-sha512sums="8911e05b489e07f4ec6ee6397e916186ad618bfe97c43c509d564a828a1938eeea6c57cf66f2e93216b5d6b3958e0450d3aab24b65ef7209f0040f66ee36e74a beats-7.5.2.tar.gz
-782ea2a2a5056e9e4d2e4ef6bb3f416b4ab0aba8486a7115e586b735478b53f75246af8ac5a6e10f93da6773854220dec7125396fa2fc24edeb1ddc0ea2f4ba1 filebeat.initd
-d39f6264d44d34958f005652cae6ffeed3bb66aea7694c5cd1c9d1e00befda946522d54d7138d7bafa30314588bc44b84f12b5bb1beac65553b69de3d91c34ad filebeat.confd
-b0d5fa1d37041a4f1383451107abcdab1ce15ed537f702f55756f59c2110445dcddaf7c58f2a0561e18b83e3cab72fceb9d931bae9267f1acd9d35135555d6f7 filebeat.yml"
diff --git a/testing/filebeat/filebeat.confd b/testing/filebeat/filebeat.confd
deleted file mode 100644
index f5c161f935a..00000000000
--- a/testing/filebeat/filebeat.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# FileBeat startup
-filebeat_opts="run -c /etc/filebeat/filebeat.yml -e"
diff --git a/testing/filebeat/filebeat.initd b/testing/filebeat/filebeat.initd
deleted file mode 100644
index ff34fc0f02b..00000000000
--- a/testing/filebeat/filebeat.initd
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/sbin/openrc-run
-
-FILEBEAT_LOG_FILE="/var/log/${SVCNAME}.log"
-
-name=filebeat
-description="Beats - Lightweight shippers for Elasticsearch & Logstash"
-description_checkconfig="Verify configuration file"
-daemon=/usr/bin/$name
-extra_commands="checkconfig"
-
-start_pre() {
- checkpath -f -m 0644 "$FILEBEAT_LOG_FILE"
-}
-
-depend() {
- need net
- after firewall
-}
-
-checkconfig() {
- filebeat test config -c /etc/filebeat/filebeat.yml
-}
-
-start() {
- checkconfig || return 1
-
-ebegin "Starting ${name}"
- start-stop-daemon --start --quiet \
- -m --pidfile /var/run/${name}.pid \
- -b --stdout $FILEBEAT_LOG_FILE --stderr $FILEBEAT_LOG_FILE \
- --exec ${daemon} -- ${filebeat_opts}
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${name}"
- start-stop-daemon --stop --quiet \
- --pidfile /var/run/${name}.pid \
- --exec ${daemon}
- eend $?
-}
-
diff --git a/testing/filebeat/filebeat.yml b/testing/filebeat/filebeat.yml
deleted file mode 100644
index 6533f9d3590..00000000000
--- a/testing/filebeat/filebeat.yml
+++ /dev/null
@@ -1,119 +0,0 @@
-###################### Filebeat Configuration Example #########################
-
-# This file is an example configuration file highlighting only the most common
-# options. The filebeat.full.yml file from the same directory contains all the
-# supported options with more comments. You can use it as a reference.
-#
-# You can find the full configuration reference here:
-# https://www.elastic.co/guide/en/beats/filebeat/index.html
-
-
-path.config: /etc/filebeat
-path.data: /var/lib/filebeat
-path.logs: /var/log/filebeat
-
-#=========================== Filebeat prospectors =============================
-
-filebeat.prospectors:
-
-# Each - is a prospector. Most options can be set at the prospector level, so
-# you can use different prospectors for various configurations.
-# Below are the prospector specific configurations.
-
-- input_type: log
-
- # Paths that should be crawled and fetched. Glob based paths.
- paths:
- - /var/log/*.log
- #- c:\programdata\elasticsearch\logs\*
-
- # Exclude lines. A list of regular expressions to match. It drops the lines that are
- # matching any regular expression from the list.
- #exclude_lines: ["^DBG"]
-
- # Include lines. A list of regular expressions to match. It exports the lines that are
- # matching any regular expression from the list.
- #include_lines: ["^ERR", "^WARN"]
-
- # Exclude files. A list of regular expressions to match. Filebeat drops the files that
- # are matching any regular expression from the list. By default, no files are dropped.
- #exclude_files: [".gz$"]
-
- # Optional additional fields. These field can be freely picked
- # to add additional information to the crawled log files for filtering
- #fields:
- # level: debug
- # review: 1
-
- ### Multiline options
-
- # Mutiline can be used for log messages spanning multiple lines. This is common
- # for Java Stack Traces or C-Line Continuation
-
- # The regexp Pattern that has to be matched. The example pattern matches all lines starting with [
- #multiline.pattern: ^\[
-
- # Defines if the pattern set under pattern should be negated or not. Default is false.
- #multiline.negate: false
-
- # Match can be set to "after" or "before". It is used to define if lines should be append to a pattern
- # that was (not) matched before or after or as long as a pattern is not matched based on negate.
- # Note: After is the equivalent to previous and before is the equivalent to to next in Logstash
- #multiline.match: after
-
-
-#================================ General =====================================
-
-# The name of the shipper that publishes the network data. It can be used to group
-# all the transactions sent by a single shipper in the web interface.
-#name:
-
-# The tags of the shipper are included in their own field with each
-# transaction published.
-#tags: ["service-X", "web-tier"]
-
-# Optional fields that you can specify to add additional information to the
-# output.
-#fields:
-# env: staging
-
-#================================ Outputs =====================================
-
-# Configure what outputs to use when sending the data collected by the beat.
-# Multiple outputs may be used.
-
-#-------------------------- Elasticsearch output ------------------------------
-output.elasticsearch:
- # Array of hosts to connect to.
- hosts: ["localhost:9200"]
-
- # Optional protocol and basic auth credentials.
- #protocol: "https"
- #username: "elastic"
- #password: "changeme"
-
-#----------------------------- Logstash output --------------------------------
-#output.logstash:
- # The Logstash hosts
- #hosts: ["localhost:5044"]
-
- # Optional SSL. By default is off.
- # List of root certificates for HTTPS server verifications
- #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
-
- # Certificate for SSL client authentication
- #ssl.certificate: "/etc/pki/client/cert.pem"
-
- # Client Certificate Key
- #ssl.key: "/etc/pki/client/cert.key"
-
-#================================ Logging =====================================
-
-# Sets log level. The default log level is info.
-# Available log levels are: critical, error, warning, info, debug
-#logging.level: debug
-
-# At debug level, you can selectively enable logging only for some components.
-# To enable all selectors use ["*"]. Examples of other selectors are "beat",
-# "publish", "service".
-#logging.selectors: ["*"]
diff --git a/testing/filebrowser/APKBUILD b/testing/filebrowser/APKBUILD
new file mode 100644
index 00000000000..c87e8989f04
--- /dev/null
+++ b/testing/filebrowser/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Hugo Rodrigues <hugorodrigues@hugorodrigues.xyz>
+pkgname=filebrowser
+pkgver=2.27.0
+pkgrel=2
+pkgdesc="Web File Browser"
+url="https://github.com/filebrowser/filebrowser"
+arch="x86_64"
+license="Apache-2.0"
+makedepends="go npm"
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/filebrowser/filebrowser/archive/refs/tags/v$pkgver.tar.gz
+ filebrowser.initd
+ filebrowser.confd
+ "
+
+prepare() {
+ default_prepare
+
+ # Set binary version inside go
+ sed -i "s/(untracked)/$pkgver/g" version/version.go
+}
+
+build() {
+ cd frontend
+ npm ci
+ # ancient webpack
+ NODE_OPTIONS="--openssl-legacy-provider" \
+ npm run build
+
+ cd "$builddir"
+ go build
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 filebrowser -t "$pkgdir"/usr/bin/
+ install -Dm 644 "$srcdir"/filebrowser.confd "$pkgdir"/etc/conf.d/filebrowser
+ install -Dm 755 "$srcdir"/filebrowser.initd "$pkgdir"/etc/init.d/filebrowser
+ install -dDm 770 -o $pkgusers -g $pkggroups "$pkgdir"/var/lib/$pkgname
+ install -dDm 770 -o $pkgusers -g $pkggroups "$pkgdir"/var/lib/$pkgname/data
+}
+
+sha512sums="
+43b76528694fad62d3572d5d35b54b8a9bb3328e3f2f0a3c36a3ac524d35c6c6132c8e2281bb8a9c038f6398c92861c147fe3216eb82fdb9d8217aa6c21c0b78 filebrowser-2.27.0.tar.gz
+381cabc633f5076e46e32c5b69aca5b4c82fc227b4cbfef4d0f710db9d9a5db46dc8f29c1641f4af20fb6dc70eb33d2af63d93e194ccc2e94a6c9fae8c7f9906 filebrowser.initd
+2d95fe1cef5f5a1a76448a25bed6d66d996b4a3cf6852dd7c8a63c52efc05dfff41bb7e0db20ec344c5389110852d5949131bc0a02fa3c2a48654b27a568dd7c filebrowser.confd
+"
diff --git a/testing/filebrowser/filebrowser.confd b/testing/filebrowser/filebrowser.confd
new file mode 100644
index 00000000000..e9489664e83
--- /dev/null
+++ b/testing/filebrowser/filebrowser.confd
@@ -0,0 +1 @@
+command_args="--database /var/lib/filebrowser/database.db --log /var/log/filebrowser.log --root /var/lib/filebrowser/data"
diff --git a/testing/filebrowser/filebrowser.initd b/testing/filebrowser/filebrowser.initd
new file mode 100644
index 00000000000..076c894381b
--- /dev/null
+++ b/testing/filebrowser/filebrowser.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+description="filebrowser server"
+command="/usr/bin/filebrowser"
+command_args="$command_args"
+command_background=true
+command_user="filebrowser:filebrowser"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/filebrowser/filebrowser.pre-install b/testing/filebrowser/filebrowser.pre-install
new file mode 100644
index 00000000000..19df8aaa48c
--- /dev/null
+++ b/testing/filebrowser/filebrowser.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+addgroup -S filebrowser 2> /dev/null
+adduser -S -D -H -s /sbin/nologin -G filebrowser -g filebrowser filebrowser 2> /dev/null
+exit 0
diff --git a/testing/fileshelter/APKBUILD b/testing/fileshelter/APKBUILD
new file mode 100644
index 00000000000..9f797af59ac
--- /dev/null
+++ b/testing/fileshelter/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=fileshelter
+pkgver=5.1.2
+pkgrel=4
+pkgdesc="One-click file sharing web application"
+url="https://github.com/epoupon/fileshelter"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake boost-dev libconfig-dev wt-dev samurai"
+subpackages="$pkgname-openrc"
+pkgusers="fileshelter"
+pkggroups="fileshelter"
+install="$pkgname.pre-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/epoupon/fileshelter/archive/v$pkgver.tar.gz
+ std-optional.patch
+ fileshelter.initd
+ "
+options="!check" # No testsuite
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -dm755 -o fileshelter -g fileshelter \
+ "$pkgdir"/var/fileshelter
+
+ install -Dm644 conf/fileshelter.conf \
+ "$pkgdir"/etc/fileshelter.conf
+
+ rm "$pkgdir"/usr/share/fileshelter/default.service
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+722786950d2893a8a0da50bb47fd28bd9b9313cca7bbb7ada5fbf79900733bed89cf8171d817d17a52dc0fcf6a2058cd00ced33cda4e0cbfb90d280a89dda718 fileshelter-5.1.2.tar.gz
+a1ef635d1f7ee82abc4abf5d1d0253515308923e7443e86faa34be14af1056714c204da5d9a2a3162595ad9395e66f2452df87487dce0f1e97d460c794d9dbbc std-optional.patch
+56051559c91d5c269f8e945445aab3e48de7f3593b7321e6556aee87c458091cfaf14a220a0a8bbb5aa8f682fe1ebd289cfb8dd21b0f3eeb881268f28d84c115 fileshelter.initd
+"
diff --git a/testing/fileshelter/fileshelter.initd b/testing/fileshelter/fileshelter.initd
new file mode 100644
index 00000000000..e54546d95c2
--- /dev/null
+++ b/testing/fileshelter/fileshelter.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name="fileshelter"
+command="/usr/bin/fileshelter"
+command_user="fileshelter:fileshelter"
+command_background=true
+pidfile="/run/fileshelter.pid"
+
+depend() {
+ need net localmount
+ after firewall
+}
diff --git a/testing/fileshelter/fileshelter.pre-install b/testing/fileshelter/fileshelter.pre-install
new file mode 100644
index 00000000000..fd16994a2b8
--- /dev/null
+++ b/testing/fileshelter/fileshelter.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S fileshelter 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G fileshelter -g fileshelter fileshelter 2>/dev/null
+
+exit 0
diff --git a/testing/fileshelter/std-optional.patch b/testing/fileshelter/std-optional.patch
new file mode 100644
index 00000000000..83d5dfd06a2
--- /dev/null
+++ b/testing/fileshelter/std-optional.patch
@@ -0,0 +1,11 @@
+Fixes 'std::optional' error
+--- fileshelter-5.0.1/src/fileshelter/ui/ShareDownload.hpp
++++ fileshelter-5.0.1/src/fileshelter/ui/ShareDownload.hpp
+@@ -20,6 +20,7 @@
+ #pragma once
+
+ #include <Wt/WContainerWidget.h>
++#include <optional>
+ #include "share/Types.hpp"
+
+ namespace UserInterface
diff --git a/testing/filite/APKBUILD b/testing/filite/APKBUILD
new file mode 100644
index 00000000000..6f1a924b3c7
--- /dev/null
+++ b/testing/filite/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=filite
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="simple and light pastebin"
+url="https://github.com/raftario/filite"
+arch="x86_64 armv7 armhf aarch64 x86" # limited by rust/cargo
+license="MIT"
+makedepends="cargo sqlite-dev cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/raftario/filite/archive/refs/tags/v$pkgver.tar.gz
+ fix-build.patch
+ system-sqlite.patch
+ "
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/filite -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+9d55a28e3578a8ef010ef184b517de3b59753a1058d82970ad8ff178d219e182eeaa4d31f38330735bddb89dbfbf297229026a69191c8a90c94f2e1dfda06106 filite-0.3.0.tar.gz
+994cd9439016cb5c20f06e5b7a16d9b17edfcf43872e2277b3ec87654f4350dd1e0d45c19f6dfad0b85a6e74090ce6327520fe2a0168e29ac2d3d7868b87365d fix-build.patch
+dfdfb3c75383876bb16e60ba5b035e76adf3851c30603648b643ebc5c6be2b98097ff39c1e5f2c808662fb49000513997a96bd4b14899a704c19ba330d092a6b system-sqlite.patch
+"
diff --git a/testing/filite/fix-build.patch b/testing/filite/fix-build.patch
new file mode 100644
index 00000000000..165d6d3fce6
--- /dev/null
+++ b/testing/filite/fix-build.patch
@@ -0,0 +1,3110 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f50033b..807f0eb 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,2262 +1,2267 @@
+ # This file is automatically @generated by Cargo.
+ # It is not intended for manual editing.
++version = 3
++
+ [[package]]
+ name = "actix-codec"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09e55f0a5c2ca15795035d90c46bd0e73a5123b72f68f12596d6ba5282051380"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "bytes",
++ "futures-core",
++ "futures-sink",
++ "log",
++ "tokio",
++ "tokio-util",
+ ]
+
+ [[package]]
+ name = "actix-connect"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f2b61480a8d30c94d5c883d79ef026b02ad6809931b0a4bb703f9545cd8c986"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "trust-dns-resolver 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-rt",
++ "actix-service",
++ "actix-utils",
++ "derive_more",
++ "either",
++ "futures",
++ "http",
++ "log",
++ "trust-dns-proto",
++ "trust-dns-resolver",
+ ]
+
+ [[package]]
+ name = "actix-files"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "301482841d3d74483a446ead63cb7d362e187d2c8b603f13d91995621ea53c46"
+ dependencies = [
+- "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "v_htmlescape 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-http",
++ "actix-service",
++ "actix-web",
++ "bitflags",
++ "bytes",
++ "derive_more",
++ "futures",
++ "log",
++ "mime",
++ "mime_guess",
++ "percent-encoding",
++ "v_htmlescape",
+ ]
+
+ [[package]]
+ name = "actix-http"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c16664cc4fdea8030837ad5a845eb231fb93fc3c5c171edfefb52fad92ce9019"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-connect 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "brotli2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encoding_rs 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-connect",
++ "actix-rt",
++ "actix-service",
++ "actix-threadpool",
++ "actix-utils",
++ "base64 0.11.0",
++ "bitflags",
++ "brotli2",
++ "bytes",
++ "chrono",
++ "copyless",
++ "derive_more",
++ "either",
++ "encoding_rs",
++ "failure",
++ "flate2",
++ "futures-channel",
++ "futures-core",
++ "futures-util",
++ "fxhash",
++ "h2",
++ "http",
++ "httparse",
++ "indexmap",
++ "language-tags",
++ "lazy_static",
++ "log",
++ "mime",
++ "percent-encoding",
++ "pin-project",
++ "rand",
++ "regex",
++ "ring",
++ "serde",
++ "serde_json",
++ "serde_urlencoded",
++ "sha1",
++ "slab",
++ "time",
+ ]
+
+ [[package]]
+ name = "actix-identity"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a379b0639c293292d71defb8cc1f94c87b7705c904adf044338ad392df77c7a"
+ dependencies = [
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-service",
++ "actix-web",
++ "futures",
++ "serde",
++ "serde_json",
++ "time",
+ ]
+
+ [[package]]
+ name = "actix-macros"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "21705adc76bbe4bc98434890e73a89cd00c6015e5704a60bb6eea6c3b72316b6"
+ dependencies = [
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "actix-multipart"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4397935fca2a37a5353f94faa758fb176712806f605466b5a60373b204f0d836"
+ dependencies = [
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "twoway 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-service",
++ "actix-utils",
++ "actix-web",
++ "bytes",
++ "derive_more",
++ "futures",
++ "httparse",
++ "log",
++ "mime",
++ "time",
++ "twoway",
+ ]
+
+ [[package]]
+ name = "actix-router"
+ version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8"
+ dependencies = [
+- "bytestring 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytestring",
++ "http",
++ "log",
++ "regex",
++ "serde",
+ ]
+
+ [[package]]
+ name = "actix-rt"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f6a0a55507046441a496b2f0d26a84a65e67c8cafffe279072412f624b5fb6d"
+ dependencies = [
+- "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-macros",
++ "actix-threadpool",
++ "copyless",
++ "futures",
++ "tokio",
+ ]
+
+ [[package]]
+ name = "actix-server"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51d3455eaac03ca3e49d7b822eb35c884b861f715627254ccbe4309d08f1841a"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-rt",
++ "actix-service",
++ "actix-utils",
++ "futures",
++ "log",
++ "mio",
++ "mio-uds",
++ "net2",
++ "num_cpus",
++ "slab",
+ ]
+
+ [[package]]
+ name = "actix-service"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9fba4171f1952aa15f3cf410facac388d18110b1e8754f84a407ab7f9d5ac7ee"
+ dependencies = [
+- "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-util",
++ "pin-project",
+ ]
+
+ [[package]]
+ name = "actix-testing"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "48494745b72d0ea8ff0cf874aaf9b622a3ee03d7081ee0c04edea4f26d32c911"
+ dependencies = [
+- "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-server 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-macros",
++ "actix-rt",
++ "actix-server",
++ "actix-service",
++ "futures",
++ "log",
++ "net2",
+ ]
+
+ [[package]]
+ name = "actix-threadpool"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf4082192601de5f303013709ff84d81ca6a1bc4af7fb24f367a500a23c6e84e"
+ dependencies = [
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "derive_more",
++ "futures-channel",
++ "lazy_static",
++ "log",
++ "num_cpus",
++ "parking_lot 0.10.0",
++ "threadpool",
+ ]
+
+ [[package]]
+ name = "actix-tls"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4e5b4faaf105e9a6d389c606c298dcdb033061b00d532af9df56ff3a54995a8"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-rt",
++ "actix-service",
++ "actix-utils",
++ "derive_more",
++ "either",
++ "futures",
++ "log",
+ ]
+
+ [[package]]
+ name = "actix-utils"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fcf8f5631bf01adec2267808f00e228b761c60c0584cc9fa0b5364f41d147f4e"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-rt",
++ "actix-service",
++ "bitflags",
++ "bytes",
++ "either",
++ "futures",
++ "log",
++ "pin-project",
++ "slab",
+ ]
+
+ [[package]]
+ name = "actix-web"
+ version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3158e822461040822f0dbf1735b9c2ce1f95f93b651d7a7aded00b1efbb1f635"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-router 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-server 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-testing 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-web-codegen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "awc 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encoding_rs 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-http",
++ "actix-macros",
++ "actix-router",
++ "actix-rt",
++ "actix-server",
++ "actix-service",
++ "actix-testing",
++ "actix-threadpool",
++ "actix-tls",
++ "actix-utils",
++ "actix-web-codegen",
++ "awc",
++ "bytes",
++ "derive_more",
++ "encoding_rs",
++ "futures",
++ "fxhash",
++ "log",
++ "mime",
++ "net2",
++ "pin-project",
++ "regex",
++ "serde",
++ "serde_json",
++ "serde_urlencoded",
++ "time",
++ "url",
+ ]
+
+ [[package]]
+ name = "actix-web-codegen"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de0878b30e62623770a4713a6338329fd0119703bafc211d3e4144f4d4a7bdd5"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "adler32"
+ version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
+
+ [[package]]
+ name = "aho-corasick"
+ version = "0.7.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
+ dependencies = [
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr",
+ ]
+
+ [[package]]
+ name = "anyhow"
+ version = "1.0.26"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
+
+ [[package]]
+ name = "arc-swap"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1a1eca3195b729bbd64e292ef2f5fff6b1c28504fed762ce2b1013dde4d8e92"
+
+ [[package]]
+ name = "arrayref"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
+
+ [[package]]
+ name = "arrayvec"
+ version = "0.4.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
+ dependencies = [
+- "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nodrop",
+ ]
+
+ [[package]]
+ name = "arrayvec"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+
+ [[package]]
+ name = "async-trait"
+ version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c8df72488e87761e772f14ae0c2480396810e51b2c2ade912f97f0f7e5b95e3c"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "atty"
+ version = "0.2.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "autocfg"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+
+ [[package]]
+ name = "awc"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7601d4d1d7ef2335d6597a41b5fe069f6ab799b85f53565ab390e7b7065aac5"
+ dependencies = [
+- "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-codec",
++ "actix-http",
++ "actix-rt",
++ "actix-service",
++ "base64 0.11.0",
++ "bytes",
++ "derive_more",
++ "futures-core",
++ "log",
++ "mime",
++ "percent-encoding",
++ "rand",
++ "serde",
++ "serde_json",
++ "serde_urlencoded",
+ ]
+
+ [[package]]
+ name = "backtrace"
+ version = "0.3.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
+ dependencies = [
+- "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace-sys",
++ "cfg-if 0.1.10",
++ "libc",
++ "rustc-demangle",
+ ]
+
+ [[package]]
+ name = "backtrace-sys"
+ version = "0.1.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
+ ]
+
+ [[package]]
+ name = "base64"
+ version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+
+ [[package]]
+ name = "base64"
+ version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+
+ [[package]]
+ name = "bitflags"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+ [[package]]
+ name = "blake2b_simd"
+ version = "0.5.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5850aeee1552f495dd0250014cf64b82b7c8879a89d83b33bbdace2cc4f63182"
+ dependencies = [
+- "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayref",
++ "arrayvec 0.4.12",
++ "constant_time_eq",
+ ]
+
+ [[package]]
+ name = "blake3"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba0511b7f4f7d9cb1ef7b8dfda5293af6c1071578d65c8a05aa7d11c1985f08c"
+ dependencies = [
+- "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayref",
++ "arrayvec 0.5.1",
++ "cc",
++ "cfg-if 0.1.10",
++ "constant_time_eq",
+ ]
+
+ [[package]]
+ name = "brotli-sys"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "libc",
+ ]
+
+ [[package]]
+ name = "brotli2"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e"
+ dependencies = [
+- "brotli-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "brotli-sys",
++ "libc",
+ ]
+
+ [[package]]
+ name = "bumpalo"
+ version = "3.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5fb8038c1ddc0a5f73787b130f4cc75151e96ed33e417fde765eb5a81e3532f4"
+
+ [[package]]
+ name = "byteorder"
+ version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+
+ [[package]]
+ name = "bytes"
+ version = "0.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "10004c15deb332055f7a4a208190aed362cf9a7c2f6ab70a305fba50e1105f38"
+
+ [[package]]
+ name = "bytestring"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc267467f58ef6cc8874064c62a0423eb0d099362c8a23edd1c6d044f46eead4"
+ dependencies = [
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
+ ]
+
+ [[package]]
+ name = "c2-chacha"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
+ dependencies = [
+- "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86",
+ ]
+
+ [[package]]
+ name = "cc"
+ version = "1.0.50"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
+
+ [[package]]
+ name = "cfg-if"
+ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "chrono"
+ version = "0.4.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
+ dependencies = [
+- "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer",
++ "num-traits",
++ "time",
+ ]
+
+ [[package]]
+ name = "clicolors-control"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
+ dependencies = [
+- "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty",
++ "lazy_static",
++ "libc",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "cloudabi"
+ version = "0.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
+ ]
+
+ [[package]]
+ name = "console"
+ version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f5d540c2d34ac9dd0deb5f3b5f54c36c79efa78f6b3ad19106a554d07a7b5d9f"
+ dependencies = [
+- "clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clicolors-control",
++ "encode_unicode",
++ "lazy_static",
++ "libc",
++ "regex",
++ "termios",
++ "unicode-width",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "constant_time_eq"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+ [[package]]
+ name = "copyless"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ff9c56c9fb2a49c05ef0e431485a22400af20d33226dc0764d891d09e724127"
+
+ [[package]]
+ name = "crc32fast"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
+ ]
+
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.6.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "lazy_static",
+ ]
+
+ [[package]]
+ name = "derive_more"
+ version = "0.99.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "dialoguer"
+ version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94616e25d2c04fc97253d145f6ca33ad84a584258dc70c4e621cc79a57f903b6"
+ dependencies = [
+- "console 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console",
++ "lazy_static",
++ "tempfile",
+ ]
+
+ [[package]]
+ name = "diesel"
+ version = "1.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9d7cc03b910de9935007861dce440881f69102aaaedfd4bc5a6f40340ca5840c"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "diesel_derives 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libsqlite3-sys 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "r2d2 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "diesel_derives",
++ "libsqlite3-sys",
++ "r2d2",
+ ]
+
+ [[package]]
+ name = "diesel_derives"
+ version = "1.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "diesel_migrations"
+ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c"
+ dependencies = [
+- "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "migrations_macros 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_internals",
++ "migrations_macros",
+ ]
+
+ [[package]]
+ name = "dirs"
+ version = "2.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "dirs-sys",
+ ]
+
+ [[package]]
+ name = "dirs-sys"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "libc",
++ "redox_users",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "dotenv"
+ version = "0.15.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
+
+ [[package]]
+ name = "dtoa"
+ version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
+
+ [[package]]
+ name = "either"
+ version = "1.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+
+ [[package]]
+ name = "encode_unicode"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+ [[package]]
+ name = "encoding_rs"
+ version = "0.8.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87240518927716f79692c2ed85bfe6e98196d18c6401ec75355760233a7e12e9"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
+ ]
+
+ [[package]]
+ name = "enum-as-inner"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "900a6c7fbe523f4c2884eaf26b57b81bb69b6810a01a236390a7ac021d09492e"
+ dependencies = [
+- "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "heck",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "env_logger"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+ dependencies = [
+- "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty",
++ "humantime",
++ "log",
++ "regex",
++ "termcolor",
+ ]
+
+ [[package]]
+ name = "failure"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
+ dependencies = [
+- "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace",
++ "failure_derive",
+ ]
+
+ [[package]]
+ name = "failure_derive"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synstructure 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "synstructure",
+ ]
+
+ [[package]]
+ name = "filite"
+ version = "0.3.0"
+ dependencies = [
+- "actix-files 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-identity 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-multipart 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "blake3 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dialoguer 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "diesel 1.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "dotenv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libsqlite3-sys 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "radix_fmt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "actix-files",
++ "actix-identity",
++ "actix-multipart",
++ "actix-rt",
++ "actix-web",
++ "base64 0.11.0",
++ "blake3",
++ "chrono",
++ "dialoguer",
++ "diesel",
++ "diesel_migrations",
++ "dirs",
++ "dotenv",
++ "env_logger",
++ "futures",
++ "lazy_static",
++ "libsqlite3-sys",
++ "num_cpus",
++ "radix_fmt",
++ "rand",
++ "serde",
++ "toml",
+ ]
+
+ [[package]]
+ name = "flate2"
+ version = "1.0.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "crc32fast",
++ "libc",
++ "miniz_oxide",
+ ]
+
+ [[package]]
+ name = "fnv"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+
+ [[package]]
+ name = "fuchsia-cprng"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+ [[package]]
+ name = "fuchsia-zircon"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+ dependencies = [
+- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "fuchsia-zircon-sys",
+ ]
+
+ [[package]]
+ name = "fuchsia-zircon-sys"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+ [[package]]
+ name = "futures"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b6f16056ecbb57525ff698bb955162d0cd03bee84e6241c27ff75c08d8ca5987"
+ dependencies = [
+- "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-executor 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-io 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-io",
++ "futures-sink",
++ "futures-task",
++ "futures-util",
+ ]
+
+ [[package]]
+ name = "futures-channel"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fcae98ca17d102fd8a3603727b9259fcf7fa4239b603d2142926189bc8999b86"
+ dependencies = [
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-core",
++ "futures-sink",
+ ]
+
+ [[package]]
+ name = "futures-core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "79564c427afefab1dfb3298535b21eda083ef7935b4f0ecbfcb121f0aec10866"
+
+ [[package]]
+ name = "futures-executor"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e274736563f686a837a0568b478bdabfeaec2dca794b5649b04e2fe1627c231"
+ dependencies = [
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-core",
++ "futures-task",
++ "futures-util",
+ ]
+
+ [[package]]
+ name = "futures-io"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e676577d229e70952ab25f3945795ba5b16d63ca794ca9d2c860e5595d20b5ff"
+
+ [[package]]
+ name = "futures-macro"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "52e7c56c15537adb4f76d0b7a76ad131cb4d2f4f32d3b0bcabcbe1c7c5e87764"
+ dependencies = [
+- "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "futures-sink"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "171be33efae63c2d59e6dbba34186fe0d6394fb378069a76dfd80fdcffd43c16"
+
+ [[package]]
+ name = "futures-task"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0bae52d6b29cf440e298856fec3965ee6fa71b06aa7495178615953fd669e5f9"
+
+ [[package]]
+ name = "futures-util"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0d66274fb76985d3c62c886d1da7ac4c0903a8c9f754e8fe0f35a6a6cc39e76"
+ dependencies = [
+- "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-io 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-macro 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-macro",
++ "futures-sink",
++ "futures-task",
++ "memchr",
++ "pin-utils",
++ "proc-macro-hack",
++ "proc-macro-nested",
++ "slab",
+ ]
+
+ [[package]]
+ name = "fxhash"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+ dependencies = [
+- "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+
+ [[package]]
+ name = "getrandom"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "libc",
++ "wasi",
+ ]
+
+ [[package]]
+ name = "h2"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b9433d71e471c1736fd5a61b671fc0b148d7a2992f666c958d03cd8feb3b88d1"
+ dependencies = [
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "fnv",
++ "futures-core",
++ "futures-sink",
++ "futures-util",
++ "http",
++ "indexmap",
++ "log",
++ "slab",
++ "tokio",
++ "tokio-util",
+ ]
+
+ [[package]]
+ name = "heck"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+ dependencies = [
+- "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation",
+ ]
+
+ [[package]]
+ name = "hermit-abi"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "hostname"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "21ceb46a83a85e824ef93669c8b390009623863b5c195d1ba747292c0c72f94e"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winutil 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winutil",
+ ]
+
+ [[package]]
+ name = "http"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b"
+ dependencies = [
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "fnv",
++ "itoa",
+ ]
+
+ [[package]]
+ name = "httparse"
+ version = "1.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+
+ [[package]]
+ name = "humantime"
+ version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+ dependencies = [
+- "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error",
+ ]
+
+ [[package]]
+ name = "idna"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+
+ [[package]]
+ name = "indexmap"
+ version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
+ ]
+
+ [[package]]
+ name = "iovec"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "ipconfig"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa79fa216fbe60834a9c0737d7fcd30425b32d1c58854663e24d4c4b328ed83f"
+ dependencies = [
+- "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "socket2",
++ "widestring",
++ "winapi 0.3.8",
++ "winreg",
+ ]
+
+ [[package]]
+ name = "itoa"
+ version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+
+ [[package]]
+ name = "js-sys"
+ version = "0.3.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7889c7c36282151f6bf465be4700359318aef36baa951462382eae49e9577cf9"
+ dependencies = [
+- "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen",
+ ]
+
+ [[package]]
+ name = "kernel32-sys"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+
+ [[package]]
+ name = "language-tags"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+
+ [[package]]
+ name = "lazy_static"
+ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.65"
++version = "0.2.136"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "55edcf6c0bb319052dea84732cf99db461780fd5e8d3eb46ab6ff312ab31f197"
+
+ [[package]]
+ name = "libsqlite3-sys"
+ version = "0.16.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e5b95e89c330291768dc840238db7f9e204fd208511ab6319b56193a7f2ae25"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "pkg-config",
++ "vcpkg",
+ ]
+
+ [[package]]
+ name = "linked-hash-map"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
+
+ [[package]]
+ name = "lock_api"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
+ dependencies = [
+- "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard",
+ ]
+
+ [[package]]
+ name = "log"
+ version = "0.4.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
+ ]
+
+ [[package]]
+ name = "lru-cache"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+ dependencies = [
+- "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "linked-hash-map",
+ ]
+
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+
+ [[package]]
+ name = "memchr"
+ version = "2.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+
+ [[package]]
+ name = "migrations_internals"
+ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8089920229070f914b9ce9b07ef60e175b2b9bc2d35c3edd8bf4433604e863b9"
+ dependencies = [
+- "diesel 1.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel",
+ ]
+
+ [[package]]
+ name = "migrations_macros"
+ version = "1.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "719ef0bc7f531428764c9b70661c14abd50a7f3d21f355752d9985aa21251c9e"
+ dependencies = [
+- "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_internals",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "mime"
+ version = "0.3.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd1d63acd1b78403cc0c325605908475dd9b9a3acbf65ed8bcab97e27014afcf"
+
+ [[package]]
+ name = "mime_guess"
+ version = "2.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599"
+ dependencies = [
+- "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 2.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime",
++ "unicase",
+ ]
+
+ [[package]]
+ name = "miniz_oxide"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
+ dependencies = [
+- "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32",
+ ]
+
+ [[package]]
+ name = "mio"
+ version = "0.6.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "libc",
++ "log",
++ "miow",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "mio-uds"
+ version = "0.6.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
+ dependencies = [
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec",
++ "libc",
++ "mio",
+ ]
+
+ [[package]]
+ name = "miow"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+
+ [[package]]
+ name = "net2"
+ version = "0.2.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "libc",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "nodrop"
+ version = "0.1.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+
+ [[package]]
+ name = "nom"
+ version = "4.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+ dependencies = [
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "num-integer"
+ version = "0.1.41"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "num-traits",
+ ]
+
+ [[package]]
+ name = "num-traits"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
+ ]
+
+ [[package]]
+ name = "num_cpus"
+ version = "1.11.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
+ dependencies = [
+- "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
+ ]
+
+ [[package]]
+ name = "parking_lot"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+ dependencies = [
+- "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api",
++ "parking_lot_core 0.6.2",
++ "rustc_version",
+ ]
+
+ [[package]]
+ name = "parking_lot"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc"
+ dependencies = [
+- "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api",
++ "parking_lot_core 0.7.0",
+ ]
+
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "cloudabi",
++ "libc",
++ "redox_syscall",
++ "rustc_version",
++ "smallvec 0.6.10",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "cloudabi",
++ "libc",
++ "redox_syscall",
++ "smallvec 1.1.0",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "percent-encoding"
+ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+ [[package]]
+ name = "pin-project"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94b90146c7216e4cb534069fb91366de4ea0ea353105ee45ed297e2d1619e469"
+ dependencies = [
+- "pin-project-internal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pin-project-internal",
+ ]
+
+ [[package]]
+ name = "pin-project-internal"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44ca92f893f0656d3cba8158dd0f2b99b94de256a4a54e870bd6922fcc6c8355"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "pin-project-lite"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8822eb8bb72452f038ebf6048efa02c3fe22bf83f76519c9583e47fc194a422"
+
+ [[package]]
+ name = "pin-utils"
+ version = "0.1.0-alpha.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"
+
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea"
+
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+
+ [[package]]
+ name = "proc-macro-hack"
+ version = "0.5.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "proc-macro-nested"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e"
+
+ [[package]]
+ name = "proc-macro2"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
+ dependencies = [
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid",
+ ]
+
+ [[package]]
+ name = "quick-error"
+ version = "1.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
+
+ [[package]]
+ name = "quote"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
+ ]
+
+ [[package]]
+ name = "r2d2"
+ version = "0.8.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e48fa64898ef0286b6ee4b4d8f61483f9182acf5e44e62a398b1c7f56f2f861d"
+ dependencies = [
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log",
++ "parking_lot 0.9.0",
++ "scheduled-thread-pool",
+ ]
+
+ [[package]]
+ name = "radix_fmt"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
+
+ [[package]]
+ name = "rand"
+ version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+ dependencies = [
+- "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core 0.5.1",
++ "rand_hc",
+ ]
+
+ [[package]]
+ name = "rand_chacha"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+ dependencies = [
+- "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "c2-chacha",
++ "rand_core 0.5.1",
+ ]
+
+ [[package]]
+ name = "rand_core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+ dependencies = [
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2",
+ ]
+
+ [[package]]
+ name = "rand_core"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+ [[package]]
+ name = "rand_core"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+ dependencies = [
+- "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
+ ]
+
+ [[package]]
+ name = "rand_hc"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+ dependencies = [
+- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1",
+ ]
+
+ [[package]]
+ name = "rand_os"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.4.2",
++ "rdrand",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "rdrand"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "redox_syscall"
+ version = "0.1.56"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+
+ [[package]]
+ name = "redox_users"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
+ dependencies = [
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure",
++ "rand_os",
++ "redox_syscall",
++ "rust-argon2",
+ ]
+
+ [[package]]
+ name = "regex"
+ version = "1.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
+ dependencies = [
+- "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
+ ]
+
+ [[package]]
+ name = "regex-syntax"
+ version = "0.6.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
+
+ [[package]]
+ name = "remove_dir_all"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "resolv-conf"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b263b4aa1b5de9ffc0054a2386f96992058bb6870aab516f8cdeb8a667d56dcb"
+ dependencies = [
+- "hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hostname",
++ "quick-error",
+ ]
+
+ [[package]]
+ name = "ring"
+ version = "0.16.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6747f8da1f2b1fabbee1aaa4eb8a11abf9adef0bf58a41cee45db5d59cecdfac"
+ dependencies = [
+- "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc",
++ "lazy_static",
++ "libc",
++ "spin",
++ "untrusted",
++ "web-sys",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "rust-argon2"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
+ dependencies = [
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "blake2b_simd 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.10.1",
++ "blake2b_simd",
++ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "rustc-demangle"
+ version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+
+ [[package]]
+ name = "rustc_version"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+ dependencies = [
+- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver",
+ ]
+
+ [[package]]
+ name = "ryu"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
+
+ [[package]]
+ name = "scheduled-thread-pool"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd07742e081ff6c077f5f6b283f12f32b9e7cc765b316160d66289b74546fbb3"
+ dependencies = [
+- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.9.0",
+ ]
+
+ [[package]]
+ name = "scopeguard"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
+
+ [[package]]
+ name = "semver"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+ dependencies = [
+- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver-parser",
+ ]
+
+ [[package]]
+ name = "semver-parser"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+ [[package]]
+ name = "serde"
+ version = "1.0.104"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
+ dependencies = [
+- "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+ version = "1.0.104"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "serde_json"
+ version = "1.0.41"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2"
+ dependencies = [
+- "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa",
++ "ryu",
++ "serde",
+ ]
+
+ [[package]]
+ name = "serde_urlencoded"
+ version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
+ dependencies = [
+- "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dtoa",
++ "itoa",
++ "serde",
++ "url",
+ ]
+
+ [[package]]
+ name = "sha1"
+ version = "0.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+
+ [[package]]
+ name = "signal-hook-registry"
+ version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1797d48f38f91643908bb14e35e79928f9f4b3cefb2420a564dde0991b4358dc"
+ dependencies = [
+- "arc-swap 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arc-swap",
++ "libc",
+ ]
+
+ [[package]]
+ name = "slab"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+ [[package]]
+ name = "smallvec"
+ version = "0.6.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
+
+ [[package]]
+ name = "smallvec"
+ version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
+
+ [[package]]
+ name = "socket2"
+-version = "0.3.11"
++version = "0.3.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 1.0.0",
++ "libc",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "sourcefile"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
+
+ [[package]]
+ name = "spin"
+ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+ [[package]]
+ name = "syn"
+ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0e7bedb3320d0f3035594b0b723c8a28d7d336a3eda3881db79e61d676fb644c"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
+ ]
+
+ [[package]]
+ name = "synstructure"
+ version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f085a5855930c0441ca1288cf044ea4aecf4f43a91668abdb870b4ba546a203"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "unicode-xid",
+ ]
+
+ [[package]]
+ name = "tempfile"
+ version = "3.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "libc",
++ "rand",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "termcolor"
+ version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e"
+ dependencies = [
+- "wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wincolor",
+ ]
+
+ [[package]]
+ name = "termios"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "thread_local"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+ dependencies = [
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
+ ]
+
+ [[package]]
+ name = "threadpool"
+ version = "1.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
+ dependencies = [
+- "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus",
+ ]
+
+ [[package]]
+ name = "time"
+ version = "0.1.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+ dependencies = [
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "tokio"
+ version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffa2fdcfa937b20cb3c822a635ceecd5fc1a27a6a474527e5516aa24b8c8820a"
+ dependencies = [
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project-lite 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "signal-hook-registry 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "fnv",
++ "futures-core",
++ "iovec",
++ "lazy_static",
++ "libc",
++ "memchr",
++ "mio",
++ "mio-uds",
++ "pin-project-lite",
++ "signal-hook-registry",
++ "slab",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "tokio-util"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930"
+ dependencies = [
+- "bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pin-project-lite 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures-core",
++ "futures-sink",
++ "log",
++ "pin-project-lite",
++ "tokio",
+ ]
+
+ [[package]]
+ name = "toml"
+ version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
+ dependencies = [
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
+ ]
+
+ [[package]]
+ name = "trust-dns-proto"
+ version = "0.18.0-alpha.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a7f3a2ab8a919f5eca52a468866a67ed7d3efa265d48a652a9a3452272b413f"
+ dependencies = [
+- "async-trait 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+- "enum-as-inner 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "async-trait",
++ "enum-as-inner",
++ "failure",
++ "futures",
++ "idna",
++ "lazy_static",
++ "log",
++ "rand",
++ "smallvec 1.1.0",
++ "socket2",
++ "tokio",
++ "url",
+ ]
+
+ [[package]]
+ name = "trust-dns-resolver"
+ version = "0.18.0-alpha.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6f90b1502b226f8b2514c6d5b37bafa8c200d7ca4102d57dc36ee0f3b7a04a2f"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ipconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "resolv-conf 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "failure",
++ "futures",
++ "ipconfig",
++ "lazy_static",
++ "log",
++ "lru-cache",
++ "resolv-conf",
++ "smallvec 1.1.0",
++ "tokio",
++ "trust-dns-proto",
+ ]
+
+ [[package]]
+ name = "twoway"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6b40075910de3a912adbd80b5d8bad6ad10a23eeb1f5bf9d4006839e899ba5bc"
+ dependencies = [
+- "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unchecked-index 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr",
++ "unchecked-index",
+ ]
+
+ [[package]]
+ name = "unchecked-index"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c"
+
+ [[package]]
+ name = "unicase"
+ version = "2.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e2e6bd1e59e56598518beb94fd6db628ded570326f0a98c679a304bd9f00150"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "unicode-bidi"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
+ ]
+
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
+ dependencies = [
+- "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.10",
+ ]
+
+ [[package]]
+ name = "unicode-segmentation"
+ version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+
+ [[package]]
+ name = "unicode-width"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
+
+ [[package]]
+ name = "unicode-xid"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+
+ [[package]]
+ name = "untrusted"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60369ef7a31de49bcb3f6ca728d4ba7300d9a1658f94c727d4cab8c8d9f4aece"
+
+ [[package]]
+ name = "url"
+ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
+ dependencies = [
+- "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna",
++ "matches",
++ "percent-encoding",
+ ]
+
+ [[package]]
+ name = "v_escape"
+ version = "0.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "660b101c07b5d0863deb9e7fb3138777e858d6d2a79f9e6049a27d1cc77c6da6"
+ dependencies = [
+- "v_escape_derive 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "v_escape_derive",
+ ]
+
+ [[package]]
+ name = "v_escape_derive"
+ version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c2ca2a14bc3fc5b64d188b087a7d3a927df87b152e941ccfbc66672e20c467ae"
+ dependencies = [
+- "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nom",
++ "proc-macro2",
++ "quote",
++ "syn",
+ ]
+
+ [[package]]
+ name = "v_htmlescape"
+ version = "0.4.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e33e939c0d8cf047514fb6ba7d5aac78bc56677a6938b2ee67000b91f2e97e41"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "v_escape 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "v_escape",
+ ]
+
+ [[package]]
+ name = "vcpkg"
+ version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
+
+ [[package]]
+ name = "version_check"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+ [[package]]
+ name = "wasi"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+
+ [[package]]
+ name = "wasm-bindgen"
+ version = "0.2.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5205e9afdf42282b192e2310a5b463a6d1c1d774e30dc3c791ac37ab42d2616c"
+ dependencies = [
+- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-macro 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10",
++ "wasm-bindgen-macro",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-backend"
+ version = "0.2.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "11cdb95816290b525b32587d76419facd99662a07e59d3cdb560488a819d9a45"
+ dependencies = [
+- "bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bumpalo",
++ "lazy_static",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-macro"
+ version = "0.2.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "574094772ce6921576fb6f2e3f7497b8a76273b6db092be18fc48a082de09dc3"
+ dependencies = [
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-macro-support 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote",
++ "wasm-bindgen-macro-support",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-macro-support"
+ version = "0.2.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e85031354f25eaebe78bb7db1c3d86140312a911a106b2e29f9cc440ce3e7668"
+ dependencies = [
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-shared"
+ version = "0.2.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f5e7e61fc929f4c0dddb748b102ebf9f632e2b8d739f2016542b4de2965a9601"
+
+ [[package]]
+ name = "wasm-bindgen-webidl"
+ version = "0.2.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef012a0d93fc0432df126a8eaf547b2dce25a8ce9212e1d3cbeef5c11157975d"
+ dependencies = [
+- "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+- "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
+- "weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow",
++ "heck",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "weedle",
+ ]
+
+ [[package]]
+ name = "web-sys"
+ version = "0.3.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aaf97caf6aa8c2b1dac90faf0db529d9d63c93846cca4911856f78a83cebf53b"
+ dependencies = [
+- "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
+- "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sourcefile 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
+- "wasm-bindgen-webidl 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow",
++ "js-sys",
++ "sourcefile",
++ "wasm-bindgen",
++ "wasm-bindgen-webidl",
+ ]
+
+ [[package]]
+ name = "weedle"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3bb43f70885151e629e2a19ce9e50bd730fd436cfd4b666894c9ce4de9141164"
+ dependencies = [
+- "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nom",
+ ]
+
+ [[package]]
+ name = "widestring"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "effc0e4ff8085673ea7b9b2e3c73f6bd4d118810c9009ed8f1e16bd96c331db6"
+
+ [[package]]
+ name = "winapi"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+ [[package]]
+ name = "winapi"
+ version = "0.3.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+ dependencies = [
+- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
+ ]
+
+ [[package]]
+ name = "winapi-build"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+ [[package]]
+ name = "winapi-i686-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+ [[package]]
+ name = "winapi-util"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+ [[package]]
+ name = "wincolor"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
++ "winapi-util",
+ ]
+
+ [[package]]
+ name = "winreg"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "winutil"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7daf138b6b14196e3830a588acf1e86966c694d3e8fb026fb105b8b5dca07e6e"
+ dependencies = [
+- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8",
+ ]
+
+ [[package]]
+ name = "ws2_32-sys"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+-
+-[metadata]
+-"checksum actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "09e55f0a5c2ca15795035d90c46bd0e73a5123b72f68f12596d6ba5282051380"
+-"checksum actix-connect 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f2b61480a8d30c94d5c883d79ef026b02ad6809931b0a4bb703f9545cd8c986"
+-"checksum actix-files 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "301482841d3d74483a446ead63cb7d362e187d2c8b603f13d91995621ea53c46"
+-"checksum actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c16664cc4fdea8030837ad5a845eb231fb93fc3c5c171edfefb52fad92ce9019"
+-"checksum actix-identity 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a379b0639c293292d71defb8cc1f94c87b7705c904adf044338ad392df77c7a"
+-"checksum actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21705adc76bbe4bc98434890e73a89cd00c6015e5704a60bb6eea6c3b72316b6"
+-"checksum actix-multipart 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4397935fca2a37a5353f94faa758fb176712806f605466b5a60373b204f0d836"
+-"checksum actix-router 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8"
+-"checksum actix-rt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6a0a55507046441a496b2f0d26a84a65e67c8cafffe279072412f624b5fb6d"
+-"checksum actix-server 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51d3455eaac03ca3e49d7b822eb35c884b861f715627254ccbe4309d08f1841a"
+-"checksum actix-service 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9fba4171f1952aa15f3cf410facac388d18110b1e8754f84a407ab7f9d5ac7ee"
+-"checksum actix-testing 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "48494745b72d0ea8ff0cf874aaf9b622a3ee03d7081ee0c04edea4f26d32c911"
+-"checksum actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4082192601de5f303013709ff84d81ca6a1bc4af7fb24f367a500a23c6e84e"
+-"checksum actix-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4e5b4faaf105e9a6d389c606c298dcdb033061b00d532af9df56ff3a54995a8"
+-"checksum actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fcf8f5631bf01adec2267808f00e228b761c60c0584cc9fa0b5364f41d147f4e"
+-"checksum actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3158e822461040822f0dbf1735b9c2ce1f95f93b651d7a7aded00b1efbb1f635"
+-"checksum actix-web-codegen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de0878b30e62623770a4713a6338329fd0119703bafc211d3e4144f4d4a7bdd5"
+-"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
+-"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
+-"checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
+-"checksum arc-swap 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f1a1eca3195b729bbd64e292ef2f5fff6b1c28504fed762ce2b1013dde4d8e92"
+-"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
+-"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
+-"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+-"checksum async-trait 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "c8df72488e87761e772f14ae0c2480396810e51b2c2ade912f97f0f7e5b95e3c"
+-"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
+-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+-"checksum awc 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d7601d4d1d7ef2335d6597a41b5fe069f6ab799b85f53565ab390e7b7065aac5"
+-"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
+-"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+-"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+-"checksum blake2b_simd 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)" = "5850aeee1552f495dd0250014cf64b82b7c8879a89d83b33bbdace2cc4f63182"
+-"checksum blake3 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba0511b7f4f7d9cb1ef7b8dfda5293af6c1071578d65c8a05aa7d11c1985f08c"
+-"checksum brotli-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd"
+-"checksum brotli2 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e"
+-"checksum bumpalo 3.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8038c1ddc0a5f73787b130f4cc75151e96ed33e417fde765eb5a81e3532f4"
+-"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
+-"checksum bytes 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10004c15deb332055f7a4a208190aed362cf9a7c2f6ab70a305fba50e1105f38"
+-"checksum bytestring 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fc267467f58ef6cc8874064c62a0423eb0d099362c8a23edd1c6d044f46eead4"
+-"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
+-"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
+-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+-"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
+-"checksum clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
+-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+-"checksum console 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f5d540c2d34ac9dd0deb5f3b5f54c36c79efa78f6b3ad19106a554d07a7b5d9f"
+-"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+-"checksum copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ff9c56c9fb2a49c05ef0e431485a22400af20d33226dc0764d891d09e724127"
+-"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+-"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
+-"checksum derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8"
+-"checksum dialoguer 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94616e25d2c04fc97253d145f6ca33ad84a584258dc70c4e621cc79a57f903b6"
+-"checksum diesel 1.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9d7cc03b910de9935007861dce440881f69102aaaedfd4bc5a6f40340ca5840c"
+-"checksum diesel_derives 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3"
+-"checksum diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c"
+-"checksum dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
+-"checksum dirs-sys 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
+-"checksum dotenv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
+-"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
+-"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+-"checksum encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+-"checksum encoding_rs 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)" = "87240518927716f79692c2ed85bfe6e98196d18c6401ec75355760233a7e12e9"
+-"checksum enum-as-inner 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "900a6c7fbe523f4c2884eaf26b57b81bb69b6810a01a236390a7ac021d09492e"
+-"checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+-"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
+-"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
+-"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
+-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+-"checksum futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b6f16056ecbb57525ff698bb955162d0cd03bee84e6241c27ff75c08d8ca5987"
+-"checksum futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fcae98ca17d102fd8a3603727b9259fcf7fa4239b603d2142926189bc8999b86"
+-"checksum futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "79564c427afefab1dfb3298535b21eda083ef7935b4f0ecbfcb121f0aec10866"
+-"checksum futures-executor 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1e274736563f686a837a0568b478bdabfeaec2dca794b5649b04e2fe1627c231"
+-"checksum futures-io 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e676577d229e70952ab25f3945795ba5b16d63ca794ca9d2c860e5595d20b5ff"
+-"checksum futures-macro 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "52e7c56c15537adb4f76d0b7a76ad131cb4d2f4f32d3b0bcabcbe1c7c5e87764"
+-"checksum futures-sink 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "171be33efae63c2d59e6dbba34186fe0d6394fb378069a76dfd80fdcffd43c16"
+-"checksum futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0bae52d6b29cf440e298856fec3965ee6fa71b06aa7495178615953fd669e5f9"
+-"checksum futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d66274fb76985d3c62c886d1da7ac4c0903a8c9f754e8fe0f35a6a6cc39e76"
+-"checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+-"checksum getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
+-"checksum h2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9433d71e471c1736fd5a61b671fc0b148d7a2992f666c958d03cd8feb3b88d1"
+-"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+-"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
+-"checksum hostname 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "21ceb46a83a85e824ef93669c8b390009623863b5c195d1ba747292c0c72f94e"
+-"checksum http 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b"
+-"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+-"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+-"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
+-"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2"
+-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+-"checksum ipconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa79fa216fbe60834a9c0737d7fcd30425b32d1c58854663e24d4c4b328ed83f"
+-"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
+-"checksum js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7889c7c36282151f6bf465be4700359318aef36baa951462382eae49e9577cf9"
+-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+-"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+-"checksum libc 0.2.65 (registry+https://github.com/rust-lang/crates.io-index)" = "1a31a0627fdf1f6a39ec0dd577e101440b7db22672c0901fe00a9a6fbb5c24e8"
+-"checksum libsqlite3-sys 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5e5b95e89c330291768dc840238db7f9e204fd208511ab6319b56193a7f2ae25"
+-"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
+-"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
+-"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
+-"checksum lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+-"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
+-"checksum migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8089920229070f914b9ce9b07ef60e175b2b9bc2d35c3edd8bf4433604e863b9"
+-"checksum migrations_macros 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "719ef0bc7f531428764c9b70661c14abd50a7f3d21f355752d9985aa21251c9e"
+-"checksum mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "dd1d63acd1b78403cc0c325605908475dd9b9a3acbf65ed8bcab97e27014afcf"
+-"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599"
+-"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
+-"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
+-"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
+-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+-"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+-"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+-"checksum nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+-"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
+-"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
+-"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
+-"checksum parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc"
+-"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+-"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+-"checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1"
+-"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+-"checksum pin-project 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "94b90146c7216e4cb534069fb91366de4ea0ea353105ee45ed297e2d1619e469"
+-"checksum pin-project-internal 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "44ca92f893f0656d3cba8158dd0f2b99b94de256a4a54e870bd6922fcc6c8355"
+-"checksum pin-project-lite 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e8822eb8bb72452f038ebf6048efa02c3fe22bf83f76519c9583e47fc194a422"
+-"checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"
+-"checksum pkg-config 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea"
+-"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
+-"checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
+-"checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e"
+-"checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27"
+-"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
+-"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+-"checksum r2d2 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e48fa64898ef0286b6ee4b4d8f61483f9182acf5e44e62a398b1c7f56f2f861d"
+-"checksum radix_fmt 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
+-"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+-"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
+-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+-"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
+-"checksum redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ecedbca3bf205f8d8f5c2b44d83cd0690e39ee84b951ed649e9f1841132b66d"
+-"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
+-"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
+-"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
+-"checksum resolv-conf 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b263b4aa1b5de9ffc0054a2386f96992058bb6870aab516f8cdeb8a667d56dcb"
+-"checksum ring 0.16.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6747f8da1f2b1fabbee1aaa4eb8a11abf9adef0bf58a41cee45db5d59cecdfac"
+-"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
+-"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+-"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
+-"checksum scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd07742e081ff6c077f5f6b283f12f32b9e7cc765b316160d66289b74546fbb3"
+-"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
+-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+-"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
+-"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
+-"checksum serde_json 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2"
+-"checksum serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
+-"checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+-"checksum signal-hook-registry 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1797d48f38f91643908bb14e35e79928f9f4b3cefb2420a564dde0991b4358dc"
+-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+-"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
+-"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
+-"checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85"
+-"checksum sourcefile 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
+-"checksum spin 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+-"checksum syn 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0e7bedb3320d0f3035594b0b723c8a28d7d336a3eda3881db79e61d676fb644c"
+-"checksum synstructure 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f085a5855930c0441ca1288cf044ea4aecf4f43a91668abdb870b4ba546a203"
+-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+-"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e"
+-"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
+-"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+-"checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
+-"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+-"checksum tokio 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa2fdcfa937b20cb3c822a635ceecd5fc1a27a6a474527e5516aa24b8c8820a"
+-"checksum tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930"
+-"checksum toml 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01d1404644c8b12b16bfcffa4322403a91a451584daaaa7c28d3152e6cbc98cf"
+-"checksum trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2a7f3a2ab8a919f5eca52a468866a67ed7d3efa265d48a652a9a3452272b413f"
+-"checksum trust-dns-resolver 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6f90b1502b226f8b2514c6d5b37bafa8c200d7ca4102d57dc36ee0f3b7a04a2f"
+-"checksum twoway 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6b40075910de3a912adbd80b5d8bad6ad10a23eeb1f5bf9d4006839e899ba5bc"
+-"checksum unchecked-index 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c"
+-"checksum unicase 2.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2e2e6bd1e59e56598518beb94fd6db628ded570326f0a98c679a304bd9f00150"
+-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
+-"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+-"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
+-"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+-"checksum untrusted 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60369ef7a31de49bcb3f6ca728d4ba7300d9a1658f94c727d4cab8c8d9f4aece"
+-"checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
+-"checksum v_escape 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "660b101c07b5d0863deb9e7fb3138777e858d6d2a79f9e6049a27d1cc77c6da6"
+-"checksum v_escape_derive 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c2ca2a14bc3fc5b64d188b087a7d3a927df87b152e941ccfbc66672e20c467ae"
+-"checksum v_htmlescape 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e33e939c0d8cf047514fb6ba7d5aac78bc56677a6938b2ee67000b91f2e97e41"
+-"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
+-"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+-"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
+-"checksum wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "5205e9afdf42282b192e2310a5b463a6d1c1d774e30dc3c791ac37ab42d2616c"
+-"checksum wasm-bindgen-backend 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "11cdb95816290b525b32587d76419facd99662a07e59d3cdb560488a819d9a45"
+-"checksum wasm-bindgen-macro 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "574094772ce6921576fb6f2e3f7497b8a76273b6db092be18fc48a082de09dc3"
+-"checksum wasm-bindgen-macro-support 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "e85031354f25eaebe78bb7db1c3d86140312a911a106b2e29f9cc440ce3e7668"
+-"checksum wasm-bindgen-shared 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e7e61fc929f4c0dddb748b102ebf9f632e2b8d739f2016542b4de2965a9601"
+-"checksum wasm-bindgen-webidl 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "ef012a0d93fc0432df126a8eaf547b2dce25a8ce9212e1d3cbeef5c11157975d"
+-"checksum web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "aaf97caf6aa8c2b1dac90faf0db529d9d63c93846cca4911856f78a83cebf53b"
+-"checksum weedle 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bb43f70885151e629e2a19ce9e50bd730fd436cfd4b666894c9ce4de9141164"
+-"checksum widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effc0e4ff8085673ea7b9b2e3c73f6bd4d118810c9009ed8f1e16bd96c331db6"
+-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+-"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
+-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+-"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
+-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-"checksum wincolor 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96f5016b18804d24db43cebf3c77269e7569b8954a8464501c216cc5e070eaa9"
+-"checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+-"checksum winutil 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7daf138b6b14196e3830a588acf1e86966c694d3e8fb026fb105b8b5dca07e6e"
+-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
diff --git a/testing/filite/system-sqlite.patch b/testing/filite/system-sqlite.patch
new file mode 100644
index 00000000000..c9c3fb02c5c
--- /dev/null
+++ b/testing/filite/system-sqlite.patch
@@ -0,0 +1,24 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 807f0eb..2791bee 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1130,7 +1130,6 @@ version = "0.16.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "5e5b95e89c330291768dc840238db7f9e204fd208511ab6319b56193a7f2ae25"
+ dependencies = [
+- "cc",
+ "pkg-config",
+ "vcpkg",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index e88ccb3..5792637 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -40,7 +40,6 @@ version = "1.4.3"
+ features = ["r2d2", "sqlite"]
+ [dependencies.libsqlite3-sys]
+ version = "0.16.0"
+-features = ["bundled"]
+ [dependencies.serde]
+ version = "1.0.104"
+ features = ["derive"]
diff --git a/testing/findtow/APKBUILD b/testing/findtow/APKBUILD
new file mode 100644
index 00000000000..83ae32cca56
--- /dev/null
+++ b/testing/findtow/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+# Contributor: Martijn Braam <martijn@brixit.nl>
+pkgname=findtow
+pkgver=0.1
+pkgrel=0
+pkgdesc="Command line tool for detecting tow-boot shared installations"
+url="https://git.sr.ht/~martijnbraam/findtow"
+arch="all"
+license="GPL-3.0-only"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/findtow/archive/$pkgver.tar.gz"
+makedepends="meson util-linux-dev"
+options="!check" # No testsuite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+2ae5a4715b32520a8d9a8029149a308b47f0e16019d3df45b8271883c251ac193599d39f666d09f97ba31562b7b7cc111cb5e2b3aa334f2899c8505b7f846f40 findtow-0.1.tar.gz
+"
diff --git a/testing/finger/APKBUILD b/testing/finger/APKBUILD
new file mode 100644
index 00000000000..56ea0074a3e
--- /dev/null
+++ b/testing/finger/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Bryce Vandegrift <bryce@brycevandegrift.xyz>
+# Maintainer: Bryce Vandegrift <bryce@brycevandegrift.xyz>
+pkgname=finger
+pkgver=0.5
+pkgrel=0
+pkgdesc="Small, simple, and portable finger client and server"
+url="https://sr.ht/~bpv/finger/"
+arch="all"
+license="MIT"
+makedepends="scdoc"
+subpackages="$pkgname-doc"
+options="!check" # no test suite
+source="$pkgname-v$pkgver.tar.gz::https://git.sr.ht/~bpv/finger/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ sed -i '/CFLAGS/{s/=/+=/}' "$builddir"/config.mk
+}
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+a37a6766669430d7cdf1165ddf149dc59103150a3e9a06b2a73c4dbe67494bec5f1ad7f1c78c226e72b815001033f8a6165ff2cd70add91a785b444574dde4b1 finger-v0.5.tar.gz
+"
diff --git a/testing/firecracker/APKBUILD b/testing/firecracker/APKBUILD
new file mode 100644
index 00000000000..3864f7667bd
--- /dev/null
+++ b/testing/firecracker/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: Dennis Przytarski <dennis@przytarski.com>
+# Maintainer: Dennis Przytarski <dennis@przytarski.com>
+pkgname=firecracker
+pkgver=1.4.1
+pkgrel=0
+pkgdesc="Secure and fast microVMs for serverless computing"
+url="https://github.com/firecracker-microvm/firecracker"
+arch="aarch64 x86_64"
+license="Apache-2.0"
+makedepends="rust cargo clang-dev cmake linux-headers cargo-auditable"
+subpackages="
+ $pkgname-seccompiler
+ $pkgname-rebase-snap:rebase_snap
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/firecracker-microvm/firecracker/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked --target "$CTARGET"
+
+ # Change the seccomp filters' names so they get embedded into the binary
+ for a in $arch; do
+ mv -v resources/seccomp/"$a-unknown-linux-musl.json" resources/seccomp/"$a-alpine-linux-musl.json"
+ done
+}
+
+build() {
+ export CARGO_PROFILE_RELEASE_OPT_LEVEL=2
+ cargo auditable build \
+ --package firecracker \
+ --package jailer \
+ --package seccompiler \
+ --package rebase-snap \
+ --target "$CTARGET" \
+ --all-features \
+ --frozen \
+ --release
+}
+
+check() {
+ # jailer: tests failed testing functionality of cgroups
+ # seccompiler: tests failed spawning a thread
+ cargo test \
+ --package firecracker \
+ --package rebase-snap \
+ --target "$CTARGET" \
+ --frozen
+
+ # Other integration tests need pytest and docker
+}
+
+package() {
+ install -Dm755 build/cargo_target/$CTARGET/release/firecracker \
+ -t "$pkgdir"/usr/bin
+ install -Dm755 build/cargo_target/$CTARGET/release/jailer \
+ -t "$pkgdir"/usr/bin
+ install -Dm755 build/cargo_target/$CTARGET/release/rebase-snap \
+ -t "$pkgdir"/usr/bin
+ install -Dm755 build/cargo_target/$CTARGET/release/seccompiler-bin \
+ -t "$pkgdir"/usr/bin
+}
+
+seccompiler() {
+ pkgdesc="$pkgdesc - seccompiler"
+
+ amove usr/bin/seccompiler-bin
+}
+
+rebase_snap() {
+ pkgdesc="$pkgdesc - rebasing diff snapshot tool"
+
+ amove usr/bin/rebase-snap
+}
+
+sha512sums="
+20d105b4ee87728f5d92921148dd507ed0e727100cf04320943af66dee4d169d572b40a54c288fabe2b57d7c08337cd9a0138601ad90c76338b4177786ca2ee5 firecracker-1.4.1.tar.gz
+"
diff --git a/testing/firectl/APKBUILD b/testing/firectl/APKBUILD
new file mode 100644
index 00000000000..f8c184eebbd
--- /dev/null
+++ b/testing/firectl/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=firectl
+pkgver=0.2.0
+pkgrel=11
+pkgdesc="command-line tool to run Firecracker microVMs"
+url="https://github.com/firecracker-microvm/firectl"
+arch="x86_64 aarch64" # blocked by firecracker
+license="Apache-2.0"
+depends="firecracker"
+makedepends="go"
+source="https://github.com/firecracker-microvm/firectl/archive/v$pkgver/firectl-$pkgver.tar.gz"
+options="!check" # the tests require a kernel image to be present
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make
+}
+
+package() {
+ install -Dm755 firectl -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+cc463015ea31f1bc31729824a35a69ddafc72dd1f83b91620d6476634c12a22b19cf8f0511b5d5d6c9644eef11813a9b05ed2e92693df37ab82ec4d6928eeea8 firectl-0.2.0.tar.gz
+"
diff --git a/testing/firefox-developer-edition/APKBUILD b/testing/firefox-developer-edition/APKBUILD
new file mode 100644
index 00000000000..3b4767d0bee
--- /dev/null
+++ b/testing/firefox-developer-edition/APKBUILD
@@ -0,0 +1,272 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=firefox-developer-edition
+pkgver=126.0_beta4
+_pkgver=${pkgver/_beta/b}
+_releasedate=2024-04-23
+pkgrel=0
+pkgdesc="Firefox web browser"
+url="https://www.firefox.com/"
+# s390x and riscv64 blocked by rust and cargo
+# armhf: https://bugzilla.mozilla.org/show_bug.cgi?id=1680495
+# ppc64le: ld.lld: error: undefined hidden symbol: something about video
+# x86/armv7: who is using this there?
+arch="x86_64 aarch64"
+license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0"
+depends="
+ ffmpeg-libavcodec
+ "
+makedepends="
+ alsa-lib-dev
+ automake
+ bsd-compat-headers
+ cargo
+ cbindgen
+ clang
+ clang-libclang
+ dbus-glib-dev
+ gettext
+ gtk+3.0-dev
+ hunspell-dev
+ icu-dev
+ libevent-dev
+ libffi-dev
+ libjpeg-turbo-dev
+ libnotify-dev
+ libogg-dev
+ libtheora-dev
+ libtool
+ libvorbis-dev
+ libvpx-dev
+ libwebp-dev
+ libxcomposite-dev
+ libxt-dev
+ lld
+ llvm-dev
+ m4
+ mesa-dev
+ nasm
+ nodejs
+ nspr-dev
+ nss-dev
+ pipewire-dev
+ pulseaudio-dev
+ python3
+ sed
+ wasi-sdk
+ wireless-tools-dev
+ zip
+ "
+source="https://ftp.mozilla.org/pub/firefox/releases/$_pkgver/source/firefox-$_pkgver.source.tar.xz
+ fix-fortify-system-wrappers.patch
+ fix-rust-target.patch
+ fix-webrtc-glibcisms.patch
+ install-dir.patch
+ lfs64.patch
+ no-ccache-stats.patch
+ python-deps.patch
+ rust-lto-thin.patch
+ sandbox-fork.patch
+ sandbox-largefile.patch
+ sandbox-sched_setscheduler.patch
+ icu74.patch
+
+ stab.h
+
+ firefox-developer-edition.desktop
+ distribution.ini
+ vendor-prefs.js
+ "
+options="!check" # no tests
+builddir="$srcdir/firefox-${pkgver/_*/}"
+
+_mozappdir=/usr/lib/firefox-developer-edition
+
+# help our shared-object scanner to find the libs
+ldpath="$_mozappdir"
+sonameprefix="$pkgname:"
+
+# we need this because cargo verifies checksums of all files in vendor
+# crates when it builds and gives us no way to override or update the
+# file sanely... so just clear out the file list
+_clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
+}
+
+export CFLAGS="${CFLAGS/-fstack-clash-protection/} -g0 -O2"
+export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/} -g0 -O2 -Wno-deprecated-builtins -Wno-deprecated-declarations"
+
+prepare() {
+ default_prepare
+
+ cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
+
+ _clear_vendor_checksums audio_thread_priority
+
+ cat > base-mozconfig <<-EOF
+ # disable unwanted things
+ ac_add_options --disable-bootstrap
+ ac_add_options --disable-cargo-incremental
+ ac_add_options --disable-crashreporter
+ ac_add_options --disable-elf-hack
+ ac_add_options --disable-install-strip
+ ac_add_options --disable-jemalloc
+ ac_add_options --disable-strip
+ ac_add_options --disable-tests
+ ac_add_options --disable-updater
+
+ # features
+ ac_add_options --enable-alsa
+ ac_add_options --enable-dbus
+ ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
+ ac_add_options --enable-ffmpeg
+ ac_add_options --enable-hardening
+ ac_add_options --enable-linker=lld
+ ac_add_options --enable-lto=cross
+ ac_add_options --enable-necko-wifi
+ ac_add_options --enable-official-branding
+ ac_add_options --enable-optimize="$CFLAGS"
+ ac_add_options --enable-pulseaudio
+ ac_add_options --enable-release
+ ac_add_options --enable-sandbox
+ ac_add_options --enable-update-channel=aurora
+
+ # system libs
+ ac_add_options --enable-system-pixman
+ ac_add_options --with-system-ffi
+ ac_add_options --with-system-icu
+ ac_add_options --with-system-jpeg
+ ac_add_options --with-system-libevent
+ ac_add_options --with-system-libvpx
+ ac_add_options --with-system-nspr
+ ac_add_options --with-system-nss
+ ac_add_options --with-system-png
+ ac_add_options --with-system-webp
+ ac_add_options --with-system-zlib
+
+ # misc
+ ac_add_options --prefix=/usr
+ ac_add_options --allow-addon-sideload
+ ac_add_options --with-distribution-id=org.alpinelinux
+ ac_add_options --with-libclang-path=/usr/lib
+ ac_add_options --with-unsigned-addon-scopes=app,system
+ ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
+ ac_add_options --with-branding=browser/branding/aurora
+ ac_add_options --host=$CHOST
+ ac_add_options --target=$CTARGET
+
+ mk_add_options RUSTFLAGS="$RUSTFLAGS"
+ # objdir
+ mk_add_options MOZ_OBJDIR="$builddir/obj"
+ EOF
+}
+
+build() {
+ # for lto
+ ulimit -n 4096
+
+ # can't be set here and fail
+ unset RUSTFLAGS
+
+ local thinlto_jobs=${JOBS:-1}
+
+ case "$CARCH" in
+ # on this platform, lld seems to not utilise >1 threads for thinlto for some reason.
+ # at the same time, having more than 8 also crashes lld for firefox buildsystems (why?).
+ aarch64)
+ if [ $thinlto_jobs -gt 8 ]; then
+ thinlto_jobs=8
+ fi
+ esac
+
+ export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs"
+
+ export CC="clang"
+ export CXX="clang++"
+
+ export SHELL=/bin/sh
+ export BUILD_OFFICIAL=1
+ export MOZILLA_OFFICIAL=1
+ export USE_SHORT_LIBNAME=1
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
+ export MOZ_APP_REMOTINGNAME=firefoxdeveloperedition
+ export MOZBUILD_STATE_PATH="$srcdir"/mozbuild
+ # allow unsigned addons for dev-edition
+ export MOZ_REQUIRE_SIGNING=
+ # disable desktop notifications
+ export MOZ_NOSPAM=1
+ # Find our triplet JSON
+ export RUST_TARGET="$CTARGET"
+
+ # set rpath so linker finds the libs
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir"
+
+ # let firefox do this itself.
+ unset CARGO_PROFILE_RELEASE_OPT_LEVEL
+ unset CARGO_PROFILE_RELEASE_CODEGEN_UNITS
+ unset CARGO_PROFILE_RELEASE_PANIC
+ unset CARGO_PROFILE_RELEASE_LTO
+
+ export MOZ_BUILD_DATE="$(date ${SOURCE_DATE_EPOCH:+ -d@${SOURCE_DATE_EPOCH}} "+%Y%m%d%H%M%S")"
+
+ cat > .mozconfig base-mozconfig
+
+ ./mach build
+}
+
+package() {
+ DESTDIR="$pkgdir" ./mach install
+
+ local _png
+ for _png in ./browser/branding/aurora/default*.png; do
+ local i=${_png%.png}
+ i=${i##*/default}
+ install -Dm644 "$_png" \
+ "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/$pkgname.png
+ done
+
+ install -Dm644 browser/branding/aurora/content/about-logo.png \
+ "$pkgdir"/usr/share/icons/hicolor/192x192/apps/$pkgname.png
+ install -Dm644 browser/branding/aurora/content/about-logo@2x.png \
+ "$pkgdir"/usr/share/icons/hicolor/384x384/apps/$pkgname.png
+ install -Dm644 browser/branding/aurora/content/about-logo.svg \
+ "$pkgdir"/usr/share/icons/hicolor/scalable/apps/$pkgname.svg
+
+ install -Dm644 "$srcdir"/firefox-developer-edition.desktop \
+ "$pkgdir"/usr/share/applications/firefox-developer-edition.desktop
+
+ install -Dm644 "$srcdir"/distribution.ini \
+ "$pkgdir"/$_mozappdir/distribution/distribution.ini
+
+ # install our vendor prefs
+ install -Dm644 "$srcdir"/vendor-prefs.js \
+ "$pkgdir"/$_mozappdir/browser/defaults/preferences/vendor.js
+
+ # Replace duplicate binary with wrapper
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
+ install -Dm755 /dev/stdin "$pkgdir"/usr/bin/firefox-developer-edition <<- EOF
+ #!/bin/sh
+ exec $_mozappdir/firefox "\$@"
+ EOF
+ rm "$pkgdir"/$_mozappdir/firefox-bin
+ ln -sfv /usr/bin/firefox-developer-edition "$pkgdir"/$_mozappdir/firefox-bin
+}
+
+sha512sums="
+cfb8c4315de3ba7f84306b533399e2042fc3feafec0f94a1baca23a9929ad2c6f83b5a380521b587e82fa77c9f78ea9565cc4cdc93b9c922cc2f396c18a75e4a firefox-126.0b4.source.tar.xz
+3c28e243c1c74a9bd1ea13729926b1cae3ee35843b14be92ff3287a8cd745e95954e1bc842f2add165923d159bb8d2a7bcd92ba8fb2f4017ba1aef892d77aecf fix-fortify-system-wrappers.patch
+cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch
+305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch
+ff471e5160e313a9657bcbb767a6a581bab9da053cced02bde38d1ef03349472ad3602dba026c10d676d55c1712af772dd2b7bdbfa72b5db498c9ce8a2133423 install-dir.patch
+5fa9382c692e4bd6a2634308f24a6526fd12a60a2563d2090056d43a60505df3ec9881bbf54562e69394467529b3b0dc45955afca46ed329af03cea074fff070 lfs64.patch
+64b6458099baa225b346b40e3080cea3a5c73a834e39fa4a438af77701e6ded84e2fb0d6fffff8c2533cc43b898fe9f411be023e875acebec452aa2379861f04 no-ccache-stats.patch
+56454b30bed9ce079a06b9d3803030912629d3e0feef49321f1404ab5d004528c446231584a6d89ca69e0bb2ee037664287186975405b048ea3ce06d729a7912 python-deps.patch
+1c6918dd6655d3a1251bfd4af2e1c561cbb00d540a883b4c1ebf7f5de530d754d9ac07b4b5f56cdab6c511d25c8910ec94043f5733e97501a67abffe1bafaeb1 rust-lto-thin.patch
+2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch
+b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch
+f8c3555ef6207933cbffbf4fc101a9b4c0d2990c0063162f0f0bde70ef0b46f86bfac42e7110695183424a87948de593f3927b2d8509ede3e4fc7bd8a1fad1ce sandbox-sched_setscheduler.patch
+afabea91b328c5a68eaa20f9099ac7b2d0e7f2423e816b05ed168bdd326a5684fa02de08bf05c6033e9b888f02775d1b0443a00329b7a632ee399122a391c13a icu74.patch
+0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
+2ff0cb8e2eb94cee306b488adf6d7f4debbaff6155be3ed3eeee814cdb356e2e60fe38cc29d6c8d10079937fd2c930cfddf283977cf645395d31eaf76c7f0ac2 firefox-developer-edition.desktop
+4fd66382983d406ce0cd3586239fb1110224aeb2f9eee6fc931d980a31d18739d001d1f152208a7f1ccaae80867c40bd3d2ac674484617532a8f38049dc745bd distribution.ini
+0423804a3c7c075de128b624110c58994ec8e10819fc09b74fdb4cd5aa6c0365cdafc77770af42f4ce856ad2e8e325a918344c57fb015a680b7e54555b94c6ed vendor-prefs.js
+"
diff --git a/testing/thunderbird/disable-moz-stackwalk.patch b/testing/firefox-developer-edition/disable-moz-stackwalk.patch
index b6bc756d2be..b6bc756d2be 100644
--- a/testing/thunderbird/disable-moz-stackwalk.patch
+++ b/testing/firefox-developer-edition/disable-moz-stackwalk.patch
diff --git a/testing/firefox-developer-edition/distribution.ini b/testing/firefox-developer-edition/distribution.ini
new file mode 100644
index 00000000000..cb3659715b3
--- /dev/null
+++ b/testing/firefox-developer-edition/distribution.ini
@@ -0,0 +1,8 @@
+[Global]
+id=alpinelinux
+version=1.0
+about=Mozilla Firefox Developer Edition for Alpine Linux
+
+[Preferences]
+app.distributor=alpinelinux
+app.distributor.channel=firefox-developer-edition
diff --git a/testing/firefox-developer-edition/firefox-developer-edition.desktop b/testing/firefox-developer-edition/firefox-developer-edition.desktop
new file mode 100644
index 00000000000..b7a13778a8c
--- /dev/null
+++ b/testing/firefox-developer-edition/firefox-developer-edition.desktop
@@ -0,0 +1,340 @@
+[Desktop Entry]
+Version=1.0
+Name=Firefox Developer Edition
+GenericName=Web Browser
+GenericName[ar]=متصÙØ­ ويب
+GenericName[ast]=Restolador Web
+GenericName[bn]=ওয়েব বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°
+GenericName[ca]=Navegador web
+GenericName[cs]=Webový prohlížeÄ
+GenericName[da]=Webbrowser
+GenericName[de]=Webbrowser
+GenericName[el]=ΠεÏιηγητής διαδικτÏου
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fa]=مرورگر اینترنتی
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן ×ינטרנט
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser web
+GenericName[ja]=ウェブ・ブラウザ
+GenericName[ko]=웹 브ë¼ìš°ì €
+GenericName[ku]=Geroka torê
+GenericName[lt]=Interneto naršyklė
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[no]=Nettleser
+GenericName[pl]=PrzeglÄ…darka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator Internet
+GenericName[ru]=Веб-браузер
+GenericName[sk]=Internetový prehliadaÄ
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[tr]=Web Tarayıcı
+GenericName[ug]=توركۆرگۈ
+GenericName[uk]=Веб-браузер
+GenericName[vi]=Trình duyệt Web
+GenericName[zh_CN]=网络æµè§ˆå™¨
+GenericName[zh_TW]=網路ç€è¦½å™¨
+Comment=Browse the World Wide Web
+Comment[ar]=تصÙØ­ الشبكة العنكبوتية العالمية
+Comment[ast]=Restola pela Rede
+Comment[bn]=ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ বà§à¦°à¦¾à¦‰à¦œ করà§à¦¨
+Comment[ca]=Navegueu per el web
+Comment[cs]=Prohlížení stránek World Wide Webu
+Comment[da]=Surf på internettet
+Comment[de]=Im Internet surfen
+Comment[el]=ΜποÏείτε να πεÏιηγηθείτε στο διαδίκτυο (Web)
+Comment[es]=Navegue por la web
+Comment[et]=Lehitse veebi
+Comment[fa]=صÙحات شبکه جهانی اینترنت را مرور نمایید
+Comment[fi]=Selaa Internetin WWW-sivuja
+Comment[fr]=Naviguer sur le Web
+Comment[gl]=Navegar pola rede
+Comment[he]=גלישה ברחבי ×”×ינטרנט
+Comment[hr]=Pretražite web
+Comment[hu]=A világháló böngészése
+Comment[it]=Esplora il web
+Comment[ja]=ウェブを閲覧ã—ã¾ã™
+Comment[ko]=ì›¹ì„ ëŒì•„ 다닙니다
+Comment[ku]=Li torê bigere
+Comment[lt]=Naršykite internete
+Comment[nb]=Surf på nettet
+Comment[nl]=Verken het internet
+Comment[nn]=Surf på nettet
+Comment[no]=Surf på nettet
+Comment[pl]=PrzeglÄ…danie stron WWW
+Comment[pt]=Navegue na Internet
+Comment[pt_BR]=Navegue na Internet
+Comment[ro]=Navigați pe Internet
+Comment[ru]=ДоÑтуп в Интернет
+Comment[sk]=Prehliadanie internetu
+Comment[sl]=Brskajte po spletu
+Comment[sv]=Surfa på webben
+Comment[tr]=Ä°nternet'te Gezinin
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
+Comment[uk]=ПереглÑд Ñторінок Інтернету
+Comment[vi]=Äể duyệt các trang web
+Comment[zh_CN]=æµè§ˆäº’è”网
+Comment[zh_TW]=ç€è¦½ç¶²éš›ç¶²è·¯
+Keywords=Internet;WWW;Browser;Web;Explorer
+Keywords[ar]=انترنت;إنترنت;متصÙØ­;ويب;وب
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
+Keywords[cs]=Internet;WWW;ProhlížeÄ;Web;Explorer
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;ΠεÏιηγητής;Firefox;ΦιÏεφοχ;ΙντεÏνετ
+Keywords[es]=Explorador;Internet;WWW
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
+Keywords[he]=דפדפן;×ינטרנט;רשת;×תרי×;×תר;פיירפוקס;מוזילה;
+Keywords[hr]=Internet;WWW;preglednik;Web
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
+Keywords[ja]=Internet;WWW;Web;インターãƒãƒƒãƒˆ;ブラウザ;ウェブ;エクスプローラ
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокÑ;огнелиÑ
+Keywords[sk]=Internet;WWW;PrehliadaÄ;Web;Explorer
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглÑдач;оглÑдач;браузер;веб;файрфокÑ;вогнелиÑ;переглÑд
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;æµè§ˆ;上网;ç«ç‹;Firefox;ff;互è”网;网站;
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;ç€è¦½å™¨;上網;網é ;ç«ç‹
+Exec=/usr/lib/firefox-developer-edition/firefox --class="firefoxdeveloperedition" %u
+Icon=firefox-developer-edition
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
+StartupNotify=true
+StartupWMClass=firefoxdeveloperedition
+Categories=Network;WebBrowser;
+Actions=new-window;new-private-window;
+
+[Desktop Action new-window]
+Name=New Window
+Name[ach]=Dirica manyen
+Name[af]=Nuwe venster
+Name[an]=Nueva finestra
+Name[ar]=ناÙذة جديدة
+Name[as]=নতà§à¦¨ উইনà§à¦¡à§‹
+Name[ast]=Ventana nueva
+Name[az]=Yeni Pəncərə
+Name[be]=Ðовае акно
+Name[bg]=Ðов прозорец
+Name[bn_BD]=নতà§à¦¨ উইনà§à¦¡à§‹ (N)
+Name[bn_IN]=নতà§à¦¨ উইনà§à¦¡à§‹
+Name[br]=Prenestr nevez
+Name[brx]=गोदान उइनà¥à¤¡'(N)
+Name[bs]=Novi prozor
+Name[ca]=Finestra nova
+Name[cak]=K'ak'a' tzuwäch
+Name[cs]=Nové okno
+Name[cy]=Ffenestr Newydd
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[dsb]=Nowe wokno
+Name[el]=Îέο παÏάθυÏο
+Name[en_GB]=New Window
+Name[en_US]=New Window
+Name[en_ZA]=New Window
+Name[eo]=Nova fenestro
+Name[es_AR]=Nueva ventana
+Name[es_CL]=Nueva ventana
+Name[es_ES]=Nueva ventana
+Name[es_MX]=Nueva ventana
+Name[et]=Uus aken
+Name[eu]=Leiho berria
+Name[fa]=پنجره جدید
+Name[ff]=Henorde Hesere
+Name[fi]=Uusi ikkuna
+Name[fr]=Nouvelle fenêtre
+Name[fy_NL]=Nij finster
+Name[ga_IE]=Fuinneog Nua
+Name[gd]=Uinneag ùr
+Name[gl]=Nova xanela
+Name[gn]=Ovetã pyahu
+Name[gu_IN]=નવી વિનà«àª¡à«‹
+Name[he]=חלון חדש
+Name[hi_IN]=नया विंडो
+Name[hr]=Novi prozor
+Name[hsb]=Nowe wokno
+Name[hu]=Új ablak
+Name[hy_AM]=Õ†Õ¸Ö€ ÕŠÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶
+Name[id]=Jendela Baru
+Name[is]=Nýr gluggi
+Name[it]=Nuova finestra
+Name[ja]=æ–°ã—ã„ウィンドウ
+Name[ja_JP-mac]=æ–°è¦ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦
+Name[ka]=áƒáƒ®áƒáƒšáƒ˜ ფáƒáƒœáƒ¯áƒáƒ áƒ
+Name[kk]=Жаңа терезе
+Name[km]=បង្អួចážáŸ’មី
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
+Name[ko]=새 창
+Name[kok]=नवें जनेल
+Name[ks]=نئئ ÙˆÙÙ†ÚˆÙˆ
+Name[lij]=Neuvo barcon
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
+Name[lt]=Naujas langas
+Name[ltg]=Jauns lūgs
+Name[lv]=Jauns logs
+Name[mai]=नव विंडो
+Name[mk]=Ðов прозорец
+Name[ml]=à´ªàµà´¤à´¿à´¯ ജാലകം
+Name[mr]=नवीन पटल
+Name[ms]=Tetingkap Baru
+Name[my]=á€á€„်းဒိုးအသစ်
+Name[nb_NO]=Nytt vindu
+Name[ne_NP]=नयाठसञà¥à¤à¥à¤¯à¤¾à¤²
+Name[nl]=Nieuw venster
+Name[nn_NO]=Nytt vindauge
+Name[or]=ନୂତନ ୱିଣà­à¬¡à­‹
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
+Name[pl]=Nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Nova janela
+Name[rm]=Nova fanestra
+Name[ro]=Fereastră nouă
+Name[ru]=Ðовое окно
+Name[sat]=नावा विंडो (N)
+Name[si]=නව කවුළුවක්
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[son]=Zanfun taaga
+Name[sq]=Dritare e Re
+Name[sr]=Ðови прозор
+Name[sv_SE]=Nytt fönster
+Name[ta]=பà¯à®¤à®¿à®¯ சாளரமà¯
+Name[te]=కొతà±à°¤ విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni pencere
+Name[tsz]=Eraatarakua jimpani
+Name[uk]=Ðове вікно
+Name[ur]=نیا دریچÛ
+Name[uz]=Yangi oyna
+Name[vi]=Cửa sổ mới
+Name[wo]=Palanteer bu bees
+Name[xh]=Ifestile entsha
+Name[zh_CN]=新建窗å£
+Name[zh_TW]=開新視窗
+Exec=/usr/lib/firefox-developer-edition/firefox --class="firefoxdeveloperedition" --new-window %u
+
+[Desktop Action new-private-window]
+Name=New Private Window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra privada
+Name[ar]=ناÙذة خاصة جديدة
+Name[as]=নতà§à¦¨ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত উইনà§à¦¡à§‹
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni Məxfi Pəncərə
+Name[be]=Ðовае акно адаÑабленнÑ
+Name[bg]=Ðов прозорец за поверително Ñърфиране
+Name[bn_BD]=নতà§à¦¨ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত উইনà§à¦¡à§‹
+Name[bn_IN]=নতà§à¦¨ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত উইনà§à¦¡à§‹
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[brx]=गोदान पà¥à¤°à¤¾à¤‡à¤­à¥‡à¤Ÿ उइनà¥à¤¡'
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cak]=K'ak'a' ichinan tzuwäch
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr Breifat Newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Îέο παÏάθυÏο ιδιωτικής πεÏιήγησης
+Name[en_GB]=New Private Window
+Name[en_US]=New Private Window
+Name[en_ZA]=New Private Window
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[fa]=پنجره ناشناس جدید
+Name[ff]=Henorde Suturo Hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog Nua Phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gn]=Ovetã ñemi pyahu
+Name[gu_IN]=નવી ખાનગી વિનà«àª¡à«‹
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नयी निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=ÕÕ¯Õ½Õ¥Õ¬ Ô³Õ¡Õ²Õ¿Õ¶Õ« Õ¤Õ«Õ¿Õ¡Ö€Õ¯Õ¸Ö‚Õ´
+Name[id]=Jendela Mode Pribadi Baru
+Name[is]=Nýr huliðsgluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=æ–°ã—ã„プライベートウィンドウ
+Name[ja_JP-mac]=æ–°è¦ãƒ—ライベートウインドウ
+Name[ka]=áƒáƒ®áƒáƒšáƒ˜ პირáƒáƒ“ი ფáƒáƒœáƒ¯áƒáƒ áƒ
+Name[kk]=Жаңа жекелік терезе
+Name[km]=បង្អួចឯកជនážáŸ’មី
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사ìƒí™œ 보호 모드
+Name[kok]=नवो खाजगी विंडो
+Name[ks]=نْو پرایوٹ وینڈو
+Name[lij]=Nêuvo barcón privòu
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
+Name[lt]=Naujas privataus naršymo langas
+Name[ltg]=Jauns privatais lūgs
+Name[lv]=Jauns privÄtais logs
+Name[mai]=नया निज विंडो (W)
+Name[mk]=Ðов приватен прозорец
+Name[ml]=à´ªàµà´¤à´¿à´¯ à´¸àµà´µà´•à´¾à´°àµà´¯ ജാലകം
+Name[mr]=नवीन वैयकà¥à¤¤à¤¿à¤• पटल
+Name[ms]=Tetingkap Persendirian Baharu
+Name[my]=New Private Window
+Name[nb_NO]=Nytt privat vindu
+Name[ne_NP]=नयाठनिजी सञà¥à¤à¥à¤¯à¤¾à¤²
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ ୱିଣà­à¬¡à­‹
+Name[pa_IN]=ਨਵੀਂ ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਵਿੰਡੋ
+Name[pl]=Nowe okno prywatne
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră privată nouă
+Name[ru]=Ðовое приватное окно
+Name[sat]=नावा निजेराकॠविंडो (W )
+Name[si]=නව පුද්ගලික කවුළුව (W)
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e Re Private
+Name[sr]=Ðови приватан прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=பà¯à®¤à®¿à®¯ தனிபà¯à®ªà®Ÿà¯à®Ÿ சாளரமà¯
+Name[te]=కొతà±à°¤ ఆంతరంగిక విండో
+Name[th]=หน้าต่างส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[tsz]=Juchiiti eraatarakua jimpani
+Name[uk]=Приватне вікно
+Name[ur]=نیا نجی دریچÛ
+Name[uz]=Yangi maxfiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[wo]=Panlanteeru biir bu bees
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建éšç§æµè§ˆçª—å£
+Name[zh_TW]=新增隱ç§è¦–窗
+Exec=/usr/lib/firefox-developer-edition/firefox --class="firefoxdeveloperedition" --private-window %u
diff --git a/testing/firefox-developer-edition/fix-fortify-system-wrappers.patch b/testing/firefox-developer-edition/fix-fortify-system-wrappers.patch
new file mode 100644
index 00000000000..45c8a4c1233
--- /dev/null
+++ b/testing/firefox-developer-edition/fix-fortify-system-wrappers.patch
@@ -0,0 +1,15 @@
+The wrapper features.h gets pulled in by system headers causing thigns to
+break. We work around it by simply not wrap features.h
+
+diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
+index 07d48e7..d2ce2b2 100644
+--- a/config/system-headers.mozbuild
++++ b/config/system-headers.mozbuild
+@@ -225,7 +225,6 @@ system_headers = [
+ "execinfo.h",
+ "extras.h",
+ "fcntl.h",
+- "features.h",
+ "fenv.h",
+ "ffi.h",
+ "fibdef.h",
diff --git a/testing/firefox-developer-edition/fix-rust-target.patch b/testing/firefox-developer-edition/fix-rust-target.patch
new file mode 100644
index 00000000000..9342063c33a
--- /dev/null
+++ b/testing/firefox-developer-edition/fix-rust-target.patch
@@ -0,0 +1,31 @@
+Allow us to just set RUST_TARGEt ourselves instead of hacking around in mozilla's
+weird custom build system...
+
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -225,7 +225,9 @@
+ data.setdefault(key, []).append(namespace(rust_target=t, target=info))
+ return data
+
+-
++@imports('os')
++@imports(_from='mozbuild.util', _import='ensure_unicode')
++@imports(_from='mozbuild.util', _import='system_encoding')
+ def detect_rustc_target(
+ host_or_target, compiler_info, arm_target, rust_supported_targets
+ ):
+@@ -340,13 +342,13 @@
+
+ return None
+
+- rustc_target = find_candidate(candidates)
++ rustc_target = os.environ['RUST_TARGET']
+
+ if rustc_target is None:
+ die("Don't know how to translate {} for rustc".format(host_or_target.alias))
+
+- return rustc_target
++ return ensure_unicode(rustc_target, system_encoding)
+
+
+ @imports('os')
diff --git a/testing/firefox-developer-edition/fix-webrtc-glibcisms.patch b/testing/firefox-developer-edition/fix-webrtc-glibcisms.patch
new file mode 100644
index 00000000000..4f9043b58e1
--- /dev/null
+++ b/testing/firefox-developer-edition/fix-webrtc-glibcisms.patch
@@ -0,0 +1,20 @@
+--- a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
++++ b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
+@@ -18,7 +18,7 @@
+ #define WEBRTC_GLIBC_PREREQ(a, b) 0
+ #endif
+
+-#if WEBRTC_GLIBC_PREREQ(2, 16)
++#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
+ #include <sys/auxv.h>
+ #else
+ #include <errno.h>
+@@ -40,7 +40,7 @@
+ int architecture = 0;
+ uint64_t hwcap = 0;
+ const char* platform = NULL;
+-#if WEBRTC_GLIBC_PREREQ(2, 16)
++#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
+ hwcap = getauxval(AT_HWCAP);
+ platform = (const char*)getauxval(AT_PLATFORM);
+ #else
diff --git a/testing/firefox-developer-edition/icu74.patch b/testing/firefox-developer-edition/icu74.patch
new file mode 100644
index 00000000000..46c94451b53
--- /dev/null
+++ b/testing/firefox-developer-edition/icu74.patch
@@ -0,0 +1,38 @@
+https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
+
+# HG changeset patch
+# User André Bargull <andre.bargull@gmail.com>
+# Date 1697435923 -7200
+# Node ID d5f3b0c4f08a426ce00a153c04e177eecb6820e2
+# Parent c63994f8259efdf6e745c960aa9e1409d5477049
+Bug xxx - Part 12: Add new line break classes. r?
+
+diff --git a/intl/lwbrk/LineBreaker.cpp b/intl/lwbrk/LineBreaker.cpp
+--- a/intl/lwbrk/LineBreaker.cpp
++++ b/intl/lwbrk/LineBreaker.cpp
+@@ -443,17 +443,23 @@ static int8_t GetClass(uint32_t u, LineB
+ /* JT = 34, [JT] */ CLASS_CHARACTER,
+ /* JV = 35, [JV] */ CLASS_CHARACTER,
+ /* CLOSE_PARENTHESIS = 36, [CP] */ CLASS_CLOSE_LIKE_CHARACTER,
+ /* CONDITIONAL_JAPANESE_STARTER = 37, [CJ] */ CLASS_CLOSE,
+ /* HEBREW_LETTER = 38, [HL] */ CLASS_CHARACTER,
+ /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER,
+ /* E_BASE = 40, [EB] */ CLASS_BREAKABLE,
+ /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER,
+- /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER};
++ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER,
++ /* AKSARA = 43, [AK] */ CLASS_CHARACTER,
++ /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER,
++ /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER,
++ /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER,
++ /* VIRAMA = 47, [VI] */ CLASS_CHARACTER,
++ };
+
+ static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass),
+ "Gecko vs ICU LineBreak class mismatch");
+
+ auto cls = GetLineBreakClass(u);
+ MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass));
+
+ // Overrides based on rules for the different line-break values given in
+
diff --git a/testing/firefox-developer-edition/install-dir.patch b/testing/firefox-developer-edition/install-dir.patch
new file mode 100644
index 00000000000..537475aa79f
--- /dev/null
+++ b/testing/firefox-developer-edition/install-dir.patch
@@ -0,0 +1,40 @@
+ Patch-Source: https://github.com/archlinux/svntogit-community/blob/557ec3a987fa078d42956ae1adf7f2a8dc747963/trunk/firefox-install-dir.patch
+
+diff --git c/browser/branding/aurora/configure.sh i/browser/branding/aurora/configure.sh
+index 19d4ff057f73..2c79e136cc67 100644
+--- c/browser/branding/aurora/configure.sh
++++ i/browser/branding/aurora/configure.sh
+@@ -3,5 +3,4 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ MOZ_APP_DISPLAYNAME="Firefox Developer Edition"
+-MOZ_APP_REMOTINGNAME=firefox-dev
+ MOZ_DEV_EDITION=1
+diff --git c/config/baseconfig.mk i/config/baseconfig.mk
+index 3ef3af95d611..81530dface0a 100644
+--- c/config/baseconfig.mk
++++ i/config/baseconfig.mk
+@@ -2,7 +2,7 @@
+ # directly in python/mozbuild/mozbuild/base.py for gmake validation.
+ # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
+ # whether a normal build is happening or whether the check is running.
+-installdir = $(libdir)/$(MOZ_APP_NAME)
++installdir = $(libdir)/$(MOZ_APP_NAME)-developer-edition
+ ifeq (.,$(DEPTH))
+ DIST = dist
+ else
+diff --git c/toolkit/mozapps/installer/packager.mk i/toolkit/mozapps/installer/packager.mk
+index 64f902a26942..d3313dacbcb7 100644
+--- c/toolkit/mozapps/installer/packager.mk
++++ i/toolkit/mozapps/installer/packager.mk
+@@ -138,8 +138,8 @@ endif
+ (cd $(DIST)/$(MOZ_PKG_DIR) && $(TAR) --exclude=precomplete $(TAR_CREATE_FLAGS) - .) | \
+ (cd $(DESTDIR)$(installdir) && tar -xf -)
+ $(NSINSTALL) -D $(DESTDIR)$(bindir)
+- $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
+- ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
++ $(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)-developer-edition
++ ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)-developer-edition
+
+ upload:
+ $(PYTHON) -u $(MOZILLA_DIR)/build/upload.py --base-path $(DIST) $(UPLOAD_FILES)
diff --git a/testing/firefox-developer-edition/lfs64.patch b/testing/firefox-developer-edition/lfs64.patch
new file mode 100644
index 00000000000..bae8b5d16d2
--- /dev/null
+++ b/testing/firefox-developer-edition/lfs64.patch
@@ -0,0 +1,35 @@
+force stat() instead of stat64() on 32-bit
+--
+--- a/xpcom/io/nsLocalFileUnix.h
++++ b/xpcom/io/nsLocalFileUnix.h
+@@ -21,7 +21,7 @@
+
+ // stat64 and lstat64 are deprecated on OS X. Normal stat and lstat are
+ // 64-bit by default on OS X 10.6+.
+-#if defined(HAVE_STAT64) && defined(HAVE_LSTAT64) && !defined(XP_DARWIN)
++#if 0 && defined(HAVE_STAT64) && defined(HAVE_LSTAT64) && !defined(XP_DARWIN)
+ # if defined(AIX)
+ # if defined STAT
+ # undef STAT
+--- a/mozglue/baseprofiler/core/shared-libraries-linux.cc
++++ b/mozglue/baseprofiler/core/shared-libraries-linux.cc
+@@ -178,7 +178,7 @@
+ return false;
+ }
+
+-#if defined(__x86_64__) || defined(__aarch64__) || \
++#if 1 || defined(__x86_64__) || defined(__aarch64__) || \
+ (defined(__mips__) && _MIPS_SIM == _ABI64) || \
+ !(defined(GP_OS_linux) || defined(GP_OS_android))
+
+--- a/security/sandbox/linux/broker/SandboxBrokerUtils.h
++++ b/security/sandbox/linux/broker/SandboxBrokerUtils.h
+@@ -15,7 +15,7 @@
+ // calls. We'll intercept those and handle them in the stat functions
+ // but must be sure to use the right structure layout.
+
+-#if defined(__NR_stat64) || defined(__NR_fstatat64)
++#if 0 && (defined(__NR_stat64) || defined(__NR_fstatat64) )
+ typedef struct stat64 statstruct;
+ # define statsyscall stat64
+ # define lstatsyscall lstat64
diff --git a/testing/firefox-developer-edition/no-ccache-stats.patch b/testing/firefox-developer-edition/no-ccache-stats.patch
new file mode 100644
index 00000000000..fa8dddd9840
--- /dev/null
+++ b/testing/firefox-developer-edition/no-ccache-stats.patch
@@ -0,0 +1,13 @@
+prevents a call to ccache
+diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
+index bf7009a083..011c012e20 100644
+--- a/python/mozbuild/mozbuild/controller/building.py
++++ b/python/mozbuild/mozbuild/controller/building.py
+@@ -570,6 +570,7 @@ class BuildMonitor(MozbuildObject):
+ )
+
+ def ccache_stats(self, ccache=None):
++ return None
+ ccache_stats = None
+
+ if ccache is None:
diff --git a/testing/firefox-developer-edition/python-deps.patch b/testing/firefox-developer-edition/python-deps.patch
new file mode 100644
index 00000000000..276aff906ae
--- /dev/null
+++ b/testing/firefox-developer-edition/python-deps.patch
@@ -0,0 +1,12 @@
+diff --git a/python/sites/mach.txt b/python/sites/mach.txt
+index fa6a316..3ea31ca 100644
+--- a/python/sites/mach.txt
++++ b/python/sites/mach.txt
+@@ -97,5 +97,5 @@ pypi-optional:glean-sdk==56.0.0:telemetry will not be collected
+ # Mach gracefully handles the case where `psutil` is unavailable.
+ # We aren't (yet) able to pin packages in automation, so we have to
+ # support down to the oldest locally-installed version (5.4.2).
+-pypi-optional:psutil>=5.4.2,<=5.9.4:telemetry will be missing some data
+-pypi-optional:zstandard>=0.11.1,<=0.22.0:zstd archives will not be possible to extract
++pypi-optional:psutil>=5.4.2,<=5.10.0:telemetry will be missing some data
++pypi-optional:zstandard>=0.11.1,<=0.24.0:zstd archives will not be possible to extract
diff --git a/testing/firefox-developer-edition/rust-lto-thin.patch b/testing/firefox-developer-edition/rust-lto-thin.patch
new file mode 100644
index 00000000000..788fceab39f
--- /dev/null
+++ b/testing/firefox-developer-edition/rust-lto-thin.patch
@@ -0,0 +1,12 @@
+set rust crate lto to thin to not use fatlto for gkrust which fails sometimes
+--- a/config/makefiles/rust.mk
++++ b/config/makefiles/rust.mk
+@@ -92,7 +92,7 @@
+ # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
+ ifndef MOZ_CODE_COVERAGE
+ ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
+-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
++cargo_rustc_flags += -Clto=thin
+ endif
+ # We need -Cembed-bitcode=yes for all crates when using -Clto.
+ RUSTFLAGS += -Cembed-bitcode=yes
diff --git a/testing/firefox-developer-edition/sandbox-fork.patch b/testing/firefox-developer-edition/sandbox-fork.patch
new file mode 100644
index 00000000000..c7222ab494d
--- /dev/null
+++ b/testing/firefox-developer-edition/sandbox-fork.patch
@@ -0,0 +1,15 @@
+make SYS_fork non-fatal, musl uses it for fork(2)
+
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -1253,6 +1253,10 @@
+ // usually do something reasonable on error.
+ case __NR_clone:
+ return ClonePolicy(Error(EPERM));
++#ifdef __NR_fork
++ case __NR_fork:
++ return Error(ENOSYS);
++#endif
+
+ # ifdef __NR_fadvise64
+ case __NR_fadvise64:
diff --git a/testing/firefox-developer-edition/sandbox-largefile.patch b/testing/firefox-developer-edition/sandbox-largefile.patch
new file mode 100644
index 00000000000..f1cf28b51b9
--- /dev/null
+++ b/testing/firefox-developer-edition/sandbox-largefile.patch
@@ -0,0 +1,17 @@
+--- a/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:41:14.556378950 +0100
++++ b/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:40:23.595806444 +0100
+@@ -68,7 +68,13 @@
+
+ // The headers define O_LARGEFILE as 0 on x86_64, but we need the
+ // actual value because it shows up in file flags.
+-#define O_LARGEFILE_REAL 00100000
++#if defined(__x86_64__) || defined(__i386__) || defined(__mips__)
++#define O_LARGEFILE_REAL 0100000
++#elif defined(__powerpc__)
++#define O_LARGEFILE_REAL 0200000
++#else
++#define O_LARGEFILE_REAL O_LARGEFILE
++#endif
+
+ // Not part of UAPI, but userspace sees it in F_GETFL; see bug 1650751.
+ #define FMODE_NONOTIFY 0x4000000
diff --git a/testing/firefox-developer-edition/sandbox-sched_setscheduler.patch b/testing/firefox-developer-edition/sandbox-sched_setscheduler.patch
new file mode 100644
index 00000000000..ffdf12678bc
--- /dev/null
+++ b/testing/firefox-developer-edition/sandbox-sched_setscheduler.patch
@@ -0,0 +1,24 @@
+upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849
+diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
+index ed958bc..9824433 100644
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -1751,6 +1751,6 @@ class GMPSandboxPolicy : public SandboxPolicyCommon {
+ case __NR_sched_get_priority_max:
++ case __NR_sched_setscheduler:
+ return Allow();
+ case __NR_sched_getparam:
+- case __NR_sched_getscheduler:
+- case __NR_sched_setscheduler: {
++ case __NR_sched_getscheduler: {
+ Arg<pid_t> pid(0);
+@@ -1926,3 +1926,2 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon {
+ case __NR_sched_getscheduler:
+- case __NR_sched_setscheduler:
+ case __NR_sched_getattr:
+@@ -1932,2 +1931,5 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon {
+ }
++ // sched_setscheduler gets special treatment here (bug 1657849):
++ case __NR_sched_setscheduler:
++ return Allow();
+
diff --git a/testing/thunderbird/stab.h b/testing/firefox-developer-edition/stab.h
index 6f70af39897..6f70af39897 100644
--- a/testing/thunderbird/stab.h
+++ b/testing/firefox-developer-edition/stab.h
diff --git a/testing/firefox-developer-edition/vendor-prefs.js b/testing/firefox-developer-edition/vendor-prefs.js
new file mode 100644
index 00000000000..b98a03c166d
--- /dev/null
+++ b/testing/firefox-developer-edition/vendor-prefs.js
@@ -0,0 +1,19 @@
+// Use LANG environment variable to choose locale
+pref("intl.locale.requested", "");
+
+// Use system-provided dictionaries
+pref("spellchecker.dictionary_path", "/usr/share/hunspell");
+
+// Disable default browser checking.
+pref("browser.shell.checkDefaultBrowser", false);
+
+// Don't disable our bundled extensions in the application directory
+pref("extensions.autoDisableScopes", 11);
+pref("extensions.shownSelectionUI", true);
+
+// Disable sponsored tiles from "Mozilla Tiles Service"
+pref("browser.topsites.contile.enabled", false);
+
+// Disable Widevine CDM support (doesn't work on musl anyway)
+pref("media.gmp-widevinecdm.visible", false);
+pref("media.gmp-widevinecdm.enabled", false);
diff --git a/testing/firehol/APKBUILD b/testing/firehol/APKBUILD
new file mode 100644
index 00000000000..5005073320c
--- /dev/null
+++ b/testing/firehol/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: François Chavant <alpine@mail.chavant.info>
+pkgname=firehol
+pkgver=3.1.7
+pkgrel=2
+pkgdesc="firewall for humans"
+url="https://github.com/firehol/firehol"
+arch="noarch"
+license=" GPL-2.0-only"
+depends="bash iprange iproute2 iptables"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/firehol/firehol/releases/download/v$pkgver/firehol-$pkgver.tar.bz2
+ firehol.initd
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-fireqos \
+ --disable-link-balancer \
+ --disable-update-ipsets \
+ --disable-vnetbuild
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/sbin/$pkgname"
+ ln -s "/usr/libexec/$pkgname/$pkgver/$pkgname" "$pkgdir/usr/sbin/$pkgname"
+ mkdir -p "$pkgdir/etc/init.d"
+ install -m 755 "$startdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
+}
+
+sha512sums="
+e80f8e52bd4e48d9f549d7efdea6eb600c128c2729f038e2a9bbebbbb9a0bf47d8ed911c1c32f9241071c65ed57b6a6bff77796a51378b11ddcf10f793e94064 firehol-3.1.7.tar.bz2
+7c2c3387b29ff0674e1c4ae500c8ea591388bf4aa3c4d72eaf3f2fcac1cf546e3e2ae026c2bf5e9c62b4f29f0a75e60c9a621bc0a6f78df22502dbbd9f9a2556 firehol.initd
+"
diff --git a/testing/firehol/firehol.initd b/testing/firehol/firehol.initd
new file mode 100644
index 00000000000..d8903c33cb3
--- /dev/null
+++ b/testing/firehol/firehol.initd
@@ -0,0 +1,66 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="save panic try"
+extra_started_commands="reload"
+
+depend() {
+ need localmount
+ after bootmisc
+ before net
+ provide firewall
+}
+
+checkrules() {
+ if [ ! -f ${FIREHOL_CONF} ]; then
+ eerror "Not starting FireHOL. Create ${FIREHOL_CONF}"
+ eerror "and fill it with some rules."
+ eerror "man firehol.conf for more info."
+ return 1
+ fi
+}
+
+start() {
+ checkrules || return 1
+ ebegin "Starting FireHOL"
+ /usr/sbin/firehol ${FIREHOL_CONF} start > /dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping FireHOL"
+ /usr/sbin/firehol stop > /dev/null
+ eend $?
+}
+
+restart() {
+ ebegin "Restarting Firewall"
+ svc_stop;
+ svc_start;
+ eend $?
+}
+
+try() {
+ ebegin "Trying FireHOL configuration"
+ /usr/sbin/firehol ${FIREHOL_CONF} try
+ eend $?
+}
+
+status() {
+ ebegin "Showing FireHOL status"
+ /usr/sbin/firehol status
+ eend $?
+}
+
+panic() {
+ ebegin "FireHOL PANIC"
+ /usr/sbin/firehol panic
+ eend $?
+}
+
+save() {
+ ebegin "Saving FireHOL configuration"
+ /usr/sbin/firehol save
+ eend $?
+}
diff --git a/testing/firewalld/APKBUILD b/testing/firewalld/APKBUILD
new file mode 100644
index 00000000000..a095a5db940
--- /dev/null
+++ b/testing/firewalld/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: Jordan ERNST <SecT0uch@sect0uch.world>
+# Maintainer: Jordan ERNST <SecT0uch@sect0uch.world>
+pkgname=firewalld
+pkgver=2.1.2
+pkgrel=0
+pkgdesc="Firewall daemon with D-Bus interface providing a dynamic firewall"
+url="https://github.com/firewalld/firewalld"
+arch="noarch"
+license="GPL-2.0-or-later"
+# checks produce errors (firewalld needs to be started)
+options="!check"
+depends="
+ dbus
+ nftables
+ py3-dbus
+ py3-gobject3
+ py3-nftables
+ "
+makedepends="
+ autoconf
+ desktop-file-utils
+ docbook-xsl
+ gettext
+ glib-dev
+ intltool
+ libxslt
+ "
+checkdepends="
+ iproute2-minimal
+ musl-locales
+ "
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-doc
+ $pkgname-gui
+ $pkgname-lang
+ $pkgname-openrc
+ $pkgname-zsh-completion
+ "
+source="https://github.com/firewalld/firewalld/releases/download/v$pkgver/firewalld-$pkgver.tar.bz2
+ $pkgname.initd
+ "
+
+build() {
+ # Disable sytemd and iptables features
+ ./configure \
+ --sysconfdir=/etc \
+ --disable-systemd \
+ --without-systemd-unitdir \
+ --disable-rpmmacros \
+ --without-iptables \
+ --without-ip6tables \
+ --without-ebtables \
+ --without-ipset \
+ --without-iptables-restore \
+ --without-ip6tables-restore \
+ --without-ebtables-restore
+ make dist
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ # Remove useless
+ rm -rf "$pkgdir"/etc/sysconfig/
+ rm -rf "$pkgdir"/etc/rc.d/
+
+ install -Dm 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+}
+
+gui() {
+ # Taken here: https://gitweb.gentoo.org/repo/gentoo.git/tree/net-firewall/firewalld/firewalld-1.2.1.ebuild#n181
+ pkgdesc="GUI tools and assets for $pkgname"
+ amove etc/xdg
+ amove usr/bin/firewall-applet
+ amove usr/bin/firewall-config
+ amove usr/share/applications
+ amove usr/share/icons
+}
+
+sha512sums="
+c2f107a917093fbd51448b954c98ccdb90c4a19880dc69d13f3e9f179cb271b3a67015e315f05ba3b0d0ccd1dc5c01d3737a6c7f91430667f6ee3b468785cd4f firewalld-2.1.2.tar.bz2
+7a3089c1e34f4b499f463e7adf5ca4f1137994290780ebb08cdcf8728f0933d7236d1aa202c6598c3033d4984d7e113dec102f3b617ad2b766271c60e151d930 firewalld.initd
+"
diff --git a/testing/firewalld/firewalld.initd b/testing/firewalld/firewalld.initd
new file mode 100644
index 00000000000..561a34f7607
--- /dev/null
+++ b/testing/firewalld/firewalld.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="FirewallD"
+command=/usr/sbin/firewalld
+pidfile=/run/firewalld.pid
+
+depend() {
+ need dbus
+ provide firewall
+}
diff --git a/testing/flamegraph/APKBUILD b/testing/flamegraph/APKBUILD
index 934f20475bc..b1ee61c4bf1 100644
--- a/testing/flamegraph/APKBUILD
+++ b/testing/flamegraph/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=flamegraph
-pkgver=1.0_git20191025
-_commit=1a0dc6985aad06e76857cf2a354bd5ba0c9ce96b
-pkgrel=0
+pkgver=1.0_git20220918
+_commit=d9fcc272b6a08c3e3e5b7919040f0ab5f8952d65
+pkgrel=1
pkgdesc="Stack trace visualizer"
url="http://www.brendangregg.com/flamegraphs.html"
arch="noarch"
@@ -21,4 +21,6 @@ package() {
done
}
-sha512sums="b02719e6df9d371f03cc0d56c3451fdb361bd4dadd30929ed22d7ec813400fdb27b1961941233554bb653153d55b29da36def27b21325c6b4c2744f40652bddb flamegraph-1.0_git20191025.tar.gz"
+sha512sums="
+97d57a33f4759c122ec09fe421288b31cbd227c1d81b771c76379f33cd62e1e44f5ebbd1510483df18cf355cd3ddcfc44a7a47f9ae54f30ecdae34e776dc87f1 flamegraph-1.0_git20220918.tar.gz
+"
diff --git a/testing/flameshot/APKBUILD b/testing/flameshot/APKBUILD
index f1a78ca3380..ed84e55378d 100644
--- a/testing/flameshot/APKBUILD
+++ b/testing/flameshot/APKBUILD
@@ -1,30 +1,48 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer:
pkgname=flameshot
-pkgver=0.6.0
-pkgrel=1
+pkgver=12.1.0
+pkgrel=3
pkgdesc="Featureful screenshot app"
options="!check" # No test suite
-url="https://github.com/lupoDharkael/flameshot"
-arch="all"
+url="https://github.com/flameshot-org/flameshot"
+arch="all !armhf" # kguiaddons
license="GPL-3.0-or-later"
depends="qt5-qtsvg"
-makedepends="make qt5-qtsvg-dev qt5-qttools-dev"
-subpackages="$pkgname-lang $pkgname-bash-completion"
-source="$pkgname-$pkgver.tar.gz::https://github.com/lupoDharkael/flameshot/archive/v$pkgver.tar.gz"
+makedepends="
+ cmake
+ kguiaddons5-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ samurai
+ "
+subpackages="
+ $pkgname-lang
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ $pkgname-doc
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/flameshot-org/flameshot/archive/v$pkgver.tar.gz"
langdir="/usr/share/flameshot/translations"
-prepare() {
- default_prepare
- sed -i "s|TAG_VERSION = .*|TAG_VERSION = v${pkgver}|" flameshot.pro
-}
-
build() {
- qmake-qt5 CONFIG+=packaging PREFIX=/usr DATADIR=/usr/share
- make
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DUSE_WAYLAND_CLIPBOARD=ON \
+ -DENABLE_CACHE=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
}
package() {
- make INSTALL_ROOT="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="194127032ab0f62a6ba2698688e11b2d4e6f0e04a282144f5fbb6c232eeebc71371af2d55abbb6e98b8649dee036e6f0a6ef55710e4321a60fd5ac6e453ab975 flameshot-0.6.0.tar.gz"
+
+sha512sums="
+159bf3a8ff406b3881dcc77fc48d9e7cc0d595bd47ee2363396d7efc95f69160cf25ccf99cd1b2c2b527baeadf91c209784a7bca23ed5f17caacc385e161c83c flameshot-12.1.0.tar.gz
+"
diff --git a/testing/flann/APKBUILD b/testing/flann/APKBUILD
index c57799b2353..2207baf6718 100644
--- a/testing/flann/APKBUILD
+++ b/testing/flann/APKBUILD
@@ -2,16 +2,16 @@
# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
pkgname=flann
pkgver=1.9.1
-pkgrel=2
+pkgrel=4
pkgdesc="Fast Library for Approximate Nearest Neighbors"
-url="https://github.com/mariusmuja/flann"
+url="https://github.com/flann-lib/flann"
arch="all"
license="BSD-3-Clause"
# FLANN tests are broken, test data is invalid
options="!check"
makedepends="cmake"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mariusmuja/flann/archive/$pkgver.tar.gz
+subpackages="$pkgname-doc $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/flann-lib/flann/archive/$pkgver.tar.gz
cmake.patch"
build() {
@@ -25,6 +25,9 @@ build() {
package() {
make -C build DESTDIR="$pkgdir" install
+
+ # Install license files
+ install -Dm644 "$builddir"/COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
sha512sums="0da78bb14111013318160dd3dee1f93eb6ed077b18439fd6496017b62a8a6070cc859cfb3e08dad4c614e48d9dc1da5f7c4a21726ee45896d360506da074a6f7 flann-1.9.1.tar.gz
diff --git a/testing/flannel/APKBUILD b/testing/flannel/APKBUILD
new file mode 100644
index 00000000000..851c49bdb8b
--- /dev/null
+++ b/testing/flannel/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=flannel
+_pkgname=flanneld
+pkgver=0.24.2
+pkgrel=2
+pkgdesc="An etcd backed network fabric for containers"
+url="https://github.com/flannel-io/flannel"
+arch="x86_64"
+license="Apache-2.0"
+options="net chmod-clean"
+makedepends="go linux-headers"
+subpackages="$pkgname-openrc $pkgname-contrib-cni:contrib_cni:noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/flannel-io/flannel/archive/refs/tags/v$pkgver.tar.gz
+$_pkgname.logrotated
+$_pkgname.initd
+$_pkgname.confd"
+builddir="$srcdir/$pkgname-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ mkdir -p out
+ go build \
+ -mod=readonly \
+ -ldflags "-s -w -X github.com/flannel-io/flannel/version.Version=$pkgver" \
+ -o "out/$_pkgname"
+}
+
+check() {
+ ./out/flanneld --version
+}
+
+package() {
+ install -Dm0755 out/$_pkgname "$pkgdir"/usr/bin/$_pkgname
+ install -Dm755 "$srcdir"/$_pkgname.initd \
+ "$pkgdir"/etc/init.d/$_pkgname
+ install -Dm755 "$srcdir"/$_pkgname.confd \
+ "$pkgdir"/etc/conf.d/$_pkgname
+ install -Dm644 "$srcdir"/$_pkgname.logrotated \
+ "$pkgdir"/etc/logrotate.d/$_pkgname
+ install -d "$pkgdir"/var/log/$pkgname
+ install -d "$pkgdir"/var/run/$pkgname
+}
+
+contrib_cni() {
+ pkgdesc="$pkgname contrib cni config files"
+ mkdir -p "$subpkgdir"/etc/cni/net.d
+ install -Dm0755 "$builddir"/dist/mk-docker-opts.sh "$subpkgdir"/usr/bin/mk-docker-opts.sh
+ install -Dm0644 "$builddir"/Documentation/kube-flannel.yml \
+ "$subpkgdir"/etc/kube-flannel/kube-flannel.yml
+ install -Dm0644 "$builddir"/Documentation/k8s-old-manifests/kube-flannel-legacy.yml \
+ "$subpkgdir"/etc/kube-flannel/kube-flannel-legacy.tml
+}
+
+sha512sums="
+eca5051815efbe90136d79e686e6fc070b68cb1331b97a8476a817b5e0c97b7d12742a5d5c403b75a1607fcd3752f16115105632358b035cba8af4f2f7e3d3e3 flannel-0.24.2.tar.gz
+d84258a164adcec0f1cef7fcafcf0cadb3bf3959b393b905c4897274adeff476279ce96ec42e9aa9d574c6bd7d37649d92c7c52563975f85d303cade990a3942 flanneld.logrotated
+3f6f33fe90adca1dd17b503ce0cd3a7f3cc0ca7fc10d0ca5b631f4c87ed513c0133dfd7679618cf95540b252b3176f9bbefd6454867ef792258c46cafc039d86 flanneld.initd
+353b98bfc1a73d8f691b6f79489e0224961b5af8ca36ce2edde2d7a86790612de1d597c3455222f38a1c9f09b377e1bf3adfeedc04bd6b0b75c653a732d58988 flanneld.confd
+"
diff --git a/testing/flannel/flanneld.confd b/testing/flannel/flanneld.confd
new file mode 100644
index 00000000000..18686aa5d22
--- /dev/null
+++ b/testing/flannel/flanneld.confd
@@ -0,0 +1,2 @@
+# arguments for flannel
+command_args=""
diff --git a/testing/flannel/flanneld.initd b/testing/flannel/flanneld.initd
new file mode 100755
index 00000000000..d5d966a40d3
--- /dev/null
+++ b/testing/flannel/flanneld.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 2016-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Flannel Network Fabric for Containers"
+pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
+user=${user:-root}
+group=${group:-root}
+
+command="/usr/bin/${RC_SVCNAME}"
+command_args="${command_args}"
+command_background="true"
+start_stop_daemon_args="--user ${user} --group ${group} \
+ --stdout /var/log/flannel/flannel.log \
+ --stderr /var/log/flannel/flannel.log"
+
+depend() {
+ need net
+}
diff --git a/testing/flannel/flanneld.logrotated b/testing/flannel/flanneld.logrotated
new file mode 100644
index 00000000000..4108e630557
--- /dev/null
+++ b/testing/flannel/flanneld.logrotated
@@ -0,0 +1,7 @@
+/var/log/flannel/* {
+ missingok
+ size 5M
+ rotate 3
+ compress
+ copytruncate
+}
diff --git a/testing/flare-engine/APKBUILD b/testing/flare-engine/APKBUILD
index 038fb919bd0..00f88f11500 100644
--- a/testing/flare-engine/APKBUILD
+++ b/testing/flare-engine/APKBUILD
@@ -1,29 +1,43 @@
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=flare-engine
-pkgver=1.11
-pkgrel=1
+pkgver=1.14
+pkgrel=0
pkgdesc="Free/Libre Action Roleplaying Engine"
url="http://www.flarerpg.org/"
arch="all"
license="GPL-3.0-only"
-depends="sdl2_image sdl2_mixer sdl2_ttf hicolor-icon-theme"
-makedepends="cmake make sdl2_image-dev sdl2_mixer-dev sdl2_ttf-dev"
+depends="hicolor-icon-theme"
+makedepends="
+ cmake
+ samurai
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_mixer-dev
+ sdl2_ttf-dev
+ "
options="!check" # make check not implemented
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/flareteam/flare-engine/archive/v$pkgver.tar.gz"
build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBINDIR=bin \
- -DDATADIR=share/flare
- make -C build
+ -DDATADIR=share/flare \
+ $CMAKE_CROSSOPTS
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="1a210a9ce1812458faafc7ceadfdb69dfb2f70b785f93b7bc698b72b6305e8a3b268d53b085544ac54868e895cce6872abf9cb22389ed1280a27ca46bdb9ec3b flare-engine-1.11.tar.gz"
+sha512sums="
+6033eb40b83763e670e1af2333fd8609f796746c51b7b07b7e5f99694954aad7ae7c80f44590bbca5316714cf0581e7326e6e707669e2341a953a8212a46d8d1 flare-engine-1.14.tar.gz
+"
diff --git a/testing/flare-game/APKBUILD b/testing/flare-game/APKBUILD
new file mode 100644
index 00000000000..b308bc9766d
--- /dev/null
+++ b/testing/flare-game/APKBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=flare-game
+pkgver=1.14
+pkgrel=0
+pkgdesc="Fantasy action RPG using the FLARE engine"
+url="http://www.flarerpg.org/"
+arch="noarch"
+license="GPL-3.0-only"
+depends="flare-engine"
+install="$pkgname.post-install"
+options="!check" # No test suite
+source="flare-game-data-downloader.sh"
+
+package() {
+ install -Dm755 flare-game-data-downloader.sh \
+ "$pkgdir"/usr/bin/flare-game-data-downloader.sh
+}
+
+sha512sums="
+3dc04a844244da02274a9025f3c1d68b42371496b871f9fc1e47f30af5f87861b072acb7fe06bf91b97b06632daa439666955557c1d934bde959ac9d08beb803 flare-game-data-downloader.sh
+"
diff --git a/testing/flare-game/flare-game-data-downloader.sh b/testing/flare-game/flare-game-data-downloader.sh
new file mode 100755
index 00000000000..834a4833fd0
--- /dev/null
+++ b/testing/flare-game/flare-game-data-downloader.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Flare-game can be placed in two default locations: /usr/share/flare for system-wide installation
+# or ~/.local/share/flare for user installation.
+# It's better to place it inside user directory because each user could have their own game assets.
+
+FG_VERSION=1.13.04
+INST_DIRECTORY="$HOME/.local/share/flare"
+
+echo "Downloading Flare Game data (version $FG_VERSION) ..."
+mkdir -p ${INST_DIRECTORY}
+curl -L https://github.com/flareteam/flare-game/releases/download/v${FG_VERSION}/flare-game-v${FG_VERSION}.tar.gz | tar -xz --strip-components=1 -C ${INST_DIRECTORY} -f -
+echo 'Done.'
diff --git a/testing/flare-game/flare-game.post-install b/testing/flare-game/flare-game.post-install
new file mode 100755
index 00000000000..a0b616c08ff
--- /dev/null
+++ b/testing/flare-game/flare-game.post-install
@@ -0,0 +1,13 @@
+#!/bin/sh
+FG_VERSION=1.13.04
+echo
+echo " Please run flare-game-data-downloader.sh before running the program."
+echo
+echo
+echo " You can also download the flare-game-${FG_VERSION}.tar.gz file at:"
+echo
+echo " https://github.com/flareteam/flare-game/releases/download/v${FG_VERSION}/flare-game-v${FG_VERSION}.tar.gz"
+echo
+echo " and extract it in ~/.local/share/flare (recommended)"
+echo " or place it system-wide in /usr/share/flare."
+echo
diff --git a/testing/flatpak-xdg-utils/APKBUILD b/testing/flatpak-xdg-utils/APKBUILD
new file mode 100644
index 00000000000..828c22b93f2
--- /dev/null
+++ b/testing/flatpak-xdg-utils/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Jordan Christiansen <xordspar0@gmail.com>
+# Maintainer: Jordan Christiansen <xordspar0@gmail.com>
+pkgname=flatpak-xdg-utils
+pkgver=1.0.5
+pkgrel=0
+pkgdesc="Simple portal-based commandline tools for use inside flatpak sandboxes"
+url="https://github.com/flatpak/flatpak-xdg-utils"
+arch="all"
+license="LGPL-2.1-only"
+makedepends="meson glib-dev"
+checkdepends="dbus"
+source="https://github.com/flatpak/flatpak-xdg-utils/releases/download/$pkgver/flatpak-xdg-utils-$pkgver.tar.xz"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ mv $pkgdir/usr/bin/xdg-email $pkgdir/usr/bin/flatpak-xdg-email
+ mv $pkgdir/usr/bin/xdg-open $pkgdir/usr/bin/flatpak-xdg-open
+}
+
+sha512sums="
+71c55cc01dc962c1b419821160626c46111ad672241f7627dbf780790d4f9f320151f479264ffc188334488f43dee8f4f7aa7754040e9c6231c200ea281f6439 flatpak-xdg-utils-1.0.5.tar.xz
+"
diff --git a/testing/flauschige-uhr/APKBUILD b/testing/flauschige-uhr/APKBUILD
new file mode 100644
index 00000000000..2f0f36f4043
--- /dev/null
+++ b/testing/flauschige-uhr/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=flauschige-uhr
+pkgver=0.1
+pkgrel=1
+pkgdesc="german fuzzy clock"
+options="!check" #there are no checks
+url="https://github.com/guddaff/flauschige-uh"
+arch="all"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/guddaff/flauschige-uhr/archive/refs/tags/V_$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-V_$pkgver"
+
+build() {
+ make TARGET="$pkgname"
+}
+
+package() {
+ mkdir -p "$pkgdir/usr/bin/"
+ make TARGET="$pkgname" DESTDIR="$pkgdir/usr/bin/" install
+}
+
+sha512sums="
+8aa9016fafae0de43a3f2233c8cc3376607408bbb7c3a38db4e872cadc44762b9ad8c51222314c9bcc6789052a01751ebd804902a7c7d0e0c185f9d6e3c28f19 flauschige-uhr-0.1.tar.gz
+"
diff --git a/testing/flightgear/APKBUILD b/testing/flightgear/APKBUILD
index ecbcb4dbe7a..78c2491a231 100644
--- a/testing/flightgear/APKBUILD
+++ b/testing/flightgear/APKBUILD
@@ -1,42 +1,87 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=flightgear
-pkgver=2019.1.1
-pkgrel=2
-pkgdesc="Sophisticated flight simulator"
+pkgver=2020.3.19
+_pkgver=${pkgver%.*}
+pkgrel=1
+pkgdesc="Flight Gear Flight Simulator"
url="http://flightgear.org"
-arch="x86_64" # openscenegraph availability
-license="GPL"
-makedepends="$depends_dev boost-dev cmake curl-dev dbus-dev eudev-dev
- freeglut-dev glew-dev libx11-dev libxi-dev libxmu-dev mesa-dev
- openal-soft-dev openscenegraph-dev plib qt5-qtbase-dev
- qt5-qtdeclarative-dev qt5-qtsvg-dev simgear-dev zlib-dev"
+arch="all !riscv64 !x86 !armhf !armv7" # limited by openscenegraph and build compatibility
+license="GPL-2.0-or-later"
+makedepends="
+ boost-dev
+ cmake
+ curl-dev
+ dbus-dev
+ eudev-dev
+ freeglut-dev
+ glew-dev
+ libevent-dev
+ libx11-dev
+ libxi-dev
+ libxmu-dev
+ mesa-dev
+ openal-soft-dev
+ openscenegraph-dev
+ plib
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qttools-dev
+ qt5-qtsvg-dev
+ samurai
+ simgear-dev=~$pkgver
+ zlib-dev
+ "
install="$pkgname.post-install"
-subpackages="$pkgname-doc $pkgname-dbg"
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
options="!check" # FIXME test suite does not get built
-source="https://downloads.sourceforge.net/project/flightgear/release-${pkgver%.[1-9]*}/flightgear-$pkgver.tar.bz2
- musl-fixes.patch
+source="
+ https://downloads.sourceforge.net/project/flightgear/release-$_pkgver/flightgear-$pkgver.tar.bz2
+ no-execinfo.patch
+ musl-fenv.patch
+ musl-fix_error_h.patch
+ musl-fix_feenableexcept.patch
+ musl-fix_fpos_t.patch
+ musl-include-fcntl.patch
+ flightgear-data-downloader.sh
"
build() {
- cmake \
- -D BUILD_TESTING=ON \
- -D CMAKE_BUILD_TYPE="Release" \
+ # reduce size of debug syms
+ CFLAGS="$CFLAGS -g1" CXXFLAGS="$CXXFLAGS -g1" \
+ cmake -B build -G Ninja \
+ -D BUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_INSTALL_SYSCONFDIR=/etc/$pkgname \
-D FG_DATA_DIR=/var/lib/$pkgname \
- -D SimGear_DIR=/usr/lib/cmake/SimGear \
- .
- make
+ -D SimGear_DIR=/usr/lib/cmake/SimGear
+ cmake --build build
}
check() {
- make test
+ ninja -C build test
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm755 "$srcdir"/flightgear-data-downloader.sh "$pkgdir"/usr/bin/flightgear-data-downloader
+ sed -i -e "s/%FGDATA_VERSION%/$pkgver/" "$pkgdir"/usr/bin/flightgear-data-downloader
}
-sha512sums="edcc464af0bde4766e61137211276d77a6bb297567b0168dfaf3b97fdb9a595e5e8a0b84232680fcc975cf195261b9751edb79ae73123333feb31ab3d7215d8c flightgear-2019.1.1.tar.bz2
-3350de9e465dc4f865d2a94d96b2f79b4c98c994fc4713cfa296c20ed12129f310779171b89639f69d1e4f5f0103fca6cc01df5a9e25d77f93a0b4e76f6b973a musl-fixes.patch"
+sha512sums="
+ad5a4dd455a92bd9032c0f01084c0c114e4a91e60d53f200a754e54e1f8e08fd8e9008ea9f97f69410ee842fdc6c2210091d4ac5e5c6da6ba19f47e22438d207 flightgear-2020.3.19.tar.bz2
+34186d8ac64368bebed4f7564bc38df236b2c3e7870366240635c80c8a4ebce854e0ea30d9fc30f6f578acb86340dd2ee0d6dc1ce4b25c5a76129a8d8d4bf7df no-execinfo.patch
+81ffb1ecfceae8d4ebb14717fb785118b3c290171245762cb4ab85be769582576147fe1b1b60fe854f4dd8079ebaf913da1585809ba9048d55f8710159c05614 musl-fenv.patch
+b477510a102b0d01859ab39ddf7b5c4bcd3b80aa522320b2128095228b643d5e067dd61f8edbef7df7ed1a35aea647444126ba58eb39a82d294ae8a0f6e808e5 musl-fix_error_h.patch
+29d12098c2581122234188cadd929238c41258bf347de2fcd30dabb46e398d19566e064b2a4267370bf7669c5dcde2c87ef1232b7b1a9ed27ad7885a26378b05 musl-fix_feenableexcept.patch
+3a5d280bcd806fbdeb7b2f92435ffa7b44c420494ae658060624dfa34709a2b36448c1ca8c81bff1e4bb2878fa55200eb69535699062aff5286c7f640fbc3081 musl-fix_fpos_t.patch
+89f871216cac9bf772c6f7a4d12d79ff73a38179547464ffa93ed24394309cb085719c0de5e2a82e2086e994cbf886a8763e4c577fdda476ddbab0e3e3dea4cd musl-include-fcntl.patch
+fc350ca635981a0c0936aee13e11913c7f78cd31716ab1bf7edb060fc934a2b61913e722b32a9deacb19f2eef58f374a96fe9cc821cae7c38cf579d18adc860f flightgear-data-downloader.sh
+"
diff --git a/testing/flightgear/flightgear-data-downloader.sh b/testing/flightgear/flightgear-data-downloader.sh
new file mode 100755
index 00000000000..b4b2c3ac411
--- /dev/null
+++ b/testing/flightgear/flightgear-data-downloader.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+FGDATA_VERSION=%FGDATA_VERSION%
+RELEASE_BRANCH=${FGDATA_VERSION%.*}
+
+if [ "$(id -u)" != '0' ]; then
+ echo "This script requires root privileges to store flightgear-data into /var/lib/flightgear folder."
+ exit 1
+fi
+
+echo "Downloading Flightgear data (version $FGDATA_VERSION) ..."
+rm -rf /var/lib/flightgear
+mkdir /var/lib/flightgear
+curl -L https://sourceforge.net/projects/flightgear/files/release-$RELEASE_BRANCH/FlightGear-$FGDATA_VERSION-data.txz/download | tar -xJ --strip-components=1 -C /var/lib/flightgear -f -
+echo 'Done.'
diff --git a/testing/flightgear/flightgear.post-install b/testing/flightgear/flightgear.post-install
index 595cb797bed..abba2488a0b 100755
--- a/testing/flightgear/flightgear.post-install
+++ b/testing/flightgear/flightgear.post-install
@@ -2,9 +2,11 @@
echo
echo " Please download the flightgear-data-VERSION.tar.bz2 file at:"
echo
-echo " http://downloads.sourceforge.net/project/flightgear"
+echo " https://downloads.sourceforge.net/project/flightgear"
echo
echo " and extract it in /var/lib/flightgear"
echo " before running the program or change its location"
echo " by setting the variable FG_ROOT"
echo
+echo " (You may use the script /usr/bin/flightgear-data-downloader)"
+echo
diff --git a/testing/flightgear/musl-fenv.patch b/testing/flightgear/musl-fenv.patch
new file mode 100644
index 00000000000..8a0922f57d8
--- /dev/null
+++ b/testing/flightgear/musl-fenv.patch
@@ -0,0 +1,19 @@
+Simply disabling the code which enables floating point exceptions
+is probably wrong, but I don't have a replacement for the
+non-posix functions fegetexcept(3) and feenableexcept(3).
+
+--- a/src/Main/bootstrap.cxx 2015-02-18 21:10:05.000000000 +0100
++++ b/src/Main/bootstrap.cxx 2015-11-01 01:25:56.665212195 +0100
+@@ -96,8 +96,12 @@
+ initFPE (bool fpeAbort)
+ {
++#if defined(__GLIBC__)
+ if (fpeAbort) {
+ int except = fegetexcept();
+ feenableexcept(except | FE_DIVBYZERO | FE_INVALID);
+ } else {
+ signal(SIGFPE, handleFPE);
+ }
++#else
++ signal(SIGFPE, handleFPE);
++#endif
diff --git a/testing/flightgear/musl-fix_error_h.patch b/testing/flightgear/musl-fix_error_h.patch
new file mode 100644
index 00000000000..587ee1f530b
--- /dev/null
+++ b/testing/flightgear/musl-fix_error_h.patch
@@ -0,0 +1,14 @@
+There is no <error.h> in musl libc, thus enable the
+include only if __GLIB__ is defined.
+
+--- a/3rdparty/iaxclient/lib/libiax2/src/iax.c 2015-02-18 21:10:05.000000000 +0100
++++ b/3rdparty/iaxclient/lib/libiax2/src/iax.c 2015-10-31 17:14:55.477461723 +0100
+@@ -75,7 +75,7 @@
+ // FlightGear: Modified to include FreeBSD
+ #if !defined(MACOSX) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
+ #include <malloc.h>
+-#if !defined(SOLARIS)
++#if !defined(SOLARIS) && defined(__GLIBC__)
+ #include <error.h>
+ #endif
+ #endif
diff --git a/testing/flightgear/musl-fix_feenableexcept.patch b/testing/flightgear/musl-fix_feenableexcept.patch
new file mode 100644
index 00000000000..9d456a2d281
--- /dev/null
+++ b/testing/flightgear/musl-fix_feenableexcept.patch
@@ -0,0 +1,11 @@
+--- a/src/FDM/JSBSim/JSBSim.cpp 2017-03-01 21:06:31.000000000 +0100
++++ b/src/FDM/JSBSim/JSBSim.cpp 2017-03-17 09:49:13.115544107 +0100
+@@ -287,7 +287,7 @@
+ _clearfp();
+ _controlfp(_controlfp(0, 0) & ~(_EM_INVALID | _EM_ZERODIVIDE | _EM_OVERFLOW),
+ _MCW_EM);
+-#elif defined(__GNUC__) && !defined(sgi) && !defined(__APPLE__)
++#elif defined(__GNUC__) && !defined(sgi) && !defined(__APPLE__) && defined(__GLIBC__)
+ feenableexcept(FE_DIVBYZERO | FE_INVALID);
+ #endif
+
diff --git a/testing/flightgear/musl-fix_fpos_t.patch b/testing/flightgear/musl-fix_fpos_t.patch
new file mode 100644
index 00000000000..c3f709b0644
--- /dev/null
+++ b/testing/flightgear/musl-fix_fpos_t.patch
@@ -0,0 +1,17 @@
+For musl libc return the file position using
+ftell(3) because fpos_t is opaque.
+
+--- a/3rdparty/hts_engine_API/lib/HTS_misc.c 2015-02-18 21:10:05.000000000 +0100
++++ b/3rdparty/hts_engine_API/lib/HTS_misc.c 2015-10-31 17:33:53.946349145 +0100
+@@ -247,8 +247,10 @@
+ fgetpos((FILE *) fp->pointer, &pos);
+ #if defined(_WIN32) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__ANDROID__) || defined(__FreeBSD__)
+ return (size_t) pos;
+-#else
++#elif defined(__GLIBC__)
+ return (size_t) pos.__pos;
++#else
++ return (size_t) ftell(fp->pointer);
+ #endif /* _WIN32 || __CYGWIN__ || __APPLE__ || __ANDROID__ */
+ }
+ HTS_error(0, "HTS_ftell: Unknown file type.\n");
diff --git a/testing/flightgear/musl-fixes.patch b/testing/flightgear/musl-fixes.patch
deleted file mode 100644
index c72ea90c781..00000000000
--- a/testing/flightgear/musl-fixes.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-Simply disabling the code which enables floating point exceptions
-is probably wrong, but I don't have a replacement for the
-non-posix functions fegetexcept(3) and feenableexcept(3).
-
---- a/src/Main/bootstrap.cxx 2015-02-18 21:10:05.000000000 +0100
-+++ b/src/Main/bootstrap.cxx 2015-11-01 01:25:56.665212195 +0100
-@@ -96,8 +96,12 @@
- initFPE (bool fpeAbort)
- {
-+#if defined(__GLIBC__)
- if (fpeAbort) {
- int except = fegetexcept();
- feenableexcept(except | FE_DIVBYZERO | FE_INVALID);
- } else {
- signal(SIGFPE, handleFPE);
- }
-+#else
-+ signal(SIGFPE, handleFPE);
-+#endif
-There is no <error.h> in musl libc, thus enable the
-include only if __GLIB__ is defined.
-
---- a/3rdparty/iaxclient/lib/libiax2/src/iax.c 2015-02-18 21:10:05.000000000 +0100
-+++ b/3rdparty/iaxclient/lib/libiax2/src/iax.c 2015-10-31 17:14:55.477461723 +0100
-@@ -75,7 +75,7 @@
- // FlightGear: Modified to include FreeBSD
- #if !defined(MACOSX) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
- #include <malloc.h>
--#if !defined(SOLARIS)
-+#if !defined(SOLARIS) && defined(__GLIBC__)
- #include <error.h>
- #endif
- #endif
---- a/src/Main/bootstrap.cxx 2017-03-17 09:52:07.474706542 +0100
-+++ b/src/Main/bootstrap.cxx 2017-03-17 09:53:40.361793507 +0100
-@@ -141,7 +141,7 @@
- }
- #endif
-
--#if defined(__GNUC__)
-+#if defined(__GNUC__) && defined(__GLIBC__)
- #include <execinfo.h>
- #include <cxxabi.h>
- void segfault_handler(int signo) {
-@@ -244,8 +244,10 @@
-
- signal(SIGPIPE, SIG_IGN);
- # ifndef NDEBUG
-+# ifdef __GLIBC__
- signal(SIGSEGV, segfault_handler);
- # endif
-+# endif
- #endif
-
- _bootstrap_OSInit = 0;
---- a/src/FDM/JSBSim/JSBSim.cpp 2017-03-01 21:06:31.000000000 +0100
-+++ b/src/FDM/JSBSim/JSBSim.cpp 2017-03-17 09:49:13.115544107 +0100
-@@ -287,7 +287,7 @@
- _clearfp();
- _controlfp(_controlfp(0, 0) & ~(_EM_INVALID | _EM_ZERODIVIDE | _EM_OVERFLOW),
- _MCW_EM);
--#elif defined(__GNUC__) && !defined(sgi) && !defined(__APPLE__)
-+#elif defined(__GNUC__) && !defined(sgi) && !defined(__APPLE__) && defined(__GLIBC__)
- feenableexcept(FE_DIVBYZERO | FE_INVALID);
- #endif
-
-For musl libc return the file position using
-ftell(3) because fpos_t is opaque.
-
---- a/3rdparty/hts_engine_API/lib/HTS_misc.c 2015-02-18 21:10:05.000000000 +0100
-+++ b/3rdparty/hts_engine_API/lib/HTS_misc.c 2015-10-31 17:33:53.946349145 +0100
-@@ -247,8 +247,10 @@
- fgetpos((FILE *) fp->pointer, &pos);
- #if defined(_WIN32) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__ANDROID__) || defined(__FreeBSD__)
- return (size_t) pos;
--#else
-+#elif defined(__GLIBC__)
- return (size_t) pos.__pos;
-+#else
-+ return (size_t) ftell(fp->pointer);
- #endif /* _WIN32 || __CYGWIN__ || __APPLE__ || __ANDROID__ */
- }
- HTS_error(0, "HTS_ftell: Unknown file type.\n");
diff --git a/testing/flightgear/musl-include-fcntl.patch b/testing/flightgear/musl-include-fcntl.patch
new file mode 100644
index 00000000000..1f3e0f8234f
--- /dev/null
+++ b/testing/flightgear/musl-include-fcntl.patch
@@ -0,0 +1,10 @@
+--- a/src/Navaids/NavDataCache.cxx
++++ b/src/Navaids/NavDataCache.cxx
+@@ -31,6 +31,7 @@
+ #include <stdint.h> // for int64_t
+ #include <sstream> // for std::ostringstream
+ #include <mutex>
++#include <fcntl.h>
+
+ #ifdef SYSTEM_SQLITE
+ // the standard sqlite3.h doesn't give a way to set SQLITE_UINT64_TYPE,
diff --git a/testing/flightgear/no-execinfo.patch b/testing/flightgear/no-execinfo.patch
new file mode 100644
index 00000000000..83e6302058f
--- /dev/null
+++ b/testing/flightgear/no-execinfo.patch
@@ -0,0 +1,21 @@
+diff --git a/src/Main/bootstrap.cxx b/src/Main/bootstrap.cxx
+index f9eb159..958aa8a 100755
+--- a/src/Main/bootstrap.cxx
++++ b/src/Main/bootstrap.cxx
+@@ -193,7 +193,6 @@ bool checkUniversalCRTVersion()
+ #endif
+
+ #if defined(__GNUC__)
+-#include <execinfo.h>
+ #include <cxxabi.h>
+ void segfault_handler(int signo) {
+ void *array[128];
+@@ -201,7 +200,7 @@ void segfault_handler(int signo) {
+
+ fprintf(stderr, "Error: caught signal %d:\n", signo);
+
+- #ifndef __OpenBSD__
++ #if defined(__GLIBC__)
+ size = backtrace(array, 128);
+ if (size) {
+ char** list = backtrace_symbols(array, size);
diff --git a/testing/flint/APKBUILD b/testing/flint/APKBUILD
new file mode 100644
index 00000000000..3940308490d
--- /dev/null
+++ b/testing/flint/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=flint
+pkgver=2.9.0
+pkgrel=1
+pkgdesc="C library in support of computations in number theory"
+url="https://www.flintlib.org/"
+# s390x: https://github.com/wbhart/flint2/issues/1184
+arch="all !s390x"
+license="LGPL-2.1-or-later"
+makedepends="
+ cmake
+ gmp-dev
+ libntl-dev
+ mpfr-dev
+ openblas-dev
+ python3
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="https://www.flintlib.org/flint-$pkgver.tar.gz
+ fix-sdiv_qrnnd-test.patch"
+
+build() {
+ # Project uses cpu_set_t type extensively throughout the codebase
+ # and sometimes without defining _GNU_SOURCE.
+ # Patching all this seems too operose...
+ export CFLAGS="$CFLAGS -D_GNU_SOURCE"
+
+ cmake -G Ninja -B build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DWITH_NTL=ON \
+ -DBUILD_TESTING=ON
+ cmake --build build
+}
+
+check() {
+ ctest -j4 --output-on-failure --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+e213f0d5b4d03195357253593b2e0c2f04ef07b1cc24b302ad0e995f92aa9e0fa8beb1709db58ed1fff039ea88b0ce2acda3b6123f61dcf11852399b74a71364 flint-2.9.0.tar.gz
+092f9b035167c80d6f862c7bda278effe3c8321a4a606be5375a17c381ce46d5f2135f747594f6ebdf761d3f11604b1da46eaa650cda9034be46c17e48fad4f9 fix-sdiv_qrnnd-test.patch
+"
diff --git a/testing/flint/fix-sdiv_qrnnd-test.patch b/testing/flint/fix-sdiv_qrnnd-test.patch
new file mode 100644
index 00000000000..4b8ac7e818b
--- /dev/null
+++ b/testing/flint/fix-sdiv_qrnnd-test.patch
@@ -0,0 +1,22 @@
+From fb8ddbcc06afa2a8f25637032fbb8211f6c6c122 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Albin=20Ahlb=C3=A4ck?= <albin.ahlback@gmail.com>
+Date: Fri, 20 May 2022 14:16:38 +0200
+Subject: [PATCH] Fix bug in test code for GCC 12
+
+---
+ test/t-sdiv_qrnnd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/t-sdiv_qrnnd.c b/test/t-sdiv_qrnnd.c
+index 2e9822e848..2676903826 100644
+--- a/test/t-sdiv_qrnnd.c
++++ b/test/t-sdiv_qrnnd.c
+@@ -33,7 +33,7 @@ int main(void)
+ {
+ d = n_randtest_not_zero(state);
+ nh = n_randtest(state);
+- } while ((FLINT_ABS(nh) >= FLINT_ABS(d)/2) || (nh == WORD_MIN));
++ } while ((nh == WORD_MIN) || (FLINT_ABS(nh) >= FLINT_ABS(d)/2));
+
+ nl = n_randtest(state);
+
diff --git a/testing/flintqs/APKBUILD b/testing/flintqs/APKBUILD
new file mode 100644
index 00000000000..a0c36ed9ee6
--- /dev/null
+++ b/testing/flintqs/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=flintqs
+pkgver=1.0
+pkgrel=1
+pkgdesc="Highly optimized multi-polynomial quadratic sieve for integer factorization"
+url="https://github.com/sagemath/FlintQS"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="autoconf automake gmp-dev libtool"
+source="https://github.com/sagemath/FlintQS/archive/v$pkgver/flintqs-v$pkgver.tar.gz"
+builddir="$srcdir/FlintQS-$pkgver"
+
+prepare() {
+ default_prepare
+ touch ChangeLog
+ autoreconf -fi
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ echo 1000000000000000000000000000000000000000 | ./src/QuadraticSieve
+}
+
+package() {
+ install -Dm755 src/QuadraticSieve "$pkgdir"/usr/bin/QuadraticSieve
+}
+
+sha512sums="
+5be6422d1d666ffddf4fd29db761c4c5b6c196c3a4b2b62071e6ed0df9ef8645cbae4da6d01ca9bc1dfa1ffc680b7b9683f0f4291767af986f9fef6c0a37b793 flintqs-v1.0.tar.gz
+"
diff --git a/testing/flit/APKBUILD b/testing/flit/APKBUILD
deleted file mode 100644
index e3261660f1f..00000000000
--- a/testing/flit/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
-pkgname=flit
-pkgver=2.3.0
-pkgrel=0
-pkgdesc="Simple packaging tool for simple Python packages"
-options="!check"
-url="https://flit.readthedocs.io"
-arch="noarch"
-license="BSD-3-Clause"
-depends="
- python3
- py3-docutils
- py3-pytoml
- py3-requests
- "
-makedepends="unzip"
-_wheel_cli="flit-$pkgver-py3-none-any.whl"
-_wheel_core="flit_core-$pkgver-py2.py3-none-any.whl"
-source="https://files.pythonhosted.org/packages/py3/f/flit/$_wheel_cli
- https://files.pythonhosted.org/packages/py2.py3/f/flit_core/$_wheel_core
- install-wheel-scripts.py
- "
-builddir="$srcdir"
-
-package() {
- local site="$pkgdir"/usr/lib/"$(readlink /usr/bin/python3)"/site-packages
- mkdir -p "$site"
- unzip "$_wheel_core" -d "$site"
- unzip "$_wheel_cli" -d "$site"
- "$srcdir"/install-wheel-scripts.py --prefix="$pkgdir"/usr "$_wheel_cli"
- chmod 644 "$site"/*.dist-info/*
-}
-
-sha512sums="5586f7b0687d0f35e8a1eb90c051f7a104260081954ad2aa02b3b2bc36fe1c8ceab59a41244ebe953b568a6c63093897b3a5532e98e866bf751e534f55c541f8 flit-2.3.0-py3-none-any.whl
-bb7acbfa41759bb7d15c6d8029184aaa6531ce34ea23204ceb616c6752bf3ade6df44a9acc72db424000e9e7e1fff72a4d1dfd087216ec0df689568a134ba46c flit_core-2.3.0-py2.py3-none-any.whl
-96a9eeebec7b362dec9e19309386a28df3243b5b8d84643de8d043a12ae174ca7b111b67a0a335ed0fa1069690b990ef66de5670326e225251ad3bbfef9e3b1e install-wheel-scripts.py"
diff --git a/testing/flit/install-wheel-scripts.py b/testing/flit/install-wheel-scripts.py
deleted file mode 100755
index c60ffb8dfa8..00000000000
--- a/testing/flit/install-wheel-scripts.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python3
-
-import argparse
-from pathlib import Path
-from configparser import ConfigParser
-from zipfile import ZipFile
-
-
-parser = argparse.ArgumentParser(description="Install wheel scripts.")
-parser.add_argument("wheel", type=Path, help="Wheel file")
-parser.add_argument(
- "--prefix",
- type=Path,
- default=Path("/usr/local/"),
- help="Installation prefix (/usr/, ~/.local, …)",
-)
-
-
-def get_console_scripts(whl):
- with ZipFile(whl) as archive:
- n = next(
- iter(
- n
- for n in archive.namelist()
- if n.endswith(".dist-info/entry_points.txt")
- ),
- None,
- )
- if n is None:
- return {}
- ini = archive.read(n).decode("utf-8")
- parser = ConfigParser()
- parser.optionxform = str # case sensitive
- parser.read_string(ini)
- return dict(parser["console_scripts"]) if "console_scripts" in parser else {}
-
-
-def main():
- args = parser.parse_args()
-
- scripts = get_console_scripts(args.wheel)
- for name, defn in scripts.items():
- defn, *_ = defn.split(";") # extra condition
- mod, fun = defn.split(":")
- if mod.endswith(".__main__"):
- mod = mod[: -len(".__main__")]
- code = f"""\
-#!/bin/sh
-exec /usr/bin/python3 -m {mod} "$@"
-"""
- else:
- code = f"""\
-#!/usr/bin/python3
-from {mod} import {fun}
-{fun}()
-"""
- bin_path = args.prefix / "bin" / name
- bin_path.parent.mkdir(parents=True, exist_ok=True)
- bin_path.write_text(code)
- bin_path.chmod(0o755)
-
-
-if __name__ == "__main__":
- main()
diff --git a/testing/flowd/APKBUILD b/testing/flowd/APKBUILD
index 953b9c49363..2b3c5b6f433 100644
--- a/testing/flowd/APKBUILD
+++ b/testing/flowd/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=flowd
pkgver=0.9.1
-pkgrel=6
+pkgrel=9
pkgdesc="Small, fast and secure NetFlow collector"
url="https://www.mindrot.org/projects/flowd/"
arch="all"
@@ -15,7 +15,9 @@ subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc
source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/$pkgname/$pkgname-$pkgver.tar.gz
fix_path.patch
fix_user.patch
- $pkgname.initd"
+ format-security.patch
+ $pkgname.initd
+ "
# Packages remove ddue to depending on python2
replaces="$pkgname-tools $pkgname-rrd py-$pkgname"
@@ -66,7 +68,10 @@ _perldoc() {
install_if="docs perl-$pkgname=$pkgver-r$pkgrel"
}
-sha512sums="c86d810de9a163206525c4ac12029d650209a370213d701d38b0e7ea746e087d2a0f80ab1657ccca87851cdf64628813666028e267529d6b7391b63542230967 flowd-0.9.1.tar.gz
+sha512sums="
+c86d810de9a163206525c4ac12029d650209a370213d701d38b0e7ea746e087d2a0f80ab1657ccca87851cdf64628813666028e267529d6b7391b63542230967 flowd-0.9.1.tar.gz
427a0b690519ddeb28da581ba7740faa6de9c6baf40ba285ad82f5652def3c950c8b080ca677de9748eea6cc1c2c5ab38559a139655e6cb176b021a5a9d5d912 fix_path.patch
5264f4e913464c7cd6957ea4ef2a458551e3b52c66d1b709e90bfbe014327b72fbff52e282acbf6a2222972ca96f5908410f6ab51c3d8a161e9eef111634d8f2 fix_user.patch
-68cfe2ea07eb981c02660f5c05018308c164705f52c0c1d90bdacc45ec993dca971439c60b02f5ba3e521c8730e54d968a31af1eddfe6924d39d33c50843836b flowd.initd"
+f3478a308ab1bae77c6469a8ebd74f9a91bbaeca6562ef5dbfd791556d8c05620b04a7b9ae1607b1d4c777a32af052c56aad1ca39b8fdc040449999de103565c format-security.patch
+68cfe2ea07eb981c02660f5c05018308c164705f52c0c1d90bdacc45ec993dca971439c60b02f5ba3e521c8730e54d968a31af1eddfe6924d39d33c50843836b flowd.initd
+"
diff --git a/testing/flowd/format-security.patch b/testing/flowd/format-security.patch
new file mode 100644
index 00000000000..9dbebc0a487
--- /dev/null
+++ b/testing/flowd/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/Flowd-perl/Flowd.xs b/Flowd-perl/Flowd.xs
+index 3b72d9b..1f0a5c0 100644
+--- a/Flowd-perl/Flowd.xs
++++ b/Flowd-perl/Flowd.xs
+@@ -70,7 +70,7 @@ void deserialise(...)
+ buf = (char *)SvPV(ST(0), len);
+ r = store_flow_deserialise(buf, len, &flow, ebuf, sizeof(ebuf));
+ if (r != STORE_ERR_OK)
+- croak(ebuf);
++ croak("%s", ebuf);
+
+ fields = ntohl(flow.hdr.fields);
+
diff --git a/testing/fluent-bit/APKBUILD b/testing/fluent-bit/APKBUILD
new file mode 100644
index 00000000000..c7387096b67
--- /dev/null
+++ b/testing/fluent-bit/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: wener <wenermail@gmail.com>
+# Maintainer: wener <wenermail@gmail.com>
+pkgname=fluent-bit
+pkgver=2.1.10
+pkgrel=0
+pkgdesc="Fast and Lightweight Log processor and forwarder"
+url="https://fluentbit.io/"
+# riscv64: does not support bundled luajit
+# arm: doesn't build
+arch="all !armhf !armv7 !ppc64le !s390x !riscv64"
+license="Apache-2.0"
+# XXX:
+# wamr, sqlite, rdkafka, c-ares, luajit are bundled
+makedepends="
+ bison
+ cmake
+ flex
+ gtest-dev
+ linux-headers
+ musl-fts-dev
+ openssl-dev
+ yaml-dev
+ zlib-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-openrc
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/fluent/fluent-bit/archive/v$pkgver.tar.gz
+ fluent-bit.initd
+ chunkio-static-lib-fts.patch
+ exclude-luajit.patch
+ xsi-strerror.patch
+ "
+# enable check when this solved - https://github.com/fluent/fluent-bit/issues/2464#issuecomment-673280055
+options="!check"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ # default CORE_STACK_SIZE=((3 * PTHREAD_STACK_MIN) / 2)=3072 is invalid
+ # based on https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/configuration-file
+ # set default to 24576
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DFLB_CORO_STACK_SIZE=24576 \
+ -DFLB_TESTS_INTERNAL=Yes \
+ -DFLB_TLS=Yes \
+ -DFLB_HTTP_SERVER=Yes \
+ $CMAKE_CROSSOPTS .
+ make -C build
+}
+
+check() {
+ CTEST_OUTPUT_ON_FAILURE=1 make -C build test
+}
+
+package() {
+ make -C build DESTDIR="$pkgdir" install
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+
+ mv "$pkgdir"/usr/etc/* "$pkgdir"/etc
+}
+
+sha512sums="
+55caefa81cdeaf293b727829383c6eaa75bc2f8b8c61ebe15e1478c66033921fde6e50c39fc8c39a7d2d93d03892f709daf4d1b6caacf586133de5268de10299 fluent-bit-2.1.10.tar.gz
+e17c8b7d09b524855167baf3a3766c5420181370cdd1d21133e7c18d7316b224a6c0aa240be26d3d0443d91247a82759161f7ad12f142b4b84924da5694a61e6 fluent-bit.initd
+6bd7d8b4da93a17f29b6ea1e0286ea226d0e376024284741110936779b3229bd8d6cd03ffbdc5d3b4842294e7f32a888de0dd16b0851b65d91b062ca58530ea0 chunkio-static-lib-fts.patch
+e3308a8377fb8ba496415b7a31e9e022e5aa9965d27a0c33ea5166a29049b72cb364bbcdf9d8611ef3407b0968f9bd4adff12cdb39728bbebd382710e5bc75d0 exclude-luajit.patch
+d61f30344af997f126486fa5b34cd3fbfe88bfc9aea394a8c60d0206f4db8db998eadf637a3a581b89512411c1e7980c414e236e455d5e2b889d20a556ee6577 xsi-strerror.patch
+"
diff --git a/testing/fluent-bit/chunkio-static-lib-fts.patch b/testing/fluent-bit/chunkio-static-lib-fts.patch
new file mode 100644
index 00000000000..c3700a4a0a7
--- /dev/null
+++ b/testing/fluent-bit/chunkio-static-lib-fts.patch
@@ -0,0 +1,10 @@
+--- a/lib/chunkio/src/CMakeLists.txt
++++ b/lib/chunkio/src/CMakeLists.txt
+@@ -12,6 +12,7 @@
+ )
+
+ set(libs cio-crc32)
++set(libs ${libs} fts)
+
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ set(src
diff --git a/testing/fluent-bit/exclude-luajit.patch b/testing/fluent-bit/exclude-luajit.patch
new file mode 100644
index 00000000000..b4df3383283
--- /dev/null
+++ b/testing/fluent-bit/exclude-luajit.patch
@@ -0,0 +1,12 @@
+otherwise it installs an unused /usr/bin/luajit ....
+-0
+diff --git a/cmake/luajit.cmake b/cmake/luajit.cmake
+index b6774eb..f8042ae 100644
+--- a/cmake/luajit.cmake
++++ b/cmake/luajit.cmake
+@@ -1,4 +1,4 @@
+ # luajit cmake
+ option(LUAJIT_DIR "Path of LuaJIT 2.1 source dir" ON)
+ set(LUAJIT_DIR ${FLB_PATH_ROOT_SOURCE}/${FLB_PATH_LIB_LUAJIT})
+-add_subdirectory("lib/luajit-cmake")
++add_subdirectory("lib/luajit-cmake" EXCLUDE_FROM_ALL)
diff --git a/testing/fluent-bit/fluent-bit.initd b/testing/fluent-bit/fluent-bit.initd
new file mode 100644
index 00000000000..84c5806e381
--- /dev/null
+++ b/testing/fluent-bit/fluent-bit.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+: ${cfgfile:="/etc/fluent-bit/fluent-bit.conf"}
+
+name=fluent-bit
+command="/usr/bin/fluent-bit"
+command_args="-c $cfgfile $fluentbit_opts"
+command_background="yes"
+pidfile="/run/fluent-bit.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/fluent-bit/xsi-strerror.patch b/testing/fluent-bit/xsi-strerror.patch
new file mode 100644
index 00000000000..527de20992a
--- /dev/null
+++ b/testing/fluent-bit/xsi-strerror.patch
@@ -0,0 +1,15 @@
+--- a/src/flb_network.c
++++ b/src/flb_network.c
+@@ -523,9 +523,10 @@
+ }
+
+ /* Connection is broken, not much to do here */
+- str = strerror_r(error, so_error_buf, sizeof(so_error_buf));
++ /* XXX: XSI */
++ int _err = strerror_r(error, so_error_buf, sizeof(so_error_buf));
+ flb_error("[net] TCP connection failed: %s:%i (%s)",
+- u->tcp_host, u->tcp_port, str);
++ u->tcp_host, u->tcp_port, so_error_buf);
+ return -1;
+ }
+ }
diff --git a/testing/fluffychat/APKBUILD b/testing/fluffychat/APKBUILD
new file mode 100644
index 00000000000..cd6d7571f2a
--- /dev/null
+++ b/testing/fluffychat/APKBUILD
@@ -0,0 +1,323 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=fluffychat
+pkgver=1.19.1
+pkgrel=0
+pkgdesc="Open source, nonprofit and cute Matrix messenger app"
+url="https://fluffychat.im/"
+arch="aarch64 x86_64" # flutter
+license="AGPL-3.0-only"
+# XXX: dart ffi does not generate from our headers,
+# works on hardcoded sonames
+# zenity: pub/file_picker
+depends="
+ so:libolm.so.3
+ so:libsqlite3.so.0
+ zenity
+ "
+makedepends="
+ alsa-lib-dev
+ aom-dev
+ brotli-dev
+ crc32c-dev
+ clang
+ dav1d-dev
+ ffmpeg-dev
+ flutter-desktop
+ fontconfig-dev
+ freetype-dev
+ glib-dev
+ gn
+ harfbuzz-dev
+ icu-dev
+ jsoncpp-dev
+ libavif-dev
+ libdrm-dev
+ libevent-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libsecret-dev
+ libwebp-dev
+ libvpx-dev
+ libxml2-dev
+ libxslt-dev
+ lld
+ llvm
+ olm-dev
+ openh264-dev
+ opus-dev
+ patchelf
+ pipewire-dev
+ pulseaudio-dev
+ re2-dev
+ snappy-dev
+ woff2-dev
+ zlib-dev
+ "
+_webrtcver=b951613befee9e718798dad97c98a299e1518328
+_fwwebrtcver=1cb24a45af87a99a513f72951673fcf814a5ecb0
+source="
+ https://github.com/krille-chan/fluffychat/archive/${_rev:-"refs/tags/v$pkgver"}/fluffychat-${_rev:-v"$pkgver"}.tar.gz
+ https://ab-sn.lnl.gay/fwebrtc-$_webrtcver.tar.zst
+ https://github.com/webrtc-sdk/libwebrtc/archive/$_fwwebrtcver/fwwebrtc-$_fwwebrtcver.tar.gz
+
+ system-flutter.patch
+ no-werror.patch
+
+ wrapper.patch.webrtc
+ gcc13.patch.webrtc
+ use-alpine-target.patch.webrtc
+ no-upgrade-debug-info.patch.webrtc
+ toolhack.patch.webrtc
+ sqlite-soname.patch.noauto
+ still-hive.patch
+ no-sqlcipher.patch.noauto
+
+ fluffychat.desktop
+ "
+[ "$_rev" = "" ] || builddir="$srcdir/fluffychat-$_rev"
+# net: pub dependencies
+# !check: no tests
+options="net !check"
+
+case "$CARCH" in
+ aarch64) _flutter_arch="arm64" ;;
+ x86_64) _flutter_arch="x64" ;;
+esac
+
+export PUB_CACHE="$srcdir/pub_cache"
+
+export CFLAGS="${CFLAGS/-g/} -O2 -Wno-error -Wno-unknown-warning-option -Wno-unused-command-line-argument"
+export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-error -Wno-unknown-warning-option -Wno-unused-command-line-argument"
+
+export CC=clang
+export CXX=clang++
+export AR=llvm-ar
+export NM=llvm-nm
+export LD=clang++
+
+# webrtc
+snapshot() {
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ # cleanup if retrying
+ rm -rf src
+ rm -rf fwebrtc-$_webrtcver
+ rm -f fwebrtc-$_webrtcver.tar
+ rm -f fwebrtc-$_webrtcver.tar.zst
+
+ echo "
+solutions = [{
+ 'name': 'src',
+ 'url': 'https://github.com/webrtc-sdk/webrtc.git@$_webrtcver',
+}]
+target_cpu = ['x64', 'arm64']
+target_cpu_only = True
+" > .gclient
+
+ gclient sync --no-history --nohooks --tpot-cipd-ignore-platformed
+
+ # needed DEPS hooks
+ python3 'src/build/landmines.py' --landmine-scripts 'src/tools_webrtc/get_landmines.py' --src-dir 'src'
+ python3 'src/build/util/lastchange.py' -o 'src/build/util/LASTCHANGE'
+
+ for elf in $(scanelf -RA -F "%F" src); do
+ rm -f "$elf"
+ done
+
+ find src -type f -path 'test_data' -delete
+ find src -type f -path 'testdata' -delete
+ find src -type f -path 'ChangeLog*' -delete
+ rm -rf third_party/blink/web_tests
+
+ mv src fwebrtc-$_webrtcver
+
+ msg "generating tarball.."
+ tar -cf fwebrtc-$_webrtcver.tar \
+ --exclude-backups \
+ --exclude-caches-all \
+ --exclude-vcs \
+ fwebrtc-$_webrtcver
+
+ zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv fwebrtc-$_webrtcver.tar
+}
+
+prepare() {
+ default_prepare
+
+ msg "Applying more patches"
+ for x in $source; do
+ case "$x" in
+ *.patch.webrtc)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/fwebrtc-$_webrtcver
+ ;;
+ esac
+ done
+
+ (
+ cd "$srcdir"/fwebrtc-$_webrtcver
+
+ ln -sv "$srcdir"/libwebrtc-$_fwwebrtcver libwebrtc
+
+ local use_system="
+ brotli
+ crc32c
+ dav1d
+ ffmpeg
+ fontconfig
+ freetype
+ harfbuzz-ng
+ icu
+ jsoncpp
+ libaom
+ libavif
+ libdrm
+ libevent
+ libjpeg
+ libpng
+ libvpx
+ libwebp
+ libxml
+ libxslt
+ openh264
+ opus
+ re2
+ snappy
+ woff2
+ zlib
+ "
+ for _lib in $use_system libjpeg_turbo; do
+ msg "Removing buildscripts for system provided $_lib"
+ find . -type f -path "*third_party/$_lib/*" \
+ \! -path "*third_party/$_lib/chromium/*" \
+ \! -path "*third_party/$_lib/google/*" \
+ \! -path './third_party/libxml/*' \
+ \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
+ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+ -delete
+ done
+
+ msg "Replacing gn files"
+ python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+ $use_system
+
+ # allow system dependencies in "official builds"
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py
+
+ mkdir path
+ ln -sv /usr/bin/python3 path/vpython3
+
+ # requires py3-setuptools to always print 0...
+ echo 'print(0)' > build/mac/should_use_hermetic_xcode.py
+ )
+
+
+ flutter pub get --enforce-lockfile
+
+ # if there is a binary in the pub_cache, we sure did not build it.
+ for elf in $(scanelf -RA -F "%F" "$PUB_CACHE"); do
+ rm -f "$elf"
+ done
+
+ patch -p1 -d "$srcdir" -i "$srcdir"/sqlite-soname.patch.noauto
+ rm "$PUB_CACHE"/hosted/pub.dev/sqlite3-*/assets/sqlite3.h
+ patch -p1 -d "$srcdir" -i "$srcdir"/no-sqlcipher.patch.noauto
+
+ # use our build of the webrtc wrapper
+ _fvwrtc="$(echo "$PUB_CACHE"/hosted/pub.dev/flutter_webrtc-*/third_party/libwebrtc)"
+ rm -rf $_fvwrtc
+ mkdir -p $_fvwrtc
+ ln -sv "$srcdir"/fwebrtc-$_webrtcver/kut $_fvwrtc/lib
+ ln -sv "$srcdir"/libwebrtc-$_fwwebrtcver/include $_fvwrtc/include
+}
+
+build() {
+ (
+ cd "$srcdir"/fwebrtc-$_webrtcver
+
+ # shellcheck disable=2089
+ local webrtc_args="
+ build_with_mozilla=false
+ chrome_pgo_phase=0
+ clang_use_chrome_plugins=false
+ clang_base_path=\"/usr\"
+ custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
+ is_cfi=false
+ is_clang=true
+ is_debug=false
+ is_official_build=true
+ host_toolchain=\"//build/toolchain/linux/unbundle:default\"
+ libwebrtc_desktop_capture=false
+ proprietary_codecs=true
+ rtc_build_examples=false
+ rtc_build_tools=false
+ rtc_enable_protobuf=false
+ rtc_enable_sctp=false
+ rtc_include_tests=false
+ rtc_include_ilbc=false
+ rtc_libvpx_build_vp9=true
+ rtc_link_pipewire=true
+ rtc_use_pipewire=true
+ rtc_use_x11=false
+ symbol_level=0
+ use_custom_libcxx=false
+ use_sysroot=false
+ "
+
+ msg "Building libwebrtc"
+ # shellcheck disable=2090,2116
+ gn gen out --args="$(echo $webrtc_args)"
+ ninja -C out libwebrtc
+
+ mkdir -p kut/linux-$_flutter_arch
+ cp -v out/libwebrtc.so kut/linux-$_flutter_arch/libwebrtc.so
+ )
+
+ flutter build linux -v --release
+
+ patchelf --set-rpath '$ORIGIN/lib' build/linux/"$_flutter_arch"/release/bundle/$pkgname
+ for _elf in build/linux/"$_flutter_arch"/release/bundle/lib/lib*.so; do
+ # running patchelf on libapp (the AOT snapshot of the whole Dart codebase)
+ # breaks it with "[FATAL:flutter/runtime/dart_vm_initializer.cc(89)]
+ # Error while initializing the Dart VM: Invalid vm isolate snapshot seen".
+ #
+ # it has no rpath and only links to libc soname anyway. 🤷â€â™€ï¸
+ [ "$(basename "$_elf")" != "libapp.so" ] || continue
+
+ patchelf --set-rpath '$ORIGIN' "$_elf"
+ done
+}
+
+package() {
+ local bundle="$builddir"/build/linux/$_flutter_arch/release/bundle
+
+ install -Dm755 "$bundle"/$pkgname "$pkgdir"/usr/lib/$pkgname/$pkgname
+ cp -rv "$bundle"/lib "$pkgdir"/usr/lib/$pkgname/lib
+ cp -rv "$bundle"/data "$pkgdir"/usr/lib/$pkgname/data
+
+ mkdir -p "$pkgdir"/usr/bin
+ ln -sv /usr/lib/$pkgname/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ install -Dm644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -Dm644 assets/logo.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/im.fluffychat.Fluffychat.svg
+}
+
+sha512sums="
+102428eea072932de1d76726daca6d481a927403f63b6d7c87e742207192c0f11055377c9ebee8bfab149f06383a19666974d8a65857ccf96131facf56437e2b fluffychat-v1.19.1.tar.gz
+749cadd3309ba1c18203989bf3986944a4279d654c68cc6f3a4902719806004911e114fb2c5061ceaec8220474cd3f7d76a4db870202494d36d266934b6cd9e0 fwebrtc-b951613befee9e718798dad97c98a299e1518328.tar.zst
+7fc9a0ae14d396a9b6dbd969eaa060eff58e659d4c2d5ef6201bf29d64fbbf6b54d1927f8997c02803ee799eb34aa13d48a4502be291c1d17b0cbbd083998cb7 fwwebrtc-1cb24a45af87a99a513f72951673fcf814a5ecb0.tar.gz
+91014708ab7bb81518ce93db0612209d6479dfa503064d9e9d3186cd5e861165a3f63e286d271d5aac8a1d676868fc3acf51648ac01c16a215062a317ccb6623 system-flutter.patch
+1d2b7d28a09e26ed48d89aa5f5dffb738ba367fa2760b12980225239705e16fa1ec89901d7aecf26c8527de721a5f50f50cc77ea009cd5f25f219d1af8730ed8 no-werror.patch
+158360223539c6d80b32f17d2277473292e579255609a231719d1eaddb5f258fe36421801e5ce0fedb6fe86e01e46a7a77421abc800bdfaad59ffdcfe5273aa2 wrapper.patch.webrtc
+70251f951c4477e602c2e21a1a092e48e47133968fbfeb369178bc888b69c91027560ebb2c925d6b25a6b2ba6a6007523c2c42fa46fc7fbc27e727793ab52034 gcc13.patch.webrtc
+d9988e1c381030a79d0fa6567e098ee94234b66af96dbf2d0a2af7a33bdd98d4dd08bbe2eeaf4f08e44f1d22319464f9b0ed5bc96cdb76c238086f9ef4af6b76 use-alpine-target.patch.webrtc
+72fc71028a46f23c4d494eae22e100f048cd04071518532d5a839642d19cf8718592e7b93b4d15d40502c1a5e88d55cb3212c0edec8a3598f2d9fb2cb4f287c5 no-upgrade-debug-info.patch.webrtc
+2db3cf7759bd6902e0ce4d64441318bee7436aa272501113a3b6f0ebcf810d72760f875a3bd309fd612d6d4fde9e92e7319fa053fd0f34a793cfa026ced08fc5 toolhack.patch.webrtc
+d203a992da2f15beafb7bb1cff12bd2e365d81c0e3bd2c8caee4d34df64ba545aeae1f0d38df095b6859065065cdabe69e1e3fa89524083ae71b0a2abda2914b sqlite-soname.patch.noauto
+371859a0315ea7d79ab8fa749994f90445f18cec7c5a516fb69e264a94517d498e5bf2e3bfdd4e1257b9a82c3d065d41163a032a62f665d60713751586d470ec still-hive.patch
+7ac42cd22ea4f422c788d98ee5a9bc04a3a5d6687fa3f39f61330c369d78ef6446bf99f8f088d063d977634991c0948a6ec2026cf817d6f54314ed57131d89a0 no-sqlcipher.patch.noauto
+c4b3c2ab656da666623a8269ae47d841bfa58153097106efbef7b7895e7845bfed0513442ac355b42b6804b4a68c597079bf4147e72c57a1906ba5b65e3150f8 fluffychat.desktop
+"
diff --git a/testing/fluffychat/fluffychat.desktop b/testing/fluffychat/fluffychat.desktop
new file mode 100644
index 00000000000..578126c3e8e
--- /dev/null
+++ b/testing/fluffychat/fluffychat.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Fluffychat
+Icon=im.fluffychat.Fluffychat
+Exec=fluffychat %U
+Categories=Network;InstantMessaging;Chat;VideoConference;
+Keywords=Matrix;Chat;Messenger;Social
+X-Purism-FormFactor=Workstation;Mobile;
diff --git a/testing/fluffychat/gcc13.patch.webrtc b/testing/fluffychat/gcc13.patch.webrtc
new file mode 100644
index 00000000000..7acc82d104f
--- /dev/null
+++ b/testing/fluffychat/gcc13.patch.webrtc
@@ -0,0 +1,10 @@
+--- ./rtc_base/system/file_wrapper.h.orig
++++ ./rtc_base/system/file_wrapper.h
+@@ -12,6 +12,7 @@
+ #define RTC_BASE_SYSTEM_FILE_WRAPPER_H_
+
+ #include <stddef.h>
++#include <stdint.h>
+ #include <stdio.h>
+
+ #include <string>
diff --git a/testing/fluffychat/no-sqlcipher.patch.noauto b/testing/fluffychat/no-sqlcipher.patch.noauto
new file mode 100644
index 00000000000..c5e4b3ecce2
--- /dev/null
+++ b/testing/fluffychat/no-sqlcipher.patch.noauto
@@ -0,0 +1,49 @@
+--- ./pub_cache/hosted/pub.dev/sqlcipher_flutter_libs-0.6.1/linux/CMakeLists.txt.orig
++++ ./pub_cache/hosted/pub.dev/sqlcipher_flutter_libs-0.6.1/linux/CMakeLists.txt
+@@ -7,14 +7,9 @@
+ set(PLUGIN_NAME "sqlcipher_flutter_libs_plugin")
+
+ option(OPENSSL_USE_STATIC_LIBS "Whether to prefer linking to OpenSSL statically" ON)
+-find_package(OpenSSL REQUIRED)
+
+-# Using a prebuilt sqlcipher amalgation because building it requires TCL/TK which no one has.
+-file(DOWNLOAD "https://storage.googleapis.com/simon-public-euw3/assets/sqlcipher/v4_5_6.c" "${CMAKE_CURRENT_BINARY_DIR}/sqlcipher.c" EXPECTED_HASH SHA512=939ae692239adc0581211a37ed9ffa8b37c8f771c830977ecb06dc6accc4c3db767ce6abeaf91133815e2ae837785affa92f4c95b2e68cb6d563bd761f3e0cb1)
+-
+ add_library(${PLUGIN_NAME} SHARED
+ "sqlite3_flutter_libs_plugin.cc"
+- "${CMAKE_CURRENT_BINARY_DIR}/sqlcipher.c"
+ )
+
+ # Not applying the standard settings because we compile sqlite3
+@@ -27,30 +22,4 @@
+ target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_PLUGIN_IMPL)
+ target_include_directories(${PLUGIN_NAME} INTERFACE
+ "${CMAKE_CURRENT_SOURCE_DIR}/include")
+-target_link_libraries(${PLUGIN_NAME} PRIVATE flutter OpenSSL::Crypto)
+-
+-# Note: Keep in sync with https://github.com/simolus3/sqlite-native-libraries/blob/master/sqlite3-native-library/cpp/CMakeLists.txt
+-# SQLITE_HAS_CODEC is required for sqlcipher
+-target_compile_definitions(${PLUGIN_NAME} PRIVATE
+- SQLITE_HAS_CODEC
+- SQLITE_DQS=0
+- SQLITE_THREADSAFE=1
+- SQLITE_DEFAULT_MEMSTATUS=0
+- SQLITE_TEMP_STORE=2
+- SQLITE_MAX_EXPR_DEPTH=0
+- SQLITE_OMIT_AUTHORIZATION
+- SQLITE_OMIT_DECLTYPE
+- SQLITE_OMIT_DEPRECATED
+- SQLITE_OMIT_GET_TABLE
+- SQLITE_OMIT_LOAD_EXTENSION
+- SQLITE_OMIT_PROGRESS_CALLBACK
+- SQLITE_OMIT_SHARED_CACHE
+- SQLITE_OMIT_TCL_VARIABLE
+- SQLITE_OMIT_TRACE
+- SQLITE_USE_ALLOCA
+- SQLITE_UNTESTABLE
+- SQLITE_HAVE_ISNAN
+- SQLITE_ENABLE_FTS5
+- SQLITE_ENABLE_JSON1
+- SQLITE_ENABLE_RTREE
+-)
++target_link_libraries(${PLUGIN_NAME} PRIVATE flutter)
diff --git a/testing/fluffychat/no-upgrade-debug-info.patch.webrtc b/testing/fluffychat/no-upgrade-debug-info.patch.webrtc
new file mode 100644
index 00000000000..04a57fd5197
--- /dev/null
+++ b/testing/fluffychat/no-upgrade-debug-info.patch.webrtc
@@ -0,0 +1,11 @@
+--- ./build/config/compiler/BUILD.gn.orig
++++ ./build/config/compiler/BUILD.gn
+@@ -732,7 +732,7 @@
+ # toolchain has this flag.
+ # We only use one version of LLVM within a build so there's no need to
+ # upgrade debug info, which can be expensive since it runs the verifier.
+- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
++ #ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
+ }
+ }
+
diff --git a/testing/fluffychat/no-werror.patch b/testing/fluffychat/no-werror.patch
new file mode 100644
index 00000000000..ec8df348612
--- /dev/null
+++ b/testing/fluffychat/no-werror.patch
@@ -0,0 +1,11 @@
+--- ./linux/CMakeLists.txt.orig
++++ ./linux/CMakeLists.txt
+@@ -41,7 +41,7 @@
+ # of modifying this function.
+ function(APPLY_STANDARD_SETTINGS TARGET)
+ target_compile_features(${TARGET} PUBLIC cxx_std_14)
+- target_compile_options(${TARGET} PRIVATE -Wall -Werror)
++ target_compile_options(${TARGET} PRIVATE -Wall)
+ target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
+ target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
+ endfunction()
diff --git a/testing/fluffychat/sqlite-soname.patch.noauto b/testing/fluffychat/sqlite-soname.patch.noauto
new file mode 100644
index 00000000000..a6ab1f6273e
--- /dev/null
+++ b/testing/fluffychat/sqlite-soname.patch.noauto
@@ -0,0 +1,11 @@
+--- ./pub_cache/hosted/pub.dev/sqlite3-2.3.0/lib/src/ffi/load_library.dart.orig
++++ ./pub_cache/hosted/pub.dev/sqlite3-2.3.0/lib/src/ffi/load_library.dart
+@@ -49,7 +49,7 @@
+ }
+
+ // Fall-back to system's libsqlite3 otherwise.
+- return DynamicLibrary.open('libsqlite3.so');
++ return DynamicLibrary.open('libsqlite3.so.0');
+ } else if (Platform.isIOS) {
+ try {
+ return DynamicLibrary.open('sqlite3.framework/sqlite3');
diff --git a/testing/fluffychat/still-hive.patch b/testing/fluffychat/still-hive.patch
new file mode 100644
index 00000000000..fd5a6d758e0
--- /dev/null
+++ b/testing/fluffychat/still-hive.patch
@@ -0,0 +1,90 @@
+From 1026d4c721546ff88a725a1605350e1d14aaef36 Mon Sep 17 00:00:00 2001
+From: The one with the braid <info@braid.business>
+Date: Wed, 10 Apr 2024 18:07:46 +0200
+Subject: [PATCH] fix: migrate back to Hive on Linux
+
+Signed-off-by: The one with the braid <info@braid.business>
+---
+ lib/utils/client_manager.dart | 7 +++-
+ .../builder.dart | 34 +++++++++++++------
+ 2 files changed, 30 insertions(+), 11 deletions(-)
+
+diff --git a/lib/utils/client_manager.dart b/lib/utils/client_manager.dart
+index f798e8737..155cd48ed 100644
+--- a/lib/utils/client_manager.dart
++++ b/lib/utils/client_manager.dart
+@@ -22,6 +22,7 @@ import 'matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart';
+
+ abstract class ClientManager {
+ static const String clientNamespace = 'im.fluffychat.store.clients';
++
+ static Future<List<Client>> getClients({
+ bool initialize = true,
+ required SharedPreferences store,
+@@ -113,7 +114,11 @@ abstract class ClientManager {
+ },
+ logLevel: kReleaseMode ? Level.warning : Level.verbose,
+ databaseBuilder: flutterMatrixSdkDatabaseBuilder,
+- legacyDatabaseBuilder: FlutterHiveCollectionsDatabase.databaseBuilder,
++ // workaround : migrate back from SQLite to Hive on Linux
++ // Related : https://github.com/krille-chan/fluffychat/issues/972
++ legacyDatabaseBuilder: PlatformInfos.isLinux
++ ? (client) => flutterMatrixSdkDatabaseBuilder(client, isLegacy: true)
++ : FlutterHiveCollectionsDatabase.databaseBuilder,
+ supportedLoginTypes: {
+ AuthenticationTypes.password,
+ AuthenticationTypes.sso,
+diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart
+index 301d0c6ee..55d7fbedc 100644
+--- a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart
++++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart
+@@ -18,9 +18,15 @@ import 'cipher.dart';
+ import 'sqlcipher_stub.dart'
+ if (dart.library.io) 'package:sqlcipher_flutter_libs/sqlcipher_flutter_libs.dart';
+
+-Future<DatabaseApi> flutterMatrixSdkDatabaseBuilder(Client client) async {
++Future<DatabaseApi> flutterMatrixSdkDatabaseBuilder(
++ Client client, {
++ bool isLegacy = false,
++}) async {
+ MatrixSdkDatabase? database;
+ try {
++ // unless it's the migration builder, always fall back onto Hive on Linux
++ if (PlatformInfos.isLinux && !isLegacy) throw UnimplementedError();
++
+ database = await _constructDatabase(client);
+ await database.open();
+ return database;
+@@ -34,15 +40,23 @@ Future<DatabaseApi> flutterMatrixSdkDatabaseBuilder(Client client) async {
+ ),
+ );
+
+- // Send error notification:
+- final l10n = lookupL10n(PlatformDispatcher.instance.locale);
+- ClientManager.sendInitNotification(
+- l10n.initAppError,
+- l10n.databaseBuildErrorBody(
+- AppConfig.newIssueUrl.toString(),
+- e.toString(),
+- ),
+- );
++ final bool hideErrorMessage = PlatformInfos.isLinux;
++ if (!hideErrorMessage) {
++ // Send error notification:
++ final l10n = lookupL10n(PlatformDispatcher.instance.locale);
++ ClientManager.sendInitNotification(
++ l10n.initAppError,
++ l10n.databaseBuildErrorBody(
++ AppConfig.newIssueUrl.toString(),
++ e.toString(),
++ ),
++ );
++ } else {
++ Logs().w(
++ 'Linux database error using SQfLite. Due to many issues in this implementation, falling back to Hive.',
++ e,
++ );
++ }
+
+ return FlutterHiveCollectionsDatabase.databaseBuilder(client);
+ }
diff --git a/testing/fluffychat/system-flutter.patch b/testing/fluffychat/system-flutter.patch
new file mode 100644
index 00000000000..e8f7270ec9a
--- /dev/null
+++ b/testing/fluffychat/system-flutter.patch
@@ -0,0 +1,15 @@
+--- a/linux/CMakeLists.txt
++++ b/linux/CMakeLists.txt
+@@ -110,12 +110,6 @@
+ install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
+ COMPONENT Runtime)
+
+-install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
+- COMPONENT Runtime)
+-
+-install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
+- COMPONENT Runtime)
+-
+ foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
+ install(FILES "${bundled_library}"
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
diff --git a/testing/fluffychat/toolhack.patch.webrtc b/testing/fluffychat/toolhack.patch.webrtc
new file mode 100644
index 00000000000..4028fe2d896
--- /dev/null
+++ b/testing/fluffychat/toolhack.patch.webrtc
@@ -0,0 +1,22 @@
+this breaks the clang include path
+--
+--- a/build/config/compiler/BUILD.gn
++++ a/build/config/compiler/BUILD.gn
+@@ -1310,7 +1310,7 @@
+ # paths to the tools it invokes. We don't want this because we don't
+ # really need it and it can mess up the goma cache entries.
+ if (is_clang && (!is_nacl || is_nacl_saigo)) {
+- cflags += [ "-no-canonical-prefixes" ]
++ #cflags += [ "-no-canonical-prefixes" ]
+
+ # Same for links: Let the compiler driver invoke the linker
+ # with a relative path and pass relative paths to built-in
+@@ -1319,7 +1319,7 @@
+ # We don't link on goma, so this change is just for cleaner
+ # internal linker invocations, for people who work on the build.
+ if (!is_win) {
+- ldflags += [ "-no-canonical-prefixes" ]
++ #ldflags += [ "-no-canonical-prefixes" ]
+ }
+ }
+ }
diff --git a/testing/fluffychat/use-alpine-target.patch.webrtc b/testing/fluffychat/use-alpine-target.patch.webrtc
new file mode 100644
index 00000000000..948bce889f7
--- /dev/null
+++ b/testing/fluffychat/use-alpine-target.patch.webrtc
@@ -0,0 +1,15 @@
+--- ./build/config/compiler/BUILD.gn.orig
++++ ./build/config/compiler/BUILD.gn
+@@ -1022,8 +1022,8 @@
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
+ !(is_chromeos_lacros && is_chromeos_device)) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ cflags += [ "--target=aarch64-alpine-linux-musl" ]
++ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
+ }
+ if (is_high_end_android) {
+ cflags += [ "-march=armv8-a+lse" ]
+
+
diff --git a/testing/fluffychat/wrapper.patch.webrtc b/testing/fluffychat/wrapper.patch.webrtc
new file mode 100644
index 00000000000..145b64842c3
--- /dev/null
+++ b/testing/fluffychat/wrapper.patch.webrtc
@@ -0,0 +1,14 @@
+...yeah https://github.com/webrtc-sdk/libwebrtc?tab=readme-ov-file#modify-webrtcs-srcbuildgn-file-and-add-libwebrtc-to-groupdefault
+diff --git a/BUILD.gn b/BUILD.gn
+index e60d7dd0bd..b9b6acab8b 100644
+--- a/BUILD.gn
++++ b/BUILD.gn
+@@ -29,7 +29,7 @@ if (!build_with_chromium) {
+ # 'ninja default' and then 'ninja all', the second build should do no work.
+ group("default") {
+ testonly = true
+- deps = [ ":webrtc" ]
++ deps = [ ":webrtc", "//libwebrtc" ]
+ if (rtc_build_examples) {
+ deps += [ "examples" ]
+ }
diff --git a/testing/flutter/APKBUILD b/testing/flutter/APKBUILD
new file mode 100644
index 00000000000..e8c722a9596
--- /dev/null
+++ b/testing/flutter/APKBUILD
@@ -0,0 +1,505 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=flutter
+# upgrade checklist: https://md.sdomi.pl/Q-ECZTJ2Qqyp3ahfJuYSBw
+pkgver=3.19.4
+pkgrel=0
+pkgdesc="Cross-platform apps, built in Omelas"
+url="https://flutter.dev/"
+arch="aarch64 x86_64" # officially supported for linux desktop
+license="BSD-3-Clause"
+_dartver=3.3.2
+_depends_common="
+ bash
+ clang
+ cmake
+ dart-sdk~=$_dartver
+ git
+ gtk+3.0-dev
+ pkgconf
+ samurai
+ "
+makedepends="
+ $_depends_common
+ freetype-dev
+ gn
+ harfbuzz-dev
+ icu-dev
+ jpeg-dev
+ libpng-dev
+ llvm
+ python3
+ spirv-tools-dev
+ sqlite-dev
+ zlib-dev
+ zstd
+ "
+subpackages="
+ $pkgname-common
+ $pkgname-desktop
+ $pkgname-developer
+ $pkgname-glfw
+ $pkgname-gtk
+ $pkgname-tool
+ $pkgname-tool-developer:tool_developer
+ "
+
+case "$pkgver" in
+ *.*.*_alpha*)
+ _canonver="${pkgver/_alpha/-}"
+ _canonver="${_canonver/-r/.}.dev"
+ _channel=master
+ ;;
+ *.*.*_beta*)
+ _canonver="${pkgver/_beta/-}"
+ _canonver="${_canonver/-r/.}.beta"
+ _channel=beta
+ ;;
+ *.*.*_pre*)
+ _canonver="${pkgver/_pre/-}"
+ _canonver="${_canonver/-r/.}.pre"
+ _channel=master
+ ;;
+ *.*.*)
+ _canonver="$pkgver"
+ _channel=stable
+ ;;
+esac
+
+case "$_dartver" in
+ *.*.*_alpha*)
+ _dartcanonver="${_dartver/_alpha/-}"
+ _dartcanonver="${_dartcanonver/-r/.}.dev"
+ ;;
+ *.*.*_beta*)
+ _dartcanonver="${_dartver/_beta/-}"
+ _dartcanonver="${_dartcanonver/-r/.}.beta"
+ ;;
+ *.*.*)
+ _dartcanonver="$_dartver"
+ ;;
+esac
+
+_enginever=a5c24f538d05aaf66f7972fb23959d8cafb9f95a
+_materialfontsver=3012db47f3130e62f7cc0beabff968a33cbec8d8
+_gradlewver=fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa
+options="!check" # idk no attempt to build tests even with --enable-unittests
+source="
+ https://github.com/flutter/flutter/archive/refs/tags/$_canonver/flutter-$_canonver.tar.gz
+ https://ab-sn.lnl.gay/flutter-engine-$_enginever.tar.zst
+ https://ab-sn.lnl.gay/dart-sdk-$_dartcanonver.tar.zst
+ fonts-$_materialfontsver.zip.noauto::https://storage.googleapis.com/flutter_infra_release/flutter/fonts/$_materialfontsver/fonts.zip
+ gradle-wrapper-$_gradlewver.tar.gz.noauto::https://storage.googleapis.com/flutter_infra_release/gradle-wrapper/$_gradlewver/gradle-wrapper.tgz
+
+ alpine-target.patch
+ doctor.patch
+ no-lock.patch
+ no-runtime-download.patch
+ opt-in-analytics.patch
+ unbundle.patch
+ version.patch
+
+ pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch
+
+ git-revision.patch.engine
+ target-musl.patch.engine
+ musl-no-execinfo.patch.engine
+ musl-no-mallinfo.patch.engine
+ no-vpython.patch.engine
+ shared-libcxx.patch.engine
+ libstdc++13.patch.engine
+ system-icu.patch.engine
+ unbundle.patch.engine
+
+ flutter
+ "
+builddir="$srcdir/flutter-$_canonver"
+
+export PUB_CACHE="$srcdir/flutter-$_canonver/pub_cache"
+
+export CFLAGS="${CFLAGS/-g/} -O2 -Wno-error -Wno-absolute-value -Wno-implicit-float-conversion"
+export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-error -Wno-absolute-value -Wno-implicit-float-conversion"
+
+case "$CARCH" in
+ x86_64) _flutter_arch="x64" ;;
+ aarch64) _flutter_arch="arm64" ;;
+esac
+_out="$srcdir"/flutter-engine-$_enginever/out
+_modes='release profile debug'
+_release_out="$_out"/linux_release_$_flutter_arch
+_debug_out="$_out"/linux_debug_$_flutter_arch
+
+# gclient comes from teapot-tools
+_distbucket="sakamoto/lnl-aports-snapshots/"
+snapshot() {
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ rm -rf src
+ rm -rf flutter-engine-$_enginever
+ rm -f flutter-engine-$_enginever.tar
+ rm -f flutter-engine-$_enginever.tar.zst
+
+ echo "
+solutions = [{
+ 'name': 'src/flutter',
+ 'url': 'https://github.com/flutter/engine.git@$_enginever',
+ 'custom_vars': {
+ 'download_android_deps': False,
+ 'download_dart_sdk': False,
+ },
+}]
+target_cpu = ['x64', 'arm', 'arm64', 'riscv64']
+target_cpu_only = True
+" > .gclient
+
+ gclient sync --no-history --nohooks --tpot-cipd-ignore-platformed
+
+ for elf in $(scanelf -RA -F "%F" src); do
+ rm -f "$elf"
+ done
+
+ mv src flutter-engine-$_enginever
+
+ msg "generating tarball.."
+ tar -cf flutter-engine-$_enginever.tar \
+ --exclude="ChangeLog*" \
+ --exclude=".build-id" \
+ --exclude="third_party/dart" \
+ --exclude-backups \
+ --exclude-caches-all \
+ --exclude-vcs \
+ flutter-engine-$_enginever
+
+ zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv flutter-engine-$_enginever.tar -o "$SRCDEST"/flutter-engine-$_enginever.tar.zst
+ mcli cp "$SRCDEST"/flutter-engine-$_enginever.tar.zst "$_distbucket"
+}
+
+prepare() {
+ dos2unix "$srcdir"/flutter-engine-$_enginever/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
+
+ default_prepare
+
+ msg "Applying more patches"
+ for x in $source; do
+ case "$x" in
+ *.patch.engine)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/flutter-engine-$_enginever
+ ;;
+ esac
+ done
+
+ _dart_installed="$(cat /usr/lib/dart/version)"
+ if [ "$_dart_installed" != "$_dartcanonver" ]; then
+ echo "mismatch between installed dart version ($_dart_installed) and downloaded source code ($_dartcanonver)"
+ exit 1
+ fi
+
+ echo -n "$_canonver" > version
+ mkdir bin/cache
+
+ (
+ cd "$srcdir"/flutter-engine-$_enginever
+
+ # bind dart source code
+ rm -rf third_party/dart
+ ln -s "$srcdir"/dart-sdk-$_dartcanonver third_party/dart
+ # bind dart build
+ mkdir -p third_party/dart/tools/sdks/dart-sdk/
+ ln -s /usr/lib/dart/bin third_party/dart/tools/sdks/dart-sdk/bin
+ mkdir -p flutter/prebuilts/linux-$_flutter_arch/dart-sdk/
+ ln -s /usr/lib/dart/bin flutter/prebuilts/linux-$_flutter_arch/dart-sdk/bin
+
+ mkdir -p flutter/third_party/gn/
+ ln -s /usr/bin/gn flutter/third_party/gn/gn
+
+ # https://github.com/dart-lang/sdk/issues/52295
+ mkdir -p third_party/dart/.git/logs
+ touch third_party/dart/.git/logs/HEAD
+
+ # DEPS hooks
+ python3 third_party/dart/tools/generate_package_config.py
+ python3 third_party/dart/tools/generate_sdk_version_file.py
+ python3 flutter/tools/pub_get_offline.py
+
+ # reusable system library settings
+ local use_system="
+ freetype2
+ harfbuzz
+ icu
+ libjpeg-turbo
+ libpng
+ libwebp
+ sqlite
+ vulkan-SPIRV-Headers
+ vulkan-SPIRV-Tools
+ zlib
+ "
+ for _lib in $use_system vulkan-deps/spirv-headers vulkan-deps/spirv-tools; do
+ msg "Removing buildscripts for system provided $_lib"
+ find . -type f -path "*third_party/$_lib/*" \
+ \! -path "*third_party/$_lib/chromium/*" \
+ \! -path "*third_party/$_lib/google/*" \
+ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+ -delete
+ done
+
+ msg "Replacing gn files"
+ python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+ $use_system
+ )
+
+ (
+ cd packages/flutter_tools/
+
+ # no pubspec.lock in repo (?)
+ dart pub get --no-offline --no-precompile
+ )
+}
+
+build() {
+
+ (
+ cd "$srcdir"/flutter-engine-$_enginever
+
+ # shellcheck disable=2089
+ local gn_args="
+ host_libc=\"musl\"
+ target_libc=\"musl\"
+ use_custom_libcxx=false
+ use_default_linux_sysroot=false
+ "
+ local gnw_args="
+ --no-goma
+ --no-dart-version-git-info
+ --linux
+ --linux-cpu=$_flutter_arch
+ --lto
+ --clang
+ --target-triple=$CTARGET
+ --no-backtrace
+ --no-stripped
+ --prebuilt-dart-sdk
+ --build-glfw-shell
+ --build-engine-artifacts
+ --no-enable-unittests
+ --enable-fontconfig
+ "
+ for _mode in $_modes; do
+ msg "Generating ninja files for engine - $_mode"
+ # shellcheck disable=2090,2116
+ python3 ./flutter/tools/gn \
+ $gnw_args \
+ --runtime-mode="$_mode" \
+ --gn-args="$(echo $gn_args)"
+ msg "Build engine artifacts - $_mode"
+ ninja -C "$_out"/linux_${_mode}_$_flutter_arch artifacts
+ done
+ msg "Build flutter common and product patched sdk"
+ ninja -C "$_release_out" flutter flutter_patched_sdk sky
+ msg "Build debug patched sdk"
+ ninja -C "$_debug_out" flutter_patched_sdk
+ )
+
+ dart --verbosity=error --disable-dart-dev \
+ --snapshot="bin/cache/flutter_tools.snapshot" --snapshot-kind="app-jit" \
+ --packages="packages/flutter_tools/.dart_tool/package_config.json" \
+ --no-enable-mirrors "packages/flutter_tools/bin/flutter_tools.dart"
+
+ sed -Ei 's|'"$PUB_CACHE"'|/usr/lib/flutter/pub_cache|g' packages/flutter_tools/.dart_tool/package_config.json
+
+ # looks like they can get created in the process
+ find "$PUB_CACHE" -name '*.aot' -delete
+}
+
+check() {
+ (
+ cd "$srcdir"/flutter-engine-$_enginever
+
+ ln -s ./linux_debug_$_flutter_arch ./out/linux_debug_unopt
+
+ python3 flutter/testing/run_tests.py --type=engine
+ )
+}
+
+package() {
+ depends="flutter-developer=$pkgver-r$pkgrel"
+
+ # our entrypoint
+ install -Dm755 "$srcdir"/flutter "$pkgdir"/usr/lib/flutter/bin/flutter
+ mkdir -p "$pkgdir"/usr/bin/
+ ln -s ../lib/flutter/bin/flutter "$pkgdir"/usr/bin/flutter
+
+ # our dart
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/cache/
+ ln -s ../../../dart "$pkgdir"/usr/lib/flutter/bin/cache/dart-sdk
+ _devtoolsver="$(grep 'devtools_rev' "$srcdir/dart-sdk-$_dartcanonver/DEPS" | head -n1 | awk -F\" '{ print $4 }')"
+ cat > "$pkgdir"/usr/lib/flutter/bin/cache/flutter.version.json <<EOF
+{
+ "frameworkVersion": "$_canonver",
+ "channel": "$_channel",
+ "repositoryUrl": "https://github.com/flutter/flutter.git",
+ "frameworkRevision": "alpineaports0000000000000000000000000000",
+ "frameworkCommitDate": "2038-01-19 03:14:08",
+ "engineRevision": "$_enginever",
+ "dartSdkVersion": "$_dartcanonver",
+ "devToolsVersion": $(jq '.version' < /usr/lib/dart/bin/resources/devtools/version.json),
+ "flutterVersion": "$_canonver"
+}
+EOF
+
+ # flutter tool (cli) snapshot
+ install -Dm755 "$builddir"/bin/cache/flutter_tools.snapshot "$pkgdir"/usr/lib/flutter/bin/cache/flutter_tools.snapshot
+
+ # patched sdk
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/common
+ cp -r "$_release_out"/flutter_patched_sdk/ \
+ "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk_product
+ cp -r "$_debug_out"/flutter_patched_sdk/ \
+ "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk
+
+ # dart:ui package
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/cache/pkg
+ cp -rL "$_release_out"/gen/dart-pkg/sky_engine "$pkgdir"/usr/lib/flutter/bin/cache/pkg/sky_engine
+
+ # flutter tool and framework packages (as part of sdk)
+ cp -r "$builddir"/packages "$pkgdir"/usr/lib/flutter/packages
+ # needed for flutter analyze 🤨
+ cp -r "$builddir"/dev "$pkgdir"/usr/lib/flutter/dev
+ cp -r "$builddir"/examples "$pkgdir"/usr/lib/flutter/examples
+ # pub dependencies of flutter (part of sdk)
+ cp -r "$PUB_CACHE" "$pkgdir"/usr/lib/flutter/pub_cache
+
+ # version files
+ echo -n "$_canonver" > "$pkgdir"/usr/lib/flutter/version
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/internal/
+ echo -n "$_enginever" > "$pkgdir"/usr/lib/flutter/bin/internal/engine.version
+
+ # fonts
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/material_fonts
+ unzip "$srcdir"/fonts-"$_materialfontsver".zip.noauto \
+ -d "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/material_fonts
+
+ # gradle wrapper (-developer only, needed for flutter create)
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/gradle_wrapper
+ tar xf "$srcdir"/gradle-wrapper-"$_gradlewver".tar.gz.noauto \
+ -C "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/gradle_wrapper
+
+ # build-time artifacts from engine (for use by tool)
+ for _mode in $_modes; do
+ case "$_mode" in
+ debug) _mode_art_name=linux-$_flutter_arch ;;
+ *) _mode_art_name=linux-$_flutter_arch-$_mode ;;
+ esac
+ mkdir -p "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/$_mode_art_name/
+ unzip "$_out"/linux_${_mode}_$_flutter_arch/zip_archives/$_mode_art_name/artifacts.zip \
+ -d "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/$_mode_art_name/
+ done
+ # they are all the same, simply copied from tree
+ cp -r "$_release_out"/flutter_linux/ \
+ "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch/flutter_linux
+ ln -s ../linux-$_flutter_arch/flutter_linux "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch-profile/flutter_linux
+ ln -s ../linux-$_flutter_arch/flutter_linux "$pkgdir"/usr/lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch-release/flutter_linux
+ mkdir -p "$pkgdir"/usr/include/
+ ln -s ../lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch/flutter_linux \
+ "$pkgdir"/usr/include/flutter_linux
+
+ install -Dm755 "$_release_out"/libflutter_linux_gtk.so \
+ "$pkgdir"/usr/lib/libflutter_linux_gtk.so
+
+ # see system-icu.patch.engine
+ ln -s /usr/share/icu/*/icudt*l.dat "$pkgdir"/usr/lib/flutter/icudtl.dat
+
+ install -Dm755 "$_release_out"/libflutter_linux_glfw.so "$pkgdir"/usr/lib/libflutter_linux_glfw.so
+}
+
+common() {
+ pkgdesc="$pkgdesc (parts common to all targets)"
+ depends="$_depends_common"
+
+ amove usr/lib/flutter/bin/cache/artifacts/engine/common
+ amove usr/lib/flutter/bin/cache/artifacts/material_fonts
+ amove usr/lib/flutter/bin/cache/dart-sdk
+ amove usr/lib/flutter/bin/cache/pkg
+ amove usr/lib/flutter/bin/internal
+ amove usr/lib/flutter/packages
+ amove usr/lib/flutter/pub_cache
+}
+
+desktop() {
+ pkgdesc="$pkgdesc (release linux desktop target)"
+ depends="flutter-common=$pkgver-r$pkgrel flutter-glfw=$pkgver-r$pkgrel flutter-gtk=$pkgver-r$pkgrel flutter-tool=$pkgver-r$pkgrel"
+
+ amove usr/include/flutter_linux
+ amove usr/lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch
+ amove usr/lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch-release
+}
+
+developer() {
+ pkgdesc="$pkgdesc (app developer tools)"
+ depends="flutter-desktop=$pkgver-r$pkgrel flutter-tool-developer=$pkgver-r$pkgrel"
+
+ amove usr/lib/flutter/bin/cache/artifacts/engine/linux-$_flutter_arch-profile
+ amove usr/lib/flutter/bin/cache/artifacts/gradle_wrapper
+}
+
+gtk() {
+ pkgdesc="$pkgdesc (GTK embedder runtime)"
+ depends=""
+
+ amove usr/lib/libflutter_linux_gtk.so
+ amove usr/lib/flutter/icudtl.dat
+}
+
+glfw() {
+ pkgdesc="$pkgdesc (GLFW embedder runtime)"
+ depends=""
+
+ amove usr/lib/libflutter_linux_glfw.so
+}
+
+tool() {
+ pkgdesc="$pkgdesc (CLI tool)"
+ depends="flutter-common=$pkgver-r$pkgrel"
+
+ amove usr/bin/flutter
+ amove usr/lib/flutter/bin/cache/flutter_tools.snapshot
+ amove usr/lib/flutter/bin/cache/flutter.version.json
+ amove usr/lib/flutter/bin/flutter
+ amove usr/lib/flutter/version
+}
+
+tool_developer() {
+ pkgdesc="$pkgdesc (CLI tool, parts for app developers)"
+ depends="flutter-tool=$pkgver-r$pkgrel"
+
+ amove usr/lib/flutter/dev
+ amove usr/lib/flutter/examples
+}
+
+sha512sums="
+0596f04bad9ec32dbe258ab5e98585ea52d22d5da917edbfa82462d73599f06827d01cbf520f6b619f60dca423d6cd4c501ab1aef35639626e12222f3fa0d3a9 flutter-3.19.4.tar.gz
+c9c5f9dadb3cfa57d85ce00d24ebc4be0465a5bb46b772b7ec32df97823cee7b8f4b95a8c1a6702c408d1bfc74e7dcbeec1d8f34223db6b492f3b30bc927020b flutter-engine-a5c24f538d05aaf66f7972fb23959d8cafb9f95a.tar.zst
+f5521b4f779b9e657e351734af0a845cfa83fada99a65896d812643ed80467892c6bb4127d687f5ac6e684e7efd1c7eaf41dfed696dd69486897b29a6c9a9b42 dart-sdk-3.3.2.tar.zst
+604f9a256fb1ec8c1b3eb6636baa97f195012b89b68197aef28104ed59dbcb70bde4fc1c7e154018999beabda160b60fa1378bcc1cd1ebe71c79071f40ebb26f fonts-3012db47f3130e62f7cc0beabff968a33cbec8d8.zip.noauto
+fcce6b1659f3a4ee7849bf7f65a9b8e9b3046fc0cfae70d364efabbff2d6c1ed41e6e9009e5fabc522117cbd2f92c5c664f64426e2606fce6b69d9960dd6ca63 gradle-wrapper-fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa.tar.gz.noauto
+a7d6e459a8884bd2b7083b15e6d113576e454c68feba8fcf467c6d288e6abca656a1e669eee2b9973d0b30a1dfbbd736d8ee65292d42bbd832059703b7067dd8 alpine-target.patch
+a9db5df026cf641728f744ffd3428db9cf3918718233c707fd154a88b321c4a7af8e41ac6c3b08f1f4614c6b49e0689653b3b01e35c1e3ff3c5c9e7920fdd8d4 doctor.patch
+f47f3bb1e97c79bdaf5fdd3b466936a335d80d48bffafa7c015a32d97a665d5450e63a33fd5eb0560215de57d556721eaa92db05848257427dd582b10543adda no-lock.patch
+b2705a855163660cc3c472f6416d5839d9d4947164e2ea0ed97e93645255f27b7b513e7dc7de196cae5685b5e328b35ebd65b614be9b32f2fddd1fc8053a3963 no-runtime-download.patch
+91e598d9da383519f107c75669d8ec71f85afea38fa9e9a89e2f6c6088ce27f3107ab57e68931c5b27aec73788c9cd81123bcfae87152d878a170465aec9a193 opt-in-analytics.patch
+9855cf075781e1d1032f6a8dcc160cdcfc4d360875bc4fe005c83ca87dec767f1ce15e7c55d653688f1f2f0cb6b0b0328ccfd826e18ececc50d5d41d8b5b89d2 unbundle.patch
+5b4dc7cdfe6476748c458a0f61267f75a3ce959fff73327e4b9083e1291d46f59000ff5d853d34ecfaa55ecc317d002754653528566ca5a8fc9126b20148a0e5 version.patch
+38673902256ee546c45cefd8e82f310ab7207ac50a038efcbf34c67dee04d626fa37462456729e7725729495ecd4ed7c0b16b72967ef768153d189d7b10c7439 pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch
+cf07aec8878965cf4729700217857d66c37b9258ccab9a9cf4dd199f97f084504b6ad5dbf8d79ca538cbe86f94092f41be53251940ba0f062ca7fcb6d4de616a git-revision.patch.engine
+ebbd8f09e2418b9ac9d933fe94d599e474e4f230171edb5ddfb2f991bcfee39516f785d267e6b23414ef25452cfd5cc04ff5fef0dd5c0af5e6eee373424dee5a target-musl.patch.engine
+d2c55af9dc64c380905cd5d9bc792cec2e37063265cc84643b77995f9787d2239fe34f596a575ac6aa9eae5d82cd55dcd1ed20d59f58c631291064a8c9ae47c0 musl-no-execinfo.patch.engine
+5794a5f9f8532dc6615bc7c89c2f5953ad09a4e8cc1ef7618c9fa8a7816488714ab972b83fef0ff87da797404e182c516975d3376493b906be067edcda015914 musl-no-mallinfo.patch.engine
+6634043f5618835dd9f33a3ec473cdf11bfae2456ee670e2ea24c14f8f1f9d45f9dc273dcb035400d18404e74833c4df1d57e78a00de8010aa7e1e68099db6cd no-vpython.patch.engine
+e138d2b393db3aa1328199fc4d1ac4b2e0ef8384faf04bf077c6fd97ef9813f94b7f25fccbe5fed4919d7ec0bbd800289b5d3a9b8bc654cbe5c5574fb6bee329 shared-libcxx.patch.engine
+65ded76d27b4cdcf4e136294f45df23fdfa4ba7d31dc90a507e9def6d9be3fd7c93269a49769290c6c3be9a11b0eddc8d7d87979518f69f6fe8f0a386426443b libstdc++13.patch.engine
+c0066e5668405c8377292d17e8f5ec26b7c24caae1a44a64528130f5da2c2913f9f87718504983af9ab858b3f9783dbff9e3dcac70264e3195ae01b3c87aa87f system-icu.patch.engine
+61c480e317cdfc1187633d860c0e3341c32f56bd4e00d1b859014dfc52f4998df2f6e818332df0cdec13543e6537bd3da8f8922b0570a4185e5fa6b0ff34e3d2 unbundle.patch.engine
+9c6cb9b0bdb4333f139d1d7115792de688ac99e0ab6987b0f7e5881a83a1feab2d635bc483cd7aed246e4077a65974c83cfe489acbe59853e93abafdfa0cd7d8 flutter
+"
diff --git a/testing/flutter/alpine-target.patch b/testing/flutter/alpine-target.patch
new file mode 100644
index 00000000000..a431add8379
--- /dev/null
+++ b/testing/flutter/alpine-target.patch
@@ -0,0 +1,14 @@
+--- ./packages/flutter_tools/lib/src/linux/build_linux.dart.orig
++++ ./packages/flutter_tools/lib/src/linux/build_linux.dart
+@@ -135,9 +135,9 @@
+ if (needCrossBuild)
+ '-DFLUTTER_TARGET_PLATFORM_SYSROOT=$targetSysroot',
+ if (needCrossBuildOptionsForArm64)
+- '-DCMAKE_C_COMPILER_TARGET=aarch64-linux-gnu',
++ '-DCMAKE_C_COMPILER_TARGET=aarch64-alpine-linux-musl',
+ if (needCrossBuildOptionsForArm64)
+- '-DCMAKE_CXX_COMPILER_TARGET=aarch64-linux-gnu',
++ '-DCMAKE_CXX_COMPILER_TARGET=aarch64-alpine-linux-musl',
+ sourceDir.path,
+ ],
+ workingDirectory: buildDir.path,
diff --git a/testing/flutter/doctor.patch b/testing/flutter/doctor.patch
new file mode 100644
index 00000000000..76c51dd516f
--- /dev/null
+++ b/testing/flutter/doctor.patch
@@ -0,0 +1,17 @@
+--- a/packages/flutter_tools/lib/src/doctor.dart
++++ b/packages/flutter_tools/lib/src/doctor.dart
+@@ -621,14 +621,6 @@
+ '$flutterBinDir to your path.',
+ );
+ }
+- final String resolvedFlutterPath = flutterBin.resolveSymbolicLinksSync();
+- if (!_filePathContainsDirPath(flutterRoot, resolvedFlutterPath)) {
+- final String hint = 'Warning: `$binary` on your path resolves to '
+- '$resolvedFlutterPath, which is not inside your current Flutter '
+- 'SDK checkout at $flutterRoot. Consider adding $flutterBinDir to '
+- 'the front of your path.';
+- return ValidationMessage.hint(hint);
+- }
+ return null;
+ }
+
diff --git a/testing/flutter/flutter b/testing/flutter/flutter
new file mode 100755
index 00000000000..5ee21ccd927
--- /dev/null
+++ b/testing/flutter/flutter
@@ -0,0 +1,23 @@
+#!/bin/sh
+# adapted by lnl from project's repo
+
+# To debug the tool, you can pass the following env to enable debug
+# mode and set an observatory port:
+# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --enable-asserts --observe=65432"
+
+set -e
+
+export FLUTTER_ROOT="/usr/lib/flutter"
+
+FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools"
+SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
+
+# Test if running as superuser – but don't warn if running within Docker or CI.
+if [ "$(id -u)" = "0" ] && ! [ -f /.dockerenv ] && [ "$CI" != "true" ] && [ "$BOT" != "true" ] && [ "$CONTINUOUS_INTEGRATION" != "true" ]; then
+ >&2 echo " Woah! You appear to be trying to run flutter as root."
+ >&2 echo " We strongly recommend running the flutter tool without superuser privileges."
+ >&2 echo " /"
+ >&2 echo "📎"
+fi
+
+exec dart --disable-dart-dev --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
diff --git a/testing/flutter/git-revision.patch.engine b/testing/flutter/git-revision.patch.engine
new file mode 100644
index 00000000000..8cf115fdc72
--- /dev/null
+++ b/testing/flutter/git-revision.patch.engine
@@ -0,0 +1,22 @@
+--- a/flutter/build/git_revision.py
++++ b/flutter/build/git_revision.py
+@@ -22,18 +22,7 @@
+ if not os.path.exists(repository):
+ raise IOError('path does not exist')
+
+- git = 'git'
+- if is_windows():
+- git = 'git.bat'
+- version = subprocess.check_output([
+- git,
+- '-C',
+- repository,
+- 'rev-parse',
+- 'HEAD',
+- ])
+-
+- return str(version.strip(), 'utf-8')
++ return '0' * 41
+
+
+ def main():
diff --git a/testing/flutter/libstdc++13.patch.engine b/testing/flutter/libstdc++13.patch.engine
new file mode 100644
index 00000000000..0e6c5d01c35
--- /dev/null
+++ b/testing/flutter/libstdc++13.patch.engine
@@ -0,0 +1,103 @@
+missing libstdc++13 includes
+--
+--- ./third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.orig
++++ ./third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
+@@ -2566,6 +2566,7 @@
+ #undef VMA_IMPLEMENTATION
+
+ #include <cstdint>
++#include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+ #include <utility>
+--- ./flutter/third_party/tonic/filesystem/filesystem/file.h.orig
++++ ./flutter/third_party/tonic/filesystem/filesystem/file.h
+@@ -5,6 +5,7 @@
+ #ifndef FILESYSTEM_FILE_H_
+ #define FILESYSTEM_FILE_H_
+
++#include <stdint.h>
+ #include <string>
+ #include <vector>
+
+--- ./flutter/impeller/geometry/size.h.orig
++++ ./flutter/impeller/geometry/size.h
+@@ -6,6 +6,7 @@
+
+ #include <algorithm>
+ #include <cmath>
++#include <cstdint>
+ #include <limits>
+ #include <ostream>
+ #include <string>
+--- ./flutter/runtime/dart_service_isolate.h.orig
++++ ./flutter/runtime/dart_service_isolate.h
+@@ -6,6 +6,7 @@
+ #define FLUTTER_RUNTIME_DART_SERVICE_ISOLATE_H_
+
+ #include <functional>
++#include <memory>
+ #include <mutex>
+ #include <set>
+ #include <string>
+--- ./flutter/flow/paint_region.h.orig
++++ ./flutter/flow/paint_region.h
+@@ -5,6 +5,7 @@
+ #ifndef FLUTTER_FLOW_PAINT_REGION_H_
+ #define FLUTTER_FLOW_PAINT_REGION_H_
+
++#include <memory>
+ #include <utility>
+ #include <vector>
+ #include "flutter/fml/logging.h"
+--- ./flutter/vulkan/vulkan_surface.h.orig
++++ ./flutter/vulkan/vulkan_surface.h
+@@ -5,6 +5,8 @@
+ #ifndef FLUTTER_VULKAN_VULKAN_SURFACE_H_
+ #define FLUTTER_VULKAN_VULKAN_SURFACE_H_
+
++#include <memory>
++
+ #include "flutter/fml/macros.h"
+ #include "flutter/vulkan/procs/vulkan_handle.h"
+ #include "third_party/skia/include/core/SkSize.h"
+--- ./flutter/shell/platform/glfw/flutter_glfw.cc.orig
++++ ./flutter/shell/platform/glfw/flutter_glfw.cc
+@@ -7,6 +7,7 @@
+ #include <GLFW/glfw3.h>
+
+ #include <algorithm>
++#include <atomic>
+ #include <cassert>
+ #include <chrono>
+ #include <cstdlib>
+--- ./flutter/fml/cpu_affinity.cc.orig
++++ ./flutter/fml/cpu_affinity.cc
+@@ -5,6 +5,7 @@
+ #include "flutter/fml/cpu_affinity.h"
+ #include "flutter/fml/build_config.h"
+
++#include <cstdint>
+ #include <fstream>
+ #include <optional>
+ #include <string>
+--- ./flutter/fml/cpu_affinity.h.orig
++++ ./flutter/fml/cpu_affinity.h
+@@ -4,6 +4,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <optional>
+ #include <string>
+ #include <vector>
+--- ./flutter/impeller/geometry/path.h.orig
++++ ./flutter/impeller/geometry/path.h
+@@ -6,6 +6,7 @@
+ #define FLUTTER_IMPELLER_GEOMETRY_PATH_H_
+
+ #include <functional>
++#include <memory>
+ #include <optional>
+ #include <set>
+ #include <tuple>
diff --git a/testing/flutter/musl-no-execinfo.patch.engine b/testing/flutter/musl-no-execinfo.patch.engine
new file mode 100644
index 00000000000..140ab183c6e
--- /dev/null
+++ b/testing/flutter/musl-no-execinfo.patch.engine
@@ -0,0 +1,11 @@
+--- a/flutter/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
++++ b/flutter/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+@@ -58,7 +58,7 @@
+ #define HAVE_ERRNO_H 1
+
+ /* Define to 1 if you have the <execinfo.h> header file. */
+-#define HAVE_EXECINFO_H 1
++/* #define HAVE_EXECINFO_H 1 */
+
+ /* Define to 1 if you have the <fcntl.h> header file. */
+ #define HAVE_FCNTL_H 1
diff --git a/testing/flutter/musl-no-mallinfo.patch.engine b/testing/flutter/musl-no-mallinfo.patch.engine
new file mode 100644
index 00000000000..8a5f4ce0a3b
--- /dev/null
+++ b/testing/flutter/musl-no-mallinfo.patch.engine
@@ -0,0 +1,29 @@
+--- ./flutter/third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc
++++ ./flutter/third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc.orig
+@@ -86,11 +86,11 @@
+ }
+
+ size_t Process::GetMallocUsage() {
+-#if defined(HAVE_MALLINFO2)
++#if defined(HAVE_MALLINFO2) && defined(__GLIBC__)
+ struct mallinfo2 mi;
+ mi = ::mallinfo2();
+ return mi.uordblks;
+-#elif defined(HAVE_MALLINFO)
++#elif defined(HAVE_MALLINFO) && defined(__GLIBC__)
+ struct mallinfo mi;
+ mi = ::mallinfo();
+ return mi.uordblks;
+
+--- ./flutter/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig 2019-09-30 13:03:42.556880537 -0400
++++ ./flutter/third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h 2019-09-30 13:07:27.989821227 -0400
+@@ -122,7 +122,9 @@
+ /* #undef HAVE_MALLCTL */
+
+ /* Define to 1 if you have the `mallinfo' function. */
++#if defined(__GLIBC__)
+ #define HAVE_MALLINFO 1
++#endif
+
+ /* Define to 1 if you have the <malloc.h> header file. */
+ #define HAVE_MALLOC_H 1
diff --git a/testing/flutter/no-lock.patch b/testing/flutter/no-lock.patch
new file mode 100644
index 00000000000..3a82ef894fa
--- /dev/null
+++ b/testing/flutter/no-lock.patch
@@ -0,0 +1,19 @@
+--- a/packages/flutter_tools/lib/src/cache.dart
++++ b/packages/flutter_tools/lib/src/cache.dart
+@@ -280,7 +280,7 @@
+ bool useUnsignedMacBinaries = false;
+
+ static RandomAccessFile? _lock;
+- static bool _lockEnabled = true;
++ static bool _lockEnabled = false;
+
+ /// Turn off the [lock]/[releaseLock] mechanism.
+ ///
+@@ -634,7 +634,6 @@
+ }
+
+ void setStampFor(String artifactName, String version) {
+- getStampFileFor(artifactName).writeAsStringSync(version);
+ }
+
+ File getStampFileFor(String artifactName) {
diff --git a/testing/flutter/no-runtime-download.patch b/testing/flutter/no-runtime-download.patch
new file mode 100644
index 00000000000..4814ab14933
--- /dev/null
+++ b/testing/flutter/no-runtime-download.patch
@@ -0,0 +1,38 @@
+--- a/packages/flutter_tools/lib/src/cache.dart
++++ b/packages/flutter_tools/lib/src/cache.dart
+@@ -926,26 +926,6 @@
+ }
+
+ Future<bool> checkForArtifacts(String? engineVersion) async {
+- engineVersion ??= version;
+- final String url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/';
+-
+- bool exists = false;
+- for (final String pkgName in getPackageDirs()) {
+- exists = await cache.doesRemoteExist('Checking package $pkgName is available...', Uri.parse('$url$pkgName.zip'));
+- if (!exists) {
+- return false;
+- }
+- }
+-
+- for (final List<String> toolsDir in getBinaryDirs()) {
+- final String cacheDir = toolsDir[0];
+- final String urlPath = toolsDir[1];
+- exists = await cache.doesRemoteExist('Checking $cacheDir tools are available...',
+- Uri.parse(url + urlPath));
+- if (!exists) {
+- return false;
+- }
+- }
+ return true;
+ }
+
+@@ -1036,6 +1016,8 @@
+ Directory location,
+ void Function(File, Directory) extractor,
+ ) async {
++ throwToolExit('Tried to download $url. Report on aports.');
++
+ final String downloadPath = flattenNameSubdirs(url, _fileSystem);
+ final File tempFile = _createDownloadFile(downloadPath);
+ Status status;
diff --git a/testing/flutter/no-vpython.patch.engine b/testing/flutter/no-vpython.patch.engine
new file mode 100644
index 00000000000..19ed192d695
--- /dev/null
+++ b/testing/flutter/no-vpython.patch.engine
@@ -0,0 +1,11 @@
+--- ./.gn.orig
++++ ./.gn
+@@ -3,7 +3,7 @@
+
+ # Use vpython3 from depot_tools for exec_script() calls.
+ # See `gn help dotfile` for details.
+-script_executable = "vpython3"
++script_executable = "python3"
+
+ # The location of the build configuration file.
+ buildconfig = "//build/config/BUILDCONFIG.gn"
diff --git a/testing/flutter/opt-in-analytics.patch b/testing/flutter/opt-in-analytics.patch
new file mode 100644
index 00000000000..9be73cf402e
--- /dev/null
+++ b/testing/flutter/opt-in-analytics.patch
@@ -0,0 +1,22 @@
+--- a/packages/flutter_tools/lib/src/reporting/usage.dart
++++ b/packages/flutter_tools/lib/src/reporting/usage.dart
+@@ -218,7 +218,7 @@
+ if (globals.platform.environment.containsKey('FLUTTER_HOST')) {
+ analytics.setSessionValue('aiid', globals.platform.environment['FLUTTER_HOST']);
+ }
+- analytics.analyticsOpt = AnalyticsOpt.optOut;
++ analytics.analyticsOpt = AnalyticsOpt.optIn;
+ }
+
+ return _DefaultUsage._(
+--- a/packages/flutter_tools/lib/src/reporting/first_run.dart
++++ b/packages/flutter_tools/lib/src/reporting/first_run.dart
+@@ -37,6 +37,8 @@
+ â•‘ See Google's privacy policy: â•‘
+ â•‘ https://policies.google.com/privacy â•‘
+ â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
++aports overrides: reporting is disabled by default. Opt-out is not a sent event.
++Run 'flutter config --analytics' to opt in to reports.
+ ''';
+
+ /// The first run messenger determines whether the first run license terms
diff --git a/testing/flutter/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch b/testing/flutter/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch
new file mode 100644
index 00000000000..5803026bff6
--- /dev/null
+++ b/testing/flutter/pmos-if-touch-is-a-mouse-then-mouse-is-touch.patch
@@ -0,0 +1,18 @@
+flutter defines a list of pointer kinds that can scroll the screen.
+however, it does not bother recognizing the pointer kind on linux,
+so every pointer is set to be recognized as mouse. effectively, touch
+can't scroll anything. this workarounds the issue by making mouse
+one of the "touch-like device types".
+
+Bug: https://github.com/flutter/flutter/issues/63209
+
+--- ./packages/flutter/lib/src/widgets/scroll_configuration.dart.orig
++++ ./packages/flutter/lib/src/widgets/scroll_configuration.dart
+@@ -25,6 +25,7 @@
+ // The VoiceAccess sends pointer events with unknown type when scrolling
+ // scrollables.
+ PointerDeviceKind.unknown,
++ PointerDeviceKind.mouse,
+ };
+
+ /// The default overscroll indicator applied on [TargetPlatform.android].
diff --git a/testing/flutter/shared-libcxx.patch.engine b/testing/flutter/shared-libcxx.patch.engine
new file mode 100644
index 00000000000..0fc66741f83
--- /dev/null
+++ b/testing/flutter/shared-libcxx.patch.engine
@@ -0,0 +1,33 @@
+--- ./build/config/BUILDCONFIG.gn.orig
++++ ./build/config/BUILDCONFIG.gn
+@@ -324,7 +324,7 @@
+ is_clang = true
+ }
+
+-use_flutter_cxx = is_clang && (is_linux || is_android || is_mac || is_ios)
++use_flutter_cxx = false
+
+ if (is_msan && !is_linux) {
+ assert(false, "Memory sanitizer is only available on Linux.")
+--- ./flutter/third_party/flatbuffers/include/flatbuffers/util.h.orig
++++ ./flutter/third_party/flatbuffers/include/flatbuffers/util.h
+@@ -202,7 +202,7 @@
+
+ // clang-format off
+ // Use locale independent functions {strtod_l, strtof_l, strtoll_l, strtoull_l}.
+-#if defined(FLATBUFFERS_LOCALE_INDEPENDENT) && (FLATBUFFERS_LOCALE_INDEPENDENT > 0)
++#if defined(__GLIBC__) && defined(FLATBUFFERS_LOCALE_INDEPENDENT) && (FLATBUFFERS_LOCALE_INDEPENDENT > 0)
+ class ClassicLocale {
+ #ifdef _MSC_VER
+ typedef _locale_t locale_type;
+--- ./flutter/third_party/flatbuffers/src/util.cpp.orig
++++ ./flutter/third_party/flatbuffers/src/util.cpp
+@@ -252,7 +252,7 @@
+ }
+
+ // Locale-independent code.
+-#if defined(FLATBUFFERS_LOCALE_INDEPENDENT) && \
++#if defined(__GLIBC__) && defined(FLATBUFFERS_LOCALE_INDEPENDENT) && \
+ (FLATBUFFERS_LOCALE_INDEPENDENT > 0)
+
+ // clang-format off
diff --git a/testing/flutter/system-icu.patch.engine b/testing/flutter/system-icu.patch.engine
new file mode 100644
index 00000000000..cf990049a6d
--- /dev/null
+++ b/testing/flutter/system-icu.patch.engine
@@ -0,0 +1,37 @@
+The icu library knows where icu data is at all times. It knows this because it
+knows where it isn't. By subtracting where it is from where it isn't, or where
+it isn't from where it is (whichever is greater), it obtains a difference, or
+deviation.
+
+The flutter build system uses deviations to generate "corrective" commands to
+drive the icu data path from a position where it is to a position where it
+isn't, and check at a position where it wasn't, it now is. Consequently, the
+position where it is, is now the position that it wasn't, and it follows that
+the position that it was, is now the position that it isn't.
+
+XXX: remove this field and whatever is trying to override the icu default with it
+
+--- a/flutter/shell/platform/linux/fl_dart_project.cc
++++ b/flutter/shell/platform/linux/fl_dart_project.cc
+@@ -64,7 +64,7 @@
+ self->assets_path =
+ g_build_filename(executable_dir, "data", "flutter_assets", nullptr);
+ self->icu_data_path =
+- g_build_filename(executable_dir, "data", "icudtl.dat", nullptr);
++ g_build_filename("/usr/lib/flutter/icudtl.dat", nullptr);
+
+ return self;
+ }
+--- ./flutter/build/archives/BUILD.gn.orig
++++ ./flutter/build/archives/BUILD.gn
+@@ -74,10 +74,6 @@
+ }
+ files += [
+ {
+- source = "//third_party/icu/flutter/icudtl.dat"
+- destination = "icudtl.dat"
+- },
+- {
+ source = "$root_out_dir/flutter_tester$exe"
+ destination = "flutter_tester$exe"
+ },
diff --git a/testing/flutter/target-musl.patch.engine b/testing/flutter/target-musl.patch.engine
new file mode 100644
index 00000000000..42134e52db0
--- /dev/null
+++ b/testing/flutter/target-musl.patch.engine
@@ -0,0 +1,345 @@
+From 903ae13d643c305c48c4271ed4a05939656ed041 Mon Sep 17 00:00:00 2001
+From: "Lauren N. Liberda" <lauren@selfisekai.rocks>
+Date: Sat, 8 Apr 2023 02:56:35 +0200
+Subject: [PATCH 1/2] add gn args specifying libc for linux
+
+---
+ build/config/compiler/BUILD.gn | 8 ++-
+ build/config/linux/detect_host_libc.py | 42 ++++++++++++
+ build/config/linux/libc.gni | 51 +++++++++++++++
+ build/toolchain/linux/BUILD.gn | 89 ++++++++++++++------------
+ 4 files changed, 147 insertions(+), 43 deletions(-)
+ create mode 100755 build/config/linux/detect_host_libc.py
+ create mode 100644 build/config/linux/libc.gni
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 4c9a1ee..155d433 100644
+--- ./build/config/compiler/BUILD.gn.orig
++++ ./build/config/compiler/BUILD.gn
+@@ -12,6 +12,9 @@
+ if (is_win) {
+ import("//build/config/win/visual_studio_version.gni")
+ }
++if (is_linux) {
++ import("//build/config/linux/libc.gni")
++}
+
+ import("//build/config/c++/c++.gni")
+ import("//build/config/profiler.gni")
+@@ -339,8 +342,8 @@
+ ldflags += [ "-pthread" ]
+
+ if (current_cpu == "arm64") {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ cflags += [ "--target=aarch64-alpine-linux-musl" ]
++ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
+ cflags += [ "-DBORINGSSL_CLANG_SUPPORTS_DOT_ARCH" ]
+ }
+ }
+@@ -622,12 +625,15 @@
+ default_warning_flags += [
+ # Enables.
+ "-Wendif-labels", # Weird old-style text after an #endif.
+- "-Werror", # Warnings as errors.
+
+ # Disables.
+ "-Wno-missing-field-initializers", # "struct foo f = {0};"
+ "-Wno-unused-parameter", # Unused function parameters.
+ ]
++ if (!is_linux || is_glibc) {
++ # Warnings as errors. Fails on musl.
++ default_warning_flags += [ "-Werror" ]
++ }
+
+ if (is_wasm) {
+ default_warning_flags += [
+diff --git a/build/config/linux/detect_host_libc.py b/build/config/linux/detect_host_libc.py
+new file mode 100755
+index 0000000..1ebb498
+--- /dev/null
++++ b/build/config/linux/detect_host_libc.py
+@@ -0,0 +1,42 @@
++#!/usr/bin/env python3
++#
++# Copyright (c) 2013 The Flutter Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++from optparse import OptionParser
++import re
++import subprocess
++import sys
++
++
++def main():
++ if 'linux' not in sys.platform:
++ return 1
++
++ parser = OptionParser()
++ parser.add_option('--compiler-path', action='store',
++ type='string', default='gcc')
++ (options, args) = parser.parse_args()
++
++ # should work with both gcc and clang
++ #
++ # example outputs: "aarch64-unknown-linux-gnu", "x86_64-alpine-linux-musl",
++ # "armv7-unknown-linux-musleabihf", "mipsel-linux-muslhf"
++ default_target = subprocess.check_output([
++ options.compiler_path, '-dumpmachine']).decode('utf-8').strip()
++
++ host_libc_re = re.match(
++ r'^(?:[^-]+-){1,2}linux-(?P<libc>gnu|musl|uclibc)(?:eabi)?(?:hf)?$',
++ default_target)
++ if host_libc_re is None:
++ print(f'Target not understood: {default_target}')
++
++ host_libc = host_libc_re.group('libc')
++ # print would add a newline
++ sys.stdout.write(host_libc)
++ return 0
++
++
++if __name__ == '__main__':
++ sys.exit(main())
+diff --git a/build/config/linux/libc.gni b/build/config/linux/libc.gni
+new file mode 100644
+index 0000000..653f312
+--- /dev/null
++++ b/build/config/linux/libc.gni
+@@ -0,0 +1,51 @@
++# Copyright (c) 2013 The Flutter Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/sysroot.gni")
++
++declare_args() {
++ # The C library used by the compilation host.
++ # Expecting one of: "gnu" (glibc), "uclibc", "musl"
++ host_libc = ""
++
++ # The C library of the compilation target.
++ # Expecting one of: "gnu" (glibc), "uclibc", "musl"
++ target_libc = ""
++}
++
++# try to detect host's libc if not explicitly provided
++if (host_libc == "" && is_linux) {
++ if (sysroot == "") {
++ host_compiler = "gcc"
++ if (is_clang) {
++ host_compiler = "clang"
++ }
++
++ # tries to determine libc from "gcc/clang -printmachine"
++ host_libc = exec_script("//build/config/linux/detect_host_libc.py",
++ [
++ "--compiler-path",
++ host_compiler,
++ ],
++ "string")
++ } else {
++ # currently there is only debian sysroot
++ host_libc = "gnu"
++ }
++}
++
++assert(!is_linux || host_libc != "", "Host libc not specified and not detected")
++
++# assume compiling for host if not explicitly specified
++if (target_libc == "") {
++ target_libc = host_libc
++}
++
++is_cross_libc = host_libc != target_libc
++
++is_glibc = target_libc == "gnu"
++is_musl = target_libc == "musl"
++
++is_host_glibc = host_libc == "gnu"
++is_host_musl = host_libc == "musl"
+diff --git a/build/toolchain/linux/BUILD.gn b/build/toolchain/linux/BUILD.gn
+index 05630d0..b1288ce 100644
+--- a/build/toolchain/linux/BUILD.gn
++++ b/build/toolchain/linux/BUILD.gn
+@@ -2,6 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+
++import("//build/config/linux/libc.gni")
+ import("//build/config/sysroot.gni")
+ import("//build/toolchain/ccache.gni")
+ import("//build/toolchain/gcc_toolchain.gni")
+@@ -39,16 +43,20 @@
+ link_prefix = ""
+ }
+
+-if (host_cpu == "arm64") {
+- rebased_clang_dir =
+- rebase_path("//buildtools/linux-arm64/clang/bin", root_build_dir)
++if (is_host_glibc) {
++ if (host_cpu == "arm64") {
++ rebased_clang_dir =
++ rebase_path("//buildtools/linux-arm64/clang/bin/", root_build_dir)
++ } else {
++ rebased_clang_dir =
++ rebase_path("//buildtools/linux-x64/clang/bin/", root_build_dir)
++ }
+ } else {
+- rebased_clang_dir =
+- rebase_path("//buildtools/linux-x64/clang/bin", root_build_dir)
++ rebased_clang_dir = ""
+ }
+
+ gcc_toolchain("arm") {
+- prefix = "arm-linux-gnueabihf-"
++ prefix = "arm-linux-${target_libc}eabihf-"
+ if (toolchain_prefix != "") {
+ prefix = toolchain_prefix
+ }
+@@ -70,15 +78,15 @@
+
+ gcc_toolchain("clang_arm") {
+ prefix = rebased_clang_dir
+- asm = "${prefix}/clang"
+- cc = "${compiler_prefix}${prefix}/clang"
+- cxx = "${compiler_prefix}${prefix}/clang++"
++ asm = "${prefix}clang"
++ cc = "${compiler_prefix}${prefix}clang"
++ cxx = "${compiler_prefix}${prefix}clang++"
+
+- readelf = "${prefix}/llvm-readelf"
+- nm = "${prefix}/llvm-nm"
+- ar = "${prefix}/llvm-ar"
+- ld = "${link_prefix}${prefix}/clang++"
+- llvm_objcopy = "${prefix}/llvm-objcopy"
++ readelf = "${prefix}llvm-readelf"
++ nm = "${prefix}llvm-nm"
++ ar = "${prefix}llvm-ar"
++ ld = "${link_prefix}${prefix}clang++"
++ llvm_objcopy = "${prefix}llvm-objcopy"
+
+ toolchain_cpu = "arm"
+ toolchain_os = "linux"
+@@ -86,7 +94,7 @@
+ }
+
+ gcc_toolchain("arm64") {
+- prefix = "aarch64-linux-gnu-"
++ prefix = "aarch64-linux-${target_libc}-"
+ if (toolchain_prefix != "") {
+ prefix = toolchain_prefix
+ }
+@@ -108,15 +116,15 @@
+
+ gcc_toolchain("clang_arm64") {
+ prefix = rebased_clang_dir
+- asm = "${prefix}/clang"
+- cc = "${compiler_prefix}${prefix}/clang"
+- cxx = "${compiler_prefix}${prefix}/clang++"
++ asm = "${prefix}clang"
++ cc = "${compiler_prefix}${prefix}clang"
++ cxx = "${compiler_prefix}${prefix}clang++"
+
+ readelf = "readelf"
+- nm = "${prefix}/llvm-nm"
+- ar = "${prefix}/llvm-ar"
+- ld = "${link_prefix}${prefix}/clang++"
+- llvm_objcopy = "${prefix}/llvm-objcopy"
++ nm = "${prefix}llvm-nm"
++ ar = "${prefix}llvm-ar"
++ ld = "${link_prefix}${prefix}clang++"
++ llvm_objcopy = "${prefix}llvm-objcopy"
+
+ toolchain_cpu = "arm64"
+ toolchain_os = "linux"
+@@ -125,15 +133,15 @@
+
+ gcc_toolchain("clang_x86") {
+ prefix = rebased_clang_dir
+- asm = "${prefix}/clang"
+- cc = "${compiler_prefix}${prefix}/clang"
+- cxx = "${compiler_prefix}${prefix}/clang++"
++ asm = "${prefix}clang"
++ cc = "${compiler_prefix}${prefix}clang"
++ cxx = "${compiler_prefix}${prefix}clang++"
+
+- readelf = "${prefix}/llvm-readelf"
+- nm = "${prefix}/llvm-nm"
+- ar = "${prefix}/llvm-ar"
+- ld = "${link_prefix}${prefix}/clang++"
+- llvm_objcopy = "${prefix}/llvm-objcopy"
++ readelf = "${prefix}llvm-readelf"
++ nm = "${prefix}llvm-nm"
++ ar = "${prefix}llvm-ar"
++ ld = "${link_prefix}${prefix}clang++"
++ llvm_objcopy = "${prefix}llvm-objcopy"
+
+ toolchain_cpu = "x86"
+ toolchain_os = "linux"
+@@ -159,15 +167,15 @@
+
+ gcc_toolchain("clang_x64") {
+ prefix = rebased_clang_dir
+- asm = "${prefix}/clang"
+- cc = "${compiler_prefix}${prefix}/clang"
+- cxx = "${compiler_prefix}${prefix}/clang++"
++ asm = "${prefix}clang"
++ cc = "${compiler_prefix}${prefix}clang"
++ cxx = "${compiler_prefix}${prefix}clang++"
+
+- readelf = "${prefix}/llvm-readelf"
+- nm = "${prefix}/llvm-nm"
+- ar = "${prefix}/llvm-ar"
+- ld = "${link_prefix}${prefix}/clang++"
+- llvm_objcopy = "${prefix}/llvm-objcopy"
++ readelf = "${prefix}llvm-readelf"
++ nm = "${prefix}llvm-nm"
++ ar = "${prefix}llvm-ar"
++ ld = "${link_prefix}${prefix}clang++"
++ llvm_objcopy = "${prefix}llvm-objcopy"
+
+ toolchain_cpu = "x64"
+ toolchain_os = "linux"
+@@ -192,7 +200,7 @@
+ }
+
+ gcc_toolchain("riscv32") {
+- prefix = "riscv32-linux-gnu-"
++ prefix = "riscv32-linux-${target_libc}-"
+ if (toolchain_prefix != "") {
+ prefix = toolchain_prefix
+ }
+@@ -230,7 +238,7 @@
+ }
+
+ gcc_toolchain("riscv64") {
+- prefix = "riscv64-linux-gnu-"
++ prefix = "riscv64-linux-${target_libc}-"
+ if (toolchain_prefix != "") {
+ prefix = toolchain_prefix
+ }
+@@ -252,15 +260,15 @@
+
+ gcc_toolchain("clang_riscv64") {
+ prefix = rebased_clang_dir
+- asm = "${prefix}/clang"
+- cc = "${compiler_prefix}${prefix}/clang"
+- cxx = "${compiler_prefix}${prefix}/clang++"
++ asm = "${prefix}clang"
++ cc = "${compiler_prefix}${prefix}clang"
++ cxx = "${compiler_prefix}${prefix}clang++"
+
+ readelf = "readelf"
+- nm = "${prefix}/llvm-nm"
+- ar = "${prefix}/llvm-ar"
+- ld = "${link_prefix}${prefix}/clang++"
+- llvm_objcopy = "${prefix}/llvm-objcopy"
++ nm = "${prefix}llvm-nm"
++ ar = "${prefix}llvm-ar"
++ ld = "${link_prefix}${prefix}clang++"
++ llvm_objcopy = "${prefix}llvm-objcopy"
+
+ toolchain_cpu = "riscv64"
+ toolchain_os = "linux"
diff --git a/testing/flutter/unbundle.patch b/testing/flutter/unbundle.patch
new file mode 100644
index 00000000000..8dc368813c3
--- /dev/null
+++ b/testing/flutter/unbundle.patch
@@ -0,0 +1,21 @@
+--- a/packages/flutter_tools/lib/src/build_system/targets/linux.dart
++++ b/packages/flutter_tools/lib/src/build_system/targets/linux.dart
+@@ -19,7 +19,6 @@
+
+ /// The only files/subdirectories we care out.
+ const List<String> _kLinuxArtifacts = <String>[
+- 'libflutter_linux_gtk.so',
+ ];
+
+ const String _kLinuxDepfile = 'linux_engine_sources.d';
+@@ -79,10 +78,6 @@
+ outputDirectory: outputDirectory,
+ artifacts: _kLinuxArtifacts,
+ clientSourcePaths: <String>[headersPath],
+- icuDataPath: environment.artifacts.getArtifactPath(
+- Artifact.icuData,
+- platform: targetPlatform,
+- )
+ );
+ final DepfileService depfileService = DepfileService(
+ fileSystem: environment.fileSystem,
diff --git a/testing/flutter/unbundle.patch.engine b/testing/flutter/unbundle.patch.engine
new file mode 100644
index 00000000000..cc6bce62687
--- /dev/null
+++ b/testing/flutter/unbundle.patch.engine
@@ -0,0 +1,950 @@
+diff --git a/build/linux/unbundle/fontconfig.gn b/build/linux/unbundle/fontconfig.gn
+new file mode 100644
+index 0000000..87926d5
+--- /dev/null
++++ b/build/linux/unbundle/fontconfig.gn
+@@ -0,0 +1,13 @@
++# Copyright 2017 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++assert(is_linux || is_chromeos)
++
++config("fontconfig_config") {
++ libs = [ "fontconfig" ]
++}
++
++group("fontconfig") {
++ public_configs = [ ":fontconfig_config" ]
++}
+diff --git a/build/linux/unbundle/freetype2.gn b/build/linux/unbundle/freetype2.gn
+new file mode 100644
+index 0000000..3b8cafb
+--- /dev/null
++++ b/build/linux/unbundle/freetype2.gn
+@@ -0,0 +1,35 @@
++# Copyright 2013 The Flutter Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++config("freetype_config") {
++ include_dirs = [ "include/freetype-flutter-config" ]
++
++ cflags = []
++
++ if (is_clang) {
++ cflags += [
++ "-Wno-unused-function",
++ "-Wno-unused-variable",
++ ]
++ }
++}
++
++pkg_config("system_freetype2") {
++ packages = [ "freetype2" ]
++}
++
++source_set("freetype2") {
++ output_name = "freetype2"
++ deps = [
++ "//third_party/libpng",
++ "//third_party/zlib",
++ ]
++ public_configs = [
++ ":freetype_config",
++ ":system_freetype2",
++ ]
++}
+diff --git a/build/linux/unbundle/harfbuzz.gn b/build/linux/unbundle/harfbuzz.gn
+new file mode 100644
+index 0000000..72d3e06
+--- /dev/null
++++ b/build/linux/unbundle/harfbuzz.gn
+@@ -0,0 +1,31 @@
++# Copyright 2013 The Flutter Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("system_harfbuzz") {
++ packages = [ "harfbuzz" ]
++}
++
++pkg_config("system_harfbuzz_subset") {
++ packages = [ "harfbuzz-subset" ]
++}
++
++source_set("harfbuzz") {
++ output_name = "harfbuzz"
++ deps = [
++ "//third_party/freetype2",
++ "//third_party/icu:icuuc",
++ ]
++ public_configs = [ ":system_harfbuzz" ]
++}
++
++source_set("harfbuzz_subset") {
++ output_name = "harfbuzz_subset"
++ deps = [
++ "//third_party/freetype2",
++ "//third_party/icu:icuuc",
++ ]
++ public_configs = [ ":system_harfbuzz_subset" ]
++}
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+new file mode 100644
+index 0000000..9e54d4e
+--- /dev/null
++++ b/build/linux/unbundle/icu.gn
+@@ -0,0 +1,262 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++group("icu") {
++ public_deps = [
++ ":icui18n",
++ ":icuuc",
++ ]
++}
++
++config("icu_config") {
++ defines = [
++ "USING_SYSTEM_ICU=1",
++ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
++
++ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
++ # on classes through the U_COMMON_API and U_I18N_API macros (among others).
++ # When linking against the system ICU library, we want its symbols to have
++ # public LTO visibility. This disables CFI checks for the ICU classes and
++ # allows whole-program optimization to be applied to the rest of Chromium.
++ #
++ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only
++ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because
++ # we override the default system UCHAR_TYPE (char16_t), it is not possible
++ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API
++ # and U_I18N_API macros are set to U_IMPORT which is an empty definition.
++ #
++ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply
++ # public visibility (and thus public LTO visibility) to all ICU classes is
++ # to define U_IMPORT to have the same value as U_EXPORT. For more details,
++ # please see: https://crbug.com/822820
++ "U_IMPORT=U_EXPORT",
++ ]
++}
++
++pkg_config("system_icui18n") {
++ packages = [ "icu-i18n" ]
++}
++
++pkg_config("system_icuuc") {
++ packages = [ "icu-uc" ]
++}
++
++source_set("icui18n") {
++ public_deps = [ ":icui18n_shim" ]
++ public_configs = [
++ ":icu_config",
++ ":system_icui18n",
++ ]
++}
++
++source_set("icuuc") {
++ public_deps = [ ":icuuc_shim" ]
++ public_configs = [
++ ":icu_config",
++ ":system_icuuc",
++ ]
++}
++
++group("icui18n_hidden_visibility") {
++ public_deps = [ ":icui18n" ]
++}
++
++group("icuuc_hidden_visibility") {
++ public_deps = [ ":icuuc" ]
++}
++
++shim_headers("icui18n_shim") {
++ root_path = "source/i18n"
++ headers = [
++ # This list can easily be updated using the commands below:
++ # cd third_party/icu/source/i18n
++ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u
++ "unicode/alphaindex.h",
++ "unicode/basictz.h",
++ "unicode/calendar.h",
++ "unicode/choicfmt.h",
++ "unicode/coleitr.h",
++ "unicode/coll.h",
++ "unicode/compactdecimalformat.h",
++ "unicode/curramt.h",
++ "unicode/currpinf.h",
++ "unicode/currunit.h",
++ "unicode/datefmt.h",
++ "unicode/dcfmtsym.h",
++ "unicode/decimfmt.h",
++ "unicode/dtfmtsym.h",
++ "unicode/dtitvfmt.h",
++ "unicode/dtitvinf.h",
++ "unicode/dtptngen.h",
++ "unicode/dtrule.h",
++ "unicode/fieldpos.h",
++ "unicode/fmtable.h",
++ "unicode/format.h",
++ "unicode/fpositer.h",
++ "unicode/gender.h",
++ "unicode/gregocal.h",
++ "unicode/listformatter.h",
++ "unicode/measfmt.h",
++ "unicode/measunit.h",
++ "unicode/measure.h",
++ "unicode/msgfmt.h",
++ "unicode/numfmt.h",
++ "unicode/numsys.h",
++ "unicode/plurfmt.h",
++ "unicode/plurrule.h",
++ "unicode/rbnf.h",
++ "unicode/rbtz.h",
++ "unicode/regex.h",
++ "unicode/region.h",
++ "unicode/reldatefmt.h",
++ "unicode/scientificnumberformatter.h",
++ "unicode/search.h",
++ "unicode/selfmt.h",
++ "unicode/simpletz.h",
++ "unicode/smpdtfmt.h",
++ "unicode/sortkey.h",
++ "unicode/stsearch.h",
++ "unicode/tblcoll.h",
++ "unicode/timezone.h",
++ "unicode/tmunit.h",
++ "unicode/tmutamt.h",
++ "unicode/tmutfmt.h",
++ "unicode/translit.h",
++ "unicode/tzfmt.h",
++ "unicode/tznames.h",
++ "unicode/tzrule.h",
++ "unicode/tztrans.h",
++ "unicode/ucal.h",
++ "unicode/ucol.h",
++ "unicode/ucoleitr.h",
++ "unicode/ucsdet.h",
++ "unicode/udat.h",
++ "unicode/udateintervalformat.h",
++ "unicode/udatpg.h",
++ "unicode/ufieldpositer.h",
++ "unicode/uformattable.h",
++ "unicode/ugender.h",
++ "unicode/ulocdata.h",
++ "unicode/umsg.h",
++ "unicode/unirepl.h",
++ "unicode/unum.h",
++ "unicode/unumsys.h",
++ "unicode/upluralrules.h",
++ "unicode/uregex.h",
++ "unicode/uregion.h",
++ "unicode/ureldatefmt.h",
++ "unicode/usearch.h",
++ "unicode/uspoof.h",
++ "unicode/utmscale.h",
++ "unicode/utrans.h",
++ "unicode/vtzone.h",
++ ]
++}
++
++shim_headers("icuuc_shim") {
++ root_path = "source/common"
++ headers = [
++ # This list can easily be updated using the commands below:
++ # cd third_party/icu/source/common
++ # find unicode -iname '*.h' -printf ' "%p",\n' | LC_ALL=C sort -u
++ "unicode/appendable.h",
++ "unicode/brkiter.h",
++ "unicode/bytestream.h",
++ "unicode/bytestrie.h",
++ "unicode/bytestriebuilder.h",
++ "unicode/caniter.h",
++ "unicode/casemap.h",
++ "unicode/char16ptr.h",
++ "unicode/chariter.h",
++ "unicode/dbbi.h",
++ "unicode/docmain.h",
++ "unicode/dtintrv.h",
++ "unicode/edits.h",
++ "unicode/enumset.h",
++ "unicode/errorcode.h",
++ "unicode/filteredbrk.h",
++ "unicode/icudataver.h",
++ "unicode/icuplug.h",
++ "unicode/idna.h",
++ "unicode/localematcher.h",
++ "unicode/localpointer.h",
++ "unicode/locdspnm.h",
++ "unicode/locid.h",
++ "unicode/messagepattern.h",
++ "unicode/normalizer2.h",
++ "unicode/normlzr.h",
++ "unicode/parseerr.h",
++ "unicode/parsepos.h",
++ "unicode/platform.h",
++ "unicode/ptypes.h",
++ "unicode/putil.h",
++ "unicode/rbbi.h",
++ "unicode/rep.h",
++ "unicode/resbund.h",
++ "unicode/schriter.h",
++ "unicode/simpleformatter.h",
++ "unicode/std_string.h",
++ "unicode/strenum.h",
++ "unicode/stringpiece.h",
++ "unicode/stringtriebuilder.h",
++ "unicode/symtable.h",
++ "unicode/ubidi.h",
++ "unicode/ubiditransform.h",
++ "unicode/ubrk.h",
++ "unicode/ucasemap.h",
++ "unicode/ucat.h",
++ "unicode/uchar.h",
++ "unicode/ucharstrie.h",
++ "unicode/ucharstriebuilder.h",
++ "unicode/uchriter.h",
++ "unicode/uclean.h",
++ "unicode/ucnv.h",
++ "unicode/ucnv_cb.h",
++ "unicode/ucnv_err.h",
++ "unicode/ucnvsel.h",
++ "unicode/uconfig.h",
++ "unicode/ucurr.h",
++ "unicode/udata.h",
++ "unicode/udisplaycontext.h",
++ "unicode/uenum.h",
++ "unicode/uidna.h",
++ "unicode/uiter.h",
++ "unicode/uldnames.h",
++ "unicode/ulistformatter.h",
++ "unicode/uloc.h",
++ "unicode/umachine.h",
++ "unicode/umisc.h",
++ "unicode/unifilt.h",
++ "unicode/unifunct.h",
++ "unicode/unimatch.h",
++ "unicode/uniset.h",
++ "unicode/unistr.h",
++ "unicode/unorm.h",
++ "unicode/unorm2.h",
++ "unicode/uobject.h",
++ "unicode/urename.h",
++ "unicode/urep.h",
++ "unicode/ures.h",
++ "unicode/uscript.h",
++ "unicode/uset.h",
++ "unicode/usetiter.h",
++ "unicode/ushape.h",
++ "unicode/usprep.h",
++ "unicode/ustring.h",
++ "unicode/ustringtrie.h",
++ "unicode/utext.h",
++ "unicode/utf.h",
++ "unicode/utf16.h",
++ "unicode/utf32.h",
++ "unicode/utf8.h",
++ "unicode/utf_old.h",
++ "unicode/utrace.h",
++ "unicode/utypes.h",
++ "unicode/uvernum.h",
++ "unicode/uversion.h",
++ ]
++}
+diff --git a/build/linux/unbundle/libjpeg-turbo.gn b/build/linux/unbundle/libjpeg-turbo.gn
+new file mode 100644
+index 0000000..be0c674
+--- /dev/null
++++ b/build/linux/unbundle/libjpeg-turbo.gn
+@@ -0,0 +1,11 @@
++# Copyright 2013 The Flutter Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++config("libjpeg_config") {
++ libs = [ "jpeg" ]
++}
++
++group("libjpeg") {
++ public_configs = [ ":libjpeg_config" ]
++}
+diff --git a/build/linux/unbundle/libpng.gn b/build/linux/unbundle/libpng.gn
+new file mode 100644
+index 0000000..91e0ee4
+--- /dev/null
++++ b/build/linux/unbundle/libpng.gn
+@@ -0,0 +1,23 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("libpng_config") {
++ packages = [ "libpng" ]
++}
++
++shim_headers("libpng_shim") {
++ root_path = "."
++ headers = [
++ "png.h",
++ "pngconf.h",
++ ]
++}
++
++source_set("libpng") {
++ deps = [ ":libpng_shim" ]
++ public_configs = [ ":libpng_config" ]
++}
+diff --git a/build/linux/unbundle/libwebp.gn b/build/linux/unbundle/libwebp.gn
+new file mode 100644
+index 0000000..708cc9c
+--- /dev/null
++++ b/build/linux/unbundle/libwebp.gn
+@@ -0,0 +1,35 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_libwebp") {
++ packages = [
++ "libwebp",
++ "libwebpdemux",
++ "libwebpmux",
++ ]
++}
++
++shim_headers("libwebp_shim") {
++ root_path = "src/src"
++ headers = [
++ "webp/decode.h",
++ "webp/demux.h",
++ "webp/encode.h",
++ "webp/mux.h",
++ "webp/mux_types.h",
++ "webp/types.h",
++ ]
++}
++
++source_set("libwebp_webp") {
++ deps = [ ":libwebp_shim" ]
++ public_configs = [ ":system_libwebp" ]
++}
++
++group("libwebp") {
++ deps = [ ":libwebp_webp" ]
++}
+diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn
+new file mode 100644
+index 0000000..b42d044
+--- /dev/null
++++ b/build/linux/unbundle/libxml.gn
+@@ -0,0 +1,13 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++
++pkg_config("system_libxml") {
++ packages = [ "libxml-2.0" ]
++}
++
++source_set("libxml") {
++ public_configs = [ ":system_libxml" ]
++}
+diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py
+new file mode 100755
+index 0000000..b8b24c6
+--- /dev/null
++++ b/build/linux/unbundle/replace_gn_files.py
+@@ -0,0 +1,101 @@
++#!/usr/bin/env python3
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++"""
++Replaces GN files in tree with files from here that
++make the build use system libraries.
++"""
++
++import argparse
++import os
++import shutil
++import sys
++
++
++REPLACEMENTS = {
++ # Use system libabsl_2xxx. These 18 shims MUST be used together.
++ 'absl_algorithm': 'third_party/abseil-cpp/absl/algorithm/BUILD.gn',
++ 'absl_base': 'third_party/abseil-cpp/absl/base/BUILD.gn',
++ 'absl_cleanup': 'third_party/abseil-cpp/absl/cleanup/BUILD.gn',
++ 'absl_container': 'third_party/abseil-cpp/absl/container/BUILD.gn',
++ 'absl_debugging': 'third_party/abseil-cpp/absl/debugging/BUILD.gn',
++ 'absl_flags': 'third_party/abseil-cpp/absl/flags/BUILD.gn',
++ 'absl_functional': 'third_party/abseil-cpp/absl/functional/BUILD.gn',
++ 'absl_hash': 'third_party/abseil-cpp/absl/hash/BUILD.gn',
++ 'absl_memory': 'third_party/abseil-cpp/absl/memory/BUILD.gn',
++ 'absl_meta': 'third_party/abseil-cpp/absl/meta/BUILD.gn',
++ 'absl_numeric': 'third_party/abseil-cpp/absl/numeric/BUILD.gn',
++ 'absl_random': 'third_party/abseil-cpp/absl/random/BUILD.gn',
++ 'absl_status': 'third_party/abseil-cpp/absl/status/BUILD.gn',
++ 'absl_strings': 'third_party/abseil-cpp/absl/strings/BUILD.gn',
++ 'absl_synchronization': 'third_party/abseil-cpp/absl/synchronization/BUILD.gn',
++ 'absl_time': 'third_party/abseil-cpp/absl/time/BUILD.gn',
++ 'absl_types': 'third_party/abseil-cpp/absl/types/BUILD.gn',
++ 'absl_utility': 'third_party/abseil-cpp/absl/utility/BUILD.gn',
++ #
++ 'fontconfig': 'third_party/fontconfig/BUILD.gn',
++ 'freetype2': 'third_party/freetype2/BUILD.gn',
++ 'harfbuzz': 'third_party/harfbuzz/BUILD.gn',
++ 'icu': 'third_party/icu/BUILD.gn',
++ 'libjpeg-turbo': 'flutter/third_party/libjpeg-turbo/BUILD.gn',
++ 'libpng': 'third_party/libpng/BUILD.gn',
++ 'libwebp': 'flutter/build/secondary/flutter/third_party/libwebp/BUILD.gn',
++ 'libxml': 'third_party/libxml/BUILD.gn',
++ 'libXNVCtrl': 'third_party/angle/src/third_party/libXNVCtrl/BUILD.gn',
++ 'sqlite': 'flutter/third_party/sqlite/BUILD.gn',
++ # Use system libSPIRV-Tools in Swiftshader. These two shims MUST be used together.
++ 'swiftshader-SPIRV-Headers': 'flutter/third_party/swiftshader/third_party/SPIRV-Headers/BUILD.gn',
++ 'swiftshader-SPIRV-Tools': 'flutter/third_party/swiftshader/third_party/SPIRV-Tools/BUILD.gn',
++ # Use system libSPIRV-Tools inside ANGLE. These two shims MUST be used together
++ # and can only be used if WebGPU is not compiled (use_dawn=false)
++ 'vulkan-SPIRV-Headers': 'third_party/vulkan-deps/spirv-headers/src/BUILD.gn',
++ 'vulkan-SPIRV-Tools': 'third_party/vulkan-deps/spirv-tools/src/BUILD.gn',
++ #
++ 'zlib': 'third_party/zlib/BUILD.gn',
++}
++
++
++def DoMain(argv):
++ my_dirname = os.path.dirname(__file__)
++ source_tree_root = os.path.abspath(
++ os.path.join(my_dirname, '..', '..', '..'))
++
++ parser = argparse.ArgumentParser()
++ parser.add_argument('--system-libraries', nargs='*', default=[])
++ parser.add_argument('--undo', action='store_true')
++
++ args = parser.parse_args(argv)
++
++ handled_libraries = set()
++ for lib, path in REPLACEMENTS.items():
++ if lib not in args.system_libraries:
++ continue
++ handled_libraries.add(lib)
++
++ if args.undo:
++ # Restore original file, and also remove the backup.
++ # This is meant to restore the source tree to its original state.
++ os.rename(os.path.join(source_tree_root, path + '.orig'),
++ os.path.join(source_tree_root, path))
++ else:
++ # Create a backup copy for --undo.
++ shutil.copyfile(os.path.join(source_tree_root, path),
++ os.path.join(source_tree_root, path + '.orig'))
++
++ # Copy the GN file from directory of this script to target path.
++ shutil.copyfile(os.path.join(my_dirname, '%s.gn' % lib),
++ os.path.join(source_tree_root, path))
++
++ unhandled_libraries = set(args.system_libraries) - handled_libraries
++ if unhandled_libraries:
++ print('Unrecognized system libraries requested: %s' % ', '.join(
++ sorted(unhandled_libraries)), file=sys.stderr)
++ return 1
++
++ return 0
++
++
++if __name__ == '__main__':
++ sys.exit(DoMain(sys.argv[1:]))
+diff --git a/build/linux/unbundle/sqlite.gn b/build/linux/unbundle/sqlite.gn
+new file mode 100644
+index 0000000..e6c653d
+--- /dev/null
++++ b/build/linux/unbundle/sqlite.gn
+@@ -0,0 +1,20 @@
++# Copyright 2013 The Flutter Authors. All rights reserved.
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("system_sqlite") {
++ packages = [ "sqlite3" ]
++}
++
++shim_headers("sqlite_shim") {
++ root_path = "//third_party/sqlite"
++ headers = [ "sqlite3.h" ]
++}
++
++source_set("sqlite") {
++ public_deps = [ ":sqlite_shim" ]
++ public_configs = [ ":system_sqlite" ]
++}
+diff --git a/build/linux/unbundle/zlib.gn b/build/linux/unbundle/zlib.gn
+new file mode 100644
+index 0000000..6daf3c6
+--- /dev/null
++++ b/build/linux/unbundle/zlib.gn
+@@ -0,0 +1,72 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++import("//build/shim_headers.gni")
++
++declare_args() {
++ use_zlib_ng = false
++}
++
++if (use_zlib_ng) {
++ _suffix = "-ng"
++} else {
++ _suffix = ""
++}
++
++shim_headers("zlib_shim") {
++ root_path = "."
++ headers = [ "zlib.h%zlib$_suffix.h" ]
++ additional_includes = [ "third_party" ]
++}
++
++config("system_zlib") {
++ defines = [ "USE_SYSTEM_ZLIB=1" ]
++}
++
++config("zlib_config") {
++ configs = [ ":system_zlib" ]
++}
++
++source_set("zlib") {
++ public_deps = [ ":zlib_shim" ]
++ libs = [ "z$_suffix" ]
++ public_configs = [ ":system_zlib" ]
++}
++
++shim_headers("minizip_shim") {
++ root_path = "contrib"
++ headers = [
++ "minizip/crypt.h",
++ "minizip/ioapi.h",
++ "minizip/iowin32.h",
++ "minizip/mztools.h",
++ "minizip/unzip.h",
++ "minizip/zip.h",
++ ]
++}
++
++source_set("minizip") {
++ deps = [ ":minizip_shim" ]
++ libs = [ "minizip" ]
++}
++
++static_library("zip") {
++ sources = [
++ "google/zip.cc",
++ "google/zip.h",
++ "google/zip_internal.cc",
++ "google/zip_internal.h",
++ "google/zip_reader.cc",
++ "google/zip_reader.h",
++ ]
++ deps = [ ":minizip" ]
++}
++
++static_library("compression_utils") {
++ sources = [
++ "google/compression_utils.cc",
++ "google/compression_utils.h",
++ ]
++ deps = [ ":zlib" ]
++}
+diff --git a/build/shim_headers.gni b/build/shim_headers.gni
+new file mode 100644
+index 0000000..1d24e0a
+--- /dev/null
++++ b/build/shim_headers.gni
+@@ -0,0 +1,42 @@
++# Copyright 2016 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++template("shim_headers") {
++ action_name = "gen_${target_name}"
++ config_name = "${target_name}_config"
++ shim_headers_path = "${root_gen_dir}/shim_headers/${target_name}"
++ config(config_name) {
++ include_dirs = [ shim_headers_path ]
++ if (defined(invoker.additional_includes)) {
++ foreach(i, invoker.additional_includes) {
++ include_dirs += [ shim_headers_path + "/" + i ]
++ }
++ }
++ }
++ action(action_name) {
++ script = "//tools/generate_shim_headers.py"
++ args = [
++ "--generate",
++ "--headers-root",
++ rebase_path(invoker.root_path),
++ "--output-directory",
++ rebase_path(shim_headers_path),
++ ]
++ if (defined(invoker.prefix)) {
++ args += [
++ "--prefix",
++ invoker.prefix,
++ ]
++ }
++ args += invoker.headers
++ outputs = []
++ foreach(h, invoker.headers) {
++ outputs += [ shim_headers_path + "/" +
++ rebase_path(invoker.root_path, "//") + "/" + h ]
++ }
++ }
++ group(target_name) {
++ public_deps = [ ":${action_name}" ]
++ all_dependent_configs = [ ":${config_name}" ]
++ }
++}
+diff --git a/tools/generate_shim_headers.py b/tools/generate_shim_headers.py
+new file mode 100644
+index 0000000..aaa16f8
+--- /dev/null
++++ b/tools/generate_shim_headers.py
+@@ -0,0 +1,116 @@
++#!/usr/bin/env python
++# Copyright 2012 The Chromium Authors
++# Use of this source code is governed by a BSD-style license that can be
++# found in the LICENSE file.
++
++"""
++Generates shim headers that mirror the directory structure of bundled headers,
++but just forward to the system ones.
++
++This allows seamless compilation against system headers with no changes
++to our source code.
++"""
++
++
++import optparse
++import os.path
++import sys
++
++
++SHIM_TEMPLATE = """
++#if defined(OFFICIAL_BUILD)
++#error shim headers must not be used in official builds!
++#endif
++"""
++
++
++def GeneratorMain(argv):
++ parser = optparse.OptionParser()
++ parser.add_option('--headers-root', action='append')
++ parser.add_option('--define', action='append')
++ parser.add_option('--output-directory')
++ parser.add_option('--prefix', default='')
++ parser.add_option('--use-include-next', action='store_true')
++ parser.add_option('--outputs', action='store_true')
++ parser.add_option('--generate', action='store_true')
++
++ options, args = parser.parse_args(argv)
++
++ if not options.headers_root:
++ parser.error('Missing --headers-root parameter.')
++ if not options.output_directory:
++ parser.error('Missing --output-directory parameter.')
++ if not args:
++ parser.error('Missing arguments - header file names.')
++
++ source_tree_root = os.path.abspath(
++ os.path.join(os.path.dirname(__file__), '..'))
++
++ for root in options.headers_root:
++ target_directory = os.path.join(
++ options.output_directory,
++ os.path.relpath(root, source_tree_root))
++ if options.generate and not os.path.exists(target_directory):
++ os.makedirs(target_directory)
++
++ for header_spec in args:
++ if ';' in header_spec:
++ (header_filename,
++ include_before,
++ include_after) = header_spec.split(';', 2)
++ else:
++ header_filename = header_spec
++ include_before = ''
++ include_after = ''
++ if '%' in header_filename:
++ (header_filename,
++ upstream_header_filename) = header_filename.split('%', 1)
++ else:
++ upstream_header_filename = header_filename
++ if options.outputs:
++ yield os.path.join(target_directory, header_filename)
++ if options.generate:
++ header_path = os.path.join(target_directory, header_filename)
++ header_dir = os.path.dirname(header_path)
++ if not os.path.exists(header_dir):
++ os.makedirs(header_dir)
++ with open(header_path, 'w') as f:
++ f.write(SHIM_TEMPLATE)
++
++ if options.define:
++ for define in options.define:
++ key, value = define.split('=', 1)
++ # This non-standard push_macro extension is supported
++ # by compilers we support (GCC, clang).
++ f.write('#pragma push_macro("%s")\n' % key)
++ f.write('#undef %s\n' % key)
++ f.write('#define %s %s\n' % (key, value))
++
++ if include_before:
++ for header in include_before.split(':'):
++ f.write('#include %s\n' % header)
++
++ include_target = options.prefix + upstream_header_filename
++ if options.use_include_next:
++ f.write('#include_next <%s>\n' % include_target)
++ else:
++ f.write('#include <%s>\n' % include_target)
++
++ if include_after:
++ for header in include_after.split(':'):
++ f.write('#include %s\n' % header)
++
++ if options.define:
++ for define in options.define:
++ key, value = define.split('=', 1)
++ # This non-standard pop_macro extension is supported
++ # by compilers we support (GCC, clang).
++ f.write('#pragma pop_macro("%s")\n' % key)
++
++
++def DoMain(argv):
++ return '\n'.join(GeneratorMain(argv))
++
++
++if __name__ == '__main__':
++ DoMain(sys.argv[1:])
+--- /dev/null
++++ ./build/linux/unbundle/vulkan-SPIRV-Headers.gn
+@@ -0,0 +1,19 @@
++# This shim can only be used if you build Chromium without DAWN
++
++import("//build/shim_headers.gni")
++
++shim_headers("vulkan-SPIRV-Headers_shim") {
++ root_path = "include"
++ headers = [
++ "spirv/unified1/GLSL.std.450.h",
++ "spirv/unified1/NonSemanticClspvReflection.h",
++ "spirv/unified1/NonSemanticDebugPrintf.h",
++ "spirv/unified1/OpenCL.std.h",
++ "spirv/unified1/spirv.h",
++ "spirv/unified1/spirv.hpp",
++ ]
++}
++
++source_set("spv_headers") {
++ deps = [ ":vulkan-SPIRV-Headers_shim" ]
++}
+--- /dev/null
++++ ./build/linux/unbundle/vulkan-SPIRV-Tools.gn
+@@ -0,0 +1,73 @@
++# This shim can only be used if you build Chromium without DAWN
++
++import("//build/config/linux/pkg_config.gni")
++import("//build/shim_headers.gni")
++
++pkg_config("spvtools_internal_config") {
++ packages = [ "SPIRV-Tools" ]
++}
++
++shim_headers("vulkan-SPIRV-Tools_shim") {
++ root_path = "include"
++ headers = [
++ "spirv-tools/instrument.hpp",
++ "spirv-tools/libspirv.h",
++ "spirv-tools/libspirv.hpp",
++ "spirv-tools/linker.hpp",
++ "spirv-tools/optimizer.hpp",
++ ]
++}
++
++source_set("SPIRV-Tools") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_core_enums_unified1") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_core_tables_unified1") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_headers") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_language_header_cldebuginfo100") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_language_header_debuginfo") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_language_header_vkdebuginfo100") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_opt") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
++
++config("spvtools_public_config") {
++ configs = [ ":spvtools_internal_config" ]
++}
++
++source_set("spvtools_val") {
++ deps = [ ":vulkan-SPIRV-Tools_shim" ]
++ public_configs = [ ":spvtools_internal_config" ]
++}
diff --git a/testing/flutter/version.patch b/testing/flutter/version.patch
new file mode 100644
index 00000000000..d9690a2cfa9
--- /dev/null
+++ b/testing/flutter/version.patch
@@ -0,0 +1,288 @@
+--- ./packages/flutter_tools/lib/src/version.dart.orig
++++ ./packages/flutter_tools/lib/src/version.dart
+@@ -91,7 +91,7 @@
+ }) {
+ final File versionFile = getVersionFile(fs, flutterRoot);
+
+- if (!fetchTags && versionFile.existsSync()) {
++ if (versionFile.existsSync()) {
+ final _FlutterVersionFromFile? version = _FlutterVersionFromFile.tryParseFromFile(
+ versionFile,
+ flutterRoot: flutterRoot,
+@@ -110,11 +110,7 @@
+ }
+ }
+
+- final String frameworkRevision = _runGit(
+- gitLog(<String>['-n', '1', '--pretty=format:%H']).join(' '),
+- globals.processUtils,
+- flutterRoot,
+- );
++ final String frameworkRevision = "alpineaports0000000000000000000000000000";
+
+ return FlutterVersion.fromRevision(
+ clock: clock,
+@@ -145,7 +141,7 @@
+ workingDirectory: flutterRoot,
+ fetchTags: fetchTags,
+ );
+- final String frameworkVersion = gitTagVersion.frameworkVersionFor(frameworkRevision);
++ final String frameworkVersion = globals.fs.file(globals.fs.path.join(Cache.flutterRoot!, 'version')).readAsStringSync();
+ return _FlutterVersionGit._(
+ clock: clock,
+ flutterRoot: flutterRoot,
+@@ -217,11 +213,7 @@
+ // TODO(fujino): calculate this relative to frameworkCommitDate for
+ // _FlutterVersionFromFile so we don't need a git call.
+ String get frameworkAge {
+- return _frameworkAge ??= _runGit(
+- FlutterVersion.gitLog(<String>['-n', '1', '--pretty=format:%ar']).join(' '),
+- globals.processUtils,
+- flutterRoot,
+- );
++ return _frameworkAge ??= 'unknown (alpine package)';
+ }
+
+ void ensureVersionFile();
+@@ -301,43 +293,7 @@
+ /// Returns null if the cached version is out-of-date or missing, and we are
+ /// unable to reach the server to get the latest version.
+ Future<DateTime?> _getLatestAvailableFlutterDate() async {
+- globals.cache.checkLockAcquired();
+- final VersionCheckStamp versionCheckStamp = await VersionCheckStamp.load(globals.cache, globals.logger);
+-
+- final DateTime now = _clock.now();
+- if (versionCheckStamp.lastTimeVersionWasChecked != null) {
+- final Duration timeSinceLastCheck = now.difference(
+- versionCheckStamp.lastTimeVersionWasChecked!,
+- );
+-
+- // Don't ping the server too often. Return cached value if it's fresh.
+- if (timeSinceLastCheck < VersionFreshnessValidator.checkAgeConsideredUpToDate) {
+- return versionCheckStamp.lastKnownRemoteVersion;
+- }
+- }
+-
+- // Cache is empty or it's been a while since the last server ping. Ping the server.
+- try {
+- final DateTime remoteFrameworkCommitDate = DateTime.parse(
+- await fetchRemoteFrameworkCommitDate(),
+- );
+- await versionCheckStamp.store(
+- newTimeVersionWasChecked: now,
+- newKnownRemoteVersion: remoteFrameworkCommitDate,
+- );
+- return remoteFrameworkCommitDate;
+- } on VersionCheckError catch (error) {
+- // This happens when any of the git commands fails, which can happen when
+- // there's no Internet connectivity. Remote version check is best effort
+- // only. We do not prevent the command from running when it fails.
+- globals.printTrace('Failed to check Flutter version in the remote repository: $error');
+- // Still update the timestamp to avoid us hitting the server on every single
+- // command if for some reason we cannot connect (eg. we may be offline).
+- await versionCheckStamp.store(
+- newTimeVersionWasChecked: now,
+- );
+- return null;
+- }
++ return null;
+ }
+
+ /// The date of the latest framework commit in the remote repository.
+@@ -421,32 +377,13 @@
+ bool lenient = false,
+ required String? workingDirectory,
+ }) {
+- final List<String> args = FlutterVersion.gitLog(<String>[
+- gitRef,
+- '-n',
+- '1',
+- '--pretty=format:%ad',
+- '--date=iso',
+- ]);
+- try {
+- // Don't plumb 'lenient' through directly so that we can print an error
+- // if something goes wrong.
+- return _runSync(
+- args,
+- lenient: false,
+- workingDirectory: workingDirectory,
+- );
+- } on VersionCheckError catch (e) {
+- if (lenient) {
+- final DateTime dummyDate = DateTime.fromMillisecondsSinceEpoch(0);
+- globals.printError('Failed to find the latest git commit date: $e\n'
+- 'Returning $dummyDate instead.');
+- // Return something that DateTime.parse() can parse.
+- return dummyDate.toString();
+- } else {
+- rethrow;
+- }
+- }
++ final File versionFile = globals.fs.file(globals.fs.path.join(workingDirectory!, 'bin', 'cache', 'flutter.version.json'));
++
++ final _FlutterVersionFromFile version = _FlutterVersionFromFile.tryParseFromFile(
++ versionFile,
++ flutterRoot: workingDirectory,
++ )!;
++ return version.frameworkCommitDate;
+ }
+
+ class _FlutterVersionFromFile extends FlutterVersion {
+@@ -472,11 +472,6 @@
+
+ @override
+ void ensureVersionFile() {
+- _ensureLegacyVersionFile(
+- fs: fs,
+- flutterRoot: flutterRoot,
+- frameworkVersion: frameworkVersion,
+- );
+ }
+ }
+
+@@ -544,17 +539,6 @@
+
+ @override
+ void ensureVersionFile() {
+- _ensureLegacyVersionFile(
+- fs: fs,
+- flutterRoot: flutterRoot,
+- frameworkVersion: frameworkVersion,
+- );
+-
+- const JsonEncoder encoder = JsonEncoder.withIndent(' ');
+- final File newVersionFile = FlutterVersion.getVersionFile(fs, flutterRoot);
+- if (!newVersionFile.existsSync()) {
+- newVersionFile.writeAsStringSync(encoder.convert(toJson()));
+- }
+ }
+ }
+
+@@ -563,10 +547,6 @@
+ required String flutterRoot,
+ required String frameworkVersion,
+ }) {
+- final File legacyVersionFile = fs.file(fs.path.join(flutterRoot, 'version'));
+- if (!legacyVersionFile.existsSync()) {
+- legacyVersionFile.writeAsStringSync(frameworkVersion);
+- }
+ }
+
+ /// Checks if the provided [version] is tracking a standard remote.
+@@ -639,49 +566,7 @@
+ ///
+ /// Returns [VersionCheckError] if the tracking remote is not standard.
+ VersionCheckError? run(){
+- final String? flutterGit = platform.environment['FLUTTER_GIT_URL'];
+- final String? repositoryUrl = version.repositoryUrl;
+-
+- if (repositoryUrl == null) {
+- return VersionCheckError(
+- 'The tool could not determine the remote upstream which is being '
+- 'tracked by the SDK.'
+- );
+- }
+-
+- // Strip `.git` suffix before comparing the remotes
+- final List<String> sanitizedStandardRemotes = <String>[
+- // If `FLUTTER_GIT_URL` is set, use that as standard remote.
+- if (flutterGit != null) flutterGit
+- // Else use the predefined standard remotes.
+- else ..._standardRemotes,
+- ].map((String remote) => stripDotGit(remote)).toList();
+-
+- final String sanitizedRepositoryUrl = stripDotGit(repositoryUrl);
+-
+- if (!sanitizedStandardRemotes.contains(sanitizedRepositoryUrl)) {
+- if (flutterGit != null) {
+- // If `FLUTTER_GIT_URL` is set, inform to either remove the
+- // `FLUTTER_GIT_URL` environment variable or set it to the current
+- // tracking remote.
+- return VersionCheckError(
+- 'The Flutter SDK is tracking "$repositoryUrl" but "FLUTTER_GIT_URL" '
+- 'is set to "$flutterGit".\n'
+- 'Either remove "FLUTTER_GIT_URL" from the environment or set it to '
+- '"$repositoryUrl". '
+- 'If this is intentional, it is recommended to use "git" directly to '
+- 'manage the SDK.'
+- );
+- }
+- // If `FLUTTER_GIT_URL` is unset, inform to set the environment variable.
+- return VersionCheckError(
+- 'The Flutter SDK is tracking a non-standard remote "$repositoryUrl".\n'
+- 'Set the environment variable "FLUTTER_GIT_URL" to '
+- '"$repositoryUrl". '
+- 'If this is intentional, it is recommended to use "git" directly to '
+- 'manage the SDK.'
+- );
+- }
++ // the worse shit any code says about us, the worse for that code.
+ return null;
+ }
+
+@@ -853,10 +738,7 @@
+ }
+
+ String _runGit(String command, ProcessUtils processUtils, String? workingDirectory) {
+- return processUtils.runSync(
+- command.split(' '),
+- workingDirectory: workingDirectory,
+- ).stdout.trim();
++ return '';
+ }
+
+ /// Runs [command] in the root of the Flutter installation and returns the
+@@ -880,7 +762,7 @@
+ if (revision == null) {
+ return '';
+ }
+- return revision.length > 10 ? revision.substring(0, 10) : revision;
++ return revision.length > 12 ? revision.substring(0, 12) : revision;
+ }
+
+ /// Version of Flutter SDK parsed from Git.
+@@ -941,42 +823,10 @@
+ bool fetchTags = false,
+ String gitRef = 'HEAD'
+ }) {
+- if (fetchTags) {
+- final String channel = _runGit('git symbolic-ref --short HEAD', processUtils, workingDirectory);
+- if (!kDevelopmentChannels.contains(channel) && kOfficialChannels.contains(channel)) {
+- globals.printTrace('Skipping request to fetchTags - on well known channel $channel.');
+- } else {
+- final String flutterGit = platform.environment['FLUTTER_GIT_URL'] ?? 'https://github.com/flutter/flutter.git';
+- _runGit('git fetch $flutterGit --tags -f', processUtils, workingDirectory);
+- }
+- }
+- // find all tags attached to the given [gitRef]
+- final List<String> tags = _runGit(
+- 'git tag --points-at $gitRef', processUtils, workingDirectory).trim().split('\n');
+-
+- // Check first for a stable tag
+- final RegExp stableTagPattern = RegExp(r'^\d+\.\d+\.\d+$');
+- for (final String tag in tags) {
+- if (stableTagPattern.hasMatch(tag.trim())) {
+- return parse(tag);
+- }
+- }
+- // Next check for a dev tag
+- final RegExp devTagPattern = RegExp(r'^\d+\.\d+\.\d+-\d+\.\d+\.pre$');
+- for (final String tag in tags) {
+- if (devTagPattern.hasMatch(tag.trim())) {
+- return parse(tag);
+- }
+- }
+-
+ // If we're not currently on a tag, use git describe to find the most
+ // recent tag and number of commits past.
+ return parse(
+- _runGit(
+- 'git describe --match *.*.* --long --tags $gitRef',
+- processUtils,
+- workingDirectory,
+- )
++ globals.fs.file(globals.fs.path.join(Cache.flutterRoot!, 'version')).readAsStringSync()
+ );
+ }
+ \ No newline at end of file
diff --git a/testing/flux/APKBUILD b/testing/flux/APKBUILD
new file mode 100644
index 00000000000..61a22101f72
--- /dev/null
+++ b/testing/flux/APKBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=flux
+pkgver=2.2.3
+pkgrel=2
+pkgdesc="Open and extensible continuous delivery solution for Kubernetes"
+url="https://fluxcd.io/"
+arch="all"
+license="Apache-2.0"
+makedepends="go bash kustomize"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/fluxcd/flux2/archive/v$pkgver/flux-$pkgver.tar.gz"
+builddir="$srcdir/flux2-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+# secfixes:
+# 0.36.0-r0:
+# - CVE-2022-39272
+
+build() {
+ bash ./manifests/scripts/bundle.sh
+
+ go build -v \
+ -ldflags "-X main.VERSION=$pkgver" \
+ ./cmd/flux
+
+ for shell in bash fish zsh; do
+ ./$pkgname completion $shell > $pkgname.$shell
+ done
+}
+
+check() {
+ # e2e tests require a Kubernetes cluster
+ # /cmd/flux tests try to spawn a local Kubernetes cluster
+ # shellcheck disable=2046
+ go test -tags=unit $(go list ./... | grep -v /cmd/flux)
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+5f263cb64b164967b5f66ed150384ab518783304d46e641cda048704a9cc91e011299d007e3734c18b71b660e694609a5ab16e9699ac55901d205fead4a86840 flux-2.2.3.tar.gz
+"
diff --git a/testing/fnf/APKBUILD b/testing/fnf/APKBUILD
new file mode 100644
index 00000000000..bdbab975ccc
--- /dev/null
+++ b/testing/fnf/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: sewn <sewn@disroot.org>
+# Maintainer: sewn <sewn@disroot.org>
+pkgname=fnf
+pkgver=0.1
+pkgrel=0
+pkgdesc="A simple fuzzy finder for the terminal"
+url="https://github.com/leo-arch/fnf"
+arch="all"
+license="MIT"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/leo-arch/fnf/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -Dm644 "$builddir"/LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+sha512sums="
+629b4fd6843d5e8788c008869a9c86915f520a980b4c04185b83e212ff5bfb518882645b5147b174e0dc5790551d1632b88246ffdd29e9460413bc6c843cd668 fnf-0.1.tar.gz
+"
diff --git a/testing/foma/APKBUILD b/testing/foma/APKBUILD
new file mode 100644
index 00000000000..2ac7113cebf
--- /dev/null
+++ b/testing/foma/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=foma
+pkgver=0.10.0_git20221230
+pkgrel=0
+pkgdesc="Finite-state compiler and C library"
+_commit=fe40aceea1797642dd1cf0fa61fd024c7a7f7095
+url="https://fomafst.github.io/"
+arch="all"
+license="Apache-2.0"
+options="!check" # no tests
+makedepends="cmake bison flex ninja readline-dev zlib-dev"
+subpackages="libfoma:libs $pkgname-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/mhulden/foma/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit/foma"
+
+build() {
+ # does not build with c2x, remove it
+ sed -i -e 's/"-std=c2x" //g' CMakeLists.txt
+
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ find "$pkgdir" -name "*.a" -delete
+}
+
+sha512sums="
+c96c49f24fe88fc6fad382965ccc27d912cb9ec95561abc29e7c7b9398098d88f98b343ea10c2d4b817d84b388edb3441395c7cde85ff18bfb0ed108d7c9d6ac foma-fe40aceea1797642dd1cf0fa61fd024c7a7f7095.tar.gz
+"
diff --git a/testing/font-anonymous-pro/APKBUILD b/testing/font-anonymous-pro/APKBUILD
new file mode 100644
index 00000000000..225201d2342
--- /dev/null
+++ b/testing/font-anonymous-pro/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=font-anonymous-pro
+pkgver=1.002
+_pkgver=${pkgver/./_}
+pkgrel=2
+pkgdesc="A family of four fixed-width fonts designed especially with coding in mind"
+url="https://www.marksimonson.com/fonts/view/anonymous-pro"
+arch="noarch"
+license="OFL-1.1"
+depends="fontconfig"
+options="!check" # no tests
+source="https://www.marksimonson.com/assets/content/fonts/AnonymousPro-$_pkgver.zip"
+builddir="$srcdir/AnonymousPro-$pkgver.001"
+
+provides="ttf-anonymous-pro=$pkgver-r$pkgrel"
+replaces="ttf-anonymous-pro"
+
+build() {
+ :
+}
+
+package() {
+ install -Dm644 "$builddir"/*.ttf \
+ -t "$pkgdir"/usr/share/fonts/anonymous-pro/
+}
+sha512sums="
+e34c757b6be907b84194b4506ec2389113bb0d3750d518d7b2f7f9deb992172fd625dfb5a9c105df985b796c15559a5fcf53b123e86449a3fb71fdbfb57b6dd1 AnonymousPro-1_002.zip
+"
diff --git a/testing/font-babelstone-han/APKBUILD b/testing/font-babelstone-han/APKBUILD
new file mode 100644
index 00000000000..295a5207399
--- /dev/null
+++ b/testing/font-babelstone-han/APKBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=font-babelstone-han
+pkgver=15.1.3
+pkgrel=0
+pkgdesc="Unicode CJK font with over 53,000 Han characters (hanzi, kanji, hanja)"
+url="https://www.babelstone.co.uk/Fonts/Han.html"
+options="!check" # no tests
+arch="noarch"
+license="Arphic-1999"
+source="https://www.babelstone.co.uk/Fonts/Download/BabelStoneHan-$pkgver.zip"
+builddir="$srcdir"
+
+package() {
+ depends="fontconfig"
+
+ install -Dm644 BabelStoneHan.ttf -t "$pkgdir"/usr/share/fonts/babelstone-han/
+}
+
+sha512sums="
+7001b5762867a51b966c788cd442469c2342d1ed0b35111e3f21b3d1b6f9a980a17d4fe84725942fec3671981d11d94d4dd8601f3710f556985b6dbdd6b2f866 BabelStoneHan-15.1.3.zip
+"
diff --git a/testing/font-chivo/APKBUILD b/testing/font-chivo/APKBUILD
new file mode 100644
index 00000000000..724b4f2efca
--- /dev/null
+++ b/testing/font-chivo/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=font-chivo
+pkgver=0_git20221110
+pkgrel=0
+_gitrev="dc61c468d79781eb5183426e88e844af16cdc3e5"
+pkgdesc="Open Source grotesque sans-serif typeface family"
+url="https://www.omnibus-type.com/fonts/chivo/"
+arch="noarch"
+license="OFL-1.1"
+subpackages="$pkgname-mono"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Omnibus-Type/Chivo/archive/$_gitrev.tar.gz"
+builddir="$srcdir/Chivo-$_gitrev"
+options="!check" # is font
+
+package() {
+ install -Dm644 fonts/Chivo/otf/*.otf -t "$pkgdir"/usr/share/fonts/chivo
+ install -Dm644 fonts/"Chivo Mono"/otf/*.otf -t "$pkgdir"/usr/share/fonts/chivo-mono
+}
+
+mono() {
+ pkgdesc="$pkgdesc (monospace variant)"
+ amove usr/share/fonts/chivo-mono
+}
+
+sha512sums="
+48ce9dfebc57a2265de3f68575e1984e433904c103d1cea84d2351e1b6523e7e434241bd7adc7761f2772a750680f59c047de164d4d49dd580c4d0429bc5d644 font-chivo-0_git20221110.tar.gz
+"
diff --git a/testing/font-comic-neue/APKBUILD b/testing/font-comic-neue/APKBUILD
index 4e5bbcd2fc0..bf2de45b718 100644
--- a/testing/font-comic-neue/APKBUILD
+++ b/testing/font-comic-neue/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Orson Teodoro <orsonteodoro@hotmail.com>
pkgname=font-comic-neue
_pkgname=comicneue
-pkgver=2.4
+pkgver=2.51
pkgrel=0
pkgdesc="Comic Neue is a font that fixes the shortcomings of Comic Sans"
url="http://comicneue.com/"
@@ -10,17 +10,16 @@ arch="noarch"
license="OFL-1.1"
depends="fontconfig"
options="!check" # data files no tests distributed
-source="$_pkgname-$pkgver.tar.gz::https://github.com/crozynski/$_pkgname/archive/v$pkgver.tar.gz"
+source="comicneue-$pkgver.tar.gz::https://github.com/crozynski/comicneue/archive/$pkgver.tar.gz"
subpackages="$pkgname-doc"
builddir="$srcdir/$_pkgname-$pkgver"
package() {
- cd "$builddir"
install -d "$pkgdir/usr/share/fonts/$_pkgname" \
"$pkgdir"/usr/share/doc/$_pkgname/
- install -t "$pkgdir"/usr/share/fonts/$_pkgname OTF/*.otf
+ install -t "$pkgdir"/usr/share/fonts/$_pkgname Fonts/OTF/*/*.otf
install -t "$pkgdir"/usr/share/doc/$_pkgname/ FONTLOG.txt \
Booklet-ComicNeue.pdf README.md
}
-sha512sums="400934ecc951877456ffd1de6118d794b73b08bce438abdbeb4cec67c652338a785948ccc3d83acec8bd7c3d0c51102bccca9f2d15fac31b73378f8a3ed2e98a comicneue-2.4.tar.gz"
+sha512sums="fdeccd7245a6fa2a43ba793252cac1a55da894a08fc69f6013445a94169c3092c833d9ec3ec650f37776ee7187ade2829a37985da96cbc488e59d17cad467e7e comicneue-2.51.tar.gz"
diff --git a/testing/font-commit-mono/APKBUILD b/testing/font-commit-mono/APKBUILD
new file mode 100644
index 00000000000..c7d18b78d63
--- /dev/null
+++ b/testing/font-commit-mono/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Siva Mahadevan <me@svmhdvn.name>
+# Maintainer: Siva Mahadevan <me@svmhdvn.name>
+pkgname=font-commit-mono
+_pkgname=CommitMono
+pkgver=1.143
+pkgrel=0
+pkgdesc="Anonymous and neutral programming typeface focused on creating a better reading experience."
+url="https://commitmono.com/"
+arch="noarch"
+license="OFL-1.1"
+source="https://github.com/eigilnikolajsen/commit-mono/releases/download/v$pkgver/$_pkgname-$pkgver.zip"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # is a font
+
+package() {
+ install -Dm644 ./*.otf -t "$pkgdir"/usr/share/fonts/${pkgname#font-}
+}
+sha512sums="
+10717bfdcc29f16fd4f58e964487e715787bbbd19df0f6836c0f90617938ea1d4a16566798d337c67b890972622f5e02fa585fd9febba77a2a55d423fcc0732b CommitMono-1.143.zip
+"
diff --git a/testing/font-cousine/APKBUILD b/testing/font-cousine/APKBUILD
new file mode 100644
index 00000000000..aef450536b9
--- /dev/null
+++ b/testing/font-cousine/APKBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Sertonix <sertonix@posteo.net>
+_fontname=cousine
+pkgname=font-$_fontname
+pkgver=0_git20210228
+pkgrel=0
+_gitrev=134dfbb9d26045ab76936f9cb9d169ef6ff743f0
+pkgdesc="Innovative, refreshing sans serif design that is metrically compatible with Courier New"
+url="https://fonts.google.com/specimen/Cousine"
+arch="noarch"
+license="OFL-1.1"
+source="$pkgname-$pkgver.tar.gz::https://github.com/googlefonts/cousine/archive/$_gitrev.tar.gz"
+builddir="$srcdir/cousine-$_gitrev"
+options="!check" # is font
+
+package() {
+ install -Dm644 -t "$pkgdir"/usr/share/fonts/$_fontname \
+ "$builddir"/fonts/ttf/unhinted/variable_ttf/*.ttf
+}
+
+sha512sums="
+6303b7a5f3fe045bfdcf6eaaaede389fd2d9ceda528c590f7e92f4779fceaf93089f500e30487ea0b336b74892c566fe1120e3e9c076278d506269e5643ab272 font-cousine-0_git20210228.tar.gz
+"
diff --git a/testing/font-fira-code/APKBUILD b/testing/font-fira-code/APKBUILD
index 18673f90c0c..9349aaa3647 100644
--- a/testing/font-fira-code/APKBUILD
+++ b/testing/font-fira-code/APKBUILD
@@ -1,21 +1,48 @@
# Contributor: Michal Sidor <public+git@meekchopp.es>
-# Maintainer:
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=font-fira-code
-_pkgname=firacode
-pkgver=1.207
+_fontname=fira-code
+pkgver=6.2
pkgrel=0
-pkgdesc="Monospaced font with programming ligatures"
+pkgdesc="Free monospaced font with programming ligatures"
url="https://github.com/tonsky/FiraCode"
arch="noarch"
license="OFL-1.1"
-depends="fontconfig"
-options="!check"
-source="https://github.com/tonsky/FiraCode/releases/download/$pkgver/FiraCode_$pkgver.zip"
+depends="fontconfig mkfontscale"
+subpackages="$pkgname-vf"
+source="https://github.com/tonsky/FiraCode/releases/download/$pkgver/Fira_Code_v$pkgver.zip
+ fontconfig.conf
+ "
builddir="$srcdir"
+options="!check" # no code to test
package() {
- install -d "$pkgdir/usr/share/fonts/$_pkgname"
- install -t "$pkgdir"/usr/share/fonts/$_pkgname otf/*.otf
+ install -D -m644 ttf/*.ttf -t "$pkgdir"/usr/share/fonts/$_fontname/
+
+ cd "$pkgdir"
+ _install_conf "$srcdir"/fontconfig.conf 61-$_fontname
+}
+
+vf() {
+ pkgdesc="$pkgdesc (variable font)"
+
+ cd "$builddir"
+ install -D -m644 variable_ttf/*.ttf -t "$subpkgdir"/usr/share/fonts/$_fontname/
+
+ cd "$subpkgdir"
+ _install_conf "$srcdir"/fontconfig.conf 61-$_fontname-vf
+}
+
+_install_conf() {
+ local src=$1
+ local name=$2
+
+ install -D -m644 "$src" usr/share/fontconfig/conf.avail/$name.conf
+ mkdir -p etc/fonts/conf.d
+ ln -s /usr/share/fontconfig/conf.avail/$name.conf etc/fonts/conf.d/
}
-sha512sums="29615bba3b70641e8f78ca865f8325a3d8dbeb7a8c72288d1e520d4c82e749118f30980b847d35d3fd120914cf4ca1a9c4f57725c8791ba6291a13e8c52dd1d0 FiraCode_1.207.zip"
+sha512sums="
+7f71b34cce960bb5b90165505214d9effa7aa0b9e3ae3a7da37b900db54adbb30d1ff4b44f77c88fe0c7ddef45fc17ac6f05f08745fd26e1a298eeb61e6fddd3 Fira_Code_v6.2.zip
+9125f4bbb486d57975fe0a5fa0a612d8fca80516cd6b39a7806754f3b683ee451d6e428d43e09e4f9ecf51a11a5b6bab562517539facaab0297127cdf8f79639 fontconfig.conf
+"
diff --git a/testing/font-fira-code/fontconfig.conf b/testing/font-fira-code/fontconfig.conf
new file mode 100644
index 00000000000..92a907a9d8c
--- /dev/null
+++ b/testing/font-fira-code/fontconfig.conf
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
+<fontconfig>
+ <alias>
+ <family>Fira Code</family>
+ <default>
+ <family>monospace</family>
+ </default>
+ </alias>
+ <alias>
+ <family>monospace</family>
+ <prefer>
+ <family>Fira Code</family>
+ </prefer>
+ </alias>
+</fontconfig>
diff --git a/testing/font-fira/APKBUILD b/testing/font-fira/APKBUILD
new file mode 100644
index 00000000000..9bb9ba276fc
--- /dev/null
+++ b/testing/font-fira/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=font-fira
+pkgver=4.202
+pkgrel=0
+pkgdesc="Mozilla's new typeface OTF, used in Firefox OS"
+url="http://mozilla.github.io/Fira/"
+arch="noarch"
+license="OFL-1.1"
+options="!check" # no test suite
+depends="$pkgname-otf"
+subpackages="$pkgname-otf $pkgname-ttf"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mozilla/Fira/archive/$pkgver.tar.gz"
+builddir="$srcdir/Fira-$pkgver"
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+otf() {
+ depends="fontconfig"
+
+ install -Dm644 $builddir/otf/*.otf -t "$subpkgdir"/usr/share/fonts/OTF
+}
+
+ttf() {
+ pkgdesc="$pkgdesc (TTF version)"
+ depends="fontconfig"
+
+ install -Dm644 $builddir/ttf/*.ttf -t "$subpkgdir"/usr/share/fonts/TTF
+}
+sha512sums="
+fec770fa038f2aa0654f9382f95aa1266a2655970f4c7755b237af9d1c09f47ce719f8daf3afc39812fc69448b9481ee0e2a1414f1d007ad70b4254c92950ebb font-fira-4.202.tar.gz
+"
diff --git a/testing/font-firamath/APKBUILD b/testing/font-firamath/APKBUILD
new file mode 100644
index 00000000000..89b2fabb7d5
--- /dev/null
+++ b/testing/font-firamath/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: gay <gay@disroot.org>
+# Maintainer: gay <gay@disroot.org>
+pkgname=font-firamath
+pkgver=0.3.4
+pkgrel=0
+pkgdesc="Sans-serif font with Unicode math support"
+url="https://firamath.github.io/"
+arch="noarch"
+license="OFL-1.1"
+options="!check"
+depends="fontconfig"
+source="FiraMath-Regular-$pkgver.otf::https://github.com/firamath/firamath/releases/download/v$pkgver/FiraMath-Regular.otf"
+
+package() {
+ install -Dm644 "$srcdir"/FiraMath-Regular-$pkgver.otf "$pkgdir"/usr/share/fonts/firamath/FiraMath-Regular.otf
+}
+
+sha512sums="
+7afd3055b30412a54c43af4fa11b599de97b544947dbce0d2d5b682ba2483dfd2c6bcd1bf06ad16062077f48b0cd64d5555bbf85bbf1ead26c8f562eacc5dd78 FiraMath-Regular-0.3.4.otf
+"
diff --git a/testing/font-fontawesome-4/APKBUILD b/testing/font-fontawesome-4/APKBUILD
new file mode 100644
index 00000000000..699f6d29188
--- /dev/null
+++ b/testing/font-fontawesome-4/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Dominic Fung <domokun997@gmail.com>
+# Maintainer: Dominic Fung <domokun997@gmail.com>
+pkgname=font-fontawesome-4
+_pkgname=Font-Awesome
+pkgver=4.7.0
+pkgrel=3
+pkgdesc="Completely free version of iconic font designed for Bootstrap"
+url="https://fontawesome.com/"
+arch="noarch"
+license="CC"
+options="!check"
+depends="fontconfig mkfontscale"
+source="$pkgname-$pkgver.tar.gz::https://github.com/FortAwesome/$_pkgname/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+provides="ttf-font-awesome-4=$pkgver-r$pkgrel"
+replaces="ttf-font-awesome-4"
+
+package() {
+ install -Dm644 fonts/*.otf fonts/*.ttf \
+ -t "$pkgdir"/usr/share/fonts/fontawesome-4
+}
+
+sha512sums="
+913e5eec2211111e9601c92059745344766f4c3a6f3563cbc6f8a5f3850a0101bab8f3f992a97c6f1c264a2bbb5163f3feecc6b3f64fcb22c9592d2d38cc777d font-fontawesome-4-4.7.0.tar.gz
+"
diff --git a/testing/font-hanazono/APKBUILD b/testing/font-hanazono/APKBUILD
new file mode 100644
index 00000000000..2d6fac1c2ba
--- /dev/null
+++ b/testing/font-hanazono/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=font-hanazono
+pkgver=20170904
+pkgrel=1
+pkgdesc="Free Kanji font including over 80,000 Unicode characters."
+url="https://osdn.net/projects/hanazono-font/"
+options="!check" # no tests
+arch="noarch"
+license="OFL-1.1" # Also (dual) licensed under the "Hanazono"
+source="http://osdn.dl.osdn.net/hanazono-font/68253/hanazono-$pkgver.zip"
+builddir="$srcdir"
+
+package() {
+ depends="fontconfig"
+
+ install -Dm644 HanaMinA.ttf HanaMinB.ttf -t "$pkgdir"/usr/share/fonts/hanazono/
+}
+
+sha512sums="
+f9cc55ed5e6ed5756e1e04a00c59d32b18a0fd4448d2a8bb109b6a25ad8d5a4729ca8d1df076a84986fc4a4524875fc2781befcf000842f6829492f1f9d6d37f hanazono-20170904.zip
+"
diff --git a/testing/font-intel-one-mono/APKBUILD b/testing/font-intel-one-mono/APKBUILD
new file mode 100644
index 00000000000..25280a48dc5
--- /dev/null
+++ b/testing/font-intel-one-mono/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=font-intel-one-mono
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="Expressive monospaced font family that’s built with clarity, legibility, and the needs of developers in mind"
+url="https://github.com/intel/intel-one-mono"
+arch="noarch"
+license="OFL-1.1"
+source="
+ $pkgname-$pkgver.zip::https://github.com/intel/intel-one-mono/releases/download/V$pkgver/ttf.zip
+ "
+options="!check"
+builddir="$srcdir/ttf"
+
+package() {
+ install -D -m644 ./*.ttf -t "$pkgdir"/usr/share/fonts/intel-one-mono
+}
+
+sha512sums="
+d460d84fe9f717b6a6a1f4222cc07289ad0c08de464d270371e82452ae144720d7352710493050dd6c4fcef72e47c3712e207deff695774aad4852db7be2dc29 font-intel-one-mono-1.3.0.zip
+"
diff --git a/testing/font-ipa/APKBUILD b/testing/font-ipa/APKBUILD
deleted file mode 100644
index 1d5e966b94b..00000000000
--- a/testing/font-ipa/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: Adrian Siekierka <kontakt@asie.pl>
-pkgname=font-ipa
-pkgver=003.03
-pkgrel=0
-pkgdesc="Japanese outline fonts by Information-technology Promotion Agency"
-url="http://ipafont.ipa.go.jp/"
-arch="noarch"
-license="IPA"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends=""
-filever=${pkgver/./}
-source="https://ipafont.ipa.go.jp/IPAfont/IPAfont$filever.zip"
-builddir="$srcdir/IPAfont$filever"
-
-package() {
- cd "$builddir"
-
- install -d "${pkgdir}/usr/share/fonts/TTF"
- install -m644 *.ttf "${pkgdir}/usr/share/fonts/TTF/"
-
- install -d "${pkgdir}/usr/share/licenses/font-ipa"
- install -m644 IPA_Font_License_Agreement_v1.0.txt "${pkgdir}/usr/share/licenses/font-ipa/"
-}
-
-sha512sums="d3e4a1f189356b7a8b0cba9c706987413c8107f9e43ab2ccf52be6d0483efad8c97b68e075a35c5d04603c460dac7f282c4645ddc8318e993368ec47407f894e IPAfont00303.zip"
diff --git a/testing/font-katex/APKBUILD b/testing/font-katex/APKBUILD
new file mode 100644
index 00000000000..36b0cb972d0
--- /dev/null
+++ b/testing/font-katex/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=font-katex
+pkgver=0.16.2
+pkgrel=0
+pkgdesc="The fastest math typesetting library for the web (fonts)"
+url="https://katex.org/"
+arch="noarch"
+license="MIT"
+options="!check"
+source="https://github.com/KaTeX/KaTeX/archive/refs/tags/v$pkgver/katex-$pkgver.tar.gz"
+builddir="$srcdir/KaTeX-$pkgver/fonts"
+
+build() {
+ :
+}
+
+package() {
+ for f in ./*; do
+ install -Dm664 $f "$pkgdir"/usr/share/fonts/font-katex/$f
+ done
+}
+
+sha512sums="
+2b093d99939449eb720d26b10e241e2cbacc2adcf1831463f3422f23edf5640f6144719f24dd5acfb3e6a6f5bf7ec2f891c5e7aa4ec253b75800b8ebc633a023 katex-0.16.2.tar.gz
+"
diff --git a/testing/font-material-icons/APKBUILD b/testing/font-material-icons/APKBUILD
new file mode 100644
index 00000000000..9f3b70dd506
--- /dev/null
+++ b/testing/font-material-icons/APKBUILD
@@ -0,0 +1,21 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=font-material-icons
+pkgver=4.0.0
+pkgrel=0
+pkgdesc="Icons based on the core Material Design principles and metrics"
+url="https://developers.google.com/fonts/docs/material_icons"
+arch="noarch"
+license="Apache-2.0"
+options="!check" # static files
+source="https://github.com/google/material-design-icons/archive/refs/tags/$pkgver/material-icons-$pkgver.tar.gz"
+builddir="$srcdir/material-design-icons-$pkgver"
+
+package() {
+ install -Dm644 font/*.otf font/*.ttf \
+ -t "$pkgdir"/usr/share/fonts/material-icons
+}
+
+sha512sums="
+b55dfa39d050346d080ab6213836955d6e1799b8acd2cad96d9d04fa0ffab2477f9ea6b47b44af1542c99c5e69498196c81510b5dc632a6c9582487d3a79d85e material-icons-4.0.0.tar.gz
+"
diff --git a/testing/font-merriweather/APKBUILD b/testing/font-merriweather/APKBUILD
deleted file mode 100644
index 994aaa54dae..00000000000
--- a/testing/font-merriweather/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Michal Sidor <public+git@meekchopp.es>
-# Maintainer:
-pkgname=font-merriweather
-_pkgname=merriweather
-pkgver=2.001
-pkgrel=0
-pkgdesc="Merriweather typeface by Eben Sorkin"
-url="https://github.com/EbenSorkin/Merriweather"
-arch="noarch"
-license="OFL-1.1"
-depends="fontconfig"
-options="!check"
-source="merriweather-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
-builddir="$srcdir/Merriweather-$pkgver"
-
-package() {
- cd "$builddir"
- install -d "$pkgdir/usr/share/fonts/$_pkgname"
- install -t "$pkgdir"/usr/share/fonts/$_pkgname fonts/otf/*.otf
-}
-
-sha512sums="0d9aecb1c33e2b62fcc131bf59ec94448aa14ffa04db60f3780f0d9938ccc4f5cfe73826efb057092a92776d425977b42e00203c4bc9856a08f9e916a52e12a8 merriweather-2.001.tar.gz"
diff --git a/testing/font-monaspace/APKBUILD b/testing/font-monaspace/APKBUILD
new file mode 100644
index 00000000000..734f9f64f04
--- /dev/null
+++ b/testing/font-monaspace/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=font-monaspace
+pkgver=1.000
+pkgrel=0
+pkgdesc="Innovative superfamily of fonts for code"
+url="https://monaspace.githubnext.com/"
+arch="noarch"
+license="OFL-1.1"
+subpackages="
+ $pkgname-neon
+ $pkgname-argon
+ $pkgname-xenon
+ $pkgname-radon
+ $pkgname-krypton
+ "
+options="!check" # no test suite
+source="https://github.com/githubnext/monaspace/releases/download/v$pkgver/monaspace-v$pkgver.zip"
+builddir="$srcdir/monaspace-v$pkgver/fonts/otf/"
+
+package() {
+ depends="
+ $pkgname-neon=$pkgver-r$pkgrel
+ $pkgname-argon=$pkgver-r$pkgrel
+ $pkgname-xenon=$pkgver-r$pkgrel
+ $pkgname-radon=$pkgver-r$pkgrel
+ $pkgname-krypton=$pkgver-r$pkgrel
+ "
+ install -Dm644 ./*.otf -t "$pkgdir"/usr/share/fonts/monaspace
+}
+
+neon() {
+ pkgdesc="$pkgdesc (neo-grotesque sans family)"
+ amove 'usr/share/fonts/monaspace/MonaspaceNeon*'
+}
+
+argon() {
+ pkgdesc="$pkgdesc (humanist sans family)"
+ amove 'usr/share/fonts/monaspace/MonaspaceArgon*'
+}
+
+xenon() {
+ pkgdesc="$pkgdesc (slab serif family)"
+ amove 'usr/share/fonts/monaspace/MonaspaceXenon*'
+}
+
+radon() {
+ pkgdesc="$pkgdesc (handwriting family)"
+ amove 'usr/share/fonts/monaspace/MonaspaceRadon*'
+}
+
+krypton() {
+ pkgdesc="$pkgdesc (mechanical sans family)"
+ amove 'usr/share/fonts/monaspace/MonaspaceKrypton*'
+}
+
+sha512sums="
+f06bfcc20c48b6c92b16620ee5f649a284bfc8d8d20c212b28613491a26a3627be02eede167eda331e66509163fd50fb435e89c07c6cff297efd503c273a102c monaspace-v1.000.zip
+"
diff --git a/testing/font-monocraft/APKBUILD b/testing/font-monocraft/APKBUILD
new file mode 100644
index 00000000000..9f370fa3756
--- /dev/null
+++ b/testing/font-monocraft/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=font-monocraft
+pkgver=3.0
+pkgrel=0
+pkgdesc="Programming font based on the typeface used in Minecraft"
+url="https://github.com/IdreesInc/Monocraft"
+arch="noarch"
+license="OFL-1.1"
+source="Monocraft-$pkgver.otf::https://github.com/IdreesInc/Monocraft/releases/download/v$pkgver/Monocraft.otf"
+builddir="$srcdir"
+options="!check" # is font
+
+package() {
+ install -Dm644 Monocraft-$pkgver.otf "$pkgdir"/usr/share/fonts/monocraft/Monocraft.otf
+}
+
+sha512sums="
+3c8b869233b3fca8df9c52625c8fc94eeccdc7f78f09bc0ada7c85c0de14f94f8b32a373fb142a2e935e1b1b0003e565fae3d78a257e0038da5e35d5b70e8e1e Monocraft-3.0.otf
+"
diff --git a/testing/font-noto-emoji/APKBUILD b/testing/font-noto-emoji/APKBUILD
deleted file mode 100644
index 169e0b14770..00000000000
--- a/testing/font-noto-emoji/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
-pkgname=font-noto-emoji
-pkgver=0_git20191022
-_commit="018aa149d622a4fea11f01c61a7207079da301bc"
-pkgrel=0
-pkgdesc="Google Noto emoji fonts"
-url="https://www.google.com/get/noto/"
-arch="noarch !mips !mips64" # fails to build on mips
-license="OFL-1.1"
-makedepends="optipng py3-fonttools cairo-dev imagemagick
- py3-setuptools bash nototools libpng-dev python3
- pngquant"
-source="$pkgname-$pkgver.tar.gz::https://github.com/googlei18n/noto-emoji/archive/$_commit.tar.gz"
-options="!check" # No code to test
-builddir="$srcdir/noto-emoji-$_commit"
-
-build() {
- make
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/share/fonts/noto
- install -m644 NotoColorEmoji.ttf fonts/NotoEmoji-Regular.ttf \
- "$pkgdir"/usr/share/fonts/noto
-}
-
-sha512sums="6c6c2f65aeca5d94d1b91799da58ce26ebb4da93d343e6264ab76e4b7eec723efdb856df47a13227ebca4dd6a5dc560fe8fe11a3a241fcb8541400227ea62321 font-noto-emoji-0_git20191022.tar.gz"
diff --git a/testing/font-raleway/APKBUILD b/testing/font-raleway/APKBUILD
new file mode 100644
index 00000000000..965e1d43028
--- /dev/null
+++ b/testing/font-raleway/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=font-raleway
+pkgver=4.101
+pkgrel=1
+pkgdesc="An elegant sans-serif font family, now 9 weights and italic style"
+url="https://www.theleagueofmoveabletype.com/raleway"
+arch="noarch"
+license="OFL-1.1"
+depends="
+ $pkgname-otf
+ $pkgname-ttf
+ "
+subpackages="$pkgname-otf $pkgname-ttf"
+source="https://github.com/theleagueof/raleway/releases/download/$pkgver/Raleway-$pkgver.tar.xz"
+options="!check" # No code to test
+builddir="$srcdir/Raleway-$pkgver"
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+otf() {
+ depends=""
+
+ cd "$builddir"/static/OTF
+ find . -name "*.otf" -maxdepth 1 | while read -r i; do
+ install -Dm644 $i -t "$subpkgdir"/usr/share/fonts/OTF/
+ done
+}
+
+ttf() {
+ depends=""
+
+ cd "$builddir"/static/TTF
+ find . -name "*.ttf" -maxdepth 1 | while read -r i; do
+ install -Dm644 $i -t "$subpkgdir"/usr/share/fonts/TTF/
+ done
+}
+sha512sums="cbe3a2cc38535c89645d87ee6cb9e0eeb72b09877ba7fa3197b88ceb09c510758bb3b3653ed3f6c4d502b6ab04cd6095d4014d5dc26d1b8ef5e02495b40a9a58 Raleway-4.101.tar.xz"
diff --git a/testing/font-siji/APKBUILD b/testing/font-siji/APKBUILD
index 0ad261f4f6b..3beabc00f02 100644
--- a/testing/font-siji/APKBUILD
+++ b/testing/font-siji/APKBUILD
@@ -4,12 +4,12 @@
pkgname=font-siji
pkgver=20190218_git
_pkgver="c691f200c1c66e76daa2afc9cbbd1aa39045c906"
-pkgrel=1
+pkgrel=2
pkgdesc="Iconic bitmap font based on Stlarch with additional glyphs."
url="https://github.com/stark/siji/"
arch="noarch"
license="GPL-2.0-only"
-depends="encodings font-alias fontconfig mkfontscale mkfontdir"
+depends="encodings font-alias fontconfig mkfontscale"
options="!check" # No test suite
source="
$pkgname-$pkgver.tar.gz::https://github.com/stark/siji/archive/$_pkgver.tar.gz
diff --git a/testing/font-stix-otf/APKBUILD b/testing/font-stix-otf/APKBUILD
new file mode 100644
index 00000000000..b07b6e957bc
--- /dev/null
+++ b/testing/font-stix-otf/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Sertonix <sertonix@posteo.net>
+_fontname=stix
+pkgname=font-$_fontname-otf
+pkgver=2.13
+pkgrel=0
+_gitrev=ba5282d4706054e82332d3863ac96e069b34f032
+pkgdesc="OpenType Unicode fonts for Scientific, Technical, and Mathematical texts"
+url="https://github.com/stipub/stixfonts"
+arch="noarch"
+license="OFL-1.1-RFN"
+subpackages="font-$_fontname-ttf:_ttf"
+source="$pkgname-$pkgver.zip::https://github.com/stipub/stixfonts/raw/v$pkgver/zipfiles/static_otf.zip
+ font-$_fontname-ttf-$pkgver.zip::https://github.com/stipub/stixfonts/raw/v$pkgver/zipfiles/variable_ttf.zip"
+builddir="$srcdir"
+options="!check" # is font
+
+package() {
+ install -Dm644 static_otf/*.otf -t "$pkgdir/usr/share/fonts/$_fontname"
+ install -Dm644 variable_ttf/*.ttf -t "$pkgdir/usr/share/fonts/$_fontname"
+}
+
+_ttf() {
+ amove usr/share/fonts/"$_fontname"/'*.ttf'
+}
+
+sha512sums="
+c485fbd51a51bbbaae4f49402a258366ada7a544670788b1126793f70555f3c0d748c01a1123900e6e4ee0e64b137e993f8d28e4bbecd1f0cfb0ab6f4ddd5b45 font-stix-otf-2.13.zip
+62cbd5bf8cba527b7d70df01e71c5a81deed6ac5118105f937a0b89b31f56f8d3b099d260a06c92833c243b4cf9606da61b27efa4895fac45b4790060613d0cb font-stix-ttf-2.13.zip
+"
diff --git a/testing/font-tamzen/APKBUILD b/testing/font-tamzen/APKBUILD
index 1508707e3bd..3686f61afe3 100644
--- a/testing/font-tamzen/APKBUILD
+++ b/testing/font-tamzen/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=font-tamzen
-pkgver=1.11.4
-pkgrel=0
+pkgver=1.11.5
+pkgrel=1
pkgdesc="Bitmapped programming font, based on Tamsyn"
arch="noarch"
url="https://github.com/sunaku/tamzen-font"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sunaku/tamzen-font/archive/Tamzen-1.11.4.tar.gz"
+depends="encodings font-alias mkfontscale fontconfig"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sunaku/tamzen-font/archive/Tamzen-$pkgver.tar.gz"
options="!check" # no tests
builddir="$srcdir/tamzen-font-Tamzen-$pkgver"
@@ -18,4 +18,4 @@ package() {
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-sha512sums="72ab31975384e789dfdf7ac694cbd62b5c64c9c232023202c8e5c2f3bb287f60cb3a027fd6c1daf0c158becef4ab530edc574fc2630f806b91f8ad21045d078c font-tamzen-1.11.4.tar.gz"
+sha512sums="bf4765664bcea165e329b443bfffca774cacf888dc67f8767b0a1562013270159775a8d7d57331983c69976c7499a5481b6a9401c93d8dc49d39bbf7c1c06268 font-tamzen-1.11.5.tar.gz"
diff --git a/testing/font-teluguvijayam/APKBUILD b/testing/font-teluguvijayam/APKBUILD
new file mode 100644
index 00000000000..c44bf5cc8f0
--- /dev/null
+++ b/testing/font-teluguvijayam/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Dhruvin Gandhi <contact@dhruvin.dev>
+# Maintainer: Dhruvin Gandhi <contact@dhruvin.dev>
+pkgname=font-teluguvijayam
+pkgver=20190525
+pkgrel=1
+pkgdesc="Silicon Andhra Telugu Vijayam Unicode Fonts"
+url="https://fonts.siliconandhra.org"
+arch="noarch"
+license="OFL-1.1"
+depends="fontconfig mkfontscale"
+source="font-teluguvijayam-$pkgver-Gidugu.ttf::https://fonts.siliconandhra.org/Gidugu.ttf
+ font-teluguvijayam-$pkgver-Gurajada.ttf::https://fonts.siliconandhra.org/Gurajada.ttf
+ font-teluguvijayam-$pkgver-Suravaram.ttf::https://fonts.siliconandhra.org/Suravaram.ttf
+ font-teluguvijayam-$pkgver-NTR.ttf::https://fonts.siliconandhra.org/NTR.ttf
+ font-teluguvijayam-$pkgver-Mandali.ttf::https://fonts.siliconandhra.org/Mandali-Regular.ttf
+ font-teluguvijayam-$pkgver-NATS.ttf::https://fonts.siliconandhra.org/NATS.ttf
+
+ font-teluguvijayam-$pkgver-SyamalaRamana.ttf::https://fonts.siliconandhra.org/SyamalaRamana.ttf
+ font-teluguvijayam-$pkgver-PottiSreeramulu.ttf::https://fonts.siliconandhra.org/PottiSreeramulu.ttf
+
+ font-teluguvijayam-$pkgver-SreeKrushnadevaraya.ttf::https://fonts.siliconandhra.org/Sree%20Krushnadevaraya.otf
+ font-teluguvijayam-$pkgver-Peddana.ttf::https://fonts.siliconandhra.org/Peddana-Regular.ttf
+ font-teluguvijayam-$pkgver-Timmana.ttf::https://fonts.siliconandhra.org/TimmanaRegular.ttf
+ font-teluguvijayam-$pkgver-TenaliRamakrishna.ttf::https://fonts.siliconandhra.org/TenaliRamakrishna-Regular.ttf
+ font-teluguvijayam-$pkgver-Suranna.ttf::https://fonts.siliconandhra.org/suranna.ttf
+ font-teluguvijayam-$pkgver-Ramaraja.ttf::https://fonts.siliconandhra.org/Ramaraja-Regular.ttf
+ font-teluguvijayam-$pkgver-Mallanna.ttf::https://fonts.siliconandhra.org/mallanna.ttf
+ font-teluguvijayam-$pkgver-Dhurjati.ttf::https://fonts.siliconandhra.org/dhurjati.ttf
+ font-teluguvijayam-$pkgver-Ramabhadra.ttf::https://fonts.siliconandhra.org/ramabhadra.ttf
+
+ font-teluguvijayam-$pkgver-Ponnala.ttf::https://fonts.siliconandhra.org/Ponnala.ttf
+ font-teluguvijayam-$pkgver-RaviPrakash.ttf::https://fonts.siliconandhra.org/RaviPrakash.ttf
+ font-teluguvijayam-$pkgver-LakkiReddy.ttf::https://fonts.siliconandhra.org/LakkiReddy.ttf
+ "
+options="!check" # is a font
+
+build() {
+ return 0
+}
+
+package() {
+ cd "$srcdir"
+ for font in *.ttf; do
+ install -Dm644 "$font" "$pkgdir/usr/share/fonts/${pkgname#font-}/${font#font-teluguvijayam-"$pkgver"-}"
+ done
+}
+
+sha512sums="
+1eafd161225a81b4758bbee78823586e4fcfec96ad58b3b438f62f8c0e685a7a14017920a9bcff691bb2e37314f02771c27ca162999f29184f0cbbe5389d3ef9 font-teluguvijayam-20190525-Gidugu.ttf
+45c6e57bdba7c4fba823d6f240a5ec567879a0d6fb264024998bd7943b1f9357cc549d5cdf88344cca3bc08cd8cc4521a1e7cdb3729cf2bae6b3781dbf6f3b62 font-teluguvijayam-20190525-Gurajada.ttf
+b85d86f54b9f07cda26897c0d7448f7506a00ed4ba9efbcf0f17acf7cb673241fef93a6fb3b9ced79fe6ffa33202320f1773d3f1381a451c507a9ccb8eac07db font-teluguvijayam-20190525-Suravaram.ttf
+0a49f79c77105bcb4224681c872e6b225a30bad755ac7e3de200bef7e928703576782734d59d69803795b476e4cfb12581bee4b350b8b87073ecae439de40340 font-teluguvijayam-20190525-NTR.ttf
+eb189e5578a6e01668b4bd31a853503e9b3b9db1bcf0c6b6f1f6b4867b486799a4c75b8c05ccc433d37fad649dbeb35c0220f0ce3e6cdb0fc20fc313f832af34 font-teluguvijayam-20190525-Mandali.ttf
+852943264f3be34e20a3713efcd6796ac6a4854bcaf495a75750f2e11a1a588598fe95c3acc8aa797ea9dcca73ea001f853ce8efcec9cb83984225a1a4902a67 font-teluguvijayam-20190525-NATS.ttf
+c2a6348b1cdda633511529eb5636af064ec39fc44be041bc3e7006a0b281ffd7ac0051c45fc56ef3ef1ef8471becb262e4dfaedc2e55156186d9cf68f9854110 font-teluguvijayam-20190525-SyamalaRamana.ttf
+39fedbbc9a271a400f2a2188be8c269648073a170fd89118e440adae1aee8ef8943c41c6b9a46bb9051b35d92b40ee85092d818b42ab4847b3f10c8cbf71efe6 font-teluguvijayam-20190525-PottiSreeramulu.ttf
+8b8718cd65eea94f6902cce0ac28fdba27f74e5ec2c0f6f0a7fedd34d792f70dac19a12de9cf2838f51785423786c1ae956e09fb9883ddd54adf629b6afcf06a font-teluguvijayam-20190525-SreeKrushnadevaraya.ttf
+1d23654ce7fc43926c645b4457fe18f367ac7b87b2218da084102ef72357ecfddf9b5ad5a7540b01df7cd8381019cf2d2ce7311a44d0a3b686fc8701a452f7a6 font-teluguvijayam-20190525-Peddana.ttf
+7c88d6cd0ffffdcd31380884cb33036dff957591be36c9b5aae4ab535d7f9b3148050afdeffcc713b684302f99266bc0772b2ea3a88bf479720123f7d76c5b83 font-teluguvijayam-20190525-Timmana.ttf
+80b0a369fb8ccd725fee6b7873c37c34742f5939046b17f4d42714a49594ac85664325f1adc1ee2eb7829a09f23b0308d5b4ff562beedf0464099c1bff7ceff9 font-teluguvijayam-20190525-TenaliRamakrishna.ttf
+4dde8094a427f11a94020f4acef352dd656d393c46224313b116409db05c77118b0420aba4fa67b9df8d932f7ee8649fbf478591a327140e4f694afaad14df67 font-teluguvijayam-20190525-Suranna.ttf
+09f25350fc51c296f7aa48cfb3efc320d4604f65d6844a53f1a913f1d3cb1570de2d9882fbd146088ba834ab08ccd4b6ea661cb6269a87b6ae42e937223374d1 font-teluguvijayam-20190525-Ramaraja.ttf
+10f3fd87817b6974644f5e4cf1d27e65e72ae164415874ecd3e48a584ea9eea35beee91b833108937b27ae587d1905d47de3d27a5379508cf5f858d22482750a font-teluguvijayam-20190525-Mallanna.ttf
+093cb92b09383c25e5edfd37d431ba0e669cf803daa02d4a463f27bef95040ca0e96c21896635855f73f07e76824d5c1d2b9944cba646cff6fdef80f466e79b0 font-teluguvijayam-20190525-Dhurjati.ttf
+f5a6e03fdfb1e39ed1c246489d50c369f7f9671ac798067e25047c7c04c372614b77c76fe06f4117e4a05bfd884bd0492fb5ceef02608bcc9a00251430beb022 font-teluguvijayam-20190525-Ramabhadra.ttf
+62954328074580fc3bc72cf9f94bea57f0c7ecbe833624d84fc381f709e3861f56969ad00ec6fbb378e17d0e3664275a235bc8c736c09b92486e5bb91502d9c4 font-teluguvijayam-20190525-Ponnala.ttf
+a69e739b4661bce60d56163dbba7e4c1c8f4c6bb00d82fee251d8d4b475e623e6707ea0366378b8c501ec450f41423d30545f198d0d2e85039fbd89fc4157598 font-teluguvijayam-20190525-RaviPrakash.ttf
+8c4c1c37663f343c25b95f1a714f8d3f47023f23b0b044c772fdfab0269de023528c7a97a2e7e36712593d83b34e59644768d3c9bca48914618a32cd504fdf57 font-teluguvijayam-20190525-LakkiReddy.ttf
+"
diff --git a/testing/font-tinos/APKBUILD b/testing/font-tinos/APKBUILD
new file mode 100644
index 00000000000..15e4aea8857
--- /dev/null
+++ b/testing/font-tinos/APKBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Sertonix <sertonix@posteo.net>
+_fontname=tinos
+pkgname=font-$_fontname
+pkgver=0_git20210228
+pkgrel=0
+_gitrev=ba5282d4706054e82332d3863ac96e069b34f032
+pkgdesc="Innovative, refreshing sans serif design that is metrically compatible with Times New Roman"
+url="https://fonts.google.com/specimen/Tinos"
+arch="noarch"
+license="OFL-1.1"
+source="$pkgname-$pkgver.tar.gz::https://github.com/googlefonts/tinos/archive/$_gitrev.tar.gz"
+builddir="$srcdir/tinos-$_gitrev"
+options="!check" # is font
+
+package() {
+ install -Dm644 -t "$pkgdir"/usr/share/fonts/$_fontname \
+ "$builddir"/fonts/ttf/unhinted/variable_ttf/*.ttf
+}
+
+sha512sums="
+fefd77884ede3fefbeba9fcba0c3a45bac448ffd8f5a2cc9d1bbf64449be983b23288cbfa43c0a39cc0110d4374e517d34949ffa80f7305c5752de3dbc702c0d font-tinos-0_git20210228.tar.gz
+"
diff --git a/testing/font-tiresias/APKBUILD b/testing/font-tiresias/APKBUILD
new file mode 100644
index 00000000000..1af5c5ea5b0
--- /dev/null
+++ b/testing/font-tiresias/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=font-tiresias
+pkgver=0_git20200704
+pkgrel=0
+_gitrev=93e9ac3966b5a5fa1aed67df38deb09cc93e3285
+pkgdesc="Tiresias font family"
+# the original upstream is dead, but the font was released under GPLv3+
+url="https://salsa.debian.org/fonts-team/fonts-tiresias"
+arch="noarch"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://salsa.debian.org/fonts-team/fonts-tiresias/-/archive/$_gitrev/fonts-tiresias-$_gitrev.tar.gz"
+builddir="$srcdir/fonts-tiresias-$_gitrev"
+options="!check" # is font
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/licenses/$pkgname
+
+ for font in info key lp pc sign; do
+ local target="$pkgdir"/usr/share/fonts/tiresias-$font
+ mkdir -p "$target"
+ unzip -d "$target" ${font}font.zip
+
+ mv "$target"/COPYING/gpl.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.$font
+ rm -rf "$target"/COPYING
+ done
+}
+
+sha512sums="
+3d8a12a6f5c13a5d0f975a08522579f2c818218be31023e6a75f11a7a1f82d1b8bc4ff30f691c19964e07cd6ce85074fbfc0883ae053e228435ec1bce81309e4 font-tiresias-0_git20200704.tar.gz
+"
diff --git a/testing/font-twemoji/APKBUILD b/testing/font-twemoji/APKBUILD
new file mode 100644
index 00000000000..d94108e9f98
--- /dev/null
+++ b/testing/font-twemoji/APKBUILD
@@ -0,0 +1,23 @@
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=font-twemoji
+pkgver=15.0.3
+_builddate=2024-01-30_11-10
+pkgrel=0
+pkgdesc="Twemoji font in TrueType format"
+url="https://github.com/twitter/twemoji"
+options="!check" # no tests
+arch="noarch"
+license="CC-BY-4.0"
+source="https://artefacts.whynothugo.nl/twemoji.ttf/$_builddate/Twemoji-$pkgver.ttf"
+# Builds from https://git.sr.ht/~whynothugo/twemoji.ttf/
+
+package() {
+ depends="fontconfig"
+
+ install -Dm644 "$srcdir"/Twemoji-$pkgver.ttf \
+ "$pkgdir"/usr/share/fonts/twemoji/Twemoji.ttf
+}
+
+sha512sums="
+6426071694454697bf5d4785ba92afb4e5002ac984e12ca656e91b1f227105e4ff1bde7d62f12f7818a5a5e0f878f37675abaf75188a2b583db25f9d6ef390b9 Twemoji-15.0.3.ttf
+"
diff --git a/testing/fontforge/APKBUILD b/testing/fontforge/APKBUILD
deleted file mode 100644
index b09b3e7c9dc..00000000000
--- a/testing/fontforge/APKBUILD
+++ /dev/null
@@ -1,77 +0,0 @@
-# Contributor: Ed Robinson <ed@reevoo.com>
-# Maintainer: Ed Robinson <ed@reevoo.com>
-pkgname=fontforge
-pkgver=20200314
-pkgrel=1
-pkgdesc="FontForge is a free (libre) font editor for Windows, Mac OS X and GNU+Linux."
-url="https://fontforge.org"
-arch="all !s390x !x86 !mips !mips64" # test139_ff hangs on x86
-license="GPL-3.0-or-later"
-makedepends="
- cmake
- pango-dev
- giflib-dev
- tiff-dev
- libxml2-dev
- libspiro-dev
- python3-dev
- potrace
- woff2-dev
- gtk+3.0-dev
- libuninameslist-dev
- readline-dev
- "
-subpackages="
- $pkgname-dev
- $pkgname-doc
- $pkgname-python3:_py3
- "
-source="https://github.com/fontforge/fontforge/releases/download/$pkgver/fontforge-$pkgver.tar.xz
- fix-select.patch
- "
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build . \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DENABLE_GUI=ON \
- -DENABLE_X11=OFF \
- -DENABLE_PYTHON_SCRIPTING=ON \
- -DENABLE_PYTHON_EXTENSION=ON \
- -DENABLE_LIBSPIRO=ON \
- -DENABLE_LIBUNINAMESLIST=ON \
- -DENABLE_LIBGIF=ON \
- -DENABLE_LIBJPEG=ON \
- -DENABLE_LIBPNG=ON \
- -DENABLE_LIBREADLINE=ON \
- -DENABLE_LIBTIFF=ON \
- -DENABLE_WOFF2=ON \
- -DENABLE_DOCS=OFF \
- $CMAKE_CROSSOPTS .
- make -C build
-}
-
-check() {
- make -C build check
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-_py3() {
- pkgdesc="python3 bindings for $pkgname"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib
-
- mkdir -p "$subpkgdir"/usr/share/fontforge/python
- mv "$pkgdir"/usr/share/fontforge/python/excepthook.py "$subpkgdir"/usr/share/fontforge/python
-}
-
-sha512sums="09f5dc93f87ca63668d72d108690604489d6b3cec7eedff1c07ad6d1ce5eae442ab60e79e71ae8b99e9808f3551011788025a86ffc3a9738518d99761d849975 fontforge-20200314.tar.xz
-8cb3fb00fa537eab2d4b194916343a0e2aab85c2415a1944c0d0e648d62a7748d5d4465fb99cb92385b749e73abfcaa429f4c9d2bb4c2edea8febeb227add93a fix-select.patch"
diff --git a/testing/fontforge/fix-select.patch b/testing/fontforge/fix-select.patch
deleted file mode 100644
index 0e230f64e27..00000000000
--- a/testing/fontforge/fix-select.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Include sys/select.h as defined by POSIX to have access to fd_set
-
-diff --git a/gdraw/gdraw.c b/gdraw/gdraw.c
-index 24591b7..ab045d0 100644
---- a/gdraw/gdraw.c
-+++ b/gdraw/gdraw.c
-@@ -36,6 +36,7 @@
- # include <sys/select.h>
- #endif
-
-+#include <sys/select.h>
-
- /* Functions for font metrics:
- rectangle of text (left side bearing of first char, right of last char)
-diff --git a/gdraw/gxdraw.c b/gdraw/gxdraw.c
-index 3cbf6af..b04ed9b 100644
---- a/gdraw/gxdraw.c
-+++ b/gdraw/gxdraw.c
-@@ -52,6 +52,7 @@
- #include <signal.h> /* error handler */
- #include <sys/time.h> /* for timers & select */
- #include <sys/types.h> /* for timers & select */
-+#include <sys/select.h>
-
- enum cm_type { cmt_default=-1, cmt_current, cmt_copy, cmt_private };
-
-
diff --git a/testing/foolsm/APKBUILD b/testing/foolsm/APKBUILD
index 3cf6a711313..fe71632157b 100644
--- a/testing/foolsm/APKBUILD
+++ b/testing/foolsm/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=foolsm
-pkgver=1.0.10
+pkgver=1.0.21
pkgrel=0
pkgdesc="Link Status Monitor"
url="https://lsm.foobar.fi/"
@@ -9,20 +9,26 @@ arch="all"
license="GPL-2.0-only"
makedepends="linux-headers"
options="!check" # No test suite availbe
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
source="https://lsm.foobar.fi/download/foolsm-$pkgver.tar.gz
- fix-non-standard-macro.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+ foolsm.initd
+ foolsm.confd
+ fix-non-standard-macro.patch
+ "
build() {
- cd "$builddir"
- make
+ make PREFIX=/usr
}
package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir" PREFIX=/usr
+ make install DESTDIR="$pkgdir" PREFIX=/usr
+ install -Dm0755 "$srcdir/foolsm.initd" "$pkgdir/etc/init.d/foolsm"
+ install -Dm0644 "$srcdir/foolsm.confd" "$pkgdir/etc/conf.d/foolsm"
}
-sha512sums="7437306cb2188446b31e23f01876a64aff7556797012b0cc83db57e328d71f2813d2f3771b2c6d22300fe0e5ba2eca3992d59c33c3984a7bcfe6a52d7b719657 foolsm-1.0.10.tar.gz
-4a0c851b2ae534c365adcc5798b56fc91b1efe7d4bcad90df411e93d7a4a0c620d3e9efa26504de877059c481de207c58c468ea577025db2933fa111f5620077 fix-non-standard-macro.patch"
+sha512sums="
+3be949037b8996f124ee9864d47cb34dd3a9f420c282e8735dfc9dac17089705688d3322e4bde939f75b0617da1aede232db59ef9c0ce36fc485e9349d2d972f foolsm-1.0.21.tar.gz
+b433010b8d2228e90a2617da707a199ae841f273aab4e9d4912e50106d689fe96a0ad662246f09033a2039aa79ba682fef4356cbe15a907abccc2ee74ded3881 foolsm.initd
+80b71b4468bf3a5ba928661dbf63d4dea058a665c1d49b88bc3a37b38dc316171a71aed406c3510b37a812e148f5a724ba65598e77044996baeeb139a88ded1c foolsm.confd
+4a0c851b2ae534c365adcc5798b56fc91b1efe7d4bcad90df411e93d7a4a0c620d3e9efa26504de877059c481de207c58c468ea577025db2933fa111f5620077 fix-non-standard-macro.patch
+"
diff --git a/testing/foolsm/foolsm.confd b/testing/foolsm/foolsm.confd
new file mode 100644
index 00000000000..a42999324bb
--- /dev/null
+++ b/testing/foolsm/foolsm.confd
@@ -0,0 +1 @@
+use_supervisor=no
diff --git a/testing/foolsm/foolsm.initd b/testing/foolsm/foolsm.initd
new file mode 100644
index 00000000000..6a670600366
--- /dev/null
+++ b/testing/foolsm/foolsm.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+command=/usr/sbin/foolsm
+
+if yesno "$use_supervisor"; then
+ command_args_foreground="-f"
+ supervisor=supervise-daemon
+else
+ pidfile="/run/$RC_SVCNAME.pid"
+ command_args="-p $pidfile"
+fi
diff --git a/testing/forgejo-runner/APKBUILD b/testing/forgejo-runner/APKBUILD
new file mode 100644
index 00000000000..50d0bfeef70
--- /dev/null
+++ b/testing/forgejo-runner/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=forgejo-runner
+pkgver=3.4.1
+pkgrel=1
+pkgdesc="CI/CD job runner for Forgejo"
+url="https://code.forgejo.org/forgejo/runner"
+arch="all"
+license="MIT"
+makedepends="go"
+install="$pkgname.pre-install $pkgname.pre-upgrade"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/forgejo/runner/archive/v$pkgver.tar.gz
+
+ forgejo-runner.logrotate
+ forgejo-runner.initd
+ forgejo-runner.confd
+ "
+builddir="$srcdir/runner"
+options="!check" # tests require running forgejo
+
+build() {
+ go build \
+ -o forgejo-runner \
+ -ldflags "-X gitea.com/gitea/act_runner/internal/pkg/ver.version=$pkgver"
+ ./forgejo-runner generate-config > config.example.yaml
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 forgejo-runner -t "$pkgdir"/usr/bin/
+ install -Dm644 config.example.yaml -t "$pkgdir"/etc/forgejo-runner/
+
+ install -Dm755 "$srcdir"/forgejo-runner.initd "$pkgdir"/etc/init.d/forgejo-runner
+ install -Dm644 "$srcdir"/forgejo-runner.confd "$pkgdir"/etc/conf.d/forgejo-runner
+ install -Dm644 "$srcdir"/forgejo-runner.logrotate "$pkgdir"/etc/logrotate.d/forgejo-runner
+}
+
+sha512sums="
+aea401ddb8359bc91a4c24ca5b14bcf01ac74480405deac153ecd83cb69454456353b9c4468c29380d52289a1743accad5642c4fa1609fd854fe459e2da7fe3a forgejo-runner-3.4.1.tar.gz
+a3c7238b0c63053325d31e09277edd88690ef5260854517f82d9042d6173fb5d24ebfe36e1d7363673dd8801972638a6e69b6af8ad43debb6057515c73655236 forgejo-runner.logrotate
+bb0c6fbe90109c77f9ef9cb0d35d20b8033be0e4b7a60839b596aa5528dfa24309ec894d8c04066bf8fb30143e63a5fd8cc6fc89aac364422b583e0f840e2da6 forgejo-runner.initd
+e11eab27f88f1181112389befa7de3aa0bac7c26841861918707ede53335535425c805e6682e25704e9c8a6aecba3dc13e20900a99df1183762b012b62f26d5f forgejo-runner.confd
+"
diff --git a/testing/forgejo-runner/forgejo-runner.confd b/testing/forgejo-runner/forgejo-runner.confd
new file mode 100644
index 00000000000..874e695445c
--- /dev/null
+++ b/testing/forgejo-runner/forgejo-runner.confd
@@ -0,0 +1,17 @@
+# Configuration for /etc/init.d/forgejo-runner
+
+# Path to the config file (--config).
+#cfgfile="/etc/forgejo-runner/config.yaml"
+
+# Path to the working directory (--working-directory).
+#datadir="/var/lib/forgejo-runner"
+
+# Path to the log file where stdout/stderr will be redirected.
+# Leave empty/commented out to use syslog instead.
+#output_log="/var/log/forgejo-runner.log"
+
+# You may change this to root, e.g. to run jobs in LXC
+#command_user="forgejo-runner"
+
+# Comment out to run without process supervisor.
+supervisor=supervise-daemon
diff --git a/testing/forgejo-runner/forgejo-runner.initd b/testing/forgejo-runner/forgejo-runner.initd
new file mode 100644
index 00000000000..c54acdd6bbe
--- /dev/null
+++ b/testing/forgejo-runner/forgejo-runner.initd
@@ -0,0 +1,38 @@
+#!/sbin/openrc-run
+
+description="Forgejo CI Runner"
+name="Forgejo Runner"
+
+: ${cfgfile:="/etc/forgejo-runner/config.yaml"}
+: ${datadir:="/var/lib/forgejo-runner"}
+: ${command_user:="forgejo-runner"}
+
+command="/usr/bin/forgejo-runner"
+command_args="daemon --config $cfgfile"
+command_background="yes"
+directory="$datadir"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ use dns logger
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" /etc/forgejo-runner
+ checkpath -d -o "$command_user" "$datadir"
+
+ if ! [ -e "$cfgfile" ]; then
+ eerror "Config file $cfgfile doesn't exist."
+ eerror "You can generate it with: forgejo-runner generate-config,"
+ eerror "or use the auto-generated one in /etc/forgejo-runner/config.example.yaml"
+ return 1
+ fi
+
+ if [ "$error_log" ]; then
+ output_log="$error_log"
+ else
+ output_logger="logger -t '${RC_SVCNAME}' -p daemon.info"
+ error_logger="logger -t '${RC_SVCNAME}' -p daemon.error"
+ fi
+}
diff --git a/testing/forgejo-runner/forgejo-runner.logrotate b/testing/forgejo-runner/forgejo-runner.logrotate
new file mode 100644
index 00000000000..1a0539e30eb
--- /dev/null
+++ b/testing/forgejo-runner/forgejo-runner.logrotate
@@ -0,0 +1,5 @@
+/var/log/forgejo-runner.log {
+ copytruncate
+ missingok
+ notifempty
+}
diff --git a/testing/forgejo-runner/forgejo-runner.pre-install b/testing/forgejo-runner/forgejo-runner.pre-install
new file mode 100644
index 00000000000..5ce27bede6c
--- /dev/null
+++ b/testing/forgejo-runner/forgejo-runner.pre-install
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+addgroup -S forgejo-runner 2>/dev/null
+adduser -S -D -H -h /var/lib/forgejo-runner -s /sbin/nologin -G forgejo-runner -g forgejo-runner forgejo-runner 2>/dev/null
+
+cat >&2 <<EOF
+* In order to setup the runner, create a config file
+* in /etc/forgejo-runner/config.yaml (either from .example.yaml,
+* or generating your own with 'forgejo-runner generate-config'),
+* then register it with 'doas -u forgejo-runner forgejo-runner register'
+* ran in the /var/lib/forgejo-runner directory.
+EOF
+
+exit 0
diff --git a/testing/forgejo-runner/forgejo-runner.pre-upgrade b/testing/forgejo-runner/forgejo-runner.pre-upgrade
new file mode 120000
index 00000000000..dfba753e018
--- /dev/null
+++ b/testing/forgejo-runner/forgejo-runner.pre-upgrade
@@ -0,0 +1 @@
+forgejo-runner.pre-install \ No newline at end of file
diff --git a/testing/forgejo/APKBUILD b/testing/forgejo/APKBUILD
new file mode 100644
index 00000000000..1f2c0ffc8fe
--- /dev/null
+++ b/testing/forgejo/APKBUILD
@@ -0,0 +1,108 @@
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Contributor: 6543 <6543@obermui.de>
+# Contributor: techknowlogick <techknowlogick@gitea.io>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=forgejo
+_pkgver=7.0.0
+pkgver=${_pkgver/-/.}
+pkgrel=0
+pkgdesc="Self-hosted Git service written in Go"
+url="https://forgejo.org"
+# riscv64: builds fail https://codeberg.org/forgejo/forgejo/issues/3025
+arch="all !riscv64"
+license="MIT"
+depends="git git-lfs gnupg"
+makedepends="go nodejs npm"
+checkdepends="bash openssh openssh-keygen sqlite tzdata"
+install="$pkgname.pre-install"
+pkgusers="forgejo"
+pkggroups="www-data"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/forgejo/forgejo/archive/v$_pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.ini
+ "
+builddir="$srcdir/forgejo"
+options="!check net chmod-clean" # broken with GIT_CEILING
+
+# secfixes:
+# 1.21.10.0-r0:
+# - CVE-2023-45288
+# 1.21.3.0-r0:
+# - CVE-2023-48795
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+# Skip tests for archs that fail unrelated in CI
+case "$CARCH" in
+s390x|x86|armhf|armv7) options="$options !check" ;;
+esac
+
+prepare() {
+ default_prepare
+
+ npm ci
+}
+
+build() {
+ # XXX: LARGEFILE64
+ export CGO_CFLAGS="$CFLAGS -O2 -D_LARGEFILE64_SOURCE"
+ export TAGS="bindata sqlite sqlite_unlock_notify"
+ export GITEA_VERSION="$pkgver"
+ export EXTRA_GOFLAGS="$GOFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ unset LDFLAGS
+ ## make FHS compliant
+ LDFLAGS="$LDFLAGS -X code.gitea.io/gitea/modules/setting.CustomConf=/etc/forgejo/app.ini"
+ LDFLAGS="$LDFLAGS -X code.gitea.io/gitea/modules/setting.AppWorkPath=/var/lib/forgejo/"
+ export LDFLAGS
+
+ make -j1 build
+}
+
+check() {
+ local home="$srcdir"/home
+ mkdir -p "$home"
+ install -d -m700 "$home"/.ssh
+ touch "$home"/.gitconfig
+
+
+ env GITEA_ROOT="$home" HOME="$home" GITEA_WORK_DIR="$(pwd)" timeout -s ABRT 20m make -j1 test-sqlite
+ ## "make test" - modified (exclude broken tests)
+ ## 'code.gitea.io/gitea/modules/migrations': github hase rate limits! 403 API
+ local tests=$(go list ./... | grep -v /vendor/ | \
+ grep -v 'code.gitea.io/gitea/modules/migrations' | \
+ grep -v 'code.gitea.io/gitea/modules/charset' | \
+ grep -v 'code.gitea.io/gitea/models/migrations' | \
+ grep -v 'code.gitea.io/gitea/services/migrations' | \
+ grep -v 'code.gitea.io/gitea/integrations')
+ env GITEA_CONF="$PWD/tests/sqlite.ini" GITEA_ROOT="$home" HOME="$home" GO111MODULE=on go test -mod=vendor -tags='sqlite sqlite_unlock_notify' $tests
+
+}
+
+package() {
+ for dir in $pkgname $pkgname/git $pkgname/data $pkgname/db $pkgname/custom; do
+ install -dm750 -o forgejo -g www-data \
+ "$pkgdir"/var/lib/$dir
+ done
+
+ install -dm755 -o forgejo -g www-data "$pkgdir"/var/log/forgejo
+
+ # TODO: rename when upstream does
+ install -Dm755 -g www-data gitea "$pkgdir"/usr/bin/forgejo
+
+ install -Dm644 -o forgejo -g www-data "$srcdir"/forgejo.ini \
+ "$pkgdir"/etc/forgejo/app.ini
+ chown forgejo:www-data "$pkgdir"/etc/forgejo
+
+ install -Dm755 "$srcdir"/forgejo.initd \
+ "$pkgdir"/etc/init.d/forgejo
+}
+
+sha512sums="
+b072c1cc4b0bf5d05513b015b22ca336f5521ef45740b9a2a7aa675d84db087d6d395207c9baa6f25c7de2ac9c04d8c2a336a0315ef753a9764be507c3713082 forgejo-7.0.0.tar.gz
+eb93a9f6c8f204de5c813f58727015f53f9feaab546589e016c60743131559f04fc1518f487b6d2a0e7fa8fab6d4a67cd0cd9713a7ccd9dec767a8c1ddebe129 forgejo.initd
+b537b41b6b3a945274a6028800f39787b48c318425a37cf5d40ace0d1b305444fd07f17b4acafcd31a629bedd7d008b0bb3e30f82ffeb3d7e7e947bdbe0ff4f3 forgejo.ini
+"
diff --git a/testing/forgejo/forgejo.ini b/testing/forgejo/forgejo.ini
new file mode 100644
index 00000000000..3b462590b92
--- /dev/null
+++ b/testing/forgejo/forgejo.ini
@@ -0,0 +1,26 @@
+# Configuration cheat sheet: https://forgejo.org/docs/latest/admin/config-cheat-sheet/
+
+RUN_USER = forgejo
+RUN_MODE = prod
+
+[repository]
+ROOT = /var/lib/forgejo/git
+SCRIPT_TYPE = sh
+
+[server]
+STATIC_ROOT_PATH = /usr/share/webapps/forgejo
+APP_DATA_PATH = /var/lib/forgejo/data
+LFS_START_SERVER = true
+
+[database]
+DB_TYPE = sqlite3
+PATH = /var/lib/forgejo/db/forgejo.db
+SSL_MODE = disable
+
+[session]
+PROVIDER = file
+
+[log]
+ROOT_PATH = /var/log/forgejo
+MODE = file
+LEVEL = Info
diff --git a/testing/forgejo/forgejo.initd b/testing/forgejo/forgejo.initd
new file mode 100644
index 00000000000..24dd085db6d
--- /dev/null
+++ b/testing/forgejo/forgejo.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name=forgejo
+command="/usr/bin/forgejo"
+command_user="${FORGEJO_USER:-forgejo}:www-data"
+command_args="web --config '${FORGEJO_CONF:-/etc/forgejo/app.ini}'"
+supervise_daemon_args="--env FORGEJO_WORK_DIR='${FORGEJO_WORK_DIR:-/var/lib/forgejo}' --chdir '${FORGEJO_WORK_DIR:-/var/lib/forgejo}' --stdout '${FORGEJO_LOG_FILE:-/var/log/forgejo/http.log}' --stderr '${FORGEJO_LOG_FILE:-/var/log/forgejo/http.log}'"
+pidfile="/run/forgejo.pid"
+
+depend() {
+ use logger dns
+ need net
+ after firewall mysql postgresql
+}
diff --git a/testing/forgejo/forgejo.pre-install b/testing/forgejo/forgejo.pre-install
new file mode 100644
index 00000000000..c7e8b7bbccc
--- /dev/null
+++ b/testing/forgejo/forgejo.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S -g 82 www-data 2>/dev/null
+adduser -S -D -h /var/lib/forgejo -s /bin/sh -G www-data -g forgejo forgejo 2>/dev/null \
+ && passwd -u forgejo 2>/dev/null
+
+exit 0
diff --git a/testing/fox/APKBUILD b/testing/fox/APKBUILD
new file mode 100644
index 00000000000..f5d36b2ce6d
--- /dev/null
+++ b/testing/fox/APKBUILD
@@ -0,0 +1,73 @@
+# Contributor: Peter Shkenev <santurysim@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=fox
+pkgver=1.6.57
+pkgrel=0
+pkgdesc="Free Objects for X"
+url="http://www.fox-toolkit.org"
+arch="all"
+license="LGPL-3.0-or-later"
+makedepends="glu-dev libxft-dev"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-adie
+ $pkgname-pathfinder
+ $pkgname-calculator
+ $pkgname-utils
+ $pkgname-shutterbug"
+source="http://fox-toolkit.org/ftp/fox-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE LICENSE_ADDENDUM \
+ -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+adie() {
+ license="GPL-2.0-or-later"
+ pkgdesc="Adie text editor"
+ amove usr/bin/Adie.stx
+ amove usr/bin/adie
+}
+
+pathfinder() {
+ pkgdesc="$pkgdesc - fast file manager"
+ amove usr/bin/PathFinder
+}
+
+calculator() {
+ license="GPL-2.0-or-later"
+ pkgdesc="$pkgdesc - calculator"
+ amove usr/bin/calculator
+}
+
+utils() {
+ pkgdesc="$pkgname (development utilities)"
+ amove usr/bin/reswrap
+}
+
+shutterbug() {
+ license="GPL-2.0-or-later"
+ pkgdesc="$pkgname - screen snapshot application"
+ amove usr/bin/shutterbug
+}
+
+sha512sums="
+e7b91054a9ea674818803415284cb61572935d22466e446cb37ef68344e2684e8acd567f7c8a6912f939dcbcc37455119ad6a01ac30513f460d0b3937b7e6087 fox-1.6.57.tar.gz
+"
diff --git a/testing/foxtrotgps/APKBUILD b/testing/foxtrotgps/APKBUILD
deleted file mode 100644
index 23d175d087f..00000000000
--- a/testing/foxtrotgps/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Miles Alan <m@milesalan.com>
-pkgname=foxtrotgps
-pkgver=1.2.2
-pkgrel=1
-pkgdesc="Gtk-based GIS/GPS Mapping application that works well on small screens"
-url="http://foxtrotgps.org"
-arch="all"
-license="GPL-2.0-only"
-makedepends="intltool gtk+2.0-dev libglade-dev curl-dev
- sqlite-dev libexif-dev gpsd-dev"
-options="!check" # Has no tests
-subpackages="$pkgname-doc $pkgname-lang"
-source="
- https://www.foxtrotgps.org/releases/foxtrotgps-$pkgver.tar.gz
- fix-timespec.patch
- "
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc
- make
-}
-
-package() {
- make DESTDIR=$pkgdir PREFIX=/usr -C "$builddir" install
-}
-
-sha512sums="449fce966c1b59562c98bc01df2afcc20fad66bf5bdf8fe67fbef7cd12e5da82c4f36921fcdc8c8b6fae60b6056dfeb8a8efe8a0a61e12b600d6d03d08842a71 foxtrotgps-1.2.2.tar.gz
-2f555e0f5bcb80489a8f3d23d94a40ad67730d504f36ac2f0188c9fa71c7b5e76bceaa91b02f1c4a5bf0d67381d4794b552c5e7dd0703ccc0b39956f2e11a193 fix-timespec.patch"
diff --git a/testing/foxtrotgps/fix-timespec.patch b/testing/foxtrotgps/fix-timespec.patch
deleted file mode 100644
index e73f14e16cf..00000000000
--- a/testing/foxtrotgps/fix-timespec.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/gps_functions.c b/src/gps_functions.c
-index 04f88e0..e3df086 100644
---- a/src/gps_functions.c
-+++ b/src/gps_functions.c
-@@ -752,7 +752,7 @@ cb_gpsd_data(GIOChannel *src, GIOCondition condition, gpointer data)
- {
- gpsdata->satellites_used = libgps_gpsdata.satellites_used;
- gpsdata->hdop = libgps_gpsdata.dop.hdop;
-- gpsdata->fix.time = libgps_gpsdata.fix.time;
-+ gpsdata->fix.time = libgps_gpsdata.fix.time.tv_nsec;
- if (isnan(gpsdata->fix.time))
- {
- gpsdata->fix.time = (time_t) 0;
diff --git a/testing/fpc-stage0/APKBUILD b/testing/fpc-stage0/APKBUILD
new file mode 100644
index 00000000000..9f44b374d81
--- /dev/null
+++ b/testing/fpc-stage0/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=fpc-stage0
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="Free Pascal Compiler binary for bootstrapping"
+url="http://freepascal.org"
+arch="x86_64 aarch64 armv7 armhf ppc64le x86"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
+_fpcarchs="x86_64 aarch64 arm powerpc64le i386"
+for _fpcarch in $_fpcarchs; do
+ source="$source
+ https://downloads.sourceforge.net/sourceforge/freepascal/Linux/$pkgver/fpc-$pkgver.$_fpcarch-linux.tar"
+done
+case "$CARCH" in
+ x86_64|aarch64) _fpcarch="$CARCH";;
+ armv7|armhf) _fpcarch=arm;;
+ ppc64le) _fpcarch=powerpc64;;
+ x86) _fpcarch=i386;;
+esac
+options="!check" # no tests
+builddir="$srcdir/fpc-$pkgver.$_fpcarch-linux"
+
+# Provide fpc-bootstrap for testing/cyclone.
+provides="fpc-bootstrap"
+provider_priority=1 # lowest
+
+package() {
+ echo "$CARCH"
+ tar xf binary.$_fpcarch-linux.tar
+
+ # Unpack only files strictly necessary for build
+ tar xf base.$_fpcarch-linux.tar.gz
+ tar xf utils-fpcm.$_fpcarch-linux.tar.gz
+
+ install -Dm755 bin/* -t "$pkgdir"/usr/bin/
+
+ cp -r lib "$pkgdir"/usr
+
+ # Create a symlink needed for fpc to find appropriate binary
+ ln -s /usr/lib/fpc/"$pkgver"/"$(find "$pkgdir"/usr/lib/fpc/"$pkgver"\
+ -maxdepth 1 -executable -name "ppc*" | head -n1 |
+ xargs basename)" "$pkgdir"/usr/bin
+}
+
+sha512sums="
+58b8722e65e2c466bd20d6aeedbd675c733ec144bb91c562f7c2f2bc04ec8696c526bef6804f10e554961b2342562d484e0dbea6440aef0c605593dfac826729 fpc-3.2.2.powerpc64le-linux.tar
+534df830a951824525044479ded23ef1e61b104c0dd65c837ad0d8d9ced9eb7349925a3f759756aa95ae17e567d8b1cd5c7e2092d3c665eaac578845b48aa467 fpc-3.2.2.x86_64-linux.tar
+b4f1a94d1a05901f4ffc2e07519e9b03666850211e571cbce33f0ba16d8a1d88de256c8e111579f46d56f157630dfc722a8ae9ce2b200fc784c588ea4e6bd5df fpc-3.2.2.i386-linux.tar
+8a52c53cd167af39222296db7c91aadf0b5d845272833a961c5db0c7d2d4cb5e61f41f71e0989c193dc2923770440b19d7d3d71de65291d0a3e0a15edc793316 fpc-3.2.2.aarch64-linux.tar
+7dd3435e74d2e5ec45fe5ca9a5d621ababe9ac0e9131c73a184686fb97892f64358157bfa92e5238f5b16eaf9f9198dffbbddd58d5d04b4a2d6a63cfdc16a491 fpc-3.2.2.arm-linux.tar
+"
diff --git a/testing/fpc/APKBUILD b/testing/fpc/APKBUILD
new file mode 100644
index 00000000000..0d79296c073
--- /dev/null
+++ b/testing/fpc/APKBUILD
@@ -0,0 +1,72 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=fpc
+pkgver=3.2.2
+pkgrel=2
+pkgdesc="Free Pascal Compiler"
+url="http://freepascal.org"
+# Build fails on ppc64le with compiler segfault
+arch="x86_64 aarch64 armv7 armhf x86" # limited by fpc-stage0
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
+makedepends="fpc-bootstrap"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/sourceforge/freepascal/fpcbuild-$pkgver.tar.gz"
+options="!check" # no tests
+builddir="$srcdir/fpcbuild-$pkgver"
+
+# FPC is self-hosting and requires itself to build. We use fpc-stage0 to build
+# fpc initially and then use fpc itself. Therefore we make fpc provide
+# fpc-bootstrap as well and prioritize it over fpc-stage0
+provides="fpc-bootstrap"
+provider_priority=100 # highest
+
+# libpas2jslib.so contains textrels on some arches
+case "$CARCH" in
+ x86|armv7|armhf) options="$options textrels";;
+esac
+
+prepare() {
+ default_prepare
+
+ # Use correct linker path for produced binaries
+ sed -i -e "s,/lib64/ld-linux-x86-64\.so\..,/lib/ld-musl-x86_64.so.1," \
+ -e "s,/lib/ld-linux\.so\..,/lib/ld-musl-i386.so.1," \
+ -e "s,/lib/ld-linux-aarch64\.so\..,/lib/ld-musl-aarch64.so.1," \
+ -e "s,/lib/ld-linux-armhf\.so\..,/lib/ld-musl-armhf.so.1," \
+ -e "s,/lib64/ld64\.so\..,/lib/ld-musl-powerpc64le.so.1," \
+ "$builddir"/fpcsrc/compiler/systems/t_linux.pas
+
+ # Strip out any unsupported instructions
+ find "$builddir"/fpcsrc/rtl/linux -type f -print0 |
+ xargs -0 sed -i '/libc_csu/d'
+}
+
+build() {
+ cd fpcsrc/compiler
+ fpcmake -Tall
+ cd ../
+ make build NOGDB=1
+}
+
+package() {
+ make install \
+ NOGDB=1 \
+ PREFIX="$pkgdir"/usr \
+ INSTALL_MANDIR="$pkgdir"/usr/share/man
+
+ # Create a symlink needed for fpc to find compiler
+ ln -s /usr/lib/fpc/"$pkgver"/ppc* "$pkgdir"/usr/bin
+
+ # Install configuration
+ mkdir -p "$pkgdir"/etc
+ "$pkgdir"/usr/lib/fpc/"$pkgver"/samplecfg \
+ "$pkgdir"/usr/lib/fpc/"$pkgver" "$pkgdir"/etc
+
+ # Strip pkgdir name from configs
+ find "$pkgdir"/etc/ -type f -exec sed -i "s|$pkgdir||g" {} \;
+}
+
+sha512sums="
+75889bb54adc70a6e2cbd291476b9b12d61c8f943a05b7d16d2024de3215c935465ff43b1400c412e128e260c7f49a9c66e35c21f86cb866e671b5b60a282d82 fpcbuild-3.2.2.tar.gz
+"
diff --git a/testing/fplll/APKBUILD b/testing/fplll/APKBUILD
new file mode 100644
index 00000000000..da22ddb6ced
--- /dev/null
+++ b/testing/fplll/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=fplll
+pkgver=5.4.5
+pkgrel=0
+pkgdesc="Lattice algorithms using floating-point arithmetic"
+url="https://github.com/fplll/fplll"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="gmp-dev mpfr-dev"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-libs
+ $pkgname-strategies:_strategies:noarch
+ "
+source="https://github.com/fplll/fplll/releases/download/$pkgver/fplll-$pkgver.tar.gz"
+
+case "$CARCH" in
+aarch64|ppc64le|s390x)
+ # libqd-dev package is unavailable
+ ;;
+*)
+ makedepends="$makedepends libqd-dev"
+ ;;
+esac
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ mv "$pkgdir"/usr/bin/*fplll "$pkgdir"/usr/bin/fplll
+ mv "$pkgdir"/usr/bin/*latticegen "$pkgdir"/usr/bin/latticegen
+}
+
+_strategies() {
+ pkgdesc="Strategies for fplll"
+ amove usr/share/fplll/strategies
+}
+
+sha512sums="
+3e1281f1b993ebe4a767b7fc526f49a27d58f24b1b4c6074310cc971f6f569388d6ba27102087a2eb11671d2d5b87bd60306e2597567f4ae8dd2a9efd13beb77 fplll-5.4.5.tar.gz
+"
diff --git a/testing/fpp/APKBUILD b/testing/fpp/APKBUILD
new file mode 100644
index 00000000000..1bb734d7f27
--- /dev/null
+++ b/testing/fpp/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Thiago Perrotta <tbperrotta@gmail.com>
+# Maintainer: Thiago Perrotta <tbperrotta@gmail.com>
+pkgname=fpp
+pkgver=0.9.5
+pkgrel=0
+pkgdesc="TUI that lets you pick paths out of its stdin and run arbitrary commands on them"
+url="https://facebook.github.io/PathPicker"
+arch="noarch"
+license="MIT"
+depends="bash python3"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/facebook/PathPicker/archive/$pkgver.tar.gz"
+options="!check" # no test suite
+builddir="$srcdir/PathPicker-$pkgver"
+
+prepare() {
+ default_prepare
+
+ rm -r "src/tests"
+}
+
+package() {
+ # library
+ install -Dm755 fpp -t "$pkgdir"/usr/share/fpp
+ cp -a src "$pkgdir"/usr/share/fpp
+
+ # entrypoint
+ install -dm755 "$pkgdir"/usr/bin
+ ln -s /usr/share/fpp/fpp "$pkgdir"/usr/bin
+
+ # documentation
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+ install -Dm644 debian/usr/share/man/man1/fpp.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+7ca94bfdbf8826a8143471acd63eaa80bd30ae3b27f5982f3e2b581e0d078a70bb189707a53d3f93f231ac0f3db8bb88b0c92441604661d475623bfbc2bebaa7 fpp-0.9.5.tar.gz
+"
diff --git a/testing/fq/APKBUILD b/testing/fq/APKBUILD
new file mode 100644
index 00000000000..f1952e6d330
--- /dev/null
+++ b/testing/fq/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=fq
+pkgver=0.10.0
+pkgrel=3
+pkgdesc="Tool, language and decoders for inspecting binary data"
+url="https://github.com/wader/fq"
+license="MIT"
+arch="all !ppc64le" # fails tests
+makedepends="go"
+checkdepends="expect"
+options="net"
+source="https://github.com/wader/fq/archive/v$pkgver/fq-$pkgver.tar.gz
+ enable-cgo.patch"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make fq
+}
+
+check() {
+ GO_TEST_RACE_FLAGS= make test
+}
+
+package() {
+ install -Dm755 fq -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+8cc179721de4b8b268dcd41c53b7c689b30574ea9f3c4f796115255b0dd8a2e681f955c2b2a0dc364f4e15aad582ea0a0aa038d4cee7c7bb79f5096d467883a3 fq-0.10.0.tar.gz
+0d1857a6ffd0f85a5de0f57a4f2aea521523c4a738a4805cd1c83644610a6ca51684f92db97eeff1e9bddd57800d0e66d2447fa95af25de82a5177c7e4a338cb enable-cgo.patch
+"
diff --git a/testing/fq/enable-cgo.patch b/testing/fq/enable-cgo.patch
new file mode 100644
index 00000000000..c592c3ad509
--- /dev/null
+++ b/testing/fq/enable-cgo.patch
@@ -0,0 +1,17 @@
+Since Go 1.22 the build will fail with CGO_ENABLED=0 and -buildmode=pie
+since we enable -buildmode=pie by default, we need to enable CGO.
+
+See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15809
+
+diff -upr fq-0.10.0.orig/Makefile fq-0.10.0/Makefile
+--- fq-0.10.0.orig/Makefile 2024-03-02 13:28:08.077086376 +0100
++++ fq-0.10.0/Makefile 2024-03-02 13:28:14.091342026 +0100
+@@ -7,7 +7,7 @@ all: test fq
+ .PHONY: always
+
+ fq: always
+- CGO_ENABLED=0 go build -o fq -ldflags "${GO_BUILD_LDFLAGS}" ${GO_BUILD_FLAGS} .
++ go build -o fq -ldflags "${GO_BUILD_LDFLAGS}" ${GO_BUILD_FLAGS} .
+
+ test: always testgo testjq testcli
+ test-race: always testgo-race testjq testcli
diff --git a/testing/fragments/APKBUILD b/testing/fragments/APKBUILD
new file mode 100644
index 00000000000..539c362bff3
--- /dev/null
+++ b/testing/fragments/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: NekoCWD <nekodevelopper@gmail.com>
+# Maintainer: NekoCWD <nekodevelopper@gmail.com>
+pkgname=fragments
+pkgver=3.0.0
+pkgrel=0
+pkgdesc="A BitTorrent Client"
+url="https://gitlab.gnome.org/World/Fragments"
+# s390x fails to build
+# riscv64: rust broken
+arch="all !s390x !riscv64"
+license="GPL-3.0-or-later"
+depends="transmission-daemon"
+makedepends="
+ cargo
+ dbus-dev
+ desktop-file-utils
+ libadwaita-dev
+ openssl-dev
+ m4
+ meson
+ "
+subpackages="$pkgname-lang"
+source="
+ https://gitlab.gnome.org/World/Fragments/-/archive/$pkgver/Fragments-$pkgver.tar.gz
+ no-cargo-home.patch
+ "
+options="net" # needed for downloading dependencies
+builddir="$srcdir/Fragments-$pkgver" # Name starts with capital letter
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ # without buildtype=release it builds debug
+ abuild-meson \
+ --buildtype=release \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+bb0f30249bcba9c8bec2245443faf91acccca47af755383e339d9e22b2a4e8ea4173b3596c7c202226724dfefb806ec125e5b74903041aa599507bdaac5e0060 Fragments-3.0.0.tar.gz
+2c4b7433f27b18bbb428bdc2053cda53f10e958a2045499ab7af6102df9610822cf36a82636cd5b9501ba4e204aeddc18fcdb79aff773657a9a5a3c1aeba8e95 no-cargo-home.patch
+"
diff --git a/testing/fragments/no-cargo-home.patch b/testing/fragments/no-cargo-home.patch
new file mode 100644
index 00000000000..f6530ce9128
--- /dev/null
+++ b/testing/fragments/no-cargo-home.patch
@@ -0,0 +1,13 @@
+diff --git a/src/meson.build b/src/meson.build
+index bf2da60..8c1069d 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -55,8 +55,6 @@ cargo_release = custom_target(
+ install: true,
+ install_dir: get_option('bindir'),
+ command: [
+- 'env',
+- cargo_env,
+ cargo, 'build',
+ cargo_options,
+ '&&',
diff --git a/testing/freealut/0000-configure.patch b/testing/freealut/0000-configure.patch
new file mode 100644
index 00000000000..3b26f5ba91b
--- /dev/null
+++ b/testing/freealut/0000-configure.patch
@@ -0,0 +1,21 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -2,15 +2,15 @@
+ # Process this file with autoconf to produce a configure script.
+ ################################################################################
+
+-AC_INIT([freealut library], [1.1.0], [openal-devel@opensource.creative.com], [freealut])
++AC_INIT([freealut library],[1.1.0],[openal-devel@opensource.creative.com],[freealut])
+ AC_CONFIG_AUX_DIR([admin/autotools])
+ AM_INIT_AUTOMAKE
+-AC_PREREQ([2.56])
++AC_PREREQ(2.61)
+ AC_CONFIG_SRCDIR([AUTHORS])
+ AC_CONFIG_HEADERS([config.h])
+
+ # Compatibility hack for older autoconf versions
+-m4_ifdef([AS_HELP_STRING], [], [AC_DEFUN([AS_HELP_STRING], [AC_HELP_STRING($][@)])])
++m4_ifdef([AS_HELP_STRING], [], [AC_DEFUN([AS_HELP_STRING], [AS_HELP_STRING([$@])])])
+
+ ################################################################################
+ ## libtool shared library version.
diff --git a/testing/freealut/0001-freebsd_pthread.patch b/testing/freealut/0001-freebsd_pthread.patch
new file mode 100644
index 00000000000..83ef7036f66
--- /dev/null
+++ b/testing/freealut/0001-freebsd_pthread.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -82,7 +82,7 @@
+ AC_DEFINE([ALUT_BUILD_LIBRARY], [1], [Define to 1 if you want to build the ALUT DLL.])
+
+ # Checks for libraries. (not perfect yet)
+-AC_SEARCH_LIBS([pthread_self], [pthread])
++AC_SEARCH_LIBS([pthread_create], [pthread])
+ AC_SEARCH_LIBS([alGetError], [openal32 openal])
+
+ ################################################################################
diff --git a/testing/freealut/0002-am_maintainer_mode.patch b/testing/freealut/0002-am_maintainer_mode.patch
new file mode 100644
index 00000000000..f2be3d131c0
--- /dev/null
+++ b/testing/freealut/0002-am_maintainer_mode.patch
@@ -0,0 +1,10 @@
+--- a/configure.ac 2007-02-20 12:55:58.000000000 +0100
++++ b/configure.ac 2007-02-20 12:56:08.000000000 +0100
+@@ -5,6 +5,7 @@
+ AC_INIT([freealut library],[1.1.0],[openal-devel@opensource.creative.com],[freealut])
+ AC_CONFIG_AUX_DIR([admin/autotools])
+ AM_INIT_AUTOMAKE
++AM_MAINTAINER_MODE
+ AC_PREREQ(2.61)
+ AC_CONFIG_SRCDIR([AUTHORS])
+ AC_CONFIG_HEADERS([config.h])
diff --git a/testing/freealut/0003-findutils_syntax.patch b/testing/freealut/0003-findutils_syntax.patch
new file mode 100644
index 00000000000..891fec4493d
--- /dev/null
+++ b/testing/freealut/0003-findutils_syntax.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -33,7 +33,7 @@ libtool: $(LIBTOOL_DEPS)
+
+ # The Creative repository has some broken permissions, let's fix this.
+ permissions:
+- find . -type f \! -perm +222 \! -name "*.sh" -exec chmod +w {} \;
++ find . -type f \! -perm /222 \! -name "*.sh" -exec chmod +w {} \;
+
+ # Automatically reformat all C headers and sources with indent according to
+ # admin/autotools/.indent.pro, but be make-friendly and take some precautions to
diff --git a/testing/freealut/APKBUILD b/testing/freealut/APKBUILD
new file mode 100644
index 00000000000..9f2bc9853b1
--- /dev/null
+++ b/testing/freealut/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=freealut
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="OpenAL Utility Toolkit (ALUT)"
+url="https://github.com/vancegroup/freealut"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="autoconf automake libtool openal-soft-dev"
+subpackages="$pkgname-dev"
+options="!check" # No testsuite
+source="https://github.com/vancegroup/freealut/archive/freealut_${pkgver//./_}.tar.gz
+ 0000-configure.patch
+ 0001-freebsd_pthread.patch
+ 0002-am_maintainer_mode.patch
+ 0003-findutils_syntax.patch
+ "
+builddir="$srcdir/$pkgname-${pkgname}_${pkgver//./_}"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="c9dead230434b3916f91e219913c2b2c877c4594d74b63641246a6704e28fe8d415131127cc00b51355f2fdf4e2bbf8aaf2b802fec479b05927e39a8698c251e freealut_1_1_0.tar.gz
+6a291791660e45bea0000cb6adec5e8ddbdf405da95ab45ef05eda191ea412b57752d9e12afd34741d455bdd3aaa0faaf2c3be8467550e1216677c9b1a82ff66 0000-configure.patch
+ed21300ea329daed93db27bbd14385cbc97057dc810a88508c5dda7e5e383350df4caeed66908be3868d66d64536c3b1d13ef2dc15e4efcda04285544c54a8be 0001-freebsd_pthread.patch
+38b7ed8d66ffe4b3cd38641c821f7b0a055d62d104d04e3f62c4baf0fe5aad27107427365b082222d2be9dbc2d9416de31408c41a35126e8398b56c188bacffc 0002-am_maintainer_mode.patch
+7fe5bba0e23d10319552afd77dfde41633411f1c3d9ad66559f65230c758440a2987b7472fb4a3323a811575a14736f1ab476aa47dff993e6d81a1196274f230 0003-findutils_syntax.patch"
diff --git a/testing/freecad/APKBUILD b/testing/freecad/APKBUILD
new file mode 100644
index 00000000000..c09d6ef4934
--- /dev/null
+++ b/testing/freecad/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=freecad
+pkgver=0.20.2
+pkgrel=5
+pkgdesc="Free and open source 3D parametric modeler"
+url="https://freecadweb.org/"
+license="LGPL-2.0-or-later"
+arch="x86_64" # dependency OpenCascade is only x86_64
+depends="
+ graphviz
+ hdf5
+ opencascade
+ py3-matplotlib
+ py3-numpy
+ py3-pivy
+ py3-ply
+ py3-pyside2
+ py3-six
+ py3-yaml
+ python3
+ "
+makedepends="
+ boost-dev
+ cmake
+ coin-dev
+ doxygen
+ eigen-dev
+ freeimage-dev
+ glu-dev
+ hdf5-dev
+ libmedc-dev
+ libshiboken2-dev
+ onetbb-dev
+ opencascade-dev
+ py3-pyside2-dev
+ python3-dev
+ shiboken2
+ qt5-qtsvg-dev
+ qt5-qtwebengine-dev
+ qt5-qtxmlpatterns-dev
+ samurai
+ swig
+ vtk-dev
+ xerces-c-dev
+ "
+checkdepends="xvfb-run mesa mesa-dri-gallium font-opensans"
+source="https://github.com/FreeCAD/FreeCAD/archive/$pkgver/freecad-$pkgver.tar.gz
+ $pkgname-python3.11-1.patch::https://github.com/FreeCAD/FreeCAD/commit/fe02d63c8c9b1280978be841d04e68a0a55cceb9.patch
+ numpy-1.20.patch
+ no-execinfo.patch
+ no-workaround-spnav.patch
+ resourceDirectory.patch
+ tests.patch
+ opencascade-7.8.0.patch
+ missing-include-cstdint.patch
+ "
+builddir="$srcdir/FreeCAD-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_FLAGS="$CFLAGS -fPIC -w" \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -fPIC -w" \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/freecad \
+ -DCMAKE_INSTALL_DATADIR=/usr/share/freecad \
+ -DCMAKE_INSTALL_DATAROOTDIR=/usr/share \
+ -DCMAKE_INSTALL_DOCDIR=/usr/share/freecad/doc \
+ -DBUILD_ENABLE_CXX_STD=C++17 \
+ -DBUILD_QT5=ON \
+ -DFREECAD_USE_EXTERNAL_PIVY=ON \
+ -DFREECAD_USE_OCC_VARIANT="Official Version" \
+ -DFREECAD_USE_QT_FILEDIALOG=ON \
+ -DPYTHON_EXECUTABLE=/usr/bin/python3
+ cmake --build build
+}
+
+check() {
+ DESTDIR=test_install cmake --install build
+ mkdir -p test_install/usr/bin
+ ln -s ../lib/freecad/bin/FreeCAD test_install/usr/bin/FreeCAD
+ ln -s ../lib/freecad/bin/FreeCADCmd test_install/usr/bin/FreeCADCmd
+ LD_LIBRARY_PATH="$PWD"/test_install/usr/lib/freecad/lib \
+ xvfb-run "$PWD"/test_install/usr/bin/FreeCAD -t 0
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # FreeCAD does not initialize correctly when binaries
+ # are located under /usr/bin; thus, symlinks are necessary.
+ install -d "$pkgdir"/usr/bin
+ ln -s /usr/lib/freecad/bin/FreeCAD "$pkgdir"/usr/bin/FreeCAD
+ ln -s /usr/lib/freecad/bin/FreeCADCmd "$pkgdir"/usr/bin/FreeCADCmd
+}
+
+sha512sums="
+c3acd77dd2bb9a2a23ac354da3b6102effb89c95d675e91421d65486414dfe8cc0188a7212245e0deb63f17b9c5df76133017be09e4cd14b833be8cbec52a08d freecad-0.20.2.tar.gz
+75a237f7ed7a89a98c0e5bdb3d3f0788749602daf718089aa0814e05f93ced1e15ad5867c7c87f170b48c5984f9ace1bbc95c4f386ce72bfb8d616323b47f1e5 freecad-python3.11-1.patch
+80b08b031810fce7b6d698c662f64fa4f8a904f283f46b478b1d718529164c0ee61ce190f633abf04e03212720480f3f0603b0c1e160af79d7b6bb82da3bd0e4 numpy-1.20.patch
+73aaba7015dce7048eb7d2456131b5b5ba4673cc980503331987be54d99daed5f61db015ca33d7d2ef0f02bd3192da8ce122c103c3b93f9959927deb4f0b933e no-execinfo.patch
+15696bdaaf77482f1b5d3806535a8004c8cec7d598d62092d9f0394b4ca9e2ad6cedd77c4b86a83a06324d16678c1c6bbf3a390b807729717a2f513e858afd50 no-workaround-spnav.patch
+8ba13b17bad66316757d180c1b9e9e72a24382627eac7c43a2264b3b5101e6e8f701775f2b805ed733f500fbcd8b0e8e422ec58a9ab3d948d613b666157d4c52 resourceDirectory.patch
+5db19e0aa2ca1fd21f4c56afc9db54390a799262aaa0a741704c2c304b0068fd6ca1dcc086465e12e9c0cfe06aac750aaf9b8f5f4db324539af4dd3394803ff9 tests.patch
+f933680dea8744e147f38abce389cb7fd0ec3fb3566454fdd5e6ea07b2faaac5fe61aabe1df3bda9f0d7b4fca16055aa2ad700e9cce10d2604ae37b761b68ade opencascade-7.8.0.patch
+fec515cc63830f0e715527c7890173705b24e7d99d225821ec4300104cf3affdee49243bbd4d0a331a902cf04db756a1b8f18f0a17cc71f5757f8b5c73c78ede missing-include-cstdint.patch
+"
diff --git a/testing/freecad/missing-include-cstdint.patch b/testing/freecad/missing-include-cstdint.patch
new file mode 100644
index 00000000000..363a706879f
--- /dev/null
+++ b/testing/freecad/missing-include-cstdint.patch
@@ -0,0 +1,11 @@
+diff --color -rupN a/src/3rdParty/libE57Format/include/E57Format.h b/src/3rdParty/libE57Format/include/E57Format.h
+--- a/src/3rdParty/libE57Format/include/E57Format.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/libE57Format/include/E57Format.h 2024-02-27 14:06:29.308892531 +0100
+@@ -32,6 +32,7 @@
+ //! @file E57Format.h header file for the E57 API
+
+ #include <cfloat>
++#include <cstdint>
+ #include <memory>
+ #include <vector>
+
diff --git a/testing/freecad/no-execinfo.patch b/testing/freecad/no-execinfo.patch
new file mode 100644
index 00000000000..3e1c39c164a
--- /dev/null
+++ b/testing/freecad/no-execinfo.patch
@@ -0,0 +1,46 @@
+diff --git a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp
+index 23c5083..54c7ecf 100644
+--- a/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp
++++ b/src/3rdParty/salomesmesh/src/DriverSTL/Basics_Utils.cpp
+@@ -29,7 +29,6 @@
+ #ifndef WIN32
+ #include <unistd.h>
+ #include <sys/stat.h>
+-#include <execinfo.h>
+ #endif
+
+
+@@ -109,20 +108,7 @@ namespace Kernel_Utils
+ #ifndef WIN32
+ void print_traceback()
+ {
+- void *array[50];
+- size_t size;
+- char **strings;
+- size_t i;
+-
+- size = backtrace (array, 40);
+- strings = backtrace_symbols (array, size);
+-
+- for (i = 0; i < size; i++)
+- {
+- std::cerr << strings[i] << std::endl;
+- }
+-
+- free (strings);
++ std::cerr << "there is no backtrace." << std::endl;
+ }
+ #else
+ #if (_MSC_VER >= 1400) // Visual Studio 2005
+diff --git a/src/App/Application.cpp b/src/App/Application.cpp
+index 3081623..ba3525f 100644
+--- a/src/App/Application.cpp
++++ b/src/App/Application.cpp
+@@ -1732,7 +1732,6 @@ static void freecadNewHandler ()
+ #endif
+
+ #if defined(FC_OS_LINUX)
+-#include <execinfo.h>
+ #include <dlfcn.h>
+ #include <cxxabi.h>
+
diff --git a/testing/freecad/no-workaround-spnav.patch b/testing/freecad/no-workaround-spnav.patch
new file mode 100644
index 00000000000..ee4fead9fa4
--- /dev/null
+++ b/testing/freecad/no-workaround-spnav.patch
@@ -0,0 +1,69 @@
+Patch-Source: https://github.com/FreeCAD/FreeCAD/commit/7b377a216b9185960e4cee980a6504dc1a755f50
+fixes stderr reassignment
+--
+From 7b377a216b9185960e4cee980a6504dc1a755f50 Mon Sep 17 00:00:00 2001
+From: wmayer <wmayer@users.sourceforge.net>
+Date: Wed, 29 Jun 2022 15:19:18 +0200
+Subject: [PATCH] Gui: remove workaround for spnav 0.23 due to build failure
+ with musl libc
+
+---
+ src/Gui/3Dconnexion/GuiNativeEventLinux.cpp | 27 ---------------------
+ 1 file changed, 27 deletions(-)
+
+diff --git a/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp b/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp
+index 7f0ddd75d262..455ece0b36bd 100644
+--- a/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp
++++ b/src/Gui/3Dconnexion/GuiNativeEventLinux.cpp
+@@ -21,42 +21,17 @@
+ ***************************************************************************/
+
+ #include <FCConfig.h>
+-#include <cstdio>
+
+ #include "GuiNativeEventLinux.h"
+
+ #include "GuiApplicationNativeEventAware.h"
+ #include <Base/Console.h>
+-#include <Base/FileInfo.h>
+ #include <QMainWindow>
+
+ #include <QSocketNotifier>
+
+ #include <spnav.h>
+
+-namespace {
+-class RedirectStdErr
+-{
+-public:
+- RedirectStdErr()
+- : fi(Base::FileInfo::getTempFileName())
+- , file(stderr)
+- {
+- stderr = fopen(fi.filePath().c_str(), "w");
+- }
+- ~RedirectStdErr()
+- {
+- fclose(stderr);
+- fi.deleteFile();
+- stderr = file;
+- }
+-
+-private:
+- Base::FileInfo fi;
+- FILE* file;
+-};
+-}
+-
+ Gui::GuiNativeEvent::GuiNativeEvent(Gui::GUIApplicationNativeEventAware *app)
+ : GuiAbstractNativeEvent(app)
+ {
+@@ -72,8 +47,6 @@ Gui::GuiNativeEvent::~GuiNativeEvent()
+
+ void Gui::GuiNativeEvent::initSpaceball(QMainWindow *window)
+ {
+- // tmp. redirect stderr to a file to suppress an error message from spnav_open()
+- RedirectStdErr err;
+ Q_UNUSED(window)
+ if (spnav_open() == -1) {
+ Base::Console().Log("Couldn't connect to spacenav daemon. Please ignore if you don't have a spacemouse.\n");
diff --git a/testing/freecad/numpy-1.20.patch b/testing/freecad/numpy-1.20.patch
new file mode 100644
index 00000000000..20f4b412589
--- /dev/null
+++ b/testing/freecad/numpy-1.20.patch
@@ -0,0 +1,25 @@
+Patch-Source: https://github.com/FreeCAD/FreeCAD/commit/8b0df1dc936b544091f6a2d68df1c1a14ae3de5b
+--
+From 8b0df1dc936b544091f6a2d68df1c1a14ae3de5b Mon Sep 17 00:00:00 2001
+From: lorenz <looooo@users.noreply.github.com>
+Date: Tue, 27 Dec 2022 04:59:35 +0100
+Subject: [PATCH] FEM: femmesh: fix AttributeError: module 'numpy' has no
+ attribute 'int'
+
+---
+ src/Mod/Fem/femmesh/meshtools.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Mod/Fem/femmesh/meshtools.py b/src/Mod/Fem/femmesh/meshtools.py
+index dd8671b..d2e2b0a 100644
+--- a/src/Mod/Fem/femmesh/meshtools.py
++++ b/src/Mod/Fem/femmesh/meshtools.py
+@@ -485,7 +485,7 @@ def get_femelement_sets(
+ # fem_objects = FreeCAD FEM document objects
+ # get femelements for reference shapes of each obj.References
+ count_femelements = 0
+- referenced_femelements = np.zeros((max(femelement_table.keys())+1,),dtype=np.int)
++ referenced_femelements = np.zeros((max(femelement_table.keys())+1,),dtype=int)
+ has_remaining_femelements = None
+ for fem_object_i, fem_object in enumerate(fem_objects):
+ obj = fem_object["Object"]
diff --git a/testing/freecad/opencascade-7.8.0.patch b/testing/freecad/opencascade-7.8.0.patch
new file mode 100644
index 00000000000..582fbde3547
--- /dev/null
+++ b/testing/freecad/opencascade-7.8.0.patch
@@ -0,0 +1,877 @@
+Fix compilation with opencascase 7.8.0
+
+Base on https://github.com/FreeCAD/FreeCAD/pull/11909
+
+diff --color -rupN a/cMake/FindOCC.cmake b/cMake/FindOCC.cmake
+--- a/cMake/FindOCC.cmake 2022-12-07 03:35:37.000000000 +0100
++++ b/cMake/FindOCC.cmake 2024-02-27 15:00:48.248873883 +0100
+@@ -127,8 +127,6 @@ if(OCC_FOUND)
+ TKG2d
+ TKG3d
+ TKMath
+- TKIGES
+- TKSTL
+ TKShHealing
+ TKXSBase
+ TKBool
+@@ -139,10 +137,6 @@ if(OCC_FOUND)
+ TKGeomBase
+ TKOffset
+ TKPrim
+- TKSTEPBase
+- TKSTEPAttr
+- TKSTEP209
+- TKSTEP
+ TKHLR
+ TKFeat
+ )
+@@ -154,17 +148,19 @@ if(OCC_FOUND)
+ TKLCAF
+ TKVCAF
+ TKCDF
+- TKXDESTEP
+- TKXDEIGES
+ TKMeshVS
+ TKService
+ TKV3d
+ )
+- if(OCC_VERSION_STRING VERSION_LESS 6.7.3)
+- list(APPEND OCC_OCAF_LIBRARIES TKAdvTools)
+- elseif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
++ if(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
+ list(APPEND OCC_OCAF_LIBRARIES TKRWMesh)
+- endif(OCC_VERSION_STRING VERSION_LESS 6.7.3)
++ endif(NOT OCC_VERSION_STRING VERSION_LESS 7.5.0)
++ if(OCC_VERSION_STRING VERSION_LESS 7.8.0)
++ list(APPEND OCC_LIBRARIES TKIGES TKSTL TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP)
++ list(APPEND OCC_OCAF_LIBRARIES TKXDESTEP TKXDEIGES)
++ else(OCC_VERSION_STRING VERSION_LESS 7.8.0)
++ list(APPEND OCC_LIBRARIES TKDESTEP TKDEIGES TKDEGLTF TKDESTL)
++ endif(OCC_VERSION_STRING VERSION_LESS 7.8.0)
+ message(STATUS "-- Found OCE/OpenCASCADE version: ${OCC_VERSION_STRING}")
+ message(STATUS "-- OCE/OpenCASCADE include directory: ${OCC_INCLUDE_DIR}")
+ message(STATUS "-- OCE/OpenCASCADE shared libraries directory: ${OCC_LIBRARY_DIR}")
+diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx
+--- a/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/inc/SMESHDS_DataMapOfShape.hxx 2024-02-27 15:00:48.248873883 +0100
+@@ -29,22 +29,35 @@
+
+ #include <TopoDS_Shape.hxx>
+
++#include <Standard_Version.hxx>
++
+ /*
+ * This method needed for instance NCollection_DataMap with TopoDS_Shape as key
+ */
++#if OCC_VERSION_HEX >= 0x070800
+ struct SMESHDS_Hasher
+ {
+- static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
+- const TopoDS_Shape& S2)
+- {
+- return S1.IsSame(S2);
++ size_t operator()(const TopoDS_Shape& S) const noexcept {
++ return std::hash<TopoDS_Shape>{}(S);
+ }
+- static inline Standard_Integer HashCode(const TopoDS_Shape& S,
+- const Standard_Integer Upper)
+- {
+- return ::HashCode( S, Upper);
++ size_t operator()(const TopoDS_Shape& S1, const TopoDS_Shape& S2) const noexcept {
++ return S1.IsSame(S2);
+ }
+ };
+-
++#else
++struct SMESHDS_Hasher
++{
++static inline Standard_Boolean IsEqual(const TopoDS_Shape& S1,
++ const TopoDS_Shape& S2)
++{
++ return S1.IsSame(S2);
++}
++static inline Standard_Integer HashCode(const TopoDS_Shape& S,
++ const Standard_Integer Upper)
++{
++ return ::HashCode( S, Upper);
++}
++};
++#endif
+
+ #endif
+diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx
+--- a/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/inc/SMESH_MeshVSLink.hxx 2024-02-27 15:00:48.248873883 +0100
+@@ -57,9 +57,6 @@
+ #ifndef _MeshVS_EntityType_HeaderFile
+ #include <MeshVS_EntityType.hxx>
+ #endif
+-#ifndef _Standard_Address_HeaderFile
+-#include <Standard_Address.hxx>
+-#endif
+ #ifndef _TColStd_HArray1OfInteger_HeaderFile
+ #include <TColStd_HArray1OfInteger.hxx>
+ #endif
+diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx
+--- a/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/inc/SMESH_SMESH.hxx 2024-02-27 15:00:48.248873883 +0100
+@@ -37,4 +37,5 @@
+ #define SMESH_EXPORT
+ #endif
+
++#include <Standard_Version.hxx>
+ #endif
+diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx
+--- a/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/inc/SMESH_SequenceOfNode.hxx 2024-02-27 15:00:48.252207183 +0100
+@@ -28,10 +28,11 @@
+
+ #include "SMESH_SMESH.hxx"
+
+-#include <NCollection_DefineSequence.hxx>
+ #if OCC_VERSION_HEX >= 0x060703
+ #include <NCollection_IncAllocator.hxx>
+ #include <NCollection_Sequence.hxx>
++#else
++#include <NCollection_DefineSequence.hxx>
+ #endif
+
+ typedef const SMDS_MeshNode* SMDS_MeshNodePtr;
+diff --color -rupN a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx
+--- a/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/inc/SMESH_TypeDefs.hxx 2024-02-27 15:00:48.252207183 +0100
+@@ -185,11 +185,18 @@ typedef std::vector< UVPtStruct > UVPtSt
+
+ // --------------------------------------------------------------------------------
+ // class SMESH_SequenceOfElemPtr
++#include <Standard_Version.hxx>
++#if OCC_VERSION_HEX >= 0x060703
++#include <NCollection_Sequence.hxx>
++#else
+ #include <NCollection_DefineSequence.hxx>
++#endif
+
+ class SMDS_MeshElement;
+
+ typedef const SMDS_MeshElement* SMDS_MeshElementPtr;
++#define DEFINE_SEQUENCE(_ClassName_, _BaseCollection_, TheItemType) \
++typedef NCollection_Sequence<TheItemType > _ClassName_;
+
+ DEFINE_SEQUENCE (SMESH_SequenceOfElemPtr, SMESH_BaseCollectionElemPtr, SMDS_MeshElementPtr)
+
+diff --color -rupN a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
+--- a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp 2024-02-27 15:00:48.252207183 +0100
+@@ -33,10 +33,33 @@
+ #include "SMDS_MeshNode.hxx"
+ #include "SMESH_File.hxx"
+
++#include <Standard_Version.hxx>
++
+ namespace
+ {
+ struct Hasher
+ {
++#if OCC_VERSION_HEX >= 0x070800
++ size_t operator()(const gp_Pnt& point) const noexcept
++ {
++ union
++ {
++ Standard_Real R[3];
++ Standard_Integer I[6];
++ } U;
++
++ point.Coord( U.R[0], U.R[1], U.R[2] );
++ return std::hash<Standard_Integer>{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7);
++ }
++
++ size_t operator()(const gp_Pnt& point1, const gp_Pnt& point2) const noexcept
++ {
++ static Standard_Real tab1[3], tab2[3];
++ point1.Coord(tab1[0],tab1[1],tab1[2]);
++ point2.Coord(tab2[0],tab2[1],tab2[2]);
++ return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
++ }
++#else
+ //=======================================================================
+ //function : HashCode
+ //purpose :
+@@ -51,9 +74,9 @@ namespace
+ } U;
+
+ point.Coord( U.R[0], U.R[1], U.R[2] );
+-
+- return ::HashCode(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7,Upper);
++ return std::hash<Standard_Integer>{}(U.I[0]/23+U.I[1]/19+U.I[2]/17+U.I[3]/13+U.I[4]/11+U.I[5]/7);
+ }
++
+ //=======================================================================
+ //function : IsEqual
+ //purpose :
+@@ -66,7 +89,9 @@ namespace
+ point2.Coord(tab2[0],tab2[1],tab2[2]);
+ return (memcmp(tab1,tab2,sizeof(tab1)) == 0);
+ }
++#endif
+ };
++
+ typedef NCollection_DataMap<gp_Pnt,SMDS_MeshNode*,Hasher> TDataMapOfPntNodePtr;
+
+ const int HEADER_SIZE = 84;
+diff --color -rupN a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp
+--- a/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/3rdParty/salomesmesh/src/StdMeshers/StdMeshers_Quadrangle_2D.cpp 2024-02-27 15:00:48.252207183 +0100
+@@ -48,7 +48,6 @@
+ #include <Bnd_Box.hxx>
+ #include <GeomAPI_ProjectPointOnSurf.hxx>
+ #include <Geom_Surface.hxx>
+-#include <NCollection_DefineArray2.hxx>
+ #include <Precision.hxx>
+ #include <Standard_Real.hxx>
+ #include <TColStd_SequenceOfInteger.hxx>
+diff --color -rupN a/src/Mod/Drawing/App/PreCompiled.h b/src/Mod/Drawing/App/PreCompiled.h
+--- a/src/Mod/Drawing/App/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Drawing/App/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100
+@@ -70,7 +70,6 @@
+ #include <Standard_LicenseError.hxx>
+ #include <Standard_LicenseNotFound.hxx>
+ #include <Standard_Macro.hxx>
+-#include <Standard_math.hxx>
+ #include <Standard_MultiplyDefined.hxx>
+ #include <Standard_NegativeValue.hxx>
+ #include <Standard_NoMoreObject.hxx>
+diff --color -rupN a/src/Mod/Drawing/Gui/TaskDialog.cpp b/src/Mod/Drawing/Gui/TaskDialog.cpp
+--- a/src/Mod/Drawing/Gui/TaskDialog.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Drawing/Gui/TaskDialog.cpp 2024-02-27 15:00:48.252207183 +0100
+@@ -29,7 +29,6 @@
+ #endif
+
+
+-#include <Standard_math.hxx>
+ #include "TaskDialog.h"
+ #include <Gui/Application.h>
+ #include <Gui/Command.h>
+diff --color -rupN a/src/Mod/Fem/Gui/PreCompiled.h b/src/Mod/Fem/Gui/PreCompiled.h
+--- a/src/Mod/Fem/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Fem/Gui/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100
+@@ -63,7 +63,6 @@
+ #endif
+
+ // OCC
+-#include <Standard_math.hxx>
+ #include <Precision.hxx>
+ #include <TopoDS.hxx>
+ #include <BRepAdaptor_Surface.hxx>
+diff --color -rupN a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp
+--- a/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Fem/Gui/TaskCreateNodeSet.cpp 2024-02-27 15:00:48.252207183 +0100
+@@ -28,7 +28,6 @@
+
+ # include <SMESH_Mesh.hxx>
+ # include <SMESHDS_Mesh.hxx>
+-# include <Standard_math.hxx>
+ #endif
+
+ #include <Base/Console.h>
+diff --color -rupN a/src/Mod/Import/App/ImportOCAF.cpp b/src/Mod/Import/App/ImportOCAF.cpp
+--- a/src/Mod/Import/App/ImportOCAF.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Import/App/ImportOCAF.cpp 2024-02-27 15:00:48.252207183 +0100
+@@ -165,7 +165,11 @@ void ImportOCAF::loadShapes(const TDF_La
+ std::vector<App::DocumentObject *> localValue;
+
+ if (aShapeTool->GetShape(label,aShape)) {
++#if OCC_VERSION_HEX >= 0x070800
++ hash = std::hash<TopoDS_Shape>{}(aShape);
++#else
+ hash = aShape.HashCode(HashUpper);
++#endif
+ }
+
+ Handle(TDataStd_Name) name;
+@@ -235,7 +239,11 @@ void ImportOCAF::loadShapes(const TDF_La
+ if (isRef || myRefShapes.find(hash) == myRefShapes.end()) {
+ TopoDS_Shape aShape;
+ if (isRef && aShapeTool->GetShape(label, aShape))
++#if OCC_VERSION_HEX >= 0x070800
++ myRefShapes.insert(std::hash<TopoDS_Shape>{}(aShape));
++#else
+ myRefShapes.insert(aShape.HashCode(HashUpper));
++#endif
+
+ if (aShapeTool->IsSimpleShape(label) && (isRef || aShapeTool->IsFree(label))) {
+ if (!asm_name.empty())
+@@ -565,7 +573,11 @@ void ImportXCAF::createShape(const TopoD
+ part->Label.setValue(default_name);
+ part->Shape.setValue(shape);
+ std::map<Standard_Integer, Quantity_ColorRGBA>::const_iterator jt;
++#if OCC_VERSION_HEX >= 0x070800
++ jt = myColorMap.find(std::hash<TopoDS_Shape>{}(shape));
++#else
+ jt = myColorMap.find(shape.HashCode(INT_MAX));
++#endif
+
+ App::Color partColor(0.8f,0.8f,0.8f);
+ #if 0//TODO
+@@ -586,7 +598,11 @@ void ImportXCAF::createShape(const TopoD
+ // set label name if defined
+ if (setname && !myNameMap.empty()) {
+ std::map<Standard_Integer, std::string>::const_iterator jt;
++#if OCC_VERSION_HEX >= 0x070800
++ jt = myNameMap.find(std::hash<TopoDS_Shape>{}(shape));
++#else
+ jt = myNameMap.find(shape.HashCode(INT_MAX));
++#endif
+ if (jt != myNameMap.end()) {
+ part->Label.setValue(jt->second);
+ }
+@@ -606,7 +622,11 @@ void ImportXCAF::createShape(const TopoD
+ faceColors.resize(faces.Extent(), partColor);
+ xp.Init(shape,TopAbs_FACE);
+ while (xp.More()) {
++#if OCC_VERSION_HEX >= 0x070800
++ jt = myColorMap.find(std::hash<TopoDS_Shape>{}(xp.Current()));
++#else
+ jt = myColorMap.find(xp.Current().HashCode(INT_MAX));
++#endif
+ if (jt != myColorMap.end()) {
+ int index = faces.FindIndex(xp.Current());
+ faceColors[index-1] = convertColor(jt->second);
+@@ -641,23 +661,51 @@ void ImportXCAF::loadShapes(const TDF_La
+ // add the shapes
+ TopExp_Explorer xp;
+ for (xp.Init(aShape, TopAbs_SOLID); xp.More(); xp.Next(), ctSolids++)
++#if OCC_VERSION_HEX >= 0x070800
++ this->mySolids[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->mySolids[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ for (xp.Init(aShape, TopAbs_SHELL, TopAbs_SOLID); xp.More(); xp.Next(), ctShells++)
++#if OCC_VERSION_HEX >= 0x070800
++ this->myShells[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->myShells[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ // if no solids and no shells were found then go for compounds
+ if (ctSolids == 0 && ctShells == 0) {
+ for (xp.Init(aShape, TopAbs_COMPOUND); xp.More(); xp.Next(), ctComps++)
++#if OCC_VERSION_HEX >= 0x070800
++ this->myCompds[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->myCompds[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ }
+ if (ctComps == 0) {
+ for (xp.Init(aShape, TopAbs_FACE, TopAbs_SHELL); xp.More(); xp.Next())
++#if OCC_VERSION_HEX >= 0x070800
++ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ for (xp.Init(aShape, TopAbs_WIRE, TopAbs_FACE); xp.More(); xp.Next())
++#if OCC_VERSION_HEX >= 0x070800
++ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ for (xp.Init(aShape, TopAbs_EDGE, TopAbs_WIRE); xp.More(); xp.Next())
++#if OCC_VERSION_HEX >= 0x070800
++ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ for (xp.Init(aShape, TopAbs_VERTEX, TopAbs_EDGE); xp.More(); xp.Next())
++#if OCC_VERSION_HEX >= 0x070800
++ this->myShapes[std::hash<TopoDS_Shape>{}(xp.Current())] = (xp.Current());
++#else
+ this->myShapes[xp.Current().HashCode(INT_MAX)] = (xp.Current());
++#endif
+ }
+ }
+
+@@ -667,7 +715,11 @@ void ImportXCAF::loadShapes(const TDF_La
+ hColors->GetColor(label, XCAFDoc_ColorSurf, col) ||
+ hColors->GetColor(label, XCAFDoc_ColorCurv, col)) {
+ // add defined color
++#if OCC_VERSION_HEX >= 0x070800
++ myColorMap[std::hash<TopoDS_Shape>{}(aShape)] = col;
++#else
+ myColorMap[aShape.HashCode(INT_MAX)] = col;
++#endif
+ }
+ else {
+ // http://www.opencascade.org/org/forum/thread_17107/
+@@ -677,7 +729,11 @@ void ImportXCAF::loadShapes(const TDF_La
+ hColors->GetColor(it.Value(), XCAFDoc_ColorSurf, col) ||
+ hColors->GetColor(it.Value(), XCAFDoc_ColorCurv, col)) {
+ // add defined color
++#if OCC_VERSION_HEX >= 0x070800
++ myColorMap[std::hash<TopoDS_Shape>{}(it.Value())] = col;
++#else
+ myColorMap[it.Value().HashCode(INT_MAX)] = col;
++#endif
+ }
+ }
+ }
+@@ -690,7 +746,11 @@ void ImportXCAF::loadShapes(const TDF_La
+ extstr.ToUTF8CString(str);
+ std::string labelName(str);
+ if (!labelName.empty())
++#if OCC_VERSION_HEX >= 0x070800
++ myNameMap[std::hash<TopoDS_Shape>{}(aShape)] = labelName;
++#else
+ myNameMap[aShape.HashCode(INT_MAX)] = labelName;
++#endif
+ delete [] str;
+ }
+
+diff --color -rupN a/src/Mod/Import/App/ImportOCAF.h b/src/Mod/Import/App/ImportOCAF.h
+--- a/src/Mod/Import/App/ImportOCAF.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Import/App/ImportOCAF.h 2024-02-27 15:00:48.252207183 +0100
+@@ -29,7 +29,6 @@
+ #include <XCAFDoc_ShapeTool.hxx>
+ #include <Quantity_ColorRGBA.hxx>
+ #include <TopoDS_Shape.hxx>
+-#include <TDF_LabelMapHasher.hxx>
+ #include <climits>
+ #include <string>
+ #include <set>
+diff --color -rupN a/src/Mod/Import/App/ImportOCAF2.h b/src/Mod/Import/App/ImportOCAF2.h
+--- a/src/Mod/Import/App/ImportOCAF2.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Import/App/ImportOCAF2.h 2024-02-27 15:06:12.358890276 +0100
+@@ -27,7 +27,6 @@
+ #include <XCAFDoc_ColorTool.hxx>
+ #include <XCAFDoc_ShapeTool.hxx>
+ #include <TopoDS_Shape.hxx>
+-#include <TDF_LabelMapHasher.hxx>
+ #include <climits>
+ #include <string>
+ #include <set>
+@@ -57,13 +56,21 @@ namespace Import {
+
+ struct ShapeHasher {
+ std::size_t operator()(const TopoDS_Shape &s) const {
++#if OCC_VERSION_HEX >= 0x070800
++ return std::hash<TopoDS_Shape>{}(s);
++#else
+ return s.HashCode(INT_MAX);
++#endif
+ }
+ };
+
+ struct LabelHasher {
+ std::size_t operator()(const TDF_Label &l) const {
++#if OCC_VERSION_HEX >= 0x070800
++ return std::hash<TDF_Label> {}(l);
++#else
+ return TDF_LabelMapHasher::HashCode(l,INT_MAX);
++#endif
+ }
+ };
+
+diff --color -rupN a/src/Mod/MeshPart/App/CurveProjector.h b/src/Mod/MeshPart/App/CurveProjector.h
+--- a/src/Mod/MeshPart/App/CurveProjector.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/MeshPart/App/CurveProjector.h 2024-02-27 15:00:48.252207183 +0100
+@@ -20,6 +20,7 @@
+ * *
+ ***************************************************************************/
+
++#include <Standard_Version.hxx>
+
+ #ifndef _CurveProjector_h_
+ #define _CurveProjector_h_
+@@ -64,8 +65,13 @@ public:
+
+ template<class T>
+ struct TopoDSLess {
+- bool operator()(const T& x, const T& y) const {
+- return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1);
++ bool operator()(const T& x, const T& y) const {
++#if OCC_VERSION_HEX >= 0x070800
++ std::hash<T> hasher;
++ return hasher(x) < hasher(y);
++#else
++ return x.HashCode(INT_MAX-1) < y.HashCode(INT_MAX-1);
++#endif
+ }
+ };
+
+diff --color -rupN a/src/Mod/MeshPart/App/PreCompiled.h b/src/Mod/MeshPart/App/PreCompiled.h
+--- a/src/Mod/MeshPart/App/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/MeshPart/App/PreCompiled.h 2024-02-27 15:00:48.252207183 +0100
+@@ -76,7 +76,6 @@
+ #include <Standard_LicenseError.hxx>
+ #include <Standard_LicenseNotFound.hxx>
+ #include <Standard_Macro.hxx>
+-#include <Standard_math.hxx>
+ #include <Standard_MultiplyDefined.hxx>
+ #include <Standard_NegativeValue.hxx>
+ #include <Standard_NoMoreObject.hxx>
+diff --color -rupN a/src/Mod/MeshPart/Gui/CrossSections.cpp b/src/Mod/MeshPart/Gui/CrossSections.cpp
+--- a/src/Mod/MeshPart/Gui/CrossSections.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/MeshPart/Gui/CrossSections.cpp 2024-02-27 15:00:48.252207183 +0100
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+ #ifndef _PreComp_
+ # include <sstream>
+-# include <Standard_math.hxx>
+ # include <BRep_Builder.hxx>
+ # include <BRepBuilderAPI_MakePolygon.hxx>
+ # include <TopoDS.hxx>
+diff --color -rupN a/src/Mod/Part/App/ImportStep.cpp b/src/Mod/Part/App/ImportStep.cpp
+--- a/src/Mod/Part/App/ImportStep.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/App/ImportStep.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -167,7 +167,12 @@ int Part::ImportStepParts(App::Document
+ // This is a trick to access the GUI via Python and set the color property
+ // of the associated view provider. If no GUI is up an exception is thrown
+ // and cleared immediately
++#if OCC_VERSION_HEX >= 0x070800
++ std::hash<TopoDS_Solid> hasher;
++ std::map<int, Quantity_Color>::iterator it = hash_col.find(hasher(aSolid));
++#else
+ std::map<int, Quantity_Color>::iterator it = hash_col.find(aSolid.HashCode(INT_MAX));
++#endif
+ if (it != hash_col.end()) {
+ try {
+ Py::Object obj(pcFeature->getPyObject(), true);
+diff --color -rupN a/src/Mod/Part/App/OCCError.h b/src/Mod/Part/App/OCCError.h
+--- a/src/Mod/Part/App/OCCError.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/App/OCCError.h 2024-02-27 15:00:48.255540482 +0100
+@@ -50,7 +50,6 @@
+ # include <Standard_Overflow.hxx>
+ # include <Standard_ProgramError.hxx>
+ # include <Standard_RangeError.hxx>
+-# include <Standard_TooManyUsers.hxx>
+ # include <Standard_TypeMismatch.hxx>
+ # include <Standard_Underflow.hxx>
+
+diff --color -rupN a/src/Mod/Part/App/OpenCascadeAll.h b/src/Mod/Part/App/OpenCascadeAll.h
+--- a/src/Mod/Part/App/OpenCascadeAll.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/App/OpenCascadeAll.h 2024-02-27 15:00:48.255540482 +0100
+@@ -49,7 +49,6 @@
+ #include <Standard_LicenseError.hxx>
+ #include <Standard_LicenseNotFound.hxx>
+ #include <Standard_Macro.hxx>
+-#include <Standard_math.hxx>
+ #include <Standard_MultiplyDefined.hxx>
+ #include <Standard_NegativeValue.hxx>
+ #include <Standard_NoMoreObject.hxx>
+diff --color -rupN a/src/Mod/Part/App/TopoShapePyImp.cpp b/src/Mod/Part/App/TopoShapePyImp.cpp
+--- a/src/Mod/Part/App/TopoShapePyImp.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/App/TopoShapePyImp.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -1321,7 +1321,11 @@ PyObject* TopoShapePy::ancestorsOfType(
+ TopTools_ListIteratorOfListOfShape it(ancestors);
+ for (; it.More(); it.Next()) {
+ // make sure to avoid duplicates
++#if OCC_VERSION_HEX >= 0x070800
++ const size_t code = std::hash<TopoDS_Shape>{}(static_cast<TopoDS_Shape>(it.Value()));
++#else
+ Standard_Integer code = it.Value().HashCode(INT_MAX);
++#endif
+ if (hashes.find(code) == hashes.end()) {
+ list.append(shape2pyshape(it.Value()));
+ hashes.insert(code);
+@@ -1943,7 +1947,11 @@ PyObject* TopoShapePy::hashCode(PyObject
+ if (!PyArg_ParseTuple(args, "|i",&upper))
+ return nullptr;
+
++#if OCC_VERSION_HEX >= 0x070800
++ int hc = std::hash<TopoDS_Shape>{}(getTopoShapePtr()->getShape());
++#else
+ int hc = getTopoShapePtr()->getShape().HashCode(upper);
++#endif
+ return Py_BuildValue("i", hc);
+ }
+
+diff --color -rupN a/src/Mod/Part/Gui/AppPartGui.cpp b/src/Mod/Part/Gui/AppPartGui.cpp
+--- a/src/Mod/Part/Gui/AppPartGui.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/AppPartGui.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -11,9 +11,6 @@
+
+
+ #include "PreCompiled.h"
+-#ifndef _PreComp_
+-# include <Standard_math.hxx>
+-#endif
+
+ #include <Base/Console.h>
+ #include <Base/Interpreter.h>
+diff --color -rupN a/src/Mod/Part/Gui/Command.cpp b/src/Mod/Part/Gui/Command.cpp
+--- a/src/Mod/Part/Gui/Command.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/Command.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -26,7 +26,6 @@
+ # include <QFileInfo>
+ # include <QPointer>
+ # include <QString>
+-# include <Standard_math.hxx>
+ # include <Standard_Version.hxx>
+ # include <TopExp_Explorer.hxx>
+ # include <TopoDS_Shape.hxx>
+diff --color -rupN a/src/Mod/Part/Gui/CommandSimple.cpp b/src/Mod/Part/Gui/CommandSimple.cpp
+--- a/src/Mod/Part/Gui/CommandSimple.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/CommandSimple.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -22,9 +22,6 @@
+
+
+ #include "PreCompiled.h"
+-#ifndef _PreComp_
+-# include <Standard_math.hxx>
+-#endif
+
+ #include <App/Document.h>
+ #include <App/DocumentObject.h>
+diff --color -rupN a/src/Mod/Part/Gui/CrossSections.cpp b/src/Mod/Part/Gui/CrossSections.cpp
+--- a/src/Mod/Part/Gui/CrossSections.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/CrossSections.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -23,7 +23,6 @@
+
+ #include "PreCompiled.h"
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
+ # include <BRep_Builder.hxx>
+ # include <BRepAlgoAPI_Section.hxx>
+ # include <BRepBuilderAPI_MakeWire.hxx>
+diff --color -rupN a/src/Mod/Part/Gui/ViewProvider2DObject.cpp b/src/Mod/Part/Gui/ViewProvider2DObject.cpp
+--- a/src/Mod/Part/Gui/ViewProvider2DObject.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/ViewProvider2DObject.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -26,8 +26,6 @@
+ #ifndef _PreComp_
+ # include <cfloat>
+
+-# include <Standard_math.hxx>
+-
+ # include <Inventor/nodes/SoAnnotation.h>
+ # include <Inventor/nodes/SoBaseColor.h>
+ # include <Inventor/nodes/SoDepthBuffer.h>
+diff --color -rupN a/src/Mod/Part/Gui/ViewProviderExt.cpp b/src/Mod/Part/Gui/ViewProviderExt.cpp
+--- a/src/Mod/Part/Gui/ViewProviderExt.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/ViewProviderExt.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -978,7 +978,11 @@ void ViewProviderPartExt::updateVisual()
+
+ TopExp_Explorer xp;
+ for (xp.Init(faceMap(i),TopAbs_EDGE);xp.More();xp.Next())
++#if OCC_VERSION_HEX >= 0x070800
++ faceEdges.insert(std::hash<TopoDS_Shape>{}(xp.Current()));
++#else
+ faceEdges.insert(xp.Current().HashCode(INT_MAX));
++#endif
+ numFaces++;
+ }
+
+@@ -1006,7 +1010,11 @@ void ViewProviderPartExt::updateVisual()
+ // So, we have to store the hashes of the edges associated to a face.
+ // If the hash of a given edge is not in this list we know it's really
+ // a free edge.
++#if OCC_VERSION_HEX >= 0x070800
++ int hash = std::hash<TopoDS_Shape>{}(aEdge);
++#else
+ int hash = aEdge.HashCode(INT_MAX);
++#endif
+ if (faceEdges.find(hash) == faceEdges.end()) {
+ Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc);
+ if (!aPoly.IsNull()) {
+@@ -1205,7 +1213,11 @@ void ViewProviderPartExt::updateVisual()
+ TopLoc_Location aLoc;
+
+ // handling of the free edge that are not associated to a face
++#if OCC_VERSION_HEX >= 0x070800
++ int hash = std::hash<TopoDS_Shape>{}(aEdge);
++#else
+ int hash = aEdge.HashCode(INT_MAX);
++#endif
+ if (faceEdges.find(hash) == faceEdges.end()) {
+ Handle(Poly_Polygon3D) aPoly = Part::Tools::polygonOfEdge(aEdge, aLoc);
+ if (!aPoly.IsNull()) {
+diff --color -rupN a/src/Mod/Part/Gui/ViewProviderExt.h b/src/Mod/Part/Gui/ViewProviderExt.h
+--- a/src/Mod/Part/Gui/ViewProviderExt.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/ViewProviderExt.h 2024-02-27 15:00:48.255540482 +0100
+@@ -24,7 +24,6 @@
+ #ifndef PARTGUI_VIEWPROVIDERPARTEXT_H
+ #define PARTGUI_VIEWPROVIDERPARTEXT_H
+
+-#include <Standard_math.hxx>
+ #include <Standard_Boolean.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <TopoDS_Face.hxx>
+diff --color -rupN a/src/Mod/Part/Gui/ViewProviderMirror.cpp b/src/Mod/Part/Gui/ViewProviderMirror.cpp
+--- a/src/Mod/Part/Gui/ViewProviderMirror.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/ViewProviderMirror.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -27,7 +27,6 @@
+ # include <QAction>
+ # include <QMenu>
+ # include <QTimer>
+-# include <Standard_math.hxx>
+ # include <TopExp.hxx>
+ # include <TopTools_IndexedMapOfShape.hxx>
+ # include <TopTools_ListOfShape.hxx>
+diff --color -rupN a/src/Mod/Part/Gui/ViewProviderPython.cpp b/src/Mod/Part/Gui/ViewProviderPython.cpp
+--- a/src/Mod/Part/Gui/ViewProviderPython.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/ViewProviderPython.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -23,7 +23,6 @@
+
+ #include "PreCompiled.h"
+
+-#include <Standard_math.hxx>
+ #ifndef _PreComp_
+ # include <Inventor/nodes/SoSeparator.h>
+ #endif
+diff --color -rupN a/src/Mod/Part/Gui/ViewProviderReference.h b/src/Mod/Part/Gui/ViewProviderReference.h
+--- a/src/Mod/Part/Gui/ViewProviderReference.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Part/Gui/ViewProviderReference.h 2024-02-27 15:00:48.255540482 +0100
+@@ -24,7 +24,6 @@
+ #ifndef PARTGUI_ViewProviderPartReference_H
+ #define PARTGUI_ViewProviderPartReference_H
+
+-#include <Standard_math.hxx>
+ #include <Standard_Boolean.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <Gui/ViewProviderGeometryObject.h>
+diff --color -rupN a/src/Mod/PartDesign/Gui/PreCompiled.h b/src/Mod/PartDesign/Gui/PreCompiled.h
+--- a/src/Mod/PartDesign/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/PartDesign/Gui/PreCompiled.h 2024-02-27 15:00:48.255540482 +0100
+@@ -44,7 +44,6 @@
+ #include <boost/bind/bind.hpp>
+
+ // OCC
+-#include <Standard_math.hxx>
+ #include <Standard_Version.hxx>
+ #include <Bnd_Box.hxx>
+ #include <BRepBndLib.hxx>
+diff --color -rupN a/src/Mod/Path/App/Voronoi.cpp b/src/Mod/Path/App/Voronoi.cpp
+--- a/src/Mod/Path/App/Voronoi.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Path/App/Voronoi.cpp 2024-02-27 15:00:48.255540482 +0100
+@@ -23,10 +23,6 @@
+
+ #include "PreCompiled.h"
+
+-#ifndef _PreComp_
+-# include <Standard_math.hxx>
+-#endif
+-
+ #include <Base/Vector3D.h>
+
+ #include "Voronoi.h"
+diff --color -rupN a/src/Mod/Path/Gui/PreCompiled.h b/src/Mod/Path/Gui/PreCompiled.h
+--- a/src/Mod/Path/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Path/Gui/PreCompiled.h 2024-02-27 15:00:48.258873781 +0100
+@@ -38,8 +38,6 @@
+ # define PathGuiExport
+ #endif
+
+-#include <Standard_math.hxx>
+-
+ #ifdef _MSC_VER
+ # pragma warning( disable : 4273 )
+ #endif
+diff --color -rupN a/src/Mod/Robot/Gui/PreCompiled.h b/src/Mod/Robot/Gui/PreCompiled.h
+--- a/src/Mod/Robot/Gui/PreCompiled.h 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Robot/Gui/PreCompiled.h 2024-02-27 15:00:48.258873781 +0100
+@@ -39,8 +39,6 @@
+ # define RobotGuiExport
+ #endif
+
+-#include <Standard_math.hxx>
+-
+ #ifdef _MSC_VER
+ # pragma warning(disable : 4005)
+ # pragma warning(disable : 4273)
+diff --color -rupN a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp
+--- a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+ #ifndef _PreComp_
+ # include <Python.h>
+-# include <Standard_math.hxx>
+ # include <Inventor/nodes/SoLineSet.h>
+ # include <Inventor/nodes/SoBaseColor.h>
+ # include <Inventor/nodes/SoSeparator.h>
+diff --color -rupN a/src/Mod/Sketcher/App/SketchAnalysis.cpp b/src/Mod/Sketcher/App/SketchAnalysis.cpp
+--- a/src/Mod/Sketcher/App/SketchAnalysis.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sketcher/App/SketchAnalysis.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -25,7 +25,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
+ # include <BRep_Tool.hxx>
+ # include <gp_Pnt.hxx>
+ # include <Precision.hxx>
+diff --color -rupN a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp
+--- a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
+ # include <Inventor/nodes/SoTranslation.h>
+ # include <Inventor/nodes/SoText2.h>
+ # include <Inventor/nodes/SoFont.h>
+diff --color -rupN a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp
+--- a/src/Mod/Sketcher/Gui/EditDatumDialog.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sketcher/Gui/EditDatumDialog.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -23,7 +23,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
+ /// Qt Include Files
+ # include <QApplication>
+ # include <QDialog>
+diff --color -rupN a/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp b/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp
+--- a/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sketcher/Gui/TaskSketcherValidation.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
+ # include <QDoubleValidator>
+ # include <QLocale>
+ # include <QMessageBox>
+diff --color -rupN a/src/Mod/Sketcher/Gui/ViewProviderPython.cpp b/src/Mod/Sketcher/Gui/ViewProviderPython.cpp
+--- a/src/Mod/Sketcher/Gui/ViewProviderPython.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sketcher/Gui/ViewProviderPython.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -23,7 +23,6 @@
+
+ #include "PreCompiled.h"
+
+-#include <Standard_math.hxx>
+ #ifndef _PreComp_
+ # include <Inventor/nodes/SoSeparator.h>
+ #endif
+diff --color -rupN a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp
+--- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -24,7 +24,6 @@
+ #include "PreCompiled.h"
+
+ #ifndef _PreComp_
+-# include <Standard_math.hxx>
+
+ # include <Inventor/actions/SoGetBoundingBoxAction.h>
+ # include <Inventor/SbBox3f.h>
+diff --color -rupN a/src/Mod/Surface/Gui/Command.cpp b/src/Mod/Surface/Gui/Command.cpp
+--- a/src/Mod/Surface/Gui/Command.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/Surface/Gui/Command.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -31,7 +31,6 @@
+ #include <QLineEdit>
+ #include <QMessageBox>
+ #include <QPointer>
+-#include <Standard_math.hxx>
+ #include <TopoDS_Shape.hxx>
+ #include <TopoDS_Edge.hxx>
+ #include <Geom_BezierCurve.hxx>
+diff --color -rupN a/src/Mod/TechDraw/Gui/TaskProjection.cpp b/src/Mod/TechDraw/Gui/TaskProjection.cpp
+--- a/src/Mod/TechDraw/Gui/TaskProjection.cpp 2022-12-07 03:35:37.000000000 +0100
++++ b/src/Mod/TechDraw/Gui/TaskProjection.cpp 2024-02-27 15:00:48.258873781 +0100
+@@ -29,9 +29,6 @@
+ # include <QMessageBox>
+ #endif
+
+-
+-#include <Standard_math.hxx>
+-
+ #include <Gui/Application.h>
+ #include <Gui/BitmapFactory.h>
+ #include <Gui/Command.h>
diff --git a/testing/freecad/resourceDirectory.patch b/testing/freecad/resourceDirectory.patch
new file mode 100644
index 00000000000..a2a16d1fe51
--- /dev/null
+++ b/testing/freecad/resourceDirectory.patch
@@ -0,0 +1,11 @@
+--- ./cMake/FreeCAD_Helpers/ConfigureCMakeVariables.cmake.orig
++++ ./cMake/FreeCAD_Helpers/ConfigureCMakeVariables.cmake
+@@ -23,7 +23,7 @@
+ "Path to the directory containing PyCXX's cxxextensions.c source file")
+
+ # used as compiler defines
+- set(RESOURCEDIR "${CMAKE_INSTALL_DATADIR}")
++ set(RESOURCEDIR "../../share/freecad")
+ set(LIBRARYDIR "${CMAKE_INSTALL_LIBDIR}")
+ set(DOCDIR "${CMAKE_INSTALL_DOCDIR}")
+
diff --git a/testing/freecad/tests.patch b/testing/freecad/tests.patch
new file mode 100644
index 00000000000..4b63a2061db
--- /dev/null
+++ b/testing/freecad/tests.patch
@@ -0,0 +1,33 @@
+--- ./src/Mod/Mesh/App/MeshTestsApp.py.orig
++++ ./src/Mod/Mesh/App/MeshTestsApp.py
+@@ -423,30 +423,6 @@
+ self.planarMesh = []
+ FreeCAD.newDocument("MeshTest")
+
+- def testRayPick(self):
+- if not FreeCAD.GuiUp:
+- return
+- self.planarMesh.append( [-16.097176,-29.891157,15.987688] )
+- self.planarMesh.append( [-16.176304,-29.859991,15.947966] )
+- self.planarMesh.append( [-16.071451,-29.900553,15.912505] )
+- self.planarMesh.append( [-16.092241,-29.893408,16.020439] )
+- self.planarMesh.append( [-16.007210,-29.926180,15.967641] )
+- self.planarMesh.append( [-16.064457,-29.904951,16.090832] )
+- planarMeshObject = Mesh.Mesh(self.planarMesh)
+-
+- from pivy import coin; import FreeCADGui
+- Mesh.show(planarMeshObject)
+- view=FreeCADGui.ActiveDocument.ActiveView.getViewer()
+- rp=coin.SoRayPickAction(view.getSoRenderManager().getViewportRegion())
+- rp.setRay(coin.SbVec3f(-16.05,16.0,16.0),coin.SbVec3f(0,-1,0))
+- rp.apply(view.getSoRenderManager().getSceneGraph())
+- pp=rp.getPickedPoint()
+- self.assertTrue(pp != None)
+- det=pp.getDetail()
+- self.assertTrue(det.getTypeId() == coin.SoFaceDetail.getClassTypeId())
+- det=coin.cast(det, det.getTypeId().getName().getString())
+- self.assertTrue(det.getFaceIndex() == 1)
+-
+ def testPrimitiveCount(self):
+ if not FreeCAD.GuiUp:
+ return
diff --git a/testing/freediameter/APKBUILD b/testing/freediameter/APKBUILD
new file mode 100644
index 00000000000..bfba7316863
--- /dev/null
+++ b/testing/freediameter/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Peter Shkenev <santurysim@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=freediameter
+pkgver=1.5.0
+_gitcommit="33dbbd20c9107a765dbafb9b1fef16f5f47c65cd"
+pkgrel=1
+pkgdesc="Free implementation of Diameter protocol"
+url="https://github.com/open5gs/freediameter"
+arch="all"
+options="!check" #no test suite
+license="BSD-3-Clause"
+makedepends="cmake libgcrypt-dev libidn-dev gnutls-dev flex bison samurai"
+subpackages="$pkgname-dev $pkgname-libfdcore $pkgname-libfdproto $pkgname-extensions"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/open5gs/freediameter/archive/$_gitcommit.tar.gz
+ "
+builddir="$srcdir/freeDiameter-$_gitcommit"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DDISABLE_SCTP=ON \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+libfdcore() {
+ pkgdesc="$pkgdesc (core library)"
+ amove usr/lib/libfdcore.so.*
+}
+
+libfdproto() {
+ pkgdesc="$pkgdesc (protocol library)"
+ amove usr/lib/libfdproto.so.*
+}
+
+extensions() {
+ pkgdesc="$pkgdesc (extensions)"
+ amove usr/lib/freeDiameter
+}
+
+sha512sums="
+91a003447bee8174e89b1244f6d89c67c0686193ea6b5e2b0588156ec648d8ff6ee4b16ce6ccf081e2606916c1f1e2a7037e044f3149e10cd180424b669f136c freediameter-1.5.0.tar.gz
+"
diff --git a/testing/freedoom/APKBUILD b/testing/freedoom/APKBUILD
index 4b120072db9..cd0909e960e 100644
--- a/testing/freedoom/APKBUILD
+++ b/testing/freedoom/APKBUILD
@@ -1,16 +1,19 @@
# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: Antoine Fontaine <antoine.fontaine@epfl.ch>
-pkgname="freedoom"
-pkgver="0.12.1"
-pkgrel=0
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=freedoom
+pkgver=0.12.1
+pkgrel=2
pkgdesc="an entirely free software game running on a Doom engine."
url="https://freedoom.github.io"
-arch="noarch !s390x !mips !mips64"
+arch="noarch !s390x"
license="BSD-3-Clause-Clear"
makedepends="python3 py3-pillow make deutex asciidoc asciidoctor"
options="!check"
subpackages="$pkgname-doc"
-source="https://github.com/freedoom/freedoom/releases/download/v$pkgver/freedoom-$pkgver.tar.xz"
+source="
+ https://github.com/freedoom/freedoom/releases/download/v$pkgver/freedoom-$pkgver.tar.xz
+ support-python-pil-10.patch
+ "
build() {
make
@@ -21,4 +24,7 @@ package() {
make DESTDIR="$pkgdir" prefix=/usr install
}
-sha512sums="08a8489e1bbd9418262bfefaa9afe67a281b6f3fd38f77ac822438da434229bb034077e53658c06fa93cbf3ba3c5c25dab5fe1844fe23043e310d21866e12810 freedoom-0.12.1.tar.xz"
+sha512sums="
+08a8489e1bbd9418262bfefaa9afe67a281b6f3fd38f77ac822438da434229bb034077e53658c06fa93cbf3ba3c5c25dab5fe1844fe23043e310d21866e12810 freedoom-0.12.1.tar.xz
+0a11c8f79ab8e289f5940596203f43e11ad2709709b9c9ee4e14304e18ab3d0b0991bc292f77b2fe06ada7addcb63537aeb270b1cf3d3b7455ca8913ceee5e73 support-python-pil-10.patch
+"
diff --git a/testing/freedoom/support-python-pil-10.patch b/testing/freedoom/support-python-pil-10.patch
new file mode 100644
index 00000000000..9e3632728f4
--- /dev/null
+++ b/testing/freedoom/support-python-pil-10.patch
@@ -0,0 +1,40 @@
+Patch-source: https://github.com/freedoom/freedoom/commit/d64ddc6ea
+From d64ddc6ea90406e21b4b93f5a1e7f99abfaac0d9 Mon Sep 17 00:00:00 2001
+From: Steven Elliott <selliott512@gmail.com>
+Date: Sun, 16 Jul 2023 14:52:04 -0400
+Subject: [PATCH] create_caption: Python PIL 10.0.0 support (#1027)
+
+To support Python PIL 10.0.0 this change uses newer API textbbox() when
+available, and older API textsize() when not.
+---
+ graphics/text/create_caption | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/graphics/text/create_caption b/graphics/text/create_caption
+index 7ddbd8d66..22bc0507d 100755
+--- a/graphics/text/create_caption
++++ b/graphics/text/create_caption
+@@ -18,8 +18,21 @@ background_image.load()
+ background_image = background_image.convert("RGBA")
+ image = Image.new("RGBA", background_image.size, (0, 0, 0, 0))
+ draw = ImageDraw.Draw(image)
+-txt1_size = draw.textsize(txt1, font=font)
+-txt2_size = draw.textsize(txt2, font=font)
++
++# Getting the text size is tricky since for newer PIL, such as 10.0.0, only
++# textbbox() is supported, but for older PIL, such 7.2.0, only textsize()
++# is supported. The solution is to default to the newer API, but fallback to
++# the older one when it is not available.
++try:
++ # This newer API returns a four item tuple. The "xy" kwarg is returned in
++ # the first two items, and last two items is the size needed, but with "xy"
++ # added, so passing "(0, 0)" returns the size needed.
++ txt1_size = draw.textbbox(xy=(0, 0), text=txt1, font=font)[2:]
++ txt2_size = draw.textbbox(xy=(0, 0), text=txt2, font=font)[2:]
++except:
++ # This older API simply returns the size needed.
++ txt1_size = draw.textsize(txt1, font=font)
++ txt2_size = draw.textsize(txt2, font=font)
+
+ draw.text(
+ (5, int(image.height - txt1_size[1] - 5)),
diff --git a/testing/freetube/APKBUILD b/testing/freetube/APKBUILD
new file mode 100644
index 00000000000..73d76afe70e
--- /dev/null
+++ b/testing/freetube/APKBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
+# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
+pkgname=freetube
+pkgver=0.20.0
+pkgrel=0
+pkgdesc="An open source desktop YouTube player built with privacy in mind."
+arch="x86_64 aarch64" # blocked by electron
+license="AGPL-3.0-only"
+depends="
+ electron
+ font-roboto
+ "
+makedepends="
+ electron-tasje
+ nodejs
+ yarn
+ "
+url="https://freetubeapp.io"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/FreeTubeApp/FreeTube/archive/v$pkgver-beta.tar.gz
+ freetube.sh
+ tasje-dotdash.patch
+ "
+options="net !check" # No testsuite
+builddir="$srcdir"/FreeTube-$pkgver-beta
+
+export npm_config_nodedir=/usr/include/electron/node_headers
+export npm_config_build_from_source=true
+
+prepare() {
+ default_prepare
+
+ yarn --cache-folder "$srcdir"/yarn-cache install --frozen-lockfile --ignore-scripts
+}
+
+build() {
+ yarn --cache-folder "$srcdir"/yarn-cache run pack
+
+ tasje --config _scripts/ebuilder.config.js pack
+}
+
+package() {
+ # directory creation + program copy
+ install -Dm755 build/resources/app.asar -t "$pkgdir"/usr/lib/$pkgname/
+
+ # link binaries + other items
+ install -Dm755 "$srcdir"/freetube.sh "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 "$builddir"/_icons/icon.svg "$pkgdir"/usr/share/icons/hicolor/scalable/$pkgname.svg
+ install -Dm644 build/freetube.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+}
+
+sha512sums="
+b82cdaff82d7bd325f3127794160382c97be3b72c5ef4bb3f327a8ada6b609043bc30a1f6af59c38e23237aac7d8b6ea2685c22aa82469c8d08b96cb839a3099 freetube-0.20.0.tar.gz
+2ce2effc794bb663789cefe968b5899122127983dbfa1b240aa33a2be383720b18204e6d01b4a550df72956f02b6636b79c93a58f470a970b09b770f5b8f2fc4 freetube.sh
+d27cb896b65a7e8d52ffe86e5f74eed72b6cf976b28e1a13012d34c7eceba5ff6f20298017738dfa93c0336ffa52b8ee4da7e06b02747062898db7e678819526 tasje-dotdash.patch
+"
diff --git a/testing/freetube/freetube.sh b/testing/freetube/freetube.sh
new file mode 100644
index 00000000000..5d2bb776c70
--- /dev/null
+++ b/testing/freetube/freetube.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec electron /usr/lib/freetube/app.asar "$@"
diff --git a/testing/freetube/tasje-dotdash.patch b/testing/freetube/tasje-dotdash.patch
new file mode 100644
index 00000000000..9f2c2e0be90
--- /dev/null
+++ b/testing/freetube/tasje-dotdash.patch
@@ -0,0 +1,12 @@
+https://codeberg.org/selfisekai/electron_tasje/issues/27
+--- ./_scripts/ebuilder.config.js.orig
++++ ./_scripts/ebuilder.config.js
+@@ -20,7 +20,7 @@
+ files: [
+ '_icons/iconColor.*',
+ 'icon.svg',
+- './dist/**/*',
++ 'dist/**/*',
+ '!dist/web/*',
+ '!node_modules/**/*',
+ ],
diff --git a/testing/frescobaldi/APKBUILD b/testing/frescobaldi/APKBUILD
new file mode 100644
index 00000000000..844ead40b27
--- /dev/null
+++ b/testing/frescobaldi/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Krystian Chachuła <krystian@krystianch.com>
+pkgname=frescobaldi
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="LilyPond sheet music text editor"
+url="https://www.frescobaldi.org/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="py3-qt5 py3-poppler-qt5 py3-qpageview py3-ly"
+makedepends="py3-gpep517 py3-setuptools py3-wheel gettext"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/frescobaldi/frescobaldi/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ make -C i18n
+
+ make -C linux
+
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+
+ install -m 644 frescobaldi.1 \
+ "$pkgdir"/usr/share/man/man1/frescobaldi.1
+}
+
+sha512sums="
+0dc851cb2ab001f366d20d3c27159087a643cbb5661cc7388b9ec5209c03d4d47dc9114f378dab0562a1a4cb84c2a67eddd8b1981ceaa057e5ac79f8c277ad05 frescobaldi-3.3.0.tar.gz
+"
diff --git a/testing/freshrss/APKBUILD b/testing/freshrss/APKBUILD
new file mode 100644
index 00000000000..8a70bafb36d
--- /dev/null
+++ b/testing/freshrss/APKBUILD
@@ -0,0 +1,155 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=freshrss
+pkgver=1.23.1
+pkgrel=1
+pkgdesc="Free and self hosted rss feed agregator"
+url="https://freshrss.org"
+arch="noarch"
+license="AGPL-3.0-or-later"
+pkgusers="freshrss"
+pkggroups="www-data"
+_php=php82
+depends="
+ $_php
+ $_php-ctype
+ $_php-curl
+ $_php-dom
+ $_php-fileinfo
+ $_php-fpm
+ $_php-gmp
+ $_php-intl
+ $_php-mbstring
+ $_php-session
+ $_php-xml
+ $_php-zip
+ "
+checkdepends="
+ $_php-phar
+ $_php-tokenizer
+ $_php-xmlwriter
+ phpunit
+ "
+install="$pkgname.pre-install $pkgname-openrc.post-install"
+subpackages="
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-lang
+ $pkgname-themes
+ $pkgname-mysql
+ $pkgname-pgsql
+ $pkgname-sqlite"
+source="https://github.com/FreshRSS/FreshRSS/archive/refs/tags/$pkgver/freshrss-$pkgver.tar.gz
+ defaults.patch
+ freshrss.confd
+ fpm-pool.conf
+ freshrss.crontab
+ "
+builddir="$srcdir/FreshRSS-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # Create directory for tests
+ mkdir -p "$srcdir"/data/users/_
+}
+
+check() {
+ DATA_PATH="$srcdir"/data \
+ $_php /usr/bin/phpunit ./tests --bootstrap ./tests/bootstrap.php
+}
+
+package() {
+ rm -f ./*.md
+ rm -rf .devcontainer
+ rm -f .dockerignore
+ rm -f .editorconfig
+ rm -f .eslint*
+ rm -f .jshint*
+ rm -f .style*
+ rm -f .markdownlint*
+ rm -f .hadolint*
+ rm -f .typos.toml
+ rm -f Makefile
+
+ install -d "$pkgdir"/usr/share/doc
+ mv ./docs "$pkgdir"/usr/share/doc/$pkgname
+
+ install -d "$pkgdir"/usr/share/webapps/freshrss
+ cp -r . "$pkgdir"/usr/share/webapps/freshrss/
+
+ find "$pkgdir/usr/share/webapps/freshrss" -name '.git*' -exec rm -rf {} \; || true
+
+ rm -rf "$pkgdir"/usr/share/webapps/freshrss/Docker
+ rm -rf "$pkgdir"/usr/share/webapps/freshrss/tests
+ install -dm755 "$pkgdir"/var/lib/freshrss
+
+ mv "$pkgdir"/usr/share/webapps/freshrss/data "$pkgdir"/var/lib/freshrss/data
+ chgrp -R "www-data" "$pkgdir"/var/lib/freshrss/
+ chown -R "$pkgname" "$pkgdir"/var/lib/freshrss/
+
+ install -dm775 -o "$pkgname" -g www-data "$pkgdir"/var/log/"$pkgname"
+
+ install -m600 -D "$srcdir"/freshrss.crontab "$pkgdir"/etc/crontabs/freshrss
+}
+
+openrc() {
+ install -m644 -D "$srcdir"/fpm-pool.conf "$subpkgdir/etc/$_php/php-fpm.d/$pkgname".conf
+ install -m644 -D "$srcdir/$pkgname".confd "$subpkgdir"/etc/conf.d/"$pkgname"
+
+ install -d -o freshrss -g www-data "$pkgdir"/var/tmp/freshrss
+
+ mkdir -p "$subpkgdir"/etc/init.d/
+ ln -s "php-fpm${_php#php}" "$subpkgdir"/etc/init.d/"$pkgname"
+}
+
+lang() {
+ pkgdesc="translations for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+ local lang
+ for lang in "$pkgdir"/usr/share/webapps/freshrss/app/i18n/*; do
+ # keep in base for default language
+ if [ "$(basename "$lang")" != "en" ]; then
+ amove /usr/share/webapps/freshrss/app/i18n/"$(basename "$lang")"
+ fi
+ done
+}
+
+themes() {
+ pkgdesc="themes for $pkgname"
+ local theme
+ for theme in "$pkgdir"/usr/share/webapps/freshrss/p/themes/*; do
+ if [ -d "$theme" ]; then
+ case "$(basename "$theme")" in
+ # keep base-theme and default files, split the rest
+ base-theme | fonts | icons | Origine) ;;
+ *) amove /usr/share/webapps/freshrss/p/themes/"$(basename "$theme")" ;;
+ esac
+ fi
+ done
+}
+
+mysql() {
+ pkgdesc="FreshRSS MySQL support"
+ depends="$pkgname $_php-pdo_mysql"
+ mkdir -p "$subpkgdir"
+}
+
+pgsql() {
+ pkgdesc="FreshRSS PostgreSQL support"
+ depends="$pkgname $_php-pgsql $_php-pdo_pgsql"
+ mkdir -p "$subpkgdir"
+}
+
+sqlite() {
+ pkgdesc="FreshRSS SQLite support"
+ depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite"
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="
+df4c7eedf3dc8c5c9d0de722e00e3846d1bb1b1605d53a9415b5fd49715b91d6cf22f7f64503a706af32dc6f96415e28d772f7442816e76e266b4aa908984e95 freshrss-1.23.1.tar.gz
+dbd1468439192cd536ae1fc063edcda0a8047504c053f2566486697d454bbc328bb5ba841b597c09c1c4954fa0d71d1c79044fb8a179915b5bcc136fa2b50889 defaults.patch
+304767cc14db425fdb6f0214aca8baaa92ea05e8fc767e79ec96c4d9032509c2b52cb687106dc25b291bc7150305dde0bd0a84d77b0fc8ad872d2331c458bacf freshrss.confd
+b6fe57b31bd48afb067d0c851ff42078e01ee42e3e2f01bbb64f8114429ddce740ce3fbd76eb487acf1b80909eb7e5e2721d5f3b2bdd6264d75d169d032dd2fe fpm-pool.conf
+96cbd84ea28ea193212505d228a5ec2124e7a63da02f3fbfb37460aacb5e3dbd9bd72385267f115e817177b9f640e8861e845e9cf9e121c7d9f7af1d22f449e4 freshrss.crontab
+"
diff --git a/testing/freshrss/defaults.patch b/testing/freshrss/defaults.patch
new file mode 100644
index 00000000000..6dfa447a62c
--- /dev/null
+++ b/testing/freshrss/defaults.patch
@@ -0,0 +1,26 @@
+diff --git a/config.default.php b/config.default.php
+index 87297554..51e42ad7 100644
+--- a/config.default.php
++++ b/config.default.php
+@@ -194,7 +194,7 @@ return array(
+ 'extensions' => [],
+
+ # Disable self-update,
+- 'disable_update' => false,
++ 'disable_update' => true,
+
+ # Trusted IPs (e.g. of last proxy) that are allowed to send unsafe HTTP headers.
+ # The connection IP used during FreshRSS setup is automatically added to this list.
+diff --git a/constants.php b/constants.php
+index 824a7a5f..a09fe6c2 100644
+--- a/constants.php
++++ b/constants.php
+@@ -45,7 +45,7 @@ $dataPath = getenv('DATA_PATH');
+ if (is_string($dataPath) && $dataPath !== '') {
+ define('DATA_PATH', $dataPath);
+ } else {
+- defined('DATA_PATH') or define('DATA_PATH', FRESHRSS_PATH . '/data');
++ defined('DATA_PATH') or define('DATA_PATH', '/var/lib/freshrss/data');
+ }
+
+ defined('UPDATE_FILENAME') or define('UPDATE_FILENAME', DATA_PATH . '/update.php');
diff --git a/testing/freshrss/fpm-pool.conf b/testing/freshrss/fpm-pool.conf
new file mode 100644
index 00000000000..216a9230975
--- /dev/null
+++ b/testing/freshrss/fpm-pool.conf
@@ -0,0 +1,56 @@
+[global]
+error_log = /var/log/freshrss/php-fpm.log
+
+log_level = warning
+
+emergency_restart_threshold = 10
+
+emergency_restart_interval = 1m
+
+process_control_timeout = 10s
+
+
+[freshrss]
+user = freshrss
+group = www-data
+
+listen = /run/freshrss/fastcgi.sock
+
+listen.mode = 0660
+
+pm = ondemand
+
+pm.max_children = 10
+
+pm.process_idle_timeout = 120s
+
+pm.max_requests = 500
+
+pm.status_path =
+
+ping.path = /ping
+
+env[PATH] = /usr/local/bin:/usr/bin:/bin
+env[TMP] = /tmp
+env[TMPDIR] = /tmp
+env[TEMP] = /tmp
+
+php_admin_flag[file_uploads] = true
+
+php_admin_value[memory_limit] = 512M
+php_admin_value[post_max_size] = 513M
+php_admin_value[upload_max_filesize] = 513M
+
+php_admin_value[session.save_path] = /var/tmp/freshrss
+php_admin_value[sys_temp_dir] = /var/tmp/freshrss
+
+php_admin_flag[log_errors] = on
+php_admin_value[error_log] = /var/log/freshrss/php.error.log
+
+php_admin_value[opcache.error_log] = /var/log/freshrss/php.error.log
+
+php_admin_flag[output_buffering] = false
+
+php_admin_flag[mbstring.func_overload] = false
+
+php_admin_value[always_populate_raw_post_data] = -1
diff --git a/testing/freshrss/freshrss-openrc.post-install b/testing/freshrss/freshrss-openrc.post-install
new file mode 100755
index 00000000000..48034186574
--- /dev/null
+++ b/testing/freshrss/freshrss-openrc.post-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+cat << EOF
+*
+* Point your web server to /run/freshrss/fastcgi.sock and
+* start FreshRSS with
+* /etc/init.d/freshrss start.
+*
+EOF
+
+exit 0
diff --git a/testing/freshrss/freshrss.confd b/testing/freshrss/freshrss.confd
new file mode 100755
index 00000000000..ef7582abddc
--- /dev/null
+++ b/testing/freshrss/freshrss.confd
@@ -0,0 +1,4 @@
+name="FreshRSS"
+user="freshrss"
+group="www-data"
+
diff --git a/testing/freshrss/freshrss.crontab b/testing/freshrss/freshrss.crontab
new file mode 100644
index 00000000000..3f371ee1b88
--- /dev/null
+++ b/testing/freshrss/freshrss.crontab
@@ -0,0 +1 @@
+*/15 * * * * php82 -f /usr/share/webapps/freshrss/app/actualize_script.php >> /dev/null 2>&1
diff --git a/testing/freshrss/freshrss.pre-install b/testing/freshrss/freshrss.pre-install
new file mode 100755
index 00000000000..6cb249022ea
--- /dev/null
+++ b/testing/freshrss/freshrss.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S -g 82 www-data 2>/dev/null
+adduser -S -D -H -h /var/lib/freshrss -s /sbin/nologin -G www-data -g FreshRSS freshrss 2>/dev/null
+
+exit 0
diff --git a/testing/fscryptctl/APKBUILD b/testing/fscryptctl/APKBUILD
new file mode 100644
index 00000000000..ee6862d0f0f
--- /dev/null
+++ b/testing/fscryptctl/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Luca Weiss <luca@z3ntu.xyz>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=fscryptctl
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Small C tool for Linux filesystem encryption"
+url="https://github.com/google/fscryptctl"
+arch="all"
+license="Apache-2.0"
+makedepends="linux-headers"
+source="https://github.com/google/fscryptctl/archive/v$pkgver/fscryptctl-$pkgver.tar.gz"
+options="!check" # tests require root
+
+# Skip building docs because pandoc is only available for x86_64 and aarch64
+
+build() {
+ make fscryptctl
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install-bin
+}
+
+sha512sums="
+3ee37d3b10a145b2c50fa56644461313437d97f9ca1a840f6e897f527c5bf6c15af1172a1994b3ff0038f469a74edfa40f7383c08f24b195a78f3f5d35dd895b fscryptctl-1.1.0.tar.gz
+"
diff --git a/testing/fulcrum/APKBUILD b/testing/fulcrum/APKBUILD
new file mode 100644
index 00000000000..ded1777345a
--- /dev/null
+++ b/testing/fulcrum/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Jurvis Tan <jurvis@squareup.com>
+# Maintainer: Jurvis Tan <jurvis@squareup.com>
+pkgname=fulcrum
+_pkgname=Fulcrum
+pkgver=1.9.8
+pkgrel=0
+pkgdesc="Fast & nimble SPV Server for BCH and BTC"
+url="https://github.com/cculianu/Fulcrum"
+arch="all !riscv64" # limited by rocksdb
+license="GPL-3.0-or-later"
+makedepends="rocksdb-dev<7.10 zlib-dev bzip2-dev zeromq-dev qt5-qtbase-dev"
+subpackages="$pkgname-admin:admin:noarch $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cculianu/$_pkgname/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
+
+build() {
+ qmake-qt5 PREFIX=/usr $_pkgname.pro
+ make
+}
+
+package() {
+ make install INSTALL_ROOT="$pkgdir"
+ mv "$pkgdir"/usr/bin/$_pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+admin() {
+ pkgdesc="Fulcrum Admin CLI"
+ depends="python3"
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/${_pkgname}Admin "$subpkgdir"/usr/bin/$pkgname-admin
+}
+
+sha512sums="
+460b0a1fa0f10b5f379b556508d2773e1da64719f72acad2b663c7dce96ccdd35bd4db1f0a24d544a6afa0d870f7cca1fc3926c225e9cae3cbe6ebf4110be66a fulcrum-1.9.8.tar.gz
+"
diff --git a/testing/fusee-nano/APKBUILD b/testing/fusee-nano/APKBUILD
index 5114ad8e3e8..01afa295a5d 100644
--- a/testing/fusee-nano/APKBUILD
+++ b/testing/fusee-nano/APKBUILD
@@ -1,36 +1,44 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=fusee-nano
-pkgver=0.4
+pkgver=0.5.3
pkgrel=0
-pkgdesc="A minimalist re-implementation of the Fusée Gelée exploit, designed to run on embedded Linux devices."
+pkgdesc="Minimalist re-implementation of the Fusée Gelée exploit, designed to run on embedded Linux devices."
url="https://github.com/DavidBuchanan314/fusee-nano"
arch="all"
license="MIT"
options="!check" # No test suite
-makedepends="linux-headers"
+makedepends="linux-headers xxd"
subpackages="$pkgname-udev::noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/DavidBuchanan314/fusee-nano/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/DavidBuchanan314/fusee-nano/archive/$pkgver.tar.gz
+ broken-makefile.patch
+ "
build() {
- make
+ make CC="${CC:-cc}"
}
package() {
- mkdir -p "$pkgdir"/usr/share/$pkgname/
- cp -r files/* "$pkgdir"/usr/share/$pkgname/
- install -Dm 755 fusee-nano "$pkgdir"/usr/bin/fusee-nano
+ mkdir -p "$pkgdir"/usr/share/$pkgname/
+ cp -r files/* "$pkgdir"/usr/share/$pkgname/
+ install -Dm 755 fusee-nano "$pkgdir"/usr/bin/fusee-nano
- # Remove openwrt file
- rm "$pkgdir"/usr/share/$pkgname/20-tegra_rcm
+ # Remove openwrt file
+ rm "$pkgdir"/usr/share/$pkgname/20-tegra_rcm
+
+ mkdir -p "$pkgdir"/lib/udev/rules.d/
+ mv "$pkgdir"/usr/share/fusee-nano/*.rules \
+ "$pkgdir"/lib/udev/rules.d/
}
udev() {
- pkgdesc="udev rule for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel eudev"
- mkdir -p "$subpkgdir"/lib/udev/rules.d/
- mv "$pkgdir"/usr/share/$pkgname/*.rules \
- "$subpkgdir"/lib/udev/rules.d/
+ pkgdesc="udev rule for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel eudev"
+
+ amove lib/udev/rules.d
}
-sha512sums="18fe586a111a9bc8dd9c6ff57002ac731843c83151bfe2d63dd8890305862a7a93a9737256405dbc1c76f5a3fab94475fa786135c55d712e26600d04e0c26450 fusee-nano-0.4.tar.gz"
+sha512sums="
+c110aa1597aaefbfb9c9ccd50c53d70450ce37854f794e625b4ed3438928e1b690091ff9cde9fd142b5e4d77c95a5e54a2926aa9d136f0bb2d54ebdacc106c81 fusee-nano-0.5.3.tar.gz
+c7f8c09625d357105015b620f012802513c6617e140d168f5e74a4c7c287578b78ca13f633cd6019a5f6494f85cece8c87260d8240035988ffc24afc53b7dcb4 broken-makefile.patch
+"
diff --git a/testing/fusee-nano/broken-makefile.patch b/testing/fusee-nano/broken-makefile.patch
new file mode 100644
index 00000000000..82fc107b076
--- /dev/null
+++ b/testing/fusee-nano/broken-makefile.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index eae7a71..0b88a25 100644
+--- a/Makefile
++++ b/Makefile
+@@ -13,7 +13,7 @@ all: $(TARGET)
+ $(CC) -c -o $@ $< $(CFLAGS)
+
+ $(TARGET): $(OBJ)
+- $(CC) -o $@ $^ $(CFLAGS)
++ $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
+
+ clean:
+ rm $(TARGET) $(OBJ)
diff --git a/testing/fuzzylite/APKBUILD b/testing/fuzzylite/APKBUILD
new file mode 100644
index 00000000000..35901539d0d
--- /dev/null
+++ b/testing/fuzzylite/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: ovf <ovf@mm.st>
+pkgname=fuzzylite
+pkgver=6.0
+pkgrel=0
+pkgdesc="A fuzzy logic control library in C++"
+url="https://fuzzylite.com"
+# only used for vcmi revdep
+arch="aarch64 x86_64"
+license="GPL-3.0-only"
+makedepends="cmake samurai"
+subpackages="$pkgname-libs $pkgname-dev $pkgname-doc"
+source="https://github.com/fuzzylite/fuzzylite/archive/refs/tags/v$pkgver/fuzzylite-$pkgver.tar.gz
+ no-werror.patch
+ "
+builddir="$srcdir/fuzzylite-$pkgver/fuzzylite"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DFL_BACKTRACE=OFF \
+ -DFL_BUILD_STATIC=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm644 fuzzylite.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+6f5d40d0359458e109ac2aebfbf571f61867a8b49920f4a5e1b5d86bdf578dba038b942c9e05eab0d4620f73e8cded770abe7b5e597a3b4c39dbcf6a1259f4af fuzzylite-6.0.tar.gz
+536439896cfae4bcfc93f7d3a8474424a3e589b55e3ae57c1ab8936d3166dea688ae8f6f0ef414a79238150822d811f0420a3849c94b33c5a7cd011e755bb95b no-werror.patch
+"
diff --git a/testing/fuzzylite/no-werror.patch b/testing/fuzzylite/no-werror.patch
new file mode 100644
index 00000000000..06260b6af14
--- /dev/null
+++ b/testing/fuzzylite/no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 28435e2..3824c8f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -74,7 +74,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin)
+ if(NOT MSVC)
+ #TODO: Remove -Werror before release.
+ #Add Unix compilation flags
+- set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Werror ${CMAKE_CXX_FLAGS}")
++ set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra ${CMAKE_CXX_FLAGS}")
+
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
diff --git a/testing/fwallet/APKBUILD b/testing/fwallet/APKBUILD
new file mode 100644
index 00000000000..cef42dc638c
--- /dev/null
+++ b/testing/fwallet/APKBUILD
@@ -0,0 +1,99 @@
+# Contributor: The one with the braid <info@braid.business>
+# Maintainer: The one with the braid <info@braid.business>
+pkgname=fwallet
+pkgver=1.1.4
+pkgrel=1
+pkgdesc="A beautiful cross-platform wallet application"
+url="https://gitlab.com/TheOneWithTheBraid/f_wallet"
+arch="aarch64 x86_64" # flutter
+license="EUPL-1.2"
+# xdg-user-dirs: pub/path_provider
+depends="
+ xdg-user-dirs
+ "
+makedepends="
+ flutter-desktop
+ libsecret-dev
+ patchelf
+ "
+source="
+ https://gitlab.com/TheOneWithTheBraid/f_wallet/-/archive/${_rev:-"v$pkgver"}/f_wallet-${_rev:-v"$pkgver"}.tar.gz
+
+ system-flutter.patch
+ no-werror.patch
+ flutter-3.19.patch
+ "
+builddir="$srcdir/f_wallet-${_rev:-"v$pkgver"}"
+# net: pub dependencies
+# !check: no tests
+options="net !check"
+
+export _pkgorg="business.braid.f_wallet"
+export _pkgexec="f_wallet"
+
+case "$CARCH" in
+ aarch64) _flutter_arch="arm64" ;;
+ x86_64) _flutter_arch="x64" ;;
+esac
+
+export PUB_CACHE="$srcdir/pub_cache"
+
+export CFLAGS="${CFLAGS/-g/} -O2 -Wno-error -Wno-unknown-warning-option -Wno-unused-command-line-argument"
+export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-error -Wno-unknown-warning-option -Wno-unused-command-line-argument"
+
+export CC=clang
+export CXX=clang++
+export AR=llvm-ar
+export NM=llvm-nm
+export LD=clang++
+
+prepare() {
+ default_prepare
+
+ flutter pub get --enforce-lockfile
+ flutter gen-l10n
+
+ # if there is a binary in the pub_cache, we sure did not build it.
+ for elf in $(scanelf -RA -F "%F" "$PUB_CACHE"); do
+ rm -f "$elf"
+ done
+}
+
+build() {
+ flutter build linux -v --release \
+ --dart-define=FWALLET_IS_STABLE=true \
+ --dart-define=FWALLET_VERSION=$pkgver
+
+ patchelf --set-rpath '$ORIGIN/lib' build/linux/"$_flutter_arch"/release/bundle/$_pkgexec
+ for _elf in build/linux/"$_flutter_arch"/release/bundle/lib/lib*.so; do
+ # running patchelf on libapp (the AOT snapshot of the whole Dart codebase)
+ # breaks it with "[FATAL:flutter/runtime/dart_vm_initializer.cc(89)]
+ # Error while initializing the Dart VM: Invalid vm isolate snapshot seen".
+ #
+ # it has no rpath and only links to libc soname anyway. 🤷â€â™€ï¸
+ [ "$(basename "$_elf")" != "libapp.so" ] || continue
+
+ patchelf --set-rpath '$ORIGIN' "$_elf"
+ done
+}
+
+package() {
+ local bundle="$builddir"/build/linux/$_flutter_arch/release/bundle
+
+ install -Dm755 "$bundle"/$_pkgexec "$pkgdir"/usr/lib/$pkgname/$_pkgexec
+ cp -rv "$bundle"/lib "$pkgdir"/usr/lib/$pkgname/lib
+ cp -rv "$bundle"/data "$pkgdir"/usr/lib/$pkgname/data
+
+ mkdir -p "$pkgdir"/usr/bin
+ ln -sv /usr/lib/$pkgname/$_pkgexec "$pkgdir"/usr/bin/$_pkgexec
+
+ install -Dm644 linux/$_pkgorg.desktop "$pkgdir"/usr/share/applications/$_pkgorg.desktop
+ install -Dm644 assets/logo/logo-circle.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/$_pkgorg.svg
+}
+
+sha512sums="
+5ea49d2a766ff9f6ff7c7f6921cb91c5f71d67adfaeba41931ff175cd5332c5aed82a7feb5bd42c3376d1ab6b4e6bd58123bddb21ada352f0891021d03b665a2 f_wallet-v1.1.4.tar.gz
+91014708ab7bb81518ce93db0612209d6479dfa503064d9e9d3186cd5e861165a3f63e286d271d5aac8a1d676868fc3acf51648ac01c16a215062a317ccb6623 system-flutter.patch
+1d2b7d28a09e26ed48d89aa5f5dffb738ba367fa2760b12980225239705e16fa1ec89901d7aecf26c8527de721a5f50f50cc77ea009cd5f25f219d1af8730ed8 no-werror.patch
+68b198c617df5f94bf674348e5fd00d3aedd214d09dc5260257c88aaf0f9d11bafc9f5abde5240ec9495390f58f3674b3407e97a77c282985abc66ee843ad828 flutter-3.19.patch
+"
diff --git a/testing/fwallet/flutter-3.19.patch b/testing/fwallet/flutter-3.19.patch
new file mode 100644
index 00000000000..24302d071e7
--- /dev/null
+++ b/testing/fwallet/flutter-3.19.patch
@@ -0,0 +1,128 @@
+From de451759e1cd35edc55d6cfee88b5dfc97ae491f Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Fri, 16 Feb 2024 09:19:43 +0100
+Subject: [PATCH] chore: upgrade flutter to 3.19.0
+
+---
+ .gitlab-ci.yml | 2 +-
+ flutter_version | 2 +-
+ pubspec.lock | 48 ++++++++++++++++++++++++++++++++++++++++--------
+ 3 files changed, 42 insertions(+), 10 deletions(-)
+
+diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
+index c69785f..550dc4d 100644
+--- a/.gitlab-ci.yml
++++ b/.gitlab-ci.yml
+@@ -1,5 +1,5 @@
+ variables:
+- FLUTTER_VERSION: 3.16.9
++ FLUTTER_VERSION: 3.19.0
+
+ image: registry.gitlab.com/theonewiththebraid/flutter-dockerimages:$FLUTTER_VERSION-base
+
+diff --git a/flutter_version b/flutter_version
+index f7be2e1..419f300 100644
+--- a/flutter_version
++++ b/flutter_version
+@@ -1 +1 @@
+-3.16.9
++3.19.0
+diff --git a/pubspec.lock b/pubspec.lock
+index fbe1bf5..b35f21c 100644
+--- a/pubspec.lock
++++ b/pubspec.lock
+@@ -421,6 +421,30 @@ packages:
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.8.1"
++ leak_tracker:
++ dependency: transitive
++ description:
++ name: leak_tracker
++ sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
++ url: "https://pub.dev"
++ source: hosted
++ version: "10.0.0"
++ leak_tracker_flutter_testing:
++ dependency: transitive
++ description:
++ name: leak_tracker_flutter_testing
++ sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.0.1"
++ leak_tracker_testing:
++ dependency: transitive
++ description:
++ name: leak_tracker_testing
++ sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
++ url: "https://pub.dev"
++ source: hosted
++ version: "2.0.1"
+ linkify:
+ dependency: transitive
+ description:
+@@ -449,26 +473,26 @@ packages:
+ dependency: transitive
+ description:
+ name: matcher
+- sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
++ sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
+ url: "https://pub.dev"
+ source: hosted
+- version: "0.12.16"
++ version: "0.12.16+1"
+ material_color_utilities:
+ dependency: transitive
+ description:
+ name: material_color_utilities
+- sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
++ sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
+ url: "https://pub.dev"
+ source: hosted
+- version: "0.5.0"
++ version: "0.8.0"
+ meta:
+ dependency: transitive
+ description:
+ name: meta
+- sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
++ sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
+ url: "https://pub.dev"
+ source: hosted
+- version: "1.10.0"
++ version: "1.11.0"
+ mime:
+ dependency: transitive
+ description:
+@@ -489,10 +513,10 @@ packages:
+ dependency: transitive
+ description:
+ name: path
+- sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
++ sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
+ url: "https://pub.dev"
+ source: hosted
+- version: "1.8.3"
++ version: "1.9.0"
+ path_provider:
+ dependency: "direct main"
+ description:
+@@ -770,6 +794,14 @@ packages:
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.4"
++ vm_service:
++ dependency: transitive
++ description:
++ name: vm_service
++ sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
++ url: "https://pub.dev"
++ source: hosted
++ version: "13.0.0"
+ web:
+ dependency: transitive
+ description:
+--
+2.43.1
+
diff --git a/testing/fwallet/no-werror.patch b/testing/fwallet/no-werror.patch
new file mode 100644
index 00000000000..ec8df348612
--- /dev/null
+++ b/testing/fwallet/no-werror.patch
@@ -0,0 +1,11 @@
+--- ./linux/CMakeLists.txt.orig
++++ ./linux/CMakeLists.txt
+@@ -41,7 +41,7 @@
+ # of modifying this function.
+ function(APPLY_STANDARD_SETTINGS TARGET)
+ target_compile_features(${TARGET} PUBLIC cxx_std_14)
+- target_compile_options(${TARGET} PRIVATE -Wall -Werror)
++ target_compile_options(${TARGET} PRIVATE -Wall)
+ target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
+ target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
+ endfunction()
diff --git a/testing/fwallet/system-flutter.patch b/testing/fwallet/system-flutter.patch
new file mode 100644
index 00000000000..e8f7270ec9a
--- /dev/null
+++ b/testing/fwallet/system-flutter.patch
@@ -0,0 +1,15 @@
+--- a/linux/CMakeLists.txt
++++ b/linux/CMakeLists.txt
+@@ -110,12 +110,6 @@
+ install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
+ COMPONENT Runtime)
+
+-install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
+- COMPONENT Runtime)
+-
+-install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
+- COMPONENT Runtime)
+-
+ foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
+ install(FILES "${bundled_library}"
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
diff --git a/testing/fzy/APKBUILD b/testing/fzy/APKBUILD
index 6734744be27..15b6ecbb40a 100644
--- a/testing/fzy/APKBUILD
+++ b/testing/fzy/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Eivind Uggedal <eu@eju.no>
pkgname=fzy
pkgver=1.0
-pkgrel=2
+pkgrel=3
pkgdesc="A better fuzzy finder"
url="https://github.com/jhawthorn/$pkgname"
arch="all"
license="MIT"
-checkdepends="ruby-minitest ruby-ttytest"
+checkdepends="ruby-minitest"
subpackages="$pkgname-doc"
source="https://github.com/jhawthorn/fzy/releases/download/$pkgver/$pkgname-$pkgver.tar.gz"
builddir="$srcdir/$pkgname-$pkgver"
@@ -18,9 +18,6 @@ build() {
check() {
make check
-
- cd test/acceptance
- ruby acceptance_test.rb
}
package() {
diff --git a/testing/g4music/APKBUILD b/testing/g4music/APKBUILD
new file mode 100644
index 00000000000..55cf8e4be01
--- /dev/null
+++ b/testing/g4music/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=g4music
+pkgver=3.5.2
+pkgrel=0
+pkgdesc="Fast fluent lightweight music player written in GTK4, with a beautiful and adaptive user interface"
+url="https://gitlab.gnome.org/neithern/g4music"
+arch="all"
+license="GPL-3.0-only"
+subpackages="$pkgname-lang"
+makedepends="
+ cmake
+ desktop-file-utils
+ gettext-dev
+ gst-plugins-base-dev
+ gstreamer-dev
+ libadwaita-dev
+ meson
+ vala
+ "
+source="https://gitlab.gnome.org/neithern/g4music/-/archive/v$pkgver/g4music-v$pkgver.tar.gz"
+builddir="$srcdir/g4music-v$pkgver"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+sha512sums="
+46f580672745a0374dd571f47396b3c7530d3ccb40afdbdf2640714a3151ad4e4152dd23274749f9cc2f3af6caf4315304530650a21bd67964d6833940c31a97 g4music-v3.5.2.tar.gz
+"
diff --git a/testing/galera/APKBUILD b/testing/galera/APKBUILD
deleted file mode 100644
index 10e585cfd2b..00000000000
--- a/testing/galera/APKBUILD
+++ /dev/null
@@ -1,66 +0,0 @@
-# Contributor: Jake Buchholz <tomalok@gmail.com>
-# Maintainer: Jake Buchholz <tomalok@gmail.com>
-pkgname=galera
-pkgver=26.4.3
-pkgrel=1
-_wsrepver=26
-pkgdesc="Galera replication - Codership's implementation of the write set replication (wsrep) interface"
-url="https://galeracluster.com"
-arch="x86 x86_64" # doesn't work for the others
-license="GPL-2.0-or-later"
-depends="mariadb"
-makedepends="bash boost-dev check-dev cmake python3 scons openssl-dev"
-subpackages="$pkgname-arbitrator $pkgname-arbitrator-doc:arbitrator_doc"
-source="
- https://github.com/codership/galera/archive/release_$pkgver.tar.gz
- https://github.com/codership/wsrep-API/archive/release_v$_wsrepver.tar.gz
- musl-page-size.patch
- musl-sched_param.patch
- musl-sys-poll-h.patch
- musl-wordsize.patch
-"
-builddir="$srcdir/$pkgname-release_$pkgver"
-
-prepare() {
- default_prepare
-
- ln -s /usr/bin/python3 python
- export PATH="$PATH:."
-}
-
-build() {
- rmdir wsrep/src
- cp -a ../wsrep-API-release_v$_wsrepver wsrep/src
- RUN_TESTS=0 ./scripts/build.sh
-}
-
-check() {
- RUN_TESTS=1 ./scripts/build.sh
-}
-
-package() {
- mkdir -p "$pkgdir/usr/lib"
- mv libgalera_smm.so "$pkgdir/usr/lib"
-}
-
-arbitrator() {
- url="https://galeracluster.com/library/documentation/arbitrator.html"
- depends=""
- mkdir -p "$subpkgdir/usr/sbin"
- mv "$builddir/garb/garbd" "$subpkgdir/usr/sbin"
-}
-
-arbitrator_doc() {
- url="https://galeracluster.com/library/documentation/arbitrator.html"
- depends=""
- mkdir -p "$subpkgdir/usr/share/man/man8"
- mv "$builddir/man/garbd.8" "$subpkgdir/usr/share/man/man8"
- gzip "$subpkgdir/usr/share/man/man8/garbd.8"
-}
-
-sha512sums="ede600d6b75d2557b220556d0af4fee64a87b3bc4391dc02209c2d461160fdc1ebe692311c94a69d421515253e219a70d3594a060c9b26561c2bfd5b18b61f17 release_26.4.3.tar.gz
-37ddc2c071ec22688ad6bce0cd44285aa00e2c07abce783d5ca6ba655e702feca8397e57c47e961f6ad4d2c14932fc38bac87b8995940b7b38fed655f6cd6671 release_v26.tar.gz
-196bae14790d6dad46617d107b5ddac6f01694468fb7a049736c6a21c9857b490863eec66be774eeb01300c0dbf4d9871a1b89da6847d92d67473b3aa80dbd3e musl-page-size.patch
-de08e34bf52cb39353a72a3608053d9204edcddd24f2f7babe2e5eb753d91bd0ca5909ee07a4d6c7ad54e37fba37ad2866403f1805401dcb68b9958514e17ac2 musl-sched_param.patch
-6248970137727c56a4c696bfd88eabaa9dc1dd55c287c4f04051f012470714ca53cb88918cd57027793e2705133237a2e7a608dd01ac36a2ae720448922dd4b4 musl-sys-poll-h.patch
-2baf88a6c16360ba1ac2ddf7a87a33f84b3039ca9819d84cfdd96b702da1a6050be1b4ac1f3fe6eff7f539158cdb6369906c4821545b1292d98899ec6e13b249 musl-wordsize.patch"
diff --git a/testing/galera/musl-page-size.patch b/testing/galera/musl-page-size.patch
deleted file mode 100644
index a0903e42780..00000000000
--- a/testing/galera/musl-page-size.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/galerautils/src/gu_alloc.cpp
-+++ b/galerautils/src/gu_alloc.cpp
-@@ -29,10 +29,11 @@
- if (gu_likely(size <= left_))
- {
- /* to avoid too frequent allocation, make it (at least) 64K */
-- static page_size_type const PAGE_SIZE(gu_page_size_multiple(1 << 16));
-+ /* was PAGE_SIZE but collided with a define */
-+ static page_size_type const PG_SZ(gu_page_size_multiple(1 << 16));
-
- page_size_type const page_size
-- (std::min(std::max(size, PAGE_SIZE), left_));
-+ (std::min(std::max(size, PG_SZ), left_));
-
- Page* ret = new HeapPage (page_size);
-
diff --git a/testing/galera/musl-sched_param.patch b/testing/galera/musl-sched_param.patch
deleted file mode 100644
index ef8640aa4ba..00000000000
--- a/testing/galera/musl-sched_param.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/galerautils/src/gu_thread.cpp
-+++ b/galerautils/src/gu_thread.cpp
-@@ -87,7 +87,8 @@
- #if defined(__sun__)
- struct sched_param spstr = { sp.prio(), { 0, } /* sched_pad array */};
- #else
-- struct sched_param spstr = { sp.prio() };
-+ /* musl has some reserved fields in sched_param... */
-+ struct sched_param spstr = { sp.prio(), 0, 0, 0, 0, 0, 0 };
- #endif
- int err;
- if ((err = pthread_setschedparam(thd, sp.policy(), &spstr)) != 0)
diff --git a/testing/galera/musl-sys-poll-h.patch b/testing/galera/musl-sys-poll-h.patch
deleted file mode 100644
index e3189c7ca2b..00000000000
--- a/testing/galera/musl-sys-poll-h.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/asio/asio/detail/socket_types.hpp
-+++ b/asio/asio/detail/socket_types.hpp
-@@ -58,7 +58,7 @@
- #else
- # include <sys/ioctl.h>
- # if !defined(__SYMBIAN32__)
--# include <sys/poll.h>
-+# include <poll.h> /* avoid "redirecting incorrect #include <sys/poll.h> to <poll.h>" warning */
- # endif
- # include <sys/types.h>
- # include <sys/stat.h>
diff --git a/testing/galera/musl-wordsize.patch b/testing/galera/musl-wordsize.patch
deleted file mode 100644
index 525f5329b5d..00000000000
--- a/testing/galera/musl-wordsize.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/galerautils/src/gu_arch.h
-+++ b/galerautils/src/gu_arch.h
-@@ -50,8 +50,9 @@
- #elif defined(__APPLE__) || defined(__FreeBSD__)
- # include <stdint.h>
- # define GU_WORDSIZE __WORDSIZE
--#else
--# include <bits/wordsize.h>
-+#else /* use this instead of bits/wordsize.h */
-+# include <stdint.h>
-+# include <bits/user.h>
- # define GU_WORDSIZE __WORDSIZE
- #endif
-
diff --git a/testing/gambit/APKBUILD b/testing/gambit/APKBUILD
new file mode 100644
index 00000000000..abb00d1f90b
--- /dev/null
+++ b/testing/gambit/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Bryce Vandegrift <bryce@brycevandegrift.xyz>
+# Maintainer: Bryce Vandegrift <bryce@brycevandegrift.xyz>
+pkgname=gambit
+pkgver=4.9.5
+pkgrel=0
+pkgdesc="Portable and efficient implementation of the Scheme language"
+url="https://gambitscheme.org/"
+arch="all"
+license="LGPL-2.1-only, Apache-2.0"
+makedepends="openssl-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gambit/gambit/archive/v$pkgver.tar.gz
+ tests.patch"
+
+build() {
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib/gambit \
+ --docdir=/usr/share/doc/gambit \
+ --includedir=/usr/include/gambit \
+ --disable-cplusplus \
+ --disable-absolute-shared-libs \
+ --enable-single-host \
+ --enable-gcc-opts \
+ --enable-openssl \
+ --enable-poll \
+ --enable-compiler-name=gambit-gsc
+ make
+ make doc
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d461fa5cce5d030b93165294a3d1dff12935745485e835cfda9164a794d12b1472506c4b4637b7ee7df0a9218f89a30ed6f44cd88557a7a9bf09b573f523c497 gambit-4.9.5.tar.gz
+53adf263417997e17ecda51299f6639c8b8812c3399243a61e81736c40d96b503c4cfaa2ee195e8066ac0297fd0d601ecd560b150e9af3813f5b3b8a1f9f6be3 tests.patch
+"
diff --git a/testing/gambit/tests.patch b/testing/gambit/tests.patch
new file mode 100644
index 00000000000..c74b293240b
--- /dev/null
+++ b/testing/gambit/tests.patch
@@ -0,0 +1,14 @@
+Some unit-tests expect an installed version of Gambit, redirect to the
+local source.
+
+--- a/tests/run-unit-tests.scm
++++ b/tests/run-unit-tests.scm
+@@ -184,7 +184,7 @@
+
+ (case target
+ ((C)
+- (run "../gsi/gsi" "-:debug-settings=-,io-settings=lu,~~=.." "-f" file))
++ (run "../gsi/gsi" "-:debug-settings=-,io-settings=lu,~~=..,~~lib=../lib" "-f" file))
+ (else
+ (let ((gsi (string-append "../gsi/gsi-" (symbol->string target))))
+ (run gsi "-f" file))))))
diff --git a/testing/game-devices-udev/APKBUILD b/testing/game-devices-udev/APKBUILD
new file mode 100644
index 00000000000..a20363d1df6
--- /dev/null
+++ b/testing/game-devices-udev/APKBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=game-devices-udev
+pkgver=0.22
+pkgrel=2
+pkgdesc="udev rules for a bunch of game controllers"
+url="https://codeberg.org/fabiscafe/game-devices-udev"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tgz::https://codeberg.org/fabiscafe/game-devices-udev/archive/$pkgver.tar.gz"
+builddir="$srcdir/game-devices-udev"
+options="!check" # just text files
+
+package() {
+ install -Dm644 ./*.rules -t "$pkgdir"/usr/lib/udev/rules.d/
+ install -Dm644 /dev/stdin "$pkgdir"/etc/modules-load.d/game-devices-udev.conf <<-EOF
+ # needed for a lot of controller inputs
+ uinput
+ EOF
+}
+
+sha512sums="
+8dde251f46613505a9cf5f96a6323224384311b5d06d2c41a9c3184a37039463fd5050d656510d2c69c634bbe901dd32f74aa60151833d2ff42aed3ea4d651c3 game-devices-udev-0.22.tgz
+"
diff --git a/testing/gamescope/APKBUILD b/testing/gamescope/APKBUILD
new file mode 100644
index 00000000000..ed9e7f98df5
--- /dev/null
+++ b/testing/gamescope/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: Alisa <corg@disroot.org>
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Alisa <corg@disroot.org>
+pkgname=gamescope
+pkgver=3.12.0
+pkgrel=1
+_openvr=1a0ea26642e517824b66871e6a12280a426cfec3
+_vkroots=26757103dde8133bab432d172b8841df6bb48155
+pkgdesc="SteamOS session compositing window manager"
+url="https://github.com/Plagman/gamescope"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ benchmark-dev
+ cmake
+ glm-dev
+ glslang-dev
+ hwdata-dev
+ libcap-dev
+ libdisplay-info-dev
+ libliftoff-dev
+ libx11-dev
+ libxcomposite-dev
+ libxmu-dev
+ libxrender-dev
+ libxres-dev
+ libxtst-dev
+ libxxf86vm-dev
+ meson
+ pipewire-dev
+ sdl2-dev
+ stb
+ vulkan-loader-dev
+ wayland-protocols
+ wlroots0.16-dev
+ xwayland-dev
+ "
+source="https://github.com/Plagman/gamescope/archive/refs/tags/$pkgver/gamescope-$pkgver.tar.gz
+ openvr-$_openvr.tar.gz::https://github.com/ValveSoftware/openvr/archive/$_openvr.tar.gz
+ vkroots-$_vkroots.tar.gz::https://github.com/Joshua-Ashton/vkroots/archive/$_vkroots.tar.gz
+ gcc13.patch
+ null.patch
+ system-wlroots-libliftoff.patch
+ "
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ rmdir subprojects/vkroots
+ ln -sfv "$srcdir"/vkroots-$_vkroots subprojects/vkroots
+ rmdir subprojects/openvr
+ ln -sfv "$srcdir"/openvr-$_openvr subprojects/openvr
+}
+
+build() {
+ CXXFLAGS="$CXXFLAGS -DRTLD_DEEPBIND=0" \
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install \
+ --no-rebuild \
+ --skip-subprojects \
+ -C output
+}
+
+sha512sums="
+864d61d9caf0bb8b13c71a084dd54a74e4d9104168cdc9ff8bc971e5a78a019fa80bf43c3b58b2e5ade6d461842385c37c3184ceede7e058d4d8d989a9e62bd9 gamescope-3.12.0.tar.gz
+17ce420ed384e16abadddfae4912beba861d34a258c1dee7f39ccd3a83e6e44cca504fb5e994962fc06d97e220ca9a22d952f5e47ac18ba58e8f2c3341c0cf40 openvr-1a0ea26642e517824b66871e6a12280a426cfec3.tar.gz
+606395000264647f0e74aeb4699b63e29de367b5c97b8d26c01b9373cc130ae0cf872ffaa56b826ed6e0b4170654df1af8f4272f8ed6f83fcc6f75750e8d3c2a vkroots-26757103dde8133bab432d172b8841df6bb48155.tar.gz
+83ba06fbf89d84d1e56a69c5feb474ab3d1f2b2ccf686d5bdd4c408065b7aaaf0a847979e8e5e8d815d02b5fc88ce4592f88af7f2b2eaf9668b9cdad0070f17d gcc13.patch
+e32763bec60c9b8927882f5b1866c684bc8f6d220c6c9cad5fdfc6926bcf97bd02d2d105c3d91ff56baf4680e65a8460894e09bb58d859ee8c98c19973f4c684 null.patch
+9fea6675d8c29d740c77d9ce6b69da4a1f54f39bf7a372fe538f154bb97f5cc21436033eeab1f2a154c5aee04410e5194b779c33104ab78b1a8a84ca5d798be2 system-wlroots-libliftoff.patch
+"
diff --git a/testing/gamescope/gcc13.patch b/testing/gamescope/gcc13.patch
new file mode 100644
index 00000000000..6b0b47c94c1
--- /dev/null
+++ b/testing/gamescope/gcc13.patch
@@ -0,0 +1,41 @@
+diff --git a/src/drm.hpp b/src/drm.hpp
+index 2f416c4..849ec96 100644
+--- a/src/drm.hpp
++++ b/src/drm.hpp
+@@ -40,12 +40,13 @@ extern "C" {
+
+ #include "rendervulkan.hpp"
+
++#include <string>
+ #include <unordered_map>
+ #include <utility>
+ #include <atomic>
+ #include <map>
+ #include <unordered_map>
+ #include <mutex>
+ #include <vector>
+
+ struct saved_mode {
+diff --git a/src/main.cpp b/src/main.cpp
+index 99a7a48..4cab9d1 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -2,6 +2,7 @@
+
+ #include <cstdio>
+ #include <thread>
++#include <string>
+ #include <mutex>
+ #include <vector>
+ #include <cstring>
+diff --git a/src/sdlwindow.cpp b/src/sdlwindow.cpp
+index ecf95ce..d886e15 100644
+--- a/src/sdlwindow.cpp
++++ b/src/sdlwindow.cpp
+@@ -1,5 +1,6 @@
+ // For the nested case, reads input from the SDL window and send to wayland
+
++#include <string>
+ #include <thread>
+ #include <mutex>
+
diff --git a/testing/gamescope/null.patch b/testing/gamescope/null.patch
new file mode 100644
index 00000000000..dfe0ef2e6d9
--- /dev/null
+++ b/testing/gamescope/null.patch
@@ -0,0 +1,47 @@
+From 29163332b12cdc1bccb09a3b29501df23c2817d7 Mon Sep 17 00:00:00 2001
+From: psykose <alice@ayaya.dev>
+Date: Wed, 26 Jul 2023 02:35:43 +0000
+Subject: [PATCH] fix null handle for nul surface
+
+not every platform uses nullptr, some use 0LL or ((void*)0) directly.
+
+closes #917
+---
+ src/main.cpp | 2 +-
+ src/rendervulkan.cpp | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/main.cpp b/src/main.cpp
+index 6f7ec3f..fb4ceeb 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -662,7 +662,7 @@ int main(int argc, char **argv)
+ }
+
+ VkInstance instance = vulkan_create_instance();
+- VkSurfaceKHR surface = nullptr;
++ VkSurfaceKHR surface = VK_NULL_HANDLE;
+
+ if ( !BIsNested() )
+ {
+diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp
+index 3f7861e..c508979 100644
+--- a/src/rendervulkan.cpp
++++ b/src/rendervulkan.cpp
+@@ -1751,11 +1751,11 @@ void CVulkanCmdBuffer::dispatch(uint32_t x, uint32_t y, uint32_t z)
+ shaperLutDescriptor[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+ // TODO(Josh): I hate the fact that srgbView = view *as* raw srgb and treat as linear.
+ // I need to change this, it's so utterly stupid and confusing.
+- shaperLutDescriptor[i].imageView = m_shaperLut[i] ? m_shaperLut[i]->srgbView() : nullptr;
++ shaperLutDescriptor[i].imageView = m_shaperLut[i] ? m_shaperLut[i]->srgbView() : VK_NULL_HANDLE;
+
+ lut3DDescriptor[i].sampler = m_device->sampler(nearestState);
+ lut3DDescriptor[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+- lut3DDescriptor[i].imageView = m_lut3D[i] ? m_lut3D[i]->srgbView() : nullptr;
++ lut3DDescriptor[i].imageView = m_lut3D[i] ? m_lut3D[i]->srgbView() : VK_NULL_HANDLE;
+ }
+
+ if (!m_target->isYcbcr())
+--
+2.41.0
+
diff --git a/testing/gamescope/system-wlroots-libliftoff.patch b/testing/gamescope/system-wlroots-libliftoff.patch
new file mode 100644
index 00000000000..4e7dc9e2c8a
--- /dev/null
+++ b/testing/gamescope/system-wlroots-libliftoff.patch
@@ -0,0 +1,10 @@
+--- a/meson.build
++++ b/meson.build
+@@ -6,7 +6,6 @@
+ default_options: [
+ 'cpp_std=c++14',
+ 'warning_level=2',
+- 'force_fallback_for=wlroots,libliftoff',
+ ],
+ )
+
diff --git a/testing/gamja/APKBUILD b/testing/gamja/APKBUILD
new file mode 100644
index 00000000000..3958f2da672
--- /dev/null
+++ b/testing/gamja/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=gamja
+pkgver=1.0.0_beta9
+_pkgver=v${pkgver/_beta/-beta.}
+pkgrel=0
+pkgdesc="Simple IRC web client"
+url="https://sr.ht/~emersion/gamja/"
+license="AGPL-3.0"
+arch="noarch"
+makedepends="npm"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~emersion/gamja/archive/$_pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$_pkgver"
+options="!check" # no test suite
+
+build() {
+ npm install --production
+}
+
+package() {
+ local webroot="$pkgdir"/usr/share/webapps/gamja
+
+ install -d "$webroot" "$pkgdir"/usr/share/doc/gamja
+ cp -r "$builddir"/* "$webroot"
+ mv "$webroot"/README.md "$pkgdir"/usr/share/doc/gamja
+
+ # default empty config
+ echo "{}" | install -Dm644 /dev/stdin "$pkgdir"/etc/gamja/config.json
+ ln -s /etc/gamja/config.json "$pkgdir"/usr/share/webapps/gamja/config.json
+}
+
+sha512sums="
+2759f727a89979321f31d61d5194c12dfdb5d67143532188b9995abac079a0d4ce7bb0e5b092ddf1d2271a3ae85470c6469e11b3a9804ac8cbce79aef75c9281 gamja-1.0.0_beta9.tar.gz
+"
diff --git a/testing/gammaray/APKBUILD b/testing/gammaray/APKBUILD
deleted file mode 100644
index 83baffb120e..00000000000
--- a/testing/gammaray/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Luca Weiss <luca@z3ntu.xyz>
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=gammaray
-pkgver=2.11.1
-pkgrel=0
-pkgdesc="A tool for examining the internals of a Qt application and to some extent also manipulate it"
-url="https://www.kdab.com/development-resources/qt-tools/gammaray/"
-arch="all !ppc64le !s390x !armhf !mips !mips64" # Limited by qt5-qtwebengine
-license="GPL-2.0-or-later"
-makedepends="cmake qt5-qtbase-dev qt5-qtwebengine-dev qt5-qtlocation-dev
- qt5-qtwayland-dev qt5-qttools-dev qt5-qtsvg-dev qt5-qtdeclarative-dev
- qt5-qtscript-dev qt5-qtconnectivity-dev syntax-highlighting-dev
- kcoreaddons-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/KDAB/GammaRay/releases/download/v$pkgver/gammaray-$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- gzip "$pkgdir"/usr/share/man/man1/gammaray.1
-}
-
-sha512sums="d75b7ffa09f89439a94765307415543f47d8ac59bcea0ef4ba7987d3b8449b597f6664044d6a8e705c4978787f9f42201f90f1dc8daae58e880b082c96e3a7f9 gammaray-2.11.1.tar.gz"
diff --git a/testing/gammastep/APKBUILD b/testing/gammastep/APKBUILD
new file mode 100644
index 00000000000..698ef3e8f20
--- /dev/null
+++ b/testing/gammastep/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Julian Weigt <juw@posteo.de>
+# Maintainer: Julian Weigt <juw@posteo.de>
+# taken from archlinux
+pkgname=gammastep
+pkgver=2.0.9
+pkgrel=3
+pkgdesc="Adjust the color temperature of your screen according to your surroundings"
+arch="all"
+url="https://gitlab.com/chinstrap/gammastep"
+license="GPL-3.0-only"
+makedepends="
+ autoconf
+ automake
+ geoclue-dev
+ gettext-dev
+ intltool
+ libtool
+ python3
+ wayland-dev
+ "
+subpackages="$pkgname-lang $pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/chinstrap/gammastep/-/archive/v$pkgver/gammastep-v$pkgver.tar.gz"
+
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make -k check
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+ install -vDm 644 CONTRIBUTING.md NEWS.md README.md -t "$pkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+6bd5e2ee21424af87eafff394c7dbe1db19052fbdac2cadd6fbc2af99839f35743125352655dc7b3beccdaec038b480f66125649b61252826c6cbd663444cda0 gammastep-2.0.9.tar.gz
+"
diff --git a/testing/gatling/APKBUILD b/testing/gatling/APKBUILD
index d70b8756a10..fdd0c4a1926 100644
--- a/testing/gatling/APKBUILD
+++ b/testing/gatling/APKBUILD
@@ -1,56 +1,53 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
+# Maintainer: Simon Rupf <simon@rupf.net>
pkgname=gatling
-pkgver=0.15
+pkgver=0.16
pkgrel=4
pkgdesc="High performance web server"
url="https://www.fefe.de/gatling/"
-arch="x86_64 x86 ppc64le"
-license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends="openssl-dev libowfat-dev zlib-dev"
+arch="all"
+license="GPL-2.0-only"
+makedepends="openssl-dev>3 libowfat-dev zlib-dev libcap-dev"
install="gatling.pre-install"
-subpackages="$pkgname-doc"
-source="https://www.fefe.de/$pkgname/$pkgname-$pkgver.tar.xz
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://www.fefe.de/gatling/gatling-$pkgver.tar.xz
build-fixes.patch
gatling.confd
- gatling.initd"
+ gatling.initd
+ "
-builddir="$srcdir/$pkgname-$pkgver"
build() {
- cd "$builddir"
CFLAGS="$CFLAGS -std=c99"
+ make havealloca.h
make prefix=/usr \
CFLAGS="$CFLAGS -I/usr/include/libowfat" \
LDFLAGS="$LDFLAGS" \
- gatling tlsgatling || return 1
+ gatling tlsgatling
}
package() {
- cd "$builddir"
install -Dm644 gatling.1 \
- "$pkgdir"/usr/share/doc/man/man1/gatling.1 \
- || return 1
+ "$pkgdir"/usr/share/man/man1/gatling.1
mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
install -m644 README.ftp README.http README.tls \
- "$pkgdir"/usr/share/doc/$pkgname/ \
- || return 1
+ "$pkgdir"/usr/share/doc/$pkgname/
mkdir -p "$pkgdir"/usr/bin/
install -m755 gatling tlsgatling \
- "$pkgdir"/usr/bin/ || return 1
+ "$pkgdir"/usr/bin/
install -Dm755 "$srcdir"/gatling.initd \
- "$pkgdir"/etc/init.d/gatling || return 1
+ "$pkgdir"/etc/init.d/gatling
install -Dm644 "$srcdir"/gatling.confd \
- "$pkgdir"/etc/conf.d/gatling || return 1
+ "$pkgdir"/etc/conf.d/gatling
}
-sha512sums="b76d220a0644f1e6e7ea966a4eff409964c564fc4a31c4efdb764e5f7b5857bc58c26bc31e860fe35df932cbd60fb2b0f4f21c75cb5aa56427e8a2a453684716 gatling-0.15.tar.xz
-888e3a3698a168313199d7d4ecbd48aae20de9d84e324322fdf1a7ebfab4d14af5f0d8ddf1b4475830d0e213ddac71f7db4efe50de0da8a0a2c8e95ed1ce9803 build-fixes.patch
+sha512sums="
+9446ea0ae862509b1a892e5bdef14d3a2320c3c3e846362b4679c0834aa906ab5b16ef54e4a7c8e7ee839d30317436dd411e891e3105035a9ee31b0facc0b8c1 gatling-0.16.tar.xz
+02a5be068853de439ccae96d810aa318f96abeeb7cb9291d6ab5a2a83d60f3a0c47d14226b92d996c4ff74e982e8ab2ee4ca83b6728ca0a18aff06bbebdf04a9 build-fixes.patch
b51e5145fa5f67dd933f8b7c06d633545152b253c51891ef4519b83707b0001034506a7a8807a37d104dcab47320a5233093d9d89211b36753ac316e447b54a9 gatling.confd
-456ee7f2c62b682376f301b1727e32e68a53fe5b50bd9d9b1e00225e6d0e6bc62fa328b503ca2ebf899ff4c6ca68d9998785ee83749d4590c3c0196a5aadb133 gatling.initd"
+456ee7f2c62b682376f301b1727e32e68a53fe5b50bd9d9b1e00225e6d0e6bc62fa328b503ca2ebf899ff4c6ca68d9998785ee83749d4590c3c0196a5aadb133 gatling.initd
+"
diff --git a/testing/gatling/build-fixes.patch b/testing/gatling/build-fixes.patch
index 2d33ea0f504..64743d99f65 100644
--- a/testing/gatling/build-fixes.patch
+++ b/testing/gatling/build-fixes.patch
@@ -1,11 +1,12 @@
-diff -upr gatling-0.15.orig/ssl.c gatling-0.15/ssl.c
---- gatling-0.15.orig/ssl.c 2016-10-25 20:38:51.818531071 +0200
-+++ gatling-0.15/ssl.c 2016-10-25 20:39:10.235187184 +0200
-@@ -9,6 +9,7 @@
- #include <openssl/ssl.h>
- #include <openssl/engine.h>
+diff --git a/ssl.c b/ssl.c
+index 0d19539..ee5f300 100644
+--- a/ssl.c
++++ b/ssl.c
+@@ -11,6 +11,7 @@
#include <ctype.h>
+ #include <sys/time.h>
+ #include <sys/stat.h>
+#include <alloca.h>
+ #include "dirfd.h"
static int library_inited;
-
diff --git a/testing/gaupol/APKBUILD b/testing/gaupol/APKBUILD
new file mode 100644
index 00000000000..e259f06ee77
--- /dev/null
+++ b/testing/gaupol/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=gaupol
+pkgver=1.12
+pkgrel=2
+pkgdesc="Editor for text-based subtitles"
+url="https://otsaloma.io/gaupol/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ desktop-file-utils
+ gspell
+ gst-libav
+ gst-plugins-bad
+ gst-plugins-good
+ gst-plugins-ugly
+ gstreamer
+ gtk+3.0
+ hicolor-icon-theme
+ iso-codes
+ py3-cairo
+ py3-chardet
+ py3-gobject3
+ python3
+ "
+makedepends="gettext-dev py3-setuptools py3-wheel py3-gpep517"
+subpackages="$pkgname-doc $pkgname-lang $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/otsaloma/gaupol/archive/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+7e8002ceeff0a6c1144a6c23743aff006101a63aee394c4a4eb2742ad37635fe45425964d60ab2d6f10f9e212c72db673f5f1d849f738efcd7d9389054a1de36 gaupol-1.12.tar.gz
+"
diff --git a/testing/gb/APKBUILD b/testing/gb/APKBUILD
index 18225b4bf7d..053f8e684a0 100644
--- a/testing/gb/APKBUILD
+++ b/testing/gb/APKBUILD
@@ -1,9 +1,9 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=gb
pkgver=0.4.4
_errors_ver=0.8.0
-pkgrel=3
+pkgrel=23
pkgdesc="Project based build tool for Go"
options="!check"
url="https://github.com/constabulary/gb"
@@ -16,6 +16,10 @@ source="gb-$pkgver.tar.gz::https://github.com/constabulary/gb/archive/v$pkgver.t
"
builddir="$srcdir/src/github.com/constabulary/$pkgname"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
prepare() {
mkdir -p ${builddir%/*}
mv "$srcdir"/$pkgname-$pkgver "$builddir"/
@@ -26,6 +30,8 @@ prepare() {
build() {
export GOPATH="$srcdir"
+ export GO111MODULE=off
+
for bin in gb gb-vendor; do
cd "$builddir"/cmd/$bin && go build -v
done
diff --git a/testing/gcc-cross-embedded-stage1/APKBUILD b/testing/gcc-cross-embedded-stage1/APKBUILD
deleted file mode 100644
index e16f75422f1..00000000000
--- a/testing/gcc-cross-embedded-stage1/APKBUILD
+++ /dev/null
@@ -1,144 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Based upon Alpine's avr-gcc and Arch Linux's arm-none-eabi-gcc, to which
-# the following people contributed:
-# Contributor: Pedro Filipe <xpecex@outlook.com>
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Contributor: Anatol Pomozov <anatol.pomozov@gmail.com>
-# Contributor: Martin Schmölzer <mschmoelzer@gmail.com>
-_pkgbase=gcc
-_targets="
- arm-none-eabi
- mips-mti-elf
- msp430-elf
- "
-pkgname="$_pkgbase-cross-embedded-stage1"
-pkgver=9.2.0
-pkgrel=0
-pkgdesc="The GNU Compiler Collection for embedded targets"
-url="http://gcc.gnu.org"
-depends="gcc"
-makedepends="bash linux-headers gmp-dev mpfr-dev mpc1-dev zlib-dev"
-arch="all"
-license="GPL-3.0+"
-for target in $_targets; do
- targetnorm="${target//-/_}"
- subpackages="$_pkgbase-$target-stage1:$targetnorm $subpackages"
- makedepends="$makedepends binutils-$target"
-done
-
-_islver=0.20
-source="
- https://mirrors.kernel.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz
- http://isl.gforge.inria.fr/isl-$_islver.tar.bz2
- "
-options="!check"
-
-builddir="$srcdir/$_pkgbase-$pkgver"
-
-prepare() {
- # link isl for in-tree build
- ln -s "$srcdir"/isl-"$_islver" isl
-
- # hack! - some configure tests for header files using "$CPP $CPPFLAGS"
- for dir in libiberty gcc; do
- sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" $dir/configure
- done
-}
-
-_build_gcc() {
- "$builddir"/configure \
- --target=$target \
- --prefix=/usr \
- --with-sysroot=/usr/$target \
- --with-native-system-header-dir=/include \
- --with-headers=/usr/$target/include \
- --with-python-dir=share/gcc-$target \
- --libexecdir=/usr/lib \
- --infodir=/deleteme/info \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --mandir=/deleteme/man \
- --enable-languages=c \
- --enable-plugins \
- --enable-gnu-indirect-function \
- --disable-decimal-float \
- --disable-libffi \
- --disable-libgomp \
- --disable-libmudflap \
- --disable-libquadmath \
- --disable-libssp \
- --disable-libstdcxx-pch \
- --disable-multilib \
- --disable-nls \
- --disable-shared \
- --disable-threads \
- --disable-tls \
- --disable-werror \
- --with-gmp \
- --with-gnu-as \
- --with-gnu-ld \
- --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' \
- --with-isl \
- --with-libelf \
- --with-mpc \
- --with-mpfr \
- --with-newlib \
- --with-system-zlib \
- --with-pkgversion='Alpine Linux' \
- --without-headers
- make INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0' -j8
-}
-
-build() {
- for target in $_targets; do
- workingdir="$srcdir/build-$target"
- mkdir "$workingdir"
- cd "$workingdir"
- export CFLAGS_FOR_TARGET='-pipe -Os -ffunction-sections -fdata-sections'
- export CXXFLAGS_FOR_TARGET='-pipe -Os -ffunction-sections -fdata-sections'
- _build_gcc
- done
-}
-
-package() {
- for target in $_targets; do
- depends="$depends $_pkgbase-$target"
- done
- mkdir -p "$pkgdir"
-}
-
-_install_subpkg() {
- target="${subpkgname#$_pkgbase-}"
- target="${target%-stage1}"
- pkgdesc="The GNU Compiler Collection for $target targets"
- depends="$depends binutils-$target"
- workingdir="$srcdir/build-$target"
- cd "$workingdir"
- make install DESTDIR="$subpkgdir" -j1
-
- # Delete documentation. (The user can use the host GCC doc instead)
- rm -rf "$subpkgdir"/deleteme
- # Delete libcc1.so*, which is already part of the host's gcc
- rm -f "$subpkgdir"/usr/lib/libcc1.so*
-
- # Strip libs using target binutils
- find "$subpkgdir"/usr/lib -type f -name "*.a" -exec /usr/bin/$target-strip --strip-debug '{}' \;
-
- # Strip executables using host binutils
- find "$subpkgdir"/usr/bin -type f -executable -exec strip '{}' \;
-}
-
-arm_none_eabi() {
- _install_subpkg
-}
-
-mips_mti_elf() {
- _install_subpkg
-}
-
-msp430_elf() {
- _install_subpkg
-}
-
-sha512sums="a12dff52af876aee0fd89a8d09cdc455f35ec46845e154023202392adc164848faf8ee881b59b681b696e27c69fd143a214014db4214db62f9891a1c8365c040 gcc-9.2.0.tar.xz
-afe2e159b74646a26449268637403d271f9e3f6410d8cc1c9cffca41370c4357b165dea844db0c2a654591f954e54710dda650c8088abd4711406aa6302da950 isl-0.20.tar.bz2"
diff --git a/testing/gcc-cross-embedded/APKBUILD b/testing/gcc-cross-embedded/APKBUILD
deleted file mode 100644
index 81072ebff0a..00000000000
--- a/testing/gcc-cross-embedded/APKBUILD
+++ /dev/null
@@ -1,166 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Based upon Alpine's avr-gcc and Arch Linux's arm-none-eabi-gcc, to which
-# the following people contributed:
-# Contributor: Pedro Filipe <xpecex@outlook.com>
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Contributor: Anatol Pomozov <anatol.pomozov@gmail.com>
-# Contributor: Martin Schmölzer <mschmoelzer@gmail.com>
-_pkgbase=gcc
-_targets="
- arm-none-eabi
- mips-mti-elf
- msp430-elf
- "
-pkgname="$_pkgbase-cross-embedded"
-pkgver=9.2.0
-pkgrel=0
-pkgdesc="The GNU Compiler Collection for embedded targets"
-url="http://gcc.gnu.org"
-depends="gcc"
-makedepends="bash linux-headers gmp-dev mpfr-dev mpc1-dev zlib-dev"
-arch="all !s390x !mips !mips64" # fails on s390x and mips with error message:
-# 'internal compiler error: Segmentation fault'
-license="GPL-3.0-or-later"
-for target in $_targets; do
- targetnorm="${target//-/_}"
- subpackages="$_pkgbase-$target:$targetnorm $subpackages"
- makedepends="$makedepends binutils-$target newlib-$target-stage1"
-done
-
-_islver=0.20
-source="https://mirrors.kernel.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz
- http://isl.gforge.inria.fr/isl-$_islver.tar.bz2"
-
-options="!check"
-
-builddir="$srcdir/$_pkgbase-$pkgver"
-
-prepare() {
- # link isl for in-tree build
- ln -s "$srcdir"/isl-"$_islver" isl
-
- # hack! - some configure tests for header files using "$CPP $CPPFLAGS"
- for dir in libiberty gcc; do
- sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" $dir/configure
- done
-}
-
-_build_gcc() {
- "$builddir"/configure \
- --target=$target \
- --prefix=/usr \
- --with-sysroot=/usr/$target \
- --with-native-system-header-dir=/include \
- --with-headers=/usr/$target/include \
- --with-python-dir=share/gcc-$target \
- --libexecdir=/usr/lib \
- --infodir=/deleteme/info \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --mandir=/deleteme/man \
- --enable-languages=c,c++ \
- --enable-plugins \
- --enable-gnu-indirect-function \
- --disable-decimal-float \
- --disable-libffi \
- --disable-libgomp \
- --disable-libmudflap \
- --disable-libquadmath \
- --disable-libssp \
- --disable-libstdcxx-pch \
- --disable-nls \
- --disable-shared \
- --disable-threads \
- --disable-tls \
- --disable-werror \
- --with-gmp \
- --with-gnu-as \
- --with-gnu-ld \
- --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' \
- --with-isl \
- --with-libelf \
- --with-mpc \
- --with-mpfr \
- --with-multilib-list=rmprofile \
- --with-newlib \
- --with-system-zlib \
- --with-pkgversion='Alpine Linux'
- make INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0'
-}
-
-build() {
- for target in $_targets; do
- # Build "regular" variant
- workingdir="$srcdir/build-$target"
- mkdir "$workingdir"
- cd "$workingdir"
- export CFLAGS_FOR_TARGET='-pipe -Os -ffunction-sections -fdata-sections'
- export CXXFLAGS_FOR_TARGET='-pipe -Os -ffunction-sections -fdata-sections'
- _build_gcc
-
- # Rebuild without exceptions to generate nano variant of libstc++
- workingdir="$srcdir/build-$target-nano"
- mkdir "$workingdir"
- cd "$workingdir"
- export CFLAGS_FOR_TARGET='-pipe -Os -ffunction-sections -fdata-sections -fno-exceptions'
- export CXXFLAGS_FOR_TARGET='-pipe -Os -ffunction-sections -fdata-sections -fno-exceptions'
- _build_gcc
- done
-}
-
-package() {
- for target in $_targets; do
- depends="$depends $_pkgbase-$target"
- done
- mkdir -p "$pkgdir"
-}
-
-_install_subpkg() {
- target="${subpkgname#$_pkgbase-}"
- pkgdesc="The GNU Compiler Collection for $target targets"
- depends="$depends binutils-$target"
- workingdir="$srcdir/build-$target"
- cd "$workingdir"
- make install DESTDIR="$subpkgdir" -j1
-
- # install nano-variant into temporary folder to obtain libstdc++ from there
- workingdir="$srcdir/build-$target-nano"
- cd "$workingdir"
- make install DESTDIR="$subpkgdir-nano" -j1
-
- # Fetch libstdc++ from nano variant
- multilibs=$($subpkgdir/usr/bin/$target-gcc -print-multi-lib 2>/dev/null)
- for multilib in $multilibs; do
- dir="${multilib%%;*}"
- from_dir=$subpkgdir-nano/usr/$target/lib/$dir
- to_dir=$subpkgdir/usr/$target/lib/$dir
- cp -f $from_dir/libstdc++.a $to_dir/libstdc++_nano.a
- cp -f $from_dir/libsupc++.a $to_dir/libsupc++_nano.a
- done
-
- # Delete documentation. (The user can use the host GCC doc instead)
- rm -rf "$subpkgdir"/deleteme
- # Delete libcc1.so*, which is already part of the host's gcc
- rm -f "$subpkgdir"/usr/lib/libcc1.so*
-
- # Strip libs using target binutils
- find "$subpkgdir"/usr/lib -type f -name "*.a" -exec /usr/bin/$target-strip --strip-debug '{}' \;
-
- # Strip executables using host binutils
- find "$subpkgdir"/usr/bin -type f -executable -exec strip '{}' \;
-}
-
-arm_none_eabi() {
- _install_subpkg
-}
-
-mips_mti_elf() {
- _install_subpkg
-}
-
-msp430_elf() {
- _install_subpkg
-}
-
-sha512sums="a12dff52af876aee0fd89a8d09cdc455f35ec46845e154023202392adc164848faf8ee881b59b681b696e27c69fd143a214014db4214db62f9891a1c8365c040 gcc-9.2.0.tar.xz
-afe2e159b74646a26449268637403d271f9e3f6410d8cc1c9cffca41370c4357b165dea844db0c2a654591f954e54710dda650c8088abd4711406aa6302da950 isl-0.20.tar.bz2"
diff --git a/testing/gcompris-qt/APKBUILD b/testing/gcompris-qt/APKBUILD
deleted file mode 100644
index f16e6608268..00000000000
--- a/testing/gcompris-qt/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Thomas Kienlen <kommander@laposte.net>
-# Maintainer: Thomas Kienlen <kommander@laposte.net>
-pkgname=gcompris-qt
-pkgver=0.98
-pkgrel=0
-pkgdesc="Educational software suite comprising of numerous activities for children aged 2 to 10"
-url="https://gcompris.net"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative
-license="GPL-3.0-or-later"
-makedepends="cmake extra-cmake-modules qt5-qttools qt5-qttools-dev kdoctools
- qt5-qtdeclarative-dev qt5-qtmultimedia-dev qt5-qtsvg-dev qt5-qtsensors-dev
- qt5-qtquickcontrols2-dev qt5-qtxmlpatterns-dev"
-depends="qt5-qtquickcontrols2"
-source="$pkgname-$pkgver.tar.xz::https://gcompris.net/download/qt/src/gcompris-qt-$pkgver.tar.xz"
-options="!check" # No test suite
-
-build() {
- cmake -B build \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DQML_BOX2D_LIBRARY=/usr/lib/qt/qml/Box2D.2.0 \
- .
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-sha512sums="f447a9fe6a8699eca55dd7c98a9781a1f4982a1263664fb4b010d1f66819d2f083b1b167ca406edcb54fb10331e6cbad809499a9490a7fef93e010b022dd0e6c gcompris-qt-0.98.tar.xz"
diff --git a/testing/gdb-esp/APKBUILD b/testing/gdb-esp/APKBUILD
new file mode 100644
index 00000000000..68e10a852eb
--- /dev/null
+++ b/testing/gdb-esp/APKBUILD
@@ -0,0 +1,134 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+_pkgbase=gdb
+_targets="
+ xtensa-esp8266-elf
+ xtensa-esp32-elf
+ xtensa-esp32s2-elf
+ xtensa-esp32s3-elf
+ "
+pkgname="$_pkgbase-esp"
+pkgver=13.2
+_xtensa_overlay_ver=2021r2-patch4
+pkgrel=2
+pkgdesc="The GNU Debugger for embedded targets patched for ESP support"
+# NOTE: gdb-multiarch replaces all the different cross-platform GDB versions
+# and supports architectures ranging from 8 bit microcontrollers
+# all the way up to super scalar multicore 64 bit server CPUs. The
+# list of supported architectures is long and even includes Xtensa.
+# However, the magic ESP MCUs are so illustrious and special, that
+# they are not to be spoken to by the common tools of mere mortals. In
+# fact, every ESP product list is so special that it needs its own magic
+# GDB version sprinkled with its own special stardust-unicorn-Espressif
+# patches to be barely worthy enough to interact with the blessed ESP
+# MCUs.
+#
+# tl;dr: Please don't use this as a role model, gdb-multiarch should normally
+# be all you need. This is only needed due to crappy upstreaming
+# policy of a shitty company.
+url="https://www.sourceware.org/gdb/"
+# riscv64: ld: BFD (GNU Binutils) 2.39 assertion fail elfnn-riscv.c:4816 segfault
+arch="all !riscv64"
+license="GPL-2.0-only GPL-2.0-or-later GPL-3.0-only GPL-3.0-or-later LGPL-2.1-only"
+depends="gdb"
+makedepends="
+ autoconf
+ automake
+ expat-dev
+ gmp-dev
+ libtool
+ linux-headers
+ ncurses-dev
+ perl
+ python3-dev
+ readline-dev
+ texinfo
+ zlib-dev
+ "
+source="
+ https://ftp.gnu.org/gnu/$_pkgbase/$_pkgbase-$pkgver.tar.xz
+ xtensa-overlay-$_xtensa_overlay_ver.tar.gz::https://github.com/espressif/xtensa-overlays/archive/refs/tags/esp-$_xtensa_overlay_ver.tar.gz
+ "
+for target in $_targets; do
+ targetnorm="${target//-/_}"
+ subpackages="$_pkgbase-$target:$targetnorm $subpackages"
+done
+
+options="!check"
+builddir="$srcdir"/$_pkgbase-$pkgver
+
+build() {
+ for target in $_targets; do
+ mkdir -p "$srcdir/build/$target"
+ cd "$srcdir/build/$target"
+
+ # copy ESP specific xtensa settings from overlay
+ dir="${target%%-elf}"
+ dir="${dir//-/_}"
+ dir="$srcdir/xtensa-overlays-esp-$_xtensa_overlay_ver/$dir/gdb"
+ cp -r "$dir"/* "$builddir"/
+ # add some glue for compatibility with recent GDB
+ echo "xtensa_gdbarch_tdep xtensa_tdep (rmap);" \
+ >> "$builddir"/gdb/xtensa-config.c
+
+ "$builddir/configure" \
+ --target=$target \
+ --prefix=/usr \
+ --mandir=/deleteme/man \
+ --infodir=/deleteme/info \
+ --pdfdir=/deleteme/pdf \
+ --htmldir=/deleteme/html \
+ --disable-nls \
+ --disable-werror \
+ --enable-interwork \
+ --enable-languages=c,c++ \
+ --enable-multilib \
+ --with-python=/usr/bin/python3 \
+ --with-system-gdbinit=/etc/gdb/gdbinit \
+ --with-system-readline \
+ --with-system-zlib
+ make
+ done
+}
+
+package() {
+ for target in $_targets; do
+ depends="$depends $_pkgbase-$target"
+ done
+ mkdir -p "$pkgdir"
+}
+
+_install_subpkg() {
+ target="${subpkgname#$_pkgbase-}"
+ pkgdesc="The GNU Debugger for $target"
+ cd "$srcdir/build/$target"
+ make DESTDIR="$subpkgdir" install
+
+ rm -rf "$subpkgdir"/deleteme
+
+ # those are provided by gdb
+ rm -rf "${subpkgdir:?}"/usr/share
+ # those are provided by binutils
+ rm -rf "${subpkgdir:?}"/usr/include
+ rm -rf "${subpkgdir:?}"/usr/lib
+}
+
+xtensa_esp8266_elf() {
+ _install_subpkg
+}
+
+xtensa_esp32_elf() {
+ _install_subpkg
+}
+
+xtensa_esp32s2_elf() {
+ _install_subpkg
+}
+
+xtensa_esp32s3_elf() {
+ _install_subpkg
+}
+
+sha512sums="
+8185d3e11ab60dafff5860a5016577bfe7dd7547ef01ebc867bc247603d82b74ff74c4f29492c7d2aee57076f52be33e289f4c6b414a4b870d4b3004909f4c34 gdb-13.2.tar.xz
+7b872a53b31ad2c02fd2b04e39b8d1c63924437f35433e2495a9dbe341a118b8754fbe087986c335a8b1c588519ad637fa73b7270a28a692ad350d58fe7bac10 xtensa-overlay-2021r2-patch4.tar.gz
+"
diff --git a/testing/gdcm/10-docbook4.patch b/testing/gdcm/10-docbook4.patch
new file mode 100644
index 00000000000..eeb8f317251
--- /dev/null
+++ b/testing/gdcm/10-docbook4.patch
@@ -0,0 +1,175 @@
+--- a/Utilities/doxygen/CMakeLists.txt
++++ b/Utilities/doxygen/CMakeLists.txt
+@@ -268,8 +268,8 @@
+
+ set(DOCBOOK_REWRITE_PREFIX_FOUND FALSE)
+ foreach(line ${xml_catalog})
+- string(REGEX MATCH "^.*systemIdStartString=\"http://docbook.sourceforge.net/release/xsl-ns/\".*" out1 ${line})
+- string(REGEX REPLACE "^.*systemIdStartString=\"http://docbook.sourceforge.net/release/xsl-ns/\".*\"([A-Za-z ]*)\".*" "\\1" output_variable ${line})
++ string(REGEX MATCH "^.*systemIdStartString=\"http://docbook.sourceforge.net/release/xsl/current\".*" out1 ${line})
++ string(REGEX REPLACE "^.*systemIdStartString=\"http://docbook.sourceforge.net/release/xsl/current\".*\"([A-Za-z ]*)\".*" "\\1" output_variable ${line})
+ if(out1)
+ message(STATUS "Your docbook install was found here :${output_variable}")
+ set(DOCBOOK_REWRITE_PREFIX_FOUND TRUE)
+--- a/Utilities/doxygen/man/gdcm2pnm.xml
++++ b/Utilities/doxygen/man/gdcm2pnm.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcm2vtk.xml
++++ b/Utilities/doxygen/man/gdcm2vtk.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmanon.xml
++++ b/Utilities/doxygen/man/gdcmanon.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmclean.xml
++++ b/Utilities/doxygen/man/gdcmclean.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmconv.xml
++++ b/Utilities/doxygen/man/gdcmconv.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmdiff.xml
++++ b/Utilities/doxygen/man/gdcmdiff.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmdump.xml
++++ b/Utilities/doxygen/man/gdcmdump.xml
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="utf-8"?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmgendir.xml
++++ b/Utilities/doxygen/man/gdcmgendir.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmimg.xml
++++ b/Utilities/doxygen/man/gdcmimg.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcminfo.xml
++++ b/Utilities/doxygen/man/gdcminfo.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmpap3.xml
++++ b/Utilities/doxygen/man/gdcmpap3.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmpdf.xml
++++ b/Utilities/doxygen/man/gdcmpdf.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmraw.xml
++++ b/Utilities/doxygen/man/gdcmraw.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmscanner.xml
++++ b/Utilities/doxygen/man/gdcmscanner.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmscu.xml
++++ b/Utilities/doxygen/man/gdcmscu.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmtar.xml
++++ b/Utilities/doxygen/man/gdcmtar.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmviewer.xml
++++ b/Utilities/doxygen/man/gdcmviewer.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
+--- a/Utilities/doxygen/man/gdcmxml.xml
++++ b/Utilities/doxygen/man/gdcmxml.xml
+@@ -1,5 +1,5 @@
+ <?xml version='1.0' encoding='UTF-8' standalone='no'?>
+-<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" ?>
++<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" ?>
+ <!DOCTYPE Data [ <!ENTITY version SYSTEM 'version.txt'> ]>
+ <refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <info>
diff --git a/testing/gdcm/30-off_t.patch b/testing/gdcm/30-off_t.patch
new file mode 100644
index 00000000000..2bcea169515
--- /dev/null
+++ b/testing/gdcm/30-off_t.patch
@@ -0,0 +1,211 @@
+--- a/Source/MediaStorageAndFileFormat/gdcmFileStreamer.cxx
++++ b/Source/MediaStorageAndFileFormat/gdcmFileStreamer.cxx
+@@ -49,7 +49,7 @@
+ // http://stackoverflow.com/questions/17863594/size-of-off-t-at-compilation-time
+ // Basically enforce use of off64_t over off_t since on windows off_t is pretty
+ // much guarantee to be 32bits only.
+-static inline int FSeeko(FILE *stream, off64_t offset, int whence)
++static inline int FSeeko(FILE *stream, off_t offset, int whence)
+ {
+ #if _WIN32
+ #if defined(__MINGW32__)
+@@ -62,7 +62,7 @@
+ #endif
+ }
+
+-static inline off64_t FTello(FILE *stream)
++static inline off_t FTello(FILE *stream)
+ {
+ #if _WIN32
+ #if defined(__MINGW32__)
+@@ -75,7 +75,7 @@
+ #endif
+ }
+
+-static inline bool FTruncate( const int fd, const off64_t len )
++static inline bool FTruncate( const int fd, const off_t len )
+ {
+ #if _WIN32
+ #if defined(__MINGW32__)
+@@ -93,7 +93,7 @@
+ #endif
+ }
+
+-static bool prepare_file( FILE * pFile, const off64_t offset, const off64_t inslen )
++static bool prepare_file( FILE * pFile, const off_t offset, const off_t inslen )
+ {
+ // fast path
+ if( inslen == 0 ) return true;
+@@ -108,13 +108,13 @@
+ {
+ if( inslen < 0 )
+ {
+- off64_t bytes_to_move = sb.st_size - offset;
+- off64_t read_start_offset = offset;
++ off_t bytes_to_move = sb.st_size - offset;
++ off_t read_start_offset = offset;
+ while (bytes_to_move != 0)
+ {
+- const size_t bytes_this_time = static_cast<size_t>(std::min((off64_t)BUFFERSIZE, bytes_to_move));
+- const off64_t rd_off = read_start_offset;
+- const off64_t wr_off = rd_off + inslen;
++ const size_t bytes_this_time = static_cast<size_t>(std::min((off_t)BUFFERSIZE, bytes_to_move));
++ const off_t rd_off = read_start_offset;
++ const off_t wr_off = rd_off + inslen;
+ if( FSeeko(pFile, rd_off, SEEK_SET) )
+ {
+ return false;
+@@ -148,14 +148,14 @@
+ #endif
+ if (sb.st_size > offset)
+ {
+- off64_t bytes_to_move = sb.st_size - offset;
+- off64_t read_end_offset = sb.st_size;
++ off_t bytes_to_move = sb.st_size - offset;
++ off_t read_end_offset = sb.st_size;
+ while (bytes_to_move != 0)
+ {
+- const size_t bytes_this_time = static_cast<size_t>(std::min((off64_t)BUFFERSIZE, bytes_to_move));
+- const off64_t rd_off = read_end_offset - bytes_this_time;
+- assert( (off64_t)rd_off >= offset );
+- const off64_t wr_off = rd_off + inslen;
++ const size_t bytes_this_time = static_cast<size_t>(std::min((off_t)BUFFERSIZE, bytes_to_move));
++ const off_t rd_off = read_end_offset - bytes_this_time;
++ assert( (off_t)rd_off >= offset );
++ const off_t wr_off = rd_off + inslen;
+ if( FSeeko(pFile, rd_off, SEEK_SET) )
+ {
+ return false;
+@@ -326,15 +326,15 @@
+ size_t dicomlen = 4 + 4; // Tag + VL for Implicit
+ if( TS.GetNegociatedType() == TransferSyntax::Explicit )
+ dicomlen += 4;
+- off64_t newlen = len;
++ off_t newlen = len;
+ assert( (size_t)newlen == len );
+ newlen += dicomlen;
+ newlen -= actualde;
+- off64_t plength = newlen;
++ off_t plength = newlen;
+ assert( ReservedDataLength >= 0 );
+ if( ReservedDataLength )
+ {
+- if( (newlen + ReservedDataLength) >= (off64_t)len )
++ if( (newlen + ReservedDataLength) >= (off_t)len )
+ {
+ plength = newlen + ReservedDataLength - len;
+ }
+@@ -345,8 +345,8 @@
+ ReservedDataLength -= len;
+ assert( ReservedDataLength >= 0 );
+ }
+- //if( !prepare_file( pFile, (off64_t)thepos + actualde, newlen ) )
+- if( !prepare_file( pFile, (off64_t)thepos + actualde, plength ) )
++ //if( !prepare_file( pFile, (off_t)thepos + actualde, newlen ) )
++ if( !prepare_file( pFile, (off_t)thepos + actualde, plength ) )
+ {
+ return false;
+ }
+@@ -360,18 +360,18 @@
+ else
+ {
+ assert( pFile );
+- const off64_t curpos = FTello(pFile);
++ const off_t curpos = FTello(pFile);
+ assert( curpos == thepos );
+- if( ReservedDataLength >= (off64_t)len )
++ if( ReservedDataLength >= (off_t)len )
+ {
+ // simply update remaining reserved buffer:
+ ReservedDataLength -= len;
+ }
+ else
+ {
+- const off64_t plength = len - ReservedDataLength;
++ const off_t plength = len - ReservedDataLength;
+ assert( plength >= 0 );
+- if( !prepare_file( pFile, (off64_t)curpos, plength) )
++ if( !prepare_file( pFile, (off_t)curpos, plength) )
+ {
+ return false;
+ }
+@@ -392,14 +392,14 @@
+ // Update DataElement:
+ const size_t currentdatalenth = CurrentDataLenth;
+ assert( ReservedDataLength >= 0);
+- //const off64_t refpos = FTello(pFile);
++ //const off_t refpos = FTello(pFile);
+ if( !UpdateDataElement( t ) )
+ {
+ return false;
+ }
+ if( ReservedDataLength > 0)
+ {
+- const off64_t curpos = thepos;
++ const off_t curpos = thepos;
+ if( !prepare_file( pFile, curpos + ReservedDataLength, - ReservedDataLength) )
+ {
+ return false;
+@@ -584,7 +584,7 @@
+ pFile = fopen(outfilename, "r+b");
+ assert( pFile );
+
+- if( !prepare_file( pFile, (off64_t)thepcpos, pclen ) )
++ if( !prepare_file( pFile, (off_t)thepcpos, pclen ) )
+ {
+ return false;
+ }
+@@ -670,7 +670,7 @@
+ size_t actualde;
+ size_t CurrentDataLenth;
+ Tag CurrentGroupTag;
+- off64_t ReservedDataLength{0};
++ off_t ReservedDataLength{0};
+ unsigned short ReservedGroupDataElement{0};
+ public:
+ FileStreamer *Self{nullptr};
+@@ -682,7 +682,7 @@
+ {
+ if( CurrentDataLenth % 2 == 1 )
+ {
+- const off64_t curpos = FTello(pFile);
++ const off_t curpos = FTello(pFile);
+ if( ReservedDataLength >= 1 )
+ {
+ // simply update remaining reserved buffer:
+@@ -690,7 +690,7 @@
+ }
+ else
+ {
+- if( !prepare_file( pFile, (off64_t)curpos, 1) )
++ if( !prepare_file( pFile, (off_t)curpos, 1) )
+ {
+ return false;
+ }
+@@ -702,7 +702,7 @@
+ CurrentDataLenth += 1;
+ }
+ assert( CurrentDataLenth % 2 == 0 );
+- off64_t vlpos = thepos;
++ off_t vlpos = thepos;
+ vlpos -= CurrentDataLenth;
+ vlpos -= 4; // VL
+ if( TS.GetNegociatedType() == TransferSyntax::Explicit )
+@@ -720,7 +720,7 @@
+ }
+ return true;
+ }
+- size_t WriteHelper( off64_t offset, const Tag & tag, const VL & vl )
++ size_t WriteHelper( off_t offset, const Tag & tag, const VL & vl )
+ {
+ FSeeko(pFile, offset, SEEK_SET);
+ std::stringstream ss;
+@@ -765,7 +765,7 @@
+ static int checksize = 0;
+ if( !checksize )
+ {
+- const int soff = sizeof( off64_t );
++ const int soff = sizeof( off_t );
+ const int si64 = sizeof( int64_t );
+ if( soff != si64 ) return false;
+ if( !(sizeof(sb.st_size) > 4) ) // LFS ?
diff --git a/testing/gdcm/40-java.patch b/testing/gdcm/40-java.patch
new file mode 100644
index 00000000000..291fe9c79b5
--- /dev/null
+++ b/testing/gdcm/40-java.patch
@@ -0,0 +1,18 @@
+--- a/Wrapping/Java/gdcm.i
++++ b/Wrapping/Java/gdcm.i
+@@ -247,7 +247,6 @@
+
+ // http://www.swig.org/Doc1.3/Java.html#imclass_pragmas
+ // Need to be located *after* gdcmConfigure.h
+-#ifdef GDCM_AUTOLOAD_GDCMJNI
+ %pragma(java) jniclasscode=%{
+ private final static String GDCMJNI = "gdcmjni";
+ static {
+@@ -339,7 +338,6 @@
+ }
+ }
+ %}
+-#endif
+
+
+ //%include "gdcmTypes.h"
diff --git a/testing/gdcm/50-use_copyright.patch b/testing/gdcm/50-use_copyright.patch
new file mode 100644
index 00000000000..298a9f67c37
--- /dev/null
+++ b/testing/gdcm/50-use_copyright.patch
@@ -0,0 +1,29 @@
+From 541353ba279245fb0297f50dcb23d2da0d45cdc4 Mon Sep 17 00:00:00 2001
+From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
+Date: Sun, 28 Jul 2019 16:38:52 +0100
+Subject: [PATCH] 3.0.1 Use copyright
+
+---
+ CMake/UseCopyright.cmake | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/CMake/UseCopyright.cmake b/CMake/UseCopyright.cmake
+index fb4fe1fad..d8bc8e8cb 100644
+--- a/CMake/UseCopyright.cmake
++++ b/CMake/UseCopyright.cmake
+@@ -18,8 +18,10 @@ macro(APPEND_COPYRIGHT)
+ # need to raise an error if COPYRIGHT_MODULE_FILENAME is not set...
+ if(EXISTS ${COPYRIGHT_MODULE_FILENAME} )
+ foreach(filename ${ARGN})
+- file(READ ${filename} content)
+- file(APPEND ${COPYRIGHT_MODULE_FILENAME} ${content})
++ if(EXISTS ${filename} )
++ file(READ ${filename} content)
++ file(APPEND ${COPYRIGHT_MODULE_FILENAME} ${content})
++ endif()
+ endforeach()
+ endif()
+ endmacro()
+--
+2.21.0
+
diff --git a/testing/gdcm/60-fix_export_variables.patch b/testing/gdcm/60-fix_export_variables.patch
new file mode 100644
index 00000000000..b9fc89cf38f
--- /dev/null
+++ b/testing/gdcm/60-fix_export_variables.patch
@@ -0,0 +1,34 @@
+From 204375d9cc8ba863a40fab23241844596bbb54e1 Mon Sep 17 00:00:00 2001
+From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
+Date: Sat, 23 Nov 2019 12:51:46 +0000
+Subject: [PATCH 2/2] Fix export variables
+
+---
+ CMake/ExportConfiguration/GDCMConfig.cmake.in | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMake/ExportConfiguration/GDCMConfig.cmake.in b/CMake/ExportConfiguration/GDCMConfig.cmake.in
+index f8e9d0ba5..4894d293e 100644
+--- a/CMake/ExportConfiguration/GDCMConfig.cmake.in
++++ b/CMake/ExportConfiguration/GDCMConfig.cmake.in
+@@ -37,14 +37,14 @@ get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ if(EXISTS ${SELF_DIR}/GDCMTargets.cmake)
+ # This is an install tree
+ include(${SELF_DIR}/GDCMTargets.cmake)
+- get_filename_component(GDCM_INCLUDE_ROOT "${SELF_DIR}/../../@GDCM_INSTALL_INCLUDE_DIR@" ABSOLUTE)
++ get_filename_component(GDCM_INCLUDE_ROOT "@GDCM_INSTALL_INCLUDE_DIR@" ABSOLUTE)
+ set(GDCM_INCLUDE_DIRS ${GDCM_INCLUDE_ROOT})
+- get_filename_component(GDCM_LIB_ROOT "${SELF_DIR}/../../@GDCM_INSTALL_LIB_DIR@" ABSOLUTE)
++ get_filename_component(GDCM_LIB_ROOT "@GDCM_INSTALL_LIB_DIR@" ABSOLUTE)
+ set(GDCM_LIBRARY_DIRS ${GDCM_LIB_ROOT})
+ else()
+ if(EXISTS ${SELF_DIR}/GDCMExports.cmake)
+ # This is a build tree
+- set( GDCM_INCLUDE_DIRS "@GDCM_INCLUDE_PATH@")
++ set(GDCM_INCLUDE_DIRS "@GDCM_INCLUDE_PATH@")
+ set(GDCM_LIBRARY_DIRS "@GDCM_LIBRARY_DIR@")
+
+ include(${SELF_DIR}/GDCMExports.cmake)
+--
+2.23.0
+
diff --git a/testing/gdcm/70-vtk9.3.0.patch b/testing/gdcm/70-vtk9.3.0.patch
new file mode 100644
index 00000000000..e9bf72577d1
--- /dev/null
+++ b/testing/gdcm/70-vtk9.3.0.patch
@@ -0,0 +1,94 @@
+Author: nilason
+Summary: #552 Problem compiling with VTK 9.3.0 support
+URL: https://sourceforge.net/p/gdcm/bugs/552/#9e8f
+----
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -698,6 +698,7 @@
+ HEADERS_DESTINATION "${GDCM_INSTALL_INCLUDE_DIR}/vtk${vtk_version_suffix}"
+ CMAKE_DESTINATION "${GDCM_INSTALL_PACKAGE_DIR}"
+ LICENSE_DESTINATION "${GDCM_INSTALL_DATA_DIR}/vtkgdcm-${GDCM_SHORT_VERSION}"
++ SPDX_DESTINATION "${GDCM_INSTALL_DATA_DIR}/vtkgdcm-${GDCM_SHORT_VERSION}"
+ HIERARCHY_DESTINATION "${GDCM_INSTALL_LIB_DIR}/vtk${vtk_version_suffix}/hierarchy/vtkgdcm"
+ LIBRARY_NAME_SUFFIX "${vtkgdcm_library_suffix}"
+ VERSION "${GDCM_VERSION}"
+
+
+--- a/Utilities/VTK/vtkImageColorViewer.h
++++ b/Utilities/VTK/vtkImageColorViewer.h
+@@ -199,22 +199,6 @@
+ virtual int GetOffScreenRendering();
+ vtkBooleanMacro(OffScreenRendering,int);
+
+- // Description:
+- // @deprecated Replaced by vtkImageColorViewer::GetSliceMin() as of VTK 5.0.
+- VTK_LEGACY(int GetWholeZMin());
+-
+- // Description:
+- // @deprecated Replaced by vtkImageColorViewer::GetSliceMax() as of VTK 5.0.
+- VTK_LEGACY(int GetWholeZMax());
+-
+- // Description:
+- // @deprecated Replaced by vtkImageColorViewer::GetSlice() as of VTK 5.0.
+- VTK_LEGACY(int GetZSlice());
+-
+- // Description:
+- // @deprecated Replaced by vtkImageColorViewer::SetSlice() as of VTK 5.0.
+- VTK_LEGACY(void SetZSlice(int));
+-
+ protected:
+ vtkImageColorViewer();
+ ~vtkImageColorViewer();
+
+
+
+--- a/Utilities/VTK/vtkImageColorViewer.cxx
++++ b/Utilities/VTK/vtkImageColorViewer.cxx
+@@ -919,34 +919,6 @@
+ }
+
+ //----------------------------------------------------------------------------
+-#ifndef VTK_LEGACY_REMOVE
+-int vtkImageColorViewer::GetWholeZMin()
+-{
+- VTK_LEGACY_REPLACED_BODY(vtkImageColorViewer::GetWholeZMin, "VTK 5.0",
+- vtkImageColorViewer::GetSliceMin);
+- return this->GetSliceMin();
+-}
+-int vtkImageColorViewer::GetWholeZMax()
+-{
+- VTK_LEGACY_REPLACED_BODY(vtkImageColorViewer::GetWholeZMax, "VTK 5.0",
+- vtkImageColorViewer::GetSliceMax);
+- return this->GetSliceMax();
+-}
+-int vtkImageColorViewer::GetZSlice()
+-{
+- VTK_LEGACY_REPLACED_BODY(vtkImageColorViewer::GetZSlice, "VTK 5.0",
+- vtkImageColorViewer::GetSlice);
+- return this->GetSlice();
+-}
+-void vtkImageColorViewer::SetZSlice(int s)
+-{
+- VTK_LEGACY_REPLACED_BODY(vtkImageColorViewer::SetZSlice, "VTK 5.0",
+- vtkImageColorViewer::SetSlice);
+- this->SetSlice(s);
+-}
+-#endif
+-
+-//----------------------------------------------------------------------------
+ void vtkImageColorViewer::PrintSelf(ostream& os, vtkIndent indent)
+ {
+ this->Superclass::PrintSelf(os, indent);
+
+
+
+--- a/Utilities/VTK/vtkGDCMTesting.cxx
++++ b/Utilities/VTK/vtkGDCMTesting.cxx
+@@ -14,7 +14,6 @@
+ #include "vtkGDCMTesting.h"
+
+ #include "vtkObjectFactory.h"
+-#include "vtkToolkits.h"
+ #include "gdcmTesting.h"
+ #include "gdcmFilename.h" \ No newline at end of file
diff --git a/testing/gdcm/APKBUILD b/testing/gdcm/APKBUILD
new file mode 100644
index 00000000000..2abaa531a4b
--- /dev/null
+++ b/testing/gdcm/APKBUILD
@@ -0,0 +1,183 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=gdcm
+pkgver=3.0.23
+pkgrel=2
+pkgdesc="Grassroots DiCoM is a C++ library for DICOM medical files"
+url="https://gdcm.sourceforge.net/"
+# armhf, aarch64: dcmtk missing
+# s390x: vtk missing
+arch="all !aarch64 !armhf !s390x"
+license="BSD-3-Clause"
+makedepends="
+ charls-dev
+ cmake
+ cmake
+ dcmtk-dev
+ docbook-xsl
+ doxygen
+ expat-dev
+ font-freefont
+ fontconfig-dev
+ graphviz
+ json-c-dev
+ libogg-dev
+ libtheora-dev
+ libxml2-dev
+ libxslt-dev
+ mesa-dev
+ openjpeg-dev
+ openssl-dev
+ poppler-dev
+ python3-dev
+ samurai
+ sqlite-dev
+ swig
+ util-linux-dev
+ vtk-dev
+ "
+subpackages="$pkgname-dev"
+# gdcmData.tar.bz2 is broken
+source="gdcm-$pkgver.tar.bz2::https://sourceforge.net/projects/gdcm/files/gdcm%203.x/GDCM%20$pkgver/gdcm-$pkgver.tar.bz2/download
+ https://downloads.sourceforge.net/project/gdcm/gdcmData/gdcmData/gdcmData.tar.gz
+ 10-docbook4.patch
+ 30-off_t.patch
+ 40-java.patch
+ 50-use_copyright.patch
+ 60-fix_export_variables.patch
+ 70-vtk9.3.0.patch
+ "
+
+# Optional dependency texlive is not available on ppc64le
+#case "$CARCH" in
+# ppc64le|riscv64)
+ _with_doc="OFF"
+# ;;
+# *)
+# makedepends="$makedepends texlive texmf-dist-latexextra texlive-dvi"
+# subpackages="$subpackages $pkgname-doc-html $pkgname-doc-pdf"
+# _with_doc="ON"
+# ;;
+#esac
+subpackages="$subpackages $pkgname-doc py3-$pkgname:py3"
+
+# Optional dependency openjdk8-jdk is not available on riscv64
+case "$CARCH" in
+ riscv64)
+ _with_java="OFF"
+ ;;
+ *)
+ makedepends="$makedepends java-common openjdk8-jdk"
+ subpackages="$subpackages java-$pkgname:java"
+ _with_java="ON"
+ ;;
+esac
+subpackages="$subpackages lib$pkgname:lib"
+
+prepare() {
+ default_prepare
+
+ # Remove bundled utilities (we use Alpine's ones)
+ rm -rf Utilities/gdcmexpat
+ rm -rf Utilities/gdcmopenjpeg
+ rm -rf Utilities/gdcmopenjpeg
+ rm -rf Utilities/gdcmzlib
+ rm -rf Utilities/gdcmuuid
+ rm -rf Utilities/gdcmcharls
+
+ # Remove bundled utilities (we don't use them)
+ rm -rf Utilities/getopt
+ rm -rf Utilities/pvrg
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DGDCM_INSTALL_PACKAGE_DIR=lib/cmake/gdcm \
+ -DGDCM_BUILD_TESTING:BOOL=ON \
+ -DGDCM_DATA_ROOT=../gdcmData/ \
+ -DGDCM_BUILD_EXAMPLES:BOOL=ON \
+ -DGDCM_DOCUMENTATION:BOOL=$_with_doc \
+ -DGDCM_WRAP_PYTHON:BOOL=ON \
+ -DPYTHON_EXECUTABLE="$(which python3)" \
+ -DGDCM_INSTALL_PYTHONMODULE_DIR="$(python -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')" \
+ -DGDCM_WRAP_JAVA:BOOL=$_with_java \
+ -DGDCM_WRAP_CSHARP:BOOL=OFF \
+ -DGDCM_BUILD_SHARED_LIBS:BOOL=ON \
+ -DGDCM_BUILD_APPLICATIONS:BOOL=ON \
+ -DGDCM_USE_VTK:BOOL=ON \
+ -DGDCM_USE_SYSTEM_CHARLS:BOOL=ON \
+ -DGDCM_USE_SYSTEM_EXPAT:BOOL=ON \
+ -DGDCM_USE_SYSTEM_OPENJPEG:BOOL=ON \
+ -DGDCM_USE_SYSTEM_ZLIB:BOOL=ON \
+ -DGDCM_USE_SYSTEM_UUID:BOOL=ON \
+ -DGDCM_USE_SYSTEM_LJPEG:BOOL=OFF \
+ -DGDCM_USE_SYSTEM_OPENSSL:BOOL=ON \
+ -DGDCM_USE_JPEGLS:BOOL=ON \
+ -DGDCM_USE_SYSTEM_LIBXML2:BOOL=ON \
+ -DGDCM_USE_SYSTEM_JSON:BOOL=ON \
+ -DGDCM_USE_SYSTEM_POPPLER:BOOL=ON \
+ -DJAVA_HOME=/usr/lib/jvm/default-jvm \
+ -DPYTHON_VERSION_MAJOR=3 \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ local test_excludes="(TestMD5$|TestSHA1$|TestWriter$|TestAnonymizer4$|TestImageChangeTransferSyntax1$|TestImageChangeTransferSyntax2$|TestImageChangeTransferSyntax3$|TestImageChangeTransferSyntax4$|TestImageChangeTransferSyntax6$|TestImageChangeTransferSyntax7$|TestPrinter1$|TestImageReader$|TestImageRegionReader1$|TestImageRegionReader2$|TestImageRegionReader3$|TestImageReaderRandomEmpty$|TestImageWriter$|TestCleaner4$|TestJSON1$|TestImageChangeTransferSyntax5$|TestUIDGeneratorPython4$|TestDCMTKMD5Python$|TestSCUValidation$|TestEcho$|TestFind$|TestWrapPython$|gdcmscu-echo-dicomserver$|gdcmscu-store-dicomserver$|gdcmscu-find-dicomserver$|TestStrictScanner1$|TestStrictScanner2_1$|TestStrictScanner2$|TestStrictScanner2_2$|TestDICOMDIRGenerator1$|TestUIDGeneratorPython$|TestvtkGDCMImageWriter1$|TestvtkGDCMMetaImageWriter$|TestvtkGDCMImageReader2_2$|TestvtkGDCMMetaImageWriter2$|TestFileChangeTransferSyntax1$|TestFileChangeTransferSyntax2$|TestFileChangeTransferSyntax2$|TestFileChangeTransferSyntax4$|TestReaderCanRead$|TestRescaler2$)"
+
+ ctest --test-dir build --output-on-failure -E $test_excludes
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+html() {
+ pkgdesc="Grassroots DiCoM HTML documentation"
+ amove usr/share/doc/gdcm-3.0/html
+}
+
+pdf() {
+ pkgdesc="Grassroots DiCoM PDF documentation"
+ amove usr/share/doc/gdcm-3.0/gdcm-$pkgver.pdf
+}
+
+java() {
+ pkgdesc="$pkgdesc (Java bindings)"
+ mkdir -p "$subpkgdir"/usr/share/java
+ mv "$pkgdir"/usr/lib/gdcm.jar "$subpkgdir"/usr/share/java/gdcm-$pkgver.jar
+ cd "$subpkgdir"/usr/share/java/
+ ln -s gdcm-$pkgver.jar gdcm.jar
+ amove usr/lib/libgdcmjni.so
+}
+
+py3() {
+ pkgdesc="$pkgdesc (Python3 bindings)"
+
+ amove usr/lib/python3*
+}
+
+lib() {
+ pkgdesc="Grassroots DiCoM runtime libraries"
+ amove usr/lib
+ amove usr/share/gdcm*
+
+}
+
+sha512sums="
+2d62e6c023a9597fb086d015110b60bea8e73b21fabbb850a3abf574b75a301e64a7d756582d8832b946904ed795746bb75f79967700923dcd794de248154641 gdcm-3.0.23.tar.bz2
+ddc67a7a0b41b2d6e1e03defb6fb8a06ceeb2e9dd9bb47dfa4f7283d79df7c1e52577b799c00e930719ae6cdda46bded9497a67b8241359f238f5366085ec9ee gdcmData.tar.gz
+87fcf6ea8f6eb34e27bf2ecf5cbd4501092d1f936341dfcf75085780da75fab9be7809521d5cb00a6c4a9e512bfbe7de20233104b19fab245391632e409498a3 10-docbook4.patch
+15520cd087ea401744d46a55e83eb307742ee4b94256476531b9f209be4ffaa2b0653d4ab8266b8c82282a52fceaa1f887d5fdebf83c1da0551c51335f74a08e 30-off_t.patch
+3254dd27821f9239c0379d8f9ca577a6f2a7ff14b55701cca9fb0ac47568c24d1e681bc404f1d97a9ed8ee00f2a11701c7d53eee7186e5ce9f7ca8eca7834326 40-java.patch
+da032530bd27b47ab4ec46652c4fcb65dda02ddeca4a3175f49cbf46efd43a1ff75b126475a694ce2df944e3970c67e378b1cf4db4cacf40d87bd999d37b4eed 50-use_copyright.patch
+6994893b96069874bacc9285b994c7f93314b9570c7dd8b64ee51bb701fd5c8bd9892641e3b9d2d6f11fa4f2b7aebbbe25d72c1e689b5cccad34280f4c5199a5 60-fix_export_variables.patch
+37514ff5c48e9ecbe9729229021adbbbbfa26c08df6a18b0e715a0a8f220ac0847c646ad091f9eb2f5b9026f5962599b35897057674a2807dd5cdcf4dd84d181 70-vtk9.3.0.patch
+"
diff --git a/testing/gdm-settings/APKBUILD b/testing/gdm-settings/APKBUILD
new file mode 100644
index 00000000000..cc74a3f1803
--- /dev/null
+++ b/testing/gdm-settings/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Thomas Aldrian <aldrian.thom@proton.me>
+pkgname=gdm-settings
+pkgver=4.3
+pkgrel=1
+pkgdesc="A settings app for Gnome's Login Manager, GDM"
+url="https://github.com/gdm-settings/gdm-settings"
+arch="noarch !armhf !s390x" # Blocked by gdm
+license="AGPL-3.0-or-later"
+depends="
+ gdm
+ glib
+ libadwaita
+ polkit
+ py3-gobject3
+ "
+makedepends="
+ blueprint-compiler
+ desktop-file-utils
+ glib-dev
+ gobject-introspection
+ libadwaita-dev
+ meson
+ py3-gobject3-dev
+ "
+checkdepends="appstream"
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gdm-settings/gdm-settings/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+cc586eafdef9f61d90b7f8ae4fbfdf0636e55893ec8a73f989ce66d45d7c6a4c56e8c32b95dbf9bdcfecd7e911815f2f1cc22b7581841f4418991fbf1f4ef248 gdm-settings-4.3.tar.gz
+"
diff --git a/testing/gearmand/APKBUILD b/testing/gearmand/APKBUILD
index 566c1a9deb9..b61620764f6 100644
--- a/testing/gearmand/APKBUILD
+++ b/testing/gearmand/APKBUILD
@@ -1,22 +1,32 @@
# Contributor: Aaron Hurt <ahurt@ena.com>
-# Maintainer: Aaron Hurt <ahurt@ena.com>
+# Maintainer:
pkgname=gearmand
-pkgver=1.1.19.1
-pkgrel=0
+pkgver=1.1.21
+pkgrel=1
pkgdesc="A distributed job queue"
url="http://gearman.org"
arch="all"
license="BSD-3-Clause"
-makedepends="boost-dev gperf libevent-dev util-linux-dev
- hiredis-dev openssl-dev sqlite-dev libmemcached-dev"
+depends_dev="libevent-dev"
+makedepends="
+ $depends_dev
+ boost-dev
+ gperf
+ hiredis-dev
+ libmemcached-dev
+ openssl-dev>3
+ sqlite-dev
+ util-linux-dev
+ "
install="$pkgname.pre-install $pkgname.post-deinstall"
-subpackages="$pkgname-doc gearman-dev:gearman_dev gearman-libs:gearman_libs $pkgname-openrc"
+subpackages="$pkgname-doc gearman-dev gearman-libs $pkgname-openrc"
source="https://github.com/gearman/gearmand/releases/download/$pkgver/gearmand-$pkgver.tar.gz
- libtest-cmdline.cc.patch
- libhashkit-common.h.patch
$pkgname.initd
- $pkgname.confd"
+ $pkgname.confd
+ "
+ # libtest-cmdline.cc.patch
+ # libhashkit-common.h.patch
build() {
# Configure with only the most commonly used persistence backends.
# We are explicitly disabling tokyo cabinet, pgsql and mysql to reduce
@@ -36,7 +46,7 @@ build() {
--enable-ssl \
--enable-hiredis \
--enable-jobserver=no
- make
+ make V=1
}
package() {
@@ -48,22 +58,8 @@ package() {
"$pkgdir"/etc/conf.d/$pkgname
}
-gearman_dev() {
- default_dev
-
- pkgdesc="Library providing Gearman client and worker functions (development files)"
- depends="libevent-dev"
-}
-
-gearman_libs() {
- pkgdesc="Library providing Gearman client and worker functions"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libgearman.so* "$subpkgdir"/usr/lib/
-}
-
-sha512sums="cbcf85dfd7268aa9acc039eac9505385af3be89eeba48270ddb45739e0ccdcf0d2963d821ccbb6a471396fc9ab2521d096f5d6c2fc3d41b3fb050bd82a795f1f gearmand-1.1.19.1.tar.gz
-8d7c7473d8bcc06a6dfcb1975dd5b4992457661c6c2fab5e160f6252222af603003466c26de0c2d241d247ac33bc68f8fae853b7401691f36b2e6c57ff9b65ba libtest-cmdline.cc.patch
-08a1ce2ef071a33efc5c93de5812f83ee2b96ae604eaedb1d40a998ccb4e88a0f588d846d19623de9b8f98df18639168521763d27f1fb3ca046b4c679d61468b libhashkit-common.h.patch
+sha512sums="
+d8c6561ddcf7aaf3a861c2a05b014473ff9572fefa9e181ae25b0e88bac8ba09ab4852d98fb0c405b186ae78f6fac22c4248977395162dc41a0e35f53904db49 gearmand-1.1.21.tar.gz
d97dbee95c0b96f0a81e42b730afdb9d129eb83e09be101e1bc2b2cd06a95fe1259265b912bf3850a51c6404e2c5883532a008946dfd46992cb488e1221dae97 gearmand.initd
-d27a6acbce663aad91055f96e374ddf12d00a1ccded318693be441b7c4dfde43db73c755002ecfc683a3c1e95139cf378f26e3ab39b5ab6584a40e3991efe245 gearmand.confd"
+d27a6acbce663aad91055f96e374ddf12d00a1ccded318693be441b7c4dfde43db73c755002ecfc683a3c1e95139cf378f26e3ab39b5ab6584a40e3991efe245 gearmand.confd
+"
diff --git a/testing/gede/APKBUILD b/testing/gede/APKBUILD
index 55d6282d710..95003ea5a19 100644
--- a/testing/gede/APKBUILD
+++ b/testing/gede/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gede
-pkgver=2.16.2
-pkgrel=0
+pkgver=2.18.2
+pkgrel=1
pkgdesc="Gede is a GUI to gdb using Qt5"
-url="http://gede.acidron.com/"
+url="http://gede.dexar.se/"
arch="all"
license="BSD-2-Clause"
+options="!check" # no tests
depends="ctags"
-makedepends="openssl-dev qt5-qtbase-dev"
-source="http://gede.acidron.com/uploads/source/gede-$pkgver.tar.xz"
+makedepends="openssl-dev>3 qt5-qtbase-dev"
+source="https://gede.dexar.se/uploads/source/gede-$pkgver.tar.xz"
build() {
cd src
@@ -17,10 +18,10 @@ build() {
make
}
-
package() {
- mkdir -p "$pkgdir"/usr/bin
- install -m0755 src/gede "$pkgdir"/usr/bin/
+ install -Dm755 src/gede -t "$pkgdir"/usr/bin/
}
-sha512sums="99a1d6b527e6f668175a732bcb37a1ed93d0ea5a6b6bac61481a719a83e951737f93b8215562be6b8318897d132592dae569e5ca17b3c87a7508bb259cf8e6dd gede-2.16.2.tar.xz"
+sha512sums="
+54f5c3209ddb12af3aa5815937de87f9e5169dff9e6067f3497b237f57a044b110e4a29ede6bc66bb256b94e054bba6352f476ce74da6a6bb50c93e65bb87185 gede-2.18.2.tar.xz
+"
diff --git a/testing/genact/APKBUILD b/testing/genact/APKBUILD
new file mode 100644
index 00000000000..b62e6639c7b
--- /dev/null
+++ b/testing/genact/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=genact
+pkgver=1.4.2
+pkgrel=0
+pkgdesc="A nonsense activity generator"
+url="https://github.com/svenstaro/genact"
+arch="all !s390x" # s390x: https://github.com/nix-rust/nix/issues/1968
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/svenstaro/genact/archive/refs/tags/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/genact "$pkgdir"/usr/bin/genact
+}
+
+sha512sums="
+7d862050c44c95b8b3476664aeade12ac5caefe4ec0ffde73329656a176f1ad44db41eeda0f12cbcc0aecdd35a430c18d1278bdd11ece0da4bd0be166ff689d3 genact-1.4.2.tar.gz
+"
diff --git a/testing/geodns/APKBUILD b/testing/geodns/APKBUILD
index 8f9b46dcb73..9ad786dc708 100644
--- a/testing/geodns/APKBUILD
+++ b/testing/geodns/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname="geodns"
-pkgver="3.0.1"
-pkgrel=2
+pkgname=geodns
+pkgver=3.3.0
+pkgrel=5
pkgdesc="DNS server with per-client targeted responses"
url="https://github.com/abh/geodns"
arch="all"
@@ -12,16 +12,13 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/abh/geodns/archive/v$pkgver.
$pkgname.initd
$pkgname.confd
"
-builddir="$srcdir/src/github.com/abh/geodns"
-prepare() {
- mkdir -p ${builddir%/*}
- ln -sfT "$srcdir"/$pkgname-$pkgver "$builddir"
- default_prepare
-}
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- export GOPATH="$srcdir"
go build -v
cd geodns-logs
@@ -45,6 +42,8 @@ logs() {
install -Dm0755 "$builddir"/geodns-logs/geodns-logs "$subpkgdir"/usr/bin/geodns-logs
}
-sha512sums="a8ed916f6203e31cd44f55ab5f150dbee5518f6cf0dc335687b11f7dd2012d33edb71aa7cf84113cbd440ba9246224e36430bb1b5381f21e5265e02cc56345f2 geodns-3.0.1.tar.gz
+sha512sums="
+4240d4827c403ab81cb3bdbb36b5f408144bf5ff20669b46dcd9ce452ca0d29549983a6de2897b2611bd8a7c26540423600affc40dc27ab669d5e730fd2d6ae3 geodns-3.3.0.tar.gz
dc315782eb77627e2cd23a78ebef2f85a0a37a9129f6e16c817d7b9540c8b02987d35fc46882d7752c09caca825c5a77d2d3a27ae19ccccf2bba2e04bc74940c geodns.initd
-ce2c7f51151313fa35f132f05cb59458eabb0a74208a79d585d579ce88d0ab168eab389fd59e931b4b19da7fcbca202bf495af345156e47dccb187b746b3ee15 geodns.confd"
+ce2c7f51151313fa35f132f05cb59458eabb0a74208a79d585d579ce88d0ab168eab389fd59e931b4b19da7fcbca202bf495af345156e47dccb187b746b3ee15 geodns.confd
+"
diff --git a/testing/geomyidae/APKBUILD b/testing/geomyidae/APKBUILD
index 1995018c8c2..8bfb551a520 100644
--- a/testing/geomyidae/APKBUILD
+++ b/testing/geomyidae/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Sascha Paunovic <azarus@posteo.net>
pkgname=geomyidae
pkgver=0.34
-pkgrel=0
+pkgrel=2
pkgdesc="Simple gopherd"
url="gopher://bitreich.org/1/scm/geomyidae"
arch="all"
diff --git a/testing/geonames/APKBUILD b/testing/geonames/APKBUILD
new file mode 100644
index 00000000000..d8e82a46e1d
--- /dev/null
+++ b/testing/geonames/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=geonames
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="A library for parsing and querying a local copy of the geonames.org database"
+arch="all"
+url="https://gitlab.com/ubports/development/core/geonames"
+license="GPL-3.0-only"
+makedepends="
+ bash
+ cmake
+ glib-dev
+ gtk-doc
+ samurai
+ "
+source="https://gitlab.com/ubports/development/core/geonames/-/archive/$pkgver/geonames-$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-lang $pkgname-doc"
+options="!check" # https://gitlab.com/ubports/development/core/geonames/-/issues/2
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+449fd54127385afde1da2c896c2b6e287826ff2949e456537a066bd1a0aaee3fd484074f2d1366c3b65f9ffa4dd9ff28b926aa48a6db3e93f41fa20c4bfe725d geonames-0.3.1.tar.gz
+"
diff --git a/testing/geotagging/APKBUILD b/testing/geotagging/APKBUILD
new file mode 100644
index 00000000000..25cdd388339
--- /dev/null
+++ b/testing/geotagging/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=geotagging
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="Photography geotagging tool"
+url="https://github.com/jmlich/geotagging"
+arch="x86_64 aarch64" # Limited by qt6-qtwebengine
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ exiv2-dev
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ qt6-qtwebengine-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/jmlich/geotagging/archive/refs/tags/$pkgver.tar.gz
+ fix-exiv2.patch
+ "
+options="!check" # No upstream test suite
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_DATADIR=/usr/share/geotagging
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8af30ea133fee81611316dae2f35e74376369f1b497e9d0dbd296b3f816f7ed01d350552d1e223269be5776b0beab4a3610e1c639f7097539e85ddfe1ae4804f geotagging-0.7.2.tar.gz
+f05cb172f704f4c5d03f98825a9788c0afb43d20d9adf39ce2ceaaa6cf60c4e29242b701f9296bc77035ee82cbbe109cebd5894f52528b550d3d7b7afbfc1431 fix-exiv2.patch
+"
diff --git a/testing/geotagging/fix-exiv2.patch b/testing/geotagging/fix-exiv2.patch
new file mode 100644
index 00000000000..569959ffbe1
--- /dev/null
+++ b/testing/geotagging/fix-exiv2.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -111,7 +111,7 @@
+ target_compile_definitions(com.github.jmlich.geotagging
+ PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
+ target_link_libraries(com.github.jmlich.geotagging
+- PRIVATE Qt6::Core Qt6::Gui Qt6::Network Qt6::Widgets Qt6::WebEngineWidgets Qt6::WebChannel exiv2lib)
++ PRIVATE Qt6::Core Qt6::Gui Qt6::Network Qt6::Widgets Qt6::WebEngineWidgets Qt6::WebChannel exiv2)
+
+
+ option(DEPLOY_QT_LIBRARIES "Deploy Qt libraries to executable path" OFF)
diff --git a/testing/gerbera/0001-Remove-IN-and-OUT-dropped-upstream.patch b/testing/gerbera/0001-Remove-IN-and-OUT-dropped-upstream.patch
deleted file mode 100644
index 4b34fe0942a..00000000000
--- a/testing/gerbera/0001-Remove-IN-and-OUT-dropped-upstream.patch
+++ /dev/null
@@ -1,777 +0,0 @@
-From a4870cbdbcbbd835b10ea6f464c981f01da0b542 Mon Sep 17 00:00:00 2001
-From: Ian Whyman <ian@gerbera.io>
-Date: Tue, 24 Dec 2019 16:18:32 +0000
-Subject: [PATCH] Remove IN and OUT (dropped upstream)
-
----
- src/buffered_io_handler.cc | 2 +-
- src/curl_io_handler.cc | 2 +-
- src/device_description_handler.h | 4 ++--
- src/fd_io_handler.cc | 8 ++++----
- src/fd_io_handler.h | 8 ++++----
- src/file_io_handler.cc | 8 ++++----
- src/file_io_handler.h | 8 ++++----
- src/file_request_handler.cc | 6 +++---
- src/file_request_handler.h | 8 ++++----
- src/io_handler.cc | 26 +++++++++++++-------------
- src/io_handler_buffer_helper.cc | 6 +++---
- src/mem_io_handler.cc | 6 +++---
- src/mem_io_handler.h | 6 +++---
- src/metadata/taglib_handler.cc | 2 +-
- src/process_io_handler.cc | 8 ++++----
- src/process_io_handler.h | 8 ++++----
- src/request_handler.h | 4 ++--
- src/serve_request_handler.cc | 8 ++++----
- src/serve_request_handler.h | 8 ++++----
- src/server.cc | 24 ++++++++++++------------
- src/url_request_handler.cc | 8 ++++----
- src/url_request_handler.h | 8 ++++----
- src/util/headers.h | 2 +-
- src/web_request_handler.cc | 10 +++++-----
- src/web_request_handler.h | 10 +++++-----
- 25 files changed, 99 insertions(+), 99 deletions(-)
-
-diff --git a/src/buffered_io_handler.cc b/src/buffered_io_handler.cc
-index 6ff7a79e..f7d0c663 100644
---- a/src/buffered_io_handler.cc
-+++ b/src/buffered_io_handler.cc
-@@ -51,7 +51,7 @@ BufferedIOHandler::BufferedIOHandler(Ref<IOHandler> underlyingHandler, size_t bu
- //seekEnabled = true;
- }
-
--void BufferedIOHandler::open(IN enum UpnpOpenFileMode mode)
-+void BufferedIOHandler::open(enum UpnpOpenFileMode mode)
- {
- // do the open here instead of threadProc() because it may throw an exception
- underlyingHandler->open(mode);
-diff --git a/src/curl_io_handler.cc b/src/curl_io_handler.cc
-index 4f79b7ea..80399bbc 100644
---- a/src/curl_io_handler.cc
-+++ b/src/curl_io_handler.cc
-@@ -57,7 +57,7 @@ CurlIOHandler::CurlIOHandler(String URL, CURL* curl_handle, size_t bufSize, size
- seekEnabled = true;
- }
-
--void CurlIOHandler::open(IN enum UpnpOpenFileMode mode)
-+void CurlIOHandler::open(enum UpnpOpenFileMode mode)
- {
- if (curl_handle == nullptr) {
- curl_handle = curl_easy_init();
-diff --git a/src/device_description_handler.h b/src/device_description_handler.h
-index 934dc0ae..863912b5 100644
---- a/src/device_description_handler.h
-+++ b/src/device_description_handler.h
-@@ -31,8 +31,8 @@ class DeviceDescriptionHandler : public RequestHandler {
- public:
- explicit DeviceDescriptionHandler(UpnpXMLBuilder* xmlBuilder);
-
-- void getInfo(IN const char *filename, OUT UpnpFileInfo *info) override;
-- zmm::Ref<IOHandler> open(IN const char* filename, IN enum UpnpOpenFileMode mode, IN zmm::String range) override;
-+ void getInfo(const char *filename, UpnpFileInfo *info) override;
-+ zmm::Ref<IOHandler> open(const char* filename, enum UpnpOpenFileMode mode, zmm::String range) override;
-
- protected:
- UpnpXMLBuilder* xmlBuilder;
-diff --git a/src/fd_io_handler.cc b/src/fd_io_handler.cc
-index 63f69c4d..f8d35d1d 100644
---- a/src/fd_io_handler.cc
-+++ b/src/fd_io_handler.cc
-@@ -72,7 +72,7 @@ void FDIOHandler::closeOther(Ref<IOHandler> other)
- this->other = other;
- }
-
--void FDIOHandler::open(IN enum UpnpOpenFileMode mode)
-+void FDIOHandler::open(enum UpnpOpenFileMode mode)
- {
-
- if (fd != -1) {
-@@ -96,7 +96,7 @@ void FDIOHandler::open(IN enum UpnpOpenFileMode mode)
- }
- }
-
--size_t FDIOHandler::read(OUT char* buf, IN size_t length)
-+size_t FDIOHandler::read(char* buf, size_t length)
- {
- size_t ret = 0;
-
-@@ -105,7 +105,7 @@ size_t FDIOHandler::read(OUT char* buf, IN size_t length)
- return ret;
- }
-
--size_t FDIOHandler::write(IN char* buf, IN size_t length)
-+size_t FDIOHandler::write(char* buf, size_t length)
- {
- size_t ret = 0;
-
-@@ -114,7 +114,7 @@ size_t FDIOHandler::write(IN char* buf, IN size_t length)
- return ret;
- }
-
--void FDIOHandler::seek(IN off_t offset, IN int whence)
-+void FDIOHandler::seek(off_t offset, int whence)
- {
- if (lseek(fd, offset, whence) != 0) {
- throw _Exception(_("fseek failed"));
-diff --git a/src/fd_io_handler.h b/src/fd_io_handler.h
-index b8401110..dbd25c3b 100644
---- a/src/fd_io_handler.h
-+++ b/src/fd_io_handler.h
-@@ -59,18 +59,18 @@ public:
- void closeOther(zmm::Ref<IOHandler> other);
-
- /// \brief Opens file for reading (writing is not supported)
-- void open(IN enum UpnpOpenFileMode mode) override;
-+ void open(enum UpnpOpenFileMode mode) override;
-
- /// \brief Reads a previously opened file sequentially.
- /// \param buf Data from the file will be copied into this buffer.
- /// \param length Number of bytes to be copied into the buffer.
-- size_t read(OUT char* buf, IN size_t length) override;
-+ size_t read(char* buf, size_t length) override;
-
- /// \brief Writes to a previously opened file.
- /// \param buf Data from the buffer will be written to the file.
- /// \param length Number of bytes to be written from the buffer.
- /// \return number of bytes written.
-- size_t write(OUT char* buf, IN size_t length) override;
-+ size_t write(char* buf, size_t length) override;
-
- /// \brief Performs seek on an open file.
- /// \param offset Number of bytes to move in the file. For seeking forwards
-@@ -79,7 +79,7 @@ public:
- /// \param whence The position to move relative to. SEEK_CUR to move relative
- /// to current position, SEEK_END to move relative to the end of file,
- /// SEEK_SET to specify an absolute offset.
-- void seek(IN off_t offset, IN int whence) override;
-+ void seek(off_t offset, int whence) override;
-
- /// \brief Close a previously opened file.
- void close() override;
-diff --git a/src/file_io_handler.cc b/src/file_io_handler.cc
-index 6889ada2..4940c951 100644
---- a/src/file_io_handler.cc
-+++ b/src/file_io_handler.cc
-@@ -45,7 +45,7 @@ FileIOHandler::FileIOHandler(String filename)
- {
- }
-
--void FileIOHandler::open(IN enum UpnpOpenFileMode mode)
-+void FileIOHandler::open(enum UpnpOpenFileMode mode)
- {
- if (mode == UPNP_READ) {
- f = fopen(filename.c_str(), "rb");
-@@ -61,7 +61,7 @@ void FileIOHandler::open(IN enum UpnpOpenFileMode mode)
- }
- }
-
--size_t FileIOHandler::read(OUT char* buf, IN size_t length)
-+size_t FileIOHandler::read(char* buf, size_t length)
- {
- size_t ret = 0;
-
-@@ -77,7 +77,7 @@ size_t FileIOHandler::read(OUT char* buf, IN size_t length)
- return ret;
- }
-
--size_t FileIOHandler::write(IN char* buf, IN size_t length)
-+size_t FileIOHandler::write(char* buf, size_t length)
- {
- size_t ret = 0;
-
-@@ -86,7 +86,7 @@ size_t FileIOHandler::write(IN char* buf, IN size_t length)
- return ret;
- }
-
--void FileIOHandler::seek(IN off_t offset, IN int whence)
-+void FileIOHandler::seek(off_t offset, int whence)
- {
- if (fseeko(f, offset, whence) != 0) {
- throw _Exception(_("fseek failed"));
-diff --git a/src/file_io_handler.h b/src/file_io_handler.h
-index aa3f116d..f6895f60 100644
---- a/src/file_io_handler.h
-+++ b/src/file_io_handler.h
-@@ -49,18 +49,18 @@ public:
- explicit FileIOHandler(zmm::String filename);
-
- /// \brief Opens file for reading (writing is not supported)
-- void open(IN enum UpnpOpenFileMode mode) override;
-+ void open(enum UpnpOpenFileMode mode) override;
-
- /// \brief Reads a previously opened file sequentially.
- /// \param buf Data from the file will be copied into this buffer.
- /// \param length Number of bytes to be copied into the buffer.
-- size_t read(OUT char* buf, IN size_t length) override;
-+ size_t read(char* buf, size_t length) override;
-
- /// \brief Writes to a previously opened file.
- /// \param buf Data from the buffer will be written to the file.
- /// \param length Number of bytes to be written from the buffer.
- /// \return number of bytes written.
-- size_t write(OUT char* buf, IN size_t length) override;
-+ size_t write(char* buf, size_t length) override;
-
- /// \brief Performs seek on an open file.
- /// \param offset Number of bytes to move in the file. For seeking forwards
-@@ -69,7 +69,7 @@ public:
- /// \param whence The position to move relative to. SEEK_CUR to move relative
- /// to current position, SEEK_END to move relative to the end of file,
- /// SEEK_SET to specify an absolute offset.
-- void seek(IN off_t offset, IN int whence) override;
-+ void seek(off_t offset, int whence) override;
-
- /// \brief Close a previously opened file.
- void close() override;
-diff --git a/src/file_request_handler.cc b/src/file_request_handler.cc
-index c4b82ccb..0ada9461 100644
---- a/src/file_request_handler.cc
-+++ b/src/file_request_handler.cc
-@@ -52,7 +52,7 @@ FileRequestHandler::FileRequestHandler(UpnpXMLBuilder* xmlBuilder)
- : RequestHandler()
- , xmlBuilder(xmlBuilder) {};
-
--void FileRequestHandler::getInfo(IN const char* filename, OUT UpnpFileInfo* info)
-+void FileRequestHandler::getInfo(const char* filename, UpnpFileInfo* info)
- {
- Headers headers;
- log_debug("start\n");
-@@ -278,8 +278,8 @@ void FileRequestHandler::getInfo(IN const char* filename, OUT UpnpFileInfo* info
- log_debug("web_get_info(): end\n");
- }
-
--Ref<IOHandler> FileRequestHandler::open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode, IN zmm::String range)
-+Ref<IOHandler> FileRequestHandler::open(const char* filename,
-+ enum UpnpOpenFileMode mode, zmm::String range)
- {
- log_debug("start\n");
-
-diff --git a/src/file_request_handler.h b/src/file_request_handler.h
-index fdb1b7e9..6526712c 100644
---- a/src/file_request_handler.h
-+++ b/src/file_request_handler.h
-@@ -44,11 +44,11 @@ protected:
- public:
- explicit FileRequestHandler(UpnpXMLBuilder* xmlBuilder);
-
-- virtual void getInfo(IN const char *filename, OUT UpnpFileInfo *info);
-+ virtual void getInfo(const char *filename, UpnpFileInfo *info);
- virtual zmm::Ref<IOHandler> open(
-- IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN zmm::String range);
-+ const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ zmm::String range);
- };
-
- #endif // __FILE_REQUEST_HANDLER_H__
-diff --git a/src/io_handler.cc b/src/io_handler.cc
-index 3b774c73..b3c4aedb 100644
---- a/src/io_handler.cc
-+++ b/src/io_handler.cc
-@@ -42,8 +42,8 @@ IOHandler::IOHandler()
- {
- }
-
--/// \fn static UpnpWebFileHandle web_open(IN const char *filename,
--/// IN enum UpnpOpenFileMode mode)
-+/// \fn static UpnpWebFileHandle web_open(const char *filename,
-+/// enum UpnpOpenFileMode mode)
- /// \brief Opens a file for the web server.
- /// \param filename Name of the file to open.
- /// \param mode in which the file will be opened (we only support UPNP_READ)
-@@ -52,12 +52,12 @@ IOHandler::IOHandler()
- ///
- /// \retval UpnpWebFileHandle A valid file handle.
- /// \retval NULL Error.
--void IOHandler::open(IN enum UpnpOpenFileMode mode)
-+void IOHandler::open(enum UpnpOpenFileMode mode)
- {
- }
-
--/// \fn static int web_read (IN UpnpWebFileHandle f, OUT char *buf,
--/// IN size_t length)
-+/// \fn static int web_read (UpnpWebFileHandle f, char *buf,
-+/// size_t length)
- /// \brief Reads a previously opened file sequentially.
- /// \param f Handle of the file.
- /// \param buf This buffer will be filled by fread.
-@@ -69,13 +69,13 @@ void IOHandler::open(IN enum UpnpOpenFileMode mode)
- ///
- /// \retval 0 EOF encountered.
- /// \retval -1 Error.
--size_t IOHandler::read(OUT char* buf, IN size_t length)
-+size_t IOHandler::read(char* buf, size_t length)
- {
- return -1;
- }
-
--/// \fn static int web_write (IN UpnpWebFileHandle f,IN char *buf,
--/// IN size_t length)
-+/// \fn static int web_write (UpnpWebFileHandle f,char *buf,
-+/// size_t length)
- /// \brief Writes to a previously opened file sequentially.
- /// \param f Handle of the file.
- /// \param buf This buffer will be filled by fwrite.
-@@ -90,13 +90,13 @@ size_t IOHandler::read(OUT char* buf, IN size_t length)
- /// \retval Actual number of bytes written.
- ///
- /// \warning Currently this function is not supported.
--size_t IOHandler::write(IN char* buf, IN size_t length)
-+size_t IOHandler::write(char* buf, size_t length)
- {
- return 0;
- }
-
--/// \fn static int web_seek (IN UpnpWebFileHandle f, IN long offset,
--/// IN int origin)
-+/// \fn static int web_seek (UpnpWebFileHandle f, long offset,
-+/// int origin)
- /// \brief Performs a seek on an open file.
- /// \param f Handle of the file.
- /// \param offset Number of bytes to move in the file. For seeking forwards
-@@ -109,11 +109,11 @@ size_t IOHandler::write(IN char* buf, IN size_t length)
- /// This function is called by the web server to perform seek on an a file.
- ///
- /// \retval 0 On success, non-zero value on error.
--void IOHandler::seek(IN off_t offset, IN int whence)
-+void IOHandler::seek(off_t offset, int whence)
- {
- }
-
--/// \fn static int web_close (IN UpnpWebFileHandle f)
-+/// \fn static int web_close (UpnpWebFileHandle f)
- /// \brief Closes a previously opened file.
- /// \param f Handle of the file.
- ///
-diff --git a/src/io_handler_buffer_helper.cc b/src/io_handler_buffer_helper.cc
-index d86a4daf..89d22a71 100644
---- a/src/io_handler_buffer_helper.cc
-+++ b/src/io_handler_buffer_helper.cc
-@@ -60,7 +60,7 @@ IOHandlerBufferHelper::IOHandlerBufferHelper(size_t bufSize, size_t initialFillS
- doSeek = false;
- }
-
--void IOHandlerBufferHelper::open(IN enum UpnpOpenFileMode mode)
-+void IOHandlerBufferHelper::open(enum UpnpOpenFileMode mode)
- {
- if (isOpen)
- throw _Exception(_("tried to reopen an open IOHandlerBufferHelper"));
-@@ -78,7 +78,7 @@ IOHandlerBufferHelper::~IOHandlerBufferHelper()
- close();
- }
-
--size_t IOHandlerBufferHelper::read(OUT char* buf, IN size_t length)
-+size_t IOHandlerBufferHelper::read(char* buf, size_t length)
- {
- // check read on closed BufferedIOHandler
- assert(isOpen);
-@@ -142,7 +142,7 @@ size_t IOHandlerBufferHelper::read(OUT char* buf, IN size_t length)
- return didRead;
- }
-
--void IOHandlerBufferHelper::seek(IN off_t offset, IN int whence)
-+void IOHandlerBufferHelper::seek(off_t offset, int whence)
- {
- log_debug("seek called: %lld %d\n", offset, whence);
- if (!seekEnabled)
-diff --git a/src/mem_io_handler.cc b/src/mem_io_handler.cc
-index 31028d56..3a87be82 100644
---- a/src/mem_io_handler.cc
-+++ b/src/mem_io_handler.cc
-@@ -69,12 +69,12 @@ MemIOHandler::~MemIOHandler()
- FREE(buffer);
- }
-
--void MemIOHandler::open(IN enum UpnpOpenFileMode mode)
-+void MemIOHandler::open(enum UpnpOpenFileMode mode)
- {
- pos = 0;
- }
-
--size_t MemIOHandler::read(OUT char* buf, IN size_t length)
-+size_t MemIOHandler::read(char* buf, size_t length)
- {
- size_t ret = 0;
-
-@@ -98,7 +98,7 @@ size_t MemIOHandler::read(OUT char* buf, IN size_t length)
- return ret;
- }
-
--void MemIOHandler::seek(IN off_t offset, IN int whence)
-+void MemIOHandler::seek(off_t offset, int whence)
- {
- if (whence == SEEK_SET) {
- // offset must be positive when SEEK_SET is used
-diff --git a/src/mem_io_handler.h b/src/mem_io_handler.h
-index beab8983..d2311dc9 100644
---- a/src/mem_io_handler.h
-+++ b/src/mem_io_handler.h
-@@ -53,9 +53,9 @@ public:
- virtual ~MemIOHandler();
-
- ///
-- void open(IN enum UpnpOpenFileMode mode) override;
-- size_t read(OUT char* buf, IN size_t length) override;
-- void seek(IN off_t offset, IN int whence) override;
-+ void open(enum UpnpOpenFileMode mode) override;
-+ size_t read(char* buf, size_t length) override;
-+ void seek(off_t offset, int whence) override;
- };
-
- #endif // __MEM_IO_HANDLER_H__
-diff --git a/src/metadata/taglib_handler.cc b/src/metadata/taglib_handler.cc
-index 0aa12edc..365e2f3c 100644
---- a/src/metadata/taglib_handler.cc
-+++ b/src/metadata/taglib_handler.cc
-@@ -276,7 +276,7 @@ void TagLibHandler::addArtworkResource(Ref<CdsItem> item, String art_mimetype)
- }
- }
-
--Ref<IOHandler> TagLibHandler::serveContent(IN Ref<CdsItem> item, IN int resNum, OUT off_t* data_size)
-+Ref<IOHandler> TagLibHandler::serveContent(Ref<CdsItem> item, int resNum, off_t* data_size)
- {
- Ref<Dictionary> mappings = ConfigManager::getInstance()->getDictionaryOption(CFG_IMPORT_MAPPINGS_MIMETYPE_TO_CONTENTTYPE_LIST);
- String content_type = mappings->get(item->getMimeType());
-diff --git a/src/process_io_handler.cc b/src/process_io_handler.cc
-index 681c0921..c4f9ce27 100644
---- a/src/process_io_handler.cc
-+++ b/src/process_io_handler.cc
-@@ -153,7 +153,7 @@ ProcessIOHandler::ProcessIOHandler(String filename,
- registerAll();
- }
-
--void ProcessIOHandler::open(IN enum UpnpOpenFileMode mode)
-+void ProcessIOHandler::open(enum UpnpOpenFileMode mode)
- {
- if ((main_proc != nullptr) && ((!main_proc->isAlive() || abort()))) {
- killall();
-@@ -180,7 +180,7 @@ void ProcessIOHandler::open(IN enum UpnpOpenFileMode mode)
- }
- }
-
--size_t ProcessIOHandler::read(OUT char* buf, IN size_t length)
-+size_t ProcessIOHandler::read(char* buf, size_t length)
- {
- fd_set readSet;
- struct timeval timeout;
-@@ -279,7 +279,7 @@ size_t ProcessIOHandler::read(OUT char* buf, IN size_t length)
- return num_bytes;
- }
-
--size_t ProcessIOHandler::write(IN char* buf, IN size_t length)
-+size_t ProcessIOHandler::write(char* buf, size_t length)
- {
- fd_set writeSet;
- struct timeval timeout;
-@@ -370,7 +370,7 @@ size_t ProcessIOHandler::write(IN char* buf, IN size_t length)
- return num_bytes;
- }
-
--void ProcessIOHandler::seek(IN off_t offset, IN int whence)
-+void ProcessIOHandler::seek(off_t offset, int whence)
- {
- // we know we can not seek in a fifo, but the PS3 asks for a hack...
- if (!ignore_seek)
-diff --git a/src/process_io_handler.h b/src/process_io_handler.h
-index 3fbf2bd8..75a004c5 100644
---- a/src/process_io_handler.h
-+++ b/src/process_io_handler.h
-@@ -62,18 +62,18 @@ public:
- bool ignoreSeek = false);
-
- /// \brief Opens file for reading (writing is not supported)
-- void open(IN enum UpnpOpenFileMode mode) override;
-+ void open(enum UpnpOpenFileMode mode) override;
-
- /// \brief Reads a previously opened file sequentially.
- /// \param buf Data from the file will be copied into this buffer.
- /// \param length Number of bytes to be copied into the buffer.
-- size_t read(OUT char* buf, IN size_t length) override;
-+ size_t read(char* buf, size_t length) override;
-
- /// \brief Writes to a previously opened file.
- /// \param buf Data from the buffer will be written to the file.
- /// \param length Number of bytes to be written from the buffer.
- /// \return number of bytes written.
-- size_t write(OUT char* buf, IN size_t length) override;
-+ size_t write(char* buf, size_t length) override;
-
- /// \brief Performs seek on an open file.
- /// \param offset Number of bytes to move in the file. For seeking forwards
-@@ -82,7 +82,7 @@ public:
- /// \param whence The position to move relative to. SEEK_CUR to move relative
- /// to current position, SEEK_END to move relative to the end of file,
- /// SEEK_SET to specify an absolute offset.
-- void seek(IN off_t offset, IN int whence) override;
-+ void seek(off_t offset, int whence) override;
-
- /// \brief Close a previously opened file and kills the kill_pid process
- void close() override;
-diff --git a/src/request_handler.h b/src/request_handler.h
-index 3e274624..616cbae5 100644
---- a/src/request_handler.h
-+++ b/src/request_handler.h
-@@ -38,9 +38,9 @@
-
- class RequestHandler : public zmm::Object {
- public:
-- virtual void getInfo(IN const char *filename, OUT UpnpFileInfo *info) = 0;
-+ virtual void getInfo(const char *filename, UpnpFileInfo *info) = 0;
-
-- virtual zmm::Ref<IOHandler> open(IN const char* filename, IN enum UpnpOpenFileMode mode, IN zmm::String range) = 0;
-+ virtual zmm::Ref<IOHandler> open(const char* filename, enum UpnpOpenFileMode mode, zmm::String range) = 0;
-
- /// \brief Splits the url into a path and parameters string.
- /// Only '?' and '/' separators are allowed, otherwise an exception will
-diff --git a/src/serve_request_handler.cc b/src/serve_request_handler.cc
-index 94eefb44..abb005f1 100644
---- a/src/serve_request_handler.cc
-+++ b/src/serve_request_handler.cc
-@@ -44,7 +44,7 @@ ServeRequestHandler::ServeRequestHandler()
- }
-
- /// \todo clean up the fix for internal items
--void ServeRequestHandler::getInfo(IN const char *filename, OUT UpnpFileInfo *info)
-+void ServeRequestHandler::getInfo(const char *filename, UpnpFileInfo *info)
- {
- struct stat statbuf;
- int ret = 0;
-@@ -100,9 +100,9 @@ void ServeRequestHandler::getInfo(IN const char *filename, OUT UpnpFileInfo *inf
- }
- }
-
--Ref<IOHandler> ServeRequestHandler::open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN zmm::String range)
-+Ref<IOHandler> ServeRequestHandler::open(const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ zmm::String range)
- {
- struct stat statbuf;
- int ret = 0;
-diff --git a/src/serve_request_handler.h b/src/serve_request_handler.h
-index 3f799d8e..dce399a3 100644
---- a/src/serve_request_handler.h
-+++ b/src/serve_request_handler.h
-@@ -39,10 +39,10 @@
- class ServeRequestHandler : public RequestHandler {
- public:
- ServeRequestHandler();
-- virtual void getInfo(IN const char *filename, OUT UpnpFileInfo *info);
-- virtual zmm::Ref<IOHandler> open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN zmm::String range);
-+ virtual void getInfo(const char *filename, UpnpFileInfo *info);
-+ virtual zmm::Ref<IOHandler> open(const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ zmm::String range);
- };
-
- #endif // __SERVE_REQUEST_HANDLER_H__
-diff --git a/src/server.cc b/src/server.cc
-index acbeed68..4caef731 100644
---- a/src/server.cc
-+++ b/src/server.cc
-@@ -453,9 +453,9 @@ int Server::registerVirtualDirCallbacks()
- {
- log_debug("Setting UpnpVirtualDir GetInfoCallback\n");
- #ifdef UPNP_HAS_REQUEST_COOKIES
-- int ret = UpnpVirtualDir_set_GetInfoCallback([](IN const char* filename, OUT UpnpFileInfo* info, const void* cookie, OUT const void** requestCookie) -> int {
-+ int ret = UpnpVirtualDir_set_GetInfoCallback([](const char* filename, UpnpFileInfo* info, const void* cookie, const void** requestCookie) -> int {
- #else
-- int ret = UpnpVirtualDir_set_GetInfoCallback([](IN const char* filename, OUT UpnpFileInfo* info, const void* cookie) -> int {
-+ int ret = UpnpVirtualDir_set_GetInfoCallback([](const char* filename, UpnpFileInfo* info, const void* cookie) -> int {
- #endif
- try {
- Ref<RequestHandler> reqHandler = static_cast<const Server *>(cookie)->createRequestHandler(filename);
-@@ -475,9 +475,9 @@ int Server::registerVirtualDirCallbacks()
-
- log_debug("Setting UpnpVirtualDir OpenCallback\n");
- #ifdef UPNP_HAS_REQUEST_COOKIES
-- ret = UpnpVirtualDir_set_OpenCallback([](IN const char* filename, IN enum UpnpOpenFileMode mode, IN const void* cookie, IN const void* requestCookie) -> UpnpWebFileHandle {
-+ ret = UpnpVirtualDir_set_OpenCallback([](const char* filename, enum UpnpOpenFileMode mode, const void* cookie, const void* requestCookie) -> UpnpWebFileHandle {
- #else
-- ret = UpnpVirtualDir_set_OpenCallback([](IN const char* filename, IN enum UpnpOpenFileMode mode, IN const void* cookie) -> UpnpWebFileHandle {
-+ ret = UpnpVirtualDir_set_OpenCallback([](const char* filename, enum UpnpOpenFileMode mode, const void* cookie) -> UpnpWebFileHandle {
- #endif
- String link = urlUnescape(zmm::String::copy(filename));
-
-@@ -502,9 +502,9 @@ int Server::registerVirtualDirCallbacks()
-
- log_debug("Setting UpnpVirtualDir ReadCallback\n");
- #ifdef UPNP_HAS_REQUEST_COOKIES
-- ret = UpnpVirtualDir_set_ReadCallback([](IN UpnpWebFileHandle f, OUT char* buf, IN size_t length, IN const void* cookie, IN const void* requestCookie) -> int {
-+ ret = UpnpVirtualDir_set_ReadCallback([](UpnpWebFileHandle f, char* buf, size_t length, const void* cookie, const void* requestCookie) -> int {
- #else
-- ret = UpnpVirtualDir_set_ReadCallback([](IN UpnpWebFileHandle f, OUT char* buf, IN size_t length, IN const void* cookie) -> int {
-+ ret = UpnpVirtualDir_set_ReadCallback([](UpnpWebFileHandle f, char* buf, size_t length, const void* cookie) -> int {
- #endif
- //log_debug("%p read(%d)\n", f, length);
- if (static_cast<const Server*>(cookie)->getShutdownStatus())
-@@ -518,9 +518,9 @@ int Server::registerVirtualDirCallbacks()
-
- log_debug("Setting UpnpVirtualDir WriteCallback\n");
- #ifdef UPNP_HAS_REQUEST_COOKIES
-- ret = UpnpVirtualDir_set_WriteCallback([](IN UpnpWebFileHandle f, IN char* buf, IN size_t length, IN const void* cookie, IN const void* requestCookie) -> int {
-+ ret = UpnpVirtualDir_set_WriteCallback([](UpnpWebFileHandle f, char* buf, size_t length, const void* cookie, const void* requestCookie) -> int {
- #else
-- ret = UpnpVirtualDir_set_WriteCallback([](IN UpnpWebFileHandle f, IN char* buf, IN size_t length, IN const void* cookie) -> int {
-+ ret = UpnpVirtualDir_set_WriteCallback([](UpnpWebFileHandle f, char* buf, size_t length, const void* cookie) -> int {
- #endif
- //log_debug("%p write(%d)\n", f, length);
- return 0;
-@@ -530,9 +530,9 @@ int Server::registerVirtualDirCallbacks()
-
- log_debug("Setting UpnpVirtualDir SeekCallback\n");
- #ifdef UPNP_HAS_REQUEST_COOKIES
-- ret = UpnpVirtualDir_set_SeekCallback([](IN UpnpWebFileHandle f, IN off_t offset, IN int whence, IN const void* cookie, IN const void* requestCookie) -> int {
-+ ret = UpnpVirtualDir_set_SeekCallback([](UpnpWebFileHandle f, off_t offset, int whence, const void* cookie, const void* requestCookie) -> int {
- #else
-- ret = UpnpVirtualDir_set_SeekCallback([](IN UpnpWebFileHandle f, IN off_t offset, IN int whence, IN const void* cookie) -> int {
-+ ret = UpnpVirtualDir_set_SeekCallback([](UpnpWebFileHandle f, off_t offset, int whence, const void* cookie) -> int {
- #endif
- //log_debug("%p seek(%d, %d)\n", f, offset, whence);
- try {
-@@ -551,9 +551,9 @@ int Server::registerVirtualDirCallbacks()
-
- log_debug("Setting UpnpVirtualDir CloseCallback\n");
- #ifdef UPNP_HAS_REQUEST_COOKIES
-- UpnpVirtualDir_set_CloseCallback([](IN UpnpWebFileHandle f, IN const void* cookie, IN const void* requestCookie) -> int {
-+ UpnpVirtualDir_set_CloseCallback([](UpnpWebFileHandle f, const void* cookie, const void* requestCookie) -> int {
- #else
-- UpnpVirtualDir_set_CloseCallback([](IN UpnpWebFileHandle f, IN const void* cookie) -> int {
-+ UpnpVirtualDir_set_CloseCallback([](UpnpWebFileHandle f, const void* cookie) -> int {
- #endif
- //log_debug("%p close()\n", f);
- Ref<IOHandler> handler((IOHandler*)f);
-diff --git a/src/url_request_handler.cc b/src/url_request_handler.cc
-index aeadfc8a..3193c782 100644
---- a/src/url_request_handler.cc
-+++ b/src/url_request_handler.cc
-@@ -58,7 +58,7 @@ URLRequestHandler::URLRequestHandler()
- {
- }
-
--void URLRequestHandler::getInfo(IN const char *filename, OUT UpnpFileInfo *info)
-+void URLRequestHandler::getInfo(const char *filename, UpnpFileInfo *info)
- {
- log_debug("start\n");
-
-@@ -154,9 +154,9 @@ void URLRequestHandler::getInfo(IN const char *filename, OUT UpnpFileInfo *info)
- /// \todo transcoding for get_info
- }
-
--Ref<IOHandler> URLRequestHandler::open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN String range)
-+Ref<IOHandler> URLRequestHandler::open(const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ String range)
- {
- int objectID;
- String mimeType;
-diff --git a/src/url_request_handler.h b/src/url_request_handler.h
-index 8125b56b..52d75302 100644
---- a/src/url_request_handler.h
-+++ b/src/url_request_handler.h
-@@ -39,10 +39,10 @@
- class URLRequestHandler : public RequestHandler {
- public:
- URLRequestHandler();
-- virtual void getInfo(IN const char *filename, OUT UpnpFileInfo *info);
-- virtual zmm::Ref<IOHandler> open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN zmm::String range);
-+ virtual void getInfo(const char *filename, UpnpFileInfo *info);
-+ virtual zmm::Ref<IOHandler> open(const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ zmm::String range);
- };
-
- #endif // __URL_REQUEST_HANDLER_H__
-diff --git a/src/util/headers.h b/src/util/headers.h
-index 97915cc6..6374c7a8 100644
---- a/src/util/headers.h
-+++ b/src/util/headers.h
-@@ -37,7 +37,7 @@ class Headers {
- public:
- void addHeader(zmm::String header, zmm::String value);
- void addHeader(const std::string& header, const std::string& value);
-- void writeHeaders(IN UpnpFileInfo *fileInfo) const;
-+ void writeHeaders(UpnpFileInfo *fileInfo) const;
-
- private:
- std::unique_ptr<std::map<std::string, std::string>> headers;
-diff --git a/src/web_request_handler.cc b/src/web_request_handler.cc
-index 070f9bf1..8683b928 100644
---- a/src/web_request_handler.cc
-+++ b/src/web_request_handler.cc
-@@ -89,7 +89,7 @@ String WebRequestHandler::renderXMLHeader()
- return _("<?xml version=\"1.0\" encoding=\"") + DEFAULT_INTERNAL_CHARSET + "\"?>\n";
- }
-
--void WebRequestHandler::getInfo(IN const char *filename, OUT UpnpFileInfo *info)
-+void WebRequestHandler::getInfo(const char *filename, UpnpFileInfo *info)
- {
- this->filename = filename;
-
-@@ -122,7 +122,7 @@ void WebRequestHandler::getInfo(IN const char *filename, OUT UpnpFileInfo *info)
- headers.writeHeaders(info);
- }
-
--Ref<IOHandler> WebRequestHandler::open(IN enum UpnpOpenFileMode mode)
-+Ref<IOHandler> WebRequestHandler::open(enum UpnpOpenFileMode mode)
- {
- root = Ref<Element>(new Element(_("root")));
-
-@@ -219,9 +219,9 @@ Ref<IOHandler> WebRequestHandler::open(IN enum UpnpOpenFileMode mode)
- return RefCast(io_handler, IOHandler);
- }
-
--Ref<IOHandler> WebRequestHandler::open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN String range)
-+Ref<IOHandler> WebRequestHandler::open(const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ String range)
- {
- this->filename = filename;
- this->mode = mode;
-diff --git a/src/web_request_handler.h b/src/web_request_handler.h
-index 42a38060..b9069884 100644
---- a/src/web_request_handler.h
-+++ b/src/web_request_handler.h
-@@ -101,7 +101,7 @@ protected:
- /// \brief Prepares the output buffer and calls the process function.
- /// \return IOHandler
- /// \todo Genych, chto tut proishodit, ya tolkom che to ne wrubaus??
-- zmm::Ref<IOHandler> open(IN enum UpnpOpenFileMode mode);
-+ zmm::Ref<IOHandler> open(enum UpnpOpenFileMode mode);
-
- /// \brief add the ui update ids from the given session as xml tags to the given root element
- /// \param root the xml element to add the elements to
-@@ -135,15 +135,15 @@ public:
- /// dynamic XML) we do not know the size of the data. This is of course different
- /// for the FileRequestHandler, where we can check the file and return all
- /// information about it.
-- void getInfo(IN const char *filename, OUT UpnpFileInfo *info) override;
-+ void getInfo(const char *filename, UpnpFileInfo *info) override;
-
- /// \brief Decodes the parameters from the filename (URL) and calls the internal open() function.
- /// \param filename The requested URL
- /// \param mode either UPNP_READ or UPNP_WRITE
- /// \return the appropriate IOHandler for the request.
-- zmm::Ref<IOHandler> open(IN const char* filename,
-- IN enum UpnpOpenFileMode mode,
-- IN zmm::String range) override;
-+ zmm::Ref<IOHandler> open(const char* filename,
-+ enum UpnpOpenFileMode mode,
-+ zmm::String range) override;
-
- /// \brief This method must be overridden by the subclasses that actually process the given request.
- virtual void process() = 0;
---
-2.26.2
-
diff --git a/testing/gerbera/APKBUILD b/testing/gerbera/APKBUILD
deleted file mode 100644
index 4a6ac19cf8f..00000000000
--- a/testing/gerbera/APKBUILD
+++ /dev/null
@@ -1,113 +0,0 @@
-# Contributor: Mike Crute <mike@crute.us>
-# Maintainer: Mike Crute <mike@crute.us>
-pkgname=gerbera
-pkgver=1.4.0
-pkgrel=0
-pkgdesc="A UPnP Media Server"
-url="https://gerbera.io"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="
- cmake
- curl-dev
- duktape-dev
- e2fsprogs-dev
- exiv2-dev
- ffmpeg-dev
- ffmpegthumbnailer-dev
- file-dev
- fmt-dev
- gnu-libiconv-dev
- inotify-tools-dev
- libexif-dev
- libmatroska-dev
- libupnp-dev
- pugixml-dev
- spdlog-dev
- sqlite-dev
- taglib-dev
- zlib-dev
- "
-checkdepends="
- gtest-dev
- gmock
- "
-install="$pkgname.pre-install $pkgname.post-deinstall"
-subpackages="$pkgname-doc"
-pkgusers="$pkgname"
-pkggroups="$pkgname"
-#
-# Patches
-#
-# disable-git-test.patch:
-# Patch removes check for git info in server version output. This assumes
-# that the binary was built within a git repo which is not the case for
-# releases. This test will never work for us.
-#
-# 0001-Remove-IN-and-OUT-dropped-upstream.patch: (Drop for release after 1.4.0)
-# Removes IN and OUT macros defined by older versions of libupnp. This
-# was fixed in upstream shortly after the 1.4.0 release. We can drop this
-# patch after the next upstream gerbera release.
-#
-# upnp-updates.patch: (Drop for release after 1.4.0)
-# Disables some tests that don't work with the latest version of libupnp.
-# Upstream has very seriously overhauled these tests and there's noting
-# feasible to pull forward. We can drop this patch after the next
-# upstream gerbera release.
-#
-source="gerbera-$pkgver.tar.gz::https://github.com/gerbera/gerbera/archive/v$pkgver.tar.gz
- disable-git-test.patch
- 0001-Remove-IN-and-OUT-dropped-upstream.patch
- upnp-updates.patch
- $pkgname.initd
- $pkgname.confd"
-
-build() {
- cmake -B build \
- -Wno-dev \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DWITH_SYSTEMD=0 \
- -DWITH_TESTS=1 \
- -DWITH_JS=1 \
- -DWITH_CURL=1 \
- -DWITH_TAGLIB=1 \
- -DWITH_MAGIC=1 \
- -DWITH_MATROSKA=1 \
- -DWITH_AVCODEC=1 \
- -DWITH_EXIF=1 \
- -DWITH_EXIV2=1 \
- -DWITH_FFMPEGTHUMBNAILER=1 \
- -DWITH_INOTIFY=1
-
- make -C build
-}
-
-check() {
- make -C build test
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-
- "$builddir/build"/gerbera --create-config > config.xml
- sed -i 's#<home>.*#<home>/var/lib/gerbera</home>#' config.xml
-
- install -dm750 -o $pkgusers -g $pkggroups \
- "$pkgdir/var/lib/$pkgname" \
- "$pkgdir/var/log/$pkgname" \
- "$pkgdir/etc/$pkgname"
- install -m755 -D "$srcdir/$pkgname.initd" \
- "$pkgdir/etc/init.d/$pkgname"
- install -m644 -D "$srcdir/$pkgname.confd" \
- "$pkgdir/etc/conf.d/$pkgname"
- install -m644 -D "config.xml" \
- "$pkgdir/etc/$pkgname/config.xml"
-}
-
-sha512sums="989716bc60bc7e171448e18aff58d8f17dbbed28ca31cfeaa7dc0e6f1cb646da88041deff6481e15ba398090a01f07e00f74b12e84c423b7ca5b82eb97b918cd gerbera-1.4.0.tar.gz
-9037fbdc18b7af1492352abccaacca39193b16332040b02b72513ce31e47fbd56220b6c0c62a207e04fd56c4d15d5bd92910506968a4d70a66e133ba49eaeeaa disable-git-test.patch
-47e1953c49ceae3eeaea50b4ecd2bf44d4da2286c315a3bdbfcbe7e7fc8500e2f27438acebe16f6a72a0c97efd7b8a1b185282d73b12e730e1a8fbec19c18046 0001-Remove-IN-and-OUT-dropped-upstream.patch
-e134dee2080c21a39120999d215b0ec36890bed9283a1460d9750e2b21908b3283db09d33c5ff445ae779559b5486f8c81c590c1dbde77ae3d5bb900d694d17f upnp-updates.patch
-8ae265dd283705802d138dc014d592362b0b95030eee0999bfcf6058fa656f215a5dc11e2b548459300750be0f9e6c3d0f5047714a6fc16eeb430c40aff8d35b gerbera.initd
-392d7e964b0328778847f871e88ffd475ddac99b6cf8c8ded4825eb2f970e084db692552790a1b30ff96f59eabcd9fff50164d9dedf328badab95a1cec833c02 gerbera.confd"
diff --git a/testing/gerbera/disable-git-test.patch b/testing/gerbera/disable-git-test.patch
deleted file mode 100644
index 3a2bc2f4240..00000000000
--- a/testing/gerbera/disable-git-test.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/test/test_server/test_main.cc.orig
-+++ b/test/test_server/test_main.cc
-@@ -48,7 +48,7 @@
- ASSERT_THAT(output.c_str(), HasSubstr(expectedOutput.c_str()));
- }
-
--TEST_F(ServerTest, ServerOutputsCompileInformationIncludingGit) {
-+TEST_F(ServerTest, DISABLED_ServerOutputsCompileInformationIncludingGit) {
- std::stringstream ss;
- ss << CMAKE_BINARY_DIR << DIR_SEPARATOR << "gerbera --compile-info 2>&1";
- std::string cmd = ss.str();
diff --git a/testing/gerbera/gerbera.confd b/testing/gerbera/gerbera.confd
deleted file mode 100644
index a8fbc699553..00000000000
--- a/testing/gerbera/gerbera.confd
+++ /dev/null
@@ -1,27 +0,0 @@
-# /etc/conf.d/gerbera
-
-# Enable debug log output.
-#DEBUG=no
-
-# Interface to bind to, for example eth0, this can be specified instead of the
-# IP address.
-#BIND_INTERFACE=eth0
-
-# Specify the server port that will be used for the web user interface, for
-# serving media and for UPnP requests, minimum allowed value is 49152. If this
-# option is omitted a default port will be chosen, however, in this case it is
-# possible that the port will change upon server restart.
-#BIND_PORT=49152
-
-# The server will bind to the given IP address, currently we can not bind to
-# multiple interfaces so binding to 0.0.0.0 is not be possible.
-#BIND_IP=0.0.0.0
-
-# The location of the config file
-#CONFIG="/etc/gerbera/config.xml"
-
-# Specify the user/group gerbera should run as
-#G_USER="gerbera"
-#G_GROUP="gerbera"
-
-# vim: ft=gentoo-conf-d
diff --git a/testing/gerbera/gerbera.initd b/testing/gerbera/gerbera.initd
deleted file mode 100644
index 8356a0a2122..00000000000
--- a/testing/gerbera/gerbera.initd
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/sbin/openrc-run
-
-name="Gerbera"
-configfile="${CONFIG:-/etc/gerbera/config.xml}"
-start_stop_daemon_args="--user ${G_USER:-gerbera} --group ${j_GROUP:-gerbera}"
-pidfile="/run/gerbera/gerbera.pid"
-command=/usr/bin/gerbera
-command_args="-c $configfile -l /var/log/gerbera/gerbera.log"
-command_background=true
-
-depend() {
- need net
-}
-
-start_pre() {
- if ! [ -f "${configfile}" ]; then
- /usr/sbin/gerbera --create-config > "${configfile}"
- fi
- if yesno "${DEBUG}"; then
- command_args="$command_args -D"
- fi
- if [ ! -z "${BIND_INTERFACE}" ]; then
- command_args="$command_args -e ${BIND_INTERFACE}"
- fi
- if [ ! -z "${BIND_PORT}" ]; then
- command_args="$command_args -p ${BIND_PORT}"
- fi
- if [ ! -z "${BIND_IP}" ]; then
- command_args="$command_args -i ${BIND_IP}"
- fi
-
- checkpath --owner ${G_USER:-gerbera}:${G_GROUP:-gerbera} \
- --directory ${pidfile%/*}
-}
diff --git a/testing/gerbera/gerbera.post-deinstall b/testing/gerbera/gerbera.post-deinstall
deleted file mode 100644
index febefd4b9cd..00000000000
--- a/testing/gerbera/gerbera.post-deinstall
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-deluser gerbera 2>/dev/null
-delgroup gerbera 2>/dev/null
-
-exit 0
diff --git a/testing/gerbera/gerbera.pre-install b/testing/gerbera/gerbera.pre-install
deleted file mode 100644
index e99c58b9597..00000000000
--- a/testing/gerbera/gerbera.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-addgroup -S gerbera 2>/dev/null
-adduser -S -D -H -h /var/run/gerbera -s /sbin/nologin -G gerbera \
- -g gerbera gerbera 2>/dev/null
-
-exit 0
diff --git a/testing/gerbera/upnp-updates.patch b/testing/gerbera/upnp-updates.patch
deleted file mode 100644
index 4cc06cfeadf..00000000000
--- a/testing/gerbera/upnp-updates.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/src/util/headers.cc
-+++ b/src/util/headers.cc
-@@ -81,7 +81,7 @@
- {
- #ifdef UPNP_HAS_EXTRA_HEADERS_LIST
- if (headers != nullptr) {
-- auto head = const_cast<list_head*>(UpnpFileInfo_get_ExtraHeadersList(fileInfo));
-+ auto head = const_cast<UpnpListHead*>(UpnpFileInfo_get_ExtraHeadersList(fileInfo));
- for (auto iter : *headers) {
- UpnpExtraHeaders* h = UpnpExtraHeaders_new();
- UpnpExtraHeaders_set_resp(h, formatHeader(iter, false).c_str());
---- a/test/test_handler/test_http_protocol_helper.cc
-+++ b/test/test_handler/test_http_protocol_helper.cc
-@@ -27,9 +27,9 @@
- std::string out;
-
- UpnpExtraHeaders* extra;
-- list_head* pos;
-- auto head = const_cast<list_head*>(UpnpFileInfo_get_ExtraHeadersList(info));
-- list_for_each(pos, head) {
-+ UpnpListHead* pos;
-+ auto head = const_cast<UpnpListHead*>(UpnpFileInfo_get_ExtraHeadersList(info));
-+ for (pos = UpnpListBegin(head); pos != UpnpListEnd(head); pos = UpnpListNext(head, pos)) {
- extra = (UpnpExtraHeaders *)pos;
- out += UpnpExtraHeaders_get_resp(extra);
- out += "\r\n";
-@@ -61,7 +61,7 @@
- EXPECT_STREQ(GET_HEADERS(info), "Content-Disposition: attachment; filename=\"file.mp3\"\r\n");
- }
-
--TEST_F(HeadersHelperTest, MultipleHeaders) {
-+TEST_F(HeadersHelperTest, DISABLED_MultipleHeaders) {
- std::string header = "Content-Disposition";
- std::string value = "attachment; filename=\"file.mp3\"";
- std::string header2 = "Accept-Ranges";
-@@ -74,7 +74,7 @@
- EXPECT_STREQ(GET_HEADERS(info), "Content-Disposition: attachment; filename=\"file.mp3\"\r\nAccept-Ranges: bytes\r\n");
- }
-
--TEST_F(HeadersHelperTest, MultipleHeadersSingleCarriageNewLine) {
-+TEST_F(HeadersHelperTest, DISABLED_MultipleHeadersSingleCarriageNewLine) {
- std::string header = "Content-Disposition";
- std::string value = "attachment; filename=\"file.mp3\"";
- std::string header2 = "Accept-Ranges";
-@@ -87,7 +87,7 @@
- EXPECT_STREQ(GET_HEADERS(info), "Content-Disposition: attachment; filename=\"file.mp3\"\r\nAccept-Ranges: bytes\r\n");
- }
-
--TEST_F(HeadersHelperTest, MultiBothCarriageNewLine) {
-+TEST_F(HeadersHelperTest, DISABLED_MultiBothCarriageNewLine) {
- std::string header = "Content-Disposition";
- std::string value = "attachment; filename=\"file.mp3\"\r\n";
- std::string header2 = "Accept-Ranges";
-
diff --git a/testing/getdns/APKBUILD b/testing/getdns/APKBUILD
new file mode 100644
index 00000000000..2bab66adcdb
--- /dev/null
+++ b/testing/getdns/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Johannes Heimansberg <git@jhe.dedyn.io>
+# Maintainer: Johannes Heimansberg <git@jhe.dedyn.io>
+pkgname=getdns
+pkgver=1.7.3
+pkgrel=0
+pkgdesc="Modern asynchronous DNS API"
+url="https://getdnsapi.net"
+arch="all"
+license="BSD-3-Clause"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+makedepends="cmake
+ libidn2-dev
+ openssl-dev
+ samurai
+ unbound-dev
+ yaml-dev
+"
+checkdepends="check-dev"
+source="$pkgname-$pkgver.tar.gz::https://getdnsapi.net/dist/getdns-$pkgver.tar.gz"
+options="!check" # The DNS lookups executed in the tests time out due to lack of connectivity
+
+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 \
+ -DBUILD_LIBEVENT2=OFF \
+ -DBUILD_LIBUV=OFF \
+ -DBUILD_LIBEV=OFF \
+ -DBUILD_STUBBY=OFF \
+ -DENABLE_UNBOUND_EVENT_API=OFF \
+ -DENABLE_STATIC=OFF \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d5725a24378b6fe0018daefdaba5565d2d4d51109ef66609fc34270a0a69accb95f5f895d0cdfc5caca51d2ec586db126f367439f05aed12507395af26739e2f getdns-1.7.3.tar.gz
+"
diff --git a/testing/getmail6/APKBUILD b/testing/getmail6/APKBUILD
new file mode 100644
index 00000000000..2a4021ca7ff
--- /dev/null
+++ b/testing/getmail6/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
+pkgname=getmail6
+pkgver=6.18.14
+pkgrel=1
+pkgdesc="mail retriever with support for POP3, IMAP4 and SDPS"
+url="https://getmail6.org/"
+arch="noarch"
+license="GPL-2.0-only"
+checkdepends="py3-pytest"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+depends="python3"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://github.com/getmail6/getmail6/archive/v$pkgver/getmail-$pkgver.tar.gz"
+
+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 -v test/test.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ mv "$pkgdir/usr/share/doc/getmail-$pkgver" "$pkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+58450e3080d5be2c5338a156e854dd37c3c9e5d471de4875f76b179a5e981ceeb9ccdc5e3c0a353da60a7fbb00340aae86acd783ad32a4b743b15cf9cd23ca4b getmail-6.18.14.tar.gz
+"
diff --git a/testing/getssl/APKBUILD b/testing/getssl/APKBUILD
index 4f520258c6f..dcc7ced4121 100644
--- a/testing/getssl/APKBUILD
+++ b/testing/getssl/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Leo Unglaub <leo@unglaub.at>
pkgname=getssl
-pkgver=2.14
+pkgver=2.48
pkgrel=0
pkgdesc="A pure shell implementation of the LetsEncrypt ACME protocol."
url="https://github.com/srvrco/getssl"
@@ -13,4 +13,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/srvrco/getssl/archive/v$pkgv
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="8d81ede16ab9a1021a51b125d63542ebd8b9312ef7bcc137d43e4dddc9058c3241731a9499734d0ec5ba2a23f1ad936f4e840d2e0af7e00681d3b05d969a7976 getssl-2.14.tar.gz"
+
+sha512sums="
+c1b3e8556a0df3c0a23b12dde2add335aece5ddfdb8678bb87ce0ebae8acdb909b337770c3a01d5439b61887e3ce30f5e3d90cdaa9355e22ba4c96fe1066cfcd getssl-2.48.tar.gz
+"
diff --git a/testing/getting-things-gnome/APKBUILD b/testing/getting-things-gnome/APKBUILD
index 484d81cdbf7..7e829e21642 100644
--- a/testing/getting-things-gnome/APKBUILD
+++ b/testing/getting-things-gnome/APKBUILD
@@ -1,30 +1,22 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=getting-things-gnome
-_commit=2143d904f2e7076099f477540348bc6552817f20
-pkgver=20200521
-pkgrel=0
+pkgver=0.6
+pkgrel=3
pkgdesc="A personal tasks and TODO-list items organizier for GNOME, inspired by the Getting Things Done methodology"
url="https://wiki.gnome.org/Apps/GTG"
arch="noarch"
license="GPL-3.0-or-later"
-depends="python3 py3-xdg py3-dbus py3-gobject3 py3-liblarch"
-makedepends="py3-setuptools gettext meson"
-checkdepends="py3-nose py3-pyflakes py3-mock py3-pycodestyle xvfb-run"
+depends="python3 py3-cairo py3-xdg py3-dbus py3-gobject3 py3-liblarch py3-lxml"
+makedepends="py3-setuptools py3-pytest gettext gtksourceview4 itstool meson"
+checkdepends="py3-nose py3-pyflakes py3-mock py3-pycodestyle py3-caldav py3-vobject xvfb-run"
subpackages="$pkgname-doc $pkgname-lang"
-source="$pkgname-$pkgver.tar.gz::https://github.com/getting-things-gnome/gtg/archive/$_commit.tar.gz
- dont-require-py3-gettext.patch"
-builddir="$srcdir/gtg-$_commit"
+source="$pkgname-$pkgver.tar.gz::https://github.com/getting-things-gnome/gtg/archive/v$pkgver.tar.gz"
+builddir="$srcdir/gtg-$pkgver"
build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- output
- ninja -C output
+ abuild-meson output
+ meson compile -C output
}
check() {
@@ -32,8 +24,9 @@ check() {
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="e030d610de8307afe64cdaadef2d8ff79bf2d06bd3042d9aa0b79203421df01ac511737c654d87f56efc6b144971f72c440c31325fa9f2de98019cd54e3750af getting-things-gnome-20200521.tar.gz
-33eb3623839c6de450915cf6886ddf9301b2f9823ea634a1083bfd83388f01c7093999d0eeff842b6b20e5713e980ddcb5450fbd272876764424e578fccdb687 dont-require-py3-gettext.patch"
+sha512sums="
+68a5229c17b85b87a9a134a08e5e86fbf24d28d6ce55e848c17eef650620d6f56172ee495cb113f4279b34c19127ae03981e2feec5a39dc51be49e387e458600 getting-things-gnome-0.6.tar.gz
+"
diff --git a/testing/getting-things-gnome/dont-require-py3-gettext.patch b/testing/getting-things-gnome/dont-require-py3-gettext.patch
deleted file mode 100644
index 6041faaf2bd..00000000000
--- a/testing/getting-things-gnome/dont-require-py3-gettext.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream: No
-Reason: We build py3 without gettext support, so these functions dont
-exist
-diff --git a/GTG/core/translations.py b/GTG/core/translations.py
-index 6ff63a7..866e1be 100644
---- a/GTG/core/translations.py
-+++ b/GTG/core/translations.py
-@@ -30,9 +30,7 @@ GETTEXT_DOMAIN = 'gtg'
- LOCALE_PATH = gettext.bindtextdomain(GETTEXT_DOMAIN)
-
- gettext.bindtextdomain(GETTEXT_DOMAIN, LOCALE_PATH)
--locale.bindtextdomain(GETTEXT_DOMAIN, LOCALE_PATH)
- gettext.textdomain(GETTEXT_DOMAIN)
--locale.textdomain(GETTEXT_DOMAIN)
-
- translation = gettext.translation(GETTEXT_DOMAIN, LOCALE_PATH, fallback=True)
-
diff --git a/testing/gf2x/APKBUILD b/testing/gf2x/APKBUILD
new file mode 100644
index 00000000000..ee7fe1907ce
--- /dev/null
+++ b/testing/gf2x/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=gf2x
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="library for multiplying polynomials over the binary field"
+url="https://gitlab.inria.fr/gf2x/gf2x/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="autoconf automake libtool"
+subpackages="$pkgname-dev"
+source="https://gitlab.inria.fr/gf2x/gf2x/-/archive/gf2x-$pkgver/gf2x-gf2x-$pkgver.tar.bz2"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+ autoreconf -i
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-fft-interface
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="2872d8ddeb1fd3966f8711573d6c090975fcd9acfa302f7537ebfa3350e83af224bfd18a33ea1106d81ab900c96413e413c04ba506d8bf928bb92b670c24d857 gf2x-gf2x-1.3.0.tar.bz2"
diff --git a/testing/gfan/APKBUILD b/testing/gfan/APKBUILD
new file mode 100644
index 00000000000..7661edd867f
--- /dev/null
+++ b/testing/gfan/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=gfan
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="Software package for computing Grobner fans and tropical varieties"
+url="http://home.imf.au.dk/jensen/software/gfan/gfan.html"
+# armhf, armv7, x86: hang during tests
+arch="all !armhf !armv7 !x86"
+license="GPL-2.0-or-later"
+makedepends="cddlib-dev gmp-dev"
+source="http://home.imf.au.dk/jensen/software/gfan/gfan$pkgver.tar.gz"
+builddir="$srcdir/$pkgname$pkgver"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+ sed -i 's/#include "cdd/#include "cddlib/' src/*.cpp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make PREFIX="$pkgdir"/usr install
+}
+
+sha512sums="
+5961820750af2522fdc1a86c0254742c3b003607a8707df5d6cd5f0bc6461e4d3db3b1d3cb537979d57eb9dff387974a58aeb91d0b5246d7c701cadc5a2cf4cf gfan0.6.2.tar.gz
+"
diff --git a/testing/gforth/APKBUILD b/testing/gforth/APKBUILD
index c8589b77c23..d950bfd506a 100644
--- a/testing/gforth/APKBUILD
+++ b/testing/gforth/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=gforth
pkgver=0.7.3
-pkgrel=2
+pkgrel=3
pkgdesc="Fast and portable implementation of the ANS Forth language"
url="http://www.gnu.org/software/gforth/"
arch="all !x86" # build fail on x86
diff --git a/testing/ghidra/APKBUILD b/testing/ghidra/APKBUILD
new file mode 100644
index 00000000000..b13b5d86a9c
--- /dev/null
+++ b/testing/ghidra/APKBUILD
@@ -0,0 +1,116 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=ghidra
+pkgver=11.0
+pkgrel=0
+pkgdesc="A Cross Platform and Open Source Electronics Design Automation Suite"
+url="https://ghidra-sre.org/"
+# only x86_64 and aarch64 support provided by upstream
+# aarch64: jdk segfaults
+arch="x86_64"
+license="Apache-2.0"
+makedepends="
+ bash
+ gradle
+ protoc
+ unzip
+ "
+# Note: Ghidra refuses to launch with only JRE installed, so
+# please do not move JDK to makedepends
+depends="
+ openjdk17-jdk
+ wmname
+ "
+subpackages="
+ $pkgname-tutorials
+ $pkgname-doc
+ "
+source="
+ https://github.com/NationalSecurityAgency/ghidra/archive/refs/tags/Ghidra_${pkgver}_build.tar.gz
+ use-system-protoc.patch
+ ghidra.sh
+ ghidra.desktop
+ "
+# This contains binary executables in the exercises section of the
+# documentation. We don't want to spoil the fun by stripping them.
+options="net !check"
+builddir="$srcdir/ghidra-Ghidra_${pkgver}_build"
+
+prepare() {
+ default_prepare
+
+ local protoc_ver
+ protoc_ver="$(protoc --version | grep -o '[0-9][.0-9]*')"
+
+ # protoc version needs to match protobuf runtime version
+ sed \
+ -e "s/com.google.protobuf:protobuf-java:3.17.3/com.google.protobuf:protobuf-java:$protoc_ver/g" \
+ -i Ghidra/Debug/Debugger-gadp/build.gradle
+ sed \
+ -e "s!lib/protobuf-java-3.17.3.jar!lib/protobuf-java-$protoc_ver.jar!g" \
+ -i Ghidra/Debug/Debugger-gadp/Module.manifest
+}
+
+build() {
+ export GRADLE_USER_HOME="$srcdir"/.gradle
+ gradle --parallel -I gradle/support/fetchDependencies.gradle init
+ gradle --parallel buildGhidra
+}
+
+package() {
+ # impedance matching between different arch naming conventions:
+ local arch
+ case "$CARCH" in
+ aarch64)
+ arch="arm_64"
+ ;;
+ *)
+ arch="$CARCH"
+ ;;
+ esac
+
+ install -d "$pkgdir"/usr/share "$pkgdir"/usr/bin
+ unzip \
+ -u "build/dist/ghidra_${pkgver}_DEV_$(date +"%Y%m%d")_linux_$arch.zip" \
+ -d "$pkgdir"/usr/share
+ mv "$pkgdir"/usr/share/ghidra_${pkgver}_DEV "$pkgdir"/usr/share/ghidra
+
+ # remove precompiled 7zip native libs for x86_64 Mac, Windows, and glibc
+ # Linux. Ghidra is falling back to using a java implementation on musl
+ # anyway.
+ rm -rf "$pkgdir"/usr/share/ghidra/Ghidra/Features/FileFormats/data/sevenzipnativelibs
+
+ install -Dm755 "$srcdir"/ghidra.sh "$pkgdir"/usr/bin/ghidra
+ ln -s /usr/share/ghidra/support/analyzeHeadless "$pkgdir"/usr/bin/ghidra-headless
+ install -Dm644 \
+ Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png \
+ "$pkgdir"/usr/share/icons/hicolor/64x64/apps/$pkgname.png
+ install -Dm 644 $srcdir/ghidra.desktop -t $pkgdir/usr/share/applications
+}
+
+tutorials() {
+ pkgdesc="Ghidra tutorial files"
+ # dependency dump:
+ # openjdk17-jdk
+ # wmname
+ # so:libgcc_s.so.1
+ # so:libstdc++.so.6
+ # the tutorials subpackage contains exmaples linked against glibc
+ # which are ment to be decompiled by ghidra
+ options="!strip !tracedeps"
+
+ amove usr/share/ghidra/docs/GhidraClass
+}
+
+doc() {
+ default_doc
+
+ amove usr/share/ghidra/docs
+}
+
+sha512sums="
+9c6ad91a71ea49ce90bff422f45d2ad076898d618614b7aded6dfabf8660ccf05fc6579e4f41d50e49ea6c1dc88c03260ff63210d411e405f88aa78bb2cce29b Ghidra_11.0_build.tar.gz
+f0d87188e4b90cf64f86130cb479dea640328f2f91d27f0af085fcb9262255cdc34f50b997365c2d6ca3d97b98ac62587e89f48cbd29d4ce6cca0b1b76ec39c7 use-system-protoc.patch
+b075d5ac821bf4ed052acada45b882876a5493ab03cfa4d0537c4c5f27b666aa2b37de9ff561313b025f9d16b06b9ad17d59287ecf205c02798dbca2bc04925f ghidra.sh
+a85b8b3276e2ff4ed8bda6470c15d02711ebaa48463c775cd2a36549fad738e9fe073dab80f8c57646490ffc959cdc27e9d25b1dc2a5810b0ddb249b5dc99a9b ghidra.desktop
+"
diff --git a/testing/ghidra/ghidra.desktop b/testing/ghidra/ghidra.desktop
new file mode 100644
index 00000000000..f5d46dc9f4a
--- /dev/null
+++ b/testing/ghidra/ghidra.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Ghidra
+Comment=Software reverse engineering framework
+Exec=ghidra
+Icon=ghidra
+Categories=Utility;
+Terminal=false
diff --git a/testing/ghidra/ghidra.sh b/testing/ghidra/ghidra.sh
new file mode 100644
index 00000000000..efa7ffde842
--- /dev/null
+++ b/testing/ghidra/ghidra.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+wmname LG3D
+AWT_TOOLKIT=MToolkit exec /usr/share/ghidra/ghidraRun "$@"
diff --git a/testing/ghidra/use-system-protoc.patch b/testing/ghidra/use-system-protoc.patch
new file mode 100644
index 00000000000..8dc0809b737
--- /dev/null
+++ b/testing/ghidra/use-system-protoc.patch
@@ -0,0 +1,97 @@
+diff --git a/Ghidra/Debug/Debugger-rmi-trace/build.gradle b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
+index 40fbc17ab06..17de41dc95c 100644
+--- a/Ghidra/Debug/Debugger-rmi-trace/build.gradle
++++ b/Ghidra/Debug/Debugger-rmi-trace/build.gradle
+@@ -44,12 +44,8 @@ task generateProtoPy {
+ ext.outdir = file("build/generated/source/proto/main/py")
+ outputs.dir(outdir)
+ inputs.files(src)
+- dependsOn(configurations.protocArtifact)
+ doLast {
+- def exe = configurations.protocArtifact.first()
+- if (!isCurrentWindows()) {
+- exe.setExecutable(true)
+- }
++ def exe = "protoc"
+ exec {
+ commandLine exe, "--python_out=$outdir", "-I$srcdir"
+ args src
+diff --git a/Ghidra/Debug/Framework-AsyncComm/Module.manifest b/Ghidra/Debug/Framework-AsyncComm/Module.manifest
+index 89174007c96..582747e6540 100644
+--- a/Ghidra/Debug/Framework-AsyncComm/Module.manifest
++++ b/Ghidra/Debug/Framework-AsyncComm/Module.manifest
+@@ -1 +1 @@
+-MODULE FILE LICENSE: lib/protobuf-java-3.21.8.jar BSD-3-GOOGLE
++MODULE FILE LICENSE: lib/protobuf-java-3.24.4.jar BSD-3-GOOGLE
+diff --git a/Ghidra/Debug/Framework-AsyncComm/build.gradle b/Ghidra/Debug/Framework-AsyncComm/build.gradle
+index a84e1568088..5ff4fa75eee 100644
+--- a/Ghidra/Debug/Framework-AsyncComm/build.gradle
++++ b/Ghidra/Debug/Framework-AsyncComm/build.gradle
+@@ -22,7 +22,7 @@ apply plugin: 'eclipse'
+ eclipse.project.name = 'Debug Framework-AsyncComm'
+
+ dependencies {
+- api 'com.google.protobuf:protobuf-java:3.21.8'
++ api 'com.google.protobuf:protobuf-java:3.24.4'
+ api project(':Generic')
+ api project(':Graph')
+ api project(':ProposedUtils')
+diff --git a/gradle/debugger/hasProtobuf.gradle b/gradle/debugger/hasProtobuf.gradle
+index 23b4ce74bb1..0d9194f53d1 100644
+--- a/gradle/debugger/hasProtobuf.gradle
++++ b/gradle/debugger/hasProtobuf.gradle
+@@ -17,40 +17,10 @@
+ id 'com.google.protobuf' version '0.8.10'
+ }*/
+
+-configurations {
+- allProtocArtifacts
+- protocArtifact
+-}
+-
+ def platform = getCurrentPlatformName()
+
+
+ dependencies {
+- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe'
+- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe'
+- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:linux-aarch_64@exe'
+- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe'
+- allProtocArtifacts 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe'
+-
+- if (isCurrentWindows()) {
+- protocArtifact 'com.google.protobuf:protoc:3.21.8:windows-x86_64@exe'
+- }
+- if (isCurrentLinux()) {
+- if (platform.endsWith("x86_64")) {
+- protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-x86_64@exe'
+- }
+- else {
+- protocArtifact 'com.google.protobuf:protoc:3.21.8:linux-aarch_64@exe'
+- }
+- }
+- if (isCurrentMac()) {
+- if (platform.endsWith("x86_64")) {
+- protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-x86_64@exe'
+- }
+- else {
+- protocArtifact 'com.google.protobuf:protoc:3.21.8:osx-aarch_64@exe'
+- }
+- }
+ }
+
+ /*protobuf {
+@@ -67,12 +37,8 @@ task generateProto {
+ ext.outdir = file("build/generated/source/proto/main/java")
+ outputs.dir(outdir)
+ inputs.files(src)
+- dependsOn(configurations.protocArtifact)
+ doLast {
+- def exe = configurations.protocArtifact.first()
+- if (!isCurrentWindows()) {
+- exe.setExecutable(true)
+- }
++ def exe = "protoc"
+ exec {
+ commandLine exe, "--java_out=$outdir", "-I$srcdir"
+ args src
diff --git a/testing/ghq/APKBUILD b/testing/ghq/APKBUILD
new file mode 100644
index 00000000000..f90e63f53ca
--- /dev/null
+++ b/testing/ghq/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=ghq
+pkgver=1.5.0
+pkgrel=2
+pkgdesc="CLI to manage remote repository clones"
+url="https://github.com/x-motemen/ghq"
+arch="all"
+license="MIT"
+makedepends="asciidoctor go"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/x-motemen/ghq/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.revision=AlpineLinux"
+
+ sed -i '1 s/^.*$/= ghq(1)/' README.adoc
+ asciidoctor -b manpage README.adoc
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 ghq -t "$pkgdir"/usr/bin/
+
+ install -Dvm644 ghq.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dvm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+
+ install -Dm644 misc/bash/_ghq \
+ "$pkgdir"/usr/share/bash-completion/completions/ghq
+ install -Dm644 misc/zsh/_ghq \
+ "$pkgdir"/usr/share/zsh/site-functions/_ghq
+}
+
+sha512sums="
+b626b86bbad033252902c2f6978d767e33d51e5f5643c39daea930b65b253824ff9b777688d36bc178117bcbe40de6d2d9f3322f38ed1d195d2eacf5e15ec625 ghq-1.5.0.tar.gz
+"
diff --git a/testing/ginac/APKBUILD b/testing/ginac/APKBUILD
new file mode 100644
index 00000000000..ccbec4f223e
--- /dev/null
+++ b/testing/ginac/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=ginac
+pkgver=1.8.7
+pkgrel=1
+pkgdesc="C++ library for symbolic computations"
+url="https://www.ginac.de/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="cmake cln-dev flex bison readline-dev python3 texinfo samurai"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.ginac.de/ginac-$pkgver.tar.bz2"
+
+case "$CARCH" in
+ x86) options="!check";; # 36 - check_cra (Subprocess aborted)
+esac
+
+build() {
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_PREFIX_PATH=/usr \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build --target all test_suite
+}
+
+check() {
+ ctest --test-dir build --output-on-failure -j${JOBS:-2}
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+29a5dbe1fa8a40668a32eb0065d1f676b074222d76ed70a05c5841a4be92c4b1a019ae3fc820e1c7007e641ef8ef94d00adab901f89673df0d372a4c8af8e51a ginac-1.8.7.tar.bz2
+"
diff --git a/testing/ginger/APKBUILD b/testing/ginger/APKBUILD
index 35d9f897429..f44183745e6 100644
--- a/testing/ginger/APKBUILD
+++ b/testing/ginger/APKBUILD
@@ -2,20 +2,24 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=ginger
pkgver=2.4.0
-pkgrel=2
+pkgrel=7
pkgdesc="WoK plugin for host management"
url="https://kimchi-project.github.io/ginger"
-arch="noarch !mips64" # blocked by wok
+arch="noarch !s390x !riscv64" # blocked by wok
license="Apache LGPL-2.1"
depends="py3-configobj py3-pyparted wok"
makedepends="automake autoconf libtool
python3-dev gettext-dev py3-pyflakes libxslt"
options="!check" # depends on unit2
-subpackages="$pkgname-lang"
+subpackages="$pkgname-lang $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/kimchi-project/ginger/archive/$pkgver.tar.gz"
-build() {
+prepare() {
+ default_prepare
sh ./autogen.sh --system
+}
+
+build() {
./configure \
--prefix=/usr \
--sysconfdir=/etc \
diff --git a/testing/gingerbase/APKBUILD b/testing/gingerbase/APKBUILD
index 6d82dbb2976..7252fb20d73 100644
--- a/testing/gingerbase/APKBUILD
+++ b/testing/gingerbase/APKBUILD
@@ -2,16 +2,16 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=gingerbase
pkgver=2.3.0
-pkgrel=2
+pkgrel=7
pkgdesc="Gingerbase: basic host management for WoK"
url="https://kimchi-project.github.io/gingerbase/"
-arch="noarch !mips !mips64" # blocked by wok
+arch="noarch !s390x !riscv64" # blocked by wok
license="AGPL-2.1"
depends="py3-configobj py3-pyparted wok"
makedepends="automake autoconf libtool
python3-dev gettext-dev py3-pyflakes libxslt"
options="!check" # depends on unit2
-subpackages="$pkgname-lang"
+subpackages="$pkgname-lang $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/kimchi-project/gingerbase/archive/$pkgver.tar.gz"
prepare() {
diff --git a/testing/git-bug/APKBUILD b/testing/git-bug/APKBUILD
new file mode 100644
index 00000000000..5509907b472
--- /dev/null
+++ b/testing/git-bug/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=git-bug
+pkgver=0.8.0
+pkgrel=11
+pkgdesc="Distributed, offline-first bug tracker embedded in git, with bridges"
+url="https://github.com/MichaelMure/git-bug"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ go
+ npm
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="
+ git-bug-$pkgver.tar.gz::https://github.com/MichaelMure/git-bug/archive/v$pkgver.tar.gz
+ fix-tests.patch
+ Makefile.patch
+ "
+options="net"
+
+export GIT_COMMIT=v$pkgver
+export GIT_LAST_TAG=v$pkgver
+export GIT_EXACT_TAG=v$pkgver
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+
+ npm ci --prefix webui
+}
+
+build() {
+ make pack-webui
+ make
+}
+
+check() {
+ make test
+ cd webui
+ make test
+}
+
+package() {
+ install -Dm755 git-bug "$pkgdir"/usr/bin/git-bug
+
+ install -Dm 644 misc/completion/bash/git-bug "$pkgdir"/usr/share/bash-completion/completions/git-bug
+ install -Dm 644 misc/completion/fish/git-bug "$pkgdir"/usr/share/fish/vendor_completions.d/git-bug.fish
+ install -Dm 644 misc/completion/zsh/git-bug "$pkgdir"/usr/share/zsh/site-functions/_git-bug
+
+ install -Dm 644 doc/man/*.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+85456c916f72c0d2764ccd09418d2db91a9aeed48182de12d6aaec7cd021c55ec323822e4aa9347739cfe232ff2287e1bc7adca37ff2574d822b78fc75121d83 git-bug-0.8.0.tar.gz
+54788f03849ea4022e942355024458008590f8b08c5d5e5a4b1255a461e4b3cce7242d97c948b6411613a3d6cd8b576ca58a49858a00206a91f6f83ca76f32fc fix-tests.patch
+fed7c606b146976cf2c3fc4c2849ae81e8f1dd17505863dcf5dcbafd4715a96d3a1984124e27c70b6a6aaf09f22a5b957fdfde7725132c8b775bdf5a6bce0a24 Makefile.patch
+"
diff --git a/testing/git-bug/Makefile.patch b/testing/git-bug/Makefile.patch
new file mode 100644
index 00000000000..131d1db3973
--- /dev/null
+++ b/testing/git-bug/Makefile.patch
@@ -0,0 +1,14 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,8 @@
+ all: build
+
+-GIT_COMMIT:=$(shell git rev-list -1 HEAD)
+-GIT_LAST_TAG:=$(shell git describe --abbrev=0 --tags)
+-GIT_EXACT_TAG:=$(shell git name-rev --name-only --tags HEAD)
++GIT_COMMIT?=$(shell git rev-list -1 HEAD)
++GIT_LAST_TAG?=$(shell git describe --abbrev=0 --tags)
++GIT_EXACT_TAG?=$(shell git name-rev --name-only --tags HEAD)
+ UNAME_S := $(shell uname -s)
+ XARGS:=xargs -r
+ ifeq ($(UNAME_S),Darwin)
diff --git a/testing/git-bug/fix-tests.patch b/testing/git-bug/fix-tests.patch
new file mode 100644
index 00000000000..515bdcfb538
--- /dev/null
+++ b/testing/git-bug/fix-tests.patch
@@ -0,0 +1,40 @@
+See:
+
+* https://github.com/MichaelMure/git-bug/issues/926
+* https://github.com/MichaelMure/git-bug/pull/984
+
+diff --git a/commands/add_test.go b/commands/add_test.go
+index 077995a6..d603e79a 100644
+--- a/commands/add_test.go
++++ b/commands/add_test.go
+@@ -4,12 +4,29 @@ import (
+ "strings"
+ "testing"
+
++ "github.com/fatih/color"
+ "github.com/stretchr/testify/require"
+ )
+
+ func newTestEnvAndBug(t *testing.T) (*testEnv, string) {
+ t.Helper()
+
++ // The Go testing framework either uses os.Stdout directly or a buffer
++ // depending on how the command is initially launched. This results
++ // in os.Stdout.Fd() sometimes being a Terminal, and other times not
++ // being a Terminal which determines whether the ANSI library sends
++ // escape sequences to colorize the text.
++ //
++ // The line below disables all colorization during testing so that the
++ // git-bug command output is consistent in all test scenarios.
++ //
++ // See:
++ // - https://github.com/MichaelMure/git-bug/issues/926
++ // - https://github.com/golang/go/issues/57671
++ // - https://github.com/golang/go/blob/f721fa3be9bb52524f97b409606f9423437535e8/src/cmd/go/internal/test/test.go#L1180-L1208
++ // - https://github.com/golang/go/issues/34877
++ color.NoColor = true
++
+ testEnv, _ := newTestEnvAndUser(t)
+ opts := addOptions{
+ title: "this is a bug title",
+
diff --git a/testing/git-cola/APKBUILD b/testing/git-cola/APKBUILD
index 8dd54c0828b..818a9245240 100644
--- a/testing/git-cola/APKBUILD
+++ b/testing/git-cola/APKBUILD
@@ -1,29 +1,36 @@
# Contributor: Kiyoshi Aman <kiyoshi.aman@gmail.com>
-# Maintainer: Kiyoshi Aman <kiyoshi.aman@gmail.com>
+# Maintainer:
pkgname=git-cola
-pkgver=3.7
-pkgrel=0
-pkgdesc="GUI application for git built on Python & Qt5"
+pkgver=4.4.1
+pkgrel=1
+pkgdesc="GUI application for git built on Python & Qt"
url="https://git-cola.github.io"
-arch="noarch !armhf" # qtdeclarative
+arch="noarch !armhf !riscv64" # py3-qt6
license="GPL-2.0-or-later"
-depends="python3 py3-qt5"
-checkdepends="py3-nose"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc"
+depends="python3 py3-qt6 py3-qtpy"
+makedepends="py3-setuptools py3-setuptools_scm py3-gpep517 py3-installer py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-doc $pkgname-pyc"
source="git-cola-$pkgver.tar.gz::https://github.com/git-cola/git-cola/archive/v$pkgver.tar.gz"
# testsuite hangs after a while.
options="!check"
build() {
- make PYTHON=python3
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 1
}
+
check() {
- make PYTHON=python3 test
+ pytest
}
package() {
- make PYTHON=python3 prefix=/usr DESTDIR="$pkgdir" install
+ python3 -m installer -d "$pkgdir" \
+ .dist/git_cola*.whl
}
-sha512sums="30d01603fab14c0888eb842583e792139250211db92ea1431ea1462b66fc04e307daf9c679b8a8d0a2bfdade970a2c858f34b857b9e8eb78c0b4a3d798877b80 git-cola-3.7.tar.gz"
+sha512sums="
+3e4e1cb8cd148b34e663c72c6b3d1e887815b5a86558ffbf13a19a5dfd3fb6b37c123290dc514b6f098893587dc67ca34424aaad5482768795e353f0efe92797 git-cola-4.4.1.tar.gz
+"
diff --git a/testing/git-extras/APKBUILD b/testing/git-extras/APKBUILD
new file mode 100644
index 00000000000..0810196e54b
--- /dev/null
+++ b/testing/git-extras/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=git-extras
+pkgver=7.1.0
+pkgrel=0
+pkgdesc="Little git extras"
+url="https://github.com/tj/git-extras"
+arch="noarch"
+license="MIT"
+depends="bash cmd:column git"
+subpackages="$pkgname-bash-completion $pkgname-doc"
+source="https://github.com/tj/git-extras/archive/$pkgver/git-extras-$pkgver.tar.gz"
+
+package() {
+ # Avoid annoying interactive prompts if an alias is in your gitconfig.
+ GIT_CONFIG=/dev/null \
+ make install DESTDIR="$pkgdir" PREFIX=/usr SYSCONFDIR=/etc install
+
+ rm -Rf "$pkgdir"/etc/bash-completion
+
+ install -D -m644 etc/bash_completion.sh \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+
+ # ZSH and Fish completions don't work when autoloaded.
+ install -D -m644 etc/git-extras-completion.zsh \
+ "$pkgdir"/usr/share/$pkgname/completions.zsh
+ install -D -m644 etc/git-extras.fish \
+ "$pkgdir"/usr/share/$pkgname/completions.fish
+}
+
+sha512sums="
+955161b40c48ab92578efe487db78ea8d0fff499aaf8d4da2b13e8194a7f9297a84542c8642dd3a7c61c9a4d1e92342b5c586d341e4a003c9838d5e9731127b9 git-extras-7.1.0.tar.gz
+"
diff --git a/testing/git-filter-repo/10-no-version-test.patch b/testing/git-filter-repo/10-no-version-test.patch
new file mode 100644
index 00000000000..234ba6faae8
--- /dev/null
+++ b/testing/git-filter-repo/10-no-version-test.patch
@@ -0,0 +1,17 @@
+Link: https://github.com/newren/git-filter-repo/issues/513
+
+--- a/t/t9390-filter-repo.sh
++++ b/t/t9390-filter-repo.sh
+@@ -1800,12 +1800,6 @@
+ )
+ '
+
+-test_expect_success '--version' '
+- git filter-repo --version >actual &&
+- git hash-object ../../git-filter-repo | cut -c 1-12 >expect &&
+- test_cmp expect actual
+-'
+-
+ test_expect_success 'empty author ident' '
+ test_create_repo empty_author_ident &&
+ (
diff --git a/testing/git-filter-repo/20-git-filter-repo.patch b/testing/git-filter-repo/20-git-filter-repo.patch
new file mode 100644
index 00000000000..fe9dfa70dcf
--- /dev/null
+++ b/testing/git-filter-repo/20-git-filter-repo.patch
@@ -0,0 +1,17 @@
+--- a/git-filter-repo
++++ b/git-filter-repo
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python3
++#!/usr/bin/python3
+
+ """
+ git-filter-repo filters git repositories, similar to git filter-branch, BFG
+@@ -64,7 +64,7 @@
+
+ def setup_gettext():
+ TEXTDOMAIN="git-filter-repo"
+- podir = os.environ.get("GIT_TEXTDOMAINDIR") or "@@LOCALEDIR@@"
++ podir = os.environ.get("GIT_TEXTDOMAINDIR") or "/usr/share/locale"
+ if not os.path.isdir(podir): # pragma: no cover
+ podir = None # Python has its own fallback; use that
+
diff --git a/testing/git-filter-repo/APKBUILD b/testing/git-filter-repo/APKBUILD
new file mode 100644
index 00000000000..0bfe8937a25
--- /dev/null
+++ b/testing/git-filter-repo/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Lennart Jablonka <humm@ljabl.com>
+# Maintainer: Lennart Jablonka <humm@ljabl.com>
+pkgname=git-filter-repo
+pkgver=2.38.0
+pkgrel=0
+pkgdesc="quickly rewrite git repository history"
+url="https://github.com/newren/git-filter-repo"
+arch="noarch"
+license="MIT"
+source="
+ 10-no-version-test.patch
+ 20-git-filter-repo.patch
+ https://github.com/newren/git-filter-repo/releases/download/v$pkgver/git-filter-repo-$pkgver.tar.xz
+"
+depends="python3 git"
+checkdepends="bash perl rsync"
+subpackages="$pkgname-doc"
+
+check() {
+ ./t/run_tests
+}
+
+package() {
+ install -Dm755 git-filter-repo "$pkgdir"/usr/bin/git-filter-repo
+ local site=$(python3 -c 'import site; print(site.getsitepackages()[0])')
+ mkdir -p "$pkgdir$site"
+ ln -s -f /usr/bin/git-filter-repo "$pkgdir$site"/git_filter_repo.py
+ install -Dm644 Documentation/man1/git-filter-repo.1 "$pkgdir"/usr/share/man/man1/git-filter-repo.1
+}
+
+sha512sums="
+4dafe4458d2f7416d80269c38318f43eda1c389d9abbbdf9f7d4e8762917d774de119cd8792c192ee8e033e5381857450330ecd3320d87e5fc94423859642863 10-no-version-test.patch
+6591ce9c93efbb1f534784daf2867cf03da43aeda70e25861f26cf31bd638cc3ecccacae14462917749ad0eabcfec386d800ad08558c980d1c6263b84ebd015f 20-git-filter-repo.patch
+786c27c1952a5e3625c924e71958cfd61d9065d32754a3e957f258767ccb5b147778c5d499eb82c7c1bf36a2f5a50b1cde372ebbc927aeeedbd713e5ab6563d8 git-filter-repo-2.38.0.tar.xz
+"
diff --git a/testing/git-flow/APKBUILD b/testing/git-flow/APKBUILD
deleted file mode 100644
index 547870f3483..00000000000
--- a/testing/git-flow/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=git-flow
-pkgver=1.12.3
-pkgrel=0
-pkgdesc="Git extension to provide a high-level branching model"
-url="https://github.com/petervanderdoes/gitflow-avh"
-arch="noarch"
-license="LGPL-2.1-or-later"
-depends="git"
-options="!check" # has no tests
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/petervanderdoes/gitflow-avh/archive/$pkgver.tar.gz
- add-destdir-support.patch
- fix-busybox-readlink.patch"
-builddir="$srcdir/gitflow-avh-$pkgver"
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="807cd36de7f5c9b4a7b28101de5ea8cfcbf528ff76578e4914c788b8098c7d3d91f8c19a3274e124ee7f7b4bdb6efdc5de2b74e09f374b71ae685beaa86e3e5a git-flow-1.12.3.tar.gz
-8206b38f5ed843519b33ebcdcc125c6dc6d6e9b6726919a1ec7becb52f22db125a3e58e3724ea95a4cf926cad8bb8cda5c163498d2de7ebb489d5b6985dc3cec add-destdir-support.patch
-c82b619470f3ecf14809e8ae742607b426de044e4a454f423563faba995b07f36bcf99ce8081dbc2a4f9342f23922b4df5d04993b93e10671e33af1d92b01076 fix-busybox-readlink.patch"
diff --git a/testing/git-flow/add-destdir-support.patch b/testing/git-flow/add-destdir-support.patch
deleted file mode 100644
index b55776f83ef..00000000000
--- a/testing/git-flow/add-destdir-support.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- old/Makefile
-+++ new/Makefile
-@@ -26,7 +26,7 @@
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #
-
--prefix=/usr/local
-+prefix=$(DESTDIR)/usr
-
- datarootdir=$(prefix)/share
- docdir=$(datarootdir)/doc/gitflow
diff --git a/testing/git-flow/fix-busybox-readlink.patch b/testing/git-flow/fix-busybox-readlink.patch
deleted file mode 100644
index 48647529dd0..00000000000
--- a/testing/git-flow/fix-busybox-readlink.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- old/git-flow
-+++ new/git-flow
-@@ -46,7 +46,7 @@
- # git-flow file is a symbolic link
- case $(uname -s) in
- Linux)
-- export GITFLOW_DIR=$(dirname "$(readlink -e "$0")")
-+ export GITFLOW_DIR=$(dirname "$(readlink -f "$0")")
- ;;
- FreeBSD|OpenBSD|NetBSD)
- export FLAGS_GETOPT_CMD='/usr/local/bin/getopt'
diff --git a/testing/git-quick-stats/APKBUILD b/testing/git-quick-stats/APKBUILD
new file mode 100644
index 00000000000..5dae38c7061
--- /dev/null
+++ b/testing/git-quick-stats/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=git-quick-stats
+pkgver=2.5.4
+pkgrel=0
+pkgdesc="Access various statistics in git repository"
+url="https://git-quick-stats.sh"
+arch="noarch"
+license="MIT"
+depends="bash git util-linux ncurses"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/arzzen/git-quick-stats/archive/refs/tags/2.5.4.tar.gz"
+
+check() {
+ # git commands needed because tests fail in a non git-versioned dir
+ # and expects at least one commit
+ git init
+ git config --local user.name "abuild"
+ git config --local user.email "abuild@abuild"
+ git add .
+ git commit -m "abuild"
+ bash tests/commands_test.sh
+}
+
+package() {
+ install -Dm0755 git-quick-stats -t "$pkgdir"/usr/bin/
+ install -Dm0644 git-quick-stats.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+9e30c65a238d6b07005c73274c89ea1a6f0284cb6b190187ba22a2531a0a7f24293fc61bbd3d664141a23eb3d61bd444be92738eba90c07877801c72a5d7271e git-quick-stats-2.5.4.tar.gz
+"
diff --git a/testing/git-review/APKBUILD b/testing/git-review/APKBUILD
deleted file mode 100644
index d0f9cbeafb3..00000000000
--- a/testing/git-review/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=git-review
-pkgver=1.28.0
-pkgrel=2
-pkgdesc="A git command for submitting branches to Gerrit"
-url="https://github.com/openstack-infra/git-review"
-arch="noarch"
-license="Apache-2.0"
-depends="git python3 py3-requests py3-idna py3-urllib3 py3-chardet py3-certifi py3-setuptools"
-makedepends="python3-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/openstack-infra/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="21a71172b474ca0446f58d567e2c1b37059af3b680a3e441bcf94607d05f1fefa932ecef95328e1d77f0b71928477fd2878806ea26d2c4da030f281de15a210d git-review-1.28.0.tar.gz"
diff --git a/testing/git-revise/APKBUILD b/testing/git-revise/APKBUILD
new file mode 100644
index 00000000000..2386c957d86
--- /dev/null
+++ b/testing/git-revise/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer:
+pkgname=git-revise
+pkgver=0.7.0
+pkgrel=4
+pkgdesc="Handy tool for doing efficient in-memory commit rebases & fixups with git"
+url="https://github.com/mystor/git-revise"
+arch="noarch"
+license="MIT"
+depends="python3 git"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-pytest-xdist py3-tox"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mystor/git-revise/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # tests fail to import self when not system installed
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+2c61df0854b20319286aa6bf663b3a1a1bcddb4b8aa144ce7850fe5a32a26ad861898d00b423a7fe7ace60b7964149470ad2c144eed2b3e1119df0c34acbe04d git-revise-0.7.0.tar.gz
+"
diff --git a/testing/git-secret/APKBUILD b/testing/git-secret/APKBUILD
index 6d98e578863..8b9ac61e626 100644
--- a/testing/git-secret/APKBUILD
+++ b/testing/git-secret/APKBUILD
@@ -1,19 +1,16 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-#
-# Note: git-secret is very badly designed, I'll replace this abuild once
-# I find or write something better.
pkgname=git-secret
-pkgver=0.3.2
+pkgver=0.5.0
pkgrel=0
pkgdesc="A bash-tool to store your private data inside a git repository"
url="https://git-secret.io/"
arch="noarch"
license="MIT"
-depends="bash gnupg"
+depends="bash gawk gnupg"
checkdepends="bats"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sobolevn/git-secret/archive/v$pkgver.tar.gz"
+source="https://github.com/sobolevn/git-secret/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
options="!check" # does not work in a container w/o tty
build() {
@@ -21,11 +18,13 @@ build() {
}
check() {
- make test
+ make test -j1
}
package() {
make PREFIX="$pkgdir/usr" install
}
-sha512sums="201c7d965457c0f60905251241d89031e26ca9fac13fced0321f09c4f4f7911cd96de3970c1ed308736c89f322fc487e8d7d3ddc77958aded48c2a202996a09b git-secret-0.3.2.tar.gz"
+sha512sums="
+c685ee4d7b7d247c37805fc3a16c431eff7f6740899d65f9178514b99e84ff83cb59330e6fb73da627f00bb60d0cca76da8b31004fcc3926dcee3fed15d65b85 git-secret-0.5.0.tar.gz
+"
diff --git a/testing/git2json/APKBUILD b/testing/git2json/APKBUILD
index 1a57202c1b6..a4bf4131111 100644
--- a/testing/git2json/APKBUILD
+++ b/testing/git2json/APKBUILD
@@ -1,23 +1,28 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=git2json
pkgver=0.2.3
-pkgrel=2
+pkgrel=8
pkgdesc="Convert git logs to JSON for easier analysis"
url="https://github.com/tarmstrong/git2json"
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/g/git2json/git2json-$pkgver.tar.gz"
-
+options="!check" # no tests included
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="3bac219c79b25a4e0e41c250214131911a7e207c1908a81316eab546df538e03dda2446f8c74a337f502deacf61c61cc76062f85f2313d29d3b6c5059447582d git2json-0.2.3.tar.gz"
+sha512sums="
+3bac219c79b25a4e0e41c250214131911a7e207c1908a81316eab546df538e03dda2446f8c74a337f502deacf61c61cc76062f85f2313d29d3b6c5059447582d git2json-0.2.3.tar.gz
+"
diff --git a/testing/gitoxide/APKBUILD b/testing/gitoxide/APKBUILD
new file mode 100644
index 00000000000..32eb8bd4b76
--- /dev/null
+++ b/testing/gitoxide/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=gitoxide
+pkgver=0.14.0
+pkgrel=1
+pkgdesc="An idiomatic, lean, fast & safe pure Rust implementation of Git"
+url="https://github.com/Byron/gitoxide"
+# armhf, armv7, ppc64le, s390x: fails to build crate sha1-asm
+# riscv64: zlib-ng-dev is not available yet
+arch="all !armhf !armv7 !ppc64le !riscv64 !s390x"
+license="Apache-2.0 OR MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ curl-dev
+ zlib-dev
+ zlib-ng-dev
+ "
+checkdepends="
+ bash
+ git-daemon
+ xz-dev
+ "
+source="https://github.com/Byron/gitoxide/archive/v$pkgver/gitoxide-$pkgver.tar.gz
+ system-curl.patch
+ zlib-ng.patch
+ skip-online-tests.patch
+ "
+
+options="!check" # tests need update to new version
+
+# unwind is required to assure that destructors are called, important for
+# tempfiles (comment from Cargo.toml).
+export CARGO_PROFILE_RELEASE_PANIC="unwind"
+
+_cargo_opts="--frozen --no-default-features --features lean"
+
+
+prepare() {
+ default_prepare
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided libz-ng.
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ z-ng = { rustc-link-lib = ["z-ng"], rustc-cfg = ["zng"] }
+ EOF
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build $_cargo_opts --release
+}
+
+check() {
+ # CI - skip tests that require TTY.
+ CI=1 make journey-tests
+}
+
+package() {
+ install -D -m755 target/release/gix -t "$pkgdir"/usr/bin/
+ install -D -m755 target/release/ein -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2bd4c20a71ef3f37e37ef54d271fa5df9f43b7b396923e581ce1ae5f9b87969eabdc300267f365aeb5c06f83f2ccc68e2f709bee006ee54a6e65774f93979642 gitoxide-0.14.0.tar.gz
+e512f0b9904b57b181a5d203ffbed85bd2aed6db44b255bc7e370ec6ef94d0d6dbe8f62b334e8d7b980728cc10f7a3fd694487a73031e8a953604d2e2f1d9192 system-curl.patch
+ad2b931dfcecbf099d3b6c1abc4e9522016f60486b20f23a73bac55fe3061aa97236e877c53a1b1709495885e5f820a721c9d1a86dd99d72e09e21758135b50e zlib-ng.patch
+eabb202211c28ed6209522f39b6ae32e0f51c9ed71943c41a18550f236064f676b1b88d6ff0baa5490c7e76bea43ba06f04653824a6af50355d4eb6cfc92cf9e skip-online-tests.patch
+"
diff --git a/testing/gitoxide/skip-online-tests.patch b/testing/gitoxide/skip-online-tests.patch
new file mode 100644
index 00000000000..e064ae63336
--- /dev/null
+++ b/testing/gitoxide/skip-online-tests.patch
@@ -0,0 +1,20 @@
+--- a/tests/journey/gix.sh
++++ b/tests/journey/gix.sh
+@@ -205,7 +205,7 @@
+ )
+ )
+ )
+- (on_ci
++ (CI= on_ci
+ if test "$kind" = "max"; then
+ (with "https:// protocol"
+ (with "version 1"
+@@ -584,7 +584,7 @@
+ }
+ )
+ fi
+- (on_ci
++ (CI= on_ci
+ if [[ "$kind" = "max" ]]; then
+ (with "https:// protocol"
+ (with "version 1"
diff --git a/testing/gitoxide/system-curl.patch b/testing/gitoxide/system-curl.patch
new file mode 100644
index 00000000000..400e7f14f80
--- /dev/null
+++ b/testing/gitoxide/system-curl.patch
@@ -0,0 +1,27 @@
+--- a/git-transport/Cargo.toml
++++ b/git-transport/Cargo.toml
+@@ -70 +70 @@
+-curl = { version = "0.4", optional = true, features = ["static-curl", "static-ssl", "zlib-ng-compat"] }
++curl = { version = "0.4", optional = true }
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2230,13 +2230,4 @@
+
+ [[package]]
+-name = "openssl-src"
+-version = "111.22.0+1.1.1q"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8f31f0d509d1c1ae9cada2f9539ff8f37933831fd5098879e482aa687d659853"
+-dependencies = [
+- "cc",
+-]
+-
+-[[package]]
+ name = "openssl-sys"
+ version = "0.9.74"
+@@ -2247,5 +2238,4 @@
+ "cc",
+ "libc",
+- "openssl-src",
+ "pkg-config",
+ "vcpkg",
diff --git a/testing/gitoxide/zlib-ng.patch b/testing/gitoxide/zlib-ng.patch
new file mode 100644
index 00000000000..b1570e11879
--- /dev/null
+++ b/testing/gitoxide/zlib-ng.patch
@@ -0,0 +1,52 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 20 Aug 2022 00:09:00 +0200
+Subject: [PATCH] Build with native zlib-ng (no compat)
+
+Use zlib-ng (libz-ng-sys) with native API (no compat mode) that can
+co-exist with system libz (loaded by e.g. libcurl).
+
+--- a/git-features/Cargo.toml
++++ b/git-features/Cargo.toml
+@@ -46,2 +46,4 @@
+ zlib-rust-backend = ["flate2/rust_backend"]
++## Use zlib-ng (libz-ng-sys) with native API (no compat mode) that can co-exist with system libz.
++zlib-ng = ["flate2/zlib-ng"]
+
+--- a/git-repository/Cargo.toml
++++ b/git-repository/Cargo.toml
+@@ -66,3 +66,2 @@
+ "git-features/parallel",
+- "git-features/zlib-ng-compat",
+ "git-pack/pack-cache-lru-static",
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -33 +33 @@
+-fast = ["git-features/parallel", "git-features/fast-sha1", "git-features/zlib-ng-compat", "git-repository/max-performance"]
++fast = ["git-features/parallel", "git-features/fast-sha1", "git-features/zlib-ng", "git-repository/max-performance"]
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -911,6 +911,7 @@
+ checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
+ dependencies = [
+ "crc32fast",
++ "libz-ng-sys",
+ "libz-sys",
+ "miniz_oxide",
+ ]
+@@ -2005,6 +2006,16 @@
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
++]
++
++[[package]]
++name = "libz-ng-sys"
++version = "1.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4399ae96a9966bf581e726de86969f803a81b7ce795fcd5480e640589457e0f2"
++dependencies = [
++ "cmake",
++ "libc",
+ ]
+
+ [[package]]
diff --git a/testing/glacier-calc/APKBUILD b/testing/glacier-calc/APKBUILD
deleted file mode 100644
index 2189590779a..00000000000
--- a/testing/glacier-calc/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=glacier-calc
-pkgver=0.3.1
-pkgrel=0
-pkgdesc="The Glacier calculator"
-url="https://github.com/nemomobile-ux/glacier-calc"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative
-license="BSD-3-Clause"
-depends="qtquickcontrols-nemo"
-makedepends="qt5-qtbase-dev qt5-qtdeclarative-dev libglacierapp-dev"
-source="https://github.com/nemomobile-ux/glacier-calc/archive/$pkgver/glacier-calc-$pkgver.tar.gz
- remove-mapplauncherd-dep.patch
- "
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="511dbf9649052df3c5bd17eb2194b946de121f1f90e310d8183fb8340e3f9b7444df66fd645b4f2528dc0ad35e33d6a9777fee1fec30174fa734607a182b6652 glacier-calc-0.3.1.tar.gz
-dab23cc69c8ad82cf3e02a60f724bd1ad2ff7a630f834328da9a4cb3c5373de519a278e7c181840d0ca3ee9258c514b4aa2bf61fbed1821d6145fb5a9649c7a3 remove-mapplauncherd-dep.patch"
diff --git a/testing/glacier-calc/remove-mapplauncherd-dep.patch b/testing/glacier-calc/remove-mapplauncherd-dep.patch
deleted file mode 100644
index b335e332681..00000000000
--- a/testing/glacier-calc/remove-mapplauncherd-dep.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/glacier-calc.desktop b/glacier-calc.desktop
-index 7253b4b..f9658a7 100644
---- a/glacier-calc.desktop
-+++ b/glacier-calc.desktop
-@@ -2,6 +2,6 @@
- Type=Application
- Name=Calculator
- Categories=Applications
--Exec=invoker --type=nemomobile -s /usr/bin/glacier-calc
-+Exec=/usr/bin/glacier-calc -w
- Icon=/usr/share/glacier-calc/images/icon-app-calculator.png
-
diff --git a/testing/glfw-wayland/APKBUILD b/testing/glfw-wayland/APKBUILD
new file mode 100644
index 00000000000..d9717e7a25a
--- /dev/null
+++ b/testing/glfw-wayland/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: rfaa <rfaa@rfaa.se>
+pkgname=glfw-wayland
+pkgver=3.3.8
+pkgrel=3
+pkgdesc="Multi-platform library for OpenGL and Vulkan application development (Wayland)"
+options="!check" # tests requires a working wayland session
+url="https://www.glfw.org/"
+arch="all !armhf" # Limited by extra-cmake-modules
+license="Zlib"
+depends_dev="
+ extra-cmake-modules
+ libxkbcommon-dev
+ linux-headers
+ mesa-dev
+ wayland-dev
+ wayland-protocols
+ "
+makedepends="$depends_dev cmake samurai"
+subpackages="$pkgname-dbg $pkgname-dev"
+source="https://github.com/glfw/glfw/releases/download/$pkgver/glfw-$pkgver.zip
+ request-order.patch
+ silence-gigaspam.patch
+ "
+builddir="$srcdir/glfw-$pkgver"
+
+provides="glfw=$pkgver-r$pkgrel"
+replaces="glfw"
+
+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=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DGLFW_USE_WAYLAND=ON \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+62baab460f22724ed2c63cf71475377f19c0cd086f4e64d46bdd4c8c38035917c7f66c71d27837ba5159ca323a900a6cfa2693e8b06091e73be838a509b278a1 glfw-3.3.8.zip
+326a44497b10b9e9aff3e0bf9e350f63d1a84a8a098fa1c50d1571012a48050546e6b14fa0af9a8bb8ec93be5c5e219f8b88676e5e3f9ea67b5466c48b474a04 request-order.patch
+297b7a444748ba496640553a5aec320a23e7e27e076e2c566801c745631c3cb5d8453c9f28010cd088798f78b2c98867c436627fb776666c04745761edb72b38 silence-gigaspam.patch
+"
diff --git a/testing/glfw-wayland/request-order.patch b/testing/glfw-wayland/request-order.patch
new file mode 100644
index 00000000000..4bb04c8cc5a
--- /dev/null
+++ b/testing/glfw-wayland/request-order.patch
@@ -0,0 +1,49 @@
+Patch-Source: https://github.com/glfw/glfw/pull/2348
+--
+From c4d510cf34aec044eeb912054b8892d325d64c6d Mon Sep 17 00:00:00 2001
+From: lo-v-ol <gh@oleg.uk>
+Date: Mon, 5 Jun 2023 08:56:15 +0100
+Subject: [PATCH] EGL: make a request for client version before no_error
+
+mesa egl requires major version >= 2 for GL_CONTEXT_OPENGL_NO_ERROR_KHR,
+so fulfill the request to set client version beforehand.
+
+without this, a few pieces of software in the wild get
+
+ libEGL debug: bad context attribute 0x31b3
+ libEGL debug: EGL user error 0x3004 (EGL_BAD_ATTRIBUTE) in eglCreateContext
+
+when running glfw under wayland.
+---
+ src/egl_context.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/egl_context.c b/src/egl_context.c
+index 58d9557..5c662cb 100644
+--- a/src/egl_context.c
++++ b/src/egl_context.c
+@@ -546,18 +546,18 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window,
+ flags |= EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR;
+ }
+
+- if (ctxconfig->noerror)
+- {
+- if (_glfw.egl.KHR_create_context_no_error)
+- setAttrib(EGL_CONTEXT_OPENGL_NO_ERROR_KHR, GLFW_TRUE);
+- }
+-
+ if (ctxconfig->major != 1 || ctxconfig->minor != 0)
+ {
+ setAttrib(EGL_CONTEXT_MAJOR_VERSION_KHR, ctxconfig->major);
+ setAttrib(EGL_CONTEXT_MINOR_VERSION_KHR, ctxconfig->minor);
+ }
+
++ if (ctxconfig->noerror)
++ {
++ if (_glfw.egl.KHR_create_context_no_error)
++ setAttrib(EGL_CONTEXT_OPENGL_NO_ERROR_KHR, GLFW_TRUE);
++ }
++
+ if (mask)
+ setAttrib(EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, mask);
+
diff --git a/testing/glfw-wayland/silence-gigaspam.patch b/testing/glfw-wayland/silence-gigaspam.patch
new file mode 100644
index 00000000000..e8a47e8c85b
--- /dev/null
+++ b/testing/glfw-wayland/silence-gigaspam.patch
@@ -0,0 +1,28 @@
+this prints a log line for every single client call..
+for applications that call this, it ends up calling this a hundred times a second and printing the same log line
+--
+diff --git a/src/wl_window.c b/src/wl_window.c
+index 53cbd33..cb2a2fb 100644
+--- a/src/wl_window.c
++++ b/src/wl_window.c
+@@ -1959,16 +1959,16 @@ void _glfwPlatformGetWindowPos(_GLFWwindow* window, int* xpos, int* ypos)
+ // A Wayland client is not aware of its position, so just warn and leave it
+ // as (0, 0)
+
+- _glfwInputError(GLFW_PLATFORM_ERROR,
+- "Wayland: Window position retrieval not supported");
++ //_glfwInputError(GLFW_PLATFORM_ERROR,
++ // "Wayland: Window position retrieval not supported");
+ }
+
+ void _glfwPlatformSetWindowPos(_GLFWwindow* window, int xpos, int ypos)
+ {
+ // A Wayland client can not set its position, so just warn
+
+- _glfwInputError(GLFW_PLATFORM_ERROR,
+- "Wayland: Window position setting not supported");
++ //_glfwInputError(GLFW_PLATFORM_ERROR,
++ // "Wayland: Window position setting not supported");
+ }
+
+ void _glfwPlatformGetWindowSize(_GLFWwindow* window, int* width, int* height)
diff --git a/testing/glmark2/APKBUILD b/testing/glmark2/APKBUILD
index 49ac8656419..646983d1646 100644
--- a/testing/glmark2/APKBUILD
+++ b/testing/glmark2/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname=glmark2
-pkgver=2020.04
+pkgver=2023.01
pkgrel=0
pkgdesc="OpenGL 2.0 and ES 2.0 benchmark"
url="https://github.com/glmark2/glmark2"
@@ -9,10 +9,7 @@ arch="all"
license="GPL-3.0-or-later"
subpackages="$pkgname-doc"
makedepends="python3 eudev-dev libjpeg-turbo-dev libpng-dev mesa-dev wayland-dev wayland-protocols"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/glmark2/glmark2/archive/$pkgver.tar.gz
- py3-compat.patch
- "
+source="$pkgname-$pkgver.tar.gz::https://github.com/glmark2/glmark2/archive/$pkgver.tar.gz"
options="!check" # no testsuite
prepare() {
@@ -28,5 +25,6 @@ package() {
python3 ./waf install --destdir="$pkgdir"
}
-sha512sums="68d72403ab5c6b4562faf43ae94159e4b8dcb697f62ea9dc3eac5634a3e22b19e14e215a081ae2a39e5db77e6f0f40d5ceb0281962600526d08121a197105a80 glmark2-2020.04.tar.gz
-f03c39b1bc26d3a38a54f1cf029d4714d502e4f4be8e89a9a86aa116c16f07226714f73e00e99eab9529f20532d47a734f9ebab71bc02d7829a986c91f3f2dab py3-compat.patch"
+sha512sums="
+5aaad56bb341e9c09d8dc78ac8d07d9af39f2414a158fd6e7c2717db2427d1b353408a874a8f38065e241474c674e8220d001652a5dd5a6c893ffe778cff9006 glmark2-2023.01.tar.gz
+"
diff --git a/testing/glmark2/py3-compat.patch b/testing/glmark2/py3-compat.patch
deleted file mode 100644
index 825fba54ecb..00000000000
--- a/testing/glmark2/py3-compat.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 06e4728ba7312efa0fd595e30745e60ce88f1a4f Mon Sep 17 00:00:00 2001
-From: Marvin Schmidt <marv@exherbo.org>
-Date: Sun, 3 May 2020 18:20:05 +0200
-Subject: [PATCH] Build: Fix Python 3 incompatibility
-
----
- wscript | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript b/wscript
-index aefde70..e09fa78 100644
---- a/wscript
-+++ b/wscript
-@@ -20,7 +20,7 @@ FLAVORS = {
- 'x11-gl' : 'glmark2',
- 'x11-glesv2' : 'glmark2-es2',
- }
--FLAVORS_STR = ", ".join(sorted(FLAVORS.keys() + ['all-linux', 'all-win32']))
-+FLAVORS_STR = ", ".join(sorted(list(FLAVORS) + ['all-linux', 'all-win32']))
-
- def linux_flavors():
- return [f for f in FLAVORS.keys() if not f.startswith('win32')]
diff --git a/testing/glog/APKBUILD b/testing/glog/APKBUILD
deleted file mode 100644
index c5c508a4e01..00000000000
--- a/testing/glog/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: David Huffman <storedbox@outlook.com>
-# Maintainer: David Huffman <storedbox@outlook.com>
-pkgname=glog
-pkgver=0.4.0
-pkgrel=3
-pkgdesc="C++ implementation of the Google logging module"
-options="!check" # Tests fail to compile on aarch64 armhf and armv7
-url="https://github.com/google/glog"
-arch="all"
-license="BSD-3-Clause"
-makedepends="cmake gflags-dev"
-subpackages="$pkgname-dev"
-source="https://github.com/google/glog/archive/v$pkgver/$pkgname-$pkgver.tar.gz
- pc-file.patch
- "
-
-build() {
- mkdir build
- cd build
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DWITH_GFLAGS=ON \
- -DWITH_THREADS=ON \
- -DWITH_TLS=ON \
- -DBUILD_SHARED_LIBS=ON \
- -DPRINT_UNSYMBOLIZED_STACK_TRACES=OFF \
- -DBUILD_TESTING=OFF \
- ..
- make
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-sha512sums="b585f1819ade2075f6b61dc5aaca5c3f9d25601dba2bd08b6c49b96ac5f79db23c6b7f2042df003f7130497dd7241fcaa8b107d1f97385cb66ce52d3c554b176 glog-0.4.0.tar.gz
-fd58efd42b299bb2e7c38af9c900f3ae454a99fea2a9b7b20bea50347bde663127ab0c19b5f5b3fb69ed5e8e19a7b43eb173332fe993f7e1cba66bf99921a870 pc-file.patch"
diff --git a/testing/glog/pc-file.patch b/testing/glog/pc-file.patch
deleted file mode 100644
index 13586ff29a0..00000000000
--- a/testing/glog/pc-file.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 808330e..0b5aaff 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -664,6 +664,17 @@ if (gflags_FOUND)
- endif (CMAKE_VERSION VERSION_LESS 3.9)
- endif (gflags_FOUND)
-
-+if (OS_WINDOWS)
-+ set (PKGCONFIG_INSTALL_DIR)
-+else ()
-+ set (PKGCONFIG_INSTALL_DIR ${_glog_CMake_LIBDIR}/pkgconfig)
-+endif ()
-+
-+if (PKGCONFIG_INSTALL_DIR)
-+ configure_file ("cmake/libglog.pc.in" "${PROJECT_BINARY_DIR}/lib${CPACK_PACKAGE_NAME}.pc" @ONLY)
-+ install (FILES "${PROJECT_BINARY_DIR}/lib${CPACK_PACKAGE_NAME}.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR}")
-+endif ()
-+
- configure_package_config_file (glog-config.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
- INSTALL_DESTINATION ${_glog_CMake_INSTALLDIR}
-diff --git a/cmake/libglog.pc.in b/cmake/libglog.pc.in
-new file mode 100644
-index 0000000..98b54bb
---- /dev/null
-+++ b/cmake/libglog.pc.in
-@@ -0,0 +1,10 @@
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=${prefix}
-+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
-+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
-+
-+Name: libglog
-+Description: Google Log (glog) C++ logging framework
-+Version: 0.4.0
-+Requires: gflags
-+Libs: -L${libdir} -lglog
-+Cflags: -I${includedir}
diff --git a/testing/gloox/APKBUILD b/testing/gloox/APKBUILD
new file mode 100644
index 00000000000..c293f8bcb7a
--- /dev/null
+++ b/testing/gloox/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=gloox
+pkgver=1.0.28
+pkgrel=0
+pkgdesc="C++ Jabber/XMPP client library"
+url="https://camaya.net/gloox/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="gnutls-dev"
+subpackages="$pkgname-dev"
+source="https://camaya.net/download/gloox-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-gnutls=yes
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+8be06963a54957d53bb285482d2ad01569fb281fcb53b03a29dc4444e1915f2f7d81e3fec1288f127bc09ca37d1c0beb4cb8e4f7079becb32dc223e3ceb50e00 gloox-1.0.28.tar.bz2
+"
diff --git a/testing/glow/APKBUILD b/testing/glow/APKBUILD
new file mode 100644
index 00000000000..1fd8f7bd325
--- /dev/null
+++ b/testing/glow/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=glow
+pkgver=1.5.1
+pkgrel=6
+pkgdesc="Markdown renderer on the CLI, with pizzazz"
+url="https://github.com/charmbracelet/glow"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/charmbracelet/glow/archive/v$pkgver/glow-$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.Version=$pkgver"
+
+ for shell in bash fish zsh; do
+ ./$pkgname completion $shell > $pkgname.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+d27005fdd10798957145e3ba4f55b78d15a9bf485f9b28a908dfec219524911f065d6f4248bcc79b30d9653588427e18bfeffab6400b1945ff0603bc95a5d888 glow-1.5.1.tar.gz
+"
diff --git a/testing/glslviewer/APKBUILD b/testing/glslviewer/APKBUILD
new file mode 100644
index 00000000000..00bb7b2be25
--- /dev/null
+++ b/testing/glslviewer/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=glslviewer
+pkgver=3.2.4
+pkgrel=0
+pkgdesc="Console-based GLSL Sandbox for 2D/3D shaders"
+_vera="93b2496679c005a723d3e04327199602955ed1dc"
+url="https://github.com/patriciogonzalezvivo/glslViewer"
+license="BSD-3.0"
+arch="all"
+depends="
+ "
+makedepends="
+ cmake
+ ffmpeg-dev
+ libx11-dev
+ libxcursor-dev
+ libxi-dev
+ libxinerama-dev
+ libxrandr-dev
+ mesa-dev
+ musl-dev
+ samurai
+ "
+# ncurses-dev: disabled dependency because of upstream bug
+source="$pkgname-$pkgver.tar.gz::https://github.com/patriciogonzalezvivo/glslViewer/archive/refs/tags/$pkgver.tar.gz
+ vera-$_vera.tar.gz::https://github.com/patriciogonzalezvivo/vera/archive/$_vera.tar.gz
+ "
+builddir="$srcdir/glslViewer-$pkgver"
+options="!check" # does not have any tests
+
+prepare() {
+ default_prepare
+
+ rmdir deps/vera
+ ln -sfv "$srcdir"/vera-$_vera \
+ "$builddir"/deps/vera
+}
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+20766ad1fe288d4e193849809b5633635b2d3a551cd46c9378f80c8817aeb90180847f2e9540e02f6c5729e0fa7fd51c45b4a1fa5f7e4ed6e397c58ef3e32c47 glslviewer-3.2.4.tar.gz
+40cecbd9480f84141f1a22d7a0e730c408cc55729dd4f25d80c6f3fa8098a6e31f088b3b1bfacd3d1507a2bf093dffe3fdb9bc7cb05fdc5586a00bd6956dae16 vera-93b2496679c005a723d3e04327199602955ed1dc.tar.gz
+"
diff --git a/testing/gmenuharness/APKBUILD b/testing/gmenuharness/APKBUILD
new file mode 100644
index 00000000000..4dd796fd32a
--- /dev/null
+++ b/testing/gmenuharness/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=gmenuharness
+pkgver=0.1.4
+pkgrel=0
+pkgdesc="Library to test GMenuModel structures"
+url="https://gitlab.com/ubports/development/core/gmenuharness"
+arch="all"
+license="LGPL-3.0-only"
+depends_dev="
+ glib-dev
+ gtest-dev
+ lomiri-api-dev
+ qt5-qtbase-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ gmock
+ libqtdbustest
+ samurai
+ "
+checkdepends="dbus"
+source="https://gitlab.com/ubports/development/core/gmenuharness/-/archive/$pkgver/gmenuharness-$pkgver.tar.gz"
+subpackages="$pkgname-dev"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+0ff5ab2411b5f7ad104c27dabd1523c63cb9981212f76d13fb4d7241d19cab8336a9bb188d5fcef87cd916ccce037174227c31c36c546e6793f3ec3641b2547c gmenuharness-0.1.4.tar.gz
+"
diff --git a/testing/gmic/APKBUILD b/testing/gmic/APKBUILD
new file mode 100644
index 00000000000..9205ab2dcf1
--- /dev/null
+++ b/testing/gmic/APKBUILD
@@ -0,0 +1,67 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=gmic
+pkgver=3.3.3
+pkgrel=0
+pkgdesc="GREYC's Magic for Image Computing"
+url="https://gmic.eu/"
+# s390x: gimp
+arch="all !s390x"
+license="CECILL-2.1"
+makedepends="
+ bash
+ curl-dev
+ eigen-dev
+ fftw-dev
+ gimp-dev
+ graphicsmagick-dev
+ openexr-dev
+ qt5-qtbase-dev
+ tiff-dev
+ "
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-doc
+ $pkgname-dev
+ $pkgname-libs
+ $pkgname-qt
+ gimp-plugin-gmic:gimp
+ "
+source="https://gmic.eu/files/source/gmic_$pkgver.tar.gz
+ notune.patch
+ rpath.patch
+ "
+options="!check" # No test suite
+
+build() {
+ export CFLAGS="$CFLAGS $LDFLAGS"
+ make lib
+ make cli_shared
+ make gimp_shared
+ make gmic_qt_shared
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+ install -Dm644 resources/gmic_cluts.gmz -t "$pkgdir"/usr/share/gmic
+}
+
+qt() {
+ pkgdesc="GMIC qt ui"
+
+ amove usr/bin/gmic_qt \
+ usr/share/applications \
+ usr/share/icons
+}
+
+gimp() {
+ pkgdesc="GMIC gimp plugin"
+ install_if="$pkgname=$pkgver-r$pkgrel gimp"
+
+ amove usr/lib/gimp
+}
+
+sha512sums="
+3bdfb8d8c935ead77ea0e6927a25e78d3b45236d1dd3cb515a64b4f04206380da471031d8a3bb7bc6b177ac607b2ca1622a11fe35cd8c5ea29c69fccfbdfb90e gmic_3.3.3.tar.gz
+663773af7c6cd7a06d9bc84972dea60d40b0d2eb6fb9f5aef2da482ebf9ed8218f82f998f4e1846051365307a6740308e793abcc60d34f534e40080d0710c7bf notune.patch
+e9184cac37360d1da22b996c2e44b25ad26ae64d64c114b792b0a83c4383ebd1a698e8dc40f8d003334ed8a45b32b01e32413a14b8ed8976569fd9dc00359bb2 rpath.patch
+"
diff --git a/testing/gmic/notune.patch b/testing/gmic/notune.patch
new file mode 100644
index 00000000000..96cac947acf
--- /dev/null
+++ b/testing/gmic/notune.patch
@@ -0,0 +1,13 @@
+diff --git a/src/Makefile b/src/Makefile
+index 4636079..cddbe0d 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -212,7 +212,7 @@ endif
+ FLTO = -flto
+ OPT_CFLAGS =
+ ifdef IS_GCC
+-OPT_CFLAGS += -O3 -mtune=generic # $(FLTO)
++OPT_CFLAGS += -O3 # $(FLTO)
+ OPT_LIBS = # $(FLTO)
+ endif
+ ifdef IS_CLANG
diff --git a/testing/gmic/rpath.patch b/testing/gmic/rpath.patch
new file mode 100644
index 00000000000..62a46291f2d
--- /dev/null
+++ b/testing/gmic/rpath.patch
@@ -0,0 +1,26 @@
+diff --git a/gmic-qt/gmic_qt.pro b/gmic-qt/gmic_qt.pro
+index dbabde7..b851af8 100644
+--- a/gmic-qt/gmic_qt.pro
++++ b/gmic-qt/gmic_qt.pro
+@@ -417,7 +417,7 @@ SOURCES += \
+
+ equals(GMIC_DYNAMIC_LINKING, "on" )|equals(GMIC_DYNAMIC_LINKING, "ON" ) {
+ message(Dynamic linking with libgmic)
+- LIBS += -Wl,-rpath,. $$GMIC_PATH/libgmic.so
++ LIBS += $$GMIC_PATH/libgmic.so
+ }
+
+ equals(GMIC_DYNAMIC_LINKING, "off" )|equals(GMIC_DYNAMIC_LINKING, "OFF" ) {
+diff --git a/src/Makefile b/src/Makefile
+index 4636079..41aeb28 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -188,7 +188,7 @@ MANDATORY_LIBS = $(shell pkg-config --libs zlib || echo -lz) $(EXTRA_LIBS)
+ ifndef NO_SRIPDLIB
+ MANDATORY_CFLAGS += -std=c++11 -pedantic
+ endif
+-MANDATORY_LIBS += -L. -L$(PREFIX)/$(LIB) -Wl,-rpath,.
++MANDATORY_LIBS += -L. -L$(PREFIX)/$(LIB)
+ ifdef IS_GCC
+ MANDATORY_CFLAGS += -Wall -Wextra -Wfatal-errors -Werror=unknown-pragmas -Werror=unused-label
+ GCC_VER_GTEQ5 = $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 5)
diff --git a/testing/gmid/APKBUILD b/testing/gmid/APKBUILD
new file mode 100644
index 00000000000..7efa4f27c49
--- /dev/null
+++ b/testing/gmid/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=gmid
+pkgver=2.0.2
+pkgrel=0
+pkgdesc="Fast, small, and secure Gemini server"
+url="https://www.omarpolo.com/pages/gmid.html"
+arch="all !s390x" # test_unknown_host failed
+license="ISC GPL-2.0-only"
+makedepends="
+ bison
+ flex
+ libbsd-dev
+ libevent-dev
+ libretls-dev
+ openssl-dev
+ "
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/omar-polo/gmid/archive/$pkgver/gmid-$pkgver.tar.gz
+ $pkgname.confd
+ $pkgname.initd
+ $pkgname.conf
+ "
+
+build() {
+ # Not a gnuautoconf, just a shell script
+ ./configure PREFIX=/usr
+ make
+}
+
+check() {
+ make regress
+}
+
+package() {
+ make DESTDIR="$pkgdir" BINDIR=/usr/bin MANDIR=/usr/share/man install
+ install -Dm755 contrib/gencert contrib/renew-certs -t "$pkgdir"/usr/bin
+ install -Dm644 "$srcdir"/gmid.confd "$pkgdir"/etc/conf.d/gmid
+ install -Dm755 "$srcdir"/gmid.initd "$pkgdir"/etc/init.d/gmid
+ install -Dm644 "$srcdir"/gmid.conf "$pkgdir"/etc/gmid.conf
+}
+
+sha512sums="
+5d4931f86b18de7b1ebec37e4b2343e401a31478c2e4a98bb9e6f13812bba1dbb01deefd3263a65090c2f6e4bf2321392c504d4b3177c30abb2f2acaa9f03361 gmid-2.0.2.tar.gz
+b05d3685b66547d171a8feeb47518a9e27226a709a0a4d5a77e2cd51d7026ef4d3e0fc9e00a53e9fa58908b717df0bc0954452ab44d2158c949cdfec10b8cba5 gmid.confd
+9d5c2fc00f08ab4fe187bfbd09d386b9daab39b7c984b0a2e6043ce0a66baf9b8a3d6609f8c4c41ed97e1e7161511ab7a7edea0e477bfce5eab10fcf10df27ba gmid.initd
+9ebbac15a6e3b34f70a4bbf1a1c4a70f8e6b733ce3b838829fbcc995cfc6681f216f80a8ddca526c60cdc9b9a16de071e5f93faa31b42be65d707ad52897730b gmid.conf
+"
diff --git a/testing/gmid/gmid.conf b/testing/gmid/gmid.conf
new file mode 100644
index 00000000000..6c75115ff23
--- /dev/null
+++ b/testing/gmid/gmid.conf
@@ -0,0 +1,31 @@
+# set user to run daemon as
+user "gmid"
+
+# enable ipv6 support
+ipv6 on
+
+server "localhost" {
+ # set directory to serve
+ root "/var/gemini/localhost"
+
+ # set self-signed TLS cert and key
+ # you should generate them manually, see `gencert -h`
+ cert "/etc/ssl/gmid/localhost.crt"
+ key "/etc/ssl/gmid/localhost.key"
+
+ # lang for text/gemini files
+ lang "en"
+
+ # only for locations that matches /files/*
+ location "/files/*" {
+ # generate directory listings
+ auto index on
+ }
+
+ # only for locations that matches /repo/*
+ location "/repo/*" {
+ # change the index file name
+ index "README.gmi"
+ lang "en"
+ }
+}
diff --git a/testing/gmid/gmid.confd b/testing/gmid/gmid.confd
new file mode 100644
index 00000000000..09a1b3c12c3
--- /dev/null
+++ b/testing/gmid/gmid.confd
@@ -0,0 +1,2 @@
+gmid_config_file="/etc/gmid.conf"
+gmid_pid_file="/run/gmid.pid"
diff --git a/testing/gmid/gmid.initd b/testing/gmid/gmid.initd
new file mode 100644
index 00000000000..6ff1812f1dc
--- /dev/null
+++ b/testing/gmid/gmid.initd
@@ -0,0 +1,45 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Copyright 2021 Maxim Karasev <begs@disroot.org>
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="configtest"
+extra_started_commands="reload"
+
+name="gmid"
+description="Simple and secure Gemini server"
+description_configtest="Run gmid's internal config check."
+description_reload="Reload the gmid configuration without losing connections."
+supervisor=supervise-daemon
+command=/usr/bin/gmid
+command_args="-c \"$gmid_config_file\" -P \"$gmid_pid_file\" -f"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ if [ "${RC_CMD}" != "restart" ]; then
+ configtest || return 1
+ fi
+}
+
+stop_pre() {
+ if [ "${RC_CMD}" = "restart" ]; then
+ configtest || return 1
+ fi
+}
+
+reload() {
+ configtest || return 1
+ ebegin "Refreshing gmid's configuration"
+ start-stop-daemon --signal SIGHUP --pid "$gmid_pid_file"
+ eend $? "Failed to reload gmid"
+}
+
+configtest() {
+ ebegin "Checking gmid's configuration"
+ ${command} -c "${gmid_config_file}" -n
+ eend $? "failed, please correct errors in the config file"
+}
diff --git a/testing/gmid/gmid.pre-install b/testing/gmid/gmid.pre-install
new file mode 100644
index 00000000000..dd6fb433420
--- /dev/null
+++ b/testing/gmid/gmid.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+addgroup -S gmid 2>/dev/null
+adduser -S -D -H -h /var/lib/gmid -s /sbin/nologin -G gmid -g gmid gmid 2>/dev/null
+mkdir -p /var/gemini/localhost /etc/ssl/gmid
+exit 0
+
diff --git a/testing/gmobile/APKBUILD b/testing/gmobile/APKBUILD
new file mode 100644
index 00000000000..ab26fa39cfc
--- /dev/null
+++ b/testing/gmobile/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: team/phosh <fossdd@pwned.life>
+pkgname=gmobile
+pkgver=0.1.0
+pkgrel=1
+pkgdesc="Functions useful in mobile related, glib based projects"
+url="https://gitlab.gnome.org/World/Phosh/gmobile"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ meson
+ glib-dev
+ json-glib-dev
+ gobject-introspection-dev
+ "
+subpackages="$pkgname-dev"
+source="https://sources.phosh.mobi/releases/gmobile/gmobile-$pkgver.tar.xz"
+
+build() {
+ abuild-meson build
+ meson compile -C build
+}
+
+check() {
+ meson test -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+eb17d0b39d5dbe197a2502fe974af37076317094c4759bbc4924d951fdb1bdb1fe8f13a85419dad756954c165bbd6dfca4ce555f6e3f5a3def4bac8bc913ab1a gmobile-0.1.0.tar.xz
+"
diff --git a/testing/gmsh/APKBUILD b/testing/gmsh/APKBUILD
new file mode 100644
index 00000000000..cf0f5fd7528
--- /dev/null
+++ b/testing/gmsh/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=gmsh
+pkgver=4.12.2
+pkgrel=1
+pkgdesc="Automatic 3D finite element mesh generator"
+url="https://gmsh.info/"
+# s390x: opencascade
+# armv7, armhf: segfaults
+# x86: fails tests
+arch="all !x86 !armv7 !armhf !s390x"
+license="GPL-2.0-or-later" # license lists several exceptions
+makedepends="
+ chrpath
+ cmake
+ fltk-dev
+ glu-dev
+ gmp-dev
+ hdf5-dev
+ jpeg-dev
+ mesa-dev
+ opencascade-dev
+ samurai
+ "
+subpackages="$pkgname-dbg $pkgname-doc gmsh-py:py:noarch"
+source="
+ https://gmsh.info/src/gmsh-$pkgver-source.tgz
+ gmsh-3e841c3943fbb47f29bb582deb298ca33ffe9d25.patch::https://gitlab.onelab.info/gmsh/gmsh/-/commit/3e841c3943fbb47f29bb582deb298ca33ffe9d25.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver-source"
+
+build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DRPATH=OFF \
+ -DTESTS="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ctest -j $JOBS --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # Drop redundant /usr/lib from rpath
+ chrpath -d "$pkgdir"/usr/bin/gmsh
+}
+
+py() {
+ depends="$pkgname=$pkgver-r$pkgrel python3"
+ amove usr/bin/onelab.py
+}
+
+sha512sums="
+935148aff89b608f9d671d5fd4f12aed52b5c8ba4453e978d0febcc6934c045f2bba0078b13a64b2cbf4e852b413bbd05873335099ea7a967cc81ef58a7f8367 gmsh-4.12.2-source.tgz
+9bb54084d78097b7f27f222e135d3bbeb13263b5cb7a1bb180edfedde5a960ab8db40df7bcb4f3420044727fd25e2e3f1c1f79d890666245cbc0bbbe286f04ee gmsh-3e841c3943fbb47f29bb582deb298ca33ffe9d25.patch
+"
diff --git a/testing/gn/APKBUILD b/testing/gn/APKBUILD
deleted file mode 100644
index cd297bfc5d4..00000000000
--- a/testing/gn/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=gn
-pkgver=0_git20200320
-pkgrel=0
-pkgdesc="GN is a meta-build system that generates build files for Ninja."
-arch="all"
-url="https://gn.googlesource.com/gn"
-license="BSD-3-Clause"
-depends="samurai"
-makedepends="python3"
-# archive needs to include .git for the build script to be able to determine the version
-source="https://dev.alpinelinux.org/archive/gn/gn-$pkgver.tar.gz
- python3.patch
- "
-
-build() {
- ./build/gen.py
- ninja -C out
-}
-
-check() {
- ./out/gn_unittests
-}
-
-package() {
- install -Dm755 out/gn "$pkgdir"/usr/bin/gn
-}
-
-sha512sums="1e289743ad431370d097e8609d74671b6d8c861d1d1b0a9b906c832bf0539460031ddc3a427f25d1dff271447b21caaf3fbc082d8ce9ef4ae20ad0a30888bffd gn-0_git20200320.tar.gz
-03435f48247c6c1eed313e9d54c5b541ccf5566354345e6a39b01a235c60430d64d8ec8878c1584ad8e62ab9b28c0c90f1c1521c5d810a4f8c7512f9bdddbd21 python3.patch"
diff --git a/testing/gn/python3.patch b/testing/gn/python3.patch
deleted file mode 100644
index 78e11f67b82..00000000000
--- a/testing/gn/python3.patch
+++ /dev/null
@@ -1,220 +0,0 @@
---- a/build/full_test.py
-+++ b/build/full_test.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # Copyright 2018 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
---- a/build/gen.py
-+++ b/build/gen.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # Copyright 2014 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
---- a/infra/recipes.py
-+++ b/infra/recipes.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- # Copyright 2017 The LUCI Authors. All rights reserved.
- # Use of this source code is governed under the Apache License, Version 2.0
---- a/src/gn/exec_process_unittest.cc
-+++ b/src/gn/exec_process_unittest.cc
-@@ -33,7 +33,7 @@
- args.push_back(L"-c");
- args.push_back(base::UTF8ToUTF16(command));
- #else
-- args.push_back("python");
-+ args.push_back("python3");
- args.push_back("-c");
- args.push_back(command);
- #endif
---- a/src/gn/setup.cc
-+++ b/src/gn/setup.cc
-@@ -717,7 +717,7 @@
- }
- build_settings_.set_python_path(python_path.NormalizePathSeparatorsTo('/'));
- #else
-- build_settings_.set_python_path(base::FilePath("python"));
-+ build_settings_.set_python_path(base::FilePath("python3"));
- #endif
- }
- return true;
---- a/src/gn/json_project_writer_unittest.cc
-+++ b/src/gn/json_project_writer_unittest.cc
-@@ -37,7 +37,7 @@
- SubstitutionList::MakeForTest("//out/Debug/output1.out");
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
- std::vector<const Target*> targets;
- targets.push_back(&target);
- #if defined(OS_WIN)
-@@ -172,7 +172,7 @@
- SubstitutionList::MakeForTest("//out/Debug/{{source_name_part}}.out");
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
- std::vector<const Target*> targets;
- targets.push_back(&target);
- #if defined(OS_WIN)
---- a/src/gn/ninja_action_target_writer_unittest.cc
-+++ b/src/gn/ninja_action_target_writer_unittest.cc
-@@ -54,14 +54,14 @@
- ASSERT_TRUE(target.OnResolved(&err));
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
- writer.Run();
-
- const char* expected = R"(rule __foo_bar___rule
-- command = /usr/bin/python ../../foo/script.py
-+ command = /usr/bin/python3 ../../foo/script.py
- description = ACTION //foo:bar()
- restat = 1
-
-@@ -96,7 +96,7 @@
- ASSERT_TRUE(target.OnResolved(&err));
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
-@@ -105,7 +105,7 @@
- // The console pool's name must be mapped exactly to the string "console"
- // which is a special pre-defined pool name in ninja.
- const char* expected = R"(rule __foo_bar___rule
-- command = /usr/bin/python ../../foo/script.py
-+ command = /usr/bin/python3 ../../foo/script.py
- description = ACTION //foo:bar()
- restat = 1
-
-@@ -138,7 +138,7 @@
- ASSERT_TRUE(target.OnResolved(&err));
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
-@@ -146,7 +146,7 @@
-
- const char expected_linux[] =
- "rule __foo_bar___rule\n"
-- " command = /usr/bin/python ../../foo/script.py\n"
-+ " command = /usr/bin/python3 ../../foo/script.py\n"
- " description = ACTION //foo:bar()\n"
- " restat = 1\n"
- "\n"
-@@ -198,7 +198,7 @@
- ASSERT_TRUE(target.OnResolved(&err));
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
-@@ -206,7 +206,7 @@
-
- const char expected_linux[] =
- "rule __foo_bar___rule\n"
-- " command = /usr/bin/python ../../foo/script.py -i ${in} "
-+ " command = /usr/bin/python3 ../../foo/script.py -i ${in} "
- // Escaping is different between Windows and Posix.
- #if defined(OS_WIN)
- "\"--out=foo$ bar${source_name_part}.o\"\n"
-@@ -263,7 +263,7 @@
- target.config_values().inputs().push_back(SourceFile("//foo/included.txt"));
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
-@@ -271,7 +271,7 @@
-
- const char expected_linux[] =
- "rule __foo_bar___rule\n"
-- " command = /usr/bin/python ../../foo/script.py -i ${in} "
-+ " command = /usr/bin/python3 ../../foo/script.py -i ${in} "
- #if defined(OS_WIN)
- "\"--out=foo$ bar${source_name_part}.o\"\n"
- #else
-@@ -318,7 +318,7 @@
- SubstitutionList::MakeForTest("//out/Debug/{{source_name_part}}.out");
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
-@@ -331,7 +331,7 @@
- // These come from rsp_file_contents above.
- " rspfile_content = -j ${source_name_part}\n"
- // These come from the args.
-- " command = /usr/bin/python ../../foo/script.py ${in} "
-+ " command = /usr/bin/python3 ../../foo/script.py ${in} "
- "${source_file_part} ${rspfile}\n"
- " description = ACTION //foo:bar()\n"
- " restat = 1\n"
-@@ -376,7 +376,7 @@
- SubstitutionList::MakeForTest("//out/Debug/{{source_name_part}}.out");
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- std::ostringstream out;
- NinjaActionTargetWriter writer(&target, out);
-@@ -385,7 +385,7 @@
- const char expected_linux[] =
- "rule __foo_bar___rule\n"
- // These come from the args.
-- " command = /usr/bin/python ../../foo/script.py ${in} "
-+ " command = /usr/bin/python3 ../../foo/script.py ${in} "
- "${source_file_part}\n"
- " description = ACTION //foo:bar()\n"
- " restat = 1\n"
-@@ -405,7 +405,7 @@
- TestWithScope setup;
-
- setup.build_settings()->set_python_path(
-- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python")));
-+ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3")));
-
- Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep"));
- dep.set_output_type(Target::ACTION);
-@@ -432,7 +432,7 @@
- const char expected_linux[] =
- "rule __foo_foo___rule\n"
- // These come from the args.
-- " command = /usr/bin/python ../../foo/script.py\n"
-+ " command = /usr/bin/python3 ../../foo/script.py\n"
- " description = ACTION //foo:foo()\n"
- " restat = 1\n"
- "\n"
-@@ -461,7 +461,7 @@
- const char expected_linux[] =
- "rule __bar_bar___rule\n"
- // These come from the args.
-- " command = /usr/bin/python ../../bar/script.py\n"
-+ " command = /usr/bin/python3 ../../bar/script.py\n"
- " description = ACTION //bar:bar()\n"
- " restat = 1\n"
- "\n"
diff --git a/testing/gnome-common/APKBUILD b/testing/gnome-common/APKBUILD
new file mode 100644
index 00000000000..62036649876
--- /dev/null
+++ b/testing/gnome-common/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=gnome-common
+pkgver=3.18.0
+pkgrel=3
+pkgdesc="Common development macros for GNOME"
+url="https://www.gnome.org"
+arch="noarch"
+license="LGPL-2.1-or-later"
+source="https://download.gnome.org/sources/gnome-common/${pkgver%.*}/gnome-common-$pkgver.tar.xz"
+
+check() {
+ make check
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="b931c9a6668d996560549738bb2d95f86f56fa68ce930c077275bdc8fddbc2d28d215c1190099db1df851417902fca87ec81f1c0e644c5b9630a175e1cde0719 gnome-common-3.18.0.tar.xz"
diff --git a/testing/gnome-latex/APKBUILD b/testing/gnome-latex/APKBUILD
new file mode 100644
index 00000000000..4a8f09652a8
--- /dev/null
+++ b/testing/gnome-latex/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=gnome-latex
+pkgver=3.44.0
+pkgrel=5
+pkgdesc="LaTeX editor for the GNOME desktop"
+url="https://gitlab.gnome.org/swilmet/gnome-latex"
+# s390x, ppc64le and riscv64 blocked by texlive
+arch="all !ppc64le !s390x !riscv64"
+license="GPL-3.0-or-later"
+depends="
+ gsettings-desktop-schemas
+ texlive
+ "
+makedepends="
+ autoconf
+ automake
+ dconf-dev
+ gobject-introspection-dev
+ gsettings-desktop-schemas-dev
+ gspell-dev
+ gtk-doc
+ intltool
+ itstool
+ libgee-dev
+ libtool
+ tepl-dev
+ vala
+ yelp
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://download.gnome.org/sources/gnome-latex/${pkgver%.*}/gnome-latex-$pkgver.tar.xz
+ "
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d1dc7b2321438ebed7a209c7c750123a0dcf8ebcf92f73fd7eb4c79282f51d6b6a8328ee8759326f43e53dbd2ba9d1fadc056c2fcea11e7785e7c27574707e95 gnome-latex-3.44.0.tar.xz
+"
diff --git a/testing/gnome-metronome/APKBUILD b/testing/gnome-metronome/APKBUILD
new file mode 100644
index 00000000000..f55ae0e30b2
--- /dev/null
+++ b/testing/gnome-metronome/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=gnome-metronome
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="Metronome beats the rhythm for you"
+url="https://apps.gnome.org/app/com.adrienplazas.Metronome/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cargo
+ desktop-file-utils
+ glib-dev
+ gst-plugins-bad-dev
+ gst-plugins-base-dev
+ gstreamer-dev
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ rust
+"
+subpackages="$pkgname-lang"
+source="https://gitlab.gnome.org/World/metronome/-/archive/$pkgver/metronome-$pkgver.tar.gz"
+builddir="$srcdir/metronome-$pkgver"
+
+
+build() {
+ abuild-meson build
+ meson compile -C build
+}
+
+check() {
+ meson check
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+006f29f838895546af770d2fdddc8e947372f50c9499010b7ff4d77f2ef54d71dd4e7f8250ea5d20e0ad4842a0d6f9a87db5d6c549fb2f880f332eff56472c47 metronome-1.3.0.tar.gz
+"
diff --git a/testing/gnomecast/APKBUILD b/testing/gnomecast/APKBUILD
new file mode 100644
index 00000000000..f4567d5b33a
--- /dev/null
+++ b/testing/gnomecast/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=gnomecast
+pkgver=1.9.11_git20220423
+_commit=d42d8915838b01c5cadacb322909e08ffa455d4f
+pkgrel=2
+pkgdesc="A native Linux GUI for casting local files to Chromecast devices"
+url="https://github.com/keredson/gnomecast"
+arch="noarch"
+license="GPL-3.0-only"
+depends="
+ ffmpeg
+ gtk+3.0
+ python3
+ py3-bottle
+ py3-dbus
+ py3-gobject3
+ py3-html5lib
+ py3-paste
+ py3-pycaption
+ py3-pychromecast
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+options="!check" # broken tests
+subpackages="$pkgname-pyc"
+source="
+ https://github.com/keredson/gnomecast/archive/$_commit/gnomecast-$_commit.tar.gz
+
+ no-pandoc.patch
+ "
+builddir="$srcdir/gnomecast-$_commit"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
+}
+
+sha512sums="
+00d254330b337d5bc4713de59d3ed1805ac5afb1dcf919c306c41dc6817345902717dff622f902dafa801c0289f76f7a9c328b70fe094a7829f7ec1f836c531f gnomecast-d42d8915838b01c5cadacb322909e08ffa455d4f.tar.gz
+3e15f74bcae0189a37a0ed716302c858738ef10f8fc24cc335ac54b06c6f6920854ac23bf07c3570d7b329e80dc2c3421b999fcf75e95bd6420c97c574510866 no-pandoc.patch
+"
diff --git a/testing/gnomecast/no-pandoc.patch b/testing/gnomecast/no-pandoc.patch
new file mode 100644
index 00000000000..2717ac45d94
--- /dev/null
+++ b/testing/gnomecast/no-pandoc.patch
@@ -0,0 +1,23 @@
+--- a/setup.py
++++ b/setup.py
+@@ -2,20 +2,10 @@
+
+ from setuptools import setup
+
+-def long_description():
+- os.system('pandoc --from=markdown --to=rst --output=README.rst README.md')
+- readme_fn = os.path.join(os.path.dirname(__file__), 'README.rst')
+- if os.path.exists(readme_fn):
+- with open(readme_fn) as f:
+- return f.read()
+- else:
+- return 'not available'
+-
+ setup(
+ name='gnomecast',
+ version=__import__('gnomecast').__version__,
+ description='A native Linux GUI for Chromecasting local files.',
+- long_description=long_description(),
+ author='Derek Anderson',
+ author_email='public@kered.org',
+ url='https://github.com/keredson/gnomecast',
diff --git a/testing/gnu-apl/APKBUILD b/testing/gnu-apl/APKBUILD
new file mode 100644
index 00000000000..ddecb201648
--- /dev/null
+++ b/testing/gnu-apl/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=gnu-apl
+pkgver=1.8
+pkgrel=1
+pkgdesc="GNU interpreter for the programming language APL"
+url="https://www.gnu.org/software/apl/"
+arch="all !ppc64le" # Fails to build
+license="GPL-3.0-or-later"
+makedepends="autoconf automake libtool"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://ftp.gnu.org/gnu/apl/apl-$pkgver.tar.gz"
+builddir="$srcdir/apl-$pkgver"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure CXX_WERROR='no' \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7b903f2d280bba85fd4efb7c5f26e969930c34fdf4667b93adc445521b2eb19cba54f602d823ed56d31d6d596ffce29479c870a110a41f91aa5b7e1747000b54 gnu-apl-1.8.tar.gz
+"
diff --git a/testing/gnunet-gtk/APKBUILD b/testing/gnunet-gtk/APKBUILD
deleted file mode 100644
index a4f8b29006b..00000000000
--- a/testing/gnunet-gtk/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: xrs <xrs@mail36.net>
-# Maintainer: xrs <xrs@mail36.net>
-pkgname=gnunet-gtk
-pkgver=0.11.7
-pkgrel=0
-pkgdesc="Graphical user interface for GNUnet"
-url="https://gnunet.org"
-arch="all !ppc64le !mips !mips64" # blocked on glade-dev
-license="GPL-3.0-only"
-makedepends="gnunet-dev gtk+3.0-dev glade-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-source="https://mirrors.ocf.berkeley.edu/gnu/gnunet/gnunet-gtk-$pkgver.tar.gz"
-options="!check" # The GNUnet project lacks a good CI at the moment.
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-fs-app \
- --disable-conversation-app
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="368d31e876d3ace60e62e744e5a7d375962a6f7e6c2800cf1389185673ec643a91160fccbd380427e5fdcf0683824aa17265b3de4eb8a8493aa20c55596d982f gnunet-gtk-0.11.7.tar.gz"
diff --git a/testing/gnunet/APKBUILD b/testing/gnunet/APKBUILD
deleted file mode 100644
index 1b7bbfc912a..00000000000
--- a/testing/gnunet/APKBUILD
+++ /dev/null
@@ -1,87 +0,0 @@
-# Contributor: xrs <xrs@mail36.net>
-# Maintainer: xrs <xrs@mail36.net>
-pkgname=gnunet
-pkgver=0.12.2
-pkgrel=1
-pkgdesc="A framework for secure and privacy enhancing peer-to-peer networking"
-url="https://gnunet.org"
-arch="all !mips !mips64" # blocked by texlive
-license="AGPL-3.0-only"
-depends="gnutls-utils bash which iptables coreutils runit"
-depends_dev="libgpg-error-dev libgcrypt-dev nettle-dev unbound-dev gnutls-dev
- gnurl-dev libmicrohttpd-dev openssl-dev libunistring-dev libidn2-dev
- nss-dev sqlite-dev zlib-dev miniupnpc-dev gmp-dev gettext openjpeg-dev
- jansson-dev"
-makedepends="$depends_dev autoconf automake libtool gettext-dev python3
- texlive texinfo"
-install="$pkgname.pre-install $pkgname.post-install"
-pkgusers="gnunet"
-pkggroups="gnunet gnunetdns"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-openrc"
-options="!check suid" # No check because The GNUnet project lacks a good CI at the moment.
-source="https://mirrors.ocf.berkeley.edu/gnu/gnunet/gnunet-$pkgver.tar.gz
- $pkgname-system.conf
- $pkgname-system-services.initd
- $pkgname-user-services.initd
- setup-$pkgname-user
- "
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-logging=verbose
- make
-}
-
-check() {
- make DESTDIR="$pkgdir" check
-}
-
-package() {
- make DESTDIR="$pkgdir" -j1 install # Using more CPUs generates CI-errors.
-
- libexecdir=$pkgdir/usr/lib/gnunet/libexec/
- # Limit access to critical gnunet-helper-dns to group "gnunetdns"
- chgrp gnunetdns $libexecdir/gnunet-helper-dns
- chgrp gnunetdns $libexecdir/gnunet-service-dns
- # Limit access to certain SUID binaries by group "gnunet"
- chgrp gnunet $libexecdir/gnunet-helper-exit
- chgrp gnunet $libexecdir/gnunet-helper-vpn
- chgrp gnunet $libexecdir/gnunet-helper-nat-client
- chgrp gnunet $libexecdir/gnunet-helper-nat-server
- chmod u+s $libexecdir/gnunet-helper-exit
- chmod u+s $libexecdir/gnunet-helper-vpn
- chmod 2750 $libexecdir/gnunet-helper-dns
- chmod 2700 $libexecdir/gnunet-service-dns
- chmod u+s $libexecdir/gnunet-helper-nat-client
- chmod u+s $libexecdir/gnunet-helper-nat-server
-
- install -m644 -D $srcdir/$pkgname-system.conf \
- $pkgdir/etc/$pkgname.conf
- install -m755 -D $srcdir/$pkgname-system-services.initd \
- $pkgdir/etc/init.d/$pkgname-system-services
- install -m755 -D $srcdir/$pkgname-user-services.initd \
- $pkgdir/etc/init.d/$pkgname-user-services
- install -m755 -D $srcdir/setup-$pkgname-user \
- $pkgdir/usr/bin/setup-$pkgname-user
-}
-
-dev() {
- default_dev
-
- # dev() will move gnunet-config from $pkg to $pkg-dev, but it's an
- # intended part of $pkg.
- install -m755 -D $builddir/src/util/.libs/gnunet-config \
- $pkgdir/usr/bin/gnunet-config
-}
-
-sha512sums="210a9f06679d32dbb399a056e7a20e411cbfacf7945a282bd7e63eb8bfd7a324815efc48caedff32894d0a3f7a4ba9d1e879e2e04db0222282399ae6fc065c7b gnunet-0.12.2.tar.gz
-a0f55413ed2c6edd6746a751d92ddac95ba70f20eefb07330817870d749456448f44bba95d245911a00f6078e0c2ac626004e3b764be5e5e049c00626c4c5ac0 gnunet-system.conf
-24d230b077c7a47a116ac428c411e0fc62b9c019ac97f95d27a0e57112d554734d9b9bfd1e0b22366b387074b621f98d11fbf87f2c6fbafcc2888acda630b54d gnunet-system-services.initd
-8daf862f7c81bd5b143a05f786c4edce76c91d4d226903288a4d2d88898b9b7ba017cf683a20d918b9ad93aff5f391eb5f928843a2fcd35e6e48f3a611dc9d8d gnunet-user-services.initd
-ed4db7f7500e02fecb8c54ba629d91ae3bb69b6ed61c25831f7c21b6c446b4210af0efea5fac6fb13f14422723b85a742ae63a6ecd60bf5daadfd43abb658d25 setup-gnunet-user"
diff --git a/testing/gnunet/gnunet-system-services.initd b/testing/gnunet/gnunet-system-services.initd
deleted file mode 100644
index 6bc42e6f152..00000000000
--- a/testing/gnunet/gnunet-system-services.initd
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/sbin/openrc-run
-
-name="gnunet-system-services"
-description="A secure and privacy enhancing peer-to-peer overlay network"
-command="/usr/lib/gnunet/libexec/gnunet-service-arm"
-command_args="-c /etc/gnunet.conf"
-command_user="gnunet:gnunet"
-command_background="yes"
-pidfile="/run/${SVCNAME}.pid"
-
-depend() {
- need net
-}
-
-start_pre() {
- checkpath --directory --owner $command_user --mode 2755 \
- /var/lib/gnunet
-}
diff --git a/testing/gnunet/gnunet-system.conf b/testing/gnunet/gnunet-system.conf
deleted file mode 100644
index 303cf5f16d6..00000000000
--- a/testing/gnunet/gnunet-system.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[arm]
-START_SYSTEM_SERVICES = YES
-START_USER_SERVICES = NO
diff --git a/testing/gnunet/gnunet-user-services.initd b/testing/gnunet/gnunet-user-services.initd
deleted file mode 100644
index 04188ade25b..00000000000
--- a/testing/gnunet/gnunet-user-services.initd
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/sbin/openrc-run
-
-# Extract user name from file name.
-user="${SVCNAME#gnunet-}" # Cut off prefix.
-user="${user%-services}" # Cut off suffix.
-
-description="GNUnet user services for $user"
-command="/usr/lib/gnunet/libexec/gnunet-service-arm"
-command_args="-c /home/$user/.config/gnunet.conf"
-command_user="$user:$user"
-command_background="yes"
-pidfile="/run/${SVCNAME}.$user.pid"
-
-depend() {
- need gnunet-system-services
-}
diff --git a/testing/gnunet/gnunet.post-install b/testing/gnunet/gnunet.post-install
deleted file mode 100644
index 893f8cdc438..00000000000
--- a/testing/gnunet/gnunet.post-install
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-cat << TEXT
-
- To start GNUnet system services:
- > sudo rc-service gnunet-system-services start
-
- To setup GNUnet user services for a regular user:
- > sudo setup-gnunet-user -u USER
-
- To start GNUnet user services for 'USER':
- > sudo rc-service gnunet-USER-services start
-
-TEXT
-
-exit 0
diff --git a/testing/gnunet/gnunet.pre-install b/testing/gnunet/gnunet.pre-install
deleted file mode 100644
index cdbff43faf8..00000000000
--- a/testing/gnunet/gnunet.pre-install
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-# Add special group gnunetdns for controlling access to "gnunet-helper-dns".
-addgroup -S gnunetdns 2>/dev/null
-
-# Add system user/group gnunet for system services
-addgroup -S gnunet 2>/dev/null
-adduser -S -h "/var/lib/gnunet" -s /bin/false -D gnunet 2>/dev/null
-adduser gnunet gnunet
-
-exit 0
diff --git a/testing/gnunet/setup-gnunet-user b/testing/gnunet/setup-gnunet-user
deleted file mode 100644
index 8d7b436578d..00000000000
--- a/testing/gnunet/setup-gnunet-user
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/sh
-
-# This scripts helps the user to automate the GNUnet setup for user services.
-
-if [ $(id -u) -ne 0 ]; then
- echo "Please run this script as root."
- echo "Usage: "`basename $0`" -u USER"
- exit
-fi
-if [ $# = 0 ]; then
- echo "Usage: "`basename $0`" -u USER"
- exit
-fi
-
-while getopts ':u:' OPTION ; do
- case "$OPTION" in
- u) USER="$OPTARG";;
- *) echo "Unknown parameter"; exit;;
- esac
-done
-
-CONFIG_PATH="/home/$USER/.config/gnunet.conf"
-DOASUSER="chpst -u $USER env HOME=/home/$USER"
-
-echo "Adding user to group gnunet"
-adduser $USER gnunet 2>/dev/null
-
-echo "Creating user config at $CONFIG_PATH"
-cat > $CONFIG_PATH << EOF
-[arm]
-START_SYSTEM_SERVICES = NO
-START_USER_SERVICES = YES
-EOF
-chown $USER.$USER $CONFIG_PATH
-
-echo "Creating symlink: gnunet-user-services -> gnunet-$USER-services"
-ln -s /etc/init.d/gnunet-user-services /etc/init.d/gnunet-$USER-services
-
-echo "Creating/Renewing GNS certificate authority (CA)"
-$DOASUSER gnunet-gns-proxy-setup-ca
-
-echo "Use GNU Name System in Firefox/Chromium by default? [y,N]"
-read -r yn
-case $yn in
-y|Y )
- PORT=$((8000+$(id -u $USER)))
- $DOASUSER gnunet-config -c $CONFIG_PATH \
- --rewrite \
- --section=gns-proxy \
- --option=IMMEDIATE_START \
- --value=YES
- $DOASUSER gnunet-config -c $CONFIG_PATH \
- --rewrite \
- --section=gns-proxy \
- --option=OPTIONS \
- --value="-p $PORT"
-
- # Firefox
- if [ ! -d /home/$USER/.mozilla/firefox/*.default ];then
- $DOASUSER timeout 3s firefox --headless # dirty: create profile if not existent
- fi
- for ffprofile in /home/$USER/.mozilla/firefox/*.*/; do
- js=$ffprofile/user.js
- if [ -f $js ]; then
- sed -i '/Preferences for using the GNU Name System/d' $js
- sed -i '/network.proxy.socks/d' $js
- sed -i '/network.proxy.socks_port/d' $js
- sed -i '/network.proxy.socks_remote_dns/d' $js
- sed -i '/network.proxy.type/d' $js
- fi
- echo "// Preferences for using the GNU Name System" >> $js
- echo "user_pref(\"network.proxy.socks\", \"localhost\");" >> $js
- echo "user_pref(\"network.proxy.socks_port\", $PORT);" >> $js
- echo "user_pref(\"network.proxy.socks_remote_dns\", true);" >> $js
- echo "user_pref(\"network.proxy.type\", 1);" >> $js
- done
-
- # Chromium
- PROFILE=/home/$USER/.profile
- if [ -f $PROFILE ]; then
- sed -i '/CHROMIUM_USER_FLAGS/d' $PROFILE
- fi
- echo "export CHROMIUM_USER_FLAGS=--proxy-server=socks5://localhost:$PORT" \
- >> $PROFILE
- ;;
-* )
- ;;
-esac
-
-echo "Done."
diff --git a/testing/gnurl/APKBUILD b/testing/gnurl/APKBUILD
deleted file mode 100644
index 4f89eef56c6..00000000000
--- a/testing/gnurl/APKBUILD
+++ /dev/null
@@ -1,86 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer:
-pkgname=gnurl
-pkgver=7.69.1
-pkgrel=0
-pkgdesc="A micro fork of libcurl"
-url="https://gnunet.org/en/gnurl.html"
-arch="all"
-license="MIT"
-depends="ca-certificates"
-depends_dev="gnutls-dev libidn2-dev zlib-dev"
-checkdepends="python3"
-makedepends="$depends_dev perl"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://mirror.kumi.systems/gnu/gnunet/gnurl-$pkgver.tar.gz"
-
-# secfixes:
-# 7.66.0-r0:
-# - CVE-2019-5482
-# - CVE-2019-5481
-# 7.65.0-r0:
-# - CVE-2019-5436
-
-build() {
- # Note: The second group of options is based on
- # http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/www/gnurl/Makefile?rev=1.9&content-type=text/x-cvsweb-markup.
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --enable-ipv6 \
- --enable-static \
- --enable-unix-sockets \
- --with-ca-path=/etc/ssl/certs \
- --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt \
- --with-pic \
- \
- --without-libssh2 \
- --without-libmetalink \
- --without-winidn \
- --without-librtmp \
- --without-nghttp2 \
- --without-nss \
- --without-cyassl \
- --without-ssl \
- --without-winssl \
- --without-darwinssl \
- --disable-sspi \
- --disable-ldap \
- --without-libpsl \
- --disable-rtsp \
- --disable-dict \
- --disable-telnet \
- --disable-tftp \
- --disable-pop3 \
- --disable-imap \
- --disable-smtp \
- --disable-gopher \
- --disable-file \
- --disable-ftp \
- --disable-smb \
- --disable-ntlm-wb \
- --with-gnutls \
- --with-libidn2 \
- --with-libz \
- --without-ca-fallback \
- --without-gssapi \
- --disable-valgrind \
- --without-ngtcp2 \
- --without-nghttp2 \
- --without-nghttp3 \
- --without-quiche
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="aaef41159bcaee5c462658174d952b0ca4612775d8c57f1c8f328e7fad2a6332d6c9fc66461fc487c85309d2328f0bf880cb341975c3734a2323aed3d0d68130 gnurl-7.69.1.tar.gz"
diff --git a/testing/go-acceptlanguageparser/APKBUILD b/testing/go-acceptlanguageparser/APKBUILD
deleted file mode 100644
index c3d9856b950..00000000000
--- a/testing/go-acceptlanguageparser/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-acceptlanguageparser
-_pkgname=goacceptlanguageparser
-_vendor="strukturag"
-pkgver=100
-pkgrel=3
-pkgdesc="Go library for parsing HTTP request header Accept-Language"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/${_pkgname}_v$pkgver.tar.gz"
-builddir="$srcdir"/${_pkgname}-${_pkgname}_v$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.md \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv *.go "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="319bccac8bd61677b9e1437e54053b70feb4bdc1ce289ca9c68594fe0731b3efc3fbc77a9bfd2dbedc9a0a52d01bdd269981eb7d49a515ff0a6dc27c2811923d go-acceptlanguageparser-100.tar.gz"
diff --git a/testing/go-conf/APKBUILD b/testing/go-conf/APKBUILD
deleted file mode 100644
index cdb4f9f829d..00000000000
--- a/testing/go-conf/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-conf
-_pkgname=goconf
-_vendor=dlintw
-pkgver=0_git20170102
-pkgrel=3
-pkgdesc="goconf package - fork from https://code.google.com/p/goconf/"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-source="https://dev.alpinelinux.org/archive/$_pkgname/$_pkgname-$pkgver.tar.gz"
-giturl="https://github.com/dlintw/$_pkgname.git"
-disturl="larena@dev.alpinelinux.org:/archive/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- cd "$builddir"
- export GOPATH="$srcdir" make all
-}
-
-check() {
- cd "$builddir"
- export GOPATH="$srcdir" make test
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/vendor/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv *.go "$pkgdir"/usr/lib/go/src/vendor/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="b497d81356b8dc93b6421cadfd4e396399ff7eea183fec1509f925d46b3d19367294c2515589d3f1ee3dd20169980615a8bec030a9a7479274b9add2446c0e59 goconf-0_git20170102.tar.gz"
diff --git a/testing/go-context/APKBUILD b/testing/go-context/APKBUILD
deleted file mode 100644
index c91c7c1adf1..00000000000
--- a/testing/go-context/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor:
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-context
-_pkgname=context
-_vendor=gorilla
-pkgver=1.1
-pkgrel=3
-pkgdesc="A golang registry for global request variables"
-url="http://www.gorillatoolkit.org"
-arch="noarch"
-license="BSD-3-Clause"
-subpackages="$pkgname-doc"
-depends="go"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/vendor/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.md \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/vendor/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="a4864abec77e82c63f075c18517b4c486e6196b80f234f667d3d7d29bbd67967f0c0df80a398c0aa9c7a6d4e57326b3c3045f541a258d02c02d6ced5f0bc2327 go-context-1.1.tar.gz"
diff --git a/testing/go-httputils/APKBUILD b/testing/go-httputils/APKBUILD
deleted file mode 100644
index ccc2db83caf..00000000000
--- a/testing/go-httputils/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-httputils
-_pkgname=httputils
-_vendor="strukturag"
-pkgver=012
-pkgrel=2
-pkgdesc="Go support library for HTTP servers"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/strukturag/$_pkgname/archive/${_pkgname}_v$pkgver.tar.gz"
-builddir="$srcdir"/${_pkgname}-${_pkgname}_v$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$_pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="e508c121f6b226dcc8f7eea2104e3bf620ada5c8d66e5569cb3e6f33f95d7ce5cac97f4e1b34afb34fc13e280ec9e3ea846b408412ddf3badcfb70674a328d84 go-httputils-012.tar.gz"
diff --git a/testing/go-jsonnet/APKBUILD b/testing/go-jsonnet/APKBUILD
new file mode 100644
index 00000000000..cbf26ec4a88
--- /dev/null
+++ b/testing/go-jsonnet/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=go-jsonnet
+pkgver=0.20.0
+pkgrel=6
+pkgdesc="Implementation of Jsonnet in Go"
+url="https://jsonnet.org"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/google/go-jsonnet/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+case "$CARCH" in
+ s390x|riscv64) options="!check" ;; # blocked by rapidyaml -> jsonnet-dev
+ *) checkdepends="jsonnet-dev" ;;
+esac
+
+build() {
+ for bin in jsonnet jsonnetfmt jsonnet-deps jsonnet-lint; do
+ go build ./cmd/$bin
+ done
+}
+
+check() {
+ # C bindings tests (using Python) depend on the vendored jsonnet C++ source code
+ go test ./...
+}
+
+package() {
+ for bin in jsonnet jsonnetfmt jsonnet-deps jsonnet-lint; do
+ install -Dm755 ./$bin -t "$pkgdir"/usr/bin/
+ done
+}
+
+sha512sums="
+0ba06e254a6442764fd016c912968ab373b7fd21044175bbbc465b8fbda42f669bcbbd30d518427279d44f84b9b7678f7152192116c58c4b0bd1642f24136a3c go-jsonnet-0.20.0.tar.gz
+"
diff --git a/testing/go-mtpfs/APKBUILD b/testing/go-mtpfs/APKBUILD
new file mode 100644
index 00000000000..7874e81571e
--- /dev/null
+++ b/testing/go-mtpfs/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=go-mtpfs
+pkgver=1.0.0
+pkgrel=19
+pkgdesc="Mount MTP devices over FUSE"
+url="https://github.com/hanwen/go-mtpfs"
+arch="all"
+license="BSD-3-Clause"
+makedepends="go libusb-dev"
+options="net !check" # tests require MTP device to be connected
+source="$pkgname-$pkgver.tar.gz::https://github.com/hanwen/go-mtpfs/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build
+}
+
+package() {
+ install -Dm755 "$builddir"/go-mtpfs "$pkgdir"/usr/bin/go-mtpfs
+}
+
+sha512sums="
+b66d4f3179f95a7137cdc921fc171a260d23c4d003bd680b92791b6aab79484c75dd3a5ec39129d42b52822b95711f98438900033da4aedecc7c6dc5e0f6a834 go-mtpfs-1.0.0.tar.gz
+"
diff --git a/testing/go-mux/APKBUILD b/testing/go-mux/APKBUILD
deleted file mode 100644
index 8ddfb2bd1f4..00000000000
--- a/testing/go-mux/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-mux
-_pkgname=mux
-_vendor=gorilla
-pkgver=1.7.3
-pkgrel=0
-pkgdesc="A powerful URL router and dispatcher for golang"
-url="http://www.gorillatoolkit.org"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/gorilla/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$_pkgname
- done
- mv *.go "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="90e3da0f680ea0cf8d771cae9cbb5e35867f0e0a08f9ab7d22048b19851b57f1353f435abff7ea1db3c190081e363092e93cd6a57c2a64b6531458c2f6054365 go-mux-1.7.3.tar.gz"
diff --git a/testing/go-nats/APKBUILD b/testing/go-nats/APKBUILD
deleted file mode 100644
index c4e9c0cff60..00000000000
--- a/testing/go-nats/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-nats
-pkgver=1.5.0
-pkgrel=1
-pkgdesc="Golang client for NATS, the cloud native messaging system"
-url="https://github.com/nats-io/go-nats"
-arch="noarch"
-license="MIT"
-depends="go"
-subpackages="$pkgname-doc"
-_vendor="nats-io"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$pkgname
- # some programs look for "nats" library
- ln -s go-nats "$pkgdir"/usr/lib/go/src/github.com/$_vendor/nats
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- TODO.* \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$pkgname
-}
-
-sha512sums="e7af1fa4c337cb578583c1c920ebfb9df60be0abe1aa99a0932792a509ee7b0ea1a02bef4bd5d4307c6259b1f73420d289d2a67966e69d3427e049139c862b09 go-nats-1.5.0.tar.gz"
diff --git a/testing/go-nuid/APKBUILD b/testing/go-nuid/APKBUILD
deleted file mode 100644
index 6c5489e4c1a..00000000000
--- a/testing/go-nuid/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-nuid
-_pkgname=nuid
-_vendor="nats-io"
-pkgver=1.0.0
-pkgrel=3
-pkgdesc="NATS Unique Identifiers"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="MIT"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/vendor/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/vendor/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="b4a02aae9b29ee00bc482d7eda6ff9fdb1e64419e0d728ce4c1180027e6e4846444ace2376abf7a0f597c5e08a27594708d48257348555b1c611d6a588e2a734 go-nuid-1.0.0.tar.gz"
diff --git a/testing/go-passbolt-cli/APKBUILD b/testing/go-passbolt-cli/APKBUILD
new file mode 100644
index 00000000000..edceadae8cf
--- /dev/null
+++ b/testing/go-passbolt-cli/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=go-passbolt-cli
+pkgver=0.3.1
+pkgrel=0
+pkgdesc="Command-line tool to interact with Passbolt"
+url="https://github.com/passbolt/go-passbolt-cli"
+arch="all"
+license="MIT"
+makedepends="go"
+source="
+ https://github.com/passbolt/go-passbolt-cli/archive/v$pkgver/go-passbolt-cli-$pkgver.tar.gz
+ passbolt-cli-helper.sh
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o go-passbolt-cli
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 go-passbolt-cli "$pkgdir"/usr/bin/go-passbolt-cli
+ install -Dm755 "$srcdir"/passbolt-cli-helper.sh "$pkgdir"/usr/bin/passbolt-cli-helper
+}
+
+sha512sums="
+d6f57f897d47597d6c0399ac5a0096fdb1c5ee371fac8ff07d75c679623886f81b90a3bdc6356df0ab0b44323fb73ace2d5128dd87238321f91a8a1d80aed905 go-passbolt-cli-0.3.1.tar.gz
+93daf603af9945e70cd009eb7a9326049622299b3f1f55b41ae98f1eaa07ce8778d27915bf1e96aa7b7d34c492ab0ce11d8481f616b9ca464e497b82bd18289f passbolt-cli-helper.sh
+"
diff --git a/testing/go-passbolt-cli/passbolt-cli-helper.sh b/testing/go-passbolt-cli/passbolt-cli-helper.sh
new file mode 100755
index 00000000000..d47b954f92a
--- /dev/null
+++ b/testing/go-passbolt-cli/passbolt-cli-helper.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -eu
+
+requested_name=$1
+id=$2
+
+# OPTIMIZE: Only call api once
+name=$(go-passbolt-cli get resource --id $id | awk '/^Name:/ { print $2 }')
+if [ "$name" != "$requested_name" ]; then
+ echo "Name does not match (expected: $requested_name, returned: $name)" >&2
+ exit 1
+fi
+
+pass=$(go-passbolt-cli get resource --id $id | awk '/^Password:/ { print $2 }')
+
+echo "$pass"
diff --git a/testing/go-phoenix/APKBUILD b/testing/go-phoenix/APKBUILD
deleted file mode 100644
index c8b15ec9159..00000000000
--- a/testing/go-phoenix/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-phoenix
-_pkgname=phoenix
-_vendor="strukturag"
-pkgver=1.0.2
-_ver=${pkgver//./}
-pkgrel=3
-pkgdesc="Go library providing support functionality for application startup, configuration, logging, and profiling."
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/strukturag/$_pkgname/archive/${_pkgname}_v$_ver.tar.gz"
-builddir="$srcdir"/$_pkgname-${_pkgname}_v$_ver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="7b673e57135098b99fcc54cbe6b72dbd84a0342e2f8371e3b815e0a7598c2e4d4dccbbe6a71d250b88f9ad9ce285a4e108886ff3d2a77acc7eba1cf19bd4f7a2 go-phoenix-1.0.2.tar.gz"
diff --git a/testing/go-pkac/APKBUILD b/testing/go-pkac/APKBUILD
deleted file mode 100644
index 5ba61ec90b3..00000000000
--- a/testing/go-pkac/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-pkac
-_pkgname=pkac
-_vendor="longsleep"
-pkgver=0.1.0
-pkgrel=2
-pkgdesc="SPKAC/PKAC HTML keygen element data decoding for Go"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.md \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="0c279736f116dc585ae2475cb727915c88b2424efa219a115b33f5c2da2272caa8faab0eee93f8473c749d5dea1a10f1ab32b10f7e17a69bf11380a1b066c99a go-pkac-0.1.0.tar.gz"
diff --git a/testing/go-securecookie/APKBUILD b/testing/go-securecookie/APKBUILD
deleted file mode 100644
index 894f90709e6..00000000000
--- a/testing/go-securecookie/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-securecookie
-_pkgname=securecookie
-_vendor=gorilla
-pkgver=1.1
-pkgrel=3
-pkgdesc="Encodes and decodes authenticated and optionally encrypted cookie values for Go"
-url="http://www.gorillatoolkit.org"
-arch="noarch"
-license="BSD-3-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="6473fdeb32f7a5182dc836e9588f3b7c2a29e1a244f36ac2077caad7a60dedeb5acf2da7766d270a5ef0ab1cef2c229e4b296cdf259569af1e9c99a382e31c2b go-securecookie-1.1.tar.gz"
diff --git a/testing/go-sloth/APKBUILD b/testing/go-sloth/APKBUILD
deleted file mode 100644
index 07a56af81c3..00000000000
--- a/testing/go-sloth/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-sloth
-_pkgname=sloth
-_vendor="strukturag"
-pkgver=0.9.2
-pkgrel=3
-pkgdesc="A tiny REST framework for Go"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="MIT"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/${_pkgname}-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS.* \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv *.go "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="2d7550e2cd0f7ae259567a5611886bb70132ca0bf5fc7e85f80f6cb31233cc45120cd8feb862666f31b43fd95de83713e7cfc38687074ea6659b9dd6dbd08332 go-sloth-0.9.2.tar.gz"
diff --git a/testing/go-spreed-turnservicecli/APKBUILD b/testing/go-spreed-turnservicecli/APKBUILD
deleted file mode 100644
index 53eddaf698f..00000000000
--- a/testing/go-spreed-turnservicecli/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-spreed-turnservicecli
-_pkgname=spreed-turnservicecli
-_vendor="strukturag"
-pkgver=0.1.0
-pkgrel=3
-pkgdesc="TURN service client implementation for Go"
-url="https://github.com/$_vendor/$_pkgname"
-arch="noarch"
-license="AGPL-3.0-only"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="a9b82985154c8d0ffa85c684204650fd28af4e868f3c20c1f1524144ab208adb7199f694c3a0787f09994485ad64f857321d41773f80ac18f22161f01273459d go-spreed-turnservicecli-0.1.0.tar.gz"
diff --git a/testing/go-swag/APKBUILD b/testing/go-swag/APKBUILD
new file mode 100644
index 00000000000..09808eb35cb
--- /dev/null
+++ b/testing/go-swag/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=go-swag
+pkgver=1.8.12
+pkgrel=4
+pkgdesc="Automatically generate RESTful API documentation with Swagger 2.0 for Go"
+url="https://github.com/swaggo/swag"
+arch="all"
+license="MIT"
+makedepends="go"
+# upstream issue (enums-test-32bit): https://github.com/swaggo/swag/issues/1633
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/swaggo/swag/archive/refs/tags/v$pkgver.tar.gz
+ enums-test-32bit.patch
+ "
+builddir="$srcdir/swag-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make build
+}
+
+check() {
+ # do not NOT as root! some tests fail if run as root.
+ export GOROOT="/usr/lib/go"
+
+ if [ "$CARCH" = "riscv64" ]; then
+ # TestGen_BuildDescriptionWithQuotes makes use of 'go build -buildmode=plugin' which is not supported on riscv64.
+ go test -run '!(^(TestGen_BuildDescriptionWithQuotes)$)' ./...
+ else
+ make test
+ fi
+}
+
+package() {
+ install -Dm0755 swag "$pkgdir"/usr/bin/go-swag
+ ln -s /usr/bin/go-swag "$pkgdir/usr/bin/swag"
+}
+
+sha512sums="
+29c29c0a9bd17c4b783436967c7c2a1a0fcde2ad11dfd4cb6ee26991f26c49c6fdd541c7a5d62628c3aa9b4f56a657d1ecaf46dd48b57264f4420cda2e984fee go-swag-1.8.12.tar.gz
+24a30976e7aab4708cc8e740ff77a99d5ce5b0bde0dffe4598161ab53ebbaa3ac39c19acb83d290cca9a38bc3515cb10ec8310def6a9a016f98ff86075d591a2 enums-test-32bit.patch
+"
diff --git a/testing/go-swag/enums-test-32bit.patch b/testing/go-swag/enums-test-32bit.patch
new file mode 100644
index 00000000000..770388886a1
--- /dev/null
+++ b/testing/go-swag/enums-test-32bit.patch
@@ -0,0 +1,22 @@
+diff --git a/enums_test.go b/enums_test.go
+index dbae10d..ca5f189 100644
+--- a/enums_test.go
++++ b/enums_test.go
+@@ -2,6 +2,7 @@ package swag
+
+ import (
+ "encoding/json"
++ "math"
+ "os"
+ "path/filepath"
+ "testing"
+@@ -21,7 +22,8 @@ func TestParseGlobalEnums(t *testing.T) {
+ assert.NoError(t, err)
+ assert.Equal(t, string(expected), string(b))
+ constsPath := "github.com/swaggo/swag/testdata/enums/consts"
+- assert.Equal(t, 64, p.packages.packages[constsPath].ConstTable["uintSize"].Value)
++ bitsizeHostUint := int(math.Round(math.Log2(float64(^uintptr(0)))))
++ assert.Equal(t, bitsizeHostUint, p.packages.packages[constsPath].ConstTable["uintSize"].Value)
+ assert.Equal(t, int32(62), p.packages.packages[constsPath].ConstTable["maxBase"].Value)
+ assert.Equal(t, 8, p.packages.packages[constsPath].ConstTable["shlByLen"].Value)
+ assert.Equal(t, 255, p.packages.packages[constsPath].ConstTable["hexnum"].Value)
diff --git a/testing/go-uuid/APKBUILD b/testing/go-uuid/APKBUILD
deleted file mode 100644
index 3c40e3f90c4..00000000000
--- a/testing/go-uuid/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-uuid
-_pkgname=go.uuid
-pkgver=1.2.0
-pkgrel=2
-pkgdesc="UUID package for Go"
-url="https://github.com/satori/$_pkgname"
-arch="noarch"
-license="MIT"
-depends="go"
-subpackages="$pkgname-doc"
-_vendor="satori"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="ed1089397ec2bd4f8852ec3d0888a48be73f183e1b2e582c74fcc6363f605bbcf7dcbb26142eeffe23026b72ec85dbe6af52ae1e16234258dd9a2d7a6bdc8dae go-uuid-1.2.0.tar.gz"
diff --git a/testing/go-websocket/APKBUILD b/testing/go-websocket/APKBUILD
deleted file mode 100644
index 37b1ff55471..00000000000
--- a/testing/go-websocket/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=go-websocket
-_pkgname=websocket
-_vendor=gorilla
-pkgver=1.4.0
-pkgrel=0
-pkgdesc="A WebSocket implementation for Go"
-url="http://www.gorillatoolkit.org"
-arch="noarch"
-license="BSD-2-Clause"
-depends="go"
-subpackages="$pkgname-doc"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-package() {
- mkdir -p "$pkgdir"/usr/share/doc/$_vendor/$pkgname \
- "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
- for file in \
- LICENSE \
- README.* \
- COPYRIGHT \
- AUTHORS \
- examples \
- ; do \
- test -e $file && mv $file "$pkgdir"/usr/share/doc/$_vendor/$pkgname
- done
- mv * "$pkgdir"/usr/lib/go/src/github.com/$_vendor/$_pkgname
-}
-
-sha512sums="c358358d8c081e32eb06bde901c1d060de7ca08c2a60541dc06f70936a94de3d6a8ae26dd86ebceeeef6c2b75f9c79a0c4a1f8fc6ee84f5ed7ec9fe6f9c7dee4 go-websocket-1.4.0.tar.gz"
diff --git a/testing/gobang/APKBUILD b/testing/gobang/APKBUILD
new file mode 100644
index 00000000000..8a4126fbe21
--- /dev/null
+++ b/testing/gobang/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=gobang
+pkgver=0.1.0_alpha5
+_pkgver=0.1.0-alpha.5
+pkgrel=1
+pkgdesc="Cross-platform TUI database management tool written in Rust"
+url="https://github.com/TaKO8Ki/gobang"
+arch="x86_64 armv7 armhf aarch64 x86" # limited by rust/cargo/ring crate
+license="GPL-2.0-or-later"
+makedepends="
+ cargo
+ cargo-auditable
+ rust
+ "
+source="https://github.com/TaKO8Ki/gobang/archive/refs/tags/v$_pkgver/gobang-v$_pkgver.tar.gz"
+options="!check" # no test suite
+builddir="$srcdir/$pkgname-$_pkgver/"
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -D -m755 target/release/gobang -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+364c7ece048846ff19a35fba67a3c16b1ff9c1b22b0caea5b9153294d7f2a2518808e15cad37b9f6adacc001f1883d21947468b73c29746299c3126fe44920cc gobang-v0.1.0-alpha.5.tar.gz
+"
diff --git a/testing/gobolight/APKBUILD b/testing/gobolight/APKBUILD
deleted file mode 100644
index ee4ef00d8ef..00000000000
--- a/testing/gobolight/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=gobolight
-_pkgname=GoboLight
-pkgver=0.1
-pkgrel=0
-pkgdesc="Ultra-minimal backlight tool"
-url="https://github.com/gobolinux/GoboLight"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="autoconf automake"
-options="suid !check" # no tests provided
-source="$pkgname-$pkgver.tar.gz::https://github.com/gobolinux/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- cd "$builddir"
- ./autogen.sh
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc
- make
-}
-
-package() {
- cd "$builddir"
- make install -j1 DESTDIR="$pkgdir"
-}
-
-sha512sums="1c990cf5dae617ebd230da2bcaa79fea652106051cd4584a69b33cb66a3bfa94f71623e2e30104c9a95958cc2417a20c8cf179709ba826216b57a1c7e2a77e7c gobolight-0.1.tar.gz"
diff --git a/testing/gobuster/APKBUILD b/testing/gobuster/APKBUILD
new file mode 100644
index 00000000000..952961cb56d
--- /dev/null
+++ b/testing/gobuster/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Pedro Filipe <xpecex@outlook.com>
+pkgname=gobuster
+pkgver=3.6.0
+pkgrel=4
+pkgdesc="Directory/File, DNS and VHost busting tool written in Go"
+url="https://github.com/OJ/gobuster"
+arch="all !s390x"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OJ/gobuster/archive/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o build/gobuster
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 "./build/gobuster" "$pkgdir/usr/bin/gobuster"
+}
+
+sha512sums="
+838a90dfa439e7955ac190beee3871b8b3fb7bfa66ba0b42be9433cfa8b4ee695be0688a5726e7f7eea86f6cd517591b3fe4fbd10a8110874afa8c8199ce2108 gobuster-3.6.0.tar.gz
+"
diff --git a/testing/gocryptfs/APKBUILD b/testing/gocryptfs/APKBUILD
deleted file mode 100644
index 467dcf9a093..00000000000
--- a/testing/gocryptfs/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: André Klitzing <aklitzing@gmail.com>
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=gocryptfs
-pkgver=1.8.0
-pkgrel=0
-pkgdesc="Encrypted overlay filesystem written in Go"
-url="https://github.com/rfjakob/gocryptfs"
-arch="all !mips !mips64" # FTBFS
-license="MIT"
-makedepends="go coreutils bash openssl-dev"
-depends="fuse"
-options="chmod-clean !check" # test requires fuse kernel module
-source="https://github.com/rfjakob/gocryptfs/releases/download/v$pkgver/gocryptfs_v${pkgver}_src-deps.tar.gz
- remove_pandoc.patch"
-builddir="$srcdir/gopath/src/github.com/rfjakob/$pkgname"
-
-prepare() {
- mkdir -p "$srcdir/gopath/src/github.com/rfjakob"
- ln -rTsf "$srcdir/${pkgname}_v${pkgver}_src-deps" "$srcdir/gopath/src/github.com/rfjakob/$pkgname"
- default_prepare
-}
-
-build() {
- export GOPATH="$srcdir/gopath"
- make build
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/share/licenses
-}
-
-sha512sums="fa27181788ddfe4024f41e335c27e6102e90f08abb63c8125e7aca82baf2aea43b8a365ad320545f85bd71a8254a36b6bd2fc2a14815a17adcb39a21ad5640d1 gocryptfs_v1.8.0_src-deps.tar.gz
-602468bf28273a99361d6610bec75c81deb5e7d42026f82d6fcab06dabd3312dcf2b1ba2411e02e86bc4842af9d53e6ef023013b93afd39bd1823ad76ff8a157 remove_pandoc.patch"
diff --git a/testing/gocryptfs/remove_pandoc.patch b/testing/gocryptfs/remove_pandoc.patch
deleted file mode 100644
index 5f88f117e28..00000000000
--- a/testing/gocryptfs/remove_pandoc.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -ruN gocryptfs_v1.7.1_src-deps/Makefile gocryptfs_v1.7.1_src-deps/Makefile
---- gocryptfs_v1.7.1_src-deps/Makefile
-+++ gocryptfs_v1.7.1_src-deps/Makefile
-@@ -1,7 +1,6 @@
- .phony: build
- build:
- ./build.bash
-- ./Documentation/MANPAGE-render.bash
-
- .phony: test
- test:
-@@ -20,6 +19,4 @@
- install:
- install -Dm755 -t "$(DESTDIR)/usr/bin/" gocryptfs
- install -Dm755 -t "$(DESTDIR)/usr/bin/" gocryptfs-xray/gocryptfs-xray
-- install -Dm644 -t "$(DESTDIR)/usr/share/man/man1/" Documentation/gocryptfs.1
-- install -Dm644 -t "$(DESTDIR)/usr/share/man/man1/" Documentation/gocryptfs-xray.1
- install -Dm644 -t "$(DESTDIR)/usr/share/licenses/gocryptfs" LICENSE
diff --git a/testing/godot/APKBUILD b/testing/godot/APKBUILD
index 412d5411c97..bc2aff8aca5 100644
--- a/testing/godot/APKBUILD
+++ b/testing/godot/APKBUILD
@@ -1,36 +1,145 @@
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=godot
-pkgver=3.1.2
+pkgver=4.1.3
pkgrel=1
-pkgdesc="An advanced, feature packed, multi-platform 2D and 3D game engine"
-url="http://www.godotengine.org"
-arch="x86_64" # deactivated for other architecture due to conflicts between binaries
+pkgdesc="Multi-platform 2D and 3D game engine"
+url="https://godotengine.org"
license="MIT"
-# TODO: Use system freetype instead of bundled one.
-makedepends="scons gcc python3 libxcursor-dev libxinerama-dev libexecinfo-dev
- libxrandr-dev libxi-dev libx11-dev alsa-lib-dev mesa-dev yasm-dev"
-options="!check" # no testsuites
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/godotengine/godot/archive/$pkgver-stable.tar.gz
- crash_handler_x11.patch"
-builddir="$srcdir/$pkgname-$pkgver-stable"
+# Only armv7 and x86_64 are tested, give other architectures a try
+# build system is completely broken and refuses to detect anything correctly
+arch="x86_64 x86 armv7 aarch64"
+makedepends="
+ alsa-lib-dev
+ enet-dev
+ freetype-dev
+ glslang-dev
+ graphite2-dev
+ harfbuzz-dev
+ icu-dev
+ libgudev-dev
+ libogg-dev
+ libpng-dev
+ libtheora-dev
+ libvorbis-dev
+ libwebp-dev
+ libx11-dev
+ libxcursor-dev
+ libxi-dev
+ libxinerama-dev
+ libxrandr-dev
+ mbedtls2-dev
+ mesa-dev
+ miniupnpc-dev
+ opusfile-dev
+ pcre2-dev
+ pulseaudio-dev
+ python3-dev
+ scons
+ wslay-dev
+ zlib-dev
+ zstd-dev
+ "
+depends="ca-certificates-bundle"
+subpackages="$pkgname-doc $pkgname-templates"
+source="https://github.com/godotengine/godot/releases/download/$pkgver-stable/godot-$pkgver-stable.tar.xz
+ gcc13.patch
+ no-execinfo.patch
+ "
+options="!check" # No tests
+builddir="$srcdir"/godot-"$pkgver"-stable
+_sconsflags="
+ builtin_certs=false
+ builtin_enet=false
+ builtin_freetype=false
+ builtin_glslang=false
+ builtin_graphite=false
+ builtin_harfbuzz=false
+ builtin_icu4c=false
+ builtin_libogg=false
+ builtin_libpng=false
+ builtin_libtheora=false
+ builtin_libvorbis=false
+ builtin_libwebp=false
+ builtin_mbedtls=false
+ builtin_miniupnpc=false
+ builtin_opus=false
+ builtin_pcre2=false
+ builtin_wslay=false
+ builtin_zlib=false
+ builtin_zstd=false
+ execinfo=false
+ system_certs_path=/etc/ssl/cert.pem
+ use_sowrap=false
+ speechd=false
+ use_static_cpp=false
+ "
+
+case "$CARCH" in
+aarch64|x86_64)
+ makedepends="$makedepends embree3-dev"
+ _sconsflags="$_sconsflags builtin_embree=false"
+ ;;
+esac
+
+case "$CARCH" in
+x86_64)
+ ;;
+*)
+ # only builds on x86_64
+ _sconsflags="$_sconsflags module_denoise_enabled=false"
+ ;;
+esac
build() {
- scons platform=x11 \
- tools=yes \
- target=release_debug \
- use_llvm=no \
- colored=yes \
- pulseaudio=no bits=64 -j4
+ case "$CARCH" in
+ x86_64)
+ local arch="x86_64"
+ ;;
+ x86)
+ local arch="x86_32"
+ ;;
+ armv7)
+ local arch="arm32"
+ ;;
+ aarch64)
+ local arch="arm64"
+ ;;
+ esac
+ export BUILD_NAME="alpine_linux"
+ for target in editor template_release template_debug; do
+ scons -j${JOBS:-1} \
+ platform=linuxbsd \
+ target=$target \
+ arch=$arch \
+ $_sconsflags \
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ LINKFLAGS="$LDFLAGS"
+ done
}
package() {
- install -Dm644 misc/dist/linux/org.godotengine.Godot.desktop "$pkgdir/usr/share/applications/godot.desktop"
- install -Dm644 icon.svg "$pkgdir/usr/share/pixmaps/godot.svg"
+ pkgdesc="$pkgdesc (GUI editor)"
+ install -Dm644 misc/dist/linux/org.godotengine.Godot.desktop \
+ -t "$pkgdir"/usr/share/applications/
+ install -Dm644 misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ -t "$pkgdir"/usr/share/metainfo/
+ install -Dm644 icon.png "$pkgdir"/usr/share/icons/hicolor/256x256/apps/godot.png
+ install -Dm644 icon.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/godot.svg
+ install -Dm644 misc/dist/linux/godot.6 -t "$pkgdir"/usr/share/man/man6/
+ install -Dm755 bin/godot.*.editor.* "$pkgdir"/usr/bin/godot
+ install -Dm755 bin/godot.*.template_debug.* "$pkgdir"/usr/bin/godot-template-debug
+ install -Dm755 bin/godot.*.template_release.* "$pkgdir"/usr/bin/godot-template-release
+}
- install -D -m755 bin/godot.x11.opt.tools.64 "$pkgdir/usr/bin/godot"
- install -D -m644 misc/dist/linux/godot.6 "$pkgdir/usr/share/man/man6/godot.6"
+templates() {
+ pkgdesc="$pkgdesc (templates)"
+ amove usr/bin/*template*
}
-sha512sums="b38ae8400c25d580b8aa642c857948158d7ea4a6f6103679984cf1119fb2d0455647f2e6d1262b32bc963b8a28c780a74aa0d2e9a1df8d98c0e8bc671d3f4f1f godot-3.1.2.tar.gz
-3d1d31a55dedbf66aba212d127351d9d9c89e2575bd50cdb6d9a6c40c240fdfdcb508f03562aedd8ef04acf8442ad5422522f0242a49ae06819a2f97983f0b44 crash_handler_x11.patch"
+
+sha512sums="
+e8dc812fc1bd98ce4d691d51fceb75d943fb40790c5a640e6178eb53b4de8b1078de8e1649e182963cb7beea26b2365c202f6deaea9bb679f789cd546d29f858 godot-4.1.3-stable.tar.xz
+129cf8c0331190a111b8d397b7975ef2087486d3fb083b3e02612d2a07b2601d989842f2ec591e2300819d37c4070f74b8d50194f8f9af3219452b856d534ff8 gcc13.patch
+7563942223564d5235d96a27c840ce0c9d7ceb9690ce1ed02f43c0c4e7b28e85f8311a18b79aeab545bdb83822604f05f98b561d2d00dd3a1b9cea60f528a7d8 no-execinfo.patch
+"
diff --git a/testing/godot/crash_handler_x11.patch b/testing/godot/crash_handler_x11.patch
deleted file mode 100644
index 951c8c028a3..00000000000
--- a/testing/godot/crash_handler_x11.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/platform/x11/crash_handler_x11.cpp
-+++ b/platform/x11/crash_handler_x11.cpp
-@@ -49,7 +49,7 @@
- if (OS::get_singleton() == NULL) {
- abort();
- }
--
-+#if defined(__linux__) && defined(__GLIBC__)
- void *bt_buffer[256];
- size_t size = backtrace(bt_buffer, 256);
- String _execpath = OS::get_singleton()->get_executable_path();
-@@ -89,7 +89,6 @@
- free(demangled);
- }
- }
--
- List<String> args;
-
- char str[1024];
-@@ -115,6 +114,7 @@
- free(strings);
- }
- fprintf(stderr, "-- END OF BACKTRACE --\n");
-+#endif
-
- // Abort to pass the error to the OS
- abort();
diff --git a/testing/godot/gcc13.patch b/testing/godot/gcc13.patch
new file mode 100644
index 00000000000..0db5a116aa8
--- /dev/null
+++ b/testing/godot/gcc13.patch
@@ -0,0 +1,10 @@
+--- a/thirdparty/vhacd/inc/vhacdManifoldMesh.h
++++ b/thirdparty/vhacd/inc/vhacdManifoldMesh.h
+@@ -15,6 +15,7 @@
+ #pragma once
+ #ifndef VHACD_MANIFOLD_MESH_H
+ #define VHACD_MANIFOLD_MESH_H
++#include <cstdint>
+ #include "vhacdCircularList.h"
+ #include "vhacdSArray.h"
+ #include "vhacdVector.h"
diff --git a/testing/godot/no-execinfo.patch b/testing/godot/no-execinfo.patch
new file mode 100644
index 00000000000..202bc9c02aa
--- /dev/null
+++ b/testing/godot/no-execinfo.patch
@@ -0,0 +1,27 @@
+diff --git a/platform/linuxbsd/crash_handler_linuxbsd.cpp b/platform/linuxbsd/crash_handler_linuxbsd.cpp
+index 3a24546..ae7430f 100644
+--- a/platform/linuxbsd/crash_handler_linuxbsd.cpp
++++ b/platform/linuxbsd/crash_handler_linuxbsd.cpp
+@@ -37,7 +37,6 @@
+ #include "main/main.h"
+
+ #ifdef DEBUG_ENABLED
+-#define CRASH_HANDLER_ENABLED 1
+ #endif
+
+ #ifdef CRASH_HANDLER_ENABLED
+diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py
+index 3f713d2..e27e1eb 100644
+--- a/platform/linuxbsd/detect.py
++++ b/platform/linuxbsd/detect.py
+@@ -429,8 +429,8 @@ def configure(env: "Environment"):
+ if not env["execinfo"] and platform.libc_ver()[0] != "glibc":
+ # The default crash handler depends on glibc, so if the host uses
+ # a different libc (BSD libc, musl), fall back to libexecinfo.
+- print("Note: Using `execinfo=yes` for the crash handler as required on platforms where glibc is missing.")
+- env["execinfo"] = True
++ # print("Note: Using `execinfo=yes` for the crash handler as required on platforms where glibc is missing.")
++ env["execinfo"] = False
+
+ if env["execinfo"]:
+ env.Append(LIBS=["execinfo"])
diff --git a/testing/gomp/APKBUILD b/testing/gomp/APKBUILD
new file mode 100644
index 00000000000..e7d4a401b5c
--- /dev/null
+++ b/testing/gomp/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Hygna <hygna@proton.me>
+# Maintainer: Hygna <hygna@proton.me>
+pkgname=gomp
+pkgver=1.0.0
+pkgrel=4
+pkgdesc="MPD client inspired by ncmpcpp with builtin cover-art view and LastFM integration."
+url="https://github.com/aditya-K2/gomp"
+arch="all"
+license="GPL-3.0-only"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/aditya-K2/gomp/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests suite
+
+build() {
+ go generate
+ go build
+}
+
+package() {
+ install -Dm 755 gomp "$pkgdir"/usr/bin/gomp
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+ccbdbc0f480e53deea818cd972c51abcdc4218788170f5a1a115363a581abc30bdb207dbc7b2240867fa35c55faa9b7bfc7223e8230a313285c1cf60fe7209ee gomp-1.0.0.tar.gz
+"
diff --git a/testing/googler/APKBUILD b/testing/googler/APKBUILD
deleted file mode 100644
index dbd666468e0..00000000000
--- a/testing/googler/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=googler
-pkgver=4.1
-pkgrel=0
-pkgdesc="Google Search, Google Site Search, Google News from the terminal"
-url="https://github.com/jarun/googler"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="python3"
-subpackages="$pkgname-doc
- $pkgname-bash-completion
- $pkgname-fish-completion
- $pkgname-zsh-completion
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/jarun/googler/archive/v$pkgver.tar.gz"
-
-build() {
- make disable-self-upgrade
-}
-
-package() {
- make install DESTDIR="$pkgdir" PREFIX=/usr
-
- install -Dm644 "$builddir"/auto-completion/bash/* \
- -t "$pkgdir"/usr/share/bash-completion/completions
- install -Dm644 "$builddir"/auto-completion/fish/* \
- -t "$pkgdir"/usr/share/fish/completions
- install -Dm644 "$builddir"/auto-completion/zsh/* \
- -t "$pkgdir"/usr/share/zsh/site-functions
-}
-
-sha512sums="0909c5c6045c0bdf185d623f2f6d39927e5094067301c9a449439c1ca2e07d9f2bb27ceef01bd0b74d61248482fb6e501d38c096ab66273218590470510e27e3 googler-4.1.tar.gz"
diff --git a/testing/goomwwm/APKBUILD b/testing/goomwwm/APKBUILD
index 4054f2834ee..746d897eee3 100644
--- a/testing/goomwwm/APKBUILD
+++ b/testing/goomwwm/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=goomwwm
pkgver=1.0.0
-pkgrel=1
+pkgrel=4
pkgdesc="Get out of my way, Window Manager!"
url="https://github.com/seanpringle/goomwwm"
arch="all"
diff --git a/testing/gops/APKBUILD b/testing/gops/APKBUILD
deleted file mode 100644
index ad6b18fe33c..00000000000
--- a/testing/gops/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=gops
-pkgver=0.3.10
-pkgrel=0
-pkgdesc="A tool to list and diagnose Go processes currently running on your system"
-url="https://github.com/google/gops"
-arch="all !mips64"
-license="BSD-3-Clause"
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/google/gops/archive/v$pkgver.tar.gz"
-
-build() {
- go build -ldflags "-s -w" -v -o bin/$pkgname
-}
-
-check() {
- go test ./...
-}
-
-package() {
- install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="f171447cdf33aeeba51c8d04e00bdc32dc002e06bce95470a0771b43384066416ff57aff95ec975a80baad96084dae7d60e38f0684ec224538cf16646b29eba7 gops-0.3.10.tar.gz"
diff --git a/testing/gopt/APKBUILD b/testing/gopt/APKBUILD
deleted file mode 100644
index 0bd637e5d68..00000000000
--- a/testing/gopt/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=gopt
-pkgver=8.1
-pkgrel=0
-pkgdesc="C library for parsing POSIX and GNU style command line arguments"
-url="http://www.purposeful.co.uk/software/gopt/"
-arch="all"
-license="TFL"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/thoni56/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
-
- $CC $CFLAGS -fPIC -pedantic -Wall -c gopt.c
-
- # Build shared lib.
- $CC $LDFLAGS -shared -o libgopt.so *.o
-
- # Build static lib.
- ar rc libgopt.a *.o
- ranlib libgopt.a
-
- # Build testing example.
- $CC $CFLAGS $LDFLAGS -L. gopt-usage.c -o gopt-usage -lgopt
-}
-
-check() {
- cd "$builddir"
- LD_LIBRARY_PATH=. ./gopt-usage --version
-}
-
-package() {
- local soname="libgopt.so.${pkgver%.*}"
-
- cd "$builddir"
-
- install -D -m 755 ${soname%.*} "$pkgdir"/usr/lib/$soname
- ln -s $soname "$pkgdir"/usr/lib/${soname%.*}
-
- install -D -m 644 libgopt.a "$pkgdir"/usr/lib/libgopt.a
- install -D -m 644 gopt.h "$pkgdir"/usr/include/gopt.h
-}
-
-sha512sums="2b5d6ab23a5aeccf22a9476f409f392e083ff481a6a0ae435e8e31197c3e3cf83085e1ce3a08162d98d1084420baff6cd45cef87eafec7827b82f58f2c8993c6 gopt-8.1.tar.gz"
diff --git a/testing/goreman/APKBUILD b/testing/goreman/APKBUILD
new file mode 100644
index 00000000000..b14631c0305
--- /dev/null
+++ b/testing/goreman/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=goreman
+pkgver=0.3.15
+pkgrel=5
+pkgdesc="Tool to manage Procfile-based applications"
+url="https://github.com/mattn/goreman"
+arch="all"
+license="MIT"
+makedepends="go"
+source="https://github.com/mattn/goreman/archive/v$pkgver/goreman-$pkgver.tar.gz"
+options="!check" # No test suite
+
+export GOFLAGS="$GOFLAGS -modcacherw -trimpath"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o bin/goreman .
+}
+
+package() {
+ install -Dm755 bin/goreman "$pkgdir"/usr/bin/goreman
+}
+
+sha512sums="
+62b725e537bba7c3bc89c74ea300e2974db1957dc4bb1a9cc9c98970588aeefd33ab3864a5fd4cfc90b9245c329b46dd68fd88dc5664722920de722925b552c6 goreman-0.3.15.tar.gz
+"
diff --git a/testing/gortr/APKBUILD b/testing/gortr/APKBUILD
new file mode 100644
index 00000000000..4019390ebfa
--- /dev/null
+++ b/testing/gortr/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=gortr
+pkgver=0.14.8
+pkgrel=5
+pkgdesc="The RPKI-to-Router server used at Cloudflare"
+url="https://rpki.cloudflare.com/"
+arch="all"
+license="BSD-3-Clause"
+options="net chmod-clean"
+makedepends="go"
+pkgusers="gortr"
+pkggroups="gortr"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cloudflare/gortr/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make \
+ OUTPUT_GORTR=dist/gortr \
+ OUTPUT_RTRDUMP=dist/rtrdump \
+ OUTPUT_RTRMON=dist/rtrmon \
+ build-gortr build-rtrdump build-rtrmon
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 dist/gortr "$pkgdir"/usr/bin/$pkgname
+ install -Dm755 dist/rtrdump "$pkgdir"/usr/bin/rtrdump
+ install -Dm755 dist/rtrmon "$pkgdir"/usr/bin/rtrmon
+
+ # Install RPKI root certificate, required to validate RPKI signed routes.
+ # This is vended by CloudFlare but extracted from the RPKI.
+ install -Dm644 cmd/gortr/cf.pub "$pkgdir"/usr/share/$pkgname/cf.pub
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+2d1793948783c40f4156f35e7b0ceb7422a09fe2d23f5d12373c8d3442688530329e1552c35ce63f6aef3b31efba10737095fde1e35e2bbb8a08fe4cbc1c311e gortr-0.14.8.tar.gz
+62142d3faa1cb34b39c1e1eb9698feb81dc7c53b3b0db9607b0c8cc10f3b20affc45525641e70fbc0aa0515abd02a48fe7a8a05ea809315ad90f5e139df39801 gortr.initd
+06d5a49b90584a53ed879c12fab2d5a6d3ca0c3d35cd71e2d213b1513bb5335c3f107fabdacb0ff29f301a51e875fb5358076cdc4a366d3e400b6910bfde1ec6 gortr.confd
+"
diff --git a/testing/gortr/gortr.confd b/testing/gortr/gortr.confd
new file mode 100644
index 00000000000..a6fe850bb1f
--- /dev/null
+++ b/testing/gortr/gortr.confd
@@ -0,0 +1,2 @@
+# Configuration for /etc/init.d/gortr
+GORTR_OPTS="-verify.key=/usr/share/gortr/cf.pub"
diff --git a/testing/gortr/gortr.initd b/testing/gortr/gortr.initd
new file mode 100644
index 00000000000..0d91ea3fc3e
--- /dev/null
+++ b/testing/gortr/gortr.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+
+name="gortr"
+description="The RPKI-to-Router server used at Cloudflare"
+
+command="/usr/bin/$RC_SVCNAME"
+command_args="$GORTR_OPTS"
+command_user="$RC_SVCNAME:$RC_SVCNAME"
+
+extra_started_commands="reload"
+description_reload="Reload configuration"
+
+error_log="/var/log/$RC_SVCNAME.log"
+
+depend() {
+ need net
+ after firewall
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME configuration"
+ $supervisor "$RC_SVCNAME" --signal HUP
+ eend $?
+}
diff --git a/testing/gortr/gortr.pre-install b/testing/gortr/gortr.pre-install
new file mode 100644
index 00000000000..933dd6296e3
--- /dev/null
+++ b/testing/gortr/gortr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S gortr 2>/dev/null
+adduser -S -D -H -h /var/empty -s /sbin/nologin -G gortr -g gortr gortr 2>/dev/null
+
+exit 0
diff --git a/testing/gosu/APKBUILD b/testing/gosu/APKBUILD
index 8dedb95ea63..3142bfaa91e 100644
--- a/testing/gosu/APKBUILD
+++ b/testing/gosu/APKBUILD
@@ -1,47 +1,28 @@
# Contributor: David Huffman <storedbox@outlook.com>
# Maintainer: David Huffman <storedbox@outlook.com>
-
-_gosu_repo='github.com/tianon/gosu'
-_gosu_ver=1.11
-_gosu_src="gosu-$_gosu_ver"
-
-_runc_repo='github.com/opencontainers/runc'
-_runc_ver=1.0.0-rc5
-_runc_src="runc-$_runc_ver"
-
pkgname=gosu
-pkgver=$_gosu_ver
+pkgver=1.17
pkgrel=2
pkgdesc="Simple Go-based setuid+setgid+setgroups+exec"
url="https://github.com/tianon/gosu"
arch="all"
-license="GPL-3.0-or-later"
+license="Apache-2.0"
makedepends="coreutils go"
-source="https://github.com/tianon/gosu/archive/$_gosu_ver/$_gosu_src.tar.gz
- https://github.com/opencontainers/runc/archive/v$_runc_ver/$_runc_src.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tianon/gosu/archive/refs/tags/$pkgver.tar.gz"
options="!check" # require docker to run tests
-builddir="$srcdir"/$_gosu_repo
-prepare() {
- mkdir -p $_gosu_repo $_runc_repo
- mv -T $_gosu_src $_gosu_repo
- mv -T $_runc_src $_runc_repo
-
- default_prepare
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- cd "$builddir"
- CGO_ENABLED=0 GOPATH="$startdir:$srcdir/$_runc_repo/Godeps/_workspace" \
- go build -v -ldflags '-s -w'
+ go build -v
}
package() {
- cd "$builddir"
- local bindir="$pkgdir/usr/bin"
- mkdir -p "$bindir"
- cp gosu "$bindir"
+ install -Dm755 gosu -t "$pkgdir"/usr/bin/
}
-sha512sums="f3f0c983b33ac63dc16aaeccf691d371b48772dac37c329b557843757ec85b385cfd0b80a2b628e8000690728fe42a2690faede202767f202178da5e84980e52 gosu-1.11.tar.gz
-714230887ff9706c29b0656c5cdb253698bde6252a23e7f48aa690747fb57abd7884c2da1c4d0e314f9f301c5962417351557d15d986e45fcc336e98069aeac6 runc-1.0.0-rc5.tar.gz"
+sha512sums="
+5a8bd7fce5c9080118dcf2c86332671441e133e44d08baea7dbc9f622e8d1bec1a229d3d7a38846bdcdcb66538222d5871e565e71eea1677fcd5727b836cdbce gosu-1.17.tar.gz
+"
diff --git a/testing/gotestsum/APKBUILD b/testing/gotestsum/APKBUILD
new file mode 100644
index 00000000000..d0a55a8272f
--- /dev/null
+++ b/testing/gotestsum/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=gotestsum
+pkgver=1.11.0
+pkgrel=2
+pkgdesc="Go test runner with output optimized for humans, JUnit XML for CI integration, and a summary of the test results"
+url="https://github.com/gotestyourself/gotestsum"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gotestyourself/gotestsum/archive/refs/tags/v$pkgver.tar.gz"
+options="net !check" # No check available
+
+build() {
+ go build -o dist/gotestsum .
+}
+
+package() {
+ install -Dm0755 dist/* -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+600845132b0f08198951239d611122eebc7ad535194717f57ce488dc1d795f09856bea08a860e25c72eb7f2a5f573f43a9ca1dec6790098f3c105d127585211e gotestsum-1.11.0.tar.gz
+"
diff --git a/testing/goxel/APKBUILD b/testing/goxel/APKBUILD
new file mode 100644
index 00000000000..179f3e56467
--- /dev/null
+++ b/testing/goxel/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=goxel
+pkgver=0.12.0
+pkgrel=0
+pkgdesc="Open source 3D voxel editor"
+url="https://goxel.xyz/"
+arch="all"
+license="GPL-3.0-only"
+makedepends="scons glfw-dev gtk+3.0-dev"
+options="!check" # check function not implemented
+source="https://github.com/guillaumechereau/goxel/archive/refs/tags/v$pkgver/goxel-$pkgver.tar.gz
+ goxel.desktop
+ fix-musl.patch
+ "
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ scons mode=release werror=false -j ${JOBS:-2}
+}
+
+package() {
+ install -Dm775 goxel "$pkgdir"/usr/bin/goxel
+
+ install -Dm644 icon.png "$pkgdir"/usr/share/icons/hicolor/1024x1024/apps/goxel.png
+ install -Dm644 "$srcdir"/goxel.desktop "$pkgdir"/usr/share/applications/goxel.desktop
+}
+
+sha512sums="
+6895d57eb393996e833b210dda09a442dc49d4cb42b2111114e925d8a0281c4f389d951d339dc2c475f59f66509e93e61deaa985860be9907d4ab222240a7080 goxel-0.12.0.tar.gz
+10662d11d73a51d06db753b4f1727e05b1b9a5ef63ee4321cd4f445806f6162af010f89d7f98ff3ba25df14df1fb9bc8693a98d93206af208fdb28b7a49e46e9 goxel.desktop
+f4305e54a67c4dc36386ba7943294537e38020c010b2483b2446a716f44072ed699358348101b2eb9229ef911b50141daab08a5462172d121f57e7ba9a8db59f fix-musl.patch
+"
diff --git a/testing/goxel/fix-musl.patch b/testing/goxel/fix-musl.patch
new file mode 100644
index 00000000000..908107bb175
--- /dev/null
+++ b/testing/goxel/fix-musl.patch
@@ -0,0 +1,13 @@
+diff --git a/ext_src/yocto/ext/filesystem.hpp b/ext_src/yocto/ext/filesystem.hpp
+index 860f5b2..c41e0e7 100644
+--- a/ext_src/yocto/ext/filesystem.hpp
++++ b/ext_src/yocto/ext/filesystem.hpp
+@@ -1525,7 +1525,7 @@ GHC_INLINE std::string systemErrorText(ErrorNumber code = 0)
+ std::string msg = toUtf8(std::wstring((LPWSTR)msgBuf));
+ LocalFree(msgBuf);
+ return msg;
+-#elif defined(GHC_OS_MACOS) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !defined(_GNU_SOURCE)) || (defined(GHC_OS_ANDROID) && __ANDROID_API__ < 23) || defined(EMSCRIPTEN)
++#elif true || defined(GHC_OS_MACOS) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !defined(_GNU_SOURCE)) || (defined(GHC_OS_ANDROID) && __ANDROID_API__ < 23) || defined(EMSCRIPTEN)
+ char buffer[512];
+ int rc = strerror_r(code ? code : errno, buffer, sizeof(buffer));
+ return rc == 0 ? (const char*)buffer : "Error in strerror_r!";
diff --git a/testing/goxel/goxel.desktop b/testing/goxel/goxel.desktop
new file mode 100644
index 00000000000..9c60a4fee47
--- /dev/null
+++ b/testing/goxel/goxel.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Goxel
+Exec=goxel
+Icon=goxel
+Categories=Graphics;
diff --git a/testing/gpa/APKBUILD b/testing/gpa/APKBUILD
index f68410478de..35e6bafbb01 100644
--- a/testing/gpa/APKBUILD
+++ b/testing/gpa/APKBUILD
@@ -2,14 +2,21 @@
# Maintainer:
pkgname=gpa
pkgver=0.10.0
-pkgrel=0
+pkgrel=2
pkgdesc="A graphical user interface for the GnuPG"
-url="https://www.gnupg.org/related_software/gpa/"
+url="https://gnupg.org/related_software/gpa/"
arch="all"
license="GPL-3.0-or-later AND GPL-2.0-or-later"
makedepends="gpgme-dev gtk+2.0-dev"
subpackages="$pkgname-doc"
-source="ftp://ftp.gnupg.org/gcrypt/gpa/gpa-$pkgver.tar.bz2"
+source="https://gnupg.org/ftp/gcrypt/gpa/gpa-$pkgver.tar.bz2"
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+ update_config_guess
+}
build() {
./configure \
diff --git a/testing/gperftools/APKBUILD b/testing/gperftools/APKBUILD
new file mode 100644
index 00000000000..33bb5dc9159
--- /dev/null
+++ b/testing/gperftools/APKBUILD
@@ -0,0 +1,108 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+pkgname=gperftools
+pkgver=2.10.80
+pkgrel=1
+pkgdesc="Fast, multi-threaded malloc and nifty performance analysis tools"
+url="https://github.com/gperftools/gperftools"
+# everything else fails even more tests or isn't supported
+arch="x86_64"
+license="BSD-3-Clause"
+makedepends="
+ autoconf
+ automake
+ libtool
+ libunwind-dev
+ linux-headers
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ tcmalloc
+ tcmalloc-minimal:tcmalloc_minimal
+ tcmalloc-debug:tcmalloc_debug
+ tcmalloc-minimal-debug:tcmalloc_minimal_debug
+ tcmalloc-profiler:tcmalloc_profiler
+ "
+checkdepends="
+ curl
+ "
+builddir="$srcdir/gperftools-gperftools-$pkgver"
+source="https://github.com/gperftools/gperftools/archive/refs/tags/gperftools-$pkgver.tar.gz
+ failed-tests.patch
+ pkgconfig.patch
+ "
+
+prepare() {
+ default_prepare
+
+ autoreconf -fvi
+}
+
+build() {
+ case "$CARCH" in
+ x86_64)
+ local frame_pointers="--enable-frame-pointers"
+ ;;
+ esac
+
+ ./configure \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --enable-libunwind \
+ $frame_pointers
+
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+pprof() {
+ pkgdesc="$pkgdesc (pprof tools)"
+ depends="perl"
+
+ amove usr/bin/pprof*
+}
+
+tcmalloc() {
+ pkgdesc="$pkgdesc (tcmalloc, full variant)"
+
+ amove usr/lib/libtcmalloc.so.*
+}
+
+tcmalloc_debug() {
+ pkgdesc="$pkgdesc (tcmalloc, debug variant)"
+
+ amove usr/lib/libtcmalloc_debug.so.*
+}
+
+tcmalloc_minimal() {
+ pkgdesc="$pkgdesc (tcmalloc, minimal variant)"
+
+ amove usr/lib/libtcmalloc_minimal.so.*
+}
+
+tcmalloc_minimal_debug() {
+ pkgdesc="$pkgdesc (tcmalloc, minimal+debug variant)"
+
+ amove usr/lib/libtcmalloc_minimal_debug.so.*
+}
+
+tcmalloc_profiler() {
+ pkgdesc="$pkgdesc (tcmalloc, profiling variant)"
+
+ amove usr/lib/libtcmalloc_and_profiler.so.*
+}
+
+sha512sums="
+b30c68b8e6831c2a8d78d632862a77603a6bfb4833c9a40ba7efe43d12f58e9e203079e56510f0512ebb5bf656b1e2d7f0c2bd8f830bdf03d015c506abdb4a2d gperftools-2.10.80.tar.gz
+d4f7cb16985e8e232c0f2e5794adfc06b30d42b4df860fe21954ce79a7537571a439ce3392c652372a44499bb0f3f5ad640d7b7fb1dbf60aa739b841f4723587 failed-tests.patch
+bfec285aa83fb8cc1d494bcde50caee3faae8c23e1519c64c43bed05f3c3ccf5ef012bbcfac7a0f4dd41d82d6d2d4589bcb42697ff1e41e20ed548eb5b103ada pkgconfig.patch
+"
diff --git a/testing/gperftools/failed-tests.patch b/testing/gperftools/failed-tests.patch
new file mode 100644
index 00000000000..58db9eae775
--- /dev/null
+++ b/testing/gperftools/failed-tests.patch
@@ -0,0 +1,29 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1081,7 +1081,7 @@
+
+ if WITH_HEAP_CHECKER
+
+-TESTS += heap-checker-death_unittest.sh$(EXEEXT)
++#TESTS += heap-checker-death_unittest.sh$(EXEEXT)
+ heap_checker_death_unittest_sh_SOURCES = src/tests/heap-checker-death_unittest.sh
+ noinst_SCRIPTS += $(top_srcdir)/$(heap_checker_death_unittest_sh_SOURCES)
+ heap-checker-death_unittest.sh$(EXEEXT): $(heap_checker_death_unittest_sh_SOURCES) \
+@@ -1090,7 +1090,7 @@
+ cp -p $(top_srcdir)/$(heap_checker_death_unittest_sh_SOURCES) $@
+
+ # These are sub-programs used by heap-checker_unittest.sh
+-TESTS += heap-checker_unittest
++# TESTS += heap-checker_unittest
+ HEAP_CHECKER_UNITTEST_INCLUDES = src/config_for_unittests.h \
+ src/memory_region_map.h \
+ src/base/commandlineflags.h \
+@@ -1190,7 +1190,7 @@
+
+ if WITH_HEAP_CHECKER
+
+-TESTS += heap-checker_debug_unittest
++#TESTS += heap-checker_debug_unittest
+ heap_checker_debug_unittest_SOURCES = $(heap_checker_unittest_SOURCES)
+ heap_checker_debug_unittest_CXXFLAGS = $(heap_checker_unittest_CXXFLAGS)
+ heap_checker_debug_unittest_LDFLAGS = $(heap_checker_unittest_LDFLAGS)
diff --git a/testing/gperftools/pkgconfig.patch b/testing/gperftools/pkgconfig.patch
new file mode 100644
index 00000000000..83642d9eb9d
--- /dev/null
+++ b/testing/gperftools/pkgconfig.patch
@@ -0,0 +1,19 @@
+From: ptrcnull <git@ptrcnull.me>
+Date: Sun, 15 Oct 2023 22:45:06 +0200
+Subject: [PATCH] fix loading .pc file with new pkgconf
+
+see https://gitlab.alpinelinux.org/alpine/aports/-/issues/15364
+
+diff --git a/Makefile.am b/Makefile.am
+index 05465de..aff1899 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1392,7 +1392,7 @@ libtcmalloc.pc: Makefile
+ echo '' >> "$@".tmp
+ echo 'Name: $(PACKAGE)' >> "$@".tmp
+ echo 'Version: $(VERSION)' >> "$@".tmp
+- echo 'Summary: Performance tools for C++' >> "$@".tmp
++ echo 'Description: Performance tools for C++' >> "$@".tmp
+ echo 'URL: https://github.com/gperftools/gperftools' >> "$@".tmp
+ echo 'Requires:' >> "$@".tmp
+ echo 'Libs: -L$${libdir} -ltcmalloc' >> "$@".tmp
diff --git a/testing/gpg-remailer/APKBUILD b/testing/gpg-remailer/APKBUILD
index f9d99ca6b9a..a41679ed4c0 100644
--- a/testing/gpg-remailer/APKBUILD
+++ b/testing/gpg-remailer/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Shiz <hi@shiz.me>
# Maintainer: Shiz <hi@shiz.me>
pkgname=gpg-remailer
-pkgver=3.04.05
+pkgver=3.04.07
pkgrel=0
pkgdesc="Decrypt GPG messages and re-encrypt them to a well-defined group"
url="https://gitlab.com/fbb-git/gpg-remailer"
@@ -28,4 +28,6 @@ package() {
rm -rf "$pkgdir"/usr/share/doc
}
-sha512sums="c3bffe98077131599484c3ea847aeecad4e3e057d69979134bf62347f792473ad8ac1b39076abc5e981745f47b03090172213942ef2de71b365cf780d42601c7 gpg-remailer-3.04.05.tar.gz"
+sha512sums="
+019089eaeffb474fffded265ca7c8d5ff9ba516fbaf2d88d03951ed9ad031e16eeceae2bd10bb09f39e658dff839f9c02b3290b929b8b7b2dc8eb044832c50ad gpg-remailer-3.04.07.tar.gz
+"
diff --git a/testing/gpm/APKBUILD b/testing/gpm/APKBUILD
deleted file mode 100644
index 9f5f7f0eabb..00000000000
--- a/testing/gpm/APKBUILD
+++ /dev/null
@@ -1,76 +0,0 @@
-# Contributor: Jeff Pohlmeyer <yetanothergeek@gmail.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=gpm
-pkgver=1.20.7
-pkgrel=1
-pkgdesc="A mouse server for the console"
-options="!check" # No testsuite
-url="https://www.nico.schottelius.org/software/gpm/"
-arch="all"
-license="GPL-2.0-or-later"
-depends_dev="$pkgname-libs"
-makedepends="$depends_dev texinfo autoconf automake libtool bison linux-headers
- ncurses-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-utils
- $pkgname-openrc"
-source="http://www.nico.schottelius.org/software/gpm/archives/$pkgname-$pkgver.tar.bz2
- error-format.patch
- fix-highly-illegal-return-of-in-as-char.patch
- fix-signedness-issue.patch
- install-shared-libs-with-+x-perms.patch
- install-unversioned-solibrary.patch
- musl-fixes.patch
- constify-format-strings.patch
- gpm-include-sysmacros.patch
-
- $pkgname.initd
- $pkgname.confd
- "
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static
- export CPPFLAGS="$CPPFLAGS -I$builddir/src/headers"
- make
-}
-
-package() {
- 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
-}
-
-utils() {
- depends="$pkgname"
- pkgdesc="Mouse utilities for console"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
- rmdir "$pkgdir"/usr/lib
-}
-
-sha512sums="51c1141ed502f8b6bc846485a8e315bafe3cf2b7c9d1ea8a710d9748ff2058f29c7ab5715fc1730a8437c613181d2050f37b134e9288c69ba8ff7fb0be7ec0d1 gpm-1.20.7.tar.bz2
-b4a883cb3a5b3977e0ba3909d68335b5543ae3a7d9aaa704ec82693a474813996cc6822a086737da17c67e2c2b827e3d4a48ec27d9c82f3070f75c1126651896 error-format.patch
-15c4f1459a28c931362a4f6cd22278b52c998b3b6f7164ee2e0dbd88fdace74b5e3599d3f3ac665c1df79a6ece14faac2b35f57d5d834a7714de2419954e6b5f fix-highly-illegal-return-of-in-as-char.patch
-db7e02b50bb02726ca743d2c7bef7d49edb359bb1594cc18f371662471d425a32f5c9f99743f237046b5a3534d2c6257fdd5cb6d9e08824c6d84725b7ddf0272 fix-signedness-issue.patch
-ec21b7029e0880b342bca5a70522e33d5cabbf77c44c1dd23b16d829d8fcc6cadcdf77b01724a91a6640916673f6d5ab91d18db4cd709ed77f9ce22dec723a13 install-shared-libs-with-+x-perms.patch
-05bdf6a03870175dcee5414d6d2d434b6cd3e06686f0be22d70fc7f9759db8ccea0bf9ae900d95e6d2872845cd66ee0a794afc5ece78c6640be163cad2065c58 install-unversioned-solibrary.patch
-45d3a20a8f9f00f78b21c10143e138add17d414e9b5ecc28d9efee9c2190450c79dca00b13a8247ee7753ff778b09bc88fe8c512366d5b1622981bb5d612f933 musl-fixes.patch
-36a5059c6336010b504ec6fc53c2d3df0811b1f1249c0e04c13066db06667119377a21e58121aaa8d4b620be2a5c21da0b018f168e36a44f85802cc50c936ba5 constify-format-strings.patch
-d268504bd0cf83706863a8af5c5719b0d192c34ae6a78ff0378521841eca242b39a6e6891080a5fc5512732f84e7439697ba92bfda3ecc1aaebd36b16e946477 gpm.initd
-0e7c96f29222d33301fc9c5c8cf409b7dbe6cbb1e79d76444ae5724e8b793679d3ea597a8ad64187e85680799847632095e469445ae56f893616cb0235a29f3a gpm.confd
-62d294f900ba1922119ebc87f97e86b1653647e03576c982011bf4f629332cc703f3994d5cc4b9bf2dac3c18636a61e420000d16cfdc7c284185c9442cce5b64 gpm-include-sysmacros.patch"
diff --git a/testing/gpm/constify-format-strings.patch b/testing/gpm/constify-format-strings.patch
deleted file mode 100644
index 799aac875e9..00000000000
--- a/testing/gpm/constify-format-strings.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 7d21d7f469d90c2d55b23926c866bba635aa7e6f Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 14 Feb 2016 18:05:49 -0500
-Subject: [PATCH] report/oops: constify format strings
-
----
- src/headers/gpm.h | 4 ++--
- src/headers/message.h | 2 +-
- src/lib/report-lib.c | 4 ++--
- src/prog/mouse-test.c | 2 +-
- src/report.c | 2 +-
- 5 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/src/headers/gpm.h b/src/headers/gpm.h
-index 57dc618..9e96deb 100644
---- a/src/headers/gpm.h
-+++ b/src/headers/gpm.h
-@@ -280,10 +280,10 @@ int Gpm_GetSnapshot(Gpm_Event *ePtr);
- char *Gpm_get_console( void );
- int Gpm_x_high_y(int base, int pot_y);
- int Gpm_cnt_digits(int number);
--void gpm_oops(int line, char *file, char *text, ... );
-+void gpm_oops(int line, const char *file, const char *text, ... );
-
- /* report.c / report-lib.c */
--void gpm_report(int line, char *file, int stat, char *text, ... );
-+void gpm_report(int line, const char *file, int stat, const char *text, ... );
-
- #ifdef __cplusplus
- };
-diff --git a/src/headers/message.h b/src/headers/message.h
-index a0fed0e..25cad8c 100644
---- a/src/headers/message.h
-+++ b/src/headers/message.h
-@@ -226,7 +226,7 @@
- /* #define GPM_MESS_ "" */
-
- /* functions */
--void gpm_report(int line, char *file, int stat, char *text, ... );
-+void gpm_report(int line, const char *file, int stat, const char *text, ... );
-
- /* rest of wd.h */
- #ifdef HAVE_SYSLOG_H
-diff --git a/src/lib/report-lib.c b/src/lib/report-lib.c
-index c0ae086..b565b77 100644
---- a/src/lib/report-lib.c
-+++ b/src/lib/report-lib.c
-@@ -24,9 +24,9 @@
-
- #include "headers/message.h"
-
--void gpm_report(int line, char *file, int stat, char *text, ... )
-+void gpm_report(int line, const char *file, int stat, const char *text, ... )
- {
-- char *string = NULL;
-+ const char *string = NULL;
- int log_level;
- va_list ap;
-
-diff --git a/src/prog/mouse-test.c b/src/prog/mouse-test.c
-index 0bb1982..ab8d602 100644
---- a/src/prog/mouse-test.c
-+++ b/src/prog/mouse-test.c
-@@ -182,7 +182,7 @@ Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type,
- /*-----------------------------------------------------------------------------
- Place the description here.
- -----------------------------------------------------------------------------*/
--int mousereopen(int oldfd, char *name, Gpm_Type *type)
-+int mousereopen(int oldfd, const char *name, Gpm_Type *type)
- {
- int fd;
- if (!type) type=mice+1; /* ms */
-diff --git a/src/report.c b/src/report.c
-index 6c7c2ee..286c1b7 100644
---- a/src/report.c
-+++ b/src/report.c
-@@ -69,7 +69,7 @@
- *
- */
-
--void gpm_report(int line, char *file, int stat, char *text, ... )
-+void gpm_report(int line, const char *file, int stat, const char *text, ...)
- {
- FILE *console = NULL;
- va_list ap, ap3;
diff --git a/testing/gpm/error-format.patch b/testing/gpm/error-format.patch
deleted file mode 100644
index df7aa651259..00000000000
--- a/testing/gpm/error-format.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 7ba518ff8b5e5c06d0a74b1fecf3b682f14c631c Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 14 Feb 2016 18:07:46 -0500
-Subject: [PATCH] report: avoid -Wformat-security warnings
-
-Some functions warn when you pass a string to a printf style function
-that is a dynamic buffer as its contents cannot be verified. Since we
-don't want to support that here, just use %s.
----
- src/lib/report-lib.c | 2 +-
- src/prog/mouse-test.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/lib/report-lib.c b/src/lib/report-lib.c
-index b565b77..03230b4 100644
---- a/src/lib/report-lib.c
-+++ b/src/lib/report-lib.c
-@@ -47,7 +47,7 @@ void gpm_report(int line, const char *file, int stat, const char *text, ... )
- log_level = LOG_CRIT; break;
- }
- #ifdef HAVE_VSYSLOG
-- syslog(log_level, string);
-+ syslog(log_level, "%s", string);
- vsyslog(log_level, text, ap);
- #else
- fprintf(stderr,"%s[%s(%d)]:\n",string,file,line);
-diff --git a/src/prog/mouse-test.c b/src/prog/mouse-test.c
-index ab8d602..d7d1027 100644
---- a/src/prog/mouse-test.c
-+++ b/src/prog/mouse-test.c
-@@ -189,7 +189,7 @@ int mousereopen(int oldfd, const char *name, Gpm_Type *type)
- close(oldfd);
- usleep(100000);
- fd=open(name,O_RDWR);
-- if (fd < 0) gpm_report(GPM_PR_OOPS,name);
-+ if (fd < 0) gpm_report(GPM_PR_OOPS, "%s", name);
- (*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */
- return fd;
- }
diff --git a/testing/gpm/fix-highly-illegal-return-of-in-as-char.patch b/testing/gpm/fix-highly-illegal-return-of-in-as-char.patch
deleted file mode 100644
index 6cf0e22a2d6..00000000000
--- a/testing/gpm/fix-highly-illegal-return-of-in-as-char.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 5648239f18ac041fe1a93b8b784bf3ca8e1d83bc Mon Sep 17 00:00:00 2001
-From: nick black <nick.black@sprezzatech.com>
-Date: Fri, 8 Feb 2013 05:52:13 -0500
-Subject: [PATCH] fix highly illegal return of int as char *, and less worrying
- set-but-not-used warning
-
----
- src/twiddler.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/twiddler.c b/src/twiddler.c
-index 1d2bd50..972a616 100644
---- a/src/twiddler.c
-+++ b/src/twiddler.c
-@@ -250,7 +250,6 @@ static inline int twiddler_use_item(char *item)
- int twiddler_key(unsigned long message)
- {
- char **table = twiddler_get_table(message);
-- char *val;
- /*
- * These two are needed to avoid transmitting single keys when typing
- * chords. When the number of keys being held down decreases, data
-@@ -269,7 +268,6 @@ int twiddler_key(unsigned long message)
-
- if (!table) return 0;
- message &= 0xff;
-- val = table[message];
-
- if ((message < last_message) && !marked) { /* ok, do it */
- marked++; /* don't retransmit on release */
-@@ -428,8 +426,11 @@ char *twiddler_rest_to_value(char *s)
- buf[ibuf]='\0';
- return strdup(buf);
- }
-- if (*ptr == '\\')
-- return (char *)twiddler_escape_sequence(ptr+1, &len /* unused */);
-+ if (*ptr == '\\') {
-+ buf[ibuf++] = twiddler_escape_sequence(ptr+1, &len /* unused */);
-+ buf[ibuf] = '\0';
-+ return strdup(buf);
-+ }
-
- if (strlen(ptr)==1) return ((char *)((unsigned long)*ptr & 0xFF));
-
diff --git a/testing/gpm/fix-signedness-issue.patch b/testing/gpm/fix-signedness-issue.patch
deleted file mode 100644
index 6b2b6ce75a5..00000000000
--- a/testing/gpm/fix-signedness-issue.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 4337fd9fc2d2ea83654f2ca69245503730231ac3 Mon Sep 17 00:00:00 2001
-From: iljavs <ivansprundel@ioactive.com>
-Date: Mon, 27 Jun 2016 01:17:57 -0700
-Subject: [PATCH] fix signedness issue
-
-This commit fixes a signedness issue, where a negative vc coming from a malicious client could possibly cause memory corruption.
----
- src/daemon/processconn.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/daemon/processconn.c b/src/daemon/processconn.c
-index a5839a3..e92fa63 100644
---- a/src/daemon/processconn.c
-+++ b/src/daemon/processconn.c
-@@ -67,7 +67,8 @@ int processConn(int fd)
- return -1;
- }
-
-- if((vc = request->vc) > MAX_VC) {
-+ vc = request->vc;
-+ if(vc > MAX_VC || vc < 0) {
- gpm_report(GPM_PR_DEBUG, GPM_MESS_REQUEST_ON, vc, MAX_VC);
- free(info);
- close(newfd);
diff --git a/testing/gpm/gpm-include-sysmacros.patch b/testing/gpm/gpm-include-sysmacros.patch
deleted file mode 100644
index 0a18976e94c..00000000000
--- a/testing/gpm/gpm-include-sysmacros.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/daemon/open_console.c
-+++ b/src/daemon/open_console.c
-@@ -22,6 +22,7 @@
- #include <fcntl.h> /* open and co. */
- #include <sys/stat.h> /* stat() */
- #include <sys/types.h> /* major() */
-+#include <sys/sysmacros.h>
- #include <sys/ioctl.h> /* ioctl */
-
- /* Linux specific (to be outsourced in gpm2 */
diff --git a/testing/gpm/gpm.confd b/testing/gpm/gpm.confd
deleted file mode 100644
index eb77c711fef..00000000000
--- a/testing/gpm/gpm.confd
+++ /dev/null
@@ -1,8 +0,0 @@
-# gpm conf.d file for alpine linux
-
-#
-# Specify gpm mouse daemon options here.
-#
-
-#gpm_opts="-m /dev/input/mice -t imps2"
-
diff --git a/testing/gpm/gpm.initd b/testing/gpm/gpm.initd
deleted file mode 100644
index 85b292c3171..00000000000
--- a/testing/gpm/gpm.initd
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/sbin/openrc-run
-
-pidfile=/var/run/gpm.pid
-command=/usr/sbin/gpm
-command_args=${gpm_opts:--m /dev/input/mice -t imps2}
-
-depend() {
- after localmount
- use hotplug logger
-}
diff --git a/testing/gpm/install-shared-libs-with-+x-perms.patch b/testing/gpm/install-shared-libs-with-+x-perms.patch
deleted file mode 100644
index d32619c2dae..00000000000
--- a/testing/gpm/install-shared-libs-with-+x-perms.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 01373f6fd5dd274116c8ec693245677dbf5390e6 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 28 Oct 2012 07:25:40 -0400
-Subject: [PATCH] install shared lib with +x perms
-
-This is executable code, so it should have +x perms on the file.
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- src/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile.in b/src/Makefile.in
-index d3b1dcd..6b60ad3 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -113,7 +113,7 @@ install: check
- # 2.x goes along; unfortunately that means an additional
- # headache in cases like this
- if test "x@SHLIB@" != "x" ; then \
-- $(INSTALL_DATA) -m 644 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \
-+ $(INSTALL_DATA) -m 755 lib/libgpm.so.@abi_full@ $(libdir)/libgpm.so.@abi_full@ ; \
- cd $(libdir) && $(LN_S) -f libgpm.so.@abi_full@ libgpm.so.@abi_lev@ ; \
- echo "WARNING: We installed a lib, you should now call ldconfig" ; \
- echo "f.i.: ldconfig -n -l $(libdir)/libgpm.so.@abi_full@" ; \
diff --git a/testing/gpm/install-unversioned-solibrary.patch b/testing/gpm/install-unversioned-solibrary.patch
deleted file mode 100644
index 0af762e9da2..00000000000
--- a/testing/gpm/install-unversioned-solibrary.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 06b00d53d8bd513ad5d262dc94a016c6fbf2d3aa Mon Sep 17 00:00:00 2001
-From: Kamil Rytarowski <n54@gmx.com>
-Date: Sat, 4 May 2013 01:30:17 +0200
-Subject: [PATCH] Install unversioned solibrary
-
-Unversioned solibraries are shipped with -devel packages in Linux
-distros. Generate and install it for the consistency.
----
- src/Makefile.in | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/Makefile.in b/src/Makefile.in
-index 6b60ad3..7e9e2ef 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -79,7 +79,7 @@ prog/%: prog/%.o
- # | $(SED) '\''s/\($*\)\.o\([ :]*\)/\1.o \1.lo\2/g'\'' > $(DEPDIR)/$@'
-
- # Do it all!
--all: gpm lib/libgpm.so.@abi_lev@ @LIBGPM_A@ $(PROG)
-+all: gpm lib/libgpm.so.@abi_lev@ lib/libgpm.so @LIBGPM_A@ $(PROG)
-
- gpm: $(GOBJ)
- $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $(GOBJ) @LIBS@ $(LIBS) -lm
-@@ -168,9 +168,8 @@ lib/libgpm.so.@abi_full@: $(PICS)
- @LDFLAGS@ $(LDFLAGS) -o lib/libgpm.so.@abi_full@ $^ @LIBS@ @SHARED_LIBS@ $(LIBS)
- lib/libgpm.so.@abi_lev@: lib/libgpm.so.@abi_full@
- $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so.@abi_lev@
--# unneeded, isn't it?
--#lib/libgpm.so: lib/libgpm.so.@abi_full@
--# $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so
-+lib/libgpm.so: lib/libgpm.so.@abi_full@
-+ $(LN_S) -f libgpm.so.@abi_full@ lib/libgpm.so
-
- include $(DEPFILE)
-
diff --git a/testing/gpm/musl-fixes.patch b/testing/gpm/musl-fixes.patch
deleted file mode 100644
index 6653aaf4752..00000000000
--- a/testing/gpm/musl-fixes.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From d88fb1de5803c366ab62f7de9ee5d83207fb2afe Mon Sep 17 00:00:00 2001
-From: Dima Krasner <dima@dimakrasner.com>
-Date: Wed, 12 Nov 2014 23:06:46 +0200
-Subject: [PATCH] Added musl support to libgpm and the daemon.
-
----
- src/daemon/open_console.c | 1 +
- src/prog/display-buttons.c | 1 +
- src/prog/display-coords.c | 1 +
- src/prog/gpm-root.y | 4 ++--
- 4 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/daemon/open_console.c b/src/daemon/open_console.c
-index 98297c9..4d6c0af 100644
---- a/src/daemon/open_console.c
-+++ b/src/daemon/open_console.c
-@@ -21,6 +21,7 @@
-
- #include <fcntl.h> /* open and co. */
- #include <sys/stat.h> /* stat() */
-+#include <sys/types.h> /* major() */
- #include <sys/ioctl.h> /* ioctl */
-
- /* Linux specific (to be outsourced in gpm2 */
-diff --git a/src/prog/display-buttons.c b/src/prog/display-buttons.c
-index de8e5b2..38d2f11 100644
---- a/src/prog/display-buttons.c
-+++ b/src/prog/display-buttons.c
-@@ -36,6 +36,7 @@
- #include <stdio.h> /* printf() */
- #include <time.h> /* time() */
- #include <errno.h> /* errno */
-+#include <sys/select.h> /* fd_set and FD_* */
- #include <gpm.h> /* gpm information */
-
- /* display resulting data */
-diff --git a/src/prog/display-coords.c b/src/prog/display-coords.c
-index 1fb810f..82afd12 100644
---- a/src/prog/display-coords.c
-+++ b/src/prog/display-coords.c
-@@ -38,6 +38,7 @@
- #include <stdio.h> /* printf() */
- #include <time.h> /* time() */
- #include <errno.h> /* errno */
-+#include <sys/select.h> /* fd_set and FD_* */
- #include <gpm.h> /* gpm information */
-
- /* display resulting data */
-diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y
-index 069d801..188ae35 100644
---- a/src/prog/gpm-root.y
-+++ b/src/prog/gpm-root.y
-@@ -1199,9 +1199,9 @@ int main(int argc, char **argv)
- #if defined(__GLIBC__)
- __sigemptyset(&childaction.sa_mask);
- #else /* __GLIBC__ */
-- childaction.sa_mask=0;
-+ sigemptyset(&childaction.sa_mask);
- #endif /* __GLIBC__ */
-- childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */
-+ childaction.sa_flags=0;
- sigaction(SIGCHLD,&childaction,NULL);
-
- /*....................................... Connect and get your buffer */
diff --git a/testing/gprbuild/APKBUILD b/testing/gprbuild/APKBUILD
index 8766911cddd..7ff36ad2adb 100644
--- a/testing/gprbuild/APKBUILD
+++ b/testing/gprbuild/APKBUILD
@@ -1,28 +1,35 @@
# Contributor: Ian Douglas Scott <ian@iandouglasscott.com>
# Maintainer: Ian Douglas Scott <ian@iandouglasscott.com>
pkgname=gprbuild
-pkgver=2019
-pkgrel=0
+pkgver=22.0.0
+pkgrel=2
pkgdesc="Builder for multi-language systems"
-arch="all"
+arch="all !riscv64" # blocked by gcc-gnat
url="https://github.com/AdaCore/gprbuild"
license="GPL-3.0-or-later"
+makedepends="bash"
depends="gcc-gnat"
-source="$pkgname-$pkgver.tar.gz::https://community.download.adacore.com/v1/0c03c05cef70b85144ba0e624a46e8952183b666?filename=gprbuild-2019-20190517-194D8-src.tar.gz xmlada-$pkgver.tar.gz::https://community.download.adacore.com/v1/ce0b67754f149cd230ba842effeff0ab3033ed0c?filename=xmlada-2019-20190429-19B9D-src.tar.gz"
+source="gprbuild-$pkgver.tar.gz::https://github.com/AdaCore/gprbuild/archive/refs/tags/v$pkgver.tar.gz
+ xmlada-$pkgver.tar.gz::https://github.com/AdaCore/xmlada/archive/refs/tags/v$pkgver.tar.gz
+ gprconfig_kb-$pkgver.tar.gz::https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v$pkgver.tar.gz
+ "
# gprbuild doesn't seem to have tests
options="!check"
-_gprbuild_srcdir=$srcdir/$pkgname-$pkgver-20190517-194D8-src
-_xmlada_srcdir=$srcdir/xmlada-$pkgver-20190429-19B9D-src
-
build() {
- cd $_gprbuild_srcdir
- DESTDIR="$PWD/dest" ./bootstrap.sh --prefix=/usr --with-xmlada=$_xmlada_srcdir
+ DESTDIR="$PWD/dest" ./bootstrap.sh \
+ --prefix=/usr \
+ --with-xmlada="$srcdir"/xmlada-$pkgver \
+ --with-kb="$srcdir"/gprconfig_kb-$pkgver
}
package() {
mkdir -p "$pkgdir"
- cp -r $_gprbuild_srcdir/dest/usr "$pkgdir"
+ cp -r dest/usr "$pkgdir"
}
-sha512sums="0388d7e6cdf625fef40b33da764091b3283dd88714c64ecfad4b5e99253f183b1a9b717c19281e6d45cc4277a05fadb2e2ace394d6f30638664b66c97123052b gprbuild-2019.tar.gz
-f8e0e25b0aee9a7a18223ae7761603082af55134f062c767d0cd0dbf0dbcb2058fc7c57532b567fb2c6efa464a53ead57b300578e98962025866e5c3ad73e380 xmlada-2019.tar.gz"
+
+sha512sums="
+7e77d9441454670a7b3b14cff97339e654bb82e7321abd9d612a771e1559f3276057e5163b50ca08b6ab77ebb9fcfd36590ba3c9cfd28d07fce43c7673ad254a gprbuild-22.0.0.tar.gz
+7e8a0cab2f4c300fe3b0d31e00d17334e36798430e49868448caa696044964464f558cffba8f35e35a58b097c968322891119b2abd9f210737ca877f0189f32e xmlada-22.0.0.tar.gz
+69f8490af56b0e07afbfef51c12cd6361a00327af774cd0deacf8260ccc4782e1e8465a074e8a025024570ce43ba1b4b3adfbde9ae4ea372e487d342da6994d4 gprconfig_kb-22.0.0.tar.gz
+"
diff --git a/testing/gpsbabel/APKBUILD b/testing/gpsbabel/APKBUILD
new file mode 100644
index 00000000000..cbba9e13445
--- /dev/null
+++ b/testing/gpsbabel/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Daniel Fancsali <fancsali@gmail.com>
+pkgname=gpsbabel
+pkgver=1.8.0
+pkgrel=5
+pkgdesc="Convert, manipulate, and transfer data from GPS programs or GPS receivers"
+url="https://www.gpsbabel.org/"
+# armv7: qt5-qtwebengine disabled in b3b11fab054468f565777d32493039fe901fcef3
+arch="aarch64 x86_64"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ libusb-dev
+ qt5-qtserialport-dev
+ qt5-qttools-dev
+ qt5-qtwebchannel-dev
+ qt5-qtwebengine-dev
+ samurai
+ shapelib-dev
+ zlib-dev
+ "
+checkdepends="diffutils"
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/GPSBabel/gpsbabel/archive/refs/tags/gpsbabel_${pkgver//./_}.tar.gz"
+builddir="$srcdir/gpsbabel-gpsbabel_${pkgver//./_}"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto -O2" \
+ CXXFLAGS="$CXXFLAGS -flto=auto -O2" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DGPSBABEL_WITH_ZLIB=pkgconfig \
+ -DGPSBABEL_WITH_SHAPELIB=pkgconfig \
+ -DGPSBABEL_WITH_LIBUSB=pkgconfig \
+ -DQT_VERSION_MAJOR=6
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure -j${JOBS:-2}
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # XXX: the above doesn't install anything (broken)
+ install -Dm755 build/gpsbabel build/gui/GPSBabelFE/gpsbabelfe -t "$pkgdir"/usr/bin
+ install -Dm644 gui/*.qm gui/coretool/*.qm -t "$pkgdir"/usr/share/gpsbabel/translations
+ install -Dm644 gui/gmapbase.html -t "$pkgdir"/usr/share/gpsbabel
+ install -Dm644 gui/gpsbabel.desktop -t "$pkgdir"/usr/share/applications
+}
+
+lang() {
+ pkgdesc="translations for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ amove usr/share/gpsbabel/translations
+}
+
+sha512sums="
+93137586cf887e185d96f06f59be4456cf9bae976979b9e5caad6ae8017c148d4c4c0fc182e8bd4c8547c3ed040c46f74e6f3cfb5f7b566d54fbc7fd767e27e4 gpsbabel-1.8.0.tar.gz
+"
diff --git a/testing/gpscorrelate/APKBUILD b/testing/gpscorrelate/APKBUILD
new file mode 100644
index 00000000000..176d0d5af75
--- /dev/null
+++ b/testing/gpscorrelate/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=gpscorrelate
+pkgver=2.0_git20230605
+_githash=fd556bc0cf9341511036f0535e76a50c1f50dcec
+pkgrel=0
+pkgdesc="Program to match GPS tracks to photographs and store the matches in EXIF"
+url="https://dfandrich.github.io/gpscorrelate/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ desktop-file-utils
+ exiv2-dev
+ gettext-dev
+ gtk+3.0-dev
+ intltool
+ libintl
+ libxml2-dev
+ libxslt-dev
+ "
+subpackages="$pkgname-cli $pkgname-doc $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dfandrich/gpscorrelate/archive/$_githash.tar.gz
+ exiv2-0.28.patch
+ "
+builddir="$srcdir/$pkgname-$_githash"
+
+build() {
+ make all build-po
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install install-desktop-file install-po DESTDIR="$pkgdir" prefix=/usr
+}
+
+cli() {
+ pkgdesc="$pkgdesc (cli only)"
+ amove /usr/bin/gpscorrelate
+}
+
+sha512sums="
+6baaf62180aaa86a0d0989808e206030d0d313428c6e51aaabb9b5ded7ecc836a91a8f9ac28b5b04f0a8f2f2d61fe53fc8d8a7d55da20d7f04c2a18ac875ef86 gpscorrelate-2.0_git20230605.tar.gz
+15ff7a1b48ac65c8a94928bf269a5c077b198a1c246a1c07a0b2749c7b228be13613e4816538542cb8e8dd6c29a3738ffe3cf67ea00e8075272f6de4229d7d5b exiv2-0.28.patch
+"
diff --git a/testing/gpscorrelate/exiv2-0.28.patch b/testing/gpscorrelate/exiv2-0.28.patch
new file mode 100644
index 00000000000..48eddd24637
--- /dev/null
+++ b/testing/gpscorrelate/exiv2-0.28.patch
@@ -0,0 +1,87 @@
+Patch-Source: https://gitlab.archlinux.org/archlinux/packaging/packages/gpscorrelate/-/blob/9d84f5a7ec16d73970ab89924a106652348b7063/exiv2-0.28.patch
+--
+diff --git a/exif-gps.cpp b/exif-gps.cpp
+index d464d62..8c91cf4 100644
+--- a/exif-gps.cpp
++++ b/exif-gps.cpp
+@@ -97,7 +97,7 @@ int main(int argc, char* argv[])
+ char* ReadExifDate(const char* File, int* IncludesGPS)
+ {
+ // Open and read the file.
+- Exiv2::Image::AutoPtr Image;
++ Exiv2::Image::UniquePtr Image;
+
+ try {
+ Image = Exiv2::ImageFactory::open(File);
+@@ -154,7 +154,7 @@ char* ReadExifData(const char* File, double* Lat, double* Long, double* Elev, in
+ // much more data than the last, specifically
+ // for display purposes. For the GUI version.
+ // Open and read the file.
+- Exiv2::Image::AutoPtr Image;
++ Exiv2::Image::UniquePtr Image;
+
+ try {
+ Image = Exiv2::ImageFactory::open(File);
+@@ -273,7 +273,7 @@ char* ReadExifData(const char* File, double* Lat, double* Long, double* Elev, in
+
+ // Is the altitude below sea level? If so, negate the value.
+ GPSData = ExifRead["Exif.GPSInfo.GPSAltitudeRef"];
+- if (GPSData.count() >= 1 && GPSData.toLong() == 1)
++ if (GPSData.count() >= 1 && GPSData.toUint32() == 1)
+ {
+ // Negate the elevation.
+ *Elev = -*Elev;
+@@ -292,7 +292,7 @@ char* ReadGPSTimestamp(const char* File, char* DateStamp, char* TimeStamp, int*
+ // much more data than the last, specifically
+ // for display purposes. For the GUI version.
+ // Open and read the file.
+- Exiv2::Image::AutoPtr Image;
++ Exiv2::Image::UniquePtr Image;
+
+ try {
+ Image = Exiv2::ImageFactory::open(File);
+@@ -463,7 +463,7 @@ int WriteGPSData(const char* File, const struct GPSPoint* Point,
+ struct utimbuf utb;
+ if (NoChangeMtime)
+ stat(File, &statbuf);
+- Exiv2::Image::AutoPtr Image;
++ Exiv2::Image::UniquePtr Image;
+
+ try {
+ Image = Exiv2::ImageFactory::open(File);
+@@ -493,7 +493,7 @@ int WriteGPSData(const char* File, const struct GPSPoint* Point,
+ // Do all the easy constant ones first.
+ // GPSVersionID tag: standard says it should be four bytes: 02 02 00 00
+ // (and, must be present).
+- Exiv2::Value::AutoPtr Value = Exiv2::Value::create(Exiv2::unsignedByte);
++ Exiv2::Value::UniquePtr Value = Exiv2::Value::create(Exiv2::unsignedByte);
+ Value->read("2 2 0 0");
+ replace(ExifToWrite, Exiv2::ExifKey("Exif.GPSInfo.GPSVersionID"), Value.get());
+ // Datum: the datum of the measured data. The default is WGS-84.
+@@ -643,7 +643,7 @@ int WriteFixedDatestamp(const char* File, time_t Time)
+ struct utimbuf utb;
+ stat(File, &statbuf);
+
+- Exiv2::Image::AutoPtr Image;
++ Exiv2::Image::UniquePtr Image;
+
+ try {
+ Image = Exiv2::ImageFactory::open(File);
+@@ -672,7 +672,7 @@ int WriteFixedDatestamp(const char* File, time_t Time)
+ ExifToWrite.erase(ExifToWrite.findKey(Exiv2::ExifKey("Exif.GPSInfo.GPSDateStamp")));
+ ExifToWrite["Exif.GPSInfo.GPSDateStamp"] = ScratchBuf;
+
+- Exiv2::Value::AutoPtr Value = Exiv2::Value::create(Exiv2::unsignedRational);
++ Exiv2::Value::UniquePtr Value = Exiv2::Value::create(Exiv2::unsignedRational);
+ snprintf(ScratchBuf, sizeof(ScratchBuf), "%d/1 %d/1 %d/1",
+ TimeStamp.tm_hour, TimeStamp.tm_min,
+ TimeStamp.tm_sec);
+@@ -705,7 +705,7 @@ int RemoveGPSExif(const char* File, int NoChangeMtime, int NoWriteExif)
+ stat(File, &statbuf);
+
+ // Open the file and start reading.
+- Exiv2::Image::AutoPtr Image;
++ Exiv2::Image::UniquePtr Image;
+
+ try {
+ Image = Exiv2::ImageFactory::open(File);
diff --git a/testing/gr-satellites/APKBUILD b/testing/gr-satellites/APKBUILD
new file mode 100644
index 00000000000..4ecb872e3e7
--- /dev/null
+++ b/testing/gr-satellites/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=gr-satellites
+pkgver=5.5.0
+pkgrel=0
+pkgdesc="satellite decoder blocks for GNURadio"
+url="https://github.com/daniestevez/gr-satellites"
+# gnuradio
+arch="aarch64 armv7 x86_64"
+license="GPL-3.0-or-later"
+depends="python3 py3-requests py3-construct"
+makedepends="
+ cmake
+ fmt-dev
+ gnuradio-dev
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/daniestevez/gr-satellites/archive/v$pkgver/gr-satellites-v$pkgver.tar.gz
+ no-zip-man.patch
+ "
+options="!check" # no integrated tests
+
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8006cd7418e51b98079fd27716117d647c71d1c178e3d7de3aae900a479cb4669018721bb721bb37f23ea2cd8e416aed615db6d3b6e3adc13bc25d2147591c34 gr-satellites-v5.5.0.tar.gz
+344ec6352da59e95492f70e389c9317c6e5700bb4cf05f4574aca841fa3660e6c00586124493a9822b1c47d4c28f0b59be2c9bc3ad1d6fc8790d764a3af04da1 no-zip-man.patch
+"
diff --git a/testing/gr-satellites/no-zip-man.patch b/testing/gr-satellites/no-zip-man.patch
new file mode 100644
index 00000000000..08449548fca
--- /dev/null
+++ b/testing/gr-satellites/no-zip-man.patch
@@ -0,0 +1,18 @@
+manpages should not be precompressed
+diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
+index a35ab8b..82ec3cc 100644
+--- a/docs/CMakeLists.txt
++++ b/docs/CMakeLists.txt
+@@ -64,11 +64,8 @@ list(APPEND manpages
+ set(MAN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/man)
+
+ foreach(manpage ${manpages})
+- add_custom_target(generate_manpage_${manpage} ALL
+- COMMAND ${BZIP} -c ${MAN_SRC_DIR}/${manpage} > ${MAN_BUILD_DIR}/${manpage}.bz2
+- )
+ install(FILES
+- ${MAN_BUILD_DIR}/${manpage}.bz2
++ ${MAN_SRC_DIR}/${manpage}
+ DESTINATION ${MAN_INSTALL_DIR}/man1
+ )
+ endforeach(manpage)
diff --git a/testing/gradio/APKBUILD b/testing/gradio/APKBUILD
deleted file mode 100644
index 51ea85a7b0b..00000000000
--- a/testing/gradio/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Daniele Debernardi <drebrez@gmail.com>
-# Maintainer: Daniele Debernardi <drebrez@gmail.com>
-pkgname=gradio
-pkgver=7.3
-pkgrel=2
-pkgdesc="A GTK3 app for finding and listening to internet radio stations"
-url="https://github.com/haecker-felix/Gradio"
-arch="all !armhf" # gst-plugins-good missing, which depends on qt5-declarative
-license="GPL-3.0-or-later"
-depends="gst-plugins-good"
-makedepends="meson vala gtk+3.0-dev libsoup-dev json-glib-dev gstreamer-dev gst-plugins-base-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/haecker-felix/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/Gradio-$pkgver"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="d2bfd49ead90627b0516c320a5260f14ba2ea9ab5e417dafc38babc7eaaa706395986122d103bde931406f4240212210d2a7dbee6b69bddb901dc5705cac977b gradio-7.3.tar.gz"
diff --git a/testing/grafana-image-renderer/APKBUILD b/testing/grafana-image-renderer/APKBUILD
index c4af6fade86..a424a4150dd 100644
--- a/testing/grafana-image-renderer/APKBUILD
+++ b/testing/grafana-image-renderer/APKBUILD
@@ -1,29 +1,43 @@
# Contributor: Konstantin Kulikov <k.kulikov2@gmail.com>
# Maintainer: Konstantin Kulikov <k.kulikov2@gmail.com>
pkgname=grafana-image-renderer
-pkgver=2.0.0
+pkgver=3.10.2
pkgrel=0
pkgdesc="Grafana Backend Plugin that handles rendering of panels & dashboards to PNGs using headless chrome"
url="https://github.com/grafana/grafana-image-renderer"
arch="x86_64" # Requires chromium, aarch64 and armv7 doesn't build because of grpc.
license="Apache-2.0"
makedepends="yarn"
-depends="nodejs ttf-opensans chromium ca-certificates"
+depends="nodejs font-opensans chromium ca-certificates"
options="!check" # Has no test suite.
install="$pkgname.pre-install"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/grafana-image-renderer/archive/v$pkgver.tar.gz
$pkgname.initd $pkgname.confd $pkgname.json"
+# secfixes:
+# 3.6.1-r0:
+# - CVE-2022-31176
+
build() {
export CHROME_BIN="/usr/bin/chromium-browser"
export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
- # Don't pollute our aports repo with husky git hooks.
- # This command also acts as implicit "yarn install".
- yarn remove --pure-lockfile -W husky
-
- yarn build
+ yarn install --pure-lockfile --ignore-engines
+ yarn --ignore-engines build
+ find . -type f \( \
+ -name '.*' -o \
+ -name '*.cmd' -o \
+ -name '*.bat' -o \
+ -name '*.map' -o \
+ -name '*.md' -o \
+ \( -name '*.ts' -a ! -name '*.d.ts' \) -o \
+ -name 'AUTHORS*' -o \
+ -name 'LICENSE*' -o \
+ -name 'license' -o \
+ -name 'Makefile' -o \
+ -name 'README*' -o \
+ -name 'readme.markdown' \) -delete
}
package() {
@@ -34,7 +48,9 @@ package() {
cp -r "$builddir/node_modules" "$builddir/build" "$builddir/proto" "$pkgdir/usr/share/$pkgname/"
}
-sha512sums="e14cb35bdd57d5a4f66a3345dac51ea799764ad1f3e3874b8be951e1e74896708cb877eb60124094275770da13bd51538bc0ae979f7648f783a1b28d227645eb grafana-image-renderer-2.0.0.tar.gz
+sha512sums="
+c83f38caca013517febc8c52a2c2aa0d1d9346e084b3305f3ffe5d15fc1bae19a971751cb69554096afd22bdba98037b5a6cd36ba634e00d7a2bab89cffa576a grafana-image-renderer-3.10.2.tar.gz
06faad0f5abecf434c014ca91dccf3f07f18d96a8f526c3c1d2384cba8db44db5fe2b2165d8fc12a8fe8d121135077b0c70158ee29ebb1bfba8dd2a3110b349c grafana-image-renderer.initd
88a119ad18fbde490ab9213487ae16b8aeeb65437275a1112f7423fa581a7470e6fb68654c2fd439afa68c0333aeefd0711f3fffd53615fa51d0702c80ed1c1b grafana-image-renderer.confd
-fe68bee6815de89f01edf49997d3be01ab5f3bf8c51cfc7d3d893e797f0beb44c2d7c67e5f750ab37588bf3475957774541cb4b37e1ee85ad98d18fbf2cb14e8 grafana-image-renderer.json"
+8fc756536a429dc3343216e64fa33af8c601d83d03d81bd6096e46b33e5d1249f95be719ea489b13bd1af936771e8eeffd3ff7d8c5cdf622c3188b342c8fbdbd grafana-image-renderer.json
+"
diff --git a/testing/grafana-image-renderer/grafana-image-renderer.json b/testing/grafana-image-renderer/grafana-image-renderer.json
index d78b399a200..55c8e6687dc 100644
--- a/testing/grafana-image-renderer/grafana-image-renderer.json
+++ b/testing/grafana-image-renderer/grafana-image-renderer.json
@@ -15,13 +15,15 @@
"json": true,
"colorize": false
}
+ },
+
+ "security": {
+ "authToken": "-"
}
},
"rendering": {
"chromeBin": "/usr/bin/chromium-browser",
- "args": [
- "--no-sandbox"
- ],
+ "args": ["--no-sandbox", "--disable-gpu"],
"ignoresHttpsErrors": false,
"timezone": null,
@@ -31,15 +33,21 @@
"deviceScaleFactor": 1,
"maxWidth": 3080,
"maxHeight": 3000,
- "maxDeviceScaleFactor": 3,
+ "maxDeviceScaleFactor": 4,
+ "pageZoomLevel": 1,
+ "headed": false,
"mode": "default",
+ "emulateNetworkConditions": false,
"clustering": {
+ "monitor": false,
"mode": "browser",
- "maxConcurrency": 5
+ "maxConcurrency": 5,
+ "timeout": 30
},
"verboseLogging": false,
- "dumpio": false
+ "dumpio": false,
+ "timingMetrics": false
}
}
diff --git a/testing/grafana/APKBUILD b/testing/grafana/APKBUILD
deleted file mode 100644
index d2efc2f829c..00000000000
--- a/testing/grafana/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Konstantin Kulikov <k.kulikov2@gmail.com>
-# Maintainer: Konstantin Kulikov <k.kulikov2@gmail.com>
-pkgname=grafana
-pkgver=6.7.3
-pkgrel=1
-_commit=a04ef6cefc # git rev-parse --short HEAD
-_stamp=1587636773 # git --no-pager show -s --format=%ct
-pkgdesc="Open source, feature rich metrics dashboard and graph editor"
-url="https://grafana.com"
-arch="all"
-license="Apache-2.0"
-makedepends="go"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/grafana/archive/v$pkgver.tar.gz
- $pkgname-$pkgver-bin.tar.gz::https://dl.grafana.com/oss/release/grafana-$pkgver.linux-amd64.tar.gz
- $pkgname.initd $pkgname.confd"
-
-export GOPATH=${GOPATH:-$srcdir/go}
-export GOCACHE=${GOCACHE:-$srcdir/go-build}
-export GOTMPDIR=${GOTMPDIR:-$srcdir}
-
-# secfixes:
-# 6.3.4-r0:
-# - CVE-2019-15043
-
-build() {
- local ldflags="-X main.version=$pkgver -X main.commit=$_commit -X main.buildstamp=$_stamp"
- go build -ldflags "$ldflags" -mod=vendor -v github.com/grafana/grafana/pkg/cmd/grafana-server
- go build -ldflags "$ldflags" -mod=vendor -v github.com/grafana/grafana/pkg/cmd/grafana-cli
-}
-
-check() {
- go test -mod=vendor ./...
-}
-
-package() {
- install -Dm755 "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
- install -Dm644 "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname"
- install -Dm755 "$builddir/$pkgname-server" "$pkgdir/usr/sbin/$pkgname-server"
- install -Dm755 "$builddir/$pkgname-cli" "$pkgdir/usr/bin/$pkgname-cli"
- install -Dm644 "$builddir/conf/sample.ini" "$pkgdir/etc/grafana.ini"
- install -dm755 "$pkgdir/usr/share/grafana"
- cp -r "$builddir/conf" "$builddir/public" "$pkgdir/usr/share/$pkgname/"
-}
-
-sha512sums="04c77b80bc8239981364e188c0920a92a70d0988109b3a263b6852cc021d4351e6e731136edc3c3c09a96836545d2ce0df9db5dec4fed0c020e6b8226cc9ec21 grafana-6.7.3.tar.gz
-15d02ed101088d845ed94fb88c629428f2a899a23dff509ec82cb148689bda07b56883765be145d5a5769ed0e3d3b9d98e50fc940c95a1074f5b5e3adac19f30 grafana-6.7.3-bin.tar.gz
-b0a781e1b1e33741a97e231c761b1200239c6f1235ffbe82311fe883387eb23bef262ad68256ebd6cf87d74298041b53b947ea7a493cfa5aa814b2a1c5181e13 grafana.initd
-c2d9896ae9a9425f759a47aeab42b7c43b63328e82670d50185de8c08cda7b8df264c8b105c5c3138b90dd46e86598b16826457eb3b2979a899b3a508cbe4e8c grafana.confd"
diff --git a/testing/grafana/grafana.confd b/testing/grafana/grafana.confd
deleted file mode 100644
index 277e7b335d6..00000000000
--- a/testing/grafana/grafana.confd
+++ /dev/null
@@ -1,16 +0,0 @@
-GRAFANA_HOME=/var/lib/grafana
-GRAFANA_OPTS="-config /etc/grafana.ini -homepath /usr/share/grafana
-cfg:paths.data=$GRAFANA_HOME/data
-cfg:paths.plugins=$GRAFANA_HOME/plugins
-cfg:paths.provisioning=$GRAFANA_HOME/provisioning
-cfg:server.http_addr=127.0.0.1
-cfg:log.mode=syslog"
-rc_need=logger
-
-# To enable image rendering run
-# $ apk add grafana-image-renderer
-# $ /etc/init.d/grafana-image-renderer start
-# and configure /etc/grafana.ini to use it
-#[rendering]
-#server_url = http://127.0.0.1:3001/render
-#callback_url = http://127.0.0.1:3000/
diff --git a/testing/grafana/grafana.initd b/testing/grafana/grafana.initd
deleted file mode 100644
index 4cceea4b985..00000000000
--- a/testing/grafana/grafana.initd
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/sbin/openrc-run
-
-supervisor=supervise-daemon
-
-name="Grafana"
-description="Metrics Dashboard and Graph Editor"
-
-command="/usr/sbin/grafana-server"
-command_args="$GRAFANA_OPTS"
-
-command_user=grafana:grafana
-
-depend() {
- need net
- after firewall
-}
-
-start_pre() {
- checkpath -d -o grafana:grafana -m755 $GRAFANA_HOME \
- $GRAFANA_HOME/provisioning \
- $GRAFANA_HOME/provisioning/dashboards \
- $GRAFANA_HOME/provisioning/datasources \
- $GRAFANA_HOME/provisioning/notifiers
-}
diff --git a/testing/grafana/grafana.pre-install b/testing/grafana/grafana.pre-install
deleted file mode 100644
index fee2e76df93..00000000000
--- a/testing/grafana/grafana.pre-install
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-name=grafana
-
-addgroup -S "$name" 2>/dev/null
-adduser -S -D -H -h "/var/lib/$name" -s /sbin/nologin -G "$name" -g "$name" "$name" 2>/dev/null
-
-exit 0
diff --git a/testing/granite7/APKBUILD b/testing/granite7/APKBUILD
new file mode 100644
index 00000000000..1fe8d467e3f
--- /dev/null
+++ b/testing/granite7/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=granite7
+pkgver=7.4.0
+pkgrel=0
+pkgdesc="Library that extends GTK with common widgets and utilities"
+url="https://github.com/elementary/granite"
+arch="all"
+license="LGPL-3.0"
+depends="
+ gsettings-desktop-schemas
+ hicolor-icon-theme
+ "
+makedepends="
+ glib-dev
+ gobject-introspection-dev
+ gtk4.0-dev
+ libgee-dev
+ meson
+ sassc
+ vala
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-lang
+ "
+source="https://github.com/elementary/granite/archive/$pkgver/granite-$pkgver.tar.gz"
+options="!check" # no tests provided
+builddir="$srcdir/granite-$pkgver/"
+
+build() {
+ abuild-meson . output
+ meson compile -j ${JOBS:-0} -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+dev() {
+ default_dev
+
+ amove usr/bin/granite-7-demo
+ amove usr/share/applications/io.elementary.granite-7.demo.desktop
+}
+
+sha512sums="
+052db438b5314f0308be7f6084c04beae6d14855a02fbd5efd96b357ad264ab917baa2634cdc09172a09f5f7b145a9c2de18920ffd22762935ba98708b558611 granite-7.4.0.tar.gz
+"
diff --git a/testing/grass/APKBUILD b/testing/grass/APKBUILD
new file mode 100644
index 00000000000..a52633c1940
--- /dev/null
+++ b/testing/grass/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=grass
+pkgver=0.12.3
+pkgrel=1
+pkgdesc="Sass compiler written purely in Rust"
+url="https://github.com/connorskees/grass"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="
+ https://github.com/connorskees/grass/archive/v$pkgver/grass-v$pkgver.tar.gz
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked --target="$CTARGET"
+}
+
+build() {
+ cargo auditable build -p grass --release --frozen
+}
+
+check() {
+ cargo test -p grass --tests
+}
+
+package() {
+ install -Dm755 target/release/grass "$pkgdir"/usr/bin/grass
+}
+
+sha512sums="
+ea70ce7627059cd567052edcd0c0259f9f7b5db38d66211ab4c3310470ba27cf19d828731930ae56ec506fe58d5acbc2e7b53b1aef9ae274dea51e3f78efaa23 grass-v0.12.3.tar.gz
+"
diff --git a/testing/grcov/APKBUILD b/testing/grcov/APKBUILD
new file mode 100644
index 00000000000..77f1f86a4dc
--- /dev/null
+++ b/testing/grcov/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=grcov
+pkgver=0.8.19
+pkgrel=1
+pkgdesc="Rust tool to collect and aggregate code coverage data"
+url="https://github.com/mozilla/grcov"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # Limited by cargo
+license="MPL-2.0"
+depends="gcc" # gcov
+makedepends="cargo cargo-auditable"
+options="net !check" # Failing due to utf-8 (locale?)
+source="$pkgname-$pkgver.tar.gz::https://github.com/mozilla/grcov/archive/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/grcov -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+623ebd9ac9951576584371fc90ceffc31f016a8816f02d66e3d980dd4a93bd81839c0630019d9c972a00927191b781645b15ff7d995881460082dd1c07875886 grcov-0.8.19.tar.gz
+"
diff --git a/testing/greetd-mini-wl-greeter/APKBUILD b/testing/greetd-mini-wl-greeter/APKBUILD
new file mode 100644
index 00000000000..158e137c3ab
--- /dev/null
+++ b/testing/greetd-mini-wl-greeter/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=greetd-mini-wl-greeter
+pkgver=0_git20230821
+_commit=4caf09d20a9038d2a83349ad0f3e97cfa28ae979
+pkgrel=0
+pkgdesc="Extremely minimal raw Wayland greeter for greetd"
+url="https://github.com/philj56/greetd-mini-wl-greeter"
+arch="all"
+license="MIT"
+makedepends="
+ cairo-dev
+ json-c-dev
+ libepoxy-dev
+ libxkbcommon-dev
+ meson
+ musl-fts-dev
+ pango-dev
+ scdoc
+ wayland-dev
+ wayland-protocols
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ "
+source="https://github.com/philj56/greetd-mini-wl-greeter/archive/$_commit.tar.gz"
+options="!check" # no tests provided
+builddir="$srcdir/greetd-mini-wl-greeter-$_commit/"
+
+build() {
+ LDFLAGS="$LDFLAGS -lfts" abuild-meson . output
+ meson compile -j ${JOBS:-0} -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+a91eda7848d11c184b31967d2ac1b1bacf5fb728bf7e01bcc327ff822107272a379f13f278bc518714bea1ad2600aeb6002c5212c7593463e127725b7f92a907 4caf09d20a9038d2a83349ad0f3e97cfa28ae979.tar.gz
+"
diff --git a/testing/greetd-regreet/APKBUILD b/testing/greetd-regreet/APKBUILD
new file mode 100644
index 00000000000..41efad49a02
--- /dev/null
+++ b/testing/greetd-regreet/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=greetd-regreet
+pkgver=0.1.1
+pkgrel=0
+pkgdesc="Clean and customizable GTK4 based greeter for greetd"
+url="https://github.com/rharish101/ReGreet"
+# s390x, riscv64: greetd
+# armhf: fails to build
+arch="all !armhf !s390x !riscv64"
+license="GPL-3.0-or-later"
+depends="greetd"
+makedepends="cargo gtk4.0-dev cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rharish101/ReGreet/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/ReGreet-$pkgver"
+
+_cargo_opts="--frozen --features gtk4_8"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build $_cargo_opts --release
+}
+
+check() {
+ cargo test $_cargo_opts
+}
+
+package() {
+ install -Dm755 target/release/regreet "$pkgdir"/usr/bin/regreet
+}
+
+sha512sums="
+c2276c9ee3699974a5ebdefe811bfdb15d5642f6d3d20f6ea6b4f5ce3b40a9691ed42441e50f506a503ef523b894ff28d1746844b26bc32dff5db18a1d5e8150 greetd-regreet-0.1.1.tar.gz
+"
diff --git a/testing/greetd-wlgreet/APKBUILD b/testing/greetd-wlgreet/APKBUILD
new file mode 100644
index 00000000000..95407dffd0c
--- /dev/null
+++ b/testing/greetd-wlgreet/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=greetd-wlgreet
+_projname=wlgreet
+pkgver=0.5.0
+pkgrel=0
+pkgdesc="Raw wayland greeter for greetd"
+url="https://git.sr.ht/~kennylevinsen/wlgreet"
+# riscv64, s390x: blocked by greetd
+arch="all !riscv64 !s390x"
+license="GPL-3.0-only"
+depends="
+ greetd
+ wayland-libs-client
+ "
+makedepends="
+ cargo
+ cargo-auditable
+ wayland-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~kennylevinsen/wlgreet/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_projname-$pkgver"
+options="!check" # no tests provided
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL="z"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -D -m755 target/release/wlgreet -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+4e84dee56b69285139cbc4ac50a03022bc2e1b44aea2ce31a66a2ca2e54562bb511761315a4a6dd7bb343552dac6a24530b318549acc0f7f876f993948e44ef7 greetd-wlgreet-0.5.0.tar.gz
+"
diff --git a/testing/grip/APKBUILD b/testing/grip/APKBUILD
new file mode 100644
index 00000000000..dd1eb286671
--- /dev/null
+++ b/testing/grip/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=grip
+pkgver=4.2.4
+pkgrel=0
+pkgdesc="CD Player, Secure Ripper, and Encoder"
+url="https://sourceforge.net/projects/grip/"
+arch="all"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
+makedepends="
+ cdparanoia-dev
+ curl-dev
+ gtk+2.0-dev
+ id3lib-dev
+ meson
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://sourceforge.net/projects/grip/files/$pkgver/grip-$pkgver.tar.gz/download"
+options="!check" # no tests
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+fdc2808b91df617f4d2447114037c31bd5fa0657aa4ea2453e644b155468971c65a364bb0a3c6ed8ff2ba0e44e7117a51bec3081c7defd590f9fbc802a216bf5 grip-4.2.4.tar.gz
+"
diff --git a/testing/gron/APKBUILD b/testing/gron/APKBUILD
index 4c3d469b72e..9cf7928d5cc 100644
--- a/testing/gron/APKBUILD
+++ b/testing/gron/APKBUILD
@@ -1,38 +1,40 @@
# Contributor: Tiago Ilieve <tiago.myhro@gmail.com>
# Maintainer: Tiago Ilieve <tiago.myhro@gmail.com>
pkgname=gron
-pkgver=0.6.0
-pkgrel=2
+pkgver=0.7.1
+pkgrel=16
pkgdesc="Make JSON greppable"
url="https://github.com/tomnomnom/gron"
arch="all"
license="MIT"
-depends=""
makedepends="go>=1.11"
-source="gron-$pkgver.tar.gz::https://github.com/tomnomnom/gron/archive/v${pkgver}.tar.gz
- go.mod go.sum"
-builddir="$srcdir/$pkgname-$pkgver"
+source="gron-$pkgver.tar.gz::https://github.com/tomnomnom/gron/archive/v$pkgver.tar.gz"
-build() {
- cd "$builddir"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+export GOFLAGS="$GOFLAGS -modcacherw"
- go build -v -ldflags "-s -w -X main.gronVersion=$pkgver" -o gron
+prepare() {
+ default_prepare
+
+ # required for ppc64le
+ go get -d golang.org/x/sys/unix@v0.0.0-20210603125802-9665404d3644
}
-check() {
- cd "$builddir"
+build() {
+ go build -v -ldflags "-X main.gronVersion=$pkgver" -o gron
+}
- ./gron --version
- ./gron testdata/one.json
- go test
+check() {
+ go test ./...
}
package() {
- cd "$builddir"
-
install -Dm755 ./gron "$pkgdir"/usr/bin/gron
}
-sha512sums="aa1e2e6d00927b8b0abb5b39593deed9037d7f1fdf669f1c3c2e28ce117b270e10758027afd962499783a1f6f4d848cc6c6a0f6e4323ba8c53be14e1add622fe gron-0.6.0.tar.gz
-30d5e835903698ae1cb1203c986b4eb4989aa74fcc50b907656b5182fd5060e403ba991dcba3a65a3a215898dfeb5caa46f24ec0bc58535e4f80d937583407bb go.mod
-8d1898bd5d6dba0e121615b4c6c279b0df031eb2ec900c2afc39126be6006557f1b5e87c1a0572cca2ef45ec66775b7606b5701f28c6dbefaa9fa2fd65587a4d go.sum"
+sha512sums="
+8bce1915577b12cdd4105874368a8c71240a8437c402fc515598b204f8d84ade3ecc6d3bccac820683bf6fea8cf6dad2e3be7f3a3b2281af35d07524975f51ee gron-0.7.1.tar.gz
+"
diff --git a/testing/gron/go.mod b/testing/gron/go.mod
deleted file mode 100644
index ce4ad34c37f..00000000000
--- a/testing/gron/go.mod
+++ /dev/null
@@ -1,10 +0,0 @@
-module github.com/tomnomnom/gron
-
-require (
- github.com/fatih/color v1.7.0
- github.com/mattn/go-colorable v0.0.9
- github.com/mattn/go-isatty v0.0.4 // indirect
- github.com/nwidger/jsoncolor v0.0.0-20170215171346-75a6de4340e5
- github.com/pkg/errors v0.8.0
- golang.org/x/sys v0.0.0-20180921163948-d47a0f339242 // indirect
-)
diff --git a/testing/gron/go.sum b/testing/gron/go.sum
deleted file mode 100644
index 375d485d129..00000000000
--- a/testing/gron/go.sum
+++ /dev/null
@@ -1,12 +0,0 @@
-github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
-github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
-github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/nwidger/jsoncolor v0.0.0-20170215171346-75a6de4340e5 h1:d+C3xJdxZT7wNlxqEwbXn3R355CwAhYBL9raVNfSnK0=
-github.com/nwidger/jsoncolor v0.0.0-20170215171346-75a6de4340e5/go.mod h1:GYFm0zZgTNeoK1QxuIofRDasy2ibmaJZhZLzwsMXUF4=
-github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-golang.org/x/sys v0.0.0-20180921163948-d47a0f339242 h1:5DYsa+ZAwcJHjuY0Qet390sUr7qwkpnRsUNjddyc0b8=
-golang.org/x/sys v0.0.0-20180921163948-d47a0f339242/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
diff --git a/testing/grpc-health-check/APKBUILD b/testing/grpc-health-check/APKBUILD
new file mode 100644
index 00000000000..1393a5e1b1d
--- /dev/null
+++ b/testing/grpc-health-check/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Build Robot <buildrobot@pay.pizza>
+pkgname=grpc-health-check
+pkgver=0.1.1
+pkgrel=3
+arch="all !s390x !ppc64le !armhf !armv7 !riscv64"
+pkgdesc="gRPC health checking protocol"
+url="https://github.com/paypizza/grpc-health-check"
+license="Apache-2.0"
+makedepends="cargo protoc rustfmt cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/paypizza/grpc-health-check/archive/$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET"
+}
+
+build() {
+ export PROTOC=/usr/bin/protoc
+ cargo auditable build --release --frozen
+}
+
+check() {
+ export PROTOC=/usr/bin/protoc
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/grpc-health-check -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+4f97a0c7399643843f2599799a1b255c7b712c17d115fc7933c042281611250b69bfcd3c0d4c515fcb413eb22ccd6e1644733a6f671c2ad7be8def4e1f695d5b grpc-health-check-0.1.1.tar.gz
+"
diff --git a/testing/grpc-java/APKBUILD b/testing/grpc-java/APKBUILD
deleted file mode 100644
index 204569538c2..00000000000
--- a/testing/grpc-java/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: wener <wenermail@gmail.com>
-# Maintainer: wener <wenermail@gmail.com>
-pkgname=grpc-java
-pkgver=1.28.0
-pkgrel=0
-pkgdesc="The Java gRPC implementation. HTTP/2 based RPC"
-url="https://github.com/grpc/grpc-java"
-arch="all !aarch64 !armhf !armv7 !s390x !mips !mips64" # fails to build on aarch64 and armhf for some strange reason
-license="Apache-2.0"
-depends="openjdk8-jre"
-makedepends="openjdk8 protobuf-dev nss"
-source="$pkgname-$pkgver.tar.gz::https://github.com/grpc/grpc-java/archive/v$pkgver.tar.gz"
-options="!check"
-
-build() {
- export GRADLE_USER_HOME="$srcdir"/.gradle
- cd compiler
- ../gradlew --no-daemon --parallel --info java_pluginExecutable -PskipAndroid=true
-}
-
-package() {
- install -D -m 755 compiler/build/exe/java_plugin/protoc-gen-grpc-java "$pkgdir"/usr/bin/protoc-gen-grpc-java
-}
-
-sha512sums="3aef9d6758ead95a6cbc76916eda6cc069bfa7b84e1541d08d703398e23887347abb9ab3a6705b4287abe4a0cd5ac3cea1eadc3f3c0cffadee2d8284a67e0a53 grpc-java-1.28.0.tar.gz"
diff --git a/testing/grpcui/APKBUILD b/testing/grpcui/APKBUILD
new file mode 100644
index 00000000000..2964313436d
--- /dev/null
+++ b/testing/grpcui/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=grpcui
+pkgver=1.3.3
+pkgrel=2
+pkgdesc="Interactive web UI for gRPC, along the lines of postman"
+url="https://github.com/fullstorydev/grpcui"
+arch="all"
+license="MIT"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fullstorydev/grpcui/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.version=v$pkgver" ./cmd/grpcui/
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 grpcui -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+ad4b715ee51dc0bfc592c84fa046b03f77a038f15feb58e8b869934360359e928016efda5aa101b22a2b7441f35dd497b863a4ef56922b0f9bc8dc391c10a1ff grpcui-1.3.3.tar.gz
+"
diff --git a/testing/grpcurl/APKBUILD b/testing/grpcurl/APKBUILD
new file mode 100644
index 00000000000..365d3b0f54d
--- /dev/null
+++ b/testing/grpcurl/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=grpcurl
+pkgver=1.8.9
+pkgrel=2
+pkgdesc="CLI tool to interact with gRPC servers"
+url="https://github.com/fullstorydev/grpcurl"
+arch="all"
+license="MIT"
+makedepends="go"
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fullstorydev/grpcurl/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.version=v$pkgver" ./cmd/grpcurl/
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+5ef0e918a10ce8fcefebe4d77c6efd73830c9159c423e6fe54da54e4c2942665861bf7b5235b72317aa157328bf0b3681984873a70c39264f8060f9ab927fb99 grpcurl-1.8.9.tar.gz
+"
diff --git a/testing/gsettings-qt/APKBUILD b/testing/gsettings-qt/APKBUILD
new file mode 100644
index 00000000000..7946f7dc06c
--- /dev/null
+++ b/testing/gsettings-qt/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=gsettings-qt
+pkgver=0.2_git20220807
+_commit="d5e002d7e0bce46c315bcc99a44a8bd51f49f488"
+pkgrel=0
+pkgdesc="Library to access GSettings from Qt"
+url="https://gitlab.com/ubports/development/core/gsettings-qt"
+arch="all"
+license="LGPL-3.0-only"
+depends_dev="qt5-qtdeclarative-dev"
+makedepends="$depends_dev qt5-qtbase-dev"
+checkdepends="xvfb-run"
+subpackages="$pkgname-dev"
+source="https://gitlab.com/ubports/development/core/gsettings-qt/-/archive/$_commit/gsettings-qt-$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ qmake-qt5
+ make
+}
+
+check() {
+ LD_LIBRARY_PATH=../src GSETTINGS_BACKEND=memory GSETTINGS_SCHEMA_DIR=. xvfb-run make check
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+sha512sums="
+ead1c8fe4e050fe3b9a6f3881dbfda54e172b01948d59c52536ceb35e244222d75803849565d32e46bc80f9a1651abbeff545141a71545547252ce8786222175 gsettings-qt-d5e002d7e0bce46c315bcc99a44a8bd51f49f488.tar.gz
+"
diff --git a/testing/gsimplecal/APKBUILD b/testing/gsimplecal/APKBUILD
new file mode 100644
index 00000000000..c273ec419c0
--- /dev/null
+++ b/testing/gsimplecal/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Robin Candau <robincandau@protonmail.com>
+# Maintainer: Robin Candau <robincandau@protonmail.com>
+pkgname=gsimplecal
+pkgver=2.5.1
+pkgrel=0
+pkgdesc="Simple and lightweight GTK calendar"
+url="https://dmedvinsky.github.io/gsimplecal/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="autoconf automake pkgconf gtk+3.0-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dmedvinsky/gsimplecal/archive/v$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm 644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+sha512sums="
+0234dcecdc43e870bff68891fd620ea43750515ab687d845e692bf28598697b7274c46dca01af5d4cf1ab64c73d7a65612b5104dc000428d09186ce0740b974b gsimplecal-2.5.1.tar.gz
+"
diff --git a/testing/gst-plugins-rs/APKBUILD b/testing/gst-plugins-rs/APKBUILD
new file mode 100644
index 00000000000..a9e5ae6499a
--- /dev/null
+++ b/testing/gst-plugins-rs/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Krassy Boykinov <kboykinov@teamcentrixx.com>
+pkgname=gst-plugins-rs
+pkgver=0.12.4
+pkgrel=0
+pkgdesc="Gstreamer rust plugins"
+url="https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs"
+# ppc64le, s390x, riscv64: ring in gst-plugin-version-helper
+# armv7, armhf, x86: ring in gtk4
+arch="all !armhf !armv7 !ppc64le !riscv64 !s390x !x86"
+license="MIT AND Apache-2.0 AND MPL-2.0 AND LGPL-2.1-or-later"
+makedepends="
+ cargo
+ cargo-c
+ dav1d-dev
+ gst-plugins-bad-dev
+ gst-plugins-base-dev
+ gtk4.0-dev
+ libsodium-dev
+ meson
+ nasm
+ openssl-dev
+ "
+subpackages="$pkgname-dev $pkgname-tools"
+source="https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/archive/$pkgver/gst-plugins-rs-$pkgver.tar.gz
+ dylib.patch
+ "
+options="net !check" # they don't run
+
+export SODIUM_USE_PKG_CONFIG=1
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
+ abuild-meson \
+ --buildtype=release \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+tools() {
+ amove usr/bin
+}
+
+sha512sums="
+1ef76d1ee8778e474590f6f2c7a88cd94b1496cd242b64282710d0fba54fc3f807a7a8e58e58437f44c365d65e5ce8d21bcf72d9aff55033695327849eced00d gst-plugins-rs-0.12.4.tar.gz
+5f354a7776859f62a235947b5a31779688bc681f3c47c3fbf85806c8a12f68023a731067c958e40dfd580af591ea271e4e5184ef3b45a193c9b855486c64fef0 dylib.patch
+"
diff --git a/testing/gst-plugins-rs/dylib.patch b/testing/gst-plugins-rs/dylib.patch
new file mode 100644
index 00000000000..a8ead65159e
--- /dev/null
+++ b/testing/gst-plugins-rs/dylib.patch
@@ -0,0 +1,13 @@
+cargo-c defaults to static for musl otherwise
+diff --git a/cargo_wrapper.py b/cargo_wrapper.py
+index e04ad39..e7b3e03 100644
+--- a/cargo_wrapper.py
++++ b/cargo_wrapper.py
+@@ -89,6 +89,7 @@ if __name__ == "__main__":
+ cargo_cmd += ['build']
+ else:
+ cargo_cmd += ['cbuild']
++ cargo_cmd += ['--library-type=cdylib']
+ if not opts.disable_doc:
+ features += ['doc']
+ if opts.target == 'release':
diff --git a/testing/gst-rtsp-server/APKBUILD b/testing/gst-rtsp-server/APKBUILD
index 1ded2ad6a1d..66c62e25a09 100644
--- a/testing/gst-rtsp-server/APKBUILD
+++ b/testing/gst-rtsp-server/APKBUILD
@@ -1,33 +1,46 @@
# Contributor: Andrew Panteleyev <insonifi@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gst-rtsp-server
-pkgver=1.16.2
+pkgver=1.22.11
pkgrel=0
pkgdesc="GStreamer RTSP server"
url="https://gstreamer.freedesktop.org"
arch="all"
license="LGPL-2.0-or-later"
depends_dev="gst-plugins-base-dev"
-makedepends="$depends_dev gobject-introspection-dev gstreamer-dev"
+makedepends="
+ $depends_dev
+ gobject-introspection-dev
+ gst-plugins-bad-dev
+ gstreamer-dev
+ meson
+ "
+checkdepends="gst-plugins-good"
subpackages="$pkgname-dev"
source="https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-$pkgver.tar.xz"
+options="!check" # tests pass locally but not in ci
build() {
- ./configure \
- --host=$CHOST \
- --build=$CBUILD \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-static \
- --enable-introspection=yes \
- --with-package-origin="https://alpinelinux.org" \
- --with-package-name="GStreamer RTSP server (Alpine Linux)"
- make
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ CPPFLAGS="$CPPFLAGS -O2" \
+ abuild-meson \
+ -Db_lto=true \
+ -Dpackage-origin="https://alpinelinux.org" \
+ -Dpackage-name="GStreamer RTSP server (Alpine Linux)" \
+ -Dtests="$(want_check && echo enabled || echo disabled)" \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --print-errorlogs --no-rebuild -C output
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="e18d87ae309594ffd7917b1804e595b83d5002518608f0ee03b9e68ab9bdf771ec2f691e50408618a6d1a39495c123e8288b3179e6cdaef65a38ef404544e0eb gst-rtsp-server-1.16.2.tar.xz"
+sha512sums="
+cf3c698dbbcaa790b6bb1b1df4bae88be5f54fb70ba4bce5a4a0f907d693616d52b1cf67e73f694dcd7c9588b63a6303949f9f36fde952011a2d2ff80f9b44de gst-rtsp-server-1.22.11.tar.xz
+"
diff --git a/testing/gstreamer-vaapi/APKBUILD b/testing/gstreamer-vaapi/APKBUILD
deleted file mode 100644
index 54132af1f30..00000000000
--- a/testing/gstreamer-vaapi/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=gstreamer-vaapi
-pkgver=1.16.2
-pkgrel=2
-pkgdesc="GStreamer streaming media framework VA API plug-ins"
-url="https://gstreamer.freedesktop.org/"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="glib-dev gst-plugins-bad-dev libva-dev libxrandr-dev meson"
-source="https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-$pkgver.tar.xz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- meson test -C output --print-errorlogs
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="61554b5496dca595fa6e278a5634112e225784e9f0a7e731800fd04b395ba4e11dc467b8d074cb8cfed182fa9b9511c104192aecbba3ac755a4c32372061ac9f gstreamer-vaapi-1.16.2.tar.xz"
diff --git a/testing/gstreamermm/APKBUILD b/testing/gstreamermm/APKBUILD
index 18fc2b3e72e..7d0ff37cb38 100644
--- a/testing/gstreamermm/APKBUILD
+++ b/testing/gstreamermm/APKBUILD
@@ -2,33 +2,39 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=gstreamermm
pkgver=1.10.0
-pkgrel=2
+pkgrel=4
pkgdesc="C++ interface for GStreamer"
url="https://gstreamer.freedesktop.org/bindings/cplusplus.html"
arch="all"
-license="LGPL"
+license="LGPL-2.1-or-later"
makedepends="glibmm-dev gst-plugins-base-dev"
checkdepends="gtest-dev"
options="!check" #tests are broken
subpackages="$pkgname-dev"
-source="https://download.gnome.org/sources/gstreamermm/${pkgver%.[0-9]*}/$pkgname-$pkgver.tar.xz
+source="https://download.gnome.org/sources/gstreamermm/${pkgver%.[0-9]*}/gstreamermm-$pkgver.tar.xz
+ $pkgname-glib-2.68.patch::https://gitlab.gnome.org/GNOME/gstreamermm/-/commit/37116547fb5f9066978e39b4cf9f79f2154ad425.patch
"
-builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+
+ update_config_guess
+}
build() {
- cd "$builddir"
export CXXFLAGS="$CXXFLAGS -std=c++11"
./configure --prefix=/usr
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
check() {
- cd "$builddir"
make check
}
-sha512sums="34eeb9eec5958c96acf7c7791eef80138e5d55fea6ddf1bf9ace6b1ec7f052da2abf04d87089e4c9ead51c631ef7afceaf9fceb946ec3d105da522187c69e429 gstreamermm-1.10.0.tar.xz"
+sha512sums="
+34eeb9eec5958c96acf7c7791eef80138e5d55fea6ddf1bf9ace6b1ec7f052da2abf04d87089e4c9ead51c631ef7afceaf9fceb946ec3d105da522187c69e429 gstreamermm-1.10.0.tar.xz
+ce821e8d733f460c9c093d90c76ba66e649439870ed8797b98d927112cfd0d776e5fb858831f50e7cff38cd660b06914a327589c5c27b5f4f8a3783a633fdc8f gstreamermm-glib-2.68.patch
+"
diff --git a/testing/gtk4-layer-shell/APKBUILD b/testing/gtk4-layer-shell/APKBUILD
new file mode 100644
index 00000000000..1b72a530f66
--- /dev/null
+++ b/testing/gtk4-layer-shell/APKBUILD
@@ -0,0 +1,62 @@
+# Maintainer:
+pkgname=gtk4-layer-shell
+pkgver=1.0.2
+pkgrel=0
+pkgdesc="Create panels and other desktop components in Wayland using the Layer Shell protocol in GTK4"
+url="https://github.com/wmww/gtk4-layer-shell"
+arch="all"
+license="MIT"
+makedepends="
+ gobject-introspection-dev
+ gtk4.0-dev
+ meson
+ vala
+ wayland-dev
+ wayland-protocols
+ "
+checkdepends="
+ font-dejavu
+ py3-gobject3
+ xvfb-run
+ "
+subpackages="$pkgname-dev $pkgname-demo"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wmww/gtk4-layer-shell/archive/v$pkgver.tar.gz
+ no-lua-test.patch
+ "
+
+prepare() {
+ default_prepare
+
+ rm -fv test/smoke-tests/test-lua-example.py
+}
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dexamples=true \
+ -Ddocs=false \
+ -Dtests="$(want_check && echo true || echo false)" \
+ . output
+ meson compile -C output
+}
+
+check() {
+ XDG_RUNTIME_DIR="$(mktemp -d -p "$builddir")" \
+ xvfb-run -a \
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+demo() {
+ pkgdesc="Demo of GTK4 Layer Shell"
+
+ amove usr/bin/gtk4-layer-demo
+}
+
+sha512sums="
+f43a75c20fa41e4bc44430a36cf60a01281ce67a19afb4ed8297633a91803394ba8fe14dfb81db46f5bccc3e3dfe1474175b6c3249cfa614b42b167329b279f3 gtk4-layer-shell-1.0.2.tar.gz
+d581a80a98a701d6ff7cd5555f0b1a7959efb91b72f54e3ba597f78b2094d3f5630f8d96249860c761fee927a271ee624a192edb9bd40e2884f2004136e545ed no-lua-test.patch
+"
diff --git a/testing/gtk4-layer-shell/no-lua-test.patch b/testing/gtk4-layer-shell/no-lua-test.patch
new file mode 100644
index 00000000000..e0d904160aa
--- /dev/null
+++ b/testing/gtk4-layer-shell/no-lua-test.patch
@@ -0,0 +1,13 @@
+a bad arg is passed to lgi
+--
+diff --git a/test/smoke-tests/meson.build b/test/smoke-tests/meson.build
+index e773c54..f2dab96 100644
+--- a/test/smoke-tests/meson.build
++++ b/test/smoke-tests/meson.build
+@@ -2,6 +2,5 @@ smoke_tests = [
+ 'test-c-example',
+ 'test-c-demo',
+ 'test-python-example',
+- 'test-lua-example',
+ 'test-vala-example',
+ ]
diff --git a/testing/gtkhash/APKBUILD b/testing/gtkhash/APKBUILD
new file mode 100644
index 00000000000..a3f35d0e0fb
--- /dev/null
+++ b/testing/gtkhash/APKBUILD
@@ -0,0 +1,89 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=gtkhash
+pkgver=1.5
+pkgrel=0
+pkgdesc="Utility for computing message digests and checksums"
+url="https://gtkhash.org/"
+arch="all !s390x !riscv64 !ppc64le"
+# no librsvg-dev s390x riscv64, no nemo-dev pp64le
+license="GPL-2.0-or-later"
+makedepends="
+ caja-dev
+ cmake
+ glib-dev
+ gtk+3.0-dev
+ gtk-doc
+ libb2-dev
+ libgcrypt-dev
+ librsvg-dev
+ meson
+ nautilus-dev
+ nemo-dev
+ openssl-dev>3
+ thunar-dev
+ zlib-dev
+ "
+checkdepends="xvfb-run" # Not running properly under CI
+subpackages="
+ $pkgname-lang
+ caja-gtkhash-plugin:_caja
+ nemo-gtkhash-plugin:_nemo
+ thunar-gtkhash-plugin:_thunar
+ "
+source="https://github.com/tristanheaven/gtkhash/releases/download/v$pkgver/gtkhash-$pkgver.tar.gz"
+options="!check" # Disable check until failure under CI fixed
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dblake2=true \
+ -Dgcrypt=true \
+ -Dglib-checksums=true \
+ -Dinternal-md6=true \
+ -Dlibcrypto=true \
+ -Dlinux-crypto=true \
+ -Dzlib=true \
+ -Dnative-file-chooser=true \
+ -Dappstream=true \
+ -Dbuild-gtkhash=true \
+ -Dbuild-caja=true \
+ -Dbuild-nautilus=false \
+ -Dbuild-nemo=true \
+ -Dbuild-thunar=true \
+ . output
+ meson compile -C output
+}
+
+# https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/31622#note_220087
+check() {
+ xvfb-run meson test --no-rebuild -C output
+}
+
+_caja() {
+ pkgdesc="$pkgdesc (caja plugin)"
+ amove usr/lib/caja
+ amove usr/share/caja
+}
+
+_nautilus() {
+ pkgdesc="$pkgdesc (nautilus plugin)"
+ amove usr/lib/nautilus
+}
+
+_nemo() {
+ pkgdesc="$pkgdesc (nemo plugin)"
+ amove usr/lib/nemo
+}
+
+_thunar() {
+ pkgdesc="$pkgdesc (thunar plugin)"
+ amove usr/lib/thunarx-3
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+a71ec8780533ecb72f16ae9bc6fdfb5cf58f945c8fab9c16ee5007b04c22af701aaac79895ded9f7b573625020e9597a191fb81a68cec63111c089f1d03e2347 gtkhash-1.5.tar.gz
+"
diff --git a/testing/gtklock/APKBUILD b/testing/gtklock/APKBUILD
new file mode 100644
index 00000000000..64dae183ace
--- /dev/null
+++ b/testing/gtklock/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=gtklock
+pkgver=2.1.0
+pkgrel=0
+pkgdesc="GTK-based lockscreen for Wayland"
+url="https://github.com/jovanlanik/gtklock"
+arch="all"
+license="GPL-3.0-only"
+makedepends="linux-pam-dev glib-dev gtk-layer-shell-dev gtk+3.0-dev wayland-dev scdoc"
+subpackages="$pkgname-doc"
+source="https://github.com/jovanlanik/gtklock/archive/v$pkgver/gtklock-v$pkgver.tar.gz"
+options="!check" # no upstream tests
+
+build() {
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir" PREFIX="/usr"
+}
+
+sha512sums="
+63fedae301089d922804398aa957eb784778ec033f0f7fd49e85fef0bbf6a029942e55751bcb05e99ded6c42ea88d601531a3b81cd33509ba0cae4cf81d84ce8 gtklock-v2.1.0.tar.gz
+"
diff --git a/testing/gtksourceviewmm3/APKBUILD b/testing/gtksourceviewmm3/APKBUILD
new file mode 100644
index 00000000000..d243a109835
--- /dev/null
+++ b/testing/gtksourceviewmm3/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=gtksourceviewmm3
+pkgver=3.21.3
+pkgrel=2
+arch="all"
+pkgdesc="C++ wrapper for the gtksourceview widget library"
+url="https://gitlab.gnome.org/GNOME/gtksourceviewmm"
+license="LGPL-2.1-or-later"
+makedepends="autoconf automake libtool mm-common gtksourceview-dev"
+subpackages="$pkgname-devhelp $pkgname-doc $pkgname-dev"
+source="https://download.gnome.org/sources/gtksourceviewmm/${pkgver%.*}/gtksourceviewmm-$pkgver.tar.xz"
+builddir="$srcdir/${pkgname:0:-1}-$pkgver"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+bae4b1fc0792fee136b3be5a2514d29cc4ddc1e7ca663c090e5c15a693475fd6c80f081dd7972e53aa1a74f4ae85bc00d71438b7fb0a89d714a3e423cb5228ef gtksourceviewmm-3.21.3.tar.xz
+"
diff --git a/testing/gtksourceviewmm4/APKBUILD b/testing/gtksourceviewmm4/APKBUILD
new file mode 100644
index 00000000000..8689a1e3478
--- /dev/null
+++ b/testing/gtksourceviewmm4/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=gtksourceviewmm4
+# Preview release for 4.0.0
+pkgver=3.91.1
+pkgrel=2
+arch="all"
+pkgdesc="C++ wrapper for the gtksourceview widget library"
+url="https://gitlab.gnome.org/GNOME/gtksourceviewmm"
+license="LGPL-2.1-or-later"
+makedepends="autoconf automake libtool mm-common gtksourceview4-dev"
+subpackages="$pkgname-devhelp $pkgname-doc $pkgname-dev"
+source="https://download.gnome.org/sources/gtksourceviewmm/${pkgver%.*}/gtksourceviewmm-$pkgver.tar.xz"
+builddir="$srcdir/${pkgname:0:-1}-$pkgver"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f28f5611ce21bf4bbe15008604a3963bab46a5a631aef1cb99197e7b397950dde0c6875948f433e9f27f279b669366b27623786ae07178391e3fa2b90665823e gtksourceviewmm-3.91.1.tar.xz
+"
diff --git a/testing/gtkwave/APKBUILD b/testing/gtkwave/APKBUILD
new file mode 100644
index 00000000000..7ab9edaac8e
--- /dev/null
+++ b/testing/gtkwave/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=gtkwave
+pkgver=3.3.117
+pkgrel=0
+pkgdesc="A wave viewer which reads LXT, LXT2, VZT, GHW and VCD/EVCD files"
+url="https://gtkwave.sourceforge.net/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="desktop-file-utils"
+makedepends="
+ gtk+3.0-dev
+ bzip2-dev
+ xz-dev
+ dconf-dev
+ gperf
+ "
+subpackages="$pkgname-doc"
+source="https://gtkwave.sourceforge.net/gtkwave-gtk3-$pkgver.tar.gz"
+builddir="$srcdir/gtkwave-gtk3-$pkgver"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-mime-update \
+ --with-gsettings \
+ --disable-tcl \
+ --enable-gtk3
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b90d188f3d6fa2a631b582a0bcbfdc2a31580c0e03e01bff15a54c84e20cd2a7edea01026281d975e28ff6e6760d4c32944d2c405b129acbe7f57d73432318e4 gtkwave-gtk3-3.3.117.tar.gz
+"
diff --git a/testing/guacamole-server/APKBUILD b/testing/guacamole-server/APKBUILD
deleted file mode 100644
index 1de7891daac..00000000000
--- a/testing/guacamole-server/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=guacamole-server
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="package for guacamole server"
-url="https://guacamole.apache.org"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="cairo-dev libjpeg-turbo-dev libpng-dev ossp-uuid-dev ffmpeg-dev
- freerdp-dev pango-dev libssh2-dev libvncserver-dev pulseaudio-dev
- openssl-dev libvorbis-dev libwebp-dev perl libwebsockets-dev
- "
-subpackages="$pkgname-doc $pkgname-dev"
-source="http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/$pkgver/source/guacamole-server-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static \
- --with-libavcodec \
- --with-libavutil \
- --with-libswscale \
- --with-ssl \
- --without-winsock \
- --with-vorbis \
- --with-pulse \
- --with-pango \
- --with-terminal \
- --with-vnc \
- --with-rdp \
- --with-ssh \
- --without-telnet \
- --with-webp \
- --with-websockets
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="a7d00c1120a9c472faeb119d54e8c29b24334e12d13a173cf56e1ed04abd327f2657dca7279586f3fd65bb3fbc9bdf8c86062e147c14b16c1e7b5658ff6f5cf8 guacamole-server-1.1.0.tar.gz"
diff --git a/testing/guake/APKBUILD b/testing/guake/APKBUILD
index 55ed0fb0ca9..16f3cea0ad2 100644
--- a/testing/guake/APKBUILD
+++ b/testing/guake/APKBUILD
@@ -1,30 +1,53 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=guake
-pkgver=3.7.0
-pkgrel=0
+pkgver=3.10
+pkgrel=1
pkgdesc="Drop-down terminal for GNOME"
-url="http://guake-project.org"
+url="http://guake-project.org/"
arch="noarch"
-license="GPL"
-depends="py3-pbr"
-makedepends="python3-dev py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Guake/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+license="GPL-2.0-only"
+depends="
+ keybinder3
+ libnotify
+ libutempter
+ libwnck3
+ py3-cairo
+ py3-dbus
+ py3-gobject3
+ py3-pbr
+ py3-yaml
+ python3
+ vte3
+ "
+makedepends="
+ gettext-dev
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ python3-dev
+ "
+subpackages="$pkgname-lang $pkgname-pyc"
+source="$pkgname-$pkgver-2.tar.gz::https://github.com/Guake/guake/archive/refs/tags/$pkgver.tar.gz
+ fix-install.patch
+ "
+options="!check" # no tests
-build() {
- cd "$builddir"
- python3 setup.py build
-}
+# secfixes:
+# 3.8.5-r0:
+# - CVE-2021-23556
-check() {
- cd "$builddir"
- python3 setup.py check
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ make
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ make COMPILE_SCHEMA=0 DESTDIR="$pkgdir" PREFIX=/usr install
}
-sha512sums="4f45c94208eea629275cd574ecdc2f96456797b1da703c31bb8cb211ab5203acd1029d7cf82c18b6441c33138195547b2f117ebdd8b22e38134f46849c38d64f guake-3.7.0.tar.gz"
+sha512sums="
+72e5b7a046ceab0c5fedde25e7baa4e4002edc7f97867db72ed0cacc7347ca5381d74813f1ae1f61167b9c9128d87d60c7b6610b25f7abad024a2e001d3b114a guake-3.10-2.tar.gz
+29207ce672ce166a0249f74fdfd19028b07214d79f7fffd460837ed5c0b3a4bbade6ba7be66b90236f30a09fcc9932e22b1bd3920fc5a1fa77c3a35c4bf98abf fix-install.patch
+"
diff --git a/testing/guake/fix-install.patch b/testing/guake/fix-install.patch
new file mode 100644
index 00000000000..e874e45b554
--- /dev/null
+++ b/testing/guake/fix-install.patch
@@ -0,0 +1,19 @@
+diff --git a/Makefile b/Makefile
+index ccbf433..bd0026c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -94,12 +94,12 @@ install-guake:
+ @sed -i -e 's|{{ LOGIN_DESTOP_PATH }}|"$(LOGIN_DESTOP_PATH)"|g' guake/paths.py
+ @sed -i -e 's|{{ AUTOSTART_FOLDER }}|"$(AUTOSTART_FOLDER)"|g' guake/paths.py
+
+- @$(PYTHON_INTERPRETER) -m pip install . --root "$(DESTDIR)" --prefix="/usr" || echo -e "\033[31;1msetup.py install failed, you may need to run \"sudo git config --global --add safe.directory '*'\"\033[0m"
++ @gpep517 build-wheel --wheel-dir dist --output-fd 3 3>&1 >&2
++ @python3 -m installer -d "$(DESTDIR)" dist/*.whl
+
+ @rm -f guake/paths.py
+ @if [ -f guake/paths.py.dev ]; then mv guake/paths.py.dev guake/paths.py; fi
+
+- @update-desktop-database || echo "Could not run update-desktop-database, are you root?"
+ @rm -rfv build *.egg-info
+
+ install-locale:
diff --git a/testing/guetzli/APKBUILD b/testing/guetzli/APKBUILD
new file mode 100644
index 00000000000..dd2da63cef9
--- /dev/null
+++ b/testing/guetzli/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=guetzli
+pkgver=0_git20191025 # Last tagged release on Mar 21, 2017, 76 commits behind
+_commit=214f2bb42abf5a577c079d00add5d6cc470620d3
+pkgrel=1
+pkgdesc="perceptual JPEG encoder that aims for excellent compression density at high visual quality"
+url="https://github.com/google/guetzli"
+license="Apache-2.0"
+arch="all"
+options="!check" # no test suite
+makedepends="libpng-dev"
+subpackages="$pkgname-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/google/guetzli/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ make all
+}
+
+package() {
+ cd bin/Release
+ install -Dm755 guetzli -t $pkgdir/usr/bin
+ install -Dm644 libguetzli_static.a -t $pkgdir/usr/lib
+}
+
+sha512sums="841cb14df4d27d3227e0ef8ecff6bd8a222d791abfc8fb593bf68996ed8861a9cc483f1a9b140023a247a5b1a350197601ca75a990507aaafa1b2dd03f8577d0 guetzli-214f2bb42abf5a577c079d00add5d6cc470620d3.tar.gz"
diff --git a/testing/gufw/APKBUILD b/testing/gufw/APKBUILD
new file mode 100644
index 00000000000..453f0eabab7
--- /dev/null
+++ b/testing/gufw/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=gufw
+pkgver=24.04
+pkgrel=1
+pkgdesc="GUI for Uncomplicated Firewall"
+url="https://costales.github.io/projects/gufw/"
+arch="noarch"
+options="!check" # no test suite
+license="GPL-3.0-or-later"
+depends="
+ desktop-file-utils
+ gtk-update-icon-cache
+ polkit
+ py3-gobject3
+ python3
+ ufw
+ webkit2gtk
+ "
+makedepends="
+ intltool
+ py3-distutils-extra
+ py3-setuptools
+ "
+source="https://github.com/costales/gufw/archive/$pkgver/gufw-$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-lang $pkgname-pyc"
+
+build() {
+ local PYTHONVERSION="$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')"
+ sed \
+ -e 's|/usr/share/gufw/gufw/gufw.py $1|/usr/lib/python'"$PYTHONVERSION"'/site-packages/gufw/gufw.py "$@"|' \
+ -e 's|/bin/bash|/bin/sh|' \
+ -i bin/gufw-pkexec
+ sed \
+ 's|/bin/bash|/bin/sh|' \
+ -i bin/gufw
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir" -O1
+}
+
+sha512sums="
+c9b9d86c35ab574e6e93f3dc62fc1875c33b371c397ab7032e07935db7d594c7e0af37789678007b848ff83a5d1d69724c728687c0c36a4c890aaf56420c2228 gufw-24.04.tar.gz
+"
diff --git a/testing/guish/APKBUILD b/testing/guish/APKBUILD
new file mode 100644
index 00000000000..fd137ccfcf9
--- /dev/null
+++ b/testing/guish/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Francesco Palumbo <phranz@subfc.net>
+# Contributor: Francesco Palumbo <phranz@subfc.net>
+pkgname=guish
+pkgver=2.6.10
+pkgrel=0
+pkgdesc="Language and swiss army knife to make and modify GUIs"
+# others not supported yet
+arch="x86 x86_64 armhf armv7 aarch64"
+url="https://codeberg.org/phranz/guish"
+license="GPL-3.0-or-later"
+makedepends="libx11-dev libxtst-dev imlib2-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/phranz/guish/archive/$pkgver.tar.gz"
+builddir="$srcdir/guish"
+
+build() {
+ make
+}
+
+check() {
+ make tests
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="
+ddebd1f8383b91e0bf16a77eb05c4ddb5dd7129a33a75bd86b4393df21def2664e8a431bec36becd52af0ca332776707a88786fd843e7fcc85ba6123ee47a65f guish-2.6.10.tar.gz
+"
diff --git a/testing/gumbo-parser/APKBUILD b/testing/gumbo-parser/APKBUILD
deleted file mode 100644
index b5b5a620fb6..00000000000
--- a/testing/gumbo-parser/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=gumbo-parser
-pkgver=0.10.1
-pkgrel=0
-pkgdesc="An HTML5 parsing library in pure C99"
-url="https://github.com/google/gumbo-parser"
-arch="all"
-license="Apache-2.0"
-makedepends="libtool m4 automake autoconf gtest-dev"
-checkdepends="gtest"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/google/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- cd "$buildir"
- ./autogen.sh
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- cd "$builddir"
- make -k check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-
- install -Dm 644 -t "$pkgdir/usr/share/licenses/$pkgname/" COPYING
- install -Dm 644 -t "$pkgdir/usr/share/doc/$pkgname/" README.md
-}
-
-sha512sums="bb1fb55cd07076ab6a9f38dc14db50397dbdca9a04ace4895dfba8b8cbc09038a96e26070c09c75fa929ada2e815affe233c1e2ecd8afe2aba6201647cf277d1 gumbo-parser-0.10.1.tar.gz"
diff --git a/testing/gutenprint/APKBUILD b/testing/gutenprint/APKBUILD
index b6f6f9d1056..a9dbc5d1cfd 100644
--- a/testing/gutenprint/APKBUILD
+++ b/testing/gutenprint/APKBUILD
@@ -1,40 +1,26 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer:
pkgname=gutenprint
-pkgver=5.2.11
-pkgrel=0
-pkgdesc="Printer Drivers Package"
-url="http://gimp-print.sourceforge.net/"
+pkgver=5.3.4
+pkgrel=3
+pkgdesc="Top quality printer drivers for POSIX systems"
+url="https://gimp-print.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
-depends=""
-depends_dev=""
-makedepends="$depends_dev cups-dev tiff-dev libjpeg-turbo-dev libpng-dev
- ghostscript-dev libusb-dev autoconf automake libtool gettext-dev"
-install=""
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-libs
- $pkgname-cups $pkgname-samples"
-source="https://downloads.sourceforge.net/gimp-print/gutenprint-$pkgver.tar.bz2
- musl-fix-header.patch
- pagesize-name-clash.patch
- gutenprint-O6.patch
+makedepends="
+ bash
+ cups-dev
+ gettext-dev
+ ghostscript-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libusb-dev
+ tiff-dev
"
-
-_builddir="$srcdir"/gutenprint-$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
- mkdir -p m4local
- autoreconf -vif || return 1
-}
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-lang $pkgname-libs $pkgname-cups $pkgname-samples"
+source="https://downloads.sourceforge.net/gimp-print/gutenprint-$pkgver.tar.xz"
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -44,38 +30,35 @@ build() {
--infodir=/usr/share/info \
--localstatedir=/var \
--disable-nls \
- --disable-cups-ppds \
- --enable-simplified-cups-ppds \
- || return 1
- make || return 1
+ --enable-cups-ppds \
+ --enable-simplified-cups-ppds
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
rm -r "$pkgdir"/usr/share/gutenprint/doc \
- "$pkgdir"/etc/cups/command.types \
- || return 1
+ "$pkgdir"/etc/cups/command.types
}
cups() {
pkgdesc="CUPS drivers for Canon, Epson, HP and compatible printers"
- for d in usr/share usr/lib usr/bin usr/sbin etc; do
- mkdir -p "$subpkgdir"/$d || return 1
- mv "$pkgdir"/$d/cups* "$subpkgdir"/$d/ || return 1
- done
+ amove \
+ usr/share/cups* \
+ usr/lib/cups* \
+ usr/bin/cups* \
+ usr/sbin/cups* \
+ etc/cups
}
samples() {
pkgdesc="Sample test pattern generator for gutenprint-dev"
- mkdir -p "$subpkgdir"/usr/share/gutenprint "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/share/gutenprint/samples \
- "$subpkgdir"/usr/share/gutenprint/ || return 1
- mv "$pkgdir"/usr/bin/testpattern "$subpkgdir"/usr/bin/ || return 1
+ amove \
+ usr/share/gutenprint/samples \
+ usr/bin/testpattern
}
-sha512sums="f4010e489dd6763b19113abf1d55e84cea8d36b920d03dbe204dba30ab0d3fb3e3391e739cd1a56e2f63581c8ce4a856a7f747deb6e7b18d7e1f7a3d87901c60 gutenprint-5.2.11.tar.bz2
-97c38aa2d7931af25e577e27949f659bd45be3e9deab0af86e437587a526d5d37006d0fddd57ad22e1bbe39f25dfa34926e75690a243c7736840cf85ca5ae2df musl-fix-header.patch
-8b17b4d3dd3f9dbeff7c3a3da38395cde8bea51abe5a8ebeac62b9e442dc451341b3571de02437d035a63da83d10316a4ce0da143cc90a935678a01fb5efb224 pagesize-name-clash.patch
-81cdbd3ff271fec2d7d17313772db6d2617da90bd532a6e2d834e8bfde9e5329a62b01876714be145dbf23071a053374b1b78dd173ea999d0e873b895b49d0a6 gutenprint-O6.patch"
+sha512sums="
+63de0b62edbe255a7efaaeab1dcd22577b7b46d7e0e48441b79977f19e76bf3862e4e8e18c55dd1f2e7392d555f9e8ee875ea53b90c689852d2343491a8fbcc8 gutenprint-5.3.4.tar.xz
+"
diff --git a/testing/gutenprint/gutenprint-O6.patch b/testing/gutenprint/gutenprint-O6.patch
deleted file mode 100644
index 0c1084b66d4..00000000000
--- a/testing/gutenprint/gutenprint-O6.patch
+++ /dev/null
@@ -1,281 +0,0 @@
-diff -up gutenprint-5.2.7/configure.ac.O6 gutenprint-5.2.7/configure.ac
---- gutenprint-5.2.7/configure.ac.O6 2011-05-02 03:20:49.000000000 +0200
-+++ gutenprint-5.2.7/configure.ac 2011-05-05 12:40:29.000000000 +0200
-@@ -625,27 +625,6 @@ AH_TEMPLATE(PKGMODULEDIR,, [Package modu
- PKGMODULEDIR="${PACKAGE_LIB_DIR}/${GUTENPRINT_RELEASE_VERSION}/modules"
- AC_DEFINE_UNQUOTED(PKGMODULEDIR, ["$PKGMODULEDIR"])
-
--dnl Compiler flags
--if test x$ac_compiler_gnu = "xyes"; then
-- STP_ADD_COMPILER_ARGS([-Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -Werror-implicit-function-declaration -Winline -Wformat=2 -finline-limit=131072],, [GNUCFLAGS])
-- if test x${USE_MAINTAINER_MODE} = xyes ; then
-- STP_ADD_COMPILER_ARGS([-pedantic -Waggregate-return -Wcast-qual -Wshadow -Wredundant-decls],, [GNUCFLAGS])
-- fi
-- if test x$ENABLE_DEBUG = xyes ; then
-- STP_ADD_COMPILER_ARG([-g])
-- else
-- STP_ADD_FIRST_COMPILER_ARG([-O6 -O3 -O2 -O1 -O])
-- fi
--else
-- if test x$ENABLE_DEBUG = xyes ; then
-- STP_ADD_COMPILER_ARG([-g])
-- else
-- STP_ADD_FIRST_COMPILER_ARG([-O])
-- fi
--fi
--if test x$ENABLE_PROFILE = xyes ; then
-- STP_ADD_COMPILER_ARG([-pg])
--fi
- AC_SUBST(GNUCFLAGS)
-
- AH_TEMPLATE([HAVE_GCC_ATTRIBUTES],
-diff -up gutenprint-5.2.7/configure.O6 gutenprint-5.2.7/configure
---- gutenprint-5.2.7/configure.O6 2011-05-02 03:32:21.000000000 +0200
-+++ gutenprint-5.2.7/configure 2011-05-05 12:52:09.000000000 +0200
-@@ -16589,246 +16589,6 @@ cat >>confdefs.h <<_ACEOF
- #define PKGMODULEDIR "$PKGMODULEDIR"
- _ACEOF
-
--
--if test x$ac_compiler_gnu = "xyes"; then
--
-- for stp_ac_arg in -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wwrite-strings -Werror-implicit-function-declaration -Winline -Wformat=2 -finline-limit=131072 ; do
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports ${stp_ac_arg}" >&5
--$as_echo_n "checking if ${CC} supports ${stp_ac_arg}... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${GNUCFLAGS} ${stp_ac_arg}"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- GNUCFLAGS="${stp_newCFLAGS}"
--
-- done
--
-- if test x${USE_MAINTAINER_MODE} = xyes ; then
--
-- for stp_ac_arg in -pedantic -Waggregate-return -Wcast-qual -Wshadow -Wredundant-decls ; do
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports ${stp_ac_arg}" >&5
--$as_echo_n "checking if ${CC} supports ${stp_ac_arg}... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${GNUCFLAGS} ${stp_ac_arg}"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- GNUCFLAGS="${stp_newCFLAGS}"
--
-- done
--
-- fi
-- if test x$ENABLE_DEBUG = xyes ; then
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports -g" >&5
--$as_echo_n "checking if ${CC} supports -g... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${CFLAGS} -g"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- CFLAGS="${stp_newCFLAGS}"
--
-- else
--
-- for stp_ac_arg in -O6 -O3 -O2 -O1 -O ; do
-- stp_ac_save_CFLAGS="${CFLAGS}"
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports ${stp_ac_arg}" >&5
--$as_echo_n "checking if ${CC} supports ${stp_ac_arg}... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${CFLAGS} ${stp_ac_arg}"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- CFLAGS="${stp_newCFLAGS}"
--
-- test "${stp_ac_save_CFLAGS}" != "${CFLAGS}" && break
-- done
--
-- fi
--else
-- if test x$ENABLE_DEBUG = xyes ; then
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports -g" >&5
--$as_echo_n "checking if ${CC} supports -g... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${CFLAGS} -g"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- CFLAGS="${stp_newCFLAGS}"
--
-- else
--
-- for stp_ac_arg in -O ; do
-- stp_ac_save_CFLAGS="${CFLAGS}"
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports ${stp_ac_arg}" >&5
--$as_echo_n "checking if ${CC} supports ${stp_ac_arg}... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${CFLAGS} ${stp_ac_arg}"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- CFLAGS="${stp_newCFLAGS}"
--
-- test "${stp_ac_save_CFLAGS}" != "${CFLAGS}" && break
-- done
--
-- fi
--fi
--if test x$ENABLE_PROFILE = xyes ; then
--
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ${CC} supports -pg" >&5
--$as_echo_n "checking if ${CC} supports -pg... " >&6; }
-- stp_acOLDCFLAGS="${CFLAGS}"
-- CFLAGS="${CFLAGS} -pg"
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_compile "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; };
-- stp_newCFLAGS="$CFLAGS"
--else
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; };
-- stp_newCFLAGS="$stp_acOLDCFLAGS"
--fi
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$stp_acOLDCFLAGS"
-- CFLAGS="${stp_newCFLAGS}"
--
--fi
--
--
--
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports __attribute__ syntax" >&5
- $as_echo_n "checking if $CC supports __attribute__ syntax... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
diff --git a/testing/gutenprint/musl-fix-header.patch b/testing/gutenprint/musl-fix-header.patch
deleted file mode 100644
index 8a74a56ac59..00000000000
--- a/testing/gutenprint/musl-fix-header.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/main/print-olympus.c b/src/main/print-olympus.c
-index 42c4897..b11b020 100644
---- a/src/main/print-olympus.c
-+++ b/src/main/print-olympus.c
-@@ -40,6 +40,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <limits.h>
-+#include <endian.h>
-
- #ifdef __GNUC__
- #define inline __inline__
diff --git a/testing/gutenprint/pagesize-name-clash.patch b/testing/gutenprint/pagesize-name-clash.patch
deleted file mode 100644
index 932ae2da05b..00000000000
--- a/testing/gutenprint/pagesize-name-clash.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/testpattern/testpatterny.h b/src/testpattern/testpatterny.h
-index 010e17a..986d1d7 100644
---- a/src/testpattern/testpatterny.h
-+++ b/src/testpattern/testpatterny.h
-@@ -36,6 +36,9 @@
- /* Tokens. */
- #ifndef YYTOKENTYPE
- # define YYTOKENTYPE
-+#ifdef PAGESIZE
-+#undef PAGESIZE
-+#endif
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
diff --git a/testing/gx-go/APKBUILD b/testing/gx-go/APKBUILD
index 35e00d023c5..9df0d782c60 100644
--- a/testing/gx-go/APKBUILD
+++ b/testing/gx-go/APKBUILD
@@ -2,56 +2,39 @@
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=gx-go
pkgver=1.9.0
-pkgrel=3
+pkgrel=24
pkgdesc="A tool to use with the gx package manager for packages written in go"
url="https://github.com/whyrusleeping/gx-go"
-arch="all"
+# riscv64: dependency github.com/minio/sha512-simd does not support riscv64
+arch="all !riscv64"
license="MIT"
-options="!check" # Test suite issues
-makedepends="git glide go"
+options="!check net" # Test suite issues
+makedepends="go"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/whyrusleeping/$pkgname/archive/v$pkgver.tar.gz
- glide.yaml
- glide.lock
- "
-builddir="$srcdir/src/github.com/whyrusleeping/$pkgname"
+source="$pkgname-$pkgver.tar.gz::https://github.com/whyrusleeping/gx-go/archive/v$pkgver.tar.gz
+ gomod.patch
+ "
-prepare() {
- export GOPATH="$srcdir"
-
- mkdir -p $(dirname $builddir)
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
-
- cd "$builddir"
- cp "$srcdir"/glide.yaml "$srcdir"/glide.lock .
- glide install --skip-test
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+prepare() {
default_prepare
+ go mod download
}
build() {
- GOPATH="$srcdir" GOBIN="$GOPATH/bin" make
+ go build -o bin/gx-go
}
package() {
- cd "$srcdir"
install -Dm 755 bin/gx-go "$pkgdir/usr/bin/gx-go"
- cd "$builddir"
install -Dm 644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
}
-glide_init() {
- abuild clean deps unpack prepare
- cd "$builddir"
- export GOPATH="$startdir"
- rm -f glide.yaml glide.lock
- glide init --non-interactive
- glide update
- cp glide.yaml glide.lock "$startdir"
- cd "$startdir" && abuild checksum clean
-}
-
-sha512sums="3df8a99d257098afdf99ba6cbf58d50eab196f823ae53db48865a4f4962e38b84a66ffc99d5a342b43ff9891c8245252a77677b75c770d86f93ef1ad3c9e879f gx-go-1.9.0.tar.gz
-db824fce3e8094e2806c68b18ba5b8decae4cb62068113f6bc97f72de1224bd326b3342297739ee9b5a86bd4f7c9ec2f9b04aa3610cc95903dc1b3bfd7b0934f glide.yaml
-32a2ae3e10d20c0ba1613a592d8b9fd7a6e9678e2bc9f262bb6887c22b65c0a8da2c7aef1f70d35b3d89ae6aa6b50ca26cdddd47c3ee274a8ddc1a8bf0b16016 glide.lock"
+sha512sums="
+3df8a99d257098afdf99ba6cbf58d50eab196f823ae53db48865a4f4962e38b84a66ffc99d5a342b43ff9891c8245252a77677b75c770d86f93ef1ad3c9e879f gx-go-1.9.0.tar.gz
+f7678e3ec2092ab9f4a78097dcaa892acb6288bf680c6f992b789d35d241e575d181d53c32e53b19e07ff6c793aed2188b5856c021287b2204eff82c78683e2f gomod.patch
+"
diff --git a/testing/gx-go/glide.lock b/testing/gx-go/glide.lock
deleted file mode 100644
index e30e2b7bc60..00000000000
--- a/testing/gx-go/glide.lock
+++ /dev/null
@@ -1,86 +0,0 @@
-hash: 95215163a517cde934cd6d76708d61d7593e3d0f75f09c30dab341e8462c4d8a
-updated: 2019-04-01T09:33:13.761921059-06:00
-imports:
-- name: github.com/btcsuite/btcd
- version: aa6e0f35703c1438cc45860ddc0c3f6e6c633c93
- subpackages:
- - btcec
-- name: github.com/gogo/protobuf
- version: 382325bbbb4d1c850eec1f3ec92a1a16f502d68b
- subpackages:
- - proto
-- name: github.com/gxed/hashland
- version: a72cc0875a1e95edd309d3134bc7c11bf2d7360b
- subpackages:
- - keccakpg
- - murmur3
-- name: github.com/ipfs/go-ipfs-api
- version: 26337195b3df044934572dc3ca9ccb175ce057b2
- subpackages:
- - options
-- name: github.com/ipfs/go-ipfs-files
- version: c68472a9b1ec45177ccf8fda607698c86ae0060f
-- name: github.com/kr/fs
- version: 1455def202f6e05b95cc7bfc7e8ae67ae5141eba
-- name: github.com/libp2p/go-flow-metrics
- version: 5b4a5750cdd34754b1a417b4c7c7d1c24790b4d4
-- name: github.com/libp2p/go-libp2p-crypto
- version: b0ed0e663e8b6832bad3f4502b2f6551ff2686cd
- subpackages:
- - pb
-- name: github.com/libp2p/go-libp2p-metrics
- version: a64ed6c7351276b3f21cbfa033ceba9bd096c3af
-- name: github.com/libp2p/go-libp2p-peer
- version: 96d6d7940e6fc555240a92d1b4615049cd451da2
-- name: github.com/libp2p/go-libp2p-protocol
- version: 89147e29c7ab3b76c6f8be5b6fcdf3839aec286f
-- name: github.com/minio/blake2b-simd
- version: 3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4
-- name: github.com/minio/sha256-simd
- version: 05b4dd3047e5d6e86cb4e0477164b850cd896261
-- name: github.com/mitchellh/go-homedir
- version: af06845cf3004701891bf4fdb884bfe4920b3727
-- name: github.com/mr-tron/base58
- version: 6598572f05537592acb5a609ff53c4c7fbba7a3e
- subpackages:
- - base58
-- name: github.com/multiformats/go-multiaddr
- version: ce21123d5172669bbf37a166078bc5f9d345ec2f
-- name: github.com/multiformats/go-multiaddr-dns
- version: 7d0de25ce05c9294aa44f320c03c7e85e11bbb0b
-- name: github.com/multiformats/go-multiaddr-net
- version: bd61b0499a3cfc893a8eb109c5669342b1671881
-- name: github.com/multiformats/go-multihash
- version: 2ca70e715b6950a9382097b770a3f44fd570d388
-- name: github.com/sabhiram/go-gitignore
- version: d3107576ba9425fc1c85f4b3569c4631b805a02e
-- name: github.com/urfave/cli
- version: 693af58b4d51b8fcc7f9d89576da170765980581
-- name: github.com/whyrusleeping/gx
- version: ca314b1e9e6be0432e50a30737c0e0720e67dd0f
- subpackages:
- - gxutil
-- name: github.com/whyrusleeping/gx-go
- version: d92567959e16cc58afd1edc83db02be880f495e9
- subpackages:
- - rewrite
-- name: github.com/whyrusleeping/progmeter
- version: f3e57218a75b913eff88d49a52c1debf9684ea04
-- name: github.com/whyrusleeping/stump
- version: 206f8f13aae1697a6fc1f4a55799faf955971fc5
-- name: github.com/whyrusleeping/tar-utils
- version: 8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc
-- name: golang.org/x/crypto
- version: a5d413f7728c81fb97d96a2b722368945f651e78
- subpackages:
- - blake2s
- - ed25519
- - ed25519/internal/edwards25519
- - sha3
-- name: golang.org/x/sys
- version: f49334f85ddcf0f08d7fb6dd7363e9e6d6b777eb
- subpackages:
- - cpu
- - unix
- - windows
-testImports: []
diff --git a/testing/gx-go/glide.yaml b/testing/gx-go/glide.yaml
deleted file mode 100644
index b5214da7244..00000000000
--- a/testing/gx-go/glide.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-package: src/github.com/whyrusleeping/gx-go
-import:
-- package: github.com/kr/fs
-- package: github.com/mitchellh/go-homedir
-- package: github.com/urfave/cli
-- package: github.com/whyrusleeping/gx-go
- subpackages:
- - rewrite
-- package: github.com/whyrusleeping/gx
- subpackages:
- - gxutil
-- package: github.com/whyrusleeping/stump
diff --git a/testing/gx-go/gomod.patch b/testing/gx-go/gomod.patch
new file mode 100644
index 00000000000..0372ec55b73
--- /dev/null
+++ b/testing/gx-go/gomod.patch
@@ -0,0 +1,190 @@
+diff --git a/go.mod b/go.mod
+new file mode 100644
+index 0000000..f130106
+--- /dev/null
++++ b/go.mod
+@@ -0,0 +1,41 @@
++module github.com/whyrusleeping/gx-go
++
++go 1.19
++
++require (
++ github.com/kr/fs v0.1.0
++ github.com/mitchellh/go-homedir v1.1.0
++ github.com/urfave/cli v1.22.9
++ github.com/whyrusleeping/gx v0.14.3
++ github.com/whyrusleeping/stump v0.0.0-20160611222256-206f8f13aae1
++)
++
++require (
++ github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 // indirect
++ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d // indirect
++ github.com/gogo/protobuf v1.2.1 // indirect
++ github.com/ipfs/go-ipfs-api v0.0.3 // indirect
++ github.com/ipfs/go-ipfs-files v0.0.6 // indirect
++ github.com/libp2p/go-flow-metrics v0.0.1 // indirect
++ github.com/libp2p/go-libp2p-core v0.0.1 // indirect
++ github.com/libp2p/go-libp2p-crypto v0.1.0 // indirect
++ github.com/libp2p/go-libp2p-metrics v0.1.0 // indirect
++ github.com/libp2p/go-libp2p-peer v0.2.0 // indirect
++ github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect
++ github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771 // indirect
++ github.com/mr-tron/base58 v1.1.3 // indirect
++ github.com/multiformats/go-multiaddr v0.2.0 // indirect
++ github.com/multiformats/go-multiaddr-net v0.1.2 // indirect
++ github.com/multiformats/go-multihash v0.0.13 // indirect
++ github.com/multiformats/go-varint v0.0.5 // indirect
++ github.com/russross/blackfriday/v2 v2.0.1 // indirect
++ github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 // indirect
++ github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
++ github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a // indirect
++ github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect
++ github.com/spaolacci/murmur3 v1.1.0 // indirect
++ github.com/whyrusleeping/progmeter v0.0.0-20180725015555-f3e57218a75b // indirect
++ github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c // indirect
++ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 // indirect
++ golang.org/x/sys v0.0.0-20190412213103-97732733099d // indirect
++)
+diff --git a/go.sum b/go.sum
+new file mode 100644
+index 0000000..7a57a81
+--- /dev/null
++++ b/go.sum
+@@ -0,0 +1,137 @@
++github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
++github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
++github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
++github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32 h1:qkOC5Gd33k54tobS36cXdAzJbeHaduLtnLQQwNoIi78=
++github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8=
++github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
++github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
++github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
++github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY=
++github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
++github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
++github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
++github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764=
++github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
++github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
++github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
++github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
++github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
++github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
++github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
++github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
++github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
++github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
++github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
++github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU=
++github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48=
++github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
++github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
++github.com/ipfs/go-ipfs-api v0.0.3 h1:1XZBfVDGj0GyyO5WItLrz2opCwezIm9LfFcBfe+sRxM=
++github.com/ipfs/go-ipfs-api v0.0.3/go.mod h1:EgBqlEzrA22SnNKq4tcP2GDPKxbfF+uRTd2YFmR1uUk=
++github.com/ipfs/go-ipfs-files v0.0.6 h1:sMRtPiSmDrTA2FEiFTtk1vWgO2Dkg7bxXKJ+s8/cDAc=
++github.com/ipfs/go-ipfs-files v0.0.6/go.mod h1:lVYE6sgAdtZN5825beJjSAHibw7WOBNPDWz5LaJeukg=
++github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc=
++github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY=
++github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
++github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ=
++github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
++github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
++github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
++github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
++github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
++github.com/libp2p/go-flow-metrics v0.0.1 h1:0gxuFd2GuK7IIP5pKljLwps6TvcuYgvG7Atqi3INF5s=
++github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8=
++github.com/libp2p/go-libp2p-core v0.0.1 h1:HSTZtFIq/W5Ue43Zw+uWZyy2Vl5WtF0zDjKN8/DT/1I=
++github.com/libp2p/go-libp2p-core v0.0.1/go.mod h1:g/VxnTZ/1ygHxH3dKok7Vno1VfpvGcGip57wjTU4fco=
++github.com/libp2p/go-libp2p-crypto v0.1.0 h1:k9MFy+o2zGDNGsaoZl0MA3iZ75qXxr9OOoAZF+sD5OQ=
++github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI=
++github.com/libp2p/go-libp2p-metrics v0.1.0 h1:v7YMUTHNobFaQeqaMfJJMbnK3EPlZeb6/KFm4gE9dks=
++github.com/libp2p/go-libp2p-metrics v0.1.0/go.mod h1:rpoJmXWFxnj7qs5sJ02sxSzrhaZvpqBn8GCG6Sx6E1k=
++github.com/libp2p/go-libp2p-peer v0.2.0 h1:EQ8kMjaCUwt/Y5uLgjT8iY2qg0mGUT0N1zUjer50DsY=
++github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY=
++github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g=
++github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ=
++github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U=
++github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771 h1:MHkK1uRtFbVqvAgvWxafZe54+5uBxLluGylDiKgdhwo=
++github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
++github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
++github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
++github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
++github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
++github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
++github.com/mr-tron/base58 v1.1.3 h1:v+sk57XuaCKGXpWtVBX8YJzO7hMGx4Aajh4TQbdEFdc=
++github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
++github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA=
++github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
++github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44=
++github.com/multiformats/go-multiaddr v0.2.0 h1:lR52sFwcTCuQb6bTfnXF6zA2XfyYvyd+5a9qECv/J90=
++github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4=
++github.com/multiformats/go-multiaddr-net v0.1.1/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ=
++github.com/multiformats/go-multiaddr-net v0.1.2 h1:P7zcBH9FRETdPkDrylcXVjQLQ2t1JQtNItZULWNWgeg=
++github.com/multiformats/go-multiaddr-net v0.1.2/go.mod h1:QsWt3XK/3hwvNxZJp92iMQKME1qHfpYmyIjFVsSOY6Y=
++github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs=
++github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U=
++github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew=
++github.com/multiformats/go-multihash v0.0.13 h1:06x+mk/zj1FoMsgNejLpy6QTvJqlSt/BhLEy87zidlc=
++github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
++github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
++github.com/multiformats/go-varint v0.0.5 h1:XVZwSo04Cs3j/jS0uAEPpT3JY6DzMcVLLoWOSnCxOjg=
++github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE=
++github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
++github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
++github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
++github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
++github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
++github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
++github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
++github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 h1:G04eS0JkAIVZfaJLjla9dNxkJCPiKIGZlw9AfOhzOD0=
++github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94/go.mod h1:b18R55ulyQ/h3RaWyloPyER7fWQVZvimKKhnI5OfrJQ=
++github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
++github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
++github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a h1:/eS3yfGjQKG+9kayBkj0ip1BGhq6zJ3eaVksphxAaek=
++github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0=
++github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU=
++github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc=
++github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
++github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
++github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
++github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
++github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
++github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
++github.com/urfave/cli v1.22.9 h1:cv3/KhXGBGjEXLC4bH0sLuJ9BewaAbpk5oyMOveu4pw=
++github.com/urfave/cli v1.22.9/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
++github.com/whyrusleeping/gx v0.14.3 h1:Tn6kM1Rv2Dz6rI2cpWMOeCspdJFaza+cpv8/wIdUNUE=
++github.com/whyrusleeping/gx v0.14.3/go.mod h1:HfCLLEulN7GrYs60Cm6NIvvdohZamn/kjTWQX8uCb2o=
++github.com/whyrusleeping/json-filter v0.0.0-20160615203754-ff25329a9528/go.mod h1:5a88m1gFWhTL3QwRdNm1fiRNrBTME7Ch8f8pZZZes9g=
++github.com/whyrusleeping/progmeter v0.0.0-20180725015555-f3e57218a75b h1:jMJLc+G2DWK2ZX+C+X4Jv7x2ss+XReNGNMpQ+a3fdqo=
++github.com/whyrusleeping/progmeter v0.0.0-20180725015555-f3e57218a75b/go.mod h1:gyCeSVnUb+LQh0QCWbg0Sl30ckl2YgNC+yvSFvy5mFY=
++github.com/whyrusleeping/stump v0.0.0-20160611222256-206f8f13aae1 h1:57Pu2W5KJQ3qRtqKYqOS4GQtkwxGH4ppL4mLWaPnfZU=
++github.com/whyrusleeping/stump v0.0.0-20160611222256-206f8f13aae1/go.mod h1:Qv7QS+Xqv+q5lhOfseae0ZWF0wliLmab2hmikKoLhgE=
++github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c h1:GGsyl0dZ2jJgVT+VvWBf/cNijrHRhkrTjkmp5wg7li0=
++github.com/whyrusleeping/tar-utils v0.0.0-20180509141711-8c6c8ba81d5c/go.mod h1:xxcJeBb7SIUl/Wzkz1eVKJE/CB34YNrqX2TQI6jY9zs=
++golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
++golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
++golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
++golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
++golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
++golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 h1:1wopBVtVdWnn03fZelqdXTqk7U7zPQCb+T4rbU9ZEoU=
++golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
++golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
++golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
++golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
++golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
++golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI=
++golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
++golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
++golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
++gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
++gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
++gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
++gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
++gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
++gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/testing/gx/APKBUILD b/testing/gx/APKBUILD
index 63487fd8c08..4e5ddf238da 100644
--- a/testing/gx/APKBUILD
+++ b/testing/gx/APKBUILD
@@ -2,34 +2,27 @@
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=gx
pkgver=0.14.3
-pkgrel=1
+pkgrel=22
pkgdesc="Packaging tool build around the distributed, content addressed filesystem IPFS"
url="https://github.com/whyrusleeping/gx"
arch="all"
license="MIT"
-options="!check chmod-clean" # Test suite issues
-makedepends="git glide go"
+options="!check net" # Test suite issues
+makedepends="go"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/whyrusleeping/gx/archive/v$pkgver.tar.gz
- glide.yaml
- glide.lock
- "
-builddir="$srcdir/src/github.com/whyrusleeping/$pkgname"
+source="$pkgname-$pkgver.tar.gz::https://github.com/whyrusleeping/gx/archive/v$pkgver.tar.gz"
-prepare() {
- export GOPATH="$srcdir"
-
- mkdir -p $(dirname $builddir)
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
-
- cp "$srcdir"/glide.yaml "$srcdir"/glide.lock .
- glide install --skip-test
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+prepare() {
default_prepare
+ go mod download
}
build() {
- GOPATH="$srcdir" GOBIN="$GOPATH/bin" make
+ make
}
package() {
@@ -37,17 +30,6 @@ package() {
install -Dm 644 -t "$pkgdir/usr/share/licenses/gx" LICENSE
}
-glide_init() {
- abuild clean deps unpack prepare
- cd "$builddir"
- export GOPATH="$startdir"
- rm -f glide.yaml glide.lock
- glide init --non-interactive
- glide update
- cp glide.yaml glide.lock "$startdir"
- cd "$startdir" && abuild checksum clean
-}
-
-sha512sums="14280680254aea69b1295e625788b39404a77defdcdd47399529ee818695965c06c6001de8adb0a44f641e66f9386ca9da3fc2c56a038c4b96a8ddd6252c3d49 gx-0.14.3.tar.gz
-b1ac1cdd2ed760072cab4d63876ad711407bc467bee37ee3740b477f1071a13e0086afef99d15cb9267634ca8496aa92d1a1b399fc99f0479336433c9212810d glide.yaml
-6ddf9614c4244258191f0ba7fe1e41d5f84981795a71edc1f3d117f7ec72f1928d887a2dd9aecdb78c7cdac6c04eedf09e2e0af79f6049c337e122b5c7ac5ee7 glide.lock"
+sha512sums="
+14280680254aea69b1295e625788b39404a77defdcdd47399529ee818695965c06c6001de8adb0a44f641e66f9386ca9da3fc2c56a038c4b96a8ddd6252c3d49 gx-0.14.3.tar.gz
+"
diff --git a/testing/gx/glide.lock b/testing/gx/glide.lock
deleted file mode 100644
index 57726fe30b3..00000000000
--- a/testing/gx/glide.lock
+++ /dev/null
@@ -1,84 +0,0 @@
-hash: c90dd949f9035c5c1ecd184c4eaf04c28fbf02fbc3a30f036a68f15121a29c88
-updated: 2019-03-27T16:14:37.014733407-06:00
-imports:
-- name: github.com/blang/semver
- version: 3c1074078d32d767e08ab2c8564867292da86926
-- name: github.com/btcsuite/btcd
- version: aa6e0f35703c1438cc45860ddc0c3f6e6c633c93
- subpackages:
- - btcec
-- name: github.com/gogo/protobuf
- version: 382325bbbb4d1c850eec1f3ec92a1a16f502d68b
- subpackages:
- - proto
-- name: github.com/gxed/hashland
- version: a72cc0875a1e95edd309d3134bc7c11bf2d7360b
- subpackages:
- - keccakpg
- - murmur3
-- name: github.com/ipfs/go-ipfs-api
- version: 26337195b3df044934572dc3ca9ccb175ce057b2
- subpackages:
- - options
-- name: github.com/ipfs/go-ipfs-files
- version: c68472a9b1ec45177ccf8fda607698c86ae0060f
-- name: github.com/libp2p/go-flow-metrics
- version: 5b4a5750cdd34754b1a417b4c7c7d1c24790b4d4
-- name: github.com/libp2p/go-libp2p-crypto
- version: b0ed0e663e8b6832bad3f4502b2f6551ff2686cd
- subpackages:
- - pb
-- name: github.com/libp2p/go-libp2p-metrics
- version: a64ed6c7351276b3f21cbfa033ceba9bd096c3af
-- name: github.com/libp2p/go-libp2p-peer
- version: 96d6d7940e6fc555240a92d1b4615049cd451da2
-- name: github.com/libp2p/go-libp2p-protocol
- version: 89147e29c7ab3b76c6f8be5b6fcdf3839aec286f
-- name: github.com/minio/blake2b-simd
- version: 3f5f724cb5b182a5c278d6d3d55b40e7f8c2efb4
-- name: github.com/minio/sha256-simd
- version: 05b4dd3047e5d6e86cb4e0477164b850cd896261
-- name: github.com/mitchellh/go-homedir
- version: af06845cf3004701891bf4fdb884bfe4920b3727
-- name: github.com/mr-tron/base58
- version: 6598572f05537592acb5a609ff53c4c7fbba7a3e
- subpackages:
- - base58
-- name: github.com/multiformats/go-multiaddr
- version: ce21123d5172669bbf37a166078bc5f9d345ec2f
-- name: github.com/multiformats/go-multiaddr-dns
- version: 7d0de25ce05c9294aa44f320c03c7e85e11bbb0b
-- name: github.com/multiformats/go-multiaddr-net
- version: bd61b0499a3cfc893a8eb109c5669342b1671881
-- name: github.com/multiformats/go-multihash
- version: 2ca70e715b6950a9382097b770a3f44fd570d388
-- name: github.com/sabhiram/go-gitignore
- version: d3107576ba9425fc1c85f4b3569c4631b805a02e
-- name: github.com/urfave/cli
- version: 693af58b4d51b8fcc7f9d89576da170765980581
-- name: github.com/whyrusleeping/gx
- version: ca314b1e9e6be0432e50a30737c0e0720e67dd0f
- subpackages:
- - gxutil
-- name: github.com/whyrusleeping/json-filter
- version: ff25329a9528f01c5175414f16cc0a6a162a5b8b
-- name: github.com/whyrusleeping/progmeter
- version: f3e57218a75b913eff88d49a52c1debf9684ea04
-- name: github.com/whyrusleeping/stump
- version: 206f8f13aae1697a6fc1f4a55799faf955971fc5
-- name: github.com/whyrusleeping/tar-utils
- version: 8c6c8ba81d5c71fd69c0f48dbde4b2fb422b6dfc
-- name: golang.org/x/crypto
- version: a5d413f7728c81fb97d96a2b722368945f651e78
- subpackages:
- - blake2s
- - ed25519
- - ed25519/internal/edwards25519
- - sha3
-- name: golang.org/x/sys
- version: f49334f85ddcf0f08d7fb6dd7363e9e6d6b777eb
- subpackages:
- - cpu
- - unix
- - windows
-testImports: []
diff --git a/testing/gx/glide.yaml b/testing/gx/glide.yaml
deleted file mode 100644
index dea832a0ea8..00000000000
--- a/testing/gx/glide.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-package: src/github.com/whyrusleeping/gx
-import:
-- package: github.com/blang/semver
-- package: github.com/ipfs/go-ipfs-api
-- package: github.com/mitchellh/go-homedir
-- package: github.com/multiformats/go-multiaddr
-- package: github.com/multiformats/go-multiaddr-net
-- package: github.com/multiformats/go-multihash
-- package: github.com/sabhiram/go-gitignore
-- package: github.com/urfave/cli
-- package: github.com/whyrusleeping/gx
- subpackages:
- - gxutil
-- package: github.com/whyrusleeping/json-filter
-- package: github.com/whyrusleeping/progmeter
-- package: github.com/whyrusleeping/stump
diff --git a/testing/gyp/APKBUILD b/testing/gyp/APKBUILD
deleted file mode 100644
index 6241fc9cdfb..00000000000
--- a/testing/gyp/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=gyp
-pkgver=20190716
-_commit=fcd686f1880fa52a1ee78d3e98af1b88cb334528
-pkgrel=1
-pkgdesc="Generate Your Projects Meta-Build system"
-options="!check" # Tests currently fail
-url="https://gyp.gsrc.io"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-setuptools ninja"
-source="https://github.com/chromium/gyp/archive/$_commit.tar.gz"
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --root="$pkgdir"
-}
-
-cleanup_srcdir() {
- [ -d src ] && chmod -R +w src
- default_cleanup_srcdir
-}
-
-sha512sums="df0f97d44d37f2055885ecfe9b72db407cc537bb3c309537fa9a206807fd2e25ea3bda8a900fb81dbd12489eb5e806f2aead5e37c32e8c6d7c531735e3439069 fcd686f1880fa52a1ee78d3e98af1b88cb334528.tar.gz"
diff --git a/testing/h1-cli/APKBUILD b/testing/h1-cli/APKBUILD
deleted file mode 100644
index 91f862f89d9..00000000000
--- a/testing/h1-cli/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Adam Dobrawy <a.dobrawy@hyperone.com>
-# Maintainer: Adam Dobrawy <a.dobrawy@hyperone.com>
-# Maintainer: HyperOne staff <pkg-maintainers@hyperone.com>
-pkgname=h1-cli
-_pkgname=${pkgname/-cli/}
-pkgver=1.8.1
-pkgrel=0
-pkgdesc="Command-line interface for HyperOne platform"
-url="https://www.hyperone.com/tools/cli/"
-arch="x86_64"
-license="MIT"
-depends="openssh-client"
-makedepends="nodejs npm"
-subpackages="rbx-cli:rbx"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hyperonecom/$pkgname/archive/v$pkgver.tar.gz"
-options="!strip !check"
-
-build() {
- npm install
- npx pkg -c ./package.json -t "node12-alpine" -o "./dist/h1" "./bin/h1"
- npx pkg -c ./package.json -t "node12-alpine" -o "./dist/rbx" "./bin/rbx"
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin
- cp "$builddir/dist/$_pkgname" "$pkgdir"/usr/bin/$_pkgname
-}
-
-rbx() {
- pkgdesc="Command-line interface for Rootbox platform"
- url="http://rootbox.com/"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/bin
- cp "$builddir/dist/rbx" "$subpkgdir"/usr/bin/rbx
-}
-
-sha512sums="f5ce8f53e542e08de9edbaf71229580a86945fd68cbc62e49031e130db53bc664646b2c3384c317cee113972c665f79a3566943ac6b1b96e138c099b897a2500 h1-cli-1.8.1.tar.gz"
diff --git a/testing/h26forge/APKBUILD b/testing/h26forge/APKBUILD
new file mode 100644
index 00000000000..02773f2f8a1
--- /dev/null
+++ b/testing/h26forge/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Adam Jensen <adam@acj.sh>
+# Maintainer: Adam Jensen <adam@acj.sh>
+pkgname=h26forge
+pkgver=0.1.0_git20231031
+# Project does not have semver-style releases yet
+_release_tag=latest-8dde7ec
+pkgrel=0
+pkgdesc="Analyze, generate, and manipulate syntactically correct but semantically spec-non-compliant video files"
+url="https://github.com/h26forge/h26forge"
+arch="x86_64 aarch64" # dependency crates fail to build on other arches
+license="MIT"
+makedepends="cargo cargo-auditable clang-dev"
+source="$pkgname-$_release_tag.tar.gz::https://github.com/h26forge/h26forge/archive/refs/tags/$_release_tag.tar.gz"
+builddir="$srcdir/$pkgname-$_release_tag"
+
+build() {
+ cargo auditable build --release
+}
+
+check() {
+ cargo test --release
+}
+
+package() {
+ install -Dm755 target/release/"$pkgname" -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+f5a3d9b84449388f705f399fd7a7ebba75b3f30b4ca6c0b54ca740e2dceb3583e75a77c8a5e98c6a4e49792e179900a19d5499aefd9324edae5d557aa157466e h26forge-latest-8dde7ec.tar.gz
+"
diff --git a/testing/h4h5tools/APKBUILD b/testing/h4h5tools/APKBUILD
new file mode 100644
index 00000000000..5caf23cee8b
--- /dev/null
+++ b/testing/h4h5tools/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=h4h5tools
+pkgver=2.2.5
+pkgrel=2
+pkgdesc="Conversion utilities between hdf4 and hdf5"
+url="https://support.hdfgroup.org/products/hdf5_tools/h4toh5/"
+arch="all !riscv64" # limited by hdf4
+license="custom"
+depends_dev="hdf4-dev hdf5-dev zlib-dev portablexdr-dev jpeg-dev"
+makedepends="$depends_dev"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+source="https://support.hdfgroup.org/ftp/HDF5/releases/h4toh5/h4toh5-$pkgver/src/h4h5tools-$pkgver.tar.gz
+ h4h5tools-format-security-fix.patch
+ "
+options="!check" # Upstream tests appear broken
+
+build() {
+ export LIBS="$LIBS -ldf -lmfhdf -lz -lportablexdr -ljpeg"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/"$pkgname"/COPYING
+}
+
+sha512sums="
+1749c5d4383695296fcc79dc900c2d04be267f01cfb006be8fd0f4baf0e6d51a04d788c76881fedba3d06ad2bf440a0dbceeb98d8b02b5ceade520900a726d40 h4h5tools-2.2.5.tar.gz
+4ca99d14733299892e4c6f8815b761078dad2bbccae34fcff6747ebb230580ecddcf93e5d342cd454d579e37073f1f3437e3ac5a769064119484e90db2b93b80 h4h5tools-format-security-fix.patch
+"
diff --git a/testing/h4h5tools/h4h5tools-format-security-fix.patch b/testing/h4h5tools/h4h5tools-format-security-fix.patch
new file mode 100644
index 00000000000..632a54e9da5
--- /dev/null
+++ b/testing/h4h5tools/h4h5tools-format-security-fix.patch
@@ -0,0 +1,46 @@
+From 42386fc3b0a4ef66baeeaba9e028e6d757a1548f Mon Sep 17 00:00:00 2001
+From: Angel de Vicente <angel.de.vicente@iac.es>
+Date: Sat, 9 Oct 2021 00:56:40 +0100
+Subject: [PATCH] fixed compiling error
+
+---
+ utils/h5toh4/h5toh4.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/utils/h5toh4/h5toh4.c b/utils/h5toh4/h5toh4.c
+index edb5300..dbc0fcf 100644
+--- a/utils/h5toh4/h5toh4.c
++++ b/utils/h5toh4/h5toh4.c
+@@ -302,7 +302,7 @@ main(int argc, char *argv[])
+ {
+ (void) fprintf(stderr, err1, argc);
+ PrintOptions_h5toh4();
+- (void) fprintf(stderr, err4);
++ (void) fprintf(stderr, "%s", err4);
+ return EXIT_FAILURE;
+ }
+
+@@ -317,7 +317,7 @@ main(int argc, char *argv[])
+ if ((token = gtoken(argv[i])) == TOK_ERR)
+ {
+ PrintOptions_h5toh4();
+- (void) fprintf(stderr, err4);
++ (void) fprintf(stderr, "%s", err4);
+ return EXIT_FAILURE;
+ }
+
+@@ -359,9 +359,9 @@ main(int argc, char *argv[])
+
+ case TOK_ERR: /* command syntax error */
+ default:
+- (void) fprintf(stderr, err2);
++ (void) fprintf(stderr, "%s", err2);
+ PrintOptions_h5toh4();
+- (void) fprintf(stderr, err4);
++ (void) fprintf(stderr, "%s", err4);
+ return EXIT_FAILURE;
+ }
+ }
+--
+2.33.0
+
diff --git a/testing/habitctl/APKBUILD b/testing/habitctl/APKBUILD
new file mode 100644
index 00000000000..542d217f646
--- /dev/null
+++ b/testing/habitctl/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=habitctl
+pkgver=0.1.0
+pkgrel=2
+pkgdesc="Minimalist command line tool to track and examine habits"
+url="https://github.com/blinry/habitctl"
+arch="aarch64 armhf armv7 ppc64le x86 x86_64" # limited by rust/cargo
+license="GPL-2.0-or-later"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/blinry/$pkgname/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests provided
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+7fddd078804d863f2bedc442db558b49d506381438ed2af7ca1197799d6135fd4e3ae3d9afc1203b48f78c6e2bc89a628fa6894352f5730e46d7ca84880eefa7 habitctl-0.1.0.tar.gz
+"
diff --git a/testing/halp/APKBUILD b/testing/halp/APKBUILD
new file mode 100644
index 00000000000..25a942a1feb
--- /dev/null
+++ b/testing/halp/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=halp
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="A CLI tool to get help with CLI tools"
+url="https://github.com/orhun/halp"
+# s390x, ppc64le, riscv64: blocked by ring crate
+arch="all !s390x !ppc64le !riscv64"
+license="MIT OR Apache-2.0"
+makedepends="cargo cargo-auditable"
+checkdepends="util-linux"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/orhun/halp/archive/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+ mkdir -p man
+ OUT_DIR=man/ "./target/release/$pkgname-mangen"
+ mkdir -p completions
+ OUT_DIR=completions/ "./target/release/$pkgname-completions"
+}
+
+check() {
+ OUT_DIR=target cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 "man/$pkgname.1" -t "$pkgdir/usr/share/man/man1"
+ install -Dm 644 "completions/$pkgname.bash" "$pkgdir/usr/share/bash-completion/completions/$pkgname"
+ install -Dm 644 "completions/$pkgname.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d"
+ install -Dm 644 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions"
+}
+
+sha512sums="
+6f30e87464c85c6c1d25d9a8e45fba0b245acdb2deab076d8f5306ee8b396fd9b55725277ed889ff3a8574acd9b3c82d19c7ac61469d5eac84a91e3b477090bf halp-0.1.7.tar.gz
+"
diff --git a/testing/hamlib/APKBUILD b/testing/hamlib/APKBUILD
deleted file mode 100644
index f50a5d16ff2..00000000000
--- a/testing/hamlib/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Contributor: Bradford D. Boyle <bradford.d.boyle@gmail.com>
-# Maintainer: Bradford D. Boyle <bradford.d.boyle@gmail.com>
-pkgname=hamlib
-pkgver=3.3
-pkgrel=2
-pkgdesc="Library to control radio transceivers and receivers"
-url="http://www.hamlib.org/"
-arch="all"
-license="LGPL-2.0-or-later"
-makedepends="linux-headers perl-dev swig tcl-dev chrpath libusb-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-perl $pkgname-tcl"
-source="https://downloads.sourceforge.net/project/hamlib/hamlib/$pkgver/hamlib-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --prefix=/usr \
- --sbindir=/usr/bin \
- --with-perl-binding \
- --without-python-binding \
- --with-tcl-binding
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
- rm -f "$pkgdir"/usr/lib/tcl8.6/Hamlib/hamlibtcl.a
-}
-
-perl() {
- pkgdesc="Perl bindings for $pkgname"
- depends="perl"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/perl5 "$subpkgdir"/usr/lib/
-
- # fix perl module location
- cd "$subpkgdir"/usr/lib/perl5/site_perl/
- mkdir current
- mv auto current
- mv Hamlib.pm current
- rm perltest.pl
-
- chrpath --delete "$subpkgdir"/usr/lib/perl5/site_perl/current/auto/Hamlib/Hamlib.so
-}
-
-tcl() {
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/tcl8.6 "$subpkgdir"/usr/lib/
-}
-
-sha512sums="4cf6c94d0238c8a13aed09413b3f4a027c8ded07f8840cdb2b9d38b39b6395a4a88a8105257015345f6de0658ab8c60292d11a9de3e16a493e153637af630a80 hamlib-3.3.tar.gz"
diff --git a/testing/hamster-time-tracker/APKBUILD b/testing/hamster-time-tracker/APKBUILD
new file mode 100644
index 00000000000..0637d26f21f
--- /dev/null
+++ b/testing/hamster-time-tracker/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: Hakan Erduman <hakan@erduman.de>
+# Maintainer: Hakan Erduman <hakan@erduman.de>
+pkgname=hamster-time-tracker
+pkgver=3.0.3
+pkgrel=2
+pkgdesc="time tracking for individuals"
+url="https://github.com/projecthamster/hamster"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="
+ intltool
+ itstool
+ "
+checkdepends="
+ dbus-x11
+ xvfb-run
+ "
+depends_doc="
+ yelp
+ "
+depends="
+ gsettings-desktop-schemas
+ gtk+3.0
+ py3-cairo
+ py3-dbus
+ py3-gobject3
+ py3-xdg
+ python3
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/projecthamster/hamster/archive/refs/tags/v$pkgver.tar.gz
+ no-version-check.patch
+ "
+builddir="$srcdir/hamster-$pkgver"
+subpackages="
+ $pkgname-pyc
+ $pkgname-lang
+ $pkgname-doc
+ $pkgname-bash-completion
+ "
+
+build() {
+ python3 ./waf configure --skip-gsettings --skip-icon-cache-update
+ python3 ./waf build
+}
+
+package() {
+ python3 ./waf install --destdir="$pkgdir"
+ install -Dm644 -t "$pkgdir"/usr/share/glib-2.0/schemas ./data/org.gnome.hamster.gschema.xml
+}
+
+check() {
+ export XDG_RUNTIME_DIR="$builddir"
+ export GSETTINGS_SCHEMA_DIR="$builddir/schemas"
+ install -Dm644 -t "$builddir/schemas" ./data/org.gnome.hamster.gschema.xml
+ glib-compile-schemas "$builddir/schemas"
+ dbus-run-session xvfb-run python3 -m unittest
+}
+
+sha512sums="
+50f15ed22d87bce2dc8fd36f14826916d156eebe4ce0f9166541246d53a97e63b6875bfbcd83de1cda362035f23084a0ef2291f5c04364cd9acb0d7484ae05ff hamster-time-tracker-3.0.3.tar.gz
+9a1e1b6fee41f38b6635d44521b1ad2723d834dd3f222ab3701b84c78906963f3d862190b5317a9fb6985715c17afbba0f1992661d29a501924c0744d71892e7 no-version-check.patch
+"
diff --git a/testing/hamster-time-tracker/no-version-check.patch b/testing/hamster-time-tracker/no-version-check.patch
new file mode 100644
index 00000000000..6622993254c
--- /dev/null
+++ b/testing/hamster-time-tracker/no-version-check.patch
@@ -0,0 +1,24 @@
+our py3-dbus is way newer, and their check depends on the removed distutils
+
+
+diff --git a/src/hamster/client.py b/src/hamster/client.py
+index 8a0c297..ab3d3ba 100644
+--- a/src/hamster/client.py
++++ b/src/hamster/client.py
+@@ -27,3 +27,2 @@ import sys
+ from calendar import timegm
+-from distutils.version import LooseVersion
+ from gi.repository import GObject as gobject
+@@ -44,12 +43,2 @@ from hamster.lib import datetime as dt
+
+-# bug fixed in dbus-python 1.2.14 (released on 2019-11-25)
+-assert not (
+- sys.version_info >= (3, 8)
+- and LooseVersion(dbus.__version__) < LooseVersion("1.2.14")
+- ), """python3.8 changed str(<dbus integers>).
+- That broke hamster (https://github.com/projecthamster/hamster/issues/477).
+- Please upgrade to dbus-python >= 1.2.14.
+- """
+-
+-
+ class Storage(gobject.GObject):
diff --git a/testing/handbrake/APKBUILD b/testing/handbrake/APKBUILD
deleted file mode 100644
index 6aed83865ac..00000000000
--- a/testing/handbrake/APKBUILD
+++ /dev/null
@@ -1,97 +0,0 @@
-# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>
-pkgname=handbrake
-_pkgname=HandBrake
-pkgver=1.3.2
-pkgrel=1
-pkgdesc="Handbrake video transcoder"
-url="https://handbrake.fr"
-arch="x86_64 x86 armhf armv7 ppc64le"
-license="GPL-2.0-only"
-makedepends="
- autoconf
- automake
- cmake
- coreutils
- dav1d-dev
- dbus-glib-dev
- fdk-aac-dev
- ffmpeg-dev
- fontconfig-dev
- freetype-dev
- fribidi-dev
- glib-dev
- gst-plugins-base-dev
- gtk+3.0-dev
- intltool
- jansson-dev
- lame-dev
- libass-dev
- libbluray-dev
- libbz2
- libdvdnav-dev
- libdvdread-dev
- libgudev-dev
- libnotify-dev
- libogg-dev
- libtheora-dev
- libtool
- libvorbis-dev
- libvpx-dev
- linux-headers
- meson
- nasm
- opus-dev
- python3
- speex-dev
- tinyxml-dev
- x264-dev
- xz-dev
- yasm
- zlib-dev
- "
-subpackages="$pkgname-lang $pkgname-gtk"
-source="https://github.com/HandBrake/HandBrake/releases/download/$pkgver/HandBrake-$pkgver-source.tar.bz2
- handbrake-9999-remove-dvdnav-dup.patch
- handbrake-9999-remove-faac-dependency.patch
- "
-options="!check"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
- # build against external libs
- sed -i 's:.*contrib/.*::g' \
- make/include/main.defs
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --force \
- --verbose \
- --disable-nvenc \
- --disable-numa \
- --disable-x265 \
- --disable-gtk-update-checks
-
- cd build
- make
-}
-
-package() {
- cd "$builddir"/build
- make -j1 install DESTDIR="$pkgdir"
-}
-
-gtk() {
- pkgdesc="HandBrake Video Transcoder - GUI"
- install -d "$subpkgdir"/usr/bin
-
- mv "$pkgdir"/usr/bin/ghb "$subpkgdir"/usr/bin/ghb
- mv "$pkgdir"/usr/share "$subpkgdir"/usr
-
-}
-
-sha512sums="857f358a8754b08e55acfddb1431d99cc1035cf52174ab1d5243524fffe60e6cbc7d2a5d5912d55e6dc6b8ec621d503ebd21614a9064706a95c920e72a760f6a HandBrake-1.3.2-source.tar.bz2
-a3d57dd37d518286a62554cfcc4722d6fd588a0c3966d30785100edc4476febb2b48fc4f9b2a7eb5b5dc049043fabd4398e1e190e10cbd63c25b2936824977d3 handbrake-9999-remove-dvdnav-dup.patch
-9d070e50a9b7d4b8ac25b7d56bd341aca6dc979ba506c84f4b95109909f70020723915cd120bed24e84a8fc242ee3c3a5775f43a78b7995e53cd499444c9f6dc handbrake-9999-remove-faac-dependency.patch"
diff --git a/testing/handbrake/handbrake-9999-remove-dvdnav-dup.patch b/testing/handbrake/handbrake-9999-remove-dvdnav-dup.patch
deleted file mode 100644
index 8f4ddbb3bb7..00000000000
--- a/testing/handbrake/handbrake-9999-remove-dvdnav-dup.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- ./libhb/dvdnav.c 2013-05-05 16:14:10.265388521 +0200
-+++ ./libhb/dvdnav.c.2 2013-05-05 16:14:18.325388471 +0200
-@@ -1225,16 +1225,7 @@
- {
- for (kk = 0; kk < buttons; kk++)
- {
-- dvdnav_t *dvdnav_copy;
--
-- result = dvdnav_dup( &dvdnav_copy, d->dvdnav );
-- if (result != DVDNAV_STATUS_OK)
-- {
-- hb_log("dvdnav dup failed: %s", dvdnav_err_to_string(d->dvdnav));
-- goto done;
-- }
-- title = try_button( dvdnav_copy, kk, list_title );
-- dvdnav_free_dup( dvdnav_copy );
-+ title = try_button( d->dvdnav, kk, list_title );
-
- if ( title >= 0 )
- {
diff --git a/testing/handbrake/handbrake-9999-remove-faac-dependency.patch b/testing/handbrake/handbrake-9999-remove-faac-dependency.patch
deleted file mode 100644
index 7e8ab99730a..00000000000
--- a/testing/handbrake/handbrake-9999-remove-faac-dependency.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- a/libhb/common.c
-+++ b/libhb/common.c
-@@ -243,7 +243,6 @@
- {
- // legacy encoders, back to HB 0.9.4 whenever possible (disabled)
- { { "", "dts", NULL, HB_ACODEC_DCA_PASS, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_DTS_PASS, },
-- { { "AAC (faac)", "faac", NULL, 0, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AAC, },
- { { "AAC (ffmpeg)", "ffaac", NULL, HB_ACODEC_FFAAC, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AAC, },
- { { "AC3 (ffmpeg)", "ffac3", NULL, HB_ACODEC_AC3, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AC3, },
- { { "MP3 (lame)", "lame", NULL, HB_ACODEC_LAME, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_MP3, },
---- a/scripts/manicure.rb
-+++ b/scripts/manicure.rb
-@@ -349,7 +349,7 @@
- audioEncoders << "copy:dtshd"
- when /AAC Pass/
- audioEncoders << "copy:aac"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoders << "av_aac"
- when "AAC (FDK)"
- audioEncoders << "fdk_aac"
-@@ -466,7 +466,7 @@
- case hash["AudioEncoderFallback"]
- when /AC3/
- audioEncoderFallback << "ac3"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoderFallback << "av_aac"
- when "AAC (FDK)"
- audioEncoderFallback << "fdk_aac"
-@@ -753,7 +753,7 @@
- audioEncoders << "copy:dtshd"
- when /AAC Pass/
- audioEncoders << "copy:aac"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoders << "av_aac"
- when "AAC (FDK)"
- audioEncoders << "fdk_aac"
-@@ -870,7 +870,7 @@
- case hash["AudioEncoderFallback"]
- when /AC3/
- audioEncoderFallback << "ac3"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoderFallback << "av_aac"
- when "AAC (FDK)"
- audioEncoderFallback << "fdk_aac"
-@@ -1163,7 +1163,7 @@
- audioEncoders << "copy:dtshd"
- when /AAC Pass/
- audioEncoders << "copy:aac"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoders << "av_aac"
- when "AAC (FDK)"
- audioEncoders << "fdk_aac"
-@@ -1298,7 +1298,7 @@
- case hash["AudioEncoderFallback"]
- when /AC3/
- audioEncoderFallback << "ac3"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoderFallback << "av_aac"
- when "AAC (FDK)"
- audioEncoderFallback << "fdk_aac"
-@@ -1615,7 +1615,7 @@
- audioEncoders << "copy:dtshd"
- when /AAC Pass/
- audioEncoders << "copy:aac"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoders << "av_aac"
- when "AAC (FDK)"
- audioEncoders << "fdk_aac"
-@@ -1732,7 +1732,7 @@
- case hash["AudioEncoderFallback"]
- when /AC3/
- audioEncoderFallback << "ac3"
-- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
-+ when "AAC (ffmpeg)", "AAC (avcodec)"
- audioEncoderFallback << "av_aac"
- when "AAC (FDK)"
- audioEncoderFallback << "fdk_aac"
diff --git a/testing/handlebars/APKBUILD b/testing/handlebars/APKBUILD
index 11c1edb9dd4..f0da360e978 100644
--- a/testing/handlebars/APKBUILD
+++ b/testing/handlebars/APKBUILD
@@ -2,23 +2,33 @@
# Maintainer: Rafael del Valle <rvalle@privaz.io>
pkgname=handlebars
_pkgname=handlebars.c
-pkgver=0.7.2
-pkgrel=0
-_mustachespec_ver="1.1.3"
-_handlebarsspec_ver="4.0.5-p1"
+pkgver=1.0.0
+pkgrel=1
+_mustachespec_ver="83b0721610a4e11832e83df19c73ace3289972b9"
+_handlebarsspec_ver="3eb919f19988f37a539779c08342d2ce50aa75d0"
pkgdesc="C implementation of handlebars.js"
url="https://github.com/jbboehr/handlebars.c"
license="LGPL-2.1-or-later"
-arch="all !armv7 !mips !mips64"
-makedepends="autoconf automake bison check-dev flex json-c-dev libtool lmdb-dev
- pcre-dev talloc-dev yaml-dev"
+arch="all !armv7"
+makedepends="
+ autoconf
+ automake
+ bison
+ check-dev
+ flex
+ json-c-dev
+ libtool
+ pcre-dev
+ talloc-dev
+ yaml-dev
+ "
subpackages="$pkgname-dev $pkgname-utils"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/jbboehr/$_pkgname/archive/v$pkgver.tar.gz
- mustache-spec-$_mustachespec_ver.tar.gz::https://github.com/mustache/spec/archive/v$_mustachespec_ver.tar.gz
- handlebars-spec-$_handlebarsspec_ver.tar.gz::https://github.com/jbboehr/handlebars-spec/archive/v$_handlebarsspec_ver.tar.gz
- test_lmdb_cache.patch
+source="$_pkgname-$pkgver.tar.gz::https://github.com/jbboehr/handlebars.c/archive/v$pkgver.tar.gz
+ mustache-spec-$_mustachespec_ver.tar.gz::https://github.com/mustache/spec/archive/$_mustachespec_ver.tar.gz
+ handlebars-spec-$_handlebarsspec_ver.tar.gz::https://github.com/jbboehr/handlebars-spec/archive/$_handlebarsspec_ver.tar.gz
"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # bunch of off-by-one talloc failures
prepare() {
mkdir -p spec
@@ -49,11 +59,11 @@ package() {
utils() {
pkgdesc="Handlebars command line utilities"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
-sha512sums="d07dabc399377634cc817a9825a57e777777b7f9599afdbfd26ecf2b9cf1538833947fb037129c9542e0c3fc6c8959509b516187d30add8557a34e2e35b09f6d handlebars.c-0.7.2.tar.gz
-801a9cbf8a39080b183b20fbf327b420bcd6ed162bb58165dabafeb45fae277a9da506b6639ee7b955f6c206f0b8826d39588a43ffd86ab5ef4be6e9be2bc842 mustache-spec-1.1.3.tar.gz
-81f0ff5ffc2d6b72465bdcbd2325d022faf73ec79586f3d8dfb07b7a6ec9147280872a82184b8d7ecdd8b22611b6b420c02ab437794bcd0aba67d2bf2082bc5d handlebars-spec-4.0.5-p1.tar.gz
-6cdfae1356019c06ce993cba9c5091713e51f22b21f3572aaa2b2d4b1b18cf68f120f1fcb93822a118352e2885bd4c20635ea22aedb31a438e43dc40a6be581a test_lmdb_cache.patch"
+sha512sums="
+37f39db59253a9b8283441cfdec1b3bf5b2a7590c9d55b28679d7115e68ea1dae25b8008e3f443f3a5aa811e3c179ea76f6e70de28849099093f2867a133013d handlebars.c-1.0.0.tar.gz
+edc5cfeba455b932ea2732a19a7016ad84b9fb8bb8d7b0ee71c79f155c298620cce06e548d3c7adc297a69b7a2c85be2519ea4073d05c3519930d3bae0b022ba mustache-spec-83b0721610a4e11832e83df19c73ace3289972b9.tar.gz
+b8adb3ce8b6be1cc1e130fa3728d4f20b5a77e9773ccae9d91e2c161dad5356a23e2b531b56fe1da22846e93d2a94ebc32c70c144c9a2680914104bb4d8163fb handlebars-spec-3eb919f19988f37a539779c08342d2ce50aa75d0.tar.gz
+"
diff --git a/testing/handlebars/test_lmdb_cache.patch b/testing/handlebars/test_lmdb_cache.patch
deleted file mode 100644
index dfc73681d54..00000000000
--- a/testing/handlebars/test_lmdb_cache.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-reported upstream: https://github.com/jbboehr/handlebars.c/issues/71
-
-diff --git a/tests/test_cache.c b/tests/test_cache.c
-index bc010fd..45be590 100644
---- a/tests/test_cache.c
-+++ b/tests/test_cache.c
-@@ -275,7 +275,7 @@ Suite * parser_suite(void)
- REGISTER_TEST_FIXTURE(s, test_simple_cache_reset, "Simple Cache (Reset)");
- #ifdef HAVE_LIBLMDB
- REGISTER_TEST_FIXTURE(s, test_lmdb_cache_gc, "LMDB Cache (GC)");
-- REGISTER_TEST_FIXTURE(s, test_lmdb_cache_reset, "LMDB Cache (Reset)");
-+// REGISTER_TEST_FIXTURE(s, test_lmdb_cache_reset, "LMDB Cache (Reset)");
- #else
- REGISTER_TEST_FIXTURE(s, test_lmdb_cache_error, "LMDB Cache (Error)");
- #endif
diff --git a/testing/hangover-wine/APKBUILD b/testing/hangover-wine/APKBUILD
new file mode 100644
index 00000000000..1eac62e23a1
--- /dev/null
+++ b/testing/hangover-wine/APKBUILD
@@ -0,0 +1,133 @@
+# Maintainer: André Zwing <nerv@dawncrow.de>
+pkgname=hangover-wine
+pkgver=9.5
+pkgrel=0
+pkgdesc="Hangover runs simple Win32 applications on arm64 Linux"
+url="https://github.com/AndreRH/hangover/"
+# Wine already exist for x86_64 and x86, and Hangover is more advantageous on aarch64
+arch="aarch64"
+license="LGPL-2.0-or-later"
+depends="
+ libxi
+ libxrandr
+ "
+depends_dev="$pkgname perl"
+makedepends="
+ alsa-lib-dev
+ autoconf
+ automake
+ bison
+ clang17
+ cups-dev
+ dbus-dev
+ flex-dev
+ fontconfig-dev
+ freetype-dev
+ gnutls-dev
+ gstreamer-dev
+ gst-plugins-base-dev
+ krb5-dev
+ libgphoto2-dev
+ libpcap-dev
+ libusb-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxi-dev
+ libxinerama-dev
+ libxkbcommon-dev
+ libxrandr-dev
+ libxrender-dev
+ lld
+ llvm17
+ mesa-dev
+ ncurses-dev
+ opencl-dev
+ pcsc-lite-dev
+ pulseaudio-dev
+ sane-dev
+ sdl2-dev
+ udisks2-dev
+ v4l-utils-dev
+ vulkan-loader-dev
+ wayland-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+checkdepends="xvfb-run"
+source="hangover-$pkgver.tar.gz::https://github.com/AndreRH/wine/archive/refs/tags/hangover-$pkgver.tar.gz
+ rpath.patch
+ "
+builddir="$srcdir/wine-hangover-$pkgver"
+options="textrels !check" # As of 2.0.3 most of the tests fails
+# ignore tracing something in a weird rpath just to silence a warning
+# no effect
+somask="ntdll.so win32u.so"
+
+prepare() {
+ default_prepare
+ # fix opencl header detection
+ sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure*
+}
+
+build() {
+ export CFLAGS="$CFLAGS -O2 -Wno-error=format-security"
+ export CXXFLAGS="$CXXFLAGS -O2 -Wno-error=format-security"
+ export CPPFLAGS="$CPPFLAGS -O2 -Wno-error=format-security"
+
+ # invalid to the msys linker
+ export LDFLAGS="${LDFLAGS/,-Wl,-z,pack-relative-relocs}"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-dbus \
+ --with-mingw \
+ --with-x \
+ --with-vulkan \
+ --disable-box64cpu \
+ --enable-archs=aarch64,i386 \
+ "$(want_check || echo --disable-tests)"
+ make
+}
+
+check() {
+ xvfb-run make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dm755 tools/wineapploader \
+ "$pkgdir"/usr/bin/wineapploader
+
+ local file
+ for file in msiexec notepad regedit regsvr32 wineboot \
+ winecfg wineconsole winefile winemine winepath; do
+ rm -v "$pkgdir"/usr/bin/$file
+ ln -sfv /usr/bin/wineapploader "$pkgdir"/usr/bin/$file
+ done
+
+ llvm-strip --strip-unneeded "$pkgdir"/usr/lib/wine/*-windows/*.dll
+}
+
+dev() {
+ default_dev
+
+ local file
+ for file in widl wmc wrc winebuild winedump function_grep.pl \
+ winedbg winemaker winegcc winecpp wineg++; do
+ amove usr/bin/$file
+ done
+}
+
+doc() {
+ default_doc
+ rm -fr "$subpkgdir"/usr/share/man/*.UTF-8
+}
+sha512sums="
+4cef469a84d2fbf12ac85c3b4d7f7f531ebc48d7e07a5a9b5ce909582e37d34545c6ae969982da7188691443194d64077ec34159466cdee59c702aabf1d86f34 hangover-9.5.tar.gz
+9881abfd0e7e4589cd5724291f9ec06ccb9d88b842c69abb5ea7865b6c27c778a060e60a9776c3620a030555cf61b8cceded55db9f04d5e45d9c627306763bff rpath.patch
+"
diff --git a/testing/hangover-wine/rpath.patch b/testing/hangover-wine/rpath.patch
new file mode 100644
index 00000000000..b694468a27f
--- /dev/null
+++ b/testing/hangover-wine/rpath.patch
@@ -0,0 +1,57 @@
+diff --git a/configure b/configure
+index 296c3e4..e838871 100755
+--- a/configure
++++ b/configure
+@@ -10306,6 +10306,38 @@ then :
+ fi
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ as_ac_var=`printf "%s\n" "ac_cv_cflags_-Wl,-rpath,\\\\\\$ORIGIN" | $as_tr_sh`
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-rpath,\\\$ORIGIN" >&5
++printf %s "checking whether the compiler supports -Wl,-rpath,\\\$ORIGIN... " >&6; }
++if eval test \${$as_ac_var+y}
++then :
++ printf %s "(cached) " >&6
++else $as_nop
++ ac_wine_try_cflags_saved=$CFLAGS
++CFLAGS="$CFLAGS -Wl,-rpath,\\\$ORIGIN"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++int main(int argc, char **argv) { return 0; }
++_ACEOF
++if ac_fn_c_try_link "$LINENO"
++then :
++ eval "$as_ac_var=yes"
++else $as_nop
++ eval "$as_ac_var=no"
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam \
++ conftest$ac_exeext conftest.$ac_ext
++CFLAGS=$ac_wine_try_cflags_saved
++fi
++eval ac_res=\$$as_ac_var
++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf "%s\n" "$ac_res" >&6; }
++if eval test \"x\$"$as_ac_var"\" = x"yes"
++then :
++ UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"
++fi
+ ;;
+ esac
+
+diff --git a/configure.ac b/configure.ac
+index 140f26a..02497c9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -784,6 +784,9 @@ case $host_os in
+ [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"])
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"])
+ ;;
+ esac
+
diff --git a/testing/hardened-malloc/APKBUILD b/testing/hardened-malloc/APKBUILD
new file mode 100644
index 00000000000..b35cbccd9d5
--- /dev/null
+++ b/testing/hardened-malloc/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor:
+# Maintainer: Julien Voisin <julien.voisin@dustri.org>
+pkgname=hardened-malloc
+pkgver=12
+pkgrel=1
+pkgdesc="Hardened allocator designed for modern systems."
+url="https://github.com/GrapheneOS/hardened_malloc"
+arch="x86_64 aarch64"
+license="MIT"
+checkdepends="python3"
+source="$pkgname-$pkgver.tar.gz::https://github.com/GrapheneOS/hardened_malloc/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/${pkgname/-/_}-$pkgver"
+
+build() {
+ make VARIANT=light
+ make VARIANT=default
+
+}
+
+check() {
+ make test
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/
+ install -m755 out/libhardened_malloc.so "$pkgdir"/usr/lib/
+ install -m755 out-light/libhardened_malloc-light.so "$pkgdir"/usr/lib/
+
+}
+
+sha512sums="
+d06c23c816058d02aec85d0e5e6fc1fe4ee23ab1406672793e2776c0dc706138c497709d636b10ba5758b69a26db438fd70d6fa302c4b2b9b237df9f202e867c hardened-malloc-12.tar.gz
+"
diff --git a/testing/hare-cairo/APKBUILD b/testing/hare-cairo/APKBUILD
new file mode 100644
index 00000000000..beec68f2d84
--- /dev/null
+++ b/testing/hare-cairo/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=hare-cairo
+pkgver=0_git20231112
+_commit=91e7381f29e57f58e4350b8c72b0dced289da364
+pkgrel=1
+pkgdesc="Hare interface to the cairo 2D graphics library"
+url="https://sr.ht/~une/hare-cairo"
+# Currently doesn't build on riscv64
+arch="x86_64 aarch64" # hare
+license="MPL-1.1"
+makedepends="hare"
+source="
+ $pkgname-codeberg-$_commit.tar.gz::https://codeberg.org/une/hare-cairo/archive/$_commit.tar.gz
+"
+builddir="$srcdir/$pkgname"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+sha512sums="
+1ac40f5d4a7a2d2eaa11e37a068896d376a1c2c567fe3e9da9609ca59947f88e9579eadf25dcbbb2b6f26b24747e57a7507fa8fcf6553a36729471a70cf6311d hare-cairo-codeberg-91e7381f29e57f58e4350b8c72b0dced289da364.tar.gz
+"
diff --git a/testing/hare-madeline/APKBUILD b/testing/hare-madeline/APKBUILD
new file mode 100644
index 00000000000..06f4917d3a1
--- /dev/null
+++ b/testing/hare-madeline/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=hare-madeline
+pkgver=0.1
+pkgrel=0
+pkgdesc="tiny readline-alike with some batteries included"
+url="https://git.d2evs.net/~ecs/madeline"
+arch="noarch"
+license="WTFPL"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.d2evs.net/~ecs/madeline/archive/v$pkgver.tar.gz
+"
+subpackages="$pkgname-doc"
+builddir="$srcdir/madeline-v$pkgver"
+options="!check" # no tests
+
+package() {
+ install -dm755 "$pkgdir/usr/src/hare/third-party"
+ cp -Rd "graph" "made" "$pkgdir/usr/src/hare/third-party"
+
+ install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" "LICENSE"
+ install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" "README"
+}
+
+sha512sums="
+00c4e48472f5d2e1428d9f4c7c905a00a6aab8c6f3ef9b3d2475e042640c86c9112acf745a84da44bbfe2a695fa25fc92d17083249fa647e1de7486099e19d25 hare-madeline-0.1.tar.gz
+"
diff --git a/testing/hare-scfg/APKBUILD b/testing/hare-scfg/APKBUILD
new file mode 100644
index 00000000000..007fee496b5
--- /dev/null
+++ b/testing/hare-scfg/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Francesco Camuffo <dev@fmac.xyz>
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=hare-scfg
+pkgver=0.24.0
+pkgrel=0
+pkgdesc="scfg implementation for Hare"
+url="https://git.sr.ht/~chrisppy/hare-scfg"
+arch="noarch !armhf !armv7 !ppc64le !s390x !x86" # blocked by hare
+license="MPL-2.0"
+makedepends="hare"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~chrisppy/hare-scfg/archive/$pkgver.tar.gz"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+30a1b4dd38f76cb82b91ee8b2bc230e889d34f82711214becde1bb5a133b4aafe1a020bfaf830255a1aa9a1020ed0603cd151a7ef4feb32ce33a38e74adab668 hare-scfg-0.24.0.tar.gz
+"
diff --git a/testing/hare-wayland/APKBUILD b/testing/hare-wayland/APKBUILD
new file mode 100644
index 00000000000..c0a2a7395d2
--- /dev/null
+++ b/testing/hare-wayland/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=hare-wayland
+pkgver=0_git20231129
+_commit=21ba2418387bd00221290b28e8056173a459fd4a
+pkgrel=0
+pkgdesc="Native Hare Wayland bindings"
+url="https://sr.ht/~sircmpwn/hare-wayland"
+arch="x86_64 aarch64 riscv64" # hare
+license="MPL-2.0"
+makedepends="hare hare-xml wayland-dev"
+source="
+ $pkgname-$_commit.tar.gz::https://git.sr.ht/~sircmpwn/hare-wayland/archive/$_commit.tar.gz
+"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+sha512sums="
+05d86952b76c8a2d85fe384722e73eb67b0576789db7c47f7f5e2c12227ff2cd111743937e85acc37e2de7b5f455e27e0e2f41474f94caa500239fe68a679b9b hare-wayland-21ba2418387bd00221290b28e8056173a459fd4a.tar.gz
+"
diff --git a/testing/hare-xkb/APKBUILD b/testing/hare-xkb/APKBUILD
new file mode 100644
index 00000000000..570efb95661
--- /dev/null
+++ b/testing/hare-xkb/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=hare-xkb
+pkgver=0_git20231011
+_commit=f26da188280caa8406d4d6345868f41021fdfdec
+pkgrel=0
+pkgdesc="Hare interface to the xkbcommon library"
+url="https://git.sr.ht/~stacyharper/hare-xkb"
+# Currently doesn't build on riscv64
+arch="x86_64 aarch64" # hare
+license="MPL-2.0"
+makedepends="hare"
+source="
+ $pkgname-$_commit.tar.gz::https://git.sr.ht/~stacyharper/hare-xkb/archive/$_commit.tar.gz
+"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+9962b86e279892ce12e324fa8c68ffc5cbb3604ac153b787b1e27b4faf66b92411fc7d9dc27a27debd946f1eb9fbdfca6f711f803854872bd64ac772c5d5dd33 hare-xkb-f26da188280caa8406d4d6345868f41021fdfdec.tar.gz
+"
diff --git a/testing/haredo/APKBUILD b/testing/haredo/APKBUILD
new file mode 100644
index 00000000000..1664b82f5da
--- /dev/null
+++ b/testing/haredo/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Umar Getagazov <umar@handlerug.me>
+pkgname=haredo
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Simple, Unix-idiomatic build automator"
+url="https://sr.ht/~autumnull/haredo"
+arch="x86_64 aarch64 riscv64" # Hare
+license="WTFPL"
+makedepends="hare scdoc"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~autumnull/haredo/archive/$pkgver.tar.gz"
+
+build() {
+ # https://todo.sr.ht/~sircmpwn/hare/784
+ unset LDFLAGS
+ ./bootstrap.sh
+}
+
+check() {
+ PATH="$builddir/bin:$PATH" haredo test
+}
+
+package() {
+ # TODO remove path overwrite when patch is applied
+ # https://lists.sr.ht/~autumnull/haredo-devel/patches/46957
+ PREFIX="$pkgdir"/usr PATH="$builddir/bin:$PATH" ./bootstrap.sh install
+}
+
+sha512sums="
+a2063c706291b8fdec2cee34983ca415d070d51fa1c7cd9cc843be232fecc7c6027c2376f209d6f7e00c332f5eda7b1b28988c0d7135d54e882c9342966566b0 haredo-1.0.4.tar.gz
+"
diff --git a/testing/hari/APKBUILD b/testing/hari/APKBUILD
new file mode 100644
index 00000000000..a053b03e383
--- /dev/null
+++ b/testing/hari/APKBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=hari
+pkgver=0_git20240126
+_commit=f4ea1c986fa7431710f203e3443c533cdc753285
+pkgrel=0
+pkgdesc="UI toolkit for Hare"
+url="https://git.sr.ht/~sircmpwn/hari"
+arch="noarch !armhf !ppc64le !s390x !armv7 !x86" # hare
+license="MPL-2.0"
+makedepends="hare"
+options="!check" # no test suite
+source="
+ $pkgname-$_commit.tar.gz::https://git.sr.ht/~sircmpwn/hari/archive/$_commit.tar.gz
+"
+builddir="$srcdir/$pkgname-$_commit"
+
+package() {
+ mkdir -p "$pkgdir"/usr/src/hare/third-party/
+ cp -r hari "$pkgdir"/usr/src/hare/third-party/
+}
+
+sha512sums="
+271377508a30d0202f81b3e4c757463cd17008635ae253c9588f6a37f16d1b1ed509213e4a5b440add5f0703a737cfdebd8b7a3304b2cb47d0b50a648ed419e3 hari-f4ea1c986fa7431710f203e3443c533cdc753285.tar.gz
+"
diff --git a/testing/harminv/APKBUILD b/testing/harminv/APKBUILD
index bf0747d8bba..b6b0eb895c4 100644
--- a/testing/harminv/APKBUILD
+++ b/testing/harminv/APKBUILD
@@ -1,17 +1,16 @@
# Contributor: Isaac Dunham <ibid.ag@gmail.com>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=harminv
-pkgver=1.4.1
-pkgrel=4
+pkgver=1.4.2
+pkgrel=1
pkgdesc="Free program to solve the problem of harmonic inversion"
-url="https://github.com/stevengj/harminv"
-arch="all !mips !mips64"
-license="GPL"
-depends_dev="openblas-dev>=0.3.0 lapack-dev"
+url="https://github.com/NanoComp/harminv"
+arch="all"
+license="GPL-2.0-or-later"
+depends_dev="openblas-dev>=0.3.0"
makedepends="$depends_dev gfortran"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="harminv-$pkgver.tar.gz::https://github.com/stevengj/harminv/releases/download/v$pkgver/harminv-$pkgver.tar.gz"
-
+source="harminv-$pkgver.tar.gz::https://github.com/NanoComp/harminv/releases/download/v$pkgver/harminv-$pkgver.tar.gz"
build() {
./configure \
@@ -35,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="30720804286e4d373bcaae5b1b8238748b3077bfd6e6afb98eba571d8acfd13d927b84d1f6ab2b975bd665063dfc533bd7a0d19f199bf51694c6d93f6c7c947c harminv-1.4.1.tar.gz"
+sha512sums="
+965c62970b66832877e9d17ee7ac67f1e2bba8efbd5aa431f17602d452fa0323a67c3f8f02c93606dc7cca160cdc335251f62903f44723d079378a7cd0a059ee harminv-1.4.2.tar.gz
+"
diff --git a/testing/hashcat/0001-fix-modules-path.patch b/testing/hashcat/0001-fix-modules-path.patch
new file mode 100644
index 00000000000..a10588057fb
--- /dev/null
+++ b/testing/hashcat/0001-fix-modules-path.patch
@@ -0,0 +1,33 @@
+diff --git a/src/Makefile b/src/Makefile
+index e538b6c28..bc741ea8b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -532,9 +532,9 @@ install_kernels: install_shared
+
+ .PHONY: install_modules
+ install_modules: install_shared modules
+- $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/modules
+- $(FIND) modules/ -mindepth 1 -type d -execdir $(INSTALL) -m 755 -d $(DESTDIR)$(SHARED_FOLDER)/modules/{} \;
+- $(FIND) modules/ -mindepth 1 -type f -execdir $(INSTALL) -m 644 {} $(DESTDIR)$(SHARED_FOLDER)/modules/{} \;
++ $(INSTALL) -m 755 -d $(DESTDIR)$(LIBRARY_FOLDER)/hashcat/modules
++ $(FIND) modules/ -mindepth 1 -type d -execdir $(INSTALL) -m 755 -d $(DESTDIR)$(LIBRARY_FOLDER)/hashcat/modules/{} \;
++ $(FIND) modules/ -mindepth 1 -type f -execdir $(INSTALL) -m 644 {} $(DESTDIR)$(LIBRARY_FOLDER)/hashcat/modules/{} \;
+
+ .PHONY: install_library
+ install_library: $(HASHCAT_LIBRARY)
+diff --git a/src/interface.c b/src/interface.c
+index d81b4ec97..5bf3e091a 100644
+--- a/src/interface.c
++++ b/src/interface.c
+@@ -21,9 +21,9 @@ int module_filename (const folder_config_t *folder_config, const int hash_mode,
+ {
+ // native compiled
+ #if defined (_WIN) || defined (__CYGWIN__)
+- return snprintf (out_buf, out_size, "%s/modules/module_%05d.dll", folder_config->shared_dir, hash_mode);
++ return snprintf (out_buf, out_size, "/usr/lib/hashcat/modules/module_%05d.dll", hash_mode);
+ #else
+- return snprintf (out_buf, out_size, "%s/modules/module_%05d.so", folder_config->shared_dir, hash_mode);
++ return snprintf (out_buf, out_size, "/usr/lib/hashcat/modules/module_%05d.so", hash_mode);
+ #endif
+ }
+
diff --git a/testing/hashcat/APKBUILD b/testing/hashcat/APKBUILD
new file mode 100644
index 00000000000..e4d639ccbbc
--- /dev/null
+++ b/testing/hashcat/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=hashcat
+pkgver=6.2.6
+pkgrel=0
+pkgdesc="World's fastest and most advanced password recovery utility"
+url="https://hashcat.net/hashcat/"
+arch="all !s390x" # compiling for big-endian architecture not supported
+license="MIT"
+makedepends="linux-headers findutils opencl-headers xxhash-dev zlib-dev minizip-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/hashcat/hashcat/archive/v$pkgver/hashcat-$pkgver.tar.gz
+ 0001-fix-modules-path.patch"
+options="!check" # no checks provided
+
+build() {
+ make PREFIX="/usr" \
+ USE_SYSTEM_OPENCL=1 \
+ USE_SYSTEM_XXHASH=1 \
+ USE_SYSTEM_ZLIB=1
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+}
+
+sha512sums="
+b5e4f40fb5ed0a47977243e1f95bf1deae0b04bd5ca26338395305c42573fe5b17557835f6f5d8b7402812e8eadda2b260d6b927ce99429fd1b87eb26f002f8a hashcat-6.2.6.tar.gz
+9a58e709d69910f0f33cd7b0151b4709b78bd55b8592ad51e9bc5d41b807aaddaf87ed09102da3955f757a84349f59d7e06b073c6031b763418e3334da3de8a7 0001-fix-modules-path.patch
+"
diff --git a/testing/hatop/APKBUILD b/testing/hatop/APKBUILD
new file mode 100644
index 00000000000..558d2cc07af
--- /dev/null
+++ b/testing/hatop/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=hatop
+pkgver=0.8.2
+pkgrel=0
+pkgdesc="Interactive ncurses client for HAProxy"
+url="https://github.com/jhunt/hatop"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jhunt/hatop/archive/v$pkgver.tar.gz"
+options="!check" #test script requires docker
+
+package() {
+ install -Dm755 "$builddir"/bin/hatop -t "$pkgdir"/usr/bin/
+ install -Dm644 "$builddir"/man/hatop.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+5e772394d72962bdd014f93ee94ea59814cee33e17c1864af5b3ec97a19c2c33a6ad13f24d0cf0baf78335d9a82cee28b60a03754430b0aa9132c1dd92753cdb hatop-0.8.2.tar.gz
+"
diff --git a/testing/hctl/APKBUILD b/testing/hctl/APKBUILD
new file mode 100644
index 00000000000..a991afcbdfb
--- /dev/null
+++ b/testing/hctl/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Michał Szmidt <michal.sz@disroot.org>
+# Maintainer: Michał Szmidt <michal.sz@disroot.org>
+pkgname=hctl
+pkgver=0.2.6
+pkgrel=0
+pkgdesc="Ultimate tool to manage (transform, merge, validate) hostlists written in rust for pihole/adguard/unbound dns blocker"
+url="https://github.com/michalszmidt/hctl"
+arch="all"
+license="BSD-3-Clause"
+makedepends="openssl-dev cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/michalszmidt/hctl/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build -p hctl --frozen --release
+}
+
+check() {
+ cargo test --release --frozen
+}
+
+package() {
+ install -Dm755 target/release/hctl -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+e90273a3f5d386993a611135e8962838894be428600b149b138e2c3604bf669fa7ec04ad98b9a644e903880e626ede0a596b185025dc6abf4018f5effeee2d4c hctl-0.2.6.tar.gz
+"
diff --git a/testing/hdf4/10-hdf-ppc.patch b/testing/hdf4/10-hdf-ppc.patch
new file mode 100644
index 00000000000..039f876ff0a
--- /dev/null
+++ b/testing/hdf4/10-hdf-ppc.patch
@@ -0,0 +1,189 @@
+diff -up hdf-4.2.15/hdf/src/hdfi.h.ppc hdf-4.2.15/hdf/src/hdfi.h
+--- hdf-4.2.15/hdf/src/hdfi.h.ppc 2020-03-03 10:40:50.000000000 -0700
++++ hdf-4.2.15/hdf/src/hdfi.h 2020-04-30 21:04:01.529561298 -0600
+@@ -75,6 +75,7 @@
+ #define DFMT_IA64 0x4441
+ #define DFMT_LINUX64 0x4441
+ #define DFMT_POWERPC64 0x1111
++#define DFMT_LINUXPPC 0x1111
+
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -1017,6 +1018,57 @@ typedef long hdf_pint_t;
+
+ #endif /*Linux 64 */
+
++/* Linux PPC */
++#if defined __powerpc__ && !defined __powerpc64__
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE
++
++#include <sys/file.h> /* for unbuffered i/o stuff */
++#include <sys/stat.h>
++#define DF_MT DFMT_LINUXPPC
++typedef void VOID;
++typedef void *VOIDP;
++typedef char *_fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef int int32;
++typedef unsigned int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef int intf; /* size of INTEGERs in Fortran compiler */
++typedef float float32;
++typedef double float64;
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++
++#ifdef __GNUC__
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++#endif
++
++#endif /*Linux PPC */
++
+ /*-----------------------------------------------------*/
+ /* 64-bit Free BSD */
+
+diff -up hdf-4.2.15/mfhdf/fortran/jackets.c.in.ppc hdf-4.2.15/mfhdf/fortran/jackets.c.in
+--- hdf-4.2.15/mfhdf/fortran/jackets.c.in.ppc 2020-03-03 10:40:50.000000000 -0700
++++ hdf-4.2.15/mfhdf/fortran/jackets.c.in 2020-04-30 21:06:39.500403641 -0600
+@@ -34,7 +34,7 @@
+
+ struct ncfils { /* This will be a common block from Fortran */
+ double dd;
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ int ll;
+ #else
+ long ll;
+@@ -65,7 +65,7 @@ struct ncfils { /* This will
+
+ struct ncfils { /* This will be a common block from Fortran */
+ double dd;
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ int ll;
+ #else
+ long ll;
+@@ -420,7 +420,7 @@ stoig(shorts, ints, dims, basis, ndims)
+ }
+ #endif /* FORTRAN_HAS_NO_SHORT */
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ /*
+ * Convert multi-dimensional array of NCLONGs stored in ints to packed
+ * array of longs, in malloc'ed space. Returns pointer to longs or NULL
+@@ -908,7 +908,7 @@ nncvpt1(cdfid, varid, indices, value, rc
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long longs = *(int *)value;
+@@ -1022,7 +1022,7 @@ nncvpt(cdfid, varid, start, count, value
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itol (value, ncount, ndims);
+@@ -1133,7 +1133,7 @@ nncvptg(cdfid, varid, start, count, stri
+ tmpbasis = nctypelen(NC_LONG);
+ else
+ #endif
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ if (datatype == NC_LONG)
+ tmpbasis = sizeof(int);
+ else
+@@ -1190,7 +1190,7 @@ nncvptg(cdfid, varid, start, count, stri
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itolg (value, ncount, nbasis, ndims);
+@@ -1326,7 +1326,7 @@ nncvgt1(cdfid, varid, indices, value, rc
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long longs;
+@@ -1468,7 +1468,7 @@ nncvgt(cdfid, varid, start, count, value
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long iocount = dimprod (ncount, ndims); /* product of dimensions */
+@@ -1606,7 +1606,7 @@ nncvgtg(cdfid, varid, start, count, stri
+ tmpbasis = nctypelen(NC_LONG);
+ else
+ #endif
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ if (datatype == NC_LONG)
+ tmpbasis = sizeof(int);
+ else
+@@ -1677,7 +1677,7 @@ nncvgtg(cdfid, varid, start, count, stri
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long iocount = dimprod (ncount, ndims); /* product of dimensions */
+@@ -1843,7 +1843,7 @@ nncapt(cdfid, varid, attname, datatype,
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) *datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itol (value, attlen, 1);
+@@ -2008,7 +2008,7 @@ nncagt(cdfid, varid, attname, value, rco
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ /* EIP We need to use int buffer to read data in on the platforms where long is 8 bytes
diff --git a/testing/hdf4/20-hdf-4.2.4-sparc.patch b/testing/hdf4/20-hdf-4.2.4-sparc.patch
new file mode 100644
index 00000000000..38d4fd4ee07
--- /dev/null
+++ b/testing/hdf4/20-hdf-4.2.4-sparc.patch
@@ -0,0 +1,78 @@
+diff -up hdf-4.2.4-snap8/hdf/src/hdfi.h.sparc hdf-4.2.4-snap8/hdf/src/hdfi.h
+--- hdf-4.2.4-snap8/hdf/src/hdfi.h.sparc 2010-02-01 13:28:25.361387271 -0700
++++ hdf-4.2.4-snap8/hdf/src/hdfi.h 2010-02-01 13:31:46.343387138 -0700
+@@ -77,6 +77,7 @@
+ #define DFMT_LINUX64 0x4441
+ #define DFMT_POWERPC64 0x1111
+ #define DFMT_LINUXPPC 0x1111
++#define DFMT_LINUXSPARC 0x1111
+
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -1392,6 +1393,66 @@ typedef long hdf_pint_t;
+
+ #endif /*Linux PPC */
+
++/* Linux Sparc32/64 */
++#if defined __sparc__ || defined __sparc64__
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE
++
++#include <sys/file.h> /* for unbuffered i/o stuff */
++#include <sys/stat.h>
++#define DF_MT DFMT_LINUXPPC
++typedef void VOID;
++typedef void *VOIDP;
++typedef char *_fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++#ifdef _LP64 /* 64-bit environment */
++typedef int int32;
++typedef unsigned int uint32;
++#else /* 32-bit environment */
++typedef long int int32;
++typedef unsigned long int uint32;
++#endif
++typedef int intn;
++typedef unsigned int uintn;
++typedef int intf; /* size of INTEGERs in Fortran compiler */
++typedef float float32;
++typedef double float64;
++#ifdef _LP64 /* 64-bit environment */
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#else /* 32-bit environment */
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#endif
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++
++#ifdef __GNUC__
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++#endif
++
++#endif /* Linux Sparc32/64 */
++
+ /*-----------------------------------------------------*/
+ /* 64-bit Free BSD */
+
diff --git a/testing/hdf4/30-hdf-s390.patch b/testing/hdf4/30-hdf-s390.patch
new file mode 100644
index 00000000000..ea21e037048
--- /dev/null
+++ b/testing/hdf4/30-hdf-s390.patch
@@ -0,0 +1,317 @@
+diff -up hdf-4.2.15/hdf/src/hdfi.h.s390 hdf-4.2.15/hdf/src/hdfi.h
+--- hdf-4.2.15/hdf/src/hdfi.h.s390 2020-04-30 21:07:16.946922845 -0600
++++ hdf-4.2.15/hdf/src/hdfi.h 2020-04-30 21:07:16.950922901 -0600
+@@ -77,6 +77,7 @@
+ #define DFMT_POWERPC64 0x1111
+ #define DFMT_LINUXPPC 0x1111
+ #define DFMT_LINUXSPARC 0x1111
++#define DFMT_LINUX390 0x1111
+
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -1130,6 +1131,66 @@ typedef int hdf_pint_t;
+
+ #endif /* Linux Sparc32/64 */
+
++/* Linux s390/s390x */
++#if defined __s390__ || defined __s390x__
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE
++
++#include <sys/file.h> /* for unbuffered i/o stuff */
++#include <sys/stat.h>
++#define DF_MT DFMT_LINUX390
++typedef void VOID;
++typedef void *VOIDP;
++typedef char *_fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++#ifdef __s390x__ /* 64-bit environment */
++typedef int int32;
++typedef unsigned int uint32;
++#else /* 32-bit environment */
++typedef long int int32;
++typedef unsigned long int uint32;
++#endif
++typedef int intn;
++typedef unsigned int uintn;
++typedef int intf; /* size of INTEGERs in Fortran compiler */
++typedef float float32;
++typedef double float64;
++#ifdef __s390x__ /* 64-bit environment */
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#else /* 32-bit environment */
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#endif
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++
++#ifdef __GNUC__
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++#endif
++
++#endif /* Linux s390/s390x */
++
+ /*-----------------------------------------------------*/
+ /* 64-bit Free BSD */
+
+diff -up hdf-4.2.15/mfhdf/fortran/jackets.c.in.s390 hdf-4.2.15/mfhdf/fortran/jackets.c.in
+--- hdf-4.2.15/mfhdf/fortran/jackets.c.in.s390 2020-04-30 21:07:16.942922790 -0600
++++ hdf-4.2.15/mfhdf/fortran/jackets.c.in 2020-04-30 21:10:30.030640644 -0600
+@@ -34,7 +34,7 @@
+
+ struct ncfils { /* This will be a common block from Fortran */
+ double dd;
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ int ll;
+ #else
+ long ll;
+@@ -65,7 +65,7 @@ struct ncfils { /* This will
+
+ struct ncfils { /* This will be a common block from Fortran */
+ double dd;
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ int ll;
+ #else
+ long ll;
+@@ -420,7 +420,7 @@ stoig(shorts, ints, dims, basis, ndims)
+ }
+ #endif /* FORTRAN_HAS_NO_SHORT */
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ /*
+ * Convert multi-dimensional array of NCLONGs stored in ints to packed
+ * array of longs, in malloc'ed space. Returns pointer to longs or NULL
+@@ -908,7 +908,7 @@ nncvpt1(cdfid, varid, indices, value, rc
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long longs = *(int *)value;
+@@ -1022,7 +1022,7 @@ nncvpt(cdfid, varid, start, count, value
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itol (value, ncount, ndims);
+@@ -1133,7 +1133,7 @@ nncvptg(cdfid, varid, start, count, stri
+ tmpbasis = nctypelen(NC_LONG);
+ else
+ #endif
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ if (datatype == NC_LONG)
+ tmpbasis = sizeof(int);
+ else
+@@ -1190,7 +1190,7 @@ nncvptg(cdfid, varid, start, count, stri
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itolg (value, ncount, nbasis, ndims);
+@@ -1326,7 +1326,7 @@ nncvgt1(cdfid, varid, indices, value, rc
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long longs;
+@@ -1468,7 +1468,7 @@ nncvgt(cdfid, varid, start, count, value
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long iocount = dimprod (ncount, ndims); /* product of dimensions */
+@@ -1606,7 +1606,7 @@ nncvgtg(cdfid, varid, start, count, stri
+ tmpbasis = nctypelen(NC_LONG);
+ else
+ #endif
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ if (datatype == NC_LONG)
+ tmpbasis = sizeof(int);
+ else
+@@ -1677,7 +1677,7 @@ nncvgtg(cdfid, varid, start, count, stri
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long iocount = dimprod (ncount, ndims); /* product of dimensions */
+@@ -1843,7 +1843,7 @@ nncapt(cdfid, varid, attname, datatype,
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) *datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itol (value, attlen, 1);
+@@ -2008,7 +2008,7 @@ nncagt(cdfid, varid, attname, value, rco
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ /* EIP We need to use int buffer to read data in on the platforms where long is 8 bytes
+diff -up hdf-4.2.15/mfhdf/libsrc/array.c.s390 hdf-4.2.15/mfhdf/libsrc/array.c
+diff -up hdf-4.2.15/mfhdf/libsrc/cdf.c.s390 hdf-4.2.15/mfhdf/libsrc/cdf.c
+diff -up hdf-4.2.15/mfhdf/libsrc/netcdf.h.in.s390 hdf-4.2.15/mfhdf/libsrc/netcdf.h.in
+--- hdf-4.2.15/mfhdf/libsrc/netcdf.h.in.s390 2020-04-30 21:07:16.957922998 -0600
++++ hdf-4.2.15/mfhdf/libsrc/netcdf.h.in 2020-04-30 21:15:23.731467288 -0600
+@@ -293,7 +293,7 @@ typedef double ncdouble;
+ /*
+ * Variables/attributes of type NC_LONG should use the C type 'nclong'
+ */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ /*
+ * LP64 (also known as 4/8/8) denotes long and pointer as 64 bit types.
+ * http://www.unix.org/version2/whatsnew/lp64_wp.html
+diff -up hdf-4.2.15/mfhdf/libsrc/putget.c.s390 hdf-4.2.15/mfhdf/libsrc/putget.c
+--- hdf-4.2.15/mfhdf/libsrc/putget.c.s390 2020-04-30 21:07:16.959923025 -0600
++++ hdf-4.2.15/mfhdf/libsrc/putget.c 2020-04-30 21:12:13.612268179 -0600
+@@ -665,7 +665,7 @@ Void *values ;
+ case NC_SHORT :
+ return( xdr_NCvshort(xdrs, (unsigned)rem/2, (short *)values) ) ;
+ case NC_LONG :
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ return( xdr_int(xdrs, (nclong *)values) ) ;
+ #else
+ return( xdr_long(xdrs, (nclong *)values) ) ;
+diff -up hdf-4.2.15/mfhdf/libsrc/xdrposix.c.s390 hdf-4.2.15/mfhdf/libsrc/xdrposix.c
+--- hdf-4.2.15/mfhdf/libsrc/xdrposix.c.s390 2020-03-03 10:40:50.000000000 -0700
++++ hdf-4.2.15/mfhdf/libsrc/xdrposix.c 2020-04-30 21:14:47.574557550 -0600
+@@ -262,7 +262,7 @@ int nbytes;
+
+ static bool_t xdrposix_getlong();
+ static bool_t xdrposix_putlong();
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ static bool_t xdrposix_getint();
+ static bool_t xdrposix_putint();
+ #endif
+@@ -276,7 +276,7 @@ static long * xdrposix_inline();
+ #if (defined __sun && defined _LP64)
+ static rpc_inline_t * xdrposix_inline();
+ #else
+-#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__
++#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__
+ static int32_t * xdrposix_inline();
+ #else
+ static netlong * xdrposix_inline();
+@@ -302,9 +302,9 @@ static struct xdr_ops xdrposix_ops = {
+ xdrposix_getpos, /* get offset in the stream */
+ xdrposix_setpos, /* set offset in the stream */
+ xdrposix_inline, /* prime stream for inline macros */
+-#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__
++#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+ xdrposix_destroy, /* destroy stream */
+-#if !(defined __x86_64__) && !(defined __powerpc64__) || (defined __sun && defined _LP64) /* i.e. we are on SUN/Intel in 64-bit mode */
++#if !(defined __x86_64__) && !(defined __powerpc64__) && !(defined __s390x__) || (defined __sun && defined _LP64) /* i.e. we are on SUN/Intel in 64-bit mode */
+ NULL, /* no xdr_control function defined */
+ #endif
+ /* Solaris 64-bit (arch=v9 and arch=amd64) has 64 bits long and 32 bits int. */
+@@ -442,7 +442,7 @@ xdrposix_getlong(xdrs, lp)
+ long *lp;
+ {
+ unsigned char *up = (unsigned char *)lp ;
+-#if (defined AIX5L64 || defined __powerpc64__ || (defined __hpux && __LP64__))
++#if (defined AIX5L64 || defined __powerpc64__ || defined __s390x__ || (defined __hpux && __LP64__))
+ *lp = 0 ;
+ up += (sizeof(long) - 4) ;
+ #endif
+@@ -465,7 +465,7 @@ xdrposix_putlong(xdrs, lp)
+ netlong mycopy = htonl(*lp);
+ up = (unsigned char *)&mycopy;
+ #endif
+-#if (defined AIX5L64 || defined __powerpc64__ || (defined __hpux && __LP64__))
++#if (defined AIX5L64 || defined __powerpc64__ || defined __s390x__ || (defined __hpux && __LP64__))
+ up += (sizeof(long) - 4) ;
+ #endif
+
+@@ -560,7 +560,7 @@ static long *
+ #if (defined __sun && defined _LP64)
+ static rpc_inline_t *
+ #else
+-#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__
++#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__
+ static int32_t *
+ #else
+ static netlong *
+@@ -581,7 +581,7 @@ xdrposix_inline(xdrs, len)
+ return (NULL);
+ }
+
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
+
+ static bool_t
+ xdrposix_getint(xdrs, lp)
+diff -up hdf-4.2.15/mfhdf/ncgen/ncgen.l.s390 hdf-4.2.15/mfhdf/ncgen/ncgen.l
+--- hdf-4.2.15/mfhdf/ncgen/ncgen.l.s390 2020-04-30 21:07:16.961923053 -0600
++++ hdf-4.2.15/mfhdf/ncgen/ncgen.l 2020-04-30 21:08:10.175628593 -0600
+@@ -113,7 +113,7 @@ FloatInf|Infinity|Inf { /* float m
+ yyerror(errstr);
+ }
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__
+ if (dd < INT_MIN || dd > INT_MAX)
+ #else
+ if (dd < LONG_MIN || dd > LONG_MAX)
+diff -up hdf-4.2.15/mfhdf/ncgen/ncgenyy.c.s390 hdf-4.2.15/mfhdf/ncgen/ncgenyy.c
+--- hdf-4.2.15/mfhdf/ncgen/ncgenyy.c.s390 2020-04-30 21:07:16.963923081 -0600
++++ hdf-4.2.15/mfhdf/ncgen/ncgenyy.c 2020-04-30 21:08:53.818030313 -0600
+@@ -991,7 +991,7 @@ YY_RULE_SETUP
+ yyerror(errstr);
+ }
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__
+ if (dd < INT_MIN || dd > INT_MAX)
+ #else
+ if (dd < LONG_MIN || dd > LONG_MAX)
diff --git a/testing/hdf4/40-hdf-arm.patch b/testing/hdf4/40-hdf-arm.patch
new file mode 100644
index 00000000000..2e63af1cb1b
--- /dev/null
+++ b/testing/hdf4/40-hdf-arm.patch
@@ -0,0 +1,81 @@
+diff -up hdf-4.2.10/hdf/src/hconv.h.arm hdf-4.2.10/hdf/src/hconv.h
+--- hdf-4.2.10/hdf/src/hconv.h.arm 2014-02-14 09:28:56.692514796 -0700
++++ hdf-4.2.10/hdf/src/hconv.h 2014-02-14 09:30:03.882212944 -0700
+@@ -59,7 +59,7 @@
+ /* CONSTANT DEFINITIONS */
+ /*****************************************************************************/
+ /* Generally Big-Endian machines */
+-#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__)
++#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__)
+ # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */
+ # define UI8_OUT DFKnb1b
+ # define SI16_IN DFKnb2b /* S = Signed */
+diff -up hdf-4.2.10/hdf/src/hdfi.h.arm hdf-4.2.10/hdf/src/hdfi.h
+--- hdf-4.2.10/hdf/src/hdfi.h.arm 2014-02-14 09:28:56.685514824 -0700
++++ hdf-4.2.10/hdf/src/hdfi.h 2014-02-14 09:28:56.693514792 -0700
+@@ -78,6 +78,7 @@
+ #define DFMT_LINUXPPC 0x1111
+ #define DFMT_LINUXSPARC 0x1111
+ #define DFMT_LINUX390 0x1111
++#define DFMT_LINUXARM 0x4441
+
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -1187,6 +1188,57 @@ typedef int hdf_pint_t;
+
+ #endif /* Linux s390/s390x */
+
++/* Linux ARM */
++#if defined __arm__
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE
++
++#include <sys/file.h> /* for unbuffered i/o stuff */
++#include <sys/stat.h>
++#define DF_MT DFMT_LINUXARM
++typedef void VOID;
++typedef void *VOIDP;
++typedef char *_fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef long int int32;
++typedef unsigned long int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef int intf; /* size of INTEGERs in Fortran compiler */
++typedef float float32;
++typedef double float64;
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++
++#ifdef __GNUC__
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++#endif
++
++#endif /* Linux ARM */
++
+ /*-----------------------------------------------------*/
+ /* 64-bit Free BSD */
+
diff --git a/testing/hdf4/50-hdf-aarch64.patch b/testing/hdf4/50-hdf-aarch64.patch
new file mode 100644
index 00000000000..1865e72b3a9
--- /dev/null
+++ b/testing/hdf4/50-hdf-aarch64.patch
@@ -0,0 +1,289 @@
+diff -up hdf-4.2.15/hdf/src/hconv.h.aarch64 hdf-4.2.15/hdf/src/hconv.h
+--- hdf-4.2.15/hdf/src/hconv.h.aarch64 2020-04-30 21:16:25.325499508 -0600
++++ hdf-4.2.15/hdf/src/hconv.h 2020-04-30 21:16:25.338499580 -0600
+@@ -59,7 +59,7 @@
+ /* CONSTANT DEFINITIONS */
+ /*****************************************************************************/
+ /* Generally Big-Endian machines */
+-#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__)
++#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__) && !defined(__AARCH64EL__)
+ # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */
+ # define UI8_OUT DFKnb1b
+ # define SI16_IN DFKnb2b /* S = Signed */
+diff -up hdf-4.2.15/hdf/src/hdfi.h.aarch64 hdf-4.2.15/hdf/src/hdfi.h
+--- hdf-4.2.15/hdf/src/hdfi.h.aarch64 2020-04-30 21:16:25.326499514 -0600
++++ hdf-4.2.15/hdf/src/hdfi.h 2020-04-30 21:16:25.340499591 -0600
+@@ -79,6 +79,7 @@
+ #define DFMT_LINUXSPARC 0x1111
+ #define DFMT_LINUX390 0x1111
+ #define DFMT_LINUXARM 0x4441
++#define DFMT_LINUXAARCH64 0x4441
+
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -1341,6 +1342,44 @@ typedef long hdf_pint_t;
+
+ #endif /* IA64 */
+
++/* Linux AArch64 */
++#if defined __aarch64__
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE
++
++#include <sys/file.h> /* for unbuffered i/o stuff */
++#include <sys/stat.h>
++#define DF_MT DFMT_LINUXAARCH64
++typedef void VOID;
++typedef void *VOIDP;
++typedef char *_fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef int int32;
++typedef unsigned int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef int intf; /* size of INTEGERs in Fortran compiler */
++typedef float float32;
++typedef double float64;
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++#endif /* Linux AArch64 */
++
+ #ifndef GOT_MACHINE
+ No machine type has been defined. Your Makefile needs to have someing like
+ -DSUN or -DUNICOS in order for the HDF internal structures to be defined
+diff -up hdf-4.2.15/mfhdf/fortran/jackets.c.in.aarch64 hdf-4.2.15/mfhdf/fortran/jackets.c.in
+--- hdf-4.2.15/mfhdf/fortran/jackets.c.in.aarch64 2020-04-30 21:16:25.318499470 -0600
++++ hdf-4.2.15/mfhdf/fortran/jackets.c.in 2020-04-30 21:20:28.346831868 -0600
+@@ -34,7 +34,7 @@
+
+ struct ncfils { /* This will be a common block from Fortran */
+ double dd;
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ int ll;
+ #else
+ long ll;
+@@ -65,7 +65,7 @@ struct ncfils { /* This will
+
+ struct ncfils { /* This will be a common block from Fortran */
+ double dd;
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ int ll;
+ #else
+ long ll;
+@@ -420,7 +420,7 @@ stoig(shorts, ints, dims, basis, ndims)
+ }
+ #endif /* FORTRAN_HAS_NO_SHORT */
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ /*
+ * Convert multi-dimensional array of NCLONGs stored in ints to packed
+ * array of longs, in malloc'ed space. Returns pointer to longs or NULL
+@@ -908,7 +908,7 @@ nncvpt1(cdfid, varid, indices, value, rc
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long longs = *(int *)value;
+@@ -1022,7 +1022,7 @@ nncvpt(cdfid, varid, start, count, value
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itol (value, ncount, ndims);
+@@ -1133,7 +1133,7 @@ nncvptg(cdfid, varid, start, count, stri
+ tmpbasis = nctypelen(NC_LONG);
+ else
+ #endif
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ if (datatype == NC_LONG)
+ tmpbasis = sizeof(int);
+ else
+@@ -1190,7 +1190,7 @@ nncvptg(cdfid, varid, start, count, stri
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itolg (value, ncount, nbasis, ndims);
+@@ -1326,7 +1326,7 @@ nncvgt1(cdfid, varid, indices, value, rc
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long longs;
+@@ -1468,7 +1468,7 @@ nncvgt(cdfid, varid, start, count, value
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long iocount = dimprod (ncount, ndims); /* product of dimensions */
+@@ -1606,7 +1606,7 @@ nncvgtg(cdfid, varid, start, count, stri
+ tmpbasis = nctypelen(NC_LONG);
+ else
+ #endif
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ if (datatype == NC_LONG)
+ tmpbasis = sizeof(int);
+ else
+@@ -1677,7 +1677,7 @@ nncvgtg(cdfid, varid, start, count, stri
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long iocount = dimprod (ncount, ndims); /* product of dimensions */
+@@ -1843,7 +1843,7 @@ nncapt(cdfid, varid, attname, datatype,
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) *datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ long *longs = itol (value, attlen, 1);
+@@ -2008,7 +2008,7 @@ nncagt(cdfid, varid, attname, value, rco
+ return;
+ } /* else */
+ #endif /* FORTRAN_HAS_NO_SHORT */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ #ifdef HDF
+ if ((nc_type) datatype == NC_LONG && handle->file_type!=HDF_FILE) {
+ /* EIP We need to use int buffer to read data in on the platforms where long is 8 bytes
+diff -up hdf-4.2.15/mfhdf/libsrc/array.c.aarch64 hdf-4.2.15/mfhdf/libsrc/array.c
+diff -up hdf-4.2.15/mfhdf/libsrc/cdf.c.aarch64 hdf-4.2.15/mfhdf/libsrc/cdf.c
+diff -up hdf-4.2.15/mfhdf/libsrc/netcdf.h.in.aarch64 hdf-4.2.15/mfhdf/libsrc/netcdf.h.in
+--- hdf-4.2.15/mfhdf/libsrc/netcdf.h.in.aarch64 2020-04-30 21:16:25.347499629 -0600
++++ hdf-4.2.15/mfhdf/libsrc/netcdf.h.in 2020-04-30 21:24:11.366838259 -0600
+@@ -293,7 +293,7 @@ typedef double ncdouble;
+ /*
+ * Variables/attributes of type NC_LONG should use the C type 'nclong'
+ */
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ /*
+ * LP64 (also known as 4/8/8) denotes long and pointer as 64 bit types.
+ * http://www.unix.org/version2/whatsnew/lp64_wp.html
+diff -up hdf-4.2.15/mfhdf/libsrc/putget.c.aarch64 hdf-4.2.15/mfhdf/libsrc/putget.c
+--- hdf-4.2.15/mfhdf/libsrc/putget.c.aarch64 2020-04-30 21:16:25.349499640 -0600
++++ hdf-4.2.15/mfhdf/libsrc/putget.c 2020-04-30 21:21:11.344052951 -0600
+@@ -665,7 +665,7 @@ Void *values ;
+ case NC_SHORT :
+ return( xdr_NCvshort(xdrs, (unsigned)rem/2, (short *)values) ) ;
+ case NC_LONG :
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ return( xdr_int(xdrs, (nclong *)values) ) ;
+ #else
+ return( xdr_long(xdrs, (nclong *)values) ) ;
+diff -up hdf-4.2.15/mfhdf/libsrc/xdrposix.c.aarch64 hdf-4.2.15/mfhdf/libsrc/xdrposix.c
+--- hdf-4.2.15/mfhdf/libsrc/xdrposix.c.aarch64 2020-04-30 21:16:25.321499486 -0600
++++ hdf-4.2.15/mfhdf/libsrc/xdrposix.c 2020-04-30 21:23:48.397752506 -0600
+@@ -262,7 +262,7 @@ int nbytes;
+
+ static bool_t xdrposix_getlong();
+ static bool_t xdrposix_putlong();
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ static bool_t xdrposix_getint();
+ static bool_t xdrposix_putint();
+ #endif
+@@ -276,7 +276,7 @@ static long * xdrposix_inline();
+ #if (defined __sun && defined _LP64)
+ static rpc_inline_t * xdrposix_inline();
+ #else
+-#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__
++#if ((defined __x86_64__ ) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ static int32_t * xdrposix_inline();
+ #else
+ static netlong * xdrposix_inline();
+@@ -302,9 +302,9 @@ static struct xdr_ops xdrposix_ops = {
+ xdrposix_getpos, /* get offset in the stream */
+ xdrposix_setpos, /* set offset in the stream */
+ xdrposix_inline, /* prime stream for inline macros */
+-#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if (defined __sun && defined _LP64) || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ xdrposix_destroy, /* destroy stream */
+-#if !(defined __x86_64__) && !(defined __powerpc64__) && !(defined __s390x__) || (defined __sun && defined _LP64) /* i.e. we are on SUN/Intel in 64-bit mode */
++#if !(defined __x86_64__) && !(defined __powerpc64__) && !(defined __s390x__) && !(defined __aarch64__) || (defined __sun && defined _LP64) /* i.e. we are on SUN/Intel in 64-bit mode */
+ NULL, /* no xdr_control function defined */
+ #endif
+ /* Solaris 64-bit (arch=v9 and arch=amd64) has 64 bits long and 32 bits int. */
+@@ -560,7 +560,7 @@ static long *
+ #if (defined __sun && defined _LP64)
+ static rpc_inline_t *
+ #else
+-#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__
++#if ((defined __x86_64__) && !(defined __sun && defined _LP64)) || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+ static int32_t *
+ #else
+ static netlong *
+@@ -581,7 +581,7 @@ xdrposix_inline(xdrs, len)
+ return (NULL);
+ }
+
+-#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__
++#if (_MIPS_SZLONG == 64) || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || defined __powerpc64__ || defined __s390x__ || defined __aarch64__
+
+ static bool_t
+ xdrposix_getint(xdrs, lp)
+diff -up hdf-4.2.15/mfhdf/ncgen/ncgen.l.aarch64 hdf-4.2.15/mfhdf/ncgen/ncgen.l
+--- hdf-4.2.15/mfhdf/ncgen/ncgen.l.aarch64 2020-04-30 21:16:25.376499789 -0600
++++ hdf-4.2.15/mfhdf/ncgen/ncgen.l 2020-04-30 21:17:29.876854089 -0600
+@@ -113,7 +113,7 @@ FloatInf|Infinity|Inf { /* float m
+ yyerror(errstr);
+ }
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || defined __s390x__ || defined __aarch64__
+ if (dd < INT_MIN || dd > INT_MAX)
+ #else
+ if (dd < LONG_MIN || dd > LONG_MAX)
+diff -up hdf-4.2.15/mfhdf/ncgen/ncgenyy.c.aarch64 hdf-4.2.15/mfhdf/ncgen/ncgenyy.c
+--- hdf-4.2.15/mfhdf/ncgen/ncgenyy.c.aarch64 2020-04-30 21:16:25.382499822 -0600
++++ hdf-4.2.15/mfhdf/ncgen/ncgenyy.c 2020-04-30 21:18:12.880090311 -0600
+@@ -991,7 +991,7 @@ YY_RULE_SETUP
+ yyerror(errstr);
+ }
+
+-#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__
++#if defined __alpha || (_MIPS_SZLONG == 64) || defined __ia64 || (defined __sun && defined _LP64) || defined AIX5L64 || defined __x86_64__ || __powerpc64__ || __s390x__ || defined __aarch64__
+ if (dd < INT_MIN || dd > INT_MAX)
+ #else
+ if (dd < LONG_MIN || dd > LONG_MAX)
diff --git a/testing/hdf4/60-hdf-ppc64le.patch b/testing/hdf4/60-hdf-ppc64le.patch
new file mode 100644
index 00000000000..e199a55824b
--- /dev/null
+++ b/testing/hdf4/60-hdf-ppc64le.patch
@@ -0,0 +1,83 @@
+diff -up hdf-4.2.15/hdf/src/hconv.h.ppc64le hdf-4.2.15/hdf/src/hconv.h
+--- hdf-4.2.15/hdf/src/hconv.h.ppc64le 2020-04-30 21:25:25.183973672 -0600
++++ hdf-4.2.15/hdf/src/hconv.h 2020-04-30 21:25:25.191973677 -0600
+@@ -59,7 +59,7 @@
+ /* CONSTANT DEFINITIONS */
+ /*****************************************************************************/
+ /* Generally Big-Endian machines */
+-#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__) && !defined(__AARCH64EL__)
++#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !defined(__arm__) && !defined(__AARCH64EL__) && !defined(__LITTLE_ENDIAN__)
+ # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */
+ # define UI8_OUT DFKnb1b
+ # define SI16_IN DFKnb2b /* S = Signed */
+diff -up hdf-4.2.15/hdf/src/hdfi.h.ppc64le hdf-4.2.15/hdf/src/hdfi.h
+--- hdf-4.2.15/hdf/src/hdfi.h.ppc64le 2020-04-30 21:25:25.183973672 -0600
++++ hdf-4.2.15/hdf/src/hdfi.h 2020-04-30 21:25:25.192973677 -0600
+@@ -75,6 +75,7 @@
+ #define DFMT_IA64 0x4441
+ #define DFMT_LINUX64 0x4441
+ #define DFMT_POWERPC64 0x1111
++#define DFMT_POWERPC64LE 0x4441
+ #define DFMT_LINUXPPC 0x1111
+ #define DFMT_LINUXSPARC 0x1111
+ #define DFMT_LINUX390 0x1111
+@@ -926,18 +927,24 @@ typedef int hdf_pint_t;
+
+
+ /*-----------------------------------------------------*/
+-/* Power PC 5 64 */
+ #if defined __powerpc64__
+-
++/* powerpc 64 bits */
+ #ifdef GOT_MACHINE
+ If you get an error on this line more than one machine type has been defined.
+ Please check your Makefile.
+ #endif
+ #define GOT_MACHINE
+
++#ifdef __LITTLE_ENDIAN__
++/* Power PC 8 64 little endian */
++#define DF_MT DFMT_POWERPC64LE
++#else
++/* Power PC 5 64 */
++#define DF_MT DFMT_POWERPC64
++#endif
++
+ #include <sys/file.h> /* for unbuffered i/o stuff */
+ #include <sys/stat.h>
+-#define DF_MT DFMT_POWERPC64
+ typedef void VOID;
+ typedef void *VOIDP;
+ typedef char *_fcd;
+@@ -973,8 +980,9 @@ typedef long hdf_pint_t;
+ #define INCLUDES_ARE_ANSI
+ #endif
+
++#endif /* powerpc 64 bits */
++
+ /*-----------------------------------------------------*/
+-#endif /*power PC 5 64 */
+ /* Linux 64 */
+ #if defined(__linux__) && defined __x86_64__ && !(defined SUN) /* i.e. 64-bit Linux but not SunOS on Intel */
+
+diff -up hdf-4.2.15/mfhdf/libsrc/xdrposix.c.ppc64le hdf-4.2.15/mfhdf/libsrc/xdrposix.c
+--- hdf-4.2.15/mfhdf/libsrc/xdrposix.c.ppc64le 2020-04-30 21:25:25.186973674 -0600
++++ hdf-4.2.15/mfhdf/libsrc/xdrposix.c 2020-04-30 21:26:18.190001127 -0600
+@@ -442,7 +442,7 @@ xdrposix_getlong(xdrs, lp)
+ long *lp;
+ {
+ unsigned char *up = (unsigned char *)lp ;
+-#if (defined AIX5L64 || defined __powerpc64__ || defined __s390x__ || (defined __hpux && __LP64__))
++#if (defined AIX5L64 || (defined __powerpc64__ && !defined __LITTLE_ENDIAN__) || defined __s390x__ || (defined __hpux && __LP64__))
+ *lp = 0 ;
+ up += (sizeof(long) - 4) ;
+ #endif
+@@ -465,7 +465,7 @@ xdrposix_putlong(xdrs, lp)
+ netlong mycopy = htonl(*lp);
+ up = (unsigned char *)&mycopy;
+ #endif
+-#if (defined AIX5L64 || defined __powerpc64__ || defined __s390x__ || (defined __hpux && __LP64__))
++#if (defined AIX5L64 || (defined __powerpc64__ && !defined __LITTLE_ENDIAN__) || defined __s390x__ || (defined __hpux && __LP64__))
+ up += (sizeof(long) - 4) ;
+ #endif
+
diff --git a/testing/hdf4/APKBUILD b/testing/hdf4/APKBUILD
new file mode 100644
index 00000000000..4d25d7a0f55
--- /dev/null
+++ b/testing/hdf4/APKBUILD
@@ -0,0 +1,117 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=hdf4
+pkgver=4.2.15
+pkgrel=1
+pkgdesc="Data model, library, and file format for storing and managing data"
+url="https://www.hdfgroup.org/solutions/hdf4/"
+arch="all !riscv64" # ftbfs
+license="custom"
+options="!check" # Upstream tests appear broken
+depends_dev="zlib-dev jpeg-dev portablexdr-dev"
+makedepends="$depends_dev bison flex libaec-dev chrpath"
+checkdepends="diffutils" # Flags not supported by busybox diff are used
+subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
+# Patches from Fedora: https://src.fedoraproject.org/rpms/hdf/tree/rawhide
+# NB: Some of these patches depend on each other in the given order
+source="https://support.hdfgroup.org/ftp/HDF/releases/HDF$pkgver/src/hdf-$pkgver.tar.bz2
+ 10-hdf-ppc.patch
+ 20-hdf-4.2.4-sparc.patch
+ 30-hdf-s390.patch
+ 40-hdf-arm.patch
+ 50-hdf-aarch64.patch
+ 60-hdf-ppc64le.patch"
+builddir="$srcdir"/hdf-"$pkgver"
+
+prepare() {
+ default_prepare
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ # This flag would required to treat Fortran argument mismatch as a warning,
+ # not an error.
+ # This got fixed in master https://github.com/HDFGroup/hdf4/issues/1
+ # but isn't fixed yet in the latest release.
+ # > export FFLAGS="$FFLAGS -fallow-argument-mismatch"
+ # However, --enable-shared currently requires that fortran is disabled, so
+ # it doesn't matter anyway
+ export LIBS="$LIBS -lportablexdr"
+
+ # We disable netcdf since it's provided by the netcdf-* packages
+ ./configure \
+ --enable-shared \
+ --disable-static \
+ --disable-fortran \
+ --disable-netcdf \
+ --with-szlib \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install-recursive
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/"$pkgname"/COPYING
+ chrpath -d \
+ "$pkgdir"/usr/lib/libmfhdf.so.0.0.0 \
+ "$pkgdir"/usr/lib/libdf.so.0.0.0 \
+ "$pkgdir"/usr/bin/gif2hdf \
+ "$pkgdir"/usr/bin/hdf24to8 \
+ "$pkgdir"/usr/bin/hdf8to24 \
+ "$pkgdir"/usr/bin/hdfimport \
+ "$pkgdir"/usr/bin/hdftopal \
+ "$pkgdir"/usr/bin/hdiff \
+ "$pkgdir"/usr/bin/jpeg2hdf \
+ "$pkgdir"/usr/bin/paltohdf \
+ "$pkgdir"/usr/bin/vmake \
+ "$pkgdir"/usr/bin/hdf2gif \
+ "$pkgdir"/usr/bin/hdfcomp \
+ "$pkgdir"/usr/bin/hdfls \
+ "$pkgdir"/usr/bin/hdftor8 \
+ "$pkgdir"/usr/bin/hdp \
+ "$pkgdir"/usr/bin/ncdump \
+ "$pkgdir"/usr/bin/r8tohdf \
+ "$pkgdir"/usr/bin/vshow \
+ "$pkgdir"/usr/bin/hdf2jpeg \
+ "$pkgdir"/usr/bin/hdfed \
+ "$pkgdir"/usr/bin/hdfpack \
+ "$pkgdir"/usr/bin/hdfunpac \
+ "$pkgdir"/usr/bin/hrepack \
+ "$pkgdir"/usr/bin/ncgen \
+ "$pkgdir"/usr/bin/ristosds
+}
+
+dev() {
+ default_dev
+ amove usr/lib/libhdf4.settings
+}
+
+doc() {
+ default_doc
+ # Remove conflicts with netcdf-doc
+ rm "$subpkgdir"/usr/share/man/man1/ncdump.1.gz "$subpkgdir"/usr/share/man/man1/ncgen.1.gz
+}
+
+tools() {
+ mkdir -p "$subpkgdir"/usr
+ amove usr/bin
+ # Remove conflicts with netcdf-utils
+ rm "$subpkgdir"/usr/bin/ncgen "$subpkgdir"/usr/bin/ncdump
+}
+
+sha512sums="
+7d4037800ef8950ed74f225355ef5458444bed26fc189fbbd2ce7d36009998013ac1f6ba5d4e60834acf8f6f73550357238745acc35e162679919400a48191e9 hdf-4.2.15.tar.bz2
+c3098bf0c937c406ed133ea94c7b4bb7fb7b78aa37e1fae0402f74e3aed8db79a13a5d0baf6b0cb78835984794e795a51d54b690115a390baf9b89292fd587ad 10-hdf-ppc.patch
+751ef4c537f4a7d50dae95eb3c9879848eada5c1ae80b9906b62b26b77496b42dfe7dd6ffb8359a986e2c0630b46ca59d797864fe93645ddb2923d65f6ca9bcc 20-hdf-4.2.4-sparc.patch
+2b3c04bfa20f1067852538a6593de2659ee480b3f40dc51931989a175b99394ae67f1d3445f697486801d7a9d19a4e10cf10413fb6ee28126cebf0e1379f1447 30-hdf-s390.patch
+b9ea7c626fcf1bfbf75e05459794fc577a28602749464f2eea029fc4d729ceeb96f93273cc9ea8988878444632532888970047370b787b9c4bdea0b0077ff1b3 40-hdf-arm.patch
+fac62b5ab9ceaf9ddd9cc4831994cdf5cc4e0b2f85ee9f943f7311b0acc2b78d18f49e194a31b7ddd0c17dc87a14ec55d6af73258fbc2f0f2e2b86b7f9048f25 50-hdf-aarch64.patch
+824be68ce54c43ea8e556cd9836b8d18162e3a214d532ce40ca7de600693da89dcbc364aae5995c2cd455126550d88606889c5e1c956c4cb9f1928566c705121 60-hdf-ppc64le.patch
+"
diff --git a/testing/hdr10plus-tool/APKBUILD b/testing/hdr10plus-tool/APKBUILD
new file mode 100644
index 00000000000..46533b8aee6
--- /dev/null
+++ b/testing/hdr10plus-tool/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Petr Hodina <phodina@protonmail.com>
+# Maintainer: Petr Hodina <phodina@protonmail.com>
+pkgname=hdr10plus-tool
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="CLI utility to work with HDR10+ in HEVC files"
+url="https://github.com/quietvoid/hdr10plus_tool"
+# arm: fails tests
+arch="all !armhf !armv7"
+license="MIT"
+makedepends="cargo cargo-auditable fontconfig-dev"
+checkdepends="font-opensans"
+source="$pkgname-$pkgver.tar.gz::https://github.com/quietvoid/hdr10plus_tool/archive/refs/tags/$pkgver.tar.gz"
+builddir=$srcdir/hdr10plus_tool-$pkgver
+options="net" # cargo fetch
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/hdr10plus_tool -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+bee366c7f2e85274bc5d231e31c4b2662424a754500c4cc6eeb7621cdb3cf66c55eb008957bff080792c513cbee989644d4c2e56159398d90845af42fd935026 hdr10plus-tool-1.6.0.tar.gz
+"
diff --git a/testing/headscale/APKBUILD b/testing/headscale/APKBUILD
new file mode 100644
index 00000000000..bd309558927
--- /dev/null
+++ b/testing/headscale/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=headscale
+pkgver=0.22.3
+pkgrel=6
+pkgdesc="Open source, self-hosted implementation of the Tailscale control server"
+url="https://github.com/juanfont/headscale"
+arch="all !ppc64le !riscv64" # go build fails
+license="BSD-3-Clause"
+pkgusers="headscale"
+pkggroups="headscale"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-openrc
+ $pkgname-zsh-completion
+ "
+install="$pkgname.pre-install"
+source="https://github.com/juanfont/headscale/archive/v$pkgver/headscale-$pkgver.tar.gz
+ headscale.initd
+ "
+options="net" # fetch dependencies
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+
+ # move socket to a subdirectory to allow running as non-root
+ sed -i 's|/var/run/headscale.sock|/run/headscale/headscale.sock|' config-example.yaml
+}
+
+build() {
+ go build -ldflags "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v$pkgver" ./cmd/headscale
+ mkdir completions
+ ./headscale completion bash > completions/bash
+ ./headscale completion fish > completions/fish
+ ./headscale completion zsh > completions/zsh
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 headscale "$pkgdir"/usr/bin/headscale
+
+ install -Dm755 "$srcdir"/headscale.initd "$pkgdir"/etc/init.d/headscale
+ install -Dm644 config-example.yaml "$pkgdir"/etc/headscale/config.yaml
+
+ # completions
+ install -Dm644 completions/bash "$pkgdir"/usr/share/bash-completion/completions/headscale
+ install -Dm644 completions/fish "$pkgdir"/usr/share/fish/vendor_completions.d/headscale.fish
+ install -Dm644 completions/zsh "$pkgdir"/usr/share/zsh/site-functions/_headscale
+}
+
+sha512sums="
+c3ce7ae023dd0bd5c52e00ec2564b68eb87074a804a9982a3eb6f1e64335621a312cbb650d79571e89bef3f0d8e6d602b732156aa8851b67dfd455ac1156b311 headscale-0.22.3.tar.gz
+0800829bfc087af283afc117406324a0129b30b587c8cc5df85e147ac09fc879d726fc2d0b62ed545fb0190ed887641f07256745da9dea56932dd2d90aa41625 headscale.initd
+"
diff --git a/testing/headscale/headscale.initd b/testing/headscale/headscale.initd
new file mode 100644
index 00000000000..9062a6b73a5
--- /dev/null
+++ b/testing/headscale/headscale.initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+
+command="/usr/bin/headscale"
+command_args="serve"
+command_user="headscale:headscale"
+directory="/var/lib/headscale"
+
+output_log="/var/log/headscale.log"
+error_log="/var/log/headscale.log"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 755 -o "headscale:headscale" /var/run/headscale
+ checkpath -d -m 755 -o "headscale:headscale" /var/lib/headscale
+
+ checkpath -f -m 644 -o "headscale:headscale" /var/lib/headscale/db.sqlite
+ checkpath -f -m 644 -o "headscale:headscale" /etc/headscale/config.yaml
+ checkpath -f -m 644 -o "headscale:headscale" /var/log/headscale.log
+}
diff --git a/testing/headscale/headscale.pre-install b/testing/headscale/headscale.pre-install
new file mode 100644
index 00000000000..f6f8ce4b763
--- /dev/null
+++ b/testing/headscale/headscale.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S headscale 2>/dev/null
+adduser -S -D -H -h /var/lib/headscale -s /sbin/nologin -G headscale -g headscale headscale 2>/dev/null
+
+exit 0
diff --git a/testing/heh/APKBUILD b/testing/heh/APKBUILD
new file mode 100644
index 00000000000..1c06ac0ae62
--- /dev/null
+++ b/testing/heh/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=heh
+pkgver=0.5.0
+pkgrel=0
+pkgdesc="A terminal UI to edit bytes by the nibble"
+url="https://github.com/ndd7xv/heh"
+arch="all !s390x !x86" # FTBFS
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ndd7xv/heh/archive/refs/tags/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+3b1546d478ed8fb8a9a2b58215de1b957666f85f17c2db577a4e888c2b9d63c5e423b7585e19c9e526b42d2f6d0ebd71a17f4ae2f89fe1dc17be6eca2c58d781 heh-0.5.0.tar.gz
+"
diff --git a/testing/helm-ls/APKBUILD b/testing/helm-ls/APKBUILD
new file mode 100644
index 00000000000..b3d469199f3
--- /dev/null
+++ b/testing/helm-ls/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=helm-ls
+pkgver=0.0.12
+pkgrel=1
+pkgdesc="Language server for Helm"
+url="https://github.com/mrjosh/helm-ls"
+arch="all"
+license="MIT"
+makedepends="go"
+options="chmod-clean net"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mrjosh/helm-ls/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -ldflags="-buildid= -X main.Version=$pkgver"
+}
+
+check() {
+ # Depends on yaml-ls
+ go test ./... -skip TestYamllsDiagnosticsIntegration
+}
+
+package() {
+ install -Dm755 "$pkgname" "$pkgdir"/usr/bin/helm_ls
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+163d0619b86c3368e29a0c0aa7fcb4f9ea3d8eeba19d86c95d54d06a3b4ad5b0fa5b455d911863c17e16849394191777bbba698c85a721046ea53b100010ac12 helm-ls-0.0.12.tar.gz
+"
diff --git a/testing/helmfile/APKBUILD b/testing/helmfile/APKBUILD
new file mode 100644
index 00000000000..f0b454e7d5b
--- /dev/null
+++ b/testing/helmfile/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=helmfile
+pkgver=0.162.0
+pkgrel=2
+pkgdesc="Declarative spec for deploying helm charts"
+url="https://helmfile.readthedocs.io/"
+# armhf: ftbfs
+arch="all !armhf"
+license="MIT"
+depends="helm"
+makedepends="go"
+checkdepends="bash"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/helmfile/helmfile/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X go.szostok.io/version.version=$pkgver
+ -X go.szostok.io/version.buildDate=$(date -u "+%Y-%m-%dT%H:%M:%S%z" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X go.szostok.io/version.commitDate=$(date -u "+%Y-%m-%dT%H:%M:%S%z" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X go.szostok.io/version.commit=0000000
+ -X go.szostok.io/version.dirtyBuild=false
+ -X github.com/helmfile/helmfile/pkg/runtime.v1Mode=true
+ "
+ go build -v -o helmfile -ldflags "$_goldflags"
+
+ for shell in bash fish zsh; do
+ ./helmfile completion $shell > $pkgname.$shell
+ done
+}
+
+check() {
+ # e2e/template test requires docker
+ # shellcheck disable=2046
+ go test $(go list ./... | grep -v /e2e)
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+
+ install -Dm644 helmfile.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/helmfile
+ install -Dm644 helmfile.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_helmfile
+ install -Dm644 helmfile.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/helmfile.fish
+}
+
+sha512sums="
+54c114c4f1deb090e7e6b198469629c783de7638b315972320b35ba53bae95d31d18df6ee3b28ed1bca1f2eba2d6e75dd64dc45ebf4d60af9cf4281b14ab2e91 helmfile-0.162.0.tar.gz
+"
diff --git a/testing/helvum/APKBUILD b/testing/helvum/APKBUILD
new file mode 100644
index 00000000000..836b316733c
--- /dev/null
+++ b/testing/helvum/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=helvum
+pkgver=0.5.1
+pkgrel=0
+pkgdesc="GTK patchbay for pipewire"
+url="https://gitlab.freedesktop.org/pipewire/helvum"
+license="GPL-3.0-only"
+arch="all !s390x !riscv64" # blocked by rust/cargo
+arch="$arch !x86 !armv7 !armhf" # FTBFS on 32-bit systems
+makedepends="bash cargo desktop-file-utils meson clang-dev glib-dev gtk4.0-dev pipewire-dev libadwaita-dev"
+source="https://gitlab.freedesktop.org/pipewire/helvum/-/archive/$pkgver/helvum-$pkgver.tar.gz
+ pipewire-rs-0.7.2.patch
+ "
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+7d4655a32d0c35c4bcc4164f8bc08654be08613d488a12ec237ef7757242ebd3ca6bc944eb757a234080187eec2c9b558bdba228e8e1a9d9e670c1620f5bb4d1 helvum-0.5.1.tar.gz
+7b2701c5e7f8a195ad3bdb68de3881becfdcc4c11db3de9e16acf4828a159389c34ba8fbdd9918b9474d0df51a7f8d0a7a449b1976dea0fddc007feb9e9372fa pipewire-rs-0.7.2.patch
+"
diff --git a/testing/helvum/pipewire-rs-0.7.2.patch b/testing/helvum/pipewire-rs-0.7.2.patch
new file mode 100644
index 00000000000..6d5c3ec3411
--- /dev/null
+++ b/testing/helvum/pipewire-rs-0.7.2.patch
@@ -0,0 +1,17 @@
+Fix build issue by upgrading pipewire-rs to 0.7.2
+
+see: https://gitlab.freedesktop.org/pipewire/pipewire-rs/-/merge_requests/193
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 1152519..b4e4421 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -14,7 +14,7 @@ categories = ["gui", "multimedia"]
+ # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+ [dependencies]
+-pipewire = "0.7.1"
++pipewire = "0.7.2"
+ adw = { version = "0.5", package = "libadwaita", features = ["v1_3"] }
+ glib = { version = "0.18", features = ["log"] }
+
diff --git a/testing/heplify-server/APKBUILD b/testing/heplify-server/APKBUILD
index 514cdf0e8d1..276505c4081 100644
--- a/testing/heplify-server/APKBUILD
+++ b/testing/heplify-server/APKBUILD
@@ -1,24 +1,54 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=heplify-server
-pkgver=1.27
-pkgrel=1
+pkgver=1.59.7
+pkgrel=0
pkgdesc="HEP Capture Server & Switch in Go"
url="http://sipcapture.io"
-arch="all"
+arch="all !riscv64 !ppc64le" # FTBFS
license="AGPL-3.0-or-later"
makedepends="go"
install="$pkgname.pre-install"
subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sipcapture/heplify-server/archive/$pkgver.tar.gz
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sipcapture/heplify-server/archive/refs/tags/v$pkgver.tar.gz
$pkgname.initd
- default-config.patch
"
+case $CARCH in
+ ppc64le|riscv64)
+ makedepends="$makedepends lua5.1-dev"
+ export GOFLAGS="$GOFLAGS -tags=llua"
+ ;;
+ *)
+ makedepends="$makedepends luajit-dev"
+ ;;
+esac
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+prepare() {
+ default_prepare
+ go mod download
+
+ case $CARCH in
+ armhf|armv7|x86|s390x|riscv64)
+ # -race is not supported on these arches
+ sed -i '/go test/s/-race//' Makefile
+ esac
+}
+
build() {
make all
}
check() {
+ # is not supported when testing with -race
+ export GOFLAGS="${GOFLAGS/-buildmode=pie}"
+
make test
}
@@ -29,6 +59,7 @@ package() {
install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
}
-sha512sums="b49b4b388246fe26a82433fbffa7984eff7064acf004db57bca06912e432f848b157544b6b01236c8b593d79978d6b06ca15d9533e563d6e277626983cc5d425 heplify-server-1.27.tar.gz
-5c2c950e93bdbe5514be67e5012763883795d4ad3d83889d0fa360151b7eb860e9d4d00a47d188ab12722bc8db708cc557fbc3ea6dd912994e801758be62c02b heplify-server.initd
-56f1d859f3933390d3d88e5260eeb270ccf6999e124e526afd4294cc20fdd81a7cdcf91a5596b2105ad2317200852371652be8505355467f80ab0e30a12733f8 default-config.patch"
+sha512sums="
+3da594d16977ac967d2c52316f5634fbfb0a7464e44426eb1c8e55d0a47a3a4eea28964f12c53f4ac33deb88476816049544cf95973762ba99554ef368adea39 heplify-server-1.59.7.tar.gz
+72527dd11ee03923e9dbddf10929b3cb3b768d96aa33a7e04dae211d2198539f4d93303790bd2dcf8957c0fcc75afb45b03f6d2a40caabde616dc561e15c84ef heplify-server.initd
+"
diff --git a/testing/heplify-server/default-config.patch b/testing/heplify-server/default-config.patch
deleted file mode 100644
index c504d9d2637..00000000000
--- a/testing/heplify-server/default-config.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/example/homer7_config/heplify-server.toml b/example/homer7_config/heplify-server.toml
-index a7fa6ea..25a269b 100644
---- a/example/homer7_config/heplify-server.toml
-+++ b/example/homer7_config/heplify-server.toml
-@@ -15,8 +15,8 @@ PromTargetName = ""
- DBShema = "homer7"
- DBDriver = "postgres"
- DBAddr = "localhost:5432"
--DBUser = "postgres"
--DBPass = ""
-+DBUser = "homer_user"
-+DBPass = "homer_password"
- DBDataTable = "homer_data"
- DBConfTable = "homer_config"
- DBBulk = 200
-@@ -40,8 +40,8 @@ SIPHeader = []
- LogDbg = ""
- LogLvl = "info"
- LogStd = false
--LogSys = false
--Config = "./heplify-server.toml"
-+LogSys = true
-+Config = "/etc/homer/heplify-server.toml"
- ConfigHTTPAddr = ""
-
- # Examples:
-@@ -63,4 +63,4 @@ ConfigHTTPAddr = ""
- # ConfigHTTPAddr = "0.0.0.0:9876"
- # -------------------------------------
- # To hot reload PromTargetIP and PromTargetName run:
--# killall -HUP heplify-server
-\ No newline at end of file
-+# killall -HUP heplify-server
diff --git a/testing/heplify-server/heplify-server.initd b/testing/heplify-server/heplify-server.initd
index a7ac51e2019..3f31a3b7a40 100644
--- a/testing/heplify-server/heplify-server.initd
+++ b/testing/heplify-server/heplify-server.initd
@@ -1,9 +1,9 @@
#!/sbin/openrc-run
description="HEP Capture Server & Switch"
-supervisor=supervise-daemon
command=/usr/bin/heplify-server
command_args="-config /etc/homer/heplify-server.toml"
+command_background=yes
command_user=homer
command_group=homer
pidfile="/run/homer/${RC_SVCNAME}.pid"
@@ -20,7 +20,7 @@ start_pre() {
reload() {
ebegin "Reloading PromTargetIP and PromTargetName in ${RC_SVCNAME} configuration"
- ${supervisor} ${RC_SVCNAME} --signal HUP
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
eend $?
}
diff --git a/testing/heplify/APKBUILD b/testing/heplify/APKBUILD
index ab6be5f658c..02f3aaa65f9 100644
--- a/testing/heplify/APKBUILD
+++ b/testing/heplify/APKBUILD
@@ -1,24 +1,35 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=heplify
-pkgver=1.56
-pkgrel=2
+pkgver=1.66.2
+pkgrel=0
pkgdesc="Multi-Protocol Go HEP Capture Agent made Simple"
url="http://sipcapture.io"
-arch="all"
+arch="all !riscv64 !ppc64le" # FTBFS, luajit
license="AGPL-3.0-or-later"
-makedepends="go libpcap-dev linux-headers"
+makedepends="go libpcap-dev linux-headers luajit-dev"
subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sipcapture/heplify/archive/$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/sipcapture/heplify/archive/refs/tags/v$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
"
+# net required to download Go dependencies
+options="net !check" #several tests failing
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod download
+}
build() {
- make all
+ go build -ldflags "-s -w" -o heplify main.go
}
check() {
- make test
+ go test -v ./...
}
package() {
@@ -27,6 +38,13 @@ package() {
install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="d9eb0dec39c446a7a163b69221b32182733dc7bc1477e29e8e74bffddf961a1416c98d44a792cc9a3aae936002c7eb384e3128d96937736746829bf219f49555 heplify-1.56.tar.gz
-2f012f933f232f78362ee61332dcdec22e83fb70d1feb245f2342cb2dc668b8b53fcee10d73cda8920534370bb57b2884a4cfb77013fa7f584ab4f5a637a2d33 heplify.initd
-da89419e17acd25cca30af13cca1a9278283cbe258de30da747fafa41bd567e3337992a8f1773cdc2eb64848ec35c30a132f81a10dada5d4dae431ef29d391f0 heplify.confd"
+cleanup_srcdir() {
+ go clean -modcache
+ default_cleanup_srcdir
+}
+
+sha512sums="
+1ddc412c2a596e0b546681882dccf904d7b2958e71a3cc268dfdc75744f6c3917a811cfac4268bcc810b7c39fe63144940137acc0963756ebd6356e4fb3ed63a heplify-1.66.2.tar.gz
+0caa79fb124971bf68cd96336d127975ea8427962eed8d9e6fb68d4aa26ed635aa03746b6fcae4932a38c105beb6e267e96c7d41d495c799436cb91005405eee heplify.initd
+da89419e17acd25cca30af13cca1a9278283cbe258de30da747fafa41bd567e3337992a8f1773cdc2eb64848ec35c30a132f81a10dada5d4dae431ef29d391f0 heplify.confd
+"
diff --git a/testing/heplify/heplify.initd b/testing/heplify/heplify.initd
index c906f8c349d..8a9199748bc 100644
--- a/testing/heplify/heplify.initd
+++ b/testing/heplify/heplify.initd
@@ -1,9 +1,9 @@
#!/sbin/openrc-run
description="Multi-Protocol Go HEP Capture Agent"
-supervisor=supervise-daemon
command=/usr/bin/heplify
command_args=${CMD_OPTS:="-i lo"}
+command_background=yes
pidfile="/run/homer/${RC_SVCNAME}.pid"
depend() {
diff --git a/testing/herbe/APKBUILD b/testing/herbe/APKBUILD
new file mode 100644
index 00000000000..3e95a566fbf
--- /dev/null
+++ b/testing/herbe/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=herbe
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Daemon-less notifications without D-Bus"
+url="https://github.com/dudik/herbe"
+arch="all"
+license="MIT"
+makedepends="libxft-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dudik/herbe/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ make herbe
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+}
+
+sha512sums="
+3f49de25fd92194d1354054c207616343d9c21a9d82c6c4e3316ebc5228c0bd90650621438d14cd4730135f328c0438ef054a2b6843f3bd4d15f9cb47a22df12 herbe-1.0.0.tar.gz
+"
diff --git a/testing/hex/APKBUILD b/testing/hex/APKBUILD
new file mode 100644
index 00000000000..f05c53ec96d
--- /dev/null
+++ b/testing/hex/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=hex
+pkgver=0.6.0
+pkgrel=0
+pkgdesc="futuristic take on hexdump"
+url="https://github.com/sitkevij/hex"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust/cargo
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sitkevij/hex/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ cargo auditable install --locked --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="
+d5d787a34f1602c9ee1543844b59da83f81d70c1da16397b09ea96205e96f29fffd44a38d5a7f5655cf38626f3d3c73539afcde23d81e8f550758746f9dfc444 hex-0.6.0.tar.gz
+"
diff --git a/testing/hexdiff/APKBUILD b/testing/hexdiff/APKBUILD
new file mode 100644
index 00000000000..a505846939e
--- /dev/null
+++ b/testing/hexdiff/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=hexdiff
+pkgver=0.0.53
+pkgrel=2
+pkgdesc="ncurses hex editor with diff mode for binary file comparison"
+url="http://tboudet.free.fr/hexdiff/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="ncurses-dev"
+options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::http://tboudet.free.fr/hexdiff/hexdiff.tar.gz"
+subpackages="$pkgname-doc"
+builddir="$srcdir/HexDiff"
+
+build() {
+ make
+}
+
+package() {
+ # broken 'make install'
+ install -Dm755 hexdiff -t $pkgdir/usr/bin
+ install -Dm644 hexdiff.1 -t $pkgdir/usr/share/man/man1
+ install -Dm644 hexdiff.rc -t "$pkgdir"/etc/hexdiff
+}
+
+sha512sums="
+3860aa286282604c2dc44fbb32329f28761cf16339dfa3c9f537e4fc2ec31742d59d19bc52935de979bb7397c7ee331846e528d3d2efe10e93ddc5d838fd3ce7 hexdiff-0.0.53.tar.gz
+"
diff --git a/testing/hexedit/APKBUILD b/testing/hexedit/APKBUILD
new file mode 100644
index 00000000000..b44fb9f7b03
--- /dev/null
+++ b/testing/hexedit/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Rdbo <rdbodev@gmail.com>
+# Maintainer: Rdbo <rdbodev@gmail.com>
+pkgname=hexedit
+pkgver=1.6_git20230905
+pkgrel=0
+pkgdesc="View and edit files in hexadecimal or in ASCII"
+url="https://github.com/pixel/hexedit"
+arch="all"
+license="GPL-2.0-only"
+makedepends="autoconf ncurses-dev"
+_commit="3f0d6adf1636b4d7e01e014633eae8fdcdcb9570"
+source="https://github.com/pixel/hexedit/archive/$_commit/hexedit-$_commit.tar.gz"
+options="!check" # the program does not have testing capabilities
+builddir="$srcdir/hexedit-$_commit"
+subpackages="$pkgname-doc"
+
+prepare() {
+ default_prepare
+
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5a4d6482a8063b3784e51e9f413caac41ad70b650b1473968e4b7f549b357e061aa23044451f482a354f995866c403c02a61d88a562fd3dda2b7bc6cb9187677 hexedit-3f0d6adf1636b4d7e01e014633eae8fdcdcb9570.tar.gz
+"
diff --git a/testing/hexer/APKBUILD b/testing/hexer/APKBUILD
index 0fa7b803eeb..39e0fa42465 100644
--- a/testing/hexer/APKBUILD
+++ b/testing/hexer/APKBUILD
@@ -2,16 +2,15 @@
# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
pkgname=hexer
pkgver=1.4.0
-pkgrel=5
+pkgrel=14
pkgdesc="LAS and OGR hexagonal density and boundary surface generation"
-url="https://github.com/hobu/hexer"
-arch="all !s390x !x86 !armhf !armv7 !mips !mips64" # gdal availability
+url="https://github.com/hobuinc/hexer"
+arch="all"
license="LGPL-2.0-or-later"
options="!check"
-depends="gdal"
makedepends="cmake gdal-dev"
subpackages="$pkgname-dev"
-source="hexer-$pkgver.tar.gz::https://github.com/hobu/hexer/archive/$pkgver.tar.gz
+source="hexer-$pkgver.tar.gz::https://github.com/hobuinc/hexer/archive/$pkgver.tar.gz
10-missing-includes.patch
20-compile-test-for-execinfo.patch"
@@ -28,6 +27,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="4db94af7fe0a2cc3cd26202c4ec88fadd88408c92d14e11ac117af51ee267aa87cd82aa18b29867f318d272f644be60a826e7fb3c72908baba4124499f39579c hexer-1.4.0.tar.gz
+sha512sums="
+4db94af7fe0a2cc3cd26202c4ec88fadd88408c92d14e11ac117af51ee267aa87cd82aa18b29867f318d272f644be60a826e7fb3c72908baba4124499f39579c hexer-1.4.0.tar.gz
971434a5c7b817296ecf7fa44222c0b7db909bef0c8bf130daef6b9db0ee68bab7aa8ef59aae1e6eda1daa801e4fbe2a5a88f22083d4c885de5a1e05310f9a0a 10-missing-includes.patch
-9fd03681856e42ac5747b98a45542d24289bcd687c377035382835692df4ba23773bc9601d1b5b2c4e0a345aa8dac8b0c80a95a19f318b27b82a8bbfc87509cc 20-compile-test-for-execinfo.patch"
+9fd03681856e42ac5747b98a45542d24289bcd687c377035382835692df4ba23773bc9601d1b5b2c4e0a345aa8dac8b0c80a95a19f318b27b82a8bbfc87509cc 20-compile-test-for-execinfo.patch
+"
diff --git a/testing/hexinject/APKBUILD b/testing/hexinject/APKBUILD
deleted file mode 100644
index 7572fa90566..00000000000
--- a/testing/hexinject/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Arch3y <arch3y@riseup.net>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=hexinject
-pkgver=1.6
-pkgrel=0
-pkgdesc="A very versatile packet injector and sniffer"
-url="http://hexinject.sourceforge.net/"
-arch="all"
-license="BSD"
-depends=""
-makedepends="libpcap-dev"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
- fix-build.patch"
-options="!check"
-builddir="$srcdir/$pkgname"
-
-build() {
- cd "$builddir"
- make
-}
-
-package() {
- cd "$builddir"
- install -Dm755 hexinject $pkgdir/usr/bin/hexinject
- install -Dm755 prettypacket $pkgdir/usr/bin/prettypacket
- install -Dm755 hex2raw $pkgdir/usr/bin/hex2raw
-}
-
-sha512sums="7432122a7ca42b7ac066cc55daec2d4a656b08e0f390db1a49f626181080d07687026d04a150573e3341e4e76f87a20b6466deddcc9d022e7d66fadcb8dac1ad hexinject-1.6.tar.gz
-7ab2e5a576e23bb5bfdefc8d9b9a432008d3e75bf4693cab6b0f20661cdf9286487b9c3294b9dfe207d134b8631e2083ac638f0821edc16be1510b8cc4a206aa fix-build.patch"
diff --git a/testing/hexinject/fix-build.patch b/testing/hexinject/fix-build.patch
deleted file mode 100644
index cce8b1e4f3b..00000000000
--- a/testing/hexinject/fix-build.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- hexinject/Makefile.orig 2017-08-29 07:29:31.430661450 +0000
-+++ hexinject/Makefile 2017-08-29 07:29:53.634411237 +0000
-@@ -3,9 +3,9 @@
- LDFLAGS = -lpcap
-
- all:
-- $(CC) $(CFLAGS) $(LDFLAGS) -o hexinject hexinject.c
-- $(CC) $(CFLAGS) $(LDFLAGS) -o prettypacket prettypacket.c
-- $(CC) $(CFLAGS) $(LDFLAGS) -o hex2raw hex2raw.c
-+ $(CC) $(CFLAGS) -o hexinject hexinject.c $(LDFLAGS)
-+ $(CC) $(CFLAGS) -o prettypacket prettypacket.c $(LDFLAGS)
-+ $(CC) $(CFLAGS) -o hex2raw hex2raw.c $(LDFLAGS)
-
- clean:
- rm -f hexinject prettypacket hex2raw *~
diff --git a/testing/hfsprogs/APKBUILD b/testing/hfsprogs/APKBUILD
deleted file mode 100644
index 5a0b45fb374..00000000000
--- a/testing/hfsprogs/APKBUILD
+++ /dev/null
@@ -1,68 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=hfsprogs
-_pkgname=diskdev_cmds
-pkgver=540.1_p3
-_pkgver=${pkgver/_p/.linux}
-pkgrel=4
-pkgdesc="Tools to create/check Apple HFS+ filesystems"
-# We use modified version provided by Fedora's dev, not directly from Apple.
-url="https://src.fedoraproject.org/rpms/hfsplus-tools"
-arch="all !mips !mips64" # broken on soft-float
-license="APSL-2.0"
-makedepends="clang libbsd-dev openssl-dev linux-headers util-linux-dev"
-provides="$_pkgname=$pkgver-r$pkgrel"
-subpackages="$pkgname-doc"
-# Tarball made by Matthew Garrett (mjg59).
-# https://src.fedoraproject.org/rpms/hfsplus-tools/blob/f27/f/hfsplus-tools.spec
-source="http://cavan.codon.org.uk/~mjg59/$_pkgname/$_pkgname-$_pkgver.tar.gz
- APSL-2.0.txt
- fix-stdarg.patch
- musl-compat.patch"
-builddir="$srcdir/$_pkgname-$_pkgver"
-
-prepare() {
- default_prepare
- cd "$builddir"
-
- sed -i 's/[F|f]sck_hfs/fsck.hfsplus/g' fsck_hfs.tproj/fsck_hfs.8
- sed -i 's/[N|n]ewfs_hfs/mkfs.hfsplus/g' newfs_hfs.tproj/newfs_hfs.8
-
- # Remove errant execute bits.
- find . -type f -name '*.[ch]' -exec chmod -c -x {} +
-}
-
-build() {
- cd "$builddir"
-
- make
-}
-
-check() {
- cd "$builddir"
-
- ./fsck_hfs.tproj/fsck_hfs 2>&1 | grep 'usage: fsck_hfs'
- ./newfs_hfs.tproj/newfs_hfs 2>&1 | grep 'usage: newfs_hfs'
-}
-
-package() {
- cd "$builddir"
-
- install -D -m 755 fsck_hfs.tproj/fsck_hfs "$pkgdir"/usr/sbin/fsck.hfs
- install -D -m 755 newfs_hfs.tproj/newfs_hfs "$pkgdir"/usr/sbin/mkfs.hfsplus
- ln -s fsck.hfs "$pkgdir"/usr/sbin/fsck.hfsplus
-
- install -D -m 644 fsck_hfs.tproj/fsck_hfs.8 \
- "$pkgdir"/usr/share/man/man8/fsck.hfsplus.8
- install -D -m 644 newfs_hfs.tproj/newfs_hfs.8 \
- "$pkgdir"/usr/share/man/man8/mkfs.hfsplus.8
- ln -s fsck.hfs.8 "$pkgdir"/usr/share/man/man8/fsck.hfs.8
-
- install -D -m 644 "$srcdir"/APSL-2.0.txt \
- "$pkgdir"/usr/share/licenses/$pkgname/APSL-2.0.txt
-}
-
-sha512sums="3d88fcdec4bfd32a75b6dc75899748d8585371b641be86cfdfe54ade738a0612662dd008c1506c7e216325303217d0b5f188a9c4fdccfb48b2ce50333f212d9e diskdev_cmds-540.1.linux3.tar.gz
-76a53cc22e92e12d6255fc6ee0b9b65e03ef0d590e8bdbf06e9861a5f024f25c5344ce8426ca8f81d8544d86004be02f806ad60517165a9f6d9dfd6f31790c21 APSL-2.0.txt
-cff25de690f5ecc418380e5cbda3615d38ef9583ace60be9b7696c50e46bc35a29855b216ddb4daae79ff5b40f66ffbc03f613ab0ae1935ee9df6e69caed2e0b fix-stdarg.patch
-34c73b0b57c8e8fa64abf34a9396b6dc218b1a1f06fec98fd52e77c81421cff249f4a65d5f26e692b1cb5e2424a871ecbf5b35eab5d3509506f6710406ff7577 musl-compat.patch"
diff --git a/testing/hfsprogs/APSL-2.0.txt b/testing/hfsprogs/APSL-2.0.txt
deleted file mode 100644
index 7107e731cab..00000000000
--- a/testing/hfsprogs/APSL-2.0.txt
+++ /dev/null
@@ -1,366 +0,0 @@
-Version 2.0 - August 6, 2003
-
-Please read this License carefully before downloading this software.
-By downloading or using this software, you are agreeing to be bound by
-the terms of this License. If you do not or cannot agree to the terms
-of this License, please do not download or use the software.
-
-1. General; Definitions. This License applies to any program or other
-work which Apple Computer, Inc. ("Apple") makes publicly available and
-which contains a notice placed by Apple identifying such program or
-work as "Original Code" and stating that it is subject to the terms of
-this Apple Public Source License version 2.0 ("License"). As used in
-this License:
-
-1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is
-the grantor of rights, (i) claims of patents that are now or hereafter
-acquired, owned by or assigned to Apple and (ii) that cover subject
-matter contained in the Original Code, but only to the extent
-necessary to use, reproduce and/or distribute the Original Code
-without infringement; and (b) in the case where You are the grantor of
-rights, (i) claims of patents that are now or hereafter acquired,
-owned by or assigned to You and (ii) that cover subject matter in Your
-Modifications, taken alone or in combination with Original Code.
-
-1.2 "Contributor" means any person or entity that creates or
-contributes to the creation of Modifications.
-
-1.3 "Covered Code" means the Original Code, Modifications, the
-combination of Original Code and any Modifications, and/or any
-respective portions thereof.
-
-1.4 "Externally Deploy" means: (a) to sublicense, distribute or
-otherwise make Covered Code available, directly or indirectly, to
-anyone other than You; and/or (b) to use Covered Code, alone or as
-part of a Larger Work, in any way to provide a service, including but
-not limited to delivery of content, through electronic communication
-with a client other than You.
-
-1.5 "Larger Work" means a work which combines Covered Code or portions
-thereof with code not governed by the terms of this License.
-
-1.6 "Modifications" mean any addition to, deletion from, and/or change
-to, the substance and/or structure of the Original Code, any previous
-Modifications, the combination of Original Code and any previous
-Modifications, and/or any respective portions thereof. When code is
-released as a series of files, a Modification is: (a) any addition to
-or deletion from the contents of a file containing Covered Code;
-and/or (b) any new file or other representation of computer program
-statements that contains any part of Covered Code.
-
-1.7 "Original Code" means (a) the Source Code of a program or other
-work as originally made available by Apple under this License,
-including the Source Code of any updates or upgrades to such programs
-or works made available by Apple under this License, and that has been
-expressly identified by Apple as such in the header file(s) of such
-work; and (b) the object code compiled from such Source Code and
-originally made available by Apple under this License.
-
-1.8 "Source Code" means the human readable form of a program or other
-work that is suitable for making modifications to it, including all
-modules it contains, plus any associated interface definition files,
-scripts used to control compilation and installation of an executable
-(object code).
-
-1.9 "You" or "Your" means an individual or a legal entity exercising
-rights under this License. For legal entities, "You" or "Your"
-includes any entity which controls, is controlled by, or is under
-common control with, You, where "control" means (a) the power, direct
-or indirect, to cause the direction or management of such entity,
-whether by contract or otherwise, or (b) ownership of fifty percent
-(50%) or more of the outstanding shares or beneficial ownership of
-such entity.
-
-2. Permitted Uses; Conditions & Restrictions. Subject to the terms
-and conditions of this License, Apple hereby grants You, effective on
-the date You accept this License and download the Original Code, a
-world-wide, royalty-free, non-exclusive license, to the extent of
-Apple's Applicable Patent Rights and copyrights covering the Original
-Code, to do the following:
-
-2.1 Unmodified Code. You may use, reproduce, display, perform,
-internally distribute within Your organization, and Externally Deploy
-verbatim, unmodified copies of the Original Code, for commercial or
-non-commercial purposes, provided that in each instance:
-
-(a) You must retain and reproduce in all copies of Original Code the
-copyright and other proprietary notices and disclaimers of Apple as
-they appear in the Original Code, and keep intact all notices in the
-Original Code that refer to this License; and
-
-(b) You must include a copy of this License with every copy of Source
-Code of Covered Code and documentation You distribute or Externally
-Deploy, and You may not offer or impose any terms on such Source Code
-that alter or restrict this License or the recipients' rights
-hereunder, except as permitted under Section 6.
-
-2.2 Modified Code. You may modify Covered Code and use, reproduce,
-display, perform, internally distribute within Your organization, and
-Externally Deploy Your Modifications and Covered Code, for commercial
-or non-commercial purposes, provided that in each instance You also
-meet all of these conditions:
-
-(a) You must satisfy all the conditions of Section 2.1 with respect to
-the Source Code of the Covered Code;
-
-(b) You must duplicate, to the extent it does not already exist, the
-notice in Exhibit A in each file of the Source Code of all Your
-Modifications, and cause the modified files to carry prominent notices
-stating that You changed the files and the date of any change; and
-
-(c) If You Externally Deploy Your Modifications, You must make
-Source Code of all Your Externally Deployed Modifications either
-available to those to whom You have Externally Deployed Your
-Modifications, or publicly available. Source Code of Your Externally
-Deployed Modifications must be released under the terms set forth in
-this License, including the license grants set forth in Section 3
-below, for as long as you Externally Deploy the Covered Code or twelve
-(12) months from the date of initial External Deployment, whichever is
-longer. You should preferably distribute the Source Code of Your
-Externally Deployed Modifications electronically (e.g. download from a
-web site).
-
-2.3 Distribution of Executable Versions. In addition, if You
-Externally Deploy Covered Code (Original Code and/or Modifications) in
-object code, executable form only, You must include a prominent
-notice, in the code itself as well as in related documentation,
-stating that Source Code of the Covered Code is available under the
-terms of this License with information on how and where to obtain such
-Source Code.
-
-2.4 Third Party Rights. You expressly acknowledge and agree that
-although Apple and each Contributor grants the licenses to their
-respective portions of the Covered Code set forth herein, no
-assurances are provided by Apple or any Contributor that the Covered
-Code does not infringe the patent or other intellectual property
-rights of any other entity. Apple and each Contributor disclaim any
-liability to You for claims brought by any other entity based on
-infringement of intellectual property rights or otherwise. As a
-condition to exercising the rights and licenses granted hereunder, You
-hereby assume sole responsibility to secure any other intellectual
-property rights needed, if any. For example, if a third party patent
-license is required to allow You to distribute the Covered Code, it is
-Your responsibility to acquire that license before distributing the
-Covered Code.
-
-3. Your Grants. In consideration of, and as a condition to, the
-licenses granted to You under this License, You hereby grant to any
-person or entity receiving or distributing Covered Code under this
-License a non-exclusive, royalty-free, perpetual, irrevocable license,
-under Your Applicable Patent Rights and other intellectual property
-rights (other than patent) owned or controlled by You, to use,
-reproduce, display, perform, modify, sublicense, distribute and
-Externally Deploy Your Modifications of the same scope and extent as
-Apple's licenses under Sections 2.1 and 2.2 above.
-
-4. Larger Works. You may create a Larger Work by combining Covered
-Code with other code not governed by the terms of this License and
-distribute the Larger Work as a single product. In each such instance,
-You must make sure the requirements of this License are fulfilled for
-the Covered Code or any portion thereof.
-
-5. Limitations on Patent License. Except as expressly stated in
-Section 2, no other patent rights, express or implied, are granted by
-Apple herein. Modifications and/or Larger Works may require additional
-patent licenses from Apple which Apple may grant in its sole
-discretion.
-
-6. Additional Terms. You may choose to offer, and to charge a fee for,
-warranty, support, indemnity or liability obligations and/or other
-rights consistent with the scope of the license granted herein
-("Additional Terms") to one or more recipients of Covered Code.
-However, You may do so only on Your own behalf and as Your sole
-responsibility, and not on behalf of Apple or any Contributor. You
-must obtain the recipient's agreement that any such Additional Terms
-are offered by You alone, and You hereby agree to indemnify, defend
-and hold Apple and every Contributor harmless for any liability
-incurred by or claims asserted against Apple or such Contributor by
-reason of any such Additional Terms.
-
-7. Versions of the License. Apple may publish revised and/or new
-versions of this License from time to time. Each version will be given
-a distinguishing version number. Once Original Code has been published
-under a particular version of this License, You may continue to use it
-under the terms of that version. You may also choose to use such
-Original Code under the terms of any subsequent version of this
-License published by Apple. No one other than Apple has the right to
-modify the terms applicable to Covered Code created under this
-License.
-
-8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in
-part pre-release, untested, or not fully tested works. The Covered
-Code may contain errors that could cause failures or loss of data, and
-may be incomplete or contain inaccuracies. You expressly acknowledge
-and agree that use of the Covered Code, or any portion thereof, is at
-Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND
-WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND
-APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE
-PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM
-ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF
-MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR
-PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD
-PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST
-INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE
-FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,
-THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR
-ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO
-ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE
-AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.
-You acknowledge that the Covered Code is not intended for use in the
-operation of nuclear facilities, aircraft navigation, communication
-systems, or air traffic control machines in which case the failure of
-the Covered Code could lead to death, personal injury, or severe
-physical or environmental damage.
-
-9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO
-EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING
-TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR
-ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,
-TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF
-APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY
-REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF
-INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY
-TO YOU. In no event shall Apple's total liability to You for all
-damages (other than as may be required by applicable law) under this
-License exceed the amount of fifty dollars ($50.00).
-
-10. Trademarks. This License does not grant any rights to use the
-trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",
-"QuickTime", "QuickTime Streaming Server" or any other trademarks,
-service marks, logos or trade names belonging to Apple (collectively
-"Apple Marks") or to any trademark, service mark, logo or trade name
-belonging to any Contributor. You agree not to use any Apple Marks in
-or as part of the name of products derived from the Original Code or
-to endorse or promote products derived from the Original Code other
-than as expressly permitted by and in strict compliance at all times
-with Apple's third party trademark usage guidelines which are posted
-at http://www.apple.com/legal/guidelinesfor3rdparties.html.
-
-11. Ownership. Subject to the licenses granted under this License,
-each Contributor retains all rights, title and interest in and to any
-Modifications made by such Contributor. Apple retains all rights,
-title and interest in and to the Original Code and any Modifications
-made by or on behalf of Apple ("Apple Modifications"), and such Apple
-Modifications will not be automatically subject to this License. Apple
-may, at its sole discretion, choose to license such Apple
-Modifications under this License, or on different terms from those
-contained in this License or may choose not to license them at all.
-
-12. Termination.
-
-12.1 Termination. This License and the rights granted hereunder will
-terminate:
-
-(a) automatically without notice from Apple if You fail to comply with
-any term(s) of this License and fail to cure such breach within 30
-days of becoming aware of such breach;
-
-(b) immediately in the event of the circumstances described in Section
-13.5(b); or
-
-(c) automatically without notice from Apple if You, at any time during
-the term of this License, commence an action for patent infringement
-against Apple; provided that Apple did not first commence
-an action for patent infringement against You in that instance.
-
-12.2 Effect of Termination. Upon termination, You agree to immediately
-stop any further use, reproduction, modification, sublicensing and
-distribution of the Covered Code. All sublicenses to the Covered Code
-which have been properly granted prior to termination shall survive
-any termination of this License. Provisions which, by their nature,
-should remain in effect beyond the termination of this License shall
-survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,
-12.2 and 13. No party will be liable to any other for compensation,
-indemnity or damages of any sort solely as a result of terminating
-this License in accordance with its terms, and termination of this
-License will be without prejudice to any other right or remedy of
-any party.
-
-13. Miscellaneous.
-
-13.1 Government End Users. The Covered Code is a "commercial item" as
-defined in FAR 2.101. Government software and technical data rights in
-the Covered Code include only those rights customarily provided to the
-public as defined in this License. This customary commercial license
-in technical data and software is provided in accordance with FAR
-12.211 (Technical Data) and 12.212 (Computer Software) and, for
-Department of Defense purchases, DFAR 252.227-7015 (Technical Data --
-Commercial Items) and 227.7202-3 (Rights in Commercial Computer
-Software or Computer Software Documentation). Accordingly, all U.S.
-Government End Users acquire Covered Code with only those rights set
-forth herein.
-
-13.2 Relationship of Parties. This License will not be construed as
-creating an agency, partnership, joint venture or any other form of
-legal association between or among You, Apple or any Contributor, and
-You will not represent to the contrary, whether expressly, by
-implication, appearance or otherwise.
-
-13.3 Independent Development. Nothing in this License will impair
-Apple's right to acquire, license, develop, have others develop for
-it, market and/or distribute technology or products that perform the
-same or similar functions as, or otherwise compete with,
-Modifications, Larger Works, technology or products that You may
-develop, produce, market or distribute.
-
-13.4 Waiver; Construction. Failure by Apple or any Contributor to
-enforce any provision of this License will not be deemed a waiver of
-future enforcement of that or any other provision. Any law or
-regulation which provides that the language of a contract shall be
-construed against the drafter will not apply to this License.
-
-13.5 Severability. (a) If for any reason a court of competent
-jurisdiction finds any provision of this License, or portion thereof,
-to be unenforceable, that provision of the License will be enforced to
-the maximum extent permissible so as to effect the economic benefits
-and intent of the parties, and the remainder of this License will
-continue in full force and effect. (b) Notwithstanding the foregoing,
-if applicable law prohibits or restricts You from fully and/or
-specifically complying with Sections 2 and/or 3 or prevents the
-enforceability of either of those Sections, this License will
-immediately terminate and You must immediately discontinue any use of
-the Covered Code and destroy all copies of it that are in your
-possession or control.
-
-13.6 Dispute Resolution. Any litigation or other dispute resolution
-between You and Apple relating to this License shall take place in the
-Northern District of California, and You and Apple hereby consent to
-the personal jurisdiction of, and venue in, the state and federal
-courts within that District with respect to this License. The
-application of the United Nations Convention on Contracts for the
-International Sale of Goods is expressly excluded.
-
-13.7 Entire Agreement; Governing Law. This License constitutes the
-entire agreement between the parties with respect to the subject
-matter hereof. This License shall be governed by the laws of the
-United States and the State of California, except that body of
-California law concerning conflicts of law.
-
-Where You are located in the province of Quebec, Canada, the following
-clause applies: The parties hereby confirm that they have requested
-that this License and all related documents be drafted in English. Les
-parties ont exige que le present contrat et tous les documents
-connexes soient rediges en anglais.
-
-EXHIBIT A.
-
-"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
-Reserved.
-
-This file contains Original Code and/or Modifications of Original Code
-as defined in and that are subject to the Apple Public Source License
-Version 2.0 (the 'License'). You may not use this file except in
-compliance with the License. Please obtain a copy of the License at
-http://www.opensource.apple.com/apsl/ and read it before using this
-file.
-
-The Original Code and all software distributed under the License are
-distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
-EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
-INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
-Please see the License for the specific language governing rights and
-limitations under the License."
diff --git a/testing/hfsprogs/fix-stdarg.patch b/testing/hfsprogs/fix-stdarg.patch
deleted file mode 100644
index ecd8fe84a48..00000000000
--- a/testing/hfsprogs/fix-stdarg.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/hfsplus-tools/blob/f27/f/hfsplus-tools-learn-to-stdarg.patch
-
-diff -up diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c.jx diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c
---- diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c.jx 2012-02-01 12:17:19.000000000 -0500
-+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c 2014-06-18 13:44:45.125620007 -0400
-@@ -296,11 +296,8 @@ static volatile int keep_going = 1;
- #undef printf
-
- // prototype
--void print_to_mem(int type, const char *fmt, const char *str, va_list ap);
--
--#define DO_VPRINT 1 // types for print_to_mem
--#define DO_STR 2
--
-+void vprint_to_mem(const char *fmt, va_list ap);
-+void print_to_mem(const char *fmt, ...);
-
- static void *
- fsck_printing_thread(void *arg)
-@@ -547,8 +544,8 @@ setup_logging(void)
- cur_in_mem = in_mem_log;
-
- t = time(NULL);
-- print_to_mem(DO_STR, "\n%s: ", cdevname ? cdevname : "UNKNOWN-DEV", NULL);
-- print_to_mem(DO_STR, "fsck_hfs run at %s", ctime(&t), NULL);
-+ print_to_mem("\n%s: ", cdevname ? cdevname : "UNKNOWN-DEV");
-+ print_to_mem("fsck_hfs run at %s", ctime(&t));
-
- if (live_fsck && log_file) {
- pthread_cond_init(&mem_buf_cond, NULL);
-@@ -576,26 +573,20 @@ setup_logging(void)
-
-
- void
--print_to_mem(int type, const char *fmt, const char *str, va_list ap)
-+vprint_to_mem(const char *fmt, va_list ap)
- {
- int ret;
- size_t size_remaining;
- va_list ap_copy;
-
-- if (type == DO_VPRINT) {
-- va_copy(ap_copy, ap);
-- }
-+ va_copy(ap_copy, ap);
-
- if (live_fsck) {
- pthread_mutex_lock(&mem_buf_lock);
- }
-
- size_remaining = in_mem_size - (ptrdiff_t)(cur_in_mem - in_mem_log);
-- if (type == DO_VPRINT) {
-- ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap);
-- } else {
-- ret = snprintf(cur_in_mem, size_remaining, fmt, str);
-- }
-+ ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap);
- if (ret > size_remaining) {
- char *new_log;
- size_t amt;
-@@ -619,11 +610,7 @@ print_to_mem(int type, const char *fmt,
- cur_in_mem = new_log + (cur_in_mem - in_mem_log);
- in_mem_log = new_log;
- size_remaining = in_mem_size - (ptrdiff_t)(cur_in_mem - new_log);
-- if (type == DO_VPRINT) {
-- ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap_copy);
-- } else {
-- ret = snprintf(cur_in_mem, size_remaining, fmt, str);
-- }
-+ ret = vsnprintf(cur_in_mem, size_remaining, fmt, ap_copy);
- if (ret <= size_remaining) {
- cur_in_mem += ret;
- }
-@@ -636,11 +623,18 @@ print_to_mem(int type, const char *fmt,
- pthread_mutex_unlock(&mem_buf_lock);
- }
- done:
-- if (type == DO_VPRINT) {
-- va_end(ap_copy);
-- }
-+ va_end(ap_copy);
- }
-
-+void
-+print_to_mem(const char *fmt, ...)
-+{
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ vprint_to_mem(fmt, ap);
-+ va_end(ap);
-+}
-
- static int need_prefix=1;
-
-@@ -662,7 +656,7 @@ static int need_prefix=1;
- LOG_PREFIX \
- vfprintf(log_file, fmt, ap); \
- } else { \
-- print_to_mem(DO_VPRINT, fmt, NULL, ap); \
-+ vprint_to_mem(fmt, ap); \
- }
-
- #define FLOG(fmt, str) \
-@@ -670,7 +664,7 @@ static int need_prefix=1;
- LOG_PREFIX; \
- fprintf(log_file, fmt, str); \
- } else { \
-- print_to_mem(DO_STR, fmt, str, NULL); \
-+ print_to_mem(fmt, str); \
- }
-
-
-@@ -800,7 +794,7 @@ vplog(const char *fmt, va_list ap)
- LOG_PREFIX;
- vfprintf(log_file, fmt, ap);
- } else {
-- print_to_mem(DO_VPRINT, fmt, NULL, ap);
-+ vprint_to_mem(fmt, ap);
- }
- }
-
diff --git a/testing/hfsprogs/musl-compat.patch b/testing/hfsprogs/musl-compat.patch
deleted file mode 100644
index 345bd24d69a..00000000000
--- a/testing/hfsprogs/musl-compat.patch
+++ /dev/null
@@ -1,136 +0,0 @@
---- diskdev_cmds-540.1.linux3.orig/fsck_hfs.tproj/dfalib/Scavenger.h
-+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/dfalib/Scavenger.h
-@@ -48,7 +48,6 @@
- #endif
- #include <sys/errno.h>
- #include <sys/param.h>
--#include <sys/sysctl.h>
- #include <sys/mount.h>
- #include <hfs/hfs_mount.h>
-
---- diskdev_cmds-540.1.linux3.orig/fsck_hfs.tproj/fsck_hfs.c
-+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/fsck_hfs.c
-@@ -30,7 +30,6 @@
- #include <sys/ioctl.h>
- #if !LINUX
- #include <sys/disk.h>
--#include <sys/sysctl.h>
- #include <setjmp.h>
- #endif
- #include <hfs/hfs_mount.h>
---- diskdev_cmds-540.1.linux3.orig/newfs_hfs.tproj/makehfs.c
-+++ diskdev_cmds-540.1.linux3/newfs_hfs.tproj/makehfs.c
-@@ -38,7 +38,6 @@
- #endif
- #include <sys/errno.h>
- #include <sys/stat.h>
--#include <sys/sysctl.h>
- #if !LINUX
- #include <sys/vmmeter.h>
- #endif
---- a/fsck_hfs.tproj/utilities.c
-+++ b/fsck_hfs.tproj/utilities.c
-@@ -70,7 +70,6 @@
- #include <string.h>
- #include <unistd.h>
- #include <stdlib.h>
--#include <sys/sysctl.h>
-
- #include "fsck_hfs.h"
-
---- diskdev_cmds-540.1.linux3.orig/fsck_hfs.tproj/dfalib/Scavenger.h
-+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/dfalib/Scavenger.h
-@@ -46,7 +46,7 @@
- #include <sys/kauth.h>
- #include <sys/syslimits.h>
- #endif
--#include <sys/errno.h>
-+#include <errno.h>
- #include <sys/param.h>
- #include <sys/mount.h>
- #include <hfs/hfs_mount.h>
---- diskdev_cmds-540.1.linux3.orig/fsck_hfs.tproj/utilities.c
-+++ diskdev_cmds-540.1.linux3/fsck_hfs.tproj/utilities.c
-@@ -55,7 +55,7 @@
- #include <stddef.h>
- #include <sys/types.h>
- #include <sys/stat.h>
--#include <sys/errno.h>
-+#include <errno.h>
- #if LINUX
- #include <limits.h>
- #include <signal.h>
---- diskdev_cmds-540.1.linux3.orig/newfs_hfs.tproj/makehfs.c
-+++ diskdev_cmds-540.1.linux3/newfs_hfs.tproj/makehfs.c
-@@ -36,7 +36,7 @@
- #include <time.h>
- #include "missing.h"
- #endif
--#include <sys/errno.h>
-+#include <errno.h>
- #include <sys/stat.h>
- #if !LINUX
- #include <sys/vmmeter.h>
---- a/fsck_hfs.tproj/cache.h
-+++ b/fsck_hfs.tproj/cache.h
-@@ -29,6 +29,7 @@
- #ifndef _CACHE_H_
- #define _CACHE_H_
- #include <stdint.h>
-+#include <sys/types.h>
-
- /* Different values for initializing cache */
- enum {
---- a/newfs_hfs.tproj/makehfs.c
-+++ b/newfs_hfs.tproj/makehfs.c
-@@ -41,6 +41,7 @@
- #if !LINUX
- #include <sys/vmmeter.h>
- #endif
-+#include <sys/cdefs.h>
-
- #include <err.h>
- #include <errno.h>
---- a/newfs_hfs.tproj/newfs_hfs.c
-+++ b/newfs_hfs.tproj/newfs_hfs.c
-@@ -42,6 +42,7 @@
- #if LINUX
- #include <time.h>
- #endif
-+#include <sys/cdefs.h>
-
- #if !LINUX
- #include <IOKit/storage/IOMediaBSDClient.h>
---- a/fsck_hfs.tproj/fsck_hfs.h
-+++ b/fsck_hfs.tproj/fsck_hfs.h
-@@ -22,6 +22,7 @@
- */
-
- #include "cache.h"
-+#include <sys/cdefs.h>
-
-
- const extern char *cdevname; /* name of device being checked */
---- a/fsck_hfs.tproj/utilities.c
-+++ b/fsck_hfs.tproj/utilities.c
-@@ -785,7 +785,7 @@
-
- if (!live_fsck) {
- /* copy va_list as it will be used again later */
-- __va_copy(ap_stdout, ap);
-+ va_copy(ap_stdout, ap);
- vfprintf(stdout, fmt, ap_stdout);
- }
-
---- a/fsck_hfs.tproj/fsck_messages.c
-+++ b/fsck_hfs.tproj/fsck_messages.c
-@@ -85,7 +85,7 @@
-
- if (c == NULL)
- return;
-- __va_copy(ap2, ap); // Just in case we need it
-+ va_copy(ap2, ap); // Just in case we need it
- length = vsnprintf(buf, BUFSIZ, fmt, ap);
- if (length > BUFSIZ) {
- // We need to allocate space for it
-
diff --git a/testing/hfst/APKBUILD b/testing/hfst/APKBUILD
index 82a436a1b08..d727bce8c20 100644
--- a/testing/hfst/APKBUILD
+++ b/testing/hfst/APKBUILD
@@ -2,16 +2,23 @@
# Contributor: Frankie Robertson <frankie@robertson.name>
# Maintainer:
pkgname=hfst
-pkgver=3.13.0
-pkgrel=1
+pkgver=3.16.0
+pkgrel=2
pkgdesc="Helsinki Finite-State Transducer Technology toolkit"
-url="http://www.ling.helsinki.fi/kieliteknologia/tutkimus/$pkgname/"
+url="https://hfst.github.io/"
arch="all"
license="LGPL-3.0-or-later"
-makedepends="python3 bison python3-dev swig"
+makedepends="
+ bison
+ icu-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ swig
+ "
subpackages="$pkgname-dev $pkgname-doc py3-$pkgname:py3 $pkgname-libs"
-source="https://github.com/hfst/hfst/releases/download/v$pkgver/hfst-$pkgver.tar.gz
- missing_unistd_include.patch"
+source="https://github.com/hfst/hfst/releases/download/v$pkgver/hfst-$pkgver.tar.gz"
build() {
./configure \
@@ -27,23 +34,28 @@ build() {
--enable-all-tools \
--disable-static \
PYTHON=python3
- make -j1
+ make
+
+ cd python
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
make DESTDIR="$pkgdir" install
cd python
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
py3() {
pkgdesc="$pkgdesc (python3 bindings)"
depends="python3"
- mkdir -p "$subpkgdir"/usr/lib/
- cp -r "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
+ amove usr/lib/python3*
}
-sha512sums="9070d23577528ef562cce7229faf15206cbcf615b38500deedc6b5c58be4a0bdb14165f8bb3da644a2f264860ea0e8f2bc663e46284bc55c7b03a45c07845296 hfst-3.13.0.tar.gz
-0bfc63709dbefaaa4084bf78d169283a58ab4ee586e800446f5d92ee179d4c84959802f54e72ffa5366c49a2a30883deb54c562c9dcace21662d5cbdd06789d6 missing_unistd_include.patch"
+sha512sums="
+7c12b8641cd22f1c550c26741d5f46e8a9e1fbd3f9a8b462ce500e38ddac9641e33c59fe3d3474de5499217896fc056605da5fc9bd564fbac254c9949a80f36b hfst-3.16.0.tar.gz
+"
diff --git a/testing/hfst/missing_unistd_include.patch b/testing/hfst/missing_unistd_include.patch
deleted file mode 100644
index 5a5e6734c80..00000000000
--- a/testing/hfst/missing_unistd_include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- hfst-3.8.2/libhfst/src/implementations/optimized-lookup/transducer.h
-+++ hfst-3.8.2/libhfst/src/implementations/optimized-lookup/transducer_new.h
-@@ -14,6 +14,7 @@
- #ifndef _HFST_OL_TRANSDUCER_TRANSDUCER_H_
- #define _HFST_OL_TRANSDUCER_TRANSDUCER_H_
-
-+#include <unistd.h>
- #include <vector>
- #include <set>
- #include <iostream>
diff --git a/testing/hiawatha/APKBUILD b/testing/hiawatha/APKBUILD
index 2c5c6fc07c6..e3d7c35ee9b 100644
--- a/testing/hiawatha/APKBUILD
+++ b/testing/hiawatha/APKBUILD
@@ -2,46 +2,43 @@
# Contributor: Pascal Ernster <aur at hardfalcon dot net>
# Contributor: Stuart Cardall <developer at it-offshore dot co.uk>
pkgname=hiawatha
-pkgver=10.10
+pkgver=11.5
pkgrel=0
+_php=php81
pkgdesc='Secure and advanced webserver'
-url='https://www.hiawatha-webserver.org/'
+url='https://hiawatha.leisink.net/'
arch="all"
license='GPL-2.0-only'
options="suid !check"
subpackages="$pkgname-doc $pkgname-openrc $pkgname-letsencrypt::noarch"
makedepends="cmake libxml2-dev libxslt-dev mbedtls-dev"
-source="https://hiawatha-webserver.org/files/hiawatha-$pkgver.tar.gz
+source="https://hiawatha.leisink.net/files/hiawatha-$pkgver.tar.gz
hiawatha.initd
hiawatha.conf.sample
letsencrypt.helper
"
build() {
- cmake . \
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_BINDIR=/usr/bin \
- -DCMAKE_INSTALL_SBINDIR=/usr/sbin \
- -DCMAKE_INSTALL_SYSCONFDIR=/etc/hiawatha \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DCMAKE_INSTALL_MANDIR=/usr/share/man \
- -DCONFIG_DIR=/etc/hiawatha \
- -DLOG_DIR=/var/log/hiawatha \
- -DPID_DIR=/var/run \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
-DUSE_SYSTEM_MBEDTLS=ON \
- -DWEBROOT_DIR=/var/www/hiawatha \
- -DWORK_DIR=/var/lib/hiawatha
-
- make
+ $CMAKE_CROSSOPTS .
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir/" install
+ DESTDIR="$pkgdir" cmake --build build --target install
sed -i 's|#ServerId = www-data|ServerId = nobody|' \
"$pkgdir"/etc/hiawatha/hiawatha.conf
- sed -i 's|www-data|nobody|g' logrotate.d/hiawatha
- install -Dm644 logrotate.d/hiawatha \
+ sed -i 's|www-data|nobody|g' build/logrotate.d/hiawatha
+ install -Dm644 build/logrotate.d/hiawatha \
"$pkgdir"/etc/logrotate.d/hiawatha
install -Dm755 "$srcdir"/hiawatha.initd \
"$pkgdir"/etc/init.d/hiawatha
@@ -50,19 +47,22 @@ package() {
}
letsencrypt() {
- depends="php7 php7-openssl php7-json"
+ depends="$_php $_php-openssl"
pkgdesc="PHP scripts to generate SSL certificates with letsencrypt"
- mkdir -p "$subpkgdir"/usr/sbin "$subpkgdir"/usr/share/man/man1
+ mkdir -p "$subpkgdir"/usr/sbin "$subpkgdir"/usr/share/man/man1 "$subpkgdir"/usr/lib/hiawatha
mv "$pkgdir"-doc/usr/share/man/man1/lefh.1.gz "$subpkgdir"/usr/share/man/man1/
- mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
+ mv "$pkgdir"/usr/lib/hiawatha/letsencrypt "$subpkgdir"/usr/lib/hiawatha
+ rmdir -p "$pkgdir"/usr/lib/hiawatha || true
mv "$pkgdir"/usr/sbin/lefh "$subpkgdir"/usr/sbin/
mkdir -p "$subpkgdir"/usr/lib/hiawatha/letsencrypt/scripts
install -Dm750 "$builddir"/extra/letsencrypt/scripts/* "$subpkgdir"/usr/lib/hiawatha/letsencrypt/scripts/
install -Dm750 "$srcdir"/letsencrypt.helper "$subpkgdir"/usr/sbin/letsencrypt
}
-sha512sums="dd23977a55c23145ac6b8163deb2e69192940cbae8f297522ba9376a2dfa1a4a350027a3358ef3169718991c61206bfee30baa602d95b0523b0eb2badc51fabe hiawatha-10.10.tar.gz
+sha512sums="
+575013567488b76bf37734a882e6608378a236f4f8cce7bb35a3949c97b894c1efa5963ab589f59fe27e6e1ba06ff0490f0c7bf7cfc87cd77bd5b60ca85a4bb6 hiawatha-11.5.tar.gz
cec0adfb48e1751cf13031f2c28f4590340b2c747aa8e81d18c16bc8789bce69b2d9d99290a93b74b501db3b63190a071033a78abeeb8f60becba2dcaf3b5c40 hiawatha.initd
-b2aad6d02e03a3e25dc6dc30deab4637a7de5448255b6b707363e8c71ae1029e669bacdb6b88889ec1aa804fe717560e872dc44d049127af9aa155a8895c8a60 hiawatha.conf.sample
-bc31823ba0894bf4dc2f1d9aac3c03382d60a1302f4d35027ca4d3e38d8a14cfdbc94af3235800b9e8cc68c4efceb1ba04c654d16ee0d297591f25a470cc567c letsencrypt.helper"
+771bed17b5831bb9d4a28eb94482dd39de8c4b5b35b2c08e1c303a2778254f9e34e40a8d791cc7ef4e73740f474c502685252378e7fe2cba494c782c11f960d4 hiawatha.conf.sample
+dbdd0cdf975b226d2ac27257861a1cc6c1f77c8387d632014368a1c835817a33b780f446cd3fdb7d9ca4322eaede1fea28652dde70928cc8a73f0b05dba46f6e letsencrypt.helper
+"
diff --git a/testing/hiawatha/hiawatha.conf.sample b/testing/hiawatha/hiawatha.conf.sample
index 1c1d6245032..5cf5467b543 100644
--- a/testing/hiawatha/hiawatha.conf.sample
+++ b/testing/hiawatha/hiawatha.conf.sample
@@ -28,7 +28,7 @@ Binding {
### The following fast CGI daemons require php-fpm using a UNIX socket and TCP port, respectively.
# ACTIVATE a FastCGI server for php (using UNIX socket)
FastCGIserver {
- FastCGIid = PHP5
+ FastCGIid = PHP8
ConnectTo = /run/php-fpm/php-fpm.sock
Extension = php
SessionTimeout = 30
@@ -36,7 +36,7 @@ FastCGIserver {
# ACTIVATE a FastCGI server for php (using IP-address and TCP port)
#FastCGIserver {
-# FastCGIid = PHP5
+# FastCGIid = PHP8
# ConnectTo = 127.0.0.1:9000
# Extension = php
# SessionTimeout = 30
@@ -72,7 +72,7 @@ VirtualHost {
AccessLogfile = /var/log/hiawatha/phpmyadmin/access.log
ErrorLogfile = /var/log/hiawatha/phpmyadmin/error.log
StartFile = index.php
- UseFastCGI = PHP5
+ UseFastCGI = PHP8
}
@@ -85,7 +85,7 @@ VirtualHost {
# AccessLogfile = /svr/http/my-domain/log/access.log
# ErrorLogfile = /svr/http/my-domain/log/error.log
# TimeForCGI = 5
-# UseFastCGI = PHP5
+# UseFastCGI = PHP8
# UseToolkit = banshee
#}
@@ -108,7 +108,7 @@ VirtualHost {
ErrorLogfile = /svr/http/monitor/logfiles/error.log
StartFile = index.php
# ExecuteCGI = yes
- UseFastCGI = PHP5 # Use if you use PHP as a FastCGI daemon
+ UseFastCGI = PHP8 # Use if you use PHP as a FastCGI daemon
TimeForCGI = 15
UseToolkit = banshee
}
diff --git a/testing/hiawatha/letsencrypt.helper b/testing/hiawatha/letsencrypt.helper
index 8affbb3deb2..32ea2ac1c92 100644
--- a/testing/hiawatha/letsencrypt.helper
+++ b/testing/hiawatha/letsencrypt.helper
@@ -1,6 +1,6 @@
#!/bin/sh
-phplist="php7"
+phplist="php81 php8 php7"
letsencrypt=/usr/sbin/lefh
find_php() {
diff --git a/testing/hidrd/APKBUILD b/testing/hidrd/APKBUILD
index b6ea4b29165..c6e1a23779a 100644
--- a/testing/hidrd/APKBUILD
+++ b/testing/hidrd/APKBUILD
@@ -1,26 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hidrd
-pkgver=0.2.0
-pkgrel=0
+pkgver=0.2.0_git20190603
+pkgrel=1
+_commit=6c0ed39708a5777ac620f902f39c8a0e03eefe4e
pkgdesc="HID report descriptor I/O library and conversion tool"
url="https://github.com/DIGImend/hidrd"
arch="all"
-license="GPL-2.0"
-depends=""
-makedepends="musl-obstack-dev m4"
-install=""
+license="GPL-2.0-or-later"
+makedepends="automake autoconf libtool musl-obstack-dev m4"
+checkdepends="bash coreutils linux-headers"
subpackages="$pkgname-dev"
-source="https://github.com/DIGImend/hidrd/releases/download/$pkgver/hidrd-$pkgver.tar.gz
- musl-fix-headers.patch"
-builddir="$srcdir/hidrd-$pkgver"
+# source="https://github.com/DIGImend/hidrd/releases/download/$pkgver/hidrd-$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/DIGImend/hidrd/archive/$_commit.tar.gz
+ musl-fix-headers.patch
+ fix-check.patch
+ "
+builddir="$srcdir/$pkgname-$_commit"
prepare() {
default_prepare
- update_config_sub
+ autoreconf -vfi
}
build() {
- cd "$builddir"
LIBS=-lobstack \
./configure \
--build=$CBUILD \
@@ -32,10 +34,14 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="b2121904f7327766b17ade631d6862cea6c0010cee060620150480f70ed0fb00cebf06cd2c6623ab509e1579abe2a835920d8c5290c21bca4143b15c6a814e22 hidrd-0.2.0.tar.gz
-43651cd05b01867eeba370786c6db06b6d7d31713607ee34c1529377463dcf12c8af4efbcbe9ee27018deef030e63ad324a364d2701fde5c369edd7206427ee1 musl-fix-headers.patch"
+sha512sums="baffd4a300e78a95c340a845d038aa71722ff21e5f6e8776db74d360da72e0fcfba68ac821085e45b6176b13b91771368501296cc126ce4662b738a567dba415 hidrd-0.2.0_git20190603.tar.gz
+36bdfedbb49934ca8cf0df0bf31ff386142af53f66494f6af475c06716ab246b39c7a5d211fb3049eddcf64f16ac76452b4a8136dce3604d47c26600d290adb1 musl-fix-headers.patch
+5f4f1996b4e4f2009d9ca9c84bb18eb96c0f2aedd1a0f5f948ea741f31fc3e5f96ab82471756b8535e492b4ee365b5b195c91f4cd1cbcb8e6787cab46d9179ce fix-check.patch"
diff --git a/testing/hidrd/fix-check.patch b/testing/hidrd/fix-check.patch
new file mode 100644
index 00000000000..0628ad67f02
--- /dev/null
+++ b/testing/hidrd/fix-check.patch
@@ -0,0 +1,198 @@
+musl libc does currently not have an equivalent of GNU Libc's error.h
+
+The following is a mix of a workaround from aufs (https://sourceforge.net/p/aufs/aufs-util/ci/aufs4.14/tree/extlib/non-glibc/)
+and the stranded error.{h,c} implementation https://www.openwall.com/lists/musl/2019/08/06/21
+
+--- a/lib/fmt/xml_test.c
++++ b/lib/fmt/xml_test.c
+@@ -25,7 +25,11 @@
+ #include <stdint.h>
+ #include <string.h>
+ #include <errno.h>
++#ifdef __GNU_LIBRARY__
+ #include <error.h>
++#else
++#include "hidrd/util/error_at_line.h"
++#endif
+ #include <stdio.h>
+ #include "hidrd/fmt/xml.h"
+
+--- a/lib/item/any_test.c
++++ b/lib/item/any_test.c
+@@ -27,7 +27,11 @@
+ #include <stdint.h>
+ #include <string.h>
+ #include <errno.h>
++#ifdef __GNU_LIBRARY__
+ #include <error.h>
++#else
++#include "hidrd/util/error_at_line.h"
++#endif
+ #include <stdio.h>
+ #include "hidrd/item.h"
+
+--- a/lib/opt/test.c
++++ b/lib/opt/test.c
+@@ -26,7 +26,11 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
++#ifdef __GNU_LIBRARY__
+ #include <error.h>
++#else
++#include "hidrd/util/error_at_line.h"
++#endif
+ #include <stdio.h>
+ #include "hidrd/opt/spec_list.h"
+ #include "hidrd/opt/list.h"
+--- a/lib/util/num_test.c
++++ b/lib/util/num_test.c
+@@ -23,7 +23,11 @@
+ */
+
+ #include <assert.h>
++#ifdef __GNU_LIBRARY__
+ #include <error.h>
++#else
++#include "hidrd/util/error_at_line.h"
++#endif
+ #include <stdlib.h>
+ #include <string.h>
+ #include "hidrd/util/num.h"
+--- a/lib/util/ttbl_test.c
++++ b/lib/util/ttbl_test.c
+@@ -24,7 +24,11 @@
+
+ #include <assert.h>
+ #include <errno.h>
++#ifdef __GNU_LIBRARY__
+ #include <error.h>
++#else
++#include "hidrd/util/error_at_line.h"
++#endif
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
+--- a/lib/opt/Makefile.am
++++ b/lib/opt/Makefile.am
+@@ -36,7 +36,7 @@
+
+ TESTS = hidrd_opt_test
+
+-hidrd_opt_test_SOURCES = test.c
++hidrd_opt_test_SOURCES = test.c ../util/error_at_line.c
+ hidrd_opt_test_LDADD = $(lib_LTLIBRARIES)
+
+ bin_PROGRAMS =
+--- a/lib/util/Makefile.am
++++ b/lib/util/Makefile.am
+@@ -39,10 +39,10 @@
+ bin_PROGRAMS =
+ check_PROGRAMS = hidrd_num_test hidrd_ttbl_test
+
+-hidrd_num_test_SOURCES = num_test.c
++hidrd_num_test_SOURCES = num_test.c error_at_line.c
+ hidrd_num_test_LDADD = $(lib_LTLIBRARIES)
+
+-hidrd_ttbl_test_SOURCES = ttbl_test.c
++hidrd_ttbl_test_SOURCES = ttbl_test.c error_at_line.c
+ hidrd_ttbl_test_LDADD = $(lib_LTLIBRARIES)
+
+ TESTS = hidrd_num_test hidrd_ttbl_test
+--- /dev/null
++++ b/lib/util/error_at_line.c
+@@ -0,0 +1,69 @@
++#include "hidrd/util/error_at_line.h"
++#include <errno.h>
++#include <stdarg.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++void (*error_print_progname) (void) = 0;
++unsigned int error_message_count = 0;
++int error_one_per_line = 0;
++
++static unsigned int saved_linenum = 0;
++static const char *saved_file = 0;
++
++static void errorv(int status, int errnum, const char *file, unsigned int linenum, const char *fmt, va_list ap)
++{
++ ++error_message_count;
++
++ fflush(stdout);
++ flockfile(stderr);
++
++ if (error_print_progname)
++ error_print_progname();
++ else {
++ fprintf(stderr, "%s:", program_invocation_name);
++ if (!file)
++ fputc(' ', stderr);
++ }
++
++ if (file)
++ fprintf(stderr, "%s:%u: ", file, linenum);
++
++ vfprintf(stderr, fmt, ap);
++ if (errnum)
++ fprintf(stderr, ": %s", strerror(errnum));
++ fputc('\n', stderr);
++
++ funlockfile(stderr);
++
++ if (status)
++ exit(status);
++}
++
++void error(int status, int errnum, const char *fmt, ...)
++{
++ va_list ap;
++ va_start(ap, fmt);
++ errorv(status, errnum, NULL, 0, fmt, ap);
++ va_end(ap);
++}
++
++void error_at_line(int status, int errnum, const char *file, unsigned int linenum, const char *fmt, ...)
++{
++ if (error_one_per_line) {
++ if(saved_linenum == linenum && file != NULL &&
++ saved_file != NULL && !strcmp(file, saved_file))
++ return;
++ saved_linenum = linenum;
++ // Assuming that the lifetime of the passed in file name extends
++ // until the next call is rather questionable, but appears to be
++ // the expected semantics.
++ saved_file = file;
++ }
++
++ va_list ap;
++ va_start(ap, fmt);
++ errorv(status, errnum, file, linenum, fmt, ap);
++ va_end(ap);
++}
+--- /dev/null
++++ b/include/hidrd/util/error_at_line.h
+@@ -0,0 +1,21 @@
++#ifndef _ERROR_H
++#define _ERROR_H
++
++#include <features.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++extern void (*error_print_progname) (void);
++extern unsigned int error_message_count;
++extern int error_one_per_line;
++
++void error(int, int, const char *, ...);
++void error_at_line(int, int, const char *, unsigned int, const char *, ...);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+
diff --git a/testing/hidrd/musl-fix-headers.patch b/testing/hidrd/musl-fix-headers.patch
index d6de2e3b716..434c28818d6 100644
--- a/testing/hidrd/musl-fix-headers.patch
+++ b/testing/hidrd/musl-fix-headers.patch
@@ -2,7 +2,7 @@ diff --git a/lib/util/ttbl.c b/lib/util/ttbl.c
index 12bf5c7..f98ebed 100644
--- a/lib/util/ttbl.c
+++ b/lib/util/ttbl.c
-@@ -28,6 +28,7 @@
+@@ -26,6 +26,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/testing/hikari/APKBUILD b/testing/hikari/APKBUILD
new file mode 100644
index 00000000000..a51dea472f6
--- /dev/null
+++ b/testing/hikari/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=hikari
+pkgver=2.3.3
+pkgrel=6
+pkgdesc="Stacking Wayland compositor with additional tiling capabilities"
+url="https://hub.darcs.net/raichoo/hikari"
+arch="all"
+license="MIT"
+makedepends="
+ bmake
+ cairo-dev
+ libinput-dev
+ libucl-dev
+ libxkbcommon-dev
+ linux-pam-dev
+ pango-dev
+ pixman-dev
+ wayland-dev
+ wlroots0.15-dev
+ xwayland-dev
+ "
+subpackages="$pkgname-doc $pkgname-unlocker"
+source="https://hikari.acmelabs.space/releases/hikari-$pkgver.tar.gz
+ flag-arg.patch
+ "
+options="suid !check" # no tests, unlocker
+
+build() {
+ bmake WITH_ALL=1 ETC_PREFIX=/ PREFIX=/usr VERSION="$pkgver"
+}
+
+package() {
+ bmake DESTDIR="$pkgdir" ETC_PREFIX=/ PREFIX=/usr install
+}
+
+unlocker() {
+ pkgdesc="$pkgdesc (unlocker)"
+
+ amove usr/bin/hikari-unlocker
+}
+
+sha512sums="
+15b6244ef46b29ad069475e8fadbafb01a65c8f96d1f89dd315d36f79dfea9a542936a5472e42237000f506094c7e08be37961c92a7eeed31477f4ed548f39f3 hikari-2.3.3.tar.gz
+10b46bc1fee6953a3c6a1c74c38d168b167f5fd5832e195de043d6b1c202eac9e7f95ef58a79299007c40355fd345fb74d6f8e754525ab5df788bffc94d10804 flag-arg.patch
+"
diff --git a/testing/hikari/flag-arg.patch b/testing/hikari/flag-arg.patch
new file mode 100644
index 00000000000..41822d4efff
--- /dev/null
+++ b/testing/hikari/flag-arg.patch
@@ -0,0 +1,17 @@
+getopt returns an int.
+on non-x86 architectures where char is unsigned, this breaks starting the
+compositor
+(i think)
+diff --git a/main.c b/main.c
+index 50288b0..a6b03ed 100644
+--- a/main.c
++++ b/main.c
+@@ -144,7 +144,7 @@ parse_options(int argc, char **argv, struct options *options)
+ char *config_path = NULL;
+ char *autostart = NULL;
+
+- char flag;
++ int flag;
+ while ((flag = getopt(argc, argv, "vhc:a:")) != -1) {
+ switch (flag) {
+ case 'a':
diff --git a/testing/hilbish/APKBUILD b/testing/hilbish/APKBUILD
new file mode 100644
index 00000000000..b8ef6d3234b
--- /dev/null
+++ b/testing/hilbish/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=hilbish
+pkgver=2.2.1
+_lunacolors_commit=34a57c964590f89aa065188a588c7b38aff99c28
+_succulent_commit=fc31cc91d9be1c1fa6209477118e8d35a4aab996
+pkgrel=2
+pkgdesc="Extensible shell configured in Lua"
+url="https://rosettea.github.io/Hilbish/"
+arch="all"
+license="MIT"
+depends="lua-inspect"
+makedepends="go"
+subpackages="$pkgname-doc:_doc"
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Rosettea/Hilbish/archive/v$pkgver.tar.gz
+ lunacolors-$_lunacolors_commit.lua::https://github.com/Rosettea/Lunacolors/raw/$_lunacolors_commit/init.lua
+ succulent-$_succulent_commit.lua::https://github.com/Rosettea/Succulent/raw/$_succulent_commit/init.lua
+ "
+builddir="$srcdir/Hilbish-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o hilbish \
+ -ldflags "-X main.ver=v$pkgver -X main.dataDir=/usr/share/hilbish"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 hilbish -t "$pkgdir"/usr/bin/
+ install -Dm644 .hilbishrc.lua -t "$pkgdir"/usr/share/hilbish/
+ cp -r libs emmyLuaDocs nature docs "$pkgdir"/usr/share/hilbish/
+
+ install -Dm644 "$srcdir"/"lunacolors-$_lunacolors_commit".lua \
+ "$pkgdir"/usr/share/hilbish/libs/lunacolors/init.lua
+ install -Dm644 "$srcdir"/"succulent-$_succulent_commit".lua \
+ "$pkgdir"/usr/share/hilbish/libs/succulent/init.lua
+}
+
+_doc() {
+ pkgdesc="$pkgdesc (documentation)"
+ install_if="$pkgname=$pkgver-r$pkgrel docs"
+
+ amove usr/share/hilbish/docs
+}
+
+sha512sums="
+7ab726fa31d337eff48d9465ed1850cf086bd9d8e08f6fa7c60cab1ee4f0449f617fa32411e6fbdabb067fdb5de175621d16cca015d59edef6b2fb0b89424961 hilbish-2.2.1.tar.gz
+19c21fa66460254774ac795410b4771157d26be98790d94afa9dff4402904bbfa24556a88b9ae391f012536ba02c032857715352ad7b72d7b3175ee670edcad8 lunacolors-34a57c964590f89aa065188a588c7b38aff99c28.lua
+ce34e68fd4ab18267268d476b656946c6aad6530526c73ba8482180215a351255dc6b97ba3fc92bcedad0d27ac7b390e19602129e387326fac0eaf6a61718bc8 succulent-fc31cc91d9be1c1fa6209477118e8d35a4aab996.lua
+"
diff --git a/testing/hilbish/hilbish.post-install b/testing/hilbish/hilbish.post-install
new file mode 100644
index 00000000000..f2172a6d26d
--- /dev/null
+++ b/testing/hilbish/hilbish.post-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+add-shell '/usr/bin/hilbish'
+exit 0
diff --git a/testing/hilbish/hilbish.post-upgrade b/testing/hilbish/hilbish.post-upgrade
new file mode 120000
index 00000000000..eada67445c1
--- /dev/null
+++ b/testing/hilbish/hilbish.post-upgrade
@@ -0,0 +1 @@
+hilbish.post-install \ No newline at end of file
diff --git a/testing/hilbish/hilbish.pre-deinstall b/testing/hilbish/hilbish.pre-deinstall
new file mode 100644
index 00000000000..884b7f86fcc
--- /dev/null
+++ b/testing/hilbish/hilbish.pre-deinstall
@@ -0,0 +1,3 @@
+#!/bin/sh
+remove-shell '/usr/bin/hilbish'
+exit 0
diff --git a/testing/himitsu-firefox/APKBUILD b/testing/himitsu-firefox/APKBUILD
new file mode 100644
index 00000000000..f39e930bef4
--- /dev/null
+++ b/testing/himitsu-firefox/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer:
+pkgname=himitsu-firefox
+pkgver=0.5
+pkgrel=0
+pkgdesc="Firefox integration for Himitsu"
+url="https://himitsustore.org"
+arch="x86_64 aarch64 riscv64" # Hare
+license="GPL-3.0-only"
+makedepends="hare hare-json himitsu-dev zip"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/himitsu-firefox/archive/$pkgver.tar.gz
+"
+install="$pkgname.post-install"
+options="!check"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install-native
+}
+
+sha512sums="
+2a355ab273156c1e05b4ca9a0e248e068ebf1a564de32559b8692a03cb33f2880785c5aa63faeb69479f98b4adec3d353ac5c68329b24bc332833602b2f67006 himitsu-firefox-0.5.tar.gz
+"
diff --git a/testing/himitsu-firefox/himitsu-firefox.post-install b/testing/himitsu-firefox/himitsu-firefox.post-install
new file mode 100755
index 00000000000..45514924542
--- /dev/null
+++ b/testing/himitsu-firefox/himitsu-firefox.post-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+cat >&2 <<EOF
+*
+* The himitsu-firefox package only includes the native messaging support for
+* the corresponding Firefox add-on. You must install the Firefox add-on
+* manually to actually use it:
+*
+* https://addons.mozilla.org/en-US/firefox/addon/himitsu-integration/
+*
+EOF
diff --git a/testing/himitsu-git/APKBUILD b/testing/himitsu-git/APKBUILD
new file mode 100644
index 00000000000..4b82fa2bcec
--- /dev/null
+++ b/testing/himitsu-git/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=himitsu-git
+_commit=3e6d6786cb74f985a671040a6f506be3306e6042
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="git-credential integration for Himitsu"
+url="https://himitsustore.org"
+arch="x86_64 aarch64 riscv64" # Hare
+license="GPL-3.0-only"
+depends="himitsu"
+makedepends="hare scdoc himitsu-dev"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/himitsu-git/archive/$_commit.tar.gz
+ "
+options="!check"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+0e380d2197d93a4f224ece66fc23e9ca474cdc33a103a71cb9764b50100b4712c4ab765741f24b77f1a7adb012210c006b875a6e01771cc9dcbcadcbfe48a1de himitsu-git-0.2.0.tar.gz
+"
diff --git a/testing/himitsu-keyring/APKBUILD b/testing/himitsu-keyring/APKBUILD
new file mode 100644
index 00000000000..b7e5ac9b267
--- /dev/null
+++ b/testing/himitsu-keyring/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=himitsu-keyring
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Himitsu keystore frontend"
+url="https://git.sr.ht/~martijnbraam/keyring"
+arch="x86_64 aarch64" # Limited by himitsu
+license="GPL-3.0-or-later"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/keyring/archive/$pkgver.tar.gz"
+depends="python3 py3-gobject3 gtk+3.0 himitsu libhandy1"
+makedepends="py3-setuptools glib-dev meson ninja libhandy1-dev"
+builddir="$srcdir/keyring-$pkgver"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+3bfe6e8f021c2b62c35290c3614c17646c0835409eabd5dcc8abb45c91176867466b7bdd58373f9d61768e2c1083df0e4ebcc708e799bd651343b41b0c55fa63 himitsu-keyring-0.2.0.tar.gz
+"
diff --git a/testing/hiprompt-gtk-py/APKBUILD b/testing/hiprompt-gtk-py/APKBUILD
new file mode 100644
index 00000000000..6a7befb5f33
--- /dev/null
+++ b/testing/hiprompt-gtk-py/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=hiprompt-gtk-py
+pkgver=0_git20230225
+pkgrel=0
+_commit=8d6ef1d042ec2731f84245164094e622f4be3f2d
+pkgdesc="A GTK+ Himitsu prompter for Wayland"
+url="https://git.sr.ht/~sircmpwn/hiprompt-gtk-py"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="$pkgname-$_commit.tar.gz::https://git.sr.ht/~sircmpwn/hiprompt-gtk-py/archive/$_commit.tar.gz"
+depends="python3 py3-gobject3 gtk+3.0"
+makedepends="py3-setuptools glib-dev meson ninja"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+cac43582ae8de7cb0c68cf28309644a10b6e797d8477ff6af06fc18fd14c3a3a86ae6f17e1f549b39dd263cd43482219a2fb10c7e77e5863da5c72f28c66993c hiprompt-gtk-py-8d6ef1d042ec2731f84245164094e622f4be3f2d.tar.gz
+"
diff --git a/testing/hiredict/APKBUILD b/testing/hiredict/APKBUILD
new file mode 100644
index 00000000000..9c574f9bc92
--- /dev/null
+++ b/testing/hiredict/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Eivind Uggedal <eu@eju.no>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=hiredict
+pkgver=1.3.1
+pkgrel=0
+pkgdesc="C client library for Redict"
+url="https://codeberg.org/redict/hiredict"
+arch="all"
+license="BSD-3-Clause"
+makedepends="openssl-dev>3"
+checkdepends="redict"
+subpackages="$pkgname-ssl $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/redict/hiredict/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+
+build() {
+ make USE_SSL=1 PREFIX=/usr DEBUG="$CFLAGS" LDFLAGS="$LDFLAGS"
+}
+
+check() {
+ redict-server \
+ --dir "$builddir" \
+ --enable-debug-command local \
+ --unixsocket "$builddir"/redict.sock&
+ local _redictpid=$!
+
+ make hiredict-test
+
+ # make sure socket is available before we start running tests
+ local _n=100 # wait up to 10 sec
+ while ! [ -e "$builddir"/redict.sock ] && [ $_n -gt 0 ]; do
+ sleep 0.1s
+ _n="$((_n - 1))"
+ done
+
+ ./hiredict-test -s "$builddir"/redict.sock || (kill $_redictpid && false)
+ kill $_redictpid
+}
+
+package() {
+ make USE_SSL=1 PREFIX="$pkgdir"/usr install
+}
+
+ssl() {
+ amove usr/lib/libhiredict_ssl.so*
+}
+
+sha512sums="
+208672d4dbdcc8bf21cff494ea2191b97b9d67b2c4b5a4f94e2c165613315b28b09e9e03de0495a069320df671e3f9d22a43209f175c2aae71550b0d832c0112 hiredict-1.3.1.tar.gz
+"
diff --git a/testing/homebank/APKBUILD b/testing/homebank/APKBUILD
index 9e0a2e91767..44f1ee82717 100644
--- a/testing/homebank/APKBUILD
+++ b/testing/homebank/APKBUILD
@@ -1,19 +1,22 @@
# Contributor: 7heo <7heo@mail.com>
-# Maintainer: 7heo <7heo@mail.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=homebank
-pkgver=5.2.8
+pkgver=5.7.4
pkgrel=0
pkgdesc="Free personal finance software, money management"
url="http://homebank.free.fr"
arch="all"
license="GPL-2.0-or-later"
-makedepends="bash gtk+3.0-dev libsoup-dev libofx-dev intltool"
+makedepends="gtk+3.0-dev libsoup3-dev libofx-dev intltool"
options="!check" # no test suite
subpackages="$pkgname-lang"
-source="http://homebank.free.fr/public/homebank-$pkgver.tar.gz"
+source="http://homebank.free.fr/public/sources/homebank-$pkgver.tar.gz"
build() {
- ./configure --prefix=/usr
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr
make
}
@@ -21,4 +24,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="e1cb0595f1a5cedad83d1b51223d15ea7f37ced9d14edad1f1af8ad8e0eed2938518ed936981558879b5a1bd8aa80d88f4303e69fff0d6e503a8abe61bf872be homebank-5.2.8.tar.gz"
+sha512sums="
+d65127b49a7566f5ad88feb8c614883c43e322ea50d915e49691b169771fac222573da4988ab1c54d9f39b9dfdf2d724cba07269e093c67a04900828d0b87093 homebank-5.7.4.tar.gz
+"
diff --git a/testing/homer-app/0001-change-web-and-config-paths.patch b/testing/homer-app/0001-change-web-and-config-paths.patch
new file mode 100644
index 00000000000..ff41ded7d33
--- /dev/null
+++ b/testing/homer-app/0001-change-web-and-config-paths.patch
@@ -0,0 +1,89 @@
+From 57893a68cec83e6900f810980ea8b8296aa75ea3 Mon Sep 17 00:00:00 2001
+From: Leonardo Arena <rnalrd@alpinelinux.org>
+Date: Wed, 17 Apr 2024 06:33:38 +0000
+Subject: [PATCH] change web and config paths
+
+---
+ etc/webapp_config.json | 14 +++++++-------
+ main.go | 4 ++--
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/etc/webapp_config.json b/etc/webapp_config.json
+index c0bfbe3..5f1bb00 100644
+--- a/etc/webapp_config.json
++++ b/etc/webapp_config.json
+@@ -44,7 +44,7 @@
+ },
+ "swagger": {
+ "enable": true,
+- "api_json": "/usr/local/homer/etc/swagger.json",
++ "api_json": "/etc/homer/swagger.json",
+ "api_host": "127.0.0.1:9080"
+ },
+ "loki_config": {
+@@ -72,7 +72,7 @@
+ "help": "Settings for the HOMER Webapp Server. If you have gzip_static = false, please be sure that your dist directory has uncompressed .js files",
+ "host": "0.0.0.0",
+ "port": 9080,
+- "root": "/usr/local/homer/dist",
++ "root": "/usr/share/webapps/homer/dist",
+ "gzip": true,
+ "path": "/",
+ "gzip_static": true,
+@@ -94,12 +94,12 @@
+ "port": 443,
+ "min_tls_version": "1.2",
+ "use_mozilla_profile": true,
+- "cert": "/usr/local/homer/tls/cert.pem",
+- "key": "/usr/local/homer/tls/key.pem"
++ "cert": "/etc/homer/tls/cert.pem",
++ "key": "/etc/homer/tls/key.pem"
+ },
+ "system_settings": {
+ "help": "Settings for HOMER logs",
+- "logpath": "/usr/local/homer/log",
++ "logpath": "/var/log/homer",
+ "logname": "homer-app.log",
+ "_loglevels": "can be: fatal, error, warn, info, debug, trace",
+ "loglevel": "error",
+@@ -107,7 +107,7 @@
+ },
+ "dashboard_settings": {
+ "_comment": "Here you can define a customs dashboards home",
+- "dashboard_home": "/usr/local/homer/etc/dashboard_home.json"
++ "dashboard_home": "/etc/homer/dashboard_home.json"
+ },
+ "auth_settings": {
+ "_comment": "The type param can be internal, ldap, http_auth",
+@@ -196,4 +196,4 @@
+ "1_default"
+ ]
+ }
+-}
+\ No newline at end of file
++}
+diff --git a/main.go b/main.go
+index 159376b..cc682e1 100644
+--- a/main.go
++++ b/main.go
+@@ -191,7 +191,7 @@ func initFlags() {
+ appFlags.DatabaseHomerPassword = flag.String("database-homer-password", "homer_password", "database-homer-password")
+ appFlags.DatabaseHomerConfig = flag.String("database-homer-config", "homer_config", "database-homer-config")
+ appFlags.DatabaseHomerData = flag.String("database-homer-data", "homer_data", "database-homer-data")
+- appFlags.PathWebAppConfig = flag.String("webapp-config-path", "/usr/local/homer/etc", "the path to the webapp config file")
++ appFlags.PathWebAppConfig = flag.String("webapp-config-path", "/etc/homer", "the path to the webapp config file")
+ appFlags.LogName = flag.String("webapp-log-name", "", "the name prefix of the log file.")
+ appFlags.LogPathWebApp = flag.String("webapp-log-path", "", "the path for the log file.")
+ appFlags.APIPrefix = flag.String("webapp-api-prefix", "", "API prefix.")
+@@ -748,7 +748,7 @@ func configureAsHTTPServer() {
+ /* static */
+ rootPath := viper.GetString("http_settings.root")
+ if rootPath == "" {
+- rootPath = "/usr/local/homer/dist"
++ rootPath = "/usr/share/webapps/homer/dist"
+ }
+
+ /* static */
+--
+2.44.0
+
diff --git a/testing/homer-app/APKBUILD b/testing/homer-app/APKBUILD
index 2a34104e159..921656ae190 100644
--- a/testing/homer-app/APKBUILD
+++ b/testing/homer-app/APKBUILD
@@ -1,7 +1,6 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=homer-app
-pkgver=1.1.37
-_uiver=7.7.032
+pkgver=1.4.59
pkgrel=3
pkgdesc="HOMER 7.x Front-End and API Server"
url="http://sipcapture.io"
@@ -9,14 +8,24 @@ arch="x86_64"
license="AGPL-3.0-or-later"
makedepends="go"
install="$pkgname.pre-install"
-options="!check" # no test suite
+options="net"
subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sipcapture/homer-app/archive/$pkgver.tar.gz
- https://github.com/sipcapture/homer-app/releases/download/$pkgver/homer-ui-$_uiver.tgz
+source="$pkgname-$pkgver.tar.gz::https://github.com/sipcapture/homer-app/archive/refs/tags/$pkgver.tar.gz
+ https://github.com/sipcapture/homer-app/releases/download/$pkgver/homer-ui-$pkgver.tgz
$pkgname.initd
- change-default-locations.patch
+
+ 0001-change-web-and-config-paths.patch
"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod download
+}
+
build() {
make modules
make all
@@ -30,7 +39,6 @@ package() {
install -D -m755 release/homer-app_linux_amd64/homer-app "$pkgdir"/usr/bin/homer-app
install -D -m644 etc/webapp_config.json "$pkgdir"/etc/homer/webapp_config.json
mkdir -p "$pkgdir"/usr/share/webapps/homer \
- "$pkgdir"/var/log/homer \
"$pkgdir"/usr/share/licenses/$pkgname
mv "$srcdir"/dist/3rdpartylicenses.txt \
"$pkgdir"/usr/share/licenses/$pkgname/3rdpartylicenses.txt
@@ -38,7 +46,9 @@ package() {
install -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
}
-sha512sums="1c2a868d6fe28b0feef6c132bc8238af395022b0c6c8349ecebf01223a0585372aa6c82ae91cfa7da293e39810380b133c577cc5852c5e1c81ae69b3fd771b65 homer-app-1.1.37.tar.gz
-6b3bef1190e91526b049f0d1a478d13de1e4cc6dc78bed56bc29f20138a6eeb03c4f4b053448a32b4e3918182cda5bfc053a9abd1910286609f9f2e377565b24 homer-ui-7.7.032.tgz
-2ba4e0403bd6f3b08a3a4d8bf366ec776941b5a29e9728ca2aefbfc663ce64c01f67a2f8f408a777db7921f8f66f93797fb5f056809901d3f25fe39b414b5865 homer-app.initd
-0f27c5b357aa321e60cf9a5f754b79e7e8a1d430cb355dce52d3c79e40d2873c5d6fa97f548e98a78fb836930b0ab2f28ed1a82680dad4e11a436ec9ed56ca26 change-default-locations.patch"
+sha512sums="
+b62ded15ff9ad2651b4e58ecf497b10208cc0a9075eca01a62328c71402c14a7a12b5903a4ea1ce86d38f38052fbbcdda3f498f120fee77a2fd271b87a41fe3c homer-app-1.4.59.tar.gz
+561f858f72a620abe041d0bff8632e57c25fcfa5f13053fa416471deb4d9d766a4c90602b7a6b0987165d2ba61ccbcf66a567e53a99be63c704b341350258c87 homer-ui-1.4.59.tgz
+0eaace71fe329bead88d7180aa5ad80f6924f1e0b3426cfa45811121ff4e907b32a4b08d6db995ae77b9b9ddbdbfc66411c03c2eea9c0393f6b9ed12ad851a77 homer-app.initd
+f4073ebe4dda4d94a62a810179b707b5245a15e80473576253b992fd1c0a5ba3dbc2645c56ad10ce63c12ab494a9d9da5fe172b68f1b5594e28b45c18df99fe9 0001-change-web-and-config-paths.patch
+"
diff --git a/testing/homer-app/change-default-locations.patch b/testing/homer-app/change-default-locations.patch
deleted file mode 100644
index 536fdf9b005..00000000000
--- a/testing/homer-app/change-default-locations.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/etc/webapp_config.json b/etc/webapp_config.json
-index 505a02f..93d576e 100644
---- a/etc/webapp_config.json
-+++ b/etc/webapp_config.json
-@@ -45,14 +45,14 @@
- "help": "Settings for the HOMER Webapp Server. If you have gzip_static = false, please be sure that your dist directory has uncompressed .js files",
- "host": "0.0.0.0",
- "port" : 9080,
-- "root" : "/usr/local/homer/dist",
-+ "root" : "/usr/share/webapps/homer/dist",
- "gzip" : true,
- "gzip_static" : true,
- "debug" : false
- },
- "system_settings": {
- "help": "Settings for HOMER logs",
-- "logpath": "/usr/local/homer/log",
-+ "logpath": "/var/log/homer",
- "logname" : "homer-app.log",
- "_loglevels": "can be: fatal, error, warn, info, debug, trace",
- "loglevel": "error",
-@@ -86,4 +86,4 @@
- "bin": "/usr/bin/tshark",
- "protocols": ["1_call","1_registration", "1_default"]
- }
--}
-\ No newline at end of file
-+}
-diff --git a/main.go b/main.go
-index ede7b44..5e7a3d5 100644
---- a/main.go
-+++ b/main.go
-@@ -169,7 +169,7 @@ func initFlags() {
- appFlags.DatabaseHomerConfig = flag.String("database-homer-config", "homer_config", "database-homer-config")
- appFlags.DatabaseHomerData = flag.String("database-homer-data", "homer_data", "database-homer-data")
-
-- appFlags.PathWebAppConfig = flag.String("webapp-config-path", "/usr/local/homer/etc", "the path to the webapp config file")
-+ appFlags.PathWebAppConfig = flag.String("webapp-config-path", "/etc/homer", "the path to the webapp config file")
- appFlags.LogName = flag.String("webapp-log-name", "", "the name prefix of the log file.")
- appFlags.LogPathWebApp = flag.String("webapp-log-path", "", "the path for the log file.")
-
-@@ -346,7 +346,7 @@ func configureAsHTTPServer() {
- /* static */
- rootPath := viper.GetString("http_settings.root")
- if rootPath == "" {
-- rootPath = "/usr/local/homer/dist"
-+ rootPath = "/usr/share/webapps/homer/dist"
- }
- /* static */
- e.Use(middleware.Static(rootPath))
diff --git a/testing/homer-app/homer-app.initd b/testing/homer-app/homer-app.initd
index ceeb0109215..88309124111 100644
--- a/testing/homer-app/homer-app.initd
+++ b/testing/homer-app/homer-app.initd
@@ -1,9 +1,9 @@
#!/sbin/openrc-run
description="HOMER App and UI"
-supervisor=supervise-daemon
command=/usr/bin/homer-app
command_args="-webapp-config-path=/etc/homer -webapp-log-path /var/log/homer"
+command_background=yes
command_user=homer
command_group=homer
pidfile="/run/homer/${RC_SVCNAME}.pid"
diff --git a/testing/hopalong/APKBUILD b/testing/hopalong/APKBUILD
new file mode 100644
index 00000000000..1b2e6610238
--- /dev/null
+++ b/testing/hopalong/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=hopalong
+pkgver=0.1
+pkgrel=3
+pkgdesc="a simple stacking Wayland compositor"
+url="https://github.com/iridescent-desktop/hopalong"
+arch="all"
+license="ISC"
+depends=""
+makedepends="meson
+ wlroots0.12-dev
+ pango-dev cairo-dev glib-dev
+ wayland-dev
+ mesa-dev"
+install=""
+subpackages=""
+source="https://github.com/iridescent-desktop/hopalong/archive/v$pkgver/hopalong-$pkgver.tar.gz"
+builddir="$srcdir/hopalong-$pkgver"
+options="!check"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ # Replace with proper check command(s)
+ :
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+4a9b5698b3501dfc546b00f36341eac0b15bcbcf380f61a1ff064b55613a25e2f492324c5b9f202917eedc4c0a67b5f8e0be0598446ac4609cef4773d3a1e948 hopalong-0.1.tar.gz
+"
diff --git a/testing/horizon/APKBUILD b/testing/horizon/APKBUILD
new file mode 100644
index 00000000000..656625a7804
--- /dev/null
+++ b/testing/horizon/APKBUILD
@@ -0,0 +1,138 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+
+# TODO: support the GUI installer, wizard, etc. For now, it's just the core
+# image mastering tools. Upstream work will be needed to adapt Horizon for
+# installing Alpine. (Also, we need to teach it about apkovls still.)
+
+pkgname=horizon
+pkgver=0.9.6
+pkgrel=9
+pkgdesc="installation environment and image mastering tools for APK-based distributions"
+url="https://horizon.adelielinux.org/"
+arch="all !s390x"
+options="!check" # Unpackaged dependency ruby-aruba.
+license="AGPL-3.0-or-later"
+checkdepends="ruby-aruba ruby-rspec valgrind"
+makedepends="bcnm-dev boost-dev cmake curl-dev eudev-dev libarchive-dev
+ linux-headers parted-dev skalibs-dev util-linux-dev libxkbfile-dev
+ samurai"
+subpackages="$pkgname-image $pkgname-dbg $pkgname-dev $pkgname-doc
+ $pkgname-tools"
+source="https://git.adelielinux.org/adelie/horizon/-/archive/$pkgver/horizon-$pkgver.tar.gz
+ json-cast-character-to-unsigned-for-comparrison.patch
+ riscv.patch
+ strerror.patch
+ werror.patch
+ "
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DBUILD_TOOLS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-format-truncation" \
+ -DINSTALL=ON \
+ $CMAKE_CROSSOPTS \
+ -Bbuild
+ cmake --build build
+}
+
+check() {
+ CTEST_OUTPUT_ON_FAILURE=TRUE ninja -C build test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # horizon is not yet supported for building ISOs, so delete it for now
+ rm -rf "$pkgdir"/usr/share/horizon/iso
+}
+
+image() {
+ pkgdesc="Tools for generating images using HorizonScript"
+ depends="mtools"
+ mkdir -p "$subpkgdir"/usr/bin
+ mkdir -p "$subpkgdir"/usr/lib
+ mkdir -p "$subpkgdir"/usr/share/horizon
+
+ mv "$pkgdir"/usr/bin/hscript-image "$subpkgdir"/usr/bin/
+ mv "$pkgdir"/usr/lib/libhi-backends.so "$subpkgdir"/usr/lib/
+# mv "$pkgdir"/usr/share/horizon/iso "$subpkgdir"/usr/share/horizon/
+}
+
+qt5() {
+ pkgdesc="Qt 5 installation wizard for Adélie Linux"
+ depends="horizon"
+ mkdir -p "$subpkgdir"/etc/horizon
+ mkdir -p "$subpkgdir"/usr/bin
+ mkdir -p "$subpkgdir"/var/log/horizon
+
+ for _bin in horizon-ppc64-detect horizon-qt5 horizon-run-qt5; do
+ mv "$pkgdir"/usr/bin/$_bin "$subpkgdir"/usr/bin/
+ done
+}
+
+tools() {
+ pkgdesc="Tools for authoring HorizonScript files"
+ mkdir -p "$subpkgdir"/usr/bin
+
+ for _bin in hscript-fromjson hscript-simulate hscript-validate; do
+ mv "$pkgdir"/usr/bin/$_bin "$subpkgdir"/usr/bin/
+ done
+}
+
+wizard() {
+ pkgdesc="Wizard to generate a HorizonScript for another computer"
+
+ make DESTDIR="$subpkgdir" -C "$builddir"/build-wizard install
+ rm -r "$subpkgdir"/usr/include
+ rm -r "$subpkgdir"/usr/lib
+ rm -r "$subpkgdir"/usr/share
+}
+
+boot() {
+ pkgdesc="Boot to Horizon"
+ depends="horizon-qt5 horizon kwin qt5ct sddm
+ netsurf partitionmanager xterm"
+
+ mkdir -p "$subpkgdir"/etc/profile.d
+ mkdir -p "$subpkgdir"/etc/sddm.conf.d
+ mkdir -p "$subpkgdir"/etc/xdg/qt5ct
+ mkdir -p "$subpkgdir"/usr/bin
+ mkdir -p "$subpkgdir"/usr/share/qt5ct/qss
+ mkdir -p "$subpkgdir"/usr/share/xsessions
+
+ cat >"$subpkgdir"/etc/profile.d/horizon-qt5.sh <<PROFILE
+#!/bin/sh
+export QT_QUICK_BACKEND=software
+export QT_QPA_PLATFORMTHEME=qt5ct
+PROFILE
+ chmod 755 "$subpkgdir"/etc/profile.d/horizon-qt5.sh
+
+ install -D -m644 "$builddir"/boot/horizon.sddm.conf \
+ "$subpkgdir"/etc/sddm.conf.d/horizon.conf
+
+ install -D -m755 "$builddir"/boot/start-horizon-qt5 \
+ "$subpkgdir"/usr/bin/start-horizon-qt5
+
+ install -D -m644 "$builddir"/boot/qt5ct.conf \
+ "$subpkgdir"/etc/xdg/qt5ct/qt5ct.conf
+ install -D -m644 "$builddir"/boot/horizon.qss \
+ "$subpkgdir"/usr/share/qt5ct/qss/horizon.qss
+
+ install -D -m644 "$builddir"/boot/horizon-session.desktop \
+ "$subpkgdir"/usr/share/xsessions/horizon.desktop
+}
+
+sha512sums="
+3ff46980387454f85a326ac3ea123b55cf16fc339faec48fdc77f10334e0bd93e8cf51e6adeed516d2e4309cf4426b9d1ac6760cdd479b196a5f4aa33c1f3a28 horizon-0.9.6.tar.gz
+5ab7a35d239210e031739c4149fd8e68570ea0efd278a2eac9330d6e30c601d1310b9c17523563a41424c2a8aa2452e5a9bcbce5d8087330d2697cd1b77b312f json-cast-character-to-unsigned-for-comparrison.patch
+2748d443bdec9bfcab3a50d6efd61e3febb195d25581b25a6cbf1a73ddeb209ea79ebee493cc55dc377ff69e1577385d31930ca63db35bbffe34caea1bd41c05 riscv.patch
+3fc8fbd2969b2c45730a5432430a5979572ce1447db124f8f1b8755633e7e109dd2ec9ecb1d7fa0a961ae0630995e22caafe7e362b74903d419b6c57bbbd2dd2 strerror.patch
+4528ccee466bdfed4d2cd6095fb0b2f4f2b2e662c59a8d1a9f26877b4e9d2a8d0b7776932ed87d01dc7ac1e17a29dd5ac47651b91975a33cfe46516d1590f829 werror.patch
+"
diff --git a/testing/horizon/json-cast-character-to-unsigned-for-comparrison.patch b/testing/horizon/json-cast-character-to-unsigned-for-comparrison.patch
new file mode 100644
index 00000000000..78bf28c8ac1
--- /dev/null
+++ b/testing/horizon/json-cast-character-to-unsigned-for-comparrison.patch
@@ -0,0 +1,19 @@
+Description: GCC 10.0.1 started to warn on redundant comparisons. Horizon
+builds with -Werror, so this warning is turned into an error. Upstream fixed this,
+so backport to Horizon.
+
+Based on https://github.com/nlohmann/json/pull/2144/commits/23051df2c71dd3f9698e01de3cbfab0034c6e50e
+
+diff --git a/3rdparty/json.hpp b/3rdparty/json.hpp
+index 06da815..58e3f27 100644
+--- a/3rdparty/json.hpp
++++ b/3rdparty/json.hpp
+@@ -8491,7 +8491,7 @@ scan_number_done:
+ std::string result;
+ for (const auto c : token_string)
+ {
+- if ('\x00' <= c and c <= '\x1F')
++ if (static_cast<unsigned char>(c) <= '\x1F')
+ {
+ // escape control characters
+ std::array<char, 9> cs{{}};
diff --git a/testing/horizon/riscv.patch b/testing/horizon/riscv.patch
new file mode 100644
index 00000000000..28e414eb722
--- /dev/null
+++ b/testing/horizon/riscv.patch
@@ -0,0 +1,24 @@
+Seems like horizon has basic RISC-V support, e.g. the valid_arches array
+in meta.cc already contains riscv. However, it seems the my_arch
+function was not adjusted for riscv yet since the software likekly
+wasn't compiled on riscv before. By adding the neccessary
+riscv-ifdef-dance to my_arch from meta.cc it compiles fine on riscv.
+
+This patch assumes that riscv means RV32 and riscv64 means RV64.
+
+See also https://github.com/riscv/riscv-c-api-doc/blob/master/riscv-c-api.md
+
+diff -upr horizon-0.9.6.orig/hscript/meta.cc horizon-0.9.6/hscript/meta.cc
+--- horizon-0.9.6.orig/hscript/meta.cc 2021-07-10 19:29:55.073675786 +0200
++++ horizon-0.9.6/hscript/meta.cc 2021-07-10 19:43:31.674242939 +0200
+@@ -716,6 +716,10 @@ const std::string my_arch(const Horizon:
+ return "pmmx";
+ # elif defined(__x86_64__)
+ return "x86_64";
++# elif defined(__riscv) && __riscv_xlen == 32
++ return "riscv";
++# elif defined(__riscv) && __riscv_xlen == 64
++ return "riscv64";
+ # elif defined(__mips64)
+ # if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ return "mips64el";
diff --git a/testing/horizon/strerror.patch b/testing/horizon/strerror.patch
new file mode 100644
index 00000000000..0983d555d9a
--- /dev/null
+++ b/testing/horizon/strerror.patch
@@ -0,0 +1,12 @@
+diff --git a/hscript/meta.cc b/hscript/meta.cc
+index e3d05f2..44872e6 100644
+--- a/hscript/meta.cc
++++ b/hscript/meta.cc
+@@ -11,6 +11,7 @@
+ */
+
+ #include <assert.h>
++#include <cstring>
+ #include <fstream>
+ #include <regex>
+ #include <set>
diff --git a/testing/horizon/werror.patch b/testing/horizon/werror.patch
new file mode 100644
index 00000000000..db81095ed23
--- /dev/null
+++ b/testing/horizon/werror.patch
@@ -0,0 +1,12 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,8 +14,7 @@
+ if(MSVC)
+ add_compile_options(/W4 /WX)
+ else()
+- add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-function
+- -Werror)
++ add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-function)
+ endif()
+
+ if(POLICY CMP0100)
diff --git a/testing/horust/APKBUILD b/testing/horust/APKBUILD
new file mode 100644
index 00000000000..3506c67de27
--- /dev/null
+++ b/testing/horust/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: William Desportes <williamdes@wdes.fr>
+# Maintainer: William Desportes <williamdes@wdes.fr>
+pkgname=horust
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="Horust is a supervisor / init system written in rust and designed to be run inside containers"
+url="https://github.com/FedericoPonzi/Horust"
+# s390x, riscv64: nix/libc crates lack support
+arch="all !s390x !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+checkdepends="bash" # test_single_command uses bash
+subpackages="$pkgname-doc"
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/FedericoPonzi/Horust/archive/v$pkgver.tar.gz
+ "
+builddir="$srcdir/Horust-$pkgver"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ # Add USER ENV for test_should_correctly_deserialize_sample test
+ USER="$(whoami)" cargo test --frozen -- --skip test_termination_all_custom_signals
+}
+
+package() {
+ install -Dm755 target/release/horust -t "$pkgdir"/usr/bin
+ install -Dm0644 README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
+ install -Dm0644 DOCUMENTATION.md -t "$pkgdir"/usr/share/doc/"$pkgname"
+ install -Dm0644 example_services/* -t "$pkgdir"/usr/share/doc/"$pkgname"/example_services
+}
+
+sha512sums="
+caa762f9ccc14ed058732f023e0e347fbf5968d500dea3e3f30c9ba91b4f93aeaaefd4e41e434fca320b8b1416550c9f83383d7406015a3e60de8f71d85418c3 horust-0.1.7.tar.gz
+"
diff --git a/testing/hotspot/APKBUILD b/testing/hotspot/APKBUILD
deleted file mode 100644
index 1dc429ce7a2..00000000000
--- a/testing/hotspot/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=hotspot
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="The Linux perf GUI for performance analysis"
-url="https://github.com/KDAB/hotspot"
-# mips, s390x: undefined reference to 'QDataStream::Version qbswap<QDataStream::Version>(QDataStream::Version)'
-# armhf: missing qtdeclarative
-arch="all !s390x !armhf !mips !mips64"
-license="GPL-2.0-or-later"
-makedepends="cmake qt5-qtbase-dev elfutils-dev gettext-dev extra-cmake-modules
- threadweaver-dev ki18n-dev kconfigwidgets-dev kcoreaddons-dev kitemviews-dev
- kitemmodels-dev kio-dev solid-dev kwindowsystem-dev"
-options="!check" # wonky tests
-source="https://github.com/KDAB/hotspot/releases/download/v$pkgver/hotspot-v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-v$pkgver"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} .
- make
-}
-
-check() {
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/applications
- cp hotspot.desktop "$pkgdir"/usr/share/applications
-}
-
-sha512sums="65b00a8c4ff3a0533691125b9c45f8114fa622aecb809429aae49c500e3e289162f7e02cdb9af469d2a95dae3c9e7bb859311c85db74425497a1676000b928e2 hotspot-v1.2.0.tar.gz"
diff --git a/testing/howard-bc/APKBUILD b/testing/howard-bc/APKBUILD
index 7148bb5866c..af66f0ef6c5 100644
--- a/testing/howard-bc/APKBUILD
+++ b/testing/howard-bc/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Gavin D. Howard <yzena.tech@gmail.com>
# Maintainer: Gavin D. Howard <yzena.tech@gmail.com>
pkgname=howard-bc
-pkgver=2.7.2
+pkgver=6.7.5
pkgrel=0
pkgdesc="POSIX bc with GNU extensions"
-url="https://github.com/gavinhoward/bc"
+url="https://git.gavinhoward.com/gavin/bc"
arch="all"
license="BSD-2-Clause"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/gavinhoward/bc/archive/$pkgver.tar.gz"
+source="https://git.gavinhoward.com/gavin/bc/releases/download/$pkgver/bc-$pkgver.tar.xz"
builddir="$srcdir/bc-$pkgver"
build() {
@@ -24,4 +24,6 @@ package() {
make install
}
-sha512sums="a54ea8ac4b22447c20e68ce612a6712e90a666bb4c42270a78ac7ea27d82cc05bc5237eea8d96afb9c683be39ebedbb1a13e9669f521221e6b21434bacecf6cd howard-bc-2.7.2.tar.gz"
+sha512sums="
+5f689fd20801ea7ede725ae5dc4e8744bdf2d72424bffef99c53193a950f4bd83b6eb4c5a07556576d0b3f5b6cd7f9fc7cbcb41d27891f488bb2e97a186f76a4 bc-6.7.5.tar.xz
+"
diff --git a/testing/hping3/APKBUILD b/testing/hping3/APKBUILD
index eb1a4bc4d57..91069dc62d3 100644
--- a/testing/hping3/APKBUILD
+++ b/testing/hping3/APKBUILD
@@ -28,7 +28,7 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info
- make
+ make CC="${CC:-gcc} -fcommon"
}
package() {
@@ -40,5 +40,7 @@ package() {
install -m644 -D docs/hping3.8 "$pkgdir"/usr/share/man/man8/hping3.8
}
-sha512sums="3b3faa836e70054c8f9f004d876b7eb5f668b64826a6aaf8ca3685619111d9df4eb494a7d38b83cea6cb5f0bd164956461039bf4f73f7c7e90d80cede639b2b3 hping3-20051105.tar.gz
-036391326f3b1edff46e4deea9c10f21347d507c3979e21225b91915f12376b535ab696174bdc68119cec19e43108d9790b49091ce483ec78f84e520561c643e hping3-bytesex.patch"
+sha512sums="
+3b3faa836e70054c8f9f004d876b7eb5f668b64826a6aaf8ca3685619111d9df4eb494a7d38b83cea6cb5f0bd164956461039bf4f73f7c7e90d80cede639b2b3 hping3-20051105.tar.gz
+1e1798e0258048d29c845bb3c5f47fe13d2f6d21970a31baee8ab61b8ba64d81778577b6efb026861a5c54f55454ca263ff5b0f43fca3e33b7338aee1db23ba4 hping3-bytesex.patch
+"
diff --git a/testing/hping3/hping3-bytesex.patch b/testing/hping3/hping3-bytesex.patch
index 8d5eaa50721..a9ad8a2d9fb 100644
--- a/testing/hping3/hping3-bytesex.patch
+++ b/testing/hping3/hping3-bytesex.patch
@@ -1,11 +1,13 @@
---- a/bytesex.h.orig 2003-08-31 19:23:48.000000000 +0200
-+++ b/bytesex.h 2009-05-25 09:40:31.000000000 +0200
-@@ -9,13 +9,19 @@
+diff -upr hping3-20051105.orig/bytesex.h hping3-20051105/bytesex.h
+--- hping3-20051105.orig/bytesex.h 2021-07-11 12:34:59.678008233 +0200
++++ hping3-20051105/bytesex.h 2021-07-11 12:35:37.094708356 +0200
+@@ -9,13 +9,20 @@
#if defined(__i386__) \
|| defined(__alpha__) \
+ || defined(__x86_64__) \
+ || defined(__ia64__) \
++ || defined(__riscv) \
+ || defined(__sh__) \
+ || (defined(__arm__) && defined(__ARMEL__)) || defined(__AARCH64EL__) \
|| (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__)))
diff --git a/testing/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch b/testing/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
deleted file mode 100644
index 78f3828655d..00000000000
--- a/testing/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index ef6480f..2e6449f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -166,7 +166,7 @@ if !HPLIP_CLASS_DRIVER
- dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
- endif #HPLIP_CLASS_DRIVER
-
--dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
-+dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
- dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
-
- if !HPLIP_CLASS_DRIVER
-@@ -594,7 +594,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
- prnt/hpcups/ImageProcessor.h
-
- hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
--hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
-+hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
- #else
- #hpcupsdir = $(cupsfilterdir)
- #hpcups_PROGRAMS = hpcups
-@@ -684,16 +684,6 @@ endif #HPLIP_CLASS_DRIVER
-
- install-data-hook:
- if HPLIP_BUILD
-- if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
-- cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
-- chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
-- ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
-- fi; \
-- if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
-- cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
-- chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
-- ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
-- fi
- if !HPLIP_CLASS_DRIVER
- # If scanner build, add hpaio entry to sane dll.conf.
- if [ "$(scan_build)" = "yes" ]; then \
-diff --git a/Makefile.in b/Makefile.in
-index 5f69a92..aedc3bd 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -103,7 +103,7 @@ DIST_COMMON = $(am__configure_deps) \
-
- # ip library
- @HPLIP_BUILD_TRUE@am__append_12 = libhpip.la
--@FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@am__append_13 = prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
-+@FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@am__append_13 = prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
- @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@am__append_14 = dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
- @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@@HPLIP_CLASS_DRIVER_FALSE@am__append_15 = scan/sane/hpaio.desc \
- @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@@HPLIP_CLASS_DRIVER_FALSE@ installer/text_install.py \
-@@ -723,8 +723,7 @@ am__dist_locatedriver_DATA_DIST = locatedriver
- am__dist_models_DATA_DIST = data/models/models.dat
- am__dist_noinst_DATA_DIST = prnt/drv/hpijs.drv.in.template \
- prnt/drv/hpcups.drv.in.template \
-- prnt/hpcups/libImageProcessor-x86_64.so \
-- prnt/hpcups/libImageProcessor-x86_32.so scan/sane/hpaio.desc \
-+ scan/sane/hpaio.desc \
- installer/text_install.py data/localization/hplip_de.ts \
- data/localization/hplip_es.ts data/localization/hplip_fr.ts \
- data/localization/hplip_it.ts data/localization/hplip_pt.ts \
-@@ -9384,16 +9383,6 @@ uninstall-am: uninstall-apparmor_abstractionDATA \
-
-
- install-data-hook:
--@HPLIP_BUILD_TRUE@ if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
--@HPLIP_BUILD_TRUE@ cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
--@HPLIP_BUILD_TRUE@ chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
--@HPLIP_BUILD_TRUE@ ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
--@HPLIP_BUILD_TRUE@ fi; \
--@HPLIP_BUILD_TRUE@ if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
--@HPLIP_BUILD_TRUE@ cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
--@HPLIP_BUILD_TRUE@ chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
--@HPLIP_BUILD_TRUE@ ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
--@HPLIP_BUILD_TRUE@ fi
- # If scanner build, add hpaio entry to sane dll.conf.
- @HPLIP_BUILD_TRUE@@HPLIP_CLASS_DRIVER_FALSE@ if [ "$(scan_build)" = "yes" ]; then \
- @HPLIP_BUILD_TRUE@@HPLIP_CLASS_DRIVER_FALSE@ $(mkinstalldirs) $(DESTDIR)/etc/sane.d; \
-diff --git a/prnt/hpcups/HPCupsFilter.cpp b/prnt/hpcups/HPCupsFilter.cpp
-index 5b282d8..0bacfaf 100644
---- a/prnt/hpcups/HPCupsFilter.cpp
-+++ b/prnt/hpcups/HPCupsFilter.cpp
-@@ -31,7 +31,6 @@
- \*****************************************************************************/
-
- #include "HPCupsFilter.h"
--#include "ImageProcessor.h"
-
- #include <signal.h>
- #include <sys/wait.h>
-@@ -637,16 +636,10 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
-
-
- sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
-- image_processor_t* imageProcessor = imageProcessorCreate();
-
- while (cupsRasterReadHeader2(cups_raster, &cups_header))
- {
-
-- IMAGE_PROCESSOR_ERROR result = imageProcessorStartPage(imageProcessor, &cups_header);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
-- }
--
- current_page_number++;
-
- if (current_page_number == 1) {
-@@ -745,12 +738,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
- color_raster = rgbRaster;
- black_raster = kRaster;
-
-- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
-- }
--
--
- if ((y == 0) && !is_ljmono) {
- //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
- //may not skip blank lines before actual data
-@@ -780,12 +767,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
- }
- } // for() loop end
-
-- result = imageProcessorEndPage(imageProcessor);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
-- }
--
--
- m_Job.NewPage();
- if (err != NO_ERROR) {
- break;
-@@ -800,8 +781,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
- rgbRaster = NULL;
- }
-
-- imageProcessorDestroy(imageProcessor);
--
- unlink(hpPreProcessedRasterFile);
- return ret_status;
- }
diff --git a/testing/hplip/APKBUILD b/testing/hplip/APKBUILD
index ed309649340..3f5a0b72ebf 100644
--- a/testing/hplip/APKBUILD
+++ b/testing/hplip/APKBUILD
@@ -3,37 +3,29 @@
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
pkgname=hplip
-pkgver=3.20.5
-pkgrel=0
+pkgver=3.23.12
+pkgrel=2
pkgdesc="Drivers for HP printers and scanners"
-arch="x86 x86_64" # missing sane on several arches
-url="http://hplipopensource.com"
+arch="all"
+url="https://hplipopensource.com/"
license="GPL-2.0-only AND BSD-3-Clause AND MIT"
-makedepends="libjpeg-turbo-dev net-snmp-dev cups-dev libusb-dev sane-dev gawk python3-dev
- autoconf automake libtool"
-subpackages="$pkgname-doc $pkgname-libs sane-backend-hpaio:sane"
+makedepends="dbus-dev libjpeg-turbo-dev net-snmp-dev cups-dev libusb-dev sane-dev gawk python3-dev py3-setuptools"
+subpackages="$pkgname-doc $pkgname-libs $pkgname-ppd sane-backend-hpaio:sane"
source="https://downloads.sourceforge.net/hplip/hplip-$pkgver.tar.gz
- fix-includes.patch
- types-musl.patch
+ fix-memmove.patch
disable_upgrade.patch
- 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
- python-3.8-compat.patch
+ more-imageprocessor-removes.patch
+ no-empty-glob.patch
+ types-musl.patch
"
-prepare() {
- default_prepare
- update_config_guess
- touch NEWS README AUTHORS ChangeLog
- autoreconf -vif
-}
-
build() {
./configure --prefix=/usr \
--with-docdir=/usr/share/doc/$pkgname \
--disable-doc-build \
--disable-gui-build \
--disable-fax-build \
- --disable-dbus-build \
+ --disable-imageProcessor-build \
--enable-cups-drv-install \
--enable-cups-ppd-install
make
@@ -45,18 +37,27 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
- rm -fr "$pkgdir"/usr/bin \
- "$pkgdir"/etc/udev \
- "$pkgdir"/etc/sane.d \
- "$pkgdir"/usr/share/hal \
- "$pkgdir"/usr/lib/systemd \
- "$pkgdir"/usr/lib/cups/filter/pstotiff
install -m755 -D prnt/filters/hpps "$pkgdir"/usr/lib/cups/filter/hpps
+
+ cd "$pkgdir"
+ rm -fr usr/bin \
+ etc/udev \
+ etc/sane.d \
+ usr/share/hal \
+ usr/lib/systemd \
+ usr/lib/cups/filter/pstotiff
+}
+
+ppd() {
+ pkgdesc="$pkgdesc (PPD files)"
+ mkdir -p "$subpkgdir"/usr/share/ppd/
+ mv "$pkgdir"/usr/share/ppd/HP "$subpkgdir"/usr/share/ppd/
}
sane() {
depends="sane"
pkgdesc="SANE backend for HP multi-function peripherals"
+ install_if="sane-backends"
provides="$pkgname-sane"
mkdir -p "$subpkgdir"/usr/lib \
"$subpkgdir"/etc/sane.d/dll.d
@@ -64,9 +65,11 @@ sane() {
echo "hpaio" > "$subpkgdir"/etc/sane.d/dll.d/hpaio
}
-sha512sums="fce3c7b8a2f3b0d2875bafd2ff65a3312fae867b658cd45eea16d9f3663646b6b0b70b58e6c2b46eb24627cdeefb318b6ca9ccf5a0e9790ff19519518992da07 hplip-3.20.5.tar.gz
-173f0c2bbf0daefc717282bf125d3fd94b3914da0754078c45b58b09ab841672aae9238ca8fc0448486a871e40fc50f960da17c1e07ad3f04053d217ed634498 fix-includes.patch
-dbce7d859661b1a03847edf91db755c9b3d1ad7c2d3173741ecd89b954d1595d71f1adcbd481e81821ebd58cd9ae23adcef1cc026cfa09928fb0cba599781cd1 types-musl.patch
+sha512sums="
+7461ffec38be68421e4204021f53d2b1641e7a67c14f205390d45f487a1af90956fd221f7e1561635508103ae944f19e04d6052d3f8928f2c9685fdcdcf515df hplip-3.23.12.tar.gz
+7d247b219595a8be4a9d709f14a9034eee1cef467981ffc29d18ee3c00bee125640b1149d7e57e3332242efd978d7cb3f8f25f21d41fb39e38f9520626cfe1ff fix-memmove.patch
ac436b54aecc0c2a7fc0eb5ae8e28d483c1efd5bd9385b0a1480fb78b8ccdd28ef85db86a980aec5ca093e9095d5714f93df095bf606e9a9c919f07c64e29697 disable_upgrade.patch
-0ededf7b27abab1b2f889f19bb3587816d437ed1b8253a68e9e4af99684456057c1529b353c439e11b2235cb84560e90bb841d348fa53b49e4bbc123a41aba81 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
-33e034c99d67535326fb2361d2f9c4a70b38ddd0b64b5e6edaf8d6ac3d786fdc9ef35295a5aed53abbf6953998e7260954b3372df66dad310729c71cea201091 python-3.8-compat.patch"
+d8e76cb3757a7659f667e3d54cd0b7572dd8af1f4f87e26694dd3e4b1e0ec5cba7fe2d0ca531e14d568a675aa4a201795a3edb2c8892230e41e0d9408959b726 more-imageprocessor-removes.patch
+69442c4bd2410e69a0d6314ce5db6b4638dd6a08c817b749f7b74e8e98db90eccb05ad3b44b71278e83cc3bbf6009fee8818855c1f08df9d6d8d5a35a078d68e no-empty-glob.patch
+dbce7d859661b1a03847edf91db755c9b3d1ad7c2d3173741ecd89b954d1595d71f1adcbd481e81821ebd58cd9ae23adcef1cc026cfa09928fb0cba599781cd1 types-musl.patch
+"
diff --git a/testing/hplip/fix-includes.patch b/testing/hplip/fix-includes.patch
deleted file mode 100644
index 4389125fda6..00000000000
--- a/testing/hplip/fix-includes.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -ru hplip-3.16.10.orig/protocol/discovery/mdns.c hplip-3.16.10/protocol/discovery/mdns.c
---- hplip-3.16.10.orig/protocol/discovery/mdns.c 2016-10-21 13:48:34.000000000 +0300
-+++ hplip-3.16.10/protocol/discovery/mdns.c 2016-11-03 14:41:38.828298853 +0200
-@@ -24,10 +24,15 @@
- Author: Sanjay Kumar
- \*****************************************************************************/
-
--//#include <stdio.h>
-+#include <stdio.h>
-+#include <ctype.h>
-+#include <fcntl.h>
-+#include <unistd.h>
- #include <string.h>
- #include <syslog.h>
-+#include <malloc.h>
- #include <sys/socket.h>
-+#include <sys/select.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <arpa/inet.h>
diff --git a/testing/hplip/fix-memmove.patch b/testing/hplip/fix-memmove.patch
new file mode 100644
index 00000000000..a7e791ff9d4
--- /dev/null
+++ b/testing/hplip/fix-memmove.patch
@@ -0,0 +1,12 @@
+diff -ru hplip-3.20.5.orig/io/hpmud/musb.c hplip-3.20.5/io/hpmud/musb.c
+--- hplip-3.20.5.orig/io/hpmud/musb.c 2020-05-11 16:33:56.000000000 +0300
++++ hplip-3.20.5/io/hpmud/musb.c 2020-07-06 17:48:24.364564601 +0300
+@@ -775,7 +775,7 @@
+ len = size-1; /* leave byte for zero termination */
+ if (len > 2)
+ len -= 2;
+- memcpy(buffer, buffer+2, len); /* remove length */
++ memmove(buffer, buffer+2, len); /* remove length */
+ buffer[len]=0;
+ DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
+
diff --git a/testing/hplip/more-imageprocessor-removes.patch b/testing/hplip/more-imageprocessor-removes.patch
new file mode 100644
index 00000000000..e4ea2090629
--- /dev/null
+++ b/testing/hplip/more-imageprocessor-removes.patch
@@ -0,0 +1,67 @@
+on x86 this seems to try symlink it in /usr/lib even when disabled
+--
+diff --git a/Makefile.in b/Makefile.in
+index 3c0621c..25d1635 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -122,8 +122,6 @@ DIST_COMMON = $(am__configure_deps) \
+ @HPLIP_BUILD_TRUE@am__append_12 = libhpip.la
+ @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@am__append_13 = prnt/drv/hpijs.drv.in.template \
+ @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@ prnt/drv/hpcups.drv.in.template \
+-@FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@ prnt/hpcups/libImageProcessor-x86_64.so \
+-@FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@ prnt/hpcups/libImageProcessor-x86_32.so \
+ @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@ prnt/ipp-usb/HPLIP.conf
+ @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@am__append_14 = dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
+ @FULL_BUILD_TRUE@@HPLIP_BUILD_TRUE@@HPLIP_CLASS_DRIVER_FALSE@am__append_15 = scan/sane/hpaio.desc \
+@@ -774,8 +772,6 @@ am__dist_locatedriver_DATA_DIST = locatedriver
+ am__dist_models_DATA_DIST = data/models/models.dat
+ am__dist_noinst_DATA_DIST = prnt/drv/hpijs.drv.in.template \
+ prnt/drv/hpcups.drv.in.template \
+- prnt/hpcups/libImageProcessor-x86_64.so \
+- prnt/hpcups/libImageProcessor-x86_32.so \
+ prnt/ipp-usb/HPLIP.conf scan/sane/hpaio.desc \
+ installer/text_install.py data/localization/hplip_de.ts \
+ data/localization/hplip_es.ts data/localization/hplip_fr.ts \
+@@ -5215,11 +5211,10 @@ libapdk_la_CFLAGS = $(libapdk_la_CXXFLAGS) -Iprnt/hpijs
+ @HPCUPS_INSTALL_TRUE@ prnt/hpcups/flate_colorspace.h prnt/hpcups/RunLenEncoding.h prnt/hpcups/common_defines.h \
+ @HPCUPS_INSTALL_TRUE@ prnt/hpcups/genPCLm.h \
+ @HPCUPS_INSTALL_TRUE@ common/utils.c common/utils.h prnt/hpcups/Hbpl1_Wrapper.cpp prnt/hpcups/genPCLm.cpp \
+-@HPCUPS_INSTALL_TRUE@ prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp \
+-@HPCUPS_INSTALL_TRUE@ prnt/hpcups/ImageProcessor.h
++@HPCUPS_INSTALL_TRUE@ prnt/hpcups/genJPEGStrips.cpp prnt/hpcups/RunLenEncoding.cpp
+
+ @HPCUPS_INSTALL_TRUE@hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-@HPCUPS_INSTALL_TRUE@hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++@HPCUPS_INSTALL_TRUE@hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
+ #else
+ #hpcupsdir = $(cupsfilterdir)
+ #hpcups_PROGRAMS = hpcups
+@@ -10191,16 +10186,6 @@ uninstall-am: uninstall-apparmor_abstractionDATA \
+
+
+ install-data-hook:
+-@HPLIP_BUILD_TRUE@ if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
+-@HPLIP_BUILD_TRUE@ cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
+-@HPLIP_BUILD_TRUE@ chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
+-@HPLIP_BUILD_TRUE@ ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
+-@HPLIP_BUILD_TRUE@ fi; \
+-@HPLIP_BUILD_TRUE@ if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
+-@HPLIP_BUILD_TRUE@ cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
+-@HPLIP_BUILD_TRUE@ chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
+-@HPLIP_BUILD_TRUE@ ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+-@HPLIP_BUILD_TRUE@ fi
+ @HPLIP_BUILD_TRUE@ if [ -d "/usr/share/ipp-usb/quirks/" ]; then \
+ @HPLIP_BUILD_TRUE@ echo "ipp-usb directory exists"; \
+ @HPLIP_BUILD_TRUE@ cp prnt/ipp-usb/HPLIP.conf /usr/share/ipp-usb/quirks/ ; \
+diff --git a/hplipclassdriver.spec b/hplipclassdriver.spec
+index 1dc4cce..25bd09e 100644
+--- a/hplipclassdriver.spec
++++ b/hplipclassdriver.spec
+@@ -10,7 +10,6 @@ Group: Applications
+ ldconfig
+ semodule -i /usr/share/hplip/selinux/mypol.pp
+ #ln -sf /usr/lib/libImageProcessor-x86_64.so /usr/lib/libImageProcessor.so
+-ln -sf /usr/lib/libImageProcessor-x86_32.so /usr/lib/libImageProcessor.so
+ %description
+ The HP Linux Imaging and Printing (HPLIP) system
+ provides a unified single and multi-function connectivity
diff --git a/testing/hplip/no-empty-glob.patch b/testing/hplip/no-empty-glob.patch
new file mode 100644
index 00000000000..49dd78f841f
--- /dev/null
+++ b/testing/hplip/no-empty-glob.patch
@@ -0,0 +1,18 @@
+--- a/createPPD.sh
++++ b/createPPD.sh
+@@ -81,6 +81,7 @@
+ install -d ppd/hpcups
+ ppdc -d ppd/hpcups prnt/drv/hpcups.drv
+ for i in ppd/hpcups/*.ppd; do
++ [ -f "$i" ] || continue
+ gzip -c "$i" > "$i.gz"
+ done
+
+@@ -88,6 +89,7 @@
+ ppdc -d ppd/hpijs prnt/drv/hpijs.drv
+ echo "gzip ppd files..."
+ for i in ppd/hpijs/*.ppd; do
++ [ -f "$i" ] || continue
+ gzip -c "$i" > "$i.gz"
+ done
+ echo "building foomatic_drv.inc..."
diff --git a/testing/hplip/python-3.8-compat.patch b/testing/hplip/python-3.8-compat.patch
deleted file mode 100644
index 10cc034fdd8..00000000000
--- a/testing/hplip/python-3.8-compat.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/configure.in b/configure.in
-index 470486d..d6acb9d 100755
---- a/configure.in
-+++ b/configure.in
-@@ -611,10 +611,6 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$lite
- PYTHONINCLUDEDIR=`$PYTHON -c "from distutils.sysconfig import get_python_inc; print (get_python_inc());"`
- AC_MSG_RESULT("using $PYTHONINCLUDEDIR .... python${PYTHON_VERSION}/Python.h")
- AC_ARG_VAR(PYTHONINCLUDEDIR, [path to Python.h C header file])
-- AC_CHECK_HEADERS([python${PYTHON_VERSION}/Python.h python${PYTHON_VERSION}mu/Python.h python${PYTHON_VERSION}m/Python.h ],
-- [FOUND_HEADER=yes; break;])
-- AS_IF([test "x$FOUND_HEADER" != "xyes"],
-- [AC_MSG_ERROR([cannot find python-devel support], 6)])
- fi
-
- if test "$hpijs_only_build" = "no" && test "$scan_build" = "yes" && test "$hpcups_only_build" = "no"; then
diff --git a/testing/hsetroot/APKBUILD b/testing/hsetroot/APKBUILD
index f6f3ec67cce..b586b5c26ff 100644
--- a/testing/hsetroot/APKBUILD
+++ b/testing/hsetroot/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname="hsetroot"
pkgver="1.0.5"
-pkgrel=0
+pkgrel=1
pkgdesc="Yet another wallpaper application"
url="https://github.com/himdel/hsetroot"
arch="all"
diff --git a/testing/hstdb/APKBUILD b/testing/hstdb/APKBUILD
new file mode 100644
index 00000000000..3c6dfee2c3e
--- /dev/null
+++ b/testing/hstdb/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=hstdb
+pkgver=2.1.0
+pkgrel=2
+pkgdesc="Better history management for Zsh"
+url="https://github.com/AlexanderThaller/hstdb"
+# riscv64: textrels
+# s390x: fails to build nix crate
+arch="all !riscv64 !s390x"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="https://github.com/AlexanderThaller/hstdb/archive/$pkgver/hstdb-$pkgver.tar.gz
+ fix-format_duration-panicing.patch
+ replace-pretty_env_logger.patch
+ default-histfile-path.patch
+ rename-text_excluded.patch
+ strip-features.patch
+ "
+
+# Disable histdb-import that depends on sqlite.
+_cargo_opts="--frozen --no-default-features"
+
+prepare() {
+ cargo fetch --locked
+
+ default_prepare
+
+ # Update Cargo.lock after patching.
+ cargo fetch
+}
+
+build() {
+ cargo auditable build $_cargo_opts --release
+}
+
+check() {
+ cargo test $_cargo_opts
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+1a29c81e52822823967178e53f9135ba66ed156ebe36145e778f48e8390e7e6b8420897d07d40dfc9434d3068fdbafc1831bf441d127d2f3ba42d7a2e686188e hstdb-2.1.0.tar.gz
+ffed0c79621123e5cf8fdce729e7d0e6d9d077e975fd0c5c7c3e83b91e8ff7071edf309c5b165241e3f24b7b20acf04618e5a4e2e856843e9f9b1927c90c7136 fix-format_duration-panicing.patch
+147c543d2dc9055c9072f5eba81be27f0dd911fe3867d460982fedd4db1a50043509df119d3a9759303465a6c97506b3dc37db1c26c7d7557b6ec40248b4a482 replace-pretty_env_logger.patch
+80eaa11a2114e0352ec99bf2db955136cc08fb85a48b978254c2d6ea806d1718058b8972135f33f7ed8a22b800843b6e421ca15e908b891d5f68cddf06f106fb default-histfile-path.patch
+d8a636d5b035bf2ce79db4be34f3011adde6a6015da1db22308e796f14a557b8053caeb2f3ff7b8391198ff97df6702bfbd0c9a81bad22e2d9ec6294f6c97c8b rename-text_excluded.patch
+2c001f5a40e962acf22006854853a52abd258148042b43e32086aeacdaaffa483ffa25d9ba082206bf63e66a22ba45f9eec727299c5fe0b91127b05ddbe28a43 strip-features.patch
+"
diff --git a/testing/hstdb/default-histfile-path.patch b/testing/hstdb/default-histfile-path.patch
new file mode 100644
index 00000000000..bdffebf2842
--- /dev/null
+++ b/testing/hstdb/default-histfile-path.patch
@@ -0,0 +1,33 @@
+Patch-Source: https://github.com/AlexanderThaller/hstdb/pull/55
+--
+From edd0899c6a53db041972a3411c0973d291b1cf77 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 12 Mar 2023 19:36:37 +0100
+Subject: [PATCH] Get default histfile path from HISTFILE env. variable if
+ exists
+
+This is the standard Zsh variable to define the histfile location.
+---
+ src/opt.rs | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/opt.rs b/src/opt.rs
+index af7fb97..91cae47 100644
+--- a/src/opt.rs
++++ b/src/opt.rs
+@@ -70,9 +70,11 @@ fn default_histdb_sqlite_path() -> PathBuf {
+ }
+
+ fn default_zsh_histfile_path() -> PathBuf {
+- let base_dirs = base_directory();
+- let home = base_dirs.home_dir();
+- home.join(".histfile")
++ std::env::var_os("HISTFILE").map(PathBuf::from).unwrap_or_else(|| {
++ let base_dirs = base_directory();
++ let home = base_dirs.home_dir();
++ home.join(".histfile")
++ })
+ }
+
+ fn default_socket_path() -> PathBuf {
+
diff --git a/testing/hstdb/fix-format_duration-panicing.patch b/testing/hstdb/fix-format_duration-panicing.patch
new file mode 100644
index 00000000000..05c355016d4
--- /dev/null
+++ b/testing/hstdb/fix-format_duration-panicing.patch
@@ -0,0 +1,332 @@
+Patch-Source: https://github.com/AlexanderThaller/hstdb/commit/977aa3bc96b27e27020eb98668fd24939eb6b56a
+--
+From 977aa3bc96b27e27020eb98668fd24939eb6b56a Mon Sep 17 00:00:00 2001
+From: Alexander Thaller <alexander.thaller@trivago.com>
+Date: Thu, 7 Jul 2022 14:34:49 +0200
+Subject: [PATCH] Fix format_duration panicing when printing negative duration
+ (#50)
+
+---
+ Cargo.lock | 19 ++++---
+ Cargo.toml | 1 +
+ src/main.rs | 2 +-
+ src/opt.rs | 4 +-
+ src/run/mod.rs | 138 ++++++++++++++++++++++++++++++++-----------------
+ 5 files changed, 109 insertions(+), 55 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 3f62a3f..163a042 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -306,6 +306,12 @@ dependencies = [
+ "termcolor",
+ ]
+
++[[package]]
++name = "exitcode"
++version = "1.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193"
++
+ [[package]]
+ name = "fallible-iterator"
+ version = "0.2.0"
+@@ -453,6 +459,7 @@ dependencies = [
+ "csv",
+ "ctrlc",
+ "directories",
++ "exitcode",
+ "flume",
+ "glob",
+ "hostname",
+@@ -635,9 +642,9 @@ dependencies = [
+
+ [[package]]
+ name = "once_cell"
+-version = "1.12.0"
++version = "1.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
++checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+ [[package]]
+ name = "os_str_bytes"
+@@ -820,9 +827,9 @@ dependencies = [
+
+ [[package]]
+ name = "regex"
+-version = "1.5.6"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
++checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+@@ -837,9 +844,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+
+ [[package]]
+ name = "regex-syntax"
+-version = "0.6.26"
++version = "0.6.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
++checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+ [[package]]
+ name = "remove_dir_all"
+diff --git a/Cargo.toml b/Cargo.toml
+index 4619534..4630e39 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -41,6 +41,7 @@ sled = "0.34"
+ thiserror = "1"
+ toml = "0.5"
+ uuid = { version = "1", features = ["serde", "v4"] }
++exitcode = "1.1.2"
+
+ [dev-dependencies]
+ tempfile = "3"
+diff --git a/src/main.rs b/src/main.rs
+index fd503ef..238d7f7 100644
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -4,7 +4,6 @@
+ #![forbid(unsafe_code)]
+
+ use clap::Parser;
+-use log::error;
+
+ mod client;
+ mod config;
+@@ -15,6 +14,7 @@ mod run;
+ mod server;
+ mod store;
+
++use log::error;
+ use opt::Opt;
+
+ fn main() {
+diff --git a/src/opt.rs b/src/opt.rs
+index 9099228..af7fb97 100644
+--- a/src/opt.rs
++++ b/src/opt.rs
+@@ -400,10 +400,10 @@ impl Opt {
+ SubCommand::Import(s) => match s {
+ #[cfg(feature = "histdb-import")]
+ Import::Histdb(o) => run::import::histdb(&o.import_file, o.data_dir.data_dir)
+- .map_err(run::Error::Import),
++ .map_err(run::Error::ImportHistdb),
+ Import::Histfile(o) => {
+ run::import::histfile(&o.import_file, o.data_dir.data_dir)
+- .map_err(run::Error::Import)
++ .map_err(run::Error::ImportHistfile)
+ }
+ },
+ SubCommand::Init => {
+diff --git a/src/run/mod.rs b/src/run/mod.rs
+index d11de89..8caebbc 100644
+--- a/src/run/mod.rs
++++ b/src/run/mod.rs
+@@ -28,7 +28,10 @@ use comfy_table::{
+ Cell,
+ Table,
+ };
+-use log::debug;
++use log::{
++ debug,
++ warn,
++};
+ use std::{
+ convert::TryInto,
+ io::Write,
+@@ -69,11 +72,21 @@ pub enum Error {
+ #[error("can not write to stdout: {0}")]
+ WriteStdout(std::io::Error),
+
+- #[error("can not import entries: {0}")]
+- Import(import::Error),
+-
+ #[error("can not read configuration file: {0}")]
+ ReadConfig(config::Error),
++
++ #[error("encountered negative duration when trying to format duration")]
++ NegativeDuration,
++
++ #[cfg(feature = "histdb-import")]
++ #[error("can not import from histdb: {0}")]
++ ImportHistdb(import::Error),
++
++ #[error("can not import from histfile: {0}")]
++ ImportHistfile(import::Error),
++
++ #[error("can not format entry: {0}\nentry: {1:?}")]
++ FormatEntry(Box<Error>, Entry),
+ }
+
+ #[derive(Debug)]
+@@ -144,7 +157,9 @@ pub fn default(filter: &Filter, display: &TableDisplay, data_dir: PathBuf) -> Re
+ let entries = store::new(data_dir).get_entries(filter)?;
+
+ if display.format {
+- default_format(display, entries)
++ default_format(display, entries);
++
++ Ok(())
+ } else {
+ default_no_format(display, entries)
+ }
+@@ -187,40 +202,56 @@ pub fn default_no_format(display: &TableDisplay, entries: Vec<Entry>) -> Result<
+ }
+
+ for entry in entries {
+- let mut row = vec![format_timestamp(entry.time_finished)];
+-
+- if display.host.is_show() {
+- row.push(entry.hostname);
++ if let Err(err) = default_no_format_entry(&mut handle, display, &entry) {
++ warn!("{}", Error::FormatEntry(Box::new(err), entry));
+ }
++ }
+
+- if display.duration.is_show() {
+- row.push(format_duration(entry.time_start, entry.time_finished)?);
+- }
++ Ok(())
++}
+
+- if display.status.is_show() {
+- row.push(format!("{}", entry.result));
+- }
++fn default_no_format_entry<T>(
++ handle: &mut T,
++ display: &TableDisplay,
++ entry: &Entry,
++) -> Result<(), Error>
++where
++ T: Write,
++{
++ let mut row = vec![format_timestamp(entry.time_finished)];
+
+- if display.session.is_show() {
+- row.push(format_uuid(entry.session_id));
+- }
+- if display.pwd.is_show() {
+- row.push(format_pwd(&entry.pwd)?);
+- }
++ if display.host.is_show() {
++ row.push(entry.hostname.clone());
++ }
+
+- row.push(format_command(&entry.command, display.format));
++ if display.duration.is_show() {
++ row.push(format_duration(entry.time_start, entry.time_finished)?);
++ }
+
+- handle
+- .write_all(row.join("\t").as_bytes())
+- .map_err(Error::WriteStdout)?;
++ if display.status.is_show() {
++ row.push(format!("{}", entry.result));
++ }
+
+- handle.write_all(b"\n").map_err(Error::WriteStdout)?;
++ if display.session.is_show() {
++ row.push(format_uuid(entry.session_id));
++ }
++
++ if display.pwd.is_show() {
++ row.push(format_pwd(&entry.pwd)?);
+ }
+
++ row.push(format_command(&entry.command, display.format));
++
++ handle
++ .write_all(row.join("\t").as_bytes())
++ .map_err(Error::WriteStdout)?;
++
++ handle.write_all(b"\n").map_err(Error::WriteStdout)?;
++
+ Ok(())
+ }
+
+-pub fn default_format(display: &TableDisplay, entries: Vec<Entry>) -> Result<(), Error> {
++pub fn default_format(display: &TableDisplay, entries: Vec<Entry>) {
+ let mut table = Table::new();
+ table.load_preset(" ");
+ table.set_content_arrangement(comfy_table::ContentArrangement::Dynamic);
+@@ -254,33 +285,43 @@ pub fn default_format(display: &TableDisplay, entries: Vec<Entry>) -> Result<(),
+ }
+
+ for entry in entries {
+- let mut row = vec![format_timestamp(entry.time_finished)];
+-
+- if display.host.is_show() {
+- row.push(entry.hostname);
++ if let Err(err) = default_format_entry(&mut table, display, &entry) {
++ warn!("{}", Error::FormatEntry(Box::new(err), entry));
+ }
++ }
+
+- if display.duration.is_show() {
+- row.push(format_duration(entry.time_start, entry.time_finished)?);
+- }
++ println!("{}", table);
++}
+
+- if display.status.is_show() {
+- row.push(format!("{}", entry.result));
+- }
++fn default_format_entry(
++ table: &mut Table,
++ display: &TableDisplay,
++ entry: &Entry,
++) -> Result<(), Error> {
++ let mut row = vec![format_timestamp(entry.time_finished)];
+
+- if display.session.is_show() {
+- row.push(format_uuid(entry.session_id));
+- }
+- if display.pwd.is_show() {
+- row.push(format_pwd(&entry.pwd)?);
+- }
++ if display.host.is_show() {
++ row.push(entry.hostname.clone());
++ }
+
+- row.push(format_command(&entry.command, display.format));
++ if display.duration.is_show() {
++ row.push(format_duration(entry.time_start, entry.time_finished)?);
++ }
+
+- table.add_row(row);
++ if display.status.is_show() {
++ row.push(format!("{}", entry.result));
+ }
+
+- println!("{}", table);
++ if display.session.is_show() {
++ row.push(format_uuid(entry.session_id));
++ }
++ if display.pwd.is_show() {
++ row.push(format_pwd(&entry.pwd)?);
++ }
++
++ row.push(format_command(&entry.command, display.format));
++
++ table.add_row(row);
+
+ Ok(())
+ }
+@@ -418,6 +459,11 @@ fn format_duration(
+ ) -> Result<String, Error> {
+ let duration = time_finished - time_start;
+ let duration_ms = duration.num_milliseconds();
++
++ if duration_ms < 0 {
++ return Err(Error::NegativeDuration);
++ }
++
+ let duration_std =
+ std::time::Duration::from_millis(duration_ms.try_into().map_err(Error::ConvertDuration)?);
+
diff --git a/testing/hstdb/rename-text_excluded.patch b/testing/hstdb/rename-text_excluded.patch
new file mode 100644
index 00000000000..4b6c234498a
--- /dev/null
+++ b/testing/hstdb/rename-text_excluded.patch
@@ -0,0 +1,27 @@
+Patch-Source: https://github.com/AlexanderThaller/hstdb/pull/56
+--
+From 958fa44a77846142374f53e2beb1da8c667fc637 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 12 Mar 2023 19:55:13 +0100
+Subject: [PATCH] Rename option --text_excluded to --text-excluded for
+ consistency
+
+All other options use kebab-case. The old name will still work, I've
+specified it as an alias.
+---
+ src/opt.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/opt.rs b/src/opt.rs
+index af7fb97..db9f6e1 100644
+--- a/src/opt.rs
++++ b/src/opt.rs
+@@ -193,7 +193,7 @@ struct DefaultArgs {
+ command_text: Option<Regex>,
+
+ /// Only print entries not containing the given regex
+- #[clap(short = 'T', long = "text_excluded")]
++ #[clap(short = 'T', long = "text-excluded", alias = "text_excluded")]
+ command_text_excluded: Option<Regex>,
+
+ /// Only print entries that have been executed in the current directory
diff --git a/testing/hstdb/replace-pretty_env_logger.patch b/testing/hstdb/replace-pretty_env_logger.patch
new file mode 100644
index 00000000000..aa39770027b
--- /dev/null
+++ b/testing/hstdb/replace-pretty_env_logger.patch
@@ -0,0 +1,137 @@
+Patch-Source: https://github.com/AlexanderThaller/hstdb/pull/54
+--
+From 3754ddf5aff975e193b9a40beacbbd4e09d6d1dc Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 12 Mar 2023 01:44:36 +0100
+Subject: [PATCH] Replace outdated pretty_env_logger with env_logger
+
+pretty_env_logger hasn't been updated for 3 years and it pulls outdated
+version of env_logger.
+---
+ Cargo.lock | 40 ++++++----------------------------------
+ Cargo.toml | 2 +-
+ src/opt.rs | 2 +-
+ 3 files changed, 8 insertions(+), 36 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 163a042..aecf0b9 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -295,14 +295,11 @@ dependencies = [
+
+ [[package]]
+ name = "env_logger"
+-version = "0.7.1"
++version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
++checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+ dependencies = [
+- "atty",
+- "humantime 1.3.0",
+ "log",
+- "regex",
+ "termcolor",
+ ]
+
+@@ -459,14 +456,14 @@ dependencies = [
+ "csv",
+ "ctrlc",
+ "directories",
++ "env_logger",
+ "exitcode",
+ "flume",
+ "glob",
+ "hostname",
+- "humantime 2.1.0",
++ "humantime",
+ "log",
+ "pretty_assertions",
+- "pretty_env_logger",
+ "regex",
+ "rusqlite",
+ "serde",
+@@ -477,15 +474,6 @@ dependencies = [
+ "uuid",
+ ]
+
+-[[package]]
+-name = "humantime"
+-version = "1.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+-dependencies = [
+- "quick-error",
+-]
+-
+ [[package]]
+ name = "humantime"
+ version = "2.1.0"
+@@ -534,9 +522,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.126"
++version = "0.2.140"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
++checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+
+ [[package]]
+ name = "libsqlite3-sys"
+@@ -747,16 +735,6 @@ dependencies = [
+ "output_vt100",
+ ]
+
+-[[package]]
+-name = "pretty_env_logger"
+-version = "0.4.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
+-dependencies = [
+- "env_logger",
+- "log",
+-]
+-
+ [[package]]
+ name = "proc-macro-error"
+ version = "1.0.4"
+@@ -790,12 +768,6 @@ dependencies = [
+ "unicode-ident",
+ ]
+
+-[[package]]
+-name = "quick-error"
+-version = "1.2.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+-
+ [[package]]
+ name = "quote"
+ version = "1.0.20"
+diff --git a/Cargo.toml b/Cargo.toml
+index 4630e39..7eb4fa7 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -33,7 +33,7 @@ glob = "0.3"
+ hostname = "0.3"
+ humantime = "2"
+ log = { version = "0.4", features = ["serde"] }
+-pretty_env_logger = "0.4"
++env_logger = { version = "0.10.0", default-features = false, features = ["color"] }
+ regex = "1"
+ rusqlite = { version = "0.27", optional = true }
+ serde = { version = "1", features = ["derive"] }
+diff --git a/src/opt.rs b/src/opt.rs
+index af7fb97..de1ef24 100644
+--- a/src/opt.rs
++++ b/src/opt.rs
+@@ -356,7 +356,7 @@ impl Opt {
+ if std::env::var_os("RUST_LOG").is_none() {
+ std::env::set_var("RUST_LOG", config.log_level.as_str());
+ }
+- pretty_env_logger::init();
++ env_logger::init();
+
+ sub_command.map_or_else(
+ || {
diff --git a/testing/hstdb/strip-features.patch b/testing/hstdb/strip-features.patch
new file mode 100644
index 00000000000..4081675fa28
--- /dev/null
+++ b/testing/hstdb/strip-features.patch
@@ -0,0 +1,12 @@
+Strip some unnecessary features in dependencies to reduce size and bloat.
+
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -24 +24 @@
+-clap = { version = "3", features = ["derive", "env"] }
++clap = { version = "3", default-features = false, features = ["std", "derive", "env"] }
+@@ -35,2 +32,2 @@
+-env_logger = { version = "0.10.0", default-features = false, features = ["color"] }
+-regex = "1"
++env_logger = { version = "0.10.0", default-features = false }
++regex = { version = "1", default-features = false, features = ["std", "perf", "unicode-case", "unicode-gencat", "unicode-perl"] }
diff --git a/testing/htmlcxx/APKBUILD b/testing/htmlcxx/APKBUILD
new file mode 100644
index 00000000000..77b8f5278f9
--- /dev/null
+++ b/testing/htmlcxx/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: shum <shum@posteo.net>
+# Maintainer: shum <shum@posteo.net>
+pkgname=htmlcxx
+pkgver=0.87
+pkgrel=1
+pkgdesc="Simple non-validating CSS1 and HTML parser for C++"
+url="https://htmlcxx.sourceforge.net/"
+arch="all"
+license="LGPL-2.0-only"
+options="!check" # no testsuite
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://sourceforge.net/projects/htmlcxx/files/v$pkgver/htmlcxx-$pkgver.tar.gz"
+
+build() {
+ # gcc12 defaults to 17 which fails due to throw()
+ export CXXFLAGS="$CXXFLAGS -std=c++14"
+ ./configure \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+391b94c7ea2d17a04d46ac80f8146e6c2b14b289379c40f3d432ed9c0f36222ced6384d725cdecfc352e28c30f11976249b6a3f7133bbee3161a7883d197fca7 htmlcxx-0.87.tar.gz
+"
diff --git a/testing/htmldoc/APKBUILD b/testing/htmldoc/APKBUILD
new file mode 100644
index 00000000000..635b9a8a43b
--- /dev/null
+++ b/testing/htmldoc/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=htmldoc
+pkgver=1.9.18
+pkgrel=0
+pkgdesc="HTML conversion software"
+url="https://www.msweet.org/htmldoc"
+arch="all"
+license="GPL-2.0-only"
+options="!check" # no test suite
+makedepends="cups-dev fltk-dev libpng-dev libjpeg-turbo-dev zlib-dev"
+source="https://github.com/michaelrsweet/htmldoc/archive/v$pkgver/htmldoc-v$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+529726b719b9175c66a8e0b65902470a1b4faf6c166f3a36295ff58293a1c25324a5e4852f090760d7543f2d546d0d4e58fc70080dbfb0537895956126d0ae00 htmldoc-v1.9.18.tar.gz
+"
diff --git a/testing/htslib/APKBUILD b/testing/htslib/APKBUILD
new file mode 100644
index 00000000000..8af6f3ca9bb
--- /dev/null
+++ b/testing/htslib/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=htslib
+pkgver=1.19
+pkgrel=0
+pkgdesc="C library for high-throughput sequencing data formats"
+url="https://github.com/samtools/htslib"
+arch="all"
+license="MIT AND BSD-3-Clause-Modification"
+options="!check" # no test suite
+makedepends="
+ bzip2-dev
+ curl-dev
+ libdeflate-dev
+ xz-dev
+ zlib-dev
+ "
+source="https://github.com/samtools/htslib/releases/download/$pkgver/htslib-$pkgver.tar.bz2"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-tools:_tools
+ $pkgname-doc
+ "
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-libcurl \
+ --with-libdeflate \
+ --with-plugin-dir=/usr/lib/htslib/plugins
+ make
+}
+
+_tools() {
+ pkgdesc="Utilities for high-throughput sequencing data formats"
+ amove usr/bin
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+0001a5aba59bf655470fc3e0444b1b51575391f2b47e50bb66d0722407bfba744611ceaf8405450c4a630d506a583ef42e46bfa0842b2a95ea48cb359164f26a htslib-1.19.tar.bz2
+"
diff --git a/testing/httpie-oauth/APKBUILD b/testing/httpie-oauth/APKBUILD
index 8e2ab3698b3..a1ad687ae57 100644
--- a/testing/httpie-oauth/APKBUILD
+++ b/testing/httpie-oauth/APKBUILD
@@ -2,21 +2,25 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=httpie-oauth
pkgver=1.0.2
-pkgrel=2
+pkgrel=9
pkgdesc="OAuth plugin for HTTPie"
-url="https://github.com/jkbr/httpie-oauth"
+url="https://github.com/httpie/httpie-oauth"
arch="noarch"
license="BSD-3-Clause"
depends="python3 httpie py3-requests-oauthlib"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/h/httpie-oauth/httpie-oauth-$pkgver.tar.gz"
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="d2825143e839f82591db59995619f7437fccc42e9f126ca247e19b1533706cfaadaab5c3518d3d994e898fcb3d98ed899cd9a36f07963d701eb019587c2821c6 httpie-oauth-1.0.2.tar.gz"
diff --git a/testing/httrack/APKBUILD b/testing/httrack/APKBUILD
index ad84dbaabcb..a171c6ab9ad 100644
--- a/testing/httrack/APKBUILD
+++ b/testing/httrack/APKBUILD
@@ -3,17 +3,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=httrack
pkgver=3.49.2
-pkgrel=3
+pkgrel=5
pkgdesc="Website Copier - Free Software Offline Browser"
url="http://www.httrack.com/"
arch="all"
license="GPL-3.0"
-makedepends="zlib-dev openssl-dev libtool"
+makedepends="zlib-dev openssl-dev>3 libtool"
source="http://mirror.httrack.com/historical/${pkgname}-${pkgver}.tar.gz"
subpackages="$pkgname-doc"
builddir="$srcdir/$pkgname-$pkgver"
options="!check"
+prepare() {
+ default_prepare
+
+ update_config_guess
+ update_config_sub
+ }
+
build() {
cd "$builddir"
./configure \
diff --git a/testing/hub/APKBUILD b/testing/hub/APKBUILD
index a8b0c92f0e1..3c59fd424fa 100644
--- a/testing/hub/APKBUILD
+++ b/testing/hub/APKBUILD
@@ -4,7 +4,7 @@
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=hub
pkgver=2.14.2
-pkgrel=1
+pkgrel=22
pkgdesc="Extends git with extra features for GitHub"
url="https://hub.github.com/"
arch="all"
@@ -21,6 +21,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/github/hub/archive/v$pkgver.
builddir="$srcdir/src/github.com/github/hub"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
prepare() {
mkdir -p "${builddir%/*}"
mv $pkgname-$pkgver "$builddir"
@@ -44,7 +48,7 @@ package() {
install -Dm644 "$builddir"/etc/$pkgname.zsh_completion \
"$pkgdir"/usr/share/zsh/site-functions/_$pkgname
install -Dm644 "$builddir"/etc/$pkgname.fish_completion \
- "$pkgdir"/usr/share/fish/completions/$pkgname.fish
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
}
sha512sums="4809d12966cc983f42c8aef482e07bc4226e25fc4deba838e418664ce14ac9d2ac42842d0721a46466a80c0e492392542ecfaaccc2cea0efdd60df8b60a3ca02 hub-2.14.2.tar.gz"
diff --git a/testing/hubble-cli/APKBUILD b/testing/hubble-cli/APKBUILD
new file mode 100644
index 00000000000..c1e06a5b7f0
--- /dev/null
+++ b/testing/hubble-cli/APKBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=hubble-cli
+pkgver=0.13.0
+pkgrel=2
+pkgdesc="CLI for the distributed networking and security observability platform"
+url="https://github.com/cilium/hubble"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/cilium/hubble/archive/refs/tags/v$pkgver.tar.gz
+ byteorder-add-s390x-support.patch
+ "
+builddir="$srcdir/hubble-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ go mod vendor -v
+ default_prepare
+}
+
+build() {
+ go build -mod=vendor -v \
+ -ldflags "-X github.com/cilium/hubble/pkg.Version=$pkgver" \
+ -o hubble
+
+ for shell in bash fish zsh; do
+ ./hubble completion $shell > hubble.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 hubble -t "$pkgdir"/usr/bin/
+
+ install -Dm644 hubble.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/hubble
+ install -Dm644 hubble.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/hubble.fish
+ install -Dm644 hubble.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_hubble
+}
+
+sha512sums="
+6ff073dcbb66c6015cb13065cec5620fec7292324df63b5bfbc7af80ea54435588157bce9ddc0cf6a5ecb437ffee60e2bc44a31a0733cf8ee48bd82ac4afab71 hubble-cli-0.13.0.tar.gz
+872ccb44ac714420f87c476743d7be1b644c3a5c7e2a975d47720dc970c632ce82bb678421b053ebbc219d4a3b1f2c9f37aa74f3733a055b0f8c1dbe15fed23f byteorder-add-s390x-support.patch
+"
diff --git a/testing/hubble-cli/byteorder-add-s390x-support.patch b/testing/hubble-cli/byteorder-add-s390x-support.patch
new file mode 100644
index 00000000000..5d7fdac46e8
--- /dev/null
+++ b/testing/hubble-cli/byteorder-add-s390x-support.patch
@@ -0,0 +1,11 @@
+--- a/vendor/github.com/cilium/cilium/pkg/byteorder/byteorder_bigendian.go
++++ b/vendor/github.com/cilium/cilium/pkg/byteorder/byteorder_bigendian.go
+@@ -1,7 +1,7 @@
+ // SPDX-License-Identifier: Apache-2.0
+ // Copyright Authors of Cilium
+
+-//go:build armbe || arm64be || mips || mips64 || ppc64
++//go:build armbe || arm64be || mips || mips64 || ppc64 || s390x
+
+ package byteorder
+
diff --git a/testing/hunspell-ca-es/APKBUILD b/testing/hunspell-ca-es/APKBUILD
new file mode 100644
index 00000000000..0f9cf685fa2
--- /dev/null
+++ b/testing/hunspell-ca-es/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=hunspell-ca-es
+pkgver=3.0.7
+pkgrel=0
+pkgdesc="Catalan (Spain) hunspell dictionaries"
+url="https://www.softcatala.org/projectes/corrector-ortografic/"
+arch="noarch"
+license="GPL-2.0-or-later, LGPL-2.1-or-later"
+makedepends="unzip"
+options="!check" # no tests available
+source="https://github.com/Softcatala/catalan-dict-tools/releases/download/v$pkgver/ca.$pkgver-hunspell.zip"
+builddir="$srcdir/"
+
+package() {
+ install -d "$pkgdir"/usr/share/hunspell
+ install -m644 catalan.aff "$pkgdir"/usr/share/hunspell/ca_ES.aff
+ install -m644 catalan.dic "$pkgdir"/usr/share/hunspell/ca_ES.dic
+}
+sha512sums="
+39972b3964fa2d0fa822a2cf729efe93208aff5327fd0d8ef1ebe8f3461084c351cba4c0c73e780187f0e77a78f605659eed3ce06754ab0a6d5f2ab93bc9d155 ca.3.0.7-hunspell.zip
+"
diff --git a/testing/hunspell-es-ar/APKBUILD b/testing/hunspell-es-ar/APKBUILD
new file mode 100644
index 00000000000..33c79def80f
--- /dev/null
+++ b/testing/hunspell-es-ar/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=hunspell-es-ar
+pkgver=2.7
+pkgrel=0
+pkgdesc="Spanish (Argentina) hunspell dictionaries"
+url="https://github.com/sbosio/rla-es"
+arch="noarch"
+license="GPL-3.0-or-later AND LGPL3.0-or-later AND MPL-1.1"
+source="es_AR-$pkgver.oxt::https://github.com/sbosio/rla-es/releases/download/v$pkgver/es_AR.oxt"
+# No tests
+options="!check"
+subpackages="$pkgname-doc"
+
+unpack() {
+ msg "Unpacking sources..."
+ mkdir -p "$builddir"
+ cd "$builddir"
+ for u in $source; do
+ local s="$SRCDEST/$(filename_from_uri $u)"
+ case "$s" in
+ *.oxt) unzip $s ;;
+ esac
+ done
+}
+
+package() {
+ install -Dm644 es_AR.dic es_AR.aff -t "$pkgdir"/usr/share/hunspell
+
+ # docs
+ install -Dm644 README.txt -t "$pkgdir"/usr/share/doc/$pkgname
+}
+
+sha512sums="
+7fcd900c8486a27a9ccba7c9a090c6d41242e285fd8c12669fcdd0ff26640f406895050491b4e36e9e920943acee0990ac61a3396367a019f251e29cce92c739 es_AR-2.7.oxt
+"
diff --git a/testing/hurl/APKBUILD b/testing/hurl/APKBUILD
new file mode 100644
index 00000000000..c5bedf02a46
--- /dev/null
+++ b/testing/hurl/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=hurl
+pkgver=4.2.0
+pkgrel=0
+pkgdesc="CLI to run HTTP requests defined in simple plain text format"
+url="https://hurl.dev/"
+arch="all"
+license="Apache-2.0"
+makedepends="cargo curl-dev libxml2-dev cargo-auditable"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Orange-OpenSource/hurl/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # tests require a running local web server
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm755 target/release/hurl target/release/hurlfmt -t "$pkgdir"/usr/bin/
+ install -Dm644 docs/manual/hurl.1 docs/manual/hurlfmt.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+a1f2f83cb41baec4efa498899145008b159510db0d9447d4f0c2856df7eb80feb36483dd3842ef059a55593a6d1fb1ea19faaf18a29752327e8f0667435d3c25 hurl-4.2.0.tar.gz
+"
diff --git a/testing/hw-probe/APKBUILD b/testing/hw-probe/APKBUILD
index 8f18e3dca91..2ec5f0dfe03 100644
--- a/testing/hw-probe/APKBUILD
+++ b/testing/hw-probe/APKBUILD
@@ -1,19 +1,30 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="hw-probe"
-pkgver=1.5
-pkgrel=0
+pkgname=hw-probe
+pkgver=1.6.5
+pkgrel=1
pkgdesc="A tool to probe for hardware and upload result to the Linux Hardware Database"
url="https://github.com/linuxhw/hw-probe"
-arch="noarch !mips !mips64" # blocked by acpica
-license="LGPL-2.1"
+arch="noarch"
+license="LGPL-2.1-or-later OR BSD-4-Clause"
makedepends="perl-dev"
-depends="perl-digest-sha1 perl-data-dumper perl-libwww
-hwinfo curl dmidecode smartmontools hwids-pci hwids-usb hwids-net
-memtester hdparm i2c-tools acpica sysstat"
+depends="
+ acpica
+ curl
+ dmidecode
+ hdparm
+ hwdata
+ i2c-tools
+ memtester
+ perl
+ perl-digest-sha1
+ perl-libwww
+ smartmontools
+ sysstat
+ xz
+ "
options="!check" # no test available
source="$pkgname-$pkgver.tar.gz::https://github.com/linuxhw/hw-probe/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
build() {
make PREFIX=/usr
@@ -23,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="80dd2484bd317ac1e86d7f434626f288648aebf110a4bf81c0c05548abcb19d990119c1690fcb5796384a6c32fd5c1e827698a31165bfc41ef6df9fc7fdd368d hw-probe-1.5.tar.gz"
+sha512sums="
+68d6709ca4efe82e0e5de3b580c68f76fa31384af0c53645b6609cee14b944a410e58b12ac13f879d8d86220c1088cfaad17dc6edd24cf27700e449add6f6488 hw-probe-1.6.5.tar.gz
+"
diff --git a/testing/hwatch/APKBUILD b/testing/hwatch/APKBUILD
new file mode 100644
index 00000000000..31e593f79ce
--- /dev/null
+++ b/testing/hwatch/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=hwatch
+pkgver=0.3.11
+pkgrel=0
+pkgdesc="A modern alternative to the watch command"
+url="https://github.com/blacknon/hwatch"
+ # !s390x: nix crate
+arch="all !s390x"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/blacknon/hwatch/archive/refs/tags/$pkgver/hwatch-$pkgver.tar.gz"
+# !check: no tests provided
+# net: fetch dependencies
+options="!check net"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+ install -D -m644 man/$pkgname.1 -t "$pkgdir"/usr/share/man/man1/
+ install -D -m644 completion/fish/* -t "$pkgdir"/usr/share/fish/vendor_completions.d/
+ install -D -m644 completion/zsh/* -t "$pkgdir"/usr/share/zsh/site-functions/
+}
+
+sha512sums="
+71279a93a0bce62f08c00cd2a7ebcd787e17af1c0d35b7447fda657268faa31c0cd474a8ea3fc4ea988a68d8930dcfa0b9497d01431aee7433e79ecc64938630 hwatch-0.3.11.tar.gz
+"
diff --git a/testing/hwloc/APKBUILD b/testing/hwloc/APKBUILD
deleted file mode 100644
index d5fdd3d32b5..00000000000
--- a/testing/hwloc/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Maintainer: Daniel Sabogal <dsabogalcc@gmail.com>
-pkgname=hwloc
-pkgver=1.11.13
-pkgrel=2
-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-tools:_tools"
-source="https://www.open-mpi.org/software/hwloc/v${pkgver%.*}/downloads/$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- --prefix=/usr \
- --sbindir=/usr/bin \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make -C "$builddir" check
-}
-
-package() {
- make -C "$builddir" DESTDIR="$pkgdir" install
-}
-
-_tools() {
- pkgdesc="Portable hardware locality tools"
-
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr
-}
-
-sha512sums="dd38bcc9a5df2dcfd3bbd828ab13fdb1c1d21747a0b62e6c87df95d2835c0472590344ff5bda4f6c28e597eaba1ea11c0bc96907ad45f1215f51f95ac9f58138 hwloc-1.11.13.tar.bz2"
diff --git a/testing/hx/APKBUILD b/testing/hx/APKBUILD
new file mode 100644
index 00000000000..8cb67daabce
--- /dev/null
+++ b/testing/hx/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=hx
+pkgver=1.0.14
+pkgrel=0
+pkgdesc="Hex editor for the terminal using plain C99 + POSIX libs"
+url="https://github.com/krpors/hx"
+arch="all"
+license="MIT"
+install="$pkgname.post-install"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/krpors/hx/archive/v$pkgver.tar.gz
+ broken-makefile.patch
+ "
+options="!check" # No tests
+
+build() {
+ make hx_version="$pkgver" hx_git_hash="alpine-r$pkgrel" PREFIX=/usr
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ # rename to avoid conflicts
+ mv "$pkgdir"/usr/bin/hx "$pkgdir"/usr/bin/hx-editor
+}
+
+sha512sums="
+e8fcf210aa7f1e9857b3cff6184dc9b4e655840056511be7ba36654d665a8f57e81be032791c7d35511153ec9c6cd2ae3b689a2b3177f9650ca985c1b6827bd3 hx-1.0.14.tar.gz
+1a8d87e6e5f346cebee7f6e7e623e5cb0555e25ddef0fd13ccbaf3a3706c9e4b521be4f88d8621a02ded179a19a4da7e8bd5c8b70c1281b71cdbf49a5c838b97 broken-makefile.patch
+"
diff --git a/testing/hx/broken-makefile.patch b/testing/hx/broken-makefile.patch
new file mode 100644
index 00000000000..e33f1243345
--- /dev/null
+++ b/testing/hx/broken-makefile.patch
@@ -0,0 +1,40 @@
+- don't ignore cflags/ldflags
+- install to usr/share not share
+- don't strip always
+- don't pre-compress manpage with minimum compression
+- don't rebuild for install
+--
+diff --git a/Makefile b/Makefile
+index 6b37510..35cb380 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,14 +4,13 @@ hx_version != git describe --tags 2>/dev/null || echo "1.0.0"
+ CPPFLAGS = -DNDEBUG -DHX_GIT_HASH=\"$(hx_git_hash)\" -DHX_VERSION=\"$(hx_version)\"
+ CPPFLAGS += -D_POSIX_SOURCE # sigaction
+ CPPFLAGS += -D__BSD_VISIBLE # SIGWINCH on FreeBSD.
+-CFLAGS = -std=c99 -Wall -Wextra -pedantic -O3 -MMD -MP
+-LDFLAGS = -O3
++CFLAGS += -std=c99 -Wall -Wextra -pedantic -MMD -MP
+
+ objects := hx.o editor.o charbuf.o util.o undo.o
+
+ PREFIX ?= /usr/local
+ bindir = /bin
+-mandir = /man
++mandir = /share/man
+
+ %.gz: %
+ gzip -k $<
+@@ -24,9 +23,9 @@ debug: CPPFLAGS += -UNDEBUG # undefine the NDEBUG flag to allow assert().
+ debug: CFLAGS += -ggdb -Og
+ debug: LDFLAGS += -ggdb -Og
+
+-install: all
+- install -Dm755 -s ./hx -t $(DESTDIR)$(PREFIX)$(bindir)
+- install -Dm644 ./hx.1.gz -t $(DESTDIR)$(PREFIX)$(mandir)/man1
++install:
++ install -Dm755 ./hx -t $(DESTDIR)$(PREFIX)$(bindir)
++ install -Dm644 ./hx.1 -t $(DESTDIR)$(PREFIX)$(mandir)/man1
+
+ static: all
+ static: LDFLAGS += -static
diff --git a/testing/hx/hx.post-install b/testing/hx/hx.post-install
new file mode 100644
index 00000000000..3171985b23c
--- /dev/null
+++ b/testing/hx/hx.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cat >&2 <<-EOF
+*
+* binary is renamed from 'hx' to 'hx-editor' to avoid conflicts
+*
+EOF
diff --git a/testing/hy/0001-get_version.py-Also-write-VERSIONFILE-when-HY_VERSIO.patch b/testing/hy/0001-get_version.py-Also-write-VERSIONFILE-when-HY_VERSIO.patch
deleted file mode 100644
index 9bb2f40223e..00000000000
--- a/testing/hy/0001-get_version.py-Also-write-VERSIONFILE-when-HY_VERSIO.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5e06a5b38d9a3026589ea11cc4c64bddd9a88ef3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Sun, 17 May 2020 16:48:13 +0200
-Subject: [PATCH] get_version.py: Also write VERSIONFILE when HY_VERSION env is
- set
-
-Without this change, hy is not capable of figuring out the correct
-version in the REPL if the version was set using the HY_VERSION
-environment variable during build.
----
- get_version.py | 23 ++++++++++++-----------
- 1 file changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/get_version.py b/get_version.py
-index 9224f59..c6af6db 100644
---- a/get_version.py
-+++ b/get_version.py
-@@ -5,19 +5,20 @@ import os, subprocess, runpy
- os.chdir(os.path.split(os.path.abspath(__file__))[0])
- VERSIONFILE = os.path.join("hy", "version.py")
-
--if "HY_VERSION" in os.environ:
-- __version__ = os.environ["HY_VERSION"]
--else:
-- try:
-+try:
-+ if "HY_VERSION" in os.environ:
-+ __version__ = os.environ["HY_VERSION"]
-+ else:
- __version__ = (subprocess.check_output
- (["git", "describe", "--tags", "--dirty"])
- .decode('ASCII').strip()
- .replace('-', '+', 1).replace('-', '.'))
-- with open(VERSIONFILE, "wt") as o:
-- o.write("__version__ = {!r}\n".format(__version__))
-
-- except (subprocess.CalledProcessError, OSError):
-- if os.path.exists(VERSIONFILE):
-- __version__ = runpy.run_path(VERSIONFILE)['__version__']
-- else:
-- __version__ = "unknown"
-+ with open(VERSIONFILE, "wt") as o:
-+ o.write("__version__ = {!r}\n".format(__version__))
-+
-+except (subprocess.CalledProcessError, OSError):
-+ if os.path.exists(VERSIONFILE):
-+ __version__ = runpy.run_path(VERSIONFILE)['__version__']
-+ else:
-+ __version__ = "unknown"
diff --git a/testing/hy/APKBUILD b/testing/hy/APKBUILD
index 4f917c49cbc..0648c0d7b55 100644
--- a/testing/hy/APKBUILD
+++ b/testing/hy/APKBUILD
@@ -1,18 +1,19 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=hy
-pkgver=0.18.0
-pkgrel=3
+pkgver=0.28.0
+pkgrel=1
pkgdesc="Dialect of Lisp that's embedded in Python"
url="http://hylang.org/"
arch="noarch"
license="MIT"
-depends="python3 py3-funcparserlib py3-astor py3-rply py3-colorama"
-makedepends="py3-setuptools py3-sphinx py3-sphinx_rtd_theme"
+depends="python3 py3-funcparserlib py3-rply py3-colorama"
+makedepends="py3-setuptools py3-sphinx py3-sphinxcontrib-hydomain py3-sphinx_rtd_theme py3-wheel"
checkdepends="python3-tests py3-pytest py3-pytest-runner py3-tox"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hylang/hy/archive/$pkgver.tar.gz
- 0001-get_version.py-Also-write-VERSIONFILE-when-HY_VERSIO.patch"
+options="net"
+subpackages="$pkgname-pyc"
+#subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hylang/hy/archive/$pkgver.tar.gz"
# By default setup.py tries to determine the hy version using
# git-describe(1). Unfourtunatly, this will return the version
@@ -21,28 +22,33 @@ export HY_VERSION="$pkgver"
build() {
python3 setup.py build
- make -C docs/ man
+
+ # TODO: Building the documentation requires py3-sphinx >= 7.X.
+ #cd docs
+ #sphinx-build . _build -b man
}
check() {
# Ignore tests requiring binaries to be installed
- py.test-3 --ignore tests/test_bin.py \
+ pytest --ignore tests/test_bin.py \
--ignore tests/test_hy2py.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
- local man
- for man in docs/_build/man/*.?; do
- install -Dm644 "$man" \
- "$pkgdir"/usr/share/man/man${man##*.}/${man##*/}
- done
+ # XXX: See comment regarding documentation above.
+ # local man
+ # for man in docs/_build/*.?; do
+ # install -Dm644 "$man" \
+ # "$pkgdir"/usr/share/man/man${man##*.}/${man##*/}
+ # done
# This file is only needed for setuptools-produced source
# distributions <https://github.com/hylang/hy/commit/bd7b8bf5e19e>.
rm -rf "$pkgdir"/usr/get_version
}
-sha512sums="ff578eb6ca70f82492b37bfcc41167e8f8d50337bbdd6b049edb654163b60156a65933aa723ea357fee0f84dc25837d70bd00251760fa2b00f599088e592d97c hy-0.18.0.tar.gz
-fa5c7cd7727a878020e683528a4cd358dc114263a9c65fdb178afd0be9ce5f67b1ff3209fe71f5c36e325c0ce7eac54f2fbe1a2fc647f800f9183edf73b6cc1e 0001-get_version.py-Also-write-VERSIONFILE-when-HY_VERSIO.patch"
+sha512sums="
+71873e7f8d000f0febd6e8c48870d2a4bfeaab7f842b88194b7373c9926c6bfe59a217814b96bd4f2ec0103c5070b31128b0a794874db7aed5f2f329b224f25a hy-0.28.0.tar.gz
+"
diff --git a/testing/hyperfine/APKBUILD b/testing/hyperfine/APKBUILD
deleted file mode 100644
index fd101a203cd..00000000000
--- a/testing/hyperfine/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=hyperfine
-pkgver=1.10.0
-pkgrel=2
-pkgdesc="Command-line benchmarking tool"
-url="https://github.com/sharkdp/hyperfine"
-arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # Limited by cargo
-license="Apache-2.0 AND MIT"
-makedepends="cargo"
-subpackages="$pkgname-doc
- $pkgname-bash-completion
- $pkgname-zsh-completion
- $pkgname-fish-completion
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/sharkdp/hyperfine/archive/v$pkgver.tar.gz"
-
-build() {
- cargo build --release --locked
-}
-
-check() {
- cargo test all --release --locked
-}
-
-package() {
- install -Dm755 target/release/hyperfine \
- "$pkgdir"/usr/bin/hyperfine
- install -Dm644 doc/hyperfine.1 \
- "$pkgdir"/usr/share/man/man1/hyperfine.1
-
- install -Dm644 target/release/build/hyperfine-*/out/hyperfine.bash \
- "$pkgdir/usr/share/bash-completion/completions/hyperfine"
- install -Dm644 target/release/build/hyperfine-*/out/_hyperfine \
- "$pkgdir/usr/share/zsh/site-functions/_hyperfine"
- install -Dm644 target/release/build/hyperfine-*/out/hyperfine.fish \
- "$pkgdir/usr/share/fish/completions/hyperfine.fish"
-}
-
-sha512sums="4d5a1549f8b35601fd1b3e2978c2a1be494adbcf3b614657005e4cf5b909bfb3999d4e31eb988d63cf20c2f41c0dcce1785306a46664d89357cec34c9a03c04a hyperfine-1.10.0.tar.gz"
diff --git a/testing/hyperlink/APKBUILD b/testing/hyperlink/APKBUILD
new file mode 100644
index 00000000000..9fa4f2a7368
--- /dev/null
+++ b/testing/hyperlink/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=hyperlink
+pkgver=0.1.32
+pkgrel=0
+pkgdesc="Very fast link checker for CI"
+url="https://github.com/untitaker/hyperlink"
+# riscv64: fails to build libc crate
+# armhf: builds freeze and time out
+arch="all !riscv64 !armhf"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/untitaker/hyperlink/archive/refs/tags/$pkgver.tar.gz
+ bump-getrandom.patch
+ "
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ # Tests try to execute the compiled binary. Without `--release`, they
+ # attempt to run the debug binary, which is not present and tests fail.
+ cargo test --release --frozen
+}
+
+package() {
+ install -Dm 0755 "target/release/$pkgname" "$pkgdir/usr/bin/$pkgname"
+}
+
+sha512sums="
+c5a79963c4d314f532eef0e8fdcdd9398b565c3a656b9f50719e1a60cb233f484409ff60dd9f7a5406a9ef92798c941ac868dc617859e6e55c0475dd58cc558b hyperlink-0.1.32.tar.gz
+6ef21529ce1161a4dd22f029f530463cc5f4e1c77a191876fdc63cfee1e8a453ae25a7b8eafc45218cdc7d7d2156d51dd0d87c8d37e21f4a7e6c1e2b51f70af2 bump-getrandom.patch
+"
diff --git a/testing/hyperlink/bump-getrandom.patch b/testing/hyperlink/bump-getrandom.patch
new file mode 100644
index 00000000000..f5676ccfdf0
--- /dev/null
+++ b/testing/hyperlink/bump-getrandom.patch
@@ -0,0 +1,42 @@
+needs to get updated due to open64 symbol linking issues
+
+diff --git a/Cargo.lock b/Cargo.lock
+index fec9908..e64aa1a 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -307,9 +307,9 @@ dependencies = [
+
+ [[package]]
+ name = "getrandom"
+-version = "0.2.3"
++version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
++checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+ dependencies = [
+ "cfg-if",
+ "libc",
+@@ -451,9 +451,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.94"
++version = "0.2.147"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
++checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+
+ [[package]]
+ name = "log"
+@@ -867,9 +867,9 @@ dependencies = [
+
+ [[package]]
+ name = "wasi"
+-version = "0.10.2+wasi-snapshot-preview1"
++version = "0.11.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+ [[package]]
+ name = "winapi"
diff --git a/testing/hypnotix/APKBUILD b/testing/hypnotix/APKBUILD
new file mode 100644
index 00000000000..e142fa9c0ff
--- /dev/null
+++ b/testing/hypnotix/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=hypnotix
+pkgver=3.5
+pkgrel=0
+pkgdesc="IPTV streaming application"
+url="https://github.com/linuxmint/hypnotix"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ dconf
+ gdk-pixbuf
+ glib
+ py3-cairo
+ py3-gettext
+ py3-imdbpy
+ py3-mpv
+ py3-pillow
+ py3-requests
+ py3-setproctitle
+ py3-unidecode
+ pango
+ python3
+ xapp
+ "
+makedepends="gettext-dev"
+subpackages="$pkgname-lang"
+options="!check" # No testsuite
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/hypnotix/archive/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ sed -i "s/__DEB_VERSION__/$pkgver/g" "$builddir"/usr/lib/hypnotix/hypnotix.py
+}
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p "$pkgdir"
+ mv usr/ "$pkgdir"/usr
+}
+
+sha512sums="
+e0c3dd1fe113b669f7e79e57282b8f07d1c8638edfabf0f444bab7a6c58198cfd06f5bc3978c54fb6326e0661dfdbb5242d4cc5bb25743ce4d942b34faf9dddd hypnotix-3.5.tar.gz
+"
diff --git a/testing/hyprcursor/APKBUILD b/testing/hyprcursor/APKBUILD
new file mode 100644
index 00000000000..522cb213790
--- /dev/null
+++ b/testing/hyprcursor/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Zach DeCook <zachdecook@librem.one>
+# Maintainer: Zach DeCook <zachdecook@librem.one>
+pkgname=hyprcursor
+pkgver=0.1.7
+pkgrel=0
+pkgdesc="The hyprland cursor format, library and utilities."
+url="https://github.com/hyprwm/Hyprcursor"
+arch="all"
+license="BSD-3-Clause"
+source="https://github.com/hyprwm/Hyprcursor/archive/v$pkgver/Hyprcursor-v$pkgver.tar.gz"
+options="!check" # tests are broken
+makedepends="
+ cairo-dev
+ cmake
+ hyprlang
+ librsvg-dev
+ libzip-dev
+ tomlplusplus-dev
+ "
+checkdepends="adwaita-icon-theme"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-util"
+
+build() {
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ cd build
+ # Create a hyprcursor, so that the tests will work
+ ./hyprcursor-util -x /usr/share/icons/Adwaita/ -o ./
+ # Put this in one of the paths it will search
+ ./hyprcursor-util -c ./extracted_Adwaita -o ~/.local/share/icons/
+ # run the tests
+ LD_LIBRARY_PATH=./ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ # 2/3 of the tests don't work.
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 -t "$pkgdir"/usr/share/doc/hyprcursor docs/*
+ install -Dm644 hyprcursor-util/README.md "$pkgdir"/usr/share/doc/hyprcursor/README.md
+}
+
+util() {
+ depends="xcur2png"
+ amove usr/bin/hyprcursor-util
+}
+
+
+sha512sums="
+dd506860fc7a0d5b1f9602330becc7f9a37fda19d92fcc10150e6e23680124d63451b98a92e33b9a820db385fdba29a7f306d0c1639426aa06c749fa1dfad04e Hyprcursor-v0.1.7.tar.gz
+"
diff --git a/testing/hyprland/APKBUILD b/testing/hyprland/APKBUILD
new file mode 100644
index 00000000000..c6645578734
--- /dev/null
+++ b/testing/hyprland/APKBUILD
@@ -0,0 +1,96 @@
+# Contributor: Zach DeCook <zachdecook@librem.one>
+# Maintainer: Zach DeCook <zachdecook@librem.one>
+pkgname=hyprland
+pkgver=0.39.1
+pkgrel=0
+_commit="fe7b748eb668136dd0558b7c8279bfcd7ab4d759"
+_wlroots_commit="611a4f24cd2384378f6e500253983107c6656c64"
+_wlroots_date=20240414
+pkgdesc="Highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks."
+url="https://hyprland.org"
+arch="all"
+license="BSD-3-Clause"
+source="
+ https://github.com/hyprwm/Hyprland/archive/v$pkgver/Hyprland-v$pkgver.tar.gz
+ https://github.com/hyprwm/wlroots-hyprland/archive/$_wlroots_commit/wlroots-hyprland-$_wlroots_commit.tar.gz
+ use-system-installed-udis86.patch
+ "
+builddir="$srcdir/Hyprland-$pkgver"
+makedepends="
+ cairo-dev
+ cmake
+ elogind-dev
+ eudev-dev
+ glslang-dev
+ hwdata-dev
+ hyprcursor-dev>=0.1.7
+ hyprland-protocols
+ hyprlang
+ jq
+ libcap-dev
+ libdisplay-info-dev
+ libdrm-dev
+ libinput-dev
+ libliftoff-dev
+ libseat-dev
+ libxcb-dev
+ libxkbcommon-dev
+ mesa-dev
+ meson
+ ninja
+ pango-dev
+ pixman-dev
+ tomlplusplus-dev
+ udis86-git-dev
+ vulkan-loader-dev
+ wayland-dev
+ wayland-protocols
+ xcb-util-image-dev
+ xcb-util-renderutil-dev
+ xcb-util-wm-dev
+ xkeyboard-config-dev
+ xwayland-dev
+ "
+subpackages="$pkgname-doc $pkgname-dev $pkgname-wallpapers::noarch"
+
+prepare() {
+ default_prepare
+ # Use downloaded wlroots (instead of git submodule)
+ rmdir subprojects/wlroots-hyprland
+ mv "$srcdir/wlroots-hyprland-$_wlroots_commit" "$builddir"/subprojects/wlroots-hyprland
+ # Change the soversion (appending current hyprland version)
+ cd "$builddir"/subprojects/wlroots-hyprland
+ # Make the version number valid
+ sed -i "s/-dev/_git$_wlroots_date/" "$builddir"/subprojects/wlroots-hyprland/meson.build
+ # Set some variables in version.h.in
+ sed -i "s/@HASH@/$_commit/" "$builddir"/src/version.h.in
+ sed -i "s/@BRANCH@/build-alpine/" "$builddir"/src/version.h.in
+ message="with patches: $(printf %s "$source" | grep '.patch$' | tr '\n' ' ')"
+ sed -i "s~@MESSAGE@~$message~" "$builddir"/src/version.h.in
+ sed -i "s/@TAG@/v$pkgver/" "$builddir"/src/version.h.in
+}
+
+build() {
+ abuild-meson . output
+ meson compile ${JOBS:+-j ${JOBS}} -C output
+}
+
+check() {
+ meson test --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+wallpapers() {
+ pkgdesc="Wallpapers for Hyprland"
+
+ amove usr/share/hyprland/wall*.png
+}
+
+sha512sums="
+173dc2baea68e301fad13b1634779f859263abdba7ab60233791c6c8c8ed2def24afdfb51d3db1820646b391530f1f6aeca82d8cf6de1ef178810c11fbdef37b Hyprland-v0.39.1.tar.gz
+157c94643bc630b1c97f05f620c2adb21f744cac16ed8c53ab377820ce8af2ec6b826197a41b6814a838b6e032b92a790f4214210831f8e91a6aff0346f54027 wlroots-hyprland-611a4f24cd2384378f6e500253983107c6656c64.tar.gz
+d2f7b35552fa0a3e992b9050f7066d983b3b7c193a888018b2e0d6fa9e17fc3deff922fa3989d0bb79e8bd82df2bc16ff0c27a82759ad0ce2e72789506eb07db use-system-installed-udis86.patch
+"
diff --git a/testing/hyprland/use-system-installed-udis86.patch b/testing/hyprland/use-system-installed-udis86.patch
new file mode 100644
index 00000000000..d390f56d919
--- /dev/null
+++ b/testing/hyprland/use-system-installed-udis86.patch
@@ -0,0 +1,15 @@
+diff --git a/meson.build b/meson.build
+index de29528e..f2439290 100644
+--- a/meson.build
++++ b/meson.build
+@@ -37,9 +37,7 @@ wlroots = subproject('wlroots', default_options: ['examples=false', 'renderers=g
+ have_xwlr = wlroots.get_variable('features').get('xwayland')
+ xcb_dep = dependency('xcb', required: get_option('xwayland'))
+
+-cmake = import('cmake')
+-udis = cmake.subproject('udis86')
+-udis86 = udis.dependency('libudis86')
++udis86 = dependency('udis86')
+
+ if get_option('xwayland').enabled() and not have_xwlr
+ error('Cannot enable Xwayland in Hyprland: wlroots has been built without Xwayland support')
diff --git a/testing/hyx/APKBUILD b/testing/hyx/APKBUILD
new file mode 100644
index 00000000000..30b7cbca027
--- /dev/null
+++ b/testing/hyx/APKBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Eirik Furuseth <alpine@heplaphon.com>
+pkgname=hyx
+pkgver=2021.06.09
+pkgrel=0
+pkgdesc="Minimalistic, but powerful console hex editor"
+url="https://yx7.cc/code/"
+arch="all"
+license="MIT"
+source="https://yx7.cc/code/hyx/hyx-$pkgver.tar.xz"
+options="!check" # no unit tests
+
+build() {
+ make
+}
+
+package() {
+ install -Dm0755 hyx -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+43f990e29ce097f8e2378a4511a3097e2576fd72e16f3b5c81688702487c8715e7189cb4a368e344c5440a90a1c759d2f76e7831ab401fa814f7e5ff7e145bd8 hyx-2021.06.09.tar.xz
+"
diff --git a/testing/i2pd/APKBUILD b/testing/i2pd/APKBUILD
deleted file mode 100644
index d0c97c98bfa..00000000000
--- a/testing/i2pd/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Maintainer: l-n-s <supervillain@riseup.net>
-# Contributor: r4sas <r4sas@i2pmail.org>
-pkgname=i2pd
-pkgver=2.32.0
-pkgrel=0
-pkgdesc="I2P Router written in C++"
-url="https://github.com/PurpleI2P/i2pd"
-arch="all"
-license="BSD-3-Clause"
-pkgusers="i2pd"
-depends="musl-utils"
-makedepends="boost-dev miniupnpc-dev openssl-dev openssl zlib-dev"
-options="!check" # No test suite
-install="$pkgname.pre-install"
-source="https://github.com/PurpleI2P/i2pd/archive/$pkgver/i2pd-$pkgver.tar.gz
- i2pd.initd
- i2pd.confd
- "
-subpackages="$pkgname-openrc"
-
-build() {
- local _arch_opts="USE_UPNP=yes"
-
- case "$CARCH" in
- aarch64|arm*) _arch_opts="$_arch_opts USE_AESNI=no USE_AVX=no" ;;
- esac
-
- make $_arch_opts
-}
-
-package() {
-
- install -D -m 755 i2pd "$pkgdir"/usr/sbin/i2pd
-
- install -dm755 -o $pkgusers \
- "$pkgdir"/etc/$pkgname \
- "$pkgdir"/usr/share/$pkgname \
- "$pkgdir"/var/lib/$pkgname \
- "$pkgdir"/var/log/$pkgname
-
- install -D -m 644 contrib/tunnels.conf "$pkgdir"/etc/i2pd/tunnels.conf
- install -D -m 644 contrib/i2pd.conf "$pkgdir"/etc/i2pd/i2pd.conf
- cp -r contrib/certificates/ "$pkgdir"/usr/share/$pkgname/certificates
- ln -s /usr/share/$pkgname/certificates "$pkgdir"/var/lib/$pkgname/certificates
-
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
-}
-
-sha512sums="f76eb2744b55b4099914cb42e7fe6821e3b7b3dbbc93d491a83cfb8cd9fb67e6559f20891874215060a3797b5f66051480e49670032c952fcddf91aa96e0e41e i2pd-2.32.0.tar.gz
-5a95beef635fc2f5beecee314964fd41713ed61f92c4e972276208e0a2c86604c2b42a8e922863fc658a7a5789c9f43fddf7f76350fc281a44f2f42258a01201 i2pd.initd
-ba94e5505f4eeb9a32159aa0a3b7f68ff077abb9704800f70502ac75fd5bcfcb20450ebd983d0523beca2d13e718d7bf888f53ec455d1f41701c16d09c3b2d28 i2pd.confd"
diff --git a/testing/i2pd/i2pd.confd b/testing/i2pd/i2pd.confd
deleted file mode 100644
index 9b609c35088..00000000000
--- a/testing/i2pd/i2pd.confd
+++ /dev/null
@@ -1,13 +0,0 @@
-I2PD_USER=i2pd
-I2PD_GROUP=i2pd
-I2PD_LOG=/var/log/i2pd/i2pd.log
-I2PD_PID=/run/i2pd/i2pd.pid
-
-# max number of open files (for floodfill)
-rc_ulimit="-n 4096"
-
-# Options to i2pd
-I2PD_OPTIONS="--daemon --service --pidfile=${I2PD_PID} \
---log=file --logfile=${I2PD_LOG} \
---conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf"
-
diff --git a/testing/i2pd/i2pd.initd b/testing/i2pd/i2pd.initd
deleted file mode 100644
index 5f4346aba9f..00000000000
--- a/testing/i2pd/i2pd.initd
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2016 Gentoo Foundation
-# Copyright 2018 l-n-s <supervillain@riseup.net>
-# Distributed under the terms of the GNU General Public License v2
-
-description="C++ daemon for accessing the I2P network"
-description_graceful="Graceful shutdown, takes 10 minutes"
-
-command="/usr/sbin/i2pd"
-command_args="${I2PD_OPTIONS}"
-user="${I2PD_USER}:${I2PD_GROUP}"
-start_stop_daemon_args="
- --user \"${user}\"
- --pidfile \"${I2PD_PID}\"
- --progress
-"
-retry="SIGTERM/20/SIGKILL/20"
-
-I2PD_PID_DIR=$(dirname "${I2PD_PID}")
-
-extra_started_commands="graceful"
-
-depend() {
- need net
- after firewall
- use dns logger netmount
-}
-
-start_pre() {
- if [ -z "${I2PD_USER}" ] || \
- [ -z "${I2PD_GROUP}" ] || \
- [ -z "${I2PD_PID}" ] || \
- [ -z "${I2PD_OPTIONS}" ] ; then
- eerror "Not all variables I2PD_USER, I2PD_GROUP, I2PD_PID, I2PD_OPTIONS are defined."
- eerror "Check your /etc/conf.d/i2pd."
- return 1
- fi
- if [ -n "${I2PD_LOG}" ]; then
- checkpath -f -o "${user}" "${I2PD_LOG}"
- fi
- checkpath -d -m 0750 -o "${user}" "${I2PD_PID_DIR}"
-}
-
-graceful() {
- # on SIGINT, i2pd stops accepting tunnels and shuts down in 600 seconds
- ebegin "Gracefully stopping i2pd, this takes 10 minutes"
- mark_service_stopping
- eval start-stop-daemon --stop ${start_stop_daemon_args} \
- --exec "${command}" --retry 'SIGINT/620/SIGTERM/20/SIGKILL/20'
- eend $? && mark_service_stopped
-}
-
diff --git a/testing/i2pd/i2pd.pre-install b/testing/i2pd/i2pd.pre-install
deleted file mode 100644
index 1244368da77..00000000000
--- a/testing/i2pd/i2pd.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-addgroup -S i2pd 2>/dev/null
-adduser -S -D -H -h /var/lib/i2pd -s /sbin/nologin -G i2pd -g i2pd i2pd 2>/dev/null
-
-exit 0
-
diff --git a/testing/i2util/APKBUILD b/testing/i2util/APKBUILD
index 61f685342f7..21586739ce6 100644
--- a/testing/i2util/APKBUILD
+++ b/testing/i2util/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname="i2util"
pkgver="4.2.1"
-pkgrel=0
+pkgrel=1
pkgdesc="Internet2 utility library"
url="https://github.com/perfsonar/i2util"
arch="all"
diff --git a/testing/i3blocks/APKBUILD b/testing/i3blocks/APKBUILD
deleted file mode 100644
index 450248df475..00000000000
--- a/testing/i3blocks/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Marvin Steadfast <marvin@xsteadfastx.org>
-# Maintainer: Marvin Steadfast <marvin@xsteadfastx.org>
-pkgname=i3blocks
-pkgver=1.5
-pkgrel=0
-pkgdesc="A minimalist scheduler for your status line scripts"
-url="https://github.com/vivien/i3blocks"
-arch="all"
-license="GPL-3.0-or-later"
-options="!check" # no test suite
-makedepends="ronn autoconf automake bash-completion"
-subpackages="$pkgname-bash-completion $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/vivien/i3blocks/archive/$pkgver.tar.gz
- fix-makefile.patch
- "
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install
-}
-
-sha512sums="759829d59f94070251378d437891c2df05715fbd0b734c34dd41767d61957f301c6125b0058668295b8eeac29038fae6b2e8c194f903398ee736662213d1d534 i3blocks-1.5.tar.gz
-b54fb4b9f2a08a1bfafb7ebcf36c87c850d795af2c6f4509bcfa0853340f96bf13662445e24033a94c6e13b9e0b8a7ab6a52a914b99ee8196e0d2275eaf9b5d1 fix-makefile.patch"
diff --git a/testing/i3blocks/fix-makefile.patch b/testing/i3blocks/fix-makefile.patch
deleted file mode 100644
index 22c41a1a304..00000000000
--- a/testing/i3blocks/fix-makefile.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index d755a2b..f8a598e 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -34,9 +34,6 @@ if ENABLE_BASH_COMPLETION
- bashcompletiondir = $(BASH_COMPLETION_DIR)
- bashcompletion_DATA = bash-completion
-
--install-data-local:
-- ( cd '$(DESTDIR)$(BASH_COMPLETION_DIR)' && mv bash-completion i3blocks )
--
- uninstall-local:
- ( cd '$(DESTDIR)$(BASH_COMPLETION_DIR)' && rm -rf i3blocks )
- endif
-
diff --git a/testing/i3status-rust/APKBUILD b/testing/i3status-rust/APKBUILD
index 18e35f7b063..99d5a22f22d 100644
--- a/testing/i3status-rust/APKBUILD
+++ b/testing/i3status-rust/APKBUILD
@@ -1,22 +1,68 @@
# Contributor: Galen Abell <galen@galenabell.com>
+# Contributor: Maxim Karasev <begs@disroot.org>
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=i3status-rust
-pkgver=0.13.1
+pkgver=0.33.1
pkgrel=0
pkgdesc="i3status replacement in Rust"
url="https://github.com/greshake/i3status-rust"
-arch="all !s390x !mips !mips64"
+arch="all !s390x" # try unpinning s390x once nix crate is updated to 0.28
license="GPL-3.0-only"
-makedepends="rust cargo dbus-dev libpulse"
-options="net !check" # no tests
-provides="i3status-rs"
-source="$pkgname-$pkgver.tar.gz::https://github.com/greshake/i3status-rust/archive/v$pkgver.tar.gz"
+makedepends="
+ cargo
+ cargo-auditable
+ curl-dev
+ dbus-dev
+ lm-sensors-dev
+ notmuch-dev
+ openssl-dev>3
+ pulseaudio-dev
+ "
+options="net"
+provides="i3status-rs=$pkgver-r$pkgrel"
+subpackages="$pkgname-doc"
+source="
+ https://github.com/greshake/i3status-rust/archive/refs/tags/v$pkgver/i3status-rust-v$pkgver.tar.gz
+ https://dev.alpinelinux.org/archive/i3status-rs/i3status-rs-$pkgver.1
+ "
+
+_common_features="pulseaudio,notmuch,maildir,icu_calendar"
+
+case "$CARCH" in
+ armhf | armv7 | x86)
+ # pipewire crate does not build on 32-bit arches: https://gitlab.freedesktop.org/pipewire/pipewire-rs/-/issues/43
+ _cargo_opts="--no-default-features --features $_common_features"
+ ;;
+ *)
+ makedepends="$makedepends clang-dev pipewire-dev"
+ _cargo_opts="--features $_common_features,pipewire"
+ ;;
+esac
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
build() {
- cargo build --release --verbose --locked
+ cargo auditable build --release --frozen $_cargo_opts
+}
+
+check() {
+ cargo test $_cargo_opts
}
package() {
- install -Dm755 target/release/i3status-rs "$pkgdir"/usr/bin/i3status-rs
+ install -Dm755 target/release/i3status-rs -t "$pkgdir"/usr/bin/
+
+ install -Dm644 "$srcdir"/i3status-rs-$pkgver.1 \
+ "$pkgdir"/usr/share/man/man1/i3status-rs.1
+
+ install -Dm644 files/themes/* -t "$pkgdir"/usr/share/i3status-rust/themes/
+ install -Dm644 files/icons/* -t "$pkgdir"/usr/share/i3status-rust/icons/
}
-sha512sums="85c009d9164caac3b209c6afd0d7ad874cf8cea57a6c66c21a9484b186297f02c55cb8fb913db86cd0ccb55cabf14014900043927f9dea768ac7dc5b29a9f787 i3status-rust-0.13.1.tar.gz"
+
+sha512sums="
+756dd99603c98c4cf3167ffb1c769d766aae1347361459e9d128c10249c2e287983efda6c6496db5429a81f24c5c54a3bc5e54a38b3b2e93f2cb98a6d5dfffe3 i3status-rust-v0.33.1.tar.gz
+45933c5d140e397d84c3096fbe2a5af356f13c17ca3bc8f817af517f0b1d770455ae19177a439d47a95fe8ef94df869d88ee3c050184501969ec71eb6d474cf5 i3status-rs-0.33.1.1
+"
diff --git a/testing/i3wm-gaps/APKBUILD b/testing/i3wm-gaps/APKBUILD
deleted file mode 100644
index 8d160a91826..00000000000
--- a/testing/i3wm-gaps/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=i3wm-gaps
-pkgver=4.18.1
-pkgrel=0
-pkgdesc="Improved dynamic tiling window manager with additional features"
-url="https://github.com/Airblader/i3"
-arch="all"
-license="BSD-3-Clause"
-replaces="i3wm"
-makedepends="bison flex libxcb-dev xcb-util-cursor-dev
- xcb-util-keysyms-dev xcb-util-wm-dev libev-dev pango-dev cairo-dev
- yajl-dev startup-notification-dev pcre-dev libxkbcommon-dev
- xcb-util-xrm-dev asciidoc perl xmlto autoconf automake libtool"
-subpackages="$pkgname-doc"
-source="i3wm-$pkgver.tar.gz::https://github.com/Airblader/i3/archive/$pkgver.tar.gz"
-builddir="$srcdir/i3-$pkgver"
-options="!check" # missing perl bindings for libxcb
-
-prepare() {
- default_prepare
- autoreconf -vfi
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --disable-builddir
- make
-}
-
-package() {
- make DESTDIR="$pkgdir/" install
-
- install -d "$pkgdir/usr/share/man/man1"
- install -m644 man/*.1 "$pkgdir"/usr/share/man/man1/
-}
-
-sha512sums="63a37e5920b3945be58e54f86b75523499e6b3a8dd9a05a952118e5609c9bd50fedabe05160eef0ebc377020042508a552f2a32272afcf1c913efcf48ac3e460 i3wm-4.18.1.tar.gz"
diff --git a/testing/ibmswtpm2/APKBUILD b/testing/ibmswtpm2/APKBUILD
deleted file mode 100644
index b3130e03407..00000000000
--- a/testing/ibmswtpm2/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Olliver Schinagl <oliver@schinagl.nl>
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-pkgname="ibmswtpm2"
-pkgver="1332"
-pkgrel=0
-pkgdesc="Software implementation of the TCG TPM 2.0 specification by IBM."
-url="http://ibmswtpm.sourceforge.net/ibmswtpm2.html"
-arch="all"
-license="MIT"
-makedepends="musl-dev openssl-dev"
-options="!check" # No selftest available
-source="https://downloads.sourceforge.net/project/ibmswtpm2/ibmtpm${pkgver}.tar.gz"
-builddir="${srcdir}/src"
-
-build() {
- make
-}
-
-package() {
- install -D -m 655 -t "${pkgdir}/usr/bin" \
- "${builddir}/tpm_server"
-}
-
-sha512sums="63ef597e9d958a0039b88f3f864f063546223641f8550869d21e401cd55464ccb6b3e8421354653acb9266a39b4417d930e3fe6f1825991931c2eadd4bf7b2a6 ibmtpm1332.tar.gz"
diff --git a/testing/ibus-anthy/APKBUILD b/testing/ibus-anthy/APKBUILD
deleted file mode 100644
index 5ab71257522..00000000000
--- a/testing/ibus-anthy/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=ibus-anthy
-pkgver=1.5.11
-pkgrel=2
-pkgdesc="Japanese input method Anthy IMEngine for IBus Framework"
-url="https://github.com/ibus/ibus-anthy"
-arch="all !s390x !mips !mips64" # ibus needs librsvg which isn't available on s390x
-license="GPL-2.0-only"
-depends="ibus anthy py3-gobject3 gtk-update-icon-cache"
-makedepends="
- m4 automake autoconf intltool gobject-introspection
- gobject-introspection-dev ibus-dev anthy-dev
- py3-pytest
-"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ibus/ibus-anthy/archive/$pkgver.tar.gz"
-subpackages="$pkgname-lang"
-# anthy tests require a running X server
-options="!check"
-
-build() {
- ./autogen.sh \
- --prefix=/usr \
- --libexec=/usr/lib/ibus
- gettextize -f
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="ffdcdecb7c61afe1d52352935144f8b0af7fc0e22efce7b91b60c6c2061bc998362336a41c246887f604126e6bba2b215dbec771636926a9902ec5f761b918b9 ibus-anthy-1.5.11.tar.gz"
diff --git a/testing/ibus-rime/APKBUILD b/testing/ibus-rime/APKBUILD
new file mode 100644
index 00000000000..bc75bb08688
--- /dev/null
+++ b/testing/ibus-rime/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: mio <miyopan@e.email>
+# Maintainer: mio <miyopan@e.email>
+pkgname=ibus-rime
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="Chinese input method Rime for IBus Framework"
+url="https://github.com/rime/ibus-rime"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ ibus-dev
+ libnotify-dev
+ librime-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/rime/ibus-rime/archive/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+59b05efe7d5c7dd6dd88a213f05967b19f4946ad0685e29c6c87fbc47ffb3059cc16c88403cfbb945bcbf8637b20d34dcfd91d442c23bb6a9a18d60febbaf27b ibus-rime-1.5.0.tar.gz
+"
diff --git a/testing/icdiff/APKBUILD b/testing/icdiff/APKBUILD
deleted file mode 100644
index fdca1199315..00000000000
--- a/testing/icdiff/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=icdiff
-pkgver=1.9.5
-pkgrel=2
-pkgdesc="Improved colored diff"
-url="https://www.jefftk.com/icdiff"
-arch="noarch"
-license="Python-2.0"
-depends="python3 py3-setuptools"
-makedepends="python3-dev bash"
-checkdepends="py3-flake8"
-source="https://github.com/jeffkaufman/icdiff/archive/release-$pkgver.tar.gz
- fix-flake8-binary.patch
- fix-python-interpreter.patch
- disable-git-diff-test.patch
- "
-builddir="$srcdir/icdiff-release-$pkgver"
-
-prepare() {
- default_prepare
-
- # patch removes executable bit
- chmod +x test.sh icdiff
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- ./test.sh python3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f4c50da1e73a1af2fd63feabfd180125637a856a8757356eb3b48bbc21871f36a2c876acd2e2ba9d354c8f6e658f6e262fbbfd65fa4078d0adebc1353d87e40a release-1.9.5.tar.gz
-fc6fa3c98b245a9ce1830428c1d59b37f75faaab00dbf44a6d78f84318cfb4bf3fdc826fc86b9ca8a9efbd2a760223525270ea79e4d761e64d4a18597693eb64 fix-flake8-binary.patch
-949b3935c44ea2982949bf2389023f091a7e96d61bd05561cddf1f4baccb13da7bf138ac1707e5727190703f539ddca8ddacb79546d6d35a14a4e7e6c63685e4 fix-python-interpreter.patch
-e4aefafc7cb9c94ea4d526f79916bd4e945bfcd3c6661ae69fc45e99ed3f399ed6d321ca9ebc44590367814f4b0feadcbeb55c3662528dda7b5919c2104651a4 disable-git-diff-test.patch"
diff --git a/testing/icdiff/disable-git-diff-test.patch b/testing/icdiff/disable-git-diff-test.patch
deleted file mode 100644
index fc28d3ebfeb..00000000000
--- a/testing/icdiff/disable-git-diff-test.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-This test is failing because it assumes to be run in it's own repository.
-
-See https://github.com/jeffkaufman/icdiff/issues/166
-diff --git a/test.sh b/test.sh
-index 99729d7234..bad21cd213 100755
---- a/test.sh
-+++ b/test.sh
-@@ -144,7 +144,6 @@ check_gold gold-subcolors-bad-color tests/input-{1,2}.txt --cols=80 --color-map=
- check_gold gold-subcolors-bad-cat tests/input-{1,2}.txt --cols=80 --color-map='chnge:magenta,description:cyan_bold'
- check_gold gold-subcolors-bad-fmt tests/input-{1,2}.txt --cols=80 --color-map='change:magenta:gold,description:cyan_bold'
- check_gold gold-bad-encoding.txt tests/input-{1,2}.txt --encoding=nonexistend_encoding
--check_git_diff gitdiff-only-newlines.txt 4e86205629~1 4e86205629
-
- # Testing pipe behavior doesn't fit well with the check_gold system
- $INVOCATION tests/input-{4,5}.txt 2>/tmp/icdiff-pipe-error-output | head -n 1
diff --git a/testing/icdiff/fix-flake8-binary.patch b/testing/icdiff/fix-flake8-binary.patch
deleted file mode 100644
index 87098ec55a1..00000000000
--- a/testing/icdiff/fix-flake8-binary.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/test.sh b/test.sh
-old mode 100755
-new mode 100644
-index b44425d817..be8eb15fa9
---- a/test.sh
-+++ b/test.sh
-@@ -129,7 +129,7 @@ if [ "$VERSION" != $(head -n 1 ChangeLog) ]; then
- fail
- fi
-
--if ! command -v 'flake8' >/dev/null 2>&1; then
-+if ! command -v 'flake8-3' >/dev/null 2>&1; then
- echo 'Could not find flake8. Ensure flake8 is installed and on your $PATH.'
- if [ -z "$VIRTUAL_ENV" ]; then
- echo 'It appears you have have forgotten to activate your virtualenv.'
-@@ -139,7 +139,7 @@ if ! command -v 'flake8' >/dev/null 2>&1; then
- fi
-
- echo 'Running flake8 linter...'
--if ! flake8 icdiff; then
-+if ! flake8-3 icdiff; then
- fail
- fi
-
diff --git a/testing/icdiff/fix-python-interpreter.patch b/testing/icdiff/fix-python-interpreter.patch
deleted file mode 100644
index 05d1cb9a9e9..00000000000
--- a/testing/icdiff/fix-python-interpreter.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/icdiff b/icdiff
-old mode 100755
-new mode 100644
-index 3e4e8721e8..b24847eac6
---- a/icdiff
-+++ b/icdiff
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- """ icdiff.py
-
diff --git a/testing/icestorm/0001-fix-format-specifiers.patch b/testing/icestorm/0001-fix-format-specifiers.patch
new file mode 100644
index 00000000000..d489fdb9d5d
--- /dev/null
+++ b/testing/icestorm/0001-fix-format-specifiers.patch
@@ -0,0 +1,95 @@
+Use `%zu` as format specifier for printing `size_t` for better portability.
+--- a/icebram/icebram.cc 2023-12-12 13:01:19.000000000 +0100
++++ b/icebram/icebram.cc 2024-01-10 14:32:01.012119690 +0100
+@@ -457,32 +457,32 @@ update(struct app_opts *opts)
+ // Perform checks
+ if ((hf_to.word_size() > 0) && (hf_from.word_size() > hf_to.word_size())) {
+ if (opts->verbose)
+- fprintf(stderr, "Padding to_hexfile words from %lu bits to %lu bits\n",
++ fprintf(stderr, "Padding to_hexfile words from %zu bits to %zu bits\n",
+ hf_to.word_size(), hf_from.word_size());
+ hf_to.pad_words_to(hf_from.word_size());
+ }
+
+ if (hf_to.word_size() != hf_from.word_size()) {
+- fprintf(stderr, "Hexfiles have different word sizes! (%lu bits vs. %lu bits)\n",
++ fprintf(stderr, "Hexfiles have different word sizes! (%zu bits vs. %zu bits)\n",
+ hf_from.word_size(), hf_to.word_size());
+ return 1;
+ }
+
+ if ((hf_to.size() > 0) && (hf_from.size() > hf_to.size())) {
+ if (opts->verbose)
+- fprintf(stderr, "Padding to_hexfile from %lu words to %lu\n",
++ fprintf(stderr, "Padding to_hexfile from %zu words to %zu\n",
+ hf_to.size(), hf_from.size());
+ hf_to.pad_to(hf_from.size());
+ }
+
+ if (hf_to.size() != hf_from.size()) {
+- fprintf(stderr, "Hexfiles have different number of words! (%lu vs. %lu)\n",
++ fprintf(stderr, "Hexfiles have different number of words! (%zu vs. %zu)\n",
+ hf_from.size(), hf_to.size());
+ return 1;
+ }
+
+ if (hf_from.size() % 256 != 0) {
+- fprintf(stderr, "Hexfile number of words (%lu) is not divisible by 256!\n",
++ fprintf(stderr, "Hexfile number of words (%zu) is not divisible by 256!\n",
+ hf_from.size());
+ return 1;
+ }
+@@ -494,20 +494,20 @@ update(struct app_opts *opts)
+
+ // Debug
+ if (opts->verbose)
+- fprintf(stderr, "Loaded pattern for %lu bits wide and %lu words deep memory.\n",
++ fprintf(stderr, "Loaded pattern for %zu bits wide and %zu words deep memory.\n",
+ hf_from.word_size(), hf_from.size());
+
+ // Generate mapping for slices
+ std::map<std::vector<bool>, std::pair<std::vector<bool>, int>> pattern = hf_from.generate_pattern(hf_to);
+ if (opts->verbose)
+- fprintf(stderr, "Extracted %lu bit slices from from/to hexfile data.\n", pattern.size());
++ fprintf(stderr, "Extracted %zu bit slices from from/to hexfile data.\n", pattern.size());
+
+ // Load FPGA config from stdin
+ AscFile bitstream;
+ bitstream.load_config(std::cin);
+
+ if (opts->verbose)
+- fprintf(stderr, "Found %lu initialized bram cells in asc file.\n", bitstream.n_ebrs());
++ fprintf(stderr, "Found %zu initialized bram cells in asc file.\n", bitstream.n_ebrs());
+
+ // Apply pattern
+ bitstream.apply_pattern(pattern);
+diff --color -rupN a/icepack/icepack.cc b/icepack/icepack.cc
+--- a/icepack/icepack.cc 2023-12-12 13:01:19.000000000 +0100
++++ b/icepack/icepack.cc 2024-01-10 14:30:17.829617241 +0100
+@@ -902,10 +902,10 @@ void FpgaConfig::write_ascii(std::ostrea
+ cic.get_cram_index(bit_x, bit_y, cram_bank, cram_x, cram_y);
+ tile_bits.insert(tile_bit_t(cram_bank, cram_x, cram_y));
+ if (cram_x > int(this->cram[cram_bank].size())) {
+- error("cram_x %d (bit %d, %d) larger than bank size %lu\n", cram_x, bit_x, bit_y, this->cram[cram_bank].size());
++ error("cram_x %d (bit %d, %d) larger than bank size %zu\n", cram_x, bit_x, bit_y, this->cram[cram_bank].size());
+ }
+ if (cram_y > int(this->cram[cram_bank][cram_x].size())) {
+- error("cram_y %d (bit %d, %d) larger than bank %d size %lu\n", cram_y, bit_x, bit_y, cram_bank, this->cram[cram_bank][cram_x].size());
++ error("cram_y %d (bit %d, %d) larger than bank %d size %zu\n", cram_y, bit_x, bit_y, cram_bank, this->cram[cram_bank][cram_x].size());
+ }
+ ofs << (this->cram[cram_bank][cram_x][cram_y] ? '1' : '0');
+ }
+@@ -924,11 +924,11 @@ void FpgaConfig::write_ascii(std::ostrea
+ int bram_bank, bram_x, bram_y;
+ bic.get_bram_index(bit_x+i, bit_y, bram_bank, bram_x, bram_y);
+ if (bram_x >= int(this->bram[bram_bank].size())) {
+- error("%d %d bram_x %d higher than loaded bram size %lu\n",bit_x+i, bit_y, bram_x, this->bram[bram_bank].size());
++ error("%d %d bram_x %d higher than loaded bram size %zu\n",bit_x+i, bit_y, bram_x, this->bram[bram_bank].size());
+ break;
+ }
+ if (bram_y >= int(this->bram[bram_bank][bram_x].size())) {
+- error("bram_y %d higher than loaded bram size %lu\n", bram_y, this->bram[bram_bank][bram_x].size());
++ error("bram_y %d higher than loaded bram size %zu\n", bram_y, this->bram[bram_bank][bram_x].size());
+ break;
+ }
+ if (this->bram[bram_bank][bram_x][bram_y])
diff --git a/testing/icestorm/APKBUILD b/testing/icestorm/APKBUILD
new file mode 100644
index 00000000000..9b36381f1f6
--- /dev/null
+++ b/testing/icestorm/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=icestorm
+pkgver=0_git20231212
+_commit=1a40ae75d4eebee9cce73a2c4d634fd42ed0110f
+pkgrel=0
+pkgdesc="Project IceStorm - Lattice iCE40 FPGAs Bitstream Documentation"
+url="https://github.com/YosysHQ/icestorm"
+arch="all"
+license="ISC"
+makedepends="
+ libftdi1-dev
+ python3
+ "
+source="
+ $pkgname-$_commit.tar.gz::https://github.com/YosysHQ/icestorm/archive/$_commit.tar.gz
+
+ 0001-fix-format-specifiers.patch
+ "
+builddir="$srcdir/icestorm-$_commit"
+options="!check" # no unit tests provided
+
+build() {
+ make PREFIX="/usr"
+}
+
+package() {
+ DESTDIR="$pkgdir" make PREFIX="/usr" install
+}
+
+sha512sums="
+f0bfbc0af651a5d1cc45ecc4ce6cb9f6a8fdf4797f17b2af7e70278f0786b8d063503606cbf624aee558a3e32a3dc7c595694ac335ce7b52bfece9b18b5543da icestorm-1a40ae75d4eebee9cce73a2c4d634fd42ed0110f.tar.gz
+dbb175d424615405b9362b40167152c619c1a5722333b273345660e6c1582517f35f7cafb6423e7ea31c1bfd67faaa74b6dc141cb32e1a4539d3bca440808e38 0001-fix-format-specifiers.patch
+"
diff --git a/testing/icingaweb2-module-businessprocess/APKBUILD b/testing/icingaweb2-module-businessprocess/APKBUILD
index baa43e9edda..ef1ee2d6740 100644
--- a/testing/icingaweb2-module-businessprocess/APKBUILD
+++ b/testing/icingaweb2-module-businessprocess/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=icingaweb2-module-businessprocess
_module=${pkgname/*-/}
-pkgver=2.2.0
+pkgver=2.4.0
pkgrel=0
pkgdesc="Manage Business Processes in Icinga Web 2"
-url="https://www.icinga.org/"
-arch="noarch !armhf !armv7 !mips !mips64"
+url="https://icinga.com/"
+arch="noarch !x86 !armhf !armv7 !s390x"
license="GPL-2.0"
-_php=php7
+_php=php8
depends="icingaweb2-module-director"
pkggroups="icingaweb2"
subpackages="$pkgname-doc"
@@ -16,12 +16,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/Icinga/$pkgname/archive/v$pk
builddir="$srcdir/$pkgname-$pkgver"
build() {
- cd "$builddir"
return 0
}
package() {
- cd "$builddir"
mkdir -p "$pkgdir/etc/icingaweb2/modules/$_module"
mkdir -p "$pkgdir/usr/share/doc/$pkgname"
mkdir -p "$pkgdir/usr/share/webapps/icingaweb2/modules/$_module"
@@ -44,7 +42,6 @@ For Apache:
For lighttpd:
# chown -R lighttpd /etc/icingaweb2/modules/$_module
-
Remember to enable the module with:
# icingacli $_module module enable $_module
@@ -53,4 +50,6 @@ EOF
}
-sha512sums="a2c250f045f9717797f2dc176ef2ea3e46c0835116bde1061f8b042e21d9f756be6ac212397f23ad0cc5569f1ea9da3728f98992c7dac8e3c86a0f992ad43051 icingaweb2-module-businessprocess-2.2.0.tar.gz"
+sha512sums="
+c73e6c1d316c67569b17554bdadfc7ce3fb78d7bf5bab972405c00c34f8e98bce6b64e73b26604d008de7a29782e4a4ffbc65854a23cd2ed707c50fb0c673b20 icingaweb2-module-businessprocess-2.4.0.tar.gz
+"
diff --git a/testing/icingaweb2-module-fileshipper/APKBUILD b/testing/icingaweb2-module-fileshipper/APKBUILD
index 81f079da32b..ae322c22bd1 100644
--- a/testing/icingaweb2-module-fileshipper/APKBUILD
+++ b/testing/icingaweb2-module-fileshipper/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=icingaweb2-module-fileshipper
_module=${pkgname/*-/}
-pkgver=1.1.0
-pkgrel=0
+pkgver=1.2.0
+pkgrel=3
pkgdesc="Provide CSV, JSON, XML and YAML files as an Import Source for the Icinga Director"
-url="https://www.icinga.org/"
-arch="noarch !armhf !armv7 !mips !mips64"
+url="https://icinga.com/"
+arch="noarch !armhf !armv7 !s390x !x86" # see icingaweb2-module-director
license="GPL-2.0"
-_php=php7
+_php=php82
depends="icingaweb2-module-director ${_php}-xml"
pkggroups="icingaweb2"
subpackages="$pkgname-doc"
@@ -51,4 +51,6 @@ EOF
}
-sha512sums="e6bd6a5b136684ebf0a6f7fdf48e16f79b4e7903c3988e72ef46143ac877ed969a439cd486b4a841268127a24a5678cadd28d942c390519ca663fedbb7c31832 icingaweb2-module-fileshipper-1.1.0.tar.gz"
+sha512sums="
+508bde2c160863ced34db57b844e240765a36fd3b3de06c66e7b093a24a93c04c1e83c2a9124554f567d27d19995269a76019fbd03ba5c9351b4dc54e9afc57c icingaweb2-module-fileshipper-1.2.0.tar.gz
+"
diff --git a/testing/icingaweb2-module-generictts/APKBUILD b/testing/icingaweb2-module-generictts/APKBUILD
index 1ac6bc91e84..f071abf04bf 100644
--- a/testing/icingaweb2-module-generictts/APKBUILD
+++ b/testing/icingaweb2-module-generictts/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=icingaweb2-module-generictts
_module=${pkgname/*-/}
-pkgver=2.0.0
-pkgrel=2
+pkgver=2.1.0
+pkgrel=0
pkgdesc="Generic ticket system integration into Icinga web 2"
-url="https://www.icinga.org/"
-arch="noarch !armhf !armv7 !mips !mips64"
+url="https://icinga.com/"
+arch="noarch !armhf !armv7 !s390x !x86"
license="GPL-2.0"
_php=php7
depends="icingaweb2-module-director"
@@ -50,4 +50,6 @@ EOF
}
-sha512sums="90ccb2d57e34b9322792806628836c36f34ac40a21ea218a2464d25446a17632acdf7a3f73ba79c9a55b8dd4a04269cc60d243e89b9f9bc0195ed1f4f0cf6c4b icingaweb2-module-generictts-2.0.0.tar.gz"
+sha512sums="
+11cb3c3ca88a392cd125138af4befe7f08425b6bb7048501b7fee37acdbfd554f5ad7053811c9b8aaaae3593195f8fb49af4a5cc4d04519bbf244d756f3daf70 icingaweb2-module-generictts-2.1.0.tar.gz
+"
diff --git a/testing/icingaweb2-module-pnp/APKBUILD b/testing/icingaweb2-module-pnp/APKBUILD
index eab9e81a838..11b51471c53 100644
--- a/testing/icingaweb2-module-pnp/APKBUILD
+++ b/testing/icingaweb2-module-pnp/APKBUILD
@@ -5,8 +5,8 @@ _module=${pkgname/*-/}
pkgver=1.1.0
pkgrel=1
pkgdesc="Integrate PNP graphs into Icinga Web 2"
-url="https://www.icinga.org/"
-arch="noarch !armhf !armv7 !mips !mips64"
+url="https://icinga.com/"
+arch="noarch !armhf !armv7 !s390x !x86" # blocked by icingaweb2-module-director
license="GPL-2.0"
_php=php7
depends="icingaweb2-module-director"
@@ -50,4 +50,6 @@ EOF
}
-sha512sums="4ca0e55a8313303fa45d04169f157665092eb3cf3922c192540d86e31cc2648c25725ff4ad6d9aead376fb84ae7d50efd2d733da5b66e616af3dab40ca7cbba0 icingaweb2-module-pnp-1.1.0.tar.gz"
+sha512sums="
+4ca0e55a8313303fa45d04169f157665092eb3cf3922c192540d86e31cc2648c25725ff4ad6d9aead376fb84ae7d50efd2d733da5b66e616af3dab40ca7cbba0 icingaweb2-module-pnp-1.1.0.tar.gz
+"
diff --git a/testing/icmake/APKBUILD b/testing/icmake/APKBUILD
index 54935cf0276..cbbb923580d 100644
--- a/testing/icmake/APKBUILD
+++ b/testing/icmake/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Shiz <hi@shiz.me>
# Maintainer: Shiz <hi@shiz.me>
pkgname=icmake
-pkgver=9.02.08
-pkgrel=1
+pkgver=9.03.01
+pkgrel=0
pkgdesc="Make utility using a C-like grammar"
-url="https://fbb-git.github.io/icmake/"
+url="https://fbb-git.gitlab.io/icmake/"
arch="all"
license="GPL-3.0-or-later"
makedepends="bash"
subpackages="$pkgname-doc"
source="https://gitlab.com/fbb-git/icmake/-/archive/$pkgver/icmake-$pkgver.tar.bz2"
+patch_args="-p2"
builddir="$srcdir/icmake-$pkgver/icmake"
prepare() {
@@ -29,4 +30,6 @@ package() {
./icm_install strip all "$pkgdir"
}
-sha512sums="d88877b7d575ce905639b5ee37008718623dfff910da547b11be9e22f1696f30809c438bf702a54a2709b9b4d6cdd929b7e28e41ae2923b8ceffbc058102b76b icmake-9.02.08.tar.bz2"
+sha512sums="
+f3c76c19bf26926306ddce9491ae432a92f097bef2cc6434cb44e849a518c3e63beebdfc8edeb3ad26586ef13a7ed7a6e6074af710eb8a6573dac1f768db8c95 icmake-9.03.01.tar.bz2
+"
diff --git a/testing/idesk/APKBUILD b/testing/idesk/APKBUILD
new file mode 100644
index 00000000000..af1b68a9b3e
--- /dev/null
+++ b/testing/idesk/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=idesk
+pkgver=1
+pkgrel=1
+pkgdesc="Program to show icons on the desktop"
+url="https://idesk.sourceforge.net/html/index.html"
+arch="all"
+license="GPL-2.0-only"
+makedepends="texinfo automake autoconf imlib2-dev libxft-dev"
+source="https://github.com/antonialoytorrens/idesk/releases/download/v$pkgver/idesk-v$pkgver.tar.gz
+ imlib2.patch
+ "
+builddir="$srcdir/idesk-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ autoconf
+}
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+3190fca7a5c9fb36b66159107d22b5f6e50b4573afa21a3a4d8b8e3e5953dabda077c924e45d2607b849ee5fea141eb80f5b89ce5288ebc2490679f319edf768 idesk-v1.tar.gz
+6f58e1db76935a8477b02cf07a6fa17234e5fb6e9aa19426eb25df949519dc6ea85b4182436386f0f2fe0478d37d88053e3f4807ae94c6ca62c7444347b0d8c8 imlib2.patch
+"
diff --git a/testing/idesk/imlib2.patch b/testing/idesk/imlib2.patch
new file mode 100644
index 00000000000..6d3988170bd
--- /dev/null
+++ b/testing/idesk/imlib2.patch
@@ -0,0 +1,27 @@
+diff --git a/configure.in b/configure.in
+index 7eac592..eb68ad2 100644
+--- a/configure.in
++++ b/configure.in
+@@ -94,15 +94,15 @@ LIBS="$LIBS $Xext_lib"
+
+ dnl Imlib2 detection
+
+-AC_PATH_GENERIC(imlib2, , [
+- AC_SUBST(IMLIB_LIBS)
+- AC_SUBST(IMLIB_CXXFLAGS) ],
+- AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?
+- You need Imlib2 to build Idesk. Verify that you have Imlib2-dev))
++# AC_PATH_GENERIC(imlib2, , [
++# AC_SUBST(IMLIB_LIBS)
++# AC_SUBST(IMLIB_CXXFLAGS) ],
++# AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in the path?
++# You need Imlib2 to build Idesk. Verify that you have Imlib2-dev))
+
+ dnl the above doesn't work for some reason :/
+-IMLIB_LIBS=`imlib2-config --libs`
+-IMLIB_CFLAGS=`imlib2-config --cflags`
++IMLIB_LIBS=`pkg-config --libs imlib2`
++IMLIB_CFLAGS=`pkg-config --cflags imlib2`
+ AC_SUBST(IMLIB_LIBS)
+ AC_SUBST(IMLIB_CXXFLAGS)
+
diff --git a/testing/ideviceinstaller/APKBUILD b/testing/ideviceinstaller/APKBUILD
new file mode 100644
index 00000000000..bbe488f6380
--- /dev/null
+++ b/testing/ideviceinstaller/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Kasper K <kasperkantz@outlook.com>
+# Maintainer: Kasper K <kasperkantz@outlook.com>
+pkgname=ideviceinstaller
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="Manage apps of iOS devices"
+url="https://libimobiledevice.org"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="libimobiledevice-dev libzip-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/libimobiledevice/ideviceinstaller/releases/download/$pkgver/ideviceinstaller-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+fd117a5745890746237f381c9fe0e01cf8ea06d9c2341da397c52e5ebc0e058c73797e349a0a81b2777f5333dafc32e5c32e9e2c99ee70a864be159fe73e9568 ideviceinstaller-1.1.1.tar.bz2
+"
diff --git a/testing/idevicerestore/APKBUILD b/testing/idevicerestore/APKBUILD
new file mode 100644
index 00000000000..9233de2ef44
--- /dev/null
+++ b/testing/idevicerestore/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Kasper K <kasperkantz@outlook.com>
+# Maintainer: Kasper K <kasperkantz@outlook.com>
+pkgname=idevicerestore
+pkgver=1.0.0
+pkgrel=3
+pkgdesc="Restore/upgrade firmware of iOS devices"
+url="https://libimobiledevice.org"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="libirecovery-dev libimobiledevice-dev libzip-dev curl-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/libimobiledevice/idevicerestore/releases/download/$pkgver/idevicerestore-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d62bd498fd12cacc0cd531a31b39255ee71e082a47de234a1d7bfc270745aec3ed18479fd67aeb2ccdc80e09980b98820e62b284c770e092fe24b96f3fca71a2 idevicerestore-1.0.0.tar.bz2
+"
diff --git a/testing/idris/APKBUILD b/testing/idris/APKBUILD
deleted file mode 100644
index 22de8a43352..00000000000
--- a/testing/idris/APKBUILD
+++ /dev/null
@@ -1,157 +0,0 @@
-# Contributor: Mitch Tishmack <mitch.tishmack@gmail.com>
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Mitch Tishmack <mitch.tishmack@gmail.com>
-pkgname=idris
-pkgver=1.3.2
-pkgrel=0
-pkgdesc="A Language with Dependent Types"
-url="https://www.idris-lang.org/"
-# Note: same as ghc, if it gets ported elsewhere this should run too.
-# armhf: disabled due to build failure
-arch="x86_64"
-license="BSD-3-Clause"
-depends="gmp-dev gcc"
-makedepends="ghc cabal libffi-dev ncurses-dev zlib-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/idris-lang/Idris-dev/archive/v$pkgver.tar.gz
- cabal.config"
-builddir="$srcdir/Idris-dev-$pkgver"
-
-_cabal_home="$srcdir/cabal"
-
-# Prevent cabal setup from using unbounded memory
-_cabal_install_opts=" --max-backjumps=10000"
-
-cabal_update() {
- msg "Updating constraints"
-
- cd "$builddir"
-
- # Create cabal config and fetch index.
- HOME="$_cabal_home" cabal v1-update
-
- # Resolve deps and generate fresh cabal.config with version constraints.
- rm -f cabal.config
- HOME="$_cabal_home" cabal v1-freeze --shadow-installed-packages
-
- # Add version tag at the first line.
- sed -i "1i--$pkgver" cabal.config
-
- # Remove rts/ghc-boot-sh package if they somehow got inserted
- sed -i -e "s/.*rts.*//g" -e "s/.*ghc-boot-th.*//g" cabal.config
-
- mv cabal.config "$startdir"/
-
- cd "$startdir"
- abuild checksum
-}
-
-
-# Used by the subsequent two functions.
-# This barf of a pipeline converts the cabal freeze config file lines from:
-# constraints: foo ==VERSION,
-# bar ==VERSION
-# etc...
-# To something we can more easily munge into what we need for other purposes
-# aka we end up with:
-# foo==VERSION bar==VERSION ...
-_cabal_constraints_prime() {
- printf "$(grep '==' cabal.config | \
- sed -e 's/constraints[:]//g' | \
- tr -d '[:space:]' | \
- sed -e 's/[,]/ /g')"
-}
-
-# Take the output from above and replace =='s to -'s so we can cabal fetch
-# the specific package-version's via cabal
-_cabal_pkgs() {
- printf "$(_cabal_constraints_prime)" | sed -e 's/==/-/g'
-}
-
-# Similar to the above, but convert to --constraint args used for cabal install
-# so that our cabal install line can use the same constraints for idris in cabal.config.
-#
-# This works around us running against a newer hackage index where one of the packages
-# in the freeze file has a newer version that cabal install libffi could end up
-# selecting due to libffi having more relaxed constraints than idris.
-#
-# That is:
-# --constraint=foo==VERSION --constraint=bar==VERSION
-_cabal_constraints() {
- printf " $(_cabal_constraints_prime)" | sed -e 's/ / --constraint=/g'
-}
-
-prepare() {
- default_prepare
-
- if [ "$(head -n 1 "$srcdir"/cabal.config)" != "--$pkgver" ]; then
- die "Requirements file is outdated, run 'abuild cabal_update'"
- fi
-
- # Create cabal config and fetch index.
- HOME="$_cabal_home" cabal v1-update
-
- # Cabal implicitly loads cabal.config from the project's directory.
- ln -sf "$srcdir"/cabal.config .
-
- # Create Cabal sandbox that will be used for all subsequent cabal
- # invocations. This is something like Python virtual env.
- cmd="cabal v1-sandbox init"
- msg "$cmd"
- HOME="$_cabal_home" $cmd
-
- # Fetch all dependencies.
- # Note: cabal-doctest is a transitive dependency for libffi-0.1 not idris
- cmd="cabal fetch --no-dependencies $(_cabal_pkgs) cabal-doctest-1.0.2 libffi-0.1"
- msg "$cmd"
- HOME="$_cabal_home" $cmd
-}
-
-build() {
- # Build dependencies
- # Note: for libffi force constraints manually via the freeze file to prevent
- # cabal from possibly using newer constraints for libffi that might intersect
- # with those idris uses.
- HOME="$_cabal_home" cabal v1-install $_cabal_install_opts --offline --constraint=cabal-doctest==1.0.2 \
- $(_cabal_constraints) -v libffi-0.1
- HOME="$_cabal_home" cabal v1-install $_cabal_install_opts --offline --only-dependencies -v
-
- # Note: ordering of prefixes is important!
- HOME="$_cabal_home" cabal v1-configure \
- --prefix='/usr' \
- --docdir='$prefix/share/doc' \
- --datadir='$prefix/share' \
- --htmldir='$docdir/html' \
- --libdir='$prefix/lib' \
- --libsubdir="$pkgname" \
- --datasubdir="$pkgname" \
- --dynlibdir="$pkgname" \
- --disable-shared \
- --disable-profiling \
- --disable-library-profiling \
- --flags='GMP FFI standalone'
- HOME="$_cabal_home" cabal v1-build -j
-}
-
-# TODO: Run upstream tests and/or figure out how to set paths to be able
-# to compile hello_world for check.
-check() {
- ./dist/build/idris/idris --version
-}
-
-package() {
- HOME="$_cabal_home" cabal v1-copy --destdir="$pkgdir"
-
- cd "$pkgdir"
-
- # We don't need the haskell shared libraries or interface files.
- rm -r usr/lib/idris
-
- mkdir -p usr/share/doc/idris/ \
- usr/share/licenses/$pkgname/
- mv usr/share/idris/docs usr/share/doc/idris
- mv usr/share/doc/LICENSE usr/share/licenses/$pkgname/
-}
-
-sha512sums="0cd2ecb38ae1d535a38f6f4fbe39ce6d5d4ff496b97214fb24968e9c5b726c824dc79528d00e89d800563b20d4c8b2d47f0c6613433d1380802a2bd10d0816f3 idris-1.3.2.tar.gz
-33aa12d73e8cec2284a5c9b7c38c36c42aac44120ebbb75bacdb97d3b61b16382e116a1748c7a44ec76356bea2f63b9aaf15092af982942a1ff51a56d9cac9f4 cabal.config"
diff --git a/testing/idris/cabal.config b/testing/idris/cabal.config
deleted file mode 100644
index a681c4df3bc..00000000000
--- a/testing/idris/cabal.config
+++ /dev/null
@@ -1,98 +0,0 @@
---1.3.2
-constraints: Cabal ==2.4.0.1,
- aeson ==1.4.7.1,
- annotated-wl-pprint ==0.7.0,
- ansi-terminal ==0.8.2,
- ansi-wl-pprint ==0.6.8.2,
- array ==0.5.3.0,
- async ==2.2.2,
- attoparsec ==0.13.2.4,
- base ==4.12.0.0,
- base-compat ==0.11.1,
- base-compat-batteries ==0.11.1,
- base-orphans ==0.8.2,
- base64-bytestring ==1.0.0.3,
- binary ==0.8.6.0,
- blaze-builder ==0.4.1.0,
- blaze-html ==0.9.1.2,
- blaze-markup ==0.8.2.4,
- bytestring ==0.10.8.2,
- case-insensitive ==1.2.1.0,
- cheapskate ==0.1.1.2,
- code-page ==0.2,
- colour ==2.3.5,
- constraints ==0.12,
- containers ==0.6.0.1,
- css-text ==0.1.3.0,
- data-default ==0.7.1.1,
- data-default-class ==0.1.2.0,
- data-default-instances-containers ==0.0.1,
- data-default-instances-dlist ==0.0.1,
- data-default-instances-old-locale ==0.0.1,
- deepseq ==1.4.4.0,
- digest ==0.0.1.2,
- directory ==1.3.3.0,
- dlist ==0.8.0.8,
- enclosed-exceptions ==1.0.3,
- exceptions ==0.10.4,
- filepath ==1.4.2.1,
- fingertree ==0.1.4.2,
- fsnotify ==0.3.0.1,
-
- ghc-prim ==0.5.3,
- hashable ==1.3.0.0,
- haskeline ==0.7.4.3,
- hinotify ==0.4,
- hsc2hs ==0.68.7,
- ieee754 ==0.8.0,
- integer-gmp ==1.0.2.0,
- integer-logarithms ==1.0.3,
- lifted-async ==0.10.0.6,
- lifted-base ==0.2.3.12,
- megaparsec ==7.0.5,
- monad-control ==1.0.2.3,
- mtl ==2.2.2,
- network ==2.8.0.1,
- network-uri ==2.6.3.0,
- old-locale ==1.0.0.7,
- optparse-applicative ==0.14.3.0,
- parsec ==3.1.13.0,
- parser-combinators ==1.2.1,
- pretty ==1.1.3.6,
- primitive ==0.7.0.1,
- process ==1.6.5.0,
- random ==1.1,
- regex-base ==0.94.0.0,
- regex-tdfa ==1.3.1.0,
-
- safe ==0.3.18,
- scientific ==0.3.6.2,
- semigroups ==0.19.1,
- shelly ==1.9.0,
- split ==0.2.3.4,
- stm ==2.5.0.0,
- syb ==0.7.1,
- tagged ==0.8.6,
- tagsoup ==0.14.8,
- template-haskell ==2.14.0.0,
- terminal-size ==0.3.2.1,
- terminfo ==0.4.1.2,
- text ==1.2.3.1,
- th-abstraction ==0.3.2.0,
- time ==1.8.0.2,
- time-compat ==1.9.3,
- transformers ==0.5.6.2,
- transformers-base ==0.4.5.2,
- transformers-compat ==0.6.5,
- type-equality ==1,
- uniplate ==1.6.12,
- unix ==2.7.2.2,
- unix-compat ==0.5.2,
- unordered-containers ==0.2.10.0,
- utf8-string ==1.0.1.1,
- uuid-types ==1.0.3,
- vector ==0.12.1.2,
- vector-binary-instances ==0.2.5.1,
- xss-sanitize ==0.3.6,
- zip-archive ==0.4.1,
- zlib ==0.6.2.1
diff --git a/testing/ifuse/APKBUILD b/testing/ifuse/APKBUILD
new file mode 100644
index 00000000000..58fe27a80db
--- /dev/null
+++ b/testing/ifuse/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Kasper K <kasperkantz@outlook.com>
+# Maintainer: Kasper K <kasperkantz@outlook.com>
+pkgname=ifuse
+pkgver=1.1.4
+pkgrel=4
+pkgdesc="Fuse filesystem to access the contents of iOS devices"
+url="https://libimobiledevice.org"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="usbmuxd"
+makedepends="eudev-dev libimobiledevice-dev fuse-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/libimobiledevice/ifuse/releases/download/$pkgver/ifuse-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+671fabb0828fb6dd5ddba80ef418005305f4ee4676ab1078513a83582e84616f47c8973c25e1fdd8897b08a01a135080898a55d3ad8b31e89c0bb72ee865cdff ifuse-1.1.4.tar.bz2
+"
diff --git a/testing/igrep/APKBUILD b/testing/igrep/APKBUILD
new file mode 100644
index 00000000000..76e157a8c1f
--- /dev/null
+++ b/testing/igrep/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=igrep
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="Interactive grep"
+url="https://github.com/konradsz/igrep"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/konradsz/igrep/archive/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/ig" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+ad488485a4dfa615733eee81d2ad6bd010e15b1a10031f906d64fb095be1ef017ed5cd44f5781f2ab5021fe892f80997211692845a9f89b8b689d5cc543428a2 igrep-1.2.0.tar.gz
+"
diff --git a/testing/igt-gpu-tools/APKBUILD b/testing/igt-gpu-tools/APKBUILD
new file mode 100644
index 00000000000..69841caf8a3
--- /dev/null
+++ b/testing/igt-gpu-tools/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Dennis Krupenik <dennis@krupenik.com>
+# Maintainer: Dennis Krupenik <dennis@krupenik.com>
+pkgname=igt-gpu-tools
+pkgver=1.27.1
+pkgrel=1
+pkgdesc="collection of tools for development and testing of the DRM drivers"
+url="https://gitlab.freedesktop.org/drm/igt-gpu-tools/"
+arch="x86_64" # intel gpus, aarch64 fails to build
+license="MIT"
+depends_dev="
+ alsa-lib-dev
+ cairo-dev
+ curl-dev
+ elfutils-dev
+ eudev-dev
+ gsl-dev
+ json-c-dev
+ kmod-dev
+ libdrm-dev
+ liboping-dev
+ libpciaccess-dev
+ libunwind-dev
+ libxrandr-dev
+ libxv-dev
+ pixman-dev
+ procps-compat-dev
+ xmlrpc-c-dev
+ "
+makedepends="
+ $depends_dev
+ bison
+ flex
+ meson
+ "
+checkdepends="bash"
+subpackages="$pkgname-dev"
+source="https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/archive/v$pkgver/igt-gpu-tools-v$pkgver.tar.gz
+ musl.patch
+ "
+builddir="$srcdir/igt-gpu-tools-v$pkgver"
+
+build() {
+ abuild-meson \
+ -Dvalgrind=disabled \
+ -Dversion_hash=$pkgver \
+ . build
+ meson compile -C build
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+b77d28f95098e4c51678a0a73ad755a5dd28748c77cf8e8c4f46f6d65444939032d2d0ed3c637e4968682d72a5d8cbabd7b8f47737f7fa279b02667fd4ddae9b igt-gpu-tools-v1.27.1.tar.gz
+f372d8e60519c6d9d72efd32d87fc9851eace59cf7c0b66dc5f8795dcfb9efd4aae5f316cd52396ebaba9e0c338f166f1d4ccf828ea473276ea6ed07f71fae32 musl.patch
+"
diff --git a/testing/igt-gpu-tools/musl.patch b/testing/igt-gpu-tools/musl.patch
new file mode 100644
index 00000000000..f07a073c71f
--- /dev/null
+++ b/testing/igt-gpu-tools/musl.patch
@@ -0,0 +1,99 @@
+diff --git a/benchmarks/gem_exec_tracer.c b/benchmarks/gem_exec_tracer.c
+index 7e86473..fc2dcf2 100644
+--- a/benchmarks/gem_exec_tracer.c
++++ b/benchmarks/gem_exec_tracer.c
+@@ -271,7 +271,7 @@ static int is_i915(int fd)
+ }
+
+ int
+-ioctl(int fd, unsigned long request, ...)
++ioctl(int fd, int request, ...)
+ {
+ struct trace *t, **p;
+ va_list args;
+diff --git a/lib/igt_aux.h b/lib/igt_aux.h
+index e734c87..1360516 100644
+--- a/lib/igt_aux.h
++++ b/lib/igt_aux.h
+@@ -48,7 +48,6 @@
+ # ifndef HAVE_GETTID
+ # define gettid() (pid_t)(syscall(__NR_gettid))
+ # endif
+-# define sigev_notify_thread_id _sigev_un._tid
+ #endif
+
+ /* auxialiary igt helpers from igt_aux.c */
+diff --git a/lib/igt_halffloat.c b/lib/igt_halffloat.c
+index 08ab05f..7d6a6e6 100644
+--- a/lib/igt_halffloat.c
++++ b/lib/igt_halffloat.c
+@@ -162,7 +162,7 @@ static inline float _half_to_float(uint16_t val)
+ return fi.f;
+ }
+
+-#if defined(__x86_64__) && !defined(__clang__)
++#if defined(__x86_64__) && !defined(__clang__) && defined(__GLIBC__)
+ #pragma GCC push_options
+ #pragma GCC target("f16c")
+
+diff --git a/lib/igt_x86.c b/lib/igt_x86.c
+index 6ac700d..ddf5edd 100644
+--- a/lib/igt_x86.c
++++ b/lib/igt_x86.c
+@@ -190,7 +190,7 @@ char *igt_x86_features_to_string(unsigned features, char *line)
+ }
+ #endif
+
+-#if defined(__x86_64__) && !defined(__clang__)
++#if defined(__x86_64__) && !defined(__clang__) && defined(__GLIBC__)
+ #pragma GCC push_options
+ #pragma GCC target("sse4.1")
+ #pragma GCC diagnostic ignored "-Wpointer-arith"
+diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
+index 2a3fb74..781af5e 100644
+--- a/tests/kms_atomic.c
++++ b/tests/kms_atomic.c
+@@ -830,7 +830,7 @@ static void crtc_invalid_params_fence(igt_pipe_t *pipe,
+ {
+ int timeline, fence_fd;
+ void *map;
+- const ptrdiff_t PAGE_SIZE = sysconf(_SC_PAGE_SIZE);
++ const ptrdiff_t intelsize = sysconf(_SC_PAGE_SIZE);
+ uint64_t old_mode_id = pipe->values[IGT_CRTC_MODE_ID];
+
+ igt_require_sw_sync();
+@@ -838,28 +838,28 @@ static void crtc_invalid_params_fence(igt_pipe_t *pipe,
+ timeline = sw_sync_timeline_create();
+
+ /* invalid out_fence_ptr */
+- map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
++ map = mmap(NULL, intelsize, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ igt_assert(map != MAP_FAILED);
+
+ igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_OUT_FENCE_PTR, (ptrdiff_t)map);
+ crtc_commit_atomic_err(pipe, plane, ATOMIC_RELAX_NONE, EFAULT);
+- munmap(map, PAGE_SIZE);
++ munmap(map, intelsize);
+
+ /* invalid out_fence_ptr */
+- map = mmap(NULL, PAGE_SIZE, PROT_EXEC, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
++ map = mmap(NULL, intelsize, PROT_EXEC, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ igt_assert(map != MAP_FAILED);
+
+ igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_OUT_FENCE_PTR, (ptrdiff_t)map);
+ crtc_commit_atomic_err(pipe, plane, ATOMIC_RELAX_NONE, EFAULT);
+- munmap(map, PAGE_SIZE);
++ munmap(map, intelsize);
+
+ /* invalid out_fence_ptr */
+- map = mmap(NULL, PAGE_SIZE, PROT_NONE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
++ map = mmap(NULL, intelsize, PROT_NONE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ igt_assert(map != MAP_FAILED);
+
+ igt_pipe_obj_set_prop_value(pipe, IGT_CRTC_OUT_FENCE_PTR, (ptrdiff_t)map);
+ crtc_commit_atomic_err(pipe, plane, ATOMIC_RELAX_NONE, EFAULT);
+- munmap(map, PAGE_SIZE);
++ munmap(map, intelsize);
+
+ /* valid in fence but not allowed prop on crtc */
+ fence_fd = sw_sync_timeline_create_fence(timeline, 1);
diff --git a/testing/iipsrv/APKBUILD b/testing/iipsrv/APKBUILD
new file mode 100644
index 00000000000..31abdbb6ff3
--- /dev/null
+++ b/testing/iipsrv/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Ruven Pillay <ruven@users.sourceforge.net>
+# Maintainer: Ruven Pillay <ruven@users.sourceforge.net>
+pkgname=iipsrv
+pkgver=1.2
+pkgrel=0
+pkgdesc="IIPImage image server: iipsrv. An advanced high-performance image server for high-resolution and scientific images"
+url="https://iipimage.sourceforge.io"
+arch="all"
+options="!check" # No test suite
+license="GPL-3.0-or-later"
+makedepends="tiff-dev fcgi-dev libjpeg-turbo-dev zlib-dev libmemcached-dev openjpeg-dev libpng-dev libwebp-dev"
+install="$pkgname.pre-install"
+source="https://downloads.sourceforge.net/iipimage/IIP%20Server/iipsrv-$pkgver/iipsrv-$pkgver.tar.bz2
+ lighttpd.iipsrv.conf
+ apache.iipsrv.conf
+ iipsrv.initd
+ iipsrv.confd
+ RawTile.patch"
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-lighttpd:lighttpd:noarch $pkgname-apache:apache:noarch"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ # Rename our binary to just iipsrv and copy to /usr/bin
+ mv src/iipsrv.fcgi src/iipsrv
+ install -D -t $pkgdir/usr/bin/ src/iipsrv
+ # Remove FCGI includes
+ rm -fr $pkgdir/usr/include
+ # Add OpenRC files
+ install -Dm644 $srcdir/iipsrv.confd $pkgdir/etc/conf.d/iipsrv
+ install -Dm755 $srcdir/iipsrv.initd $pkgdir/etc/init.d/iipsrv
+}
+
+lighttpd() {
+ pkgdesc="Configuration file for Lighttpd"
+ install_if="$pkgname=$pkgver-r$pkgrel lighttpd"
+ install -Dm644 lighttpd.iipsrv.conf $subpkgdir/etc/lighttpd/iipsrv.conf
+}
+
+apache() {
+ pkgdesc="Configuration file for Apache"
+ install_if="$pkgname=$pkgver-r$pkgrel apache2-proxy"
+ install -Dm644 apache.iipsrv.conf $subpkgdir/etc/apache2/conf.d/iipsrv.conf
+}
+
+sha512sums="
+76d7dee476384e24dc13c8e37ed14999c8c584742303456cbc893eb11b2e5e6effe01f208f84830cefb48694290252908826550bf89d0fb1a8c6c82f1bc30fcd iipsrv-1.2.tar.bz2
+244c16de76c2c13975c7e48db61a9d957833c424f4060f2b762fc6984323339bc0a8fec27ebdbfa25677969e5ee49bde4c2aec11a57c7b25a73689f23d983ffc lighttpd.iipsrv.conf
+905c5c921bb1521963196a60e4cc2059a92fc197e7b37dfb19efeda35213d19721b790b7dc373d71f355329a4eb56d46a7a96e9e7dd52ee30001d4255dcb91a2 apache.iipsrv.conf
+035be8c8c10aa01531027c0ff05d0d2402812ac2bf066d247044a2f023581b3f1cd533532153a66fce67f0a819769639607542dc78e8de78e11b3da4bb7d7fc8 iipsrv.initd
+db17270cac0d142d0b187900415e5927269e0dc6f5d145b545c9855006ecd77cee4816ebeff7b1d9313abb4da9c07ec423c6eb4a7b63e07030a71589e48e330b iipsrv.confd
+6ff8e9b10ea7c3cb97a9570326d2538ea1f14bde41e2be5657d21e048e20ebf2e5d7cf7898dea8a29b6a420807c29af1549417fd217a2655f633e83c8c849509 RawTile.patch
+"
diff --git a/testing/iipsrv/RawTile.patch b/testing/iipsrv/RawTile.patch
new file mode 100644
index 00000000000..2b50a94cea6
--- /dev/null
+++ b/testing/iipsrv/RawTile.patch
@@ -0,0 +1,10 @@
+--- iipsrv-1.2/src/RawTile.h
++++ iipsrv-1.2/src/RawTile.new.h
+@@ -26,6 +26,7 @@
+ #include <string>
+ #include <cstdlib>
+ #include <ctime>
++#include <cstdint>
+
+ #if !( (__cplusplus >= 201103L) || ((defined(_MSC_VER) && _MSC_VER >= 1900)) )
+ #include <stdint.h> // Required for C++98
diff --git a/testing/iipsrv/apache.iipsrv.conf b/testing/iipsrv/apache.iipsrv.conf
new file mode 100644
index 00000000000..5889ba332b2
--- /dev/null
+++ b/testing/iipsrv/apache.iipsrv.conf
@@ -0,0 +1 @@
+ProxyPass "/fcgi-bin/iipsrv.fcgi" "fcgi://localhost:9000/"
diff --git a/testing/iipsrv/iipsrv.confd b/testing/iipsrv/iipsrv.confd
new file mode 100644
index 00000000000..dd51ed7ca7d
--- /dev/null
+++ b/testing/iipsrv/iipsrv.confd
@@ -0,0 +1,5 @@
+export HOST="0.0.0.0"
+export PORT=9000
+export VERBOSITY=1
+export URI_MAP="iiif=>IIIF"
+export LOGFILE="/var/log/iipsrv"
diff --git a/testing/iipsrv/iipsrv.initd b/testing/iipsrv/iipsrv.initd
new file mode 100644
index 00000000000..0266a7acb66
--- /dev/null
+++ b/testing/iipsrv/iipsrv.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+description="IIPImage server"
+supervisor=supervise-daemon
+
+command="/usr/bin/iipsrv"
+command_args="--bind $HOST:$PORT"
+command_user="iipsrv:wheel"
+
+start_pre() {
+ # Make sure logfile is writable
+ touch $LOGFILE
+ chown iipsrv:wheel $LOGFILE
+}
diff --git a/testing/iipsrv/iipsrv.pre-install b/testing/iipsrv/iipsrv.pre-install
new file mode 100644
index 00000000000..9067a6df9f0
--- /dev/null
+++ b/testing/iipsrv/iipsrv.pre-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+addgroup -S -g 82 www-data 2>/dev/null
+addgroup -S iipsrv 2>/dev/null
+adduser -S -D -H -h /var/www -s /sbin/nologin -G iipsrv -g iipsrv iipsrv 2>/dev/null
+addgroup iipsrv www-data 2>/dev/null
+
+exit 0
diff --git a/testing/iipsrv/lighttpd.iipsrv.conf b/testing/iipsrv/lighttpd.iipsrv.conf
new file mode 100644
index 00000000000..56fd497676e
--- /dev/null
+++ b/testing/iipsrv/lighttpd.iipsrv.conf
@@ -0,0 +1,6 @@
+server.modules += ("mod_fastcgi")
+fastcgi.server = (
+ "/fcgi-bin/iipsrv.fcgi" => (
+ ("host"=>"0.0.0.0", "port"=>9000, "check-local"=>"disable")
+ )
+)
diff --git a/testing/iir1/APKBUILD b/testing/iir1/APKBUILD
new file mode 100644
index 00000000000..eb055b0414b
--- /dev/null
+++ b/testing/iir1/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=iir1
+pkgver=1.9.4
+pkgrel=0
+pkgdesc="dsp iir realtime C++ filter library"
+url="https://github.com/berndporr/iir1"
+arch="all"
+license="MIT"
+makedepends="cmake"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/berndporr/iir1/archive/refs/tags/$pkgver.tar.gz"
+#builddir="$srcdir/"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir -p "$pkgdir"/usr/share/doc/$pkgname
+ cp -r "$builddir"/docs "$pkgdir/usr/share/doc/$pkgname/manual"
+}
+
+sha512sums="
+e69b79ba48aa5d5ec2ddb0a31461ac4c15b0489df80fddc1f1f8adc143726fa189dc0dd94a0ed2bb7aa73712f953e27b345a762120ab2d10f54f57a868f0ea42 iir1-1.9.4.tar.gz
+"
diff --git a/testing/ijq/APKBUILD b/testing/ijq/APKBUILD
new file mode 100644
index 00000000000..fe1f427e105
--- /dev/null
+++ b/testing/ijq/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=ijq
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Interactive jq tool"
+url="https://git.sr.ht/~gpanders/ijq/"
+license="GPL-3.0-or-later"
+arch="all"
+options="!check" # no test suite
+depends="jq"
+makedepends="go scdoc"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~gpanders/ijq/archive/v$pkgver.tar.gz
+ makefile.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+export GOFLAGS="$GOFLAGS -buildvcs=false"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4f78044a51433c88f70c20512d3f41eb1bdcc939e4532913cb8bfe8e3258ba2c7fe88607794e3a461a247cd1a4f4f2c1dbc18b122bec3c2a46bbce6df43015a8 ijq-1.1.0.tar.gz
+ad49dafd0ae838f98fa6e656eb01bd1216f3e091128310b8d5ad081f5fce266e1dfdf1fe9991883116bc3b29b48828aebabd58481aa822715797c993f6f62e00 makefile.patch
+"
diff --git a/testing/ijq/makefile.patch b/testing/ijq/makefile.patch
new file mode 100644
index 00000000000..bec9000b2a9
--- /dev/null
+++ b/testing/ijq/makefile.patch
@@ -0,0 +1,9 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+-prefix = /usr/local
+-bindir = $(prefix)/bin
+-mandir = $(prefix)/share/man
++PREFIX = /usr/local
++bindir = $(PREFIX)/bin
++mandir = $(PREFIX)/share/man
diff --git a/testing/imapfilter/APKBUILD b/testing/imapfilter/APKBUILD
index 45259cb0ce9..64b42426cbc 100644
--- a/testing/imapfilter/APKBUILD
+++ b/testing/imapfilter/APKBUILD
@@ -1,27 +1,29 @@
# Contributor: Andrew Hills <ahills@ednos.net>
# Maintainer: Andrew Hills <ahills@ednos.net>
pkgname=imapfilter
-pkgver=2.6.16
+pkgver=2.8.2
pkgrel=0
pkgdesc="Lua-based filtering for IMAP mailboxes"
url="https://github.com/lefcha/imapfilter"
arch="all"
license="MIT"
-makedepends="$depends_dev lua-dev openssl-dev pcre-dev libc-dev"
+makedepends="$depends_dev lua-dev openssl-dev>3 pcre2-dev libc-dev"
+options="!check" # no testsuite
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/lefcha/imapfilter/archive/v$pkgver.tar.gz"
build() {
- cd "$_builddir"
make PREFIX=/usr all
}
package() {
- cd "$_builddir"
make \
PREFIX=/usr \
MANDIR=/usr/share/man \
DESTDIR="$pkgdir" \
install
}
-sha512sums="0500931143e593eb69357ef6a6a40be971abadd22d7e807685b88927da8db9a928470f5cad460252b95ccd42efcfd39b5c4001a8796fa79cbd35018405a7be19 imapfilter-2.6.16.tar.gz"
+
+sha512sums="
+b16e684d6af4e8c3f465e22c008b9231209f1336b1f9a27fbd98460cf987f84e81040250ccb657d3986100b3804f1fc130a409cacc3921180920d26193dd5967 imapfilter-2.8.2.tar.gz
+"
diff --git a/testing/imediff/APKBUILD b/testing/imediff/APKBUILD
new file mode 100644
index 00000000000..44c3d5dd254
--- /dev/null
+++ b/testing/imediff/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Vlad Glagolev <scm@vaygr.net>
+# Maintainer: Vlad Glagolev <scm@vaygr.net>
+pkgname=imediff
+pkgver=2.6
+pkgrel=1
+url="https://github.com/osamuaoki/imediff"
+pkgdesc="ncurses-based 2/3 file merge tool"
+arch="noarch"
+license="GPL-2.0-or-later"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/osamuaoki/imediff/archive/$pkgver.tar.gz"
+options="!check" # outdated test suite
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4d5abb2285580776e43f2c752bb90e631fb7ed9daaa83e62d488aa000077ed22404086bcc3bc4fe53ce1f166415a94ebae271c48b91cf05ffad55c3b4e5049e3 imediff-2.6.tar.gz
+"
diff --git a/testing/imgdiff/APKBUILD b/testing/imgdiff/APKBUILD
new file mode 100644
index 00000000000..0c669161c04
--- /dev/null
+++ b/testing/imgdiff/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=imgdiff
+pkgver=1.0.2
+pkgrel=18
+pkgdesc="Fast pixel-by-pixel image difference tool"
+url="https://github.com/n7olkachev/imgdiff"
+arch="all"
+license="MIT"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+makedepends="go"
+source="https://github.com/n7olkachev/imgdiff/archive/v$pkgver/imgdiff-v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o imgdiff cmd/main.go
+}
+
+package() {
+ install -Dm755 imgdiff -t "$pkgdir"/usr/bin/
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/"$pkgname"/
+}
+
+sha512sums="
+40f2718ce6fbb3d66017b45bd8facda0a843892bb69b4d48a9d0ced7add69eedec8f98d4cf978ea8dc6ebf67850fa83fd04bb9120dbe65808511e03fe62072cb imgdiff-v1.0.2.tar.gz
+"
diff --git a/testing/imrsh/APKBUILD b/testing/imrsh/APKBUILD
new file mode 100644
index 00000000000..26c0547c6ba
--- /dev/null
+++ b/testing/imrsh/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=imrsh
+# NOTE: this software is not ready to be moved out of the testing repository
+pkgver=0_git20210320
+_commit=b97ad8e5b58061920f48d32f0343f66d5896a934
+pkgrel=1
+pkgdesc="Interactive POSIX shell"
+url="https://git.sr.ht/~sircmpwn/imrsh"
+license="GPL-3.0"
+arch="all"
+makedepends="meson mrsh-dev libtickit-dev"
+subpackages="$pkgname-dbg"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/imrsh/archive/$_commit.tar.gz"
+builddir="$srcdir/imrsh-$_commit"
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+5a4a5dbb4c69d693cc3359cab8da89f758424f8cb8fca0a9b5c70becb889d4bfa20ae0ba09d3926a981a8a1c34d769432b80f30c30ac24e2a6182aedba8ab4da imrsh-0_git20210320.tar.gz
+"
diff --git a/testing/infiniband-diags/APKBUILD b/testing/infiniband-diags/APKBUILD
deleted file mode 100644
index 036e5098b3f..00000000000
--- a/testing/infiniband-diags/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Jann - Ove Risvik <jann.ove@usaklig.com>
-# Maintainer:
-pkgname=infiniband-diags
-pkgver=1.6.6
-pkgrel=2
-pkgdesc="Various infiniband diagnostic tools"
-url="https://github.com/linux-rdma/infiniband-diags"
-arch="x86 x86_64 ppc64le"
-license="GPL-2.0-only OR BSD-2-Clause"
-depends_dev="opensm-dev libibmad-dev glib-dev eudev-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.openfabrics.org/downloads/management/$pkgname-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="aeb7a24e16c03bdca1ab8fbd6b1fcc434dae8b96544501aa8643bf8a3a2f3f0cb529b48211f9fe2fb4c61343bfae1ffdec95cb5830da9dd396d9fe0b288b2def infiniband-diags-1.6.6.tar.gz"
diff --git a/testing/initify/APKBUILD b/testing/initify/APKBUILD
index 822e977d4e2..bfe2474855b 100644
--- a/testing/initify/APKBUILD
+++ b/testing/initify/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=initify
pkgver=0_git20171210
-pkgrel=0
+pkgrel=1
_commit="f9ccbb147924a2371a1ae5a925c1be6858cca5fa"
pkgdesc="Convert systemd services to OpenRC init-scripts."
arch="noarch"
diff --git a/testing/innernet/APKBUILD b/testing/innernet/APKBUILD
new file mode 100644
index 00000000000..8c8179eef70
--- /dev/null
+++ b/testing/innernet/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Uli Baum <xeji@cat3.de>
+# Maintainer: Uli Baum <xeji@cat3.de>
+pkgname=innernet
+pkgver=1.6.1
+pkgrel=0
+pkgdesc="A private network system that uses WireGuard under the hood"
+url="https://github.com/tonarino/innernet"
+# s390x: nix crate fails to build
+arch="all !s390x"
+license="MIT"
+makedepends="cargo clang-dev sqlite-dev cargo-auditable"
+subpackages="
+ $pkgname-openrc
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/tonarino/innernet/archive/v$pkgver/innernet-$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname-server.initd
+ $pkgname-server.confd
+
+ unbundle-sqlite.patch
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --release --frozen
+}
+
+package() {
+ install -Dm 755 -t "$pkgdir"/usr/sbin/ \
+ target/release/innernet target/release/innernet-server
+
+ install -Dm 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm 644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm 755 "$srcdir"/$pkgname-server.initd "$pkgdir"/etc/init.d/$pkgname-server
+ install -Dm 644 "$srcdir"/$pkgname-server.confd "$pkgdir"/etc/conf.d/$pkgname-server
+
+ local binary; for binary in innernet innernet-server; do
+ install -Dm 644 doc/$binary.completions.bash "$pkgdir"/usr/share/bash-completion/completions/$binary
+ install -Dm 644 doc/$binary.completions.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$binary.fish
+ install -Dm 644 doc/$binary.completions.zsh "$pkgdir"/usr/share/zsh/site-functions/_$binary
+ install -Dm 644 doc/$binary.8.gz -t "$pkgdir"/usr/share/man/man8
+ done
+
+ install -Dm 644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+ install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/$pkgname/
+}
+
+sha512sums="
+f8d3bb1e269105ade2c9d4f1b778e13e903ef7c01921b5ab5ce1156f568935b9c032909a72e3f67cf46b67fc32101da26225847bde50d07d1b7d111fb8e000ad innernet-1.6.1.tar.gz
+695a58dd6440ad521c6fbc6f9ca2c9277639d9beed081a74d4afece2446c0c9134845371918e7f0dbd9a7d1c28116abfef88f4ab51ef3abad95e64f29c9ab3b8 innernet.initd
+e7ae351d75ad099f1694037994fcc4900c87ab91da585181912303b4a76eb802fd253157ce93c10a093d37272f75699a4e944d65187d020f93cd2bb33f4d7ec2 innernet.confd
+1d1ada2d24215d22f230d551634fe9fa464ce24430bfea3ea46b95b716e56f213d78b7ee55dac3808d4a31f271ee8f59a8076d7ea43c1feccb6f4581904667a6 innernet-server.initd
+3c3b5c9fc5a72a288eff9dcf58fe535a40b99c419b5f25938ca689049caac9f93ba1d664d51f0dde8ee7e4578fc6eff68741f7ab6b540d471c26bf0cfd064a90 innernet-server.confd
+e83ef3a3920f7598ffccb7f98ef083eb0f08b1c8ebd748cbe2287988d880321dadd0a94883e48915d68e35f1b57606d6bf90e9e56aa20c30419ec2dafce86377 unbundle-sqlite.patch
+"
diff --git a/testing/innernet/innernet-server.confd b/testing/innernet/innernet-server.confd
new file mode 100644
index 00000000000..3d660664793
--- /dev/null
+++ b/testing/innernet/innernet-server.confd
@@ -0,0 +1,4 @@
+# Configuration for /etc/init.d/innernet-server
+
+# extra arguments for command, see innernet-server(8)
+#command_extra_args=""
diff --git a/testing/innernet/innernet-server.initd b/testing/innernet/innernet-server.initd
new file mode 100644
index 00000000000..acf6f3b25b2
--- /dev/null
+++ b/testing/innernet/innernet-server.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+description="innernet VPN coordination server"
+
+# To manage the wireguard interface named "ifname", link this file
+# to /etc/init.d/innernet-server.ifname and start that service
+interface="${RC_SVCNAME##*.}"
+
+command="/usr/sbin/innernet-server"
+command_args="serve $interface $command_extra_args"
+command_background=true
+pidfile="/run/${RC_SVCNAME}.pid"
+
+stop_post() {
+ /usr/sbin/innernet down $interface
+}
+
+depend() {
+ use net
+}
diff --git a/testing/innernet/innernet.confd b/testing/innernet/innernet.confd
new file mode 100644
index 00000000000..e2313e5b67f
--- /dev/null
+++ b/testing/innernet/innernet.confd
@@ -0,0 +1,4 @@
+# Configuration for /etc/init.d/innernet
+
+# extra arguments for command, see innernet(8)
+#command_extra_args="--interval 60"
diff --git a/testing/innernet/innernet.initd b/testing/innernet/innernet.initd
new file mode 100644
index 00000000000..f3316f22c11
--- /dev/null
+++ b/testing/innernet/innernet.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+description="innernet VPN client service"
+
+# To manage the wireguard interface named "ifname", link this file
+# to /etc/init.d/innernet.ifname and start that service
+interface="${RC_SVCNAME##*.}"
+
+command="/usr/sbin/innernet"
+command_args="up $interface --daemon ${command_extra_args:---interval 60}"
+command_background=true
+pidfile="/run/${RC_SVCNAME}.pid"
+
+stop_post() {
+ $command down $interface
+}
+
+depend() {
+ use net
+}
diff --git a/testing/innernet/unbundle-sqlite.patch b/testing/innernet/unbundle-sqlite.patch
new file mode 100644
index 00000000000..c6eb830170b
--- /dev/null
+++ b/testing/innernet/unbundle-sqlite.patch
@@ -0,0 +1,25 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -620,11 +620,10 @@
+ name = "libsqlite3-sys"
+ version = "0.26.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+ dependencies = [
+- "cc",
+ "pkg-config",
+ "vcpkg",
+ ]
+
+ [[package]]
+--- a/server/Cargo.toml
++++ b/server/Cargo.toml
+@@ -56,7 +56,7 @@
+
+ # Workaround for https://github.com/rusqlite/rusqlite/issues/914
+ [target.'cfg(target_env = "musl")'.dependencies]
+-rusqlite = { version = "0.29", features = ["bundled"] }
++rusqlite = { version = "0.29" }
+
+ [dev-dependencies]
+ anyhow = "1"
diff --git a/testing/interception-tools/APKBUILD b/testing/interception-tools/APKBUILD
new file mode 100644
index 00000000000..a2d7c61aa5e
--- /dev/null
+++ b/testing/interception-tools/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Evan Johnston <evan@d2evs.net>
+# Maintainer: Evan Johnston <evan@d2evs.net>
+pkgname=interception-tools
+pkgver=0.6.8
+pkgrel=2
+pkgdesc="Minimal composable infrastructure on top of libudev and libevdev"
+url="https://gitlab.com/interception/linux/tools"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ boost-dev
+ cmake
+ eudev-dev
+ libevdev-dev
+ samurai
+ yaml-cpp-dev
+ "
+subpackages="$pkgname-openrc"
+source="https://gitlab.com/interception/linux/tools/-/archive/v$pkgver/tools-v$pkgver.tar.gz
+ udevmon.initd
+ modules-load.conf
+ "
+builddir="$srcdir/tools-v$pkgver"
+options="!check" # no tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm755 "$srcdir"/udevmon.initd \
+ "$pkgdir"/etc/init.d/udevmon
+ install -Dm755 "$srcdir"/modules-load.conf \
+ "$pkgdir"/usr/lib/modules-load.d/$pkgname.conf
+}
+sha512sums="
+1d156641e3457624fc24e813eecd376f16b5537b56ad9ab3df36d94a3658d905d09ec2481bc0cf29e5ef1141c363f34c691295c2a70c982648713365d17fb1be tools-v0.6.8.tar.gz
+727fe6fa86b9e862a14c03a0bec3cb361147e55cd327cb98ec75d0ab67c040f895d00153015beac1259df4557549c2efef0a4251eb8d153fd07c0df90f181d61 udevmon.initd
+a9b069ed121ffeee887e0583d8cb46035ecf1fa90a26a4ecb3aa11ff03178b2b08621f6676db6b2350f290694c04aabcf36f2ce3e0813a76dde9a33555edb112 modules-load.conf
+"
diff --git a/testing/interception-tools/modules-load.conf b/testing/interception-tools/modules-load.conf
new file mode 100644
index 00000000000..42bc0053c78
--- /dev/null
+++ b/testing/interception-tools/modules-load.conf
@@ -0,0 +1 @@
+uinput
diff --git a/testing/interception-tools/udevmon.initd b/testing/interception-tools/udevmon.initd
new file mode 100644
index 00000000000..312a9395037
--- /dev/null
+++ b/testing/interception-tools/udevmon.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+command=/usr/bin/udevmon
+command_args="-c /etc/interception/udevmon.yaml"
+pidfile=/run/udevmon.pid
+command_background=true
+
+depend() {
+ want dev-settle
+ after dev-settle
+}
diff --git a/testing/intiface-central/APKBUILD b/testing/intiface-central/APKBUILD
new file mode 100644
index 00000000000..7a11abe940f
--- /dev/null
+++ b/testing/intiface-central/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=intiface-central
+pkgver=2.5.7
+pkgrel=0
+pkgdesc="Frontend application for the Buttplug Sex Toy Control Library"
+url="https://intiface.com/central/"
+arch="aarch64 x86_64" # flutter
+license="GPL-3.0-only"
+makedepends="
+ cargo
+ corrosion
+ dbus-dev
+ eudev-dev
+ flutter-desktop
+ openssl-dev
+ patchelf
+ "
+options="net !check" # no tests
+source="
+ https://github.com/intiface/intiface-central/archive/refs/tags/v$pkgver/intiface-central-$pkgver.tar.gz
+
+ system-corrosion.patch
+ system-flutter.patch
+ pmos-fit-screen.patch
+ no-werror.patch
+
+ intiface-central
+ intiface-central.desktop
+ "
+
+case "$CARCH" in
+ x86_64) _flutter_arch="x64" ;;
+ aarch64) _flutter_arch="arm64" ;;
+esac
+
+prepare() {
+ default_prepare
+
+ flutter pub get --enforce-lockfile
+
+ (
+ cd intiface-engine-flutter-bridge
+
+ cargo fetch --target="$CTARGET" --locked
+ )
+}
+
+build() {
+ flutter build linux --release
+
+ for _elf in build/linux/$_flutter_arch/release/bundle/lib/lib*.so; do
+ # running patchelf on libapp (the AOT snapshot of the whole Dart codebase)
+ # breaks it with "[FATAL:flutter/runtime/dart_vm_initializer.cc(89)]
+ # Error while initializing the Dart VM: Invalid vm isolate snapshot seen".
+ #
+ # it has no rpath and only links to libc soname anyway. 🤷â€â™€ï¸
+ [ "$(basename "$_elf")" != "libapp.so" ] || continue
+
+ patchelf --set-rpath '$ORIGIN' "$_elf"
+ done
+}
+
+package() {
+ local bundle="$builddir"/build/linux/$_flutter_arch/release/bundle
+
+ install -Dm755 "$bundle"/${pkgname/-/_} "$pkgdir"/usr/lib/$pkgname/${pkgname/-/_}
+ cp -r "$bundle"/lib "$pkgdir"/usr/lib/$pkgname/lib
+ cp -r "$bundle"/data "$pkgdir"/usr/lib/$pkgname/data
+
+ install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ install -Dm644 "$srcdir"/$pkgname.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -Dm644 assets/icons/intiface_central_icon.png "$pkgdir"/usr/share/icons/hicolor/512x512/apps/$pkgname.png
+}
+
+sha512sums="
+c5262f62e5fb9de934986d12e01701ce5959d9beeb40a3e9ce08141afe9a3ccf0ccb84a5fc9022d3dabdaa8f449bf37add765de658d3bfcc0b070964537e2f81 intiface-central-2.5.7.tar.gz
+ecad3c5cee9c53fc88b539d3088907539aff0b28980a89d4be2acb3c329a7a2154cb12743c0786e5c4a33de78af06b61b5b35f8eee633989cc943dc14e87dba6 system-corrosion.patch
+91014708ab7bb81518ce93db0612209d6479dfa503064d9e9d3186cd5e861165a3f63e286d271d5aac8a1d676868fc3acf51648ac01c16a215062a317ccb6623 system-flutter.patch
+a090ec306117675c555683a836a5368b7165423509439c5d4a75ffcf9a125ab5d7a2598f2c2253f044fc77785276f696b495aece74d4ab8eea9126404966e061 pmos-fit-screen.patch
+1d2b7d28a09e26ed48d89aa5f5dffb738ba367fa2760b12980225239705e16fa1ec89901d7aecf26c8527de721a5f50f50cc77ea009cd5f25f219d1af8730ed8 no-werror.patch
+a69d49b59ebd0dbeeace74954d72cd97c38aa79597887648f0c8f5ec4ecb191a1b47c43d3007e7c826323800a601951e621ee60ed739f17f67fca2f8855d95b0 intiface-central
+4015b388f997eb3abc2ecd69947bb703926e01de82807a940a42902f46e90d6759f609921215ba865cb6c91f5c6d404115c16a0a7ebe4bcc35315a4910adc081 intiface-central.desktop
+"
diff --git a/testing/intiface-central/intiface-central b/testing/intiface-central/intiface-central
new file mode 100644
index 00000000000..38da4ad2216
--- /dev/null
+++ b/testing/intiface-central/intiface-central
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# fixes "Error loading shared library lib/libintiface_engine_flutter_bridge.so:
+# No such file or directory"
+cd /usr/lib/intiface-central
+
+exec /usr/lib/intiface-central/intiface_central
diff --git a/testing/intiface-central/intiface-central.desktop b/testing/intiface-central/intiface-central.desktop
new file mode 100644
index 00000000000..f3328be2789
--- /dev/null
+++ b/testing/intiface-central/intiface-central.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Intiface Central
+Icon=intiface-central
+Exec=intiface-central %U
+Categories=Utility;Robotics;
+Keywords=Buttplug;Teledildonics;
+X-Purism-FormFactor=Workstation;Mobile;
diff --git a/testing/intiface-central/no-werror.patch b/testing/intiface-central/no-werror.patch
new file mode 100644
index 00000000000..ec8df348612
--- /dev/null
+++ b/testing/intiface-central/no-werror.patch
@@ -0,0 +1,11 @@
+--- ./linux/CMakeLists.txt.orig
++++ ./linux/CMakeLists.txt
+@@ -41,7 +41,7 @@
+ # of modifying this function.
+ function(APPLY_STANDARD_SETTINGS TARGET)
+ target_compile_features(${TARGET} PUBLIC cxx_std_14)
+- target_compile_options(${TARGET} PRIVATE -Wall -Werror)
++ target_compile_options(${TARGET} PRIVATE -Wall)
+ target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
+ target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
+ endfunction()
diff --git a/testing/intiface-central/pmos-fit-screen.patch b/testing/intiface-central/pmos-fit-screen.patch
new file mode 100644
index 00000000000..b0cd7b31d58
--- /dev/null
+++ b/testing/intiface-central/pmos-fit-screen.patch
@@ -0,0 +1,105 @@
+From 369131e50242091de00163d0b1fc16de33336928 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Tue, 30 May 2023 03:06:58 +0200
+Subject: [PATCH 1/2] fix window/layout on pmos
+
+---
+ .../intiface_configuration_cubit.dart | 19 ++++++++++++++---
+ lib/intiface_central_app.dart | 21 +++++++++++--------
+ lib/util/intiface_util.dart | 8 +++++++
+ 3 files changed, 36 insertions(+), 12 deletions(-)
+
+diff --git a/lib/bloc/configuration/intiface_configuration_cubit.dart b/lib/bloc/configuration/intiface_configuration_cubit.dart
+index 6d761bf..0f23aa4 100644
+--- a/lib/bloc/configuration/intiface_configuration_cubit.dart
++++ b/lib/bloc/configuration/intiface_configuration_cubit.dart
+@@ -83,6 +83,11 @@
+ WebsocketServerPortState(this.value);
+ }
+
++class Pmos extends IntifaceConfigurationState {
++ final bool value;
++ Pmos(this.value);
++}
++
+ class UseCompactDisplayState extends IntifaceConfigurationState {
+ final bool value;
+ UseCompactDisplayState(this.value);
+@@ -186,9 +191,11 @@
+ // Our initializer runs through all of our known configuration values, either setting them to what they already are,
+ // or providing them with default values.
+
+- // Window settings for desktop. Will be ignored on mobile. Default to expanded.
+- useCompactDisplay = _prefs.getBool("useCompactDisplay") ?? false;
++ pmos = await isPostmarket();
+
++ // Window settings for desktop. Will be ignored on mobile. Default to expanded except pmos.
++ useCompactDisplay = _prefs.getBool("useCompactDisplay") ?? pmos;
++
+ // Crash reporting setting is now CrashReporting2, because it was originally slammed to true but never actually
+ // used anywhere. With the addition of Sentry, it's now defaulted to off so we're not sending data without the
+ // user's approval.
+@@ -207,7 +214,7 @@
+ showExtendedUI = _prefs.getBool("showExtendedUI") ?? false;
+ allowRawMessages = _prefs.getBool("allowRawMessages") ?? false;
+ unreadNews = _prefs.getBool("unreadNews") ?? false;
+- useSideNavigationBar = _prefs.getBool("useSideNavigationBar") ?? isDesktop();
++ useSideNavigationBar = _prefs.getBool("useSideNavigationBar") ?? isDesktop() && !pmos;
+ useLightTheme = _prefs.getBool("useLightTheme") ?? true;
+ restoreWindowLocation = _prefs.getBool("restoreWindowLocation") ?? true;
+
+@@ -264,6 +271,12 @@
+ set currentDeviceConfigEtag(String value) {
+ _prefs.setString("currentDeviceConfigEtag", value);
+ emit(CurrentDeviceConfigEtagState(value));
++ }
++
++ bool get pmos => _prefs.getBool("pmos")!;
++ set pmos(bool value) {
++ _prefs.setBool("pmos", value);
++ emit(Pmos(value));
+ }
+
+ // Slam to false until we figure out how to window resizing.
+diff --git a/lib/intiface_central_app.dart b/lib/intiface_central_app.dart
+index 1fac674..d547773 100644
+--- a/lib/intiface_central_app.dart
++++ b/lib/intiface_central_app.dart
+@@ -153,6 +153,7 @@
+ logInfo("Window location not restored due to configuration settings");
+ }
+
++ if (configCubit.pmos) {
+ windowDisplayModeResize(configCubit.useCompactDisplay, guiSettingsCubit);
+ await windowManager.waitUntilReadyToShow(windowOptions, () async {
+ await windowManager.show();
+@@ -165,6 +166,7 @@
+ }
+ windowDisplayModeResize(event.value, guiSettingsCubit);
+ });
++ }
+
+ // Only add app update checks on desktop, mobile apps will use stores.
+ updateRepo.addProvider(IntifaceCentralDesktopUpdater());
+diff --git a/lib/util/intiface_util.dart b/lib/util/intiface_util.dart
+index 2f2ccb6..fb3031e 100644
+--- a/lib/util/intiface_util.dart
++++ b/lib/util/intiface_util.dart
+@@ -1,3 +1,4 @@
++import 'package:device_info_plus/device_info_plus.dart';
+ import 'package:path_provider/path_provider.dart';
+ import 'package:path/path.dart' as p;
+ import 'dart:io';
+@@ -82,3 +83,10 @@
+ bool isDesktop() => Platform.isLinux || Platform.isMacOS || Platform.isWindows;
+ bool isMobile() => Platform.isAndroid || Platform.isIOS;
+ bool canShowUpdate() => !(const bool.fromEnvironment('NO_VISIBLE_UPDATES'));
++Future<bool> isPostmarket() async {
++ if (!Platform.isLinux) return false;
++
++ DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
++ LinuxDeviceInfo linuxInfo = await deviceInfo.linuxInfo;
++ return linuxInfo.id == "postmarketos";
++}
+--
+2.40.1
diff --git a/testing/intiface-central/system-corrosion.patch b/testing/intiface-central/system-corrosion.patch
new file mode 100644
index 00000000000..466dee97933
--- /dev/null
+++ b/testing/intiface-central/system-corrosion.patch
@@ -0,0 +1,24 @@
+--- ./linux/rust.cmake.orig
++++ ./linux/rust.cmake
+@@ -2,19 +2,9 @@
+ # many dependencies we would need to install Corrosion on the system.
+ # See instructions on https://github.com/AndrewGaspar/corrosion#cmake-install
+ # Once done, uncomment this line:
+-# find_package(Corrosion REQUIRED)
++find_package(Corrosion REQUIRED)
+
+-include(FetchContent)
+-
+-FetchContent_Declare(
+- Corrosion
+- GIT_REPOSITORY https://github.com/AndrewGaspar/corrosion.git
+- GIT_TAG origin/master # Optionally specify a version tag or branch here
+-)
+-
+-FetchContent_MakeAvailable(Corrosion)
+-
+-corrosion_import_crate(MANIFEST_PATH ../intiface-engine-flutter-bridge/Cargo.toml)
++corrosion_import_crate(MANIFEST_PATH ../intiface-engine-flutter-bridge/Cargo.toml FROZEN)
+
+ # Flutter-specific
+
diff --git a/testing/intiface-central/system-flutter.patch b/testing/intiface-central/system-flutter.patch
new file mode 100644
index 00000000000..e8f7270ec9a
--- /dev/null
+++ b/testing/intiface-central/system-flutter.patch
@@ -0,0 +1,15 @@
+--- a/linux/CMakeLists.txt
++++ b/linux/CMakeLists.txt
+@@ -110,12 +110,6 @@
+ install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
+ COMPONENT Runtime)
+
+-install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
+- COMPONENT Runtime)
+-
+-install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
+- COMPONENT Runtime)
+-
+ foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
+ install(FILES "${bundled_library}"
+ DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
diff --git a/testing/iodine/APKBUILD b/testing/iodine/APKBUILD
deleted file mode 100644
index d1ca65e598d..00000000000
--- a/testing/iodine/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Guy Taylor <thebigguy.co.uk@gmail.com>
-# Maintainer:
-pkgname=iodine
-pkgver=0.7.0
-pkgrel=1
-pkgdesc="IP over DNS tunnel"
-url="http://code.kryo.se/iodine/"
-arch="all"
-license="ISC"
-depends=""
-makedepends="linux-headers zlib-dev"
-subpackages="$pkgname-doc"
-source="http://code.kryo.se/iodine/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- CFLAGS="$CFLAGS -D__GLIBC__=1" make
-}
-
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" prefix="/usr" install
-}
-
-sha512sums="49fe4f0cf614d3400cbfdade84eb4f50430f8f92004f663a08acc1514e8ff342443a8c3f855828bbca1864a3fafe419b5256f8a80fc4024b364d4c8c953fc0ec iodine-0.7.0.tar.gz"
diff --git a/testing/ion-shell/APKBUILD b/testing/ion-shell/APKBUILD
deleted file mode 100644
index b4444595efb..00000000000
--- a/testing/ion-shell/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
-pkgname=ion-shell
-pkgver=1.0.5_git20200522
-pkgrel=0
-_commit=ca069ed1c113d8d07d6535c24939389065ce761f
-pkgdesc="The Ion Shell"
-url="https://gitlab.redox-os.org/redox-os/ion"
-arch="all !s390x !mips !mips64"
-license="MIT"
-makedepends="cargo"
-install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
-source="$pkgname-$_commit.tar.gz::https://gitlab.redox-os.org/redox-os/ion/-/archive/$_commit.tar.gz"
-builddir="$srcdir/ion-$_commit"
-
-build() {
- cargo build --release --locked
-}
-
-check() {
- cargo test --release --locked
-}
-
-package() {
- install -Dm0755 target/release/ion -t "$pkgdir"/usr/bin
-}
-
-sha512sums="9c83c3ae6bc3253a93496448b6137a686f52edcf28036fe6bc237ed6bc8e64f184a1cc8753c0b870d20d122080306a1cfc9e7c610bb188e56fcad595585dcf66 ion-shell-ca069ed1c113d8d07d6535c24939389065ce761f.tar.gz"
diff --git a/testing/ion-shell/ion-shell.post-install b/testing/ion-shell/ion-shell.post-install
deleted file mode 100644
index a40b915462a..00000000000
--- a/testing/ion-shell/ion-shell.post-install
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-add-shell '/usr/bin/ion'
-exit 0
diff --git a/testing/ion-shell/ion-shell.post-upgrade b/testing/ion-shell/ion-shell.post-upgrade
deleted file mode 120000
index 90eba30cc4c..00000000000
--- a/testing/ion-shell/ion-shell.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-ion-shell.post-install \ No newline at end of file
diff --git a/testing/ion-shell/ion-shell.pre-deinstall b/testing/ion-shell/ion-shell.pre-deinstall
deleted file mode 100644
index e3444569326..00000000000
--- a/testing/ion-shell/ion-shell.pre-deinstall
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-remove-shell '/usr/bin/ion'
-exit 0
diff --git a/testing/iozone/APKBUILD b/testing/iozone/APKBUILD
deleted file mode 100644
index 4274d8ff972..00000000000
--- a/testing/iozone/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=iozone
-pkgver=3.489
-_pkgver=${pkgver//./_}
-pkgrel=0
-pkgdesc="IOzone filesystem benchmark."
-url="http://iozone.org"
-arch="all !mips !mips64"
-license="custom"
-options="!check" # No test suite from upstream
-subpackages="$pkgname-doc"
-source="http://iozone.org/src/current/iozone$_pkgver.tar"
-builddir="$srcdir/${pkgname}$_pkgver/"
-
-build() {
- local target=
- case "$CARCH" in
- x86_64) target="linux-AMD64" ;;
- x86) target="linux" ;;
- aarch64) target="linux-arm" ;;
- armv7) target="linux-arm" ;;
- armhf) target="linux-arm" ;;
- s390x) target="linux-S390X" ;;
- ppc64le) target="linux-powerpc64" ;;
- *) msg "Unable to determine architecture from (CARCH=$CARCH)" ; return 1 ;;
- esac
-
- cd "$builddir"/src/current/
- make $target CFLAGS='-DHAVE_PREADV -DHAVE_PWRITEV'
-}
-
-package() {
- install -m755 -D src/current/iozone \
- "$pkgdir"/usr/bin/iozone
-
- install -dm755 "$pkgdir"/usr/share/licenses/$pkgname/
- sed -n '1,49p' "$builddir"/src/current/iozone.c > \
- "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-
- install -Dm644 "$builddir"/docs/iozone.1 \
- "$pkgdir"/usr/share/man/man1/iozone.1
-}
-
-sha512sums="06105bee3eb55d348ca58f51a1ebd5416f0675c8f296b39a1ff44b5d5e396a3f048a3fa72a1d36d4f6cac52f8d0c2a843b7955cf2206cef376666be290d18929 iozone3_489.tar"
diff --git a/testing/ip2location/APKBUILD b/testing/ip2location/APKBUILD
new file mode 100644
index 00000000000..c403f41d00d
--- /dev/null
+++ b/testing/ip2location/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: IP2Location <support@ip2location.com>
+pkgname=ip2location
+pkgver=8.6.1
+pkgrel=0
+pkgdesc="Lookup country, region and city information by IP addresses"
+url="https://www.ip2location.com/development-libraries/ip2location/c"
+arch="all"
+license="MIT"
+subpackages="$pkgname-dev $pkgname-doc"
+checkdepends="perl"
+makedepends="automake autoconf libtool"
+source="$pkgname-$pkgver.tar.gz::https://github.com/chrislim2888/IP2Location-C-Library/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir"/IP2Location-C-Library-$pkgver
+
+prepare() {
+ default_prepare
+ autoreconf -vif
+}
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr
+ make
+}
+
+check() {
+ cd data
+ ./ip-country.pl
+ make check
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+1c3c8198c7eadbcc8b3f274f46cd9fb56115c5ec3713bd6cf96743f9de4bd3029f2f90ed07c86c47626bbd6de2adb6d0ddf9a656f3fc5ddfc07ea9f1d43b2d06 ip2location-8.6.1.tar.gz
+"
diff --git a/testing/iprange/APKBUILD b/testing/iprange/APKBUILD
index ed47c48e96f..2a8d7608e4a 100644
--- a/testing/iprange/APKBUILD
+++ b/testing/iprange/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jonny Tyers <jtyers@gmail.com>
pkgname=iprange
pkgver=1.0.4
-pkgrel=0
+pkgrel=1
pkgdesc="manages IP ranges (part of FireHOL)"
url="https://github.com/firehol/iprange"
arch="all"
diff --git a/testing/irccd/APKBUILD b/testing/irccd/APKBUILD
index 47fd43ab451..a424d8936bc 100644
--- a/testing/irccd/APKBUILD
+++ b/testing/irccd/APKBUILD
@@ -1,54 +1,48 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=irccd
-pkgver=3.0.3
+pkgver=4.0.3
pkgrel=0
pkgdesc="IRC Client Daemon"
url="http://projects.malikania.fr/irccd"
arch="all"
license="ISC"
-depends="boost-system"
-makedepends="boost-dev cmake doxygen libedit-dev openssl-dev uriparser-dev"
-subpackages="$pkgname-dev $pkgname-doc"
+makedepends="bison cmake curl-dev flex openssl-dev>3"
+subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc"
source="http://releases.malikania.fr/irccd/$pkgver/irccd-$pkgver.tar.xz
irccd.initd
irccd.confd"
pkgusers="irccd"
pkggroups="irccd"
+options="!check" # Fixed in next version.
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake \
+ cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DIRCCD_WITH_TESTS=On \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DIRCCD_WITH_TESTS=Off \
$CMAKE_CROSSOPTS .
- make
-}
-
-check() {
- make test
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
- install -m644 -o "$pkgusers" -g "$pkggroups" \
+ install -Dm644 -o "$pkgusers" -g "$pkggroups" \
"$pkgdir"/etc/irccd.conf.sample "$pkgdir"/etc/irccd.conf
- install -m644 -o "$pkgusers" -g "$pkggroups" \
- "$pkgdir"/etc/irccdctl.conf.sample "$pkgdir"/etc/irccdctl.conf
install -Dm755 "$srcdir"/irccd.initd "$pkgdir"/etc/init.d/irccd
install -Dm644 "$srcdir"/irccd.confd "$pkgdir"/etc/conf.d/irccd
}
-sha512sums="13ec29bc01700263f853cc0e04ddc0b2c9d46a9216a1d9b327be5f0a38f9a089b10bb312f95da763c44f5014dd35ece5a6ecef58acae8ff81990de44ecc1acfc irccd-3.0.3.tar.xz
+sha512sums="
+41643f0e81bde2cea8b26a0108addf2a1b29512ea479c2d5f6b106f5d796b4444f0d2a92ccd0fe306939cc9b33a95d5841cddea62ef9902f32940eddf8ecfa4b irccd-4.0.3.tar.xz
0ae7907a9724a55e30eac5d19c6b1e5e83ddea6ee90a8a377030f521de9c28c9cec103fbce4fc097ac59f55b7048bc9dee395affd9300de3a79ac2e86d0c75d0 irccd.initd
-93ce8795790a21e87cdfb9d31737af73faa200244c448841cd65e52f0523e8f664151e61dbf431df8360473d73c3ca5b3b8b6bcb0ccec52f66e511ae9f2abbdb irccd.confd"
+93ce8795790a21e87cdfb9d31737af73faa200244c448841cd65e52f0523e8f664151e61dbf431df8360473d73c3ca5b3b8b6bcb0ccec52f66e511ae9f2abbdb irccd.confd
+"
diff --git a/testing/ircd-hybrid/APKBUILD b/testing/ircd-hybrid/APKBUILD
new file mode 100644
index 00000000000..407beb70eab
--- /dev/null
+++ b/testing/ircd-hybrid/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=ircd-hybrid
+pkgver=8.2.43
+pkgrel=0
+pkgdesc="lightweight and high-performance internet relay chat daemon (ircd)"
+url="https://github.com/ircd-hybrid/ircd-hybrid/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="openssl-dev>3"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ircd-hybrid/ircd-hybrid/archive/$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+options="!check" # no test suite
+
+build() {
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --libexecdir=/usr/libexec \
+ --sysconfdir=/etc/ircd-hybrid \
+ --sharedstatedir=/var/lib/ircd-hybrid/com \
+ --localstatedir=/var/lib/ircd-hybrid \
+ --runstatedir=/var/lib/ircd-hybrid/run \
+ --libdir=/usr/lib \
+ --includedir=/usr/include \
+ --oldincludedir=/usr/include \
+ --datarootdir=/usr/lib \
+ --infodir=/usr/share/man \
+ --localedir=/usr/lib/ircd-hybrid/locale \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/ircd-hybrid/doc
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+108ee77e18f3eeb23c960aeaf90b7a0a31d534333df6064be80d93cbe52696812f93af36e53be5df126a3db1587aabda699934f412f6a2b54972d86590f6e40c ircd-hybrid-8.2.43.tar.gz
+"
diff --git a/testing/irclog2html/APKBUILD b/testing/irclog2html/APKBUILD
deleted file mode 100644
index 3e641d37f91..00000000000
--- a/testing/irclog2html/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=irclog2html
-pkgver=2.17.2
-pkgrel=2
-pkgdesc="Script to convert IRC logs to HTML and other formats"
-url="https://mg.pov.lt/irclog2html/"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${pkgname:0:1}/$pkgname/$pkgname-$pkgver.tar.gz"
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- install -Dpm 0644 src/$pkgname/irclog.css \
- "$pkgdir"/usr/share/$pkgname/irclog.css
-}
-
-sha512sums="f79b714f66f300a65cf5dca4c143f0fef6a63202f1495fbfd71b34378b18b3041599a2ce069dde27659562e88485e2175a45c385a72f7e601429ee80aa23c713 irclog2html-2.17.2.tar.gz"
diff --git a/testing/isoimagewriter/APKBUILD b/testing/isoimagewriter/APKBUILD
deleted file mode 100644
index 8056cfa9853..00000000000
--- a/testing/isoimagewriter/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=isoimagewriter
-pkgver=0.8
-pkgrel=0
-arch="all !armhf" # Blocked by qt5-qtwebengine
-url="https://community.kde.org/ISOImageWriter"
-pkgdesc="A program to write hybrid ISO files onto a USB disk"
-license="GPL-3.0-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev ki18n-dev kcoreaddons-dev kwidgetsaddons-dev kiconthemes-dev kcrash-dev eudev-dev kauth-dev gpgme-dev"
-source="https://download.kde.org/unstable/isoimagewriter/$pkgver/isoimagewriter-$pkgver.tar.xz"
-subpackages="$pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="1d5031695647be54e5de10f6243b68bf8d2dc29a7894c8ac69954df353d5baa740290b572c89cd37650718749117f5e3b25dd99b8b374d8ba0376288878f9199 isoimagewriter-0.8.tar.xz"
diff --git a/testing/isoinfo/APKBUILD b/testing/isoinfo/APKBUILD
new file mode 100644
index 00000000000..addcc95c27c
--- /dev/null
+++ b/testing/isoinfo/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Hossein Hosni <hosni.hossein@gmail.com>
+# Maintainer: Hossein Hosni <hosni.hossein@gmail.com>
+pkgname=isoinfo
+pkgver=0_git20131217 # the git repo doesn't have a release yet
+pkgrel=1
+pkgdesc="Utility programs for dumping and verifying iso9660 images"
+url="https://github.com/cmatsuoka/isoinfo"
+arch="all"
+license="MIT"
+_commit="9c91703ec9d9f8579bcf5ce63b95f17f731d5ee1"
+source="$pkgname-$pkgver.zip::https://github.com/cmatsuoka/isoinfo/archive/$_commit.zip"
+builddir="$srcdir/isoinfo-$_commit"
+options="!check" # no testsuite
+
+build() {
+ make
+}
+
+package() {
+ install -Dm 755 isoinfo "$pkgdir"/usr/bin/isoinfo
+}
+
+sha512sums="
+9d22036465bcd41a1e9e16e66154d68c93dedf3efcd3b698de11009ea9c8bb46898e257646756f7fd2a563a260ad59e26a4e82c13a8e8cb1685966aa327def82 isoinfo-0_git20131217.zip
+"
diff --git a/testing/isomd5sum/APKBUILD b/testing/isomd5sum/APKBUILD
new file mode 100644
index 00000000000..067d82119ad
--- /dev/null
+++ b/testing/isomd5sum/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Hossein Hosni <hosni.hossein@gmail.com>
+# Maintainer: Hossein Hosni <hosni.hossein@gmail.com>
+pkgname=isomd5sum
+pkgver=1.2.3
+pkgrel=2
+pkgdesc="Utilities for working with md5sum implanted in ISO images"
+url="https://github.com/rhinstaller/isomd5sum"
+arch="all !armv7 !armhf"
+license="GPL-2.0-only"
+makedepends="python3-dev popt-dev"
+checkdepends="cdrkit"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rhinstaller/isomd5sum/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+check() {
+ # create 100KB dummy file to include in testiso.iso
+ dd if=/dev/urandom of=dummy-file.bin bs=1 count=102400
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install-bin install-python
+}
+
+sha512sums="
+a500faa368377c8fb5dfc311bc3a6dbadd253e6af7928b691d1fc11e25b69819a611f72fa201e70f5df257cdc491c97d1f612bb179fa49de1fb0a638d6ac7972 isomd5sum-1.2.3.tar.gz
+"
diff --git a/testing/itd/APKBUILD b/testing/itd/APKBUILD
new file mode 100644
index 00000000000..37d9af87ec2
--- /dev/null
+++ b/testing/itd/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=itd
+pkgver=1.1.0
+pkgrel=5
+pkgdesc="Daemon that interfaces with InfiniTime firmware on the PineTime smartwatch"
+url="https://gitea.elara.ws/Elara6331/itd"
+arch="all"
+license="GPL-3.0-only"
+depends="bluez dbus"
+makedepends="go"
+source="$pkgname-v$pkgver.tar.gz::https://gitea.elara.ws/Elara6331/itd/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+
+prepare() {
+ default_prepare
+
+ echo -n $pkgver > version.txt
+}
+
+build() {
+ make all -o version.txt
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+ # just a systemd service
+ rm -r "$pkgdir"/usr/lib
+}
+
+sha512sums="
+5fbaedf936c316defd5486d53ea20daefdfda05932f950a5885149cf2656fd753becd9a98e926b15ce25358906524a40661076d4a922136c1a91b0764ac3e13a itd-v1.1.0.tar.gz
+"
diff --git a/testing/iverilog/APKBUILD b/testing/iverilog/APKBUILD
deleted file mode 100644
index b13a0c0364c..00000000000
--- a/testing/iverilog/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=iverilog
-_pkgver=10_3
-pkgver=${_pkgver%%_*}.${_pkgver##*_}
-pkgrel=0
-pkgdesc="Icarus Verilog compiler and simulation tool"
-url="http://iverilog.icarus.com"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="automake autoconf gperf bison flex"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/steveicarus/iverilog/archive/v$_pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$_pkgver"
-
-prepare() {
- default_prepare
- aclocal && autoconf
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="67076e19a208576c21a0462ff7d15d00a9d47740c47518a5523bd928b3118360d85eb84c317963717d15e5246ece3727259f6ff3baf59e195340530cc9086a1d iverilog-10.3.tar.gz"
diff --git a/testing/j4-dmenu-desktop/APKBUILD b/testing/j4-dmenu-desktop/APKBUILD
index a0f2788780f..ab0a2e17502 100644
--- a/testing/j4-dmenu-desktop/APKBUILD
+++ b/testing/j4-dmenu-desktop/APKBUILD
@@ -1,29 +1,38 @@
# Maintainer: Bradley Saulteaux <bradsoto@gmail.com>
pkgname=j4-dmenu-desktop
-pkgver=2.17
-pkgrel=0
+pkgver=2.18
+pkgrel=1
pkgdesc="A fast desktop menu"
-options="!check" # Requires a desktop-style system layout not present in builders
-url="https://github.com/enkore/$pkgname"
+url="https://github.com/enkore/j4-dmenu-desktop"
arch="all"
license="GPL-3.0-only"
-depends="dmenu"
-makedepends="cmake git"
-source="$pkgname-$pkgver.tar.gz::$url/archive/r$pkgver.tar.gz"
+depends="dmenu-virtual"
+makedepends="cmake samurai"
+source="$pkgname-$pkgver.tar.gz::https://github.com/enkore/j4-dmenu-desktop/archive/r$pkgver.tar.gz"
builddir="$srcdir"/$pkgname-r$pkgver
+# Requires a desktop-style system layout not present in builders
+# needs catch
+options="!check"
build() {
- cmake -DCMAKE_INSTALL_PREFIX=/usr .
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_GIT_CATCH=OFF \
+ -DWITH_TESTS="$(want_check && echo ON || echo OFF)"
+
+ cmake --build build
}
check() {
# Test depends on /usr/share/applications existing on the system
- make test
+ ctest --output-on-failure --test-dir build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="7a41bb60a6b3afa7bf6229f08674d5f31e0152d0788a17edc210986d1b1f0d4fad13ffaa13c58ed7a0c5d2e67f8f95bb2a0f6556aeb0f2cc24c7d885b346325e j4-dmenu-desktop-2.17.tar.gz"
+sha512sums="
+f8b0c825d567d60da0fb418e6f0b24a6d9daa9fb142b194b0a8b249303f4e09b6694fce72bf031007ac67253e488fc7666d4ba7beb032bc74cc2a32aca0f6c96 j4-dmenu-desktop-2.18.tar.gz
+"
diff --git a/testing/jack_capture/APKBUILD b/testing/jack_capture/APKBUILD
new file mode 100644
index 00000000000..a6332f0a49f
--- /dev/null
+++ b/testing/jack_capture/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=jack_capture
+pkgver=0.9.73_git20210429
+# Upstream hasn't cut a release since May 2017 and there have been several
+# changes since then. There's currently an open issue to cut a new release.
+_commit=fa6f2907e4119a9c59e8d4abed0e32c4422a5523
+pkgrel=2
+pkgdesc="Program for recording soundfiles with jack"
+url="https://github.com/kmatheussen/jack_capture"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="bash jack-dev liblo-dev lame-dev libsndfile-dev"
+source="https://github.com/kmatheussen/jack_capture/archive/$_commit/jack_capture-$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No testsuite
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+966e901b86a331eb1f708bb785e168291489b804c9631588d86091d99ec0d813fe687382f8db3cefc6393e3b4e0b256ecd2eba916ce9fbc1a2aad31ab8d73c7f jack_capture-fa6f2907e4119a9c59e8d4abed0e32c4422a5523.tar.gz
+"
diff --git a/testing/jackal/APKBUILD b/testing/jackal/APKBUILD
new file mode 100644
index 00000000000..035aabd65fc
--- /dev/null
+++ b/testing/jackal/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Sam Whited <sam@samwhited.com>
+pkgname=jackal
+pkgver=0.64.0
+pkgrel=7
+pkgdesc="Instant messaging server using XMPP"
+url="https://github.com/ortuman/jackal"
+arch="all"
+license="Apache-2.0"
+depends="gettext openssl"
+makedepends="go"
+install="jackal.pre-install jackal.post-install"
+pkgusers="jackal"
+pkggroups="jackal"
+subpackages="$pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/ortuman/jackal/archive/refs/tags/v$pkgver.tar.gz
+ jackal.initd
+ jackal.logrotate
+ init.sql
+ config.yml.tmpl
+ "
+# !check: checks require unpackaged external tools
+# net: fetch dependencies
+options="!check net"
+
+export GOPATH="$srcdir/go"
+export GOCACHE="$srcdir/go-build"
+export GOTEMPDIR="$srcdir/go"
+
+prepare() {
+ default_prepare
+
+ go mod download
+}
+
+build() {
+ go build ./cmd/jackal
+ go build ./cmd/jackalctl
+}
+
+package() {
+ install -d -o jackal -g jackal "$pkgdir"/etc/jackal
+ install -d -m755 -o jackal -g jackal "$pkgdir"/var/lib/jackal
+ install -D -m644 -o jackal -g jackal "$srcdir"/init.sql "$pkgdir"/var/lib/jackal/init.sql
+ install -D -m644 -o jackal -g jackal sql/postgres.up.psql "$pkgdir"/var/lib/jackal/postgres.up.psql
+
+ install -D -m755 jackal "$pkgdir"/usr/bin/jackal
+ install -D -m755 jackalctl "$pkgdir"/usr/bin/jackalctl
+ install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -D -m644 "$srcdir"/config.yml.tmpl "$pkgdir"/etc/jackal/config.yml.tmpl
+ install -D -m644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
+}
+
+sha512sums="
+40b4f489bd43ce64ea49bdc8b6f97483d9b159c85ed6a8b8d032b35befaa72b4cac6ee8235b2c4bead64c4e2025d03db53ff9bd2eace25ac1c5660a153c623b5 jackal-0.64.0.tar.gz
+5e18714da66506d0ec6bacf051e9060b0e38976addff0aed8d9c8b553505a1fd637de2056aa91e3a46b486e8920c8a7d64990f0d497d35a74de02833bccf7f9f jackal.initd
+d38852e817665b1a408dba66de671e673dc11200142362127ef2f6e34489ca3ed7cdcd6bbd05ab876ba89015d64d30f14f1899a899dd92ccd6a000511930277c jackal.logrotate
+7c4220f2e92ef9230dadbc0dca3f75510f2abc368d57d938ff06e29042a1a284f257fd3bb94ac7fd35ffbef6cb31cbcb643a881e8f06f5802e912f7a92e143b2 init.sql
+1a6ff8979ac80bd0e954cf44aec94ad2540d2151114418a97650b0835494e73a33c414664e52ca036f8e76f3c36eec7cf818b88ae64c59be1b7c0b752a52bc62 config.yml.tmpl
+"
diff --git a/testing/jackal/config.yml.tmpl b/testing/jackal/config.yml.tmpl
new file mode 100644
index 00000000000..b30e30a4af9
--- /dev/null
+++ b/testing/jackal/config.yml.tmpl
@@ -0,0 +1,138 @@
+peppers:
+ keys:
+ v1: ${pepper}
+ use: v1
+
+logger:
+ level: "debug"
+
+# Prometheus metrics, pprof & health check
+http:
+ port: 6060
+
+admin:
+ port: 15280
+
+#hosts:
+# - domain: jackal.im
+# tls:
+# cert_file: ""
+# privkey_file: ""
+
+storage:
+ type: pgsql
+ pgsql:
+ host: 127.0.0.1:5432
+ user: jackal
+ password: ${psql_user}
+ database: jackal
+ max_open_conns: 16
+
+# cache:
+# type: redis
+# redis:
+# addresses:
+# - localhost:6379
+
+#cluster:
+# type: kv
+# kv:
+# type: etcd
+# etcd:
+# username: root
+# endpoints:
+# - http://127.0.0.1:2379
+#
+# server:
+# port: 14369
+
+shapers:
+# - name: super
+# max_sessions: 20
+# rate:
+# limit: 131072
+# burst: 65536
+# matching:
+# jid:
+# regex: ^(ortuman|noelia).+
+
+ - name: normal
+ max_sessions: 10
+ rate:
+ limit: 65536
+ burst: 32768
+
+c2s:
+ listeners:
+ - port: 5222
+ req_timeout: 60s
+ transport: socket
+ sasl:
+ mechanisms:
+ - scram_sha_1
+ - scram_sha_256
+
+ # Authentication gateway
+ # (proto: https://github.com/jackal-xmpp/jackal-proto/blob/master/jackal/proto/authenticator/v1/authenticator.proto)
+ external:
+ address: 127.0.0.1:4567
+ is_secure: false
+
+ - port: 5223
+ direct_tls: true
+ req_timeout: 60s
+ transport: socket
+ sasl:
+ mechanisms:
+ - scram_sha_1
+ - scram_sha_256
+
+s2s:
+ listeners:
+ - port: 5269
+ req_timeout: 60s
+ max_stanza_size: 131072
+
+ - port: 5270
+ direct_tls: true
+ req_timeout: 60s
+ max_stanza_size: 131072
+
+ out:
+ dialback_secret: ${dialback}
+ dial_timeout: 5s
+ req_timeout: 60s
+ max_stanza_size: 131072
+
+modules:
+# enabled:
+# - roster
+# - offline
+# - last # XEP-0012: Last Activity
+# - disco # XEP-0030: Service Discovery
+# - private # XEP-0049: Private XML Storage
+# - vcard # XEP-0054: vcard-temp
+# - version # XEP-0092: Software Version
+# - caps # XEP-0115: Entity Capabilities
+# - blocklist # XEP-0191: Blocking Command
+# - stream_mgmt # XEP-0198: Stream Management
+# - ping # XEP-0199: XMPP Ping
+# - time # XEP-0202: Entity Time
+# - carbons # XEP-0280: Message Carbons
+#
+# version:
+# show_os: true
+#
+# offline:
+# queue_size: 300
+#
+# ping:
+# ack_timeout: 90s
+# interval: 3m
+# send_pings: true
+# timeout_action: kill
+
+#components:
+# secret: a-super-secret-key
+# listeners:
+# - port: 5275
diff --git a/testing/jackal/init.sql b/testing/jackal/init.sql
new file mode 100644
index 00000000000..f40756d61b9
--- /dev/null
+++ b/testing/jackal/init.sql
@@ -0,0 +1,3 @@
+CREATE ROLE jackal WITH LOGIN PASSWORD '${psql_password}';
+CREATE DATABASE jackal;
+GRANT ALL PRIVILEGES ON DATABASE jackal TO jackal;
diff --git a/testing/jackal/jackal.initd b/testing/jackal/jackal.initd
new file mode 100644
index 00000000000..08f5d22c4eb
--- /dev/null
+++ b/testing/jackal/jackal.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+description="Jackal is a server for jackal/XMPP written in Go."
+
+: ${cfgfile:="/etc/jackal/config.yml"}
+
+command="/usr/bin/jackal"
+command_args="--config $cfgfile $command_args"
+command_background=yes
+pidfile="/run/$RC_SVCNAME.pid"
+directory="/var/lib/jackal"
+error_logger="logger -t jackal -p daemon.info >/dev/null 2>&1"
+
+required_files="$cfgfile"
+
+start_pre() {
+ checkpath -d -m 0750 -o jackal:jackal /var/log/jackal
+}
diff --git a/testing/jackal/jackal.logrotate b/testing/jackal/jackal.logrotate
new file mode 100644
index 00000000000..cffa74a5be8
--- /dev/null
+++ b/testing/jackal/jackal.logrotate
@@ -0,0 +1,7 @@
+/var/log/jackal/jackal.log {
+ daily
+ rotate 14
+ compress
+ sharedscripts
+ missingok
+}
diff --git a/testing/jackal/jackal.post-install b/testing/jackal/jackal.post-install
new file mode 100644
index 00000000000..d2714aa045a
--- /dev/null
+++ b/testing/jackal/jackal.post-install
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+echo "--"
+echo "Create a PostgreSQL database and role using /var/lib/jackal/init.sql."
+echo "Be sure to set the database password in the config at /etc/jackal/config.yml."
+echo "Afterwards, the schema can be created with /var/lib/jackal/postgres.up.psql."
+echo "--"
+
+export pepper=$(openssl rand -hex 12)
+export dialback=$(openssl rand -hex 12)
+umask 007
+envsubst < /etc/jackal/config.yml.tmpl > /etc/jackal/config.yml
diff --git a/testing/jackal/jackal.pre-install b/testing/jackal/jackal.pre-install
new file mode 100644
index 00000000000..abeb046940f
--- /dev/null
+++ b/testing/jackal/jackal.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S jackal 2>/dev/null
+adduser -S -D \
+ -h /var/lib/jackal \
+ -s /sbin/nologin \
+ -G jackal \
+ -g "jackal XMPP Server" \
+ jackal 2>/dev/null
+
+exit 0
diff --git a/testing/jackdaw/APKBUILD b/testing/jackdaw/APKBUILD
new file mode 100644
index 00000000000..2a3c02b4059
--- /dev/null
+++ b/testing/jackdaw/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=jackdaw
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="Gathering shiny things from your domain"
+url="https://github.com/skelsec/jackdaw"
+# s390x: py3-igraph
+arch="all !s390x"
+license="MIT"
+depends="
+ py3-aiosmb
+ py3-asyauth
+ py3-asysocks
+ py3-igraph
+ py3-minikerberos
+ py3-msldap
+ py3-networkx
+ py3-sqlalchemy
+ py3-tqdm
+ py3-winacl
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/jackdaw/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+142ae1167feec099f082f873128002909ef91e575e285935d7b78a115e5c39192b25291d1cb5300f0d3fb1f80c40aa306963e0296ed70a607e35f605c5132196 jackdaw-0.3.1.tar.gz
+"
diff --git a/testing/jackett/APKBUILD b/testing/jackett/APKBUILD
new file mode 100644
index 00000000000..3d52c2501e0
--- /dev/null
+++ b/testing/jackett/APKBUILD
@@ -0,0 +1,70 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=jackett
+pkgver=0.21.1946
+pkgrel=0
+pkgdesc="API Support for your favorite torrent trackers"
+url="https://github.com/Jackett/Jackett"
+arch="x86_64 aarch64 armv7"
+license="GPL-3.0-only"
+options="net !check" # no tests
+depends="aspnetcore6-runtime"
+makedepends="dotnet6-sdk"
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Jackett/Jackett/archive/refs/tags/v$pkgver.tar.gz
+ jackett.initd
+ jackett.confd
+ "
+builddir="$srcdir/Jackett-$pkgver/src"
+pkgusers="jackett"
+pkggroups="jackett"
+
+# map arch to dotnet
+case $CARCH in
+ x86_64) _dotnet_arch="x64" ;;
+ aarch64) _dotnet_arch="arm64" ;;
+ armv7) _dotnet_arch="arm" ;;
+ *) _dotnet_arch="$CARCH" ;;
+esac
+
+# custom variables
+_runtime="linux-musl-$_dotnet_arch"
+_framework="net6.0"
+_output="Jackett.Server/bin/Release"
+_artifacts="$_output/$_framework/$_runtime/publish"
+
+prepare() {
+ default_prepare
+
+ # replace version info
+ local buildprops=Jackett.Common/Jackett.Common.csproj
+ sed -i -e "s/<Version>[0-9.*]\+<\/Version>/<Version>$pkgver<\/Version>/g" "$buildprops"
+}
+
+build() {
+ dotnet publish Jackett.Server \
+ -f "$_framework" \
+ --no-self-contained \
+ -r "$_runtime" \
+ -c Release
+}
+
+package() {
+ local DESTDIR="$pkgdir"/usr/lib/jackett
+
+ mkdir -p "$DESTDIR"
+ cp -af "$_artifacts"/* "$DESTDIR"/
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+
+ # remove erroneously installed mono runtime library
+ rm -rf "$pkgdir"/usr/lib/jackett/libMono.Unix.so
+}
+
+sha512sums="
+1a8728a84f711140cdfa88ec00523ddc47b2c1e1baceec8b492430209ad987787cf5244c5d01900b92332f2b9581487915bf4c92045eeabae63fa86ec0be363a jackett-0.21.1946.tar.gz
+71dc80cee88d0166bcd18a784e9beda0eda6f5b34cf256f65a364375e6407bcf0f6b3eedadc2d1148d48acff9e5489134c28462d92a07c98fb5363e6adf4154a jackett.initd
+c9963ddf11e8ebb35891172226c2486d56f9bafdf7e40c99fab5d34489a5afc37902af55d9cf097d5f9cb713a6bff8b5ce4d04c3d4553b647315ba0d847dbc20 jackett.confd
+"
diff --git a/testing/jackett/jackett.confd b/testing/jackett/jackett.confd
new file mode 100644
index 00000000000..36149654cf8
--- /dev/null
+++ b/testing/jackett/jackett.confd
@@ -0,0 +1,6 @@
+# Jackett configuration options
+
+command_user="jackett:jackett" # user:group
+directory="/var/lib/jackett"
+logdir="/var/log/jackett"
+supervisor="supervise-daemon"
diff --git a/testing/jackett/jackett.initd b/testing/jackett/jackett.initd
new file mode 100644
index 00000000000..f016b81b773
--- /dev/null
+++ b/testing/jackett/jackett.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/jackett
+: ${command_user:=jackett:jackett}
+: ${directory:=/var/lib/jackett}
+: ${logdir:=/var/log/jackett}
+
+name=jackett
+description="Jackett daemon"
+command="/usr/lib/jackett/jackett"
+command_args="--NoUpdates --DataFolder=$directory"
+command_background=true
+
+pidfile="/run/$name.pid"
+output_log="$logdir/output.log"
+error_log="$logdir/error.log"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory" "$logdir"
+ checkpath -f -o "$command_user" "$output_log" "$error_log"
+}
diff --git a/testing/jackett/jackett.pre-install b/testing/jackett/jackett.pre-install
new file mode 100644
index 00000000000..bca67f7824d
--- /dev/null
+++ b/testing/jackett/jackett.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S jackett 2>/dev/null
+adduser -S -D -h /var/lib/jackett -s /sbin/nologin -G jackett -g jackett jackett 2>/dev/null
+
+exit 0
diff --git a/testing/jackline/APKBUILD b/testing/jackline/APKBUILD
new file mode 100644
index 00000000000..9fc4b656335
--- /dev/null
+++ b/testing/jackline/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=jackline
+pkgver=0.1.0
+pkgrel=3
+pkgdesc="Minimalistic and secure XMPP client written in OCaml"
+url="https://github.com/hannesm/jackline"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+makedepends="
+ ocaml-ppx_deriving-dev
+ ocaml-erm_xmpp-dev
+ ocaml-tls-dev
+ ocaml-mirage-crypto-dev
+ ocaml-x509-dev
+ ocaml-domain-name-dev
+ ocaml-lwt-dev
+ ocaml-otr-dev
+ ocaml-astring-dev
+ ocaml-ptime-dev
+ ocaml-notty-dev
+ ocaml-sexplib-dev
+ ocaml-hex-dev
+ ocaml-uucp-dev
+ ocaml-uuseg-dev
+ ocaml-uutf-dev
+ ocaml-dns-dev
+ ocaml-cstruct-dev
+ ocaml-base64-dev
+ ocaml-happy-eyeballs-lwt-dev
+ dune
+ ocaml
+ ocaml-ppx_sexp_conv-dev
+ libev-dev
+ gmp-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/hannesm/jackline/archive/refs/tags/v$pkgver.tar.gz
+ use-built-in-uchar-lib.patch
+ "
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+prepare() {
+ default_prepare
+ sed -i "s/%%VERSION_NUM%%/$pkgver/" src/utils.ml
+}
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+a3c9eb7df16912a1a8435a0379f1dca2ec5d287a452cf626c50d9c403db167f64a5a4360b0631a16536ca76cd0fa230bb883344227e028b48ee73264b34a000f jackline-0.1.0.tar.gz
+712de8f691e8573a80ac0a4cdf7f9cc9d61957cab58b7c7ed832e362807a1f80e075d3cfa6411e91198791b589336055b2ecd233dabe2d209bdb9a7287a9dd1e use-built-in-uchar-lib.patch
+"
diff --git a/testing/jackline/use-built-in-uchar-lib.patch b/testing/jackline/use-built-in-uchar-lib.patch
new file mode 100644
index 00000000000..d28c6acb9b5
--- /dev/null
+++ b/testing/jackline/use-built-in-uchar-lib.patch
@@ -0,0 +1,10 @@
+--- a/src/dune
++++ b/src/dune
+@@ -3,6 +3,6 @@
+ (wrapped false)
+ (libraries astring base64 cstruct dns-client.lwt erm_xmpp hex lwt lwt.unix
+ mirage-crypto-pk otr ptime ptime.clock.os sexplib tls tls.lwt
+- uchar uutf x509 ipaddr.unix)
++ uutf x509 ipaddr.unix)
+ (preprocess
+ (per_module ((pps ppx_sexp_conv) xjid user xconfig))))
diff --git a/testing/jalv/APKBUILD b/testing/jalv/APKBUILD
new file mode 100644
index 00000000000..2f9c662e0f0
--- /dev/null
+++ b/testing/jalv/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer:
+pkgname=jalv
+pkgver=1.6.8
+pkgrel=1
+pkgdesc="Simple but fully featured LV2 host for Jack"
+url="https://drobilla.net/software/jalv.html"
+arch="all"
+license="ISC"
+makedepends="
+ gtk+3.0-dev
+ jack-dev
+ lilv-dev
+ lv2-dev
+ meson
+ serd-dev
+ sord-dev
+ sratom-dev
+ suil-dev
+ "
+subpackages="$pkgname-gtk $pkgname-doc"
+source="https://download.drobilla.net/jalv-$pkgver.tar.xz"
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dcxx=enabled \
+ -Dgtk2=disabled \
+ -Dgtk3=enabled \
+ -Dportaudio=disabled \
+ -Dqt5=disabled \
+ -Dsuil=enabled \
+ -Dtests="$(want_check && echo enabled || echo disabled)" \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+gtk() {
+ pkgdesc="$pkgdesc (GTK3 UI)"
+
+ amove \
+ usr/bin/jalv.gtk3 \
+ usr/share/applications/jalv.desktop
+}
+
+sha512sums="
+a3361239cbff8b02a0d46bb06480d727ad45abe1856ad4cec1a1299851392be04fdfa58ba6803ed2a446eb8964c4a44191733b53fe8529c65155b0221323428f jalv-1.6.8.tar.xz
+"
diff --git a/testing/jami-daemon/APKBUILD b/testing/jami-daemon/APKBUILD
new file mode 100644
index 00000000000..250da94c980
--- /dev/null
+++ b/testing/jami-daemon/APKBUILD
@@ -0,0 +1,86 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=jami-daemon
+pkgver=4.0.0_git20230925
+pkgrel=1
+_gitrev=f19b0fad9b99181e9a5e5a892ae354d940db2bb2
+_pjprojectver=1489db073be280629e41d387c1c2561f20b0bfb3
+_dhtnetver=4796de15ed32b41949489c328bc250d17c431c80
+pkgdesc="Free and universal communication platform which preserves the users’ privacy and freedoms (daemon component)"
+url="https://jami.net"
+arch="all !ppc64le !s390x !riscv64" # no webrtc-audio-processing
+license="GPL-3.0-or-later"
+makedepends="
+ alsa-lib-dev
+ asio-dev
+ cmake
+ eudev-dev
+ fmt-dev
+ ffmpeg-dev
+ gnutls-dev
+ jsoncpp-dev
+ libarchive-dev
+ libgit2-dev
+ libsecp256k1-dev
+ libupnp-dev
+ meson
+ msgpack-cxx-dev
+ opendht-dev
+ pulseaudio-dev
+ restinio-dev
+ speex-dev
+ speexdsp-dev
+ sqlite-dev
+ webrtc-audio-processing-dev
+ yaml-cpp-dev
+ zlib-dev
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$_gitrev.tar.gz::https://git.jami.net/savoirfairelinux/jami-daemon/-/archive/$_gitrev/jami-daemon-$_gitrev.tar.gz
+ pjproject-$_pjprojectver.tar.gz.noauto::https://github.com/savoirfairelinux/pjproject/archive/$_pjprojectver/pjproject-$_pjprojectver.tar.gz
+ dhtnet-$_dhtnetver.tar.gz.noauto::https://git.jami.net/savoirfairelinux/dhtnet/-/archive/$_dhtnetver/dhtnet-$_dhtnetver.tar.gz
+ dhtnet-unpack-dir.patch
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/649
+
+prepare() {
+ default_prepare
+
+ cp -v ../pjproject-$_pjprojectver.tar.gz.noauto \
+ contrib/tarballs/pjproject-$_pjprojectver.tar.gz
+ cp -v ../dhtnet-$_dhtnetver.tar.gz.noauto \
+ contrib/tarballs/dhtnet-$_dhtnetver.tar.gz
+ mkdir -v contrib/native
+}
+
+build() {
+ cd contrib/native
+ ../bootstrap \
+ --disable-downloads \
+ --disable-all \
+ --enable-pjproject \
+ --enable-dhtnet
+ make DEPS_pjproject= DEPS_dhtnet=pjproject
+
+ cd "$builddir"
+ abuild-meson \
+ -Dinterfaces=library \
+ -Dopensl=disabled \
+ -Dportaudio=disabled \
+ -Dtests=false \
+ -Dpkg_config_path="$builddir/contrib/$(cc -dumpmachine)/lib/pkgconfig" \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+0d8591013d1e26c436de593d1ee974bf334acdb70ac2e7e2fab3d1e426bb52b7a2b3c8de21603c5945dd2f7829caf781982c95dcc5efa7fe225aa6ba49f64fbb jami-daemon-f19b0fad9b99181e9a5e5a892ae354d940db2bb2.tar.gz
+4a7cf995827f3d450627f32dbba463593e7ee9e268e6050c12622cae9c5ee8b6f7aadd1897e218b5665f467d89d40608681e56017d3cf817b69ad7348070afc7 pjproject-1489db073be280629e41d387c1c2561f20b0bfb3.tar.gz.noauto
+c940ea273c25a38ca1d2b63077dddfeed7740405d5c16ac8f8db0a14e3fdf838a69f4c09bd68ef98b72fe04d1a3feb3f61fed2d34fb8e073c492211c121b8fae dhtnet-4796de15ed32b41949489c328bc250d17c431c80.tar.gz.noauto
+812b720831d35fffbaef1bb64cdc085bc72fb0f92f6e8ebe06ff3f1a20cf5a07cdd9dbc6dd00694cc880e7f905dfdc0fa956127b4bcb3ee78c4e08b763d2d807 dhtnet-unpack-dir.patch
+"
diff --git a/testing/jami-daemon/dhtnet-unpack-dir.patch b/testing/jami-daemon/dhtnet-unpack-dir.patch
new file mode 100644
index 00000000000..33ee641c5e8
--- /dev/null
+++ b/testing/jami-daemon/dhtnet-unpack-dir.patch
@@ -0,0 +1,11 @@
+--- a/contrib/src/dhtnet/rules.mak
++++ b/contrib/src/dhtnet/rules.mak
+@@ -30,7 +30,7 @@
+
+ dhtnet: dhtnet-$(DHTNET_VERSION).tar.gz
+ mkdir -p $(UNPACK_DIR)
+- $(UNPACK) -C $(UNPACK_DIR)
++ $(UNPACK) -C $(UNPACK_DIR)/../
+ $(APPLY) $(SRC)/dhtnet/libjami-testable.patch
+ $(MOVE)
+
diff --git a/testing/jami-qt/APKBUILD b/testing/jami-qt/APKBUILD
new file mode 100644
index 00000000000..29c4c7762a8
--- /dev/null
+++ b/testing/jami-qt/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=jami-qt
+pkgver=20230925
+pkgrel=0
+_gitrev=70ce0c091e4aa7abec2826ab826ae0417f593f0d
+_sortfilter=a2a0c72e4db38e1c5478bd3e0f67ff99fae11f00
+pkgdesc="Free and universal communication platform which preserves the users’ privacy and freedoms (Qt client)"
+url="https://jami.net"
+arch="all !s390x !ppc64le !riscv64" # missing jami-daemon dependency
+license="GPL-3.0-or-later"
+depends="qt6-qtbase-sqlite"
+makedepends="
+ cmake
+ jami-daemon-dev
+ libqrencode-dev
+ md4c-dev
+ python3
+ qt6-qt5compat-dev
+ qt6-qtmultimedia-dev
+ qt6-qtnetworkauth-dev
+ qt6-qtpositioning-dev
+ qt6-qtsvg-dev
+ qt6-qttools-dev
+ qt6-qtwebchannel-dev
+ samurai
+ tidyhtml-dev
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="$pkgname-$_gitrev.tar.gz::https://git.jami.net/savoirfairelinux/jami-client-qt/-/archive/$_gitrev/jami-client-qt-$_gitrev.tar.gz
+ sortfilterproxymodel-$_sortfilter.tar.gz::https://github.com/atraczyk/SortFilterProxyModel/archive/$_sortfilter.tar.gz
+ drop-qt-version-check.patch
+ system.patch
+ "
+builddir="$srcdir/jami-client-qt-$_gitrev"
+
+prepare() {
+ default_prepare
+
+ rmdir 3rdparty/SortFilterProxyModel
+ ln -sfv "$srcdir"/SortFilterProxyModel-$_sortfilter 3rdparty/SortFilterProxyModel
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DENABLE_LIBWRAP=ON \
+ -DWITH_WEBENGINE=false
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+lang() {
+ amove usr/share/jami/translations
+
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+97e15b8be1bfe334270a0f5f1bc6a5a3646f8bcf04027b83fd69b56f75c30a1124a2ee92fb9c0f10a56e523a2f9b2060f909e3f26f20db174b2cc11c162d11ed jami-qt-70ce0c091e4aa7abec2826ab826ae0417f593f0d.tar.gz
+9c02e206829ea12fb77fdd34e4ac42572d38e33d8ed60534f6d6495ac53c8449c57162fe09060a1e1de05b01f6fdbefb63a614860dd402af4911749aa8c012f8 sortfilterproxymodel-a2a0c72e4db38e1c5478bd3e0f67ff99fae11f00.tar.gz
+5bc7d449bd7b1b1176361126ef58737c69262ca7cd2f6c96695c142a793a1eb74e1cfd2a10e6677eed3a47ffb3789c7f727d8ffbd8e708abfa2319b43d3d930f drop-qt-version-check.patch
+6886c36ba43110b1519cb763fad60a4ffa1ea0170a5482a96a730d28c58d03e4164b2d8777a035fa8e07257e589eda14c97ffd3e870c7d0bd5de2e8850638506 system.patch
+"
diff --git a/testing/jami-qt/drop-qt-version-check.patch b/testing/jami-qt/drop-qt-version-check.patch
new file mode 100644
index 00000000000..90c3ee38c28
--- /dev/null
+++ b/testing/jami-qt/drop-qt-version-check.patch
@@ -0,0 +1,19 @@
+Author: Bruno Pagani
+URL: https://github.com/archlinux/svntogit-community/commit/0368876157edf0b25cb0ae1ee1eb99d155bf101f
+Summary: Drop strict Qt version check. Qt is ABI stable and jami is not using any private API
+----
+--- a/src/app/mainapplication.cpp
++++ b/src/app/mainapplication.cpp
+@@ -100,12 +100,6 @@ ScreenInfo::setCurrentFocusWindow(QWindow* window)
+ MainApplication::MainApplication(int& argc, char** argv)
+ : QApplication(argc, argv)
+ {
+- const char* qtVersion = qVersion();
+- qInfo() << "Using Qt runtime version:" << qtVersion;
+- if (strncmp(qtVersion, QT_VERSION_STR, strnlen(qtVersion, sizeof qtVersion)) != 0) {
+- qFatal("Qt build version mismatch! %s", QT_VERSION_STR);
+- }
+-
+ parseArguments();
+ QObject::connect(this, &QApplication::aboutToQuit, [this] { cleanup(); });
+ }
diff --git a/testing/jami-qt/system.patch b/testing/jami-qt/system.patch
new file mode 100644
index 00000000000..5206b4d49cf
--- /dev/null
+++ b/testing/jami-qt/system.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5f06f2c..4d44325 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -498,20 +498,17 @@ set(BUILD_SFPM_PIC ON CACHE BOOL "enable -fPIC for SFPM" FORCE)
+ add_subdirectory(3rdparty/SortFilterProxyModel)
+ set(SFPM_OBJECTS $<TARGET_OBJECTS:SortFilterProxyModel>)
+
++find_package(PkgConfig REQUIRED)
++pkg_check_modules(tidy REQUIRED tidy)
++pkg_check_modules(md4c REQUIRED md4c-html)
++
+ # md4c
+-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
+-add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
+-list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
+-list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
+-list(APPEND CLIENT_LIBS md4c-html)
++list(APPEND CLIENT_INCLUDE_DIRS ${md4c_INCLUDE_DIRS})
++list(APPEND CLIENT_LIBS ${md4c_LIBRARIES})
+
+ # tidy-html5
+-set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
+-set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
+-add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
+-list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
+-list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
+-list(APPEND CLIENT_LIBS tidy-static)
++list(APPEND CLIENT_INCLUDE_DIRS ${tidy_INCLUDE_DIRS})
++list(APPEND CLIENT_LIBS ${tidy_LIBRARIES})
+
+ # common executable sources
+ qt_add_executable(
diff --git a/testing/jaq/APKBUILD b/testing/jaq/APKBUILD
new file mode 100644
index 00000000000..6904518ab19
--- /dev/null
+++ b/testing/jaq/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=jaq
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="jq clone focused on correctness, speed and simplicity"
+url="https://github.com/01mf02/jaq"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="
+ https://github.com/01mf02/jaq/archive/v$pkgver/jaq-$pkgver.tar.gz
+ fix-drop-test.patch
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/jaq -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+00e3b32dc53036d8437708f48734c136a3c2a219ac84106c65d0bbac5797bac51aa2665064402d7b0efbc8710c859286cec20c5232be3d4e26e1896b968e515b jaq-1.3.0.tar.gz
+8307cc6ba54b38ec08c4c33ece617683e326793ce70242826abe6f543cd4306c90db7acdeb2119a02910ac4856c73da42ece11b06aa00ca5a402a8b04ac629ff fix-drop-test.patch
+"
diff --git a/testing/jaq/fix-drop-test.patch b/testing/jaq/fix-drop-test.patch
new file mode 100644
index 00000000000..57c77d1923f
--- /dev/null
+++ b/testing/jaq/fix-drop-test.patch
@@ -0,0 +1,13 @@
+diff --git a/jaq-interpret/src/rc_lazy_list.rs b/jaq-interpret/src/rc_lazy_list.rs
+index 0342de9..20b7076 100644
+--- a/jaq-interpret/src/rc_lazy_list.rs
++++ b/jaq-interpret/src/rc_lazy_list.rs
+@@ -50,7 +50,7 @@ fn drop() {
+ let list = List::from_iter(0..100_000);
+ // clone() ensures that we keep a copy of the whole list around
+ // sum() then evaluates the whole list
+- assert_eq!(list.clone().sum::<usize>(), 4999950000);
++ assert_eq!(list.clone().sum::<u64>(), 4999950000);
+ // at the end, a long, fully evaluated list is dropped,
+ // which would result in a stack overflow without the custom `Drop` impl
+ std::mem::drop(list);
diff --git a/testing/java-asmtools/APKBUILD b/testing/java-asmtools/APKBUILD
index 6c2144e1c58..4c993dc14de 100644
--- a/testing/java-asmtools/APKBUILD
+++ b/testing/java-asmtools/APKBUILD
@@ -1,19 +1,24 @@
# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=java-asmtools
-_pkgver=7.0-b06
+_pkgver=8.0-b09
pkgver=${_pkgver/-b/.}
pkgrel=0
pkgdesc="The AsmTools open source project is used to develop tools for the production of proper and improper Java '.class' files"
-url="http://hg.openjdk.java.net/code-tools/asmtools"
-arch="noarch !mips !mips64" # java
+url="https://github.com/openjdk/asmtools"
+# riscv64: no java
+# s390x: FTBFS due to SIGFPE (see #12275)
+# armhf / armv7 / x86 / ppc64le: requires java 17
+arch="noarch !riscv64 !armhf !armv7 !x86 !ppc64le !s390x"
license="GPL-2.0"
-makedepends="openjdk8"
+makedepends="java-jdk"
options="!check" # this package has no tests
subpackages="$pkgname-doc:_doc"
-source="asmtools-$_pkgver.tar.bz2::http://hg.openjdk.java.net/code-tools/asmtools/archive/$_pkgver.tar.bz2
-http://ftp-stud.hs-esslingen.de/pub/Mirrors//ftp.apache.org/dist/ant/binaries/apache-ant-1.9.13-bin.zip
-"
+source="https://github.com/openjdk/asmtools/archive/$_pkgver/asmtools-$_pkgver.tar.gz
+ https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.13-bin.zip
+
+ java-version-check.patch
+ "
builddir="$srcdir/asmtools-$_pkgver"
_ant_home="$srcdir"/apache-ant-1.9.13/
@@ -45,5 +50,8 @@ _doc() {
"$_destdir"
}
-sha512sums="c910cd36a93de648b1dde613b856cdde124a4b46469ff2cff62ebd17c83fc35573b212e50e38a396fb1e43fe6427aa60cb4eb6bfe4c0d641e4c057b6e28f114e asmtools-7.0-b06.tar.bz2
-873062cf789e1572ec4ef3cdbb15c0d3a57e5a0794068591565367d4cec15b9f9a24f59734a85170d61b23eb9288d6bafd35a9ae2b015b09c7a175e344cb4e1c apache-ant-1.9.13-bin.zip"
+sha512sums="
+27d4378061d0c703d0220b35b75ce67bcd20dce3f0339cdbd68e8396cf647719ae029720081abac22e186ae9d5ed5c1fb4050adea30f3ef855586eaacba1dca7 asmtools-8.0-b09.tar.gz
+873062cf789e1572ec4ef3cdbb15c0d3a57e5a0794068591565367d4cec15b9f9a24f59734a85170d61b23eb9288d6bafd35a9ae2b015b09c7a175e344cb4e1c apache-ant-1.9.13-bin.zip
+e6687969df9d1386c9d7e2948f0f08f1c447f14d30281372f29efb47a894a709b1a901429087e5e7cb69daa9f3e935f3613750239e9eb848ddaf736b4affd056 java-version-check.patch
+"
diff --git a/testing/java-asmtools/java-version-check.patch b/testing/java-asmtools/java-version-check.patch
new file mode 100644
index 00000000000..a3ee7ba7a10
--- /dev/null
+++ b/testing/java-asmtools/java-version-check.patch
@@ -0,0 +1,17 @@
+Author: Simon Frankenberger <simon-alpine@fraho.eu>
+Subject: Fix java version check
+
+The java version check only detects java 17, 18, 19
+and does not work with java 20+. This patch fixes the regex.
+
+--- old/build/build.xml
++++ new/build/build.xml
+@@ -174,7 +174,7 @@
+ <target name="-check-java-version?">
+ <echo></echo>
+ <condition property="check-java-version.passed">
+- <matches pattern="1[789]+.*" string="${ant.java.version}"/>
++ <matches pattern="(1[789]+|2[0-9]+).*" string="${ant.java.version}"/>
+ </condition>
+ <fail unless="check-java-version.passed">
+ .${line.separator}${line.separator}
diff --git a/testing/java-jtharness/APKBUILD b/testing/java-jtharness/APKBUILD
index e904107be66..90c37e34cab 100644
--- a/testing/java-jtharness/APKBUILD
+++ b/testing/java-jtharness/APKBUILD
@@ -1,25 +1,24 @@
# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=java-jtharness
-pkgver=6.0_p10
+pkgver=6.0_p12
_pkgver=${pkgver/_p/-b}
pkgrel=0
pkgdesc="The JT harness is a general purpose, fully-featured, flexible, and configurable test harness"
-url="https://hg.openjdk.java.net/code-tools/jtharness"
-arch="noarch !mips !mips64" # java
+url="https://github.com/openjdk/jtharness"
+# riscv64: java
+arch="noarch !riscv64"
license="GPL-2.0"
-makedepends="openjdk8"
+makedepends="java-jdk apache-ant"
options="!check" # this package has no tests
subpackages="$pkgname-doc:_doc $pkgname-examples:_examples"
-source="jtharness-$_pkgver.tar.bz2::https://hg.openjdk.java.net/code-tools/jtharness/archive/jt$_pkgver.tar.bz2
-https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.13-bin.tar.bz2
+source="jtharness-$_pkgver.tar.gz::https://github.com/openjdk/jtharness/archive/refs/tags/jt$_pkgver.tar.gz
https://repo1.maven.org/maven2/asm/asm-all/3.1/asm-all-3.1.jar
https://repo1.maven.org/maven2/junit/junit/4.4/junit-4.4.jar
https://repo1.maven.org/maven2/javax/servlet/javax.servlet-api/3.0.1/javax.servlet-api-3.0.1.jar
"
builddir="$srcdir/jtharness-jt$_pkgver"
-_ant_home="$srcdir"/apache-ant-1.9.13/
_servletjar="$srcdir"/javax.servlet-api-3.0.1.jar
_bytecodelib="$srcdir"/asm-all-3.1.jar
_junitlib="$srcdir"/junit-4.4.jar
@@ -39,7 +38,7 @@ prepare() {
build() {
cd "$builddir/build"
- JAVA_HOME=/usr/lib/jvm/default-jvm $_ant_home/bin/ant
+ JAVA_HOME=/usr/lib/jvm/default-jvm ant
}
package() {
@@ -65,8 +64,9 @@ _doc() {
"$_destdir"
}
-sha512sums="f910c608dbc7f89066f47b355c18f561cfef429298e2e740fe678cb741ca847de97a821f542d38c96c34ba9bcd30661d852a773b29b75dcdcc91e2e8f9082fe8 jtharness-6.0-b10.tar.bz2
-e9b602aacbac7bf721a830f56ea06cde60a7a674a6d67f05ce82848ac01b2ee84f7003190286fea1030abb523398fa1a280d265377f41f57e7cf7e6d1fe37465 apache-ant-1.9.13-bin.tar.bz2
+sha512sums="
+b4e4437892fa829e37e74aa57becae845d7dbc7fc861f18d4a50a5ed4c9cde22c8fb29791a0a4d6ca0ad5b8be7d3e26476843651ba0cb6eda84b9aef898525dd jtharness-6.0-b12.tar.gz
00990aa9d39fe874f6799dc8d9d1b208b61e6358a949df86014edeacbea63dcdc4ac7870948a54270e1db4b8ec134313b200fe7cdede7aa6746c812c36f0ac13 asm-all-3.1.jar
4ae9fb09ebd9800ba1c9f0bfc43f07f7bc499e41894dea74b50f01fd69690b5d4e8f7949e2afce10fa0da719e8a2df223430e3aef7e2529662c7b70a12c80ab9 junit-4.4.jar
-1e087f1e4632048f1c6ea12e3820a30c7a6e66b13277ec8e784d8c5aba99335cd90cdb08e23756e815324cc9c8dc22d0937c7ccf4b89ee00222cd5e4a1d2a0de javax.servlet-api-3.0.1.jar"
+1e087f1e4632048f1c6ea12e3820a30c7a6e66b13277ec8e784d8c5aba99335cd90cdb08e23756e815324cc9c8dc22d0937c7ccf4b89ee00222cd5e4a1d2a0de javax.servlet-api-3.0.1.jar
+"
diff --git a/testing/java-jtreg/APKBUILD b/testing/java-jtreg/APKBUILD
index 2bc0f1c0901..91ed21eae32 100644
--- a/testing/java-jtreg/APKBUILD
+++ b/testing/java-jtreg/APKBUILD
@@ -1,42 +1,59 @@
# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=java-jtreg
-pkgver=5.0_p01
-_pkgver=${pkgver/_p/-b}
+pkgver=7.3.1_p1
+_pkgver=${pkgver/_p/+}
pkgrel=0
pkgdesc="jtreg is the test harness used by the JDK test framework"
-url="https://hg.openjdk.java.net/code-tools/jtreg"
-arch="noarch !mips !mips64" # java
+url="https://github.com/openjdk/jtreg"
+# oracle dropped support for 32 bit
+# riscv64 blocked by openjdk11
+# s390x, ppc64le due to java-asmtools
+arch="all !x86 !armhf !armv7 !riscv64 !s390x !ppc64le"
license="GPL-2.0"
-depends="java-jtharness java-asmtools"
-makedepends="openjdk8 zip"
-options="!check" # the tests require an X11 or VNC display
-#subpackages="$pkgname-doc:_doc $pkgname-examples:_examples"
-source="jtreg-$_pkgver.tar.bz2::https://hg.openjdk.java.net/code-tools/jtreg/archive/jtreg$_pkgver.tar.bz2
-https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.13-bin.tar.bz2
-https://repo1.maven.org/maven2/junit/junit/4.10/junit-4.10.jar
-https://repo1.maven.org/maven2/org/testng/testng/6.9.5/testng-6.9.5.jar
-https://repo1.maven.org/maven2/com/beust/jcommander/1.72/jcommander-1.72.jar
-
-jtreg-symlink-patch.txt
-jtdiff-symlink-patch.txt
-disable-gcc-error.patch
+depends="java-jtharness java-asmtools apache-ant"
+makedepends="bash openjdk11 zip" # explicitly requires java 11 to compile
+checkdepends="diffutils grep"
+
+# check gets stuck on builder
+[ "$CARCH" = "ppc64le" ] && options="$options !check"
+
+source="jtreg-$_pkgver.tar.gz::https://github.com/openjdk/jtreg/archive/jtreg-$_pkgver.tar.gz
+
+ fix-build.patch
+ headless-tests.patch
+
+ jtreg-symlink-patch.txt
+ jtdiff-symlink-patch.txt
"
-builddir="$srcdir/jtreg-jtreg$_pkgver"
+builddir="$srcdir/jtreg-jtreg-${pkgver/_p/-}"
build() {
- cd "$builddir"
-
- mkdir -p "$builddir"/build
- make JTHARNESS_HOME=/usr/share/java/jtharness \
- ANTHOME="$srcdir"/apache-ant-1.9.13 \
- ASMTOOLS_HOME=/usr/share/java/asmtools \
- JDKHOME=/usr/lib/jvm/default-jvm \
- JUNIT_HOME="$srcdir" \
- TESTNG_HOME="$srcdir" \
- JCOMMANDER_JAR="$srcdir"/jcommander-1.72.jar \
- TOUCH=/bin/touch \
- -C make
+ export JTREG_BUILD_VERSION="${_pkgver%+*}" \
+ JTREG_BUILD_NUMBER="${_pkgver/*+}"
+
+ local ant_home=/usr/share/java/apache-ant
+ export ANT="$ant_home"/bin/ant \
+ ANT_JAR="$ant_home"/lib/ant.jar
+
+ local asmtools_home=/usr/share/java/asmtools
+ export ASMTOOLS_JAR="$asmtools_home"/lib/asmtools.jar \
+ ASMTOOLS_LICENSE="$asmtools_home"/LICENSE
+
+ local jtharness_home=/usr/share/java/jtharness
+ export JTHARNESS_JAVATEST_JAR="$jtharness_home"/lib/javatest.jar \
+ JTHARNESS_LICENSE="$jtharness_home"/legal/license.txt \
+ JTHARNESS_COPYRIGHT="$jtharness_home"/legal/copyright.txt
+
+ bash make/build.sh \
+ --jdk /usr/lib/jvm/java-11-openjdk \
+ -- \
+ -j1
+}
+
+check() {
+ sed -i 's/-j1/quick-test/' build/make.sh
+ bash build/make.sh
}
package() {
@@ -76,11 +93,10 @@ _doc() {
"$_destdir"
}
-sha512sums="1e78df0e4b23688bf92a67f86efa759f0a3399ae7adea5b5a8d26a0e0385fea3033a127d32e256694040aa157267b40ea9bd7a4df76af901ee945b3a2e26dbcb jtreg-5.0-b01.tar.bz2
-e9b602aacbac7bf721a830f56ea06cde60a7a674a6d67f05ce82848ac01b2ee84f7003190286fea1030abb523398fa1a280d265377f41f57e7cf7e6d1fe37465 apache-ant-1.9.13-bin.tar.bz2
-2c8b595c24a5ad2499a5bd5bb01204453cd09f51308fea5834922e042b8f39bd8ef0099848eb3a8576ddc4ce4ec907181ba0c20f1222a25b3064d1c3c5499cbd junit-4.10.jar
-15a6d6a3c29e6212d18c299e905620ff743825029129ce44d70cadbff589873bfc983f79b9a50052b85b03c8dac25ef5cf9de1628e10db980a4ac94c66173475 testng-6.9.5.jar
-2da86589ff7ecbb53cfce845887155bca7400ecf2fdfdef7113ea03926a195a1cbcf0c071271df6bedc5cdfa185c6576f67810f6957cd9b60ab3600a4545420e jcommander-1.72.jar
-c12bb37a378bf15a2d73b3bd4aadf122dfb60860dda640cb909d62517cb13e7471f76d849598aacb88ef73a119cb45eb1c52165b98faa3dca112ab9f528e2f55 jtreg-symlink-patch.txt
+sha512sums="
+3d098a77da247092b48a60aa1c336c8e07340ad9bc760a1d054c754c10d93a72ab72674cc1eb2e27d391043c37a01d6c067a50d9fd3e7bcbc3c960841f93423c jtreg-7.3.1+1.tar.gz
+2c4bcfdc7792bacdb9c5ed81feb52bbbb1cdcbe8ac1cb9c9c6e1e5c6474ede625a748829a75c12cbd0cba57582f69006221ec7d3f7e999d116955022575697ff fix-build.patch
+1b10c0b3f27541d2456166930c925d32db95b6a7d73625df8340a61f781b85d3bfb0d50f3099bdd448b498c0c9be8e7dd8ab0646142592c2538a291ab4a579b8 headless-tests.patch
+136e6e58b85d05f3e97467344c95303cbd310ada7c6533a129a6e62786d5e9498a1842b75de9838b432e68d0d863058ac5aeeea2a78e98a2170b4a0c1c113083 jtreg-symlink-patch.txt
67f63317a2aaedd17e822389065ff5d86d574f4cb2e2af375856a9c7356dd048c396517372788b889db376fe4aa73c66d530938b8975d11d7714ac84e3dcd00d jtdiff-symlink-patch.txt
-6ff4b114ae60257250545300d54e4beb1a6c4e1bd28fc8838479ee4b2c0ed1b0123aac36ff38abfc741f680795e6be2744ff637f3e5a5f655ba38aef1a1d4c80 disable-gcc-error.patch"
+"
diff --git a/testing/java-jtreg/disable-gcc-error.patch b/testing/java-jtreg/disable-gcc-error.patch
deleted file mode 100644
index 54707879375..00000000000
--- a/testing/java-jtreg/disable-gcc-error.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- old/make/Defs.gmk
-+++ new/make/Defs.gmk
-@@ -160,17 +160,17 @@
- # for files needed to run othervm tests on oldest supported platforms
- REGTEST_OLD_JAVAC = $(JDKHOME)/bin/javac
- REGTEST_OLD_JAVAC_OPTIONS = \
-- $(OLD_JAVAC_SOURCE_TARGET) $(JDK15_BOOTCLASSPATH) -Xlint:all,-options -Werror
-+ $(OLD_JAVAC_SOURCE_TARGET) $(JDK15_BOOTCLASSPATH) -Xlint:all,-options
-
- # for files needed to run agentvm tests (on platforms back to JDK 1.5)
- REGTEST_AGENT_JAVAC = $(JDKHOME)/bin/javac
- REGTEST_AGENT_JAVAC_OPTIONS = \
-- $(AGENT_JAVAC_SOURCE_TARGET) $(JDK15_BOOTCLASSPATH) -Xlint:all,-options -Werror
-+ $(AGENT_JAVAC_SOURCE_TARGET) $(JDK15_BOOTCLASSPATH) -Xlint:all,-options
-
- # for files needed for jtreg tool
- REGTEST_TOOL_JAVAC = $(JDKHOME)/bin/javac
- REGTEST_TOOL_JAVAC_OPTIONS = \
-- $(TOOL_JAVAC_SOURCE_TARGET) $(JDK18_BOOTCLASSPATH) -Xlint:all,-options -Werror
-+ $(TOOL_JAVAC_SOURCE_TARGET) $(JDK18_BOOTCLASSPATH) -Xlint:all,-options
-
- #----- JavaHelp
- #
diff --git a/testing/java-jtreg/fix-build.patch b/testing/java-jtreg/fix-build.patch
new file mode 100644
index 00000000000..e8417c69f0f
--- /dev/null
+++ b/testing/java-jtreg/fix-build.patch
@@ -0,0 +1,11 @@
+--- old/make/Defs.gmk
++++ new/make/Defs.gmk
+@@ -173,7 +173,7 @@
+ else
+ TIDY = /usr/bin/tidy
+ endif
+-TOUCH = /usr/bin/touch
++TOUCH = /bin/touch
+ UNZIP = /usr/bin/unzip
+ WC = /usr/bin/wc
+ ZIP = /usr/bin/zip
diff --git a/testing/java-jtreg/headless-tests.patch b/testing/java-jtreg/headless-tests.patch
new file mode 100644
index 00000000000..656dcf691dc
--- /dev/null
+++ b/testing/java-jtreg/headless-tests.patch
@@ -0,0 +1,17 @@
+From: Simon Frankenberger <simon-alpine@fraho.eu>
+Subject: Run tests in headless mode
+
+Could't figure out how to make them run with xvfb-run, so just disable the ui tests
+
+diff -ru old/test/basic/Basic.gmk new/test/basic/Basic.gmk
+--- old/test/basic/Basic.gmk 2023-03-04 00:55:23.000000000 +0000
++++ new/test/basic/Basic.gmk 2023-04-25 13:41:38.485264258 +0000
+@@ -55,7 +55,7 @@
+
+ #----------------------------------------------------------------------
+
+-ENVVARS="DISPLAY=$${DISPLAY:-`uname -n`:0.0}"
++ENVVARS="-Djava.awt.headless=true"
+
+ ifeq ($(OS_NAME), windows)
+ BASIC_TESTS := $(shell cygpath -m $(abspath $(TESTDIR)/share/basic) )
diff --git a/testing/java-jtreg/jtreg-symlink-patch.txt b/testing/java-jtreg/jtreg-symlink-patch.txt
index 768f4692be3..e086ee6cd30 100644
--- a/testing/java-jtreg/jtreg-symlink-patch.txt
+++ b/testing/java-jtreg/jtreg-symlink-patch.txt
@@ -1,19 +1,22 @@
+We're providing a symlink to the original script, so patch
+the call to jtreg to correctly handle this situation.
+
--- a/usr/share/java/jtreg/bin/jtreg
+++ b/usr/share/java/jtreg/bin/jtreg
-@@ -47,6 +47,10 @@
- #
- # jtreg also provides Ant tasks; see the documentation for details.
+@@ -68,6 +68,10 @@
+ Linux ) if grep -qi Microsoft /proc/version ; then wsl=1 ; fi ;;
+ esac
+_prog=$0
+_link=`readlink $_prog`
+[ -n "$_link" ] && _prog=$_link
+
- # Determine jtreg/JavaTest installation directory
- if [ -n "$JT_HOME" ]; then
- if [ ! -r $JT_HOME/lib/jtreg.jar ];then
-@@ -58,11 +62,11 @@
- # - should work on most derivatives of Bourne shell, like ash, bash, ksh,
- # sh, zsh, etc, including on Windows, MKS (ksh) and Cygwin (ash or bash)
+ # Determine jtreg installation directory
+ JTREG_HOME=${JTREG_HOME:-$JT_HOME} # allow for old version of name
+ if [ -n "$JTREG_HOME" ]; then
+@@ -81,11 +85,11 @@
+ # sh, zsh, etc, including on Windows, MKS (ksh), Cygwin (ash or bash)
+ # and Windows Subsystem for Linux (WSL)
if type -p type 1>/dev/null 2>&1 && test -z "`type -p type`" ; then
- myname=`type -p "$0"`
+ myname=`type -p "$_prog"`
@@ -26,11 +29,11 @@
fi
mydir=`dirname "$myname"`
p=`cd "$mydir" ; pwd`
-@@ -132,6 +136,6 @@
+@@ -173,6 +177,6 @@
- "${JT_JAVA}" \
+ "${JTREG_JAVA}" \
$javaOpts \
- -Dprogram=`basename "$0"` \
+ -Dprogram=`basename "$_prog"` \
- -jar "${JT_HOME}/lib/jtreg.jar" \
+ -jar "${JTREG_HOME}/lib/jtreg.jar" \
$jtregOpts
diff --git a/testing/jbigkit/APKBUILD b/testing/jbigkit/APKBUILD
index 07f28aa8367..d620ed40d33 100644
--- a/testing/jbigkit/APKBUILD
+++ b/testing/jbigkit/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=jbigkit
pkgver=2.1
-pkgrel=0
+pkgrel=2
pkgdesc="Data compression library/utilities for bi-level high-resolution images"
url="http://www.cl.cam.ac.uk/~mgk25/jbigkit/"
arch="all"
@@ -18,7 +18,7 @@ prepare() {
default_prepare
cd "$builddir"
unset CFLAGS CPPFLAGS LDFLAGS
- if [ "$CARCH" == "x86_64" ]; then
+ if [ "$CARCH" = "x86_64" ]; then
export CFLAGS="$CFLAGS -fPIC"
else
export CFLAGS="$CFLAGS"
diff --git a/testing/jdebp-redo/APKBUILD b/testing/jdebp-redo/APKBUILD
new file mode 100644
index 00000000000..ab9cdb4052a
--- /dev/null
+++ b/testing/jdebp-redo/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer:
+pkgname=jdebp-redo
+pkgver=1.4
+pkgrel=1
+pkgdesc="Smaller, easier, more powerful, and more reliable than make"
+arch="all"
+url="http://jdebp.info/Softwares/redo/"
+license="ISC"
+makedepends="perl"
+subpackages="$pkgname-doc"
+source="http://jdebp.info/Repository/freebsd/redo-$pkgver.tar.gz"
+provides="redo"
+provider_priority=30
+options="!check" # No test suite from upstream
+
+builddir="$srcdir/source"
+
+build() {
+ $CXX $CXXFLAGS -I. redo.cpp popt.cpp $LDFLAGS -o redo
+
+ for alias in redo-ifcreate redo-ifchange cubehash; do
+ ln redo "$alias"
+ done
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin redo redo-ifchange redo-ifcreate cubehash
+}
+
+doc() {
+ cd "$srcdir/source"
+
+ for f in redo redo-ifchange redo-ifcreate cubehash; do
+ pod2man --center "redo package" --release v"$pkgver" "$f".pod | gzip >"$f".1.gz
+ install -Dm644 "$f".1.gz "$subpkgdir"/usr/share/man/man1/"$f".1.gz
+ done
+
+ install -Dm644 COPYING "$subpkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="
+c90c75acc53cb478edefb6fa5d6e76807239f94837416cbf814e0d08c4b30bcf5a9edb7b9065358e30395619ad5deb749790819eb8ed45719facbe680e150d63 redo-1.4.tar.gz
+"
diff --git a/testing/jdupes/APKBUILD b/testing/jdupes/APKBUILD
index 6cdefd30514..ae235f39850 100644
--- a/testing/jdupes/APKBUILD
+++ b/testing/jdupes/APKBUILD
@@ -1,16 +1,18 @@
# Contributor: tcely <tcely@users.noreply.github.com>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=jdupes
-pkgver=1.15.0
-pkgrel=1
+pkgver=1.27.3
+pkgrel=0
pkgdesc="identifying and taking actions upon duplicate files"
options="!check" # No testsuite
url="https://github.com/jbruchon/jdupes"
arch="all"
license="MIT"
subpackages="$pkgname-doc"
-makedepends="linux-headers"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jbruchon/jdupes/archive/v$pkgver.tar.gz"
+makedepends="linux-headers libjodycode-dev xxhash-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jbruchon/jdupes/archive/v$pkgver.tar.gz
+ system-xxhash.patch
+ "
build() {
make ENABLE_DEDUPE=1
@@ -20,4 +22,7 @@ package() {
make DESTDIR="$pkgdir" PREFIX=/usr install
}
-sha512sums="690fcc69bacc4bde1d352871e3f4a843d4dbf038bd7755343f9fd0cb2a4c72bffa7223719435e39a32e79a25b0f315023c5f76b251015e1887451653f7198e3b jdupes-1.15.0.tar.gz"
+sha512sums="
+634ce1d1efa4666c7cc968e99d8d8d7da5e80e6e0ed86a080088ab127b7ecc4cc5266305d8a5c3d9c524721a2adc99c700281aa3dba37efade3cc1b90df1544e jdupes-1.27.3.tar.gz
+6c8430b76fba6cf4458d1a8e3f0c431250a59029a18cfc38f4befe23a94da25153cb1e54eb4b6de3c66a8015ca1c083c46d2cf215f594317c48eed580078ba6b system-xxhash.patch
+"
diff --git a/testing/jdupes/system-xxhash.patch b/testing/jdupes/system-xxhash.patch
new file mode 100644
index 00000000000..9436158c8fb
--- /dev/null
+++ b/testing/jdupes/system-xxhash.patch
@@ -0,0 +1,48 @@
+diff --git a/Makefile b/Makefile
+index 7e09923..93153ac 100644
+--- a/Makefile
++++ b/Makefile
+@@ -120,15 +120,8 @@ ifdef LOW_MEMORY
+ endif
+ endif
+
+-# Use jody_hash instead of xxHash if requested
+-ifdef USE_JODY_HASH
+- COMPILER_OPTIONS += -DUSE_JODY_HASH -DNO_XXHASH2
+- OBJS_CLEAN += xxhash.o
+- else
+- ifndef EXTERNAL_HASH_LIB
+- OBJS += xxhash.o
+- endif
+-endif # USE_JODY_HASH
++CFLAGS += `pkg-config --cflags libxxhash`
++LDFLAGS += `pkg-config --libs libxxhash`
+
+ # Stack size limit can be too small for deep directory trees, so set to 16 MiB
+ # The ld syntax for Windows is the same for both Cygwin and MinGW
+diff --git a/jdupes.c b/jdupes.c
+index e3e5762..bc66c05 100644
+--- a/jdupes.c
++++ b/jdupes.c
+@@ -62,7 +62,7 @@
+ #include "version.h"
+
+ #ifndef USE_JODY_HASH
+- #include "xxhash.h"
++ #include <xxhash.h>
+ #endif
+ #ifdef ENABLE_DEDUPE
+ #ifdef __linux__
+diff --git a/filehash.c b/filehash.c
+index 8b05d87..2975fbb 100644
+--- a/filehash.c
++++ b/filehash.c
+@@ -21,7 +21,7 @@
+ #include "interrupt.h"
+ #include "progress.h"
+ #include "jdupes.h"
+-#include "xxhash.h"
++#include <xxhash.h>
+
+ const char *hash_algo_list[2] = {
+ "xxHash64 v2",
diff --git a/testing/jedi-language-server/APKBUILD b/testing/jedi-language-server/APKBUILD
new file mode 100644
index 00000000000..4a9e8779473
--- /dev/null
+++ b/testing/jedi-language-server/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=jedi-language-server
+pkgver=0.41.4
+pkgrel=0
+pkgdesc="Python language server exclusively for Jedi"
+url="https://github.com/pappasam/jedi-language-server"
+arch="noarch"
+license="MIT"
+depends="
+ py3-cattrs
+ py3-docstring-to-markdown
+ py3-gls
+ py3-jedi
+ py3-lsprotocol
+ py3-typing-extensions
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+checkdepends="py3-pytest py3-pyhamcrest py3-jsonrpc-server py3-lsp-jsonrpc"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pappasam/jedi-language-server/archive/v$pkgver.tar.gz"
+
+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/jedi_language_server-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+a8fcdd5328255b969a8e533f32f87a977362a18adfcdd2cb5552d00abb943dab778cd4a2da2cfd6af2d8fc3d7aec182d18d8b8871c0a715a94ea55d902e658b8 jedi-language-server-0.41.4.tar.gz
+"
diff --git a/testing/jfrog-cli/APKBUILD b/testing/jfrog-cli/APKBUILD
index 07616ad344f..18f8d26ed8b 100644
--- a/testing/jfrog-cli/APKBUILD
+++ b/testing/jfrog-cli/APKBUILD
@@ -1,23 +1,29 @@
# Maintainer: Gennady Feldman <gena01@gmail.com>
pkgname=jfrog-cli
-pkgver=1.36.0
-pkgrel=0
+pkgver=2.45.0
+pkgrel=4
pkgdesc="JFrog cli"
url="https://jfrog.com/getcli/"
-arch="all !mips !mips64" # ftbfs
+arch="all"
license="Apache-2.0"
makedepends="go"
options="!check"
replaces="jfrog-cli-go"
provides="jfrog-cli-go=$pkgver-r$pkgrel"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jfrog/jfrog-cli/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jfrog/jfrog-cli/archive/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- go build -o bin/jfrog -ldflags '-w -extldflags "-static"' main.go
+ go build -o bin/jfrog main.go
}
package() {
install -m755 -D bin/jfrog "$pkgdir/usr/bin/jfrog"
}
-sha512sums="6c1599e41c7ec6ada88e8cd214af19e16059ed43c78149ed1441f34f8253a363152c5b18808e03579ace0cbc3388ab6179441349af5f0610bc9fd4070f62c960 jfrog-cli-1.36.0.tar.gz"
+sha512sums="
+4534d986a27b0d16a423bfe601ec5bef1b8d21c20a92d9b2af3d009831c11cbcff954c13f12799986eb98c4e2035c32c5141e185f62bf0c1e633a5548a770585 jfrog-cli-2.45.0.tar.gz
+"
diff --git a/testing/jgmenu/APKBUILD b/testing/jgmenu/APKBUILD
deleted file mode 100644
index 7b16175c4ce..00000000000
--- a/testing/jgmenu/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=jgmenu
-pkgver=4.2.1
-pkgrel=0
-pkgdesc="Simple, independent X11 menu"
-url="https://github.com/johanmalm/jgmenu"
-arch="all !s390x !mips !mips64" # missing dep: librsvg
-license="GPL-2.0-only"
-depends="
- bash
- desktop-file-utils
- python3
- "
-makedepends="
- librsvg-dev
- libxrandr-dev
- libxml2-dev
- pango-dev
- "
-checkdepends="perl"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/johanmalm/jgmenu/archive/v$pkgver.tar.gz"
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="6849a78feefcff5ff078d4f2aaa3b7a4f05656d337e2be57c19079cb57dc6e4652c980c47b2d89f1f45eeaaf2a4e910e68f32f4f63869f13b40e3dd6759d4898 jgmenu-4.2.1.tar.gz"
diff --git a/testing/jhead/APKBUILD b/testing/jhead/APKBUILD
index 89e6870e5dc..2ea4b41b5b3 100644
--- a/testing/jhead/APKBUILD
+++ b/testing/jhead/APKBUILD
@@ -1,30 +1,36 @@
# Contributor: Richard Mortier <mort@cantab.net>
# Maintainer: Richard Mortier <mort@cantab.net>
pkgname=jhead
-pkgver=3.04
+pkgver=3.08
pkgrel=0
pkgdesc="Exif Jpeg header manipulation tool"
url="http://www.sentex.net/~mwandel/jhead/"
arch="all"
license="custom"
subpackages="$pkgname-doc"
-source="http://www.sentex.net/~mwandel/jhead/jhead-$pkgver.tar.gz"
-options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/Matthias-Wandel/jhead/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # fixme: failing tests
+
+# secfixes:
+# 3.06.0.1-r0:
+# - CVE-2020-6624
+# - CVE-2020-6625
build() {
make all
}
-package() {
- install -Dm755 jhead "$pkgdir"/usr/bin/jhead
+check() {
+ cd tests
+ ./runtests
+ diff expected-txt results-txt
}
-doc() {
- cd "$builddir"
- gzip -v9 jhead.1
- install -Dm644 jhead.1.gz "$subpkgdir"/usr/share/man/man1/jhead.1.gz
- install -Dm644 readme.txt \
- "$subpkgdir"/usr/share/licenses/$pkgname/readme.txt
+package() {
+ install -Dm755 jhead "$pkgdir"/usr/bin/jhead
+ install -Dm644 jhead.1 -t "$pkgdir"/usr/share/man/man1/
}
-sha512sums="d783b02059ebcb01845d346e7c48bdc9d9f12fb7b0fd47bf8aff0a85a03f3523fbc536ddab0912f1c56ddb315b6cf31f16d4c7a4f81112d9a4c76a4a57ec1aed jhead-3.04.tar.gz"
+sha512sums="
+eb50e487eaacf2b489ce5e76f09730c8bb0c50a0e2d7c854ebe8bd204ead8f6256e052c49c72af179dc46dd5372c1eff32ff549b947637b242dc7bbe8c7b20d5 jhead-3.08.tar.gz
+"
diff --git a/testing/jicofo/APKBUILD b/testing/jicofo/APKBUILD
new file mode 100644
index 00000000000..334fb76f6a4
--- /dev/null
+++ b/testing/jicofo/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=jicofo
+pkgver=1.0.1062
+_tag="jitsi-meet_9220"
+pkgrel=0
+pkgdesc="Jitsi meet conference focus"
+url="https://github.com/jitsi/jicofo"
+arch="x86_64 aarch64 s390x"
+license="Apache-2.0"
+options="!check" # No test suite
+depends="openjdk11-jre-headless prosody bash"
+makedepends="maven"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jitsi/jicofo/archive/refs/tags/stable/$_tag.tar.gz
+ $pkgname.initd
+ $pkgname.conf
+ $pkgname.confd
+ $pkgname.logrotate
+ sip-communicator.properties
+ "
+
+builddir="$srcdir/$pkgname-stable-$_tag"
+
+build() {
+ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
+ export PATH=$JAVA_HOME/bin:$PATH
+ mvn clean
+ mvn -DskipTests -Dassembly.skipAssembly=true -Dmaven.repo.local="$builddir/.m2/repository" clean package install
+ mvn dependency:copy-dependencies -DincludeScope=runtime -Dmaven.repo.local="$builddir/.m2/repository"
+}
+
+package() {
+ DESTDIR="$pkgdir"/usr/lib/$pkgname
+ CONFDIR="$pkgdir"/etc/jitsi/jicofo
+
+ # dependencies, libraries and java launch files
+ #install -Dm644 -t "$DESTDIR"/lib ./*/target/dependency/*
+ install -Dm644 -t "$DESTDIR"/lib jicofo/target/dependency/*
+ install -Dm644 jicofo/target/jicofo*.jar "$DESTDIR"/jicofo.jar
+ install -Dm755 -t "$DESTDIR" resources/jicofo.sh
+ install -Dm755 -t "$DESTDIR" resources/collect-dump-logs.sh
+
+ # configuration
+ install -dm755 "$CONFDIR"
+ install -Dm644 "$srcdir/jicofo.conf" "$CONFDIR/jicofo.conf"
+ install -Dm640 "$srcdir"/sip-communicator.properties "$CONFDIR/sip-communicator.properties"
+ install -Dm644 -t "$CONFDIR" "lib/logging.properties"
+
+ # init scripts and logrotate
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm640 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
+}
+
+sha512sums="
+df61ec1065dfb39c53b329bd2a1ac49232e03a75d91f800d8cad31b1f1e07f962c6b464e9908c8291284f522d3e592af0a9ae0a40f03aed784322e1dcc8ab419 jicofo-1.0.1062.tar.gz
+d8a5a2bdde124d6e8aff7d1d26c68146ef3cc8fac988360486dcd86e3247a7cfcc311ba9a4b8e64c04524511db350ad98ad4bb6e7aa1b19162b0231d2b57d40a jicofo.initd
+2e0f56e6d68edf6250714274cd8f0bcaf150b8c0f2dbdece9e97873e0fcf2e6520800f329f7d9407266cd28414523b873c159e2c32336464633b03d9608b8109 jicofo.conf
+f99851031af2a88590b4970106bc27cf8d5f7555f82e4c34bd33498904b36bff7efa1c85e5f2ca778a6f0e19cbe2fdd8bfc9357920f990c4b7c532c768d05cf7 jicofo.confd
+64f34dafc1062187485671a29fa147d651c050d9b52331c2933c6c3f024654cd02961d40b1d178e70d2cac9107be4f881654be871423c27459ef6669bcd5402c jicofo.logrotate
+4d87dce61ab19920f9b790ddf52aa8057f17ad0657a5a763efeebd5df2bd51758baffd5167355421ccd9e21b4e87fbaac6210f11e4c31d6beb0a890ea3ff2486 sip-communicator.properties
+"
diff --git a/testing/jicofo/jicofo.conf b/testing/jicofo/jicofo.conf
new file mode 100644
index 00000000000..1f9c90c06cf
--- /dev/null
+++ b/testing/jicofo/jicofo.conf
@@ -0,0 +1,10 @@
+# Jicofo HOCON configuration. See /usr/share/jicofo/jicofo.jar/reference.conf for
+#available options, syntax, and default values.
+jicofo {
+ xmpp: {
+ client: {
+ client-proxy: focus.jitsi.example.com
+ }
+ }
+}
+
diff --git a/testing/jicofo/jicofo.confd b/testing/jicofo/jicofo.confd
new file mode 100644
index 00000000000..156d29a9831
--- /dev/null
+++ b/testing/jicofo/jicofo.confd
@@ -0,0 +1,36 @@
+## Jitsi Conference Focus settings
+
+# sets the host name of the XMPP server
+JICOFO_HOST=localhost
+
+# sets the XMPP domain (default: none)
+JICOFO_HOSTNAME=jitsi.example.com
+
+# sets the secret used to authenticate as an XMPP component
+JICOFO_SECRET=SECRET2
+
+# sets the port to use for the XMPP component connection
+JICOFO_PORT=5347
+
+# sets the XMPP domain name to use for XMPP user logins
+JICOFO_AUTH_DOMAIN=auth.jitsi.example.com
+
+# sets the username to use for XMPP user logins
+JICOFO_AUTH_USER=focus
+
+# sets the password to use for XMPP user logins
+JICOFO_AUTH_PASSWORD=SECRET3
+
+# extra options to pass to the jicofo daemon
+JICOFO_OPTS=""
+
+# sets the log directory and service log file
+JICOFO_LOGDIR="/var/log/jitsi"
+JICOFO_LOGFILE="$JICOFO_LOGDIR/jicofo.log"
+
+# adds java system props that are passed to jicofo (default are for home and logging config file)
+JAVA_SYS_PROPS="-Xmx3072m\
+ -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi\
+ -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=jicofo\
+ -Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=$JICOFO_LOGDIR\
+ -Djava.util.logging.config.file=/etc/jitsi/jicofo/logging.properties"
diff --git a/testing/jicofo/jicofo.initd b/testing/jicofo/jicofo.initd
new file mode 100644
index 00000000000..8cd28a5d264
--- /dev/null
+++ b/testing/jicofo/jicofo.initd
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+
+description="Jitsi Conference Focus"
+
+pidfile="/var/run/jicofo/jicofo.pid"
+# launcher script below will work on OpenRC also
+command="/usr/share/jicofo/jicofo.sh"
+command_args=" --host=$JICOFO_HOST --domain=$JICOFO_HOSTNAME --port=$JICOFO_PORT --user_name=$JICOFO_AUTH_USER --user_domain=$JICOFO_AUTH_DOMAIN ${JICOFO_OPTS}"
+command_user="jicofo:jitsi"
+command_background=true
+
+depend() {
+ need net
+ want jabber-server
+}
+
+start_pre() {
+ checkpath -d -o $command_user -m 770 /var/run/jicofo
+}
+
+start() {
+ ebegin "Starting ${name}"
+ export JICOFO_SECRET JICOFO_AUTH_PASSWORD JICOFO_MAX_MEMORY
+ start-stop-daemon --start --quiet --background --chuid $command_user \
+ -m --pidfile $pidfile \
+ --exec /bin/bash -- -c "JAVA_SYS_PROPS=\"$JAVA_SYS_PROPS\" exec $command $command_args >> $JICOFO_LOGFILE 2>&1"
+ eend $?
+}
diff --git a/testing/jicofo/jicofo.logrotate b/testing/jicofo/jicofo.logrotate
new file mode 100644
index 00000000000..991c6bd15da
--- /dev/null
+++ b/testing/jicofo/jicofo.logrotate
@@ -0,0 +1,10 @@
+/var/log/jitsi/jicofo.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ copytruncate
+ su jicofo jitsi
+}
diff --git a/testing/jicofo/jicofo.pre-install b/testing/jicofo/jicofo.pre-install
new file mode 100644
index 00000000000..974e67a526f
--- /dev/null
+++ b/testing/jicofo/jicofo.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S jitsi 2>/dev/null
+adduser -S -D -H -h /usr/share/jicofo -s /sbin/nologin -G jitsi -g jicofo jicofo 2>/dev/null
+
+exit 0
diff --git a/testing/jicofo/sip-communicator.properties b/testing/jicofo/sip-communicator.properties
new file mode 100644
index 00000000000..2bcf31fb82e
--- /dev/null
+++ b/testing/jicofo/sip-communicator.properties
@@ -0,0 +1 @@
+org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.jitsi.example.org
diff --git a/testing/jigasi/APKBUILD b/testing/jigasi/APKBUILD
new file mode 100644
index 00000000000..1daa975ad3a
--- /dev/null
+++ b/testing/jigasi/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=jigasi
+pkgver=20240325
+pkgrel=0
+_gitrev=04ad08f0ab9cd079c62f47f9cecc7367ce3f4ba4
+pkgdesc="Jitsi meet SIP gateway"
+url="https://github.com/jitsi/jigasi"
+arch="x86_64"
+license="Apache-2.0"
+depends="openjdk11-jre-headless jicofo jitsi-videobridge jitsi-meet"
+makedepends="maven"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jitsi/jigasi/archive/$_gitrev.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.logrotate
+ "
+builddir="$srcdir/jigasi-$_gitrev"
+options="!check" # No test suite
+
+build() {
+ mvn clean
+ mvn package -DskipTests -Dassembly.skipAssembly=true -Dmaven.repo.local="$builddir/.m2/repository"
+ mvn dependency:copy-dependencies -DincludeScope=runtime -Dmaven.repo.local="$builddir/.m2/repository"
+}
+
+package() {
+ DESTDIR="$pkgdir/usr/lib/$pkgname"
+ CONFDIR="$pkgdir/etc/jitsi/jigasi"
+
+ # dependencies, libraries and java launch files
+ install -Dm644 -t "$DESTDIR/lib" target/dependency/*
+ install -Dm644 target/jigasi-*-SNAPSHOT.jar "$DESTDIR/jigasi.jar"
+ install -Dm755 -t "$DESTDIR" "jigasi.sh"
+ install -Dm755 -t "$DESTDIR" "script/graceful_shutdown.sh"
+ install -Dm755 -t "$DESTDIR" "script/collect-dump-logs.sh"
+
+
+ # configuration
+ install -dm700 "$CONFDIR"
+ install -Dm640 -t "$CONFDIR" "lib/logging.properties" "jigasi-home/sip-communicator.properties"
+
+ # init scripts and logrotate
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
+}
+
+sha512sums="
+4c5d15f9545d8fb345a9b8a09a369886b4b62a6785e9b4ddd8c0e99c23dd00abd567113ed6ed6145c46e0f0e32c200cd577bdb880be673ddb2f914624fea84a2 jigasi-20240325.tar.gz
+4785f72bc3c60488df409c292f1daffc583169138cf477253cbc80226da4d5b185a044d8d7d2b5bbe39290b852bf27e4443fa1a0eda55e9a385fcf7a53215748 jigasi.initd
+2fc7bdcabbdf46c01c7edb02f22d76e972f9fa060999f8f120759cb78f64475d8d36ef7b07875cbcb2309f8d0220e5cdd86ab0a3ed1c050a50f8026ccea23009 jigasi.confd
+9a3c97e983d1fc67bac3066a7f13cf043bd48e0448044c32ef8c6025f59d7df476ca22ffe305054d7d17c60a366eaa16ca653e1877a373eb1f896a863dd5e343 jigasi.logrotate
+"
diff --git a/testing/jigasi/jigasi.confd b/testing/jigasi/jigasi.confd
new file mode 100644
index 00000000000..090fc57e353
--- /dev/null
+++ b/testing/jigasi/jigasi.confd
@@ -0,0 +1,27 @@
+## Jigasi settings
+
+# SIP account
+JIGASI_SIPUSER=xxx
+
+# SIP password. Store it with $(echo -n $PWD | base64 -)
+JIGASI_SIPPWD=PASSWORD1
+
+# 8-chars random secret, alternative to pwgen 8
+# head -c 8 /dev/urandom | tr '\0-\377' 'a-zA-Z0-9a-zA-Z0-9a-zA-Z0-9a-zA-Z0-9@@@@####'
+JIGASI_SECRET=SECRET4
+
+# Domain name. Use the XMPP domain (JVB_HOSTNAME) here
+JIGASI_HOSTNAME=jitsi.example.com
+
+# Host name (default: localhost)
+JIGASI_HOST=localhost
+
+# Extra options to pass to the jigasi daemon
+JIGASI_OPTS=""
+
+# sets the log directory and service log file
+JIGASI_LOGDIR="/var/log/jitsi"
+JIGASI_LOGFILE="$JIGASI_LOGDIR/jigasi.log"
+
+# Add java system props that are passed to jigasi
+JAVA_SYS_PROPS="-Djava.util.logging.config.file=/etc/jitsi/jigasi/logging.properties"
diff --git a/testing/jigasi/jigasi.initd b/testing/jigasi/jigasi.initd
new file mode 100644
index 00000000000..394fbab8fa9
--- /dev/null
+++ b/testing/jigasi/jigasi.initd
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+
+description="Jitsi Gateway for SIP"
+
+pidfile="/var/run/jigasi/jigasi.pid"
+# launcher script below will work on OpenRC also
+command="/usr/share/jigasi/jigasi.sh"
+command_args=" --host=$JIGASI_HOST --domain=$JIGASI_HOSTNAME --subdomain=callcontrol --secret=$JIGASI_SECRET --logdir=$JIGASI_LOGDIR --configdir=/etc/jitsi --configdirname=jigasi $JIGASI_OPTS"
+command_user="jigasi:jitsi"
+command_background=true
+
+depend() {
+ need net
+ want jabber-server
+}
+
+start_pre() {
+ mkdir -m 770 -p /var/run/jigasi
+ chown "${command_user}" /var/run/jigasi
+ return 0
+}
+
+start() {
+ ebegin "Starting ${name}"
+ start-stop-daemon --start --quiet --background --chuid $command_user \
+ -m --pidfile $pidfile \
+ --exec /bin/bash -- -c "JAVA_SYS_PROPS=\"$JAVA_SYS_PROPS\" exec $command $command_args >> $JIGASI_LOGFILE 2>&1"
+ eend $?
+}
diff --git a/testing/jigasi/jigasi.logrotate b/testing/jigasi/jigasi.logrotate
new file mode 100644
index 00000000000..b9b48d0af13
--- /dev/null
+++ b/testing/jigasi/jigasi.logrotate
@@ -0,0 +1,10 @@
+/var/log/jitsi/jigasi.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ copytruncate
+ su jigasi jitsi
+}
diff --git a/testing/jigasi/jigasi.pre-install b/testing/jigasi/jigasi.pre-install
new file mode 100644
index 00000000000..cd74c1dce0d
--- /dev/null
+++ b/testing/jigasi/jigasi.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S jitsi 2>/dev/null
+adduser -S -D -H -h /usr/share/jigasi -s /sbin/nologin -G jitsi -g jigasi jigasi 2>/dev/null
+
+exit 0
diff --git a/testing/jigasi/sip-communicator.properties b/testing/jigasi/sip-communicator.properties
new file mode 100644
index 00000000000..f8c8be96965
--- /dev/null
+++ b/testing/jigasi/sip-communicator.properties
@@ -0,0 +1,160 @@
+#Sample config with one XMPP and one SIP account configured
+# Replace {sip-pass-hash} with SIP user password hash
+# as well as other account properties
+
+# Name of default JVB room that will be joined if no special header is included
+# in SIP invite
+org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME=siptest
+
+net.java.sip.communicator.impl.protocol.SingleCallInProgressPolicy.enabled=false
+
+# Should be enabled when using translator mode
+#net.java.sip.communicator.impl.neomedia.audioSystem.audiosilence.captureDevice_list=["AudioSilenceCaptureDevice:noTransferData"]
+
+# Adjust opus encoder complexity
+net.java.sip.communicator.impl.neomedia.codec.audio.opus.encoder.COMPLEXITY=10
+
+# Disables packet logging
+net.java.sip.communicator.packetlogging.PACKET_LOGGING_ENABLED=true
+
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647=acc1403273890647
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.ACCOUNT_UID=SIP\:<<JIGASI_SIPUSER>>
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PASSWORD=<<JIGASI_SIPPWD>>
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PROTOCOL_NAME=SIP
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.SERVER_ADDRESS=<<JIGASI_SIPSERVER>>
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.USER_ID=<<JIGASI_SIPUSER>>
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.KEEP_ALIVE_INTERVAL=25
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.KEEP_ALIVE_METHOD=OPTIONS
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.VOICEMAIL_ENABLED=false
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.AMR-WB/16000=750
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.G722/8000=700
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.GSM/8000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.H263-1998/90000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.H264/90000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.PCMA/8000=600
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.PCMU/8000=650
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/12000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/16000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/24000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.SILK/8000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.VP8/90000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.iLBC/8000=10
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.opus/48000=1000
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.red/90000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.speex/16000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.speex/32000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.speex/8000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.telephone-event/8000=1
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.Encodings.ulpfec/90000=0
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.OVERRIDE_ENCODINGS=true
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.DEFAULT_ENCRYPTION=false
+
+# If an authenticated (hidden) domain is used to connect to a conference,
+# PREVENT_AUTH_LOGIN will prevent the SIP participant from being seen as a
+# hidden participant in the conference
+#net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PREVENT_AUTH_LOGIN=FALSE
+
+# Used when incoming calls are used in multidomain environment, used to detect subdomains
+# used for constructing callResource and eventually contacting jicofo
+net.java.sip.communicator.impl.protocol.sip.acc1403273890647.DOMAIN_BASE=<<DOMAIN_BASE>>
+
+# the pattern to be used as bosh url when using bosh in multidomain environment
+#net.java.sip.communicator.impl.protocol.sip.acc1403273890647.BOSH_URL_PATTERN=https://{host}{subdomain}/http-bind?room={roomName}
+
+# can be enabled to disable audio mixing and use translator, jigasi will act as jvb, just forward every ssrc stream it receives.
+#net.java.sip.communicator.impl.protocol.sip.acc1403273890647.USE_TRANSLATOR_IN_CONFERENCE=true
+
+# We can use the prefix org.jitsi.jigasi.xmpp.acc to override any of the
+# properties that will be used for creating xmpp account for communication.
+
+# The following two props assume we are using jigasi on the same machine as
+# the xmpp server.
+org.jitsi.jigasi.xmpp.acc.IS_SERVER_OVERRIDDEN=true
+org.jitsi.jigasi.xmpp.acc.SERVER_ADDRESS=127.0.0.1
+org.jitsi.jigasi.xmpp.acc.VIDEO_CALLING_DISABLED=true
+org.jitsi.jigasi.xmpp.acc.JINGLE_NODES_ENABLED=false
+org.jitsi.jigasi.xmpp.acc.IM_DISABLED=true
+org.jitsi.jigasi.xmpp.acc.SERVER_STORED_INFO_DISABLED=true
+org.jitsi.jigasi.xmpp.acc.IS_FILE_TRANSFER_DISABLED=true
+# Or you can use bosh for the connection establishment by specifing the URL to use.
+# org.jitsi.jigasi.xmpp.acc.BOSH_URL_PATTERN=https://server.com/http-bind?room={roomName}
+
+#Used when outgoing calls are used in multidomain environment, used to detect subdomains
+#org.jitsi.jigasi.xmpp.acc.DOMAIN_BASE=<<DOMAIN_BASE>>
+#org.jitsi.jigasi.xmpp.acc.BOSH_URL_PATTERN=https://{host}{subdomain}/http-bind?room={roomName}
+
+# can be enabled to disable audio mixing and use translator, jigasi will act as jvb, just forward every ssrc stream it receives.
+#org.jitsi.jigasi.xmpp.acc.USE_TRANSLATOR_IN_CONFERENCE=true
+
+# If you want jigasi to perform authenticated login instead of anonymous login
+# to the XMPP server, you can set the following properties.
+# org.jitsi.jigasi.xmpp.acc.USER_ID=SOME_USER@SOME_DOMAIN
+# org.jitsi.jigasi.xmpp.acc.PASS=SOME_PASS
+# org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false
+
+# If you want to use the SIP user part of the incoming/outgoing call SIP URI
+# you can set the following property to true.
+# org.jitsi.jigasi.USE_SIP_USER_AS_XMPP_RESOURCE=true
+
+# Activate this property if you are using self-signed certificates or other
+# type of non-trusted certicates. In this mode your service trust in the
+# remote certificates always.
+# net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true
+
+# Enable this property to be able to shutdown gracefully jigasi using
+# a rest command
+# org.jitsi.jigasi.ENABLE_REST_SHUTDOWN=true
+
+# Options regarding Transcription. Read the README for a detailed description
+# about each property
+
+#org.jitsi.jigasi.ENABLE_TRANSCRIPTION=false
+#org.jitsi.jigasi.ENABLE_SIP=true
+
+# whether to use the more expensive, but better performing
+# "video" model when doing transcription
+# org.jitsi.jigasi.transcription.USE_VIDEO_MODEL = false
+
+# delivering final transcript
+# org.jitsi.jigasi.transcription.DIRECTORY=/var/lib/jigasi/transcripts
+# org.jitsi.jigasi.transcription.BASE_URL=http://localhost/
+# org.jitsi.jigasi.transcription.jetty.port=-1
+# org.jitsi.jigasi.transcription.ADVERTISE_URL=false
+
+# save formats
+# org.jitsi.jigasi.transcription.SAVE_JSON=false
+# org.jitsi.jigasi.transcription.SAVE_TXT=true
+
+# send formats
+# org.jitsi.jigasi.transcription.SEND_JSON=true
+# org.jitsi.jigasi.transcription.SEND_TXT=false
+
+# translation
+# org.jitsi.jigasi.transcription.ENABLE_TRANSLATION=false
+
+# record audio. Currently only wav format is supported
+# org.jitsi.jigasi.transcription.RECORD_AUDIO=false
+# org.jitsi.jigasi.transcription.RECORD_AUDIO_FORMAT=wav
+
+# execute one or more scripts when a transcript or recording is saved
+# org.jitsi.jigasi.transcription.EXECUTE_SCRIPTS=true
+# org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST_SEPARATOR=","
+# org.jitsi.jigasi.transcription.SCRIPTS_TO_EXECUTE_LIST=script/example_handle_transcript_directory.sh
+
+# properties for optionally sending statistics to a DataDog server
+#org.jitsi.ddclient.prefix=jitsi.jigasi
+#org.jitsi.ddclient.host=localhost
+#org.jitsi.ddclient.port=8125
+
+# sip health checking
+# Enables sip health checking by specifying a number/uri to call
+# the target just needs to auto-connect the call play some audio,
+# the call must be established for less than 10 seconds
+# org.jitsi.jigasi.HEALTH_CHECK_SIP_URI=healthcheck
+#
+# The interval between healthcheck calls, by default is 5 minutes
+# org.jitsi.jigasi.HEALTH_CHECK_INTERVAL=300000
+#
+# The timeout of healthcheck, if there was no successful health check for
+# 10 minutes (default value) we consider jigasi unhealthy
+# org.jitsi.jigasi.HEALTH_CHECK_TIMEOUT=600000
diff --git a/testing/jinja2-cli/APKBUILD b/testing/jinja2-cli/APKBUILD
deleted file mode 100644
index c3407bcc762..00000000000
--- a/testing/jinja2-cli/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-# Maintainer:
-pkgname=jinja2-cli
-pkgver=0.7.0
-pkgrel=2
-pkgdesc="CLI for Jinja2"
-url=https://github.com/mattrobenolt/jinja2-cli
-arch=noarch
-license="BSD-2-Clause"
-depends="python3 py3-jinja2"
-makedepends=py3-setuptools
-source=https://files.pythonhosted.org/packages/source/j/$pkgname/$pkgname-$pkgver.tar.gz
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --root "$pkgdir"
-}
-
-sha512sums="b1697560936c3cca9298ca6695087b0aca2177d42e5026cae5651a443df17eef45c4002c70e9a3be3a899ed47e2f451cc2d0b6978b1b30b808b863bba0d2d604 jinja2-cli-0.7.0.tar.gz"
diff --git a/testing/jitsi-meet/APKBUILD b/testing/jitsi-meet/APKBUILD
new file mode 100644
index 00000000000..49914fe2e72
--- /dev/null
+++ b/testing/jitsi-meet/APKBUILD
@@ -0,0 +1,86 @@
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=jitsi-meet
+pkgver=1.0.7762
+_tag="jitsi-meet_9220"
+pkgrel=1
+pkgdesc="WebRTC JavaScript video conferences"
+url="https://github.com/jitsi/jitsi-meet"
+arch="x86_64 aarch64 s390x"
+license="Apache-2.0"
+depends="jicofo jitsi-videobridge nginx"
+_depends_prosody="$pkgname prosody"
+makedepends="npm"
+subpackages="$pkgname-doc $pkgname-prosody"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jitsi/jitsi-meet/archive/stable/$_tag.tar.gz
+ openssl3.patch
+ "
+
+builddir="$srcdir/$pkgname-stable-$_tag"
+options="!check" # No test suite
+
+build() {
+ npm ci
+ make
+ make source-package
+}
+
+package() {
+ DESTDIR="$pkgdir"/usr/share/$pkgname
+ CONFDIR="$pkgdir"/etc/jitsi/meet
+
+ install -d "$DESTDIR"
+ install -d "$CONFDIR"
+
+ tar xjf "$pkgname.tar.bz2" -C "$DESTDIR" --strip 1
+ install -Dm644 -t "$DESTDIR" manifest.json
+
+ # Hack https://github.com/jitsi/jitsi-meet/pull/6925
+ for l in $(node -p "Object.keys(require('./lang/languages.json')).join(' ')"); do
+ c=${l:0:2}
+ if [ -f "node_modules/i18n-iso-countries/langs/$c.json" ]; then
+ install -m644 "node_modules/i18n-iso-countries/langs/$c.json" "$DESTDIR/lang/countries-$l.json"
+ fi
+ done
+
+ # get rid of all local references
+ find "$DESTDIR" -type f -name "*.js" -exec sed -i "s#$builddir##g" "{}" \+
+
+ # Non-deterministic race in npm gives 777 permissions to random directories.
+ # See https://github.com/npm/npm/issues/9359 for details.
+ chmod -R 755 "$DESTDIR"
+
+ # configuration files
+ for i in interface_config.js config.js; do
+ install -Dm644 "$DESTDIR/$i" "$CONFDIR/$i"
+ ln -sf "/etc/jitsi/meet/$i" "$DESTDIR/$i"
+ done
+
+ # general documentation
+ install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" doc/debian/jitsi-meet/jitsi-meet.example doc/debian/jitsi-meet/jitsi-meet.example-apache config.js
+ sed -i "s@/usr/share/$pkgname@/usr/share/webapps/$pkgname@" "$pkgdir/usr/share/doc/$pkgname/"*
+ sed -i "s@/etc/jitsi/meet@/etc/webapps/$pkgname@" "$pkgdir/usr/share/doc/$pkgname/"*
+
+ # npm gives ownership of ALL FILES to build user
+ # https://bugs.archlinux.org/task/63396
+ chown -R root:root "$pkgdir"
+}
+
+prosody() {
+ pkgdesc="Jitsi Meet Prosody Plugins"
+ depends="$_depends_prosody"
+
+ cd "$builddir"
+ DESTDIR="$subpkgdir/usr/share/$pkgname"
+ install -d "$DESTDIR"
+ cp -r resources/prosody-plugins "$DESTDIR"
+
+ # prosody documentation
+ install -Dm644 -t "$pkgdir-doc/usr/share/doc/$pkgname" doc/debian/jitsi-meet-prosody/prosody.cfg.lua-jvb.example doc/debian/jitsi-meet-prosody/jaas.cfg.lua
+ sed -i 's@/usr/share/jitsi-meet/prosody-plugins/@/usr/lib/'$pkgname'@' "$pkgdir-doc/usr/share/doc/$pkgname/prosody.cfg.lua-jvb.example"
+
+}
+
+sha512sums="
+3e4a577fcd2c0b9f1bb1d875780ac185cb5c8946cf9dc35f6c89f039284a577b793ddf3b611dc19cfa4edd0c1602351e6e102e4e7bfdc8cc02ccdce9f4095d1e jitsi-meet-1.0.7762.tar.gz
+f752d2eafd7f4e3a331c92b8ad25e6c150d608303fe74f32950a8deb55784853bd7225923d71ab55778b828955e150058e725d85995e4e6f776855015e4e16a9 openssl3.patch
+"
diff --git a/testing/jitsi-meet/openssl3.patch b/testing/jitsi-meet/openssl3.patch
new file mode 100644
index 00000000000..7806252ca07
--- /dev/null
+++ b/testing/jitsi-meet/openssl3.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 040f8c9..bcbf826 100644
+--- a/Makefile
++++ b/Makefile
+@@ -27,7 +27,7 @@ endif
+ all: compile deploy clean
+
+ compile:
+- NODE_OPTIONS=--max-old-space-size=8192 \
++ NODE_OPTIONS="--max-old-space-size=8192 --openssl-legacy-provider" \
+ $(WEBPACK)
+
+ clean:
diff --git a/testing/jitsi-videobridge/APKBUILD b/testing/jitsi-videobridge/APKBUILD
new file mode 100644
index 00000000000..99a8869de8a
--- /dev/null
+++ b/testing/jitsi-videobridge/APKBUILD
@@ -0,0 +1,67 @@
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=jitsi-videobridge
+pkgver=2.3.67
+_tag="jitsi-meet_9220"
+pkgrel=0
+pkgdesc="Videobridge for Jitsi Meet"
+url="https://github.com/jitsi/jitsi-videobridge"
+arch="x86_64 aarch64 ppc64le s390x"
+license="Apache-2.0"
+options="!check" # No test suite
+depends="openjdk11-jre-headless prosody bash"
+makedepends="maven"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jitsi/jitsi-videobridge/archive/stable/$_tag.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.logrotate
+ jvb.conf
+ sip-communicator.properties
+ "
+
+builddir="$srcdir/$pkgname-stable-$_tag"
+
+build() {
+ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
+ export PATH=$JAVA_HOME/bin:$PATH
+
+ mvn clean
+ mvn package -DskipTests -Dassembly.skipAssembly=true -Dmaven.repo.local="$builddir/.m2/repository" install
+ mvn dependency:copy-dependencies -DincludeScope=runtime -Dmaven.repo.local="$builddir/.m2/repository"
+}
+
+package() {
+ DESTDIR="$pkgdir"/usr/lib/$pkgname
+ CONFDIR="$pkgdir"/etc/jitsi/videobridge
+
+ install -Dm644 -t "$DESTDIR/lib" \
+ jvb/target/dependency/* \
+ jvb/lib/videobridge.rc
+
+ install -Dm644 jvb/target/$pkgname*.jar "$DESTDIR/$pkgname.jar"
+ install -Dm755 -t "$DESTDIR" "jvb/resources/jvb.sh"
+ install -Dm755 -t "$DESTDIR" "resources/graceful_shutdown.sh"
+ install -Dm755 -t "$DESTDIR" "resources/collect-dump-logs.sh"
+
+ # configuration
+ install -dm755 "$CONFDIR"
+ install -Dm644 "$srcdir"/jvb.conf "$CONFDIR/jvb.conf"
+ install -Dm640 "$srcdir"/sip-communicator.properties "$CONFDIR/sip-communicator.properties"
+ install -Dm644 -t "$CONFDIR" "jvb/lib/logging.properties"
+ install -Dm644 "config/20-jvb-udp-buffers.conf" "$pkgdir/etc/sysctl.d/$pkgname.conf"
+
+ # init scripts and logrotate
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm640 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
+}
+
+sha512sums="
+f1840ae8fbcbbe2a4590fdf3213b512bbd24e143589a6c7364fae7493f1c60c3e7edaceaa04c2c7bf53a99454f05acb3f2eee4811643298b6ba82319459c1d7c jitsi-videobridge-2.3.67.tar.gz
+f10f9291187c6c44838312f73a5f5ff4cedb8970a338373ba37b7e141d018413bf176d8fd3f15cb891516238182498ac3c8bc7587880831994e17f1289a3b755 jitsi-videobridge.initd
+c63cd36d1710a81df255ffc9ab62e413546f37c0d244327b03381bb32381242d881a35dc7384af093976dff645e415acd0e1d82769e54c01f5a2c35dc6ef469a jitsi-videobridge.confd
+86806b7fd222d5a3d0fc50daf8f2f0f2ef757011f44c8ce7ddd8836455393a7ac3e6f6d73bb6a929b796c3e877e1220c8bc2a3fe8178ed70cdede16d13ddce85 jitsi-videobridge.logrotate
+ec1c50d94f13faea50c38d7dedf200111df5ed937821f9b427cc30c5f29b8579b5f78400a1934caca0a123a201fe0822f963cea28fb16e92fde858eac5255034 jvb.conf
+ad3bea4485f4c3d74194ab77f40086e6086eb294b68c96732e7a42059981afe33585f5152da7ac9dd81bf4a2a604d15a8d5c0cd54641afb04e58c812de31e996 sip-communicator.properties
+"
diff --git a/testing/jitsi-videobridge/jitsi-videobridge.confd b/testing/jitsi-videobridge/jitsi-videobridge.confd
new file mode 100644
index 00000000000..f9a6dd356ea
--- /dev/null
+++ b/testing/jitsi-videobridge/jitsi-videobridge.confd
@@ -0,0 +1,34 @@
+## Jitsi Videobridge settings
+
+# sets the XMPP domain (default: none)
+JVB_HOSTNAME=jitsi.example.com
+
+# sets the hostname of the XMPP server (default: domain if set, localhost otherwise)
+JVB_HOST=localhost
+
+# sets the port of the XMPP server (default: 5275)
+JVB_PORT=5347
+
+# sets the shared secret used to authenticate to the XMPP server
+JVB_SECRET=SECRET1
+
+# extra options to pass to the JVB daemon
+# --apis defaults to xmpp, which breaks the current jvb2 as of 2020-05-02
+JVB_OPTS="--apis=xmpp,"
+
+# sets the log directory and service log file
+JVB_LOGDIR="/var/log/jitsi"
+JVB_LOGFILE="$JVB_LOGDIR/jvb.log"
+
+# adds java system props that are passed to jvb (default are for home and logging config file)
+JAVA_SYS_PROPS="\
+ -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi\
+ -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=videobridge\
+ -Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=$JVB_LOGDIR\
+ -Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties\
+ -Dconfig.file=/etc/jitsi/videobridge/jvb.conf"
+
+# application config (not ready yet)
+# https://github.com/jitsi/jitsi-videobridge/issues/1229
+#JAVA_SYS_PROPS="-Dconfig.file=/etc/jitsi/videobridge/application.conf -Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties"
+
diff --git a/testing/jitsi-videobridge/jitsi-videobridge.initd b/testing/jitsi-videobridge/jitsi-videobridge.initd
new file mode 100644
index 00000000000..369d2721ac0
--- /dev/null
+++ b/testing/jitsi-videobridge/jitsi-videobridge.initd
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+
+description="Jitsi Videobridge"
+
+pidfile="/run/jvb/jvb.pid"
+# launcher script below will work on OpenRC also
+command="/usr/lib/jitsi-videobridge/jvb.sh"
+command_args="${JVB_OPTS}"
+command_user="jvb:jitsi"
+command_background=true
+
+depend() {
+ need net
+ want jabber-server
+}
+
+start_pre() {
+ checkpath -d -m 770 -o $command_user /run/jvb
+}
+
+start() {
+ ebegin "Starting ${name}"
+ start-stop-daemon --start --quiet --background --chuid $command_user \
+ -m --pidfile $pidfile \
+ --exec /bin/bash -- -c "JAVA_SYS_PROPS=\"$JAVA_SYS_PROPS\" exec $command $command_args >> $JVB_LOGFILE 2>&1"
+ eend $?
+}
+
diff --git a/testing/jitsi-videobridge/jitsi-videobridge.logrotate b/testing/jitsi-videobridge/jitsi-videobridge.logrotate
new file mode 100644
index 00000000000..190e54f9a9c
--- /dev/null
+++ b/testing/jitsi-videobridge/jitsi-videobridge.logrotate
@@ -0,0 +1,12 @@
+/var/log/jitsi/jvb.log {
+ hourly
+ size 100M
+ missingok
+ rotate 24
+ compress
+ delaycompress
+ notifempty
+ copytruncate
+ su jvb jitsi
+}
+
diff --git a/testing/jitsi-videobridge/jitsi-videobridge.pre-install b/testing/jitsi-videobridge/jitsi-videobridge.pre-install
new file mode 100644
index 00000000000..4f90bd8e2cb
--- /dev/null
+++ b/testing/jitsi-videobridge/jitsi-videobridge.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S jitsi 2>/dev/null
+adduser -S -D -H -h /usr/lib/jitsi-videobridge -s /sbin/nologin -G jitsi -g jvb jvb 2>/dev/null
+
+exit 0
diff --git a/testing/jitsi-videobridge/jvb.conf b/testing/jitsi-videobridge/jvb.conf
new file mode 100644
index 00000000000..6e6b342f697
--- /dev/null
+++ b/testing/jitsi-videobridge/jvb.conf
@@ -0,0 +1,13 @@
+videobridge {
+ http-servers {
+ public {
+ port = 9090
+ }
+ }
+ websockets {
+ enabled = true
+ domain = "jitsi.example.com:443"
+ tls = true
+ }
+}
+
diff --git a/testing/jitsi-videobridge/sip-communicator.properties b/testing/jitsi-videobridge/sip-communicator.properties
new file mode 100644
index 00000000000..949dcbe95f9
--- /dev/null
+++ b/testing/jitsi-videobridge/sip-communicator.properties
@@ -0,0 +1,20 @@
+org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true
+org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443
+
+# Enable broadcasting stats/presence in a MUC
+org.jitsi.videobridge.ENABLE_STATISTICS=true
+org.jitsi.videobridge.STATISTICS_TRANSPORT=muc
+
+# Uncomment and configure to enable XMPP client
+org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=localhost
+org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.jitsi.example.com
+org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb
+org.jitsi.videobridge.xmpp.user.shard.PASSWORD=JVB_SECRET
+org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.jitsi.example.com
+org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=SOME_RANDOM_UUID
+#org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
+
+# If you're behind a nat, define local and public IPv4
+#org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=LOCAL_IPV4_GOES_HERE
+#org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=PUBLIC_IPV4_GOES_HERE
+
diff --git a/testing/jitterentropy-rngd/APKBUILD b/testing/jitterentropy-rngd/APKBUILD
deleted file mode 100644
index 7eaa067c12b..00000000000
--- a/testing/jitterentropy-rngd/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
-# Maintainer:
-pkgname=jitterentropy-rngd
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="CPU Jitter RNG Daemon"
-url="http://www.chronox.de/jent.html"
-arch="all"
-license="BSD-3-Clause OR GPL-2.0-Only"
-makedepends="linux-headers"
-options="!check" # no test suite
-subpackages="$pkgname-doc $pkgname-openrc"
-source="jitterentropy-rngd-$pkgver.tar.gz::https://github.com/smuellerDD/jitterentropy-rngd/archive/v$pkgver.tar.gz
- $pkgname.initd
- "
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install
-
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
-
- rm -rf "$pkgdir"/usr/lib/systemd
-}
-
-sha512sums="32835475b604e502caaab9b0d1cd9fe2920c126a27841669f6cf9c717094bfd4c11feab0f9f706ee4cf4caeedf26ced7039075499a3faaf41830c72968544646 jitterentropy-rngd-1.1.0.tar.gz
-5903286b2bec9aedd7f05c7e95ac464709479f802467ac749a51794074ee15b819582c6b6993520ee3a9acb505994683edb739b45932b55d16e53bb42df8cc39 jitterentropy-rngd.initd"
diff --git a/testing/jitterentropy-rngd/jitterentropy-rngd.initd b/testing/jitterentropy-rngd/jitterentropy-rngd.initd
deleted file mode 100644
index ebd8b92358d..00000000000
--- a/testing/jitterentropy-rngd/jitterentropy-rngd.initd
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/sbin/openrc-run
-
-description="CPU Jitter Random number generator daemon"
-
-pidfile=/run/$RC_SVCNAME.pid
-command=/usr/sbin/jitterentropy-rngd
-command_args="--pid $pidfile"
-
-depend() {
- need localmount
- after urandom
- provide entropy
-}
diff --git a/testing/jreleaser/APKBUILD b/testing/jreleaser/APKBUILD
new file mode 100644
index 00000000000..a026fa086aa
--- /dev/null
+++ b/testing/jreleaser/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Andres Almiray <aalmiray@yahoo.com>
+# Maintainer: Andres Almiray <aalmiray@yahoo.com>
+pkgname=jreleaser
+pkgver=1.11.0
+pkgrel=0
+pkgdesc="Release projects quickly and easily with JReleaser"
+url="https://jreleaser.org/"
+# aarch64: openjdk currently segfaults
+# ppc64le: openjdk hangs
+# riscv64, 32-bit: no jdk11
+arch="all !aarch64 !ppc64le !armv7 !armhf !x86 !riscv64"
+license="Apache-2.0"
+depends="openjdk11-jdk"
+makedepends="gradle"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jreleaser/jreleaser/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" #Check occurs in build
+
+prepare() {
+ default_prepare
+
+ # generate a copy of the wrapper with the chosen version
+ mkdir "$srcdir"/temp
+ cd "$srcdir"/temp
+ echo "rootProject.name = 'wrapper-project'" > settings.gradle
+ # this will fetch an older version of gradle
+ gradle --no-daemon wrapper --gradle-version 8.6
+
+ cd "$builddir"
+
+ # copy wrapper files into source distribution
+ cp -r "$srcdir"/temp/gradlew* "$builddir"
+ cp -r "$srcdir"/temp/gradle/* "$builddir"/gradle/
+}
+
+build() {
+ # build requires Java 11
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ ./gradlew --no-daemon -PreproducibleBuild=true -x :jreleaser:setupJdks :jreleaser:distZip
+}
+
+package() {
+ unzip -qo plugins/jreleaser/build/distributions/jreleaser-$pkgver.zip
+
+ local apphome="/usr/share/java/jreleaser"
+ local destdir="$pkgdir/$apphome"
+
+ rm "jreleaser-$pkgver"/bin/*.bat
+ install -Dm755 "jreleaser-$pkgver"/bin/* -t "$destdir"/bin
+
+ mkdir -p "$pkgdir"/usr/bin
+ ln -sf ../share/java/jreleaser/bin/jreleaser "$pkgdir"/usr/bin/jreleaser
+
+ install -Dm644 "jreleaser-$pkgver"/lib/*.jar -t "$destdir"/lib
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+b3b777b51cbcc103d2fa57ab5807f1ad198415f8582415c8565516c0f70de2df6ba7d7814105f2a570cf713c13ceef4bab1a6bf5bbc6677385a747c4cac21c82 jreleaser-1.11.0.tar.gz
+"
+
diff --git a/testing/jrsonnet-cli/APKBUILD b/testing/jrsonnet-cli/APKBUILD
new file mode 100644
index 00000000000..0c7585374c9
--- /dev/null
+++ b/testing/jrsonnet-cli/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=jrsonnet-cli
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="Rust implementation of Jsonnet language"
+url="https://github.com/CertainLach/jrsonnet"
+# riscv64: libc crate
+arch="all !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="https://github.com/CertainLach/jrsonnet/archive/refs/tags/v$pkgver/jrsonnet-v$pkgver.tar.gz"
+builddir="$srcdir/jrsonnet-$pkgver"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --offline --release -p jrsonnet
+}
+
+check() {
+ cargo test --frozen --offline
+}
+
+package() {
+ install -Dm755 target/release/jrsonnet "$pkgdir"/usr/bin/jrsonnet
+}
+
+sha512sums="
+884feaba07e95d993bd47ecee06b0a3acfd47febf411558430e8dca8e418bade47d85f9a552e34c5e4f8b3f4e44596eb616cf1928cc33fde98f7440e025edd1e jrsonnet-v0.4.2.tar.gz
+"
diff --git a/testing/jshon/APKBUILD b/testing/jshon/APKBUILD
deleted file mode 100644
index 95e3ae8c591..00000000000
--- a/testing/jshon/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=jshon
-pkgver=20131105
-pkgrel=0
-pkgdesc="SON parser designed for maximum convenience within the shell"
-url="http://kmkeen.com/jshon/"
-arch="all"
-license="MIT"
-depends=""
-makedepends="jansson-dev"
-options="!check"
-subpackages="$pkgname-doc"
-source="jshon-$pkgver.tar.gz::https://github.com/keenerd/jshon/archive/$pkgver.tar.gz
- disable-werror.patch
- missing-typesh.patch
- "
-builddir="$srcdir/jshon-$pkgver"
-
-build() {
- cd "$builddir"
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="0f27cc8d0157bda12e5180f99b4e894326e7240d8cd004dadcadfad09f926852e224e3cd2b03cc6d51f7e7efafea0e5ccb1a0b66ab0d8349326809bc7db8ffb4 jshon-20131105.tar.gz
-0f862ebcf1028cf2ad46610483df6b46e1f380b7b30605e672b342132fb1e123133d9c9672181d13217de5aa58e92522daf0eaa3537eacf810c978fbced364dc disable-werror.patch
-fc9a589cd39493c10e4616628040f19d758893545df59d2dc415d21eae12d8af12d5dd1fc160d0c95694086e5e86c8e9a463332dbab1fbd89babb606da139554 missing-typesh.patch"
diff --git a/testing/jshon/disable-werror.patch b/testing/jshon/disable-werror.patch
deleted file mode 100644
index fff4dc474e6..00000000000
--- a/testing/jshon/disable-werror.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./Makefile
-+++ ./Makefile
-@@ -1,6 +1,6 @@
- # jshon - command line JSON parsing
-
--CFLAGS := -std=c99 -Wall -pedantic -Wextra -Werror ${CFLAGS}
-+CFLAGS := -std=c99 -Wall -pedantic -Wextra ${CFLAGS}
- LDLIBS = -ljansson
- INSTALL=install
- DESTDIR?=/
diff --git a/testing/jshon/missing-typesh.patch b/testing/jshon/missing-typesh.patch
deleted file mode 100644
index d94c2a0ac0b..00000000000
--- a/testing/jshon/missing-typesh.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./jshon.c.orig
-+++ ./jshon.c
-@@ -5,6 +5,7 @@
- #include <stdlib.h>
- #include <sys/param.h>
- #include <sys/stat.h>
-+#include <sys/types.h>
- #include <unistd.h>
- #include <jansson.h>
- #include <errno.h>
diff --git a/testing/jsmn/APKBUILD b/testing/jsmn/APKBUILD
new file mode 100644
index 00000000000..2f3252f0a0d
--- /dev/null
+++ b/testing/jsmn/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=jsmn
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Small stream-oriented header-only JSON parser for C"
+url="https://github.com/zserge/jsmn"
+arch="noarch"
+license="MIT"
+source="https://github.com/zserge/jsmn/archive/v$pkgver/jsmn-v$pkgver.tar.gz"
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm644 jsmn.h "$pkgdir"/usr/include/jsmn.h
+}
+
+sha512sums="
+474fa44740a4fae8389534ad08fe0e11ed3ba54cbedbce39a720984da4d20a21176f6abd1633ff2601a9b19421fd2f88320151c520764b4b05f73ed8abda76aa jsmn-v1.1.0.tar.gz
+"
diff --git a/testing/json-c0.12/APKBUILD b/testing/json-c0.12/APKBUILD
deleted file mode 100644
index ced8d7bace7..00000000000
--- a/testing/json-c0.12/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=json-c0.12
-pkgver=0.12.1
-pkgrel=2
-pkgdesc="A JSON implementation in C"
-url="https://github.com/json-c/json-c/wiki"
-arch="all"
-license="MIT"
-makedepends=" autoconf automake libtool"
-subpackages="$pkgname-dev"
-replaces="json-c"
-source="https://s3.amazonaws.com/json-c_releases/releases/json-c-$pkgver.tar.gz
- "
-
-builddir="$srcdir"/json-c-$pkgver
-prepare() {
- default_prepare
- autoreconf -f -v -i
-}
-
-build() {
- export CFLAGS="$CFLAGS -Wno-error=unused-but-set-variable -Wno-error=implicit-fallthrough"
- ./configure --prefix=/usr \
- --build=$CBUILD \
- --host=$CHOST \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --enable-shared \
- --disable-static \
- ac_cv_func_malloc_0_nonnull=yes \
- ac_cv_func_realloc_0_nonnull=yes
- make -j1
-}
-
-check() {
- make USE_VALGRIND=0 check
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="038676a0ce815e5174161fbd4339524feadc294d517f732fb408ad6aa7c4906423451c13386107569d9f24746a1a101564ca511e92e8276c5bf5b8c022ca42ed json-c-0.12.1.tar.gz"
diff --git a/testing/json2tsv/APKBUILD b/testing/json2tsv/APKBUILD
new file mode 100644
index 00000000000..91b7bedfba9
--- /dev/null
+++ b/testing/json2tsv/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=json2tsv
+pkgver=1.1
+pkgrel=0
+pkgdesc="JSON to TSV converter"
+url="https://codemadness.org/json2tsv.html"
+arch="all"
+license="ISC"
+subpackages="$pkgname-doc $pkgname-jaq::noarch $pkgname-jaq-doc:jaq_doc"
+source="https://codemadness.org/releases/json2tsv/json2tsv-$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ make
+}
+
+package() {
+ make MANPREFIX=/usr/share/man PREFIX=/usr DESTDIR="$pkgdir" install
+
+ # conflicts with jaq package
+ mv "$pkgdir"/usr/bin/jaq "$pkgdir"/usr/bin/json2tsv-jaq
+ mv "$pkgdir"/usr/share/man/man1/jaq.1 "$pkgdir"/usr/share/man/man1/json2tsv-jaq.1
+ gzip -9n "$pkgdir"/usr/share/man/man1/*.1
+}
+
+jaq() {
+ pkgdesc="$pkgdesc (shellscript wrapper)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/json2tsv-jaq
+}
+
+doc() {
+ pkgdesc="$pkgdesc (documentation)"
+ install_if="docs $pkgname-jaq=$pkgver-r$pkgrel"
+
+ amove \
+ usr/share/man/man1/json2tsv.1* \
+ usr/share/doc
+}
+
+jaq_doc() {
+ pkgdesc="$pkgdesc (shellscript wrapper documentation)"
+ install_if="docs $pkgname-jaq=$pkgver-r$pkgrel"
+
+ amove usr/share/man/man1/json2tsv-jaq.1*
+}
+
+sha512sums="
+3166a32ad2ba09e1f54915322ccf68324c67486e5374045b2a70784dc4b97d7cc55af2d516cf4d011942fe18337005032cead10ddf8c7942cfb7c1af44294a8c json2tsv-1.1.tar.gz
+"
diff --git a/testing/jsonnet-bundler/APKBUILD b/testing/jsonnet-bundler/APKBUILD
new file mode 100644
index 00000000000..5da7e641f17
--- /dev/null
+++ b/testing/jsonnet-bundler/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=jsonnet-bundler
+pkgver=0.5.1
+pkgrel=12
+pkgdesc="Jsonnet package manager"
+url="https://github.com/jsonnet-bundler/jsonnet-bundler"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jsonnet-bundler/jsonnet-bundler/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o jb -ldflags "-X main.Version=v$pkgver" ./cmd/jb
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 jb -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+92432998b64571a141f869deaf2f01d65e963fb192db11724238dd178f815829fcf23a2809d2fd04b991530321bcca698cb6b1d4a6cd854336877d46b89b918b jsonnet-bundler-0.5.1.tar.gz
+"
diff --git a/testing/jsonnet-language-server/APKBUILD b/testing/jsonnet-language-server/APKBUILD
new file mode 100644
index 00000000000..f64b679d9ae
--- /dev/null
+++ b/testing/jsonnet-language-server/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=jsonnet-language-server
+pkgver=0.13.1
+pkgrel=2
+pkgdesc="Jsonnet language server"
+url="https://github.com/grafana/jsonnet-language-server"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/jsonnet-language-server/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.version=v$pkgver"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+4a3bd06a23c0606aa0d35a827001d390cb7a1fbfb4d4cd75a9e012ecbe2998ff9649489b5d3fdc48c7ce166f09a4ca97bce8d70e6ca46d6f6850bf689f2ffae5 jsonnet-language-server-0.13.1.tar.gz
+"
diff --git a/testing/junit2html/APKBUILD b/testing/junit2html/APKBUILD
new file mode 100644
index 00000000000..0b409bc8163
--- /dev/null
+++ b/testing/junit2html/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Charles Wimmer <charles@wimmer.net>
+# Maintainer: Charles Wimmer <charles@wimmer.net>
+pkgname=junit2html
+pkgver=0.2.0
+pkgrel=3
+pkgdesc="Simple self-contained python tool to produce a single html file from a single junit xml file"
+url="https://gitlab.com/inorton/junit2html"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+builddir="$srcdir/$pkgname-v$pkgver"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/inorton/junit2html/-/archive/v$pkgver/junit2html-v$pkgver.tar.gz
+ setup.py.patch
+ "
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py check
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+85902808752d299c9dd94e9158f4913b74f3b8c0639eb52a4ec32cc27774ef096072a3e18560a809f20a7c9ccc8d8ce8b107d6b6fd3d4e68ed51fbe2d90ce344 junit2html-0.2.0.tar.gz
+c3b5a80d3ff23cbf4391d4822ee841b216ec60bc9463d84b1c017a247295145ccdfa821a990dbf26c473e6055f7ef4b364f847628fb897a03d905d7ad0a7540b setup.py.patch
+"
diff --git a/testing/junit2html/setup.py.patch b/testing/junit2html/setup.py.patch
new file mode 100644
index 00000000000..5a90a8ae998
--- /dev/null
+++ b/testing/junit2html/setup.py.patch
@@ -0,0 +1,10 @@
+Command line program won't install without a space.
+---
+--- a/setup.py
++++ b/setup.py
+@@ -1,3 +1,3 @@
+-from distutils.core import setup
++from setuptools import setup
+
+ files = ["*.css"]
+
diff --git a/testing/jwt-cli/APKBUILD b/testing/jwt-cli/APKBUILD
new file mode 100644
index 00000000000..8b029d963d7
--- /dev/null
+++ b/testing/jwt-cli/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=jwt-cli
+pkgver=6.0.0
+pkgrel=0
+pkgdesc="Super fast CLI tool to decode and encode JWTs"
+url="https://github.com/mike-engel/jwt-cli"
+# blocked by ring crate
+arch="all !s390x !ppc64le !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mike-engel/jwt-cli/archive/refs/tags/$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/jwt -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2d0b7dfd98bc16448d1bd67763d7deea4be6ad5069134deacf6a3dcd5c64cf88f7b01fe09bdb03fc80845889706e3e172755b054f349a4c0141adafcd4458943 jwt-cli-6.0.0.tar.gz
+"
diff --git a/testing/k2/APKBUILD b/testing/k2/APKBUILD
new file mode 100644
index 00000000000..f1b1216193f
--- /dev/null
+++ b/testing/k2/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=k2
+pkgver=0_git20220807
+_commit="45fbcc2aede0af9b829547e1390c48adee57e8e3"
+pkgrel=1
+pkgdesc="Chess engine with UCI and Xboard interface"
+url="https://github.com/serg-meus/k2"
+arch="all"
+license="GPL-2.0-only"
+options="!check" # no test suite
+makedepends="qt5-qtbase-dev" # qmake
+source="https://github.com/serg-meus/k2/archive/$_commit.tar.gz"
+builddir="$srcdir/k2-$_commit"
+
+build() {
+ qmake-qt5
+ make -e
+}
+
+package() {
+ install -Dm755 k2 -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+eb69aab7a68ee82faaf3c275b92ae0cfee75d0d869f154b1fc85eb7c08b580f49f88d3d7ff9add8018626b54ea2360da0d9407b427e15db4c0cd23efb721dc48 45fbcc2aede0af9b829547e1390c48adee57e8e3.tar.gz
+"
diff --git a/testing/k3s/APKBUILD b/testing/k3s/APKBUILD
deleted file mode 100644
index 0600d687c2a..00000000000
--- a/testing/k3s/APKBUILD
+++ /dev/null
@@ -1,73 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=k3s
-_pkgver=1.18.3+k3s1
-pkgver=${_pkgver/+k3s/.}
-pkgrel=0
-pkgdesc="Lightweight Kubernetes. 5 less than k8s."
-url="https://k3s.io"
-arch="all !mips !mips64"
-license="Apache-2.0"
-options="chmod-clean !check" # No test suite from upstream
-depends="cni-plugins conntrack-tools containerd coreutils dbus findutils ipset iptables"
-makedepends="go linux-headers"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rancher/k3s/archive/v$_pkgver.tar.gz
- k3s.confd
- k3s.initd
- k3s.logrotate
- k3s.modules-load
- "
-builddir="$srcdir/src/github.com/rancher/$pkgname"
-
-# secfixes:
-# 1.18.3.1-r0:
-# - CVE-2020-10749
-# - CVE-2020-8555
-# 0.8.1-r0:
-# - CVE-2019-9512
-# - CVE-2019-9514
-# 0.8.0-r0:
-# - CVE-2019-11247
-# - CVE-2019-11249
-
-prepare() {
- export GOPATH="$srcdir"
-
- mkdir -p "$(dirname $builddir)"
- mv "$srcdir"/$pkgname-${_pkgver/+/-} "$builddir"/
-
- default_prepare
-}
-
-build() {
- msg2 "Prepare GOPATH and GOBIN..."
- export GOPATH="$srcdir"
- export GOBIN="$GOPATH/bin"
-
- msg2 "Building k3s..."
- go build -o k3s
-
- msg2 "Building kubectl..."
- go build -o kubectl ./cmd/kubectl
-}
-
-package() {
- install -m755 -D k3s \
- "$pkgdir"/usr/bin/k3s
- install -m755 -D kubectl \
- "$pkgdir"/usr/bin/kubectl
-
- install -m644 -D -t "$pkgdir"/usr/share/doc/$pkgname README.md
-
- install -m755 -D "$srcdir"/k3s.initd "$pkgdir"/etc/init.d/k3s
- install -m644 -D "$srcdir"/k3s.confd "$pkgdir"/etc/conf.d/k3s
- install -m644 -D "$srcdir"/k3s.logrotate "$pkgdir"/etc/logrotate.d/k3s
- install -m644 -D "$srcdir"/k3s.modules-load "$pkgdir"/etc/modules-load.d/k3s.conf
-}
-
-sha512sums="0174fab855c28605a17d27f49606ca9847bc2b026421ef91c2b7f4c249d6ba40bbf1901320c629d7397ef7781545bf01ccd1fcfe477083b3860f8d72a191568c k3s-1.18.3.1.tar.gz
-134ff1f61c3dda3f5085387869db2873ad5e9a17c1080a3600d37ff48058e79cbcbea3df051c903c1d2e3ff0756dbfa54aa9ec4274b8c91db25912ff64e5357e k3s.confd
-cff8db85337dd6b8a5126ea2c498fec09bc11cfdb856069ca78218cb5e58ce0c4c42a239e1d26bac9893f64ecc81fbdff64f7f937a960475b6298caafca0b36d k3s.initd
-018a5e9b417a937c17f0a4a9e08eed434f06186207626ad038aec22ee667aba4cefa6e9e2a222e2c430d2cbb88c8663648f5bab0e76926a0edd13b8bdfd2673a k3s.logrotate
-85ee1310cb36c85c42b4068a9549a3ef72b856cd61b2c1036c3e871ef43a69ed80b43599ad94ce5b069ddd823e730596bb3d3875d4ba8cd77c4cc1985335ffff k3s.modules-load"
diff --git a/testing/k3s/k3s.confd b/testing/k3s/k3s.confd
deleted file mode 100644
index a92607d2917..00000000000
--- a/testing/k3s/k3s.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-# k3s options
-export PATH="/usr/share/cni-plugins/bin/:$PATH"
-K3S_EXEC="server"
-K3S_OPTS=""
diff --git a/testing/k3s/k3s.initd b/testing/k3s/k3s.initd
deleted file mode 100644
index 756fe03ca18..00000000000
--- a/testing/k3s/k3s.initd
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/sbin/openrc-run
-
-# Based on ...
-# https://raw.githubusercontent.com/rancher/k3s/master/install.sh
-K3S_LOGFILE="${K3S_LOGFILE:-/var/log/${RC_SVCNAME}.log}"
-
-supervisor=supervise-daemon
-
-name="k3s"
-command="/usr/bin/k3s"
-command_args="${K3S_EXEC} ${K3S_OPTS} >>${K3S_LOGFILE} 2>&1"
-
-output_log=${K3S_LOGFILE}
-error_log=${K3S_LOGFILE}
-
-pidfile="/run/k3s.pid"
-respawn_delay=5
-
-rc_ulimit="${K3S_ULIMIT:--c unlimited -n 1048576 -u unlimited}"
-
-depend() {
- need net cgroups dbus
- after firewall
-}
-
-start_pre() {
- checkpath -f -m 0644 -o root:root "${K3S_LOGFILE}"
-}
diff --git a/testing/k3s/k3s.logrotate b/testing/k3s/k3s.logrotate
deleted file mode 100644
index e1afda91175..00000000000
--- a/testing/k3s/k3s.logrotate
+++ /dev/null
@@ -1,11 +0,0 @@
-# Restart as there's no way to signal k3s to re-open log file
-# https://github.com/OpenRC/openrc/issues/341
-# https://github.com/rancher/k3os/issues/433
-/var/log/k3s.log {
- missingok
- notifempty
- sharedscripts
- postrotate
- /etc/init.d/k3s --quiet --ifstarted restart || true
- endscript
-}
diff --git a/testing/k3s/k3s.modules-load b/testing/k3s/k3s.modules-load
deleted file mode 100644
index 8af7ef29632..00000000000
--- a/testing/k3s/k3s.modules-load
+++ /dev/null
@@ -1,2 +0,0 @@
-br_netfilter
-overlay
diff --git a/testing/k3sup/APKBUILD b/testing/k3sup/APKBUILD
new file mode 100644
index 00000000000..9dff8818a80
--- /dev/null
+++ b/testing/k3sup/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=k3sup
+pkgver=0.13.5
+pkgrel=2
+pkgdesc="A light-weight utility to get from zero to KUBECONFIG with k3s"
+url="https://k3sup.dev/"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/alexellis/k3sup/archive/refs/tags/$pkgver/k3sup-$pkgver.tar.gz"
+
+# secfixes:
+# 0.13.4-r0:
+# - CVE-2023-48795
+
+prepare() {
+ default_prepare
+
+ mkdir -p bin/
+}
+
+build() {
+ go build -a \
+ -ldflags "-X github.com/alexellis/k3sup/cmd.Version=$pkgver" \
+ -o bin/k3sup
+
+ for i in bash fish zsh; do
+ ./bin/k3sup completion "$i" > "$builddir"/k3sup.$i
+ done
+}
+
+check() {
+ # shellcheck disable=SC2046
+ go test $(go list ./... | grep -v /vendor/ | xargs) -cover
+}
+
+package() {
+ install -Dm755 bin/k3sup "$pkgdir"/usr/bin/k3sup
+
+ install -Dm644 "$builddir"/$pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 "$builddir"/$pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 "$builddir"/$pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+4172da9d9b15a63e27a0bb6f41b32e6c82af3ce9e0d45c9989fb82ee97f087c2b80e21c6201134152adef235651ba61be900ea2544864e33b748bfcd46a93e8f k3sup-0.13.5.tar.gz
+"
diff --git a/testing/kabmat/APKBUILD b/testing/kabmat/APKBUILD
new file mode 100644
index 00000000000..685ff42b1ef
--- /dev/null
+++ b/testing/kabmat/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=kabmat
+pkgver=2.7.0
+pkgrel=0
+pkgdesc="TUI program for managing kanban boards with vim-like keybindings"
+url="https://github.com/PlankCipher/kabmat"
+arch="all"
+license="GPL-3.0-only"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/PlankCipher/kabmat/archive/v$pkgver.tar.gz
+ makefile.patch
+ "
+options="!check" # No test defined upstream
+
+build() {
+ # extremely broken project that passes 'cflags' to cxx and also ignores everything by default
+ make CFLAGS="-std=c++17 $CFLAGS $CXXFLAGS $LDFLAGS"
+}
+
+package() {
+ make PREFIX="/usr" DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+22bf8fde34d705ceac71ccb54c0f9a5a10be7716b49aecea38b70de595c2350ffbe3126cc6a2c12cd651f74be51783c262c7ec0bc94810872aa470305898e76f kabmat-2.7.0.tar.gz
+9c7909c857fa9b69ae1e4399c51e9b56a3fd4ad4191ae8b9131e2c70c141aa9fc4e180736402d5392ee553f906b26dbb56cf376084361ee64d07d411f2d6d5e9 makefile.patch
+"
diff --git a/testing/kabmat/makefile.patch b/testing/kabmat/makefile.patch
new file mode 100644
index 00000000000..4c38c6d9f81
--- /dev/null
+++ b/testing/kabmat/makefile.patch
@@ -0,0 +1,43 @@
+diff --git a/Makefile b/Makefile
+index 611b1c3..4f796dd 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,18 @@
++# Common prefix for installation directories, following GNU conventions.
++# See https://www.gnu.org/prep/standards/html_node/Directory-Variables.html for details.
++
++# Installation prefix
++PREFIX = /usr/local
++DATAROOTDIR = $(PREFIX)/share
++
++# Where to put the executable.
++BINDIR = $(PREFIX)/bin
++# Where to put the manual pages.
++MANDIR = $(DATAROOTDIR)/man
++
+ TARGET = kabmat
+ SRC_DIR = src
+ BUILD_DIR = bin
+-INSTALL_DIR = /usr/bin/
+ DATA_DIR = ~/.local/share/kabmat
+
+ CFLAGS = -std=c++17 -Wall -Wextra
+@@ -31,7 +42,14 @@ clean:
+
+ .PHONY: install
+ install:
+- $(MAKE)
+- sudo cp ./$(TARGET) $(INSTALL_DIR)
+- sudo mkdir -p /usr/local/man/man1
+- sudo cp ./doc/kabmat.1 /usr/local/man/man1/
++ mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1
++ cp ./$(TARGET) $(DESTDIR)$(BINDIR)
++ chmod 0755 $(DESTDIR)$(BINDIR)/$(TARGET)
++ cp ./doc/kabmat.1 $(DESTDIR)$(MANDIR)/man1
++ chmod 0644 $(DESTDIR)$(MANDIR)/man1/kabmat.1
++ $(MAKE) clean
++
++.PHONY: uninstall
++uninstall:
++ rm $(DESTDIR)$(BINDIR)/$(TARGET)
++ rm $(DESTDIR)$(MANDIR)/man1/kabmat.1
diff --git a/testing/kak-lsp/APKBUILD b/testing/kak-lsp/APKBUILD
new file mode 100644
index 00000000000..d7e9016388b
--- /dev/null
+++ b/testing/kak-lsp/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Siva Mahadevan <me@svmhdvn.name>
+# Maintainer: Siva Mahadevan <me@svmhdvn.name>
+pkgname=kak-lsp
+pkgver=15.0.1
+pkgrel=0
+pkgdesc="Language Server Protocol client for Kakoune implemented in Rust"
+url="https://github.com/kak-lsp/kak-lsp"
+arch="all !s390x !riscv64" # limited by cargo
+license="Unlicense OR MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kak-lsp/kak-lsp/archive/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 "target/release/$pkgname" "$pkgdir/usr/bin/$pkgname"
+}
+
+sha512sums="
+46e3d054e30be698a58b23fa5818cc29ebee6ddacdd7189af23a2faa20151bde779bd556034d668f50127ee0cd023b5ad6582c4fedfd22b6d7e40fa0dd928b13 kak-lsp-15.0.1.tar.gz
+"
diff --git a/testing/kakoune/APKBUILD b/testing/kakoune/APKBUILD
deleted file mode 100644
index 023e8b377f0..00000000000
--- a/testing/kakoune/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Jakub Skrzypnik <j.skrzypnik@openmailbox.org>
-pkgname=kakoune
-pkgver=2020.01.16
-pkgrel=0
-pkgdesc="Code editor heavily inspired by Vim, but with less keystrokes"
-url="http://kakoune.org"
-arch="all"
-license="Unlicense"
-makedepends="ncurses-dev asciidoc"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mawww/kakoune/archive/v$pkgver.tar.gz
- alpine-linux.kak
- "
-
-builddir="$srcdir/$pkgname-$pkgver/src"
-build() {
- make debug=no
-}
-
-check() {
- make check
-}
-
-package() {
- make PREFIX="/usr" DESTDIR="$pkgdir/" debug=no install
- install -Dm644 $srcdir/alpine-linux.kak $pkgdir/usr/share/kak/autoload/filetype/
-}
-
-sha512sums="81a0fb522fd7f289ede36f966e815d03550df389b05d27fa430474dd55a90cc0e1c5231e660328040f3bd79d155d37b7b135b52b93cee536c15d13fc9d06baa0 kakoune-2020.01.16.tar.gz
-c5b11dc28adf785b4e83637fe1d5c9db334616d2d3f6c667823745e273f739c57d0d408b9bec8a65210e3c7ccb80a5b488ebbb3c0c5de8bdec13e1b4b4d02b77 alpine-linux.kak"
diff --git a/testing/kakoune/alpine-linux.kak b/testing/kakoune/alpine-linux.kak
deleted file mode 100644
index 7e061926eb6..00000000000
--- a/testing/kakoune/alpine-linux.kak
+++ /dev/null
@@ -1,4 +0,0 @@
-# package build description file
-hook global BufCreate (.*/)?APKBUILD %{
- set-option buffer filetype sh
-}
diff --git a/testing/kanister-tools/APKBUILD b/testing/kanister-tools/APKBUILD
new file mode 100644
index 00000000000..07e4536b58b
--- /dev/null
+++ b/testing/kanister-tools/APKBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kanister-tools
+pkgver=0.105.0
+pkgrel=2
+pkgdesc="CLI tools for application-level data management on Kubernetes"
+url="https://kanister.io/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/kanisterio/kanister/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/kanister-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X github.com/kanisterio/kanister/pkg/version.VERSION=$pkgver
+ -X github.com/kanisterio/kanister/pkg/version.GIT_COMMIT=AlpineLinux
+ -X github.com/kanisterio/kanister/pkg/version.BUILD_DATE=$(date -u "+%Y-%m-%dT%TZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+ for binary in kanctl kando; do
+ go build -v -o $binary \
+ -ldflags "$_goldflags" \
+ ./cmd/$binary
+
+ for shell in bash fish zsh; do
+ ./$binary completion $shell > $binary.$shell
+ done
+ done
+}
+
+check() {
+ # Only run tests for the built binaries.
+ # Some of the other tests require a Kubernetes cluster to run
+ for binary in kanctl kando; do
+ go test ./pkg/$binary/...
+ done
+}
+
+package() {
+ for binary in kanctl kando; do
+ install -Dm755 $binary -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $binary.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$binary
+ install -Dm644 $binary.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$binary.fish
+ install -Dm644 $binary.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$binary
+ done
+}
+
+sha512sums="
+ed11dbf2049d864bac41fd774150e0f44645aab8ff4edc4399465342099ab5eb7fd25a3c78d3b5174c0c6a445b7a35b4c50ecbf371fc668fd2e11f90c22468a6 kanister-tools-0.105.0.tar.gz
+"
diff --git a/testing/kannel/APKBUILD b/testing/kannel/APKBUILD
index ff427f5fb2a..cceeeec2fce 100644
--- a/testing/kannel/APKBUILD
+++ b/testing/kannel/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer:
pkgname=kannel
pkgver=1.5.0
-pkgrel=8
+pkgrel=11
pkgdesc="Opensource WAP/SMS Gateway"
url="https://www.kannel.org/"
arch="all"
license="custom"
-depends_dev="libxml2-dev mariadb-connector-c-dev postgresql-dev pcre-dev sqlite-dev"
+depends_dev="libxml2-dev mariadb-connector-c-dev libpq-dev pcre-dev sqlite-dev"
makedepends="$depends_dev"
subpackages="$pkgname-dev $pkgname-doc"
source="http://www.kannel.org/download/$pkgver/gateway-$pkgver.tar.bz2
@@ -19,13 +19,16 @@ source="http://www.kannel.org/download/$pkgver/gateway-$pkgver.tar.bz2
fix-arm-build.patch
kannel-1.5.0-custom-wap-ports.patch
mariadb.patch
+ gcc-10.patch
"
builddir="$srcdir"/gateway-$pkgver
prepare() {
default_prepare
+
update_config_guess
+ update_config_sub
}
build() {
@@ -45,15 +48,16 @@ package() {
make DESTDIR=$pkgdir install
make DESTDIR=$pkgdir install-test
mkdir -p $pkgdir/var/log/kannel/
- install -Dm755 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname.initd
install -Dm755 "$srcdir"/$pkgname-bearerbox.initd "$pkgdir"/etc/init.d/$pkgname-bearerbox.initd
install -Dm755 "$srcdir"/$pkgname-wapbox.initd "$pkgdir"/etc/init.d/$pkgname-wapbox.initd
install -Dm755 "$srcdir"/$pkgname-smsbox.initd "$pkgdir"/etc/init.d/$pkgname-smsbox.initd
- install -D -m 644 LICENSE $pkgdir/usr/share/licenses/$pkgname/COPYING
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="dff990a6856e23bd4c88f993f8a1973b35b02e7408410e228710611cb0fc4c70899bed3703e811c39af24e968fbe3b8e9c4eeac4f76dd68d8caa5287012fa289 gateway-1.5.0.tar.bz2
+sha512sums="
+dff990a6856e23bd4c88f993f8a1973b35b02e7408410e228710611cb0fc4c70899bed3703e811c39af24e968fbe3b8e9c4eeac4f76dd68d8caa5287012fa289 gateway-1.5.0.tar.bz2
aff82592ed5f5ef0af00e04a6f1013f1601141ce00d0c5c281d394661f9ffe332745bc825cc4873286ad69580ae6a8067c6ee0840e8683904e74defcf8cfa16e kannel-bearerbox.initd
673ea6a0c30474c94ca04b79b558a68c91a79510d7b31d380c206f3b283a73d5bbe188d62769d748247c708af5eee01ceba343db70d52718c8a035fdd5ea863a kannel-smsbox.initd
a64dfbbb1382e0494354efcc4d549c186a5f0c492ea2a064a20355369972e00a023bdade4bcb3262b33e4c3ebdf259f0aaea552fb3d6e1e3b4999fedf495af7a kannel-wapbox.initd
@@ -61,4 +65,6 @@ e76c98a276953562ef05c23209270551fe431618ca83f90f557d510dd78f512e9844f9431f89ca7a
042840638cc5166cf6a76d76c7b6c96aa3c77648a50f4e316195d564fde47a9ad3d6b66d5283175f8f2053171ae785772609b49f8db88579a0bfcda757ecbe0a kannel.confd
41a7e7ab2b28eff87dffe878da0c645c77dc5de53f8811db8800d8f243681cb02fbf653b1b467ce19740101760cdeb7132ed555af6c6803ef740f805b0d559eb fix-arm-build.patch
cd71a435feadb43533ed06cf0a1f9e556131f5339951cc1971c9ebf922a5e028b390af978441d7d3fde68022f9c67fe3af69be737d9952614486613f7ba29d23 kannel-1.5.0-custom-wap-ports.patch
-5a77ff1424bfe9d23929c156a972d56b3f5bd1ad97b67ba096449916612375e3a80745b564664ed9b009555ffb4a21ce300aea63938a4c6564f758a1e1c69b05 mariadb.patch"
+5a77ff1424bfe9d23929c156a972d56b3f5bd1ad97b67ba096449916612375e3a80745b564664ed9b009555ffb4a21ce300aea63938a4c6564f758a1e1c69b05 mariadb.patch
+bb86e1cb40cada5549c0ad9cb1dc240098df1addf6cf2270cec01594f3dbe36f6a48013aef7a796fdbdf4b04e1f00ca3026f10a3e708e739c47cb9be5d5fc92d gcc-10.patch
+"
diff --git a/testing/kannel/gcc-10.patch b/testing/kannel/gcc-10.patch
new file mode 100644
index 00000000000..add65e2a915
--- /dev/null
+++ b/testing/kannel/gcc-10.patch
@@ -0,0 +1,30 @@
+diff -upr gateway-1.5.0.orig/gw/wap_push_ota.c gateway-1.5.0/gw/wap_push_ota.c
+--- gateway-1.5.0.orig/gw/wap_push_ota.c 2021-07-23 22:35:34.588435112 +0200
++++ gateway-1.5.0/gw/wap_push_ota.c 2021-07-23 22:36:18.868435897 +0200
+@@ -113,8 +113,8 @@ static BearerboxAddress *bearerbox = NUL
+
+ static List *ota_queue = NULL;
+
+-wap_dispatch_func_t *dispatch_to_wsp;
+-wap_dispatch_func_t *dispatch_to_wsp_unit;
++static wap_dispatch_func_t *dispatch_to_wsp;
++static wap_dispatch_func_t *dispatch_to_wsp_unit;
+
+ /**************************************************************************
+ *
+diff -upr gateway-1.5.0.orig/wap/wtp_resp.c gateway-1.5.0/wap/wtp_resp.c
+--- gateway-1.5.0.orig/wap/wtp_resp.c 2021-07-23 22:35:34.551768355 +0200
++++ gateway-1.5.0/wap/wtp_resp.c 2021-07-23 22:35:50.038440800 +0200
+@@ -96,9 +96,9 @@ static Counter *resp_machine_id_counter
+ static enum { limbo, running, terminating } resp_run_status = limbo;
+
+
+-wap_dispatch_func_t *dispatch_to_wdp;
+-wap_dispatch_func_t *dispatch_to_wsp;
+-wap_dispatch_func_t *dispatch_to_push;
++static wap_dispatch_func_t *dispatch_to_wdp;
++static wap_dispatch_func_t *dispatch_to_wsp;
++static wap_dispatch_func_t *dispatch_to_push;
+
+ /*
+ * Queue of events to be handled by WTP responder.
diff --git a/testing/kapow/APKBUILD b/testing/kapow/APKBUILD
new file mode 100644
index 00000000000..40be1588db4
--- /dev/null
+++ b/testing/kapow/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=kapow
+pkgver=0.7.1
+pkgrel=5
+pkgdesc="turn shell commands into HTTP API"
+url="https://kapow.readthedocs.io/en/stable/"
+license="Apache-2.0"
+arch="all"
+makedepends="go"
+source="https://github.com/BBVA/kapow/archive/v$pkgver/kapow-$pkgver.tar.gz
+ fix-cgo.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make build
+}
+
+#check() {
+# make test
+#}
+
+package() {
+ install -Dm755 build/kapow "$pkgdir"/usr/bin/kapow
+}
+
+sha512sums="
+823a184bc988fde3e5680728438b5c2af2e2f15b4fde27768b0ae269bd04193252bbc23d295106d686055e6c54f2ab1f2d727e342b7e0774ab3b188b147e0301 kapow-0.7.1.tar.gz
+f0fcc64df68757fe9e9625411627d71468b05859f53828bc4708fbd87cac1aa24819ea14b79864d23fe4e4b9f89a8d5c728d158ac625b9eee7b2cdafef6c9d29 fix-cgo.patch
+"
diff --git a/testing/kapow/fix-cgo.patch b/testing/kapow/fix-cgo.patch
new file mode 100644
index 00000000000..b7d1d590d15
--- /dev/null
+++ b/testing/kapow/fix-cgo.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@
+
+ build: deps
+ mkdir -p $(BUILD_DIR)
+- CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_DIR)/$(BINARY_NAME) -v
++ $(GOBUILD) -o $(BUILD_DIR)/$(BINARY_NAME) -v
+
+ test: build jaillover
+ $(GOTEST) -v -coverprofile=$(TMP_DIR)/c.out ./...
diff --git a/testing/katana/APKBUILD b/testing/katana/APKBUILD
new file mode 100644
index 00000000000..4f25da1dbe9
--- /dev/null
+++ b/testing/katana/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=katana
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Next-generation crawling and spidering framework"
+url="https://github.com/projectdiscovery/katana"
+arch="all"
+license="MIT"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/projectdiscovery/katana/archive/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -mod=readonly \
+ -ldflags "-extldflags \"$LDFLAGS\"" \
+ -o "$pkgname" \
+ -v "./cmd/$pkgname/main.go"
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 "$pkgname" -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+46b6586d9f3433a0b67e548dbb2c74b96be1f162db35f139cd628873608a8bf0052f6bd265503b02530d08bc29c6986ca30d545d229ad748eacd1ca89e300a88 katana-1.1.0.tar.gz
+"
diff --git a/testing/katarakt/APKBUILD b/testing/katarakt/APKBUILD
new file mode 100644
index 00000000000..9629472c7fb
--- /dev/null
+++ b/testing/katarakt/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=katarakt
+pkgver=0.2
+pkgrel=0
+pkgdesc="Simple PDF viewer"
+url="https://gitlab.cs.fau.de/Qui_Sum/katarakt"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ poppler-qt5-dev
+ qt5-qtbase-dev
+ "
+source="https://gitlab.cs.fau.de/Qui_Sum/katarakt/-/archive/v$pkgver/katarakt-v$pkgver.tar.gz"
+options="!check" # no test suite
+builddir="$srcdir/$pkgname-v$pkgver/"
+
+build() {
+ qmake-qt5 \
+ PREFIX=/usr \
+ QT_INSTALL_PREFIX=/usr \
+ CONFIG+=no_qt_rpath
+ make
+}
+
+package() {
+ install -Dm755 katarakt "$pkgdir"/usr/bin/katarakt
+}
+
+sha512sums="
+a07054e0e9915f6239b8149bbd08c8b5ec095b0e9ffb54e03761ad9e59914f66166e4b8359298721a6b46c2bcf5114f40ad117c4826a32660c1fba28f69b8e68 katarakt-v0.2.tar.gz
+"
diff --git a/testing/kblocks/APKBUILD b/testing/kblocks/APKBUILD
deleted file mode 100644
index 217f9302b91..00000000000
--- a/testing/kblocks/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kblocks
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kblocks/"
-pkgdesc="The classic falling blocks game"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev kcrash-dev kdoctools-dev kdbusaddons-dev ki18n-dev kwidgetsaddons-dev kxmlgui-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kblocks-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="e16b90b2035df17392b6ce7a444e7c996778aab78d80015cd3594b88d7d19603d6f7b97cdc8819858338448c8ae8434d74181bf94e3e329d700ec7f39c8e4b41 kblocks-20.04.1.tar.xz"
diff --git a/testing/kblog/APKBUILD b/testing/kblog/APKBUILD
deleted file mode 100644
index 1bf835b0939..00000000000
--- a/testing/kblog/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kblog
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kontact.kde.org/"
-pkgdesc="A blogging library for KDE"
-license="GPL-2.0-or-later"
-depends_dev="qt5-qtbase-dev kcoreaddons-dev kio-dev ki18n-dev kcalendarcore-dev syndication-dev kxmlrpcclient-dev"
-makedepends="$depends_dev extra-cmake-modules"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kblog-$pkgver.tar.xz"
-subpackages="$pkgname-dev $pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="a99b2113570ae3e45ea9f34b7921b27274c9e116c23a1490c392ffb1d4870cfaccc69b1e9798c609d6b4207e057d4856f85dbb17442d27fed1312762a6dbdb8e kblog-20.04.1.tar.xz"
diff --git a/testing/kbounce/APKBUILD b/testing/kbounce/APKBUILD
deleted file mode 100644
index 626d978d68c..00000000000
--- a/testing/kbounce/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kbounce
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kbounce/"
-pkgdesc="A single player arcade game with the elements of puzzle"
-license="GPL-2.0-or-later AND LGPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kcoreaddons-dev kconfig-dev kcrash-dev kwidgetsaddons-dev kdbusaddons-dev ki18n-dev kconfigwidgets-dev kcompletion-dev kxmlgui-dev kio-dev kdoctools-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kbounce-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="78ae8e10702c7c464da5c736c056353150dca9ea18607b852d799680072cabbc116871977caaf1893cf00b8164842cd9c8583eb305c13f7b4027aa00ebad2f40 kbounce-20.04.1.tar.xz"
diff --git a/testing/kbreakout/APKBUILD b/testing/kbreakout/APKBUILD
deleted file mode 100644
index fb81d061317..00000000000
--- a/testing/kbreakout/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kbreakout
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kbreakout/"
-pkgdesc="A Breakout-like game"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev kcoreaddons-dev kconfig-dev kcrash-dev kwidgetsaddons-dev kdbusaddons-dev ki18n-dev kconfigwidgets-dev kxmlgui-dev kdoctools-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kbreakout-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="a7a1cfd626db43fa645316dc40a521231e0925b5b44340aa0ebe3bb1e3140d764fed05e73cd8c4a8e981f30b044255041ec564662303220190b57f650cf9a3e4 kbreakout-20.04.1.tar.xz"
diff --git a/testing/kbs2/APKBUILD b/testing/kbs2/APKBUILD
new file mode 100644
index 00000000000..b2e1a8795fc
--- /dev/null
+++ b/testing/kbs2/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer:
+pkgname=kbs2
+pkgver=0.7.2
+pkgrel=3
+pkgdesc="Secret manager backed by age"
+url="https://github.com/woodruffw/kbs2"
+arch="all !s390x !riscv64" # blocked by cargo
+license="MIT"
+makedepends="cargo python3 cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/woodruffw/kbs2/archive/refs/tags/v$pkgver.tar.gz
+ cargo-update-libc-lfs64.patch
+ "
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+
+ ./target/release/kbs2 --completions bash > kbs2.bash
+ ./target/release/kbs2 --completions fish > kbs2.fish
+ ./target/release/kbs2 --completions zsh > kbs2.zsh
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 "$builddir"/target/release/kbs2 \
+ "$pkgdir"/usr/bin/kbs2
+ install -Dm644 "$builddir"/kbs2.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/kbs2
+ install -Dm644 "$builddir"/kbs2.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/kbs2.fish
+ install -Dm644 "$builddir"/kbs2.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_kbs2
+}
+
+sha512sums="
+9d74dfaa17702a44e20332618aa094e52899a1f27a6af35a65ef928f62d5dc0bebe1a8ed20618a89b8ae468d47cb6ef4608d538ec4d5b317f6f5d9338cf8b2b7 kbs2-0.7.2.tar.gz
+8df79f751501a7c9ac85bd75c3c901113fb8e19d422b1074f7bde1d1503f23835a6b80a43f39999aac5f7099ebe24437fd90d66b20b9e9b355a65d774d206a43 cargo-update-libc-lfs64.patch
+"
diff --git a/testing/kbs2/cargo-update-libc-lfs64.patch b/testing/kbs2/cargo-update-libc-lfs64.patch
new file mode 100644
index 00000000000..c1db0f7c95c
--- /dev/null
+++ b/testing/kbs2/cargo-update-libc-lfs64.patch
@@ -0,0 +1,16 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index b008628..b3e623e 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -990,9 +990,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.139"
++version = "0.2.147"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
++checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+
+ [[package]]
+ name = "linux-raw-sys"
diff --git a/testing/kcgi/APKBUILD b/testing/kcgi/APKBUILD
deleted file mode 100644
index d4d537ec05a..00000000000
--- a/testing/kcgi/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=kcgi
-pkgver=0.10.18
-_pkgver=${pkgver//./_}
-pkgrel=0
-pkgdesc="CGI and FastCGI library for C/C++ web applications"
-url="https://kristaps.bsd.lv/kcgi"
-arch="all"
-license="ISC"
-makedepends="bmake"
-checkdepends="curl-dev"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kristapsdz/kcgi/archive/VERSION_$_pkgver.tar.gz"
-builddir="$srcdir/kcgi-VERSION_$_pkgver"
-
-build() {
- ./configure PREFIX=/usr MANDIR=/usr/share/man SBINDIR=/usr/sbin
- bmake
-}
-
-check() {
- bmake regress
-}
-
-package() {
- bmake DESTDIR="$pkgdir" install
-}
-
-sha512sums="587c70b3dc9b710e4eb270ae0905b7684e95d5f0df63d078e3266f62791c2ed0e8009e47afac538e34188d7b64466d48c07e056e76f33fef1df1e308ba866deb kcgi-0.10.18.tar.gz"
diff --git a/testing/kdeedu-data/APKBUILD b/testing/kdeedu-data/APKBUILD
deleted file mode 100644
index 34f396e8849..00000000000
--- a/testing/kdeedu-data/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kdeedu-data
-pkgver=20.04.1
-pkgrel=0
-arch="noarch !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/education"
-pkgdesc="Common data for KDE Edu applications"
-license="GPL-2.0-only"
-makedepends="extra-cmake-modules"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kdeedu-data-$pkgver.tar.xz"
-options="!check" # No code to test"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="dee3a3566eba452421c24900dfa1fdeddd31d14c036c70d5c693a12130a30c0840268e7bac71074d28cbcb278d9e00d7b98eef74f30a3e6dc6483d23e135658a kdeedu-data-20.04.1.tar.xz"
diff --git a/testing/kdegraphics-mobipocket/APKBUILD b/testing/kdegraphics-mobipocket/APKBUILD
deleted file mode 100644
index a6be482c8bf..00000000000
--- a/testing/kdegraphics-mobipocket/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kdegraphics-mobipocket
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="A collection of plugins to handle mobipocket files"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://www.kde.org/applications/graphics/"
-license="GPL-2.0-or-later"
-depends_dev="qt5-qtbase-dev kio-dev"
-makedepends="$depends_dev extra-cmake-modules"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kdegraphics-mobipocket-$pkgver.tar.xz"
-subpackages="$pkgname-dev"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="3aa3b87d4498a1fecd756674f0a916b95765339b0f60cde4c02fa59b6472fdccd2c2bd53ddcfc9f9f54fc60172455ae267f7120b860ca1b47ae153ec100624bd kdegraphics-mobipocket-20.04.1.tar.xz"
diff --git a/testing/kdegraphics-thumbnailers/APKBUILD b/testing/kdegraphics-thumbnailers/APKBUILD
deleted file mode 100644
index ecebceab467..00000000000
--- a/testing/kdegraphics-thumbnailers/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kdegraphics-thumbnailers
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="Thumbnailers for various graphics file formats"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://www.kde.org/applications/graphics/"
-license="GPL-2.0-or-later AND LGPL-2.0-or-later"
-makedepends="$depends_dev extra-cmake-modules qt5-qtbase-dev kio-dev karchive-dev libkexiv2-dev libkdcraw-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kdegraphics-thumbnailers-$pkgver.tar.xz"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="cba5ecac31b561931a77ccc63e274e4b03b4a2b6cc71d2a149fda378ab7f394291c624af89ae71e56e9bac6483af88589f6ba5d420e8e453d19fe394961652d6 kdegraphics-thumbnailers-20.04.1.tar.xz"
diff --git a/testing/kdevelop-python/APKBUILD b/testing/kdevelop-python/APKBUILD
deleted file mode 100644
index e756ff66fde..00000000000
--- a/testing/kdevelop-python/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kdevelop-python
-pkgver=5.5.1
-pkgrel=0
-pkgdesc="Python language and documentation plugin for KDevelop"
-url="https://www.kdevelop.org/"
-arch="all !armhf !ppc64le !s390x !mips !mips64" # Blocked by kdevelop -> qt5-qtwebengine
-license="LGPL-2.0-or-later"
-depends="python3"
-makedepends="extra-cmake-modules qt5-qtbase-dev ki18n-dev threadweaver-dev ktexteditor-dev kdevelop-dev python3-dev"
-checkdepends="xvfb-run"
-source="https://download.kde.org/stable/kdevelop/$pkgver/src/kdev-python-$pkgver.tar.xz"
-options="!check" # Tests hang
-builddir="$srcdir/kdev-python-$pkgver"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="e690e6f0ff681e65a1ffad2b376b48baf3e17b003e368afcda54e19a19b6e72ec58c9d77c2e1e7976d84e2a9d9cfdf3406537444502a25eea752ccedba6a1e8a kdev-python-5.5.1.tar.xz"
diff --git a/testing/kdiamond/APKBUILD b/testing/kdiamond/APKBUILD
deleted file mode 100644
index 0e0e1b2b4f8..00000000000
--- a/testing/kdiamond/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kdiamond
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="A single player puzzle game"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kdiamond/"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kcoreaddons-dev kconfig-dev kcrash-dev kdbusaddons-dev kdoctools-dev kwidgetsaddons-dev ki18n-dev kconfigwidgets-dev kxmlgui-dev knotifications-dev knotifyconfig-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kdiamond-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="d39e2b55aad444dbbc8e10631b3a9061222a887f055678aa70c43ca3b57a5e99321948662f3dc1b7d5402a8f7ccd5c2b73301856ff389664671c142c7ba2d7f9 kdiamond-20.04.1.tar.xz"
diff --git a/testing/kdiskmark/APKBUILD b/testing/kdiskmark/APKBUILD
new file mode 100644
index 00000000000..440b7bf3c0b
--- /dev/null
+++ b/testing/kdiskmark/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=kdiskmark
+pkgver=3.1.4
+pkgrel=1
+pkgdesc="Simple open-source disk benchmark tool for Linux distros"
+url="https://github.com/JonMagon/KDiskMark"
+arch="all"
+license="GPL-3.0-or-later"
+depends="fio"
+makedepends="
+ cmake
+ extra-cmake-modules
+ polkit-qt-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ samurai
+ "
+langdir="/usr/share/kdiskmark/kdiskmark/translations"
+subpackages="$pkgname-lang"
+source="https://github.com/JonMagon/KDiskMark/releases/download/$pkgver/KDiskMark-$pkgver-source.tar.gz"
+builddir="$srcdir/KDiskMark-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+53f292e4137ac36dfbc09ad400496170bfd13a8c18f1c474bd15b00cdd931918713e034e35d6f3dbda29eb1ee89d8f273dd8e794a9e70c95ec96ebf31f0baedf KDiskMark-3.1.4-source.tar.gz
+"
diff --git a/testing/keama/APKBUILD b/testing/keama/APKBUILD
deleted file mode 100644
index f096a89520c..00000000000
--- a/testing/keama/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer:
-pkgname=keama
-pkgver="4.4.1_git20191205"
-_gitrev="2fefb3ff08295c688fd32d43e3e8fdfa7558f867"
-pkgrel=0
-pkgdesc="Kae DHCP Migration Assistant"
-url="https://gitlab.isc.org/isc-projects/dhcp"
-arch="all"
-license="ISC"
-subpackages="$pkgname-doc"
-source="https://gitlab.isc.org/isc-projects/dhcp/-/archive/$_gitrev/dhcp-$_gitrev.tar.gz"
-builddir="$srcdir/dhcp-$_gitrev"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make -C keama
-}
-
-check() {
- make -C keama check
-}
-
-package() {
- make -C keama install DESTDIR="$pkgdir"
-}
-
-sha512sums="a60093ead04200ae4d82108232b4005bc5993a3b5d5579cf18afb7bbf886aa9e9a61fc34f07c937accbee4f29faa81f3d6e7583f6285bd4920b0f724ecc29769 dhcp-2fefb3ff08295c688fd32d43e3e8fdfa7558f867.tar.gz"
diff --git a/testing/keepassxc-browser/APKBUILD b/testing/keepassxc-browser/APKBUILD
new file mode 100644
index 00000000000..216ccdb5f73
--- /dev/null
+++ b/testing/keepassxc-browser/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=keepassxc-browser
+pkgver=1.8.9
+pkgrel=0
+pkgdesc="KeePassXC Browser Extension"
+url="https://github.com/keepassxreboot/keepassxc-browser/"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="npm"
+source="keepassxc-browser-$pkgver.tar.gz::https://github.com/keepassxreboot/keepassxc-browser/archive/refs/tags/$pkgver.tar.gz"
+options="!check net" # no tests, build fetches assets
+
+prepare() {
+ default_prepare
+ npm ci
+}
+
+build() {
+ # fetching translations requires a user account (and unmet dependencies).
+ npm run build -- --skip-translations
+}
+
+package() {
+ install -Dm644 keepassxc-browser_1.8.9_firefox.zip "$pkgdir/usr/lib/firefox/browser/extensions/keepassxc-browser@keepassxc.org.xpi"
+}
+
+sha512sums="
+15d19c6bd03fc338d9deee1aabf2e81dd1709b515d48b0e051e5891fefb9350af4a1616d1f7e1d1c8e91c78244b44abe0ce44abd993d4c2c8f8c40c987e9bd78 keepassxc-browser-1.8.9.tar.gz
+"
diff --git a/testing/kerberoast/APKBUILD b/testing/kerberoast/APKBUILD
new file mode 100644
index 00000000000..eb7fb985719
--- /dev/null
+++ b/testing/kerberoast/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=kerberoast
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Kerberos security toolkit for Python"
+url="https://github.com/skelsec/kerberoast"
+arch="noarch"
+license="MIT"
+depends="
+ py3-minikerberos
+ py3-msldap
+ py3-winacl
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/kerberoast/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests in version 0.2.0
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1617b22fc4aa43fd5597cbb4a720f3771e6dd21c9b76d9164b01aacbf6c1011be6ef5ca6c2b46a54d5d15cb2eea2d9e108393ec3cbf8652a95e266489e58a63c kerberoast-0.2.0.tar.gz
+"
diff --git a/testing/kexec-tools/APKBUILD b/testing/kexec-tools/APKBUILD
deleted file mode 100644
index d42b6556290..00000000000
--- a/testing/kexec-tools/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Duncan Guthrie <dguthrie@posteo.net>
-# Maintainer: Duncan Guthrie <dguthrie@posteo.net>
-pkgname=kexec-tools
-pkgver=2.0.20
-pkgrel=1
-pkgdesc="Directly boot into a new kernel over a currently running one"
-url="https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git/"
-arch="all"
-license="GPL-2.0-only"
-makedepends="zlib-dev xz-dev linux-headers"
-subpackages="$pkgname-doc"
-source="https://www.kernel.org/pub/linux/utils/kernel/kexec/kexec-tools-$pkgver.tar.xz
- kexec-tools-2.0.16-fix-config-sub.patch
- fix-build-on-Alpine-linux.patch
- "
-options="!check"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --with-zlib \
- --with-lzma
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="3112b6202c1030705c53e3f65a2b58aec14d65333a35aad681d48b9f2bd1c51a2e05c985a1e5e867ab02f8a9c97708483d9d225619db7c6993676f1a242e2d99 kexec-tools-2.0.20.tar.xz
-3c87540309dceda4c074d5822fd1a5d709ad533baed91dfd77aa64ebfe3850fc099c4b3d2bcc887c81ae53dc5940d17ccf34be25609beb37ed5ef7ed75862d43 kexec-tools-2.0.16-fix-config-sub.patch
-228166102bfc48f81c04f3b13fbf29d6edf2e66918a967f243c8d2652f40c27af565f1db6b1a58783bd12d67184a70e6b00b1ab82e0f0d195dd51009260c3329 fix-build-on-Alpine-linux.patch"
diff --git a/testing/kexec-tools/fix-build-on-Alpine-linux.patch b/testing/kexec-tools/fix-build-on-Alpine-linux.patch
deleted file mode 100644
index ee96f057275..00000000000
--- a/testing/kexec-tools/fix-build-on-Alpine-linux.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d390f1f873fa42fa5791ba48f9acf0f41da33632 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=2E=20Stani=C4=87?= <mps@arvanta.net>
-Date: Sat, 19 Oct 2019 17:10:16 +0000
-Subject: [PATCH] kexec/arch/i386/kexec-x86.c: fix build on Alpine linux x86
- arch
-
----
- kexec/arch/i386/kexec-x86.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/kexec/arch/i386/kexec-x86.c b/kexec/arch/i386/kexec-x86.c
-index 444cb69..6001e76 100644
---- a/kexec/arch/i386/kexec-x86.c
-+++ b/kexec/arch/i386/kexec-x86.c
-@@ -36,8 +36,8 @@
- struct file_type file_type[] = {
- { "multiboot-x86", multiboot_x86_probe, multiboot_x86_load,
- multiboot_x86_usage },
-- { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load,
-- multiboot2_x86_usage },
-+ { "multiboot2-x86", multiboot_x86_probe, multiboot_x86_load,
-+ multiboot_x86_usage },
- { "elf-x86", elf_x86_probe, elf_x86_load, elf_x86_usage },
- { "bzImage", bzImage_probe, bzImage_load, bzImage_usage },
- { "beoboot-x86", beoboot_probe, beoboot_load, beoboot_usage },
---
-2.23.0
-
diff --git a/testing/kexec-tools/kexec-tools-2.0.16-fix-config-sub.patch b/testing/kexec-tools/kexec-tools-2.0.16-fix-config-sub.patch
deleted file mode 100644
index bd30fde656e..00000000000
--- a/testing/kexec-tools/kexec-tools-2.0.16-fix-config-sub.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- kexec-tools-2.0.16.old/config/config.sub 2016-12-09 09:42:06.000000000 +0000
-+++ kexec-tools-2.0.16/config/config.sub 2017-12-13 19:35:19.248376862 +0000
-@@ -124,6 +124,7 @@
- case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-+ linux-musl* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
diff --git a/testing/keybase-client/APKBUILD b/testing/keybase-client/APKBUILD
index eac65f8493b..a8f7c7e9ee2 100644
--- a/testing/keybase-client/APKBUILD
+++ b/testing/keybase-client/APKBUILD
@@ -2,8 +2,8 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=keybase-client
-pkgver=5.2.1
-pkgrel=1
+pkgver=6.2.8
+pkgrel=2
pkgdesc="CLI client for keybase.io"
url="https://github.com/keybase/client"
arch="all"
@@ -13,10 +13,13 @@ options="!check" # need access to localhost:3000, which doesn't work with our in
source="$pkgname-$pkgver.tar.gz::https://github.com/keybase/client/archive/v$pkgver.tar.gz"
builddir="$srcdir/client-$pkgver"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
build() {
cd "$srcdir"
export GOPATH="$PWD"
- export GO15VENDOREXPERIMENT=1
mkdir -p src/github.com/keybase
cp -r "$srcdir/client-$pkgver" src/github.com/keybase/client
@@ -28,4 +31,6 @@ package() {
install -Dm755 "$srcdir/keybase" "$pkgdir/usr/bin/keybase"
}
-sha512sums="5ef045e714209d732c8b421f9a27cd32026dfd83af321bdc2be191ad8d5d458a947cd44b9b644e44c98fdcaefe9a17f0dd5546edd7bf97c3fb3cd97dd08cbc54 keybase-client-5.2.1.tar.gz"
+sha512sums="
+61e590a4de3a240f814d33e90b92a2db3662a871e354c5a48fa72d2ee597701b5fcac4f9f8cb520d99f66e139939b05b37477332dbb03e8816a19755e922caeb keybase-client-6.2.8.tar.gz
+"
diff --git a/testing/keynav/APKBUILD b/testing/keynav/APKBUILD
deleted file mode 100644
index ab6b605bffc..00000000000
--- a/testing/keynav/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Miles Alan <m@milesalan.com>
-pkgname=keynav
-pkgver=0_git20180820
-_gitrev="78f9e076a5618aba43b030fbb9344c415c30c1e5"
-pkgrel=0
-pkgdesc="Quick way to use cursor via the keyboard"
-url="https://www.semicomplete.com/projects/keynav/"
-arch="all"
-license="BSD-3-Clause"
-depends="xorg-server"
-makedepends="cairo-dev libxinerama-dev xdotool-dev glib-dev libxrandr-dev perl"
-checkdepends="xvfb"
-subpackages="$pkgname-doc"
-source="https://github.com/jordansissel/keynav/archive/$_gitrev/keynav-$_gitrev.tar.gz"
-builddir="$srcdir/keynav-$_gitrev"
-
-build() {
- make
-}
-
-check() {
- ./test.sh
-}
-
-package() {
- install -Dm0755 keynav $pkgdir/usr/bin/keynav
- make keynav.1
- install -Dm644 ./*.1 -t $pkgdir/usr/share/man/man1/
-}
-sha512sums="5e0e3c4cf3b89a2ffecfc662d379864f18cfa0f9117564cc1f551757dc46e5a4684c3fea0891ae39da872ece9ef44b8b81fa51f0843457d4895db8517d7bd094 keynav-78f9e076a5618aba43b030fbb9344c415c30c1e5.tar.gz"
diff --git a/testing/keystone/APKBUILD b/testing/keystone/APKBUILD
index aefbe42157b..fd79ad90237 100644
--- a/testing/keystone/APKBUILD
+++ b/testing/keystone/APKBUILD
@@ -1,52 +1,49 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=keystone
-pkgver=0.9.1
-pkgrel=4
+pkgver=0.9.2
+pkgrel=6
pkgdesc="Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings"
-url="http://www.keystone-engine.org"
-arch="all"
+url="https://www.keystone-engine.org/"
+arch="all !riscv64" # weird cmake + autoconf hybrid system is weird and hates riscv
license="custom"
-depends=""
-makedepends="cmake python3-dev"
-install=""
-subpackages="$pkgname-dev $pkgname-doc $pkgname-python"
-source="$pkgname-$pkgver.tar.gz::https://github.com/keystone-engine/$pkgname/archive/$pkgver.tar.gz
- none-build-type.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+makedepends="cmake python3-dev py3-setuptools"
+subpackages="$pkgname-dev $pkgname-python-pyc $pkgname-python"
+source="$pkgname-$pkgver.tar.gz::https://github.com/keystone-engine/keystone/archive/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_guess
+}
build() {
- cd "$builddir"
mkdir -p build-shared && cd build-shared
- cmake -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DBUILD_SHARED_LIBS=ON \
- -G "Unix Makefiles" ..
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_SHARED_LIBS=ON \
+ -G "Unix Makefiles" ..
cd ..
- make -C build-shared || return 1
+ make -C build-shared
+
+ cd "$builddir"/bindings/python
+ python3 setup.py build
}
package() {
- cd "$builddir"
make -C build-shared DESTDIR="$pkgdir" install
-}
-doc() {
- pkgdesc="Documentation and samples for $pkgname"
- arch="noarch"
- cd "$builddir"
- mkdir -p "${subpkgdir}/usr/share/doc/${pkgname}"
- mv samples "${subpkgdir}/usr/share/doc/${pkgname}"
+ cd "$builddir"/bindings/python
+ python3 setup.py install --skip-build --root="$pkgdir"
}
python() {
pkgdesc="$pkgname python3 bindings"
depends="python3 keystone"
- arch="noarch"
- cd "$builddir"/bindings/python
- python3 setup.py build
- python3 setup.py install --prefix=/usr --root="$subpkgdir"
+ amove usr/lib/python3*
}
-sha512sums="3bd9c3793d5862a0a8628b52da381625e62445f661dbd5ed715723e7d9db01ce3f9586e5ca0a5cc71e8ceb6c912050f5c28e3ccd540e72c8abcfd2f0d1bbae17 keystone-0.9.1.tar.gz
-0a101a1398eec32e7cb2e5e201d8f822ec44916e7c40ed59caf89482102b536e1ec9a23bc9321bc14a4ac56db11669b4c7aa5b297942af25cf8ccf21d9483037 none-build-type.patch"
+sha512sums="
+5d4dd30410410bc7848e75a2e31e8ecef6241ad25e21963aa7a07bbea21d95b75e235c80573129014102684c9647710ace3c0776a8401844d7e4b45cab7bd04b keystone-0.9.2.tar.gz
+"
diff --git a/testing/keystone/none-build-type.patch b/testing/keystone/none-build-type.patch
deleted file mode 100644
index d5686283776..00000000000
--- a/testing/keystone/none-build-type.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-The build system includes its own check for available CMake build types.
-This check is incorrect as it doesn't include the None build type.
-
-diff -upr keystone-0.9.1.orig/llvm/CMakeLists.txt keystone-0.9.1/llvm/CMakeLists.txt
---- keystone-0.9.1.orig/llvm/CMakeLists.txt 2020-02-22 12:17:15.681580953 +0100
-+++ keystone-0.9.1/llvm/CMakeLists.txt 2020-02-22 12:18:20.949144210 +0100
-@@ -142,7 +142,7 @@ include(CPack)
- string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
-
- if (CMAKE_BUILD_TYPE AND
-- NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$")
-+ NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(NONE|DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$")
- message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
- endif()
-
diff --git a/testing/kfc/APKBUILD b/testing/kfc/APKBUILD
new file mode 100644
index 00000000000..cb65a3d731b
--- /dev/null
+++ b/testing/kfc/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=kfc
+pkgver=0.1.4
+pkgrel=0
+pkgdesc="Terminal-emulator color palette setter written in POSIX C99"
+url="https://github.com/mcpcpc/kfc"
+arch="all"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mcpcpc/kfc/archive/$pkgver.tar.gz
+ $pkgname-no-x11.patch::https://github.com/mcpcpc/kfc/commit/5c8017255c976ca47bd027dda76df3e07010f667.diff
+ "
+options="!check" # No tests
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+c9f282732149c88c186154ba8f2b3e30d1c3adaf7f15ddc78b97488598d4dd8863dedec595e1799d0ff8c612e206a3e432fa32dda4228f388494fcc1202d22fd kfc-0.1.4.tar.gz
+080c27b7a64470a480290484c38feba91b9a1add1f559b43df0a2795ac486b5a3f1e55de3c218f85b545d61d93d0f81008207ce881413778a27052770b8a654e kfc-no-x11.patch
+"
diff --git a/testing/kfourinline/APKBUILD b/testing/kfourinline/APKBUILD
deleted file mode 100644
index 6970be86b24..00000000000
--- a/testing/kfourinline/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kfourinline
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kfourinline/"
-pkgdesc="A four-in-a-row game"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev kcrash-dev kdnssd-dev kdoctools-dev ki18n-dev kwidgetsaddons-dev kxmlgui-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kfourinline-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="47189ddac4cd9dc85e612615e7c4f2adb2bfb6d2fa1fd766832380f31bf0f7498e1ac8aa7b7cafc0113dba64fbac7c3e2f633e0966fe383f517e98fe74799c9a kfourinline-20.04.1.tar.xz"
diff --git a/testing/kgoldrunner/APKBUILD b/testing/kgoldrunner/APKBUILD
deleted file mode 100644
index 27c950dceba..00000000000
--- a/testing/kgoldrunner/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kgoldrunner
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kgoldrunner/"
-pkgdesc="A game of action and puzzle solving"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev kcrash-dev kdbusaddons-dev kdoctools-dev ki18n-dev kio-dev kwidgetsaddons-dev kxmlgui-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kgoldrunner-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="2187162615889cc10e1a869d10300384a330b6d100983907c697cd9a444f244d743a9d90fbe8528a3542ae5e26965df06f987aa6d5892dd2ef3f23bf81224c38 kgoldrunner-20.04.1.tar.xz"
diff --git a/testing/kgx/APKBUILD b/testing/kgx/APKBUILD
deleted file mode 100644
index ede0e5e81e9..00000000000
--- a/testing/kgx/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: David Heidelberg <david@ixit.cz>
-# Contributor: David Heidelberg <david@ixit.cz>
-pkgname=kgx
-pkgver=0.2.1
-pkgrel=1
-pkgdesc="A minimal terminal for GNOME"
-url="https://gitlab.gnome.org/ZanderBrown/kgx"
-arch="all !s390x !ppc64le !mips !mips64" # !s390x !ppc64le due gnome-shell
-license="GPL-3.0-only"
-options="!check" # Tests require GIR
-depends="dbus desktop-file-utils gsettings-desktop-schemas"
-makedepends="dconf-dev gnome-shell gsettings-desktop-schemas-dev nautilus-dev vte3-dev
- glib-dev intltool itstool libhandy-dev libgtop-dev pcre2-dev meson vala"
-subpackages="$pkgname-lang"
-source="https://gitlab.gnome.org/ZanderBrown/kgx/-/archive/$pkgver/kgx-$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --buildtype=plain \
- -Dgtop=true \
- -Dgtk_doc=false \
- -Dgir=false \
- -Dgeneric=true \
- -Dtests=false \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="f1d19661472cec0f8cab30ba38608d5d7029f56d85bd99b315c841ae859059ef8ab90add0c530dcc3d95ba00e67bbb9127e537ceea5165c5e47c382a15445502 kgx-0.2.1.tar.gz"
diff --git a/testing/khelpcenter/APKBUILD b/testing/khelpcenter/APKBUILD
deleted file mode 100644
index 4b2580d7d95..00000000000
--- a/testing/khelpcenter/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=khelpcenter
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="Application to show KDE Applications' documentation"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://userbase.kde.org/KHelpCenter"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev karchive-dev kbookmarks-dev kconfig-dev kcoreaddons-dev kdbusaddons-dev kdoctools-dev ki18n-dev kinit-dev khtml-dev kservice-dev kwindowsystem-dev grantlee-dev xapian-core-dev libxml2-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/khelpcenter-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="84741f17a0e45629b0a2a10dae5193e0554a857883e00c098b28ccad1b868183f66ce50ec2ad8b2d68114288adb21a4ed3eea4fff389db2a88bbcb3823912b11 khelpcenter-20.04.1.tar.xz"
diff --git a/testing/khinsider/APKBUILD b/testing/khinsider/APKBUILD
new file mode 100644
index 00000000000..02a8086e681
--- /dev/null
+++ b/testing/khinsider/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=khinsider
+pkgver=2.0.7
+pkgrel=12
+pkgdesc="A khinsider downloader written in Go"
+url="https://github.com/marcus-crane/khinsider"
+arch="all"
+license="MIT"
+makedepends="go"
+source="https://github.com/marcus-crane/khinsider/archive/v$pkgver/khinsider-v$pkgver.tar.gz"
+options="!check net" # No upstream tests
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+prepare() {
+ default_prepare
+ go mod download
+}
+
+build() {
+ go build
+}
+
+package() {
+ install -Dm755 "$builddir"/khinsider "$pkgdir"/usr/bin/khinsider
+}
+
+sha512sums="
+f91b2c3f27fd1704b1fbeef31f202a50438ef37915b912cb6b391ea0553aa15e361f258cf99691cd434b3b30fd7b296b8fec584f436ccdf384267a001afbc3f5 khinsider-v2.0.7.tar.gz
+"
diff --git a/testing/khronos/APKBUILD b/testing/khronos/APKBUILD
new file mode 100644
index 00000000000..65b2619c2ce
--- /dev/null
+++ b/testing/khronos/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=khronos
+pkgver=4.0.1
+pkgrel=0
+pkgdesc="Track each task's time in a simple inobtrusive way"
+url="https://github.com/lainsce/khronos/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ desktop-file-utils
+ gtk4.0-dev
+ json-glib-dev
+ libadwaita-dev
+ libgee-dev
+ meson
+ vala
+ "
+subpackages="$pkgname-lang"
+source="https://github.com/lainsce/khronos/archive/refs/tags/$pkgver/khronos-$pkgver.tar.gz"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+e69c5fda0ea645cd69d65bc55d3b2bfd9b3da1e4099f41fd94fdcbf11e55a30a15a6ccb46d1b678112858d4f8aae36e78f289c146b344c903eb96d689760d253 khronos-4.0.1.tar.gz
+"
diff --git a/testing/kibana/APKBUILD b/testing/kibana/APKBUILD
deleted file mode 100644
index 426c7a7f637..00000000000
--- a/testing/kibana/APKBUILD
+++ /dev/null
@@ -1,58 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=kibana
-pkgver=6.4.1
-pkgrel=0
-pkgdesc="Visualize Elasticsearch data and navigate the Elastic Stack"
-url="https://www.elastic.co/products/kibana"
-arch="x86_64"
-license="Apache-2.0"
-depends="nodejs"
-install="$pkgname.pre-install"
-subpackages="$pkgname-doc"
-pkgusers="kibana"
-pkggroups="kibana"
-options="!check" # no test suite
-source="https://artifacts.elastic.co/downloads/kibana/kibana-oss-$pkgver-linux-x86_64.tar.gz
- kibana.initd
- default_config.patch
- "
-builddir="$srcdir"/$pkgname-$pkgver-linux-x86_64
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- install -m755 -d \
- "$pkgdir"/usr/share/webapps/$pkgname \
- "$pkgdir"/var/lib/$pkgname \
- "$pkgdir"/usr/share/doc/$pkgname
-
- # move config into /etc
- install -m755 -d "$pkgdir"/etc/$pkgname
- install -m644 -o $pkgusers -g $pkggroups config/kibana.yml "$pkgdir"/etc/$pkgname/kibana.yml
- rm config/kibana.yml && rmdir config
-
- # move data into /var
- install -m755 -o $pkgusers -g $pkggroups -d "$pkgdir"/var/lib/$pkgname/data
- rmdir data
-
- # remove ELF compiled against GLIBC
- rm node_modules/clipboardy/fallbacks/linux/xsel
-
- # move docs into subpkg
- mv *.txt "$pkgdir"/usr/share/doc/$pkgname
-
- # use system nodejs
- rm -rf node
-
- # everything else in webapps
- mv * "$pkgdir"/usr/share/webapps/$pkgname
-
- install -m755 -D "$srcdir"/$pkgname.initd $pkgdir/etc/init.d/$pkgname
-}
-
-sha512sums="54c4f997037a7d3ff8820abfef72914674d733a05906bf692bb33a8c49f61d7d0e362eefc9ef522e848bff354ebfeade507aecdb5e9652bcedb1d2b9167daeb0 kibana-oss-6.4.1-linux-x86_64.tar.gz
-a6988b51ad758bce6c31aa90b905f833c7b641dec6b63a9da928c328b3da42a69bb855ecdbd22c15e035a20c6f28f90ddd88d85c6890acd58bef7608be2c25e8 kibana.initd
-fae5536d02f6bb90d2e5930532e41b8327790eb83e412028b25eb0c7bd44d8fa38edd66fa9f4017d86819baba929e56dbc49bdb1dcbdea16f3447daa457514f4 default_config.patch"
diff --git a/testing/kibana/default_config.patch b/testing/kibana/default_config.patch
deleted file mode 100644
index 15d102249fe..00000000000
--- a/testing/kibana/default_config.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/config/kibana.yml
-+++ b/config/kibana.yml
-@@ -90,6 +90,7 @@
- #elasticsearch.logQueries: false
-
- # Specifies the path where Kibana creates the process ID file.
-+# Don't enable this, supervise-daemon uses its own PID to control it
- #pid.file: /var/run/kibana.pid
-
- # Enables you specify a file where Kibana stores log output.
-@@ -112,3 +112,6 @@
- # The default locale. This locale can be used in certain circumstances to substitute any missing
- # translations.
- #i18n.defaultLocale: "en"
-+
-+# Move default data location
-+path.data: /var/lib/kibana/data
diff --git a/testing/kibana/kibana.initd b/testing/kibana/kibana.initd
deleted file mode 100644
index cdcf6d69d1d..00000000000
--- a/testing/kibana/kibana.initd
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-description="Visualize and manage your ElasticSearch data"
-name="Kibana"
-
-: ${command_user:="kibana"}
-: ${command_group:="$(id -gn $user)"}
-: ${logs_dir:="/var/log/kibana"}
-: ${work_dir:="/var/tmp/kibana"}
-: ${conf_file:="/etc/kibana/kibana.yml"}
-
-pidfile="/run/kibana/$RC_SVCNAME.pid"
-supervise_daemon_args="-u $command_user -g $command_group -p $pidfile"
-command=/usr/share/webapps/kibana/bin/kibana
-command_args="--config $conf_file 1>>$logs_dir/kibana.log 2>>$logs_dir/error.log"
-
-export BABEL_CACHE_PATH=/var/tmp/kibana/.babelcache.json
-
-depends() {
- use net
- after firewall
-}
-
-start_pre() {
- for dir in \
- "$logs_dir" \
- "$work_dir" \
- "${pidfile%/kibana.pid}" \
- ; do checkpath -d -o $command_user:$command_group -m755 $dir
- done
-}
diff --git a/testing/kibana/kibana.pre-install b/testing/kibana/kibana.pre-install
deleted file mode 100644
index 71b06152b84..00000000000
--- a/testing/kibana/kibana.pre-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-addgroup -S kibana 2>/dev/null
-adduser -h /var/lib/kibana/data -s /sbin/nologin -G kibana -SDH kibana 2>/dev/null
-exit 0
diff --git a/testing/kicad-library/APKBUILD b/testing/kicad-library/APKBUILD
deleted file mode 100644
index dc2851d8b5a..00000000000
--- a/testing/kicad-library/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=kicad-library
-pkgver=5.1.5
-pkgrel=1
-pkgdesc="Kicad component and footprint libraries"
-url="http://kicad.github.io/"
-# kicad is only available on x86_64 currently :-/
-arch="noarch !s390x !mips !mips64"
-license="GPL-3.0-or-later"
-makedepends="cmake"
-depends="kicad"
-subpackages="$pkgname-3d:three_d"
-source="
- kicad-sym.$pkgver.tgz::https://github.com/KiCad/kicad-symbols/archive/$pkgver.tar.gz
- kicad-foot.$pkgver.tgz::https://github.com/KiCad/kicad-footprints/archive/$pkgver.tar.gz
- kicad-3d.$pkgver.tgz::https://codeload.github.com/KiCad/kicad-packages3D/tar.gz/$pkgver
- "
-options="!check" # package only provides data files, so not tests possible
-
-build() {
- cd "$srcdir"/kicad-symbols-$pkgver
- cmake . \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-
- cd "$srcdir"/kicad-footprints-$pkgver
- cmake . \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-
- cd "$srcdir"/kicad-packages3D-$pkgver
- cmake . \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-}
-
-package() {
- cd "$srcdir"/kicad-symbols-$pkgver
- make DESTDIR="$pkgdir" install
-
- cd "$srcdir"/kicad-footprints-$pkgver
- make DESTDIR="$pkgdir" install
-}
-
-three_d() {
- cd "$srcdir"/kicad-packages3D-$pkgver
- make DESTDIR="$subpkgdir" install
-
- # Remove .step version of 3D models; only .wrl versions are needed
- find "$subpkgdir" -name '*.step' -exec rm {} \;
-}
-sha512sums="345c7990ba17f778fa975250fbb067a01472aa6e03cbd08a1e34203af5517981b6a569981e30b4d56e58a3966c364b529b9679a96a46ef538bd5ac6a6b46eac7 kicad-sym.5.1.5.tgz
-dbfb482d41d1c109e1fb395d194f700e45f1c268a33645b71cd9d98ada32369fe01dd6bf10c7f767c65b9b4e0efa6fc1bde1e4c91b9f4b751540fe3b511ba5b4 kicad-foot.5.1.5.tgz
-844de269cd9c1c0c4082f09097dc853cd49a2942f621229604b9996c61f8e1c1a0b1008201ad2e13107a07b3f4601601f2d361b60b6e62984165dcdfd1dd378c kicad-3d.5.1.5.tgz"
diff --git a/testing/kicad/APKBUILD b/testing/kicad/APKBUILD
deleted file mode 100644
index d71145f1e14..00000000000
--- a/testing/kicad/APKBUILD
+++ /dev/null
@@ -1,115 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=kicad
-pkgver=5.1.5
-pkgrel=4
-pkgdesc="A Cross Platform and Open Source Electronics Design Automation Suite"
-url="http://kicad-pcb.org/"
-arch="all !s390x !mips !mips64" # No support for s390x in libcontext (shipped with kicad) broken on mips
-license="GPL-3.0-or-later"
-makedepends="
- boost-dev
- cairo-dev
- cmake
- curl-dev
- glew-dev
- glm-dev
- ngspice-dev
- py3-wxpython
- python3-dev
- swig
- wxgtk-base-dev
- wxgtk3-dev
- zlib-dev
- "
-depends="python3"
-subpackages="$pkgname-i18n:i18n:noarch $pkgname-doc"
-source="
- https://launchpad.net/kicad/5.0/$pkgver/+download/kicad-$pkgver.tar.xz
- kicad-i18n.$pkgver.tar.gz::https://github.com/KiCad/kicad-i18n/archive/$pkgver.tar.gz
- "
-
-case "$CARCH" in
- x86_64)
- makedepends="$makedepends opencascade-dev vtk-dev"
- subpackages="$subpackages kicad-opencascade"
- ;;
- *)
- # Dependency opencascade (needed for STEP file support in 3D preview)
- # not available on all other architectures
- ;;
-esac
-
-_build_kicad() {
- mkdir -p "$1"
- cd "$1"
- cmake .. \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DKICAD_USE_OCE=OFF \
- -DKICAD_USE_OCC=$2 \
- -DKICAD_SCRIPTING=ON \
- -DKICAD_SCRIPTING_PYTHON3=ON \
- -DKICAD_SCRIPTING_MODULES=ON \
- -DKICAD_SCRIPTING_WXPYTHON=ON \
- -DKICAD_SCRIPTING_ACTION_MENU=ON \
- -DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON \
- -DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config-gtk3 \
- -DwxWidgets_INCLUDE_DIRS=/usr/include \
- -DBUILD_GITHUB_PLUGIN=ON
- make
- cd "$builddir"
-}
-
-_build_kicad_i18n() {
- cd "$srcdir"/kicad-i18n-$pkgver
- mkdir -p build
- cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=/usr
- make
- cd "$builddir"
-}
-
-build() {
- # First build without opencascade
- _build_kicad "build" "OFF"
- _build_kicad_i18n
-
- # Now build with opencascade, if possible
- case "$CARCH" in
- x86_64)
- _build_kicad "build-occ" "ON"
- ;;
- *)
- # Dependency opencascade (needed for STEP file support in 3D preview)
- # not available on all other architectures
- ;;
- esac
-}
-
-check() {
- cd build
- make test
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-i18n() {
- cd "$srcdir"/kicad-i18n-$pkgver/build
- make DESTDIR="$subpkgdir" install
-}
-
-opencascade() {
- pkgdesc="kicad with support for STEP file in 3D preview"
- replaces="$pkgname"
- provides="$pkgname=$pkgver-r$pkgrel"
- cd "$builddir/build-occ"
- make DESTDIR="$subpkgdir" install
-}
-
-sha512sums="5ca19e219da07a906f13e236849eb4497c9f827726a5cd13aceffe1d8c7dee480823bf3e949527f59a805eb3b8176fad51576ae663dd07b10e2822f2b37866a5 kicad-5.1.5.tar.xz
-68e6602fcc7e73c22a594b45ecf53a956af8a134e28e86242bfaa4087df21c04b24ae4df9928f00c2cee7eb0631a02a4de1cd09547b36a466fb324f983ea5363 kicad-i18n.5.1.5.tar.gz"
diff --git a/testing/kigo/APKBUILD b/testing/kigo/APKBUILD
deleted file mode 100644
index 77b6307b037..00000000000
--- a/testing/kigo/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kigo
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="An open-source implementation of the popular Go game"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kigo/"
-license="LicenseRef-KDE-Accepted-GPL AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kcoreaddons-dev kconfig-dev kcrash-dev kdbusaddons-dev kdoctools-dev ki18n-dev kconfigwidgets-dev ktextwidgets-dev kxmlgui-dev kio-dev knewstuff-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kigo-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="3e95cff3d4f16c453be8a44fc96573dfd495ddc381cf3dbba9e6f2b40e01a0a02f0324f70b1f347d6bfc469be3611860dc4fc31736643b56a69ceff39965e8bc kigo-20.04.1.tar.xz"
diff --git a/testing/killbots/APKBUILD b/testing/killbots/APKBUILD
deleted file mode 100644
index f77cbb36d0e..00000000000
--- a/testing/killbots/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=killbots
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="A simple game of evading killer robots"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/killbots/"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kcoreaddons-dev kconfig-dev kcrash-dev kwidgetsaddons-dev ki18n-dev kconfigwidgets-dev kxmlgui-dev kcompletion-dev kdoctools-dev kdbusaddons-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/killbots-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="874387489c5744a26c2d40261f8cc8b6e06d12b18ecaf4956b37426b0dccddc9a71c58b9345e6d4e17f9aa396da8c5b09dc6d86117c46ee6dd3a369670aa4cba killbots-20.04.1.tar.xz"
diff --git a/testing/kimchi/APKBUILD b/testing/kimchi/APKBUILD
index 1c63f5afbef..9dd0eb48c06 100644
--- a/testing/kimchi/APKBUILD
+++ b/testing/kimchi/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=kimchi
pkgver=3.0.0
-pkgrel=0
+pkgrel=7
pkgdesc="An HTML5 management interface for KVM"
url="https://github.com/kimchi-project/kimchi"
-arch="noarch !mips64" # blocked by wok and others
-license="Apache-2.0 and LGPL-2.1-or-later"
+arch="noarch !s390x !riscv64" # blocked by wok and others
+license="Apache-2.0 AND LGPL-2.1-or-later"
depends="
gingerbase
libvirt-daemon
@@ -26,7 +26,6 @@ depends="
py3-pillow
py3-psutil
py3-simplejson
- py3-six
py3-yaml
python3
qemu
@@ -47,26 +46,24 @@ makedepends="
libxslt
py3-cherrypy
py3-mock
- py3-pip
py3-pyflakes
py3-pytest
- py3-requests
py3-setuptools
python3-dev
- spice-html5
"
+checkdepends="py3-requests"
options="!check" # depends on jaraco
-subpackages="$pkgname-lang"
+subpackages="$pkgname-lang $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/kimchi-project/kimchi/archive/$pkgver.tar.gz"
-build() {
+build() {
sh ./autogen.sh --system
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-spice-html5
- make
+ make -j1 # race conditions around locale generation
}
check() {
@@ -77,4 +74,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="0a10a4eb5a08d3bb9e16e9388031a1f01623aa150a66abcb7e25abac065151979777bfdc880ed9c200b028649766234776a64336c2a2e3a67f0d858d0afcda66 kimchi-3.0.0.tar.gz"
+sha512sums="
+0a10a4eb5a08d3bb9e16e9388031a1f01623aa150a66abcb7e25abac065151979777bfdc880ed9c200b028649766234776a64336c2a2e3a67f0d858d0afcda66 kimchi-3.0.0.tar.gz
+"
diff --git a/testing/kind/APKBUILD b/testing/kind/APKBUILD
new file mode 100644
index 00000000000..3031ac85728
--- /dev/null
+++ b/testing/kind/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=kind
+pkgver=0.22.0
+pkgrel=2
+pkgdesc="Kubernetes IN Docker - local clusters for testing Kubernetes"
+url="https://kind.sigs.k8s.io/"
+license="Apache-2.0"
+arch="all"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/kubernetes-sigs/kind/archive/v$pkgver/kind-$pkgver.tar.gz
+ skip-version-test.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build
+
+ ./kind completion bash > $pkgname.bash
+ ./kind completion fish > $pkgname.fish
+ ./kind completion zsh > $pkgname.zsh
+}
+
+check() {
+ go test -tags=nointegration ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+f9e6570cb7696a85a4b03ef1a474a3c41c1f7b2350bd182dbabddf00685d91351853452871a7729220e8643be7c1975de9b49d7178a739349babf05993f36c1e kind-0.22.0.tar.gz
+6993628a0a5c938b0e59b92e04b32bd7d454dc4ee7e5c445c4122dacdb786d0372836c59749c767f5921b9ac96b4452c5d696c2c7d701ea8e10ac256d6d7d67c skip-version-test.patch
+"
diff --git a/testing/kind/skip-version-test.patch b/testing/kind/skip-version-test.patch
new file mode 100644
index 00000000000..8ce38a4a7fc
--- /dev/null
+++ b/testing/kind/skip-version-test.patch
@@ -0,0 +1,11 @@
+--- a/pkg/cmd/kind/version/version_test.go
++++ b/pkg/cmd/kind/version/version_test.go
+@@ -62,6 +62,8 @@ func TestTruncate(t *testing.T) {
+ }
+
+ func TestVersion(t *testing.T) {
++ t.Skip("only works on prerelease versions")
++
+ tests := []struct {
+ name string
+ gitCommit string
diff --git a/testing/kine/APKBUILD b/testing/kine/APKBUILD
new file mode 100644
index 00000000000..27177592516
--- /dev/null
+++ b/testing/kine/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=kine
+pkgver=0.10.1
+pkgrel=4
+pkgdesc="etcd API with sqlite, Postgres, Mysql, or dqlite backed"
+url="https://github.com/k3s-io/kine"
+arch="all"
+license="Apache-2.0"
+makedepends="sqlite-dev go"
+subpackages="$pkgname-doc"
+options="!check" # no testsuite
+source="$pkgname-$pkgver.tar.gz::https://github.com/k3s-io/kine/archive/v$pkgver.tar.gz"
+provides="etcd-api"
+provider_priority=1
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v .
+}
+
+package() {
+ install -D -m755 kine "$pkgdir"/usr/bin/kine
+ install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/kine/LICENSE
+}
+
+sha512sums="
+01b94a0ede751d03ef91c8a33be65fc95212147cec5df7eecbb6b6b35af0d1f002abed6c22caedeea38c13f5422b8385d5d7d8ff1d5ade9046964e0a30eec5f7 kine-0.10.1.tar.gz
+"
diff --git a/testing/kio-fuse/APKBUILD b/testing/kio-fuse/APKBUILD
deleted file mode 100644
index ca541f68dca..00000000000
--- a/testing/kio-fuse/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kio-fuse
-pkgver=4.95.0
-pkgrel=0
-arch="all !armhf"
-url="https://kde.org/"
-pkgdesc="FUSE interface for KIO"
-license="GPL-3.0-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kcoreaddons-dev kdbusaddons-dev
- kio-dev fuse3-dev"
-checkdepends="dbus"
-source="https://download.kde.org/unstable/kio-fuse/$pkgver/kio-fuse-$pkgver.tar.xz
- modules-load.conf"
-install="$pkgname.post-install"
-options="!check" # Only test is broken
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-
- install -Dm644 "$srcdir"/modules-load.conf "$pkgdir"/usr/lib/modules-load.d/kio-fuse.conf
-
- # Part of systemd-tmpfiles
- rm -rf "$pkgdir"/usr/lib/tmpfiles.d
-}
-
-sha512sums="a4c2ce4bdee6aefa7fcb5bc16d5179e87ec513259b754ffeb75d5d4836c56f05e417cb8b605e3cae33bc93b0cf61fb7042b3edf476d3d9e312a1fd65578ba4b5 kio-fuse-4.95.0.tar.xz
-57d23d2778556eafc3035e6be575bf95b4032f123b35f2b1657eff5e7496de253173edc657f90531ee58e25673f4f27a5cd1cc76b14a038edb244f104a231771 modules-load.conf"
diff --git a/testing/kio-fuse/kio-fuse.post-install b/testing/kio-fuse/kio-fuse.post-install
deleted file mode 100644
index 62c42f3a992..00000000000
--- a/testing/kio-fuse/kio-fuse.post-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-modprobe fuse
-
-exit 0
diff --git a/testing/kio-fuse/modules-load.conf b/testing/kio-fuse/modules-load.conf
deleted file mode 100644
index a517c488f34..00000000000
--- a/testing/kio-fuse/modules-load.conf
+++ /dev/null
@@ -1 +0,0 @@
-fuse
diff --git a/testing/kipi-plugins/APKBUILD b/testing/kipi-plugins/APKBUILD
deleted file mode 100644
index db2782e2897..00000000000
--- a/testing/kipi-plugins/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kipi-plugins
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="A collection of plugins extending the KDE graphics and image applications"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://userbase.kde.org/KIPI"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtxmlpatterns-dev qt5-qtsvg-dev kconfig-dev kwindowsystem-dev kxmlgui-dev ki18n-dev karchive-dev kio-dev libkipi-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kipi-plugins-$pkgver.tar.xz"
-subpackages="$pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="7afeeef2fc6b3d75e9c3208345eb97c8be53e018d005265de594b8575afeb2820df55e23706abdaf3f29052d8f6301b3b89826dd42f1a20243d200e79d3e0d8c kipi-plugins-20.04.1.tar.xz"
diff --git a/testing/kirc/APKBUILD b/testing/kirc/APKBUILD
new file mode 100644
index 00000000000..06bbbd985da
--- /dev/null
+++ b/testing/kirc/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=kirc
+pkgver=0.3.2
+pkgrel=0
+pkgdesc="Tiny IRC client written in POSIX C99"
+url="https://github.com/mcpcpc/kirc"
+arch="all"
+license="MIT"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mcpcpc/kirc/archive/$pkgver.tar.gz"
+options="!check" # No tests
+
+prepare() {
+ default_prepare
+ sed -i 's/^\(install:\) all$/\1/' Makefile
+}
+
+build() {
+ make PREFIX=/usr CFLAGS="$CFLAGS -std=c99"
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+12fe29a93d8f95ba60b8e77ab984fcbfee5102c2ddd5633690f24f67be376a36c0f6e0516dd311a2e8d351b249054c68150fb4ffb023822418416ac9fe8c15ff kirc-0.3.2.tar.gz
+"
diff --git a/testing/kiriki/APKBUILD b/testing/kiriki/APKBUILD
deleted file mode 100644
index a9133f7a700..00000000000
--- a/testing/kiriki/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kiriki
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="An addictive and fun dice game"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kiriki/"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kcoreaddons-dev kconfig-dev kcrash-dev kdbusaddons-dev kdoctools-dev ki18n-dev kconfigwidgets-dev kiconthemes-dev kxmlgui-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kiriki-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="8a7f94b0dedfcfd30a3697afcf7dec763252b21d1e61097d6170ad1e9b1216216eebc6dc547e4f65aadb33cde6e2009d20992a6e40799502e02646f6c27412f1 kiriki-20.04.1.tar.xz"
diff --git a/testing/kismet/APKBUILD b/testing/kismet/APKBUILD
new file mode 100644
index 00000000000..fd8a5f4a96a
--- /dev/null
+++ b/testing/kismet/APKBUILD
@@ -0,0 +1,94 @@
+# Contributor: George Hopkins <george-hopkins@null.net>
+# Maintainer: George Hopkins <george-hopkins@null.net>
+pkgname=kismet
+_pkgver=2023-07-R1
+pkgver=${_pkgver/-R/.}
+pkgver=0.${pkgver/-/}
+pkgrel=2
+pkgdesc="Wireless network and device detector"
+url="https://www.kismetwireless.net/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="
+ abseil-cpp-dev
+ libnl3-dev
+ libpcap-dev
+ linux-headers
+ openssl-dev
+ pcre2-dev
+ protobuf-c-dev
+ protobuf-dev
+ sqlite-dev
+ zlib-dev
+ "
+subpackages="$pkgname-logtools
+ $pkgname-linux-bluetooth:linux_bluetooth
+ $pkgname-linux-wifi:linux_wifi
+ $pkgname-nrf-51822:nrf_51822
+ $pkgname-nxp-kw41z:nxp_kw41z
+ "
+options="!check" # no test-suite available
+source="$pkgname-$pkgver.tar.xz::https://www.kismetwireless.net/code/kismet-$_pkgver.tar.xz"
+builddir="$srcdir/kismet-$_pkgver"
+
+prepare() {
+ default_prepare
+ update_config_sub
+ sed -i "s/@VERSION@/$pkgver/" packaging/kismet.pc.in
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc/kismet \
+ --disable-libusb \
+ --disable-libwebsockets \
+ --disable-python-tools \
+ --disable-wifi-coconut
+ make -j $((JOBS < 16 ? JOBS : 16))
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/bin/kismet_discovery # example
+}
+
+logtools() {
+ pkgdesc="$pkgdesc - log tools"
+
+ amove usr/bin/kismetdb_*
+}
+
+linux_bluetooth() {
+ pkgdesc="$pkgdesc - Bluetooth capture support"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/kismet_cap_linux_bluetooth
+}
+
+linux_wifi() {
+ pkgdesc="$pkgdesc - Wi-Fi capture support"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/kismet_cap_linux_wifi
+}
+
+nrf_51822() {
+ pkgdesc="$pkgdesc - nRF51822 capture support"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/kismet_cap_nrf_51822
+}
+
+nxp_kw41z() {
+ pkgdesc="$pkgdesc - NXP KW41Z capture support"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/kismet_cap_nxp_kw41z
+}
+
+sha512sums="
+b8b320b8e09be5be582848ce8a1a66f71a96eccc3c78f52d3f1f18122abbe614ff3b5a55b5fcedf3e6a1fc959a72838adc0d7278ffd6c25a1c179a1caf5584ce kismet-0.202307.1.tar.xz
+"
diff --git a/testing/kitty/APKBUILD b/testing/kitty/APKBUILD
deleted file mode 100644
index 409bba24f91..00000000000
--- a/testing/kitty/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=kitty
-pkgver=0.17.4
-pkgrel=0
-pkgdesc="Modern, hackable, featureful, OpenGL based terminal emulator"
-url="https://sw.kovidgoyal.net/kitty/"
-arch="all !mips !mips64" # fails to build on mips
-license="GPL-3.0-only"
-#some test fails, disabled for now:
-#ERROR: test_box_drawing
-#ERROR: test_emoji_presentation
-#ERROR: test_font_rendering
-#ERROR: test_shaping
-#ERROR: test_sprite_map
-options="!check"
-depends="py3-pygments imagemagick ncurses ncurses-terminfo-base"
-makedepends="py3-setuptools harfbuzz-dev zlib-dev libpng-dev freetype-dev
- fontconfig-dev mesa-dev python3-dev dbus-dev libxi-dev
- libxkbcommon-dev libxrandr-dev libxinerama-dev libxcursor-dev
- wayland-protocols wayland-dev py3-sphinx libcanberra-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kovidgoyal/kitty/archive/v$pkgver.tar.gz
- fix-ppc64le-build-ioctl-with-musl.patch
- "
-
-build() {
- SPHINXBUILD=sphinx-build python3 setup.py linux-package
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py linux-package --prefix "$pkgdir/usr"
-}
-
-sha512sums="64c5533d31e81635301f559c26d3ad0c7b610b491d3abe26a9578b510406dd5e60c7ac8a4efd7dfdb6867e593b718db08217102567769c4e666299c78c387ec3 kitty-0.17.4.tar.gz
-330f56f5fd60607c57f4f2cffdf33768b3af9e4c3e271a60a05cc3c653d70f7402af91ba0cdfe0257c8b4779884a6440eb52496078bce11799aaa1829ced9245 fix-ppc64le-build-ioctl-with-musl.patch"
diff --git a/testing/kitty/fix-ppc64le-build-ioctl-with-musl.patch b/testing/kitty/fix-ppc64le-build-ioctl-with-musl.patch
deleted file mode 100644
index 6e925b33894..00000000000
--- a/testing/kitty/fix-ppc64le-build-ioctl-with-musl.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-kitty was breaking when building in ppc64le using musl, because ioctl() is defined
-as ioctl(int, int) in musl and mosh is using TIOCSWINSZ macro as parameter. This was
-triggering a gcc warning and make the build fail.
-
-This patch does an explicit integer conversion in TIOCSWINSZ, as no bits get
-lost.
-
-
---- a/kitty/child-monitor.c
-+++ b/kitty/child-monitor.c
-@@ -435,7 +435,11 @@
- static inline bool
- pty_resize(int fd, struct winsize *dim) {
- while(true) {
-+#if defined(__powerpc64__) && (!defined(__GLIBC__) && !defined(__UCLIBC__))
-+ if (ioctl(fd, (int) TIOCSWINSZ, dim) == -1) {
-+#else
- if (ioctl(fd, TIOCSWINSZ, dim) == -1) {
-+#endif
- if (errno == EINTR) continue;
- if (errno != EBADF && errno != ENOTTY) {
- log_error("Failed to resize tty associated with fd: %d with error: %s", fd, strerror(errno));
diff --git a/testing/kjumpingcube/APKBUILD b/testing/kjumpingcube/APKBUILD
deleted file mode 100644
index 0b00d42128a..00000000000
--- a/testing/kjumpingcube/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=kjumpingcube
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="A simple tactical game"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/kjumpingcube/"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kcoreaddons-dev kconfig-dev kconfigwidgets-dev kcrash-dev kdbusaddons-dev kdoctools-dev kio-dev ki18n-dev kxmlgui-dev kwidgetsaddons-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/kjumpingcube-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="8e39aae54ee2387bf2d733b09a833a9009e8d9ee3bd32c5da8414560dd08fc598ca31275893059cf0e0fae3a218d2688d522bd179d0dead17bea374dee8df983 kjumpingcube-20.04.1.tar.xz"
diff --git a/testing/kjv/APKBUILD b/testing/kjv/APKBUILD
new file mode 100644
index 00000000000..a6114ecc917
--- /dev/null
+++ b/testing/kjv/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Adam Thiede <me@adamthiede.com>
+# Maintainer: Adam Thiede <me@adamthiede.com>
+pkgname=kjv
+_pkgbase=0
+_pkgsnap=20221103
+_commit=1b675c0396806a2a3d134c51fd11d9fed8ea3dc5
+pkgver=${_pkgbase}_git$_pkgsnap
+pkgrel=0
+pkgdesc="Read the Word of God from your terminal"
+url="https://github.com/LukeSmithxyz/kjv"
+arch="noarch"
+license="Unlicense"
+depends="less sed gawk"
+makedepends="make tar"
+checkdepends="shellcheck"
+options="!check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/LukeSmithxyz/kjv/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit/"
+
+check() {
+ make test
+}
+
+package() {
+ make install PREFIX="$pkgdir"/usr
+}
+
+sha512sums="
+b4003456e404adcea109f68bea1e564ad3ba89a11c9fae0d0c458a9e88d1873e2c80af2221e8af5a8e0b546cb286a5732293426b1ed9e525e933c26428fd4158 kjv-0_git20221103.tar.gz
+"
diff --git a/testing/klfc/APKBUILD b/testing/klfc/APKBUILD
new file mode 100644
index 00000000000..2c6bd11ff1c
--- /dev/null
+++ b/testing/klfc/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
+pkgname=klfc
+pkgver=1.5.7
+pkgrel=0
+pkgdesc="Keyboard Layout Files Creator"
+url="https://github.com/39aldo39/klfc"
+arch="x86_64 aarch64" # limited by ghc / cabal
+license="GPL-3.0"
+makedepends="cabal ghc"
+subpackages="$pkgname-doc"
+source="https://github.com/39aldo39/klfc/archive/v$pkgver/klfc-$pkgver.tar.gz
+ ghc9-001.patch
+ ghc9-002.patch
+ cabal.config
+ "
+options="!check" # it seems that no tests are provided
+
+# Cabal seems to be built without sandbox, moving the cabal-dir into src.
+export CABAL_DIR="$srcdir/.cabal"
+
+cabal_update() {
+ msg "Freezing $pkgname dependencies"
+
+ # Resolve deps and generate fresh cabal.config with version constraints.
+ cabal update
+ (
+ cd "$builddir"
+ cabal v1-freeze --shadow-installed-packages
+
+ # Add version tag at the first line.
+ sed -i "1i--$pkgver" cabal.config
+
+ mv cabal.config "$startdir"/
+ )
+
+ cd "$startdir"
+ abuild checksum || die "Failed to update checksum, run 'abuild checksum' manually"
+}
+
+prepare() {
+ default_prepare
+
+ if [ "$(head -n 1 "$srcdir"/cabal.config)" != "--$pkgver" ]; then
+ die "Requirements file is outdated, run 'abuild cabal_update'"
+ fi
+ ln -sf "$srcdir"/cabal.config "$builddir"/cabal.config
+}
+
+build() {
+ cabal update
+ cabal install --only-dependencies
+ cabal configure \
+ --prefix='/usr' \
+ --bindir='$prefix/bin' \
+ --sysconfdir='/etc' \
+ --enable-executable-stripping \
+ --enable-split-sections \
+ --offline \
+ --jobs=${JOBS:-2} \
+ --ghc-options="${CFLAGS:+$(echo " $CFLAGS" | sed 's/ / -optc/g')}" \
+ --ghc-options="${LDFLAGS:+$(echo " $LDFLAGS" | sed 's/ / -optl/g')}" \
+ --ghc-option='-split-sections'
+ cabal build
+}
+
+check() {
+ cabal test
+}
+
+package() {
+ local docdir="$pkgdir/usr/share/doc/$pkgname"
+
+ install -D -m755 dist-newstyle/build/*/*/*/build/klfc/klfc \
+ "$pkgdir"/usr/bin/klfc
+
+ mkdir -p "$docdir"
+ cp -r doc/* "$docdir"/
+ cp -r examples "$docdir"/
+}
+
+sha512sums="
+bae6c7b3c21419e9fea73b38eaea7c7c27b9cb78b5bccd7ce11e733729f37d8d0b8d20435fa63bfb3c5be6479cca0caccc63d59a99aa04477414eddf9ce20919 klfc-1.5.7.tar.gz
+6acf2cb52be8b22bf8d40186bbea8a211f7237b808d72321d077722d33f9fb5f3da5f7f2ed345b2a8631046c31ed0feaeec3cb4ea24f68439d2af48f366e2a1b ghc9-001.patch
+febe8b7ce38393f8f0576cfd77c4eca56864c05c9028c2f94cf008f73eeca753c6247a71f03728e8f650e612193cf737b95b9ad3fbc96edc251f8fedc3cfe8ce ghc9-002.patch
+5be1e6dbfe1849fb5b7c01ada95ccdbf0c769463bac62dc49732fed8346e6b32bab2a52dadafc9e8cb7608122d85e4bbda4c1dd967a606902e79357e2571fba7 cabal.config
+"
diff --git a/testing/klfc/cabal.config b/testing/klfc/cabal.config
new file mode 100644
index 00000000000..1820689f5db
--- /dev/null
+++ b/testing/klfc/cabal.config
@@ -0,0 +1,68 @@
+--1.5.7
+constraints: aeson ==1.5.6.0,
+ ansi-terminal ==0.11.3,
+ ansi-wl-pprint ==0.6.9,
+ array ==0.5.4.0,
+ assoc ==1.0.2,
+ attoparsec ==0.14.4,
+ base ==4.15.1.0,
+ base-compat ==0.12.2,
+ base-compat-batteries ==0.12.2,
+ base-orphans ==0.8.7,
+ base-prelude ==1.6.1,
+ base-unicode-symbols ==0.2.4.2,
+ bifunctors ==5.5.12,
+ binary ==0.8.8.0,
+ bytestring ==0.10.12.1,
+ case-insensitive ==1.2.1.0,
+ chunked-data ==0.3.1,
+ colour ==2.3.6,
+ comonad ==5.0.8,
+ containers ==0.6.4.1,
+ containers-unicode-symbols ==0.3.1.3,
+ data-fix ==0.3.2,
+ deepseq ==1.4.5.0,
+ directory ==1.3.6.2,
+ distributive ==0.6.2.1,
+ dlist ==1.0,
+ fail ==4.9.0.0,
+ file-embed ==0.0.15.0,
+ filepath ==1.4.2.1,
+ ghc-bignum ==1.1,
+ ghc-boot-th ==9.0.2,
+ ghc-prim ==0.7.0,
+ hashable ==1.3.5.0,
+ indexed-traversable ==0.1.2,
+ integer-logarithms ==1.0.3.1,
+ megaparsec ==9.2.1,
+ microlens ==0.4.13.0,
+ microlens-ghc ==0.4.14.0,
+ microlens-mtl ==0.2.0.2,
+ microlens-platform ==0.4.3.2,
+ microlens-th ==0.4.3.10,
+ mtl ==2.2.2,
+ optparse-applicative ==0.17.0.0,
+ parser-combinators ==1.3.0,
+ pretty ==1.1.3.6,
+ primitive ==0.7.4.0,
+ process ==1.6.13.2,
+ random ==1.2.1.1,
+ rts ==1.0.2,
+ scientific ==0.3.7.0,
+ semigroups ==0.20,
+ splitmix ==0.1.0.4,
+ strict ==0.4.0.1,
+ tagged ==0.8.6.1,
+ template-haskell ==2.17.0.0,
+ text ==1.2.5.0,
+ th-abstraction ==0.4.4.0,
+ these ==1.1.1.1,
+ time ==1.9.3,
+ time-compat ==1.9.6.1,
+ transformers ==0.5.6.2,
+ transformers-compat ==0.7.2,
+ unix ==2.7.2.2,
+ unordered-containers ==0.2.19.1,
+ uuid-types ==1.0.5,
+ vector ==0.12.3.1,
+ xml ==1.3.14
diff --git a/testing/klfc/ghc9-001.patch b/testing/klfc/ghc9-001.patch
new file mode 100644
index 00000000000..265877877a3
--- /dev/null
+++ b/testing/klfc/ghc9-001.patch
@@ -0,0 +1,22 @@
+From ad4a431513470f8386dd7a8c28aeef35187193fe Mon Sep 17 00:00:00 2001
+From: Aldo Gunsing <dev@aldogunsing.nl>
+Date: Fri, 17 Dec 2021 00:11:58 +0100
+Subject: [PATCH] More fixes for GHC 9.0
+
+---
+ src/Layout/Modifier.hs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Layout/Modifier.hs b/src/Layout/Modifier.hs
+index 1fe456e..0d5e44c 100644
+--- a/src/Layout/Modifier.hs
++++ b/src/Layout/Modifier.hs
+@@ -22,7 +22,7 @@ module Layout.Modifier
+ , activatedBy
+ ) where
+
+-import BasePrelude hiding (Alt, Control, empty, fromList)
++import BasePrelude hiding (Alt, Control, empty, fromList, singleton)
+ import Prelude.Unicode hiding ((∈))
+ import Data.Foldable.Unicode ((∈))
+ import Data.Monoid.Unicode ((∅), (⊕))
diff --git a/testing/klfc/ghc9-002.patch b/testing/klfc/ghc9-002.patch
new file mode 100644
index 00000000000..eb8f452bf81
--- /dev/null
+++ b/testing/klfc/ghc9-002.patch
@@ -0,0 +1,41 @@
+From fee9bdeb76cc1f9e9e36b91764aff665c9164164 Mon Sep 17 00:00:00 2001
+From: Aldo Gunsing <dev@aldogunsing.nl>
+Date: Thu, 16 Dec 2021 22:38:09 +0100
+Subject: [PATCH] Fix compilation with GHC 9.0 (#40)
+
+See https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption
+for the required eta-expansion in lensWithDefault'
+
+Hiding singleton from BasePrelude gives a warning for previous GHC versions,
+but this is a minor issue
+---
+ src/Util.hs | 2 +-
+ src/WithPlus.hs | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Util.hs b/src/Util.hs
+index 0dc0884..dc096db 100644
+--- a/src/Util.hs
++++ b/src/Util.hs
+@@ -80,7 +80,7 @@ lensWithDefault guess setter getter f x =
+ (\y → setter (Just y) x) <$> f (fromMaybe (guess x) (getter x))
+
+ lensWithDefault' ∷ α → (Maybe α → σ → σ) → (σ → Maybe α) → Lens' σ α
+-lensWithDefault' = lensWithDefault ∘ const
++lensWithDefault' x = lensWithDefault (const x)
+
+ (!?) ∷ [α] → Int → Maybe α
+ (!?) xs i =
+diff --git a/src/WithPlus.hs b/src/WithPlus.hs
+index 1a46faf..558591d 100644
+--- a/src/WithPlus.hs
++++ b/src/WithPlus.hs
+@@ -9,7 +9,7 @@ module WithPlus
+ , parseString
+ ) where
+
+-import BasePrelude hiding (toList, fromList)
++import BasePrelude hiding (toList, fromList, singleton)
+ import Prelude.Unicode
+ import Data.Monoid.Unicode ((∅))
+ import Util (HumanReadable, split)
diff --git a/testing/klickety/APKBUILD b/testing/klickety/APKBUILD
deleted file mode 100644
index fce3a44025c..00000000000
--- a/testing/klickety/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=klickety
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="An adaptation of the Clickomania game"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/klickety/"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kcoreaddons-dev kconfig-dev kcrash-dev kwidgetsaddons-dev ki18n-dev kconfigwidgets-dev kxmlgui-dev kio-dev kdoctools-dev kdbusaddons-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/klickety-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="8a409f3ad658245a9967fb43ad1b63ee960ca63c3a0b168516c82fc6990918091bb4a141ac94cc2c0300ee7a4cc6f5e29495d7dea655aa2a638cbf8aa69a53c3 klickety-20.04.1.tar.xz"
diff --git a/testing/klines/APKBUILD b/testing/klines/APKBUILD
deleted file mode 100644
index b9f3f621083..00000000000
--- a/testing/klines/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=klines
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/klines/"
-pkgdesc="A simple but highly addictive one player game"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kcoreaddons-dev kconfig-dev kcrash-dev kwidgetsaddons-dev kdbusaddons-dev ki18n-dev kconfigwidgets-dev kxmlgui-dev kdoctools-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/klines-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="fd286956ca383b55a366782f2550eac67776a1e4a329dc64e65bc122145e9f88e009efabe5a3c34b7f23b8f220375feb8a0d8a3596a3b65c02c68f9706aefefb klines-20.04.1.tar.xz"
diff --git a/testing/kmscon/APKBUILD b/testing/kmscon/APKBUILD
new file mode 100644
index 00000000000..b300f29a22f
--- /dev/null
+++ b/testing/kmscon/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=kmscon
+pkgver=9.0.0
+pkgrel=0
+pkgdesc="Simple terminal emulator based on linux kernel mode setting"
+url="https://github.com/Aetf/kmscon"
+# ppc64le: FTBFS: compiled for a big endian system and target is little endian
+arch="all !ppc64le"
+license="MIT AND LGPL-2.1-or-later AND ( OFL-1.1 AND GPL-2.0-or-later WITH Font-exception-2.0 ) AND MIT AND BSD-2-Clause AND custom"
+makedepends="
+ eudev-dev
+ libdrm-dev
+ libtsm-dev
+ libxkbcommon-dev
+ mesa-dev
+ meson
+ pango-dev
+ pixman-dev
+ "
+checkdepends="mesa-dri-gallium xvfb-run"
+subpackages="$pkgname-doc"
+source="https://github.com/Aetf/kmscon/releases/download/v$pkgver/kmscon-$pkgver.tar.xz"
+# requires opening raw tty
+options="!spdx !check"
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dtests="$(want_check && echo true || echo false)" \
+ . output
+
+ meson compile -C output
+}
+
+check() {
+ xvfb-run -a meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ rm -rf "$pkgdir"/usr/lib/systemd/
+}
+
+sha512sums="
+2d4bca093c40307e155c9cfa349eef433d7ab6d08f8e134a61fa9c5ccb9ad594575725371075aaf917c2a9dfb3cb3cd148296dce25065a02b3a211650cde9c3c kmscon-9.0.0.tar.xz
+"
diff --git a/testing/knative-client/APKBUILD b/testing/knative-client/APKBUILD
new file mode 100644
index 00000000000..a3ac5b1105b
--- /dev/null
+++ b/testing/knative-client/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=knative-client
+pkgver=1.13.0
+pkgrel=2
+pkgdesc="CLI client for Knative the serverless container platform in Kubernetes"
+url="https://knative.dev/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+checkdepends="bash"
+subpackages="$pkgname-bash-completion $pkgname-zsh-completion"
+source="https://github.com/knative/client/archive/refs/tags/knative-v$pkgver.tar.gz"
+builddir="$srcdir/client-knative-v$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X knative.dev/client/pkg/kn/commands/version.Version=v$pkgver
+ -X knative.dev/client/pkg/kn/commands/version.GitRevision=AlpineLinux
+ -X 'knative.dev/client/pkg/kn/commands/version.BuildDate=$(date -u "+%Y-%m-%d %H:%M:%S" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})'
+ "
+
+ go build -v -ldflags "$_goldflags" ./cmd/kn/
+
+ for shell in bash zsh; do
+ ./kn completion $shell > kn.$shell
+ done
+}
+
+check() {
+ # knative.dev/client/pkg/kn/plugin/verify_test.go needs to access itself during test
+ GOFLAGS="${GOFLAGS/-trimpath/}" go test ./...
+}
+
+package() {
+ install -Dm755 kn -t "$pkgdir"/usr/bin/
+
+ install -Dm644 kn.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/kn
+ install -Dm644 kn.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_kn
+}
+
+sha512sums="
+97c35c3711f9025f7c4cfd155ff1b9d51ee0c31c7f8d08dc8d6844ec07dd22d9b6d98da4410564f62087818fe96bae7f9016f5325ed3252bbe4a6a61fecade55 knative-v1.13.0.tar.gz
+"
diff --git a/testing/knavalbattle/APKBUILD b/testing/knavalbattle/APKBUILD
deleted file mode 100644
index 203c62479d0..00000000000
--- a/testing/knavalbattle/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=knavalbattle
-pkgver=20.04.1
-pkgrel=0
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/knavalbattle/"
-pkgdesc="A ship sinking game"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev kconfig-dev kcrash-dev kdbusaddons-dev kdnssd-dev kdoctools-dev ki18n-dev ktextwidgets-dev kxmlgui-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/knavalbattle-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="dc4eaaaccf5fd53f361a1d57af2cfe7c565438f716aac3a6ccab80ecb279dce4b91e8f59ba1b3009457102191ec05fa2bdfd6eb60ea0a3181552436a933cf664 knavalbattle-20.04.1.tar.xz"
diff --git a/testing/knetwalk/APKBUILD b/testing/knetwalk/APKBUILD
deleted file mode 100644
index 6b44428ff7b..00000000000
--- a/testing/knetwalk/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=knetwalk
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="Connect all the terminals to the server, in as few turns as possible"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/games/knetwalk/"
-license="GPL-2.0-or-later AND GFDL-1.2-only"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev kcrash-dev kdbusaddons-dev kdoctools-dev ki18n-dev ktextwidgets-dev kwidgetsaddons-dev kxmlgui-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/knetwalk-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="240bdad5be7364186f55cb0f9d492e0e617e14642a2c089d464ebef19be70b1743f66da9a831384e9697d8681fbc444069174feb09d1dea61568eecd3a894f43 knetwalk-20.04.1.tar.xz"
diff --git a/testing/knights/APKBUILD b/testing/knights/APKBUILD
deleted file mode 100644
index f856e154679..00000000000
--- a/testing/knights/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=knights
-pkgver=20.04.1
-pkgrel=0
-pkgdesc="Chess board by KDE with XBoard protocol support"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://www.kde.org/applications/games/knights/"
-license="GPL-2.0-or-later"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev kdbusaddons-dev kconfigwidgets-dev kcrash-dev ktextwidgets-dev kxmlgui-dev kio-dev kplotting-dev kdoctools-dev kwallet-dev plasma-framework-dev libkdegames-dev"
-source="https://download.kde.org/stable/release-service/$pkgver/src/knights-$pkgver.tar.xz"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="860d95ac743f75cb30a0a4f16be90ad7b0d52cd43b398094d4a345feddf34f6bfaa52b85e1f443965672656cbf07e2722529f5ea41499cc9cc6dddae5f3c28df knights-20.04.1.tar.xz"
diff --git a/testing/knxd/APKBUILD b/testing/knxd/APKBUILD
new file mode 100644
index 00000000000..5d560a1b693
--- /dev/null
+++ b/testing/knxd/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Cían Hughes <Ci@nHugh.es>
+pkgname=knxd
+pkgver=0.14.59
+pkgrel=0
+pkgdesc="Knxd is an advanced KNX router/gateway; it can talk to all known KNX interfaces"
+arch="all"
+url="https://github.com/knxd/knxd"
+license="GPL-2.0-only"
+makedepends="
+ argp-standalone
+ autoconf
+ automake
+ bsd-compat-headers
+ fmt-dev
+ libev-dev
+ libtool
+ libusb-dev
+ linux-headers
+ m4
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://codeload.github.com/knxd/knxd/tar.gz/$pkgver
+ $pkgname-$pkgver-fmt10.patch::https://github.com/knxd/knxd/commit/797283251470786bffd6586571407337da899d30.patch"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ printf "#!/bin/sh\n\necho %s" "$pkgver" > ./tools/version.sh
+ sh ./bootstrap.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-systemd
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+0ae842bf9d753cb793df486a76a4830b702bc3c1e9af12a8e6ba603a8b419b40ad711d4db73c5b581b15bbe938026c7ae28953fc0b18b485c64f72ff99996fda knxd-0.14.59.tar.gz
+9aae4a071272f1bf654a38d98d29879180df04caabf25f5e3a493d38ae4cf357c2d0b2acd7e328ebc4eddaaaeb92441ea79d696c6c86455087efa34c932acb35 knxd-0.14.59-fmt10.patch
+"
diff --git a/testing/ko/APKBUILD b/testing/ko/APKBUILD
new file mode 100644
index 00000000000..0e308d6a312
--- /dev/null
+++ b/testing/ko/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=ko
+pkgver=0.15.2
+pkgrel=1
+pkgdesc="Build containers from Go projects"
+url="https://ko.build/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/ko-build/ko/archive/v$pkgver/ko-$pkgver.tar.gz
+ unset-CGO_ENABLED.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X github.com/google/ko/pkg/commands.Version=$pkgver"
+
+ for i in bash fish zsh; do
+ ./ko completion $i > ko.$i
+ done
+}
+
+check() {
+ # TestNewPublisherCanPublish test tries to connect to the Docker socket.
+ go test -skip TestNewPublisherCanPublish ./...
+}
+
+package() {
+ install -Dm755 ko -t "$pkgdir"/usr/bin/
+
+ install -Dm644 ko.bash "$pkgdir"/usr/share/bash-completion/completions/ko
+ install -Dm644 ko.fish "$pkgdir"/usr/share/fish/vendor_completions.d/ko.fish
+ install -Dm644 ko.zsh "$pkgdir"/usr/share/zsh/site-functions/_ko
+}
+
+sha512sums="
+3beee6f1540a2badf9f98a6b7a08800e4c49c58cc8d3fede20d309d0b06be1ab8d43f495a96e33c3d4ac319fed402bccfee197f07420c58e37759ffe3ea04c40 ko-0.15.2.tar.gz
+d9d8106872ce929f340978a4ff78c588a3ea7cb135a89669e7900b9568586b753a38a2b0cbfdf0e9610d9fdc2d1bed2f7027132263a926fdc9ef1a6b3fe36bd4 unset-CGO_ENABLED.patch
+"
diff --git a/testing/ko/unset-CGO_ENABLED.patch b/testing/ko/unset-CGO_ENABLED.patch
new file mode 100644
index 00000000000..32e48155925
--- /dev/null
+++ b/testing/ko/unset-CGO_ENABLED.patch
@@ -0,0 +1,20 @@
+--- a/pkg/build/gobuild_test.go
++++ b/pkg/build/gobuild_test.go
+@@ -229,7 +229,6 @@ func TestBuildEnv(t *testing.T) {
+ expectedEnvs: map[string]string{
+ "GOOS": "linux",
+ "GOARCH": "amd64",
+- "CGO_ENABLED": "0",
+ },
+ }, {
+ description: "override a default value",
+--- a/pkg/build/gobuild.go
++++ b/pkg/build/gobuild.go
+@@ -442,7 +442,6 @@ func cycloneDX() sbomber {
+ func buildEnv(platform v1.Platform, userEnv, configEnv []string) ([]string, error) {
+ // Default env
+ env := []string{
+- "CGO_ENABLED=0",
+ "GOOS=" + platform.OS,
+ "GOARCH=" + platform.Architecture,
+ }
diff --git a/testing/kodi-audioencoder-flac/APKBUILD b/testing/kodi-audioencoder-flac/APKBUILD
new file mode 100644
index 00000000000..767fb031e3d
--- /dev/null
+++ b/testing/kodi-audioencoder-flac/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-audioencoder-flac
+pkgver=20.2.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="Flac encoder addon for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/audioencoder.flac"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake flac-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/audioencoder.flac/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/audioencoder.flac-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+83e3a6cd0311af05c7f3ae456bbe3d5627e47bc5d8f163bdfe57f3e70f798db6e9728698c73b3dc9da6cca2204e6a07004edff012f9bbf2e2b062e3fb97d5338 kodi-audioencoder-flac-20.2.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-audioencoder-lame/APKBUILD b/testing/kodi-audioencoder-lame/APKBUILD
new file mode 100644
index 00000000000..3bef430f9f4
--- /dev/null
+++ b/testing/kodi-audioencoder-lame/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-audioencoder-lame
+pkgver=20.3.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="Lame MP3 encoder addon for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/audioencoder.lame"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake lame-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/audioencoder.lame/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/audioencoder.lame-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+83956e7874e84f6f1e211352ff031764f8173d554fa22c45eedb96d01275969858378ef52cc8cdb8ab10914e04c5bb460104d511b96f9724c23b4eaa654dd1b9 kodi-audioencoder-lame-20.3.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-audioencoder-vorbis/APKBUILD b/testing/kodi-audioencoder-vorbis/APKBUILD
new file mode 100644
index 00000000000..90e8113f509
--- /dev/null
+++ b/testing/kodi-audioencoder-vorbis/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-audioencoder-vorbis
+pkgver=20.2.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="Vorbis encoder addon for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/audioencoder.vorbis"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake libvorbis-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/audioencoder.vorbis/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/audioencoder.vorbis-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8465b4ad73efee6adaa385eeaa75ceca725a8257fbf4867c8094661408fcb7d028f977b913c9f873ff1cbd6fa7e20afdc92b95ed38e48dfcba9c00e3ac4b81ae kodi-audioencoder-vorbis-20.2.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-audioencoder-wav/APKBUILD b/testing/kodi-audioencoder-wav/APKBUILD
new file mode 100644
index 00000000000..a38e23ba93a
--- /dev/null
+++ b/testing/kodi-audioencoder-wav/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-audioencoder-wav
+pkgver=20.2.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="WAV encoder addon for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/audioencoder.wav"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/audioencoder.wav/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/audioencoder.wav-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7249bfbb0f01820353b089456fa766727dda62ab88306671e0e0941079808ee452f2d1f2824c30b6910bac37547a635f76f04ca682f4d8e5cfb3addffbff3459 kodi-audioencoder-wav-20.2.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-atari800/APKBUILD b/testing/kodi-game-libretro-atari800/APKBUILD
new file mode 100644
index 00000000000..148680c9b6d
--- /dev/null
+++ b/testing/kodi-game-libretro-atari800/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-atari800
+pkgver=3.1.0.28
+_realname=Nexus
+pkgrel=0
+pkgdesc="Atari800 for libretro/libco WIP"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.atari800"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+depends="kodi-game-libretro libretro-atari800"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.atari800/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.atari800-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -v "$pkgdir"/usr/lib/kodi/addons/game.libretro.atari800/game.libretro.atari800.so
+ ln -sfv /usr/lib/libretro/atari800_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.atari800/game.libretro.atari800.so
+}
+
+sha512sums="
+4ff46faa3a075cfb2e877c0d44c501434b234cd9cc010706e0a3dde3e0a1dab197dd9a1bead9e7b6219873a03415139feb7050deab25352fdaf2e45bbd7c7d94 kodi-game-libretro-atari800-3.1.0.28-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-bsnes/APKBUILD b/testing/kodi-game-libretro-beetle-bsnes/APKBUILD
new file mode 100644
index 00000000000..f7fa08d860d
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-bsnes/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-bsnes
+pkgver=0.9.26.27
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-BSNES for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-bsnes"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-bsnes"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-bsnes/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-bsnes-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-bsnes/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-bsnes/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-bsnes/game.libretro.beetle-bsnes.so
+ ln -s /usr/lib/libretro/mednafen_snes_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-bsnes/game.libretro.beetle-bsnes.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-bsnes/addon.xml
+}
+
+sha512sums="
+d050c2b7691df604ba0841da406777f84da0796752992de84a9ebd5f69b13ee0a3cc5f000afa9ba1825b2093b4dcca7a6bb8138c4b377b170034d21ce7024c66 kodi-game-libretro-beetle-bsnes-0.9.26.27-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-lynx/APKBUILD b/testing/kodi-game-libretro-beetle-lynx/APKBUILD
new file mode 100644
index 00000000000..b1ba85497bf
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-lynx/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-lynx
+pkgver=1.24.0.50
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-Lynx for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-lynx"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only AND Zlib"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-lynx"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-lynx/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-lynx-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-lynx/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-lynx/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-lynx/game.libretro.beetle-lynx.so
+ ln -s /usr/lib/libretro/mednafen_lynx_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-lynx/game.libretro.beetle-lynx.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-lynx/addon.xml
+}
+
+sha512sums="
+b62d0aed7d7730836da80d4454ed565d9252c8eccf89f054456859e252b05b193266e6da5826775d1ed69bba0258f6c40b6284b93117d1d10fe0ae4ed2f2d40d kodi-game-libretro-beetle-lynx-1.24.0.50-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-ngp/APKBUILD b/testing/kodi-game-libretro-beetle-ngp/APKBUILD
new file mode 100644
index 00000000000..383f48f3960
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-ngp/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-ngp
+pkgver=1.29.0.35
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-NGP for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-ngp"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-ngp"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-ngp/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-ngp-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-ngp/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-ngp/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-ngp/game.libretro.beetle-ngp.so
+ ln -s /usr/lib/libretro/mednafen_ngp_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-ngp/game.libretro.beetle-ngp.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-ngp/addon.xml
+}
+
+sha512sums="
+4f3f78e022ef2a06fb8415dd52319878792f33871ba78294102b8ad403c47dec45733f6c08f7e2ee70eeb9cc13306f68deb5cefeec12d493c6afed766a3a91e7 kodi-game-libretro-beetle-ngp-1.29.0.35-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-pce-fast/APKBUILD b/testing/kodi-game-libretro-beetle-pce-fast/APKBUILD
new file mode 100644
index 00000000000..7114e602030
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-pce-fast/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-pce-fast
+pkgver=1.31.0.43
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-PCE-fast for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-pce-fast"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-pce-fast"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-pce-fast/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-pce-fast-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-pce-fast/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-pce-fast/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-pce-fast/game.libretro.beetle-pce-fast.so
+ ln -s /usr/lib/libretro/mednafen_pce_fast_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-pce-fast/game.libretro.beetle-pce-fast.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-pce-fast/addon.xml
+}
+
+sha512sums="
+449f1e05ebff42ed5c82bb7369356805029c2d742ea6d66bbeda48b901a464a2a4cc6f3e64d9797b0fa8f31ade80916ebaf30ac3cdf9e61b34c8e79b364dfd60 kodi-game-libretro-beetle-pce-fast-1.31.0.43-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-pcfx/APKBUILD b/testing/kodi-game-libretro-beetle-pcfx/APKBUILD
new file mode 100644
index 00000000000..07a77188048
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-pcfx/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-pcfx
+pkgver=0.9.36.36
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-pcfx for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-pcfx"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-pcfx"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-pcfx/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-pcfx-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-pcfx/game.libretro.beetle-pcfx.so
+ ln -s /usr/lib/libretro/mednafen_pcfx_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-pcfx/game.libretro.beetle-pcfx.so
+}
+
+sha512sums="
+a459a02fd9934d4ea81b87dfc160caf52b77c6e4001d7f08761f465b2b427772f251bf00377e7588681ef737e9f90963daaebe1791379c8927930e187234969c kodi-game-libretro-beetle-pcfx-0.9.36.36-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-psx/APKBUILD b/testing/kodi-game-libretro-beetle-psx/APKBUILD
new file mode 100644
index 00000000000..df7818169a6
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-psx/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-psx
+pkgver=0.9.44.53
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-PSX for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-psx"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-or-later"
+depends="kodi-game-libretro libretro-beetle-psx"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-psx/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-psx-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -f "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-psx/game.libretro.beetle-psx.so
+ ln -s /usr/lib/libretro/mednafen_psx_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-psx/game.libretro.beetle-psx.so
+}
+
+sha512sums="
+853ab086d35ca5f2a2cab924ef55d443bec63451a5b38951fe89b91822f80dcaf5b541dad293b6bd370785812e62c49ad8b2a9f5e819b2b4393eee4020e9c965 kodi-game-libretro-beetle-psx-0.9.44.53-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-saturn/APKBUILD b/testing/kodi-game-libretro-beetle-saturn/APKBUILD
new file mode 100644
index 00000000000..e8a549af524
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-saturn/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-saturn
+pkgver=1.29.0.40
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-Saturn for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-saturn"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-saturn"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-saturn/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-saturn-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-saturn/resources/icon.png \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-saturn/game.libretro.beetle-saturn.so
+ ln -s /usr/lib/libretro/mednafen_saturn_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-saturn/game.libretro.beetle-saturn.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-saturn/addon.xml
+}
+
+sha512sums="
+20476e6cec3c239eb3024612ba46886176b1fc1c3c97cd09579948d2f7cbf3906c97a5957e0fc0c8e79c05c045d8faec5309e59243eb19eca05be6a577996873 kodi-game-libretro-beetle-saturn-1.29.0.40-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-supergrafx/APKBUILD b/testing/kodi-game-libretro-beetle-supergrafx/APKBUILD
new file mode 100644
index 00000000000..f2841da586c
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-supergrafx/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-supergrafx
+pkgver=1.29.0.39
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-Supergrafx for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-supergrafx"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-supergrafx"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-supergrafx/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-supergrafx-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-supergrafx/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-supergrafx/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-supergrafx/game.libretro.beetle-supergrafx.so
+ ln -s /usr/lib/libretro/mednafen_supergrafx_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-supergrafx/game.libretro.beetle-supergrafx.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-supergrafx/addon.xml
+}
+
+sha512sums="
+6f23cf859d19fc4a5577b8214fb56a379f3776f6bdf53265c9ae3d0e1da4699a45037610f52c366d23be3554a84e06d600fed1a70bd53d99a22163da42bd309d kodi-game-libretro-beetle-supergrafx-1.29.0.39-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-vb/APKBUILD b/testing/kodi-game-libretro-beetle-vb/APKBUILD
new file mode 100644
index 00000000000..19011b245e0
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-vb/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-vb
+pkgver=1.31.0.34
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-VB for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-vb"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-vb"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-vb/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-vb-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-vb/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-vb/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-vb/game.libretro.beetle-vb.so
+ ln -s /usr/lib/libretro/mednafen_vb_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-vb/game.libretro.beetle-vb.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-vb/addon.xml
+
+}
+
+sha512sums="
+42ab8efca903f90e7abf1ad97b89e89b5d69793c944c795311237551144be71c319b0493404798067c7163e9863aa685c34b4eada31fa4c21de5c05d9d8577c7 kodi-game-libretro-beetle-vb-1.31.0.34-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-beetle-wswan/APKBUILD b/testing/kodi-game-libretro-beetle-wswan/APKBUILD
new file mode 100644
index 00000000000..7b20fbcd50c
--- /dev/null
+++ b/testing/kodi-game-libretro-beetle-wswan/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-beetle-wswan
+pkgver=0.9.35.41
+_realname=Nexus
+pkgrel=0
+pkgdesc="Beetle-wswan for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.beetle-wswan"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-beetle-wswan"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.beetle-wswan/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.beetle-wswan-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-wswan/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-wswan/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-wswan/game.libretro.beetle-wswan.so
+ ln -s /usr/lib/libretro/mednafen_wswan_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.beetle-wswan/game.libretro.beetle-wswan.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.beetle-wswan/addon.xml
+}
+
+sha512sums="
+b44d73836867a43ba137e116a6b77c7ba8df68d70a492ea9f48dd394ec88bcdd635dcd497eeec4965bd117ef43b7872d671cc2d3e3194328156df5b6555987bc kodi-game-libretro-beetle-wswan-0.9.35.41-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-desmume/APKBUILD b/testing/kodi-game-libretro-desmume/APKBUILD
new file mode 100644
index 00000000000..453fcdfda6b
--- /dev/null
+++ b/testing/kodi-game-libretro-desmume/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-desmume
+pkgver=0.0.1.28
+_realname=Nexus
+pkgrel=0
+pkgdesc="DESMuME GameClient for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.desmume"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-or-later"
+depends="kodi-game-libretro libretro-desmume"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.desmume/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.desmume-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -f "$pkgdir"/usr/lib/kodi/addons/game.libretro.desmume/game.libretro.desmume.so
+ ln -s /usr/lib/libretro/desmume_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.desmume/game.libretro.desmume.so
+}
+
+sha512sums="
+d9d419aaee1c8cfd8fd572ffd822fa74551e34ededed2595512dcf1945f3027a35523a4cda73a3207132e8942259ce4ad123b3fdcd92ad2977291bb3d10750f6 kodi-game-libretro-desmume-0.0.1.28-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-dosbox/APKBUILD b/testing/kodi-game-libretro-dosbox/APKBUILD
new file mode 100644
index 00000000000..6be1a556dab
--- /dev/null
+++ b/testing/kodi-game-libretro-dosbox/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-dosbox
+pkgver=0.74.0.25
+_realname=Nexus
+pkgrel=0
+pkgdesc="DosBox GameClient for XBMC"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.dosbox"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-dosbox"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.dosbox/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.dosbox-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm "$pkgdir"/usr/lib/kodi/addons/game.libretro.dosbox/game.libretro.dosbox.so
+ ln -s /usr/lib/libretro/dosbox_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.dosbox/game.libretro.dosbox.so
+}
+
+sha512sums="
+13fe96afaac484cab0a1db242bc6f80b8a732543ee1b554dece3b099f7e308338d96564a6ad7c469aee07363ddcfc387aa126613d3ed203faaff19a9cadc08b9 kodi-game-libretro-dosbox-0.74.0.25-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-fbneo/APKBUILD b/testing/kodi-game-libretro-fbneo/APKBUILD
new file mode 100644
index 00000000000..bcf0316f6a1
--- /dev/null
+++ b/testing/kodi-game-libretro-fbneo/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-fbneo
+pkgver=1.0.0.71
+_realname=Nexus
+pkgrel=0
+pkgdesc="FinalBurn Neo GameClient for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.fbneo"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-or-later"
+depends="kodi-game-libretro libretro-fbneo"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.fbneo/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.fbneo-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -f "$pkgdir"/usr/lib/kodi/addons/game.libretro.fbneo/game.libretro.fbneo.so
+ ln -s /usr/lib/libretro/fbneo_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.fbneo/game.libretro.fbneo.so
+}
+
+sha512sums="
+aff721d7d062f1e58c21340d0c2f3500ccd0c45350179b36c14e6015a04386899517908eddceaea80087372d11600e8f7af92c7ae198a0a77acb190e443ec4b6 kodi-game-libretro-fbneo-1.0.0.71-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-frodo/APKBUILD b/testing/kodi-game-libretro-frodo/APKBUILD
new file mode 100644
index 00000000000..af221dda812
--- /dev/null
+++ b/testing/kodi-game-libretro-frodo/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-frodo
+pkgver=0.0.1.25
+_realname=Nexus
+pkgrel=0
+pkgdesc="Commodore - C64 (Frodo) game addon for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.frodo"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-frodo"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.frodo/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.frodo-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/lib/kodi/addons/game.libretro.frodo/game.libretro.frodo.so
+ ln -s /usr/lib/libretro/frodo_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.frodo/game.libretro.frodo.so
+}
+
+sha512sums="
+f96e40fa6f177bb45a353a31fe121d1040166419fc589f8aee28ebc0da25083657973c23c673a246b6375c60c909c9d7eeb92738cd3a96212547e48e66f3126e kodi-game-libretro-frodo-0.0.1.25-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-mame2000/APKBUILD b/testing/kodi-game-libretro-mame2000/APKBUILD
new file mode 100644
index 00000000000..f510035af12
--- /dev/null
+++ b/testing/kodi-game-libretro-mame2000/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-mame2000
+pkgver=0.37.0.32
+_realname=Nexus
+pkgrel=0
+pkgdesc="MAME 2000 GameClient for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.mame2000"
+arch="x86_64 armv7" # kodi is available only on these architectures
+#aarch64: blocked by libretro-mame2000 (why?)
+license="custom"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-mame2000"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.mame2000/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.mame2000-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/lib/kodi/addons/game.libretro.mame2000/game.libretro.mame2000.so
+ ln -s /usr/lib/libretro/mame2000_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.mame2000/game.libretro.mame2000.so
+}
+
+sha512sums="
+23cd9cebfc222d49d16e820b508fe4303a9f3429f625aa64a3b68ee11264bf887b4172d7cf3d30000a936927e5da59105cc4d4e815f762ae0afd960115f7bc27 kodi-game-libretro-mame2000-0.37.0.32-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-mame2003/APKBUILD b/testing/kodi-game-libretro-mame2003/APKBUILD
new file mode 100644
index 00000000000..ba9b6a46bc6
--- /dev/null
+++ b/testing/kodi-game-libretro-mame2003/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-mame2003
+pkgver=0.78.0.54
+_realname=Nexus
+pkgrel=0
+pkgdesc="MAME 2003 GameClient for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.mame2003"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="custom"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-mame2003"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.mame2003/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.mame2003-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/lib/kodi/addons/game.libretro.mame2003/game.libretro.mame2003.so
+ ln -s /usr/lib/libretro/mame2003_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.mame2003/game.libretro.mame2003.so
+}
+
+sha512sums="
+23eb904bd16b8aff0eb32754635e1498a3df962e1a63c1402f4fead327267fd8c3375b27d1c4d0cd29b62e0552862d213ec6583c943196aac13a3bd3995b1874 kodi-game-libretro-mame2003-0.78.0.54-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-mgba/APKBUILD b/testing/kodi-game-libretro-mgba/APKBUILD
new file mode 100644
index 00000000000..479afbc0bbb
--- /dev/null
+++ b/testing/kodi-game-libretro-mgba/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-mgba
+pkgver=0.11.0.44
+_realname=Nexus
+pkgrel=0
+pkgdesc="mGBA for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.mgba"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="MPL-2.0"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-mgba"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.mgba/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.mgba-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.mgba/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.mgba/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.mgba/game.libretro.mgba.so
+ ln -s /usr/lib/libretro/mgba_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.mgba/game.libretro.mgba.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.mgba/addon.xml
+}
+
+sha512sums="
+5ba66fae0349ffc8d0eb3760d1ac8e38cb83f7e75dfb50d942ac304fa60059e63449965a8a2480f1989f40e6527774ba8350f5cbc788d6fef33de1b872469f94 kodi-game-libretro-mgba-0.11.0.44-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-mupen64plus-nx/APKBUILD b/testing/kodi-game-libretro-mupen64plus-nx/APKBUILD
new file mode 100644
index 00000000000..de79343c67d
--- /dev/null
+++ b/testing/kodi-game-libretro-mupen64plus-nx/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-mupen64plus-nx
+pkgver=2.5.0.40
+_realname=Nexus
+pkgrel=0
+pkgdesc="N64 emulation library for the libretro API, based on Mupen64Plus"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.mupen64plus-nx"
+arch="x86_64" # libretro-mupen64plus available only on these architectures
+license="GPL-2.0-or-later"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-mupen64plus"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.mupen64plus-nx/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.mupen64plus-nx-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/lib/kodi/addons/game.libretro.mupen64plus-nx/game.libretro.mupen64plus-nx.so
+ ln -s /usr/lib/libretro/mupen64plus_next_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.mupen64plus-nx/game.libretro.mupen64plus-nx.so
+}
+
+sha512sums="
+15ce92449a473e0cf0114797f1e3cad653138aa388d0b47198173494a4a1f8ca3ca7361e19f276b42c4dd9ef3d17c9f5685896aade1fad38f912b134eb334334 kodi-game-libretro-mupen64plus-nx-2.5.0.40-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-nestopia/APKBUILD b/testing/kodi-game-libretro-nestopia/APKBUILD
new file mode 100644
index 00000000000..235c225683d
--- /dev/null
+++ b/testing/kodi-game-libretro-nestopia/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-nestopia
+pkgver=1.52.0.41
+_realname=Nexus
+pkgrel=0
+pkgdesc="Nestopia GameClient for XBMC"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.nestopia"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-or-later"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-nestopia"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.nestopia/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.nestopia-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.nestopia/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.nestopia/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.nestopia/game.libretro.nestopia.so
+ ln -s /usr/lib/libretro/nestopia_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.nestopia/game.libretro.nestopia.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.nestopia/addon.xml
+}
+
+sha512sums="
+86b893f699285c7c7e881f31af98109cd7045d03f93a93621d28f969cfae0c22bdc8e431d48a9313755880d8bf27912d8eb872cbd81041fa701aad83f0da7383 kodi-game-libretro-nestopia-1.52.0.41-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-snes9x/APKBUILD b/testing/kodi-game-libretro-snes9x/APKBUILD
new file mode 100644
index 00000000000..aefba1b7967
--- /dev/null
+++ b/testing/kodi-game-libretro-snes9x/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-snes9x
+pkgver=1.62.3.45
+_realname=Nexus
+pkgrel=0
+pkgdesc="Snes9X GameClient for XBMC"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.snes9x"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="custom"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-snes9x"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.snes9x/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.snes9x-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.snes9x/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.snes9x/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.snes9x/game.libretro.snes9x.so
+ ln -s /usr/lib/libretro/snes9x_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.snes9x/game.libretro.snes9x.so
+}
+
+sha512sums="
+dd6903283059195975134662c9a1d8b2b1fb82ea1ea494c4a5087ac20c19d7b6ad3534351f1c2e1461041e9168a56f8b198dfb0b726e56e6b047a4c3f6d9abc7 kodi-game-libretro-snes9x-1.62.3.45-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro-theodore/APKBUILD b/testing/kodi-game-libretro-theodore/APKBUILD
new file mode 100644
index 00000000000..f6cc8b486a4
--- /dev/null
+++ b/testing/kodi-game-libretro-theodore/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro-theodore
+pkgver=0.0.1.32
+_realname=Nexus
+pkgrel=0
+pkgdesc="Libretro core for Thomson MO/TO emulation"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro.theodore"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-3.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="kodi-game-libretro libretro-theodore"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro.theodore/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro.theodore-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/kodi/addons/game.libretro.theodore/resources/icon.png \
+ "$pkgdir"/usr/share/kodi/addons/game.libretro.theodore/resources/screenshot* \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.theodore/game.libretro.theodore.so
+ ln -s /usr/lib/libretro/theodore_libretro.so \
+ "$pkgdir"/usr/lib/kodi/addons/game.libretro.theodore/game.libretro.theodore.so
+ sed -i '/<assets>/,/<\/assets>/d' "$pkgdir"/usr/share/kodi/addons/game.libretro.theodore/addon.xml
+}
+
+sha512sums="
+c24c015361cd8c35152fe8f651aa31044c7f33836942f0d6696e4fe670f9d5dfcd39d49a5cd803e91518ddedcfa59bf14a8cabc06219dafdf16d4d6860145844 kodi-game-libretro-theodore-0.0.1.32-Nexus.tar.gz
+"
diff --git a/testing/kodi-game-libretro/APKBUILD b/testing/kodi-game-libretro/APKBUILD
new file mode 100644
index 00000000000..9f73b7e5840
--- /dev/null
+++ b/testing/kodi-game-libretro/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-game-libretro
+pkgver=20.1.0
+_realname=Nexus
+pkgrel=0
+pkgdesc="Libretro compatibility layer for the Kodi Game API"
+options="!check" # no test suite
+url="https://github.com/kodi-game/game.libretro"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+depends="libretro-core-info"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-game/game.libretro/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/game.libretro-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+df1ea78b978a753b8698e808cd241fafc34d731e38d4f165b713e2bb836e9b1353ea6d8506e2f4915116e5e430286903615faa7eb6c3526f163e7cba88cedabf kodi-game-libretro-20.1.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-inputstream-adaptive/APKBUILD b/testing/kodi-inputstream-adaptive/APKBUILD
new file mode 100644
index 00000000000..5268c6af3aa
--- /dev/null
+++ b/testing/kodi-inputstream-adaptive/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-inputstream-adaptive
+pkgver=20.3.12
+_realname=Nexus
+pkgrel=0
+pkgdesc="kodi inputstream addon for several manifest types"
+url="https://github.com/xbmc/inputstream.adaptive"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake expat-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/inputstream.adaptive/archive/$pkgver-$_realname.tar.gz
+ "
+builddir="$srcdir/inputstream.adaptive-$pkgver-$_realname"
+options="net" # special bento4
+
+# fails some string comparison
+case "$CARCH" in
+armv7) options="$options !check" ;;
+esac
+
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi \
+ -DENABLE_INTERNAL_BENTO4=ON
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+269f568ae9830b21ea62659b12e7d9a9b7dc27ac3df1c60802ce5a36902ca0e83e69b609bbd44ca82d91a0b8749fdb0e83bb3472d41534c10fc8d197fed0ae8b kodi-inputstream-adaptive-20.3.12-Nexus.tar.gz
+"
diff --git a/testing/kodi-inputstream-ffmpegdirect/APKBUILD b/testing/kodi-inputstream-ffmpegdirect/APKBUILD
new file mode 100644
index 00000000000..4d927268694
--- /dev/null
+++ b/testing/kodi-inputstream-ffmpegdirect/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-inputstream-ffmpegdirect
+pkgver=20.5.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="Supports streams opened by FFmpeg's libavformat or Kodi's cURL such as plain TS, HLS and DASH (non-DRM) as well as many others"
+options="!check" # no test suite
+url="https://github.com/xbmc/inputstream.ffmpegdirect"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xbmc/inputstream.ffmpegdirect/archive/$pkgver-$_realname.tar.gz
+ ctime.patch
+ gcc13.patch
+ "
+builddir="$srcdir/inputstream.ffmpegdirect-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+9db8e25f04400635e13cf7c79f7079be9c7ffbf427423abcfc449dcd06f6259dcf9ed1ad1eae1563db239978c8399e054e7c6adcbebb5cc70c4de1c01643d074 kodi-inputstream-ffmpegdirect-20.5.0.tar.gz
+9483f8b0b8fafc269f2aeb6156ab7f798154ada57a0dd7cc0578605cfeb90546a7a79de70df67847aaf343a1d86896f9ee2eab9f29872063135902fc370d9f17 ctime.patch
+29d5dcb312cbfa9b73f776688c8db7a3488ae8cff172b7585883d2d0dfef487dc49e8ccbe6de74ad7b4e0d4abeb9c12285a5c06726db55b76a8af3b06289c478 gcc13.patch
+"
diff --git a/testing/kodi-inputstream-ffmpegdirect/ctime.patch b/testing/kodi-inputstream-ffmpegdirect/ctime.patch
new file mode 100644
index 00000000000..75936aa9d1c
--- /dev/null
+++ b/testing/kodi-inputstream-ffmpegdirect/ctime.patch
@@ -0,0 +1,12 @@
+diff --git a/src/utils/Properties.h b/src/utils/Properties.h
+index e068052..e992946 100644
+--- a/src/utils/Properties.h
++++ b/src/utils/Properties.h
+@@ -7,6 +7,7 @@
+
+ #pragma once
+
++#include <ctime>
+ #include <string>
+
+ namespace ffmpegdirect
diff --git a/testing/kodi-inputstream-ffmpegdirect/gcc13.patch b/testing/kodi-inputstream-ffmpegdirect/gcc13.patch
new file mode 100644
index 00000000000..05761ba9c42
--- /dev/null
+++ b/testing/kodi-inputstream-ffmpegdirect/gcc13.patch
@@ -0,0 +1,24 @@
+diff --git a/src/utils/DiskUtils.h b/src/utils/DiskUtils.h
+index 79e3426..f900ec5 100644
+--- a/src/utils/DiskUtils.h
++++ b/src/utils/DiskUtils.h
+@@ -7,6 +7,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+
+ namespace ffmpegdirect
+diff --git a/src/utils/HttpProxy.h b/src/utils/HttpProxy.h
+index eb0c99c..00841af 100644
+--- a/src/utils/HttpProxy.h
++++ b/src/utils/HttpProxy.h
+@@ -7,6 +7,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+
+ namespace ffmpegdirect
diff --git a/testing/kodi-inputstream-rtmp/APKBUILD b/testing/kodi-inputstream-rtmp/APKBUILD
new file mode 100644
index 00000000000..e2e4f28ff23
--- /dev/null
+++ b/testing/kodi-inputstream-rtmp/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-inputstream-rtmp
+pkgver=20.3.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="RTMP input stream add-on for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/inputstream.rtmp"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake rtmpdump-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/inputstream.rtmp/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/inputstream.rtmp-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+4c70d3df184eae19e359460560257012fece6cbd571d9a27c01f0dbdff84f1ce12b88527a1797cdc3c2a12e39edb92a7a82dd1cfd5721b553290a295733df9f6 kodi-inputstream-rtmp-20.3.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-peripheral-joystick/APKBUILD b/testing/kodi-peripheral-joystick/APKBUILD
new file mode 100644
index 00000000000..dc134e6a7aa
--- /dev/null
+++ b/testing/kodi-peripheral-joystick/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-peripheral-joystick
+pkgver=20.1.9
+_realname=Nexus
+pkgrel=0
+pkgdesc="Kodi joystick support (drivers and button maps)"
+options="!check" # no test suite
+url="https://github.com/xbmc/peripheral.joystick"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai tinyxml-dev"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/peripheral.joystick/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/peripheral.joystick-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1e906317ae471495b8b39333b30cc11fd8902fd1bf2fadbfbee72d785667227c44f76d009e80c1de2a87b91396a7c75f3ff53fc745395dd6584582c321d64481 kodi-peripheral-joystick-20.1.9-Nexus.tar.gz
+"
diff --git a/testing/kodi-pvr-hts/APKBUILD b/testing/kodi-pvr-hts/APKBUILD
new file mode 100644
index 00000000000..b3d90ba73a7
--- /dev/null
+++ b/testing/kodi-pvr-hts/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-pvr-hts
+pkgver=20.6.2
+_realname=Nexus
+pkgrel=1
+pkgdesc="Kodi's Tvheadend HTSP client addon"
+options="!check" # no test suite
+url="https://github.com/kodi-pvr/pvr.hts"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-pvr/pvr.hts/archive/$pkgver-$_realname.tar.gz
+ ctime.patch
+ "
+builddir="$srcdir/pvr.hts-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8213b2d061abc3eeb8253426c37425826ed00450e43cc1561d154311b19d5280190e3ad09666cb01134a72ac02956395a56a36e78eb97c88f88cb8ded7eaad2f kodi-pvr-hts-20.6.2-Nexus.tar.gz
+e5171f4fd01488e569caff1c4854f99af7201c9eaf5548f636aa0698b45ec062e1004c30bca165e93af9e232ae96875a41bc84f8cfc6a95ee2b8ce1085baa4c7 ctime.patch
+"
diff --git a/testing/kodi-pvr-hts/ctime.patch b/testing/kodi-pvr-hts/ctime.patch
new file mode 100644
index 00000000000..1a00c057551
--- /dev/null
+++ b/testing/kodi-pvr-hts/ctime.patch
@@ -0,0 +1,12 @@
+diff --git a/src/tvheadend/entity/Event.h b/src/tvheadend/entity/Event.h
+index 513bdaa..8569312 100644
+--- a/src/tvheadend/entity/Event.h
++++ b/src/tvheadend/entity/Event.h
+@@ -10,6 +10,7 @@
+ #include "Entity.h"
+
+ #include <cstdint>
++#include <ctime>
+ #include <map>
+ #include <string>
+ #include <vector>
diff --git a/testing/kodi-pvr-iptvsimple/APKBUILD b/testing/kodi-pvr-iptvsimple/APKBUILD
new file mode 100644
index 00000000000..bf097608287
--- /dev/null
+++ b/testing/kodi-pvr-iptvsimple/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-pvr-iptvsimple
+pkgver=20.11.0
+_realname=Nexus
+pkgrel=0
+pkgdesc="IPTV Simple client addon for Kodi"
+options="!check" # no test suite
+url="https://github.com/kodi-pvr/pvr.iptvsimple"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/kodi-pvr/pvr.iptvsimple/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/pvr.iptvsimple-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+052da2a550c7264f396a64277bffd068d6fbfc1eb252c8270e3b2846a856d642a1d45f69a2115db528a8654afa377316ee9153907afbf6be1a630d581621bea5 kodi-pvr-iptvsimple-20.11.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-vfs-libarchive/APKBUILD b/testing/kodi-vfs-libarchive/APKBUILD
new file mode 100644
index 00000000000..a4d076ab9a9
--- /dev/null
+++ b/testing/kodi-vfs-libarchive/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-vfs-libarchive
+pkgver=20.3.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="Libarchive VFS add-on for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/vfs.libarchive"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake libarchive-dev lz4-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/vfs.libarchive/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/vfs.libarchive-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+cedb21992b23b821ae1070f18c41b3329fb8208fc753ba2cdf7354058cb14f8c2f88f63d5d6791c819b27221468441852c7cecb03b649a9ebdafd282a971d1ca kodi-vfs-libarchive-20.3.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-vfs-rar/APKBUILD b/testing/kodi-vfs-rar/APKBUILD
new file mode 100644
index 00000000000..59c093a4c12
--- /dev/null
+++ b/testing/kodi-vfs-rar/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-vfs-rar
+pkgver=20.1.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="RAR VFS add-on for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/vfs.rar"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/vfs.rar/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/vfs.rar-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+01674c857c547eaa9042840d6558598fac0e95b3426d0ea9a8f4815dd40efcf3418e98025283de81281ddd5a5f1f1f52f0b35557c56a0862798d1e760a797e52 kodi-vfs-rar-20.1.0-Nexus.tar.gz
+"
diff --git a/testing/kodi-vfs-sacd/APKBUILD b/testing/kodi-vfs-sacd/APKBUILD
new file mode 100644
index 00000000000..516e087deeb
--- /dev/null
+++ b/testing/kodi-vfs-sacd/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-vfs-sacd
+pkgver=20.1.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="SACD VFS add-on for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/vfs.sacd"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake libssh-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/vfs.sacd/archive/$pkgver-$_realname.tar.gz
+ int-conversion.patch
+ "
+builddir="$srcdir/vfs.sacd-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+50d6272465dc55c4b08479e72f3751eb5efc7075c1aa10c51a7fd7d1bc5b3135961b971f34ffe354cc45679635dc2db460c8b04f3d1dd4afe877d2295feb2ca6 kodi-vfs-sacd-20.1.0-Nexus.tar.gz
+6be95313c2a5a97dc9ed50d90c2311b2486eb4b05e2a4f4aca9e2da8cad1193de4d8bc945a24e77b964b6072f5805018b7cc18b78112bb942fb58f99be62dd6c int-conversion.patch
+"
diff --git a/testing/kodi-vfs-sacd/int-conversion.patch b/testing/kodi-vfs-sacd/int-conversion.patch
new file mode 100644
index 00000000000..e54c6d36461
--- /dev/null
+++ b/testing/kodi-vfs-sacd/int-conversion.patch
@@ -0,0 +1,16 @@
+this type is used to hold fds, and is passed around as such
+it's wrong for it to be int.
+--
+diff --git a/lib/libsacd/sacd_input.c b/lib/libsacd/sacd_input.c
+index d96b968..858ce33 100644
+--- a/lib/libsacd/sacd_input.c
++++ b/lib/libsacd/sacd_input.c
+@@ -62,7 +62,7 @@ uint32_t (*sacd_input_total_sectors)(sacd_input_t);
+
+ struct sacd_input_s
+ {
+- void* fd;
++ int fd;
+ uint8_t *input_buffer;
+ ssize_t total_sectors;
+ };
diff --git a/testing/kodi-vfs-sftp/APKBUILD b/testing/kodi-vfs-sftp/APKBUILD
new file mode 100644
index 00000000000..eed76973c4f
--- /dev/null
+++ b/testing/kodi-vfs-sftp/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=kodi-vfs-sftp
+pkgver=20.2.0
+_realname=Nexus
+pkgrel=1
+pkgdesc="SFTP VFS add-on for Kodi"
+options="!check" # no test suite
+url="https://github.com/xbmc/vfs.sftp"
+arch="x86_64 aarch64 armv7" # kodi is available only on these architectures
+license="GPL-2.0-only"
+makedepends="cmake libssh-dev kodi-dev samurai"
+source="$pkgname-$pkgver-$_realname.tar.gz::https://github.com/xbmc/vfs.sftp/archive/$pkgver-$_realname.tar.gz"
+builddir="$srcdir/vfs.sftp-$pkgver-$_realname"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake/kodi
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+aadf58a9ab31f602219e781f19c0d6277b21a494197a4b9efcca75b33455e7d9d99e5c799fb4002e2900e25adc764bd82926be0516473e749767381123651a43 kodi-vfs-sftp-20.2.0-Nexus.tar.gz
+"
diff --git a/testing/komikku/APKBUILD b/testing/komikku/APKBUILD
new file mode 100644
index 00000000000..523c95057fc
--- /dev/null
+++ b/testing/komikku/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=komikku
+pkgver=1.39.0
+pkgrel=1
+pkgdesc="manga reader for GNOME"
+url="https://codeberg.org/valos/Komikku"
+arch="noarch !s390x" # limited by blueprint-compiler
+license="GPL-3.0-only"
+depends="
+ libadwaita
+ py3-beautifulsoup4
+ py3-brotli
+ py3-colorthief
+ py3-dateparser
+ py3-emoji
+ py3-gobject3
+ py3-keyring
+ py3-lxml
+ py3-magic
+ py3-natsort
+ py3-piexif
+ py3-pillow
+ py3-pure_protobuf
+ py3-rarfile
+ py3-requests
+ py3-unidecode
+ webkit2gtk-6.0
+ "
+makedepends="
+ blueprint-compiler-dev
+ cmake
+ desktop-file-utils
+ gobject-introspection-dev
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ "
+subpackages="$pkgname-lang $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/valos/Komikku/archive/v$pkgver.tar.gz"
+builddir="$srcdir/komikku"
+
+build() {
+ abuild-meson build
+
+ ninja -C build
+}
+
+check() {
+ meson test -C build --print-errorlog
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install -C build
+}
+
+sha512sums="
+c8c8c2d6cb4beadb7eba22d6764bd49c469614ae49c345723a22cf68376262516d733495f1530206fce20333c408062c50fd88533ef841ff8cbaef7ab06e121a komikku-1.39.0.tar.gz
+"
diff --git a/testing/kompose/APKBUILD b/testing/kompose/APKBUILD
index aff9836cb64..071a6fd758b 100644
--- a/testing/kompose/APKBUILD
+++ b/testing/kompose/APKBUILD
@@ -1,54 +1,45 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=kompose
-pkgver=1.21.0
-pkgrel=1
+pkgver=1.31.2
+pkgrel=2
pkgdesc="Tool to move from docker-compose to Kubernetes"
url="https://kompose.io/"
-arch="all !mips !mips64"
license="Apache-2.0"
-options="!check" # Require access to /tmp + bash, jq, ncurses
+arch="all"
+options="chmod-clean !check" # Require access to /tmp + bash, jq, ncurses
makedepends="go"
-subpackages="$pkgname-bash-completion:bashcomp:noarch $pkgname-zsh-completion:zshcomp:noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/kompose/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/kubernetes/$pkgname"
-
-prepare() {
- mkdir -p "$srcdir/src/github.com/kubernetes/"
- ln -sf "$srcdir/$pkgname-$pkgver" "$srcdir/src/github.com/kubernetes/$pkgname"
- default_prepare
-}
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/kompose/archive/v$pkgver.tar.gz
+ fix-cgo.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- GOPATH="$srcdir" make
-}
-
-package() {
- install -Dm755 $pkgname "$pkgdir/usr/bin"
+ make
- mkdir -p "$pkgdir"/usr/share/bash-completion/completions \
- "$pkgdir"/usr/share/zsh/site-functions
# Generate completion scripts
- ./kompose completion bash > "$pkgdir"/usr/share/bash-completion/completions/$pkgname
- ./kompose completion zsh > "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+ ./kompose completion bash > completion.bash
+ ./kompose completion zsh > completion.zsh
+ ./kompose completion fish > completion.fish
}
-bashcomp() {
- pkgdesc="Bash completion for Kompose"
- depends=""
- install_if="bash-completion $pkgname-cli=$pkgver-r$pkgrel"
-
- mkdir -p "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/share/bash-completion "$subpkgdir"/usr/share
-}
-
-zshcomp() {
- pkgdesc="Zsh completion for Kompose"
- depends=""
- install_if="zsh $pkgname-cli=$pkgver-r$pkgrel"
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
- mkdir -p "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/share/zsh "$subpkgdir"/usr/share
+ install -Dm644 completion.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 completion.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+ install -Dm644 completion.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
}
-sha512sums="96a6a6335d1846c945410b9a7c2e580f736ac2f9730a68f59cdce8f699a7e83910ba21116de8a9640d550c03c7156d684457421597d0d9bcd63067e6cbb03e81 kompose-1.21.0.tar.gz"
+sha512sums="
+44d08269d2c65b4452a5319e8339721fb4c355ea18982b4b0b942511982da9a9d20982f4247499c98ff787496f8ed5c47312f7662065059d8de5fc8380c1d109 kompose-1.31.2.tar.gz
+ff078eb2f3b62fd085a74527233417e5fc1c594657c2041a5b807815d9a8ec47e5dcb380ca95a84bb2294e07c53c3d1f7889e875628ac3533409acd2a3881c4c fix-cgo.patch
+"
diff --git a/testing/kompose/fix-cgo.patch b/testing/kompose/fix-cgo.patch
new file mode 100644
index 00000000000..eccf57c6238
--- /dev/null
+++ b/testing/kompose/fix-cgo.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -39,7 +39,7 @@
+
+ .PHONY: bin
+ bin:
+- CGO_ENABLED=0 GO111MODULE=on go build ${BUILD_FLAGS} -o kompose main.go
++ GO111MODULE=on go build ${BUILD_FLAGS} -o kompose main.go
+
+ .PHONY: install
+ install:
diff --git a/testing/kondo/APKBUILD b/testing/kondo/APKBUILD
new file mode 100644
index 00000000000..72a96c036f1
--- /dev/null
+++ b/testing/kondo/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=kondo
+pkgver=0.8
+pkgrel=0
+pkgdesc="Cleans dependencies and build artifacts from your projects"
+url="https://github.com/tbillington/kondo"
+license="MIT"
+arch="all"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/tbillington/kondo/archive/v$pkgver/kondo-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ target/release/kondo --completions bash > $pkgname.bash
+ target/release/kondo --completions fish > $pkgname.fish
+ target/release/kondo --completions zsh > $pkgname.zsh
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+62cf51c7db440fa36d33206759a60b084a1c98fc718988cfa01c417ad1eb4e6a930e3c66e83d2ae9fc169acb93c98ed18fe8cf4ca3ab5a40d2adbfa27363f9a0 kondo-0.8.tar.gz
+"
diff --git a/testing/kopia/APKBUILD b/testing/kopia/APKBUILD
new file mode 100644
index 00000000000..c140219a936
--- /dev/null
+++ b/testing/kopia/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kopia
+pkgver=0.15.0
+pkgrel=2
+pkgdesc="Fast and secure backup tool"
+url="https://kopia.io/"
+license="Apache-2.0"
+arch="all !armhf !armv7 !x86" # tests fail with out of memory error
+makedepends="go"
+subpackages="$pkgname-bash-completion $pkgname-zsh-completion"
+checkdepends="openssh-keygen"
+source="
+ https://github.com/kopia/kopia/archive/v$pkgver/kopia-$pkgver.tar.gz
+ skip-docker-tests.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export CGO_ENABLED=1
+
+build() {
+ local _goldflags="
+ -X github.com/kopia/kopia/repo.BuildVersion=$pkgver
+ -X github.com/kopia/kopia/repo.BuildInfo=AlpineLinux
+ -X github.com/kopia/kopia/repo.BuildGitHubRepo=kopia/kopia
+ "
+ go build -ldflags "$_goldflags"
+
+ ./kopia --completion-script-bash > $pkgname.bash
+ ./kopia --completion-script-zsh > $pkgname.zsh
+}
+
+check() {
+ # XXX: end to end restore_test fails to get same buffer from backup
+ # shellcheck disable=2046
+ go test $(go list -tags testing ./... | grep -Ev 'end_to_end_test')
+}
+
+package() {
+ install -Dm755 kopia -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+c12e75457d6a77d6968f1e577efdb5703ce6fa99991e3088a73e9b5dfa51fdfa96d8264e62a9fad1b2ee8ce07d98ca3bfd986acbc4dac277b2a84ec3187cfd97 kopia-0.15.0.tar.gz
+6c1c8ca52d83c940c561f11adc18298147882b709810edd8c6560c8988ff1bd30dae2adba4c18055d283e7c2c655a6c6f10c3951829826d6fe5eea20c8cb821d skip-docker-tests.patch
+"
diff --git a/testing/kopia/skip-docker-tests.patch b/testing/kopia/skip-docker-tests.patch
new file mode 100644
index 00000000000..3c662a395b9
--- /dev/null
+++ b/testing/kopia/skip-docker-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/internal/testutil/dockertestutil.go b/internal/testutil/dockertestutil.go
+index 9f5fa2f6..b5570f85 100644
+--- a/internal/testutil/dockertestutil.go
++++ b/internal/testutil/dockertestutil.go
+@@ -12,6 +12,8 @@
+ // RunDockerAndGetOutputOrSkip runs Docker and returns the output as a string.
+ func RunDockerAndGetOutputOrSkip(tb testing.TB, args ...string) string {
+ tb.Helper()
++ tb.Skip("skipping test that runs docker...")
++
+ tb.Logf("running docker %v", args)
+
+ c := exec.Command("docker", args...)
diff --git a/testing/kops/APKBUILD b/testing/kops/APKBUILD
index 34293596f26..943648c7a55 100644
--- a/testing/kops/APKBUILD
+++ b/testing/kops/APKBUILD
@@ -1,29 +1,24 @@
-# Contributor: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
+# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=kops
-pkgver=1.16.2
-pkgrel=0
+pkgver=1.28.4
+pkgrel=2
pkgdesc="Kubernetes Operations"
url="https://github.com/kubernetes/kops"
arch="x86_64"
license="Apache-2.0"
depends="kubernetes"
-makedepends="go"
-options="chmod-clean"
-source="$pkgname-$pkgver.tar.gz::$url/archive/$pkgver.tar.gz"
+makedepends="go bash"
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/kops/archive/v$pkgver.tar.gz"
-export GOPATH=$srcdir/go
-
-prepare() {
- default_prepare
-
- local dir=$GOPATH/src/k8s.io
- mkdir -p "$dir"
- ln -s "$builddir" "$dir/$pkgname"
-}
+export GOFLAGS="$GOFLAGS -modcacherw -mod=readonly"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- make
+ make kops
}
check() {
@@ -31,7 +26,9 @@ check() {
}
package() {
- install -D "$GOPATH"/bin/kops "$pkgdir"/usr/bin/kops
+ install -Dm0755 .build/dist/linux/*/kops "$pkgdir"/usr/bin/kops
}
-sha512sums="02f91dcb3ef2f3e0c76ad5dd26e54daf85b8d2ee60bcbced6344901f68f215c0383dcdd37ae8db14d957c588486ad1813a4e765b99d1cecbb526da142cfac489 kops-1.16.2.tar.gz"
+sha512sums="
+ca1f63bd1bec167cafa152fd1d510f6d927f301b05f2910e21ca015ded795fc00b7d9344e291acc3d3a6252143823d1adda8855fea52d5d8f5723534a056bb19 kops-1.28.4.tar.gz
+"
diff --git a/testing/kotlin-language-server/APKBUILD b/testing/kotlin-language-server/APKBUILD
new file mode 100644
index 00000000000..0806101905f
--- /dev/null
+++ b/testing/kotlin-language-server/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=kotlin-language-server
+pkgver=1.3.7
+pkgrel=0
+pkgdesc="Kotlin code completion, linting and more for any editor/IDE using the Language Server Protocol"
+url="https://github.com/fwcd/kotlin-language-server"
+arch="x86_64" # blocked by openjdk11, rest don't build, time out, or fail to build tests
+license="MIT"
+checkdepends="maven"
+depends="openjdk11"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fwcd/kotlin-language-server/archive/refs/tags/$pkgver.tar.gz"
+options="!archcheck"
+
+build() {
+ ./gradlew :server:installDist
+}
+
+check() {
+ ./gradlew :server:test
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/kotlin "$pkgdir"/usr/bin
+ cp -r server/build/install/server "$pkgdir"/usr/share/kotlin/kotlin-language-server
+ ln -sf /usr/share/kotlin/kotlin-language-server/bin/kotlin-language-server "$pkgdir"/usr/bin/kotlin-language-server
+}
+
+sha512sums="
+78ec728cdef1c1ac75804a25f9884f71e5af4c39a9275504aa87f9bd9588cd02eb8da4ffb04de9f50b5afb70e32d73f4ae53097e253b33b40f8162925760fbaf kotlin-language-server-1.3.7.tar.gz
+"
diff --git a/testing/kpatch/02-argp.patch b/testing/kpatch/02-argp.patch
new file mode 100644
index 00000000000..b363bb42dab
--- /dev/null
+++ b/testing/kpatch/02-argp.patch
@@ -0,0 +1,11 @@
+--- a/kpatch-build/Makefile 2022-08-03 22:25:45.096931535 +0200
++++ b/kpatch-build/Makefile 2022-08-03 22:26:00.168298699 +0200
+@@ -2,7 +2,7 @@ include ../Makefile.inc
+
+ CFLAGS += -MMD -MP -I../kmod/patch -Iinsn -Wall -Wsign-compare \
+ -Wconversion -Wno-sign-conversion -g -Werror
+-LDLIBS = -lelf
++LDLIBS = -lelf -largp
+
+ TARGETS = create-diff-object create-klp-module create-kpatch-module
+ SOURCES = create-diff-object.c kpatch-elf.c \
diff --git a/testing/kpatch/03-ppc64.patch b/testing/kpatch/03-ppc64.patch
new file mode 100644
index 00000000000..3fc853b6ff1
--- /dev/null
+++ b/testing/kpatch/03-ppc64.patch
@@ -0,0 +1,15 @@
+--- a/kpatch-build/create-diff-object.c 2022-08-03 22:33:54.297782237 +0200
++++ b/kpatch-build/create-diff-object.c 2022-08-03 22:34:53.442204389 +0200
+@@ -132,12 +132,6 @@ static int is_bundleable(struct symbol *
+ return 0;
+ }
+
+-/* Symbol st_others value for powerpc */
+-#define STO_PPC64_LOCAL_BIT 5
+-#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT)
+-#define PPC64_LOCAL_ENTRY_OFFSET(other) \
+- (((1 << (((other) & STO_PPC64_LOCAL_MASK) >> STO_PPC64_LOCAL_BIT)) >> 2) << 2)
+-
+ /*
+ * On ppc64le, the function prologue generated by GCC 6+ has the sequence:
+ *
diff --git a/testing/kpatch/APKBUILD b/testing/kpatch/APKBUILD
new file mode 100644
index 00000000000..1ac7c182f3f
--- /dev/null
+++ b/testing/kpatch/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=kpatch
+pkgver=0.9.9
+pkgrel=0
+pkgdesc="live kernel patching"
+url="https://github.com/dynup/kpatch"
+arch="x86_64"
+license="GPL-2.0-only"
+depends="
+ bash
+ binutils
+ elfutils-dev
+ gawk
+ gcc
+ "
+makedepends="argp-standalone"
+options="!check"
+subpackages="kpatch-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dynup/kpatch/archive/v$pkgver.tar.gz
+ 02-argp.patch
+ 03-ppc64.patch
+ "
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+ cd "$pkgdir"
+
+ # Remove incompatible init system file
+ rm -r etc/init
+}
+
+sha512sums="
+2e1fd4ee11cbbe0f0838023e13547a58f352ea7a35e257b651fdcccd04de3ddfc418ae0c658a3fd8c26e43c549ae17df935f28acc0c32f0865831796795a4ca9 kpatch-0.9.9.tar.gz
+69b05b0941e40189b246159de4faafdf78527b4f08d6b28e82eabae0f3e10935adcdf237b0ff402dd1bc9e6cc96315f3e65438c7a827246da5c3a119d4fc207b 02-argp.patch
+99256fd74ffa98d00bc614115b1acb3d7f4d829b641cc4e46a342cd4bfdb97fb1197888ca438c0562881f2382a6e7d2dd6995cf8d24915d261385dcea95df27f 03-ppc64.patch
+"
diff --git a/testing/krita-plugin-gmic/APKBUILD b/testing/krita-plugin-gmic/APKBUILD
new file mode 100644
index 00000000000..d0139f76c69
--- /dev/null
+++ b/testing/krita-plugin-gmic/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer:
+pkgname=krita-plugin-gmic
+# match version to gmic.
+pkgver=3.2.4.1
+pkgrel=3
+pkgdesc="Krita plugin for GMIC"
+url="https://github.com/amyspark/gmic"
+# krita
+arch="all !s390x !armhf !armv7"
+license="CECILL-2.1"
+depends="gmic"
+makedepends="
+ bash
+ cmake
+ extra-cmake-modules
+ fftw-dev
+ kcoreaddons5-dev
+ krita-dev
+ gmic-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ samurai
+ zstd
+ "
+source="https://github.com/amyspark/gmic/releases/download/v$pkgver/gmic-$pkgver-patched.tar.zst
+ gmic-sys.patch
+ no-qt6.patch
+ "
+builddir="$srcdir/gmic-$pkgver-patched"
+options="!check" # no tests
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja -S gmic-qt \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DGMIC_QT_HOST=krita-plugin \
+ -DQT_MAJOR_VERSION=5
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ # comes from gmic
+ rm -fv "$pkgdir"/usr/share/gmic/gmic_cluts.gmz
+}
+
+sha512sums="
+36de14ac7823e94e1988ada4e095ba18408bb9e7ab98f745573fcf759d0835e8182d887aa2c26e980a7974f5c2bdef44227c0cc6b9155849b7aafa49c6821c4c gmic-3.2.4.1-patched.tar.zst
+673c3644dbb55621204975b97346d8bbe4fd4860344dcbde849f84da6b343a412405944bf40d3eb215335127b9fb173b615b67a85a0b5bc36084e9bdcdcd42b4 gmic-sys.patch
+34a605e417fed6233fb8f64108c56398cc2daa1b7bbbb847c1763c97100d1afc5a11929931b61f7fd67de10f215c87992a0e3ab1a8a86a3a9ceeac702e836230 no-qt6.patch
+"
diff --git a/testing/krita-plugin-gmic/gmic-sys.patch b/testing/krita-plugin-gmic/gmic-sys.patch
new file mode 100644
index 00000000000..4af1494d8ba
--- /dev/null
+++ b/testing/krita-plugin-gmic/gmic-sys.patch
@@ -0,0 +1,14 @@
+diff --git a/gmic-qt/CMakeLists.txt b/gmic-qt/CMakeLists.txt
+index 6c76f54..d0fb719 100644
+--- a/gmic-qt/CMakeLists.txt
++++ b/gmic-qt/CMakeLists.txt
+@@ -142,7 +142,8 @@ endif()
+ # Gmic
+ #
+ if (ENABLE_SYSTEM_GMIC)
+- find_package(Gmic REQUIRED CONFIG)
++ set(GMIC_LIB_PATH /usr/lib)
++ #find_package(Gmic REQUIRED CONFIG)
+ endif (ENABLE_SYSTEM_GMIC)
+
+ #
diff --git a/testing/krita-plugin-gmic/no-qt6.patch b/testing/krita-plugin-gmic/no-qt6.patch
new file mode 100644
index 00000000000..be34dc917f6
--- /dev/null
+++ b/testing/krita-plugin-gmic/no-qt6.patch
@@ -0,0 +1,11 @@
+we build krita with qt5, so this has to match
+
+diff --git a/gmic-qt/CMakeLists.txt b/gmic-qt/CMakeLists.txt
+index d0fb719..c106470 100644
+--- a/gmic-qt/CMakeLists.txt
++++ b/gmic-qt/CMakeLists.txt
+@@ -156,3 +156,3 @@ find_package(Threads REQUIRED)
+ #
+-find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
++find_package(QT NAMES Qt5 REQUIRED COMPONENTS Core)
+ find_package(Qt${QT_VERSION_MAJOR} ${MIN_QT_VERSION}
diff --git a/testing/kube-no-trouble/APKBUILD b/testing/kube-no-trouble/APKBUILD
new file mode 100644
index 00000000000..31f09f8f4e5
--- /dev/null
+++ b/testing/kube-no-trouble/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Thomas Deutsch <thomas@tuxpeople.org>
+# Maintainer: Thomas Deutsch <thomas@tuxpeople.org>
+pkgname=kube-no-trouble
+_pkgname=github.com/doitintl/kube-no-trouble
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="Easily check your clusters for use of deprecated APIs"
+url="https://github.com/doitintl/kube-no-trouble"
+arch="all"
+license="MIT"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/doitintl/kube-no-trouble/archive/refs/tags/$pkgver.tar.gz"
+options="net"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local ldflags="
+ -X main.version=$pkgver
+ -X $_pkgname/cmd.version=$pkgver
+ -X $_pkgname/cmd.commit=AlpineLinux
+ -X $_pkgname/cmd.date=$(date -u +%FT%T%Z ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+ go build -ldflags "$ldflags" -o execs/$pkgname cmd/kubent/main.go
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 execs/$pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+171d4a82c4911860bcf262b740523fd1571863e3f98c0d68539b13540c6fda44ec819cd46a9a1503785b377b4aee72f9ed492a2ef1c901ea1d090c9d93882078 kube-no-trouble-0.7.2.tar.gz
+"
diff --git a/testing/kubectl-cert-manager/APKBUILD b/testing/kubectl-cert-manager/APKBUILD
new file mode 100644
index 00000000000..7f616df6f76
--- /dev/null
+++ b/testing/kubectl-cert-manager/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=kubectl-cert-manager
+pkgver=1.14.4
+pkgrel=2
+pkgdesc="Manage and configure cert-manager resources for Kubernetes"
+url="https://cert-manager.io/"
+license="Apache-2.0"
+arch="all !armhf !riscv64" # limited by kubectl
+depends="kubectl"
+makedepends="go"
+source="https://github.com/cert-manager/cert-manager/archive/v$pkgver/kubectl-cert-manager-$pkgver.tar.gz"
+builddir="$srcdir/cert-manager-$pkgver/cmd/ctl"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags "-X github.com/cert-manager/cert-manager/pkg/util.AppVersion=v$pkgver"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 ctl "$pkgdir"/usr/bin/kubectl-cert_manager
+}
+
+sha512sums="
+3f3af43223093ce058a1dee8ae1e1e52dd90029cbd537860754f0cdff9ccb030041ebd65402ecd4e44ee6fde69a3748b622e77d8af4907d7f696f04d8c72c762 kubectl-cert-manager-1.14.4.tar.gz
+"
diff --git a/testing/kubectl-krew/APKBUILD b/testing/kubectl-krew/APKBUILD
new file mode 100644
index 00000000000..d42528ba5e6
--- /dev/null
+++ b/testing/kubectl-krew/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kubectl-krew
+pkgver=0.4.4
+pkgrel=4
+pkgdesc="Find and install kubectl plugins"
+url="https://krew.sigs.k8s.io/"
+arch="all !armhf !riscv64" # kubectl
+license="Apache-2.0"
+depends="kubectl"
+makedepends="go"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/kubernetes-sigs/krew/archive/refs/tags/v$pkgver.tar.gz
+ test-use-testing-tmpdir.patch
+ "
+builddir="$srcdir/krew-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ GOLDFLAGS="
+ -X sigs.k8s.io/krew/internal/version.gitCommit=AlpineLinux
+ -X sigs.k8s.io/krew/internal/version.gitTag=v$pkgver
+ "
+ go build -tags netgo -ldflags "$GOLDFLAGS" -o bin/$pkgname ./cmd/krew/main.go
+}
+
+check() {
+ # uses github api and gets 403
+ # shellcheck disable=2046
+ KREW_BINARY="$builddir/bin/$pkgname" go test $(go list ./... | grep -Ev '(cmd/internal)')
+}
+
+package() {
+ install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+888362c564500d3f9f00b3207f5d63ee6546f9da6c884736fa55d49e78b91d5085a518f69f41b156cc8dc13667846be98bc2459392ca3d970c89721b6f4b632b kubectl-krew-0.4.4.tar.gz
+797a0f1361d893289217569e09dd5564fe545eaf2f0b3dc40367c63cb124b8120c5600d190732ced7885a020ae56a9417b49bccb8bca2c87faf72bf3e1359a81 test-use-testing-tmpdir.patch
+"
diff --git a/testing/kubectl-krew/test-use-testing-tmpdir.patch b/testing/kubectl-krew/test-use-testing-tmpdir.patch
new file mode 100644
index 00000000000..ff70a23f122
--- /dev/null
+++ b/testing/kubectl-krew/test-use-testing-tmpdir.patch
@@ -0,0 +1,15 @@
+Outdated index files from previous builds break tests. Use t.TempDir() to make
+sure a new index file is used.
+diff --git a/integration_test/testutil_test.go b/integration_test/testutil_test.go
+index 66ebc98..d91635b 100644
+--- a/integration_test/testutil_test.go
++++ b/integration_test/testutil_test.go
+@@ -277,7 +277,7 @@ func (it *ITest) loadReceipt(path string) index.Receipt {
+ // It caches the index tree as in-memory tar after the first run.
+ func (it *ITest) initializeIndex() {
+ initIndexOnce.Do(func() {
+- persistentCacheFile := filepath.Join(os.TempDir(), persistentIndexCache)
++ persistentCacheFile := filepath.Join(it.t.TempDir(), persistentIndexCache)
+ fileInfo, err := os.Stat(persistentCacheFile)
+
+ if err == nil && fileInfo.Mode().IsRegular() {
diff --git a/testing/kubectl-oidc_login/APKBUILD b/testing/kubectl-oidc_login/APKBUILD
new file mode 100644
index 00000000000..88441965eed
--- /dev/null
+++ b/testing/kubectl-oidc_login/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kubectl-oidc_login
+pkgver=1.28.0
+pkgrel=5
+pkgdesc="kubectl plugin for Kubernetes OpenID Connect authentication"
+url="https://github.com/int128/kubelogin"
+arch="all !armhf !riscv64" # blocked by kubectl
+license="Apache-2.0"
+depends="kubectl"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/int128/kubelogin/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/kubelogin-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.version=$pkgver"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 kubelogin "$pkgdir"/usr/bin/kubectl-oidc_login
+}
+
+sha512sums="
+b39cdb31aab7cb1bedbf5d13a449e289569b6e17c319900d18e741aeb8b88a8eee5534aec57753457e6a5b9b139b85b95f2bdb438b79773a8ae54e3eb57a4358 kubectl-oidc_login-1.28.0.tar.gz
+"
diff --git a/testing/kubeone/APKBUILD b/testing/kubeone/APKBUILD
new file mode 100644
index 00000000000..7da1e6d9d7e
--- /dev/null
+++ b/testing/kubeone/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kubeone
+pkgver=1.7.3
+# Use the latest stable Kubernetes version at the time as the default (https://dl.k8s.io/release/stable-1.27.txt).
+# See https://docs.kubermatic.com/kubeone/main/tutorials/creating-clusters/#step-5--provisioning-the-cluster for
+# the table of compatible Kubernetes versions.
+_k8sver=1.27.11
+pkgrel=2
+pkgdesc="Automate Kubernetes cluster operations on all platforms"
+url="https://kubeone.io/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/kubermatic/kubeone/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X k8c.io/kubeone/pkg/cmd.commit=AlpineLinux
+ -X k8c.io/kubeone/pkg/cmd.version=$pkgver
+ -X k8c.io/kubeone/pkg/cmd.date=$(date -u "+%Y-%m-%dT%H:%M:%SZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X k8c.io/kubeone/pkg/cmd.defaultKubeVersion=$_k8sver
+ -X k8c.io/kubeone/pkg/cmd.defaultCloudProviderName=none
+ "
+
+ go build -v -ldflags "$_goldflags"
+
+ mkdir -p man
+ ./kubeone document man -o man/
+
+ for shell in bash zsh; do
+ ./kubeone completion $shell > kubeone.$shell
+ done
+}
+
+check() {
+ go test ./pkg/... ./test/...
+}
+
+package() {
+ install -Dm755 kubeone -t "$pkgdir"/usr/bin/
+
+ install -Dm644 man/*.1 -t "$pkgdir"/usr/share/man/man1/
+
+ install -Dm644 kubeone.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/kubeone
+ install -Dm644 kubeone.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_kubeone
+}
+
+sha512sums="
+0fe36eeb3fd9ad14a831c48dcd4c22f76d7e7274522c4e6b6623588294a1fd820cd8d795b0135295f40d66bcefcba479546556d079313feb8ec734cb5710081d kubeone-1.7.3.tar.gz
+"
diff --git a/testing/kubepug/APKBUILD b/testing/kubepug/APKBUILD
new file mode 100644
index 00000000000..60d7e3f5d11
--- /dev/null
+++ b/testing/kubepug/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kubepug
+pkgver=1.7.1
+pkgrel=2
+pkgdesc="Kubernetes pre-upgrade deprecation checker"
+url="https://github.com/rikatz/kubepug"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/rikatz/kubepug/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X sigs.k8s.io/release-utils/version.gitVersion=v$pkgver
+ -X sigs.k8s.io/release-utils/version.gitCommit=AlpineLinux
+ -X sigs.k8s.io/release-utils/version.gitTreeState=clean
+ -X sigs.k8s.io/release-utils/version.buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ' ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+ go build -v -ldflags "$_goldflags" -o bin/$pkgname
+
+ for shell in bash zsh fish; do
+ ./bin/kubepug completion $shell > kubepug.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/$pkgname -t "$pkgdir"/usr/bin
+
+ install -Dm644 kubepug.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/kubepug
+ install -Dm644 kubepug.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_kubepug
+ install -Dm644 kubepug.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/kubepug.fish
+}
+
+sha512sums="
+a04411b6e51a9ffa49c80c23391546478dc912bafffff85dcdaf931167f9cc4844120360871d177120c7f50b04e01a40fbf0694759dc5973ec5ee18d8d285d6d kubepug-1.7.1.tar.gz
+"
diff --git a/testing/kubernetes/APKBUILD b/testing/kubernetes/APKBUILD
deleted file mode 100644
index 1a4ce2e78da..00000000000
--- a/testing/kubernetes/APKBUILD
+++ /dev/null
@@ -1,190 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Contributor: Mateusz Mikuła <matti@marinelayer.io>
-# Contributor: Tiago Ilieve <tiago.myhro@gmail.com>
-# Contributor: Dave <dj.2dixx@gmail.com>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=kubernetes
-pkgver=1.18.3
-pkgrel=3
-pkgdesc="Container Cluster Manager"
-url="https://kubernetes.io/"
-arch="x86_64"
-license="Apache-2.0"
-options="!check chmod-clean" # Tests hang
-depends="bash"
-makedepends="coreutils findutils go go-bindata linux-headers rsync grep"
-subpackages="
- kubeadm:_kubeadm
- kubectl:_kubectl
- kubelet:_kubelet
- kubelet-openrc:_kubelet_openrc
- kube-apiserver:_apiserver
- kube-apiserver-openrc:_apiserver_openrc
- kube-controller-manager:_controllermanager
- kube-controller-manager-openrc:_controllermanager_openrc
- kube-proxy:_proxy
- kube-proxy-openrc:_proxy_openrc
- kube-scheduler:_scheduler
- kube-scheduler-openrc:_scheduler_openrc"
-
-source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/kubernetes/archive/v$pkgver.tar.gz
- ensure-cgo-usage.patch
- make-e2e_node-run-over-distro-bins.patch
- make-test-cmd-run-over-hyperkube-based-kubectl.patch
-
- kube-apiserver.initd
- kube-apiserver.confd
- kube-apiserver.logrotated
-
- kube-controller-manager.initd
- kube-controller-manager.confd
- kube-controller-manager.logrotated
-
- kube-proxy.initd
- kube-proxy.confd
- kube-proxy.logrotated
-
- kube-scheduler.initd
- kube-scheduler.confd
- kube-scheduler.logrotated
-
- kubelet.initd
- kubelet.confd
- kubelet.logrotated"
-
-_agent="kubelet"
-_cli="kubeadm kubectl"
-_services="kube-apiserver kube-controller-manager kube-proxy kube-scheduler"
-
-build() {
- for _pkgs in $_agent $_cli $_services ; do
- make -j1 GOFLAGS=-v WHAT=cmd/$_pkgs
- done
-}
-
-package() {
- for bin in $_agent $_cli $_services; do
- case "$CARCH" in
- arm*) install -Dm755 _output/local/bin/linux/arm/$bin "$pkgdir"/usr/bin/$bin ;;
- x86_64) install -Dm755 _output/local/bin/linux/amd64/$bin "$pkgdir"/usr/bin/$bin ;;
- esac
- done
- mkdir -p "$pkgdir"/etc/kubernetes
-}
-
-
-_do_subpkg() {
- local _pkg=$1
- pkgdesc="Kubernetes - $_pkg"
- case "$_pkg" in
- kubelet) depends="$depends cni-plugins" ;;
- kubeadm) depends="$depends iproute2 socat ethtool" ;;
- esac
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/$_pkg "$subpkgdir"/usr/bin
- return 0
-}
-
-_kubeadm() { _do_subpkg kubeadm; }
-_kubectl() { _do_subpkg kubectl; }
-
-_kubelet() {
- install -d "$subpkgdir"/var/lib/kubelet
- install -d "$subpkgdir"/var/log/kubelet
-
- install -Dm644 "$srcdir"/kubelet.logrotated "$subpkgdir"/etc/logrotate.d/kubelet
-}
-
-_kubelet_openrc() {
- pkgdesc="Kubernetes - kubelet (OpenRC init scripts)"
- depends="openrc"
- install_if="openrc kubelet=$pkgver-r$pkgrel"
-
- install -Dm755 "$srcdir"/kubelet.initd "$subpkgdir"/etc/init.d/kubelet
- install -Dm644 "$srcdir"/kubelet.confd "$subpkgdir"/etc/conf.d/kubelet
-}
-
-_apiserver() {
- _do_subpkg kube-apiserver
-
- install -d "$subpkgdir"/var/log/kube-apiserver
- install -Dm644 "$srcdir"/kube-apiserver.logrotated "$subpkgdir"/etc/logrotate.d/kube-apiserver
-}
-
-_apiserver_openrc() {
- pkgdesc="Kubernetes - kube-apiserver (OpenRC init scripts)"
- depends="openrc"
- install_if="openrc kube-apiserver=$pkgver-r$pkgrel"
- install -Dm755 "$srcdir"/kube-apiserver.initd "$subpkgdir"/etc/init.d/kube-apiserver
- install -Dm644 "$srcdir"/kube-apiserver.confd "$subpkgdir"/etc/conf.d/kube-apiserver
-}
-
-_controllermanager() {
- _do_subpkg kube-controller-manager
-
- install -d "$subpkgdir"/var/log/kube-controller-manager
- install -Dm644 "$srcdir"/kube-controller-manager.logrotated "$subpkgdir"/etc/logrotate.d/kube-controller-manager
-}
-
-_controllermanager_openrc() {
- pkgdesc="Kubernetes - kube-controller-manager (OpenRC init scripts)"
- depends="openrc"
- install_if="openrc kube-controller-manager=$pkgver-r$pkgrel"
-
- install -Dm755 "$srcdir"/kube-controller-manager.initd "$subpkgdir"/etc/init.d/kube-controller-manager
- install -Dm644 "$srcdir"/kube-controller-manager.confd "$subpkgdir"/etc/conf.d/kube-controller-manager
-}
-
-_proxy() {
- _do_subpkg kube-proxy
-
- install -d "$subpkgdir"/var/lib/kube-proxy
- install -d "$subpkgdir"/var/log/kube-proxy
- install -Dm644 "$srcdir"/kube-proxy.logrotated "$subpkgdir"/etc/logrotate.d/kube-proxy
-}
-
-_proxy_openrc() {
- pkgdesc="Kubernetes - kube-proxy (OpenRC init scripts)"
- depends="openrc"
- install_if="openrc kube-proxy=$pkgver-r$pkgrel"
- install -Dm755 "$srcdir"/kube-proxy.initd "$subpkgdir"/etc/init.d/kube-proxy
- install -Dm644 "$srcdir"/kube-proxy.confd "$subpkgdir"/etc/conf.d/kube-proxy
-}
-
-_scheduler() {
- _do_subpkg kube-scheduler
- install -d "$subpkgdir"/var/log/kube-scheduler
- install -Dm644 "$srcdir"/kube-scheduler.logrotated "$subpkgdir"/etc/logrotate.d/kube-scheduler
-}
-
-_scheduler_openrc() {
- pkgdesc="Kubernetes - kube-scheduler (OpenRC init scripts)"
- depends="openrc"
- install_if="openrc kube-scheduler=$pkgver-r$pkgrel"
- install -Dm755 "$srcdir"/kube-scheduler.initd "$subpkgdir"/etc/init.d/kube-scheduler
- install -Dm644 "$srcdir"/kube-scheduler.confd "$subpkgdir"/etc/conf.d/kube-scheduler
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-sha512sums="0bb1dc33802127b03480e43dcbdeb576188a2a50b0257bcf47a0efec7d504cbce9b61048cb87d2ae4148174fcb2e373298c5947d5130604f827b806d9d00c6a4 kubernetes-1.18.3.tar.gz
-bfe072d2f53543b8d704319755f3cfe5ed2467b54879e22117a25a9d7d6d4d238356e45824deaf4d18b8e9eb6f34d1de43be4840b9906f7909478ffe9e8a65ff ensure-cgo-usage.patch
-8faa8f1c777740ed33ac4e46e8e47e9092098b6e672cf57a10caab2212b9b5c6965361fe7107d1311227e6145e2ad312982dc0340feb36b03ebb04e1202366f0 make-e2e_node-run-over-distro-bins.patch
-56201491d2dfe3a487931cbf5c6e60af898701b9541a936d80e3823948fcfb98508e3d51f4aaa415ce971f7bd20a7b51f74f025c76b83f58d5a8de8ce0ab679b make-test-cmd-run-over-hyperkube-based-kubectl.patch
-2181a7471890bf9e2e93294c100984e2fe0f4f8390cc2acdb463b003ab8a6fd319bd131da0b37bd004cdfa5e03ecbd40dd3520bd9041ae1f5064c343a371df62 kube-apiserver.initd
-302b2a7ec715967c0aa7d1c177d4e55b26e37ebba8d04dd37ecf627d20042fe91cd7e6192ff9d71422129b0ea54a9eec6046f505af550548bd450998924f37ee kube-apiserver.confd
-1a4bcd54dafaedc614e34bbadc2a1163f003b5925d47552fb2c47049c033c147e612171e263d9659d189fc2d95688a0b7153322d8dba97c083c079fdef6c400e kube-apiserver.logrotated
-f3ad547b0e525052c5214dc4b8c6ae431e9ae76762ec878eb443906ce244d29b19ceca02be8667668378f82cdb090568bd306db2c1611892e57b4c06e729006f kube-controller-manager.initd
-347dcf514abec4bc94036955d0fb2d32f141a39d1a70d7fb37e7bf8eb5792e5c29560d500a08aafcd3e19422d04466004b832bca7108eb2815610feb144688fe kube-controller-manager.confd
-e00cd9297d8ac75fcd504a2bfb80d5c5e145e7d475dd15edf9361dc28721afdc069c5b6e79438b75a774e972028841a17e8f7842dcfb3d7835c436a3e503704c kube-controller-manager.logrotated
-24b8f8990b54d92ad03e2b9a0605260df5462d2565213171e0f1044516f2b5cbbb2d893cd6697c472cf7018723852927c62f4514d08ad844586bce5bab0b45cd kube-proxy.initd
-4c8c34ae8668bcfa5167c2d2af006fc46b461a5dafb3ec5b64cb8cdf2a830c22ddb5cf806c93b1404f60dabf91b4153724947fa2d2c494376f20e637eeed5018 kube-proxy.confd
-d7e022ee22da191bda7382f87cb293d9c9d115a3df0c2054bf918279eb866f99c6d5c21e4c98eae84bacf925f7793bbe3087e0bcf6732ccb33844d15e4386fb5 kube-proxy.logrotated
-fd286dfaad10909affc08e1d1a3b83f054379ee0e98c902f6a8919c59b61719dd1de86efaa0b4d7e2620a530fd66b795cc742ba4db07a5f0ea6da58e3b049e80 kube-scheduler.initd
-af88b382ab75657d0ff13c3f8f6d924cef9f2df7807a9a27daa63495981801bc4b607998f65c0758c11a7e070e43c24f7184ba7720711109c74b1c4d57919e34 kube-scheduler.confd
-3692da349dd6ed0f5acc09d7b95ac562ffecb103e2270bebdfe4a7808d48dada9d2debff262d85b11c47f9ca3f0c20000712d03629ed813ff08a3e02d69267e6 kube-scheduler.logrotated
-f822044195a02821c2e4fbb77008b2a7347b382ba0661444a5216f4a5107d5f38c998068db7c5eb2aeb05ec29ca16b2ec5b9bce99a3675d211bcf662d5da7343 kubelet.initd
-e6314372c9a0f89e23a9556c938550911d459042c2e0e6f3f8430a2371d88c8426f57b65688536441b39c0babaff3d921d9b013105991b1e7f5665096286eefa kubelet.confd
-dda5fb57b55926fd2e9cebe6c1593da699afba0398c58dfa8b923c53a9ae6e63d765778577211460047f20863a6095e8e2ab3e7769e38c4f6a1c55c0e3485501 kubelet.logrotated"
diff --git a/testing/kubernetes/ensure-cgo-usage.patch b/testing/kubernetes/ensure-cgo-usage.patch
deleted file mode 100644
index a93ea161b0e..00000000000
--- a/testing/kubernetes/ensure-cgo-usage.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Tiago Ilieve <tiago.myhro@gmail.com>
-Date: Sat, 27 Oct 2018 10:47:42 +0000
-Subject: [PATCH] Ensure CGO usage
-
-There are checks to define if CGO is required by the platform, but those
-are not enough to ensure its usage in Alpine. This leads to errors like:
-
-/usr/lib/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x8): undefined reference to `x_cgo_callers'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x10): undefined reference to `x_cgo_init'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x18): undefined reference to `x_cgo_mmap'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x20): undefined reference to `x_cgo_munmap'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x28): undefined reference to `x_cgo_notify_runtime_init_done'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x30): undefined reference to `x_cgo_sigaction'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x38): undefined reference to `x_cgo_thread_start'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x5b0): undefined reference to `x_cgo_setenv'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x5b8): undefined reference to `x_cgo_unsetenv'
-/usr/lib/gcc/x86_64-alpine-linux-musl/8.2.0/../../../../x86_64-alpine-linux-musl/bin/ld: /tmp/go-link-879017147/go.o:(.data+0x5c0): undefined reference to `_cgo_yield'
-collect2: error: ld returned 1 exit status
-
----
---- a/hack/lib/golang.sh
-+++ b/hack/lib/golang.sh
-@@ -611,7 +611,7 @@
- -asmflags "${goasmflags:-}"
- -ldflags "${goldflags:-}"
- )
-- CGO_ENABLED=0 kube::golang::build_some_binaries "${statics[@]}"
-+ CGO_ENABLED=1 kube::golang::build_some_binaries "${statics[@]}"
- fi
-
- if [[ "${#nonstatics[@]}" != 0 ]]; then
diff --git a/testing/kubernetes/kube-apiserver.confd b/testing/kubernetes/kube-apiserver.confd
deleted file mode 100644
index db74d27f020..00000000000
--- a/testing/kubernetes/kube-apiserver.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-###
-# kubernetes system config
-#
-# The following values are used to configure the kube-apiserver
-#
-
-command_args=""
diff --git a/testing/kubernetes/kube-apiserver.initd b/testing/kubernetes/kube-apiserver.initd
deleted file mode 100755
index 6dcd56d587a..00000000000
--- a/testing/kubernetes/kube-apiserver.initd
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Kubernetes API Server"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-root}
-group=${group:-root}
-
-command="/usr/bin/kube-apiserver"
-command_args="${command_args}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
- --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-depend() {
- after net
-}
-
diff --git a/testing/kubernetes/kube-apiserver.logrotated b/testing/kubernetes/kube-apiserver.logrotated
deleted file mode 100644
index 4ed84506231..00000000000
--- a/testing/kubernetes/kube-apiserver.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/kube-apiserver/*.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/testing/kubernetes/kube-controller-manager.confd b/testing/kubernetes/kube-controller-manager.confd
deleted file mode 100644
index 5134f2b2df1..00000000000
--- a/testing/kubernetes/kube-controller-manager.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-###
-# kubernetes system config
-#
-# The following values are used to configure the kube-controller-manager
-#
-
-command_args=""
diff --git a/testing/kubernetes/kube-controller-manager.initd b/testing/kubernetes/kube-controller-manager.initd
deleted file mode 100755
index 16594597983..00000000000
--- a/testing/kubernetes/kube-controller-manager.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Kubernetes Controller Manager service"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-root}
-group=${group:-root}
-
-command="/usr/bin/kube-controller-manager"
-command_args="${command_args}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
- --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-depend() {
- after net
-}
diff --git a/testing/kubernetes/kube-controller-manager.logrotated b/testing/kubernetes/kube-controller-manager.logrotated
deleted file mode 100644
index 06efce23406..00000000000
--- a/testing/kubernetes/kube-controller-manager.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/kube-controller-manager/*.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/testing/kubernetes/kube-proxy.confd b/testing/kubernetes/kube-proxy.confd
deleted file mode 100644
index 00f33f358bb..00000000000
--- a/testing/kubernetes/kube-proxy.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-###
-# Kubernetes kube-proxy config
-#
-command_args=""
diff --git a/testing/kubernetes/kube-proxy.initd b/testing/kubernetes/kube-proxy.initd
deleted file mode 100755
index e9d2c0e48e1..00000000000
--- a/testing/kubernetes/kube-proxy.initd
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Kubernetes Proxy service"
-pidfile=${pidfile:-"/run/${SVCNAME}.pid"}
-user=${user:-root}
-group=${group:-root}
-
-command="/usr/bin/kube-proxy"
-command_args="${command_args}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${SVCNAME}/${SVCNAME}.log \
- --stderr /var/log/${SVCNAME}/${SVCNAME}.log"
-
-depend() {
- after net
-}
-
diff --git a/testing/kubernetes/kube-proxy.logrotated b/testing/kubernetes/kube-proxy.logrotated
deleted file mode 100644
index e90a1015136..00000000000
--- a/testing/kubernetes/kube-proxy.logrotated
+++ /dev/null
@@ -1,8 +0,0 @@
-/var/log/kube-proxy/*.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
-
diff --git a/testing/kubernetes/kube-scheduler.confd b/testing/kubernetes/kube-scheduler.confd
deleted file mode 100644
index 35da3d2228a..00000000000
--- a/testing/kubernetes/kube-scheduler.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-###
-# kubernetes system config
-#
-# The following values are used to configure the kube-scheduler
-#
-
-command_args=""
diff --git a/testing/kubernetes/kube-scheduler.initd b/testing/kubernetes/kube-scheduler.initd
deleted file mode 100755
index ca4c28aae43..00000000000
--- a/testing/kubernetes/kube-scheduler.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Kubernetes Scheduler service"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-root}
-group=${group:-root}
-
-command="/usr/bin/kube-scheduler"
-command_args="${command_args}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
- --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-depend() {
- after net
-}
diff --git a/testing/kubernetes/kube-scheduler.logrotated b/testing/kubernetes/kube-scheduler.logrotated
deleted file mode 100644
index 6cce6c6f5be..00000000000
--- a/testing/kubernetes/kube-scheduler.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/kube-scheduler/*.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/testing/kubernetes/kubelet.confd b/testing/kubernetes/kubelet.confd
deleted file mode 100644
index c77d7766cd3..00000000000
--- a/testing/kubernetes/kubelet.confd
+++ /dev/null
@@ -1 +0,0 @@
-command_args="--cni-bin-dir=/usr/share/cni-plugins/bin --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml"
diff --git a/testing/kubernetes/kubelet.initd b/testing/kubernetes/kubelet.initd
deleted file mode 100755
index 2cf5691920a..00000000000
--- a/testing/kubernetes/kubelet.initd
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2016-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Kubelet, a Kubernetes node agent"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-root}
-group=${group:-root}
-
-if [ -e /var/lib/kubelet/kubeadm-flags.env ]; then
- source /var/lib/kubelet/kubeadm-flags.env;
-fi
-
-command="/usr/bin/kubelet"
-command_args="${command_args} ${KUBELET_KUBEADM_ARGS}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/kubelet/${RC_SVCNAME}.log \
- --stderr /var/log/kubelet/${RC_SVCNAME}.log"
-
-depend() {
- after net
-}
diff --git a/testing/kubernetes/kubelet.logrotated b/testing/kubernetes/kubelet.logrotated
deleted file mode 100644
index f87767fe985..00000000000
--- a/testing/kubernetes/kubelet.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/kubelet/*.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/testing/kubernetes/make-e2e_node-run-over-distro-bins.patch b/testing/kubernetes/make-e2e_node-run-over-distro-bins.patch
deleted file mode 100644
index 2ace6bb6373..00000000000
--- a/testing/kubernetes/make-e2e_node-run-over-distro-bins.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/hack/make-rules/test-e2e-node.sh
-+++ b/hack/make-rules/test-e2e-node.sh
-@@ -173,6 +173,6 @@
- --system-spec-name="${system_spec_name}" --extra-envs="${extra_envs}" \
- --ginkgo-flags="${ginkgoflags}" --test-flags="--container-runtime=${runtime} \
- --alsologtostderr --v 4 --report-dir=${artifacts} --node-name $(hostname) \
-- ${test_args}" --build-dependencies=true 2>&1 | tee -i "${artifacts}/build-log.txt"
-+ ${test_args} --k8s-bin-dir /usr/bin" --build-dependencies=true 2>&1 | tee -i "${artifacts}/build-log.txt"
- exit $?
- fi
diff --git a/testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch b/testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch
deleted file mode 100644
index 16f4407e223..00000000000
--- a/testing/kubernetes/make-test-cmd-run-over-hyperkube-based-kubectl.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/hack/lib/test.sh b/hack/lib/test.sh
-index 62a6765f..775d1d96 100644
---- a/hack/lib/test.sh
-+++ b/hack/lib/test.sh
-@@ -77,12 +77,12 @@ kube::test::object_assert() {
- local object=$2
- local request=$3
- local expected=$4
-- local args=${5:-}
-+ local get_args=${5:-}
-
- for j in $(seq 1 "${tries}"); do
- # shellcheck disable=SC2086
- # Disabling because "args" needs to allow for expansion here
-- res=$(eval kubectl get "${kube_flags[@]}" ${args} "${object}" -o go-template=\""${request}"\")
-+ res=$(eval kubectl ${args} get "${kube_flags[@]}" ${get_args} "${object}" -o go-template=\""${request}"\")
- if [[ "${res}" =~ ^$expected$ ]]; then
- echo -n "${green}"
- echo "$(kube::test::get_caller 3): Successful get ${object} ${request}: ${res}"
diff --git a/testing/kubesplit/APKBUILD b/testing/kubesplit/APKBUILD
new file mode 100644
index 00000000000..a2c7b4bc586
--- /dev/null
+++ b/testing/kubesplit/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=kubesplit
+pkgver=0.3.3
+pkgrel=1
+pkgdesc="Split multidoc yaml formatted kubernetes descriptors to a set of single resource files"
+url="https://github.com/looztra/kubesplit"
+arch="noarch"
+license="Apache-2.0"
+depends="python3 py3-ruamel.yaml yamkix"
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-poetry-core
+ py3-poetry-dynamic-versioning
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-pytest-runner"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/looztra/kubesplit/archive/v$pkgver.tar.gz"
+
+build() {
+ export POETRY_DYNAMIC_VERSIONING_BYPASS="$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+b2122caed952de1bc70bafd993f6d16d153f0511ab19481ab346c3399a2660eb493e46b36a7bb3703bfa7beae6c9822067316e2242f03faac7445eeb2649931c kubesplit-0.3.3.tar.gz
+"
diff --git a/testing/kumactl/APKBUILD b/testing/kumactl/APKBUILD
new file mode 100644
index 00000000000..8dd8be59b98
--- /dev/null
+++ b/testing/kumactl/APKBUILD
@@ -0,0 +1,114 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=kumactl
+pkgver=2.6.1
+# Keep this in sync with the version of envoyproxy package
+_envoyver=1.28.1
+pkgrel=2
+pkgdesc="CLI for the multi-zone service mesh Kuma"
+url="https://kuma.io"
+# The only build targets for eBPF module
+# https://github.com/kumahq/kuma/tree/master/pkg/transparentproxy/ebpf/programs
+arch="x86_64 aarch64"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ kuma-cp:_controlplane
+ kuma-cp-openrc:_controlplane_openrc
+ kuma-dp:_dataplane
+ kuma-dp-openrc:_dataplane_openrc
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/kumahq/kuma/archive/refs/tags/$pkgver.tar.gz
+ kuma-cp.initd
+ kuma-cp.confd
+ kuma-dp.initd
+ kuma-dp.confd
+ "
+builddir="$srcdir/kuma-$pkgver"
+
+# secfixes:
+# 2.1.0-r0:
+# - CVE-2020-8911
+# - CVE-2020-8912
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X github.com/kumahq/kuma/pkg/version.Envoy=$_envoyver
+ -X github.com/kumahq/kuma/pkg/version.version=$pkgver
+ -X github.com/kumahq/kuma/pkg/version.gitTag=v$pkgver
+ -X github.com/kumahq/kuma/pkg/version.gitCommit=AlpineLinux
+ -X github.com/kumahq/kuma/pkg/version.buildDate=$(date -u "+%Y-%m-%dT%H:%M:%SZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+ for prog in kumactl kuma-cp kuma-dp; do
+ go build -v -o $prog -ldflags "$_goldflags" ./app/$prog
+ done
+
+ # Only generate shell completions for the client program
+ for shell in bash fish zsh; do
+ ./kumactl completion $shell > kumactl.$shell
+ done
+}
+
+check() {
+ # Only run tests against related modules
+ for prog in kumactl kuma-cp kuma-dp; do
+ # shellcheck disable=2046
+ go test \
+ -ldflags "-X github.com/kumahq/kuma/pkg/version.Envoy=$_envoyver" \
+ $(go list ./app/$prog/... ./pkg/config/app/$prog/...)
+ done
+}
+
+package() {
+ install -Dm755 kumactl kuma-cp kuma-dp -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+_controlplane() {
+ pkgdesc="Control plane program for the multi-zone service mesh Kuma"
+ amove usr/bin/kuma-cp
+}
+
+_controlplane_openrc() {
+ pkgdesc="Control plane program for the multi-zone service mesh Kuma (OpenRC init scripts)"
+ install_if="openrc kuma-cp=$pkgver-r$pkgrel"
+
+ install -Dm755 "$srcdir"/kuma-cp.initd "$subpkgdir"/etc/init.d/kuma-cp
+ install -Dm644 "$srcdir"/kuma-cp.confd "$subpkgdir"/etc/conf.d/kuma-cp
+}
+
+_dataplane() {
+ pkgdesc="Data plane program for the multi-zone service mesh Kuma"
+ # TODO: package Envoy as it is the direct dependency of kuma-dp
+ # depends="envoyproxy"
+ amove usr/bin/kuma-dp
+}
+
+_dataplane_openrc() {
+ pkgdesc="Data plane program for the multi-zone service mesh Kuma (OpenRC init scripts)"
+ install_if="openrc kuma-dp=$pkgver-r$pkgrel"
+
+ install -Dm755 "$srcdir"/kuma-dp.initd "$subpkgdir"/etc/init.d/kuma-dp
+ install -Dm644 "$srcdir"/kuma-dp.confd "$subpkgdir"/etc/conf.d/kuma-dp
+}
+
+sha512sums="
+2b71ed354f4631723100682e79e7f30fd3e51f296c330142f04f5833fdb9ce1d2608ffb512551e9aef14d50b2a84e6e87210d707321e0c591d4f3e3ae9d91137 kumactl-2.6.1.tar.gz
+001e46b18ab4c1d0b131667d07567d0ec13fcadcc850265f97c4e82a0342285a5607191e0225e9fe8f683ce62551af833286b867e1df784f19935eca779ada79 kuma-cp.initd
+a3285adff02e44f2ae8e38e94fea91d0039d1edd4b42fbe598d60e1d46495fbf7b38cab3a60eb331590f791ad83701094f7f7e331bcc54921746430ed0abd749 kuma-cp.confd
+d9c3fc8c4f8bfe488db871551d632009733c65318a73c8ebca13d216a69de1f11f3a68d782b8c34b7d3258f65acc39bd8d7bb5b2d012d2b7b9f0e727797edf66 kuma-dp.initd
+10caa08a588af0b5889e964094cf7f1f4c5e201dd7cf8e162bda3c050aa64542aed6444b7246208b1c19c138e807c202ad5b7ee42bf187ca219511ab33894a8a kuma-dp.confd
+"
diff --git a/testing/kumactl/kuma-cp.confd b/testing/kumactl/kuma-cp.confd
new file mode 100644
index 00000000000..ecb73d5bc1b
--- /dev/null
+++ b/testing/kumactl/kuma-cp.confd
@@ -0,0 +1,16 @@
+# kuma-cp service configuration options
+
+# extra arguments to pass to kuma-cp
+command_args=""
+
+# user:group to run the process with
+command_user="kuma:kuma"
+
+# location of kuma-cp config file
+#configfile="/etc/kuma/kuma-cp.yaml"
+
+# where to store output logs for kuma-cp process
+logfile="/var/log/kuma/kuma-cp.log"
+
+# comment to use traditional service management
+supervisor=supervise-daemon
diff --git a/testing/kumactl/kuma-cp.initd b/testing/kumactl/kuma-cp.initd
new file mode 100644
index 00000000000..44e931135db
--- /dev/null
+++ b/testing/kumactl/kuma-cp.initd
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+
+: ${command_user:="kuma:kuma"}
+
+name=kuma-cp
+description="Kuma control plane"
+command="/usr/bin/kuma-cp"
+command_args="
+ run
+ ${logfile:+"--log-output-path \"$logfile\""}
+ ${configfile:+"--config-file \"$configfile\""}
+ ${command_args:-}
+ "
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+KUMA_MODE="standalone"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" /var/lib/kuma /var/log/kuma
+ if [ -n "$logfile" ]; then
+ checkpath -f -m 640 -o "$command_user" "$logfile"
+ fi
+}
diff --git a/testing/kumactl/kuma-cp.pre-install b/testing/kumactl/kuma-cp.pre-install
new file mode 100644
index 00000000000..45d040046b1
--- /dev/null
+++ b/testing/kumactl/kuma-cp.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S kuma 2>/dev/null
+adduser -S -D -h /var/lib/kuma -s /sbin/nologin -G kuma -g kuma kuma 2>/dev/null
+
+exit 0
diff --git a/testing/kumactl/kuma-dp.confd b/testing/kumactl/kuma-dp.confd
new file mode 100644
index 00000000000..fc28138a8cf
--- /dev/null
+++ b/testing/kumactl/kuma-dp.confd
@@ -0,0 +1,16 @@
+# kuma-dp service configuration options
+
+# extra arguments to pass to kuma-dp
+command_args=""
+
+# user:group to run the process with
+command_user="kuma:kuma"
+
+# binary path to the Envoy executable
+envoypath="/usr/bin/envoy"
+
+# where to store output logs for kuma-dp process
+logfile="/var/log/kuma/kuma-dp.log"
+
+# comment to use traditional service management
+supervisor=supervise-daemon
diff --git a/testing/kumactl/kuma-dp.initd b/testing/kumactl/kuma-dp.initd
new file mode 100644
index 00000000000..5d218a14548
--- /dev/null
+++ b/testing/kumactl/kuma-dp.initd
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+
+: ${command_user:="kuma:kuma"}
+: ${envoypath:="/usr/bin/envoy"}
+
+name=kuma-dp
+description="Kuma data plane proxy"
+command="/usr/bin/kuma-dp"
+command_args="
+ run
+ ${envoypath:+"--binary-path \"$envoypath\""}
+ ${logfile:+"--log-output-path \"$logfile\""}
+ ${command_args:-}
+ "
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" /var/lib/kuma /var/log/kuma
+ if [ -n "$logfile" ]; then
+ checkpath -f -m 640 -o "$command_user" "$logfile"
+ fi
+}
diff --git a/testing/kumactl/kuma-dp.pre-install b/testing/kumactl/kuma-dp.pre-install
new file mode 120000
index 00000000000..fe08a9890ee
--- /dev/null
+++ b/testing/kumactl/kuma-dp.pre-install
@@ -0,0 +1 @@
+kuma-cp.pre-install \ No newline at end of file
diff --git a/testing/kyotocabinet/APKBUILD b/testing/kyotocabinet/APKBUILD
deleted file mode 100644
index a4ed9335b6a..00000000000
--- a/testing/kyotocabinet/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Andrey L <innerspacepilot@gmx.com>
-# Maintainer: Andrey L <innerspacepilot@gmx.com>
-pkgname=kyotocabinet
-pkgver=1.2.77
-pkgrel=0
-pkgdesc="Kyoto Cabinet is a library of routines for managing a database."
-url="https://fallabs.com/kyotocabinet/"
-arch="all !ppc64le !s390x !armhf !armv7"
-license="GPL-3.0-or-later"
-makedepends="zlib-dev lzo-dev xz-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://fallabs.com/kyotocabinet/pkg/kyotocabinet-$pkgver.tar.gz"
-
-build() {
- ./configure --prefix=/usr --enable-lzo --enable-lzma
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="f38794c11faa3f4b64097a2e314307e1a6b75ddc495103647ebe52786a689336754496e7083697417ea90436e7fad681f16440975abec9ae917874aa25153e0f kyotocabinet-1.2.77.tar.gz"
diff --git a/testing/ladspa/APKBUILD b/testing/ladspa/APKBUILD
deleted file mode 100644
index 7d960453161..00000000000
--- a/testing/ladspa/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=ladspa
-pkgver=1.15
-pkgrel=0
-pkgdesc="Linux Audio Developer's Simple Plug-in API, examples and tools"
-url="https://www.ladspa.org"
-arch="all"
-license="LGPL-2.0-or-later"
-subpackages="$pkgname-dev"
-source="https://www.ladspa.org/download/ladspa_sdk_$pkgver.tgz
- fix-memleak-in-plugin-scanning.patch"
-builddir="$srcdir/ladspa_sdk_$pkgver/src"
-
-build() {
- make targets
-}
-
-check() {
- make test
-}
-
-package() {
- make INSTALL_PLUGINS_DIR="$pkgdir/usr/lib/ladspa/" \
- INSTALL_INCLUDE_DIR="$pkgdir/usr/include/" \
- INSTALL_BINARY_DIR="$pkgdir/usr/bin/" install
-}
-
-sha512sums="a521622e23d988284244003e4ccfc3b42f6ddc7944cb00e7949b87e09d7f39a0cbb64b6d8b5a5af0a5ccf7179f88815416a88f02d3912957167e54b74accfc65 ladspa_sdk_1.15.tgz
-1a96b24a47c2c82f7c2f66e2ee711f0ecbed9b03260562b72ced1bd4c8f0e518d15fc7c15951b95b1999e3dae1723b855fd3431a9795279f8a88ad68900e48e7 fix-memleak-in-plugin-scanning.patch"
diff --git a/testing/ladspa/fix-memleak-in-plugin-scanning.patch b/testing/ladspa/fix-memleak-in-plugin-scanning.patch
deleted file mode 100644
index bc8ef7c4b3c..00000000000
--- a/testing/ladspa/fix-memleak-in-plugin-scanning.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./search.c.orig 2008-11-07 00:38:18.000000000 +0100
-+++ ./search.c 2008-11-07 00:50:51.000000000 +0100
-@@ -83,6 +83,8 @@
- dlclose(pcFilename);
- free(pcFilename);
- }
-+ } else {
-+ free(pcFilename);
- }
- }
- }
diff --git a/testing/laminar/APKBUILD b/testing/laminar/APKBUILD
new file mode 100644
index 00000000000..337b80a96f2
--- /dev/null
+++ b/testing/laminar/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=laminar
+pkgver=1.3
+pkgrel=4
+pkgdesc="Fast and lightweight Continuous Integration server"
+url="https://laminar.ohwg.net/"
+license="GPL-3.0-or-later"
+arch="all !armhf !armv7 !x86" # FTBFS on 32-bit arches
+arch="$arch !ppc64le !s390x" # tests fail
+install="$pkgname.pre-install"
+makedepends="clang cmake samurai boost-dev capnproto-dev rapidjson-dev sqlite-dev gtest-dev"
+subpackages="
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+_vue_ver=2.6.12
+_ansi_up_ver=4.0.4
+_chart_ver=3.9.1
+source="https://github.com/ohwgiles/laminar/archive/$pkgver/laminar-$pkgver.tar.gz
+ vue-$_vue_ver.min.js::https://cdnjs.cloudflare.com/ajax/libs/vue/$_vue_ver/vue.min.js
+ ansi_up-$_ansi_up_ver.js::https://raw.githubusercontent.com/drudru/ansi_up/v$_ansi_up_ver/ansi_up.js
+ https://github.com/chartjs/Chart.js/releases/download/v$_chart_ver/chart.js-$_chart_ver.tgz
+ $pkgname.initd
+ no-network.patch
+ laminard-location.patch
+ libstdc++13.patch
+ musl.patch
+ "
+
+prepare() {
+ default_prepare
+
+ sed -i 's/^#LAMINAR/#export LAMINAR/g' etc/laminar.conf
+
+ install -Dm644 "$srcdir"/vue-$_vue_ver.min.js build/js/vue.min.js
+ install -Dm644 "$srcdir"/ansi_up-$_ansi_up_ver.js build/js/ansi_up.js
+ install -Dm644 "$srcdir"/package/dist/chart.min.js build/js/Chart.min.js
+}
+
+check() {
+ ./build/laminar-tests
+}
+
+build() {
+ CC=clang CXX=clang++ \
+ cmake -G Ninja -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLAMINAR_VERSION=$pkgver \
+ -DSYSTEMD_UNITDIR=/no_systemd \
+ -DBUILD_TESTS=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ # we don't use systemd
+ rm -r "$pkgdir"/no_systemd
+}
+
+sha512sums="
+cdcf3544e641bf6250361e8b693de90300014d86ed1053e65a2670243b8901707c16c274ea63cebb613943fa81a9a9037778a00ad4a1296c3f7efb2888fe52a3 laminar-1.3.tar.gz
+04a6d247e71fcb12dd300b04d2768b45e1522e0f3fa636e07f11e1fe4fe4502f361f2eebe87b51e612e1a1b6a59f681c4efce4cb27a1add444763a6c430cb627 vue-2.6.12.min.js
+34c8cb74f687abc77ab84c4a504a04d9b334e9224ceffd35e6e3b31f0ff1c59ee3ddb239e5d731b6839de00485d47db34f338e2943affba04a80f6ecb43eafc3 ansi_up-4.0.4.js
+468d896cb9af83cde05c5e45e2c9e2690fa54db4afd7c13e4c87f670e7a21f522a7763c614eb5e9be0d4b9f319b02270144ef2c0f3a97d7141c114c6abb761eb chart.js-3.9.1.tgz
+c203f573cc44a76f3f66f170b7baa3d9784ceae7532f872985a071e1b06cd1d436ff3e45f39260cdb0333b9bb64312fcbff6eb3ac1230711636f57c92d4922ff laminar.initd
+f5845eaa845358a55b549632f85d8cdd29fe09592ef99ec5df0f22493e4a2b00161dca6266f4180f54a90aae7b5826e3751fe9ca5f23ff1aec0b5817b24bbf6a no-network.patch
+cef3436e6123c2fc71cab4cb565db625cf60e8311410fd08548f140c42745de1114e950b1459011f70bbdf45c220e63db2798b1cdeb01e82df09719208ef9620 laminard-location.patch
+9c0b11f0c141c716185992f49a6ebbc3e168a7ab91de8ac70be890ecf003e67976ee41952d76bfc668144d2520e1434a2b6c74ec63803191d6163716f38993d0 libstdc++13.patch
+6b532e15a9f308a7d1c51c2c346492c0e49710b813efb1cd17ca3520479ab700d844908119a44c8e3eca3fa0d3798d98bc0c572a0ea3e865c6694eda9a656b73 musl.patch
+"
diff --git a/testing/laminar/laminar.initd b/testing/laminar/laminar.initd
new file mode 100644
index 00000000000..c6e4d282655
--- /dev/null
+++ b/testing/laminar/laminar.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+
+name="Laminar CI"
+description="Fast and lightweight Continuous Integration server"
+
+: ${output_logger="logger -t laminard -p daemon.info >/dev/null 2>&1"}
+: ${error_logger="logger -t laminard -p daemon.err >/dev/null 2>&1"}
+
+command="/usr/bin/laminard"
+command_user="laminar:laminar"
+command_background="yes"
+directory="/var/lib/$RC_SVCNAME"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need localmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory"
+
+ source /etc/laminar.conf
+}
diff --git a/testing/laminar/laminar.pre-install b/testing/laminar/laminar.pre-install
new file mode 100644
index 00000000000..5c2edc4555b
--- /dev/null
+++ b/testing/laminar/laminar.pre-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+user=laminar
+group=laminar
+gecos="Laminar CI"
+
+addgroup -S $group 2>/dev/null
+adduser -S -D -H -h /var/lib/$user -s /sbin/nologin -G $group -g "$gecos" $user 2>/dev/null
+
+exit 0
diff --git a/testing/laminar/laminard-location.patch b/testing/laminar/laminard-location.patch
new file mode 100644
index 00000000000..6566ade866e
--- /dev/null
+++ b/testing/laminar/laminard-location.patch
@@ -0,0 +1,13 @@
+Install laminard under bin.
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -142,7 +142,7 @@ endif()
+ set(SYSTEMD_UNITDIR /lib/systemd/system CACHE PATH "Path to systemd unit files")
+ set(BASH_COMPLETIONS_DIR /usr/share/bash-completion/completions CACHE PATH "Path to bash completions directory")
+ set(ZSH_COMPLETIONS_DIR /usr/share/zsh/site-functions CACHE PATH "Path to zsh completions directory")
+-install(TARGETS laminard RUNTIME DESTINATION sbin)
++install(TARGETS laminard RUNTIME DESTINATION bin)
+ install(TARGETS laminarc RUNTIME DESTINATION bin)
+ install(FILES etc/laminar.conf DESTINATION /etc)
+ install(FILES etc/laminarc-completion.bash DESTINATION ${BASH_COMPLETIONS_DIR} RENAME laminarc)
diff --git a/testing/laminar/libstdc++13.patch b/testing/laminar/libstdc++13.patch
new file mode 100644
index 00000000000..4bf38456020
--- /dev/null
+++ b/testing/laminar/libstdc++13.patch
@@ -0,0 +1,12 @@
+diff --git a/src/database.cpp b/src/database.cpp
+index 8cf77a1..67965b2 100644
+--- a/src/database.cpp
++++ b/src/database.cpp
+@@ -18,6 +18,7 @@
+ ///
+ #include "database.h"
+
++#include <cstdint>
+ #include <sqlite3.h>
+ #include <string.h>
+ #include <math.h>
diff --git a/testing/laminar/musl.patch b/testing/laminar/musl.patch
new file mode 100644
index 00000000000..0763f2e9234
--- /dev/null
+++ b/testing/laminar/musl.patch
@@ -0,0 +1,12 @@
+--- a/test/eventsource.h
++++ b/test/eventsource.h
+@@ -24,6 +24,9 @@
+ #include <rapidjson/document.h>
+ #include <vector>
+
++// Definition needed for musl
++typedef unsigned long ulong;
++
+ class EventSource {
+ public:
+ EventSource(kj::AsyncIoContext& ctx, const char* httpConnectAddr, const char* path) :
diff --git a/testing/laminar/no-network.patch b/testing/laminar/no-network.patch
new file mode 100644
index 00000000000..78521bf4614
--- /dev/null
+++ b/testing/laminar/no-network.patch
@@ -0,0 +1,22 @@
+We install these frontend libraries in the `prepare` step.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ae86ce9..8a108d1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -82,14 +82,7 @@ add_custom_command(OUTPUT index_html_size.h
+ COMMAND sh -c '( echo -n "\\#define INDEX_HTML_UNCOMPRESSED_SIZE " && wc -c < "${CMAKE_SOURCE_DIR}/src/resources/index.html" ) > index_html_size.h'
+ DEPENDS src/resources/index.html)
+
+-# Download 3rd-party frontend JS libs...
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.12/vue.min.js
+- js/vue.min.js EXPECTED_MD5 fb192338844efe86ec759a40152fcb8e)
+-file(DOWNLOAD https://raw.githubusercontent.com/drudru/ansi_up/v4.0.4/ansi_up.js
+- js/ansi_up.js EXPECTED_MD5 b31968e1a8fed0fa82305e978161f7f5)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.9.1/chart.min.js
+- js/Chart.min.js EXPECTED_MD5 7dd5ea7d2cf22a1c42b43c40093d2669)
+-# ...and compile them
++# Compile 3rd-party frontend JS libs...
+ generate_compressed_bins(${CMAKE_BINARY_DIR} js/vue.min.js
+ js/ansi_up.js js/Chart.min.js)
+ # (see resources.cpp where these are fetched)
diff --git a/testing/laszip/APKBUILD b/testing/laszip/APKBUILD
deleted file mode 100644
index 1465238e2b6..00000000000
--- a/testing/laszip/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=laszip
-pkgver=3.4.3
-pkgrel=1
-pkgdesc="LASzip point cloud compression library"
-url="https://github.com/laszip/laszip"
-arch="all"
-license="LGPL-2.0-or-later"
-options="!check"
-makedepends="cmake"
-subpackages="$pkgname-dev"
-source="laszip-$pkgver.tar.gz::https://github.com/LASzip/laszip/archive/$pkgver.tar.gz"
-builddir="$srcdir"/LASzip-"$pkgver"
-
-build() {
- mkdir build && cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="e99d03b7383d07d35463c9d1643787ec5030722d80798b4d9eb2a7935d3181ea6485e298589023814c21fc89851dd7c5232a65b4c9041ccccf1450b80d293268 laszip-3.4.3.tar.gz"
diff --git a/testing/laz-perf/APKBUILD b/testing/laz-perf/APKBUILD
deleted file mode 100644
index 72b0f5332f4..00000000000
--- a/testing/laz-perf/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=laz-perf
-pkgver=1.3.0
-pkgrel=1
-pkgdesc="Alternative LAZ implementation for C++ and JavaScript"
-url="https://github.com/hobu/laz-perf"
-arch="all !armhf !armv7 !s390x !mips !mips64" # armhf: io_test segfaults
-license="LGPL-2.0-or-later"
-makedepends="cmake"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hobu/$pkgname/archive/$pkgver.tar.gz"
-
-build() {
- mkdir build && cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DWITH_TESTS=ON
- make
-}
-
-check() {
- cd "$builddir"/build
- make test
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="4e6e5197a90bf98fe6784a56e940070ad640ee2791443b9232960fd0f7639cc8d48d5c13df0cfc228e6be5fccd600afb1c171cb5e127bd874688e0ab231c25a8 laz-perf-1.3.0.tar.gz"
diff --git a/testing/laze/APKBUILD b/testing/laze/APKBUILD
new file mode 100644
index 00000000000..a6700e78a65
--- /dev/null
+++ b/testing/laze/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Kaspar Schleiser <kaspar@schleiser.de>
+# Maintainer: Kaspar Schleiser <kaspar@schleiser.de>
+pkgname=laze
+pkgver=0.1.21
+pkgrel=0
+pkgdesc="laze is a build system based on Ninja, aiming to be the next goto-alternative to make"
+url="https://laze-build.org"
+arch="all"
+license="Apache-2.0"
+depends="ninja"
+makedepends="cargo cargo-auditable"
+checkdepends="xz"
+subpackages="$pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/kaspar030/laze/archive/$pkgver/laze-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 "target/release/laze" "$pkgdir/usr/bin/laze"
+
+ # create man pages
+ mkdir -p tmp/man tmp/completions
+ target/release/laze manpage tmp/man
+
+ install -Dm644 "tmp/man/laze.1" "$pkgdir/usr/share/man/man1/laze.1"
+ install -Dm644 "tmp/man/laze-build.1" "$pkgdir/usr/share/man/man1/laze-build.1"
+ install -Dm644 "tmp/man/laze-clean.1" "$pkgdir/usr/share/man/man1/laze-clean.1"
+
+ # create completions
+ for shell in bash zsh fish; do
+ target/release/laze -Ctmp/completions completion --generate $shell \
+ > tmp/completions/$shell
+ done
+
+ install -Dm644 "tmp/completions/bash" \
+ "$pkgdir/usr/share/bash-completion/completions/laze"
+ install -Dm644 "tmp/completions/fish" \
+ "$pkgdir/usr/share/fish/vendor_completions.d/laze.fish"
+ install -Dm644 "tmp/completions/zsh" \
+ "$pkgdir/usr/share/zsh/site-functions/_laze"
+}
+
+sha512sums="
+16026189437f59517e85e64843516d6cdde76f826901c09b6c990a4ae48bf85bd6eb24da1b867b1aa662c74e0ef3e55b8608ee6406abef02f980c7ad3367858e laze-0.1.21.tar.gz
+"
diff --git a/testing/lazymc/APKBUILD b/testing/lazymc/APKBUILD
new file mode 100644
index 00000000000..5542c684bc2
--- /dev/null
+++ b/testing/lazymc/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=lazymc
+pkgver=0.2.11
+pkgrel=0
+pkgdesc="Put your Minecraft server to rest when idle"
+url="https://github.com/timvisee/lazymc"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/timvisee/lazymc/archive/refs/tags/v$pkgver.tar.gz
+ lazymc.initd
+ lazymc.confd
+"
+options="net !check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/lazymc "$pkgdir"/usr/bin/lazymc
+
+ install -Dm 755 "$srcdir"/lazymc.initd "$pkgdir"/etc/init.d/lazymc
+ install -Dm 644 "$srcdir"/lazymc.confd "$pkgdir"/etc/conf.d/lazymc
+
+ "$pkgdir"/usr/bin/lazymc config generate -c "$pkgdir"/etc/lazymc.toml
+}
+
+sha512sums="
+64750b0bc5c4a4f08bf8aa19683b8415fdc62c0215208c4503e6d338c976decccf391aa0b8913676082d07a0e6ec7d45e05aef17e0765698679ca6eb2257a643 lazymc-0.2.11.tar.gz
+29479bc55dbea006944b974ec507c907de43ab33dd7be27d41c42d157824ecc704b4ca4bb20a46dd889d92d5b715af4977ec9e92f2a2a8632ca3af942c873d7d lazymc.initd
+9eb8e36476c471c2ae42e5ca985746f0f020437cdc4e38c25eecde70605d3ee48db539370be991258c0b3e25a0946ce9245754c26d64d7ac2e1994ee573a5502 lazymc.confd
+"
diff --git a/testing/lazymc/lazymc.confd b/testing/lazymc/lazymc.confd
new file mode 100644
index 00000000000..e421bb5e292
--- /dev/null
+++ b/testing/lazymc/lazymc.confd
@@ -0,0 +1,3 @@
+command_user=lazymc:lazymc
+logdir=/var/log/lazymc
+_conf_path=/etc/lazymc.toml
diff --git a/testing/lazymc/lazymc.initd b/testing/lazymc/lazymc.initd
new file mode 100644
index 00000000000..adf427236b7
--- /dev/null
+++ b/testing/lazymc/lazymc.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+supervisor="supervise-daemon"
+
+# fallback values for /etc/conf.d/lazymc
+: ${command_user:=lazymc:lazymc}
+: ${logdir:=/var/log/lazymc}
+: ${_conf_path:=/etc/lazymc.toml}
+
+name=lazymc
+description="Put your Minecraft server to rest when idle"
+command="/usr/bin/lazymc"
+command_args="-c $_conf_path"
+command_background=true
+
+pidfile="/run/$name.pid"
+output_log="$logdir/output.log"
+error_log="$logdir/error.log"
+
+depend() {
+ need net
+ use logger
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$logdir"
+ checkpath -f -o "$command_user" "$output_log" "$error_log"
+}
diff --git a/testing/lazymc/lazymc.pre-install b/testing/lazymc/lazymc.pre-install
new file mode 100644
index 00000000000..426deff112c
--- /dev/null
+++ b/testing/lazymc/lazymc.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S lazymc #2>/dev/null
+adduser -S -D -s /sbin/nologin -G lazymc -g lazymc lazymc #2>/dev/null
+
+exit 0
diff --git a/testing/lcalc/APKBUILD b/testing/lcalc/APKBUILD
new file mode 100644
index 00000000000..4843e6ae99c
--- /dev/null
+++ b/testing/lcalc/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=lcalc
+pkgver=2.0.5
+pkgrel=1
+pkgdesc="Michael Rubinstein's L-function calculator"
+url="https://gitlab.com/sagemath/lcalc"
+# blocked by pari
+arch="all !armhf !armv7 !x86"
+license="GPL-2.0-or-later"
+makedepends="gengetopt gmp-dev pari-dev"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+source="https://gitlab.com/sagemath/lcalc/uploads/25f029f3c02fcb6c3174972e0ac0e192/lcalc-$pkgver.tar.xz"
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-pari
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d3b7fa25dd3c2a8f88671076dfb5ab5e933be7feff24bbd160c92a476953f5553f9fb58f72c36b9c668929385084918fc3396e1a0bcc55de12ea8cb647c53929 lcalc-2.0.5.tar.xz
+"
diff --git a/testing/lcov/APKBUILD b/testing/lcov/APKBUILD
index ef49739fcb5..b0d15b007ae 100644
--- a/testing/lcov/APKBUILD
+++ b/testing/lcov/APKBUILD
@@ -1,13 +1,23 @@
# Contributor: Shiva Velmurugan <shiv@shiv.me>
# Maintainer: Shiva Velmurugan <shiv@shiv.me>
pkgname=lcov
-pkgver=1.14
-pkgrel=0
+pkgver=2.0
+pkgrel=2
pkgdesc="LCOV is an extension to GCOV. It provides a graphical frontend for converage information"
url="https://github.com/linux-test-project/lcov"
arch="noarch"
license="GPL-2.0-or-later"
-depends="bash perl"
+depends="
+ bash
+ perl
+ perl-capture-tiny
+ perl-datetime
+ perl-digest-md5
+ perl-json-xs
+ perl-memory-process
+ perl-time-hires
+ perl-timedate
+ "
subpackages="$pkgname-doc"
source="https://github.com/linux-test-project/lcov/releases/download/v$pkgver/lcov-$pkgver.tar.gz"
@@ -15,4 +25,6 @@ package() {
make DESTDIR="$pkgdir" PREFIX="/usr" install
}
-sha512sums="2d60c3a63e300dda96171c432fe304840acc76bf6275f60934d08e80765f9f85671e8b77bfed758fc45842a80156586dc0d67c42c9f215f4f163840fc5cf65bc lcov-1.14.tar.gz"
+sha512sums="
+b19b6debc93c0de0e7e5b2aaffa6c74d20a1313ea4d20d8731c6a5ea7f4cc40933316d28ef791c91fdc12ca77c9449a388405f3dc0793588e366b72f596ab49b lcov-2.0.tar.gz
+"
diff --git a/testing/ldapdomaindump/APKBUILD b/testing/ldapdomaindump/APKBUILD
new file mode 100644
index 00000000000..36577453961
--- /dev/null
+++ b/testing/ldapdomaindump/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=ldapdomaindump
+pkgver=0.9.4
+pkgrel=1
+pkgdesc="Active Directory information dumper via LDAP"
+url="https://github.com/dirkjanm/ldapdomaindump"
+arch="noarch"
+license="MIT"
+depends="
+ py3-dnspython
+ py3-future
+ py3-ldap3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dirkjanm/ldapdomaindump/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+0da9ab936e391d08829ae12ba893b7a2dd088e1fe37cbce612bd4772a35c3dbcae836711f80a3abffb1e5d786af30b093e45534acab84c7c0ae36064f6980407 ldapdomaindump-0.9.4.tar.gz
+"
diff --git a/testing/ledger/APKBUILD b/testing/ledger/APKBUILD
deleted file mode 100644
index b8e0423a072..00000000000
--- a/testing/ledger/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Roberto Oliveira <robertoguimaraes8@gmail.com>
-# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
-pkgname=ledger
-pkgver=3.2.1
-pkgrel=0
-pkgdesc="Double-entry accounting system with a command-line reporting interface"
-url="https://www.ledger-cli.org/"
-arch="all"
-license="BSD-3-Clause"
-makedepends="cmake boost-dev gmp-dev mpfr-dev texinfo graphviz doxygen gettext"
-subpackages="$pkgname-doc"
-options="!check" # FIXME: some tests are failing
-source="$pkgname-$pkgver.tar.gz::https://github.com/ledger/ledger/archive/v$pkgver.tar.gz"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- $CMAKE_CROSSOPTS .
- make -C build
-}
-
-check() {
- make -C build check
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-sha512sums="526c60cee354c9d2ead38cef3b89b349467e41fa3ec0927b51e7246a3352f19f0f81574211f20ba9bac5915590b870b9f9478a103ab661d3d9a10f41c52f4512 ledger-3.2.1.tar.gz"
diff --git a/testing/ledmon/10-musl-build.patch b/testing/ledmon/10-musl-build.patch
new file mode 100644
index 00000000000..030271b8b87
--- /dev/null
+++ b/testing/ledmon/10-musl-build.patch
@@ -0,0 +1,218 @@
+--- a/src/ledctl.c
++++ b/src/ledctl.c
+@@ -214,15 +214,11 @@
+ *
+ * This is internal function of ledctl utility. The function cleans up a memory
+ * allocated for the application and closes all opened handles. This function is
+- * design to be registered as on_exit() handler function.
++ * design to be registered as atexit() handler function.
+ *
+- * @param[in] status exit status of the ledctl application.
+- * @param[in] ignored function ignores this argument.
+- *
+ * @return The function does not return a value.
+ */
+-static void _ledctl_fini(int status __attribute__ ((unused)),
+- void *ignore __attribute__ ((unused)))
++static void _ledctl_fini(void)
+ {
+ sysfs_reset();
+ list_erase(&ibpi_list);
+@@ -948,7 +944,7 @@
+ * @brief Application's entry point.
+ *
+ * This is the entry point of ledctl utility. This function does all the work.
+- * It allocates and initializes all used structures. Registers on_exit()
++ * It allocates and initializes all used structures. Registers atexit()
+ * handlers.
+ * Then the function parses command line options and commands given and scans
+ * sysfs tree for controllers, block devices and RAID devices. If no error is
+@@ -983,7 +979,7 @@
+ status = _init_ledctl_conf();
+ if (status != LEDCTL_STATUS_SUCCESS)
+ return status;
+- if (on_exit(_ledctl_fini, progname))
++ if (atexit(_ledctl_fini))
+ exit(LEDCTL_STATUS_ONEXIT_ERROR);
+ slot_request_init(&slot_req);
+ status = _cmdline_parse(argc, argv, &slot_req);
+--- a/src/ledmon.c
++++ b/src/ledmon.c
+@@ -58,6 +58,19 @@
+ #include "vmdssd.h"
+
+ /**
++ * This macro is the alternative way to get exit status
++ * in atexit() callback function
++ */
++#define EXIT(x) ((exit)(exit_status = (x)))
++
++static int exit_status;
++
++/**
++ * Flag to print exit status
++ */
++static int ignore;
++
++/**
+ * @brief List of active block devices.
+ *
+ * This list holds all block devices attached to supported storage controllers.
+@@ -151,20 +164,16 @@
+ *
+ * This is internal function of monitor service. It is used to finalize daemon
+ * process i.e. free allocated memory, unlock and remove pidfile and close log
+- * file and syslog. The function is registered as on_exit() handler.
++ * file and syslog. The function is registered as atexit() handler.
+ *
+- * @param[in] status The function ignores this parameter.
+- * @param[in] program_name The name of the binary file. This argument
+- * is passed via on_exit() function.
+- *
+ * @return The function does not return a value.
+ */
+-static void _ledmon_fini(int __attribute__ ((unused)) status, void *program_name)
++static void _ledmon_fini(void)
+ {
+ sysfs_reset();
+ list_erase(&ledmon_block_list);
+ log_close();
+- pidfile_remove(program_name);
++ pidfile_remove(progname);
+ }
+
+ typedef enum {
+@@ -207,30 +216,25 @@
+ *
+ * This is internal function of monitor service. It is used to report an exit
+ * status of the monitor service. The message is logged in to syslog and to log
+- * file. The function is registered as on_exit() hander.
++ * file. The function is registered as atexit() hander.
+ *
+- * @param[in] status Status given in the last call to exit()
+- * function.
+- * @param[in] arg Argument passed to on_exit().
+- *
+ * @return The function does not return a value.
+ */
+-static void _ledmon_status(int status, void *arg)
++static void _ledmon_status(void)
+ {
+ int log_level;
+ char message[4096];
+- int ignore = *((int *)arg);
+
+ if (ignore)
+ return;
+
+- if (status == LEDMON_STATUS_SUCCESS)
++ if (exit_status == LEDMON_STATUS_SUCCESS)
+ log_level = LOG_LEVEL_INFO;
+ else
+ log_level = LOG_LEVEL_ERROR;
+
+ snprintf(message, sizeof(message), "exit status is %s.",
+- ledmon_strstatus(status));
++ ledmon_strstatus(exit_status));
+
+ if (get_log_fd() >= 0)
+ _log(log_level, message);
+@@ -364,10 +368,10 @@
+ break;
+ case 'h':
+ _ledmon_help();
+- exit(EXIT_SUCCESS);
++ EXIT(EXIT_SUCCESS);
+ case 'v':
+ _ledmon_version();
+- exit(EXIT_SUCCESS);
++ EXIT(EXIT_SUCCESS);
+ case ':':
+ case '?':
+ return LEDMON_STATUS_CMDLINE_ERROR;
+@@ -890,14 +894,13 @@
+ int main(int argc, char *argv[])
+ {
+ ledmon_status_code_t status = LEDMON_STATUS_SUCCESS;
+- static int ignore;
+
+ setup_options(&longopt, &shortopt, possible_params,
+ possible_params_size);
+ set_invocation_name(argv[0]);
+ openlog(progname, LOG_PID | LOG_PERROR, LOG_DAEMON);
+
+- if (on_exit(_ledmon_status, &ignore))
++ if (atexit(_ledmon_status))
+ return LEDMON_STATUS_ONEXIT_ERROR;
+
+ if (_cmdline_parse_non_daemonise(argc, argv) != LEDMON_STATUS_SUCCESS)
+@@ -935,18 +938,18 @@
+
+ if (pid < 0) {
+ log_debug("main(): fork() failed (errno=%d).", errno);
+- exit(EXIT_FAILURE);
++ EXIT(EXIT_FAILURE);
+ }
+ if (pid > 0) {
+ ignore = 1; /* parent: don't print exit status */
+- exit(EXIT_SUCCESS);
++ EXIT(EXIT_SUCCESS);
+ }
+
+ pid_t sid = setsid();
+
+ if (sid < 0) {
+ log_debug("main(): setsid() failed (errno=%d).", errno);
+- exit(EXIT_FAILURE);
++ EXIT(EXIT_FAILURE);
+ }
+
+ _close_parent_fds();
+@@ -960,16 +963,16 @@
+
+ if (chdir("/") < 0) {
+ log_debug("main(): chdir() failed (errno=%d).", errno);
+- exit(EXIT_FAILURE);
++ EXIT(EXIT_FAILURE);
+ }
+ if (pidfile_create(progname)) {
+ log_debug("main(): pidfile_creat() failed.");
+- exit(EXIT_FAILURE);
++ EXIT(EXIT_FAILURE);
+ }
+ _ledmon_setup_signals();
+
+- if (on_exit(_ledmon_fini, progname))
+- exit(LEDMON_STATUS_ONEXIT_ERROR);
++ if (atexit(_ledmon_fini))
++ EXIT(LEDMON_STATUS_ONEXIT_ERROR);
+ list_init(&ledmon_block_list, (item_free_t)block_device_fini);
+ sysfs_init();
+ log_info("monitor service has been started...");
+@@ -987,5 +990,5 @@
+ }
+ ledmon_remove_shared_conf();
+ stop_udev_monitor();
+- exit(EXIT_SUCCESS);
++ EXIT(EXIT_SUCCESS);
+ }
+--- a/src/utils.h
++++ b/src/utils.h
+@@ -22,6 +22,7 @@
+ #define _UTILS_H_INCLUDED_
+
+ #include <getopt.h>
++#include <sys/types.h>
+ #include "config_file.h"
+ #include "stdlib.h"
+ #include "stdint.h"
+--- a/src/utils.c
++++ b/src/utils.c
+@@ -33,7 +33,6 @@
+ #include <string.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+-#include <sys/types.h>
+ #include <time.h>
+ #include <unistd.h>
+ #include <assert.h>
diff --git a/testing/ledmon/APKBUILD b/testing/ledmon/APKBUILD
new file mode 100644
index 00000000000..578d0de0beb
--- /dev/null
+++ b/testing/ledmon/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Steve McMaster <code@mcmaster.io>
+# Maintainer: Steve McMaster <code@mcmaster.io>
+pkgname=ledmon
+pkgver=0.97
+pkgrel=1
+pkgdesc="Enclosure LED Utilities"
+url="https://github.com/intel/ledmon"
+arch="all"
+# Provided tests expect to run on a host with supported hardware
+options="!check"
+license="GPL-2.0-only"
+makedepends="automake autoconf eudev-dev linux-headers pciutils-dev sg3_utils-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/intel/ledmon/archive/v$pkgver.tar.gz
+ 10-musl-build.patch
+ "
+subpackages="$pkgname-doc"
+
+prepare() {
+ default_prepare
+ autoreconf -vif
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7a8f6c6f7cbaa10ae17ee60c2dfbce4100524b9b85fdc01a139f1fd2a33779348845df29b93f6c2cbabed4fa92a2a17a80636c2658e13507743bd2242fc08914 ledmon-0.97.tar.gz
+0ad5de757b34fb9f7264091cfdeb3ebd6cb66c1dbe31ebf423573027b065376b075f824eaaf20d79295605e5f671cca0ab17a0da4afeb131dd91a38a6841f098 10-musl-build.patch
+"
diff --git a/testing/legume/APKBUILD b/testing/legume/APKBUILD
new file mode 100644
index 00000000000..5e6d4bec179
--- /dev/null
+++ b/testing/legume/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Sean E. Russell <ser@ser1.net>
+# Maintainer: Sean E. Russell <ser@ser1.net>
+pkgname=legume
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="A distributed issue tracker base on developer code comments such as TODO and FIXME."
+url="https://sr.ht/~ser/legume"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://hg.sr.ht/~ser/legume/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ go build -ldflags "-X main.Version=v$pkgver" -v -o leg ./cmd/leg
+}
+
+check() {
+ [ "$(./leg -V)" = "legume v$pkgver" ]
+
+ go test ./cmd/leg ./fs ./parse ./stream
+}
+
+package() {
+ install -Dm755 leg "$pkgdir"/usr/bin/leg
+ install -Dm644 leg.1 "$pkgdir"/usr/share/man/man1/leg.1
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/"$pkgname"/README.md
+}
+
+sha512sums="
+460cab3111243ea1b6eb5c42bdb5d32488fb60dee7a13e8bc2b6007ff3b1718062c53cce4810b897f1c32e51bd807241c81741ec10e5ae1faa530faf1346435b legume-1.4.2.tar.gz
+"
diff --git a/testing/leiningen/APKBUILD b/testing/leiningen/APKBUILD
deleted file mode 100755
index 21e101102a9..00000000000
--- a/testing/leiningen/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=leiningen
-pkgver=2.9.1
-pkgrel=0
-pkgdesc="Automate Clojure Projects"
-options="!check" #No Checks
-url="https://leiningen.org/"
-arch="noarch !mips !mips64" # java
-license="EPL-1.0"
-depends="openjdk8"
-subpackages="$pkgname-doc"
-source="leiningen-$pkgver.tar.gz::https://github.com/technomancy/leiningen/archive/$pkgver.tar.gz
- https://github.com/technomancy/leiningen/releases/download/2.9.1/leiningen-$pkgver-standalone.zip"
-
-package() {
- install -Dm755 "$builddir/bin/lein-pkg" \
- "$pkgdir/usr/bin/lein"
-
- install -Dm644 "$builddir/doc/lein.1" \
- "$pkgdir/usr/share/man/man1/lein.1"
-
- install -Dm 644 "$srcdir/leiningen-$pkgver-standalone.zip" \
- "$pkgdir/usr/share/java/leiningen-$pkgver-standalone.jar"
-}
-
-sha512sums="40100f9ebbb611e9649fe7b7f1468a911319d12c82a8fdcf06be6a66c173550c9d15d736892a8ee17925a849c5ce996d60e9d785cec862d2b9d9ca88c48aa456 leiningen-2.9.1.tar.gz
-4364aa2a071117049f97f95e020f75bfd0875c88475591d4e04100ac1b228137360a8b24c09877cd3400b7854bf9392b4e5d07ed7f7972e10e4ef5396d0db574 leiningen-2.9.1-standalone.zip"
diff --git a/testing/lemmy-ui/APKBUILD b/testing/lemmy-ui/APKBUILD
new file mode 100644
index 00000000000..9ff575697b9
--- /dev/null
+++ b/testing/lemmy-ui/APKBUILD
@@ -0,0 +1,97 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=lemmy-ui
+pkgver=0.19.3
+# this needs to be synced with lemmy
+_translations_commit=c3e61706e2ff7977db83e964e3010f72cad5e408
+pkgrel=0
+pkgdesc="Link aggregator and forum for the Fediverse - Official webapp"
+url="https://join-lemmy.org/"
+# ppc64le: vips not available
+# riscv64: RuntimeError: memory access out of bounds
+# x86: Zone Allocation failed - process out of memory
+# armhf, armv7, s390x: follow lemmy aport
+arch="aarch64 x86_64"
+license="AGPL-3.0-only"
+depends="nodejs"
+makedepends="npm vips-dev yarn"
+checkdepends="cmd:start-stop-daemon curl"
+install="$pkgname.pre-install"
+pkgusers="lemmy-ui"
+pkggroups="lemmy-ui"
+subpackages="$pkgname-openrc"
+source="https://github.com/LemmyNet/lemmy-ui/archive/$pkgver/lemmy-ui-$pkgver.tar.gz
+ https://github.com/LemmyNet/lemmy-translations/archive/$_translations_commit/lemmy-translations-$pkgver.tar.gz
+ lemmy-ui.confd
+ lemmy-ui.initd
+ "
+
+# Workaround for bad gyp usage causing 'stat64' errors
+export CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE -U_FORTIFY_SOURCE"
+export CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -U_FORTIFY_SOURCE"
+export CXXFLAGS="$CXXFLAGS -std=c++17 -D_LARGEFILE64_SOURCE -U_FORTIFY_SOURCE"
+
+prepare() {
+ default_prepare
+
+ rmdir -v lemmy-translations
+ ln -sv "$srcdir/lemmy-translations-$_translations_commit" \
+ lemmy-translations
+
+ sed -i "s/unknown version/$pkgver/" src/shared/version.ts
+ yarn install --frozen-lockfile --production
+}
+
+build() {
+ export GIT_DIR="$builddir"
+ NODE_ENV=production yarn build:prod
+ unset GIT_DIR
+}
+
+check() {
+ start-stop-daemon -Sbmp "$startdir"/test.pid -w 5000 \
+ -e 'NODE_ENV=production' -x node dist/js/server.js
+ curl -o "$startdir"/test.out http://127.0.0.1:1234 || true
+ start-stop-daemon -Kp "$startdir"/test.pid
+ grep -q "UI: $pkgver" "$startdir"/test.out
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/webapps/$pkgname
+ cp -r dist node_modules "$pkgdir"/usr/share/webapps/$pkgname/
+
+ # cleanup unused files
+ find "$pkgdir" -type f -a \( \
+ -name "*.ts" \
+ -o -name "webpack*" \
+ -o -name "tsconfig*" \
+ -o -name "babel.config*" \
+ -o -name "README*" \
+ -o -name "readme*" \
+ -o -name "CHANGELOG*" \
+ -o -name "*.map" \
+ -o -name "LICENSE*" \
+ -o -name "License" \
+ -o -name "license" \
+ -o -name "*.md" \
+ \) \
+ -delete
+ find "$pkgdir" -type d -a \( \
+ -name "example" \
+ -o -name "examples" \
+ -o -name "test" \
+ -o -name "tests" \
+ -o -name ".github" \
+ \) \
+ -exec rm -rf '{}' \+
+
+ install -Dm644 "$srcdir"/lemmy-ui.confd "$pkgdir"/etc/conf.d/lemmy-ui
+ install -Dm755 "$srcdir"/lemmy-ui.initd "$pkgdir"/etc/init.d/lemmy-ui
+}
+
+sha512sums="
+cf4dfc6a13b7989751a2a0b1ec807cc40c4fbdc9aed296b6f8f4e24117d7d68ec5be9c7bcd4d572b50f68aefa0be845bea07e5a1de526f5e7a64a31d89e97803 lemmy-ui-0.19.3.tar.gz
+8f3ba3a343e328ee2a5ffeed4f1e6feb7ea580620f004c8f2e9fc8cf00e647e6a7ed5a9c5e68d9bce854819357ac56a9d35b667acb9925701063f0451014f075 lemmy-translations-0.19.3.tar.gz
+cac55baba8fa7cd49e41877e80296b1505aee35444d025c6c612a5c7091f36c92adeab17117d8f58d228f7bbe9f016a9e752a8b9c0f9a940bd8980132577e1a9 lemmy-ui.confd
+59559ffab27cd9562b0f920a72df0a66676f96612960c573132ef1d8914d16ff36300e2514c0fd8e3d16ffd13af58fc129afc88b14f64a16468457e224b97fbd lemmy-ui.initd
+"
diff --git a/testing/lemmy-ui/lemmy-ui.confd b/testing/lemmy-ui/lemmy-ui.confd
new file mode 100644
index 00000000000..a3ec74ece3a
--- /dev/null
+++ b/testing/lemmy-ui/lemmy-ui.confd
@@ -0,0 +1,13 @@
+# Configuration for /etc/init.d/lemmy-ui
+
+# The IP:port lemmy-ui listens on
+LEMMY_UI_HOST="0.0.0.0:1234"
+
+# The internal IP:port for accessing the lemmy backend
+LEMMY_UI_LEMMY_INTERNAL_HOST="127.0.0.1:8536"
+
+# The external domain lemmy is hosted at
+LEMMY_UI_LEMMY_EXTERNAL_HOST="lemmy.example.com"
+
+# Whether to use https
+LEMMY_UI_HTTPS="true"
diff --git a/testing/lemmy-ui/lemmy-ui.initd b/testing/lemmy-ui/lemmy-ui.initd
new file mode 100644
index 00000000000..745d7a11548
--- /dev/null
+++ b/testing/lemmy-ui/lemmy-ui.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+
+name=lemmy-ui
+description="Lemmy UI"
+
+export NODE_ENV=production
+export LEMMY_UI_HOST
+export LEMMY_UI_LEMMY_INTERNAL_HOST
+export LEMMY_UI_LEMMY_EXTERNAL_HOST
+export LEMMY_UI_HTTPS
+
+command="/usr/bin/node"
+command_args="dist/js/server.js"
+command_background=true
+command_user="lemmy-ui:lemmy-ui"
+pidfile="/run/${RC_SVCNAME}.pid"
+directory="/usr/share/webapps/lemmy-ui"
+error_log="/var/log/lemmy-ui.log"
+
+depend() {
+ need localmount net
+ after firewall lemmy
+}
+
+start_pre() {
+ checkpath -f -m 0640 -o "$command_user" "$error_log"
+}
diff --git a/testing/lemmy-ui/lemmy-ui.pre-install b/testing/lemmy-ui/lemmy-ui.pre-install
new file mode 100644
index 00000000000..f9482c0af2b
--- /dev/null
+++ b/testing/lemmy-ui/lemmy-ui.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S lemmy-ui 2>/dev/null
+adduser -S -D -H \
+ -h /var/empty \
+ -s /sbin/nologin \
+ -G lemmy-ui \
+ -g "Lemmy UI" \
+ lemmy-ui 2>/dev/null
+
+exit 0
diff --git a/testing/lemmy/APKBUILD b/testing/lemmy/APKBUILD
new file mode 100644
index 00000000000..5307f618032
--- /dev/null
+++ b/testing/lemmy/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=lemmy
+pkgver=0.19.3
+# this needs to be synced with lemmy-ui
+_translations_commit=c3e61706e2ff7977db83e964e3010f72cad5e408
+pkgrel=1
+pkgdesc="Link aggregator and forum for the Fediverse - Backend server"
+url="https://join-lemmy.org/"
+# armhf, armv7: fatal runtime error while compiling lemmy_server crate
+# ppc64le, riscv64, s390x: ring crate
+# x86: follow lemmy-ui aport
+arch="aarch64 x86_64"
+license="AGPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+ libpq-dev
+ openssl-dev
+ "
+install="$pkgname.pre-install $pkgname-localdb.post-install"
+pkgusers="lemmy"
+pkggroups="lemmy"
+subpackages="$pkgname-openrc $pkgname-localdb::noarch"
+source="https://github.com/LemmyNet/lemmy/archive/$pkgver/lemmy-$pkgver.tar.gz
+ https://github.com/LemmyNet/lemmy-translations/archive/$_translations_commit/lemmy-translations-$pkgver.tar.gz
+ fix-db-init-script.patch
+ lemmy.initd
+ "
+options="!check" # fails to load settings file as it is not found
+
+# html2md required by lemmy_apub fails to build with panic=abort
+export CARGO_PROFILE_RELEASE_PANIC="unwind"
+
+prepare() {
+ default_prepare
+
+ rmdir -v crates/utils/translations
+ ln -sv "$srcdir/lemmy-translations-$_translations_commit" \
+ crates/utils/translations
+
+ sed -i "s/unknown version/$pkgver/" crates/utils/src/version.rs
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/lemmy_server -t "$pkgdir"/usr/bin
+ install -Dm640 -g lemmy config/defaults.hjson \
+ "$pkgdir"/etc/lemmy/lemmy.hjson
+
+ install -Dm755 scripts/db-init.sh -t "$pkgdir"/usr/lib/$pkgname
+ install -Dm755 "$srcdir"/lemmy.initd "$pkgdir"/etc/init.d/lemmy
+}
+
+localdb() {
+ pkgdesc="Use $pkgname with a local PostgreSQL server"
+ install_if="$pkgname=$pkgver-r$pkgrel postgresql"
+ depends="$pkgname=$pkgver-r$pkgrel postgresql-contrib"
+
+ amove usr/lib/$pkgname/db-init.sh
+}
+
+sha512sums="
+e050fafafad45a3354460bb706387e609187e3894de9ac6c93f26f171f48dbefadc3e0d816f29efdde092dc7454a47e5c3b1786443e89763e31e7ce044a56f09 lemmy-0.19.3.tar.gz
+8f3ba3a343e328ee2a5ffeed4f1e6feb7ea580620f004c8f2e9fc8cf00e647e6a7ed5a9c5e68d9bce854819357ac56a9d35b667acb9925701063f0451014f075 lemmy-translations-0.19.3.tar.gz
+fcfb3881abf8ee671bb55e47c71fef8ef1328a04b3278fd9602478260b0de0bdb55b27c1f6127e9729a65e3fc05cbcd245bd1f98b93ea307755ff748a68d770d fix-db-init-script.patch
+7b4cf4242950f48914fbbb49de932a10f793ae3bb14ac3d2b2430edef1cd76cfc6d0228c3041fb09313b00547068fddbd36ed9e74edc330924a6f55732698bf2 lemmy.initd
+"
diff --git a/testing/lemmy/fix-db-init-script.patch b/testing/lemmy/fix-db-init-script.patch
new file mode 100644
index 00000000000..d039f232f0c
--- /dev/null
+++ b/testing/lemmy/fix-db-init-script.patch
@@ -0,0 +1,26 @@
+--- a/scripts/db-init.sh
++++ b/scripts/db-init.sh
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env bash
++#!/bin/sh
+ set -e
+
+ # Default configurations
+@@ -43,7 +43,7 @@
+ do
+ read -p "Database name: " dbname
+ read -p "Username: " username
+- read -p "Password: password"
++ read -p "Password: " password
+ read -p "Port: " port
+ #echo
+
+@@ -68,7 +68,7 @@
+
+ ask_for_db_config
+
+-psql -c "CREATE USER $username WITH PASSWORD '$password' SUPERUSER;" -U postgres
++psql -c "CREATE USER $username WITH PASSWORD '$password';" -U postgres
+ psql -c "CREATE DATABASE $dbname WITH OWNER $username;" -U postgres
+ export LEMMY_DATABASE_URL=postgres://$username:$password@localhost:$port/$dbname
+
diff --git a/testing/lemmy/lemmy-localdb.post-install b/testing/lemmy/lemmy-localdb.post-install
new file mode 100644
index 00000000000..57821bc1804
--- /dev/null
+++ b/testing/lemmy/lemmy-localdb.post-install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* Create a PostgreSQL user and database by running /usr/lib/lemmy/db-init.sh.
+* Edit the config at /etc/lemmy/lemmy.hjson, a lot of optional lines can be deleted.
+* Run the lemmy-ui service, and configure pict-rs if you have enabled it in the config.
+*
+EOF
diff --git a/testing/lemmy/lemmy.initd b/testing/lemmy/lemmy.initd
new file mode 100644
index 00000000000..2c0878c2542
--- /dev/null
+++ b/testing/lemmy/lemmy.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+name=lemmy
+description="Lemmy Backend"
+
+: ${cfgfile:="/etc/lemmy/lemmy.hjson"}
+export LEMMY_CONFIG_LOCATION="${cfgfile}"
+
+command="/usr/bin/lemmy_server"
+command_background=true
+command_user="lemmy:lemmy"
+pidfile="/run/${RC_SVCNAME}.pid"
+output_log="/var/log/lemmy.log"
+error_log="/var/log/lemmy.err"
+
+required_files="$cfgfile"
+
+depend() {
+ need localmount net
+ after firewall postgresql
+}
+
+start_pre() {
+ checkpath -f -m 0640 -o "root:lemmy" "$cfgfile"
+ checkpath -f -m 0640 -o "$command_user" "$output_log" "$error_log"
+}
diff --git a/testing/lemmy/lemmy.pre-install b/testing/lemmy/lemmy.pre-install
new file mode 100644
index 00000000000..60c82625b6e
--- /dev/null
+++ b/testing/lemmy/lemmy.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S lemmy 2>/dev/null
+adduser -S -D -H \
+ -h /var/empty \
+ -s /sbin/nologin \
+ -G lemmy \
+ -g "Lemmy Backend" \
+ lemmy 2>/dev/null
+
+exit 0
diff --git a/testing/lemonbar/APKBUILD b/testing/lemonbar/APKBUILD
index fb66f48a768..c6926dcbc90 100644
--- a/testing/lemonbar/APKBUILD
+++ b/testing/lemonbar/APKBUILD
@@ -1,27 +1,24 @@
# Contributor: Camille Scholtz <onodera@openmailbox.org>
# Maintainer: Camille Scholtz <onodera@openmailbox.org>
pkgname=lemonbar
-pkgver=1.3
-pkgrel=0
-pkgdesc="A featherlight, lemon-scented, bar based on xcb"
+pkgver=1.4
+pkgrel=1
+pkgdesc="featherlight, lemon-scented, bar based on xcb"
url="https://github.com/Lemonboy/bar"
arch="all"
license="MIT"
-depends=""
depends_dev="libxcb-dev"
makedepends="$depends_dev perl"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::http://github.com/LemonBoy/bar/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/LemonBoy/bar/archive/v$pkgver.tar.gz"
builddir="$srcdir"/bar-"$pkgver"
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="69f379f6ec04c3f55fd2aa03aa3c3c181fc884b683bd7232905775c34e5597f0c878874aafc6c940238f2fa980121302cfd13bf6dc3f9979007885b3c0287cf7 lemonbar-1.3.tar.gz"
+sha512sums="2e516298854ad4ebf3dd4b67e933f0dca46a23cfb4146ef1737f26d937c582d0f9ce93b62ce094a7e456d55bd6273168f664c284c48c9637c8ed08f032799b14 lemonbar-1.4.tar.gz"
diff --git a/testing/leptosfmt/APKBUILD b/testing/leptosfmt/APKBUILD
new file mode 100644
index 00000000000..fc43a3c32f4
--- /dev/null
+++ b/testing/leptosfmt/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=leptosfmt
+pkgver=0.1.18
+pkgrel=0
+pkgdesc="A formatter for the leptos view! macro"
+url="https://github.com/bram209/leptosfmt"
+arch="all"
+license="MIT OR Apache-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/bram209/leptosfmt/archive/refs/tags/$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 target/release/leptosfmt "$pkgdir"/usr/bin/leptosfmt
+
+ for l in -APACHE -MIT
+ do
+ install -Dm 644 LICENSE"$l" "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE"$l"
+ done
+}
+
+sha512sums="
+d060878e6c99899143ab8760fa15f618fc6cc99b06250a9c5feefceec64d8fba616c5f82e8533da52880a2f11e2e914c4eebd86b58948cb6ae4e0a4d17f6853a leptosfmt-0.1.18.tar.gz
+"
diff --git a/testing/level-zero/APKBUILD b/testing/level-zero/APKBUILD
new file mode 100644
index 00000000000..b156c930942
--- /dev/null
+++ b/testing/level-zero/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Leon Marz <main@lmarz.org>
+# Maintainer: Leon Marz <main@lmarz.org>
+pkgname=level-zero
+pkgver=1.16.14
+pkgrel=0
+pkgdesc="oneAPI Level Zero Loader"
+url="https://spec.oneapi.com/versions/latest/elements/l0/source/index.html"
+arch="all"
+license="MIT"
+makedepends="cmake samurai"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/oneapi-src/level-zero/archive/v$pkgver.tar.gz"
+options="!check" # no testsuite
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+ amove 'usr/lib/libze_tracing_layer.so*'
+ amove 'usr/lib/libze_validation_layer.so*'
+}
+
+sha512sums="
+8c80d75909398245c0173a4198748d1a1e469e21a09138f60b314061ff556e7f529807e02c6ec1f3a47f2871e17c24b7be6d363810a25fee11e73b5c97c7c62a level-zero-1.16.14.tar.gz
+"
diff --git a/testing/levmar-dev/APKBUILD b/testing/levmar-dev/APKBUILD
new file mode 100644
index 00000000000..7cf008d59c1
--- /dev/null
+++ b/testing/levmar-dev/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=levmar-dev
+pkgver=2.6
+pkgrel=0
+pkgdesc="Native ANSI C implementations of the Levenberg-Marquardt optimization algorithm"
+url="https://users.ics.forth.gr/~lourakis/levmar/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="cmake"
+depends="lapack-dev blas-dev"
+source="levmar-$pkgver.tar.gz::https://users.ics.forth.gr/~lourakis/levmar/levmar-$pkgver.tgz"
+builddir="$srcdir/levmar-$pkgver"
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DNEED_F2C:BOOL=false
+ cmake --build build
+}
+
+check() {
+ ./build/lmdemo
+}
+
+package() {
+ install -Dm644 build/liblevmar.a "$pkgdir"/usr/lib/liblevmar.a
+ install -Dm644 levmar.h "$pkgdir"/usr/include/levmar.h
+}
+
+sha512sums="
+5b4c64b63be9b29d6ad2df435af86cd2c2e3216313378561a670ac6a392a51bbf1951e96c6b1afb77c570f23dd8e194017808e46929fec2d8d9a7fe6cf37022b levmar-2.6.tar.gz
+"
diff --git a/testing/lf/APKBUILD b/testing/lf/APKBUILD
deleted file mode 100644
index 7508b54059a..00000000000
--- a/testing/lf/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Miles Alan <m@milesalan.com>
-pkgname=lf
-pkgver=14
-pkgrel=0
-pkgdesc="Terminal filemanager written in Go with vim-style keybindings"
-url="https://github.com/gokcehan/lf"
-arch="all"
-license="MIT"
-makedepends="go"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/gokcehan/lf/archive/r$pkgver.tar.gz"
-options="chmod-clean net"
-
-export GOPATH="$srcdir"
-export GOCACHE="$srcdir"
-export GOTMPDIR="$srcdir"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv $srcdir/$pkgname-r$pkgver "$builddir"/
- default_prepare
-}
-
-build() {
- go build -v -o bin/$pkgname
-}
-
-check() {
- go test ./...
-}
-
-package() {
- install -Dm755 "$builddir"/bin/$pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm644 lf.1 "$pkgdir"/usr/share/man/man1/lf.1
-}
-
-sha512sums="cd2e268d551a0a83a32563424675455288e09b28d60940143eff4d24cf5b98ad0d7bd9ab100ea5a456e37460c318001ad5b444d252a986e9ddcfff274adf7720 lf-14.tar.gz"
diff --git a/testing/lfm/APKBUILD b/testing/lfm/APKBUILD
new file mode 100644
index 00000000000..a92b4f1c9a4
--- /dev/null
+++ b/testing/lfm/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer:
+pkgname=lfm
+pkgver=3.1
+pkgrel=4
+pkgdesc="Last File Manager"
+url="https://inigo.katxi.org/devel/lfm/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://inigo.katxi.org/devel/lfm/lfm-$pkgver.tar.gz
+ interp.patch
+ "
+options="!check" # no tests
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+9e6142c0d871fe19b4b82e5333e03de562ca87a7498bd7fb496cca27e0b42c56a33913f2a7eb46439447ab7adb4a87da44bfcc1548101e15703aaa21ec105af8 lfm-3.1.tar.gz
+4db0a0fb905a814e9b46a336a3bec3ca651e0eaa8a382d61702f7366dbef6bd4b111d2fd0fa6d0adac827ff3bd8b5dfc9aa8ab1f6a9bc002920f7b1cf888f3c8 interp.patch
+"
diff --git a/testing/lfm/interp.patch b/testing/lfm/interp.patch
new file mode 100644
index 00000000000..bb28f505181
--- /dev/null
+++ b/testing/lfm/interp.patch
@@ -0,0 +1,10 @@
+diff --git a/lfm/lfm.py b/lfm/lfm.py
+index 3e1aac0..3aaf8b0 100755
+--- a/lfm/lfm.py
++++ b/lfm/lfm.py
+@@ -1,4 +1,4 @@
+-#!/bin/env python3
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ # Copyright (C) 2001-17 Iñigo Serna
diff --git a/testing/lgogdownloader/APKBUILD b/testing/lgogdownloader/APKBUILD
new file mode 100644
index 00000000000..847249d4c97
--- /dev/null
+++ b/testing/lgogdownloader/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: shum <shum@posteo.net>
+# Maintainer: shum <shum@posteo.net>
+pkgname=lgogdownloader
+pkgver=3.12
+pkgrel=2
+pkgdesc="Open source downloader for GOG.com games"
+url="https://github.com/Sude-/lgogdownloader"
+arch="all"
+license="WTFPL"
+options="!check" # no testsuite
+makedepends="help2man cmake boost-dev tinyxml2-dev jsoncpp-dev rhash-dev curl-dev htmlcxx-dev samurai"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Sude-/lgogdownloader/archive/refs/tags/v$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 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DUSE_QT_GUI=OFF \
+ $CMAKE_CROSSOPTS
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d86d1542f48488f0fd0c880557bd95c0d5c561342690b4c635aebceab73aab9c605bbaaa72715d26b6578657cd2015138a0d3b804059931f3d9f3cac8e05e568 lgogdownloader-3.12.tar.gz
+"
diff --git a/testing/lib3mf/APKBUILD b/testing/lib3mf/APKBUILD
deleted file mode 100644
index 9cf73a1bb65..00000000000
--- a/testing/lib3mf/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=lib3mf
-pkgver=1.8.1
-_googletestver=1.8.1
-pkgrel=0
-pkgdesc="A C++ implementation of the 3D Manufacturing Format file standard"
-url="https://github.com/3MFConsortium/lib3mf"
-arch="all"
-license="BSD-2-Clause"
-subpackages="$pkgname-dev"
-makedepends="zlib-dev libzip-dev cmake util-linux-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/3MFConsortium/lib3mf/archive/v$pkgver.tar.gz"
-options="!check" # Unit tests requires source code of googletest, which is git submodule but not included in the release
-
-prepare() {
- default_prepare
- mkdir -p build
-}
-
-build() {
- cd build
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_INCLUDEDIR=include/lib3mf \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DUSE_INCLUDED_ZLIB=OFF \
- -DUSE_INCLUDED_LIBZIP=OFF \
- -DLIB3MF_TESTS=FALSE \
- ..
- make
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="f7fd75bcb6472de1595a018e5add516d0d78ab0aee92462b686b77f8d2bef05270e7b737cb7e1d31fc5850815056e753874c2f9ec456a455e8461c4010fe914a lib3mf-1.8.1.tar.gz"
diff --git a/testing/libabigail/APKBUILD b/testing/libabigail/APKBUILD
new file mode 100644
index 00000000000..2762fa9c364
--- /dev/null
+++ b/testing/libabigail/APKBUILD
@@ -0,0 +1,96 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=libabigail
+pkgver=2.3
+pkgrel=0
+pkgdesc="The ABI Generic Analysis and Instrumentation Library"
+url="https://sourceware.org/libabigail/"
+arch="all"
+license="Apache-2.0 WITH LLVM-exception"
+makedepends="
+ autoconf
+ automake
+ elfutils-dev
+ libtool
+ libxml2-dev
+ musl-fts-dev
+ py3-sphinx
+ "
+checkdepends="
+ bash
+ python3
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-tools
+ $pkgname-doc
+ $pkgname-bash-completion
+ "
+source="https://mirrors.kernel.org/sourceware/libabigail/libabigail-$pkgver.tar.xz
+ musl-fts.patch
+ apk.patch
+ "
+
+prepare() {
+ default_prepare
+
+ autoreconf -fi
+}
+
+build() {
+ # utilities use a bit more stack size than normal
+ export LDFLAGS="$LDFLAGS -Wl,-z,stack-size=512000"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-rpm=no \
+ --enable-rpm415=no \
+ --enable-debug-self-comparison=no \
+ --enable-deb=no \
+ --enable-tar=yes \
+ --enable-apidoc=no \
+ --enable-manual=yes \
+ --enable-bash-completion=yes \
+ --enable-fedabipkgdiff=no \
+ --enable-python3=yes
+ make
+ make -C doc/manuals man
+}
+
+check() {
+ make check check-self-compare || {
+ cat tests/test-suite.log
+ return 1
+ }
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ make -C doc/manuals DESTDIR="$pkgdir" install-man-and-info-doc
+
+ cd bash-completion
+ install -D -m644 -t "$pkgdir"/usr/share/bash-completion/completions/ \
+ abicompat \
+ abidiff \
+ abidw \
+ abilint \
+ abipkgdiff
+
+}
+
+tools() {
+ pkgdesc="$pkgdesc (CLI tools)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin
+}
+
+sha512sums="
+fdf0df51e2c262c723c11bef58cd0b89b27e67be196edeb33444fc06e7e61d3c2c227f59cb961aea6fc0c9b7f6f04e08b787a1cbbeb3d5507b968b8ae7630527 libabigail-2.3.tar.xz
+d789a76dfedf9e74c13906aa72da4f9f4113484a98326f662ed9a2badbd29d7fb5e402272bfe24dbdfaf44992ba6a9be3d8ecbdda275910e00cf4f0abaac96e2 musl-fts.patch
+78bdbb2fd285b5dd2ceaac8a3631e433d4f154b6882c09be7117ef4ead35f872a19b33ca21e1c8d738baa78e3784aebd2d25c731b50a8c3c3c47d616dc33b5fd apk.patch
+"
diff --git a/testing/libabigail/apk.patch b/testing/libabigail/apk.patch
new file mode 100644
index 00000000000..cf2a92368ed
--- /dev/null
+++ b/testing/libabigail/apk.patch
@@ -0,0 +1,16 @@
+Detect .apk as tarballs.
+
+This is based on https://github.com/void-linux/void-packages/blob/c4880df0bb88e6e9ba08bd22f2ada592a6e60fc7/srcpkgs/libabigail/patches/xbps.patch.
+
+--- a/src/abg-tools-utils.cc
++++ b/src/abg-tools-utils.cc
+@@ -690,7 +690,8 @@
+ || string_ends_with(file_path, ".tlz")
+ || string_ends_with(file_path, ".tar.Z")
+ || string_ends_with(file_path, ".taz")
+- || string_ends_with(file_path, ".tz"))
++ || string_ends_with(file_path, ".tz")
++ || string_ends_with(file_path, ".apk"))
+ return FILE_TYPE_TAR;
+
+ ifstream in(file_path.c_str(), ifstream::binary);
diff --git a/testing/libabigail/musl-fts.patch b/testing/libabigail/musl-fts.patch
new file mode 100644
index 00000000000..917ee64c388
--- /dev/null
+++ b/testing/libabigail/musl-fts.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -261,6 +261,6 @@
+
+-dnl On musl, we need to find fts-standalone
++dnl On musl, we need to find musl-fts
+ AS_CASE(
+ [${host_os}], [*-musl*], [
+- PKG_CHECK_MODULES([FTS], [fts-standalone])
++ PKG_CHECK_MODULES([FTS], [musl-fts])
+ ])
diff --git a/testing/libantic/APKBUILD b/testing/libantic/APKBUILD
new file mode 100644
index 00000000000..79ccebf86ec
--- /dev/null
+++ b/testing/libantic/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=libantic
+pkgver=0.2.5
+pkgrel=0
+pkgdesc="Algebraic Number Theory In C"
+url="https://github.com/wbhart/antic"
+arch="all !s390x" # flint-dev
+license="LGPL-2.1-or-later"
+makedepends="
+ cmake
+ flint-dev
+ gmp-dev
+ mpfr-dev
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wbhart/antic/archive/v$pkgver/antic-$pkgver.tar.gz"
+builddir="$srcdir/antic-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)"
+
+ cmake --build build
+}
+
+check() {
+ ctest -j4 --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ffcb7f696abf3ae1b6960368bcbb508711cec00f42e8093782de337a8328f66f00f7f0cf2f6069a6b835a8a70282b50642b36a1acfa387b98ded36a85717eec6 libantic-0.2.5.tar.gz
+"
diff --git a/testing/libantlr3c/APKBUILD b/testing/libantlr3c/APKBUILD
index 7dbe32b8521..44d317ac5ed 100644
--- a/testing/libantlr3c/APKBUILD
+++ b/testing/libantlr3c/APKBUILD
@@ -1,8 +1,8 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=libantlr3c
pkgver=3.4
-pkgrel=1
+pkgrel=3
pkgdesc="C runtime for the ANTLR parsing library"
url="https://www.antlr.org/"
arch="all"
@@ -29,6 +29,10 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
diff --git a/testing/libarb/APKBUILD b/testing/libarb/APKBUILD
new file mode 100644
index 00000000000..2f5e1662687
--- /dev/null
+++ b/testing/libarb/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libarb
+pkgver=2.23.0
+pkgrel=2
+pkgdesc="Library for rigorous real and complex arithmetic with arbitrary precision"
+url="https://arblib.org"
+# s390x: blocked by flint
+arch="all !s390x"
+license="LGPL-2.1-or-later"
+makedepends="gmp-dev flint-dev mpfr-dev"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://github.com/fredrik-johansson/arb/archive/$pkgver/arb-$pkgver.tar.gz"
+builddir="$srcdir/arb-$pkgver"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ # Not an autoconf configure!
+ ./configure \
+ --prefix=/usr \
+ CC="$CC" \
+ CXX="$CXX" \
+ CFLAGS="$CFLAGS"
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cd15c1adc1c8a6b7cd7b98f5d32afec3b04f6849998cd8586924a6ebb5fe1a1a6efc250fa7fc1d346b2331daa02a4d07133ee58edeae3cc6684d306c8b78c4ae arb-2.23.0.tar.gz
+"
diff --git a/testing/libaudec/APKBUILD b/testing/libaudec/APKBUILD
new file mode 100644
index 00000000000..533fee679ae
--- /dev/null
+++ b/testing/libaudec/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer:
+pkgname=libaudec
+pkgver=0.3.4
+pkgrel=3
+pkgdesc="lib audio decoder"
+url="https://git.sr.ht/~alextee/libaudec"
+arch="all"
+license="GPL-3.0-or-later"
+depends_dev="$pkgname"
+makedepends="
+ libsamplerate-dev
+ libsndfile-dev
+ meson
+ "
+subpackages="$pkgname-static $pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~alextee/libaudec/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ abuild-meson \
+ -Dtests="$(want_check && echo true || echo false)" \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --print-errorlogs --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin
+}
+
+sha512sums="
+9c50b866e2f0d1897d7a55a83263e74c3a1cf77772a52bd446632c9a92f2ccbbb3e2e1ecfde8b05fc41e59e4d60a57935a656ec8f40b6680fc4bbe201ea045ef libaudec-0.3.4.tar.gz
+"
diff --git a/testing/libax25/APKBUILD b/testing/libax25/APKBUILD
deleted file mode 100644
index 40e160e2ae5..00000000000
--- a/testing/libax25/APKBUILD
+++ /dev/null
@@ -1,44 +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=0
-pkgdesc="set of functions making it easier to write hamradio programs"
-url="http://www.linux-ax25.org/wiki/Libax25"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="zlib-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://www.linux-ax25.org/pub/libax25/$pkgname-$pkgver-$_patchver.tar.gz
- musl.patch"
-builddir="$srcdir"/$pkgname-$pkgver-$_patchver
-
-prepare() {
- default_prepare
-}
-
-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/testing/libax25/musl.patch b/testing/libax25/musl.patch
deleted file mode 100644
index 1624485ca59..00000000000
--- a/testing/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/testing/libb2/APKBUILD b/testing/libb2/APKBUILD
deleted file mode 100644
index 301906a8df8..00000000000
--- a/testing/libb2/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=libb2
-pkgver=0.98.1
-pkgrel=0
-pkgdesc="C library providing BLAKE2b, BLAKE2s, BLAKE2bp, BLAKE2sp"
-url="https://blake2.net/"
-arch="all"
-license="CC0-1.0"
-subpackages="$pkgname-dev"
-source="https://github.com/BLAKE2/libb2/releases/download/v$pkgver/libb2-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="e760972173bb9ff3562843882abbe9042af09da63f37a5706921381be2d64cc4d333aec65e1e676d5a45ace913417536a1dc188c90b394c2f7b9cae654dbb108 libb2-0.98.1.tar.gz"
diff --git a/testing/libbamf/APKBUILD b/testing/libbamf/APKBUILD
new file mode 100644
index 00000000000..65108da8fbd
--- /dev/null
+++ b/testing/libbamf/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: jpdw34 <jpdw34@gmail.com>
+# Maintainer: jpdw34 <jpdw34@gmail.com>
+pkgname=libbamf
+_pkgname=bamf
+pkgver=0.5.6
+_pkgver=0.5
+pkgrel=1
+pkgdesc="Window matching library"
+url="https://launchpad.net/bamf"
+arch="all"
+license="LGPL-2.1-only OR LGPL-3.0-only"
+depends_dev="libwnck3-dev libgtop-dev"
+makedepends="$depends_dev glib-dev py3-lxml"
+subpackages="$pkgname-doc $pkgname-dev"
+source="https://launchpad.net/$_pkgname/$_pkgver/$pkgver/+download/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir/usr/lib/systemd" "$pkgdir/usr/share/upstart"
+}
+
+sha512sums="
+cfb2dcc511bc4c30b6ea167d2502784e5e1f3baada24d916842bd0cf8e920b78e3c120157136f818899a899979a648c666d85a54a8573c56edeb8743b7da7601 bamf-0.5.6.tar.gz
+"
diff --git a/testing/libbaseencode/APKBUILD b/testing/libbaseencode/APKBUILD
deleted file mode 100644
index 1805426f48d..00000000000
--- a/testing/libbaseencode/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=libbaseencode
-pkgver=1.0.9
-pkgrel=1
-pkgdesc="Library for encoding decoding data use base32 or base64"
-options="!check" # No woerking testsuite
-url="https://github.com/paolostivanin/libbaseencode"
-arch="all"
-license="Apache-2.0"
-makedepends="cmake"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/paolostivanin/libbaseencode/archive/v$pkgver.tar.gz"
-
-build() {
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_BUILD_TYPE=None
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="26f3c8db6d72aad77fab9d6cdfe94e39891d7afff44d30af79926af72f1af97b8108a8226f376bd0bd3c8c02167a512604c7a52d16a8bce4167a7bdd4a2e603f libbaseencode-1.0.9.tar.gz"
diff --git a/testing/libblastrampoline/APKBUILD b/testing/libblastrampoline/APKBUILD
new file mode 100644
index 00000000000..7322e5b6d32
--- /dev/null
+++ b/testing/libblastrampoline/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=libblastrampoline
+pkgver=5.2.0
+pkgrel=0
+pkgdesc="Using PLT trampolines to provide a BLAS and LAPACK demuxing library"
+url="https://github.com/JuliaLinearAlgebra/libblastrampoline"
+# x86: TEXTREL
+# others: not supported by upstream
+arch="aarch64 armv7 x86_64"
+license="MIT"
+makedepends="linux-headers"
+subpackages="$pkgname-dev"
+source="https://github.com/JuliaLinearAlgebra/libblastrampoline/archive/v$pkgver/libblastrampoline-$pkgver.tar.gz"
+options="!check" # tests require nightly julia
+
+_arch=$CARCH
+case "$CARCH" in
+ armv7) _arch='arm';;
+esac
+
+build() {
+ make -C src ARCH="$_arch" CFLAGS="${CFLAGS/-Os/}"
+}
+
+package() {
+ make -C src install ARCH="$_arch" prefix="$pkgdir/usr"
+
+ cd "$pkgdir"
+ find usr/include/libblastrampoline/*LP64 \
+ -type d -mindepth 1 ! -name "$_arch*-linux-musl*" ! -name common \
+ -exec rm -vrf {} +
+}
+
+sha512sums="
+543d6d858daea9daadcb6f795e833f59cb27590015f5d4c84f24594ddc8fb51cdd473c93fa2acc9bf331b39aa252a6901a23b2e40655797a0b3106276095c429 libblastrampoline-5.2.0.tar.gz
+"
diff --git a/testing/libbloom/APKBUILD b/testing/libbloom/APKBUILD
index de9cf357299..cba699b2881 100644
--- a/testing/libbloom/APKBUILD
+++ b/testing/libbloom/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer:
pkgname=libbloom
-pkgver=1.6
-pkgrel=1
+pkgver=2.0
+pkgrel=0
pkgdesc="Simple and small bloom filter in plain C"
url="https://github.com/jvirkki/libbloom"
-arch="all"
+arch="all !armhf !armv7 !x86" # 32-bit not supported
license="BSD-2-Clause"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/jvirkki/libbloom/archive/v$pkgver.tar.gz"
@@ -25,4 +25,6 @@ package() {
ln -s libbloom.so.$pkgver "$pkgdir"/usr/lib/libbloom.so.${pkgver%.*}
}
-sha512sums="3dd4343d68def05800dd6ffc5a05b05d0702a8c0c9f0a397f105d4389c88a7bffa419734aeb4fa4e1a2c418b12a8192fa27ddcbaeee72906450d64cbfd64db15 libbloom-1.6.tar.gz"
+sha512sums="
+68369966d595c550e10ebc5f81d167aafa2878cfb403627ce43f5f9a7805fa0b360f369eacc66d3c96e35da922966a640ec8595399db76f8bbbba24b0d9e3144 libbloom-2.0.tar.gz
+"
diff --git a/testing/libbraiding/APKBUILD b/testing/libbraiding/APKBUILD
new file mode 100644
index 00000000000..ba300db859c
--- /dev/null
+++ b/testing/libbraiding/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libbraiding
+pkgver=1.2
+pkgrel=2
+pkgdesc="Library for computations on braid groups"
+url="https://github.com/miguelmarco/libbraiding"
+arch="all"
+license="GPL-2.0-or-later"
+options="!check" # no test suite
+subpackages="$pkgname-dev"
+source="https://github.com/miguelmarco/libbraiding/releases/download/$pkgver/libbraiding-$pkgver.tar.gz"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f3dcfa77d5313ecfa91c0b9a61988eb2048dd27ed77f46a5c34fc57adb9eee53b250946a7158918b3198559bd016c723dba98465036d01c482b5c6000ab59d8a libbraiding-1.2.tar.gz
+"
diff --git a/testing/libcec-rpi/APKBUILD b/testing/libcec-rpi/APKBUILD
new file mode 100644
index 00000000000..40dc9477fc6
--- /dev/null
+++ b/testing/libcec-rpi/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Róbert Nagy <vrnagy@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libcec-rpi
+pkgver=6.0.2
+pkgrel=3
+pkgdesc="libcec for the Pulse-Eight USB-CEC adapter for the Raspberry Pi"
+url="https://github.com/Pulse-Eight/libcec"
+arch="armhf armv7 aarch64" # Only Raspberry Pi platforms
+license="GPL-2.0-or-later"
+depends_dev="
+ eudev-dev
+ libxrandr-dev
+ python3-dev
+ swig
+ "
+makedepends="$depends_dev
+ cmake
+ p8-platform-dev
+ raspberrypi-libs
+ raspberrypi-dev
+ samurai
+ "
+subpackages="$pkgname-dev py3-$pkgname:py3"
+source="https://github.com/Pulse-Eight/libcec/archive/libcec-$pkgver.tar.gz
+ fix-null-return.patch
+ "
+provides="libcec=$pkgver-r$pkgrel"
+
+builddir="$srcdir"/libcec-libcec-$pkgver
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_SHARED_LIBS=1 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DCMAKE_INSTALL_LIBDIR_NOARCH=/usr/lib \
+ -DHAVE_EXYNOS_API=0 \
+ -DHAVE_RPI_API=1 \
+ -DRPI_INCLUDE_DIR=/opt/vc/include \
+ -DRPI_LIB_DIR=/opt/vc/lib
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+py3() {
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+}
+
+sha512sums="
+c16ac268e67b01d4e35fad644e5927e1d9fc7bcaeff698ac5f0eadd31ec63a0bef2a2b2bc37860d1571e1e0cdc55911c2de468c661c7c7ae1d492f80188035cb libcec-6.0.2.tar.gz
+0aa63e622ecf3d9009efc06db801c7a5558aa30a0543701e2e12bf052a54155240fc2d2bf339aab1af7288c3e85c7edf5087e4de6ce800398fba05897cf6d22f fix-null-return.patch
+"
diff --git a/testing/libcec-rpi/fix-null-return.patch b/testing/libcec-rpi/fix-null-return.patch
new file mode 100644
index 00000000000..5ace754d987
--- /dev/null
+++ b/testing/libcec-rpi/fix-null-return.patch
@@ -0,0 +1,20 @@
+--- a/include/cecloader.h
++++ b/include/cecloader.h
+@@ -172,7 +172,7 @@
+ if (!g_libCEC)
+ {
+ std::cout << dlerror() << std::endl;
+- return NULL;
++ return false;
+ }
+ }
+
+@@ -181,7 +181,7 @@
+ if (!LibCecBootloader)
+ {
+ std::cout << "cannot find CECStartBootloader" << std::endl;
+- return NULL;
++ return false;
+ }
+
+ bool bReturn = LibCecBootloader();
diff --git a/testing/libcli/APKBUILD b/testing/libcli/APKBUILD
index 09d933173ca..afb6e3a7c0c 100644
--- a/testing/libcli/APKBUILD
+++ b/testing/libcli/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: arch3y <arch3y@riseup.net>
# Maintainer: arch3y <arch3y@riseup.net>
pkgname=libcli
-pkgver=1.10.4
+pkgver=1.10.7
pkgrel=0
-pkgdesc="A library for including a Cisco-like command-line interface"
+pkgdesc="library for including a Cisco-like command-line interface"
url="https://github.com/dparrish/libcli"
arch="all"
options="!check"
@@ -22,4 +22,4 @@ package() {
make PREFIX=/usr DESTDIR="$pkgdir" STATIC_LIB=0 install
}
-sha512sums="cd278f8ac5ac2594fe19c89309398ee2acbb6bf6db66d22accc3e640d1dfd548e8e6b6cfd373148a595dcd556f5adcdab83bb2e5bd0d35cc188ff614d14a600b libcli-1.10.4.tar.gz"
+sha512sums="4c341260e554d7e7a4181bbc85fd2e4cd57cb3fd4304cd423af63a407950f394a318ea69588e12b1ffc845e14d836409dc087cd737b29861c62bf2e14c702a63 libcli-1.10.7.tar.gz"
diff --git a/testing/libconnman-qt/APKBUILD b/testing/libconnman-qt/APKBUILD
deleted file mode 100644
index 24f67ce4684..00000000000
--- a/testing/libconnman-qt/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libconnman-qt
-pkgver=1.2.32
-pkgrel=0
-pkgdesc="Qt bindings for ConnMan"
-url="https://git.sailfishos.org/mer-core/libconnman-qt"
-arch="all"
-license="Apache-2.0"
-depends="connman"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libconnman-qt/-/archive/$pkgver/libconnman-qt-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="309041a7510de16e1355dadddd7888f1606f92ef4b847d145c97c5ac1765d664e8ad5cb88c818d037973dc3ff348103246066296db890d0cf3f2ebc7f0ea8015 libconnman-qt-1.2.32.tar.gz"
diff --git a/testing/libcork/APKBUILD b/testing/libcork/APKBUILD
index a2a1b3570b8..196146144a2 100644
--- a/testing/libcork/APKBUILD
+++ b/testing/libcork/APKBUILD
@@ -1,34 +1,35 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libcork
pkgver=0.15.0
-pkgrel=1
+pkgrel=7
pkgdesc="Simple, easily embeddable cross-platform C library"
-url="https://github.com/redjack/libcork"
+url="https://github.com/dcreager/libcork"
arch="all"
license="BSD-3-Clause"
-makedepends="cmake check-dev"
+makedepends="cmake check-dev samurai"
checkdepends="python3"
-subpackages="$pkgname-dev"
+subpackages="$pkgname-dev $pkgname-tools"
source="$pkgname-$pkgver.tar.gz::https://github.com/dcreager/libcork/archive/$pkgver.tar.gz
fix-dumb-script.patch
+ fix-gcc-10.patch
+ no-git.patch
+ format-security.patch
"
prepare() {
default_prepare
- mkdir build
- echo "$pkgver" > RELEASE-VERSION
+ echo "$pkgver" > RELEASE-VERSION
}
build() {
- cd build
- cmake .. \
- -DCMAKE_BUILD_TYPE=None \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_STATIC=OFF \
-DCMAKE_INSTALL_LIBDIR=lib
- make
+ cmake --build build
}
check() {
@@ -37,9 +38,19 @@ check() {
}
package() {
- cd build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin
}
-sha512sums="8f41cce2101b96707068a21e5bd0a43c23f996c3620e7dd36621ed4bdd3f92851a92ea56ed92db40d7d8fe55ddfbdfcdaac4d2c8b2fc6cb3b1abe3b0e74c6a75 libcork-0.15.0.tar.gz
-c80c3edb45e4051b5b3aac4b4980296e54d78bee0410e833278034a9dcdd971f174be01f8420bb94e294bc229e69d13b200679c600ee56920348af94ccd51b45 fix-dumb-script.patch"
+sha512sums="
+8f41cce2101b96707068a21e5bd0a43c23f996c3620e7dd36621ed4bdd3f92851a92ea56ed92db40d7d8fe55ddfbdfcdaac4d2c8b2fc6cb3b1abe3b0e74c6a75 libcork-0.15.0.tar.gz
+c80c3edb45e4051b5b3aac4b4980296e54d78bee0410e833278034a9dcdd971f174be01f8420bb94e294bc229e69d13b200679c600ee56920348af94ccd51b45 fix-dumb-script.patch
+b0ce51a8f63eb8095160dd018f54134988fce7cb18d9fcdce45aae250ea098339aab786509d3bd3bbdd3d71c6cbd459f9ff3950ebeb21a0ea0774d53b3892067 fix-gcc-10.patch
+26d4ae2e433b4c969c6991fa3607956df9732614cd51628d05286907cfed91dbcce418033e266461c0a3fb5671629f5155b50bf1ba56875ed51dc2b497748a2b no-git.patch
+9a2dcc1bb939cbce1401388dd4aa6c4a8cf83c1f0801cb3836beab3feaeab751ddafa1af972b0ff160989e38081bb157925d2502cc837f70204c56366c156728 format-security.patch
+"
diff --git a/testing/libcork/fix-gcc-10.patch b/testing/libcork/fix-gcc-10.patch
new file mode 100644
index 00000000000..5b3d2e9c701
--- /dev/null
+++ b/testing/libcork/fix-gcc-10.patch
@@ -0,0 +1,1182 @@
+From 8d19023cccdf30f17b5c0178eb1bae5284827a18 Mon Sep 17 00:00:00 2001
+From: mochaaP <git@mochaa.ws>
+Date: Sun, 22 May 2022 06:20:22 +0000
+Subject: [PATCH] Fix compilation errors with the recent gcc
+
+Backported <https://github.com/dcreager/libcork/pull/170>
+
+Make the code compile on the recent gcc. The patch
+does following things:
+
+ - Adopt to the new libcheck api. The old ones like
+ fail, fail_if, fail_unless are deprecated and can't
+ compile on the recent gcc.
+ - Other format-string related fixes like unmatched
+ types.
+
+Co-Authored-By: Yujia Qiao <rapiz3142@gmail.com>
+---
+ tests/helpers.h | 10 ++---
+ tests/test-array.c | 14 +++----
+ tests/test-bitset.c | 4 +-
+ tests/test-buffer.c | 18 ++++----
+ tests/test-core.c | 84 ++++++++++++++++++-------------------
+ tests/test-dllist.c | 18 ++++----
+ tests/test-files.c | 4 +-
+ tests/test-hash-table.c | 56 ++++++++++++-------------
+ tests/test-managed-buffer.c | 14 +++----
+ tests/test-mempool.c | 16 +++----
+ tests/test-ring-buffer.c | 64 ++++++++++++++--------------
+ tests/test-slice.c | 28 ++++++-------
+ tests/test-subprocess.c | 2 +-
+ tests/test-threads.c | 18 ++++----
+ 14 files changed, 175 insertions(+), 175 deletions(-)
+
+diff --git a/tests/helpers.h b/tests/helpers.h
+index 16b968b..8be1d40 100644
+--- a/tests/helpers.h
++++ b/tests/helpers.h
+@@ -66,7 +66,7 @@ setup_allocator(void)
+ do { \
+ call; \
+ if (cork_error_occurred()) { \
+- fail("%s", cork_error_message()); \
++ ck_abort_msg(cork_error_message()); \
+ } \
+ } while (0)
+
+@@ -74,7 +74,7 @@ setup_allocator(void)
+ do { \
+ call; \
+ if (!cork_error_occurred()) { \
+- fail(__VA_ARGS__); \
++ ck_abort_msg(__VA_ARGS__); \
+ } else { \
+ print_expected_failure(); \
+ } \
+@@ -82,15 +82,15 @@ setup_allocator(void)
+ } while (0)
+
+ #define fail_unless_equal(what, format, expected, actual) \
+- (fail_unless((expected) == (actual), \
++ (ck_assert_msg((expected) == (actual), \
+ "%s not equal (expected " format \
+ ", got " format ")", \
+ (what), (expected), (actual)))
+
+ #define fail_unless_streq(what, expected, actual) \
+- (fail_unless(strcmp((expected), (actual)) == 0, \
++ (ck_assert_msg(strcmp((expected), (actual)) == 0, \
+ "%s not equal (expected \"%s\", got \"%s\")", \
+ (char *) (what), (char *) (expected), (char *) (actual)))
+
+-
++#define ck_assert_false_msg(expr, ...) ck_assert_msg(!(expr), ## __VA_ARGS__)
+ #endif /* TESTS_HELPERS_H */
+diff --git a/tests/test-array.c b/tests/test-array.c
+index f9c28cf..22998de 100644
+--- a/tests/test-array.c
++++ b/tests/test-array.c
+@@ -25,18 +25,18 @@
+
+ #define add_element(element, expected_new_size) \
+ fail_if_error(cork_array_append(&array, element)); \
+- fail_unless(cork_array_size(&array) == expected_new_size, \
++ ck_assert_msg(cork_array_size(&array) == expected_new_size, \
+ "Unexpected size of array: got %zu, expected %zu", \
+- cork_array_size(&array), expected_new_size);
++ (size_t)cork_array_size(&array), (size_t)expected_new_size);
+
+ #define add_element0(element, expected_new_size, int_type) \
+ do { \
+ int_type *__element; \
+ fail_if_error(__element = cork_array_append_get(&array)); \
+ *__element = element; \
+- fail_unless(cork_array_size(&array) == expected_new_size, \
++ ck_assert_msg(cork_array_size(&array) == expected_new_size, \
+ "Unexpected size of array: got %zu, expected %zu", \
+- cork_array_size(&array), expected_new_size); \
++ (size_t)cork_array_size(&array), (size_t)expected_new_size); \
+ } while (0)
+
+ #define test_sum(array, expected) \
+@@ -46,7 +46,7 @@
+ for (i = 0; i < cork_array_size(array); i++) { \
+ sum += cork_array_at(array, i); \
+ } \
+- fail_unless(sum == expected, \
++ ck_assert_msg(sum == expected, \
+ "Unexpected sum, got %ld, expected %ld", \
+ (long) sum, (long) expected); \
+ } while (0)
+@@ -60,7 +60,7 @@ START_TEST(test_array_##int_type) \
+ cork_array(int_type) copy; \
+ cork_array_init(&array); \
+ \
+- fail_unless(cork_array_size(&array) == 0, \
++ ck_assert_msg(cork_array_size(&array) == 0, \
+ "Unexpected size of array: got %zu, expected 0", \
+ cork_array_size(&array)); \
+ \
+@@ -109,7 +109,7 @@ test_int(int64_t)
+
+ #define add_string(element, expected_new_size) \
+ fail_if_error(cork_string_array_append(&array, element)); \
+- fail_unless(cork_array_size(&array) == expected_new_size, \
++ ck_assert_msg(cork_array_size(&array) == expected_new_size, \
+ "Unexpected size of array: got %zu, expected %zu", \
+ cork_array_size(&array), (size_t) expected_new_size);
+
+diff --git a/tests/test-bitset.c b/tests/test-bitset.c
+index 2476b69..259eb52 100644
+--- a/tests/test-bitset.c
++++ b/tests/test-bitset.c
+@@ -31,12 +31,12 @@ test_bitset_of_size(size_t bit_count)
+
+ for (i = 0; i < bit_count; i++) {
+ cork_bitset_set(set, i, true);
+- fail_unless(cork_bitset_get(set, i), "Unexpected value for bit %zu", i);
++ ck_assert_msg(cork_bitset_get(set, i), "Unexpected value for bit %zu", i);
+ }
+
+ for (i = 0; i < bit_count; i++) {
+ cork_bitset_set(set, i, false);
+- fail_if(cork_bitset_get(set, i), "Unexpected value for bit %zu", i);
++ ck_assert_false_msg(cork_bitset_get(set, i), "Unexpected value for bit %zu", i);
+ }
+
+ cork_bitset_free(set);
+diff --git a/tests/test-buffer.c b/tests/test-buffer.c
+index 517fcb7..db2be85 100644
+--- a/tests/test-buffer.c
++++ b/tests/test-buffer.c
+@@ -29,18 +29,18 @@
+ static void
+ check_buffers(const struct cork_buffer *buf1, const struct cork_buffer *buf2)
+ {
+- fail_unless(cork_buffer_equal(buf1, buf2),
++ ck_assert_msg(cork_buffer_equal(buf1, buf2),
+ "Buffers should be equal: got %zu:%s, expected %zu:%s",
+- buf1->size, buf1->buf, buf2->size, buf2->buf);
++ buf1->size, (char*)buf1->buf, buf2->size, (char*)buf2->buf);
+ }
+
+ static void
+ check_buffer(const struct cork_buffer *buf, const char *expected)
+ {
+ size_t expected_len = strlen(expected);
+- fail_unless(buf->size == expected_len,
++ ck_assert_msg(buf->size == expected_len,
+ "Unexpected buffer content: got %zu:%s, expected %zu:%s",
+- buf->size, buf->buf, expected_len, expected);
++ buf->size, (char*)buf->buf, expected_len, expected);
+ }
+
+ START_TEST(test_buffer)
+@@ -57,11 +57,11 @@ START_TEST(test_buffer)
+ cork_buffer_init(&buffer1);
+ fail_if_error(cork_buffer_set(&buffer1, SRC, SRC_LEN));
+
+- fail_unless(cork_buffer_char(&buffer1, 0) == 'H',
++ ck_assert_msg(cork_buffer_char(&buffer1, 0) == 'H',
+ "Unexpected character at position 0: got %c, expected %c",
+ (int) cork_buffer_char(&buffer1, 0), (int) 'H');
+
+- fail_unless(cork_buffer_byte(&buffer1, 1) == (uint8_t) 'e',
++ ck_assert_msg(cork_buffer_byte(&buffer1, 1) == (uint8_t) 'e',
+ "Unexpected character at position 1: got %c, expected %c",
+ (int) cork_buffer_byte(&buffer1, 1), (int) 'e');
+
+@@ -128,9 +128,9 @@ START_TEST(test_buffer_append)
+ (buffer3, "%s%s%s", SRC2, SRC3, SRC4));
+ check_buffers(&buffer1, buffer3);
+
+- fail_unless(cork_buffer_equal(&buffer1, buffer3),
++ ck_assert_msg(cork_buffer_equal(&buffer1, buffer3),
+ "Buffers should be equal: got %zu:%s, expected %zu:%s",
+- buffer1.size, buffer1.buf, buffer3->size, buffer3->buf);
++ buffer1.size, (char*)buffer1.buf, buffer3->size, (char*)buffer3->buf);
+
+ cork_buffer_done(&buffer1);
+ cork_buffer_done(&buffer2);
+@@ -177,7 +177,7 @@ START_TEST(test_buffer_slicing)
+ fail_if_error(cork_slice_slice_offset_fast(&slice2, 2));
+ fail_if_error(cork_slice_slice_fast(&slice2, 0, 2));
+ fail_if_error(cork_slice_slice(&slice1, 2, 2));
+- fail_unless(cork_slice_equal(&slice1, &slice2), "Slices should be equal");
++ ck_assert_msg(cork_slice_equal(&slice1, &slice2), "Slices should be equal");
+ cork_slice_finish(&slice2);
+
+ cork_slice_finish(&slice1);
+diff --git a/tests/test-core.c b/tests/test-core.c
+index 506ee8c..c3ac39b 100644
+--- a/tests/test-core.c
++++ b/tests/test-core.c
+@@ -38,10 +38,10 @@ START_TEST(test_bool)
+ bool value;
+
+ value = true;
+- fail_unless(value, "Unexpected true value");
++ ck_assert_msg(value, "Unexpected true value");
+
+ value = false;
+- fail_if(value, "Unexpected false value");
++ ck_assert_false_msg(value, "Unexpected false value");
+ }
+ END_TEST
+
+@@ -55,7 +55,7 @@ START_TEST(test_int_types)
+ #define TEST_INT_TYPE(type) \
+ { \
+ type i = 0; \
+- fail_unless(i == 0, "Unexpected value for " #type); \
++ ck_assert_msg(i == 0, "Unexpected value for " #type); \
+ }
+
+ TEST_INT_TYPE(int8_t);
+@@ -85,7 +85,7 @@ START_TEST(test_int_sizeof)
+
+ #define TEST_SIZEOF(TYPE, type) \
+ { \
+- fail_unless(CORK_SIZEOF_##TYPE == sizeof(type), \
++ ck_assert_msg(CORK_SIZEOF_##TYPE == sizeof(type), \
+ "Incorrect size for " #type ": got %zu, expected %zu", \
+ (size_t) CORK_SIZEOF_##TYPE, \
+ (size_t) sizeof(type)); \
+@@ -117,14 +117,14 @@ test_strndup(const char *string, size_t size)
+
+ copy = cork_strndup(string, size);
+ if (memcmp(string, copy, size) != 0) {
+- fail("cork_strndup failed");
++ ck_abort_msg("cork_strndup failed");
+ }
+ cork_strfree(copy);
+
+ copy = cork_xstrndup(string, size);
+- fail_if(copy == NULL, "cork_xstrndup couldn't allocate copy");
++ ck_assert_false_msg(copy == NULL, "cork_xstrndup couldn't allocate copy");
+ if (memcmp(string, copy, size) != 0) {
+- fail("cork_xstrndup failed");
++ ck_abort_msg("cork_xstrndup failed");
+ }
+ cork_strfree(copy);
+ }
+@@ -151,21 +151,21 @@ START_TEST(test_endianness)
+ { { __VA_ARGS__ } }; \
+ \
+ type from_big = CORK_##TYPE##_BIG_TO_HOST(u.val); \
+- fail_unless(from_big == expected, \
++ ck_assert_msg(from_big == expected, \
+ "Unexpected big-to-host " #type " value"); \
+ \
+ type from_big_in_place = u.val; \
+ CORK_##TYPE##_BIG_TO_HOST_IN_PLACE(from_big_in_place); \
+- fail_unless(from_big_in_place == expected, \
++ ck_assert_msg(from_big_in_place == expected, \
+ "Unexpected in-place big-to-host " #type " value"); \
+ \
+ type to_big = CORK_##TYPE##_HOST_TO_BIG(expected); \
+- fail_unless(to_big == u.val, \
++ ck_assert_msg(to_big == u.val, \
+ "Unexpected host-to-big " #type " value"); \
+ \
+ type to_big_in_place = expected; \
+ CORK_##TYPE##_HOST_TO_BIG_IN_PLACE(to_big_in_place); \
+- fail_unless(to_big_in_place == u.val, \
++ ck_assert_msg(to_big_in_place == u.val, \
+ "Unexpected in-place host-to-big " #type " value"); \
+ \
+ int i; \
+@@ -176,21 +176,21 @@ START_TEST(test_endianness)
+ } \
+ \
+ type from_little = CORK_##TYPE##_LITTLE_TO_HOST(u.val); \
+- fail_unless(from_little == expected, \
++ ck_assert_msg(from_little == expected, \
+ "Unexpected little-to-host " #type " value"); \
+ \
+ type from_little_in_place = u.val; \
+ CORK_##TYPE##_LITTLE_TO_HOST_IN_PLACE(from_little_in_place); \
+- fail_unless(from_little_in_place == expected, \
++ ck_assert_msg(from_little_in_place == expected, \
+ "Unexpected in-place little-to-host " #type " value"); \
+ \
+ type to_little = CORK_##TYPE##_HOST_TO_LITTLE(expected); \
+- fail_unless(to_little == u.val, \
++ ck_assert_msg(to_little == u.val, \
+ "Unexpected host-to-little " #type " value"); \
+ \
+ type to_little_in_place = expected; \
+ CORK_##TYPE##_HOST_TO_LITTLE_IN_PLACE(to_little_in_place); \
+- fail_unless(to_little_in_place == u.val, \
++ ck_assert_msg(to_little_in_place == u.val, \
+ "Unexpected in-place host-to-little " #type " value"); \
+ }
+
+@@ -232,7 +232,7 @@ START_TEST(test_system_error)
+ errno = ENOMEM;
+ cork_error_clear();
+ cork_system_error_set();
+- fail_unless(cork_error_code() == ENOMEM,
++ ck_assert_msg(cork_error_code() == ENOMEM,
+ "Expected a system error");
+ printf("Got error: %s\n", cork_error_message());
+ cork_error_clear();
+@@ -245,7 +245,7 @@ END_TEST
+ */
+
+ #define test_hash_func(func, expected, ...) \
+- fail_unless(func(0, __VA_ARGS__) == expected, \
++ ck_assert_msg(func(0, __VA_ARGS__) == expected, \
+ "Unexpected hash value 0x%08" PRIx32 \
+ " (expected 0x%08" PRIx32 ")", \
+ func(0, __VA_ARGS__), expected);
+@@ -288,7 +288,7 @@ END_TEST
+ cork_big_hash seed = CORK_BIG_HASH_INIT(); \
+ cork_big_hash expected = {cork_u128_from_64(e1, e2)}; \
+ cork_big_hash actual = cork_big_hash_buffer(seed, buf, len); \
+- fail_unless(cork_big_hash_equal(actual, expected), \
++ ck_assert_msg(cork_big_hash_equal(actual, expected), \
+ "\nUnexpected hash value 0x%016" PRIx64 ".%016" PRIx64 \
+ "\n (expected 0x%016" PRIx64 ".%016" PRIx64 ")", \
+ cork_u128_be64(actual.u128, 0), \
+@@ -467,14 +467,14 @@ START_TEST(test_ipv4_address)
+ fail_if_error(cork_ipv4_init(&addr, str)); \
+ char actual[CORK_IPV4_STRING_LENGTH]; \
+ cork_ipv4_to_raw_string(&addr, actual); \
+- fail_unless(strcmp(actual, normalized) == 0, \
++ ck_assert_msg(strcmp(actual, normalized) == 0, \
+ "Unexpected string representation: " \
+ "got \"%s\", expected \"%s\"", \
+ actual, normalized); \
+ \
+ struct cork_ipv4 addr2; \
+ cork_ipv4_init(&addr2, normalized); \
+- fail_unless(cork_ipv4_equal(&addr, &addr2), \
++ ck_assert_msg(cork_ipv4_equal(&addr, &addr2), \
+ "IPv4 instances should be equal"); \
+ }
+
+@@ -500,13 +500,13 @@ START_TEST(test_ipv4_address)
+
+ fprintf(stderr, "Testing network prefixes\n");
+ cork_ipv4_init(&addr4, "1.2.3.4");
+- fail_unless(cork_ipv4_is_valid_network(&addr4, ipv4_cidr_good),
++ ck_assert_msg(cork_ipv4_is_valid_network(&addr4, ipv4_cidr_good),
+ "Bad CIDR block for 1.2.3.4 and %u",
+ ipv4_cidr_good);
+- fail_if(cork_ipv4_is_valid_network(&addr4, ipv4_cidr_bad_value),
++ ck_assert_false_msg(cork_ipv4_is_valid_network(&addr4, ipv4_cidr_bad_value),
+ "IPv4 CIDR check should fail for %u",
+ ipv4_cidr_bad_value);
+- fail_if(cork_ipv4_is_valid_network(&addr4, ipv4_cidr_bad_range),
++ ck_assert_false_msg(cork_ipv4_is_valid_network(&addr4, ipv4_cidr_bad_range),
+ "IPv4 CIDR check should fail for %u",
+ ipv4_cidr_bad_range);
+ }
+@@ -523,14 +523,14 @@ START_TEST(test_ipv6_address)
+ fail_if_error(cork_ipv6_init(&addr, str)); \
+ char actual[CORK_IPV6_STRING_LENGTH]; \
+ cork_ipv6_to_raw_string(&addr, actual); \
+- fail_unless(strcmp(actual, normalized) == 0, \
++ ck_assert_msg(strcmp(actual, normalized) == 0, \
+ "Unexpected string representation: " \
+ "got \"%s\", expected \"%s\"", \
+ actual, normalized); \
+ \
+ struct cork_ipv6 addr2; \
+ cork_ipv6_init(&addr2, normalized); \
+- fail_unless(cork_ipv6_equal(&addr, &addr2), \
++ ck_assert_msg(cork_ipv6_equal(&addr, &addr2), \
+ "IPv6 instances should be equal"); \
+ }
+
+@@ -556,13 +556,13 @@ START_TEST(test_ipv6_address)
+
+ fprintf(stderr, "Testing network prefixes\n");
+ cork_ipv6_init(&addr6, "fe80::200:f8ff:fe21:6000");
+- fail_unless(cork_ipv6_is_valid_network(&addr6, ipv6_cidr_good),
++ ck_assert_msg(cork_ipv6_is_valid_network(&addr6, ipv6_cidr_good),
+ "Bad CIDR block %u",
+ ipv6_cidr_good);
+- fail_if(cork_ipv6_is_valid_network(&addr6, ipv6_cidr_bad_value),
++ ck_assert_false_msg(cork_ipv6_is_valid_network(&addr6, ipv6_cidr_bad_value),
+ "IPv6 CIDR check should fail for %u",
+ ipv6_cidr_bad_value);
+- fail_if(cork_ipv6_is_valid_network(&addr6, ipv6_cidr_bad_range),
++ ck_assert_false_msg(cork_ipv6_is_valid_network(&addr6, ipv6_cidr_bad_range),
+ "IPv6 CIDR check should fail for %u",
+ ipv6_cidr_bad_range);
+ }
+@@ -580,14 +580,14 @@ START_TEST(test_ip_address)
+ fail_if_error(cork_ip_init(&addr, str)); \
+ char actual[CORK_IP_STRING_LENGTH]; \
+ cork_ip_to_raw_string(&addr, actual); \
+- fail_unless(strcmp(actual, normalized) == 0, \
++ ck_assert_msg(strcmp(actual, normalized) == 0, \
+ "Unexpected string representation: " \
+ "got \"%s\", expected \"%s\"", \
+ actual, normalized); \
+ \
+ struct cork_ip addr2; \
+ cork_ip_init(&addr2, normalized); \
+- fail_unless(cork_ip_equal(&addr, &addr2), \
++ ck_assert_msg(cork_ip_equal(&addr, &addr2), \
+ "IP instances should be equal"); \
+ }
+
+@@ -612,18 +612,18 @@ START_TEST(test_ip_address)
+ fprintf(stderr, "Testing IP address versions\n");
+ cork_ip_init(&addr, "192.168.1.1");
+ cork_ipv4_init(&addr4, "192.168.1.1");
+- fail_unless(addr.version == 4,
++ ck_assert_msg(addr.version == 4,
+ "Unexpected IP address version (expected 4, got %u)",
+ addr.version);
+- fail_unless(cork_ipv4_equal(&addr.ip.v4, &addr4),
++ ck_assert_msg(cork_ipv4_equal(&addr.ip.v4, &addr4),
+ "IP addresses should be equal");
+
+ cork_ip_init(&addr, "fe80::1");
+ cork_ipv6_init(&addr6, "fe80::1");
+- fail_unless(addr.version == 6,
++ ck_assert_msg(addr.version == 6,
+ "Unexpected IP address version (expected 6, got %u)",
+ addr.version);
+- fail_unless(cork_ipv6_equal(&addr.ip.v6, &addr6),
++ ck_assert_msg(cork_ipv6_equal(&addr.ip.v6, &addr6),
+ "IP addresses should be equal");
+ }
+ END_TEST
+@@ -637,7 +637,7 @@ static void
+ test_timestamp_bad_format(cork_timestamp ts, const char *format)
+ {
+ struct cork_buffer buf = CORK_BUFFER_INIT();
+- fail_unless_error(cork_timestamp_format_utc(ts, format, &buf));
++ fail_unless_error(cork_timestamp_format_utc(ts, format, &buf), "Error in cork_timestamp_format_utc");
+ cork_buffer_done(&buf);
+ }
+
+@@ -647,7 +647,7 @@ test_timestamp_utc_format(cork_timestamp ts, const char *format,
+ {
+ struct cork_buffer buf = CORK_BUFFER_INIT();
+ fail_if_error(cork_timestamp_format_utc(ts, format, &buf));
+- fail_unless(strcmp(buf.buf, expected) == 0,
++ ck_assert_msg(strcmp(buf.buf, expected) == 0,
+ "Unexpected formatted UTC time "
+ "(got \"%s\", expected \"%s\")",
+ (char *) buf.buf, expected);
+@@ -660,7 +660,7 @@ test_timestamp_local_format(cork_timestamp ts, const char *format,
+ {
+ struct cork_buffer buf = CORK_BUFFER_INIT();
+ fail_if_error(cork_timestamp_format_local(ts, format, &buf));
+- fail_unless(strcmp(buf.buf, expected) == 0,
++ ck_assert_msg(strcmp(buf.buf, expected) == 0,
+ "Unexpected formatted local time "
+ "(got \"%s\", expected \"%s\")",
+ (char *) buf.buf, expected);
+@@ -691,7 +691,7 @@ START_TEST(test_timestamp)
+ DESCRIBE_TEST;
+
+ #define test(unit, expected) \
+- fail_unless(cork_timestamp_##unit(ts) == expected, \
++ ck_assert_msg(cork_timestamp_##unit(ts) == expected, \
+ "Unexpected " #unit " portion of timestamp " \
+ "(got %lu, expected %lu)", \
+ (unsigned long) cork_timestamp_##unit(ts), \
+@@ -958,7 +958,7 @@ END_TEST
+ #define test_u128_cmp(op, op_str, v1, v2, expected) \
+ do { \
+ bool actual = cork_u128_##op((v1), (v2)); \
+- fail_unless(actual == (expected), \
++ ck_assert_msg(actual == (expected), \
+ "%" PRIu64 ":%" PRIu64 \
+ " should %sbe " op_str " " \
+ "%" PRIu64 ":%" PRIu64, \
+@@ -1060,15 +1060,15 @@ START_TEST(test_uid)
+
+ id1 = test_id_01;
+ id2 = test_id_02;
+- fail_if(cork_uid_equal(id1, id2), "Unique IDs aren't unique");
++ ck_assert_false_msg(cork_uid_equal(id1, id2), "Unique IDs aren't unique");
+
+ id1 = test_id_01;
+ id2 = test_id_01;
+- fail_unless(cork_uid_equal(id1, id2), "Unique ID isn't equal to itself");
++ ck_assert_msg(cork_uid_equal(id1, id2), "Unique ID isn't equal to itself");
+
+ id1 = test_id_01;
+ id2 = CORK_UID_NONE;
+- fail_if(cork_uid_equal(id1, id2), "NULL unique ID isn't unique");
++ ck_assert_false_msg(cork_uid_equal(id1, id2), "NULL unique ID isn't unique");
+ }
+ END_TEST
+
+diff --git a/tests/test-dllist.c b/tests/test-dllist.c
+index fd1dfb7..72f4c58 100644
+--- a/tests/test-dllist.c
++++ b/tests/test-dllist.c
+@@ -72,37 +72,37 @@ START_TEST(test_dllist)
+ int64_t sum;
+
+ cork_dllist_init(&list);
+- fail_unless(cork_dllist_size(&list) == 0,
++ ck_assert_msg(cork_dllist_size(&list) == 0,
+ "Unexpected size of list: got %zu, expected 0",
+ cork_dllist_size(&list));
+- fail_unless(cork_dllist_is_empty(&list),
++ ck_assert_msg(cork_dllist_is_empty(&list),
+ "Expected empty list");
+ check_int64_list(&list, "");
+
+ item1.value = 1;
+ cork_dllist_add(&list, &item1.element);
+- fail_unless(cork_dllist_size(&list) == 1,
++ ck_assert_msg(cork_dllist_size(&list) == 1,
+ "Unexpected size of list: got %zu, expected 1",
+ cork_dllist_size(&list));
+ check_int64_list(&list, "1");
+
+ item2.value = 2;
+ cork_dllist_add(&list, &item2.element);
+- fail_unless(cork_dllist_size(&list) == 2,
++ ck_assert_msg(cork_dllist_size(&list) == 2,
+ "Unexpected size of list: got %zu, expected 2",
+ cork_dllist_size(&list));
+ check_int64_list(&list, "1,2");
+
+ item3.value = 3;
+ cork_dllist_add(&list, &item3.element);
+- fail_unless(cork_dllist_size(&list) == 3,
++ ck_assert_msg(cork_dllist_size(&list) == 3,
+ "Unexpected size of list: got %zu, expected 3",
+ cork_dllist_size(&list));
+ check_int64_list(&list, "1,2,3");
+
+ sum = 0;
+- fail_if(cork_dllist_visit(&list, &sum, int64_sum));
+- fail_unless(sum == 6,
++ ck_assert(!cork_dllist_visit(&list, &sum, int64_sum));
++ ck_assert_msg(sum == 6,
+ "Unexpected sum, got %ld, expected 6",
+ (long) sum);
+
+@@ -110,12 +110,12 @@ START_TEST(test_dllist)
+ cork_dllist_foreach(&list, curr, next, struct int64_item, item, element) {
+ sum += item->value;
+ }
+- fail_unless(sum == 6,
++ ck_assert_msg(sum == 6,
+ "Unexpected sum, got %ld, expected 6",
+ (long) sum);
+
+ cork_dllist_remove(&item2.element);
+- fail_unless(cork_dllist_size(&list) == 2,
++ ck_assert_msg(cork_dllist_size(&list) == 2,
+ "Unexpected size of list: got %zu, expected 2",
+ cork_dllist_size(&list));
+ }
+diff --git a/tests/test-files.c b/tests/test-files.c
+index ed76615..ce2858b 100644
+--- a/tests/test-files.c
++++ b/tests/test-files.c
+@@ -31,7 +31,7 @@ static const char *program_path;
+ void
+ verify_path_content(struct cork_path *path, const char *expected)
+ {
+- fail_if(cork_path_get(path) == NULL, "Path should not have NULL content");
++ ck_assert_false_msg(cork_path_get(path) == NULL, "Path should not have NULL content");
+ fail_unless_streq("Paths", expected, cork_path_get(path));
+ }
+
+@@ -357,7 +357,7 @@ test_file_exists(const char *filename, bool expected)
+ cork_path_append(path, filename);
+ file = cork_file_new_from_path(path);
+ fail_if_error(cork_file_exists(file, &actual));
+- fail_unless(actual == expected, "File %s should%s exist",
++ ck_assert_msg(actual == expected, "File %s should%s exist",
+ cork_path_get(path), expected? "": " not");
+ cork_file_free(file);
+ }
+diff --git a/tests/test-hash-table.c b/tests/test-hash-table.c
+index f6baf74..6605d37 100644
+--- a/tests/test-hash-table.c
++++ b/tests/test-hash-table.c
+@@ -68,7 +68,7 @@ test_map_sum(struct cork_hash_table *table, uint64_t expected)
+ {
+ uint64_t sum = 0;
+ cork_hash_table_map(table, &sum, uint64_sum);
+- fail_unless(sum == expected,
++ ck_assert_msg(sum == expected,
+ "Unexpected map sum, got %" PRIu64
+ ", expected %" PRIu64,
+ sum, expected);
+@@ -85,7 +85,7 @@ test_iterator_sum(struct cork_hash_table *table, uint64_t expected)
+ uint64_t *value_ptr = entry->value;
+ sum += *value_ptr;
+ }
+- fail_unless(sum == expected,
++ ck_assert_msg(sum == expected,
+ "Unexpected iterator sum, got %" PRIu64
+ ", expected %" PRIu64 "",
+ sum, expected);
+@@ -150,11 +150,11 @@ START_TEST(test_uint64_hash_table)
+ cork_hash_table_set_equals(table, uint64__equals);
+ cork_hash_table_set_free_key(table, uint64__free);
+ cork_hash_table_set_free_value(table, uint64__free);
+- fail_unless(cork_hash_table_size(table) == 0,
++ ck_assert_msg(cork_hash_table_size(table) == 0,
+ "Hash table should start empty");
+
+ key = 0;
+- fail_unless(cork_hash_table_get(table, &key) == NULL,
++ ck_assert_msg(cork_hash_table_get(table, &key) == NULL,
+ "Shouldn't get value pointer from empty hash table");
+
+ test_map_sum(table, 0);
+@@ -169,32 +169,32 @@ START_TEST(test_uint64_hash_table)
+ fail_if_error(cork_hash_table_put
+ (table, key_ptr, value_ptr,
+ &is_new, &v_key, &v_value));
+- fail_unless(is_new, "Couldn't append {0=>32} to hash table");
++ ck_assert_msg(is_new, "Couldn't append {0=>32} to hash table");
+ old_key = v_key;
+ old_value = v_value;
+
+- fail_unless(old_key == NULL,
++ ck_assert_msg(old_key == NULL,
+ "Unexpected previous key");
+- fail_unless(old_value == NULL,
++ ck_assert_msg(old_value == NULL,
+ "Unexpected previous value");
+
+- fail_unless(cork_hash_table_size(table) == 1,
++ ck_assert_msg(cork_hash_table_size(table) == 1,
+ "Unexpected size after adding {0->32}");
+
+ fail_if_error(entry = cork_hash_table_get_or_create
+ (table, &key, &is_new));
+- fail_if(is_new, "Shouldn't create new {0=>X} entry");
++ ck_assert_false_msg(is_new, "Shouldn't create new {0=>X} entry");
+ value_ptr = entry->value;
+- fail_unless(*value_ptr == 32,
++ ck_assert_msg(*value_ptr == 32,
+ "Unexpected value for {0=>X} entry");
+
+- fail_unless(cork_hash_table_size(table) == 1,
++ ck_assert_msg(cork_hash_table_size(table) == 1,
+ "Unexpected size after retrieving {0->32}");
+
+ key = 1;
+ fail_if_error(entry = cork_hash_table_get_or_create
+ (table, &key, &is_new));
+- fail_unless(is_new, "Should create new {1=>X} entry");
++ ck_assert_msg(is_new, "Should create new {1=>X} entry");
+ key_ptr = cork_new(uint64_t);
+ *key_ptr = key;
+ entry->key = key_ptr;
+@@ -202,7 +202,7 @@ START_TEST(test_uint64_hash_table)
+ *value_ptr = 2;
+ entry->value = value_ptr;
+
+- fail_unless(cork_hash_table_size(table) == 2,
++ ck_assert_msg(cork_hash_table_size(table) == 2,
+ "Unexpected size after adding {1=>2}");
+
+ test_map_sum(table, 34);
+@@ -211,22 +211,22 @@ START_TEST(test_uint64_hash_table)
+ test_iterator_to_string(table, "[0:32, 1:2]");
+
+ key = 0;
+- fail_unless(cork_hash_table_delete(table, &key, NULL, NULL),
++ ck_assert_msg(cork_hash_table_delete(table, &key, NULL, NULL),
+ "Couldn't delete {0=>32}");
+
+- fail_unless(cork_hash_table_size(table) == 1,
++ ck_assert_msg(cork_hash_table_size(table) == 1,
+ "Unexpected size after deleting entry");
+
+ test_map_to_string(table, "[1:2]");
+ test_iterator_to_string(table, "[1:2]");
+
+ key = 3;
+- fail_if(cork_hash_table_delete(table, &key, NULL, NULL),
++ ck_assert_false_msg(cork_hash_table_delete(table, &key, NULL, NULL),
+ "Shouldn't be able to delete nonexistent {3=>X}");
+
+ cork_hash_table_delete_entry(table, entry);
+
+- fail_unless(cork_hash_table_size(table) == 0,
++ ck_assert_msg(cork_hash_table_size(table) == 0,
+ "Unexpected size after deleting last entry");
+
+ /*
+@@ -241,7 +241,7 @@ START_TEST(test_uint64_hash_table)
+ fail_if_error(cork_hash_table_put
+ (table, key_ptr, value_ptr,
+ &is_new, &v_key, &v_value));
+- fail_unless(is_new, "Couldn't append {0=>32} to hash table");
++ ck_assert_msg(is_new, "Couldn't append {0=>32} to hash table");
+ old_key = v_key;
+ old_value = v_value;
+
+@@ -252,12 +252,12 @@ START_TEST(test_uint64_hash_table)
+ fail_if_error(cork_hash_table_put
+ (table, key_ptr, value_ptr,
+ &is_new, &v_key, &v_value));
+- fail_unless(is_new, "Couldn't append {1=>2} to hash table");
++ ck_assert_msg(is_new, "Couldn't append {1=>2} to hash table");
+ old_key = v_key;
+ old_value = v_value;
+
+ cork_hash_table_clear(table);
+- fail_unless(cork_hash_table_size(table) == 0,
++ ck_assert_msg(cork_hash_table_size(table) == 0,
+ "Unexpected size after deleting entries using map");
+
+ /* And we're done, so let's free everything. */
+@@ -280,18 +280,18 @@ START_TEST(test_string_hash_table)
+
+ fail_if_error(cork_hash_table_put
+ (table, "key1", (void *) (uintptr_t) 1, NULL, NULL, NULL));
+- fail_unless(cork_hash_table_size(table) == 1,
++ ck_assert_msg(cork_hash_table_size(table) == 1,
+ "Unexpected size after adding {key1->1}");
+
+ strncpy(key, "key1", sizeof(key));
+- fail_if((value = cork_hash_table_get(table, key)) == NULL,
++ ck_assert_false_msg((value = cork_hash_table_get(table, key)) == NULL,
+ "No entry for key1");
+
+- fail_unless(value == (void *) (uintptr_t) 1,
++ ck_assert_msg(value == (void *) (uintptr_t) 1,
+ "Unexpected value for key1");
+
+ strncpy(key, "key2", sizeof(key));
+- fail_unless((value = cork_hash_table_get(table, key)) == NULL,
++ ck_assert_msg((value = cork_hash_table_get(table, key)) == NULL,
+ "Unexpected entry for key2");
+
+ cork_hash_table_free(table);
+@@ -314,16 +314,16 @@ START_TEST(test_pointer_hash_table)
+
+ fail_if_error(cork_hash_table_put
+ (table, &key1, (void *) (uintptr_t) 1, NULL, NULL, NULL));
+- fail_unless(cork_hash_table_size(table) == 1,
++ ck_assert_msg(cork_hash_table_size(table) == 1,
+ "Unexpected size after adding {key1->1}");
+
+- fail_if((value = cork_hash_table_get(table, &key1)) == NULL,
++ ck_assert_false_msg((value = cork_hash_table_get(table, &key1)) == NULL,
+ "No entry for key1");
+
+- fail_unless(value == (void *) (uintptr_t) 1,
++ ck_assert_msg(value == (void *) (uintptr_t) 1,
+ "Unexpected value for key1");
+
+- fail_unless((value = cork_hash_table_get(table, &key2)) == NULL,
++ ck_assert_msg((value = cork_hash_table_get(table, &key2)) == NULL,
+ "Unexpected entry for key2");
+
+ cork_hash_table_free(table);
+diff --git a/tests/test-managed-buffer.c b/tests/test-managed-buffer.c
+index 9223218..25afc7d 100644
+--- a/tests/test-managed-buffer.c
++++ b/tests/test-managed-buffer.c
+@@ -81,7 +81,7 @@ START_TEST(test_managed_buffer_refcount)
+ cork_managed_buffer_unref(pb2);
+ cork_managed_buffer_unref(pb3);
+
+- fail_unless(flag,
++ ck_assert_msg(flag,
+ "Managed buffer free function never called.");
+ }
+ END_TEST
+@@ -108,7 +108,7 @@ START_TEST(test_managed_buffer_bad_refcount)
+ /* cork_managed_buffer_unref(pb3); OH NO! */
+ (void) pb3;
+
+- fail_if(flag,
++ ck_assert_false_msg(flag,
+ "Managed buffer free function was called unexpectedly.");
+
+ /* free the buffer here to quiet valgrind */
+@@ -176,7 +176,7 @@ START_TEST(test_slice_refcount)
+ cork_slice_finish(&ps2);
+ cork_slice_finish(&ps3);
+
+- fail_unless(flag,
++ ck_assert_msg(flag,
+ "Managed buffer free function never called.");
+ }
+ END_TEST
+@@ -211,7 +211,7 @@ START_TEST(test_slice_bad_refcount)
+ cork_slice_finish(&ps2);
+ /* cork_slice_finish(&ps3); OH NO! */
+
+- fail_if(flag,
++ ck_assert_false_msg(flag,
+ "Managed buffer free function was called unexpectedly.");
+
+ /* free the slice here to quiet valgrind */
+@@ -244,7 +244,7 @@ START_TEST(test_slice_equals_01)
+ fail_if_error(cork_managed_buffer_slice_offset(&ps1, pb, 0));
+ fail_if_error(cork_managed_buffer_slice(&ps2, pb, 0, LEN));
+
+- fail_unless(cork_slice_equal(&ps1, &ps2),
++ ck_assert_msg(cork_slice_equal(&ps1, &ps2),
+ "Slices aren't equal");
+
+ cork_managed_buffer_unref(pb);
+@@ -278,9 +278,9 @@ START_TEST(test_slice_equals_02)
+ fail_if_error(cork_slice_copy(&ps3, &ps2, 2, 3));
+ fail_if_error(cork_slice_slice(&ps2, 2, 3));
+
+- fail_unless(cork_slice_equal(&ps1, &ps2),
++ ck_assert_msg(cork_slice_equal(&ps1, &ps2),
+ "Slices aren't equal");
+- fail_unless(cork_slice_equal(&ps1, &ps3),
++ ck_assert_msg(cork_slice_equal(&ps1, &ps3),
+ "Slices aren't equal");
+
+ cork_managed_buffer_unref(pb);
+diff --git a/tests/test-mempool.c b/tests/test-mempool.c
+index f6675af..8b3e4bb 100644
+--- a/tests/test-mempool.c
++++ b/tests/test-mempool.c
+@@ -36,7 +36,7 @@ START_TEST(test_mempool_01)
+ size_t i;
+ int64_t *objects[OBJECT_COUNT];
+ for (i = 0; i < OBJECT_COUNT; i++) {
+- fail_if((objects[i] = cork_mempool_new_object(mp)) == NULL,
++ ck_assert_false_msg((objects[i] = cork_mempool_new_object(mp)) == NULL,
+ "Cannot allocate object #%zu", i);
+ }
+
+@@ -45,7 +45,7 @@ START_TEST(test_mempool_01)
+ }
+
+ for (i = 0; i < OBJECT_COUNT; i++) {
+- fail_if((objects[i] = cork_mempool_new_object(mp)) == NULL,
++ ck_assert_false_msg((objects[i] = cork_mempool_new_object(mp)) == NULL,
+ "Cannot reallocate object #%zu", i);
+ }
+
+@@ -64,7 +64,7 @@ START_TEST(test_mempool_fail_01)
+ mp = cork_mempool_new(int64_t);
+
+ int64_t *obj;
+- fail_if((obj = cork_mempool_new_object(mp)) == NULL,
++ ck_assert_false_msg((obj = cork_mempool_new_object(mp)) == NULL,
+ "Cannot allocate object");
+
+ /* This should raise an assertion since we never freed obj. */
+@@ -105,25 +105,25 @@ START_TEST(test_mempool_reuse_01)
+ cork_mempool_set_done_object(mp, int64_done);
+
+ int64_t *obj;
+- fail_if((obj = cork_mempool_new_object(mp)) == NULL,
++ ck_assert_false_msg((obj = cork_mempool_new_object(mp)) == NULL,
+ "Cannot allocate object");
+
+ /* The init_object function sets the value to 12 */
+- fail_unless(*obj == 12, "Unexpected value %" PRId64, *obj);
++ ck_assert_msg(*obj == 12, "Unexpected value %" PRId64, *obj);
+
+ /* Set the value to something new, free the object, then reallocate.
+ * Since we know memory pools are LIFO, we should get back the same
+ * object, unchanged. */
+ *obj = 42;
+ cork_mempool_free_object(mp, obj);
+- fail_if((obj = cork_mempool_new_object(mp)) == NULL,
++ ck_assert_false_msg((obj = cork_mempool_new_object(mp)) == NULL,
+ "Cannot allocate object");
+- fail_unless(*obj == 42, "Unexpected value %" PRId64, *obj);
++ ck_assert_msg(*obj == 42, "Unexpected value %" PRId64, *obj);
+
+ cork_mempool_free_object(mp, obj);
+ cork_mempool_free(mp);
+
+- fail_unless(done_call_count ==
++ ck_assert_msg(done_call_count ==
+ OBJECTS_PER_BLOCK(BLOCK_SIZE, sizeof(int64_t)),
+ "done_object called an unexpected number of times: %zu",
+ done_call_count);
+diff --git a/tests/test-ring-buffer.c b/tests/test-ring-buffer.c
+index 3208834..2f2c2ea 100644
+--- a/tests/test-ring-buffer.c
++++ b/tests/test-ring-buffer.c
+@@ -28,40 +28,40 @@ START_TEST(test_ring_buffer_1)
+ struct cork_ring_buffer buf;
+ cork_ring_buffer_init(&buf, 4);
+
+- fail_unless(cork_ring_buffer_add(&buf, (void *) 1) == 0,
++ ck_assert_msg(cork_ring_buffer_add(&buf, (void *) 1) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(&buf, (void *) 2) == 0,
++ ck_assert_msg(cork_ring_buffer_add(&buf, (void *) 2) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(&buf, (void *) 3) == 0,
++ ck_assert_msg(cork_ring_buffer_add(&buf, (void *) 3) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(&buf, (void *) 4) == 0,
++ ck_assert_msg(cork_ring_buffer_add(&buf, (void *) 4) == 0,
+ "Cannot add to ring buffer");
+- fail_if(cork_ring_buffer_add(&buf, (void *) 5) == 0,
++ ck_assert_false_msg(cork_ring_buffer_add(&buf, (void *) 5) == 0,
+ "Shouldn't be able to add to ring buffer");
+
+- fail_unless(((intptr_t) cork_ring_buffer_peek(&buf)) == 1,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_peek(&buf)) == 1,
+ "Unexpected head of ring buffer (peek)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(&buf)) == 1,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(&buf)) == 1,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(&buf)) == 2,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(&buf)) == 2,
+ "Unexpected head of ring buffer (pop)");
+
+- fail_unless(cork_ring_buffer_add(&buf, (void *) 5) == 0,
++ ck_assert_msg(cork_ring_buffer_add(&buf, (void *) 5) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(&buf, (void *) 6) == 0,
++ ck_assert_msg(cork_ring_buffer_add(&buf, (void *) 6) == 0,
+ "Cannot add to ring buffer");
+- fail_if(cork_ring_buffer_add(&buf, (void *) 7) == 0,
++ ck_assert_false_msg(cork_ring_buffer_add(&buf, (void *) 7) == 0,
+ "Shouldn't be able to add to ring buffer");
+
+- fail_unless(((intptr_t) cork_ring_buffer_pop(&buf)) == 3,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(&buf)) == 3,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(&buf)) == 4,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(&buf)) == 4,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(&buf)) == 5,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(&buf)) == 5,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(&buf)) == 6,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(&buf)) == 6,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(cork_ring_buffer_pop(&buf) == NULL,
++ ck_assert_msg(cork_ring_buffer_pop(&buf) == NULL,
+ "Shouldn't be able to pop from ring buffer");
+
+ cork_ring_buffer_done(&buf);
+@@ -73,40 +73,40 @@ START_TEST(test_ring_buffer_2)
+ {
+ struct cork_ring_buffer *buf = cork_ring_buffer_new(4);
+
+- fail_unless(cork_ring_buffer_add(buf, (void *) 1) == 0,
++ ck_assert_msg(cork_ring_buffer_add(buf, (void *) 1) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(buf, (void *) 2) == 0,
++ ck_assert_msg(cork_ring_buffer_add(buf, (void *) 2) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(buf, (void *) 3) == 0,
++ ck_assert_msg(cork_ring_buffer_add(buf, (void *) 3) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(buf, (void *) 4) == 0,
++ ck_assert_msg(cork_ring_buffer_add(buf, (void *) 4) == 0,
+ "Cannot add to ring buffer");
+- fail_if(cork_ring_buffer_add(buf, (void *) 5) == 0,
++ ck_assert_false_msg(cork_ring_buffer_add(buf, (void *) 5) == 0,
+ "Shouldn't be able to add to ring buffer");
+
+- fail_unless(((intptr_t) cork_ring_buffer_peek(buf)) == 1,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_peek(buf)) == 1,
+ "Unexpected head of ring buffer (peek)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(buf)) == 1,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(buf)) == 1,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(buf)) == 2,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(buf)) == 2,
+ "Unexpected head of ring buffer (pop)");
+
+- fail_unless(cork_ring_buffer_add(buf, (void *) 5) == 0,
++ ck_assert_msg(cork_ring_buffer_add(buf, (void *) 5) == 0,
+ "Cannot add to ring buffer");
+- fail_unless(cork_ring_buffer_add(buf, (void *) 6) == 0,
++ ck_assert_msg(cork_ring_buffer_add(buf, (void *) 6) == 0,
+ "Cannot add to ring buffer");
+- fail_if(cork_ring_buffer_add(buf, (void *) 7) == 0,
++ ck_assert_false_msg(cork_ring_buffer_add(buf, (void *) 7) == 0,
+ "Shouldn't be able to add to ring buffer");
+
+- fail_unless(((intptr_t) cork_ring_buffer_pop(buf)) == 3,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(buf)) == 3,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(buf)) == 4,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(buf)) == 4,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(buf)) == 5,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(buf)) == 5,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(((intptr_t) cork_ring_buffer_pop(buf)) == 6,
++ ck_assert_msg(((intptr_t) cork_ring_buffer_pop(buf)) == 6,
+ "Unexpected head of ring buffer (pop)");
+- fail_unless(cork_ring_buffer_pop(buf) == NULL,
++ ck_assert_msg(cork_ring_buffer_pop(buf) == NULL,
+ "Shouldn't be able to pop from ring buffer");
+
+ cork_ring_buffer_free(buf);
+diff --git a/tests/test-slice.c b/tests/test-slice.c
+index 574fea5..0cd81e8 100644
+--- a/tests/test-slice.c
++++ b/tests/test-slice.c
+@@ -34,8 +34,8 @@ START_TEST(test_static_slice)
+ fail_if_error(cork_slice_copy(&copy1, &slice, 8, 4));
+ fail_if_error(cork_slice_light_copy(&lcopy1, &slice, 8, 4));
+ fail_if_error(cork_slice_slice(&slice, 8, 4));
+- fail_unless(cork_slice_equal(&slice, &copy1), "Slices should be equal");
+- fail_unless(cork_slice_equal(&slice, &lcopy1), "Slices should be equal");
++ ck_assert_msg(cork_slice_equal(&slice, &copy1), "Slices should be equal");
++ ck_assert_msg(cork_slice_equal(&slice, &lcopy1), "Slices should be equal");
+ /* We have to finish lcopy1 first, since it's a light copy. */
+ cork_slice_finish(&lcopy1);
+ cork_slice_finish(&slice);
+@@ -60,38 +60,38 @@ START_TEST(test_copy_once_slice)
+ struct cork_slice lcopy2;
+
+ cork_slice_init_copy_once(&slice, SRC, SRC_LEN);
+- fail_unless(slice.buf == SRC, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf == SRC, "Unexpected slice buffer");
+
+ fail_if_error(cork_slice_light_copy(&lcopy1, &slice, 8, 4));
+ /* We should still be using the original SRC buffer directly, since we only
+ * created a light copy. */
+- fail_unless(slice.buf == SRC, "Unexpected slice buffer");
+- fail_unless(slice.buf + 8 == lcopy1.buf, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf == SRC, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf + 8 == lcopy1.buf, "Unexpected slice buffer");
+
+ fail_if_error(cork_slice_copy(&copy1, &slice, 8, 4));
+ fail_if_error(cork_slice_slice(&slice, 8, 4));
+ /* Once we create a full copy, the content should have been moved into a
+ * managed buffer, which will exist somewhere else in memory than the
+ * original SRC pointer. */
+- fail_unless(slice.buf != SRC, "Unexpected slice buffer");
+- fail_unless(slice.buf == copy1.buf, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf != SRC, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf == copy1.buf, "Unexpected slice buffer");
+ /* The light copy that we made previously won't have been moved over to the
+ * new managed buffer, though. */
+- fail_unless(cork_slice_equal(&slice, &copy1), "Slices should be equal");
++ ck_assert_msg(cork_slice_equal(&slice, &copy1), "Slices should be equal");
+
+ /* Once we've switched over to the managed buffer, a new light copy should
+ * still point into the managed buffer. */
+ fail_if_error(cork_slice_light_copy(&lcopy2, &slice, 0, 4));
+- fail_unless(slice.buf != SRC, "Unexpected slice buffer");
+- fail_unless(slice.buf == lcopy2.buf, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf != SRC, "Unexpected slice buffer");
++ ck_assert_msg(slice.buf == lcopy2.buf, "Unexpected slice buffer");
+
+ fail_if_error(cork_slice_copy(&copy2, &slice, 0, 4));
+ /* The second full copy should not create a new managed buffer, it should
+ * just increment the existing managed buffer's refcount. */
+- fail_unless(slice.buf == copy2.buf, "Unexpected slice buffer");
+- fail_unless(copy1.buf == copy2.buf, "Unexpected slice buffer");
+- fail_unless(cork_slice_equal(&slice, &copy2), "Slices should be equal");
+- fail_unless(cork_slice_equal(&copy1, &copy2), "Slices should be equal");
++ ck_assert_msg(slice.buf == copy2.buf, "Unexpected slice buffer");
++ ck_assert_msg(copy1.buf == copy2.buf, "Unexpected slice buffer");
++ ck_assert_msg(cork_slice_equal(&slice, &copy2), "Slices should be equal");
++ ck_assert_msg(cork_slice_equal(&copy1, &copy2), "Slices should be equal");
+
+ /* We have to finish the light copies first. */
+ cork_slice_finish(&lcopy1);
+diff --git a/tests/test-subprocess.c b/tests/test-subprocess.c
+index c7aca91..a7bc37a 100644
+--- a/tests/test-subprocess.c
++++ b/tests/test-subprocess.c
+@@ -56,7 +56,7 @@ verify_consumer__eof(struct cork_stream_consumer *vself)
+ if (actual == NULL) {
+ actual = "";
+ }
+- fail_unless(strcmp(actual, self->expected) == 0,
++ ck_assert_msg(strcmp(actual, self->expected) == 0,
+ "Unexpected %s: got\n%s\nexpected\n%s\n", self->name,
+ actual, self->expected);
+ return 0;
+diff --git a/tests/test-threads.c b/tests/test-threads.c
+index 7ecf949..d17c8cc 100644
+--- a/tests/test-threads.c
++++ b/tests/test-threads.c
+@@ -29,13 +29,13 @@
+ #define test_atomic_op(name, type, fmt, op, expected) \
+ do { \
+ type actual = cork_##name##_atomic_##op(&val, 1); \
+- fail_unless_equal(#name, fmt, expected, actual); \
++ fail_unless_equal(#name, fmt, (type)expected, actual); \
+ } while (0)
+
+ #define test_cas(name, type, fmt, ov, nv) \
+ do { \
+ type actual = cork_##name##_cas(&val, ov, nv); \
+- fail_unless_equal(#name, fmt, ov, actual); \
++ fail_unless_equal(#name, fmt, (type)ov, (type)actual); \
+ } while (0)
+
+ #define test_atomic(name, type, fmt) \
+@@ -47,18 +47,18 @@ START_TEST(test_atomic_##name) \
+ test_atomic_op(name, type, fmt, pre_add, 1); \
+ test_atomic_op(name, type, fmt, add, 3); \
+ test_atomic_op(name, type, fmt, pre_add, 3); \
+- fail_unless_equal(#name, fmt, 4, val); \
++ fail_unless_equal(#name, fmt, (type)4, val); \
+ test_atomic_op(name, type, fmt, sub, 3); \
+ test_atomic_op(name, type, fmt, pre_sub, 3); \
+ test_atomic_op(name, type, fmt, sub, 1); \
+ test_atomic_op(name, type, fmt, pre_sub, 1); \
+- fail_unless_equal(#name, fmt, 0, val); \
++ fail_unless_equal(#name, fmt, (type)0, val); \
+ \
+ test_cas(name, type, fmt, 0, 1); \
+ test_cas(name, type, fmt, 1, 10); \
+ test_cas(name, type, fmt, 10, 2); \
+ test_cas(name, type, fmt, 2, 0); \
+- fail_unless_equal(#name, fmt, 0, val); \
++ fail_unless_equal(#name, fmt, (type)0, val); \
+ } \
+ END_TEST
+
+@@ -112,7 +112,7 @@ START_TEST(test_once)
+ cork_once(once, go);
+ fail_unless_equal("Value", "%d", 1, value);
+
+- fail_unless_equal("Call count", "%zu", 1, call_count);
++ fail_unless_equal("Call count", "%zu", (size_t)1, call_count);
+ }
+ END_TEST
+
+@@ -139,7 +139,7 @@ START_TEST(test_once_recursive)
+ cork_once_recursive(once, go);
+ fail_unless_equal("Value", "%d", 1, value);
+
+- fail_unless_equal("Call count", "%zu", 1, call_count);
++ fail_unless_equal("Call count", "%zu", (size_t)1, call_count);
+ }
+ END_TEST
+
+@@ -152,7 +152,7 @@ START_TEST(test_thread_ids)
+ {
+ DESCRIBE_TEST;
+ cork_thread_id id = cork_current_thread_get_id();
+- fail_if(id == CORK_THREAD_NONE, "Expected a valid thread ID");
++ ck_assert_false_msg(id == CORK_THREAD_NONE, "Expected a valid thread ID");
+ }
+ END_TEST
+
+@@ -277,7 +277,7 @@ START_TEST(test_threads_error_01)
+ fail_if_error(t1 = cork_thread_new
+ ("test", NULL, NULL, cork_error_thread__run));
+ fail_if_error(cork_thread_start(t1));
+- fail_unless_error(cork_thread_join(t1));
++ fail_unless_error(cork_thread_join(t1), "Cannot join the thread");
+ }
+ END_TEST
+
+--
+2.36.1
+
diff --git a/testing/libcork/format-security.patch b/testing/libcork/format-security.patch
new file mode 100644
index 00000000000..af516ea20f7
--- /dev/null
+++ b/testing/libcork/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/helpers.h b/tests/helpers.h
+index 8be1d40..efc7ea5 100644
+--- a/tests/helpers.h
++++ b/tests/helpers.h
+@@ -66,7 +66,7 @@ setup_allocator(void)
+ do { \
+ call; \
+ if (cork_error_occurred()) { \
+- ck_abort_msg(cork_error_message()); \
++ ck_abort_msg("%s", cork_error_message()); \
+ } \
+ } while (0)
+
diff --git a/testing/libcork/no-git.patch b/testing/libcork/no-git.patch
new file mode 100644
index 00000000000..edca647f66a
--- /dev/null
+++ b/testing/libcork/no-git.patch
@@ -0,0 +1,33 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1e236f9..3f9a494 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,17 +42,17 @@ else(BASE_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-dev)?$")
+ message(FATAL_ERROR "Invalid version number: ${VERSION}")
+ endif(BASE_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-dev)?$")
+
+-execute_process(
+- COMMAND git rev-parse HEAD
+- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+- RESULT_VARIABLE GIT_SHA1_RESULT
+- OUTPUT_VARIABLE GIT_SHA1
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+-)
+-if(GIT_SHA1_RESULT)
+- message(FATAL_ERROR
+- "Cannot determine git commit: " ${GIT_SHA1_RESULT})
+-endif(GIT_SHA1_RESULT)
++# execute_process(
++# COMMAND git rev-parse HEAD
++# WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
++# RESULT_VARIABLE GIT_SHA1_RESULT
++# OUTPUT_VARIABLE GIT_SHA1
++# OUTPUT_STRIP_TRAILING_WHITESPACE
++# )
++# if(GIT_SHA1_RESULT)
++# message(FATAL_ERROR
++# "Cannot determine git commit: " ${GIT_SHA1_RESULT})
++# endif(GIT_SHA1_RESULT)
+
+ #-----------------------------------------------------------------------
+ # Check for building on Tilera
diff --git a/testing/libcorkipset/APKBUILD b/testing/libcorkipset/APKBUILD
index 28682c37c09..8c5d6b839ba 100644
--- a/testing/libcorkipset/APKBUILD
+++ b/testing/libcorkipset/APKBUILD
@@ -1,25 +1,23 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libcorkipset
pkgver=1.1.1
_debver=20150311-8
-pkgrel=0
+pkgrel=4
pkgdesc="Small C helper library for storing sets of IPv4 and IPv6 addresses"
url="https://github.com/rogers0/libcorkipset"
arch="all"
license="BSD-3-Clause"
-makedepends="cmake check-dev libcork-dev"
+makedepends="cmake check-dev libcork-dev samurai"
checkdepends="python3"
-subpackages="$pkgname-dev"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/rogers0/$pkgname/archive/debian/$pkgver+$_debver.tar.gz
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rogers0/$pkgname/archive/debian/$pkgver+$_debver.tar.gz
+ fix-gcc-10.patch
"
-
builddir="$srcdir/$pkgname-debian-$pkgver-$_debver"
prepare() {
default_prepare
- mkdir build
for p in debian/patches/*.patch; do
patch -p1 -i "$p"
@@ -32,22 +30,29 @@ prepare() {
}
build() {
- cd build
- cmake .. \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_BUILD_STYLE=Release
- make
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
}
check() {
cd build
- make test
+ ninja test
}
package() {
- cd build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin
}
-sha512sums="5bbce2727da1665e734981959ecb253b4052d8cc6c426fded7e1678b6e2505bc9f4c0ab3cd3b6a03f834f5e20bd1d670cc19f7491fe0ad5b7cb772e7309f5009 libcorkipset-1.1.1.tar.gz"
+sha512sums="
+5bbce2727da1665e734981959ecb253b4052d8cc6c426fded7e1678b6e2505bc9f4c0ab3cd3b6a03f834f5e20bd1d670cc19f7491fe0ad5b7cb772e7309f5009 libcorkipset-1.1.1.tar.gz
+f0441ccc3800f450fa752ae4160dea0686fff2b5b255cfcb91bba8561301519fcc327125c2731ecbb909446ee6973c99d36d0d90f080bffd2d4a422f307e729d fix-gcc-10.patch
+"
diff --git a/testing/libcorkipset/fix-gcc-10.patch b/testing/libcorkipset/fix-gcc-10.patch
new file mode 100644
index 00000000000..48d40356d87
--- /dev/null
+++ b/testing/libcorkipset/fix-gcc-10.patch
@@ -0,0 +1,1548 @@
+From a672165912e67333f87d8655d6fb416ba07aa595 Mon Sep 17 00:00:00 2001
+From: mochaaP <git@mochaa.ws>
+Date: Sun, 22 May 2022 06:51:17 +0000
+Subject: [PATCH] Fix compilation errors with the recent gcc
+
+Ported <https://github.com/dcreager/libcork/pull/170>
+
+Make the code compile on the recent gcc. The patch
+does following things:
+
+ - Adopt to the new libcheck api. The old ones like
+ fail, fail_if, fail_unless are deprecated and can't
+ compile on the recent gcc.
+ - Other format-string related fixes like unmatched
+ types.
+---
+ tests/test-assignment.c | 34 +++++-----
+ tests/test-bdd.c | 142 ++++++++++++++++++++--------------------
+ tests/test-ipmap.c | 72 ++++++++++----------
+ tests/test-ipset.c | 102 ++++++++++++++---------------
+ tests/test-iterator.c | 140 +++++++++++++++++++--------------------
+ 5 files changed, 245 insertions(+), 245 deletions(-)
+
+diff --git a/tests/test-assignment.c b/tests/test-assignment.c
+index 3e871bf..a45e9bb 100644
+--- a/tests/test-assignment.c
++++ b/tests/test-assignment.c
+@@ -30,7 +30,7 @@ START_TEST(test_bdd_assignment_empty_equal)
+ a1 = ipset_assignment_new();
+ a2 = ipset_assignment_new();
+
+- fail_unless(ipset_assignment_equal(a1, a2),
++ ck_assert_msg(ipset_assignment_equal(a1, a2),
+ "Assignments should be equal");
+
+ ipset_assignment_free(a1);
+@@ -52,7 +52,7 @@ START_TEST(test_bdd_assignment_equal_1)
+ ipset_assignment_set(a2, 0, IPSET_TRUE);
+ ipset_assignment_set(a2, 1, IPSET_FALSE);
+
+- fail_unless(ipset_assignment_equal(a1, a2),
++ ck_assert_msg(ipset_assignment_equal(a1, a2),
+ "Assignments should be equal");
+
+ ipset_assignment_free(a1);
+@@ -75,7 +75,7 @@ START_TEST(test_bdd_assignment_equal_2)
+ ipset_assignment_set(a2, 1, IPSET_FALSE);
+ ipset_assignment_set(a2, 4, IPSET_EITHER);
+
+- fail_unless(ipset_assignment_equal(a1, a2),
++ ck_assert_msg(ipset_assignment_equal(a1, a2),
+ "Assignments should be equal");
+
+ ipset_assignment_free(a1);
+@@ -102,7 +102,7 @@ START_TEST(test_bdd_assignment_cut_1)
+
+ ipset_assignment_cut(a2, 2);
+
+- fail_unless(ipset_assignment_equal(a1, a2),
++ ck_assert_msg(ipset_assignment_equal(a1, a2),
+ "Assignments should be equal");
+
+ ipset_assignment_free(a1);
+@@ -129,15 +129,15 @@ START_TEST(test_bdd_assignment_expand_1)
+ uint8_t ea[1];
+ memset(ea, 0, 1);
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Expanded assignment shouldn't be empty");
+ IPSET_BIT_SET(ea, 0, true);
+ IPSET_BIT_SET(ea, 1, false);
+- fail_unless(memcmp(ea, it->values.buf, 1) == 0,
++ ck_assert_msg(memcmp(ea, it->values.buf, 1) == 0,
+ "Expanded assignment doesn't match");
+
+ ipset_expanded_assignment_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "Expanded assignment should have 1 element");
+
+ ipset_expanded_assignment_free(it);
+@@ -160,25 +160,25 @@ START_TEST(test_bdd_assignment_expand_2)
+ uint8_t ea[1];
+ memset(ea, 0, 1);
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Expanded assignment shouldn't be empty");
+ IPSET_BIT_SET(ea, 0, true);
+ IPSET_BIT_SET(ea, 1, false);
+ IPSET_BIT_SET(ea, 2, false);
+- fail_unless(memcmp(ea, it->values.buf, 1) == 0,
++ ck_assert_msg(memcmp(ea, it->values.buf, 1) == 0,
+ "Expanded assignment 1 doesn't match");
+
+ ipset_expanded_assignment_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Expanded assignment should have at least 1 element");
+ IPSET_BIT_SET(ea, 0, true);
+ IPSET_BIT_SET(ea, 1, false);
+ IPSET_BIT_SET(ea, 2, true);
+- fail_unless(memcmp(ea, it->values.buf, 1) == 0,
++ ck_assert_msg(memcmp(ea, it->values.buf, 1) == 0,
+ "Expanded assignment 2 doesn't match");
+
+ ipset_expanded_assignment_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "Expanded assignment should have 2 elements");
+
+ ipset_expanded_assignment_free(it);
+@@ -201,25 +201,25 @@ START_TEST(test_bdd_assignment_expand_3)
+ uint8_t ea[1];
+ memset(ea, 0, 1);
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Expanded assignment shouldn't be empty");
+ IPSET_BIT_SET(ea, 0, true);
+ IPSET_BIT_SET(ea, 1, false);
+ IPSET_BIT_SET(ea, 2, false);
+- fail_unless(memcmp(ea, it->values.buf, 1) == 0,
++ ck_assert_msg(memcmp(ea, it->values.buf, 1) == 0,
+ "Expanded assignment 1 doesn't match");
+
+ ipset_expanded_assignment_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Expanded assignment should have at least 1 element");
+ IPSET_BIT_SET(ea, 0, true);
+ IPSET_BIT_SET(ea, 1, true);
+ IPSET_BIT_SET(ea, 2, false);
+- fail_unless(memcmp(ea, it->values.buf, 1) == 0,
++ ck_assert_msg(memcmp(ea, it->values.buf, 1) == 0,
+ "Expanded assignment 2 doesn't match");
+
+ ipset_expanded_assignment_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "Expanded assignment should have 2 elements");
+
+ ipset_expanded_assignment_free(it);
+diff --git a/tests/test-bdd.c b/tests/test-bdd.c
+index 23b90e7..6a827e8 100644
+--- a/tests/test-bdd.c
++++ b/tests/test-bdd.c
+@@ -70,25 +70,25 @@ START_TEST(test_bit_get)
+ DESCRIBE_TEST;
+ uint16_t a = CORK_UINT16_HOST_TO_BIG(0x6012); /* 0110 0000 0001 0010 */
+
+- fail_unless(IPSET_BIT_GET(&a, 0) == 0, "Bit 0 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 1) == 1, "Bit 1 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 2) == 1, "Bit 2 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 3) == 0, "Bit 3 is incorrect");
+-
+- fail_unless(IPSET_BIT_GET(&a, 4) == 0, "Bit 4 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 5) == 0, "Bit 5 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 6) == 0, "Bit 6 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 7) == 0, "Bit 7 is incorrect");
+-
+- fail_unless(IPSET_BIT_GET(&a, 8) == 0, "Bit 8 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 9) == 0, "Bit 9 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 10) == 0, "Bit 10 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 11) == 1, "Bit 11 is incorrect");
+-
+- fail_unless(IPSET_BIT_GET(&a, 12) == 0, "Bit 12 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 13) == 0, "Bit 13 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 14) == 1, "Bit 14 is incorrect");
+- fail_unless(IPSET_BIT_GET(&a, 15) == 0, "Bit 15 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 0) == 0, "Bit 0 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 1) == 1, "Bit 1 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 2) == 1, "Bit 2 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 3) == 0, "Bit 3 is incorrect");
++
++ ck_assert_msg(IPSET_BIT_GET(&a, 4) == 0, "Bit 4 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 5) == 0, "Bit 5 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 6) == 0, "Bit 6 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 7) == 0, "Bit 7 is incorrect");
++
++ ck_assert_msg(IPSET_BIT_GET(&a, 8) == 0, "Bit 8 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 9) == 0, "Bit 9 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 10) == 0, "Bit 10 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 11) == 1, "Bit 11 is incorrect");
++
++ ck_assert_msg(IPSET_BIT_GET(&a, 12) == 0, "Bit 12 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 13) == 0, "Bit 13 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 14) == 1, "Bit 14 is incorrect");
++ ck_assert_msg(IPSET_BIT_GET(&a, 15) == 0, "Bit 15 is incorrect");
+ }
+ END_TEST
+
+@@ -118,7 +118,7 @@ START_TEST(test_bit_set)
+ IPSET_BIT_SET(&a, 14, 1);
+ IPSET_BIT_SET(&a, 15, 0);
+
+- fail_unless(CORK_UINT16_HOST_TO_BIG(0x6012) == a,
++ ck_assert_msg(CORK_UINT16_HOST_TO_BIG(0x6012) == a,
+ "Incorrect bit result: 0x%04" PRIu16, a);
+ }
+ END_TEST
+@@ -135,10 +135,10 @@ START_TEST(test_bdd_false_terminal)
+
+ ipset_node_id n_false = ipset_terminal_node_id(false);
+
+- fail_unless(ipset_node_get_type(n_false) == IPSET_TERMINAL_NODE,
++ ck_assert_msg(ipset_node_get_type(n_false) == IPSET_TERMINAL_NODE,
+ "False terminal has wrong type");
+
+- fail_unless(ipset_terminal_value(n_false) == false,
++ ck_assert_msg(ipset_terminal_value(n_false) == false,
+ "False terminal has wrong value");
+
+ ipset_node_decref(cache, n_false);
+@@ -154,10 +154,10 @@ START_TEST(test_bdd_true_terminal)
+
+ ipset_node_id n_true = ipset_terminal_node_id(true);
+
+- fail_unless(ipset_node_get_type(n_true) == IPSET_TERMINAL_NODE,
++ ck_assert_msg(ipset_node_get_type(n_true) == IPSET_TERMINAL_NODE,
+ "True terminal has wrong type");
+
+- fail_unless(ipset_terminal_value(n_true) == true,
++ ck_assert_msg(ipset_terminal_value(n_true) == true,
+ "True terminal has wrong value");
+
+ ipset_node_decref(cache, n_true);
+@@ -174,7 +174,7 @@ START_TEST(test_bdd_terminal_reduced_1)
+ ipset_node_id node1 = ipset_terminal_node_id(false);
+ ipset_node_id node2 = ipset_terminal_node_id(false);
+
+- fail_unless(node1 == node2,
++ ck_assert_msg(node1 == node2,
+ "Terminal node isn't reduced");
+
+ ipset_node_decref(cache, node1);
+@@ -199,16 +199,16 @@ START_TEST(test_bdd_nonterminal_1)
+ ipset_node_id node =
+ ipset_node_cache_nonterminal(cache, 0, n_false, n_true);
+
+- fail_unless(ipset_node_get_type(node) == IPSET_NONTERMINAL_NODE,
++ ck_assert_msg(ipset_node_get_type(node) == IPSET_NONTERMINAL_NODE,
+ "Nonterminal has wrong type");
+
+ struct ipset_node *n = ipset_node_cache_get_nonterminal(cache, node);
+
+- fail_unless(n->variable == 0,
++ ck_assert_msg(n->variable == 0,
+ "Nonterminal has wrong variable");
+- fail_unless(n->low == n_false,
++ ck_assert_msg(n->low == n_false,
+ "Nonterminal has wrong low pointer");
+- fail_unless(n->high == n_true,
++ ck_assert_msg(n->high == n_true,
+ "Nonterminal has wrong high pointer");
+
+ ipset_node_decref(cache, node);
+@@ -234,7 +234,7 @@ START_TEST(test_bdd_nonterminal_reduced_1)
+ ipset_node_id node2 =
+ ipset_node_cache_nonterminal(cache, 0, n_false, n_true);
+
+- fail_unless(node1 == node2,
++ ck_assert_msg(node1 == node2,
+ "Nonterminal node isn't reduced");
+
+ ipset_node_decref(cache, node1);
+@@ -257,7 +257,7 @@ START_TEST(test_bdd_nonterminal_reduced_2)
+ ipset_node_id node =
+ ipset_node_cache_nonterminal(cache, 0, n_false, n_false);
+
+- fail_unless(node == n_false,
++ ck_assert_msg(node == n_false,
+ "Nonterminal node isn't reduced");
+
+ ipset_node_decref(cache, node);
+@@ -289,14 +289,14 @@ START_TEST(test_bdd_evaluate_1)
+
+ uint8_t input1[] = { 0x80 }; /* { TRUE } */
+ bool expected1 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bit_array_assignment, input1)
+ == expected1,
+ "BDD evaluates to wrong value");
+
+ uint8_t input2[] = { 0x00 }; /* { FALSE } */
+ bool expected2 = true;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bit_array_assignment, input2)
+ == expected2,
+ "BDD evaluates to wrong value");
+@@ -328,28 +328,28 @@ START_TEST(test_bdd_evaluate_2)
+
+ bool input1[] = { true, true };
+ bool expected1 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input1)
+ == expected1,
+ "BDD evaluates to wrong value");
+
+ bool input2[] = { true, false };
+ bool expected2 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input2)
+ == expected2,
+ "BDD evaluates to wrong value");
+
+ bool input3[] = { false, true };
+ bool expected3 = true;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input3)
+ == expected3,
+ "BDD evaluates to wrong value");
+
+ bool input4[] = { false, false };
+ bool expected4 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input4)
+ == expected4,
+ "BDD evaluates to wrong value");
+@@ -385,7 +385,7 @@ START_TEST(test_bdd_insert_reduced_1)
+ (cache, n_false1, ipset_bool_array_assignment, elem, 2, true);
+
+ /* Verify that we get the same physical node both times. */
+- fail_unless(node0 == node1,
++ ck_assert_msg(node0 == node1,
+ "Insert result isn't reduced");
+
+ ipset_node_decref(cache, n_false0);
+@@ -415,28 +415,28 @@ START_TEST(test_bdd_insert_evaluate_1)
+
+ bool input1[] = { true, true };
+ bool expected1 = true;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input1)
+ == expected1,
+ "BDD evaluates to wrong value");
+
+ bool input2[] = { true, false };
+ bool expected2 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input2)
+ == expected2,
+ "BDD evaluates to wrong value");
+
+ bool input3[] = { false, true };
+ bool expected3 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input3)
+ == expected3,
+ "BDD evaluates to wrong value");
+
+ bool input4[] = { false, false };
+ bool expected4 = false;
+- fail_unless(ipset_node_evaluate
++ ck_assert_msg(ipset_node_evaluate
+ (cache, node, ipset_bool_array_assignment, input4)
+ == expected4,
+ "BDD evaluates to wrong value");
+@@ -477,10 +477,10 @@ START_TEST(test_bdd_size_1)
+
+ /* And verify how big it is. */
+
+- fail_unless(ipset_node_reachable_count(cache, node) == 3u,
++ ck_assert_msg(ipset_node_reachable_count(cache, node) == 3u,
+ "BDD has wrong number of nodes");
+
+- fail_unless(ipset_node_memory_size(cache, node) ==
++ ck_assert_msg(ipset_node_memory_size(cache, node) ==
+ 3u * sizeof(struct ipset_node),
+ "BDD takes up wrong amount of space");
+
+@@ -512,7 +512,7 @@ START_TEST(test_bdd_save_1)
+ struct cork_stream_consumer *stream =
+ cork_buffer_to_stream_consumer(&buf);
+
+- fail_unless(ipset_node_cache_save(stream, cache, node) == 0,
++ ck_assert_msg(ipset_node_cache_save(stream, cache, node) == 0,
+ "Cannot serialize BDD");
+
+ const char *raw_expected =
+@@ -524,12 +524,12 @@ START_TEST(test_bdd_save_1)
+ ;
+ const size_t expected_length = 24;
+
+- fail_unless(expected_length == buf.size,
++ ck_assert_msg(expected_length == buf.size,
+ "Serialized BDD has wrong length "
+ "(expected %zu, got %zu)",
+ expected_length, buf.size);
+
+- fail_unless(memcmp(raw_expected, buf.buf, expected_length) == 0,
++ ck_assert_msg(memcmp(raw_expected, buf.buf, expected_length) == 0,
+ "Serialized BDD has incorrect data");
+
+ cork_stream_consumer_free(stream);
+@@ -568,7 +568,7 @@ START_TEST(test_bdd_save_2)
+ struct cork_stream_consumer *stream =
+ cork_buffer_to_stream_consumer(&buf);
+
+- fail_unless(ipset_node_cache_save(stream, cache, node) == 0,
++ ck_assert_msg(ipset_node_cache_save(stream, cache, node) == 0,
+ "Cannot serialize BDD");
+
+ const char *raw_expected =
+@@ -591,12 +591,12 @@ START_TEST(test_bdd_save_2)
+ ;
+ const size_t expected_length = 47;
+
+- fail_unless(expected_length == buf.size,
++ ck_assert_msg(expected_length == buf.size,
+ "Serialized BDD has wrong length "
+ "(expected %zu, got %zu)",
+ expected_length, buf.size);
+
+- fail_unless(memcmp(raw_expected, buf.buf, expected_length) == 0,
++ ck_assert_msg(memcmp(raw_expected, buf.buf, expected_length) == 0,
+ "Serialized BDD has incorrect data");
+
+ cork_stream_consumer_free(stream);
+@@ -637,10 +637,10 @@ START_TEST(test_bdd_load_1)
+ fseek(temp_file->stream, 0, SEEK_SET);
+
+ ipset_node_id read = ipset_node_cache_load(temp_file->stream, cache);
+- fail_if(cork_error_occurred(),
++ ck_assert_msg(!cork_error_occurred(),
+ "Error reading BDD from stream");
+
+- fail_unless(read == node,
++ ck_assert_msg(read == node,
+ "BDD from stream doesn't match expected");
+
+ temp_file_free(temp_file);
+@@ -705,10 +705,10 @@ START_TEST(test_bdd_load_2)
+ fseek(temp_file->stream, 0, SEEK_SET);
+
+ ipset_node_id read = ipset_node_cache_load(temp_file->stream, cache);
+- fail_if(cork_error_occurred(),
++ ck_assert_msg(!cork_error_occurred(),
+ "Error reading BDD from stream");
+
+- fail_unless(read == node,
++ ck_assert_msg(read == node,
+ "BDD from stream doesn't match expected");
+
+ temp_file_free(temp_file);
+@@ -746,27 +746,27 @@ START_TEST(test_bdd_iterate_1)
+ struct ipset_assignment *expected = ipset_assignment_new();
+ struct ipset_bdd_iterator *it = ipset_node_iterate(cache, node);
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Iterator should not be empty");
+ ipset_assignment_clear(expected);
+ ipset_assignment_set(expected, 0, IPSET_FALSE);
+- fail_unless(ipset_assignment_equal(expected, it->assignment),
++ ck_assert_msg(ipset_assignment_equal(expected, it->assignment),
+ "Iterator assignment 0 doesn't match");
+- fail_unless(true == it->value,
++ ck_assert_msg(true == it->value,
+ "Iterator value 0 doesn't match");
+
+ ipset_bdd_iterator_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Iterator should have more than 1 element");
+ ipset_assignment_clear(expected);
+ ipset_assignment_set(expected, 0, IPSET_TRUE);
+- fail_unless(ipset_assignment_equal(expected, it->assignment),
++ ck_assert_msg(ipset_assignment_equal(expected, it->assignment),
+ "Iterator assignment 1 doesn't match");
+- fail_unless(false == it->value,
++ ck_assert_msg(false == it->value,
+ "Iterator value 1 doesn't match (%u)", it->value);
+
+ ipset_bdd_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "Iterator should have 2 elements");
+
+ ipset_assignment_free(expected);
+@@ -796,39 +796,39 @@ START_TEST(test_bdd_iterate_2)
+ struct ipset_assignment *expected = ipset_assignment_new();
+ struct ipset_bdd_iterator *it = ipset_node_iterate(cache, node);
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Iterator should not be empty");
+ ipset_assignment_clear(expected);
+ ipset_assignment_set(expected, 0, IPSET_FALSE);
+ ipset_assignment_set(expected, 1, IPSET_FALSE);
+- fail_unless(ipset_assignment_equal(expected, it->assignment),
++ ck_assert_msg(ipset_assignment_equal(expected, it->assignment),
+ "Iterator assignment 0 doesn't match");
+- fail_unless(false == it->value,
++ ck_assert_msg(false == it->value,
+ "Iterator value 0 doesn't match");
+
+ ipset_bdd_iterator_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Iterator should have more than 1 element");
+ ipset_assignment_clear(expected);
+ ipset_assignment_set(expected, 0, IPSET_FALSE);
+ ipset_assignment_set(expected, 1, IPSET_TRUE);
+- fail_unless(ipset_assignment_equal(expected, it->assignment),
++ ck_assert_msg(ipset_assignment_equal(expected, it->assignment),
+ "Iterator assignment 1 doesn't match");
+- fail_unless(true == it->value,
++ ck_assert_msg(true == it->value,
+ "Iterator value 1 doesn't match (%u)", it->value);
+
+ ipset_bdd_iterator_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "Iterator should have more than 2 elements");
+ ipset_assignment_clear(expected);
+ ipset_assignment_set(expected, 0, IPSET_TRUE);
+- fail_unless(ipset_assignment_equal(expected, it->assignment),
++ ck_assert_msg(ipset_assignment_equal(expected, it->assignment),
+ "Iterator assignment 2 doesn't match");
+- fail_unless(false == it->value,
++ ck_assert_msg(false == it->value,
+ "Iterator value 2 doesn't match (%u)", it->value);
+
+ ipset_bdd_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "Iterator should have 3 elements");
+
+ ipset_assignment_free(expected);
+diff --git a/tests/test-ipmap.c b/tests/test-ipmap.c
+index 0e600b7..3035995 100644
+--- a/tests/test-ipmap.c
++++ b/tests/test-ipmap.c
+@@ -72,17 +72,17 @@ test_round_trip(struct ip_map *map)
+ struct temp_file *temp_file = temp_file_new();
+ temp_file_open_stream(temp_file);
+
+- fail_unless(ipmap_save(temp_file->stream, map) == 0,
++ ck_assert_msg(ipmap_save(temp_file->stream, map) == 0,
+ "Could not save map");
+
+ fflush(temp_file->stream);
+ fseek(temp_file->stream, 0, SEEK_SET);
+
+ read_map = ipmap_load(temp_file->stream);
+- fail_if(read_map == NULL,
++ ck_assert_msg(!(read_map == NULL),
+ "Could not read map");
+
+- fail_unless(ipmap_is_equal(map, read_map),
++ ck_assert_msg(ipmap_is_equal(map, read_map),
+ "Map not same after saving/loading");
+
+ temp_file_free(temp_file);
+@@ -100,7 +100,7 @@ START_TEST(test_map_starts_empty)
+ struct ip_map map;
+
+ ipmap_init(&map, 0);
+- fail_unless(ipmap_is_empty(&map),
++ ck_assert_msg(ipmap_is_empty(&map),
+ "Map should start empty");
+ ipmap_done(&map);
+ }
+@@ -113,7 +113,7 @@ START_TEST(test_empty_maps_equal)
+
+ ipmap_init(&map1, 0);
+ ipmap_init(&map2, 0);
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Empty maps should be equal");
+ ipmap_done(&map1);
+ ipmap_done(&map2);
+@@ -127,7 +127,7 @@ START_TEST(test_different_defaults_unequal)
+
+ ipmap_init(&map1, 0);
+ ipmap_init(&map2, 1);
+- fail_if(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(!ipmap_is_equal(&map1, &map2),
+ "Empty maps with different defaults "
+ "should be unequal");
+ ipmap_done(&map1);
+@@ -171,7 +171,7 @@ START_TEST(test_ipv4_insert_01)
+ ipmap_init(&map, 0);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set(&map, &addr, 1);
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 1,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 1,
+ "Element should be present");
+ ipmap_done(&map);
+ }
+@@ -187,7 +187,7 @@ START_TEST(test_ipv4_insert_02)
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set(&map, &addr, 1);
+ cork_ipv4_init(&addr, "192.168.1.101");
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 0,
+ "Element should not be present");
+ ipmap_done(&map);
+ }
+@@ -203,7 +203,7 @@ START_TEST(test_ipv4_insert_03)
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set(&map, &addr, 1);
+ cork_ipv4_init(&addr, "192.168.2.100");
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 0,
+ "Element should not be present");
+ ipmap_done(&map);
+ }
+@@ -218,7 +218,7 @@ START_TEST(test_ipv4_insert_network_01)
+ ipmap_init(&map, 0);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set_network(&map, &addr, 24, 1);
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 1,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 1,
+ "Element should be present");
+ ipmap_done(&map);
+ }
+@@ -234,7 +234,7 @@ START_TEST(test_ipv4_insert_network_02)
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set_network(&map, &addr, 24, 1);
+ cork_ipv4_init(&addr, "192.168.1.101");
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 1,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 1,
+ "Element should be present");
+ ipmap_done(&map);
+ }
+@@ -250,7 +250,7 @@ START_TEST(test_ipv4_insert_network_03)
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set_network(&map, &addr, 24, 1);
+ cork_ipv4_init(&addr, "192.168.2.100");
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 0,
+ "Element should not be present");
+ ipmap_done(&map);
+ }
+@@ -267,7 +267,7 @@ START_TEST(test_ipv4_overwrite_01)
+ ipmap_ipv4_set_network(&map, &addr, 24, 1);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set(&map, &addr, 0);
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 0,
+ "Element should be overwritten");
+ ipmap_done(&map);
+ }
+@@ -284,7 +284,7 @@ START_TEST(test_ipv4_overwrite_02)
+ ipmap_ipv4_set_network(&map, &addr, 24, 1);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set(&map, &addr, 2);
+- fail_unless(ipmap_ipv4_get(&map, &addr) == 2,
++ ck_assert_msg(ipmap_ipv4_get(&map, &addr) == 2,
+ "Element should be overwritten");
+ ipmap_done(&map);
+ }
+@@ -299,7 +299,7 @@ START_TEST(test_ipv4_bad_cidr_prefix_01)
+ ipmap_init(&map, 0);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set_network(&map, &addr, 33, 1);
+- fail_unless(ipmap_is_empty(&map),
++ ck_assert_msg(ipmap_is_empty(&map),
+ "Bad CIDR prefix shouldn't change map");
+ cork_error_clear();
+ ipmap_done(&map);
+@@ -320,7 +320,7 @@ START_TEST(test_ipv4_equality_1)
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipmap_ipv4_set(&map2, &addr, 1);
+
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Expected {x} == {x}");
+
+ ipmap_done(&map1);
+@@ -343,7 +343,7 @@ START_TEST(test_ipv4_equality_2)
+ cork_ipv4_init(&addr, "192.168.1.0");
+ ipmap_ipv4_set_network(&map2, &addr, 24, 1);
+
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Expected {x} == {x}");
+
+ ipmap_done(&map1);
+@@ -369,7 +369,7 @@ START_TEST(test_ipv4_equality_3)
+ cork_ipv4_init(&addr, "192.168.1.0");
+ ipmap_ipv4_set_network(&map2, &addr, 24, 1);
+
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Expected {x} == {x}");
+
+ ipmap_done(&map1);
+@@ -390,7 +390,7 @@ START_TEST(test_ipv4_inequality_1)
+ ipmap_init(&map2, 0);
+ ipmap_ipv4_set_network(&map2, &addr, 24, 1);
+
+- fail_unless(!ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(!ipmap_is_equal(&map1, &map2),
+ "Expected {x} != {x}");
+
+ ipmap_done(&map1);
+@@ -411,7 +411,7 @@ START_TEST(test_ipv4_inequality_2)
+ ipmap_init(&map2, 0);
+ ipmap_ipv4_set(&map2, &addr, 2);
+
+- fail_unless(!ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(!ipmap_is_equal(&map1, &map2),
+ "Expected {x} != {x}");
+
+ ipmap_done(&map1);
+@@ -433,7 +433,7 @@ START_TEST(test_ipv4_memory_size_1)
+ expected = 33 * sizeof(struct ipset_node);
+ actual = ipmap_memory_size(&map);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected map to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+@@ -455,7 +455,7 @@ START_TEST(test_ipv4_memory_size_2)
+ expected = 25 * sizeof(struct ipset_node);
+ actual = ipmap_memory_size(&map);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected map to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+@@ -495,7 +495,7 @@ START_TEST(test_ipv6_insert_01)
+ ipmap_init(&map, 0);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set(&map, &addr, 1);
+- fail_unless(ipmap_ipv6_get(&map, &addr) == 1,
++ ck_assert_msg(ipmap_ipv6_get(&map, &addr) == 1,
+ "Element should be present");
+ ipmap_done(&map);
+ }
+@@ -511,7 +511,7 @@ START_TEST(test_ipv6_insert_02)
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set(&map, &addr, 1);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e2");
+- fail_unless(ipmap_ipv6_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv6_get(&map, &addr) == 0,
+ "Element should not be present");
+ ipmap_done(&map);
+ }
+@@ -527,7 +527,7 @@ START_TEST(test_ipv6_insert_03)
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set(&map, &addr, 1);
+ cork_ipv6_init(&addr, "fe80:1::21e:c2ff:fe9f:e8e1");
+- fail_unless(ipmap_ipv6_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv6_get(&map, &addr) == 0,
+ "Element should not be present");
+ ipmap_done(&map);
+ }
+@@ -542,7 +542,7 @@ START_TEST(test_ipv6_insert_network_01)
+ ipmap_init(&map, 0);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set_network(&map, &addr, 32, 1);
+- fail_unless(ipmap_ipv6_get(&map, &addr) == 1,
++ ck_assert_msg(ipmap_ipv6_get(&map, &addr) == 1,
+ "Element should be present");
+ ipmap_done(&map);
+ }
+@@ -558,7 +558,7 @@ START_TEST(test_ipv6_insert_network_02)
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set_network(&map, &addr, 32, 1);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e2");
+- fail_unless(ipmap_ipv6_get(&map, &addr) == 1,
++ ck_assert_msg(ipmap_ipv6_get(&map, &addr) == 1,
+ "Element should be present");
+ ipmap_done(&map);
+ }
+@@ -574,7 +574,7 @@ START_TEST(test_ipv6_insert_network_03)
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set_network(&map, &addr, 32, 1);
+ cork_ipv6_init(&addr, "fe80:1::21e:c2ff:fe9f:e8e1");
+- fail_unless(ipmap_ipv6_get(&map, &addr) == 0,
++ ck_assert_msg(ipmap_ipv6_get(&map, &addr) == 0,
+ "Element should not be present");
+ ipmap_done(&map);
+ }
+@@ -589,7 +589,7 @@ START_TEST(test_ipv6_bad_cidr_prefix_01)
+ ipmap_init(&map, 0);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipmap_ipv6_set_network(&map, &addr, 129, 1);
+- fail_unless(ipmap_is_empty(&map),
++ ck_assert_msg(ipmap_is_empty(&map),
+ "Bad CIDR prefix shouldn't change map");
+ cork_error_clear();
+ ipmap_done(&map);
+@@ -609,7 +609,7 @@ START_TEST(test_ipv6_equality_1)
+ ipmap_init(&map2, 0);
+ ipmap_ipv6_set(&map2, &addr, 1);
+
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Expected {x} == {x}");
+
+ ipmap_done(&map1);
+@@ -632,7 +632,7 @@ START_TEST(test_ipv6_equality_2)
+ cork_ipv6_init(&addr, "fe80::");
+ ipmap_ipv6_set_network(&map2, &addr, 64, 1);
+
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Expected {x} == {x}");
+
+ ipmap_done(&map1);
+@@ -658,7 +658,7 @@ START_TEST(test_ipv6_equality_3)
+ cork_ipv6_init(&addr, "fe80::1:0");
+ ipmap_ipv6_set_network(&map2, &addr, 112, 1);
+
+- fail_unless(ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(ipmap_is_equal(&map1, &map2),
+ "Expected {x} == {x}");
+
+ ipmap_done(&map1);
+@@ -679,7 +679,7 @@ START_TEST(test_ipv6_inequality_1)
+ ipmap_init(&map2, 0);
+ ipmap_ipv6_set_network(&map2, &addr, 32, 1);
+
+- fail_unless(!ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(!ipmap_is_equal(&map1, &map2),
+ "Expected {x} != {x}");
+
+ ipmap_done(&map1);
+@@ -700,7 +700,7 @@ START_TEST(test_ipv6_inequality_2)
+ ipmap_init(&map2, 0);
+ ipmap_ipv6_set(&map2, &addr, 2);
+
+- fail_unless(!ipmap_is_equal(&map1, &map2),
++ ck_assert_msg(!ipmap_is_equal(&map1, &map2),
+ "Expected {x} != {x}");
+
+ ipmap_done(&map1);
+@@ -722,7 +722,7 @@ START_TEST(test_ipv6_memory_size_1)
+ expected = 129 * sizeof(struct ipset_node);
+ actual = ipmap_memory_size(&map);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected map to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+@@ -744,7 +744,7 @@ START_TEST(test_ipv6_memory_size_2)
+ expected = 33 * sizeof(struct ipset_node);
+ actual = ipmap_memory_size(&map);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected map to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+diff --git a/tests/test-ipset.c b/tests/test-ipset.c
+index 0737e2e..1cf2d16 100644
+--- a/tests/test-ipset.c
++++ b/tests/test-ipset.c
+@@ -72,17 +72,17 @@ test_round_trip(struct ip_set *set)
+ struct temp_file *temp_file = temp_file_new();
+ temp_file_open_stream(temp_file);
+
+- fail_unless(ipset_save(temp_file->stream, set) == 0,
++ ck_assert_msg(ipset_save(temp_file->stream, set) == 0,
+ "Could not save set");
+
+ fflush(temp_file->stream);
+ fseek(temp_file->stream, 0, SEEK_SET);
+
+ read_set = ipset_load(temp_file->stream);
+- fail_if(read_set == NULL,
++ ck_assert_msg(!(read_set == NULL),
+ "Could not read set");
+
+- fail_unless(ipset_is_equal(set, read_set),
++ ck_assert_msg(ipset_is_equal(set, read_set),
+ "Set not same after saving/loading");
+
+ temp_file_free(temp_file);
+@@ -100,7 +100,7 @@ START_TEST(test_set_starts_empty)
+ struct ip_set set;
+
+ ipset_init(&set);
+- fail_unless(ipset_is_empty(&set),
++ ck_assert_msg(ipset_is_empty(&set),
+ "Set should start empty");
+ ipset_done(&set);
+ }
+@@ -113,7 +113,7 @@ START_TEST(test_empty_sets_equal)
+
+ ipset_init(&set1);
+ ipset_init(&set2);
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Empty sets should be equal");
+ ipset_done(&set1);
+ ipset_done(&set2);
+@@ -144,9 +144,9 @@ START_TEST(test_ipv4_insert_01)
+
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+- fail_if(ipset_ipv4_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv4_add(&set, &addr),
+ "Element should not be present");
+- fail_unless(ipset_ipv4_add(&set, &addr),
++ ck_assert_msg(ipset_ipv4_add(&set, &addr),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -160,11 +160,11 @@ START_TEST(test_ipv4_remove_01)
+
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+- fail_if(ipset_ipv4_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv4_add(&set, &addr),
+ "Element should not be present");
+- fail_if(ipset_ipv4_remove(&set, &addr),
++ ck_assert_msg(!ipset_ipv4_remove(&set, &addr),
+ "Element should be present");
+- fail_unless(ipset_ipv4_remove(&set, &addr),
++ ck_assert_msg(ipset_ipv4_remove(&set, &addr),
+ "Element should not be present");
+ ipset_done(&set);
+ }
+@@ -178,9 +178,9 @@ START_TEST(test_ipv4_insert_network_01)
+
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+- fail_if(ipset_ipv4_add_network(&set, &addr, 24),
++ ck_assert_msg(!ipset_ipv4_add_network(&set, &addr, 24),
+ "Element should not be present");
+- fail_unless(ipset_ipv4_add_network(&set, &addr, 24),
++ ck_assert_msg(ipset_ipv4_add_network(&set, &addr, 24),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -194,11 +194,11 @@ START_TEST(test_ipv4_remove_network_01)
+
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+- fail_if(ipset_ipv4_add_network(&set, &addr, 24),
++ ck_assert_msg(!ipset_ipv4_add_network(&set, &addr, 24),
+ "Element should not be present");
+- fail_if(ipset_ipv4_remove_network(&set, &addr, 24),
++ ck_assert_msg(!ipset_ipv4_remove_network(&set, &addr, 24),
+ "Element should be present");
+- fail_unless(ipset_ipv4_remove_network(&set, &addr, 24),
++ ck_assert_msg(ipset_ipv4_remove_network(&set, &addr, 24),
+ "Element should not be present");
+ ipset_done(&set);
+ }
+@@ -213,7 +213,7 @@ START_TEST(test_ipv4_bad_cidr_prefix_01)
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ ipset_ipv4_add_network(&set, &addr, 33);
+- fail_unless(ipset_is_empty(&set),
++ ck_assert_msg(ipset_is_empty(&set),
+ "Bad CIDR prefix shouldn't change set");
+ cork_error_clear();
+ ipset_done(&set);
+@@ -228,9 +228,9 @@ START_TEST(test_ipv4_contains_01)
+
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+- fail_if(ipset_ipv4_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv4_add(&set, &addr),
+ "Element should not be present");
+- fail_unless(ipset_contains_ipv4(&set, &addr),
++ ck_assert_msg(ipset_contains_ipv4(&set, &addr),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -246,9 +246,9 @@ START_TEST(test_ipv4_contains_02)
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+ cork_ip_from_ipv4(&ip, &addr);
+- fail_if(ipset_ipv4_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv4_add(&set, &addr),
+ "Element should not be present");
+- fail_unless(ipset_contains_ip(&set, &ip),
++ ck_assert_msg(ipset_contains_ip(&set, &ip),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -262,9 +262,9 @@ START_TEST(test_ipv4_network_contains_01)
+
+ ipset_init(&set);
+ cork_ipv4_init(&addr, "192.168.1.100");
+- fail_if(ipset_ipv4_add_network(&set, &addr, 24),
++ ck_assert_msg(!ipset_ipv4_add_network(&set, &addr, 24),
+ "Element should not be present");
+- fail_unless(ipset_contains_ipv4(&set, &addr),
++ ck_assert_msg(ipset_contains_ipv4(&set, &addr),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -283,7 +283,7 @@ START_TEST(test_ipv4_equality_1)
+ ipset_init(&set2);
+ ipset_ipv4_add(&set2, &addr);
+
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Expected {x} == {x}");
+
+ ipset_done(&set1);
+@@ -305,7 +305,7 @@ START_TEST(test_ipv4_equality_2)
+ ipset_init(&set2);
+ ipset_ipv4_add_network(&set2, &addr, 24);
+
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Expected {x} == {x}");
+
+ ipset_done(&set1);
+@@ -332,7 +332,7 @@ START_TEST(test_ipv4_equality_3)
+ cork_ipv4_init(&addr, "192.168.2.0");
+ ipset_ipv4_add(&set2, &addr);
+
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Expected {x} == {x}");
+
+ ipset_done(&set1);
+@@ -353,7 +353,7 @@ START_TEST(test_ipv4_inequality_1)
+ ipset_init(&set2);
+ ipset_ipv4_add_network(&set2, &addr, 24);
+
+- fail_unless(!ipset_is_equal(&set1, &set2),
++ ck_assert_msg(!ipset_is_equal(&set1, &set2),
+ "Expected {x} != {x}");
+
+ ipset_done(&set1);
+@@ -375,7 +375,7 @@ START_TEST(test_ipv4_memory_size_1)
+ expected = 33 * sizeof(struct ipset_node);
+ actual = ipset_memory_size(&set);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected set to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+@@ -397,7 +397,7 @@ START_TEST(test_ipv4_memory_size_2)
+ expected = 25 * sizeof(struct ipset_node);
+ actual = ipset_memory_size(&set);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected set to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+@@ -464,9 +464,9 @@ START_TEST(test_ipv6_insert_01)
+
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+- fail_if(ipset_ipv6_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv6_add(&set, &addr),
+ "Element should not be present");
+- fail_unless(ipset_ipv6_add(&set, &addr),
++ ck_assert_msg(ipset_ipv6_add(&set, &addr),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -480,11 +480,11 @@ START_TEST(test_ipv6_remove_01)
+
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+- fail_if(ipset_ipv6_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv6_add(&set, &addr),
+ "Element should not be present");
+- fail_if(ipset_ipv6_remove(&set, &addr),
++ ck_assert_msg(!ipset_ipv6_remove(&set, &addr),
+ "Element should be present");
+- fail_unless(ipset_ipv6_remove(&set, &addr),
++ ck_assert_msg(ipset_ipv6_remove(&set, &addr),
+ "Element should not be present");
+ ipset_done(&set);
+ }
+@@ -498,9 +498,9 @@ START_TEST(test_ipv6_insert_network_01)
+
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+- fail_if(ipset_ipv6_add_network(&set, &addr, 32),
++ ck_assert_msg(!ipset_ipv6_add_network(&set, &addr, 32),
+ "Element should not be present");
+- fail_unless(ipset_ipv6_add_network(&set, &addr, 32),
++ ck_assert_msg(ipset_ipv6_add_network(&set, &addr, 32),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -514,11 +514,11 @@ START_TEST(test_ipv6_remove_network_01)
+
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+- fail_if(ipset_ipv6_add_network(&set, &addr, 32),
++ ck_assert_msg(!ipset_ipv6_add_network(&set, &addr, 32),
+ "ELement should not be present");
+- fail_if(ipset_ipv6_remove_network(&set, &addr, 32),
++ ck_assert_msg(!ipset_ipv6_remove_network(&set, &addr, 32),
+ "Element should be present");
+- fail_unless(ipset_ipv6_remove_network(&set, &addr, 32),
++ ck_assert_msg(ipset_ipv6_remove_network(&set, &addr, 32),
+ "Element should not be present");
+ ipset_done(&set);
+ }
+@@ -533,7 +533,7 @@ START_TEST(test_ipv6_bad_cidr_prefix_01)
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ ipset_ipv6_add_network(&set, &addr, 129);
+- fail_unless(ipset_is_empty(&set),
++ ck_assert_msg(ipset_is_empty(&set),
+ "Bad CIDR prefix shouldn't change set");
+ cork_error_clear();
+ ipset_done(&set);
+@@ -548,9 +548,9 @@ START_TEST(test_ipv6_contains_01)
+
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+- fail_if(ipset_ipv6_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv6_add(&set, &addr),
+ "Element should not be present");
+- fail_unless(ipset_contains_ipv6(&set, &addr),
++ ck_assert_msg(ipset_contains_ipv6(&set, &addr),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -566,9 +566,9 @@ START_TEST(test_ipv6_contains_02)
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+ cork_ip_from_ipv6(&ip, &addr);
+- fail_if(ipset_ipv6_add(&set, &addr),
++ ck_assert_msg(!ipset_ipv6_add(&set, &addr),
+ "Element should not be present");
+- fail_unless(ipset_contains_ip(&set, &ip),
++ ck_assert_msg(ipset_contains_ip(&set, &ip),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -582,9 +582,9 @@ START_TEST(test_ipv6_network_contains_01)
+
+ ipset_init(&set);
+ cork_ipv6_init(&addr, "fe80::21e:c2ff:fe9f:e8e1");
+- fail_if(ipset_ipv6_add_network(&set, &addr, 32),
++ ck_assert_msg(!ipset_ipv6_add_network(&set, &addr, 32),
+ "Element should not be present");
+- fail_unless(ipset_contains_ipv6(&set, &addr),
++ ck_assert_msg(ipset_contains_ipv6(&set, &addr),
+ "Element should be present");
+ ipset_done(&set);
+ }
+@@ -603,7 +603,7 @@ START_TEST(test_ipv6_equality_1)
+ ipset_init(&set2);
+ ipset_ipv6_add(&set2, &addr);
+
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Expected {x} == {x}");
+
+ ipset_done(&set1);
+@@ -625,7 +625,7 @@ START_TEST(test_ipv6_equality_2)
+ ipset_init(&set2);
+ ipset_ipv6_add_network(&set2, &addr, 64);
+
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Expected {x} == {x}");
+
+ ipset_done(&set1);
+@@ -652,7 +652,7 @@ START_TEST(test_ipv6_equality_3)
+ cork_ipv6_init(&addr, "fe80:1::");
+ ipset_ipv6_add(&set2, &addr);
+
+- fail_unless(ipset_is_equal(&set1, &set2),
++ ck_assert_msg(ipset_is_equal(&set1, &set2),
+ "Expected {x} == {x}");
+
+ ipset_done(&set1);
+@@ -673,7 +673,7 @@ START_TEST(test_ipv6_inequality_1)
+ ipset_init(&set2);
+ ipset_ipv6_add_network(&set2, &addr, 32);
+
+- fail_unless(!ipset_is_equal(&set1, &set2),
++ ck_assert_msg(!ipset_is_equal(&set1, &set2),
+ "Expected {x} != {x}");
+
+ ipset_done(&set1);
+@@ -695,7 +695,7 @@ START_TEST(test_ipv6_memory_size_1)
+ expected = 129 * sizeof(struct ipset_node);
+ actual = ipset_memory_size(&set);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected set to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+@@ -717,7 +717,7 @@ START_TEST(test_ipv6_memory_size_2)
+ expected = 25 * sizeof(struct ipset_node);
+ actual = ipset_memory_size(&set);
+
+- fail_unless(expected == actual,
++ ck_assert_msg(expected == actual,
+ "Expected set to be %zu bytes, got %zu bytes",
+ expected, actual);
+
+diff --git a/tests/test-iterator.c b/tests/test-iterator.c
+index c1aea7f..77240a3 100644
+--- a/tests/test-iterator.c
++++ b/tests/test-iterator.c
+@@ -29,9 +29,9 @@ START_TEST(test_iterate_empty)
+ struct ip_set set;
+ ipset_init(&set);
+ struct ipset_iterator *it = ipset_iterate(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should be empty");
+ ipset_iterator_free(it);
+ ipset_done(&set);
+@@ -47,22 +47,22 @@ START_TEST(test_ipv4_iterate_01)
+ struct cork_ip ip1;
+ cork_ip_init(&ip1, "192.168.0.1");
+
+- fail_if(ipset_ip_add(&set, &ip1),
++ ck_assert_msg(!ipset_ip_add(&set, &ip1),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == IPV4_BIT_SIZE,
++ ck_assert_msg(it->cidr_prefix == IPV4_BIT_SIZE,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 element");
+
+ ipset_iterator_free(it);
+@@ -80,22 +80,22 @@ START_TEST(test_ipv4_iterate_network_01)
+ struct cork_ip ip1;
+ cork_ip_init(&ip1, "192.168.0.0");
+
+- fail_if(ipset_ip_add_network(&set, &ip1, 31),
++ ck_assert_msg(!ipset_ip_add_network(&set, &ip1, 31),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 31,
++ ck_assert_msg(it->cidr_prefix == 31,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 elements");
+
+ ipset_iterator_free(it);
+@@ -113,22 +113,22 @@ START_TEST(test_ipv4_iterate_network_02)
+ struct cork_ip ip1;
+ cork_ip_init(&ip1, "192.168.0.0");
+
+- fail_if(ipset_ip_add_network(&set, &ip1, 16),
++ ck_assert_msg(!ipset_ip_add_network(&set, &ip1, 16),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 16,
++ ck_assert_msg(it->cidr_prefix == 16,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 elements");
+
+ ipset_iterator_free(it);
+@@ -154,25 +154,25 @@ START_TEST(test_ipv4_iterate_network_03)
+ struct cork_ip ip2;
+ cork_ip_init(&ip2, "192.168.0.1");
+
+- fail_if(ipset_ip_add(&set, &ip1),
++ ck_assert_msg(!ipset_ip_add(&set, &ip1),
+ "Element should not be present");
+
+- fail_if(ipset_ip_add(&set, &ip2),
++ ck_assert_msg(!ipset_ip_add(&set, &ip2),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 31,
++ ck_assert_msg(it->cidr_prefix == 31,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 elements");
+
+ ipset_iterator_free(it);
+@@ -190,22 +190,22 @@ START_TEST(test_ipv6_iterate_01)
+ struct cork_ip ip1;
+ cork_ip_init(&ip1, "fe80::1");
+
+- fail_if(ipset_ip_add(&set, &ip1),
++ ck_assert_msg(!ipset_ip_add(&set, &ip1),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == IPV6_BIT_SIZE,
++ ck_assert_msg(it->cidr_prefix == IPV6_BIT_SIZE,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 element");
+
+ ipset_iterator_free(it);
+@@ -223,22 +223,22 @@ START_TEST(test_ipv6_iterate_network_01)
+ struct cork_ip ip1;
+ cork_ip_init(&ip1, "fe80::");
+
+- fail_if(ipset_ip_add_network(&set, &ip1, 127),
++ ck_assert_msg(!ipset_ip_add_network(&set, &ip1, 127),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 127,
++ ck_assert_msg(it->cidr_prefix == 127,
+ "IP CIDR prefix 0 doesn't match (%u)", it->cidr_prefix);
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 element");
+
+ ipset_iterator_free(it);
+@@ -256,22 +256,22 @@ START_TEST(test_ipv6_iterate_network_02)
+ struct cork_ip ip1;
+ cork_ip_init(&ip1, "fe80::");
+
+- fail_if(ipset_ip_add_network(&set, &ip1, 16),
++ ck_assert_msg(!ipset_ip_add_network(&set, &ip1, 16),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 16,
++ ck_assert_msg(it->cidr_prefix == 16,
+ "IP CIDR prefix 0 doesn't match (%u)", it->cidr_prefix);
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 element");
+
+ ipset_iterator_free(it);
+@@ -297,25 +297,25 @@ START_TEST(test_ipv6_iterate_network_03)
+ struct cork_ip ip2;
+ cork_ip_init(&ip2, "fe80::1");
+
+- fail_if(ipset_ip_add(&set, &ip1),
++ ck_assert_msg(!ipset_ip_add(&set, &ip1),
+ "Element should not be present");
+
+- fail_if(ipset_ip_add(&set, &ip2),
++ ck_assert_msg(!ipset_ip_add(&set, &ip2),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 127,
++ ck_assert_msg(it->cidr_prefix == 127,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 1 elements");
+
+ ipset_iterator_free(it);
+@@ -337,26 +337,26 @@ START_TEST(test_generic_ip_iterate_01)
+ cork_ip_init(&ip2, "::");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, false);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 0,
++ ck_assert_msg(it->cidr_prefix == 0,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set should have more than 1 element");
+- fail_unless(cork_ip_equal(&ip2, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip2, &it->addr),
+ "IP address 1 doesn't match");
+- fail_unless(it->cidr_prefix == 0,
++ ck_assert_msg(it->cidr_prefix == 0,
+ "IP CIDR prefix 1 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 2 elements");
+
+ ipset_iterator_free(it);
+@@ -385,32 +385,32 @@ START_TEST(test_generic_ip_iterate_02)
+ struct cork_ip ip2;
+ cork_ip_init(&ip2, "c0a8:0001::");
+
+- fail_if(ipset_ip_add(&set, &ip1),
++ ck_assert_msg(!ipset_ip_add(&set, &ip1),
+ "Element should not be present");
+- fail_if(ipset_ip_add_network(&set, &ip2, 32),
++ ck_assert_msg(!ipset_ip_add_network(&set, &ip2, 32),
+ "Element should not be present");
+
+ struct ipset_iterator *it = ipset_iterate_networks(&set, true);
+- fail_if(it == NULL,
++ ck_assert_msg(!(it == NULL),
+ "IP set iterator is NULL");
+
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set shouldn't be empty");
+- fail_unless(cork_ip_equal(&ip1, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip1, &it->addr),
+ "IP address 0 doesn't match");
+- fail_unless(it->cidr_prefix == 32,
++ ck_assert_msg(it->cidr_prefix == 32,
+ "IP CIDR prefix 0 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_if(it->finished,
++ ck_assert_msg(!(it->finished),
+ "IP set should have more than 1 element");
+- fail_unless(cork_ip_equal(&ip2, &it->addr),
++ ck_assert_msg(cork_ip_equal(&ip2, &it->addr),
+ "IP address 1 doesn't match");
+- fail_unless(it->cidr_prefix == 32,
++ ck_assert_msg(it->cidr_prefix == 32,
+ "IP CIDR prefix 1 doesn't match");
+
+ ipset_iterator_advance(it);
+- fail_unless(it->finished,
++ ck_assert_msg(it->finished,
+ "IP set should contain 2 elements");
+
+ ipset_iterator_free(it);
+--
+2.36.1
+
diff --git a/testing/libcotp/APKBUILD b/testing/libcotp/APKBUILD
new file mode 100644
index 00000000000..a0a5f8fcb63
--- /dev/null
+++ b/testing/libcotp/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=libcotp
+pkgver=2.0.2
+pkgrel=0
+pkgdesc="Library for generating TOTP and HOTP"
+url="https://github.com/paolostivanin/libcotp"
+license="Apache-2.0"
+arch="all"
+makedepends="cmake libgcrypt-dev samurai"
+subpackages="$pkgname-dev"
+source="https://github.com/paolostivanin/libcotp/archive/v$pkgver/libcotp-$pkgver.tar.gz"
+options="!check" # needs criterion
+
+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="
+c630ba7787aef66cdd8bf5dad8b439165795a6c875a850b6ffc4462a1f414c4d81a7db784831f68ec7fce6c9f393fd857cb84afb0c63527a5b4be85ca14896d9 libcotp-2.0.2.tar.gz
+"
diff --git a/testing/libctl/APKBUILD b/testing/libctl/APKBUILD
index 0144859799c..94416222c5b 100644
--- a/testing/libctl/APKBUILD
+++ b/testing/libctl/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Isaac Dunham <ibid.ag@gmail.com>
# Maintainer:
pkgname=libctl
-pkgver=4.5.0
-pkgrel=0
+pkgver=4.5.1
+pkgrel=1
pkgdesc="Guile-based library implementing flexible control files for scientific simulations"
-url="http://ab-initio.mit.edu/wiki/index.php/Libctl"
+url="https://libctl.readthedocs.io/"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
depends_dev="guile-dev gmp-dev"
makedepends="$depends_dev gc-dev gfortran autoconf automake libtool"
subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/stevengj/libctl/archive/v$pkgver.tar.gz"
+source="https://github.com/NanoComp/libctl/archive/v$pkgver/libctl-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -34,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="afa25e8dbc4b4652e45e7235937a8fe93f75e5e8f812afcca047c165f08ee4077e3cb215579c2f8b0716556ba4216f23ed2f2c69ad954083dde02c1261e02771 libctl-4.5.0.tar.gz"
+sha512sums="
+e78d11196e29f6d3a7d423f4e6fc03230a2d7e40014c9d7a0ad006c81941c272075d6598686b60b0ef9f3be7c013190aef67c331230d1b0c40de3dafca71f4af libctl-4.5.1.tar.gz
+"
diff --git a/testing/libcyaml/APKBUILD b/testing/libcyaml/APKBUILD
new file mode 100644
index 00000000000..f0458de0652
--- /dev/null
+++ b/testing/libcyaml/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=libcyaml
+pkgver=1.4.1
+pkgrel=2
+pkgdesc="C library for reading and writing YAML"
+url="https://github.com/tlsa/libcyaml"
+arch="all"
+license="ISC"
+makedepends="yaml-dev"
+subpackages="$pkgname-static $pkgname-doc $pkgname-dev"
+source="https://github.com/tlsa/libcyaml/archive/v$pkgver/libcyaml-v$pkgver.tar.gz"
+
+build() {
+ make VARIANT=release
+}
+
+check() {
+ make test
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -Dm644 docs/guide.md -t "$pkgdir"/usr/share/doc/"$pkgname"/
+ install -Dm644 examples/numerical/* -t "$pkgdir"/usr/share/doc/"$pkgname"/examples/numerical/
+ install -Dm644 examples/planner/* -t "$pkgdir"/usr/share/doc/"$pkgname"/examples/planner/
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/"$pkgname"/
+}
+
+sha512sums="
+ecbb8f9e7091027fe288b3a2c8c995cdea83b5c7fe208a87db3a8e1b72b7201c42adfb1b9bc6628d478b66be9d1f7c8dd134358ce43fa6d6cc6c9d20f6452a36 libcyaml-v1.4.1.tar.gz
+"
diff --git a/testing/libcypher-parser/APKBUILD b/testing/libcypher-parser/APKBUILD
deleted file mode 100644
index d2b02dd18e5..00000000000
--- a/testing/libcypher-parser/APKBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Contributor: Chris Leishman <chris@leishman.org>
-# Maintainer: Chris Leishman <chris@leishman.org>
-pkgname=libcypher-parser
-pkgver=0.6.2
-pkgrel=0
-pkgdesc="Parsing library for the Cypher query language"
-url="https://github.com/cleishm/libcypher-parser"
-arch="all"
-license="Apache-2.0"
-makedepends="$depends_dev automake autoconf libtool check-dev doxygen pkgconfig"
-subpackages="$pkgname-dev $pkgname-doc::noarch cypher-lint cypher-lint-doc::noarch"
-source="https://github.com/cleishm/libcypher-parser/releases/download/v$pkgver/libcypher-parser-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --prefix=/usr
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/doc/libcypher-parser
-}
-
-doc() {
- depends="$depends_doc"
- pkgdesc="$pkgdesc (documentation)"
- install_if="docs $pkgname=$pkgver-r$pkgrel"
-
- if [ "$subpkgname" = "libcypher-parser-doc" ]; then
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/doc "$subpkgdir"/usr/share/
- elif [ "$subpkgname" = "cypher-lint-doc" ]; then
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/man "$subpkgdir"/usr/share/
- find "$subpkgdir"/usr/share/man/ -type f | xargs gzip -9
- else
- die "Unknown doc package $pkgname"
- fi
-
- # remove if empty, ignore error (not empty)
- rmdir "$pkgdir"/usr/share "$pkgdir"/usr || true 2>/dev/null
- return 0
-}
-
-lint() {
- pkgdesc="Lint tool for the Cypher query language"
-
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
-
- # remove if empty, ignore error (not empty)
- rmdir "$pkgdir"/usr/bin "$pkgdir"/usr || true 2>/dev/null
- return 0
-}
-
-sha512sums="71d1fd966c2d7e5637be1b59a17483cf8a782aa75582f4dcc64e0ea7b3f50c80cbf92cf07df2c601aeaa1186910a0e3b529c58da1318a34357f8c860f8e97361 libcypher-parser-0.6.2.tar.gz"
diff --git a/testing/libdatrie/APKBUILD b/testing/libdatrie/APKBUILD
new file mode 100644
index 00000000000..2c1221fed88
--- /dev/null
+++ b/testing/libdatrie/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=libdatrie
+pkgver=0.2.13
+pkgrel=0
+pkgdesc="library for double-array trie"
+url="https://github.com/tlwg/libdatrie"
+arch="all"
+license="LGPL-2.1-or-later"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+source="https://github.com/tlwg/libdatrie/releases/download/v$pkgver/libdatrie-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ # add -j1 to fix error:
+ # make[3]: Entering directory 'src/libdatrie-0.2.13/tools'
+ # rm -f pkg/libdatrie/usr/bin/trietool-0.2
+ # ln -s trietool pkg/libdatrie/usr/bin/trietool-0.2
+ # ln: pkg/libdatrie/usr/bin/trietool-0.2: No such file or directory
+ # make[3]: *** [Makefile:654: install-data-hook] Error 1
+ make DESTDIR="$pkgdir" -j1 install
+}
+
+sha512sums="
+db3c879d825ead5871c12ef3a06bb093cb1708a6e7e20775eaf82356af9dd6ad54c6b5cabbe1773f2494d3dfa2426528fdd49441038b6294b70ccb1a3d90099a libdatrie-0.2.13.tar.xz
+"
diff --git a/testing/libdng/APKBUILD b/testing/libdng/APKBUILD
new file mode 100644
index 00000000000..e1f0abd732e
--- /dev/null
+++ b/testing/libdng/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Martijn Braam <martijn@brixit.nl>
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=libdng
+pkgver=0.1.1
+pkgrel=0
+pkgdesc="Interface library between libtiff and the world to make sure the output is valid DNG"
+url="https://gitlab.com/megapixels-org/libdng"
+arch="all !s390x" # Libtiff does weird things on s390x
+license="MIT"
+source="https://gitlab.com/megapixels-org/libdng/-/archive/$pkgver/libdng-$pkgver.tar.gz"
+makedepends="cmake linux-headers meson tiff-dev scdoc"
+subpackages="$pkgname-doc $pkgname-dev $pkgname-utils"
+
+build() {
+ abuild-meson . output
+ meson compile ${JOBS:+-j ${JOBS}} -C output
+}
+
+check() {
+ meson test --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+utils() {
+ pkgdesc="DNG manipulation utlities using libdng"
+ amove usr/bin
+}
+
+
+sha512sums="
+e8f8f0d78ff89fc50e2fde1787d528946c171b43b1056eecd645904f93ac57e52a516361667628a1457783169703649a7aebd496c054cd38751f9de21e84be1d libdng-0.1.1.tar.gz
+"
diff --git a/testing/libdparse/389.patch b/testing/libdparse/389.patch
deleted file mode 100644
index 027d2a8282a..00000000000
--- a/testing/libdparse/389.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 052470ca738d5c683ab5511e47bdf335bf754db4 Mon Sep 17 00:00:00 2001
-From: Jan Jurzitza <gh@webfreak.org>
-Date: Fri, 17 Apr 2020 08:47:24 +0200
-Subject: [PATCH] Fixed unittest on x86 (fix #388)
-
----
- src/dparse/lexer.d | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/dparse/lexer.d b/src/dparse/lexer.d
-index 2661543..22ab0c1 100644
---- a/src/dparse/lexer.d
-+++ b/src/dparse/lexer.d
-@@ -1891,7 +1891,8 @@ unittest
- {
- assert(optimalBucketCount(1) == 2);
- assert(optimalBucketCount(9000 * 32) == 16384);
-- assert(optimalBucketCount(100_000_000_000UL) == 1 << 30);
-+ static if (size_t.sizeof == ulong.sizeof)
-+ assert(optimalBucketCount(100_000_000_000UL) == 1 << 30);
- }
-
- /**
diff --git a/testing/libdparse/APKBUILD b/testing/libdparse/APKBUILD
deleted file mode 100644
index aa7dd8343a1..00000000000
--- a/testing/libdparse/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=libdparse
-pkgver=0.14.0
-pkgrel=0
-pkgdesc="Library for lexing and parsing D source code"
-url="https://libdparse.dlang.io/"
-arch="x86 x86_64 aarch64" # ldc
-license="BSL-1.0"
-makedepends="meson ldc ldc-runtime stdx-allocator-dev"
-subpackages="$pkgname-dev"
-source="https://github.com/dlang-community/libdparse/archive/v$pkgver/libdparse-$pkgver.tar.gz
- 389.patch"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="c4c4ba232cf462ccfb43147284af55d587be58136072a1ac9d24265800e8418a72e5927607206b909f767455af1fd82da57d54183df4342a95cad0b40899c383 libdparse-0.14.0.tar.gz
-5e8fe47e04f52dbdbbcd9be525b7e67c00e78259342be617ec4b2bd8dc32b5a02fba6d66075babe2b1c0efdcc7b726911389419c7c4f427d76d2a2a0c1e998aa 389.patch"
diff --git a/testing/libdsme/APKBUILD b/testing/libdsme/APKBUILD
deleted file mode 100644
index a3e1ea07264..00000000000
--- a/testing/libdsme/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libdsme
-pkgver=0.66.2
-pkgrel=0
-pkgdesc="Libraries for programs that communicate with the Device State Management Entity"
-arch="all"
-url="https://git.sailfishos.org/mer-core/libdsme"
-license="LGPL-2.1-or-later"
-depends="dbus glib"
-depends_dev="glib-dev check-dev"
-makedepends="$depends_dev coreutils"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libdsme/-/archive/$pkgver/libdsme-$pkgver.tar.gz
- fix-musl-incompatibility.patch
- "
-options="!check" # No suitable tests
-
-build() {
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- # Create missing symlinks
- ldconfig "$pkgdir"/usr/lib
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-sha512sums="4f34b3e974cd5e8dcb552fedd90ed967769dbbaef106a41f3a6b5b83c9b200a9ea4f2263f966a66a0807c5183cdbf416e60a8af92d8ebf75a656ebb34283454a libdsme-0.66.2.tar.gz
-3b6e2f50fa25e30ca4753ecf3bb1a1769d2afe97f25fffc907d1941cd109c39366a95379621e46053f87f7daa0b443afd91fe9dbf80df7b099ffddacbb367404 fix-musl-incompatibility.patch"
diff --git a/testing/libdsme/fix-musl-incompatibility.patch b/testing/libdsme/fix-musl-incompatibility.patch
deleted file mode 100644
index 69f4b291493..00000000000
--- a/testing/libdsme/fix-musl-incompatibility.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-Upstream merge request: https://git.sailfishos.org/mer-core/libdsme/merge_requests/8
-
-
-From 33442f0a318af4904164262bb2acc4cf66731578 Mon Sep 17 00:00:00 2001
-From: Bart Ribbers <bribbers@disroot.org>
-Date: Tue, 14 Apr 2020 15:35:06 +0200
-Subject: [PATCH] Replace u_int*_t usages for the enwer uint*_t
-
----
- include/dsme/messages.h | 15 ++++++++-------
- include/dsme/processwd.h | 2 +-
- message.c | 8 ++++----
- tests/ut_libdsme.c | 2 +-
- 4 files changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/include/dsme/messages.h b/include/dsme/messages.h
-index 3c4eb30..57e12ad 100644
---- a/include/dsme/messages.h
-+++ b/include/dsme/messages.h
-@@ -29,6 +29,7 @@
-
- #include <stddef.h>
- #include <sys/types.h>
-+#include <stdint.h>
-
- #ifdef __cplusplus
- extern "C" {
-@@ -88,9 +89,9 @@ extern "C" {
- */
-
- #define DSMEMSG_PRIVATE_FIELDS \
-- u_int32_t line_size_; \
-- u_int32_t size_; \
-- u_int32_t type_;
-+ uint32_t line_size_; \
-+ uint32_t size_; \
-+ uint32_t type_;
-
- /**
- Generic message type
-@@ -107,7 +108,7 @@ typedef struct dsmemsg_generic_t {
- */
- typedef struct {
- DSMEMSG_PRIVATE_FIELDS
-- u_int8_t reason;
-+ uint8_t reason;
- } DSM_MSGTYPE_CLOSE;
-
- /**
-@@ -169,7 +170,7 @@ enum {
- * @param size message body size
- * @param extra space to reserve for extra data
- */
--void *dsmemsg_new(u_int32_t id, size_t size, size_t extra);
-+void *dsmemsg_new(uint32_t id, size_t size, size_t extra);
-
- /** Get dsme message type identifier
- *
-@@ -177,7 +178,7 @@ void *dsmemsg_new(u_int32_t id, size_t size, size_t extra);
- *
- * @return type identifier
- */
--u_int32_t dsmemsg_id(const dsmemsg_generic_t *msg);
-+uint32_t dsmemsg_id(const dsmemsg_generic_t *msg);
-
- /** Get human readable name of dsme message type
- *
-@@ -242,7 +243,7 @@ const void *dsmemsg_extra_data(const dsmemsg_generic_t *msg);
- *
- * @sa dsmemsg_name()
- */
--const char * dsmemsg_id_name(u_int32_t id);
-+const char * dsmemsg_id_name(uint32_t id);
-
- #ifdef __cplusplus
- }
-diff --git a/include/dsme/processwd.h b/include/dsme/processwd.h
-index ed77cc0..afb578f 100644
---- a/include/dsme/processwd.h
-+++ b/include/dsme/processwd.h
-@@ -65,7 +65,7 @@ typedef dsmemsg_generic_t DSM_MSGTYPE_PROCESSWD_MANUAL_PING;
-
- typedef struct {
- DSMEMSG_PRIVATE_FIELDS
-- u_int32_t timeout;
-+ uint32_t timeout;
- } DSM_MSGTYPE_PROCESSWD_SET_INTERVAL;
-
- #endif
-diff --git a/message.c b/message.c
-index f8d91bb..5ff5585 100644
---- a/message.c
-+++ b/message.c
-@@ -38,7 +38,7 @@
- static const struct
- {
- const char *name;
-- u_int32_t id;
-+ uint32_t id;
- } dsmemsg_id_lut[] =
- {
- { "CLOSE", 0x00000001 },
-@@ -90,7 +90,7 @@ static const struct
- };
-
- const char *
--dsmemsg_id_name(u_int32_t id)
-+dsmemsg_id_name(uint32_t id)
- {
- for( size_t i = 0; dsmemsg_id_lut[i].name; ++i ) {
- if( dsmemsg_id_lut[i].id == id )
-@@ -104,7 +104,7 @@ dsmemsg_id_name(u_int32_t id)
- }
-
- void *
--dsmemsg_new(u_int32_t id, size_t size, size_t extra)
-+dsmemsg_new(uint32_t id, size_t size, size_t extra)
- {
- dsmemsg_generic_t *msg = calloc(1, size + extra);
- if (msg == NULL) {
-@@ -119,7 +119,7 @@ dsmemsg_new(u_int32_t id, size_t size, size_t extra)
- return msg;
- }
-
--u_int32_t dsmemsg_id(const dsmemsg_generic_t *msg)
-+uint32_t dsmemsg_id(const dsmemsg_generic_t *msg)
- {
- return msg->type_;
- }
-diff --git a/tests/ut_libdsme.c b/tests/ut_libdsme.c
-index 4afa436..7ac6805 100644
---- a/tests/ut_libdsme.c
-+++ b/tests/ut_libdsme.c
-@@ -127,7 +127,7 @@ static int mock(void)
-
- START_TEST(test_message)
- {
-- const u_int32_t id = 42;
-+ const uint32_t id = 42;
-
- dsmemsg_generic_t* msg = dsmemsg_new(id, sizeof(dsmemsg_generic_t), sizeof(int));
-
---
-2.23.0
-
diff --git a/testing/libeantic/APKBUILD b/testing/libeantic/APKBUILD
new file mode 100644
index 00000000000..9642615d737
--- /dev/null
+++ b/testing/libeantic/APKBUILD
@@ -0,0 +1,73 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=libeantic
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="Embedded algebraic number fields"
+url="https://github.com/flatsurf/e-antic"
+arch="all !s390x" # flint-dev
+license="LGPL-3.0-or-later"
+makedepends="
+ autoconf
+ automake
+ boost-dev
+ flint-dev
+ gmp-dev
+ libantic-dev
+ libarb-dev
+ libtool
+ mpfr-dev
+ py3-setuptools
+ "
+subpackages="$pkgname-dev"
+# todo
+# subpackages="$pkgname-dev py3-pyeantic:py3"
+source="e-antic-$pkgver.tar.gz::https://github.com/flatsurf/e-antic/releases/download/$pkgver/e-antic-$pkgver.tar.gz
+ t-init-test.patch
+ "
+builddir="$srcdir/e-antic-$pkgver"
+
+build() {
+ # better math opts
+ export CFLAGS="$CFLAGS -O3 -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -O3 -flto=auto"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --without-benchmark \
+ --without-byexample \
+ --without-pytest \
+ --without-doc \
+ --disable-dependency-tracking \
+ --disable-static
+
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ # requires py3-cppyy
+ rm -r "$pkgdir"/usr/lib/python3*
+}
+
+py3() {
+ pkgdesc="$pkgdesc (python module)"
+ depends="python3 py3-cppyy"
+
+ amove usr/lib/python*
+}
+
+sha512sums="
+2c13e8498d3fa21265749f3cc9448737ef0c55cc4f2bf71834e9a6c6816280782cd96e96f4cb33d5b4c0c14208f9a9004bdf21fb4b70dd39425cce6efbe111ee e-antic-2.0.2.tar.gz
+ecb0c89612c1ab2c7d2c8a2feaacf94958994f34e6ce664dd6c9e054d0b244a0f6e9e510149d98b7603b7003e0532f81d43d1fb17dcb8106e540d0c0b060ef63 t-init-test.patch
+"
diff --git a/testing/libeantic/t-init-test.patch b/testing/libeantic/t-init-test.patch
new file mode 100644
index 00000000000..41974ab6463
--- /dev/null
+++ b/testing/libeantic/t-init-test.patch
@@ -0,0 +1,20 @@
+diff --git a/libeantic/test/Makefile.am b/libeantic/test/Makefile.am
+index ce01fb7..759f7c1 100644
+--- a/libeantic/test/Makefile.am
++++ b/libeantic/test/Makefile.am
+@@ -25,7 +25,6 @@ check_PROGRAMS = \
+ fmpz_poly_extra/t-scale_0_1_fmpq \
+ fmpz_poly_extra/t-set_str_pretty \
+ fmpz_poly_extra/t-squarefree_part \
+- renf/t-init \
+ renf/t-init_nth_root_fmpq \
+ renf/t-randtest \
+ renf/t-real_embeddings \
+@@ -83,7 +82,6 @@ fmpz_poly_extra_t_randtest_irreducible_SOURCES = fmpz_poly_extra/t-randtest_irre
+ fmpz_poly_extra_t_scale_0_1_fmpq_SOURCES = fmpz_poly_extra/t-scale_0_1_fmpq.c
+ fmpz_poly_extra_t_set_str_pretty_SOURCES = fmpz_poly_extra/t-set_str_pretty.c
+ fmpz_poly_extra_t_squarefree_part_SOURCES = fmpz_poly_extra/t-squarefree_part.c
+-renf_t_init_SOURCES = renf/t-init.c
+ renf_t_init_nth_root_fmpq_SOURCES = renf/t-init_nth_root_fmpq.c
+ renf_t_randtest_SOURCES = renf/t-randtest.c
+ renf_t_real_embeddings_SOURCES = renf/t-real_embeddings.c
diff --git a/testing/libeatmydata/18.patch b/testing/libeatmydata/18.patch
deleted file mode 100644
index 9858ac40ad9..00000000000
--- a/testing/libeatmydata/18.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Upstream: https://github.com/stewartsmith/libeatmydata/pull/18
-Reason: Libeatmydata redefines open and open64 so it can make those a NO_OP
-for tests. Musl also defines these in fnctl.h, so we have to undefine them
-to not get conflicting definitions
-diff --git a/libeatmydata/libeatmydata.c b/libeatmydata/libeatmydata.c
-index 8fe1b6a..95d940b 100644
---- a/libeatmydata/libeatmydata.c
-+++ b/libeatmydata/libeatmydata.c
-@@ -131,6 +131,8 @@ void LIBEATMYDATA_API sync(void)
- (*libc_sync)();
- }
-
-+#undef open
-+
- int LIBEATMYDATA_API open(const char* pathname, int flags, ...)
- {
- va_list ap;
-@@ -157,6 +159,8 @@ int LIBEATMYDATA_API open(const char* pathname, int flags, ...)
- return (*libc_open)(pathname,flags,mode);
- }
-
-+#undef open64
-+
- #ifndef __USE_FILE_OFFSET64
- int LIBEATMYDATA_API open64(const char* pathname, int flags, ...)
- {
diff --git a/testing/libeatmydata/APKBUILD b/testing/libeatmydata/APKBUILD
deleted file mode 100644
index a102fa72b3f..00000000000
--- a/testing/libeatmydata/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=libeatmydata
-pkgver=105
-pkgrel=0
-pkgdesc="An LD_PRELOAD library 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"
-makedepends="autoconf automake libtool"
-checkdepends="strace"
-source="https://github.com/stewartsmith/libeatmydata/archive/libeatmydata-$pkgver/libeatmydata-$pkgver.tar.gz
- 18.patch"
-builddir="$srcdir/$pkgname-$pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check-debug
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="225453a12913c08fd91371e3546a256e102438f9a88e7f51726dd5befbcf6c396850c039a38ca3d939558f0369df23d232e24b487564cdf86562645b8b5f92d6 libeatmydata-105.tar.gz
-8fff381b392cf7ee3faf39c41e20d3f152529ec4b2d4ffb503695ff8dce49b86872cbcc56001b2160b617ceb76bb4d1d389939922b1d539413a00fea35904b2a 18.patch"
diff --git a/testing/libecap/APKBUILD b/testing/libecap/APKBUILD
index 409ff225bac..d2ebea40d4e 100644
--- a/testing/libecap/APKBUILD
+++ b/testing/libecap/APKBUILD
@@ -2,14 +2,14 @@
# Maintainer: Roger Newman <roger.newman@riseup.net>
pkgname=libecap
pkgver=1.0.1
-pkgrel=0
+pkgrel=1
pkgdesc="API for implementing ICAP content analysis and adaptation"
options="!check" # No testsuite
url="http://www.e-cap.org/"
arch="all"
license="BSD-2-Clause"
subpackages="$pkgname-static $pkgname-dev"
-source="http://www.measurement-factory.com/tmp/ecap/$pkgname-$pkgver.tar.gz"
+source="https://www.e-cap.org/archive/libecap-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -39,4 +39,6 @@ static() {
mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
}
-sha512sums="0054ad11b3f558d7c623060a69207a1b8e679803cabdf1a2bce4b04335d71c016eec770fc9d2cbf3d0a93502c255cb528305f9f8e6df4e095fcb980667045919 libecap-1.0.1.tar.gz"
+sha512sums="
+0054ad11b3f558d7c623060a69207a1b8e679803cabdf1a2bce4b04335d71c016eec770fc9d2cbf3d0a93502c255cb528305f9f8e6df4e095fcb980667045919 libecap-1.0.1.tar.gz
+"
diff --git a/testing/libemf2svg/APKBUILD b/testing/libemf2svg/APKBUILD
index ed8d8fd8283..ce1ba3017d2 100644
--- a/testing/libemf2svg/APKBUILD
+++ b/testing/libemf2svg/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=libemf2svg
pkgver=1.1.0
-pkgrel=1
+pkgrel=2
pkgdesc="MS EMF (Enhanced Metafile) to SVG conversion library"
url="https://github.com/kakwa/libemf2svg"
arch="all"
diff --git a/testing/liberasurecode/APKBUILD b/testing/liberasurecode/APKBUILD
index 5a457d6eda0..845dc916b24 100644
--- a/testing/liberasurecode/APKBUILD
+++ b/testing/liberasurecode/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ehud Kaldor <ehud@unfairfunction.org>
# Maintainer: Ehud Kaldor <ehud@unfairfunction.org>
pkgname=liberasurecode
-pkgver=1.6.1
-pkgrel=0
+pkgver=1.6.3
+pkgrel=1
pkgdesc="Erasure Code API library written in C with pluggable Erasure Code backends"
url="https://github.com/openstack/liberasurecode"
arch="all"
@@ -36,4 +36,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="7d0fa00b12bc561272573f4425bdecab3c2f0f40914f50adfd471b464232047de70036f4cfbda5f93f843afbfc60ecc0afb40705bb772453c4956565083bb2d0 liberasurecode-1.6.1.tar.gz"
+sha512sums="
+d5daa962324ef19fd195cfa842ec375d9dd5e62e3391b4a1cbf49a850b852b18cfc9be929ab18786d6b839139f6260d5cb4c88a0ba440c06b0e54e04ffb1bee1 liberasurecode-1.6.3.tar.gz
+"
diff --git a/testing/libexosip2/APKBUILD b/testing/libexosip2/APKBUILD
deleted file mode 100644
index 6aa2c02c826..00000000000
--- a/testing/libexosip2/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Maintainer: David Sugar <tychosoft@gmail.com>
-# Contributor: David Sugar <tychosoft@gmail.com>
-pkgname=libexosip2
-pkgver=5.1.1
-pkgrel=0
-pkgdesc="Extended osip2 library"
-url="http://savannah.nongnu.org/projects/exosip"
-arch="all"
-license="GPL-2.0-or-later"
-depends="openssl libosip2 c-ares"
-makedepends="
- autoconf
- automake
- libtool
- pkgconf
- c-ares-dev
- libosip2-dev
- openssl-dev
-"
-options="libtool"
-subpackages="$pkgname-dev"
-source="http://download.savannah.nongnu.org/releases/exosip/libexosip2-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --disable-tools \
- --enable-pthread \
- --with-gnu-ld
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="cec5931484aa1a5e4a0679cc715da163df9429016ad74841a518c52c2bea6d9038a312b252802607d9a836bd2e598e2f3a4a24a9f63b34a0fb8c737f32329b96 libexosip2-5.1.1.tar.gz"
diff --git a/testing/libfishsound/APKBUILD b/testing/libfishsound/APKBUILD
index 76a2a486a21..042ab8462fb 100644
--- a/testing/libfishsound/APKBUILD
+++ b/testing/libfishsound/APKBUILD
@@ -2,34 +2,32 @@
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=libfishsound
pkgver=1.0.0
-pkgrel=0
+pkgrel=1
pkgdesc="Simple programming interface for decoding and encoding audio data using the Xiph.org codecs"
url="https://xiph.org/fishsound/"
arch="all"
-license="BSD"
+license="BSD-3-Clause"
makedepends="libvorbis-dev speex"
subpackages="$pkgname-dev $pkgname-doc"
-source="http://downloads.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://downloads.xiph.org/releases/libfishsound/libfishsound-$pkgver.tar.gz"
prepare() {
default_prepare
+
+ update_config_sub
update_config_guess
}
build() {
- cd "$builddir"
./configure --prefix=/usr
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
}
diff --git a/testing/libfixposix/APKBUILD b/testing/libfixposix/APKBUILD
deleted file mode 100644
index 17dae880119..00000000000
--- a/testing/libfixposix/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-pkgname=libfixposix
-pkgver=0.4.3
-pkgrel=0
-pkgdesc="Thin wrapper over POSIX syscalls"
-url="https://github.com/sionescu/libfixposix"
-arch="all"
-license="BSL-1.0"
-makedepends="autoconf automake libtool"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sionescu/libfixposix/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- autoreconf -f -i
-}
-
-check() {
- make check
-}
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="cd1ef4d51a885a0994475563472f0e9d03b8223a69d2f9b30666c2f7eb8716421434a829e710832ae58607944a09410efc693a51f76cb854ccc7278bf619702a libfixposix-0.4.3.tar.gz"
diff --git a/testing/libfort/APKBUILD b/testing/libfort/APKBUILD
index 3f71fc49bbb..2fcbd93c7dc 100644
--- a/testing/libfort/APKBUILD
+++ b/testing/libfort/APKBUILD
@@ -1,39 +1,37 @@
# Maintainer: Pete Dietl <petedietl@gmail.com>
pkgname=libfort
-pkgver=0.1.5
-pkgrel=1
-pkgdesc="A simple crossplatform library to create formatted text tables."
+pkgver=0.4.2
+pkgrel=0
+pkgdesc="simple crossplatform library to create formatted text tables"
url="https://github.com/seleznevae/libfort"
arch="all"
license="MIT"
makedepends="cmake"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://codeload.github.com/seleznevae/libfort/tar.gz/v$pkgver"
+source="libfort-$pkgver.tar.gz::https://github.com/seleznevae/libfort/archive/v$pkgver.tar.gz"
build() {
- mkdir build && cd build
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
-
- cmake .. \
+ cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS}
- make
+ $CMAKE_CROSSOPTS .
+ cmake --build build
}
check() {
cd build
- make test
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
- cd build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --build build --target install
}
-sha512sums="5dbdc9b61ba9f85fc923f74885be80ac166565c302805ef02ba859ae7614cb113209aa1798b3b27c07e81f99cceb27fcc40abf34a3b4bea2be22cd2a31590cf5 libfort-0.1.5.tar.gz"
+
+sha512sums="
+55d7c82c981ff1a1b3c2b5d495225de7be76ec6513bfe3065292839d7b61d52e409d0ee3b2ddfbccac6253490d480f70d605faa55ec2af3d3374874088c4ccbf libfort-0.4.2.tar.gz
+"
diff --git a/testing/libfossil/APKBUILD b/testing/libfossil/APKBUILD
new file mode 100644
index 00000000000..642210a3dc3
--- /dev/null
+++ b/testing/libfossil/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=libfossil
+pkgver=0.20240211.1220
+_fslhash=8caf0ac36e
+pkgrel=0
+pkgdesc="Unofficial Fossil SCM library"
+url="https://fossil.wanderinghorse.net/r/libfossil"
+arch="all !ppc64le !riscv64 !s390x" # ftbfs
+license="BSD-2-Clause"
+makedepends="bash tcl zlib-dev"
+subpackages="$pkgname-apps $pkgname-dev"
+source="https://fossil.wanderinghorse.net/r/libfossil/tarball/$_fslhash/libfossil-$_fslhash.tar.gz"
+builddir="$srcdir/$pkgname-$_fslhash"
+options="!check" # no tests provided
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --no-c++ \
+ --no-debug \
+ --no-fnc
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dvm644 include/*.h -t "$pkgdir"/usr/include/
+ install -Dvm644 include/fossil-scm/*.h -t "$pkgdir"/usr/include/fossil-scm/
+}
+
+apps() {
+ pkgdesc="$pkgdesc (command-line apps)"
+
+ amove usr/bin
+}
+
+sha512sums="
+61a5d4f358ff786db5ddbfafb545b040813597b9e6fb887135cb2a4f61039eeaa4ba6a7231347e642e6809a1715e4cae331f006e078685fce1ffc26b9701be11 libfossil-8caf0ac36e.tar.gz
+"
diff --git a/testing/libfyaml/APKBUILD b/testing/libfyaml/APKBUILD
new file mode 100644
index 00000000000..d1ac2689ac9
--- /dev/null
+++ b/testing/libfyaml/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Lucas Ramage <ramage.lucas@protonmail.com>
+# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
+pkgname=libfyaml
+pkgver=0.9
+pkgrel=0
+pkgdesc="Fully feature complete YAML parser and emitter"
+url="https://github.com/pantoniou/libfyaml"
+arch="all"
+license="MIT"
+makedepends="bash libtool linux-headers m4"
+checkdepends="check git"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/pantoniou/libfyaml/releases/download/v$pkgver/libfyaml-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+check() {
+ make check
+}
+
+sha512sums="
+95979361ed50a46acc6da698e4750562f6e3e46aa5d050180225d93afb74929981d9c1d1ca3b6a77fe21a1546a68a9e3df17cdfef5f93257ad5d0c7ad03ae2eb libfyaml-0.9.tar.gz
+"
diff --git a/testing/libgdiplus/APKBUILD b/testing/libgdiplus/APKBUILD
deleted file mode 100644
index e61faaa31a0..00000000000
--- a/testing/libgdiplus/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=libgdiplus
-pkgver=6.0.4
-pkgrel=0
-pkgdesc="An Open Source Implementation of the GDI+ API"
-url="https://www.mono-project.com/"
-arch="all"
-license="MIT"
-depends_dev="tiff-dev cairo-dev libexif-dev glib-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://download.mono-project.com/sources/libgdiplus/libgdiplus-$pkgver.tar.gz"
-
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="91784b2a9e1480c5fd70b1918b10ad03a41246c91d89f0a10fbbce67cd72595b7fb8543457cdfd500014b3f9e39347bed1ab68d7e4f9628a3a413caafef30bdc libgdiplus-6.0.4.tar.gz"
diff --git a/testing/libgeotiff/APKBUILD b/testing/libgeotiff/APKBUILD
deleted file mode 100644
index 793b4a963b4..00000000000
--- a/testing/libgeotiff/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=libgeotiff
-pkgver=1.5.1
-pkgrel=5
-pkgdesc="TIFF based interchange format for georeferenced raster imagery."
-url="https://trac.osgeo.org/geotiff"
-arch="all !x86 !armhf !armv7"
-license="Public-Domain"
-makedepends="
- autoconf
- automake
- libtool
- tiff-dev
- proj-dev
- "
-subpackages="
- $pkgname-dev
- $pkgname-doc
- "
-source="http://download.osgeo.org/geotiff/libgeotiff/$pkgname-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-check() {
- # generate an example GeoTIFF
- bin/makegeo
-
- # list-out the GeoTIFF tags and keys associated with the generated GeoTIFF
- bin/listgeo newgeo.tif > metadata.txt
-
- # check if some tags are extracted correctly
- grep "Ellipsoid: 7016/Everest 1830 (1967 Definition) (6377298.56,6356097.55)" metadata.txt
- grep "Projection Linear Units: User-Defined (1.000000m)" metadata.txt
- grep "Upper Left (130d 0' 0.00\"E, 32d 0' 0.00\"N)" metadata.txt
- grep "Lower Left (130d 0' 0.00\"E, 12d 0' 0.00\"N)" metadata.txt
- grep "Upper Right (150d 0' 0.00\"E, 32d 0' 0.00\"N)" metadata.txt
- grep "Lower Right (150d 0' 0.00\"E, 12d 0' 0.00\"N)" metadata.txt
-}
-
-sha512sums="6599ec89dd39d975ba389584778dd084ded628d3304b302e3af25bb7d156cf583c56b52f1c89c253b041df43f99d6893190ee1556398dab1ba044f12ef8b8dc1 libgeotiff-1.5.1.tar.gz"
diff --git a/testing/libgivaro/APKBUILD b/testing/libgivaro/APKBUILD
new file mode 100644
index 00000000000..2a691dc010a
--- /dev/null
+++ b/testing/libgivaro/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libgivaro
+pkgver=4.2.0
+pkgrel=2
+pkgdesc="C++ library for arithmetic and algebraic computations"
+url="https://casys.gricad-pages.univ-grenoble-alpes.fr/givaro"
+arch="all"
+license="CECILL-B"
+makedepends="gmp-dev"
+source="https://github.com/linbox-team/givaro/releases/download/v$pkgver/givaro-$pkgver.tar.gz
+ gcc13.patch
+ "
+subpackages="$pkgname-static $pkgname-dev"
+builddir="$srcdir/givaro-$pkgver"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --program-prefix=
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -r "${pkgdir:?}"/usr/share
+}
+
+sha512sums="
+1a3280563181710d364b77e1efe8c8f52ce3119a08b35f329cfd98136a742431b7e9d102289448d337797f815439682d0cfce1567a5a88d5851b244673a84486 givaro-4.2.0.tar.gz
+6a6c02d78c287d48e10b8a9c5b294867fca1e523f28b55e6ee8596ada014360adbb026eef3282e816532c40a0e803010a870a1f62a990aaeb470507e7f191645 gcc13.patch
+"
diff --git a/testing/libgivaro/gcc13.patch b/testing/libgivaro/gcc13.patch
new file mode 100644
index 00000000000..9541907033f
--- /dev/null
+++ b/testing/libgivaro/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/src/library/poly1/givdegree.h b/src/library/poly1/givdegree.h
+index 3753a42..c34cc2a 100644
+--- a/src/library/poly1/givdegree.h
++++ b/src/library/poly1/givdegree.h
+@@ -19,6 +19,7 @@
+ #ifndef __GIVARO_poly1degree_H
+ #define __GIVARO_poly1degree_H
+
++#include <cstdint>
+ #include <iostream>
+
+ namespace Givaro {
diff --git a/testing/libglacierapp/APKBUILD b/testing/libglacierapp/APKBUILD
deleted file mode 100644
index 2540c4d36b2..00000000000
--- a/testing/libglacierapp/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libglacierapp
-pkgver=0.6
-pkgrel=0
-pkgdesc="Glacier applications wrapper library"
-url="https://github.com/nemomobile-ux/libglacierapp"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative
-license="LGPL-2.0-or-later"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev"
-makedepends="$depends_dev cmake"
-subpackages="$pkgname-dev"
-source="https://github.com/nemomobile-ux/libglacierapp/archive/$pkgver/libglacierapp-$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="6136e5a787704d2a02174d89506e9e81a160149a8f178523c9023acd037b5302e76403205545225dda4c061067ed47593ccbaeaa7bf27a3604d27172ec8fd4bd libglacierapp-0.6.tar.gz"
diff --git a/testing/libglibutil/APKBUILD b/testing/libglibutil/APKBUILD
deleted file mode 100644
index 13b54608bf4..00000000000
--- a/testing/libglibutil/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=libglibutil
-pkgver=1.0.44
-pkgrel=0
-pkgdesc="Library of glib utilities"
-url="https://git.sailfishos.org/mer-core/libglibutil"
-arch="all"
-license="BSD-3-Clause"
-makedepends="glib-dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libglibutil/-/archive/$pkgver/libglibutil-$pkgver.tar.gz"
-options="!check" # test_log.c: error: assignment of read-only variable 'stdout'
-
-build() {
- make KEEP_SYMBOLS=1 release pkgconfig
-}
-
-package() {
- make DESTDIR="$pkgdir" install-dev
-}
-
-sha512sums="1f9124431f50d0e47c0afaba2d470a927cf76580a904f9d7c118ad0017c5e52ea8c7f72cbfd2a268c73737d8ce997c1f4afbfc16534d1fc2bdd1206b28935ba7 libglibutil-1.0.44.tar.gz"
diff --git a/testing/libgnomecanvas/APKBUILD b/testing/libgnomecanvas/APKBUILD
deleted file mode 100644
index 1dab65657fa..00000000000
--- a/testing/libgnomecanvas/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=libgnomecanvas
-pkgver=2.30.3
-pkgrel=1
-pkgdesc="GNOME Canvas library"
-url="https://www.gnome.org/"
-arch="all"
-license="GPL-2.0"
-makedepends="intltool libart-lgpl-dev glib-dev pango-dev gtk+2.0-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://download.gnome.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2"
-builddir="$srcdir/"$pkgname-$pkgver
-
-prepare() {
- update_config_guess
- default_prepare
-}
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b5bfa2133f5172abd5228d467db4d980dd4ac125cdbf55dcc1d5055dc3330861320c12cccb52ea63ba7f69824504c9d25781cd78001dc7a92b11c6f7e0c550de libgnomecanvas-2.30.3.tar.bz2"
diff --git a/testing/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch b/testing/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch
deleted file mode 100644
index 727f18b3702..00000000000
--- a/testing/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 8dc5015ae036b219c4c9579a156886aa3a722aa5 Mon Sep 17 00:00:00 2001
-From: phantomjinx <p.g.richardson@phantomjinx.co.uk>
-Date: Sat, 9 Aug 2014 19:57:10 +0100
-Subject: [PATCH] #323 Segmentation fault when opening ipod
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* Patch submitted in bug report from François Melchior / James Burton
----
- src/itdb_itunesdb.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c
-index 4cc771a..1e85476 100644
---- a/src/itdb_itunesdb.c
-+++ b/src/itdb_itunesdb.c
-@@ -1156,6 +1156,7 @@ static gboolean playcounts_plist_read (FImport *fimp, GValue *plist_data)
- GHashTable *pc_dict, *track_dict;
- GValue *to_parse;
- GArray *array;
-+ GValue value;
- gint i;
- guint32 mac_time;
- guint64 *dbid;
-@@ -1175,11 +1176,12 @@ static gboolean playcounts_plist_read (FImport *fimp, GValue *plist_data)
-
- array = (GArray*)g_value_get_boxed (to_parse);
- for (i = 0; i < array->len; i++) {
-- if (!G_VALUE_HOLDS (g_array_index (array, GValue *, i), G_TYPE_HASH_TABLE)) {
-+ value = g_array_index (array, GValue, i);
-+ if (!G_VALUE_HOLDS (&value, G_TYPE_HASH_TABLE)) {
- continue;
- }
-
-- track_dict = g_value_get_boxed (g_array_index (array, GValue *, i));
-+ track_dict = g_value_get_boxed (&value);
- if (track_dict == NULL)
- continue;
-
---
-2.12.2
-
diff --git a/testing/libgpod/0002-Fix-spelling-errors-in-comments-and-strings-using-co.patch b/testing/libgpod/0002-Fix-spelling-errors-in-comments-and-strings-using-co.patch
deleted file mode 100644
index f003a570b01..00000000000
--- a/testing/libgpod/0002-Fix-spelling-errors-in-comments-and-strings-using-co.patch
+++ /dev/null
@@ -1,293 +0,0 @@
-From 8b85cadf2d9e9d26ce6e52336177beb8d1472458 Mon Sep 17 00:00:00 2001
-From: Daniele Forsi <daniele@forsi.it>
-Date: Mon, 24 Mar 2014 20:13:50 +0100
-Subject: [PATCH 1/3] Fix spelling errors in comments and strings using
- codespell
-
-See https://github.com/lucasdemarchi/codespell
----
- README.overview | 2 +-
- docs/reference/tmpl/itunesdb-lowlevel.sgml | 2 +-
- src/db-artwork-writer.c | 2 +-
- src/itdb.h | 4 ++--
- src/itdb_device.c | 6 +++---
- src/itdb_itunesdb.c | 26 +++++++++++++-------------
- src/itdb_photoalbum.c | 2 +-
- src/itdb_sqlite.c | 8 ++++----
- src/itdb_tzinfo.c | 2 +-
- src/ithumb-writer.c | 2 +-
- 10 files changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/README.overview b/README.overview
-index a02ad5c..4bc2071 100644
---- a/README.overview
-+++ b/README.overview
-@@ -20,7 +20,7 @@ device to get an XML file describing the device capabilities (artwork formats
- supported, serial number, ...) and dumps this XML file to
- iPod_Control/Device/SysInfoExtended for future use by libgpod. libgpod doesn't
- do it directly because sending these SCSI/USB commands might need elevated
--priviledges.
-+privileges.
-
- * the application uses libgpod to read the device content
-
-diff --git a/docs/reference/tmpl/itunesdb-lowlevel.sgml b/docs/reference/tmpl/itunesdb-lowlevel.sgml
-index 1c89c91..c16ed7a 100644
---- a/docs/reference/tmpl/itunesdb-lowlevel.sgml
-+++ b/docs/reference/tmpl/itunesdb-lowlevel.sgml
-@@ -6,7 +6,7 @@ Low-level functions which shouldn't be needed in normal situations
-
- <!-- ##### SECTION Long_Description ##### -->
- <para>
--These functions are not normally needed but are avalable to allow for finer
-+These functions are not normally needed but are available to allow for finer
- control over the iPod database.
- </para>
-
-diff --git a/src/db-artwork-writer.c b/src/db-artwork-writer.c
-index 824b502..5d6de0d 100644
---- a/src/db-artwork-writer.c
-+++ b/src/db-artwork-writer.c
-@@ -1094,7 +1094,7 @@ ipod_artwork_mark_new_doubles (Itdb_iTunesDB *itdb, guint max_id)
- artwork->dbid = 0;
- }
- else
-- { /* first occurence of this artwork */
-+ { /* first occurrence of this artwork */
- artwork->id = ++max_id;
- artwork->dbid = track->dbid;
- g_hash_table_insert (hash, g_strdup (checkstring), artwork);
-diff --git a/src/itdb.h b/src/itdb.h
-index 858cae7..72299ac 100644
---- a/src/itdb.h
-+++ b/src/itdb.h
-@@ -265,7 +265,7 @@ typedef enum {
- /**
- * Itdb_IpodInfo:
- * @model_number: The model number. This is abbreviated. If the first
-- * character is not numeric, it is ommited. e.g.
-+ * character is not numeric, it is omitted. e.g.
- * "MA350 -> A350", "M9829 -> 9829"
- * @capacity: The iPod's capacity in gigabytes
- * @ipod_model: The iPod model
-@@ -1747,7 +1747,7 @@ struct _Itdb_Track
-
- /**
- * ItdbFileError:
-- * @ITDB_FILE_ERROR_SEEK: file corrupt: illegal seek occured
-+ * @ITDB_FILE_ERROR_SEEK: file corrupt: illegal seek occurred
- * @ITDB_FILE_ERROR_CORRUPT: file corrupt
- * @ITDB_FILE_ERROR_NOTFOUND: file not found
- * @ITDB_FILE_ERROR_RENAME: file could not be renamed
-diff --git a/src/itdb_device.c b/src/itdb_device.c
-index 6f1bc0b..e12f488 100644
---- a/src/itdb_device.c
-+++ b/src/itdb_device.c
-@@ -1527,9 +1527,9 @@ itdb_device_musicdirs_number (Itdb_Device *device)
- * @path: the file to look at.
- * @hdr: the header string (4 bytes) in case of LITTLE_ENDIAN
- *
-- * Check if endianess can be determined by looking at header of @path.
-+ * Check if endianness can be determined by looking at header of @path.
- *
-- * Returns: G_LITTLE_ENDIAN, G_BIG_ENDIAN or 0 if endianess could not be
-+ * Returns: G_LITTLE_ENDIAN, G_BIG_ENDIAN or 0 if endianness could not be
- * determined.
- */
- static guint endianess_check_path (const gchar *path, const gchar *hdr)
-@@ -1565,7 +1565,7 @@ static guint endianess_check_path (const gchar *path, const gchar *hdr)
- return byte_order;
- }
-
--/* Attempt to guess the endianess used by this iPod.
-+/* Attempt to guess the endianness used by this iPod.
- *
- * It will overwrite the previous setting.
- *
-diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c
-index a177e26..4cc771a 100644
---- a/src/itdb_itunesdb.c
-+++ b/src/itdb_itunesdb.c
-@@ -1560,7 +1560,7 @@ static char *extract_mhod_string (FContents *cts, glong seek)
- Itdb_SPLPREF OR Itdb_SPLRULES.
-
- *mhod_len is set to the total length of the mhod (-1 in case an
-- *error occured).
-+ *error occurred).
-
- MHODData.valid is set to FALSE in case of any error. cts->error
- will be set accordingly.
-@@ -1974,13 +1974,13 @@ static void set_error_a_header_smaller_than_b (GError **error,
- }
-
-
--/* finds next occurence of section @a in section b (@b_seek) starting
-+/* finds next occurrence of section @a in section b (@b_seek) starting
- at @start_seek
- */
- /* Return value:
- -1 and cts->error not set: section @a could not be found
-- -1 and cts->error set: some error occured
-- >=0: start of next occurence of section @a
-+ -1 and cts->error set: some error occurred
-+ >=0: start of next occurrence of section @a
- */
- static glong find_next_a_in_b (FContents *cts,
- const gchar *a,
-@@ -2767,7 +2767,7 @@ static glong get_mhit (FImport *fimp, glong mhit_seek)
- * adding a new playlist (named @plname) with the tracks specified in
- * @cts. If @plname is NULL, a standard name will be substituted */
- /* Returns FALSE on error, TRUE on success. On error @fimp->error will
-- * be set apropriately. */
-+ * be set appropriately. */
- static gboolean process_OTG_file (FImport *fimp, FContents *cts,
- const gchar *plname)
- {
-@@ -2911,7 +2911,7 @@ static gboolean read_OTG_playlists (FImport *fimp)
- (this is treated as a programming error) */
- /* Return value:
- TRUE: import successful
-- FALSE: error occured, fimp->error is set */
-+ FALSE: error occurred, fimp->error is set */
- static gboolean parse_tracks (FImport *fimp, glong mhsd_seek)
- {
- FContents *cts;
-@@ -2976,7 +2976,7 @@ static gboolean parse_tracks (FImport *fimp, glong mhsd_seek)
- mhsd (this is treated as a programming error) */
- /* Return value:
- TRUE: import successful
-- FALSE: error occured, fimp->error is set */
-+ FALSE: error occurred, fimp->error is set */
- static gboolean parse_playlists (FImport *fimp, glong mhsd_seek)
- {
- FContents *cts;
-@@ -3443,7 +3443,7 @@ Itdb_iTunesDB *itdb_parse_file (const gchar *filename, GError **error)
- /* ---------------------------------------------------------------------- */
- /* from here on we have the functions for writing the iTunesDB */
-
--/* will expand @cts when necessary in order to accomodate @len bytes
-+/* will expand @cts when necessary in order to accommodate @len bytes
- starting at @seek */
- static void wcontents_maybe_expand (WContents *cts, gulong len,
- gulong seek)
-@@ -3500,7 +3500,7 @@ static void put_string (WContents *cts, gchar *string)
- }
-
- /* Write 4-byte long @header identifcation taking into account
-- * possible reversed endianess */
-+ * possible reversed endianness */
- static void put_header (WContents *cts, gchar *header)
- {
- gchar rdata[4];
-@@ -3874,7 +3874,7 @@ static void mk_mhbd (FExport *fexp, guint32 children)
-
- /* 0x22 */
- put16lint (cts, fexp->itdb->priv->unk_0x22); /* unknown */
-- put64lint (cts, fexp->itdb->priv->id_0x24); /* unkown id */
-+ put64lint (cts, fexp->itdb->priv->id_0x24); /* unknown id */
- put32lint (cts, 0); /* unknown */
- /* 0x30 */
- put16lint (cts, 0); /* set hashing scheme to 0 for now, will be set
-@@ -5993,7 +5993,7 @@ static gboolean itdb_write_file_internal (Itdb_iTunesDB *itdb,
-
- if (!filename) filename = itdb->filename;
-
-- /* set endianess flag */
-+ /* set endianness flag */
- if (!itdb->device->byte_order)
- itdb_device_autodetect_endianess (itdb->device);
-
-@@ -6896,7 +6896,7 @@ gboolean itdb_shuffle_write_file (Itdb_iTunesDB *itdb,
- g_return_val_if_fail (filename, FALSE);
- g_return_val_if_fail (itdb->device, FALSE);
-
-- /* Set endianess flag just in case */
-+ /* Set endianness flag just in case */
- if (!itdb->device->byte_order)
- itdb_device_autodetect_endianess (itdb->device);
-
-@@ -7065,7 +7065,7 @@ gboolean itdb_rename_files (const gchar *mp, GError **error)
- if (plcname_o)
- {
- if (rename (plcname_o, plcname_n) == -1)
-- { /* an error occured */
-+ { /* an error occurred */
- g_set_error (error,
- G_FILE_ERROR,
- g_file_error_from_errno (errno),
-diff --git a/src/itdb_photoalbum.c b/src/itdb_photoalbum.c
-index a2c8c29..403848a 100644
---- a/src/itdb_photoalbum.c
-+++ b/src/itdb_photoalbum.c
-@@ -206,7 +206,7 @@ gchar *itdb_get_photos_thumb_dir (const gchar *mountpoint)
- /**
- * itdb_photodb_parse:
- * @mp: mountpoint of the iPod
-- * @error: will contain the error description when an error occured.
-+ * @error: will contain the error description when an error occurred.
- *
- * Parses the photo database of an iPod mounted at @mp.
- *
-diff --git a/src/itdb_sqlite.c b/src/itdb_sqlite.c
-index b5b2975..21d8eed 100644
---- a/src/itdb_sqlite.c
-+++ b/src/itdb_sqlite.c
-@@ -839,7 +839,7 @@ static int mk_Library(Itdb_iTunesDB *itdb,
- /* name order */
- sqlite3_bind_int(stmt_container, ++idx, pos++);
- /* parent_pid */
-- /* TODO: unkown meaning, always 0? */
-+ /* TODO: unknown meaning, always 0? */
- sqlite3_bind_int(stmt_container, ++idx, 0);
- /* media_kinds */
- sqlite3_bind_int(stmt_container, ++idx, types);
-@@ -900,10 +900,10 @@ static int mk_Library(Itdb_iTunesDB *itdb,
- sqlite3_bind_null(stmt_db_info, ++idx);
- }
- /* bib */
-- /* TODO: unkown meaning, set to NULL */
-+ /* TODO: unknown meaning, set to NULL */
- sqlite3_bind_null(stmt_db_info, ++idx);
- /* rib */
-- /* TODO: unkown meaning, set to NULL */
-+ /* TODO: unknown meaning, set to NULL */
- sqlite3_bind_null(stmt_db_info, ++idx);
-
- res = sqlite3_step(stmt_db_info);
-@@ -1958,7 +1958,7 @@ static void run_post_process_commands(Itdb_iTunesDB *itdb, const char *outpath,
- g_hash_table_destroy(sqlcmd_map);
-
- printf("[%s] %d out of %d post process commands successfully executed\n", __func__, ok_cnt, cnt);
-- /* TODO perhaps we want to roll back when an error has occured ? */
-+ /* TODO perhaps we want to roll back when an error has occurred ? */
- sqlite3_exec(db, "COMMIT;", NULL, NULL, NULL);
- } else {
- printf("[%s]: Error: could not create hash table!\n", __func__);
-diff --git a/src/itdb_tzinfo.c b/src/itdb_tzinfo.c
-index 3c29947..ce8216d 100644
---- a/src/itdb_tzinfo.c
-+++ b/src/itdb_tzinfo.c
-@@ -160,7 +160,7 @@ static gboolean raw_timezone_to_utc_shift_5g (gint16 raw_timezone,
- * going from Tokyo to LA and then to Europe).
- * The calculation below shifts the origin so that 0 corresponds
- * to UTC-12 and the max is 24*60 and corresponds to UTC+12
-- * Finally, we substract 12*60 to that value to get a signed number
-+ * Finally, we subtract 12*60 to that value to get a signed number
- * giving the timezone relative to UTC.
- */
- *utc_shift = raw_timezone*60 - TZ_SHIFT*3600;
-diff --git a/src/ithumb-writer.c b/src/ithumb-writer.c
-index 6b47aa6..b33cc5c 100644
---- a/src/ithumb-writer.c
-+++ b/src/ithumb-writer.c
-@@ -1215,7 +1215,7 @@ static gboolean ithumb_rearrange_thumbnail_file (gpointer _key,
-
- /* printf ("%s: %d\n", filename, g_list_length (thumbs)); */
-
-- /* check if an error occured */
-+ /* check if an error occurred */
- if (*result == FALSE)
- goto out;
-
---
-2.1.4
diff --git a/testing/libgpod/0003-Fixed-PList-deprecation.patch b/testing/libgpod/0003-Fixed-PList-deprecation.patch
deleted file mode 100644
index 6f270bcce94..00000000000
--- a/testing/libgpod/0003-Fixed-PList-deprecation.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From e6994dc234395f68fd7195bbe7424f83c39d0f3d Mon Sep 17 00:00:00 2001
-From: Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
-Date: Thu, 22 Oct 2015 09:53:05 +0300
-Subject: [PATCH 3/3] Fixed PList deprication
-
----
- tools/ipod-lockdown.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/tools/ipod-lockdown.c b/tools/ipod-lockdown.c
-index f345726..8503798 100644
---- a/tools/ipod-lockdown.c
-+++ b/tools/ipod-lockdown.c
-@@ -100,7 +100,7 @@ read_sysinfo_extended_by_uuid (const char *uuid)
- plist_get_string_val(ptr, &str);
- if (str != NULL) {
- ptr = plist_new_string(str);
-- plist_dict_insert_item(value, "SerialNumber", ptr);
-+ plist_dict_set_item(value, "SerialNumber", ptr);
- free(str);
- }
-
-@@ -112,15 +112,15 @@ read_sysinfo_extended_by_uuid (const char *uuid)
- plist_get_string_val(ptr, &str);
- if (str != NULL) {
- ptr = plist_new_string(str);
-- plist_dict_insert_item(value, "VisibleBuildID", ptr);
-+ plist_dict_set_item(value, "VisibleBuildID", ptr);
- free(str);
- }
-
- ptr = plist_new_string(uuid);
-- plist_dict_insert_item(value, "FireWireGUID", ptr);
-+ plist_dict_set_item(value, "FireWireGUID", ptr);
-
- ptr = plist_new_string(uuid);
-- plist_dict_insert_item(value, "UniqueDeviceID", ptr);
-+ plist_dict_set_item(value, "UniqueDeviceID", ptr);
-
- plist_to_xml(value, &xml, &xml_length);
-
---
-2.1.4
-
diff --git a/testing/libgpod/APKBUILD b/testing/libgpod/APKBUILD
deleted file mode 100644
index f780098849c..00000000000
--- a/testing/libgpod/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=libgpod
-pkgver=0.8.3
-pkgrel=3
-pkgdesc="A shared library to access the contents of an iPod"
-url="http://www.gtkpod.org/libgpod"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="automake autoconf libtool intltool libimobiledevice-dev libplist-dev
- swig mutagen sg3_utils-dev gdk-pixbuf-dev glib-dev sqlite-dev
- gobject-introspection-dev libxml2-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-source="https://downloads.sourceforge.net/project/gtkpod/libgpod/libgpod-0.8/libgpod-$pkgver.tar.bz2
- 0001-323-Segmentation-fault-when-opening-ipod.patch
- 0002-Fix-spelling-errors-in-comments-and-strings-using-co.patch
- 0003-Fixed-PList-deprecation.patch
- libgpod-0.8.2-pkgconfig_overlinking.patch"
-
-replaces="py-libgpod" # Removed in 0.8.3-r2
-
-check() {
- make check
-}
-
-build() {
- MCS=/usr/bin/mcs ./configure \
- --prefix=/usr \
- --with-udev-dir=/lib/udev \
- --enable-udev
- make PREFIX=/usr
- sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="e39f22054c2d2bdf5fc764aa1f692de17a1a06c7c7e9c60883d126b216dacca7840bf818e7e7e039218fe2a64c0920ba96d8cbbe310e11c1c4e68b82e7cbbd8e libgpod-0.8.3.tar.bz2
-d1a813a45230ca716e0c6ed5497d68089762ce5b4cac9462f1959083fdf40bedbf7449a55d63170800d74372921fad02a9d5a3146e9f8ed652ffd58238360b49 0001-323-Segmentation-fault-when-opening-ipod.patch
-f95d53e616763e4e620862fb2e1abc2fcec29951c2047b7f08bfbee69ce68661772f499f90f87d81a2707583b3d8017d11dcaf75a9028f50b7c3260a9768c285 0002-Fix-spelling-errors-in-comments-and-strings-using-co.patch
-163e33c3e727240561021dd8a4d921bad4724845db00d1d87c963a9e8619dbfda90de9d42944bf33f5b3479b00b3908e550a831489b12c7d4f0e83cdaae697ad 0003-Fixed-PList-deprecation.patch
-c8ebcc18ba7b44aef8fada3f9fea88fdaaf6bae12cf809b08f98e85ab6396ae032bfd7706809cd266be67c694749d4364a9cc591eb750478e095cbbcbe061419 libgpod-0.8.2-pkgconfig_overlinking.patch"
diff --git a/testing/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch b/testing/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch
deleted file mode 100644
index a5dafb28576..00000000000
--- a/testing/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up libgpod-0.8.2/libgpod-1.0.pc.in.pkgconfig_overlinking libgpod-0.8.2/libgpod-1.0.pc.in
---- libgpod-0.8.2/libgpod-1.0.pc.in.pkgconfig_overlinking 2011-04-15 03:37:34.000000000 -0500
-+++ libgpod-0.8.2/libgpod-1.0.pc.in 2012-08-10 13:53:00.294631805 -0500
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: libgpod
- Description: A library to manipulate songs and playlists stored on an ipod
- Version: @VERSION@
--Requires: glib-2.0 >= 2.8.0 gobject-2.0 @GDKPIXBUF_REQ@ @LIBIMOBILEDEVICE_REQ@
-+Requires.private: glib-2.0 >= 2.8.0 gobject-2.0 @GDKPIXBUF_REQ@ @LIBIMOBILEDEVICE_REQ@
- Libs: -L${libdir} -lgpod
- Cflags: -I${includedir}/gpod-1.0
diff --git a/testing/libgrapheme/APKBUILD b/testing/libgrapheme/APKBUILD
new file mode 100644
index 00000000000..90cb24e1cd7
--- /dev/null
+++ b/testing/libgrapheme/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+pkgname=libgrapheme
+pkgver=1
+pkgrel=0
+pkgdesc="unicode string library"
+url="https://libs.suckless.org/libgrapheme"
+arch="all"
+license="ISC"
+subpackages="$pkgname-doc $pkgname-dev"
+source="https://dl.suckless.org/libgrapheme/libgrapheme-$pkgver.tar.gz"
+
+build() {
+ make all PREFIX=/usr
+}
+
+check() {
+ make test PREFIX=/usr
+}
+
+package() {
+ make install PREFIX=/usr DESTDIR="$pkgdir"
+}
+sha512sums="
+c0f3300d30707266e44ee01f359204720ae1770788cec509b03be914f8581caae144fb72952d111f108ebef21fd96b5ca2cf69463ee569bce4bba8645942ee05 libgrapheme-1.tar.gz
+"
diff --git a/testing/libgrilio/APKBUILD b/testing/libgrilio/APKBUILD
deleted file mode 100644
index cd923ceec42..00000000000
--- a/testing/libgrilio/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=libgrilio
-pkgver=1.0.36
-pkgrel=0
-pkgdesc="RIL client library"
-url="https://git.sailfishos.org/mer-core/libgrilio"
-arch="all"
-license="BSD-3-Clause"
-makedepends="libglibutil-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://git.sailfishos.org/mer-core/libgrilio/-/archive/$pkgver/libgrilio-$pkgver.tar.gz"
-case $CARCH in
- s390x) options="$options !check" # test_io fails
-esac
-
-build() {
- make KEEP_SYMBOLS=1 release pkgconfig
-}
-
-package() {
- make install-dev DESTDIR="$pkgdir"
-}
-
-sha512sums="a1f16107b0272e1fa471e30b90eb01aad8741e8bfb818e3d297d27d53551dd6927f75b6e5ec292b9e99852c9e6100a846092f4dea62267da0d67d6a6e856a865 libgrilio-1.0.36.tar.gz"
diff --git a/testing/libguestfs/APKBUILD b/testing/libguestfs/APKBUILD
index 21b6188e7ce..fb5610f90a8 100644
--- a/testing/libguestfs/APKBUILD
+++ b/testing/libguestfs/APKBUILD
@@ -1,112 +1,147 @@
-# Maintainer: Fathi Boudra <fathi.boudra@linaro.org>
+# Contributor: Fathi Boudra <fathi.boudra@linaro.org>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=libguestfs
-pkgver=1.40.2
-pkgrel=5
-pkgdesc="tools for accessing and modifying virtual machine disk images"
-url="http://libguestfs.org/"
-arch="x86_64"
+pkgver=1.52.0
+pkgrel=1
+pkgdesc="Access and modify virtual machine disk images"
+url="https://libguestfs.org/"
+# riscv64, loongarch64: blocked by ocaml
+arch="all !riscv64 !loongarch64"
license="GPL-2.0-or-later"
-depends="cdrkit curl gptfdisk qemu-img qemu-system-x86_64"
+depends="
+ cmd:mkisofs
+ curl
+ qemu-img
+ "
makedepends="
- autoconf automake libtool
- acl-dev
- augeas-dev
- bash
- bison
- coreutils
- cpio
- file-dev
- flex
- fuse-dev
- gawk
- gettext-dev
- hivex-dev
- jansson-dev
- gperf
- libcap-dev
- libconfig-dev
- libselinux-dev
- libselinux-utils
- libtirpc-dev
- libvirt-dev
- libxml2-dev
- libxml2-utils
- ncurses-dev
- ocaml
- ocaml-findlib
- pcre-dev
- perl
- psmisc
- python3-dev
- readline-dev
- xz
- xz-dev
-"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang py3-$pkgname:_py"
-source="
- http://download.libguestfs.org/1.40-stable/$pkgname-$pkgver.tar.gz
- https://raw.githubusercontent.com/alpinelinux/aports/3.9-stable/main/kbd/error.h
- python-3.8.patch
-"
-options="!check charset.alias" # Test suite does not support Alpine Linux at this moment
+ acl-dev
+ augeas-dev
+ bash
+ bison
+ cmd:xzcat
+ cmd:zstdcat
+ coreutils
+ file-dev
+ flex
+ fuse-dev
+ gawk
+ gperf
+ hivex-dev
+ jansson-dev
+ libcap-dev
+ libconfig-dev
+ libtirpc-dev
+ libxml2-dev
+ lua5.1-dev
+ musl-libintl
+ ocaml
+ ocaml-findlib
+ pcre2-dev
+ perl
+ python3-dev
+ readline-dev
+ ruby-dev
+ ruby-rake
+ zstd-dev
+ "
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-doc
+ guestfs-tools
+ lua5.1-$pkgname:_lua51
+ py3-$pkgname:_py
+ ruby-$pkgname:_ruby
+ "
+source="https://download.libguestfs.org/${pkgver%.*}-stable/libguestfs-$pkgver.tar.gz
+ fix-missing-int64_t.patch
+ fix-missing-error-h.patch
+ "
+options="!check" # XXX: Test suite does not support Alpine Linux at this moment
+
+case "$CARCH" in
+ arm*) _qemu="qemu-system-arm";;
+ ppc64le) _qemu="qemu-system-ppc64";;
+ x86_64 | x86) _qemu="qemu-system-x86_64";;
+ *) _qemu="qemu-system-$CARCH";;
+esac
+depends="$depends $_qemu"
prepare() {
default_prepare
- autoreconf -vif
+
# busybox gzip does not support --best
sed -i 's/gzip --best/gzip -9/g' test-data/files/*
- # musl lacks error.h
- cp -a "$srcdir"/error.h "$builddir"/lib/
}
build() {
+ # TODO: build and package appliance
+ # NOTE: libvirt is a huge dependency linked into libguestfs.so,
+ # so it cannot be easily split.
PYTHON=/usr/bin/python3 ./configure \
--prefix=/usr \
--mandir=/usr/share/man \
--sysconfdir=/etc \
+ --disable-nls \
+ --enable-fuse \
--disable-probes \
--disable-daemon \
--disable-appliance \
--disable-ocaml \
--disable-perl \
- --disable-ruby \
+ --enable-ruby \
--disable-haskell \
--disable-php \
--disable-erlang \
- --disable-lua \
+ --enable-lua \
--disable-golang \
--disable-gobject \
- --without-java
- # Building index-parse.c and index-scan.c by hand works around a race
- # condition in the autotools cruft, where two other more copies of yacc
- # race with each other, resulting in a corrupted file.
- make -j1 -C builder index-parse.c
- make -j1 -C builder index-scan.c
- make V=1 INSTALLDIRS=vendor LTLIBINTL=-lintl
+ --disable-rust \
+ --enable-vala=no \
+ --with-readline \
+ --without-java \
+ --without-libvirt \
+ --with-qemu="$_qemu"
+ make V=1
}
-# FIXME test require supermin to create an appliance or a prebuilt binary appliance
-# check() {
-# cd "$builddir"
-# wget http://download.libguestfs.org/binaries/appliance/appliance-1.38.0.tar.xz -O /tmp/appliance-1.38.0.tar.xz
-# $(cd /tmp && tar xf appliance-1.38.0.tar.xz)
-# export LIBGUESTFS_PATH=/tmp/appliance
-# make quickcheck
-# }
-
package() {
- make V=1 INSTALLDIRS=vendor DESTDIR="$pkgdir" install
- make V=1 INSTALLDIRS=vendor DESTDIR="$pkgdir" -C python install
+ # INSTALLDIRS ensures that Perl and Ruby libs are installed in the
+ # vendor dir not the site dir.
+ make V=1 DESTDIR="$pkgdir" INSTALLDIRS="vendor" install
+}
+
+tools() {
+ pkgdesc="$pkgdesc (CLI tools)"
+ depends=""
+
+ amove etc
+ amove usr/bin
+}
+
+_lua51() {
+ pkgdesc="Lua 5.1 bindings for $pkgname"
+ depends=""
+
+ amove usr/lib/lua
}
_py() {
- local _py=${subpkgname##-*}
- local _pyver=${_py%py}
- pkgdesc="$pkgname - Python 3 bindings"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
+ pkgdesc="Python 3 bindings for $pkgname"
+ depends=""
+
+ amove usr/lib/python3*
}
-sha512sums="d288f15d5a70b4b87a4271ea2eb7dc0ec4f48fdb136b8f62003352a069f75573de873e1063763889f410fb1b99951252e9a48dd73bf0233047f21aae43ac6de2 libguestfs-1.40.2.tar.gz
-c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752 error.h
-8c22a83043d965e8404228f224c5daa83bdf3ea9ddbe56dd8f1afd76344cdd61d664d9086160844dc0bcd02cc737c083db116010bca912a65806b52630dcc366 python-3.8.patch"
+_ruby() {
+ pkgdesc="Ruby bindings for $pkgname"
+ depends=""
+
+ amove usr/lib/ruby
+}
+
+sha512sums="
+48dfaabb6b371ab3476b42310d363addf2fd1dfe43876be3bc984953f6919a30c7de13ef235d83fdd39117d71aa6bbfb5fbb645c1b17bc3031798a2a2b3df9d7 libguestfs-1.52.0.tar.gz
+9ca7a2ac8572553394d42eda0e02f8b694651288ce58f1f4c7569eaab81cd3295b0992dcd6452a42b4b284cec54a666fd277eafcee05d54d05b1e84560ac7b06 fix-missing-int64_t.patch
+e4d0cac4ba856d871ca524ebeb4dedf25b3a956fe6a1ab4c93481eba03954fb684621c63085526fc1846b3bffd4cbe30dadfba2b92844d24b8ec277c0e84bf5c fix-missing-error-h.patch
+"
diff --git a/testing/libguestfs/fix-missing-error-h.patch b/testing/libguestfs/fix-missing-error-h.patch
new file mode 100644
index 00000000000..7cdf3eaf8a3
--- /dev/null
+++ b/testing/libguestfs/fix-missing-error-h.patch
@@ -0,0 +1,46 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Thu, 12 Oct 2023 01:05:47 +0200
+Subject: [PATCH] Fix <error.h> not found in libvirt-is-version.c
+
+ libvirt-is-version.c:26:10: fatal error: error.h: No such file or directory
+ 26 | #include <error.h>
+ | ^~~~~~~~~
+
+ libvirt-is-version.c:(.text+0x61): undefined reference to `error'
+ ld: libvirt_is_version-libvirt-is-version.o: in function `main':
+ libvirt-is-version.c:(.text.startup+0xa9): undefined reference to `error'
+
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -178,10 +178,12 @@
+
+ libvirt_is_version_LDADD = \
+ $(LIBVIRT_LIBS) \
+- $(LTLIBINTL)
++ $(LTLIBINTL) \
++ ../gnulib/lib/libgnu.la
+
+ libvirt_is_version_CPPFLAGS = \
+- -DLOCALEBASEDIR=\""$(datadir)/locale"\"
++ -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
++ -I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib
+
+ libvirt_is_version_CFLAGS = \
+ $(WARN_CFLAGS) $(WERROR_CFLAGS) \
+--- a/lib/Makefile.in
++++ b/lib/Makefile.in
+@@ -1115,10 +1115,12 @@
+ @HAVE_LIBVIRT_TRUE@libvirt_is_version_SOURCES = libvirt-is-version.c
+ @HAVE_LIBVIRT_TRUE@libvirt_is_version_LDADD = \
+ @HAVE_LIBVIRT_TRUE@ $(LIBVIRT_LIBS) \
+-@HAVE_LIBVIRT_TRUE@ $(LTLIBINTL)
++@HAVE_LIBVIRT_TRUE@ $(LTLIBINTL) \
++@HAVE_LIBVIRT_TRUE@ ../gnulib/lib/libgnu.la
+
+ @HAVE_LIBVIRT_TRUE@libvirt_is_version_CPPFLAGS = \
+-@HAVE_LIBVIRT_TRUE@ -DLOCALEBASEDIR=\""$(datadir)/locale"\"
++@HAVE_LIBVIRT_TRUE@ -DLOCALEBASEDIR=\""$(datadir)/locale"\" \
++@HAVE_LIBVIRT_TRUE@ -I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib
+
+ @HAVE_LIBVIRT_TRUE@libvirt_is_version_CFLAGS = \
+ @HAVE_LIBVIRT_TRUE@ $(WARN_CFLAGS) $(WERROR_CFLAGS) \
diff --git a/testing/libguestfs/fix-missing-int64_t.patch b/testing/libguestfs/fix-missing-int64_t.patch
new file mode 100644
index 00000000000..0ef8e7f4ef9
--- /dev/null
+++ b/testing/libguestfs/fix-missing-int64_t.patch
@@ -0,0 +1,22 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Thu, 12 Oct 2023 01:05:47 +0200
+Subject: [PATCH] Fix unknown type name 'int64_t'
+
+ guestfs-utils.h:62:32: error: unknown type name 'int64_t'
+ 62 | extern int guestfs_int_is_reg (int64_t mode);
+ | ^~~~~~~
+ guestfs-utils.h:40:1: note: 'int64_t' is defined in header '<stdint.h>'; did you forget to '#include <stdint.h>'?
+ 39 | #include "cleanups.h"
+ +++ |+#include <stdint.h>
+ 40 | #include "guestfs-stringlists-utils.h"
+
+--- a/common/utils/guestfs-utils.h
++++ b/common/utils/guestfs-utils.h
+@@ -34,6 +34,7 @@
+
+ #include <stdio.h>
+ #include <stdbool.h>
++#include <stdint.h>
+
+ #include "guestfs-internal-all.h"
+ #include "cleanups.h"
diff --git a/testing/libguestfs/python-3.8.patch b/testing/libguestfs/python-3.8.patch
deleted file mode 100644
index a0090f6f148..00000000000
--- a/testing/libguestfs/python-3.8.patch
+++ /dev/null
@@ -1,49 +0,0 @@
- py3-$pkgname:_py
-n 3.8 no longer links C extensions to -lpython, instead relying
-on the fact that the python binary itself already contains those
-symbols. This means $PYTHON_LIBS is empty and so the Python bindings
-are not built.
-
-Use a different test to see if the python module is available.
----
- m4/guestfs-python.m4 | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/m4/guestfs-python.m4 b/m4/guestfs-python.m4
-index 7d4c991bb..befa9b102 100644
---- a/m4/guestfs-python.m4
-+++ b/m4/guestfs-python.m4
-@@ -33,14 +33,17 @@ AS_IF([test "x$enable_python" != "xno"],[
- PYTHON_VERSION_MINOR=`$PYTHON -c "import sys; print (sys.version_info@<:@1@:>@)"`
- PYTHON_VERSION="$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR"
- AC_MSG_RESULT([$PYTHON_VERSION])
-+
- # Debian: python-2.7.pc, python-3.2.pc
- PKG_CHECK_MODULES([PYTHON], [python-"$PYTHON_VERSION"],[
-+ have_python_module=1
- AC_SUBST([PYTHON_CFLAGS])
- AC_SUBST([PYTHON_LIBS])
- AC_SUBST([PYTHON_VERSION])
- AC_DEFINE([HAVE_PYTHON],[1],[Python library found at compile time])
- ],[
- PKG_CHECK_MODULES([PYTHON], [python],[
-+ have_python_module=1
- AC_SUBST([PYTHON_CFLAGS])
- AC_SUBST([PYTHON_LIBS])
- AC_SUBST([PYTHON_VERSION])
-@@ -49,6 +52,7 @@ AS_IF([test "x$enable_python" != "xno"],[
- AC_MSG_WARN([python $PYTHON_VERSION not found])
- ])
- ])
-+
- AC_MSG_CHECKING([Python prefix])
- PYTHON_PREFIX=`$PYTHON -c "import sys; print (sys.prefix)"`
- AC_MSG_RESULT([$PYTHON_PREFIX])
-@@ -101,4 +105,4 @@ AS_IF([test "x$enable_python" != "xno"],[
- AC_SUBST(PYTHON_EXT_SUFFIX)
- ])
- AM_CONDITIONAL([HAVE_PYTHON],
-- [test "x$PYTHON" != "xno" && test "x$PYTHON_LIBS" != "x" ])
-+ [test "x$PYTHON" != "xno" && test "x$have_python_module" = "x1" ])
---
-2.21.0
diff --git a/testing/libhandy/APKBUILD b/testing/libhandy/APKBUILD
new file mode 100644
index 00000000000..f0e63aa44a7
--- /dev/null
+++ b/testing/libhandy/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libhandy
+pkgver=0.0.13
+pkgrel=7
+pkgdesc="Library full of GTK+ widgets for mobile phones (0.x version)"
+url="https://source.puri.sm/Librem5/libhandy"
+arch="all"
+license="LGPL-2.0-or-later"
+makedepends="meson glib-dev gtk+3.0-dev vala py3-setuptools gobject-introspection-dev"
+checkdepends="xvfb-run ibus"
+subpackages="$pkgname-dev"
+source="https://source.puri.sm/Librem5/libhandy/-/archive/v$pkgver/libhandy-v$pkgver.tar.gz
+ skip-test.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ abuild-meson \
+ -Dexamples=true \
+ . output
+ meson compile -C output
+}
+
+check() {
+ xvfb-run meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+dev() {
+ default_dev
+
+ mkdir -p "$subpkgdir"/usr
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr
+}
+
+sha512sums="
+b9eaef775a93c200aa3f526b627827ed4530ff2a4c826ab24abdbd944075c0939232bd2c3388b8b8e34c6729cb11017a7af2bd3ff9eec78fbdc7e7dd9f11d24b libhandy-v0.0.13.tar.gz
+699b17da5aa1a0bff9bbaf962d84edcc80fba21130cf9f12cff004d84c6cd182a44c462acebf9ce4cddf26da61484f85985a94eb7812fe2d3639625182f41bb4 skip-test.patch
+"
diff --git a/testing/libhandy/skip-test.patch b/testing/libhandy/skip-test.patch
new file mode 100644
index 00000000000..370905f8dda
--- /dev/null
+++ b/testing/libhandy/skip-test.patch
@@ -0,0 +1,20 @@
+Skip test that uses IBus, since it tries to access /var/lib/dbus/machine-id which doesn't exist on the system.
+
+diff --git a/tests/meson.build b/tests/meson.build
+index b814d59..bf30b96 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -28,13 +28,10 @@ test_names = [
+ 'test-expander-row',
+ 'test-header-bar',
+ 'test-header-group',
+- 'test-keypad',
+ 'test-paginator',
+ 'test-preferences-group',
+ 'test-preferences-page',
+ 'test-preferences-row',
+- 'test-preferences-window',
+- 'test-search-bar',
+ 'test-squeezer',
+ 'test-string-utf8',
+ 'test-swipe-group',
diff --git a/testing/libhomfly/APKBUILD b/testing/libhomfly/APKBUILD
new file mode 100644
index 00000000000..a8ca960e50e
--- /dev/null
+++ b/testing/libhomfly/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libhomfly
+pkgver=1.02_p6
+_pkgver=${pkgver//_p/r}
+pkgrel=1
+pkgdesc="Library to compute the homfly polynomial of a link"
+url="https://github.com/miguelmarco/libhomfly"
+arch="all"
+license="Unlicense"
+makedepends="gc-dev"
+subpackages="$pkgname-dev"
+source="https://github.com/miguelmarco/libhomfly/releases/download/$_pkgver/libhomfly-$_pkgver.tar.gz"
+builddir=$srcdir/libhomfly-$_pkgver
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+44f81815a0ba4c0358d433eb9769944af2ee02790d78aaa08e791d03ba68ba3dcf0389b4287f687211e6a7ba84e1bea3d2ebe69fc8bb4f12d677b7f54872d618 libhomfly-1.02r6.tar.gz
+"
diff --git a/testing/libhwpwm/APKBUILD b/testing/libhwpwm/APKBUILD
new file mode 100644
index 00000000000..e3bc7196c2a
--- /dev/null
+++ b/testing/libhwpwm/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Zsolt Vadasz <zsolt_vadasz@protonmail.com>
+pkgname=libhwpwm
+pkgver=0.4.4
+pkgrel=0
+pkgdesc="An easy to use library to communicate with the Linux kernel's sysfs PWM interface."
+url="https://github.com/zsoltiv/libhwpwm"
+arch="all"
+license="LGPL-3.0-or-later"
+makedepends="scdoc"
+options="!check" # no tests provided by upstream
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/zsoltiv/libhwpwm/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make install PREFIX=/usr DESTDIR="$pkgdir"
+ make install-man PREFIX=/usr DESTDIR="$pkgdir"
+}
+
+
+sha512sums="
+280c57a08fa4200fccbd0912fd11d7d53c4ac9acd94cfefdc8d55c8b094c61cb23433f52f36391fcaafe2f87f566e7b7e77d9e0300ad630208f2f04b36fd2820 libhwpwm-0.4.4.tar.gz
+"
diff --git a/testing/libhx/APKBUILD b/testing/libhx/APKBUILD
new file mode 100644
index 00000000000..ba5b0966fe2
--- /dev/null
+++ b/testing/libhx/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=libhx
+pkgver=4.21
+pkgrel=0
+pkgdesc="library for queue, tree, I/O and utility functions"
+arch="all"
+url="https://inai.de/projects/libhx/"
+license="GPL-3.0-only"
+makedepends="linux-headers"
+subpackages="$pkgname-dev"
+source="https://inai.de/files/libhx/libHX-$pkgver.tar.xz"
+builddir="$srcdir/libHX-$pkgver"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cf3c5fd7b1137c9f56b56abe52886a47ec21256cfa393bd31339f1f9f4683cfeca2107f46ac0fc5571962f5daeb9c5c060c6db442667cc99380f6e55183a6ab5 libHX-4.21.tar.xz
+"
diff --git a/testing/libibmad/APKBUILD b/testing/libibmad/APKBUILD
index 10793eddc05..449367abcf1 100644
--- a/testing/libibmad/APKBUILD
+++ b/testing/libibmad/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer:
pkgname=libibmad
pkgver=1.3.13
-pkgrel=1
+pkgrel=2
pkgdesc="Generic InfiniBand MAD handling library"
options="!check" # No testsuite
url="https://www.openfabrics.org/downloads/management/"
diff --git a/testing/libibumad/APKBUILD b/testing/libibumad/APKBUILD
index 2fe9c12ddb5..ec1b941e45b 100644
--- a/testing/libibumad/APKBUILD
+++ b/testing/libibumad/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer:
pkgname=libibumad
pkgver=1.3.10.2
-pkgrel=2
+pkgrel=3
pkgdesc="Interface to ib_umad module (user_mad) library. (InfiniBand)"
options="!check" # No testsuite
url="https://www.openfabrics.org/downloads/management/"
diff --git a/testing/libideviceactivation/APKBUILD b/testing/libideviceactivation/APKBUILD
new file mode 100644
index 00000000000..1e3b0925e7d
--- /dev/null
+++ b/testing/libideviceactivation/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Kasper K <kasperkantz@outlook.com>
+# Maintainer: Kasper K <kasperkantz@outlook.com>
+pkgname=libideviceactivation
+pkgver=1.1.1
+pkgrel=4
+pkgdesc="Library to handle the activation process of iOS devices"
+url="https://libimobiledevice.org"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="libimobiledevice-dev curl-dev libxml2-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/libimobiledevice/libideviceactivation/releases/download/$pkgver/libideviceactivation-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+72d6e7024404d1a45e419ccdb7603268a1d96845c8636696b55d2c6edd3177b881ef0f5bd7aea548e88ef7976c83fbac63d3c3d7a9b76eba83de492c269ab02a libideviceactivation-1.1.1.tar.bz2
+"
diff --git a/testing/libigraph/APKBUILD b/testing/libigraph/APKBUILD
new file mode 100644
index 00000000000..8d835e5e900
--- /dev/null
+++ b/testing/libigraph/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=libigraph
+pkgver=0.10.11
+pkgrel=0
+pkgdesc="Library for creating and manipulating graphs"
+url="https://igraph.org"
+# s390x: blocked by openmp
+arch="all !s390x"
+license="GPL-2.0-or-later"
+# bison and flex are needed when building from commit
+makedepends="
+ arpack-dev
+ cmake
+ glpk-dev
+ libxml2-dev
+ openblas-dev
+ plfit-dev
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="https://github.com/igraph/igraph/releases/download/$pkgver/igraph-$pkgver.tar.gz"
+builddir="$srcdir/igraph-$pkgver"
+
+build() {
+ # For building against master branch:
+ #echo "$pkgver" > IGRAPH_VERSION
+
+ cmake -B builddir -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build builddir
+}
+
+check() {
+ cmake --build builddir --target check
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install builddir
+}
+
+sha512sums="
+d6978589f12ed20b87777394b46f47b4ffc045ef693e5b4fc90163b9482361b2bf0ed2bb04aa99bf4a0653f7e4355cd480b0a165213d90ff7188ef6c86147c86 igraph-0.10.11.tar.gz
+"
diff --git a/testing/libiio/APKBUILD b/testing/libiio/APKBUILD
new file mode 100644
index 00000000000..269cb143f3e
--- /dev/null
+++ b/testing/libiio/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=libiio
+pkgver=0.25
+pkgrel=1
+pkgdesc="Interface to the Linux Industrial Input/Output (IIO) Subsystem"
+url="http://analogdevicesinc.github.io/libiio/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ avahi-dev
+ bash
+ bison
+ cmake
+ flex
+ libaio-dev
+ libserialport-dev
+ libusb-dev
+ libxml2-dev
+ py3-setuptools
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-pyc
+ py3-$pkgname:python
+ $pkgname-tools
+ "
+source="https://github.com/analogdevicesinc/libiio/archive/v$pkgver/libiio-v$pkgver.tar.gz"
+options="!check" # no actual tests
+
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_SBINDIR=bin \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DPYTHON_BINDINGS=ON \
+ -DUDEV_RULES_INSTALL_DIR=/usr/lib/udev/rules.d \
+ -DWITH_MAN=ON \
+ -DWITH_SERIAL_BACKEND=ON \
+ -DWITH_TESTS=ON # these are test binaries but not actual tyests
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+tools() {
+ amove usr/bin/*
+}
+
+python() {
+ pkgdesc="$pkgdesc (python module)"
+
+ amove usr/lib/python*
+}
+
+sha512sums="
+e0f2f5545b4c78d1f0f56b037db6e363aab01aad69af3a095b3546af74dab6effe0b00f5c336ef799a739f76c5f16ab76a6b8e823508861edd2745a9d3fd2599 libiio-v0.25.tar.gz
+"
diff --git a/testing/libime/APKBUILD b/testing/libime/APKBUILD
new file mode 100644
index 00000000000..b75b7fec211
--- /dev/null
+++ b/testing/libime/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Lindsay Zhou <i@lin.moe>
+# Maintainer: Lindsay Zhou <i@lin.moe>
+pkgname=libime
+pkgver=1.1.6
+pkgrel=1
+_kenlm=bcd4af619a2fa45f5876d8855f7876cc09f663af
+pkgdesc="Fcitx input method engine library"
+url="https://github.com/fcitx/libime"
+arch="all"
+license="LGPL-2.1-or-later"
+depends_dev="boost-dev"
+makedepends="
+ $depends_dev
+ cmake
+ extra-cmake-modules
+ fcitx5-dev
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fcitx/libime/archive/refs/tags/$pkgver.tar.gz
+ kenlm-$_kenlm.tar.gz::https://github.com/kpu/kenlm/archive/$_kenlm.tar.gz
+ "
+options="net" # build fetches some checksummed language data itself, todo
+
+prepare() {
+ default_prepare
+
+ rmdir src/libime/core/kenlm
+ ln -sfv "$srcdir"/kenlm-$_kenlm src/libime/core/kenlm
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DENABLE_TEST="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+core() {
+ pkgdesc="$pkgdesc (core module)"
+
+ amove usr/lib/libIMECore.so.*
+}
+
+pinyin() {
+ pkgdesc="$pkgdesc (pinyin module)"
+
+ amove usr/lib/libIMEPinyin.so.*
+}
+
+table() {
+ pkgdesc="$pkgdesc (table module)"
+
+ amove usr/lib/libIMETable.so.*
+}
+
+sha512sums="
+0c9ed4fcb545fee19a7333b1cf6157a95f8498e1322773b526a9e1469e18091c2458ee2410383a1c23dea051cb1dabceb190664e43a806902a91a050cce44c30 libime-1.1.6.tar.gz
+0ed68ed3b927b8c8353ab3815d17d0706b3357dce8a446176bd48ef6b73989bcf142983008e2b2b5e44769428a684dc1abcf3973f9f99c76b9bfc5f80a3aa363 kenlm-bcd4af619a2fa45f5876d8855f7876cc09f663af.tar.gz
+"
diff --git a/testing/libiml/APKBUILD b/testing/libiml/APKBUILD
new file mode 100644
index 00000000000..de0695e500f
--- /dev/null
+++ b/testing/libiml/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libiml
+pkgver=1.0.5
+pkgrel=3
+pkgdesc="Library for solving linear equations over the integers"
+url="https://cs.uwaterloo.ca/~astorjoh/iml.html"
+arch="all"
+license="BSD-3-Clause"
+makedepends="gmp-dev openblas-dev pkgconf"
+source="https://www.cs.uwaterloo.ca/~astorjoh/iml-$pkgver.tar.bz2"
+subpackages="$pkgname-static $pkgname-dev"
+builddir="$srcdir/iml-$pkgver"
+
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-shared \
+ --with-cblas="$(pkgconf --libs openblas)"
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b5a85982636035cc50acba7dcff5478c6271be3669313f01915b2761302d4c77617c0dd7932daf74433098670d3ffdb2ef19eb24450b40709750a0b7c8f797f1 iml-1.0.5.tar.bz2
+"
diff --git a/testing/libimobiledevice-glue/APKBUILD b/testing/libimobiledevice-glue/APKBUILD
new file mode 100644
index 00000000000..a0035bddad4
--- /dev/null
+++ b/testing/libimobiledevice-glue/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer:
+pkgname=libimobiledevice-glue
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Library for common code of the libimobiledevice project"
+url="https://github.com/libimobiledevice/libimobiledevice-glue"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ libplist-dev
+ "
+subpackages="$pkgname-dev"
+source="https://github.com/libimobiledevice/libimobiledevice-glue/releases/download/$pkgver/libimobiledevice-glue-$pkgver.tar.bz2"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b9bc696ba857e8d58dea83f3333f80fb94a4802bfa458820fdb3575263f317324b33ca14cadcf2d54cbf15df492ccc16c759e33c1b69698f4dbecc8138e6915d libimobiledevice-glue-1.0.0.tar.bz2
+"
diff --git a/testing/libiodata/APKBUILD b/testing/libiodata/APKBUILD
deleted file mode 100644
index d60c1c96456..00000000000
--- a/testing/libiodata/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libiodata
-pkgver=0.19.11
-pkgrel=0
-pkgdesc="A library for reading and writing simple structured data"
-url="https://git.sailfishos.org/mer-core/libiodata"
-arch="all"
-license="LGPL-2.1-only"
-makedepends="bison flex qt5-qtbase-dev argp-standalone"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libiodata/-/archive/$pkgver/libiodata-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make -j1 # Multi-threaded builds are broken
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="3b86a0c76fc995a42d3b4fac8fd504696a80d627a04b37adb01cf3da6533e5bf7fef0319589da1cc1d3224cf8a14437166d20b302cd661f9aad70bab3a23f585 libiodata-0.19.11.tar.gz"
diff --git a/testing/libiphb/APKBUILD b/testing/libiphb/APKBUILD
deleted file mode 100644
index 590c22acf0e..00000000000
--- a/testing/libiphb/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libiphb
-pkgver=1.2.5
-pkgrel=0
-pkgdesc="Nemo's libiphb"
-url="https://git.sailfishos.org/mer-core/libiphb"
-arch="all"
-license="LGPL-2.1-or-later"
-depends_dev="glib-dev dbus-dev dbus-glib-dev mce-dev libdsme-dev"
-makedepends="$depends_dev libtool automake autoconf"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libiphb/-/archive/$pkgver/libiphb-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-prepare() {
- default_prepare
-
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="e870532bb698c774eda4b644b611a7fbc650d9680682ac680845c3749dab8d5774d8596dd3d0ce76190a3786d3f54d3ecab8997fcc23cd843da882690783259b libiphb-1.2.5.tar.gz"
diff --git a/testing/libirecovery/APKBUILD b/testing/libirecovery/APKBUILD
new file mode 100644
index 00000000000..ee0ec9229a3
--- /dev/null
+++ b/testing/libirecovery/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Kasper K <kasperkantz@outlook.com>
+# Maintainer: Kasper K <kasperkantz@outlook.com>
+pkgname=libirecovery
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux"
+url="https://libimobiledevice.org"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ libimobiledevice-glue-dev
+ libusb-dev
+ readline-dev
+ "
+subpackages="$pkgname-dev $pkgname-progs"
+source="https://github.com/libimobiledevice/libirecovery/releases/download/$pkgver/libirecovery-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+progs() {
+ pkgdesc="Tools that talks iPhone and iPod Touch devices' protocols on Linux"
+ depends=""
+ amove usr/bin
+}
+
+sha512sums="
+c37c426651abd2b8532ddf46c9c004fc5993c3ab6f559f920a64db68c4ffd582109348d5954f3cda8915f8dc8195c9b93075587a841655865bdef08234c58fc4 libirecovery-1.1.0.tar.bz2
+"
diff --git a/testing/libiscsi/APKBUILD b/testing/libiscsi/APKBUILD
index 8707449d41b..18a02486fa1 100644
--- a/testing/libiscsi/APKBUILD
+++ b/testing/libiscsi/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname="libiscsi"
pkgver="1.19.0"
-pkgrel=0
+pkgrel=2
pkgdesc="iSCSI client library and utilities"
url="https://github.com/sahlberg/libiscsi"
arch="all"
diff --git a/testing/libjodycode/APKBUILD b/testing/libjodycode/APKBUILD
new file mode 100644
index 00000000000..bc8bdb6c17c
--- /dev/null
+++ b/testing/libjodycode/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer:
+pkgname=libjodycode
+pkgver=3.1
+pkgrel=1
+pkgdesc="Shared code used by several utilities written by Jody Bruchon"
+url="https://github.com/jbruchon/libjodycode"
+arch="all"
+license="MIT"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jbruchon/libjodycode/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ make \
+ NO_SIMD=1 \
+ NO_SSE2=1 \
+ NO_AVX2=1 \
+ CFLAGS="$CFLAGS -DNO_SSE2 -DNO_SIMD -DNO_AVX2 -flto=auto"
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+ rm -v "$pkgdir"/usr/lib/*.a
+}
+
+sha512sums="
+980f1797084594f710cae92b26d10c46a73415d11e89af608c8a87730ea39f497fec0889f9bd88af7c23aa0067dd6642758edc2b2756d9eba6e6a4a50c583751 libjodycode-3.1.tar.gz
+"
diff --git a/testing/libkkc/APKBUILD b/testing/libkkc/APKBUILD
new file mode 100644
index 00000000000..12004bdb8a7
--- /dev/null
+++ b/testing/libkkc/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer:
+pkgname=libkkc
+pkgver=0.3.5
+pkgrel=2
+pkgdesc="Japanese Kana Kanji conversion input method library"
+url="https://github.com/ueno/libkkc"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ intltool
+ json-glib-dev
+ libgee-dev
+ libmarisa-dev
+ py3-marisa
+ "
+subpackages="$pkgname-dev $pkgname-lang kkc-package-data"
+source="https://github.com/ueno/libkkc/releases/download/v$pkgver/libkkc-$pkgver.tar.gz
+ $pkgname-py3.patch::https://github.com/ueno/libkkc/commit/ba1c1bd3eb86d887fc3689c3142732658071b5f7.patch
+ "
+
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --disable-static \
+ --disable-silent-rules \
+ --disable-vapigen
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+data() {
+ pkgdesc="$pkgdesc (data downloader script)"
+ amove usr/bin
+}
+
+lang() {
+ pkgdesc="translations for $pkgname"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/lib/locale "$subpkgdir"/usr/share/
+}
+
+sha512sums="
+f611c3104a22ad38af29746870849d8937b6af2a7fee0952cc25f36ef845b5617a192df7ca63ff2a507384f7a6a13c9c1b4fa3b9a34f3f041bee8793d04b9236 libkkc-0.3.5.tar.gz
+ba74aa8e545d32d40244f86009a49dedb575a6a8dd171baa5fc3e9a7aeac0ea51e4a7e2064a3f2b62f09bfa4751e3a33454a996b0acfe0fab45413dd84881755 libkkc-py3.patch
+"
diff --git a/testing/liblastfm-qt/APKBUILD b/testing/liblastfm-qt/APKBUILD
new file mode 100644
index 00000000000..b392cb4fc9d
--- /dev/null
+++ b/testing/liblastfm-qt/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=liblastfm-qt
+pkgver=1.1.10_git20190823
+pkgrel=2
+_commit=2ce2bfe1879227af8ffafddb82b218faff813db9
+pkgdesc="A Qt C++ library for the Last.fm webservices "
+url="https://last.fm"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake qt5-qtbase-dev fftw-dev libsamplerate-dev"
+subpackages="$pkgname-dev"
+source="liblastfm-qt-$pkgver.tar.gz::https://github.com/lastfm/liblastfm/archive/$_commit.tar.gz
+ remove-deprecated-staging-server.patch
+ remove-dynamic-exception-specifications.patch"
+builddir="$srcdir/liblastfm-$_commit"
+options="!check" # broken, redirects don't work
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_FINGERPRINT=ON \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+f225e8ce2a7838182ee1300941182fb97694966469f58b640815fc08c8664c35566bd7d82297c44ca33147caf4074c9d59125c571615ad37ce408d1e6e1e4295 liblastfm-qt-1.1.10_git20190823.tar.gz
+844dd940058224bdc4610a4aad5a934ee398908fc5fea920df9437c71f4a23b40c445d5a052f162780458938b9c0917584dfe19cb904fb936c01a3f4f37d668d remove-deprecated-staging-server.patch
+a466b6a17e2977ed275ee094e0523f1b96590d089bf2fbf1ce345ea93ac57e0c3cb29b91bc0e47db794b8e02e2a098cc90c6a432ee1461d7d7ef28704303892d remove-dynamic-exception-specifications.patch
+"
diff --git a/testing/liblastfm-qt/remove-deprecated-staging-server.patch b/testing/liblastfm-qt/remove-deprecated-staging-server.patch
new file mode 100644
index 00000000000..130130d9441
--- /dev/null
+++ b/testing/liblastfm-qt/remove-deprecated-staging-server.patch
@@ -0,0 +1,98 @@
+From 9c5d072b55f2863310e40291677e6397e9cbc3c2 Mon Sep 17 00:00:00 2001
+From: Pedro de Carvalho Gomes <pedro.gomes@ipsoft.com>
+Date: Tue, 10 Mar 2020 16:44:57 +0100
+Subject: [PATCH] Remove deprecated staging server and fix test for QT5 at
+ Ubuntu 19.10
+
+---
+ src/ws.cpp | 17 ++++++++---------
+ src/ws.h | 9 +++++----
+ tests/CMakeLists.txt | 4 ++++
+ 3 files changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/src/ws.cpp b/src/ws.cpp
+index a7559041..f6ace2d1 100644
+--- a/src/ws.cpp
++++ b/src/ws.cpp
+@@ -32,7 +32,8 @@
+ #include <QMutex>
+ #include <QSslSocket>
+
+-static lastfm::ws::Scheme theScheme = lastfm::ws::Http;
++static lastfm::ws::Scheme theScheme = lastfm::ws::Https;
++static QString theHost = LASTFM_WS_HOSTNAME;
+ static QMap< QThread*, QNetworkAccessManager* > threadNamHash;
+ static QSet< QThread* > ourNamSet;
+ static QMutex namAccessMutex;
+@@ -96,15 +97,13 @@ lastfm::ws::setScheme( lastfm::ws::Scheme scheme )
+ QString
+ lastfm::ws::host()
+ {
+- QStringList const args = QCoreApplication::arguments();
+- if (args.contains( "--debug"))
+- return "ws.staging.audioscrobbler.com";
+-
+- int const n = args.indexOf( "--host" );
+- if (n != -1 && args.count() > n+1)
+- return args[n+1];
++ return theHost;
++}
+
+- return LASTFM_WS_HOSTNAME;
++void
++lastfm::ws::setHost( QString host )
++{
++ theHost = host;
+ }
+
+ static QUrl baseUrl()
+diff --git a/src/ws.h b/src/ws.h
+index 8d2a41e8..e6da343d 100644
+--- a/src/ws.h
++++ b/src/ws.h
+@@ -44,7 +44,7 @@ namespace lastfm
+
+ namespace ws
+ {
+- /** both of these are provided when you register at http://last.fm/api */
++ /** both of these are provided when you register at https://www.last.fm/api/ */
+ LASTFM_DLLEXPORT extern const char* SharedSecret;
+ LASTFM_DLLEXPORT extern const char* ApiKey;
+
+@@ -54,8 +54,8 @@ namespace lastfm
+
+ /** Some webservices require authentication. See the following
+ * documentation:
+- * http://www.last.fm/api/authentication
+- * http://www.last.fm/api/desktopauth
++ * https://www.last.fm/api/authentication
++ * https://www.last.fm/api/desktopauth
+ * You have to authenticate and then assign to SessionKey, liblastfm does
+ * not do that for you. Also we do not store this. You should store this!
+ * You only need to authenticate once, and that key lasts forever!
+@@ -122,9 +122,10 @@ namespace lastfm
+ LASTFM_DLLEXPORT void setScheme( Scheme scheme );
+ LASTFM_DLLEXPORT Scheme scheme();
+
++ LASTFM_DLLEXPORT void setHost( QString host );
+ LASTFM_DLLEXPORT QString host();
+
+- /** the map needs a method entry, as per http://last.fm/api */
++ /** the map needs a method entry, as per https://www.last.fm/api/ */
+ LASTFM_DLLEXPORT QUrl url( QMap<QString, QString>, bool sessionKey = true);
+ LASTFM_DLLEXPORT QNetworkReply* get( QMap<QString, QString> );
+ /** generates api sig, includes api key, and posts, don't add the api
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index f85bf70a..496fd0dd 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -1,5 +1,9 @@
+ include(lastfm_add_test.cmake)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/../src)
+
++if(NOT BUILD_WITH_QT4)
++ find_package(Qt5Test REQUIRED)
++endif()
++
+ lastfm_add_test(UrlBuilder)
+ lastfm_add_test(Track)
diff --git a/testing/liblastfm-qt/remove-dynamic-exception-specifications.patch b/testing/liblastfm-qt/remove-dynamic-exception-specifications.patch
new file mode 100644
index 00000000000..df797cbef8b
--- /dev/null
+++ b/testing/liblastfm-qt/remove-dynamic-exception-specifications.patch
@@ -0,0 +1,57 @@
+From d51ad3e759331d7d79c6675c5d22541280bf9a70 Mon Sep 17 00:00:00 2001
+From: Xeonacid <h.dwwwwww@gmail.com>
+Date: Tue, 5 Oct 2021 00:04:08 +0800
+Subject: [PATCH] Remove dynamic exception specifications
+
+ISO C++17 does not allow dynamic exception specifications.
+
+(https://github.com/lastfm/liblastfm/pull/41)
+---
+ src/fingerprint/Fingerprint.cpp | 4 ++--
+ src/fingerprint/Fingerprint.h | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/fingerprint/Fingerprint.cpp b/src/fingerprint/Fingerprint.cpp
+index 55f77a45..3817fcee 100644
+--- a/src/fingerprint/Fingerprint.cpp
++++ b/src/fingerprint/Fingerprint.cpp
+@@ -94,7 +94,7 @@ lastfm::Fingerprint::data() const
+
+
+ void
+-lastfm::Fingerprint::generate( FingerprintableSource* ms ) throw( Error )
++lastfm::Fingerprint::generate( FingerprintableSource* ms )
+ {
+ //TODO throw if we can't get required metadata from the track object
+
+@@ -306,7 +306,7 @@ lastfm::Fingerprint::submit() const
+
+
+ void
+-lastfm::Fingerprint::decode( QNetworkReply* reply, bool* complete_fingerprint_requested ) throw( Error )
++lastfm::Fingerprint::decode( QNetworkReply* reply, bool* complete_fingerprint_requested )
+ {
+ // The response data will consist of a number and a string.
+ // The number is the fpid and the string is either FOUND or NEW
+diff --git a/src/fingerprint/Fingerprint.h b/src/fingerprint/Fingerprint.h
+index 537d08c3..9ac0dbd5 100644
+--- a/src/fingerprint/Fingerprint.h
++++ b/src/fingerprint/Fingerprint.h
+@@ -71,7 +71,7 @@ namespace lastfm
+ };
+
+ /** This is CPU intensive, do it in a thread in your GUI application */
+- void generate( FingerprintableSource* ) throw( Error );
++ void generate( FingerprintableSource* );
+
+ /** Submits the fingerprint data to Last.fm in order to get a FingerprintId
+ * back. You need to wait for the QNetworkReply to finish before you can
+@@ -82,7 +82,7 @@ namespace lastfm
+ * will be valid. Otherwise we will throw. You always get a valid id
+ * or a throw.
+ */
+- void decode( QNetworkReply*, bool* lastfm_needs_a_complete_fingerprint = 0 ) throw( Error );
++ void decode( QNetworkReply*, bool* lastfm_needs_a_complete_fingerprint = 0 );
+ };
+
+
diff --git a/testing/liblinbox/APKBUILD b/testing/liblinbox/APKBUILD
new file mode 100644
index 00000000000..d5be20d3547
--- /dev/null
+++ b/testing/liblinbox/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=liblinbox
+pkgver=1.7.0
+pkgrel=3
+pkgdesc="Library for exact, high-performance linear algebra computation"
+url="https://linalg.org"
+# armhf, armv7, x86: fail tests
+# s390x: blocked by flint
+arch="all !armhf !armv7 !x86 !s390x"
+license="LGPL-2.1-or-later"
+makedepends="
+ fflas-ffpack
+ flint-dev
+ fplll-dev
+ gfortran
+ gmp-dev
+ libiml-dev
+ libm4rie-dev
+ mpfr-dev
+ openblas-dev
+ "
+source="https://github.com/linbox-team/linbox/releases/download/v$pkgver/linbox-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+builddir="$srcdir/linbox-$pkgver"
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --program-prefix= \
+ --without-archnative
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cb4e848186d1f6357f498d1e3bda6484b4c789c02440f9614a227a2ae206a31fb20b32be40bda74da3f2f8f981bbd58d80fc97c95499b5151bb06eafb867ef9e linbox-1.7.0.tar.gz
+"
diff --git a/testing/liblo/APKBUILD b/testing/liblo/APKBUILD
deleted file mode 100644
index 2cc87dd6f9b..00000000000
--- a/testing/liblo/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=liblo
-pkgver=0.31
-pkgrel=0
-pkgdesc="Open Sound Control protocol implementation for POSIX systems"
-url="http://liblo.sourceforge.net"
-arch="all"
-license="LGPL-2.1-or-later"
-subpackages="$pkgname-dev"
-source="http://downloads.sourceforge.net/liblo/liblo-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="97f9561296c2e53f92db0cfee625687208b490f8bc229b6cffe88b43ca2a8da1ed3217aaa2151245ea483e54ad6c5e92b9cf10a20661766fa6d3bedb5a8cdd01 liblo-0.31.tar.gz"
diff --git a/testing/liblouis/APKBUILD b/testing/liblouis/APKBUILD
deleted file mode 100644
index a2ed4bc819b..00000000000
--- a/testing/liblouis/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=liblouis
-pkgver=3.13.0
-pkgrel=0
-pkgdesc="Braille translator and back-translator"
-url="http://liblouis.org/"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="help2man python3"
-subpackages="$pkgname-static $pkgname-dev $pkgname-bin:_bin $pkgname-doc"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/liblouis/liblouis/releases/download/v$pkgver/liblouis-$pkgver.tar.gz
- "
-options="!check" # Some unknown dependency is required
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-ucs4
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-_bin() {
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr
-}
-
-sha512sums="68f0205dc55a106c5707f959c1c0d3c121dfe62f263a664e6bec0780bee65cce2fb5d7033ae1c8312d1d79f7ccaf650af71906e8651b60f11219758e41051b61 liblouis-3.13.0.tar.gz"
diff --git a/testing/libm4ri/APKBUILD b/testing/libm4ri/APKBUILD
new file mode 100644
index 00000000000..0b98a4bac8b
--- /dev/null
+++ b/testing/libm4ri/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libm4ri
+pkgver=20200125
+pkgrel=4
+pkgdesc="Library for fast arithmetic with dense matrices over F2"
+url="https://github.com/malb/m4ri"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ autoconf
+ automake
+ libpng-dev
+ libtool
+ "
+source="https://github.com/malb/m4ri/archive/release-$pkgver/m4ri-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-dev"
+builddir="$srcdir/m4ri-release-$pkgver"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-thread-safe \
+ --enable-openmp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+220c965c2c65aa96d7a138bdaf987e5649199464804bdf80a41f04f645934a07236cd5667a9752c4491bc3727dba6eda1f17779cdcf93d453374f5d7a4976698 m4ri-20200125.tar.gz
+"
diff --git a/testing/libm4rie/APKBUILD b/testing/libm4rie/APKBUILD
new file mode 100644
index 00000000000..8ab2909c795
--- /dev/null
+++ b/testing/libm4rie/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libm4rie
+pkgver=20200125
+pkgrel=3
+pkgdesc="Library for fast arithmetic with dense matrices over GF(2^e) for 2 <= e <= 16"
+url="https://bitbucket.org/malb/m4rie"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="libm4ri-dev"
+source="https://bitbucket.org/malb/m4rie/downloads/m4rie-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-dev"
+builddir="$srcdir/m4rie-$pkgver"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-openmp
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+761ba9d8eeec381356b45d37a63bac9e70e2b1227435fb717d89a2358df610458fd4f7b7b4af90ad24c918bae81a25c926380761d2c514a762b92d8c661b52e7 m4rie-20200125.tar.gz
+"
diff --git a/testing/libmce-qt/APKBUILD b/testing/libmce-qt/APKBUILD
deleted file mode 100644
index 624d09be10f..00000000000
--- a/testing/libmce-qt/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libmce-qt
-pkgver=1.4.2
-pkgrel=0
-pkgdesc="Qt client for mce, and a declarative plugin for it"
-url="https://git.sailfishos.org/mer-core/libmce-qt"
-arch="all"
-license="BSD-3-Clause"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev mce-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libmce-qt/-/archive/$pkgver/libmce-qt-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="ab331604b5dd2504e8e7f4590e87f1eab021d3fa206ebae4daa8ae9aa1aa7d16e074ea5a0a0060d9eef908d50df13b838fdfbb182a9948eac4b0e43b5a582050 libmce-qt-1.4.2.tar.gz"
diff --git a/testing/libmdbx/0001-mdbx-Remove-all-checks-for-amalgated-or-git-source-i.patch b/testing/libmdbx/0001-mdbx-Remove-all-checks-for-amalgated-or-git-source-i.patch
new file mode 100644
index 00000000000..8fb2bcddae5
--- /dev/null
+++ b/testing/libmdbx/0001-mdbx-Remove-all-checks-for-amalgated-or-git-source-i.patch
@@ -0,0 +1,207 @@
+From b4acc32ca535c93b3a80ebfaddf898250ca12916 Mon Sep 17 00:00:00 2001
+From: Noel Kuntze <noel.kuntze@thermi.consulting>
+Date: Thu, 8 Jul 2021 17:01:30 +0200
+Subject: [PATCH] mdbx: Remove all checks for amalgated or git source,
+ implement tests into CMakeLists.txt
+
+---
+ CMakeLists.txt | 152 ++++++++++++++++++++++++++++++++++++++-----------
+ GNUmakefile | 12 +---
+ 2 files changed, 121 insertions(+), 43 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e74432b0..7b7f2898 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -55,38 +55,8 @@ else()
+ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_AVAILABLE FALSE)
+ endif()
+
+-if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/core.c" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/alloy.c" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/version.c.in" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/man1" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/mdbx_chk.c" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/mdbx.c++")
+- set(MDBX_AMALGAMATED_SOURCE FALSE)
+- find_program(GIT git)
+- if(NOT GIT)
+- message(SEND_ERROR "Git command-line tool not found")
+- endif()
+- set(MDBX_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
+-elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/mdbx.c" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/mdbx.c++" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/man1" AND
+- EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/mdbx_chk.c")
+- set(MDBX_AMALGAMATED_SOURCE TRUE)
+- set(MDBX_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+-else()
+- message(FATAL_ERROR "\n"
+- "Please don't use tarballs nor zips which are automatically provided by Github! "
+- "These archives do not contain version information and thus are unfit to build libmdbx. "
+- "You can vote for ability of disabling auto-creation such unsuitable archives at https://github.community/t/disable-tarball\n"
+- "Instead of above, just clone the git repository, either download a tarball or zip with the properly amalgamated source core. "
+- "For embedding libmdbx use a git-submodule or the amalgamated source code.\n"
+- "Please, avoid using any other techniques.")
+-endif()
++set(MDBX_AMALGAMATED_SOURCE FALSE)
++set(MDBX_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
+
+ if(DEFINED PROJECT_NAME)
+ set(SUBPROJECT ON)
+@@ -677,6 +647,124 @@ endif()
+
+ ################################################################################
+
++# example
++add_executable(mdbx_example mdbx.h example/example-mdbx.c)
++target_setup_options(mdbx_example)
++target_link_libraries(mdbx_example mdbx)
++if(MDBX_C_STANDARD)
++ set_target_properties(mdbx_example PROPERTIES
++ C_STANDARD ${MDBX_C_STANDARD} C_STANDARD_REQUIRED ON)
++endif()
++
++################################################################################
++
++# add targets for tests
++
++if(CMAKE_GENERATOR_PLATFORM MATCHES CYGWIN.* OR
++ CMAKE_GENERATOR_PLATFORM MATCHES MINGW.* OR
++ CMAKE_GENERATOR_PLATFORM MATCHES MSYS.* OR
++ CMAKE_GENERATOR_PLATFORM MATCHES Windows.*)
++ set(TEST_SRC
++ test/osal-windows.cc)
++else()
++ set(TEST_SRC
++ test/osal-unix.cc)
++endif()
++
++if(CMAKE_GENERATOR_PLATFORM MATCHES Darwin.* OR
++ CMAKE_GENERATOR_PLATFORM MATCHES Mach.*)
++ set(TEST_ITER
++ 2)
++else()
++ set(TEST_ITER
++ 12)
++endif()
++
++if(NOT TEST_DB)
++ set(TEST_DB
++ /tmp/mdbx-test.db
++ )
++endif()
++if(NOT TEST_LOG)
++ set(TEST_LOG
++ /tmp/mdbx-test.log
++ )
++endif()
++
++if(MDBX_ENABLE_TESTS)
++ add_custom_target(build-test ALL
++ DEPENDS mdbx_example mdbx_test mdbx_chk
++ )
++
++ add_custom_target(mdbx-test
++ COMMAND
++ rm -f "${TEST_DB}" "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_test --table=+data.integer --keygen.split=29 --datalen.min=min --datalen.max=max --progress --console=no "--repeat=${TEST_ITER}" "--pathname=${TEST_DB}" --dont-cleanup-after ${MDBX_TEST_EXTRA} basic | gzip >> "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_test --mode=-writemap,-nosync-safe,-lifo --progress --console=no --repeat=12 "--pathname=${TEST_DB}" --dont-cleanup-after ${MDBX_TEST_EXTRA} basic | gzip >> "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_chk -vvn "${TEST_DB}"
++ COMMAND
++ ./mdbx_chk -vvn "${TEST_DB}-copy"
++ DEPENDS mdbx build-test
++ )
++ add_custom_target(test-singleprocess
++ COMMAND
++ rm -f "${TEST_DB}" "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_test --table=+data.integer --keygen.split=29 --datalen.min=min --datalen.max=max --progress --console=no --repeat=42 "--pathname=${TEST_DB}" --dont-cleanup-after ${MDBX_TEST_EXTRA} --hill| gzip >> "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_test --progress --console=no --repeat=2 "--pathname=${TEST_DB}" --dont-cleanup-before --dont-cleanup-after --copy | gzip >> "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_test --mode=-writemap,-nosync-safe,-lifo --progress --console=no --repeat=42 "--pathname=${TEST_DB}" --dont-cleanup-after ${MDBX_TEST_EXTRA} --nested| gzip >> ${TEST_LOG}.gz
++ COMMAND
++ ./mdbx_chk -vvn "${TEST_DB}"
++ COMMAND
++ ./mdbx_chk -vvn "${TEST_DB}-copy"
++ DEPENDS build-test
++ )
++ add_custom_target(test-fault
++ COMMAND
++ rm -f "${TEST_DB}" "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_test --progress --console=no "--pathname=${TEST_DB}" --inject-writefault=42 --dump-config --dont-cleanup-after ${MDBX_TEST_EXTRA} basic | gzip >> "${TEST_LOG}.gz"
++ COMMAND
++ ./mdbx_chk -vvnw "${TEST_DB}"
++ COMMAND
++ [ -e "${TEST_DB}-copy" ] && ./mdbx_chk -vvn "${TEST_DB}-copy"
++ DEPENDS build-test
++ )
++
++ if(USE_VALGRIND)
++ set_target_properties(build-test
++ PROPERTIES
++ CFLAGS_EXTRA "-Ofast -DMDBX_USE_VALGRIND")
++ add_custom_target(memcheck
++ DEPENDS valgrind)
++ add_custom_target(valgrind
++ COMMAND
++ rm -f valgrind-*.log "${TEST_DB}" "${TEST_LOG}.gz"
++ COMMAND
++ ${VALGRIND_EXE} ./mdbx_test --table=+data.integer --keygen.split=29 --datalen.min=min --datalen.max=max --progress --console=no --repeat=2 "--pathname=${TEST_DB}" --dont-cleanup-after ${MDBX_TEST_EXTRA} basic | gzip >> "${TEST_LOG}.gz" &&
++ ${VALGRIND_EXE} ./mdbx_test --progress --console=no "--pathname=${TEST_DB}" --dont-cleanup-before --dont-cleanup-after --copy | gzip >> "${TEST_LOG}.gz" &&
++ ${VALGRIND_EXE} ./mdbx_test --mode=-writemap,-nosync-safe,-lifo --progress --console=no --repeat=4 "--pathname=${TEST_DB}" --dont-cleanup-after ${MDBX_TEST_EXTRA} basic | gzip >> "${TEST_LOG}.gz" &&
++ ${VALGRIND_EXE} ./mdbx_chk -vvn "${TEST_DB}" &&
++ ${VALGRIND_EXE} ./mdbx_chk -vvn "${TEST_DB}-copy"
++ DEPENDS build-test
++ )
++ endif()
++
++ if(USE_GCC_ANALYZER)
++ set_target_properties(build-test
++ PROPERTIES
++ CFLAGS_EXTRA "-Og -fanalyzer -Wno-error")
++ endif()
++
++endif()
++
++################################################################################
++
+ # mdbx-shared-lib installation
+ if(NOT DEFINED MDBX_DLL_INSTALL_DESTINATION)
+ if(WIN32)
+diff --git a/GNUmakefile b/GNUmakefile
+index 509a0923..cbe43b23 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -397,17 +397,7 @@ mdbx_test: $(TEST_OBJ) libmdbx.$(SO_SUFFIX)
+ $(QUIET)$(CXX) $(CXXFLAGS) $(TEST_OBJ) -Wl,-rpath . -L . -l mdbx $(EXE_LDFLAGS) $(LIBS) -o $@
+
+ $(git_DIR)/HEAD $(git_DIR)/index $(git_DIR)/refs/tags:
+- @echo '*** ' >&2
+- @echo '*** Please don''t use tarballs nor zips which are automatically provided by Github !' >&2
+- @echo '*** These archives do not contain version information and thus are unfit to build libmdbx.' >&2
+- @echo '*** You can vote for ability of disabling auto-creation such unsuitable archives at https://github.community/t/disable-tarball' >&2
+- @echo '*** ' >&2
+- @echo '*** Instead of above, just clone the git repository, either download a tarball or zip with the properly amalgamated source core.' >&2
+- @echo '*** For embedding libmdbx use a git-submodule or the amalgamated source code.' >&2
+- @echo '*** ' >&2
+- @echo '*** Please, avoid using any other techniques.' >&2
+- @echo '*** ' >&2
+- @false
++ @true
+
+ src/version.c: src/version.c.in $(lastword $(MAKEFILE_LIST)) $(git_DIR)/HEAD $(git_DIR)/index $(git_DIR)/refs/tags
+ @echo ' MAKE $@'
+--
+2.32.0
+
diff --git a/testing/libmdbx/APKBUILD b/testing/libmdbx/APKBUILD
new file mode 100644
index 00000000000..9395a84e7a5
--- /dev/null
+++ b/testing/libmdbx/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=libmdbx
+pkgver=0.11.8
+pkgrel=0
+pkgdesc="fast, compact, powerful, embedded, transactional key-value database, with permissive license"
+url="https://libmdbx.dqdkfa.ru/"
+arch="all"
+license="OLDAP-2.8"
+makedepends="linux-headers cmake bash samurai"
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Thermi/libmdbx/archive/refs/tags/v$pkgver.tar.gz
+ 0001-mdbx-Remove-all-checks-for-amalgated-or-git-source-i.patch
+ fix-example.patch
+ "
+
+build() {
+ echo "$pkgver.0" > VERSION
+
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ export CFLAGS="$CFLAGS -fPIC -Wno-int-to-pointer-cast"
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DMDBX_ENABLE_TESTS=True \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ TEST_DB=/tmp/mdbx-test.db TEST_LOG=/tmp/mdbx-test.log.gz \
+ ninja -C build mdbx-test test-singleprocess build-test
+ rm /tmp/mdbx-test.*
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+5751de7e288dc63f428a3cbeea5e9e355bfc96163d826b1a9d55c44b1b9b0e22c2dedba56d4ebca2d2edd7c85d7f6724526cf6183b2dd497e2cf7307548e0095 libmdbx-0.11.8.tar.gz
+5e5fef4219279b10f0d4371fcbf3e2d4a7d958eb337f9de92aebb6a7d0d6644faa65eb804f46021678997a638ac601b03d9facbbf1164b45ae9075384d300df2 0001-mdbx-Remove-all-checks-for-amalgated-or-git-source-i.patch
+baeb79efa7bb5d36af474f6dbefece9c597cf0b4d86cee96b9855da9cba4ee43aa46fab97c0c85c74ac76df9c4e3adc39666775ae14d79c394d07344569940ce fix-example.patch
+"
diff --git a/testing/libmdbx/fix-example.patch b/testing/libmdbx/fix-example.patch
new file mode 100644
index 00000000000..3c2b86d4ba6
--- /dev/null
+++ b/testing/libmdbx/fix-example.patch
@@ -0,0 +1,11 @@
+--- a/example/example-mdbx.c
++++ b/example/example-mdbx.c
+@@ -18,7 +18,7 @@
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+
+-#include "mdbx.h"
++#include "../mdbx.h"
+ #include <limits.h>
+ #include <stdint.h>
+ #include <stdio.h>
diff --git a/testing/libmdf/APKBUILD b/testing/libmdf/APKBUILD
index 22bef3436fa..d5639b3259c 100644
--- a/testing/libmdf/APKBUILD
+++ b/testing/libmdf/APKBUILD
@@ -1,33 +1,37 @@
# Contributor: Henrik Holst <henrik.holst@millistream.com>
# Maintainer:
pkgname=libmdf
-pkgver="1.0.23"
-pkgrel=1
+pkgver=1.0.27
+pkgrel=0
pkgdesc="Millistream Data Feed API library"
url="https://millistream.com"
-arch="all"
-license="LGPL-3.0"
-depends=""
-makedepends="openssl-dev zlib-dev"
-install=""
+arch="all !ppc64le" # Fails to fetch on builders
+license="LGPL-3.0-or-later"
+makedepends="
+ openssl-dev>3
+ zlib-dev
+ zstd-dev
+ "
subpackages="$pkgname-dev"
-source="https://packages.millistream.com/source/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://packages.millistream.com/source/libmdf-$pkgver.tar.gz"
build() {
- cd "$builddir"
- ./configure --prefix=/usr
- make
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --disable-static
+ make
}
check() {
- cd "$builddir"
- make check
+ make check
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
}
-sha512sums="31d7922cb72df6bf5c3df1b3fffd2b5b6df0f00a5c4ff9a69d4018cb7e44d5f845f2ca4fe12d709db580e4ae1e9763ffa3bf8566bb0b8e354cc957aaf81115eb libmdf-1.0.23.tar.gz"
+sha512sums="
+fdcd148d4abb3914c90cf5ddc9ea4b0bb47b79b4c631d3ca4559137a39a670c955669be0893255a10268a0f4ec9dfa3c206d9fdf09f607e119edef5adaefe203 libmdf-1.0.27.tar.gz
+"
diff --git a/testing/libmedc/APKBUILD b/testing/libmedc/APKBUILD
new file mode 100644
index 00000000000..b0d7e48db99
--- /dev/null
+++ b/testing/libmedc/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=libmedc
+pkgver=4.1.1
+pkgrel=2
+pkgdesc="Open source library for numerical simulation"
+url="https://www.salome-platform.org/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake hdf5-dev swig python3-dev samurai"
+options="!check" #test suite is nonfunctional with python bindings
+subpackages="$pkgname-dev $pkgname-doc $pkgname-python-pyc $pkgname-python:_py"
+source="
+ https://files.salome-platform.org/Salome/medfile/med-$pkgver.tar.gz
+ hdf5.patch
+ cmake-config-dir.patch
+ "
+builddir="$srcdir/med-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMEDFILE_BUILD_TESTS=OFF \
+ -DMEDFILE_BUILD_PYTHON=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+_py() {
+ pkgdesc="Python bindings for libmedc"
+ depends="python3"
+ amove usr/lib/python3*
+}
+
+sha512sums="
+f211fa82750a7cc935baa3a50a55d16e40117a0f2254b482492ba8396d82781ca84960995da7a16b2b5be0b93ce76368bf4b311bb8af0e5f0243e7051c9c554c med-4.1.1.tar.gz
+68d9291e73a68d674081314028c0fce7bbd4a7b78b93b7e5078117ce62f2d07318bc33ec95091ce677148ec3926c1ce653d0760c34e74b29257a7be59210f040 hdf5.patch
+8d0f58cd67d205fbacaff0e6da76e2ee5473457b478ede13a551ebe5853c0716c7406b74c3792e1ace33a34d352fccca8dd2940f063a7c060a12529d060a991a cmake-config-dir.patch
+"
diff --git a/testing/libmedc/cmake-config-dir.patch b/testing/libmedc/cmake-config-dir.patch
new file mode 100644
index 00000000000..e1f43a47cc3
--- /dev/null
+++ b/testing/libmedc/cmake-config-dir.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -101,7 +101,7 @@
+ IF(WIN32 AND NOT CYGWIN)
+ SET(INSTALL_CMAKE_CONFIG_DIR cmake)
+ ELSE()
+- SET(INSTALL_CMAKE_CONFIG_DIR share/cmake/medfile-${MED_STR_VERSION})
++ SET(INSTALL_CMAKE_CONFIG_DIR lib${LIB_SUFFIX}/cmake/medfile-${MED_STR_VERSION})
+ ENDIF()
+ SET(INSTALL_INCLUDE_DIR include)
+
diff --git a/testing/libmedc/hdf5.patch b/testing/libmedc/hdf5.patch
new file mode 100644
index 00000000000..bc4764b444d
--- /dev/null
+++ b/testing/libmedc/hdf5.patch
@@ -0,0 +1,94 @@
+Originally from https://gist.github.com/jedbrown/527ef81ff59a0dccf833da40fdd15a47
+diff -rupN med-4.1.0/config/cmake_files/medMacros.cmake med-4.1.0-new/config/cmake_files/medMacros.cmake
+--- med-4.1.0/config/cmake_files/medMacros.cmake 2021-12-03 09:35:30.675827163 +0100
++++ med-4.1.0-new/config/cmake_files/medMacros.cmake 2021-12-03 09:32:31.894994147 +0100
+@@ -447,7 +447,7 @@ MACRO(MED_FIND_HDF5)
+ ##
+ ## Requires 1.10.x version
+ ##
+- IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 10 OR NOT HDF_VERSION_RELEASE_REF GREATER 1)
++ IF (HDF5_VERSION VERSION_LESS 1.10.2)
+ MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.")
+ ENDIF()
+ ##
+diff -rupN med-4.1.0/src/ci/MEDfileCompatibility.c med-4.1.0-new/src/ci/MEDfileCompatibility.c
+--- med-4.1.0/src/ci/MEDfileCompatibility.c 2021-12-03 09:35:30.676827162 +0100
++++ med-4.1.0-new/src/ci/MEDfileCompatibility.c 2021-12-03 09:33:26.292942149 +0100
+@@ -71,7 +71,7 @@ MEDfileCompatibility(const char* const f
+ _hversionMMR=10000*_hmajeur+100*_hmineur+_hrelease;
+ /* ISCRUTE(_hversionMMR); */
+ /* ISCRUTE(HDF_VERSION_NUM_REF); */
+- if ( (_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF) ) *hdfok = MED_TRUE;
++ if (_hversionMMR >= HDF_VERSION_NUM_REF) *hdfok = MED_TRUE;
+
+ /* TODO : Vérifier si la version mineure HDF du fichier est supérieure
+ à la version mineure de la bibliothèque HDF utilisée :
+@@ -113,7 +113,7 @@ MEDfileCompatibility(const char* const f
+ #if MED_NUM_MAJEUR != 4
+ #error "Don't forget to update the test version here when you change the major version of the library !"
+ #endif
+-#if H5_VERS_MINOR > 10
++#if H5_VERS_MINOR > 14
+ #error "Don't forget to check the compatibility version of the library, depending on the internal hdf model choice !"
+ #error "Cf. _MEDfileCreate ..."
+ #endif
+diff -rupN med-4.1.0/src/hdfi/_MEDfileCreate.c med-4.1.0-new/src/hdfi/_MEDfileCreate.c
+--- med-4.1.0/src/hdfi/_MEDfileCreate.c 2021-12-03 09:35:30.677827161 +0100
++++ med-4.1.0-new/src/hdfi/_MEDfileCreate.c 2021-12-03 09:32:31.894994147 +0100
+@@ -159,7 +159,7 @@ med_idt _MEDfileCreate(const char * cons
+ * En HDF5-1.10.0p1 cela n'a aucun effet !
+ * Un test autoconf permet de fixer un intervalle de version HDF à MED.
+ */
+-#if H5_VERS_MINOR > 10
++#if H5_VERS_MINOR > 14
+ #error "Don't forget to change the compatibility version of the library !"
+ #endif
+
+diff -rupN med-4.1.0/src/hdfi/_MEDfileOpen.c med-4.1.0-new/src/hdfi/_MEDfileOpen.c
+--- med-4.1.0/src/hdfi/_MEDfileOpen.c 2021-12-03 09:35:30.677827161 +0100
++++ med-4.1.0-new/src/hdfi/_MEDfileOpen.c 2021-12-03 09:32:31.894994147 +0100
+@@ -72,7 +72,7 @@ med_idt _MEDfileOpen(const char * const
+
+ • The creation order tracking property, H5P_CRT_ORDER_TRACKED, has been set in the group creation property list (see H5Pset_link_creation_order).
+ */
+-#if H5_VERS_MINOR > 10
++#if H5_VERS_MINOR > 14
+ #error "Don't forget to change the compatibility version of the library !"
+ #endif
+ /* L'avantage de bloquer le modèle interne HDF5
+diff -rupN med-4.1.0/src/hdfi/_MEDmemFileOpen.c med-4.1.0-new/src/hdfi/_MEDmemFileOpen.c
+--- med-4.1.0/src/hdfi/_MEDmemFileOpen.c 2021-12-03 09:35:30.678827160 +0100
++++ med-4.1.0-new/src/hdfi/_MEDmemFileOpen.c 2021-12-03 09:32:31.894994147 +0100
+@@ -434,7 +434,7 @@ med_idt _MEDmemFileOpen(const char * con
+ goto ERROR;
+ }
+
+-#if H5_VERS_MINOR > 10
++#if H5_VERS_MINOR > 14
+ #error "Don't forget to change the compatibility version of the library !"
+ #endif
+ if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18) ) {
+diff -rupN med-4.1.0/src/hdfi/_MEDparFileCreate.c med-4.1.0-new/src/hdfi/_MEDparFileCreate.c
+--- med-4.1.0/src/hdfi/_MEDparFileCreate.c 2021-12-03 09:35:30.678827160 +0100
++++ med-4.1.0-new/src/hdfi/_MEDparFileCreate.c 2021-12-03 09:32:31.894994147 +0100
+@@ -64,7 +64,7 @@ med_idt _MEDparFileCreate(const char * c
+ * En HDF5-1.10.0p1 cela n'a aucun effet !
+ * Un test autoconf permet de fixer un intervalle de version HDF à MED.
+ */
+-#if H5_VERS_MINOR > 10
++#if H5_VERS_MINOR > 14
+ #error "Don't forget to change the compatibility version of the library !"
+ #endif
+
+diff -rupN med-4.1.0/src/hdfi/_MEDparFileOpen.c med-4.1.0-new/src/hdfi/_MEDparFileOpen.c
+--- med-4.1.0/src/hdfi/_MEDparFileOpen.c 2021-12-03 09:35:30.679827159 +0100
++++ med-4.1.0-new/src/hdfi/_MEDparFileOpen.c 2021-12-03 09:32:31.894994147 +0100
+@@ -55,7 +55,7 @@ med_idt _MEDparFileOpen(const char * con
+ MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_PARALLEL_MSG);
+ goto ERROR;
+ }
+-#if H5_VERS_MINOR > 10
++#if H5_VERS_MINOR > 14
+ #error "Don't forget to change the compatibility version of the library !"
+ #endif
+ if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18 ) ) {
diff --git a/testing/libmesode/10-patch-configure.patch b/testing/libmesode/10-patch-configure.patch
deleted file mode 100644
index 38a82cd8874..00000000000
--- a/testing/libmesode/10-patch-configure.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 2cd7621d4ca4a3f78dbfb6b15779cbf57770670a Mon Sep 17 00:00:00 2001
-From: Stuart McLaren <stuart.mclaren@hp.com>
-Date: Sun, 12 Mar 2017 21:21:43 +0000
-Subject: [PATCH] Allow configure to run on netbsd
-
-NetBSD's shell (/bin/sh) doesn't support '+='. Removing '+=' allows
-configure to run and the library to compile.
-
-This matches configure.ac in boothj5/profanity which also doesn't
-use '+='.
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6d19f2e..34a5fe4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -18,11 +18,11 @@ AS_CASE([$host_os],
- [PLATFORM="nix"])
-
- PKG_CHECK_MODULES([expat], [expat >= 2.0.0],
-- [PC_REQUIRES+=(expat)],
-+ [PC_REQUIRES="expat ${PC_REQUIRES}"],
- [AC_CHECK_HEADER([expat.h],
- [
- expat_LIBS="-lexpat"
-- PC_LIBS+=($expat_LIBS)
-+ PC_LIBS="${expat_LIBS} ${PC_LIBS}"
- ],
- [AC_MSG_ERROR([expat not found; expat required.])]
- )
diff --git a/testing/libmesode/APKBUILD b/testing/libmesode/APKBUILD
deleted file mode 100644
index dc6705c41ff..00000000000
--- a/testing/libmesode/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="libmesode"
-pkgver="0.9.3"
-pkgrel=0
-pkgdesc="Fork of libstrophe for use with Profanity XMPP Client"
-url="https://github.com/profanity-im/libmesode"
-arch="all"
-license="GPL-3.0-only MIT"
-makedepends="expat-dev doxygen openssl-dev
- automake autoconf libtool"
-subpackages="$pkgname-dev $pkgname-doc"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/profanity-im/libmesode/archive/$pkgver.tar.gz
- 10-patch-configure.patch
-"
-
-prepare() {
- default_prepare
- ./bootstrap.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
- doxygen
-}
-
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/html/$pkgname
- mv docs/html/* "$subpkgdir"/usr/share/html/$pkgname/
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-sha512sums="572b51d762a9b7eabf8d49106219eb60613c054ac35915a54eb43ff153e434bc08c32003bc9d2277a679f246f90973bb0b47ac93af7cffcdbae07af4d2af3db8 libmesode-0.9.3.tar.gz
-65f7437d4ebd0e121d8b1f2c356c82a928a31df48cf68352fc9a9bce68a6ac5dda38780d9972fc10735f4b9583e67d58090eafd7bcb608d274886ca3f160ce05 10-patch-configure.patch"
diff --git a/testing/libmhash/APKBUILD b/testing/libmhash/APKBUILD
index e65a63356d0..6b0a2ac181e 100644
--- a/testing/libmhash/APKBUILD
+++ b/testing/libmhash/APKBUILD
@@ -1,36 +1,35 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libmhash
-_pkgname=mhash
pkgver=0.9.9.9
-pkgrel=1
+pkgrel=3
pkgdesc="Library which provides a uniform interface to a large number of hash algorithms"
-url="http://mhash.sourceforge.net/"
+url="https://mhash.sourceforge.net/"
arch="all"
-license="GPL"
-depends=""
-makedepends=""
-install=""
+license="LGPL-2.0-only and LGPL-2.1-or-later"
subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://downloads.sourceforge.net/project/$_pkgname/$_pkgname/$pkgver/$_pkgname-$pkgver.tar.gz
-musl-fix-bool-includes.patch"
-builddir="$srcdir"/$_pkgname-$pkgver
+source="$pkgname-$pkgver.tar.gz::https://downloads.sourceforge.net/project/mhash/mhash/$pkgver/mhash-$pkgver.tar.gz
+ musl-fix-bool-includes.patch
+ "
+builddir="$srcdir/mhash-$pkgver"
prepare() {
- default_prepare || return 1
- update_config_guess || return 1
+ default_prepare
+
+ update_config_sub
+ update_config_guess
}
build() {
- cd "$builddir"
./configure --prefix=/usr
- make || return 1
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="82ad8b8e9b0463c5a14f5c0e572badc42c4697bac5505443b144287b3f8510b1410721b4277f092a0d6045c4342e997831011cdfcbfa8f1dae6edd5d9e3cefee libmhash-0.9.9.9.tar.gz
-848c687be7da956884b287ecf57d445c974db9421d1e3a6648837aa18ebe86ace1366e0863ba62a898010b56c85ffd2f8294aaa7744ed31cfcec67b0021cc731 musl-fix-bool-includes.patch"
+sha512sums="
+82ad8b8e9b0463c5a14f5c0e572badc42c4697bac5505443b144287b3f8510b1410721b4277f092a0d6045c4342e997831011cdfcbfa8f1dae6edd5d9e3cefee libmhash-0.9.9.9.tar.gz
+848c687be7da956884b287ecf57d445c974db9421d1e3a6648837aa18ebe86ace1366e0863ba62a898010b56c85ffd2f8294aaa7744ed31cfcec67b0021cc731 musl-fix-bool-includes.patch
+"
diff --git a/testing/libmlocale/APKBUILD b/testing/libmlocale/APKBUILD
deleted file mode 100644
index 55d2b28a262..00000000000
--- a/testing/libmlocale/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libmlocale
-pkgver=0.7.2
-pkgrel=0
-pkgdesc="Nemo libmlocale"
-url="https://git.sailfishos.org/mer-core/libmlocale"
-arch="all"
-license="LGPL-2.1-only"
-depends_dev="libexecinfo-dev icu-dev"
-makedepends="$depends_dev qt5-qtbase-dev qt5-qttools-dev bash"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libmlocale/-/archive/$pkgver/libmlocale-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-build() {
- QTDIR=/usr/lib/qt5 ./configure \
- --prefix=/usr \
- --sysconfdir=/etc
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="6903cde728e22c77c22cbde5e4ef44110bbd3d620a78bf177c090eac3d784f14806d67599f28bf214d480fc67e6ab6c6d4c5a9bdeeb839f7d61f69c68ad4b97e libmlocale-0.7.2.tar.gz"
diff --git a/testing/libmodbus/772a6e2d2249e34f460a072f6452349ae6b3b921.patch b/testing/libmodbus/772a6e2d2249e34f460a072f6452349ae6b3b921.patch
deleted file mode 100644
index 1600f39cd47..00000000000
--- a/testing/libmodbus/772a6e2d2249e34f460a072f6452349ae6b3b921.patch
+++ /dev/null
@@ -1,315 +0,0 @@
-From 772a6e2d2249e34f460a072f6452349ae6b3b921 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?SZ=20Lin=20=28=E6=9E=97=E4=B8=8A=E6=99=BA=29?=
- <szlin@debian.org>
-Date: Thu, 20 Dec 2018 13:35:31 +0800
-Subject: [PATCH] Fix float endianness issue on big endian architecture.
-
-It converts float values depending on what order they come in.
-
-This patch was modified from rm5248 [1]
-
-[1] https://github.com/synexxus/libmodbus/commit/a511768e7fe7ec52d7bae1d9ae04e33f87a59627
----
- src/modbus-data.c | 110 ++++++++++++++++++++++++++++++++-------
- tests/unit-test-client.c | 22 +++++---
- tests/unit-test.h.in | 41 +++++++++++++--
- 3 files changed, 141 insertions(+), 32 deletions(-)
-
-diff --git a/src/modbus-data.c b/src/modbus-data.c
-index 38ff5c14..3dacc000 100644
---- a/src/modbus-data.c
-+++ b/src/modbus-data.c
-@@ -123,9 +123,18 @@ float modbus_get_float_abcd(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl(((uint32_t)src[0] << 16) + src[1]);
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (a << 24) |
-+ (b << 16) |
-+ (c << 8) |
-+ (d << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -135,9 +144,18 @@ float modbus_get_float_dcba(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl(bswap_32((((uint32_t)src[0]) << 16) + src[1]));
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (d << 24) |
-+ (c << 16) |
-+ (b << 8) |
-+ (a << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -147,9 +165,18 @@ float modbus_get_float_badc(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl((uint32_t)(bswap_16(src[0]) << 16) + bswap_16(src[1]));
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (b << 24) |
-+ (a << 16) |
-+ (d << 8) |
-+ (c << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -159,9 +186,18 @@ float modbus_get_float_cdab(const uint16_t *src)
- {
- float f;
- uint32_t i;
-+ uint8_t a, b, c, d;
-
-- i = ntohl((((uint32_t)src[1]) << 16) + src[0]);
-- memcpy(&f, &i, sizeof(float));
-+ a = (src[0] >> 8) & 0xFF;
-+ b = (src[0] >> 0) & 0xFF;
-+ c = (src[1] >> 8) & 0xFF;
-+ d = (src[1] >> 0) & 0xFF;
-+
-+ i = (c << 24) |
-+ (d << 16) |
-+ (a << 8) |
-+ (b << 0);
-+ memcpy(&f, &i, 4);
-
- return f;
- }
-@@ -176,50 +212,84 @@ float modbus_get_float(const uint16_t *src)
- memcpy(&f, &i, sizeof(float));
-
- return f;
-+
- }
-
- /* Set a float to 4 bytes for Modbus w/o any conversion (ABCD) */
- void modbus_set_float_abcd(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = htonl(i);
-- dest[0] = (uint16_t)(i >> 16);
-- dest[1] = (uint16_t)i;
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = a;
-+ out[1] = b;
-+ out[2] = c;
-+ out[3] = d;
- }
-
- /* Set a float to 4 bytes for Modbus with byte and word swap conversion (DCBA) */
- void modbus_set_float_dcba(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = bswap_32(htonl(i));
-- dest[0] = (uint16_t)(i >> 16);
-- dest[1] = (uint16_t)i;
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = d;
-+ out[1] = c;
-+ out[2] = b;
-+ out[3] = a;
-+
- }
-
- /* Set a float to 4 bytes for Modbus with byte swap conversion (BADC) */
- void modbus_set_float_badc(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = htonl(i);
-- dest[0] = (uint16_t)bswap_16(i >> 16);
-- dest[1] = (uint16_t)bswap_16(i & 0xFFFF);
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = b;
-+ out[1] = a;
-+ out[2] = d;
-+ out[3] = c;
- }
-
- /* Set a float to 4 bytes for Modbus with word swap conversion (CDAB) */
- void modbus_set_float_cdab(float f, uint16_t *dest)
- {
- uint32_t i;
-+ uint8_t *out = (uint8_t*) dest;
-+ uint8_t a, b, c, d;
-
- memcpy(&i, &f, sizeof(uint32_t));
-- i = htonl(i);
-- dest[0] = (uint16_t)i;
-- dest[1] = (uint16_t)(i >> 16);
-+ a = (i >> 24) & 0xFF;
-+ b = (i >> 16) & 0xFF;
-+ c = (i >> 8) & 0xFF;
-+ d = (i >> 0) & 0xFF;
-+
-+ out[0] = c;
-+ out[1] = d;
-+ out[2] = a;
-+ out[3] = b;
- }
-
- /* DEPRECATED - Set a float to 4 bytes in a sort of Modbus format! */
-diff --git a/tests/unit-test-client.c b/tests/unit-test-client.c
-index fdf5c26e..4fa6495d 100644
---- a/tests/unit-test-client.c
-+++ b/tests/unit-test-client.c
-@@ -27,6 +27,7 @@ int send_crafted_request(modbus_t *ctx, int function,
- uint16_t max_value, uint16_t bytes,
- int backend_length, int backend_offset);
- int equal_dword(uint16_t *tab_reg, const uint32_t value);
-+int is_memory_equal(const void *s1, const void *s2, size_t size);
-
- #define BUG_REPORT(_cond, _format, _args ...) \
- printf("\nLine %d: assertion error for '%s': " _format "\n", __LINE__, # _cond, ## _args)
-@@ -40,6 +41,11 @@ int equal_dword(uint16_t *tab_reg, const uint32_t value);
- } \
- };
-
-+int is_memory_equal(const void *s1, const void *s2, size_t size)
-+{
-+ return (memcmp(s1, s2, size) == 0);
-+}
-+
- int equal_dword(uint16_t *tab_reg, const uint32_t value) {
- return ((tab_reg[0] == (value >> 16)) && (tab_reg[1] == (value & 0xFFFF)));
- }
-@@ -287,26 +293,26 @@ int main(int argc, char *argv[])
- /** FLOAT **/
- printf("1/4 Set/get float ABCD: ");
- modbus_set_float_abcd(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_ABCD), "FAILED Set float ABCD");
-- real = modbus_get_float_abcd(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_ABCD_SET, 4), "FAILED Set float ABCD");
-+ real = modbus_get_float_abcd(UT_IREAL_ABCD_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("2/4 Set/get float DCBA: ");
- modbus_set_float_dcba(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_DCBA), "FAILED Set float DCBA");
-- real = modbus_get_float_dcba(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_DCBA_SET, 4), "FAILED Set float DCBA");
-+ real = modbus_get_float_dcba(UT_IREAL_DCBA_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("3/4 Set/get float BADC: ");
- modbus_set_float_badc(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_BADC), "FAILED Set float BADC");
-- real = modbus_get_float_badc(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_BADC_SET, 4), "FAILED Set float BADC");
-+ real = modbus_get_float_badc(UT_IREAL_BADC_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("4/4 Set/get float CDAB: ");
- modbus_set_float_cdab(UT_REAL, tab_rp_registers);
-- ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_CDAB), "FAILED Set float CDAB");
-- real = modbus_get_float_cdab(tab_rp_registers);
-+ ASSERT_TRUE(is_memory_equal(tab_rp_registers, UT_IREAL_CDAB_SET, 4), "FAILED Set float CDAB");
-+ real = modbus_get_float_cdab(UT_IREAL_CDAB_GET);
- ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);
-
- printf("\nAt this point, error messages doesn't mean the test has failed\n");
-diff --git a/tests/unit-test.h.in b/tests/unit-test.h.in
-index dca826f4..4ffa254f 100644
---- a/tests/unit-test.h.in
-+++ b/tests/unit-test.h.in
-@@ -56,12 +56,45 @@ const uint16_t UT_INPUT_REGISTERS_ADDRESS = 0x108;
- const uint16_t UT_INPUT_REGISTERS_NB = 0x1;
- const uint16_t UT_INPUT_REGISTERS_TAB[] = { 0x000A };
-
-+/*
-+ * This float value is 0x47F12000 (in big-endian format).
-+ * In Little-endian(intel) format, it will be stored in memory as follows:
-+ * 0x00 0x20 0xF1 0x47
-+ *
-+ * You can check this with the following code:
-+
-+ float fl = UT_REAL;
-+ uint8_t *inmem = (uint8_t*)&fl;
-+ int x;
-+ for(x = 0; x < 4; x++){
-+ printf("0x%02X ", inmem[ x ]);
-+ }
-+ printf("\n");
-+ */
- const float UT_REAL = 123456.00;
-
--const uint32_t UT_IREAL_ABCD = 0x0020F147;
--const uint32_t UT_IREAL_DCBA = 0x47F12000;
--const uint32_t UT_IREAL_BADC = 0x200047F1;
--const uint32_t UT_IREAL_CDAB = 0xF1470020;
-+/*
-+ * The following arrays assume that 'A' is the MSB,
-+ * and 'D' is the LSB.
-+ * Thus, the following is the case:
-+ * A = 0x47
-+ * B = 0xF1
-+ * C = 0x20
-+ * D = 0x00
-+ *
-+ * There are two sets of arrays: one to test that the setting is correct,
-+ * the other to test that the getting is correct.
-+ * Note that the 'get' values must be constants in processor-endianness,
-+ * as libmodbus will convert all words to processor-endianness as they come in.
-+ */
-+const uint8_t UT_IREAL_ABCD_SET[] = {0x47, 0xF1, 0x20, 0x00};
-+const uint16_t UT_IREAL_ABCD_GET[] = {0x47F1, 0x2000};
-+const uint8_t UT_IREAL_DCBA_SET[] = {0x00, 0x20, 0xF1, 0x47};
-+const uint16_t UT_IREAL_DCBA_GET[] = {0x0020, 0xF147};
-+const uint8_t UT_IREAL_BADC_SET[] = {0xF1, 0x47, 0x00, 0x20};
-+const uint16_t UT_IREAL_BADC_GET[] = {0xF147, 0x0020};
-+const uint8_t UT_IREAL_CDAB_SET[] = {0x20, 0x00, 0x47, 0xF1};
-+const uint16_t UT_IREAL_CDAB_GET[] = {0x2000, 0x47F1};
-
- /* const uint32_t UT_IREAL_ABCD = 0x47F12000);
- const uint32_t UT_IREAL_DCBA = 0x0020F147;
diff --git a/testing/libmodbus/APKBUILD b/testing/libmodbus/APKBUILD
deleted file mode 100644
index d7e97efe51d..00000000000
--- a/testing/libmodbus/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Oz Tiram <oz.tiram@gmail.com>
-# Maintainer: Oz Tiram <oz.tiram@gmail.com>
-pkgname=libmodbus
-pkgver=3.1.6
-pkgrel=1
-pkgdesc="Modbus library which supports RTU communication over a serial line or a TCP link"
-url="https://libmodbus.org/"
-source="https://libmodbus.org/releases/libmodbus-$pkgver.tar.gz
- 772a6e2d2249e34f460a072f6452349ae6b3b921.patch
- "
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="linux-headers"
-subpackages="$pkgname-dev $pkgname-doc"
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="2e39aea41b1cfb30239c3d8271c68841d645a44a15019090e2efd16979bde373c76532f992aa6a4587b95c65ed9829705f32e698e445df7c0e1d52d0d1165bce libmodbus-3.1.6.tar.gz
-5ee0264175024b482b6f6efaf6cd7fcdb6eb4b77b98634944f760ce73d67b5d7e157672a4662b6fb52d93d40862f361045c87d3c93919f67778402ff09b8e89c 772a6e2d2249e34f460a072f6452349ae6b3b921.patch"
diff --git a/testing/libmpfi/APKBUILD b/testing/libmpfi/APKBUILD
new file mode 100644
index 00000000000..7516eab7d94
--- /dev/null
+++ b/testing/libmpfi/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libmpfi
+pkgver=1.5.4
+pkgrel=2
+pkgdesc="Library for multiple precision interval arithmetic"
+url="https://github.com/arpra-project/mpfi"
+arch="all"
+license="GPL-3.0-only OR LGPL-3.0-only"
+makedepends="
+ autoconf
+ automake
+ gmp-dev
+ libtool
+ mpfr-dev
+ "
+options="!check" # tests are broken
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+source="https://github.com/arpra-project/mpfi/archive/$pkgver/mpfi-$pkgver.tar.gz"
+builddir="$srcdir/mpfi-$pkgver"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+3e2df2243f40b20d49b6698db534c668be583eaa5c75d37b70a2e6e5be2c0fcc303df1b991b8e427dca78eca5eb2aef120ea75cefe1587c13a71996e1190ff5d mpfi-1.5.4.tar.gz
+"
diff --git a/testing/libmrss/APKBUILD b/testing/libmrss/APKBUILD
index 19933e5d943..f4c6b10f3df 100644
--- a/testing/libmrss/APKBUILD
+++ b/testing/libmrss/APKBUILD
@@ -2,35 +2,32 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libmrss
pkgver=0.19.2
-pkgrel=0
+pkgrel=1
pkgdesc="mRSS is a C library for parsing, writing and creating RSS files or streams"
url="https://github.com/bakulf/libmrss"
arch="all"
-license="LGPL-2.1"
+license="LGPL-2.1-or-later"
makedepends="automake autoconf libtool m4 curl-dev libnxml-dev doxygen"
subpackages="$pkgname-dev"
-source="http://www.autistici.org/bakunin/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="http://www.autistici.org/bakunin/libmrss/libmrss-$pkgver.tar.gz"
prepare() {
default_prepare
- cd "$builddir"
+
+ update_config_sub
update_config_guess
}
build() {
- cd "$builddir"
./configure --prefix=/usr
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR=$pkgdir install
}
diff --git a/testing/libmustache/APKBUILD b/testing/libmustache/APKBUILD
index 342753546b6..aff67624c63 100644
--- a/testing/libmustache/APKBUILD
+++ b/testing/libmustache/APKBUILD
@@ -3,7 +3,7 @@
pkgname=libmustache
_mustachespec_gitrev=b96be9fd4c6d6984828d93169fe7e86d8a8aec2f
pkgver=0.5.0
-pkgrel=0
+pkgrel=1
pkgdesc="C++ implementation of Mustache intended mainly for use as a PHP extension"
url="https://github.com/jbboehr/libmustache"
arch=all
diff --git a/testing/libmygpo-qt/APKBUILD b/testing/libmygpo-qt/APKBUILD
new file mode 100644
index 00000000000..99c0ad18deb
--- /dev/null
+++ b/testing/libmygpo-qt/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=libmygpo-qt
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A C++/Qt client library for gpodder.net"
+url="http://wiki.gpodder.org/wiki/Libmygpo-qt"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="cmake doxygen graphviz qt5-qtbase-dev"
+subpackages="$pkgname-dev"
+source="libmygpo-qt-$pkgver.tar.gz::https://github.com/gpodder/libmygpo-qt/archive/refs/tags/$pkgver.tar.gz
+ libmygpo-qt5.11a.patch::https://github.com/gpodder/libmygpo-qt/commit/0d76d960.patch
+ libmygpo-qt5.11b.patch::https://github.com/gpodder/libmygpo-qt/commit/1b53767b.patch
+ fix-tests.patch
+ "
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DMYGPO_BUILD_TESTS=ON \
+ -DBUILD_WITH_QT4=OFF \
+ $CMAKE_CROSSOPTS .
+
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a24243a98b8e3544127b09e5c678d692e11ad0ad7ee8427e71b0d7cfd9455d068e4445bcd4d8d5ba94d8c0ef1b8f42390b544585ef258b5ec175546ee7bcd86a libmygpo-qt-1.1.0.tar.gz
+babf6aa9d6fbe27e92d5969815e7f39ec974ade234d5ddab407df73e2e9fe0331f9119a0aea2adb462a95a3a44acd675aee1e375b745ce5c6d728d1356ebbb1b libmygpo-qt5.11a.patch
+6306dc12a8eb2baafedad73289cbb545927d0711ca2441fcd0270b1731451e26732c9f3d855962bdb4882e27c41817fc013cf1492b629dbd8a702a143d6e7cbb libmygpo-qt5.11b.patch
+dbbb5d44c2e1744c9e7425348187ff2d57bd1532d64094ed3d17f9d569c1c31a7dc43ff84d49d35ce8c22210412cf8657286396a020ab32723a4574f8d7c68de fix-tests.patch
+"
diff --git a/testing/libmygpo-qt/fix-tests.patch b/testing/libmygpo-qt/fix-tests.patch
new file mode 100644
index 00000000000..edfb5a54ade
--- /dev/null
+++ b/testing/libmygpo-qt/fix-tests.patch
@@ -0,0 +1,21 @@
+Patch tests
+---
+ tests/JsonCreatorTest.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/JsonCreatorTest.cpp b/tests/JsonCreatorTest.cpp
+index feb03d5..9042cac 100644
+--- a/tests/JsonCreatorTest.cpp
++++ b/tests/JsonCreatorTest.cpp
+@@ -100,7 +100,7 @@ void JsonCreatorTest::testSaveSettingsToJSON()
+
+ output = JsonCreator::saveSettingsToJSON(set, remove);
+ QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") );
+- QString expected2( QLatin1String( "{\"remove\":[\"setting1\",\"setting2\"],\"set\":{\"setting4\":\"stringvalue\",\"setting5\":\"1998-01-01T00:01:02\",\"setting6\":4}}" ) );
++ QString expected2( QLatin1String( "{\"remove\":[\"setting1\",\"setting2\"],\"set\":{\"setting4\":\"stringvalue\",\"setting5\":\"1998-01-01T00:01:02.000\",\"setting6\":4}}" ) );
+
+ QCOMPARE( outString2, expected2 );
+
+--
+2.32.0
+
diff --git a/testing/libmysofa/APKBUILD b/testing/libmysofa/APKBUILD
new file mode 100644
index 00000000000..e716c4c9457
--- /dev/null
+++ b/testing/libmysofa/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Taner Tas <taner76@gmail.com>
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=libmysofa
+pkgver=1.3.2
+pkgrel=0
+pkgdesc="Set of C functions to read AES SOFA files"
+url="https://github.com/hoene/libmysofa"
+license="BSD-3-Clause-Clear"
+arch="all"
+arch="$arch !s390x" # tests fail
+makedepends="
+ cmake
+ cunit-dev
+ samurai
+ zlib-dev
+ "
+checkdepends="nodejs"
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hoene/libmysofa/archive/v$pkgver.tar.gz
+ install-header.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCODE_COVERAGE=OFF \
+ -DBUILD_TESTS=ON \
+ -DBUILD_STATIC_LIBS=OFF
+ cmake --build build
+}
+
+check() {
+ ctest -j1 --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin
+ amove usr/share
+}
+
+sha512sums="
+de7f5d36079b8be06860f3380c7a359e22f59e3e57d86f5f5df1512a20b321e392e2452a34f3ea979779fb84c7493fd4febd386c89b6da4182d6c0cfb0ce1d75 libmysofa-1.3.2.tar.gz
+35bcc9836db9873826a558146dce9045000f4c4028bc52f0940cf24a60cc515c1765adfa8134c24c72b9cc29dc7b08f9fa111bec9f54127a46df7285a785088c install-header.patch
+"
diff --git a/testing/libmysofa/install-header.patch b/testing/libmysofa/install-header.patch
new file mode 100644
index 00000000000..e1ab25cc98c
--- /dev/null
+++ b/testing/libmysofa/install-header.patch
@@ -0,0 +1,25 @@
+Patch-Source: https://github.com/hoene/libmysofa/commit/1b7d3bb0c5d13a6d2db0b439231ce65f4ad4cca0.patch
+--
+From 1b7d3bb0c5d13a6d2db0b439231ce65f4ad4cca0 Mon Sep 17 00:00:00 2001
+From: "Jason E. Hale" <jhale@FreeBSD.org>
+Date: Tue, 17 Oct 2023 15:10:23 -0400
+Subject: [PATCH] Install header when only building shared library
+
+Fixes #210
+---
+ src/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index dcaa92a..0de9632 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -127,6 +127,8 @@ if(BUILD_SHARED_LIBS)
+ # with the mysofa-static library.
+ set_target_properties(mysofa-shared
+ PROPERTIES ARCHIVE_OUTPUT_NAME mysofa_shared)
++ set_target_properties(mysofa-shared
++ PROPERTIES PUBLIC_HEADER "${public-headers}")
+
+ set_property(
+ TARGET mysofa-shared
diff --git a/testing/libneo4j-client/APKBUILD b/testing/libneo4j-client/APKBUILD
index d1a6072ec23..e2ae86f2359 100644
--- a/testing/libneo4j-client/APKBUILD
+++ b/testing/libneo4j-client/APKBUILD
@@ -2,70 +2,59 @@
# Maintainer: Chris Leishman <chris@leishman.org>
pkgname=libneo4j-client
pkgver=2.2.0
-pkgrel=2
+pkgrel=3
pkgdesc="Client library for the Neo4j graph database"
url="https://github.com/cleishm/libneo4j-client"
-arch="x86_64 aarch64 ppc64le"
+arch="aarch64 ppc64le x86_64"
license="Apache-2.0"
-depends="openssl"
-depends_dev="openssl-dev"
-makedepends="$depends_dev automake autoconf libtool check-dev doxygen pkgconfig fts fts-dev libedit-dev libcypher-parser-dev"
-install=""
-subpackages="$pkgname-dev $pkgname-doc::noarch neo4j-client:client neo4j-client-doc::noarch"
+makedepends="
+ autoconf
+ automake
+ check-dev
+ doxygen
+ libcypher-parser-dev
+ libedit-dev
+ libtool
+ musl-fts-dev
+ openssl-dev
+ "
+subpackages="
+ $pkgname-dev
+ neo4j-client
+ neo4j-client-doc
+ "
source="https://github.com/cleishm/libneo4j-client/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/"$pkgname-$pkgver"
build() {
- cd "$builddir"
- ./configure \
- --prefix=/usr
- make
- make doc
+ export CFLAGS="$CFLAGS -Wno-error=maybe-uninitialized -Wno-error=uninitialized -Wno-error=nonnull"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-doxygen-html \
+ --disable-doxygen-pdf
+ make
+
}
check() {
- cd "$builddir"
- make LIBS="-lfts" check
+ make LIBS="-lfts" check
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/doc/libneo4j-client
- mv doc/html/* "$pkgdir"/usr/share/doc/libneo4j-client/
-}
-
-doc() {
- depends="$depends_doc"
- pkgdesc="$pkgdesc (documentation)"
- install_if="docs $pkgname=$pkgver-r$pkgrel"
-
- if [ "$subpkgname" = "libneo4j-client-doc" ]; then
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/doc "$subpkgdir"/usr/share/
- elif [ "$subpkgname" = "neo4j-client-doc" ]; then
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/man "$subpkgdir"/usr/share/
- find "$subpkgdir"/usr/share/man/ -type f | xargs gzip -9
- else
- die "Unknown doc package $pkgname"
- fi
-
- # remove if empty, ignore error (not empty)
- rmdir "$pkgdir"/usr/share "$pkgdir"/usr || true 2>/dev/null
- return 0
+ make DESTDIR="$pkgdir" install
}
client() {
- depends="libedit libcypher-parser"
- pkgdesc="Command line shell for Neo4j"
-
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ pkgdesc="Command line shell for Neo4j"
- # remove if empty, ignore error (not empty)
- rmdir "$pkgdir"/usr/bin "$pkgdir"/usr 2>/dev/null || true
- return 0
+ amove usr/bin/neo4j-client
}
-sha512sums="973f8e49ee780b9ef8710dad057f264db1004523059ece5504af32c2ba5367e9199898d24aa133c017c953b0b750b2a23495765069c9a5ad470e8387a0eb4d9a libneo4j-client-2.2.0.tar.gz"
+sha512sums="
+973f8e49ee780b9ef8710dad057f264db1004523059ece5504af32c2ba5367e9199898d24aa133c017c953b0b750b2a23495765069c9a5ad470e8387a0eb4d9a libneo4j-client-2.2.0.tar.gz
+"
diff --git a/testing/libnest2d/APKBUILD b/testing/libnest2d/APKBUILD
new file mode 100644
index 00000000000..bc8059b5dc0
--- /dev/null
+++ b/testing/libnest2d/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=libnest2d
+pkgver=0.4
+pkgrel=6
+pkgdesc="2D irregular bin packaging and nesting library written in modern C++"
+url="https://github.com/tamasmeszaros/libnest2d"
+arch="noarch"
+license="LGPL-3.0-only"
+makedepends="samurai cmake clipper-dev boost-dev nlopt-dev"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tamasmeszaros/libnest2d/archive/refs/tags/$pkgver.tar.gz
+ allow-disallowed-area.patch"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=minsizerel \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+fadce18986b844eed13a581f84055df909a17407a0980deb6c7c24248a969a537a8840650bcfc673e61973810ce9a008acb599e3b8e00c9bff6b566ca41cd62c libnest2d-0.4.tar.gz
+2e8cd3343c72c576ecb54960d7ad9f4f2322f822b19ac41850b3b28da95e97c2cefe7c67de6c97627df08cd5cdc1660ce4dfa95fe51f88e0ff5c066c8d785458 allow-disallowed-area.patch
+"
diff --git a/testing/libnest2d/allow-disallowed-area.patch b/testing/libnest2d/allow-disallowed-area.patch
new file mode 100644
index 00000000000..479b9c43629
--- /dev/null
+++ b/testing/libnest2d/allow-disallowed-area.patch
@@ -0,0 +1,124 @@
+From 2e91be2679b5efa0773292d9d0a2ae72255bb271 Mon Sep 17 00:00:00 2001
+From: Ghostkeeper <rubend@tutanota.com>
+Date: Tue, 6 Oct 2020 16:13:15 +0200
+Subject: [PATCH 1/3] Allow for an item to be a disallowed area
+
+url: https://github.com/tamasmeszaros/libnest2d/pull/18
+
+Disallowed areas have slightly different behaviour from fixed items: Other items won't get packed closely around them. Implementation of that pending.
+
+Contributes to issue CURA-7754.
+---
+ include/libnest2d/nester.hpp | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/include/libnest2d/nester.hpp b/include/libnest2d/nester.hpp
+index 2f207d5..932a060 100644
+--- a/include/libnest2d/nester.hpp
++++ b/include/libnest2d/nester.hpp
+@@ -71,6 +71,15 @@ class _Item {
+ int binid_{BIN_ID_UNSET}, priority_{0};
+ bool fixed_{false};
+
++ /**
++ * \brief If this is a fixed area, indicates whether it is a disallowed area
++ * or a previously placed item.
++ *
++ * If this is a disallowed area, other objects will not get packed close
++ * together with this item. It only blocks other items in its area.
++ */
++ bool disallowed_{false};
++
+ public:
+
+ /// The type of the shape which was handed over as the template argument.
+@@ -129,11 +138,18 @@ class _Item {
+ sh_(sl::create<RawShape>(std::move(contour), std::move(holes))) {}
+
+ inline bool isFixed() const noexcept { return fixed_; }
++ inline bool isDisallowedArea() const noexcept { return disallowed_; }
+ inline void markAsFixedInBin(int binid)
+ {
+ fixed_ = binid >= 0;
+ binid_ = binid;
+ }
++ inline void markAsDisallowedAreaInBin(int binid)
++ {
++ fixed_ = binid >= 0;
++ binid_ = binid;
++ disallowed_ = true;
++ }
+
+ inline void binId(int idx) { binid_ = idx; }
+ inline int binId() const noexcept { return binid_; }
+
+From ff61049e59d3151462bca7ff2e2268c2b32731e7 Mon Sep 17 00:00:00 2001
+From: Ghostkeeper <rubend@tutanota.com>
+Date: Tue, 6 Oct 2020 16:14:36 +0200
+Subject: [PATCH 2/3] Allow unsetting of being a disallowed area
+
+If you set the bin to -1 or set the item to be a simple fixed item afterwards, it'll no longer be a disallowed area.
+
+Contributes to issue CURA-7754.
+---
+ include/libnest2d/nester.hpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/include/libnest2d/nester.hpp b/include/libnest2d/nester.hpp
+index 932a060..54761a6 100644
+--- a/include/libnest2d/nester.hpp
++++ b/include/libnest2d/nester.hpp
+@@ -143,12 +143,13 @@ class _Item {
+ {
+ fixed_ = binid >= 0;
+ binid_ = binid;
++ disallowed_ = false;
+ }
+ inline void markAsDisallowedAreaInBin(int binid)
+ {
+ fixed_ = binid >= 0;
+ binid_ = binid;
+- disallowed_ = true;
++ disallowed_ = fixed_;
+ }
+
+ inline void binId(int idx) { binid_ = idx; }
+
+From 31391fd173249ad9b906390058e13b09238fadc8 Mon Sep 17 00:00:00 2001
+From: Ghostkeeper <rubend@tutanota.com>
+Date: Thu, 8 Oct 2020 11:06:58 +0200
+Subject: [PATCH 3/3] Align items to their starting position if all placed
+ items are disallowed
+
+We shouldn't align items to disallowed areas. So place them in the starting position according to the alignment property.
+
+Lot of work to investigate. But very little code changes!
+
+Contributes to issue CURA-7754.
+---
+ include/libnest2d/placers/nfpplacer.hpp | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/include/libnest2d/placers/nfpplacer.hpp b/include/libnest2d/placers/nfpplacer.hpp
+index 96a8cff..b0ebb15 100644
+--- a/include/libnest2d/placers/nfpplacer.hpp
++++ b/include/libnest2d/placers/nfpplacer.hpp
+@@ -101,7 +101,7 @@ struct NfpPConfig {
+ * alignment with the candidate item or do anything else.
+ *
+ * \param remaining A container with the remaining items waiting to be
+- * placed. You can use some features about the remaining items to alter to
++ * placed. You can use some features about the remaining items to alter the
+ * score of the current placement. If you know that you have to leave place
+ * for other items as well, that might influence your decision about where
+ * the current candidate should be placed. E.g. imagine three big circles
+@@ -735,7 +735,8 @@ class _NofitPolyPlacer: public PlacerBoilerplate<_NofitPolyPlacer<RawShape, TBin
+ remlist.insert(remlist.end(), remaining.from, remaining.to);
+ }
+
+- if(items_.empty()) {
++ if(std::all_of(items_.begin(), items_.end(),
++ [](const Item& item) { return item.isDisallowedArea(); })) {
+ setInitialPosition(item);
+ best_overfit = overfit(item.transformedShape(), bin_);
+ can_pack = best_overfit <= 0;
diff --git a/testing/libnfc/APKBUILD b/testing/libnfc/APKBUILD
new file mode 100644
index 00000000000..a7a8dec815f
--- /dev/null
+++ b/testing/libnfc/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Maarten van Gompel <proycon@anaproy.nl>
+# Maintainer: Maarten van Gompel <proycon@anaproy.nl>
+pkgname=libnfc
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="Platform independent Near Field Communication (NFC) library"
+url="http://nfc-tools.org"
+arch="all"
+license="LGPL-3.0-or-later"
+makedepends="
+ bsd-compat-headers
+ libusb-compat-dev
+ linux-headers
+ openssl-dev
+ "
+subpackages="$pkgname-dev $pkgname-tools $pkgname-doc"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/nfc-tools/libnfc/releases/download/libnfc-$pkgver/libnfc-$pkgver.tar.bz2"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin
+}
+
+sha512sums="
+aa8762ecb5b94167d20346f2c81491bb5b634bcedbf2aae3e2efdb301bca89ceb7c2e15148d0934fdc1cce6d77ee0225e28e84893232999fdc09d8a90ae2a7c5 libnfc-1.8.0.tar.bz2
+"
diff --git a/testing/libngf-qt/APKBUILD b/testing/libngf-qt/APKBUILD
deleted file mode 100644
index db1bffdd765..00000000000
--- a/testing/libngf-qt/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libngf-qt
-pkgver=0.6.4
-pkgrel=0
-pkgdesc="Qt-based client for NGF daemon (Non-Graphic Feedback)."
-url="https://git.sailfishos.org/mer-core/libngf-qt"
-arch="all"
-license="LGPL-2.1-or-later"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libngf-qt/-/archive/$pkgver/libngf-qt-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-build() {
- qmake-qt5 \
- PREFIX=/usr
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="51df1cbf8092e16eed073a1cdff88f35b9c8411172fe28b08fa7b54562238b6fca8d68f9348183866b2a265682596db296d5e115c9184b6f46e9da39efa3a8aa libngf-qt-0.6.4.tar.gz"
diff --git a/testing/libngf/APKBUILD b/testing/libngf/APKBUILD
deleted file mode 100644
index 8e40cf74628..00000000000
--- a/testing/libngf/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libngf
-pkgver=0.27
-pkgrel=0
-pkgdesc="Nemo's libngf"
-url="https://git.sailfishos.org/mer-core/libngf"
-arch="all"
-license="LGPL-2.1-or-later"
-depends_dev="glib-dev dbus-dev dbus-glib-dev check-dev"
-makedepends="$depends_dev automake autoconf libtool"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libngf/-/archive/$pkgver/libngf-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-prepare() {
- default_prepare
-
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="f4577e3d203491487e287ff5d8de6df5076f8c92780ca5e416464a524353943845b5aaf0e6049a5ec427b8b5bc9717300bcdc8ec6923f082416e099440ad65f3 libngf-0.27.tar.gz"
diff --git a/testing/libntl/APKBUILD b/testing/libntl/APKBUILD
new file mode 100644
index 00000000000..70ae58553c8
--- /dev/null
+++ b/testing/libntl/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libntl
+pkgver=11.5.1
+pkgrel=3
+pkgdesc="Library for doing number theory"
+url="https://libntl.org"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="autoconf automake gf2x-dev gmp-dev perl"
+source="https://libntl.org/ntl-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+builddir="$srcdir/ntl-$pkgver/src"
+
+prepare() {
+ default_prepare
+
+ cd libtool-origin
+ update_config_guess
+ update_config_sub
+}
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O2}" # gotta go fast
+
+ # This configure script wasn't generated by autoconf, however during
+ # configuration an inlying perl scripts will use autoconf utilities...
+ ./configure \
+ NATIVE=off \
+ SHARED=on \
+ TUNE=generic \
+ CXXFLAGS="$CXXFLAGS" \
+ LDFLAGS="$LDFLAGS" \
+ DEF_PREFIX=/usr \
+ NTL_GF2X_LIB=on \
+ NTL_GMP_LIP=on
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cf1f642b8a0f9cdc6dda888e07183817dc67ff494e56a852053aeb15b3d2a0e61fbc05824779c5d1f20b8115fba6f97266acf7e0b0b527c25df5989c86d5928f ntl-11.5.1.tar.gz
+"
diff --git a/testing/libnxml/APKBUILD b/testing/libnxml/APKBUILD
index 0240e8114ad..bc115862453 100644
--- a/testing/libnxml/APKBUILD
+++ b/testing/libnxml/APKBUILD
@@ -14,7 +14,8 @@ builddir="$srcdir/$pkgname-$pkgver"
prepare() {
default_prepare
- cd "$builddir"
+
+ update_config_sub
update_config_guess
}
diff --git a/testing/libofx/APKBUILD b/testing/libofx/APKBUILD
index 515fbc14c37..0795aa0fe08 100644
--- a/testing/libofx/APKBUILD
+++ b/testing/libofx/APKBUILD
@@ -1,35 +1,47 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: 7heo <7heo@mail.com>
+# Contributor: 7heo <7heo@mail.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=libofx
-pkgver=0.9.15
-pkgrel=0
-pkgdesc="The libofx OFX banking protocol abstraction library"
+pkgver=0.10.9
+pkgrel=1
+pkgdesc="OFX banking protocol abstraction library"
url="https://github.com/libofx/libofx"
arch="all"
license="GPL-2.0-or-later"
-makedepends="bash automake autoconf libtool gengetopt opensp-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/libofx/libofx/archive/$pkgver.tar.gz"
+makedepends="
+ cmake
+ curl-dev
+ gengetopt
+ libxml++-2.6-dev
+ opensp-dev
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-tools"
+source="https://github.com/libofx/libofx/releases/download/$pkgver/libofx-$pkgver.tar.gz"
+options="!check" # fails if /tmp/catalog exists
-prepare() {
- default_prepare
- ./autogen.sh
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
}
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static
- make -j1
+check() {
+ ctest --test-dir build --output-on-failure
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin
+ amove usr/share
}
-sha512sums="6014bf9c457adbe9053a47718064e6246c911c3bf081c690bf761650220208aabe94824aaa38794c1834462894b7948a06b3ff6b517a9a84b9f881ba51aee3a1 libofx-0.9.15.tar.gz"
+sha512sums="
+89425912fa8c800ede9d7177ccd5cb3ea2a2301b42aa6580ddb105406fe68c770e2c461eefdea5bc7e883967c90e3519a219bf0b56d12c7de1030d0964d50cac libofx-0.10.9.tar.gz
+"
diff --git a/testing/liboggz/APKBUILD b/testing/liboggz/APKBUILD
index c81af7a1960..77ec51d84fa 100644
--- a/testing/liboggz/APKBUILD
+++ b/testing/liboggz/APKBUILD
@@ -2,38 +2,34 @@
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=liboggz
pkgver=1.1.1
-pkgrel=0
+pkgrel=2
pkgdesc="Provides a simple programming interface for reading and writing Ogg files and streams"
url="https://www.xiph.org/oggz/"
arch="all"
-license="BSD"
-depends=""
+license="BSD-3-Clause"
makedepends="libogg-dev"
-install=""
subpackages="$pkgname-dev $pkgname-doc"
-source="http://downloads.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://downloads.xiph.org/releases/liboggz/liboggz-$pkgver.tar.gz"
prepare() {
default_prepare
+
+ update_config_sub
update_config_guess
}
build() {
- cd "$builddir"
./configure --prefix=/usr
make
}
check() {
- cd "$builddir"
#FIXME: test segfaults on some archs
sed -i "/TESTS = httpdate_test\$(EXEEXT)/d" src/tools/oggz-chop/Makefile
make check
}
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
}
diff --git a/testing/libopensles-standalone/APKBUILD b/testing/libopensles-standalone/APKBUILD
new file mode 100644
index 00000000000..4402033b496
--- /dev/null
+++ b/testing/libopensles-standalone/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=libopensles-standalone
+pkgver=0_git20231019
+pkgrel=2
+_commit="6e6e8e5bfa9f53deaa947e8ec4f1a70b892b764f"
+pkgdesc="A lightly patched version of Google's libOpenSLES implementation"
+url="https://gitlab.com/android_translation_layer/libopensles-standalone"
+arch="x86_64 aarch64 armv7"
+license="Apache-2.0"
+makedepends="
+ libsndfile-dev
+ meson
+ openjdk8-jdk
+ sdl2-dev
+ "
+subpackages="$pkgname-dev $pkgname-dbg"
+source="https://gitlab.com/android_translation_layer/libopensles-standalone/-/archive/$_commit/libopensles-standalone-$_commit.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/libopensles-standalone-$_commit"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+9f26cf3814c1066c8e670753cb2ce8ee6781a656b91d3745df621feb905df60139254ec7baa5257548de538a6c4ace8a414cac699e44e02a15777d8c20c68577 libopensles-standalone-6e6e8e5bfa9f53deaa947e8ec4f1a70b892b764f.tar.gz
+"
diff --git a/testing/libopensmtpd/APKBUILD b/testing/libopensmtpd/APKBUILD
new file mode 100644
index 00000000000..6772b570d15
--- /dev/null
+++ b/testing/libopensmtpd/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Malte Voos <malte@malvo.org>
+# Maintainer: Malte Voos <malte@malvo.org>
+pkgname=libopensmtpd
+pkgver=0.7
+pkgrel=0
+pkgdesc="Library for creating OpenSMTPD filters"
+url="http://imperialat.at/dev/libopensmtpd/"
+arch="all"
+license="ISC"
+makedepends="libevent-dev mandoc"
+options="!check" # no test suite
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://imperialat.at/releases/libopensmtpd-$pkgver.tar.gz"
+
+build() {
+ make -f Makefile.gnu
+}
+
+package() {
+ make -f Makefile.gnu DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+53153eea5ed85309434316fa9bbba032aba9cac30744a6c228892b5fdf67f9df7e05c25832f16845c603892a255dfcf67d432e2a43ec6228f3103cf92ba2394f libopensmtpd-0.7.tar.gz
+"
diff --git a/testing/libosip2/APKBUILD b/testing/libosip2/APKBUILD
deleted file mode 100644
index 6d9a34253de..00000000000
--- a/testing/libosip2/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer: David Sugar <tychosoft@gmail.com>
-# Contributor: David Sugar <tychosoft@gmail.com>
-pkgname=libosip2
-pkgver=5.1.1
-pkgrel=0
-pkgdesc="oSIP is an implementation of SIP"
-url="https://www.gnu.org/software/osip/"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="autoconf automake libtool"
-options="libtool"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://ftp.gnu.org/gnu/osip/libosip2-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --with-gnu-ld
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="485a385b67ff422878bb45ae16936a5ef4cfbff3c7db618a3ff57b942bae6d269c108fa58d58caf5be1123155fb946595e10aba5cf261ec656168444fddf840a libosip2-5.1.1.tar.gz"
diff --git a/testing/libphutil/APKBUILD b/testing/libphutil/APKBUILD
deleted file mode 100644
index 412f4eb2ea6..00000000000
--- a/testing/libphutil/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=libphutil
-pkgver=0_git20180717
-pkgrel=0
-pkgdesc="A collection of PHP utility classes"
-url="http://www.phabricator.com/docs/libphutil/"
-arch="noarch"
-license="Apache-2.0"
-depends="php7 php7-curl php-json"
-options="!check" # no checks
-subpackages=""
-source="https://dev.alpinelinux.org/archive/libphutil/libphutil-$pkgver.tar.gz"
-builddir="$srcdir/libphutil-stable"
-
-build() {
- :
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/php/$pkgname \
- "$pkgdir"/usr/bin
- for i in externals resources scripts src support; do
- cp -r "$builddir"/$i "$pkgdir"/usr/share/php/$pkgname/
- done
- ln -sf /usr/share/php/$pkgname/scripts/utils/aws-s3.php \
- "$pkgdir"/usr/bin/aws-s3
-}
-
-snapshot() {
- local pkgver=0_git$(date +%Y%m%d)
- msg "Grabbing the latest stable snapshot"
- mkdir -p "$srcdir"
- wget -O "$srcdir"/$pkgname-$pkgver.tar.gz \
- https://github.com/phacility/libphutil/archive/stable.tar.gz
- ssh distfiles.alpinelinux.org \
- "mkdir -p archive/$pkgname/"
- scp "$srcdir"/$pkgname-$pkgver.tar.gz \
- dev.alpinelinux.org:/archive/$pkgname/
- sed -i -e "s/^pkgver=.*/pkgver=$pkgver/" \
- "$startdir"/APKBUILD
- sed -i -e "s/^pkgrel=.*/pkgrel=0/" \
- "$startdir"/APKBUILD
- abuild checksum
-}
-
-sha512sums="44f1c268ecfc27f4479c1a57870cc6730822cd7cfb6ef875c0eb7889f5eb8acc0e57708c08f629264db473c963f7e4ae7646434c5e9c477b3c001edc53bde751 libphutil-0_git20180717.tar.gz"
diff --git a/testing/libpostal/APKBUILD b/testing/libpostal/APKBUILD
deleted file mode 100644
index 1977ee0e308..00000000000
--- a/testing/libpostal/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libpostal
-pkgver=1.1
-pkgrel=0
-pkgdesc="A C library for parsing/normalizing street addresses around the world"
-url="https://github.com/openvenues/libpostal"
-arch="all !armv7" # /tmp/ccFggAdh.s:1377852: Error: conditional branch out of range
-license="MIT"
-makedepends="autoconf automake libtool"
-subpackages="$pkgname-static $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/openvenues/libpostal/archive/v$pkgver.tar.gz"
-options="!check" # Requires 100GB of data
-
-prepare() {
- default_prepare
-
- ./bootstrap.sh
-}
-
-build() {
- case "$CARCH" in
- x86|x86_64) sse2="--enable-sse2" ;;
- *) sse2="--disable-sse2";;
- esac
-
- ./configure \
- --prefix=/usr \
- --datadir=/usr/local/share \
- --disable-data-download \
- $sse2
-
- make
-}
-
-check() {
- make check
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="a097e0368fe729fa36c6670f87640deba3182fba45832b1e98c45824cc0a346ee172b47942f12845e75dce266d3e51b4ca1fd8b1a4cad24d9c0ef514dc4368db libpostal-1.1.tar.gz"
diff --git a/testing/libqb/APKBUILD b/testing/libqb/APKBUILD
new file mode 100644
index 00000000000..f8f7917a922
--- /dev/null
+++ b/testing/libqb/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer:
+pkgname=libqb
+pkgver=2.0.8
+pkgrel=0
+pkgdesc="Library providing high performance logging, tracing, ipc, and poll"
+url="https://clusterlabs.github.io/libqb"
+license="LGPL-2.1-or-later"
+arch="all"
+makedepends="
+ autoconf
+ automake
+ coreutils
+ doxygen
+ graphviz-dev
+ libtool
+ libxml2-dev
+ "
+checkdepends="check-dev"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
+source="https://github.com/ClusterLabs/libqb/releases/download/v$pkgver/libqb-$pkgver.tar.xz"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+check() {
+ make -C tests VERBOSE=1 check
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --localstatedir=/var \
+ --includedir=/usr/include \
+ --disable-static
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+
+ # remove a helper tool
+ rm "$pkgdir"/usr/bin/doxygen2man
+}
+
+tools() {
+ pkgdesc="Tools to use with $pkgname"
+
+ amove usr/sbin
+}
+
+sha512sums="
+9db87b248af87d9aa0520bc0045264a5f0a710fd582a16285990685cb8f8b485ba24b774f2ab7eb719bac5ed3bbf3a315696f7191a5fcf7beea33126a4402a09 libqb-2.0.8.tar.xz
+"
diff --git a/testing/libqd/APKBUILD b/testing/libqd/APKBUILD
new file mode 100644
index 00000000000..c1881c0183f
--- /dev/null
+++ b/testing/libqd/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libqd
+pkgver=2.3.24
+pkgrel=0
+pkgdesc="Double-double and quad-double library for Fortran and C++"
+url="https://www.davidhbailey.com/dhbsoftware"
+# aarch64, ppc64le, s390x: fail tests
+arch="all !aarch64 !ppc64le !s390x"
+license="BSD-3-Clause-LBNL"
+makedepends="autoconf gfortran"
+source="https://www.davidhbailey.com/dhbsoftware/qd-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+builddir="$srcdir/qd-$pkgver"
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7f233e9d0edcb442da160a49bc97df87acf258c3251828e2d473206022a36581295f38c685ac5f0c78b106605f12698f3d0cc0b4865be220a50b3536820ac1b7 qd-2.3.24.tar.gz
+"
diff --git a/testing/libqofono/APKBUILD b/testing/libqofono/APKBUILD
new file mode 100644
index 00000000000..5fc8237cb15
--- /dev/null
+++ b/testing/libqofono/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+pkgname=libqofono
+pkgver=0.122
+pkgrel=0
+pkgdesc="Library for accessing the ofono daemon, and a Qt declarative plugin for it"
+url="https://github.com/sailfishos/libqofono"
+# armhf blocked by qt5-qtdeclarative
+arch="all !armhf"
+license="LGPL-2.1-or-later"
+depends_dev="
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt6-qtbase-dev
+ qt6-qtdeclarative-dev
+ "
+makedepends="$depends_dev"
+subpackages="$pkgname-dev $pkgname-qt5:_qt5 $pkgname-qt6:_qt6"
+source="https://github.com/sailfishos/libqofono/archive/$pkgver/libqofono-$pkgver.tar.gz"
+options="!check" # requires running ofono
+
+build() {
+ mkdir build-qt5 && cd build-qt5
+ /usr/lib/qt5/bin/qmake ..
+ make
+
+ mkdir ../build-qt6 && cd ../build-qt6
+ /usr/lib/qt6/bin/qmake ..
+ make
+}
+
+package() {
+ cd build-qt5
+ INSTALL_ROOT="$pkgdir" make install
+
+ cd ../build-qt6
+ INSTALL_ROOT="$pkgdir" make install
+
+ # Remove installed tests
+ rm -r "$pkgdir"/opt
+}
+
+_qt5() {
+ amove usr/lib/libqofono-qt5.so*
+ amove usr/lib/qt5
+}
+
+_qt6() {
+ amove usr/lib/libqofono-qt6.so*
+ amove usr/lib/qt6
+}
+
+sha512sums="
+a9ffaa1a5aad20ed679df85cf312da678c9ab0667f21bd1bca173c7c1169d558f13eb021ec3b5eb1eec4b14597ba9871069f692e0544fd02d4aec552d691ee7b libqofono-0.122.tar.gz
+"
diff --git a/testing/libqtdbusmock/APKBUILD b/testing/libqtdbusmock/APKBUILD
new file mode 100644
index 00000000000..73624e13d51
--- /dev/null
+++ b/testing/libqtdbusmock/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=libqtdbusmock
+pkgver=0.9.1
+pkgrel=0
+pkgdesc="Library for mocking DBus interactions using Qt"
+url='https://gitlab.com/ubports/development/core/libqtdbusmock'
+arch="all"
+license="LGPL-3.0-only"
+makedepends="
+ cmake
+ cmake-extras
+ gmock
+ gtest-dev
+ libqtdbustest
+ networkmanager-dev
+ qt5-qtbase-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ procps
+ "
+source="https://gitlab.com/ubports/development/core/libqtdbusmock/-/archive/$pkgver/libqtdbusmock-$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d33a93aca9d7320f2246f800c62c1e97bc1b4af9e8408c7eeafa697862669ccc3c818a1e97143e93747087c0a55b247e4e6748ddbc2b624f2e07845b842e9028 libqtdbusmock-0.9.1.tar.gz
+"
diff --git a/testing/libqtdbustest/APKBUILD b/testing/libqtdbustest/APKBUILD
new file mode 100644
index 00000000000..5b8f0bf6ec5
--- /dev/null
+++ b/testing/libqtdbustest/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=libqtdbustest
+pkgver=0.3.2
+pkgrel=0
+pkgdesc='Library for testing DBus interactions using Qt'
+url='https://gitlab.com/ubports/development/core/libqtdbustest'
+arch="all"
+license="LGPL-3.0-only"
+makedepends="
+ cmake
+ cmake-extras
+ gmock
+ gtest-dev
+ qt5-qtbase-dev
+ samurai
+ "
+checkdepends="
+ dbus-x11
+ procps
+ py3-dbusmock
+ "
+source="https://gitlab.com/ubports/development/core/libqtdbustest/-/archive/$pkgver/libqtdbustest-$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+963b13f7ea3ad5003b5bf9af1421959c0028b43e8ac52b6f74ee9a1260cb586c753342c689b6f3d78d54f01f549f16e81739eaee53f2753b813d5e1e5132baf6 libqtdbustest-0.3.2.tar.gz
+"
diff --git a/testing/librasterlite2/10-musl.patch b/testing/librasterlite2/10-musl.patch
deleted file mode 100644
index 787db752cd9..00000000000
--- a/testing/librasterlite2/10-musl.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Author: Holger Jaekel <holger.jaekel@gmx.de>
-Summary: include time.h for time_t
-----
-
---- a/headers/rasterlite2_private.h
-+++ b/headers/rasterlite2_private.h
-@@ -48,6 +48,7 @@
- */
-
- #include "config.h"
-+#include <time.h>
-
- /*
- / the following patch supporting GeoTiff headers
-~ \ No newline at end of file
diff --git a/testing/librasterlite2/20-skip-tests.patch b/testing/librasterlite2/20-skip-tests.patch
deleted file mode 100644
index 238c4b06547..00000000000
--- a/testing/librasterlite2/20-skip-tests.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Author: Holger Jaekel <holger.jaekel@gmx.de>
-Summary: skip tests that use functions included in sqlite 5.0.0.beta0
-----
-
---- a/test/Makefile.am
-+++ b/test/Makefile.am
-@@ -15,16 +15,16 @@
- test_map_rgb test_map_gray \
- test_map_srtm test_map_mono \
- test_map_indiana test_load_wms \
-- test_map_noref test_map_trento \
-+ test_map_noref \
- test_map_trieste test_map_infrared \
-- test_map_orbetello test_raster_symbolizer \
-+ test_raster_symbolizer \
- test_svg test_raw test_openjpeg \
- test_line_symbolizer test_line_symbolizer_col \
- test_polygon_symbolizer test_polygon_symbolizer_col \
- test_point_symbolizer test_point_symbolizer_col \
- test_text_symbolizer test_text_symbolizer_col \
- test_vectors test_font test_copy_rastercov \
-- test_tile_callback test_map_vector \
-+ test_tile_callback \
- test_col_symbolizers
-
- AM_CPPFLAGS = -I@srcdir@/../headers @LIBXML2_CFLAGS@
-
---- a/test/Makefile.in
-+++ b/test/Makefile.in
-@@ -105,9 +105,9 @@
- test_map_rgb$(EXEEXT) test_map_gray$(EXEEXT) \
- test_map_srtm$(EXEEXT) test_map_mono$(EXEEXT) \
- test_map_indiana$(EXEEXT) test_load_wms$(EXEEXT) \
-- test_map_noref$(EXEEXT) test_map_trento$(EXEEXT) \
-+ test_map_noref$(EXEEXT) \
- test_map_trieste$(EXEEXT) test_map_infrared$(EXEEXT) \
-- test_map_orbetello$(EXEEXT) test_raster_symbolizer$(EXEEXT) \
-+ test_raster_symbolizer$(EXEEXT) \
- test_svg$(EXEEXT) test_raw$(EXEEXT) test_openjpeg$(EXEEXT) \
- test_line_symbolizer$(EXEEXT) \
- test_line_symbolizer_col$(EXEEXT) \
-@@ -118,7 +118,7 @@
- test_text_symbolizer$(EXEEXT) \
- test_text_symbolizer_col$(EXEEXT) test_vectors$(EXEEXT) \
- test_font$(EXEEXT) test_copy_rastercov$(EXEEXT) \
-- test_tile_callback$(EXEEXT) test_map_vector$(EXEEXT) \
-+ test_tile_callback$(EXEEXT) \
- test_col_symbolizers$(EXEEXT)
- subdir = test
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/testing/librasterlite2/APKBUILD b/testing/librasterlite2/APKBUILD
deleted file mode 100644
index 2486c06598b..00000000000
--- a/testing/librasterlite2/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
-# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
-pkgname=librasterlite2
-pkgver=1.1.0b0
-_pkgver="${pkgver//b0/-beta0}"
-pkgrel=0
-pkgdesc="Library for storing and retrieving huge raster coverages using a SpatiaLite DBMS"
-url="https://www.gaia-gis.it/fossil/librasterlite2/index"
-arch="x86_64" # libspatialite availability
-license="MPL-1.1"
-makedepends="
- cairo-dev
- curl-dev
- giflib-dev
- libgeotiff-dev
- libjpeg-turbo-dev
- libpng-dev
- libspatialite-dev
- libwebp-dev
- libxml2-dev
- openjpeg-dev
- proj-dev
- sqlite-dev
- tiff-dev
- xz-dev
- "
-subpackages="$pkgname-dev"
-source="
- http://www.gaia-gis.it/gaia-sins/librasterlite2-sources/librasterlite2-$_pkgver.tar.gz
- 10-musl.patch
- 20-skip-tests.patch
- "
-builddir=$srcdir/$pkgname-$_pkgver
-
-build() {
- ./configure \
- --prefix=/usr \
- --build=$CBUILD \
- --host=$CHOST \
- --disable-static \
- --disable-charls # broken build with charls 2.1.0
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="2514a781fab3b93740d2f8d8500ae0664be86603e483a4ca576a09da55edc085c5715caa3fcfa686d0590d1c2132957de49b35356624229f66e11ce4ce637e22 librasterlite2-1.1.0-beta0.tar.gz
-6ed660abe58577d565de40d799434ae5c04aff5896d7b3a35a0e65400e48b1adc13a3842a0cb31ec3b104f2acad4a3ec0e9d1ca6b97b03e6ce186be5d355605d 10-musl.patch
-07481392ba03b985ecdfb82086d9c40c111807d29b8ce2252f76e7e8ec18fe4a6f83ddc90e8a4e93a7ef57cb568f8fdc9f1f1f92757980a423ac6b8c8e7a6dc4 20-skip-tests.patch"
diff --git a/testing/libreoffice-voikko/APKBUILD b/testing/libreoffice-voikko/APKBUILD
new file mode 100644
index 00000000000..73e1beb1ebe
--- /dev/null
+++ b/testing/libreoffice-voikko/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=libreoffice-voikko
+pkgver=5.0_git20200127
+pkgrel=0
+pkgdesc="Voikko spelling, hyphenation and grammar checker extension for LibreOffice"
+_commit=d7363092551a72cb51d95a1b89a3a4af8dabc6b4
+url="https://voikko.puimula.org/"
+arch="noarch"
+license="MPL-2.0 OR GPL-3.0-or-later"
+depends="libvoikko"
+makedepends="zip"
+options="!check" # no tests
+source="$pkgname-$_commit.tar.gz::https://github.com/voikko/libreoffice-voikko/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ make oxt
+}
+
+package() {
+ make DESTDIR="$pkgdir/usr/lib/libreoffice/share/extensions/voikko" install-unpacked
+}
+
+sha512sums="
+3d08f7efbb13cd8c79c35f27d3be3e7aa76b3b9fa90f7a2a63acb43507930009d6a52383bc63beb2c8179d5710ac5ab6fade261ca73dbec8ea90d0162c12be8d libreoffice-voikko-d7363092551a72cb51d95a1b89a3a4af8dabc6b4.tar.gz
+"
diff --git a/testing/libresource/APKBUILD b/testing/libresource/APKBUILD
deleted file mode 100644
index 504be22f0cd..00000000000
--- a/testing/libresource/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libresource
-pkgver=0.23.2
-pkgrel=0
-pkgdesc="Nemo's libresource"
-url="https://git.sailfishos.org/mer-core/libresource"
-arch="all"
-license="LGPL-2.1-only"
-depends_dev="dbus-dev dbus-glib-dev check-dev"
-makedepends="$depends_dev automake autoconf libtool"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libresource/-/archive/$pkgver/libresource-$pkgver.tar.gz
- fix-pkgconfig-version.patch
- "
-options="!check" # No suitable tests
-
-prepare() {
- default_prepare
-
- echo "$pkgver" > .tarball-version
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr
- make -j1 # For some reason it breaks otherwise
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="c185d8a3e509004a9905ed02fb914a8ffcb45a68f9ccfe40ef4b6a19597877c23c7e3887b6df1b4269f080fede13265a22166060568e763b18947f509145ac19 libresource-0.23.2.tar.gz
-66fde0af9185b3e1f484db34040bb0929b6da1e89df050a99570286b194d12a42acd5dbf76fc5e1ba6fa8201640fff4d58098d23515152b366963f2b16761fa7 fix-pkgconfig-version.patch"
diff --git a/testing/libresource/fix-pkgconfig-version.patch b/testing/libresource/fix-pkgconfig-version.patch
deleted file mode 100644
index 72594f6b77b..00000000000
--- a/testing/libresource/fix-pkgconfig-version.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Upstream merge-request: https://git.sailfishos.org/mer-core/libresource/merge_requests/5
-
-From 5d4625173c64dec352548f262159da33d8030b1a Mon Sep 17 00:00:00 2001
-From: Bart Ribbers <bribbers@disroot.org>
-Date: Wed, 25 Mar 2020 13:49:33 +0100
-Subject: [PATCH] Never run git commands when .tarball-version exists
-
-This makes it work in environments where the building takes place in a
-git repo, but libresource is still built from a release tarball
----
- build-aux/git-version-gen | 25 ++++++++++++++-----------
- 1 file changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen
-index 819fa04..7769787 100755
---- a/build-aux/git-version-gen
-+++ b/build-aux/git-version-gen
-@@ -129,18 +129,21 @@ fi
-
- v=`echo "$v" |sed 's/^v//'`
-
--# Don't declare a version "dirty" merely because a time stamp has changed.
--git status > /dev/null 2>&1
-+if [ ! -f $tarball_version_file ]
-+then
-+ # Don't declare a version "dirty" merely because a time stamp has changed.
-+ git status > /dev/null 2>&1
-
--dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
--case "$dirty" in
-- '') ;;
-- *) # Append the suffix only if there isn't one already.
-- case $v in
-- *-dirty) ;;
-- *) v="$v-dirty" ;;
-- esac ;;
--esac
-+ dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty=
-+ case "$dirty" in
-+ '') ;;
-+ *) # Append the suffix only if there isn't one already.
-+ case $v in
-+ *-dirty) ;;
-+ *) v="$v-dirty" ;;
-+ esac ;;
-+ esac
-+fi
-
- # We default to 0.0.0 instead of UNKNOWN
- if test "x$v" = "xUNKNOWN"; then
---
-2.23.0
-
diff --git a/testing/libresourceqt/APKBUILD b/testing/libresourceqt/APKBUILD
deleted file mode 100644
index 3972f6d4ab8..00000000000
--- a/testing/libresourceqt/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libresourceqt
-pkgver=1.30.4
-pkgrel=0
-pkgdesc="Nemo's libresourceqt"
-url="https://git.sailfishos.org/mer-core/libresourceqt"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="qt5-qtbase-dev libresource-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://git.sailfishos.org/mer-core/libresourceqt/-/archive/$pkgver/libresourceqt-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="76b9606a6555f580ef618936fa1b25e16f176c3b988cc02d0a2591a5ec629ba5ea806378007d445615331836a7347101cdaa661528ea7327afdedcf5e62b6550 libresourceqt-1.30.4.tar.gz"
diff --git a/testing/librespot/APKBUILD b/testing/librespot/APKBUILD
index d53c0b704be..05fc7f6df1c 100644
--- a/testing/librespot/APKBUILD
+++ b/testing/librespot/APKBUILD
@@ -1,40 +1,44 @@
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=librespot
-_sha=a4e0f582a8c705b05c8abba58d9e9c1c06ad532d
-pkgver=20180817
-pkgrel=1
+pkgver=0.4.2
+pkgrel=4
pkgdesc="Open Source Spotify client library"
url="https://github.com/librespot-org/librespot"
-arch="x86_64"
+arch="all !s390x !riscv64" # limited by cargo
license="MIT"
-depends=""
-makedepends="cargo portaudio-dev alsa-lib-dev"
+options="!check" # no test suite
+makedepends="cargo alsa-lib-dev cargo-auditable"
install="$pkgname.pre-install"
-subpackages=""
-source="librespot-$pkgver.tar.gz::https://github.com/librespot-org/librespot/archive/$_sha.tar.gz
+subpackages="$pkgname-openrc"
+source="librespot-$pkgver.tar.gz::https://github.com/librespot-org/librespot/archive/v$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
+
+ cargo-bump-libc-lfs64.patch
"
-builddir="$srcdir/librespot-$_sha"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
build() {
- cd "$builddir"
- export CARGO_HOME="$srcdir"/cargo
- export RUSTFLAGS="-C target-feature=-crt-static"
- cargo build \
- --release \
- --verbose \
+ cargo auditable build --release --frozen \
--features alsa-backend
}
package() {
- cd "$builddir"
install -Dm755 target/release/librespot "$pkgdir"/usr/bin/librespot
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="5f32dd244ccefd257b17c3a7b736274c9e5b6b23db9df973a07c7ee93d4a1c7d8d11fc12a41314306fe26bea93ec2312f8c75b3975aba5372c3dc77642ab9325 librespot-20180817.tar.gz
-c48ea30e2bd076691a2f1e0e3f6c6329921a8cf25e4f39ca82e07aca5a1c2c519007f081f2b6bbd1566086407a52dce787450b840e8a07e3010227cefda0452a librespot.initd
-4286a3d1cc9678af2f43074c30a0ab7a9f686301468a0fd435d37a62773f0d1501b7201851bef4237324a83361ad93531ceb512a42ee0a63d4d14677760f5ec5 librespot.confd"
+sha512sums="
+62377c0c7b868a5414c3e62b5edcac118f83c0bf1e218c9aa6e8174c875ab63707fc1eef2e64188bf2aac2891cbbd4fddc086cb4b9b4a760ded20c63fe4f8ebe librespot-0.4.2.tar.gz
+c7cf6dd1afc67d02c710cd01baacee3084812cbf326514667c9b053fe0b4b7769fdac9f7fc4c2e3ee9755c6fe6d3b9bf4fda1279e507e0abd254157adf44d4c2 librespot.initd
+7be717bbe23b40d6c52b1e9b1ce4cb6d5f243b75ce5479a28fa3fff97f7e80f565321a839259ae7ee4eba47f490f1c0aec72b52e71d25620a98e4c7bcd696cde librespot.confd
+386e08e1fe5a928f6fbef4a6ad00b39bfcd792121205bff3a644af3010c7451c3746538270806a1c2393aa9d292405d658d50ad2df2d036761624d826a33cc1e cargo-bump-libc-lfs64.patch
+"
diff --git a/testing/librespot/cargo-bump-libc-lfs64.patch b/testing/librespot/cargo-bump-libc-lfs64.patch
new file mode 100644
index 00000000000..41ab4e77a3e
--- /dev/null
+++ b/testing/librespot/cargo-bump-libc-lfs64.patch
@@ -0,0 +1,16 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f21b877..c500357 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1130,9 +1130,9 @@ dependencies = [
+
+ [[package]]
+ name = "libc"
+-version = "0.2.126"
++version = "0.2.147"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
++checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+
+ [[package]]
+ name = "libloading"
diff --git a/testing/librespot/librespot.confd b/testing/librespot/librespot.confd
index ea74e317924..0cf3adad61b 100644
--- a/testing/librespot/librespot.confd
+++ b/testing/librespot/librespot.confd
@@ -1 +1,4 @@
librespot_args=""
+
+# uncomment to use process supervisor
+#supervisor=supervise-daemon
diff --git a/testing/librespot/librespot.initd b/testing/librespot/librespot.initd
index 8a7e42ea68c..414526802b7 100644
--- a/testing/librespot/librespot.initd
+++ b/testing/librespot/librespot.initd
@@ -4,10 +4,15 @@ command=/usr/bin/librespot
command_args="${librespot_args}"
pidfile=/run/librespot.pid
command_background=true
-logfile="/var/log/librespot.log"
-start_stop_daemon_args="--user ${librespot_user:-librespot} --group ${librespot_group:-audio} --stdout $logfile --stderr $logfile"
+command_user="${librespot_user:-librespot}:${librespot_group:-librespot}"
+output_log=/var/log/librespot.log
+error_log=/var/log/librespot.log
-depends() {
+depend() {
need localmount net
before firewall
}
+
+start_pre() {
+ checkpath -f -o $command_user $output_log
+}
diff --git a/testing/librespot/librespot.pre-install b/testing/librespot/librespot.pre-install
index 203bd5edf41..272833101c7 100644
--- a/testing/librespot/librespot.pre-install
+++ b/testing/librespot/librespot.pre-install
@@ -1,5 +1,7 @@
#!/bin/sh
-adduser -S -D -H -s /sbin/nologin -G audio -g audio librespot 2>/dev/null
+addgroup -S librespot 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G librespot -g librespot librespot 2>/dev/null
+addgroup librespot audio 2>/dev/null
exit 0
diff --git a/testing/libretro-2048/APKBUILD b/testing/libretro-2048/APKBUILD
deleted file mode 100644
index 588f5672611..00000000000
--- a/testing/libretro-2048/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-2048
-pkgver=0_git20200325
-pkgrel=0
-_commit="74d10e41b86111d42309103d3bd7e8910263b1d1"
-arch="all"
-url="https://github.com/libretro/libretro-2048"
-pkgdesc="port of 2048 puzzle game to the libretro API"
-license="Unlicense"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-2048/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-2048-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 2048_libretro.so "$pkgdir"/usr/lib/libretro/2048_libretro.so
-}
-
-sha512sums="1be61386b871e16c4f589f5e9f1085b23de9bbef873b09d6177975df9f4d258d5b1c7f8776b3d9c931ae3904807881b9b2c4924fc7198907f2c54f7f3f2c4e49 libretro-2048-74d10e41b86111d42309103d3bd7e8910263b1d1.tar.gz"
diff --git a/testing/libretro-3dengine/APKBUILD b/testing/libretro-3dengine/APKBUILD
deleted file mode 100644
index a7528ce4cf5..00000000000
--- a/testing/libretro-3dengine/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-3dengine
-pkgver=0_git20191116
-pkgrel=0
-_commit="5b2684383d1d5c7e109c660e4c5cc4b27825d98b"
-pkgdesc="3D engine for libretro GL with additional features"
-url="https://github.com/libretro/libretro-3dengine"
-arch="all"
-license="GPL-3.0-only"
-makedepends="mesa-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-3dengine/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-3dengine-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 3dengine_libretro.so "$pkgdir"/usr/lib/libretro/3dengine_libretro.so
-}
-
-sha512sums="82eacef60d2e3983f8c6b862d53d592fd089b3a8d8403f62ef95d6d663ff3cfd53c07dc99ead2765a5751a89f53b5d26537880427b9c0b18af46d01b69c7ec0f libretro-3dengine-5b2684383d1d5c7e109c660e4c5cc4b27825d98b.tar.gz"
diff --git a/testing/libretro-81/APKBUILD b/testing/libretro-81/APKBUILD
deleted file mode 100644
index 43edee826ad..00000000000
--- a/testing/libretro-81/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-81
-pkgver=0_git20190918
-pkgrel=0
-_commit="4352130bd2363954262a804b086f86b9d13d97f9"
-pkgdesc="a port of the EightyOne ZX81 Emulator to libretro"
-url="https://github.com/libretro/81-libretro"
-arch="all"
-license="GPL-3.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/81-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/81-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 81_libretro.so "$pkgdir"/usr/lib/libretro/81_libretro.so
-}
-
-sha512sums="92c764071aec077c4783b87a94f4d9197a5cdaa0d99de320e6d1471f666aef8dae3e3a393ba7fd261c5fd49a5aed607683c6f5aab50d20a688dc535085584581 libretro-81-4352130bd2363954262a804b086f86b9d13d97f9.tar.gz"
diff --git a/testing/libretro-atari800/APKBUILD b/testing/libretro-atari800/APKBUILD
index 0635426e985..49461774fb4 100644
--- a/testing/libretro-atari800/APKBUILD
+++ b/testing/libretro-atari800/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-atari800
-pkgver=0_git20200320
+pkgver=0_git20220327
pkgrel=0
-_commit="2322284eda10f565e67272ee93c785e1fe5c6887"
+_commit="beab30e7ea10b7ed14d0514064f47d16f76cd995"
pkgdesc="atari800 3.1.0 for libretro/libco"
url="https://github.com/libretro/libretro-atari800"
arch="all"
@@ -14,11 +14,14 @@ builddir="$srcdir/libretro-atari800-$_commit"
options="!check" # No tests
build() {
- make
+ rm -rf deps
+ make SYSTEM_ZLIB=1
}
package() {
install -Dm644 atari800_libretro.so "$pkgdir"/usr/lib/libretro/atari800_libretro.so
}
-sha512sums="4ab826f56cbd99d9b3266c8bba0133827b78ac6cb35a3a529437480cae3ceb9273b59e19baf11f1ee778b6c6057c2fbc87f2ab825a2d2cd6fb337a059028d11b libretro-atari800-2322284eda10f565e67272ee93c785e1fe5c6887.tar.gz"
+sha512sums="
+55ac72ddccfc5e1a37513ddc94d2103a5ecf12373ceacfac3e65d5745211219dd9f36dae206dc282d7f7280f1bf5a97dff0f775da77f7318d83b88e6ec4f80bf libretro-atari800-beab30e7ea10b7ed14d0514064f47d16f76cd995.tar.gz
+"
diff --git a/testing/libretro-beetle-bsnes/APKBUILD b/testing/libretro-beetle-bsnes/APKBUILD
deleted file mode 100644
index 6bc9d385a74..00000000000
--- a/testing/libretro-beetle-bsnes/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-beetle-bsnes
-pkgver=0_git20191012
-pkgrel=0
-_commit="de22d8420ea606f1b2f72afd4dda34619cf2cc20"
-pkgdesc="standalone port of Mednafen bSNES to libretro"
-url="https://github.com/libretro/beetle-bsnes-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-bsnes-libretro/archive/$_commit.tar.gz
- patch-musl.patch"
-builddir="$srcdir/beetle-bsnes-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 mednafen_snes_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_snes_libretro.so
-}
-
-sha512sums="176d55a1e0b8604d8f362e30566144d211b53db1a407838a252e78d94f709d1f646ca25724b70ffe6052cc04d7dd22ec22f8df25ba24479d8bf653e0e4f75488 libretro-beetle-bsnes-de22d8420ea606f1b2f72afd4dda34619cf2cc20.tar.gz
-1324ce8101bea75316a5cfac6b21e442c2762c798b9d1ab5de22bf39adf38b154b4ffe7a79d34d9c919ec384465fd61c140765da60295c1712f93532336fdcb5 patch-musl.patch"
diff --git a/testing/libretro-beetle-bsnes/patch-musl.patch b/testing/libretro-beetle-bsnes/patch-musl.patch
deleted file mode 100644
index ca157239477..00000000000
--- a/testing/libretro-beetle-bsnes/patch-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Upstream: not yet, need to find a proper patch.
---- ./mednafen/snes/src/lib/nall/string/strl.hpp.orig 2020-04-05 13:30:05.865697614 +0200
-+++ ./mednafen/snes/src/lib/nall/string/strl.hpp 2020-04-05 13:30:12.735686081 +0200
-@@ -1,48 +0,0 @@
--#ifndef NALL_STRING_STRL_HPP
--#define NALL_STRING_STRL_HPP
--
--//strlcpy, strlcat based on OpenBSD implementation by Todd C. Miller
--
--//return = strlen(src)
--size_t strlcpy(char *dest, const char *src, size_t length) {
-- char *d = dest;
-- const char *s = src;
-- size_t n = length;
--
-- if(n) {
-- while(--n && (*d++ = *s++)); //copy as many bytes as possible, or until null terminator reached
-- }
--
-- if(!n) {
-- if(length) *d = 0;
-- while(*s++); //traverse rest of s, so that s - src == strlen(src)
-- }
--
-- return (s - src - 1); //return length of copied string, sans null terminator
--}
--
--//return = strlen(src) + min(length, strlen(dest))
--size_t strlcat(char *dest, const char *src, size_t length) {
-- char *d = dest;
-- const char *s = src;
-- size_t n = length;
--
-- while(n-- && *d) d++; //find end of dest
-- size_t dlength = d - dest;
-- n = length - dlength; //subtract length of dest from maximum string length
--
-- if(!n) return dlength + strlen(s);
--
-- while(*s) {
-- if(n != 1) {
-- *d++ = *s;
-- n--;
-- }
-- s++;
-- }
-- *d = 0;
--
-- return dlength + (s - src); //return length of resulting string, sans null terminator
--}
--
--#endif
---- ./mednafen/snes/src/lib/nall/string/base.hpp.orig 2020-04-05 13:25:44.896135748 +0200
-+++ ./mednafen/snes/src/lib/nall/string/base.hpp 2020-04-05 13:25:57.799447417 +0200
-@@ -34,8 +34,6 @@
- inline bool match(const char *pattern, const char *str);
- inline bool strint (const char *str, int &result);
- inline bool strmath(const char *str, int &result);
--inline size_t strlcpy(char *dest, const char *src, size_t length);
--inline size_t strlcat(char *dest, const char *src, size_t length);
- inline char* ltrim(char *str, const char *key = " ");
- inline char* rtrim(char *str, const char *key = " ");
- inline char* trim (char *str, const char *key = " ");
diff --git a/testing/libretro-beetle-lynx/APKBUILD b/testing/libretro-beetle-lynx/APKBUILD
deleted file mode 100644
index 17d1f74e46e..00000000000
--- a/testing/libretro-beetle-lynx/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-beetle-lynx
-pkgver=0_git20191226
-pkgrel=0
-_commit="74dde204c0ec6c4bc4cd7821c14548387fbd9ce8"
-pkgdesc="standalone port of Mednafen Lynx to libretro"
-url="https://github.com/libretro/libretro-beetle-lynx"
-arch="all"
-license="GPL-2.0-only AND Zlib"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-lynx-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/beetle-lynx-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 mednafen_lynx_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_lynx_libretro.so
-}
-
-sha512sums="65373ec0f9b7591a3a5b6bfcc52fb53e7a02590995e2825ec8787f400fc46c613315127541aa5f36dcb2a37687ea0867d526fccd84e6383cb5397ed3f15f0446 libretro-beetle-lynx-74dde204c0ec6c4bc4cd7821c14548387fbd9ce8.tar.gz"
diff --git a/testing/libretro-beetle-ngp/APKBUILD b/testing/libretro-beetle-ngp/APKBUILD
deleted file mode 100644
index f7c99963831..00000000000
--- a/testing/libretro-beetle-ngp/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-beetle-ngp
-pkgver=0_git20200130
-pkgrel=0
-_commit="6f15532b6ad17a2d5eb9dc8241d6af62416e796b"
-pkgdesc="standalone port of Mednafen NGP to the libretro API"
-url="https://github.com/libretro/libretro-beetle-ngp"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-ngp-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/beetle-ngp-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 mednafen_ngp_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_ngp_libretro.so
-}
-
-sha512sums="f0aa1f2096ef9f17121018215c52850205f4d553553e66341f4c5604982ca16fe486c74c62043775eda74be72f92d64b73672a6afedccb7a02ccef04595c0099 libretro-beetle-ngp-6f15532b6ad17a2d5eb9dc8241d6af62416e796b.tar.gz"
diff --git a/testing/libretro-beetle-pce-fast/APKBUILD b/testing/libretro-beetle-pce-fast/APKBUILD
index 44f887c3cf1..a500cec0ce2 100644
--- a/testing/libretro-beetle-pce-fast/APKBUILD
+++ b/testing/libretro-beetle-pce-fast/APKBUILD
@@ -1,23 +1,27 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-beetle-pce-fast
-pkgver=0_git20200319
+pkgver=0_git20220205
pkgrel=0
-_commit="019179ce335b68a22dcba94ae6c51cad8135ee16"
+_commit="e8801687f232a6f8828b3ff5dadbc9fe1b0076fc"
pkgdesc="standalone fork of Mednafen PCE Fast to libretro"
url="https://github.com/libretro/beetle-pce-fast-libretro"
arch="all"
license="GPL-2.0-only"
+makedepends="zlib-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-pce-fast-libretro/archive/$_commit.tar.gz"
builddir="$srcdir/beetle-pce-fast-libretro-$_commit"
options="!check" # No tests
build() {
- make
+ rm -rf deps/zlib*
+ make SYSTEM_ZLIB=1
}
package() {
install -Dm644 mednafen_pce_fast_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_pce_fast_libretro.so
}
-sha512sums="acd3bb11d2c2bbb94bc8a9525539d4940223181844297240b343ff59324392a2899852e6951620495277eaa5b88d057601fe6a080ae28a045e3a184e09f0e259 libretro-beetle-pce-fast-019179ce335b68a22dcba94ae6c51cad8135ee16.tar.gz"
+sha512sums="
+75145b4d3fbd8503ec5cf2f96a3b45e379031fe0cf585f6afe993bc394e15807e5f9fd8cc78d217a664d60af40100275cbe35717c5a1251992ce913d407e9292 libretro-beetle-pce-fast-e8801687f232a6f8828b3ff5dadbc9fe1b0076fc.tar.gz
+"
diff --git a/testing/libretro-beetle-pcfx/APKBUILD b/testing/libretro-beetle-pcfx/APKBUILD
index b581703f7ff..572efd0f5a0 100644
--- a/testing/libretro-beetle-pcfx/APKBUILD
+++ b/testing/libretro-beetle-pcfx/APKBUILD
@@ -1,23 +1,27 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-beetle-pcfx
-pkgver=0_git20200109
+pkgver=0_git20220409
pkgrel=0
-_commit="7bba6699d6f903bd701b0aa525d845de8427fee6"
+_commit="bfc0954e14b261a04dcf8dbe0df8798f16ae3f3c"
pkgdesc="standalone port of Mednafen PCFX to libretro"
url="https://github.com/libretro/beetle-pcfx-libretro"
-arch="all !mips !mips64"
+arch="all"
license="GPL-2.0-only"
+makedepends="zlib-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-pcfx-libretro/archive/$_commit.tar.gz"
builddir="$srcdir/beetle-pcfx-libretro-$_commit"
options="!check" # No tests
build() {
- make
+ rm -rf deps/zlib*
+ make SYSTEM_ZLIB=1
}
package() {
install -Dm644 mednafen_pcfx_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_pcfx_libretro.so
}
-sha512sums="28911d5c564359374d613825dc3c008713f68d2cd0bb53ff18e0f018e584f881af05a09da648a30f00b4c612d8179a6ec3ae5b6de48ab0dc48e580a2befe21ce libretro-beetle-pcfx-7bba6699d6f903bd701b0aa525d845de8427fee6.tar.gz"
+sha512sums="
+3a8542b8e904026083486f3f1e1c4859bae1befa76d2ba811f629ef6dfe6e4bac279e5e1979b913b1c3257fca6e61335e42027c7f6bbd0049f98793f65aaa781 libretro-beetle-pcfx-bfc0954e14b261a04dcf8dbe0df8798f16ae3f3c.tar.gz
+"
diff --git a/testing/libretro-beetle-saturn/APKBUILD b/testing/libretro-beetle-saturn/APKBUILD
index fb3c67f35ac..ece63be69f6 100644
--- a/testing/libretro-beetle-saturn/APKBUILD
+++ b/testing/libretro-beetle-saturn/APKBUILD
@@ -1,23 +1,27 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-beetle-saturn
-pkgver=0_git20200123
+pkgver=0_git20220417
pkgrel=0
-_commit="8a65943bb7bbc3183eeb0d57c4ac3e663f1bcc11"
+_commit="dd18f9c477106263b3b7b050f4970d331ff7b23a"
pkgdesc="standalone port of Mednafen Saturn to the libretro API"
url="https://github.com/libretro/beetle-saturn-libretro"
-arch="all !mips !mips64" # fails to build on mips
+arch="all"
license="GPL-2.0-only"
+makedepends="zlib-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-saturn-libretro/archive/$_commit.tar.gz"
builddir="$srcdir/beetle-saturn-libretro-$_commit"
options="!check" # No tests
build() {
- make
+ rm -rf deps/zlib*
+ make SYSTEM_ZLIB=1
}
package() {
install -Dm644 mednafen_saturn_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_saturn_libretro.so
}
-sha512sums="3467d0bbaf1d687a924036de3992848759904db685282650d6de23d86f66a38128fbd31dcbbcf2f57e9ec4a6270a20c5663437838e434543e1f1e3792dea7681 libretro-beetle-saturn-8a65943bb7bbc3183eeb0d57c4ac3e663f1bcc11.tar.gz"
+sha512sums="
+0e3c06b5f92f4bac0c0cebb38c345b7bbd7e2fbcdfc713c727f73f738d0f99e204fd3e5d312354c2387b5234cd7d0c74a61e876657a9b26e62af91bac52bf9f6 libretro-beetle-saturn-dd18f9c477106263b3b7b050f4970d331ff7b23a.tar.gz
+"
diff --git a/testing/libretro-beetle-supergrafx/APKBUILD b/testing/libretro-beetle-supergrafx/APKBUILD
index 759d7cdb0d9..2b1b74a7829 100644
--- a/testing/libretro-beetle-supergrafx/APKBUILD
+++ b/testing/libretro-beetle-supergrafx/APKBUILD
@@ -1,23 +1,27 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-beetle-supergrafx
-pkgver=0_git20200131
+pkgver=0_git20220218
pkgrel=0
-_commit="fadef23d59fa5ec17bc99e1e722cfd9e10535695"
+_commit="59991a98c232b1a8350a9d67ac554c5b22771d3c"
pkgdesc="standalone port of Mednafen PCE Fast to libretro"
url="https://github.com/libretro/beetle-supergrafx-libretro"
arch="all"
license="GPL-2.0-only"
+makedepends="zlib-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-supergrafx-libretro/archive/$_commit.tar.gz"
builddir="$srcdir/beetle-supergrafx-libretro-$_commit"
options="!check" # No tests
build() {
- make
+ rm -rf deps/zlib*
+ make SYSTEM_ZLIB=1
}
package() {
install -Dm644 mednafen_supergrafx_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_supergrafx_libretro.so
}
-sha512sums="fc4e6d580767fd50e4a363317d9915f09865391c3eb56553c6008a4138684cc7c151133038da45484a41ae2d804cd0ec536f3c65c7ae394b52c2b3070e6dd877 libretro-beetle-supergrafx-fadef23d59fa5ec17bc99e1e722cfd9e10535695.tar.gz"
+sha512sums="
+5a59c069bd9369aa82fcb1a3dbc14b03cd6bae65380d312b6de32510a02a625f13c115138b5bd7d71c540360e8e47ca8cbd53af7ef162727a769daa324d58676 libretro-beetle-supergrafx-59991a98c232b1a8350a9d67ac554c5b22771d3c.tar.gz
+"
diff --git a/testing/libretro-beetle-vb/APKBUILD b/testing/libretro-beetle-vb/APKBUILD
deleted file mode 100644
index f95e6170528..00000000000
--- a/testing/libretro-beetle-vb/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-beetle-vb
-pkgver=0_git20200109
-pkgrel=0
-_commit="9a4e604a7320a3c6ed30601989fe0bc417fa9ad3"
-pkgdesc="standalone port of Mednafen VB to libretro"
-url="https://github.com/libretro/beetle-vb-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-vb-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/beetle-vb-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 mednafen_vb_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_vb_libretro.so
-}
-
-sha512sums="5673d21086788d4ca664d037c1964477303d8ceab46534fd18a77fc3b9b995492c2883a500fc401ff7e6fe96f5c36b6640f0e03bd05d4cc632e786e851e16284 libretro-beetle-vb-9a4e604a7320a3c6ed30601989fe0bc417fa9ad3.tar.gz"
diff --git a/testing/libretro-beetle-wswan/APKBUILD b/testing/libretro-beetle-wswan/APKBUILD
deleted file mode 100644
index b949ebb2b93..00000000000
--- a/testing/libretro-beetle-wswan/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-beetle-wswan
-pkgver=0_git20200124
-pkgrel=0
-_commit="5b03d1b09f70dc208387d3c8b59e12e1f0d2692f"
-pkgdesc="standalone fork of Mednafen WonderSwan to libretro"
-url="https://github.com/libretro/beetle-wswan-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/beetle-wswan-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/beetle-wswan-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 mednafen_wswan_libretro.so "$pkgdir"/usr/lib/libretro/mednafen_wswan_libretro.so
-}
-
-sha512sums="aa192acd25defdbe8a8db283a3d8273cb9822487f6fa627233e72ecde8c7c0fbd7d93d3b810065409f527a413e8f03e11eae58d7f284dce668e1e9569b3e821a libretro-beetle-wswan-5b03d1b09f70dc208387d3c8b59e12e1f0d2692f.tar.gz"
diff --git a/testing/libretro-bk/APKBUILD b/testing/libretro-bk/APKBUILD
deleted file mode 100644
index 63900b18784..00000000000
--- a/testing/libretro-bk/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-bk
-pkgver=0_git20200310
-pkgrel=0
-_commit="d5252edcc7ece0a43ddcffef792bdb37587057ce"
-pkgdesc="BK-0010/0011/Terak 8510a emulator"
-url="https://github.com/libretro/bk-emulator"
-arch="all"
-license="custom"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/bk-emulator/archive/$_commit.tar.gz"
-builddir="$srcdir/bk-emulator-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 bk_libretro.so "$pkgdir"/usr/lib/libretro/bk_libretro.so
-}
-
-sha512sums="c413e01ab6821c77032e0d152a551cc7c8a8214c8bf4cd7a504f9edd0aaa4eb68d25d9772df51ce2f7f256d8ac433d75b256aebe78da35869648b82bd29d92c8 libretro-bk-d5252edcc7ece0a43ddcffef792bdb37587057ce.tar.gz"
diff --git a/testing/libretro-blastem/APKBUILD b/testing/libretro-blastem/APKBUILD
index bd7d83a5bf9..3382370d19c 100644
--- a/testing/libretro-blastem/APKBUILD
+++ b/testing/libretro-blastem/APKBUILD
@@ -1,24 +1,30 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-blastem
-pkgver=0_git20190620
+pkgver=0_git20210810
pkgrel=0
-_commit="4206da1f986ecda199c82d4a2404eff904397f55"
+_commit="0786858437ed71996f43b7af0fbe627eb88152fc"
pkgdesc="fast and accurate Genesis emulator"
url="https://github.com/libretro/blastem"
-arch="all !aarch64 !armv7 !armhf !x86 !mips !mips64"
+arch="all !aarch64 !armv7 !armhf !x86 !riscv64"
license="GPL-3.0-only"
-makedepends="mesa-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/blastem/archive/$_commit.tar.gz"
+makedepends="mesa-dev zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/blastem/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/blastem-$_commit"
options="!check" # No tests
build() {
- make -f Makefile.libretro GIT_VERSION="$_SCOMMIT"
+ rm -rf zlib
+ make -f Makefile.libretro HOST_ZLIB=1
}
package() {
install -Dm644 "$builddir"/blastem_libretro.so "$pkgdir"/usr/lib/libretro/blastem_libretro.so
}
-sha512sums="dfcb85d0cfb307377fbb7c997511cb97512827afa4f72e5bff0902e1818add02d32e4146974f79cd4d332529d2c7d919f58aa860042ab41ad9576b88c8eafe91 libretro-blastem-4206da1f986ecda199c82d4a2404eff904397f55.tar.gz"
+sha512sums="
+ff11a2ec56c5f174e471313c24287156d1182d54ba7abd2f9fda78347434ed65fc1b0622c60d63bcfd7db49a0a8287939570b9f7df2c59f94e5f66fdf2ffd63d libretro-blastem-0786858437ed71996f43b7af0fbe627eb88152fc.tar.gz
+0ffdbdb9aadc147e971589b162c444ecffa72b297351538ab5546b28088e7e345d61268f9feb143f5620202c6dad4bc4ac5b1ffcd330c99aa8b54065f09cb960 patch-unbundle.patch
+"
diff --git a/testing/libretro-blastem/patch-unbundle.patch b/testing/libretro-blastem/patch-unbundle.patch
new file mode 100644
index 00000000000..8f4f862f34f
--- /dev/null
+++ b/testing/libretro-blastem/patch-unbundle.patch
@@ -0,0 +1,92 @@
+Remove bundled zlib.
+--- a/Makefile
++++ b/Makefile
+@@ -6,9 +6,6 @@
+ endif
+ FIXUP:=true
+
+-BUNDLED_LIBZ:=zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o\
+- zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o
+-
+ ifeq ($(OS),Windows)
+
+ GLEW_PREFIX:=glew
+@@ -74,7 +71,7 @@
+ endif #Darwin
+
+ ifdef HOST_ZLIB
+-LIBS+= zlib
++LIBS+= -lz
+ LIBZOBJS=
+ else
+ LIBZOBJS=$(BUNDLED_LIBZ)
+--- a/blastem.c
++++ b/blastem.c
+@@ -65,7 +65,7 @@
+ #define romgetc fgetc
+ #define romclose fclose
+ #else
+-#include "zlib/zlib.h"
++#include <zlib.h>
+ #define ROMFILE gzFile
+ #define romopen gzopen
+ #define romread gzfread
+--- a/event_log.c
++++ b/event_log.c
+@@ -13,11 +13,13 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
++
++#include <zlib.h>
++
+ #include "event_log.h"
+ #include "util.h"
+ #include "blastem.h"
+ #include "saves.h"
+-#include "zlib/zlib.h"
+
+ enum {
+ CMD_GAMEPAD_DOWN,
+--- a/event_log.h
++++ b/event_log.h
+@@ -1,6 +1,8 @@
+ #ifndef EVENT_LOG_H_
+ #define EVENT_LOG_H_
+
++#include <zlib.h>
++
+ enum {
+ EVENT_FLUSH = 0,
+ EVENT_ADJUST = 1,
+@@ -20,7 +22,6 @@
+ };
+
+ #include "serialize.h"
+-#include "zlib/zlib.h"
+ typedef struct {
+ size_t storage;
+ uint8_t *socket_buffer;
+--- a/png.c
++++ b/png.c
+@@ -2,7 +2,8 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+-#include "zlib/zlib.h"
++
++#include <zlib.h>
+
+ static const char png_magic[] = {0x89, 'P', 'N', 'G', '\r', '\n', 0x1A, '\n'};
+ static const char ihdr[] = {'I', 'H', 'D', 'R'};
+--- a/zip.c
++++ b/zip.c
+@@ -5,7 +5,7 @@
+ #include "util.h"
+ #include "zip.h"
+ #ifndef DISABLE_ZLIB
+-#include "zlib/zlib.h"
++#include <zlib.h>
+ #endif
+
+ static const char cdfd_magic[4] = {'P', 'K', 1, 2};
diff --git a/testing/libretro-bluemsx/APKBUILD b/testing/libretro-bluemsx/APKBUILD
index 9c3afc488a9..8b0ef3ed33a 100644
--- a/testing/libretro-bluemsx/APKBUILD
+++ b/testing/libretro-bluemsx/APKBUILD
@@ -1,18 +1,22 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-bluemsx
-pkgver=0_git20200402
+pkgver=0_git20220213
pkgrel=0
-_commit="b5670571342a533193024eede34472a6d3498f62"
+_commit="92d0c41b4973854114c7b2d06ab727a266d404c5"
pkgdesc="port of blueMSX to the libretro API"
url="https://github.com/libretro/blueMSX-libretro"
arch="all"
+makedepends="zlib-dev"
license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/blueMSX-libretro/archive/$_commit.tar.gz"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/blueMSX-libretro/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/blueMSX-libretro-$_commit"
options="!check" # No tests
build() {
+ rm -rf deps
make -f Makefile.libretro
}
@@ -20,4 +24,7 @@ package() {
install -Dm644 bluemsx_libretro.so "$pkgdir"/usr/lib/libretro/bluemsx_libretro.so
}
-sha512sums="e80640040c16ab70ad08d69fec98be6f20dc01038812d211a75eb206312ac4fcdaff21bcdef43ef5d924d341dc866213dd1b1da954fc54a585b5dbd612d06c92 libretro-bluemsx-b5670571342a533193024eede34472a6d3498f62.tar.gz"
+sha512sums="
+eedbdc2f47dc2eadd381b7a4abdc37eb132ffb43d1453f951a7b5778543e9cc4468d20cffeced59e85b2d10c6107fe1829c261c0199a012fd418b536f6d4554a libretro-bluemsx-92d0c41b4973854114c7b2d06ab727a266d404c5.tar.gz
+27bd632aace1acbc7c0dd30d0d2576c08dcc52b88a81296e0c1c7e845d92f6ffb901f133a9154a8b05ad36667d1353bd3894b52f226e5a20e48c637b27a3ec11 patch-unbundle.patch
+"
diff --git a/testing/libretro-bluemsx/patch-unbundle.patch b/testing/libretro-bluemsx/patch-unbundle.patch
new file mode 100644
index 00000000000..8b076275ea9
--- /dev/null
+++ b/testing/libretro-bluemsx/patch-unbundle.patch
@@ -0,0 +1,38 @@
+Remove bundled zlib.
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -24,8 +24,7 @@
+ -I$(CORE_DIR)/Src/VideoRender \
+ -I$(CORE_DIR)/Src/Z80 \
+ -I$(CORE_DIR)/Src/Input \
+- -I$(CORE_DIR)/Src/Libretro \
+- -I$(DEPS_DIR)/zlib
++ -I$(CORE_DIR)/Src/Libretro
+
+ ifneq (,$(findstring msvc2003,$(platform)))
+ INCFLAGS += -I$(LIBRETRO_COMM_DIR)/include/compat/msvc
+@@ -309,18 +308,6 @@
+ SOURCES_C += $(LIBRETRO_COMM_DIR)/file/retro_dirent.c \
+ $(LIBRETRO_COMM_DIR)/compat/compat_snprintf.c \
+ $(LIBRETRO_COMM_DIR)/compat/compat_strcasestr.c
+-
+-#include zlib
+-SOURCES_C += $(DEPS_DIR)/zlib/adler32.c \
+- $(DEPS_DIR)/zlib/compress.c \
+- $(DEPS_DIR)/zlib/crc32.c \
+- $(DEPS_DIR)/zlib/deflate.c \
+- $(DEPS_DIR)/zlib/inffast.c \
+- $(DEPS_DIR)/zlib/inflate.c \
+- $(DEPS_DIR)/zlib/inftrees.c \
+- $(DEPS_DIR)/zlib/trees.c \
+- $(DEPS_DIR)/zlib/uncompr.c \
+- $(DEPS_DIR)/zlib/zutil.c
+ endif
+
+ ifeq ($(HAVE_COMPAT), 1)
+@@ -332,3 +319,5 @@
+ COREDEFINES += -DHAVE_WIN32_MSX_MANAGER
+ SOURCES_CXX += $(CORE_DIR)/Src/IoDevice/msxgr.cpp
+ endif
++
++LIBS += -lz
diff --git a/testing/libretro-cannonball/APKBUILD b/testing/libretro-cannonball/APKBUILD
index 906b77aa800..d819dc47aa7 100644
--- a/testing/libretro-cannonball/APKBUILD
+++ b/testing/libretro-cannonball/APKBUILD
@@ -1,18 +1,20 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-cannonball
-pkgver=0_git20200107
-pkgrel=0
-_commit="5dcef189dc5c408bbd9e4bc08b1f9801b04cd3ca"
+pkgver=0_git20220309
+pkgrel=6
+_commit="8fb0d9561ee110f31f45610661649f0c1ff068ee"
pkgdesc="an enhanced OutRun Engine"
url="https://github.com/libretro/cannonball"
arch="all"
license="custom"
+makedepends="boost-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/cannonball/archive/$_commit.tar.gz"
builddir="$srcdir/cannonball-$_commit"
options="!check" # No tests
build() {
+ rm -rf deps/boost
make
}
@@ -20,4 +22,6 @@ package() {
install -Dm644 cannonball_libretro.so "$pkgdir"/usr/lib/libretro/cannonball_libretro.so
}
-sha512sums="64cf9009474fecab71adb3d2d32bc156017f77a0732f20cfd9c1d4113c3aad0c99a0a258489c39dc8796bd21c702d3653a2e2c4de77e55692f0a5ba230a5e8bc libretro-cannonball-5dcef189dc5c408bbd9e4bc08b1f9801b04cd3ca.tar.gz"
+sha512sums="
+40a93053339498b8bf0ae2dd9f4ed6d7a21ae2d012d3d10922c40c678f150f26ea05e3ad75d62fb6994652a6e7bfce46a0d2f5c2d59bdb1214c11b1aa0ade173 libretro-cannonball-8fb0d9561ee110f31f45610661649f0c1ff068ee.tar.gz
+"
diff --git a/testing/libretro-cap32/APKBUILD b/testing/libretro-cap32/APKBUILD
index 68515566999..4499c2637f5 100644
--- a/testing/libretro-cap32/APKBUILD
+++ b/testing/libretro-cap32/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-cap32
-pkgver=0_git20190907
+pkgver=0_git20220419
pkgrel=0
-_commit="8681fbdc5623830078b38d713935caf4682e5295"
+_commit="20adc49260677f7e99325f1ce14caabc1878e1be"
pkgdesc="caprice32 emulator for libretro"
url="https://github.com/libretro/libretro-cap32"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 cap32_libretro.so "$pkgdir"/usr/lib/libretro/cap32_libretro.so
}
-sha512sums="82313d1ef235e50c1bd7e6c2c3b85ed2cde17c9476d27058d165fb2a8ea49e15f974d98f749e96eb2e9305710066644c3a4d5e0fc36b28df7d150685f9a798bc libretro-cap32-8681fbdc5623830078b38d713935caf4682e5295.tar.gz"
+sha512sums="
+89a168409d6483b370b69cc2c6702999101820a402bcd4d00f098c2eb0b9f724c9bcfe28eec9e31a0e417092c16ba9be6c6091aadd6ddf420b9bc2e018b88065 libretro-cap32-20adc49260677f7e99325f1ce14caabc1878e1be.tar.gz
+"
diff --git a/testing/libretro-craft/APKBUILD b/testing/libretro-craft/APKBUILD
deleted file mode 100644
index 0f54a1feeec..00000000000
--- a/testing/libretro-craft/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-craft
-pkgver=0_git20191221
-pkgrel=0
-_commit="d1b832825b9cc500328efdc0f0a78517f1c5b479"
-pkgdesc="a simple Minecraft clone written in C using modern OpenGL"
-url="https://github.com/libretro/Craft"
-arch="all"
-license="MIT"
-makedepends="mesa-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/Craft/archive/$_commit.tar.gz"
-builddir="$srcdir/Craft-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 craft_libretro.so "$pkgdir"/usr/lib/libretro/craft_libretro.so
-}
-
-sha512sums="d0df03e8827c87877ca21e1b617f99e9158cd85b17e422b67ebad5a4dbb56a4bc8ac7fc3c4f8324dae1289a746955adfd3f8fdef3ccf1747e9db6acfcd441218 libretro-craft-d1b832825b9cc500328efdc0f0a78517f1c5b479.tar.gz"
diff --git a/testing/libretro-crocods/APKBUILD b/testing/libretro-crocods/APKBUILD
index cb9a2172fcb..cea1958ea6c 100644
--- a/testing/libretro-crocods/APKBUILD
+++ b/testing/libretro-crocods/APKBUILD
@@ -1,18 +1,22 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-crocods
-pkgver=0_git20200322
-pkgrel=0
-_commit="76588a148dbbcc21575194898f90eab28659d4c3"
+pkgver=0_git20210314
+pkgrel=1
+_commit="86eeccfb68ad6a1cb39ef5b008902f6636d7d194"
pkgdesc="amstrad CPC emulator for libretro"
url="https://github.com/libretro/libretro-crocods"
arch="all"
license="MIT"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-crocods/archive/$_commit.tar.gz"
+makedepends="zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-crocods/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/libretro-crocods-$_commit"
options="!check" # No tests
build() {
+ rm -rf deps/libz
make
}
@@ -20,4 +24,5 @@ package() {
install -Dm644 crocods_libretro.so "$pkgdir"/usr/lib/libretro/crocods_libretro.so
}
-sha512sums="f7cdc8333eecf82eb9e8183002ecc7beef01481d4a059a8e0112e564158abbe3363fee21f2dc7e63f227ad5b30514263e1908078dcfb471f7d2bf760757aa58b libretro-crocods-76588a148dbbcc21575194898f90eab28659d4c3.tar.gz"
+sha512sums="3ec6134ea564288bf571c2b245e64daae65795189d111e84bb545fda57385412993bebc4ec2b4804462eab608a33098d5e0268d456583006970f86ec598ce5a5 libretro-crocods-86eeccfb68ad6a1cb39ef5b008902f6636d7d194.tar.gz
+fedceb287afc00c9d17a5abd13f45e4f2c5b97047d17db3863aaccd16e712d1a030a3641592f2b95404179263b0f0975c15d508619e420a74804348e828de85e patch-unbundle.patch"
diff --git a/testing/libretro-crocods/patch-unbundle.patch b/testing/libretro-crocods/patch-unbundle.patch
new file mode 100644
index 00000000000..acee7a0a850
--- /dev/null
+++ b/testing/libretro-crocods/patch-unbundle.patch
@@ -0,0 +1,33 @@
+Remove bundled zlib.
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -2,5 +2,4 @@
+ $(wildcard $(CORE_DIR)/crocods-core/*.c) \
+ $(wildcard $(CORE_DIR)/crocods-core/iniparser/*.c) \
+ $(wildcard $(CORE_DIR)/crocods-core/resources/*.c) \
+- $(wildcard $(CORE_DIR)/deps/*.c) \
+- $(wildcard $(CORE_DIR)/deps/libz/*.c)
++ $(wildcard $(CORE_DIR)/deps/*.c)
+--- a/Makefile
++++ b/Makefile
+@@ -290,7 +290,7 @@
+
+ CFLAGS +=
+ LFLAGS :=
+-LDFLAGS += $(LIBM)
++LDFLAGS += $(LIBM) -lz
+
+ ifeq ($(platform), osx)
+ ifndef ($(NOUNIVERSAL))
+--- a/deps/ziptool.c
++++ b/deps/ziptool.c
+@@ -4,7 +4,8 @@
+ #include <string.h>
+ #include <ctype.h>
+
+-#include "libz/zlib.h"
++#include <zlib.h>
++
+ #include "ziptool.h"
+
+ typedef char bool;
diff --git a/testing/libretro-daphne/APKBUILD b/testing/libretro-daphne/APKBUILD
index ea26a174ba1..1171f9d3765 100644
--- a/testing/libretro-daphne/APKBUILD
+++ b/testing/libretro-daphne/APKBUILD
@@ -1,19 +1,22 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-daphne
-pkgver=0_git20200914
-pkgrel=0
-_commit="7e5cac88d0509c6f4722100c5b8a9b5ee91f404a"
+pkgver=0_git20210108
+pkgrel=1
+_commit="0a7e6f0fda1348144369ce0a889876df60263e8f"
pkgdesc="daphne core for libretro"
url="https://github.com/libretro/daphne"
arch="all"
license="GPL-2.0-or-later"
-makedepends="zlib-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/daphne/archive/$_commit.tar.gz"
+makedepends="libogg-dev libvorbis-dev zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/daphne/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/daphne-$_commit"
options="!check" # No tests
build() {
+ rm -rf deps
make
}
@@ -21,4 +24,5 @@ package() {
install -Dm644 daphne_libretro.so "$pkgdir"/usr/lib/libretro/daphne_libretro.so
}
-sha512sums="f66e4effb9080d9f44f076ae35174531f9cc375f3df6572745acce05f094098f4cee7a331dcf44b9c8e46133d236f0097a6256ff413da8f7dd214d0cd28194b1 libretro-daphne-7e5cac88d0509c6f4722100c5b8a9b5ee91f404a.tar.gz"
+sha512sums="8af1018ad596887a4a8b64683e89d76010a92677dca5d0d3062f5697b97f5135e25517fae7ed9037c6da947c5162353d31569c629cba154401b76c7ba46d3d6b libretro-daphne-0a7e6f0fda1348144369ce0a889876df60263e8f.tar.gz
+308588bdafbc470390e53d84c6e5b11a4760e194879add00214960f2625be243ed199205ecbda881ae0616b3d163a216602a776cb3d304da3ec81a8ec1ae298e patch-unbundle.patch"
diff --git a/testing/libretro-daphne/patch-unbundle.patch b/testing/libretro-daphne/patch-unbundle.patch
new file mode 100644
index 00000000000..c5571adf88e
--- /dev/null
+++ b/testing/libretro-daphne/patch-unbundle.patch
@@ -0,0 +1,67 @@
+Remove bundled zlib, libvorbis and libogg.
+--- a/Makefile
++++ b/Makefile
+@@ -250,6 +250,7 @@
+
+ CXXFLAGS += -D__LIBRETRO__
+ CFLAGS += -D__LIBRETRO__
++LIBS += -lz -lvorbisfile -lvorbis -logg
+
+ all: $(TARGET)
+
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -3,53 +3,9 @@
+ DAPHNE_DIR := $(DAPHNE_MAIN_DIR)/daphne-1.0-src
+
+ INCFLAGS := -I$(CORE_DIR) \
+- -I$(CORE_DIR)/deps/libogg/include \
+- -I$(CORE_DIR)/deps/libvorbis/include \
+ -I$(DAPHNE_MAIN_DIR)/include \
+ -I$(DAPHNE_DIR)/vldp2/include \
+- -I$(CORE_DIR)/deps/libvorbis/lib \
+ -I$(CORE_DIR)/daphne/libretro
+-
+-SOURCES_C := $(DEPS_DIR)/libogg/src/bitwise.c \
+- $(DEPS_DIR)/libogg/src/framing.c \
+- $(DEPS_DIR)/libvorbis/lib/analysis.c \
+- $(DEPS_DIR)/libvorbis/lib/bitrate.c \
+- $(DEPS_DIR)/libvorbis/lib/block.c \
+- $(DEPS_DIR)/libvorbis/lib/codebook.c \
+- $(DEPS_DIR)/libvorbis/lib/envelope.c \
+- $(DEPS_DIR)/libvorbis/lib/floor0.c \
+- $(DEPS_DIR)/libvorbis/lib/floor1.c \
+- $(DEPS_DIR)/libvorbis/lib/info.c \
+- $(DEPS_DIR)/libvorbis/lib/lookup.c \
+- $(DEPS_DIR)/libvorbis/lib/lpc.c \
+- $(DEPS_DIR)/libvorbis/lib/lsp.c \
+- $(DEPS_DIR)/libvorbis/lib/mapping0.c \
+- $(DEPS_DIR)/libvorbis/lib/mdct.c \
+- $(DEPS_DIR)/libvorbis/lib/psy.c \
+- $(DEPS_DIR)/libvorbis/lib/registry.c \
+- $(DEPS_DIR)/libvorbis/lib/res0.c \
+- $(DEPS_DIR)/libvorbis/lib/sharedbook.c \
+- $(DEPS_DIR)/libvorbis/lib/smallft.c \
+- $(DEPS_DIR)/libvorbis/lib/synthesis.c \
+- $(DEPS_DIR)/libvorbis/lib/vorbisenc.c \
+- $(DEPS_DIR)/libvorbis/lib/vorbisfile.c \
+- $(DEPS_DIR)/libvorbis/lib/window.c \
+-
+-SOURCES_C += $(DEPS_DIR)/zlib/deflate.c \
+- $(DEPS_DIR)/zlib/gzlib.c \
+- $(DEPS_DIR)/zlib/uncompr.c \
+- $(DEPS_DIR)/zlib/zutil.c \
+- $(DEPS_DIR)/zlib/inffast.c \
+- $(DEPS_DIR)/zlib/gzread.c \
+- $(DEPS_DIR)/zlib/crc32.c \
+- $(DEPS_DIR)/zlib/gzwrite.c \
+- $(DEPS_DIR)/zlib/inflate.c \
+- $(DEPS_DIR)/zlib/infback.c \
+- $(DEPS_DIR)/zlib/inftrees.c \
+- $(DEPS_DIR)/zlib/trees.c \
+- $(DEPS_DIR)/zlib/gzclose.c \
+- $(DEPS_DIR)/zlib/compress.c \
+- $(DEPS_DIR)/zlib/adler32.c
+
+ SOURCES_CXX :=
+
diff --git a/testing/libretro-dinothawr/APKBUILD b/testing/libretro-dinothawr/APKBUILD
index d51f6beec15..dcd56aac567 100644
--- a/testing/libretro-dinothawr/APKBUILD
+++ b/testing/libretro-dinothawr/APKBUILD
@@ -1,18 +1,22 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-dinothawr
-pkgver=0_git20200107
+pkgver=0_git20220401
pkgrel=0
-_commit="18118f66f4a04897fd1cbbfa87cd8957f5bd22ad"
+_commit="33fb82a8df4e440f96d19bba38668beaa1b414fc"
pkgdesc="block pushing puzzle game on slippery surfaces"
url="https://github.com/libretro/Dinothawr"
arch="all"
license="custom"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/Dinothawr/archive/$_commit.tar.gz"
+makedepends="libogg-dev libvorbis-dev pugixml-dev zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/Dinothawr/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/Dinothawr-$_commit"
options="!check" # No tests
build() {
+ rm -rf deps
make
}
@@ -20,4 +24,7 @@ package() {
install -Dm644 dinothawr_libretro.so "$pkgdir"/usr/lib/libretro/dinothawr_libretro.so
}
-sha512sums="bee06e9c3c7012d8d44f5856eff433bb87742b1c779e346498379c8f79e8375bcddcfa32aca83cc6987b7728f151b85c4f9da8d8c3224616a88e8f0b8ae25151 libretro-dinothawr-18118f66f4a04897fd1cbbfa87cd8957f5bd22ad.tar.gz"
+sha512sums="
+b43b6046d7502e4d031bc2a5f9ceed48ec89768ee984509674fde62dec2fab32754764bda5cd989097e9e51c801cdee00c7033e74d361f291f5c2f1d20f878f8 libretro-dinothawr-33fb82a8df4e440f96d19bba38668beaa1b414fc.tar.gz
+4d13454c1f67891d6bf1493ce84d5a3826a646a80709d7ec9fc7606e6bd9f7f21082e9c28d3073d4e8f4bf01e13a7e1476d9fe0d832ccb05474995363f360747 patch-unbundle.patch
+"
diff --git a/testing/libretro-dinothawr/patch-unbundle.patch b/testing/libretro-dinothawr/patch-unbundle.patch
new file mode 100644
index 00000000000..05db4b89af0
--- /dev/null
+++ b/testing/libretro-dinothawr/patch-unbundle.patch
@@ -0,0 +1,128 @@
+Remove bundled zlib, libvorbis and libogg
+--- a/tilemap.cpp
++++ b/tilemap.cpp
+@@ -6,7 +6,8 @@
+ #include <map>
+ #include <utility>
+ #include <string>
+-#include "pugixml/pugixml.hpp"
++
++#include <pugixml.hpp>
+
+ using namespace pugi;
+
+--- a/Makefile
++++ b/Makefile
+@@ -392,6 +392,8 @@
+ LD = $(CXX)
+ endif
+
++LIBS += -lz -lpugixml -lvorbis -lvorbisfile -logg
++
+ %.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c $(OBJOUT)$@ $<
+
+--- a/game_manager.cpp
++++ b/game_manager.cpp
+@@ -1,5 +1,6 @@
++#include <pugixml.hpp>
++
+ #include "game.hpp"
+-#include "pugixml/pugixml.hpp"
+ #include "utils.hpp"
+
+ #include <iostream>
+--- a/utils.hpp
++++ b/utils.hpp
+@@ -17,7 +17,7 @@
+ #include <errno.h>
+ #include <functional>
+
+-#include <pugixml/pugixml.hpp>
++#include <pugixml.hpp>
+
+ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+ #if GCC_VERSION >= 70000
+--- a/font.cpp
++++ b/font.cpp
+@@ -1,5 +1,6 @@
++#include <pugixml.hpp>
++
+ #include "font.hpp"
+-#include "pugixml/pugixml.hpp"
+ #include "utils.hpp"
+
+ #include <stdexcept>
+--- a/surface_cache.cpp
++++ b/surface_cache.cpp
+@@ -1,5 +1,6 @@
++#include <pugixml.hpp>
++
+ #include "surface.hpp"
+-#include "pugixml/pugixml.hpp"
+ #include "rpng_front.h"
+ #include <stdexcept>
+ #include <stdio.h>
+--- a/tilemap.hpp
++++ b/tilemap.hpp
+@@ -1,8 +1,9 @@
+ #ifndef TILEMAP_HPP__
+ #define TILEMAP_HPP__
+
++#include <pugixml.hpp>
++
+ #include "surface.hpp"
+-#include "pugixml/pugixml.hpp"
+
+ #include <string>
+ #include <set>
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -1,6 +1,6 @@
+ LIBRETRO_COMM_DIR := $(CORE_DIR)/libretro-common
+ DEPS_DIR := $(CORE_DIR)/deps
+-INCFLAGS := -I$(DEPS_DIR) -I$(CORE_DIR)/audio -I$(DEPS_DIR)/pugixml -I$(DEPS_DIR)/vorbis -I$(DEPS_DIR)/ogg -I$(DEPS_DIR)/libz -I$(LIBRETRO_COMM_DIR)/include
++INCFLAGS := -I$(CORE_DIR)/audio -I$(LIBRETRO_COMM_DIR)/include
+
+ SOURCES_ASM :=
+
+@@ -15,39 +15,7 @@
+ $(CORE_DIR)/surface_cache.cpp \
+ $(CORE_DIR)/surface_cluster.cpp \
+ $(CORE_DIR)/tilemap.cpp \
+- $(DEPS_DIR)/pugixml/pugixml.cpp \
+ $(CORE_DIR)/audio/mixer.cpp
+-
+-SOURCES_C := \
+- $(DEPS_DIR)/ogg/bitwise.c \
+- $(DEPS_DIR)/ogg/framing.c \
+- $(DEPS_DIR)/vorbis/bitrate.c \
+- $(DEPS_DIR)/vorbis/block.c \
+- $(DEPS_DIR)/vorbis/codebook.c \
+- $(DEPS_DIR)/vorbis/envelope.c \
+- $(DEPS_DIR)/vorbis/floor0.c \
+- $(DEPS_DIR)/vorbis/floor1.c \
+- $(DEPS_DIR)/vorbis/info.c \
+- $(DEPS_DIR)/vorbis/lpc.c \
+- $(DEPS_DIR)/vorbis/lsp.c \
+- $(DEPS_DIR)/vorbis/mapping0.c \
+- $(DEPS_DIR)/vorbis/mdct.c \
+- $(DEPS_DIR)/vorbis/psy.c \
+- $(DEPS_DIR)/vorbis/registry.c \
+- $(DEPS_DIR)/vorbis/res0.c \
+- $(DEPS_DIR)/vorbis/sharedbook.c \
+- $(DEPS_DIR)/vorbis/smallft.c \
+- $(DEPS_DIR)/vorbis/synthesis.c \
+- $(DEPS_DIR)/vorbis/vorbisfile.c \
+- $(DEPS_DIR)/vorbis/window.c \
+- $(DEPS_DIR)/libz/adler32.c \
+- $(DEPS_DIR)/libz/crc32.c \
+- $(DEPS_DIR)/libz/deflate.c \
+- $(DEPS_DIR)/libz/inffast.c \
+- $(DEPS_DIR)/libz/inflate.c \
+- $(DEPS_DIR)/libz/inftrees.c \
+- $(DEPS_DIR)/libz/trees.c \
+- $(DEPS_DIR)/libz/zutil.c
+
+ SOURCES_C += $(CORE_DIR)/rpng_front.c
+
diff --git a/testing/libretro-dolphin/APKBUILD b/testing/libretro-dolphin/APKBUILD
new file mode 100644
index 00000000000..5f86a68e58d
--- /dev/null
+++ b/testing/libretro-dolphin/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-dolphin
+pkgver=0_git20220407
+pkgrel=2
+_commit="6a0b6ee8a4d5363e669f5faf43abc8f17e4278a8"
+pkgdesc="libretro core for dolphin"
+url="https://github.com/libretro/dolphin"
+arch="aarch64 x86_64"
+license="GPL-2.0-or-later"
+makedepends="
+ alsa-lib-dev
+ bzip2-dev
+ cmake
+ eudev-dev
+ libusb-dev
+ libxi-dev
+ libxrandr-dev
+ mbedtls2-dev
+ mesa-dev
+ xz-dev
+ zlib-dev
+ "
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/dolphin/archive/$_commit.tar.gz"
+builddir="$srcdir/dolphin-$_commit"
+options="!check" # No tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DLIBRETRO=On \
+ -DLIBRETRO_STATIC=1 \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ install -Dm644 build/dolphin_libretro.so \
+ "$pkgdir"/usr/lib/libretro/dolphin_libretro.so
+}
+
+sha512sums="
+f0e030fb3272f2e5f2a57a55bf908c0d75559af49f7a97971acc4efd7f5be1ec3347e4f40923559ea61919bd4b4ea2e3abab571f0df5accd5e16529403609675 libretro-dolphin-6a0b6ee8a4d5363e669f5faf43abc8f17e4278a8.tar.gz
+"
diff --git a/testing/libretro-dosbox/APKBUILD b/testing/libretro-dosbox/APKBUILD
deleted file mode 100644
index 59704b14944..00000000000
--- a/testing/libretro-dosbox/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-dosbox
-pkgver=0_git20190802
-pkgrel=0
-_commit="e4ed503b14ed59d5d745396ef1cc7d52cf912328"
-pkgdesc="Port of DOSBox (upstream) to the libretro API"
-url="https://github.com/libretro/libretro-dosbox"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/dosbox-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/dosbox-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 dosbox_libretro.so "$pkgdir"/usr/lib/libretro/dosbox_libretro.so
-}
-
-sha512sums="c5d837bfd381305700945a1766310e005102319adb8ac243d423a534300314b75c8db7132ac3c2c78d971c88a5e5cfb38a2fde978b095d1e666591f696dd21f8 libretro-dosbox-e4ed503b14ed59d5d745396ef1cc7d52cf912328.tar.gz"
diff --git a/testing/libretro-fbneo/APKBUILD b/testing/libretro-fbneo/APKBUILD
index 92219903765..374e5ed493b 100644
--- a/testing/libretro-fbneo/APKBUILD
+++ b/testing/libretro-fbneo/APKBUILD
@@ -1,18 +1,22 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-fbneo
-pkgver=0_git20200407
+pkgver=0_git20220416
pkgrel=0
-_commit="70577c1018ea953ac7fe7cc82cf2e4681d71314e"
+_commit="100c758b1a9b3b647234174b0b1607c8d60cd147"
pkgdesc="FinalBurn Neo, an Emulator for Arcade Games & Select Consoles"
url="https://github.com/libretro/FBNeo"
-arch="all !mips !mips64" # fails to build on mips
+arch="all"
license="custom"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/FBNeo/archive/$_commit.tar.gz"
+makedepends="zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/FBNeo/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/FBNeo-$_commit"
options="!check" # No tests
build() {
+ rm -rf src/dep/libs/zlib
make -C src/burner/libretro
}
@@ -20,4 +24,7 @@ package() {
install -Dm644 src/burner/libretro/fbneo_libretro.so "$pkgdir"/usr/lib/libretro/fbneo_libretro.so
}
-sha512sums="70f1d810a5d5163e8980d74b72c9cd49ba1140d2e8670cad7f81a0f4ae1b532c638caf671016f9603386c908be05a1b22441261b2b704816bb30a9ce9f604c18 libretro-fbneo-70577c1018ea953ac7fe7cc82cf2e4681d71314e.tar.gz"
+sha512sums="
+56a0b7f644321cba34f9017beb047afcd704545e190ae49aeaf6d9c749659b1770e00820ab84addab7b263278909669dcb94073ed76881a15a6902d0d1323896 libretro-fbneo-100c758b1a9b3b647234174b0b1607c8d60cd147.tar.gz
+d2791aaa0984f73fc44afbefb37d825f78e5e690dc3c5c29852ae992aab88f049fa4142d63630656d184e0aa7ebd9a52e1db344b557b3794aaea9e2b527390b2 patch-unbundle.patch
+"
diff --git a/testing/libretro-fbneo/patch-unbundle.patch b/testing/libretro-fbneo/patch-unbundle.patch
new file mode 100644
index 00000000000..4d2d491fa4c
--- /dev/null
+++ b/testing/libretro-fbneo/patch-unbundle.patch
@@ -0,0 +1,12 @@
+Remove bundled zlib.
+--- a/src/burner/libretro/Makefile
++++ b/src/burner/libretro/Makefile
+@@ -692,6 +692,8 @@
+ LD = $(CXX)
+ endif
+
++LIBS += -lz
++
+ %.o: %.c
+ $(CC) -c $(OBJOUT)$@ $< $(CFLAGS) $(INCFLAGS)
+
diff --git a/testing/libretro-fceumm/APKBUILD b/testing/libretro-fceumm/APKBUILD
deleted file mode 100644
index 7a92752f5b0..00000000000
--- a/testing/libretro-fceumm/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-fceumm
-pkgver=0_git20200325
-pkgrel=0
-_commit="0d569e9bab054f215f828184c1d63fa69f8abd0c"
-pkgdesc="FCEUmm libretro port"
-url="https://github.com/libretro/libretro-fceumm"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-fceumm/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-fceumm-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 fceumm_libretro.so "$pkgdir"/usr/lib/libretro/fceumm_libretro.so
-}
-
-sha512sums="96d2c476d75d4106d7a0535945dacdf2a8270669aac85c1f85210506425eb35657425f74f5d2282bbf9d33ec89ff36e13baed6f2c48bb8e777c6ca3a82a184bc libretro-fceumm-0d569e9bab054f215f828184c1d63fa69f8abd0c.tar.gz"
diff --git a/testing/libretro-flycast/APKBUILD b/testing/libretro-flycast/APKBUILD
new file mode 100644
index 00000000000..40e4aa5ec3c
--- /dev/null
+++ b/testing/libretro-flycast/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-flycast
+pkgver=0_git20220406
+pkgrel=0
+_commit="4c293f306bc16a265c2d768af5d0cea138426054"
+pkgdesc="libretro core for flycast"
+url="https://github.com/libretro/flycast"
+arch="x86_64 aarch64"
+license="GPL-2.0-only"
+makedepends="libzip-dev mesa-dev miniupnpc-dev zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/flycast/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
+builddir="$srcdir/flycast-$_commit"
+options="!check" # No tests
+
+case $CARCH in
+aarch64)
+ _args="WITH_DYNAREC=arm64 HOST_CPU_FLAGS=-DTARGET_LINUX_ARMv8" ;;
+arm*)
+ _args="WITH_DYNAREC=arm" ;;
+esac
+
+if [ "$CARCH" != "x86" ]; then
+ _args="$_args HAVE_GENERIC_JIT=0 HAVE_VULKAN=0"
+fi
+
+build() {
+ rm -rf core/deps/libzip
+ rm -rf core/deps/miniupnpc
+ rm -rf core/deps/zlib
+ make $_args \
+ HAVE_LTCG=0 \
+ SYSTEM_LIBZIP=1 \
+ SYSTEM_ZLIB=1
+}
+
+package() {
+ install -Dm644 flycast_libretro.so "$pkgdir"/usr/lib/libretro/flycast_libretro.so
+}
+
+sha512sums="
+ea8b1971f88293f8a1655cfe1a1c94b1dc8e915908bd8ec6c599125005ac9ad38ff7accfeadc255159149ed3a306861a924e840037a1d2bd383ad4bdcfd83f39 libretro-flycast-4c293f306bc16a265c2d768af5d0cea138426054.tar.gz
+98edf29148cf990de8ce1c1a15548e122ce30944645d9b92715fe3c86e021439fdeea1dabacbcbff46de211b5c2875bfc330d5a602f59498bbe745708a3d1e15 patch-unbundle.patch
+"
diff --git a/testing/libretro-flycast/patch-unbundle.patch b/testing/libretro-flycast/patch-unbundle.patch
new file mode 100644
index 00000000000..4f6cf85bfa4
--- /dev/null
+++ b/testing/libretro-flycast/patch-unbundle.patch
@@ -0,0 +1,160 @@
+--- flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/core/hw/maple/maple_devs.cpp.orig
++++ flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/core/hw/maple/maple_devs.cpp
+@@ -8,7 +8,7 @@
+ #include <math.h>
+ #include <time.h>
+
+-#include "deps/zlib/zlib.h"
++#include <zlib.h>
+ #include "deps/xxhash/xxhash.h"
+
+ #define LOGJVS(...) DEBUG_LOG(JVS, __VA_ARGS__)
+--- flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/core/archive/ZipArchive.h.orig
++++ flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/core/archive/ZipArchive.h
+@@ -22,7 +22,7 @@
+ #ifndef CORE_ARCHIVE_ZIPARCHIVE_H_
+ #define CORE_ARCHIVE_ZIPARCHIVE_H_
+ #include "archive.h"
+-#include "deps/libzip/zip.h"
++#include <zip.h>
+
+ class ZipArchive : public Archive
+ {
+--- flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/core/network/miniupnp.cpp.orig
++++ flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/core/network/miniupnp.cpp
+@@ -16,8 +16,8 @@
+ You should have received a copy of the GNU General Public License
+ along with Flycast. If not, see <https://www.gnu.org/licenses/>.
+ */
+-#include <miniupnpc.h>
+-#include <upnpcommands.h>
++#include <miniupnpc/miniupnpc.h>
++#include <miniupnpc/upnpcommands.h>
+ #include "types.h"
+ #include "miniupnp.h"
+
+--- flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/Makefile.common.orig
++++ flycast-6f27e7121d2b9f2c084d18219a9e439c403a1b89/Makefile.common
+@@ -9,6 +9,7 @@
+ -I$(LIBRETRO_COMM_DIR)/include \
+ -I$(DEPS_DIR)/vixl \
+ -I$(DEPS_DIR)/stb
++LIBS += -lminiupnpc
+
+ SOURCES_C ?=
+ SOURCES_CXX := \
+@@ -169,62 +170,6 @@
+ $(DEPS_DIR)/libchdr/src/libchdr_flac.c \
+ $(DEPS_DIR)/libchdr/src/libchdr_huffman.c \
+
+-LIBZIP_SOURCES_C = \
+- $(DEPS_DIR)/libzip/mkstemp.c \
+- $(DEPS_DIR)/libzip/zip_add.c \
+- $(DEPS_DIR)/libzip/zip_add_dir.c \
+- $(DEPS_DIR)/libzip/zip_close.c \
+- $(DEPS_DIR)/libzip/zip_delete.c \
+- $(DEPS_DIR)/libzip/zip_dirent.c \
+- $(DEPS_DIR)/libzip/zip_entry_free.c \
+- $(DEPS_DIR)/libzip/zip_entry_new.c \
+- $(DEPS_DIR)/libzip/zip_error.c \
+- $(DEPS_DIR)/libzip/zip_error_clear.c \
+- $(DEPS_DIR)/libzip/zip_error_get.c \
+- $(DEPS_DIR)/libzip/zip_error_get_sys_type.c \
+- $(DEPS_DIR)/libzip/zip_error_strerror.c \
+- $(DEPS_DIR)/libzip/zip_error_to_str.c \
+- $(DEPS_DIR)/libzip/zip_err_str.c \
+- $(DEPS_DIR)/libzip/zip_fclose.c \
+- $(DEPS_DIR)/libzip/zip_file_error_clear.c \
+- $(DEPS_DIR)/libzip/zip_file_error_get.c \
+- $(DEPS_DIR)/libzip/zip_file_get_offset.c \
+- $(DEPS_DIR)/libzip/zip_filerange_crc.c \
+- $(DEPS_DIR)/libzip/zip_file_strerror.c \
+- $(DEPS_DIR)/libzip/zip_fopen.c \
+- $(DEPS_DIR)/libzip/zip_fopen_index.c \
+- $(DEPS_DIR)/libzip/zip_fread.c \
+- $(DEPS_DIR)/libzip/zip_free.c \
+- $(DEPS_DIR)/libzip/zip_get_archive_comment.c \
+- $(DEPS_DIR)/libzip/zip_get_archive_flag.c \
+- $(DEPS_DIR)/libzip/zip_get_file_comment.c \
+- $(DEPS_DIR)/libzip/zip_get_name.c \
+- $(DEPS_DIR)/libzip/zip_get_num_files.c \
+- $(DEPS_DIR)/libzip/zip_memdup.c \
+- $(DEPS_DIR)/libzip/zip_name_locate.c \
+- $(DEPS_DIR)/libzip/zip_new.c \
+- $(DEPS_DIR)/libzip/zip_open.c \
+- $(DEPS_DIR)/libzip/zip_rename.c \
+- $(DEPS_DIR)/libzip/zip_replace.c \
+- $(DEPS_DIR)/libzip/zip_set_archive_comment.c \
+- $(DEPS_DIR)/libzip/zip_set_archive_flag.c \
+- $(DEPS_DIR)/libzip/zip_set_file_comment.c \
+- $(DEPS_DIR)/libzip/zip_set_name.c \
+- $(DEPS_DIR)/libzip/zip_source_buffer.c \
+- $(DEPS_DIR)/libzip/zip_source_file.c \
+- $(DEPS_DIR)/libzip/zip_source_filep.c \
+- $(DEPS_DIR)/libzip/zip_source_free.c \
+- $(DEPS_DIR)/libzip/zip_source_function.c \
+- $(DEPS_DIR)/libzip/zip_source_zip.c \
+- $(DEPS_DIR)/libzip/zip_stat.c \
+- $(DEPS_DIR)/libzip/zip_stat_index.c \
+- $(DEPS_DIR)/libzip/zip_stat_init.c \
+- $(DEPS_DIR)/libzip/zip_strerror.c \
+- $(DEPS_DIR)/libzip/zip_unchange_all.c \
+- $(DEPS_DIR)/libzip/zip_unchange_archive.c \
+- $(DEPS_DIR)/libzip/zip_unchange.c \
+- $(DEPS_DIR)/libzip/zip_unchange_data.c
+-
+ PICOTCP_INCFLAGS = \
+ -I$(DEPS_DIR)/picotcp/include \
+ -I$(DEPS_DIR)/picotcp/modules
+@@ -256,18 +201,6 @@
+
+ XXHASH_SOURCES_C = $(DEPS_DIR)/xxhash/xxhash.c
+
+-ZLIB_SOURCES_C = \
+- $(DEPS_DIR)/zlib/deflate.c \
+- $(DEPS_DIR)/zlib/uncompr.c \
+- $(DEPS_DIR)/zlib/zutil.c \
+- $(DEPS_DIR)/zlib/inffast.c \
+- $(DEPS_DIR)/zlib/crc32.c \
+- $(DEPS_DIR)/zlib/inflate.c \
+- $(DEPS_DIR)/zlib/infback.c \
+- $(DEPS_DIR)/zlib/inftrees.c \
+- $(DEPS_DIR)/zlib/trees.c \
+- $(DEPS_DIR)/zlib/adler32.c
+-
+ SOURCES_ASM :=
+
+ ifeq ($(SYSTEM_LIBZIP), 1)
+@@ -298,7 +231,6 @@
+ endif
+
+ ifeq ($(ENABLE_MODEM), 1)
+- INCFLAGS += -I$(CORE_DIR)/core/deps/miniupnpc
+ SOURCES_CXX += $(CORE_DIR)/core/hw/modem/dns.cpp \
+ $(CORE_DIR)/core/hw/modem/modem.cpp \
+ $(CORE_DIR)/core/hw/bba/bba.cpp \
+@@ -306,23 +238,7 @@
+ $(CORE_DIR)/core/network/picoppp.cpp \
+ $(CORE_DIR)/core/network/miniupnp.cpp
+
+- SOURCES_C += \
+- $(CORE_DIR)/core/deps/miniupnpc/addr_is_reserved.c \
+- $(CORE_DIR)/core/deps/miniupnpc/igd_desc_parse.c \
+- $(CORE_DIR)/core/deps/miniupnpc/upnpreplyparse.c \
+- $(CORE_DIR)/core/deps/miniupnpc/upnpcommands.c \
+- $(CORE_DIR)/core/deps/miniupnpc/upnperrors.c \
+- $(CORE_DIR)/core/deps/miniupnpc/connecthostport.c \
+- $(CORE_DIR)/core/deps/miniupnpc/portlistingparse.c \
+- $(CORE_DIR)/core/deps/miniupnpc/receivedata.c \
+- $(CORE_DIR)/core/deps/miniupnpc/upnpdev.c \
+- $(CORE_DIR)/core/deps/miniupnpc/minissdpc.c \
+- $(CORE_DIR)/core/deps/miniupnpc/miniwget.c \
+- $(CORE_DIR)/core/deps/miniupnpc/miniupnpc.c \
+- $(CORE_DIR)/core/deps/miniupnpc/minixml.c \
+- $(CORE_DIR)/core/deps/miniupnpc/minisoap.c
+-
+- CORE_DEFINES += -DENABLE_MODEM -DMINIUPNP_STATICLIB
++ CORE_DEFINES += -DENABLE_MODEM
+ endif
+
+ ifeq ($(HAVE_GL), 1)
diff --git a/testing/libretro-fmsx/APKBUILD b/testing/libretro-fmsx/APKBUILD
deleted file mode 100644
index 93b22453584..00000000000
--- a/testing/libretro-fmsx/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-fmsx
-pkgver=0_git20200107
-pkgrel=0
-_commit="3de916bbf15062de1ab322432d38a1fee29d5e68"
-pkgdesc="port of fMSX to the libretro API"
-url="https://github.com/libretro/fmsx-libretro"
-arch="all"
-license="custom"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/fmsx-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/fmsx-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 fmsx_libretro.so "$pkgdir"/usr/lib/libretro/fmsx_libretro.so
-}
-
-sha512sums="f084c097eb3ab65b56a9877debe46d6ebc5292c9ce0071b7698d5dd00cbe777f074de06f7550c082645f87c80d5b26cc92445224313ae3969f43e793cf3a099c libretro-fmsx-3de916bbf15062de1ab322432d38a1fee29d5e68.tar.gz"
diff --git a/testing/libretro-freechaf/APKBUILD b/testing/libretro-freechaf/APKBUILD
deleted file mode 100644
index be112ef6b6f..00000000000
--- a/testing/libretro-freechaf/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-freechaf
-pkgver=0_git20200317
-pkgrel=0
-_commit="7076096c4e2d93acccab1b2429a6ed8530e98925"
-pkgdesc="Fairchild ChannelF / Video Entertainment System emulator for libretro"
-url="https://github.com/libretro/FreeChaf"
-arch="all"
-license="GPL-3.0-or-later"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/FreeChaF/archive/$_commit.tar.gz"
-builddir="$srcdir/FreeChaF-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 freechaf_libretro.so "$pkgdir"/usr/lib/libretro/freechaf_libretro.so
-}
-
-sha512sums="5e4d302b260a9aa94f2d578bff115954e549c304a264f4d24e9b41ec6ae7762c5b6e47ed858f5457b37dcc770068e9f3cb6aef8ed09343d2aa05015a886653a1 libretro-freechaf-7076096c4e2d93acccab1b2429a6ed8530e98925.tar.gz"
diff --git a/testing/libretro-freeintv/APKBUILD b/testing/libretro-freeintv/APKBUILD
new file mode 100644
index 00000000000..6814c560573
--- /dev/null
+++ b/testing/libretro-freeintv/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-freeintv
+pkgver=0_git20220319
+pkgrel=0
+_commit="295dd3c9e4b2d4f652f6a6a904afbe90a8187068"
+pkgdesc="libretro core for freeintv"
+url="https://github.com/libretro/FreeIntv"
+arch="all"
+license="GPL-3.0-only"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/FreeIntv/archive/$_commit.tar.gz"
+builddir="$srcdir/FreeIntv-$_commit"
+options="!check" # No tests
+
+build() {
+ make
+}
+
+package() {
+ install -Dm644 freeintv_libretro.so "$pkgdir"/usr/lib/libretro/freeintv_libretro.so
+}
+
+sha512sums="
+feee4cedcefaa95c4725b84c500c6596d083774f532259048fa5c61f71529297b85d1570a760e9bedda9eb3f0a5925ca03db99579f2695b33c98ee87f5b0cb3a libretro-freeintv-295dd3c9e4b2d4f652f6a6a904afbe90a8187068.tar.gz
+"
diff --git a/testing/libretro-frodo/APKBUILD b/testing/libretro-frodo/APKBUILD
index 99cc54e7e22..4c3f6659367 100644
--- a/testing/libretro-frodo/APKBUILD
+++ b/testing/libretro-frodo/APKBUILD
@@ -1,19 +1,22 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-frodo
-pkgver=0_git20200308
+pkgver=0_git20221221
pkgrel=0
-_commit="3504bcf8a2e180e9115883f848166d332a9e657f"
+_commit="345a936072ecb2a545396662045bbb266d8d9baf"
pkgdesc="commodore 64 emulator for libretro"
url="https://github.com/libretro/frodo-libretro"
arch="all"
license="GPL-2.0-only"
makedepends="zlib-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/frodo-libretro/archive/$_commit.tar.gz"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/frodo-libretro/archive/$_commit.tar.gz
+ patch-unbundle.patch
+ "
builddir="$srcdir/frodo-libretro-$_commit"
options="!check" # No tests
build() {
+ rm -rf Src/zlib
make -f Makefile.libretro
}
@@ -21,4 +24,7 @@ package() {
install -Dm644 frodo_libretro.so "$pkgdir"/usr/lib/libretro/frodo_libretro.so
}
-sha512sums="00ffded80ef862b4f471015908fabe34c45c2529c60349328b3d415daca6f9075849cac04227d534bf7e5d844825b9aca8729da00823d323d037ffaadc6f8adf libretro-frodo-3504bcf8a2e180e9115883f848166d332a9e657f.tar.gz"
+sha512sums="
+e70e6e5b21b85eb7e26f128eba632be9bd70fc908bf226d15456665dda1faacf58058d8c45a748bb8794e84ce39f30f0d040e2b17c1e818548f8db22fefbae44 libretro-frodo-345a936072ecb2a545396662045bbb266d8d9baf.tar.gz
+21de704da2a184e0c4059b25a669055c57d0024336902fd29de4e8e1a1b110c67f5babd8c5cab1d7e4141b82979ffd2ed5d682f02815ab17f5d9d715fc732d6e patch-unbundle.patch
+"
diff --git a/testing/libretro-frodo/patch-unbundle.patch b/testing/libretro-frodo/patch-unbundle.patch
new file mode 100644
index 00000000000..b4086bba567
--- /dev/null
+++ b/testing/libretro-frodo/patch-unbundle.patch
@@ -0,0 +1,38 @@
+Remove bundled zlib.
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -8,7 +8,6 @@
+ -I$(CORE_DIR)/libretro/emu \
+ -I$(CORE_DIR)/libretro \
+ -I$(CORE_DIR)/Src \
+- -I$(CORE_DIR)/Src/zlib \
+ -I$(LIBRETRO_COMM_DIR)/include \
+ -I$(CORE_DIR)
+
+@@ -33,20 +32,6 @@
+ SOURCES_C += $(LIBRETRO_COMM_DIR)/libco/libco.c
+ endif
+
+-SOURCES_C += \
+- $(CORE_DIR)/Src/zlib/adler32.c \
+- $(CORE_DIR)/Src/zlib/crc32.c \
+- $(CORE_DIR)/Src/zlib/deflate.c \
+- $(CORE_DIR)/Src/zlib/gzclose.c \
+- $(CORE_DIR)/Src/zlib/gzlib.c \
+- $(CORE_DIR)/Src/zlib/gzread.c \
+- $(CORE_DIR)/Src/zlib/gzwrite.c \
+- $(CORE_DIR)/Src/zlib/inffast.c \
+- $(CORE_DIR)/Src/zlib/inflate.c \
+- $(CORE_DIR)/Src/zlib/inftrees.c \
+- $(CORE_DIR)/Src/zlib/trees.c \
+- $(CORE_DIR)/Src/zlib/zutil.c
+-
+ ifeq ($(NOLIBCO), 1)
+ CPPFLAGS += -DNO_LIBCO
+ endif
+@@ -113,3 +98,5 @@
+ $(GUI_DIR)/dlgMain.cpp \
+ $(GUI_DIR)/dlgSnapshot.cpp \
+ $(GUI_DIR)/sdlgui.cpp
++
++LDFLAGS += -lz
diff --git a/testing/libretro-fuse/APKBUILD b/testing/libretro-fuse/APKBUILD
index 76d628e7f5c..520d3cf0c1c 100644
--- a/testing/libretro-fuse/APKBUILD
+++ b/testing/libretro-fuse/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-fuse
-pkgver=0_git20200207
+pkgver=0_git20220417
pkgrel=0
-_commit="ef603d165914afc3f54971d082e69adea187c8ec"
+_commit="71557910d4a2f290fc85235f2fc1b81eec006689"
pkgdesc="port of the Fuse Unix Spectrum Emulator to libretro"
url="https://github.com/libretro/fuse-libretro"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 fuse_libretro.so "$pkgdir"/usr/lib/libretro/fuse_libretro.so
}
-sha512sums="b1a14a9cc1ece9ad6d2acce5f2a6ec4aca7201d09c27da5493829a78c2e07166355bd9f438984e4ebf9b09670faa1ad0638752834b8233a335e3cb5b3b5174e1 libretro-fuse-ef603d165914afc3f54971d082e69adea187c8ec.tar.gz"
+sha512sums="
+9c34d93fbc36326ad13aa92091e2d14df2f3305c1ce75d2e2ac2a5765a655b14e850147414d82457865b9c33b124aa2ef9d1ad0cf33657c635da97e0efb8e08f libretro-fuse-71557910d4a2f290fc85235f2fc1b81eec006689.tar.gz
+"
diff --git a/testing/libretro-gambatte/APKBUILD b/testing/libretro-gambatte/APKBUILD
deleted file mode 100644
index 469124a0572..00000000000
--- a/testing/libretro-gambatte/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-gambatte
-pkgver=0_git20200207
-pkgrel=0
-_commit="132f36e990dfc6effdafa6cf261373432464f9bf"
-pkgdesc="libretro implementation of libgambatte"
-url="https://github.com/libretro/gambatte-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/gambatte-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/gambatte-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 gambatte_libretro.so "$pkgdir"/usr/lib/libretro/gambatte_libretro.so
-}
-
-sha512sums="90305ffe50a3ac3dd50eab540b76d80bbc73f9fccc5d48d11cc48aadf5d99c4a5c11302a093ee83441311bd0183e024852659b91412e103be27ee82851a11bae libretro-gambatte-132f36e990dfc6effdafa6cf261373432464f9bf.tar.gz"
diff --git a/testing/libretro-gearboy/APKBUILD b/testing/libretro-gearboy/APKBUILD
deleted file mode 100644
index e224d5626db..00000000000
--- a/testing/libretro-gearboy/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-gearboy
-pkgver=0_git20181103
-pkgrel=0
-_commit="368521ef59f3a0e600346ba22041b05331188275"
-pkgdesc="Game Boy / Gameboy Color emulator for libretro"
-url="https://github.com/libretro/Gearboy"
-arch="all"
-license="GPL-3.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/Gearboy/archive/$_commit.tar.gz"
-builddir="$srcdir/Gearboy-$_commit"
-options="!check" # No tests
-
-build() {
- make -C platforms/libretro
-}
-
-package() {
- install -Dm644 platforms/libretro/gearboy_libretro.so \
- "$pkgdir"/usr/lib/libretro/gearboy_libretro.so
-}
-
-sha512sums="df67e3002aa87b3ea31583842b5c56b11aea48be0c662602b31fd9ea789e510afef4b01e72de54dcfe56720a3d86ebef66f2143f7c309eeb53506e2101b87589 libretro-gearboy-368521ef59f3a0e600346ba22041b05331188275.tar.gz"
diff --git a/testing/libretro-genesis-plus-gx/APKBUILD b/testing/libretro-genesis-plus-gx/APKBUILD
index 25e7c0f8d3e..80cacedb7fd 100644
--- a/testing/libretro-genesis-plus-gx/APKBUILD
+++ b/testing/libretro-genesis-plus-gx/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-genesis-plus-gx
-pkgver=0_git20200208
+pkgver=0_git20230503
pkgrel=0
-_commit="50551066f71f8a5ea782ea3747891fd6d24ebe67"
+_commit="790776699bea2a570535e1632481aa27174c8dce"
pkgdesc="an enhanced port of Genesis Plus"
url="https://github.com/libretro/Genesis-Plus-GX"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 genesis_plus_gx_libretro.so "$pkgdir"/usr/lib/libretro/genesis_plus_gx_libretro.so
}
-sha512sums="bc5f0b0b4f6c5077fa90bb18e78f79baa08e6253eadce13b1ca0d884c54d2c2669b53e856feb05f2293a4b642707773df155a4393a8a64db766f805a2b71d63a libretro-genesis-plus-gx-50551066f71f8a5ea782ea3747891fd6d24ebe67.tar.gz"
+sha512sums="
+8ec11fd558606cdb696a81e192437649e160d25f055ce4089e3e50d48bbd7b0e9456bb8ec5decf7c8108528bde6098cc766ed7391160beddda11b744a888226e libretro-genesis-plus-gx-790776699bea2a570535e1632481aa27174c8dce.tar.gz
+"
diff --git a/testing/libretro-gme/APKBUILD b/testing/libretro-gme/APKBUILD
index 3b8ef1d1260..35261acacbc 100644
--- a/testing/libretro-gme/APKBUILD
+++ b/testing/libretro-gme/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-gme
-pkgver=0_git20200330
+pkgver=0_git20220410
pkgrel=0
-_commit="25b97e36ad53c4ff1c1f34056d651f0673a5c992"
+_commit="5fb30ebb8871624cecc07813212fb643fa8449f4"
pkgdesc="port of blargg's Game_Music_Emu library"
url="https://github.com/libretro/libretro-gme"
-arch="all !ppc64le !mips !mips64"
+arch="all !ppc64le"
license="GPL-3.0-only"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-gme/archive/$_commit.tar.gz"
builddir="$srcdir/libretro-gme-$_commit"
@@ -20,4 +20,6 @@ package() {
install -Dm644 gme_libretro.so "$pkgdir"/usr/lib/libretro/gme_libretro.so
}
-sha512sums="16cd15527c481df21b7cd3cc2110688233a0bf5d85f4611254fc3813a78105b13cad0bfbac046343833a1b000cce184c5d3ede4de7fe2b5117972c66e4b70bb4 libretro-gme-25b97e36ad53c4ff1c1f34056d651f0673a5c992.tar.gz"
+sha512sums="
+f3a1156ac716eab3e95b0398ce90f8283f51b697e9a7077c46116dcd229bf89a65a2b20b741f59a64d440246076127f496a75da0a39747a2b926bc4b0d6a2f44 libretro-gme-5fb30ebb8871624cecc07813212fb643fa8449f4.tar.gz
+"
diff --git a/testing/libretro-gong/APKBUILD b/testing/libretro-gong/APKBUILD
new file mode 100644
index 00000000000..4a1857474c9
--- /dev/null
+++ b/testing/libretro-gong/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-gong
+pkgver=0_git20220319
+pkgrel=0
+_commit="c4255f80f8d89f31d9e8471f388eb7bbcb85046e"
+pkgdesc="libretro core for gong"
+url="https://github.com/libretro/gong"
+arch="all"
+license="Public-Domain"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/gong/archive/$_commit.tar.gz"
+builddir="$srcdir/gong-$_commit"
+options="!check" # No tests
+
+build() {
+ make
+}
+
+package() {
+ install -Dm644 gong.so "$pkgdir"/usr/lib/libretro/gong_libretro.so
+}
+
+sha512sums="
+0370f893f8ee0f81b25cb1c86435fb92fcfd15fb8e5f66a81a654d4028e00bfcb6d127df556e00f1cf3a4d5457c01fc417edec96fcb43824d58c65c4ee24f55d libretro-gong-c4255f80f8d89f31d9e8471f388eb7bbcb85046e.tar.gz
+"
diff --git a/testing/libretro-gpsp/APKBUILD b/testing/libretro-gpsp/APKBUILD
deleted file mode 100644
index 7af48de6e1d..00000000000
--- a/testing/libretro-gpsp/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-gpsp
-pkgver=0_git20200405
-pkgrel=0
-_commit="514cb1e66b24a5935eb17a5f918a13ec631a1959"
-pkgdesc="gpSP for libretro"
-url="https://github.com/libretro/gpsp"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/gpsp/archive/$_commit.tar.gz"
-builddir="$srcdir/gpsp-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 gpsp_libretro.so "$pkgdir"/usr/lib/libretro/gpsp_libretro.so
-}
-
-sha512sums="80c625c1431ec50837ee1a6142c86f948c5dda61b32bb215f1ffe72c697e0dce94abfa280cece6825cacc5c814eafb66fe30aa0966ae61e956e67b2602345831 libretro-gpsp-514cb1e66b24a5935eb17a5f918a13ec631a1959.tar.gz"
diff --git a/testing/libretro-gw/APKBUILD b/testing/libretro-gw/APKBUILD
index cac317f5505..415a8802ea0 100644
--- a/testing/libretro-gw/APKBUILD
+++ b/testing/libretro-gw/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-gw
-pkgver=0_git20200101
+pkgver=0_git20220410
pkgrel=0
-_commit="819b1dde560013003eeac86c2069c5be7af25c6d"
+_commit="d08a08154ce8ed8e9de80582c108f157e4c6b226"
pkgdesc="libretro core for Game & Watch simulators"
url="https://github.com/libretro/gw-libretro"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 gw_libretro.so "$pkgdir"/usr/lib/libretro/gw_libretro.so
}
-sha512sums="198403b838c8957e76bff37890397807fb52501cb9b5fff82df126b98413f8b1746ff4aa4e564551d7a4c5414f90a6fc4f074ba50ae46e1b2b428e5578d5b7cb libretro-gw-819b1dde560013003eeac86c2069c5be7af25c6d.tar.gz"
+sha512sums="
+9e07a6c477721823e4ec546601a8b9b3df9619ea7bd334ee71586a24c02e6cc2d7841ff26bdd1f192684be14d61b44caab189285082c58767bd83634b74f6baf libretro-gw-d08a08154ce8ed8e9de80582c108f157e4c6b226.tar.gz
+"
diff --git a/testing/libretro-handy/APKBUILD b/testing/libretro-handy/APKBUILD
deleted file mode 100644
index 3b70556be67..00000000000
--- a/testing/libretro-handy/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-handy
-pkgver=0_git20200317
-pkgrel=0
-_commit="5ff55817eafbb1930e222ea2493c22804c872904"
-pkgdesc="Atari Lynx emulator Handy"
-url="https://github.com/libretro/libretro-handy"
-arch="all"
-license="Zlib"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-handy/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-handy-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 handy_libretro.so "$pkgdir"/usr/lib/libretro/handy_libretro.so
-}
-
-sha512sums="e6105d6a7d5e19f57c47f95cd552069b5abab1e4b52f0e0c62c82580b3dae6fd72a3be042fab9a0b43a694cbb4de03aeaab7786e0b78b10756e879889d1fe398 libretro-handy-5ff55817eafbb1930e222ea2493c22804c872904.tar.gz"
diff --git a/testing/libretro-hatari/APKBUILD b/testing/libretro-hatari/APKBUILD
deleted file mode 100644
index 163d9e07a7b..00000000000
--- a/testing/libretro-hatari/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-hatari
-pkgver=0_git20200402
-pkgrel=0
-_commit="f8c35958ec1c93c32d41d61fa4903b2f5daec78c"
-pkgdesc="Atari ST/STE/TT/Falcon emulator for libretro"
-url="https://github.com/libretro/hatari"
-arch="all"
-license="GPL-2.0-only"
-makedepends="zlib-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/hatari/archive/$_commit.tar.gz"
-builddir="$srcdir/hatari-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 hatari_libretro.so "$pkgdir"/usr/lib/libretro/hatari_libretro.so
-}
-
-sha512sums="c983adb31c361bb717015d0b1ea3e87e31e2fb8a3a3eb8b51827f91e777d9b93af7357ff2d0442bb2b3540ee26b340b4d0b9fc55e69bbf8126b18939dd4fac0c libretro-hatari-f8c35958ec1c93c32d41d61fa4903b2f5daec78c.tar.gz"
diff --git a/testing/libretro-mame2000/APKBUILD b/testing/libretro-mame2000/APKBUILD
index 6f8a3072ea9..ad3ecadfe65 100644
--- a/testing/libretro-mame2000/APKBUILD
+++ b/testing/libretro-mame2000/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-mame2000
-pkgver=0_git20200112
+pkgver=0_git20220413
pkgrel=0
-_commit="e5d4a934c60adc6d42a3f87319312aad89595a15"
+_commit="dd9d6612c29bf5b29bc2f94cab2d43fe3dcd69ee"
pkgdesc="Multiple Arcade Machine Emulator for libretro (2000)"
-url="https://github.com/libretro/mame"
+url="https://github.com/libretro/mame2000-libretro"
arch="all !aarch64"
license="custom"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/mame2000-libretro/archive/$_commit.tar.gz"
@@ -20,4 +20,6 @@ package() {
install -Dm644 mame2000_libretro.so "$pkgdir"/usr/lib/libretro/mame2000_libretro.so
}
-sha512sums="2208624f324b3bdc030d445bca6e4c936b96d66816e14a87b4dc83a9b9b261b1f9d801aabf0d53209da6326c059253ba1c3e1a5ca14768fb1b5b68501e4e1197 libretro-mame2000-e5d4a934c60adc6d42a3f87319312aad89595a15.tar.gz"
+sha512sums="
+ee8905490e035718b10cf9bf4ff61740fe92db35281d3f87bf0111e44872846186d895457ee6ffd397f9e1b8c4bf9fe2b3b7bc13492b65405b85eff2754c82ae libretro-mame2000-dd9d6612c29bf5b29bc2f94cab2d43fe3dcd69ee.tar.gz
+"
diff --git a/testing/libretro-mame2003/APKBUILD b/testing/libretro-mame2003/APKBUILD
index 75429a6ef38..29084944aad 100644
--- a/testing/libretro-mame2003/APKBUILD
+++ b/testing/libretro-mame2003/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-mame2003
-pkgver=0_git20200112
+pkgver=0_git20220206
pkgrel=0
-_commit="82596014905ad38c80c9eb322ab08c625d1d92cd"
+_commit="3eb27d5f161522cf873c0642f14b8e2267b3820f"
pkgdesc="Multiple Arcade Machine Emulator for libretro (2003)"
url="https://github.com/libretro/mame2003-libretro"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 mame2003_libretro.so "$pkgdir"/usr/lib/libretro/mame2003_libretro.so
}
-sha512sums="f00db1fb71a894876ed093280aa9b0f73d5a22e249ecd04f618dd1feee1256345239835ac7df80325c5a6803e2ff0bd53b211b6f6f508c6107fb335f04fed59e libretro-mame2003-82596014905ad38c80c9eb322ab08c625d1d92cd.tar.gz"
+sha512sums="
+3c97fd688b9cac8379e0d4474ea12416c61043671af84b342d295cadd66e8f8f113715fbf933fd1c4fe9018c0da9bb492af55e3d4564b506a4db83b7874ab8fe libretro-mame2003-3eb27d5f161522cf873c0642f14b8e2267b3820f.tar.gz
+"
diff --git a/testing/libretro-melonds/APKBUILD b/testing/libretro-melonds/APKBUILD
deleted file mode 100644
index e7a04590a6a..00000000000
--- a/testing/libretro-melonds/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-melonds
-pkgver=0_git20190912
-pkgrel=0
-_commit="42c1acd5c47dcda17288dcb64ea4adb8e13b8732"
-pkgdesc="Nintendo DS emulator for libretro"
-url="https://github.com/libretro/melonDS"
-arch="all !mips !mips64"
-license="GPL-3.0-only"
-makedepends="mesa-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/melonDS/archive/$_commit.tar.gz"
-builddir="$srcdir/melonDS-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 melonds_libretro.so "$pkgdir"/usr/lib/libretro/melonds_libretro.so
-}
-
-sha512sums="3ca81c1ef7269241ee6fe2af0861035712de47b7aa5c6e3068410ca3c3642c9b21547dfd45301600d218b0773d527f72fdcc427071a86bf68041ec54d3671be3 libretro-melonds-42c1acd5c47dcda17288dcb64ea4adb8e13b8732.tar.gz"
diff --git a/testing/libretro-meteor/APKBUILD b/testing/libretro-meteor/APKBUILD
deleted file mode 100644
index 184936b6151..00000000000
--- a/testing/libretro-meteor/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-meteor
-pkgver=0_git20190912
-pkgrel=0
-_commit="3d21e3b5a7596918bee0fcaca5752ae76624c05e"
-pkgdesc="libretro port of Meteor GBA emulator"
-url="https://github.com/libretro/meteor-libretro"
-arch="all"
-license="GPL-3.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/meteor-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/meteor-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make -C libretro
-}
-
-package() {
- install -Dm644 libretro/meteor_libretro.so "$pkgdir"/usr/lib/libretro/meteor_libretro.so
-}
-
-sha512sums="3bd91cf8d861b3dd5e815138144eb7273c8bca4ce6b0467109005686d35743067023c4a3dbb33d94c1076ec47a64ecdf5f86830fb746dd7c0439f858a2b6e619 libretro-meteor-3d21e3b5a7596918bee0fcaca5752ae76624c05e.tar.gz"
diff --git a/testing/libretro-mrboom/APKBUILD b/testing/libretro-mrboom/APKBUILD
deleted file mode 100644
index cd8b167a03c..00000000000
--- a/testing/libretro-mrboom/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-mrboom
-pkgver=0_git20200402
-pkgrel=0
-_commit="b974ce0ae13a8a85835351670d64ca7cb16e7bbc"
-pkgdesc="8 player Bomberman clone for RetroArch/Libretro"
-url="https://github.com/libretro/mrboom-libretro"
-arch="all"
-license="MIT"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/mrboom-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/mrboom-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 mrboom_libretro.so "$pkgdir"/usr/lib/libretro/mrboom_libretro.so
-}
-
-sha512sums="00958835eafb88b339868c4905cd4df6cb15f94823e898da8247ce1d869caccf33db212c48d1250dfc82fff13faa71ad7a7be96cd81733801c7c0027b4e0f96f libretro-mrboom-b974ce0ae13a8a85835351670d64ca7cb16e7bbc.tar.gz"
diff --git a/testing/libretro-mu/APKBUILD b/testing/libretro-mu/APKBUILD
new file mode 100644
index 00000000000..97555139ddb
--- /dev/null
+++ b/testing/libretro-mu/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-mu
+pkgver=0_git20220317
+pkgrel=0
+_commit="1361da04014d77b8bec13e050a71bf7bf8ce5543"
+pkgdesc="libretro core for mu"
+url="https://github.com/libretro/Mu"
+arch="all"
+license="Custom"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/Mu/archive/$_commit.tar.gz"
+builddir="$srcdir/Mu-$_commit"
+options="!check" # No tests
+
+build() {
+ make -C libretroBuildSystem
+}
+
+package() {
+ install -Dm644 libretroBuildSystem/mu_libretro.so \
+ "$pkgdir"/usr/lib/libretro/mu_libretro.so
+}
+
+sha512sums="
+0b9260603e1deaeb488fc7626466486a36d3544892469fbd4d11f357c52e005758e01fee99122fd61d1d61dece64b79b42b909511bf613ea6ed4d165e330b302 libretro-mu-1361da04014d77b8bec13e050a71bf7bf8ce5543.tar.gz
+"
diff --git a/testing/libretro-neocd/APKBUILD b/testing/libretro-neocd/APKBUILD
new file mode 100644
index 00000000000..74d115f0bec
--- /dev/null
+++ b/testing/libretro-neocd/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-neocd
+pkgver=0_git20220325
+pkgrel=0
+_commit="327aeceecdf71c8a0c0af3d6dc53686c94fe44ad"
+pkgdesc="libretro core for neocd"
+url="https://github.com/libretro/neocd_libretro"
+arch="all"
+license="LGPL-3.0-only"
+makedepends="minizip-dev libogg-dev libvorbis-dev zlib-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/neocd_libretro/archive/$_commit.tar.gz
+ patch-unbundle.patch"
+builddir="$srcdir/neocd_libretro-$_commit"
+options="!check" # No tests
+
+build() {
+ rm -rf deps/libogg deps/libvorbis deps/libchdr/deps/zlib*
+ make -j1
+}
+
+package() {
+ install -Dm644 neocd_libretro.so "$pkgdir"/usr/lib/libretro/neocd_libretro.so
+}
+
+sha512sums="
+12c4a848aac6e5ea91deeec64e68e4f9c54181047c53322f0fc912100a61318e99b2939d33d0b94ef8c4bad5dd537cadf875a1d8cc6c5e069b7b3cba1c49d573 libretro-neocd-327aeceecdf71c8a0c0af3d6dc53686c94fe44ad.tar.gz
+bc689c7c686f917dbaff889ddef761a89d2f552ca0905f0c9c554e3d4c8117fc4a972a3dc1322699f0ff558db7a71b6206a383a34ca3739d8ca82a5c11d81da8 patch-unbundle.patch
+"
diff --git a/testing/libretro-neocd/patch-unbundle.patch b/testing/libretro-neocd/patch-unbundle.patch
new file mode 100644
index 00000000000..c495d01ea96
--- /dev/null
+++ b/testing/libretro-neocd/patch-unbundle.patch
@@ -0,0 +1,91 @@
+Remove bundled dependencies.
+
+We have to keep minizip for now because the newest API is not backward
+compatible with the core codebase.
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -1,22 +1,22 @@
+ LIBRETRO_DEPS_DIR = $(CORE_DIR)/deps
+-LIBOGG_DIR = $(LIBRETRO_DEPS_DIR)/libogg
+-LIBVORBIS_DIR = $(LIBRETRO_DEPS_DIR)/libvorbis
+ LIBCHDR_DIR = $(LIBRETRO_DEPS_DIR)/libchdr
+-ZLIB_DIR = $(LIBCHDR_DIR)/deps/zlib-1.2.11
+ MINIZIP_DIR = $(LIBRETRO_DEPS_DIR)/minizip
+ LZMA_DIR = $(LIBCHDR_DIR)/deps/lzma-19.00
+ LIBRETRO_COMM_DIR = $(LIBRETRO_DEPS_DIR)/libretro-common
+
++VORBIS_INCS := $(shell pkg-config --cflags vorbisfile)
++VORBIS_LIBS := $(shell pkg-config --libs vorbisfile)
++OGG_INCS := $(shell pkg-config --cflags ogg)
++OGG_LIBS := $(shell pkg-config --libs ogg)
++ZLIB_INCS := $(shell pkg-config --cflags zlib)
++ZLIB_LIBS := $(shell pkg-config --libs zlib)
++
+ INCFLAGS := \
+ -I$(CORE_DIR)/src \
+ -I$(LIBRETRO_COMM_DIR)/include \
+ -I$(LIBRETRO_DEPS_DIR)/ \
+ -I$(LIBCHDR_DIR)/include \
+ -I$(LZMA_DIR)/include \
+- -I$(LIBOGG_DIR)/include \
+- -I$(LIBVORBIS_DIR)/include \
+- -I$(LIBVORBIS_DIR)/lib \
+- -I$(ZLIB_DIR) \
+ -I$(MINIZIP_DIR)
+
+ SOURCES_CXX :=\
+@@ -113,46 +113,17 @@
+ $(LZMA_DIR)/src/Sort.c
+
+ SOURCES_C += \
+- $(LIBOGG_DIR)/src/bitwise.c \
+- $(LIBOGG_DIR)/src/framing.c
+-
+-SOURCES_C += \
+- $(LIBVORBIS_DIR)/lib/bitrate.c \
+- $(LIBVORBIS_DIR)/lib/block.c \
+- $(LIBVORBIS_DIR)/lib/codebook.c \
+- $(LIBVORBIS_DIR)/lib/envelope.c \
+- $(LIBVORBIS_DIR)/lib/floor0.c \
+- $(LIBVORBIS_DIR)/lib/floor1.c \
+- $(LIBVORBIS_DIR)/lib/info.c \
+- $(LIBVORBIS_DIR)/lib/lookup.c \
+- $(LIBVORBIS_DIR)/lib/lpc.c \
+- $(LIBVORBIS_DIR)/lib/lsp.c \
+- $(LIBVORBIS_DIR)/lib/mapping0.c \
+- $(LIBVORBIS_DIR)/lib/mdct.c \
+- $(LIBVORBIS_DIR)/lib/psy.c \
+- $(LIBVORBIS_DIR)/lib/registry.c \
+- $(LIBVORBIS_DIR)/lib/res0.c \
+- $(LIBVORBIS_DIR)/lib/sharedbook.c \
+- $(LIBVORBIS_DIR)/lib/smallft.c \
+- $(LIBVORBIS_DIR)/lib/synthesis.c \
+- $(LIBVORBIS_DIR)/lib/vorbisfile.c \
+- $(LIBVORBIS_DIR)/lib/window.c
+-
+-SOURCES_C += \
+- $(ZLIB_DIR)/adler32.c \
+- $(ZLIB_DIR)/crc32.c \
+- $(ZLIB_DIR)/deflate.c \
+- $(ZLIB_DIR)/infback.c \
+- $(ZLIB_DIR)/inffast.c \
+- $(ZLIB_DIR)/inflate.c \
+- $(ZLIB_DIR)/inftrees.c \
+- $(ZLIB_DIR)/trees.c \
+- $(ZLIB_DIR)/zutil.c
+-
+-SOURCES_C += \
+ $(MINIZIP_DIR)/ioapi.c \
+ $(MINIZIP_DIR)/unzip.c
+
+ ifneq ($(STATIC_LINKING),1)
+ SOURCES_C += $(SRC_LIBRETRO_COMMON)
+ endif
++
++INCFLAGS += ${VORBIS_INCS}
++INCFLAGS += ${OGG_INCS}
++INCFLAGS += ${ZLIB_INCS}
++
++LIBS += ${VORBIS_LIBS}
++LIBS += ${OGG_LIBS}
++LIBS += ${ZLIB_LIBS}
diff --git a/testing/libretro-nxengine/APKBUILD b/testing/libretro-nxengine/APKBUILD
index 82e9db0371c..c52472676c9 100644
--- a/testing/libretro-nxengine/APKBUILD
+++ b/testing/libretro-nxengine/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-nxengine
-pkgver=0_git20200109
+pkgver=0_git20220301
pkgrel=0
-_commit="f39250e54f20c616dd4403cb8d4cab14032530b5"
+_commit="fc102fa3eeda1a0133f80474d6671af4cf7612a6"
pkgdesc="port of NxEngine to the libretro API"
url="https://github.com/libretro/nxengine-libretro"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 nxengine_libretro.so "$pkgdir"/usr/lib/libretro/nxengine_libretro.so
}
-sha512sums="77135c5621405ae8168ec2a0dce1441c3c4da853270b377efaf6e6e7e2d498e96464ed8f12d05d9ccff17c3053335566f0c74047ba264b9bfc12b3e0e0749db5 libretro-nxengine-f39250e54f20c616dd4403cb8d4cab14032530b5.tar.gz"
+sha512sums="
+c0a414dc773e902b2ff66513755deaac0c25363795e6c009ae578b1c18df4851fce8b1dd729e183013311f1e71ce7409a95c6f5d65f185930a1dc34c4a0503cc libretro-nxengine-fc102fa3eeda1a0133f80474d6671af4cf7612a6.tar.gz
+"
diff --git a/testing/libretro-o2em/APKBUILD b/testing/libretro-o2em/APKBUILD
deleted file mode 100644
index 6b33bab299f..00000000000
--- a/testing/libretro-o2em/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-o2em
-pkgver=0_git20200203
-pkgrel=0
-_commit="b23a796dd3490e979ff43710317df6d43bd661e1"
-pkgdesc="port of O2EM to the libretro API, an Odyssey 2 / VideoPac emulator"
-url="https://github.com/libretro/libretro-o2em"
-arch="all"
-license="Artistic-2.0"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-o2em/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-o2em-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 o2em_libretro.so "$pkgdir"/usr/lib/libretro/o2em_libretro.so
-}
-
-sha512sums="474342d2a5599f27940f7ba847187d2328ed5e8d1318388b4c636157d9787ab79e2b3669d0bbbf2d0c8a15e6fc8b424197097fca27f37bcf5aff7a83962c59a9 libretro-o2em-b23a796dd3490e979ff43710317df6d43bd661e1.tar.gz"
diff --git a/testing/libretro-openlara/APKBUILD b/testing/libretro-openlara/APKBUILD
index fb3c5e322b6..bfa545ce713 100644
--- a/testing/libretro-openlara/APKBUILD
+++ b/testing/libretro-openlara/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-openlara
-pkgver=0_git20200225
+pkgver=0_git20210121
pkgrel=0
-_commit="c7fd002610c551cfbbfa4947ea9c3a2574fe51c5"
+_commit="fe88d74673344afc71891717b2474d33f90c165f"
pkgdesc="classic Tomb Raider open-source engine for libretro"
url="https://github.com/libretro/OpenLara"
arch="all"
@@ -13,6 +13,8 @@ source="$pkgname-$_commit.tar.gz::https://github.com/libretro/OpenLara/archive/$
builddir="$srcdir/OpenLara-$_commit"
options="!check" # No tests
+export CFLAGS="$CFLAGS -fcommon"
+
build() {
make -C src/platform/libretro
}
@@ -21,4 +23,6 @@ package() {
install -Dm644 src/platform/libretro/openlara_libretro.so "$pkgdir"/usr/lib/libretro/openlara_libretro.so
}
-sha512sums="64f6faf0a6b751668d7271e82785146a9fee7e66a1878bc13d6c5edb678ae27910d6e2fcd5e8f5d5ecc5a40b6cc3daac48a4242be47c772194c80defb3864ae3 libretro-openlara-c7fd002610c551cfbbfa4947ea9c3a2574fe51c5.tar.gz"
+sha512sums="
+d2c8c2d1c3ebb185e101eea79e5773c5d5b1ba45757b2532ffbdfd548cae103666790a414db5bb42ca332b99602b38d9f1dcae4b3bbe7ea120eec3bfda6f20c4 libretro-openlara-fe88d74673344afc71891717b2474d33f90c165f.tar.gz
+"
diff --git a/testing/libretro-opera/APKBUILD b/testing/libretro-opera/APKBUILD
index 23358b3564d..f43e93ff2e1 100644
--- a/testing/libretro-opera/APKBUILD
+++ b/testing/libretro-opera/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-opera
-pkgver=0_git20200217
+pkgver=0_git20211214
pkgrel=0
-_commit="27bc2653ed469072a6a95102a8212a35fbb1e590"
+_commit="3849c969c64b82e622a7655b327fa94bc5a4c7cc"
pkgdesc="port of 4DO/libfreedo to libretro"
url="https://github.com/libretro/opera-libretro"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 opera_libretro.so "$pkgdir"/usr/lib/libretro/opera_libretro.so
}
-sha512sums="3c29190faeb87d98c7f0cf891344590f72088f85791670a316298dceb642187166e41eb7fe82eac63664d30ed847edaa2b46096ffd6c067e376c6499a7220f8a libretro-opera-27bc2653ed469072a6a95102a8212a35fbb1e590.tar.gz"
+sha512sums="
+ca57a35fb7ed3007cce818e427e182f50bd7f720f4f8e8a9bfa04ff0daf68eff6347c25d98f1d36dfedc46df51f3aadf15b2b0c3c9d7f881d4fe6539efccf19b libretro-opera-3849c969c64b82e622a7655b327fa94bc5a4c7cc.tar.gz
+"
diff --git a/testing/libretro-parallel-n64/APKBUILD b/testing/libretro-parallel-n64/APKBUILD
index 8e2ce701648..d95cfbe665d 100644
--- a/testing/libretro-parallel-n64/APKBUILD
+++ b/testing/libretro-parallel-n64/APKBUILD
@@ -1,15 +1,18 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-parallel-n64
-pkgver=0_git20200402
+pkgver=0_git20220406
pkgrel=0
-_commit="54681c22f754695dea02dcf9f6974f68d25604fe"
+_commit="b804ab1a199d6ff1f8fef4aa7dfcf663990e430b"
pkgdesc="optimized/rewritten Nintendo 64 emulator made specifically for Libretro"
url="https://github.com/libretro/parallel-n64"
-arch="all !aarch64 !armv7 !armhf !ppc64le !s390x !mips !mips64"
+arch="all !ppc64le !s390x !riscv64"
license="GPL-2.0-only"
makedepends="mesa-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/parallel-n64/archive/$_commit.tar.gz"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/parallel-n64/archive/$_commit.tar.gz
+ patch-aarch64.patch
+ patch-arm.patch
+ "
builddir="$srcdir/parallel-n64-$_commit"
options="!check" # No tests
@@ -21,4 +24,8 @@ package() {
install -Dm644 parallel_n64_libretro.so "$pkgdir"/usr/lib/libretro/parallel_n64_libretro.so
}
-sha512sums="ffb92ae5f94269b4e300beeb8bce93f59574b5e302b5b459cfa288370cca337108ffa61f479c3c555c8a91c3f7c7027a16cc2f8c181cb8da8dc3e6e179647aa1 libretro-parallel-n64-54681c22f754695dea02dcf9f6974f68d25604fe.tar.gz"
+sha512sums="
+8e3ceabe97c5bf31c5db463c05b40c76e7a2c2e7e7d1e16c3673c0b87cb882ea506187dca4266224721e334f3e95c38eb918591b7cad972123389a1fe1628808 libretro-parallel-n64-b804ab1a199d6ff1f8fef4aa7dfcf663990e430b.tar.gz
+b2e41dc864eefca4cfd62c42371b371dabb28a04c604f3d31185751c87f632371f6d0557ddb7bca32299ce7c0d5908204e3f2afa8fef943b0dbd2a8bd68302af patch-aarch64.patch
+d5f8abf349b1bff945a0e3f90aabbdbd159b7ddef8054fc284ab192adfa61ce8ccbeac25e14149a5c438db375c8246931ab59a1905adc3e30f217026780a4d7b patch-arm.patch
+"
diff --git a/testing/libretro-parallel-n64/patch-aarch64.patch b/testing/libretro-parallel-n64/patch-aarch64.patch
new file mode 100644
index 00000000000..af3274c0f68
--- /dev/null
+++ b/testing/libretro-parallel-n64/patch-aarch64.patch
@@ -0,0 +1,12 @@
+Upstream: https://github.com/libretro/parallel-n64/issues/671
+--- parallel-n64-0a67445ce63513584d92e5c57ea87efe0da9b3bd/mupen64plus-core/src/r4300/new_dynarec/arm64/assem_arm64.h.orig
++++ parallel-n64-0a67445ce63513584d92e5c57ea87efe0da9b3bd/mupen64plus-core/src/r4300/new_dynarec/arm64/assem_arm64.h
+@@ -1,6 +1,8 @@
+ #ifndef M64P_R4300_ASSEM_ARM64_H
+ #define M64P_R4300_ASSEM_ARM64_H
+
++#include <sys/types.h>
++
+ #define HOST_REGS 29
+ #define HOST_CCREG 20 /* callee-save */
+ #define HOST_BTREG 19 /* callee-save */
diff --git a/testing/libretro-parallel-n64/patch-arm.patch b/testing/libretro-parallel-n64/patch-arm.patch
new file mode 100644
index 00000000000..f304924dfa3
--- /dev/null
+++ b/testing/libretro-parallel-n64/patch-arm.patch
@@ -0,0 +1,29 @@
+Upstream: https://github.com/libretro/parallel-n64/issues/671
+--- parallel-n64-0a67445ce63513584d92e5c57ea87efe0da9b3bd/Makefile.orig
++++ parallel-n64-0a67445ce63513584d92e5c57ea87efe0da9b3bd/Makefile
+@@ -91,10 +91,12 @@
+
+ ifeq ($(ARCH), $(filter $(ARCH), i386 i686))
+ WITH_DYNAREC = x86
+-else ifeq ($(ARCH), $(filter $(ARCH), arm))
+- WITH_DYNAREC = arm
+ else ifeq ($(ARCH), $(filter $(ARCH), aarch64))
+ WITH_DYNAREC = aarch64
++ CFLAGS += -DARM_FIX
++else ifneq (, $(findstring arm, $(ARCH)))
++ WITH_DYNAREC = arm
++ CFLAGS += -DARM_FIX
+ endif
+
+ ifeq ($(HAVE_VULKAN_DEBUG),1)
+--- parallel-n64-0a67445ce63513584d92e5c57ea87efe0da9b3bd/mupen64plus-core/src/r4300/new_dynarec/arm/assem_arm.h.orig
++++ parallel-n64-0a67445ce63513584d92e5c57ea87efe0da9b3bd/mupen64plus-core/src/r4300/new_dynarec/arm/assem_arm.h
+@@ -1,6 +1,8 @@
+ #ifndef M64P_R4300_ASSEM_ARM_H
+ #define M64P_R4300_ASSEM_ARM_H
+
++#include <sys/types.h>
++
+ #define HOST_REGS 13
+ #define HOST_CCREG 10
+ #define HOST_BTREG 8
diff --git a/testing/libretro-pcem/APKBUILD b/testing/libretro-pcem/APKBUILD
index a2d06f982f5..ce7609a8a58 100644
--- a/testing/libretro-pcem/APKBUILD
+++ b/testing/libretro-pcem/APKBUILD
@@ -6,7 +6,7 @@ pkgrel=0
_commit="1955c2127990cfdf4c594b35b466e8503d626fa7"
pkgdesc="libretro port of PCem"
url="https://github.com/libretro/libretro-pcem"
-arch="all !aarch64 !armv7 !armhf !ppc64le !s390x !x8 !x86 !mips !mips64"
+arch="all !aarch64 !armv7 !armhf !ppc64le !s390x !x86 !riscv64"
license="GPL-2.0-only"
makedepends="linux-headers"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-pcem/archive/$_commit.tar.gz"
diff --git a/testing/libretro-pcsx-rearmed/APKBUILD b/testing/libretro-pcsx-rearmed/APKBUILD
index 4b58dc2a81f..42e79142089 100644
--- a/testing/libretro-pcsx-rearmed/APKBUILD
+++ b/testing/libretro-pcsx-rearmed/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-pcsx-rearmed
-pkgver=0_git20200317
+pkgver=0_git20220409
pkgrel=0
-_commit="3c4ac5bb44b41d23eec217369eaa34f4e155f733"
+_commit="e24732050e902bd5402b2b7da7c391d2ca8fa799"
pkgdesc="ARM optimized PCSX fork for libretro"
url="https://github.com/libretro/pcsx_rearmed"
arch="all !armv7 !armhf"
@@ -12,12 +12,21 @@ source="$pkgname-$_commit.tar.gz::https://github.com/libretro/pcsx_rearmed/archi
builddir="$srcdir/pcsx_rearmed-$_commit"
options="!check" # No tests
+# Handled by multiple conditionals in the Makefile but not working correctly
+# for the aarch64 platform.
+case "$CARCH" in
+aarch64)
+ with_dynarec="DYNAREC=ari64" ;;
+esac
+
build() {
- make -f Makefile.libretro
+ make -f Makefile.libretro $with_dynarec
}
package() {
install -Dm644 pcsx_rearmed_libretro.so "$pkgdir"/usr/lib/libretro/pcsx_rearmed_libretro.so
}
-sha512sums="091983c4cf48b87dcc854ab69024621a02bbe645faafbcea67d75690061ffef1530e416c04f1794727b3c4941bdbe53cff49efade078c20f3bd47fa5a8fd1a4c libretro-pcsx-rearmed-3c4ac5bb44b41d23eec217369eaa34f4e155f733.tar.gz"
+sha512sums="
+621972462c230c19241a2ba14098987524488ec3d053b609fb9fc870b4ef3b6f2f7a44f6f97b9376a0c17ff7b465b5963962b44fc50dfa982509fdab2403860f libretro-pcsx-rearmed-e24732050e902bd5402b2b7da7c391d2ca8fa799.tar.gz
+"
diff --git a/testing/libretro-picodrive/APKBUILD b/testing/libretro-picodrive/APKBUILD
index 305d63c7c53..414892847c2 100644
--- a/testing/libretro-picodrive/APKBUILD
+++ b/testing/libretro-picodrive/APKBUILD
@@ -1,17 +1,30 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-picodrive
-pkgver=0_git20200305
+pkgver=0_git20220405
pkgrel=0
-_commit="600894ec6eb657586a972a9ecd268f50907a279c"
+_commit="bb6a52fe60e6f3bdcd17effe75e68fd0f8c44ba7"
+_commit_dr_libs="1e42667b0912437d1c101a59ee9d0225ba0dffb5"
+_commit_libchdr="a03e69319164f69d781ab8e453f8cf407387bd13"
+_commit_emu2413="4062e93e9316ee5c488167ade5a83753e5f07ae3"
pkgdesc="fast MegaDrive/MegaCD/32X emulator"
url="https://github.com/libretro/picodrive"
-arch="all !aarch64 !ppc64le !s390x !mips !mips64"
+arch="all !ppc64le !s390x !riscv64"
license="custom"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/picodrive/archive/$_commit.tar.gz"
+source="$pkgname-$_commit.tar.gz::https://github.com/libretro/picodrive/archive/$_commit.tar.gz
+ $pkgname-dr_libs-$_commit_dr_libs.tar.gz::https://github.com/mackron/dr_libs/archive/$_commit_dr_libs.tar.gz
+ $pkgname-libchdr-$_commit_libchdr.tar.gz::https://github.com/rtissera/libchdr/archive/$_commit_libchdr.tar.gz
+ $pkgname-emu2413-$_commit_emu2413.tar.gz::https://github.com/digital-sound-antiques/emu2413/archive/$_commit_emu2413.tar.gz"
builddir="$srcdir/picodrive-$_commit"
options="!check" # No tests
+prepare() {
+ default_prepare
+ rm -rf platform/common/dr_libs && mv "$srcdir/dr_libs-$_commit_dr_libs" platform/common/dr_libs
+ rm -rf pico/cd/libchdr && mv "$srcdir/libchdr-$_commit_libchdr" pico/cd/libchdr
+ rm -rf pico/sound/emu2413 && mv "$srcdir/emu2413-$_commit_emu2413" pico/sound/emu2413
+}
+
build() {
make -f Makefile.libretro
}
@@ -20,4 +33,9 @@ package() {
install -Dm644 picodrive_libretro.so "$pkgdir"/usr/lib/libretro/picodrive_libretro.so
}
-sha512sums="66247cf73c60ae88a6bb8fa771b887b1a85b2260d951162670b7fa71dfca919b1a9775fde85557f74779a64b2bf179eef94af96511b11db3cc0a62d8e9bd9223 libretro-picodrive-600894ec6eb657586a972a9ecd268f50907a279c.tar.gz"
+sha512sums="
+505cb28d74944093d04474846e74aa5135058ead836b004a9250f18f53bf8aef239986e3e88ae3ac33879447757bc4d0671ef42661843b1a4d1349ad434b986d libretro-picodrive-bb6a52fe60e6f3bdcd17effe75e68fd0f8c44ba7.tar.gz
+640ac3d0b2a3e47f47e1a2db1a0b3f6df65bc91e476b722e355c417f14f98eff97c878553252ba6877ff98bcd35056c185c66ddd394bf31cc33400b480dd415b libretro-picodrive-dr_libs-1e42667b0912437d1c101a59ee9d0225ba0dffb5.tar.gz
+407b1b310126e223b596ef99b7cbf0baadc06c3cb84e3173a40a2ddcf3b994e86e420fdafd814f11a7d0ac2c9feea30c28ff9ece6834d5f317064185546d4101 libretro-picodrive-libchdr-a03e69319164f69d781ab8e453f8cf407387bd13.tar.gz
+ae75d43973c4d3c8204609a52dd18d1c84ce7962af5219d7f34a3b7313268168adf0bd556771487aa0d2d1e382fe18b0b98ba055ef7ff0109f74adbdb1b913f4 libretro-picodrive-emu2413-4062e93e9316ee5c488167ade5a83753e5f07ae3.tar.gz
+"
diff --git a/testing/libretro-pocketcdg/APKBUILD b/testing/libretro-pocketcdg/APKBUILD
index 92d3b22e9ba..bfea2e26803 100644
--- a/testing/libretro-pocketcdg/APKBUILD
+++ b/testing/libretro-pocketcdg/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-pocketcdg
-pkgver=0_git20200317
+pkgver=0_git20220327
pkgrel=0
-_commit="b819de5b993d5f0e8cfd2870453d090c1cf0a3ca"
+_commit="1559b4e309888690722a86b897582f62dd598810"
pkgdesc="PocketCDG libretro port"
url="https://github.com/libretro/libretro-pocketcdg"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 pocketcdg_libretro.so "$pkgdir"/usr/lib/libretro/pocketcdg_libretro.so
}
-sha512sums="79f8c7261f98d6905d5f92ec77fc7ba8466a8e9460ee5a53035debac673b75cd5758a8800700ed7d471b973b6ea2af03172b734ac6311084d7ed94bf922db478 libretro-pocketcdg-b819de5b993d5f0e8cfd2870453d090c1cf0a3ca.tar.gz"
+sha512sums="
+8371a641d0ae0c2b6283e4d5538fac9754b801adf866228ff167cf02df212657198f2ee1ddac9ca7169f66dc653c6e70302a2fec2b2ee5576f76f30dfe887fee libretro-pocketcdg-1559b4e309888690722a86b897582f62dd598810.tar.gz
+"
diff --git a/testing/libretro-pokemini/APKBUILD b/testing/libretro-pokemini/APKBUILD
deleted file mode 100644
index 43a1c547463..00000000000
--- a/testing/libretro-pokemini/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-pokemini
-pkgver=0_git20200207
-pkgrel=0
-_commit="d2ea2ef52f97ea6f7bfff57b5367d95083474414"
-pkgdesc="obscure nintendo handheld emulator"
-url="https://github.com/libretro/PokeMini"
-arch="all"
-license="GPL-3.0-or-later"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/PokeMini/archive/$_commit.tar.gz"
-builddir="$srcdir/PokeMini-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 pokemini_libretro.so "$pkgdir"/usr/lib/libretro/pokemini_libretro.so
-}
-
-sha512sums="0027e7bfa2404b1c43993f2c278df5b49c74f8c06dc2adfd045322936d7f83a3e0fb3c3cf263055639ee0fcdd7b2db5e142edf59ca07262d5f4440d604980376 libretro-pokemini-d2ea2ef52f97ea6f7bfff57b5367d95083474414.tar.gz"
diff --git a/testing/libretro-ppsspp/APKBUILD b/testing/libretro-ppsspp/APKBUILD
new file mode 100644
index 00000000000..a55ccf1a750
--- /dev/null
+++ b/testing/libretro-ppsspp/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=libretro-ppsspp
+pkgver=0_git20210516
+pkgrel=12
+_vers="v1.11.3-672-gf1bf596f5"
+_commit="f1bf596f5c6301a9f757b18b7823fd9f34f235ef"
+_commit_armips="7885552b208493a6a0f21663770c446c3ba65576"
+_commit_ppsspp_lang="3bf6b18eb0ae68861fbfbb7b43cd764771ca42a9"
+_commit_rapidjson="73063f5002612c6bf64fe24f851cd5cc0d83eef9"
+_commit_spirv_cross="9acb9ec31f5a8ef80ea6b994bb77be787b08d3d1"
+pkgdesc="libretro core for ppsspp"
+url="https://github.com/hrydgard/ppsspp"
+arch="all !s390x"
+license="GPL-2.0-only"
+makedepends="cmake
+ ffmpeg4-dev
+ glslang-dev
+ glslang-static
+ libpng-dev
+ libzip-dev
+ mesa-dev
+ miniupnpc-dev
+ ninja
+ python3
+ snappy-dev
+ zlib-dev
+ zstd-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/hrydgard/ppsspp/archive/$_commit.tar.gz
+ $pkgname-armips-$_commit_armips.tar.gz::https://github.com/Kingcom/armips/archive/$_commit_armips.tar.gz
+ $pkgname-ppsspp-lang-$_commit_ppsspp_lang.tar.gz::https://github.com/hrydgard/ppsspp-lang/archive/$_commit_ppsspp_lang.tar.gz
+ $pkgname-rapidjson-$_commit_rapidjson.tar.gz::https://github.com/Tencent/rapidjson/archive/$_commit_rapidjson.tar.gz
+ $pkgname-spirv-cross-$_commit_spirv_cross.tar.gz::https://github.com/KhronosGroup/spirv-cross/archive/$_commit_spirv_cross.tar.gz
+ patch-unbundle.patch
+ patch-disable-git-version.patch
+ gcc12.patch
+ gcc13.patch
+ "
+builddir="$srcdir/ppsspp-$_commit"
+options="!check" # No tests
+
+prepare() {
+ rm -rf ext/armips && mv "$srcdir"/armips-$_commit_armips ext/armips
+ rm -rf ext/rapidjson && mv "$srcdir"/rapidjson-$_commit_rapidjson ext/rapidjson
+ rm -rf ext/SPIRV-Cross && mv "$srcdir"/SPIRV-Cross-$_commit_spirv_cross ext/SPIRV-Cross
+ rm -rf assets/lang && mv "$srcdir"/ppsspp-lang-$_commit_ppsspp_lang assets/lang
+ default_prepare
+ sed -i -e "s,@VERSION@,$_vers," git-version.cmake
+}
+
+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_SKIP_RPATH=On \
+ -DOpenGL_GL_PREFERENCE=GLVND \
+ -DHEADLESS=Off \
+ -DLIBRETRO=On \
+ -DMOBILE_DEVICE=Off \
+ -DSIMULATOR=Off \
+ -DUNITTEST=Off \
+ -DUSE_SYSTEM_LIBZIP=On \
+ -DUSE_SYSTEM_SNAPPY=On \
+ -DUSE_SYSTEM_ZSTD=On \
+ -DUSE_SYSTEM_FFMPEG=On \
+ -DUSING_QT_UI=Off \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ install -Dm644 build/lib/ppsspp_libretro.so "$pkgdir"/usr/lib/libretro/ppsspp_libretro.so
+}
+
+sha512sums="
+7bc671c8da5e7c77a2609022bbbbecff4b21d65a4c32e4497814b42235a4a870c1aafc66abeb0b875ba7ed42873cdc824f901adb7d090cb583e657ba9b06c641 libretro-ppsspp-f1bf596f5c6301a9f757b18b7823fd9f34f235ef.tar.gz
+2a94e2c7b7280c00a39c8fc92d81ed15fc4b3270a124ef882e3cd8878db6ec827aefa06b0e646a60916636a95e4ebfa886e9878ba70c6bcfcd048def457368be libretro-ppsspp-armips-7885552b208493a6a0f21663770c446c3ba65576.tar.gz
+691cb38c65ca20700dc5b91c0dc02eec1839f153e042c87f8f4fd480e44c823c0ece9f4752f5e597f2aa4b5cfb22aaf49d76ff990eb2dd5231cc4065dd62566d libretro-ppsspp-ppsspp-lang-3bf6b18eb0ae68861fbfbb7b43cd764771ca42a9.tar.gz
+3472e129e710bf5343b8b27a61581a1480c8096493e466440b62702d8b5353745d561931f72b5405a736ad92525be3843ea1cf4b5ea5839721cc6d6b358f19bc libretro-ppsspp-rapidjson-73063f5002612c6bf64fe24f851cd5cc0d83eef9.tar.gz
+be77131814691dfbe65de3a2d3ea65de98c7169824997056637bbce39485327ff0f64e7eed8588237615948824e1f9dff1d083472b8cbccd3748a52379411e4e libretro-ppsspp-spirv-cross-9acb9ec31f5a8ef80ea6b994bb77be787b08d3d1.tar.gz
+bce348cba279e746b77d3e75bddbdbdbbdb6643385e7a5f9d3f1dcb22a1fd7708acf16cc5e7acc8756e9ab9da9caeaef1a140d245df141acb23c07f9c23080e8 patch-unbundle.patch
+859901bd42934b52f82c28c1f5f3b43277f54d79d58c035c063e615de3a5959a373ef8d9c0199ed1326bbd64b7b12f4582957851d57d2dd66b5ba8488bbb8734 patch-disable-git-version.patch
+ace2abbfe6757f51e9839f179c3d9ce74c14e5b0214f7928aec1de3fd80bb54ffe114d9dfbc061716626841a9a721e1204de4f0d419e280f05f473d7214ff3b1 gcc12.patch
+a744b901dfb86e5b4dd9e7447323649452cf9797050567ab262a6d670cdae20dabb62a582fbbcfb2afed9648314a04b6015257c3b0abb0afb9357e000553d77a gcc13.patch
+"
diff --git a/testing/libretro-ppsspp/gcc12.patch b/testing/libretro-ppsspp/gcc12.patch
new file mode 100644
index 00000000000..9d6b73a155d
--- /dev/null
+++ b/testing/libretro-ppsspp/gcc12.patch
@@ -0,0 +1,12 @@
+diff --git a/Core/HW/Camera.h b/Core/HW/Camera.h
+index c232909..ec58952 100644
+--- a/Core/HW/Camera.h
++++ b/Core/HW/Camera.h
+@@ -20,6 +20,7 @@
+ #include "ppsspp_config.h"
+ #include "Core/HLE/sceUsbCam.h"
+ #include "Log.h"
++#include <pthread.h>
+
+ #include "ext/jpge/jpgd.h"
+ #include "ext/jpge/jpge.h"
diff --git a/testing/libretro-ppsspp/gcc13.patch b/testing/libretro-ppsspp/gcc13.patch
new file mode 100644
index 00000000000..cd49802e370
--- /dev/null
+++ b/testing/libretro-ppsspp/gcc13.patch
@@ -0,0 +1,71 @@
+diff --git a/Common/Data/Format/IniFile.h b/Common/Data/Format/IniFile.h
+index 6499562..a0b6ef2 100644
+--- a/Common/Data/Format/IniFile.h
++++ b/Common/Data/Format/IniFile.h
+@@ -4,6 +4,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <istream>
+ #include <map>
+ #include <string>
+diff --git a/Common/GPU/OpenGL/GLFeatures.h b/Common/GPU/OpenGL/GLFeatures.h
+index 6a8f15b..63ff9c0 100644
+--- a/Common/GPU/OpenGL/GLFeatures.h
++++ b/Common/GPU/OpenGL/GLFeatures.h
+@@ -4,6 +4,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+
+ // TODO: Replace with thin3d's vendor enum.
+diff --git a/Common/Net/NetBuffer.h b/Common/Net/NetBuffer.h
+index 6247aca..19f24b3 100644
+--- a/Common/Net/NetBuffer.h
++++ b/Common/Net/NetBuffer.h
+@@ -1,5 +1,6 @@
+ #pragma once
+
++#include <cstdint>
+ #include "Common/Buffer.h"
+
+ namespace net {
+diff --git a/Common/StringUtils.h b/Common/StringUtils.h
+index 89127be..de8c360 100644
+--- a/Common/StringUtils.h
++++ b/Common/StringUtils.h
+@@ -19,6 +19,7 @@
+
+ #include "Common.h"
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/Core/Reporting.h b/Core/Reporting.h
+index a1b04ab..77e5847 100644
+--- a/Core/Reporting.h
++++ b/Core/Reporting.h
+@@ -17,6 +17,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/GPU/Common/IndexGenerator.cpp b/GPU/Common/IndexGenerator.cpp
+index 446d7a6..f3fb34c 100644
+--- a/GPU/Common/IndexGenerator.cpp
++++ b/GPU/Common/IndexGenerator.cpp
+@@ -17,6 +17,7 @@
+
+ #include <cstring>
+
++#include <cstdint>
+ #include "ppsspp_config.h"
+ #include "CPUDetect.h"
+ #include "Common.h"
diff --git a/testing/libretro-ppsspp/patch-disable-git-version.patch b/testing/libretro-ppsspp/patch-disable-git-version.patch
new file mode 100644
index 00000000000..cf2d9368c77
--- /dev/null
+++ b/testing/libretro-ppsspp/patch-disable-git-version.patch
@@ -0,0 +1,25 @@
+Don't use git to append version into source code.
+--- a/git-version.cmake
++++ b/git-version.cmake
+@@ -1,20 +1,6 @@
+ set(GIT_VERSION_FILE "${SOURCE_DIR}/git-version.cpp")
+-set(GIT_VERSION "unknown")
++set(GIT_VERSION "@VERSION@")
+ set(GIT_VERSION_UPDATE "1")
+-
+-find_package(Git)
+-if(GIT_FOUND AND EXISTS "${SOURCE_DIR}/.git/")
+- execute_process(COMMAND ${GIT_EXECUTABLE} describe --always
+- WORKING_DIRECTORY ${SOURCE_DIR}
+- RESULT_VARIABLE exit_code
+- OUTPUT_VARIABLE GIT_VERSION)
+- if(NOT ${exit_code} EQUAL 0)
+- message(WARNING "git describe failed, unable to include version.")
+- endif()
+- string(STRIP ${GIT_VERSION} GIT_VERSION)
+-else()
+- message(WARNING "git not found, unable to include version.")
+-endif()
+
+ if(EXISTS ${GIT_VERSION_FILE})
+ # Don't update if marked not to update.
diff --git a/testing/libretro-ppsspp/patch-unbundle.patch b/testing/libretro-ppsspp/patch-unbundle.patch
new file mode 100644
index 00000000000..00f097edfd9
--- /dev/null
+++ b/testing/libretro-ppsspp/patch-unbundle.patch
@@ -0,0 +1,178 @@
+https://raw.githubusercontent.com/archlinux/svntogit-community/packages/libretro-ppsspp/trunk/libretro-ppsspp-system-zstd.patch
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -135,6 +135,7 @@
+ option(USE_SYSTEM_SNAPPY "Dynamically link against system snappy" ${USE_SYSTEM_SNAPPY})
+ option(USE_SYSTEM_FFMPEG "Dynamically link against system FFMPEG" ${USE_SYSTEM_FFMPEG})
+ option(USE_SYSTEM_LIBZIP "Dynamically link against system libzip" ${USE_SYSTEM_LIBZIP})
++option(USE_SYSTEM_ZSTD "Dynamically link against system zstd" ${USE_SYSTEM_ZSTD})
+ option(USE_ASAN "Use address sanitizer" OFF)
+ option(USE_UBSAN "Use undefined behaviour sanitizer" OFF)
+
+@@ -1892,9 +1893,21 @@
+ endif()
+ endif()
+
+-set(CoreExtraLibs ${CoreExtraLibs} armips libzstd_static)
+-include_directories(ext/zstd/lib)
++set(CoreExtraLibs ${CoreExtraLibs} armips)
+
++find_package(PkgConfig)
++if(PKG_CONFIG_FOUND)
++ pkg_check_modules(ZSTD libzstd)
++endif()
++if(ZSTD_FOUND AND USE_SYSTEM_ZSTD)
++ include_directories(${ZSTD_INCLUDE_DIRS})
++ target_link_libraries(${CoreLibName} ${ZSTD_LIBRARIES})
++else()
++ add_subdirectory(ext/zstd/build/cmake EXCLUDE_FROM_ALL)
++ include_directories(ext/zstd/lib)
++ set(CoreExtraLibs ${CoreExtraLibs} libzstd_static)
++endif()
++
+ # needed for VK_USE_PLATFORM_XCB_KHR only
+ #if(VULKAN AND NOT WIN32)
+ # target_link_libraries(native X11-xcb X11)
+@@ -1933,73 +1946,7 @@
+
+ # miniUPnPc integration (MiniUPnPc supposed to works on any POSIX system, not sure if some of these are redundant/not needed tho)
+ if(USE_MINIUPNPC)
+- set (MINIUPNPC_VERSION 2.1) # used by miniupnpcstrings.h.cmake
+- set (MINIUPNPC_API_VERSION 17)
+- option(UPNPC_BUILD_STATIC "Build static library" TRUE)
+- option(NO_GETADDRINFO "Define NO_GETADDRINFO" FALSE)
+- mark_as_advanced(NO_GETADDRINFO)
+- if (NO_GETADDRINFO)
+- add_definitions(-DNO_GETADDRINFO)
+- endif()
+-
+- if (NOT WIN32)
+- add_definitions (-DMINIUPNPC_SET_SOCKET_TIMEOUT)
+- add_definitions (-D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=200112L)
+- endif()
+- if (MACOSX)
+- add_definitions (-D_DARWIN_C_SOURCE)
+- endif()
+- if(WIN32)
+- add_definitions(-DWIN32 -DMINIUPNP_EXPORTS )
+- else()
+- add_definitions(-fPIC)
+- endif()
+-
+- add_definitions(-DWITH_UPNP -DMINIUPNP_STATICLIB)
+- set(MINIUPNP_DIR "ext/miniupnp/miniupnpc")
+- include_directories(${CMAKE_CURRENT_BINARY_DIR})
+- configure_file(${MINIUPNP_DIR}/miniupnpcstrings.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/miniupnpcstrings.h) # by default miniupnp repo doesn't contains miniupnpcstrings.h and need to be generated
+- set(MINIUPNPC_SOURCES
+- # the needed bits of miniupnpc (no python module, no tests, no cli)
+- ${MINIUPNP_DIR}/addr_is_reserved.c
+- ${MINIUPNP_DIR}/connecthostport.c
+- ${MINIUPNP_DIR}/igd_desc_parse.c
+- ${MINIUPNP_DIR}/minisoap.c
+- ${MINIUPNP_DIR}/minissdpc.c
+- ${MINIUPNP_DIR}/miniupnpc.c
+- ${MINIUPNP_DIR}/miniwget.c
+- ${MINIUPNP_DIR}/minixml.c
+- ${MINIUPNP_DIR}/minixmlvalid.c
+- ${MINIUPNP_DIR}/portlistingparse.c
+- ${MINIUPNP_DIR}/receivedata.c
+- #${MINIUPNP_DIR}/upnpc.c # causing an error due to already existing _main()
+- ${MINIUPNP_DIR}/upnpcommands.c
+- ${MINIUPNP_DIR}/upnpdev.c
+- ${MINIUPNP_DIR}/upnperrors.c
+- ${MINIUPNP_DIR}/upnpreplyparse.c
+- ${CMAKE_CURRENT_BINARY_DIR}/miniupnpcstrings.h
+- )
+- if (NOT WIN32 AND NOT CMAKE_SYSTEM_NAME STREQUAL "AmigaOS")
+- #set(MINIUPNPC_SOURCES ${MINIUPNPC_SOURCES} minissdpc.c) # causing an error due to duplication in MINIUPNPC_SOURCES?
+- endif()
+- if (WIN32)
+- set_source_files_properties(${MINIUPNPC_SOURCES} PROPERTIES COMPILE_DEFINITIONS "MINIUPNP_STATICLIB;MINIUPNP_EXPORTS")
+- set(LDLIBS ws2_32 iphlpapi ${LDLIBS})
+- #elseif (CMAKE_SYSTEM_NAME STREQUAL "Solaris")
+- # find_library (SOCKET_LIBRARY NAMES socket)
+- # find_library (NSL_LIBRARY NAMES nsl)
+- # find_library (RESOLV_LIBRARY NAMES resolv)
+- # set (LDLIBS ${SOCKET_LIBRARY} ${NSL_LIBRARY} ${RESOLV_LIBRARY} ${LDLIBS})
+- endif()
+- if (UPNPC_BUILD_STATIC)
+- add_library(miniupnpc STATIC ${MINIUPNPC_SOURCES})
+- target_link_libraries(${CoreLibName} miniupnpc ${LDLIBS})
+- set(UPNPC_LIBRARY miniupnpc)
+- if (MSVC)
+- # Suppress noise warnings
+- target_compile_definitions(miniupnpc PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS)
+- endif()
+- endif()
++ target_link_libraries(${CoreLibName} miniupnpc)
+ endif()
+
+ setup_target_project(${CoreLibName} Core)
+--- a/Core/Util/PortManager.h
++++ b/Core/Util/PortManager.h
+@@ -26,9 +26,9 @@
+ #define MINIUPNP_STATICLIB
+ #endif
+
+-#include "ext/miniupnp/miniupnpc/miniwget.h"
+-#include "ext/miniupnp/miniupnpc/miniupnpc.h"
+-#include "ext/miniupnp/miniupnpc/upnpcommands.h"
++#include <miniupnpc/miniwget.h>
++#include <miniupnpc/miniupnpc.h>
++#include <miniupnpc/upnpcommands.h>
+
+ #include <string>
+ #include <deque>
+--- a/ext/CMakeLists.txt
++++ b/ext/CMakeLists.txt
+@@ -15,11 +15,9 @@
+ set(ENABLE_HLSL OFF CACHE BOOL "let's not build HLSL support we don't need" FORCE)
+ endif()
+
+-add_subdirectory(glslang EXCLUDE_FROM_ALL)
+ add_subdirectory(snappy)
+ add_subdirectory(udis86)
+ add_subdirectory(SPIRV-Cross-build)
+ if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO)
+ add_subdirectory(discord-rpc-build)
+ endif()
+-add_subdirectory(zstd/build/cmake EXCLUDE_FROM_ALL)
+--- a/Common/GPU/Vulkan/VulkanContext.cpp
++++ b/Common/GPU/Vulkan/VulkanContext.cpp
+@@ -21,7 +21,7 @@
+ #undef new
+ #endif
+
+-#include "ext/glslang/SPIRV/GlslangToSpv.h"
++#include <glslang/SPIRV/GlslangToSpv.h>
+
+ #ifdef USE_CRT_DBG
+ #define new DBG_NEW
+--- a/Common/GPU/ShaderTranslation.cpp
++++ b/Common/GPU/ShaderTranslation.cpp
+@@ -34,12 +34,13 @@
+ #undef free
+ #endif
+
++#include <glslang/SPIRV/GlslangToSpv.h>
++
+ #include "Common/Log.h"
+ #include "Common/StringUtils.h"
+ #include "Common/GPU/Shader.h"
+
+ #include "Common/GPU/ShaderTranslation.h"
+-#include "ext/glslang/SPIRV/GlslangToSpv.h"
+ #include "Common/GPU/thin3d.h"
+ #include "Common/GPU/OpenGL/GLFeatures.h"
+
+--- a/Common/GPU/Shader.cpp
++++ b/Common/GPU/Shader.cpp
+@@ -4,7 +4,7 @@
+ #undef new
+ #endif
+
+-#include "ext/glslang/SPIRV/GlslangToSpv.h"
++#include <glslang/SPIRV/GlslangToSpv.h>
+
+ const char *ShaderLanguageAsString(ShaderLanguage lang) {
+ switch (lang) {
diff --git a/testing/libretro-prosystem/APKBUILD b/testing/libretro-prosystem/APKBUILD
deleted file mode 100644
index 8a36848578c..00000000000
--- a/testing/libretro-prosystem/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-prosystem
-pkgver=0_git20200106
-pkgrel=0
-_commit="6f7e34aea89db5ba2fbf674e5ff0ad6fc68a198e"
-pkgdesc="port of ProSystem to the libretro API"
-url="https://github.com/libretro/prosystem-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/prosystem-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/prosystem-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 prosystem_libretro.so "$pkgdir"/usr/lib/libretro/prosystem_libretro.so
-}
-
-sha512sums="5c91edacc72905249ff0ffddc26ad4e528e31585ccd77a71368f33c10f50ed6d5994a465828d4471c22259f421e7fec8b6521c8e7d1ce11fcc745c21bd4d8cbe libretro-prosystem-6f7e34aea89db5ba2fbf674e5ff0ad6fc68a198e.tar.gz"
diff --git a/testing/libretro-quicknes/APKBUILD b/testing/libretro-quicknes/APKBUILD
deleted file mode 100644
index 39296afddf1..00000000000
--- a/testing/libretro-quicknes/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-quicknes
-pkgver=0_git20200106
-pkgrel=0
-_commit="31654810b9ebf8b07f9c4dc27197af7714364ea7"
-pkgdesc="QuickNES core library"
-url="https://github.com/libretro/QuickNES_Core"
-arch="all"
-license="LGPL-2.1-or-later"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/QuickNES_Core/archive/$_commit.tar.gz"
-builddir="$srcdir/QuickNES_Core-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 quicknes_libretro.so "$pkgdir"/usr/lib/libretro/quicknes_libretro.so
-}
-
-sha512sums="e175d4a6f825f604bda32865b17943ad8b4ba43a80b175403a2ce93e933339dbfba1a53f429cdfac6b56d818aba138ca9cc975a57370b7ed7ba687e0593fc2e9 libretro-quicknes-31654810b9ebf8b07f9c4dc27197af7714364ea7.tar.gz"
diff --git a/testing/libretro-sameboy/APKBUILD b/testing/libretro-sameboy/APKBUILD
deleted file mode 100644
index a8a56dcb8d9..00000000000
--- a/testing/libretro-sameboy/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-sameboy
-pkgver=0_git20200107
-pkgrel=0
-_commit="c9e547c1063fd62c40a4b7a86e7db99dc9089051"
-pkgdesc="Gameboy and Gameboy Color emulator for libretro"
-url="https://github.com/libretro/SameBoy"
-arch="all"
-license="MIT"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/SameBoy/archive/$_commit.tar.gz"
-builddir="$srcdir/SameBoy-$_commit"
-options="!check" # No tests
-
-build() {
- make -C libretro
-}
-
-package() {
- install -Dm644 libretro/sameboy_libretro.so "$pkgdir"/usr/lib/libretro/sameboy_libretro.so
-}
-
-sha512sums="451f08a22e662bb52918bbeea8f67eab4c43c8c68bd15fe0ab179eb6c0a94e2d1b04d634b1327dbcb8bd21abc3201b2a00a594dde8436382f4ac7aeaf641da0e libretro-sameboy-c9e547c1063fd62c40a4b7a86e7db99dc9089051.tar.gz"
diff --git a/testing/libretro-scummvm/APKBUILD b/testing/libretro-scummvm/APKBUILD
index 0111953a46d..052104fcfc2 100644
--- a/testing/libretro-scummvm/APKBUILD
+++ b/testing/libretro-scummvm/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-scummvm
-pkgver=0_git20200328
+pkgver=0_git20210325
pkgrel=0
-_commit="440d5d37ed8b4e0f7d0e312b74cae1bf3506a8fd"
+_commit="6df2bdf73cc9596dbc0ef395d78e48a93e0854be"
pkgdesc="ScummVM with libretro backend"
url="https://github.com/libretro/scummvm"
arch="all"
@@ -21,4 +21,4 @@ package() {
"$pkgdir"/usr/lib/libretro/scummvm_libretro.so
}
-sha512sums="cad8d7fb8cbd917341c14e00a62fb241a2cf1fa4a6f2e61be9c4b95ca0eed071dc1d2323dc6d502fe4880350b171cda54ede54f00f8f311482aeb71748063d56 libretro-scummvm-440d5d37ed8b4e0f7d0e312b74cae1bf3506a8fd.tar.gz"
+sha512sums="e15be722b56960c09202e22e47bc6d497bca4343c49a0611cc5c98999ff2b8a67fee7b11e43e90574de5f642217cd6c2f92c92f58d87b4f87a7b4a5487b33f94 libretro-scummvm-6df2bdf73cc9596dbc0ef395d78e48a93e0854be.tar.gz"
diff --git a/testing/libretro-snes9x/APKBUILD b/testing/libretro-snes9x/APKBUILD
index ee5476b5444..d47705a341b 100644
--- a/testing/libretro-snes9x/APKBUILD
+++ b/testing/libretro-snes9x/APKBUILD
@@ -1,13 +1,14 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-snes9x
-pkgver=0_git20200106
+pkgver=0_git20220414
pkgrel=0
-_commit="6db918cfe32b157239da44096091c212fdfb3b60"
+_commit="bc65c09c280cb225084099385375d3b513a43455"
pkgdesc="Super Nintendo Entertainment System core for libretro"
url="https://github.com/libretro/snes9x"
arch="all"
license="custom"
+makedepends="zlib-dev"
source="$pkgname-$_commit.tar.gz::https://github.com/libretro/snes9x/archive/$_commit.tar.gz"
builddir="$srcdir/snes9x-$_commit"
options="!check" # No tests
@@ -20,4 +21,6 @@ package() {
install -Dm644 libretro/snes9x_libretro.so "$pkgdir"/usr/lib/libretro/snes9x_libretro.so
}
-sha512sums="2a33e89ee2cb86113138833f5aaaf880d4a6bb325764f3bd4bf999e78bf0bd7a8633c2d521fdf7920b4c60c3e4eb397a354b72666675669bc3a4338d6bd5a431 libretro-snes9x-6db918cfe32b157239da44096091c212fdfb3b60.tar.gz"
+sha512sums="
+55f37de84659860e1c76da2fc63fb252ff99be17434b297a084f4c71a96b3cc152d427294a7feb6dab27da43d97836c102e60419e4685802bd83178857872db1 libretro-snes9x-bc65c09c280cb225084099385375d3b513a43455.tar.gz
+"
diff --git a/testing/libretro-stella2014/APKBUILD b/testing/libretro-stella2014/APKBUILD
deleted file mode 100644
index ad038aa52d1..00000000000
--- a/testing/libretro-stella2014/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-stella2014
-pkgver=0_git20200107
-pkgrel=0
-_commit="fc87f2c78d3b177f4b9b19698557dce452ac3ce7"
-pkgdesc="port of Stella to libretro"
-url="https://github.com/libretro/stella2014-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/stella2014-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/stella2014-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 stella2014_libretro.so "$pkgdir"/usr/lib/libretro/stella2014_libretro.so
-}
-
-sha512sums="79db6f86d901dbfa3a8ffa5ff7982ab2f5d3a2989a1e1952d93f979536efd172e972eab47c1d9048e8b0e0f7db5cf1bcd50617effe5fae58601ff9e30b8a03b4 libretro-stella2014-fc87f2c78d3b177f4b9b19698557dce452ac3ce7.tar.gz"
diff --git a/testing/libretro-tgbdual/APKBUILD b/testing/libretro-tgbdual/APKBUILD
deleted file mode 100644
index 03d530c2594..00000000000
--- a/testing/libretro-tgbdual/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-tgbdual
-pkgver=0_git20200107
-pkgrel=0
-_commit="9be31d373224cbf288db404afc785df41e61b213"
-pkgdesc="libretro port of TGB Dual"
-url="https://github.com/libretro/tgbdual-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/tgbdual-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/tgbdual-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 tgbdual_libretro.so "$pkgdir"/usr/lib/libretro/tgbdual_libretro.so
-}
-
-sha512sums="3489787bdf6f3c9694964a3cc8adcda5f0122ab38395ac3012d4c1bef64c28ae21b162df98904f306a3e8754ee49822af7a349987a3eb941c72ef1218a1bf1ef libretro-tgbdual-9be31d373224cbf288db404afc785df41e61b213.tar.gz"
diff --git a/testing/libretro-theodore/APKBUILD b/testing/libretro-theodore/APKBUILD
index d073eccf275..2979411a87c 100644
--- a/testing/libretro-theodore/APKBUILD
+++ b/testing/libretro-theodore/APKBUILD
@@ -1,15 +1,14 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-theodore
-pkgver=0_git20200107
+pkgver=3.1
pkgrel=0
-_commit="49180a0b55b6b1a2d56f293a42e6e37186f56beb"
pkgdesc="Thomson TO8/TO8D/TO9/TO9+ emulation for libretro"
-url="https://github.com/libretro/theodore"
+url="https://github.com/Zlika/theodore"
arch="all"
license="GPL-3.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/theodore/archive/$_commit.tar.gz"
-builddir="$srcdir/theodore-$_commit"
+source="https://github.com/Zlika/theodore/archive/v$pkgver/theodore-$pkgver.tar.gz"
+builddir="$srcdir/theodore-$pkgver"
options="!check" # No tests
build() {
@@ -20,4 +19,6 @@ package() {
install -Dm644 theodore_libretro.so "$pkgdir"/usr/lib/libretro/theodore_libretro.so
}
-sha512sums="a2e513507bcaeef2c63530e9753b915bef54d6f74de0bd9072ecc2b8a9949fad05d691f421922f611147f0985320a11eae7666d6f465de5673cfa6674de06db2 libretro-theodore-49180a0b55b6b1a2d56f293a42e6e37186f56beb.tar.gz"
+sha512sums="
+6c89d8d61d50cd3dd0e836603c4d3282fe391099df3833ce785d4dc932218ae3debc5fbac6ba5fe7d8eea38eb0c96c37a1296a52bfd17f734216e39c8499fd07 theodore-3.1.tar.gz
+"
diff --git a/testing/libretro-tyrquake/APKBUILD b/testing/libretro-tyrquake/APKBUILD
index 63224997687..b76774a6dc3 100644
--- a/testing/libretro-tyrquake/APKBUILD
+++ b/testing/libretro-tyrquake/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-tyrquake
-pkgver=0_git20200402
+pkgver=0_git20220409
pkgrel=0
-_commit="58fecfb326a44bf7937b6eaa648210b8e0d07f8e"
+_commit="c516c1fe4266e5f982703d509cc10ceb12167894"
pkgdesc="libretro port of Tyrquake (Quake 1 engine)"
url="https://github.com/libretro/tyrquake"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 tyrquake_libretro.so "$pkgdir"/usr/lib/libretro/tyrquake_libretro.so
}
-sha512sums="952449757d7b0822c95c9101275bcca249b52316bcbd7c2596a0c076412d840be7968ec3171c22e3f901af5e7742838abe9ef6cd84295608d45eca3ab8cb2bcf libretro-tyrquake-58fecfb326a44bf7937b6eaa648210b8e0d07f8e.tar.gz"
+sha512sums="
+3e4058a0c9e18a9905b7f22e347891265bce31aec9b72de4ee28348b75b0d6e312b2a6862d055074d543cf6a9c1c9474c5b69748f095b339a8c8b0b314eb5311 libretro-tyrquake-c516c1fe4266e5f982703d509cc10ceb12167894.tar.gz
+"
diff --git a/testing/libretro-uzem/APKBUILD b/testing/libretro-uzem/APKBUILD
deleted file mode 100644
index 7131690ca0d..00000000000
--- a/testing/libretro-uzem/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-uzem
-pkgver=0_git20191116
-pkgrel=0
-_commit="fdecf52e6b7927c9d3f3bce6aa78db16d45480ef"
-pkgdesc="uzebox implementation for libretro"
-url="https://github.com/libretro/libretro-uzem"
-arch="all"
-license="MIT"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-uzem/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-uzem-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 uzem_libretro.so "$pkgdir"/usr/lib/libretro/uzem_libretro.so
-}
-
-sha512sums="c92d1792326af605931dc0bc7be3c8f2e896dd698e1cc7888724dad19d70e000473777e2d5e0b4aa4c6cb0b0d5ecd107656abfce680dd61e1ad79cd943e15b41 libretro-uzem-fdecf52e6b7927c9d3f3bce6aa78db16d45480ef.tar.gz"
diff --git a/testing/libretro-vba-next/APKBUILD b/testing/libretro-vba-next/APKBUILD
deleted file mode 100644
index d5cee0e7366..00000000000
--- a/testing/libretro-vba-next/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-vba-next
-pkgver=0_git20200106
-pkgrel=0
-_commit="019132daf41e33a9529036b8728891a221a8ce2e"
-pkgdesc="optimized port of VBA-M to Libretro"
-url="https://github.com/libretro/vba-next"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/vba-next/archive/$_commit.tar.gz"
-builddir="$srcdir/vba-next-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 vba_next_libretro.so "$pkgdir"/usr/lib/libretro/vba_next_libretro.so
-}
-
-sha512sums="7b99342cce7548e537a107c7060209195bb9bee6ba7b0b949a346356206d7152fdd4d61156087f2b6ea8b194d64b6f81e49753a42babf169a00789b220c26600 libretro-vba-next-019132daf41e33a9529036b8728891a221a8ce2e.tar.gz"
diff --git a/testing/libretro-vbam/APKBUILD b/testing/libretro-vbam/APKBUILD
deleted file mode 100644
index 99944523714..00000000000
--- a/testing/libretro-vbam/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-vbam
-pkgver=0_git20200311
-pkgrel=0
-_commit="29dffc0120681853855c2ce57911f9e2d33607dc"
-pkgdesc="a fork of VBA-M with libretro integration"
-url="https://github.com/libretro/vbam-libretro"
-arch="all"
-license="GPL-2.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/vbam-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/vbam-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make -C src/libretro
-}
-
-package() {
- install -Dm644 src/libretro/vbam_libretro.so "$pkgdir"/usr/lib/libretro/vbam_libretro.so
-}
-
-sha512sums="3140e4b635d684f6895a01f8667b707a3af0322c84c7c0f1fc3cd1b75e1e8c4ee2844617bf6f2cd4df65a1b32c1df77524529cf3bf91c2f18e5814174022f9e3 libretro-vbam-29dffc0120681853855c2ce57911f9e2d33607dc.tar.gz"
diff --git a/testing/libretro-vecx/APKBUILD b/testing/libretro-vecx/APKBUILD
deleted file mode 100644
index ec4f5325d05..00000000000
--- a/testing/libretro-vecx/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-vecx
-pkgver=0_git20200109
-pkgrel=0
-_commit="321205271b1c6be5dbdb8d309097a5b5c2032dbd"
-pkgdesc="libretro adaptation of vecx"
-url="https://github.com/libretro/libretro-vecx"
-arch="all"
-license="GPL-3.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/libretro-vecx/archive/$_commit.tar.gz"
-builddir="$srcdir/libretro-vecx-$_commit"
-options="!check" # No tests
-
-build() {
- make -f Makefile.libretro
-}
-
-package() {
- install -Dm644 vecx_libretro.so "$pkgdir"/usr/lib/libretro/vecx_libretro.so
-}
-
-sha512sums="f0c5b326038aa846ed627245cee2b2b80ed5beb663f90bc43abce3e7a9c6a51b7ab10dae7f5ee60eadab46029090bc434db92fe748dbb308cf21a7e986465224 libretro-vecx-321205271b1c6be5dbdb8d309097a5b5c2032dbd.tar.gz"
diff --git a/testing/libretro-virtualjaguar/APKBUILD b/testing/libretro-virtualjaguar/APKBUILD
deleted file mode 100644
index b882e0a649c..00000000000
--- a/testing/libretro-virtualjaguar/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=libretro-virtualjaguar
-pkgver=0_git20200107
-pkgrel=0
-_commit="a162fb75926f5509f187e9bfc69958bced40b0a6"
-pkgdesc="port of Virtual Jaguar to Libretro"
-url="https://github.com/libretro/virtualjaguar-libretro"
-arch="all"
-license="GPL-3.0-only"
-source="$pkgname-$_commit.tar.gz::https://github.com/libretro/virtualjaguar-libretro/archive/$_commit.tar.gz"
-builddir="$srcdir/virtualjaguar-libretro-$_commit"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- install -Dm644 virtualjaguar_libretro.so "$pkgdir"/usr/lib/libretro/virtualjaguar_libretro.so
-}
-
-sha512sums="e5dcd60f594fdc6657da215a7516a273561de7499bf7a248e08560c370c09fa828c2404c9f32760ca40960f046435de6d482b3041f08b119a109a907378add33 libretro-virtualjaguar-a162fb75926f5509f187e9bfc69958bced40b0a6.tar.gz"
diff --git a/testing/libretro-xrick/APKBUILD b/testing/libretro-xrick/APKBUILD
index 80161c50dd2..e602cbae99f 100644
--- a/testing/libretro-xrick/APKBUILD
+++ b/testing/libretro-xrick/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-xrick
-pkgver=0_git20200317
+pkgver=0_git20220331
pkgrel=0
-_commit="f5d7b06a54060ec8a867f666b8e7b379629a7512"
+_commit="10d7318c374de3e0eb056e6c7e823c644a7ce078"
pkgdesc="Rick Dangerous implementation for libretro"
url="https://github.com/libretro/xrick-libretro"
arch="all"
@@ -20,4 +20,6 @@ package() {
install -Dm644 xrick_libretro.so "$pkgdir"/usr/lib/libretro/xrick_libretro.so
}
-sha512sums="6e65e7d87c6af53ea52e8bd22dfe10038f92c1b400e7c6ce3632685d863c740b6f3374a1fcb096f8d1ace3af699b70037005b0d01fe101d6dd8a8968dcb52cc4 libretro-xrick-f5d7b06a54060ec8a867f666b8e7b379629a7512.tar.gz"
+sha512sums="
+f717f88cc57b31d0d7968aeedaa56e1866539046e397dedade38a664af22948b9a698abba2117c56eb7c0f5e6d7299223e03ed93b76c0b2b124e962bc3238d40 libretro-xrick-10d7318c374de3e0eb056e6c7e823c644a7ce078.tar.gz
+"
diff --git a/testing/libretro-yabause/APKBUILD b/testing/libretro-yabause/APKBUILD
index b5dd6eba498..95296be2975 100644
--- a/testing/libretro-yabause/APKBUILD
+++ b/testing/libretro-yabause/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=libretro-yabause
-pkgver=0_git20200218
+pkgver=0_git20210411
pkgrel=0
-_commit="9be109f9032afa793d2a79b837c4cc232cea5929"
+_commit="4d85b6e793030c77ae6b64fd7c99041c935b54ac"
pkgdesc="Yabause/YabaSanshiro/Kronos ports to libretro"
url="https://github.com/libretro/yabause"
arch="x86 x86_64" # uses SSE compiler flags
@@ -21,4 +21,4 @@ package() {
"$pkgdir"/usr/lib/libretro/yabause_libretro.so
}
-sha512sums="829d48530a17f3d6e43fd08c0f22f89eda35806613745fa4076cff2d05bbb1c71e0dbf4d5efbf38c5b2aa12ce3489f581588ace8da8f399d7d7bd880f27ad0e4 libretro-yabause-9be109f9032afa793d2a79b837c4cc232cea5929.tar.gz"
+sha512sums="c941322836b3239874209120e0df1618af875b54cb4ff7a874a4fbccfbb0f8e0fabc0829b2c1a982cfe906700c2e6bbe2cd6a65ac748218bbbe9b5b10d69763f libretro-yabause-4d85b6e793030c77ae6b64fd7c99041c935b54ac.tar.gz"
diff --git a/testing/librewolf/APKBUILD b/testing/librewolf/APKBUILD
new file mode 100644
index 00000000000..49aedc852aa
--- /dev/null
+++ b/testing/librewolf/APKBUILD
@@ -0,0 +1,749 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Contributor: Sertonix <sertonix@posteo.net>
+# Maintainer: Sertonix <sertonix@posteo.net>
+_pkgname=Librewolf
+pkgname=librewolf
+pkgver=125.0.1_p1
+_releasedate=2024-04-20
+pkgrel=0
+pkgdesc="Community-maintained fork of Firefox, focused on privacy, security and freedom."
+url="https://librewolf.net/"
+# s390x blocked by lld
+# armhf: https://bugzilla.mozilla.org/show_bug.cgi?id=1680495
+# riscv64: vpx symbol is missing #15412
+arch="x86_64 armv7 aarch64 x86 ppc64le"
+license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0"
+# ffmpeg 6 -> 112
+depends="
+ ffmpeg-libavcodec
+ mesa-egl
+ mesa-gl
+ pciutils-libs
+ "
+_llvmver=17
+makedepends="
+ alsa-lib-dev
+ automake
+ bsd-compat-headers
+ cargo
+ cbindgen
+ clang$_llvmver
+ clang$_llvmver-libclang
+ compiler-rt
+ dbus
+ dbus-glib-dev
+ gettext
+ gtk+3.0-dev
+ hunspell-dev
+ icu-dev
+ libevent-dev
+ libffi-dev
+ libjpeg-turbo-dev
+ libnotify-dev
+ libogg-dev
+ libtheora-dev
+ libtool
+ libvorbis-dev
+ libvpx-dev
+ libwebp-dev
+ libxcomposite-dev
+ libxt-dev
+ lld
+ llvm$_llvmver-dev
+ m4
+ mesa-dev
+ mesa-dri-gallium
+ nasm
+ nodejs
+ nspr-dev
+ nss-dev
+ patchelf
+ pciutils
+ pipewire-dev
+ pulseaudio-dev
+ py3-zstandard
+ python3
+ scudo-malloc
+ sed
+ wasi-sdk
+ wireless-tools-dev
+ xvfb-run
+ zip
+ "
+subpackages="$pkgname-intl"
+case "$CARCH" in
+riscv64) ;;
+*) subpackages="$subpackages $pkgname-dbg" ;;
+esac
+
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/${pkgver/_p/-}/librewolf-${pkgver/_p/-}.source.tar.gz
+ disable-moz-stackwalk.patch
+ fix-fortify-system-wrappers.patch
+ fix-rust-target.patch
+ fix-webrtc-glibcisms.patch
+ force-can-use-pack-relative-relocs.patch
+ icu74.patch
+ lfs64.patch
+ no-ccache-stats.patch
+ ppc-musttail.patch
+ python-deps.patch
+ rust-lto-thin.patch
+ riscv64-no-lto.patch
+ sandbox-fork.patch
+ sandbox-largefile.patch
+ sandbox-sched_setscheduler.patch
+ sqlite-ppc.patch
+
+ librewolf.desktop
+ distribution.ini
+ vendor-prefs.js
+ "
+# tests are hard to run
+options="!check"
+
+builddir="$srcdir"/$pkgname-${pkgver/_p/-}
+_mozappdir=/usr/lib/$pkgname
+
+# help our shared-object scanner to find the libs
+ldpath="$_mozappdir"
+sonameprefix="$pkgname:"
+
+# secfixes:
+# 103.0-r0:
+# - CVE-2022-2505
+# - CVE-2022-36314
+# - CVE-2022-36315
+# - CVE-2022-36316
+# - CVE-2022-36317
+# - CVE-2022-36318
+# - CVE-2022-36319
+# - CVE-2022-36320
+# 102.0-r0:
+# - CVE-2022-2200
+# - CVE-2022-34468
+# - CVE-2022-34469
+# - CVE-2022-34470
+# - CVE-2022-34471
+# - CVE-2022-34472
+# - CVE-2022-34473
+# - CVE-2022-34474
+# - CVE-2022-34475
+# - CVE-2022-34476
+# - CVE-2022-34477
+# - CVE-2022-34478
+# - CVE-2022-34479
+# - CVE-2022-34480
+# - CVE-2022-34481
+# - CVE-2022-34482
+# - CVE-2022-34483
+# - CVE-2022-34484
+# - CVE-2022-34485
+# 101.0-r0:
+# - CVE-2022-1919
+# - CVE-2022-31736
+# - CVE-2022-31737
+# - CVE-2022-31738
+# - CVE-2022-31739
+# - CVE-2022-31740
+# - CVE-2022-31741
+# - CVE-2022-31742
+# - CVE-2022-31743
+# - CVE-2022-31744
+# - CVE-2022-31745
+# - CVE-2022-31747
+# - CVE-2022-31748
+# 100.0.2-r0:
+# - CVE-2022-1529
+# - CVE-2022-1802
+# 100.0-r0:
+# - CVE-2022-29909
+# - CVE-2022-29910
+# - CVE-2022-29911
+# - CVE-2022-29912
+# - CVE-2022-29914
+# - CVE-2022-29915
+# - CVE-2022-29916
+# - CVE-2022-29917
+# - CVE-2022-29918
+# 99.0-r0:
+# - CVE-2022-1097
+# - CVE-2022-24713
+# - CVE-2022-28281
+# - CVE-2022-28282
+# - CVE-2022-28283
+# - CVE-2022-28284
+# - CVE-2022-28285
+# - CVE-2022-28286
+# - CVE-2022-28287
+# - CVE-2022-28288
+# - CVE-2022-28289
+# 98.0-r0:
+# - CVE-2022-0843
+# - CVE-2022-26381
+# - CVE-2022-26382
+# - CVE-2022-26383
+# - CVE-2022-26384
+# - CVE-2022-26385
+# - CVE-2022-26387
+# 97.0.2-r0:
+# - CVE-2022-26485
+# - CVE-2022-26486
+# 97.0-r0:
+# - CVE-2021-4140
+# - CVE-2022-0511
+# - CVE-2022-22736
+# - CVE-2022-22737
+# - CVE-2022-22738
+# - CVE-2022-22739
+# - CVE-2022-22740
+# - CVE-2022-22741
+# - CVE-2022-22742
+# - CVE-2022-22743
+# - CVE-2022-22744
+# - CVE-2022-22745
+# - CVE-2022-22746
+# - CVE-2022-22747
+# - CVE-2022-22748
+# - CVE-2022-22749
+# - CVE-2022-22750
+# - CVE-2022-22751
+# - CVE-2022-22752
+# - CVE-2022-22753
+# - CVE-2022-22754
+# - CVE-2022-22755
+# - CVE-2022-22756
+# - CVE-2022-22757
+# - CVE-2022-22758
+# - CVE-2022-22759
+# - CVE-2022-22760
+# - CVE-2022-22761
+# - CVE-2022-22762
+# - CVE-2022-22764
+# 95.0-r0:
+# - CVE-2021-43536
+# - CVE-2021-43537
+# - CVE-2021-43538
+# - CVE-2021-43539
+# - CVE-2021-43540
+# - CVE-2021-43541
+# - CVE-2021-43542
+# - CVE-2021-43543
+# - CVE-2021-43544
+# - CVE-2021-43545
+# - CVE-2021-43546
+# 94.0-r0:
+# - CVE-2021-38503
+# - CVE-2021-38504
+# - CVE-2021-38505
+# - CVE-2021-38506
+# - CVE-2021-38507
+# - CVE-2021-38508
+# - CVE-2021-38509
+# - CVE-2021-38510
+# 93.0-r0:
+# - CVE-2021-32810
+# - CVE-2021-38496
+# - CVE-2021-38497
+# - CVE-2021-38498
+# - CVE-2021-38499
+# - CVE-2021-38500
+# - CVE-2021-38501
+# 92.0.1-r0:
+# - CVE-2021-29980
+# - CVE-2021-29981
+# - CVE-2021-29982
+# - CVE-2021-29983
+# - CVE-2021-29984
+# - CVE-2021-29985
+# - CVE-2021-29986
+# - CVE-2021-29987
+# - CVE-2021-29988
+# - CVE-2021-29989
+# - CVE-2021-29990
+# - CVE-2021-29991
+# - CVE-2021-29993
+# - CVE-2021-38491
+# - CVE-2021-38492
+# - CVE-2021-38493
+# - CVE-2021-38494
+# 90.0-r0:
+# - CVE-2021-29970
+# - CVE-2021-29972
+# - CVE-2021-29974
+# - CVE-2021-29975
+# - CVE-2021-29976
+# - CVE-2021-29977
+# - CVE-2021-30547
+# 89.0-r0:
+# - CVE-2021-29959
+# - CVE-2021-29960
+# - CVE-2021-29961
+# - CVE-2021-29962
+# - CVE-2021-29963
+# - CVE-2021-29965
+# - CVE-2021-29966
+# - CVE-2021-29967
+# 88.0.1-r0:
+# - CVE-2021-29952
+# 88.0-r0:
+# - CVE-2021-23994
+# - CVE-2021-23995
+# - CVE-2021-23996
+# - CVE-2021-23997
+# - CVE-2021-23998
+# - CVE-2021-23999
+# - CVE-2021-24000
+# - CVE-2021-24001
+# - CVE-2021-24002
+# - CVE-2021-29944
+# - CVE-2021-29945
+# - CVE-2021-29946
+# - CVE-2021-29947
+# 87.0-r0:
+# - CVE-2021-23968
+# - CVE-2021-23969
+# - CVE-2021-23970
+# - CVE-2021-23971
+# - CVE-2021-23972
+# - CVE-2021-23973
+# - CVE-2021-23974
+# - CVE-2021-23975
+# - CVE-2021-23976
+# - CVE-2021-23977
+# - CVE-2021-23978
+# - CVE-2021-23979
+# - CVE-2021-23981
+# - CVE-2021-23982
+# - CVE-2021-23983
+# - CVE-2021-23984
+# - CVE-2021-23985
+# - CVE-2021-23986
+# - CVE-2021-23987
+# - CVE-2021-23988
+# 85.0-r0:
+# - CVE-2021-23954
+# - CVE-2021-23955
+# - CVE-2021-23956
+# - CVE-2021-23957
+# - CVE-2021-23958
+# - CVE-2021-23959
+# - CVE-2021-23960
+# - CVE-2021-23961
+# - CVE-2021-23962
+# - CVE-2021-23963
+# - CVE-2021-23964
+# - CVE-2021-23965
+# 84.0.2-r0:
+# - CVE-2020-16044
+# 84.0.1-r0:
+# - CVE-2020-16042
+# - CVE-2020-26971
+# - CVE-2020-26972
+# - CVE-2020-26973
+# - CVE-2020-26974
+# - CVE-2020-26975
+# - CVE-2020-26976
+# - CVE-2020-26977
+# - CVE-2020-26978
+# - CVE-2020-26979
+# - CVE-2020-35111
+# - CVE-2020-35112
+# - CVE-2020-35113
+# - CVE-2020-35114
+# 83.0-r0:
+# - CVE-2020-15999
+# - CVE-2020-16012
+# - CVE-2020-26952
+# - CVE-2020-26953
+# - CVE-2020-26954
+# - CVE-2020-26955
+# - CVE-2020-26956
+# - CVE-2020-26957
+# - CVE-2020-26958
+# - CVE-2020-26959
+# - CVE-2020-26960
+# - CVE-2020-26961
+# - CVE-2020-26962
+# - CVE-2020-26963
+# - CVE-2020-26964
+# - CVE-2020-26965
+# - CVE-2020-26966
+# - CVE-2020-26967
+# - CVE-2020-26968
+# - CVE-2020-26969
+# 82.0.3-r0:
+# - CVE-2020-26950
+# 82.0-r0:
+# - CVE-2020-15254
+# - CVE-2020-15680
+# - CVE-2020-15681
+# - CVE-2020-15682
+# - CVE-2020-15683
+# - CVE-2020-15684
+# - CVE-2020-15969
+# 81.0-r0:
+# - CVE-2020-15673
+# - CVE-2020-15674
+# - CVE-2020-15675
+# - CVE-2020-15676
+# - CVE-2020-15677
+# - CVE-2020-15678
+# 80.0-r0:
+# - CVE-2020-6829
+# - CVE-2020-12400
+# - CVE-2020-12401
+# - CVE-2020-15663
+# - CVE-2020-15664
+# - CVE-2020-15665
+# - CVE-2020-15666
+# - CVE-2020-15667
+# - CVE-2020-15668
+# - CVE-2020-15670
+# 79.0-r0:
+# - CVE-2020-6463
+# - CVE-2020-6514
+# - CVE-2020-15652
+# - CVE-2020-15653
+# - CVE-2020-15654
+# - CVE-2020-15655
+# - CVE-2020-15656
+# - CVE-2020-15657
+# - CVE-2020-15658
+# - CVE-2020-15659
+# 78.0-r0:
+# - CVE-2020-12415
+# - CVE-2020-12416
+# - CVE-2020-12417
+# - CVE-2020-12418
+# - CVE-2020-12419
+# - CVE-2020-12420
+# - CVE-2020-12402
+# - CVE-2020-12421
+# - CVE-2020-12422
+# - CVE-2020-12423
+# - CVE-2020-12424
+# - CVE-2020-12425
+# - CVE-2020-12426
+# 77.0-r0:
+# - CVE-2020-12399
+# - CVE-2020-12405
+# - CVE-2020-12406
+# - CVE-2020-12407
+# - CVE-2020-12408
+# - CVE-2020-12409
+# - CVE-2020-12411
+# 76.0-r0:
+# - CVE-2020-6831
+# - CVE-2020-12387
+# - CVE-2020-12388
+# - CVE-2020-12389
+# - CVE-2020-12390
+# - CVE-2020-12391
+# - CVE-2020-12392
+# - CVE-2020-12393
+# - CVE-2020-12394
+# - CVE-2020-12395
+# - CVE-2020-12396
+# 75.0-r0:
+# - CVE-2020-6821
+# - CVE-2020-6822
+# - CVE-2020-6823
+# - CVE-2020-6824
+# - CVE-2020-6825
+# - CVE-2020-6826
+# 74.0.1-r0:
+# - CVE-2020-6819
+# - CVE-2020-6820
+# 74.0-r0:
+# - CVE-2020-6805
+# - CVE-2020-6806
+# - CVE-2020-6807
+# - CVE-2020-6808
+# - CVE-2020-6809
+# - CVE-2020-6810
+# - CVE-2020-6811
+# - CVE-2019-20503
+# - CVE-2020-6812
+# - CVE-2020-6813
+# - CVE-2020-6814
+# - CVE-2020-6815
+# 71.0.1-r0:
+# - CVE-2019-17016
+# - CVE-2019-17017
+# - CVE-2019-17020
+# - CVE-2019-17022
+# - CVE-2019-17023
+# - CVE-2019-17024
+# - CVE-2019-17025
+# - CVE-2019-17026
+# 70.0-r0:
+# - CVE-2018-6156
+# - CVE-2019-15903
+# - CVE-2019-11757
+# - CVE-2019-11759
+# - CVE-2019-11760
+# - CVE-2019-11761
+# - CVE-2019-11762
+# - CVE-2019-11763
+# - CVE-2019-11764
+# - CVE-2019-11765
+# - CVE-2019-17000
+# - CVE-2019-17001
+# - CVE-2019-17002
+# 68.0.2-r0:
+# - CVE-2019-11733
+
+# we need this because cargo verifies checksums of all files in vendor
+# crates when it builds and gives us no way to override or update the
+# file sanely... so just clear out the file list
+_clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
+}
+
+prepare() {
+ default_prepare
+
+ export CFLAGS="${CFLAGS/-fstack-clash-protection/} -g0 -O2"
+ export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/} -g0 -O2 -Wno-deprecated-builtins -Wno-deprecated-declarations"
+
+ _clear_vendor_checksums audio_thread_priority
+
+ cat > base-mozconfig <<-EOF
+ ac_add_options --with-app-name=$pkgname
+ export MOZ_APP_REMOTINGNAME=$_pkgname
+ ac_add_options --with-branding=browser/branding/librewolf
+
+ # disable unwanted things
+ ac_add_options --disable-bootstrap
+ ac_add_options --disable-cargo-incremental
+ ac_add_options --disable-crashreporter
+ ac_add_options --disable-debug
+ ac_add_options --disable-debug-symbols
+ ac_add_options --disable-install-strip
+ ac_add_options --disable-jemalloc
+ ac_add_options --disable-strip
+ ac_add_options --disable-tests
+ ac_add_options --disable-updater
+ mk_add_options MOZ_CRASHREPORTER=0
+ mk_add_options MOZ_DATA_REPORTING=0
+ mk_add_options MOZ_SERVICES_HEALTHREPORT=0
+ mk_add_options MOZ_TELEMETRY_REPORTING=0
+
+ # features
+ ac_add_options --enable-alsa
+ ac_add_options --enable-dbus
+ ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
+ ac_add_options --enable-ffmpeg
+ ac_add_options --enable-hardening
+ ac_add_options --enable-linker=lld
+ ac_add_options --enable-necko-wifi
+ ac_add_options --enable-optimize="$CFLAGS"
+ ac_add_options --enable-pulseaudio
+ ac_add_options --enable-release
+ ac_add_options --enable-update-channel=release
+
+ # system libs
+ ac_add_options --enable-system-pixman
+ ac_add_options --with-system-ffi
+ ac_add_options --with-system-icu
+ ac_add_options --with-system-jpeg
+ ac_add_options --with-system-libevent
+ ac_add_options --with-system-libvpx
+ ac_add_options --with-system-nspr
+ ac_add_options --with-system-nss
+ ac_add_options --with-system-png
+ ac_add_options --with-system-webp
+ ac_add_options --with-system-zlib
+
+ # misc
+ ac_add_options --allow-addon-sideload
+ ac_add_options --prefix=/usr
+ ac_add_options --with-distribution-id=org.alpinelinux
+ ac_add_options --with-libclang-path=/usr/lib
+ ac_add_options --with-unsigned-addon-scopes=app,system
+ ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
+ ac_add_options --host=$CHOST
+ ac_add_options --target=$CTARGET
+
+ # objdir
+ mk_add_options MOZ_OBJDIR="$builddir/obj"
+
+ mk_add_options RUSTFLAGS="$RUSTFLAGS"
+ EOF
+}
+
+build() {
+ export MOZ_BUILD_DATE="$(date ${SOURCE_DATE_EPOCH:+ -d@${SOURCE_DATE_EPOCH}} "+%Y%m%d%H%M%S")"
+
+ # for lto
+ ulimit -n 4096
+
+ # can't be set here and fail
+ unset RUSTFLAGS
+
+ local thinlto_jobs=${JOBS:-1}
+ local link_threads=${JOBS:-1}
+
+ case "$CARCH" in
+ # on this platform, lld seems to not utilise >1 threads for thinlto for some reason.
+ # at the same time, having more than 8 also crashes lld for librewolf buildsystems (why?).
+ aarch64)
+ if [ $thinlto_jobs -gt 8 ]; then
+ thinlto_jobs=8
+ fi
+ ;;
+ esac
+
+ case "$CARCH" in
+ arm*|x86)
+ link_threads=1
+ ;;
+ esac
+
+ export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs -Wl,--threads=$link_threads"
+
+ export SHELL=/bin/sh
+ export USE_SHORT_LIBNAME=1
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
+ export MOZBUILD_STATE_PATH="$srcdir"/mozbuild
+ # disable desktop notifications
+ export MOZ_NOSPAM=1
+ # Find our triplet JSON
+ export RUST_TARGET="$CTARGET"
+
+ # has to be same version or older than lld
+ export CC="clang-$_llvmver"
+ export CXX="clang++-$_llvmver"
+
+ # set rpath so linker finds the libs
+ export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir"
+
+ # let librewolf do this itself.
+ unset CARGO_PROFILE_RELEASE_OPT_LEVEL
+ unset CARGO_PROFILE_RELEASE_LTO
+
+ case "$CARCH" in
+ aarch64|x86_64|ppc64le)
+ msg "building instrumented $pkgname"
+ cat > mozconfig base-mozconfig - <<-EOF
+ ac_add_options --enable-profile-generate=cross
+ EOF
+ ./mach build
+ ./mach package
+
+ msg "profiling $pkgname"
+
+ LLVM_PROFDATA=llvm-profdata \
+ JARLOG_FILE="$PWD"/jarlog \
+ GDK_BACKEND=x11 \
+ LD_LIBRARY_PATH="$PWD"/obj/dist/$pkgname \
+ XDG_RUNTIME_DIR="$(mktemp -d "$builddir/pgo-runtime-XXXXXX")" \
+ MOZ_ENABLE_WAYLAND=0 \
+ xvfb-run -a -s "-screen 0 1920x1080x24 -nolisten local" \
+ dbus-run-session -- \
+ ./mach python build/pgo/profileserver.py
+
+ test -s merged.profdata
+ test -s jarlog
+
+ ./mach clobber
+
+ msg "building optimised $pkgname"
+ cat > mozconfig base-mozconfig - <<-EOF
+ ac_add_options --enable-lto=cross
+ ac_add_options --enable-profile-use=cross
+ ac_add_options --with-pgo-profile-path="$PWD"/merged.profdata
+ ac_add_options --with-pgo-jarlog="$PWD"/jarlog
+ EOF
+ ./mach build
+ ;;
+ armv7|x86|riscv64)
+ # no pgo here as it uses too much memory/broken on riscv
+ msg "building regular $pkgname"
+ cat > mozconfig base-mozconfig - <<-EOF
+ ac_add_options --disable-profiling
+ EOF
+ ./mach build
+ ;;
+ *)
+ msg "implement build for $CARCH"
+ exit 1
+ esac
+}
+
+package() {
+ DESTDIR="$pkgdir" ./mach install
+
+ local _png
+ for _png in ./browser/branding/librewolf/default*.png; do
+ local i=${_png%.png}
+ i=${i##*/default}
+ install -d "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/
+ ln -s "$_mozappdir"/browser/chrome/icons/default/default"$i".png \
+ "$pkgdir"/usr/share/icons/hicolor/"$i"x"$i"/apps/$pkgname.png
+ done
+
+ case "$CARCH" in
+ x86|arm*) ;;
+ *) patchelf --add-needed libscudo.so "$pkgdir"/usr/lib/$pkgname/$pkgname ;;
+ esac
+
+ install -Dm644 browser/branding/librewolf/content/about-logo.png \
+ "$pkgdir"/usr/share/icons/hicolor/192x192/apps/$pkgname.png
+ install -Dm644 browser/branding/librewolf/content/about-logo@2x.png \
+ "$pkgdir"/usr/share/icons/hicolor/384x384/apps/$pkgname.png
+ install -Dm644 browser/branding/librewolf/content/about-logo.svg \
+ "$pkgdir"/usr/share/icons/hicolor/scalable/apps/$pkgname.svg
+
+ install -Dm644 "$srcdir"/librewolf.desktop \
+ "$pkgdir"/usr/share/applications/$pkgname.desktop
+
+ install -Dm644 "$srcdir"/distribution.ini \
+ "$pkgdir"/$_mozappdir/distribution/distribution.ini
+
+ # install our vendor prefs
+ install -Dm644 "$srcdir"/vendor-prefs.js \
+ "$pkgdir"/$_mozappdir/browser/defaults/preferences/vendor.js
+
+ # Replace duplicate binary with wrapper
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
+ install -Dm755 /dev/stdin "$pkgdir"/usr/bin/$pkgname <<- EOF
+ #!/bin/sh
+ exec $_mozappdir/$pkgname "\$@"
+ EOF
+ rm "$pkgdir"/$_mozappdir/$pkgname-bin
+ ln -sfv /usr/bin/$pkgname "$pkgdir"/$_mozappdir/$pkgname-bin
+}
+
+intl() {
+ pkgdesc="$pkgname - International ICU data"
+ depends="icu-data-full"
+ install_if="$pkgname=$pkgver-r$pkgrel icu"
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="
+55aa0d6c51ca1b65e57cebcb4fd65187d35cc0d16449617eba8118be871feb585ed725e723e9ea8587d08338cd37e19705cf01e07c3c1404ab1fc361867a150c librewolf-125.0.1_p1.tar.gz
+eb49b791280a8d765e6b056816ad6d7ec20a3b13723ebe648a8ecd2c086a5bc83277a3b4c127a470e7bb7105cfa4ed7611c19ac683545140190cafaa880ad515 disable-moz-stackwalk.patch
+19eea840aa9c1c21e7bd1f832ec078989fe6f08fca40baa271be7e74f1cffeb5ab8d3218a93e664b8d90a41506dede524e2a5174cd47580866109bc6711ea969 fix-fortify-system-wrappers.patch
+cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch
+305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch
+b7a2beef126569d71242198f2503bb6a32acd1ea89080ef7bed6ba0f0d10819282c2c346c6f729d81cd90e328e607b88acaac8785ed057cc8cb562e315890334 force-can-use-pack-relative-relocs.patch
+0f6c1f4b32b2f501c03db14b67a94419acf1ac58a5ea9efeacd47dc85d73194e479efcf056949c74a0ef9deebc2ba178564bec45dba871fabfc5c909123e003d icu74.patch
+5fa9382c692e4bd6a2634308f24a6526fd12a60a2563d2090056d43a60505df3ec9881bbf54562e69394467529b3b0dc45955afca46ed329af03cea074fff070 lfs64.patch
+c0437a6753f3f350968fa12d250efdfe1bea77baf0e4c06b072b5cc9e78c774dbf4506bc536337030d349fb3ba4460097b75b0c7c5b8fb2d39d8b0a392948936 no-ccache-stats.patch
+2d8dff86212d6d2a904cbb5a5a1d6c17b89adc929fc6a3f4c6cb669f5e83ecddff5a799225319ba445a187b04d111251af75dd3ce8a039164bc14d2a432a2a04 ppc-musttail.patch
+4de65266f5fc1c5bf1d7cd00a0e4728a1ec96b7680b5ea72d6e9ed463b7a0bba11792b3411d25ef1e26f62408eb7f8b06dc62209dbb0454c779d8858d8d59725 python-deps.patch
+1c6918dd6655d3a1251bfd4af2e1c561cbb00d540a883b4c1ebf7f5de530d754d9ac07b4b5f56cdab6c511d25c8910ec94043f5733e97501a67abffe1bafaeb1 rust-lto-thin.patch
+b12dbff6513ac8c231d91c257a9accecc034d9ea9c31d99ca0454334ccf80fe7b50d6a356182dc46a9f25064366ea9a177f463cb2544b1cf5368ee6bd71bc095 riscv64-no-lto.patch
+2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch
+b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch
+f8c3555ef6207933cbffbf4fc101a9b4c0d2990c0063162f0f0bde70ef0b46f86bfac42e7110695183424a87948de593f3927b2d8509ede3e4fc7bd8a1fad1ce sandbox-sched_setscheduler.patch
+67bc0be3da973e6859256bf9be4df7100837430e6076fc0bd623f504c35e02e6c191e9c5a3a1d202e5ad4d89f874f254a09e164e39c7bfd97bbc8d4c8d0632a5 sqlite-ppc.patch
+73e9c51977d1a675c38fafeaa7478499d002d0dbfc8741ed7d9810ac39fb190870bd3295b86f7c9f7e8191f0fda7b7d6454d0a4cc1d7c61f3810a4d3a165180f librewolf.desktop
+b6ceaf541ecb16a91398e1f629c7479e37c42c467e78980895ade8fe16feeb307ead50c839bac72f18bf74b7be46382c431a1361b3194cf3dffc6d58d67f82e5 distribution.ini
+bd20f3a9606890d239b9a7fb66f75c7aa860622005613186e3dda8804fd9d8a89a00ace19b34c198e6bb5620b1c5ae36edc82a2edf437251df2dcbca67180ce7 vendor-prefs.js
+"
diff --git a/testing/librewolf/disable-moz-stackwalk.patch b/testing/librewolf/disable-moz-stackwalk.patch
new file mode 100644
index 00000000000..54990d799fc
--- /dev/null
+++ b/testing/librewolf/disable-moz-stackwalk.patch
@@ -0,0 +1,28 @@
+upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1882329
+diff --git a/mozglue/misc/StackWalk.cpp b/mozglue/misc/StackWalk.cpp
+index 2fefc5b..57c56e6 100644
+--- a/mozglue/misc/StackWalk.cpp
++++ b/mozglue/misc/StackWalk.cpp
+@@ -46,5 +46,12 @@ using namespace mozilla;
+
++#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
++# define HAVE___LIBC_STACK_END 1
++#else
++# define HAVE___LIBC_STACK_END 0
++#endif
++
+ #if (defined(linux) && \
+ ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
+- defined(HAVE__UNWIND_BACKTRACE)))
++ defined(HAVE__UNWIND_BACKTRACE)) && \
++ (HAVE___LIBC_STACK_END || ANDROID))
+ # define MOZ_STACKWALK_SUPPORTS_LINUX 1
+@@ -54,8 +61,2 @@ using namespace mozilla;
+
+-#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
+-# define HAVE___LIBC_STACK_END 1
+-#else
+-# define HAVE___LIBC_STACK_END 0
+-#endif
+-
+ #if HAVE___LIBC_STACK_END
diff --git a/testing/librewolf/distribution.ini b/testing/librewolf/distribution.ini
new file mode 100644
index 00000000000..89237980d8e
--- /dev/null
+++ b/testing/librewolf/distribution.ini
@@ -0,0 +1,9 @@
+[Global]
+id=alpinelinux
+version=1.0
+about=Librewolf
+
+[Preferences]
+app.distributor=alpinelinux
+app.distributor.channel=librewolf
+app.partner.librewolf=librewolf
diff --git a/testing/librewolf/fix-fortify-system-wrappers.patch b/testing/librewolf/fix-fortify-system-wrappers.patch
new file mode 100644
index 00000000000..a1a89c6520b
--- /dev/null
+++ b/testing/librewolf/fix-fortify-system-wrappers.patch
@@ -0,0 +1,11 @@
+The wrapper features.h gets pulled in by system headers causing thigns to
+break. We work around it by simply not wrap features.h
+
+diff --git a/config/system-headers.mozbuild b/config/system-headers.mozbuild
+index 07d48e7..d2ce2b2 100644
+--- a/config/system-headers.mozbuild
++++ b/config/system-headers.mozbuild
+@@ -227,3 +227,2 @@ system_headers = [
+ "fcntl.h",
+- "features.h",
+ "fenv.h",
diff --git a/testing/librewolf/fix-rust-target.patch b/testing/librewolf/fix-rust-target.patch
new file mode 100644
index 00000000000..9342063c33a
--- /dev/null
+++ b/testing/librewolf/fix-rust-target.patch
@@ -0,0 +1,31 @@
+Allow us to just set RUST_TARGEt ourselves instead of hacking around in mozilla's
+weird custom build system...
+
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -225,7 +225,9 @@
+ data.setdefault(key, []).append(namespace(rust_target=t, target=info))
+ return data
+
+-
++@imports('os')
++@imports(_from='mozbuild.util', _import='ensure_unicode')
++@imports(_from='mozbuild.util', _import='system_encoding')
+ def detect_rustc_target(
+ host_or_target, compiler_info, arm_target, rust_supported_targets
+ ):
+@@ -340,13 +342,13 @@
+
+ return None
+
+- rustc_target = find_candidate(candidates)
++ rustc_target = os.environ['RUST_TARGET']
+
+ if rustc_target is None:
+ die("Don't know how to translate {} for rustc".format(host_or_target.alias))
+
+- return rustc_target
++ return ensure_unicode(rustc_target, system_encoding)
+
+
+ @imports('os')
diff --git a/testing/librewolf/fix-webrtc-glibcisms.patch b/testing/librewolf/fix-webrtc-glibcisms.patch
new file mode 100644
index 00000000000..4f9043b58e1
--- /dev/null
+++ b/testing/librewolf/fix-webrtc-glibcisms.patch
@@ -0,0 +1,20 @@
+--- a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
++++ b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
+@@ -18,7 +18,7 @@
+ #define WEBRTC_GLIBC_PREREQ(a, b) 0
+ #endif
+
+-#if WEBRTC_GLIBC_PREREQ(2, 16)
++#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
+ #include <sys/auxv.h>
+ #else
+ #include <errno.h>
+@@ -40,7 +40,7 @@
+ int architecture = 0;
+ uint64_t hwcap = 0;
+ const char* platform = NULL;
+-#if WEBRTC_GLIBC_PREREQ(2, 16)
++#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
+ hwcap = getauxval(AT_HWCAP);
+ platform = (const char*)getauxval(AT_PLATFORM);
+ #else
diff --git a/testing/librewolf/force-can-use-pack-relative-relocs.patch b/testing/librewolf/force-can-use-pack-relative-relocs.patch
new file mode 100644
index 00000000000..b1161080d8d
--- /dev/null
+++ b/testing/librewolf/force-can-use-pack-relative-relocs.patch
@@ -0,0 +1,11 @@
+--- a/toolkit/moz.configure
++++ b/toolkit/moz.configure
+@@ -1517,7 +1517,7 @@ with only_when("--enable-compile-environ
+ # packed relative relocations rather than elfhack.
+ if android_version:
+ return android_version >= 30
+- return have_arc4random
++ return have_arc4random or True
+
+ @depends(
+ c_compiler,
diff --git a/testing/librewolf/icu74.patch b/testing/librewolf/icu74.patch
new file mode 100644
index 00000000000..1c2e3dbbcfb
--- /dev/null
+++ b/testing/librewolf/icu74.patch
@@ -0,0 +1,37 @@
+https://bugzilla.mozilla.org/show_bug.cgi?id=1862601
+
+# HG changeset patch
+# User André Bargull <andre.bargull@gmail.com>
+# Date 1697435923 -7200
+# Node ID d5f3b0c4f08a426ce00a153c04e177eecb6820e2
+# Parent c63994f8259efdf6e745c960aa9e1409d5477049
+Bug xxx - Part 12: Add new line break classes. r?
+
+diff --git a/intl/lwbrk/LineBreaker.cpp b/intl/lwbrk/LineBreaker.cpp
+--- a/intl/lwbrk/LineBreaker.cpp
++++ b/intl/lwbrk/LineBreaker.cpp
+@@ -443,17 +443,23 @@ static int8_t GetClass(uint32_t u, LineB
+ /* JT = 34, [JT] */ CLASS_CHARACTER,
+ /* JV = 35, [JV] */ CLASS_CHARACTER,
+ /* CLOSE_PARENTHESIS = 36, [CP] */ CLASS_CLOSE_LIKE_CHARACTER,
+ /* CONDITIONAL_JAPANESE_STARTER = 37, [CJ] */ CLASS_CLOSE,
+ /* HEBREW_LETTER = 38, [HL] */ CLASS_CHARACTER,
+ /* REGIONAL_INDICATOR = 39, [RI] */ CLASS_CHARACTER,
+ /* E_BASE = 40, [EB] */ CLASS_BREAKABLE,
+ /* E_MODIFIER = 41, [EM] */ CLASS_CHARACTER,
+- /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER};
++ /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER,
++ /* AKSARA = 43, [AK] */ CLASS_CHARACTER,
++ /* AKSARA_PREBASE = 44, [AP] */ CLASS_CHARACTER,
++ /* AKSARA_START = 45, [AS] */ CLASS_CHARACTER,
++ /* VIRAMA_FINAL = 46, [VF] */ CLASS_CHARACTER,
++ /* VIRAMA = 47, [VI] */ CLASS_CHARACTER,
++ };
+
+ static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass),
+ "Gecko vs ICU LineBreak class mismatch");
+
+ auto cls = GetLineBreakClass(u);
+ MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass));
+
+ // Overrides based on rules for the different line-break values given in
diff --git a/testing/librewolf/lfs64.patch b/testing/librewolf/lfs64.patch
new file mode 100644
index 00000000000..bae8b5d16d2
--- /dev/null
+++ b/testing/librewolf/lfs64.patch
@@ -0,0 +1,35 @@
+force stat() instead of stat64() on 32-bit
+--
+--- a/xpcom/io/nsLocalFileUnix.h
++++ b/xpcom/io/nsLocalFileUnix.h
+@@ -21,7 +21,7 @@
+
+ // stat64 and lstat64 are deprecated on OS X. Normal stat and lstat are
+ // 64-bit by default on OS X 10.6+.
+-#if defined(HAVE_STAT64) && defined(HAVE_LSTAT64) && !defined(XP_DARWIN)
++#if 0 && defined(HAVE_STAT64) && defined(HAVE_LSTAT64) && !defined(XP_DARWIN)
+ # if defined(AIX)
+ # if defined STAT
+ # undef STAT
+--- a/mozglue/baseprofiler/core/shared-libraries-linux.cc
++++ b/mozglue/baseprofiler/core/shared-libraries-linux.cc
+@@ -178,7 +178,7 @@
+ return false;
+ }
+
+-#if defined(__x86_64__) || defined(__aarch64__) || \
++#if 1 || defined(__x86_64__) || defined(__aarch64__) || \
+ (defined(__mips__) && _MIPS_SIM == _ABI64) || \
+ !(defined(GP_OS_linux) || defined(GP_OS_android))
+
+--- a/security/sandbox/linux/broker/SandboxBrokerUtils.h
++++ b/security/sandbox/linux/broker/SandboxBrokerUtils.h
+@@ -15,7 +15,7 @@
+ // calls. We'll intercept those and handle them in the stat functions
+ // but must be sure to use the right structure layout.
+
+-#if defined(__NR_stat64) || defined(__NR_fstatat64)
++#if 0 && (defined(__NR_stat64) || defined(__NR_fstatat64) )
+ typedef struct stat64 statstruct;
+ # define statsyscall stat64
+ # define lstatsyscall lstat64
diff --git a/testing/librewolf/librewolf.desktop b/testing/librewolf/librewolf.desktop
new file mode 100644
index 00000000000..aa22fd9dfac
--- /dev/null
+++ b/testing/librewolf/librewolf.desktop
@@ -0,0 +1,386 @@
+[Desktop Entry]
+Version=1.0
+Name=LibreWolf
+Name[ar]=متصÙØ­ الويب ÙَيَرÙÙكْس
+Name[ast]=Restolador web LibreWolf
+Name[bn]=ফায়ারফকà§à¦¸ ওয়েব বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°
+Name[ca]=Navegador web LibreWolf
+Name[cs]=LibreWolf Webový prohlížeÄ
+Name[da]=LibreWolf - internetbrowser
+Name[el]=ΠεÏιηγητής LibreWolf
+Name[es]=Navegador web LibreWolf
+Name[et]=LibreWolfi veebibrauser
+Name[fa]=مرورگر اینترنتی LibreWolf
+Name[fi]=LibreWolf-selain
+Name[fr]=Navigateur Web LibreWolf
+Name[gl]=Navegador web LibreWolf
+Name[he]=דפדפן ×”×ינטרנט LibreWolf
+Name[hr]=LibreWolf web preglednik
+Name[hu]=LibreWolf webböngésző
+Name[it]=LibreWolf Browser Web
+Name[ja]=LibreWolf ウェブ・ブラウザ
+Name[ko]=LibreWolf 웹 브ë¼ìš°ì €
+Name[ku]=Geroka torê LibreWolf
+Name[lt]=LibreWolf interneto naršyklė
+Name[nb]=LibreWolf Nettleser
+Name[nl]=LibreWolf webbrowser
+Name[nn]=LibreWolf Nettlesar
+Name[no]=LibreWolf Nettleser
+Name[pl]=PrzeglÄ…darka WWW LibreWolf
+Name[pt]=LibreWolf Navegador Web
+Name[pt_BR]=Navegador Web LibreWolf
+Name[ro]=LibreWolf – Navigator Internet
+Name[ru]=Веб-браузер LibreWolf
+Name[sk]=LibreWolf - internetový prehliadaÄ
+Name[sl]=LibreWolf spletni brskalnik
+Name[sv]=LibreWolf webbläsare
+Name[tr]=LibreWolf Web Tarayıcısı
+Name[ug]=LibreWolf توركۆرگۈ
+Name[uk]=Веб-браузер LibreWolf
+Name[vi]=Trình duyệt web LibreWolf
+Name[zh_CN]=LibreWolf 网络æµè§ˆå™¨
+Name[zh_TW]=LibreWolf 網路ç€è¦½å™¨
+Comment=Browse the World Wide Web
+Comment[ar]=تصÙØ­ الشبكة العنكبوتية العالمية
+Comment[ast]=Restola pela Rede
+Comment[bn]=ইনà§à¦Ÿà¦¾à¦°à¦¨à§‡à¦Ÿ বà§à¦°à¦¾à¦‰à¦œ করà§à¦¨
+Comment[ca]=Navegueu per la web
+Comment[cs]=Prohlížení stránek World Wide Webu
+Comment[da]=Surf på internettet
+Comment[de]=Im Internet surfen
+Comment[el]=ΜποÏείτε να πεÏιηγηθείτε στο διαδίκτυο (Web)
+Comment[es]=Navegue por la web
+Comment[et]=Lehitse veebi
+Comment[fa]=صÙحات شبکه جهانی اینترنت را مرور نمایید
+Comment[fi]=Selaa Internetin WWW-sivuja
+Comment[fr]=Naviguer sur le Web
+Comment[gl]=Navegar pola rede
+Comment[he]=גלישה ברחבי ×”×ינטרנט
+Comment[hr]=Pretražite web
+Comment[hu]=A világháló böngészése
+Comment[it]=Esplora il web
+Comment[ja]=ウェブを閲覧ã—ã¾ã™
+Comment[ko]=ì›¹ì„ ëŒì•„ 다닙니다
+Comment[ku]=Li torê bigere
+Comment[lt]=Naršykite internete
+Comment[nb]=Surf på nettet
+Comment[nl]=Verken het internet
+Comment[nn]=Surf på nettet
+Comment[no]=Surf på nettet
+Comment[pl]=PrzeglÄ…danie stron WWW
+Comment[pt]=Navegue na Internet
+Comment[pt_BR]=Navegue na Internet
+Comment[ro]=Navigați pe Internet
+Comment[ru]=ДоÑтуп в Интернет
+Comment[sk]=Prehliadanie internetu
+Comment[sl]=Brskajte po spletu
+Comment[sv]=Surfa på webben
+Comment[tr]=Ä°nternet'te Gezinin
+Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
+Comment[uk]=ПереглÑд Ñторінок Інтернету
+Comment[vi]=Äể duyệt các trang web
+Comment[zh_CN]=æµè§ˆäº’è”网
+Comment[zh_TW]=ç€è¦½ç¶²éš›ç¶²è·¯
+GenericName=Web Browser
+GenericName[ar]=متصÙØ­ ويب
+GenericName[ast]=Restolador Web
+GenericName[bn]=ওয়েব বà§à¦°à¦¾à¦‰à¦œà¦¾à¦°
+GenericName[ca]=Navegador web
+GenericName[cs]=Webový prohlížeÄ
+GenericName[da]=Webbrowser
+GenericName[el]=ΠεÏιηγητής διαδικτÏου
+GenericName[es]=Navegador web
+GenericName[et]=Veebibrauser
+GenericName[fa]=مرورگر اینترنتی
+GenericName[fi]=WWW-selain
+GenericName[fr]=Navigateur Web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן ×ינטרנט
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[it]=Browser web
+GenericName[ja]=ウェブ・ブラウザ
+GenericName[ko]=웹 브ë¼ìš°ì €
+GenericName[ku]=Geroka torê
+GenericName[lt]=Interneto naršyklė
+GenericName[nb]=Nettleser
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[no]=Nettleser
+GenericName[pl]=PrzeglÄ…darka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator Internet
+GenericName[ru]=Веб-браузер
+GenericName[sk]=Internetový prehliadaÄ
+GenericName[sl]=Spletni brskalnik
+GenericName[sv]=Webbläsare
+GenericName[tr]=Web Tarayıcı
+GenericName[ug]=توركۆرگۈ
+GenericName[uk]=Веб-браузер
+GenericName[vi]=Trình duyệt Web
+GenericName[zh_CN]=网络æµè§ˆå™¨
+GenericName[zh_TW]=網路ç€è¦½å™¨
+Keywords=Internet;WWW;Browser;Web;Explorer
+Keywords[ar]=انترنت;إنترنت;متصÙØ­;ويب;وب
+Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
+Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
+Keywords[cs]=Internet;WWW;ProhlížeÄ;Web;Explorer
+Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
+Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
+Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;ΠεÏιηγητής;LibreWolf;ΦιÏεφοχ;ΙντεÏνετ
+Keywords[es]=Explorador;Internet;WWW
+Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
+Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
+Keywords[he]=דפדפן;×ינטרנט;רשת;×תרי×;×תר;פיירפוקס;מוזילה;
+Keywords[hr]=Internet;WWW;preglednik;Web
+Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
+Keywords[it]=Internet;WWW;Browser;Web;Navigatore
+Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
+Keywords[ja]=Internet;WWW;Web;インターãƒãƒƒãƒˆ;ブラウザ;ウェブ;エクスプローラ
+Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
+Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
+Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
+Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
+Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокÑ;огнелиÑ
+Keywords[sk]=Internet;WWW;PrehliadaÄ;Web;Explorer
+Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
+Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
+Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглÑдач;оглÑдач;браузер;веб;файрфокÑ;вогнелиÑ;переглÑд
+Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web
+Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;æµè§ˆ;上网;ç«ç‹;LibreWolf;ff;互è”网;网站;
+Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;ç€è¦½å™¨;上網;網é ;ç«ç‹
+Exec=librewolf %u
+Icon=librewolf
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
+StartupNotify=true
+StartupWMClass=LibreWolf
+Categories=Network;WebBrowser;
+Actions=new-window;new-private-window;profile-manager-window;
+
+[Desktop Action new-window]
+Name=Open a New Window
+Name[ach]=Dirica manyen
+Name[af]=Nuwe venster
+Name[an]=Nueva finestra
+Name[ar]=ناÙذة جديدة
+Name[as]=নতà§à¦¨ উইনà§à¦¡à§‹
+Name[ast]=Ventana nueva
+Name[az]=Yeni Pəncərə
+Name[be]=Ðовае акно
+Name[bg]=Ðов прозорец
+Name[bn_BD]=নতà§à¦¨ উইনà§à¦¡à§‹ (N)
+Name[bn_IN]=নতà§à¦¨ উইনà§à¦¡à§‹
+Name[br]=Prenestr nevez
+Name[brx]=गोदान उइनà¥à¤¡'(N)
+Name[bs]=Novi prozor
+Name[ca]=Finestra nova
+Name[cak]=K'ak'a' tzuwäch
+Name[cs]=Nové okno
+Name[cy]=Ffenestr Newydd
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[dsb]=Nowe wokno
+Name[el]=Îέο παÏάθυÏο
+Name[en_GB]=New Window
+Name[en_US]=New Window
+Name[en_ZA]=New Window
+Name[eo]=Nova fenestro
+Name[es_AR]=Nueva ventana
+Name[es_CL]=Nueva ventana
+Name[es_ES]=Nueva ventana
+Name[es_MX]=Nueva ventana
+Name[et]=Uus aken
+Name[eu]=Leiho berria
+Name[fa]=پنجره جدید
+Name[ff]=Henorde Hesere
+Name[fi]=Uusi ikkuna
+Name[fr]=Nouvelle fenêtre
+Name[fy_NL]=Nij finster
+Name[ga_IE]=Fuinneog Nua
+Name[gd]=Uinneag ùr
+Name[gl]=Nova xanela
+Name[gn]=Ovetã pyahu
+Name[gu_IN]=નવી વિનà«àª¡à«‹
+Name[he]=חלון חדש
+Name[hi_IN]=नया विंडो
+Name[hr]=Novi prozor
+Name[hsb]=Nowe wokno
+Name[hu]=Új ablak
+Name[hy_AM]=Õ†Õ¸Ö€ ÕŠÕ¡Õ¿Õ¸Ö‚Õ°Õ¡Õ¶
+Name[id]=Jendela Baru
+Name[is]=Nýr gluggi
+Name[it]=Nuova finestra
+Name[ja]=æ–°ã—ã„ウィンドウ
+Name[ja_JP-mac]=æ–°è¦ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦
+Name[ka]=áƒáƒ®áƒáƒšáƒ˜ ფáƒáƒœáƒ¯áƒáƒ áƒ
+Name[kk]=Жаңа терезе
+Name[km]=បង្អួចážáŸ’មី
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
+Name[ko]=새 창
+Name[kok]=नवें जनेल
+Name[ks]=نئئ ÙˆÙÙ†ÚˆÙˆ
+Name[lij]=Neuvo barcon
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
+Name[lt]=Naujas langas
+Name[ltg]=Jauns lūgs
+Name[lv]=Jauns logs
+Name[mai]=नव विंडो
+Name[mk]=Ðов прозорец
+Name[ml]=à´ªàµà´¤à´¿à´¯ ജാലകം
+Name[mr]=नवीन पटल
+Name[ms]=Tetingkap Baru
+Name[my]=á€á€„်းဒိုးအသစ်
+Name[nb_NO]=Nytt vindu
+Name[ne_NP]=नयाठसञà¥à¤à¥à¤¯à¤¾à¤²
+Name[nl]=Nieuw venster
+Name[nn_NO]=Nytt vindauge
+Name[or]=ନୂତନ ୱିଣà­à¬¡à­‹
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
+Name[pl]=Nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Nova janela
+Name[rm]=Nova fanestra
+Name[ro]=Fereastră nouă
+Name[ru]=Ðовое окно
+Name[sat]=नावा विंडो (N)
+Name[si]=නව කවුළුවක්
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[son]=Zanfun taaga
+Name[sq]=Dritare e Re
+Name[sr]=Ðови прозор
+Name[sv_SE]=Nytt fönster
+Name[ta]=பà¯à®¤à®¿à®¯ சாளரமà¯
+Name[te]=కొతà±à°¤ విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni pencere
+Name[tsz]=Eraatarakua jimpani
+Name[uk]=Ðове вікно
+Name[ur]=نیا دریچÛ
+Name[uz]=Yangi oyna
+Name[vi]=Cửa sổ mới
+Name[wo]=Palanteer bu bees
+Name[xh]=Ifestile entsha
+Name[zh_CN]=新建窗å£
+Name[zh_TW]=開新視窗
+Exec=librewolf --new-window %u
+
+[Desktop Action new-private-window]
+Name=Open a New Private Window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra privada
+Name[ar]=ناÙذة خاصة جديدة
+Name[as]=নতà§à¦¨ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত উইনà§à¦¡à§‹
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni Məxfi Pəncərə
+Name[be]=Ðовае акно адаÑабленнÑ
+Name[bg]=Ðов прозорец за поверително Ñърфиране
+Name[bn_BD]=নতà§à¦¨ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত উইনà§à¦¡à§‹
+Name[bn_IN]=নতà§à¦¨ বà§à¦¯à¦•à§à¦¤à¦¿à¦—ত উইনà§à¦¡à§‹
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[brx]=गोदान पà¥à¤°à¤¾à¤‡à¤­à¥‡à¤Ÿ उइनà¥à¤¡'
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cak]=K'ak'a' ichinan tzuwäch
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr Breifat Newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Îέο παÏάθυÏο ιδιωτικής πεÏιήγησης
+Name[en_GB]=New Private Window
+Name[en_US]=New Private Window
+Name[en_ZA]=New Private Window
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[fa]=پنجره ناشناس جدید
+Name[ff]=Henorde Suturo Hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog Nua Phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gn]=Ovetã ñemi pyahu
+Name[gu_IN]=નવી ખાનગી વિનà«àª¡à«‹
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नयी निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=ÕÕ¯Õ½Õ¥Õ¬ Ô³Õ¡Õ²Õ¿Õ¶Õ« Õ¤Õ«Õ¿Õ¡Ö€Õ¯Õ¸Ö‚Õ´
+Name[id]=Jendela Mode Pribadi Baru
+Name[is]=Nýr huliðsgluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=æ–°ã—ã„プライベートウィンドウ
+Name[ja_JP-mac]=æ–°è¦ãƒ—ライベートウインドウ
+Name[ka]=áƒáƒ®áƒáƒšáƒ˜ პირáƒáƒ“ი ფáƒáƒœáƒ¯áƒáƒ áƒ
+Name[kk]=Жаңа жекелік терезе
+Name[km]=បង្អួចឯកជនážáŸ’មី
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사ìƒí™œ 보호 모드
+Name[kok]=नवो खाजगी विंडो
+Name[ks]=نْو پرایوٹ وینڈو
+Name[lij]=Nêuvo barcón privòu
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
+Name[lt]=Naujas privataus naršymo langas
+Name[ltg]=Jauns privatais lūgs
+Name[lv]=Jauns privÄtais logs
+Name[mai]=नया निज विंडो (W)
+Name[mk]=Ðов приватен прозорец
+Name[ml]=à´ªàµà´¤à´¿à´¯ à´¸àµà´µà´•à´¾à´°àµà´¯ ജാലകം
+Name[mr]=नवीन वैयकà¥à¤¤à¤¿à¤• पटल
+Name[ms]=Tetingkap Persendirian Baharu
+Name[my]=New Private Window
+Name[nb_NO]=Nytt privat vindu
+Name[ne_NP]=नयाठनिजी सञà¥à¤à¥à¤¯à¤¾à¤²
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବà­à­Ÿà¬•à­à¬¤à¬¿à¬—ତ ୱିଣà­à¬¡à­‹
+Name[pa_IN]=ਨਵੀਂ ਪà©à¨°à¨¾à¨ˆà¨µà©‡à¨Ÿ ਵਿੰਡੋ
+Name[pl]=Nowe okno prywatne
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră privată nouă
+Name[ru]=Ðовое приватное окно
+Name[sat]=नावा निजेराकॠविंडो (W )
+Name[si]=නව පුද්ගලික කවුළුව (W)
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e Re Private
+Name[sr]=Ðови приватан прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=பà¯à®¤à®¿à®¯ தனிபà¯à®ªà®Ÿà¯à®Ÿ சாளரமà¯
+Name[te]=కొతà±à°¤ ఆంతరంగిక విండో
+Name[th]=หน้าต่างส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[tsz]=Juchiiti eraatarakua jimpani
+Name[uk]=Приватне вікно
+Name[ur]=نیا نجی دریچÛ
+Name[uz]=Yangi maxfiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[wo]=Panlanteeru biir bu bees
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建éšç§æµè§ˆçª—å£
+Name[zh_TW]=新增隱ç§è¦–窗
+Exec=librewolf --private-window %u
+
+[Desktop Action profile-manager-window]
+Name=Open the Profile Manager
+Name[cs]=Správa profilů
+Name[de]=Profilverwaltung öffnen
+Name[es]=Abrir el Gestor de Perfiles
+Name[fr]=Ouvrir le gestionnaire de profils
+Exec=librewolf --ProfileManager %u
diff --git a/testing/librewolf/no-ccache-stats.patch b/testing/librewolf/no-ccache-stats.patch
new file mode 100644
index 00000000000..4d557a01504
--- /dev/null
+++ b/testing/librewolf/no-ccache-stats.patch
@@ -0,0 +1,13 @@
+prevents a call to ccache
+diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
+index bf7009a..011c012 100644
+--- a/python/mozbuild/mozbuild/controller/building.py
++++ b/python/mozbuild/mozbuild/controller/building.py
+@@ -570,6 +570,7 @@ class BuildMonitor(MozbuildObject):
+ )
+
+ def ccache_stats(self, ccache=None):
++ return None
+ ccache_stats = None
+
+ if ccache is None:
diff --git a/testing/librewolf/ppc-musttail.patch b/testing/librewolf/ppc-musttail.patch
new file mode 100644
index 00000000000..ebe06c0ebe8
--- /dev/null
+++ b/testing/librewolf/ppc-musttail.patch
@@ -0,0 +1,30 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/506127954653ccebf9b82df1452cce4ed0dae3b1/contrib/thunderbird/patches/ppc-musttail.patch
+--
+commit 5e66655e1456c9d26637ceaed3f4533b537322c4
+Author: Daniel Kolesa <daniel@octaforge.org>
+Date: Sat May 13 23:00:04 2023 +0200
+
+ disable musttail on ppc
+
+ 41:38.04 LLVM ERROR: failed to perform tail call elimination on a call site marked musttail
+ 41:38.04 PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
+ 41:38.04 Stack dump:
+ 41:38.04 0. Running pass 'Function Pass Manager' on module '/builddir/thunderbird-114.0_beta1/obj-powerpc64le-unknown-linux-musl/toolkit/library/build/../../../gfx/skia/SkOpts.o'.
+ 41:38.04 1. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@_ZN8portableL15init_lane_masksEPNS_6ParamsEP21SkRasterPipelineStageffff'
+ 41:38.95 clang-16: error: unable to execute command: Aborted
+
+ To be investigated later.
+
+diff --git a/gfx/skia/skia/src/core/SkRasterPipeline.h b/gfx/skia/skia/src/core/SkRasterPipeline.h
+index 766bb0c..88c6cb2 100644
+--- a/gfx/skia/skia/src/core/SkRasterPipeline.h
++++ b/gfx/skia/skia/src/core/SkRasterPipeline.h
+@@ -24,7 +24,7 @@ enum SkColorType : int;
+ struct SkImageInfo;
+ struct skcms_TransferFunction;
+
+-#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32)
++#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && !defined(__powerpc__)
+ #define SK_HAS_MUSTTAIL 1
+ #else
+ #define SK_HAS_MUSTTAIL 0
diff --git a/testing/librewolf/python-deps.patch b/testing/librewolf/python-deps.patch
new file mode 100644
index 00000000000..7884095f02a
--- /dev/null
+++ b/testing/librewolf/python-deps.patch
@@ -0,0 +1,10 @@
+diff --git a/python/sites/mach.txt b/python/sites/mach.txt
+index 8945d44..8746f70 100644
+--- a/python/sites/mach.txt
++++ b/python/sites/mach.txt
+@@ -98,3 +98,3 @@ pypi-optional:glean-sdk==55.0.0:telemetry will not be collected
+ # support down to the oldest locally-installed version (5.4.2).
+-pypi-optional:psutil>=5.4.2,<=5.9.4:telemetry will be missing some data
+-pypi-optional:zstandard>=0.11.1,<=0.22.0:zstd archives will not be possible to extract
++pypi-optional:psutil>=5.4.2,<=5.10.0:telemetry will be missing some data
++pypi-optional:zstandard>=0.11.1,<=0.24.0:zstd archives will not be possible to extract
diff --git a/testing/librewolf/riscv64-no-lto.patch b/testing/librewolf/riscv64-no-lto.patch
new file mode 100644
index 00000000000..90c9b5def1a
--- /dev/null
+++ b/testing/librewolf/riscv64-no-lto.patch
@@ -0,0 +1,16 @@
+--- a/config/makefiles/rust.mk
++++ b/config/makefiles/rust.mk
+@@ -91,11 +91,13 @@
+ ifndef rustflags_sancov
+ # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
+ ifndef MOZ_CODE_COVERAGE
++ifeq (,$(findstring riscv64,$(RUST_TARGET)))
+ ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
+ cargo_rustc_flags += -Clto=thin
+ endif
+ # We need -Cembed-bitcode=yes for all crates when using -Clto.
+ RUSTFLAGS += -Cembed-bitcode=yes
++endif
+ endif
+ endif
+ endif
diff --git a/testing/librewolf/rust-lto-thin.patch b/testing/librewolf/rust-lto-thin.patch
new file mode 100644
index 00000000000..788fceab39f
--- /dev/null
+++ b/testing/librewolf/rust-lto-thin.patch
@@ -0,0 +1,12 @@
+set rust crate lto to thin to not use fatlto for gkrust which fails sometimes
+--- a/config/makefiles/rust.mk
++++ b/config/makefiles/rust.mk
+@@ -92,7 +92,7 @@
+ # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
+ ifndef MOZ_CODE_COVERAGE
+ ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
+-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
++cargo_rustc_flags += -Clto=thin
+ endif
+ # We need -Cembed-bitcode=yes for all crates when using -Clto.
+ RUSTFLAGS += -Cembed-bitcode=yes
diff --git a/testing/librewolf/sandbox-fork.patch b/testing/librewolf/sandbox-fork.patch
new file mode 100644
index 00000000000..c7222ab494d
--- /dev/null
+++ b/testing/librewolf/sandbox-fork.patch
@@ -0,0 +1,15 @@
+make SYS_fork non-fatal, musl uses it for fork(2)
+
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -1253,6 +1253,10 @@
+ // usually do something reasonable on error.
+ case __NR_clone:
+ return ClonePolicy(Error(EPERM));
++#ifdef __NR_fork
++ case __NR_fork:
++ return Error(ENOSYS);
++#endif
+
+ # ifdef __NR_fadvise64
+ case __NR_fadvise64:
diff --git a/testing/librewolf/sandbox-largefile.patch b/testing/librewolf/sandbox-largefile.patch
new file mode 100644
index 00000000000..f1cf28b51b9
--- /dev/null
+++ b/testing/librewolf/sandbox-largefile.patch
@@ -0,0 +1,17 @@
+--- a/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:41:14.556378950 +0100
++++ b/security/sandbox/linux/SandboxFilter.cpp 2020-11-23 22:40:23.595806444 +0100
+@@ -68,7 +68,13 @@
+
+ // The headers define O_LARGEFILE as 0 on x86_64, but we need the
+ // actual value because it shows up in file flags.
+-#define O_LARGEFILE_REAL 00100000
++#if defined(__x86_64__) || defined(__i386__) || defined(__mips__)
++#define O_LARGEFILE_REAL 0100000
++#elif defined(__powerpc__)
++#define O_LARGEFILE_REAL 0200000
++#else
++#define O_LARGEFILE_REAL O_LARGEFILE
++#endif
+
+ // Not part of UAPI, but userspace sees it in F_GETFL; see bug 1650751.
+ #define FMODE_NONOTIFY 0x4000000
diff --git a/testing/librewolf/sandbox-sched_setscheduler.patch b/testing/librewolf/sandbox-sched_setscheduler.patch
new file mode 100644
index 00000000000..ffdf12678bc
--- /dev/null
+++ b/testing/librewolf/sandbox-sched_setscheduler.patch
@@ -0,0 +1,24 @@
+upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849
+diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp
+index ed958bc..9824433 100644
+--- a/security/sandbox/linux/SandboxFilter.cpp
++++ b/security/sandbox/linux/SandboxFilter.cpp
+@@ -1751,6 +1751,6 @@ class GMPSandboxPolicy : public SandboxPolicyCommon {
+ case __NR_sched_get_priority_max:
++ case __NR_sched_setscheduler:
+ return Allow();
+ case __NR_sched_getparam:
+- case __NR_sched_getscheduler:
+- case __NR_sched_setscheduler: {
++ case __NR_sched_getscheduler: {
+ Arg<pid_t> pid(0);
+@@ -1926,3 +1926,2 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon {
+ case __NR_sched_getscheduler:
+- case __NR_sched_setscheduler:
+ case __NR_sched_getattr:
+@@ -1932,2 +1931,5 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon {
+ }
++ // sched_setscheduler gets special treatment here (bug 1657849):
++ case __NR_sched_setscheduler:
++ return Allow();
+
diff --git a/testing/librewolf/sqlite-ppc.patch b/testing/librewolf/sqlite-ppc.patch
new file mode 100644
index 00000000000..30d80281f71
--- /dev/null
+++ b/testing/librewolf/sqlite-ppc.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/0b7b1b1/contrib/firefox/patches/sqlite-ppc.patch
+From 67157b1aa7da0a146b7d2d5abb9237eea1f434ec Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Fri, 23 Sep 2022 02:38:29 +0200
+Subject: [PATCH] fix sqlite3 on ppc with clang
+
+The __ppc__ macro is always defined on clang but not gcc, which
+results in sqlite mistakenly thinking that ppc64le with clang
+is big endian.
+
+Also disable some inline assembly stuff on ppc that is never used
+with gcc and probably was never tested with modern machines.
+
+rebased 2024-01-24 by @ptrcnull:
+upstream removed the __ppc__ check,
+adding a __LITTLE_ENDIAN__ check to match what they do
+---
+ third_party/sqlite3/src/sqlite3.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/third_party/sqlite3/src/sqlite3.c b/third_party/sqlite3/src/sqlite3.c
+index 9443127..8593d8a 100644
+--- a/third_party/sqlite3/src/sqlite3.c
++++ b/third_party/sqlite3/src/sqlite3.c
+@@ -14874,2 +14874,4 @@ typedef INT16_TYPE LogEst;
+ # define SQLITE_BYTEORDER 4321
++# elif defined(__LITTLE_ENDIAN__) && __LITTLE_ENDIAN__==1
++# define SQLITE_BYTEORDER 1234
+ # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \
+@@ -36340,3 +36342,3 @@ SQLITE_PRIVATE int sqlite3VListNameToNum(VList *pIn, const char *zName, int nNam
+
+-#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__ppc__))
++#elif 0
+
+@@ -207002,2 +207004,4 @@ struct RtreeMatchArg {
+ # define SQLITE_BYTEORDER 4321
++# elif defined(__LITTLE_ENDIAN__) && __LITTLE_ENDIAN__==1
++# define SQLITE_BYTEORDER 1234
+ # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \
diff --git a/testing/librewolf/vendor-prefs.js b/testing/librewolf/vendor-prefs.js
new file mode 100644
index 00000000000..115617e0f17
--- /dev/null
+++ b/testing/librewolf/vendor-prefs.js
@@ -0,0 +1,9 @@
+// Use LANG environment variable to choose locale
+pref("intl.locale.requested", "");
+
+// Use system-provided dictionaries
+pref("spellchecker.dictionary_path", "/usr/share/hunspell");
+
+// Don't disable our bundled extensions in the application directory
+pref("extensions.autoDisableScopes", 11);
+pref("extensions.shownSelectionUI", true);
diff --git a/testing/libsailfishkeyprovider/APKBUILD b/testing/libsailfishkeyprovider/APKBUILD
deleted file mode 100644
index 7b97711cefa..00000000000
--- a/testing/libsailfishkeyprovider/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libsailfishkeyprovider
-pkgver=1.0.4
-pkgrel=0
-pkgdesc="Provides a class which can provide decoded keys to client applications"
-url="https://git.sailfishos.org/mer-core/libsailfishkeyprovider"
-arch="all"
-license="LGPL-2.1-only"
-depends_dev="qt5-qtbase-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libsailfishkeyprovider/-/archive/$pkgver/libsailfishkeyprovider-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove installed tests
- rm -r "$pkgdir"/opt
-}
-
-sha512sums="b08368f0f2e9b6a66b7cc9ac6910f80c5ee4cc120701dc663784b486c93b6d0c5dc74455779c78030fd7ff711a2d349042ac00f29a31f336dacd3441d939b742 libsailfishkeyprovider-1.0.4.tar.gz"
diff --git a/testing/libsbsms/APKBUILD b/testing/libsbsms/APKBUILD
new file mode 100644
index 00000000000..480fbad213b
--- /dev/null
+++ b/testing/libsbsms/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Sol Fisher Romanoff <sol@solfisher.com>
+# Maintainer: Sol Fisher Romanoff <sol@solfisher.com>
+pkgname=libsbsms
+pkgver=2.3.0
+pkgrel=0
+pkgdesc="Library for time stretching and pitch scaling of audio"
+url="https://github.com/claytonotey/libsbsms"
+arch="all"
+license="GPL-2.0-or-later"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/claytonotey/libsbsms/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-shared \
+ --disable-sse
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e5b544c2bdbaa2169236987c7a043838c8d1761b25280c476d7a32656d482c6485cb33f579ea9d1ce586ec7b2913ed8fdcf1abe5c7cc8b9e4eef9ce87de54627 libsbsms-2.3.0.tar.gz
+"
diff --git a/testing/libsds/02-install-target.patch b/testing/libsds/02-install-target.patch
index 82a29e5a91b..ecf41e1af24 100644
--- a/testing/libsds/02-install-target.patch
+++ b/testing/libsds/02-install-target.patch
@@ -12,7 +12,7 @@ diff --git a/Makefile b/Makefile
index 045fa88..2d4f362 100644
--- a/Makefile
+++ b/Makefile
-@@ -1,4 +1,29 @@
+@@ -1,4 +1,28 @@
-all: sds-test
+LIBVERSION = 2.0.0
+
@@ -34,7 +34,6 @@ index 045fa88..2d4f362 100644
+sds-install: sds-lib
+ mkdir -p $(INSTALL_INCLUDE_PATH) $(INSTALL_LIBRARY_PATH)
+ $(INSTALL) libsds.so.$(LIBVERSION) $(INSTALL_LIBRARY_PATH)
-+ ln -s $(INSTALL_LIBRARY_PATH)/libsds.so.$(LIBVERSION) $(INSTALL_LIBRARY_PATH)/libsds.so
+ $(INSTALL) sds.h $(INSTALL_INCLUDE_PATH)
+
+sds-lib: sds.c sds.h sdsalloc.h
diff --git a/testing/libsds/APKBUILD b/testing/libsds/APKBUILD
index 53dc39194bb..c2a93c00d47 100644
--- a/testing/libsds/APKBUILD
+++ b/testing/libsds/APKBUILD
@@ -3,7 +3,8 @@
pkgname=libsds
_pkgname=sds
pkgver=2.0.0
-pkgrel=0
+_pkgmajver=2
+pkgrel=1
pkgdesc="Simple Dynamic Strings library for C"
arch="all"
url="https://github.com/antirez/sds"
@@ -20,8 +21,12 @@ check() {
package() {
PREFIX=/usr DESTDIR="$pkgdir" make -e sds-install
+
+ # Manually create symlinks
+ ln -s $pkgname.so.$pkgver "$pkgdir"/usr/lib/$pkgname.so.$_pkgmajver
+ ln -s $pkgname.so.$_pkgmajver "$pkgdir"/usr/lib/$pkgname.so
}
sha512sums="82c40ffcb722cda57fe08ca4d465e5144270cec9c5ba18d2a5da88b89e7d402f781f86675db53bd1c7a752641888ee50cbf6b21f0582f428d3aa9e6fe0357ad7 libsds-2.0.0.tar.gz
0fd8adf7d7d1863d2dcaf46749b422e33d2a189ee9a68a628f3717724462382651b0da2d0fa77c6e886e1bb2c047a89d45fb998228948e100440b8a64f28b2e9 01-gcc-pedantic.patch
-716eed0662cdae66509749573d454e37c22e324386ccdc66692f8d61a656aa7ed6db5e67f93f36f40559bc7b65cd2e228dce832177f64d75b57eea5d16f896c9 02-install-target.patch"
+cf15fa20d370fa86764941406c22b9bf54d163e2ff1c9f55e66a8b0c475a8d91e3f18ca2f427ccbb1fe35779ced65313aaa52aa456d82d21c06cb6187f5429d2 02-install-target.patch"
diff --git a/testing/libsemanage/APKBUILD b/testing/libsemanage/APKBUILD
index 47d35308641..ff7eebce555 100644
--- a/testing/libsemanage/APKBUILD
+++ b/testing/libsemanage/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Tycho Andersen <tycho@docker.com>
# Maintainer: Tycho Andersen <tycho@docker.com>
pkgname=libsemanage
-pkgver=2.8
+pkgver=3.6
pkgrel=0
pkgdesc="SELinux binary policy manipulation library"
url="https://github.com/SELinuxProject/selinux/wiki"
@@ -18,7 +18,7 @@ makedepends="
python3
"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20180524/libsemanage-$pkgver.tar.gz"
+source="https://github.com/SELinuxProject/selinux/releases/download/$pkgver/libsemanage-$pkgver.tar.gz"
build() {
make PYTHON=python3
@@ -28,4 +28,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="53f09c79da168a79b853f55e0f1c20a96229df9d82929c514bcaf72697446ae836f7f0457fc0056d2418cc6d0712157faf0152881518fe84a1b1b9b9af17e7ef libsemanage-2.8.tar.gz"
+sha512sums="
+8998b6a1b254a9673b99ae4d70a1edc769bb728a44f573cdf62e0a9c9392b77644ee2d70e1936a2f8a9a7f8b063ce98a981f4b8b7060f5b82791889330d69364 libsemanage-3.6.tar.gz
+"
diff --git a/testing/libsemigroups/APKBUILD b/testing/libsemigroups/APKBUILD
new file mode 100644
index 00000000000..66b2ad77b2f
--- /dev/null
+++ b/testing/libsemigroups/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libsemigroups
+pkgver=2.7.3
+pkgrel=0
+pkgdesc="Library for computing semigroups and monoids"
+url="https://github.com/libsemigroups/libsemigroups"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="eigen-dev fmt-dev"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://github.com/libsemigroups/libsemigroups/releases/download/v$pkgver/libsemigroups-$pkgver.tar.gz"
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-eigen \
+ --enable-fmt \
+ --with-external-eigen \
+ --with-external-fmt
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+001cfdfc55ee9a0bb3fe0914229905083e8eaaec682952bb23b2dc44680631909478bf32e67e93488a7347bfb674305b0cc3b713afa9bce1997a0b1a5693ad36 libsemigroups-2.7.3.tar.gz
+"
diff --git a/testing/libserialport/APKBUILD b/testing/libserialport/APKBUILD
index 7e6973212cb..678b2ca6b90 100644
--- a/testing/libserialport/APKBUILD
+++ b/testing/libserialport/APKBUILD
@@ -1,32 +1,35 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-
-pkgname="libserialport"
+pkgname=libserialport
pkgver=0.1.1
-pkgrel=0
+pkgrel=1
pkgdesc="A minimal C library handling OS-specific details when using serial ports"
url="https://sigrok.org/wiki/Libserialport"
-makedepends="linux-headers"
-depends=""
arch="all"
license="GPL-3.0-only"
-source="http://sigrok.org/download/source/$pkgname/$pkgname-$pkgver.tar.gz"
+makedepends="linux-headers automake autoconf libtool"
+source="https://github.com/sigrokproject/libserialport/archive/libserialport-$pkgver/libserialport-$pkgver.tar.gz"
+builddir="$srcdir/libserialport-libserialport-$pkgver"
subpackages="$pkgname-dev"
-builddir="$srcdir/$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+
+ ./autogen.sh
+}
build() {
- cd "${builddir}"
./configure --prefix=/usr/
make
}
check() {
- cd "${builddir}"
make check
}
package() {
- cd "${builddir}"
make DESTDIR="$pkgdir" install
}
-sha512sums="7d379d1099173841e6d4df04c8c12dc6a4ebdfa0323ef35da6f3dea20db55d4f6ad81c1f6679f5aac7fe83270176428a817daa8627c336505335a07e06350a85 libserialport-0.1.1.tar.gz"
+sha512sums="
+b3978ac779f7eb6abb0cf7b4c623e107ba4ad3e6cee9da264500309783f1b28934b511b483d298105eed31eaf96196c93c45fdd89bd13bae04f2449d774f33af libserialport-0.1.1.tar.gz
+"
diff --git a/testing/libsigc++3/APKBUILD b/testing/libsigc++3/APKBUILD
deleted file mode 100644
index 7ebc0e7dbe9..00000000000
--- a/testing/libsigc++3/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=libsigc++3
-pkgver=3.0.3
-pkgrel=0
-pkgdesc="Typesafe callback system for standard C++"
-url="https://github.com/libsigcplusplus/libsigcplusplus"
-arch="all"
-license="LGPL-3.0-or-later"
-makedepends="boost-dev meson perl"
-subpackages="$pkgname-dev"
-source="https://download.gnome.org/sources/libsigc++/${pkgver%.*}/libsigc++-$pkgver.tar.xz"
-builddir="$srcdir/libsigc++-$pkgver"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- build
- ninja -C build
-}
-
-check() {
- ninja -C build test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="4ba1eeb1296ea8b3e911a7c6ce66c402f877485fd3da1ff1c2e6cfe89a986788cb9bcc9ff8d8ef57dc6dbaa046d7a18d30f6b32a0235fe66fb7afae4ec12e13e libsigc++-3.0.3.tar.xz"
diff --git a/testing/libsignal-protocol-c/APKBUILD b/testing/libsignal-protocol-c/APKBUILD
deleted file mode 100644
index be0f3570d8e..00000000000
--- a/testing/libsignal-protocol-c/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=libsignal-protocol-c
-pkgver=2.3.3
-pkgrel=0
-pkgdesc="Signal Protocol C Library"
-url="https://github.com/signalapp/libsignal-protocol-c"
-arch="all"
-license="GPL-3.0-only"
-makedepends="cmake"
-checkdepends="check-dev openssl-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/signalapp/libsignal-protocol-c/archive/v$pkgver.tar.gz"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_SHARED_LIBS=True \
- -DBUILD_TESTING=1 \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- $CMAKE_CROSSOPTS .
- make
-}
-
-check() {
- # 92% tests passed, 1 tests failed out of 13
- # 8/13 Test #8: test_key_helper ..................***Failed 0.00 sec
- [ "$CARCH" = s390x ] && return 0
- cd tests
- make
- cd ../
- ctest
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="19d892e13fac32022658de5eaf1db8cec3226f5f3f37a4c1c33bfa9653126ecbc6350a1ab5624025f909803c2277b86321dbea7f64e9932883cae57b65f58112 libsignal-protocol-c-2.3.3.tar.gz"
diff --git a/testing/libsigrok/APKBUILD b/testing/libsigrok/APKBUILD
index e41bb7d111d..c18812d67a4 100644
--- a/testing/libsigrok/APKBUILD
+++ b/testing/libsigrok/APKBUILD
@@ -1,8 +1,8 @@
+# Contributor: Clayton Craft <clayton@craftyguy.net>
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-
pkgname=libsigrok
pkgver=0.5.2
-pkgrel=0
+pkgrel=2
pkgdesc="A C library providing access to logic analyzers and related file formats"
url="https://sigrok.org/wiki/Libsigrok"
makedepends="libzip-dev glib-dev libserialport-dev libusb-dev libftdi1-dev
@@ -34,9 +34,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir/lib/udev/rules.d"
- cp contrib/60-libsigrok.rules "$pkgdir/lib/udev/rules.d/60-libsigrok.rules"
- cp contrib/61-libsigrok-plugdev.rules "$pkgdir/lib/udev/rules.d/60-libsigrok.rules"
+ install -Dm644 contrib/60-libsigrok.rules "$pkgdir/lib/udev/rules.d/60-libsigrok.rules"
+ install -Dm644 contrib/61-libsigrok-plugdev.rules "$pkgdir/lib/udev/rules.d/61-libsigrok-plugdev.rules"
}
sha512sums="cf673dad6280302d69050c29490621f66c6d6a73932d019a53ec3501316d3f2e23e7667a04f866dbe6ed73f86a63de73d2173e2b6cea563631d705e06f887092 libsigrok-0.5.2.tar.gz"
diff --git a/testing/libsigrokdecode/APKBUILD b/testing/libsigrokdecode/APKBUILD
index 3ddd7f7c743..510667ec565 100644
--- a/testing/libsigrokdecode/APKBUILD
+++ b/testing/libsigrokdecode/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname="libsigrokdecode"
+pkgname=libsigrokdecode
pkgver=0.5.3
-pkgrel=0
+pkgrel=4
pkgdesc="A C library to decode protocol data captured by logic analyzers"
url="https://sigrok.org/wiki/Libsigrokdecode"
makedepends="glib-dev libserialport-dev libzip-dev libusb-dev libftdi1-dev
@@ -12,6 +12,7 @@ arch="all"
license="GPL-3.0-only"
source="http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-$pkgver.tar.gz
version.patch
+ python-3.12.patch
"
subpackages="$pkgname-dev"
@@ -33,5 +34,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="23393504b68135ed4ae8e8a654df024620af02e84fa3955956c61899388812229108155b4ae8d946e61f33dc8a8807db090d608350548a7a717d966442b07b9e libsigrokdecode-0.5.3.tar.gz
-6d8fa69a891b4333fe77213cf75df218090e58b51d6c92197351d95a977634f2228a63c9c0c75fcb1d816c59ee9eaf410d5e79827ac7c79b0784262ea0f9c3fd version.patch"
+sha512sums="
+23393504b68135ed4ae8e8a654df024620af02e84fa3955956c61899388812229108155b4ae8d946e61f33dc8a8807db090d608350548a7a717d966442b07b9e libsigrokdecode-0.5.3.tar.gz
+6d8fa69a891b4333fe77213cf75df218090e58b51d6c92197351d95a977634f2228a63c9c0c75fcb1d816c59ee9eaf410d5e79827ac7c79b0784262ea0f9c3fd version.patch
+22227cafc70d493cba413956861d6f6a43ad071a27f07bf328a4c811c6b78d5241dd31ce461bc086b684d4a2057cd35db305750e8030ee0e2b30512668b5d5bd python-3.12.patch
+"
diff --git a/testing/libsigrokdecode/python-3.12.patch b/testing/libsigrokdecode/python-3.12.patch
new file mode 100644
index 00000000000..c854edd5227
--- /dev/null
+++ b/testing/libsigrokdecode/python-3.12.patch
@@ -0,0 +1,25 @@
+From 9b0ad5177bd692f7556a4756bdbd2da81d9c34ce Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
+Date: Tue, 4 Aug 2020 09:19:44 +0200
+Subject: [PATCH] configure.ac: Add support for Python 3.9.
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f9958b3..2917cb3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -100,7 +100,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary])
+ # first, since usually only that variant will add "-lpython3.8".
+ # https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build
+ SR_PKG_CHECK([python3], [SRD_PKGLIBS],
+- [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
++ [python-3.12-embed], [python-3.11-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2])
+ AS_IF([test "x$sr_have_python3" = xno],
+ [AC_MSG_ERROR([Cannot find Python 3 development headers.])])
+
+--
+2.24.0.rc2
+
diff --git a/testing/libsigsegv/APKBUILD b/testing/libsigsegv/APKBUILD
deleted file mode 100644
index 39e7656e349..00000000000
--- a/testing/libsigsegv/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=libsigsegv
-pkgver=2.12
-pkgrel=1
-pkgdesc="Page fault detection library"
-url="https://www.gnu.org/software/libsigsegv/"
-arch="all"
-license="GPL-2.0-or-later"
-subpackages="$pkgname-dev"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static \
- --enable-shared
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="27986e8aaf4357ed131032aa7c281a5a28c5759530c62bb76f034aea33959547dcaae805e06347a1f532f0488b72fbbbdac4400f74e8d3f2128511526e8a5913 libsigsegv-2.12.tar.gz"
diff --git a/testing/libsirocco/APKBUILD b/testing/libsirocco/APKBUILD
new file mode 100644
index 00000000000..da9ddabc813
--- /dev/null
+++ b/testing/libsirocco/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libsirocco
+pkgver=2.1.0
+pkgrel=2
+pkgdesc="Library for computing homotopy continuation of roots"
+url="https://github.com/miguelmarco/SIROCCO2"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="gmp-dev mpfr-dev"
+subpackages="$pkgname-dev"
+source="https://github.com/miguelmarco/SIROCCO2/releases/download/$pkgver/libsirocco-$pkgver.tar.gz"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+1afd32efbe81b44a02b9ca41345bb4c70ec7d936d878aac2d6cdf7587d753cb26026ea36bfe43f2963afdb221544e594b58bf32a5b70b54ce619e59594a8535f libsirocco-2.1.0.tar.gz
+"
diff --git a/testing/libslirp/APKBUILD b/testing/libslirp/APKBUILD
deleted file mode 100644
index 9967fc55e3c..00000000000
--- a/testing/libslirp/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=libslirp
-pkgver=4.3.0
-pkgrel=0
-pkgdesc="A general purpose TCP-IP emulator"
-url="https://gitlab.freedesktop.org/slirp/libslirp"
-arch="all"
-license="BSD-3-Clause"
-makedepends="meson glib-dev"
-subpackages="$pkgname-dev"
-options="!check" # no test suite
-source="https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v$pkgver/libslirp-v$pkgver.tar.gz
- version.patch"
-builddir="$srcdir/$pkgname-v$pkgver"
-
-# secfixes:
-# 4.3.0-r0:
-# - CVE-2020-1983
-
-prepare() {
- default_prepare
- sed -i "s/%SLIRP_VERSION%/$pkgver/g" meson.build
-}
-
-build() {
- meson \
- --buildtype=plain \
- --prefix=/usr \
- --libdir=/usr/lib \
- build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="24c5a6c60e0a08674353db1050a6a6b6cd7633e7cb691a3380b7acc6f0bb65d8aa52a076623d4615f63c7b5e96e600b99b56d2f14772fafe132afb1f0102a993 libslirp-v4.3.0.tar.gz
-adb828ebbaeecbba313c028b34deb96ad592f53fb2f777d58286bf8397285be8714ae4cdbaad086168cc0ac7c729a2fc34e6e57f82c7d657c29884e3f3fa59aa version.patch"
diff --git a/testing/libslirp/version.patch b/testing/libslirp/version.patch
deleted file mode 100644
index 683aef439a1..00000000000
--- a/testing/libslirp/version.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 2e48fd8..5c1f87f 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1,5 +1,5 @@
- project('libslirp', 'c',
-- version : run_command('build-aux/git-version-gen', '@0@/.tarball-version'.format(meson.source_root()), check : true).stdout().strip(),
-+ version : '%SLIRP_VERSION%',
- license : 'BSD-3-Clause',
- default_options : ['warning_level=1', 'c_std=gnu99'],
- meson_version : '>= 0.49',
diff --git a/testing/libsmi/APKBUILD b/testing/libsmi/APKBUILD
deleted file mode 100644
index a7899a58f36..00000000000
--- a/testing/libsmi/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Mikolaj Chwalisz <chwalisz@tkn.tu-berlin.de>
-# Maintainer: Mikolaj Chwalisz <chwalisz@tkn.tu-berlin.de>
-pkgname=libsmi
-pkgver="0.5.0"
-pkgrel=0
-pkgdesc="Library to access SMI management information"
-url="https://www.ibr.cs.tu-bs.de/projects/libsmi/"
-arch="all"
-license="GPL-2.0-or-later BSD"
-depends=""
-makedepends="$depends_dev"
-install=""
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.ibr.cs.tu-bs.de/projects/libsmi/download/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --libexecdir=/usr/lib \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
-}
-
-sha512sums="be82e6b7054426e4634ac9d90467b89a51a9c836273c9d516f07ff3cec3a8dcc8b3bb0e0396d5facec3d9c952b17fb67f24ff2d3959e7e5cf9eced72023a0708 libsmi-0.5.0.tar.gz"
diff --git a/testing/libsoundio/APKBUILD b/testing/libsoundio/APKBUILD
deleted file mode 100644
index b22ed2e1a3e..00000000000
--- a/testing/libsoundio/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: Mark Jynx <markjynx@cock.li>
-pkgname="libsoundio"
-pkgver="2.0.0"
-pkgrel=1
-pkgdesc="C library for cross-platform real-time audio input and output"
-url="http://libsound.io"
-arch="all"
-options="!check" # Tests are not automated
-license="MIT"
-depends_dev="alsa-lib-dev"
-makedepends="cmake $depends_dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/andrewrk/libsoundio/archive/$pkgver.tar.gz"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_STATIC_LIBS=OFF \
- -DBUILD_EXAMPLE_PROGRAMS=OFF \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="347a9be1789a41e778ea8d0efa1d00e03e725a4ab65e3aaf6c71e49138643f08a50a81bd60087d86a3b4d63beaeec617e47ba6b81f829ece8a3ac17418eb5309 libsoundio-2.0.0.tar.gz"
diff --git a/testing/libspatialindex/APKBUILD b/testing/libspatialindex/APKBUILD
new file mode 100644
index 00000000000..1de655215db
--- /dev/null
+++ b/testing/libspatialindex/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=libspatialindex
+pkgver=0_git20210205
+_commit=8ee223632f95c81f49f5eb2d547ad973475c4601
+pkgrel=1
+pkgdesc="extensible framework for robust spatial indexing methods"
+url="https://libspatialindex.org/"
+arch="all"
+license="MIT"
+makedepends="cmake"
+subpackages="$pkgname-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/libspatialindex/libspatialindex/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_PREFIX_PATH=/usr \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTING=ON
+ cmake --build build
+}
+
+check() {
+ cd build && ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="caf91aac77b75445e4fc4d0baedcd10c619b2097dfd841b00339d9ddd4b73db05b99de1d84be88f1083f4713a936cf110d5851523491f5a74c6f96e1d5795dbb libspatialindex-8ee223632f95c81f49f5eb2d547ad973475c4601.tar.gz"
diff --git a/testing/libspatialite/APKBUILD b/testing/libspatialite/APKBUILD
deleted file mode 100644
index 8738cfec2d6..00000000000
--- a/testing/libspatialite/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=libspatialite
-pkgver=4.3.0a
-pkgrel=8
-pkgdesc="SpatiaLite extends the SQLite core to support fully fledged Spatial SQL capabilities."
-url="https://www.gaia-gis.it/fossil/libspatialite/index"
-arch="x86_64"
-license="MPL-1.1"
-options="!check"
-makedepends="geos-dev sqlite-dev proj-dev zlib-dev libxml2-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::http://www.gaia-gis.it/gaia-sins/$pkgname-$pkgver.tar.gz"
-
-build() {
- CFLAGS="$CFLAGS -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1" \
- ./configure \
- --prefix=/usr \
- --build=$CBUILD \
- --host=$CHOST \
- --enable-freexl=no \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-sha512sums="adfd63e8dde0f370b07e4e7bb557647d2bfb5549205b60bdcaaca69ff81298a3d885e7c1ca515ef56dd0aca152ae940df8b5dbcb65bb61ae0a9337499895c3c0 libspatialite-4.3.0a.tar.gz"
diff --git a/testing/libspiro/APKBUILD b/testing/libspiro/APKBUILD
deleted file mode 100644
index e51489b3cfb..00000000000
--- a/testing/libspiro/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Ed Robinson <ed@reevoo.com>
-# Maintainer: Ed Robinson <ed@reevoo.com>
-pkgname=libspiro
-pkgver=20190731
-pkgrel=0
-pkgdesc="Spiro is the creation of Raph Levien. It simplifies the drawing of beautiful curves."
-url="https://github.com/fontforge/libspiro"
-arch="all"
-license="GPL-3.0-or-later"
-subpackages="$pkgname-dev"
-source="https://github.com/fontforge/libspiro/releases/download/$pkgver/libspiro-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="3b53e2ecf06090f2c47483bc87941d98deb63c5b6f25a49d2983b987f40032dd5936974bb4df1686595d97f0b3e3f6cd9d008f3c05c39f9686b1d5ffb444ec49 libspiro-20190731.tar.gz"
diff --git a/testing/libstirshaken/0001-eradicate-Werror.patch b/testing/libstirshaken/0001-eradicate-Werror.patch
new file mode 100644
index 00000000000..a9b8a8e7a44
--- /dev/null
+++ b/testing/libstirshaken/0001-eradicate-Werror.patch
@@ -0,0 +1,36 @@
+From 8aa458351ef544dc65194214368815268953ccf9 Mon Sep 17 00:00:00 2001
+From: Leonardo Arena <rnalrd@alpinelinux.org>
+Date: Thu, 8 Feb 2024 09:08:06 +0000
+Subject: [PATCH] eradicate -Werror
+
+---
+ Makefile.am | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index f9e38df..3d80a7f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,5 +1,5 @@
+ ACLOCAL_AMFLAGS = -I build/m4
+-AM_CFLAGS = -I./src -Iinclude -I$(srcdir)/include $(KS_CFLAGS) $(CURL_CFLAGS) $(JWT_CFLAGS) $(openssl_CFLAGS) -Wall -Wno-gnu-zero-variadic-macro-arguments -pedantic -Werror
++AM_CFLAGS = -I./src -Iinclude -I$(srcdir)/include $(KS_CFLAGS) $(CURL_CFLAGS) $(JWT_CFLAGS) $(openssl_CFLAGS) -Wall -Wno-gnu-zero-variadic-macro-arguments -pedantic
+
+ lib_LTLIBRARIES = libstirshaken.la
+ libstirshaken_la_SOURCES = src/stir_shaken.c src/stir_shaken_service.c src/stir_shaken_passport.c src/stir_shaken_verify.c src/stir_shaken_ssl.c src/stir_shaken_acme.c src/stir_shaken_sp.c src/stir_shaken_version.c
+diff --git a/configure.ac b/configure.ac
+index 0674352..ed24061 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,6 +1,6 @@
+ AC_INIT([libstirshaken], [m4_esyscmd_s([git rev-parse HEAD])], [https://github.com/signalwire/libstirshaken], [libstirshaken], [signalwire.com])
+
+-AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign])
++AM_INIT_AUTOMAKE([subdir-objects -Wall foreign])
+
+ AC_CONFIG_MACRO_DIRS([build/m4])
+
+--
+2.42.0
+
diff --git a/testing/libstirshaken/APKBUILD b/testing/libstirshaken/APKBUILD
new file mode 100755
index 00000000000..51c64d69a33
--- /dev/null
+++ b/testing/libstirshaken/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+
+_gitcommit="6d99ee01ecb3d2930d5440b0e78e2cb3b1f3f326"
+
+pkgname=libstirshaken
+pkgver=0_git20240208
+pkgrel=2
+pkgdesc="C library implementing STIR-shaken STI-SP AS/VS, STI-CA"
+url="https://github.com/signalwire/libstirshaken"
+arch="all"
+license="MIT"
+subpackages="$pkgname-dev $pkgname-tools"
+makedepends="autoconf automake bash curl-dev libjwt-dev libks-dev libtool util-linux-dev"
+options="!check" # FAIL: Failed to write cert to disk. test/stir_shaken_test_8.c:116
+source="$pkgname-$pkgver.tar.gz::https://github.com/signalwire/libstirshaken/archive/$_gitcommit.tar.gz
+ 0001-eradicate-Werror.patch
+ "
+builddir="$srcdir/$pkgname-$_gitcommit"
+
+build() {
+ autoreconf -i
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+}
+
+check() {
+ make check
+}
+
+tools() {
+ pkgdesc="libstirshaken binary tools"
+ amove usr/bin
+}
+
+sha512sums="
+93ca507f11e28be4c5fdee41e3a3de6d755bb1c0db7ff55b28cc4e35f4ce583f39ec6e43f090e5d3506afc72f94ecd049d2b726bfd31085d683a0436bf9d1e15 libstirshaken-0_git20240208.tar.gz
+4f3a10416970d33c15736c1b3e751a91e603841d30e7fee18e77dbc46a15740967117230d6e032c7df3c5b3e05203141bb58ba52fd7e0ce918c85661f55d33c3 0001-eradicate-Werror.patch
+"
diff --git a/testing/libsymmetrica/APKBUILD b/testing/libsymmetrica/APKBUILD
new file mode 100644
index 00000000000..75aa968d58d
--- /dev/null
+++ b/testing/libsymmetrica/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libsymmetrica
+pkgver=3.0.1
+pkgrel=2
+pkgdesc="Library with a collection of routines for combinatorial mathematics"
+url="https://gitlab.com/sagemath/symmetrica"
+arch="all"
+license="ISC"
+makedepends="autoconf automake libtool"
+source="https://gitlab.com/sagemath/symmetrica/-/archive/$pkgver/symmetrica-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-dev"
+builddir="$srcdir/symmetrica-$pkgver"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ # It has just a README.md from repository.
+ rm -r "${pkgdir:?}"/usr/share
+}
+
+sha512sums="
+fd663ba1bf0d6ca91aa67cbb642f2a9150c7e938f3fef54b4227f67e1269b9f5b64af597aaebf158ce936441025d348db907fa0cbf0d7ddeca19985e8ea565de symmetrica-3.0.1.tar.gz
+"
diff --git a/testing/libtbb/APKBUILD b/testing/libtbb/APKBUILD
deleted file mode 100644
index 776a36349a1..00000000000
--- a/testing/libtbb/APKBUILD
+++ /dev/null
@@ -1,57 +0,0 @@
-# Contributor: David Huffman <storedbox@outlook.com>
-# Maintainer: David Huffman <storedbox@outlook.com>
-pkgname=libtbb
-pkgver=2020.2
-pkgrel=0
-pkgdesc="Intel® TBB, a widely used C++ template library for task parallelism"
-url="https://github.com/oneapi-src/oneTBB"
-arch="x86 x86_64"
-license="GPL-2.0-only"
-makedepends="linux-headers cmake"
-subpackages="$pkgname-dev"
-source="tbb-$pkgver.tar.gz::https://github.com/oneapi-src/oneTBB/archive/v$pkgver.tar.gz
- musl.patch
- tbb.pc
- tbbmalloc.pc
- tbbmalloc_proxy.pc
- "
-builddir="$srcdir/oneTBB-$pkgver"
-
-prepare() {
- default_prepare
-
- sed -i 's|CPLUS = g..|CPLUS = $(CXX)|g' build/linux.gcc.inc
- sed -i 's|CONLY = gcc|CONLY = $(CC)|g' build/linux.gcc.inc
-
- sed -e "s@#define MALLOC_UNIXLIKE_OVERLOAD_ENABLED __linux__@@" \
- -i src/tbbmalloc/proxy.h
-
- sed -i "s|@@VERSION@@|$pkgver|" -i "$srcdir"/*.pc
-}
-
-build() {
- make
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/lib
- mkdir -p "$pkgdir"/usr/include
-
- mv build/linux_*/*.so* "$pkgdir"/usr/lib
- mv include/tbb "$pkgdir"/usr/include
-
- cmake \
- -DINSTALL_DIR="$pkgdir"/usr/lib/cmake/TBB \
- -DSYSTEM_NAME=Linux \
- -DLIB_REL_PATH=../.. \
- -DINC_REL_PATH=../../../include \
- -P cmake/tbb_config_installer.cmake
-
- install -Dm0644 "$srcdir"/*.pc -t "$pkgdir"/usr/lib/pkgconfig
-}
-
-sha512sums="b9a5d0e814ebd2e69690585bcfb5a545c06f030e193154bef161ac59066044109f8a0305a9ba535c447739da3380c351067db19c38de4bf96ec742b044f39885 tbb-2020.2.tar.gz
-c5f2d284e63fa3e9a835df45692355946fa3cd2f31ffb775ef8eff18780d28203115e799d70d547526c3a5c2b2290cb032e1eaa6160e188598abe62d89d2480e musl.patch
-b7849e84c5f4d868ad19dc4a2433492facd1f75fe6e5cb0afc334e8f07bb4657d318ee1bc53f7890bfb8a87c7233bba85b61aba2aec9ea3dc24652a4bdec4dde tbb.pc
-25b0bfe2067f287064f81dc434ac70336ad42fdd7fa91cded2e467f3939000480e1012675dc4e435a1712cf9b968cb565f213dfffb3f69ad46929aec237b9a02 tbbmalloc.pc
-5952862755736fb85982281b3953183ed9d4657497a7f6bae1ef66bd1e2265882773764f07e46679b2aa750f80f47cc2a019024822ab5fa272b718c539ef3462 tbbmalloc_proxy.pc"
diff --git a/testing/libtbb/musl.patch b/testing/libtbb/musl.patch
deleted file mode 100644
index 92309a7cf2f..00000000000
--- a/testing/libtbb/musl.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/src/tbbmalloc/proxy.cpp.orig 2018-10-17 14:05:31.311723013 +0200
-+++ b/src/tbbmalloc/proxy.cpp 2018-10-17 14:06:32.972726194 +0200
-@@ -28,6 +28,7 @@
- // of aligned_alloc as required by new C++ standard, this makes it hard to
- // redefine aligned_alloc here. However, running on systems with new libc
- // version, it still needs it to be redefined, thus tricking system headers
-+#if defined(__GLIBC__)
- #if defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
- // tell <cstdlib> that there is no aligned_alloc
- #undef _GLIBCXX_HAVE_ALIGNED_ALLOC
-@@ -37,6 +38,7 @@
- #include <cstdlib>
- #undef aligned_alloc
- #endif // defined(__GLIBC_PREREQ)&&!__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
-+#endif // defined(__GLIBC__)
- #endif // __linux__ && !__ANDROID__
-
- #include "proxy.h"
diff --git a/testing/libtbb/tbb.pc b/testing/libtbb/tbb.pc
deleted file mode 100644
index 774b54e0b3f..00000000000
--- a/testing/libtbb/tbb.pc
+++ /dev/null
@@ -1,5 +0,0 @@
-Name: Threading Building Blocks
-Description: The Threading Building Blocks library abstracts low-level threading details
-URL: http://www.threadingbuildingblocks.org/
-Version: @@VERSION@@
-Libs: -ltbb
diff --git a/testing/libtbb/tbbmalloc.pc b/testing/libtbb/tbbmalloc.pc
deleted file mode 100644
index 35e318583ab..00000000000
--- a/testing/libtbb/tbbmalloc.pc
+++ /dev/null
@@ -1,5 +0,0 @@
-Name: Threading Building Blocks Scalable Allocator
-Description: Implementation of Scalable Memory Allocator of Threading Building Blocks
-URL: http://www.threadingbuildingblocks.org/
-Version: @@VERSION@@
-Libs: -ltbbmalloc
diff --git a/testing/libtbb/tbbmalloc_proxy.pc b/testing/libtbb/tbbmalloc_proxy.pc
deleted file mode 100644
index 3d983761cca..00000000000
--- a/testing/libtbb/tbbmalloc_proxy.pc
+++ /dev/null
@@ -1,5 +0,0 @@
-Name: Threading Building Blocks Scallable Malloc Proxy
-Description: Implementation of proxy that redirects memory allocation calls to TBB Scalable Memory Allocator
-URL: http://www.threadingbuildingblocks.org/
-Version: @@VERSION@@
-Libs: -ltbbmalloc_proxy -ltbbmalloc
diff --git a/testing/libthai/APKBUILD b/testing/libthai/APKBUILD
new file mode 100644
index 00000000000..897be0ae911
--- /dev/null
+++ b/testing/libthai/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=libthai
+pkgver=0.1.29
+pkgrel=0
+pkgdesc="Thai language library"
+url="https://github.com/tlwg/libthai"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="doxygen libdatrie libdatrie-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/tlwg/libthai/releases/download/v$pkgver/libthai-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+0ba1261581a1705a2a2546a3071acb3c63892dbf111f0dad415667165a6b9542a5e4549061c67b11ec53de7c9e70fceb3c04d794fd12a22d991a539dbacebda1 libthai-0.1.29.tar.xz
+"
diff --git a/testing/libthreadar/APKBUILD b/testing/libthreadar/APKBUILD
deleted file mode 100644
index 0efc8c7715a..00000000000
--- a/testing/libthreadar/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Simon Rupf <simon@rupf.net>
-pkgname=libthreadar
-pkgver=1.2.1
-pkgrel=0
-pkgdesc="a C++ library that provides several classes to manipulate threads"
-url="http://libthreadar.sourceforge.net/"
-arch="all"
-license="LGPL-3.0-or-later"
-subpackages="$pkgname-dev"
-source="https://downloads.sourceforge.net/libthreadar/libthreadar-$pkgver.tar.gz
- alpine_strerror_r.patch"
-
-build() {
- ./configure --prefix=/usr --enable-static=no
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="52b2df3ef58b72ec3d504594528c09d9d4345321bc8dde2cfe3badc577eff5d4bbdbfc08d4c8685e47df1ce3d13ea2867f267a2c70b4e66d21f7d05810644f65 libthreadar-1.2.1.tar.gz
-f741bb9d0b16456061148f365a52bc06767aad13f870126e975a6ba598b33494b6e486c948a94591d05d5955dfac190a4f88cac5377ba9f45adf73976f6017a2 alpine_strerror_r.patch"
diff --git a/testing/libthreadar/alpine_strerror_r.patch b/testing/libthreadar/alpine_strerror_r.patch
deleted file mode 100644
index fe26c895bbb..00000000000
--- a/testing/libthreadar/alpine_strerror_r.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./src/exceptions.cpp
-+++ ./src/exceptions.cpp
-@@ -59,16 +59,10 @@
- const unsigned int MSGSIZE = 300;
- char buffer[MSGSIZE];
-
--#if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
- // we expect the XSI-compliant strerror_r
- int val = strerror_r(error_code, buffer, MSGSIZE);
- if(val != 0)
- strncpy(buffer, "Error code to message conversion, failed", MSGSIZE);
--#else
-- char *val = strerror_r(error_code, buffer, MSGSIZE);
-- if(val != buffer)
-- strncpy(buffer, val, MSGSIZE);
--#endif
- buffer[MSGSIZE-1] = '\0';
-
- reset_first_message(buffer);
diff --git a/testing/libtickit/APKBUILD b/testing/libtickit/APKBUILD
deleted file mode 100644
index 08d3663b7ee..00000000000
--- a/testing/libtickit/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Roberto Oliveira <robertoguimaraes8@gmail.com>
-# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
-pkgname=libtickit
-pkgver=0.3.5
-pkgrel=0
-pkgdesc="library that provides an abstracted mechanism for building interactive full-screen terminal programs"
-url="http://www.leonerd.org.uk/code/libtickit/"
-arch="all" # disable x86* due to testsuite failure
-license="MIT"
-makedepends="libtermkey-dev libtool"
-checkdepends="perl-test-harness-utils"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="http://www.leonerd.org.uk/code/libtickit/libtickit-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- sed -i -e "s/PREFIX=\/usr\/local/PREFIX=\/usr/g" Makefile
-}
-
-build() {
- make PREFIX=/usr
-}
-
-check() {
- # test is flawed
- rm t/11term-output-screen.c
- TERM=linux make test
-}
-
-package() {
- make install DESTDIR="$pkgdir"
-}
-
-static() {
- depends=""
- pkgdesc="$pkgdesc (static library)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
-}
-
-sha512sums="3c9ff2b35faded1413448d8f954c151dd07254a0aabbc8a69eb95b7e77fee59a1617036a32f8f41ef6354111f55a58c6e821d36f2211564522866298e3b70a8a libtickit-0.3.5.tar.gz"
diff --git a/testing/libtins/APKBUILD b/testing/libtins/APKBUILD
new file mode 100644
index 00000000000..4d41e0232c9
--- /dev/null
+++ b/testing/libtins/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=libtins
+pkgver=4.5
+pkgrel=1
+pkgdesc="A high-level, multiplatform C++ network packet sniffing and crafting library"
+url="http://libtins.github.io/"
+arch="all"
+license="BSD-2-Clause"
+options="!check"
+makedepends="libpcap-dev openssl-dev>3 boost-dev cmake"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mfontanini/libtins/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ mkdir -p build
+}
+
+build() {
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIBTINS_ENABLE_CXX11=yes \
+ ../
+ make
+}
+
+package() {
+ cd build
+ make DESTDIR="$pkgdir" install
+ install -Dm644 ../LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+sha512sums="
+d8887949cb545dbaf4247c8405feb5cc1032f370bb418dd5344043dc97555b1b826a8d33cfc7dd0a7a9a9af6f3a46bd6fcbed89f98d5eb23fdd10294f823fcd6 libtins-4.5.tar.gz
+"
diff --git a/testing/libtommath/APKBUILD b/testing/libtommath/APKBUILD
index 3430f27c62b..2d8f438d470 100644
--- a/testing/libtommath/APKBUILD
+++ b/testing/libtommath/APKBUILD
@@ -1,24 +1,36 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
pkgname=libtommath
-pkgver=1.2.0
+pkgver=1.2.1
pkgrel=0
-pkgdesc="Portable number theoretic multi-precision integer library"
+pkgdesc="number theoretic multiple-precision integer library"
url="https://www.libtom.net/LibTomMath/"
arch="all"
-license="custom:LibTom"
+license="Unlicense"
makedepends="libtool"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://github.com/libtom/libtommath/releases/download/v$pkgver/ltm-$pkgver.tar.xz"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.xz::https://github.com/libtom/libtommath/releases/download/v$pkgver/ltm-$pkgver.tar.xz"
+
+# secfixes:
+# 1.2.1-r0:
+# - CVE-2023-36328
build() {
- make -f makefile.shared IGNORE_SPEED=1
- make
+ make -f makefile.shared
+}
+
+check() {
+ # make test creates a stand-alone test binary that executes several test routines.
+ # clone $builddir to testdir for running tests
+ cp -rp $builddir $srcdir/testdir
+ cd $srcdir/testdir
+ make test
}
package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
- make -f makefile.shared PREFIX=/usr DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" LIBPATH=/usr/lib INCPATH=/usr/include -f makefile.shared install
}
-sha512sums="6f9ccd0691831f07f86ddc81cb6145504b3d5da66dd3e92312c64cce0ea986fa4e08ba65ca8991aaebe56702c2d7c15f309696785b813dffb4c112a4ad04b203 ltm-1.2.0.tar.xz"
+sha512sums="
+50c9459357aa7f5076af93de6701c617da0dbbf2230a2f4468062704a6cd6e9d3c2fbb27016f68a7e1d6b35d6ddb2088630b24ea6acc20ed8c19594913d36e95 libtommath-1.2.1.tar.xz
+"
diff --git a/testing/libtorrent-rasterbar/APKBUILD b/testing/libtorrent-rasterbar/APKBUILD
deleted file mode 100644
index ed342dd3e37..00000000000
--- a/testing/libtorrent-rasterbar/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor: August Klein <amatcoder@gmail.com>
-# Maintainer: August Klein <amatcoder@gmail.com>
-pkgname=libtorrent-rasterbar
-pkgver=1.2.6
-_pkgver=${pkgver//./_}
-pkgrel=0
-pkgdesc="Feature complete C++ bittorrent implementation"
-options="!check" # Tests hang on all arches
-url="https://www.rasterbar.com/products/libtorrent"
-arch="all"
-license="BSD-3-Clause"
-depends_dev="boost-dev openssl-dev python3-dev"
-makedepends="$depends_dev linux-headers"
-subpackages="py3-$pkgname:_py3 $pkgname-static $pkgname-dev"
-source="https://github.com/arvidn/libtorrent/releases/download/libtorrent-$_pkgver/libtorrent-rasterbar-$pkgver.tar.gz"
-
-build() {
- local _py3ver=$(python3 -c 'import sys; print("{}{}".format(sys.version_info.major, sys.version_info.minor))')
- PYTHON=/usr/bin/python3 \
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --enable-tests \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-python-binding \
- --with-boost-system=boost_python$_py3ver
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-_py3() {
- pkgdesc="Python3 bindings for $pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
-}
-
-sha512sums="78f9120b1b824dac37ec8bd16a29abdfcd7fd6af3c56e0cc9048d74412d000ef5ea1e8421f757eddb914f8bb20de9fb4192d5b8a3f781fa2e1d4f134ea24b1ee libtorrent-rasterbar-1.2.6.tar.gz"
diff --git a/testing/libtsm/APKBUILD b/testing/libtsm/APKBUILD
new file mode 100644
index 00000000000..35258ba7d57
--- /dev/null
+++ b/testing/libtsm/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=libtsm
+pkgver=4.0.2
+pkgrel=0
+pkgdesc="Terminal-emulator State Machine"
+url="https://github.com/Aetf/libtsm"
+arch="all"
+license="MIT AND BSD-2-Clause"
+makedepends="cmake samurai"
+checkdepends="check-dev"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Aetf/libtsm/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+58eb955012fd154b7c165d799d0f80c9a71a504481e78471103fd299f2e73f3b7d89487387166895a9a5996165344335baa56f0550317caaa2eec6b0bad55e59 libtsm-4.0.2.tar.gz
+"
diff --git a/testing/libubox/APKBUILD b/testing/libubox/APKBUILD
new file mode 100644
index 00000000000..da21285b060
--- /dev/null
+++ b/testing/libubox/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=libubox
+pkgver=20230523
+pkgrel=0
+pkgdesc="OpenWrt utility and data structures library"
+url="https://git.openwrt.org/project/ustream-ssl.git"
+arch="all"
+license="ISC"
+depends=""
+depends_dev="libubox json-c-dev"
+makedepends="cmake $depends_dev"
+subpackages="libblobmsg jshn $pkgname-static $pkgname-dev"
+_owrtgit=75a3b870
+_owrtver="${pkgver:0:4}-${pkgver:4:2}-${pkgver:6:2}-${_owrtgit}"
+source="https://sources.openwrt.org/libubox-${_owrtver}.tar.xz"
+builddir="$srcdir/libubox-${_owrtver}"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CFLAGS="$CFLAGS -fPIC -DPIC" cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_LUA=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+jshn() {
+ amove usr/bin/jshn
+ amove usr/share/libubox/jshn.sh
+}
+
+libblobmsg() {
+ amove usr/lib/libblobmsg_json.so
+ amove usr/lib/libjson_script.so
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+67cac344dc58bccd54937a8a32d8492be8b8d007b2419c3b90e6290d5ac995934c9de6f29f3a0e48382b9ef2af83ec2e4a2a97c346b4de2d42999b70eecfaf88 libubox-2023-05-23-75a3b870.tar.xz
+"
diff --git a/testing/libucl/APKBUILD b/testing/libucl/APKBUILD
new file mode 100644
index 00000000000..8f16e09b373
--- /dev/null
+++ b/testing/libucl/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=libucl
+pkgver=0.9.0
+pkgrel=0
+pkgdesc="Universal configuration library parser"
+url="https://github.com/vstakhov/libucl"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ autoconf
+ automake
+ libtool
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/vstakhov/libucl/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # fail for no reason
+
+prepare() {
+ default_prepare
+ autoreconf -fvi
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST
+
+ make
+}
+
+check() {
+ make -j1 check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+a7bcb03dc3b5e3b8e5c141fb3edee0c749e20d63ad69fba4d3c6ca56ef56b1130287b0f497de37bf9789c2263a46121c662fedc7a870354c2849d2e14d90cab5 libucl-0.9.0.tar.gz
+"
diff --git a/testing/libuecc/APKBUILD b/testing/libuecc/APKBUILD
index 3fa9028d842..8add61d168e 100644
--- a/testing/libuecc/APKBUILD
+++ b/testing/libuecc/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=libuecc
pkgver=7
-pkgrel=2
+pkgrel=3
pkgdesc="Very small Elliptic Curve Cryptography library"
url="https://git.universe-factory.net/libuecc"
arch="all"
diff --git a/testing/libui/APKBUILD b/testing/libui/APKBUILD
new file mode 100644
index 00000000000..508b500503d
--- /dev/null
+++ b/testing/libui/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer:
+pkgname=libui
+pkgver=4.1_alpha20211213
+_commit=fea45b2d5b75839be0af9acc842a147c5cba9295
+pkgrel=0
+pkgdesc="Simple and portable GUI library for C"
+url="https://github.com/andlabs/libui"
+arch="all"
+license="MIT"
+options="!check" # no test suite
+makedepends="
+ meson
+ gtk+3.0-dev
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/andlabs/libui/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ pwd
+ echo $builddir
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+59f31e0b0afff0f41592f5edaa495b89275e1bc7329312145dcea2896aa2898658b60c187be8f805b4cf1c23ce1ae4171c637f115d716998569d5c53e103217b libui-4.1_alpha20211213.tar.gz
+"
diff --git a/testing/libunicode/APKBUILD b/testing/libunicode/APKBUILD
new file mode 100644
index 00000000000..79befe2d44f
--- /dev/null
+++ b/testing/libunicode/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=libunicode
+pkgver=0.4.0
+pkgrel=0
+pkgdesc="Modern C++17 Unicode library"
+url="https://contour-terminal.org"
+arch="x86_64 aarch64" # 'intrinsics' has not been declared
+license="Apache-2.0"
+makedepends="
+ catch2-3
+ cmake
+ fmt-dev
+ python3
+ samurai
+ unicode-character-database
+"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-tools
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/contour-terminal/libunicode/archive/refs/tags/v$pkgver.tar.gz
+ rm-catch2-supression.patch
+"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON \
+ -DLIBUNICODE_UCD_DIR=/usr/share/unicode \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIBUNICODE_TESTING=ON
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build -C Release --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+tools() {
+ pkgdesc="$pkgdesc - query tools"
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/unicode-query -t "$subpkgdir"/usr/bin
+}
+
+sha512sums="
+48be9f3397f97432ae6a4d6e116fd8e77abf7d085b5dbb74c45828671fd45b6f5ee0e54751cf4aeeec61ab025b6831232cdb9ed1c34e1e7a4ebf84bbe1b4f84b libunicode-0.4.0.tar.gz
+449d88a998259688efec173d36d9bef1171e92f1b2cb3c28b9960417479e1300a849ff9a0fb40453f75375df5d795d2a479bef6eb75a761d66fea9a3f5fb89c6 rm-catch2-supression.patch
+"
diff --git a/testing/libunicode/rm-catch2-supression.patch b/testing/libunicode/rm-catch2-supression.patch
new file mode 100644
index 00000000000..4e47af0d3fe
--- /dev/null
+++ b/testing/libunicode/rm-catch2-supression.patch
@@ -0,0 +1,17 @@
+--- a/src/libunicode/CMakeLists.txt
++++ b/src/libunicode/CMakeLists.txt
+@@ -220,14 +220,6 @@
+ word_segmenter_test.cpp
+ )
+
+- # supress conversion warnings for Catch2
+- # https://github.com/catchorg/Catch2/issues/2583
+- # https://github.com/SFML/SFML/blob/e45628e2ebc5843baa3739781276fa85a54d4653/test/CMakeLists.txt#L18-L22
+- set_target_properties(Catch2 PROPERTIES COMPILE_OPTIONS "" EXPORT_COMPILE_COMMANDS OFF)
+- set_target_properties(Catch2WithMain PROPERTIES EXPORT_COMPILE_COMMANDS OFF)
+- get_target_property(CATCH2_INCLUDE_DIRS Catch2 INTERFACE_INCLUDE_DIRECTORIES)
+- target_include_directories(Catch2 SYSTEM INTERFACE ${CATCH2_INCLUDE_DIRS})
+-
+ target_link_libraries(unicode_test unicode Catch2::Catch2WithMain fmt::fmt-header-only)
+ add_test(unicode_test unicode_test)
+ endif()
diff --git a/testing/libuninameslist/APKBUILD b/testing/libuninameslist/APKBUILD
index 1e84a20120f..b52e0dce833 100644
--- a/testing/libuninameslist/APKBUILD
+++ b/testing/libuninameslist/APKBUILD
@@ -1,23 +1,21 @@
# Contributor: Ed Robinson <ed@reevoo.com>
# Maintainer: Ed Robinson <ed@reevoo.com>
pkgname=libuninameslist
-pkgver=20200413
+pkgver=20230916
pkgrel=0
pkgdesc="A Library of Unicode names and annotation data"
url="https://github.com/fontforge/libuninameslist"
arch="all"
license="BSD-3-Clause"
-makedepends="autoconf automake libtool"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/fontforge/libuninameslist/releases/download/$pkgver/libuninameslist-dist-$pkgver.tar.gz"
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
- ./configure --prefix=/usr
+ ./configure \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --disable-static
make
}
@@ -29,10 +27,6 @@ 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="88befff4bf7efed149b4e3a5d58a733b2cb6477e103ec34529ff02a88f8c72a6fc9d7b0be9e97cd539a75c8ebe5e4127cdf03a568da2f219157174b9b585b2a3 libuninameslist-dist-20200413.tar.gz"
+sha512sums="
+32d5c59b0bdc07332dc24d4d6adc4f9173c8e9f41cad1adf1c6f5b9dd0ef8dd62a4ca3c8151d8ef4b5cb7f9ea4df63d8b63e906658b7d7062c5a17edd452c3e5 libuninameslist-dist-20230916.tar.gz
+"
diff --git a/testing/libupnp/APKBUILD b/testing/libupnp/APKBUILD
deleted file mode 100644
index b09a9280c6f..00000000000
--- a/testing/libupnp/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Contributor: Mike Crute <mike@crute.us>
-pkgname=libupnp
-pkgver=1.12.1
-pkgrel=0
-pkgdesc="Portable Open Source UPnP Development Kit"
-url="http://pupnp.sourceforge.net"
-arch="all"
-license="BSD-3-Clause"
-makedepends="automake autoconf libtool"
-subpackages="$pkgname-dev"
-source="https://github.com/pupnp/pupnp/releases/download/release-$pkgver/libupnp-$pkgver.tar.bz2"
-
-prepare() {
- default_prepare
- autoreconf
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --enable-ipv6 \
- --enable-static=no \
- --enable-reuseaddr
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="f13833118d08fc05273dc65a12596854b937c505b20d82e58eb1c2e1fa35dba0cafd5799475e030f3c698069046cc5256e6ef5afe398680e7ea881df953b95e6 libupnp-1.12.1.tar.bz2"
diff --git a/testing/libupnpp/APKBUILD b/testing/libupnpp/APKBUILD
deleted file mode 100644
index 7d3f8c7f65e..00000000000
--- a/testing/libupnpp/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Marvin Steadfast <marvin@xsteadfastx.org>
-# Maintainer: Marvin Steadfast <marvin@xsteadfastx.org>
-pkgname=libupnpp
-pkgver=0.17.1
-pkgrel=0
-pkgdesc="a C++ wrapper for libupnp"
-url="https://opensourceprojects.eu/p/libupnpp"
-arch="all"
-license="LGPL-2.0-or-later"
-options="!check"
-depends=""
-makedepends="curl-dev expat-dev libupnp-dev"
-install=""
-subpackages="$pkgname-dev"
-source="libupnpp-$pkgver.tar.gz::http://www.lesbonscomptes.com/upmpdcli/downloads/libupnpp-$pkgver.tar.gz"
-builddir="$srcdir/libupnpp-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="0aaaf43fa54f7c18f78385c42c53595e546ddb06963efcd0da12af5de1327b5173eda2ebdf2c1f57613d9d45a210a42b2304965dfb6d423363db8a25e6242474 libupnpp-0.17.1.tar.gz"
diff --git a/testing/liburing/APKBUILD b/testing/liburing/APKBUILD
deleted file mode 100644
index 9343d86d3ae..00000000000
--- a/testing/liburing/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=liburing
-pkgver=0.5
-pkgrel=0
-pkgdesc="Linux kernel io_uring access library"
-url="https://git.kernel.dk/cgit/liburing/"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="linux-headers"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://git.kernel.dk/cgit/liburing/snapshot/liburing-$pkgver.tar.gz
- "
-
-build() {
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b855fd55635084c9386dd94f78f27e587025c86599303c77d32f3e7b59a6e41474a055bf34e6d05535582a48fa108a3e2f1f2a4a7d37b700d733844bc309976f liburing-0.5.tar.gz"
diff --git a/testing/libusb-moded-qt/APKBUILD b/testing/libusb-moded-qt/APKBUILD
deleted file mode 100644
index 9322f44bbf4..00000000000
--- a/testing/libusb-moded-qt/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=libusb-moded-qt
-pkgver=1.9
-pkgrel=0
-pkgdesc="Mer's libusb-moded-qt"
-url="https://git.sailfishos.org/mer-core/libusb-moded-qt"
-arch="all"
-license="BSD-2-Clause"
-depends_dev="qt5-qtbase-dev usb-moded-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/libusb-moded-qt/-/archive/$pkgver/libusb-moded-qt-$pkgver.tar.gz"
-
-build() {
- qmake-qt5 PREFIX=/usr
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="24cfe2d83d0b371f5ba490fc5c23ca6931705d9cf65b70a571848465390377cf01763b80e9c6a1f0e5f7a428f6b945cbbe4577cb6153de74d84f2c436e1e48e7 libusb-moded-qt-1.9.tar.gz"
diff --git a/testing/libuser/0001-remove-unused-execinfo.h.patch b/testing/libuser/0001-remove-unused-execinfo.h.patch
deleted file mode 100644
index 4bc0219f19c..00000000000
--- a/testing/libuser/0001-remove-unused-execinfo.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 4b2f81f307ffeac12956e5c16e894e5ebb937ea5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Jan 2016 02:26:00 +0000
-Subject: [PATCH 2/2] remove unused execinfo.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- lib/error.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/lib/error.c b/lib/error.c
-index a5ec30a..443e601 100644
---- a/lib/error.c
-+++ b/lib/error.c
-@@ -18,7 +18,6 @@
- #include <config.h>
- #include <sys/types.h>
- #include <errno.h>
--#include <execinfo.h>
- #include <libintl.h>
- #include <stdarg.h>
- #include <stdlib.h>
---
-2.7.0
-
diff --git a/testing/libuser/APKBUILD b/testing/libuser/APKBUILD
deleted file mode 100644
index 440d7fb7198..00000000000
--- a/testing/libuser/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=libuser
-pkgver=0.62
-pkgrel=4
-pkgdesc="A standardized interface for manipulating and administering user and group accounts"
-url="https://pagure.io/libuser"
-arch="all"
-license="LGPL-2.0-or-later"
-depends="python3"
-makedepends="python3-dev glib-dev popt-dev libexecinfo-dev linux-pam-dev
- autoconf automake libtool"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang py3-$pkgname:_py"
-source="https://releases.pagure.org/libuser/libuser-$pkgver.tar.xz
- 0001-remove-unused-execinfo.h.patch
- "
-
-prepare() {
- default_prepare
- autoreconf -vif
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --sbindir=/usr/bin \
- --with-python \
- --disable-gtk-doc-html \
- --disable-rpath \
- --with-python=/usr/bin/python3
- sed -i 's/SUBDIRS = po docs/SUBDIRS = po/' Makefile
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-_py() {
- cd "$builddir"
- pkgdesc="Python3 bindings for $pkgname"
- depends="$pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib
-}
-
-sha512sums="bc2f68456eae5912ac236192e97a3d66d5fa782520eff48d44d391c1ade590e001d821d7a93499e2391d0310cf03f60e4411f045f6ee3301af4e174d9ddc8450 libuser-0.62.tar.xz
-b7da24da834b7e00e3449ab49c2187b0d8993079888b0900b62ec418db8fc025a22ee4b779715cc6ca327b614d97dd1fbf0a33f4f22fedade06782a3ba11f599 0001-remove-unused-execinfo.h.patch"
diff --git a/testing/libva-utils/APKBUILD b/testing/libva-utils/APKBUILD
deleted file mode 100644
index 7d4bb637cc5..00000000000
--- a/testing/libva-utils/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=libva-utils
-pkgver=2.7.1
-pkgrel=0
-pkgdesc="Intel VA-API Media Applications and Scripts for libva"
-options="!check" # Most tests fail
-url="https://github.com/01org/libva-utils"
-arch="all"
-license="MIT"
-makedepends="
- meson
- libva-dev
- libdrm-dev
- wayland-dev
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/intel/libva-utils/archive/$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --libdir=/usr/lib \
- --buildtype=plain \
- -Ddrm=true \
- -Dx11=true \
- -Dwayland=true \
- -Dtests=false \
- . output
- ninja -C output
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="d95367308096afa1ff4176ae118329baadf18646edbac91beb8e2574db1bd329bf4e347708842afc8aceef29d4389aeec3233ea5abf2f36496e6da1f5425517e libva-utils-2.7.1.tar.gz"
diff --git a/testing/libva-vdpau-driver/APKBUILD b/testing/libva-vdpau-driver/APKBUILD
deleted file mode 100644
index ca2bcbebd17..00000000000
--- a/testing/libva-vdpau-driver/APKBUILD
+++ /dev/null
@@ -1,51 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=libva-vdpau-driver
-pkgver=0.7.4
-pkgrel=1
-pkgdesc="VDPAU backend for VA API"
-url="https://freedesktop.org/wiki/Software/vaapi"
-arch="all !mips !mips64" # fails to build on mips
-license="GPL"
-depends=""
-depends_dev=""
-makedepends="libva-dev mesa-dev libvdpau-dev"
-install=""
-subpackages=""
-source="https://freedesktop.org/software/vaapi/releases/$pkgname/$pkgname-$pkgver.tar.bz2
- libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch
- libva-vdpau-driver-0.7.4-glext-missing-definition.patch
- libva-vdpau-driver-0.7.4-libvdpau-0.8.patch
- musl-fixes.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare || return 1
-
- cd "$builddir"
- update_config_sub || return 1
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
-}
-
-sha512sums="89f98dc1d7d590fb68f440dd1e37e025d64a621324e013e85dd1367681c07b09132fd2089539fc5b48934624648887a8a97539b4f07ddf9f56a8a456ad030094 libva-vdpau-driver-0.7.4.tar.bz2
-f60e84f88eca17e762e3d5a53404d0215bca27051c02ff3e4441ad2c2897c0c04297b8e7b4693c37404bde95d7b5d7a6392b4c17ab1ece5f1bd78e6af376b301 libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch
-5be5b00e3bc6df790bf1f0cde9606053ef70ee3c36f97dd1ba2eaa38251ce86124586a34c5e3d7fc20c331f9894b23ec22e7ae9d007aa15940221f2547ee64ee libva-vdpau-driver-0.7.4-glext-missing-definition.patch
-0890112bed4013de70272972be14f608b22935938160f65a2165cca715c1e8ec7e8c92c5b5c66c655932d1adbaf0aad2f979f0d541890daee385e544a6890f82 libva-vdpau-driver-0.7.4-libvdpau-0.8.patch
-1152b2b9a6c33a5216757d41bbbb849e291066cfbd2a3657aad0e430544fc6e9020477ba66ef1178841d3321b28055510dd06a40f59cdc8f10b5651305d17014 musl-fixes.patch"
diff --git a/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch b/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch
deleted file mode 100644
index 74caee3483d..00000000000
--- a/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-VAEncH264VUIBufferType.patch
+++ /dev/null
@@ -1,29 +0,0 @@
->From fda3706eb74ba5ad874853969f3df3e372739c8d Mon Sep 17 00:00:00 2001
-From: "Xiang, Haihao" <haihao.xiang@intel.com>
-Date: Fri, 21 Jun 2013 12:55:30 +0800
-Subject: [PATCH] VAEncH264VUIBufferType and VAEncH264SEIBufferType are
- dropped from VA API
-
-The driver doesn't use them indeed
-
-Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
----
- src/vdpau_dump.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/src/vdpau_dump.c b/src/vdpau_dump.c
-index 899888b..610e7cd 100644
---- a/src/vdpau_dump.c
-+++ b/src/vdpau_dump.c
-@@ -59,8 +59,6 @@ const char *string_of_VABufferType(VABufferType type)
- _(VAEncSequenceParameterBufferType);
- _(VAEncPictureParameterBufferType);
- _(VAEncSliceParameterBufferType);
-- _(VAEncH264VUIBufferType);
-- _(VAEncH264SEIBufferType);
- #endif
- #if VA_CHECK_VERSION(0,31,1)
- _(VAQMatrixBufferType);
---
-1.7.9.5
-
diff --git a/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-glext-missing-definition.patch b/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-glext-missing-definition.patch
deleted file mode 100644
index b56d2683430..00000000000
--- a/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-glext-missing-definition.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/src/utils_glx.h~ 2012-10-05 16:02:58.000000000 +0100
-+++ b/src/utils_glx.h 2012-10-19 08:44:12.469642440 +0100
-@@ -48,6 +48,13 @@
- typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int);
- #endif
-
-+#if GL_GLEXT_VERSION >= 85
-+/* XXX: PFNGLMULTITEXCOORD2FPROC got out of the GL_VERSION_1_3_DEPRECATED
-+ block and is not defined if GL_VERSION_1_3 is defined in <GL/gl.h>
-+ Redefine the type here as an interim solution */
-+typedef void (*PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
-+#endif
-+
- #ifndef GL_FRAMEBUFFER_BINDING
- #define GL_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING_EXT
- #endif
diff --git a/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch b/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch
deleted file mode 100644
index ab3a4799863..00000000000
--- a/testing/libva-vdpau-driver/libva-vdpau-driver-0.7.4-libvdpau-0.8.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/vdpau_decode.c
-+++ b/src/vdpau_decode.c
-@@ -1289,7 +1289,7 @@
- driver_data,
- obj_context->vdp_decoder,
- obj_surface->vdp_surface,
-- (VdpPictureInfo)&obj_context->vdp_picture_info,
-+ (VdpPictureInfo *)&obj_context->vdp_picture_info,
- obj_context->vdp_bitstream_buffers_count,
- obj_context->vdp_bitstream_buffers
- );
diff --git a/testing/libva-vdpau-driver/musl-fixes.patch b/testing/libva-vdpau-driver/musl-fixes.patch
deleted file mode 100644
index d7f65328698..00000000000
--- a/testing/libva-vdpau-driver/musl-fixes.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -upr libva-vdpau-driver-0.7.4.orig/src/utils.c libva-vdpau-driver-0.7.4/src/utils.c
---- libva-vdpau-driver-0.7.4.orig/src/utils.c 2016-11-12 22:47:31.377199801 +0100
-+++ libva-vdpau-driver-0.7.4/src/utils.c 2016-11-12 22:48:09.130062386 +0100
-@@ -21,6 +21,7 @@
- #include "sysdeps.h"
- #include "utils.h"
- #include <time.h>
-+#include <sys/time.h>
- #include <errno.h>
-
- #define DEBUG 1
diff --git a/testing/libvdpau-va-gl/APKBUILD b/testing/libvdpau-va-gl/APKBUILD
new file mode 100644
index 00000000000..822039e932f
--- /dev/null
+++ b/testing/libvdpau-va-gl/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Dennis Krupenik <dennis@krupenik.com>
+# Maintainer: Dennis Krupenik <dennis@krupenik.com>
+pkgname=libvdpau-va-gl
+pkgver=0.4.2
+pkgrel=0
+pkgdesc="VDPAU driver with OpenGL/VAAPI backend"
+url="https://github.com/i-rinat/libvdpau-va-gl"
+arch="all"
+license="MIT"
+makedepends="cmake libva-dev mesa-dev"
+source="https://github.com/i-rinat/libvdpau-va-gl/archive/v$pkgver/libvdpau-va-gl-$pkgver.tar.gz"
+options="!check" # requires a running X server
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ make -C build
+}
+
+package() {
+ make -C build DESTDIR="$pkgdir" install
+}
+
+sha512sums="074f06a0684a28dfd2690d7f878d1e1c1a6a61cb4fba00b54c4b01e9da7baa627333fb59715de0dfb757637afb269c1a62caa3955d53cea75f4a9513c4286680 libvdpau-va-gl-0.4.2.tar.gz"
diff --git a/testing/libvisio2svg/APKBUILD b/testing/libvisio2svg/APKBUILD
index e49212a89ac..bd0be91012e 100644
--- a/testing/libvisio2svg/APKBUILD
+++ b/testing/libvisio2svg/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=libvisio2svg
pkgver=0.5.5
-pkgrel=1
+pkgrel=3
pkgdesc="Library/Utilities to convert Microsoft (MS) Visio Documents and Stencils (VSS and VSD) to SVG"
url="https://github.com/kakwa/libvisio2svg"
arch="all"
diff --git a/testing/libvmaf/APKBUILD b/testing/libvmaf/APKBUILD
new file mode 100644
index 00000000000..ab61f93c047
--- /dev/null
+++ b/testing/libvmaf/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Sam Nystrom <sam@samnystrom.dev>
+# Maintainer: Sam Nystrom <sam@samnystrom.dev>
+pkgname=libvmaf
+pkgver=3.0.0
+pkgrel=0
+pkgdesc="Perceptual video quality assessment based on multi-method fusion"
+url="https://github.com/Netflix/vmaf"
+arch="all"
+license="BSD-2-Clause-Patent"
+makedepends="meson nasm xxd"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Netflix/vmaf/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/vmaf-$pkgver/libvmaf"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+9e356bb274ce7d5d85a64d2a1a122ea9d267809edd83bb6e663fb348a1a46355882eb9044982bf679f03df7f93c6f66c9b0d9a94661979b2c722db30b21c4f32 libvmaf-3.0.0.tar.gz
+"
diff --git a/testing/libvmime/APKBUILD b/testing/libvmime/APKBUILD
new file mode 100644
index 00000000000..80ecd5cca6f
--- /dev/null
+++ b/testing/libvmime/APKBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=libvmime
+pkgver=0.9.2_p4
+_pkgver=${pkgver//_p/k}
+pkgrel=10
+pkgdesc="Library for working with RFC 5322, MIME messages and IMAP/POP/SMTP"
+# ftbfs
+#arch="all"
+url="https://www.vmime.org/"
+license="GPL-3.0-only"
+# cmake config file isn't suitable for explicitely setting the TLS lib when it finds gnutls
+makedepends="
+ !gnutls-dev
+ cmake
+ cppunit-dev
+ doxygen
+ graphviz
+ gtk+3.0-dev
+ libgsasl-dev
+ icu-dev
+ openssl-dev
+ samurai
+ "
+checkdepends="icu-data-full"
+subpackages="$pkgname-dbg $pkgname-dev"
+source="libvmime-$pkgver.tar.gz::https://github.com/Kopano-dev/vmime/archive/v$_pkgver.tar.gz
+ fix-icu-70-1.patch
+ gsasl-2.2.0.patch::https://github.com/kisli/vmime/commit/c750e899b8b3a76379167148468e164b7e52f6e2.patch
+ "
+
+builddir="$srcdir/vmime-$_pkgver"
+
+# can't build in other directory because cmake config is broken here.
+# library will not exist at package time.
+build() {
+ cmake -B . -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr/ \
+ -DVMIME_BUILD_TESTS=ON \
+ -DVMIME_TLS_SUPPORT_LIB=openssl
+ cmake --build .
+}
+
+check() {
+ LANG=C.UTF-8 build/bin/run-tests
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install .
+ mv "$pkgdir/usr/cmake" "$pkgdir/usr/lib/cmake"
+}
+
+sha512sums="
+90ebce51151944fe9cf09a8385b4ffe4db199c87e79579f66d70221f45a4bf4b048f3115077cff83536119af40ebe89eddacc301b54b7fb017438f44bd0f273c libvmime-0.9.2_p4.tar.gz
+65c0c1ec56a9a56167bb8b18e01feee4ea65fa958f5e2f233aa13d0472a803574d8b2751b2e6011edcd1db119f91c66e2401fd4916eecbb3af04dc2e527c125c fix-icu-70-1.patch
+6a07daff1b3830a913df722ed736465e8bbe022ee18b3ba1b704d58d3db16d8bbaeba5daa2e0705792b69aa2ced96b7d3c21a5e43a87b6585eaa318db069054e gsasl-2.2.0.patch
+"
diff --git a/testing/libvmime/fix-icu-70-1.patch b/testing/libvmime/fix-icu-70-1.patch
new file mode 100644
index 00000000000..4b362e1c834
--- /dev/null
+++ b/testing/libvmime/fix-icu-70-1.patch
@@ -0,0 +1,38 @@
+--- a/src/vmime/charsetConverter_icu.cpp
++++ b/src/vmime/charsetConverter_icu.cpp
+@@ -413,7 +413,7 @@
+
+ ucnv_toUnicode(
+ m_from, &uniTarget, uniTargetLimit,
+- &uniSource, uniSourceLimit, NULL, /* flush */ FALSE, &toErr
++ &uniSource, uniSourceLimit, NULL, /* flush */ UBool(0), &toErr
+ );
+
+ if (U_FAILURE(toErr) && toErr != U_BUFFER_OVERFLOW_ERROR) {
+@@ -453,7 +453,7 @@
+
+ ucnv_fromUnicode(
+ m_to, &cpTarget, cpTargetLimit,
+- &cpSource, cpSourceLimit, NULL, /* flush */ FALSE, &fromErr
++ &cpSource, cpSourceLimit, NULL, /* flush */ UBool(0), &fromErr
+ );
+
+ if (fromErr != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(fromErr)) {
+@@ -509,7 +509,7 @@
+
+ ucnv_toUnicode(
+ m_from, &uniTarget, uniTargetLimit,
+- &uniSource, uniSourceLimit, NULL, /* flush */ TRUE, &toErr
++ &uniSource, uniSourceLimit, NULL, /* flush */ UBool(1), &toErr
+ );
+
+ if (U_FAILURE(toErr) && toErr != U_BUFFER_OVERFLOW_ERROR) {
+@@ -540,7 +540,7 @@
+
+ ucnv_fromUnicode(
+ m_to, &cpTarget, cpTargetLimit,
+- &cpSource, cpSourceLimit, NULL, /* flush */ TRUE, &fromErr
++ &cpSource, cpSourceLimit, NULL, /* flush */ UBool(1), &fromErr
+ );
+
+ if (fromErr != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(fromErr)) {
diff --git a/testing/libvoikko/APKBUILD b/testing/libvoikko/APKBUILD
new file mode 100644
index 00000000000..77b031706a6
--- /dev/null
+++ b/testing/libvoikko/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=libvoikko
+pkgver=4.3.2
+pkgrel=1
+pkgdesc="Voikko spelling, hyphenation and grammar checker"
+url="https://voikko.puimula.org/"
+arch="all"
+license="MPL-1.1 GPL-2.0-or-later LGPL-2.1-or-later"
+makedepends="foma python3"
+options="!check" # test suite is broken
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.puimula.org/voikko-sources/libvoikko/libvoikko-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-hfst=false \
+ --with-dictionary-path=/usr/share/voikko
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ # python bindings
+ local sitedir=$(python3 -c "import site; print(site.getsitepackages()[0])")
+ mkdir -p "$pkgdir/$sitedir/"
+ cp python/libvoikko.py "$pkgdir/$sitedir/libvoikko.py"
+}
+
+sha512sums="
+d510a9344501f86b2f644c1237faf8709f02b5d17bca76f7934c8422495aeee307f12c60dde47df15a39c24c3311253d3dea2d0648050fc3a056a22497de695c libvoikko-4.3.2.tar.gz
+"
diff --git a/testing/libwbxml/APKBUILD b/testing/libwbxml/APKBUILD
index 1aa5c6ecb63..530c68998c1 100644
--- a/testing/libwbxml/APKBUILD
+++ b/testing/libwbxml/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=libwbxml
-pkgver=0.11.7
+pkgver=0.11.8
pkgrel=0
pkgdesc="A library to encode and decode WBXML (WAP Binary XML)."
url="https://github.com/libwbxml/libwbxml"
@@ -35,4 +35,6 @@ package() {
mv "$pkgdir"/usr/share/cmake "$pkgdir"/usr/lib
}
-sha512sums="fc855650661593596a158527682d2c40d800c1fa44169d79e9ca9c6d64d67b6c660807ed89b1bddd644f114c27711356627ac919af91fd7f19d409879505512f libwbxml-0.11.7.tar.gz"
+sha512sums="
+14b74e3d25f21ce4bf05f4ed546087817c698b5a44190c569b7691e26510b117118bf828e15beccaa4bdd2e744c45f9b5695b38eb7994f3af0f4f81f90ecff69 libwbxml-0.11.8.tar.gz
+"
diff --git a/testing/libwhich/APKBUILD b/testing/libwhich/APKBUILD
new file mode 100644
index 00000000000..546008c2bec
--- /dev/null
+++ b/testing/libwhich/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=libwhich
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="Like which(1), but for dynamic libraries"
+url="https://github.com/vtjnash/libwhich"
+arch="all"
+license="MIT"
+checkdepends="sed zlib-dev"
+source="https://github.com/vtjnash/libwhich/archive/v$pkgver/libwhich-$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+004d6a0a06e7486f51118fd02167e2f3c0757956bbe40448f1443c7f8eeb8d322cdae1e61e1169e75166fc16ef10528b893198faadfb9024f8c39453e4204616 libwhich-1.2.0.tar.gz
+"
diff --git a/testing/libxml++-2.6/APKBUILD b/testing/libxml++-2.6/APKBUILD
deleted file mode 100644
index 19af9b0fce4..00000000000
--- a/testing/libxml++-2.6/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=libxml++-2.6
-_pkgname=libxml++
-pkgver=2.40.1
-pkgrel=2
-pkgdesc="libbxml++ is a C++ wrapper for the libxml XML parser library."
-url="http://libxmlplusplus.sourceforge.net/"
-arch="all"
-license="LGPL-2.1-only"
-makedepends="libxml2-dev glibmm-dev perl-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://download.gnome.org/sources/$_pkgname/${pkgver%.[0-9]*}/$_pkgname-$pkgver.tar.xz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- install -Dm644 $pkgname.pc "$pkgdir"/usr/lib/pkgconfig/$pkgname.pc
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-
-sha512sums="a4ec2e8182d981c57bdcb8f0a203a3161f8c735ceb59fd212408b7a539d1dc826adf6717bed8f4d544ab08afd9c2fc861efe518e24bbd3a1c4b158e2ca48183a libxml++-2.40.1.tar.xz"
diff --git a/testing/libxml++/APKBUILD b/testing/libxml++/APKBUILD
index 973ec0c7225..0054c103359 100644
--- a/testing/libxml++/APKBUILD
+++ b/testing/libxml++/APKBUILD
@@ -1,28 +1,40 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libxml++
-pkgver=3.2.0
-pkgrel=0
-pkgdesc="libbxml++ is a C++ wrapper for the libxml XML parser library."
-url="http://libxmlplusplus.sourceforge.net/"
+pkgver=5.0.3
+pkgrel=1
+pkgdesc="C++ wrapper for the libxml XML parser library"
+url="https://libxmlplusplus.sourceforge.net/"
arch="all"
license="LGPL-2.1-or-later"
-makedepends="libxml2-dev glibmm-dev perl-dev"
-subpackages="$pkgname-dev $pkgname-doc"
+makedepends="
+ libxml2-dev
+ meson
+ mm-common
+ python3
+ "
+subpackages="$pkgname-dev"
source="https://download.gnome.org/sources/libxml++/${pkgver%.[0-9]*}/libxml++-$pkgver.tar.xz"
+options="!check" # fail against new libxml
build() {
- ./configure --prefix=/usr
- make
+ abuild-meson \
+ -Db_lto=true \
+ -Dbuild-tests=true \
+ -Dbuild-examples=false \
+ -Dbuild-documentation=false \
+ . output
+ meson compile -C output
}
-package() {
- make DESTDIR="$pkgdir" install
- ln -s libxml++-3.0.pc "$pkgdir"/usr/lib/pkgconfig/libxml++.pc
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
}
-check() {
- make check
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="003df3d3ab1955b6facc133c9322e4a2b3b8fe6e2a5309549cef1ce088b0fca0c6546a3a4deb33c61c2169797229ee1df9ef6e0233160ee5534cd39ba29afd64 libxml++-3.2.0.tar.xz"
+sha512sums="
+418723a96f018fb8e332847d0ab601eda38c99d6be48c83b6cda6f07789e5ecac76bb417540e29d0abace2828a74eb1e08695ff2fc92ebf3e7458364547ef675 libxml++-5.0.3.tar.xz
+"
diff --git a/testing/libxmp/APKBUILD b/testing/libxmp/APKBUILD
new file mode 100644
index 00000000000..8bb63e845a3
--- /dev/null
+++ b/testing/libxmp/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=libxmp
+pkgver=4.6.0
+pkgrel=0
+pkgdesc="Libxmp is a library that renders module files to PCM data"
+url="https://github.com/libxmp/libxmp/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="cmake samurai"
+subpackages="$pkgname-dev"
+source="https://github.com/libxmp/libxmp/releases/download/libxmp-$pkgver/libxmp-$pkgver.tar.gz"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto -DNDEBUG" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_STATIC=OFF \
+ -DWITH_UNIT_TESTS="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d287544c9b569515f1a3fa92d8d930097b252e84f86cba5dd70e9b4460d0fa70754ece45dcc7ec314e434d821b43207d700afb12c9df80b467d73e9d029baafe libxmp-4.6.0.tar.gz
+"
diff --git a/testing/libzim/APKBUILD b/testing/libzim/APKBUILD
deleted file mode 100644
index 5b5ffa9649d..00000000000
--- a/testing/libzim/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=libzim
-pkgver=6.1.3
-pkgrel=0
-pkgdesc="Reference implementation of the ZIM file format"
-url="https://openzim.org/"
-arch="all !mips !mips64" # tests crash
-license="GPL-2.0-or-later"
-makedepends="
- icu-dev
- libexecinfo-dev
- meson
- xapian-core-dev
- xz-dev
- zlib-dev
- zstd-dev
- "
-checkdepends="
- cython
- gtest-dev
- python3-dev
- "
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/openzim/libzim/archive/$pkgver.tar.gz
- cython-not-cython3.patch
- "
-
-build() {
- LDFLAGS="$LDFLAGS -lexecinfo"
- abuild-meson . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-
- install -Dm 644 -t "$pkgdir/usr/share/doc/$pkgname/" README.md
-}
-
-sha512sums="5b9c5a4817ae92c632e56d237295bc46818ea27d394017e51dc17fa68358265ab9c5ca3ae8ccbe943f1e524f6bd81dde97606083d8d6ad4e507422ce5489fd2d libzim-6.1.3.tar.gz
-e2d2e749a6764c0002c123b988b24494ff76547542f17753d04b48f90785e4a92a5bb96a1840e0ebd661a727ecc1eb050679ae0ba1b3fda99410d09ac8e28f27 cython-not-cython3.patch"
diff --git a/testing/libzim/cython-not-cython3.patch b/testing/libzim/cython-not-cython3.patch
deleted file mode 100644
index f445f38bdcd..00000000000
--- a/testing/libzim/cython-not-cython3.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/test/pytest/meson.build b/test/pytest/meson.build
-index 3081d17..b417b67 100644
---- a/test/pytest/meson.build
-+++ b/test/pytest/meson.build
-@@ -1,5 +1,5 @@
-
--cython = find_program('cython3', required : false)
-+cython = find_program('cython', required : false)
- py3_dep = dependency('python3', required : false)
-
- if cython.found() and py3_dep.found()
diff --git a/testing/libzn_poly/APKBUILD b/testing/libzn_poly/APKBUILD
new file mode 100644
index 00000000000..8870c93ca45
--- /dev/null
+++ b/testing/libzn_poly/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=libzn_poly
+pkgver=0.9.2
+pkgrel=2
+pkgdesc="Library for polynomial arithmetic over Z/nZ"
+url="https://gitlab.com/sagemath/zn_poly"
+arch="all"
+# https://gitlab.com/sagemath/zn_poly/-/blob/master/COPYING
+license="( GPL-2.0-only OR GPL-3.0-only ) AND GPL-2.0-or-later AND LGPL-2.1-or-later"
+makedepends="gmp-dev python3"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://gitlab.com/sagemath/zn_poly/-/archive/$pkgver/zn_poly-$pkgver.tar.gz"
+builddir="$srcdir/zn_poly-$pkgver"
+
+build() {
+ ## We need to explicitly set PIC because ld yields:
+ # src/misc.o: warning: relocation against `ZNP_version_string' in read-only section `.text'
+ # src/mulmid.o: relocation R_X86_64_PC32 against symbol `ZNP_tuning_info' can not be used when making a shared object; recompile with -fPIC
+ # final link failed: bad value
+ export CFLAGS="$CFLAGS -fPIC"
+
+ python3 makemakefile.py \
+ --cflags="${CFLAGS/-Os/-O3}" \
+ --cxxflags="${CXXFLAGS/-Os/-O3}" \
+ --ldflags="$LDFLAGS" > GNUmakefile
+ make all libzn_poly.so
+}
+
+check() {
+ make check
+}
+
+package() {
+ install -Dm644 include/zn_poly.h -t "$pkgdir"/usr/include/zn_poly
+ install -Dm644 include/wide_arith.h -t "$pkgdir"/usr/include/zn_poly
+ install -Dm755 libzn_poly.a -t "$pkgdir"/usr/lib
+ install -Dm755 libzn_poly-"$pkgver".so -t "$pkgdir"/usr/lib
+ ln -s libzn_poly-"$pkgver".so "$pkgdir"/usr/lib/libzn_poly-"${pkgver%.*}".so
+ ln -s libzn_poly-"${pkgver%.*}".so "$pkgdir"/usr/lib/libzn_poly.so
+}
+
+sha512sums="
+472994bdefdcc353983a5c831af0a49777582c422d069867802a268d8ab4c7b040cd88284dc066632e893d3a4cf5b4a88ac5f1910504b8b5d3c84306c56333bd zn_poly-0.9.2.tar.gz
+"
diff --git a/testing/libzookeeper/APKBUILD b/testing/libzookeeper/APKBUILD
deleted file mode 100644
index 0ea2b86face..00000000000
--- a/testing/libzookeeper/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Maciej Klak <klak.maciej@gmail.com>
-# Maintainer: Maciej Klak <klak.maciej@gmail.com>
-pkgname=libzookeeper
-pkgver=3.4.14
-pkgrel=1
-pkgdesc="The Apache ZooKeeper system for distributed coordination is a high-performance service for building distributed applications."
-url="https://zookeeper.apache.org"
-arch="all"
-license="Apache-2.0"
-subpackages="$pkgname-dev"
-options="!check" # No test suite
-source="http://www-eu.apache.org/dist/zookeeper/zookeeper-$pkgver/zookeeper-$pkgver.tar.gz
- fix-sprintf-overflow.patch"
-builddir="$srcdir/zookeeper-$pkgver/zookeeper-client/zookeeper-client-c"
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b2e03d95f8cf18b97a46e2f53871cef5a5da9d5d80b97009375aed7fb35368c440ca944c7e8b64efabbc065f6fb98bb86239f7c1491f0490efc71876d5a7f424 zookeeper-3.4.14.tar.gz
-91c6ef3f4c8edf1e95ccbd85fc961760f21f4943631fc8a7f6e2a7984ca0fc6b381075ac55f7b91c6439e9c7dc2fdb74d016238250e5c156bbd1f4bc11e2abaa fix-sprintf-overflow.patch"
diff --git a/testing/libzookeeper/fix-sprintf-overflow.patch b/testing/libzookeeper/fix-sprintf-overflow.patch
deleted file mode 100644
index b0ea6db1e0c..00000000000
--- a/testing/libzookeeper/fix-sprintf-overflow.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/zookeeper.c
-+++ b/src/zookeeper.c
-@@ -3477,7 +3477,7 @@
-
- static const char* format_endpoint_info(const struct sockaddr_storage* ep)
- {
-- static char buf[128];
-+ static char buf[128 + 6]; // include space for the port :xxxxx
- char addrstr[128];
- void *inaddr;
- #ifdef WIN32
diff --git a/testing/licenseheaders/APKBUILD b/testing/licenseheaders/APKBUILD
index 9f19bd9900e..50d198a4470 100644
--- a/testing/licenseheaders/APKBUILD
+++ b/testing/licenseheaders/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=licenseheaders
-pkgver=0.7
-pkgrel=1
+pkgver=0.8.8
+pkgrel=3
pkgdesc="Add/Replace license headers in a directory tree of source files"
url="https://github.com/johann-petrak/licenseheaders"
arch="noarch"
@@ -10,6 +10,7 @@ license="MIT"
depends="python3 py3-regex"
makedepends="py3-setuptools"
options="!check" # no tests
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/l/licenseheaders/licenseheaders-$pkgver.tar.gz"
build() {
@@ -17,7 +18,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="d78f091a384d2b0b1c5b40a378d2c321b2ed22a50f9386a639672ee787ddf234bccc2020c3b8363bf8c32939c89878aa3ac3aa4a3bb71ca5750e84d5debbc0a2 licenseheaders-0.7.tar.gz"
+sha512sums="
+3894d843493a7ac27763bc02265de2b7169989b1e6868146e64e4092355bc665e37b7d82e23c81f70040696298530d5ac424c255d8494573b5ace0abf93bc071 licenseheaders-0.8.8.tar.gz
+"
diff --git a/testing/lidarr/0001-disable-restart.patch b/testing/lidarr/0001-disable-restart.patch
new file mode 100644
index 00000000000..8dc5aebe628
--- /dev/null
+++ b/testing/lidarr/0001-disable-restart.patch
@@ -0,0 +1,20 @@
+Disable the restart functionality so the daemon can manage it.
+
+---
+ src/NzbDrone.Core/Lifecycle/LifecycleService.cs | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+index 9ed36a42e..565641284 100644
+--- a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
++++ b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+@@ -46,8 +46,7 @@ public void Shutdown()
+ public void Restart()
+ {
+ _logger.Info("Restart requested.");
+-
+- _eventAggregator.PublishEvent(new ApplicationShutdownRequested(true));
++ _eventAggregator.PublishEvent(new ApplicationShutdownRequested());
+
+ if (_runtimeInfo.IsWindowsService)
+ {
diff --git a/testing/lidarr/APKBUILD b/testing/lidarr/APKBUILD
new file mode 100644
index 00000000000..7d933812801
--- /dev/null
+++ b/testing/lidarr/APKBUILD
@@ -0,0 +1,102 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=lidarr
+pkgver=2.1.7.4030
+pkgrel=0
+pkgdesc="Music download automation for usenet and torrents."
+url="https://github.com/Lidarr/Lidarr"
+arch="x86_64 aarch64 armv7"
+license="GPL-3.0-only"
+options="net !check" # no tests
+depends="
+ aspnetcore6-runtime
+ chromaprint
+ sqlite-libs
+ "
+makedepends="
+ dotnet6-sdk
+ yarn
+ "
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Lidarr/Lidarr/archive/refs/tags/v$pkgver.tar.gz
+ 0001-disable-restart.patch
+ lidarr.initd
+ lidarr.confd
+ package_info
+ "
+builddir="$srcdir/Lidarr-$pkgver"
+pkgusers="lidarr"
+pkggroups="lidarr"
+
+# map arch to dotnet
+case $CARCH in
+ x86_64) _dotnet_arch="x64" ;;
+ aarch64) _dotnet_arch="arm64" ;;
+ armv7) _dotnet_arch="arm" ;;
+ *) _dotnet_arch="$CARCH" ;;
+esac
+
+# custom variables
+_runtime="linux-musl-$_dotnet_arch"
+_framework="net6.0"
+_output="_output"
+_artifacts="$_output/$_framework/$_runtime/publish"
+
+prepare() {
+ default_prepare
+
+ # increase max opened files
+ ulimit -n 4096
+
+ # replace version info
+ local buildprops=src/Directory.Build.props
+ sed -i "/<AssemblyVersion>/s/>.*<\//>$pkgver<\//" "$buildprops"
+ sed -i "/<AssemblyConfiguration>/s/>.*<\//>master<\//" "$buildprops"
+
+ export BROWSERSLIST_IGNORE_OLD_DATA=true
+ yarn install --frozen-lockfile --network-timeout 120000
+}
+
+build() {
+ dotnet build src \
+ -p:RuntimeIdentifiers="$_runtime" \
+ -p:Configuration=Release \
+ -p:SelfContained=false \
+ -t:PublishAllRids
+ yarn build --env production --no-stats
+
+ # use fpcalc from chromaprint package
+ rm -f "$_artifacts"/fpcalc
+
+ # cleanup
+ find "$_artifacts" \( \
+ -name "ServiceUninstall.*" -o \
+ -name "ServiceInstall.*" -o \
+ -name "Lidarr.Windows.*" \) -delete
+
+ mv "$_output"/UI "$_artifacts"
+}
+
+package() {
+ local DESTDIR="$pkgdir"/usr/lib/lidarr
+
+ # use package_info to disable update feature
+ install -Dm644 "$srcdir"/package_info "$DESTDIR"/package_info
+ echo "PackageVersion=$pkgver-r$pkgrel" >>"$DESTDIR"/package_info
+
+ cp -af "$_artifacts" "$DESTDIR"/bin
+ chown -R "$pkgusers:$pkggroups" "$DESTDIR"
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+0f3a1ba1f0f8675c1a445e015583e443e51a0f4355df753cb2607d449e585cbded788644c7040a81b420334fcc79d61ae7755e63c1901292b7b2c847f7ba818c lidarr-2.1.7.4030.tar.gz
+753520379a6c5f2899b4ddfd820d5573598a32cb105f74c6fd978a3f2c98895cf709ef2d9afe2bae8c4856da86cb6a1364f5713ea7ef6a36bb21b5a5840c1471 0001-disable-restart.patch
+194dce13e5220d71ffe262d40dbd1b124166f158500a420a8032279baa8f046c1772857cb7f4ab9428384481b962ff4939de0e2cdc6197f91cd35d1c0871a8e4 lidarr.initd
+babbb145648ad296b53271db5c642edddb9d0a5173479c4e383c48aab1d6b616c176e1ef73ae78078f41b4e6ca0e5768a96b36d844a3669f59179226ba8e97ad lidarr.confd
+67c4dd1cf8259296d994c350dfd3962d23333071889ce0b4ef6b2f4cbb4349490c5dbe4dcc202c99bab7a5c4b7611be56d7c8835b2b13924526c45311db1c3fb package_info
+"
diff --git a/testing/lidarr/lidarr.confd b/testing/lidarr/lidarr.confd
new file mode 100644
index 00000000000..d4201334c6e
--- /dev/null
+++ b/testing/lidarr/lidarr.confd
@@ -0,0 +1,10 @@
+# Lidarr configuration options
+
+command_user="lidarr:lidarr" # user:group
+directory="/var/lib/lidarr"
+umask=0002
+supervisor="supervise-daemon"
+
+#logdir="/var/log/lidarr"
+#error_log="$logdir/error.log"
+#output_log="$logdir/output.log"
diff --git a/testing/lidarr/lidarr.initd b/testing/lidarr/lidarr.initd
new file mode 100644
index 00000000000..1363dbbf392
--- /dev/null
+++ b/testing/lidarr/lidarr.initd
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/lidarr
+: ${command_user:=lidarr:lidarr}
+: ${directory:=/var/lib/lidarr}
+: ${umask:=0002}
+
+name=lidarr
+description="Lidarr daemon"
+command="/usr/lib/lidarr/bin/Lidarr"
+command_args="-nobrowser -data=$directory"
+command_background=true
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory"
+
+ if [ -n "$logdir" ]; then
+ checkpath -d -o "$command_user" "$logdir"
+ fi
+
+ if [ -n "$output_log" ]; then
+ checkpath -f -o "$command_user" "$output_log"
+ fi
+
+ if [ -n "$error_log" ]; then
+ checkpath -f -o "$command_user" "$error_log"
+ fi
+}
diff --git a/testing/lidarr/lidarr.pre-install b/testing/lidarr/lidarr.pre-install
new file mode 100644
index 00000000000..6ba2680d0e0
--- /dev/null
+++ b/testing/lidarr/lidarr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S lidarr 2>/dev/null
+adduser -S -D -h /var/lib/lidarr -s /sbin/nologin -G lidarr -g lidarr lidarr 2>/dev/null
+
+exit 0
diff --git a/testing/lidarr/package_info b/testing/lidarr/package_info
new file mode 100644
index 00000000000..c2e444817cd
--- /dev/null
+++ b/testing/lidarr/package_info
@@ -0,0 +1,4 @@
+# PackageVersion is added by APKBUILD
+PackageAuthor=[alpine](https://pkgs.alpinelinux.org/packages)
+UpdateMethod=External
+Branch=master
diff --git a/testing/light/APKBUILD b/testing/light/APKBUILD
deleted file mode 100644
index 2ac4ff39d16..00000000000
--- a/testing/light/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Eivind Uggedal <eu@eju.no>
-# Maintainer: Eivind Uggedal <eu@eju.no>
-pkgname=light
-pkgver=1.2.2
-pkgrel=0
-pkgdesc="Control backlights and other hardware lights"
-url="http://haikarainen.github.io/light/"
-arch="all"
-license="GPL-3.0-or-later"
-options="!check" # no test suite
-makedepends="autoconf automake"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/haikarainen/light/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --with-udev=/lib/udev/rules.d
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="5815394fb1545d1e06234c261d475e1836e4c43e47e7707b8628891d20b70db04f1661b78ca1d236d549c734430b606498fa46de060c854791b13cf49de07b59 light-1.2.2.tar.gz"
diff --git a/testing/lightdm-mobile-greeter/APKBUILD b/testing/lightdm-mobile-greeter/APKBUILD
deleted file mode 100644
index a743aec75df..00000000000
--- a/testing/lightdm-mobile-greeter/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Maintainer: Raatty <me@raatty.club>
-pkgname=lightdm-mobile-greeter
-pkgver=3
-pkgrel=0
-pkgdesc="A simple lightdm greeter for mobile"
-url="https://raatty.club:3000/raatty/lightdm-mobile-greeter"
-arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # thats all rust is build for
-license="MIT"
-depends="xorg-server"
-makedepends="cargo make libhandy-dev lightdm-dev"
-source="$pkgname-$pkgver.tar.gz::https://raatty.club:3000/raatty/lightdm-mobile-greeter/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname"
-options="!check" # No tests
-
-build() {
- make build
-}
-
-package() {
- DESTDIR="$pkgdir" PREFIX="/usr" make install
-}
-
-sha512sums="a11144e372fc1e4ba124c99b4a7e6eb5b22a941ea368af3b4d72b8553f8fcbe0e5410b206bf7dc97ffa95395ac409d3de86c48c6ad3af92178f7b8815e5a0296 lightdm-mobile-greeter-3.tar.gz"
diff --git a/testing/lightdm-settings/APKBUILD b/testing/lightdm-settings/APKBUILD
new file mode 100644
index 00000000000..0281759f2c6
--- /dev/null
+++ b/testing/lightdm-settings/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Jakko <jahau@rocketmail.com>
+# Maintainer: Jakko <jahau@rocketmail.com>
+pkgname=lightdm-settings
+pkgver=2.0.2
+pkgrel=0
+pkgdesc="LightDM configuration tool – supports slick-greeter only"
+url="https://github.com/linuxmint/lightdm-settings"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="py3-setproctitle xrandr"
+makedepends="gettext-dev"
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/lightdm-settings/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ make
+}
+
+package() {
+ install -Dm755 usr/bin/lightdm-settings \
+ "$pkgdir"/usr/bin/lightdm-settings
+
+ install -Dm755 usr/lib/lightdm-settings/SettingsWidgets.py \
+ "$pkgdir"/usr/lib/lightdm-settings/SettingsWidgets.py
+
+ install -Dm755 usr/lib/lightdm-settings/lightdm-settings \
+ "$pkgdir"/usr/lib/lightdm-settings/lightdm-settings
+
+ cp -a usr/share "$pkgdir"/usr/share
+}
+
+sha512sums="
+aa64955f26bb6ea47ae9136e8299f48b3eaa803ca913a646af09f61d447a80bde67fa1d54c494577c7d72533e834d05c230031e252739dbe5389473b4f4bd55a lightdm-settings-2.0.2.tar.gz
+"
diff --git a/testing/lilv/APKBUILD b/testing/lilv/APKBUILD
deleted file mode 100644
index ccfdbd08d95..00000000000
--- a/testing/lilv/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=lilv
-pkgver=0.24.8
-pkgrel=0
-pkgdesc="C library for simpler use of LV2 plugins"
-url="http://drobilla.net/software/lilv"
-arch="all"
-license="ISC"
-makedepends="lv2-dev python3 serd-dev libsndfile-dev sord-dev sratom-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://download.drobilla.net/lilv-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- python3 waf configure --prefix=/usr
- python3 waf build
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="f2b2638372a8280041f6e88e2077f2109f89dad6feedb9d07a88c6b5a05c37b62112f5d03282da4335ddd0d14339cfb49ad96a3df3de310265a40c24718be192 lilv-0.24.8.tar.bz2"
diff --git a/testing/limkd/APKBUILD b/testing/limkd/APKBUILD
new file mode 100644
index 00000000000..cd324239eb0
--- /dev/null
+++ b/testing/limkd/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Miles Alan <m@milesalan.com>
+pkgname=limkd
+pkgver=0.1.2
+pkgrel=0
+pkgdesc="Libinput multipress key daemon"
+url="https://git.sr.ht/~mil/limkd"
+arch="aarch64 x86_64" # Limited by zig aport
+license="GPL-3.0-or-later"
+makedepends="
+ libinput-dev
+ libevdev-dev
+ zig
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~mil/limkd/archive/$pkgver.tar.gz
+ "
+subpackages="$pkgname-doc"
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+ aarch64|x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ zig build -Drelease-safe=true ${cputarget:+-Dcpu="$cputarget"}
+}
+
+package() {
+ install -Dm755 zig-out/bin/limkd -t "$pkgdir/usr/bin/"
+ install -Dm644 limkd.1 -t "$pkgdir/usr/share/man/man1/"
+}
+
+sha512sums="
+2b4bdfef19759e12607e125318d4fbb45b0ea897c81c0d45a6f67d262c2225ed02bc785276a3ce5c8051b33ab9d0b6d6c20b928d136d08fec226e9d7c82756ab limkd-0.1.2.tar.gz
+"
diff --git a/testing/limnoria/APKBUILD b/testing/limnoria/APKBUILD
new file mode 100644
index 00000000000..cf47f4009c5
--- /dev/null
+++ b/testing/limnoria/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=limnoria
+pkgver=20220927
+_pkgver=2022-09-27
+pkgrel=3
+pkgdesc="A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins"
+url="https://limnoria.net/"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 py3-cryptography"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-mock"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://github.com/progval/Limnoria/archive/refs/tags/master-$_pkgver.tar.gz"
+builddir="$srcdir/Limnoria-master-$_pkgver"
+options="!check" # check requires installing limnoria before testing
+# https://github.com/progval/Limnoria/blob/master/.github/workflows/test.yml
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+9e8d57c34d1ff23e1772be618d9f9a8fae909200d3002ea97a95a5ba6545781d68194c4c796fa7f8683a0f3a267566ade01dd74f26110e7e0febef8ff739d88a master-2022-09-27.tar.gz
+"
diff --git a/testing/links-graphics/APKBUILD b/testing/links-graphics/APKBUILD
index 770abd75678..fd1ca8757dd 100644
--- a/testing/links-graphics/APKBUILD
+++ b/testing/links-graphics/APKBUILD
@@ -1,25 +1,38 @@
# Contributor: Jeremy O'Brien <neutral@fastmail.com>
-# Maintainer: Jeremy O'Brien <neutral@fastmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=links-graphics
-pkgver=2.20.1
+pkgver=2.29
pkgrel=1
pkgdesc="Web browser running in both graphics and text mode"
-builddir="$srcdir"/links-$pkgver
-url="http://atrey.karlin.mff.cuni.cz/~clock/twibright/links"
+url="http://links.twibright.com/"
arch="all"
-options="!check" # No test suite.
license="GPL-2.0-or-later"
+makedepends="
+ bzip2-dev
+ jpeg-dev
+ libevent-dev
+ libpng-dev
+ openssl-dev
+ xorg-server-dev
+ zlib-dev
+ zstd-dev
+ "
subpackages="$pkgname-doc"
-makedepends="bzip2-dev openssl-dev zlib-dev libevent-dev zstd-dev xorg-server-dev jpeg-dev libpng-dev"
-provides="links"
source="http://links.twibright.com/download/links-$pkgver.tar.bz2"
+builddir="$srcdir/links-$pkgver"
+options="!check" # No test suite.
+
+provides="links"
+provider_priority=20
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
+ --sysconfdir=/etc \
--mandir=/usr/share/man \
+ --localstatedir=/var \
--disable-javascript \
--enable-graphics \
--with-x \
@@ -32,4 +45,7 @@ build() {
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="c7258e303a2012e9016385abd1e8882ffec47dd3baf479a54448742e41b03508d874387af6ea97c7ef9c4d37f2eecbe7bc0121d923df79b0f455f4f466747ca2 links-2.20.1.tar.bz2"
+
+sha512sums="
+5ea8b2fd0eb74d9dc2b45614aef6ee878fe686dff9bcee75ac6ea01f6a7331670f7709233d31986fc64ad86ce549616a4471057837b6caf15af6d1c5c503ac75 links-2.29.tar.bz2
+"
diff --git a/testing/linphone/APKBUILD b/testing/linphone/APKBUILD
index 163b1e2803b..da6d0fdff83 100644
--- a/testing/linphone/APKBUILD
+++ b/testing/linphone/APKBUILD
@@ -1,70 +1,81 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=linphone
-pkgver=4.3.1
+pkgver=5.3.38
pkgrel=0
pkgdesc="An opensource SIP phone for voice/video calls and instant messaging"
url="https://linphone.org/"
-arch="all !mips !mips64" # blocked by belle-sip-dev
+# riscv64 blocked by java -> belle-sip
+arch="all !riscv64"
license="GPL-2.0-or-later"
options="!check" # no test available
-makedepends="cmake ortp-dev readline-dev sqlite-dev
- bctoolbox-dev libxml2-dev zlib-dev libnotify-dev
- speex-dev mediastreamer2-dev belle-sip-dev belcard-dev belr-dev
- libxv-dev v4l-utils-dev graphviz-dev xerces-c-dev"
-subpackages="$pkgname-dev"
-source="https://gitlab.linphone.org/BC/public/liblinphone/-/archive/$pkgver/liblinphone-$pkgver.tar.gz"
+# needed for linphonec
+depends="belcard"
+makedepends="
+ bctoolbox-dev
+ belcard-dev
+ belle-sip-dev
+ belr-dev
+ cmake
+ graphviz-dev
+ libnotify-dev
+ libxml2-dev
+ libxv-dev
+ mediastreamer2-dev
+ ortp-dev
+ readline-dev
+ samurai
+ speex-dev
+ sqlite-dev
+ v4l-utils-dev
+ xerces-c-dev
+ zlib-dev
+ zxing-cpp-dev
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="https://gitlab.linphone.org/BC/public/liblinphone/-/archive/$pkgver/liblinphone-$pkgver.tar.gz
+ fix-cmake-path.patch
+ "
builddir="$srcdir/lib$pkgname-$pkgver"
build() {
- cmake -B build\
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_SKIP_BUILD_RPATH=ON \
- -DENABLE_SHARED=YES \
- -DENABLE_STATIC=NO \
+ -DCMAKE_SKIP_RPATH=ON \
-DENABLE_CONSOLE_UI=YES \
- -DENABLE_TOOLS=YES \
+ -DENABLE_CXX_WRAPPER=NO \
-DENABLE_DAEMON=YES \
- -DENABLE_SQLITE_STORAGE=YES \
- -DENABLE_STRICT=NO \
- -DENABLE_VIDEO=YES \
- -DENABLE_VCARD=YES \
- -DENABLE_NLS=NO \
+ -DENABLE_DB_STORAGE=NO \
+ -DENABLE_DOC=NO \
+ -DENABLE_FLEXIAPI=NO \
+ -DENABLE_GTK_UI=NO \
-DENABLE_LIME=NO \
+ -DENABLE_LIME_X3DH=NO \
-DENABLE_NOTIFY=YES \
- -DENABLE_GTK_UI=NO \
- -DENABLE_ASSISTANT=NO \
+ -DBUILD_SHARED_LIBS=YES \
+ -DENABLE_STATIC=NO \
-DENABLE_STRICT=NO \
- -DENABLE_ROOTCA_DOWNLOAD=NO \
- -DENABLE_ADVANCED_IM=NO \
- -DENABLE_DB_STORAGE=NO \
- -DENABLE_LIME_X3DH=NO \
+ -DENABLE_STRICT=NO \
+ -DENABLE_TOOLS=YES \
-DENABLE_UNIT_TESTS=NO \
- -DENABLE_CXX_WRAPPER=NO \
- -DENABLE_DOC=NO
- make -C build
+ -DENABLE_VCARD=YES \
+ -DENABLE_VIDEO=YES
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
dev() {
default_dev
- mkdir -p "$subpkgdir"/usr/lib/cmake/Linphone
- mv "$pkgdir"/usr/share/Linphone/cmake/* "$subpkgdir"/usr/lib/cmake/Linphone
# Fix includes
- sed -i -e 's/INTERFACE_INCLUDE_DIRECTORIES.*/INTERFACE_INCLUDE_DIRECTORIES\ \"\/usr\/include\"/g' "$subpkgdir"/usr/lib/cmake/Linphone/LinphoneTargets.cmake
-}
-
-sounds() {
- pkgdesc="Sound files for $pkgname"
- mkdir -p "$subpkgdir"/usr/share/sounds/linphone
- mv "$pkgdir"/usr/share/sounds "$subpkgdir"/usr/share/sounds/linphone
- # Remove empty dirs
- rmdir "$pkgdir"/usr/share
+ sed -i -e 's/INTERFACE_INCLUDE_DIRECTORIES.*/INTERFACE_INCLUDE_DIRECTORIES\ \"\/usr\/include\"/g' "$subpkgdir"/usr/lib/cmake/LibLinphone/LibLinphoneTargets.cmake
}
-sha512sums="5d47d947f9f9a5cf1a2484a8e6395bfb47bc9953a7833010dcd15939cb3fe019b47d2ea1c218cfc424dabf6b1015a01c085bcf68244e4fd73d4f741caf9ea979 liblinphone-4.3.1.tar.gz"
+sha512sums="
+3a73cae2665bcc40939000bd7d474551499cfc5a075e49ee6d4afa723c127fa599589e0fabd15de34f28d87529bfe002fa8cdfa4ae42ec31cf734fbeaa862f74 liblinphone-5.3.38.tar.gz
+57f3c1ab1172133167991429150e3bbff6213817deea988c302d367a6a0b1315030f2027b6493a64c9b41f3d112d95eeea4a20ae3dc07c3ebb3be3aa95e42d3f fix-cmake-path.patch
+"
diff --git a/testing/linphone/fix-cmake-path.patch b/testing/linphone/fix-cmake-path.patch
new file mode 100644
index 00000000000..5ee0f9786ab
--- /dev/null
+++ b/testing/linphone/fix-cmake-path.patch
@@ -0,0 +1,31 @@
+Adapted from https://github.com/OpenMandrivaAssociation/linphone/blob/master/liblinphone-5.3.6-cmake-config-location.patch
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -397,7 +397,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 LIBLINPHONE_PLUGINS_DIR
+--- a/wrappers/cpp/CMakeLists.txt
++++ b/wrappers/cpp/CMakeLists.txt
+@@ -98,12 +98,12 @@
+
+ install(EXPORT LinphoneCxxTargets
+ FILE LinphoneCxxTargets.cmake
+- DESTINATION "${CMAKE_INSTALL_DATADIR}/LinphoneCxx/cmake"
++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/LinphoneCxx"
+ )
+ install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/LinphoneCxxConfig.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/LinphoneCxxVersion.cmake"
+- DESTINATION "${CMAKE_INSTALL_DATADIR}/LinphoneCxx/cmake"
++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/LinphoneCxx"
+ )
+
+ if(ENABLE_DOC OR ENABLE_CXX_WRAPPER)
+
diff --git a/testing/linux-amlogic/0001-ARM64-defconfig-enable-CEC-support.patch b/testing/linux-amlogic/0001-ARM64-defconfig-enable-CEC-support.patch
deleted file mode 100644
index 41791a5c25a..00000000000
--- a/testing/linux-amlogic/0001-ARM64-defconfig-enable-CEC-support.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 0c815d66dbaa54b53e4b54105992ce44dfe8c36f Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Mon, 13 Nov 2017 12:09:40 +0100
-Subject: [PATCH] ARM64: defconfig: enable CEC support
-
-Turn on CONFIG_CEC_SUPPORT and CONFIG_CEC_PLATFORM_DRIVERS
-Turn on CONFIG_VIDEO_MESON_AO_CEC as module
-Turn on CONFIG_DRM_DW_HDMI_CEC as module
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- arch/arm64/configs/defconfig | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
-index db8d364..ab1cb51 100644
---- a/arch/arm64/configs/defconfig
-+++ b/arch/arm64/configs/defconfig
-@@ -413,6 +413,7 @@ CONFIG_MEDIA_SUPPORT=m
- CONFIG_MEDIA_CAMERA_SUPPORT=y
- CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
- CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-+CONFIG_MEDIA_CEC_SUPPORT=y
- CONFIG_MEDIA_CONTROLLER=y
- CONFIG_VIDEO_V4L2_SUBDEV_API=y
- # CONFIG_DVB_NET is not set
-@@ -424,6 +425,8 @@ CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
- CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
- CONFIG_VIDEO_RENESAS_FCP=m
- CONFIG_VIDEO_RENESAS_VSP1=m
-+CONFIG_CEC_PLATFORM_DRIVERS=y
-+CONFIG_VIDEO_MESON_AO_CEC=m
- CONFIG_DRM=m
- CONFIG_DRM_NOUVEAU=m
- CONFIG_DRM_EXYNOS=m
-@@ -444,6 +447,7 @@ CONFIG_DRM_RCAR_LVDS=m
- CONFIG_DRM_TEGRA=m
- CONFIG_DRM_PANEL_SIMPLE=m
- CONFIG_DRM_I2C_ADV7511=m
-+CONFIG_DRM_DW_HDMI_CEC=m
- CONFIG_DRM_VC4=m
- CONFIG_DRM_HISI_HIBMC=m
- CONFIG_DRM_HISI_KIRIN=m
diff --git a/testing/linux-amlogic/0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch b/testing/linux-amlogic/0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
deleted file mode 100644
index 5bcec06be2a..00000000000
--- a/testing/linux-amlogic/0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From e2c70445f3533e8fa62f8c645713508148f8e4f6 Mon Sep 17 00:00:00 2001
-From: Carlo Caione <ccaione@baylibre.com>
-Date: Tue, 4 Dec 2018 16:04:46 +0000
-Subject: [PATCH] arm64: dts: meson: Fix IRQ trigger type for macirq
-
-A long running stress test on a custom board shipping an AXG SoCs and a
-Realtek RTL8211F PHY revealed that after a few hours the connection
-speed would drop drastically, from ~1000Mbps to ~3Mbps. At the same time
-the 'macirq' (eth0) IRQ would stop being triggered at all and as
-consequence the GMAC IRQs never ACKed.
-
-After a painful investigation the problem seemed to be due to a wrong
-defined IRQ type for the GMAC IRQ that should be LEVEL_HIGH instead of
-EDGE_RISING.
-
-Signed-off-by: Carlo Caione <ccaione@baylibre.com>
-Acked-by: Neil Armstrong <narmstrong@baylibre.com>
----
- arch/arm/boot/dts/meson.dtsi | 2 +-
- arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 2 +-
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi
-index 0d9faf1a51ea..a86b89086334 100644
---- a/arch/arm/boot/dts/meson.dtsi
-+++ b/arch/arm/boot/dts/meson.dtsi
-@@ -263,7 +263,7 @@
- compatible = "amlogic,meson6-dwmac", "snps,dwmac";
- reg = <0xc9410000 0x10000
- 0xc1108108 0x4>;
-- interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
-+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "macirq";
- status = "disabled";
- };
-diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
-index c518130e5ce7..81dcbde9e674 100644
---- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
-@@ -461,7 +461,7 @@
- compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac";
- reg = <0x0 0xff3f0000 0x0 0x10000
- 0x0 0xff634540 0x0 0x8>;
-- interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
-+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "macirq";
- clocks = <&clkc CLKID_ETH>,
- <&clkc CLKID_FCLK_DIV2>,
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index 5d2820ef9a88..d03737acbae1 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -511,7 +511,7 @@
- compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";
- reg = <0x0 0xc9410000 0x0 0x10000
- 0x0 0xc8834540 0x0 0x4>;
-- interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
-+ interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "macirq";
- status = "disabled";
- };
diff --git a/testing/linux-amlogic/0001-drm-meson-fix-max-mode_config-height-width.patch b/testing/linux-amlogic/0001-drm-meson-fix-max-mode_config-height-width.patch
deleted file mode 100644
index b9c5c2ca500..00000000000
--- a/testing/linux-amlogic/0001-drm-meson-fix-max-mode_config-height-width.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a2b8a766c2fb57096c065e539d93f9f4fbd7ace4 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Thu, 4 Oct 2018 10:42:43 +0200
-Subject: [PATCH] drm/meson: fix max mode_config height/width
-
-The mode_config max_width/max_height determines the maximum framebuffer
-size the pixel reader can handle. But the values were set thinking they
-were determining the maximum screen dimensions.
-
-This patch changes the values to the maximum height/width the CANVAS block
-can handle rounded to some coherent values.
-
-Fixes: a41e82e6c457 ("drm/meson: Add support for components")
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
----
- drivers/gpu/drm/meson/meson_drv.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
-index 3ee4d4a4ecba..b3c04ecc75f3 100644
---- a/drivers/gpu/drm/meson/meson_drv.c
-+++ b/drivers/gpu/drm/meson/meson_drv.c
-@@ -263,8 +263,8 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
- goto free_drm;
-
- drm_mode_config_init(drm);
-- drm->mode_config.max_width = 3840;
-- drm->mode_config.max_height = 2160;
-+ drm->mode_config.max_width = 16384;
-+ drm->mode_config.max_height = 8192;
- drm->mode_config.funcs = &meson_mode_config_funcs;
-
- /* Hardware Initialization */
diff --git a/testing/linux-amlogic/0002-ASoC-meson-add-meson-audio-core-driver.patch b/testing/linux-amlogic/0002-ASoC-meson-add-meson-audio-core-driver.patch
deleted file mode 100644
index 6acbf80c86e..00000000000
--- a/testing/linux-amlogic/0002-ASoC-meson-add-meson-audio-core-driver.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-From 4770a464de7b87bc849e4e110f197ef9fa7bccf6 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 11:49:55 +0200
-Subject: [PATCH] ASoC: meson: add meson audio core driver
-
-This patch adds support for the audio core driver for the Amlogic Meson SoC
-family. The purpose of this driver is to properly reset the audio block and
-provide register access for the different devices scattered in this address
-space. This includes output and input DMAs, pcm, i2s and spdif dai, card
-level routing, internal codec for the gxl variant
-
-For more information, please refer to the section 5 of the public datasheet
-of the S905 (gxbb). This datasheet is available here: [0].
-
-[0]: http://dn.odroid.com/S905/DataSheet/S905_Public_Datasheet_V1.1.4.pdf
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- sound/soc/meson/Kconfig | 10 +++
- sound/soc/meson/Makefile | 4 +
- sound/soc/meson/audio-core.c | 190 +++++++++++++++++++++++++++++++++++++++++++
- sound/soc/meson/audio-core.h | 28 +++++++
- 4 files changed, 232 insertions(+)
- create mode 100644 sound/soc/meson/audio-core.c
- create mode 100644 sound/soc/meson/audio-core.h
-
-diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
-index 8af8bc3..ed432d4 100644
---- a/sound/soc/meson/Kconfig
-+++ b/sound/soc/meson/Kconfig
-@@ -63,3 +63,13 @@ config SND_MESON_AXG_SPDIFOUT
- in the Amlogic AXG SoC family
-
- endmenu
-+
-+menuconfig SND_SOC_MESON
-+ tristate "ASoC support for Amlogic Meson SoCs"
-+ depends on ARCH_MESON
-+ select MFD_CORE
-+ select REGMAP_MMIO
-+ help
-+ Say Y or M if you want to add support for codecs attached to
-+ the Amlogic Meson SoCs Audio interfaces. You will also need to
-+ select the audio interfaces to support below.
-diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
-index c5e003b..768d7c4 100644
---- a/sound/soc/meson/Makefile
-+++ b/sound/soc/meson/Makefile
-@@ -19,3 +19,7 @@ obj-$(CONFIG_SND_MESON_AXG_TDMIN) += snd-soc-meson-axg-tdmin.o
- obj-$(CONFIG_SND_MESON_AXG_TDMOUT) += snd-soc-meson-axg-tdmout.o
- obj-$(CONFIG_SND_MESON_AXG_SOUND_CARD) += snd-soc-meson-axg-sound-card.o
- obj-$(CONFIG_SND_MESON_AXG_SPDIFOUT) += snd-soc-meson-axg-spdifout.o
-+
-+snd-soc-meson-audio-core-objs := audio-core.o
-+
-+obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
-\ No newline at end of file
-diff --git a/sound/soc/meson/audio-core.c b/sound/soc/meson/audio-core.c
-new file mode 100644
-index 0000000..99993ec
---- /dev/null
-+++ b/sound/soc/meson/audio-core.c
-@@ -0,0 +1,190 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/mfd/core.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/platform_device.h>
-+#include <linux/regmap.h>
-+#include <linux/reset.h>
-+
-+#include "audio-core.h"
-+
-+#define DRV_NAME "meson-audio-core"
-+
-+static const char * const acore_clock_names[] = { "aiu_top",
-+ "aiu_glue",
-+ "audin" };
-+
-+static int meson_acore_init_clocks(struct device *dev)
-+{
-+ struct clk *clock;
-+ int i, ret;
-+
-+ for (i = 0; i < ARRAY_SIZE(acore_clock_names); i++) {
-+ clock = devm_clk_get(dev, acore_clock_names[i]);
-+ if (IS_ERR(clock)) {
-+ if (PTR_ERR(clock) != -EPROBE_DEFER)
-+ dev_err(dev, "Failed to get %s clock\n",
-+ acore_clock_names[i]);
-+ return PTR_ERR(clock);
-+ }
-+
-+ ret = clk_prepare_enable(clock);
-+ if (ret) {
-+ dev_err(dev, "Failed to enable %s clock\n",
-+ acore_clock_names[i]);
-+ return ret;
-+ }
-+
-+ ret = devm_add_action_or_reset(dev,
-+ (void(*)(void *))clk_disable_unprepare,
-+ clock);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static const char * const acore_reset_names[] = { "aiu",
-+ "audin" };
-+
-+static int meson_acore_init_resets(struct device *dev)
-+{
-+ struct reset_control *reset;
-+ int i, ret;
-+
-+ for (i = 0; i < ARRAY_SIZE(acore_reset_names); i++) {
-+ reset = devm_reset_control_get_exclusive(dev,
-+ acore_reset_names[i]);
-+ if (IS_ERR(reset)) {
-+ if (PTR_ERR(reset) != -EPROBE_DEFER)
-+ dev_err(dev, "Failed to get %s reset\n",
-+ acore_reset_names[i]);
-+ return PTR_ERR(reset);
-+ }
-+
-+ ret = reset_control_reset(reset);
-+ if (ret) {
-+ dev_err(dev, "Failed to pulse %s reset\n",
-+ acore_reset_names[i]);
-+ return ret;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct regmap_config meson_acore_regmap_config = {
-+ .reg_bits = 32,
-+ .val_bits = 32,
-+ .reg_stride = 4,
-+};
-+
-+static const struct mfd_cell meson_acore_devs[] = {
-+ {
-+ .name = "meson-i2s-dai",
-+ .of_compatible = "amlogic,meson-i2s-dai",
-+ },
-+ {
-+ .name = "meson-spdif-dai",
-+ .of_compatible = "amlogic,meson-spdif-dai",
-+ },
-+ {
-+ .name = "meson-aiu-i2s-dma",
-+ .of_compatible = "amlogic,meson-aiu-i2s-dma",
-+ },
-+ {
-+ .name = "meson-aiu-spdif-dma",
-+ .of_compatible = "amlogic,meson-aiu-spdif-dma",
-+ },
-+};
-+
-+static int meson_acore_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct meson_audio_core_data *data;
-+ struct resource *res;
-+ void __iomem *regs;
-+ int ret;
-+
-+ data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
-+ if (!data)
-+ return -ENOMEM;
-+ platform_set_drvdata(pdev, data);
-+
-+ ret = meson_acore_init_clocks(dev);
-+ if (ret)
-+ return ret;
-+
-+ ret = meson_acore_init_resets(dev);
-+ if (ret)
-+ return ret;
-+
-+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "aiu");
-+ regs = devm_ioremap_resource(dev, res);
-+ if (IS_ERR(regs))
-+ return PTR_ERR(regs);
-+
-+ data->aiu = devm_regmap_init_mmio(dev, regs,
-+ &meson_acore_regmap_config);
-+ if (IS_ERR(data->aiu)) {
-+ dev_err(dev, "Couldn't create the AIU regmap\n");
-+ return PTR_ERR(data->aiu);
-+ }
-+
-+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "audin");
-+ regs = devm_ioremap_resource(dev, res);
-+ if (IS_ERR(regs))
-+ return PTR_ERR(regs);
-+
-+ data->audin = devm_regmap_init_mmio(dev, regs,
-+ &meson_acore_regmap_config);
-+ if (IS_ERR(data->audin)) {
-+ dev_err(dev, "Couldn't create the AUDIN regmap\n");
-+ return PTR_ERR(data->audin);
-+ }
-+
-+ return devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO, meson_acore_devs,
-+ ARRAY_SIZE(meson_acore_devs), NULL, 0,
-+ NULL);
-+}
-+
-+static const struct of_device_id meson_acore_of_match[] = {
-+ { .compatible = "amlogic,meson-audio-core", },
-+ { .compatible = "amlogic,meson-gxbb-audio-core", },
-+ { .compatible = "amlogic,meson-gxl-audio-core", },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, meson_acore_of_match);
-+
-+static struct platform_driver meson_acore_pdrv = {
-+ .probe = meson_acore_probe,
-+ .driver = {
-+ .name = DRV_NAME,
-+ .of_match_table = meson_acore_of_match,
-+ },
-+};
-+module_platform_driver(meson_acore_pdrv);
-+
-+MODULE_DESCRIPTION("Meson Audio Core Driver");
-+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
-+MODULE_LICENSE("GPL v2");
-diff --git a/sound/soc/meson/audio-core.h b/sound/soc/meson/audio-core.h
-new file mode 100644
-index 0000000..6e7a24c
---- /dev/null
-+++ b/sound/soc/meson/audio-core.h
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef _MESON_AUDIO_CORE_H_
-+#define _MESON_AUDIO_CORE_H_
-+
-+struct meson_audio_core_data {
-+ struct regmap *aiu;
-+ struct regmap *audin;
-+};
-+
-+#endif /* _MESON_AUDIO_CORE_H_ */
diff --git a/testing/linux-amlogic/0003-ASoC-meson-add-register-definitions.patch b/testing/linux-amlogic/0003-ASoC-meson-add-register-definitions.patch
deleted file mode 100644
index cb4027a2c4d..00000000000
--- a/testing/linux-amlogic/0003-ASoC-meson-add-register-definitions.patch
+++ /dev/null
@@ -1,358 +0,0 @@
-From dc1d93ea8dc61686364e2659c1ac1392681b64b4 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 12:00:10 +0200
-Subject: [PATCH] ASoC: meson: add register definitions
-
-Add the register definition for the AIU and AUDIN blocks
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- sound/soc/meson/aiu-regs.h | 182 +++++++++++++++++++++++++++++++++++++++++++
- sound/soc/meson/audin-regs.h | 148 +++++++++++++++++++++++++++++++++++
- 2 files changed, 330 insertions(+)
- create mode 100644 sound/soc/meson/aiu-regs.h
- create mode 100644 sound/soc/meson/audin-regs.h
-
-diff --git a/sound/soc/meson/aiu-regs.h b/sound/soc/meson/aiu-regs.h
-new file mode 100644
-index 0000000..67391e6
---- /dev/null
-+++ b/sound/soc/meson/aiu-regs.h
-@@ -0,0 +1,182 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef _AIU_REGS_H_
-+#define _AIU_REGS_H_
-+
-+#define AIU_958_BPF 0x000
-+#define AIU_958_BRST 0x004
-+#define AIU_958_LENGTH 0x008
-+#define AIU_958_PADDSIZE 0x00C
-+#define AIU_958_MISC 0x010
-+#define AIU_958_FORCE_LEFT 0x014 /* Unknown */
-+#define AIU_958_DISCARD_NUM 0x018
-+#define AIU_958_DCU_FF_CTRL 0x01C
-+#define AIU_958_CHSTAT_L0 0x020
-+#define AIU_958_CHSTAT_L1 0x024
-+#define AIU_958_CTRL 0x028
-+#define AIU_958_RPT 0x02C
-+#define AIU_I2S_MUTE_SWAP 0x030
-+#define AIU_I2S_SOURCE_DESC 0x034
-+#define AIU_I2S_MED_CTRL 0x038
-+#define AIU_I2S_MED_THRESH 0x03C
-+#define AIU_I2S_DAC_CFG 0x040
-+#define AIU_I2S_SYNC 0x044 /* Unknown */
-+#define AIU_I2S_MISC 0x048
-+#define AIU_I2S_OUT_CFG 0x04C
-+#define AIU_I2S_FF_CTRL 0x050 /* Unknown */
-+#define AIU_RST_SOFT 0x054
-+#define AIU_CLK_CTRL 0x058
-+#define AIU_MIX_ADCCFG 0x05C
-+#define AIU_MIX_CTRL 0x060
-+#define AIU_CLK_CTRL_MORE 0x064
-+#define AIU_958_POP 0x068
-+#define AIU_MIX_GAIN 0x06C
-+#define AIU_958_SYNWORD1 0x070
-+#define AIU_958_SYNWORD2 0x074
-+#define AIU_958_SYNWORD3 0x078
-+#define AIU_958_SYNWORD1_MASK 0x07C
-+#define AIU_958_SYNWORD2_MASK 0x080
-+#define AIU_958_SYNWORD3_MASK 0x084
-+#define AIU_958_FFRDOUT_THD 0x088
-+#define AIU_958_LENGTH_PER_PAUSE 0x08C
-+#define AIU_958_PAUSE_NUM 0x090
-+#define AIU_958_PAUSE_PAYLOAD 0x094
-+#define AIU_958_AUTO_PAUSE 0x098
-+#define AIU_958_PAUSE_PD_LENGTH 0x09C
-+#define AIU_CODEC_DAC_LRCLK_CTRL 0x0A0
-+#define AIU_CODEC_ADC_LRCLK_CTRL 0x0A4
-+#define AIU_HDMI_CLK_DATA_CTRL 0x0A8
-+#define AIU_CODEC_CLK_DATA_CTRL 0x0AC
-+#define AIU_ACODEC_CTRL 0x0B0
-+#define AIU_958_CHSTAT_R0 0x0C0
-+#define AIU_958_CHSTAT_R1 0x0C4
-+#define AIU_958_VALID_CTRL 0x0C8
-+#define AIU_AUDIO_AMP_REG0 0x0F0 /* Unknown */
-+#define AIU_AUDIO_AMP_REG1 0x0F4 /* Unknown */
-+#define AIU_AUDIO_AMP_REG2 0x0F8 /* Unknown */
-+#define AIU_AUDIO_AMP_REG3 0x0FC /* Unknown */
-+#define AIU_AIFIFO2_CTRL 0x100
-+#define AIU_AIFIFO2_STATUS 0x104
-+#define AIU_AIFIFO2_GBIT 0x108
-+#define AIU_AIFIFO2_CLB 0x10C
-+#define AIU_CRC_CTRL 0x110
-+#define AIU_CRC_STATUS 0x114
-+#define AIU_CRC_SHIFT_REG 0x118
-+#define AIU_CRC_IREG 0x11C
-+#define AIU_CRC_CAL_REG1 0x120
-+#define AIU_CRC_CAL_REG0 0x124
-+#define AIU_CRC_POLY_COEF1 0x128
-+#define AIU_CRC_POLY_COEF0 0x12C
-+#define AIU_CRC_BIT_SIZE1 0x130
-+#define AIU_CRC_BIT_SIZE0 0x134
-+#define AIU_CRC_BIT_CNT1 0x138
-+#define AIU_CRC_BIT_CNT0 0x13C
-+#define AIU_AMCLK_GATE_HI 0x140
-+#define AIU_AMCLK_GATE_LO 0x144
-+#define AIU_AMCLK_MSR 0x148
-+#define AIU_AUDAC_CTRL0 0x14C /* Unknown */
-+#define AIU_DELTA_SIGMA0 0x154 /* Unknown */
-+#define AIU_DELTA_SIGMA1 0x158 /* Unknown */
-+#define AIU_DELTA_SIGMA2 0x15C /* Unknown */
-+#define AIU_DELTA_SIGMA3 0x160 /* Unknown */
-+#define AIU_DELTA_SIGMA4 0x164 /* Unknown */
-+#define AIU_DELTA_SIGMA5 0x168 /* Unknown */
-+#define AIU_DELTA_SIGMA6 0x16C /* Unknown */
-+#define AIU_DELTA_SIGMA7 0x170 /* Unknown */
-+#define AIU_DELTA_SIGMA_LCNTS 0x174 /* Unknown */
-+#define AIU_DELTA_SIGMA_RCNTS 0x178 /* Unknown */
-+#define AIU_MEM_I2S_START_PTR 0x180
-+#define AIU_MEM_I2S_RD_PTR 0x184
-+#define AIU_MEM_I2S_END_PTR 0x188
-+#define AIU_MEM_I2S_MASKS 0x18C
-+#define AIU_MEM_I2S_CONTROL 0x190
-+#define AIU_MEM_IEC958_START_PTR 0x194
-+#define AIU_MEM_IEC958_RD_PTR 0x198
-+#define AIU_MEM_IEC958_END_PTR 0x19C
-+#define AIU_MEM_IEC958_MASKS 0x1A0
-+#define AIU_MEM_IEC958_CONTROL 0x1A4
-+#define AIU_MEM_AIFIFO2_START_PTR 0x1A8
-+#define AIU_MEM_AIFIFO2_CURR_PTR 0x1AC
-+#define AIU_MEM_AIFIFO2_END_PTR 0x1B0
-+#define AIU_MEM_AIFIFO2_BYTES_AVAIL 0x1B4
-+#define AIU_MEM_AIFIFO2_CONTROL 0x1B8
-+#define AIU_MEM_AIFIFO2_MAN_WP 0x1BC
-+#define AIU_MEM_AIFIFO2_MAN_RP 0x1C0
-+#define AIU_MEM_AIFIFO2_LEVEL 0x1C4
-+#define AIU_MEM_AIFIFO2_BUF_CNTL 0x1C8
-+#define AIU_MEM_I2S_MAN_WP 0x1CC
-+#define AIU_MEM_I2S_MAN_RP 0x1D0
-+#define AIU_MEM_I2S_LEVEL 0x1D4
-+#define AIU_MEM_I2S_BUF_CNTL 0x1D8
-+#define AIU_MEM_I2S_BUF_WRAP_COUNT 0x1DC
-+#define AIU_MEM_I2S_MEM_CTL 0x1E0
-+#define AIU_MEM_IEC958_MEM_CTL 0x1E4
-+#define AIU_MEM_IEC958_WRAP_COUNT 0x1E8
-+#define AIU_MEM_IEC958_IRQ_LEVEL 0x1EC
-+#define AIU_MEM_IEC958_MAN_WP 0x1F0
-+#define AIU_MEM_IEC958_MAN_RP 0x1F4
-+#define AIU_MEM_IEC958_LEVEL 0x1F8
-+#define AIU_MEM_IEC958_BUF_CNTL 0x1FC
-+#define AIU_AIFIFO_CTRL 0x200
-+#define AIU_AIFIFO_STATUS 0x204
-+#define AIU_AIFIFO_GBIT 0x208
-+#define AIU_AIFIFO_CLB 0x20C
-+#define AIU_MEM_AIFIFO_START_PTR 0x210
-+#define AIU_MEM_AIFIFO_CURR_PTR 0x214
-+#define AIU_MEM_AIFIFO_END_PTR 0x218
-+#define AIU_MEM_AIFIFO_BYTES_AVAIL 0x21C
-+#define AIU_MEM_AIFIFO_CONTROL 0x220
-+#define AIU_MEM_AIFIFO_MAN_WP 0x224
-+#define AIU_MEM_AIFIFO_MAN_RP 0x228
-+#define AIU_MEM_AIFIFO_LEVEL 0x22C
-+#define AIU_MEM_AIFIFO_BUF_CNTL 0x230
-+#define AIU_MEM_AIFIFO_BUF_WRAP_COUNT 0x234
-+#define AIU_MEM_AIFIFO2_BUF_WRAP_COUNT 0x238
-+#define AIU_MEM_AIFIFO_MEM_CTL 0x23C
-+#define AIFIFO_TIME_STAMP_CNTL 0x240
-+#define AIFIFO_TIME_STAMP_SYNC_0 0x244
-+#define AIFIFO_TIME_STAMP_SYNC_1 0x248
-+#define AIFIFO_TIME_STAMP_0 0x24C
-+#define AIFIFO_TIME_STAMP_1 0x250
-+#define AIFIFO_TIME_STAMP_2 0x254
-+#define AIFIFO_TIME_STAMP_3 0x258
-+#define AIFIFO_TIME_STAMP_LENGTH 0x25C
-+#define AIFIFO2_TIME_STAMP_CNTL 0x260
-+#define AIFIFO2_TIME_STAMP_SYNC_0 0x264
-+#define AIFIFO2_TIME_STAMP_SYNC_1 0x268
-+#define AIFIFO2_TIME_STAMP_0 0x26C
-+#define AIFIFO2_TIME_STAMP_1 0x270
-+#define AIFIFO2_TIME_STAMP_2 0x274
-+#define AIFIFO2_TIME_STAMP_3 0x278
-+#define AIFIFO2_TIME_STAMP_LENGTH 0x27C
-+#define IEC958_TIME_STAMP_CNTL 0x280
-+#define IEC958_TIME_STAMP_SYNC_0 0x284
-+#define IEC958_TIME_STAMP_SYNC_1 0x288
-+#define IEC958_TIME_STAMP_0 0x28C
-+#define IEC958_TIME_STAMP_1 0x290
-+#define IEC958_TIME_STAMP_2 0x294
-+#define IEC958_TIME_STAMP_3 0x298
-+#define IEC958_TIME_STAMP_LENGTH 0x29C
-+#define AIU_MEM_AIFIFO2_MEM_CTL 0x2A0
-+#define AIU_I2S_CBUS_DDR_CNTL 0x2A4
-+#define AIU_I2S_CBUS_DDR_WDATA 0x2A8
-+#define AIU_I2S_CBUS_DDR_ADDR 0x2AC
-+
-+#endif /* _AIU_REGS_H_ */
-diff --git a/sound/soc/meson/audin-regs.h b/sound/soc/meson/audin-regs.h
-new file mode 100644
-index 0000000..f224610
---- /dev/null
-+++ b/sound/soc/meson/audin-regs.h
-@@ -0,0 +1,148 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef _AUDIN_REGS_H_
-+#define _AUDIN_REGS_H_
-+
-+/*
-+ * Note :
-+ * Datasheet issue page 196
-+ * AUDIN_MUTE_VAL 0x35 => impossible: Already assigned to AUDIN_FIFO1_PTR
-+ * AUDIN_FIFO1_PTR is more likely to be correct here since surrounding registers
-+ * also deal with AUDIN_FIFO1
-+ *
-+ * Clarification needed from Amlogic
-+ */
-+
-+#define AUDIN_SPDIF_MODE 0x000
-+#define AUDIN_SPDIF_FS_CLK_RLTN 0x004
-+#define AUDIN_SPDIF_CHNL_STS_A 0x008
-+#define AUDIN_SPDIF_CHNL_STS_B 0x00C
-+#define AUDIN_SPDIF_MISC 0x010
-+#define AUDIN_SPDIF_NPCM_PCPD 0x014
-+#define AUDIN_SPDIF_END 0x03C /* Unknown */
-+#define AUDIN_I2SIN_CTRL 0x040
-+#define AUDIN_SOURCE_SEL 0x044
-+#define AUDIN_DECODE_FORMAT 0x048
-+#define AUDIN_DECODE_CONTROL_STATUS 0x04C
-+#define AUDIN_DECODE_CHANNEL_STATUS_A_0 0x050
-+#define AUDIN_DECODE_CHANNEL_STATUS_A_1 0x054
-+#define AUDIN_DECODE_CHANNEL_STATUS_A_2 0x058
-+#define AUDIN_DECODE_CHANNEL_STATUS_A_3 0x05C
-+#define AUDIN_DECODE_CHANNEL_STATUS_A_4 0x060
-+#define AUDIN_DECODE_CHANNEL_STATUS_A_5 0x064
-+#define AUDIN_FIFO0_START 0x080
-+#define AUDIN_FIFO0_END 0x084
-+#define AUDIN_FIFO0_PTR 0x088
-+#define AUDIN_FIFO0_INTR 0x08C
-+#define AUDIN_FIFO0_RDPTR 0x090
-+#define AUDIN_FIFO0_CTRL 0x094
-+#define AUDIN_FIFO0_CTRL1 0x098
-+#define AUDIN_FIFO0_LVL0 0x09C
-+#define AUDIN_FIFO0_LVL1 0x0A0
-+#define AUDIN_FIFO0_LVL2 0x0A4
-+#define AUDIN_FIFO0_REQID 0x0C0
-+#define AUDIN_FIFO0_WRAP 0x0C4
-+#define AUDIN_FIFO1_START 0x0CC
-+#define AUDIN_FIFO1_END 0x0D0
-+#define AUDIN_FIFO1_PTR 0x0D4
-+#define AUDIN_FIFO1_INTR 0x0D8
-+#define AUDIN_FIFO1_RDPTR 0x0DC
-+#define AUDIN_FIFO1_CTRL 0x0E0
-+#define AUDIN_FIFO1_CTRL1 0x0E4
-+#define AUDIN_FIFO1_LVL0 0x100
-+#define AUDIN_FIFO1_LVL1 0x104
-+#define AUDIN_FIFO1_LVL2 0x108
-+#define AUDIN_FIFO1_REQID 0x10C
-+#define AUDIN_FIFO1_WRAP 0x110
-+#define AUDIN_FIFO2_START 0x114
-+#define AUDIN_FIFO2_END 0x118
-+#define AUDIN_FIFO2_PTR 0x11C
-+#define AUDIN_FIFO2_INTR 0x120
-+#define AUDIN_FIFO2_RDPTR 0x124
-+#define AUDIN_FIFO2_CTRL 0x128
-+#define AUDIN_FIFO2_CTRL1 0x12C
-+#define AUDIN_FIFO2_LVL0 0x130
-+#define AUDIN_FIFO2_LVL1 0x134
-+#define AUDIN_FIFO2_LVL2 0x138
-+#define AUDIN_FIFO2_REQID 0x13C
-+#define AUDIN_FIFO2_WRAP 0x140
-+#define AUDIN_INT_CTRL 0x144
-+#define AUDIN_FIFO_INT 0x148
-+#define PCMIN_CTRL0 0x180
-+#define PCMIN_CTRL1 0x184
-+#define PCMIN1_CTRL0 0x188
-+#define PCMIN1_CTRL1 0x18C
-+#define PCMOUT_CTRL0 0x1C0
-+#define PCMOUT_CTRL1 0x1C4
-+#define PCMOUT_CTRL2 0x1C8
-+#define PCMOUT_CTRL3 0x1CC
-+#define PCMOUT1_CTRL0 0x1D0
-+#define PCMOUT1_CTRL1 0x1D4
-+#define PCMOUT1_CTRL2 0x1D8
-+#define PCMOUT1_CTRL3 0x1DC
-+#define AUDOUT_CTRL 0x200
-+#define AUDOUT_CTRL1 0x204
-+#define AUDOUT_BUF0_STA 0x208
-+#define AUDOUT_BUF0_EDA 0x20C
-+#define AUDOUT_BUF0_WPTR 0x210
-+#define AUDOUT_BUF1_STA 0x214
-+#define AUDOUT_BUF1_EDA 0x218
-+#define AUDOUT_BUF1_WPTR 0x21C
-+#define AUDOUT_FIFO_RPTR 0x220
-+#define AUDOUT_INTR_PTR 0x224
-+#define AUDOUT_FIFO_STS 0x228
-+#define AUDOUT1_CTRL 0x240
-+#define AUDOUT1_CTRL1 0x244
-+#define AUDOUT1_BUF0_STA 0x248
-+#define AUDOUT1_BUF0_EDA 0x24C
-+#define AUDOUT1_BUF0_WPTR 0x250
-+#define AUDOUT1_BUF1_STA 0x254
-+#define AUDOUT1_BUF1_EDA 0x258
-+#define AUDOUT1_BUF1_WPTR 0x25C
-+#define AUDOUT1_FIFO_RPTR 0x260
-+#define AUDOUT1_INTR_PTR 0x264
-+#define AUDOUT1_FIFO_STS 0x268
-+#define AUDIN_HDMI_MEAS_CTRL 0x280
-+#define AUDIN_HDMI_MEAS_CYCLES_M1 0x284
-+#define AUDIN_HDMI_MEAS_INTR_MASKN 0x288
-+#define AUDIN_HDMI_MEAS_INTR_STAT 0x28C
-+#define AUDIN_HDMI_REF_CYCLES_STAT_0 0x290
-+#define AUDIN_HDMI_REF_CYCLES_STAT_1 0x294
-+#define AUDIN_HDMIRX_AFIFO_STAT 0x298
-+#define AUDIN_FIFO0_PIO_STS 0x2C0
-+#define AUDIN_FIFO0_PIO_RDL 0x2C4
-+#define AUDIN_FIFO0_PIO_RDH 0x2C8
-+#define AUDIN_FIFO1_PIO_STS 0x2CC
-+#define AUDIN_FIFO1_PIO_RDL 0x2D0
-+#define AUDIN_FIFO1_PIO_RDH 0x2D4
-+#define AUDIN_FIFO2_PIO_STS 0x2D8
-+#define AUDIN_FIFO2_PIO_RDL 0x2DC
-+#define AUDIN_FIFO2_PIO_RDH 0x2E0
-+#define AUDOUT_FIFO_PIO_STS 0x2E4
-+#define AUDOUT_FIFO_PIO_WRL 0x2E8
-+#define AUDOUT_FIFO_PIO_WRH 0x2EC
-+#define AUDOUT1_FIFO_PIO_STS 0x2F0 /* Unknown */
-+#define AUDOUT1_FIFO_PIO_WRL 0x2F4 /* Unknown */
-+#define AUDOUT1_FIFO_PIO_WRH 0x2F8 /* Unknown */
-+#define AUD_RESAMPLE_CTRL0 0x2FC
-+#define AUD_RESAMPLE_CTRL1 0x300
-+#define AUD_RESAMPLE_STATUS 0x304
-+
-+#endif /* _AUDIN_REGS_H_ */
diff --git a/testing/linux-amlogic/0004-ASoC-meson-add-aiu-i2s-dma-support.patch b/testing/linux-amlogic/0004-ASoC-meson-add-aiu-i2s-dma-support.patch
deleted file mode 100644
index 900659845e2..00000000000
--- a/testing/linux-amlogic/0004-ASoC-meson-add-aiu-i2s-dma-support.patch
+++ /dev/null
@@ -1,422 +0,0 @@
-From ef53207463b1ffa58dbc8b994cb470f35bf12420 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 12:14:40 +0200
-Subject: [PATCH] ASoC: meson: add aiu i2s dma support
-
-Add support for the i2s output dma which is part of the AIU block
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- sound/soc/meson/Kconfig | 7 +
- sound/soc/meson/Makefile | 4 +-
- sound/soc/meson/aiu-i2s-dma.c | 370 ++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 380 insertions(+), 1 deletion(-)
- create mode 100644 sound/soc/meson/aiu-i2s-dma.c
-
-diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
-index ed432d4..6e030b5 100644
---- a/sound/soc/meson/Kconfig
-+++ b/sound/soc/meson/Kconfig
-@@ -73,3 +73,10 @@ menuconfig SND_SOC_MESON
- Say Y or M if you want to add support for codecs attached to
- the Amlogic Meson SoCs Audio interfaces. You will also need to
- select the audio interfaces to support below.
-+
-+config SND_SOC_MESON_I2S
-+ tristate "Meson i2s interface"
-+ depends on SND_SOC_MESON
-+ help
-+ Say Y or M if you want to add support for i2s dma driver for Amlogic
-+ Meson SoCs.
-diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
-index 768d7c4..5796007 100644
---- a/sound/soc/meson/Makefile
-+++ b/sound/soc/meson/Makefile
-@@ -21,5 +21,7 @@ obj-$(CONFIG_SND_MESON_AXG_SOUND_CARD) += snd-soc-meson-axg-sound-card.o
- obj-$(CONFIG_SND_MESON_AXG_SPDIFOUT) += snd-soc-meson-axg-spdifout.o
-
- snd-soc-meson-audio-core-objs := audio-core.o
-+snd-soc-meson-aiu-i2s-dma-objs := aiu-i2s-dma.o
-
--obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
-\ No newline at end of file
-+obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
-+obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-aiu-i2s-dma.o
-\ No newline at end of file
-diff --git a/sound/soc/meson/aiu-i2s-dma.c b/sound/soc/meson/aiu-i2s-dma.c
-new file mode 100644
-index 0000000..2684bd0
---- /dev/null
-+++ b/sound/soc/meson/aiu-i2s-dma.c
-@@ -0,0 +1,370 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/platform_device.h>
-+#include <linux/regmap.h>
-+
-+#include <sound/pcm_params.h>
-+#include <sound/soc.h>
-+
-+#include "aiu-regs.h"
-+#include "audio-core.h"
-+
-+#define DRV_NAME "meson-aiu-i2s-dma"
-+
-+struct aiu_i2s_dma {
-+ struct meson_audio_core_data *core;
-+ struct clk *fast;
-+ int irq;
-+};
-+
-+#define AIU_MEM_I2S_BUF_CNTL_INIT BIT(0)
-+#define AIU_MEM_I2S_CONTROL_INIT BIT(0)
-+#define AIU_MEM_I2S_CONTROL_FILL_EN BIT(1)
-+#define AIU_MEM_I2S_CONTROL_EMPTY_EN BIT(2)
-+#define AIU_MEM_I2S_CONTROL_MODE_16BIT BIT(6)
-+#define AIU_MEM_I2S_CONTROL_BUSY BIT(7)
-+#define AIU_MEM_I2S_CONTROL_DATA_READY BIT(8)
-+#define AIU_MEM_I2S_CONTROL_LEVEL_CNTL BIT(9)
-+#define AIU_MEM_I2S_MASKS_IRQ_BLOCK_MASK GENMASK(31, 16)
-+#define AIU_MEM_I2S_MASKS_IRQ_BLOCK(n) ((n) << 16)
-+#define AIU_MEM_I2S_MASKS_CH_MEM_MASK GENMASK(15, 8)
-+#define AIU_MEM_I2S_MASKS_CH_MEM(ch) ((ch) << 8)
-+#define AIU_MEM_I2S_MASKS_CH_RD_MASK GENMASK(7, 0)
-+#define AIU_MEM_I2S_MASKS_CH_RD(ch) ((ch) << 0)
-+#define AIU_RST_SOFT_I2S_FAST_DOMAIN BIT(0)
-+#define AIU_RST_SOFT_I2S_SLOW_DOMAIN BIT(1)
-+
-+/*
-+ * The DMA works by i2s "blocks" (or DMA burst). The burst size and the memory
-+ * layout expected depends on the mode of operation.
-+ *
-+ * - Normal mode: The channels are expected to be packed in 32 bytes groups
-+ * interleaved the buffer. AIU_MEM_I2S_MASKS_CH_MEM is a bitfield representing
-+ * the channels present in memory. AIU_MEM_I2S_MASKS_CH_MEM represents the
-+ * channels read by the DMA. This is very flexible but the unsual memory layout
-+ * makes it less easy to deal with. The burst size is 32 bytes times the number
-+ * of channels read.
-+ *
-+ * - Split mode:
-+ * Classical channel interleaved frame organisation. In this mode,
-+ * AIU_MEM_I2S_MASKS_CH_MEM and AIU_MEM_I2S_MASKS_CH_MEM must be set to 0xff and
-+ * the burst size is fixed to 256 bytes. The input can be either 2 or 8
-+ * channels.
-+ *
-+ * The following driver implements the split mode.
-+ */
-+
-+#define AIU_I2S_DMA_BURST 256
-+
-+static struct snd_pcm_hardware aiu_i2s_dma_hw = {
-+ .info = (SNDRV_PCM_INFO_INTERLEAVED |
-+ SNDRV_PCM_INFO_MMAP |
-+ SNDRV_PCM_INFO_MMAP_VALID |
-+ SNDRV_PCM_INFO_PAUSE),
-+
-+ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
-+ SNDRV_PCM_FMTBIT_S24_LE |
-+ SNDRV_PCM_FMTBIT_S32_LE),
-+
-+ /*
-+ * TODO: The DMA can change the endianness, the msb position
-+ * and deal with unsigned - support this later on
-+ */
-+
-+ .rate_min = 8000,
-+ .rate_max = 192000,
-+ .channels_min = 2,
-+ .channels_max = 8,
-+ .period_bytes_min = AIU_I2S_DMA_BURST,
-+ .period_bytes_max = AIU_I2S_DMA_BURST * 65535,
-+ .periods_min = 2,
-+ .periods_max = UINT_MAX,
-+ .buffer_bytes_max = 1 * 1024 * 1024,
-+ .fifo_size = 0,
-+};
-+
-+static struct aiu_i2s_dma *aiu_i2s_dma_priv(struct snd_pcm_substream *s)
-+{
-+ struct snd_soc_pcm_runtime *rtd = s->private_data;
-+ struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
-+
-+ return snd_soc_component_get_drvdata(component);
-+}
-+
-+static snd_pcm_uframes_t
-+aiu_i2s_dma_pointer(struct snd_pcm_substream *substream)
-+{
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ struct aiu_i2s_dma *priv = aiu_i2s_dma_priv(substream);
-+ unsigned int addr;
-+ int ret;
-+
-+ ret = regmap_read(priv->core->aiu, AIU_MEM_I2S_RD_PTR,
-+ &addr);
-+ if (ret)
-+ return 0;
-+
-+ return bytes_to_frames(runtime, addr - (unsigned int)runtime->dma_addr);
-+}
-+
-+static void __dma_enable(struct aiu_i2s_dma *priv, bool enable)
-+{
-+ unsigned int en_mask = (AIU_MEM_I2S_CONTROL_FILL_EN |
-+ AIU_MEM_I2S_CONTROL_EMPTY_EN);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_I2S_CONTROL, en_mask,
-+ enable ? en_mask : 0);
-+
-+}
-+
-+static int aiu_i2s_dma_trigger(struct snd_pcm_substream *substream, int cmd)
-+{
-+ struct aiu_i2s_dma *priv = aiu_i2s_dma_priv(substream);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ __dma_enable(priv, true);
-+ break;
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ __dma_enable(priv, false);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static void __dma_init_mem(struct aiu_i2s_dma *priv)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_I2S_CONTROL,
-+ AIU_MEM_I2S_CONTROL_INIT,
-+ AIU_MEM_I2S_CONTROL_INIT);
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_I2S_BUF_CNTL,
-+ AIU_MEM_I2S_BUF_CNTL_INIT,
-+ AIU_MEM_I2S_BUF_CNTL_INIT);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_I2S_CONTROL,
-+ AIU_MEM_I2S_CONTROL_INIT,
-+ 0);
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_I2S_BUF_CNTL,
-+ AIU_MEM_I2S_BUF_CNTL_INIT,
-+ 0);
-+}
-+
-+static int aiu_i2s_dma_prepare(struct snd_pcm_substream *substream)
-+{
-+ struct aiu_i2s_dma *priv = aiu_i2s_dma_priv(substream);
-+
-+ __dma_init_mem(priv);
-+
-+ return 0;
-+}
-+
-+static int aiu_i2s_dma_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *params)
-+{
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ struct aiu_i2s_dma *priv = aiu_i2s_dma_priv(substream);
-+ int ret;
-+ u32 burst_num, mem_ctl;
-+ dma_addr_t end_ptr;
-+
-+ ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
-+ if (ret < 0)
-+ return ret;
-+
-+ /* Setup memory layout */
-+ if (params_physical_width(params) == 16)
-+ mem_ctl = AIU_MEM_I2S_CONTROL_MODE_16BIT;
-+ else
-+ mem_ctl = 0;
-+
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_I2S_CONTROL,
-+ AIU_MEM_I2S_CONTROL_MODE_16BIT,
-+ mem_ctl);
-+
-+ /* Initialize memory pointers */
-+ regmap_write(priv->core->aiu, AIU_MEM_I2S_START_PTR, runtime->dma_addr);
-+ regmap_write(priv->core->aiu, AIU_MEM_I2S_RD_PTR, runtime->dma_addr);
-+
-+ /* The end pointer is the address of the last valid block */
-+ end_ptr = runtime->dma_addr + runtime->dma_bytes - AIU_I2S_DMA_BURST;
-+ regmap_write(priv->core->aiu, AIU_MEM_I2S_END_PTR, end_ptr);
-+
-+ /* Memory masks */
-+ burst_num = params_period_bytes(params) / AIU_I2S_DMA_BURST;
-+ regmap_write(priv->core->aiu, AIU_MEM_I2S_MASKS,
-+ AIU_MEM_I2S_MASKS_CH_RD(0xff) |
-+ AIU_MEM_I2S_MASKS_CH_MEM(0xff) |
-+ AIU_MEM_I2S_MASKS_IRQ_BLOCK(burst_num));
-+
-+ return 0;
-+}
-+
-+static int aiu_i2s_dma_hw_free(struct snd_pcm_substream *substream)
-+{
-+ return snd_pcm_lib_free_pages(substream);
-+}
-+
-+
-+static irqreturn_t aiu_i2s_dma_irq_block(int irq, void *dev_id)
-+{
-+ struct snd_pcm_substream *playback = dev_id;
-+
-+ snd_pcm_period_elapsed(playback);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static int aiu_i2s_dma_open(struct snd_pcm_substream *substream)
-+{
-+ struct aiu_i2s_dma *priv = aiu_i2s_dma_priv(substream);
-+ int ret;
-+
-+ snd_soc_set_runtime_hwparams(substream, &aiu_i2s_dma_hw);
-+
-+ /*
-+ * Make sure the buffer and period size are multiple of the DMA burst
-+ * size
-+ */
-+ ret = snd_pcm_hw_constraint_step(substream->runtime, 0,
-+ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
-+ AIU_I2S_DMA_BURST);
-+ if (ret)
-+ return ret;
-+
-+ ret = snd_pcm_hw_constraint_step(substream->runtime, 0,
-+ SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
-+ AIU_I2S_DMA_BURST);
-+ if (ret)
-+ return ret;
-+
-+ /* Request the I2S DDR irq */
-+ ret = request_irq(priv->irq, aiu_i2s_dma_irq_block, 0,
-+ DRV_NAME, substream);
-+ if (ret)
-+ return ret;
-+
-+ /* Power up the i2s fast domain - can't write the registers w/o it */
-+ ret = clk_prepare_enable(priv->fast);
-+ if (ret)
-+ return ret;
-+
-+ /* Make sure the dma is initially disabled */
-+ __dma_enable(priv, false);
-+
-+ return 0;
-+}
-+
-+static int aiu_i2s_dma_close(struct snd_pcm_substream *substream)
-+{
-+ struct aiu_i2s_dma *priv = aiu_i2s_dma_priv(substream);
-+
-+ clk_disable_unprepare(priv->fast);
-+ free_irq(priv->irq, substream);
-+
-+ return 0;
-+}
-+
-+static const struct snd_pcm_ops aiu_i2s_dma_ops = {
-+ .open = aiu_i2s_dma_open,
-+ .close = aiu_i2s_dma_close,
-+ .ioctl = snd_pcm_lib_ioctl,
-+ .hw_params = aiu_i2s_dma_hw_params,
-+ .hw_free = aiu_i2s_dma_hw_free,
-+ .prepare = aiu_i2s_dma_prepare,
-+ .pointer = aiu_i2s_dma_pointer,
-+ .trigger = aiu_i2s_dma_trigger,
-+};
-+
-+static int aiu_i2s_dma_new(struct snd_soc_pcm_runtime *rtd)
-+{
-+ struct snd_card *card = rtd->card->snd_card;
-+ size_t size = aiu_i2s_dma_hw.buffer_bytes_max;
-+
-+ return snd_pcm_lib_preallocate_pages_for_all(rtd->pcm,
-+ SNDRV_DMA_TYPE_DEV,
-+ card->dev, size, size);
-+}
-+
-+static const struct snd_soc_component_driver aiu_i2s_platform = {
-+ .ops = &aiu_i2s_dma_ops,
-+ .pcm_new = aiu_i2s_dma_new,
-+ .name = DRV_NAME,
-+};
-+
-+static int aiu_i2s_dma_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct aiu_i2s_dma *priv;
-+
-+ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-+ if (!priv)
-+ return -ENOMEM;
-+
-+ platform_set_drvdata(pdev, priv);
-+ priv->core = dev_get_drvdata(dev->parent);
-+
-+ priv->fast = devm_clk_get(dev, "fast");
-+ if (IS_ERR(priv->fast)) {
-+ if (PTR_ERR(priv->fast) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get i2s fast domain clock\n");
-+ return PTR_ERR(priv->fast);
-+ }
-+
-+ priv->irq = platform_get_irq(pdev, 0);
-+ if (priv->irq <= 0) {
-+ dev_err(dev, "Can't get i2s ddr irq\n");
-+ return priv->irq;
-+ }
-+
-+ return devm_snd_soc_register_component(dev, &aiu_i2s_platform,
-+ NULL, 0);
-+}
-+
-+static const struct of_device_id aiu_i2s_dma_of_match[] = {
-+ { .compatible = "amlogic,meson-aiu-i2s-dma", },
-+ { .compatible = "amlogic,meson-gxbb-aiu-i2s-dma", },
-+ { .compatible = "amlogic,meson-gxl-aiu-i2s-dma", },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, aiu_i2s_dma_of_match);
-+
-+static struct platform_driver aiu_i2s_dma_pdrv = {
-+ .probe = aiu_i2s_dma_probe,
-+ .driver = {
-+ .name = DRV_NAME,
-+ .of_match_table = aiu_i2s_dma_of_match,
-+ },
-+};
-+module_platform_driver(aiu_i2s_dma_pdrv);
-+
-+MODULE_DESCRIPTION("Meson AIU i2s DMA ASoC Driver");
-+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
-+MODULE_LICENSE("GPL v2");
diff --git a/testing/linux-amlogic/0005-ASoC-meson-add-initial-i2s-dai-support.patch b/testing/linux-amlogic/0005-ASoC-meson-add-initial-i2s-dai-support.patch
deleted file mode 100644
index e1be6fab36d..00000000000
--- a/testing/linux-amlogic/0005-ASoC-meson-add-initial-i2s-dai-support.patch
+++ /dev/null
@@ -1,516 +0,0 @@
-From 9031b415030a316ec4ca513185e2d2c0fbb894c4 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 12:17:27 +0200
-Subject: [PATCH] ASoC: meson: add initial i2s dai support
-
-Add support for the i2s dai found on Amlogic Meson SoC family.
-With this initial implementation, only playback is supported.
-Capture will be part of furture work.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- sound/soc/meson/Kconfig | 2 +-
- sound/soc/meson/Makefile | 4 +-
- sound/soc/meson/i2s-dai.c | 465 ++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 469 insertions(+), 2 deletions(-)
- create mode 100644 sound/soc/meson/i2s-dai.c
-
-diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
-index 6e030b5..5904e9e 100644
---- a/sound/soc/meson/Kconfig
-+++ b/sound/soc/meson/Kconfig
-@@ -78,5 +78,5 @@ config SND_SOC_MESON_I2S
- tristate "Meson i2s interface"
- depends on SND_SOC_MESON
- help
-- Say Y or M if you want to add support for i2s dma driver for Amlogic
-+ Say Y or M if you want to add support for i2s driver for Amlogic
- Meson SoCs.
-diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
-index 5796007..b8641f9 100644
---- a/sound/soc/meson/Makefile
-+++ b/sound/soc/meson/Makefile
-@@ -22,6 +22,8 @@ obj-$(CONFIG_SND_MESON_AXG_SPDIFOUT) += snd-soc-meson-axg-spdifout.o
-
- snd-soc-meson-audio-core-objs := audio-core.o
- snd-soc-meson-aiu-i2s-dma-objs := aiu-i2s-dma.o
-+snd-soc-meson-i2s-dai-objs := i2s-dai.o
-
- obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
--obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-aiu-i2s-dma.o
-\ No newline at end of file
-+obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-aiu-i2s-dma.o
-+obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-i2s-dai.o
-\ No newline at end of file
-diff --git a/sound/soc/meson/i2s-dai.c b/sound/soc/meson/i2s-dai.c
-new file mode 100644
-index 0000000..1008af8
---- /dev/null
-+++ b/sound/soc/meson/i2s-dai.c
-@@ -0,0 +1,465 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/platform_device.h>
-+#include <linux/regmap.h>
-+
-+#include <sound/pcm_params.h>
-+#include <sound/soc.h>
-+#include <sound/soc-dai.h>
-+
-+#include "aiu-regs.h"
-+#include "audio-core.h"
-+
-+#define DRV_NAME "meson-i2s-dai"
-+
-+struct meson_i2s_dai {
-+ struct meson_audio_core_data *core;
-+ struct clk *mclk;
-+ struct clk *bclks;
-+ struct clk *iface;
-+ struct clk *fast;
-+ bool bclks_idle;
-+};
-+
-+#define AIU_CLK_CTRL_I2S_DIV_EN BIT(0)
-+#define AIU_CLK_CTRL_I2S_DIV_MASK GENMASK(3, 2)
-+#define AIU_CLK_CTRL_AOCLK_POLARITY_MASK BIT(6)
-+#define AIU_CLK_CTRL_AOCLK_POLARITY_NORMAL (0 << 6)
-+#define AIU_CLK_CTRL_AOCLK_POLARITY_INVERTED (1 << 6)
-+#define AIU_CLK_CTRL_ALRCLK_POLARITY_MASK BIT(7)
-+#define AIU_CLK_CTRL_ALRCLK_POLARITY_NORMAL (0 << 7)
-+#define AIU_CLK_CTRL_ALRCLK_POLARITY_INVERTED (1 << 7)
-+#define AIU_CLK_CTRL_ALRCLK_SKEW_MASK GENMASK(9, 8)
-+#define AIU_CLK_CTRL_ALRCLK_LEFT_J (0 << 8)
-+#define AIU_CLK_CTRL_ALRCLK_I2S (1 << 8)
-+#define AIU_CLK_CTRL_ALRCLK_RIGHT_J (2 << 8)
-+#define AIU_CLK_CTRL_MORE_I2S_DIV_MASK GENMASK(5, 0)
-+#define AIU_CLK_CTRL_MORE_I2S_DIV(div) (((div) - 1) << 0)
-+#define AIU_CODEC_DAC_LRCLK_CTRL_DIV_MASK GENMASK(11, 0)
-+#define AIU_CODEC_DAC_LRCLK_CTRL_DIV(div) (((div) - 1) << 0)
-+#define AIU_I2S_DAC_CFG_PAYLOAD_SIZE_MASK GENMASK(1, 0)
-+#define AIU_I2S_DAC_CFG_AOCLK_32 (0 << 0)
-+#define AIU_I2S_DAC_CFG_AOCLK_48 (2 << 0)
-+#define AIU_I2S_DAC_CFG_AOCLK_64 (3 << 0)
-+#define AIU_I2S_MISC_HOLD_EN BIT(2)
-+#define AIU_I2S_SOURCE_DESC_MODE_8CH BIT(0)
-+#define AIU_I2S_SOURCE_DESC_MODE_24BIT BIT(5)
-+#define AIU_I2S_SOURCE_DESC_MODE_32BIT BIT(9)
-+#define AIU_I2S_SOURCE_DESC_MODE_SPLIT BIT(11)
-+
-+static void __hold(struct meson_i2s_dai *priv, bool enable)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_I2S_MISC,
-+ AIU_I2S_MISC_HOLD_EN,
-+ enable ? AIU_I2S_MISC_HOLD_EN : 0);
-+}
-+
-+static void __divider_enable(struct meson_i2s_dai *priv, bool enable)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL,
-+ AIU_CLK_CTRL_I2S_DIV_EN,
-+ enable ? AIU_CLK_CTRL_I2S_DIV_EN : 0);
-+}
-+
-+static void __playback_start(struct meson_i2s_dai *priv)
-+{
-+ __divider_enable(priv, true);
-+ __hold(priv, false);
-+}
-+
-+static void __playback_stop(struct meson_i2s_dai *priv, bool clk_force)
-+{
-+ __hold(priv, true);
-+ /* Disable the bit clks if necessary */
-+ if (clk_force || !priv->bclks_idle)
-+ __divider_enable(priv, false);
-+}
-+
-+static int meson_i2s_dai_trigger(struct snd_pcm_substream *substream, int cmd,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_i2s_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ bool clk_force_stop = false;
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ __playback_start(priv);
-+ return 0;
-+
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ clk_force_stop = true;
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ __playback_stop(priv, clk_force_stop);
-+ return 0;
-+
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+static int __bclks_set_rate(struct meson_i2s_dai *priv, unsigned int srate,
-+ unsigned int width)
-+{
-+ unsigned int fs;
-+
-+ /* Get the oversampling factor */
-+ fs = DIV_ROUND_CLOSEST(clk_get_rate(priv->mclk), srate);
-+
-+ /*
-+ * This DAI is usually connected to the dw-hdmi which does not support
-+ * bclk being 32 * lrclk or 48 * lrclk
-+ * Restrict to blck = 64 * lrclk
-+ */
-+ if (fs % 64)
-+ return -EINVAL;
-+
-+ /* Set the divider between lrclk and bclk */
-+ regmap_update_bits(priv->core->aiu, AIU_I2S_DAC_CFG,
-+ AIU_I2S_DAC_CFG_PAYLOAD_SIZE_MASK,
-+ AIU_I2S_DAC_CFG_AOCLK_64);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_CODEC_DAC_LRCLK_CTRL,
-+ AIU_CODEC_DAC_LRCLK_CTRL_DIV_MASK,
-+ AIU_CODEC_DAC_LRCLK_CTRL_DIV(64));
-+
-+ /* Use CLK_MORE for the i2s divider */
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL,
-+ AIU_CLK_CTRL_I2S_DIV_MASK,
-+ 0);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL_MORE,
-+ AIU_CLK_CTRL_MORE_I2S_DIV_MASK,
-+ AIU_CLK_CTRL_MORE_I2S_DIV(fs / 64));
-+
-+ return 0;
-+}
-+
-+static int __setup_desc(struct meson_i2s_dai *priv, unsigned int width,
-+ unsigned int channels)
-+{
-+ u32 desc = 0;
-+
-+ switch (width) {
-+ case 24:
-+ /*
-+ * For some reason, 24 bits wide audio don't play well
-+ * if the 32 bits mode is not set
-+ */
-+ desc |= (AIU_I2S_SOURCE_DESC_MODE_24BIT |
-+ AIU_I2S_SOURCE_DESC_MODE_32BIT);
-+ break;
-+ case 16:
-+ break;
-+
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ switch (channels) {
-+ case 2: /* Nothing to do */
-+ break;
-+ case 8:
-+ /* TODO: Still requires testing ... */
-+ desc |= AIU_I2S_SOURCE_DESC_MODE_8CH;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ regmap_update_bits(priv->core->aiu, AIU_I2S_SOURCE_DESC,
-+ AIU_I2S_SOURCE_DESC_MODE_8CH |
-+ AIU_I2S_SOURCE_DESC_MODE_24BIT |
-+ AIU_I2S_SOURCE_DESC_MODE_32BIT,
-+ desc);
-+
-+ return 0;
-+}
-+
-+static int meson_i2s_dai_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *params,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_i2s_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ unsigned int width = params_width(params);
-+ unsigned int channels = params_channels(params);
-+ unsigned int rate = params_rate(params);
-+ int ret;
-+
-+ ret = __setup_desc(priv, width, channels);
-+ if (ret) {
-+ dev_err(dai->dev, "Unable set to set i2s description\n");
-+ return ret;
-+ }
-+
-+ ret = __bclks_set_rate(priv, rate, width);
-+ if (ret) {
-+ dev_err(dai->dev, "Unable set to the i2s clock rates\n");
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static int meson_i2s_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
-+{
-+ struct meson_i2s_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ u32 val;
-+
-+ if ((fmt & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS)
-+ return -EINVAL;
-+
-+ /* DAI output mode */
-+ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
-+ case SND_SOC_DAIFMT_I2S:
-+ val = AIU_CLK_CTRL_ALRCLK_I2S;
-+ break;
-+ case SND_SOC_DAIFMT_LEFT_J:
-+ val = AIU_CLK_CTRL_ALRCLK_LEFT_J;
-+ break;
-+ case SND_SOC_DAIFMT_RIGHT_J:
-+ val = AIU_CLK_CTRL_ALRCLK_RIGHT_J;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL,
-+ AIU_CLK_CTRL_ALRCLK_SKEW_MASK,
-+ val);
-+
-+ /* DAI clock polarity */
-+ switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
-+ case SND_SOC_DAIFMT_IB_IF:
-+ /* Invert both clocks */
-+ val = AIU_CLK_CTRL_ALRCLK_POLARITY_INVERTED |
-+ AIU_CLK_CTRL_AOCLK_POLARITY_INVERTED;
-+ break;
-+ case SND_SOC_DAIFMT_IB_NF:
-+ /* Invert bit clock */
-+ val = AIU_CLK_CTRL_ALRCLK_POLARITY_NORMAL |
-+ AIU_CLK_CTRL_AOCLK_POLARITY_INVERTED;
-+ break;
-+ case SND_SOC_DAIFMT_NB_IF:
-+ /* Invert frame clock */
-+ val = AIU_CLK_CTRL_ALRCLK_POLARITY_INVERTED |
-+ AIU_CLK_CTRL_AOCLK_POLARITY_NORMAL;
-+ break;
-+ case SND_SOC_DAIFMT_NB_NF:
-+ /* Normal clocks */
-+ val = AIU_CLK_CTRL_ALRCLK_POLARITY_NORMAL |
-+ AIU_CLK_CTRL_AOCLK_POLARITY_NORMAL;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL,
-+ AIU_CLK_CTRL_ALRCLK_POLARITY_MASK |
-+ AIU_CLK_CTRL_AOCLK_POLARITY_MASK,
-+ val);
-+
-+ switch (fmt & SND_SOC_DAIFMT_CLOCK_MASK) {
-+ case SND_SOC_DAIFMT_CONT:
-+ priv->bclks_idle = true;
-+ break;
-+ case SND_SOC_DAIFMT_GATED:
-+ priv->bclks_idle = false;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int meson_i2s_dai_set_sysclk(struct snd_soc_dai *dai, int clk_id,
-+ unsigned int freq, int dir)
-+{
-+ struct meson_i2s_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ int ret;
-+
-+ if (WARN_ON(clk_id != 0))
-+ return -EINVAL;
-+
-+ if (dir == SND_SOC_CLOCK_IN)
-+ return 0;
-+
-+ ret = clk_set_rate(priv->mclk, freq);
-+ if (ret) {
-+ dev_err(dai->dev, "Failed to set sysclk to %uHz", freq);
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static int meson_i2s_dai_startup(struct snd_pcm_substream *substream,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_i2s_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ int ret;
-+
-+ /* Power up the i2s fast domain - can't write the registers w/o it */
-+ ret = clk_prepare_enable(priv->fast);
-+ if (ret)
-+ goto out_clk_fast;
-+
-+ /* Make sure nothing gets out of the DAI yet */
-+ __hold(priv, true);
-+
-+ /* I2S encoder needs the mixer interface gate */
-+ ret = clk_prepare_enable(priv->iface);
-+ if (ret)
-+ goto out_clk_iface;
-+
-+ /* Enable the i2s master clock */
-+ ret = clk_prepare_enable(priv->mclk);
-+ if (ret)
-+ goto out_mclk;
-+
-+ /* Enable the bit clock gate */
-+ ret = clk_prepare_enable(priv->bclks);
-+ if (ret)
-+ goto out_bclks;
-+
-+ /* Make sure the interface expect a memory layout we can work with */
-+ regmap_update_bits(priv->core->aiu, AIU_I2S_SOURCE_DESC,
-+ AIU_I2S_SOURCE_DESC_MODE_SPLIT,
-+ AIU_I2S_SOURCE_DESC_MODE_SPLIT);
-+
-+ return 0;
-+
-+out_bclks:
-+ clk_disable_unprepare(priv->mclk);
-+out_mclk:
-+ clk_disable_unprepare(priv->iface);
-+out_clk_iface:
-+ clk_disable_unprepare(priv->fast);
-+out_clk_fast:
-+ return ret;
-+}
-+
-+static void meson_i2s_dai_shutdown(struct snd_pcm_substream *substream,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_i2s_dai *priv = snd_soc_dai_get_drvdata(dai);
-+
-+ clk_disable_unprepare(priv->bclks);
-+ clk_disable_unprepare(priv->mclk);
-+ clk_disable_unprepare(priv->iface);
-+ clk_disable_unprepare(priv->fast);
-+}
-+
-+static const struct snd_soc_dai_ops meson_i2s_dai_ops = {
-+ .startup = meson_i2s_dai_startup,
-+ .shutdown = meson_i2s_dai_shutdown,
-+ .trigger = meson_i2s_dai_trigger,
-+ .hw_params = meson_i2s_dai_hw_params,
-+ .set_fmt = meson_i2s_dai_set_fmt,
-+ .set_sysclk = meson_i2s_dai_set_sysclk,
-+};
-+
-+static struct snd_soc_dai_driver meson_i2s_dai = {
-+ .playback = {
-+ .stream_name = "Playback",
-+ .channels_min = 2,
-+ .channels_max = 8,
-+ .rates = SNDRV_PCM_RATE_8000_192000,
-+ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
-+ SNDRV_PCM_FMTBIT_S24_LE)
-+ },
-+ .ops = &meson_i2s_dai_ops,
-+};
-+
-+static const struct snd_soc_component_driver meson_i2s_dai_component = {
-+ .name = DRV_NAME,
-+};
-+
-+static int meson_i2s_dai_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct meson_i2s_dai *priv;
-+
-+ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-+ if (!priv)
-+ return -ENOMEM;
-+
-+ platform_set_drvdata(pdev, priv);
-+ priv->core = dev_get_drvdata(dev->parent);
-+
-+ priv->fast = devm_clk_get(dev, "fast");
-+ if (IS_ERR(priv->fast)) {
-+ if (PTR_ERR(priv->fast) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get the i2s fast domain clock\n");
-+ return PTR_ERR(priv->fast);
-+ }
-+
-+ priv->iface = devm_clk_get(dev, "iface");
-+ if (IS_ERR(priv->iface)) {
-+ if (PTR_ERR(priv->iface) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get i2s dai clock gate\n");
-+ return PTR_ERR(priv->iface);
-+ }
-+
-+ priv->bclks = devm_clk_get(dev, "bclks");
-+ if (IS_ERR(priv->bclks)) {
-+ if (PTR_ERR(priv->bclks) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get bit clocks gate\n");
-+ return PTR_ERR(priv->bclks);
-+ }
-+
-+ priv->mclk = devm_clk_get(dev, "mclk");
-+ if (IS_ERR(priv->mclk)) {
-+ if (PTR_ERR(priv->mclk) != -EPROBE_DEFER)
-+ dev_err(dev, "failed to get the i2s master clock\n");
-+ return PTR_ERR(priv->mclk);
-+ }
-+
-+ return devm_snd_soc_register_component(dev, &meson_i2s_dai_component,
-+ &meson_i2s_dai, 1);
-+}
-+
-+static const struct of_device_id meson_i2s_dai_of_match[] = {
-+ { .compatible = "amlogic,meson-i2s-dai", },
-+ { .compatible = "amlogic,meson-gxbb-i2s-dai", },
-+ { .compatible = "amlogic,meson-gxl-i2s-dai", },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, meson_i2s_dai_of_match);
-+
-+static struct platform_driver meson_i2s_dai_pdrv = {
-+ .probe = meson_i2s_dai_probe,
-+ .driver = {
-+ .name = DRV_NAME,
-+ .of_match_table = meson_i2s_dai_of_match,
-+ },
-+};
-+module_platform_driver(meson_i2s_dai_pdrv);
-+
-+MODULE_DESCRIPTION("Meson i2s DAI ASoC Driver");
-+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
-+MODULE_LICENSE("GPL v2");
diff --git a/testing/linux-amlogic/0006-ASoC-meson-add-aiu-spdif-dma-support.patch b/testing/linux-amlogic/0006-ASoC-meson-add-aiu-spdif-dma-support.patch
deleted file mode 100644
index 31cef2e53dc..00000000000
--- a/testing/linux-amlogic/0006-ASoC-meson-add-aiu-spdif-dma-support.patch
+++ /dev/null
@@ -1,443 +0,0 @@
-From 32a55958cc2d89e2feee831ca4e6ceae8458e950 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 13:43:52 +0200
-Subject: [PATCH] ASoC: meson: add aiu spdif dma support
-
-Add support for the spdif output dma which is part of the AIU block
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- sound/soc/meson/Kconfig | 7 +
- sound/soc/meson/Makefile | 4 +-
- sound/soc/meson/aiu-spdif-dma.c | 388 ++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 398 insertions(+), 1 deletion(-)
- create mode 100644 sound/soc/meson/aiu-spdif-dma.c
-
-diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
-index 5904e9e..712303f 100644
---- a/sound/soc/meson/Kconfig
-+++ b/sound/soc/meson/Kconfig
-@@ -80,3 +80,10 @@ config SND_SOC_MESON_I2S
- help
- Say Y or M if you want to add support for i2s driver for Amlogic
- Meson SoCs.
-+
-+config SND_SOC_MESON_SPDIF
-+ tristate "Meson spdif interface"
-+ depends on SND_SOC_MESON
-+ help
-+ Say Y or M if you want to add support for spdif dma driver for Amlogic
-+ Meson SoCs.
-diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
-index b8641f9..dc5164a7 100644
---- a/sound/soc/meson/Makefile
-+++ b/sound/soc/meson/Makefile
-@@ -22,8 +22,10 @@ obj-$(CONFIG_SND_MESON_AXG_SPDIFOUT) += snd-soc-meson-axg-spdifout.o
-
- snd-soc-meson-audio-core-objs := audio-core.o
- snd-soc-meson-aiu-i2s-dma-objs := aiu-i2s-dma.o
-+snd-soc-meson-aiu-spdif-dma-objs := aiu-spdif-dma.o
- snd-soc-meson-i2s-dai-objs := i2s-dai.o
-
- obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
- obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-aiu-i2s-dma.o
--obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-i2s-dai.o
-\ No newline at end of file
-+obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-i2s-dai.o
-+obj-$(CONFIG_SND_SOC_MESON_SPDIF) += snd-soc-meson-aiu-spdif-dma.o
-\ No newline at end of file
-diff --git a/sound/soc/meson/aiu-spdif-dma.c b/sound/soc/meson/aiu-spdif-dma.c
-new file mode 100644
-index 0000000..81c3b85
---- /dev/null
-+++ b/sound/soc/meson/aiu-spdif-dma.c
-@@ -0,0 +1,388 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/platform_device.h>
-+#include <linux/regmap.h>
-+
-+#include <sound/pcm_params.h>
-+#include <sound/soc.h>
-+
-+#include "aiu-regs.h"
-+#include "audio-core.h"
-+
-+#define DRV_NAME "meson-aiu-spdif-dma"
-+
-+struct aiu_spdif_dma {
-+ struct meson_audio_core_data *core;
-+ struct clk *fast;
-+ int irq;
-+};
-+
-+#define AIU_958_DCU_FF_CTRL_EN BIT(0)
-+#define AIU_958_DCU_FF_CTRL_AUTO_DISABLE BIT(1)
-+#define AIU_958_DCU_FF_CTRL_IRQ_MODE_MASK GENMASK(3, 2)
-+#define AIU_958_DCU_FF_CTRL_IRQ_OUT_THD BIT(2)
-+#define AIU_958_DCU_FF_CTRL_IRQ_FRAME_READ BIT(3)
-+#define AIU_958_DCU_FF_CTRL_SYNC_HEAD_EN BIT(4)
-+#define AIU_958_DCU_FF_CTRL_BYTE_SEEK BIT(5)
-+#define AIU_958_DCU_FF_CTRL_CONTINUE BIT(6)
-+#define AIU_MEM_IEC958_BUF_CNTL_INIT BIT(0)
-+#define AIU_MEM_IEC958_CONTROL_INIT BIT(0)
-+#define AIU_MEM_IEC958_CONTROL_FILL_EN BIT(1)
-+#define AIU_MEM_IEC958_CONTROL_EMPTY_EN BIT(2)
-+#define AIU_MEM_IEC958_CONTROL_ENDIAN_MASK GENMASK(5, 3)
-+#define AIU_MEM_IEC958_CONTROL_RD_DDR BIT(6)
-+#define AIU_MEM_IEC958_CONTROL_MODE_16BIT BIT(7)
-+#define AIU_MEM_IEC958_MASKS_CH_MEM_MASK GENMASK(15, 8)
-+#define AIU_MEM_IEC958_MASKS_CH_MEM(ch) ((ch) << 8)
-+#define AIU_MEM_IEC958_MASKS_CH_RD_MASK GENMASK(7, 0)
-+#define AIU_MEM_IEC958_MASKS_CH_RD(ch) ((ch) << 0)
-+
-+#define AIU_SPDIF_DMA_BURST 8
-+#define AIU_SPDIF_BPF_MAX USHRT_MAX
-+
-+static struct snd_pcm_hardware aiu_spdif_dma_hw = {
-+ .info = (SNDRV_PCM_INFO_INTERLEAVED |
-+ SNDRV_PCM_INFO_MMAP |
-+ SNDRV_PCM_INFO_MMAP_VALID |
-+ SNDRV_PCM_INFO_PAUSE),
-+
-+ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
-+ SNDRV_PCM_FMTBIT_S24_LE |
-+ SNDRV_PCM_FMTBIT_S32_LE),
-+
-+ .rates = (SNDRV_PCM_RATE_32000 |
-+ SNDRV_PCM_RATE_44100 |
-+ SNDRV_PCM_RATE_48000 |
-+ SNDRV_PCM_RATE_96000 |
-+ SNDRV_PCM_RATE_192000),
-+ /*
-+ * TODO: The DMA can change the endianness, the msb position
-+ * and deal with unsigned - support this later on
-+ */
-+
-+ .channels_min = 2,
-+ .channels_max = 2,
-+ .period_bytes_min = AIU_SPDIF_DMA_BURST,
-+ .period_bytes_max = AIU_SPDIF_BPF_MAX,
-+ .periods_min = 2,
-+ .periods_max = UINT_MAX,
-+ .buffer_bytes_max = 1 * 1024 * 1024,
-+ .fifo_size = 0,
-+};
-+
-+static struct aiu_spdif_dma *aiu_spdif_dma_priv(struct snd_pcm_substream *s)
-+{
-+ struct snd_soc_pcm_runtime *rtd = s->private_data;
-+ struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
-+
-+ return snd_soc_component_get_drvdata(component);
-+}
-+
-+static snd_pcm_uframes_t
-+aiu_spdif_dma_pointer(struct snd_pcm_substream *substream)
-+{
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ struct aiu_spdif_dma *priv = aiu_spdif_dma_priv(substream);
-+ unsigned int addr;
-+ int ret;
-+
-+ ret = regmap_read(priv->core->aiu, AIU_MEM_IEC958_RD_PTR,
-+ &addr);
-+ if (ret)
-+ return 0;
-+
-+ return bytes_to_frames(runtime, addr - (unsigned int)runtime->dma_addr);
-+}
-+
-+static void __dma_enable(struct aiu_spdif_dma *priv, bool enable)
-+{
-+ unsigned int en_mask = (AIU_MEM_IEC958_CONTROL_FILL_EN |
-+ AIU_MEM_IEC958_CONTROL_EMPTY_EN);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_CONTROL, en_mask,
-+ enable ? en_mask : 0);
-+}
-+
-+static void __dcu_fifo_enable(struct aiu_spdif_dma *priv, bool enable)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_958_DCU_FF_CTRL,
-+ AIU_958_DCU_FF_CTRL_EN,
-+ enable ? AIU_958_DCU_FF_CTRL_EN : 0);
-+}
-+
-+static int aiu_spdif_dma_trigger(struct snd_pcm_substream *substream, int cmd)
-+{
-+ struct aiu_spdif_dma *priv = aiu_spdif_dma_priv(substream);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ __dcu_fifo_enable(priv, true);
-+ __dma_enable(priv, true);
-+ break;
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ __dma_enable(priv, false);
-+ __dcu_fifo_enable(priv, false);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static void __dma_init_mem(struct aiu_spdif_dma *priv)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_CONTROL,
-+ AIU_MEM_IEC958_CONTROL_INIT,
-+ AIU_MEM_IEC958_CONTROL_INIT);
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_BUF_CNTL,
-+ AIU_MEM_IEC958_BUF_CNTL_INIT,
-+ AIU_MEM_IEC958_BUF_CNTL_INIT);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_CONTROL,
-+ AIU_MEM_IEC958_CONTROL_INIT,
-+ 0);
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_BUF_CNTL,
-+ AIU_MEM_IEC958_BUF_CNTL_INIT,
-+ 0);
-+}
-+
-+static int aiu_spdif_dma_prepare(struct snd_pcm_substream *substream)
-+{
-+ struct aiu_spdif_dma *priv = aiu_spdif_dma_priv(substream);
-+
-+ __dma_init_mem(priv);
-+
-+ return 0;
-+}
-+
-+static int __setup_memory_layout(struct aiu_spdif_dma *priv,
-+ unsigned int width)
-+{
-+ u32 mem_ctl = AIU_MEM_IEC958_CONTROL_RD_DDR;
-+
-+ if (width == 16)
-+ mem_ctl |= AIU_MEM_IEC958_CONTROL_MODE_16BIT;
-+
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_CONTROL,
-+ AIU_MEM_IEC958_CONTROL_ENDIAN_MASK |
-+ AIU_MEM_IEC958_CONTROL_MODE_16BIT |
-+ AIU_MEM_IEC958_CONTROL_RD_DDR,
-+ mem_ctl);
-+
-+ return 0;
-+}
-+
-+static int aiu_spdif_dma_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *params)
-+{
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ struct aiu_spdif_dma *priv = aiu_spdif_dma_priv(substream);
-+ int ret;
-+ dma_addr_t end_ptr;
-+
-+ ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = __setup_memory_layout(priv, params_physical_width(params));
-+ if (ret)
-+ return ret;
-+
-+ /* Initialize memory pointers */
-+ regmap_write(priv->core->aiu,
-+ AIU_MEM_IEC958_START_PTR, runtime->dma_addr);
-+ regmap_write(priv->core->aiu,
-+ AIU_MEM_IEC958_RD_PTR, runtime->dma_addr);
-+
-+ /* The end pointer is the address of the last valid block */
-+ end_ptr = runtime->dma_addr + runtime->dma_bytes - AIU_SPDIF_DMA_BURST;
-+ regmap_write(priv->core->aiu, AIU_MEM_IEC958_END_PTR, end_ptr);
-+
-+ /* Memory masks */
-+ regmap_write(priv->core->aiu, AIU_MEM_IEC958_MASKS,
-+ AIU_MEM_IEC958_MASKS_CH_RD(0xff) |
-+ AIU_MEM_IEC958_MASKS_CH_MEM(0xff));
-+
-+ /* Setup the number bytes read by the FIFO between each IRQ */
-+ regmap_write(priv->core->aiu, AIU_958_BPF, params_period_bytes(params));
-+
-+ /*
-+ * AUTO_DISABLE and SYNC_HEAD are enabled by default but
-+ * this should be disabled in PCM (uncompressed) mode
-+ */
-+ regmap_update_bits(priv->core->aiu, AIU_958_DCU_FF_CTRL,
-+ AIU_958_DCU_FF_CTRL_AUTO_DISABLE |
-+ AIU_958_DCU_FF_CTRL_IRQ_MODE_MASK |
-+ AIU_958_DCU_FF_CTRL_SYNC_HEAD_EN,
-+ AIU_958_DCU_FF_CTRL_IRQ_FRAME_READ);
-+
-+ return 0;
-+}
-+
-+static int aiu_spdif_dma_hw_free(struct snd_pcm_substream *substream)
-+{
-+ return snd_pcm_lib_free_pages(substream);
-+}
-+
-+static irqreturn_t aiu_spdif_dma_irq(int irq, void *dev_id)
-+{
-+ struct snd_pcm_substream *playback = dev_id;
-+
-+ snd_pcm_period_elapsed(playback);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static int aiu_spdif_dma_open(struct snd_pcm_substream *substream)
-+{
-+ struct aiu_spdif_dma *priv = aiu_spdif_dma_priv(substream);
-+ int ret;
-+
-+ snd_soc_set_runtime_hwparams(substream, &aiu_spdif_dma_hw);
-+
-+ /*
-+ * Make sure the buffer and period size are multiple of the DMA burst
-+ * size
-+ */
-+ ret = snd_pcm_hw_constraint_step(substream->runtime, 0,
-+ SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
-+ AIU_SPDIF_DMA_BURST);
-+ if (ret)
-+ return ret;
-+
-+ ret = snd_pcm_hw_constraint_step(substream->runtime, 0,
-+ SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
-+ AIU_SPDIF_DMA_BURST);
-+ if (ret)
-+ return ret;
-+
-+ /* Request the SPDIF DDR irq */
-+ ret = request_irq(priv->irq, aiu_spdif_dma_irq, 0,
-+ DRV_NAME, substream);
-+ if (ret)
-+ return ret;
-+
-+ /* Power up the spdif fast domain - can't write the register w/o it */
-+ ret = clk_prepare_enable(priv->fast);
-+ if (ret)
-+ return ret;
-+
-+ /* Make sure the dma is initially halted */
-+ __dma_enable(priv, false);
-+ __dcu_fifo_enable(priv, false);
-+
-+ return 0;
-+}
-+
-+static int aiu_spdif_dma_close(struct snd_pcm_substream *substream)
-+{
-+ struct aiu_spdif_dma *priv = aiu_spdif_dma_priv(substream);
-+
-+ clk_disable_unprepare(priv->fast);
-+ free_irq(priv->irq, substream);
-+
-+ return 0;
-+}
-+
-+static const struct snd_pcm_ops aiu_spdif_dma_ops = {
-+ .open = aiu_spdif_dma_open,
-+ .close = aiu_spdif_dma_close,
-+ .ioctl = snd_pcm_lib_ioctl,
-+ .hw_params = aiu_spdif_dma_hw_params,
-+ .hw_free = aiu_spdif_dma_hw_free,
-+ .prepare = aiu_spdif_dma_prepare,
-+ .pointer = aiu_spdif_dma_pointer,
-+ .trigger = aiu_spdif_dma_trigger,
-+};
-+
-+static int aiu_spdif_dma_new(struct snd_soc_pcm_runtime *rtd)
-+{
-+ struct snd_card *card = rtd->card->snd_card;
-+ size_t size = aiu_spdif_dma_hw.buffer_bytes_max;
-+
-+ return snd_pcm_lib_preallocate_pages_for_all(rtd->pcm,
-+ SNDRV_DMA_TYPE_DEV,
-+ card->dev, size, size);
-+}
-+
-+static const struct snd_soc_component_driver aiu_spdif_platform = {
-+ .ops = &aiu_spdif_dma_ops,
-+ .pcm_new = aiu_spdif_dma_new,
-+ .name = DRV_NAME,
-+};
-+
-+static int aiu_spdif_dma_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct aiu_spdif_dma *priv;
-+
-+ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-+ if (!priv)
-+ return -ENOMEM;
-+
-+ platform_set_drvdata(pdev, priv);
-+ priv->core = dev_get_drvdata(dev->parent);
-+
-+ priv->fast = devm_clk_get(dev, "fast");
-+ if (IS_ERR(priv->fast)) {
-+ if (PTR_ERR(priv->fast) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get spdif fast domain clock\n");
-+ return PTR_ERR(priv->fast);
-+ }
-+
-+ priv->irq = platform_get_irq(pdev, 0);
-+ if (priv->irq <= 0) {
-+ dev_err(dev, "Can't get spdif ddr irq\n");
-+ return priv->irq;
-+ }
-+
-+ return devm_snd_soc_register_component(dev, &aiu_spdif_platform,
-+ NULL, 0);
-+}
-+
-+static const struct of_device_id aiu_spdif_dma_of_match[] = {
-+ { .compatible = "amlogic,meson-aiu-spdif-dma", },
-+ { .compatible = "amlogic,meson-gxbb-aiu-spdif-dma", },
-+ { .compatible = "amlogic,meson-gxl-aiu-spdif-dma", },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, aiu_spdif_dma_of_match);
-+
-+static struct platform_driver aiu_spdif_dma_pdrv = {
-+ .probe = aiu_spdif_dma_probe,
-+ .driver = {
-+ .name = DRV_NAME,
-+ .of_match_table = aiu_spdif_dma_of_match,
-+ },
-+};
-+module_platform_driver(aiu_spdif_dma_pdrv);
-+
-+MODULE_DESCRIPTION("Meson AIU spdif DMA ASoC Driver");
-+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
-+MODULE_LICENSE("GPL");
diff --git a/testing/linux-amlogic/0007-ASoC-meson-add-initial-spdif-dai-support.patch b/testing/linux-amlogic/0007-ASoC-meson-add-initial-spdif-dai-support.patch
deleted file mode 100644
index c60779b4658..00000000000
--- a/testing/linux-amlogic/0007-ASoC-meson-add-initial-spdif-dai-support.patch
+++ /dev/null
@@ -1,430 +0,0 @@
-From 67e2a1601f80648f5c318728218b788c51081fa3 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 13:46:03 +0200
-Subject: [PATCH] ASoC: meson: add initial spdif dai support
-
-Add support for the spdif dai found on Amlogic Meson SoC family.
-With this initial implementation, only uncompressed pcm playback
-from the spdif dma is supported. Future work will add compressed
-support, pcm playback from i2s dma and capture.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- sound/soc/meson/Kconfig | 3 +-
- sound/soc/meson/Makefile | 4 +-
- sound/soc/meson/spdif-dai.c | 374 ++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 379 insertions(+), 2 deletions(-)
- create mode 100644 sound/soc/meson/spdif-dai.c
-
-diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
-index 712303f..bc3d6f2 100644
---- a/sound/soc/meson/Kconfig
-+++ b/sound/soc/meson/Kconfig
-@@ -84,6 +84,7 @@ config SND_SOC_MESON_I2S
- config SND_SOC_MESON_SPDIF
- tristate "Meson spdif interface"
- depends on SND_SOC_MESON
-+ select SND_PCM_IEC958
- help
-- Say Y or M if you want to add support for spdif dma driver for Amlogic
-+ Say Y or M if you want to add support for spdif driver for Amlogic
- Meson SoCs.
-diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
-index dc5164a7..44f79d8 100644
---- a/sound/soc/meson/Makefile
-+++ b/sound/soc/meson/Makefile
-@@ -24,8 +24,10 @@ snd-soc-meson-audio-core-objs := audio-core.o
- snd-soc-meson-aiu-i2s-dma-objs := aiu-i2s-dma.o
- snd-soc-meson-aiu-spdif-dma-objs := aiu-spdif-dma.o
- snd-soc-meson-i2s-dai-objs := i2s-dai.o
-+snd-soc-meson-spdif-dai-objs := spdif-dai.o
-
- obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
- obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-aiu-i2s-dma.o
- obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-i2s-dai.o
--obj-$(CONFIG_SND_SOC_MESON_SPDIF) += snd-soc-meson-aiu-spdif-dma.o
-\ No newline at end of file
-+obj-$(CONFIG_SND_SOC_MESON_SPDIF) += snd-soc-meson-aiu-spdif-dma.o
-+obj-$(CONFIG_SND_SOC_MESON_SPDIF) += snd-soc-meson-spdif-dai.o
-\ No newline at end of file
-diff --git a/sound/soc/meson/spdif-dai.c b/sound/soc/meson/spdif-dai.c
-new file mode 100644
-index 0000000..e763000
---- /dev/null
-+++ b/sound/soc/meson/spdif-dai.c
-@@ -0,0 +1,374 @@
-+/*
-+ * Copyright (C) 2017 BayLibre, SAS
-+ * Author: Jerome Brunet <jbrunet@baylibre.com>
-+ * Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <linux/clk.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/platform_device.h>
-+#include <linux/regmap.h>
-+
-+#include <sound/pcm_params.h>
-+#include <sound/soc.h>
-+#include <sound/soc-dai.h>
-+#include <sound/pcm_iec958.h>
-+
-+#include "aiu-regs.h"
-+#include "audio-core.h"
-+
-+#define DRV_NAME "meson-spdif-dai"
-+
-+struct meson_spdif_dai {
-+ struct meson_audio_core_data *core;
-+ struct clk *iface;
-+ struct clk *fast;
-+ struct clk *mclk_i958;
-+ struct clk *mclk;
-+};
-+
-+#define AIU_CLK_CTRL_958_DIV_EN BIT(1)
-+#define AIU_CLK_CTRL_958_DIV_MASK GENMASK(5, 4)
-+#define AIU_CLK_CTRL_958_DIV_MORE BIT(12)
-+#define AIU_MEM_IEC958_CONTROL_MODE_LINEAR BIT(8)
-+#define AIU_958_CTRL_HOLD_EN BIT(0)
-+#define AIU_958_MISC_NON_PCM BIT(0)
-+#define AIU_958_MISC_MODE_16BITS BIT(1)
-+#define AIU_958_MISC_16BITS_ALIGN_MASK GENMASK(6, 5)
-+#define AIU_958_MISC_16BITS_ALIGN(val) ((val) << 5)
-+#define AIU_958_MISC_MODE_32BITS BIT(7)
-+#define AIU_958_MISC_32BITS_SHIFT_MASK GENMASK(10, 8)
-+#define AIU_958_MISC_32BITS_SHIFT(val) ((val) << 8)
-+#define AIU_958_MISC_U_FROM_STREAM BIT(12)
-+#define AIU_958_MISC_FORCE_LR BIT(13)
-+
-+#define AIU_CS_WORD_LEN 4
-+
-+static void __hold(struct meson_spdif_dai *priv, bool enable)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_958_CTRL,
-+ AIU_958_CTRL_HOLD_EN,
-+ enable ? AIU_958_CTRL_HOLD_EN : 0);
-+}
-+
-+static void __divider_enable(struct meson_spdif_dai *priv, bool enable)
-+{
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL,
-+ AIU_CLK_CTRL_958_DIV_EN,
-+ enable ? AIU_CLK_CTRL_958_DIV_EN : 0);
-+}
-+
-+static void __playback_start(struct meson_spdif_dai *priv)
-+{
-+ __divider_enable(priv, true);
-+ __hold(priv, false);
-+}
-+
-+static void __playback_stop(struct meson_spdif_dai *priv)
-+{
-+ __hold(priv, true);
-+ __divider_enable(priv, false);
-+}
-+
-+static int meson_spdif_dai_trigger(struct snd_pcm_substream *substream, int cmd,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_spdif_dai *priv = snd_soc_dai_get_drvdata(dai);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ case SNDRV_PCM_TRIGGER_RESUME:
-+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+ __playback_start(priv);
-+ return 0;
-+
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ case SNDRV_PCM_TRIGGER_SUSPEND:
-+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+ __playback_stop(priv);
-+ return 0;
-+
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+static int __setup_spdif_clk(struct meson_spdif_dai *priv, unsigned int rate)
-+{
-+ unsigned int mrate;
-+
-+ /* Leave the internal divisor alone */
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL,
-+ AIU_CLK_CTRL_958_DIV_MASK |
-+ AIU_CLK_CTRL_958_DIV_MORE,
-+ 0);
-+
-+ /* 2 * 32bits per subframe * 2 channels = 128 */
-+ mrate = rate * 128;
-+ return clk_set_rate(priv->mclk, mrate);
-+}
-+
-+static int __setup_cs_word(struct meson_spdif_dai *priv,
-+ struct snd_pcm_hw_params *params)
-+{
-+ u8 cs[AIU_CS_WORD_LEN];
-+ u32 val;
-+ int ret;
-+
-+ ret = snd_pcm_create_iec958_consumer_hw_params(params, cs,
-+ AIU_CS_WORD_LEN);
-+ if (ret < 0)
-+ return -EINVAL;
-+
-+ /* Write the 1st half word */
-+ val = cs[1] | cs[0] << 8;
-+ regmap_write(priv->core->aiu, AIU_958_CHSTAT_L0, val);
-+ regmap_write(priv->core->aiu, AIU_958_CHSTAT_R0, val);
-+
-+ /* Write the 2nd half word */
-+ val = cs[3] | cs[2] << 8;
-+ regmap_write(priv->core->aiu, AIU_958_CHSTAT_L1, val);
-+ regmap_write(priv->core->aiu, AIU_958_CHSTAT_R1, val);
-+
-+ return 0;
-+}
-+
-+static int __setup_pcm_fmt(struct meson_spdif_dai *priv,
-+ unsigned int width)
-+{
-+ u32 val = 0;
-+
-+ switch (width) {
-+ case 16:
-+ val |= AIU_958_MISC_MODE_16BITS;
-+ val |= AIU_958_MISC_16BITS_ALIGN(2);
-+ break;
-+ case 32:
-+ case 24:
-+ /*
-+ * Looks like this should only be set for 32bits mode, but the
-+ * vendor kernel sets it like this for 24bits as well, let's
-+ * try and see
-+ */
-+ val |= AIU_958_MISC_MODE_32BITS;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ /* No idea what this actually does, copying the vendor kernel for now */
-+ val |= AIU_958_MISC_FORCE_LR;
-+ val |= AIU_958_MISC_U_FROM_STREAM;
-+
-+ regmap_update_bits(priv->core->aiu, AIU_958_MISC,
-+ AIU_958_MISC_NON_PCM |
-+ AIU_958_MISC_MODE_16BITS |
-+ AIU_958_MISC_16BITS_ALIGN_MASK |
-+ AIU_958_MISC_MODE_32BITS |
-+ AIU_958_MISC_FORCE_LR,
-+ val);
-+
-+ return 0;
-+}
-+
-+static int meson_spdif_dai_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *params,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_spdif_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ int ret;
-+
-+ ret = __setup_spdif_clk(priv, params_rate(params));
-+ if (ret) {
-+ dev_err(dai->dev, "Unable to set the spdif clock\n");
-+ return ret;
-+ }
-+
-+ ret = __setup_cs_word(priv, params);
-+ if (ret) {
-+ dev_err(dai->dev, "Unable to set the channel status word\n");
-+ return ret;
-+ }
-+
-+ ret = __setup_pcm_fmt(priv, params_width(params));
-+ if (ret) {
-+ dev_err(dai->dev, "Unable to set the pcm format\n");
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static int meson_spdif_dai_startup(struct snd_pcm_substream *substream,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_spdif_dai *priv = snd_soc_dai_get_drvdata(dai);
-+ int ret;
-+
-+ /* Power up the spdif fast domain - can't write the registers w/o it */
-+ ret = clk_prepare_enable(priv->fast);
-+ if (ret)
-+ goto out_clk_fast;
-+
-+ /* Make sure nothing gets out of the DAI yet*/
-+ __hold(priv, true);
-+
-+ ret = clk_set_parent(priv->mclk, priv->mclk_i958);
-+ if (ret)
-+ return ret;
-+
-+ /* Enable the clock gate */
-+ ret = clk_prepare_enable(priv->iface);
-+ if (ret)
-+ goto out_clk_iface;
-+
-+ /* Enable the spdif clock */
-+ ret = clk_prepare_enable(priv->mclk);
-+ if (ret)
-+ goto out_mclk;
-+
-+ /*
-+ * Make sure the interface expect a memory layout we can work with
-+ * MEM prefixed register usually belong to the DMA, but when the spdif
-+ * DAI takes data from the i2s buffer, we need to make sure it works in
-+ * split mode and not the "normal mode" (channel samples packed in
-+ * 32 bytes groups)
-+ */
-+ regmap_update_bits(priv->core->aiu, AIU_MEM_IEC958_CONTROL,
-+ AIU_MEM_IEC958_CONTROL_MODE_LINEAR,
-+ AIU_MEM_IEC958_CONTROL_MODE_LINEAR);
-+
-+ return 0;
-+
-+out_mclk:
-+ clk_disable_unprepare(priv->iface);
-+out_clk_iface:
-+ clk_disable_unprepare(priv->fast);
-+out_clk_fast:
-+ return ret;
-+}
-+
-+static void meson_spdif_dai_shutdown(struct snd_pcm_substream *substream,
-+ struct snd_soc_dai *dai)
-+{
-+ struct meson_spdif_dai *priv = snd_soc_dai_get_drvdata(dai);
-+
-+ clk_disable_unprepare(priv->iface);
-+ clk_disable_unprepare(priv->mclk);
-+ clk_disable_unprepare(priv->fast);
-+}
-+
-+static const struct snd_soc_dai_ops meson_spdif_dai_ops = {
-+ .startup = meson_spdif_dai_startup,
-+ .shutdown = meson_spdif_dai_shutdown,
-+ .trigger = meson_spdif_dai_trigger,
-+ .hw_params = meson_spdif_dai_hw_params,
-+};
-+
-+static struct snd_soc_dai_driver meson_spdif_dai = {
-+ .playback = {
-+ .stream_name = "Playback",
-+ .channels_min = 2,
-+ .channels_max = 2,
-+ .rates = (SNDRV_PCM_RATE_32000 |
-+ SNDRV_PCM_RATE_44100 |
-+ SNDRV_PCM_RATE_48000 |
-+ SNDRV_PCM_RATE_96000 |
-+ SNDRV_PCM_RATE_192000),
-+ .formats = (SNDRV_PCM_FMTBIT_S16_LE |
-+ SNDRV_PCM_FMTBIT_S24_LE)
-+ },
-+ .ops = &meson_spdif_dai_ops,
-+};
-+
-+static const struct snd_soc_component_driver meson_spdif_dai_component = {
-+ .name = DRV_NAME,
-+};
-+
-+static int meson_spdif_dai_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct meson_spdif_dai *priv;
-+
-+ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-+ if (!priv)
-+ return -ENOMEM;
-+
-+ platform_set_drvdata(pdev, priv);
-+ priv->core = dev_get_drvdata(dev->parent);
-+
-+ priv->fast = devm_clk_get(dev, "fast");
-+ if (IS_ERR(priv->fast)) {
-+ if (PTR_ERR(priv->fast) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get spdif fast domain clockt\n");
-+ return PTR_ERR(priv->fast);
-+ }
-+
-+ priv->iface = devm_clk_get(dev, "iface");
-+ if (IS_ERR(priv->iface)) {
-+ if (PTR_ERR(priv->iface) != -EPROBE_DEFER)
-+ dev_err(dev,
-+ "Can't get the dai clock gate\n");
-+ return PTR_ERR(priv->iface);
-+ }
-+
-+ priv->mclk_i958 = devm_clk_get(dev, "mclk_i958");
-+ if (IS_ERR(priv->mclk_i958)) {
-+ if (PTR_ERR(priv->mclk_i958) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get the spdif master clock\n");
-+ return PTR_ERR(priv->mclk_i958);
-+ }
-+
-+ /*
-+ * TODO: the spdif dai can also get its data from the i2s fifo.
-+ * For this use-case, the DAI driver will need to get the i2s master
-+ * clock in order to reparent the spdif clock from cts_mclk_i958 to
-+ * cts_amclk
-+ */
-+
-+ priv->mclk = devm_clk_get(dev, "mclk");
-+ if (IS_ERR(priv->mclk)) {
-+ if (PTR_ERR(priv->mclk) != -EPROBE_DEFER)
-+ dev_err(dev, "Can't get the spdif input mux clock\n");
-+ return PTR_ERR(priv->mclk);
-+ }
-+
-+ return devm_snd_soc_register_component(dev, &meson_spdif_dai_component,
-+ &meson_spdif_dai, 1);
-+}
-+
-+static const struct of_device_id meson_spdif_dai_of_match[] = {
-+ { .compatible = "amlogic,meson-spdif-dai", },
-+ { .compatible = "amlogic,meson-gxbb-spdif-dai", },
-+ { .compatible = "amlogic,meson-gxl-spdif-dai", },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, meson_spdif_dai_of_match);
-+
-+static struct platform_driver meson_spdif_dai_pdrv = {
-+ .probe = meson_spdif_dai_probe,
-+ .driver = {
-+ .name = DRV_NAME,
-+ .of_match_table = meson_spdif_dai_of_match,
-+ },
-+};
-+module_platform_driver(meson_spdif_dai_pdrv);
-+
-+MODULE_DESCRIPTION("Meson spdif DAI ASoC Driver");
-+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
-+MODULE_LICENSE("GPL v2");
diff --git a/testing/linux-amlogic/0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch b/testing/linux-amlogic/0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch
deleted file mode 100644
index 2f8854bf36a..00000000000
--- a/testing/linux-amlogic/0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 93621178cb2f756c8ca8901801c2ce914ac7dc6b Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Fri, 31 Mar 2017 15:55:03 +0200
-Subject: [PATCH] ARM64: defconfig: enable audio support for meson SoCs as
- module
-
-Add audio support for meson SoCs. This includes the audio core
-driver and the i2s and spdif output interfaces
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- arch/arm64/configs/defconfig | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
-index ab1cb51..a4bf54b 100644
---- a/arch/arm64/configs/defconfig
-+++ b/arch/arm64/configs/defconfig
-@@ -464,6 +464,9 @@ CONFIG_SOUND=y
- CONFIG_SND=y
- CONFIG_SND_SOC=y
- CONFIG_SND_BCM2835_SOC_I2S=m
-+CONFIG_SND_SOC_MESON=m
-+CONFIG_SND_SOC_MESON_I2S=m
-+CONFIG_SND_SOC_MESON_SPDIF=m
- CONFIG_SND_SOC_ROCKCHIP=m
- CONFIG_SND_SOC_ROCKCHIP_I2S=m
- CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
diff --git a/testing/linux-amlogic/0008-drm-meson-Add-HDMI-1.4-4k-modes.patch b/testing/linux-amlogic/0008-drm-meson-Add-HDMI-1.4-4k-modes.patch
deleted file mode 100644
index 194ba6e2de8..00000000000
--- a/testing/linux-amlogic/0008-drm-meson-Add-HDMI-1.4-4k-modes.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From 24b38ca3bd2579d4bac18f57526c93bc63354959 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Fri, 20 Jul 2018 15:29:18 +0200
-Subject: [PATCH] drm/meson: Add HDMI 1.4 4k modes
-
-Add the timings for the HDMI 1.4 4K modes support :
-- 3840x2160@30
-- 3840x2160@25
-- 3840x2160@24
-
-Since the 297000Hz pixel clock is already managed and the modes are
-compatible with the HDMI 1.4 current HDMI PHY+Controller support, only
-the missing timings values needs to be added.
-
----
- drivers/gpu/drm/meson/meson_venc.c | 129 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 129 insertions(+)
-
-diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
-index 14aac66..d68ccbf 100644
---- a/drivers/gpu/drm/meson/meson_venc.c
-+++ b/drivers/gpu/drm/meson/meson_venc.c
-@@ -698,6 +698,132 @@ union meson_hdmi_venc_mode meson_hdmi_encp_mode_1080p60 = {
- },
- };
-
-+union meson_hdmi_venc_mode meson_hdmi_encp_mode_2160p24 = {
-+ .encp = {
-+ .dvi_settings = 0x1,
-+ .video_mode = 0x4040,
-+ .video_mode_adv = 0x8,
-+ /* video_sync_mode */
-+ /* video_yc_dly */
-+ /* video_rgb_ctrl */
-+ .video_filt_ctrl = 0x1000,
-+ .video_filt_ctrl_present = true,
-+ /* video_ofld_voav_ofst */
-+ .yfp1_htime = 140,
-+ .yfp2_htime = 140+3840,
-+ .max_pxcnt = 3840+1660-1,
-+ .hspuls_begin = 2156+1920,
-+ .hspuls_end = 44,
-+ .hspuls_switch = 44,
-+ .vspuls_begin = 140,
-+ .vspuls_end = 2059+1920,
-+ .vspuls_bline = 0,
-+ .vspuls_eline = 4,
-+ .havon_begin = 148,
-+ .havon_end = 3987,
-+ .vavon_bline = 89,
-+ .vavon_eline = 2248,
-+ /* eqpuls_begin */
-+ /* eqpuls_end */
-+ /* eqpuls_bline */
-+ /* eqpuls_eline */
-+ .hso_begin = 44,
-+ .hso_end = 2156+1920,
-+ .vso_begin = 2100+1920,
-+ .vso_end = 2164+1920,
-+ .vso_bline = 51,
-+ .vso_eline = 53,
-+ .vso_eline_present = true,
-+ /* sy_val */
-+ /* sy2_val */
-+ .max_lncnt = 2249,
-+ },
-+};
-+
-+union meson_hdmi_venc_mode meson_hdmi_encp_mode_2160p25 = {
-+ .encp = {
-+ .dvi_settings = 0x1,
-+ .video_mode = 0x4040,
-+ .video_mode_adv = 0x8,
-+ /* video_sync_mode */
-+ /* video_yc_dly */
-+ /* video_rgb_ctrl */
-+ .video_filt_ctrl = 0x1000,
-+ .video_filt_ctrl_present = true,
-+ /* video_ofld_voav_ofst */
-+ .yfp1_htime = 140,
-+ .yfp2_htime = 140+3840,
-+ .max_pxcnt = 3840+1440-1,
-+ .hspuls_begin = 2156+1920,
-+ .hspuls_end = 44,
-+ .hspuls_switch = 44,
-+ .vspuls_begin = 140,
-+ .vspuls_end = 2059+1920,
-+ .vspuls_bline = 0,
-+ .vspuls_eline = 4,
-+ .havon_begin = 148,
-+ .havon_end = 3987,
-+ .vavon_bline = 89,
-+ .vavon_eline = 2248,
-+ /* eqpuls_begin */
-+ /* eqpuls_end */
-+ /* eqpuls_bline */
-+ /* eqpuls_eline */
-+ .hso_begin = 44,
-+ .hso_end = 2156+1920,
-+ .vso_begin = 2100+1920,
-+ .vso_end = 2164+1920,
-+ .vso_bline = 51,
-+ .vso_eline = 53,
-+ .vso_eline_present = true,
-+ /* sy_val */
-+ /* sy2_val */
-+ .max_lncnt = 2249,
-+ },
-+};
-+
-+union meson_hdmi_venc_mode meson_hdmi_encp_mode_2160p30 = {
-+ .encp = {
-+ .dvi_settings = 0x1,
-+ .video_mode = 0x4040,
-+ .video_mode_adv = 0x8,
-+ /* video_sync_mode */
-+ /* video_yc_dly */
-+ /* video_rgb_ctrl */
-+ .video_filt_ctrl = 0x1000,
-+ .video_filt_ctrl_present = true,
-+ /* video_ofld_voav_ofst */
-+ .yfp1_htime = 140,
-+ .yfp2_htime = 140+3840,
-+ .max_pxcnt = 3840+560-1,
-+ .hspuls_begin = 2156+1920,
-+ .hspuls_end = 44,
-+ .hspuls_switch = 44,
-+ .vspuls_begin = 140,
-+ .vspuls_end = 2059+1920,
-+ .vspuls_bline = 0,
-+ .vspuls_eline = 4,
-+ .havon_begin = 148,
-+ .havon_end = 3987,
-+ .vavon_bline = 89,
-+ .vavon_eline = 2248,
-+ /* eqpuls_begin */
-+ /* eqpuls_end */
-+ /* eqpuls_bline */
-+ /* eqpuls_eline */
-+ .hso_begin = 44,
-+ .hso_end = 2156+1920,
-+ .vso_begin = 2100+1920,
-+ .vso_end = 2164+1920,
-+ .vso_bline = 51,
-+ .vso_eline = 53,
-+ .vso_eline_present = true,
-+ /* sy_val */
-+ /* sy2_val */
-+ .max_lncnt = 2249,
-+ },
-+};
-+
- struct meson_hdmi_venc_vic_mode {
- unsigned int vic;
- union meson_hdmi_venc_mode *mode;
-@@ -718,6 +844,9 @@ struct meson_hdmi_venc_vic_mode {
- { 34, &meson_hdmi_encp_mode_1080p30 },
- { 31, &meson_hdmi_encp_mode_1080p50 },
- { 16, &meson_hdmi_encp_mode_1080p60 },
-+ { 93, &meson_hdmi_encp_mode_2160p24 },
-+ { 94, &meson_hdmi_encp_mode_2160p25 },
-+ { 95, &meson_hdmi_encp_mode_2160p30 },
- { 0, NULL}, /* sentinel */
- };
-
diff --git a/testing/linux-amlogic/0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch b/testing/linux-amlogic/0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch
deleted file mode 100644
index f16edd0d1b6..00000000000
--- a/testing/linux-amlogic/0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 7ecd280bd317cff3c608b32b2a185929b2ec17ca Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Thu, 30 Mar 2017 15:19:04 +0200
-Subject: [PATCH] ARM64: dts: meson-gx: add audio controller nodes
-
-Add audio controller nodes for Amlogic meson gxbb and gxl.
-This includes the audio-core node, the i2s and spdif DAIs, i2s and spdif
-aiu DMAs.
-
-Audio on this SoC family is still a work in progress. More nodes are likely
-to be added later on (pcm DAIs, input DMAs, etc ...)
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 35 ++++++++++++++++++++++++++
- arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 39 +++++++++++++++++++++++++++++
- arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 38 ++++++++++++++++++++++++++++
- 3 files changed, 112 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index b8dc4db..6b64b63 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -203,6 +203,41 @@
- #reset-cells = <1>;
- };
-
-+ audio: audio@5400 {
-+ compatible = "amlogic,meson-audio-core";
-+ reg = <0x0 0x5400 0x0 0x2ac>,
-+ <0x0 0xa000 0x0 0x304>;
-+ reg-names = "aiu", "audin";
-+ status = "disabled";
-+
-+ aiu_i2s_dma: aiu_i2s_dma {
-+ #sound-dai-cells = <0>;
-+ compatible = "amlogic,meson-aiu-i2s-dma";
-+ interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>;
-+ status = "disabled";
-+ };
-+
-+ aiu_spdif_dma: aiu_spdif_dma {
-+ #sound-dai-cells = <0>;
-+ compatible = "amlogic,meson-aiu-spdif-dma";
-+ interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
-+ status = "disabled";
-+ };
-+
-+ i2s_dai: i2s_dai {
-+ #sound-dai-cells = <0>;
-+ compatible = "amlogic,meson-i2s-dai";
-+ status = "disabled";
-+ };
-+
-+ spdif_dai: spdif_dai {
-+ #sound-dai-cells = <0>;
-+ compatible = "amlogic,meson-spdif-dai";
-+ status = "disabled";
-+ };
-+
-+ };
-+
- uart_A: serial@84c0 {
- compatible = "amlogic,meson-gx-uart";
- reg = <0x0 0x84c0 0x0 0x18>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-index 98cbba6..7913249 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-@@ -659,6 +659,35 @@
- };
- };
-
-+&audio {
-+ clocks = <&clkc CLKID_AIU>,
-+ <&clkc CLKID_AIU_GLUE>,
-+ <&clkc CLKID_I2S_SPDIF>;
-+ clock-names = "aiu_top", "aiu_glue", "audin";
-+ resets = <&reset RESET_AIU>,
-+ <&reset RESET_AUDIN>;
-+ reset-names = "aiu", "audin";
-+};
-+
-+&aiu_i2s_dma {
-+ clocks = <&clkc CLKID_I2S_OUT>;
-+ clock-names = "fast";
-+};
-+
-+&aiu_spdif_dma {
-+ clocks = <&clkc CLKID_IEC958>;
-+ clock-names = "fast";
-+
-+};
-+
-+&i2s_dai {
-+ clocks = <&clkc CLKID_I2S_OUT>,
-+ <&clkc CLKID_MIXER_IFACE>,
-+ <&clkc CLKID_AOCLK_GATE>,
-+ <&clkc CLKID_CTS_AMCLK>;
-+ clock-names = "fast", "iface", "bclks", "mclk";
-+};
-+
- &pwrc_vpu {
- resets = <&reset RESET_VIU>,
- <&reset RESET_VENC>,
-@@ -741,6 +770,15 @@
- num-cs = <1>;
- };
-
-+&spdif_dai {
-+ clocks = <&clkc CLKID_IEC958>,
-+ <&clkc CLKID_IEC958_GATE>,
-+ <&clkc CLKID_CTS_MCLK_I958>,
-+ <&clkc CLKID_CTS_AMCLK>,
-+ <&clkc CLKID_CTS_I958>;
-+ clock-names = "fast", "iface", "mclk_i958", "mclk_i2s", "mclk";
-+};
-+
- &spifc {
- clocks = <&clkc CLKID_SPI>;
- };
-@@ -774,3 +812,4 @@
- compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
- power-domains = <&pwrc_vpu>;
- };
-+
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-index c87a80e..20922cd 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-@@ -660,6 +660,34 @@
- };
- };
-
-+&audio {
-+ clocks = <&clkc CLKID_AIU>,
-+ <&clkc CLKID_AIU_GLUE>,
-+ <&clkc CLKID_I2S_SPDIF>;
-+ clock-names = "aiu_top", "aiu_glue", "audin";
-+ resets = <&reset RESET_AIU>,
-+ <&reset RESET_AUDIN>;
-+ reset-names = "aiu", "audin";
-+};
-+
-+&aiu_i2s_dma {
-+ clocks = <&clkc CLKID_I2S_OUT>;
-+ clock-names = "fast";
-+};
-+
-+&aiu_spdif_dma {
-+ clocks = <&clkc CLKID_IEC958>;
-+ clock-names = "fast";
-+};
-+
-+&i2s_dai {
-+ clocks = <&clkc CLKID_I2S_OUT>,
-+ <&clkc CLKID_MIXER_IFACE>,
-+ <&clkc CLKID_AOCLK_GATE>,
-+ <&clkc CLKID_CTS_AMCLK>;
-+ clock-names = "fast", "iface", "bclks", "mclk";
-+};
-+
- &pwrc_vpu {
- resets = <&reset RESET_VIU>,
- <&reset RESET_VENC>,
-@@ -742,6 +770,15 @@
- num-cs = <1>;
- };
-
-+&spdif_dai {
-+ clocks = <&clkc CLKID_IEC958>,
-+ <&clkc CLKID_IEC958_GATE>,
-+ <&clkc CLKID_CTS_MCLK_I958>,
-+ <&clkc CLKID_CTS_AMCLK>,
-+ <&clkc CLKID_CTS_I958>;
-+ clock-names = "fast", "iface", "mclk_i958", "mclk_i2s", "mclk";
-+};
-+
- &spifc {
- clocks = <&clkc CLKID_SPI>;
- };
-@@ -775,3 +812,4 @@
- compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
- power-domains = <&pwrc_vpu>;
- };
-+
diff --git a/testing/linux-amlogic/0009-drm-meson-Use-drm_fbdev_generic_setup.patch b/testing/linux-amlogic/0009-drm-meson-Use-drm_fbdev_generic_setup.patch
deleted file mode 100644
index fc3511a1114..00000000000
--- a/testing/linux-amlogic/0009-drm-meson-Use-drm_fbdev_generic_setup.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From a753ec94679503680fcf86ffad3f3d3eb817c6b9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= <noralf@tronnes.org>
-Date: Sat, 8 Sep 2018 15:46:33 +0200
-Subject: [PATCH] drm/meson: Use drm_fbdev_generic_setup()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The CMA helper is already using the drm_fb_helper_generic_probe part of
-the generic fbdev emulation. This patch makes full use of the generic
-fbdev emulation by using its drm_client callbacks. This means that
-drm_mode_config_funcs->output_poll_changed and drm_driver->lastclose are
-now handled by the emulation code. Additionally fbdev unregister happens
-automatically on drm_dev_unregister().
-
-The drm_fbdev_generic_setup() call is put after drm_dev_register() in the
-driver. This is done to highlight the fact that fbdev emulation is an
-internal client that makes use of the driver, it is not part of the
-driver as such. If fbdev setup fails, an error is printed, but the driver
-succeeds probing.
-
-Cc: Neil Armstrong <narmstrong@baylibre.com>
-Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
-
----
- drivers/gpu/drm/meson/meson_drv.c | 19 ++-----------------
- drivers/gpu/drm/meson/meson_drv.h | 1 -
- 2 files changed, 2 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
-index b55e03d..3997e3e 100644
---- a/drivers/gpu/drm/meson/meson_drv.c
-+++ b/drivers/gpu/drm/meson/meson_drv.c
-@@ -69,15 +69,7 @@
- * - Powering Up HDMI controller and PHY
- */
-
--static void meson_fb_output_poll_changed(struct drm_device *dev)
--{
-- struct meson_drm *priv = dev->dev_private;
--
-- drm_fbdev_cma_hotplug_event(priv->fbdev);
--}
--
- static const struct drm_mode_config_funcs meson_mode_config_funcs = {
-- .output_poll_changed = meson_fb_output_poll_changed,
- .atomic_check = drm_atomic_helper_check,
- .atomic_commit = drm_atomic_helper_commit,
- .fb_create = drm_gem_fb_create,
-@@ -314,13 +306,6 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
-
- drm_mode_config_reset(drm);
-
-- priv->fbdev = drm_fbdev_cma_init(drm, 32,
-- drm->mode_config.num_connector);
-- if (IS_ERR(priv->fbdev)) {
-- ret = PTR_ERR(priv->fbdev);
-- goto free_drm;
-- }
--
- drm_kms_helper_poll_init(drm);
-
- platform_set_drvdata(pdev, priv);
-@@ -329,6 +314,8 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
- if (ret)
- goto free_drm;
-
-+ drm_fbdev_generic_setup(drm, 32);
-+
- return 0;
-
- free_drm:
-@@ -345,7 +332,6 @@ static int meson_drv_bind(struct device *dev)
- static void meson_drv_unbind(struct device *dev)
- {
- struct drm_device *drm = dev_get_drvdata(dev);
-- struct meson_drm *priv = drm->dev_private;
-
- if (priv->canvas) {
- meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
-@@ -356,7 +342,6 @@ static void meson_drv_unbind(struct device *dev)
-
- drm_dev_unregister(drm);
- drm_kms_helper_poll_fini(drm);
-- drm_fbdev_cma_fini(priv->fbdev);
- drm_mode_config_cleanup(drm);
- drm_dev_put(drm);
-
-diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
-index a955354..4dccf4c 100644
---- a/drivers/gpu/drm/meson/meson_drv.h
-+++ b/drivers/gpu/drm/meson/meson_drv.h
-@@ -40,7 +40,6 @@ struct meson_drm {
-
- struct drm_device *drm;
- struct drm_crtc *crtc;
-- struct drm_fbdev_cma *fbdev;
- struct drm_plane *primary_plane;
- struct drm_plane *overlay_plane;
-
diff --git a/testing/linux-amlogic/0010-fixup-drm-meson-Use-optional-canvas-provider.patch b/testing/linux-amlogic/0010-fixup-drm-meson-Use-optional-canvas-provider.patch
deleted file mode 100644
index 9ea9352c9b5..00000000000
--- a/testing/linux-amlogic/0010-fixup-drm-meson-Use-optional-canvas-provider.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 07145ad0791209d3782eca4800406e7028e40a24 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 7 Nov 2018 11:24:43 +0100
-Subject: [PATCH] fixup! drm/meson: Use optional canvas provider
-
----
- drivers/gpu/drm/meson/meson_drv.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
-index 3997e3e..3ee4d4a4e 100644
---- a/drivers/gpu/drm/meson/meson_drv.c
-+++ b/drivers/gpu/drm/meson/meson_drv.c
-@@ -332,6 +332,7 @@ static int meson_drv_bind(struct device *dev)
- static void meson_drv_unbind(struct device *dev)
- {
- struct drm_device *drm = dev_get_drvdata(dev);
-+ struct meson_drm *priv = drm->dev_private;
-
- if (priv->canvas) {
- meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
diff --git a/testing/linux-amlogic/0010-snd-meson-activate-HDMI-audio-path.patch b/testing/linux-amlogic/0010-snd-meson-activate-HDMI-audio-path.patch
deleted file mode 100644
index 8a3ea861f26..00000000000
--- a/testing/linux-amlogic/0010-snd-meson-activate-HDMI-audio-path.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From c89e4a9d376b72bb00c1c71795b86fe81914a3ea Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Fri, 7 Jul 2017 17:39:21 +0200
-Subject: [PATCH] snd: meson: activate HDMI audio path
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- sound/soc/meson/i2s-dai.c | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/sound/soc/meson/i2s-dai.c b/sound/soc/meson/i2s-dai.c
-index 1008af8..63fe098 100644
---- a/sound/soc/meson/i2s-dai.c
-+++ b/sound/soc/meson/i2s-dai.c
-@@ -56,8 +56,19 @@ struct meson_i2s_dai {
- #define AIU_CLK_CTRL_ALRCLK_RIGHT_J (2 << 8)
- #define AIU_CLK_CTRL_MORE_I2S_DIV_MASK GENMASK(5, 0)
- #define AIU_CLK_CTRL_MORE_I2S_DIV(div) (((div) - 1) << 0)
-+#define AIU_CLK_CTRL_MORE_HDMI_TX_SEL_MASK BIT(6)
-+#define AIU_CLK_CTRL_MORE_HDMI_TX_I958_CLK (0 << 6)
-+#define AIU_CLK_CTRL_MORE_HDMI_TX_INT_CLK (1 << 6)
- #define AIU_CODEC_DAC_LRCLK_CTRL_DIV_MASK GENMASK(11, 0)
- #define AIU_CODEC_DAC_LRCLK_CTRL_DIV(div) (((div) - 1) << 0)
-+#define AIU_HDMI_CLK_DATA_CTRL_CLK_SEL_MASK GENMASK(1, 0)
-+#define AIU_HDMI_CLK_DATA_CTRL_CLK_DISABLE (0 << 0)
-+#define AIU_HDMI_CLK_DATA_CTRL_CLK_PCM (1 << 0)
-+#define AIU_HDMI_CLK_DATA_CTRL_CLK_I2S (2 << 0)
-+#define AIU_HDMI_CLK_DATA_CTRL_DATA_SEL_MASK GENMASK(5, 4)
-+#define AIU_HDMI_CLK_DATA_CTRL_DATA_MUTE (0 << 4)
-+#define AIU_HDMI_CLK_DATA_CTRL_DATA_PCM (1 << 4)
-+#define AIU_HDMI_CLK_DATA_CTRL_DATA_I2S (2 << 4)
- #define AIU_I2S_DAC_CFG_PAYLOAD_SIZE_MASK GENMASK(1, 0)
- #define AIU_I2S_DAC_CFG_AOCLK_32 (0 << 0)
- #define AIU_I2S_DAC_CFG_AOCLK_48 (2 << 0)
-@@ -221,6 +232,17 @@ static int meson_i2s_dai_hw_params(struct snd_pcm_substream *substream,
- return ret;
- }
-
-+ /* Quick and dirty hack for HDMI */
-+ regmap_update_bits(priv->core->aiu, AIU_HDMI_CLK_DATA_CTRL,
-+ AIU_HDMI_CLK_DATA_CTRL_CLK_SEL_MASK |
-+ AIU_HDMI_CLK_DATA_CTRL_DATA_SEL_MASK,
-+ AIU_HDMI_CLK_DATA_CTRL_CLK_I2S |
-+ AIU_HDMI_CLK_DATA_CTRL_DATA_I2S);
-+
-+ regmap_update_bits(priv->core->aiu, AIU_CLK_CTRL_MORE,
-+ AIU_CLK_CTRL_MORE_HDMI_TX_SEL_MASK,
-+ AIU_CLK_CTRL_MORE_HDMI_TX_INT_CLK);
-+
- return 0;
- }
-
diff --git a/testing/linux-amlogic/0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch b/testing/linux-amlogic/0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch
deleted file mode 100644
index 25c5a7f968e..00000000000
--- a/testing/linux-amlogic/0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From d46542e83265b476b32b94729e609a9a7767deac Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Tue, 14 Feb 2017 19:18:04 +0100
-Subject: [PATCH] drm/meson: select dw-hdmi i2s audio for meson hdmi
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- drivers/gpu/drm/meson/Kconfig | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/gpu/drm/meson/Kconfig b/drivers/gpu/drm/meson/Kconfig
-index 3ce51d8..02d400b 100644
---- a/drivers/gpu/drm/meson/Kconfig
-+++ b/drivers/gpu/drm/meson/Kconfig
-@@ -13,3 +13,4 @@ config DRM_MESON_DW_HDMI
- depends on DRM_MESON
- default y if DRM_MESON
- select DRM_DW_HDMI
-+ select DRM_DW_HDMI_I2S_AUDIO
diff --git a/testing/linux-amlogic/0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch b/testing/linux-amlogic/0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch
deleted file mode 100644
index 0b84218aa9e..00000000000
--- a/testing/linux-amlogic/0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0eb1a7bb3fd9e1ff2f368bb20490c7a032fc96e6 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Wed, 20 Sep 2017 18:01:26 +0200
-Subject: [PATCH] ARM64: dts: meson-gx: add sound-dai-cells to HDMI node
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 1 +
- arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-index 7913249..2a4d506 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-@@ -305,6 +305,7 @@
- <&clkc CLKID_CLK81>,
- <&clkc CLKID_GCLK_VENCI_INT0>;
- clock-names = "isfr", "iahb", "venci";
-+ #sound-dai-cells = <0>;
- };
-
- &sysctrl {
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-index 20922cd..9f4b618 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-@@ -257,6 +257,7 @@
- <&clkc CLKID_CLK81>,
- <&clkc CLKID_GCLK_VENCI_INT0>;
- clock-names = "isfr", "iahb", "venci";
-+ #sound-dai-cells = <0>;
- };
-
- &sysctrl {
diff --git a/testing/linux-amlogic/0012-drm-meson-add-support-for-1080p25-mode.patch b/testing/linux-amlogic/0012-drm-meson-add-support-for-1080p25-mode.patch
deleted file mode 100644
index bd267a5c032..00000000000
--- a/testing/linux-amlogic/0012-drm-meson-add-support-for-1080p25-mode.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 1f929f36f48f0f957f6c73cec309235243bd42f9 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Mon, 12 Nov 2018 16:10:31 +0100
-Subject: [PATCH] drm/meson: add support for 1080p25 mode
-
----
- drivers/gpu/drm/meson/meson_venc.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
-index d68ccbf..0fbe525 100644
---- a/drivers/gpu/drm/meson/meson_venc.c
-+++ b/drivers/gpu/drm/meson/meson_venc.c
-@@ -841,6 +841,7 @@ struct meson_hdmi_venc_vic_mode {
- { 5, &meson_hdmi_encp_mode_1080i60 },
- { 20, &meson_hdmi_encp_mode_1080i50 },
- { 32, &meson_hdmi_encp_mode_1080p24 },
-+ { 33, &meson_hdmi_encp_mode_1080p50 },
- { 34, &meson_hdmi_encp_mode_1080p30 },
- { 31, &meson_hdmi_encp_mode_1080p50 },
- { 16, &meson_hdmi_encp_mode_1080p60 },
diff --git a/testing/linux-amlogic/0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch b/testing/linux-amlogic/0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch
deleted file mode 100644
index 3ad65fc4730..00000000000
--- a/testing/linux-amlogic/0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch
+++ /dev/null
@@ -1,861 +0,0 @@
-From f0417a0c309fb02a5896abb868a52a1a3e23d610 Mon Sep 17 00:00:00 2001
-From: Jerome Brunet <jbrunet@baylibre.com>
-Date: Wed, 20 Sep 2017 18:10:08 +0200
-Subject: [PATCH] ARM64: dts: meson: activate hdmi audio HDMI enabled boards
-
-This patch activate audio over HDMI on selected boards
-
-Please note that this audio support is based on WIP changes
-This should be considered as preview and it does not reflect
-the audio I expect to see merged
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- .../arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | 45 ++++++++++++++++++++++
- .../boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | 45 ++++++++++++++++++++++
- .../boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 45 ++++++++++++++++++++++
- .../arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 45 ++++++++++++++++++++++
- arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | 45 ++++++++++++++++++++++
- arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi | 45 ++++++++++++++++++++++
- .../dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 45 ++++++++++++++++++++++
- .../dts/amlogic/meson-gxl-s905x-libretech-cc.dts | 45 ++++++++++++++++++++++
- .../dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts | 45 ++++++++++++++++++++++
- .../boot/dts/amlogic/meson-gxl-s905x-p212.dts | 45 ++++++++++++++++++++++
- .../boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 45 ++++++++++++++++++++++
- .../arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | 45 ++++++++++++++++++++++
- 12 files changed, 540 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
-index 765247b..fb9ad6f 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
-@@ -102,6 +102,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -111,6 +144,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cvbs_vdac_port {
- cvbs_vdac_out: endpoint {
- remote-endpoint = <&cvbs_connector_in>;
-@@ -133,6 +174,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
-index cbe99bd..5b10de9 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
-@@ -88,6 +88,39 @@
- clock-names = "ext_clock";
- };
-
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
-+
- vcc1v8: regulator-vcc1v8 {
- compatible = "regulator-fixed";
- regulator-name = "VCC1.8V";
-@@ -131,6 +164,14 @@
- };
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cec_AO {
- status = "okay";
- pinctrl-0 = <&ao_cec_pins>;
-@@ -185,6 +226,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
-index 4cf7f6e..ff87bdc 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
-@@ -119,6 +119,39 @@
- clock-names = "ext_clock";
- };
-
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
-+
- cvbs-connector {
- compatible = "composite-video-connector";
-
-@@ -154,6 +187,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &ethmac {
- status = "okay";
- pinctrl-0 = <&eth_rmii_pins>;
-@@ -190,6 +231,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
-index 54954b3..3da3309 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
-@@ -110,6 +110,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -119,6 +152,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &ethmac {
- status = "okay";
- pinctrl-0 = <&eth_rgmii_pins>;
-@@ -181,6 +222,10 @@
- pinctrl-names = "default";
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
-index ce86226..84eb93b 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
-@@ -113,6 +113,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -122,6 +155,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cvbs_vdac_port {
- cvbs_vdac_out: endpoint {
- remote-endpoint = <&cvbs_connector_in>;
-@@ -140,6 +181,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
-index 70325b2..7d1f172 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
-@@ -105,6 +105,47 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
-+};
-+
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
- };
-
- &cec_AO {
-@@ -159,6 +200,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-index d32cf38..f053595 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-@@ -65,6 +65,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -74,6 +107,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &hdmi_tx {
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
-@@ -86,6 +127,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &i2c_A {
- status = "okay";
- pinctrl-0 = <&i2c_a_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-index f63bceb..f56969e 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-@@ -84,6 +84,39 @@
- regulator-always-on;
- };
-
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
-+
- vcc_3v3: regulator-vcc_3v3 {
- compatible = "regulator-fixed";
- regulator-name = "VCC_3V3";
-@@ -130,6 +163,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cvbs_vdac_port {
- cvbs_vdac_out: endpoint {
- remote-endpoint = <&cvbs_connector_in>;
-@@ -151,6 +192,10 @@
- pinctrl-names = "default";
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &hdmi_tx {
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
-index 6739697..e3e777f 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
-@@ -102,6 +102,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -111,6 +144,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cvbs_vdac_port {
- cvbs_vdac_out: endpoint {
- remote-endpoint = <&cvbs_connector_in>;
-@@ -135,6 +176,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
-index 5896e8a..f8c66a7 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
-@@ -32,6 +32,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -41,12 +74,24 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cvbs_vdac_port {
- cvbs_vdac_out: endpoint {
- remote-endpoint = <&cvbs_connector_in>;
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &hdmi_tx {
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
-index 313f88f..4fbfa5a 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
-@@ -85,6 +85,39 @@
- };
- };
-
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
-+
- pwmleds {
- compatible = "pwm-leds";
-
-@@ -205,6 +238,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cpu0 {
- #cooling-cells = <2>;
- };
-@@ -279,6 +320,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &i2c_A {
- status = "okay";
- pinctrl-0 = <&i2c_a_pins>;
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
-index f7a1cff..b9c5e64 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
-@@ -75,6 +75,39 @@
- };
- };
- };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,name = "meson-gx-audio";
-+
-+ assigned-clocks = <&clkc CLKID_MPLL2>,
-+ <&clkc CLKID_MPLL0>,
-+ <&clkc CLKID_MPLL1>;
-+ assigned-clock-parents = <0>, <0>, <0>;
-+ assigned-clock-rates = <294912000>,
-+ <270950400>,
-+ <393216000>;
-+
-+ simple-audio-card,dai-link@0 {
-+ /* HDMI Output */
-+ format = "i2s";
-+ mclk-fs = <256>;
-+ bitclock-master = <&i2s_dai>;
-+ frame-master = <&i2s_dai>;
-+
-+ plat {
-+ sound-dai = <&aiu_i2s_dma>;
-+ };
-+
-+ cpu {
-+ sound-dai = <&i2s_dai>;
-+ };
-+
-+ codec {
-+ sound-dai = <&hdmi_tx>;
-+ };
-+ };
-+ };
- };
-
- &cec_AO {
-@@ -84,6 +117,14 @@
- hdmi-phandle = <&hdmi_tx>;
- };
-
-+&audio {
-+ status = "okay";
-+};
-+
-+&aiu_i2s_dma {
-+ status = "okay";
-+};
-+
- &cvbs_vdac_port {
- cvbs_vdac_out: endpoint {
- remote-endpoint = <&cvbs_connector_in>;
-@@ -129,6 +170,10 @@
- };
- };
-
-+&i2s_dai {
-+ status = "okay";
-+};
-+
- &ir {
- status = "okay";
- pinctrl-0 = <&remote_input_ao_pins>;
diff --git a/testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch b/testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
deleted file mode 100644
index 832af82c2ae..00000000000
--- a/testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 2ffa6ba6e67706f195b1938c5f7e8a385252bd8e Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 14 Nov 2018 16:48:50 +0100
-Subject: [PATCH] drm/bridge: dw-hdmi: Add SCDC and TMDS Scrambling support
-
-Add support for SCDC Setup for TMDS Clock > 3.4GHz and enable TMDS
-Scrambling when supported or mandatory.
-
-This patch also adds an helper to setup the control bit to support
-the hight TMDS Bit Period/TMDS Clock-Period Ratio as required with
-TMDS Clock > 3.4GHz for HDMI2.0 3840x2160@60/50 modes.
-
-These changes were based on work done by Huicong Xu <xhc@rock-chips.com>
-and Nickey Yang <nickey.yang@rock-chips.com> to support HDMI2.0 modes
-on the Rockchip 4.4 BSP kernel at [1]
-
-[1] https://github.com/rockchip-linux/kernel/tree/release-4.4
-
-Cc: Nickey Yang <nickey.yang@rock-chips.com>
-Cc: Huicong Xu <xhc@rock-chips.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 45 ++++++++++++++++++++++++++++---
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.h | 1 +
- include/drm/bridge/dw_hdmi.h | 1 +
- 3 files changed, 44 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-index 1fc1270..2a30d83 100644
---- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-@@ -28,6 +28,7 @@
- #include <drm/drm_crtc_helper.h>
- #include <drm/drm_edid.h>
- #include <drm/drm_encoder_slave.h>
-+#include <drm/drm_scdc_helper.h>
- #include <drm/bridge/dw_hdmi.h>
-
- #include <uapi/linux/media-bus-format.h>
-@@ -1026,6 +1027,20 @@ void dw_hdmi_phy_i2c_write(struct dw_hdmi *hdmi, unsigned short data,
- }
- EXPORT_SYMBOL_GPL(dw_hdmi_phy_i2c_write);
-
-+void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi)
-+{
-+ unsigned long mtmdsclock = hdmi->hdmi_data.video_mode.mpixelclock;
-+
-+ /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */
-+ if (hdmi->connector.display_info.hdmi.scdc.supported) {
-+ if (mtmdsclock > 340000000)
-+ drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 1);
-+ else
-+ drm_scdc_set_high_tmds_clock_ratio(hdmi->ddc, 0);
-+ }
-+}
-+EXPORT_SYMBOL_GPL(dw_hdmi_set_high_tmds_clock_ratio);
-+
- static void dw_hdmi_phy_enable_powerdown(struct dw_hdmi *hdmi, bool enable)
- {
- hdmi_mask_writeb(hdmi, !enable, HDMI_PHY_CONF0,
-@@ -1351,11 +1366,12 @@ static void hdmi_tx_hdcp_config(struct dw_hdmi *hdmi)
-
- static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
- {
-+ bool is_hdmi2_sink = hdmi->connector.display_info.hdmi.scdc.supported;
- struct hdmi_avi_infoframe frame;
- u8 val;
-
- /* Initialise info frame from DRM mode */
-- drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false);
-+ drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, is_hdmi2_sink);
-
- if (hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_out_bus_format))
- frame.colorspace = HDMI_COLORSPACE_YUV444;
-@@ -1514,7 +1530,8 @@ static void hdmi_config_vendor_specific_infoframe(struct dw_hdmi *hdmi,
- static void hdmi_av_composer(struct dw_hdmi *hdmi,
- const struct drm_display_mode *mode)
- {
-- u8 inv_val;
-+ u8 inv_val, bytes;
-+ struct drm_hdmi_info *hdmi_info = &hdmi->connector.display_info.hdmi;
- struct hdmi_vmode *vmode = &hdmi->hdmi_data.video_mode;
- int hblank, vblank, h_de_hs, v_de_vs, hsync_len, vsync_len;
- unsigned int vdisplay;
-@@ -1524,7 +1541,9 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
- dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock);
-
- /* Set up HDMI_FC_INVIDCONF */
-- inv_val = (hdmi->hdmi_data.hdcp_enable ?
-+ inv_val = (hdmi->hdmi_data.hdcp_enable ||
-+ vmode->mpixelclock > 340000000 ||
-+ hdmi_info->scdc.scrambling.low_rates ?
- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE :
- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE);
-
-@@ -1573,6 +1592,26 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
- vsync_len /= 2;
- }
-
-+ /* Scrambling Control */
-+ if (hdmi_info->scdc.supported) {
-+ if (vmode->mpixelclock > 340000000 ||
-+ hdmi_info->scdc.scrambling.low_rates) {
-+ drm_scdc_readb(&hdmi->i2c->adap, SCDC_SINK_VERSION,
-+ &bytes);
-+ drm_scdc_writeb(&hdmi->i2c->adap, SCDC_SOURCE_VERSION,
-+ bytes);
-+ drm_scdc_set_scrambling(&hdmi->i2c->adap, 1);
-+ hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
-+ HDMI_MC_SWRSTZ);
-+ hdmi_writeb(hdmi, 1, HDMI_FC_SCRAMBLER_CTRL);
-+ } else {
-+ hdmi_writeb(hdmi, 0, HDMI_FC_SCRAMBLER_CTRL);
-+ hdmi_writeb(hdmi, (u8)~HDMI_MC_SWRSTZ_TMDSSWRST_REQ,
-+ HDMI_MC_SWRSTZ);
-+ drm_scdc_set_scrambling(&hdmi->i2c->adap, 0);
-+ }
-+ }
-+
- /* Set up horizontal active pixel width */
- hdmi_writeb(hdmi, mode->hdisplay >> 8, HDMI_FC_INHACTV1);
- hdmi_writeb(hdmi, mode->hdisplay, HDMI_FC_INHACTV0);
-diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
-index 9d90eb9..3f3c616 100644
---- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
-+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.h
-@@ -255,6 +255,7 @@
- #define HDMI_FC_MASK2 0x10DA
- #define HDMI_FC_POL2 0x10DB
- #define HDMI_FC_PRCONF 0x10E0
-+#define HDMI_FC_SCRAMBLER_CTRL 0x10E1
-
- #define HDMI_FC_GMD_STAT 0x1100
- #define HDMI_FC_GMD_EN 0x1101
-diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
-index ccb5aa8..d7cc5d0 100644
---- a/include/drm/bridge/dw_hdmi.h
-+++ b/include/drm/bridge/dw_hdmi.h
-@@ -156,6 +156,7 @@ void dw_hdmi_setup_rx_sense(struct dw_hdmi *hdmi, bool hpd, bool rx_sense);
- void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate);
- void dw_hdmi_audio_enable(struct dw_hdmi *hdmi);
- void dw_hdmi_audio_disable(struct dw_hdmi *hdmi);
-+void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi);
-
- /* PHY configuration */
- void dw_hdmi_phy_i2c_set_addr(struct dw_hdmi *hdmi, u8 address);
diff --git a/testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch b/testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch
deleted file mode 100644
index 702f0c71415..00000000000
--- a/testing/linux-amlogic/0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 68854b3c7771ad5754ad46d42f45f626ca87b4ac Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Mon, 2 Jul 2018 12:21:55 +0200
-Subject: [PATCH] drm: bridge: dw-hdmi: Use AUTO CTS setup mode when non-AHB
- audio
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 41 ++++++++++++++++++++-----------
- 1 file changed, 26 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-index 5971976..1fc1270 100644
---- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-@@ -430,8 +430,12 @@ static void hdmi_set_cts_n(struct dw_hdmi *hdmi, unsigned int cts,
- /* nshift factor = 0 */
- hdmi_modb(hdmi, 0, HDMI_AUD_CTS3_N_SHIFT_MASK, HDMI_AUD_CTS3);
-
-- hdmi_writeb(hdmi, ((cts >> 16) & HDMI_AUD_CTS3_AUDCTS19_16_MASK) |
-- HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3);
-+ /* Use Auto CTS mode with CTS is unknown */
-+ if (cts)
-+ hdmi_writeb(hdmi, ((cts >> 16) & HDMI_AUD_CTS3_AUDCTS19_16_MASK) |
-+ HDMI_AUD_CTS3_CTS_MANUAL, HDMI_AUD_CTS3);
-+ else
-+ hdmi_writeb(hdmi, 0, HDMI_AUD_CTS3);
- hdmi_writeb(hdmi, (cts >> 8) & 0xff, HDMI_AUD_CTS2);
- hdmi_writeb(hdmi, cts & 0xff, HDMI_AUD_CTS1);
-
-@@ -501,24 +505,31 @@ static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi,
- {
- unsigned long ftdms = pixel_clk;
- unsigned int n, cts;
-+ u8 config3;
- u64 tmp;
-
- n = hdmi_compute_n(sample_rate, pixel_clk);
-
-- /*
-- * Compute the CTS value from the N value. Note that CTS and N
-- * can be up to 20 bits in total, so we need 64-bit math. Also
-- * note that our TDMS clock is not fully accurate; it is accurate
-- * to kHz. This can introduce an unnecessary remainder in the
-- * calculation below, so we don't try to warn about that.
-- */
-- tmp = (u64)ftdms * n;
-- do_div(tmp, 128 * sample_rate);
-- cts = tmp;
-+ config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID);
-
-- dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n",
-- __func__, sample_rate, ftdms / 1000000, (ftdms / 1000) % 1000,
-- n, cts);
-+ if (config3 & HDMI_CONFIG3_AHBAUDDMA) {
-+ /*
-+ * Compute the CTS value from the N value. Note that CTS and N
-+ * can be up to 20 bits in total, so we need 64-bit math. Also
-+ * note that our TDMS clock is not fully accurate; it is
-+ * accurate to kHz. This can introduce an unnecessary remainder
-+ * in the calculation below, so we don't try to warn about that.
-+ */
-+ tmp = (u64)ftdms * n;
-+ do_div(tmp, 128 * sample_rate);
-+ cts = tmp;
-+
-+ dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n",
-+ __func__, sample_rate,
-+ ftdms / 1000000, (ftdms / 1000) % 1000,
-+ n, cts);
-+ } else
-+ cts = 0;
-
- spin_lock_irq(&hdmi->audio_lock);
- hdmi->audio_n = n;
diff --git a/testing/linux-amlogic/0015-drm-meson-add-HDMI-div40-TMDS-mode.patch b/testing/linux-amlogic/0015-drm-meson-add-HDMI-div40-TMDS-mode.patch
deleted file mode 100644
index 3af3749c724..00000000000
--- a/testing/linux-amlogic/0015-drm-meson-add-HDMI-div40-TMDS-mode.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From cd02f4b3e7ad491111dbd6e1eccf3db9bbc1bc81 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Mon, 12 Nov 2018 16:08:13 +0100
-Subject: [PATCH] drm/meson: add HDMI div40 TMDS mode
-
-Add support for TMDS Clock > 3.4GHz for HDMI2.0 display modes.
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/meson/meson_dw_hdmi.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-index d8c5cc3..118c49e 100644
---- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
-+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-@@ -365,7 +365,8 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data,
- unsigned int wr_clk =
- readl_relaxed(priv->io_base + _REG(VPU_HDMI_SETTING));
-
-- DRM_DEBUG_DRIVER("%d:\"%s\"\n", mode->base.id, mode->name);
-+ DRM_DEBUG_DRIVER("%d:\"%s\" div%d\n", mode->base.id, mode->name,
-+ mode->clock > 340000 ? 40 : 10);
-
- /* Enable clocks */
- regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL, 0xffff, 0x100);
-@@ -385,9 +386,17 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data,
- /* Enable normal output to PHY */
- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12));
-
-- /* TMDS pattern setup (TOFIX pattern for 4k2k scrambling) */
-- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_01, 0x001f001f);
-- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_23, 0x001f001f);
-+ /* TMDS pattern setup (TOFIX Handle the YUV420 case) */
-+ if (mode->clock > 340000) {
-+ dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_01, 0);
-+ dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_23,
-+ 0x03ff03ff);
-+ } else {
-+ dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_01,
-+ 0x001f001f);
-+ dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_23,
-+ 0x001f001f);
-+ }
-
- /* Load TMDS pattern */
- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_CNTL, 0x1);
-@@ -413,6 +422,8 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data,
- /* Disable clock, fifo, fifo_wr */
- regmap_update_bits(priv->hhi, HHI_HDMI_PHY_CNTL1, 0xf, 0);
-
-+ dw_hdmi_set_high_tmds_clock_ratio(hdmi);
-+
- msleep(100);
-
- /* Reset PHY 3 times in a row */
-@@ -562,6 +573,11 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
- mode->vdisplay, mode->vsync_start,
- mode->vsync_end, mode->vtotal, mode->type, mode->flags);
-
-+ /* If sink max TMDS clock < 340MHz, we reject the HDMI2.0 modes */
-+ if (mode->clock > 340000 &&
-+ connector->display_info.max_tmds_clock < 340000)
-+ return MODE_BAD;
-+
- /* Check against non-VIC supported modes */
- if (!vic) {
- status = meson_venc_hdmi_supported_mode(mode);
diff --git a/testing/linux-amlogic/0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch b/testing/linux-amlogic/0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
deleted file mode 100644
index 4a860acdbcf..00000000000
--- a/testing/linux-amlogic/0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b48d4a78b2c3dd2db65ac391be3e12e323b6759e Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Mon, 12 Nov 2018 16:10:07 +0100
-Subject: [PATCH] drm/meson: add support for HDMI2.0 2160p modes
-
-Now we support the TMDS Clock > 3.4GHz and support the SCDC Control
-operation in the DW-HDMI Controller, we can enable support for the
-HDMI2.0 3840x2160@60/50 RGB444 display modes.
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/meson/meson_venc.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
-index 0fbe525..1bcd642 100644
---- a/drivers/gpu/drm/meson/meson_venc.c
-+++ b/drivers/gpu/drm/meson/meson_venc.c
-@@ -848,6 +848,8 @@ struct meson_hdmi_venc_vic_mode {
- { 93, &meson_hdmi_encp_mode_2160p24 },
- { 94, &meson_hdmi_encp_mode_2160p25 },
- { 95, &meson_hdmi_encp_mode_2160p30 },
-+ { 96, &meson_hdmi_encp_mode_2160p25 },
-+ { 97, &meson_hdmi_encp_mode_2160p30 },
- { 0, NULL}, /* sentinel */
- };
-
diff --git a/testing/linux-amlogic/0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch b/testing/linux-amlogic/0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
deleted file mode 100644
index 9c36ea2b488..00000000000
--- a/testing/linux-amlogic/0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 3e7f3ec3de8753faefdeb02ed6d00cc580e6ad52 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 14 Nov 2018 17:19:36 +0100
-Subject: [PATCH] drm/bridge: dw-hdmi: add support for YUV420 output
-
-In order to support the HDMI2.0 YUV420 display modes, this patch
-adds support for the YUV420 TMDS Clock divided by 2 and the controller
-passthrough mode.
-
-This patch is based on work from Zheng Yang <zhengyang@rock-chips.com> in
-the Rockchip Linux 4.4 BSP at [1]
-
-[1] https://github.com/rockchip-linux/kernel/tree/release-4.4
-
-Cc: Zheng Yang <zhengyang@rock-chips.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 63 ++++++++++++++++++++++++-------
- 1 file changed, 50 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-index 2a30d83..c3e4ed1 100644
---- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-@@ -94,6 +94,7 @@ struct hdmi_vmode {
- unsigned int mpixelclock;
- unsigned int mpixelrepetitioninput;
- unsigned int mpixelrepetitionoutput;
-+ unsigned int mtmdsclock;
- };
-
- struct hdmi_data_info {
-@@ -549,7 +550,7 @@ static void hdmi_init_clk_regenerator(struct dw_hdmi *hdmi)
- static void hdmi_clk_regenerator_update_pixel_clock(struct dw_hdmi *hdmi)
- {
- mutex_lock(&hdmi->audio_mutex);
-- hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock,
-+ hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mtmdsclock,
- hdmi->sample_rate);
- mutex_unlock(&hdmi->audio_mutex);
- }
-@@ -558,7 +559,7 @@ void dw_hdmi_set_sample_rate(struct dw_hdmi *hdmi, unsigned int rate)
- {
- mutex_lock(&hdmi->audio_mutex);
- hdmi->sample_rate = rate;
-- hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mpixelclock,
-+ hdmi_set_clk_regenerator(hdmi, hdmi->hdmi_data.video_mode.mtmdsclock,
- hdmi->sample_rate);
- mutex_unlock(&hdmi->audio_mutex);
- }
-@@ -659,6 +660,20 @@ static bool hdmi_bus_fmt_is_yuv422(unsigned int bus_format)
- }
- }
-
-+static bool hdmi_bus_fmt_is_yuv420(unsigned int bus_format)
-+{
-+ switch (bus_format) {
-+ case MEDIA_BUS_FMT_UYYVYY8_0_5X24:
-+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30:
-+ case MEDIA_BUS_FMT_UYYVYY12_0_5X36:
-+ case MEDIA_BUS_FMT_UYYVYY16_0_5X48:
-+ return true;
-+
-+ default:
-+ return false;
-+ }
-+}
-+
- static int hdmi_bus_fmt_color_depth(unsigned int bus_format)
- {
- switch (bus_format) {
-@@ -888,7 +903,8 @@ static void hdmi_video_packetize(struct dw_hdmi *hdmi)
- u8 val, vp_conf;
-
- if (hdmi_bus_fmt_is_rgb(hdmi->hdmi_data.enc_out_bus_format) ||
-- hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_out_bus_format)) {
-+ hdmi_bus_fmt_is_yuv444(hdmi->hdmi_data.enc_out_bus_format) ||
-+ hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format)) {
- switch (hdmi_bus_fmt_color_depth(
- hdmi->hdmi_data.enc_out_bus_format)) {
- case 8:
-@@ -1029,7 +1045,7 @@ EXPORT_SYMBOL_GPL(dw_hdmi_phy_i2c_write);
-
- void dw_hdmi_set_high_tmds_clock_ratio(struct dw_hdmi *hdmi)
- {
-- unsigned long mtmdsclock = hdmi->hdmi_data.video_mode.mpixelclock;
-+ unsigned long mtmdsclock = hdmi->hdmi_data.video_mode.mtmdsclock;
-
- /* Control for TMDS Bit Period/TMDS Clock-Period Ratio */
- if (hdmi->connector.display_info.hdmi.scdc.supported) {
-@@ -1370,6 +1386,9 @@ static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
- struct hdmi_avi_infoframe frame;
- u8 val;
-
-+ if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format))
-+ is_hdmi2_sink = true;
-+
- /* Initialise info frame from DRM mode */
- drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, is_hdmi2_sink);
-
-@@ -1377,6 +1396,8 @@ static void hdmi_config_AVI(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
- frame.colorspace = HDMI_COLORSPACE_YUV444;
- else if (hdmi_bus_fmt_is_yuv422(hdmi->hdmi_data.enc_out_bus_format))
- frame.colorspace = HDMI_COLORSPACE_YUV422;
-+ else if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format))
-+ frame.colorspace = HDMI_COLORSPACE_YUV420;
- else
- frame.colorspace = HDMI_COLORSPACE_RGB;
-
-@@ -1534,15 +1555,18 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
- struct drm_hdmi_info *hdmi_info = &hdmi->connector.display_info.hdmi;
- struct hdmi_vmode *vmode = &hdmi->hdmi_data.video_mode;
- int hblank, vblank, h_de_hs, v_de_vs, hsync_len, vsync_len;
-- unsigned int vdisplay;
-+ unsigned int vdisplay, hdisplay;
-
-- vmode->mpixelclock = mode->clock * 1000;
-+ vmode->mtmdsclock = vmode->mpixelclock = mode->clock * 1000;
-
- dev_dbg(hdmi->dev, "final pixclk = %d\n", vmode->mpixelclock);
-
-+ if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format))
-+ vmode->mtmdsclock /= 2;
-+
- /* Set up HDMI_FC_INVIDCONF */
- inv_val = (hdmi->hdmi_data.hdcp_enable ||
-- vmode->mpixelclock > 340000000 ||
-+ vmode->mtmdsclock > 340000000 ||
- hdmi_info->scdc.scrambling.low_rates ?
- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_ACTIVE :
- HDMI_FC_INVIDCONF_HDCP_KEEPOUT_INACTIVE);
-@@ -1576,6 +1600,22 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
-
- hdmi_writeb(hdmi, inv_val, HDMI_FC_INVIDCONF);
-
-+ hdisplay = mode->hdisplay;
-+ hblank = mode->htotal - mode->hdisplay;
-+ h_de_hs = mode->hsync_start - mode->hdisplay;
-+ hsync_len = mode->hsync_end - mode->hsync_start;
-+
-+ /*
-+ * When we're setting a YCbCr420 mode, we need
-+ * to adjust the horizontal timing to suit.
-+ */
-+ if (hdmi_bus_fmt_is_yuv420(hdmi->hdmi_data.enc_out_bus_format)) {
-+ hdisplay /= 2;
-+ hblank /= 2;
-+ h_de_hs /= 2;
-+ hsync_len /= 2;
-+ }
-+
- vdisplay = mode->vdisplay;
- vblank = mode->vtotal - mode->vdisplay;
- v_de_vs = mode->vsync_start - mode->vdisplay;
-@@ -1594,7 +1634,7 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
-
- /* Scrambling Control */
- if (hdmi_info->scdc.supported) {
-- if (vmode->mpixelclock > 340000000 ||
-+ if (vmode->mtmdsclock > 340000000 ||
- hdmi_info->scdc.scrambling.low_rates) {
- drm_scdc_readb(&hdmi->i2c->adap, SCDC_SINK_VERSION,
- &bytes);
-@@ -1613,15 +1653,14 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
- }
-
- /* Set up horizontal active pixel width */
-- hdmi_writeb(hdmi, mode->hdisplay >> 8, HDMI_FC_INHACTV1);
-- hdmi_writeb(hdmi, mode->hdisplay, HDMI_FC_INHACTV0);
-+ hdmi_writeb(hdmi, hdisplay >> 8, HDMI_FC_INHACTV1);
-+ hdmi_writeb(hdmi, hdisplay, HDMI_FC_INHACTV0);
-
- /* Set up vertical active lines */
- hdmi_writeb(hdmi, vdisplay >> 8, HDMI_FC_INVACTV1);
- hdmi_writeb(hdmi, vdisplay, HDMI_FC_INVACTV0);
-
- /* Set up horizontal blanking pixel region width */
-- hblank = mode->htotal - mode->hdisplay;
- hdmi_writeb(hdmi, hblank >> 8, HDMI_FC_INHBLANK1);
- hdmi_writeb(hdmi, hblank, HDMI_FC_INHBLANK0);
-
-@@ -1629,7 +1668,6 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
- hdmi_writeb(hdmi, vblank, HDMI_FC_INVBLANK);
-
- /* Set up HSYNC active edge delay width (in pixel clks) */
-- h_de_hs = mode->hsync_start - mode->hdisplay;
- hdmi_writeb(hdmi, h_de_hs >> 8, HDMI_FC_HSYNCINDELAY1);
- hdmi_writeb(hdmi, h_de_hs, HDMI_FC_HSYNCINDELAY0);
-
-@@ -1637,7 +1675,6 @@ static void hdmi_av_composer(struct dw_hdmi *hdmi,
- hdmi_writeb(hdmi, v_de_vs, HDMI_FC_VSYNCINDELAY);
-
- /* Set up HSYNC active pulse width (in pixel clks) */
-- hsync_len = mode->hsync_end - mode->hsync_start;
- hdmi_writeb(hdmi, hsync_len >> 8, HDMI_FC_HSYNCINWIDTH1);
- hdmi_writeb(hdmi, hsync_len, HDMI_FC_HSYNCINWIDTH0);
-
diff --git a/testing/linux-amlogic/0017-soc-amlogic-add-meson-canvas-driver.patch b/testing/linux-amlogic/0017-soc-amlogic-add-meson-canvas-driver.patch
deleted file mode 100644
index 4bb5731f308..00000000000
--- a/testing/linux-amlogic/0017-soc-amlogic-add-meson-canvas-driver.patch
+++ /dev/null
@@ -1,314 +0,0 @@
-From 47756c823298bef3895fa2837c4b3e97062e9842 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-Date: Fri, 20 Apr 2018 13:17:07 +0200
-Subject: [PATCH] soc: amlogic: add meson-canvas driver
-
-Amlogic SoCs have a repository of 256 canvas which they use to
-describe pixel buffers.
-
-They contain metadata like width, height, block mode, endianness [..]
-
-Many IPs within those SoCs like vdec/vpu rely on those canvas to read/write
-pixels.
-
-Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
-Tested-by: Neil Armstrong <narmstrong@baylibre.com>
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- drivers/soc/amlogic/Kconfig | 7 ++
- drivers/soc/amlogic/Makefile | 1 +
- drivers/soc/amlogic/meson-canvas.c | 185 +++++++++++++++++++++++++++++++
- include/linux/soc/amlogic/meson-canvas.h | 65 +++++++++++
- 4 files changed, 258 insertions(+)
- create mode 100644 drivers/soc/amlogic/meson-canvas.c
- create mode 100644 include/linux/soc/amlogic/meson-canvas.h
-
-diff --git a/drivers/soc/amlogic/Kconfig b/drivers/soc/amlogic/Kconfig
-index b04f6e4..2f282b4 100644
---- a/drivers/soc/amlogic/Kconfig
-+++ b/drivers/soc/amlogic/Kconfig
-@@ -1,5 +1,12 @@
- menu "Amlogic SoC drivers"
-
-+config MESON_CANVAS
-+ tristate "Amlogic Meson Canvas driver"
-+ depends on ARCH_MESON || COMPILE_TEST
-+ default n
-+ help
-+ Say yes to support the canvas IP for Amlogic SoCs.
-+
- config MESON_GX_SOCINFO
- bool "Amlogic Meson GX SoC Information driver"
- depends on ARCH_MESON || COMPILE_TEST
-diff --git a/drivers/soc/amlogic/Makefile b/drivers/soc/amlogic/Makefile
-index 8fa3218..0ab16d3 100644
---- a/drivers/soc/amlogic/Makefile
-+++ b/drivers/soc/amlogic/Makefile
-@@ -1,3 +1,4 @@
-+obj-$(CONFIG_MESON_CANVAS) += meson-canvas.o
- obj-$(CONFIG_MESON_GX_SOCINFO) += meson-gx-socinfo.o
- obj-$(CONFIG_MESON_GX_PM_DOMAINS) += meson-gx-pwrc-vpu.o
- obj-$(CONFIG_MESON_MX_SOCINFO) += meson-mx-socinfo.o
-diff --git a/drivers/soc/amlogic/meson-canvas.c b/drivers/soc/amlogic/meson-canvas.c
-new file mode 100644
-index 0000000..fce33ca
---- /dev/null
-+++ b/drivers/soc/amlogic/meson-canvas.c
-@@ -0,0 +1,185 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Copyright (C) 2015 Amlogic, Inc. All rights reserved.
-+ * Copyright (C) 2014 Endless Mobile
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/module.h>
-+#include <linux/regmap.h>
-+#include <linux/soc/amlogic/meson-canvas.h>
-+#include <linux/of_address.h>
-+#include <linux/of_platform.h>
-+#include <linux/io.h>
-+
-+#define NUM_CANVAS 256
-+
-+/* DMC Registers */
-+#define DMC_CAV_LUT_DATAL 0x00
-+ #define CANVAS_WIDTH_LBIT 29
-+ #define CANVAS_WIDTH_LWID 3
-+#define DMC_CAV_LUT_DATAH 0x04
-+ #define CANVAS_WIDTH_HBIT 0
-+ #define CANVAS_HEIGHT_BIT 9
-+ #define CANVAS_WRAP_BIT 22
-+ #define CANVAS_BLKMODE_BIT 24
-+ #define CANVAS_ENDIAN_BIT 26
-+#define DMC_CAV_LUT_ADDR 0x08
-+ #define CANVAS_LUT_WR_EN BIT(9)
-+ #define CANVAS_LUT_RD_EN BIT(8)
-+
-+struct meson_canvas {
-+ struct device *dev;
-+ void __iomem *reg_base;
-+ spinlock_t lock; /* canvas device lock */
-+ u8 used[NUM_CANVAS];
-+};
-+
-+static void canvas_write(struct meson_canvas *canvas, u32 reg, u32 val)
-+{
-+ writel_relaxed(val, canvas->reg_base + reg);
-+}
-+
-+static u32 canvas_read(struct meson_canvas *canvas, u32 reg)
-+{
-+ return readl_relaxed(canvas->reg_base + reg);
-+}
-+
-+struct meson_canvas *meson_canvas_get(struct device *dev)
-+{
-+ struct device_node *canvas_node;
-+ struct platform_device *canvas_pdev;
-+
-+ canvas_node = of_parse_phandle(dev->of_node, "amlogic,canvas", 0);
-+ if (!canvas_node)
-+ return ERR_PTR(-ENODEV);
-+
-+ canvas_pdev = of_find_device_by_node(canvas_node);
-+ if (!canvas_pdev)
-+ return ERR_PTR(-EPROBE_DEFER);
-+
-+ return dev_get_drvdata(&canvas_pdev->dev);
-+}
-+EXPORT_SYMBOL_GPL(meson_canvas_get);
-+
-+int meson_canvas_config(struct meson_canvas *canvas, u8 canvas_index,
-+ u32 addr, u32 stride, u32 height,
-+ unsigned int wrap,
-+ unsigned int blkmode,
-+ unsigned int endian)
-+{
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&canvas->lock, flags);
-+ if (!canvas->used[canvas_index]) {
-+ dev_err(canvas->dev,
-+ "Trying to setup non allocated canvas %u\n",
-+ canvas_index);
-+ spin_unlock_irqrestore(&canvas->lock, flags);
-+ return -EINVAL;
-+ }
-+
-+ canvas_write(canvas, DMC_CAV_LUT_DATAL,
-+ ((addr + 7) >> 3) |
-+ (((stride + 7) >> 3) << CANVAS_WIDTH_LBIT));
-+
-+ canvas_write(canvas, DMC_CAV_LUT_DATAH,
-+ ((((stride + 7) >> 3) >> CANVAS_WIDTH_LWID) <<
-+ CANVAS_WIDTH_HBIT) |
-+ (height << CANVAS_HEIGHT_BIT) |
-+ (wrap << CANVAS_WRAP_BIT) |
-+ (blkmode << CANVAS_BLKMODE_BIT) |
-+ (endian << CANVAS_ENDIAN_BIT));
-+
-+ canvas_write(canvas, DMC_CAV_LUT_ADDR,
-+ CANVAS_LUT_WR_EN | canvas_index);
-+
-+ /* Force a read-back to make sure everything is flushed. */
-+ canvas_read(canvas, DMC_CAV_LUT_DATAH);
-+ spin_unlock_irqrestore(&canvas->lock, flags);
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(meson_canvas_config);
-+
-+int meson_canvas_alloc(struct meson_canvas *canvas, u8 *canvas_index)
-+{
-+ int i;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&canvas->lock, flags);
-+ for (i = 0; i < NUM_CANVAS; ++i) {
-+ if (!canvas->used[i]) {
-+ canvas->used[i] = 1;
-+ spin_unlock_irqrestore(&canvas->lock, flags);
-+ *canvas_index = i;
-+ return 0;
-+ }
-+ }
-+ spin_unlock_irqrestore(&canvas->lock, flags);
-+
-+ dev_err(canvas->dev, "No more canvas available\n");
-+ return -ENODEV;
-+}
-+EXPORT_SYMBOL_GPL(meson_canvas_alloc);
-+
-+int meson_canvas_free(struct meson_canvas *canvas, u8 canvas_index)
-+{
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&canvas->lock, flags);
-+ if (!canvas->used[canvas_index]) {
-+ dev_err(canvas->dev,
-+ "Trying to free unused canvas %u\n", canvas_index);
-+ spin_unlock_irqrestore(&canvas->lock, flags);
-+ return -EINVAL;
-+ }
-+ canvas->used[canvas_index] = 0;
-+ spin_unlock_irqrestore(&canvas->lock, flags);
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(meson_canvas_free);
-+
-+static int meson_canvas_probe(struct platform_device *pdev)
-+{
-+ struct resource *res;
-+ struct meson_canvas *canvas;
-+ struct device *dev = &pdev->dev;
-+
-+ canvas = devm_kzalloc(dev, sizeof(*canvas), GFP_KERNEL);
-+ if (!canvas)
-+ return -ENOMEM;
-+
-+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+ canvas->reg_base = devm_ioremap_resource(dev, res);
-+ if (IS_ERR(canvas->reg_base))
-+ return PTR_ERR(canvas->reg_base);
-+
-+ canvas->dev = dev;
-+ spin_lock_init(&canvas->lock);
-+ dev_set_drvdata(dev, canvas);
-+
-+ return 0;
-+}
-+
-+static const struct of_device_id canvas_dt_match[] = {
-+ { .compatible = "amlogic,canvas" },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, canvas_dt_match);
-+
-+static struct platform_driver meson_canvas_driver = {
-+ .probe = meson_canvas_probe,
-+ .driver = {
-+ .name = "amlogic-canvas",
-+ .of_match_table = canvas_dt_match,
-+ },
-+};
-+module_platform_driver(meson_canvas_driver);
-+
-+MODULE_DESCRIPTION("Amlogic Canvas driver");
-+MODULE_AUTHOR("Maxime Jourdan <mjourdan@baylibre.com>");
-+MODULE_LICENSE("GPL");
-diff --git a/include/linux/soc/amlogic/meson-canvas.h b/include/linux/soc/amlogic/meson-canvas.h
-new file mode 100644
-index 0000000..b4dde2f
---- /dev/null
-+++ b/include/linux/soc/amlogic/meson-canvas.h
-@@ -0,0 +1,65 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ */
-+#ifndef __SOC_MESON_CANVAS_H
-+#define __SOC_MESON_CANVAS_H
-+
-+#include <linux/kernel.h>
-+
-+#define MESON_CANVAS_WRAP_NONE 0x00
-+#define MESON_CANVAS_WRAP_X 0x01
-+#define MESON_CANVAS_WRAP_Y 0x02
-+
-+#define MESON_CANVAS_BLKMODE_LINEAR 0x00
-+#define MESON_CANVAS_BLKMODE_32x32 0x01
-+#define MESON_CANVAS_BLKMODE_64x64 0x02
-+
-+#define MESON_CANVAS_ENDIAN_SWAP16 0x1
-+#define MESON_CANVAS_ENDIAN_SWAP32 0x3
-+#define MESON_CANVAS_ENDIAN_SWAP64 0x7
-+#define MESON_CANVAS_ENDIAN_SWAP128 0xf
-+
-+struct meson_canvas;
-+
-+/**
-+ * meson_canvas_get() - get a canvas provider instance
-+ *
-+ * @dev: consumer device pointer
-+ */
-+struct meson_canvas *meson_canvas_get(struct device *dev);
-+
-+/**
-+ * meson_canvas_alloc() - take ownership of a canvas
-+ *
-+ * @canvas: canvas provider instance retrieved from meson_canvas_get()
-+ * @canvas_index: will be filled with the canvas ID
-+ */
-+int meson_canvas_alloc(struct meson_canvas *canvas, u8 *canvas_index);
-+
-+/**
-+ * meson_canvas_free() - remove ownership from a canvas
-+ *
-+ * @canvas: canvas provider instance retrieved from meson_canvas_get()
-+ * @canvas_index: canvas ID that was obtained via meson_canvas_alloc()
-+ */
-+int meson_canvas_free(struct meson_canvas *canvas, u8 canvas_index);
-+
-+/**
-+ * meson_canvas_config() - configure a canvas
-+ *
-+ * @canvas: canvas provider instance retrieved from meson_canvas_get()
-+ * @canvas_index: canvas ID that was obtained via meson_canvas_alloc()
-+ * @addr: physical address to the pixel buffer
-+ * @stride: width of the buffer
-+ * @height: height of the buffer
-+ * @wrap: undocumented
-+ * @blkmode: block mode (linear, 32x32, 64x64)
-+ * @endian: byte swapping (swap16, swap32, swap64, swap128)
-+ */
-+int meson_canvas_config(struct meson_canvas *canvas, u8 canvas_index,
-+ u32 addr, u32 stride, u32 height,
-+ unsigned int wrap, unsigned int blkmode,
-+ unsigned int endian);
-+
-+#endif
diff --git a/testing/linux-amlogic/0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch b/testing/linux-amlogic/0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
deleted file mode 100644
index b09c7c8488e..00000000000
--- a/testing/linux-amlogic/0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From b2b84d801a2e8145b2a08e0d310682fc5e88b0ad Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-Date: Fri, 20 Apr 2018 16:09:09 +0200
-Subject: [PATCH] ARM64: dts: meson-gx: add dmcbus and canvas nodes.
-
-DMC is a small memory region with various registers,
-including the ones needed for the canvas module.
-
-Reviewed-by: Jerome Brunet <jbrunet@baylibre.com>
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index 6b64b63..fb64354 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -458,6 +458,19 @@
- };
- };
-
-+ dmcbus: bus@c8838000 {
-+ compatible = "simple-bus";
-+ reg = <0x0 0xc8838000 0x0 0x400>;
-+ #address-cells = <2>;
-+ #size-cells = <2>;
-+ ranges = <0x0 0x0 0x0 0xc8838000 0x0 0x400>;
-+
-+ canvas: video-lut@48 {
-+ compatible = "amlogic,canvas";
-+ reg = <0x0 0x48 0x0 0x14>;
-+ };
-+ };
-+
- hiubus: bus@c883c000 {
- compatible = "simple-bus";
- reg = <0x0 0xc883c000 0x0 0x2000>;
diff --git a/testing/linux-amlogic/0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch b/testing/linux-amlogic/0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
deleted file mode 100644
index bc86f579892..00000000000
--- a/testing/linux-amlogic/0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 2dcf2d31652207dfe20d7606804ca3b763b7f094 Mon Sep 17 00:00:00 2001
-From: Zheng Yang <zhengyang@rock-chips.com>
-Date: Tue, 27 Jun 2017 16:22:01 +0800
-Subject: [PATCH] drm/bridge: dw-hdmi: support dynamically get input/out color
- info
-
-To get input/output bus_format/enc_format dynamically, this patch
-introduce following funstion in plat_data:
- - get_input_bus_format
- - get_output_bus_format
- - get_enc_in_encoding
- - get_enc_out_encoding
-
-Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 28 +++++++++++++++++++++-------
- include/drm/bridge/dw_hdmi.h | 5 +++++
- 2 files changed, 26 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-index c3e4ed1..6473df3 100644
---- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-@@ -1774,6 +1774,7 @@ static void hdmi_disable_overflow_interrupts(struct dw_hdmi *hdmi)
- static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
- {
- int ret;
-+ void *data = hdmi->plat_data->phy_data;
-
- hdmi_disable_overflow_interrupts(hdmi);
-
-@@ -1785,10 +1786,13 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
- dev_dbg(hdmi->dev, "CEA mode used vic=%d\n", hdmi->vic);
- }
-
-- if ((hdmi->vic == 6) || (hdmi->vic == 7) ||
-- (hdmi->vic == 21) || (hdmi->vic == 22) ||
-- (hdmi->vic == 2) || (hdmi->vic == 3) ||
-- (hdmi->vic == 17) || (hdmi->vic == 18))
-+ if (hdmi->plat_data->get_enc_out_encoding)
-+ hdmi->hdmi_data.enc_out_encoding =
-+ hdmi->plat_data->get_enc_out_encoding(data);
-+ else if ((hdmi->vic == 6) || (hdmi->vic == 7) ||
-+ (hdmi->vic == 21) || (hdmi->vic == 22) ||
-+ (hdmi->vic == 2) || (hdmi->vic == 3) ||
-+ (hdmi->vic == 17) || (hdmi->vic == 18))
- hdmi->hdmi_data.enc_out_encoding = V4L2_YCBCR_ENC_601;
- else
- hdmi->hdmi_data.enc_out_encoding = V4L2_YCBCR_ENC_709;
-@@ -1797,21 +1801,31 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode)
- hdmi->hdmi_data.video_mode.mpixelrepetitioninput = 0;
-
- /* TOFIX: Get input format from plat data or fallback to RGB888 */
-- if (hdmi->plat_data->input_bus_format)
-+ if (hdmi->plat_data->get_input_bus_format)
-+ hdmi->hdmi_data.enc_in_bus_format =
-+ hdmi->plat_data->get_input_bus_format(data);
-+ else if (hdmi->plat_data->input_bus_format)
- hdmi->hdmi_data.enc_in_bus_format =
- hdmi->plat_data->input_bus_format;
- else
- hdmi->hdmi_data.enc_in_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
-
- /* TOFIX: Get input encoding from plat data or fallback to none */
-- if (hdmi->plat_data->input_bus_encoding)
-+ if (hdmi->plat_data->get_enc_in_encoding)
-+ hdmi->hdmi_data.enc_in_encoding =
-+ hdmi->plat_data->get_enc_in_encoding(data);
-+ else if (hdmi->plat_data->input_bus_encoding)
- hdmi->hdmi_data.enc_in_encoding =
- hdmi->plat_data->input_bus_encoding;
- else
- hdmi->hdmi_data.enc_in_encoding = V4L2_YCBCR_ENC_DEFAULT;
-
- /* TOFIX: Default to RGB888 output format */
-- hdmi->hdmi_data.enc_out_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
-+ if (hdmi->plat_data->get_output_bus_format)
-+ hdmi->hdmi_data.enc_out_bus_format =
-+ hdmi->plat_data->get_output_bus_format(data);
-+ else
-+ hdmi->hdmi_data.enc_out_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
-
- hdmi->hdmi_data.pix_repet_factor = 0;
- hdmi->hdmi_data.hdcp_enable = 0;
-diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
-index d7cc5d0..27f9cce 100644
---- a/include/drm/bridge/dw_hdmi.h
-+++ b/include/drm/bridge/dw_hdmi.h
-@@ -141,6 +141,11 @@ struct dw_hdmi_plat_data {
- int (*configure_phy)(struct dw_hdmi *hdmi,
- const struct dw_hdmi_plat_data *pdata,
- unsigned long mpixelclock);
-+
-+ unsigned long (*get_input_bus_format)(void *data);
-+ unsigned long (*get_output_bus_format)(void *data);
-+ unsigned long (*get_enc_in_encoding)(void *data);
-+ unsigned long (*get_enc_out_encoding)(void *data);
- };
-
- struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
diff --git a/testing/linux-amlogic/0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch b/testing/linux-amlogic/0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
deleted file mode 100644
index 54939c84e9c..00000000000
--- a/testing/linux-amlogic/0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 94d815707144fb76f2e6f718a864f10a8d3f6306 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 14 Nov 2018 17:39:46 +0100
-Subject: [PATCH] drm/bridge: dw-hdmi: allow ycbcr420 modes for >= 0x200a
-
-Now the DW-HDMI Controller supports the HDMI2.0 modes, enable support
-for these modes in the connector if the platform supports them.
-We limit these modes to DW-HDMI IP version >= 0x200a which
-are designed to support HDMI2.0 display modes.
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 ++++++
- include/drm/bridge/dw_hdmi.h | 1 +
- 2 files changed, 7 insertions(+)
-
-diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-index 6473df3..d10277f 100644
---- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
-@@ -2575,6 +2575,12 @@ __dw_hdmi_probe(struct platform_device *pdev,
- if (hdmi->phy.ops->setup_hpd)
- hdmi->phy.ops->setup_hpd(hdmi, hdmi->phy.data);
-
-+ if (hdmi->version >= 0x200a)
-+ hdmi->connector.ycbcr_420_allowed =
-+ hdmi->plat_data->ycbcr_420_allowed;
-+ else
-+ hdmi->connector.ycbcr_420_allowed = false;
-+
- memset(&pdevinfo, 0, sizeof(pdevinfo));
- pdevinfo.parent = dev;
- pdevinfo.id = PLATFORM_DEVID_AUTO;
-diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
-index 27f9cce..c04f497a 100644
---- a/include/drm/bridge/dw_hdmi.h
-+++ b/include/drm/bridge/dw_hdmi.h
-@@ -128,6 +128,7 @@ struct dw_hdmi_plat_data {
- const struct drm_display_mode *mode);
- unsigned long input_bus_format;
- unsigned long input_bus_encoding;
-+ bool ycbcr_420_allowed;
-
- /* Vendor PHY support */
- const struct dw_hdmi_phy_ops *phy_ops;
diff --git a/testing/linux-amlogic/0020-drm-meson-Add-YUV420-output-support.patch b/testing/linux-amlogic/0020-drm-meson-Add-YUV420-output-support.patch
deleted file mode 100644
index ab69cd67c9b..00000000000
--- a/testing/linux-amlogic/0020-drm-meson-Add-YUV420-output-support.patch
+++ /dev/null
@@ -1,582 +0,0 @@
-From fb1abdc9ba8015b1a5c2a6c53ffc08fa0676db04 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Thu, 15 Nov 2018 16:41:23 +0100
-Subject: [PATCH] drm/meson: Add YUV420 output support
-
-This patch adds support for the YUV420 output from the Amlogic Meson SoCs
-Video Processing Unit to the HDMI Controller.
-
-The YUV420 is obtained by generating a YUV444 pixel stream like
-the classic HDMI display modes, but then the Video Encoder output
-can be configured to down-sample the YUV444 pixel stream to a YUV420
-stream.
-In addition if pixel stream down-sampling, the Y Cb Cr components must
-also be mapped differently to align with the HDMI2.0 specifications.
-
-This mode needs a different clock generation scheme since the TMDS PHY
-clock must match the 10x ration with the YUV420 pixel clock, but
-the video encoder must run at 2x the pixel clock.
-
-This patch adds the TMDS PHY clock value in all the video clock setup
-in order to better support these specific uses cases and switch
-to the Common Clock framework for clocks handling in the future.
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/meson/meson_dw_hdmi.c | 108 +++++++++++++++++++++++++++-----
- drivers/gpu/drm/meson/meson_vclk.c | 95 +++++++++++++++++++++-------
- drivers/gpu/drm/meson/meson_vclk.h | 7 ++-
- drivers/gpu/drm/meson/meson_venc.c | 6 +-
- drivers/gpu/drm/meson/meson_venc.h | 11 ++++
- drivers/gpu/drm/meson/meson_venc_cvbs.c | 3 +-
- 6 files changed, 184 insertions(+), 46 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-index 118c49e..0b9ecbf 100644
---- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
-+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-@@ -141,6 +141,8 @@ struct meson_dw_hdmi {
- struct regulator *hdmi_supply;
- u32 irq_stat;
- struct dw_hdmi *hdmi;
-+ unsigned long input_bus_format;
-+ unsigned long output_bus_format;
- };
- #define encoder_to_meson_dw_hdmi(x) \
- container_of(x, struct meson_dw_hdmi, encoder)
-@@ -323,25 +325,36 @@ static void dw_hdmi_set_vclk(struct meson_dw_hdmi *dw_hdmi,
- {
- struct meson_drm *priv = dw_hdmi->priv;
- int vic = drm_match_cea_mode(mode);
-+ unsigned int phy_freq;
- unsigned int vclk_freq;
- unsigned int venc_freq;
- unsigned int hdmi_freq;
-
- vclk_freq = mode->clock;
-
-+ /* For 420, pixel clock is half unlike venc clock */
-+ if (dw_hdmi->input_bus_format == MEDIA_BUS_FMT_UYYVYY8_0_5X24)
-+ vclk_freq /= 2;
-+
-+ /* TMDS clock is pixel_clock * 10 */
-+ phy_freq = vclk_freq * 10;
-+
- if (!vic) {
-- meson_vclk_setup(priv, MESON_VCLK_TARGET_DMT, vclk_freq,
-- vclk_freq, vclk_freq, false);
-+ meson_vclk_setup(priv, MESON_VCLK_TARGET_DMT, phy_freq,
-+ vclk_freq, vclk_freq, vclk_freq, false);
- return;
- }
-
-+ /* 480i/576i needs global pixel doubling */
- if (mode->flags & DRM_MODE_FLAG_DBLCLK)
- vclk_freq *= 2;
-
- venc_freq = vclk_freq;
- hdmi_freq = vclk_freq;
-
-- if (meson_venc_hdmi_venc_repeat(vic))
-+ /* VENC double pixels for 1080i, 720p and YUV420 modes */
-+ if (meson_venc_hdmi_venc_repeat(vic) ||
-+ dw_hdmi->input_bus_format == MEDIA_BUS_FMT_UYYVYY8_0_5X24)
- venc_freq *= 2;
-
- vclk_freq = max(venc_freq, hdmi_freq);
-@@ -349,11 +362,11 @@ static void dw_hdmi_set_vclk(struct meson_dw_hdmi *dw_hdmi,
- if (mode->flags & DRM_MODE_FLAG_DBLCLK)
- venc_freq /= 2;
-
-- DRM_DEBUG_DRIVER("vclk:%d venc=%d hdmi=%d enci=%d\n",
-- vclk_freq, venc_freq, hdmi_freq,
-+ DRM_DEBUG_DRIVER("vclk:%d phy=%d venc=%d hdmi=%d enci=%d\n",
-+ phy_freq, vclk_freq, venc_freq, hdmi_freq,
- priv->venc.hdmi_use_enci);
-
-- meson_vclk_setup(priv, MESON_VCLK_TARGET_HDMI, vclk_freq,
-+ meson_vclk_setup(priv, MESON_VCLK_TARGET_HDMI, phy_freq, vclk_freq,
- venc_freq, hdmi_freq, priv->venc.hdmi_use_enci);
- }
-
-@@ -387,7 +400,8 @@ static int dw_hdmi_phy_init(struct dw_hdmi *hdmi, void *data,
- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_BIST_CNTL, BIT(12));
-
- /* TMDS pattern setup (TOFIX Handle the YUV420 case) */
-- if (mode->clock > 340000) {
-+ if (mode->clock > 340000 &&
-+ dw_hdmi->input_bus_format == MEDIA_BUS_FMT_YUV8_1X24) {
- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_01, 0);
- dw_hdmi_top_write(dw_hdmi, HDMITX_TOP_TMDS_CLK_PTTN_23,
- 0x03ff03ff);
-@@ -560,6 +574,8 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
- const struct drm_display_mode *mode)
- {
- struct meson_drm *priv = connector->dev->dev_private;
-+ bool is_hdmi2_sink = connector->display_info.hdmi.scdc.supported;
-+ unsigned int phy_freq;
- unsigned int vclk_freq;
- unsigned int venc_freq;
- unsigned int hdmi_freq;
-@@ -573,9 +589,11 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
- mode->vdisplay, mode->vsync_start,
- mode->vsync_end, mode->vtotal, mode->type, mode->flags);
-
-- /* If sink max TMDS clock < 340MHz, we reject the HDMI2.0 modes */
-+ /* If sink does not support 540MHz, reject the non-420 HDMI2 modes */
- if (mode->clock > 340000 &&
-- connector->display_info.max_tmds_clock < 340000)
-+ connector->display_info.max_tmds_clock < 340000 &&
-+ !drm_mode_is_420_only(&connector->display_info, mode) &&
-+ !drm_mode_is_420_also(&connector->display_info, mode))
- return MODE_BAD;
-
- /* Check against non-VIC supported modes */
-@@ -591,6 +609,15 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
-
- vclk_freq = mode->clock;
-
-+ /* For 420, pixel clock is half unlike venc clock */
-+ if (drm_mode_is_420_only(&connector->display_info, mode) ||
-+ (!is_hdmi2_sink &&
-+ drm_mode_is_420_also(&connector->display_info, mode)))
-+ vclk_freq /= 2;
-+
-+ /* TMDS clock is pixel_clock * 10 */
-+ phy_freq = vclk_freq * 10;
-+
- /* 480i/576i needs global pixel doubling */
- if (mode->flags & DRM_MODE_FLAG_DBLCLK)
- vclk_freq *= 2;
-@@ -598,8 +625,11 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
- venc_freq = vclk_freq;
- hdmi_freq = vclk_freq;
-
-- /* VENC double pixels for 1080i and 720p modes */
-- if (meson_venc_hdmi_venc_repeat(vic))
-+ /* VENC double pixels for 1080i, 720p and YUV420 modes */
-+ if (meson_venc_hdmi_venc_repeat(vic) ||
-+ drm_mode_is_420_only(&connector->display_info, mode) ||
-+ (!is_hdmi2_sink &&
-+ drm_mode_is_420_also(&connector->display_info, mode)))
- venc_freq *= 2;
-
- vclk_freq = max(venc_freq, hdmi_freq);
-@@ -607,10 +637,10 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
- if (mode->flags & DRM_MODE_FLAG_DBLCLK)
- venc_freq /= 2;
-
-- dev_dbg(connector->dev->dev, "%s: vclk:%d venc=%d hdmi=%d\n", __func__,
-- vclk_freq, venc_freq, hdmi_freq);
-+ dev_dbg(connector->dev->dev, "%s: vclk:%d phy=%d venc=%d hdmi=%d\n",
-+ __func__, phy_freq, vclk_freq, venc_freq, hdmi_freq);
-
-- return meson_vclk_vic_supported_freq(vclk_freq);
-+ return meson_vclk_vic_supported_freq(phy_freq, vclk_freq);
- }
-
- /* Encoder */
-@@ -628,6 +658,21 @@ static int meson_venc_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
- struct drm_crtc_state *crtc_state,
- struct drm_connector_state *conn_state)
- {
-+ struct meson_dw_hdmi *dw_hdmi = encoder_to_meson_dw_hdmi(encoder);
-+ struct drm_display_info *info = &conn_state->connector->display_info;
-+ struct drm_display_mode *mode = &crtc_state->mode;
-+ bool is_hdmi2_sink =
-+ conn_state->connector->display_info.hdmi.scdc.supported;
-+
-+ if (drm_mode_is_420_only(info, mode) ||
-+ (!is_hdmi2_sink && drm_mode_is_420_also(info, mode))) {
-+ dw_hdmi->input_bus_format = MEDIA_BUS_FMT_UYYVYY8_0_5X24;
-+ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_UYYVYY8_0_5X24;
-+ } else {
-+ dw_hdmi->input_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
-+ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
-+ }
-+
- return 0;
- }
-
-@@ -665,18 +710,30 @@ static void meson_venc_hdmi_encoder_mode_set(struct drm_encoder *encoder,
- struct meson_dw_hdmi *dw_hdmi = encoder_to_meson_dw_hdmi(encoder);
- struct meson_drm *priv = dw_hdmi->priv;
- int vic = drm_match_cea_mode(mode);
-+ unsigned int ycrcb_map = MESON_VENC_MAP_CB_Y_CR;
-+ bool yuv420_mode = false;
-
- DRM_DEBUG_DRIVER("%d:\"%s\" vic %d\n",
- mode->base.id, mode->name, vic);
-
-+ if (dw_hdmi->input_bus_format == MEDIA_BUS_FMT_UYYVYY8_0_5X24) {
-+ ycrcb_map = MESON_VENC_MAP_CR_Y_CB;
-+ yuv420_mode = true;
-+ }
-+
- /* VENC + VENC-DVI Mode setup */
-- meson_venc_hdmi_mode_set(priv, vic, mode);
-+ meson_venc_hdmi_mode_set(priv, vic, ycrcb_map, yuv420_mode, mode);
-
- /* VCLK Set clock */
- dw_hdmi_set_vclk(dw_hdmi, mode);
-
-- /* Setup YUV444 to HDMI-TX, no 10bit diphering */
-- writel_relaxed(0, priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
-+ if (dw_hdmi->input_bus_format == MEDIA_BUS_FMT_UYYVYY8_0_5X24)
-+ /* Setup YUV420 to HDMI-TX, no 10bit diphering */
-+ writel_relaxed(2 | (2 << 2),
-+ priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
-+ else
-+ /* Setup YUV444 to HDMI-TX, no 10bit diphering */
-+ writel_relaxed(0, priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
- }
-
- static const struct drm_encoder_helper_funcs
-@@ -714,6 +771,20 @@ static const struct regmap_config meson_dw_hdmi_regmap_config = {
- .max_register = 0x10000,
- };
-
-+static unsigned long meson_dw_hdmi_get_in_bus_format(void *data)
-+{
-+ struct meson_dw_hdmi *dw_hdmi = (struct meson_dw_hdmi *)data;
-+
-+ return dw_hdmi->input_bus_format;
-+}
-+
-+static unsigned long meson_dw_hdmi_get_out_bus_format(void *data)
-+{
-+ struct meson_dw_hdmi *dw_hdmi = (struct meson_dw_hdmi *)data;
-+
-+ return dw_hdmi->output_bus_format;
-+}
-+
- static bool meson_hdmi_connector_is_available(struct device *dev)
- {
- struct device_node *ep, *remote;
-@@ -890,6 +961,9 @@ static int meson_dw_hdmi_bind(struct device *dev, struct device *master,
- dw_plat_data->phy_data = meson_dw_hdmi;
- dw_plat_data->input_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
- dw_plat_data->input_bus_encoding = V4L2_YCBCR_ENC_709;
-+ dw_plat_data->get_input_bus_format = meson_dw_hdmi_get_in_bus_format;
-+ dw_plat_data->get_output_bus_format = meson_dw_hdmi_get_out_bus_format;
-+ dw_plat_data->ycbcr_420_allowed = true;
-
- platform_set_drvdata(pdev, meson_dw_hdmi);
-
-diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c
-index 5accceb..27c9c5e 100644
---- a/drivers/gpu/drm/meson/meson_vclk.c
-+++ b/drivers/gpu/drm/meson/meson_vclk.c
-@@ -337,12 +337,17 @@ enum {
- /* 2970 /1 /1 /1 /5 /2 => /1 /1 */
- MESON_VCLK_HDMI_297000,
- /* 5940 /1 /1 /2 /5 /1 => /1 /1 */
-- MESON_VCLK_HDMI_594000
-+ MESON_VCLK_HDMI_594000,
-+/* 2970 /1 /1 /1 /5 /1 => /1 /2 */
-+ MESON_VCLK_HDMI_594000_YUV420,
- };
-
- struct meson_vclk_params {
-+ unsigned int pll_freq;
-+ unsigned int phy_freq;
-+ unsigned int vclk_freq;
-+ unsigned int venc_freq;
- unsigned int pixel_freq;
-- unsigned int pll_base_freq;
- unsigned int pll_od1;
- unsigned int pll_od2;
- unsigned int pll_od3;
-@@ -350,8 +355,11 @@ struct meson_vclk_params {
- unsigned int vclk_div;
- } params[] = {
- [MESON_VCLK_HDMI_ENCI_54000] = {
-+ .pll_freq = 4320000,
-+ .phy_freq = 270000,
-+ .vclk_freq = 54000,
-+ .venc_freq = 54000,
- .pixel_freq = 54000,
-- .pll_base_freq = 4320000,
- .pll_od1 = 4,
- .pll_od2 = 4,
- .pll_od3 = 1,
-@@ -359,8 +367,11 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_DDR_54000] = {
-- .pixel_freq = 54000,
-- .pll_base_freq = 4320000,
-+ .pll_freq = 4320000,
-+ .phy_freq = 270000,
-+ .vclk_freq = 54000,
-+ .venc_freq = 54000,
-+ .pixel_freq = 27000,
- .pll_od1 = 4,
- .pll_od2 = 4,
- .pll_od3 = 1,
-@@ -368,8 +379,11 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_DDR_148500] = {
-- .pixel_freq = 148500,
-- .pll_base_freq = 2970000,
-+ .pll_freq = 2970000,
-+ .phy_freq = 742500,
-+ .vclk_freq = 148500,
-+ .venc_freq = 148500,
-+ .pixel_freq = 74250,
- .pll_od1 = 4,
- .pll_od2 = 1,
- .pll_od3 = 1,
-@@ -377,8 +391,11 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_74250] = {
-+ .pll_freq = 2970000,
-+ .phy_freq = 742500,
-+ .vclk_freq = 74250,
-+ .venc_freq = 74250,
- .pixel_freq = 74250,
-- .pll_base_freq = 2970000,
- .pll_od1 = 2,
- .pll_od2 = 2,
- .pll_od3 = 2,
-@@ -386,8 +403,11 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_148500] = {
-+ .pll_freq = 2970000,
-+ .phy_freq = 1485000,
-+ .vclk_freq = 148500,
-+ .venc_freq = 148500,
- .pixel_freq = 148500,
-- .pll_base_freq = 2970000,
- .pll_od1 = 1,
- .pll_od2 = 2,
- .pll_od3 = 2,
-@@ -395,8 +415,11 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_297000] = {
-+ .pll_freq = 2970000,
-+ .phy_freq = 2970000,
-+ .venc_freq = 297000,
-+ .vclk_freq = 297000,
- .pixel_freq = 297000,
-- .pll_base_freq = 2970000,
- .pll_od1 = 1,
- .pll_od2 = 1,
- .pll_od3 = 1,
-@@ -404,14 +427,29 @@ struct meson_vclk_params {
- .vclk_div = 2,
- },
- [MESON_VCLK_HDMI_594000] = {
-+ .pll_freq = 5940000,
-+ .phy_freq = 5940000,
-+ .venc_freq = 594000,
-+ .vclk_freq = 594000,
- .pixel_freq = 594000,
-- .pll_base_freq = 5940000,
- .pll_od1 = 1,
- .pll_od2 = 1,
- .pll_od3 = 2,
- .vid_pll_div = VID_PLL_DIV_5,
- .vclk_div = 1,
- },
-+ [MESON_VCLK_HDMI_594000_YUV420] = {
-+ .pll_freq = 2970000,
-+ .phy_freq = 2970000,
-+ .venc_freq = 594000,
-+ .vclk_freq = 594000,
-+ .pixel_freq = 297000,
-+ .pll_od1 = 1,
-+ .pll_od2 = 1,
-+ .pll_od3 = 1,
-+ .vid_pll_div = VID_PLL_DIV_5,
-+ .vclk_div = 1,
-+ },
- { /* sentinel */ },
- };
-
-@@ -616,6 +654,7 @@ static void meson_hdmi_pll_generic_set(struct meson_drm *priv,
- unsigned int od, m, frac, od1, od2, od3;
-
- if (meson_hdmi_pll_find_params(priv, pll_freq, &m, &frac, &od)) {
-+ /* OD2 goes to the PHY, and needs to be *10, so keep OD3=1 */
- od3 = 1;
- if (od < 4) {
- od1 = 2;
-@@ -638,21 +677,28 @@ static void meson_hdmi_pll_generic_set(struct meson_drm *priv,
- }
-
- enum drm_mode_status
--meson_vclk_vic_supported_freq(unsigned int freq)
-+meson_vclk_vic_supported_freq(unsigned int phy_freq,
-+ unsigned int vclk_freq)
- {
- int i;
-
-- DRM_DEBUG_DRIVER("freq = %d\n", freq);
-+ DRM_DEBUG_DRIVER("phy_freq = %d vclk_freq = %d\n",
-+ phy_freq, vclk_freq);
-
- for (i = 0 ; params[i].pixel_freq ; ++i) {
- DRM_DEBUG_DRIVER("i = %d pixel_freq = %d alt = %d\n",
- i, params[i].pixel_freq,
- FREQ_1000_1001(params[i].pixel_freq));
-+ DRM_DEBUG_DRIVER("i = %d phy_freq = %d alt = %d\n",
-+ i, params[i].phy_freq,
-+ FREQ_1000_1001(params[i].phy_freq/10)*10);
- /* Match strict frequency */
-- if (freq == params[i].pixel_freq)
-+ if (phy_freq == params[i].phy_freq &&
-+ vclk_freq == params[i].vclk_freq)
- return MODE_OK;
- /* Match 1000/1001 variant */
-- if (freq == FREQ_1000_1001(params[i].pixel_freq))
-+ if (phy_freq == (FREQ_1000_1001(params[i].phy_freq/10)*10) &&
-+ vclk_freq == FREQ_1000_1001(params[i].vclk_freq))
- return MODE_OK;
- }
-
-@@ -666,7 +712,7 @@ static void meson_vclk_set(struct meson_drm *priv, unsigned int pll_base_freq,
- unsigned int hdmi_tx_div, unsigned int venc_div,
- bool hdmi_use_enci, bool vic_alternate_clock)
- {
-- unsigned int m, frac;
-+ unsigned int m = 0, frac = 0;
-
- /* Set HDMI-TX sys clock */
- regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL,
-@@ -863,8 +909,9 @@ static void meson_vclk_set(struct meson_drm *priv, unsigned int pll_base_freq,
- }
-
- void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
-- unsigned int vclk_freq, unsigned int venc_freq,
-- unsigned int dac_freq, bool hdmi_use_enci)
-+ unsigned int phy_freq, unsigned int vclk_freq,
-+ unsigned int venc_freq, unsigned int dac_freq,
-+ bool hdmi_use_enci)
- {
- bool vic_alternate_clock = false;
- unsigned int freq;
-@@ -883,7 +930,7 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- * - venc_div = 1
- * - encp encoder
- */
-- meson_vclk_set(priv, vclk_freq * 10, 0, 0, 0,
-+ meson_vclk_set(priv, phy_freq, 0, 0, 0,
- VID_PLL_DIV_5, 2, 1, 1, false, false);
- return;
- }
-@@ -905,9 +952,11 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- }
-
- for (freq = 0 ; params[freq].pixel_freq ; ++freq) {
-- if (vclk_freq == params[freq].pixel_freq ||
-- vclk_freq == FREQ_1000_1001(params[freq].pixel_freq)) {
-- if (vclk_freq != params[freq].pixel_freq)
-+ if ((phy_freq == params[freq].phy_freq ||
-+ phy_freq == FREQ_1000_1001(params[freq].phy_freq/10)*10) &&
-+ (vclk_freq == params[freq].vclk_freq ||
-+ vclk_freq == FREQ_1000_1001(params[freq].vclk_freq))) {
-+ if (vclk_freq != params[freq].vclk_freq)
- vic_alternate_clock = true;
- else
- vic_alternate_clock = false;
-@@ -936,7 +985,7 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- return;
- }
-
-- meson_vclk_set(priv, params[freq].pll_base_freq,
-+ meson_vclk_set(priv, params[freq].pll_freq,
- params[freq].pll_od1, params[freq].pll_od2,
- params[freq].pll_od3, params[freq].vid_pll_div,
- params[freq].vclk_div, hdmi_tx_div, venc_div,
-diff --git a/drivers/gpu/drm/meson/meson_vclk.h b/drivers/gpu/drm/meson/meson_vclk.h
-index 4bd8752..c4d19dd 100644
---- a/drivers/gpu/drm/meson/meson_vclk.h
-+++ b/drivers/gpu/drm/meson/meson_vclk.h
-@@ -33,10 +33,11 @@ enum {
- enum drm_mode_status
- meson_vclk_dmt_supported_freq(struct meson_drm *priv, unsigned int freq);
- enum drm_mode_status
--meson_vclk_vic_supported_freq(unsigned int freq);
-+meson_vclk_vic_supported_freq(unsigned int phy_freq, unsigned int vclk_freq);
-
- void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
-- unsigned int vclk_freq, unsigned int venc_freq,
-- unsigned int dac_freq, bool hdmi_use_enci);
-+ unsigned int phy_freq, unsigned int vclk_freq,
-+ unsigned int venc_freq, unsigned int dac_freq,
-+ bool hdmi_use_enci);
-
- #endif /* __MESON_VCLK_H */
-diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
-index 1bcd642..ab72ddd 100644
---- a/drivers/gpu/drm/meson/meson_venc.c
-+++ b/drivers/gpu/drm/meson/meson_venc.c
-@@ -956,6 +956,8 @@ bool meson_venc_hdmi_venc_repeat(int vic)
- EXPORT_SYMBOL_GPL(meson_venc_hdmi_venc_repeat);
-
- void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
-+ unsigned int ycrcb_map,
-+ bool yuv420_mode,
- struct drm_display_mode *mode)
- {
- union meson_hdmi_venc_mode *vmode = NULL;
-@@ -1505,8 +1507,8 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
- writel_relaxed((use_enci ? 1 : 2) |
- (mode->flags & DRM_MODE_FLAG_PHSYNC ? 1 << 2 : 0) |
- (mode->flags & DRM_MODE_FLAG_PVSYNC ? 1 << 3 : 0) |
-- 4 << 5 |
-- (venc_repeat ? 1 << 8 : 0) |
-+ (ycrcb_map << 5) |
-+ (venc_repeat || yuv420_mode ? 1 << 8 : 0) |
- (hdmi_repeat ? 1 << 12 : 0),
- priv->io_base + _REG(VPU_HDMI_SETTING));
-
-diff --git a/drivers/gpu/drm/meson/meson_venc.h b/drivers/gpu/drm/meson/meson_venc.h
-index 97eaebb..5580bf3 100644
---- a/drivers/gpu/drm/meson/meson_venc.h
-+++ b/drivers/gpu/drm/meson/meson_venc.h
-@@ -33,6 +33,15 @@ enum {
- MESON_VENC_MODE_HDMI,
- };
-
-+enum {
-+ MESON_VENC_MAP_CR_Y_CB = 0,
-+ MESON_VENC_MAP_Y_CB_CR,
-+ MESON_VENC_MAP_Y_CR_CB,
-+ MESON_VENC_MAP_CB_CR_Y,
-+ MESON_VENC_MAP_CB_Y_CR,
-+ MESON_VENC_MAP_CR_CB_Y,
-+};
-+
- struct meson_cvbs_enci_mode {
- unsigned int mode_tag;
- unsigned int hso_begin; /* HSO begin position */
-@@ -70,6 +79,8 @@ extern struct meson_cvbs_enci_mode meson_cvbs_enci_ntsc;
- void meson_venci_cvbs_mode_set(struct meson_drm *priv,
- struct meson_cvbs_enci_mode *mode);
- void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
-+ unsigned int ycrcb_map,
-+ bool yuv420_mode,
- struct drm_display_mode *mode);
- unsigned int meson_venci_get_field(struct meson_drm *priv);
-
-diff --git a/drivers/gpu/drm/meson/meson_venc_cvbs.c b/drivers/gpu/drm/meson/meson_venc_cvbs.c
-index f7945ba..38a1117 100644
---- a/drivers/gpu/drm/meson/meson_venc_cvbs.c
-+++ b/drivers/gpu/drm/meson/meson_venc_cvbs.c
-@@ -207,7 +207,8 @@ static void meson_venc_cvbs_encoder_mode_set(struct drm_encoder *encoder,
- /* Setup 27MHz vclk2 for ENCI and VDAC */
- meson_vclk_setup(priv, MESON_VCLK_TARGET_CVBS,
- MESON_VCLK_CVBS, MESON_VCLK_CVBS,
-- MESON_VCLK_CVBS, true);
-+ MESON_VCLK_CVBS, MESON_VCLK_CVBS,
-+ true);
- break;
- }
- }
diff --git a/testing/linux-amlogic/0020-drm-meson-Use-optional-canvas-provider.patch b/testing/linux-amlogic/0020-drm-meson-Use-optional-canvas-provider.patch
deleted file mode 100644
index 3988b698554..00000000000
--- a/testing/linux-amlogic/0020-drm-meson-Use-optional-canvas-provider.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From 21a926d5d6a2973c1a1665482accac7548c1a67d Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Mon, 15 Oct 2018 14:37:18 +0200
-Subject: [PATCH] drm/meson: Use optional canvas provider
-
-This is the first step into converting the meson/drm driver to use
-the canvas module.
-
-If a canvas provider node is detected in DT, use it. Otherwise,
-fall back to what is currently being done.
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- drivers/gpu/drm/meson/Kconfig | 1 +
- drivers/gpu/drm/meson/meson_crtc.c | 14 +++++++----
- drivers/gpu/drm/meson/meson_drv.c | 46 +++++++++++++++++++++++--------------
- drivers/gpu/drm/meson/meson_drv.h | 4 ++++
- drivers/gpu/drm/meson/meson_plane.c | 8 ++++++-
- 5 files changed, 51 insertions(+), 22 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/Kconfig b/drivers/gpu/drm/meson/Kconfig
-index 02d400b..8929058 100644
---- a/drivers/gpu/drm/meson/Kconfig
-+++ b/drivers/gpu/drm/meson/Kconfig
-@@ -7,6 +7,7 @@ config DRM_MESON
- select DRM_GEM_CMA_HELPER
- select VIDEOMODE_HELPERS
- select REGMAP_MMIO
-+ select MESON_CANVAS
-
- config DRM_MESON_DW_HDMI
- tristate "HDMI Synopsys Controller support for Amlogic Meson Display"
-diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c
-index 7c0bdc8..8744244 100644
---- a/drivers/gpu/drm/meson/meson_crtc.c
-+++ b/drivers/gpu/drm/meson/meson_crtc.c
-@@ -197,10 +197,16 @@ void meson_crtc_irq(struct meson_drm *priv)
- } else
- meson_vpp_disable_interlace_vscaler_osd1(priv);
-
-- meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1,
-- priv->viu.osd1_addr, priv->viu.osd1_stride,
-- priv->viu.osd1_height, MESON_CANVAS_WRAP_NONE,
-- MESON_CANVAS_BLKMODE_LINEAR);
-+ if (priv->canvas)
-+ meson_canvas_config(priv->canvas, priv->canvas_id_osd1,
-+ priv->viu.osd1_addr, priv->viu.osd1_stride,
-+ priv->viu.osd1_height, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR, 0);
-+ else
-+ meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1,
-+ priv->viu.osd1_addr, priv->viu.osd1_stride,
-+ priv->viu.osd1_height, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR);
-
- /* Enable OSD1 */
- writel_bits_relaxed(VPP_OSD1_POSTBLEND, VPP_OSD1_POSTBLEND,
-diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
-index d344312..b39c38c 100644
---- a/drivers/gpu/drm/meson/meson_drv.c
-+++ b/drivers/gpu/drm/meson/meson_drv.c
-@@ -216,24 +216,33 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
- goto free_drm;
- }
-
-- res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dmc");
-- if (!res) {
-- ret = -EINVAL;
-- goto free_drm;
-- }
-- /* Simply ioremap since it may be a shared register zone */
-- regs = devm_ioremap(dev, res->start, resource_size(res));
-- if (!regs) {
-- ret = -EADDRNOTAVAIL;
-- goto free_drm;
-- }
-+ priv->canvas = meson_canvas_get(dev);
-+ if (!IS_ERR(priv->canvas)) {
-+ ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_osd1);
-+ if (ret)
-+ goto free_drm;
-+ } else {
-+ priv->canvas = NULL;
-
-- priv->dmc = devm_regmap_init_mmio(dev, regs,
-- &meson_regmap_config);
-- if (IS_ERR(priv->dmc)) {
-- dev_err(&pdev->dev, "Couldn't create the DMC regmap\n");
-- ret = PTR_ERR(priv->dmc);
-- goto free_drm;
-+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dmc");
-+ if (!res) {
-+ ret = -EINVAL;
-+ goto free_drm;
-+ }
-+ /* Simply ioremap since it may be a shared register zone */
-+ regs = devm_ioremap(dev, res->start, resource_size(res));
-+ if (!regs) {
-+ ret = -EADDRNOTAVAIL;
-+ goto free_drm;
-+ }
-+
-+ priv->dmc = devm_regmap_init_mmio(dev, regs,
-+ &meson_regmap_config);
-+ if (IS_ERR(priv->dmc)) {
-+ dev_err(&pdev->dev, "Couldn't create the DMC regmap\n");
-+ ret = PTR_ERR(priv->dmc);
-+ goto free_drm;
-+ }
- }
-
- priv->vsync_irq = platform_get_irq(pdev, 0);
-@@ -315,6 +324,9 @@ static void meson_drv_unbind(struct device *dev)
- struct drm_device *drm = dev_get_drvdata(dev);
- struct meson_drm *priv = drm->dev_private;
-
-+ if (priv->canvas)
-+ meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
-+
- drm_dev_unregister(drm);
- drm_kms_helper_poll_fini(drm);
- drm_fbdev_cma_fini(priv->fbdev);
-diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
-index 8450d6ac..728d0ca 100644
---- a/drivers/gpu/drm/meson/meson_drv.h
-+++ b/drivers/gpu/drm/meson/meson_drv.h
-@@ -22,6 +22,7 @@
- #include <linux/platform_device.h>
- #include <linux/regmap.h>
- #include <linux/of.h>
-+#include <linux/soc/amlogic/meson-canvas.h>
- #include <drm/drmP.h>
-
- struct meson_drm {
-@@ -31,6 +32,9 @@ struct meson_drm {
- struct regmap *dmc;
- int vsync_irq;
-
-+ struct meson_canvas *canvas;
-+ u8 canvas_id_osd1;
-+
- struct drm_device *drm;
- struct drm_crtc *crtc;
- struct drm_fbdev_cma *fbdev;
-diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
-index 12c80df..51bec8e 100644
---- a/drivers/gpu/drm/meson/meson_plane.c
-+++ b/drivers/gpu/drm/meson/meson_plane.c
-@@ -90,6 +90,7 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- .y2 = state->crtc_y + state->crtc_h,
- };
- unsigned long flags;
-+ u8 canvas_id_osd1;
-
- /*
- * Update Coordinates
-@@ -104,8 +105,13 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- (0xFF << OSD_GLOBAL_ALPHA_SHIFT) |
- OSD_BLK0_ENABLE;
-
-+ if (priv->canvas)
-+ canvas_id_osd1 = priv->canvas_id_osd1;
-+ else
-+ canvas_id_osd1 = MESON_CANVAS_ID_OSD1;
-+
- /* Set up BLK0 to point to the right canvas */
-- priv->viu.osd1_blk0_cfg[0] = ((MESON_CANVAS_ID_OSD1 << OSD_CANVAS_SEL) |
-+ priv->viu.osd1_blk0_cfg[0] = ((canvas_id_osd1 << OSD_CANVAS_SEL) |
- OSD_ENDIANNESS_LE);
-
- /* On GXBB, Use the old non-HDR RGB2YUV converter */
diff --git a/testing/linux-amlogic/0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch b/testing/linux-amlogic/0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
deleted file mode 100644
index fa25f46426a..00000000000
--- a/testing/linux-amlogic/0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 7d3414ae548dd7d6e7caad845322b0dedcf05cb1 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Mon, 15 Oct 2018 14:38:24 +0200
-Subject: [PATCH] arm64: dts: meson-gx: Add canvas provider node to the vpu
-
-Allows the vpu driver to optionally use a canvas provider node.
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index fb64354..5012607 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -540,6 +540,7 @@
- interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
- #address-cells = <1>;
- #size-cells = <0>;
-+ amlogic,canvas = <&canvas>;
-
- /* CVBS VDAC output port */
- cvbs_vdac_port: port@0 {
diff --git a/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch b/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
deleted file mode 100644
index 50aa112db25..00000000000
--- a/testing/linux-amlogic/0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c9cf1e80259276c3da76bc03ab0aaa9dfac481ae Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Sun, 18 Nov 2018 14:06:11 +0100
-Subject: [PATCH] drm/meson: Output in YUV444 if sink supports it
-
-With the YUV420 handling, we can no dynamically setup the HDMI output
-pixel format depending on the mode and connector info.
-So now, we can output in YUV444, which is the native video pipeline
-format, directly the the HDMI Sink it it's supported, without
-involving the HDMI Controller CSC.
-
----
- drivers/gpu/drm/meson/meson_dw_hdmi.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-index 0b9ecbf..6df124c 100644
---- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
-+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-@@ -670,7 +670,10 @@ static int meson_venc_hdmi_encoder_atomic_check(struct drm_encoder *encoder,
- dw_hdmi->output_bus_format = MEDIA_BUS_FMT_UYYVYY8_0_5X24;
- } else {
- dw_hdmi->input_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
-- dw_hdmi->output_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
-+ if (info->color_formats & DRM_COLOR_FORMAT_YCRCB444)
-+ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_YUV8_1X24;
-+ else
-+ dw_hdmi->output_bus_format = MEDIA_BUS_FMT_RGB888_1X24;
- }
-
- return 0;
diff --git a/testing/linux-amlogic/0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch b/testing/linux-amlogic/0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch
deleted file mode 100644
index 704b26c8786..00000000000
--- a/testing/linux-amlogic/0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch
+++ /dev/null
@@ -1,1258 +0,0 @@
-From cfcbd82639be569a7ef6f71e991d7506b5e372ab Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Thu, 2 Aug 2018 10:00:01 +0200
-Subject: [PATCH] drm/meson: Support Overlay plane for video rendering
-
-The Amlogic Meson GX SoCs support an Overlay plane behind the primary
-plane for video rendering.
-
-This Overlay plane support various YUV layouts :
-- YUYV
-- NV12 / NV21
-- YUV444 / 422 / 420 / 411 / 410
-
-The scaler supports a wide range of scaling ratios, but for simplicity,
-plane atomic check limits the scaling from x5 to /5 in vertical and
-horizontal scaling.
-
-The z-order is fixed and always behind the primary plane and cannot be changed.
-
-The scaling parameter algorithm was taken from the Amlogic vendor kernel
-code and rewritten to match the atomic universal plane requirements.
-
-The video rendering using this overlay plane support has been tested using
-the new Kodi DRM-KMS Prime rendering path along the in-review V4L2 Mem2Mem
-Hardware Video Decoder up to 3840x2160 NV12 frames on various display modes.
-
----
- drivers/gpu/drm/meson/Makefile | 2 +-
- drivers/gpu/drm/meson/meson_canvas.c | 7 +-
- drivers/gpu/drm/meson/meson_canvas.h | 11 +-
- drivers/gpu/drm/meson/meson_crtc.c | 216 +++++++++++-
- drivers/gpu/drm/meson/meson_drv.c | 29 +-
- drivers/gpu/drm/meson/meson_drv.h | 52 +++
- drivers/gpu/drm/meson/meson_overlay.c | 586 ++++++++++++++++++++++++++++++++
- drivers/gpu/drm/meson/meson_overlay.h | 14 +
- drivers/gpu/drm/meson/meson_registers.h | 3 +
- drivers/gpu/drm/meson/meson_viu.c | 15 +
- drivers/gpu/drm/meson/meson_vpp.c | 44 ++-
- 11 files changed, 971 insertions(+), 8 deletions(-)
- create mode 100644 drivers/gpu/drm/meson/meson_overlay.c
- create mode 100644 drivers/gpu/drm/meson/meson_overlay.h
-
-diff --git a/drivers/gpu/drm/meson/Makefile b/drivers/gpu/drm/meson/Makefile
-index c5c4cc3..7709f2f 100644
---- a/drivers/gpu/drm/meson/Makefile
-+++ b/drivers/gpu/drm/meson/Makefile
-@@ -1,5 +1,5 @@
- meson-drm-y := meson_drv.o meson_plane.o meson_crtc.o meson_venc_cvbs.o
--meson-drm-y += meson_viu.o meson_vpp.o meson_venc.o meson_vclk.o meson_canvas.o
-+meson-drm-y += meson_viu.o meson_vpp.o meson_venc.o meson_vclk.o meson_canvas.o meson_overlay.o
-
- obj-$(CONFIG_DRM_MESON) += meson-drm.o
- obj-$(CONFIG_DRM_MESON_DW_HDMI) += meson_dw_hdmi.o
-diff --git a/drivers/gpu/drm/meson/meson_canvas.c b/drivers/gpu/drm/meson/meson_canvas.c
-index 08f6073..5de11aa 100644
---- a/drivers/gpu/drm/meson/meson_canvas.c
-+++ b/drivers/gpu/drm/meson/meson_canvas.c
-@@ -39,6 +39,7 @@
- #define CANVAS_WIDTH_HBIT 0
- #define CANVAS_HEIGHT_BIT 9
- #define CANVAS_BLKMODE_BIT 24
-+#define CANVAS_ENDIAN_BIT 26
- #define DMC_CAV_LUT_ADDR 0x50 /* 0x14 offset in data sheet */
- #define CANVAS_LUT_WR_EN (0x2 << 8)
- #define CANVAS_LUT_RD_EN (0x1 << 8)
-@@ -47,7 +48,8 @@ void meson_canvas_setup(struct meson_drm *priv,
- uint32_t canvas_index, uint32_t addr,
- uint32_t stride, uint32_t height,
- unsigned int wrap,
-- unsigned int blkmode)
-+ unsigned int blkmode,
-+ unsigned int endian)
- {
- unsigned int val;
-
-@@ -60,7 +62,8 @@ void meson_canvas_setup(struct meson_drm *priv,
- CANVAS_WIDTH_HBIT) |
- (height << CANVAS_HEIGHT_BIT) |
- (wrap << 22) |
-- (blkmode << CANVAS_BLKMODE_BIT));
-+ (blkmode << CANVAS_BLKMODE_BIT) |
-+ (endian << CANVAS_ENDIAN_BIT));
-
- regmap_write(priv->dmc, DMC_CAV_LUT_ADDR,
- CANVAS_LUT_WR_EN | canvas_index);
-diff --git a/drivers/gpu/drm/meson/meson_canvas.h b/drivers/gpu/drm/meson/meson_canvas.h
-index af1759d..85dbf26 100644
---- a/drivers/gpu/drm/meson/meson_canvas.h
-+++ b/drivers/gpu/drm/meson/meson_canvas.h
-@@ -23,6 +23,9 @@
- #define __MESON_CANVAS_H
-
- #define MESON_CANVAS_ID_OSD1 0x4e
-+#define MESON_CANVAS_ID_VD1_0 0x60
-+#define MESON_CANVAS_ID_VD1_1 0x61
-+#define MESON_CANVAS_ID_VD1_2 0x62
-
- /* Canvas configuration. */
- #define MESON_CANVAS_WRAP_NONE 0x00
-@@ -33,10 +36,16 @@
- #define MESON_CANVAS_BLKMODE_32x32 0x01
- #define MESON_CANVAS_BLKMODE_64x64 0x02
-
-+#define MESON_CANVAS_ENDIAN_SWAP16 0x1
-+#define MESON_CANVAS_ENDIAN_SWAP32 0x3
-+#define MESON_CANVAS_ENDIAN_SWAP64 0x7
-+#define MESON_CANVAS_ENDIAN_SWAP128 0xf
-+
- void meson_canvas_setup(struct meson_drm *priv,
- uint32_t canvas_index, uint32_t addr,
- uint32_t stride, uint32_t height,
- unsigned int wrap,
-- unsigned int blkmode);
-+ unsigned int blkmode,
-+ unsigned int endian);
-
- #endif /* __MESON_CANVAS_H */
-diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c
-index 8744244..1d9d22c 100644
---- a/drivers/gpu/drm/meson/meson_crtc.c
-+++ b/drivers/gpu/drm/meson/meson_crtc.c
-@@ -25,6 +25,7 @@
- #include <linux/module.h>
- #include <linux/mutex.h>
- #include <linux/platform_device.h>
-+#include <linux/bitfield.h>
- #include <drm/drmP.h>
- #include <drm/drm_atomic.h>
- #include <drm/drm_atomic_helper.h>
-@@ -98,6 +99,10 @@ static void meson_crtc_atomic_enable(struct drm_crtc *crtc,
- writel(crtc_state->mode.hdisplay,
- priv->io_base + _REG(VPP_POSTBLEND_H_SIZE));
-
-+ /* VD1 Preblend vertical start/end */
-+ writel(FIELD_PREP(GENMASK(11, 0), 2303),
-+ priv->io_base + _REG(VPP_PREBLEND_VD1_V_START_END));
-+
- writel_bits_relaxed(VPP_POSTBLEND_ENABLE, VPP_POSTBLEND_ENABLE,
- priv->io_base + _REG(VPP_MISC));
-
-@@ -114,11 +119,17 @@ static void meson_crtc_atomic_disable(struct drm_crtc *crtc,
-
- drm_crtc_vblank_off(crtc);
-
-+ DRM_DEBUG_DRIVER("\n");
-+
- priv->viu.osd1_enabled = false;
- priv->viu.osd1_commit = false;
-
-+ priv->viu.vd1_enabled = false;
-+ priv->viu.vd1_commit = false;
-+
- /* Disable VPP Postblend */
-- writel_bits_relaxed(VPP_POSTBLEND_ENABLE, 0,
-+ writel_bits_relaxed(VPP_OSD1_POSTBLEND | VPP_VD1_POSTBLEND |
-+ VPP_VD1_PREBLEND | VPP_POSTBLEND_ENABLE, 0,
- priv->io_base + _REG(VPP_MISC));
-
- if (crtc->state->event && !crtc->state->active) {
-@@ -153,6 +164,7 @@ static void meson_crtc_atomic_flush(struct drm_crtc *crtc,
- struct meson_drm *priv = meson_crtc->priv;
-
- priv->viu.osd1_commit = true;
-+ priv->viu.vd1_commit = true;
- }
-
- static const struct drm_crtc_helper_funcs meson_crtc_helper_funcs = {
-@@ -206,7 +218,7 @@ void meson_crtc_irq(struct meson_drm *priv)
- meson_canvas_setup(priv, MESON_CANVAS_ID_OSD1,
- priv->viu.osd1_addr, priv->viu.osd1_stride,
- priv->viu.osd1_height, MESON_CANVAS_WRAP_NONE,
-- MESON_CANVAS_BLKMODE_LINEAR);
-+ MESON_CANVAS_BLKMODE_LINEAR, 0);
-
- /* Enable OSD1 */
- writel_bits_relaxed(VPP_OSD1_POSTBLEND, VPP_OSD1_POSTBLEND,
-@@ -215,6 +227,206 @@ void meson_crtc_irq(struct meson_drm *priv)
- priv->viu.osd1_commit = false;
- }
-
-+ /* Update the VD1 registers */
-+ if (priv->viu.vd1_enabled && priv->viu.vd1_commit) {
-+
-+ switch (priv->viu.vd1_planes) {
-+ case 3:
-+ if (priv->canvas)
-+ meson_canvas_config(priv->canvas,
-+ priv->canvas_id_vd1_2,
-+ priv->viu.vd1_addr2,
-+ priv->viu.vd1_stride2,
-+ priv->viu.vd1_height2,
-+ MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+ else
-+ meson_canvas_setup(priv, MESON_CANVAS_ID_VD1_2,
-+ priv->viu.vd1_addr2,
-+ priv->viu.vd1_stride2,
-+ priv->viu.vd1_height2,
-+ MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+ /* fallthrough */
-+ case 2:
-+ if (priv->canvas)
-+ meson_canvas_config(priv->canvas,
-+ priv->canvas_id_vd1_1,
-+ priv->viu.vd1_addr1,
-+ priv->viu.vd1_stride1,
-+ priv->viu.vd1_height1,
-+ MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+ else
-+ meson_canvas_setup(priv, MESON_CANVAS_ID_VD1_1,
-+ priv->viu.vd1_addr2,
-+ priv->viu.vd1_stride2,
-+ priv->viu.vd1_height2,
-+ MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+ /* fallthrough */
-+ case 1:
-+ if (priv->canvas)
-+ meson_canvas_config(priv->canvas,
-+ priv->canvas_id_vd1_0,
-+ priv->viu.vd1_addr0,
-+ priv->viu.vd1_stride0,
-+ priv->viu.vd1_height0,
-+ MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+ else
-+ meson_canvas_setup(priv, MESON_CANVAS_ID_VD1_0,
-+ priv->viu.vd1_addr2,
-+ priv->viu.vd1_stride2,
-+ priv->viu.vd1_height2,
-+ MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+ };
-+
-+ writel_relaxed(priv->viu.vd1_if0_gen_reg,
-+ priv->io_base + _REG(VD1_IF0_GEN_REG));
-+ writel_relaxed(priv->viu.vd1_if0_gen_reg,
-+ priv->io_base + _REG(VD2_IF0_GEN_REG));
-+ writel_relaxed(priv->viu.vd1_if0_gen_reg2,
-+ priv->io_base + _REG(VD1_IF0_GEN_REG2));
-+ writel_relaxed(priv->viu.viu_vd1_fmt_ctrl,
-+ priv->io_base + _REG(VIU_VD1_FMT_CTRL));
-+ writel_relaxed(priv->viu.viu_vd1_fmt_ctrl,
-+ priv->io_base + _REG(VIU_VD2_FMT_CTRL));
-+ writel_relaxed(priv->viu.viu_vd1_fmt_w,
-+ priv->io_base + _REG(VIU_VD1_FMT_W));
-+ writel_relaxed(priv->viu.viu_vd1_fmt_w,
-+ priv->io_base + _REG(VIU_VD2_FMT_W));
-+ writel_relaxed(priv->viu.vd1_if0_canvas0,
-+ priv->io_base + _REG(VD1_IF0_CANVAS0));
-+ writel_relaxed(priv->viu.vd1_if0_canvas0,
-+ priv->io_base + _REG(VD1_IF0_CANVAS1));
-+ writel_relaxed(priv->viu.vd1_if0_canvas0,
-+ priv->io_base + _REG(VD2_IF0_CANVAS0));
-+ writel_relaxed(priv->viu.vd1_if0_canvas0,
-+ priv->io_base + _REG(VD2_IF0_CANVAS1));
-+ writel_relaxed(priv->viu.vd1_if0_luma_x0,
-+ priv->io_base + _REG(VD1_IF0_LUMA_X0));
-+ writel_relaxed(priv->viu.vd1_if0_luma_x0,
-+ priv->io_base + _REG(VD1_IF0_LUMA_X1));
-+ writel_relaxed(priv->viu.vd1_if0_luma_x0,
-+ priv->io_base + _REG(VD2_IF0_LUMA_X0));
-+ writel_relaxed(priv->viu.vd1_if0_luma_x0,
-+ priv->io_base + _REG(VD2_IF0_LUMA_X1));
-+ writel_relaxed(priv->viu.vd1_if0_luma_y0,
-+ priv->io_base + _REG(VD1_IF0_LUMA_Y0));
-+ writel_relaxed(priv->viu.vd1_if0_luma_y0,
-+ priv->io_base + _REG(VD1_IF0_LUMA_Y1));
-+ writel_relaxed(priv->viu.vd1_if0_luma_y0,
-+ priv->io_base + _REG(VD2_IF0_LUMA_Y0));
-+ writel_relaxed(priv->viu.vd1_if0_luma_y0,
-+ priv->io_base + _REG(VD2_IF0_LUMA_Y1));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_x0,
-+ priv->io_base + _REG(VD1_IF0_CHROMA_X0));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_x0,
-+ priv->io_base + _REG(VD1_IF0_CHROMA_X1));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_x0,
-+ priv->io_base + _REG(VD2_IF0_CHROMA_X0));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_x0,
-+ priv->io_base + _REG(VD2_IF0_CHROMA_X1));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_y0,
-+ priv->io_base + _REG(VD1_IF0_CHROMA_Y0));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_y0,
-+ priv->io_base + _REG(VD1_IF0_CHROMA_Y1));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_y0,
-+ priv->io_base + _REG(VD2_IF0_CHROMA_Y0));
-+ writel_relaxed(priv->viu.vd1_if0_chroma_y0,
-+ priv->io_base + _REG(VD2_IF0_CHROMA_Y1));
-+ writel_relaxed(priv->viu.vd1_if0_repeat_loop,
-+ priv->io_base + _REG(VD1_IF0_RPT_LOOP));
-+ writel_relaxed(priv->viu.vd1_if0_repeat_loop,
-+ priv->io_base + _REG(VD2_IF0_RPT_LOOP));
-+ writel_relaxed(priv->viu.vd1_if0_luma0_rpt_pat,
-+ priv->io_base + _REG(VD1_IF0_LUMA0_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_luma0_rpt_pat,
-+ priv->io_base + _REG(VD2_IF0_LUMA0_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_luma0_rpt_pat,
-+ priv->io_base + _REG(VD1_IF0_LUMA1_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_luma0_rpt_pat,
-+ priv->io_base + _REG(VD2_IF0_LUMA1_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_chroma0_rpt_pat,
-+ priv->io_base + _REG(VD1_IF0_CHROMA0_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_chroma0_rpt_pat,
-+ priv->io_base + _REG(VD2_IF0_CHROMA0_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_chroma0_rpt_pat,
-+ priv->io_base + _REG(VD1_IF0_CHROMA1_RPT_PAT));
-+ writel_relaxed(priv->viu.vd1_if0_chroma0_rpt_pat,
-+ priv->io_base + _REG(VD2_IF0_CHROMA1_RPT_PAT));
-+ writel_relaxed(0, priv->io_base + _REG(VD1_IF0_LUMA_PSEL));
-+ writel_relaxed(0, priv->io_base + _REG(VD1_IF0_CHROMA_PSEL));
-+ writel_relaxed(0, priv->io_base + _REG(VD2_IF0_LUMA_PSEL));
-+ writel_relaxed(0, priv->io_base + _REG(VD2_IF0_CHROMA_PSEL));
-+ writel_relaxed(priv->viu.vd1_range_map_y,
-+ priv->io_base + _REG(VD1_IF0_RANGE_MAP_Y));
-+ writel_relaxed(priv->viu.vd1_range_map_cb,
-+ priv->io_base + _REG(VD1_IF0_RANGE_MAP_CB));
-+ writel_relaxed(priv->viu.vd1_range_map_cr,
-+ priv->io_base + _REG(VD1_IF0_RANGE_MAP_CR));
-+ writel_relaxed(0x78404,
-+ priv->io_base + _REG(VPP_SC_MISC));
-+ writel_relaxed(priv->viu.vpp_pic_in_height,
-+ priv->io_base + _REG(VPP_PIC_IN_HEIGHT));
-+ writel_relaxed(priv->viu.vpp_postblend_vd1_h_start_end,
-+ priv->io_base + _REG(VPP_POSTBLEND_VD1_H_START_END));
-+ writel_relaxed(priv->viu.vpp_blend_vd2_h_start_end,
-+ priv->io_base + _REG(VPP_BLEND_VD2_H_START_END));
-+ writel_relaxed(priv->viu.vpp_postblend_vd1_v_start_end,
-+ priv->io_base + _REG(VPP_POSTBLEND_VD1_V_START_END));
-+ writel_relaxed(priv->viu.vpp_blend_vd2_v_start_end,
-+ priv->io_base + _REG(VPP_BLEND_VD2_V_START_END));
-+ writel_relaxed(priv->viu.vpp_hsc_region12_startp,
-+ priv->io_base + _REG(VPP_HSC_REGION12_STARTP));
-+ writel_relaxed(priv->viu.vpp_hsc_region34_startp,
-+ priv->io_base + _REG(VPP_HSC_REGION34_STARTP));
-+ writel_relaxed(priv->viu.vpp_hsc_region4_endp,
-+ priv->io_base + _REG(VPP_HSC_REGION4_ENDP));
-+ writel_relaxed(priv->viu.vpp_hsc_start_phase_step,
-+ priv->io_base + _REG(VPP_HSC_START_PHASE_STEP));
-+ writel_relaxed(priv->viu.vpp_hsc_region1_phase_slope,
-+ priv->io_base + _REG(VPP_HSC_REGION1_PHASE_SLOPE));
-+ writel_relaxed(priv->viu.vpp_hsc_region3_phase_slope,
-+ priv->io_base + _REG(VPP_HSC_REGION3_PHASE_SLOPE));
-+ writel_relaxed(priv->viu.vpp_line_in_length,
-+ priv->io_base + _REG(VPP_LINE_IN_LENGTH));
-+ writel_relaxed(priv->viu.vpp_preblend_h_size,
-+ priv->io_base + _REG(VPP_PREBLEND_H_SIZE));
-+ writel_relaxed(priv->viu.vpp_vsc_region12_startp,
-+ priv->io_base + _REG(VPP_VSC_REGION12_STARTP));
-+ writel_relaxed(priv->viu.vpp_vsc_region34_startp,
-+ priv->io_base + _REG(VPP_VSC_REGION34_STARTP));
-+ writel_relaxed(priv->viu.vpp_vsc_region4_endp,
-+ priv->io_base + _REG(VPP_VSC_REGION4_ENDP));
-+ writel_relaxed(priv->viu.vpp_vsc_start_phase_step,
-+ priv->io_base + _REG(VPP_VSC_START_PHASE_STEP));
-+ writel_relaxed(priv->viu.vpp_vsc_ini_phase,
-+ priv->io_base + _REG(VPP_VSC_INI_PHASE));
-+ writel_relaxed(priv->viu.vpp_vsc_phase_ctrl,
-+ priv->io_base + _REG(VPP_VSC_PHASE_CTRL));
-+ writel_relaxed(priv->viu.vpp_hsc_phase_ctrl,
-+ priv->io_base + _REG(VPP_HSC_PHASE_CTRL));
-+ writel_relaxed(0x42, priv->io_base + _REG(VPP_SCALE_COEF_IDX));
-+
-+ /* Enable VD1 */
-+ writel_bits_relaxed(VPP_VD1_PREBLEND | VPP_VD1_POSTBLEND |
-+ VPP_COLOR_MNG_ENABLE,
-+ VPP_VD1_PREBLEND | VPP_VD1_POSTBLEND |
-+ VPP_COLOR_MNG_ENABLE,
-+ priv->io_base + _REG(VPP_MISC));
-+
-+ priv->viu.vd1_commit = false;
-+ }
-+
- drm_crtc_handle_vblank(priv->crtc);
-
- spin_lock_irqsave(&priv->drm->event_lock, flags);
-diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
-index b39c38c..b55e03d 100644
---- a/drivers/gpu/drm/meson/meson_drv.c
-+++ b/drivers/gpu/drm/meson/meson_drv.c
-@@ -41,6 +41,7 @@
-
- #include "meson_drv.h"
- #include "meson_plane.h"
-+#include "meson_overlay.h"
- #include "meson_crtc.h"
- #include "meson_venc_cvbs.h"
-
-@@ -221,6 +222,24 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
- ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_osd1);
- if (ret)
- goto free_drm;
-+ ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_0);
-+ if (ret) {
-+ meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
-+ goto free_drm;
-+ }
-+ ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_1);
-+ if (ret) {
-+ meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
-+ meson_canvas_free(priv->canvas, priv->canvas_id_vd1_0);
-+ goto free_drm;
-+ }
-+ ret = meson_canvas_alloc(priv->canvas, &priv->canvas_id_vd1_2);
-+ if (ret) {
-+ meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
-+ meson_canvas_free(priv->canvas, priv->canvas_id_vd1_0);
-+ meson_canvas_free(priv->canvas, priv->canvas_id_vd1_1);
-+ goto free_drm;
-+ }
- } else {
- priv->canvas = NULL;
-
-@@ -281,6 +300,10 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
- if (ret)
- goto free_drm;
-
-+ ret = meson_overlay_create(priv);
-+ if (ret)
-+ goto free_drm;
-+
- ret = meson_crtc_create(priv);
- if (ret)
- goto free_drm;
-@@ -324,8 +347,12 @@ static void meson_drv_unbind(struct device *dev)
- struct drm_device *drm = dev_get_drvdata(dev);
- struct meson_drm *priv = drm->dev_private;
-
-- if (priv->canvas)
-+ if (priv->canvas) {
- meson_canvas_free(priv->canvas, priv->canvas_id_osd1);
-+ meson_canvas_free(priv->canvas, priv->canvas_id_vd1_0);
-+ meson_canvas_free(priv->canvas, priv->canvas_id_vd1_1);
-+ meson_canvas_free(priv->canvas, priv->canvas_id_vd1_2);
-+ }
-
- drm_dev_unregister(drm);
- drm_kms_helper_poll_fini(drm);
-diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
-index 728d0ca..c971557 100644
---- a/drivers/gpu/drm/meson/meson_drv.h
-+++ b/drivers/gpu/drm/meson/meson_drv.h
-@@ -34,11 +34,15 @@ struct meson_drm {
-
- struct meson_canvas *canvas;
- u8 canvas_id_osd1;
-+ u8 canvas_id_vd1_0;
-+ u8 canvas_id_vd1_1;
-+ u8 canvas_id_vd1_2;
-
- struct drm_device *drm;
- struct drm_crtc *crtc;
- struct drm_fbdev_cma *fbdev;
- struct drm_plane *primary_plane;
-+ struct drm_plane *overlay_plane;
-
- /* Components Data */
- struct {
-@@ -50,6 +54,54 @@ struct meson_drm {
- uint32_t osd1_addr;
- uint32_t osd1_stride;
- uint32_t osd1_height;
-+
-+ bool vd1_enabled;
-+ bool vd1_commit;
-+ unsigned int vd1_planes;
-+ uint32_t vd1_if0_gen_reg;
-+ uint32_t vd1_if0_luma_x0;
-+ uint32_t vd1_if0_luma_y0;
-+ uint32_t vd1_if0_chroma_x0;
-+ uint32_t vd1_if0_chroma_y0;
-+ uint32_t vd1_if0_repeat_loop;
-+ uint32_t vd1_if0_luma0_rpt_pat;
-+ uint32_t vd1_if0_chroma0_rpt_pat;
-+ uint32_t vd1_range_map_y;
-+ uint32_t vd1_range_map_cb;
-+ uint32_t vd1_range_map_cr;
-+ uint32_t viu_vd1_fmt_w;
-+ uint32_t vd1_if0_canvas0;
-+ uint32_t vd1_if0_gen_reg2;
-+ uint32_t viu_vd1_fmt_ctrl;
-+ uint32_t vd1_addr0;
-+ uint32_t vd1_addr1;
-+ uint32_t vd1_addr2;
-+ uint32_t vd1_stride0;
-+ uint32_t vd1_stride1;
-+ uint32_t vd1_stride2;
-+ uint32_t vd1_height0;
-+ uint32_t vd1_height1;
-+ uint32_t vd1_height2;
-+ uint32_t vpp_pic_in_height;
-+ uint32_t vpp_postblend_vd1_h_start_end;
-+ uint32_t vpp_postblend_vd1_v_start_end;
-+ uint32_t vpp_hsc_region12_startp;
-+ uint32_t vpp_hsc_region34_startp;
-+ uint32_t vpp_hsc_region4_endp;
-+ uint32_t vpp_hsc_start_phase_step;
-+ uint32_t vpp_hsc_region1_phase_slope;
-+ uint32_t vpp_hsc_region3_phase_slope;
-+ uint32_t vpp_line_in_length;
-+ uint32_t vpp_preblend_h_size;
-+ uint32_t vpp_vsc_region12_startp;
-+ uint32_t vpp_vsc_region34_startp;
-+ uint32_t vpp_vsc_region4_endp;
-+ uint32_t vpp_vsc_start_phase_step;
-+ uint32_t vpp_vsc_ini_phase;
-+ uint32_t vpp_vsc_phase_ctrl;
-+ uint32_t vpp_hsc_phase_ctrl;
-+ uint32_t vpp_blend_vd2_h_start_end;
-+ uint32_t vpp_blend_vd2_v_start_end;
- } viu;
-
- struct {
-diff --git a/drivers/gpu/drm/meson/meson_overlay.c b/drivers/gpu/drm/meson/meson_overlay.c
-new file mode 100644
-index 0000000..9aebc5e
---- /dev/null
-+++ b/drivers/gpu/drm/meson/meson_overlay.c
-@@ -0,0 +1,586 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Neil Armstrong <narmstrong@baylibre.com>
-+ * Copyright (C) 2015 Amlogic, Inc. All rights reserved.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/mutex.h>
-+#include <linux/bitfield.h>
-+#include <linux/platform_device.h>
-+#include <drm/drmP.h>
-+#include <drm/drm_atomic.h>
-+#include <drm/drm_atomic_helper.h>
-+#include <drm/drm_plane_helper.h>
-+#include <drm/drm_gem_cma_helper.h>
-+#include <drm/drm_fb_cma_helper.h>
-+#include <drm/drm_rect.h>
-+
-+#include "meson_overlay.h"
-+#include "meson_vpp.h"
-+#include "meson_viu.h"
-+#include "meson_canvas.h"
-+#include "meson_registers.h"
-+
-+/* VD1_IF0_GEN_REG */
-+#define VD_URGENT_CHROMA BIT(28)
-+#define VD_URGENT_LUMA BIT(27)
-+#define VD_HOLD_LINES(lines) FIELD_PREP(GENMASK(24, 19), lines)
-+#define VD_DEMUX_MODE_RGB BIT(16)
-+#define VD_BYTES_PER_PIXEL(val) FIELD_PREP(GENMASK(15, 14), val)
-+#define VD_CHRO_RPT_LASTL_CTRL BIT(6)
-+#define VD_LITTLE_ENDIAN BIT(4)
-+#define VD_SEPARATE_EN BIT(1)
-+#define VD_ENABLE BIT(0)
-+
-+/* VD1_IF0_CANVAS0 */
-+#define CANVAS_ADDR2(addr) FIELD_PREP(GENMASK(23, 16), addr)
-+#define CANVAS_ADDR1(addr) FIELD_PREP(GENMASK(15, 8), addr)
-+#define CANVAS_ADDR0(addr) FIELD_PREP(GENMASK(7, 0), addr)
-+
-+/* VD1_IF0_LUMA_X0 VD1_IF0_CHROMA_X0 */
-+#define VD_X_START(value) FIELD_PREP(GENMASK(14, 0), value)
-+#define VD_X_END(value) FIELD_PREP(GENMASK(30, 16), value)
-+
-+/* VD1_IF0_LUMA_Y0 VD1_IF0_CHROMA_Y0 */
-+#define VD_Y_START(value) FIELD_PREP(GENMASK(12, 0), value)
-+#define VD_Y_END(value) FIELD_PREP(GENMASK(28, 16), value)
-+
-+/* VD1_IF0_GEN_REG2 */
-+#define VD_COLOR_MAP(value) FIELD_PREP(GENMASK(1, 0), value)
-+
-+/* VIU_VD1_FMT_CTRL */
-+#define VD_HORZ_Y_C_RATIO(value) FIELD_PREP(GENMASK(22, 21), value)
-+#define VD_HORZ_FMT_EN BIT(20)
-+#define VD_VERT_RPT_LINE0 BIT(16)
-+#define VD_VERT_INITIAL_PHASE(value) FIELD_PREP(GENMASK(11, 8), value)
-+#define VD_VERT_PHASE_STEP(value) FIELD_PREP(GENMASK(7, 1), value)
-+#define VD_VERT_FMT_EN BIT(0)
-+
-+/* VPP_POSTBLEND_VD1_H_START_END */
-+#define VD_H_END(value) FIELD_PREP(GENMASK(11, 0), value)
-+#define VD_H_START(value) FIELD_PREP(GENMASK(27, 16), value)
-+
-+/* VPP_POSTBLEND_VD1_V_START_END */
-+#define VD_V_END(value) FIELD_PREP(GENMASK(11, 0), value)
-+#define VD_V_START(value) FIELD_PREP(GENMASK(27, 16), value)
-+
-+/* VPP_BLEND_VD2_V_START_END */
-+#define VD2_V_END(value) FIELD_PREP(GENMASK(11, 0), value)
-+#define VD2_V_START(value) FIELD_PREP(GENMASK(27, 16), value)
-+
-+/* VIU_VD1_FMT_W */
-+#define VD_V_WIDTH(value) FIELD_PREP(GENMASK(11, 0), value)
-+#define VD_H_WIDTH(value) FIELD_PREP(GENMASK(27, 16), value)
-+
-+/* VPP_HSC_REGION12_STARTP VPP_HSC_REGION34_STARTP */
-+#define VD_REGION24_START(value) FIELD_PREP(GENMASK(11, 0), value)
-+#define VD_REGION13_END(value) FIELD_PREP(GENMASK(27, 16), value)
-+
-+struct meson_overlay {
-+ struct drm_plane base;
-+ struct meson_drm *priv;
-+};
-+#define to_meson_overlay(x) container_of(x, struct meson_overlay, base)
-+
-+#define FRAC_16_16(mult, div) (((mult) << 16) / (div))
-+
-+static int meson_overlay_atomic_check(struct drm_plane *plane,
-+ struct drm_plane_state *state)
-+{
-+ struct drm_crtc_state *crtc_state;
-+
-+ if (!state->crtc)
-+ return 0;
-+
-+ crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc);
-+ if (IS_ERR(crtc_state))
-+ return PTR_ERR(crtc_state);
-+
-+ return drm_atomic_helper_check_plane_state(state, crtc_state,
-+ FRAC_16_16(1, 5),
-+ FRAC_16_16(5, 1),
-+ true, true);
-+}
-+
-+/* Takes a fixed 16.16 number and converts it to integer. */
-+static inline int64_t fixed16_to_int(int64_t value)
-+{
-+ return value >> 16;
-+}
-+
-+static const uint8_t skip_tab[6] = {
-+ 0x24, 0x04, 0x68, 0x48, 0x28, 0x08,
-+};
-+
-+static void meson_overlay_get_vertical_phase(unsigned int ratio_y, int *phase,
-+ int *repeat, bool interlace)
-+{
-+ int offset_in = 0;
-+ int offset_out = 0;
-+ int repeat_skip = 0;
-+
-+ if (!interlace && ratio_y > (1 << 18))
-+ offset_out = (1 * ratio_y) >> 10;
-+
-+ while ((offset_in + (4 << 8)) <= offset_out) {
-+ repeat_skip++;
-+ offset_in += 4 << 8;
-+ }
-+
-+ *phase = (offset_out - offset_in) >> 2;
-+
-+ if (*phase > 0x100)
-+ repeat_skip++;
-+
-+ *phase = *phase & 0xff;
-+
-+ if (repeat_skip > 5)
-+ repeat_skip = 5;
-+
-+ *repeat = skip_tab[repeat_skip];
-+}
-+
-+static void meson_overlay_setup_scaler_params(struct meson_drm *priv,
-+ struct drm_plane *plane,
-+ bool interlace_mode)
-+{
-+ struct drm_crtc_state *crtc_state = priv->crtc->state;
-+ int video_top, video_left, video_width, video_height;
-+ struct drm_plane_state *state = plane->state;
-+ unsigned int vd_start_lines, vd_end_lines;
-+ unsigned int hd_start_lines, hd_end_lines;
-+ unsigned int crtc_height, crtc_width;
-+ unsigned int vsc_startp, vsc_endp;
-+ unsigned int hsc_startp, hsc_endp;
-+ unsigned int crop_top, crop_left;
-+ int vphase, vphase_repeat_skip;
-+ unsigned int ratio_x, ratio_y;
-+ int temp_height, temp_width;
-+ unsigned int w_in, h_in;
-+ int temp, start, end;
-+
-+ if (!crtc_state) {
-+ DRM_ERROR("Invalid crtc_state\n");
-+ return;
-+ }
-+
-+ crtc_height = crtc_state->mode.vdisplay;
-+ crtc_width = crtc_state->mode.hdisplay;
-+
-+ w_in = fixed16_to_int(state->src_w);
-+ h_in = fixed16_to_int(state->src_h);
-+ crop_top = fixed16_to_int(state->src_x);
-+ crop_left = fixed16_to_int(state->src_x);
-+
-+ video_top = state->crtc_y;
-+ video_left = state->crtc_x;
-+ video_width = state->crtc_w;
-+ video_height = state->crtc_h;
-+
-+ DRM_DEBUG("crtc_width %d crtc_height %d interlace %d\n",
-+ crtc_width, crtc_height, interlace_mode);
-+ DRM_DEBUG("w_in %d h_in %d crop_top %d crop_left %d\n",
-+ w_in, h_in, crop_top, crop_left);
-+ DRM_DEBUG("video top %d left %d width %d height %d\n",
-+ video_top, video_left, video_width, video_height);
-+
-+ ratio_x = (w_in << 18) / video_width;
-+ ratio_y = (h_in << 18) / video_height;
-+
-+ if (ratio_x * video_width < (w_in << 18))
-+ ratio_x++;
-+
-+ DRM_DEBUG("ratio x 0x%x y 0x%x\n", ratio_x, ratio_y);
-+
-+ meson_overlay_get_vertical_phase(ratio_y, &vphase, &vphase_repeat_skip,
-+ interlace_mode);
-+
-+ DRM_DEBUG("vphase 0x%x skip %d\n", vphase, vphase_repeat_skip);
-+
-+ /* Vertical */
-+
-+ start = video_top + video_height / 2 - ((h_in << 17) / ratio_y);
-+ end = (h_in << 18) / ratio_y + start - 1;
-+
-+ if (video_top < 0 && start < 0)
-+ vd_start_lines = (-(start) * ratio_y) >> 18;
-+ else if (start < video_top)
-+ vd_start_lines = ((video_top - start) * ratio_y) >> 18;
-+ else
-+ vd_start_lines = 0;
-+
-+ if (video_top < 0)
-+ temp_height = min_t(unsigned int,
-+ video_top + video_height - 1,
-+ crtc_height - 1);
-+ else
-+ temp_height = min_t(unsigned int,
-+ video_top + video_height - 1,
-+ crtc_height - 1) - video_top + 1;
-+
-+ temp = vd_start_lines + (temp_height * ratio_y >> 18);
-+ vd_end_lines = (temp <= (h_in - 1)) ? temp : (h_in - 1);
-+
-+ vd_start_lines += crop_left;
-+ vd_end_lines += crop_left;
-+
-+ /*
-+ * TOFIX: Input frames are handled and scaled like progressive frames,
-+ * proper handling of interlaced field input frames need to be figured
-+ * out using the proper framebuffer flags set by userspace.
-+ */
-+ if (interlace_mode) {
-+ start >>= 1;
-+ end >>= 1;
-+ }
-+
-+ vsc_startp = max_t(int, start,
-+ max_t(int, 0, video_top));
-+ vsc_endp = min_t(int, end,
-+ min_t(int, crtc_height - 1,
-+ video_top + video_height - 1));
-+
-+ DRM_DEBUG("vsc startp %d endp %d start_lines %d end_lines %d\n",
-+ vsc_startp, vsc_endp, vd_start_lines, vd_end_lines);
-+
-+ /* Horizontal */
-+
-+ start = video_left + video_width / 2 - ((w_in << 17) / ratio_x);
-+ end = (w_in << 18) / ratio_x + start - 1;
-+
-+ if (video_left < 0 && start < 0)
-+ hd_start_lines = (-(start) * ratio_x) >> 18;
-+ else if (start < video_left)
-+ hd_start_lines = ((video_left - start) * ratio_x) >> 18;
-+ else
-+ hd_start_lines = 0;
-+
-+ if (video_left < 0)
-+ temp_width = min_t(unsigned int,
-+ video_left + video_width - 1,
-+ crtc_width - 1);
-+ else
-+ temp_width = min_t(unsigned int,
-+ video_left + video_width - 1,
-+ crtc_width - 1) - video_left + 1;
-+
-+ temp = hd_start_lines + (temp_width * ratio_x >> 18);
-+ hd_end_lines = (temp <= (w_in - 1)) ? temp : (w_in - 1);
-+
-+ priv->viu.vpp_line_in_length = hd_end_lines - hd_start_lines + 1;
-+ hsc_startp = max_t(int, start, max_t(int, 0, video_left));
-+ hsc_endp = min_t(int, end, min_t(int, crtc_width - 1,
-+ video_left + video_width - 1));
-+
-+ hd_start_lines += crop_top;
-+ hd_end_lines += crop_top;
-+
-+ DRM_DEBUG("hsc startp %d endp %d start_lines %d end_lines %d\n",
-+ hsc_startp, hsc_endp, hd_start_lines, hd_end_lines);
-+
-+ priv->viu.vpp_vsc_start_phase_step = ratio_y << 6;
-+
-+ priv->viu.vpp_vsc_ini_phase = vphase << 8;
-+ priv->viu.vpp_vsc_phase_ctrl = (1 << 13) | (4 << 8) |
-+ vphase_repeat_skip;
-+
-+ priv->viu.vd1_if0_luma_x0 = VD_X_START(hd_start_lines) |
-+ VD_X_END(hd_end_lines);
-+ priv->viu.vd1_if0_chroma_x0 = VD_X_START(hd_start_lines >> 1) |
-+ VD_X_END(hd_end_lines >> 1);
-+
-+ priv->viu.viu_vd1_fmt_w =
-+ VD_H_WIDTH(hd_end_lines - hd_start_lines + 1) |
-+ VD_V_WIDTH(hd_end_lines/2 - hd_start_lines/2 + 1);
-+
-+ priv->viu.vd1_if0_luma_y0 = VD_Y_START(vd_start_lines) |
-+ VD_Y_END(vd_end_lines);
-+
-+ priv->viu.vd1_if0_chroma_y0 = VD_Y_START(vd_start_lines >> 1) |
-+ VD_Y_END(vd_end_lines >> 1);
-+
-+ priv->viu.vpp_pic_in_height = h_in;
-+
-+ priv->viu.vpp_postblend_vd1_h_start_end = VD_H_START(hsc_startp) |
-+ VD_H_END(hsc_endp);
-+ priv->viu.vpp_blend_vd2_h_start_end = VD_H_START(hd_start_lines) |
-+ VD_H_END(hd_end_lines);
-+ priv->viu.vpp_hsc_region12_startp = VD_REGION13_END(0) |
-+ VD_REGION24_START(hsc_startp);
-+ priv->viu.vpp_hsc_region34_startp =
-+ VD_REGION13_END(hsc_startp) |
-+ VD_REGION24_START(hsc_endp - hsc_startp);
-+ priv->viu.vpp_hsc_region4_endp = hsc_endp - hsc_startp;
-+ priv->viu.vpp_hsc_start_phase_step = ratio_x << 6;
-+ priv->viu.vpp_hsc_region1_phase_slope = 0;
-+ priv->viu.vpp_hsc_region3_phase_slope = 0;
-+ priv->viu.vpp_hsc_phase_ctrl = (1 << 21) | (4 << 16);
-+
-+ priv->viu.vpp_line_in_length = hd_end_lines - hd_start_lines + 1;
-+ priv->viu.vpp_preblend_h_size = hd_end_lines - hd_start_lines + 1;
-+
-+ priv->viu.vpp_postblend_vd1_v_start_end = VD_V_START(vsc_startp) |
-+ VD_V_END(vsc_endp);
-+ priv->viu.vpp_blend_vd2_v_start_end =
-+ VD2_V_START((vd_end_lines + 1) >> 1) |
-+ VD2_V_END(vd_end_lines);
-+
-+ priv->viu.vpp_vsc_region12_startp = 0;
-+ priv->viu.vpp_vsc_region34_startp =
-+ VD_REGION13_END(vsc_endp - vsc_startp) |
-+ VD_REGION24_START(vsc_endp - vsc_startp);
-+ priv->viu.vpp_vsc_region4_endp = vsc_endp - vsc_startp;
-+ priv->viu.vpp_vsc_start_phase_step = ratio_y << 6;
-+}
-+
-+static void meson_overlay_atomic_update(struct drm_plane *plane,
-+ struct drm_plane_state *old_state)
-+{
-+ struct meson_overlay *meson_overlay = to_meson_overlay(plane);
-+ struct drm_plane_state *state = plane->state;
-+ struct drm_framebuffer *fb = state->fb;
-+ struct meson_drm *priv = meson_overlay->priv;
-+ struct drm_gem_cma_object *gem;
-+ unsigned long flags;
-+ bool interlace_mode;
-+
-+ DRM_DEBUG_DRIVER("\n");
-+
-+ /* Fallback is canvas provider is not available */
-+ if (!priv->canvas) {
-+ priv->canvas_id_vd1_0 = MESON_CANVAS_ID_VD1_0;
-+ priv->canvas_id_vd1_1 = MESON_CANVAS_ID_VD1_1;
-+ priv->canvas_id_vd1_2 = MESON_CANVAS_ID_VD1_2;
-+ }
-+
-+ interlace_mode = state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE;
-+
-+ spin_lock_irqsave(&priv->drm->event_lock, flags);
-+
-+ priv->viu.vd1_if0_gen_reg = VD_URGENT_CHROMA |
-+ VD_URGENT_LUMA |
-+ VD_HOLD_LINES(9) |
-+ VD_CHRO_RPT_LASTL_CTRL |
-+ VD_ENABLE;
-+
-+ /* Setup scaler params */
-+ meson_overlay_setup_scaler_params(priv, plane, interlace_mode);
-+
-+ priv->viu.vd1_if0_repeat_loop = 0;
-+ priv->viu.vd1_if0_luma0_rpt_pat = interlace_mode ? 8 : 0;
-+ priv->viu.vd1_if0_chroma0_rpt_pat = interlace_mode ? 8 : 0;
-+ priv->viu.vd1_range_map_y = 0;
-+ priv->viu.vd1_range_map_cb = 0;
-+ priv->viu.vd1_range_map_cr = 0;
-+
-+ /* Default values for RGB888/YUV444 */
-+ priv->viu.vd1_if0_gen_reg2 = 0;
-+ priv->viu.viu_vd1_fmt_ctrl = 0;
-+
-+ switch (fb->format->format) {
-+ /* TOFIX DRM_FORMAT_RGB888 should be supported */
-+ case DRM_FORMAT_YUYV:
-+ priv->viu.vd1_if0_gen_reg |= VD_BYTES_PER_PIXEL(1);
-+ priv->viu.vd1_if0_canvas0 =
-+ CANVAS_ADDR2(priv->canvas_id_vd1_0) |
-+ CANVAS_ADDR1(priv->canvas_id_vd1_0) |
-+ CANVAS_ADDR0(priv->canvas_id_vd1_0);
-+ priv->viu.viu_vd1_fmt_ctrl = VD_HORZ_Y_C_RATIO(1) | /* /2 */
-+ VD_HORZ_FMT_EN |
-+ VD_VERT_RPT_LINE0 |
-+ VD_VERT_INITIAL_PHASE(12) |
-+ VD_VERT_PHASE_STEP(16) | /* /2 */
-+ VD_VERT_FMT_EN;
-+ break;
-+ case DRM_FORMAT_NV12:
-+ case DRM_FORMAT_NV21:
-+ priv->viu.vd1_if0_gen_reg |= VD_SEPARATE_EN;
-+ priv->viu.vd1_if0_canvas0 =
-+ CANVAS_ADDR2(priv->canvas_id_vd1_1) |
-+ CANVAS_ADDR1(priv->canvas_id_vd1_1) |
-+ CANVAS_ADDR0(priv->canvas_id_vd1_0);
-+ if (fb->format->format == DRM_FORMAT_NV12)
-+ priv->viu.vd1_if0_gen_reg2 = VD_COLOR_MAP(1);
-+ else
-+ priv->viu.vd1_if0_gen_reg2 = VD_COLOR_MAP(2);
-+ priv->viu.viu_vd1_fmt_ctrl = VD_HORZ_Y_C_RATIO(1) | /* /2 */
-+ VD_HORZ_FMT_EN |
-+ VD_VERT_RPT_LINE0 |
-+ VD_VERT_INITIAL_PHASE(12) |
-+ VD_VERT_PHASE_STEP(8) | /* /4 */
-+ VD_VERT_FMT_EN;
-+ break;
-+ case DRM_FORMAT_YUV444:
-+ case DRM_FORMAT_YUV422:
-+ case DRM_FORMAT_YUV420:
-+ case DRM_FORMAT_YUV411:
-+ case DRM_FORMAT_YUV410:
-+ priv->viu.vd1_if0_gen_reg |= VD_SEPARATE_EN;
-+ priv->viu.vd1_if0_canvas0 =
-+ CANVAS_ADDR2(priv->canvas_id_vd1_2) |
-+ CANVAS_ADDR1(priv->canvas_id_vd1_1) |
-+ CANVAS_ADDR0(priv->canvas_id_vd1_0);
-+ switch (fb->format->format) {
-+ case DRM_FORMAT_YUV422:
-+ priv->viu.viu_vd1_fmt_ctrl =
-+ VD_HORZ_Y_C_RATIO(1) | /* /2 */
-+ VD_HORZ_FMT_EN |
-+ VD_VERT_RPT_LINE0 |
-+ VD_VERT_INITIAL_PHASE(12) |
-+ VD_VERT_PHASE_STEP(16) | /* /2 */
-+ VD_VERT_FMT_EN;
-+ break;
-+ case DRM_FORMAT_YUV420:
-+ priv->viu.viu_vd1_fmt_ctrl =
-+ VD_HORZ_Y_C_RATIO(1) | /* /2 */
-+ VD_HORZ_FMT_EN |
-+ VD_VERT_RPT_LINE0 |
-+ VD_VERT_INITIAL_PHASE(12) |
-+ VD_VERT_PHASE_STEP(8) | /* /4 */
-+ VD_VERT_FMT_EN;
-+ break;
-+ case DRM_FORMAT_YUV411:
-+ priv->viu.viu_vd1_fmt_ctrl =
-+ VD_HORZ_Y_C_RATIO(2) | /* /4 */
-+ VD_HORZ_FMT_EN |
-+ VD_VERT_RPT_LINE0 |
-+ VD_VERT_INITIAL_PHASE(12) |
-+ VD_VERT_PHASE_STEP(16) | /* /2 */
-+ VD_VERT_FMT_EN;
-+ break;
-+ case DRM_FORMAT_YUV410:
-+ priv->viu.viu_vd1_fmt_ctrl =
-+ VD_HORZ_Y_C_RATIO(2) | /* /4 */
-+ VD_HORZ_FMT_EN |
-+ VD_VERT_RPT_LINE0 |
-+ VD_VERT_INITIAL_PHASE(12) |
-+ VD_VERT_PHASE_STEP(8) | /* /4 */
-+ VD_VERT_FMT_EN;
-+ break;
-+ }
-+ break;
-+ }
-+
-+ /* Update Canvas with buffer address */
-+ priv->viu.vd1_planes = drm_format_num_planes(fb->format->format);
-+
-+ switch (priv->viu.vd1_planes) {
-+ case 3:
-+ gem = drm_fb_cma_get_gem_obj(fb, 2);
-+ priv->viu.vd1_addr2 = gem->paddr + fb->offsets[2];
-+ priv->viu.vd1_stride2 = fb->pitches[2];
-+ priv->viu.vd1_height2 =
-+ drm_format_plane_height(fb->height,
-+ fb->format->format, 2);
-+ DRM_DEBUG("plane 2 addr 0x%x stride %d height %d\n",
-+ priv->viu.vd1_addr2,
-+ priv->viu.vd1_stride2,
-+ priv->viu.vd1_height2);
-+ /* fallthrough */
-+ case 2:
-+ gem = drm_fb_cma_get_gem_obj(fb, 1);
-+ priv->viu.vd1_addr1 = gem->paddr + fb->offsets[1];
-+ priv->viu.vd1_stride1 = fb->pitches[1];
-+ priv->viu.vd1_height1 =
-+ drm_format_plane_height(fb->height,
-+ fb->format->format, 1);
-+ DRM_DEBUG("plane 1 addr 0x%x stride %d height %d\n",
-+ priv->viu.vd1_addr1,
-+ priv->viu.vd1_stride1,
-+ priv->viu.vd1_height1);
-+ /* fallthrough */
-+ case 1:
-+ gem = drm_fb_cma_get_gem_obj(fb, 0);
-+ priv->viu.vd1_addr0 = gem->paddr + fb->offsets[0];
-+ priv->viu.vd1_stride0 = fb->pitches[0];
-+ priv->viu.vd1_height0 =
-+ drm_format_plane_height(fb->height,
-+ fb->format->format, 0);
-+ DRM_DEBUG("plane 0 addr 0x%x stride %d height %d\n",
-+ priv->viu.vd1_addr0,
-+ priv->viu.vd1_stride0,
-+ priv->viu.vd1_height0);
-+ }
-+
-+ priv->viu.vd1_enabled = true;
-+
-+ spin_unlock_irqrestore(&priv->drm->event_lock, flags);
-+
-+ DRM_DEBUG_DRIVER("\n");
-+}
-+
-+static void meson_overlay_atomic_disable(struct drm_plane *plane,
-+ struct drm_plane_state *old_state)
-+{
-+ struct meson_overlay *meson_overlay = to_meson_overlay(plane);
-+ struct meson_drm *priv = meson_overlay->priv;
-+
-+ DRM_DEBUG_DRIVER("\n");
-+
-+ priv->viu.vd1_enabled = false;
-+
-+ /* Disable VD1 */
-+ writel_bits_relaxed(VPP_VD1_POSTBLEND | VPP_VD1_PREBLEND, 0,
-+ priv->io_base + _REG(VPP_MISC));
-+
-+}
-+
-+static const struct drm_plane_helper_funcs meson_overlay_helper_funcs = {
-+ .atomic_check = meson_overlay_atomic_check,
-+ .atomic_disable = meson_overlay_atomic_disable,
-+ .atomic_update = meson_overlay_atomic_update,
-+};
-+
-+static const struct drm_plane_funcs meson_overlay_funcs = {
-+ .update_plane = drm_atomic_helper_update_plane,
-+ .disable_plane = drm_atomic_helper_disable_plane,
-+ .destroy = drm_plane_cleanup,
-+ .reset = drm_atomic_helper_plane_reset,
-+ .atomic_duplicate_state = drm_atomic_helper_plane_duplicate_state,
-+ .atomic_destroy_state = drm_atomic_helper_plane_destroy_state,
-+};
-+
-+static const uint32_t supported_drm_formats[] = {
-+ DRM_FORMAT_YUYV,
-+ DRM_FORMAT_NV12,
-+ DRM_FORMAT_NV21,
-+ DRM_FORMAT_YUV444,
-+ DRM_FORMAT_YUV422,
-+ DRM_FORMAT_YUV420,
-+ DRM_FORMAT_YUV411,
-+ DRM_FORMAT_YUV410,
-+};
-+
-+int meson_overlay_create(struct meson_drm *priv)
-+{
-+ struct meson_overlay *meson_overlay;
-+ struct drm_plane *plane;
-+
-+ DRM_DEBUG_DRIVER("\n");
-+
-+ meson_overlay = devm_kzalloc(priv->drm->dev, sizeof(*meson_overlay),
-+ GFP_KERNEL);
-+ if (!meson_overlay)
-+ return -ENOMEM;
-+
-+ meson_overlay->priv = priv;
-+ plane = &meson_overlay->base;
-+
-+ drm_universal_plane_init(priv->drm, plane, 0xFF,
-+ &meson_overlay_funcs,
-+ supported_drm_formats,
-+ ARRAY_SIZE(supported_drm_formats),
-+ NULL,
-+ DRM_PLANE_TYPE_OVERLAY, "meson_overlay_plane");
-+
-+ drm_plane_helper_add(plane, &meson_overlay_helper_funcs);
-+
-+ priv->overlay_plane = plane;
-+
-+ DRM_DEBUG_DRIVER("\n");
-+
-+ return 0;
-+}
-diff --git a/drivers/gpu/drm/meson/meson_overlay.h b/drivers/gpu/drm/meson/meson_overlay.h
-new file mode 100644
-index 0000000..dae24f5
---- /dev/null
-+++ b/drivers/gpu/drm/meson/meson_overlay.h
-@@ -0,0 +1,14 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Neil Armstrong <narmstrong@baylibre.com>
-+ */
-+
-+#ifndef __MESON_OVERLAY_H
-+#define __MESON_OVERLAY_H
-+
-+#include "meson_drv.h"
-+
-+int meson_overlay_create(struct meson_drm *priv);
-+
-+#endif /* __MESON_OVERLAY_H */
-diff --git a/drivers/gpu/drm/meson/meson_registers.h b/drivers/gpu/drm/meson/meson_registers.h
-index bca8714..5c7e02c 100644
---- a/drivers/gpu/drm/meson/meson_registers.h
-+++ b/drivers/gpu/drm/meson/meson_registers.h
-@@ -286,6 +286,7 @@
- #define VIU_OSD1_MATRIX_COEF22_30 0x1a9d
- #define VIU_OSD1_MATRIX_COEF31_32 0x1a9e
- #define VIU_OSD1_MATRIX_COEF40_41 0x1a9f
-+#define VD1_IF0_GEN_REG3 0x1aa7
- #define VIU_OSD1_EOTF_CTL 0x1ad4
- #define VIU_OSD1_EOTF_COEF00_01 0x1ad5
- #define VIU_OSD1_EOTF_COEF02_10 0x1ad6
-@@ -297,6 +298,7 @@
- #define VIU_OSD1_OETF_CTL 0x1adc
- #define VIU_OSD1_OETF_LUT_ADDR_PORT 0x1add
- #define VIU_OSD1_OETF_LUT_DATA_PORT 0x1ade
-+#define AFBC_ENABLE 0x1ae0
-
- /* vpp */
- #define VPP_DUMMY_DATA 0x1d00
-@@ -349,6 +351,7 @@
- #define VPP_VD2_PREBLEND BIT(15)
- #define VPP_OSD1_PREBLEND BIT(16)
- #define VPP_OSD2_PREBLEND BIT(17)
-+#define VPP_COLOR_MNG_ENABLE BIT(28)
- #define VPP_OFIFO_SIZE 0x1d27
- #define VPP_FIFO_STATUS 0x1d28
- #define VPP_SMOKE_CTRL 0x1d29
-diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c
-index 6bcfa52..2dffb98 100644
---- a/drivers/gpu/drm/meson/meson_viu.c
-+++ b/drivers/gpu/drm/meson/meson_viu.c
-@@ -329,6 +329,21 @@ void meson_viu_init(struct meson_drm *priv)
- 0xff << OSD_REPLACE_SHIFT,
- priv->io_base + _REG(VIU_OSD2_CTRL_STAT2));
-
-+ /* Disable VD1 AFBC */
-+ /* di_mif0_en=0 mif0_to_vpp_en=0 di_mad_en=0 */
-+ writel_bits_relaxed(0x7 << 16, 0,
-+ priv->io_base + _REG(VIU_MISC_CTRL0));
-+ /* afbc vd1 set=0 */
-+ writel_bits_relaxed(BIT(20), 0,
-+ priv->io_base + _REG(VIU_MISC_CTRL0));
-+ writel_relaxed(0, priv->io_base + _REG(AFBC_ENABLE));
-+
-+ writel_relaxed(0x00FF00C0,
-+ priv->io_base + _REG(VD1_IF0_LUMA_FIFO_SIZE));
-+ writel_relaxed(0x00FF00C0,
-+ priv->io_base + _REG(VD2_IF0_LUMA_FIFO_SIZE));
-+
-+
- priv->viu.osd1_enabled = false;
- priv->viu.osd1_commit = false;
- priv->viu.osd1_interlace = false;
-diff --git a/drivers/gpu/drm/meson/meson_vpp.c b/drivers/gpu/drm/meson/meson_vpp.c
-index 27356f8..5dc24a9 100644
---- a/drivers/gpu/drm/meson/meson_vpp.c
-+++ b/drivers/gpu/drm/meson/meson_vpp.c
-@@ -122,6 +122,31 @@ static void meson_vpp_write_scaling_filter_coefs(struct meson_drm *priv,
- priv->io_base + _REG(VPP_OSD_SCALE_COEF));
- }
-
-+static const uint32_t vpp_filter_coefs_bicubic[] = {
-+ 0x00800000, 0x007f0100, 0xff7f0200, 0xfe7f0300,
-+ 0xfd7e0500, 0xfc7e0600, 0xfb7d0800, 0xfb7c0900,
-+ 0xfa7b0b00, 0xfa7a0dff, 0xf9790fff, 0xf97711ff,
-+ 0xf87613ff, 0xf87416fe, 0xf87218fe, 0xf8701afe,
-+ 0xf76f1dfd, 0xf76d1ffd, 0xf76b21fd, 0xf76824fd,
-+ 0xf76627fc, 0xf76429fc, 0xf7612cfc, 0xf75f2ffb,
-+ 0xf75d31fb, 0xf75a34fb, 0xf75837fa, 0xf7553afa,
-+ 0xf8523cfa, 0xf8503ff9, 0xf84d42f9, 0xf84a45f9,
-+ 0xf84848f8
-+};
-+
-+static void meson_vpp_write_vd_scaling_filter_coefs(struct meson_drm *priv,
-+ const unsigned int *coefs,
-+ bool is_horizontal)
-+{
-+ int i;
-+
-+ writel_relaxed(is_horizontal ? BIT(8) : 0,
-+ priv->io_base + _REG(VPP_SCALE_COEF_IDX));
-+ for (i = 0; i < 33; i++)
-+ writel_relaxed(coefs[i],
-+ priv->io_base + _REG(VPP_SCALE_COEF));
-+}
-+
- void meson_vpp_init(struct meson_drm *priv)
- {
- /* set dummy data default YUV black */
-@@ -150,17 +175,34 @@ void meson_vpp_init(struct meson_drm *priv)
-
- /* Force all planes off */
- writel_bits_relaxed(VPP_OSD1_POSTBLEND | VPP_OSD2_POSTBLEND |
-- VPP_VD1_POSTBLEND | VPP_VD2_POSTBLEND, 0,
-+ VPP_VD1_POSTBLEND | VPP_VD2_POSTBLEND |
-+ VPP_VD1_PREBLEND | VPP_VD2_PREBLEND, 0,
- priv->io_base + _REG(VPP_MISC));
-
-+ /* Setup default VD settings */
-+ writel_relaxed(4096,
-+ priv->io_base + _REG(VPP_PREBLEND_VD1_H_START_END));
-+ writel_relaxed(4096,
-+ priv->io_base + _REG(VPP_BLEND_VD2_H_START_END));
-+
- /* Disable Scalers */
- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_SC_CTRL0));
- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_VSC_CTRL0));
- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_HSC_CTRL0));
-+ writel_relaxed(4 | (4 << 8) | BIT(15),
-+ priv->io_base + _REG(VPP_SC_MISC));
-+
-+ writel_relaxed(1, priv->io_base + _REG(VPP_VADJ_CTRL));
-
- /* Write in the proper filter coefficients. */
- meson_vpp_write_scaling_filter_coefs(priv,
- vpp_filter_coefs_4point_bspline, false);
- meson_vpp_write_scaling_filter_coefs(priv,
- vpp_filter_coefs_4point_bspline, true);
-+
-+ /* Write the VD proper filter coefficients. */
-+ meson_vpp_write_vd_scaling_filter_coefs(priv, vpp_filter_coefs_bicubic,
-+ false);
-+ meson_vpp_write_vd_scaling_filter_coefs(priv, vpp_filter_coefs_bicubic,
-+ true);
- }
diff --git a/testing/linux-amlogic/0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch b/testing/linux-amlogic/0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
deleted file mode 100644
index 23d0bc366f1..00000000000
--- a/testing/linux-amlogic/0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 90c2e40067b0591a1419472da186463f3f84613b Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Thu, 22 Nov 2018 17:27:20 +0100
-Subject: [PATCH] drm/meson: Fix an Alpha Primary Plane bug on Meson GXL/GXM
- SoCs
-
-On the Amlogic GXL & GXM SoCs, a bug occurs in the OSD1 plane when
-alpha is used where the alpha is not aligned with the pixel content.
-
-The woraround Amlogic implemented is the reset the OSD1 plane hardware
-block each time the plane is updated, solving the issue.
-
-In the reset, we still need to save the content of 2 registers which
-depends on the status of the plane, in addition to reload the scaler
-conversion matrix in the same time.
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/meson/meson_crtc.c | 1 +
- drivers/gpu/drm/meson/meson_plane.c | 12 ++++++++++++
- drivers/gpu/drm/meson/meson_viu.c | 27 +++++++++++++++++++++++++++
- drivers/gpu/drm/meson/meson_viu.h | 1 +
- 4 files changed, 41 insertions(+)
-
-diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c
-index f8e260b..5312cce 100644
---- a/drivers/gpu/drm/meson/meson_crtc.c
-+++ b/drivers/gpu/drm/meson/meson_crtc.c
-@@ -202,6 +202,7 @@ void meson_crtc_irq(struct meson_drm *priv)
-
- /* Update the OSD registers */
- if (priv->viu.osd1_enabled && priv->viu.osd1_commit) {
-+
- writel_relaxed(priv->viu.osd1_ctrl_stat,
- priv->io_base + _REG(VIU_OSD1_CTRL_STAT));
- writel_relaxed(priv->viu.osd1_blk0_cfg[0],
-diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
-index 12a47b4..8372288 100644
---- a/drivers/gpu/drm/meson/meson_plane.c
-+++ b/drivers/gpu/drm/meson/meson_plane.c
-@@ -79,6 +79,7 @@
- struct meson_plane {
- struct drm_plane base;
- struct meson_drm *priv;
-+ bool enabled;
- };
- #define to_meson_plane(x) container_of(x, struct meson_plane, base)
-
-@@ -303,6 +304,15 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- priv->viu.osd1_stride = fb->pitches[0];
- priv->viu.osd1_height = fb->height;
-
-+ if (!meson_plane->enabled) {
-+ /* Reset OSD1 at updates on GXL+ SoCs */
-+ if (meson_vpu_is_compatible(priv, "amlogic,meson-gxm-vpu") ||
-+ meson_vpu_is_compatible(priv, "amlogic,meson-gxl-vpu"))
-+ meson_viu_reset(priv);
-+
-+ meson_plane->enabled = true;
-+ }
-+
- spin_unlock_irqrestore(&priv->drm->event_lock, flags);
- }
-
-@@ -316,6 +326,8 @@ static void meson_plane_atomic_disable(struct drm_plane *plane,
- writel_bits_relaxed(VPP_OSD1_POSTBLEND, 0,
- priv->io_base + _REG(VPP_MISC));
-
-+ meson_plane->enabled = false;
-+
- }
-
- static const struct drm_plane_helper_funcs meson_plane_helper_funcs = {
-diff --git a/drivers/gpu/drm/meson/meson_viu.c b/drivers/gpu/drm/meson/meson_viu.c
-index 2dffb98..a41dd6c 100644
---- a/drivers/gpu/drm/meson/meson_viu.c
-+++ b/drivers/gpu/drm/meson/meson_viu.c
-@@ -296,6 +296,33 @@ static void meson_viu_load_matrix(struct meson_drm *priv)
- true);
- }
-
-+/* VIU OSD1 Reset as workaround for GXL+ Alpha OSD Bug */
-+void meson_viu_reset(struct meson_drm *priv)
-+{
-+ uint32_t osd1_fifo_ctrl_stat, osd1_ctrl_stat2;
-+
-+ /* Save these 2 registers state */
-+ osd1_fifo_ctrl_stat = readl_relaxed(
-+ priv->io_base + _REG(VIU_OSD1_FIFO_CTRL_STAT));
-+ osd1_ctrl_stat2 = readl_relaxed(
-+ priv->io_base + _REG(VIU_OSD1_CTRL_STAT2));
-+
-+ /* Reset OSD1 */
-+ writel_bits_relaxed(BIT(0), BIT(0),
-+ priv->io_base + _REG(VIU_SW_RESET));
-+ writel_bits_relaxed(BIT(0), 0,
-+ priv->io_base + _REG(VIU_SW_RESET));
-+
-+ /* Rewrite these registers state lost in the reset */
-+ writel_relaxed(osd1_fifo_ctrl_stat,
-+ priv->io_base + _REG(VIU_OSD1_FIFO_CTRL_STAT));
-+ writel_relaxed(osd1_ctrl_stat2,
-+ priv->io_base + _REG(VIU_OSD1_CTRL_STAT2));
-+
-+ /* Reload the conversion matrix */
-+ meson_viu_load_matrix(priv);
-+}
-+
- void meson_viu_init(struct meson_drm *priv)
- {
- uint32_t reg;
-diff --git a/drivers/gpu/drm/meson/meson_viu.h b/drivers/gpu/drm/meson/meson_viu.h
-index 073b191..e4a6e2f 100644
---- a/drivers/gpu/drm/meson/meson_viu.h
-+++ b/drivers/gpu/drm/meson/meson_viu.h
-@@ -59,6 +59,7 @@
- #define OSD_REPLACE_EN BIT(14)
- #define OSD_REPLACE_SHIFT 6
-
-+void meson_viu_reset(struct meson_drm *priv);
- void meson_viu_init(struct meson_drm *priv);
-
- #endif /* __MESON_VIU_H */
diff --git a/testing/linux-amlogic/0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch b/testing/linux-amlogic/0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
deleted file mode 100644
index 54b356de642..00000000000
--- a/testing/linux-amlogic/0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From b92e7773bdb2d5c86091cbb2d03cc55ec6365115 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Mon, 29 Oct 2018 17:04:05 +0100
-Subject: [PATCH] drm/meson: move OSD scaler management into plane atomic
- update
-
-In preparation to support the Primary Plane scaling, move the basic
-OSD Interlace-Only scaler setup code into the primary plane atomic
-update callback and handle the vsync scaler update like the overlay
-plane scaling registers update.
-
----
- drivers/gpu/drm/meson/meson_crtc.c | 35 ++++++++++++++++------------
- drivers/gpu/drm/meson/meson_drv.h | 10 ++++++++
- drivers/gpu/drm/meson/meson_plane.c | 39 ++++++++++++++++++++++++++++++-
- drivers/gpu/drm/meson/meson_vpp.c | 46 -------------------------------------
- 4 files changed, 68 insertions(+), 62 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c
-index 1d9d22c..6099997 100644
---- a/drivers/gpu/drm/meson/meson_crtc.c
-+++ b/drivers/gpu/drm/meson/meson_crtc.c
-@@ -193,21 +193,26 @@ void meson_crtc_irq(struct meson_drm *priv)
- priv->io_base + _REG(VIU_OSD1_BLK0_CFG_W3));
- writel_relaxed(priv->viu.osd1_blk0_cfg[4],
- priv->io_base + _REG(VIU_OSD1_BLK0_CFG_W4));
--
-- /* If output is interlace, make use of the Scaler */
-- if (priv->viu.osd1_interlace) {
-- struct drm_plane *plane = priv->primary_plane;
-- struct drm_plane_state *state = plane->state;
-- struct drm_rect dest = {
-- .x1 = state->crtc_x,
-- .y1 = state->crtc_y,
-- .x2 = state->crtc_x + state->crtc_w,
-- .y2 = state->crtc_y + state->crtc_h,
-- };
--
-- meson_vpp_setup_interlace_vscaler_osd1(priv, &dest);
-- } else
-- meson_vpp_disable_interlace_vscaler_osd1(priv);
-+ writel_relaxed(priv->viu.osd_sc_ctrl0,
-+ priv->io_base + _REG(VPP_OSD_SC_CTRL0));
-+ writel_relaxed(priv->viu.osd_sc_i_wh_m1,
-+ priv->io_base + _REG(VPP_OSD_SCI_WH_M1));
-+ writel_relaxed(priv->viu.osd_sc_o_h_start_end,
-+ priv->io_base + _REG(VPP_OSD_SCO_H_START_END));
-+ writel_relaxed(priv->viu.osd_sc_o_v_start_end,
-+ priv->io_base + _REG(VPP_OSD_SCO_V_START_END));
-+ writel_relaxed(priv->viu.osd_sc_v_ini_phase,
-+ priv->io_base + _REG(VPP_OSD_VSC_INI_PHASE));
-+ writel_relaxed(priv->viu.osd_sc_v_phase_step,
-+ priv->io_base + _REG(VPP_OSD_VSC_PHASE_STEP));
-+ writel_relaxed(priv->viu.osd_sc_h_ini_phase,
-+ priv->io_base + _REG(VPP_OSD_HSC_INI_PHASE));
-+ writel_relaxed(priv->viu.osd_sc_h_phase_step,
-+ priv->io_base + _REG(VPP_OSD_HSC_PHASE_STEP));
-+ writel_relaxed(priv->viu.osd_sc_h_ctrl0,
-+ priv->io_base + _REG(VPP_OSD_HSC_CTRL0));
-+ writel_relaxed(priv->viu.osd_sc_v_ctrl0,
-+ priv->io_base + _REG(VPP_OSD_VSC_CTRL0));
-
- if (priv->canvas)
- meson_canvas_config(priv->canvas, priv->canvas_id_osd1,
-diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
-index c971557..a955354 100644
---- a/drivers/gpu/drm/meson/meson_drv.h
-+++ b/drivers/gpu/drm/meson/meson_drv.h
-@@ -54,6 +54,16 @@ struct meson_drm {
- uint32_t osd1_addr;
- uint32_t osd1_stride;
- uint32_t osd1_height;
-+ uint32_t osd_sc_ctrl0;
-+ uint32_t osd_sc_i_wh_m1;
-+ uint32_t osd_sc_o_h_start_end;
-+ uint32_t osd_sc_o_v_start_end;
-+ uint32_t osd_sc_v_ini_phase;
-+ uint32_t osd_sc_v_phase_step;
-+ uint32_t osd_sc_h_ini_phase;
-+ uint32_t osd_sc_h_phase_step;
-+ uint32_t osd_sc_h_ctrl0;
-+ uint32_t osd_sc_v_ctrl0;
-
- bool vd1_enabled;
- bool vd1_commit;
-diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
-index 51bec8e..f915a79 100644
---- a/drivers/gpu/drm/meson/meson_plane.c
-+++ b/drivers/gpu/drm/meson/meson_plane.c
-@@ -143,13 +143,50 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- break;
- };
-
-+ /*
-+ * When the output is interlaced, the OSD must switch between
-+ * each field using the INTERLACE_SEL_ODD (0) of VIU_OSD1_BLK0_CFG_W0
-+ * at each vsync.
-+ * But the vertical scaler can provide such funtionnality if
-+ * is configured for 2:1 scaling with interlace options enabled.
-+ */
- if (state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) {
- priv->viu.osd1_interlace = true;
-
- dest.y1 /= 2;
- dest.y2 /= 2;
-- } else
-+
-+ priv->viu.osd_sc_ctrl0 = BIT(3)| /* Enable scaler */
-+ BIT(2); /* Select OSD1 */
-+
-+ /* 2:1 scaling */
-+ priv->viu.osd_sc_i_wh_m1 = ((drm_rect_width(&dest) - 1) << 16) |
-+ (drm_rect_height(&dest) - 1);
-+ priv->viu.osd_sc_o_h_start_end = (dest.x1 << 16) | dest.x2;
-+ priv->viu.osd_sc_o_v_start_end = (dest.y1 << 16) | dest.y2;
-+
-+ /* 2:1 vertical scaling values */
-+ priv->viu.osd_sc_v_ini_phase = BIT(16);
-+ priv->viu.osd_sc_v_phase_step = BIT(25);
-+ priv->viu.osd_sc_v_ctrl0 =
-+ (4 << 0) | /* osd_vsc_bank_length */
-+ (4 << 3) | /* osd_vsc_top_ini_rcv_num0 */
-+ (1 << 8) | /* osd_vsc_top_rpt_p0_num0 */
-+ (6 << 11) | /* osd_vsc_bot_ini_rcv_num0 */
-+ (2 << 16) | /* osd_vsc_bot_rpt_p0_num0 */
-+ BIT(23) | /* osd_prog_interlace */
-+ BIT(24); /* Enable vertical scaler */
-+
-+ /* No horizontal scaling */
-+ priv->viu.osd_sc_h_ini_phase = 0;
-+ priv->viu.osd_sc_h_phase_step = 0;
-+ priv->viu.osd_sc_h_ctrl0 = 0;
-+ } else {
- priv->viu.osd1_interlace = false;
-+ priv->viu.osd_sc_ctrl0 = 0;
-+ priv->viu.osd_sc_h_ctrl0 = 0;
-+ priv->viu.osd_sc_v_ctrl0 = 0;
-+ }
-
- /*
- * The format of these registers is (x2 << 16 | x1),
-diff --git a/drivers/gpu/drm/meson/meson_vpp.c b/drivers/gpu/drm/meson/meson_vpp.c
-index 5dc24a9..f9efb43 100644
---- a/drivers/gpu/drm/meson/meson_vpp.c
-+++ b/drivers/gpu/drm/meson/meson_vpp.c
-@@ -51,52 +51,6 @@ void meson_vpp_setup_mux(struct meson_drm *priv, unsigned int mux)
- writel(mux, priv->io_base + _REG(VPU_VIU_VENC_MUX_CTRL));
- }
-
--/*
-- * When the output is interlaced, the OSD must switch between
-- * each field using the INTERLACE_SEL_ODD (0) of VIU_OSD1_BLK0_CFG_W0
-- * at each vsync.
-- * But the vertical scaler can provide such funtionnality if
-- * is configured for 2:1 scaling with interlace options enabled.
-- */
--void meson_vpp_setup_interlace_vscaler_osd1(struct meson_drm *priv,
-- struct drm_rect *input)
--{
-- writel_relaxed(BIT(3) /* Enable scaler */ |
-- BIT(2), /* Select OSD1 */
-- priv->io_base + _REG(VPP_OSD_SC_CTRL0));
--
-- writel_relaxed(((drm_rect_width(input) - 1) << 16) |
-- (drm_rect_height(input) - 1),
-- priv->io_base + _REG(VPP_OSD_SCI_WH_M1));
-- /* 2:1 scaling */
-- writel_relaxed(((input->x1) << 16) | (input->x2),
-- priv->io_base + _REG(VPP_OSD_SCO_H_START_END));
-- writel_relaxed(((input->y1 >> 1) << 16) | (input->y2 >> 1),
-- priv->io_base + _REG(VPP_OSD_SCO_V_START_END));
--
-- /* 2:1 scaling values */
-- writel_relaxed(BIT(16), priv->io_base + _REG(VPP_OSD_VSC_INI_PHASE));
-- writel_relaxed(BIT(25), priv->io_base + _REG(VPP_OSD_VSC_PHASE_STEP));
--
-- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_HSC_CTRL0));
--
-- writel_relaxed((4 << 0) /* osd_vsc_bank_length */ |
-- (4 << 3) /* osd_vsc_top_ini_rcv_num0 */ |
-- (1 << 8) /* osd_vsc_top_rpt_p0_num0 */ |
-- (6 << 11) /* osd_vsc_bot_ini_rcv_num0 */ |
-- (2 << 16) /* osd_vsc_bot_rpt_p0_num0 */ |
-- BIT(23) /* osd_prog_interlace */ |
-- BIT(24), /* Enable vertical scaler */
-- priv->io_base + _REG(VPP_OSD_VSC_CTRL0));
--}
--
--void meson_vpp_disable_interlace_vscaler_osd1(struct meson_drm *priv)
--{
-- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_SC_CTRL0));
-- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_VSC_CTRL0));
-- writel_relaxed(0, priv->io_base + _REG(VPP_OSD_HSC_CTRL0));
--}
--
- static unsigned int vpp_filter_coefs_4point_bspline[] = {
- 0x15561500, 0x14561600, 0x13561700, 0x12561800,
- 0x11551a00, 0x11541b00, 0x10541c00, 0x0f541d00,
diff --git a/testing/linux-amlogic/0024-drm-meson-Add-primary-plane-scaling.patch b/testing/linux-amlogic/0024-drm-meson-Add-primary-plane-scaling.patch
deleted file mode 100644
index 472355a105b..00000000000
--- a/testing/linux-amlogic/0024-drm-meson-Add-primary-plane-scaling.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-From 7489078416fdb581625f99ec87b828c2e22794ee Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Tue, 30 Oct 2018 14:29:10 +0100
-Subject: [PATCH] drm/meson: Add primary plane scaling
-
-This patch adds support for the Primary Plane scaling.
-
-On the Amlogic GX SoCs, the primary plane is used as On-Screen-Display
-layer on top of video, and it's needed to keep the OSD layer to a lower
-size as the physical display size to :
-- lower the memory bandwidth
-- lower the OSD rendering
-- lower the memory usage
-
-This use-case is used when setting the display mode to 3840x2160 and the
-OSD layer is rendered using the GPU. In this case, the GXBB & GXL cannot
-work on more than 2000x2000 buffer, thus needing the OSD layer to be kept
-at 1920x1080 and upscaled to 3840x2160 in hardware.
-
-The primary plane atomic check still allow 1:1 scaling, allowing native
-3840x2160 if needed by user-space applications.
-
----
- drivers/gpu/drm/meson/meson_plane.c | 186 +++++++++++++++++++++++++++---------
- 1 file changed, 141 insertions(+), 45 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
-index f915a79..12a47b4 100644
---- a/drivers/gpu/drm/meson/meson_plane.c
-+++ b/drivers/gpu/drm/meson/meson_plane.c
-@@ -24,6 +24,7 @@
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/mutex.h>
-+#include <linux/bitfield.h>
- #include <linux/platform_device.h>
- #include <drm/drmP.h>
- #include <drm/drm_atomic.h>
-@@ -39,12 +40,50 @@
- #include "meson_canvas.h"
- #include "meson_registers.h"
-
-+/* OSD_SCI_WH_M1 */
-+#define SCI_WH_M1_W(w) FIELD_PREP(GENMASK(28, 16), w)
-+#define SCI_WH_M1_H(h) FIELD_PREP(GENMASK(12, 0), h)
-+
-+/* OSD_SCO_H_START_END */
-+/* OSD_SCO_V_START_END */
-+#define SCO_HV_START(start) FIELD_PREP(GENMASK(27, 16), start)
-+#define SCO_HV_END(end) FIELD_PREP(GENMASK(11, 0), end)
-+
-+/* OSD_SC_CTRL0 */
-+#define SC_CTRL0_PATH_EN BIT(3)
-+#define SC_CTRL0_SEL_OSD1 BIT(2)
-+
-+/* OSD_VSC_CTRL0 */
-+#define VSC_BANK_LEN(value) FIELD_PREP(GENMASK(2, 0), value)
-+#define VSC_TOP_INI_RCV_NUM(value) FIELD_PREP(GENMASK(6, 3), value)
-+#define VSC_TOP_RPT_L0_NUM(value) FIELD_PREP(GENMASK(9, 8), value)
-+#define VSC_BOT_INI_RCV_NUM(value) FIELD_PREP(GENMASK(14, 11), value)
-+#define VSC_BOT_RPT_L0_NUM(value) FIELD_PREP(GENMASK(17, 16), value)
-+#define VSC_PROG_INTERLACE BIT(23)
-+#define VSC_VERTICAL_SCALER_EN BIT(24)
-+
-+/* OSD_VSC_INI_PHASE */
-+#define VSC_INI_PHASE_BOT(bottom) FIELD_PREP(GENMASK(31, 16), bottom)
-+#define VSC_INI_PHASE_TOP(top) FIELD_PREP(GENMASK(15, 0), top)
-+
-+/* OSD_HSC_CTRL0 */
-+#define HSC_BANK_LENGTH(value) FIELD_PREP(GENMASK(2, 0), value)
-+#define HSC_INI_RCV_NUM0(value) FIELD_PREP(GENMASK(6, 3), value)
-+#define HSC_RPT_P0_NUM0(value) FIELD_PREP(GENMASK(9, 8), value)
-+#define HSC_HORIZ_SCALER_EN BIT(22)
-+
-+/* VPP_OSD_VSC_PHASE_STEP */
-+/* VPP_OSD_HSC_PHASE_STEP */
-+#define SC_PHASE_STEP(value) FIELD_PREP(GENMASK(27, 0), value)
-+
- struct meson_plane {
- struct drm_plane base;
- struct meson_drm *priv;
- };
- #define to_meson_plane(x) container_of(x, struct meson_plane, base)
-
-+#define FRAC_16_16(mult, div) (((mult) << 16) / (div))
-+
- static int meson_plane_atomic_check(struct drm_plane *plane,
- struct drm_plane_state *state)
- {
-@@ -57,10 +96,15 @@ static int meson_plane_atomic_check(struct drm_plane *plane,
- if (IS_ERR(crtc_state))
- return PTR_ERR(crtc_state);
-
-+ /*
-+ * Only allow :
-+ * - Upscaling up to 5x, vertical and horizontal
-+ * - Final coordinates must match crtc size
-+ */
- return drm_atomic_helper_check_plane_state(state, crtc_state,
-+ FRAC_16_16(1, 5),
- DRM_PLANE_HELPER_NO_SCALING,
-- DRM_PLANE_HELPER_NO_SCALING,
-- true, true);
-+ false, true);
- }
-
- /* Takes a fixed 16.16 number and converts it to integer. */
-@@ -74,22 +118,19 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- {
- struct meson_plane *meson_plane = to_meson_plane(plane);
- struct drm_plane_state *state = plane->state;
-- struct drm_framebuffer *fb = state->fb;
-+ struct drm_rect dest = drm_plane_state_dest(state);
- struct meson_drm *priv = meson_plane->priv;
-+ struct drm_framebuffer *fb = state->fb;
- struct drm_gem_cma_object *gem;
-- struct drm_rect src = {
-- .x1 = (state->src_x),
-- .y1 = (state->src_y),
-- .x2 = (state->src_x + state->src_w),
-- .y2 = (state->src_y + state->src_h),
-- };
-- struct drm_rect dest = {
-- .x1 = state->crtc_x,
-- .y1 = state->crtc_y,
-- .x2 = state->crtc_x + state->crtc_w,
-- .y2 = state->crtc_y + state->crtc_h,
-- };
- unsigned long flags;
-+ int vsc_ini_rcv_num, vsc_ini_rpt_p0_num;
-+ int vsc_bot_rcv_num, vsc_bot_rpt_p0_num;
-+ int hsc_ini_rcv_num, hsc_ini_rpt_p0_num;
-+ int hf_phase_step, vf_phase_step;
-+ int src_w, src_h, dst_w, dst_h;
-+ int bot_ini_phase;
-+ int hf_bank_len;
-+ int vf_bank_len;
- u8 canvas_id_osd1;
-
- /*
-@@ -143,6 +184,27 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- break;
- };
-
-+ /* Default scaler parameters */
-+ vsc_bot_rcv_num = 0;
-+ vsc_bot_rpt_p0_num = 0;
-+ hf_bank_len = 4;
-+ vf_bank_len = 4;
-+
-+ if (state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) {
-+ vsc_bot_rcv_num = 6;
-+ vsc_bot_rpt_p0_num = 2;
-+ }
-+
-+ hsc_ini_rcv_num = hf_bank_len;
-+ vsc_ini_rcv_num = vf_bank_len;
-+ hsc_ini_rpt_p0_num = (hf_bank_len / 2) - 1;
-+ vsc_ini_rpt_p0_num = (vf_bank_len / 2) - 1;
-+
-+ src_w = fixed16_to_int(state->src_w);
-+ src_h = fixed16_to_int(state->src_h);
-+ dst_w = state->crtc_w;
-+ dst_h = state->crtc_h;
-+
- /*
- * When the output is interlaced, the OSD must switch between
- * each field using the INTERLACE_SEL_ODD (0) of VIU_OSD1_BLK0_CFG_W0
-@@ -151,41 +213,73 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- * is configured for 2:1 scaling with interlace options enabled.
- */
- if (state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE) {
-- priv->viu.osd1_interlace = true;
--
- dest.y1 /= 2;
- dest.y2 /= 2;
-+ dst_h /= 2;
-+ }
-
-- priv->viu.osd_sc_ctrl0 = BIT(3)| /* Enable scaler */
-- BIT(2); /* Select OSD1 */
-+ hf_phase_step = ((src_w << 18) / dst_w) << 6;
-+ vf_phase_step = (src_h << 20) / dst_h;
-
-- /* 2:1 scaling */
-- priv->viu.osd_sc_i_wh_m1 = ((drm_rect_width(&dest) - 1) << 16) |
-- (drm_rect_height(&dest) - 1);
-- priv->viu.osd_sc_o_h_start_end = (dest.x1 << 16) | dest.x2;
-- priv->viu.osd_sc_o_v_start_end = (dest.y1 << 16) | dest.y2;
-+ if (state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE)
-+ bot_ini_phase = ((vf_phase_step / 2) >> 4);
-+ else
-+ bot_ini_phase = 0;
-+
-+ vf_phase_step = (vf_phase_step << 4);
-+
-+ /* In interlaced mode, scaler is always active */
-+ if (src_h != dst_h || src_w != dst_w) {
-+ priv->viu.osd_sc_i_wh_m1 = SCI_WH_M1_W(src_w - 1) |
-+ SCI_WH_M1_H(src_h - 1);
-+ priv->viu.osd_sc_o_h_start_end = SCO_HV_START(dest.x1) |
-+ SCO_HV_END(dest.x2 - 1);
-+ priv->viu.osd_sc_o_v_start_end = SCO_HV_START(dest.y1) |
-+ SCO_HV_END(dest.y2 - 1);
-+ /* Enable OSD Scaler */
-+ priv->viu.osd_sc_ctrl0 = SC_CTRL0_PATH_EN | SC_CTRL0_SEL_OSD1;
-+ } else {
-+ priv->viu.osd_sc_i_wh_m1 = 0;
-+ priv->viu.osd_sc_o_h_start_end = 0;
-+ priv->viu.osd_sc_o_v_start_end = 0;
-+ priv->viu.osd_sc_ctrl0 = 0;
-+ }
-
-- /* 2:1 vertical scaling values */
-- priv->viu.osd_sc_v_ini_phase = BIT(16);
-- priv->viu.osd_sc_v_phase_step = BIT(25);
-+ /* In interlaced mode, vertical scaler is always active */
-+ if (src_h != dst_h) {
- priv->viu.osd_sc_v_ctrl0 =
-- (4 << 0) | /* osd_vsc_bank_length */
-- (4 << 3) | /* osd_vsc_top_ini_rcv_num0 */
-- (1 << 8) | /* osd_vsc_top_rpt_p0_num0 */
-- (6 << 11) | /* osd_vsc_bot_ini_rcv_num0 */
-- (2 << 16) | /* osd_vsc_bot_rpt_p0_num0 */
-- BIT(23) | /* osd_prog_interlace */
-- BIT(24); /* Enable vertical scaler */
--
-- /* No horizontal scaling */
-+ VSC_BANK_LEN(vf_bank_len) |
-+ VSC_TOP_INI_RCV_NUM(vsc_ini_rcv_num) |
-+ VSC_TOP_RPT_L0_NUM(vsc_ini_rpt_p0_num) |
-+ VSC_VERTICAL_SCALER_EN;
-+
-+ if (state->crtc->mode.flags & DRM_MODE_FLAG_INTERLACE)
-+ priv->viu.osd_sc_v_ctrl0 |=
-+ VSC_BOT_INI_RCV_NUM(vsc_bot_rcv_num) |
-+ VSC_BOT_RPT_L0_NUM(vsc_bot_rpt_p0_num) |
-+ VSC_PROG_INTERLACE;
-+
-+ priv->viu.osd_sc_v_phase_step = SC_PHASE_STEP(vf_phase_step);
-+ priv->viu.osd_sc_v_ini_phase = VSC_INI_PHASE_BOT(bot_ini_phase);
-+ } else {
-+ priv->viu.osd_sc_v_ctrl0 = 0;
-+ priv->viu.osd_sc_v_phase_step = 0;
-+ priv->viu.osd_sc_v_ini_phase = 0;
-+ }
-+
-+ /* Horizontal scaler is only used if width does not match */
-+ if (src_w != dst_w) {
-+ priv->viu.osd_sc_h_ctrl0 =
-+ HSC_BANK_LENGTH(hf_bank_len) |
-+ HSC_INI_RCV_NUM0(hsc_ini_rcv_num) |
-+ HSC_RPT_P0_NUM0(hsc_ini_rpt_p0_num) |
-+ HSC_HORIZ_SCALER_EN;
-+ priv->viu.osd_sc_h_phase_step = SC_PHASE_STEP(hf_phase_step);
- priv->viu.osd_sc_h_ini_phase = 0;
-- priv->viu.osd_sc_h_phase_step = 0;
-- priv->viu.osd_sc_h_ctrl0 = 0;
- } else {
-- priv->viu.osd1_interlace = false;
-- priv->viu.osd_sc_ctrl0 = 0;
- priv->viu.osd_sc_h_ctrl0 = 0;
-- priv->viu.osd_sc_v_ctrl0 = 0;
-+ priv->viu.osd_sc_h_phase_step = 0;
-+ priv->viu.osd_sc_h_ini_phase = 0;
- }
-
- /*
-@@ -193,10 +287,12 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
- * where x2 is exclusive.
- * e.g. +30x1920 would be (1919 << 16) | 30
- */
-- priv->viu.osd1_blk0_cfg[1] = ((fixed16_to_int(src.x2) - 1) << 16) |
-- fixed16_to_int(src.x1);
-- priv->viu.osd1_blk0_cfg[2] = ((fixed16_to_int(src.y2) - 1) << 16) |
-- fixed16_to_int(src.y1);
-+ priv->viu.osd1_blk0_cfg[1] =
-+ ((fixed16_to_int(state->src.x2) - 1) << 16) |
-+ fixed16_to_int(state->src.x1);
-+ priv->viu.osd1_blk0_cfg[2] =
-+ ((fixed16_to_int(state->src.y2) - 1) << 16) |
-+ fixed16_to_int(state->src.y1);
- priv->viu.osd1_blk0_cfg[3] = ((dest.x2 - 1) << 16) | dest.x1;
- priv->viu.osd1_blk0_cfg[4] = ((dest.y2 - 1) << 16) | dest.y1;
-
diff --git a/testing/linux-amlogic/0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch b/testing/linux-amlogic/0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
deleted file mode 100644
index d07847edac2..00000000000
--- a/testing/linux-amlogic/0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 90af79faeb239f3a32974d99a2b58d4ce37cd0c1 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 7 Nov 2018 11:34:47 +0100
-Subject: [PATCH] pinctrl: meson-gxl: remove invalid GPIOX tsin_a pins
-
-The GPIOX tsin_a pins wrongly uses the SDCard pinctrl bits, this
-patch completely removes these pins entries until we find out what
-are the correct bits and registers to be used instead.
-
-Fixes: 5a6ae9b80139 ("pinctrl: meson-gxl: add tsin_a pins")
-
----
- drivers/pinctrl/meson/pinctrl-meson-gxl.c | 12 ++----------
- 1 file changed, 2 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxl.c b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
-index 158f618..0c0a501 100644
---- a/drivers/pinctrl/meson/pinctrl-meson-gxl.c
-+++ b/drivers/pinctrl/meson/pinctrl-meson-gxl.c
-@@ -239,13 +239,9 @@ static const unsigned int eth_link_led_pins[] = { GPIOZ_14 };
- static const unsigned int eth_act_led_pins[] = { GPIOZ_15 };
-
- static const unsigned int tsin_a_d0_pins[] = { GPIODV_0 };
--static const unsigned int tsin_a_d0_x_pins[] = { GPIOX_10 };
- static const unsigned int tsin_a_clk_pins[] = { GPIODV_8 };
--static const unsigned int tsin_a_clk_x_pins[] = { GPIOX_11 };
- static const unsigned int tsin_a_sop_pins[] = { GPIODV_9 };
--static const unsigned int tsin_a_sop_x_pins[] = { GPIOX_8 };
- static const unsigned int tsin_a_d_valid_pins[] = { GPIODV_10 };
--static const unsigned int tsin_a_d_valid_x_pins[] = { GPIOX_9 };
- static const unsigned int tsin_a_fail_pins[] = { GPIODV_11 };
- static const unsigned int tsin_a_dp_pins[] = {
- GPIODV_1, GPIODV_2, GPIODV_3, GPIODV_4, GPIODV_5, GPIODV_6, GPIODV_7,
-@@ -432,10 +428,6 @@ static struct meson_pmx_group meson_gxl_periphs_groups[] = {
- GROUP(spi_miso, 5, 2),
- GROUP(spi_ss0, 5, 1),
- GROUP(spi_sclk, 5, 0),
-- GROUP(tsin_a_sop_x, 6, 3),
-- GROUP(tsin_a_d_valid_x, 6, 2),
-- GROUP(tsin_a_d0_x, 6, 1),
-- GROUP(tsin_a_clk_x, 6, 0),
-
- /* Bank Z */
- GROUP(eth_mdio, 4, 23),
-@@ -698,8 +690,8 @@ static const char * const eth_led_groups[] = {
- };
-
- static const char * const tsin_a_groups[] = {
-- "tsin_a_clk", "tsin_a_clk_x", "tsin_a_sop", "tsin_a_sop_x",
-- "tsin_a_d_valid", "tsin_a_d_valid_x", "tsin_a_d0", "tsin_a_d0_x",
-+ "tsin_a_clk", "tsin_a_sop",
-+ "tsin_a_d_valid", "tsin_a_d0",
- "tsin_a_dp", "tsin_a_fail",
- };
-
diff --git a/testing/linux-amlogic/0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch b/testing/linux-amlogic/0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
deleted file mode 100644
index f1ee60638e1..00000000000
--- a/testing/linux-amlogic/0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 6c4496753e3bea38dd4b42266c8402d048bde635 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Thu, 8 Nov 2018 14:24:38 +0100
-Subject: [PATCH] arm64: dts: meson-gx: Add hdmi_5v regulator as hdmi tx supply
-
-The hdmi_5v regulator must be enabled to provide power to the physical HDMI
-PHY and enables the HDMI 5V presence loopback for the monitor.
-
-Fixes: b409f625a6d5 ("ARM64: dts: meson-gx: Add HDMI_5V regulator on selected boards")
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | 1 +
- arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 1 +
- arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts | 1 +
- arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts | 1 +
- arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 1 +
- 5 files changed, 5 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
-index fb9ad6f..774f8af 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
-@@ -166,6 +166,7 @@
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
- pinctrl-names = "default";
-+ hdmi-supply = <&hdmi_5v>;
- };
-
- &hdmi_tx_tmds_port {
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-index f053595..e5ef9b0 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-@@ -119,6 +119,7 @@
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
- pinctrl-names = "default";
-+ hdmi-supply = <&hdmi_5v>;
- };
-
- &hdmi_tx_tmds_port {
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-index f56969e..ca0228e 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-@@ -200,6 +200,7 @@
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
- pinctrl-names = "default";
-+ hdmi-supply = <&hdmi_5v>;
- };
-
- &hdmi_tx_tmds_port {
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
-index f8c66a7..29c9837 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
-@@ -96,6 +96,7 @@
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
- pinctrl-names = "default";
-+ hdmi-supply = <&hdmi_5v>;
- };
-
- &hdmi_tx_tmds_port {
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
-index 4fbfa5a..fe8e726 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
-@@ -312,6 +312,7 @@
- status = "okay";
- pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
- pinctrl-names = "default";
-+ hdmi-supply = <&hdmi_5v>;
- };
-
- &hdmi_tx_tmds_port {
diff --git a/testing/linux-amlogic/0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch b/testing/linux-amlogic/0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
deleted file mode 100644
index ca8d27efb3a..00000000000
--- a/testing/linux-amlogic/0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From a0d84363005399bb41b3eee556aa813a129bbcdf Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 7 Nov 2018 11:45:47 +0100
-Subject: [PATCH] arm64: dts: meson-gxl-libretech-cc: fix GPIO lines names
-
-The gpio line names were set in the pinctrl node instead of the gpio node,
-at the time it was merged, it worked, but was obviously wrong.
-This patch moves the properties to the gpio nodes.
-
-Fixes: 47884c5c746e ("ARM64: dts: meson-gxl-libretech-cc: Add GPIO lines names")
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-index ca0228e..bb2a8c7 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
-@@ -209,7 +209,7 @@
- };
- };
-
--&pinctrl_aobus {
-+&gpio_ao {
- gpio-line-names = "UART TX",
- "UART RX",
- "Blue LED",
-@@ -224,7 +224,7 @@
- "7J1 Header Pin15";
- };
-
--&pinctrl_periphs {
-+&gpio {
- gpio-line-names = /* Bank GPIOZ */
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
diff --git a/testing/linux-amlogic/0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch b/testing/linux-amlogic/0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch
deleted file mode 100644
index 4ee05f01f14..00000000000
--- a/testing/linux-amlogic/0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 29cf4c3c228fd4cea4f46db9fa5e9386b3e794e6 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 7 Nov 2018 11:45:48 +0100
-Subject: [PATCH] arm64: dts: meson-gxbb-nanopi-k2: fix GPIO lines names
-
-The gpio line names were set in the pinctrl node instead of the gpio node,
-at the time it was merged, it worked, but was obviously wrong.
-This patch moves the properties to the gpio nodes.
-
-Fixes: 12ada0513d7a ("ARM64: dts: meson-gxbb-nanopi-k2: Add GPIO lines names")
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
-index 5b10de9..8ea5ed5 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
-@@ -236,7 +236,7 @@
- pinctrl-names = "default";
- };
-
--&pinctrl_aobus {
-+&gpio_ao {
- gpio-line-names = "UART TX", "UART RX", "Power Control", "Power Key In",
- "VCCK En", "CON1 Header Pin31",
- "I2S Header Pin6", "IR In", "I2S Header Pin7",
-@@ -246,7 +246,7 @@
- "";
- };
-
--&pinctrl_periphs {
-+&gpio {
- gpio-line-names = /* Bank GPIOZ */
- "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
- "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
diff --git a/testing/linux-amlogic/0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch b/testing/linux-amlogic/0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
deleted file mode 100644
index 57e37258f58..00000000000
--- a/testing/linux-amlogic/0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From fe156961d17219329389eee52306a731b8151b49 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 7 Nov 2018 11:45:49 +0100
-Subject: [PATCH] arm64: dts: meson-gxbb-odroidc2: fix GPIO lines names
-
-The gpio line names were set in the pinctrl node instead of the gpio node,
-at the time it was merged, it worked, but was obviously wrong.
-This patch moves the properties to the gpio nodes.
-
-Fixes: b03c7d6438bb ("ARM64: dts: meson-gxbb-odroidc2: Add GPIO lines names")
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
-index 3da3309..73cc801 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
-@@ -232,7 +232,7 @@
- pinctrl-names = "default";
- };
-
--&pinctrl_aobus {
-+&gpio_ao {
- gpio-line-names = "UART TX", "UART RX", "VCCK En", "TF 3V3/1V8 En",
- "USB HUB nRESET", "USB OTG Power En",
- "J7 Header Pin2", "IR In", "J7 Header Pin4",
-@@ -242,7 +242,7 @@
- "";
- };
-
--&pinctrl_periphs {
-+&gpio {
- gpio-line-names = /* Bank GPIOZ */
- "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
- "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
diff --git a/testing/linux-amlogic/0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch b/testing/linux-amlogic/0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
deleted file mode 100644
index 3e686149e6f..00000000000
--- a/testing/linux-amlogic/0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 06df453970ccfbd1affb8ecd6ea50808fa132774 Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Wed, 7 Nov 2018 11:45:50 +0100
-Subject: [PATCH] arm64: dts: meson-gxl-khadas-vim: fix GPIO lines names
-
-The gpio line names were set in the pinctrl node instead of the gpio node,
-at the time it was merged, it worked, but was obviously wrong.
-This patch moves the properties to the gpio nodes.
-
-Fixes: 60795933b709 ("ARM64: dts: meson-gxl-khadas-vim: Add GPIO lines names")
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-index e5ef9b0..1a4b3f3 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
-@@ -158,7 +158,7 @@
- linux,rc-map-name = "rc-geekbox";
- };
-
--&pinctrl_aobus {
-+&gpio_ao {
- gpio-line-names = "UART TX",
- "UART RX",
- "Power Key In",
-@@ -173,7 +173,7 @@
- "";
- };
-
--&pinctrl_periphs {
-+&gpio {
- gpio-line-names = /* Bank GPIOZ */
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
diff --git a/testing/linux-amlogic/0032-drm-meson-Add-support-for-VIC-alternate-timings.patch b/testing/linux-amlogic/0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
deleted file mode 100644
index 42673f4bc2a..00000000000
--- a/testing/linux-amlogic/0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
+++ /dev/null
@@ -1,328 +0,0 @@
-From 96c3cc9c6943cb27ee519cafe17cb563c3fcc28d Mon Sep 17 00:00:00 2001
-From: Neil Armstrong <narmstrong@baylibre.com>
-Date: Tue, 6 Nov 2018 11:54:35 +0100
-Subject: [PATCH] drm/meson: Add support for VIC alternate timings
-
-This change is an attempt to handle the alternate clock for the CEA mode.
-60Hz vs. 59.94Hz, 30Hz vs 29.97Hz or 24Hz vs 23.97Hz on the Amlogic Meson SoC
-DRM Driver pixel clock generation.
-
-The actual clock generation will be moved to the Common Clock framework once
-all the video clock are handled by the Amlogic Meson SoC clock driver,
-then these alternate timings will be handled in the same time in a cleaner
-fashion.
-
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-
----
- drivers/gpu/drm/meson/meson_dw_hdmi.c | 12 +---
- drivers/gpu/drm/meson/meson_vclk.c | 127 +++++++++++++++++++++++-----------
- drivers/gpu/drm/meson/meson_vclk.h | 2 +
- 3 files changed, 89 insertions(+), 52 deletions(-)
-
-diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-index df7247c..d8c5cc3 100644
---- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
-+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
-@@ -594,17 +594,7 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
- dev_dbg(connector->dev->dev, "%s: vclk:%d venc=%d hdmi=%d\n", __func__,
- vclk_freq, venc_freq, hdmi_freq);
-
-- /* Finally filter by configurable vclk frequencies for VIC modes */
-- switch (vclk_freq) {
-- case 54000:
-- case 74250:
-- case 148500:
-- case 297000:
-- case 594000:
-- return MODE_OK;
-- }
--
-- return MODE_CLOCK_RANGE;
-+ return meson_vclk_vic_supported_freq(vclk_freq);
- }
-
- /* Encoder */
-diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c
-index ae54732..5accceb 100644
---- a/drivers/gpu/drm/meson/meson_vclk.c
-+++ b/drivers/gpu/drm/meson/meson_vclk.c
-@@ -117,6 +117,8 @@
- #define HDMI_PLL_RESET BIT(28)
- #define HDMI_PLL_LOCK BIT(31)
-
-+#define FREQ_1000_1001(_freq) DIV_ROUND_CLOSEST(_freq * 1000, 1001)
-+
- /* VID PLL Dividers */
- enum {
- VID_PLL_DIV_1 = 0,
-@@ -323,7 +325,7 @@ static void meson_venci_cvbs_clock_config(struct meson_drm *priv)
- enum {
- /* PLL O1 O2 O3 VP DV EN TX */
- /* 4320 /4 /4 /1 /5 /1 => /2 /2 */
-- MESON_VCLK_HDMI_ENCI_54000 = 1,
-+ MESON_VCLK_HDMI_ENCI_54000 = 0,
- /* 4320 /4 /4 /1 /5 /1 => /1 /2 */
- MESON_VCLK_HDMI_DDR_54000,
- /* 2970 /4 /1 /1 /5 /1 => /1 /2 */
-@@ -339,6 +341,7 @@ enum {
- };
-
- struct meson_vclk_params {
-+ unsigned int pixel_freq;
- unsigned int pll_base_freq;
- unsigned int pll_od1;
- unsigned int pll_od2;
-@@ -347,6 +350,7 @@ struct meson_vclk_params {
- unsigned int vclk_div;
- } params[] = {
- [MESON_VCLK_HDMI_ENCI_54000] = {
-+ .pixel_freq = 54000,
- .pll_base_freq = 4320000,
- .pll_od1 = 4,
- .pll_od2 = 4,
-@@ -355,6 +359,7 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_DDR_54000] = {
-+ .pixel_freq = 54000,
- .pll_base_freq = 4320000,
- .pll_od1 = 4,
- .pll_od2 = 4,
-@@ -363,6 +368,7 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_DDR_148500] = {
-+ .pixel_freq = 148500,
- .pll_base_freq = 2970000,
- .pll_od1 = 4,
- .pll_od2 = 1,
-@@ -371,6 +377,7 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_74250] = {
-+ .pixel_freq = 74250,
- .pll_base_freq = 2970000,
- .pll_od1 = 2,
- .pll_od2 = 2,
-@@ -379,6 +386,7 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_148500] = {
-+ .pixel_freq = 148500,
- .pll_base_freq = 2970000,
- .pll_od1 = 1,
- .pll_od2 = 2,
-@@ -387,6 +395,7 @@ struct meson_vclk_params {
- .vclk_div = 1,
- },
- [MESON_VCLK_HDMI_297000] = {
-+ .pixel_freq = 297000,
- .pll_base_freq = 2970000,
- .pll_od1 = 1,
- .pll_od2 = 1,
-@@ -395,6 +404,7 @@ struct meson_vclk_params {
- .vclk_div = 2,
- },
- [MESON_VCLK_HDMI_594000] = {
-+ .pixel_freq = 594000,
- .pll_base_freq = 5940000,
- .pll_od1 = 1,
- .pll_od2 = 1,
-@@ -402,6 +412,7 @@ struct meson_vclk_params {
- .vid_pll_div = VID_PLL_DIV_5,
- .vclk_div = 1,
- },
-+ { /* sentinel */ },
- };
-
- static inline unsigned int pll_od_to_reg(unsigned int od)
-@@ -626,12 +637,37 @@ static void meson_hdmi_pll_generic_set(struct meson_drm *priv,
- pll_freq);
- }
-
-+enum drm_mode_status
-+meson_vclk_vic_supported_freq(unsigned int freq)
-+{
-+ int i;
-+
-+ DRM_DEBUG_DRIVER("freq = %d\n", freq);
-+
-+ for (i = 0 ; params[i].pixel_freq ; ++i) {
-+ DRM_DEBUG_DRIVER("i = %d pixel_freq = %d alt = %d\n",
-+ i, params[i].pixel_freq,
-+ FREQ_1000_1001(params[i].pixel_freq));
-+ /* Match strict frequency */
-+ if (freq == params[i].pixel_freq)
-+ return MODE_OK;
-+ /* Match 1000/1001 variant */
-+ if (freq == FREQ_1000_1001(params[i].pixel_freq))
-+ return MODE_OK;
-+ }
-+
-+ return MODE_CLOCK_RANGE;
-+}
-+EXPORT_SYMBOL_GPL(meson_vclk_vic_supported_freq);
-+
- static void meson_vclk_set(struct meson_drm *priv, unsigned int pll_base_freq,
- unsigned int od1, unsigned int od2, unsigned int od3,
- unsigned int vid_pll_div, unsigned int vclk_div,
- unsigned int hdmi_tx_div, unsigned int venc_div,
-- bool hdmi_use_enci)
-+ bool hdmi_use_enci, bool vic_alternate_clock)
- {
-+ unsigned int m, frac;
-+
- /* Set HDMI-TX sys clock */
- regmap_update_bits(priv->hhi, HHI_HDMI_CLK_CNTL,
- CTS_HDMI_SYS_SEL_MASK, 0);
-@@ -646,34 +682,38 @@ static void meson_vclk_set(struct meson_drm *priv, unsigned int pll_base_freq,
- } else if (meson_vpu_is_compatible(priv, "amlogic,meson-gxbb-vpu")) {
- switch (pll_base_freq) {
- case 2970000:
-- meson_hdmi_pll_set_params(priv, 0x3d, 0xe00,
-- od1, od2, od3);
-+ m = 0x3d;
-+ frac = vic_alternate_clock ? 0xd02 : 0xe00;
- break;
- case 4320000:
-- meson_hdmi_pll_set_params(priv, 0x5a, 0,
-- od1, od2, od3);
-+ m = vic_alternate_clock ? 0x59 : 0x5a;
-+ frac = vic_alternate_clock ? 0xe8f : 0;
- break;
- case 5940000:
-- meson_hdmi_pll_set_params(priv, 0x7b, 0xc00,
-- od1, od2, od3);
-+ m = 0x7b;
-+ frac = vic_alternate_clock ? 0xa05 : 0xc00;
- break;
- }
-+
-+ meson_hdmi_pll_set_params(priv, m, frac, od1, od2, od3);
- } else if (meson_vpu_is_compatible(priv, "amlogic,meson-gxm-vpu") ||
- meson_vpu_is_compatible(priv, "amlogic,meson-gxl-vpu")) {
- switch (pll_base_freq) {
- case 2970000:
-- meson_hdmi_pll_set_params(priv, 0x7b, 0x300,
-- od1, od2, od3);
-+ m = 0x7b;
-+ frac = vic_alternate_clock ? 0x281 : 0x300;
- break;
- case 4320000:
-- meson_hdmi_pll_set_params(priv, 0xb4, 0,
-- od1, od2, od3);
-+ m = vic_alternate_clock ? 0xb3 : 0xb4;
-+ frac = vic_alternate_clock ? 0x347 : 0;
- break;
- case 5940000:
-- meson_hdmi_pll_set_params(priv, 0xf7, 0x200,
-- od1, od2, od3);
-+ m = 0xf7;
-+ frac = vic_alternate_clock ? 0x102 : 0x200;
- break;
- }
-+
-+ meson_hdmi_pll_set_params(priv, m, frac, od1, od2, od3);
- }
-
- /* Setup vid_pll divider */
-@@ -826,6 +866,7 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- unsigned int vclk_freq, unsigned int venc_freq,
- unsigned int dac_freq, bool hdmi_use_enci)
- {
-+ bool vic_alternate_clock = false;
- unsigned int freq;
- unsigned int hdmi_tx_div;
- unsigned int venc_div;
-@@ -843,7 +884,7 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- * - encp encoder
- */
- meson_vclk_set(priv, vclk_freq * 10, 0, 0, 0,
-- VID_PLL_DIV_5, 2, 1, 1, false);
-+ VID_PLL_DIV_5, 2, 1, 1, false, false);
- return;
- }
-
-@@ -863,31 +904,35 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- return;
- }
-
-- switch (vclk_freq) {
-- case 54000:
-- if (hdmi_use_enci)
-- freq = MESON_VCLK_HDMI_ENCI_54000;
-- else
-- freq = MESON_VCLK_HDMI_DDR_54000;
-- break;
-- case 74250:
-- freq = MESON_VCLK_HDMI_74250;
-- break;
-- case 148500:
-- if (dac_freq != 148500)
-- freq = MESON_VCLK_HDMI_DDR_148500;
-- else
-- freq = MESON_VCLK_HDMI_148500;
-- break;
-- case 297000:
-- freq = MESON_VCLK_HDMI_297000;
-- break;
-- case 594000:
-- freq = MESON_VCLK_HDMI_594000;
-- break;
-- default:
-- pr_err("Fatal Error, invalid HDMI vclk freq %d\n",
-- vclk_freq);
-+ for (freq = 0 ; params[freq].pixel_freq ; ++freq) {
-+ if (vclk_freq == params[freq].pixel_freq ||
-+ vclk_freq == FREQ_1000_1001(params[freq].pixel_freq)) {
-+ if (vclk_freq != params[freq].pixel_freq)
-+ vic_alternate_clock = true;
-+ else
-+ vic_alternate_clock = false;
-+
-+ if (freq == MESON_VCLK_HDMI_ENCI_54000 &&
-+ !hdmi_use_enci)
-+ continue;
-+
-+ if (freq == MESON_VCLK_HDMI_DDR_54000 &&
-+ hdmi_use_enci)
-+ continue;
-+
-+ if (freq == MESON_VCLK_HDMI_DDR_148500 &&
-+ dac_freq == vclk_freq)
-+ continue;
-+
-+ if (freq == MESON_VCLK_HDMI_148500 &&
-+ dac_freq != vclk_freq)
-+ continue;
-+ break;
-+ }
-+ }
-+
-+ if (!params[freq].pixel_freq) {
-+ pr_err("Fatal Error, invalid HDMI vclk freq %d\n", vclk_freq);
- return;
- }
-
-@@ -895,6 +940,6 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- params[freq].pll_od1, params[freq].pll_od2,
- params[freq].pll_od3, params[freq].vid_pll_div,
- params[freq].vclk_div, hdmi_tx_div, venc_div,
-- hdmi_use_enci);
-+ hdmi_use_enci, vic_alternate_clock);
- }
- EXPORT_SYMBOL_GPL(meson_vclk_setup);
-diff --git a/drivers/gpu/drm/meson/meson_vclk.h b/drivers/gpu/drm/meson/meson_vclk.h
-index 869fa3a..4bd8752 100644
---- a/drivers/gpu/drm/meson/meson_vclk.h
-+++ b/drivers/gpu/drm/meson/meson_vclk.h
-@@ -32,6 +32,8 @@ enum {
-
- enum drm_mode_status
- meson_vclk_dmt_supported_freq(struct meson_drm *priv, unsigned int freq);
-+enum drm_mode_status
-+meson_vclk_vic_supported_freq(unsigned int freq);
-
- void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
- unsigned int vclk_freq, unsigned int venc_freq,
diff --git a/testing/linux-amlogic/0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch b/testing/linux-amlogic/0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
deleted file mode 100644
index 3604a6e456a..00000000000
--- a/testing/linux-amlogic/0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
+++ /dev/null
@@ -1,2969 +0,0 @@
-From 2c28b1d1f1487bf4aecb36986c2d7b73eb8ac94d Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 29 Aug 2018 15:17:22 +0200
-Subject: [PATCH] media: meson: add v4l2 m2m video decoder driver
-
-Amlogic SoCs feature a powerful video decoder unit able to
-decode many formats, with a performance of usually up to 4k60.
-
-This is a driver for this IP that is based around the v4l2 m2m framework.
-
-It features decoding for:
-- MPEG 1
-- MPEG 2
-
-Supported SoCs are: GXBB (S905), GXL (S905X/W/D), GXM (S912)
-
-There is also a hardware bitstream parser (ESPARSER) that is handled here.
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- drivers/media/platform/Kconfig | 10 +
- drivers/media/platform/meson/Makefile | 1 +
- drivers/media/platform/meson/vdec/Makefile | 8 +
- drivers/media/platform/meson/vdec/codec_mpeg12.c | 209 +++++
- drivers/media/platform/meson/vdec/codec_mpeg12.h | 14 +
- drivers/media/platform/meson/vdec/dos_regs.h | 98 ++
- drivers/media/platform/meson/vdec/esparser.c | 322 +++++++
- drivers/media/platform/meson/vdec/esparser.h | 32 +
- drivers/media/platform/meson/vdec/vdec.c | 1034 +++++++++++++++++++++
- drivers/media/platform/meson/vdec/vdec.h | 251 +++++
- drivers/media/platform/meson/vdec/vdec_1.c | 231 +++++
- drivers/media/platform/meson/vdec/vdec_1.h | 14 +
- drivers/media/platform/meson/vdec/vdec_helpers.c | 412 ++++++++
- drivers/media/platform/meson/vdec/vdec_helpers.h | 48 +
- drivers/media/platform/meson/vdec/vdec_platform.c | 101 ++
- drivers/media/platform/meson/vdec/vdec_platform.h | 30 +
- 16 files changed, 2815 insertions(+)
- create mode 100644 drivers/media/platform/meson/vdec/Makefile
- create mode 100644 drivers/media/platform/meson/vdec/codec_mpeg12.c
- create mode 100644 drivers/media/platform/meson/vdec/codec_mpeg12.h
- create mode 100644 drivers/media/platform/meson/vdec/dos_regs.h
- create mode 100644 drivers/media/platform/meson/vdec/esparser.c
- create mode 100644 drivers/media/platform/meson/vdec/esparser.h
- create mode 100644 drivers/media/platform/meson/vdec/vdec.c
- create mode 100644 drivers/media/platform/meson/vdec/vdec.h
- create mode 100644 drivers/media/platform/meson/vdec/vdec_1.c
- create mode 100644 drivers/media/platform/meson/vdec/vdec_1.h
- create mode 100644 drivers/media/platform/meson/vdec/vdec_helpers.c
- create mode 100644 drivers/media/platform/meson/vdec/vdec_helpers.h
- create mode 100644 drivers/media/platform/meson/vdec/vdec_platform.c
- create mode 100644 drivers/media/platform/meson/vdec/vdec_platform.h
-
-diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
-index 54fe90a..6bffb0c 100644
---- a/drivers/media/platform/Kconfig
-+++ b/drivers/media/platform/Kconfig
-@@ -482,6 +482,16 @@ config VIDEO_QCOM_VENUS
- on various Qualcomm SoCs.
- To compile this driver as a module choose m here.
-
-+config VIDEO_MESON_VDEC
-+ tristate "Amlogic video decoder driver"
-+ depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
-+ depends on ARCH_MESON || COMPILE_TEST
-+ select VIDEOBUF2_DMA_CONTIG
-+ select V4L2_MEM2MEM_DEV
-+ select MESON_CANVAS
-+ help
-+ Support for the video decoder found in gxbb/gxl/gxm chips.
-+
- endif # V4L_MEM2MEM_DRIVERS
-
- # TI VIDEO PORT Helper Modules
-diff --git a/drivers/media/platform/meson/Makefile b/drivers/media/platform/meson/Makefile
-index 597beb8..f7c6e10 100644
---- a/drivers/media/platform/meson/Makefile
-+++ b/drivers/media/platform/meson/Makefile
-@@ -1 +1,2 @@
- obj-$(CONFIG_VIDEO_MESON_AO_CEC) += ao-cec.o
-+obj-$(CONFIG_VIDEO_MESON_VDEC) += vdec/
-diff --git a/drivers/media/platform/meson/vdec/Makefile b/drivers/media/platform/meson/vdec/Makefile
-new file mode 100644
-index 0000000..6bea129
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/Makefile
-@@ -0,0 +1,8 @@
-+# SPDX-License-Identifier: GPL-2.0
-+# Makefile for Amlogic meson video decoder driver
-+
-+meson-vdec-objs = esparser.o vdec.o vdec_helpers.o vdec_platform.o
-+meson-vdec-objs += vdec_1.o
-+meson-vdec-objs += codec_mpeg12.o
-+
-+obj-$(CONFIG_VIDEO_MESON_VDEC) += meson-vdec.o
-diff --git a/drivers/media/platform/meson/vdec/codec_mpeg12.c b/drivers/media/platform/meson/vdec/codec_mpeg12.c
-new file mode 100644
-index 0000000..1bd6fb7
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_mpeg12.c
-@@ -0,0 +1,209 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#include <media/v4l2-mem2mem.h>
-+#include <media/videobuf2-dma-contig.h>
-+
-+#include "vdec_helpers.h"
-+#include "dos_regs.h"
-+
-+#define SIZE_WORKSPACE SZ_128K
-+/* Offset substracted by the firmware from the workspace paddr */
-+#define WORKSPACE_OFFSET (5 * SZ_1K)
-+
-+/* map firmware registers to known MPEG1/2 functions */
-+#define MREG_SEQ_INFO AV_SCRATCH_4
-+ #define MPEG2_SEQ_DAR_MASK GENMASK(3, 0)
-+ #define MPEG2_DAR_4_3 2
-+ #define MPEG2_DAR_16_9 3
-+ #define MPEG2_DAR_221_100 4
-+#define MREG_PIC_INFO AV_SCRATCH_5
-+#define MREG_PIC_WIDTH AV_SCRATCH_6
-+#define MREG_PIC_HEIGHT AV_SCRATCH_7
-+#define MREG_BUFFERIN AV_SCRATCH_8
-+#define MREG_BUFFEROUT AV_SCRATCH_9
-+#define MREG_CMD AV_SCRATCH_A
-+#define MREG_CO_MV_START AV_SCRATCH_B
-+#define MREG_ERROR_COUNT AV_SCRATCH_C
-+#define MREG_FRAME_OFFSET AV_SCRATCH_D
-+#define MREG_WAIT_BUFFER AV_SCRATCH_E
-+#define MREG_FATAL_ERROR AV_SCRATCH_F
-+
-+#define PICINFO_PROG 0x00008000
-+#define PICINFO_TOP_FIRST 0x00002000
-+
-+struct codec_mpeg12 {
-+ /* Buffer for the MPEG1/2 Workspace */
-+ void *workspace_vaddr;
-+ dma_addr_t workspace_paddr;
-+};
-+
-+static const u8 eos_sequence[SZ_1K] = { 0x00, 0x00, 0x01, 0xB7 };
-+
-+static const u8 *codec_mpeg12_eos_sequence(u32 *len)
-+{
-+ *len = ARRAY_SIZE(eos_sequence);
-+ return eos_sequence;
-+}
-+
-+static int codec_mpeg12_can_recycle(struct amvdec_core *core)
-+{
-+ return !amvdec_read_dos(core, MREG_BUFFERIN);
-+}
-+
-+static void codec_mpeg12_recycle(struct amvdec_core *core, u32 buf_idx)
-+{
-+ amvdec_write_dos(core, MREG_BUFFERIN, buf_idx + 1);
-+}
-+
-+static int codec_mpeg12_start(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ struct codec_mpeg12 *mpeg12 = sess->priv;
-+ int ret;
-+
-+ mpeg12 = kzalloc(sizeof(*mpeg12), GFP_KERNEL);
-+ if (!mpeg12)
-+ return -ENOMEM;
-+
-+ /* Allocate some memory for the MPEG1/2 decoder's state */
-+ mpeg12->workspace_vaddr = dma_alloc_coherent(core->dev, SIZE_WORKSPACE,
-+ &mpeg12->workspace_paddr,
-+ GFP_KERNEL);
-+ if (!mpeg12->workspace_vaddr) {
-+ dev_err(core->dev, "Failed to request MPEG 1/2 Workspace\n");
-+ ret = -ENOMEM;
-+ goto free_mpeg12;
-+ }
-+
-+ ret = amvdec_set_canvases(sess, (u32[]){ AV_SCRATCH_0, 0 },
-+ (u32[]){ 8, 0 });
-+ if (ret)
-+ goto free_workspace;
-+
-+ amvdec_write_dos(core, POWER_CTL_VLD, BIT(4));
-+ amvdec_write_dos(core, MREG_CO_MV_START,
-+ mpeg12->workspace_paddr + WORKSPACE_OFFSET);
-+
-+ amvdec_write_dos(core, MPEG1_2_REG, 0);
-+ amvdec_write_dos(core, PSCALE_CTRL, 0);
-+ amvdec_write_dos(core, PIC_HEAD_INFO, 0x380);
-+ amvdec_write_dos(core, M4_CONTROL_REG, 0);
-+ amvdec_write_dos(core, MREG_BUFFERIN, 0);
-+ amvdec_write_dos(core, MREG_BUFFEROUT, 0);
-+ amvdec_write_dos(core, MREG_CMD, (sess->width << 16) | sess->height);
-+ amvdec_write_dos(core, MREG_ERROR_COUNT, 0);
-+ amvdec_write_dos(core, MREG_FATAL_ERROR, 0);
-+ amvdec_write_dos(core, MREG_WAIT_BUFFER, 0);
-+
-+ sess->keyframe_found = 1;
-+ sess->priv = mpeg12;
-+
-+ return 0;
-+
-+free_workspace:
-+ dma_free_coherent(core->dev, SIZE_WORKSPACE, mpeg12->workspace_vaddr,
-+ mpeg12->workspace_paddr);
-+free_mpeg12:
-+ kfree(mpeg12);
-+
-+ return ret;
-+}
-+
-+static int codec_mpeg12_stop(struct amvdec_session *sess)
-+{
-+ struct codec_mpeg12 *mpeg12 = sess->priv;
-+ struct amvdec_core *core = sess->core;
-+
-+ if (mpeg12->workspace_vaddr)
-+ dma_free_coherent(core->dev, SIZE_WORKSPACE,
-+ mpeg12->workspace_vaddr,
-+ mpeg12->workspace_paddr);
-+
-+ return 0;
-+}
-+
-+static void codec_mpeg12_update_dar(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 seq = amvdec_read_dos(core, MREG_SEQ_INFO);
-+ u32 ar = seq & MPEG2_SEQ_DAR_MASK;
-+
-+ switch (ar) {
-+ case MPEG2_DAR_4_3:
-+ amvdec_set_par_from_dar(sess, 4, 3);
-+ break;
-+ case MPEG2_DAR_16_9:
-+ amvdec_set_par_from_dar(sess, 16, 9);
-+ break;
-+ case MPEG2_DAR_221_100:
-+ amvdec_set_par_from_dar(sess, 221, 100);
-+ break;
-+ default:
-+ sess->pixelaspect.numerator = 1;
-+ sess->pixelaspect.denominator = 1;
-+ break;
-+ };
-+}
-+
-+static irqreturn_t codec_mpeg12_threaded_isr(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 reg;
-+ u32 pic_info;
-+ u32 is_progressive;
-+ u32 buffer_index;
-+ u32 field = V4L2_FIELD_NONE;
-+ u32 offset;
-+
-+ amvdec_write_dos(core, ASSIST_MBOX1_CLR_REG, 1);
-+ reg = amvdec_read_dos(core, MREG_FATAL_ERROR);
-+ if (reg == 1) {
-+ dev_err(core->dev, "MPEG1/2 fatal error\n");
-+ amvdec_abort(sess);
-+ return IRQ_HANDLED;
-+ }
-+
-+ reg = amvdec_read_dos(core, MREG_BUFFEROUT);
-+ if (!reg)
-+ return IRQ_HANDLED;
-+
-+ /* Unclear what this means */
-+ if ((reg & GENMASK(23, 17)) == GENMASK(23, 17))
-+ goto end;
-+
-+ pic_info = amvdec_read_dos(core, MREG_PIC_INFO);
-+ is_progressive = pic_info & PICINFO_PROG;
-+
-+ if (!is_progressive)
-+ field = (pic_info & PICINFO_TOP_FIRST) ?
-+ V4L2_FIELD_INTERLACED_TB :
-+ V4L2_FIELD_INTERLACED_BT;
-+
-+ codec_mpeg12_update_dar(sess);
-+ buffer_index = ((reg & 0xf) - 1) & 7;
-+ offset = amvdec_read_dos(core, MREG_FRAME_OFFSET);
-+ amvdec_dst_buf_done_idx(sess, buffer_index, offset, field);
-+
-+end:
-+ amvdec_write_dos(core, MREG_BUFFEROUT, 0);
-+ return IRQ_HANDLED;
-+}
-+
-+static irqreturn_t codec_mpeg12_isr(struct amvdec_session *sess)
-+{
-+ return IRQ_WAKE_THREAD;
-+}
-+
-+struct amvdec_codec_ops codec_mpeg12_ops = {
-+ .start = codec_mpeg12_start,
-+ .stop = codec_mpeg12_stop,
-+ .isr = codec_mpeg12_isr,
-+ .threaded_isr = codec_mpeg12_threaded_isr,
-+ .can_recycle = codec_mpeg12_can_recycle,
-+ .recycle = codec_mpeg12_recycle,
-+ .eos_sequence = codec_mpeg12_eos_sequence,
-+};
-diff --git a/drivers/media/platform/meson/vdec/codec_mpeg12.h b/drivers/media/platform/meson/vdec/codec_mpeg12.h
-new file mode 100644
-index 0000000..43cab5f
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_mpeg12.h
-@@ -0,0 +1,14 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_CODEC_MPEG12_H_
-+#define __MESON_VDEC_CODEC_MPEG12_H_
-+
-+#include "vdec.h"
-+
-+extern struct amvdec_codec_ops codec_mpeg12_ops;
-+
-+#endif
-diff --git a/drivers/media/platform/meson/vdec/dos_regs.h b/drivers/media/platform/meson/vdec/dos_regs.h
-new file mode 100644
-index 0000000..abd8105
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/dos_regs.h
-@@ -0,0 +1,98 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_DOS_REGS_H_
-+#define __MESON_VDEC_DOS_REGS_H_
-+
-+/* DOS registers */
-+#define VDEC_ASSIST_AMR1_INT8 0x00b4
-+
-+#define ASSIST_MBOX1_CLR_REG 0x01d4
-+#define ASSIST_MBOX1_MASK 0x01d8
-+
-+#define MPSR 0x0c04
-+#define MCPU_INTR_MSK 0x0c10
-+#define CPSR 0x0c84
-+
-+#define IMEM_DMA_CTRL 0x0d00
-+#define IMEM_DMA_ADR 0x0d04
-+#define IMEM_DMA_COUNT 0x0d08
-+#define LMEM_DMA_CTRL 0x0d40
-+
-+#define MC_STATUS0 0x2424
-+#define MC_CTRL1 0x242c
-+
-+#define PSCALE_RST 0x2440
-+#define PSCALE_CTRL 0x2444
-+#define PSCALE_BMEM_ADDR 0x247c
-+#define PSCALE_BMEM_DAT 0x2480
-+
-+#define DBLK_CTRL 0x2544
-+#define DBLK_STATUS 0x254c
-+
-+#define GCLK_EN 0x260c
-+#define MDEC_PIC_DC_CTRL 0x2638
-+#define MDEC_PIC_DC_STATUS 0x263c
-+#define ANC0_CANVAS_ADDR 0x2640
-+#define MDEC_PIC_DC_THRESH 0x26e0
-+
-+/* Firmware interface registers */
-+#define AV_SCRATCH_0 0x2700
-+#define AV_SCRATCH_1 0x2704
-+#define AV_SCRATCH_2 0x2708
-+#define AV_SCRATCH_3 0x270c
-+#define AV_SCRATCH_4 0x2710
-+#define AV_SCRATCH_5 0x2714
-+#define AV_SCRATCH_6 0x2718
-+#define AV_SCRATCH_7 0x271c
-+#define AV_SCRATCH_8 0x2720
-+#define AV_SCRATCH_9 0x2724
-+#define AV_SCRATCH_A 0x2728
-+#define AV_SCRATCH_B 0x272c
-+#define AV_SCRATCH_C 0x2730
-+#define AV_SCRATCH_D 0x2734
-+#define AV_SCRATCH_E 0x2738
-+#define AV_SCRATCH_F 0x273c
-+#define AV_SCRATCH_G 0x2740
-+#define AV_SCRATCH_H 0x2744
-+#define AV_SCRATCH_I 0x2748
-+#define AV_SCRATCH_J 0x274c
-+#define AV_SCRATCH_K 0x2750
-+#define AV_SCRATCH_L 0x2754
-+
-+#define MPEG1_2_REG 0x3004
-+#define PIC_HEAD_INFO 0x300c
-+#define POWER_CTL_VLD 0x3020
-+#define M4_CONTROL_REG 0x30a4
-+
-+/* Stream Buffer (stbuf) regs */
-+#define VLD_MEM_VIFIFO_START_PTR 0x3100
-+#define VLD_MEM_VIFIFO_CURR_PTR 0x3104
-+#define VLD_MEM_VIFIFO_END_PTR 0x3108
-+#define VLD_MEM_VIFIFO_CONTROL 0x3110
-+ #define MEM_FIFO_CNT_BIT 16
-+ #define MEM_FILL_ON_LEVEL BIT(10)
-+ #define MEM_CTRL_EMPTY_EN BIT(2)
-+ #define MEM_CTRL_FILL_EN BIT(1)
-+#define VLD_MEM_VIFIFO_WP 0x3114
-+#define VLD_MEM_VIFIFO_RP 0x3118
-+#define VLD_MEM_VIFIFO_LEVEL 0x311c
-+#define VLD_MEM_VIFIFO_BUF_CNTL 0x3120
-+ #define MEM_BUFCTRL_MANUAL BIT(1)
-+#define VLD_MEM_VIFIFO_WRAP_COUNT 0x3144
-+
-+#define DCAC_DMA_CTRL 0x3848
-+
-+#define DOS_SW_RESET0 0xfc00
-+#define DOS_GCLK_EN0 0xfc04
-+#define DOS_GEN_CTRL0 0xfc08
-+#define DOS_MEM_PD_VDEC 0xfcc0
-+#define DOS_MEM_PD_HEVC 0xfccc
-+#define DOS_SW_RESET3 0xfcd0
-+#define DOS_GCLK_EN3 0xfcd4
-+#define DOS_VDEC_MCRCC_STALL_CTRL 0xfd00
-+
-+#endif
-diff --git a/drivers/media/platform/meson/vdec/esparser.c b/drivers/media/platform/meson/vdec/esparser.c
-new file mode 100644
-index 0000000..9498812
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/esparser.c
-@@ -0,0 +1,322 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ *
-+ * The Elementary Stream Parser is a HW bitstream parser.
-+ * It reads bitstream buffers and feeds them to the VIFIFO
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/ioctl.h>
-+#include <linux/list.h>
-+#include <linux/module.h>
-+#include <linux/of_device.h>
-+#include <linux/reset.h>
-+#include <media/videobuf2-dma-contig.h>
-+#include <media/v4l2-mem2mem.h>
-+
-+#include "dos_regs.h"
-+#include "esparser.h"
-+#include "vdec_helpers.h"
-+
-+/* PARSER REGS (CBUS) */
-+#define PARSER_CONTROL 0x00
-+ #define ES_PACK_SIZE_BIT 8
-+ #define ES_WRITE BIT(5)
-+ #define ES_SEARCH BIT(1)
-+ #define ES_PARSER_START BIT(0)
-+#define PARSER_FETCH_ADDR 0x4
-+#define PARSER_FETCH_CMD 0x8
-+#define PARSER_CONFIG 0x14
-+ #define PS_CFG_MAX_FETCH_CYCLE_BIT 0
-+ #define PS_CFG_STARTCODE_WID_24_BIT 10
-+ #define PS_CFG_MAX_ES_WR_CYCLE_BIT 12
-+ #define PS_CFG_PFIFO_EMPTY_CNT_BIT 16
-+#define PFIFO_WR_PTR 0x18
-+#define PFIFO_RD_PTR 0x1c
-+#define PARSER_SEARCH_PATTERN 0x24
-+ #define ES_START_CODE_PATTERN 0x00000100
-+#define PARSER_SEARCH_MASK 0x28
-+ #define ES_START_CODE_MASK 0xffffff00
-+ #define FETCH_ENDIAN_BIT 27
-+#define PARSER_INT_ENABLE 0x2c
-+ #define PARSER_INT_HOST_EN_BIT 8
-+#define PARSER_INT_STATUS 0x30
-+ #define PARSER_INTSTAT_SC_FOUND 1
-+#define PARSER_ES_CONTROL 0x5c
-+#define PARSER_VIDEO_START_PTR 0x80
-+#define PARSER_VIDEO_END_PTR 0x84
-+#define PARSER_VIDEO_WP 0x88
-+#define PARSER_VIDEO_HOLE 0x90
-+
-+#define SEARCH_PATTERN_LEN 512
-+
-+static DECLARE_WAIT_QUEUE_HEAD(wq);
-+static int search_done;
-+
-+static irqreturn_t esparser_isr(int irq, void *dev)
-+{
-+ int int_status;
-+ struct amvdec_core *core = dev;
-+
-+ int_status = amvdec_read_parser(core, PARSER_INT_STATUS);
-+ amvdec_write_parser(core, PARSER_INT_STATUS, int_status);
-+
-+ if (int_status & PARSER_INTSTAT_SC_FOUND) {
-+ amvdec_write_parser(core, PFIFO_RD_PTR, 0);
-+ amvdec_write_parser(core, PFIFO_WR_PTR, 0);
-+ search_done = 1;
-+ wake_up_interruptible(&wq);
-+ }
-+
-+ return IRQ_HANDLED;
-+}
-+
-+/* Pad the packet to at least 4KiB bytes otherwise the VDEC unit won't trigger
-+ * ISRs.
-+ * Also append a start code 000001ff at the end to trigger
-+ * the ESPARSER interrupt.
-+ */
-+static u32 esparser_pad_start_code(struct vb2_buffer *vb)
-+{
-+ u32 payload_size = vb2_get_plane_payload(vb, 0);
-+ u32 pad_size = 0;
-+ u8 *vaddr = vb2_plane_vaddr(vb, 0) + payload_size;
-+
-+ if (payload_size < ESPARSER_MIN_PACKET_SIZE) {
-+ pad_size = ESPARSER_MIN_PACKET_SIZE - payload_size;
-+ memset(vaddr, 0, pad_size);
-+ }
-+
-+ memset(vaddr + pad_size, 0, SEARCH_PATTERN_LEN);
-+ vaddr[pad_size] = 0x00;
-+ vaddr[pad_size + 1] = 0x00;
-+ vaddr[pad_size + 2] = 0x01;
-+ vaddr[pad_size + 3] = 0xff;
-+
-+ return pad_size;
-+}
-+
-+static int
-+esparser_write_data(struct amvdec_core *core, dma_addr_t addr, u32 size)
-+{
-+ amvdec_write_parser(core, PFIFO_RD_PTR, 0);
-+ amvdec_write_parser(core, PFIFO_WR_PTR, 0);
-+ amvdec_write_parser(core, PARSER_CONTROL,
-+ ES_WRITE |
-+ ES_PARSER_START |
-+ ES_SEARCH |
-+ (size << ES_PACK_SIZE_BIT));
-+
-+ amvdec_write_parser(core, PARSER_FETCH_ADDR, addr);
-+ amvdec_write_parser(core, PARSER_FETCH_CMD,
-+ (7 << FETCH_ENDIAN_BIT) |
-+ (size + SEARCH_PATTERN_LEN));
-+
-+ search_done = 0;
-+ return wait_event_interruptible_timeout(wq, search_done, (HZ / 5));
-+}
-+
-+static u32 esparser_vififo_get_free_space(struct amvdec_session *sess)
-+{
-+ u32 vififo_usage;
-+ struct amvdec_ops *vdec_ops = sess->fmt_out->vdec_ops;
-+ struct amvdec_core *core = sess->core;
-+
-+ vififo_usage = vdec_ops->vififo_level(sess);
-+ vififo_usage += amvdec_read_parser(core, PARSER_VIDEO_HOLE);
-+ vififo_usage += (6 * SZ_1K); // 6 KiB internal fifo
-+
-+ if (vififo_usage > sess->vififo_size) {
-+ dev_warn(sess->core->dev,
-+ "VIFIFO usage (%u) > VIFIFO size (%u)\n",
-+ vififo_usage, sess->vififo_size);
-+ return 0;
-+ }
-+
-+ return sess->vififo_size - vififo_usage;
-+}
-+
-+int esparser_queue_eos(struct amvdec_core *core, const u8 *data, u32 len)
-+{
-+ struct device *dev = core->dev;
-+ void *eos_vaddr;
-+ dma_addr_t eos_paddr;
-+ int ret;
-+
-+ eos_vaddr = dma_alloc_coherent(dev,
-+ len + SEARCH_PATTERN_LEN,
-+ &eos_paddr, GFP_KERNEL);
-+ if (!eos_vaddr)
-+ return -ENOMEM;
-+
-+ memset(eos_vaddr, 0, len + SEARCH_PATTERN_LEN);
-+ memcpy(eos_vaddr, data, len);
-+ ret = esparser_write_data(core, eos_paddr, len);
-+ dma_free_coherent(dev, len + SEARCH_PATTERN_LEN,
-+ eos_vaddr, eos_paddr);
-+
-+ return ret;
-+}
-+
-+static u32 esparser_get_offset(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 offset = amvdec_read_parser(core, PARSER_VIDEO_WP) -
-+ sess->vififo_paddr;
-+
-+ if (offset < sess->last_offset)
-+ sess->wrap_count++;
-+
-+ sess->last_offset = offset;
-+ offset += (sess->wrap_count * sess->vififo_size);
-+
-+ return offset;
-+}
-+
-+static int
-+esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
-+{
-+ int ret;
-+ struct vb2_buffer *vb = &vbuf->vb2_buf;
-+ struct amvdec_core *core = sess->core;
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+ u32 num_dst_bufs = 0;
-+ u32 payload_size = vb2_get_plane_payload(vb, 0);
-+ dma_addr_t phy = vb2_dma_contig_plane_dma_addr(vb, 0);
-+ u32 offset;
-+ u32 pad_size;
-+
-+ if (codec_ops->num_pending_bufs)
-+ num_dst_bufs = codec_ops->num_pending_bufs(sess);
-+
-+ num_dst_bufs += v4l2_m2m_num_dst_bufs_ready(sess->m2m_ctx);
-+
-+ if (esparser_vififo_get_free_space(sess) < payload_size ||
-+ atomic_read(&sess->esparser_queued_bufs) >= num_dst_bufs)
-+ return -EAGAIN;
-+
-+ v4l2_m2m_src_buf_remove_by_buf(sess->m2m_ctx, vbuf);
-+
-+ offset = esparser_get_offset(sess);
-+
-+ amvdec_add_ts_reorder(sess, vb->timestamp, offset);
-+ dev_dbg(core->dev, "esparser: ts = %llu pld_size = %u offset = %08X\n",
-+ vb->timestamp, payload_size, offset);
-+
-+ pad_size = esparser_pad_start_code(vb);
-+ ret = esparser_write_data(core, phy, payload_size + pad_size);
-+
-+ if (ret <= 0) {
-+ dev_warn(core->dev, "esparser: input parsing error\n");
-+ amvdec_remove_ts(sess, vb->timestamp);
-+ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR);
-+ amvdec_write_parser(core, PARSER_FETCH_CMD, 0);
-+
-+ return 0;
-+ }
-+
-+ /* We need to wait until we parse the first keyframe.
-+ * All buffers prior to the first keyframe must be dropped.
-+ */
-+ if (!sess->keyframe_found)
-+ usleep_range(1000, 2000);
-+
-+ if (sess->keyframe_found)
-+ atomic_inc(&sess->esparser_queued_bufs);
-+ else
-+ amvdec_remove_ts(sess, vb->timestamp);
-+
-+ vbuf->flags = 0;
-+ vbuf->field = V4L2_FIELD_NONE;
-+ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_DONE);
-+
-+ return 0;
-+}
-+
-+void esparser_queue_all_src(struct work_struct *work)
-+{
-+ struct v4l2_m2m_buffer *buf, *n;
-+ struct amvdec_session *sess =
-+ container_of(work, struct amvdec_session, esparser_queue_work);
-+
-+ mutex_lock(&sess->lock);
-+ v4l2_m2m_for_each_src_buf_safe(sess->m2m_ctx, buf, n) {
-+ if (esparser_queue(sess, &buf->vb) < 0)
-+ break;
-+ }
-+ mutex_unlock(&sess->lock);
-+}
-+
-+int esparser_power_up(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ struct amvdec_ops *vdec_ops = sess->fmt_out->vdec_ops;
-+
-+ reset_control_reset(core->esparser_reset);
-+ amvdec_write_parser(core, PARSER_CONFIG,
-+ (10 << PS_CFG_PFIFO_EMPTY_CNT_BIT) |
-+ (1 << PS_CFG_MAX_ES_WR_CYCLE_BIT) |
-+ (16 << PS_CFG_MAX_FETCH_CYCLE_BIT));
-+
-+ amvdec_write_parser(core, PFIFO_RD_PTR, 0);
-+ amvdec_write_parser(core, PFIFO_WR_PTR, 0);
-+
-+ amvdec_write_parser(core, PARSER_SEARCH_PATTERN,
-+ ES_START_CODE_PATTERN);
-+ amvdec_write_parser(core, PARSER_SEARCH_MASK, ES_START_CODE_MASK);
-+
-+ amvdec_write_parser(core, PARSER_CONFIG,
-+ (10 << PS_CFG_PFIFO_EMPTY_CNT_BIT) |
-+ (1 << PS_CFG_MAX_ES_WR_CYCLE_BIT) |
-+ (16 << PS_CFG_MAX_FETCH_CYCLE_BIT) |
-+ (2 << PS_CFG_STARTCODE_WID_24_BIT));
-+
-+ amvdec_write_parser(core, PARSER_CONTROL,
-+ (ES_SEARCH | ES_PARSER_START));
-+
-+ amvdec_write_parser(core, PARSER_VIDEO_START_PTR, sess->vififo_paddr);
-+ amvdec_write_parser(core, PARSER_VIDEO_END_PTR,
-+ sess->vififo_paddr + sess->vififo_size - 8);
-+ amvdec_write_parser(core, PARSER_ES_CONTROL,
-+ amvdec_read_parser(core, PARSER_ES_CONTROL) & ~1);
-+
-+ if (vdec_ops->conf_esparser)
-+ vdec_ops->conf_esparser(sess);
-+
-+ amvdec_write_parser(core, PARSER_INT_STATUS, 0xffff);
-+ amvdec_write_parser(core, PARSER_INT_ENABLE,
-+ BIT(PARSER_INT_HOST_EN_BIT));
-+
-+ return 0;
-+}
-+
-+int esparser_init(struct platform_device *pdev, struct amvdec_core *core)
-+{
-+ struct device *dev = &pdev->dev;
-+ int ret;
-+ int irq;
-+
-+ irq = platform_get_irq_byname(pdev, "esparser");
-+ if (irq < 0) {
-+ dev_err(dev, "Failed getting ESPARSER IRQ from dtb\n");
-+ return irq;
-+ }
-+
-+ ret = devm_request_irq(dev, irq, esparser_isr, IRQF_SHARED,
-+ "esparserirq", core);
-+ if (ret) {
-+ dev_err(dev, "Failed requesting ESPARSER IRQ\n");
-+ return ret;
-+ }
-+
-+ core->esparser_reset =
-+ devm_reset_control_get_exclusive(dev, "esparser");
-+ if (IS_ERR(core->esparser_reset)) {
-+ dev_err(dev, "Failed to get esparser_reset\n");
-+ return PTR_ERR(core->esparser_reset);
-+ }
-+
-+ return 0;
-+}
-diff --git a/drivers/media/platform/meson/vdec/esparser.h b/drivers/media/platform/meson/vdec/esparser.h
-new file mode 100644
-index 0000000..ff51fe7
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/esparser.h
-@@ -0,0 +1,32 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_ESPARSER_H_
-+#define __MESON_VDEC_ESPARSER_H_
-+
-+#include <linux/platform_device.h>
-+
-+#include "vdec.h"
-+
-+int esparser_init(struct platform_device *pdev, struct amvdec_core *core);
-+int esparser_power_up(struct amvdec_session *sess);
-+
-+/**
-+ * esparser_queue_eos() - write End Of Stream sequence to the ESPARSER
-+ *
-+ * @core vdec core struct
-+ */
-+int esparser_queue_eos(struct amvdec_core *core, const u8 *data, u32 len);
-+
-+/**
-+ * esparser_queue_all_src() - work handler that writes as many src buffers
-+ * as possible to the ESPARSER
-+ */
-+void esparser_queue_all_src(struct work_struct *work);
-+
-+#define ESPARSER_MIN_PACKET_SIZE SZ_4K
-+
-+#endif
-diff --git a/drivers/media/platform/meson/vdec/vdec.c b/drivers/media/platform/meson/vdec/vdec.c
-new file mode 100644
-index 0000000..d8db52c
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec.c
-@@ -0,0 +1,1034 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#include <linux/of_device.h>
-+#include <linux/clk.h>
-+#include <linux/io.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <linux/mfd/syscon.h>
-+#include <linux/slab.h>
-+#include <media/v4l2-ioctl.h>
-+#include <media/v4l2-event.h>
-+#include <media/v4l2-ctrls.h>
-+#include <media/v4l2-mem2mem.h>
-+#include <media/v4l2-dev.h>
-+#include <media/videobuf2-dma-contig.h>
-+
-+#include "vdec.h"
-+#include "esparser.h"
-+#include "vdec_helpers.h"
-+
-+struct dummy_buf {
-+ struct vb2_v4l2_buffer vb;
-+ struct list_head list;
-+};
-+
-+/* 16 MiB for parsed bitstream swap exchange */
-+#define SIZE_VIFIFO SZ_16M
-+
-+static u32 get_output_size(u32 width, u32 height)
-+{
-+ return ALIGN(width * height, SZ_64K);
-+}
-+
-+u32 amvdec_get_output_size(struct amvdec_session *sess)
-+{
-+ return get_output_size(sess->width, sess->height);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_get_output_size);
-+
-+static int vdec_codec_needs_recycle(struct amvdec_session *sess)
-+{
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+
-+ return codec_ops->can_recycle && codec_ops->recycle;
-+}
-+
-+static int vdec_recycle_thread(void *data)
-+{
-+ struct amvdec_session *sess = data;
-+ struct amvdec_core *core = sess->core;
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+ struct amvdec_buffer *tmp, *n;
-+
-+ while (!kthread_should_stop()) {
-+ mutex_lock(&sess->bufs_recycle_lock);
-+ list_for_each_entry_safe(tmp, n, &sess->bufs_recycle, list) {
-+ if (!codec_ops->can_recycle(core))
-+ break;
-+
-+ codec_ops->recycle(core, tmp->vb->index);
-+ list_del(&tmp->list);
-+ kfree(tmp);
-+ }
-+ mutex_unlock(&sess->bufs_recycle_lock);
-+
-+ usleep_range(5000, 10000);
-+ }
-+
-+ return 0;
-+}
-+
-+static int vdec_poweron(struct amvdec_session *sess)
-+{
-+ int ret;
-+ struct amvdec_ops *vdec_ops = sess->fmt_out->vdec_ops;
-+
-+ ret = clk_prepare_enable(sess->core->dos_parser_clk);
-+ if (ret)
-+ return ret;
-+
-+ ret = clk_prepare_enable(sess->core->dos_clk);
-+ if (ret)
-+ goto disable_dos_parser;
-+
-+ ret = vdec_ops->start(sess);
-+ if (ret)
-+ goto disable_dos;
-+
-+ esparser_power_up(sess);
-+
-+ return 0;
-+
-+disable_dos:
-+ clk_disable_unprepare(sess->core->dos_clk);
-+disable_dos_parser:
-+ clk_disable_unprepare(sess->core->dos_parser_clk);
-+
-+ return ret;
-+}
-+
-+static void vdec_wait_inactive(struct amvdec_session *sess)
-+{
-+ /* We consider 50ms with no IRQ to be inactive. */
-+ while (time_is_after_jiffies64(sess->last_irq_jiffies +
-+ msecs_to_jiffies(50)))
-+ msleep(25);
-+}
-+
-+static void vdec_poweroff(struct amvdec_session *sess)
-+{
-+ struct amvdec_ops *vdec_ops = sess->fmt_out->vdec_ops;
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+
-+ vdec_wait_inactive(sess);
-+ if (codec_ops->drain)
-+ codec_ops->drain(sess);
-+
-+ vdec_ops->stop(sess);
-+ clk_disable_unprepare(sess->core->dos_clk);
-+ clk_disable_unprepare(sess->core->dos_parser_clk);
-+}
-+
-+static void
-+vdec_queue_recycle(struct amvdec_session *sess, struct vb2_buffer *vb)
-+{
-+ struct amvdec_buffer *new_buf;
-+
-+ new_buf = kmalloc(sizeof(*new_buf), GFP_KERNEL);
-+ new_buf->vb = vb;
-+
-+ mutex_lock(&sess->bufs_recycle_lock);
-+ list_add_tail(&new_buf->list, &sess->bufs_recycle);
-+ mutex_unlock(&sess->bufs_recycle_lock);
-+}
-+
-+static void vdec_m2m_device_run(void *priv)
-+{
-+ struct amvdec_session *sess = priv;
-+
-+ schedule_work(&sess->esparser_queue_work);
-+}
-+
-+static void vdec_m2m_job_abort(void *priv)
-+{
-+ struct amvdec_session *sess = priv;
-+
-+ v4l2_m2m_job_finish(sess->m2m_dev, sess->m2m_ctx);
-+}
-+
-+static const struct v4l2_m2m_ops vdec_m2m_ops = {
-+ .device_run = vdec_m2m_device_run,
-+ .job_abort = vdec_m2m_job_abort,
-+};
-+
-+static int vdec_queue_setup(struct vb2_queue *q,
-+ unsigned int *num_buffers, unsigned int *num_planes,
-+ unsigned int sizes[], struct device *alloc_devs[])
-+{
-+ struct amvdec_session *sess = vb2_get_drv_priv(q);
-+ const struct amvdec_format *fmt_out = sess->fmt_out;
-+ u32 output_size = amvdec_get_output_size(sess);
-+ u32 buffers_total;
-+
-+ if (*num_planes) {
-+ switch (q->type) {
-+ case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
-+ if (*num_planes != 1 || sizes[0] < output_size)
-+ return -EINVAL;
-+ break;
-+ case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
-+ switch (sess->pixfmt_cap) {
-+ case V4L2_PIX_FMT_NV12M:
-+ if (*num_planes != 2 ||
-+ sizes[0] < output_size ||
-+ sizes[1] < output_size / 2)
-+ return -EINVAL;
-+ break;
-+ case V4L2_PIX_FMT_YUV420M:
-+ if (*num_planes != 3 ||
-+ sizes[0] < output_size ||
-+ sizes[1] < output_size / 4 ||
-+ sizes[2] < output_size / 4)
-+ return -EINVAL;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ break;
-+ }
-+
-+ return 0;
-+ }
-+
-+ switch (q->type) {
-+ case V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE:
-+ sizes[0] = amvdec_get_output_size(sess);
-+ *num_planes = 1;
-+ break;
-+ case V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE:
-+ switch (sess->pixfmt_cap) {
-+ case V4L2_PIX_FMT_NV12M:
-+ sizes[0] = output_size;
-+ sizes[1] = output_size / 2;
-+ *num_planes = 2;
-+ break;
-+ case V4L2_PIX_FMT_YUV420M:
-+ sizes[0] = output_size;
-+ sizes[1] = output_size / 4;
-+ sizes[2] = output_size / 4;
-+ *num_planes = 3;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ buffers_total = q->num_buffers + *num_buffers;
-+
-+ if (buffers_total < fmt_out->min_buffers)
-+ *num_buffers = fmt_out->min_buffers - q->num_buffers;
-+ if (buffers_total > fmt_out->max_buffers)
-+ *num_buffers = fmt_out->max_buffers - q->num_buffers;
-+
-+ /* We need to program the complete CAPTURE buffer list
-+ * in registers during start_streaming, and the firmwares
-+ * are free to choose any of them to write frames to. As such,
-+ * we need all of them to be queued into the driver
-+ */
-+ q->min_buffers_needed = q->num_buffers + *num_buffers;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static void vdec_vb2_buf_queue(struct vb2_buffer *vb)
-+{
-+ struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
-+ struct amvdec_session *sess = vb2_get_drv_priv(vb->vb2_queue);
-+ struct v4l2_m2m_ctx *m2m_ctx = sess->m2m_ctx;
-+
-+ v4l2_m2m_buf_queue(m2m_ctx, vbuf);
-+
-+ if (!sess->streamon_out || !sess->streamon_cap)
-+ return;
-+
-+ if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE &&
-+ vdec_codec_needs_recycle(sess))
-+ vdec_queue_recycle(sess, vb);
-+
-+ schedule_work(&sess->esparser_queue_work);
-+}
-+
-+static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
-+{
-+ struct amvdec_session *sess = vb2_get_drv_priv(q);
-+ struct amvdec_core *core = sess->core;
-+ struct vb2_v4l2_buffer *buf;
-+ int ret;
-+
-+ if (core->cur_sess && core->cur_sess != sess) {
-+ ret = -EBUSY;
-+ goto bufs_done;
-+ }
-+
-+ if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
-+ sess->streamon_out = 1;
-+ else
-+ sess->streamon_cap = 1;
-+
-+ if (!sess->streamon_out || !sess->streamon_cap)
-+ return 0;
-+
-+ sess->vififo_size = SIZE_VIFIFO;
-+ sess->vififo_vaddr =
-+ dma_alloc_coherent(sess->core->dev, sess->vififo_size,
-+ &sess->vififo_paddr, GFP_KERNEL);
-+ if (!sess->vififo_vaddr) {
-+ dev_err(sess->core->dev, "Failed to request VIFIFO buffer\n");
-+ ret = -ENOMEM;
-+ goto bufs_done;
-+ }
-+
-+ sess->should_stop = 0;
-+ sess->keyframe_found = 0;
-+ sess->last_offset = 0;
-+ sess->wrap_count = 0;
-+ sess->pixelaspect.numerator = 1;
-+ sess->pixelaspect.denominator = 1;
-+ atomic_set(&sess->esparser_queued_bufs, 0);
-+
-+ ret = vdec_poweron(sess);
-+ if (ret)
-+ goto vififo_free;
-+
-+ sess->sequence_cap = 0;
-+ if (vdec_codec_needs_recycle(sess))
-+ sess->recycle_thread = kthread_run(vdec_recycle_thread, sess,
-+ "vdec_recycle");
-+
-+ core->cur_sess = sess;
-+
-+ return 0;
-+
-+vififo_free:
-+ dma_free_coherent(sess->core->dev, sess->vififo_size,
-+ sess->vififo_vaddr, sess->vififo_paddr);
-+bufs_done:
-+ while ((buf = v4l2_m2m_src_buf_remove(sess->m2m_ctx)))
-+ v4l2_m2m_buf_done(buf, VB2_BUF_STATE_QUEUED);
-+ while ((buf = v4l2_m2m_dst_buf_remove(sess->m2m_ctx)))
-+ v4l2_m2m_buf_done(buf, VB2_BUF_STATE_QUEUED);
-+
-+ if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
-+ sess->streamon_out = 0;
-+ else
-+ sess->streamon_cap = 0;
-+
-+ return ret;
-+}
-+
-+static void vdec_free_canvas(struct amvdec_session *sess)
-+{
-+ int i;
-+
-+ for (i = 0; i < sess->canvas_num; ++i)
-+ meson_canvas_free(sess->core->canvas, sess->canvas_alloc[i]);
-+
-+ sess->canvas_num = 0;
-+}
-+
-+static void vdec_reset_timestamps(struct amvdec_session *sess)
-+{
-+ struct amvdec_timestamp *tmp, *n;
-+
-+ list_for_each_entry_safe(tmp, n, &sess->timestamps, list) {
-+ list_del(&tmp->list);
-+ kfree(tmp);
-+ }
-+}
-+
-+static void vdec_reset_bufs_recycle(struct amvdec_session *sess)
-+{
-+ struct amvdec_buffer *tmp, *n;
-+
-+ list_for_each_entry_safe(tmp, n, &sess->bufs_recycle, list) {
-+ list_del(&tmp->list);
-+ kfree(tmp);
-+ }
-+}
-+
-+static void vdec_stop_streaming(struct vb2_queue *q)
-+{
-+ struct amvdec_session *sess = vb2_get_drv_priv(q);
-+ struct amvdec_core *core = sess->core;
-+ struct vb2_v4l2_buffer *buf;
-+
-+ if (sess->streamon_out && sess->streamon_cap) {
-+ if (vdec_codec_needs_recycle(sess))
-+ kthread_stop(sess->recycle_thread);
-+
-+ vdec_poweroff(sess);
-+ vdec_free_canvas(sess);
-+ dma_free_coherent(sess->core->dev, sess->vififo_size,
-+ sess->vififo_vaddr, sess->vififo_paddr);
-+ vdec_reset_timestamps(sess);
-+ vdec_reset_bufs_recycle(sess);
-+ kfree(sess->priv);
-+ sess->priv = NULL;
-+ core->cur_sess = NULL;
-+ }
-+
-+ if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-+ while ((buf = v4l2_m2m_src_buf_remove(sess->m2m_ctx)))
-+ v4l2_m2m_buf_done(buf, VB2_BUF_STATE_ERROR);
-+
-+ sess->streamon_out = 0;
-+ } else {
-+ while ((buf = v4l2_m2m_dst_buf_remove(sess->m2m_ctx)))
-+ v4l2_m2m_buf_done(buf, VB2_BUF_STATE_ERROR);
-+
-+ sess->streamon_cap = 0;
-+ }
-+}
-+
-+static const struct vb2_ops vdec_vb2_ops = {
-+ .queue_setup = vdec_queue_setup,
-+ .start_streaming = vdec_start_streaming,
-+ .stop_streaming = vdec_stop_streaming,
-+ .buf_queue = vdec_vb2_buf_queue,
-+ .wait_prepare = vb2_ops_wait_prepare,
-+ .wait_finish = vb2_ops_wait_finish,
-+};
-+
-+static int
-+vdec_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
-+{
-+ strscpy(cap->driver, "meson-vdec", sizeof(cap->driver));
-+ strscpy(cap->card, "Amlogic Video Decoder", sizeof(cap->card));
-+ strscpy(cap->bus_info, "platform:meson-vdec", sizeof(cap->bus_info));
-+
-+ return 0;
-+}
-+
-+static const struct amvdec_format *
-+find_format(const struct amvdec_format *fmts, u32 size, u32 pixfmt)
-+{
-+ unsigned int i;
-+
-+ for (i = 0; i < size; i++) {
-+ if (fmts[i].pixfmt == pixfmt)
-+ return &fmts[i];
-+ }
-+
-+ return NULL;
-+}
-+
-+static unsigned int
-+vdec_supports_pixfmt_cap(const struct amvdec_format *fmt_out, u32 pixfmt_cap)
-+{
-+ int i;
-+
-+ for (i = 0; fmt_out->pixfmts_cap[i]; i++)
-+ if (fmt_out->pixfmts_cap[i] == pixfmt_cap)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+static const struct amvdec_format *
-+vdec_try_fmt_common(struct amvdec_session *sess, u32 size,
-+ struct v4l2_format *f)
-+{
-+ struct v4l2_pix_format_mplane *pixmp = &f->fmt.pix_mp;
-+ struct v4l2_plane_pix_format *pfmt = pixmp->plane_fmt;
-+ const struct amvdec_format *fmts = sess->core->platform->formats;
-+ const struct amvdec_format *fmt_out;
-+
-+ memset(pfmt[0].reserved, 0, sizeof(pfmt[0].reserved));
-+ memset(pixmp->reserved, 0, sizeof(pixmp->reserved));
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-+ fmt_out = find_format(fmts, size, pixmp->pixelformat);
-+ if (!fmt_out) {
-+ pixmp->pixelformat = V4L2_PIX_FMT_MPEG2;
-+ fmt_out = find_format(fmts, size, pixmp->pixelformat);
-+ }
-+
-+ pfmt[0].sizeimage =
-+ get_output_size(pixmp->width, pixmp->height);
-+ pfmt[0].bytesperline = 0;
-+ pixmp->num_planes = 1;
-+ } else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
-+ fmt_out = sess->fmt_out;
-+ if (!vdec_supports_pixfmt_cap(fmt_out, pixmp->pixelformat))
-+ pixmp->pixelformat = fmt_out->pixfmts_cap[0];
-+
-+ memset(pfmt[1].reserved, 0, sizeof(pfmt[1].reserved));
-+ if (pixmp->pixelformat == V4L2_PIX_FMT_NV12M) {
-+ pfmt[0].sizeimage =
-+ get_output_size(pixmp->width, pixmp->height);
-+ pfmt[0].bytesperline = ALIGN(pixmp->width, 64);
-+
-+ pfmt[1].sizeimage =
-+ get_output_size(pixmp->width, pixmp->height) / 2;
-+ pfmt[1].bytesperline = ALIGN(pixmp->width, 64);
-+ pixmp->num_planes = 2;
-+ } else if (pixmp->pixelformat == V4L2_PIX_FMT_YUV420M) {
-+ pfmt[0].sizeimage =
-+ get_output_size(pixmp->width, pixmp->height);
-+ pfmt[0].bytesperline = ALIGN(pixmp->width, 64);
-+
-+ pfmt[1].sizeimage =
-+ get_output_size(pixmp->width, pixmp->height) / 4;
-+ pfmt[1].bytesperline = ALIGN(pixmp->width, 64) / 2;
-+
-+ pfmt[2].sizeimage =
-+ get_output_size(pixmp->width, pixmp->height) / 4;
-+ pfmt[2].bytesperline = ALIGN(pixmp->width, 64) / 2;
-+ pixmp->num_planes = 3;
-+ }
-+ } else {
-+ return NULL;
-+ }
-+
-+ pixmp->width = clamp(pixmp->width, (u32)256, fmt_out->max_width);
-+ pixmp->height = clamp(pixmp->height, (u32)144, fmt_out->max_height);
-+
-+ if (pixmp->field == V4L2_FIELD_ANY)
-+ pixmp->field = V4L2_FIELD_NONE;
-+
-+ return fmt_out;
-+}
-+
-+static int vdec_try_fmt(struct file *file, void *fh, struct v4l2_format *f)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+
-+ vdec_try_fmt_common(sess, sess->core->platform->num_formats, f);
-+
-+ return 0;
-+}
-+
-+static int vdec_g_fmt(struct file *file, void *fh, struct v4l2_format *f)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+ struct v4l2_pix_format_mplane *pixmp = &f->fmt.pix_mp;
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
-+ pixmp->pixelformat = sess->pixfmt_cap;
-+ else if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
-+ pixmp->pixelformat = sess->fmt_out->pixfmt;
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
-+ pixmp->width = sess->width;
-+ pixmp->height = sess->height;
-+ pixmp->colorspace = sess->colorspace;
-+ pixmp->ycbcr_enc = sess->ycbcr_enc;
-+ pixmp->quantization = sess->quantization;
-+ pixmp->xfer_func = sess->xfer_func;
-+ } else if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-+ pixmp->width = sess->width;
-+ pixmp->height = sess->height;
-+ }
-+
-+ vdec_try_fmt_common(sess, sess->core->platform->num_formats, f);
-+
-+ return 0;
-+}
-+
-+static int vdec_s_fmt(struct file *file, void *fh, struct v4l2_format *f)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+ struct v4l2_pix_format_mplane *pixmp = &f->fmt.pix_mp;
-+ u32 num_formats = sess->core->platform->num_formats;
-+ const struct amvdec_format *fmt_out;
-+ struct v4l2_pix_format_mplane orig_pixmp;
-+ struct v4l2_format format;
-+ u32 pixfmt_out = 0, pixfmt_cap = 0;
-+
-+ orig_pixmp = *pixmp;
-+
-+ fmt_out = vdec_try_fmt_common(sess, num_formats, f);
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-+ pixfmt_out = pixmp->pixelformat;
-+ pixfmt_cap = sess->pixfmt_cap;
-+ } else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
-+ pixfmt_cap = pixmp->pixelformat;
-+ pixfmt_out = sess->fmt_out->pixfmt;
-+ }
-+
-+ memset(&format, 0, sizeof(format));
-+
-+ format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-+ format.fmt.pix_mp.pixelformat = pixfmt_out;
-+ format.fmt.pix_mp.width = orig_pixmp.width;
-+ format.fmt.pix_mp.height = orig_pixmp.height;
-+ vdec_try_fmt_common(sess, num_formats, &format);
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-+ sess->width = format.fmt.pix_mp.width;
-+ sess->height = format.fmt.pix_mp.height;
-+ sess->colorspace = pixmp->colorspace;
-+ sess->ycbcr_enc = pixmp->ycbcr_enc;
-+ sess->quantization = pixmp->quantization;
-+ sess->xfer_func = pixmp->xfer_func;
-+ }
-+
-+ memset(&format, 0, sizeof(format));
-+
-+ format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-+ format.fmt.pix_mp.pixelformat = pixfmt_cap;
-+ format.fmt.pix_mp.width = orig_pixmp.width;
-+ format.fmt.pix_mp.height = orig_pixmp.height;
-+ vdec_try_fmt_common(sess, num_formats, &format);
-+
-+ sess->width = format.fmt.pix_mp.width;
-+ sess->height = format.fmt.pix_mp.height;
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
-+ sess->fmt_out = fmt_out;
-+ else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
-+ sess->pixfmt_cap = format.fmt.pix_mp.pixelformat;
-+
-+ return 0;
-+}
-+
-+static int vdec_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc *f)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+ const struct vdec_platform *platform = sess->core->platform;
-+ const struct amvdec_format *fmt_out;
-+
-+ memset(f->reserved, 0, sizeof(f->reserved));
-+
-+ if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-+ if (f->index >= platform->num_formats)
-+ return -EINVAL;
-+
-+ fmt_out = &platform->formats[f->index];
-+ f->pixelformat = fmt_out->pixfmt;
-+ } else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
-+ fmt_out = sess->fmt_out;
-+ if (f->index >= 4 || !fmt_out->pixfmts_cap[f->index])
-+ return -EINVAL;
-+
-+ f->pixelformat = fmt_out->pixfmts_cap[f->index];
-+ } else {
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int vdec_enum_framesizes(struct file *file, void *fh,
-+ struct v4l2_frmsizeenum *fsize)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+ const struct amvdec_format *formats = sess->core->platform->formats;
-+ const struct amvdec_format *fmt;
-+ u32 num_formats = sess->core->platform->num_formats;
-+
-+ fmt = find_format(formats, num_formats, fsize->pixel_format);
-+ if (!fmt || fsize->index)
-+ return -EINVAL;
-+
-+ fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE;
-+
-+ fsize->stepwise.min_width = 256;
-+ fsize->stepwise.max_width = fmt->max_width;
-+ fsize->stepwise.step_width = 1;
-+ fsize->stepwise.min_height = 144;
-+ fsize->stepwise.max_height = fmt->max_height;
-+ fsize->stepwise.step_height = 1;
-+
-+ return 0;
-+}
-+
-+static int
-+vdec_try_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *cmd)
-+{
-+ switch (cmd->cmd) {
-+ case V4L2_DEC_CMD_STOP:
-+ if (cmd->flags & V4L2_DEC_CMD_STOP_TO_BLACK)
-+ return -EINVAL;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *cmd)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+ struct device *dev = sess->core->dev;
-+ int ret;
-+
-+ ret = vdec_try_decoder_cmd(file, fh, cmd);
-+ if (ret)
-+ return ret;
-+
-+ if (!(sess->streamon_out & sess->streamon_cap))
-+ return 0;
-+
-+ dev_dbg(dev, "Received V4L2_DEC_CMD_STOP\n");
-+ sess->should_stop = 1;
-+
-+ vdec_wait_inactive(sess);
-+
-+ if (codec_ops->drain) {
-+ codec_ops->drain(sess);
-+ } else if (codec_ops->eos_sequence) {
-+ u32 len;
-+ const u8 *data = codec_ops->eos_sequence(&len);
-+
-+ esparser_queue_eos(sess->core, data, len);
-+ }
-+
-+ return ret;
-+}
-+
-+static int vdec_subscribe_event(struct v4l2_fh *fh,
-+ const struct v4l2_event_subscription *sub)
-+{
-+ switch (sub->type) {
-+ case V4L2_EVENT_EOS:
-+ return v4l2_event_subscribe(fh, sub, 2, NULL);
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+static int vdec_cropcap(struct file *file, void *fh,
-+ struct v4l2_cropcap *crop)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+
-+ if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
-+ return -EINVAL;
-+
-+ crop->pixelaspect = sess->pixelaspect;
-+ return 0;
-+}
-+
-+static const struct v4l2_ioctl_ops vdec_ioctl_ops = {
-+ .vidioc_querycap = vdec_querycap,
-+ .vidioc_enum_fmt_vid_cap_mplane = vdec_enum_fmt,
-+ .vidioc_enum_fmt_vid_out_mplane = vdec_enum_fmt,
-+ .vidioc_s_fmt_vid_cap_mplane = vdec_s_fmt,
-+ .vidioc_s_fmt_vid_out_mplane = vdec_s_fmt,
-+ .vidioc_g_fmt_vid_cap_mplane = vdec_g_fmt,
-+ .vidioc_g_fmt_vid_out_mplane = vdec_g_fmt,
-+ .vidioc_try_fmt_vid_cap_mplane = vdec_try_fmt,
-+ .vidioc_try_fmt_vid_out_mplane = vdec_try_fmt,
-+ .vidioc_reqbufs = v4l2_m2m_ioctl_reqbufs,
-+ .vidioc_querybuf = v4l2_m2m_ioctl_querybuf,
-+ .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf,
-+ .vidioc_qbuf = v4l2_m2m_ioctl_qbuf,
-+ .vidioc_expbuf = v4l2_m2m_ioctl_expbuf,
-+ .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf,
-+ .vidioc_streamon = v4l2_m2m_ioctl_streamon,
-+ .vidioc_streamoff = v4l2_m2m_ioctl_streamoff,
-+ .vidioc_enum_framesizes = vdec_enum_framesizes,
-+ .vidioc_subscribe_event = vdec_subscribe_event,
-+ .vidioc_unsubscribe_event = v4l2_event_unsubscribe,
-+ .vidioc_try_decoder_cmd = vdec_try_decoder_cmd,
-+ .vidioc_decoder_cmd = vdec_decoder_cmd,
-+ .vidioc_cropcap = vdec_cropcap,
-+};
-+
-+static int m2m_queue_init(void *priv, struct vb2_queue *src_vq,
-+ struct vb2_queue *dst_vq)
-+{
-+ struct amvdec_session *sess = priv;
-+ int ret;
-+
-+ src_vq->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
-+ src_vq->io_modes = VB2_MMAP | VB2_DMABUF;
-+ src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
-+ src_vq->ops = &vdec_vb2_ops;
-+ src_vq->mem_ops = &vb2_dma_contig_memops;
-+ src_vq->drv_priv = sess;
-+ src_vq->buf_struct_size = sizeof(struct dummy_buf);
-+ src_vq->min_buffers_needed = 1;
-+ src_vq->dev = sess->core->dev;
-+ src_vq->lock = &sess->lock;
-+ ret = vb2_queue_init(src_vq);
-+ if (ret)
-+ return ret;
-+
-+ dst_vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
-+ dst_vq->io_modes = VB2_MMAP | VB2_DMABUF;
-+ dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
-+ dst_vq->ops = &vdec_vb2_ops;
-+ dst_vq->mem_ops = &vb2_dma_contig_memops;
-+ dst_vq->drv_priv = sess;
-+ dst_vq->buf_struct_size = sizeof(struct dummy_buf);
-+ dst_vq->min_buffers_needed = 1;
-+ dst_vq->dev = sess->core->dev;
-+ dst_vq->lock = &sess->lock;
-+ ret = vb2_queue_init(dst_vq);
-+ if (ret) {
-+ vb2_queue_release(src_vq);
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static int vdec_open(struct file *file)
-+{
-+ struct amvdec_core *core = video_drvdata(file);
-+ struct device *dev = core->dev;
-+ const struct amvdec_format *formats = core->platform->formats;
-+ struct amvdec_session *sess;
-+ int ret;
-+
-+ sess = kzalloc(sizeof(*sess), GFP_KERNEL);
-+ if (!sess)
-+ return -ENOMEM;
-+
-+ sess->core = core;
-+
-+ sess->m2m_dev = v4l2_m2m_init(&vdec_m2m_ops);
-+ if (IS_ERR(sess->m2m_dev)) {
-+ dev_err(dev, "Fail to v4l2_m2m_init\n");
-+ ret = PTR_ERR(sess->m2m_dev);
-+ goto err_free_sess;
-+ }
-+
-+ sess->m2m_ctx = v4l2_m2m_ctx_init(sess->m2m_dev, sess, m2m_queue_init);
-+ if (IS_ERR(sess->m2m_ctx)) {
-+ dev_err(dev, "Fail to v4l2_m2m_ctx_init\n");
-+ ret = PTR_ERR(sess->m2m_ctx);
-+ goto err_m2m_release;
-+ }
-+
-+ sess->pixfmt_cap = formats[0].pixfmts_cap[0];
-+ sess->fmt_out = &formats[0];
-+ sess->width = 1280;
-+ sess->height = 720;
-+ sess->pixelaspect.numerator = 1;
-+ sess->pixelaspect.denominator = 1;
-+
-+ INIT_LIST_HEAD(&sess->timestamps);
-+ INIT_LIST_HEAD(&sess->bufs_recycle);
-+ INIT_WORK(&sess->esparser_queue_work, esparser_queue_all_src);
-+ mutex_init(&sess->lock);
-+ mutex_init(&sess->bufs_recycle_lock);
-+ spin_lock_init(&sess->ts_spinlock);
-+
-+ v4l2_fh_init(&sess->fh, core->vdev_dec);
-+ v4l2_fh_add(&sess->fh);
-+ sess->fh.m2m_ctx = sess->m2m_ctx;
-+ file->private_data = &sess->fh;
-+
-+ return 0;
-+
-+err_m2m_release:
-+ v4l2_m2m_release(sess->m2m_dev);
-+err_free_sess:
-+ kfree(sess);
-+ return ret;
-+}
-+
-+static int vdec_close(struct file *file)
-+{
-+ struct amvdec_session *sess =
-+ container_of(file->private_data, struct amvdec_session, fh);
-+
-+ v4l2_m2m_ctx_release(sess->m2m_ctx);
-+ v4l2_m2m_release(sess->m2m_dev);
-+ v4l2_fh_del(&sess->fh);
-+ v4l2_fh_exit(&sess->fh);
-+
-+ mutex_destroy(&sess->lock);
-+ mutex_destroy(&sess->bufs_recycle_lock);
-+
-+ kfree(sess);
-+
-+ return 0;
-+}
-+
-+static const struct v4l2_file_operations vdec_fops = {
-+ .owner = THIS_MODULE,
-+ .open = vdec_open,
-+ .release = vdec_close,
-+ .unlocked_ioctl = video_ioctl2,
-+ .poll = v4l2_m2m_fop_poll,
-+ .mmap = v4l2_m2m_fop_mmap,
-+};
-+
-+static irqreturn_t vdec_isr(int irq, void *data)
-+{
-+ struct amvdec_core *core = data;
-+ struct amvdec_session *sess = core->cur_sess;
-+
-+ sess->last_irq_jiffies = get_jiffies_64();
-+
-+ return sess->fmt_out->codec_ops->isr(sess);
-+}
-+
-+static irqreturn_t vdec_threaded_isr(int irq, void *data)
-+{
-+ struct amvdec_core *core = data;
-+ struct amvdec_session *sess = core->cur_sess;
-+
-+ return sess->fmt_out->codec_ops->threaded_isr(sess);
-+}
-+
-+static const struct of_device_id vdec_dt_match[] = {
-+ { .compatible = "amlogic,gxbb-vdec",
-+ .data = &vdec_platform_gxbb },
-+ { .compatible = "amlogic,gxm-vdec",
-+ .data = &vdec_platform_gxm },
-+ { .compatible = "amlogic,gxl-vdec",
-+ .data = &vdec_platform_gxl },
-+ {}
-+};
-+MODULE_DEVICE_TABLE(of, vdec_dt_match);
-+
-+static int vdec_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct video_device *vdev;
-+ struct amvdec_core *core;
-+ struct resource *r;
-+ const struct of_device_id *of_id;
-+ int irq;
-+ int ret;
-+
-+ core = devm_kzalloc(dev, sizeof(*core), GFP_KERNEL);
-+ if (!core)
-+ return -ENOMEM;
-+
-+ core->dev = dev;
-+ platform_set_drvdata(pdev, core);
-+
-+ r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dos");
-+ core->dos_base = devm_ioremap_resource(dev, r);
-+ if (IS_ERR(core->dos_base)) {
-+ dev_err(dev, "Couldn't remap DOS memory\n");
-+ return PTR_ERR(core->dos_base);
-+ }
-+
-+ r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "esparser");
-+ core->esparser_base = devm_ioremap_resource(dev, r);
-+ if (IS_ERR(core->esparser_base)) {
-+ dev_err(dev, "Couldn't remap ESPARSER memory\n");
-+ return PTR_ERR(core->esparser_base);
-+ }
-+
-+ core->regmap_ao = syscon_regmap_lookup_by_phandle(dev->of_node,
-+ "amlogic,ao-sysctrl");
-+ if (IS_ERR(core->regmap_ao)) {
-+ dev_err(dev, "Couldn't regmap AO sysctrl\n");
-+ return PTR_ERR(core->regmap_ao);
-+ }
-+
-+ core->canvas = meson_canvas_get(dev);
-+ if (!core->canvas)
-+ return PTR_ERR(core->canvas);
-+
-+ core->dos_parser_clk = devm_clk_get(dev, "dos_parser");
-+ if (IS_ERR(core->dos_parser_clk))
-+ return -EPROBE_DEFER;
-+
-+ core->dos_clk = devm_clk_get(dev, "dos");
-+ if (IS_ERR(core->dos_clk))
-+ return -EPROBE_DEFER;
-+
-+ core->vdec_1_clk = devm_clk_get(dev, "vdec_1");
-+ if (IS_ERR(core->vdec_1_clk))
-+ return -EPROBE_DEFER;
-+
-+ core->vdec_hevc_clk = devm_clk_get(dev, "vdec_hevc");
-+ if (IS_ERR(core->vdec_hevc_clk))
-+ return -EPROBE_DEFER;
-+
-+ irq = platform_get_irq_byname(pdev, "vdec");
-+ if (irq < 0)
-+ return irq;
-+
-+ ret = devm_request_threaded_irq(core->dev, irq, vdec_isr,
-+ vdec_threaded_isr, IRQF_ONESHOT,
-+ "vdec", core);
-+ if (ret)
-+ return ret;
-+
-+ ret = esparser_init(pdev, core);
-+ if (ret)
-+ return ret;
-+
-+ ret = v4l2_device_register(dev, &core->v4l2_dev);
-+ if (ret) {
-+ dev_err(dev, "Couldn't register v4l2 device\n");
-+ return -ENOMEM;
-+ }
-+
-+ vdev = video_device_alloc();
-+ if (!vdev) {
-+ ret = -ENOMEM;
-+ goto err_vdev_release;
-+ }
-+
-+ of_id = of_match_node(vdec_dt_match, dev->of_node);
-+ core->platform = of_id->data;
-+ core->vdev_dec = vdev;
-+ core->dev_dec = dev;
-+ mutex_init(&core->lock);
-+
-+ strscpy(vdev->name, "meson-video-decoder", sizeof(vdev->name));
-+ vdev->release = video_device_release;
-+ vdev->fops = &vdec_fops;
-+ vdev->ioctl_ops = &vdec_ioctl_ops;
-+ vdev->vfl_dir = VFL_DIR_M2M;
-+ vdev->v4l2_dev = &core->v4l2_dev;
-+ vdev->lock = &core->lock;
-+ vdev->device_caps = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_STREAMING;
-+
-+ video_set_drvdata(vdev, core);
-+
-+ ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
-+ if (ret) {
-+ dev_err(dev, "Failed registering video device\n");
-+ goto err_vdev_release;
-+ }
-+
-+ return 0;
-+
-+err_vdev_release:
-+ video_device_release(vdev);
-+ return ret;
-+}
-+
-+static int vdec_remove(struct platform_device *pdev)
-+{
-+ struct amvdec_core *core = platform_get_drvdata(pdev);
-+
-+ video_unregister_device(core->vdev_dec);
-+
-+ return 0;
-+}
-+
-+static struct platform_driver meson_vdec_driver = {
-+ .probe = vdec_probe,
-+ .remove = vdec_remove,
-+ .driver = {
-+ .name = "meson-vdec",
-+ .of_match_table = vdec_dt_match,
-+ },
-+};
-+module_platform_driver(meson_vdec_driver);
-+
-+MODULE_DESCRIPTION("Meson video decoder driver for GXBB/GXL/GXM");
-+MODULE_AUTHOR("Maxime Jourdan <mjourdan@baylibre.com>");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/media/platform/meson/vdec/vdec.h b/drivers/media/platform/meson/vdec/vdec.h
-new file mode 100644
-index 0000000..4e8c3f1
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec.h
-@@ -0,0 +1,251 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_CORE_H_
-+#define __MESON_VDEC_CORE_H_
-+
-+#include <linux/regmap.h>
-+#include <linux/list.h>
-+#include <media/videobuf2-v4l2.h>
-+#include <media/v4l2-ctrls.h>
-+#include <media/v4l2-device.h>
-+#include <linux/soc/amlogic/meson-canvas.h>
-+
-+#include "vdec_platform.h"
-+
-+/* 32 buffers in 3-plane YUV420 */
-+#define MAX_CANVAS (32 * 3)
-+
-+struct amvdec_buffer {
-+ struct list_head list;
-+ struct vb2_buffer *vb;
-+};
-+
-+/**
-+ * struct amvdec_timestamp - stores a src timestamp along with a VIFIFO offset
-+ *
-+ * @list: used to make lists out of this struct
-+ * @ts: timestamp
-+ * @offset: offset in the VIFIFO where the associated packet was written
-+ */
-+struct amvdec_timestamp {
-+ struct list_head list;
-+ u64 ts;
-+ u32 offset;
-+};
-+
-+struct amvdec_session;
-+
-+/**
-+ * struct amvdec_core - device parameters, singleton
-+ *
-+ * @dos_base: DOS memory base address
-+ * @esparser_base: PARSER memory base address
-+ * @regmap_ao: regmap for the AO bus
-+ * @dev: core device
-+ * @dev_dec: decoder device
-+ * @platform: platform-specific data
-+ * @canvas: canvas provider reference
-+ * @dos_parser_clk: DOS_PARSER clock
-+ * @dos_clk: DOS clock
-+ * @vdec_1_clk: VDEC_1 clock
-+ * @vdec_hevc_clk: VDEC_HEVC clock
-+ * @esparser_reset: RESET for the PARSER
-+ * @vdec_dec: video device for the decoder
-+ * @v4l2_dev: v4l2 device
-+ * @cur_sess: current decoding session
-+ * @lock: lock for this structure
-+ */
-+struct amvdec_core {
-+ void __iomem *dos_base;
-+ void __iomem *esparser_base;
-+ struct regmap *regmap_ao;
-+
-+ struct device *dev;
-+ struct device *dev_dec;
-+ const struct vdec_platform *platform;
-+
-+ struct meson_canvas *canvas;
-+
-+ struct clk *dos_parser_clk;
-+ struct clk *dos_clk;
-+ struct clk *vdec_1_clk;
-+ struct clk *vdec_hevc_clk;
-+
-+ struct reset_control *esparser_reset;
-+
-+ struct video_device *vdev_dec;
-+ struct v4l2_device v4l2_dev;
-+
-+ struct amvdec_session *cur_sess;
-+ struct mutex lock;
-+};
-+
-+/**
-+ * struct amvdec_ops - vdec operations
-+ *
-+ * @start: mandatory call when the vdec needs to initialize
-+ * @stop: mandatory call when the vdec needs to stop
-+ * @conf_esparser: mandatory call to let the vdec configure the ESPARSER
-+ * @vififo_level: mandatory call to get the current amount of data
-+ * in the VIFIFO
-+ * @use_offsets: mandatory call. Returns 1 if the VDEC supports vififo offsets
-+ */
-+struct amvdec_ops {
-+ int (*start)(struct amvdec_session *sess);
-+ int (*stop)(struct amvdec_session *sess);
-+ void (*conf_esparser)(struct amvdec_session *sess);
-+ u32 (*vififo_level)(struct amvdec_session *sess);
-+};
-+
-+/**
-+ * struct amvdec_codec_ops - codec operations
-+ *
-+ * @start: mandatory call when the codec needs to initialize
-+ * @stop: mandatory call when the codec needs to stop
-+ * @load_extended_firmware: optional call to load additional firmware bits
-+ * @num_pending_bufs: optional call to get the number of dst buffers on hold
-+ * @can_recycle: optional call to know if the codec is ready to recycle
-+ * a dst buffer
-+ * @recycle: optional call to tell the codec to recycle a dst buffer. Must go
-+ * in pair with @can_recycle
-+ * @drain: optional call if the codec has a custom way of draining
-+ * @eos_sequence: optional call to get an end sequence to send to esparser
-+ * for flush. Mutually exclusive with @drain.
-+ * @isr: mandatory call when the ISR triggers
-+ * @threaded_isr: mandatory call for the threaded ISR
-+ */
-+struct amvdec_codec_ops {
-+ int (*start)(struct amvdec_session *sess);
-+ int (*stop)(struct amvdec_session *sess);
-+ int (*load_extended_firmware)(struct amvdec_session *sess,
-+ const u8 *data, u32 len);
-+ u32 (*num_pending_bufs)(struct amvdec_session *sess);
-+ int (*can_recycle)(struct amvdec_core *core);
-+ void (*recycle)(struct amvdec_core *core, u32 buf_idx);
-+ void (*drain)(struct amvdec_session *sess);
-+ const u8 * (*eos_sequence)(u32 *len);
-+ irqreturn_t (*isr)(struct amvdec_session *sess);
-+ irqreturn_t (*threaded_isr)(struct amvdec_session *sess);
-+};
-+
-+/**
-+ * struct amvdec_format - describes one of the OUTPUT (src) format supported
-+ *
-+ * @pixfmt: V4L2 pixel format
-+ * @min_buffers: minimum amount of CAPTURE (dst) buffers
-+ * @max_buffers: maximum amount of CAPTURE (dst) buffers
-+ * @max_width: maximum picture width supported
-+ * @max_height: maximum picture height supported
-+ * @vdec_ops: the VDEC operations that support this format
-+ * @codec_ops: the codec operations that support this format
-+ * @firmware_path: Path to the firmware that supports this format
-+ * @pixfmts_cap: list of CAPTURE pixel formats available with pixfmt
-+ */
-+struct amvdec_format {
-+ u32 pixfmt;
-+ u32 min_buffers;
-+ u32 max_buffers;
-+ u32 max_width;
-+ u32 max_height;
-+
-+ struct amvdec_ops *vdec_ops;
-+ struct amvdec_codec_ops *codec_ops;
-+
-+ char *firmware_path;
-+ u32 pixfmts_cap[4];
-+};
-+
-+/**
-+ * struct amvdec_session - decoding session parameters
-+ *
-+ * @core: reference to the vdec core struct
-+ * @fh: v4l2 file handle
-+ * @m2m_dev: v4l2 m2m device
-+ * @m2m_ctx: v4l2 m2m context
-+ * @lock: session lock
-+ * @fmt_out: vdec pixel format for the OUTPUT queue
-+ * @pixfmt_cap: V4L2 pixel format for the CAPTURE queue
-+ * @width: current picture width
-+ * @height: current picture height
-+ * @colorspace: current colorspace
-+ * @ycbcr_enc: current ycbcr_enc
-+ * @quantization: current quantization
-+ * @xfer_func: current transfer function
-+ * @pixelaspect: Pixel Aspect Ratio reported by the decoder
-+ * @esparser_queued_bufs: number of buffers currently queued into ESPARSER
-+ * @esparser_queue_work: work struct for the ESPARSER to process src buffers
-+ * @streamon_cap: stream on flag for capture queue
-+ * @streamon_out: stream on flag for output queue
-+ * @sequence_cap: capture sequence counter
-+ * @should_stop: flag set if userspace signaled EOS via command
-+ * or empty buffer
-+ * @keyframe_found: flag set once a keyframe has been parsed
-+ * @canvas_alloc: array of all the canvas IDs allocated
-+ * @canvas_num: number of canvas IDs allocated
-+ * @vififo_vaddr: virtual address for the VIFIFO
-+ * @vififo_paddr: physical address for the VIFIFO
-+ * @vififo_size: size of the VIFIFO dma alloc
-+ * @bufs_recycle: list of buffers that need to be recycled
-+ * @bufs_recycle_lock: lock for the bufs_recycle list
-+ * @recycle_thread: task struct for the recycling thread
-+ * @timestamps: chronological list of src timestamps
-+ * @ts_spinlock: spinlock for the timestamps list
-+ * @last_irq_jiffies: tracks last time the vdec triggered an IRQ
-+ * @priv: codec private data
-+ */
-+struct amvdec_session {
-+ struct amvdec_core *core;
-+
-+ struct v4l2_fh fh;
-+ struct v4l2_m2m_dev *m2m_dev;
-+ struct v4l2_m2m_ctx *m2m_ctx;
-+ struct mutex lock;
-+
-+ const struct amvdec_format *fmt_out;
-+ u32 pixfmt_cap;
-+
-+ u32 width;
-+ u32 height;
-+ u32 colorspace;
-+ u8 ycbcr_enc;
-+ u8 quantization;
-+ u8 xfer_func;
-+
-+ struct v4l2_fract pixelaspect;
-+
-+ atomic_t esparser_queued_bufs;
-+ struct work_struct esparser_queue_work;
-+
-+ unsigned int streamon_cap, streamon_out;
-+ unsigned int sequence_cap;
-+ unsigned int should_stop;
-+ unsigned int keyframe_found;
-+
-+ u8 canvas_alloc[MAX_CANVAS];
-+ u32 canvas_num;
-+
-+ void *vififo_vaddr;
-+ dma_addr_t vififo_paddr;
-+ u32 vififo_size;
-+
-+ struct list_head bufs_recycle;
-+ struct mutex bufs_recycle_lock;
-+ struct task_struct *recycle_thread;
-+
-+ struct list_head timestamps;
-+ spinlock_t ts_spinlock;
-+
-+ u64 last_irq_jiffies;
-+ u32 last_offset;
-+ u32 wrap_count;
-+
-+ void *priv;
-+};
-+
-+u32 amvdec_get_output_size(struct amvdec_session *sess);
-+
-+#endif
-diff --git a/drivers/media/platform/meson/vdec/vdec_1.c b/drivers/media/platform/meson/vdec/vdec_1.c
-new file mode 100644
-index 0000000..88b8bed
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_1.c
-@@ -0,0 +1,231 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ *
-+ * VDEC_1 is a video decoding block that allows decoding of
-+ * MPEG 1/2/4, H.263, H.264, MJPEG, VC1
-+ */
-+
-+#include <linux/firmware.h>
-+#include <linux/clk.h>
-+
-+#include "vdec_1.h"
-+#include "vdec_helpers.h"
-+#include "dos_regs.h"
-+
-+/* AO Registers */
-+#define AO_RTI_GEN_PWR_SLEEP0 0xe8
-+#define AO_RTI_GEN_PWR_ISO0 0xec
-+ #define GEN_PWR_VDEC_1 (BIT(3) | BIT(2))
-+
-+#define MC_SIZE (4096 * 4)
-+
-+static int
-+vdec_1_load_firmware(struct amvdec_session *sess, const char *fwname)
-+{
-+ const struct firmware *fw;
-+ struct amvdec_core *core = sess->core;
-+ struct device *dev = core->dev_dec;
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+ static void *mc_addr;
-+ static dma_addr_t mc_addr_map;
-+ int ret;
-+ u32 i = 1000;
-+
-+ ret = request_firmware(&fw, fwname, dev);
-+ if (ret < 0)
-+ return -EINVAL;
-+
-+ if (fw->size < MC_SIZE) {
-+ dev_err(dev, "Firmware size %zu is too small. Expected %u.\n",
-+ fw->size, MC_SIZE);
-+ ret = -EINVAL;
-+ goto release_firmware;
-+ }
-+
-+ mc_addr = dma_alloc_coherent(core->dev, MC_SIZE,
-+ &mc_addr_map, GFP_KERNEL);
-+ if (!mc_addr) {
-+ dev_err(dev,
-+ "Failed allocating memory for firmware loading\n");
-+ ret = -ENOMEM;
-+ goto release_firmware;
-+ }
-+
-+ memcpy(mc_addr, fw->data, MC_SIZE);
-+
-+ amvdec_write_dos(core, MPSR, 0);
-+ amvdec_write_dos(core, CPSR, 0);
-+
-+ amvdec_clear_dos_bits(core, MDEC_PIC_DC_CTRL, BIT(31));
-+
-+ amvdec_write_dos(core, IMEM_DMA_ADR, mc_addr_map);
-+ amvdec_write_dos(core, IMEM_DMA_COUNT, MC_SIZE / 4);
-+ amvdec_write_dos(core, IMEM_DMA_CTRL, (0x8000 | (7 << 16)));
-+
-+ while (--i && amvdec_read_dos(core, IMEM_DMA_CTRL) & 0x8000) { }
-+
-+ if (i == 0) {
-+ dev_err(dev, "Firmware load fail (DMA hang?)\n");
-+ ret = -EINVAL;
-+ goto free_mc;
-+ }
-+
-+ if (codec_ops->load_extended_firmware)
-+ ret = codec_ops->load_extended_firmware(sess,
-+ fw->data + MC_SIZE,
-+ fw->size - MC_SIZE);
-+
-+free_mc:
-+ dma_free_coherent(core->dev, MC_SIZE, mc_addr, mc_addr_map);
-+release_firmware:
-+ release_firmware(fw);
-+ return ret;
-+}
-+
-+int vdec_1_stbuf_power_up(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_CONTROL, 0);
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_WRAP_COUNT, 0);
-+ amvdec_write_dos(core, POWER_CTL_VLD, BIT(4));
-+
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_START_PTR, sess->vififo_paddr);
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_CURR_PTR, sess->vififo_paddr);
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_END_PTR,
-+ sess->vififo_paddr + sess->vififo_size - 8);
-+
-+ amvdec_write_dos_bits(core, VLD_MEM_VIFIFO_CONTROL, 1);
-+ amvdec_clear_dos_bits(core, VLD_MEM_VIFIFO_CONTROL, 1);
-+
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_BUF_CNTL, MEM_BUFCTRL_MANUAL);
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_WP, sess->vififo_paddr);
-+
-+ amvdec_write_dos_bits(core, VLD_MEM_VIFIFO_BUF_CNTL, 1);
-+ amvdec_clear_dos_bits(core, VLD_MEM_VIFIFO_BUF_CNTL, 1);
-+
-+ amvdec_write_dos_bits(core, VLD_MEM_VIFIFO_CONTROL,
-+ (0x11 << MEM_FIFO_CNT_BIT) | MEM_FILL_ON_LEVEL |
-+ MEM_CTRL_FILL_EN | MEM_CTRL_EMPTY_EN);
-+
-+ return 0;
-+}
-+
-+static void vdec_1_conf_esparser(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+
-+ /* VDEC_1 specific ESPARSER stuff */
-+ amvdec_write_dos(core, DOS_GEN_CTRL0, 0);
-+ amvdec_write_dos(core, VLD_MEM_VIFIFO_BUF_CNTL, 1);
-+ amvdec_clear_dos_bits(core, VLD_MEM_VIFIFO_BUF_CNTL, 1);
-+}
-+
-+static u32 vdec_1_vififo_level(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+
-+ return amvdec_read_dos(core, VLD_MEM_VIFIFO_LEVEL);
-+}
-+
-+static int vdec_1_stop(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+
-+ amvdec_write_dos(core, MPSR, 0);
-+ amvdec_write_dos(core, CPSR, 0);
-+ amvdec_write_dos(core, ASSIST_MBOX1_MASK, 0);
-+
-+ amvdec_write_dos(core, DOS_SW_RESET0, BIT(12) | BIT(11));
-+ amvdec_write_dos(core, DOS_SW_RESET0, 0);
-+ amvdec_read_dos(core, DOS_SW_RESET0);
-+
-+ /* enable vdec1 isolation */
-+ regmap_write(core->regmap_ao, AO_RTI_GEN_PWR_ISO0, 0xc0);
-+ /* power off vdec1 memories */
-+ amvdec_write_dos(core, DOS_MEM_PD_VDEC, 0xffffffff);
-+ /* power off vdec1 */
-+ regmap_update_bits(core->regmap_ao, AO_RTI_GEN_PWR_SLEEP0,
-+ GEN_PWR_VDEC_1, GEN_PWR_VDEC_1);
-+
-+ clk_disable_unprepare(core->vdec_1_clk);
-+
-+ if (sess->priv)
-+ codec_ops->stop(sess);
-+
-+ return 0;
-+}
-+
-+static int vdec_1_start(struct amvdec_session *sess)
-+{
-+ int ret;
-+ struct amvdec_core *core = sess->core;
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
-+
-+ /* Configure the vdec clk to the maximum available */
-+ clk_set_rate(core->vdec_1_clk, 666666666);
-+ ret = clk_prepare_enable(core->vdec_1_clk);
-+ if (ret)
-+ return ret;
-+
-+ regmap_update_bits(core->regmap_ao, AO_RTI_GEN_PWR_SLEEP0,
-+ GEN_PWR_VDEC_1, 0);
-+ udelay(10);
-+
-+ /* Reset VDEC1 */
-+ amvdec_write_dos(core, DOS_SW_RESET0, 0xfffffffc);
-+ amvdec_write_dos(core, DOS_SW_RESET0, 0x00000000);
-+
-+ amvdec_write_dos(core, DOS_GCLK_EN0, 0x3ff);
-+
-+ /* enable VDEC Memories */
-+ amvdec_write_dos(core, DOS_MEM_PD_VDEC, 0);
-+ /* Remove VDEC1 Isolation */
-+ regmap_write(core->regmap_ao, AO_RTI_GEN_PWR_ISO0, 0);
-+ /* Reset DOS top registers */
-+ amvdec_write_dos(core, DOS_VDEC_MCRCC_STALL_CTRL, 0);
-+
-+ amvdec_write_dos(core, GCLK_EN, 0x3ff);
-+ amvdec_clear_dos_bits(core, MDEC_PIC_DC_CTRL, BIT(31));
-+
-+ vdec_1_stbuf_power_up(sess);
-+
-+ ret = vdec_1_load_firmware(sess, sess->fmt_out->firmware_path);
-+ if (ret)
-+ goto stop;
-+
-+ ret = codec_ops->start(sess);
-+ if (ret)
-+ goto stop;
-+
-+ /* Enable IRQ */
-+ amvdec_write_dos(core, ASSIST_MBOX1_CLR_REG, 1);
-+ amvdec_write_dos(core, ASSIST_MBOX1_MASK, 1);
-+
-+ /* Enable 2-plane output */
-+ if (sess->pixfmt_cap == V4L2_PIX_FMT_NV12M)
-+ amvdec_write_dos_bits(core, MDEC_PIC_DC_CTRL, BIT(17));
-+ else
-+ amvdec_clear_dos_bits(core, MDEC_PIC_DC_CTRL, BIT(17));
-+
-+ /* Enable firmware processor */
-+ amvdec_write_dos(core, MPSR, 1);
-+ /* Let the firmware settle */
-+ udelay(10);
-+
-+ return 0;
-+
-+stop:
-+ vdec_1_stop(sess);
-+ return ret;
-+}
-+
-+struct amvdec_ops vdec_1_ops = {
-+ .start = vdec_1_start,
-+ .stop = vdec_1_stop,
-+ .conf_esparser = vdec_1_conf_esparser,
-+ .vififo_level = vdec_1_vififo_level,
-+};
-diff --git a/drivers/media/platform/meson/vdec/vdec_1.h b/drivers/media/platform/meson/vdec/vdec_1.h
-new file mode 100644
-index 0000000..042d930
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_1.h
-@@ -0,0 +1,14 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_VDEC_1_H_
-+#define __MESON_VDEC_VDEC_1_H_
-+
-+#include "vdec.h"
-+
-+extern struct amvdec_ops vdec_1_ops;
-+
-+#endif
-diff --git a/drivers/media/platform/meson/vdec/vdec_helpers.c b/drivers/media/platform/meson/vdec/vdec_helpers.c
-new file mode 100644
-index 0000000..02090c5
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_helpers.c
-@@ -0,0 +1,412 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#include <linux/gcd.h>
-+#include <media/v4l2-mem2mem.h>
-+#include <media/v4l2-event.h>
-+#include <media/videobuf2-dma-contig.h>
-+
-+#include "vdec_helpers.h"
-+
-+#define NUM_CANVAS_NV12 2
-+#define NUM_CANVAS_YUV420 3
-+
-+u32 amvdec_read_dos(struct amvdec_core *core, u32 reg)
-+{
-+ return readl_relaxed(core->dos_base + reg);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_read_dos);
-+
-+void amvdec_write_dos(struct amvdec_core *core, u32 reg, u32 val)
-+{
-+ writel_relaxed(val, core->dos_base + reg);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_write_dos);
-+
-+void amvdec_write_dos_bits(struct amvdec_core *core, u32 reg, u32 val)
-+{
-+ amvdec_write_dos(core, reg, amvdec_read_dos(core, reg) | val);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_write_dos_bits);
-+
-+void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val)
-+{
-+ amvdec_write_dos(core, reg, amvdec_read_dos(core, reg) & ~val);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_clear_dos_bits);
-+
-+u32 amvdec_read_parser(struct amvdec_core *core, u32 reg)
-+{
-+ return readl_relaxed(core->esparser_base + reg);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_read_parser);
-+
-+void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val)
-+{
-+ writel_relaxed(val, core->esparser_base + reg);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_write_parser);
-+
-+static int canvas_alloc(struct amvdec_session *sess, u8 *canvas_id)
-+{
-+ int ret;
-+
-+ if (sess->canvas_num >= MAX_CANVAS) {
-+ dev_err(sess->core->dev, "Reached max number of canvas\n");
-+ return -ENOMEM;
-+ }
-+
-+ ret = meson_canvas_alloc(sess->core->canvas, canvas_id);
-+ if (ret)
-+ return ret;
-+
-+ sess->canvas_alloc[sess->canvas_num++] = *canvas_id;
-+ return 0;
-+}
-+
-+static int set_canvas_yuv420m(struct amvdec_session *sess,
-+ struct vb2_buffer *vb, u32 width,
-+ u32 height, u32 reg)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u8 canvas_id[NUM_CANVAS_YUV420]; /* Y U V */
-+ dma_addr_t buf_paddr[NUM_CANVAS_YUV420]; /* Y U V */
-+ int ret, i;
-+
-+ for (i = 0; i < NUM_CANVAS_YUV420; ++i) {
-+ ret = canvas_alloc(sess, &canvas_id[i]);
-+ if (ret)
-+ return ret;
-+
-+ buf_paddr[i] =
-+ vb2_dma_contig_plane_dma_addr(vb, i);
-+ }
-+
-+ /* Y plane */
-+ meson_canvas_config(core->canvas, canvas_id[0], buf_paddr[0],
-+ width, height, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+
-+ /* U plane */
-+ meson_canvas_config(core->canvas, canvas_id[1], buf_paddr[1],
-+ width / 2, height / 2, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+
-+ /* V plane */
-+ meson_canvas_config(core->canvas, canvas_id[2], buf_paddr[2],
-+ width / 2, height / 2, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+
-+ amvdec_write_dos(core, reg,
-+ ((canvas_id[2]) << 16) |
-+ ((canvas_id[1]) << 8) |
-+ (canvas_id[0]));
-+
-+ return 0;
-+}
-+
-+static int set_canvas_nv12m(struct amvdec_session *sess,
-+ struct vb2_buffer *vb, u32 width,
-+ u32 height, u32 reg)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u8 canvas_id[NUM_CANVAS_NV12]; /* Y U/V */
-+ dma_addr_t buf_paddr[NUM_CANVAS_NV12]; /* Y U/V */
-+ int ret, i;
-+
-+ for (i = 0; i < NUM_CANVAS_NV12; ++i) {
-+ ret = canvas_alloc(sess, &canvas_id[i]);
-+ if (ret)
-+ return ret;
-+
-+ buf_paddr[i] =
-+ vb2_dma_contig_plane_dma_addr(vb, i);
-+ }
-+
-+ /* Y plane */
-+ meson_canvas_config(core->canvas, canvas_id[0], buf_paddr[0],
-+ width, height, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+
-+ /* U/V plane */
-+ meson_canvas_config(core->canvas, canvas_id[1], buf_paddr[1],
-+ width, height / 2, MESON_CANVAS_WRAP_NONE,
-+ MESON_CANVAS_BLKMODE_LINEAR,
-+ MESON_CANVAS_ENDIAN_SWAP64);
-+
-+ amvdec_write_dos(core, reg,
-+ ((canvas_id[1]) << 16) |
-+ ((canvas_id[1]) << 8) |
-+ (canvas_id[0]));
-+
-+ return 0;
-+}
-+
-+int amvdec_set_canvases(struct amvdec_session *sess,
-+ u32 reg_base[], u32 reg_num[])
-+{
-+ struct v4l2_m2m_buffer *buf;
-+ u32 pixfmt = sess->pixfmt_cap;
-+ u32 width = ALIGN(sess->width, 64);
-+ u32 height = ALIGN(sess->height, 64);
-+ u32 reg_cur = reg_base[0];
-+ u32 reg_num_cur = 0;
-+ u32 reg_base_cur = 0;
-+ int ret;
-+
-+ v4l2_m2m_for_each_dst_buf(sess->m2m_ctx, buf) {
-+ if (!reg_base[reg_base_cur])
-+ return -EINVAL;
-+
-+ reg_cur = reg_base[reg_base_cur] + reg_num_cur * 4;
-+
-+ switch (pixfmt) {
-+ case V4L2_PIX_FMT_NV12M:
-+ ret = set_canvas_nv12m(sess, &buf->vb.vb2_buf, width,
-+ height, reg_cur);
-+ if (ret)
-+ return ret;
-+ break;
-+ case V4L2_PIX_FMT_YUV420M:
-+ ret = set_canvas_yuv420m(sess, &buf->vb.vb2_buf, width,
-+ height, reg_cur);
-+ if (ret)
-+ return ret;
-+ break;
-+ default:
-+ dev_err(sess->core->dev, "Unsupported pixfmt %08X\n",
-+ pixfmt);
-+ return -EINVAL;
-+ };
-+
-+ reg_num_cur++;
-+ if (reg_num_cur >= reg_num[reg_base_cur]) {
-+ reg_base_cur++;
-+ reg_num_cur = 0;
-+ }
-+ }
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(amvdec_set_canvases);
-+
-+void amvdec_add_ts_reorder(struct amvdec_session *sess, u64 ts, u32 offset)
-+{
-+ struct amvdec_timestamp *new_ts, *tmp;
-+ unsigned long flags;
-+
-+ new_ts = kmalloc(sizeof(*new_ts), GFP_KERNEL);
-+ new_ts->ts = ts;
-+ new_ts->offset = offset;
-+
-+ spin_lock_irqsave(&sess->ts_spinlock, flags);
-+
-+ if (list_empty(&sess->timestamps))
-+ goto add_tail;
-+
-+ list_for_each_entry(tmp, &sess->timestamps, list) {
-+ if (ts <= tmp->ts) {
-+ list_add_tail(&new_ts->list, &tmp->list);
-+ goto unlock;
-+ }
-+ }
-+
-+add_tail:
-+ list_add_tail(&new_ts->list, &sess->timestamps);
-+unlock:
-+ spin_unlock_irqrestore(&sess->ts_spinlock, flags);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_add_ts_reorder);
-+
-+void amvdec_remove_ts(struct amvdec_session *sess, u64 ts)
-+{
-+ struct amvdec_timestamp *tmp;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&sess->ts_spinlock, flags);
-+ list_for_each_entry(tmp, &sess->timestamps, list) {
-+ if (tmp->ts == ts) {
-+ list_del(&tmp->list);
-+ kfree(tmp);
-+ goto unlock;
-+ }
-+ }
-+ dev_warn(sess->core->dev_dec,
-+ "Couldn't remove buffer with timestamp %llu from list\n", ts);
-+
-+unlock:
-+ spin_unlock_irqrestore(&sess->ts_spinlock, flags);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_remove_ts);
-+
-+static void dst_buf_done(struct amvdec_session *sess,
-+ struct vb2_v4l2_buffer *vbuf,
-+ u32 field,
-+ u64 timestamp)
-+{
-+ struct device *dev = sess->core->dev_dec;
-+ u32 output_size = amvdec_get_output_size(sess);
-+
-+ switch (sess->pixfmt_cap) {
-+ case V4L2_PIX_FMT_NV12M:
-+ vbuf->vb2_buf.planes[0].bytesused = output_size;
-+ vbuf->vb2_buf.planes[1].bytesused = output_size / 2;
-+ break;
-+ case V4L2_PIX_FMT_YUV420M:
-+ vbuf->vb2_buf.planes[0].bytesused = output_size;
-+ vbuf->vb2_buf.planes[1].bytesused = output_size / 4;
-+ vbuf->vb2_buf.planes[2].bytesused = output_size / 4;
-+ break;
-+ }
-+
-+ vbuf->vb2_buf.timestamp = timestamp;
-+ vbuf->sequence = sess->sequence_cap++;
-+
-+ if (sess->should_stop &&
-+ atomic_read(&sess->esparser_queued_bufs) <= 2) {
-+ const struct v4l2_event ev = { .type = V4L2_EVENT_EOS };
-+
-+ dev_dbg(dev, "Signaling EOS\n");
-+ v4l2_event_queue_fh(&sess->fh, &ev);
-+ vbuf->flags |= V4L2_BUF_FLAG_LAST;
-+ } else if (sess->should_stop)
-+ dev_dbg(dev, "should_stop, %u bufs remain\n",
-+ atomic_read(&sess->esparser_queued_bufs));
-+
-+ dev_dbg(dev, "Buffer %u done\n", vbuf->vb2_buf.index);
-+ vbuf->field = field;
-+ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_DONE);
-+
-+ /* Buffer done probably means the vififo got freed */
-+ schedule_work(&sess->esparser_queue_work);
-+}
-+
-+void amvdec_dst_buf_done(struct amvdec_session *sess,
-+ struct vb2_v4l2_buffer *vbuf, u32 field)
-+{
-+ struct device *dev = sess->core->dev_dec;
-+ struct amvdec_timestamp *tmp;
-+ struct list_head *timestamps = &sess->timestamps;
-+ u64 timestamp;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&sess->ts_spinlock, flags);
-+ if (list_empty(timestamps)) {
-+ dev_err(dev, "Buffer %u done but list is empty\n",
-+ vbuf->vb2_buf.index);
-+
-+ v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR);
-+ spin_unlock_irqrestore(&sess->ts_spinlock, flags);
-+ return;
-+ }
-+
-+ tmp = list_first_entry(timestamps, struct amvdec_timestamp, list);
-+ timestamp = tmp->ts;
-+ list_del(&tmp->list);
-+ kfree(tmp);
-+ spin_unlock_irqrestore(&sess->ts_spinlock, flags);
-+
-+ dst_buf_done(sess, vbuf, field, timestamp);
-+ atomic_dec(&sess->esparser_queued_bufs);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_dst_buf_done);
-+
-+static void amvdec_dst_buf_done_offset(struct amvdec_session *sess,
-+ struct vb2_v4l2_buffer *vbuf,
-+ u32 offset,
-+ u32 field)
-+{
-+ struct device *dev = sess->core->dev_dec;
-+ struct amvdec_timestamp *match = NULL;
-+ struct amvdec_timestamp *tmp, *n;
-+ u64 timestamp = 0;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&sess->ts_spinlock, flags);
-+
-+ /* Look for our vififo offset to get the corresponding timestamp. */
-+ list_for_each_entry_safe(tmp, n, &sess->timestamps, list) {
-+ s64 delta = (s64)offset - tmp->offset;
-+
-+ /* Offsets reported by codecs usually differ slightly,
-+ * so we need some wiggle room.
-+ * 4KiB being the minimum packet size, there is no risk here.
-+ */
-+ if (delta > (-1 * (s32)SZ_4K) && delta < SZ_4K) {
-+ match = tmp;
-+ break;
-+ }
-+
-+ /* Delete any timestamp entry that appears before our target
-+ * (not all src packets/timestamps lead to a frame)
-+ */
-+ if (delta > 0 || delta < -1 * (s32)sess->vififo_size) {
-+ atomic_dec(&sess->esparser_queued_bufs);
-+ list_del(&tmp->list);
-+ kfree(tmp);
-+ }
-+ }
-+
-+ if (!match) {
-+ dev_dbg(dev, "Buffer %u done but can't match offset (%08X)\n",
-+ vbuf->vb2_buf.index, offset);
-+ } else {
-+ timestamp = match->ts;
-+ list_del(&match->list);
-+ kfree(match);
-+ }
-+ spin_unlock_irqrestore(&sess->ts_spinlock, flags);
-+
-+ dst_buf_done(sess, vbuf, field, timestamp);
-+ if (match)
-+ atomic_dec(&sess->esparser_queued_bufs);
-+}
-+
-+void amvdec_dst_buf_done_idx(struct amvdec_session *sess,
-+ u32 buf_idx, u32 offset, u32 field)
-+{
-+ struct vb2_v4l2_buffer *vbuf;
-+ struct device *dev = sess->core->dev_dec;
-+
-+ vbuf = v4l2_m2m_dst_buf_remove_by_idx(sess->m2m_ctx, buf_idx);
-+ if (!vbuf) {
-+ dev_err(dev,
-+ "Buffer %u done but it doesn't exist in m2m_ctx\n",
-+ buf_idx);
-+ return;
-+ }
-+
-+ if (offset != -1)
-+ amvdec_dst_buf_done_offset(sess, vbuf, offset, field);
-+ else
-+ amvdec_dst_buf_done(sess, vbuf, field);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_dst_buf_done_idx);
-+
-+void amvdec_set_par_from_dar(struct amvdec_session *sess,
-+ u32 dar_num, u32 dar_den)
-+{
-+ u32 div;
-+
-+ sess->pixelaspect.numerator = sess->height * dar_num;
-+ sess->pixelaspect.denominator = sess->width * dar_den;
-+ div = gcd(sess->pixelaspect.numerator, sess->pixelaspect.denominator);
-+ sess->pixelaspect.numerator /= div;
-+ sess->pixelaspect.denominator /= div;
-+}
-+EXPORT_SYMBOL_GPL(amvdec_set_par_from_dar);
-+
-+void amvdec_abort(struct amvdec_session *sess)
-+{
-+ dev_info(sess->core->dev, "Aborting decoding session!\n");
-+ vb2_queue_error(&sess->m2m_ctx->cap_q_ctx.q);
-+ vb2_queue_error(&sess->m2m_ctx->out_q_ctx.q);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_abort);
-diff --git a/drivers/media/platform/meson/vdec/vdec_helpers.h b/drivers/media/platform/meson/vdec/vdec_helpers.h
-new file mode 100644
-index 0000000..b9250a8
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_helpers.h
-@@ -0,0 +1,48 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_HELPERS_H_
-+#define __MESON_VDEC_HELPERS_H_
-+
-+#include "vdec.h"
-+
-+/**
-+ * amvdec_set_canvases() - Map VB2 buffers to canvases
-+ *
-+ * @sess: current session
-+ * @reg_base: Registry bases of where to write the canvas indexes
-+ * @reg_num: number of contiguous registers after each reg_base (including it)
-+ */
-+int amvdec_set_canvases(struct amvdec_session *sess,
-+ u32 reg_base[], u32 reg_num[]);
-+
-+u32 amvdec_read_dos(struct amvdec_core *core, u32 reg);
-+void amvdec_write_dos(struct amvdec_core *core, u32 reg, u32 val);
-+void amvdec_write_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
-+void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
-+u32 amvdec_read_parser(struct amvdec_core *core, u32 reg);
-+void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val);
-+
-+void amvdec_dst_buf_done_idx(struct amvdec_session *sess, u32 buf_idx,
-+ u32 offset, u32 field);
-+void amvdec_dst_buf_done(struct amvdec_session *sess,
-+ struct vb2_v4l2_buffer *vbuf, u32 field);
-+
-+/**
-+ * amvdec_add_ts_reorder() - Add a timestamp to the list in chronological order
-+ *
-+ * @sess: current session
-+ * @ts: timestamp to add
-+ * @offset: offset in the VIFIFO where the associated packet was written
-+ */
-+void amvdec_add_ts_reorder(struct amvdec_session *sess, u64 ts, u32 offset);
-+void amvdec_remove_ts(struct amvdec_session *sess, u64 ts);
-+
-+void amvdec_set_par_from_dar(struct amvdec_session *sess,
-+ u32 dar_num, u32 dar_den);
-+
-+void amvdec_abort(struct amvdec_session *sess);
-+#endif
-diff --git a/drivers/media/platform/meson/vdec/vdec_platform.c b/drivers/media/platform/meson/vdec/vdec_platform.c
-new file mode 100644
-index 0000000..46eeb74
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_platform.c
-@@ -0,0 +1,101 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#include "vdec_platform.h"
-+#include "vdec.h"
-+
-+#include "vdec_1.h"
-+#include "codec_mpeg12.h"
-+
-+static const struct amvdec_format vdec_formats_gxbb[] = {
-+ {
-+ .pixfmt = V4L2_PIX_FMT_MPEG1,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg12_ops,
-+ .firmware_path = "meson/gx/vmpeg12_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_MPEG2,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg12_ops,
-+ .firmware_path = "meson/gx/vmpeg12_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ },
-+};
-+
-+static const struct amvdec_format vdec_formats_gxl[] = {
-+ {
-+ .pixfmt = V4L2_PIX_FMT_MPEG1,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg12_ops,
-+ .firmware_path = "meson/gx/vmpeg12_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_MPEG2,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg12_ops,
-+ .firmware_path = "meson/gx/vmpeg12_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ },
-+};
-+
-+static const struct amvdec_format vdec_formats_gxm[] = {
-+ {
-+ .pixfmt = V4L2_PIX_FMT_MPEG1,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg12_ops,
-+ .firmware_path = "meson/gx/vmpeg12_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_MPEG2,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg12_ops,
-+ .firmware_path = "meson/gx/vmpeg12_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ },
-+};
-+
-+const struct vdec_platform vdec_platform_gxbb = {
-+ .formats = vdec_formats_gxbb,
-+ .num_formats = ARRAY_SIZE(vdec_formats_gxbb),
-+ .revision = VDEC_REVISION_GXBB,
-+};
-+
-+const struct vdec_platform vdec_platform_gxl = {
-+ .formats = vdec_formats_gxl,
-+ .num_formats = ARRAY_SIZE(vdec_formats_gxl),
-+ .revision = VDEC_REVISION_GXL,
-+};
-+
-+const struct vdec_platform vdec_platform_gxm = {
-+ .formats = vdec_formats_gxm,
-+ .num_formats = ARRAY_SIZE(vdec_formats_gxm),
-+ .revision = VDEC_REVISION_GXM,
-+};
-diff --git a/drivers/media/platform/meson/vdec/vdec_platform.h b/drivers/media/platform/meson/vdec/vdec_platform.h
-new file mode 100644
-index 0000000..f602532
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_platform.h
-@@ -0,0 +1,30 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 BayLibre, SAS
-+ * Author: Maxime Jourdan <mjourdan@baylibre.com>
-+ */
-+
-+#ifndef __MESON_VDEC_PLATFORM_H_
-+#define __MESON_VDEC_PLATFORM_H_
-+
-+#include "vdec.h"
-+
-+struct amvdec_format;
-+
-+enum vdec_revision {
-+ VDEC_REVISION_GXBB,
-+ VDEC_REVISION_GXL,
-+ VDEC_REVISION_GXM,
-+};
-+
-+struct vdec_platform {
-+ const struct amvdec_format *formats;
-+ const u32 num_formats;
-+ enum vdec_revision revision;
-+};
-+
-+extern const struct vdec_platform vdec_platform_gxbb;
-+extern const struct vdec_platform vdec_platform_gxm;
-+extern const struct vdec_platform vdec_platform_gxl;
-+
-+#endif
diff --git a/testing/linux-amlogic/0034-MAINTAINERS-Add-meson-video-decoder.patch b/testing/linux-amlogic/0034-MAINTAINERS-Add-meson-video-decoder.patch
deleted file mode 100644
index 76a6a3826bf..00000000000
--- a/testing/linux-amlogic/0034-MAINTAINERS-Add-meson-video-decoder.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a4089c61b05e61349ff10539fc20ee480d44b303 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Tue, 4 Sep 2018 10:07:08 +0200
-Subject: [PATCH] MAINTAINERS: Add meson video decoder
-
-Add an entry for the meson video decoder for amlogic SoCs.
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- MAINTAINERS | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 9e9b19e..ede389b 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -9520,6 +9520,14 @@ F: drivers/media/platform/meson/ao-cec.c
- F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
- T: git git://linuxtv.org/media_tree.git
-
-+MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
-+M: Maxime Jourdan <mjourdan@baylibre.com>
-+L: linux-media@lists.freedesktop.org
-+L: linux-amlogic@lists.infradead.org
-+S: Supported
-+F: drivers/media/platform/meson/vdec/
-+T: git git://linuxtv.org/media_tree.git
-+
- MICROBLAZE ARCHITECTURE
- M: Michal Simek <monstr@monstr.eu>
- W: http://www.monstr.eu/fdt/
diff --git a/testing/linux-amlogic/0035-arm64-dts-meson-gx-add-vdec-entry.patch b/testing/linux-amlogic/0035-arm64-dts-meson-gx-add-vdec-entry.patch
deleted file mode 100644
index 4b1f168f7e8..00000000000
--- a/testing/linux-amlogic/0035-arm64-dts-meson-gx-add-vdec-entry.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 771e9830bdd1361594a874ded57fe497f443d7dd Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 29 Aug 2018 15:24:02 +0200
-Subject: [PATCH] arm64: dts: meson-gx: add vdec entry
-
-Add the video decoder dts entry
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-index 5012607..5d2820e 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
-@@ -445,6 +445,20 @@
- };
- };
-
-+ vdec: video-decoder@c8820000 {
-+ compatible = "amlogic,gx-vdec";
-+ reg = <0x0 0xc8820000 0x0 0x10000>,
-+ <0x0 0xc110a580 0x0 0xe4>;
-+ reg-names = "dos", "esparser";
-+
-+ interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
-+ <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
-+ interrupt-names = "vdec", "esparser";
-+
-+ amlogic,ao-sysctrl = <&sysctrl_AO>;
-+ amlogic,canvas = <&canvas>;
-+ };
-+
- periphs: periphs@c8834000 {
- compatible = "simple-bus";
- reg = <0x0 0xc8834000 0x0 0x2000>;
diff --git a/testing/linux-amlogic/0036-arm64-dts-meson-add-vdec-entries.patch b/testing/linux-amlogic/0036-arm64-dts-meson-add-vdec-entries.patch
deleted file mode 100644
index 0770272005f..00000000000
--- a/testing/linux-amlogic/0036-arm64-dts-meson-add-vdec-entries.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 75863ab0baf29e4b0212a34f9ab7ef2763a38824 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 29 Aug 2018 15:24:22 +0200
-Subject: [PATCH] arm64: dts: meson: add vdec entries
-
-This enables the video decoder for gxbb, gxl and gxm chips
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 10 ++++++++++
- arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | 10 ++++++++++
- arch/arm64/boot/dts/amlogic/meson-gxm.dtsi | 4 ++++
- 3 files changed, 24 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-index 2a4d506..96145e4 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
-@@ -814,3 +814,13 @@
- power-domains = <&pwrc_vpu>;
- };
-
-+&vdec {
-+ compatible = "amlogic,gxbb-vdec";
-+ clocks = <&clkc CLKID_DOS_PARSER>,
-+ <&clkc CLKID_DOS>,
-+ <&clkc CLKID_VDEC_1>,
-+ <&clkc CLKID_VDEC_HEVC>;
-+ clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
-+ resets = <&reset RESET_PARSER>;
-+ reset-names = "esparser";
-+};
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-index 9f4b618..6ca93ae 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
-@@ -814,3 +814,13 @@
- power-domains = <&pwrc_vpu>;
- };
-
-+&vdec {
-+ compatible = "amlogic,gxl-vdec";
-+ clocks = <&clkc CLKID_DOS_PARSER>,
-+ <&clkc CLKID_DOS>,
-+ <&clkc CLKID_VDEC_1>,
-+ <&clkc CLKID_VDEC_HEVC>;
-+ clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
-+ resets = <&reset RESET_PARSER>;
-+ reset-names = "esparser";
-+};
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
-index 247888d..2f35649 100644
---- a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
-@@ -117,3 +117,7 @@
- &dwc3 {
- phys = <&usb3_phy>, <&usb2_phy0>, <&usb2_phy1>, <&usb2_phy2>;
- };
-+
-+&vdec {
-+ compatible = "amlogic,gxm-vdec";
-+};
diff --git a/testing/linux-amlogic/0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch b/testing/linux-amlogic/0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
deleted file mode 100644
index 3c120117b1c..00000000000
--- a/testing/linux-amlogic/0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From e36802c6297adb0c560f3a6c1672546eb380c458 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 10 Oct 2018 17:22:27 +0200
-Subject: [PATCH] meson: vdec: introduce controls and
- V4L2_CID_MIN_BUFFERS_FOR_CAPTURE
-
----
- drivers/media/platform/meson/vdec/Makefile | 2 +-
- drivers/media/platform/meson/vdec/vdec.c | 7 ++++
- drivers/media/platform/meson/vdec/vdec.h | 2 ++
- drivers/media/platform/meson/vdec/vdec_ctrls.c | 45 ++++++++++++++++++++++++++
- drivers/media/platform/meson/vdec/vdec_ctrls.h | 8 +++++
- 5 files changed, 63 insertions(+), 1 deletion(-)
- create mode 100644 drivers/media/platform/meson/vdec/vdec_ctrls.c
- create mode 100644 drivers/media/platform/meson/vdec/vdec_ctrls.h
-
-diff --git a/drivers/media/platform/meson/vdec/Makefile b/drivers/media/platform/meson/vdec/Makefile
-index 6bea129..eba8608 100644
---- a/drivers/media/platform/meson/vdec/Makefile
-+++ b/drivers/media/platform/meson/vdec/Makefile
-@@ -1,7 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0
- # Makefile for Amlogic meson video decoder driver
-
--meson-vdec-objs = esparser.o vdec.o vdec_helpers.o vdec_platform.o
-+meson-vdec-objs = esparser.o vdec.o vdec_ctrls.o vdec_helpers.o vdec_platform.o
- meson-vdec-objs += vdec_1.o
- meson-vdec-objs += codec_mpeg12.o
-
-diff --git a/drivers/media/platform/meson/vdec/vdec.c b/drivers/media/platform/meson/vdec/vdec.c
-index d8db52c..1c5d3e9 100644
---- a/drivers/media/platform/meson/vdec/vdec.c
-+++ b/drivers/media/platform/meson/vdec/vdec.c
-@@ -21,6 +21,7 @@
- #include "vdec.h"
- #include "esparser.h"
- #include "vdec_helpers.h"
-+#include "vdec_ctrls.h"
-
- struct dummy_buf {
- struct vb2_v4l2_buffer vb;
-@@ -290,6 +291,7 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
- sess->keyframe_found = 0;
- sess->last_offset = 0;
- sess->wrap_count = 0;
-+ sess->dpb_size = 0;
- sess->pixelaspect.numerator = 1;
- sess->pixelaspect.denominator = 1;
- atomic_set(&sess->esparser_queued_bufs, 0);
-@@ -812,6 +814,10 @@ static int vdec_open(struct file *file)
- goto err_m2m_release;
- }
-
-+ ret = amvdec_init_ctrls(&sess->ctrl_handler);
-+ if (ret)
-+ goto err_m2m_release;
-+
- sess->pixfmt_cap = formats[0].pixfmts_cap[0];
- sess->fmt_out = &formats[0];
- sess->width = 1280;
-@@ -827,6 +833,7 @@ static int vdec_open(struct file *file)
- spin_lock_init(&sess->ts_spinlock);
-
- v4l2_fh_init(&sess->fh, core->vdev_dec);
-+ sess->fh.ctrl_handler = &sess->ctrl_handler;
- v4l2_fh_add(&sess->fh);
- sess->fh.m2m_ctx = sess->m2m_ctx;
- file->private_data = &sess->fh;
-diff --git a/drivers/media/platform/meson/vdec/vdec.h b/drivers/media/platform/meson/vdec/vdec.h
-index 4e8c3f1..6be7de2 100644
---- a/drivers/media/platform/meson/vdec/vdec.h
-+++ b/drivers/media/platform/meson/vdec/vdec.h
-@@ -203,6 +203,7 @@ struct amvdec_session {
- struct v4l2_fh fh;
- struct v4l2_m2m_dev *m2m_dev;
- struct v4l2_m2m_ctx *m2m_ctx;
-+ struct v4l2_ctrl_handler ctrl_handler;
- struct mutex lock;
-
- const struct amvdec_format *fmt_out;
-@@ -242,6 +243,7 @@ struct amvdec_session {
- u64 last_irq_jiffies;
- u32 last_offset;
- u32 wrap_count;
-+ u32 dpb_size;
-
- void *priv;
- };
-diff --git a/drivers/media/platform/meson/vdec/vdec_ctrls.c b/drivers/media/platform/meson/vdec/vdec_ctrls.c
-new file mode 100644
-index 0000000..cd6dd6d
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_ctrls.c
-@@ -0,0 +1,45 @@
-+#include "vdec_ctrls.h"
-+
-+static int vdec_op_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
-+{
-+ struct amvdec_session *sess =
-+ container_of(ctrl->handler, struct amvdec_session, ctrl_handler);
-+
-+ switch (ctrl->id) {
-+ case V4L2_CID_MIN_BUFFERS_FOR_CAPTURE:
-+ ctrl->val = sess->dpb_size;
-+ break;
-+ default:
-+ return -EINVAL;
-+ };
-+
-+ return 0;
-+}
-+
-+static const struct v4l2_ctrl_ops vdec_ctrl_ops = {
-+ .g_volatile_ctrl = vdec_op_g_volatile_ctrl,
-+};
-+
-+int amvdec_init_ctrls(struct v4l2_ctrl_handler *ctrl_handler)
-+{
-+ int ret;
-+ struct v4l2_ctrl *ctrl;
-+
-+ ret = v4l2_ctrl_handler_init(ctrl_handler, 1);
-+ if (ret)
-+ return ret;
-+
-+ ctrl = v4l2_ctrl_new_std(ctrl_handler, &vdec_ctrl_ops,
-+ V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, 1, 32, 1, 1);
-+ if (ctrl)
-+ ctrl->flags |= V4L2_CTRL_FLAG_VOLATILE;
-+
-+ ret = ctrl_handler->error;
-+ if (ret) {
-+ v4l2_ctrl_handler_free(ctrl_handler);
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(amvdec_init_ctrls);
-diff --git a/drivers/media/platform/meson/vdec/vdec_ctrls.h b/drivers/media/platform/meson/vdec/vdec_ctrls.h
-new file mode 100644
-index 0000000..4bcc5e6
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/vdec_ctrls.h
-@@ -0,0 +1,8 @@
-+#ifndef __MESON_VDEC_CTRLS_H_
-+#define __MESON_VDEC_CTRLS_H_
-+
-+#include "vdec.h"
-+
-+int amvdec_init_ctrls(struct v4l2_ctrl_handler *ctrl_handler);
-+
-+#endif
diff --git a/testing/linux-amlogic/0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch b/testing/linux-amlogic/0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
deleted file mode 100644
index 7229bb2ec6d..00000000000
--- a/testing/linux-amlogic/0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 80f9e75b2fce22552fdf56ade990f3f98567e29e Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Thu, 4 Oct 2018 15:37:39 +0200
-Subject: [PATCH] media: videodev2: add V4L2_FMT_FLAG_NO_SOURCE_CHANGE
-
-When a v4l2 driver exposes V4L2_EVENT_SOURCE_CHANGE, some (usually
-OUTPUT) formats may not be able to trigger this event.
-
-Add a enum_fmt format flag to tag those specific formats.
-
-Signed-off-by: Maxime Jourdan <mjourdan@baylibre.com>
-
----
- Documentation/media/uapi/v4l/vidioc-enum-fmt.rst | 5 +++++
- include/uapi/linux/videodev2.h | 5 +++--
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst b/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst
-index 019c513..e0040b3 100644
---- a/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst
-+++ b/Documentation/media/uapi/v4l/vidioc-enum-fmt.rst
-@@ -116,6 +116,11 @@ one until ``EINVAL`` is returned.
- - This format is not native to the device but emulated through
- software (usually libv4l2), where possible try to use a native
- format instead for better performance.
-+ * - ``V4L2_FMT_FLAG_NO_SOURCE_CHANGE``
-+ - 0x0004
-+ - The event ``V4L2_EVENT_SOURCE_CHANGE`` is not supported
-+ for this format.
-+
-
-
- Return Value
-diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
-index 1aae2e4..f44bdef 100644
---- a/include/uapi/linux/videodev2.h
-+++ b/include/uapi/linux/videodev2.h
-@@ -733,8 +733,9 @@ struct v4l2_fmtdesc {
- __u32 reserved[4];
- };
-
--#define V4L2_FMT_FLAG_COMPRESSED 0x0001
--#define V4L2_FMT_FLAG_EMULATED 0x0002
-+#define V4L2_FMT_FLAG_COMPRESSED 0x0001
-+#define V4L2_FMT_FLAG_EMULATED 0x0002
-+#define V4L2_FMT_FLAG_NO_SOURCE_CHANGE 0x0004
-
- /* Frame Size and frame rate enumeration */
- /*
diff --git a/testing/linux-amlogic/0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch b/testing/linux-amlogic/0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
deleted file mode 100644
index 4a29d883917..00000000000
--- a/testing/linux-amlogic/0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
+++ /dev/null
@@ -1,270 +0,0 @@
-From 4ba289cf4940b6b8ddf1e332fc7248a27f54cfc8 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 10 Oct 2018 15:44:56 +0200
-Subject: [PATCH] meson: vdec: allow subscribing to V4L2_EVENT_SOURCE_CHANGE
-
-Flag MPEG1/MPEG2 as NO_SOURCE_CHANGE.
-
----
- drivers/media/platform/meson/vdec/vdec.c | 20 ++++++++++++++--
- drivers/media/platform/meson/vdec/vdec.h | 13 +++++++++++
- drivers/media/platform/meson/vdec/vdec_helpers.c | 28 +++++++++++++++++++++++
- drivers/media/platform/meson/vdec/vdec_helpers.h | 1 +
- drivers/media/platform/meson/vdec/vdec_platform.c | 6 +++++
- 5 files changed, 66 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/media/platform/meson/vdec/vdec.c b/drivers/media/platform/meson/vdec/vdec.c
-index 1c5d3e9..ca64045 100644
---- a/drivers/media/platform/meson/vdec/vdec.c
-+++ b/drivers/media/platform/meson/vdec/vdec.c
-@@ -230,7 +230,8 @@ static int vdec_queue_setup(struct vb2_queue *q,
- * are free to choose any of them to write frames to. As such,
- * we need all of them to be queued into the driver
- */
-- q->min_buffers_needed = q->num_buffers + *num_buffers;
-+ sess->num_dst_bufs = q->num_buffers + *num_buffers;
-+ q->min_buffers_needed = sess->num_dst_bufs;
- break;
- default:
- return -EINVAL;
-@@ -260,6 +261,7 @@ static void vdec_vb2_buf_queue(struct vb2_buffer *vb)
- static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
- {
- struct amvdec_session *sess = vb2_get_drv_priv(q);
-+ struct amvdec_codec_ops *codec_ops = sess->fmt_out->codec_ops;
- struct amvdec_core *core = sess->core;
- struct vb2_v4l2_buffer *buf;
- int ret;
-@@ -277,6 +279,13 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
- if (!sess->streamon_out || !sess->streamon_cap)
- return 0;
-
-+ if (sess->status == STATUS_NEEDS_RESUME &&
-+ q->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
-+ codec_ops->resume(sess);
-+ sess->status = STATUS_RUNNING;
-+ return 0;
-+ }
-+
- sess->vififo_size = SIZE_VIFIFO;
- sess->vififo_vaddr =
- dma_alloc_coherent(sess->core->dev, sess->vififo_size,
-@@ -305,6 +314,7 @@ static int vdec_start_streaming(struct vb2_queue *q, unsigned int count)
- sess->recycle_thread = kthread_run(vdec_recycle_thread, sess,
- "vdec_recycle");
-
-+ sess->status = STATUS_RUNNING;
- core->cur_sess = sess;
-
- return 0;
-@@ -362,7 +372,9 @@ static void vdec_stop_streaming(struct vb2_queue *q)
- struct amvdec_core *core = sess->core;
- struct vb2_v4l2_buffer *buf;
-
-- if (sess->streamon_out && sess->streamon_cap) {
-+ if (sess->status == STATUS_RUNNING ||
-+ (sess->status == STATUS_NEEDS_RESUME &&
-+ (!sess->streamon_out || !sess->streamon_cap))) {
- if (vdec_codec_needs_recycle(sess))
- kthread_stop(sess->recycle_thread);
-
-@@ -375,6 +387,7 @@ static void vdec_stop_streaming(struct vb2_queue *q)
- kfree(sess->priv);
- sess->priv = NULL;
- core->cur_sess = NULL;
-+ sess->status = STATUS_STOPPED;
- }
-
- if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) {
-@@ -611,6 +624,7 @@ static int vdec_enum_fmt(struct file *file, void *fh, struct v4l2_fmtdesc *f)
-
- fmt_out = &platform->formats[f->index];
- f->pixelformat = fmt_out->pixfmt;
-+ f->flags = fmt_out->flags;
- } else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
- fmt_out = sess->fmt_out;
- if (f->index >= 4 || !fmt_out->pixfmts_cap[f->index])
-@@ -703,6 +717,8 @@ static int vdec_subscribe_event(struct v4l2_fh *fh,
- switch (sub->type) {
- case V4L2_EVENT_EOS:
- return v4l2_event_subscribe(fh, sub, 2, NULL);
-+ case V4L2_EVENT_SOURCE_CHANGE:
-+ return v4l2_src_change_event_subscribe(fh, sub);
- default:
- return -EINVAL;
- }
-diff --git a/drivers/media/platform/meson/vdec/vdec.h b/drivers/media/platform/meson/vdec/vdec.h
-index 6be7de2..8f8ce62 100644
---- a/drivers/media/platform/meson/vdec/vdec.h
-+++ b/drivers/media/platform/meson/vdec/vdec.h
-@@ -101,6 +101,7 @@ struct amvdec_ops {
- u32 (*vififo_level)(struct amvdec_session *sess);
- };
-
-+
- /**
- * struct amvdec_codec_ops - codec operations
- *
-@@ -127,6 +128,7 @@ struct amvdec_codec_ops {
- int (*can_recycle)(struct amvdec_core *core);
- void (*recycle)(struct amvdec_core *core, u32 buf_idx);
- void (*drain)(struct amvdec_session *sess);
-+ void (*resume)(struct amvdec_session *sess);
- const u8 * (*eos_sequence)(u32 *len);
- irqreturn_t (*isr)(struct amvdec_session *sess);
- irqreturn_t (*threaded_isr)(struct amvdec_session *sess);
-@@ -140,6 +142,7 @@ struct amvdec_codec_ops {
- * @max_buffers: maximum amount of CAPTURE (dst) buffers
- * @max_width: maximum picture width supported
- * @max_height: maximum picture height supported
-+ * @flags: enum flags associated with this pixfmt
- * @vdec_ops: the VDEC operations that support this format
- * @codec_ops: the codec operations that support this format
- * @firmware_path: Path to the firmware that supports this format
-@@ -151,6 +154,7 @@ struct amvdec_format {
- u32 max_buffers;
- u32 max_width;
- u32 max_height;
-+ u32 flags;
-
- struct amvdec_ops *vdec_ops;
- struct amvdec_codec_ops *codec_ops;
-@@ -159,6 +163,12 @@ struct amvdec_format {
- u32 pixfmts_cap[4];
- };
-
-+enum amvdec_status {
-+ STATUS_STOPPED,
-+ STATUS_RUNNING,
-+ STATUS_NEEDS_RESUME,
-+};
-+
- /**
- * struct amvdec_session - decoding session parameters
- *
-@@ -195,6 +205,7 @@ struct amvdec_format {
- * @timestamps: chronological list of src timestamps
- * @ts_spinlock: spinlock for the timestamps list
- * @last_irq_jiffies: tracks last time the vdec triggered an IRQ
-+ * @status: current decoding status
- * @priv: codec private data
- */
- struct amvdec_session {
-@@ -225,6 +236,7 @@ struct amvdec_session {
- unsigned int sequence_cap;
- unsigned int should_stop;
- unsigned int keyframe_found;
-+ unsigned int num_dst_bufs;
-
- u8 canvas_alloc[MAX_CANVAS];
- u32 canvas_num;
-@@ -245,6 +257,7 @@ struct amvdec_session {
- u32 wrap_count;
- u32 dpb_size;
-
-+ enum amvdec_status status;
- void *priv;
- };
-
-diff --git a/drivers/media/platform/meson/vdec/vdec_helpers.c b/drivers/media/platform/meson/vdec/vdec_helpers.c
-index 02090c5..b982b28 100644
---- a/drivers/media/platform/meson/vdec/vdec_helpers.c
-+++ b/drivers/media/platform/meson/vdec/vdec_helpers.c
-@@ -403,6 +403,34 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess,
- }
- EXPORT_SYMBOL_GPL(amvdec_set_par_from_dar);
-
-+void amvdec_src_change(struct amvdec_session *sess, u32 width, u32 height, u32 dpb_size)
-+{
-+ static const struct v4l2_event ev = {
-+ .type = V4L2_EVENT_SOURCE_CHANGE,
-+ .u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION };
-+
-+ sess->dpb_size = dpb_size;
-+
-+ /* Check if the capture queue is already configured well for our
-+ * usecase. If so, keep decoding with it and do not send the event
-+ */
-+ if (sess->width == width &&
-+ sess->height == height &&
-+ dpb_size <= sess->num_dst_bufs) {
-+ sess->fmt_out->codec_ops->resume(sess);
-+ return;
-+ }
-+
-+ sess->width = width;
-+ sess->height = height;
-+ sess->status = STATUS_NEEDS_RESUME;
-+
-+ dev_dbg(sess->core->dev, "Res. changed (%ux%u), DPB size %u\n",
-+ width, height, dpb_size);
-+ v4l2_event_queue_fh(&sess->fh, &ev);
-+}
-+EXPORT_SYMBOL_GPL(amvdec_src_change);
-+
- void amvdec_abort(struct amvdec_session *sess)
- {
- dev_info(sess->core->dev, "Aborting decoding session!\n");
-diff --git a/drivers/media/platform/meson/vdec/vdec_helpers.h b/drivers/media/platform/meson/vdec/vdec_helpers.h
-index b9250a8..060799b 100644
---- a/drivers/media/platform/meson/vdec/vdec_helpers.h
-+++ b/drivers/media/platform/meson/vdec/vdec_helpers.h
-@@ -44,5 +44,6 @@ void amvdec_remove_ts(struct amvdec_session *sess, u64 ts);
- void amvdec_set_par_from_dar(struct amvdec_session *sess,
- u32 dar_num, u32 dar_den);
-
-+void amvdec_src_change(struct amvdec_session *sess, u32 width, u32 height, u32 dpb_size);
- void amvdec_abort(struct amvdec_session *sess);
- #endif
-diff --git a/drivers/media/platform/meson/vdec/vdec_platform.c b/drivers/media/platform/meson/vdec/vdec_platform.c
-index 46eeb74..291f1ee 100644
---- a/drivers/media/platform/meson/vdec/vdec_platform.c
-+++ b/drivers/media/platform/meson/vdec/vdec_platform.c
-@@ -17,6 +17,7 @@ static const struct amvdec_format vdec_formats_gxbb[] = {
- .max_buffers = 8,
- .max_width = 1920,
- .max_height = 1080,
-+ .flags = V4L2_FMT_FLAG_NO_SOURCE_CHANGE,
- .vdec_ops = &vdec_1_ops,
- .codec_ops = &codec_mpeg12_ops,
- .firmware_path = "meson/gx/vmpeg12_mc",
-@@ -27,6 +28,7 @@ static const struct amvdec_format vdec_formats_gxbb[] = {
- .max_buffers = 8,
- .max_width = 1920,
- .max_height = 1080,
-+ .flags = V4L2_FMT_FLAG_NO_SOURCE_CHANGE,
- .vdec_ops = &vdec_1_ops,
- .codec_ops = &codec_mpeg12_ops,
- .firmware_path = "meson/gx/vmpeg12_mc",
-@@ -41,6 +43,7 @@ static const struct amvdec_format vdec_formats_gxl[] = {
- .max_buffers = 8,
- .max_width = 1920,
- .max_height = 1080,
-+ .flags = V4L2_FMT_FLAG_NO_SOURCE_CHANGE,
- .vdec_ops = &vdec_1_ops,
- .codec_ops = &codec_mpeg12_ops,
- .firmware_path = "meson/gx/vmpeg12_mc",
-@@ -51,6 +54,7 @@ static const struct amvdec_format vdec_formats_gxl[] = {
- .max_buffers = 8,
- .max_width = 1920,
- .max_height = 1080,
-+ .flags = V4L2_FMT_FLAG_NO_SOURCE_CHANGE,
- .vdec_ops = &vdec_1_ops,
- .codec_ops = &codec_mpeg12_ops,
- .firmware_path = "meson/gx/vmpeg12_mc",
-@@ -65,6 +69,7 @@ static const struct amvdec_format vdec_formats_gxm[] = {
- .max_buffers = 8,
- .max_width = 1920,
- .max_height = 1080,
-+ .flags = V4L2_FMT_FLAG_NO_SOURCE_CHANGE,
- .vdec_ops = &vdec_1_ops,
- .codec_ops = &codec_mpeg12_ops,
- .firmware_path = "meson/gx/vmpeg12_mc",
-@@ -75,6 +80,7 @@ static const struct amvdec_format vdec_formats_gxm[] = {
- .max_buffers = 8,
- .max_width = 1920,
- .max_height = 1080,
-+ .flags = V4L2_FMT_FLAG_NO_SOURCE_CHANGE,
- .vdec_ops = &vdec_1_ops,
- .codec_ops = &codec_mpeg12_ops,
- .firmware_path = "meson/gx/vmpeg12_mc",
diff --git a/testing/linux-amlogic/0040-media-meson-vdec-add-H.264-decoding-support.patch b/testing/linux-amlogic/0040-media-meson-vdec-add-H.264-decoding-support.patch
deleted file mode 100644
index aa66ec743e7..00000000000
--- a/testing/linux-amlogic/0040-media-meson-vdec-add-H.264-decoding-support.patch
+++ /dev/null
@@ -1,591 +0,0 @@
-From a41f52edc3681c11517c4d7ceb374f3189ea3310 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 29 Aug 2018 15:42:56 +0200
-Subject: [PATCH] media: meson: vdec: add H.264 decoding support
-
-Add support for V4L2_PIX_FMT_H264
-
----
- drivers/media/platform/meson/vdec/Makefile | 2 +-
- drivers/media/platform/meson/vdec/codec_h264.c | 478 ++++++++++++++++++++++
- drivers/media/platform/meson/vdec/codec_h264.h | 13 +
- drivers/media/platform/meson/vdec/vdec_platform.c | 31 ++
- 4 files changed, 523 insertions(+), 1 deletion(-)
- create mode 100644 drivers/media/platform/meson/vdec/codec_h264.c
- create mode 100644 drivers/media/platform/meson/vdec/codec_h264.h
-
-diff --git a/drivers/media/platform/meson/vdec/Makefile b/drivers/media/platform/meson/vdec/Makefile
-index eba8608..01dc960 100644
---- a/drivers/media/platform/meson/vdec/Makefile
-+++ b/drivers/media/platform/meson/vdec/Makefile
-@@ -3,6 +3,6 @@
-
- meson-vdec-objs = esparser.o vdec.o vdec_ctrls.o vdec_helpers.o vdec_platform.o
- meson-vdec-objs += vdec_1.o
--meson-vdec-objs += codec_mpeg12.o
-+meson-vdec-objs += codec_mpeg12.o codec_h264.o
-
- obj-$(CONFIG_VIDEO_MESON_VDEC) += meson-vdec.o
-diff --git a/drivers/media/platform/meson/vdec/codec_h264.c b/drivers/media/platform/meson/vdec/codec_h264.c
-new file mode 100644
-index 0000000..6ac0115
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_h264.c
-@@ -0,0 +1,478 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-+ */
-+
-+#include <media/v4l2-mem2mem.h>
-+#include <media/videobuf2-dma-contig.h>
-+
-+#include "vdec_helpers.h"
-+#include "dos_regs.h"
-+
-+#define SIZE_EXT_FW (20 * SZ_1K)
-+#define SIZE_WORKSPACE 0x1ee000
-+#define SIZE_SEI (8 * SZ_1K)
-+
-+/* Offset added by the firmware which must be substracted
-+ * from the workspace phyaddr
-+ */
-+#define WORKSPACE_BUF_OFFSET 0x1000000
-+
-+/* ISR status */
-+#define CMD_MASK GENMASK(7, 0)
-+#define CMD_SRC_CHANGE 1
-+#define CMD_FRAMES_READY 2
-+#define CMD_FATAL_ERROR 6
-+#define CMD_BAD_WIDTH 7
-+#define CMD_BAD_HEIGHT 8
-+
-+#define SEI_DATA_READY BIT(15)
-+
-+/* Picture type */
-+#define PIC_TOP_BOT 5
-+#define PIC_BOT_TOP 6
-+
-+/* Size of Motion Vector per macroblock */
-+#define MB_MV_SIZE 96
-+
-+/* Frame status data */
-+#define PIC_STRUCT_BIT 5
-+#define PIC_STRUCT_MASK GENMASK(2, 0)
-+#define BUF_IDX_MASK GENMASK(4, 0)
-+#define ERROR_FLAG BIT(9)
-+#define OFFSET_BIT 16
-+#define OFFSET_MASK GENMASK(15, 0)
-+
-+/* Bitstream parsed data */
-+#define MB_TOTAL_BIT 8
-+#define MB_TOTAL_MASK GENMASK(15, 0)
-+#define MB_WIDTH_MASK GENMASK(7, 0)
-+#define MAX_REF_BIT 24
-+#define MAX_REF_MASK GENMASK(6, 0)
-+#define AR_IDC_BIT 16
-+#define AR_IDC_MASK GENMASK(7, 0)
-+#define AR_PRESENT_FLAG BIT(0)
-+#define AR_EXTEND 0xff
-+
-+/* Buffer to send to the ESPARSER to signal End Of Stream for H.264.
-+ * This is a 16x16 encoded picture that will trigger drain firmware-side.
-+ * There is no known alternative.
-+ */
-+static const u8 eos_sequence[SZ_1K] = {
-+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x05, 0xff, 0xe4, 0xdc, 0x45, 0xe9, 0xbd,
-+ 0xe6, 0xd9, 0x48, 0xb7, 0x96, 0x2c, 0xd8, 0x20, 0xd9, 0x23, 0xee, 0xef,
-+ 0x78, 0x32, 0x36, 0x34, 0x20, 0x2d, 0x20, 0x63, 0x6f, 0x72, 0x65, 0x20,
-+ 0x36, 0x37, 0x20, 0x72, 0x31, 0x31, 0x33, 0x30, 0x20, 0x38, 0x34, 0x37,
-+ 0x35, 0x39, 0x37, 0x37, 0x20, 0x2d, 0x20, 0x48, 0x2e, 0x32, 0x36, 0x34,
-+ 0x2f, 0x4d, 0x50, 0x45, 0x47, 0x2d, 0x34, 0x20, 0x41, 0x56, 0x43, 0x20,
-+ 0x63, 0x6f, 0x64, 0x65, 0x63, 0x20, 0x2d, 0x20, 0x43, 0x6f, 0x70, 0x79,
-+ 0x6c, 0x65, 0x66, 0x74, 0x20, 0x32, 0x30, 0x30, 0x33, 0x2d, 0x32, 0x30,
-+ 0x30, 0x39, 0x20, 0x2d, 0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f,
-+ 0x77, 0x77, 0x77, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x6c, 0x61, 0x6e,
-+ 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x78, 0x32, 0x36, 0x34, 0x2e, 0x68, 0x74,
-+ 0x6d, 0x6c, 0x20, 0x2d, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-+ 0x3a, 0x20, 0x63, 0x61, 0x62, 0x61, 0x63, 0x3d, 0x31, 0x20, 0x72, 0x65,
-+ 0x66, 0x3d, 0x31, 0x20, 0x64, 0x65, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3d,
-+ 0x31, 0x3a, 0x30, 0x3a, 0x30, 0x20, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73,
-+ 0x65, 0x3d, 0x30, 0x78, 0x31, 0x3a, 0x30, 0x78, 0x31, 0x31, 0x31, 0x20,
-+ 0x6d, 0x65, 0x3d, 0x68, 0x65, 0x78, 0x20, 0x73, 0x75, 0x62, 0x6d, 0x65,
-+ 0x3d, 0x36, 0x20, 0x70, 0x73, 0x79, 0x5f, 0x72, 0x64, 0x3d, 0x31, 0x2e,
-+ 0x30, 0x3a, 0x30, 0x2e, 0x30, 0x20, 0x6d, 0x69, 0x78, 0x65, 0x64, 0x5f,
-+ 0x72, 0x65, 0x66, 0x3d, 0x30, 0x20, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e,
-+ 0x67, 0x65, 0x3d, 0x31, 0x36, 0x20, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x61,
-+ 0x5f, 0x6d, 0x65, 0x3d, 0x31, 0x20, 0x74, 0x72, 0x65, 0x6c, 0x6c, 0x69,
-+ 0x73, 0x3d, 0x30, 0x20, 0x38, 0x78, 0x38, 0x64, 0x63, 0x74, 0x3d, 0x30,
-+ 0x20, 0x63, 0x71, 0x6d, 0x3d, 0x30, 0x20, 0x64, 0x65, 0x61, 0x64, 0x7a,
-+ 0x6f, 0x6e, 0x65, 0x3d, 0x32, 0x31, 0x2c, 0x31, 0x31, 0x20, 0x63, 0x68,
-+ 0x72, 0x6f, 0x6d, 0x61, 0x5f, 0x71, 0x70, 0x5f, 0x6f, 0x66, 0x66, 0x73,
-+ 0x65, 0x74, 0x3d, 0x2d, 0x32, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64,
-+ 0x73, 0x3d, 0x31, 0x20, 0x6e, 0x72, 0x3d, 0x30, 0x20, 0x64, 0x65, 0x63,
-+ 0x69, 0x6d, 0x61, 0x74, 0x65, 0x3d, 0x31, 0x20, 0x6d, 0x62, 0x61, 0x66,
-+ 0x66, 0x3d, 0x30, 0x20, 0x62, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x3d,
-+ 0x30, 0x20, 0x6b, 0x65, 0x79, 0x69, 0x6e, 0x74, 0x3d, 0x32, 0x35, 0x30,
-+ 0x20, 0x6b, 0x65, 0x79, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x3d,
-+ 0x32, 0x35, 0x20, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x63, 0x75, 0x74, 0x3d,
-+ 0x34, 0x30, 0x20, 0x72, 0x63, 0x3d, 0x61, 0x62, 0x72, 0x20, 0x62, 0x69,
-+ 0x74, 0x72, 0x61, 0x74, 0x65, 0x3d, 0x31, 0x30, 0x20, 0x72, 0x61, 0x74,
-+ 0x65, 0x74, 0x6f, 0x6c, 0x3d, 0x31, 0x2e, 0x30, 0x20, 0x71, 0x63, 0x6f,
-+ 0x6d, 0x70, 0x3d, 0x30, 0x2e, 0x36, 0x30, 0x20, 0x71, 0x70, 0x6d, 0x69,
-+ 0x6e, 0x3d, 0x31, 0x30, 0x20, 0x71, 0x70, 0x6d, 0x61, 0x78, 0x3d, 0x35,
-+ 0x31, 0x20, 0x71, 0x70, 0x73, 0x74, 0x65, 0x70, 0x3d, 0x34, 0x20, 0x69,
-+ 0x70, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x3d, 0x31, 0x2e, 0x34, 0x30,
-+ 0x20, 0x61, 0x71, 0x3d, 0x31, 0x3a, 0x31, 0x2e, 0x30, 0x30, 0x00, 0x80,
-+ 0x00, 0x00, 0x00, 0x01, 0x67, 0x4d, 0x40, 0x0a, 0x9a, 0x74, 0xf4, 0x20,
-+ 0x00, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x06, 0x51, 0xe2, 0x44, 0xd4,
-+ 0x00, 0x00, 0x00, 0x01, 0x68, 0xee, 0x32, 0xc8, 0x00, 0x00, 0x00, 0x01,
-+ 0x65, 0x88, 0x80, 0x20, 0x00, 0x08, 0x7f, 0xea, 0x6a, 0xe2, 0x99, 0xb6,
-+ 0x57, 0xae, 0x49, 0x30, 0xf5, 0xfe, 0x5e, 0x46, 0x0b, 0x72, 0x44, 0xc4,
-+ 0xe1, 0xfc, 0x62, 0xda, 0xf1, 0xfb, 0xa2, 0xdb, 0xd6, 0xbe, 0x5c, 0xd7,
-+ 0x24, 0xa3, 0xf5, 0xb9, 0x2f, 0x57, 0x16, 0x49, 0x75, 0x47, 0x77, 0x09,
-+ 0x5c, 0xa1, 0xb4, 0xc3, 0x4f, 0x60, 0x2b, 0xb0, 0x0c, 0xc8, 0xd6, 0x66,
-+ 0xba, 0x9b, 0x82, 0x29, 0x33, 0x92, 0x26, 0x99, 0x31, 0x1c, 0x7f, 0x9b
-+};
-+
-+static const u8 *codec_h264_eos_sequence(u32 *len)
-+{
-+ *len = ARRAY_SIZE(eos_sequence);
-+ return eos_sequence;
-+}
-+
-+struct codec_h264 {
-+ /* H.264 decoder requires an extended firmware */
-+ void *ext_fw_vaddr;
-+ dma_addr_t ext_fw_paddr;
-+
-+ /* Buffer for the H.264 Workspace */
-+ void *workspace_vaddr;
-+ dma_addr_t workspace_paddr;
-+
-+ /* Buffer for the H.264 references MV */
-+ void *ref_vaddr;
-+ dma_addr_t ref_paddr;
-+ u32 ref_size;
-+
-+ /* Buffer for parsed SEI data */
-+ void *sei_vaddr;
-+ dma_addr_t sei_paddr;
-+
-+ u32 mb_width;
-+ u32 mb_height;
-+ u32 max_refs;
-+};
-+
-+static int codec_h264_can_recycle(struct amvdec_core *core)
-+{
-+ return !amvdec_read_dos(core, AV_SCRATCH_7) ||
-+ !amvdec_read_dos(core, AV_SCRATCH_8);
-+}
-+
-+static void codec_h264_recycle(struct amvdec_core *core, u32 buf_idx)
-+{
-+ /* Tell the decoder he can recycle this buffer.
-+ * AV_SCRATCH_8 serves the same purpose.
-+ */
-+ if (!amvdec_read_dos(core, AV_SCRATCH_7))
-+ amvdec_write_dos(core, AV_SCRATCH_7, buf_idx + 1);
-+ else
-+ amvdec_write_dos(core, AV_SCRATCH_8, buf_idx + 1);
-+}
-+
-+static int codec_h264_start(struct amvdec_session *sess) {
-+ u32 workspace_offset;
-+ struct amvdec_core *core = sess->core;
-+ struct codec_h264 *h264 = sess->priv;
-+
-+ /* Allocate some memory for the H.264 decoder's state */
-+ h264->workspace_vaddr = dma_alloc_coherent(core->dev, SIZE_WORKSPACE,
-+ &h264->workspace_paddr, GFP_KERNEL);
-+ if (!h264->workspace_vaddr) {
-+ dev_err(core->dev, "Failed to alloc H.264 Workspace\n");
-+ return -ENOMEM;
-+ }
-+
-+ /* Allocate some memory for the H.264 SEI dump */
-+ h264->sei_vaddr = dma_alloc_coherent(core->dev, SIZE_SEI,
-+ &h264->sei_paddr, GFP_KERNEL);
-+ if (!h264->sei_vaddr) {
-+ dev_err(core->dev, "Failed to alloc H.264 SEI\n");
-+ return -ENOMEM;
-+ }
-+
-+ amvdec_write_dos_bits(core, POWER_CTL_VLD, BIT(9) | BIT(6));
-+
-+ workspace_offset = h264->workspace_paddr - WORKSPACE_BUF_OFFSET;
-+ amvdec_write_dos(core, AV_SCRATCH_1, workspace_offset);
-+ amvdec_write_dos(core, AV_SCRATCH_G, h264->ext_fw_paddr);
-+ amvdec_write_dos(core, AV_SCRATCH_I, h264->sei_paddr - workspace_offset);
-+
-+ /* Enable "error correction" */
-+ amvdec_write_dos(core, AV_SCRATCH_F,
-+ (amvdec_read_dos(core, AV_SCRATCH_F) & 0xffffffc3) |
-+ BIT(4) | BIT(7));
-+
-+ amvdec_write_dos(core, MDEC_PIC_DC_THRESH, 0x404038aa);
-+
-+ return 0;
-+}
-+
-+static int codec_h264_stop(struct amvdec_session *sess)
-+{
-+ struct codec_h264 *h264 = sess->priv;
-+ struct amvdec_core *core = sess->core;
-+
-+ if (h264->ext_fw_vaddr)
-+ dma_free_coherent(core->dev, SIZE_EXT_FW,
-+ h264->ext_fw_vaddr, h264->ext_fw_paddr);
-+
-+ if (h264->workspace_vaddr)
-+ dma_free_coherent(core->dev, SIZE_WORKSPACE,
-+ h264->workspace_vaddr, h264->workspace_paddr);
-+
-+ if (h264->ref_vaddr)
-+ dma_free_coherent(core->dev, h264->ref_size,
-+ h264->ref_vaddr, h264->ref_paddr);
-+
-+ if (h264->sei_vaddr)
-+ dma_free_coherent(core->dev, SIZE_SEI,
-+ h264->sei_vaddr, h264->sei_paddr);
-+
-+ return 0;
-+}
-+
-+static int codec_h264_load_extended_firmware(struct amvdec_session *sess,
-+ const u8 *data, u32 len)
-+{
-+ struct codec_h264 *h264;
-+ struct amvdec_core *core = sess->core;
-+
-+ if (len < SIZE_EXT_FW)
-+ return -EINVAL;
-+
-+ h264 = kzalloc(sizeof(*h264), GFP_KERNEL);
-+ if (!h264)
-+ return -ENOMEM;
-+
-+ h264->ext_fw_vaddr = dma_alloc_coherent(core->dev, SIZE_EXT_FW,
-+ &h264->ext_fw_paddr, GFP_KERNEL);
-+ if (!h264->ext_fw_vaddr) {
-+ dev_err(core->dev, "Failed to alloc H.264 extended fw\n");
-+ kfree(h264);
-+ return -ENOMEM;
-+ }
-+
-+ memcpy(h264->ext_fw_vaddr, data, SIZE_EXT_FW);
-+ sess->priv = h264;
-+
-+ return 0;
-+}
-+
-+static const struct v4l2_fract par_table[] = {
-+ { 1, 1 }, { 1, 1 }, { 12, 11 }, { 10, 11 },
-+ { 16, 11 }, { 40, 33 }, { 24, 11 }, { 20, 11 },
-+ { 32, 11 }, { 80, 33 }, { 18, 11 }, { 15, 11 },
-+ { 64, 33 }, { 160, 99 }, { 4, 3 }, { 3, 2 },
-+ { 2, 1 }
-+};
-+
-+static void codec_h264_set_par(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 seq_info = amvdec_read_dos(core, AV_SCRATCH_2);
-+ u32 ar_idc = (seq_info >> AR_IDC_BIT) & AR_IDC_MASK;
-+
-+ if (!(seq_info & AR_PRESENT_FLAG))
-+ return;
-+
-+ if (ar_idc == AR_EXTEND) {
-+ u32 ar_info = amvdec_read_dos(core, AV_SCRATCH_3);
-+ sess->pixelaspect.numerator = ar_info & 0xffff;
-+ sess->pixelaspect.denominator = (ar_info >> 16) & 0xffff;
-+ return;
-+ }
-+
-+ if (ar_idc >= ARRAY_SIZE(par_table))
-+ return;
-+
-+ sess->pixelaspect = par_table[ar_idc];
-+}
-+
-+static void codec_h264_resume(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ struct codec_h264 *h264 = sess->priv;
-+ u32 mb_width, mb_height, mb_total;
-+
-+ amvdec_set_canvases(sess, (u32[]){ ANC0_CANVAS_ADDR, 0 },
-+ (u32[]){ 24, 0 });
-+
-+ dev_dbg(core->dev,
-+ "max_refs = %u; actual_dpb_size = %u\n",
-+ h264->max_refs, sess->num_dst_bufs);
-+
-+ /* Align to a multiple of 4 macroblocks */
-+ mb_width = ALIGN(h264->mb_width, 4);
-+ mb_height = ALIGN(h264->mb_height, 4);
-+ mb_total = mb_width * mb_height;
-+
-+ h264->ref_size = mb_total * MB_MV_SIZE * h264->max_refs;
-+ h264->ref_vaddr = dma_alloc_coherent(core->dev, h264->ref_size,
-+ &h264->ref_paddr, GFP_KERNEL);
-+ if (!h264->ref_vaddr) {
-+ dev_err(core->dev, "Failed to alloc refs (%u)\n",
-+ h264->ref_size);
-+ amvdec_abort(sess);
-+ return;
-+ }
-+
-+ /* Address to store the references' MVs */
-+ amvdec_write_dos(core, AV_SCRATCH_1, h264->ref_paddr);
-+ /* End of ref MV */
-+ amvdec_write_dos(core, AV_SCRATCH_4, h264->ref_paddr + h264->ref_size);
-+
-+ amvdec_write_dos(core, AV_SCRATCH_0, (h264->max_refs << 24) |
-+ (sess->num_dst_bufs << 16) |
-+ ((h264->max_refs - 1) << 8));
-+}
-+
-+/* Configure the H.264 decoder when the parser detected a parameter set change
-+ */
-+static void codec_h264_src_change(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ struct codec_h264 *h264 = sess->priv;
-+ u32 parsed_info, mb_total;
-+ u32 crop_infor, crop_bottom, crop_right;
-+ u32 frame_width, frame_height;
-+
-+ sess->keyframe_found = 1;
-+
-+ parsed_info = amvdec_read_dos(core, AV_SCRATCH_1);
-+
-+ /* Total number of 16x16 macroblocks */
-+ mb_total = (parsed_info >> MB_TOTAL_BIT) & MB_TOTAL_MASK;
-+ /* Number of macroblocks per line */
-+ h264->mb_width = parsed_info & MB_WIDTH_MASK;
-+ /* Number of macroblock lines */
-+ h264->mb_height = mb_total / h264->mb_width;
-+
-+ h264->max_refs = ((parsed_info >> MAX_REF_BIT) & MAX_REF_MASK) + 1;
-+
-+ crop_infor = amvdec_read_dos(core, AV_SCRATCH_6);
-+ crop_bottom = (crop_infor & 0xff);
-+ crop_right = (crop_infor >> 16) & 0xff;
-+
-+ frame_width = h264->mb_width * 16 - crop_right;
-+ frame_height = h264->mb_height * 16 - crop_bottom;
-+
-+ dev_info(core->dev, "frame: %ux%u; crop: %u %u\n",
-+ frame_width, frame_height, crop_right, crop_bottom);
-+
-+ codec_h264_set_par(sess);
-+ amvdec_src_change(sess, frame_width, frame_height, h264->max_refs + 5);
-+}
-+
-+/**
-+ * The offset is split in half in 2 different registers
-+ */
-+static u32 get_offset_msb(struct amvdec_core *core, int frame_num)
-+{
-+ int take_msb = frame_num % 2;
-+ int reg_offset = (frame_num / 2) * 4;
-+ u32 offset_msb = amvdec_read_dos(core, AV_SCRATCH_A + reg_offset);
-+
-+ if (take_msb)
-+ return offset_msb & 0xffff0000;
-+
-+ return (offset_msb & 0x0000ffff) << 16;
-+}
-+
-+static void codec_h264_frames_ready(struct amvdec_session *sess, u32 status)
-+{
-+ struct amvdec_core *core = sess->core;
-+ int error_count;
-+ int num_frames;
-+ int i;
-+
-+ error_count = amvdec_read_dos(core, AV_SCRATCH_D);
-+ num_frames = (status >> 8) & 0xff;
-+ if (error_count) {
-+ dev_warn(core->dev,
-+ "decoder error(s) happened, count %d\n", error_count);
-+ amvdec_write_dos(core, AV_SCRATCH_D, 0);
-+ }
-+
-+ for (i = 0; i < num_frames; i++) {
-+ u32 frame_status = amvdec_read_dos(core, AV_SCRATCH_1 + i * 4);
-+ u32 buffer_index = frame_status & BUF_IDX_MASK;
-+ u32 pic_struct = (frame_status >> PIC_STRUCT_BIT) &
-+ PIC_STRUCT_MASK;
-+ u32 offset = (frame_status >> OFFSET_BIT) & OFFSET_MASK;
-+ u32 field = V4L2_FIELD_NONE;
-+
-+ /* A buffer decode error means it was decoded,
-+ * but part of the picture will have artifacts.
-+ * Typical reason is a temporarily corrupted bitstream
-+ */
-+ if (frame_status & ERROR_FLAG)
-+ dev_dbg(core->dev, "Buffer %d decode error\n",
-+ buffer_index);
-+
-+ if (pic_struct == PIC_TOP_BOT)
-+ field = V4L2_FIELD_INTERLACED_TB;
-+ else if (pic_struct == PIC_BOT_TOP)
-+ field = V4L2_FIELD_INTERLACED_BT;
-+
-+ offset |= get_offset_msb(core, i);
-+ amvdec_dst_buf_done_idx(sess, buffer_index, offset, field);
-+ }
-+}
-+
-+static irqreturn_t codec_h264_threaded_isr(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 status;
-+ u32 size;
-+ u8 cmd;
-+
-+ status = amvdec_read_dos(core, AV_SCRATCH_0);
-+ cmd = status & CMD_MASK;
-+
-+ switch (cmd) {
-+ case CMD_SRC_CHANGE:
-+ codec_h264_src_change(sess);
-+ break;
-+ case CMD_FRAMES_READY:
-+ codec_h264_frames_ready(sess, status);
-+ break;
-+ case CMD_FATAL_ERROR:
-+ dev_err(core->dev, "H.264 decoder fatal error\n");
-+ goto abort;
-+ case CMD_BAD_WIDTH:
-+ size = (amvdec_read_dos(core, AV_SCRATCH_1) + 1) * 16;
-+ dev_err(core->dev, "Unsupported video width: %u\n", size);
-+ goto abort;
-+ case CMD_BAD_HEIGHT:
-+ size = (amvdec_read_dos(core, AV_SCRATCH_1) + 1) * 16;
-+ dev_err(core->dev, "Unsupported video height: %u\n", size);
-+ goto abort;
-+ case 0: /* Unused but not worth printing for */
-+ case 9:
-+ break;
-+ default:
-+ dev_info(core->dev, "Unexpected H264 ISR: %08X\n", cmd);
-+ break;
-+ }
-+
-+ if (cmd && cmd != CMD_SRC_CHANGE)
-+ amvdec_write_dos(core, AV_SCRATCH_0, 0);
-+
-+ /* Decoder has some SEI data for us ; ignore */
-+ if (amvdec_read_dos(core, AV_SCRATCH_J) & SEI_DATA_READY)
-+ amvdec_write_dos(core, AV_SCRATCH_J, 0);
-+
-+ return IRQ_HANDLED;
-+abort:
-+ amvdec_abort(sess);
-+ return IRQ_HANDLED;
-+}
-+
-+static irqreturn_t codec_h264_isr(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+
-+ amvdec_write_dos(core, ASSIST_MBOX1_CLR_REG, 1);
-+
-+ return IRQ_WAKE_THREAD;
-+}
-+
-+struct amvdec_codec_ops codec_h264_ops = {
-+ .start = codec_h264_start,
-+ .stop = codec_h264_stop,
-+ .load_extended_firmware = codec_h264_load_extended_firmware,
-+ .isr = codec_h264_isr,
-+ .threaded_isr = codec_h264_threaded_isr,
-+ .can_recycle = codec_h264_can_recycle,
-+ .recycle = codec_h264_recycle,
-+ .eos_sequence = codec_h264_eos_sequence,
-+ .resume = codec_h264_resume,
-+};
-diff --git a/drivers/media/platform/meson/vdec/codec_h264.h b/drivers/media/platform/meson/vdec/codec_h264.h
-new file mode 100644
-index 0000000..7a15976
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_h264.h
-@@ -0,0 +1,13 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-+ */
-+
-+#ifndef __MESON_VDEC_CODEC_H264_H_
-+#define __MESON_VDEC_CODEC_H264_H_
-+
-+#include "vdec.h"
-+
-+extern struct amvdec_codec_ops codec_h264_ops;
-+
-+#endif
-\ No newline at end of file
-diff --git a/drivers/media/platform/meson/vdec/vdec_platform.c b/drivers/media/platform/meson/vdec/vdec_platform.c
-index 291f1ee..baecf59 100644
---- a/drivers/media/platform/meson/vdec/vdec_platform.c
-+++ b/drivers/media/platform/meson/vdec/vdec_platform.c
-@@ -9,9 +9,20 @@
-
- #include "vdec_1.h"
- #include "codec_mpeg12.h"
-+#include "codec_h264.h"
-
- static const struct amvdec_format vdec_formats_gxbb[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_H264,
-+ .min_buffers = 2,
-+ .max_buffers = 24,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_h264_ops,
-+ .firmware_path = "meson/gxbb/vh264_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_MPEG1,
- .min_buffers = 8,
- .max_buffers = 8,
-@@ -38,6 +49,16 @@ static const struct amvdec_format vdec_formats_gxbb[] = {
-
- static const struct amvdec_format vdec_formats_gxl[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_H264,
-+ .min_buffers = 2,
-+ .max_buffers = 24,
-+ .max_width = 3840,
-+ .max_height = 2160,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_h264_ops,
-+ .firmware_path = "meson/gxl/vh264_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_MPEG1,
- .min_buffers = 8,
- .max_buffers = 8,
-@@ -64,6 +85,16 @@ static const struct amvdec_format vdec_formats_gxl[] = {
-
- static const struct amvdec_format vdec_formats_gxm[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_H264,
-+ .min_buffers = 2,
-+ .max_buffers = 24,
-+ .max_width = 3840,
-+ .max_height = 2160,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_h264_ops,
-+ .firmware_path = "meson/gxm/vh264_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_MPEG1,
- .min_buffers = 8,
- .max_buffers = 8,
diff --git a/testing/linux-amlogic/0041-media-meson-vdec-add-MPEG4-decoding-support.patch b/testing/linux-amlogic/0041-media-meson-vdec-add-MPEG4-decoding-support.patch
deleted file mode 100644
index 01fd5ae030f..00000000000
--- a/testing/linux-amlogic/0041-media-meson-vdec-add-MPEG4-decoding-support.patch
+++ /dev/null
@@ -1,313 +0,0 @@
-From e222a1cf4bd62745407a9404565d76b8a5770f12 Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Wed, 29 Aug 2018 16:01:55 +0200
-Subject: [PATCH] media: meson: vdec: add MPEG4 decoding support
-
-Add support for V4L2_PIX_FMT_MPEG4, V4L2_PIX_FMT_XVID and
-V4L2_PIX_FMT_H.263
-
----
- drivers/media/platform/meson/vdec/Makefile | 2 +-
- drivers/media/platform/meson/vdec/codec_mpeg4.c | 139 ++++++++++++++++++++++
- drivers/media/platform/meson/vdec/codec_mpeg4.h | 13 ++
- drivers/media/platform/meson/vdec/vdec_platform.c | 91 ++++++++++++++
- 4 files changed, 244 insertions(+), 1 deletion(-)
- create mode 100644 drivers/media/platform/meson/vdec/codec_mpeg4.c
- create mode 100644 drivers/media/platform/meson/vdec/codec_mpeg4.h
-
-diff --git a/drivers/media/platform/meson/vdec/Makefile b/drivers/media/platform/meson/vdec/Makefile
-index 01dc960..bb7a134 100644
---- a/drivers/media/platform/meson/vdec/Makefile
-+++ b/drivers/media/platform/meson/vdec/Makefile
-@@ -3,6 +3,6 @@
-
- meson-vdec-objs = esparser.o vdec.o vdec_ctrls.o vdec_helpers.o vdec_platform.o
- meson-vdec-objs += vdec_1.o
--meson-vdec-objs += codec_mpeg12.o codec_h264.o
-+meson-vdec-objs += codec_mpeg12.o codec_h264.o codec_mpeg4.o
-
- obj-$(CONFIG_VIDEO_MESON_VDEC) += meson-vdec.o
-diff --git a/drivers/media/platform/meson/vdec/codec_mpeg4.c b/drivers/media/platform/meson/vdec/codec_mpeg4.c
-new file mode 100644
-index 0000000..1d574e5
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_mpeg4.c
-@@ -0,0 +1,139 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-+ */
-+
-+#include <media/v4l2-mem2mem.h>
-+#include <media/videobuf2-dma-contig.h>
-+
-+#include "vdec_helpers.h"
-+#include "dos_regs.h"
-+
-+#define SIZE_WORKSPACE SZ_1M
-+/* Offset added by firmware, to substract from workspace paddr */
-+#define DCAC_BUFF_START_IP 0x02b00000
-+
-+/* map firmware registers to known MPEG4 functions */
-+#define MREG_BUFFERIN AV_SCRATCH_8
-+#define MREG_BUFFEROUT AV_SCRATCH_9
-+#define MP4_NOT_CODED_CNT AV_SCRATCH_A
-+#define MP4_OFFSET_REG AV_SCRATCH_C
-+#define MEM_OFFSET_REG AV_SCRATCH_F
-+#define MREG_FATAL_ERROR AV_SCRATCH_L
-+
-+#define BUF_IDX_MASK GENMASK(2, 0)
-+#define INTERLACE_FLAG BIT(7)
-+#define TOP_FIELD_FIRST_FLAG BIT(6)
-+
-+struct codec_mpeg4 {
-+ /* Buffer for the MPEG4 Workspace */
-+ void *workspace_vaddr;
-+ dma_addr_t workspace_paddr;
-+};
-+
-+static int codec_mpeg4_can_recycle(struct amvdec_core *core)
-+{
-+ return !amvdec_read_dos(core, MREG_BUFFERIN);
-+}
-+
-+static void codec_mpeg4_recycle(struct amvdec_core *core, u32 buf_idx)
-+{
-+ amvdec_write_dos(core, MREG_BUFFERIN, ~BIT(buf_idx));
-+}
-+
-+static int codec_mpeg4_start(struct amvdec_session *sess) {
-+ struct amvdec_core *core = sess->core;
-+ struct codec_mpeg4 *mpeg4 = sess->priv;
-+ int ret;
-+
-+ mpeg4 = kzalloc(sizeof(*mpeg4), GFP_KERNEL);
-+ if (!mpeg4)
-+ return -ENOMEM;
-+
-+ /* Allocate some memory for the MPEG4 decoder's state */
-+ mpeg4->workspace_vaddr = dma_alloc_coherent(core->dev, SIZE_WORKSPACE,
-+ &mpeg4->workspace_paddr,
-+ GFP_KERNEL);
-+ if (!mpeg4->workspace_vaddr) {
-+ dev_err(core->dev, "Failed to request MPEG4 Workspace\n");
-+ ret = -ENOMEM;
-+ goto free_mpeg4;
-+ }
-+
-+ /* Canvas regs: AV_SCRATCH_0-AV_SCRATCH_4;AV_SCRATCH_G-AV_SCRATCH_J */
-+ amvdec_set_canvases(sess, (u32[]){ AV_SCRATCH_0, AV_SCRATCH_G, 0 },
-+ (u32[]){ 4, 4, 0 });
-+
-+ amvdec_write_dos(core, MEM_OFFSET_REG,
-+ mpeg4->workspace_paddr - DCAC_BUFF_START_IP);
-+ amvdec_write_dos(core, PSCALE_CTRL, 0);
-+ amvdec_write_dos(core, MP4_NOT_CODED_CNT, 0);
-+ amvdec_write_dos(core, MREG_BUFFERIN, 0);
-+ amvdec_write_dos(core, MREG_BUFFEROUT, 0);
-+ amvdec_write_dos(core, MREG_FATAL_ERROR, 0);
-+ amvdec_write_dos(core, MDEC_PIC_DC_THRESH, 0x404038aa);
-+
-+ sess->keyframe_found = 1;
-+ sess->priv = mpeg4;
-+
-+ return 0;
-+
-+free_mpeg4:
-+ kfree(mpeg4);
-+ return ret;
-+}
-+
-+static int codec_mpeg4_stop(struct amvdec_session *sess)
-+{
-+ struct codec_mpeg4 *mpeg4 = sess->priv;
-+ struct amvdec_core *core = sess->core;
-+
-+ if (mpeg4->workspace_vaddr) {
-+ dma_free_coherent(core->dev, SIZE_WORKSPACE,
-+ mpeg4->workspace_vaddr,
-+ mpeg4->workspace_paddr);
-+ mpeg4->workspace_vaddr = 0;
-+ }
-+
-+ return 0;
-+}
-+
-+static irqreturn_t codec_mpeg4_isr(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 reg;
-+ u32 buffer_index;
-+ u32 field = V4L2_FIELD_NONE;
-+
-+ reg = amvdec_read_dos(core, MREG_FATAL_ERROR);
-+ if (reg == 1) {
-+ dev_err(core->dev, "mpeg4 fatal error\n");
-+ amvdec_abort(sess);
-+ return IRQ_HANDLED;
-+ }
-+
-+ reg = amvdec_read_dos(core, MREG_BUFFEROUT);
-+ if (!reg)
-+ goto end;
-+
-+ buffer_index = reg & BUF_IDX_MASK;
-+ if (reg & INTERLACE_FLAG)
-+ field = (reg & TOP_FIELD_FIRST_FLAG) ?
-+ V4L2_FIELD_INTERLACED_TB :
-+ V4L2_FIELD_INTERLACED_BT;
-+
-+ amvdec_dst_buf_done_idx(sess, buffer_index, -1, field);
-+ amvdec_write_dos(core, MREG_BUFFEROUT, 0);
-+
-+end:
-+ amvdec_write_dos(core, ASSIST_MBOX1_CLR_REG, 1);
-+ return IRQ_HANDLED;
-+}
-+
-+struct amvdec_codec_ops codec_mpeg4_ops = {
-+ .start = codec_mpeg4_start,
-+ .stop = codec_mpeg4_stop,
-+ .isr = codec_mpeg4_isr,
-+ .can_recycle = codec_mpeg4_can_recycle,
-+ .recycle = codec_mpeg4_recycle,
-+};
-diff --git a/drivers/media/platform/meson/vdec/codec_mpeg4.h b/drivers/media/platform/meson/vdec/codec_mpeg4.h
-new file mode 100644
-index 0000000..b91b26413
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_mpeg4.h
-@@ -0,0 +1,13 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-+ */
-+
-+#ifndef __MESON_VDEC_CODEC_MPEG4_H_
-+#define __MESON_VDEC_CODEC_MPEG4_H_
-+
-+#include "vdec.h"
-+
-+extern struct amvdec_codec_ops codec_mpeg4_ops;
-+
-+#endif
-\ No newline at end of file
-diff --git a/drivers/media/platform/meson/vdec/vdec_platform.c b/drivers/media/platform/meson/vdec/vdec_platform.c
-index baecf59..80b43fd 100644
---- a/drivers/media/platform/meson/vdec/vdec_platform.c
-+++ b/drivers/media/platform/meson/vdec/vdec_platform.c
-@@ -10,9 +10,40 @@
- #include "vdec_1.h"
- #include "codec_mpeg12.h"
- #include "codec_h264.h"
-+#include "codec_mpeg4.h"
-
- static const struct amvdec_format vdec_formats_gxbb[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_MPEG4,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/vmpeg4_mc_5",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_H263,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/h263_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_XVID,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/vmpeg4_mc_5",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_H264,
- .min_buffers = 2,
- .max_buffers = 24,
-@@ -49,6 +80,36 @@ static const struct amvdec_format vdec_formats_gxbb[] = {
-
- static const struct amvdec_format vdec_formats_gxl[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_MPEG4,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/vmpeg4_mc_5",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_H263,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/h263_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_XVID,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/vmpeg4_mc_5",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_H264,
- .min_buffers = 2,
- .max_buffers = 24,
-@@ -85,6 +146,36 @@ static const struct amvdec_format vdec_formats_gxl[] = {
-
- static const struct amvdec_format vdec_formats_gxm[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_MPEG4,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/vmpeg4_mc_5",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_H263,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/h263_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
-+ .pixfmt = V4L2_PIX_FMT_XVID,
-+ .min_buffers = 8,
-+ .max_buffers = 8,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mpeg4_ops,
-+ .firmware_path = "meson/gx/vmpeg4_mc_5",
-+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_H264,
- .min_buffers = 2,
- .max_buffers = 24,
diff --git a/testing/linux-amlogic/0042-media-meson-vdec-add-MJPEG-decoding-support.patch b/testing/linux-amlogic/0042-media-meson-vdec-add-MJPEG-decoding-support.patch
deleted file mode 100644
index b72f817fe66..00000000000
--- a/testing/linux-amlogic/0042-media-meson-vdec-add-MJPEG-decoding-support.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-From 9a662159440cf5e0f55275ef63588e35c91c581e Mon Sep 17 00:00:00 2001
-From: Maxime Jourdan <mjourdan@baylibre.com>
-Date: Sun, 21 Oct 2018 15:14:27 +0200
-Subject: [PATCH] media: meson: vdec: add MJPEG decoding support
-
-Add support for V4L2_PIX_FMT_MJPEG
-
----
- drivers/media/platform/meson/vdec/Makefile | 2 +-
- drivers/media/platform/meson/vdec/codec_mjpeg.c | 140 ++++++++++++++++++++++
- drivers/media/platform/meson/vdec/codec_mjpeg.h | 13 ++
- drivers/media/platform/meson/vdec/vdec_platform.c | 31 +++++
- 4 files changed, 185 insertions(+), 1 deletion(-)
- create mode 100644 drivers/media/platform/meson/vdec/codec_mjpeg.c
- create mode 100644 drivers/media/platform/meson/vdec/codec_mjpeg.h
-
-diff --git a/drivers/media/platform/meson/vdec/Makefile b/drivers/media/platform/meson/vdec/Makefile
-index bb7a134..acf07f3 100644
---- a/drivers/media/platform/meson/vdec/Makefile
-+++ b/drivers/media/platform/meson/vdec/Makefile
-@@ -3,6 +3,6 @@
-
- meson-vdec-objs = esparser.o vdec.o vdec_ctrls.o vdec_helpers.o vdec_platform.o
- meson-vdec-objs += vdec_1.o
--meson-vdec-objs += codec_mpeg12.o codec_h264.o codec_mpeg4.o
-+meson-vdec-objs += codec_mpeg12.o codec_h264.o codec_mpeg4.o codec_mjpeg.o
-
- obj-$(CONFIG_VIDEO_MESON_VDEC) += meson-vdec.o
-diff --git a/drivers/media/platform/meson/vdec/codec_mjpeg.c b/drivers/media/platform/meson/vdec/codec_mjpeg.c
-new file mode 100644
-index 0000000..abea9e3
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_mjpeg.c
-@@ -0,0 +1,140 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright (C) 2018 Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-+ */
-+
-+#include <media/v4l2-mem2mem.h>
-+#include <media/videobuf2-dma-contig.h>
-+
-+#include "vdec_helpers.h"
-+#include "dos_regs.h"
-+
-+/* map FW registers to known MJPEG functions */
-+#define MREG_DECODE_PARAM AV_SCRATCH_2
-+#define MREG_TO_AMRISC AV_SCRATCH_8
-+#define MREG_FROM_AMRISC AV_SCRATCH_9
-+#define MREG_FRAME_OFFSET AV_SCRATCH_A
-+
-+static int codec_mjpeg_can_recycle(struct amvdec_core *core)
-+{
-+ return !amvdec_read_dos(core, MREG_TO_AMRISC);
-+}
-+
-+static void codec_mjpeg_recycle(struct amvdec_core *core, u32 buf_idx)
-+{
-+ amvdec_write_dos(core, MREG_TO_AMRISC, buf_idx + 1);
-+}
-+
-+/* 4 point triangle */
-+static const uint32_t filt_coef[] = {
-+ 0x20402000, 0x20402000, 0x1f3f2101, 0x1f3f2101,
-+ 0x1e3e2202, 0x1e3e2202, 0x1d3d2303, 0x1d3d2303,
-+ 0x1c3c2404, 0x1c3c2404, 0x1b3b2505, 0x1b3b2505,
-+ 0x1a3a2606, 0x1a3a2606, 0x19392707, 0x19392707,
-+ 0x18382808, 0x18382808, 0x17372909, 0x17372909,
-+ 0x16362a0a, 0x16362a0a, 0x15352b0b, 0x15352b0b,
-+ 0x14342c0c, 0x14342c0c, 0x13332d0d, 0x13332d0d,
-+ 0x12322e0e, 0x12322e0e, 0x11312f0f, 0x11312f0f,
-+ 0x10303010
-+};
-+
-+static void codec_mjpeg_init_scaler(struct amvdec_core *core)
-+{
-+ int i;
-+
-+ /* PSCALE cbus bmem enable */
-+ amvdec_write_dos(core, PSCALE_CTRL, 0xc000);
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 0);
-+ for (i = 0; i < ARRAY_SIZE(filt_coef); ++i) {
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, filt_coef[i]);
-+ }
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 74);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x0008);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x60000000);
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 82);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x0008);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x60000000);
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 78);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x0008);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x60000000);
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 86);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x0008);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x60000000);
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 73);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x10000);
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 81);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x10000);
-+
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 77);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x10000);
-+ amvdec_write_dos(core, PSCALE_BMEM_ADDR, 85);
-+ amvdec_write_dos(core, PSCALE_BMEM_DAT, 0x10000);
-+
-+ amvdec_write_dos(core, PSCALE_RST, 0x7);
-+ amvdec_write_dos(core, PSCALE_RST, 0);
-+}
-+
-+static int codec_mjpeg_start(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+
-+ amvdec_write_dos(core, AV_SCRATCH_0, 12);
-+ amvdec_write_dos(core, AV_SCRATCH_1, 0x031a);
-+
-+ amvdec_set_canvases(sess, (u32[]){ AV_SCRATCH_4, 0 },
-+ (u32[]){ 4, 0 });
-+ codec_mjpeg_init_scaler(core);
-+
-+ amvdec_write_dos(core, MREG_TO_AMRISC, 0);
-+ amvdec_write_dos(core, MREG_FROM_AMRISC, 0);
-+ amvdec_write_dos(core, MCPU_INTR_MSK, 0xffff);
-+ amvdec_write_dos(core, MREG_DECODE_PARAM,
-+ (sess->height << 4) | 0x8000);
-+ amvdec_write_dos(core, VDEC_ASSIST_AMR1_INT8, 8);
-+
-+ /* Intra-only codec */
-+ sess->keyframe_found = 1;
-+
-+ return 0;
-+}
-+
-+static int codec_mjpeg_stop(struct amvdec_session *sess)
-+{
-+ return 0;
-+}
-+
-+static irqreturn_t codec_mjpeg_isr(struct amvdec_session *sess)
-+{
-+ struct amvdec_core *core = sess->core;
-+ u32 reg;
-+ u32 buffer_index;
-+ u32 offset;
-+
-+ amvdec_write_dos(core, ASSIST_MBOX1_CLR_REG, 1);
-+
-+ reg = amvdec_read_dos(core, MREG_FROM_AMRISC);
-+ if (!(reg & 0x7))
-+ return IRQ_HANDLED;
-+
-+ buffer_index = ((reg & 0x7) - 1) & 3;
-+ offset = amvdec_read_dos(core, MREG_FRAME_OFFSET);
-+ amvdec_dst_buf_done_idx(sess, buffer_index, offset, V4L2_FIELD_NONE);
-+
-+ amvdec_write_dos(core, MREG_FROM_AMRISC, 0);
-+ return IRQ_HANDLED;
-+}
-+
-+struct amvdec_codec_ops codec_mjpeg_ops = {
-+ .start = codec_mjpeg_start,
-+ .stop = codec_mjpeg_stop,
-+ .isr = codec_mjpeg_isr,
-+ .can_recycle = codec_mjpeg_can_recycle,
-+ .recycle = codec_mjpeg_recycle,
-+};
-diff --git a/drivers/media/platform/meson/vdec/codec_mjpeg.h b/drivers/media/platform/meson/vdec/codec_mjpeg.h
-new file mode 100644
-index 0000000..cc1cf73
---- /dev/null
-+++ b/drivers/media/platform/meson/vdec/codec_mjpeg.h
-@@ -0,0 +1,13 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright (C) 2018 Maxime Jourdan <maxi.jourdan@wanadoo.fr>
-+ */
-+
-+#ifndef __MESON_VDEC_CODEC_MJPEG_H_
-+#define __MESON_VDEC_CODEC_MJPEG_H_
-+
-+#include "vdec.h"
-+
-+extern struct amvdec_codec_ops codec_mjpeg_ops;
-+
-+#endif
-\ No newline at end of file
-diff --git a/drivers/media/platform/meson/vdec/vdec_platform.c b/drivers/media/platform/meson/vdec/vdec_platform.c
-index 80b43fd..61def15 100644
---- a/drivers/media/platform/meson/vdec/vdec_platform.c
-+++ b/drivers/media/platform/meson/vdec/vdec_platform.c
-@@ -11,9 +11,20 @@
- #include "codec_mpeg12.h"
- #include "codec_h264.h"
- #include "codec_mpeg4.h"
-+#include "codec_mjpeg.h"
-
- static const struct amvdec_format vdec_formats_gxbb[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_MJPEG,
-+ .min_buffers = 4,
-+ .max_buffers = 4,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mjpeg_ops,
-+ .firmware_path = "meson/gx/vmjpeg_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_MPEG4,
- .min_buffers = 8,
- .max_buffers = 8,
-@@ -80,6 +91,16 @@ static const struct amvdec_format vdec_formats_gxbb[] = {
-
- static const struct amvdec_format vdec_formats_gxl[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_MJPEG,
-+ .min_buffers = 4,
-+ .max_buffers = 4,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mjpeg_ops,
-+ .firmware_path = "meson/gx/vmjpeg_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_MPEG4,
- .min_buffers = 8,
- .max_buffers = 8,
-@@ -146,6 +167,16 @@ static const struct amvdec_format vdec_formats_gxl[] = {
-
- static const struct amvdec_format vdec_formats_gxm[] = {
- {
-+ .pixfmt = V4L2_PIX_FMT_MJPEG,
-+ .min_buffers = 4,
-+ .max_buffers = 4,
-+ .max_width = 1920,
-+ .max_height = 1080,
-+ .vdec_ops = &vdec_1_ops,
-+ .codec_ops = &codec_mjpeg_ops,
-+ .firmware_path = "meson/gx/vmjpeg_mc",
-+ .pixfmts_cap = { V4L2_PIX_FMT_YUV420M, 0 },
-+ }, {
- .pixfmt = V4L2_PIX_FMT_MPEG4,
- .min_buffers = 8,
- .max_buffers = 8,
diff --git a/testing/linux-amlogic/0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch b/testing/linux-amlogic/0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
deleted file mode 100644
index 33671060cc3..00000000000
--- a/testing/linux-amlogic/0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 6b98d7c6cd508cfb4a2d4a1e87e192ffcabeda9e Mon Sep 17 00:00:00 2001
-From: Christian Hewitt <christianshewitt@gmail.com>
-Date: Sat, 13 Oct 2018 14:04:46 +0400
-Subject: [PATCH] clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
-
-On the Khadas VIM2 (GXM) and LePotato (GXL) board there are problems
-with reboot; e.g. a ~60 second delay between issuing reboot and the
-board power cycling (and in some OS configurations reboot will fail
-and require manual power cycling).
-
-Similar to 'commit c987ac6f1f088663b6dad39281071aeb31d450a8 ("clk:
-meson-gxbb: set fclk_div2 as CLK_IS_CRITICAL")' the SCPI Cortex-M4
-Co-Processor seems to depend on FCLK_DIV3 being operational.
-
-Bisect gives 'commit 05f814402d6174369b3b29832cbb5eb5ed287059 ("clk:
-meson: add fdiv clock gates") between 4.16 and 4.16-rc1 as the first
-bad commit. This added support for the missing clock gates before the
-fixed PLL fixed dividers (FCLK_DIVx) and the clock framework which
-disabled all the unused fixed dividers, thus it disabled a critical
-clock path for the SCPI Co-Processor.
-
-This change simply sets the FCLK_DIV3 gate as critical to ensure
-nothing can disable it.
-
-Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
-
----
- drivers/clk/meson/gxbb.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
-index 6628ffa..01f7615 100644
---- a/drivers/clk/meson/gxbb.c
-+++ b/drivers/clk/meson/gxbb.c
-@@ -513,6 +513,7 @@ static struct clk_fixed_factor gxbb_fclk_div3_div = {
- .ops = &clk_fixed_factor_ops,
- .parent_names = (const char *[]){ "fixed_pll" },
- .num_parents = 1,
-+ .flags = CLK_IS_CRITICAL,
- },
- };
-
diff --git a/testing/linux-amlogic/APKBUILD b/testing/linux-amlogic/APKBUILD
deleted file mode 100644
index cf27ddfd3af..00000000000
--- a/testing/linux-amlogic/APKBUILD
+++ /dev/null
@@ -1,355 +0,0 @@
-# Maintainer: He Yangxuan <yangxuan8282@gmail.com>
-
-pkgname=linux-amlogic
-pkgver=4.19.8
-pkgrel=0
-pkgdesc="Linux kernel for Amlogic"
-url=https://github.com/torvalds/linux
-_commit=178574b66509c9ff7df4ad26c84a8884567e93b4
-depends="mkinitfs"
-_depends_dev="perl gmp-dev elfutils-dev bash"
-makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware openssl-dev bison flex"
-options="!strip !check"
-source="$url/archive/${_commit}.tar.gz
- config-changes-amlogic.aarch64
- defconfig
- 0001-ARM64-defconfig-enable-CEC-support.patch
- 0002-ASoC-meson-add-meson-audio-core-driver.patch
- 0003-ASoC-meson-add-register-definitions.patch
- 0004-ASoC-meson-add-aiu-i2s-dma-support.patch
- 0005-ASoC-meson-add-initial-i2s-dai-support.patch
- 0006-ASoC-meson-add-aiu-spdif-dma-support.patch
- 0007-ASoC-meson-add-initial-spdif-dai-support.patch
- 0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch
- 0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch
- 0010-snd-meson-activate-HDMI-audio-path.patch
- 0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch
- 0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch
- 0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch
- 0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch
- 0017-soc-amlogic-add-meson-canvas-driver.patch
- 0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
- 0020-drm-meson-Use-optional-canvas-provider.patch
- 0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
- 0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch
- 0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
- 0024-drm-meson-Add-primary-plane-scaling.patch
- 0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
- 0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
- 0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
- 0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch
- 0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
- 0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
- 0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
- 0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
- 0034-MAINTAINERS-Add-meson-video-decoder.patch
- 0035-arm64-dts-meson-gx-add-vdec-entry.patch
- 0036-arm64-dts-meson-add-vdec-entries.patch
- 0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
- 0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
- 0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
- 0040-media-meson-vdec-add-H.264-decoding-support.patch
- 0041-media-meson-vdec-add-MPEG4-decoding-support.patch
- 0042-media-meson-vdec-add-MJPEG-decoding-support.patch
- 0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
- 0008-drm-meson-Add-HDMI-1.4-4k-modes.patch
- 0009-drm-meson-Use-drm_fbdev_generic_setup.patch
- 0010-fixup-drm-meson-Use-optional-canvas-provider.patch
- 0012-drm-meson-add-support-for-1080p25-mode.patch
- 0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
- 0015-drm-meson-add-HDMI-div40-TMDS-mode.patch
- 0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
- 0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
- 0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
- 0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
- 0020-drm-meson-Add-YUV420-output-support.patch
- 0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
- 0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
- 0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
- 0001-drm-meson-fix-max-mode_config-height-width.patch
- add-phicomm-n1.patch
- bt-btbcm.patch
- text_offset.patch
- "
-subpackages=""
-arch="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
-done
-
-case "$CARCH" in
- aarch64) _carch="arm64" ;;
- arm*) _carch="arm" ;;
-esac
-
-HOSTCC="${CC:-gcc}"
-HOSTCC="${HOSTCC#${CROSS_COMPILE}}"
-
-prepare() {
- local _patch_failed=
- cd "$srcdir"/linux-$_commit
-
- 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*
-
- local flavor=
- for flavor in $_flavors; do
- local builddir="$srcdir"/build-$flavor
- mkdir -p "$builddir"
- echo "-$pkgrel-$flavor" > "$builddir"/localversion-alpine
- _genconfig $flavor
- make -C "$srcdir"/linux-$_commit \
- O="$builddir" \
- ARCH="$_carch" \
- HOSTCC="$HOSTCC" \
- olddefconfig
- _verifyconfig $flavor
- done
-}
-
-# generate config from defconfig and apply local changes.
-# config-changes-$flavor.$CARCH 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 defconfig=
- case $flavor in
- amlogic) defconfig=defconfig ;;
- *) die "Unknown flavor: $flavor" ;;
- esac
-
- cp "$srcdir"/$defconfig \
- "$builddir"/.config
-
- while read line; do
- [ ${line:0:1} = "#" ] && continue
- local option=${line%%=*} str=
- local cmd=$(echo $line | cut -d= -f2)
- case "$cmd" in
- enable|disable|module) str= ;;
- set-str|set-val) str=${line##*=} ;;
- *) die "Command $cmd not accepted" ;;
- esac
- msg "[$flavor] $cmd: $option $str"
- "$srcdir"/linux-$_commit/scripts/config \
- --file "$builddir"/.config \
- --${cmd} "$option" "${str//\"/}"
- done < "$srcdir"/config-changes-$flavor.${CARCH}
-}
-
-# verify if options are set to correct value
-_verifyconfig() {
- local flavor=$1
- local builddir="$srcdir"/build-$flavor
- while read line; do
- [ ${line:0:1} = "#" ] && continue
- local option=${line%%=*} str= invert=
- local cmd=$(echo $line | cut -d= -f2)
- case "$cmd" in
- enable) str="$option=y" ;;
- disable) str="$option"; invert="-v" ;;
- module) str="$option=m" ;;
- set-val) str="$option=${line##*=}" ;;
- set-str) str=${line##*=}
- str="$option=\"${str//\"/}\"" ;;
- esac
- grep -q $invert "^$str" "$builddir"/.config || \
- die "Config: $option not properly set!"
- done < "$srcdir"/config-changes-$flavor.${CARCH}
-}
-
-build() {
- unset LDFLAGS
- for i in $_flavors; do
- cd "$srcdir"/build-$i
- 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}
-
- cd "$srcdir"/build-$_buildflavor
-
- mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
-
- local _install
- case "$CARCH" in
- arm*)
- _install="zinstall dtbs_install"
- ;;
- aarch64)
- _install="install dtbs_install"
- ;;
- *)
- _install=install
- ;;
- esac
-
- cd "$srcdir"/build-$_buildflavor
- local INSTALL_DTBS_PATH="$_outdir"/boot/dtbs
- make -j1 modules_install $_install \
- ARCH="$_carch" \
- INSTALL_MOD_PATH="$_outdir" \
- INSTALL_PATH="$_outdir"/boot \
- INSTALL_DTBS_PATH="$INSTALL_DTBS_PATH"
-
- rm -f "$_outdir"/lib/modules/${_abi_release}/build \
- "$_outdir"/lib/modules/${_abi_release}/source
- rm -rf "$_outdir"/lib/firmware
-
- install -D include/config/kernel.release \
- "$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
-
- if [ "$CARCH" = "aarch64" ]; then
- mv -f "$INSTALL_DTBS_PATH"/amlogic/*.dtb \
- "$INSTALL_DTBS_PATH"
- rmdir "$INSTALL_DTBS_PATH"/amlogic
- fi
-}
-
-# main flavor installs in $pkgdir
-package() {
- depends="$depends linux-firmware-brcm"
- _package amlogic "$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}
-
- # 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
- make -j1 -C "$srcdir"/linux-$_commit O="$dir" HOSTCC="${CC:-gcc}" \
- silentoldconfig 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-$_commit
- 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' \) \
- -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/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="642e3de14702d3034f9108c7b6661294722f4cf455b9167c349111642586d9a48732070e46092e7084f3ffbc26f01bae50f8da52eeceb7cf0f40e1441f9d895e 178574b66509c9ff7df4ad26c84a8884567e93b4.tar.gz
-7186849193386fc06caab6db9ebf3d5b7efe2511f1c3836bb70d713340eb69b1f123f8372f15ee7f8dd61eeff5ce772b35db8557133ef64a2a1a5ca9e7cd30c9 config-changes-amlogic.aarch64
-2784f8c05c1c66f2bff73d0cdd415781e6529f269223607c18302803125092e7cb6c94083146deecc3226672f7f4754246cc62808f9384f697782ec55786883d defconfig
-09e8d284608ac0e86db8b36bdefdb17c8ad8e9b3bdf443ee5a687f1591d88d26cffef1a36919b0547acef49394d903ff8067d46f75b55eccadec415971bf0b34 0001-ARM64-defconfig-enable-CEC-support.patch
-55d3e84c4e01b94a3bf256a980bd23a8d02c3ea7f4103d350400eb28cc31336bb35f9404ee34ba80f7d3d7427d73ed4ee75119a916ae0e88d911bb83b0303229 0002-ASoC-meson-add-meson-audio-core-driver.patch
-b5a65140612b011f22d4bfbb4ab41a4c0fe07bab43f8033195a42b02c5d74c69c7fbc2b186f8d6ff08ed7b66ccbfd9d8d7945f81812ae5021b1d37154acdb12f 0003-ASoC-meson-add-register-definitions.patch
-441b0385e88bb7ddb324363536413e6538d4b0367181ae5ceada806a8efe3d1b5daa643bd3ab99db6fa7a2d5ea0944a15a63672fa26bfc7850959ce2d7238aa1 0004-ASoC-meson-add-aiu-i2s-dma-support.patch
-4615d01a2548ce5057446ff32c52bca1cea189fc74d902ea22dc90e73c2eb21ef5b4b58c6a4ebbdf3c6cad5bac483dabdee025438ebc0bdf1b4368af0fce1b87 0005-ASoC-meson-add-initial-i2s-dai-support.patch
-d1dc1d99393a885776144dea27c0789d9e7968de1164bc85b07cc8d444cdcc898ce2f7ff1f9515ae2424789cbb76b84a8ed56008c1880fef60be79000bf55452 0006-ASoC-meson-add-aiu-spdif-dma-support.patch
-b101c64312509738b078732f73b265fa81bb94806bb39524e85d171949505dc0548fc3ece498cca6586b8ca4af08b271b6c02f028040f8cf16ec5eee94ddafa1 0007-ASoC-meson-add-initial-spdif-dai-support.patch
-98fd62a02fa76a957d15da9456c85def94a790429c3357b4b06a63d4224b624ffe763410ffdbc09ff560ba0a17a5299b722e2c9cefbb4a59455cfbe7379850b3 0008-ARM64-defconfig-enable-audio-support-for-meson-SoCs-.patch
-a286d6ecb284f505ebd29c04c5e95b1e7ba1a4a3c5ffb17580c2387ab78360cba7be6806772a058be8326f7a299f59c84051ed022b2c99372412d935f12f7c6a 0009-ARM64-dts-meson-gx-add-audio-controller-nodes.patch
-e84ab2a28d08570590ad06219e1a99a8cc47a589d4170f5ff1bf6eeb1b50c1e4e21857a5633495d2271ae702b9bfdc8aa76bb56d572b236d54a4ec08566f13d6 0010-snd-meson-activate-HDMI-audio-path.patch
-35962172f6c2682f0e3ba438ca9e62ddd679a0cd665e6bc6208167a753877a02a1d4db8d78b230de44ab494016cf9d47f0e61d31121cb0b8b676b689f1258f71 0011-drm-meson-select-dw-hdmi-i2s-audio-for-meson-hdmi.patch
-db2c10c9e4b58e7f0b72a0b8b81ef39544d0e14ef5814dda4d6d5d98d181c9c0f5993ac0e6bc98ea8c79b5d22a3c4eb38793ddb22e7e2553f4643027767a597e 0012-ARM64-dts-meson-gx-add-sound-dai-cells-to-HDMI-node.patch
-4f0073aa0a4ed1297b00817bb6cad704362c32fda284780e7a73505dab8e3cfdec5eb851fccdf7e6bf16c1788bc0f8f6ca58b0898adacca678f46ca940aa493a 0013-ARM64-dts-meson-activate-hdmi-audio-HDMI-enabled-boa.patch
-998c39cf37d2258582d6d60a7e6a702601430645b01c971c162bb219684e363fd11d0572cefb15f00551fe6bc95d97d1c101e6f36b1ae015083edeb5742b3df3 0014-drm-bridge-dw-hdmi-Use-AUTO-CTS-setup-mode-when-non-.patch
-03c2649558bedc2bf34f0e139db489d6891bda6041384d0023cf700be31d1fb1f983c8bc7d58754acd0a57986432b0330996c82f7dc7fd4a6044589725fc4c9c 0017-soc-amlogic-add-meson-canvas-driver.patch
-7c1e84356a62a175326f56e71e6984aa4a00ab4b50ac09cce8a078890f2c2ac700d53c53b1229e8dbfb82f36bac32b3082ccdf91a8f92545148bd705784b38e4 0018-ARM64-dts-meson-gx-add-dmcbus-and-canvas-nodes.patch
-f2a94fde352734e1de54f10703d792c62c95ae4b68c2c0ce9eb78fded934084fab4b999c930f7228982044052e5b331cce60cf72dcc1f181bcc88eaf68116bb8 0020-drm-meson-Use-optional-canvas-provider.patch
-635410e2f6476ee1f1114d31c06f997d5997e117d857ef67f7acb456b52941a4b4aa0cdd94ce9788a017a07d75143d783e900e03eac009d030c90fbe95798003 0021-arm64-dts-meson-gx-Add-canvas-provider-node-to-the-v.patch
-df666c95cc1d0dc4c9dd93f79778c5880afd89c320a0edb22dc3f017388cd2df88806aae4c7cde4c412e6643fcd1a8df4c6f15b41b0b0e6b020eced9cedf8d9a 0022-drm-meson-Support-Overlay-plane-for-video-rendering.patch
-8e3f62fc50c8478951f8a2e6c5d8c8f38f56ed4d68f9c0fb55c23c46d3ae2182e8a6e5f23171aac08867da4bb16d7c98741a80a3ae6a3acfc41568350be59a57 0023-drm-meson-move-OSD-scaler-management-into-plane-atom.patch
-63c41b6db1386530339bd3b6d87849bb38a8d51ec8fcd0bf3c1bcb77c567c589e069dee02f066030f608288fd510e3af244ff45b346e0addc31614867daab334 0024-drm-meson-Add-primary-plane-scaling.patch
-64682336c72ac1e505e19e4a099bb2c6f8ba6e8df2ed3b149e355c50b27a29337ac1de7768dd0fd3274bda4fe2f6cc53d068d8a1e6325d27c42e372a0324cbd2 0026-pinctrl-meson-gxl-remove-invalid-GPIOX-tsin_a-pins.patch
-332aa83ae3c581b81dae9b37df047fa5e553b0c31790713395ab562aa03ac32fbf909ab6372aba22d06cb82c509efef68af90aeaf66ca5cf70c0861c69039139 0027-arm64-dts-meson-gx-Add-hdmi_5v-regulator-as-hdmi-tx-.patch
-0cb8ed9fb52cfdcfac8dbbab5b08f4b5fe1b8716655fe77f37ff1ee39355fac89314dd318856582c62dce1fd56232b4a2725c60a2d07ef15efba86160eb093f0 0028-arm64-dts-meson-gxl-libretech-cc-fix-GPIO-lines-name.patch
-f4d251863ac20a95642a60f7c6c51694d36a12f745864fccbb6513b2e53fb0039fa316f4bcd245abe306d2d0aeb0037498f9e21333ab1d84e58fb5d287632093 0029-arm64-dts-meson-gxbb-nanopi-k2-fix-GPIO-lines-names.patch
-c481cde9a8bf2609b99e1a7a94bdfead78afe8665347dfffcde8747b8e2817356123e0e44b71de4c5b85224aa20c3c63d5ce3f44e49e3969f0ea28f4df94dc62 0030-arm64-dts-meson-gxbb-odroidc2-fix-GPIO-lines-names.patch
-768d954c5580b68e999bf3ed051219187c96de88f27be54e52242687f2ef505c0616dabbc5bee42fdc6d20d53d973f2e64ef4809649fb2e666d8727ed314f3fd 0031-arm64-dts-meson-gxl-khadas-vim-fix-GPIO-lines-names.patch
-e23b9303036d736a3f9abed22712848da514f6388de66b3029bde551a85b7d42d1506ee960a539457c8dd7d8b6c07e80919ca0714a9435bdcaa85ca2e201d69f 0032-drm-meson-Add-support-for-VIC-alternate-timings.patch
-671da78856f524f7e491e35dcb2764acb6ff0e99eee4df6c9e9538dc321c6c2e4481fd8c39daa2cb32d23d38c96823e5ab04db0342b2daabd5d1b7efdb0d6288 0033-media-meson-add-v4l2-m2m-video-decoder-driver.patch
-8d13b4e5c503a196b29263a85d3bc2d9cd1b95d186e6347532b8ae7efc35c93ed72d3f9c4a7ff12b5c2186b3f7d3b35247858e66a96382ba3a2630db35cdf794 0034-MAINTAINERS-Add-meson-video-decoder.patch
-c1817a1b59a4a38f7a0689c1e2603398f538d9270a93b40e2ce3e9633b71943beb385206d802673b18f244fb5d9a6c9b2e0498d7803432cf98750843fb91ce5f 0035-arm64-dts-meson-gx-add-vdec-entry.patch
-bdd5bd9e4203e3e7bd6412b2068963e22a974316b8ee1a707933808f1ec03ab43aa174804e7fd21f2f7062dc25226e4f2047a863366f132d8687d098a203c6d1 0036-arm64-dts-meson-add-vdec-entries.patch
-9c3b9170bbc5fbf3331052e5a99864b76cee6c2c50629f22d33d6e0b01de164e34db4a57c3864e6cb10ff9486999842c9d5f5d38bcb65ef98ccca34c3a6366be 0037-meson-vdec-introduce-controls-and-V4L2_CID_MIN_BUFFE.patch
-6bd52ae9872d79b5b2199d23bbef6f73b7530c54df702edf0ce040ba799c60265d199f75fcd4301587100fe60a6d43988bdffdfcb6f98be0c0d8a79f27d206bf 0038-media-videodev2-add-V4L2_FMT_FLAG_NO_SOURCE_CHANGE.patch
-516113c435158775f85a3904e5941bcfe641428cfce1945722a2ab8f7897a8493dca634f3527fa4d8fb0433635efcd48353a2feadee94e3467057ce4ff966964 0039-meson-vdec-allow-subscribing-to-V4L2_EVENT_SOURCE_CH.patch
-0332979243ae7c182006050c3c2b34c9035ce9f3b084659ec0c3fd39c6772d42c0f5420628150113d2d149d8b1a2481d42650aae08ac054d25cf19178ba64ebc 0040-media-meson-vdec-add-H.264-decoding-support.patch
-d696a4a726801786e65fcb69f70c5271a982b2d494a8036d7d8a3e201f910d0e1dc411283128b3460bf2371cb43817d760c0de866cfc22a985f1ff052b98cbff 0041-media-meson-vdec-add-MPEG4-decoding-support.patch
-1381cbabd3e040d6e14c1f270904b2c41c6758f2757c3871d1a09d41ab4ce8f85cde95ed1cc989fe59addfa3eae6246f7cc25b63f213f9b28cc73ec86a1c3deb 0042-media-meson-vdec-add-MJPEG-decoding-support.patch
-36281f344133b7f4130d69685b1802524a597e110e792f0cae43991eb3a15282d77779cca8033679b943660cd23c9da54c62178b99999e91dc8581052cb53945 0043-clk-meson-gxbb-set-fclk_div3-as-CLK_IS_CRITICAL.patch
-ddcb198b0e052975764dfaf140763247e80632eee5f49e3316dc4f1b6220da80fdca0dc32ec618b27fb0487b3ff0676f2a2ed07d5cecfad350bafba0b79ddfed 0008-drm-meson-Add-HDMI-1.4-4k-modes.patch
-a58680d93e56fbc95e9e255b79822fcb7960d1f58dbf819dda729b21b61949f42ac58454a6403e77b0d12708613425f331531de700a74c18b262f1336849d5a1 0009-drm-meson-Use-drm_fbdev_generic_setup.patch
-b103daed449e59ce1d73e929c694f042e461241ef9d09592828414ab04a9c7ce07c16f636461d8bc5ba49650b9f584a861d5bd4267e90899b8bd72ec113bee4e 0010-fixup-drm-meson-Use-optional-canvas-provider.patch
-5e25559535d0a1529c8b5e31e9dab82c0d41f70e515a2ca4ed614177e127c0933cc1d54566ef6f063b19dbd19f3b1d67cb51ad4d8a87877140cf166c5969a6f0 0012-drm-meson-add-support-for-1080p25-mode.patch
-8de5c1f61e8467504f96db3c615658f40bb217d57a1a0c03b505cd8e310961dce38a191cd40ccecd48ed204fac1c3d3facb371e07ff590b8683afc4420e7f303 0014-drm-bridge-dw-hdmi-Add-SCDC-and-TMDS-Scrambling-supp.patch
-8fe6432a889ee13081185eeb8602ea48465b7d858f0b573f5a5c4d35e6ed76edc47f697b0c1729a31e9a319e0712bb0eaa111077d86570d2954dcbe6fceb7b60 0015-drm-meson-add-HDMI-div40-TMDS-mode.patch
-358f064f42c9e21afeccb867c062fc18484f91ed7805752edaf74492774962c16348099de004ce130134610f8c5d076fd715ca0de3eb30d0abd23f90236c6a7b 0016-drm-meson-add-support-for-HDMI2.0-2160p-modes.patch
-9bd13d763a007ffb9d0e9f9f4c9b5018752c010a39780e467d463153cc79a32774120d7af83496ba706b971dd3bd9bb600fad4795b3c0796e22eb42b23374a90 0017-drm-bridge-dw-hdmi-add-support-for-YUV420-output.patch
-f15dd5116fe7464009ade33a9c6d305a7720767e1b31acbf7653cd9d2f83b428e734712739e8bb4cfd04407640187f5528f80d7e8b89992a75f2316b6f8513c6 0018-drm-bridge-dw-hdmi-support-dynamically-get-input-out.patch
-2399c1c95455f2e4d0d03d2c84cf454251b7c8a151da555e7665bede91b7b62f96391efac3ca9a5b90761e105409bd033f348e25bc163a439a2ff7efd82e2184 0019-drm-bridge-dw-hdmi-allow-ycbcr420-modes-for-0x200a.patch
-26eb2b101ab563558649f38a5102773b2d79eeb39cf04a3f8d512361beed70ad585825233716acb58853887bc863ba76ce87f6eaf6d8c5c22e4caa99a5ce294a 0020-drm-meson-Add-YUV420-output-support.patch
-fac806a77816f655354499ab597974659e5d6dc74d04ac74cd81bacd6a264ac13ab33bc230a2c233d98d6e3b0342f329c2af0c6359d9ae8b6b456add06809822 0021-drm-meson-Output-in-YUV444-if-sink-supports-it.patch
-e365ba0479201f1c4fb08f872447f2496d4c8d75c8e3f632eeb3f7091e56d0659d4b6f580d384183e0e9c80ccf659b1704ecbaca88b66ca34c78c250c0f55a29 0023-drm-meson-Fix-an-Alpha-Primary-Plane-bug-on-Meson-GX.patch
-0aca4ad6af15ea8f8e2e8a05aa3c5a16e1a909ee0f80cb1f64e0ee027a7050b0bbd5815520e146f96641b92e5d39688677de39d4294be6a25ea1a2e519df257b 0001-arm64-dts-meson-Fix-IRQ-trigger-type-for-macirq.patch
-613d619e86883d83d53d045ed589d91c74a9f2031de953d2f3e4cdf374ae32841a69b28abfd0d8314a5739f51fbd3ab02c7f8baf4c5060db725d21f7a677db7f 0001-drm-meson-fix-max-mode_config-height-width.patch
-ea41c0b63d8890cf5db69a37ead0fb9863299a344cee2d3606cc8c049405a563e139dceb6c908abc57b5b545d3daee16f7b9c6f7f1284cb9cf676ff5830d5c96 add-phicomm-n1.patch
-dcc02a2e35e530490f18dd1f7e304aebd7c268ed8a46971d94e9da7dfd65b287002e6b921e46db5ce118177c9ab79fbe3640565cb2df19809b6eff514122fb43 bt-btbcm.patch
-298ded76cf87f08c9357505e9dd7582d886a5e59111eee81ecb136b2dd1f3f404899a32029696038cb2299760568b2b0345c92dfd961591b28ec2964460f09b1 text_offset.patch"
diff --git a/testing/linux-amlogic/add-phicomm-n1.patch b/testing/linux-amlogic/add-phicomm-n1.patch
deleted file mode 100644
index 3c3b16e32c4..00000000000
--- a/testing/linux-amlogic/add-phicomm-n1.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
-index a97c0e2..ebd96da 100644
---- a/arch/arm64/boot/dts/amlogic/Makefile
-+++ b/arch/arm64/boot/dts/amlogic/Makefile
-@@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
- dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
- dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
- dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
-+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
- dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
- dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
- dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
-diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts
-new file mode 100644
-index 0000000..7903dad
---- /dev/null
-+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-phicomm-n1.dts
-@@ -0,0 +1,42 @@
-+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-+/*
-+ * Copyright (c) 2018 He Yangxuan
-+ */
-+
-+/dts-v1/;
-+
-+#include "meson-gxl-s905d-p230.dts"
-+
-+/ {
-+ compatible = "phicomm,n1", "amlogic,s905d", "amlogic,meson-gxl";
-+ model = "Phicomm N1";
-+
-+ aliases {
-+ serial1 = &uart_A;
-+ };
-+
-+ cvbs-connector {
-+ status = "disabled";
-+ };
-+};
-+
-+&cvbs_vdac_port {
-+ status = "disabled";
-+};
-+
-+&external_phy {
-+ /* Realtek RTL8211F (0x001cc916) */
-+ eee-broken-1000t;
-+};
-+
-+/* This is connected to the Bluetooth module: */
-+&uart_A {
-+ status = "okay";
-+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
-+ pinctrl-names = "default";
-+
-+ bluetooth {
-+ compatible = "brcm,bcm43438-bt";
-+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
-+ };
-+};
diff --git a/testing/linux-amlogic/bt-btbcm.patch b/testing/linux-amlogic/bt-btbcm.patch
deleted file mode 100644
index cb56ab0e66b..00000000000
--- a/testing/linux-amlogic/bt-btbcm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/bluetooth/btbcm.c 2018-07-09 00:34:02.000000000 +0100
-+++ b/drivers/bluetooth/btbcm.c 2018-07-12 11:38:12.323462430 +0100
-@@ -326,7 +326,7 @@ static const struct bcm_subver_table bcm
- { 0x4406, "BCM4324B3" }, /* 002.004.006 */
- { 0x610c, "BCM4354" }, /* 003.001.012 */
- { 0x2122, "BCM4343A0" }, /* 001.001.034 */
-- { 0x2209, "BCM43430A1" }, /* 001.002.009 */
-+ { 0x2209, "BCM43438A1" }, /* 001.002.009 */
- { 0x6119, "BCM4345C0" }, /* 003.001.025 */
- { 0x230f, "BCM4356A2" }, /* 001.003.015 */
- { }
diff --git a/testing/linux-amlogic/config-changes-amlogic.aarch64 b/testing/linux-amlogic/config-changes-amlogic.aarch64
deleted file mode 100644
index ef386cc05a1..00000000000
--- a/testing/linux-amlogic/config-changes-amlogic.aarch64
+++ /dev/null
@@ -1,13 +0,0 @@
-# format is config=command(=string/value)
-# where command can be one of:
-# enable,disable,module,set-str,set-value
-CONFIG_DRM_UDL=module
-CONFIG_FB_UDL=module
-CONFIG_SLAB_FREELIST_RANDOM=enable
-CONFIG_SLAB_FREELIST_HARDENED=enable
-CONFIG_STRICT_DEVMEM=enable
-CONFIG_IO_STRICT_DEVMEM=enable
-CONFIG_ENCRYPTED_KEYS=module
-CONFIG_KEY_DH_OPERATIONS=enable
-CONFIG_HARDENED_USERCOPY=enable
-CONFIG_IP_PNP=disable
diff --git a/testing/linux-amlogic/defconfig b/testing/linux-amlogic/defconfig
deleted file mode 100644
index e7439edb1f0..00000000000
--- a/testing/linux-amlogic/defconfig
+++ /dev/null
@@ -1,882 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_AUDIT=y
-CONFIG_NO_HZ_IDLE=y
-CONFIG_HIGH_RES_TIMERS=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_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=19
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_BLK_CGROUP=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_NAMESPACES=y
-CONFIG_USER_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_EMBEDDED=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_JUMP_LABEL=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEBUG_FS is not set
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_MAC_PARTITION=y
-CONFIG_LDM_PARTITION=y
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_DEFAULT_NOOP=y
-# CONFIG_MQ_IOSCHED_DEADLINE is not set
-# CONFIG_MQ_IOSCHED_KYBER is not set
-CONFIG_ARCH_MESON=y
-# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set
-# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set
-# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set
-CONFIG_ARM64_VA_BITS_48=y
-CONFIG_SCHED_MC=y
-CONFIG_PREEMPT=y
-CONFIG_KSM=y
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-CONFIG_ZSMALLOC=m
-CONFIG_SECCOMP=y
-CONFIG_KEXEC=y
-CONFIG_XEN=y
-# CONFIG_ARM64_LSE_ATOMICS is not set
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_BINFMT_MISC=y
-CONFIG_COMPAT=y
-CONFIG_HIBERNATION=y
-CONFIG_CPU_IDLE=y
-CONFIG_ARM_CPUIDLE=y
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPUFREQ_DT=y
-CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
-CONFIG_ARM_SCPI_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_DIAG=m
-CONFIG_XFRM_USER=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
-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=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BBR=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_IPCOMP=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_TUNNEL=y
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_NETFILTER=y
-CONFIG_NF_CONNTRACK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_XT_SET=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_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=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_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=y
-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_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
-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_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_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_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_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_NET=m
-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_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_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_PE_SIP=m
-CONFIG_NF_CONNTRACK_IPV4=y
-CONFIG_IP_NF_IPTABLES=y
-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=y
-CONFIG_IP_NF_TARGET_REJECT=y
-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_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_NF_CONNTRACK_IPV6=y
-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_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_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=y
-CONFIG_IP6_NF_TARGET_REJECT=y
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=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_ATM=m
-CONFIG_L2TP=y
-CONFIG_L2TP_DEBUGFS=y
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=y
-CONFIG_L2TP_ETH=y
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_ATALK=m
-CONFIG_6LOWPAN=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
-CONFIG_NET_SCH_MULTIQ=m
-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_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=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_FQ=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_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_IPSET=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_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-CONFIG_BATMAN_ADV=m
-CONFIG_OPENVSWITCH=m
-CONFIG_BPF_JIT=y
-CONFIG_NET_PKTGEN=m
-CONFIG_HAMRADIO=y
-CONFIG_AX25=m
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_YAM=m
-CONFIG_CAN=m
-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_6LOWPAN=m
-CONFIG_BT_LEDS=y
-# CONFIG_BT_DEBUGFS is not set
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIUART_3WIRE=y
-CONFIG_BT_HCIUART_BCM=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_CFG80211=m
-CONFIG_MAC80211=m
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_WIMAX=m
-CONFIG_RFKILL=m
-CONFIG_RFKILL_INPUT=y
-CONFIG_NET_9P=y
-CONFIG_NET_9P_VIRTIO=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_DMA_CMA=y
-CONFIG_CMA_SIZE_MBYTES=256
-CONFIG_BRCMSTB_GISB_ARB=y
-CONFIG_VEXPRESS_CONFIG=y
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=m
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_DENALI_DT=y
-CONFIG_MTD_SPI_NOR=y
-CONFIG_MTD_UBI=m
-CONFIG_ZRAM=m
-CONFIG_ZRAM_WRITEBACK=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_VIRTIO_BLK=y
-CONFIG_SRAM=y
-CONFIG_EEPROM_AT25=m
-CONFIG_SCSI=y
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_CHR_DEV_SG=m
-CONFIG_SCSI_SAS_LIBSAS=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_MD=y
-CONFIG_MD_LINEAR=m
-CONFIG_BLK_DEV_DM=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_DELAY=m
-CONFIG_NETDEVICES=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_IFB=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_VXLAN=m
-CONFIG_NETCONSOLE=m
-CONFIG_TUN=y
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=y
-CONFIG_AMD_XGBE=y
-CONFIG_MACB=y
-CONFIG_HNS_DSAF=y
-CONFIG_HNS_ENET=y
-CONFIG_MVMDIO=y
-CONFIG_QCOM_EMAC=m
-CONFIG_SMC91X=y
-CONFIG_SMSC911X=y
-CONFIG_STMMAC_ETH=y
-# CONFIG_DWMAC_GENERIC is not set
-CONFIG_MDIO_BITBANG=y
-CONFIG_MDIO_BUS_MUX_MMIOREG=y
-CONFIG_MESON_GXL_PHY=y
-CONFIG_MICREL_PHY=y
-CONFIG_REALTEK_PHY=m
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_B43=m
-CONFIG_B43_DEBUG=y
-CONFIG_B43LEGACY=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_USB=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_RTL8187=m
-CONFIG_RTL8192CU=m
-CONFIG_RTL8XXXU=m
-CONFIG_RTL8XXXU_UNTESTED=y
-CONFIG_WL18XX=m
-CONFIG_WLCORE_SDIO=m
-# CONFIG_XEN_NETDEV_FRONTEND is not set
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_EVDEV=y
-CONFIG_KEYBOARD_ADC=m
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_KEYBOARD_CROS_EC=y
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_UINPUT=y
-# CONFIG_SERIO_SERPORT is not set
-CONFIG_SERIO_AMBAKMI=y
-CONFIG_LEGACY_PTY_COUNT=16
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DW=y
-CONFIG_SERIAL_OF_PLATFORM=y
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_MESON=y
-CONFIG_SERIAL_MESON_CONSOLE=y
-CONFIG_SERIAL_XILINX_PS_UART=y
-CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
-CONFIG_SERIAL_DEV_BUS=y
-CONFIG_TTY_PRINTK=y
-CONFIG_VIRTIO_CONSOLE=y
-CONFIG_RAW_DRIVER=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX_PCA954x=y
-CONFIG_I2C_DESIGNWARE_PLATFORM=y
-CONFIG_I2C_MESON=y
-CONFIG_I2C_RK3X=y
-CONFIG_I2C_CROS_EC_TUNNEL=y
-CONFIG_I2C_SLAVE=y
-CONFIG_SPI=y
-CONFIG_SPI_MESON_SPICC=y
-CONFIG_SPI_MESON_SPIFC=m
-CONFIG_SPI_PL022=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_SPMI=y
-CONFIG_PINCTRL_SINGLE=y
-CONFIG_PINCTRL_MAX77620=y
-CONFIG_GPIO_DWAPB=y
-CONFIG_GPIO_PL061=y
-CONFIG_GPIO_XGENE=y
-CONFIG_GPIO_PCA953X=y
-CONFIG_GPIO_PCA953X_IRQ=y
-CONFIG_GPIO_MAX77620=y
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_XGENE=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_SENSORS_ARM_SCPI=y
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_INA2XX=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
-CONFIG_CPU_THERMAL=y
-CONFIG_THERMAL_EMULATION=y
-CONFIG_WATCHDOG=y
-CONFIG_MESON_GXBB_WATCHDOG=m
-CONFIG_MESON_WATCHDOG=m
-CONFIG_SSB_SDIOHOST=y
-CONFIG_BCMA_HOST_SOC=y
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-CONFIG_BCMA_DEBUG=y
-CONFIG_MFD_CROS_EC=y
-CONFIG_MFD_CROS_EC_I2C=y
-CONFIG_MFD_CROS_EC_SPI=y
-CONFIG_MFD_MAX77620=y
-CONFIG_MFD_RK808=y
-CONFIG_MFD_SEC_CORE=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_FAN53555=y
-CONFIG_REGULATOR_GPIO=y
-CONFIG_REGULATOR_MAX77620=y
-CONFIG_REGULATOR_PWM=y
-CONFIG_REGULATOR_QCOM_SPMI=y
-CONFIG_REGULATOR_RK808=y
-CONFIG_REGULATOR_S2MPS11=y
-CONFIG_RC_CORE=m
-CONFIG_RC_DECODERS=y
-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_XMP_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_IR_MESON=m
-CONFIG_MEDIA_SUPPORT=y
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-CONFIG_MEDIA_CEC_SUPPORT=y
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-# CONFIG_DVB_NET is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_AML_MESON_VDEC=y
-CONFIG_CEC_PLATFORM_DRIVERS=y
-CONFIG_VIDEO_MESON_AO_CEC=m
-CONFIG_DRM=y
-CONFIG_DRM_FBDEV_OVERALLOC=300
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_ADV7511=m
-CONFIG_DRM_MESON=y
-CONFIG_FB_ARMCLCD=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_SOC=y
-CONFIG_SND_SOC_MESON=y
-CONFIG_SND_SOC_MESON_I2S=y
-CONFIG_SND_SOC_MESON_SPDIF=y
-CONFIG_SND_SOC_AK4613=y
-CONFIG_SND_SOC_DIO2125=y
-CONFIG_SND_SOC_ES7134=y
-CONFIG_SND_SIMPLE_CARD=y
-CONFIG_HID_A4TECH=y
-CONFIG_HID_APPLE=y
-CONFIG_HID_BELKIN=y
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
-CONFIG_HID_CYPRESS=y
-CONFIG_HID_EZKEY=y
-CONFIG_HID_ITE=y
-CONFIG_HID_KENSINGTON=y
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
-CONFIG_HID_SONY=y
-CONFIG_SONY_FF=y
-CONFIG_USB=y
-CONFIG_USB_OTG=y
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_HCD_PLATFORM=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_DWC3=y
-CONFIG_USB_DWC2=y
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_UDC=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_ISP1760=y
-CONFIG_USB_HSIC_USB3503=y
-CONFIG_USB_ULPI=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_SNP_UDC_PLAT=y
-CONFIG_MMC=y
-CONFIG_MMC_BLOCK_MINORS=32
-CONFIG_MMC_ARMMMCI=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=y
-CONFIG_MMC_SDHCI_OF_ARASAN=y
-CONFIG_MMC_SDHCI_CADENCE=y
-CONFIG_MMC_MESON_GX=y
-CONFIG_MMC_MESON_MX_SDIO=y
-CONFIG_MMC_SPI=y
-CONFIG_MMC_DW=y
-CONFIG_MMC_DW_EXYNOS=y
-CONFIG_MMC_DW_K3=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_SYSCON=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_CPU=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_MAX77686=y
-CONFIG_RTC_DRV_RK808=m
-CONFIG_RTC_DRV_S5M=y
-CONFIG_RTC_DRV_DS3232=y
-CONFIG_RTC_DRV_PL031=y
-CONFIG_DMADEVICES=y
-CONFIG_PL330_DMA=y
-CONFIG_QCOM_HIDMA_MGMT=y
-CONFIG_QCOM_HIDMA=y
-CONFIG_VIRTIO_BALLOON=y
-CONFIG_VIRTIO_MMIO=y
-CONFIG_XEN_GNTDEV=y
-CONFIG_XEN_GRANT_DEV_ALLOC=y
-CONFIG_STAGING=y
-CONFIG_RTL8723BS=m
-CONFIG_R8712U=m
-CONFIG_R8188EU=m
-CONFIG_VT6656=m
-CONFIG_MTD_SPINAND_MT29F=m
-CONFIG_COMMON_CLK_VERSATILE=y
-CONFIG_CLK_SP810=y
-CONFIG_CLK_VEXPRESS_OSC=y
-CONFIG_COMMON_CLK_RK808=y
-CONFIG_COMMON_CLK_SCPI=y
-CONFIG_COMMON_CLK_CS2000_CP=y
-CONFIG_COMMON_CLK_S2MPS11=y
-CONFIG_CLK_QORIQ=y
-CONFIG_COMMON_CLK_PWM=y
-# CONFIG_HISILICON_ERRATUM_161010101 is not set
-# CONFIG_ARM64_ERRATUM_858921 is not set
-CONFIG_ARM_TIMER_SP804=y
-CONFIG_MAILBOX=y
-CONFIG_ARM_MHU=y
-CONFIG_PLATFORM_MHU=y
-# CONFIG_IOMMU_SUPPORT is not set
-CONFIG_EXTCON_USB_GPIO=y
-CONFIG_IIO=y
-CONFIG_PWM=y
-CONFIG_PWM_MESON=m
-CONFIG_PHY_XGENE=y
-CONFIG_PHY_SAMSUNG_USB2=y
-CONFIG_MESON_EFUSE=y
-CONFIG_MESON_MX_EFUSE=y
-CONFIG_TEE=y
-CONFIG_OPTEE=y
-CONFIG_ARM_SCPI_PROTOCOL=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-CONFIG_JBD2_DEBUG=y
-CONFIG_REISERFS_FS=y
-CONFIG_JFS_FS=y
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-CONFIG_GFS2_FS=m
-CONFIG_OCFS2_FS=m
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=y
-CONFIG_F2FS_FS_SECURITY=y
-CONFIG_F2FS_CHECK_FS=y
-CONFIG_F2FS_FS_ENCRYPTION=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_OVERLAY_FS=m
-CONFIG_FSCACHE=y
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-CONFIG_CACHEFILES=y
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
-CONFIG_FAT_DEFAULT_UTF8=y
-CONFIG_NTFS_FS=m
-CONFIG_NTFS_RW=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_HUGETLBFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_UBIFS_FS=m
-CONFIG_SQUASHFS=m
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-CONFIG_SQUASHFS_ZSTD=y
-CONFIG_PSTORE=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_SWAP=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_NFS_V4_1_MIGRATION=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_BLOCKLAYOUT=y
-CONFIG_NFSD_SCSILAYOUT=y
-CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_CIFS=m
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_ACL=y
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_FSCACHE=y
-CONFIG_9P_FS=m
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=y
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
-CONFIG_PRINTK_TIME=y
-CONFIG_DYNAMIC_DEBUG=y
-CONFIG_DEBUG_FS=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_PREEMPT is not set
-# CONFIG_FTRACE is not set
-CONFIG_MEMTEST=y
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_SECURITY=y
-CONFIG_CRYPTO_ECHAINIV=y
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ANSI_CPRNG=y
-CONFIG_ARM64_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM64_CE=y
-CONFIG_CRYPTO_SHA2_ARM64_CE=y
-CONFIG_CRYPTO_GHASH_ARM64_CE=y
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
-CONFIG_CRYPTO_CHACHA20_NEON=y
-CONFIG_CRYPTO_AES_ARM64_BS=y
-CONFIG_CORDIC=m
diff --git a/testing/linux-amlogic/text_offset.patch b/testing/linux-amlogic/text_offset.patch
deleted file mode 100644
index fff476e6562..00000000000
--- a/testing/linux-amlogic/text_offset.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
-index 106039d..651d990 100644
---- a/arch/arm64/Makefile
-+++ b/arch/arm64/Makefile
-@@ -88,7 +88,7 @@ TEXT_OFFSET := $(shell awk "BEGIN {srand(); printf \"0x%06x\n\", \
- int(2 * 1024 * 1024 / (2 ^ $(CONFIG_ARM64_PAGE_SHIFT)) * \
- rand()) * (2 ^ $(CONFIG_ARM64_PAGE_SHIFT))}")
- else
--TEXT_OFFSET := 0x00080000
-+TEXT_OFFSET := 0x01080000
- endif
-
- # KASAN_SHADOW_OFFSET = VA_START + (1 << (VA_BITS - KASAN_SHADOW_SCALE_SHIFT))
-diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
-index b085306..68edc91 100644
---- a/arch/arm64/kernel/head.S
-+++ b/arch/arm64/kernel/head.S
-@@ -51,7 +51,7 @@
- #elif (PAGE_OFFSET & 0x1fffff) != 0
- #error PAGE_OFFSET must be at least 2MB aligned
- #elif TEXT_OFFSET > 0x1fffff
--#error TEXT_OFFSET must be less than 2MB
-+//#error TEXT_OFFSET must be less than 2MB
- #endif
-
- /*
diff --git a/testing/linux-apfs-rw-src/APKBUILD b/testing/linux-apfs-rw-src/APKBUILD
new file mode 100644
index 00000000000..07366d59d28
--- /dev/null
+++ b/testing/linux-apfs-rw-src/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=linux-apfs-rw-src
+_modname=linux-apfs-rw
+pkgver=0.3.8
+pkgrel=0
+pkgdesc="APFS module for linux, with experimental write support (sources, AKMS)"
+url="https://github.com/linux-apfs/linux-apfs-rw"
+arch="noarch"
+license="GPL-2.0-only"
+options="!check" # no tests
+source="$_modname-$pkgver.tar.gz::https://github.com/linux-apfs/linux-apfs-rw/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_modname-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cat > AKMBUILD <<- EOF
+ modname=$_modname
+ modver=$pkgver-r$pkgrel
+ built_modules='apfs.ko'
+ EOF
+ printf '#define GIT_COMMIT\t"%s"\n' "$pkgver-alpine-r$pkgrel" > version.h
+}
+
+package() {
+ install -Dm644 -t "$pkgdir/usr/src/$_modname-$pkgver" -- *.c *.h \
+ Makefile AKMBUILD
+ cp -a lzfse "$pkgdir/usr/src/$_modname-$pkgver/"
+}
+
+sha512sums="
+09947f67827da4e3c6a8f4c3ba8de6ccceeee397fb8010771298a0207218d09ef47b9707125e8c29f78a2aa052f95e59f7f38d3a2e3864b4fb84ffb66ee6c575 linux-apfs-rw-0.3.8.tar.gz
+"
diff --git a/testing/linux-asahi/385ea7b5023486aba7919cec8b6b3f6a843a1013.patch b/testing/linux-asahi/385ea7b5023486aba7919cec8b6b3f6a843a1013.patch
new file mode 100644
index 00000000000..ffe87db0242
--- /dev/null
+++ b/testing/linux-asahi/385ea7b5023486aba7919cec8b6b3f6a843a1013.patch
@@ -0,0 +1,78 @@
+From 385ea7b5023486aba7919cec8b6b3f6a843a1013 Mon Sep 17 00:00:00 2001
+From: Hector Martin <marcan@marcan.st>
+Date: Fri, 15 Dec 2023 20:38:32 +0900
+Subject: [PATCH] READ COMMIT MESSAGE! macaudio: Enable first round of models
+
+Enables j313, j293, j493, j314, j414, j274, j375, j473, j474, j475
+
+*** WARNING FOR DISTRO PACKAGERS WANTING TO APPLY THIS: ***
+*** YOU ABSOLUTELY NEED THIS PATCH IN YOUR LSP-PLUGINS PACKAGE ***
+
+https://github.com/lsp-plugins/lsp-dsp-lib/pull/20
+
+Do NOT enable speakers without that patch, on any model. It can/will
+result in nasty noise that could damage them.
+
+Signed-off-by: Hector Martin <marcan@marcan.st>
+---
+ sound/soc/apple/macaudio.c | 20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/apple/macaudio.c b/sound/soc/apple/macaudio.c
+index f5b349057a67e1..d2ced87e88c0e1 100644
+--- a/sound/soc/apple/macaudio.c
++++ b/sound/soc/apple/macaudio.c
+@@ -1490,23 +1490,27 @@ struct macaudio_platform_cfg macaudio_j180_cfg = {
+ false, AMP_SN012776, SPKR_1W1T, false, 10, -20,
+ };
+ struct macaudio_platform_cfg macaudio_j274_cfg = {
+- false, AMP_TAS5770, SPKR_1W, false, 20, -20,
++ true, AMP_TAS5770, SPKR_1W, false, 20, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j293_cfg = {
+- false, AMP_TAS5770, SPKR_2W, true, 15, -20,
++ true, AMP_TAS5770, SPKR_2W, true, 15, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j313_cfg = {
+- false, AMP_TAS5770, SPKR_1W, true, 10, -20,
++ true, AMP_TAS5770, SPKR_1W, true, 10, -20,
+ };
+
+-struct macaudio_platform_cfg macaudio_j314_j316_cfg = {
++struct macaudio_platform_cfg macaudio_j314_cfg = {
++ true, AMP_SN012776, SPKR_2W1T, true, 15, -20,
++};
++
++struct macaudio_platform_cfg macaudio_j316_cfg = {
+ false, AMP_SN012776, SPKR_2W1T, true, 15, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j37x_j47x_cfg = {
+- false, AMP_SN012776, SPKR_1W, false, 20, -20,
++ true, AMP_SN012776, SPKR_1W, false, 20, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j413_cfg = {
+@@ -1522,7 +1526,7 @@ struct macaudio_platform_cfg macaudio_j45x_cfg = {
+ };
+
+ struct macaudio_platform_cfg macaudio_j493_cfg = {
+- false, AMP_SN012776, SPKR_2W, true, 15, -20,
++ true, AMP_SN012776, SPKR_2W, true, 15, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_fallback_cfg = {
+@@ -1558,9 +1562,9 @@ static const struct of_device_id macaudio_snd_device_id[] = {
+ /* j313 AID4 tas5770 10 2× 1W */
+ { .compatible = "apple,j313-macaudio", .data = &macaudio_j313_cfg },
+ /* j314 AID8 sn012776 15 2× 2W+1T */
+- { .compatible = "apple,j314-macaudio", .data = &macaudio_j314_j316_cfg },
++ { .compatible = "apple,j314-macaudio", .data = &macaudio_j314_cfg },
+ /* j316 AID9 sn012776 15 2× 2W+1T */
+- { .compatible = "apple,j316-macaudio", .data = &macaudio_j314_j316_cfg },
++ { .compatible = "apple,j316-macaudio", .data = &macaudio_j316_cfg },
+ /* j375 AID10 sn012776 15 1× 1W */
+ { .compatible = "apple,j375-macaudio", .data = &macaudio_j37x_j47x_cfg },
+ /* j413 AID13 sn012776 15 2× 1W+1T */
diff --git a/testing/linux-asahi/6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch b/testing/linux-asahi/6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch
new file mode 100644
index 00000000000..44d5b2dabfc
--- /dev/null
+++ b/testing/linux-asahi/6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch
@@ -0,0 +1,47 @@
+From 6a24102c06c95951ab992e2d41336cc6d4bfdf23 Mon Sep 17 00:00:00 2001
+From: Hector Martin <marcan@marcan.st>
+Date: Fri, 15 Dec 2023 20:40:53 +0900
+Subject: [PATCH] READ COMMIT MESSAGE! macaudio: Enable second round of models
+
+Enables j316, j413, j415, j416
+
+*** WARNING FOR DISTRO PACKAGERS WANTING TO APPLY THIS: ***
+*** YOU ABSOLUTELY NEED THIS PATCH IN YOUR LSP-PLUGINS PACKAGE ***
+
+https://github.com/lsp-plugins/lsp-dsp-lib/pull/20
+
+Do NOT enable speakers without that patch, on any model. It can/will
+result in nasty noise that could damage them.
+
+Signed-off-by: Hector Martin <marcan@marcan.st>
+---
+ sound/soc/apple/macaudio.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/apple/macaudio.c b/sound/soc/apple/macaudio.c
+index d2ced87e88c0e1..f347f08b7ad01e 100644
+--- a/sound/soc/apple/macaudio.c
++++ b/sound/soc/apple/macaudio.c
+@@ -1506,7 +1506,7 @@ struct macaudio_platform_cfg macaudio_j314_cfg = {
+ };
+
+ struct macaudio_platform_cfg macaudio_j316_cfg = {
+- false, AMP_SN012776, SPKR_2W1T, true, 15, -20,
++ true, AMP_SN012776, SPKR_2W1T, true, 15, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j37x_j47x_cfg = {
+@@ -1514,11 +1514,11 @@ struct macaudio_platform_cfg macaudio_j37x_j47x_cfg = {
+ };
+
+ struct macaudio_platform_cfg macaudio_j413_cfg = {
+- false, AMP_SN012776, SPKR_1W1T, true, 15, -20,
++ true, AMP_SN012776, SPKR_1W1T, true, 15, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j415_cfg = {
+- false, AMP_SN012776, SPKR_2W1T, true, 15, -20,
++ true, AMP_SN012776, SPKR_2W1T, true, 15, -20,
+ };
+
+ struct macaudio_platform_cfg macaudio_j45x_cfg = {
diff --git a/testing/linux-asahi/APKBUILD b/testing/linux-asahi/APKBUILD
new file mode 100644
index 00000000000..2826dbc6962
--- /dev/null
+++ b/testing/linux-asahi/APKBUILD
@@ -0,0 +1,219 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+
+_flavor=asahi
+pkgname=linux-${_flavor}
+pkgver=6.6_p15
+
+_rel=${pkgver#*_p}
+kver=${pkgver%_p*}
+kver=${kver//_/-}
+_asahiver=$kver-$_rel
+pkgdesc="Apple Silicon (M1 development kernel)"
+pkgrel=2
+url="https://www.kernel.org"
+depends="initramfs-generator speakersafetyd"
+_depends_dev="perl gmp-dev elfutils-dev flex bison"
+makedepends="$_depends_dev sed bc linux-headers installkernel
+ linux-firmware-any openssl-dev diffutils findutils
+ clang16-libclang
+ rust
+ rustfmt
+ rust-bindgen
+ rust-src
+ "
+options="!strip !check"
+_config=${config:-config-asahi.${CARCH}}
+subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
+source="linux-asahi-$_asahiver.tar.gz::https://github.com/AsahiLinux/linux/archive/refs/tags/asahi-$_asahiver.tar.gz
+ config-asahi.aarch64
+
+ 385ea7b5023486aba7919cec8b6b3f6a843a1013.patch
+ 6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch
+ "
+
+builddir="$srcdir/linux-asahi-$_asahiver"
+arch="aarch64"
+license="GPL-2.0-only"
+
+unset _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
+
+_carch=${CARCH}
+case "$_carch" in
+aarch64*) _carch="arm64" ;;
+arm*) _carch="arm" ;;
+esac
+
+prepare() {
+ default_prepare
+ rm "$builddir"/localversion*
+ echo "-$_rel-asahi" > "$builddir"/localversion-alpine
+ oldconfig
+}
+
+oldconfig() {
+ for i in $_flavors; do
+ local _config=config-$i.${CARCH}
+ local _builddir="$srcdir"/build-$i
+ mkdir -p "$_builddir"
+
+ cp "$srcdir"/$_config "$_builddir"/.config
+ make -C $builddir \
+ 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
+ local _builddir="$srcdir"/build-$i
+ make -C "$srcdir"/build-$i \
+ ARCH="$_carch" CC="${CC:-gcc}" \
+ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
+ done
+}
+
+_package() {
+ local _buildflavor="$1" _outdir="$2"
+ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+
+ cd "$srcdir"/build-$_buildflavor
+ local _abi_release="$(make -s kernelrelease)"
+
+ mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
+
+ make -j1 modules_install zinstall dtbs_install \
+ ARCH="$_carch" \
+ INSTALL_MOD_PATH="$_outdir" \
+ INSTALL_MOD_STRIP=1 \
+ INSTALL_PATH="$_outdir"/boot \
+ INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_buildflavor"
+
+ 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
+}
+
+# main flavor installs in $pkgdir
+package() {
+ depends="$depends linux-firmware-any"
+
+ _package asahi "$pkgdir"
+}
+
+_dev() {
+ local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g')
+ local O="$srcdir/build-$_flavor"
+ local _abi_release="$(make -C "$O" -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
+ #
+ # 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})"
+
+ # kernel sources
+ cd "$builddir"
+
+ msg "Installing build files"
+ install -Dt "$dir" -m644 Makefile localversion* \
+ "$O/.config" "$O/Module.symvers" "$O/System.map" \
+ "$O/vmlinux"
+ install -Dt "$dir"/kernel -m644 kernel/Makefile
+ cp -t "$dir" -a scripts "$O/scripts"
+
+ msg "Installing headers..."
+ cp -t "$dir" -a include "$O/include"
+
+ install -Dt "$dir/arch/$_carch" -m644 $builddir/arch/$_carch/Makefile
+ install -Dt "$dir/arch/$_carch/kernel" -m644 "$O"/arch/$_carch/kernel/asm-offsets.s
+ cp -t "$dir/arch/$_carch" -a arch/$_carch/include $O/arch/$_carch/include
+
+ install -Dt "$dir/drivers/md" -m644 drivers/md/*.h
+ install -Dt "$dir/net/mac80211" -m644 net/mac80211/*.h
+
+ # https://bugs.archlinux.org/task/13146
+ install -Dt "$dir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+
+ # https://bugs.archlinux.org/task/20402
+ install -Dt "$dir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "$dir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "$dir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+
+ # https://bugs.archlinux.org/task/71392
+ install -Dt "$dir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
+
+ msg "Installing KConfig files..."
+ find . -name 'Kconfig*' -exec install -Dm644 {} "$dir/{}" \;
+
+ msg "Removing unneeded architectures..."
+ local arch
+ for arch in "$dir"/arch/*/; do
+ case $(basename "$arch") in
+ $_carch) continue ;;
+ esac
+ echo " - Removing $(basename "$arch")"
+ rm -r "$arch"
+ done
+
+ msg "Removing documentation"
+ rm -r "$dir"/Documentation
+
+ msg "Removing broken symlinks..."
+ find -L "$dir" -type l -printf 'Removing %P\n' -delete
+
+ msg "Removing loose objects..."
+ find "$dir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ msg "Stripping build tools..."
+ local file
+ find "$dir" -type f -perm -u+x ! -name vmlinux -print0 | while read -rd '' file; do
+ case "$(file -bi "$file")" in
+ application/x-sharedlib\;*) # Libraries (.so)
+ strip -v $STRIP_SHARED "$file" ;;
+ application/x-archive\;*) # Libraries (.a)
+ strip -v $STRIP_STATIC "$file" ;;
+ application/x-executable\;*) # Binaries
+ strip -v $STRIP_BINARIES "$file" ;;
+ application/x-pie-executable\;*) # Relocatable binaries
+ strip -v $STRIP_SHARED "$file" ;;
+ esac
+ done
+
+ msg "Stripping vmlinux..."
+ strip -v $STRIP_STATIC "$dir/vmlinux"
+
+ msg "Adding symlink..."
+ mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
+ ln -sf /usr/src/linux-headers-${_abi_release} \
+ "$subpkgdir"/lib/modules/${_abi_release}/build
+}
+
+sha512sums="
+b261e3813f1c0f5bae3a24e7ed0dce41470cfe2ee965ab0121d41793aa08f72d0d91be633f7ba0317f265a6e98a7a134cf86a29e7d48dbb58c5f5f7a3a13cc53 linux-asahi-6.6-15.tar.gz
+0ed687414c03c7ef83842b0bc1ff95ec4f2f73a7eb9b3ca28e0c3f78ad7f3f03cfcc5c1c216548d3f5ec2ff10f59314c44776418807959b04558632d7f683209 config-asahi.aarch64
+0ceb12811db6c517871bf741605055a2c970d045de582e37d8f05d8717e4b26f995f06d479be5c2e6c08a6eb6d00bd3cce6ed9ea8e416afb39c664cf571f480c 385ea7b5023486aba7919cec8b6b3f6a843a1013.patch
+ae7f79b79e695775ae81c2ef77b9009dfcee488e727fc2a543194a267c19dabf53f1d44bcc8bf8cfa3f388a84bf5658c1e0a8d291ec1005d668cfa5c7ee4fbb0 6a24102c06c95951ab992e2d41336cc6d4bfdf23.patch
+"
diff --git a/testing/linux-asahi/config-asahi.aarch64 b/testing/linux-asahi/config-asahi.aarch64
new file mode 100644
index 00000000000..48d9e9a14a6
--- /dev/null
+++ b/testing/linux-asahi/config-asahi.aarch64
@@ -0,0 +1,6762 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm64 6.6.0 Kernel Configuration
+#
+CONFIG_CC_VERSION_TEXT="gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014"
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130201
+CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=24100
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=24100
+CONFIG_LLD_VERSION=0
+CONFIG_RUST_IS_AVAILABLE=y
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
+CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+CONFIG_PAHOLE_VERSION=0
+CONFIG_CONSTRUCTORS=y
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="localhost"
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_WATCH_QUEUE=y
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_IRQ_IPI=y
+CONFIG_GENERIC_IRQ_IPI_MUX=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+# end of IRQ subsystem
+
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+# CONFIG_NO_HZ_IDLE is not set
+CONFIG_NO_HZ_FULL=y
+CONFIG_CONTEXT_TRACKING_USER=y
+# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+# end of Timers subsystem
+
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+
+#
+# BPF subsystem
+#
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT is not set
+CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+# CONFIG_BPF_PRELOAD is not set
+# end of BPF subsystem
+
+CONFIG_PREEMPT_BUILD=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+CONFIG_PREEMPT_DYNAMIC=y
+# CONFIG_SCHED_CORE is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+# CONFIG_PSI is not set
+# end of CPU/Task time and stats accounting
+
+CONFIG_CPU_ISOLATION=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_TREE_SRCU=y
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASKS_TRACE_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_NOCB_CPU=y
+CONFIG_RCU_NOCB_CPU_DEFAULT_ALL=y
+CONFIG_RCU_LAZY=y
+# end of RCU Subsystem
+
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+# CONFIG_PRINTK_INDEX is not set
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+CONFIG_UCLAMP_TASK=y
+CONFIG_UCLAMP_BUCKETS_COUNT=5
+# end of Scheduler features
+
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_GCC11_NO_ARRAY_BOUNDS=y
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_CGROUPS=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_CGROUP_FAVOR_DYNMODS is not set
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_SCHED_MM_CID=y
+# CONFIG_UCLAMP_TASK_GROUP is not set
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_HUGETLB is not set
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+# CONFIG_CGROUP_BPF is not set
+CONFIG_CGROUP_MISC=y
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_TIME_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+CONFIG_RD_XZ=y
+# CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
+CONFIG_RD_ZSTD=y
+# CONFIG_BOOT_CONFIG is not set
+CONFIG_INITRAMFS_PRESERVE_MTIME=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_LD_ORPHAN_WARN=y
+CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_EXPERT is not set
+CONFIG_MULTIUSER=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=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_SELFTEST is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_KCMP=y
+CONFIG_RSEQ=y
+CONFIG_CACHESTAT_SYSCALL=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_GUEST_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# end of Kernel Performance Events And Counters
+
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+# CONFIG_PROFILING is not set
+CONFIG_RUST=y
+CONFIG_RUSTC_VERSION_TEXT="rustc 1.72.1 (d5c2e9c34 2023-09-13) (Alpine Linux 1.72.1-r0)"
+CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.66.1"
+
+#
+# Kexec and crash features
+#
+# CONFIG_KEXEC is not set
+# CONFIG_KEXEC_FILE is not set
+# CONFIG_CRASH_DUMP is not set
+# end of Kexec and crash features
+# end of General setup
+
+CONFIG_ARM64=y
+CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
+CONFIG_64BIT=y
+CONFIG_MMU=y
+CONFIG_ARM64_PAGE_SHIFT=14
+CONFIG_ARM64_CONT_PTE_SHIFT=7
+CONFIG_ARM64_CONT_PMD_SHIFT=5
+CONFIG_ARCH_MMAP_RND_BITS_MIN=16
+CONFIG_ARCH_MMAP_RND_BITS_MAX=31
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=9
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_SMP=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
+CONFIG_ARM64_ACTLR_STATE=y
+
+#
+# Platform selection
+#
+# CONFIG_ARCH_ACTIONS is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_ALPINE is not set
+CONFIG_ARCH_APPLE=y
+# CONFIG_ARCH_BCM is not set
+# CONFIG_ARCH_BERLIN is not set
+# CONFIG_ARCH_BITMAIN is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_K3 is not set
+# CONFIG_ARCH_LG1K is not set
+# CONFIG_ARCH_HISI is not set
+# CONFIG_ARCH_KEEMBAY is not set
+# CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_MESON is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_NXP is not set
+# CONFIG_ARCH_MA35 is not set
+# CONFIG_ARCH_NPCM is not set
+# CONFIG_ARCH_QCOM is not set
+# CONFIG_ARCH_REALTEK is not set
+# CONFIG_ARCH_RENESAS is not set
+# CONFIG_ARCH_ROCKCHIP is not set
+# CONFIG_ARCH_SEATTLE is not set
+# CONFIG_ARCH_INTEL_SOCFPGA is not set
+# CONFIG_ARCH_STM32 is not set
+# CONFIG_ARCH_SYNQUACER is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_SPRD is not set
+# CONFIG_ARCH_THUNDER is not set
+# CONFIG_ARCH_THUNDER2 is not set
+# CONFIG_ARCH_UNIPHIER is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_VISCONTI is not set
+# CONFIG_ARCH_XGENE is not set
+# CONFIG_ARCH_ZYNQMP is not set
+# end of Platform selection
+
+#
+# Kernel Features
+#
+
+#
+# ARM errata workarounds via the alternatives framework
+#
+# CONFIG_AMPERE_ERRATUM_AC03_CPU_38 is not set
+# CONFIG_ARM64_ERRATUM_826319 is not set
+# CONFIG_ARM64_ERRATUM_827319 is not set
+# CONFIG_ARM64_ERRATUM_824069 is not set
+# CONFIG_ARM64_ERRATUM_819472 is not set
+# CONFIG_ARM64_ERRATUM_832075 is not set
+# CONFIG_ARM64_ERRATUM_834220 is not set
+# CONFIG_ARM64_ERRATUM_843419 is not set
+CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
+# CONFIG_ARM64_ERRATUM_1024718 is not set
+# CONFIG_ARM64_ERRATUM_1165522 is not set
+# CONFIG_ARM64_ERRATUM_1319367 is not set
+# CONFIG_ARM64_ERRATUM_1530923 is not set
+# CONFIG_ARM64_ERRATUM_2441007 is not set
+# CONFIG_ARM64_ERRATUM_1286807 is not set
+# CONFIG_ARM64_ERRATUM_1463225 is not set
+# CONFIG_ARM64_ERRATUM_1542419 is not set
+# CONFIG_ARM64_ERRATUM_1508412 is not set
+# CONFIG_ARM64_ERRATUM_2051678 is not set
+# CONFIG_ARM64_ERRATUM_2077057 is not set
+# CONFIG_ARM64_ERRATUM_2658417 is not set
+CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y
+CONFIG_ARM64_ERRATUM_2054223=y
+# CONFIG_ARM64_ERRATUM_2067961 is not set
+# CONFIG_ARM64_ERRATUM_2441009 is not set
+# CONFIG_ARM64_ERRATUM_2457168 is not set
+# CONFIG_ARM64_ERRATUM_2645198 is not set
+# CONFIG_ARM64_ERRATUM_2966298 is not set
+# CONFIG_CAVIUM_ERRATUM_22375 is not set
+# CONFIG_CAVIUM_ERRATUM_23154 is not set
+# CONFIG_CAVIUM_ERRATUM_27456 is not set
+# CONFIG_CAVIUM_ERRATUM_30115 is not set
+# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set
+# CONFIG_FUJITSU_ERRATUM_010001 is not set
+# CONFIG_HISILICON_ERRATUM_161600802 is not set
+# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set
+# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set
+# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set
+# CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set
+# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set
+# CONFIG_ROCKCHIP_ERRATUM_3588001 is not set
+# CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set
+# end of ARM errata workarounds via the alternatives framework
+
+# CONFIG_ARM64_4K_PAGES is not set
+CONFIG_ARM64_16K_PAGES=y
+# CONFIG_ARM64_64K_PAGES is not set
+# CONFIG_ARM64_VA_BITS_47 is not set
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_ARM64_VA_BITS=48
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PA_BITS=48
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_CLUSTER=y
+CONFIG_SCHED_SMT=y
+CONFIG_NR_CPUS=16
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_NUMA is not set
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_ARCH_SUPPORTS_KEXEC=y
+CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
+CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
+CONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=y
+CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y
+CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
+CONFIG_TRANS_TABLE=y
+# CONFIG_XEN is not set
+CONFIG_ARCH_FORCE_MAX_ORDER=11
+CONFIG_UNMAP_KERNEL_AT_EL0=y
+CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+# CONFIG_ARM64_SW_TTBR0_PAN is not set
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+
+#
+# ARMv8.1 architectural features
+#
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_PAN=y
+CONFIG_AS_HAS_LSE_ATOMICS=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_USE_LSE_ATOMICS=y
+# end of ARMv8.1 architectural features
+
+#
+# ARMv8.2 architectural features
+#
+CONFIG_AS_HAS_ARMV8_2=y
+CONFIG_AS_HAS_SHA3=y
+# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_RAS_EXTN=y
+CONFIG_ARM64_CNP=y
+# end of ARMv8.2 architectural features
+
+#
+# ARMv8.3 architectural features
+#
+CONFIG_ARM64_PTR_AUTH=y
+CONFIG_ARM64_PTR_AUTH_KERNEL=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
+CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
+CONFIG_AS_HAS_ARMV8_3=y
+CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
+CONFIG_AS_HAS_LDAPR=y
+# end of ARMv8.3 architectural features
+
+#
+# ARMv8.4 architectural features
+#
+CONFIG_ARM64_AMU_EXTN=y
+CONFIG_AS_HAS_ARMV8_4=y
+CONFIG_ARM64_TLB_RANGE=y
+# end of ARMv8.4 architectural features
+
+#
+# ARMv8.5 architectural features
+#
+CONFIG_AS_HAS_ARMV8_5=y
+CONFIG_ARM64_BTI=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y
+CONFIG_ARM64_E0PD=y
+CONFIG_ARM64_AS_HAS_MTE=y
+CONFIG_ARM64_MTE=y
+# end of ARMv8.5 architectural features
+
+#
+# ARMv8.7 architectural features
+#
+CONFIG_ARM64_EPAN=y
+# end of ARMv8.7 architectural features
+
+CONFIG_ARM64_SVE=y
+CONFIG_ARM64_SME=y
+# CONFIG_ARM64_PSEUDO_NMI is not set
+CONFIG_ARM64_MEMORY_MODEL_CONTROL=y
+CONFIG_RELOCATABLE=y
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+# end of Kernel Features
+
+#
+# Boot options
+#
+CONFIG_CMDLINE=""
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_DMI=y
+# end of Boot options
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+CONFIG_ENERGY_MODEL=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# end of Power management options
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DT_IDLE_GENPD=y
+
+#
+# ARM CPU Idle Drivers
+#
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
+CONFIG_ARM_APPLE_CPUIDLE=y
+# end of ARM CPU Idle Drivers
+# end of CPU Idle
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_STAT=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_CPUFREQ_DT=m
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_ARM_APPLE_SOC_CPUFREQ=m
+CONFIG_ARM_SCMI_CPUFREQ=m
+# end of CPU Frequency scaling
+# end of CPU Power Management
+
+CONFIG_ARCH_SUPPORTS_ACPI=y
+# CONFIG_ACPI is not set
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQFD=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_DIRTY_RING=y
+CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
+CONFIG_NEED_KVM_DIRTY_RING_WITH_BITMAP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_MMIO=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_KVM_VFIO=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+# CONFIG_NVHE_EL2_DEBUG is not set
+
+#
+# General architecture-dependent options
+#
+CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_KEEPINITRD=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_RUST=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
+# CONFIG_SHADOW_CALL_STACK is not set
+CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
+CONFIG_LTO_NONE=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=16
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+# CONFIG_COMPAT_32BIT_TIME is not set
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET=y
+# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_HAVE_ARCH_COMPILER_H=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
+CONFIG_ARCH_HAS_RELR=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# end of GCOV-based kernel profiling
+
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+CONFIG_FUNCTION_ALIGNMENT_4B=y
+CONFIG_FUNCTION_ALIGNMENT=4
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_DEBUG is not set
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_MODULE_SIG is not set
+CONFIG_MODULE_COMPRESS_NONE=y
+# CONFIG_MODULE_COMPRESS_GZIP is not set
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_COMPRESS_ZSTD is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_CGROUP_PUNT_BIO=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+# CONFIG_BLK_WBT is not set
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_CGROUP_IOCOST is not set
+# CONFIG_BLK_CGROUP_IOPRIO is not set
+CONFIG_BLK_DEBUG_FS=y
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# end of Partition Types
+
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
+CONFIG_BLK_MQ_STACKING=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=m
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+# end of IO Schedulers
+
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_STATE=y
+CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
+CONFIG_ARCH_HAVE_ELF_PROT=y
+CONFIG_ARCH_USE_GNU_PROPERTY=y
+CONFIG_ELFCORE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_ZPOOL=y
+CONFIG_SWAP=y
+CONFIG_ZSWAP=y
+# CONFIG_ZSWAP_DEFAULT_ON is not set
+# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSMALLOC_CHAIN_SIZE=8
+
+#
+# SLAB allocator options
+#
+# CONFIG_SLAB_DEPRECATED is not set
+CONFIG_SLUB=y
+# CONFIG_SLAB_MERGE_DEFAULT is not set
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_SLUB_CPU_PARTIAL is not set
+# CONFIG_RANDOM_KMALLOC_CACHES is not set
+# end of SLAB allocator options
+
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_COMPACTION=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_PAGE_REPORTING=y
+CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CMA is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_USES_PG_ARCH_X=y
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_TEST is not set
+# CONFIG_DMAPOOL_TEST is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_SECRETMEM=y
+# CONFIG_ANON_VMA_NAME is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_LRU_GEN=y
+# CONFIG_LRU_GEN_ENABLED is not set
+# CONFIG_LRU_GEN_STATS is not set
+CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
+CONFIG_PER_VMA_LOCK=y
+CONFIG_LOCK_MM_AND_FIND_VMA=y
+
+#
+# Data Access Monitoring
+#
+# CONFIG_DAMON is not set
+# end of Data Access Monitoring
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_XGRESS=y
+CONFIG_NET_REDIRECT=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_DIAG=m
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_UNIX_DIAG=m
+CONFIG_TLS=m
+# CONFIG_TLS_DEVICE is not set
+# CONFIG_TLS_TOE is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ESP=m
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+# CONFIG_XDP_SOCKETS is not set
+CONFIG_NET_HANDSHAKE=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=y
+# CONFIG_IP_PIMSM_V1 is not set
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+# CONFIG_INET_ESP_OFFLOAD is not set
+# CONFIG_INET_ESPINTCP is not set
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TABLE_PERTURB_ORDER=16
+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 is not set
+# CONFIG_INET_DIAG_DESTROY is not set
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_BBR=m
+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 is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+# CONFIG_INET6_ESP_OFFLOAD is not set
+# CONFIG_INET6_ESPINTCP is not set
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_ILA=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=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 is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
+# CONFIG_NETLABEL is not set
+CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=m
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_BPF_LINK=y
+# CONFIG_NETFILTER_NETLINK_HOOK is not set
+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_SYSLOG=m
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK_OVS=y
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+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=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=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_NAT_OVS=y
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=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_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB=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_NF_DUP_NETDEV=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 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_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_LED=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=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=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=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_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=m
+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=m
+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=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
+# 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=m
+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=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+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=y
+
+#
+# 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=m
+CONFIG_IP_VS_OVF=m
+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_TWOS=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_TABLES_IPV4=y
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_LOG_ARP=m
+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=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 is not set
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_DUP_IPV6=m
+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=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+# CONFIG_IP6_NF_SECURITY is not set
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+# CONFIG_NF_TABLES_BRIDGE is not set
+# CONFIG_NF_CONNTRACK_BRIDGE is not set
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+# CONFIG_BPFILTER is not set
+# CONFIG_IP_DCCP is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_RDS=m
+# CONFIG_RDS_TCP is not set
+# CONFIG_RDS_DEBUG is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+# CONFIG_BRIDGE_MRP is not set
+# CONFIG_BRIDGE_CFM is not set
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+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_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+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_MQPRIO_LIB=m
+# CONFIG_NET_SCH_TAPRIO is not set
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+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=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_SCH_ETS=m
+# CONFIG_NET_SCH_DEFAULT is not set
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=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_FLOW=m
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NET_CLS_BPF is not set
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_MATCHALL=m
+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 is not set
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+# CONFIG_NET_ACT_MPLS is not set
+CONFIG_NET_ACT_VLAN=m
+# CONFIG_NET_ACT_BPF is not set
+CONFIG_NET_ACT_CONNMARK=m
+# CONFIG_NET_ACT_CTINFO is not set
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+# CONFIG_NET_ACT_CT is not set
+# CONFIG_NET_ACT_GATE is not set
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+# CONFIG_NET_TC_SKB_EXT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_BATMAN_V is not set
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKETS_DIAG=m
+CONFIG_VSOCKETS_LOOPBACK=m
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_NETLINK_DIAG=m
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_MPLS_ROUTING=m
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_NET_NSH=m
+# CONFIG_HSR is not set
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_QRTR=m
+# CONFIG_QRTR_TUN is not set
+CONFIG_QRTR_MHI=m
+CONFIG_NET_NCSI=y
+# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
+# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_MAX_SKB_FRAGS=17
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+# end of Network testing
+# end of Networking options
+
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+# end of AX.25 network device drivers
+
+# CONFIG_CAN is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+# CONFIG_BT_RFCOMM is not set
+# CONFIG_BT_BNEP is not set
+CONFIG_BT_HIDP=m
+# CONFIG_BT_HS is not set
+# CONFIG_BT_LE is not set
+# CONFIG_BT_LEDS is not set
+# CONFIG_BT_MSFTEXT is not set
+# CONFIG_BT_AOSPEXT is not set
+# CONFIG_BT_DEBUGFS is not set
+# CONFIG_BT_FEATURE_DEBUG is not set
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_INTEL=m
+CONFIG_BT_BCM=m
+CONFIG_BT_RTL=m
+CONFIG_BT_QCA=m
+CONFIG_BT_HCIBTUSB=m
+# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set
+CONFIG_BT_HCIBTUSB_POLL_SYNC=y
+CONFIG_BT_HCIBTUSB_BCM=y
+# CONFIG_BT_HCIBTUSB_MTK is not set
+CONFIG_BT_HCIBTUSB_RTL=y
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_NOKIA is not set
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_ATH3K is not set
+CONFIG_BT_HCIUART_LL=y
+# CONFIG_BT_HCIUART_3WIRE is not set
+# CONFIG_BT_HCIUART_INTEL is not set
+CONFIG_BT_HCIUART_BCM=y
+# CONFIG_BT_HCIUART_RTL is not set
+CONFIG_BT_HCIUART_QCA=y
+# CONFIG_BT_HCIUART_AG6XX is not set
+# CONFIG_BT_HCIUART_MRVL is not set
+# CONFIG_BT_HCIBCM203X is not set
+CONFIG_BT_HCIBCM4377=m
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+# CONFIG_BT_ATH3K is not set
+# CONFIG_BT_MTKSDIO is not set
+# CONFIG_BT_MTKUART is not set
+# CONFIG_BT_VIRTIO is not set
+# CONFIG_BT_NXPUART is not set
+# end of Bluetooth device drivers
+
+# CONFIG_AF_RXRPC is not set
+CONFIG_AF_KCM=m
+CONFIG_STREAM_PARSER=y
+# CONFIG_MCTP is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_LIB80211=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_FD=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+CONFIG_NFC=m
+# CONFIG_NFC_DIGITAL is not set
+CONFIG_NFC_NCI=m
+# CONFIG_NFC_NCI_SPI is not set
+# CONFIG_NFC_NCI_UART is not set
+# CONFIG_NFC_HCI is not set
+
+#
+# Near Field Communication (NFC) devices
+#
+# CONFIG_NFC_VIRTUAL_NCI is not set
+# CONFIG_NFC_FDP is not set
+# CONFIG_NFC_PN533_USB is not set
+# CONFIG_NFC_PN533_I2C is not set
+# CONFIG_NFC_PN532_UART is not set
+# CONFIG_NFC_MRVL_USB is not set
+# CONFIG_NFC_ST_NCI_I2C is not set
+# CONFIG_NFC_ST_NCI_SPI is not set
+# CONFIG_NFC_NXP_NCI is not set
+CONFIG_NFC_S3FWRN5=m
+CONFIG_NFC_S3FWRN5_I2C=m
+# CONFIG_NFC_S3FWRN82_UART is not set
+# end of Near Field Communication (NFC) devices
+
+# CONFIG_PSAMPLE is not set
+CONFIG_NET_IFE=m
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_FAILOVER=y
+CONFIG_ETHTOOL_NETLINK=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_HOTPLUG_PCI_PCIE is not set
+# CONFIG_PCIEAER is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+# CONFIG_PCIE_PTM is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_PF_STUB is not set
+CONFIG_PCI_ATS=y
+CONFIG_PCI_ECAM=y
+CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+CONFIG_PCI_PASID=y
+CONFIG_PCI_LABEL=y
+# CONFIG_PCI_DYNAMIC_OF_NODES is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=4
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# PCI controller drivers
+#
+# CONFIG_PCIE_ALTERA is not set
+CONFIG_PCIE_APPLE_MSI_DOORBELL_ADDR=0xfffff000
+CONFIG_PCIE_APPLE=y
+# CONFIG_PCI_HOST_THUNDER_PEM is not set
+# CONFIG_PCI_HOST_THUNDER_ECAM is not set
+# CONFIG_PCI_FTPCI100 is not set
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+# CONFIG_PCIE_MICROCHIP_HOST is not set
+# CONFIG_PCI_XGENE is not set
+# CONFIG_PCIE_XILINX is not set
+
+#
+# Cadence-based PCIe controllers
+#
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# CONFIG_PCIE_CADENCE_PLAT_EP is not set
+# CONFIG_PCI_J721E_HOST is not set
+# CONFIG_PCI_J721E_EP is not set
+# end of Cadence-based PCIe controllers
+
+#
+# DesignWare-based PCIe controllers
+#
+# CONFIG_PCIE_AL is not set
+# CONFIG_PCI_MESON is not set
+# CONFIG_PCI_HISI is not set
+# CONFIG_PCIE_KIRIN is not set
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+# CONFIG_PCIE_DW_PLAT_EP is not set
+# end of DesignWare-based PCIe controllers
+
+#
+# Mobiveil-based PCIe controllers
+#
+# end of Mobiveil-based PCIe controllers
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+CONFIG_PCI_EPF_TEST=m
+# CONFIG_PCI_EPF_NTB is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_CXL_BUS is not set
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_CACHE=y
+# CONFIG_FW_UPLOAD is not set
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_SPMI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_BRCMSTB_GISB_ARB is not set
+# CONFIG_MOXTET is not set
+# CONFIG_VEXPRESS_CONFIG is not set
+CONFIG_MHI_BUS=m
+# CONFIG_MHI_BUS_DEBUG is not set
+# CONFIG_MHI_BUS_PCI_GENERIC is not set
+# CONFIG_MHI_BUS_EP is not set
+# end of Bus devices
+
+#
+# Cache Drivers
+#
+# end of Cache Drivers
+
+CONFIG_CONNECTOR=m
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+CONFIG_ARM_SCMI_PROTOCOL=y
+# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set
+# CONFIG_ARM_SCMI_TRANSPORT_VIRTIO is not set
+CONFIG_ARM_SCMI_POWER_DOMAIN=y
+# CONFIG_ARM_SCMI_POWER_CONTROL is not set
+# end of ARM System Control and Management Interface Protocol
+
+CONFIG_DMIID=y
+# CONFIG_DMI_SYSFS is not set
+# CONFIG_FW_CFG_SYSFS is not set
+# CONFIG_SYSFB_SIMPLEFB is not set
+# CONFIG_ARM_FFA_TRANSPORT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=y
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+# CONFIG_EFI_ZBOOT is not set
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
+CONFIG_EFI_CAPSULE_LOADER=y
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+CONFIG_EFI_EARLYCON=y
+# CONFIG_EFI_DISABLE_RUNTIME is not set
+# CONFIG_EFI_COCO_SECRET is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
+# CONFIG_GNSS is not set
+# CONFIG_MTD 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_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_CDROM=m
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_ZRAM is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_DRBD is not set
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_UBLK is not set
+
+#
+# NVME Support
+#
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=m
+# CONFIG_NVME_MULTIPATH is not set
+# CONFIG_NVME_VERBOSE_ERRORS is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_AUTH is not set
+CONFIG_NVME_APPLE=y
+# 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_PHANTOM is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HI6421V600_IRQ is not set
+# CONFIG_HP_ILO 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=y
+# CONFIG_DW_XDATA_PCIE is not set
+CONFIG_PCI_ENDPOINT_TEST=m
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_HISI_HIKEY_USB is not set
+# CONFIG_OPEN_DICE is not set
+# CONFIG_VCPU_STALL_DETECTOR is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_EEPROM_EE1004 is not set
+# end of EEPROM support
+
+# CONFIG_CB710_CORE is not set
+
+#
+# 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
+# CONFIG_VMWARE_VMCI is not set
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_BCM_VK is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_UACCE is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_GP_PCI1XXXX is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI_COMMON=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_BLK_DEV_BSG=y
+# 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=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_MPI3MR is not set
+# CONFIG_SCSI_SMARTPQI is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_MYRB is not set
+# CONFIG_SCSI_MYRS is not set
+# CONFIG_SCSI_SNIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FDOMAIN_PCI is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+# CONFIG_SCSI_VIRTIO is not set
+# CONFIG_SCSI_DH is not set
+# end of SCSI device support
+
+# CONFIG_ATA is not set
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+# CONFIG_MD_BITMAP_FILE is not set
+# CONFIG_MD_LINEAR is not set
+# CONFIG_MD_RAID0 is not set
+# CONFIG_MD_RAID1 is not set
+# CONFIG_MD_RAID10 is not set
+# CONFIG_MD_RAID456 is not set
+# CONFIG_MD_MULTIPATH is not set
+# CONFIG_MD_FAULTY is not set
+# CONFIG_MD_CLUSTER is not set
+# CONFIG_BCACHE is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_UNSTRIPED is not set
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_THIN_PROVISIONING is not set
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_WRITECACHE is not set
+# CONFIG_DM_EBS is not set
+# CONFIG_DM_ERA is not set
+# CONFIG_DM_CLONE is not set
+CONFIG_DM_MIRROR=m
+# CONFIG_DM_LOG_USERSPACE is not set
+# CONFIG_DM_RAID is not set
+CONFIG_DM_ZERO=m
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_DUST is not set
+# CONFIG_DM_UEVENT is not set
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_DM_VERITY is not set
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+# CONFIG_DM_INTEGRITY is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_IFB=m
+# CONFIG_NET_TEAM is not set
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN_L3S=y
+CONFIG_IPVLAN=m
+CONFIG_IPVTAP=m
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+CONFIG_BAREUDP=m
+CONFIG_GTP=m
+# CONFIG_AMT is not set
+CONFIG_MACSEC=m
+# CONFIG_NETCONSOLE is not set
+CONFIG_TUN=m
+CONFIG_TAP=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_NET_VRF=m
+# CONFIG_MHI_NET is not set
+# CONFIG_ARCNET is not set
+CONFIG_ETHERNET=y
+# 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_ALTERA_TSE is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AMD is not set
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_AQTION=m
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_ASIX is not set
+# CONFIG_NET_VENDOR_ATHEROS is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_B44 is not set
+# CONFIG_BCMGENET is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+CONFIG_TIGON3=m
+CONFIG_TIGON3_HWMON=y
+# CONFIG_BNX2X is not set
+# CONFIG_SYSTEMPORT is not set
+# CONFIG_BNXT is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_DAVICOM is not set
+# CONFIG_DNET 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_ENGLEDER is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FUNGIBLE is not set
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HISILICON is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_JME is not set
+# CONFIG_NET_VENDOR_ADI is not set
+# CONFIG_NET_VENDOR_LITEX 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_MICROSOFT is not set
+# CONFIG_NET_VENDOR_MYRI is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETERION 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_ETHOC is not set
+# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
+# CONFIG_NET_VENDOR_PENSANDO 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_NET_VENDOR_REALTEK 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_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_NET_VENDOR_SOCIONEXT is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_VERTEXCOM is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WANGXUN is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
+CONFIG_PHYLIB_LEDS=y
+CONFIG_FIXED_PHY=y
+# CONFIG_SFP is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_ADIN_PHY is not set
+# CONFIG_ADIN1100_PHY is not set
+CONFIG_AQUANTIA_PHY=m
+CONFIG_AX88796B_PHY=m
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MARVELL_88Q2XXX_PHY is not set
+# CONFIG_MARVELL_88X2222_PHY is not set
+# CONFIG_MAXLINEAR_GPHY is not set
+# CONFIG_MEDIATEK_GE_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_MICROCHIP_T1S_PHY is not set
+CONFIG_MICROCHIP_PHY=m
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_MOTORCOMM_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_CBTX_PHY is not set
+# CONFIG_NXP_C45_TJA11XX_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_NCN26000_PHY is not set
+# CONFIG_AT803X_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+CONFIG_REALTEK_PHY=m
+# CONFIG_RENESAS_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+CONFIG_SMSC_PHY=m
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_DP83822_PHY is not set
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+# CONFIG_DP83869_PHY is not set
+# CONFIG_DP83TD510_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PSE_CONTROLLER is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_GPIO is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_THUNDER is not set
+
+#
+# MDIO Multiplexers
+#
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_BUS_MUX_GPIO=m
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+
+#
+# PCS device drivers
+#
+# end of PCS device drivers
+
+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_PPPOE_HASH_BITS_1 is not set
+# CONFIG_PPPOE_HASH_BITS_2 is not set
+CONFIG_PPPOE_HASH_BITS_4=y
+# CONFIG_PPPOE_HASH_BITS_8 is not set
+CONFIG_PPPOE_HASH_BITS=4
+CONFIG_PPTP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+CONFIG_USB_NET_DRIVERS=m
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+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=m
+# CONFIG_USB_NET_SR9700 is not set
+CONFIG_USB_NET_SR9800=m
+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=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+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 is not set
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_NET_INT51X1 is not set
+CONFIG_USB_IPHETH=m
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_USB_NET_CH9200 is not set
+# CONFIG_USB_NET_AQC111 is not set
+CONFIG_USB_RTL8153_ECM=m
+CONFIG_WLAN=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+CONFIG_ATH_COMMON=m
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_PCI is not set
+CONFIG_ATH9K_AHB=y
+# CONFIG_ATH9K_DEBUGFS is not set
+# CONFIG_ATH9K_DYNACK is not set
+# CONFIG_ATH9K_WOW is not set
+CONFIG_ATH9K_RFKILL=y
+# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+# CONFIG_ATH9K_HWRNG is not set
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_CARL9170_HWRNG=y
+CONFIG_ATH6KL=m
+CONFIG_ATH6KL_SDIO=m
+CONFIG_ATH6KL_USB=m
+CONFIG_ATH6KL_DEBUG=y
+CONFIG_AR5523=m
+CONFIG_WIL6210=m
+CONFIG_WIL6210_ISR_COR=y
+CONFIG_WIL6210_DEBUGFS=y
+CONFIG_ATH10K=m
+CONFIG_ATH10K_CE=y
+CONFIG_ATH10K_PCI=m
+# CONFIG_ATH10K_AHB is not set
+# CONFIG_ATH10K_SDIO is not set
+# CONFIG_ATH10K_USB is not set
+# CONFIG_ATH10K_DEBUG is not set
+# CONFIG_ATH10K_DEBUGFS is not set
+CONFIG_WCN36XX=m
+# CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
+# CONFIG_ATH11K_DEBUG is not set
+# CONFIG_ATH12K is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+CONFIG_WLAN_VENDOR_BROADCOM=y
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+CONFIG_BRCMUTIL=m
+# CONFIG_BRCMSMAC is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_PROTO_MSGBUF=y
+# CONFIG_BRCMFMAC_SDIO is not set
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMFMAC_PCIE=y
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+# CONFIG_WLAN_VENDOR_CISCO is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+# CONFIG_WLAN_VENDOR_MARVELL is not set
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_MICROCHIP is not set
+# CONFIG_WLAN_VENDOR_PURELIFI is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTL_CARDS=m
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8723AE is not set
+# CONFIG_RTL8723BE is not set
+# CONFIG_RTL8188EE is not set
+# CONFIG_RTL8192EE is not set
+# CONFIG_RTL8821AE is not set
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTLWIFI_USB=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8192C_COMMON=m
+CONFIG_RTL8XXXU=m
+CONFIG_RTL8XXXU_UNTESTED=y
+CONFIG_RTW88=m
+# CONFIG_RTW88_8822BE is not set
+# CONFIG_RTW88_8822BS is not set
+# CONFIG_RTW88_8822BU is not set
+# CONFIG_RTW88_8822CE is not set
+# CONFIG_RTW88_8822CS is not set
+# CONFIG_RTW88_8822CU is not set
+# CONFIG_RTW88_8723DE is not set
+# CONFIG_RTW88_8723DS is not set
+# CONFIG_RTW88_8723DU is not set
+# CONFIG_RTW88_8821CE is not set
+# CONFIG_RTW88_8821CS is not set
+# CONFIG_RTW88_8821CU is not set
+CONFIG_RTW89=m
+# CONFIG_RTW89_8851BE is not set
+# CONFIG_RTW89_8852AE is not set
+# CONFIG_RTW89_8852BE is not set
+# CONFIG_RTW89_8852CE is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_SILABS is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_VIRT_WIFI is not set
+# CONFIG_WAN is not set
+
+#
+# Wireless WAN
+#
+# CONFIG_WWAN is not set
+# end of Wireless WAN
+
+# CONFIG_VMXNET3 is not set
+# CONFIG_NETDEVSIM is not set
+CONFIG_NET_FAILOVER=y
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=y
+CONFIG_INPUT_FF_MEMLESS=y
+# CONFIG_INPUT_SPARSEKMAP is not set
+CONFIG_INPUT_MATRIXKMAP=m
+CONFIG_INPUT_VIVALDIFMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_PINEPHONE is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_CYPRESS_SF is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+CONFIG_TOUCHSCREEN_APPLE_Z2=m
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_BU21029 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
+# CONFIG_TOUCHSCREEN_EXC3000 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GOODIX is not set
+# CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
+# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_ILITEK is not set
+# CONFIG_TOUCHSCREEN_S6SY761 is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+# CONFIG_TOUCHSCREEN_ELAN is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MSG2638 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set
+# CONFIG_TOUCHSCREEN_IMAGIS is not set
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+# CONFIG_TOUCHSCREEN_TSC2004 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_RM_TS is not set
+# CONFIG_TOUCHSCREEN_SILEAD is not set
+# CONFIG_TOUCHSCREEN_SIS_I2C is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_SUR40 is not set
+# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
+# CONFIG_TOUCHSCREEN_SX8654 is not set
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_ZET6223 is not set
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+# CONFIG_TOUCHSCREEN_IQS5XX is not set
+# CONFIG_TOUCHSCREEN_IQS7211 is not set
+# CONFIG_TOUCHSCREEN_ZINITIX is not set
+# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+# CONFIG_INPUT_GPIO_VIBRA is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_KXTJ9 is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_DA7280_HAPTICS is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IBM_PANEL is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_IQS269A is not set
+# CONFIG_INPUT_IQS626A is not set
+# CONFIG_INPUT_IQS7222 is not set
+# CONFIG_INPUT_CMA3000 is not set
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+CONFIG_INPUT_MACSMC_HID=y
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SERIO_AMBAKMI=y
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO 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=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
+CONFIG_LDISC_AUTOLOAD=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCILIB=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+# CONFIG_SERIAL_8250_PCI1XXXX is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_RT288X is not set
+CONFIG_SERIAL_8250_PERICOM=y
+CONFIG_SERIAL_OF_PLATFORM=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_UARTS=4
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+# 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_JSM is not set
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+CONFIG_HVC_DRIVER=y
+# CONFIG_HVC_DCC is not set
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_VIRTIO_CONSOLE=y
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_SSIF_IPMI_BMC is not set
+# CONFIG_IPMB_DEVICE_INTERFACE is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_HW_RANDOM_BA431 is not set
+# CONFIG_HW_RANDOM_VIRTIO is not set
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m
+CONFIG_HW_RANDOM_CN10K=m
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+# CONFIG_TCG_TPM is not set
+# CONFIG_XILLYBUS is not set
+# CONFIG_XILLYUSB is not set
+# end of Character devices
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_GPMUX is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+# end of Multiplexer I2C Chip support
+
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CADENCE is not set
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
+# CONFIG_I2C_HISI is not set
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+CONFIG_I2C_APPLE=y
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_THUNDERX is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_CP2615 is not set
+# CONFIG_I2C_PCI1XXXX 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
+#
+# CONFIG_I2C_VIRTIO is not set
+# end of I2C Hardware Bus support
+
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_EEPROM is not set
+# CONFIG_I2C_SLAVE_TESTUNIT 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_MASTER=y
+CONFIG_SPI_MEM=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_APPLE=y
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_CADENCE_QUADSPI is not set
+# CONFIG_SPI_CADENCE_XSPI is not set
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DW_DMA=y
+# CONFIG_SPI_DW_PCI is not set
+CONFIG_SPI_DW_MMIO=m
+CONFIG_SPI_GPIO=y
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_MICROCHIP_CORE is not set
+# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PCI1XXXX is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SIFIVE is not set
+# CONFIG_SPI_SN_F_OSPI is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_THUNDERX is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+CONFIG_SPMI=y
+# CONFIG_SPMI_HISI3670 is not set
+CONFIG_SPMI_APPLE=y
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG 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=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+# CONFIG_DP83640_PHY is not set
+# CONFIG_PTP_1588_CLOCK_INES is not set
+CONFIG_PTP_1588_CLOCK_KVM=y
+# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
+# CONFIG_PTP_1588_CLOCK_IDTCM is not set
+# CONFIG_PTP_1588_CLOCK_MOCK is not set
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCTRL_APPLE_GPIO=y
+# CONFIG_PINCTRL_CY8C95X0 is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_SX150X is not set
+
+#
+# Renesas pinctrl drivers
+#
+# end of Renesas pinctrl drivers
+
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=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_EXAR is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_HISI is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_PL061 is not set
+# CONFIG_GPIO_SIFIVE is not set
+CONFIG_GPIO_SYSCON=y
+# CONFIG_GPIO_XGENE is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_FXL6408 is not set
+# CONFIG_GPIO_DS4520 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_PCA9570 is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+CONFIG_GPIO_MACSMC=y
+# end of MFD GPIO expanders
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI 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
+
+#
+# Virtual GPIO drivers
+#
+# CONFIG_GPIO_AGGREGATOR is not set
+# CONFIG_GPIO_LATCH is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_VIRTIO is not set
+# CONFIG_GPIO_SIM is not set
+# end of Virtual GPIO drivers
+
+# CONFIG_W1 is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_BRCMSTB is not set
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+CONFIG_POWER_RESET_MACSMC=y
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_REGULATOR is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_XGENE is not set
+CONFIG_POWER_RESET_SYSCON=y
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+CONFIG_REBOOT_MODE=y
+CONFIG_SYSCON_REBOOT_MODE=y
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_IP5XXX_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_CW2015 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SAMSUNG_SDI is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_CHARGER_SBS is not set
+# CONFIG_MANAGER_SBS is not set
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_LTC4162L is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MAX77976 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ2515X is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
+# CONFIG_CHARGER_BQ256XX is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_BATTERY_RT5033 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_RT9467 is not set
+# CONFIG_CHARGER_RT9471 is not set
+# CONFIG_CHARGER_UCS1002 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_BATTERY_UG3105 is not set
+CONFIG_CHARGER_MACSMC=y
+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_ADM1177 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_AHT10 is not set
+# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+# CONFIG_SENSORS_ARM_SCMI is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
+# CONFIG_SENSORS_CORSAIR_PSU is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB 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_HS3001 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_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC2992 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_MAX127 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_MAX31730 is not set
+# CONFIG_SENSORS_MAX31760 is not set
+# CONFIG_MAX31827 is not set
+# CONFIG_SENSORS_MAX6620 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_MC34VR500 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_TPS23861 is not set
+# CONFIG_SENSORS_MR75203 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_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT6775_I2C is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
+# CONFIG_SENSORS_NZXT_SMART2 is not set
+# CONFIG_SENSORS_OCC_P8_I2C is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+CONFIG_SENSORS_PWM_FAN=m
+# CONFIG_SENSORS_SBTSI is not set
+# CONFIG_SENSORS_SBRMI is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHT4x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC2305 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_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_INA238 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 is not set
+# CONFIG_SENSORS_TMP464 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 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=y
+# CONFIG_THERMAL_NETLINK is not set
+# CONFIG_THERMAL_STATISTICS is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
+CONFIG_THERMAL_GOV_STEP_WISE=y
+# CONFIG_THERMAL_GOV_BANG_BANG is not set
+CONFIG_THERMAL_GOV_USER_SPACE=y
+# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
+# CONFIG_CPU_THERMAL is not set
+CONFIG_DEVFREQ_THERMAL=y
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_THERMAL_MMIO 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
+# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT 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_XILINX_WINDOW_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_ARM_SP805_WATCHDOG is not set
+# CONFIG_ARM_SBSA_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_ARM_SMC_WATCHDOG is not set
+CONFIG_APPLE_WATCHDOG=y
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_HP_WATCHDOG is not set
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI 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_CORE=y
+# CONFIG_MFD_ACT8945A is not set
+CONFIG_MFD_APPLE_SPMI_PMU=y
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_SMPRO 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_CS42L43_I2C is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_MFD_MAX5970 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_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO 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_MAX77541 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_MAX77714 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_MT6360 is not set
+# CONFIG_MFD_MT6370 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_OCELOT is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_NTXEC is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_SY7636A is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT4831 is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RT5120 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK8XX_I2C is not set
+# CONFIG_MFD_RK8XX_SPI 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_SIMPLE_MFD_SPMI=y
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# 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_TPS65219 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_TPS6594_I2C is not set
+# CONFIG_MFD_TPS6594_SPI 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_VX855 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_BD71828 is not set
+# CONFIG_MFD_ROHM_BD957XMUF is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_ATC260X_I2C is not set
+# CONFIG_MFD_QCOM_PM8008 is not set
+# CONFIG_RAVE_SP_CORE is not set
+# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
+# CONFIG_MFD_RSMU_I2C is not set
+# CONFIG_MFD_RSMU_SPI is not set
+# end of Multifunction device drivers
+
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_ARM_SCMI is not set
+# CONFIG_REGULATOR_AW37503 is not set
+# CONFIG_REGULATOR_DA9121 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_FAN53880 is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX77857 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8893 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MAX20086 is not set
+# CONFIG_REGULATOR_MAX20411 is not set
+# CONFIG_REGULATOR_MAX77826 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MP5416 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MP886X is not set
+# CONFIG_REGULATOR_MPQ7920 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_MT6315 is not set
+# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PF8X00 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_QCOM_SPMI is not set
+# CONFIG_REGULATOR_QCOM_USB_VBUS is not set
+# CONFIG_REGULATOR_RAA215300 is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RT4803 is not set
+# CONFIG_REGULATOR_RT5190A is not set
+# CONFIG_REGULATOR_RT5739 is not set
+# CONFIG_REGULATOR_RT5759 is not set
+# CONFIG_REGULATOR_RT6160 is not set
+# CONFIG_REGULATOR_RT6190 is not set
+# CONFIG_REGULATOR_RT6245 is not set
+# CONFIG_REGULATOR_RTQ2134 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_RTQ6752 is not set
+# CONFIG_REGULATOR_RTQ2208 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+# CONFIG_REGULATOR_SY8827N is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS6286X is not set
+# CONFIG_REGULATOR_TPS6287X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_VCTRL is not set
+# CONFIG_REGULATOR_QCOM_LABIBB is not set
+# CONFIG_RC_CORE is not set
+
+#
+# CEC support
+#
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+# end of CEC support
+
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+
+#
+# Media device types
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+# CONFIG_MEDIA_TEST_SUPPORT is not set
+# end of Media device types
+
+CONFIG_VIDEO_DEV=m
+CONFIG_MEDIA_CONTROLLER=y
+
+#
+# Video4Linux options
+#
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_V4L2_FLASH_LED_CLASS=m
+CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_ASYNC=m
+# end of Video4Linux options
+
+#
+# Media controller options
+#
+# end of Media controller options
+
+#
+# Media drivers
+#
+
+#
+# Drivers filtered as selected at 'Filter media drivers'
+#
+
+#
+# Media drivers
+#
+CONFIG_MEDIA_USB_SUPPORT=y
+
+#
+# Webcam devices
+#
+# CONFIG_USB_GSPCA is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_VIDEO_USBTV is not set
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+
+#
+# Webcam, TV (analog/digital) USB devices
+#
+# CONFIG_VIDEO_EM28XX is not set
+
+#
+# Software defined radio USB devices
+#
+# CONFIG_USB_AIRSPY is not set
+# CONFIG_USB_HACKRF is not set
+# CONFIG_USB_MSI2500 is not set
+# CONFIG_MEDIA_PCI_SUPPORT is not set
+CONFIG_MEDIA_PLATFORM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+# CONFIG_SDR_PLATFORM_DRIVERS is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
+# CONFIG_VIDEO_MUX is not set
+
+#
+# Allegro DVT media platform drivers
+#
+
+#
+# Amlogic media platform drivers
+#
+
+#
+# Amphion drivers
+#
+
+#
+# Apple media platform drivers
+#
+CONFIG_VIDEO_APPLE_ISP=m
+
+#
+# Aspeed media platform drivers
+#
+
+#
+# Atmel media platform drivers
+#
+
+#
+# Cadence media platform drivers
+#
+# CONFIG_VIDEO_CADENCE_CSI2RX is not set
+# CONFIG_VIDEO_CADENCE_CSI2TX is not set
+
+#
+# Chips&Media media platform drivers
+#
+
+#
+# Intel media platform drivers
+#
+
+#
+# Marvell media platform drivers
+#
+# CONFIG_VIDEO_CAFE_CCIC is not set
+
+#
+# Mediatek media platform drivers
+#
+
+#
+# Microchip Technology, Inc. media platform drivers
+#
+
+#
+# NVidia media platform drivers
+#
+
+#
+# NXP media platform drivers
+#
+
+#
+# Qualcomm media platform drivers
+#
+
+#
+# Renesas media platform drivers
+#
+
+#
+# Rockchip media platform drivers
+#
+
+#
+# Samsung media platform drivers
+#
+
+#
+# STMicroelectronics media platform drivers
+#
+
+#
+# Sunxi media platform drivers
+#
+
+#
+# Texas Instruments drivers
+#
+
+#
+# Verisilicon media platform drivers
+#
+
+#
+# VIA media platform drivers
+#
+
+#
+# Xilinx media platform drivers
+#
+# CONFIG_VIDEO_XILINX is not set
+CONFIG_UVC_COMMON=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF2_DMA_SG=m
+# end of Media drivers
+
+CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
+
+#
+# Media ancillary drivers
+#
+CONFIG_VIDEO_CAMERA_SENSOR=y
+# CONFIG_VIDEO_AR0521 is not set
+# CONFIG_VIDEO_HI556 is not set
+# CONFIG_VIDEO_HI846 is not set
+# CONFIG_VIDEO_HI847 is not set
+# CONFIG_VIDEO_IMX208 is not set
+# CONFIG_VIDEO_IMX214 is not set
+# CONFIG_VIDEO_IMX219 is not set
+# CONFIG_VIDEO_IMX258 is not set
+# CONFIG_VIDEO_IMX274 is not set
+# CONFIG_VIDEO_IMX290 is not set
+# CONFIG_VIDEO_IMX296 is not set
+# CONFIG_VIDEO_IMX319 is not set
+# CONFIG_VIDEO_IMX334 is not set
+# CONFIG_VIDEO_IMX335 is not set
+# CONFIG_VIDEO_IMX355 is not set
+# CONFIG_VIDEO_IMX412 is not set
+# CONFIG_VIDEO_IMX415 is not set
+# CONFIG_VIDEO_MT9M001 is not set
+# CONFIG_VIDEO_MT9M111 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T112 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MT9V111 is not set
+# CONFIG_VIDEO_OG01A1B is not set
+# CONFIG_VIDEO_OV01A10 is not set
+# CONFIG_VIDEO_OV02A10 is not set
+# CONFIG_VIDEO_OV08D10 is not set
+# CONFIG_VIDEO_OV08X40 is not set
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_OV13B10 is not set
+# CONFIG_VIDEO_OV2640 is not set
+# CONFIG_VIDEO_OV2659 is not set
+# CONFIG_VIDEO_OV2680 is not set
+# CONFIG_VIDEO_OV2685 is not set
+# CONFIG_VIDEO_OV4689 is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV5648 is not set
+# CONFIG_VIDEO_OV5670 is not set
+# CONFIG_VIDEO_OV5675 is not set
+# CONFIG_VIDEO_OV5693 is not set
+# CONFIG_VIDEO_OV5695 is not set
+# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV7251 is not set
+# CONFIG_VIDEO_OV7640 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_OV772X is not set
+# CONFIG_VIDEO_OV7740 is not set
+# CONFIG_VIDEO_OV8856 is not set
+# CONFIG_VIDEO_OV8858 is not set
+# CONFIG_VIDEO_OV8865 is not set
+# CONFIG_VIDEO_OV9282 is not set
+# CONFIG_VIDEO_OV9640 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_RDACM20 is not set
+# CONFIG_VIDEO_RDACM21 is not set
+# CONFIG_VIDEO_RJ54N1 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_ST_VGXY61 is not set
+# CONFIG_VIDEO_CCS is not set
+# CONFIG_VIDEO_ET8EK8 is not set
+
+#
+# Lens drivers
+#
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_AK7375 is not set
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_DW9719 is not set
+# CONFIG_VIDEO_DW9768 is not set
+# CONFIG_VIDEO_DW9807_VCM is not set
+# end of Lens drivers
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+# end of Flash devices
+
+#
+# audio, video and radio I2C drivers auto-selected by 'Autoselect ancillary drivers'
+#
+
+#
+# Video and audio decoders
+#
+
+#
+# Video serializers and deserializers
+#
+# CONFIG_VIDEO_DS90UB913 is not set
+# CONFIG_VIDEO_DS90UB953 is not set
+# CONFIG_VIDEO_DS90UB960 is not set
+# end of Video serializers and deserializers
+
+#
+# SPI I2C drivers auto-selected by 'Autoselect ancillary drivers'
+#
+
+#
+# Media SPI Adapters
+#
+# CONFIG_VIDEO_GS1662 is not set
+# end of Media SPI Adapters
+
+CONFIG_MEDIA_TUNER=m
+
+#
+# Tuner drivers auto-selected by 'Autoselect ancillary drivers'
+#
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+# end of Media ancillary drivers
+
+#
+# Graphics support
+#
+CONFIG_APERTURE_HELPERS=y
+CONFIG_VIDEO_CMDLINE=y
+CONFIG_VIDEO_NOMODESET=y
+# CONFIG_AUXDISPLAY is not set
+CONFIG_DRM=y
+CONFIG_DRM_MIPI_DSI=y
+# CONFIG_DRM_DEBUG_MM is not set
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_GEM_DMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+CONFIG_DRM_SCHED=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_NOUVEAU is not set
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+CONFIG_RUST_DRM_SCHED=y
+CONFIG_RUST_DRM_GEM_SHMEM_HELPER=y
+CONFIG_RUST_APPLE_RTKIT=y
+CONFIG_DRM_ASAHI=m
+# CONFIG_DRM_ASAHI_DEBUG_ALLOCATOR is not set
+# CONFIG_DRM_VMWGFX is not set
+# CONFIG_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_QXL is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
+# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set
+# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
+# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
+# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
+# CONFIG_DRM_PANEL_DSI_CM is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_EDP is not set
+# CONFIG_DRM_PANEL_EBBG_FT8719 is not set
+# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
+# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
+# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
+# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
+# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_JDI_R63452 is not set
+# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
+# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
+# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
+# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
+# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set
+# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
+# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set
+# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
+# CONFIG_DRM_PANEL_TPO_TPG110 is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set
+# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set
+# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
+# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
+# CONFIG_DRM_CHRONTEL_CH7033 is not set
+# CONFIG_DRM_DISPLAY_CONNECTOR is not set
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NWL_MIPI_DSI is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_PARADE_PS8640 is not set
+# CONFIG_DRM_SAMSUNG_DSIM is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+# CONFIG_DRM_ANALOGIX_ANX6345 is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
+# end of Display Interface Bridges
+
+# CONFIG_DRM_LOONGSON is not set
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_HISI_HIBMC is not set
+# CONFIG_DRM_HISI_KIRIN is not set
+# CONFIG_DRM_LOGICVC is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_GM12U320 is not set
+# CONFIG_DRM_PANEL_MIPI_DBI is not set
+CONFIG_DRM_SIMPLEDRM=y
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9163 is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+# CONFIG_DRM_PL111 is not set
+# CONFIG_DRM_LIMA is not set
+# CONFIG_DRM_PANFROST is not set
+# CONFIG_DRM_TIDSS is not set
+CONFIG_DRM_ADP=m
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
+CONFIG_DRM_APPLE=y
+# CONFIG_DRM_LEGACY is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_ARMCLCD is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_EFI is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+CONFIG_FB_CORE=y
+CONFIG_FB_NOTIFY=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_DEVICE=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_DMAMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_KTD253 is not set
+# CONFIG_BACKLIGHT_KTZ8866 is not set
+# CONFIG_BACKLIGHT_PWM is not set
+# CONFIG_BACKLIGHT_QCOM_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+# CONFIG_BACKLIGHT_LP855X is not set
+CONFIG_BACKLIGHT_GPIO=y
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_BACKLIGHT_LED is not set
+# end of Backlight & LCD device support
+
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+# end of Console display driver support
+
+# CONFIG_LOGO is not set
+# end of Graphics support
+
+# CONFIG_DRM_ACCEL is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+# CONFIG_SND_HRTIMER is not set
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_MAX_CARDS=32
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_CTL_FAST_LOOKUP=y
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_CTL_INPUT_VALIDATION is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_MIDI=m
+# CONFIG_SND_SEQ_UMP is not set
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+# CONFIG_SND_PCMTEST is not set
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_SERIAL_GENERIC is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+# end of HD-Audio
+
+CONFIG_SND_HDA_PREALLOC_SIZE=4096
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+# CONFIG_SND_BCD2000 is not set
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_SOC=y
+# CONFIG_SND_SOC_ADI is not set
+# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_AMD_ACP_CONFIG is not set
+CONFIG_SND_SOC_APPLE_MCA=m
+CONFIG_SND_SOC_APPLE_MACAUDIO=m
+# CONFIG_SND_ATMEL_SOC is not set
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# end of SoC Audio for Freescale CPUs
+
+# CONFIG_SND_SOC_CHV3_I2S is not set
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# end of STMicroelectronics STM32 SOC audio support
+
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+CONFIG_SND_SOC_I2C_AND_SPI=y
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4375 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_AW8738 is not set
+# CONFIG_SND_SOC_AW88395 is not set
+# CONFIG_SND_SOC_AW88261 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# CONFIG_SND_SOC_CHV3_CODEC is not set
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS35L41_SPI is not set
+# CONFIG_SND_SOC_CS35L41_I2C is not set
+# CONFIG_SND_SOC_CS35L45_SPI is not set
+# CONFIG_SND_SOC_CS35L45_I2C is not set
+# CONFIG_SND_SOC_CS35L56_I2C is not set
+# CONFIG_SND_SOC_CS35L56_SPI is not set
+CONFIG_SND_SOC_CS42L42_CORE=y
+CONFIG_SND_SOC_CS42L42=m
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+CONFIG_SND_SOC_CS42L83=y
+CONFIG_SND_SOC_CS42L84=y
+# CONFIG_SND_SOC_CS4234 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_CX2072X is not set
+# CONFIG_SND_SOC_DA7213 is not set
+CONFIG_SND_SOC_DMIC=m
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES7241 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8326 is not set
+# CONFIG_SND_SOC_ES8328_I2C is not set
+# CONFIG_SND_SOC_ES8328_SPI is not set
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_HDA is not set
+# CONFIG_SND_SOC_ICS43432 is not set
+# CONFIG_SND_SOC_IDT821034 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98088 is not set
+# CONFIG_SND_SOC_MAX98090 is not set
+# CONFIG_SND_SOC_MAX98357A is not set
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98520 is not set
+# CONFIG_SND_SOC_MAX98373_I2C is not set
+# CONFIG_SND_SOC_MAX98388 is not set
+# CONFIG_SND_SOC_MAX98390 is not set
+# CONFIG_SND_SOC_MAX98396 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3060_I2C is not set
+# CONFIG_SND_SOC_PCM3060_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_PEB2466 is not set
+# CONFIG_SND_SOC_RK3328 is not set
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_RT5640 is not set
+# CONFIG_SND_SOC_RT5659 is not set
+# CONFIG_SND_SOC_RT9120 is not set
+# CONFIG_SND_SOC_SGTL5000 is not set
+CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
+CONFIG_SND_SOC_SIMPLE_MUX=m
+# CONFIG_SND_SOC_SMA1303 is not set
+# CONFIG_SND_SOC_SPDIF is not set
+# CONFIG_SND_SOC_SRC4XXX_I2C is not set
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2518 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM3515 is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+CONFIG_SND_SOC_TAS2764=m
+CONFIG_SND_SOC_TAS2770=m
+CONFIG_SND_SOC_TAS2780=m
+# CONFIG_SND_SOC_TAS2781_I2C is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS5805M is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TFA989X is not set
+# CONFIG_SND_SOC_TLV320ADC3XXX is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+# CONFIG_SND_SOC_TS3A227E is not set
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731_I2C is not set
+# CONFIG_SND_SOC_WM8731_SPI is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8940 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8961 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZL38060 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_NAU8315 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8821 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
+# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
+# end of CODEC drivers
+
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_AUDIO_GRAPH_CARD=m
+# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
+# CONFIG_SND_TEST_COMPONENT is not set
+CONFIG_SND_VIRTIO=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+CONFIG_HID_APPLE=y
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELAN is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EVISION is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GOOGLE_STADIA_FF is not set
+# CONFIG_HID_VIVALDI is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+CONFIG_HID_UCLOGIC=m
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_VRC2 is not set
+# CONFIG_HID_XIAOMI is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LETSKETCH is not set
+# CONFIG_HID_LOGITECH is not set
+CONFIG_HID_MAGICMOUSE=y
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_MEGAWORLD_FF is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NINTENDO is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_NVIDIA_SHIELD is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PLAYSTATION is not set
+# CONFIG_HID_PXRC is not set
+# CONFIG_HID_RAZER is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SEMITEK is not set
+# CONFIG_HID_SIGMAMICRO is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_TOPRE is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_U2FZERO is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# HID-BPF support
+#
+# end of HID-BPF support
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+CONFIG_USB_HIDDEV=y
+# end of USB HID support
+
+CONFIG_I2C_HID=y
+CONFIG_I2C_HID_OF=y
+# CONFIG_I2C_HID_OF_ELAN is not set
+# CONFIG_I2C_HID_OF_GOODIX is not set
+CONFIG_I2C_HID_CORE=y
+
+#
+# SPI HID support
+#
+CONFIG_SPI_HID_APPLE_OF=y
+# end of SPI HID support
+
+CONFIG_SPI_HID_APPLE_CORE=y
+
+#
+# DockChannel HID support
+#
+CONFIG_HID_DOCKCHANNEL=y
+# end of DockChannel HID support
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_USB_ULPI_BUS=y
+CONFIG_USB_CONN_GPIO=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_FEW_INIT_RETRIES is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_MON=m
+
+#
+# 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_PCI=y
+# CONFIG_USB_XHCI_PCI_RENESAS is not set
+CONFIG_USB_XHCI_PCI_ASMEDIA=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=y
+# CONFIG_USB_EHCI_FSL is not set
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+CONFIG_USB_UHCI_HCD=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=m
+# 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=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USBIP_CORE is not set
+
+#
+# USB dual-mode controller drivers
+#
+# CONFIG_USB_CDNS_SUPPORT is not set
+# CONFIG_USB_MUSB_HDRC is not set
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_ULPI=y
+# CONFIG_USB_DWC3_HOST is not set
+# CONFIG_USB_DWC3_GADGET is not set
+CONFIG_USB_DWC3_DUAL_ROLE=y
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_HAPS=y
+CONFIG_USB_DWC3_OF_SIMPLE=y
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_CHIPIDEA is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_GENERIC is not set
+# CONFIG_USB_SERIAL_SIMPLE is not set
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+CONFIG_USB_SERIAL_CP210X=m
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_F81232 is not set
+# CONFIG_USB_SERIAL_F8153X is not set
+CONFIG_USB_SERIAL_GARMIN=m
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_IUU is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+CONFIG_USB_SERIAL_MCT_U232=m
+# CONFIG_USB_SERIAL_METRO is not set
+CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_MXUPORT is not set
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_QCAUX is not set
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_SYMBOL is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+# CONFIG_USB_SERIAL_WISHBONE is not set
+# CONFIG_USB_SERIAL_SSU100 is not set
+# CONFIG_USB_SERIAL_QT2 is not set
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
+# CONFIG_USB_SERIAL_XR is not set
+# CONFIG_USB_SERIAL_DEBUG 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_APPLEDISPLAY is not set
+CONFIG_APPLE_MFI_FASTCHARGE=m
+# 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=m
+# 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
+# CONFIG_USB_ONBOARD_HUB is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=m
+# CONFIG_USB_ISP1301 is not set
+CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_VIEWPORT=y
+# end of USB Physical Layer drivers
+
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_U_SERIAL_CONSOLE=y
+
+#
+# USB Peripheral Controller
+#
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+CONFIG_USB_SNP_CORE=m
+CONFIG_USB_SNP_UDC_PLAT=m
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_BDC_UDC is not set
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_NET2280 is not set
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_EG20T is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_MAX3420_UDC is not set
+# CONFIG_USB_DUMMY_HCD is not set
+# end of USB Peripheral Controller
+
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+# CONFIG_USB_CONFIGFS_F_UAC1 is not set
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONFIGFS_F_UAC2 is not set
+# CONFIG_USB_CONFIGFS_F_MIDI is not set
+# CONFIG_USB_CONFIGFS_F_MIDI2 is not set
+# CONFIG_USB_CONFIGFS_F_HID is not set
+# CONFIG_USB_CONFIGFS_F_UVC is not set
+# CONFIG_USB_CONFIGFS_F_PRINTER is not set
+
+#
+# USB Gadget precomposed configurations
+#
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_AUDIO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=m
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
+# CONFIG_USB_RAW_GADGET is not set
+# end of USB Gadget precomposed configurations
+
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_TCPCI=y
+# CONFIG_TYPEC_RT1711H is not set
+# CONFIG_TYPEC_TCPCI_MAXIM is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_UCSI=m
+# CONFIG_UCSI_CCG is not set
+# CONFIG_UCSI_STM32G0 is not set
+CONFIG_TYPEC_TPS6598X=y
+# CONFIG_TYPEC_ANX7411 is not set
+# CONFIG_TYPEC_RT1719 is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
+# CONFIG_TYPEC_STUSB160X is not set
+# CONFIG_TYPEC_WUSB3801 is not set
+
+#
+# USB Type-C Multiplexer/DeMultiplexer Switch support
+#
+# CONFIG_TYPEC_MUX_FSA4480 is not set
+# CONFIG_TYPEC_MUX_GPIO_SBU is not set
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# CONFIG_TYPEC_MUX_NB7VPQ904M is not set
+# end of USB Type-C Multiplexer/DeMultiplexer Switch support
+
+#
+# USB Type-C Alternate Mode drivers
+#
+CONFIG_TYPEC_DP_ALTMODE=m
+# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
+# end of USB Type-C Alternate Mode drivers
+
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=m
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_MMC_BLOCK=m
+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_ARMMMCI is not set
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_TIFM_SD is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_CQHCI=m
+CONFIG_MMC_HSQ=m
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=y
+CONFIG_LEDS_CLASS_MULTICOLOR=y
+CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_AW200XX is not set
+# CONFIG_LEDS_AW2013 is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_EL15203000 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 is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP50XX is not set
+# CONFIG_LEDS_LP55XX_COMMON is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_PCA995X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+CONFIG_LEDS_PWM=m
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2606MVV 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_SYSCON is not set
+# CONFIG_LEDS_MLXREG is not set
+CONFIG_LEDS_USER=y
+CONFIG_LEDS_SPI_BYTE=m
+# CONFIG_LEDS_LM3697 is not set
+
+#
+# Flash and Torch LED drivers
+#
+# CONFIG_LEDS_AAT1290 is not set
+# CONFIG_LEDS_AS3645A is not set
+# CONFIG_LEDS_KTD2692 is not set
+# CONFIG_LEDS_LM3601X is not set
+# CONFIG_LEDS_RT4505 is not set
+# CONFIG_LEDS_RT8515 is not set
+# CONFIG_LEDS_SGM3140 is not set
+
+#
+# RGB LED drivers
+#
+# CONFIG_LEDS_GROUP_MULTICOLOR is not set
+# CONFIG_LEDS_PWM_MULTICOLOR is not set
+# CONFIG_LEDS_QCOM_LPG is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_TRIGGER_PATTERN is not set
+# CONFIG_LEDS_TRIGGER_AUDIO is not set
+CONFIG_LEDS_TRIGGER_TTY=m
+
+#
+# Simple LED drivers
+#
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_SUPPORT=y
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTC_DEBUG=y
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABEOZ9 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_NCT3018Y is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF85363 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV3032 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_SD3078 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_EFI is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+CONFIG_RTC_DRV_MACSMC=y
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_AMBA_PL08X is not set
+CONFIG_APPLE_ADMAC=y
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_QDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+# CONFIG_MV_XOR_V2 is not set
+# CONFIG_PL330_DMA is not set
+# CONFIG_PLX_DMA is not set
+# CONFIG_XILINX_DMA is not set
+# CONFIG_XILINX_XDMA is not set
+# CONFIG_XILINX_ZYNQMP_DMA is not set
+# CONFIG_XILINX_ZYNQMP_DPDMA is not set
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+# CONFIG_DW_EDMA is not set
+# CONFIG_SF_PDMA is not set
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
+CONFIG_UDMABUF=y
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_SYSFS_STATS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+# end of DMABUF options
+
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO_ANCHOR=y
+CONFIG_VIRTIO=y
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_VDPA is not set
+# CONFIG_VHOST_MENU is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_COMEDI is not set
+CONFIG_STAGING=y
+# CONFIG_PRISM2_USB is not set
+CONFIG_RTL8192U=m
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+# CONFIG_RTL8192E is not set
+# CONFIG_RTL8723BS is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS5208 is not set
+# CONFIG_VT6655 is not set
+# CONFIG_VT6656 is not set
+# CONFIG_FB_SM750 is not set
+# CONFIG_STAGING_MEDIA is not set
+# CONFIG_STAGING_BOARD is not set
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_FB_TFT is not set
+# CONFIG_KS7010 is not set
+# CONFIG_PI433 is not set
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_FIELDBUS_DEV is not set
+# CONFIG_QLGE is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_GOLDFISH is not set
+# CONFIG_CHROME_PLATFORMS is not set
+# CONFIG_MELLANOX_PLATFORM is not set
+# CONFIG_SURFACE_PLATFORMS is not set
+CONFIG_APPLE_PLATFORMS=y
+CONFIG_APPLE_SMC=y
+CONFIG_APPLE_SMC_RTKIT=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Clock driver for ARM Reference designs
+#
+# CONFIG_CLK_ICST is not set
+# CONFIG_CLK_SP810 is not set
+# end of Clock driver for ARM Reference designs
+
+# CONFIG_LMK04832 is not set
+CONFIG_COMMON_CLK_APPLE_NCO=y
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_SCMI is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
+# CONFIG_COMMON_CLK_XGENE is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_RS9_PCIE is not set
+# CONFIG_COMMON_CLK_SI521XX is not set
+# CONFIG_COMMON_CLK_VC3 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_VC7 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+# CONFIG_XILINX_VCU is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+# end of Clock Source drivers
+
+# CONFIG_MAILBOX is not set
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IO_PGTABLE=y
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+CONFIG_IOMMU_IO_PGTABLE_DART=y
+# end of Generic IOMMU Pagetable Support
+
+# CONFIG_IOMMU_DEBUGFS is not set
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+# CONFIG_IOMMUFD is not set
+CONFIG_APPLE_DART=y
+# CONFIG_ARM_SMMU is not set
+# CONFIG_ARM_SMMU_V3 is not set
+# CONFIG_VIRTIO_IOMMU 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
+
+#
+# Apple SoC drivers
+#
+CONFIG_APPLE_PMGR_PWRSTATE=y
+CONFIG_APPLE_PMGR_MISC=y
+CONFIG_APPLE_MBOX=y
+CONFIG_APPLE_RTKIT=y
+CONFIG_APPLE_RTKIT_HELPER=y
+CONFIG_APPLE_SART=y
+CONFIG_APPLE_DOCKCHANNEL=y
+# end of Apple SoC drivers
+
+#
+# Broadcom SoC drivers
+#
+# CONFIG_SOC_BRCMSTB is not set
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# CONFIG_QUICC_ENGINE is not set
+# CONFIG_FSL_RCPM is not set
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# fujitsu SoC drivers
+#
+# end of fujitsu SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+#
+# Enable LiteX SoC Builder specific drivers
+#
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# end of Enable LiteX SoC Builder specific drivers
+
+# CONFIG_WPCM450_SOC is not set
+
+#
+# Qualcomm SoC drivers
+#
+CONFIG_QCOM_QMI_HELPERS=m
+# end of Qualcomm SoC drivers
+
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# end of Xilinx SoC drivers
+# end of SOC (System On Chip) specific Drivers
+
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+CONFIG_DEVFREQ_GOV_PERFORMANCE=m
+CONFIG_DEVFREQ_GOV_POWERSAVE=m
+CONFIG_DEVFREQ_GOV_USERSPACE=m
+# CONFIG_DEVFREQ_GOV_PASSIVE is not set
+
+#
+# DEVFREQ Drivers
+#
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_FSA9480 is not set
+# CONFIG_EXTCON_GPIO is not set
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_PTN5150 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
+# CONFIG_EXTCON_USBC_TUSB320 is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_NTB is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_APPLE=m
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_CLK is not set
+# CONFIG_PWM_DWC is not set
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_PCA9685 is not set
+# CONFIG_PWM_XILINX is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+# CONFIG_AL_FIC is not set
+# CONFIG_XILINX_INTC is not set
+CONFIG_PARTITION_PERCPU=y
+CONFIG_APPLE_AIC=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SCMI=y
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_TI_TPS380X is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+# CONFIG_PHY_CAN_TRANSCEIVER is not set
+CONFIG_PHY_APPLE_ATC=y
+CONFIG_PHY_APPLE_DPTX=y
+
+#
+# PHY drivers for Broadcom platforms
+#
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# end of PHY drivers for Broadcom platforms
+
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_DPHY_RX is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_LAN966X_SERDES is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_QCOM_USB_HS is not set
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+# CONFIG_PHY_TUSB1210 is not set
+# end of PHY Subsystem
+
+CONFIG_POWERCAP=y
+# CONFIG_IDLE_INJECT is not set
+# CONFIG_ARM_SCMI_POWERCAP is not set
+# CONFIG_DTPM is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+# CONFIG_ARM_CCI_PMU is not set
+# CONFIG_ARM_CCN is not set
+# CONFIG_ARM_CMN is not set
+CONFIG_ARM_PMU=y
+# CONFIG_ARM_SMMU_V3_PMU is not set
+CONFIG_ARM_PMUV3=y
+# CONFIG_ARM_DSU_PMU is not set
+# CONFIG_ARM_SPE_PMU is not set
+CONFIG_APPLE_M1_CPU_PMU=y
+# CONFIG_HISI_PCIE_PMU is not set
+# CONFIG_HNS3_PMU is not set
+# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set
+# end of Performance monitor support
+
+CONFIG_RAS=y
+# CONFIG_USB4 is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+CONFIG_DAX=y
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+
+#
+# Layout Types
+#
+# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set
+# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set
+# end of Layout Types
+
+CONFIG_NVMEM_APPLE_EFUSES=y
+CONFIG_NVMEM_RMEM=m
+CONFIG_NVMEM_SPMI_MFD=y
+# CONFIG_NVMEM_SPMI_SDAM is not set
+
+#
+# HW tracing support
+#
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# CONFIG_HISI_PTT is not set
+# end of HW tracing support
+
+# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+# CONFIG_TEE is not set
+CONFIG_MULTIPLEXER=y
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MUX_ADG792A is not set
+# CONFIG_MUX_ADGS1408 is not set
+CONFIG_MUX_APPLE_DPXBAR=m
+# CONFIG_MUX_GPIO is not set
+# CONFIG_MUX_MMIO is not set
+# end of Multiplexer drivers
+
+CONFIG_PM_OPP=y
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# CONFIG_PECI is not set
+# CONFIG_HTE is not set
+# CONFIG_CDX_BUS is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+CONFIG_BUFFER_HEAD=y
+CONFIG_LEGACY_DIRECT_IO=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=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=y
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZ4HC=y
+CONFIG_F2FS_FS_ZSTD=y
+# CONFIG_F2FS_IOSTAT is not set
+# CONFIG_F2FS_UNFAIR_RWSEM is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+# CONFIG_FS_VERITY is not set
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS_FS is not set
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_VIRTIO_FS=m
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+# CONFIG_OVERLAY_FS_DEBUG is not set
+
+#
+# Caches
+#
+CONFIG_NETFS_SUPPORT=m
+# CONFIG_NETFS_STATS is not set
+# CONFIG_FSCACHE is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/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_EXFAT_FS=m
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+# CONFIG_NTFS3_LZX_XPRESS is not set
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_TMPFS_INODE64 is not set
+# CONFIG_TMPFS_QUOTA is not set
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_EFIVAR_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_ECRYPT_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_CRAMFS is not set
+CONFIG_SQUASHFS=y
+# CONFIG_SQUASHFS_FILE_CACHE is not set
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+CONFIG_SQUASHFS_DECOMP_MULTI=y
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
+CONFIG_SQUASHFS_MOUNT_DECOMP_THREADS=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
+# 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=y
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
+CONFIG_PSTORE_COMPRESS=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+# CONFIG_PSTORE_BLK is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+CONFIG_UFS_FS_WRITE=y
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EROFS_FS=m
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_ZIP=y
+# CONFIG_EROFS_FS_ZIP_LZMA is not set
+# CONFIG_EROFS_FS_ZIP_DEFLATE is not set
+# CONFIG_EROFS_FS_PCPU_KTHREAD is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_1_MIGRATION=y
+CONFIG_NFS_V4_SECURITY_LABEL=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+CONFIG_NFS_V4_2_READ_PLUS=y
+CONFIG_NFSD=m
+# CONFIG_NFSD_V2 is not set
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_SCSILAYOUT=y
+CONFIG_NFSD_FLEXFILELAYOUT=y
+CONFIG_NFSD_V4_2_INTER_SSC=y
+CONFIG_NFSD_V4_SECURITY_LABEL=y
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_V4_2_SSC_HELPER=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
+# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 is not set
+# CONFIG_SUNRPC_DEBUG is not set
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FS_POSIX_ACL=y
+# CONFIG_CEPH_FS_SECURITY_LABEL is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SWN_UPCALL=y
+CONFIG_SMB_SERVER=m
+CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
+# CONFIG_SMB_SERVER_KERBEROS5 is not set
+CONFIG_SMBFS=m
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_9P_FS=m
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+# 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=m
+# 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=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+# CONFIG_NLS_ISO8859_3 is not set
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+# 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=m
+# 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=m
+CONFIG_NLS_UCS2_UTILS=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_REQUEST_CACHE is not set
+CONFIG_PERSISTENT_KEYRINGS=y
+# CONFIG_TRUSTED_KEYS is not set
+CONFIG_ENCRYPTED_KEYS=y
+# CONFIG_USER_DECRYPTED_DATA is not set
+CONFIG_KEY_DH_OPERATIONS=y
+# CONFIG_KEY_NOTIFICATIONS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_NETWORK is not set
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_FORTIFY_SOURCE 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_SECURITY_LANDLOCK is not set
+# CONFIG_INTEGRITY is not set
+# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM=""
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
+# end of Memory initialization
+
+#
+# Hardening of kernel data structures
+#
+# CONFIG_LIST_HARDENED is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Hardening of kernel data structures
+
+CONFIG_RANDSTRUCT_NONE=y
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_XOR_BLOCKS=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_SIG2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+# end of Crypto core or helper
+
+#
+# Public-key cryptography
+#
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_DH=y
+# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+# CONFIG_CRYPTO_ECDSA is not set
+CONFIG_CRYPTO_ECRDSA=m
+# CONFIG_CRYPTO_SM2 is not set
+CONFIG_CRYPTO_CURVE25519=m
+# end of Public-key cryptography
+
+#
+# Block ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARIA is not set
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_SM4_GENERIC=m
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+# end of Block ciphers
+
+#
+# Length-preserving ciphers and modes
+#
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CFB is not set
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_HCTR2 is not set
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_OFB is not set
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_NHPOLY1305=m
+# end of Length-preserving ciphers and modes
+
+#
+# AEAD (authenticated encryption with associated data) ciphers
+#
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GENIV=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ESSIV=m
+# end of AEAD (authenticated encryption with associated data) ciphers
+
+#
+# Hashes, digests, and MACs
+#
+CONFIG_CRYPTO_BLAKE2B=y
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA3=y
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_SM3_GENERIC=m
+CONFIG_CRYPTO_STREEBOG=m
+# CONFIG_CRYPTO_VMAC is not set
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_XXHASH=y
+# end of Hashes, digests, and MACs
+
+#
+# CRCs (cyclic redundancy checks)
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRCT10DIF=y
+# end of CRCs (cyclic redundancy checks)
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+# 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=y
+# end of Compression
+
+#
+# Random number generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+CONFIG_CRYPTO_DRBG_HASH=y
+CONFIG_CRYPTO_DRBG_CTR=y
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set
+CONFIG_CRYPTO_KDF800108_CTR=y
+# end of Random number generation
+
+#
+# Userspace interface
+#
+CONFIG_CRYPTO_USER_API=y
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
+CONFIG_CRYPTO_USER_API_AEAD=y
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+# CONFIG_CRYPTO_STATS is not set
+# end of Userspace interface
+
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_CHACHA20_NEON=m
+
+#
+# Accelerated Cryptographic Algorithms for CPU (arm64)
+#
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_POLY1305_NEON=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA256_ARM64=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_ARM64=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+# CONFIG_CRYPTO_SM3_NEON is not set
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set
+CONFIG_CRYPTO_AES_ARM64=m
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set
+# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set
+# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set
+# end of Accelerated Cryptographic Algorithms for CPU (arm64)
+
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+CONFIG_CRYPTO_DEV_CCP=y
+CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_SP_CCP=y
+CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
+CONFIG_CRYPTO_DEV_NITROX=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
+# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_C62X is not set
+# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
+# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
+# CONFIG_CRYPTO_DEV_VIRTIO is not set
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+CONFIG_CRYPTO_DEV_CCREE=m
+# CONFIG_CRYPTO_DEV_HISI_SEC is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
+# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
+
+#
+# Certificates for signature checking
+#
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# end of Certificates for signature checking
+
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=y
+CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_LINEAR_RANGES=y
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_CORDIC=m
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
+# CONFIG_INDIRECT_PIO is not set
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_GF128MUL=m
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
+CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+# end of Crypto library routines
+
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC64_ROCKSOFT is not set
+CONFIG_CRC_ITU_T=m
+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=y
+# CONFIG_CRC8 is not set
+CONFIG_XXHASH=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4HC_COMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+# CONFIG_XZ_DEC_MICROLZMA is not set
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_ZSTD=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_INTERVAL_TREE=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_DMA_OPS=y
+CONFIG_NEED_SG_DMA_FLAGS=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_SWIOTLB=y
+# CONFIG_SWIOTLB_DYNAMIC is not set
+CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
+# CONFIG_DMA_RESTRICTED_POOL is not set
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_DIRECT_REMAP=y
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_DMA_MAP_BENCHMARK is not set
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_CLZ_TAB=y
+CONFIG_IRQ_POLL=y
+CONFIG_MPILIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_6x10 is not set
+CONFIG_FONT_10x18=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+CONFIG_FONT_TER16x32=y
+# CONFIG_FONT_6x8 is not set
+CONFIG_SG_POOL=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
+CONFIG_SBITMAP=y
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_AS_HAS_NON_CONST_LEB128=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_FS_ALLOW_ALL=y
+# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
+# CONFIG_DEBUG_FS_ALLOW_NONE is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
+# end of Generic Kernel Debugging Instruments
+
+#
+# Networking Debugging
+#
+# end of Networking Debugging
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_PAGE_TABLE_CHECK is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_ARCH_HAS_DEBUG_WX=y
+# CONFIG_DEBUG_WX is not set
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_PER_VMA_LOCK_STATS is not set
+# CONFIG_SHRINKER_DEBUG is not set
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+# CONFIG_DEBUG_VM_PGTABLE is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_KASAN_SW_TAGS=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+CONFIG_HAVE_ARCH_KFENCE=y
+# CONFIG_KFENCE is not set
+# end of Memory Debugging
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_INFO=y
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_DEBUG_IRQFLAGS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+
+#
+# Debug kernel data structures
+#
+# end of Debug kernel data structures
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=21000
+# CONFIG_RCU_CPU_STALL_CPUTIME is not set
+# end of RCU Debugging
+
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=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_SAMPLES is not set
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
+
+#
+# arm64 Debugging
+#
+# CONFIG_PID_IN_CONTEXTIDR is not set
+# CONFIG_ARM64_RELOC_TEST is not set
+# CONFIG_CORESIGHT is not set
+# end of arm64 Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_ARCH_USE_MEMTEST=y
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+
+#
+# Rust hacking
+#
+# CONFIG_RUST_DEBUG_ASSERTIONS is not set
+CONFIG_RUST_OVERFLOW_CHECKS=y
+# CONFIG_RUST_BUILD_ASSERT_ALLOW is not set
+# end of Rust hacking
+# end of Kernel hacking
diff --git a/testing/linux-edge/APKBUILD b/testing/linux-edge/APKBUILD
deleted file mode 100644
index 163f0780c2b..00000000000
--- a/testing/linux-edge/APKBUILD
+++ /dev/null
@@ -1,222 +0,0 @@
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-
-_flavor=edge
-pkgname=linux-${_flavor}
-# NOTE: this kernel is intended for testing
-# please resist urge to upgrade it blindly
-pkgver=5.6.15
-case $pkgver in
- *.*.*) _kernver=${pkgver%.*};;
- *.*) _kernver=$pkgver;;
-esac
-pkgrel=1
-pkgdesc="Linux latest stable kernel"
-url="https://www.kernel.org"
-depends="mkinitfs"
-_depends_dev="perl gmp-dev elfutils-dev bash flex bison"
-makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any openssl-dev
- diffutils findutils"
-options="!strip"
-_config=${config:-config-edge.${CARCH}}
-install=
-
-subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
-source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz"
-case $pkgver in
- *.*.0) source="$source";;
- *.*.*) source="$source
- https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz" ;;
-esac
-
- source="$source
- config-edge.aarch64
- config-edge.armv7
- config-edge.x86_64
- "
-
-arch="armv7 aarch64 x86_64"
-license="GPL-2.0"
-
-_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
-
-_carch=${CARCH}
-case "$_carch" in
-aarch64*) _carch="arm64" ;;
-arm*) _carch="arm" ;;
-esac
-
-prepare() {
- local _patch_failed=
- cd "$srcdir"/linux-$_kernver
- case $pkgver in
- *.*.0);;
- *)
- msg "Applying patch-$pkgver.xz"
- unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N ;;
- esac
-
- # 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 include/config/kernel.release \
- "$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
-}
-
-# main flavor installs in $pkgdir
-package() {
- depends="$depends linux-firmware-any"
-
- _package edge "$pkgdir"
-}
-
-# subflavors install in $subpkgdir
-virt() {
- _package virt "$subpkgdir"
-}
-
-_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="80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 linux-5.6.tar.xz
-e1c882595806f0bceaf2341ebb569a8b28706c7bd5224f2cd780d6fe31562286fa134cca8381ec3ce3ce481847684e29c580a1b24fef7985863683ff6544dc81 patch-5.6.15.xz
-02ea0b1caaf544a10b9a28e9cf0df4c436846c8ac95f823929f5790a762803f08a5aa8d45255c41797bc68bc560883d76a3823cd2f5e3bcabf3b71d1a2f42863 config-edge.aarch64
-a6cb6b2b88b6bca77ecb9c57c6edb08d57ca3ab56a2808225f13ea0c1d3151dec68329e13636e3c894f203f6d2685ad5f52582b2f57553a746b252c6caa8cc9f config-edge.armv7
-db96086cd3b7e26a507909ea261994ba9cd572f22a4516deb95d125fecfa7355cfe616e6c80780097f8fd89888bbb7aeef5616e54059064b1c6966d67dd5a441 config-edge.x86_64"
diff --git a/testing/linux-edge/config-edge.aarch64 b/testing/linux-edge/config-edge.aarch64
deleted file mode 100644
index 3fb7ec98ec3..00000000000
--- a/testing/linux-edge/config-edge.aarch64
+++ /dev/null
@@ -1,8927 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 5.6.15 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_TABLE_SORT=y
-CONFIG_THREAD_INFO_IN_TASK=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=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# end of IRQ subsystem
-
-CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# 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 is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
-CONFIG_PREEMPTION=y
-
-#
-# 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=y
-CONFIG_TASK_DELAY_ACCT=y
-# CONFIG_TASK_XACCT 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_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_IKCONFIG=m
-CONFIG_IKCONFIG_PROC=y
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=18
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_GENERIC_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_CC_HAS_INT128=y
-CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_NUMA_BALANCING=y
-CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-CONFIG_MEMCG_SWAP_ENABLED=y
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CPUSETS=y
-# CONFIG_PROC_PID_CPUSET is not set
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_CHECKPOINT_RESTORE is not set
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_RD_LZ4=y
-CONFIG_BOOT_CONFIG=y
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_BPF=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-CONFIG_SYSFS_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_HAVE_FUTEX_CMPXCHG=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_BASE_RELATIVE=y
-# CONFIG_BPF_SYSCALL is not set
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-# CONFIG_USERFAULTFD is not set
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_RSEQ=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-# CONFIG_SLAB_FREELIST_HARDENED is not set
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-# CONFIG_PROFILING is not set
-# end of General setup
-
-CONFIG_ARM64=y
-CONFIG_64BIT=y
-CONFIG_MMU=y
-CONFIG_ARM64_PAGE_SHIFT=12
-CONFIG_ARM64_CONT_SHIFT=4
-CONFIG_ARCH_MMAP_RND_BITS_MIN=18
-CONFIG_ARCH_MMAP_RND_BITS_MAX=33
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CSUM=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_ZONE_DMA32=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_SMP=y
-CONFIG_KERNEL_MODE_NEON=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=4
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_ARCH_PROC_KCORE_TEXT=y
-
-#
-# Platform selection
-#
-# CONFIG_ARCH_ACTIONS is not set
-# CONFIG_ARCH_AGILEX is not set
-CONFIG_ARCH_SUNXI=y
-# CONFIG_ARCH_ALPINE is not set
-CONFIG_ARCH_BCM2835=y
-# CONFIG_ARCH_BCM_IPROC is not set
-CONFIG_ARCH_BERLIN=y
-# CONFIG_ARCH_BITMAIN is not set
-# CONFIG_ARCH_BRCMSTB is not set
-CONFIG_ARCH_EXYNOS=y
-# CONFIG_ARCH_K3 is not set
-CONFIG_ARCH_LAYERSCAPE=y
-# CONFIG_ARCH_LG1K is not set
-CONFIG_ARCH_HISI=y
-CONFIG_ARCH_MEDIATEK=y
-# CONFIG_ARCH_MESON is not set
-CONFIG_ARCH_MVEBU=y
-# CONFIG_ARCH_MXC is not set
-CONFIG_ARCH_QCOM=y
-# CONFIG_ARCH_REALTEK is not set
-# CONFIG_ARCH_RENESAS is not set
-CONFIG_ARCH_ROCKCHIP=y
-# CONFIG_ARCH_S32 is not set
-CONFIG_ARCH_SEATTLE=y
-CONFIG_ARCH_STRATIX10=y
-CONFIG_ARCH_SYNQUACER=y
-CONFIG_ARCH_TEGRA=y
-CONFIG_ARCH_SPRD=y
-CONFIG_ARCH_THUNDER=y
-CONFIG_ARCH_THUNDER2=y
-# CONFIG_ARCH_UNIPHIER is not set
-CONFIG_ARCH_VEXPRESS=y
-CONFIG_ARCH_XGENE=y
-# CONFIG_ARCH_ZX is not set
-CONFIG_ARCH_ZYNQMP=y
-# end of Platform selection
-
-#
-# Kernel Features
-#
-
-#
-# ARM errata workarounds via the alternatives framework
-#
-CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
-CONFIG_ARM64_ERRATUM_826319=y
-CONFIG_ARM64_ERRATUM_827319=y
-CONFIG_ARM64_ERRATUM_824069=y
-CONFIG_ARM64_ERRATUM_819472=y
-CONFIG_ARM64_ERRATUM_832075=y
-CONFIG_ARM64_ERRATUM_834220=y
-CONFIG_ARM64_ERRATUM_845719=y
-CONFIG_ARM64_ERRATUM_843419=y
-CONFIG_ARM64_ERRATUM_1024718=y
-CONFIG_ARM64_ERRATUM_1418040=y
-CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT_VHE=y
-CONFIG_ARM64_ERRATUM_1165522=y
-CONFIG_ARM64_ERRATUM_1530923=y
-CONFIG_ARM64_ERRATUM_1286807=y
-CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT_NVHE=y
-CONFIG_ARM64_ERRATUM_1319367=y
-CONFIG_ARM64_ERRATUM_1463225=y
-CONFIG_ARM64_ERRATUM_1542419=y
-CONFIG_CAVIUM_ERRATUM_22375=y
-CONFIG_CAVIUM_ERRATUM_23144=y
-CONFIG_CAVIUM_ERRATUM_23154=y
-CONFIG_CAVIUM_ERRATUM_27456=y
-CONFIG_CAVIUM_ERRATUM_30115=y
-CONFIG_CAVIUM_TX2_ERRATUM_219=y
-CONFIG_QCOM_FALKOR_ERRATUM_1003=y
-CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
-CONFIG_QCOM_FALKOR_ERRATUM_1009=y
-CONFIG_QCOM_QDF2400_ERRATUM_0065=y
-CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
-CONFIG_HISILICON_ERRATUM_161600802=y
-CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
-CONFIG_FUJITSU_ERRATUM_010001=y
-# end of ARM errata workarounds via the alternatives framework
-
-CONFIG_ARM64_4K_PAGES=y
-# CONFIG_ARM64_16K_PAGES is not set
-# CONFIG_ARM64_64K_PAGES is not set
-# CONFIG_ARM64_VA_BITS_39 is not set
-CONFIG_ARM64_VA_BITS_48=y
-CONFIG_ARM64_VA_BITS=48
-CONFIG_ARM64_PA_BITS_48=y
-CONFIG_ARM64_PA_BITS=48
-# CONFIG_CPU_BIG_ENDIAN is not set
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_SMT=y
-CONFIG_NR_CPUS=256
-CONFIG_HOTPLUG_CPU=y
-CONFIG_NUMA=y
-CONFIG_NODES_SHIFT=9
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_HOLES_IN_ZONE=y
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-CONFIG_SCHED_HRTICK=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_SYS_SUPPORTS_HUGETLBFS=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_SECCOMP=y
-CONFIG_PARAVIRT=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-# CONFIG_KEXEC is not set
-# CONFIG_KEXEC_FILE is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_XEN_DOM0=y
-CONFIG_XEN=y
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_UNMAP_KERNEL_AT_EL0=y
-CONFIG_HARDEN_BRANCH_PREDICTOR=y
-CONFIG_HARDEN_EL2_VECTORS=y
-CONFIG_ARM64_SSBD=y
-CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
-# CONFIG_ARM64_SW_TTBR0_PAN is not set
-CONFIG_ARM64_TAGGED_ADDR_ABI=y
-CONFIG_COMPAT=y
-CONFIG_KUSER_HELPERS=y
-CONFIG_ARMV8_DEPRECATED=y
-CONFIG_SWP_EMULATION=y
-CONFIG_CP15_BARRIER_EMULATION=y
-# CONFIG_SETEND_EMULATION is not set
-
-#
-# ARMv8.1 architectural features
-#
-CONFIG_ARM64_HW_AFDBM=y
-CONFIG_ARM64_PAN=y
-CONFIG_ARM64_LSE_ATOMICS=y
-CONFIG_ARM64_USE_LSE_ATOMICS=y
-CONFIG_ARM64_VHE=y
-# end of ARMv8.1 architectural features
-
-#
-# ARMv8.2 architectural features
-#
-CONFIG_ARM64_UAO=y
-# CONFIG_ARM64_PMEM is not set
-CONFIG_ARM64_RAS_EXTN=y
-CONFIG_ARM64_CNP=y
-# end of ARMv8.2 architectural features
-
-#
-# ARMv8.3 architectural features
-#
-CONFIG_ARM64_PTR_AUTH=y
-# end of ARMv8.3 architectural features
-
-#
-# ARMv8.5 architectural features
-#
-CONFIG_ARM64_E0PD=y
-CONFIG_ARCH_RANDOM=y
-# end of ARMv8.5 architectural features
-
-CONFIG_ARM64_SVE=y
-CONFIG_ARM64_MODULE_PLTS=y
-# CONFIG_ARM64_PSEUDO_NMI is not set
-# CONFIG_RANDOMIZE_BASE is not set
-CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
-CONFIG_STACKPROTECTOR_PER_TASK=y
-# end of Kernel Features
-
-#
-# Boot options
-#
-CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
-CONFIG_CMDLINE=""
-CONFIG_EFI_STUB=y
-CONFIG_EFI=y
-CONFIG_DMI=y
-# end of Boot options
-
-CONFIG_SYSVIPC_COMPAT=y
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-# CONFIG_PM_WAKELOCKS is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_CLK=y
-CONFIG_PM_GENERIC_DOMAINS=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
-CONFIG_PM_GENERIC_DOMAINS_OF=y
-CONFIG_CPU_PM=y
-# CONFIG_ENERGY_MODEL is not set
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_HIBERNATION_HEADER=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# end of Power management options
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-# CONFIG_CPU_IDLE_GOV_TEO is not set
-CONFIG_DT_IDLE_STATES=y
-
-#
-# ARM CPU Idle Drivers
-#
-CONFIG_ARM_CPUIDLE=y
-# CONFIG_ARM_PSCI_CPUIDLE is not set
-# end of ARM CPU Idle Drivers
-# end of CPU Idle
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=m
-CONFIG_CPUFREQ_DT_PLATDEV=y
-# CONFIG_ACPI_CPPC_CPUFREQ is not set
-# CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM is not set
-CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
-# CONFIG_ARM_ARMADA_8K_CPUFREQ is not set
-# CONFIG_ARM_MEDIATEK_CPUFREQ is not set
-# CONFIG_ARM_QCOM_CPUFREQ_HW is not set
-CONFIG_ARM_SCMI_CPUFREQ=m
-CONFIG_ARM_TEGRA20_CPUFREQ=y
-CONFIG_ARM_TEGRA124_CPUFREQ=y
-CONFIG_ARM_TEGRA186_CPUFREQ=m
-# CONFIG_QORIQ_CPUFREQ is not set
-# end of CPU Frequency scaling
-# end of CPU Power Management
-
-#
-# Firmware Drivers
-#
-CONFIG_ARM_SCMI_PROTOCOL=y
-CONFIG_ARM_SCMI_POWER_DOMAIN=m
-# CONFIG_ARM_SCPI_PROTOCOL is not set
-CONFIG_ARM_SDE_INTERFACE=y
-CONFIG_DMIID=y
-# CONFIG_DMI_SYSFS is not set
-# CONFIG_ISCSI_IBFT is not set
-CONFIG_RASPBERRYPI_FIRMWARE=m
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_INTEL_STRATIX10_SERVICE is not set
-CONFIG_QCOM_SCM=y
-# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
-# CONFIG_TURRIS_MOX_RWTM is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_PSCI_CHECKER is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=m
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_PARAMS_FROM_FDT=y
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-CONFIG_EFI_ARMSTUB=y
-CONFIG_EFI_ARMSTUB_DTB_LOADER=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_EFI_EARLYCON=y
-
-#
-# Tegra firmware driver
-#
-CONFIG_TEGRA_IVC=y
-CONFIG_TEGRA_BPMP=y
-# end of Tegra firmware driver
-
-#
-# Zynq MPSoC Firmware Drivers
-#
-CONFIG_ZYNQMP_FIRMWARE=y
-# end of Zynq MPSoC Firmware Drivers
-# end of Firmware Drivers
-
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_GENERIC_GSI=y
-CONFIG_ACPI_CCA_REQUIRED=y
-# CONFIG_ACPI_DEBUGGER is not set
-CONFIG_ACPI_SPCR_TABLE=y
-CONFIG_ACPI_EC_DEBUGFS=y
-CONFIG_ACPI_AC=y
-CONFIG_ACPI_BATTERY=y
-CONFIG_ACPI_BUTTON=m
-CONFIG_ACPI_FAN=m
-CONFIG_ACPI_TAD=m
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_MCFG=y
-CONFIG_ACPI_PROCESSOR=m
-CONFIG_ACPI_IPMI=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-CONFIG_ACPI_THERMAL=m
-CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
-CONFIG_ACPI_TABLE_UPGRADE=y
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HED=m
-# CONFIG_ACPI_BGRT is not set
-CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y
-CONFIG_ACPI_NUMA=y
-# CONFIG_ACPI_HMAT is not set
-CONFIG_HAVE_ACPI_APEI=y
-# CONFIG_ACPI_APEI is not set
-CONFIG_ACPI_WATCHDOG=y
-CONFIG_PMIC_OPREGION=y
-CONFIG_ACPI_CONFIGFS=m
-CONFIG_ACPI_IORT=y
-CONFIG_ACPI_GTDT=y
-CONFIG_ACPI_PPTT=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_IRQFD=y
-CONFIG_HAVE_KVM_IRQ_ROUTING=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_MMIO=y
-CONFIG_HAVE_KVM_MSI=y
-CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
-CONFIG_KVM_VFIO=y
-CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_HAVE_KVM_IRQ_BYPASS=y
-CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
-CONFIG_IRQ_BYPASS_MANAGER=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
-CONFIG_KVM_ARM_HOST=y
-CONFIG_KVM_INDIRECT_VECTORS=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-CONFIG_ARM64_CRYPTO=y
-CONFIG_CRYPTO_SHA256_ARM64=m
-CONFIG_CRYPTO_SHA512_ARM64=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_SM4_ARM64_CE=m
-CONFIG_CRYPTO_GHASH_ARM64_CE=m
-CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64=m
-CONFIG_CRYPTO_AES_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
-CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
-CONFIG_CRYPTO_CHACHA20_NEON=m
-CONFIG_CRYPTO_POLY1305_NEON=m
-CONFIG_CRYPTO_NHPOLY1305_NEON=m
-CONFIG_CRYPTO_AES_ARM64_BS=m
-
-#
-# General architecture-dependent options
-#
-# CONFIG_KPROBES is not set
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_KEEPINITRD=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
-CONFIG_MMU_GATHER_TABLE_FREE=y
-CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP_FILTER=y
-CONFIG_HAVE_ARCH_STACKLEAK=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_ARCH_HUGE_VMAP=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_ARCH_MMAP_RND_BITS=18
-CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
-CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
-CONFIG_HAVE_COPY_THREAD_TLS=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_COMPAT_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_HAVE_ARCH_VMAP_STACK=y
-CONFIG_VMAP_STACK=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_PLUGIN_HOSTCC=""
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULE_SIG_FORMAT=y
-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=y
-# CONFIG_MODULE_SIG_FORCE is not set
-CONFIG_MODULE_SIG_ALL=y
-CONFIG_MODULE_SIG_SHA1=y
-# CONFIG_MODULE_SIG_SHA224 is not set
-# CONFIG_MODULE_SIG_SHA256 is not set
-# CONFIG_MODULE_SIG_SHA384 is not set
-# CONFIG_MODULE_SIG_SHA512 is not set
-CONFIG_MODULE_SIG_HASH="sha1"
-# 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=y
-CONFIG_BLOCK=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=y
-# CONFIG_BLK_DEV_ZONED is not set
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
-# CONFIG_BLK_WBT is not set
-CONFIG_BLK_CGROUP_IOLATENCY=y
-# CONFIG_BLK_CGROUP_IOCOST is not set
-# CONFIG_BLK_SED_OPAL is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-# end of Partition Types
-
-CONFIG_BLOCK_COMPAT=y
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_MQ_RDMA=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=m
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=m
-# CONFIG_BFQ_GROUP_IOSCHED is not set
-# end of IO Schedulers
-
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_ELFCORE=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
-CONFIG_HAVE_FAST_GUP=y
-CONFIG_ARCH_KEEP_MEMBLOCK=y
-CONFIG_MEMORY_ISOLATION=y
-# CONFIG_MEMORY_HOTPLUG is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-CONFIG_CONTIG_ALLOC=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_BOUNCE=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_MEMORY_FAILURE is not set
-# CONFIG_TRANSPARENT_HUGEPAGE is not set
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-CONFIG_ZPOOL=y
-CONFIG_ZBUD=y
-CONFIG_Z3FOLD=y
-CONFIG_ZSMALLOC=y
-# CONFIG_PGTABLE_MAPPING is not set
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_ARCH_HAS_PTE_DEVMAP=y
-CONFIG_FRAME_VECTOR=y
-# 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_COMPAT_NETLINK_MESSAGES=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-# CONFIG_TLS is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_INTERFACE=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-# CONFIG_SMC is not set
-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=y
-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=y
-# CONFIG_IP_PIMSM_V1 is not set
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-# CONFIG_INET_ESP_OFFLOAD is not set
-# CONFIG_INET_ESPINTCP is not set
-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 is not set
-CONFIG_INET_DIAG_DESTROY=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-# CONFIG_INET6_ESP_OFFLOAD is not set
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=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 is not set
-# CONFIG_IPV6_SEG6_HMAC is not set
-# CONFIG_NETLABEL is not set
-CONFIG_MPTCP=y
-CONFIG_MPTCP_IPV6=y
-# CONFIG_MPTCP_HMAC_TEST is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NET_PTP_CLASSIFY=y
-CONFIG_NETWORK_PHY_TIMESTAMPING=y
-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_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-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=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-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=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=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_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_SET=m
-CONFIG_NF_TABLES_INET=y
-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_OBJREF is not set
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=m
-CONFIG_NFT_FIB_INET=m
-# CONFIG_NFT_XFRM is not set
-CONFIG_NFT_SOCKET=m
-CONFIG_NFT_OSF=m
-CONFIG_NFT_TPROXY=m
-# CONFIG_NFT_SYNPROXY is not set
-CONFIG_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-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_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_HL=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_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=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=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=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_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=m
-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=m
-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=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
-# 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=m
-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=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-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=y
-
-#
-# 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=m
-CONFIG_IP_VS_OVF=m
-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_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-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=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_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=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-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=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-# CONFIG_IP6_NF_SECURITY is not set
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-
-#
-# DECnet: Netfilter Configuration
-#
-CONFIG_DECNET_NF_GRABULATOR=m
-# end of DECnet: Netfilter Configuration
-
-CONFIG_NF_TABLES_BRIDGE=m
-# CONFIG_NFT_BRIDGE_META is not set
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
-# CONFIG_NF_CONNTRACK_BRIDGE is not set
-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 is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-# end of DCCP CCIDs Configuration
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-# CONFIG_RDS_RDMA is not set
-# CONFIG_RDS_TCP is not set
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-# CONFIG_TIPC_MEDIA_IB is not set
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_TIPC_CRYPTO=y
-CONFIG_TIPC_DIAG=m
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_NET_DSA=m
-# CONFIG_NET_DSA_TAG_AR9331 is not set
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-# CONFIG_NET_DSA_TAG_GSWIP is not set
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-# CONFIG_NET_DSA_TAG_MTK is not set
-# CONFIG_NET_DSA_TAG_KSZ is not set
-# CONFIG_NET_DSA_TAG_OCELOT is not set
-CONFIG_NET_DSA_TAG_QCA=m
-# CONFIG_NET_DSA_TAG_LAN9303 is not set
-# CONFIG_NET_DSA_TAG_SJA1105 is not set
-# CONFIG_NET_DSA_TAG_TRAILER is not set
-CONFIG_VLAN_8021Q=m
-# CONFIG_VLAN_8021Q_GVRP is not set
-CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-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
-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 is not set
-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
-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=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_SCH_ETS 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=m
-CONFIG_NET_CLS_MATCHALL=m
-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_CANID is not set
-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 is not set
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-# CONFIG_NET_ACT_MPLS is not set
-CONFIG_NET_ACT_VLAN=m
-# CONFIG_NET_ACT_BPF is not set
-CONFIG_NET_ACT_CONNMARK=m
-# CONFIG_NET_ACT_CTINFO is not set
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-# CONFIG_NET_ACT_CT is not set
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-# CONFIG_BATMAN_ADV_BATMAN_V is not set
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_BATMAN_ADV_SYSFS=y
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-CONFIG_NETLINK_DIAG=y
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=m
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-# CONFIG_HSR is not set
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NET_L3_MASTER_DEV=y
-# CONFIG_QRTR is not set
-CONFIG_NET_NCSI=y
-# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
-CONFIG_CGROUP_NET_PRIO=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_JIT is not set
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# end of Network testing
-# end of Networking options
-
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-# CONFIG_BAYCOM_PAR is not set
-CONFIG_YAM=m
-# end of AX.25 network device drivers
-
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-# CONFIG_CAN_J1939 is not set
-
-#
-# CAN Device Drivers
-#
-# CONFIG_CAN_VCAN is not set
-# CONFIG_CAN_VXCAN is not set
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_FLEXCAN is not set
-# CONFIG_CAN_GRCAN is not set
-# CONFIG_CAN_JANZ_ICAN3 is not set
-# CONFIG_CAN_KVASER_PCIEFD is not set
-# CONFIG_CAN_XILINXCAN is not set
-# CONFIG_CAN_C_CAN is not set
-# CONFIG_CAN_CC770 is not set
-# CONFIG_CAN_IFI_CANFD is not set
-# CONFIG_CAN_M_CAN is not set
-# CONFIG_CAN_PEAK_PCIEFD is not set
-# CONFIG_CAN_SJA1000 is not set
-# CONFIG_CAN_SOFTING is not set
-
-#
-# CAN SPI interfaces
-#
-# CONFIG_CAN_HI311X is not set
-# CONFIG_CAN_MCP251X is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-# CONFIG_CAN_8DEV_USB is not set
-# CONFIG_CAN_EMS_USB is not set
-# CONFIG_CAN_ESD_USB2 is not set
-# CONFIG_CAN_GS_USB is not set
-# CONFIG_CAN_KVASER_USB is not set
-# CONFIG_CAN_MCBA_USB is not set
-# CONFIG_CAN_PEAK_USB is not set
-# CONFIG_CAN_UCAN is not set
-# end of CAN USB interfaces
-
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# end of CAN Device Drivers
-
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-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_HS=y
-CONFIG_BT_LE=y
-# CONFIG_BT_6LOWPAN is not set
-CONFIG_BT_LEDS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
-CONFIG_BT_HCIBTUSB_BCM=y
-# CONFIG_BT_HCIBTUSB_MTK is not set
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-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_HCIVHCI=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-# CONFIG_BT_MTKSDIO is not set
-CONFIG_BT_QCOMSMD=m
-CONFIG_BT_HCIRSI=m
-# end of Bluetooth device drivers
-
-# CONFIG_AF_RXRPC is not set
-# CONFIG_AF_KCM is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_XEN is not set
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-CONFIG_NFC_NCI_UART=m
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_FDP=m
-CONFIG_NFC_FDP_I2C=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-CONFIG_NFC_PN533_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_MRVL_UART=m
-CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_MRVL_SPI=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST_NCI=m
-CONFIG_NFC_ST_NCI_I2C=m
-CONFIG_NFC_ST_NCI_SPI=m
-# CONFIG_NFC_NXP_NCI is not set
-CONFIG_NFC_S3FWRN5=m
-CONFIG_NFC_S3FWRN5_I2C=m
-# CONFIG_NFC_ST95HF is not set
-# end of Near Field Communication (NFC) devices
-
-# CONFIG_PSAMPLE is not set
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-# CONFIG_LWTUNNEL_BPF is not set
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=m
-CONFIG_ETHTOOL_NETLINK=y
-CONFIG_HAVE_EBPF_JIT=y
-
-#
-# Device Drivers
-#
-CONFIG_ARM_AMBA=y
-CONFIG_TEGRA_AHB=y
-CONFIG_HAVE_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_DOMAINS_GENERIC=y
-CONFIG_PCI_SYSCALL=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-# CONFIG_PCIEAER is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-CONFIG_PCIE_PTM=y
-# CONFIG_PCIE_BW is not set
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
-CONFIG_PCI_STUB=m
-CONFIG_PCI_PF_STUB=m
-CONFIG_PCI_ATS=y
-CONFIG_PCI_ECAM=y
-CONFIG_PCI_BRIDGE_EMUL=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-CONFIG_PCI_LABEL=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-# CONFIG_HOTPLUG_PCI_SHPC is not set
-
-#
-# PCI controller drivers
-#
-CONFIG_PCI_AARDVARK=y
-# CONFIG_PCIE_XILINX_NWL is not set
-# CONFIG_PCI_FTPCI100 is not set
-# CONFIG_PCI_TEGRA is not set
-CONFIG_PCI_HOST_COMMON=y
-CONFIG_PCI_HOST_GENERIC=y
-CONFIG_PCIE_XILINX=y
-CONFIG_PCI_XGENE=y
-CONFIG_PCI_XGENE_MSI=y
-# CONFIG_PCIE_ALTERA is not set
-CONFIG_PCI_HOST_THUNDER_PEM=y
-CONFIG_PCI_HOST_THUNDER_ECAM=y
-CONFIG_PCIE_ROCKCHIP=y
-CONFIG_PCIE_ROCKCHIP_HOST=y
-CONFIG_PCIE_MEDIATEK=m
-# CONFIG_PCIE_MOBIVEIL is not set
-# CONFIG_PCIE_BRCMSTB is not set
-
-#
-# DesignWare PCI Core Support
-#
-CONFIG_PCIE_DW=y
-CONFIG_PCIE_DW_HOST=y
-CONFIG_PCIE_DW_PLAT=y
-CONFIG_PCIE_DW_PLAT_HOST=y
-CONFIG_PCI_LAYERSCAPE=y
-# CONFIG_PCI_HISI is not set
-CONFIG_PCIE_QCOM=y
-CONFIG_PCIE_ARMADA_8K=y
-# CONFIG_PCIE_KIRIN is not set
-CONFIG_PCIE_HISI_STB=y
-# CONFIG_PCI_MESON is not set
-# CONFIG_PCIE_TEGRA194 is not set
-# CONFIG_PCIE_AL is not set
-# end of DesignWare PCI Core Support
-
-#
-# Cadence PCIe controllers support
-#
-CONFIG_PCIE_CADENCE=y
-CONFIG_PCIE_CADENCE_HOST=y
-CONFIG_PCIE_CADENCE_PLAT=y
-CONFIG_PCIE_CADENCE_PLAT_HOST=y
-# end of Cadence PCIe controllers support
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-CONFIG_PCI_SW_SWITCHTEC=m
-# end of PCI switch controller drivers
-
-# CONFIG_PCCARD is not set
-# CONFIG_RAPIDIO is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=m
-CONFIG_REGMAP_SPI=m
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-CONFIG_GENERIC_ARCH_TOPOLOGY=y
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-# CONFIG_BRCMSTB_GISB_ARB is not set
-# CONFIG_MOXTET is not set
-CONFIG_HISILICON_LPC=y
-# CONFIG_QCOM_EBI2 is not set
-# CONFIG_SIMPLE_PM_BUS is not set
-CONFIG_SUN50I_DE2_BUS=y
-CONFIG_SUNXI_RSB=m
-CONFIG_TEGRA_ACONNECT=m
-# CONFIG_TEGRA_GMI is not set
-CONFIG_VEXPRESS_CONFIG=y
-# CONFIG_FSL_MC_BUS is not set
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-# CONFIG_GNSS is not set
-CONFIG_MTD=m
-CONFIG_MTD_TESTS=m
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-# CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# 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=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
-CONFIG_MTD_PCI=m
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-CONFIG_MTD_PMC551_BUGFIX=y
-# CONFIG_MTD_PMC551_DEBUG is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-# CONFIG_MTD_MCHP23K256 is not set
-# CONFIG_MTD_SST25L is not set
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-# end of Self-contained MTD device drivers
-
-CONFIG_MTD_NAND_CORE=m
-CONFIG_MTD_ONENAND=m
-# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OTP=y
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=m
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
-# CONFIG_MTD_RAW_NAND is not set
-CONFIG_MTD_SPI_NAND=m
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-# CONFIG_MTD_SPI_NOR is not set
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-# CONFIG_MTD_UBI_BLOCK 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_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OF_RESOLVE=y
-CONFIG_OF_OVERLAY=y
-CONFIG_OF_NUMA=y
-CONFIG_PARPORT=m
-CONFIG_PARPORT_AX88796=m
-# CONFIG_PARPORT_1284 is not set
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_NULL_BLK is not set
-CONFIG_CDROM=m
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_WRITEBACK is not set
-CONFIG_BLK_DEV_UMEM=m
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SKD=m
-CONFIG_BLK_DEV_SX8=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=m
-# CONFIG_BLK_DEV_RBD is not set
-CONFIG_BLK_DEV_RSXX=m
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=m
-CONFIG_BLK_DEV_NVME=m
-CONFIG_NVME_MULTIPATH=y
-# CONFIG_NVME_HWMON is not set
-CONFIG_NVME_FABRICS=m
-CONFIG_NVME_RDMA=m
-# CONFIG_NVME_FC is not set
-# CONFIG_NVME_TCP is not set
-CONFIG_NVME_TARGET=m
-CONFIG_NVME_TARGET_LOOP=m
-CONFIG_NVME_TARGET_RDMA=m
-# CONFIG_NVME_TARGET_FC is not set
-# CONFIG_NVME_TARGET_TCP is not set
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-CONFIG_PHANTOM=m
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
-# CONFIG_QCOM_FASTRPC is not set
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_VEXPRESS_SYSCFG=y
-# CONFIG_PCI_ENDPOINT_TEST is not set
-# CONFIG_XILINX_SDFEC is not set
-CONFIG_MISC_RTSX=m
-CONFIG_PVPANIC=m
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-# CONFIG_EEPROM_IDT_89HPESX is not set
-# CONFIG_EEPROM_EE1004 is not set
-# end of EEPROM support
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# end of Texas Instruments shared transport line discipline
-
-CONFIG_SENSORS_LIS3_I2C=m
-
-#
-# Altera FPGA firmware download module (requires I2C)
-#
-CONFIG_ALTERA_STAPL=m
-
-#
-# Intel MIC & related support
-#
-# CONFIG_VOP_BUS is not set
-# end of Intel MIC & related support
-
-# CONFIG_GENWQE is not set
-# CONFIG_ECHO is not set
-# CONFIG_MISC_ALCOR_PCI is not set
-CONFIG_MISC_RTSX_PCI=m
-CONFIG_MISC_RTSX_USB=m
-# CONFIG_HABANA_AI is not set
-# end of Misc devices
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=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=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-CONFIG_AIC7XXX_DEBUG_ENABLE=y
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-CONFIG_AIC79XX_DEBUG_ENABLE=y
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_HISI_SAS=m
-CONFIG_SCSI_HISI_SAS_PCI=m
-CONFIG_SCSI_MVSAS=m
-CONFIG_SCSI_MVSAS_DEBUG=y
-CONFIG_SCSI_MVSAS_TASKLET=y
-CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_ARCMSR=m
-CONFIG_SCSI_ESAS2R=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_SCSI_HPTIOP=m
-# CONFIG_SCSI_MYRB is not set
-# CONFIG_SCSI_MYRS is not set
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-# CONFIG_SCSI_SNIC is not set
-CONFIG_SCSI_DMX3191D=m
-# CONFIG_SCSI_FDOMAIN_PCI is not set
-# CONFIG_SCSI_GDTH is not set
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-# CONFIG_SCSI_IPR_DUMP is not set
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
-# CONFIG_TCM_QLA2XXX_DEBUG is not set
-CONFIG_SCSI_QLA_ISCSI=m
-# CONFIG_QEDI is not set
-# CONFIG_QEDF is not set
-CONFIG_SCSI_LPFC=m
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_AM53C974=m
-CONFIG_SCSI_WD719X=m
-CONFIG_SCSI_DEBUG=m
-# CONFIG_SCSI_PMCRAID is not set
-CONFIG_SCSI_PM8001=m
-# CONFIG_SCSI_BFA_FC is not set
-CONFIG_SCSI_VIRTIO=m
-# CONFIG_SCSI_CHELSIO_FCOE is not set
-# CONFIG_SCSI_DH is not set
-# end of SCSI device support
-
-CONFIG_HAVE_PATA_PLATFORM=y
-CONFIG_ATA=m
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_ACPI=y
-# CONFIG_SATA_ZPODD is not set
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_MOBILE_LPM_POLICY=3
-CONFIG_SATA_AHCI_PLATFORM=m
-CONFIG_AHCI_CEVA=m
-# CONFIG_AHCI_MTK is not set
-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
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=m
-# CONFIG_SATA_DWC is not set
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_TOSHIBA=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_PLATFORM=m
-# CONFIG_PATA_OF_PLATFORM is not set
-CONFIG_PATA_RZ1000=m
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_PATA_ACPI=m
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_LEGACY=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-# CONFIG_MD_AUTODETECT is not set
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_UNSTRIPED=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_ERA is not set
-# CONFIG_DM_CLONE is not set
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-# CONFIG_DM_DUST is not set
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
-CONFIG_DM_VERITY_FEC=y
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_DM_INTEGRITY=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_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_ISCSI_TARGET_CXGB4=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_FIREWIRE_NOSY is not set
-# end of IEEE 1394 (FireWire) support
-
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-# CONFIG_NET_FC is not set
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-# CONFIG_IPVTAP is not set
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-# CONFIG_GTP is not set
-CONFIG_MACSEC=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_NTB_NETDEV=m
-CONFIG_TUN=m
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-# CONFIG_VSOCKMON is not set
-CONFIG_SUNGEM_PHY=m
-# CONFIG_ARCNET is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-# CONFIG_ATM_TCP is not set
-# CONFIG_ATM_LANAI is not set
-# CONFIG_ATM_ENI is not set
-# CONFIG_ATM_NICSTAR is not set
-# CONFIG_ATM_IDT77252 is not set
-# CONFIG_ATM_IA is not set
-# CONFIG_ATM_FORE200E is not set
-# CONFIG_ATM_HE is not set
-# CONFIG_ATM_SOLOS is not set
-
-#
-# Distributed Switch Architecture drivers
-#
-CONFIG_B53=m
-CONFIG_B53_SPI_DRIVER=m
-CONFIG_B53_MDIO_DRIVER=m
-CONFIG_B53_MMAP_DRIVER=m
-CONFIG_B53_SRAB_DRIVER=m
-# CONFIG_B53_SERDES is not set
-CONFIG_NET_DSA_BCM_SF2=m
-# CONFIG_NET_DSA_LOOP is not set
-# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
-# CONFIG_NET_DSA_MT7530 is not set
-# CONFIG_NET_DSA_MV88E6060 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
-CONFIG_NET_DSA_MV88E6XXX=m
-CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
-CONFIG_NET_DSA_MV88E6XXX_PTP=y
-# CONFIG_NET_DSA_AR9331 is not set
-# CONFIG_NET_DSA_SJA1105 is not set
-CONFIG_NET_DSA_QCA8K=m
-# CONFIG_NET_DSA_REALTEK_SMI is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
-# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
-# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-# CONFIG_ET131X is not set
-CONFIG_NET_VENDOR_ALACRITECH=y
-# CONFIG_SLICOSS is not set
-CONFIG_NET_VENDOR_ALLWINNER=y
-# CONFIG_SUN4I_EMAC is not set
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_ALTERA_TSE=m
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_ENA_ETHERNET=m
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_AMD8111_ETH=m
-CONFIG_PCNET32=m
-CONFIG_AMD_XGBE=m
-CONFIG_NET_XGENE=m
-CONFIG_NET_XGENE_V2=m
-CONFIG_NET_VENDOR_AQUANTIA=y
-# CONFIG_AQTION is not set
-CONFIG_NET_VENDOR_ARC=y
-# CONFIG_EMAC_ROCKCHIP is not set
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-# CONFIG_NET_VENDOR_AURORA is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_BCMGENET=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=m
-CONFIG_TIGON3_HWMON=y
-CONFIG_BNX2X=m
-CONFIG_BNX2X_SRIOV=y
-CONFIG_SYSTEMPORT=m
-CONFIG_BNXT=m
-CONFIG_BNXT_SRIOV=y
-CONFIG_BNXT_FLOWER_OFFLOAD=y
-CONFIG_BNXT_HWMON=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CADENCE=y
-CONFIG_MACB=m
-CONFIG_MACB_USE_HWSTAMP=y
-# CONFIG_MACB_PCI is not set
-CONFIG_NET_VENDOR_CAVIUM=y
-CONFIG_THUNDER_NIC_PF=m
-CONFIG_THUNDER_NIC_VF=m
-CONFIG_THUNDER_NIC_BGX=m
-CONFIG_THUNDER_NIC_RGX=m
-CONFIG_CAVIUM_PTP=m
-CONFIG_LIQUIDIO=m
-# CONFIG_LIQUIDIO_VF is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_LIB=m
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-# CONFIG_NET_VENDOR_CORTINA is not set
-CONFIG_DNET=m
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_BE2=y
-CONFIG_BE2NET_BE3=y
-CONFIG_BE2NET_LANCER=y
-CONFIG_BE2NET_SKYHAWK=y
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FREESCALE=y
-# CONFIG_FSL_FMAN is not set
-CONFIG_FSL_PQ_MDIO=m
-CONFIG_FSL_XGMAC_MDIO=m
-CONFIG_GIANFAR=m
-# CONFIG_FSL_ENETC is not set
-# CONFIG_FSL_ENETC_VF is not set
-# CONFIG_FSL_ENETC_MDIO is not set
-CONFIG_NET_VENDOR_GOOGLE=y
-# CONFIG_GVE is not set
-CONFIG_NET_VENDOR_HISILICON=y
-CONFIG_HIX5HD2_GMAC=m
-CONFIG_HISI_FEMAC=m
-CONFIG_HIP04_ETH=m
-# CONFIG_HI13X1_GMAC is not set
-CONFIG_HNS_MDIO=m
-CONFIG_HNS=m
-CONFIG_HNS_DSAF=m
-CONFIG_HNS_ENET=m
-# CONFIG_HNS3 is not set
-CONFIG_NET_VENDOR_HUAWEI=y
-CONFIG_HINIC=m
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBEVF=m
-CONFIG_I40E=m
-# CONFIG_I40EVF is not set
-CONFIG_ICE=m
-# CONFIG_FM10K is not set
-# CONFIG_IGC is not set
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_MVMDIO=m
-# CONFIG_MVNETA is not set
-# CONFIG_MVPP2 is not set
-CONFIG_PXA168_ETH=m
-CONFIG_SKGE=m
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-# CONFIG_OCTEONTX2_AF is not set
-# CONFIG_OCTEONTX2_PF is not set
-# CONFIG_NET_VENDOR_MEDIATEK is not set
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX4_CORE_GEN2=y
-CONFIG_MLX5_CORE=m
-# CONFIG_MLX5_FPGA is not set
-CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_EN_ARFS=y
-CONFIG_MLX5_EN_RXNFC=y
-CONFIG_MLX5_MPFS=y
-CONFIG_MLX5_ESWITCH=y
-# CONFIG_MLX5_CORE_IPOIB is not set
-CONFIG_MLX5_SW_STEERING=y
-# CONFIG_MLXSW_CORE is not set
-# CONFIG_MLXFW is not set
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-# CONFIG_LAN743X is not set
-# CONFIG_NET_VENDOR_MICROSEMI is not set
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_NETERION=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NFP=m
-# CONFIG_NFP_APP_FLOWER is not set
-# CONFIG_NFP_APP_ABM_NIC is not set
-# CONFIG_NFP_DEBUG is not set
-# CONFIG_NET_VENDOR_NI is not set
-CONFIG_NET_VENDOR_8390=y
-CONFIG_NE2K_PCI=m
-CONFIG_NET_VENDOR_NVIDIA=y
-CONFIG_FORCEDETH=m
-CONFIG_NET_VENDOR_OKI=y
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_PACKET_ENGINES=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_PENSANDO=y
-# CONFIG_IONIC is not set
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_NETXEN_NIC=m
-CONFIG_QED=m
-CONFIG_QED_SRIOV=y
-CONFIG_QEDE=m
-# CONFIG_NET_VENDOR_QUALCOMM is not set
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-# CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_ROCKER=m
-# CONFIG_NET_VENDOR_SAMSUNG is not set
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_SFC_MCDI_LOGGING=y
-# CONFIG_SFC_FALCON is not set
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_SIS900=m
-CONFIG_SIS190=m
-CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_SMC91X is not set
-CONFIG_EPIC100=m
-CONFIG_SMSC911X=m
-CONFIG_SMSC9420=m
-CONFIG_NET_VENDOR_SOCIONEXT=y
-CONFIG_SNI_NETSEC=m
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-CONFIG_DWMAC_DWC_QOS_ETH=m
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_IPQ806X=m
-# CONFIG_DWMAC_MEDIATEK is not set
-CONFIG_DWMAC_QCOM_ETHQOS=m
-CONFIG_DWMAC_ROCKCHIP=m
-CONFIG_DWMAC_SOCFPGA=m
-CONFIG_DWMAC_SUNXI=m
-CONFIG_DWMAC_SUN8I=m
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_DWC_XLGMAC is not set
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_CPSW_PHY_SEL is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_WIZNET_W5100=m
-CONFIG_WIZNET_W5300=m
-# CONFIG_WIZNET_BUS_DIRECT is not set
-# CONFIG_WIZNET_BUS_INDIRECT is not set
-CONFIG_WIZNET_BUS_ANY=y
-CONFIG_WIZNET_W5100_SPI=m
-CONFIG_NET_VENDOR_XILINX=y
-# CONFIG_XILINX_AXI_EMAC is not set
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-# CONFIG_DEFXX_MMIO is not set
-CONFIG_SKFP=m
-CONFIG_HIPPI=y
-CONFIG_ROADRUNNER=m
-# CONFIG_ROADRUNNER_LARGE_RINGS is not set
-CONFIG_NET_SB1000=m
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-CONFIG_MDIO_BCM_UNIMAC=m
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_BUS_MUX=m
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
-CONFIG_MDIO_CAVIUM=m
-CONFIG_MDIO_GPIO=m
-CONFIG_MDIO_HISI_FEMAC=m
-CONFIG_MDIO_I2C=m
-# CONFIG_MDIO_MSCC_MIIM is not set
-CONFIG_MDIO_OCTEON=m
-# CONFIG_MDIO_SUN4I is not set
-CONFIG_MDIO_THUNDER=m
-CONFIG_MDIO_XGENE=y
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=y
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-
-#
-# MII PHY device drivers
-#
-CONFIG_SFP=m
-# CONFIG_ADIN_PHY is not set
-CONFIG_AMD_PHY=m
-CONFIG_AQUANTIA_PHY=m
-# CONFIG_AX88796B_PHY is not set
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-# CONFIG_BCM84881_PHY is not set
-CONFIG_CICADA_PHY=m
-# CONFIG_CORTINA_PHY is not set
-CONFIG_DAVICOM_PHY=m
-CONFIG_DP83822_PHY=m
-# CONFIG_DP83TC811_PHY is not set
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-# CONFIG_DP83869_PHY is not set
-CONFIG_FIXED_PHY=y
-CONFIG_ICPLUS_PHY=m
-CONFIG_INTEL_XWAY_PHY=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_MARVELL_PHY=m
-# CONFIG_MARVELL_10G_PHY is not set
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-# CONFIG_MICROCHIP_T1_PHY is not set
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-# CONFIG_NXP_TJA11XX_PHY is not set
-CONFIG_AT803X_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_RENESAS_PHY=m
-CONFIG_ROCKCHIP_PHY=y
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_XILINX_GMII2RGMII=m
-CONFIG_MICREL_KS8995MA=m
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-
-#
-# Host-side USB support is needed for USB Network Adapter support
-#
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-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=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_WLAN=y
-# CONFIG_WLAN_VENDOR_ADMTEK is not set
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-CONFIG_ATH9K_AHB=y
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-# CONFIG_ATH9K_PCI_NO_EEPROM is not set
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HWRNG is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-CONFIG_CARL9170_HWRNG=y
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-CONFIG_ATH6KL_DEBUG=y
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_CE=y
-CONFIG_ATH10K_PCI=m
-# CONFIG_ATH10K_AHB is not set
-# CONFIG_ATH10K_SDIO is not set
-# CONFIG_ATH10K_USB is not set
-CONFIG_ATH10K_SNOC=m
-# CONFIG_ATH10K_DEBUG is not set
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-# CONFIG_WLAN_VENDOR_ATMEL is not set
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_PROTO_MSGBUF=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-CONFIG_BRCMFMAC_PCIE=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-# CONFIG_WLAN_VENDOR_CISCO is not set
-CONFIG_WLAN_VENDOR_INTEL=y
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-# end of iwl3945 / iwl4965 Debugging Options
-
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-# end of Debugging Options
-
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HERMES=m
-# CONFIG_HERMES_PRISM is not set
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_ORINOCO_USB=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-CONFIG_PRISM54=m
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_MWL8K=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-CONFIG_MT76_CORE=m
-CONFIG_MT76_LEDS=y
-CONFIG_MT76_USB=m
-CONFIG_MT76x02_LIB=m
-CONFIG_MT76x02_USB=m
-CONFIG_MT76x0_COMMON=m
-CONFIG_MT76x0U=m
-# CONFIG_MT76x0E is not set
-CONFIG_MT76x2_COMMON=m
-CONFIG_MT76x2E=m
-CONFIG_MT76x2U=m
-# CONFIG_MT7603E is not set
-# CONFIG_MT7615E is not set
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-# CONFIG_RT2800PCI_RT35XX is not set
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-# CONFIG_RT2800USB_RT35XX is not set
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=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=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_RTL8XXXU=m
-# CONFIG_RTL8XXXU_UNTESTED is not set
-# CONFIG_RTW88 is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-CONFIG_USB_ZD1201=m
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-# CONFIG_QTNFMAC_PCIE is not set
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_VIRT_WIFI is not set
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# end of WiMAX Wireless Broadband devices
-
-CONFIG_WAN=y
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_HDLC_X25=m
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-CONFIG_PC300TOO=m
-CONFIG_FARSYNC=m
-# CONFIG_SLIC_DS26522 is not set
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_LAPBETHER=m
-CONFIG_X25_ASY=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-# CONFIG_IEEE802154_AT86RF230 is not set
-# CONFIG_IEEE802154_MRF24J40 is not set
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-# CONFIG_IEEE802154_CA8210 is not set
-CONFIG_IEEE802154_MCR20A=m
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_XEN_NETDEV_FRONTEND=y
-CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_VMXNET3=m
-CONFIG_FUJITSU_ES=m
-CONFIG_NET_FAILOVER=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=m
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADC=m
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1050 is not set
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_DLINK_DIR685 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_GPIO is not set
-CONFIG_KEYBOARD_GPIO_POLLED=m
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_TCA8418 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_LM8333 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-CONFIG_KEYBOARD_TEGRA=m
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_SAMSUNG is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_SUN4I_LRADC is not set
-CONFIG_KEYBOARD_OMAP4=m
-# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_CAP11XX is not set
-# CONFIG_KEYBOARD_BCM is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_BYD=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_PS2_SMBUS=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-CONFIG_MOUSE_ELAN_I2C_SMBUS=y
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-CONFIG_TOUCHSCREEN_ADC=m
-CONFIG_TOUCHSCREEN_AR1021_I2C=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
-CONFIG_TOUCHSCREEN_BU21013=m
-# CONFIG_TOUCHSCREEN_BU21029 is not set
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8318=m
-# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
-# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-# CONFIG_TOUCHSCREEN_EGALAX is not set
-CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-# CONFIG_TOUCHSCREEN_HIDEEP is not set
-# CONFIG_TOUCHSCREEN_ILI210X is not set
-# CONFIG_TOUCHSCREEN_S6SY761 is not set
-CONFIG_TOUCHSCREEN_GUNZE=m
-# CONFIG_TOUCHSCREEN_EKTF2127 is not set
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MMS114 is not set
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
-# CONFIG_TOUCHSCREEN_RASPBERRYPI_FW is not set
-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
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
-CONFIG_TOUCHSCREEN_RM_TS=m
-CONFIG_TOUCHSCREEN_SILEAD=m
-CONFIG_TOUCHSCREEN_SIS_I2C=m
-CONFIG_TOUCHSCREEN_ST1232=m
-# CONFIG_TOUCHSCREEN_STMFTS is not set
-# CONFIG_TOUCHSCREEN_SUN4I is not set
-# CONFIG_TOUCHSCREEN_SUR40 is not set
-CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
-# CONFIG_TOUCHSCREEN_SX8654 is not set
-CONFIG_TOUCHSCREEN_TPS6507X=m
-# CONFIG_TOUCHSCREEN_ZET6223 is not set
-CONFIG_TOUCHSCREEN_ZFORCE=m
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-# CONFIG_TOUCHSCREEN_IQS5XX is not set
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
-# CONFIG_INPUT_BMA150 is not set
-CONFIG_INPUT_E3X0_BUTTON=m
-# CONFIG_INPUT_MSM_VIBRATOR is not set
-CONFIG_INPUT_MMA8450=m
-# CONFIG_INPUT_GP2A is not set
-# CONFIG_INPUT_GPIO_BEEPER is not set
-# CONFIG_INPUT_GPIO_DECODER is not set
-# CONFIG_INPUT_GPIO_VIBRA is not set
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_AXP20X_PEK=m
-CONFIG_INPUT_UINPUT=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_PCF8574=m
-# CONFIG_INPUT_PWM_BEEPER is not set
-# CONFIG_INPUT_PWM_VIBRA is not set
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-# CONFIG_INPUT_IMS_PCU is not set
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
-# CONFIG_INPUT_DRV260X_HAPTICS is not set
-CONFIG_INPUT_DRV2665_HAPTICS=m
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-CONFIG_INPUT_HISI_POWERKEY=m
-CONFIG_RMI4_CORE=m
-CONFIG_RMI4_I2C=m
-CONFIG_RMI4_SPI=m
-# CONFIG_RMI4_SMB is not set
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-# CONFIG_RMI4_F54 is not set
-# CONFIG_RMI4_F55 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_AMBAKMI=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-# CONFIG_SERIO_SUN4I_PS2 is not set
-# CONFIG_SERIO_GPIO_PS2 is not set
-# CONFIG_USERIO 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=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_ROCKETPORT=m
-CONFIG_CYCLADES=m
-# CONFIG_CYZ_INTR is not set
-CONFIG_MOXA_INTELLIO=m
-CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINKMP=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_NOZOMI=m
-CONFIG_ISI=m
-CONFIG_N_HDLC=m
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_NULL_TTY is not set
-# CONFIG_LDISC_AUTOLOAD is not set
-CONFIG_DEVMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_PNP=y
-# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_EXAR=y
-CONFIG_SERIAL_8250_NR_UARTS=16
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-# CONFIG_SERIAL_8250_ASPEED_VUART is not set
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_SERIAL_8250_BCM2835AUX=m
-CONFIG_SERIAL_8250_FSL=y
-# CONFIG_SERIAL_8250_DW is not set
-# CONFIG_SERIAL_8250_RT288X is not set
-# CONFIG_SERIAL_8250_MT6577 is not set
-CONFIG_SERIAL_OF_PLATFORM=y
-
-#
-# Non-8250 serial port support
-#
-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_UARTS_4=y
-CONFIG_SERIAL_SAMSUNG_UARTS=4
-CONFIG_SERIAL_SAMSUNG_CONSOLE=y
-# CONFIG_SERIAL_TEGRA_TCU is not set
-CONFIG_SERIAL_MAX3100=m
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_JSM=m
-# CONFIG_SERIAL_MSM is not set
-CONFIG_SERIAL_QCOM_GENI=m
-# CONFIG_SERIAL_QCOM_GENI_CONSOLE is not set
-# CONFIG_SERIAL_SIFIVE is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-CONFIG_SERIAL_ALTERA_JTAGUART=m
-CONFIG_SERIAL_ALTERA_UART=m
-CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
-CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_IFX6X60=m
-CONFIG_SERIAL_XILINX_PS_UART=m
-CONFIG_SERIAL_ARC=m
-CONFIG_SERIAL_ARC_NR_PORTS=1
-# CONFIG_SERIAL_RP2 is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_FSL_LINFLEXUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# CONFIG_SERIAL_SPRD is not set
-CONFIG_SERIAL_MVEBU_UART=y
-CONFIG_SERIAL_MVEBU_CONSOLE=y
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SERIAL_DEV_BUS is not set
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-# CONFIG_HVC_DCC is not set
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_DMI_DECODE=y
-CONFIG_IPMI_PLAT_DATA=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SSIF=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-# CONFIG_IPMB_DEVICE_INTERFACE is not set
-CONFIG_HW_RANDOM=m
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_IPROC_RNG200=m
-CONFIG_HW_RANDOM_OMAP=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_HISI=m
-CONFIG_HW_RANDOM_HISI_V2=m
-CONFIG_HW_RANDOM_XGENE=m
-CONFIG_HW_RANDOM_CAVIUM=m
-CONFIG_HW_RANDOM_MTK=m
-# CONFIG_HW_RANDOM_EXYNOS is not set
-CONFIG_APPLICOM=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_TCG_TPM=m
-CONFIG_HW_RANDOM_TPM=y
-# CONFIG_TCG_TIS is not set
-# CONFIG_TCG_TIS_SPI is not set
-# CONFIG_TCG_TIS_I2C_ATMEL is not set
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_INFINEON=m
-CONFIG_TCG_XEN=m
-# CONFIG_TCG_CRB is not set
-# CONFIG_TCG_VTPM_PROXY is not set
-# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
-# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
-CONFIG_DEVPORT=y
-# CONFIG_XILLYBUS is not set
-# end of Character devices
-
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-CONFIG_I2C_MUX_GPIO=m
-# CONFIG_I2C_MUX_GPMUX is not set
-# CONFIG_I2C_MUX_LTC4306 is not set
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
-# CONFIG_I2C_MUX_PINCTRL is not set
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_DEMUX_PINCTRL is not set
-# CONFIG_I2C_MUX_MLXCPLD is not set
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD8111=m
-# CONFIG_I2C_AMD_MP2 is not set
-# CONFIG_I2C_HIX5HD2 is not set
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-# CONFIG_I2C_NVIDIA_GPU is not set
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# ACPI drivers
-#
-CONFIG_I2C_SCMI=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_BCM2835=m
-# CONFIG_I2C_CADENCE is not set
-# CONFIG_I2C_CBUS_GPIO is not set
-CONFIG_I2C_DESIGNWARE_CORE=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
-# CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PCI=m
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_EXYNOS5=m
-CONFIG_I2C_GPIO=m
-# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
-# CONFIG_I2C_IMX is not set
-# CONFIG_I2C_MT65XX is not set
-CONFIG_I2C_MV64XXX=m
-# CONFIG_I2C_NOMADIK is not set
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA is not set
-CONFIG_I2C_QCOM_GENI=m
-# CONFIG_I2C_QUP is not set
-# CONFIG_I2C_RK3X is not set
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_SYNQUACER=m
-CONFIG_I2C_TEGRA=m
-CONFIG_I2C_TEGRA_BPMP=m
-CONFIG_I2C_VERSATILE=m
-CONFIG_I2C_THUNDERX=m
-CONFIG_I2C_XILINX=m
-CONFIG_I2C_XLP9XX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_PARPORT=m
-# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_XGENE_SLIMPRO=m
-# end of I2C Hardware Bus support
-
-CONFIG_I2C_STUB=m
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# 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_MASTER=y
-CONFIG_SPI_MEM=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_ARMADA_3700 is not set
-# CONFIG_SPI_AXI_SPI_ENGINE is not set
-CONFIG_SPI_BCM2835=m
-CONFIG_SPI_BCM2835AUX=m
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
-# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_DESIGNWARE=m
-CONFIG_SPI_DW_PCI=m
-# CONFIG_SPI_DW_MID_DMA is not set
-# CONFIG_SPI_DW_MMIO is not set
-# CONFIG_SPI_FSL_QUADSPI is not set
-# CONFIG_SPI_HISI_SFC_V3XX is not set
-# CONFIG_SPI_NXP_FLEXSPI is not set
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_FSL_DSPI is not set
-# CONFIG_SPI_MT65XX is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_ORION=m
-# CONFIG_SPI_PL022 is not set
-# CONFIG_SPI_PXA2XX is not set
-CONFIG_SPI_ROCKCHIP=y
-# CONFIG_SPI_QCOM_QSPI is not set
-# CONFIG_SPI_QUP is not set
-# CONFIG_SPI_QCOM_GENI is not set
-# CONFIG_SPI_S3C64XX is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_SIFIVE is not set
-# CONFIG_SPI_SPRD is not set
-# CONFIG_SPI_SUN4I is not set
-CONFIG_SPI_SUN6I=m
-# CONFIG_SPI_SYNQUACER is not set
-# CONFIG_SPI_MXIC is not set
-# CONFIG_SPI_TEGRA20_SFLASH is not set
-CONFIG_SPI_THUNDERX=m
-CONFIG_SPI_XCOMM=m
-# CONFIG_SPI_XILINX is not set
-CONFIG_SPI_XLP=m
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_LOOPBACK_TEST is not set
-CONFIG_SPI_TLE62X0=m
-# CONFIG_SPI_SLAVE is not set
-# CONFIG_SPMI is not set
-# CONFIG_HSI is not set
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-# CONFIG_PPS_CLIENT_PARPORT is not set
-# CONFIG_PPS_CLIENT_GPIO is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-CONFIG_PTP_1588_CLOCK_QORIQ=m
-CONFIG_DP83640_PHY=m
-# CONFIG_PTP_1588_CLOCK_INES is not set
-# CONFIG_PTP_1588_CLOCK_IDTCM is not set
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-CONFIG_PINCTRL_AXP209=m
-# CONFIG_PINCTRL_AMD is not set
-# CONFIG_PINCTRL_MCP23S08 is not set
-CONFIG_PINCTRL_ROCKCHIP=y
-# CONFIG_PINCTRL_SINGLE is not set
-# CONFIG_PINCTRL_STMFX is not set
-# CONFIG_PINCTRL_OCELOT is not set
-CONFIG_PINCTRL_BCM2835=y
-# CONFIG_PINCTRL_AS370 is not set
-# CONFIG_PINCTRL_BERLIN_BG4CT is not set
-CONFIG_PINCTRL_MVEBU=y
-CONFIG_PINCTRL_ARMADA_AP806=y
-CONFIG_PINCTRL_ARMADA_CP110=y
-CONFIG_PINCTRL_ARMADA_37XX=y
-CONFIG_PINCTRL_MSM=y
-# CONFIG_PINCTRL_APQ8064 is not set
-# CONFIG_PINCTRL_APQ8084 is not set
-# CONFIG_PINCTRL_IPQ4019 is not set
-# CONFIG_PINCTRL_IPQ8064 is not set
-# CONFIG_PINCTRL_IPQ8074 is not set
-# CONFIG_PINCTRL_MSM8660 is not set
-# CONFIG_PINCTRL_MSM8960 is not set
-# CONFIG_PINCTRL_MDM9615 is not set
-# CONFIG_PINCTRL_MSM8X74 is not set
-# CONFIG_PINCTRL_MSM8916 is not set
-# CONFIG_PINCTRL_MSM8976 is not set
-# CONFIG_PINCTRL_MSM8994 is not set
-CONFIG_PINCTRL_MSM8996=m
-CONFIG_PINCTRL_MSM8998=m
-# CONFIG_PINCTRL_QCS404 is not set
-# CONFIG_PINCTRL_QDF2XXX is not set
-# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set
-# CONFIG_PINCTRL_SC7180 is not set
-# CONFIG_PINCTRL_SDM660 is not set
-CONFIG_PINCTRL_SDM845=y
-# CONFIG_PINCTRL_SM8150 is not set
-CONFIG_PINCTRL_SAMSUNG=y
-CONFIG_PINCTRL_EXYNOS=y
-CONFIG_PINCTRL_EXYNOS_ARM64=y
-# CONFIG_PINCTRL_SPRD is not set
-CONFIG_PINCTRL_SUNXI=y
-# CONFIG_PINCTRL_SUN4I_A10 is not set
-# CONFIG_PINCTRL_SUN5I is not set
-# CONFIG_PINCTRL_SUN6I_A31 is not set
-# CONFIG_PINCTRL_SUN6I_A31_R is not set
-# CONFIG_PINCTRL_SUN8I_A23 is not set
-# CONFIG_PINCTRL_SUN8I_A33 is not set
-# CONFIG_PINCTRL_SUN8I_A83T is not set
-# CONFIG_PINCTRL_SUN8I_A83T_R is not set
-# CONFIG_PINCTRL_SUN8I_A23_R is not set
-# CONFIG_PINCTRL_SUN8I_H3 is not set
-CONFIG_PINCTRL_SUN8I_H3_R=y
-# CONFIG_PINCTRL_SUN8I_V3S is not set
-# CONFIG_PINCTRL_SUN9I_A80 is not set
-# CONFIG_PINCTRL_SUN9I_A80_R is not set
-CONFIG_PINCTRL_SUN50I_A64=y
-CONFIG_PINCTRL_SUN50I_A64_R=y
-CONFIG_PINCTRL_SUN50I_H5=y
-CONFIG_PINCTRL_SUN50I_H6=y
-CONFIG_PINCTRL_SUN50I_H6_R=y
-CONFIG_PINCTRL_TEGRA=y
-CONFIG_PINCTRL_TEGRA124=y
-CONFIG_PINCTRL_TEGRA210=y
-CONFIG_PINCTRL_TEGRA194=y
-CONFIG_PINCTRL_TEGRA_XUSB=y
-
-#
-# MediaTek pinctrl drivers
-#
-CONFIG_EINT_MTK=y
-CONFIG_PINCTRL_MTK=y
-CONFIG_PINCTRL_MTK_PARIS=y
-CONFIG_PINCTRL_MT2712=y
-CONFIG_PINCTRL_MT6765=y
-CONFIG_PINCTRL_MT6797=y
-# CONFIG_PINCTRL_MT7622 is not set
-CONFIG_PINCTRL_MT8173=y
-CONFIG_PINCTRL_MT8183=y
-CONFIG_PINCTRL_MT8516=y
-# end of MediaTek pinctrl drivers
-
-# CONFIG_PINCTRL_EQUILIBRIUM is not set
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_OF_GPIO=y
-CONFIG_GPIO_ACPI=y
-CONFIG_GPIOLIB_IRQCHIP=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_GENERIC=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-# CONFIG_GPIO_AMDPT is not set
-CONFIG_GPIO_RASPBERRYPI_EXP=m
-# CONFIG_GPIO_CADENCE is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EIC_SPRD is not set
-# CONFIG_GPIO_EXAR is not set
-# CONFIG_GPIO_FTGPIO010 is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-# CONFIG_GPIO_HLWD is not set
-# CONFIG_GPIO_LOGICVC is not set
-CONFIG_GPIO_MB86S7X=m
-# CONFIG_GPIO_MPC8XXX is not set
-CONFIG_GPIO_MVEBU=y
-# CONFIG_GPIO_PL061 is not set
-# CONFIG_GPIO_SAMA5D2_PIOBU is not set
-# CONFIG_GPIO_SIFIVE is not set
-# CONFIG_GPIO_SPRD is not set
-# CONFIG_GPIO_SYSCON is not set
-CONFIG_GPIO_TEGRA=y
-CONFIG_GPIO_TEGRA186=y
-CONFIG_GPIO_THUNDERX=y
-CONFIG_GPIO_XGENE=y
-CONFIG_GPIO_XGENE_SB=m
-# CONFIG_GPIO_XILINX is not set
-CONFIG_GPIO_XLP=m
-# CONFIG_GPIO_ZYNQ is not set
-# CONFIG_GPIO_AMD_FCH is not set
-# end of Memory mapped GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-# CONFIG_GPIO_ADNP is not set
-# CONFIG_GPIO_GW_PLD is not set
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-# CONFIG_GPIO_TPIC2810 is not set
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_JANZ_TTL=m
-# CONFIG_GPIO_UCB1400 is not set
-# end of MFD GPIO expanders
-
-#
-# PCI GPIO expanders
-#
-CONFIG_GPIO_BT8XX=m
-# CONFIG_GPIO_PCI_IDIO_16 is not set
-# CONFIG_GPIO_PCIE_IDIO_24 is not set
-CONFIG_GPIO_RDC321X=m
-# end of PCI GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-# CONFIG_GPIO_74X164 is not set
-# CONFIG_GPIO_MAX3191X is not set
-CONFIG_GPIO_MAX7301=m
-# 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=m
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-# CONFIG_W1_MASTER_MATROX is not set
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-# CONFIG_W1_MASTER_GPIO is not set
-# CONFIG_W1_MASTER_SGI is not set
-# end of 1-wire Bus Masters
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-# CONFIG_W1_SLAVE_DS2405 is not set
-CONFIG_W1_SLAVE_DS2408=m
-# CONFIG_W1_SLAVE_DS2408_READBACK is not set
-CONFIG_W1_SLAVE_DS2413=m
-CONFIG_W1_SLAVE_DS2406=m
-CONFIG_W1_SLAVE_DS2423=m
-# CONFIG_W1_SLAVE_DS2805 is not set
-# CONFIG_W1_SLAVE_DS2430 is not set
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-# CONFIG_W1_SLAVE_DS2438 is not set
-# CONFIG_W1_SLAVE_DS250X is not set
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_DS2781=m
-CONFIG_W1_SLAVE_DS28E04=m
-# CONFIG_W1_SLAVE_DS28E17 is not set
-# end of 1-wire Slaves
-
-CONFIG_POWER_AVS=y
-# CONFIG_QCOM_CPR is not set
-CONFIG_ROCKCHIP_IODOMAIN=y
-CONFIG_POWER_RESET=y
-# CONFIG_POWER_RESET_BRCMSTB is not set
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_GPIO_RESTART=y
-# CONFIG_POWER_RESET_HISI is not set
-# CONFIG_POWER_RESET_MSM is not set
-# CONFIG_POWER_RESET_LTC2952 is not set
-CONFIG_POWER_RESET_RESTART=y
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_XGENE=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_REBOOT_MODE=y
-CONFIG_SYSCON_REBOOT_MODE=y
-# CONFIG_NVMEM_REBOOT_MODE is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_GENERIC_ADC_BATTERY=m
-# CONFIG_TEST_POWER is not set
-# CONFIG_CHARGER_ADP5061 is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_LEGO_EV3 is not set
-CONFIG_BATTERY_SBS=m
-CONFIG_CHARGER_SBS=m
-CONFIG_MANAGER_SBS=m
-# CONFIG_BATTERY_BQ27XXX is not set
-# CONFIG_AXP20X_POWER is not set
-# CONFIG_AXP288_FUEL_GAUGE is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_BATTERY_MAX1721X is not set
-# CONFIG_CHARGER_PCF50633 is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_LP8727 is not set
-# CONFIG_CHARGER_GPIO is not set
-# CONFIG_CHARGER_MANAGER is not set
-# CONFIG_CHARGER_LT3651 is not set
-# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
-# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ25890 is not set
-CONFIG_CHARGER_SMB347=m
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-# CONFIG_CHARGER_UCS1002 is not set
-CONFIG_HWMON=m
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-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
-CONFIG_SENSORS_ADM1031=m
-# CONFIG_SENSORS_ADM1177 is not set
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-# CONFIG_SENSORS_AS370 is not set
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ARM_SCMI=m
-# CONFIG_SENSORS_ASPEED is not set
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DRIVETEMP=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FTSTEUTATES=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-CONFIG_SENSORS_GPIO_FAN=m
-# CONFIG_SENSORS_HIH6130 is not set
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-# CONFIG_SENSORS_IIO_HWMON is not set
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-# CONFIG_SENSORS_LTC2947_I2C is not set
-# CONFIG_SENSORS_LTC2947_SPI is not set
-CONFIG_SENSORS_LTC2990=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX31722=m
-# CONFIG_SENSORS_MAX31730 is not set
-# CONFIG_SENSORS_MAX6621 is not set
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_MCP3021=m
-# CONFIG_SENSORS_TC654 is not set
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_NPCM7XX=m
-# CONFIG_SENSORS_OCC_P8_I2C is not set
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-# CONFIG_SENSORS_BEL_PFE is not set
-# CONFIG_SENSORS_IBM_CFFPS is not set
-# CONFIG_SENSORS_INSPUR_IPSPS is not set
-# CONFIG_SENSORS_IR35221 is not set
-# CONFIG_SENSORS_IR38064 is not set
-# CONFIG_SENSORS_IRPS5401 is not set
-# CONFIG_SENSORS_ISL68137 is not set
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-# CONFIG_SENSORS_LTC2978_REGULATOR is not set
-CONFIG_SENSORS_LTC3815=m
-CONFIG_SENSORS_MAX16064=m
-# CONFIG_SENSORS_MAX20730 is not set
-CONFIG_SENSORS_MAX20751=m
-# CONFIG_SENSORS_MAX31785 is not set
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-# CONFIG_SENSORS_PXE1610 is not set
-CONFIG_SENSORS_TPS40422=m
-# CONFIG_SENSORS_TPS53679 is not set
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-# CONFIG_SENSORS_XDPE122 is not set
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_PWM_FAN=m
-# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHT3x=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-# CONFIG_SENSORS_STTS751 is not set
-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_INA2XX is not set
-CONFIG_SENSORS_INA3221=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-# CONFIG_SENSORS_TMP108 is not set
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-# CONFIG_SENSORS_TMP513 is not set
-# CONFIG_SENSORS_VEXPRESS is not set
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83773G=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-CONFIG_SENSORS_W83795_FANCTRL=y
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_XGENE=m
-
-#
-# ACPI drivers
-#
-CONFIG_SENSORS_ACPI_POWER=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_STATISTICS=y
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_OF=y
-CONFIG_THERMAL_WRITABLE_TRIPS=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-CONFIG_THERMAL_GOV_USER_SPACE=y
-# CONFIG_CPU_THERMAL is not set
-# CONFIG_CLOCK_THERMAL is not set
-# CONFIG_DEVFREQ_THERMAL is not set
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_THERMAL_MMIO is not set
-CONFIG_HISI_THERMAL=y
-# CONFIG_QORIQ_THERMAL is not set
-# CONFIG_SUN8I_THERMAL is not set
-CONFIG_ROCKCHIP_THERMAL=m
-# CONFIG_ARMADA_THERMAL is not set
-CONFIG_MTK_THERMAL=y
-
-#
-# Broadcom thermal drivers
-#
-# CONFIG_BCM2711_THERMAL is not set
-# CONFIG_BCM2835_THERMAL is not set
-# end of Broadcom thermal drivers
-
-#
-# Samsung thermal drivers
-#
-# CONFIG_EXYNOS_THERMAL is not set
-# end of Samsung thermal drivers
-
-#
-# NVIDIA Tegra thermal drivers
-#
-# CONFIG_TEGRA_SOCTHERM is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
-# end of NVIDIA Tegra thermal drivers
-
-CONFIG_GENERIC_ADC_THERMAL=m
-
-#
-# Qualcomm thermal drivers
-#
-CONFIG_QCOM_TSENS=m
-# end of Qualcomm thermal drivers
-
-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=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-# CONFIG_GPIO_WATCHDOG is not set
-CONFIG_WDAT_WDT=m
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_ZIIRAVE_WATCHDOG is not set
-# CONFIG_ARM_SP805_WATCHDOG is not set
-CONFIG_ARM_SBSA_WATCHDOG=m
-# CONFIG_ARMADA_37XX_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-CONFIG_HAVE_S3C2410_WATCHDOG=y
-# CONFIG_S3C2410_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_SUNXI_WATCHDOG=m
-CONFIG_MAX63XX_WATCHDOG=m
-# CONFIG_IMX2_WDT is not set
-# CONFIG_TEGRA_WATCHDOG is not set
-# CONFIG_QCOM_WDT is not set
-# CONFIG_MEDIATEK_WATCHDOG is not set
-# CONFIG_SPRD_WATCHDOG is not set
-CONFIG_ALIM7101_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_BCM2835_WDT=m
-# CONFIG_MEN_A21_WDT is not set
-CONFIG_XEN_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_HOST_SOC is not set
-CONFIG_BCMA_DRIVER_PCI=y
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_ALTERA_SYSMGR is not set
-# CONFIG_MFD_ACT8945A is not set
-# CONFIG_MFD_SUN4I_GPADC 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_AC100=m
-CONFIG_MFD_AXP20X=m
-# CONFIG_MFD_AXP20X_I2C is not set
-CONFIG_MFD_AXP20X_RSB=m
-# CONFIG_MFD_MADERA is not set
-# CONFIG_MFD_DA9052_SPI 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_EXYNOS_LPASS 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_MFD_HI655X_PMIC=m
-CONFIG_HTC_PASIC3=m
-CONFIG_LPC_ICH=m
-CONFIG_LPC_SCH=m
-CONFIG_MFD_JANZ_CMODIO=m
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77650 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX8907 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=m
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-# CONFIG_MFD_QCOM_RPM is not set
-CONFIG_MFD_RDC321X=m
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RK808 is not set
-# CONFIG_MFD_RN5T618 is not set
-# CONFIG_MFD_SI476X_CORE is not set
-CONFIG_MFD_SM501=m
-# CONFIG_MFD_SM501_GPIO is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SC27XX_PMIC is not set
-CONFIG_ABX500_CORE=y
-# CONFIG_MFD_STMPE is not set
-CONFIG_MFD_SUN6I_PRCM=y
-CONFIG_MFD_SYSCON=y
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_TI_LMU is not set
-# CONFIG_TPS6105X is not set
-CONFIG_TPS65010=m
-CONFIG_TPS6507X=m
-# CONFIG_MFD_TPS65086 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_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-CONFIG_MFD_WL1273_CORE=m
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TQMX86 is not set
-CONFIG_MFD_VX855=m
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_STMFX is not set
-# CONFIG_MFD_WCD934X is not set
-CONFIG_MFD_VEXPRESS_SYSREG=y
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_88PG86X is not set
-# CONFIG_REGULATOR_ACT8865 is not set
-# CONFIG_REGULATOR_AD5398 is not set
-# CONFIG_REGULATOR_ANATOP is not set
-CONFIG_REGULATOR_AXP20X=m
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-# CONFIG_REGULATOR_FAN53555 is not set
-# CONFIG_REGULATOR_GPIO is not set
-CONFIG_REGULATOR_HI655X=m
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_LTC3676 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-# CONFIG_REGULATOR_MCP16502 is not set
-# CONFIG_REGULATOR_MP8859 is not set
-# CONFIG_REGULATOR_MPQ7920 is not set
-# CONFIG_REGULATOR_MT6311 is not set
-# CONFIG_REGULATOR_PCF50633 is not set
-# CONFIG_REGULATOR_PFUZE100 is not set
-# CONFIG_REGULATOR_PV88060 is not set
-# CONFIG_REGULATOR_PV88080 is not set
-# CONFIG_REGULATOR_PV88090 is not set
-# CONFIG_REGULATOR_PWM is not set
-CONFIG_REGULATOR_QCOM_RPMH=m
-CONFIG_REGULATOR_QCOM_SMD_RPM=m
-# CONFIG_REGULATOR_SLG51000 is not set
-CONFIG_REGULATOR_SY8106A=m
-# CONFIG_REGULATOR_SY8824X is not set
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-# CONFIG_REGULATOR_TPS65132 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-# CONFIG_REGULATOR_VCTRL is not set
-# CONFIG_REGULATOR_VEXPRESS is not set
-# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
-CONFIG_CEC_CORE=m
-CONFIG_CEC_NOTIFIER=y
-CONFIG_CEC_PIN=y
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-# CONFIG_LIRC is not set
-CONFIG_RC_DECODERS=y
-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_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-# CONFIG_IR_RCMM_DECODER is not set
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_ENE=m
-CONFIG_IR_HIX5HD2=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_MTK is not set
-CONFIG_IR_NUVOTON=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
-CONFIG_IR_SUNXI=m
-# CONFIG_IR_SERIAL is not set
-# CONFIG_IR_SIR is not set
-# CONFIG_RC_XBOX_DVD is not set
-CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-# CONFIG_MEDIA_RADIO_SUPPORT is not set
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-# CONFIG_MEDIA_CEC_SUPPORT is not set
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CONTROLLER=y
-# CONFIG_MEDIA_CONTROLLER_DVB is not set
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L2_I2C=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_V4L2_FLASH_LED_CLASS=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_DVB_CORE=m
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-
-#
-# Media drivers
-#
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-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
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-# CONFIG_USB_GSPCA_KONICA is not set
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-# CONFIG_USB_GSPCA_SPCA1528 is not set
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
-CONFIG_USB_GSPCA_ZC3XX=m
-# CONFIG_USB_PWC is not set
-# CONFIG_VIDEO_CPIA2 is not set
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_HDPVR is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_VIDEO_STK1160_COMMON is not set
-# CONFIG_VIDEO_GO7007 is not set
-
-#
-# Analog/digital TV USB devices
-#
-# CONFIG_VIDEO_AU0828 is not set
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-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_CXUSB_ANALOG is not set
-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_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=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_ZD1301 is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-# CONFIG_SMS_USB_DRV is not set
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-# CONFIG_DVB_AS102 is not set
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-# CONFIG_VIDEO_EM28XX_DVB is not set
-CONFIG_VIDEO_EM28XX_RC=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-CONFIG_VIDEO_SOLO6X10=m
-# CONFIG_VIDEO_TW5864 is not set
-# CONFIG_VIDEO_TW68 is not set
-CONFIG_VIDEO_TW686X=m
-
-#
-# Media capture/analog TV support
-#
-# CONFIG_VIDEO_IVTV is not set
-# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-# CONFIG_VIDEO_HEXIUM_ORION is not set
-# CONFIG_VIDEO_MXB is not set
-# CONFIG_VIDEO_DT3155 is not set
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_SAA7164=m
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-# CONFIG_DVB_PT3 is not set
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
-CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
-# CONFIG_V4L_PLATFORM_DRIVERS is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-# CONFIG_VIDEO_MEDIATEK_VPU is not set
-# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set
-# CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC is not set
-# CONFIG_VIDEO_SH_VEU is not set
-CONFIG_VIDEO_ROCKCHIP_RGA=m
-# CONFIG_VIDEO_QCOM_VENUS is not set
-# CONFIG_VIDEO_SUN8I_DEINTERLACE is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-# CONFIG_DVB_PLATFORM_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-# CONFIG_SMS_SDIO_DRV is not set
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
-CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# I2C drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS3308=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_WM8775=m
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_CX25840=m
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Lens drivers
-#
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# SDR tuner chips
-#
-
-#
-# Miscellaneous helper chips
-#
-
-#
-# SPI drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Media SPI Adapters
-#
-CONFIG_CXD2880_SPI_DRV=m
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=m
-
-#
-# Tuner drivers hidden by 'Autoselect ancillary drivers'
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
-
-#
-# DVB Frontend drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV0910=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_GP8PSK_FE=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_CXD2099=m
-CONFIG_DVB_SP2=m
-
-#
-# Tools to develop new frontends
-#
-CONFIG_DVB_DUMMY_FE=m
-
-#
-# Graphics support
-#
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_TEGRA_HOST1X=m
-CONFIG_TEGRA_HOST1X_FIREWALL=y
-CONFIG_DRM=m
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_DP_AUX_CHARDEV=y
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
-CONFIG_DRM_DP_CEC=y
-CONFIG_DRM_TTM=m
-CONFIG_DRM_TTM_DMA_PAGE_POOL=y
-CONFIG_DRM_VRAM_HELPER=m
-CONFIG_DRM_TTM_HELPER=m
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_VM=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-# CONFIG_DRM_I2C_NXP_TDA9950 is not set
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-CONFIG_DRM_HDLCD=m
-# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
-CONFIG_DRM_MALI_DISPLAY=m
-# CONFIG_DRM_KOMEDA is not set
-# end of ARM devices
-
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_USERPTR=y
-CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_AMDGPU_SI is not set
-# CONFIG_DRM_AMDGPU_CIK is not set
-# CONFIG_DRM_AMDGPU_USERPTR is not set
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-CONFIG_DRM_AMD_ACP=y
-# end of ACP (Audio CoProcessor) Configuration
-
-#
-# Display Engine Configuration
-#
-CONFIG_DRM_AMD_DC=y
-# CONFIG_DRM_AMD_DC_HDCP is not set
-# CONFIG_DEBUG_KERNEL_DC is not set
-# end of Display Engine Configuration
-
-# CONFIG_HSA_AMD is not set
-CONFIG_DRM_NOUVEAU=m
-CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y
-CONFIG_NOUVEAU_PLATFORM_DRIVER=y
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-# CONFIG_NOUVEAU_DEBUG_MMU is not set
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_VKMS is not set
-# CONFIG_DRM_EXYNOS is not set
-CONFIG_DRM_ROCKCHIP=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=y
-CONFIG_ROCKCHIP_CDN_DP=y
-CONFIG_ROCKCHIP_DW_HDMI=y
-CONFIG_ROCKCHIP_DW_MIPI_DSI=y
-# CONFIG_ROCKCHIP_INNO_HDMI is not set
-CONFIG_ROCKCHIP_LVDS=y
-CONFIG_ROCKCHIP_RGB=y
-# CONFIG_ROCKCHIP_RK3066_HDMI is not set
-CONFIG_DRM_UDL=m
-# CONFIG_DRM_AST is not set
-# CONFIG_DRM_MGAG200 is not set
-# CONFIG_DRM_CIRRUS_QEMU is not set
-# CONFIG_DRM_RCAR_DW_HDMI is not set
-# CONFIG_DRM_RCAR_LVDS is not set
-CONFIG_DRM_RCAR_WRITEBACK=y
-CONFIG_DRM_SUN4I=m
-CONFIG_DRM_SUN4I_HDMI=m
-CONFIG_DRM_SUN4I_HDMI_CEC=y
-CONFIG_DRM_SUN4I_BACKEND=m
-CONFIG_DRM_SUN6I_DSI=m
-CONFIG_DRM_SUN8I_DW_HDMI=m
-CONFIG_DRM_SUN8I_MIXER=m
-CONFIG_DRM_SUN8I_TCON_TOP=m
-CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_MSM=m
-CONFIG_DRM_MSM_GPU_STATE=y
-# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
-CONFIG_DRM_MSM_HDMI_HDCP=y
-CONFIG_DRM_MSM_DSI=y
-CONFIG_DRM_MSM_DSI_PLL=y
-CONFIG_DRM_MSM_DSI_28NM_PHY=y
-CONFIG_DRM_MSM_DSI_20NM_PHY=y
-# CONFIG_DRM_MSM_DSI_28NM_8960_PHY is not set
-CONFIG_DRM_MSM_DSI_14NM_PHY=y
-CONFIG_DRM_MSM_DSI_10NM_PHY=y
-CONFIG_DRM_TEGRA=m
-# CONFIG_DRM_TEGRA_DEBUG is not set
-# CONFIG_DRM_TEGRA_STAGING is not set
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-CONFIG_DRM_PANEL_ARM_VERSATILE=m
-# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
-# CONFIG_DRM_PANEL_LVDS is not set
-# CONFIG_DRM_PANEL_SIMPLE is not set
-# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
-CONFIG_DRM_PANEL_ILITEK_IL9322=m
-# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
-# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
-# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
-# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
-# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
-# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
-# CONFIG_DRM_PANEL_LG_LG4573 is not set
-# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
-# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
-# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
-CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
-# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
-CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
-CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
-# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
-CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
-# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set
-# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
-CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
-# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
-CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
-# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
-# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
-CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
-# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
-# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
-# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
-# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
-# CONFIG_DRM_PANEL_TPO_TPG110 is not set
-# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
-# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-# CONFIG_DRM_CDNS_DSI is not set
-CONFIG_DRM_DUMB_VGA_DAC=m
-# CONFIG_DRM_LVDS_CODEC is not set
-# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
-# CONFIG_DRM_NXP_PTN3460 is not set
-# CONFIG_DRM_PARADE_PS8622 is not set
-# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_SII902X is not set
-CONFIG_DRM_SII9234=m
-# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TOSHIBA_TC358764 is not set
-# CONFIG_DRM_TOSHIBA_TC358767 is not set
-# CONFIG_DRM_TI_TFP410 is not set
-# CONFIG_DRM_TI_SN65DSI86 is not set
-# CONFIG_DRM_ANALOGIX_ANX6345 is not set
-CONFIG_DRM_ANALOGIX_ANX78XX=m
-CONFIG_DRM_ANALOGIX_DP=m
-CONFIG_DRM_I2C_ADV7511=m
-# CONFIG_DRM_I2C_ADV7511_AUDIO is not set
-# CONFIG_DRM_I2C_ADV7533 is not set
-CONFIG_DRM_I2C_ADV7511_CEC=y
-CONFIG_DRM_DW_HDMI=m
-CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
-CONFIG_DRM_DW_HDMI_CEC=m
-CONFIG_DRM_DW_MIPI_DSI=m
-# end of Display Interface Bridges
-
-CONFIG_DRM_VC4=m
-# CONFIG_DRM_VC4_HDMI_CEC is not set
-CONFIG_DRM_ETNAVIV=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
-# CONFIG_DRM_ARCPGU is not set
-# CONFIG_DRM_HISI_HIBMC is not set
-CONFIG_DRM_HISI_KIRIN=m
-# CONFIG_DRM_MEDIATEK is not set
-# CONFIG_DRM_MXSFB is not set
-# CONFIG_DRM_GM12U320 is not set
-# CONFIG_TINYDRM_HX8357D is not set
-# CONFIG_TINYDRM_ILI9225 is not set
-# CONFIG_TINYDRM_ILI9341 is not set
-# CONFIG_TINYDRM_MI0283QT is not set
-# CONFIG_TINYDRM_REPAPER is not set
-# CONFIG_TINYDRM_ST7586 is not set
-# CONFIG_TINYDRM_ST7735R is not set
-# CONFIG_DRM_PL111 is not set
-# CONFIG_DRM_XEN is not set
-# CONFIG_DRM_LIMA is not set
-# CONFIG_DRM_PANFROST is not set
-CONFIG_DRM_LEGACY=y
-# CONFIG_DRM_TDFX is not set
-# CONFIG_DRM_R128 is not set
-# CONFIG_DRM_MGA is not set
-# CONFIG_DRM_VIA is not set
-# CONFIG_DRM_SAVAGE is not set
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-CONFIG_FB_DDC=m
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_BACKLIGHT=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-# CONFIG_FB_ARMCLCD is not set
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-CONFIG_FB_UVESA=m
-CONFIG_FB_EFI=y
-# CONFIG_FB_OPENCORES is not set
-CONFIG_FB_S1D13XXX=m
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-# CONFIG_FB_I740 is not set
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-CONFIG_FB_CARMINE=m
-CONFIG_FB_CARMINE_DRAM_EVAL=y
-# CONFIG_CARMINE_DRAM_CUSTOM is not set
-CONFIG_FB_SM501=m
-# CONFIG_FB_SMSCUFX is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_XILINX is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=m
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-CONFIG_FB_SIMPLE=y
-# CONFIG_FB_SSD1307 is not set
-# CONFIG_FB_SM712 is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-# CONFIG_LCD_ILI922X is not set
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-# CONFIG_LCD_OTM3225A is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_PWM=m
-# CONFIG_BACKLIGHT_QCOM_WLED is not set
-CONFIG_BACKLIGHT_ADP8860=m
-# CONFIG_BACKLIGHT_ADP8870 is not set
-CONFIG_BACKLIGHT_PCF50633=m
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-# CONFIG_BACKLIGHT_GPIO is not set
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_BACKLIGHT_ARCXCNN is not set
-# CONFIG_BACKLIGHT_LED is not set
-# end of Backlight & LCD device support
-
-CONFIG_VGASTATE=m
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
-# end of Console display driver support
-
-# CONFIG_LOGO is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-# CONFIG_SND_SUPPORT_OLD_API is not set
-CONFIG_SND_PROC_FS=y
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_SEQUENCER_OSS=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_MIDI_EMUL=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_DUMMY=m
-# CONFIG_SND_ALOOP is not set
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-# CONFIG_SND_ALS300 is not set
-# CONFIG_SND_ALI5451 is not set
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-# CONFIG_SND_AZT3328 is not set
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-CONFIG_SND_FM801=m
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-# CONFIG_SND_ICE1712 is not set
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-# CONFIG_SND_MAESTRO3 is not set
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_TRIDENT is not set
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=m
-CONFIG_SND_HDA_INTEL=m
-CONFIG_SND_HDA_TEGRA=m
-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_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=m
-CONFIG_SND_HDA_CODEC_ANALOG=m
-CONFIG_SND_HDA_CODEC_SIGMATEL=m
-CONFIG_SND_HDA_CODEC_VIA=m
-CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_CODEC_CIRRUS=m
-CONFIG_SND_HDA_CODEC_CONEXANT=m
-CONFIG_SND_HDA_CODEC_CA0110=m
-CONFIG_SND_HDA_CODEC_CA0132=m
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=m
-CONFIG_SND_HDA_CODEC_SI3054=m
-CONFIG_SND_HDA_GENERIC=m
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_ALIGNED_MMIO=y
-CONFIG_SND_HDA_COMPONENT=y
-CONFIG_SND_HDA_PREALLOC_SIZE=4096
-CONFIG_SND_INTEL_NHLT=y
-CONFIG_SND_INTEL_DSP_CONFIG=m
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-# CONFIG_SND_USB_CAIAQ_INPUT is not set
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-# CONFIG_SND_BCD2000 is not set
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-CONFIG_SND_SOC_AMD_ACP=m
-CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
-CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
-# CONFIG_SND_ATMEL_SOC is not set
-CONFIG_SND_BCM2835_SOC_I2S=m
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-# CONFIG_SND_SOC_FSL_SAI is not set
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-# CONFIG_SND_SOC_FSL_SSI is not set
-# CONFIG_SND_SOC_FSL_SPDIF is not set
-# CONFIG_SND_SOC_FSL_ESAI is not set
-# CONFIG_SND_SOC_FSL_MICFIL is not set
-# CONFIG_SND_SOC_IMX_AUDMUX is not set
-# end of SoC Audio for Freescale CPUs
-
-# CONFIG_SND_I2S_HI6210_I2S is not set
-# CONFIG_SND_KIRKWOOD_SOC is not set
-# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_MT2701 is not set
-# CONFIG_SND_SOC_MT6797 is not set
-# CONFIG_SND_SOC_MT8173 is not set
-# CONFIG_SND_SOC_MT8183 is not set
-# CONFIG_SND_SOC_MTK_BTCVSD is not set
-# CONFIG_SND_SOC_QCOM is not set
-CONFIG_SND_SOC_ROCKCHIP=m
-CONFIG_SND_SOC_ROCKCHIP_I2S=m
-CONFIG_SND_SOC_ROCKCHIP_PDM=m
-CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
-CONFIG_SND_SOC_ROCKCHIP_RT5645=m
-CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m
-CONFIG_SND_SOC_RK3399_GRU_SOUND=m
-# CONFIG_SND_SOC_SAMSUNG is not set
-# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
-# CONFIG_SND_SOC_SPRD is not set
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-#
-# Allwinner SoC Audio support
-#
-# CONFIG_SND_SUN4I_CODEC is not set
-# CONFIG_SND_SUN8I_CODEC is not set
-# CONFIG_SND_SUN8I_CODEC_ANALOG is not set
-# CONFIG_SND_SUN50I_CODEC_ANALOG is not set
-# CONFIG_SND_SUN4I_I2S is not set
-# CONFIG_SND_SUN4I_SPDIF is not set
-# end of Allwinner SoC Audio support
-
-# CONFIG_SND_SOC_XILINX_I2S is not set
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-# CONFIG_ZX_TDM is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_ADAU1761_I2C is not set
-# CONFIG_SND_SOC_ADAU1761_SPI is not set
-CONFIG_SND_SOC_ADAU7002=m
-# CONFIG_SND_SOC_ADAU7118_HW is not set
-# CONFIG_SND_SOC_ADAU7118_I2C is not set
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4118 is not set
-CONFIG_SND_SOC_AK4458=m
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-CONFIG_SND_SOC_AK5558=m
-# CONFIG_SND_SOC_ALC5623 is not set
-CONFIG_SND_SOC_BD28623=m
-# CONFIG_SND_SOC_BT_SCO is not set
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS35L33 is not set
-# CONFIG_SND_SOC_CS35L34 is not set
-# CONFIG_SND_SOC_CS35L35 is not set
-# CONFIG_SND_SOC_CS35L36 is not set
-# CONFIG_SND_SOC_CS42L42 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS43130 is not set
-# CONFIG_SND_SOC_CS4341 is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_CS53L30 is not set
-# CONFIG_SND_SOC_CX2072X is not set
-# CONFIG_SND_SOC_DA7213 is not set
-CONFIG_SND_SOC_DA7219=m
-CONFIG_SND_SOC_DMIC=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-# CONFIG_SND_SOC_ES7134 is not set
-# CONFIG_SND_SOC_ES7241 is not set
-# CONFIG_SND_SOC_ES8316 is not set
-CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_INNO_RK3036 is not set
-# CONFIG_SND_SOC_MAX98088 is not set
-CONFIG_SND_SOC_MAX98090=m
-CONFIG_SND_SOC_MAX98357A=m
-# CONFIG_SND_SOC_MAX98504 is not set
-CONFIG_SND_SOC_MAX9867=m
-# CONFIG_SND_SOC_MAX98927 is not set
-CONFIG_SND_SOC_MAX98373=m
-# CONFIG_SND_SOC_MAX9860 is not set
-# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-CONFIG_SND_SOC_PCM1789=m
-CONFIG_SND_SOC_PCM1789_I2C=m
-# CONFIG_SND_SOC_PCM179X_I2C is not set
-# CONFIG_SND_SOC_PCM179X_SPI is not set
-CONFIG_SND_SOC_PCM186X=m
-CONFIG_SND_SOC_PCM186X_I2C=m
-CONFIG_SND_SOC_PCM186X_SPI=m
-# CONFIG_SND_SOC_PCM3060_I2C is not set
-# CONFIG_SND_SOC_PCM3060_SPI is not set
-# CONFIG_SND_SOC_PCM3168A_I2C is not set
-# CONFIG_SND_SOC_PCM3168A_SPI is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-# CONFIG_SND_SOC_RK3328 is not set
-CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
-CONFIG_SND_SOC_RT5514=m
-CONFIG_SND_SOC_RT5514_SPI=m
-# CONFIG_SND_SOC_RT5616 is not set
-# CONFIG_SND_SOC_RT5631 is not set
-CONFIG_SND_SOC_RT5645=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
-# CONFIG_SND_SOC_SGTL5000 is not set
-CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
-CONFIG_SND_SOC_SPDIF=m
-# CONFIG_SND_SOC_SSM2305 is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS2562 is not set
-# CONFIG_SND_SOC_TAS2770 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TAS5720 is not set
-CONFIG_SND_SOC_TAS6424=m
-CONFIG_SND_SOC_TDA7419=m
-# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC31XX is not set
-CONFIG_SND_SOC_TLV320AIC32X4=m
-CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
-CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
-# CONFIG_SND_SOC_TLV320AIC3X is not set
-CONFIG_SND_SOC_TS3A227E=m
-CONFIG_SND_SOC_TSCS42XX=m
-# CONFIG_SND_SOC_TSCS454 is not set
-# CONFIG_SND_SOC_UDA1334 is not set
-# CONFIG_SND_SOC_WCD9335 is not set
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8524 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-# CONFIG_SND_SOC_WM8753 is not set
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8782 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-# CONFIG_SND_SOC_WM8903 is not set
-# CONFIG_SND_SOC_WM8904 is not set
-# CONFIG_SND_SOC_WM8960 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8974 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-# CONFIG_SND_SOC_WM8985 is not set
-# CONFIG_SND_SOC_WSA881X is not set
-# CONFIG_SND_SOC_ZX_AUD96P22 is not set
-CONFIG_SND_SOC_MAX9759=m
-# CONFIG_SND_SOC_MT6351 is not set
-# CONFIG_SND_SOC_MT6358 is not set
-# CONFIG_SND_SOC_MT6660 is not set
-# CONFIG_SND_SOC_NAU8540 is not set
-# CONFIG_SND_SOC_NAU8810 is not set
-# CONFIG_SND_SOC_NAU8822 is not set
-# CONFIG_SND_SOC_NAU8824 is not set
-# CONFIG_SND_SOC_TPA6130A2 is not set
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SND_AUDIO_GRAPH_CARD is not set
-# CONFIG_SND_XEN_FRONTEND is not set
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_ACCUTOUCH is not set
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=m
-# CONFIG_HID_APPLEIR is not set
-CONFIG_HID_ASUS=m
-# CONFIG_HID_AUREAL is not set
-# CONFIG_HID_BELKIN is not set
-CONFIG_HID_BETOP_FF=m
-# CONFIG_HID_BIGBEN_FF is not set
-CONFIG_HID_CHERRY=m
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CORSAIR is not set
-CONFIG_HID_COUGAR=m
-# CONFIG_HID_MACALLY is not set
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-# CONFIG_HID_CP2112 is not set
-# CONFIG_HID_CREATIVE_SB0540 is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-CONFIG_HID_ELAN=m
-# CONFIG_HID_ELECOM is not set
-# CONFIG_HID_ELO is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_GEMBIRD is not set
-# CONFIG_HID_GFRM is not set
-# CONFIG_HID_HOLTEK is not set
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-# CONFIG_HID_KYE is not set
-CONFIG_HID_UCLOGIC=m
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_VIEWSONIC is not set
-# CONFIG_HID_GYRATION is not set
-CONFIG_HID_ICADE=m
-# CONFIG_HID_ITE is not set
-CONFIG_HID_JABRA=m
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-# CONFIG_HID_MALTRON is not set
-# CONFIG_HID_MAYFLASH is not set
-# CONFIG_HID_REDRAGON is not set
-CONFIG_HID_MICROSOFT=m
-# CONFIG_HID_MONTEREY is not set
-CONFIG_HID_MULTITOUCH=m
-# CONFIG_HID_NTI is not set
-# CONFIG_HID_NTRIG is not set
-CONFIG_HID_ORTEK=m
-# CONFIG_HID_PANTHERLORD is not set
-CONFIG_HID_PENMOUNT=m
-# CONFIG_HID_PETALYNX is not set
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PRIMAX=m
-# CONFIG_HID_RETRODE is not set
-CONFIG_HID_ROCCAT=m
-# CONFIG_HID_SAITEK is not set
-# CONFIG_HID_SAMSUNG is not set
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEAM=m
-# CONFIG_HID_STEELSERIES is not set
-# CONFIG_HID_SUNPLUS is not set
-CONFIG_HID_RMI=m
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TIVO is not set
-# CONFIG_HID_TOPSEED is not set
-CONFIG_HID_THINGM=m
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_UDRAW_PS3 is not set
-# CONFIG_HID_U2FZERO is not set
-# CONFIG_HID_WACOM is not set
-CONFIG_HID_WIIMOTE=m
-# CONFIG_HID_XINMO is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
-CONFIG_HID_ALPS=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-# CONFIG_HID_PID is not set
-CONFIG_USB_HIDDEV=y
-# end of USB HID support
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID=m
-# end of I2C HID support
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-# CONFIG_USB_ULPI_BUS is not set
-# CONFIG_USB_CONN_GPIO is not set
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=m
-CONFIG_USB_PCI=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=m
-CONFIG_USB_XHCI_PLATFORM=m
-# CONFIG_USB_XHCI_HISTB is not set
-# CONFIG_USB_XHCI_MTK is not set
-CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_TEGRA=m
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_EHCI_PCI=m
-# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD_ORION=m
-# CONFIG_USB_EHCI_TEGRA is not set
-# CONFIG_USB_EHCI_EXYNOS is not set
-CONFIG_USB_EHCI_HCD_PLATFORM=m
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_PCI=m
-CONFIG_USB_OHCI_HCD_SSB=y
-# CONFIG_USB_OHCI_EXYNOS is not set
-CONFIG_USB_OHCI_HCD_PLATFORM=m
-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_HCD_BCMA is not set
-CONFIG_USB_HCD_SSB=m
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_VHCI_HC_PORTS=8
-CONFIG_USBIP_VHCI_NR_HCS=1
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-# CONFIG_USB_CDNS3 is not set
-# CONFIG_USB_MTU3 is not set
-# CONFIG_USB_MUSB_HDRC is not set
-# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_DWC2 is not set
-# CONFIG_USB_CHIPIDEA is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-# CONFIG_USB_SERIAL_F81232 is not set
-# CONFIG_USB_SERIAL_F8153X is not set
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-# CONFIG_USB_SERIAL_METRO is not set
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-# CONFIG_USB_SERIAL_MXUPORT is not set
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-CONFIG_USB_SERIAL_SAFE_PADDED=y
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-# CONFIG_USB_SERIAL_WISHBONE is not set
-# CONFIG_USB_SERIAL_SSU100 is not set
-CONFIG_USB_SERIAL_QT2=m
-# CONFIG_USB_SERIAL_UPD78F0730 is not set
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-# CONFIG_USB_LEGOTOWER is not set
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-# CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-# CONFIG_USB_TRANCEVIBRATOR is not set
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-# CONFIG_USB_EHSET_TEST_FIXTURE is not set
-CONFIG_USB_ISIGHTFW=m
-# CONFIG_USB_YUREX is not set
-CONFIG_USB_EZUSB_FX2=m
-# CONFIG_USB_HUB_USB251XB is not set
-CONFIG_USB_HSIC_USB3503=m
-CONFIG_USB_HSIC_USB4604=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_USB_GPIO_VBUS=m
-# CONFIG_USB_ISP1301 is not set
-CONFIG_USB_TEGRA_PHY=m
-CONFIG_USB_ULPI=y
-CONFIG_USB_ULPI_VIEWPORT=y
-# end of USB Physical Layer drivers
-
-# CONFIG_USB_GADGET is not set
-CONFIG_TYPEC=m
-# CONFIG_TYPEC_TCPM is not set
-# CONFIG_TYPEC_UCSI is not set
-# CONFIG_TYPEC_HD3SS3220 is not set
-CONFIG_TYPEC_TPS6598X=m
-
-#
-# USB Type-C Multiplexer/DeMultiplexer Switch support
-#
-CONFIG_TYPEC_MUX_PI3USB30532=m
-# end of USB Type-C Multiplexer/DeMultiplexer Switch support
-
-#
-# USB Type-C Alternate Mode drivers
-#
-CONFIG_TYPEC_DP_ALTMODE=m
-# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
-# end of USB Type-C Alternate Mode drivers
-
-CONFIG_USB_ROLE_SWITCH=m
-CONFIG_MMC=m
-# CONFIG_PWRSEQ_EMMC is not set
-# CONFIG_PWRSEQ_SD8787 is not set
-# CONFIG_PWRSEQ_SIMPLE is not set
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_SDIO_UART=m
-CONFIG_MMC_TEST=m
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_ARMMMCI=m
-CONFIG_MMC_QCOM_DML=y
-CONFIG_MMC_STM32_SDMMC=y
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-# CONFIG_MMC_SDHCI_ACPI is not set
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_OF_ARASAN=m
-# CONFIG_MMC_SDHCI_OF_ASPEED is not set
-CONFIG_MMC_SDHCI_OF_AT91=m
-CONFIG_MMC_SDHCI_OF_ESDHC=m
-# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
-# CONFIG_MMC_SDHCI_CADENCE is not set
-CONFIG_MMC_SDHCI_TEGRA=m
-CONFIG_MMC_SDHCI_PXAV3=m
-CONFIG_MMC_SDHCI_F_SDH30=m
-# CONFIG_MMC_SDHCI_MILBEAUT is not set
-CONFIG_MMC_SDHCI_IPROC=m
-CONFIG_MMC_SDHCI_MSM=m
-CONFIG_MMC_TIFM_SD=m
-# CONFIG_MMC_SPI is not set
-# CONFIG_MMC_SDHCI_SPRD is not set
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_CAVIUM_THUNDERX=m
-CONFIG_MMC_DW=m
-CONFIG_MMC_DW_PLTFM=m
-# CONFIG_MMC_DW_BLUEFIELD is not set
-CONFIG_MMC_DW_EXYNOS=m
-CONFIG_MMC_DW_HI3798CV200=m
-CONFIG_MMC_DW_K3=m
-CONFIG_MMC_DW_PCI=m
-CONFIG_MMC_DW_ROCKCHIP=m
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-CONFIG_MMC_SUNXI=m
-CONFIG_MMC_CQHCI=m
-CONFIG_MMC_TOSHIBA_PCI=m
-# CONFIG_MMC_BCM2835 is not set
-CONFIG_MMC_MTK=m
-CONFIG_MMC_SDHCI_XENON=m
-CONFIG_MMC_SDHCI_OMAP=m
-# CONFIG_MMC_SDHCI_AM654 is not set
-CONFIG_MMC_SDHCI_EXTERNAL_DMA=y
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_CLASS_FLASH=m
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_AAT1290 is not set
-# CONFIG_LEDS_AN30259A is not set
-# CONFIG_LEDS_AS3645A is not set
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-CONFIG_LEDS_CR0014114=m
-# CONFIG_LEDS_EL15203000 is not set
-CONFIG_LEDS_LM3530=m
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-CONFIG_LEDS_LM3692X=m
-CONFIG_LEDS_LM3601X=m
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_GPIO is not set
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-# 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_PWM is not set
-# CONFIG_LEDS_REGULATOR is not set
-# CONFIG_LEDS_BD2802 is not set
-CONFIG_LEDS_LT3593=m
-# CONFIG_LEDS_TCA6507 is not set
-# CONFIG_LEDS_TLC591XX is not set
-# CONFIG_LEDS_LM355x is not set
-# CONFIG_LEDS_KTD2692 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=m
-# CONFIG_LEDS_SYSCON is not set
-CONFIG_LEDS_MLXREG=m
-# CONFIG_LEDS_USER is not set
-# CONFIG_LEDS_SPI_BYTE is not set
-# CONFIG_LEDS_TI_LMU_COMMON is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-CONFIG_LEDS_TRIGGER_MTD=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-# CONFIG_LEDS_TRIGGER_CPU is not set
-CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_LEDS_TRIGGER_PANIC=y
-CONFIG_LEDS_TRIGGER_NETDEV=m
-# CONFIG_LEDS_TRIGGER_PATTERN is not set
-CONFIG_LEDS_TRIGGER_AUDIO=m
-CONFIG_ACCESSIBILITY=y
-# CONFIG_A11Y_BRAILLE_CONSOLE is not set
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-CONFIG_INFINIBAND_MTHCA=m
-CONFIG_INFINIBAND_MTHCA_DEBUG=y
-CONFIG_INFINIBAND_CXGB4=m
-# CONFIG_INFINIBAND_EFA is not set
-CONFIG_INFINIBAND_I40IW=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-# CONFIG_INFINIBAND_OCRDMA is not set
-# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set
-# CONFIG_INFINIBAND_HNS is not set
-# CONFIG_INFINIBAND_QEDR is not set
-CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
-CONFIG_INFINIBAND_IPOIB=m
-# CONFIG_INFINIBAND_IPOIB_CM is not set
-CONFIG_INFINIBAND_IPOIB_DEBUG=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-# CONFIG_INFINIBAND_ISERT is not set
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EDAC=y
-CONFIG_EDAC_LEGACY_SYSFS=y
-# CONFIG_EDAC_DEBUG is not set
-# CONFIG_EDAC_LAYERSCAPE is not set
-CONFIG_EDAC_THUNDERX=m
-# CONFIG_EDAC_ALTERA is not set
-# CONFIG_EDAC_SYNOPSYS is not set
-CONFIG_EDAC_XGENE=m
-# CONFIG_EDAC_QCOM is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_TEST=m
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABEOZ9 is not set
-CONFIG_RTC_DRV_ABX80X=m
-CONFIG_RTC_DRV_AC100=m
-CONFIG_RTC_DRV_DS1307=m
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-# CONFIG_RTC_DRV_HYM8563 is not set
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-# CONFIG_RTC_DRV_ISL12022 is not set
-CONFIG_RTC_DRV_ISL12026=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF85063=m
-# CONFIG_RTC_DRV_PCF85363 is not set
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8010=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-# CONFIG_RTC_DRV_RV3028 is not set
-CONFIG_RTC_DRV_RV8803=m
-# CONFIG_RTC_DRV_SD3078 is not set
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-# CONFIG_RTC_DRV_DS1302 is not set
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6916=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RX4581=m
-# CONFIG_RTC_DRV_RX6110 is not set
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_MCP795=m
-CONFIG_RTC_I2C_AND_SPI=m
-
-#
-# SPI and I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS3232 is not set
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV3029_HWMON=y
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-# CONFIG_RTC_DRV_EFI is not set
-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_ZYNQMP is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_FSL_FTM_ALARM=y
-CONFIG_HAVE_S3C_RTC=y
-# CONFIG_RTC_DRV_S3C is not set
-# CONFIG_RTC_DRV_PL030 is not set
-# CONFIG_RTC_DRV_PL031 is not set
-CONFIG_RTC_DRV_SUN6I=y
-CONFIG_RTC_DRV_MV=m
-CONFIG_RTC_DRV_ARMADA38X=m
-# CONFIG_RTC_DRV_CADENCE is not set
-# CONFIG_RTC_DRV_FTRTC010 is not set
-# CONFIG_RTC_DRV_TEGRA is not set
-CONFIG_RTC_DRV_SNVS=m
-# CONFIG_RTC_DRV_MT7622 is not set
-CONFIG_RTC_DRV_XGENE=m
-# CONFIG_RTC_DRV_R7301 is not set
-
-#
-# HID Sensor RTC drivers
-#
-# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_ACPI=y
-CONFIG_DMA_OF=y
-# CONFIG_ALTERA_MSGDMA is not set
-# CONFIG_AMBA_PL08X is not set
-# CONFIG_AXI_DMAC is not set
-# CONFIG_BCM_SBA_RAID is not set
-CONFIG_DMA_BCM2835=m
-# CONFIG_DMA_SUN6I is not set
-# CONFIG_DW_AXI_DMAC is not set
-CONFIG_FSL_EDMA=m
-# CONFIG_FSL_QDMA is not set
-# CONFIG_HISI_DMA is not set
-CONFIG_INTEL_IDMA64=m
-# CONFIG_K3_DMA is not set
-CONFIG_MV_XOR=y
-# CONFIG_MV_XOR_V2 is not set
-CONFIG_PL330_DMA=m
-# CONFIG_PLX_DMA is not set
-# CONFIG_SPRD_DMA is not set
-# CONFIG_TEGRA20_APB_DMA is not set
-CONFIG_TEGRA210_ADMA=y
-CONFIG_XGENE_DMA=m
-# CONFIG_XILINX_DMA is not set
-# CONFIG_XILINX_ZYNQMP_DMA is not set
-# CONFIG_MTK_HSDMA is not set
-# CONFIG_MTK_CQDMA is not set
-CONFIG_QCOM_BAM_DMA=m
-CONFIG_QCOM_HIDMA_MGMT=m
-CONFIG_QCOM_HIDMA=m
-CONFIG_DW_DMAC_CORE=m
-# CONFIG_DW_DMAC is not set
-CONFIG_DW_DMAC_PCI=m
-# CONFIG_DW_EDMA is not set
-# CONFIG_DW_EDMA_PCIE is not set
-# CONFIG_SF_PDMA is not set
-
-#
-# DMA Clients
-#
-# CONFIG_ASYNC_TX_DMA is not set
-CONFIG_DMATEST=m
-CONFIG_DMA_ENGINE_RAID=y
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-CONFIG_AUXDISPLAY=y
-# CONFIG_HD44780 is not set
-# CONFIG_IMG_ASCII_LCD is not set
-# CONFIG_HT16K33 is not set
-# CONFIG_PARPORT_PANEL is not set
-# CONFIG_CHARLCD_BL_OFF is not set
-# CONFIG_CHARLCD_BL_ON is not set
-CONFIG_CHARLCD_BL_FLASH=y
-# CONFIG_PANEL is not set
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_PDRV_GENIRQ=m
-# CONFIG_UIO_DMEM_GENIRQ is not set
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-# CONFIG_UIO_PRUSS is not set
-# CONFIG_UIO_MF624 is not set
-CONFIG_VFIO_IOMMU_TYPE1=m
-CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
-# CONFIG_VFIO_NOIOMMU is not set
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_MMAP=y
-CONFIG_VFIO_PCI_INTX=y
-CONFIG_VFIO_PLATFORM=m
-CONFIG_VFIO_AMBA=m
-# CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET is not set
-# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
-# CONFIG_VFIO_MDEV is not set
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_PCI_LEGACY=y
-# CONFIG_VIRTIO_PMEM is not set
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# end of Microsoft Hyper-V guest support
-
-#
-# Xen driver support
-#
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=m
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-# CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
-CONFIG_XEN_PVCALLS_FRONTEND=m
-# CONFIG_XEN_PVCALLS_BACKEND is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_PRIVCMD=m
-CONFIG_XEN_EFI=y
-CONFIG_XEN_AUTO_XLATE=y
-# end of Xen driver support
-
-# CONFIG_GREYBUS is not set
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
-# CONFIG_RTL8192U is not set
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-# CONFIG_RTL8192E is not set
-# CONFIG_RTL8723BS is not set
-# CONFIG_R8712U is not set
-# CONFIG_R8188EU is not set
-# CONFIG_RTS5208 is not set
-# CONFIG_VT6655 is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16240 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7816 is not set
-# CONFIG_AD7192 is not set
-# CONFIG_AD7280 is not set
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# CONFIG_AD7746 is not set
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-# CONFIG_AD5933 is not set
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7854 is not set
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S1210 is not set
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-# CONFIG_FB_SM750 is not set
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-# end of Speakup console speech
-
-# CONFIG_MFD_NVEC is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
-# CONFIG_FB_TFT is not set
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI is not set
-# CONFIG_MOST is not set
-# CONFIG_KS7010 is not set
-CONFIG_BCM_VIDEOCORE=m
-# CONFIG_BCM2835_VCHIQ is not set
-# CONFIG_SND_BCM2835 is not set
-# CONFIG_VIDEO_BCM2835 is not set
-# CONFIG_PI433 is not set
-
-#
-# Gasket devices
-#
-# CONFIG_STAGING_GASKET_FRAMEWORK is not set
-# end of Gasket devices
-
-# CONFIG_XIL_AXIS_FIFO is not set
-# CONFIG_FIELDBUS_DEV is not set
-# CONFIG_KPC2000 is not set
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_I1480U=m
-# CONFIG_STAGING_EXFAT_FS is not set
-# CONFIG_QLGE is not set
-CONFIG_NET_VENDOR_HP=y
-CONFIG_HP100=m
-# CONFIG_WFX is not set
-# CONFIG_GOLDFISH is not set
-# CONFIG_MFD_CROS_EC is not set
-CONFIG_CHROME_PLATFORMS=y
-# CONFIG_CHROMEOS_TBMC is not set
-# CONFIG_CROS_EC is not set
-# CONFIG_CROS_KBD_LED_BACKLIGHT is not set
-# CONFIG_MELLANOX_PLATFORM is not set
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
-CONFIG_COMMON_CLK_VERSATILE=y
-CONFIG_CLK_SP810=y
-CONFIG_CLK_VEXPRESS_OSC=y
-# CONFIG_CLK_HSDK is not set
-# CONFIG_COMMON_CLK_MAX9485 is not set
-CONFIG_COMMON_CLK_HI655X=m
-CONFIG_COMMON_CLK_SCMI=m
-# CONFIG_COMMON_CLK_SI5341 is not set
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-CONFIG_COMMON_CLK_SI544=m
-# CONFIG_COMMON_CLK_SI570 is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-# CONFIG_COMMON_CLK_CS2000_CP is not set
-# CONFIG_COMMON_CLK_FSL_SAI is not set
-# CONFIG_CLK_QORIQ is not set
-CONFIG_CLK_LS1028A_PLLDIG=y
-CONFIG_COMMON_CLK_XGENE=y
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_VC5 is not set
-# CONFIG_COMMON_CLK_FIXED_MMIO is not set
-CONFIG_CLK_BCM2835=y
-# CONFIG_CLK_RASPBERRYPI is not set
-CONFIG_COMMON_CLK_HI3516CV300=y
-# CONFIG_COMMON_CLK_HI3519 is not set
-CONFIG_COMMON_CLK_HI3660=y
-CONFIG_COMMON_CLK_HI3670=y
-CONFIG_COMMON_CLK_HI3798CV200=y
-CONFIG_COMMON_CLK_HI6220=y
-CONFIG_RESET_HISI=y
-CONFIG_STUB_CLK_HI6220=y
-CONFIG_STUB_CLK_HI3660=y
-
-#
-# Clock driver for MediaTek SoC
-#
-CONFIG_COMMON_CLK_MEDIATEK=y
-# CONFIG_COMMON_CLK_MT2712 is not set
-CONFIG_COMMON_CLK_MT6779=y
-# CONFIG_COMMON_CLK_MT6779_MMSYS is not set
-# CONFIG_COMMON_CLK_MT6779_IMGSYS is not set
-# CONFIG_COMMON_CLK_MT6779_IPESYS is not set
-# CONFIG_COMMON_CLK_MT6779_CAMSYS is not set
-# CONFIG_COMMON_CLK_MT6779_VDECSYS is not set
-# CONFIG_COMMON_CLK_MT6779_VENCSYS is not set
-# CONFIG_COMMON_CLK_MT6779_MFGCFG is not set
-# CONFIG_COMMON_CLK_MT6779_AUDSYS is not set
-CONFIG_COMMON_CLK_MT6797=y
-# CONFIG_COMMON_CLK_MT6797_MMSYS is not set
-# CONFIG_COMMON_CLK_MT6797_IMGSYS is not set
-# CONFIG_COMMON_CLK_MT6797_VDECSYS is not set
-# CONFIG_COMMON_CLK_MT6797_VENCSYS is not set
-# CONFIG_COMMON_CLK_MT7622 is not set
-# CONFIG_COMMON_CLK_MT8173 is not set
-CONFIG_COMMON_CLK_MT8183=y
-# CONFIG_COMMON_CLK_MT8183_AUDIOSYS is not set
-# CONFIG_COMMON_CLK_MT8183_CAMSYS is not set
-# CONFIG_COMMON_CLK_MT8183_IMGSYS is not set
-# CONFIG_COMMON_CLK_MT8183_IPU_CORE0 is not set
-# CONFIG_COMMON_CLK_MT8183_IPU_CORE1 is not set
-# CONFIG_COMMON_CLK_MT8183_IPU_ADL is not set
-# CONFIG_COMMON_CLK_MT8183_IPU_CONN is not set
-# CONFIG_COMMON_CLK_MT8183_MFGCFG is not set
-# 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_COMMON_CLK_MT8516=y
-# CONFIG_COMMON_CLK_MT8516_AUDSYS is not set
-# end of Clock driver for MediaTek SoC
-
-CONFIG_ARMADA_AP_CP_HELPER=y
-CONFIG_ARMADA_37XX_CLK=y
-CONFIG_ARMADA_AP806_SYSCON=y
-CONFIG_ARMADA_CP110_SYSCON=y
-# CONFIG_COMMON_CLK_QCOM is not set
-CONFIG_COMMON_CLK_SAMSUNG=y
-CONFIG_EXYNOS_ARM64_COMMON_CLK=y
-# CONFIG_EXYNOS_AUDSS_CLK_CON is not set
-# CONFIG_SPRD_COMMON_CLK is not set
-CONFIG_CLK_SUNXI=y
-CONFIG_CLK_SUNXI_CLOCKS=y
-CONFIG_CLK_SUNXI_PRCM_SUN6I=y
-CONFIG_CLK_SUNXI_PRCM_SUN8I=y
-CONFIG_CLK_SUNXI_PRCM_SUN9I=y
-CONFIG_SUNXI_CCU=y
-CONFIG_SUN50I_A64_CCU=y
-CONFIG_SUN50I_H6_CCU=y
-CONFIG_SUN50I_H6_R_CCU=y
-# CONFIG_SUN8I_A83T_CCU is not set
-# CONFIG_SUN8I_H3_CCU is not set
-# CONFIG_SUN8I_DE2_CCU is not set
-CONFIG_SUN8I_R_CCU=y
-CONFIG_CLK_TEGRA_BPMP=y
-CONFIG_TEGRA_CLK_DFLL=y
-# CONFIG_COMMON_CLK_ZYNQMP is not set
-# end of Common Clock Framework
-
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_ACPI=y
-CONFIG_TIMER_PROBE=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_ROCKCHIP_TIMER=y
-CONFIG_TEGRA_TIMER=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
-CONFIG_FSL_ERRATUM_A008585=y
-CONFIG_HISILICON_ERRATUM_161010101=y
-CONFIG_ARM64_ERRATUM_858921=y
-CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
-CONFIG_ARM_TIMER_SP804=y
-CONFIG_MTK_TIMER=y
-CONFIG_SPRD_TIMER=y
-CONFIG_CLKSRC_VERSATILE=y
-# CONFIG_MICROCHIP_PIT64B is not set
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-CONFIG_ARM_MHU=m
-CONFIG_PLATFORM_MHU=m
-CONFIG_PL320_MBOX=y
-# CONFIG_ARMADA_37XX_RWTM_MBOX is not set
-CONFIG_ROCKCHIP_MBOX=y
-CONFIG_PCC=y
-# CONFIG_ALTERA_MBOX is not set
-CONFIG_BCM2835_MBOX=m
-CONFIG_HI3660_MBOX=y
-CONFIG_HI6220_MBOX=y
-# CONFIG_MAILBOX_TEST is not set
-# CONFIG_QCOM_APCS_IPC is not set
-CONFIG_TEGRA_HSP_MBOX=y
-CONFIG_XGENE_SLIMPRO_MBOX=y
-# CONFIG_MTK_CMDQ_MBOX is not set
-CONFIG_ZYNQMP_IPI_MBOX=y
-CONFIG_IOMMU_IOVA=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-CONFIG_IOMMU_IO_PGTABLE=y
-CONFIG_IOMMU_IO_PGTABLE_LPAE=y
-# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
-# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_OF_IOMMU=y
-CONFIG_IOMMU_DMA=y
-CONFIG_ROCKCHIP_IOMMU=y
-# CONFIG_TEGRA_IOMMU_SMMU is not set
-# CONFIG_EXYNOS_IOMMU is not set
-CONFIG_ARM_SMMU=y
-# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
-CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
-CONFIG_ARM_SMMU_V3=y
-# CONFIG_MTK_IOMMU is not set
-# CONFIG_QCOM_IOMMU is not set
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-CONFIG_RPMSG=m
-# CONFIG_RPMSG_CHAR is not set
-# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
-CONFIG_RPMSG_VIRTIO=m
-# end of Rpmsg drivers
-
-CONFIG_SOUNDWIRE=y
-
-#
-# SoundWire Devices
-#
-# CONFIG_SOUNDWIRE_INTEL is not set
-# CONFIG_SOUNDWIRE_QCOM 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
-#
-CONFIG_BCM2835_POWER=y
-# CONFIG_SOC_BRCMSTB is not set
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# CONFIG_FSL_DPAA is not set
-# CONFIG_QUICC_ENGINE is not set
-CONFIG_FSL_GUTS=y
-CONFIG_DPAA2_CONSOLE=y
-# CONFIG_FSL_RCPM is not set
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-# end of i.MX SoC drivers
-
-#
-# MediaTek SoC drivers
-#
-# CONFIG_MTK_CMDQ is not set
-CONFIG_MTK_INFRACFG=y
-# CONFIG_MTK_PMIC_WRAP is not set
-CONFIG_MTK_SCPSYS=y
-# end of MediaTek SoC drivers
-
-#
-# Qualcomm SoC drivers
-#
-# CONFIG_QCOM_AOSS_QMP is not set
-CONFIG_QCOM_COMMAND_DB=y
-CONFIG_QCOM_GENI_SE=m
-# CONFIG_QCOM_GSBI is not set
-CONFIG_QCOM_LLCC=m
-CONFIG_QCOM_MDT_LOADER=m
-# CONFIG_QCOM_OCMEM is not set
-CONFIG_QCOM_QMI_HELPERS=m
-CONFIG_QCOM_RMTFS_MEM=m
-CONFIG_QCOM_RPMH=y
-# CONFIG_QCOM_RPMHPD is not set
-CONFIG_QCOM_SMD_RPM=m
-CONFIG_QCOM_WCNSS_CTRL=m
-# CONFIG_QCOM_APR is not set
-# end of Qualcomm SoC drivers
-
-CONFIG_ROCKCHIP_GRF=y
-CONFIG_ROCKCHIP_PM_DOMAINS=y
-CONFIG_SOC_SAMSUNG=y
-CONFIG_EXYNOS_CHIPID=y
-CONFIG_EXYNOS_PMU=y
-CONFIG_EXYNOS_PM_DOMAINS=y
-CONFIG_SUNXI_SRAM=y
-CONFIG_ARCH_TEGRA_132_SOC=y
-CONFIG_ARCH_TEGRA_210_SOC=y
-# CONFIG_ARCH_TEGRA_186_SOC is not set
-CONFIG_ARCH_TEGRA_194_SOC=y
-CONFIG_SOC_TEGRA_FUSE=y
-CONFIG_SOC_TEGRA_FLOWCTRL=y
-CONFIG_SOC_TEGRA_PMC=y
-CONFIG_SOC_TEGRA_POWERGATE_BPMP=y
-# CONFIG_SOC_TI is not set
-
-#
-# Xilinx SoC drivers
-#
-CONFIG_XILINX_VCU=m
-CONFIG_ZYNQMP_POWER=y
-CONFIG_ZYNQMP_PM_DOMAINS=y
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
-CONFIG_DEVFREQ_GOV_PERFORMANCE=m
-CONFIG_DEVFREQ_GOV_POWERSAVE=m
-CONFIG_DEVFREQ_GOV_USERSPACE=m
-# CONFIG_DEVFREQ_GOV_PASSIVE is not set
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set
-# CONFIG_ARM_TEGRA_DEVFREQ is not set
-CONFIG_ARM_RK3399_DMC_DEVFREQ=m
-CONFIG_PM_DEVFREQ_EVENT=y
-# CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP is not set
-# CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU is not set
-CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=m
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-# CONFIG_EXTCON_FSA9480 is not set
-CONFIG_EXTCON_GPIO=m
-# CONFIG_EXTCON_MAX3355 is not set
-# CONFIG_EXTCON_PTN5150 is not set
-# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-# CONFIG_EXTCON_USB_GPIO is not set
-CONFIG_MEMORY=y
-# CONFIG_ARM_PL172_MPMC is not set
-CONFIG_TEGRA_MC=y
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-# CONFIG_IIO_CONFIGFS is not set
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_DEVICE is not set
-# CONFIG_IIO_SW_TRIGGER is not set
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADXL372_SPI is not set
-# CONFIG_ADXL372_I2C is not set
-# CONFIG_BMA180 is not set
-# CONFIG_BMA220 is not set
-# CONFIG_BMA400 is not set
-# CONFIG_BMC150_ACCEL is not set
-# CONFIG_DA280 is not set
-# CONFIG_DA311 is not set
-# CONFIG_DMARD06 is not set
-# CONFIG_DMARD09 is not set
-# CONFIG_DMARD10 is not set
-CONFIG_HID_SENSOR_ACCEL_3D=m
-# CONFIG_IIO_ST_ACCEL_3AXIS is not set
-# CONFIG_KXSD9 is not set
-# CONFIG_KXCJK1013 is not set
-# CONFIG_MC3230 is not set
-# CONFIG_MMA7455_I2C is not set
-# CONFIG_MMA7455_SPI is not set
-# CONFIG_MMA7660 is not set
-# CONFIG_MMA8452 is not set
-# CONFIG_MMA9551 is not set
-# CONFIG_MMA9553 is not set
-# CONFIG_MXC4005 is not set
-# CONFIG_MXC6255 is not set
-# CONFIG_SCA3000 is not set
-# CONFIG_STK8312 is not set
-# CONFIG_STK8BA50 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7091R5 is not set
-# CONFIG_AD7124 is not set
-# CONFIG_AD7266 is not set
-# CONFIG_AD7291 is not set
-# CONFIG_AD7292 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-# CONFIG_AD7606_IFACE_SPI is not set
-# CONFIG_AD7766 is not set
-# CONFIG_AD7768_1 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7791 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7923 is not set
-# CONFIG_AD7949 is not set
-# CONFIG_AD799X is not set
-# CONFIG_AXP20X_ADC is not set
-# CONFIG_AXP288_ADC is not set
-# CONFIG_BERLIN2_ADC is not set
-# CONFIG_CC10001_ADC is not set
-# CONFIG_ENVELOPE_DETECTOR is not set
-# CONFIG_EXYNOS_ADC is not set
-# CONFIG_HI8435 is not set
-# CONFIG_HX711 is not set
-# CONFIG_INA2XX_ADC is not set
-# CONFIG_LTC2471 is not set
-# CONFIG_LTC2485 is not set
-# CONFIG_LTC2496 is not set
-# CONFIG_LTC2497 is not set
-# CONFIG_MAX1027 is not set
-# CONFIG_MAX11100 is not set
-# CONFIG_MAX1118 is not set
-# CONFIG_MAX1363 is not set
-# CONFIG_MAX9611 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
-# CONFIG_MCP3911 is not set
-# CONFIG_MEDIATEK_MT6577_AUXADC is not set
-# CONFIG_NAU7802 is not set
-CONFIG_ROCKCHIP_SARADC=m
-# CONFIG_SD_ADC_MODULATOR is not set
-# CONFIG_TI_ADC081C is not set
-# CONFIG_TI_ADC0832 is not set
-# CONFIG_TI_ADC084S021 is not set
-# CONFIG_TI_ADC12138 is not set
-# CONFIG_TI_ADC108S102 is not set
-# CONFIG_TI_ADC128S052 is not set
-# CONFIG_TI_ADC161S626 is not set
-# CONFIG_TI_ADS1015 is not set
-# CONFIG_TI_ADS7950 is not set
-# CONFIG_TI_ADS8344 is not set
-# CONFIG_TI_ADS8688 is not set
-# CONFIG_TI_ADS124S08 is not set
-# CONFIG_TI_TLC4541 is not set
-# CONFIG_VF610_ADC is not set
-# CONFIG_XILINX_XADC is not set
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# CONFIG_IIO_RESCALE is not set
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-# CONFIG_AD8366 is not set
-# end of Amplifiers
-
-#
-# Chemical Sensors
-#
-# CONFIG_ATLAS_PH_SENSOR is not set
-# CONFIG_BME680 is not set
-# CONFIG_CCS811 is not set
-# CONFIG_IAQCORE is not set
-# CONFIG_SENSIRION_SGP30 is not set
-# CONFIG_SPS30 is not set
-# CONFIG_VZ89X is not set
-# end of Chemical Sensors
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# end of Hid Sensor IIO Common
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-# end of SSP Sensor Common
-
-#
-# Digital to analog converters
-#
-# CONFIG_AD5064 is not set
-# CONFIG_AD5360 is not set
-# CONFIG_AD5380 is not set
-# CONFIG_AD5421 is not set
-# CONFIG_AD5446 is not set
-# CONFIG_AD5449 is not set
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_LTC1660 is not set
-# CONFIG_LTC2632 is not set
-# CONFIG_AD5686_SPI is not set
-# CONFIG_AD5696_I2C is not set
-# CONFIG_AD5755 is not set
-# CONFIG_AD5758 is not set
-# CONFIG_AD5761 is not set
-# CONFIG_AD5764 is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD7303 is not set
-# CONFIG_AD8801 is not set
-# CONFIG_DPOT_DAC is not set
-# CONFIG_DS4424 is not set
-# CONFIG_M62332 is not set
-# CONFIG_MAX517 is not set
-# CONFIG_MAX5821 is not set
-# CONFIG_MCP4725 is not set
-# CONFIG_MCP4922 is not set
-# CONFIG_TI_DAC082S085 is not set
-# CONFIG_TI_DAC5571 is not set
-# CONFIG_TI_DAC7311 is not set
-# CONFIG_TI_DAC7612 is not set
-# CONFIG_VF610_DAC is not set
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-# CONFIG_AD9523 is not set
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-# CONFIG_ADF4350 is not set
-# CONFIG_ADF4371 is not set
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16136 is not set
-# CONFIG_ADIS16260 is not set
-# CONFIG_ADXRS450 is not set
-# CONFIG_BMG160 is not set
-# CONFIG_FXAS21002C is not set
-CONFIG_HID_SENSOR_GYRO_3D=m
-# CONFIG_MPU3050_I2C is not set
-# CONFIG_IIO_ST_GYRO_3AXIS is not set
-# CONFIG_ITG3200 is not set
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-# CONFIG_AFE4403 is not set
-# CONFIG_AFE4404 is not set
-# CONFIG_MAX30100 is not set
-# CONFIG_MAX30102 is not set
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-# CONFIG_DHT11 is not set
-# CONFIG_HDC100X is not set
-CONFIG_HID_SENSOR_HUMIDITY=m
-# CONFIG_HTS221 is not set
-# CONFIG_HTU21 is not set
-# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-# CONFIG_ADIS16460 is not set
-# CONFIG_ADIS16480 is not set
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-# CONFIG_FXOS8700_I2C is not set
-# CONFIG_FXOS8700_SPI is not set
-# CONFIG_KMX61 is not set
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_SPI is not set
-# CONFIG_IIO_ST_LSM6DSX is not set
-# end of Inertial measurement units
-
-#
-# Light sensors
-#
-# CONFIG_ACPI_ALS is not set
-# CONFIG_ADJD_S311 is not set
-# CONFIG_ADUX1020 is not set
-# CONFIG_AL3320A is not set
-# CONFIG_APDS9300 is not set
-# CONFIG_APDS9960 is not set
-# CONFIG_BH1750 is not set
-# CONFIG_BH1780 is not set
-# CONFIG_CM32181 is not set
-# CONFIG_CM3232 is not set
-# CONFIG_CM3323 is not set
-# CONFIG_CM3605 is not set
-# CONFIG_CM36651 is not set
-# CONFIG_GP2AP020A00F is not set
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_ISL29028 is not set
-# CONFIG_ISL29125 is not set
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-# CONFIG_JSA1212 is not set
-# CONFIG_RPR0521 is not set
-# CONFIG_LTR501 is not set
-# CONFIG_LV0104CS is not set
-# CONFIG_MAX44000 is not set
-# CONFIG_MAX44009 is not set
-# CONFIG_NOA1305 is not set
-# CONFIG_OPT3001 is not set
-# CONFIG_PA12203001 is not set
-# CONFIG_SI1133 is not set
-# CONFIG_SI1145 is not set
-# CONFIG_STK3310 is not set
-# CONFIG_ST_UVIS25 is not set
-# CONFIG_TCS3414 is not set
-# CONFIG_TCS3472 is not set
-# CONFIG_SENSORS_TSL2563 is not set
-# CONFIG_TSL2583 is not set
-# CONFIG_TSL2772 is not set
-# CONFIG_TSL4531 is not set
-# CONFIG_US5182D is not set
-# CONFIG_VCNL4000 is not set
-# CONFIG_VCNL4035 is not set
-# CONFIG_VEML6030 is not set
-# CONFIG_VEML6070 is not set
-# CONFIG_VL6180 is not set
-# CONFIG_ZOPT2201 is not set
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
-# CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-# CONFIG_MAG3110 is not set
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-# CONFIG_MMC35240 is not set
-# CONFIG_IIO_ST_MAGN_3AXIS is not set
-# CONFIG_SENSORS_HMC5843_I2C is not set
-# CONFIG_SENSORS_HMC5843_SPI is not set
-# CONFIG_SENSORS_RM3100_I2C is not set
-# CONFIG_SENSORS_RM3100_SPI is not set
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# CONFIG_IIO_MUX is not set
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-# CONFIG_IIO_INTERRUPT_TRIGGER is not set
-# CONFIG_IIO_SYSFS_TRIGGER is not set
-# end of Triggers - standalone
-
-#
-# Digital potentiometers
-#
-# CONFIG_AD5272 is not set
-# CONFIG_DS1803 is not set
-# CONFIG_MAX5432 is not set
-# CONFIG_MAX5481 is not set
-# CONFIG_MAX5487 is not set
-# CONFIG_MCP4018 is not set
-# CONFIG_MCP4131 is not set
-# CONFIG_MCP4531 is not set
-# CONFIG_MCP41010 is not set
-# CONFIG_TPL0102 is not set
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-# CONFIG_LMP91000 is not set
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-# CONFIG_ABP060MG is not set
-# CONFIG_BMP280 is not set
-# CONFIG_DLHL60D is not set
-# CONFIG_DPS310 is not set
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-# CONFIG_MPL115_I2C is not set
-# CONFIG_MPL115_SPI is not set
-# CONFIG_MPL3115 is not set
-# CONFIG_MS5611 is not set
-# CONFIG_MS5637 is not set
-# CONFIG_IIO_ST_PRESS is not set
-# CONFIG_T5403 is not set
-# CONFIG_HP206C is not set
-# CONFIG_ZPA2326 is not set
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-# CONFIG_AS3935 is not set
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-# CONFIG_ISL29501 is not set
-# CONFIG_LIDAR_LITE_V2 is not set
-# CONFIG_MB1232 is not set
-# CONFIG_PING is not set
-# CONFIG_RFD77402 is not set
-# CONFIG_SRF04 is not set
-# CONFIG_SX9500 is not set
-# CONFIG_SRF08 is not set
-# CONFIG_VL53L0X_I2C is not set
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-# CONFIG_AD2S1200 is not set
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-# CONFIG_LTC2983 is not set
-# CONFIG_MAXIM_THERMOCOUPLE is not set
-CONFIG_HID_SENSOR_TEMP=m
-# CONFIG_MLX90614 is not set
-# CONFIG_MLX90632 is not set
-# CONFIG_TMP006 is not set
-# CONFIG_TMP007 is not set
-# CONFIG_TSYS01 is not set
-# CONFIG_TSYS02D is not set
-# CONFIG_MAX31856 is not set
-# end of Temperature sensors
-
-CONFIG_NTB=m
-# CONFIG_NTB_MSI is not set
-# CONFIG_NTB_IDT is not set
-CONFIG_NTB_SWITCHTEC=m
-CONFIG_NTB_PINGPONG=m
-# CONFIG_NTB_TOOL is not set
-CONFIG_NTB_PERF=m
-CONFIG_NTB_TRANSPORT=m
-# CONFIG_VME_BUS is not set
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-CONFIG_PWM_BCM2835=m
-# CONFIG_PWM_BERLIN is not set
-# CONFIG_PWM_FSL_FTM is not set
-# CONFIG_PWM_HIBVT is not set
-CONFIG_PWM_MTK_DISP=m
-CONFIG_PWM_MEDIATEK=m
-CONFIG_PWM_PCA9685=m
-CONFIG_PWM_ROCKCHIP=m
-# CONFIG_PWM_SAMSUNG is not set
-# CONFIG_PWM_SPRD is not set
-CONFIG_PWM_SUN4I=m
-# CONFIG_PWM_TEGRA is not set
-
-#
-# IRQ chip support
-#
-CONFIG_IRQCHIP=y
-CONFIG_ARM_GIC=y
-CONFIG_ARM_GIC_PM=y
-CONFIG_ARM_GIC_MAX_NR=1
-CONFIG_ARM_GIC_V2M=y
-CONFIG_ARM_GIC_V3=y
-CONFIG_ARM_GIC_V3_ITS=y
-CONFIG_ARM_GIC_V3_ITS_PCI=y
-# CONFIG_AL_FIC is not set
-CONFIG_DW_APB_ICTL=y
-CONFIG_HISILICON_IRQ_MBIGEN=y
-CONFIG_MVEBU_GICP=y
-CONFIG_MVEBU_ICU=y
-CONFIG_MVEBU_ODMI=y
-CONFIG_MVEBU_PIC=y
-CONFIG_MVEBU_SEI=y
-CONFIG_LS_EXTIRQ=y
-CONFIG_LS_SCFG_MSI=y
-CONFIG_PARTITION_PERCPU=y
-# CONFIG_QCOM_IRQ_COMBINER is not set
-CONFIG_QCOM_PDC=y
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
-CONFIG_RESET_CONTROLLER=y
-CONFIG_RESET_BERLIN=y
-# CONFIG_RESET_BRCMSTB_RESCAL is not set
-# CONFIG_RESET_INTEL_GW is not set
-CONFIG_RESET_QCOM_AOSS=y
-# CONFIG_RESET_QCOM_PDC is not set
-CONFIG_RESET_SCMI=y
-CONFIG_RESET_SIMPLE=y
-CONFIG_RESET_SUNXI=y
-# CONFIG_RESET_TI_SYSCON is not set
-CONFIG_COMMON_RESET_HI3660=m
-CONFIG_COMMON_RESET_HI6220=m
-CONFIG_RESET_TEGRA_BPMP=y
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-CONFIG_GENERIC_PHY_MIPI_DPHY=y
-CONFIG_PHY_XGENE=m
-# CONFIG_PHY_SUN4I_USB is not set
-CONFIG_PHY_SUN6I_MIPI_DPHY=m
-# CONFIG_PHY_SUN9I_USB is not set
-# CONFIG_PHY_SUN50I_USB3 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_CADENCE_SIERRA is not set
-# CONFIG_PHY_FSL_IMX8MQ_USB is not set
-# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
-CONFIG_PHY_HI6220_USB=m
-# CONFIG_PHY_HI3660_USB is not set
-CONFIG_PHY_HISTB_COMBPHY=m
-CONFIG_PHY_HISI_INNO_USB2=m
-# CONFIG_PHY_BERLIN_SATA is not set
-# CONFIG_PHY_BERLIN_USB is not set
-CONFIG_PHY_MVEBU_A3700_COMPHY=y
-CONFIG_PHY_MVEBU_A3700_UTMI=y
-# CONFIG_PHY_MVEBU_A38X_COMPHY is not set
-# CONFIG_PHY_MVEBU_CP110_COMPHY is not set
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_MTK_TPHY is not set
-# CONFIG_PHY_MTK_UFS is not set
-# CONFIG_PHY_MTK_XSPHY is not set
-# CONFIG_PHY_CPCAP_USB is not set
-# CONFIG_PHY_MAPPHONE_MDM6600 is not set
-# CONFIG_PHY_OCELOT_SERDES is not set
-# CONFIG_PHY_QCOM_APQ8064_SATA is not set
-# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
-# CONFIG_PHY_QCOM_PCIE2 is not set
-# CONFIG_PHY_QCOM_QMP is not set
-# CONFIG_PHY_QCOM_QUSB2 is not set
-# CONFIG_PHY_QCOM_UFS is not set
-CONFIG_PHY_ROCKCHIP_DP=m
-CONFIG_PHY_ROCKCHIP_EMMC=y
-CONFIG_PHY_ROCKCHIP_INNO_HDMI=y
-CONFIG_PHY_ROCKCHIP_INNO_USB2=m
-# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
-CONFIG_PHY_ROCKCHIP_PCIE=m
-CONFIG_PHY_ROCKCHIP_TYPEC=m
-CONFIG_PHY_ROCKCHIP_USB=m
-CONFIG_PHY_EXYNOS_DP_VIDEO=y
-CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
-# CONFIG_PHY_EXYNOS_PCIE is not set
-CONFIG_PHY_TEGRA_XUSB=m
-# CONFIG_PHY_TEGRA194_P2U is not set
-# CONFIG_PHY_INTEL_EMMC is not set
-# end of PHY Subsystem
-
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-CONFIG_RAS=y
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_LIBNVDIMM=y
-CONFIG_BLK_DEV_PMEM=m
-CONFIG_ND_BLK=y
-CONFIG_ND_CLAIM=y
-CONFIG_ND_BTT=y
-CONFIG_BTT=y
-CONFIG_OF_PMEM=m
-CONFIG_DAX_DRIVER=y
-CONFIG_DAX=y
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-# CONFIG_MTK_EFUSE is not set
-CONFIG_QCOM_QFPROM=m
-CONFIG_ROCKCHIP_EFUSE=m
-# CONFIG_ROCKCHIP_OTP is not set
-CONFIG_NVMEM_SUNXI_SID=m
-# CONFIG_NVMEM_ZYNQMP is not set
-# CONFIG_SPRD_EFUSE 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_TEE is not set
-CONFIG_PM_OPP=y
-# CONFIG_SIOX is not set
-CONFIG_SLIMBUS=m
-CONFIG_SLIM_QCOM_CTRL=m
-# CONFIG_SLIM_QCOM_NGD_CTRL is not set
-# CONFIG_INTERCONNECT is not set
-# CONFIG_COUNTER is not set
-# end of Device Drivers
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_VALIDATE_FS_PARSER is not set
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=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=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-# CONFIG_REISERFS_FS_SECURITY is not set
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-CONFIG_XFS_ONLINE_SCRUB=y
-# CONFIG_XFS_ONLINE_REPAIR is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-# CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=y
-# CONFIG_F2FS_STAT_FS is not set
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_F2FS_FS_LZO=y
-CONFIG_F2FS_FS_LZ4=y
-# CONFIG_FS_DAX is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_EXPORTFS_BLOCK_OPS=y
-CONFIG_FILE_LOCKING=y
-# CONFIG_MANDATORY_FILE_LOCKING is not set
-CONFIG_FS_ENCRYPTION=y
-CONFIG_FS_ENCRYPTION_ALGS=y
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
-CONFIG_FSNOTIFY=y
-# CONFIG_DNOTIFY is not set
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_OVERLAY_FS=m
-# 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=m
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-# CONFIG_FAT_DEFAULT_UTF8 is not set
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-# end of DOS/FAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-# CONFIG_PROC_KCORE is not set
-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 is not set
-CONFIG_MEMFD_CREATE=y
-CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_EFIVAR_FS=m
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ORANGEFS_FS=m
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-CONFIG_ECRYPT_FS=m
-# CONFIG_ECRYPT_FS_MESSAGING is not set
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-# CONFIG_UBIFS_FS_AUTHENTICATION is not set
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-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=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX6FS_FS is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=y
-# CONFIG_PSTORE_LZO_COMPRESS is not set
-# CONFIG_PSTORE_LZ4_COMPRESS is not set
-# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
-# CONFIG_PSTORE_842_COMPRESS is not set
-# CONFIG_PSTORE_ZSTD_COMPRESS is not set
-CONFIG_PSTORE_COMPRESS=y
-CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-CONFIG_PSTORE_RAM=m
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-# CONFIG_EROFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=m
-# CONFIG_NFS_SWAP is not set
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DISABLE_UDP_SUPPORT=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_PNFS=y
-CONFIG_NFSD_BLOCKLAYOUT=y
-CONFIG_NFSD_SCSILAYOUT=y
-CONFIG_NFSD_FLEXFILELAYOUT=y
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-# CONFIG_NFSD_V4_SECURITY_LABEL is not set
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
-# CONFIG_SUNRPC_DEBUG is not set
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-# CONFIG_CEPH_FS_SECURITY_LABEL is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-# CONFIG_AFS_FS is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-# CONFIG_9P_FS_SECURITY is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_REQUEST_CACHE=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS is not set
-CONFIG_TRUSTED_KEYS=m
-CONFIG_ENCRYPTED_KEYS=m
-CONFIG_KEY_DH_OPERATIONS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_INFINIBAND is not set
-# CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_PATH=y
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-CONFIG_FORTIFY_SOURCE=y
-# CONFIG_STATIC_USERMODEHELPER is not set
-# CONFIG_SECURITY_SELINUX is not set
-# CONFIG_SECURITY_SMACK is not set
-# CONFIG_SECURITY_TOMOYO is not set
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_HASH=y
-CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
-# CONFIG_SECURITY_APPARMOR_DEBUG 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=y
-# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set
-CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
-# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
-# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
-# CONFIG_INTEGRITY is not set
-# CONFIG_DEFAULT_SECURITY_APPARMOR 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=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-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_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=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_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-# CONFIG_CRYPTO_TEST is not set
-CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=y
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_CURVE25519=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_SIMD=y
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-# CONFIG_CRYPTO_OFB is not set
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=y
-CONFIG_CRYPTO_XXHASH=m
-CONFIG_CRYPTO_BLAKE2B=m
-# CONFIG_CRYPTO_BLAKE2S is not set
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_TI=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=y
-CONFIG_CRYPTO_842=m
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=m
-
-#
-# 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=m
-CONFIG_CRYPTO_USER_API_RNG=m
-CONFIG_CRYPTO_USER_API_AEAD=m
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_ALLWINNER=y
-CONFIG_CRYPTO_DEV_SUN4I_SS=m
-# CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG is not set
-CONFIG_CRYPTO_DEV_SUN8I_CE=m
-CONFIG_CRYPTO_DEV_SUN8I_SS=m
-CONFIG_CRYPTO_DEV_MARVELL_CESA=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC=m
-CONFIG_CRYPTO_DEV_FSL_CAAM=m
-# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
-# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set
-CONFIG_CRYPTO_DEV_S5P=m
-# CONFIG_CRYPTO_DEV_EXYNOS_HASH is not set
-# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
-# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
-CONFIG_CRYPTO_DEV_CCP=y
-CONFIG_CRYPTO_DEV_CCP_DD=m
-CONFIG_CRYPTO_DEV_SP_CCP=y
-CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
-# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
-CONFIG_CRYPTO_DEV_CPT=m
-CONFIG_CAVIUM_CPT=m
-CONFIG_CRYPTO_DEV_NITROX=m
-CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
-CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
-CONFIG_CRYPTO_DEV_QCE=m
-CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y
-CONFIG_CRYPTO_DEV_QCE_SHA=y
-CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y
-# CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set
-# CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set
-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 is not set
-# CONFIG_CRYPTO_DEV_CCREE is not set
-# CONFIG_CRYPTO_DEV_HISI_SEC is not set
-# CONFIG_CRYPTO_DEV_HISI_SEC2 is not set
-# CONFIG_CRYPTO_DEV_HISI_ZIP is not set
-# CONFIG_CRYPTO_DEV_HISI_HPRE is not set
-# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-# CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-CONFIG_SIGNED_PE_FILE_VERIFICATION=y
-
-#
-# Certificates for signature checking
-#
-CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-CONFIG_SECONDARY_TRUSTED_KEYRING=y
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-# CONFIG_PACKING is not set
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_CORDIC=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_INDIRECT_PIO=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-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=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_XXHASH=y
-CONFIG_AUDIT_GENERIC=y
-CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
-CONFIG_AUDIT_COMPAT_GENERIC=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_842_COMPRESS=m
-CONFIG_842_DECOMPRESS=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=y
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=m
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_DECOMPRESS_LZ4=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DMA_DECLARE_COHERENT=y
-CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
-CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
-CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
-CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
-CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
-CONFIG_DMA_VIRT_OPS=y
-CONFIG_SWIOTLB=y
-CONFIG_DMA_NONCOHERENT_MMAP=y
-CONFIG_DMA_REMAP=y
-CONFIG_DMA_DIRECT_REMAP=y
-CONFIG_DMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=16
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-# CONFIG_DMA_API_DEBUG is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_DIMLIB=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_6x10 is not set
-CONFIG_FONT_10x18=y
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-CONFIG_FONT_TER16x32=y
-CONFIG_SG_POOL=y
-CONFIG_MEMREGION=y
-CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=3
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=2048
-# CONFIG_STRIP_ASM_SYMS 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_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-# CONFIG_DEBUG_FS is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
-# CONFIG_UBSAN is not set
-CONFIG_UBSAN_ALIGNMENT=y
-# end of Generic Kernel Debugging Instruments
-
-# CONFIG_DEBUG_KERNEL is not set
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_GENERIC_PTDUMP=y
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-# CONFIG_KASAN is not set
-CONFIG_KASAN_STACK=1
-# end of Memory Debugging
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-CONFIG_SCHED_INFO=y
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# 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_HAVE_DEBUG_BUGVERBOSE=y
-
-#
-# Debug kernel data structures
-#
-# CONFIG_BUG_ON_DATA_CORRUPTION is not set
-# end of Debug kernel data structures
-
-#
-# RCU Debugging
-#
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# end of RCU Debugging
-
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=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_SAMPLES is not set
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# arm64 Debugging
-#
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
-# CONFIG_DEBUG_WX is not set
-# CONFIG_DEBUG_ALIGN_RODATA is not set
-# CONFIG_ARM64_RELOC_TEST is not set
-# CONFIG_CORESIGHT is not set
-# end of arm64 Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-# CONFIG_RUNTIME_TESTING_MENU is not set
-# CONFIG_MEMTEST is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/testing/linux-edge/config-edge.armv7 b/testing/linux-edge/config-edge.armv7
deleted file mode 100644
index 84eb32856d3..00000000000
--- a/testing/linux-edge/config-edge.armv7
+++ /dev/null
@@ -1,7756 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 5.6.15 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_TABLE_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_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-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=y
-# CONFIG_USELIB is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# end of IRQ subsystem
-
-CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_ARCH_HAS_TICK_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-# end of Timers subsystem
-
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
-CONFIG_PREEMPTION=y
-
-#
-# 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=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-# 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_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_IKCONFIG=m
-CONFIG_IKCONFIG_PROC=y
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=15
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_GENERIC_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-# CONFIG_MEMCG_SWAP is not set
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_CFS_BANDWIDTH is not set
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-# CONFIG_CPUSETS is not set
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_CHECKPOINT_RESTORE is not set
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-CONFIG_RD_XZ=y
-# CONFIG_RD_LZO is not set
-# CONFIG_RD_LZ4 is not set
-# CONFIG_BOOT_CONFIG is not set
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_BPF=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-CONFIG_SYSFS_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_BASE_RELATIVE=y
-# CONFIG_BPF_SYSCALL is not set
-# CONFIG_USERFAULTFD is not set
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_RSEQ=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLAB_MERGE_DEFAULT is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
-# CONFIG_SLAB_FREELIST_HARDENED is not set
-# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
-# CONFIG_SLUB_CPU_PARTIAL is not set
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-# CONFIG_PROFILING is not set
-# end of General setup
-
-CONFIG_ARM=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-CONFIG_ARM_DMA_USE_IOMMU=y
-CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_NO_IOPORT_MAP=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_ARCH_HAS_BANDGAP=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ZONE_DMA=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_FIQ=y
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_PGTABLE_LEVELS=2
-
-#
-# System Type
-#
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_BITS_MAX=16
-CONFIG_ARCH_MULTIPLATFORM=y
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_OMAP1 is not set
-
-#
-# Multiple platform selection
-#
-
-#
-# CPU Core family selection
-#
-# CONFIG_ARCH_MULTI_V6 is not set
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-# end of Multiple platform selection
-
-# CONFIG_ARCH_VIRT is not set
-# CONFIG_ARCH_ACTIONS is not set
-# CONFIG_ARCH_ALPINE is not set
-# CONFIG_ARCH_ARTPEC is not set
-# CONFIG_ARCH_ASPEED is not set
-# CONFIG_ARCH_AT91 is not set
-CONFIG_ARCH_BCM=y
-
-#
-# IPROC architected SoCs
-#
-# CONFIG_ARCH_BCM_CYGNUS is not set
-# CONFIG_ARCH_BCM_HR2 is not set
-# CONFIG_ARCH_BCM_NSP is not set
-# CONFIG_ARCH_BCM_5301X is not set
-
-#
-# KONA architected SoCs
-#
-# CONFIG_ARCH_BCM_281XX is not set
-# CONFIG_ARCH_BCM_21664 is not set
-# CONFIG_ARCH_BCM_23550 is not set
-
-#
-# Other Architectures
-#
-CONFIG_ARCH_BCM2835=y
-# CONFIG_ARCH_BCM_53573 is not set
-# CONFIG_ARCH_BCM_63XX is not set
-# CONFIG_ARCH_BRCMSTB is not set
-# CONFIG_ARCH_BERLIN is not set
-# CONFIG_ARCH_DIGICOLOR is not set
-CONFIG_ARCH_EXYNOS=y
-CONFIG_S5P_DEV_MFC=y
-# CONFIG_ARCH_EXYNOS3 is not set
-CONFIG_ARCH_EXYNOS4=y
-CONFIG_ARCH_EXYNOS5=y
-
-#
-# Exynos SoCs
-#
-CONFIG_CPU_EXYNOS4210=y
-CONFIG_SOC_EXYNOS4412=y
-CONFIG_SOC_EXYNOS5250=y
-CONFIG_SOC_EXYNOS5260=y
-CONFIG_SOC_EXYNOS5410=y
-CONFIG_SOC_EXYNOS5420=y
-CONFIG_SOC_EXYNOS5800=y
-CONFIG_EXYNOS_MCPM=y
-CONFIG_EXYNOS_CPU_SUSPEND=y
-CONFIG_PLAT_SAMSUNG=y
-
-#
-# Samsung Common options
-#
-
-#
-# Boot options
-#
-
-#
-# Power management
-#
-# end of Samsung Common options
-
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_HISI is not set
-CONFIG_ARCH_MXC=y
-CONFIG_MXC_TZIC=y
-CONFIG_HAVE_IMX_ANATOP=y
-CONFIG_HAVE_IMX_GPC=y
-CONFIG_HAVE_IMX_MMDC=y
-CONFIG_HAVE_IMX_SRC=y
-
-#
-# Device tree only
-#
-
-#
-# Cortex-A platforms
-#
-CONFIG_SOC_IMX5=y
-# CONFIG_SOC_IMX50 is not set
-CONFIG_SOC_IMX51=y
-CONFIG_SOC_IMX53=y
-CONFIG_SOC_IMX6=y
-CONFIG_SOC_IMX6Q=y
-CONFIG_SOC_IMX6SL=y
-# CONFIG_SOC_IMX6SLL is not set
-CONFIG_SOC_IMX6SX=y
-CONFIG_SOC_IMX6UL=y
-# CONFIG_SOC_LS1021A is not set
-
-#
-# Cortex-A/Cortex-M asymmetric multiprocessing platforms
-#
-CONFIG_SOC_IMX7D_CA7=y
-CONFIG_SOC_IMX7D=y
-# CONFIG_SOC_IMX7ULP is not set
-# CONFIG_SOC_VF610 is not set
-# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_MEDIATEK is not set
-# CONFIG_ARCH_MESON is not set
-# CONFIG_ARCH_MILBEAUT is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_MVEBU is not set
-# CONFIG_ARCH_NPCM is not set
-CONFIG_ARCH_OMAP=y
-
-#
-# TI OMAP Common Features
-#
-
-#
-# OMAP Feature Selections
-#
-# CONFIG_OMAP_RESET_CLOCKS is not set
-CONFIG_OMAP_32K_TIMER=y
-# end of TI OMAP Common Features
-
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP/AM/DM/DRA Family
-#
-# CONFIG_ARCH_OMAP3 is not set
-# CONFIG_ARCH_OMAP4 is not set
-# CONFIG_SOC_OMAP5 is not set
-CONFIG_SOC_AM33XX=y
-# CONFIG_SOC_AM43XX is not set
-# CONFIG_SOC_DRA7XX is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-# CONFIG_SOC_HAS_OMAP2_SDRC is not set
-
-#
-# OMAP Legacy Platform Data Board Type
-#
-# end of TI OMAP2/3/4 Specific Features
-# end of TI OMAP/AM/DM/DRA Family
-
-# CONFIG_ARCH_SIRF is not set
-CONFIG_ARCH_QCOM=y
-CONFIG_ARCH_MSM8X60=y
-CONFIG_ARCH_MSM8960=y
-CONFIG_ARCH_MSM8974=y
-# CONFIG_ARCH_MDM9615 is not set
-# CONFIG_ARCH_RDA is not set
-# CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_ROCKCHIP=y
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_RENESAS is not set
-# CONFIG_ARCH_SOCFPGA is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_STI is not set
-# CONFIG_ARCH_STM32 is not set
-CONFIG_ARCH_SUNXI=y
-CONFIG_MACH_SUN4I=y
-CONFIG_MACH_SUN5I=y
-CONFIG_MACH_SUN6I=y
-CONFIG_MACH_SUN7I=y
-CONFIG_MACH_SUN8I=y
-CONFIG_MACH_SUN9I=y
-CONFIG_ARCH_SUNXI_MC_SMP=y
-# CONFIG_ARCH_TANGO is not set
-CONFIG_ARCH_TEGRA=y
-# CONFIG_ARCH_UNIPHIER is not set
-# CONFIG_ARCH_U8500 is not set
-CONFIG_ARCH_VEXPRESS=y
-CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
-CONFIG_ARCH_VEXPRESS_DCSCB=y
-CONFIG_ARCH_VEXPRESS_SPC=y
-CONFIG_ARCH_VEXPRESS_TC2_PM=y
-# CONFIG_ARCH_WM8850 is not set
-# CONFIG_ARCH_ZX is not set
-CONFIG_ARCH_ZYNQ=y
-CONFIG_PLAT_VERSATILE=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_THUMB_CAPABLE=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_LPAE is not set
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_ARM_VIRT_EXT=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_BIG_ENDIAN is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_CPU_SPECTRE=y
-CONFIG_HARDEN_BRANCH_PREDICTOR=y
-CONFIG_KUSER_HELPERS=y
-CONFIG_VDSO=y
-CONFIG_OUTER_CACHE=y
-CONFIG_OUTER_CACHE_SYNC=y
-CONFIG_MIGHT_HAVE_CACHE_L2X0=y
-CONFIG_CACHE_L2X0=y
-CONFIG_PL310_ERRATA_588369=y
-CONFIG_PL310_ERRATA_727915=y
-CONFIG_PL310_ERRATA_753970=y
-CONFIG_PL310_ERRATA_769419=y
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_HEAVY_MB=y
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-CONFIG_DEBUG_ALIGN_RODATA=y
-CONFIG_ARM_ERRATA_430973=y
-CONFIG_ARM_ERRATA_643719=y
-CONFIG_ARM_ERRATA_720789=y
-CONFIG_ARM_ERRATA_754322=y
-CONFIG_ARM_ERRATA_754327=y
-CONFIG_ARM_ERRATA_764369=y
-CONFIG_ARM_ERRATA_775420=y
-CONFIG_ARM_ERRATA_798181=y
-CONFIG_ARM_ERRATA_773022=y
-CONFIG_ARM_ERRATA_818325_852422=y
-CONFIG_ARM_ERRATA_821420=y
-CONFIG_ARM_ERRATA_825619=y
-# CONFIG_ARM_ERRATA_857271 is not set
-CONFIG_ARM_ERRATA_852421=y
-CONFIG_ARM_ERRATA_852423=y
-# CONFIG_ARM_ERRATA_857272 is not set
-# end of System Type
-
-#
-# Bus support
-#
-CONFIG_ARM_ERRATA_814220=y
-# end of Bus support
-
-#
-# Kernel Features
-#
-CONFIG_HAVE_SMP=y
-CONFIG_SMP=y
-CONFIG_SMP_ON_UP=y
-CONFIG_ARM_CPU_TOPOLOGY=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_SMT=y
-CONFIG_HAVE_ARM_SCU=y
-CONFIG_HAVE_ARM_ARCH_TIMER=y
-CONFIG_HAVE_ARM_TWD=y
-CONFIG_MCPM=y
-CONFIG_BIG_LITTLE=y
-CONFIG_BL_SWITCHER=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_NR_CPUS=8
-CONFIG_HOTPLUG_CPU=y
-CONFIG_ARM_PSCI=y
-CONFIG_ARCH_NR_GPIO=1024
-CONFIG_HZ_FIXED=0
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_200 is not set
-# CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
-# CONFIG_HZ_500 is not set
-# CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
-CONFIG_THUMB2_KERNEL=y
-# CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11 is not set
-CONFIG_ARM_PATCH_IDIV=y
-CONFIG_AEABI=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_HIGHMEM=y
-CONFIG_HIGHPTE=y
-CONFIG_CPU_SW_DOMAIN_PAN=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_ARM_MODULE_PLTS=y
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_ALIGNMENT_TRAP=y
-CONFIG_UACCESS_WITH_MEMCPY=y
-CONFIG_SECCOMP=y
-# CONFIG_PARAVIRT is not set
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-# CONFIG_XEN is not set
-# end of Kernel Features
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
-CONFIG_CMDLINE=""
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-# CONFIG_EFI is not set
-# end of Boot options
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_CPUFREQ_DT=m
-CONFIG_CPUFREQ_DT_PLATDEV=y
-CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
-CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=m
-CONFIG_ARM_IMX6Q_CPUFREQ=m
-# CONFIG_ARM_IMX_CPUFREQ_DT is not set
-CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
-# CONFIG_ARM_QCOM_CPUFREQ_HW is not set
-CONFIG_ARM_TEGRA20_CPUFREQ=m
-CONFIG_ARM_TEGRA124_CPUFREQ=y
-# CONFIG_ARM_TI_CPUFREQ is not set
-# CONFIG_QORIQ_CPUFREQ is not set
-# end of CPU Frequency scaling
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
-# CONFIG_CPU_IDLE_GOV_LADDER is not set
-CONFIG_CPU_IDLE_GOV_MENU=y
-CONFIG_CPU_IDLE_GOV_TEO=y
-CONFIG_DT_IDLE_STATES=y
-
-#
-# ARM CPU Idle Drivers
-#
-CONFIG_ARM_CPUIDLE=y
-CONFIG_ARM_PSCI_CPUIDLE=y
-# CONFIG_ARM_BIG_LITTLE_CPUIDLE is not set
-# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
-# CONFIG_ARM_ZYNQ_CPUIDLE is not set
-CONFIG_ARM_EXYNOS_CPUIDLE=y
-# end of ARM CPU Idle Drivers
-
-CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y
-# end of CPU Idle
-# end of CPU Power Management
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-CONFIG_KERNEL_MODE_NEON=y
-# end of Floating point emulation
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_AUTOSLEEP=y
-CONFIG_PM_WAKELOCKS=y
-CONFIG_PM_WAKELOCKS_LIMIT=100
-CONFIG_PM_WAKELOCKS_GC=y
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_APM_EMULATION is not set
-CONFIG_PM_CLK=y
-CONFIG_PM_GENERIC_DOMAINS=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
-CONFIG_PM_GENERIC_DOMAINS_OF=y
-CONFIG_CPU_PM=y
-# CONFIG_ENERGY_MODEL is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-# end of Power management options
-
-#
-# Firmware Drivers
-#
-CONFIG_QCOM_SCM=y
-# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
-# CONFIG_TRUSTED_FOUNDATIONS is not set
-CONFIG_HAVE_ARM_SMCCC=y
-CONFIG_ARM_PSCI_FW=y
-# CONFIG_ARM_PSCI_CHECKER is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# Tegra firmware driver
-#
-# CONFIG_TEGRA_IVC is not set
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_ARM_CRYPTO=y
-CONFIG_CRYPTO_SHA1_ARM=m
-CONFIG_CRYPTO_SHA1_ARM_NEON=m
-# CONFIG_CRYPTO_SHA1_ARM_CE is not set
-CONFIG_CRYPTO_SHA2_ARM_CE=m
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_AES_ARM=m
-CONFIG_CRYPTO_AES_ARM_BS=m
-CONFIG_CRYPTO_AES_ARM_CE=m
-CONFIG_CRYPTO_GHASH_ARM_CE=m
-CONFIG_CRYPTO_CRCT10DIF_ARM_CE=m
-CONFIG_CRYPTO_CRC32_ARM_CE=m
-CONFIG_CRYPTO_CHACHA20_NEON=m
-CONFIG_CRYPTO_POLY1305_ARM=m
-CONFIG_CRYPTO_NHPOLY1305_NEON=m
-CONFIG_CRYPTO_CURVE25519_NEON=m
-CONFIG_VIRTUALIZATION=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# General architecture-dependent options
-#
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=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_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_KEEPINITRD=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_ARCH_32BIT_OFF_T=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_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_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_HAVE_EXIT_THREAD=y
-CONFIG_ARCH_MMAP_RND_BITS=8
-CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
-CONFIG_HAVE_COPY_THREAD_TLS=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
-CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_ARCH_HAS_PHYS_TO_DMA=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_PLUGIN_HOSTCC=""
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULE_SIG_FORMAT=y
-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=y
-# CONFIG_MODULE_SIG_FORCE is not set
-CONFIG_MODULE_SIG_ALL=y
-CONFIG_MODULE_SIG_SHA1=y
-# CONFIG_MODULE_SIG_SHA224 is not set
-# CONFIG_MODULE_SIG_SHA256 is not set
-# CONFIG_MODULE_SIG_SHA384 is not set
-# CONFIG_MODULE_SIG_SHA512 is not set
-CONFIG_MODULE_SIG_HASH="sha1"
-# 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=y
-CONFIG_BLOCK=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=y
-# CONFIG_BLK_DEV_ZONED is not set
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
-CONFIG_BLK_WBT=y
-CONFIG_BLK_CGROUP_IOLATENCY=y
-# CONFIG_BLK_CGROUP_IOCOST is not set
-CONFIG_BLK_WBT_MQ=y
-# CONFIG_BLK_SED_OPAL is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-# end of Partition Types
-
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=m
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=m
-# CONFIG_BFQ_GROUP_IOSCHED is not set
-# end of IO Schedulers
-
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_ELF_FDPIC is not set
-CONFIG_ELFCORE=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_ARCH_HAS_BINFMT_FLAT=y
-# CONFIG_BINFMT_FLAT is not set
-CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_ARCH_KEEP_MEMBLOCK=y
-CONFIG_MEMORY_ISOLATION=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-CONFIG_CONTIG_ALLOC=y
-CONFIG_BOUNCE=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_CMA=y
-CONFIG_CMA_AREAS=7
-# CONFIG_ZSWAP is not set
-CONFIG_ZPOOL=m
-CONFIG_ZBUD=m
-CONFIG_Z3FOLD=m
-CONFIG_ZSMALLOC=m
-# CONFIG_PGTABLE_MAPPING is not set
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_FRAME_VECTOR=y
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_BENCHMARK is not set
-# 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=m
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-CONFIG_TLS=m
-# CONFIG_TLS_DEVICE is not set
-# CONFIG_TLS_TOE is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_OFFLOAD=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_INTERFACE=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=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=y
-# CONFIG_IP_PIMSM_V1 is not set
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-# CONFIG_INET_ESP_OFFLOAD is not set
-# CONFIG_INET_ESPINTCP is not set
-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 is not set
-CONFIG_INET_DIAG_DESTROY=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_ESP_OFFLOAD=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=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_IPV6_SEG6_BPF=y
-CONFIG_NETLABEL=y
-CONFIG_MPTCP=y
-CONFIG_MPTCP_IPV6=y
-# CONFIG_MPTCP_HMAC_TEST 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=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-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=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-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=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=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_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_SET=m
-CONFIG_NF_TABLES_INET=y
-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_OBJREF is not set
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=m
-CONFIG_NFT_FIB_INET=m
-# CONFIG_NFT_XFRM is not set
-CONFIG_NFT_SOCKET=m
-CONFIG_NFT_OSF=m
-CONFIG_NFT_TPROXY=m
-CONFIG_NFT_SYNPROXY=m
-CONFIG_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-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_LED=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=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=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
-
-#
-# Xtables matches
-#
-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_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=m
-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=m
-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=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
-# 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=m
-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=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-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=y
-
-#
-# 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=m
-CONFIG_IP_VS_OVF=m
-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_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-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=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_CLUSTERIP=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
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-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=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-# CONFIG_IP6_NF_SECURITY is not set
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_TABLES_BRIDGE=m
-# CONFIG_NFT_BRIDGE_META is not set
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
-# CONFIG_NF_CONNTRACK_BRIDGE is not set
-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 is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-# end of DCCP CCIDs Configuration
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-# CONFIG_RDS_TCP is not set
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-CONFIG_TIPC_MEDIA_UDP=y
-CONFIG_TIPC_CRYPTO=y
-CONFIG_TIPC_DIAG=m
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER 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_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_NET_DSA=m
-# CONFIG_NET_DSA_TAG_AR9331 is not set
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-# CONFIG_NET_DSA_TAG_GSWIP is not set
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-# CONFIG_NET_DSA_TAG_MTK is not set
-# CONFIG_NET_DSA_TAG_KSZ is not set
-# CONFIG_NET_DSA_TAG_OCELOT is not set
-# CONFIG_NET_DSA_TAG_QCA is not set
-# CONFIG_NET_DSA_TAG_LAN9303 is not set
-# CONFIG_NET_DSA_TAG_SJA1105 is not set
-CONFIG_NET_DSA_TAG_TRAILER=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-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
-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 is not set
-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
-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=m
-CONFIG_NET_SCH_PIE=m
-CONFIG_NET_SCH_FQ_PIE=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_SCH_PLUG=m
-# CONFIG_NET_SCH_ETS 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=m
-CONFIG_NET_CLS_BPF=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_MATCHALL=m
-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_CANID is not set
-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 is not set
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-# CONFIG_NET_ACT_MPLS is not set
-CONFIG_NET_ACT_VLAN=m
-CONFIG_NET_ACT_BPF=m
-CONFIG_NET_ACT_CONNMARK=m
-# CONFIG_NET_ACT_CTINFO is not set
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-# CONFIG_NET_ACT_CT is not set
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-CONFIG_BATMAN_ADV_BATMAN_V=y
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-CONFIG_BATMAN_ADV_NC=y
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_BATMAN_ADV_SYSFS=y
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-CONFIG_NETLINK_DIAG=m
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=m
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-# CONFIG_HSR is not set
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NET_L3_MASTER_DEV=y
-# CONFIG_QRTR is not set
-# 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=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_JIT is not set
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# end of Network testing
-# end of Networking options
-
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_YAM=m
-# end of AX.25 network device drivers
-
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-CONFIG_CAN_J1939=m
-
-#
-# CAN Device Drivers
-#
-# CONFIG_CAN_VCAN is not set
-# CONFIG_CAN_VXCAN is not set
-# CONFIG_CAN_SLCAN is not set
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_FLEXCAN is not set
-# CONFIG_CAN_GRCAN is not set
-CONFIG_CAN_SUN4I=m
-# CONFIG_CAN_TI_HECC is not set
-# CONFIG_CAN_XILINXCAN is not set
-CONFIG_CAN_C_CAN=m
-# CONFIG_CAN_C_CAN_PLATFORM is not set
-CONFIG_CAN_CC770=m
-# CONFIG_CAN_CC770_ISA is not set
-# CONFIG_CAN_CC770_PLATFORM is not set
-# CONFIG_CAN_IFI_CANFD is not set
-CONFIG_CAN_M_CAN=m
-# CONFIG_CAN_M_CAN_PLATFORM is not set
-# CONFIG_CAN_M_CAN_TCAN4X5X is not set
-# CONFIG_CAN_RCAR is not set
-# CONFIG_CAN_RCAR_CANFD is not set
-# CONFIG_CAN_SJA1000 is not set
-# CONFIG_CAN_SOFTING is not set
-
-#
-# CAN SPI interfaces
-#
-# CONFIG_CAN_HI311X is not set
-# CONFIG_CAN_MCP251X is not set
-# end of CAN SPI interfaces
-
-#
-# CAN USB interfaces
-#
-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
-# end of CAN USB interfaces
-
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# end of CAN Device Drivers
-
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-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_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_6LOWPAN=m
-CONFIG_BT_LEDS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_QCA=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
-CONFIG_BT_HCIBTUSB_BCM=y
-# CONFIG_BT_HCIBTUSB_MTK is not set
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-# CONFIG_BT_HCIUART_INTEL is not set
-CONFIG_BT_HCIUART_AG6XX=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIVHCI=m
-# CONFIG_BT_MRVL is not set
-CONFIG_BT_ATH3K=m
-# CONFIG_BT_MTKSDIO is not set
-CONFIG_BT_QCOMSMD=m
-CONFIG_BT_HCIRSI=m
-# end of Bluetooth device drivers
-
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_IPV6 is not set
-# CONFIG_AF_RXRPC_INJECT_LOSS is not set
-# CONFIG_AF_RXRPC_DEBUG is not set
-# CONFIG_RXKAD is not set
-# CONFIG_AF_KCM is not set
-CONFIG_STREAM_PARSER=y
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-CONFIG_NL80211_TESTMODE=y
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-CONFIG_NFC_NCI_UART=m
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_FDP=m
-CONFIG_NFC_FDP_I2C=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-CONFIG_NFC_PN533_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_MRVL_UART=m
-CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_MRVL_SPI=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST_NCI=m
-CONFIG_NFC_ST_NCI_I2C=m
-CONFIG_NFC_ST_NCI_SPI=m
-CONFIG_NFC_NXP_NCI=m
-CONFIG_NFC_NXP_NCI_I2C=m
-CONFIG_NFC_S3FWRN5=m
-CONFIG_NFC_S3FWRN5_I2C=m
-CONFIG_NFC_ST95HF=m
-# end of Near Field Communication (NFC) devices
-
-CONFIG_PSAMPLE=m
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-# CONFIG_LWTUNNEL_BPF is not set
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_SOCK_MSG=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=m
-CONFIG_ETHTOOL_NETLINK=y
-CONFIG_HAVE_EBPF_JIT=y
-
-#
-# Device Drivers
-#
-CONFIG_ARM_AMBA=y
-CONFIG_TEGRA_AHB=y
-CONFIG_HAVE_PCI=y
-# CONFIG_PCI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_FW_LOADER_USER_HELPER is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_SOC_BUS=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=m
-CONFIG_REGMAP_SPI=m
-CONFIG_REGMAP_SPMI=m
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-CONFIG_GENERIC_ARCH_TOPOLOGY=y
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-CONFIG_ARM_CCI=y
-CONFIG_ARM_CCI400_COMMON=y
-CONFIG_ARM_CCI400_PORT_CTRL=y
-# CONFIG_BRCMSTB_GISB_ARB is not set
-# CONFIG_MOXTET is not set
-# CONFIG_IMX_WEIM is not set
-# CONFIG_OMAP_INTERCONNECT is not set
-# CONFIG_OMAP_OCP2SCP is not set
-# CONFIG_QCOM_EBI2 is not set
-# CONFIG_SIMPLE_PM_BUS is not set
-# CONFIG_SUN50I_DE2_BUS is not set
-CONFIG_SUNXI_RSB=y
-# CONFIG_TEGRA_GMI is not set
-CONFIG_TI_SYSC=y
-CONFIG_VEXPRESS_CONFIG=y
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-# CONFIG_GNSS is not set
-CONFIG_MTD=m
-CONFIG_MTD_TESTS=m
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-# CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_OF_PARTS=m
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# 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=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
-# CONFIG_MTD_IMPA7 is not set
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-# CONFIG_MTD_MCHP23K256 is not set
-# CONFIG_MTD_SST25L is not set
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-# end of Self-contained MTD device drivers
-
-CONFIG_MTD_NAND_CORE=m
-CONFIG_MTD_ONENAND=m
-# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND_GENERIC is not set
-# CONFIG_MTD_ONENAND_SAMSUNG is not set
-CONFIG_MTD_ONENAND_OTP=y
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=m
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
-# CONFIG_MTD_RAW_NAND is not set
-CONFIG_MTD_SPI_NAND=m
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-CONFIG_MTD_LPDDR=m
-CONFIG_MTD_QINFO_PROBE=m
-# CONFIG_MTD_LPDDR2_NVM is not set
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-CONFIG_MTD_SPI_NOR=m
-# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
-# CONFIG_SPI_CADENCE_QUADSPI is not set
-# CONFIG_SPI_MTK_QUADSPI is not set
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-# CONFIG_MTD_UBI_BLOCK 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_DYNAMIC=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_RESERVED_MEM=y
-CONFIG_OF_RESOLVE=y
-CONFIG_OF_OVERLAY=y
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_NULL_BLK is not set
-CONFIG_CDROM=m
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_WRITEBACK is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=8192
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_VIRTIO_BLK=m
-# CONFIG_BLK_DEV_RBD is not set
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=m
-CONFIG_NVME_MULTIPATH=y
-# CONFIG_NVME_HWMON is not set
-CONFIG_NVME_FABRICS=m
-# CONFIG_NVME_FC is not set
-CONFIG_NVME_TARGET=m
-CONFIG_NVME_TARGET_LOOP=m
-# CONFIG_NVME_TARGET_FC is not set
-# CONFIG_NVME_TARGET_TCP is not set
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_QCOM_COINCELL is not set
-# CONFIG_QCOM_FASTRPC is not set
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-CONFIG_SRAM=y
-CONFIG_SRAM_EXEC=y
-CONFIG_VEXPRESS_SYSCFG=y
-# CONFIG_XILINX_SDFEC is not set
-CONFIG_MISC_RTSX=m
-# CONFIG_PVPANIC is not set
-CONFIG_C2PORT=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-# 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=m
-# end of Texas Instruments shared transport line discipline
-
-# CONFIG_SENSORS_LIS3_SPI is not set
-CONFIG_SENSORS_LIS3_I2C=m
-CONFIG_ALTERA_STAPL=m
-
-#
-# Intel MIC & related support
-#
-# CONFIG_VOP_BUS is not set
-# end of Intel MIC & related support
-
-# CONFIG_ECHO is not set
-CONFIG_MISC_RTSX_USB=m
-# end of Misc devices
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_UFSHCD=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_SCSI_DEBUG=m
-CONFIG_SCSI_VIRTIO=m
-# CONFIG_SCSI_DH is not set
-# end of SCSI device support
-
-CONFIG_HAVE_PATA_PLATFORM=y
-CONFIG_ATA=m
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI_PLATFORM=m
-# CONFIG_AHCI_DM816 is not set
-CONFIG_AHCI_IMX=m
-# CONFIG_AHCI_CEVA is not set
-CONFIG_AHCI_SUNXI=m
-# CONFIG_AHCI_TEGRA is not set
-# CONFIG_AHCI_QORIQ is not set
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-# CONFIG_SATA_DWC is not set
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_IMX=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_PLATFORM=m
-# CONFIG_PATA_OF_PLATFORM is not set
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-# CONFIG_MD_AUTODETECT is not set
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_UNSTRIPED=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-# CONFIG_DM_CACHE is not set
-CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_ERA is not set
-# CONFIG_DM_CLONE is not set
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-# CONFIG_DM_DUST is not set
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
-CONFIG_DM_VERITY_FEC=y
-# CONFIG_DM_SWITCH is not set
-CONFIG_DM_LOG_WRITES=m
-CONFIG_DM_INTEGRITY=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_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-# CONFIG_NET_TEAM_MODE_RANDOM is not set
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-# CONFIG_IPVTAP is not set
-CONFIG_VXLAN=m
-# CONFIG_GENEVE is not set
-CONFIG_GTP=m
-CONFIG_MACSEC=m
-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_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-# CONFIG_VSOCKMON is not set
-# CONFIG_ATM_DRIVERS is not set
-
-#
-# Distributed Switch Architecture drivers
-#
-CONFIG_B53=m
-CONFIG_B53_SPI_DRIVER=m
-CONFIG_B53_MDIO_DRIVER=m
-# CONFIG_B53_MMAP_DRIVER is not set
-# CONFIG_B53_SRAB_DRIVER is not set
-# CONFIG_B53_SERDES is not set
-# CONFIG_NET_DSA_BCM_SF2 is not set
-# CONFIG_NET_DSA_LOOP is not set
-# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
-# CONFIG_NET_DSA_MT7530 is not set
-# CONFIG_NET_DSA_MV88E6060 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
-# CONFIG_NET_DSA_MV88E6XXX is not set
-# CONFIG_NET_DSA_AR9331 is not set
-# CONFIG_NET_DSA_SJA1105 is not set
-# CONFIG_NET_DSA_QCA8K is not set
-# CONFIG_NET_DSA_REALTEK_SMI is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
-# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
-# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_NET_VENDOR_ALACRITECH=y
-CONFIG_NET_VENDOR_ALLWINNER=y
-CONFIG_SUN4I_EMAC=m
-CONFIG_ALTERA_TSE=m
-# CONFIG_NET_VENDOR_AMAZON is not set
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_NET_VENDOR_ARC=y
-# CONFIG_EMAC_ROCKCHIP is not set
-# CONFIG_NET_VENDOR_AURORA is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_B44=m
-CONFIG_BCMGENET=m
-# CONFIG_SYSTEMPORT is not set
-CONFIG_NET_VENDOR_CADENCE=y
-CONFIG_MACB=m
-CONFIG_MACB_USE_HWSTAMP=y
-# CONFIG_NET_VENDOR_CAVIUM is not set
-CONFIG_NET_VENDOR_CIRRUS=y
-# CONFIG_CS89x0 is not set
-# CONFIG_NET_VENDOR_CORTINA is not set
-# CONFIG_DM9000 is not set
-CONFIG_DNET=m
-CONFIG_NET_VENDOR_EZCHIP=y
-# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_FREESCALE=y
-CONFIG_FEC=m
-CONFIG_FSL_PQ_MDIO=m
-CONFIG_FSL_XGMAC_MDIO=m
-# CONFIG_GIANFAR is not set
-CONFIG_NET_VENDOR_GOOGLE=y
-# CONFIG_NET_VENDOR_HISILICON is not set
-CONFIG_NET_VENDOR_HUAWEI=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_MARVELL=y
-# CONFIG_MVMDIO is not set
-CONFIG_NET_VENDOR_MELLANOX=y
-# CONFIG_MLXSW_CORE is not set
-# CONFIG_MLXFW is not set
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-# CONFIG_NET_VENDOR_MICROSEMI is not set
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_NETRONOME=y
-# CONFIG_NET_VENDOR_NI is not set
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_PENSANDO=y
-# CONFIG_NET_VENDOR_QUALCOMM is not set
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-# CONFIG_NET_VENDOR_SAMSUNG is not set
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_NET_VENDOR_SMSC=y
-# CONFIG_SMC91X is not set
-# CONFIG_SMC911X is not set
-# CONFIG_SMSC911X is not set
-# CONFIG_NET_VENDOR_SOCIONEXT is not set
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-CONFIG_STMMAC_PLATFORM=m
-CONFIG_DWMAC_DWC_QOS_ETH=m
-CONFIG_DWMAC_GENERIC=m
-CONFIG_DWMAC_IPQ806X=m
-CONFIG_DWMAC_QCOM_ETHQOS=m
-CONFIG_DWMAC_ROCKCHIP=m
-CONFIG_DWMAC_SUNXI=m
-CONFIG_DWMAC_SUN8I=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_DWC_XLGMAC is not set
-CONFIG_NET_VENDOR_TI=y
-CONFIG_TI_DAVINCI_MDIO=m
-CONFIG_TI_CPSW_PHY_SEL=y
-CONFIG_TI_CPSW=m
-# CONFIG_TI_CPSW_SWITCHDEV is not set
-# CONFIG_TI_CPTS is not set
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-# CONFIG_VIA_VELOCITY is not set
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_WIZNET_W5100=m
-CONFIG_WIZNET_W5300=m
-# CONFIG_WIZNET_BUS_DIRECT is not set
-# CONFIG_WIZNET_BUS_INDIRECT is not set
-CONFIG_WIZNET_BUS_ANY=y
-CONFIG_WIZNET_W5100_SPI=m
-CONFIG_NET_VENDOR_XILINX=y
-# CONFIG_XILINX_EMACLITE is not set
-# CONFIG_XILINX_AXI_EMAC is not set
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-CONFIG_MDIO_BCM_UNIMAC=m
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_BUS_MUX=m
-# CONFIG_MDIO_BUS_MUX_GPIO is not set
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
-CONFIG_MDIO_GPIO=m
-# CONFIG_MDIO_HISI_FEMAC is not set
-# CONFIG_MDIO_MSCC_MIIM is not set
-CONFIG_MDIO_SUN4I=m
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=y
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-
-#
-# MII PHY device drivers
-#
-# CONFIG_SFP is not set
-# CONFIG_ADIN_PHY is not set
-CONFIG_AMD_PHY=m
-CONFIG_AQUANTIA_PHY=m
-# CONFIG_AX88796B_PHY is not set
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-# CONFIG_BCM84881_PHY is not set
-CONFIG_CICADA_PHY=m
-# CONFIG_CORTINA_PHY is not set
-CONFIG_DAVICOM_PHY=m
-CONFIG_DP83822_PHY=m
-# CONFIG_DP83TC811_PHY is not set
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-# CONFIG_DP83869_PHY is not set
-CONFIG_FIXED_PHY=y
-CONFIG_ICPLUS_PHY=m
-CONFIG_INTEL_XWAY_PHY=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_MARVELL_PHY=m
-# CONFIG_MARVELL_10G_PHY is not set
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-# CONFIG_MICROCHIP_T1_PHY is not set
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-# CONFIG_NXP_TJA11XX_PHY is not set
-# CONFIG_AT803X_PHY is not set
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_RENESAS_PHY=m
-# CONFIG_ROCKCHIP_PHY is not set
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_XILINX_GMII2RGMII=m
-CONFIG_MICREL_KS8995MA=m
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-
-#
-# Host-side USB support is needed for USB Network Adapter support
-#
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-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=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-# CONFIG_USB_NET_SR9700 is not set
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_WLAN=y
-# CONFIG_WLAN_VENDOR_ADMTEK is not set
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_AHB=y
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HWRNG is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-CONFIG_CARL9170_HWRNG=y
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-CONFIG_ATH6KL_DEBUG=y
-CONFIG_AR5523=m
-# CONFIG_ATH10K is not set
-# CONFIG_WCN36XX is not set
-# CONFIG_WLAN_VENDOR_ATMEL is not set
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-# CONFIG_BRCMFMAC is not set
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-# CONFIG_WLAN_VENDOR_CISCO is not set
-CONFIG_WLAN_VENDOR_INTEL=y
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-CONFIG_MT76_CORE=m
-CONFIG_MT76_LEDS=y
-CONFIG_MT76_USB=m
-CONFIG_MT76x02_LIB=m
-CONFIG_MT76x02_USB=m
-CONFIG_MT76x0_COMMON=m
-CONFIG_MT76x0U=m
-CONFIG_MT76x2_COMMON=m
-CONFIG_MT76x2U=m
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-# CONFIG_RT2800USB_RT35XX is not set
-# CONFIG_RT2800USB_RT3573 is not set
-CONFIG_RT2800USB_RT53XX=y
-# CONFIG_RT2800USB_RT55XX is not set
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8XXXU=m
-# CONFIG_RTL8XXXU_UNTESTED is not set
-# CONFIG_RTW88 is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-# CONFIG_CW1200 is not set
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SPI=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-CONFIG_USB_ZD1201=m
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_VIRT_WIFI is not set
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# end of WiMAX Wireless Broadband devices
-
-CONFIG_WAN=y
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-CONFIG_HDLC_X25=m
-# CONFIG_SLIC_DS26522 is not set
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_LAPBETHER=m
-CONFIG_X25_ASY=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-# CONFIG_IEEE802154_AT86RF230 is not set
-CONFIG_IEEE802154_MRF24J40=m
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-# CONFIG_IEEE802154_CA8210 is not set
-CONFIG_IEEE802154_MCR20A=m
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_NET_FAILOVER=m
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=m
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-CONFIG_INPUT_MATRIXKMAP=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADC is not set
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1050 is not set
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_DLINK_DIR685 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_GPIO is not set
-CONFIG_KEYBOARD_GPIO_POLLED=m
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_TCA8418 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_LM8333 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_SNVS_PWRKEY is not set
-# CONFIG_KEYBOARD_IMX is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_TEGRA is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-CONFIG_KEYBOARD_PMIC8XXX=m
-# CONFIG_KEYBOARD_SAMSUNG is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-CONFIG_KEYBOARD_SUN4I_LRADC=m
-# CONFIG_KEYBOARD_OMAP4 is not set
-# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_KEYBOARD_CROS_EC=y
-# CONFIG_KEYBOARD_CAP11XX is not set
-CONFIG_KEYBOARD_BCM=m
-CONFIG_INPUT_MOUSE=y
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-# CONFIG_MOUSE_ELAN_I2C is not set
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-# CONFIG_TOUCHSCREEN_ADC is not set
-# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
-CONFIG_TOUCHSCREEN_BU21013=m
-# CONFIG_TOUCHSCREEN_BU21029 is not set
-# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
-# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-# CONFIG_TOUCHSCREEN_EGALAX is not set
-CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
-CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
-# CONFIG_TOUCHSCREEN_HIDEEP is not set
-# CONFIG_TOUCHSCREEN_ILI210X is not set
-# CONFIG_TOUCHSCREEN_S6SY761 is not set
-CONFIG_TOUCHSCREEN_GUNZE=m
-# CONFIG_TOUCHSCREEN_EKTF2127 is not set
-# CONFIG_TOUCHSCREEN_ELAN is not set
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MMS114 is not set
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-# CONFIG_TOUCHSCREEN_TI_AM335X_TSC is not set
-CONFIG_TOUCHSCREEN_UCB1400=m
-CONFIG_TOUCHSCREEN_PIXCIR=m
-CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
-CONFIG_TOUCHSCREEN_WM97XX=m
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-# CONFIG_TOUCHSCREEN_MC13783 is not set
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TS4800=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
-CONFIG_TOUCHSCREEN_RM_TS=m
-CONFIG_TOUCHSCREEN_SILEAD=m
-CONFIG_TOUCHSCREEN_SIS_I2C=m
-CONFIG_TOUCHSCREEN_ST1232=m
-# CONFIG_TOUCHSCREEN_STMFTS is not set
-# CONFIG_TOUCHSCREEN_SUN4I is not set
-# CONFIG_TOUCHSCREEN_SUR40 is not set
-# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
-# CONFIG_TOUCHSCREEN_SX8654 is not set
-CONFIG_TOUCHSCREEN_TPS6507X=m
-# CONFIG_TOUCHSCREEN_ZET6223 is not set
-CONFIG_TOUCHSCREEN_ZFORCE=m
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-# CONFIG_TOUCHSCREEN_IQS5XX is not set
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
-# CONFIG_INPUT_BMA150 is not set
-CONFIG_INPUT_E3X0_BUTTON=m
-# CONFIG_INPUT_MSM_VIBRATOR is not set
-# CONFIG_INPUT_PM8941_PWRKEY is not set
-CONFIG_INPUT_PM8XXX_VIBRATOR=m
-CONFIG_INPUT_PMIC8XXX_PWRKEY=m
-# CONFIG_INPUT_MC13783_PWRBUTTON is not set
-CONFIG_INPUT_MMA8450=m
-# CONFIG_INPUT_GP2A is not set
-CONFIG_INPUT_GPIO_BEEPER=m
-# CONFIG_INPUT_GPIO_DECODER is not set
-# CONFIG_INPUT_GPIO_VIBRA is not set
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-# CONFIG_INPUT_REGULATOR_HAPTIC is not set
-# CONFIG_INPUT_TPS65218_PWRBUTTON is not set
-CONFIG_INPUT_AXP20X_PEK=m
-CONFIG_INPUT_UINPUT=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-# CONFIG_INPUT_PWM_VIBRA is not set
-# CONFIG_INPUT_RK805_PWRKEY is not set
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-# CONFIG_INPUT_IMS_PCU is not set
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-# CONFIG_INPUT_DRV260X_HAPTICS is not set
-CONFIG_INPUT_DRV2665_HAPTICS=m
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-CONFIG_RMI4_CORE=m
-CONFIG_RMI4_I2C=m
-CONFIG_RMI4_SPI=m
-# CONFIG_RMI4_SMB is not set
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-# CONFIG_RMI4_F54 is not set
-# CONFIG_RMI4_F55 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=m
-# CONFIG_SERIO_AMBAKMI is not set
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-# CONFIG_SERIO_ARC_PS2 is not set
-# CONFIG_SERIO_APBPS2 is not set
-# CONFIG_SERIO_SUN4I_PS2 is not set
-# CONFIG_SERIO_GPIO_PS2 is not set
-# CONFIG_USERIO 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=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_N_HDLC=m
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_NULL_TTY is not set
-# CONFIG_LDISC_AUTOLOAD is not set
-CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
-# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-# CONFIG_SERIAL_8250_MEN_MCB is not set
-CONFIG_SERIAL_8250_NR_UARTS=8
-CONFIG_SERIAL_8250_RUNTIME_UARTS=8
-CONFIG_SERIAL_8250_EXTENDED=y
-# CONFIG_SERIAL_8250_MANY_PORTS is not set
-# CONFIG_SERIAL_8250_ASPEED_VUART is not set
-# CONFIG_SERIAL_8250_SHARE_IRQ is not set
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-# CONFIG_SERIAL_8250_RSA is not set
-CONFIG_SERIAL_8250_DWLIB=y
-CONFIG_SERIAL_8250_FSL=y
-CONFIG_SERIAL_8250_DW=y
-# CONFIG_SERIAL_8250_EM is not set
-# CONFIG_SERIAL_8250_RT288X is not set
-# CONFIG_SERIAL_8250_OMAP is not set
-CONFIG_SERIAL_OF_PLATFORM=y
-
-#
-# Non-8250 serial port support
-#
-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_UARTS_4=y
-CONFIG_SERIAL_SAMSUNG_UARTS=4
-CONFIG_SERIAL_SAMSUNG_CONSOLE=y
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-CONFIG_SERIAL_IMX=y
-CONFIG_SERIAL_IMX_CONSOLE=y
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_MSM=y
-CONFIG_SERIAL_MSM_CONSOLE=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_SIFIVE is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-CONFIG_SERIAL_BCM63XX=m
-# 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
-# CONFIG_SERIAL_ST_ASC is not set
-# CONFIG_SERIAL_MEN_Z135 is not set
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SERIAL_DEV_BUS is not set
-CONFIG_HVC_DRIVER=y
-# CONFIG_HVC_DCC is not set
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_PLAT_DATA=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SSIF=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-# CONFIG_IPMB_DEVICE_INTERFACE is not set
-CONFIG_HW_RANDOM=m
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_IPROC_RNG200=m
-CONFIG_HW_RANDOM_OMAP=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_HW_RANDOM_IMX_RNGC=m
-CONFIG_HW_RANDOM_EXYNOS=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_TCG_TPM=m
-CONFIG_HW_RANDOM_TPM=y
-# CONFIG_TCG_TIS is not set
-# CONFIG_TCG_TIS_SPI is not set
-# CONFIG_TCG_TIS_I2C_ATMEL is not set
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-# CONFIG_TCG_VTPM_PROXY is not set
-# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
-# CONFIG_TCG_TIS_ST33ZP24_SPI 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=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-CONFIG_I2C_MUX_GPIO=m
-CONFIG_I2C_MUX_GPMUX=m
-# CONFIG_I2C_MUX_LTC4306 is not set
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
-CONFIG_I2C_MUX_PINCTRL=m
-CONFIG_I2C_MUX_REG=m
-CONFIG_I2C_DEMUX_PINCTRL=m
-CONFIG_I2C_MUX_MLXCPLD=m
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=y
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_BCM2835 is not set
-# CONFIG_I2C_CADENCE is not set
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_EXYNOS5=y
-CONFIG_I2C_GPIO=m
-# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
-CONFIG_I2C_IMX=m
-# CONFIG_I2C_IMX_LPI2C is not set
-CONFIG_I2C_MV64XXX=m
-# CONFIG_I2C_NOMADIK is not set
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_OMAP=y
-CONFIG_I2C_PCA_PLATFORM=m
-CONFIG_I2C_QUP=m
-# CONFIG_I2C_RK3X is not set
-CONFIG_HAVE_S3C2410_I2C=y
-CONFIG_I2C_S3C2410=y
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_SUN6I_P2WI=m
-# CONFIG_I2C_TEGRA is not set
-# CONFIG_I2C_VERSATILE is not set
-CONFIG_I2C_XILINX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-# CONFIG_I2C_DLN2 is not set
-# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_CROS_EC_TUNNEL=m
-# end of I2C Hardware Bus support
-
-# CONFIG_I2C_STUB is not set
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# 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_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_BCM2835 is not set
-# CONFIG_SPI_BCM2835AUX is not set
-# CONFIG_SPI_BCM_QSPI is not set
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_CADENCE=m
-CONFIG_SPI_DESIGNWARE=m
-# CONFIG_SPI_DW_MMIO is not set
-# CONFIG_SPI_DLN2 is not set
-# CONFIG_SPI_FSL_LPSPI is not set
-CONFIG_SPI_FSL_QUADSPI=m
-# CONFIG_SPI_NXP_FLEXSPI is not set
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_IMX=m
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-# CONFIG_SPI_OMAP24XX is not set
-# CONFIG_SPI_TI_QSPI is not set
-# CONFIG_SPI_PL022 is not set
-CONFIG_SPI_ROCKCHIP=m
-# CONFIG_SPI_QCOM_QSPI is not set
-CONFIG_SPI_QUP=m
-# CONFIG_SPI_S3C64XX is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_SIFIVE is not set
-CONFIG_SPI_SUN4I=m
-CONFIG_SPI_SUN6I=m
-# CONFIG_SPI_MXIC is not set
-# CONFIG_SPI_TEGRA20_SFLASH is not set
-CONFIG_SPI_XCOMM=m
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQ_QSPI is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_LOOPBACK_TEST is not set
-CONFIG_SPI_TLE62X0=m
-# CONFIG_SPI_SLAVE is not set
-CONFIG_SPMI=m
-CONFIG_SPMI_MSM_PMIC_ARB=m
-# CONFIG_HSI is not set
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-# CONFIG_PPS_CLIENT_GPIO is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-# CONFIG_PTP_1588_CLOCK_IDTCM is not set
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_GENERIC_PINCTRL_GROUPS=y
-CONFIG_PINMUX=y
-CONFIG_GENERIC_PINMUX_FUNCTIONS=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-CONFIG_PINCTRL_AXP209=m
-# CONFIG_PINCTRL_AMD is not set
-# CONFIG_PINCTRL_MCP23S08 is not set
-CONFIG_PINCTRL_ROCKCHIP=y
-CONFIG_PINCTRL_SINGLE=y
-# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_STMFX is not set
-CONFIG_PINCTRL_ZYNQ=y
-# CONFIG_PINCTRL_RK805 is not set
-# CONFIG_PINCTRL_OCELOT is not set
-CONFIG_PINCTRL_BCM2835=y
-CONFIG_PINCTRL_IMX=y
-CONFIG_PINCTRL_IMX51=y
-CONFIG_PINCTRL_IMX53=y
-CONFIG_PINCTRL_IMX6Q=y
-CONFIG_PINCTRL_IMX6SL=y
-CONFIG_PINCTRL_IMX6SX=y
-CONFIG_PINCTRL_IMX6UL=y
-CONFIG_PINCTRL_IMX7D=y
-CONFIG_PINCTRL_MSM=y
-CONFIG_PINCTRL_APQ8064=m
-CONFIG_PINCTRL_APQ8084=m
-# CONFIG_PINCTRL_IPQ4019 is not set
-CONFIG_PINCTRL_IPQ8064=m
-# CONFIG_PINCTRL_IPQ8074 is not set
-CONFIG_PINCTRL_MSM8660=m
-CONFIG_PINCTRL_MSM8960=m
-# CONFIG_PINCTRL_MDM9615 is not set
-# CONFIG_PINCTRL_MSM8X74 is not set
-CONFIG_PINCTRL_MSM8916=m
-# CONFIG_PINCTRL_MSM8976 is not set
-# CONFIG_PINCTRL_MSM8994 is not set
-# CONFIG_PINCTRL_MSM8996 is not set
-CONFIG_PINCTRL_MSM8998=m
-# CONFIG_PINCTRL_QCS404 is not set
-CONFIG_PINCTRL_QCOM_SPMI_PMIC=m
-CONFIG_PINCTRL_QCOM_SSBI_PMIC=m
-# CONFIG_PINCTRL_SC7180 is not set
-# CONFIG_PINCTRL_SDM660 is not set
-# CONFIG_PINCTRL_SDM845 is not set
-# CONFIG_PINCTRL_SM8150 is not set
-CONFIG_PINCTRL_SAMSUNG=y
-CONFIG_PINCTRL_EXYNOS=y
-CONFIG_PINCTRL_EXYNOS_ARM=y
-CONFIG_PINCTRL_SUNXI=y
-CONFIG_PINCTRL_SUN4I_A10=y
-CONFIG_PINCTRL_SUN5I=y
-CONFIG_PINCTRL_SUN6I_A31=y
-CONFIG_PINCTRL_SUN6I_A31_R=y
-CONFIG_PINCTRL_SUN8I_A23=y
-CONFIG_PINCTRL_SUN8I_A33=y
-CONFIG_PINCTRL_SUN8I_A83T=y
-CONFIG_PINCTRL_SUN8I_A83T_R=y
-CONFIG_PINCTRL_SUN8I_A23_R=y
-CONFIG_PINCTRL_SUN8I_H3=y
-CONFIG_PINCTRL_SUN8I_H3_R=y
-CONFIG_PINCTRL_SUN8I_V3S=y
-CONFIG_PINCTRL_SUN9I_A80=y
-CONFIG_PINCTRL_SUN9I_A80_R=y
-# CONFIG_PINCTRL_SUN50I_A64 is not set
-# CONFIG_PINCTRL_SUN50I_A64_R is not set
-# CONFIG_PINCTRL_SUN50I_H5 is not set
-# CONFIG_PINCTRL_SUN50I_H6 is not set
-# CONFIG_PINCTRL_SUN50I_H6_R is not set
-CONFIG_PINCTRL_TEGRA_XUSB=y
-# CONFIG_PINCTRL_EQUILIBRIUM is not set
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_OF_GPIO=y
-CONFIG_GPIOLIB_IRQCHIP=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_GENERIC=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-CONFIG_GPIO_74XX_MMIO=m
-CONFIG_GPIO_ALTERA=m
-# CONFIG_GPIO_CADENCE is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_FTGPIO010 is not set
-CONFIG_GPIO_GENERIC_PLATFORM=y
-# CONFIG_GPIO_GRGPIO is not set
-# CONFIG_GPIO_HLWD is not set
-# CONFIG_GPIO_LOGICVC is not set
-# CONFIG_GPIO_MB86S7X is not set
-# CONFIG_GPIO_MENZ127 is not set
-# CONFIG_GPIO_MPC8XXX is not set
-CONFIG_GPIO_MXC=y
-CONFIG_GPIO_OMAP=y
-# CONFIG_GPIO_PL061 is not set
-# CONFIG_GPIO_SAMA5D2_PIOBU is not set
-# CONFIG_GPIO_SIFIVE is not set
-CONFIG_GPIO_SYSCON=m
-CONFIG_GPIO_TEGRA=y
-CONFIG_GPIO_TS4800=m
-# CONFIG_GPIO_XILINX is not set
-# CONFIG_GPIO_ZEVIO is not set
-# CONFIG_GPIO_ZYNQ is not set
-# CONFIG_GPIO_AMD_FCH is not set
-# end of Memory mapped GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-# CONFIG_GPIO_ADNP is not set
-# CONFIG_GPIO_GW_PLD is not set
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-# CONFIG_GPIO_TPIC2810 is not set
-# CONFIG_GPIO_TS4900 is not set
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-# CONFIG_GPIO_DLN2 is not set
-# CONFIG_HTC_EGPIO is not set
-CONFIG_GPIO_TPS65218=m
-# CONFIG_GPIO_UCB1400 is not set
-# end of MFD GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-CONFIG_GPIO_74X164=m
-# CONFIG_GPIO_MAX3191X is not set
-CONFIG_GPIO_MAX7301=m
-# 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=y
-# CONFIG_QCOM_CPR is not set
-# CONFIG_ROCKCHIP_IODOMAIN is not set
-CONFIG_POWER_RESET=y
-# CONFIG_POWER_RESET_BRCMKONA is not set
-# CONFIG_POWER_RESET_BRCMSTB is not set
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_GPIO_RESTART=y
-CONFIG_POWER_RESET_MSM=y
-CONFIG_POWER_RESET_QCOM_PON=m
-# CONFIG_POWER_RESET_LTC2952 is not set
-CONFIG_POWER_RESET_RESTART=y
-CONFIG_POWER_RESET_VERSATILE=y
-CONFIG_POWER_RESET_VEXPRESS=y
-CONFIG_POWER_RESET_SYSCON=y
-CONFIG_POWER_RESET_SYSCON_POWEROFF=y
-CONFIG_REBOOT_MODE=y
-CONFIG_SYSCON_REBOOT_MODE=y
-# CONFIG_NVMEM_REBOOT_MODE is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_GENERIC_ADC_BATTERY=m
-# CONFIG_TEST_POWER is not set
-# CONFIG_CHARGER_ADP5061 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_LEGO_EV3 is not set
-CONFIG_BATTERY_SBS=m
-CONFIG_CHARGER_SBS=m
-CONFIG_MANAGER_SBS=m
-CONFIG_BATTERY_BQ27XXX=m
-CONFIG_BATTERY_BQ27XXX_I2C=m
-# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set
-CONFIG_AXP20X_POWER=m
-CONFIG_AXP288_FUEL_GAUGE=m
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_PCF50633 is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_LP8727 is not set
-# CONFIG_CHARGER_GPIO is not set
-# CONFIG_CHARGER_MANAGER is not set
-# CONFIG_CHARGER_LT3651 is not set
-# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
-# CONFIG_CHARGER_QCOM_SMBB is not set
-# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_SMB347 is not set
-CONFIG_CHARGER_TPS65217=m
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-# CONFIG_CHARGER_CROS_USBPD is not set
-# CONFIG_CHARGER_UCS1002 is not set
-CONFIG_HWMON=m
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-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
-CONFIG_SENSORS_ADM1031=m
-# CONFIG_SENSORS_ADM1177 is not set
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-# CONFIG_SENSORS_ADT7410 is not set
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-# CONFIG_SENSORS_AS370 is not set
-CONFIG_SENSORS_ASC7621=m
-# CONFIG_SENSORS_ASPEED is not set
-CONFIG_SENSORS_ATXP1=m
-# CONFIG_SENSORS_DRIVETEMP is not set
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-# CONFIG_SENSORS_MC13783_ADC is not set
-CONFIG_SENSORS_FTSTEUTATES=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-# CONFIG_SENSORS_G762 is not set
-CONFIG_SENSORS_GPIO_FAN=m
-# CONFIG_SENSORS_HIH6130 is not set
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-# CONFIG_SENSORS_IIO_HWMON is not set
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-# CONFIG_SENSORS_LTC2947_I2C is not set
-# CONFIG_SENSORS_LTC2947_SPI is not set
-CONFIG_SENSORS_LTC2990=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-# CONFIG_SENSORS_MAX197 is not set
-CONFIG_SENSORS_MAX31722=m
-# CONFIG_SENSORS_MAX31730 is not set
-# CONFIG_SENSORS_MAX6621 is not set
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_MLXREG_FAN=m
-# CONFIG_SENSORS_TC654 is not set
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-# CONFIG_SENSORS_LM95234 is not set
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-# CONFIG_SENSORS_NTC_THERMISTOR is not set
-CONFIG_SENSORS_NCT6683=m
-# CONFIG_SENSORS_NCT6775 is not set
-# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NCT7904 is not set
-CONFIG_SENSORS_NPCM7XX=m
-# CONFIG_SENSORS_OCC_P8_I2C is not set
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-# CONFIG_SENSORS_BEL_PFE is not set
-# CONFIG_SENSORS_IBM_CFFPS is not set
-# CONFIG_SENSORS_INSPUR_IPSPS is not set
-# CONFIG_SENSORS_IR35221 is not set
-# CONFIG_SENSORS_IR38064 is not set
-# CONFIG_SENSORS_IRPS5401 is not set
-# CONFIG_SENSORS_ISL68137 is not set
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-# CONFIG_SENSORS_LTC2978_REGULATOR is not set
-CONFIG_SENSORS_LTC3815=m
-CONFIG_SENSORS_MAX16064=m
-# CONFIG_SENSORS_MAX20730 is not set
-CONFIG_SENSORS_MAX20751=m
-# CONFIG_SENSORS_MAX31785 is not set
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-# CONFIG_SENSORS_PXE1610 is not set
-CONFIG_SENSORS_TPS40422=m
-# CONFIG_SENSORS_TPS53679 is not set
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-# CONFIG_SENSORS_XDPE122 is not set
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_PWM_FAN=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHT3x=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-# CONFIG_SENSORS_STTS751 is not set
-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_INA2XX is not set
-CONFIG_SENSORS_INA3221=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-# CONFIG_SENSORS_TMP108 is not set
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-# CONFIG_SENSORS_TMP513 is not set
-# CONFIG_SENSORS_VEXPRESS is not set
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_W83773G=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-CONFIG_SENSORS_W83795_FANCTRL=y
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_STATISTICS=y
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_OF=y
-# CONFIG_THERMAL_WRITABLE_TRIPS is not set
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-# CONFIG_THERMAL_GOV_BANG_BANG is not set
-# CONFIG_THERMAL_GOV_USER_SPACE is not set
-# CONFIG_CPU_THERMAL is not set
-# CONFIG_CLOCK_THERMAL is not set
-# CONFIG_DEVFREQ_THERMAL is not set
-# CONFIG_THERMAL_EMULATION is not set
-# CONFIG_THERMAL_MMIO is not set
-# CONFIG_IMX_THERMAL is not set
-# CONFIG_QORIQ_THERMAL is not set
-# CONFIG_SUN8I_THERMAL is not set
-# CONFIG_ROCKCHIP_THERMAL is not set
-
-#
-# Broadcom thermal drivers
-#
-# CONFIG_BCM2711_THERMAL is not set
-# CONFIG_BCM2835_THERMAL is not set
-# end of Broadcom thermal drivers
-
-#
-# Texas Instruments thermal drivers
-#
-# CONFIG_TI_SOC_THERMAL is not set
-# end of Texas Instruments thermal drivers
-
-#
-# Samsung thermal drivers
-#
-CONFIG_EXYNOS_THERMAL=y
-# end of Samsung thermal drivers
-
-#
-# NVIDIA Tegra thermal drivers
-#
-# CONFIG_TEGRA_SOCTHERM is not set
-# end of NVIDIA Tegra thermal drivers
-
-# CONFIG_GENERIC_ADC_THERMAL is not set
-
-#
-# Qualcomm thermal drivers
-#
-CONFIG_QCOM_TSENS=m
-# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
-# end of Qualcomm thermal drivers
-
-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=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_GPIO_WATCHDOG=m
-# CONFIG_MENZ069_WATCHDOG is not set
-CONFIG_XILINX_WATCHDOG=m
-# CONFIG_ZIIRAVE_WATCHDOG is not set
-# CONFIG_MLX_WDT is not set
-# CONFIG_ARM_SP805_WATCHDOG is not set
-CONFIG_CADENCE_WATCHDOG=m
-# CONFIG_FTWDT010_WATCHDOG is not set
-CONFIG_HAVE_S3C2410_WATCHDOG=y
-# CONFIG_S3C2410_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=m
-CONFIG_SUNXI_WATCHDOG=m
-# CONFIG_TS4800_WATCHDOG is not set
-# CONFIG_MAX63XX_WATCHDOG is not set
-# CONFIG_IMX2_WDT is not set
-# CONFIG_IMX7ULP_WDT is not set
-# CONFIG_TEGRA_WATCHDOG is not set
-CONFIG_QCOM_WDT=m
-# CONFIG_PM8916_WATCHDOG is not set
-# CONFIG_BCM2835_WDT is not set
-# CONFIG_MEN_A21_WDT is not set
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-# CONFIG_BCMA_HOST_SOC is not set
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_ACT8945A is not set
-CONFIG_MFD_SUN4I_GPADC=m
-# 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=m
-# CONFIG_MFD_BCM590XX is not set
-# CONFIG_MFD_BD9571MWV is not set
-CONFIG_MFD_AC100=m
-CONFIG_MFD_AXP20X=m
-CONFIG_MFD_AXP20X_I2C=m
-CONFIG_MFD_AXP20X_RSB=m
-CONFIG_MFD_CROS_EC_DEV=m
-# CONFIG_MFD_MADERA is not set
-# CONFIG_MFD_ASIC3 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=m
-CONFIG_MFD_EXYNOS_LPASS=m
-CONFIG_MFD_MC13XXX=m
-CONFIG_MFD_MC13XXX_SPI=m
-CONFIG_MFD_MC13XXX_I2C=m
-# CONFIG_MFD_HI6421_PMIC is not set
-CONFIG_HTC_PASIC3=m
-# 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=m
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-CONFIG_MFD_PM8XXX=m
-# CONFIG_MFD_QCOM_RPM is not set
-CONFIG_MFD_SPMI_PMIC=m
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RC5T583 is not set
-CONFIG_MFD_RK808=m
-# CONFIG_MFD_RN5T618 is not set
-# CONFIG_MFD_SEC_CORE is not set
-# CONFIG_MFD_SI476X_CORE is not set
-CONFIG_MFD_SM501=m
-# CONFIG_MFD_SM501_GPIO is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
-CONFIG_ABX500_CORE=y
-# CONFIG_AB3100_CORE is not set
-# CONFIG_MFD_STMPE is not set
-CONFIG_MFD_SUN6I_PRCM=y
-CONFIG_MFD_SYSCON=y
-CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-# CONFIG_MFD_TI_LMU is not set
-CONFIG_MFD_OMAP_USB_HOST=y
-# CONFIG_MFD_PALMAS is not set
-# CONFIG_TPS6105X is not set
-CONFIG_TPS65010=m
-CONFIG_TPS6507X=m
-# CONFIG_MFD_TPS65086 is not set
-# CONFIG_MFD_TPS65090 is not set
-CONFIG_MFD_TPS65217=m
-# CONFIG_MFD_TI_LP873X is not set
-# CONFIG_MFD_TI_LP87565 is not set
-CONFIG_MFD_TPS65218=m
-# 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=m
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB 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_ROHM_BD71828 is not set
-# CONFIG_MFD_STPMIC1 is not set
-# CONFIG_MFD_STMFX is not set
-CONFIG_MFD_VEXPRESS_SYSREG=y
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_88PG86X is not set
-# CONFIG_REGULATOR_ACT8865 is not set
-# CONFIG_REGULATOR_AD5398 is not set
-CONFIG_REGULATOR_ANATOP=y
-CONFIG_REGULATOR_AXP20X=m
-# CONFIG_REGULATOR_DA9210 is not set
-CONFIG_REGULATOR_DA9211=m
-# CONFIG_REGULATOR_FAN53555 is not set
-# CONFIG_REGULATOR_GPIO is not set
-CONFIG_REGULATOR_ISL9305=m
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-CONFIG_REGULATOR_LTC3589=m
-# CONFIG_REGULATOR_LTC3676 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MAX8973 is not set
-CONFIG_REGULATOR_MC13XXX_CORE=m
-CONFIG_REGULATOR_MC13783=m
-CONFIG_REGULATOR_MC13892=m
-# CONFIG_REGULATOR_MCP16502 is not set
-# CONFIG_REGULATOR_MP8859 is not set
-# CONFIG_REGULATOR_MPQ7920 is not set
-# CONFIG_REGULATOR_MT6311 is not set
-# CONFIG_REGULATOR_PBIAS is not set
-# CONFIG_REGULATOR_PCF50633 is not set
-# CONFIG_REGULATOR_PFUZE100 is not set
-CONFIG_REGULATOR_PV88060=m
-# CONFIG_REGULATOR_PV88080 is not set
-CONFIG_REGULATOR_PV88090=m
-CONFIG_REGULATOR_PWM=m
-CONFIG_REGULATOR_QCOM_SMD_RPM=m
-# CONFIG_REGULATOR_QCOM_SPMI is not set
-CONFIG_REGULATOR_RK808=m
-# CONFIG_REGULATOR_SLG51000 is not set
-# CONFIG_REGULATOR_TI_ABB is not set
-# CONFIG_REGULATOR_SY8106A is not set
-# CONFIG_REGULATOR_SY8824X is not set
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-# CONFIG_REGULATOR_TPS65132 is not set
-CONFIG_REGULATOR_TPS65217=m
-CONFIG_REGULATOR_TPS65218=m
-# CONFIG_REGULATOR_TPS6524X is not set
-# CONFIG_REGULATOR_VCTRL is not set
-# CONFIG_REGULATOR_VEXPRESS is not set
-# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
-CONFIG_CEC_CORE=y
-CONFIG_CEC_NOTIFIER=y
-CONFIG_CEC_PIN=y
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-# CONFIG_LIRC is not set
-CONFIG_RC_DECODERS=y
-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_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-# CONFIG_IR_RCMM_DECODER is not set
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_HIX5HD2=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_IR_TTUSBIR is not set
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
-# CONFIG_IR_SUNXI is not set
-# CONFIG_IR_SERIAL is not set
-# CONFIG_IR_SIR is not set
-# CONFIG_RC_XBOX_DVD is not set
-CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-# CONFIG_MEDIA_RADIO_SUPPORT is not set
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-# CONFIG_MEDIA_CEC_SUPPORT is not set
-CONFIG_MEDIA_CONTROLLER=y
-# CONFIG_MEDIA_CONTROLLER_DVB is not set
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L2_I2C=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_V4L2_FLASH_LED_CLASS=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_DVB_CORE=m
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-
-#
-# Media drivers
-#
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-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
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-# CONFIG_USB_GSPCA_KONICA is not set
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-# CONFIG_USB_GSPCA_SPCA1528 is not set
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-# CONFIG_USB_GSPCA_SQ930X is not set
-CONFIG_USB_GSPCA_STK014=m
-# CONFIG_USB_GSPCA_STK1135 is not set
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
-CONFIG_USB_GSPCA_ZC3XX=m
-# CONFIG_USB_PWC is not set
-# CONFIG_VIDEO_CPIA2 is not set
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-# CONFIG_VIDEO_USBTV is not set
-
-#
-# Analog TV USB devices
-#
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_HDPVR is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_VIDEO_STK1160_COMMON is not set
-# CONFIG_VIDEO_GO7007 is not set
-
-#
-# Analog/digital TV USB devices
-#
-# CONFIG_VIDEO_AU0828 is not set
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-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_CXUSB_ANALOG is not set
-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_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=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_ZD1301 is not set
-# CONFIG_SMS_USB_DRV is not set
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-# CONFIG_DVB_AS102 is not set
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-# CONFIG_VIDEO_EM28XX_DVB is not set
-CONFIG_VIDEO_EM28XX_RC=m
-# CONFIG_V4L_PLATFORM_DRIVERS is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-# CONFIG_VIDEO_CODA is not set
-# CONFIG_VIDEO_IMX_PXP is not set
-CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
-# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set
-# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set
-# CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC is not set
-# CONFIG_VIDEO_SH_VEU is not set
-# CONFIG_VIDEO_ROCKCHIP_RGA is not set
-# CONFIG_VIDEO_SUN8I_DEINTERLACE is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-# CONFIG_DVB_PLATFORM_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-# CONFIG_SMS_SDIO_DRV is not set
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
-CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# I2C drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_MSP3400=m
-
-#
-# RDS decoders
-#
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_CX25840=m
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Lens drivers
-#
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Audio/Video compression chips
-#
-
-#
-# SDR tuner chips
-#
-
-#
-# Miscellaneous helper chips
-#
-
-#
-# SPI drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Media SPI Adapters
-#
-CONFIG_CXD2880_SPI_DRV=m
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=m
-
-#
-# Tuner drivers hidden by 'Autoselect ancillary drivers'
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-
-#
-# DVB Frontend drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_GP8PSK_FE=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_SP2=m
-
-#
-# Tools to develop new frontends
-#
-
-#
-# Graphics support
-#
-# CONFIG_TEGRA_HOST1X is not set
-CONFIG_IMX_IPUV3_CORE=m
-CONFIG_DRM=y
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_DP_AUX_CHARDEV=y
-# CONFIG_DRM_DEBUG_MM is not set
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
-CONFIG_DRM_DP_CEC=y
-CONFIG_DRM_GEM_CMA_HELPER=y
-CONFIG_DRM_KMS_CMA_HELPER=y
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_VM=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-CONFIG_DRM_I2C_CH7006=m
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-# CONFIG_DRM_I2C_NXP_TDA9950 is not set
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-CONFIG_DRM_HDLCD=m
-# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
-CONFIG_DRM_MALI_DISPLAY=m
-# CONFIG_DRM_KOMEDA is not set
-# end of ARM devices
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-# end of ACP (Audio CoProcessor) Configuration
-
-# CONFIG_DRM_VGEM is not set
-# CONFIG_DRM_VKMS is not set
-CONFIG_DRM_EXYNOS=m
-
-#
-# CRTCs
-#
-CONFIG_DRM_EXYNOS_FIMD=y
-# CONFIG_DRM_EXYNOS5433_DECON is not set
-# CONFIG_DRM_EXYNOS7_DECON is not set
-CONFIG_DRM_EXYNOS_MIXER=y
-# CONFIG_DRM_EXYNOS_VIDI is not set
-
-#
-# Encoders and Bridges
-#
-CONFIG_DRM_EXYNOS_DPI=y
-CONFIG_DRM_EXYNOS_DSI=y
-CONFIG_DRM_EXYNOS_DP=y
-CONFIG_DRM_EXYNOS_HDMI=y
-
-#
-# Sub-drivers
-#
-# CONFIG_DRM_EXYNOS_G2D is not set
-# CONFIG_DRM_EXYNOS_FIMC is not set
-# CONFIG_DRM_EXYNOS_ROTATOR is not set
-# CONFIG_DRM_EXYNOS_SCALER is not set
-# CONFIG_DRM_EXYNOS_GSC is not set
-# CONFIG_DRM_UDL is not set
-# CONFIG_DRM_ARMADA is not set
-# CONFIG_DRM_ATMEL_HLCDC is not set
-# CONFIG_DRM_RCAR_DW_HDMI is not set
-# CONFIG_DRM_RCAR_LVDS is not set
-CONFIG_DRM_SUN4I=m
-CONFIG_DRM_SUN4I_HDMI=m
-CONFIG_DRM_SUN4I_HDMI_CEC=y
-CONFIG_DRM_SUN4I_BACKEND=m
-CONFIG_DRM_SUN6I_DSI=m
-CONFIG_DRM_SUN8I_DW_HDMI=m
-CONFIG_DRM_SUN8I_MIXER=m
-CONFIG_DRM_SUN8I_TCON_TOP=m
-# CONFIG_DRM_OMAP is not set
-# CONFIG_DRM_TILCDC is not set
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_MSM=m
-CONFIG_DRM_MSM_GPU_STATE=y
-# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
-CONFIG_DRM_MSM_HDMI_HDCP=y
-CONFIG_DRM_MSM_DSI=y
-CONFIG_DRM_MSM_DSI_PLL=y
-CONFIG_DRM_MSM_DSI_28NM_PHY=y
-CONFIG_DRM_MSM_DSI_20NM_PHY=y
-# CONFIG_DRM_MSM_DSI_28NM_8960_PHY is not set
-CONFIG_DRM_MSM_DSI_14NM_PHY=y
-CONFIG_DRM_MSM_DSI_10NM_PHY=y
-# CONFIG_DRM_FSL_DCU is not set
-# CONFIG_DRM_TEGRA is not set
-# CONFIG_DRM_STM is not set
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-CONFIG_DRM_PANEL_ARM_VERSATILE=m
-# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
-# CONFIG_DRM_PANEL_LVDS is not set
-CONFIG_DRM_PANEL_SIMPLE=y
-# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
-CONFIG_DRM_PANEL_ILITEK_IL9322=m
-# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
-# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
-# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
-# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
-# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
-CONFIG_DRM_PANEL_SAMSUNG_LD9040=y
-# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
-# CONFIG_DRM_PANEL_LG_LG4573 is not set
-# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
-# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
-# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
-CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
-# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
-CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
-CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
-# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
-CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
-# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set
-# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
-# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
-CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
-# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
-CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
-CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
-CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
-# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
-CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
-# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
-# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
-# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
-# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
-# CONFIG_DRM_PANEL_TPO_TPG110 is not set
-# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
-# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-# CONFIG_DRM_CDNS_DSI is not set
-CONFIG_DRM_DUMB_VGA_DAC=m
-# CONFIG_DRM_LVDS_CODEC is not set
-# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
-CONFIG_DRM_NXP_PTN3460=y
-CONFIG_DRM_PARADE_PS8622=y
-# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_SII902X is not set
-CONFIG_DRM_SII9234=m
-# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TOSHIBA_TC358764 is not set
-# CONFIG_DRM_TOSHIBA_TC358767 is not set
-# CONFIG_DRM_TI_TFP410 is not set
-# CONFIG_DRM_TI_SN65DSI86 is not set
-# CONFIG_DRM_ANALOGIX_ANX6345 is not set
-CONFIG_DRM_ANALOGIX_ANX78XX=m
-CONFIG_DRM_ANALOGIX_DP=m
-CONFIG_DRM_I2C_ADV7511=m
-# CONFIG_DRM_I2C_ADV7511_AUDIO is not set
-# CONFIG_DRM_I2C_ADV7533 is not set
-CONFIG_DRM_I2C_ADV7511_CEC=y
-CONFIG_DRM_DW_HDMI=m
-CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
-CONFIG_DRM_DW_HDMI_CEC=m
-# end of Display Interface Bridges
-
-# CONFIG_DRM_STI is not set
-# CONFIG_DRM_IMX is not set
-# CONFIG_DRM_V3D is not set
-# CONFIG_DRM_VC4 is not set
-CONFIG_DRM_ETNAVIV=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
-# CONFIG_DRM_ARCPGU is not set
-# CONFIG_DRM_MXSFB is not set
-# CONFIG_DRM_GM12U320 is not set
-# CONFIG_TINYDRM_HX8357D is not set
-# CONFIG_TINYDRM_ILI9225 is not set
-# CONFIG_TINYDRM_ILI9341 is not set
-# CONFIG_TINYDRM_MI0283QT is not set
-# CONFIG_TINYDRM_REPAPER is not set
-# CONFIG_TINYDRM_ST7586 is not set
-# CONFIG_TINYDRM_ST7735R is not set
-# CONFIG_DRM_PL111 is not set
-CONFIG_DRM_TVE200=m
-CONFIG_DRM_LIMA=m
-# CONFIG_DRM_PANFROST is not set
-# CONFIG_DRM_MCDE is not set
-CONFIG_DRM_LEGACY=y
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_BACKLIGHT=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_ARMCLCD=m
-# CONFIG_FB_IMX is not set
-CONFIG_FB_UVESA=m
-# CONFIG_FB_OPENCORES is not set
-CONFIG_FB_S1D13XXX=m
-CONFIG_FB_SM501=m
-# CONFIG_FB_SMSCUFX is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_XILINX is not set
-# CONFIG_FB_DA8XX is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MX3=m
-CONFIG_FB_SIMPLE=y
-# CONFIG_FB_SSD1307 is not set
-# CONFIG_FB_OMAP2 is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-# CONFIG_LCD_ILI922X is not set
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-# CONFIG_LCD_OTM3225A is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_PWM=m
-# CONFIG_BACKLIGHT_QCOM_WLED is not set
-CONFIG_BACKLIGHT_ADP8860=m
-# CONFIG_BACKLIGHT_ADP8870 is not set
-CONFIG_BACKLIGHT_PCF50633=m
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-# CONFIG_BACKLIGHT_TPS65217 is not set
-# CONFIG_BACKLIGHT_GPIO is not set
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_BACKLIGHT_ARCXCNN is not set
-# CONFIG_BACKLIGHT_LED is not set
-# end of Backlight & LCD device support
-
-CONFIG_VIDEOMODE_HELPERS=y
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
-# end of Console display driver support
-
-# CONFIG_LOGO is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_DMAENGINE_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=8
-# CONFIG_SND_SUPPORT_OLD_API is not set
-CONFIG_SND_PROC_FS=y
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_SEQUENCER_OSS=m
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_DUMMY=m
-# CONFIG_SND_ALOOP is not set
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-
-#
-# HD-Audio
-#
-# CONFIG_SND_HDA_TEGRA is not set
-# end of HD-Audio
-
-CONFIG_SND_HDA_PREALLOC_SIZE=4096
-CONFIG_SND_ARM=y
-CONFIG_SND_ARMAACI=m
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-# CONFIG_SND_USB_CAIAQ_INPUT is not set
-CONFIG_SND_USB_6FIRE=m
-# CONFIG_SND_USB_HIFACE is not set
-# CONFIG_SND_BCD2000 is not set
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
-# CONFIG_SND_SOC_ADI is not set
-CONFIG_SND_SOC_AMD_ACP=m
-CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
-CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
-# CONFIG_SND_ATMEL_SOC is not set
-# CONFIG_SND_BCM2835_SOC_I2S is not set
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-CONFIG_SND_SOC_FSL_ASRC=m
-CONFIG_SND_SOC_FSL_SAI=m
-# CONFIG_SND_SOC_FSL_MQS is not set
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-CONFIG_SND_SOC_FSL_SSI=m
-CONFIG_SND_SOC_FSL_SPDIF=m
-CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
-CONFIG_SND_SOC_FSL_UTILS=m
-CONFIG_SND_SOC_IMX_PCM_DMA=m
-CONFIG_SND_SOC_IMX_AUDMUX=m
-CONFIG_SND_IMX_SOC=m
-CONFIG_SND_SOC_IMX_PCM_FIQ=m
-CONFIG_SND_SOC_IMX_SSI=m
-
-#
-# SoC Audio support for Freescale i.MX boards:
-#
-CONFIG_SND_SOC_EUKREA_TLV320=m
-CONFIG_SND_SOC_IMX_ES8328=m
-CONFIG_SND_SOC_IMX_SGTL5000=m
-CONFIG_SND_SOC_IMX_SPDIF=m
-CONFIG_SND_SOC_IMX_MC13783=m
-CONFIG_SND_SOC_FSL_ASOC_CARD=m
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
-# end of SoC Audio for Freescale CPUs
-
-# CONFIG_SND_I2S_HI6210_I2S is not set
-# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_MTK_BTCVSD is not set
-CONFIG_SND_SOC_QCOM=m
-CONFIG_SND_SOC_LPASS_CPU=m
-CONFIG_SND_SOC_LPASS_PLATFORM=m
-CONFIG_SND_SOC_LPASS_IPQ806X=m
-CONFIG_SND_SOC_STORM=m
-# CONFIG_SND_SOC_APQ8016_SBC is not set
-# CONFIG_SND_SOC_ROCKCHIP is not set
-# CONFIG_SND_SOC_SAMSUNG is not set
-# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-#
-# Allwinner SoC Audio support
-#
-CONFIG_SND_SUN4I_CODEC=m
-CONFIG_SND_SUN8I_CODEC=m
-CONFIG_SND_SUN8I_CODEC_ANALOG=m
-CONFIG_SND_SUN4I_I2S=m
-CONFIG_SND_SUN4I_SPDIF=m
-CONFIG_SND_SUN8I_ADDA_PR_REGMAP=m
-# end of Allwinner SoC Audio support
-
-#
-# Audio support for Texas Instruments SoCs
-#
-
-#
-# Texas Instruments DAI support for:
-#
-# CONFIG_SND_SOC_DAVINCI_MCASP is not set
-# CONFIG_SND_SOC_OMAP_MCBSP is not set
-
-#
-# Audio support for boards with Texas Instruments SoCs
-#
-# end of Audio support for Texas Instruments SoCs
-
-# CONFIG_SND_SOC_XILINX_I2S is not set
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-CONFIG_SND_SOC_XTFPGA_I2S=m
-# CONFIG_ZX_TDM is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_ADAU1761_I2C is not set
-# CONFIG_SND_SOC_ADAU1761_SPI is not set
-CONFIG_SND_SOC_ADAU7002=m
-# CONFIG_SND_SOC_ADAU7118_HW is not set
-# CONFIG_SND_SOC_ADAU7118_I2C is not set
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4118 is not set
-CONFIG_SND_SOC_AK4458=m
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-CONFIG_SND_SOC_AK5558=m
-# CONFIG_SND_SOC_ALC5623 is not set
-CONFIG_SND_SOC_BD28623=m
-# CONFIG_SND_SOC_BT_SCO is not set
-# CONFIG_SND_SOC_CROS_EC_CODEC is not set
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS35L33 is not set
-# CONFIG_SND_SOC_CS35L34 is not set
-# CONFIG_SND_SOC_CS35L35 is not set
-# CONFIG_SND_SOC_CS35L36 is not set
-# CONFIG_SND_SOC_CS42L42 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-CONFIG_SND_SOC_CS42XX8=m
-CONFIG_SND_SOC_CS42XX8_I2C=m
-# CONFIG_SND_SOC_CS43130 is not set
-# CONFIG_SND_SOC_CS4341 is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_CS53L30 is not set
-# CONFIG_SND_SOC_CX2072X is not set
-# CONFIG_SND_SOC_DA7213 is not set
-CONFIG_SND_SOC_DA7219=m
-# CONFIG_SND_SOC_DMIC is not set
-CONFIG_SND_SOC_HDMI_CODEC=m
-# CONFIG_SND_SOC_ES7134 is not set
-# CONFIG_SND_SOC_ES7241 is not set
-# CONFIG_SND_SOC_ES8316 is not set
-CONFIG_SND_SOC_ES8328=m
-CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
-# CONFIG_SND_SOC_GTM601 is not set
-# CONFIG_SND_SOC_INNO_RK3036 is not set
-# CONFIG_SND_SOC_MAX98088 is not set
-CONFIG_SND_SOC_MAX98357A=m
-# CONFIG_SND_SOC_MAX98504 is not set
-CONFIG_SND_SOC_MAX9867=m
-# CONFIG_SND_SOC_MAX98927 is not set
-CONFIG_SND_SOC_MAX98373=m
-# CONFIG_SND_SOC_MAX9860 is not set
-# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
-# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-CONFIG_SND_SOC_PCM1789=m
-CONFIG_SND_SOC_PCM1789_I2C=m
-# CONFIG_SND_SOC_PCM179X_I2C is not set
-# CONFIG_SND_SOC_PCM179X_SPI is not set
-CONFIG_SND_SOC_PCM186X=m
-CONFIG_SND_SOC_PCM186X_I2C=m
-CONFIG_SND_SOC_PCM186X_SPI=m
-# CONFIG_SND_SOC_PCM3060_I2C is not set
-# CONFIG_SND_SOC_PCM3060_SPI is not set
-# CONFIG_SND_SOC_PCM3168A_I2C is not set
-# CONFIG_SND_SOC_PCM3168A_SPI is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-# CONFIG_SND_SOC_RK3328 is not set
-CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT5616 is not set
-# CONFIG_SND_SOC_RT5631 is not set
-CONFIG_SND_SOC_RT5645=m
-CONFIG_SND_SOC_SGTL5000=m
-CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
-CONFIG_SND_SOC_SPDIF=m
-# CONFIG_SND_SOC_SSM2305 is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS2562 is not set
-# CONFIG_SND_SOC_TAS2770 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TAS5720 is not set
-CONFIG_SND_SOC_TAS6424=m
-CONFIG_SND_SOC_TDA7419=m
-# CONFIG_SND_SOC_TFA9879 is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC23_I2C=m
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC31XX is not set
-CONFIG_SND_SOC_TLV320AIC32X4=m
-CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
-CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
-# CONFIG_SND_SOC_TLV320AIC3X is not set
-# CONFIG_SND_SOC_TS3A227E is not set
-CONFIG_SND_SOC_TSCS42XX=m
-# CONFIG_SND_SOC_TSCS454 is not set
-# CONFIG_SND_SOC_UDA1334 is not set
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8524 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-# CONFIG_SND_SOC_WM8753 is not set
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8782 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-# CONFIG_SND_SOC_WM8903 is not set
-# CONFIG_SND_SOC_WM8904 is not set
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8962=m
-# CONFIG_SND_SOC_WM8974 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-# CONFIG_SND_SOC_WM8985 is not set
-# CONFIG_SND_SOC_ZX_AUD96P22 is not set
-CONFIG_SND_SOC_MAX9759=m
-CONFIG_SND_SOC_MC13783=m
-# CONFIG_SND_SOC_MT6351 is not set
-# CONFIG_SND_SOC_MT6358 is not set
-# CONFIG_SND_SOC_MT6660 is not set
-# CONFIG_SND_SOC_NAU8540 is not set
-# CONFIG_SND_SOC_NAU8810 is not set
-CONFIG_SND_SOC_NAU8822=m
-# CONFIG_SND_SOC_NAU8824 is not set
-# CONFIG_SND_SOC_TPA6130A2 is not set
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-CONFIG_SND_SIMPLE_CARD=m
-# CONFIG_SND_AUDIO_GRAPH_CARD is not set
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_ACCUTOUCH is not set
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=m
-# CONFIG_HID_APPLEIR is not set
-CONFIG_HID_ASUS=m
-# CONFIG_HID_AUREAL is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_BETOP_FF is not set
-# CONFIG_HID_BIGBEN_FF is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CORSAIR is not set
-CONFIG_HID_COUGAR=m
-# CONFIG_HID_MACALLY is not set
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-# CONFIG_HID_CP2112 is not set
-# CONFIG_HID_CREATIVE_SB0540 is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-CONFIG_HID_ELAN=m
-# CONFIG_HID_ELECOM is not set
-# CONFIG_HID_ELO is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_GEMBIRD is not set
-# CONFIG_HID_GFRM is not set
-# CONFIG_HID_HOLTEK is not set
-# CONFIG_HID_GOOGLE_HAMMER is not set
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-# CONFIG_HID_KYE is not set
-CONFIG_HID_UCLOGIC=m
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_VIEWSONIC is not set
-# CONFIG_HID_GYRATION is not set
-CONFIG_HID_ICADE=m
-# CONFIG_HID_ITE is not set
-CONFIG_HID_JABRA=m
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-# CONFIG_HID_LENOVO is not set
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-# CONFIG_HID_MALTRON is not set
-# CONFIG_HID_MAYFLASH is not set
-# CONFIG_HID_REDRAGON is not set
-CONFIG_HID_MICROSOFT=m
-# CONFIG_HID_MONTEREY is not set
-CONFIG_HID_MULTITOUCH=m
-# CONFIG_HID_NTI is not set
-# CONFIG_HID_NTRIG is not set
-CONFIG_HID_ORTEK=m
-# CONFIG_HID_PANTHERLORD is not set
-CONFIG_HID_PENMOUNT=m
-# CONFIG_HID_PETALYNX is not set
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-# CONFIG_HID_PLANTRONICS is not set
-CONFIG_HID_PRIMAX=m
-# CONFIG_HID_RETRODE is not set
-CONFIG_HID_ROCCAT=m
-# CONFIG_HID_SAITEK is not set
-# CONFIG_HID_SAMSUNG is not set
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEAM=m
-# CONFIG_HID_STEELSERIES is not set
-# CONFIG_HID_SUNPLUS is not set
-CONFIG_HID_RMI=m
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TIVO is not set
-# CONFIG_HID_TOPSEED is not set
-CONFIG_HID_THINGM=m
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_UDRAW_PS3 is not set
-# CONFIG_HID_U2FZERO is not set
-# CONFIG_HID_WACOM is not set
-CONFIG_HID_WIIMOTE=m
-# CONFIG_HID_XINMO is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
-CONFIG_HID_ALPS=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-# CONFIG_HID_PID is not set
-CONFIG_USB_HIDDEV=y
-# end of USB HID support
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID=m
-# end of I2C HID support
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-# CONFIG_USB_ULPI_BUS is not set
-# CONFIG_USB_CONN_GPIO is not set
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=m
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_EHCI_HCD=m
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_MXC=m
-CONFIG_USB_EHCI_HCD_OMAP=m
-# CONFIG_USB_EHCI_TEGRA is not set
-CONFIG_USB_EHCI_EXYNOS=m
-CONFIG_USB_EHCI_HCD_PLATFORM=m
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-# CONFIG_USB_OHCI_HCD_SSB is not set
-CONFIG_USB_OHCI_EXYNOS=m
-CONFIG_USB_OHCI_HCD_PLATFORM=m
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-CONFIG_USB_SL811_HCD_ISO=y
-CONFIG_USB_R8A66597_HCD=m
-# CONFIG_USB_IMX21_HCD is not set
-# CONFIG_USB_HCD_BCMA is not set
-CONFIG_USB_HCD_SSB=m
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_VHCI_HC_PORTS=8
-CONFIG_USBIP_VHCI_NR_HCS=1
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-# CONFIG_USB_CDNS3 is not set
-CONFIG_USB_MUSB_HDRC=m
-CONFIG_USB_MUSB_HOST=y
-
-#
-# Platform Glue Layer
-#
-CONFIG_USB_MUSB_SUNXI=m
-CONFIG_USB_MUSB_TUSB6010=m
-CONFIG_USB_MUSB_OMAP2PLUS=m
-CONFIG_USB_MUSB_AM35X=m
-CONFIG_USB_MUSB_DSPS=m
-
-#
-# MUSB DMA mode
-#
-# CONFIG_MUSB_PIO_ONLY is not set
-# CONFIG_USB_INVENTRA_DMA is not set
-CONFIG_USB_TI_CPPI41_DMA=y
-# CONFIG_USB_TUSB_OMAP_DMA is not set
-# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_DWC2 is not set
-# CONFIG_USB_CHIPIDEA is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-# CONFIG_USB_SERIAL_F81232 is not set
-# CONFIG_USB_SERIAL_F8153X is not set
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-# CONFIG_USB_SERIAL_METRO is not set
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-# CONFIG_USB_SERIAL_MXUPORT is not set
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-CONFIG_USB_SERIAL_SAFE_PADDED=y
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-# CONFIG_USB_SERIAL_WISHBONE is not set
-# CONFIG_USB_SERIAL_SSU100 is not set
-CONFIG_USB_SERIAL_QT2=m
-# CONFIG_USB_SERIAL_UPD78F0730 is not set
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-# CONFIG_USB_LEGOTOWER is not set
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-# CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-# CONFIG_USB_TRANCEVIBRATOR is not set
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-# CONFIG_USB_EHSET_TEST_FIXTURE is not set
-CONFIG_USB_ISIGHTFW=m
-# CONFIG_USB_YUREX is not set
-CONFIG_USB_EZUSB_FX2=m
-# CONFIG_USB_HUB_USB251XB is not set
-CONFIG_USB_HSIC_USB3503=m
-CONFIG_USB_HSIC_USB4604=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-# CONFIG_USB_CHAOSKEY is not set
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_AM335X_CONTROL_USB=m
-CONFIG_AM335X_PHY_USB=m
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ISP1301 is not set
-# CONFIG_USB_MXS_PHY is not set
-# CONFIG_USB_TEGRA_PHY is not set
-# CONFIG_USB_ULPI is not set
-# end of USB Physical Layer drivers
-
-# CONFIG_USB_GADGET is not set
-CONFIG_TYPEC=m
-# CONFIG_TYPEC_TCPM is not set
-# CONFIG_TYPEC_UCSI is not set
-# CONFIG_TYPEC_HD3SS3220 is not set
-CONFIG_TYPEC_TPS6598X=m
-
-#
-# USB Type-C Multiplexer/DeMultiplexer Switch support
-#
-CONFIG_TYPEC_MUX_PI3USB30532=m
-# end of USB Type-C Multiplexer/DeMultiplexer Switch support
-
-#
-# USB Type-C Alternate Mode drivers
-#
-CONFIG_TYPEC_DP_ALTMODE=m
-# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
-# end of USB Type-C Alternate Mode drivers
-
-CONFIG_USB_ROLE_SWITCH=m
-CONFIG_MMC=y
-CONFIG_PWRSEQ_EMMC=y
-CONFIG_PWRSEQ_SD8787=m
-CONFIG_PWRSEQ_SIMPLE=y
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=16
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_ARMMMCI=m
-CONFIG_MMC_QCOM_DML=y
-CONFIG_MMC_STM32_SDMMC=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_OF_ARASAN=m
-# CONFIG_MMC_SDHCI_OF_ASPEED is not set
-CONFIG_MMC_SDHCI_OF_AT91=m
-CONFIG_MMC_SDHCI_OF_ESDHC=m
-# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
-# CONFIG_MMC_SDHCI_CADENCE is not set
-CONFIG_MMC_SDHCI_ESDHC_IMX=m
-# CONFIG_MMC_SDHCI_TEGRA is not set
-CONFIG_MMC_SDHCI_S3C=y
-CONFIG_MMC_SDHCI_S3C_DMA=y
-CONFIG_MMC_SDHCI_F_SDH30=m
-# CONFIG_MMC_SDHCI_MILBEAUT is not set
-# CONFIG_MMC_SDHCI_IPROC is not set
-# CONFIG_MMC_OMAP is not set
-CONFIG_MMC_OMAP_HS=m
-CONFIG_MMC_SDHCI_MSM=m
-CONFIG_MMC_MXC=m
-# CONFIG_MMC_SPI is not set
-CONFIG_MMC_DW=y
-CONFIG_MMC_DW_PLTFM=y
-# CONFIG_MMC_DW_BLUEFIELD is not set
-CONFIG_MMC_DW_EXYNOS=y
-# CONFIG_MMC_DW_HI3798CV200 is not set
-CONFIG_MMC_DW_K3=y
-CONFIG_MMC_DW_ROCKCHIP=y
-CONFIG_MMC_VUB300=m
-CONFIG_MMC_USHC=m
-CONFIG_MMC_USDHI6ROL0=y
-# CONFIG_MMC_REALTEK_USB is not set
-CONFIG_MMC_SUNXI=y
-CONFIG_MMC_CQHCI=y
-CONFIG_MMC_BCM2835=y
-# CONFIG_MMC_MTK is not set
-# CONFIG_MMC_SDHCI_XENON is not set
-CONFIG_MMC_SDHCI_OMAP=m
-# CONFIG_MMC_SDHCI_AM654 is not set
-CONFIG_MMC_SDHCI_EXTERNAL_DMA=y
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_CLASS_FLASH=m
-CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
-
-#
-# LED drivers
-#
-CONFIG_LEDS_AAT1290=m
-# CONFIG_LEDS_AN30259A is not set
-# CONFIG_LEDS_AS3645A is not set
-CONFIG_LEDS_BCM6328=m
-CONFIG_LEDS_BCM6358=m
-CONFIG_LEDS_CR0014114=m
-# CONFIG_LEDS_EL15203000 is not set
-CONFIG_LEDS_LM3530=m
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-CONFIG_LEDS_LM3692X=m
-CONFIG_LEDS_LM3601X=m
-CONFIG_LEDS_PCA9532=m
-# CONFIG_LEDS_PCA9532_GPIO is not set
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-# 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=m
-# CONFIG_LEDS_PCA955X_GPIO is not set
-# CONFIG_LEDS_PCA963X is not set
-CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-CONFIG_LEDS_BD2802=m
-CONFIG_LEDS_LT3593=m
-# CONFIG_LEDS_MC13783 is not set
-# CONFIG_LEDS_TCA6507 is not set
-CONFIG_LEDS_TLC591XX=m
-# CONFIG_LEDS_LM355x is not set
-# CONFIG_LEDS_KTD2692 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=m
-CONFIG_LEDS_SYSCON=y
-CONFIG_LEDS_PM8058=m
-CONFIG_LEDS_MLXREG=m
-CONFIG_LEDS_USER=m
-# CONFIG_LEDS_SPI_BYTE is not set
-# CONFIG_LEDS_TI_LMU_COMMON is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-CONFIG_LEDS_TRIGGER_MTD=y
-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
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-# CONFIG_LEDS_TRIGGER_CAMERA is not set
-CONFIG_LEDS_TRIGGER_PANIC=y
-CONFIG_LEDS_TRIGGER_NETDEV=m
-# CONFIG_LEDS_TRIGGER_PATTERN is not set
-CONFIG_LEDS_TRIGGER_AUDIO=m
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_TEST=m
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABEOZ9 is not set
-# CONFIG_RTC_DRV_ABX80X is not set
-CONFIG_RTC_DRV_AC100=m
-CONFIG_RTC_DRV_DS1307=m
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-CONFIG_RTC_DRV_DS1374=m
-# CONFIG_RTC_DRV_DS1374_WDT is not set
-CONFIG_RTC_DRV_DS1672=m
-# CONFIG_RTC_DRV_HYM8563 is not set
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RK808=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-# CONFIG_RTC_DRV_ISL12022 is not set
-CONFIG_RTC_DRV_ISL12026=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF85063=m
-# CONFIG_RTC_DRV_PCF85363 is not set
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8010=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-# CONFIG_RTC_DRV_RV3028 is not set
-CONFIG_RTC_DRV_RV8803=m
-# CONFIG_RTC_DRV_SD3078 is not set
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-# CONFIG_RTC_DRV_DS1302 is not set
-CONFIG_RTC_DRV_DS1305=m
-# CONFIG_RTC_DRV_DS1343 is not set
-# CONFIG_RTC_DRV_DS1347 is not set
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6916=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RX4581=m
-# CONFIG_RTC_DRV_RX6110 is not set
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_PCF2123=m
-# CONFIG_RTC_DRV_MCP795 is not set
-CONFIG_RTC_I2C_AND_SPI=y
-
-#
-# SPI and I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_PCF2127 is not set
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV3029_HWMON=y
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-# CONFIG_RTC_DRV_DS1685_FAMILY is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-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_ZYNQMP is not set
-# CONFIG_RTC_DRV_CROS_EC is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_IMXDI=m
-# CONFIG_RTC_DRV_OMAP is not set
-CONFIG_HAVE_S3C_RTC=y
-# CONFIG_RTC_DRV_S3C is not set
-CONFIG_RTC_DRV_PL030=m
-CONFIG_RTC_DRV_PL031=m
-CONFIG_RTC_DRV_SUN6I=y
-CONFIG_RTC_DRV_SUNXI=m
-# CONFIG_RTC_DRV_CADENCE is not set
-# CONFIG_RTC_DRV_FTRTC010 is not set
-# CONFIG_RTC_DRV_MC13XXX is not set
-CONFIG_RTC_DRV_PM8XXX=m
-# CONFIG_RTC_DRV_TEGRA is not set
-CONFIG_RTC_DRV_MXC=m
-CONFIG_RTC_DRV_MXC_V2=m
-CONFIG_RTC_DRV_SNVS=m
-# CONFIG_RTC_DRV_R7301 is not set
-
-#
-# HID Sensor RTC drivers
-#
-# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=y
-CONFIG_DMA_OF=y
-# CONFIG_ALTERA_MSGDMA is not set
-# CONFIG_AMBA_PL08X is not set
-# CONFIG_AXI_DMAC is not set
-# CONFIG_DMA_BCM2835 is not set
-CONFIG_DMA_SUN4I=m
-CONFIG_DMA_SUN6I=y
-# CONFIG_DW_AXI_DMAC is not set
-# CONFIG_FSL_EDMA is not set
-# CONFIG_FSL_QDMA is not set
-CONFIG_IMX_DMA=m
-CONFIG_IMX_SDMA=m
-# CONFIG_INTEL_IDMA64 is not set
-# CONFIG_MXS_DMA is not set
-CONFIG_MX3_IPU=y
-CONFIG_MX3_IPU_IRQS=4
-# CONFIG_NBPFAXI_DMA is not set
-CONFIG_PL330_DMA=y
-# CONFIG_TEGRA20_APB_DMA is not set
-# CONFIG_XILINX_DMA is not set
-# CONFIG_XILINX_ZYNQMP_DMA is not set
-CONFIG_QCOM_BAM_DMA=m
-# CONFIG_QCOM_HIDMA_MGMT is not set
-# CONFIG_QCOM_HIDMA is not set
-# CONFIG_DW_DMAC is not set
-# CONFIG_SF_PDMA is not set
-CONFIG_TI_CPPI41=m
-CONFIG_TI_EDMA=y
-CONFIG_DMA_OMAP=y
-CONFIG_TI_DMA_CROSSBAR=y
-
-#
-# DMA Clients
-#
-# CONFIG_ASYNC_TX_DMA is not set
-# CONFIG_DMATEST is not set
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-CONFIG_AUXDISPLAY=y
-# CONFIG_HD44780 is not set
-# CONFIG_IMG_ASCII_LCD is not set
-# CONFIG_HT16K33 is not set
-# CONFIG_ARM_CHARLCD is not set
-# CONFIG_CHARLCD_BL_OFF is not set
-# CONFIG_CHARLCD_BL_ON is not set
-CONFIG_CHARLCD_BL_FLASH=y
-CONFIG_UIO=m
-CONFIG_UIO_PDRV_GENIRQ=m
-# CONFIG_UIO_DMEM_GENIRQ is not set
-# CONFIG_UIO_PRUSS is not set
-# CONFIG_VFIO is not set
-CONFIG_VIRT_DRIVERS=y
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_BALLOON=m
-# CONFIG_VIRTIO_INPUT is not set
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# end of Microsoft Hyper-V guest support
-
-# CONFIG_GREYBUS is not set
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-# CONFIG_RTL8723BS is not set
-# CONFIG_R8712U is not set
-# CONFIG_R8188EU is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16240 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7816 is not set
-# CONFIG_AD7192 is not set
-# CONFIG_AD7280 is not set
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# CONFIG_AD7746 is not set
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-# CONFIG_AD5933 is not set
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7854 is not set
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S1210 is not set
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-# end of Speakup console speech
-
-# CONFIG_MFD_NVEC is not set
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
-# CONFIG_STAGING_BOARD is not set
-# CONFIG_LTE_GDM724X is not set
-CONFIG_GS_FPGABOOT=m
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
-CONFIG_FB_TFT=m
-# CONFIG_FB_TFT_AGM1264K_FL is not set
-# CONFIG_FB_TFT_BD663474 is not set
-# CONFIG_FB_TFT_HX8340BN is not set
-# CONFIG_FB_TFT_HX8347D is not set
-# CONFIG_FB_TFT_HX8353D is not set
-CONFIG_FB_TFT_HX8357D=m
-# CONFIG_FB_TFT_ILI9163 is not set
-# CONFIG_FB_TFT_ILI9320 is not set
-# CONFIG_FB_TFT_ILI9325 is not set
-# CONFIG_FB_TFT_ILI9340 is not set
-# CONFIG_FB_TFT_ILI9341 is not set
-# CONFIG_FB_TFT_ILI9481 is not set
-# CONFIG_FB_TFT_ILI9486 is not set
-# CONFIG_FB_TFT_PCD8544 is not set
-# CONFIG_FB_TFT_RA8875 is not set
-# CONFIG_FB_TFT_S6D02A1 is not set
-# CONFIG_FB_TFT_S6D1121 is not set
-# CONFIG_FB_TFT_SEPS525 is not set
-# CONFIG_FB_TFT_SH1106 is not set
-# CONFIG_FB_TFT_SSD1289 is not set
-# CONFIG_FB_TFT_SSD1305 is not set
-# CONFIG_FB_TFT_SSD1306 is not set
-# CONFIG_FB_TFT_SSD1331 is not set
-# CONFIG_FB_TFT_SSD1351 is not set
-# CONFIG_FB_TFT_ST7735R is not set
-CONFIG_FB_TFT_ST7789V=m
-# CONFIG_FB_TFT_TINYLCD is not set
-# CONFIG_FB_TFT_TLS8204 is not set
-CONFIG_FB_TFT_UC1611=m
-# CONFIG_FB_TFT_UC1701 is not set
-# CONFIG_FB_TFT_UPD161704 is not set
-# CONFIG_FB_TFT_WATTEROTT is not set
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI is not set
-# CONFIG_MOST is not set
-# CONFIG_KS7010 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=m
-# CONFIG_USB_WUSB_CBAF is not set
-CONFIG_USB_HWA_HCD=m
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_I1480U=m
-CONFIG_STAGING_EXFAT_FS=m
-CONFIG_STAGING_EXFAT_DISCARD=y
-# CONFIG_STAGING_EXFAT_DELAYED_SYNC is not set
-# CONFIG_STAGING_EXFAT_KERNEL_DEBUG is not set
-# CONFIG_STAGING_EXFAT_DEBUG_MSG is not set
-CONFIG_STAGING_EXFAT_DEFAULT_CODEPAGE=437
-CONFIG_STAGING_EXFAT_DEFAULT_IOCHARSET="utf8"
-# CONFIG_WFX is not set
-# CONFIG_GOLDFISH is not set
-CONFIG_MFD_CROS_EC=y
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CROS_EC=y
-CONFIG_CROS_EC_I2C=y
-# CONFIG_CROS_EC_RPMSG is not set
-CONFIG_CROS_EC_SPI=y
-CONFIG_CROS_EC_PROTO=y
-CONFIG_CROS_EC_CHARDEV=m
-CONFIG_CROS_EC_LIGHTBAR=m
-CONFIG_CROS_EC_VBC=m
-CONFIG_CROS_EC_SENSORHUB=m
-CONFIG_CROS_EC_SYSFS=m
-CONFIG_MELLANOX_PLATFORM=y
-CONFIG_MLXREG_HOTPLUG=m
-CONFIG_MLXREG_IO=m
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
-CONFIG_ICST=y
-CONFIG_COMMON_CLK_VERSATILE=y
-CONFIG_CLK_SP810=y
-CONFIG_CLK_VEXPRESS_OSC=y
-# CONFIG_CLK_HSDK is not set
-# CONFIG_COMMON_CLK_MAX9485 is not set
-CONFIG_COMMON_CLK_RK808=m
-# CONFIG_COMMON_CLK_SI5341 is not set
-# CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_SI514 is not set
-CONFIG_COMMON_CLK_SI544=m
-# CONFIG_COMMON_CLK_SI570 is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
-# CONFIG_COMMON_CLK_CDCE925 is not set
-# CONFIG_COMMON_CLK_CS2000_CP is not set
-# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
-# CONFIG_CLK_QORIQ is not set
-# CONFIG_COMMON_CLK_PWM is not set
-# CONFIG_COMMON_CLK_VC5 is not set
-# CONFIG_COMMON_CLK_FIXED_MMIO is not set
-CONFIG_CLK_BCM2835=y
-CONFIG_MXC_CLK=y
-# CONFIG_COMMON_CLK_QCOM is not set
-CONFIG_COMMON_CLK_SAMSUNG=y
-CONFIG_EXYNOS_AUDSS_CLK_CON=y
-CONFIG_CLK_SUNXI=y
-CONFIG_CLK_SUNXI_CLOCKS=y
-CONFIG_CLK_SUNXI_PRCM_SUN6I=y
-CONFIG_CLK_SUNXI_PRCM_SUN8I=y
-CONFIG_CLK_SUNXI_PRCM_SUN9I=y
-CONFIG_SUNXI_CCU=y
-CONFIG_SUN4I_A10_CCU=y
-CONFIG_SUN5I_CCU=y
-CONFIG_SUN6I_A31_CCU=y
-CONFIG_SUN8I_A23_CCU=y
-CONFIG_SUN8I_A33_CCU=y
-CONFIG_SUN8I_A83T_CCU=y
-CONFIG_SUN8I_H3_CCU=y
-CONFIG_SUN8I_V3S_CCU=y
-CONFIG_SUN8I_DE2_CCU=y
-CONFIG_SUN8I_R40_CCU=y
-CONFIG_SUN9I_A80_CCU=y
-CONFIG_SUN8I_R_CCU=y
-# CONFIG_COMMON_CLK_TI_ADPLL is not set
-# end of Common Clock Framework
-
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_PROBE=y
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_BCM2835_TIMER=y
-CONFIG_DW_APB_TIMER=y
-CONFIG_DW_APB_TIMER_OF=y
-CONFIG_ROCKCHIP_TIMER=y
-CONFIG_SUN4I_TIMER=y
-CONFIG_SUN5I_HSTIMER=y
-CONFIG_CADENCE_TTC_TIMER=y
-CONFIG_CLKSRC_TI_32K=y
-CONFIG_ARM_ARCH_TIMER=y
-CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
-CONFIG_ARM_GLOBAL_TIMER=y
-CONFIG_ARM_TIMER_SP804=y
-CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
-CONFIG_CLKSRC_EXYNOS_MCT=y
-CONFIG_CLKSRC_SAMSUNG_PWM=y
-CONFIG_CLKSRC_QCOM=y
-CONFIG_CLKSRC_VERSATILE=y
-CONFIG_CLKSRC_IMX_GPT=y
-# CONFIG_MICROCHIP_PIT64B is not set
-# end of Clock Source drivers
-
-# CONFIG_MAILBOX is not set
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
-# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_OF_IOMMU=y
-# CONFIG_MSM_IOMMU is not set
-# CONFIG_OMAP_IOMMU is not set
-# CONFIG_ROCKCHIP_IOMMU is not set
-# CONFIG_TEGRA_IOMMU_SMMU is not set
-CONFIG_EXYNOS_IOMMU=y
-# CONFIG_EXYNOS_IOMMU_DEBUG is not set
-# CONFIG_ARM_SMMU is not set
-# CONFIG_QCOM_IOMMU is not set
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-CONFIG_RPMSG=m
-# CONFIG_RPMSG_CHAR is not set
-CONFIG_RPMSG_VIRTIO=m
-# 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
-#
-CONFIG_BCM2835_POWER=y
-# CONFIG_SOC_BRCMSTB is not set
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# CONFIG_QUICC_ENGINE is not set
-CONFIG_FSL_GUTS=y
-# CONFIG_FSL_RCPM is not set
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-CONFIG_IMX_GPCV2_PM_DOMAINS=y
-# end of i.MX SoC drivers
-
-#
-# Qualcomm SoC drivers
-#
-CONFIG_QCOM_COMMAND_DB=y
-# CONFIG_QCOM_GENI_SE is not set
-CONFIG_QCOM_GSBI=m
-# CONFIG_QCOM_LLCC is not set
-CONFIG_QCOM_MDT_LOADER=m
-# CONFIG_QCOM_OCMEM is not set
-# CONFIG_QCOM_PM is not set
-CONFIG_QCOM_RMTFS_MEM=m
-CONFIG_QCOM_SMD_RPM=m
-CONFIG_QCOM_WCNSS_CTRL=m
-# CONFIG_QCOM_APR is not set
-# end of Qualcomm SoC drivers
-
-CONFIG_ROCKCHIP_GRF=y
-CONFIG_ROCKCHIP_PM_DOMAINS=y
-CONFIG_SOC_SAMSUNG=y
-CONFIG_EXYNOS_ASV=y
-CONFIG_EXYNOS_ASV_ARM=y
-CONFIG_EXYNOS_CHIPID=y
-CONFIG_EXYNOS_PMU=y
-CONFIG_EXYNOS_PMU_ARM_DRIVERS=y
-CONFIG_EXYNOS_PM_DOMAINS=y
-CONFIG_SUNXI_SRAM=y
-# CONFIG_ARCH_TEGRA_2x_SOC is not set
-# CONFIG_ARCH_TEGRA_3x_SOC is not set
-# CONFIG_ARCH_TEGRA_114_SOC is not set
-# CONFIG_ARCH_TEGRA_124_SOC is not set
-CONFIG_SOC_TEGRA_FUSE=y
-CONFIG_SOC_TI=y
-
-#
-# Xilinx SoC drivers
-#
-CONFIG_XILINX_VCU=m
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
-CONFIG_DEVFREQ_GOV_PERFORMANCE=m
-CONFIG_DEVFREQ_GOV_POWERSAVE=m
-CONFIG_DEVFREQ_GOV_USERSPACE=m
-CONFIG_DEVFREQ_GOV_PASSIVE=m
-
-#
-# DEVFREQ Drivers
-#
-CONFIG_ARM_EXYNOS_BUS_DEVFREQ=m
-# CONFIG_ARM_IMX8M_DDRC_DEVFREQ is not set
-# CONFIG_ARM_RK3399_DMC_DEVFREQ is not set
-CONFIG_PM_DEVFREQ_EVENT=y
-# CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP is not set
-CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU=m
-# CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-# CONFIG_EXTCON_FSA9480 is not set
-CONFIG_EXTCON_GPIO=m
-# CONFIG_EXTCON_MAX3355 is not set
-# CONFIG_EXTCON_PTN5150 is not set
-# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-CONFIG_EXTCON_USB_GPIO=m
-# CONFIG_EXTCON_USBC_CROS_EC is not set
-CONFIG_MEMORY=y
-# CONFIG_ARM_PL172_MPMC is not set
-# CONFIG_TI_EMIF is not set
-CONFIG_OMAP_GPMC=y
-# CONFIG_OMAP_GPMC_DEBUG is not set
-# CONFIG_TI_EMIF_SRAM is not set
-CONFIG_PL353_SMC=y
-CONFIG_SAMSUNG_MC=y
-# CONFIG_EXYNOS5422_DMC is not set
-CONFIG_EXYNOS_SROM=y
-CONFIG_TEGRA_MC=y
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_BUFFER_CB=m
-# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-CONFIG_IIO_CONFIGFS=m
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_DEVICE is not set
-# CONFIG_IIO_SW_TRIGGER is not set
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADXL372_SPI is not set
-# CONFIG_ADXL372_I2C is not set
-# CONFIG_BMA180 is not set
-# CONFIG_BMA220 is not set
-# CONFIG_BMA400 is not set
-# CONFIG_BMC150_ACCEL is not set
-# CONFIG_DA280 is not set
-# CONFIG_DA311 is not set
-# CONFIG_DMARD06 is not set
-# CONFIG_DMARD09 is not set
-# CONFIG_DMARD10 is not set
-# CONFIG_HID_SENSOR_ACCEL_3D is not set
-# CONFIG_IIO_ST_ACCEL_3AXIS is not set
-# CONFIG_KXSD9 is not set
-# CONFIG_KXCJK1013 is not set
-# CONFIG_MC3230 is not set
-# CONFIG_MMA7455_I2C is not set
-# CONFIG_MMA7455_SPI is not set
-# CONFIG_MMA7660 is not set
-# CONFIG_MMA8452 is not set
-# CONFIG_MMA9551 is not set
-# CONFIG_MMA9553 is not set
-# CONFIG_MXC4005 is not set
-# CONFIG_MXC6255 is not set
-# CONFIG_SCA3000 is not set
-# CONFIG_STK8312 is not set
-# CONFIG_STK8BA50 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7091R5 is not set
-# CONFIG_AD7124 is not set
-# CONFIG_AD7266 is not set
-# CONFIG_AD7291 is not set
-# CONFIG_AD7292 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-# CONFIG_AD7606_IFACE_SPI is not set
-# CONFIG_AD7766 is not set
-# CONFIG_AD7768_1 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7791 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7923 is not set
-# CONFIG_AD7949 is not set
-# CONFIG_AD799X is not set
-# CONFIG_AXP20X_ADC is not set
-CONFIG_AXP288_ADC=m
-# CONFIG_CC10001_ADC is not set
-# CONFIG_DLN2_ADC is not set
-# CONFIG_ENVELOPE_DETECTOR is not set
-CONFIG_EXYNOS_ADC=m
-# CONFIG_HI8435 is not set
-# CONFIG_HX711 is not set
-# CONFIG_INA2XX_ADC is not set
-# CONFIG_IMX7D_ADC is not set
-# CONFIG_LTC2471 is not set
-# CONFIG_LTC2485 is not set
-# CONFIG_LTC2496 is not set
-# CONFIG_LTC2497 is not set
-# CONFIG_MAX1027 is not set
-# CONFIG_MAX11100 is not set
-# CONFIG_MAX1118 is not set
-# CONFIG_MAX1363 is not set
-# CONFIG_MAX9611 is not set
-CONFIG_MCP320X=m
-CONFIG_MCP3422=m
-# CONFIG_MCP3911 is not set
-# CONFIG_MEN_Z188_ADC is not set
-# CONFIG_NAU7802 is not set
-# CONFIG_QCOM_PM8XXX_XOADC is not set
-# CONFIG_QCOM_SPMI_IADC is not set
-# CONFIG_QCOM_SPMI_VADC is not set
-# CONFIG_QCOM_SPMI_ADC5 is not set
-# CONFIG_ROCKCHIP_SARADC is not set
-# CONFIG_SD_ADC_MODULATOR is not set
-CONFIG_SUN4I_GPADC=m
-# CONFIG_TI_ADC081C is not set
-# CONFIG_TI_ADC0832 is not set
-# CONFIG_TI_ADC084S021 is not set
-# CONFIG_TI_ADC12138 is not set
-# CONFIG_TI_ADC108S102 is not set
-# CONFIG_TI_ADC128S052 is not set
-# CONFIG_TI_ADC161S626 is not set
-# CONFIG_TI_ADS1015 is not set
-# CONFIG_TI_ADS7950 is not set
-# CONFIG_TI_ADS8344 is not set
-# CONFIG_TI_ADS8688 is not set
-# CONFIG_TI_ADS124S08 is not set
-CONFIG_TI_AM335X_ADC=m
-# CONFIG_TI_TLC4541 is not set
-# CONFIG_VF610_ADC is not set
-# CONFIG_XILINX_XADC is not set
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# CONFIG_IIO_RESCALE is not set
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-# CONFIG_AD8366 is not set
-# end of Amplifiers
-
-#
-# Chemical Sensors
-#
-# CONFIG_ATLAS_PH_SENSOR is not set
-# CONFIG_BME680 is not set
-# CONFIG_CCS811 is not set
-# CONFIG_IAQCORE is not set
-# CONFIG_SENSIRION_SGP30 is not set
-# CONFIG_SPS30 is not set
-# CONFIG_VZ89X is not set
-# end of Chemical Sensors
-
-# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set
-
-#
-# Hid Sensor IIO Common
-#
-# CONFIG_HID_SENSOR_IIO_COMMON is not set
-# end of Hid Sensor IIO Common
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORHUB is not set
-# end of SSP Sensor Common
-
-#
-# Digital to analog converters
-#
-# CONFIG_AD5064 is not set
-# CONFIG_AD5360 is not set
-# CONFIG_AD5380 is not set
-# CONFIG_AD5421 is not set
-# CONFIG_AD5446 is not set
-# CONFIG_AD5449 is not set
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_LTC1660 is not set
-# CONFIG_LTC2632 is not set
-# CONFIG_AD5686_SPI is not set
-# CONFIG_AD5696_I2C is not set
-# CONFIG_AD5755 is not set
-# CONFIG_AD5758 is not set
-# CONFIG_AD5761 is not set
-# CONFIG_AD5764 is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD7303 is not set
-# CONFIG_AD8801 is not set
-# CONFIG_DPOT_DAC is not set
-# CONFIG_DS4424 is not set
-# CONFIG_M62332 is not set
-# CONFIG_MAX517 is not set
-# CONFIG_MAX5821 is not set
-# CONFIG_MCP4725 is not set
-# CONFIG_MCP4922 is not set
-# CONFIG_TI_DAC082S085 is not set
-# CONFIG_TI_DAC5571 is not set
-# CONFIG_TI_DAC7311 is not set
-# CONFIG_TI_DAC7612 is not set
-# CONFIG_VF610_DAC is not set
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-# CONFIG_AD9523 is not set
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-# CONFIG_ADF4350 is not set
-# CONFIG_ADF4371 is not set
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16136 is not set
-# CONFIG_ADIS16260 is not set
-# CONFIG_ADXRS450 is not set
-# CONFIG_BMG160 is not set
-# CONFIG_FXAS21002C is not set
-# CONFIG_HID_SENSOR_GYRO_3D is not set
-# CONFIG_MPU3050_I2C is not set
-# CONFIG_IIO_ST_GYRO_3AXIS is not set
-# CONFIG_ITG3200 is not set
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-# CONFIG_AFE4403 is not set
-# CONFIG_AFE4404 is not set
-# CONFIG_MAX30100 is not set
-# CONFIG_MAX30102 is not set
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-# CONFIG_DHT11 is not set
-# CONFIG_HDC100X is not set
-# CONFIG_HID_SENSOR_HUMIDITY is not set
-# CONFIG_HTS221 is not set
-# CONFIG_HTU21 is not set
-# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-# CONFIG_ADIS16460 is not set
-# CONFIG_ADIS16480 is not set
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-# CONFIG_FXOS8700_I2C is not set
-# CONFIG_FXOS8700_SPI is not set
-# CONFIG_KMX61 is not set
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_SPI is not set
-# CONFIG_IIO_ST_LSM6DSX is not set
-# end of Inertial measurement units
-
-#
-# Light sensors
-#
-# CONFIG_ADJD_S311 is not set
-# CONFIG_ADUX1020 is not set
-# CONFIG_AL3320A is not set
-# CONFIG_APDS9300 is not set
-# CONFIG_APDS9960 is not set
-# CONFIG_BH1750 is not set
-# CONFIG_BH1780 is not set
-# CONFIG_CM32181 is not set
-# CONFIG_CM3232 is not set
-# CONFIG_CM3323 is not set
-# CONFIG_CM3605 is not set
-# CONFIG_CM36651 is not set
-# CONFIG_GP2AP020A00F is not set
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_ISL29028 is not set
-# CONFIG_ISL29125 is not set
-# CONFIG_HID_SENSOR_ALS is not set
-# CONFIG_HID_SENSOR_PROX is not set
-# CONFIG_JSA1212 is not set
-# CONFIG_RPR0521 is not set
-# CONFIG_LTR501 is not set
-# CONFIG_LV0104CS is not set
-# CONFIG_MAX44000 is not set
-# CONFIG_MAX44009 is not set
-# CONFIG_NOA1305 is not set
-# CONFIG_OPT3001 is not set
-# CONFIG_PA12203001 is not set
-# CONFIG_SI1133 is not set
-# CONFIG_SI1145 is not set
-# CONFIG_STK3310 is not set
-# CONFIG_ST_UVIS25 is not set
-# CONFIG_TCS3414 is not set
-# CONFIG_TCS3472 is not set
-# CONFIG_SENSORS_TSL2563 is not set
-# CONFIG_TSL2583 is not set
-# CONFIG_TSL2772 is not set
-# CONFIG_TSL4531 is not set
-# CONFIG_US5182D is not set
-# CONFIG_VCNL4000 is not set
-# CONFIG_VCNL4035 is not set
-# CONFIG_VEML6030 is not set
-# CONFIG_VEML6070 is not set
-# CONFIG_VL6180 is not set
-# CONFIG_ZOPT2201 is not set
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-# CONFIG_AK8974 is not set
-CONFIG_AK8975=m
-# CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-# CONFIG_MAG3110 is not set
-# CONFIG_HID_SENSOR_MAGNETOMETER_3D is not set
-# CONFIG_MMC35240 is not set
-# CONFIG_IIO_ST_MAGN_3AXIS is not set
-# CONFIG_SENSORS_HMC5843_I2C is not set
-# CONFIG_SENSORS_HMC5843_SPI is not set
-# CONFIG_SENSORS_RM3100_I2C is not set
-# CONFIG_SENSORS_RM3100_SPI is not set
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# CONFIG_IIO_MUX is not set
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-# CONFIG_HID_SENSOR_INCLINOMETER_3D is not set
-# CONFIG_HID_SENSOR_DEVICE_ROTATION is not set
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-# CONFIG_IIO_INTERRUPT_TRIGGER is not set
-# CONFIG_IIO_SYSFS_TRIGGER is not set
-# end of Triggers - standalone
-
-#
-# Digital potentiometers
-#
-# CONFIG_AD5272 is not set
-# CONFIG_DS1803 is not set
-# CONFIG_MAX5432 is not set
-# CONFIG_MAX5481 is not set
-# CONFIG_MAX5487 is not set
-# CONFIG_MCP4018 is not set
-# CONFIG_MCP4131 is not set
-# CONFIG_MCP4531 is not set
-# CONFIG_MCP41010 is not set
-# CONFIG_TPL0102 is not set
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-# CONFIG_LMP91000 is not set
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-# CONFIG_ABP060MG is not set
-# CONFIG_BMP280 is not set
-# CONFIG_DLHL60D is not set
-# CONFIG_DPS310 is not set
-# CONFIG_HID_SENSOR_PRESS is not set
-# CONFIG_HP03 is not set
-# CONFIG_MPL115_I2C is not set
-# CONFIG_MPL115_SPI is not set
-# CONFIG_MPL3115 is not set
-# CONFIG_MS5611 is not set
-# CONFIG_MS5637 is not set
-# CONFIG_IIO_ST_PRESS is not set
-# CONFIG_T5403 is not set
-# CONFIG_HP206C is not set
-# CONFIG_ZPA2326 is not set
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-# CONFIG_AS3935 is not set
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-# CONFIG_ISL29501 is not set
-# CONFIG_LIDAR_LITE_V2 is not set
-# CONFIG_MB1232 is not set
-# CONFIG_PING is not set
-# CONFIG_RFD77402 is not set
-# CONFIG_SRF04 is not set
-# CONFIG_SX9500 is not set
-# CONFIG_SRF08 is not set
-# CONFIG_VL53L0X_I2C is not set
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-# CONFIG_AD2S1200 is not set
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-# CONFIG_LTC2983 is not set
-# CONFIG_MAXIM_THERMOCOUPLE is not set
-# CONFIG_HID_SENSOR_TEMP is not set
-# CONFIG_MLX90614 is not set
-# CONFIG_MLX90632 is not set
-# CONFIG_TMP006 is not set
-# CONFIG_TMP007 is not set
-# CONFIG_TSYS01 is not set
-# CONFIG_TSYS02D is not set
-# CONFIG_MAX31856 is not set
-# end of Temperature sensors
-
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_ATMEL_HLCDC_PWM is not set
-# CONFIG_PWM_BCM2835 is not set
-# CONFIG_PWM_CROS_EC is not set
-# CONFIG_PWM_FSL_FTM is not set
-# CONFIG_PWM_IMX1 is not set
-# CONFIG_PWM_IMX27 is not set
-# CONFIG_PWM_IMX_TPM is not set
-# CONFIG_PWM_OMAP_DMTIMER is not set
-# CONFIG_PWM_PCA9685 is not set
-# CONFIG_PWM_ROCKCHIP is not set
-CONFIG_PWM_SAMSUNG=y
-CONFIG_PWM_SUN4I=m
-# CONFIG_PWM_TEGRA is not set
-# CONFIG_PWM_TIECAP is not set
-# CONFIG_PWM_TIEHRPWM is not set
-
-#
-# IRQ chip support
-#
-CONFIG_IRQCHIP=y
-CONFIG_ARM_GIC=y
-CONFIG_ARM_GIC_MAX_NR=1
-CONFIG_GIC_NON_BANKED=y
-# CONFIG_AL_FIC is not set
-CONFIG_OMAP_IRQCHIP=y
-# CONFIG_TS4800_IRQ is not set
-CONFIG_IMX_GPCV2=y
-CONFIG_QCOM_PDC=y
-CONFIG_IMX_IRQSTEER=y
-CONFIG_IMX_INTMUX=y
-CONFIG_EXYNOS_IRQ_COMBINER=y
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-CONFIG_ARCH_HAS_RESET_CONTROLLER=y
-CONFIG_RESET_CONTROLLER=y
-# CONFIG_RESET_BRCMSTB_RESCAL is not set
-CONFIG_RESET_IMX7=y
-# CONFIG_RESET_INTEL_GW is not set
-# CONFIG_RESET_QCOM_AOSS is not set
-# CONFIG_RESET_QCOM_PDC is not set
-CONFIG_RESET_SIMPLE=y
-CONFIG_RESET_SUNXI=y
-# CONFIG_RESET_TI_SYSCON is not set
-CONFIG_RESET_ZYNQ=y
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-CONFIG_GENERIC_PHY_MIPI_DPHY=y
-CONFIG_PHY_SUN4I_USB=m
-CONFIG_PHY_SUN6I_MIPI_DPHY=m
-CONFIG_PHY_SUN9I_USB=m
-# CONFIG_PHY_SUN50I_USB3 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_CADENCE_SIERRA 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_CPCAP_USB is not set
-# CONFIG_PHY_MAPPHONE_MDM6600 is not set
-# CONFIG_PHY_OCELOT_SERDES is not set
-CONFIG_PHY_QCOM_APQ8064_SATA=m
-CONFIG_PHY_QCOM_IPQ806X_SATA=m
-# CONFIG_PHY_QCOM_PCIE2 is not set
-# CONFIG_PHY_QCOM_QMP is not set
-# CONFIG_PHY_QCOM_QUSB2 is not set
-CONFIG_PHY_QCOM_UFS=m
-CONFIG_PHY_QCOM_UFS_14NM=m
-# CONFIG_PHY_ROCKCHIP_DP is not set
-# CONFIG_PHY_ROCKCHIP_EMMC is not set
-# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
-# CONFIG_PHY_ROCKCHIP_INNO_USB2 is not set
-# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
-# CONFIG_PHY_ROCKCHIP_PCIE is not set
-# CONFIG_PHY_ROCKCHIP_TYPEC is not set
-# CONFIG_PHY_ROCKCHIP_USB is not set
-CONFIG_PHY_EXYNOS_DP_VIDEO=y
-CONFIG_PHY_EXYNOS_MIPI_VIDEO=y
-# CONFIG_PHY_EXYNOS_PCIE is not set
-CONFIG_PHY_SAMSUNG_USB2=m
-CONFIG_PHY_EXYNOS4210_USB2=y
-CONFIG_PHY_EXYNOS4X12_USB2=y
-CONFIG_PHY_EXYNOS5250_USB2=y
-CONFIG_PHY_EXYNOS5250_SATA=y
-# CONFIG_PHY_TEGRA_XUSB is not set
-# CONFIG_PHY_DM816X_USB is not set
-# CONFIG_OMAP_CONTROL_PHY is not set
-# CONFIG_OMAP_USB2 is not set
-# CONFIG_TI_PIPE3 is not set
-CONFIG_PHY_TI_GMII_SEL=m
-# CONFIG_PHY_INTEL_EMMC is not set
-# end of PHY Subsystem
-
-# CONFIG_POWERCAP is not set
-CONFIG_MCB=m
-# CONFIG_MCB_LPC is not set
-CONFIG_RAS=y
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_DAX=m
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-# CONFIG_NVMEM_IMX_IIM is not set
-CONFIG_NVMEM_IMX_OCOTP=m
-CONFIG_QCOM_QFPROM=m
-# CONFIG_NVMEM_SPMI_SDAM is not set
-# CONFIG_ROCKCHIP_EFUSE is not set
-# CONFIG_ROCKCHIP_OTP is not set
-CONFIG_NVMEM_SUNXI_SID=m
-CONFIG_NVMEM_SNVS_LPGPR=m
-
-#
-# 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_TEE is not set
-CONFIG_MULTIPLEXER=m
-
-#
-# Multiplexer drivers
-#
-# CONFIG_MUX_ADG792A is not set
-# CONFIG_MUX_ADGS1408 is not set
-# CONFIG_MUX_GPIO is not set
-# CONFIG_MUX_MMIO is not set
-# end of Multiplexer drivers
-
-CONFIG_PM_OPP=y
-# 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_DCACHE_WORD_ACCESS=y
-# CONFIG_VALIDATE_FS_PARSER is not set
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_USE_FOR_EXT2=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=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-# CONFIG_REISERFS_FS_SECURITY is not set
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-CONFIG_XFS_ONLINE_SCRUB=y
-# CONFIG_XFS_ONLINE_REPAIR is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-# CONFIG_BTRFS_FS is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=y
-CONFIG_F2FS_STAT_FS=y
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_F2FS_FS_LZO=y
-CONFIG_F2FS_FS_LZ4=y
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_EXPORTFS_BLOCK_OPS=y
-CONFIG_FILE_LOCKING=y
-# CONFIG_MANDATORY_FILE_LOCKING is not set
-CONFIG_FS_ENCRYPTION=y
-CONFIG_FS_ENCRYPTION_ALGS=y
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
-CONFIG_FSNOTIFY=y
-# CONFIG_DNOTIFY is not set
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_OVERLAY_FS=m
-# 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_METACOPY is not set
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf-8"
-CONFIG_FAT_DEFAULT_UTF8=y
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-# end of DOS/FAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=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_MEMFD_CREATE=y
-CONFIG_CONFIGFS_FS=m
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ORANGEFS_FS=m
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-CONFIG_ECRYPT_FS=m
-# CONFIG_ECRYPT_FS_MESSAGING 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=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-# CONFIG_UBIFS_FS_AUTHENTICATION is not set
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-CONFIG_SQUASHFS_DECOMP_MULTI=y
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-CONFIG_SQUASHFS_ZSTD=y
-# 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=m
-# 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=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=y
-# CONFIG_PSTORE_LZO_COMPRESS is not set
-# CONFIG_PSTORE_LZ4_COMPRESS is not set
-# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
-# CONFIG_PSTORE_842_COMPRESS is not set
-# CONFIG_PSTORE_ZSTD_COMPRESS is not set
-CONFIG_PSTORE_COMPRESS=y
-CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-CONFIG_PSTORE_RAM=m
-# CONFIG_SYSV_FS is not set
-CONFIG_UFS_FS=m
-CONFIG_UFS_FS_WRITE=y
-# CONFIG_UFS_DEBUG is not set
-# CONFIG_EROFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=m
-# CONFIG_NFS_SWAP is not set
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DISABLE_UDP_SUPPORT=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_PNFS=y
-CONFIG_NFSD_BLOCKLAYOUT=y
-CONFIG_NFSD_SCSILAYOUT=y
-CONFIG_NFSD_FLEXFILELAYOUT=y
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-# CONFIG_NFSD_V4_SECURITY_LABEL is not set
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES is not set
-# CONFIG_SUNRPC_DEBUG is not set
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-# CONFIG_CEPH_FS_SECURITY_LABEL is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-# CONFIG_AFS_FS is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-# CONFIG_9P_FS_SECURITY is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-CONFIG_KEYS_REQUEST_CACHE=y
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS is not set
-CONFIG_TRUSTED_KEYS=m
-CONFIG_ENCRYPTED_KEYS=m
-CONFIG_KEY_DH_OPERATIONS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_PATH=y
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-CONFIG_FORTIFY_SOURCE=y
-# 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=y
-# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set
-CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
-# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
-# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
-# CONFIG_INTEGRITY is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_LSM=""
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_INIT_STACK_NONE=y
-CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-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_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=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_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=y
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_CURVE25519=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_SIMD=y
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_OFB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_CRC32=y
-CONFIG_CRYPTO_XXHASH=m
-# CONFIG_CRYPTO_BLAKE2B is not set
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=m
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=m
-
-#
-# 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=m
-CONFIG_CRYPTO_USER_API_RNG=m
-CONFIG_CRYPTO_USER_API_AEAD=m
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_ALLWINNER=y
-CONFIG_CRYPTO_DEV_SUN4I_SS=m
-CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
-CONFIG_CRYPTO_DEV_SUN8I_CE=m
-CONFIG_CRYPTO_DEV_SUN8I_SS=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC=m
-CONFIG_CRYPTO_DEV_FSL_CAAM=m
-# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_JR=m
-CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
-# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
-CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
-CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
-# CONFIG_CRYPTO_DEV_OMAP is not set
-# CONFIG_CRYPTO_DEV_SAHARA is not set
-CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
-CONFIG_CRYPTO_DEV_S5P=m
-# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
-# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
-CONFIG_CRYPTO_DEV_MXS_DCP=m
-CONFIG_CRYPTO_DEV_QCE=m
-CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y
-CONFIG_CRYPTO_DEV_QCE_SHA=y
-CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y
-# CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set
-# CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set
-CONFIG_CRYPTO_DEV_QCOM_RNG=m
-CONFIG_CRYPTO_DEV_ROCKCHIP=m
-CONFIG_CRYPTO_DEV_VIRTIO=m
-# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
-# CONFIG_CRYPTO_DEV_CCREE is not set
-CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-# CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-CONFIG_SIGNED_PE_FILE_VERIFICATION=y
-
-#
-# Certificates for signature checking
-#
-CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-CONFIG_SECONDARY_TRUSTED_KEYRING=y
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-# CONFIG_PACKING is not set
-CONFIG_BITREVERSE=y
-CONFIG_HAVE_ARCH_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_CORDIC=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_STMP_DEVICE=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-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=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_XXHASH=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=y
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=m
-CONFIG_ZSTD_DECOMPRESS=m
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_DMA=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_DMA_DECLARE_COHERENT=y
-CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
-CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
-CONFIG_DMA_NONCOHERENT_MMAP=y
-CONFIG_DMA_REMAP=y
-CONFIG_DMA_CMA=y
-
-#
-# Default contiguous memory area size:
-#
-CONFIG_CMA_SIZE_MBYTES=48
-CONFIG_CMA_SIZE_SEL_MBYTES=y
-# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
-# CONFIG_CMA_SIZE_SEL_MIN is not set
-# CONFIG_CMA_SIZE_SEL_MAX is not set
-CONFIG_CMA_ALIGNMENT=8
-# CONFIG_DMA_API_DEBUG is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_DIMLIB=y
-CONFIG_LIBFDT=y
-CONFIG_OID_REGISTRY=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_32=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_6x10 is not set
-CONFIG_FONT_10x18=y
-# CONFIG_FONT_SUN8x16 is not set
-CONFIG_FONT_SUN12x22=y
-# CONFIG_FONT_TER16x32 is not set
-CONFIG_SG_POOL=y
-CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=3
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-# CONFIG_STRIP_ASM_SYMS 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
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-# CONFIG_DEBUG_FS is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_UBSAN is not set
-CONFIG_UBSAN_ALIGNMENT=y
-# end of Generic Kernel Debugging Instruments
-
-# CONFIG_DEBUG_KERNEL is not set
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_KASAN_STACK=1
-# end of Memory Debugging
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=120
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# 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
-
-#
-# Debug kernel data structures
-#
-# CONFIG_BUG_ON_DATA_CORRUPTION is not set
-# end of Debug kernel data structures
-
-#
-# RCU Debugging
-#
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# end of RCU Debugging
-
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=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_SAMPLES is not set
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# arm Debugging
-#
-# CONFIG_DEBUG_WX is not set
-CONFIG_UNWINDER_ARM=y
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-# CONFIG_PID_IN_CONTEXTIDR is not set
-# CONFIG_CORESIGHT is not set
-# end of arm Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-# CONFIG_RUNTIME_TESTING_MENU is not set
-# CONFIG_MEMTEST is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/testing/linux-edge/config-edge.x86_64 b/testing/linux-edge/config-edge.x86_64
deleted file mode 100644
index a0fd866eacb..00000000000
--- a/testing/linux-edge/config-edge.x86_64
+++ /dev/null
@@ -1,8480 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 5.6.15 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_TABLE_SORT=y
-CONFIG_THREAD_INFO_IN_TASK=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_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-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=y
-CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-CONFIG_AUDITSYSCALL=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_GENERIC_IRQ_MIGRATION=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_DOMAIN_HIERARCHY=y
-CONFIG_GENERIC_MSI_IRQ=y
-CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
-CONFIG_IRQ_MSI_IOMMU=y
-CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
-CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_SPARSE_IRQ=y
-# end of IRQ subsystem
-
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_ARCH_CLOCKSOURCE_INIT=y
-CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# 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 is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
-CONFIG_PREEMPTION=y
-
-#
-# 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=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-# CONFIG_TASK_XACCT 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_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_TASKS_RCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-CONFIG_IKCONFIG=m
-CONFIG_IKCONFIG_PROC=y
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-
-#
-# Scheduler features
-#
-# CONFIG_UCLAMP_TASK is not set
-# end of Scheduler features
-
-CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
-CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
-CONFIG_CC_HAS_INT128=y
-CONFIG_ARCH_SUPPORTS_INT128=y
-# CONFIG_NUMA_BALANCING is not set
-CONFIG_CGROUPS=y
-CONFIG_PAGE_COUNTER=y
-CONFIG_MEMCG=y
-CONFIG_MEMCG_SWAP=y
-# CONFIG_MEMCG_SWAP_ENABLED is not set
-CONFIG_MEMCG_KMEM=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_WRITEBACK=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_CGROUP_PIDS=y
-# CONFIG_CGROUP_RDMA is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CPUSETS=y
-# CONFIG_PROC_PID_CPUSET is not set
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-# CONFIG_CGROUP_PERF is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_TIME_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_CHECKPOINT_RESTORE is not set
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-CONFIG_RD_XZ=y
-# CONFIG_RD_LZO is not set
-# CONFIG_RD_LZ4 is not set
-CONFIG_BOOT_CONFIG=y
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_HAVE_UID16=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_HAVE_PCSPKR_PLATFORM=y
-CONFIG_BPF=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-CONFIG_MULTIUSER=y
-CONFIG_SGETMASK_SYSCALL=y
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_PCSPKR_PLATFORM=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_ABSOLUTE_PERCPU=y
-CONFIG_KALLSYMS_BASE_RELATIVE=y
-# CONFIG_BPF_SYSCALL is not set
-CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
-# CONFIG_USERFAULTFD is not set
-CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
-CONFIG_RSEQ=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-CONFIG_SLAB_MERGE_DEFAULT=y
-CONFIG_SLAB_FREELIST_RANDOM=y
-# CONFIG_SLAB_FREELIST_HARDENED is not set
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
-CONFIG_SLUB_CPU_PARTIAL=y
-CONFIG_SYSTEM_DATA_VERIFICATION=y
-# CONFIG_PROFILING is not set
-# end of General setup
-
-CONFIG_64BIT=y
-CONFIG_X86_64=y
-CONFIG_X86=y
-CONFIG_INSTRUCTION_DECODER=y
-CONFIG_OUTPUT_FORMAT="elf64-x86-64"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=28
-CONFIG_ARCH_MMAP_RND_BITS_MAX=32
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_ARCH_HAS_FILTER_PGPROT=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
-CONFIG_ZONE_DMA32=y
-CONFIG_AUDIT_ARCH=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_HAVE_INTEL_TXT=y
-CONFIG_X86_64_SMP=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_PGTABLE_LEVELS=4
-CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
-
-#
-# Processor type and features
-#
-CONFIG_ZONE_DMA=y
-CONFIG_SMP=y
-CONFIG_X86_FEATURE_NAMES=y
-CONFIG_X86_X2APIC=y
-CONFIG_X86_MPPARSE=y
-# CONFIG_GOLDFISH is not set
-CONFIG_RETPOLINE=y
-# CONFIG_X86_CPU_RESCTRL is not set
-CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_NUMACHIP is not set
-# CONFIG_X86_VSMP is not set
-# CONFIG_X86_UV is not set
-# CONFIG_X86_GOLDFISH is not set
-# CONFIG_X86_INTEL_MID is not set
-CONFIG_X86_INTEL_LPSS=y
-CONFIG_X86_AMD_PLATFORM_DEVICE=y
-CONFIG_IOSF_MBI=y
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_HYPERVISOR_GUEST=y
-CONFIG_PARAVIRT=y
-CONFIG_PARAVIRT_XXL=y
-# CONFIG_PARAVIRT_SPINLOCKS is not set
-CONFIG_X86_HV_CALLBACK_VECTOR=y
-CONFIG_XEN=y
-CONFIG_XEN_PV=y
-CONFIG_XEN_PV_SMP=y
-CONFIG_XEN_DOM0=y
-CONFIG_XEN_PVHVM=y
-CONFIG_XEN_PVHVM_SMP=y
-CONFIG_XEN_512GB=y
-CONFIG_XEN_SAVE_RESTORE=y
-CONFIG_XEN_PVH=y
-CONFIG_KVM_GUEST=y
-CONFIG_ARCH_CPUIDLE_HALTPOLL=y
-CONFIG_PVH=y
-# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
-CONFIG_PARAVIRT_CLOCK=y
-# CONFIG_JAILHOUSE_GUEST is not set
-# CONFIG_ACRN_GUEST is not set
-# CONFIG_MK8 is not set
-# CONFIG_MPSC is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-CONFIG_GENERIC_CPU=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_TSC=y
-CONFIG_X86_CMPXCHG64=y
-CONFIG_X86_CMOV=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=64
-CONFIG_X86_DEBUGCTLMSR=y
-CONFIG_IA32_FEAT_CTL=y
-CONFIG_X86_VMX_FEATURE_NAMES=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_HYGON=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_ZHAOXIN=y
-CONFIG_HPET_TIMER=y
-CONFIG_HPET_EMULATE_RTC=y
-CONFIG_DMI=y
-CONFIG_GART_IOMMU=y
-CONFIG_NR_CPUS_RANGE_BEGIN=2
-CONFIG_NR_CPUS_RANGE_END=512
-CONFIG_NR_CPUS_DEFAULT=64
-CONFIG_NR_CPUS=256
-CONFIG_SCHED_SMT=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_MC_PRIO=y
-CONFIG_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
-CONFIG_X86_MCE=y
-# CONFIG_X86_MCELOG_LEGACY is not set
-CONFIG_X86_MCE_INTEL=y
-CONFIG_X86_MCE_AMD=y
-CONFIG_X86_MCE_THRESHOLD=y
-CONFIG_X86_THERMAL_VECTOR=y
-
-#
-# Performance monitoring
-#
-CONFIG_PERF_EVENTS_INTEL_UNCORE=y
-CONFIG_PERF_EVENTS_INTEL_RAPL=m
-CONFIG_PERF_EVENTS_INTEL_CSTATE=m
-CONFIG_PERF_EVENTS_AMD_POWER=m
-# end of Performance monitoring
-
-CONFIG_X86_16BIT=y
-CONFIG_X86_ESPFIX64=y
-CONFIG_X86_VSYSCALL_EMULATION=y
-CONFIG_X86_IOPL_IOPERM=y
-CONFIG_I8K=m
-CONFIG_MICROCODE=y
-CONFIG_MICROCODE_INTEL=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_X86_MSR=m
-CONFIG_X86_CPUID=m
-# CONFIG_X86_5LEVEL is not set
-CONFIG_X86_DIRECT_GBPAGES=y
-# CONFIG_AMD_MEM_ENCRYPT is not set
-CONFIG_NUMA=y
-CONFIG_AMD_NUMA=y
-CONFIG_X86_64_ACPI_NUMA=y
-CONFIG_NODES_SPAN_OTHER_NODES=y
-# CONFIG_NUMA_EMU is not set
-CONFIG_NODES_SHIFT=6
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
-CONFIG_X86_PMEM_LEGACY_DEVICE=y
-CONFIG_X86_PMEM_LEGACY=y
-# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW=64
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-CONFIG_X86_PAT=y
-CONFIG_ARCH_USES_PG_UNCACHED=y
-CONFIG_ARCH_RANDOM=y
-CONFIG_X86_SMAP=y
-CONFIG_X86_UMIP=y
-CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
-# CONFIG_X86_INTEL_TSX_MODE_OFF is not set
-# CONFIG_X86_INTEL_TSX_MODE_ON is not set
-CONFIG_X86_INTEL_TSX_MODE_AUTO=y
-CONFIG_EFI=y
-CONFIG_EFI_STUB=y
-# CONFIG_EFI_MIXED is not set
-CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_300 is not set
-CONFIG_HZ_1000=y
-CONFIG_HZ=1000
-CONFIG_SCHED_HRTICK=y
-# CONFIG_KEXEC is not set
-# CONFIG_KEXEC_FILE is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_PHYSICAL_START=0x1000000
-CONFIG_RELOCATABLE=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_X86_NEED_RELOCS=y
-CONFIG_PHYSICAL_ALIGN=0x1000000
-CONFIG_DYNAMIC_MEMORY_LAYOUT=y
-CONFIG_RANDOMIZE_MEMORY=y
-CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0
-CONFIG_HOTPLUG_CPU=y
-# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_COMPAT_VDSO is not set
-# CONFIG_LEGACY_VSYSCALL_EMULATE is not set
-# CONFIG_LEGACY_VSYSCALL_XONLY is not set
-CONFIG_LEGACY_VSYSCALL_NONE=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_MODIFY_LDT_SYSCALL=y
-CONFIG_HAVE_LIVEPATCH=y
-# end of Processor type and features
-
-CONFIG_ARCH_HAS_ADD_PAGES=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
-CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
-CONFIG_ARCH_ENABLE_THP_MIGRATION=y
-
-#
-# Power management and ACPI options
-#
-CONFIG_ARCH_HIBERNATION_HEADER=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_HIBERNATE_CALLBACKS=y
-CONFIG_HIBERNATION=y
-CONFIG_PM_STD_PARTITION=""
-CONFIG_PM_SLEEP=y
-CONFIG_PM_SLEEP_SMP=y
-# CONFIG_PM_AUTOSLEEP is not set
-# CONFIG_PM_WAKELOCKS is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_CLK=y
-CONFIG_PM_GENERIC_DOMAINS=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
-CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
-# CONFIG_ENERGY_MODEL is not set
-CONFIG_ARCH_SUPPORTS_ACPI=y
-CONFIG_ACPI=y
-CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
-CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
-CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
-# CONFIG_ACPI_DEBUGGER is not set
-CONFIG_ACPI_SPCR_TABLE=y
-CONFIG_ACPI_LPIT=y
-CONFIG_ACPI_SLEEP=y
-# CONFIG_ACPI_PROCFS_POWER is not set
-CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
-CONFIG_ACPI_EC_DEBUGFS=y
-CONFIG_ACPI_AC=m
-CONFIG_ACPI_BATTERY=m
-CONFIG_ACPI_BUTTON=m
-CONFIG_ACPI_VIDEO=m
-CONFIG_ACPI_FAN=m
-CONFIG_ACPI_TAD=m
-CONFIG_ACPI_DOCK=y
-CONFIG_ACPI_CPU_FREQ_PSS=y
-CONFIG_ACPI_PROCESSOR_CSTATE=y
-CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_CPPC_LIB=y
-CONFIG_ACPI_PROCESSOR=y
-CONFIG_ACPI_IPMI=m
-CONFIG_ACPI_HOTPLUG_CPU=y
-# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
-CONFIG_ACPI_THERMAL=m
-CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
-CONFIG_ACPI_TABLE_UPGRADE=y
-# CONFIG_ACPI_DEBUG is not set
-CONFIG_ACPI_PCI_SLOT=y
-CONFIG_ACPI_CONTAINER=y
-CONFIG_ACPI_HOTPLUG_IOAPIC=y
-CONFIG_ACPI_SBS=m
-CONFIG_ACPI_HED=m
-CONFIG_ACPI_BGRT=y
-# CONFIG_ACPI_NFIT is not set
-CONFIG_ACPI_NUMA=y
-# CONFIG_ACPI_HMAT is not set
-CONFIG_HAVE_ACPI_APEI=y
-CONFIG_HAVE_ACPI_APEI_NMI=y
-CONFIG_ACPI_APEI=y
-# CONFIG_ACPI_APEI_GHES is not set
-CONFIG_ACPI_APEI_PCIEAER=y
-CONFIG_ACPI_APEI_ERST_DEBUG=y
-CONFIG_DPTF_POWER=m
-CONFIG_ACPI_WATCHDOG=y
-CONFIG_ACPI_EXTLOG=y
-CONFIG_ACPI_ADXL=y
-CONFIG_PMIC_OPREGION=y
-# CONFIG_CHT_DC_TI_PMIC_OPREGION is not set
-CONFIG_ACPI_CONFIGFS=m
-CONFIG_X86_PM_TIMER=y
-# CONFIG_SFI is not set
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_ATTR_SET=y
-CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=m
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
-
-#
-# CPU frequency scaling drivers
-#
-CONFIG_X86_INTEL_PSTATE=y
-CONFIG_X86_PCC_CPUFREQ=m
-CONFIG_X86_ACPI_CPUFREQ=m
-CONFIG_X86_ACPI_CPUFREQ_CPB=y
-CONFIG_X86_POWERNOW_K8=m
-CONFIG_X86_AMD_FREQ_SENSITIVITY=m
-CONFIG_X86_SPEEDSTEP_CENTRINO=m
-CONFIG_X86_P4_CLOCKMOD=m
-
-#
-# shared options
-#
-CONFIG_X86_SPEEDSTEP_LIB=m
-# end of CPU Frequency scaling
-
-#
-# CPU Idle
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-# CONFIG_CPU_IDLE_GOV_TEO is not set
-# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
-CONFIG_HALTPOLL_CPUIDLE=m
-# end of CPU Idle
-
-CONFIG_INTEL_IDLE=y
-# end of Power management and ACPI options
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_XEN=y
-CONFIG_MMCONF_FAM10H=y
-CONFIG_ISA_DMA_API=y
-CONFIG_AMD_NB=y
-CONFIG_X86_SYSFB=y
-# end of Bus options (PCI etc.)
-
-#
-# Binary Emulations
-#
-CONFIG_IA32_EMULATION=y
-# CONFIG_X86_X32 is not set
-CONFIG_COMPAT_32=y
-CONFIG_COMPAT=y
-CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
-CONFIG_SYSVIPC_COMPAT=y
-# end of Binary Emulations
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_DMIID=y
-# CONFIG_DMI_SYSFS is not set
-CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
-# CONFIG_ISCSI_IBFT is not set
-CONFIG_FW_CFG_SYSFS=m
-# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-
-#
-# EFI (Extensible Firmware Interface) Support
-#
-CONFIG_EFI_VARS=m
-CONFIG_EFI_ESRT=y
-CONFIG_EFI_VARS_PSTORE=m
-CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-# CONFIG_EFI_FAKE_MEMMAP is not set
-CONFIG_EFI_RUNTIME_WRAPPERS=y
-# CONFIG_EFI_BOOTLOADER_CONTROL is not set
-# CONFIG_EFI_CAPSULE_LOADER is not set
-# CONFIG_EFI_TEST is not set
-CONFIG_APPLE_PROPERTIES=y
-# CONFIG_RESET_ATTACK_MITIGATION is not set
-# CONFIG_EFI_RCI2_TABLE is not set
-# CONFIG_EFI_DISABLE_PCI_DMA is not set
-# end of EFI (Extensible Firmware Interface) Support
-
-CONFIG_UEFI_CPER=y
-CONFIG_UEFI_CPER_X86=y
-CONFIG_EFI_DEV_PATH_PARSER=y
-CONFIG_EFI_EARLYCON=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_HAVE_KVM=y
-CONFIG_HAVE_KVM_IRQCHIP=y
-CONFIG_HAVE_KVM_IRQFD=y
-CONFIG_HAVE_KVM_IRQ_ROUTING=y
-CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_ASYNC_PF=y
-CONFIG_HAVE_KVM_MSI=y
-CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
-CONFIG_KVM_VFIO=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_KVM_COMPAT=y
-CONFIG_HAVE_KVM_IRQ_BYPASS=y
-CONFIG_HAVE_KVM_NO_POLL=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-CONFIG_KVM_INTEL=m
-CONFIG_KVM_AMD=m
-CONFIG_KVM_AMD_SEV=y
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_VSOCK=m
-CONFIG_VHOST=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
-
-#
-# General architecture-dependent options
-#
-CONFIG_HOTPLUG_SMT=y
-CONFIG_HAVE_OPROFILE=y
-CONFIG_OPROFILE_NMI_TIMER=y
-# CONFIG_KPROBES is not set
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_OPTPROBES=y
-CONFIG_HAVE_KPROBES_ON_FTRACE=y
-CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
-CONFIG_ARCH_HAS_SET_MEMORY=y
-CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
-CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
-CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-CONFIG_HAVE_PERF_EVENTS_NMI=y
-CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
-CONFIG_HAVE_PERF_REGS=y
-CONFIG_HAVE_PERF_USER_STACK_DUMP=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
-CONFIG_MMU_GATHER_TABLE_FREE=y
-CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
-CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
-CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
-CONFIG_HAVE_CMPXCHG_LOCAL=y
-CONFIG_HAVE_CMPXCHG_DOUBLE=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_SECCOMP_FILTER=y
-CONFIG_HAVE_ARCH_STACKLEAK=y
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_MOVE_PMD=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
-CONFIG_HAVE_ARCH_HUGE_VMAP=y
-CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
-CONFIG_HAVE_ARCH_SOFT_DIRTY=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=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=28
-CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
-CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
-CONFIG_HAVE_COPY_THREAD_TLS=y
-CONFIG_HAVE_STACK_VALIDATION=y
-CONFIG_HAVE_RELIABLE_STACKTRACE=y
-CONFIG_ISA_BUS_API=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_COMPAT_OLD_SIGACTION=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_HAVE_ARCH_VMAP_STACK=y
-CONFIG_VMAP_STACK=y
-CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
-CONFIG_STRICT_KERNEL_RWX=y
-CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
-CONFIG_STRICT_MODULE_RWX=y
-CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-CONFIG_ARCH_HAS_MEM_ENCRYPT=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# end of GCOV-based kernel profiling
-
-CONFIG_PLUGIN_HOSTCC=""
-CONFIG_HAVE_GCC_PLUGINS=y
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULE_SIG_FORMAT=y
-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=y
-# CONFIG_MODULE_SIG_FORCE is not set
-CONFIG_MODULE_SIG_ALL=y
-CONFIG_MODULE_SIG_SHA1=y
-# CONFIG_MODULE_SIG_SHA224 is not set
-# CONFIG_MODULE_SIG_SHA256 is not set
-# CONFIG_MODULE_SIG_SHA384 is not set
-# CONFIG_MODULE_SIG_SHA512 is not set
-CONFIG_MODULE_SIG_HASH="sha1"
-# 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=y
-CONFIG_MODULES_TREE_LOOKUP=y
-CONFIG_BLOCK=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_BLK_CGROUP_RWSTAT=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_INTEGRITY_T10=m
-# CONFIG_BLK_DEV_ZONED is not set
-CONFIG_BLK_DEV_THROTTLING=y
-# CONFIG_BLK_DEV_THROTTLING_LOW is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
-# CONFIG_BLK_WBT is not set
-CONFIG_BLK_CGROUP_IOLATENCY=y
-# CONFIG_BLK_CGROUP_IOCOST is not set
-# CONFIG_BLK_SED_OPAL is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_AIX_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-# CONFIG_CMDLINE_PARTITION is not set
-# end of Partition Types
-
-CONFIG_BLOCK_COMPAT=y
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_MQ_VIRTIO=y
-CONFIG_BLK_MQ_RDMA=y
-CONFIG_BLK_PM=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=m
-CONFIG_MQ_IOSCHED_KYBER=m
-CONFIG_IOSCHED_BFQ=y
-# CONFIG_BFQ_GROUP_IOSCHED is not set
-# end of IO Schedulers
-
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_PADATA=y
-CONFIG_ASN1=y
-CONFIG_UNINLINE_SPIN_UNLOCK=y
-CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_RWSEM_SPIN_ON_OWNER=y
-CONFIG_LOCK_SPIN_ON_OWNER=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
-CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
-CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
-CONFIG_FREEZER=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_COMPAT_BINFMT_ELF=y
-CONFIG_ELFCORE=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_BINFMT_MISC=m
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_SPARSEMEM_MANUAL=y
-CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_SPARSEMEM_EXTREME=y
-CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
-CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
-CONFIG_HAVE_FAST_GUP=y
-# CONFIG_MEMORY_HOTPLUG is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MEMORY_BALLOON=y
-CONFIG_BALLOON_COMPACTION=y
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_MMU_NOTIFIER=y
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_MEMORY_FAILURE is not set
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
-# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
-CONFIG_ARCH_WANTS_THP_SWAP=y
-CONFIG_THP_SWAP=y
-CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
-# CONFIG_CLEANCACHE is not set
-# CONFIG_FRONTSWAP is not set
-# CONFIG_CMA is not set
-CONFIG_ZPOOL=m
-# CONFIG_ZBUD is not set
-CONFIG_Z3FOLD=m
-CONFIG_ZSMALLOC=y
-# CONFIG_PGTABLE_MAPPING is not set
-# CONFIG_ZSMALLOC_STAT is not set
-CONFIG_GENERIC_EARLY_IOREMAP=y
-# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-CONFIG_ARCH_HAS_PTE_DEVMAP=y
-CONFIG_FRAME_VECTOR=y
-CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
-CONFIG_ARCH_HAS_PKEYS=y
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_BENCHMARK is not set
-# CONFIG_READ_ONLY_THP_FOR_FS is not set
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-CONFIG_MAPPING_DIRTY_HELPERS=y
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_COMPAT_NETLINK_MESSAGES=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-CONFIG_UNIX_DIAG=m
-# CONFIG_TLS is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_ALGO=m
-CONFIG_XFRM_USER=m
-CONFIG_XFRM_INTERFACE=m
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-CONFIG_NET_KEY_MIGRATE=y
-# CONFIG_SMC is not set
-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=y
-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=y
-# CONFIG_IP_PIMSM_V1 is not set
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-CONFIG_NET_FOU=m
-CONFIG_NET_FOU_IP_TUNNELS=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-# CONFIG_INET_ESP_OFFLOAD is not set
-# CONFIG_INET_ESPINTCP is not set
-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 is not set
-CONFIG_INET_DIAG_DESTROY=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_NV=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_TCP_CONG_DCTCP=m
-CONFIG_TCP_CONG_CDG=m
-CONFIG_TCP_CONG_BBR=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-# CONFIG_INET6_ESP_OFFLOAD is not set
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_IPV6_ILA=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_VTI=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_FOU=m
-CONFIG_IPV6_FOU_TUNNEL=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 is not set
-# CONFIG_IPV6_SEG6_HMAC is not set
-# CONFIG_NETLABEL is not set
-CONFIG_MPTCP=y
-CONFIG_MPTCP_IPV6=y
-# CONFIG_MPTCP_HMAC_TEST is not set
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-CONFIG_NETWORK_PHY_TIMESTAMPING=y
-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 is not set
-CONFIG_NETFILTER_CONNCOUNT=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-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=y
-CONFIG_NF_CT_PROTO_GRE=y
-CONFIG_NF_CT_PROTO_SCTP=y
-CONFIG_NF_CT_PROTO_UDPLITE=y
-CONFIG_NF_CONNTRACK_AMANDA=m
-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=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-CONFIG_NF_CT_NETLINK_HELPER=m
-CONFIG_NETFILTER_NETLINK_GLUE_CT=y
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_AMANDA=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_NETFILTER_SYNPROXY=m
-CONFIG_NF_TABLES=m
-CONFIG_NF_TABLES_SET=m
-CONFIG_NF_TABLES_INET=y
-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_OBJREF is not set
-CONFIG_NFT_QUEUE=m
-CONFIG_NFT_QUOTA=m
-CONFIG_NFT_REJECT=m
-CONFIG_NFT_REJECT_INET=m
-CONFIG_NFT_COMPAT=m
-CONFIG_NFT_HASH=m
-CONFIG_NFT_FIB=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_NF_DUP_NETDEV=m
-CONFIG_NFT_DUP_NETDEV=m
-CONFIG_NFT_FWD_NETDEV=m
-CONFIG_NFT_FIB_NETDEV=m
-CONFIG_NF_FLOW_TABLE_INET=m
-CONFIG_NF_FLOW_TABLE=m
-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_AUDIT=m
-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_LED=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=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=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
-
-#
-# Xtables matches
-#
-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_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=m
-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=m
-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=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
-# 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=m
-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=m
-CONFIG_IP_SET_HASH_NET=m
-CONFIG_IP_SET_HASH_NETNET=m
-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=y
-
-#
-# 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=m
-CONFIG_IP_VS_OVF=m
-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_TABLES_IPV4=y
-CONFIG_NFT_REJECT_IPV4=m
-CONFIG_NFT_DUP_IPV4=m
-CONFIG_NFT_FIB_IPV4=m
-CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
-CONFIG_NF_DUP_IPV4=m
-CONFIG_NF_LOG_ARP=m
-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=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_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=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-CONFIG_NF_TABLES_IPV6=y
-CONFIG_NFT_REJECT_IPV6=m
-CONFIG_NFT_DUP_IPV6=m
-CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
-CONFIG_NF_DUP_IPV6=m
-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=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-# CONFIG_IP6_NF_SECURITY is not set
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_IP6_NF_TARGET_NPT=m
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_TABLES_BRIDGE=m
-# CONFIG_NFT_BRIDGE_META is not set
-CONFIG_NFT_BRIDGE_REJECT=m
-CONFIG_NF_LOG_BRIDGE=m
-# CONFIG_NF_CONNTRACK_BRIDGE is not set
-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 is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-# end of DCCP CCIDs Configuration
-
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_OBJCNT is not set
-CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
-# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
-CONFIG_SCTP_COOKIE_HMAC_MD5=y
-CONFIG_SCTP_COOKIE_HMAC_SHA1=y
-CONFIG_INET_SCTP_DIAG=m
-CONFIG_RDS=m
-# CONFIG_RDS_RDMA is not set
-# CONFIG_RDS_TCP is not set
-# CONFIG_RDS_DEBUG is not set
-# CONFIG_TIPC is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_MRP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-CONFIG_NET_DSA=m
-# CONFIG_NET_DSA_TAG_AR9331 is not set
-CONFIG_NET_DSA_TAG_BRCM_COMMON=m
-CONFIG_NET_DSA_TAG_BRCM=m
-CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
-# CONFIG_NET_DSA_TAG_GSWIP is not set
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
-# CONFIG_NET_DSA_TAG_MTK is not set
-# CONFIG_NET_DSA_TAG_KSZ is not set
-# CONFIG_NET_DSA_TAG_OCELOT is not set
-CONFIG_NET_DSA_TAG_QCA=m
-# CONFIG_NET_DSA_TAG_LAN9303 is not set
-# CONFIG_NET_DSA_TAG_SJA1105 is not set
-CONFIG_NET_DSA_TAG_TRAILER=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_VLAN_8021Q_GVRP is not set
-CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=m
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_X25=m
-CONFIG_LAPB=m
-CONFIG_PHONET=m
-CONFIG_6LOWPAN=m
-CONFIG_6LOWPAN_NHC=m
-CONFIG_6LOWPAN_NHC_DEST=m
-CONFIG_6LOWPAN_NHC_FRAGMENT=m
-CONFIG_6LOWPAN_NHC_HOP=m
-CONFIG_6LOWPAN_NHC_IPV6=m
-CONFIG_6LOWPAN_NHC_MOBILITY=m
-CONFIG_6LOWPAN_NHC_ROUTING=m
-CONFIG_6LOWPAN_NHC_UDP=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
-CONFIG_6LOWPAN_GHC_UDP=m
-CONFIG_6LOWPAN_GHC_ICMPV6=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
-CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
-CONFIG_IEEE802154=m
-# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
-CONFIG_IEEE802154_SOCKET=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_MAC802154=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-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
-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=m
-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=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_SCH_ETS 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=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_MATCHALL=m
-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 is not set
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-# CONFIG_NET_ACT_MPLS is not set
-CONFIG_NET_ACT_VLAN=m
-# CONFIG_NET_ACT_BPF is not set
-CONFIG_NET_ACT_CONNMARK=m
-# CONFIG_NET_ACT_CTINFO is not set
-CONFIG_NET_ACT_SKBMOD=m
-CONFIG_NET_ACT_IFE=m
-CONFIG_NET_ACT_TUNNEL_KEY=m
-# CONFIG_NET_ACT_CT is not set
-CONFIG_NET_IFE_SKBMARK=m
-CONFIG_NET_IFE_SKBPRIO=m
-CONFIG_NET_IFE_SKBTCINDEX=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-CONFIG_BATMAN_ADV_BATMAN_V=y
-CONFIG_BATMAN_ADV_BLA=y
-CONFIG_BATMAN_ADV_DAT=y
-# CONFIG_BATMAN_ADV_NC is not set
-CONFIG_BATMAN_ADV_MCAST=y
-# CONFIG_BATMAN_ADV_DEBUG is not set
-CONFIG_BATMAN_ADV_SYSFS=y
-CONFIG_OPENVSWITCH=m
-CONFIG_OPENVSWITCH_GRE=m
-CONFIG_OPENVSWITCH_VXLAN=m
-CONFIG_OPENVSWITCH_GENEVE=m
-CONFIG_VSOCKETS=m
-CONFIG_VSOCKETS_DIAG=m
-CONFIG_VSOCKETS_LOOPBACK=m
-CONFIG_VMWARE_VMCI_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS=m
-CONFIG_VIRTIO_VSOCKETS_COMMON=m
-# CONFIG_HYPERV_VSOCKETS is not set
-CONFIG_NETLINK_DIAG=y
-CONFIG_MPLS=y
-CONFIG_NET_MPLS_GSO=m
-CONFIG_MPLS_ROUTING=m
-CONFIG_MPLS_IPTUNNEL=m
-CONFIG_NET_NSH=m
-# CONFIG_HSR is not set
-CONFIG_NET_SWITCHDEV=y
-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=y
-CONFIG_CGROUP_NET_CLASSID=y
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_JIT is not set
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# end of Network testing
-# end of Networking options
-
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_BAYCOM_PAR=m
-CONFIG_YAM=m
-# end of AX.25 network device drivers
-
-# CONFIG_CAN is not set
-CONFIG_BT=m
-CONFIG_BT_BREDR=y
-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_CMTP=m
-CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-# CONFIG_BT_6LOWPAN is not set
-CONFIG_BT_LEDS=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_INTEL=m
-CONFIG_BT_BCM=m
-CONFIG_BT_RTL=m
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
-CONFIG_BT_HCIBTUSB_BCM=y
-# CONFIG_BT_HCIBTUSB_MTK is not set
-CONFIG_BT_HCIBTUSB_RTL=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-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_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-# CONFIG_BT_MTKSDIO is not set
-CONFIG_BT_HCIRSI=m
-# end of Bluetooth device drivers
-
-CONFIG_AF_RXRPC=m
-CONFIG_AF_RXRPC_IPV6=y
-# CONFIG_AF_RXRPC_INJECT_LOSS is not set
-# CONFIG_AF_RXRPC_DEBUG is not set
-# CONFIG_RXKAD is not set
-# CONFIG_AF_KCM is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
-CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_CRDA_SUPPORT=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_CFG80211_WEXT_EXPORT=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_MESSAGE_TRACING is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_XEN is not set
-CONFIG_NET_9P_RDMA=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
-CONFIG_NFC=m
-CONFIG_NFC_DIGITAL=m
-CONFIG_NFC_NCI=m
-CONFIG_NFC_NCI_SPI=m
-CONFIG_NFC_NCI_UART=m
-CONFIG_NFC_HCI=m
-CONFIG_NFC_SHDLC=y
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_NFC_TRF7970A=m
-CONFIG_NFC_MEI_PHY=m
-CONFIG_NFC_SIM=m
-CONFIG_NFC_PORT100=m
-CONFIG_NFC_FDP=m
-CONFIG_NFC_FDP_I2C=m
-CONFIG_NFC_PN544=m
-CONFIG_NFC_PN544_I2C=m
-CONFIG_NFC_PN544_MEI=m
-CONFIG_NFC_PN533=m
-CONFIG_NFC_PN533_USB=m
-CONFIG_NFC_PN533_I2C=m
-CONFIG_NFC_MICROREAD=m
-CONFIG_NFC_MICROREAD_I2C=m
-CONFIG_NFC_MICROREAD_MEI=m
-CONFIG_NFC_MRVL=m
-CONFIG_NFC_MRVL_USB=m
-CONFIG_NFC_MRVL_UART=m
-CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_MRVL_SPI=m
-CONFIG_NFC_ST21NFCA=m
-CONFIG_NFC_ST21NFCA_I2C=m
-CONFIG_NFC_ST_NCI=m
-CONFIG_NFC_ST_NCI_I2C=m
-CONFIG_NFC_ST_NCI_SPI=m
-# CONFIG_NFC_NXP_NCI is not set
-CONFIG_NFC_S3FWRN5=m
-CONFIG_NFC_S3FWRN5_I2C=m
-# CONFIG_NFC_ST95HF is not set
-# end of Near Field Communication (NFC) devices
-
-# CONFIG_PSAMPLE is not set
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-# CONFIG_LWTUNNEL_BPF is not set
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_DEVLINK=y
-CONFIG_PAGE_POOL=y
-CONFIG_FAILOVER=m
-CONFIG_ETHTOOL_NETLINK=y
-CONFIG_HAVE_EBPF_JIT=y
-
-#
-# Device Drivers
-#
-CONFIG_HAVE_EISA=y
-# CONFIG_EISA is not set
-CONFIG_HAVE_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
-CONFIG_PCIEAER=y
-# CONFIG_PCIEAER_INJECT is not set
-# CONFIG_PCIE_ECRC is not set
-CONFIG_PCIEASPM=y
-CONFIG_PCIEASPM_DEFAULT=y
-# CONFIG_PCIEASPM_POWERSAVE is not set
-# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
-# CONFIG_PCIEASPM_PERFORMANCE is not set
-CONFIG_PCIE_PME=y
-# CONFIG_PCIE_DPC is not set
-CONFIG_PCIE_PTM=y
-# CONFIG_PCIE_BW is not set
-CONFIG_PCI_MSI=y
-CONFIG_PCI_MSI_IRQ_DOMAIN=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
-CONFIG_PCI_STUB=m
-CONFIG_PCI_PF_STUB=m
-CONFIG_XEN_PCIDEV_FRONTEND=m
-CONFIG_PCI_ATS=y
-CONFIG_PCI_LOCKLESS_CONFIG=y
-CONFIG_PCI_IOV=y
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-CONFIG_PCI_LABEL=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
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=y
-
-#
-# PCI controller drivers
-#
-CONFIG_VMD=m
-CONFIG_PCI_HYPERV_INTERFACE=m
-
-#
-# DesignWare PCI Core Support
-#
-# CONFIG_PCIE_DW_PLAT_HOST is not set
-# CONFIG_PCI_MESON is not set
-# end of DesignWare PCI Core Support
-
-#
-# Cadence PCIe controllers support
-#
-# end of Cadence PCIe controllers support
-# end of PCI controller drivers
-
-#
-# PCI Endpoint
-#
-# CONFIG_PCI_ENDPOINT is not set
-# end of PCI Endpoint
-
-#
-# PCI switch controller drivers
-#
-CONFIG_PCI_SW_SWITCHTEC=m
-# end of PCI switch controller drivers
-
-CONFIG_PCCARD=m
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-CONFIG_I82092=m
-CONFIG_PCCARD_NONSTATIC=y
-# CONFIG_RAPIDIO is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
-CONFIG_FW_CACHE=y
-# end of Firmware loader
-
-CONFIG_WANT_DEV_COREDUMP=y
-CONFIG_ALLOW_DEV_COREDUMP=y
-CONFIG_DEV_COREDUMP=y
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_SYS_HYPERVISOR=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_CPU_VULNERABILITIES=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=m
-CONFIG_REGMAP_SPI=m
-CONFIG_REGMAP_IRQ=y
-CONFIG_DMA_SHARED_BUFFER=y
-# CONFIG_DMA_FENCE_TRACE is not set
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-# end of Bus devices
-
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_GNSS=m
-CONFIG_MTD=m
-CONFIG_MTD_TESTS=m
-
-#
-# Partition parsers
-#
-CONFIG_MTD_AR7_PARTS=m
-# CONFIG_MTD_CMDLINE_PARTS is not set
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-CONFIG_MTD_SWAP=m
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# 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=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
-CONFIG_MTD_SBC_GXX=m
-CONFIG_MTD_AMD76XROM=m
-CONFIG_MTD_ICHXROM=m
-CONFIG_MTD_ESB2ROM=m
-CONFIG_MTD_CK804XROM=m
-CONFIG_MTD_SCB2_FLASH=m
-CONFIG_MTD_NETtel=m
-CONFIG_MTD_L440GX=m
-CONFIG_MTD_PCI=m
-CONFIG_MTD_PCMCIA=m
-# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
-CONFIG_MTD_INTEL_VR_NOR=m
-CONFIG_MTD_PLATRAM=m
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_PMC551=m
-CONFIG_MTD_PMC551_BUGFIX=y
-# CONFIG_MTD_PMC551_DEBUG is not set
-CONFIG_MTD_DATAFLASH=m
-# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
-# CONFIG_MTD_DATAFLASH_OTP is not set
-# CONFIG_MTD_MCHP23K256 is not set
-# CONFIG_MTD_SST25L is not set
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-# end of Self-contained MTD device drivers
-
-CONFIG_MTD_ONENAND=m
-# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OTP=y
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=m
-# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC 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=m
-CONFIG_MTD_QINFO_PROBE=m
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-# CONFIG_MTD_SPI_NOR is not set
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_FASTMAP is not set
-# CONFIG_MTD_UBI_GLUEBI is not set
-# CONFIG_MTD_UBI_BLOCK is not set
-# CONFIG_MTD_HYPERBUS is not set
-# CONFIG_OF is not set
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-CONFIG_PARPORT=m
-CONFIG_PARPORT_PC=m
-CONFIG_PARPORT_SERIAL=m
-# CONFIG_PARPORT_PC_FIFO is not set
-# CONFIG_PARPORT_PC_SUPERIO is not set
-CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_AX88796=m
-# CONFIG_PARPORT_1284 is not set
-CONFIG_PARPORT_NOT_PC=y
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
-
-#
-# Protocols
-#
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_NULL_BLK is not set
-CONFIG_BLK_DEV_FD=m
-CONFIG_CDROM=m
-# CONFIG_PARIDE is not set
-CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_WRITEBACK is not set
-CONFIG_BLK_DEV_UMEM=m
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SKD=m
-CONFIG_BLK_DEV_SX8=m
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_XEN_BLKDEV_FRONTEND=y
-CONFIG_XEN_BLKDEV_BACKEND=m
-CONFIG_VIRTIO_BLK=m
-# CONFIG_BLK_DEV_RBD is not set
-CONFIG_BLK_DEV_RSXX=m
-
-#
-# NVME Support
-#
-CONFIG_NVME_CORE=m
-CONFIG_BLK_DEV_NVME=m
-CONFIG_NVME_MULTIPATH=y
-# CONFIG_NVME_HWMON is not set
-CONFIG_NVME_FABRICS=m
-CONFIG_NVME_RDMA=m
-# CONFIG_NVME_FC is not set
-# CONFIG_NVME_TCP is not set
-CONFIG_NVME_TARGET=m
-CONFIG_NVME_TARGET_LOOP=m
-CONFIG_NVME_TARGET_RDMA=m
-# CONFIG_NVME_TARGET_FC is not set
-# CONFIG_NVME_TARGET_TCP is not set
-# end of NVME Support
-
-#
-# Misc devices
-#
-CONFIG_SENSORS_LIS3LV02D=m
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_DUMMY_IRQ is not set
-CONFIG_IBM_ASM=m
-CONFIG_PHANTOM=m
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
-CONFIG_APDS9802ALS=m
-CONFIG_ISL29003=m
-CONFIG_ISL29020=m
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1770=m
-CONFIG_SENSORS_APDS990X=m
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_VMWARE_BALLOON=m
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-# CONFIG_SRAM is not set
-# CONFIG_PCI_ENDPOINT_TEST is not set
-# CONFIG_XILINX_SDFEC is not set
-CONFIG_MISC_RTSX=m
-CONFIG_PVPANIC=m
-CONFIG_C2PORT=m
-CONFIG_C2PORT_DURAMAR_2150=m
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-# CONFIG_EEPROM_IDT_89HPESX is not set
-# CONFIG_EEPROM_EE1004 is not set
-# end of EEPROM support
-
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# end of Texas Instruments shared transport line discipline
-
-CONFIG_SENSORS_LIS3_I2C=m
-
-#
-# Altera FPGA firmware download module (requires I2C)
-#
-CONFIG_ALTERA_STAPL=m
-CONFIG_INTEL_MEI=m
-CONFIG_INTEL_MEI_ME=m
-CONFIG_INTEL_MEI_TXE=m
-# CONFIG_INTEL_MEI_HDCP is not set
-CONFIG_VMWARE_VMCI=m
-
-#
-# Intel MIC & related support
-#
-CONFIG_INTEL_MIC_BUS=m
-# CONFIG_SCIF_BUS is not set
-CONFIG_VOP_BUS=m
-CONFIG_VOP=m
-CONFIG_VHOST_RING=m
-# end of Intel MIC & related support
-
-# CONFIG_GENWQE is not set
-# CONFIG_ECHO is not set
-# CONFIG_MISC_ALCOR_PCI is not set
-CONFIG_MISC_RTSX_PCI=m
-CONFIG_MISC_RTSX_USB=m
-# CONFIG_HABANA_AI is not set
-# end of Misc devices
-
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=m
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=m
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=m
-CONFIG_CHR_DEV_ST=m
-CONFIG_BLK_DEV_SR=m
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-# end of SCSI Transports
-
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_CXGB4_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_SCSI_BNX2X_FCOE=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_HPSA=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
-CONFIG_AIC7XXX_DEBUG_ENABLE=y
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-CONFIG_AIC79XX_DEBUG_ENABLE=y
-CONFIG_AIC79XX_DEBUG_MASK=0
-CONFIG_AIC79XX_REG_PRETTY_PRINT=y
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-CONFIG_SCSI_MVSAS_DEBUG=y
-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
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT3SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-CONFIG_SCSI_MPT3SAS_MAX_SGE=128
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
-# CONFIG_SCSI_UFS_BSG is not set
-CONFIG_SCSI_HPTIOP=m
-CONFIG_SCSI_BUSLOGIC=m
-# CONFIG_SCSI_FLASHPOINT is not set
-# CONFIG_SCSI_MYRB is not set
-# CONFIG_SCSI_MYRS is not set
-CONFIG_VMWARE_PVSCSI=m
-CONFIG_XEN_SCSI_FRONTEND=m
-CONFIG_HYPERV_STORAGE=m
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_FCOE_FNIC=m
-# CONFIG_SCSI_SNIC is not set
-CONFIG_SCSI_DMX3191D=m
-# CONFIG_SCSI_FDOMAIN_PCI is not set
-CONFIG_SCSI_GDTH=m
-CONFIG_SCSI_ISCI=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-# CONFIG_SCSI_PPA is not set
-# CONFIG_SCSI_IMM is not set
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-# CONFIG_SCSI_IPR_DUMP is not set
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
-# CONFIG_TCM_QLA2XXX_DEBUG is not set
-CONFIG_SCSI_QLA_ISCSI=m
-# CONFIG_QEDI is not set
-# CONFIG_QEDF is not set
-CONFIG_SCSI_LPFC=m
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_AM53C974=m
-CONFIG_SCSI_WD719X=m
-CONFIG_SCSI_DEBUG=m
-# CONFIG_SCSI_PMCRAID is not set
-CONFIG_SCSI_PM8001=m
-# CONFIG_SCSI_BFA_FC is not set
-CONFIG_SCSI_VIRTIO=m
-# CONFIG_SCSI_CHELSIO_FCOE is not set
-# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
-# CONFIG_SCSI_DH is not set
-# end of SCSI device support
-
-CONFIG_ATA=m
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_ATA_ACPI=y
-# CONFIG_SATA_ZPODD is not set
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_MOBILE_LPM_POLICY=3
-CONFIG_SATA_AHCI_PLATFORM=m
-CONFIG_SATA_INIC162X=m
-CONFIG_SATA_ACARD_AHCI=m
-CONFIG_SATA_SIL24=m
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_SX4=m
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_ATA_PIIX=m
-# CONFIG_SATA_DWC is not set
-CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_SVW=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_SCH=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_TOSHIBA=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-
-#
-# PIO-only SFF controllers
-#
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_RZ1000=m
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_PATA_ACPI=m
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_LEGACY=m
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-# CONFIG_MD_AUTODETECT is not set
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-# CONFIG_MD_CLUSTER is not set
-CONFIG_BCACHE=m
-# CONFIG_BCACHE_DEBUG is not set
-# CONFIG_BCACHE_CLOSURES_DEBUG is not set
-CONFIG_BLK_DEV_DM_BUILTIN=y
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_BUFIO=m
-# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
-CONFIG_DM_BIO_PRISON=m
-CONFIG_DM_PERSISTENT_DATA=m
-CONFIG_DM_UNSTRIPED=m
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-CONFIG_DM_THIN_PROVISIONING=m
-CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_SMQ=m
-CONFIG_DM_WRITECACHE=m
-# CONFIG_DM_ERA is not set
-# CONFIG_DM_CLONE is not set
-CONFIG_DM_MIRROR=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_RAID=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-CONFIG_DM_DELAY=m
-# CONFIG_DM_DUST is not set
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-CONFIG_DM_VERITY=m
-# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
-CONFIG_DM_VERITY_FEC=y
-CONFIG_DM_SWITCH=m
-CONFIG_DM_LOG_WRITES=m
-CONFIG_DM_INTEGRITY=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_TCM_FC=m
-CONFIG_ISCSI_TARGET=m
-CONFIG_ISCSI_TARGET_CXGB4=m
-CONFIG_SBP_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-CONFIG_FIREWIRE_NOSY=m
-# end of IEEE 1394 (FireWire) support
-
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_WIREGUARD=m
-# CONFIG_WIREGUARD_DEBUG is not set
-CONFIG_EQUALIZER=m
-# CONFIG_NET_FC is not set
-CONFIG_IFB=m
-CONFIG_NET_TEAM=m
-CONFIG_NET_TEAM_MODE_BROADCAST=m
-CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
-CONFIG_NET_TEAM_MODE_RANDOM=m
-CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
-CONFIG_NET_TEAM_MODE_LOADBALANCE=m
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-# CONFIG_IPVTAP is not set
-CONFIG_VXLAN=m
-CONFIG_GENEVE=m
-# CONFIG_GTP is not set
-CONFIG_MACSEC=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_NTB_NETDEV=m
-CONFIG_TUN=m
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-CONFIG_VIRTIO_NET=m
-CONFIG_NLMON=m
-CONFIG_NET_VRF=m
-# CONFIG_VSOCKMON is not set
-CONFIG_SUNGEM_PHY=m
-# CONFIG_ARCNET is not set
-CONFIG_ATM_DRIVERS=y
-CONFIG_ATM_DUMMY=m
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-# CONFIG_ATM_ENI_DEBUG is not set
-# CONFIG_ATM_ENI_TUNE_BURST is not set
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-# CONFIG_ATM_NICSTAR_USE_SUNI is not set
-# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-
-#
-# Distributed Switch Architecture drivers
-#
-CONFIG_B53=m
-CONFIG_B53_SPI_DRIVER=m
-CONFIG_B53_MDIO_DRIVER=m
-CONFIG_B53_MMAP_DRIVER=m
-CONFIG_B53_SRAB_DRIVER=m
-# CONFIG_B53_SERDES is not set
-CONFIG_NET_DSA_BCM_SF2=m
-# CONFIG_NET_DSA_LOOP is not set
-# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
-# CONFIG_NET_DSA_MT7530 is not set
-CONFIG_NET_DSA_MV88E6060=m
-# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set
-# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
-CONFIG_NET_DSA_MV88E6XXX=m
-CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
-CONFIG_NET_DSA_MV88E6XXX_PTP=y
-# CONFIG_NET_DSA_AR9331 is not set
-# CONFIG_NET_DSA_SJA1105 is not set
-CONFIG_NET_DSA_QCA8K=m
-CONFIG_NET_DSA_REALTEK_SMI=m
-# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set
-# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set
-# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set
-# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-CONFIG_MDIO=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_3C589=m
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_NET_VENDOR_ADAPTEC=y
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_NET_VENDOR_AGERE=y
-# CONFIG_ET131X is not set
-CONFIG_NET_VENDOR_ALACRITECH=y
-# CONFIG_SLICOSS is not set
-CONFIG_NET_VENDOR_ALTEON=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_ALTERA_TSE=m
-CONFIG_NET_VENDOR_AMAZON=y
-CONFIG_ENA_ETHERNET=m
-CONFIG_NET_VENDOR_AMD=y
-CONFIG_AMD8111_ETH=m
-CONFIG_PCNET32=m
-CONFIG_PCMCIA_NMCLAN=m
-# CONFIG_AMD_XGBE is not set
-CONFIG_NET_VENDOR_AQUANTIA=y
-CONFIG_AQTION=m
-CONFIG_NET_VENDOR_ARC=y
-CONFIG_NET_VENDOR_ATHEROS=y
-CONFIG_ATL2=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_ALX=m
-# CONFIG_NET_VENDOR_AURORA is not set
-CONFIG_NET_VENDOR_BROADCOM=y
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_BCMGENET=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_TIGON3=m
-CONFIG_TIGON3_HWMON=y
-CONFIG_BNX2X=m
-CONFIG_BNX2X_SRIOV=y
-# CONFIG_SYSTEMPORT is not set
-CONFIG_BNXT=m
-CONFIG_BNXT_SRIOV=y
-CONFIG_BNXT_FLOWER_OFFLOAD=y
-CONFIG_BNXT_HWMON=y
-CONFIG_NET_VENDOR_BROCADE=y
-CONFIG_BNA=m
-CONFIG_NET_VENDOR_CADENCE=y
-CONFIG_MACB=m
-CONFIG_MACB_USE_HWSTAMP=y
-# CONFIG_MACB_PCI is not set
-# CONFIG_NET_VENDOR_CAVIUM is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3=m
-CONFIG_CHELSIO_T4=m
-CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_LIB=m
-CONFIG_NET_VENDOR_CISCO=y
-CONFIG_ENIC=m
-# CONFIG_NET_VENDOR_CORTINA is not set
-# CONFIG_CX_ECAT is not set
-CONFIG_DNET=m
-CONFIG_NET_VENDOR_DEC=y
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_NET_VENDOR_DLINK=y
-CONFIG_DL2K=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_NET_VENDOR_EMULEX=y
-CONFIG_BE2NET=m
-CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_BE2=y
-CONFIG_BE2NET_BE3=y
-CONFIG_BE2NET_LANCER=y
-CONFIG_BE2NET_SKYHAWK=y
-CONFIG_NET_VENDOR_EZCHIP=y
-CONFIG_NET_VENDOR_FUJITSU=y
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_NET_VENDOR_GOOGLE=y
-# CONFIG_GVE is not set
-CONFIG_NET_VENDOR_HUAWEI=y
-# CONFIG_HINIC is not set
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_E1000E_HWTS=y
-CONFIG_IGB=m
-CONFIG_IGB_HWMON=y
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_IXGB=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_HWMON=y
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGBEVF=m
-CONFIG_I40E=m
-# CONFIG_I40EVF is not set
-CONFIG_ICE=m
-# CONFIG_FM10K is not set
-# CONFIG_IGC is not set
-CONFIG_JME=m
-CONFIG_NET_VENDOR_MARVELL=y
-# CONFIG_MVMDIO is not set
-CONFIG_SKGE=m
-CONFIG_SKGE_GENESIS=y
-CONFIG_SKY2=m
-CONFIG_NET_VENDOR_MELLANOX=y
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_MLX4_CORE_GEN2=y
-CONFIG_MLX5_CORE=m
-# CONFIG_MLX5_FPGA is not set
-CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_EN_ARFS=y
-CONFIG_MLX5_EN_RXNFC=y
-CONFIG_MLX5_MPFS=y
-CONFIG_MLX5_ESWITCH=y
-# CONFIG_MLX5_CORE_IPOIB is not set
-CONFIG_MLX5_SW_STEERING=y
-# CONFIG_MLXSW_CORE is not set
-# CONFIG_MLXFW is not set
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8842=m
-CONFIG_KS8851=m
-CONFIG_KS8851_MLL=m
-CONFIG_KSZ884X_PCI=m
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
-CONFIG_LAN743X=m
-# CONFIG_NET_VENDOR_MICROSEMI is not set
-CONFIG_NET_VENDOR_MYRI=y
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_FEALNX=m
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NATSEMI=m
-CONFIG_NS83820=m
-CONFIG_NET_VENDOR_NETERION=y
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_NET_VENDOR_NETRONOME=y
-CONFIG_NFP=m
-# CONFIG_NFP_APP_FLOWER is not set
-# CONFIG_NFP_APP_ABM_NIC is not set
-# CONFIG_NFP_DEBUG is not set
-# CONFIG_NET_VENDOR_NI is not set
-CONFIG_NET_VENDOR_8390=y
-CONFIG_PCMCIA_AXNET=m
-CONFIG_NE2K_PCI=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_NET_VENDOR_NVIDIA=y
-CONFIG_FORCEDETH=m
-CONFIG_NET_VENDOR_OKI=y
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_PACKET_ENGINES=y
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_NET_VENDOR_PENSANDO=y
-# CONFIG_IONIC is not set
-CONFIG_NET_VENDOR_QLOGIC=y
-CONFIG_QLA3XXX=m
-CONFIG_QLCNIC=m
-CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_HWMON=y
-CONFIG_NETXEN_NIC=m
-CONFIG_QED=m
-CONFIG_QED_SRIOV=y
-CONFIG_QEDE=m
-# CONFIG_NET_VENDOR_QUALCOMM is not set
-CONFIG_NET_VENDOR_RDC=y
-CONFIG_R6040=m
-CONFIG_NET_VENDOR_REALTEK=y
-CONFIG_ATP=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-CONFIG_8139TOO_PIO=y
-# CONFIG_8139TOO_TUNE_TWISTER is not set
-# CONFIG_8139TOO_8129 is not set
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R8169=m
-CONFIG_NET_VENDOR_RENESAS=y
-CONFIG_NET_VENDOR_ROCKER=y
-CONFIG_ROCKER=m
-# CONFIG_NET_VENDOR_SAMSUNG is not set
-CONFIG_NET_VENDOR_SEEQ=y
-CONFIG_NET_VENDOR_SOLARFLARE=y
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_SFC_MCDI_MON=y
-CONFIG_SFC_SRIOV=y
-CONFIG_SFC_MCDI_LOGGING=y
-# CONFIG_SFC_FALCON is not set
-CONFIG_NET_VENDOR_SILAN=y
-CONFIG_SC92031=m
-CONFIG_NET_VENDOR_SIS=y
-CONFIG_SIS900=m
-CONFIG_SIS190=m
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_EPIC100=m
-CONFIG_SMSC911X=m
-CONFIG_SMSC9420=m
-# CONFIG_NET_VENDOR_SOCIONEXT is not set
-CONFIG_NET_VENDOR_STMICRO=y
-CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_SELFTESTS is not set
-# CONFIG_STMMAC_PLATFORM is not set
-# CONFIG_STMMAC_PCI is not set
-CONFIG_NET_VENDOR_SUN=y
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
-CONFIG_NIU=m
-CONFIG_NET_VENDOR_SYNOPSYS=y
-# CONFIG_DWC_XLGMAC is not set
-CONFIG_NET_VENDOR_TEHUTI=y
-CONFIG_TEHUTI=m
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_CPSW_PHY_SEL is not set
-CONFIG_TLAN=m
-CONFIG_NET_VENDOR_VIA=y
-CONFIG_VIA_RHINE=m
-# CONFIG_VIA_RHINE_MMIO is not set
-CONFIG_VIA_VELOCITY=m
-CONFIG_NET_VENDOR_WIZNET=y
-CONFIG_WIZNET_W5100=m
-CONFIG_WIZNET_W5300=m
-# CONFIG_WIZNET_BUS_DIRECT is not set
-# CONFIG_WIZNET_BUS_INDIRECT is not set
-CONFIG_WIZNET_BUS_ANY=y
-CONFIG_WIZNET_W5100_SPI=m
-CONFIG_NET_VENDOR_XILINX=y
-# CONFIG_XILINX_AXI_EMAC is not set
-# CONFIG_XILINX_LL_TEMAC is not set
-CONFIG_NET_VENDOR_XIRCOM=y
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_FDDI=y
-CONFIG_DEFXX=m
-# CONFIG_DEFXX_MMIO is not set
-CONFIG_SKFP=m
-CONFIG_HIPPI=y
-CONFIG_ROADRUNNER=m
-# CONFIG_ROADRUNNER_LARGE_RINGS is not set
-CONFIG_NET_SB1000=m
-CONFIG_MDIO_DEVICE=m
-CONFIG_MDIO_BUS=m
-CONFIG_MDIO_BCM_UNIMAC=m
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_CAVIUM=m
-CONFIG_MDIO_GPIO=m
-CONFIG_MDIO_I2C=m
-# CONFIG_MDIO_MSCC_MIIM is not set
-CONFIG_MDIO_THUNDER=m
-CONFIG_PHYLINK=m
-CONFIG_PHYLIB=m
-CONFIG_SWPHY=y
-# CONFIG_LED_TRIGGER_PHY is not set
-
-#
-# MII PHY device drivers
-#
-CONFIG_SFP=m
-# CONFIG_ADIN_PHY is not set
-CONFIG_AMD_PHY=m
-CONFIG_AQUANTIA_PHY=m
-# CONFIG_AX88796B_PHY is not set
-CONFIG_BCM7XXX_PHY=m
-CONFIG_BCM87XX_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_CICADA_PHY=m
-# CONFIG_CORTINA_PHY is not set
-CONFIG_DAVICOM_PHY=m
-CONFIG_DP83822_PHY=m
-# CONFIG_DP83TC811_PHY is not set
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
-# CONFIG_DP83869_PHY is not set
-CONFIG_FIXED_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_INTEL_XWAY_PHY=m
-CONFIG_LSI_ET1011C_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_MARVELL_PHY=m
-# CONFIG_MARVELL_10G_PHY is not set
-CONFIG_MICREL_PHY=m
-CONFIG_MICROCHIP_PHY=m
-# CONFIG_MICROCHIP_T1_PHY is not set
-CONFIG_MICROSEMI_PHY=m
-CONFIG_NATIONAL_PHY=m
-# CONFIG_NXP_TJA11XX_PHY is not set
-CONFIG_AT803X_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_RENESAS_PHY=m
-# CONFIG_ROCKCHIP_PHY is not set
-CONFIG_SMSC_PHY=m
-CONFIG_STE10XP=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_XILINX_GMII2RGMII=m
-CONFIG_MICREL_KS8995MA=m
-CONFIG_PLIP=m
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-
-#
-# Host-side USB support is needed for USB Network Adapter support
-#
-CONFIG_USB_NET_DRIVERS=m
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-CONFIG_USB_LAN78XX=m
-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=m
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_HUAWEI_CDC_NCM=m
-CONFIG_USB_NET_CDC_MBIM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SR9700=m
-CONFIG_USB_NET_SR9800=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_USB_NET_CH9200=m
-CONFIG_USB_NET_AQC111=m
-CONFIG_WLAN=y
-# CONFIG_WLAN_VENDOR_ADMTEK is not set
-CONFIG_ATH_COMMON=m
-CONFIG_WLAN_VENDOR_ATH=y
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH5K=m
-# CONFIG_ATH5K_DEBUG is not set
-CONFIG_ATH5K_PCI=y
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-CONFIG_ATH9K_BTCOEX_SUPPORT=y
-CONFIG_ATH9K=m
-CONFIG_ATH9K_PCI=y
-CONFIG_ATH9K_AHB=y
-# CONFIG_ATH9K_DYNACK is not set
-# CONFIG_ATH9K_WOW is not set
-CONFIG_ATH9K_RFKILL=y
-# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
-CONFIG_ATH9K_PCOEM=y
-# CONFIG_ATH9K_PCI_NO_EEPROM is not set
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HWRNG is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-CONFIG_CARL9170_HWRNG=y
-CONFIG_ATH6KL=m
-CONFIG_ATH6KL_SDIO=m
-CONFIG_ATH6KL_USB=m
-CONFIG_ATH6KL_DEBUG=y
-CONFIG_AR5523=m
-CONFIG_WIL6210=m
-CONFIG_WIL6210_ISR_COR=y
-CONFIG_ATH10K=m
-CONFIG_ATH10K_CE=y
-CONFIG_ATH10K_PCI=m
-# CONFIG_ATH10K_SDIO is not set
-# CONFIG_ATH10K_USB is not set
-# CONFIG_ATH10K_DEBUG is not set
-CONFIG_WCN36XX=m
-# CONFIG_WCN36XX_DEBUGFS is not set
-# CONFIG_WLAN_VENDOR_ATMEL is not set
-CONFIG_WLAN_VENDOR_BROADCOM=y
-CONFIG_B43=m
-CONFIG_B43_BCMA=y
-CONFIG_B43_SSB=y
-CONFIG_B43_BUSES_BCMA_AND_SSB=y
-# CONFIG_B43_BUSES_BCMA is not set
-# CONFIG_B43_BUSES_SSB is not set
-CONFIG_B43_PCI_AUTOSELECT=y
-CONFIG_B43_PCICORE_AUTOSELECT=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_BCMA_PIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_G=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMSMAC=m
-CONFIG_BRCMFMAC=m
-CONFIG_BRCMFMAC_PROTO_BCDC=y
-CONFIG_BRCMFMAC_PROTO_MSGBUF=y
-CONFIG_BRCMFMAC_SDIO=y
-CONFIG_BRCMFMAC_USB=y
-CONFIG_BRCMFMAC_PCIE=y
-# CONFIG_BRCM_TRACING is not set
-# CONFIG_BRCMDBG is not set
-CONFIG_WLAN_VENDOR_CISCO=y
-CONFIG_AIRO=m
-CONFIG_AIRO_CS=m
-CONFIG_WLAN_VENDOR_INTEL=y
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-# end of iwl3945 / iwl4965 Debugging Options
-
-CONFIG_IWLWIFI=m
-CONFIG_IWLWIFI_LEDS=y
-CONFIG_IWLDVM=m
-CONFIG_IWLMVM=m
-CONFIG_IWLWIFI_OPMODE_MODULAR=y
-# CONFIG_IWLWIFI_BCAST_FILTERING is not set
-
-#
-# Debugging Options
-#
-# CONFIG_IWLWIFI_DEBUG is not set
-# end of Debugging Options
-
-CONFIG_WLAN_VENDOR_INTERSIL=y
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-CONFIG_HERMES=m
-# CONFIG_HERMES_PRISM is not set
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_ORINOCO_USB=m
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-CONFIG_PRISM54=m
-CONFIG_WLAN_VENDOR_MARVELL=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_MWL8K=m
-CONFIG_WLAN_VENDOR_MEDIATEK=y
-CONFIG_MT7601U=m
-CONFIG_MT76_CORE=m
-CONFIG_MT76_LEDS=y
-CONFIG_MT76_USB=m
-CONFIG_MT76x02_LIB=m
-CONFIG_MT76x02_USB=m
-CONFIG_MT76x0_COMMON=m
-CONFIG_MT76x0U=m
-# CONFIG_MT76x0E is not set
-CONFIG_MT76x2_COMMON=m
-CONFIG_MT76x2E=m
-CONFIG_MT76x2U=m
-# CONFIG_MT7603E is not set
-# CONFIG_MT7615E is not set
-CONFIG_WLAN_VENDOR_RALINK=y
-CONFIG_RT2X00=m
-CONFIG_RT2400PCI=m
-CONFIG_RT2500PCI=m
-CONFIG_RT61PCI=m
-CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_RT33XX=y
-# CONFIG_RT2800PCI_RT35XX is not set
-CONFIG_RT2800PCI_RT53XX=y
-CONFIG_RT2800PCI_RT3290=y
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-# CONFIG_RT2800USB_RT35XX is not set
-CONFIG_RT2800USB_RT3573=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2800_LIB_MMIO=m
-CONFIG_RT2X00_LIB_MMIO=m
-CONFIG_RT2X00_LIB_PCI=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_WLAN_VENDOR_REALTEK=y
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_RTL_CARDS=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=m
-CONFIG_RTLWIFI_PCI=m
-CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_RTL8192C_COMMON=m
-CONFIG_RTL8723_COMMON=m
-CONFIG_RTLBTCOEXIST=m
-CONFIG_RTL8XXXU=m
-# CONFIG_RTL8XXXU_UNTESTED is not set
-# CONFIG_RTW88 is not set
-CONFIG_WLAN_VENDOR_RSI=y
-CONFIG_RSI_91X=m
-CONFIG_RSI_DEBUGFS=y
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
-CONFIG_RSI_COEX=y
-CONFIG_WLAN_VENDOR_ST=y
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_WLAN_VENDOR_TI=y
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX=m
-CONFIG_WL18XX=m
-CONFIG_WLCORE=m
-CONFIG_WLCORE_SDIO=m
-CONFIG_WILINK_PLATFORM_DATA=y
-CONFIG_WLAN_VENDOR_ZYDAS=y
-CONFIG_USB_ZD1201=m
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_WLAN_VENDOR_QUANTENNA=y
-# CONFIG_QTNFMAC_PCIE is not set
-CONFIG_PCMCIA_RAYCS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_MAC80211_HWSIM=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_VIRT_WIFI=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# end of WiMAX Wireless Broadband devices
-
-# CONFIG_WAN is not set
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKELB=m
-# CONFIG_IEEE802154_AT86RF230 is not set
-# CONFIG_IEEE802154_MRF24J40 is not set
-CONFIG_IEEE802154_CC2520=m
-CONFIG_IEEE802154_ATUSB=m
-CONFIG_IEEE802154_ADF7242=m
-# CONFIG_IEEE802154_CA8210 is not set
-CONFIG_IEEE802154_MCR20A=m
-# CONFIG_IEEE802154_HWSIM is not set
-CONFIG_XEN_NETDEV_FRONTEND=m
-CONFIG_XEN_NETDEV_BACKEND=m
-CONFIG_VMXNET3=m
-CONFIG_FUJITSU_ES=m
-CONFIG_USB4_NET=m
-CONFIG_HYPERV_NET=m
-CONFIG_NET_FAILOVER=m
-CONFIG_ISDN=y
-CONFIG_ISDN_CAPI=y
-CONFIG_CAPI_TRACE=y
-CONFIG_ISDN_CAPI_MIDDLEWARE=y
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-# CONFIG_MISDN_SPEEDFAX is not set
-# CONFIG_MISDN_INFINEON is not set
-# CONFIG_MISDN_W6692 is not set
-# CONFIG_MISDN_NETJET is not set
-CONFIG_MISDN_IPAC=m
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=m
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-# CONFIG_INPUT_MATRIXKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_EVBUG=m
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADC is not set
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_APPLESPI=m
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1050 is not set
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_DLINK_DIR685 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_GPIO is not set
-CONFIG_KEYBOARD_GPIO_POLLED=m
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_TCA8418 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_LM8333 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_SAMSUNG is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_CROS_EC is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_BYD=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
-CONFIG_MOUSE_PS2_CYPRESS=y
-CONFIG_MOUSE_PS2_LIFEBOOK=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-CONFIG_MOUSE_PS2_FOCALTECH=y
-CONFIG_MOUSE_PS2_VMMOUSE=y
-CONFIG_MOUSE_PS2_SMBUS=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_CYAPA=m
-CONFIG_MOUSE_ELAN_I2C=m
-CONFIG_MOUSE_ELAN_I2C_I2C=y
-CONFIG_MOUSE_ELAN_I2C_SMBUS=y
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_MOUSE_SYNAPTICS_USB=m
-CONFIG_INPUT_JOYSTICK=y
-# CONFIG_JOYSTICK_ANALOG is not set
-# CONFIG_JOYSTICK_A3D is not set
-# CONFIG_JOYSTICK_ADI is not set
-# CONFIG_JOYSTICK_COBRA is not set
-# CONFIG_JOYSTICK_GF2K is not set
-# CONFIG_JOYSTICK_GRIP is not set
-# CONFIG_JOYSTICK_GRIP_MP is not set
-# CONFIG_JOYSTICK_GUILLEMOT is not set
-# CONFIG_JOYSTICK_INTERACT is not set
-# CONFIG_JOYSTICK_SIDEWINDER is not set
-# CONFIG_JOYSTICK_TMDC is not set
-# CONFIG_JOYSTICK_IFORCE is not set
-# CONFIG_JOYSTICK_WARRIOR is not set
-# CONFIG_JOYSTICK_MAGELLAN is not set
-# CONFIG_JOYSTICK_SPACEORB is not set
-# CONFIG_JOYSTICK_SPACEBALL is not set
-# CONFIG_JOYSTICK_STINGER is not set
-# CONFIG_JOYSTICK_TWIDJOY is not set
-# CONFIG_JOYSTICK_ZHENHUA is not set
-# CONFIG_JOYSTICK_DB9 is not set
-# CONFIG_JOYSTICK_GAMECON is not set
-# CONFIG_JOYSTICK_TURBOGRAFX is not set
-# CONFIG_JOYSTICK_AS5011 is not set
-# CONFIG_JOYSTICK_JOYDUMP is not set
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-# CONFIG_JOYSTICK_WALKERA0701 is not set
-# CONFIG_JOYSTICK_PSXPAD_SPI is not set
-# CONFIG_JOYSTICK_PXRC is not set
-# CONFIG_JOYSTICK_FSIA6B is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_PROPERTIES=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-# CONFIG_TOUCHSCREEN_ADC is not set
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
-# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
-CONFIG_TOUCHSCREEN_BU21013=m
-# CONFIG_TOUCHSCREEN_BU21029 is not set
-CONFIG_TOUCHSCREEN_CHIPONE_ICN8505=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
-# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GOODIX=m
-# CONFIG_TOUCHSCREEN_HIDEEP is not set
-# CONFIG_TOUCHSCREEN_ILI210X is not set
-# CONFIG_TOUCHSCREEN_S6SY761 is not set
-CONFIG_TOUCHSCREEN_GUNZE=m
-# CONFIG_TOUCHSCREEN_EKTF2127 is not set
-CONFIG_TOUCHSCREEN_ELAN=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MMS114 is not set
-# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
-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
-CONFIG_TOUCHSCREEN_WM9705=y
-CONFIG_TOUCHSCREEN_WM9712=y
-CONFIG_TOUCHSCREEN_WM9713=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_ELO=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC200X_CORE=m
-CONFIG_TOUCHSCREEN_TSC2004=m
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
-CONFIG_TOUCHSCREEN_RM_TS=m
-CONFIG_TOUCHSCREEN_SILEAD=m
-CONFIG_TOUCHSCREEN_SIS_I2C=m
-CONFIG_TOUCHSCREEN_ST1232=m
-# CONFIG_TOUCHSCREEN_STMFTS is not set
-# CONFIG_TOUCHSCREEN_SUR40 is not set
-CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
-# CONFIG_TOUCHSCREEN_SX8654 is not set
-CONFIG_TOUCHSCREEN_TPS6507X=m
-# CONFIG_TOUCHSCREEN_ZET6223 is not set
-CONFIG_TOUCHSCREEN_ZFORCE=m
-CONFIG_TOUCHSCREEN_ROHM_BU21023=m
-# CONFIG_TOUCHSCREEN_IQS5XX is not set
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-# CONFIG_INPUT_BMA150 is not set
-CONFIG_INPUT_E3X0_BUTTON=m
-# CONFIG_INPUT_MSM_VIBRATOR is not set
-CONFIG_INPUT_PCSPKR=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_APANEL=m
-# CONFIG_INPUT_GP2A is not set
-# CONFIG_INPUT_GPIO_BEEPER is not set
-# CONFIG_INPUT_GPIO_DECODER is not set
-# CONFIG_INPUT_GPIO_VIBRA is not set
-CONFIG_INPUT_ATLAS_BTNS=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_REGULATOR_HAPTIC=m
-CONFIG_INPUT_UINPUT=m
-CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_PCF8574=m
-# CONFIG_INPUT_PWM_BEEPER is not set
-# CONFIG_INPUT_PWM_VIBRA is not set
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-# CONFIG_INPUT_IMS_PCU is not set
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
-CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
-# CONFIG_INPUT_DRV260X_HAPTICS is not set
-CONFIG_INPUT_DRV2665_HAPTICS=m
-# CONFIG_INPUT_DRV2667_HAPTICS is not set
-CONFIG_RMI4_CORE=m
-CONFIG_RMI4_I2C=m
-CONFIG_RMI4_SPI=m
-# CONFIG_RMI4_SMB is not set
-CONFIG_RMI4_F03=y
-CONFIG_RMI4_F03_SERIO=m
-CONFIG_RMI4_2D_SENSOR=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F12=y
-CONFIG_RMI4_F30=y
-# CONFIG_RMI4_F34 is not set
-# CONFIG_RMI4_F54 is not set
-# CONFIG_RMI4_F55 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_CT82C710=m
-CONFIG_SERIO_PARKBD=m
-CONFIG_SERIO_PCIPS2=m
-CONFIG_SERIO_LIBPS2=y
-CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-# CONFIG_SERIO_ARC_PS2 is not set
-CONFIG_HYPERV_KEYBOARD=m
-# CONFIG_SERIO_GPIO_PS2 is not set
-# CONFIG_USERIO 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=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-CONFIG_ROCKETPORT=m
-CONFIG_CYCLADES=m
-# CONFIG_CYZ_INTR is not set
-CONFIG_MOXA_INTELLIO=m
-CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK=m
-CONFIG_SYNCLINKMP=m
-CONFIG_SYNCLINK_GT=m
-CONFIG_NOZOMI=m
-CONFIG_ISI=m
-CONFIG_N_HDLC=m
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_NULL_TTY is not set
-# CONFIG_LDISC_AUTOLOAD is not set
-CONFIG_DEVMEM=y
-# CONFIG_DEVKMEM is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_PNP=y
-# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_DMA=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_EXAR=y
-CONFIG_SERIAL_8250_CS=m
-CONFIG_SERIAL_8250_NR_UARTS=16
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-# CONFIG_SERIAL_8250_DETECT_IRQ is not set
-CONFIG_SERIAL_8250_RSA=y
-CONFIG_SERIAL_8250_DWLIB=y
-# CONFIG_SERIAL_8250_DW is not set
-# CONFIG_SERIAL_8250_RT288X is not set
-CONFIG_SERIAL_8250_LPSS=m
-CONFIG_SERIAL_8250_MID=m
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_MAX3100=m
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_JSM=m
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-CONFIG_SERIAL_ALTERA_JTAGUART=m
-CONFIG_SERIAL_ALTERA_UART=m
-CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
-CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
-CONFIG_SERIAL_IFX6X60=m
-CONFIG_SERIAL_ARC=m
-CONFIG_SERIAL_ARC_NR_PORTS=1
-# CONFIG_SERIAL_RP2 is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_FSL_LINFLEXUART is not set
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SERIAL_DEV_BUS is not set
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-CONFIG_PPDEV=m
-CONFIG_HVC_DRIVER=y
-CONFIG_HVC_IRQ=y
-CONFIG_HVC_XEN=y
-CONFIG_HVC_XEN_FRONTEND=y
-CONFIG_VIRTIO_CONSOLE=m
-CONFIG_IPMI_HANDLER=m
-CONFIG_IPMI_DMI_DECODE=y
-CONFIG_IPMI_PLAT_DATA=y
-# CONFIG_IPMI_PANIC_EVENT is not set
-CONFIG_IPMI_DEVICE_INTERFACE=m
-CONFIG_IPMI_SI=m
-CONFIG_IPMI_SSIF=m
-CONFIG_IPMI_WATCHDOG=m
-CONFIG_IPMI_POWEROFF=m
-# CONFIG_IPMB_DEVICE_INTERFACE is not set
-CONFIG_HW_RANDOM=m
-CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_INTEL=m
-CONFIG_HW_RANDOM_AMD=m
-CONFIG_HW_RANDOM_VIA=m
-CONFIG_HW_RANDOM_VIRTIO=m
-CONFIG_NVRAM=m
-CONFIG_APPLICOM=m
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-# CONFIG_SCR24X is not set
-CONFIG_IPWIRELESS=m
-# end of PCMCIA character devices
-
-CONFIG_MWAVE=m
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-CONFIG_HPET=y
-# CONFIG_HPET_MMAP is not set
-CONFIG_HANGCHECK_TIMER=m
-CONFIG_TCG_TPM=m
-CONFIG_HW_RANDOM_TPM=y
-CONFIG_TCG_TIS_CORE=m
-CONFIG_TCG_TIS=m
-# CONFIG_TCG_TIS_SPI is not set
-# CONFIG_TCG_TIS_I2C_ATMEL is not set
-# CONFIG_TCG_TIS_I2C_INFINEON is not set
-# CONFIG_TCG_TIS_I2C_NUVOTON is not set
-CONFIG_TCG_NSC=m
-CONFIG_TCG_ATMEL=m
-CONFIG_TCG_INFINEON=m
-CONFIG_TCG_XEN=m
-CONFIG_TCG_CRB=m
-# CONFIG_TCG_VTPM_PROXY is not set
-# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
-# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
-CONFIG_TELCLOCK=m
-CONFIG_DEVPORT=y
-# CONFIG_XILLYBUS is not set
-# end of Character devices
-
-CONFIG_RANDOM_TRUST_CPU=y
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_MUX_GPIO=m
-# CONFIG_I2C_MUX_LTC4306 is not set
-CONFIG_I2C_MUX_PCA9541=m
-CONFIG_I2C_MUX_PCA954x=m
-# CONFIG_I2C_MUX_REG is not set
-# CONFIG_I2C_MUX_MLXCPLD is not set
-# end of Multiplexer I2C Chip support
-
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=m
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD756_S4882=m
-CONFIG_I2C_AMD8111=m
-# CONFIG_I2C_AMD_MP2 is not set
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_ISMT=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_NFORCE2_S4985=m
-# CONFIG_I2C_NVIDIA_GPU is not set
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
-#
-# ACPI drivers
-#
-CONFIG_I2C_SCMI=m
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_CBUS_GPIO is not set
-CONFIG_I2C_DESIGNWARE_CORE=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
-# CONFIG_I2C_DESIGNWARE_SLAVE is not set
-CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
-# CONFIG_I2C_EMEV2 is not set
-CONFIG_I2C_GPIO=m
-# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
-CONFIG_I2C_OCORES=m
-CONFIG_I2C_PCA_PLATFORM=m
-CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_XILINX=m
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_PARPORT=m
-# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_MLXCPLD is not set
-# CONFIG_I2C_CROS_EC_TUNNEL is not set
-# end of I2C Hardware Bus support
-
-CONFIG_I2C_STUB=m
-CONFIG_I2C_SLAVE=y
-CONFIG_I2C_SLAVE_EEPROM=m
-# 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_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=m
-CONFIG_SPI_BUTTERFLY=m
-# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_DESIGNWARE=m
-CONFIG_SPI_DW_PCI=m
-# CONFIG_SPI_DW_MID_DMA is not set
-# CONFIG_SPI_DW_MMIO is not set
-# CONFIG_SPI_NXP_FLEXSPI is not set
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_PXA2XX=m
-CONFIG_SPI_PXA2XX_PCI=m
-# 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=m
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_LOOPBACK_TEST is not set
-CONFIG_SPI_TLE62X0=m
-# CONFIG_SPI_SLAVE is not set
-# CONFIG_SPMI is not set
-# CONFIG_HSI is not set
-CONFIG_PPS=y
-# CONFIG_PPS_DEBUG is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-CONFIG_PPS_CLIENT_LDISC=m
-# CONFIG_PPS_CLIENT_PARPORT is not set
-# CONFIG_PPS_CLIENT_GPIO is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=y
-CONFIG_DP83640_PHY=m
-# CONFIG_PTP_1588_CLOCK_INES is not set
-CONFIG_PTP_1588_CLOCK_KVM=m
-# CONFIG_PTP_1588_CLOCK_IDTCM is not set
-# end of PTP clock support
-
-CONFIG_PINCTRL=y
-CONFIG_PINMUX=y
-CONFIG_PINCONF=y
-CONFIG_GENERIC_PINCONF=y
-CONFIG_PINCTRL_AMD=y
-# CONFIG_PINCTRL_MCP23S08 is not set
-CONFIG_PINCTRL_BAYTRAIL=y
-CONFIG_PINCTRL_CHERRYVIEW=m
-# CONFIG_PINCTRL_LYNXPOINT is not set
-CONFIG_PINCTRL_INTEL=m
-# CONFIG_PINCTRL_BROXTON is not set
-# CONFIG_PINCTRL_CANNONLAKE is not set
-CONFIG_PINCTRL_CEDARFORK=m
-# CONFIG_PINCTRL_DENVERTON is not set
-# CONFIG_PINCTRL_GEMINILAKE is not set
-CONFIG_PINCTRL_ICELAKE=m
-# CONFIG_PINCTRL_LEWISBURG is not set
-CONFIG_PINCTRL_SUNRISEPOINT=m
-# CONFIG_PINCTRL_TIGERLAKE is not set
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_GPIO_ACPI=y
-CONFIG_GPIOLIB_IRQCHIP=y
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_AMDPT is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_EXAR is not set
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-CONFIG_GPIO_ICH=m
-# CONFIG_GPIO_MB86S7X is not set
-CONFIG_GPIO_VX855=m
-# CONFIG_GPIO_XILINX is not set
-CONFIG_GPIO_AMD_FCH=m
-# end of Memory mapped GPIO drivers
-
-#
-# Port-mapped I/O GPIO drivers
-#
-# CONFIG_GPIO_F7188X is not set
-# CONFIG_GPIO_IT87 is not set
-CONFIG_GPIO_SCH=m
-# CONFIG_GPIO_SCH311X is not set
-CONFIG_GPIO_WINBOND=m
-CONFIG_GPIO_WS16C48=m
-# end of Port-mapped I/O GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-CONFIG_GPIO_ADP5588=m
-CONFIG_GPIO_MAX7300=m
-CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
-CONFIG_GPIO_PCF857X=m
-# CONFIG_GPIO_TPIC2810 is not set
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-CONFIG_GPIO_JANZ_TTL=m
-CONFIG_GPIO_UCB1400=m
-# end of MFD GPIO expanders
-
-#
-# PCI GPIO expanders
-#
-CONFIG_GPIO_AMD8111=m
-CONFIG_GPIO_BT8XX=m
-CONFIG_GPIO_ML_IOH=m
-# CONFIG_GPIO_PCI_IDIO_16 is not set
-# CONFIG_GPIO_PCIE_IDIO_24 is not set
-CONFIG_GPIO_RDC321X=m
-# end of PCI GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-# CONFIG_GPIO_MAX3191X is not set
-CONFIG_GPIO_MAX7301=m
-# 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=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_GENERIC_ADC_BATTERY=m
-# CONFIG_TEST_POWER is not set
-# CONFIG_CHARGER_ADP5061 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-# CONFIG_CHARGER_SBS is not set
-# CONFIG_MANAGER_SBS is not set
-# CONFIG_BATTERY_BQ27XXX is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_PCF50633 is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_LP8727 is not set
-# CONFIG_CHARGER_GPIO is not set
-# CONFIG_CHARGER_MANAGER is not set
-# CONFIG_CHARGER_LT3651 is not set
-# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
-# CONFIG_CHARGER_BQ24257 is not set
-# CONFIG_CHARGER_BQ24735 is not set
-# CONFIG_CHARGER_BQ25890 is not set
-# CONFIG_CHARGER_SMB347 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
-# CONFIG_CHARGER_RT9455 is not set
-# CONFIG_CHARGER_CROS_USBPD is not set
-CONFIG_HWMON=m
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-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
-CONFIG_SENSORS_ADM1031=m
-# CONFIG_SENSORS_ADM1177 is not set
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
-CONFIG_SENSORS_ADT7410=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-# CONFIG_SENSORS_AS370 is not set
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_K8TEMP=m
-CONFIG_SENSORS_K10TEMP=m
-CONFIG_SENSORS_FAM15H_POWER=m
-CONFIG_SENSORS_APPLESMC=m
-CONFIG_SENSORS_ASB100=m
-# CONFIG_SENSORS_ASPEED is not set
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DRIVETEMP=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_DELL_SMM=m
-CONFIG_SENSORS_I5K_AMB=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_FSCHMD=m
-CONFIG_SENSORS_FTSTEUTATES=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_G762=m
-# CONFIG_SENSORS_HIH6130 is not set
-CONFIG_SENSORS_IBMAEM=m
-CONFIG_SENSORS_IBMPEX=m
-# CONFIG_SENSORS_IIO_HWMON is not set
-CONFIG_SENSORS_I5500=m
-CONFIG_SENSORS_CORETEMP=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_POWR1220=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LTC2945=m
-# CONFIG_SENSORS_LTC2947_I2C is not set
-# CONFIG_SENSORS_LTC2947_SPI is not set
-CONFIG_SENSORS_LTC2990=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4222=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4260=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX31722=m
-# CONFIG_SENSORS_MAX31730 is not set
-# CONFIG_SENSORS_MAX6621 is not set
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_MAX6697=m
-CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_MCP3021=m
-CONFIG_SENSORS_MLXREG_FAN=m
-# CONFIG_SENSORS_TC654 is not set
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LM95234=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_NCT6683=m
-CONFIG_SENSORS_NCT6775=m
-CONFIG_SENSORS_NCT7802=m
-CONFIG_SENSORS_NCT7904=m
-CONFIG_SENSORS_NPCM7XX=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-CONFIG_SENSORS_ADM1275=m
-# CONFIG_SENSORS_BEL_PFE is not set
-# CONFIG_SENSORS_IBM_CFFPS is not set
-# CONFIG_SENSORS_INSPUR_IPSPS is not set
-# CONFIG_SENSORS_IR35221 is not set
-# CONFIG_SENSORS_IR38064 is not set
-# CONFIG_SENSORS_IRPS5401 is not set
-# CONFIG_SENSORS_ISL68137 is not set
-CONFIG_SENSORS_LM25066=m
-CONFIG_SENSORS_LTC2978=m
-# CONFIG_SENSORS_LTC2978_REGULATOR is not set
-CONFIG_SENSORS_LTC3815=m
-CONFIG_SENSORS_MAX16064=m
-# CONFIG_SENSORS_MAX20730 is not set
-CONFIG_SENSORS_MAX20751=m
-# CONFIG_SENSORS_MAX31785 is not set
-CONFIG_SENSORS_MAX34440=m
-CONFIG_SENSORS_MAX8688=m
-# CONFIG_SENSORS_PXE1610 is not set
-CONFIG_SENSORS_TPS40422=m
-# CONFIG_SENSORS_TPS53679 is not set
-CONFIG_SENSORS_UCD9000=m
-CONFIG_SENSORS_UCD9200=m
-# CONFIG_SENSORS_XDPE122 is not set
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SHT3x=m
-CONFIG_SENSORS_SHTC1=m
-CONFIG_SENSORS_SIS5595=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-# CONFIG_SENSORS_STTS751 is not set
-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_INA2XX is not set
-CONFIG_SENSORS_INA3221=m
-# CONFIG_SENSORS_TC74 is not set
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP103=m
-# CONFIG_SENSORS_TMP108 is not set
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-# CONFIG_SENSORS_TMP513 is not set
-CONFIG_SENSORS_VIA_CPUTEMP=m
-CONFIG_SENSORS_VIA686A=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
-CONFIG_SENSORS_W83773G=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-CONFIG_SENSORS_W83795_FANCTRL=y
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-# CONFIG_SENSORS_XGENE is not set
-
-#
-# ACPI drivers
-#
-CONFIG_SENSORS_ACPI_POWER=m
-CONFIG_SENSORS_ATK0110=m
-CONFIG_THERMAL=y
-CONFIG_THERMAL_STATISTICS=y
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_WRITABLE_TRIPS=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
-# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
-CONFIG_THERMAL_GOV_FAIR_SHARE=y
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_GOV_BANG_BANG=y
-CONFIG_THERMAL_GOV_USER_SPACE=y
-# CONFIG_CLOCK_THERMAL is not set
-# CONFIG_DEVFREQ_THERMAL is not set
-# CONFIG_THERMAL_EMULATION is not set
-
-#
-# Intel thermal drivers
-#
-CONFIG_INTEL_POWERCLAMP=m
-CONFIG_X86_PKG_TEMP_THERMAL=m
-CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
-CONFIG_INTEL_SOC_DTS_THERMAL=m
-
-#
-# ACPI INT340X thermal drivers
-#
-CONFIG_INT340X_THERMAL=m
-CONFIG_ACPI_THERMAL_REL=m
-CONFIG_INT3406_THERMAL=m
-# end of ACPI INT340X thermal drivers
-
-CONFIG_INTEL_PCH_THERMAL=m
-# end of Intel thermal drivers
-
-CONFIG_GENERIC_ADC_THERMAL=m
-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=y
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-CONFIG_SOFT_WATCHDOG=m
-CONFIG_WDAT_WDT=m
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_ZIIRAVE_WATCHDOG is not set
-# CONFIG_MLX_WDT is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_MAX63XX_WATCHDOG=m
-CONFIG_ACQUIRE_WDT=m
-CONFIG_ADVANTECH_WDT=m
-CONFIG_ALIM1535_WDT=m
-CONFIG_ALIM7101_WDT=m
-CONFIG_EBC_C384_WDT=m
-CONFIG_F71808E_WDT=m
-CONFIG_SP5100_TCO=m
-# CONFIG_SBC_FITPC2_WATCHDOG is not set
-CONFIG_EUROTECH_WDT=m
-CONFIG_IB700_WDT=m
-CONFIG_IBMASR=m
-CONFIG_WAFER_WDT=m
-CONFIG_I6300ESB_WDT=m
-CONFIG_IE6XX_WDT=m
-CONFIG_ITCO_WDT=m
-CONFIG_ITCO_VENDOR_SUPPORT=y
-CONFIG_IT8712F_WDT=m
-CONFIG_IT87_WDT=m
-# CONFIG_HP_WATCHDOG is not set
-CONFIG_SC1200_WDT=m
-CONFIG_PC87413_WDT=m
-CONFIG_NV_TCO=m
-CONFIG_60XX_WDT=m
-CONFIG_CPU5_WDT=m
-CONFIG_SMSC_SCH311X_WDT=m
-CONFIG_SMSC37B787_WDT=m
-# CONFIG_TQMX86_WDT is not set
-CONFIG_VIA_WDT=m
-CONFIG_W83627HF_WDT=m
-CONFIG_W83877F_WDT=m
-CONFIG_W83977F_WDT=m
-CONFIG_MACHZ_WDT=m
-CONFIG_SBC_EPX_C3_WATCHDOG=m
-CONFIG_INTEL_MEI_WDT=m
-# CONFIG_NI903X_WDT is not set
-# CONFIG_NIC7018_WDT is not set
-# CONFIG_MEN_A21_WDT is not set
-CONFIG_XEN_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-CONFIG_SSB_PCMCIAHOST=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
-# CONFIG_SSB_DRIVER_GPIO is not set
-CONFIG_BCMA_POSSIBLE=y
-CONFIG_BCMA=m
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCMA_HOST_PCI_POSSIBLE=y
-CONFIG_BCMA_HOST_PCI=y
-# CONFIG_BCMA_HOST_SOC is not set
-CONFIG_BCMA_DRIVER_PCI=y
-CONFIG_BCMA_DRIVER_GMAC_CMN=y
-CONFIG_BCMA_DRIVER_GPIO=y
-# CONFIG_BCMA_DEBUG is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=m
-# CONFIG_MFD_BCM590XX is not set
-# CONFIG_MFD_BD9571MWV is not set
-# CONFIG_MFD_AXP20X_I2C is not set
-CONFIG_MFD_CROS_EC_DEV=m
-# CONFIG_MFD_MADERA is not set
-# CONFIG_MFD_DA9052_SPI 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_HTC_PASIC3=m
-# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
-CONFIG_LPC_ICH=m
-CONFIG_LPC_SCH=m
-CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
-CONFIG_MFD_INTEL_LPSS=m
-CONFIG_MFD_INTEL_LPSS_ACPI=m
-CONFIG_MFD_INTEL_LPSS_PCI=m
-CONFIG_MFD_JANZ_CMODIO=m
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_VIPERBOARD is not set
-# CONFIG_MFD_RETU is not set
-CONFIG_MFD_PCF50633=m
-CONFIG_PCF50633_ADC=m
-CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-CONFIG_MFD_RDC321X=m
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_SI476X_CORE is not set
-CONFIG_MFD_SM501=m
-# CONFIG_MFD_SM501_GPIO is not set
-# CONFIG_MFD_SKY81452 is not set
-CONFIG_ABX500_CORE=y
-# CONFIG_MFD_SYSCON is not set
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_TI_LMU is not set
-# CONFIG_TPS6105X is not set
-CONFIG_TPS65010=m
-CONFIG_TPS6507X=m
-# CONFIG_MFD_TPS65086 is not set
-# CONFIG_MFD_TI_LP873X is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-CONFIG_MFD_WL1273_CORE=m
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TQMX86 is not set
-CONFIG_MFD_VX855=m
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8994 is not set
-# end of Multifunction device drivers
-
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_88PG86X is not set
-# CONFIG_REGULATOR_ACT8865 is not set
-# CONFIG_REGULATOR_AD5398 is not set
-# CONFIG_REGULATOR_DA9210 is not set
-# CONFIG_REGULATOR_DA9211 is not set
-# CONFIG_REGULATOR_FAN53555 is not set
-# CONFIG_REGULATOR_GPIO is not set
-# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_LP872X is not set
-# CONFIG_REGULATOR_LP8755 is not set
-# CONFIG_REGULATOR_LTC3589 is not set
-# CONFIG_REGULATOR_LTC3676 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_MP8859 is not set
-# CONFIG_REGULATOR_MT6311 is not set
-# CONFIG_REGULATOR_PCF50633 is not set
-# CONFIG_REGULATOR_PFUZE100 is not set
-# CONFIG_REGULATOR_PV88060 is not set
-# CONFIG_REGULATOR_PV88080 is not set
-# CONFIG_REGULATOR_PV88090 is not set
-# CONFIG_REGULATOR_PWM is not set
-# CONFIG_REGULATOR_SLG51000 is not set
-# CONFIG_REGULATOR_TPS51632 is not set
-# CONFIG_REGULATOR_TPS62360 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-# CONFIG_REGULATOR_TPS65132 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_CEC_CORE=m
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-# CONFIG_LIRC is not set
-CONFIG_RC_DECODERS=y
-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_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
-# CONFIG_IR_RCMM_DECODER is not set
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_ENE=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_NUVOTON=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-# CONFIG_IR_SERIAL is not set
-# CONFIG_IR_SIR is not set
-# CONFIG_RC_XBOX_DVD is not set
-CONFIG_MEDIA_SUPPORT=m
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CAMERA_SUPPORT=y
-CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
-CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
-# CONFIG_MEDIA_RADIO_SUPPORT is not set
-# CONFIG_MEDIA_SDR_SUPPORT is not set
-# CONFIG_MEDIA_CEC_SUPPORT is not set
-# CONFIG_MEDIA_CEC_RC is not set
-CONFIG_MEDIA_CONTROLLER=y
-# CONFIG_MEDIA_CONTROLLER_DVB is not set
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L2_I2C=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_FLASH_LED_CLASS=m
-CONFIG_V4L2_FWNODE=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_DVB_CORE=m
-# CONFIG_DVB_MMAP is not set
-CONFIG_DVB_NET=y
-CONFIG_TTPCI_EEPROM=m
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
-# CONFIG_DVB_ULE_DEBUG is not set
-
-#
-# Media drivers
-#
-CONFIG_MEDIA_USB_SUPPORT=y
-
-#
-# Webcam devices
-#
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-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
-CONFIG_USB_GSPCA_DTCS033=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_JL2005BCD=m
-CONFIG_USB_GSPCA_KINECT=m
-# CONFIG_USB_GSPCA_KONICA is not set
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-# CONFIG_USB_GSPCA_SPCA1528 is not set
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STK1135=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TOUPTEK=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
-CONFIG_USB_GSPCA_ZC3XX=m
-# CONFIG_USB_PWC is not set
-# CONFIG_VIDEO_CPIA2 is not set
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_VIDEO_USBTV=m
-
-#
-# Analog TV USB devices
-#
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_HDPVR is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_VIDEO_STK1160_COMMON is not set
-# CONFIG_VIDEO_GO7007 is not set
-
-#
-# Analog/digital TV USB devices
-#
-# CONFIG_VIDEO_AU0828 is not set
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-
-#
-# Digital TV USB devices
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_DIB3000MC=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-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_CXUSB_ANALOG is not set
-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_USB_V2=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_AF9035=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_AZ6007=m
-CONFIG_DVB_USB_CE6230=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_ZD1301 is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-# CONFIG_SMS_USB_DRV is not set
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
-# CONFIG_DVB_AS102 is not set
-
-#
-# Webcam, TV (analog/digital) USB devices
-#
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_V4L2=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-# CONFIG_VIDEO_EM28XX_DVB is not set
-CONFIG_VIDEO_EM28XX_RC=m
-CONFIG_MEDIA_PCI_SUPPORT=y
-
-#
-# Media capture support
-#
-CONFIG_VIDEO_MEYE=m
-CONFIG_VIDEO_SOLO6X10=m
-# CONFIG_VIDEO_TW5864 is not set
-# CONFIG_VIDEO_TW68 is not set
-CONFIG_VIDEO_TW686X=m
-
-#
-# Media capture/analog TV support
-#
-# CONFIG_VIDEO_IVTV is not set
-# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-# CONFIG_VIDEO_HEXIUM_ORION is not set
-# CONFIG_VIDEO_MXB is not set
-# CONFIG_VIDEO_DT3155 is not set
-
-#
-# Media capture/analog/hybrid TV support
-#
-CONFIG_VIDEO_CX18=m
-CONFIG_VIDEO_CX18_ALSA=m
-CONFIG_VIDEO_CX23885=m
-CONFIG_MEDIA_ALTERA_CI=m
-CONFIG_VIDEO_CX25821=m
-CONFIG_VIDEO_CX25821_ALSA=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_CX88_ALSA=m
-CONFIG_VIDEO_CX88_BLACKBIRD=m
-CONFIG_VIDEO_CX88_DVB=m
-CONFIG_VIDEO_CX88_ENABLE_VP3054=y
-CONFIG_VIDEO_CX88_VP3054=m
-CONFIG_VIDEO_CX88_MPEG=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_SAA7134_ALSA=m
-CONFIG_VIDEO_SAA7134_RC=y
-CONFIG_VIDEO_SAA7134_DVB=m
-CONFIG_VIDEO_SAA7164=m
-# CONFIG_VIDEO_COBALT is not set
-
-#
-# Media digital TV PCI Adapters
-#
-CONFIG_DVB_AV7110_IR=y
-CONFIG_DVB_AV7110=m
-CONFIG_DVB_AV7110_OSD=y
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
-CONFIG_DVB_BUDGET_PATCH=m
-CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set
-CONFIG_DVB_PLUTO2=m
-CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
-# CONFIG_DVB_PT3 is not set
-CONFIG_MANTIS_CORE=m
-CONFIG_DVB_MANTIS=m
-CONFIG_DVB_HOPPER=m
-CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
-# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
-CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
-CONFIG_VIDEO_IPU3_CIO2=m
-# CONFIG_V4L_PLATFORM_DRIVERS is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
-# CONFIG_VIDEO_SH_VEU is not set
-# CONFIG_V4L_TEST_DRIVERS is not set
-# CONFIG_DVB_PLATFORM_DRIVERS is not set
-
-#
-# Supported MMC/SDIO adapters
-#
-# CONFIG_SMS_SDIO_DRV is not set
-
-#
-# Supported FireWire (IEEE 1394) Adapters
-#
-CONFIG_DVB_FIREDTV=m
-CONFIG_DVB_FIREDTV_INPUT=y
-CONFIG_VIDEO_CX2341X=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_CYPRESS_FIRMWARE=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_V4L2=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_DMA_CONTIG=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEOBUF2_DMA_SG=m
-CONFIG_VIDEOBUF2_DVB=m
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-
-#
-# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
-#
-CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
-CONFIG_MEDIA_ATTACH=y
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# I2C drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS3308=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_WM8775=m
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_TVP5150=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_CX25840=m
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV2640=m
-CONFIG_VIDEO_MT9V011=m
-
-#
-# Lens drivers
-#
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Audio/Video compression chips
-#
-CONFIG_VIDEO_SAA6752HS=m
-
-#
-# SDR tuner chips
-#
-
-#
-# Miscellaneous helper chips
-#
-
-#
-# SPI drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Media SPI Adapters
-#
-CONFIG_CXD2880_SPI_DRV=m
-# end of Media SPI Adapters
-
-CONFIG_MEDIA_TUNER=m
-
-#
-# Tuner drivers hidden by 'Autoselect ancillary drivers'
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA18250=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_FC0011=m
-CONFIG_MEDIA_TUNER_FC0012=m
-CONFIG_MEDIA_TUNER_FC0013=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_MEDIA_TUNER_E4000=m
-CONFIG_MEDIA_TUNER_FC2580=m
-CONFIG_MEDIA_TUNER_M88RS6000T=m
-CONFIG_MEDIA_TUNER_TUA9001=m
-CONFIG_MEDIA_TUNER_SI2157=m
-CONFIG_MEDIA_TUNER_IT913X=m
-CONFIG_MEDIA_TUNER_R820T=m
-CONFIG_MEDIA_TUNER_QM1D1B0004=m
-
-#
-# DVB Frontend drivers hidden by 'Autoselect ancillary drivers'
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV0910=m
-CONFIG_DVB_STV6110x=m
-CONFIG_DVB_STV6111=m
-CONFIG_DVB_MXL5XX=m
-CONFIG_DVB_M88DS3103=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-CONFIG_DVB_SI2165=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_CX24117=m
-CONFIG_DVB_CX24120=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_TS2020=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-CONFIG_DVB_CXD2841ER=m
-CONFIG_DVB_RTL2830=m
-CONFIG_DVB_RTL2832=m
-CONFIG_DVB_SI2168=m
-CONFIG_DVB_GP8PSK_FE=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_LGDT3306A=m
-CONFIG_DVB_LG2160=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# ISDB-S (satellite) & ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_TC90522=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBH25=m
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_M88RS2000=m
-CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
-
-#
-# Common Interface (EN50221) controller drivers
-#
-CONFIG_DVB_CXD2099=m
-CONFIG_DVB_SP2=m
-
-#
-# Tools to develop new frontends
-#
-CONFIG_DVB_DUMMY_FE=m
-
-#
-# Graphics support
-#
-CONFIG_AGP=m
-CONFIG_AGP_AMD64=m
-CONFIG_AGP_INTEL=m
-CONFIG_AGP_SIS=m
-CONFIG_AGP_VIA=m
-CONFIG_INTEL_GTT=m
-CONFIG_VGA_ARB=y
-CONFIG_VGA_ARB_MAX_GPUS=16
-CONFIG_VGA_SWITCHEROO=y
-CONFIG_DRM=m
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_DP_AUX_CHARDEV=y
-CONFIG_DRM_KMS_HELPER=m
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
-CONFIG_DRM_DP_CEC=y
-CONFIG_DRM_TTM=m
-CONFIG_DRM_TTM_DMA_PAGE_POOL=y
-CONFIG_DRM_VRAM_HELPER=m
-CONFIG_DRM_TTM_HELPER=m
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_VM=y
-CONFIG_DRM_SCHED=m
-
-#
-# I2C encoder or helper chips
-#
-# CONFIG_DRM_I2C_CH7006 is not set
-CONFIG_DRM_I2C_SIL164=m
-CONFIG_DRM_I2C_NXP_TDA998X=m
-# CONFIG_DRM_I2C_NXP_TDA9950 is not set
-# end of I2C encoder or helper chips
-
-#
-# ARM devices
-#
-# end of ARM devices
-
-CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_USERPTR=y
-CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_AMDGPU_SI is not set
-# CONFIG_DRM_AMDGPU_CIK is not set
-# CONFIG_DRM_AMDGPU_USERPTR is not set
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-CONFIG_DRM_AMD_ACP=y
-# end of ACP (Audio CoProcessor) Configuration
-
-#
-# Display Engine Configuration
-#
-CONFIG_DRM_AMD_DC=y
-CONFIG_DRM_AMD_DC_DCN=y
-# CONFIG_DRM_AMD_DC_HDCP is not set
-# CONFIG_DEBUG_KERNEL_DC is not set
-# end of Display Engine Configuration
-
-# CONFIG_HSA_AMD is not set
-CONFIG_DRM_NOUVEAU=m
-CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y
-CONFIG_NOUVEAU_DEBUG=5
-CONFIG_NOUVEAU_DEBUG_DEFAULT=3
-# CONFIG_NOUVEAU_DEBUG_MMU is not set
-CONFIG_DRM_NOUVEAU_BACKLIGHT=y
-CONFIG_DRM_I915=m
-# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-CONFIG_DRM_I915_USERPTR=y
-CONFIG_DRM_I915_GVT=y
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_SPIN_REQUEST=5
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_VGEM=m
-# CONFIG_DRM_VKMS is not set
-CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
-CONFIG_DRM_GMA500=m
-CONFIG_DRM_GMA600=y
-CONFIG_DRM_GMA3600=y
-# CONFIG_DRM_UDL is not set
-CONFIG_DRM_AST=m
-CONFIG_DRM_MGAG200=m
-CONFIG_DRM_CIRRUS_QEMU=m
-CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
-CONFIG_DRM_VIRTIO_GPU=m
-CONFIG_DRM_PANEL=y
-
-#
-# Display Panels
-#
-CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
-# end of Display Panels
-
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_PANEL_BRIDGE=y
-
-#
-# Display Interface Bridges
-#
-CONFIG_DRM_ANALOGIX_ANX78XX=m
-CONFIG_DRM_ANALOGIX_DP=m
-# end of Display Interface Bridges
-
-# CONFIG_DRM_ETNAVIV is not set
-# CONFIG_DRM_GM12U320 is not set
-# CONFIG_TINYDRM_HX8357D is not set
-# CONFIG_TINYDRM_ILI9225 is not set
-# CONFIG_TINYDRM_ILI9341 is not set
-# CONFIG_TINYDRM_MI0283QT is not set
-# CONFIG_TINYDRM_REPAPER is not set
-# CONFIG_TINYDRM_ST7586 is not set
-# CONFIG_TINYDRM_ST7735R is not set
-# CONFIG_DRM_XEN is not set
-# CONFIG_DRM_VBOXVIDEO is not set
-CONFIG_DRM_LEGACY=y
-# CONFIG_DRM_TDFX is not set
-# CONFIG_DRM_R128 is not set
-# CONFIG_DRM_MGA is not set
-# CONFIG_DRM_SIS is not set
-# CONFIG_DRM_VIA is not set
-# CONFIG_DRM_SAVAGE is not set
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-
-#
-# Frame buffer Devices
-#
-CONFIG_FB_CMDLINE=y
-CONFIG_FB_NOTIFY=y
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-CONFIG_FB_DDC=m
-CONFIG_FB_BOOT_VESA_SUPPORT=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_HECUBA=m
-CONFIG_FB_SVGALIB=m
-CONFIG_FB_BACKLIGHT=m
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_CYBER2000_DDC=y
-CONFIG_FB_ARC=m
-# CONFIG_FB_ASILIANT is not set
-# CONFIG_FB_IMSTT is not set
-CONFIG_FB_VGA16=m
-CONFIG_FB_UVESA=m
-CONFIG_FB_VESA=y
-CONFIG_FB_EFI=y
-CONFIG_FB_N411=m
-CONFIG_FB_HGA=m
-# CONFIG_FB_OPENCORES is not set
-CONFIG_FB_S1D13XXX=m
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-# CONFIG_FB_I740 is not set
-CONFIG_FB_LE80578=m
-CONFIG_FB_CARILLO_RANCH=m
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-CONFIG_FB_ATY_GENERIC_LCD=y
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-CONFIG_FB_S3_DDC=y
-CONFIG_FB_SAVAGE=m
-CONFIG_FB_SAVAGE_I2C=y
-CONFIG_FB_SAVAGE_ACCEL=y
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-# CONFIG_FB_VIA_DIRECT_PROCFS is not set
-CONFIG_FB_VIA_X_COMPATIBILITY=y
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-CONFIG_FB_CARMINE=m
-CONFIG_FB_CARMINE_DRAM_EVAL=y
-# CONFIG_CARMINE_DRAM_CUSTOM is not set
-CONFIG_FB_SM501=m
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-# CONFIG_FB_IBM_GXT4500 is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_XEN_FBDEV_FRONTEND=m
-CONFIG_FB_METRONOME=m
-CONFIG_FB_MB862XX=m
-CONFIG_FB_MB862XX_PCI_GDC=y
-CONFIG_FB_MB862XX_I2C=y
-CONFIG_FB_HYPERV=m
-CONFIG_FB_SIMPLE=y
-# CONFIG_FB_SM712 is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-CONFIG_LCD_CLASS_DEVICE=m
-CONFIG_LCD_L4F00242T03=m
-CONFIG_LCD_LMS283GF05=m
-CONFIG_LCD_LTV350QV=m
-# CONFIG_LCD_ILI922X is not set
-CONFIG_LCD_ILI9320=m
-CONFIG_LCD_TDO24M=m
-CONFIG_LCD_VGG2432A4=m
-CONFIG_LCD_PLATFORM=m
-CONFIG_LCD_AMS369FG06=m
-CONFIG_LCD_LMS501KF03=m
-CONFIG_LCD_HX8357=m
-# CONFIG_LCD_OTM3225A is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_PWM=m
-CONFIG_BACKLIGHT_APPLE=m
-# CONFIG_BACKLIGHT_QCOM_WLED is not set
-CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_ADP8860=m
-# CONFIG_BACKLIGHT_ADP8870 is not set
-CONFIG_BACKLIGHT_PCF50633=m
-# CONFIG_BACKLIGHT_LM3630A is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-# CONFIG_BACKLIGHT_GPIO is not set
-# CONFIG_BACKLIGHT_LV5207LP is not set
-# CONFIG_BACKLIGHT_BD6107 is not set
-# CONFIG_BACKLIGHT_ARCXCNN is not set
-# end of Backlight & LCD device support
-
-CONFIG_VGASTATE=m
-CONFIG_HDMI=y
-
-#
-# Console display driver support
-#
-CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_DUMMY_CONSOLE_COLUMNS=80
-CONFIG_DUMMY_CONSOLE_ROWS=25
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
-# end of Console display driver support
-
-# CONFIG_LOGO is not set
-# end of Graphics support
-
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_PCM_ELD=y
-CONFIG_SND_PCM_IEC958=y
-CONFIG_SND_HWDEP=m
-CONFIG_SND_SEQ_DEVICE=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_COMPRESS_OFFLOAD=m
-CONFIG_SND_JACK=y
-CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_MAX_CARDS=32
-# CONFIG_SND_SUPPORT_OLD_API is not set
-CONFIG_SND_PROC_FS=y
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_SEQUENCER_OSS=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_SEQ_MIDI_EVENT=m
-CONFIG_SND_SEQ_MIDI=m
-CONFIG_SND_SEQ_MIDI_EMUL=m
-CONFIG_SND_SEQ_VIRMIDI=m
-CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
-CONFIG_SND_DRIVERS=y
-CONFIG_SND_PCSP=m
-CONFIG_SND_DUMMY=m
-# CONFIG_SND_ALOOP is not set
-CONFIG_SND_VIRMIDI=m
-CONFIG_SND_MTPAV=m
-CONFIG_SND_MTS64=m
-CONFIG_SND_SERIAL_U16550=m
-CONFIG_SND_MPU401=m
-CONFIG_SND_PORTMAN2X4=m
-CONFIG_SND_AC97_POWER_SAVE=y
-CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
-CONFIG_SND_SB_COMMON=m
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-CONFIG_SND_ALS4000=m
-CONFIG_SND_ALI5451=m
-CONFIG_SND_ASIHPI=m
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1_SEQ=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_ES1968_INPUT=y
-CONFIG_SND_FM801=m
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LOLA=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MAESTRO3_INPUT=y
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
-
-#
-# HD-Audio
-#
-CONFIG_SND_HDA=m
-CONFIG_SND_HDA_INTEL=m
-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_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=m
-CONFIG_SND_HDA_CODEC_ANALOG=m
-CONFIG_SND_HDA_CODEC_SIGMATEL=m
-CONFIG_SND_HDA_CODEC_VIA=m
-CONFIG_SND_HDA_CODEC_HDMI=m
-CONFIG_SND_HDA_CODEC_CIRRUS=m
-CONFIG_SND_HDA_CODEC_CONEXANT=m
-CONFIG_SND_HDA_CODEC_CA0110=m
-CONFIG_SND_HDA_CODEC_CA0132=m
-CONFIG_SND_HDA_CODEC_CA0132_DSP=y
-CONFIG_SND_HDA_CODEC_CMEDIA=m
-CONFIG_SND_HDA_CODEC_SI3054=m
-CONFIG_SND_HDA_GENERIC=m
-CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
-# end of HD-Audio
-
-CONFIG_SND_HDA_CORE=m
-CONFIG_SND_HDA_DSP_LOADER=y
-CONFIG_SND_HDA_COMPONENT=y
-CONFIG_SND_HDA_I915=y
-CONFIG_SND_HDA_EXT_CORE=m
-CONFIG_SND_HDA_PREALLOC_SIZE=0
-CONFIG_SND_INTEL_NHLT=y
-CONFIG_SND_INTEL_DSP_CONFIG=m
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_USX2Y=m
-CONFIG_SND_USB_CAIAQ=m
-# CONFIG_SND_USB_CAIAQ_INPUT is not set
-CONFIG_SND_USB_US122L=m
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_USB_HIFACE=m
-# CONFIG_SND_BCD2000 is not set
-CONFIG_SND_USB_LINE6=m
-CONFIG_SND_USB_POD=m
-CONFIG_SND_USB_PODHD=m
-CONFIG_SND_USB_TONEPORT=m
-CONFIG_SND_USB_VARIAX=m
-CONFIG_SND_FIREWIRE=y
-CONFIG_SND_FIREWIRE_LIB=m
-CONFIG_SND_DICE=m
-CONFIG_SND_OXFW=m
-CONFIG_SND_ISIGHT=m
-CONFIG_SND_FIREWORKS=m
-CONFIG_SND_BEBOB=m
-# CONFIG_SND_FIREWIRE_DIGI00X is not set
-# CONFIG_SND_FIREWIRE_TASCAM is not set
-# CONFIG_SND_FIREWIRE_MOTU is not set
-# CONFIG_SND_FIREFACE is not set
-CONFIG_SND_PCMCIA=y
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
-CONFIG_SND_SOC=m
-CONFIG_SND_SOC_COMPRESS=y
-CONFIG_SND_SOC_TOPOLOGY=y
-CONFIG_SND_SOC_ACPI=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_ACP3x is not set
-# CONFIG_SND_ATMEL_SOC is not set
-# CONFIG_SND_DESIGNWARE_I2S is not set
-
-#
-# SoC Audio for Freescale CPUs
-#
-
-#
-# Common SoC Audio options for Freescale CPUs:
-#
-# CONFIG_SND_SOC_FSL_ASRC is not set
-# CONFIG_SND_SOC_FSL_SAI is not set
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-# CONFIG_SND_SOC_FSL_SSI is not set
-# CONFIG_SND_SOC_FSL_SPDIF is not set
-# CONFIG_SND_SOC_FSL_ESAI is not set
-# CONFIG_SND_SOC_FSL_MICFIL is not set
-# CONFIG_SND_SOC_IMX_AUDMUX is not set
-# end of SoC Audio for Freescale CPUs
-
-# CONFIG_SND_I2S_HI6210_I2S is not set
-# CONFIG_SND_SOC_IMG is not set
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
-CONFIG_SND_SST_IPC=m
-CONFIG_SND_SST_IPC_PCI=m
-CONFIG_SND_SST_IPC_ACPI=m
-CONFIG_SND_SOC_INTEL_SST_ACPI=m
-CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
-CONFIG_SND_SOC_INTEL_HASWELL=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
-CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI=m
-CONFIG_SND_SOC_INTEL_SKYLAKE=m
-CONFIG_SND_SOC_INTEL_SKL=m
-CONFIG_SND_SOC_INTEL_APL=m
-CONFIG_SND_SOC_INTEL_KBL=m
-CONFIG_SND_SOC_INTEL_GLK=m
-CONFIG_SND_SOC_INTEL_CNL=m
-CONFIG_SND_SOC_INTEL_CFL=m
-# CONFIG_SND_SOC_INTEL_CML_H is not set
-# CONFIG_SND_SOC_INTEL_CML_LP is not set
-CONFIG_SND_SOC_INTEL_SKYLAKE_FAMILY=m
-# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
-CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m
-CONFIG_SND_SOC_ACPI_INTEL_MATCH=m
-CONFIG_SND_SOC_INTEL_MACH=y
-# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
-# CONFIG_SND_SOC_INTEL_HASWELL_MACH is not set
-# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
-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 is not set
-CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
-# CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH is not set
-# CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH is not set
-# CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH is not set
-# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
-# CONFIG_SND_SOC_INTEL_SKL_RT286_MACH is not set
-CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
-CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_DA7219_MAX98357A_GENERIC=m
-CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=m
-CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
-CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
-# CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH is not set
-# CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH is not set
-CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
-# CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH is not set
-# CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH is not set
-# CONFIG_SND_SOC_MTK_BTCVSD is not set
-# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
-
-#
-# STMicroelectronics STM32 SOC audio support
-#
-# end of STMicroelectronics STM32 SOC audio support
-
-# CONFIG_SND_SOC_XILINX_I2S is not set
-# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
-# CONFIG_SND_SOC_XILINX_SPDIF is not set
-# CONFIG_SND_SOC_XTFPGA_I2S is not set
-# CONFIG_ZX_TDM is not set
-CONFIG_SND_SOC_I2C_AND_SPI=m
-
-#
-# CODEC drivers
-#
-# CONFIG_SND_SOC_AC97_CODEC is not set
-# CONFIG_SND_SOC_ADAU1701 is not set
-# CONFIG_SND_SOC_ADAU1761_I2C is not set
-# CONFIG_SND_SOC_ADAU1761_SPI is not set
-CONFIG_SND_SOC_ADAU7002=m
-# CONFIG_SND_SOC_ADAU7118_HW is not set
-# CONFIG_SND_SOC_ADAU7118_I2C is not set
-# CONFIG_SND_SOC_AK4104 is not set
-# CONFIG_SND_SOC_AK4118 is not set
-CONFIG_SND_SOC_AK4458=m
-# CONFIG_SND_SOC_AK4554 is not set
-# CONFIG_SND_SOC_AK4613 is not set
-# CONFIG_SND_SOC_AK4642 is not set
-# CONFIG_SND_SOC_AK5386 is not set
-CONFIG_SND_SOC_AK5558=m
-# CONFIG_SND_SOC_ALC5623 is not set
-CONFIG_SND_SOC_BD28623=m
-# CONFIG_SND_SOC_BT_SCO is not set
-# CONFIG_SND_SOC_CROS_EC_CODEC is not set
-# CONFIG_SND_SOC_CS35L32 is not set
-# CONFIG_SND_SOC_CS35L33 is not set
-# CONFIG_SND_SOC_CS35L34 is not set
-# CONFIG_SND_SOC_CS35L35 is not set
-# CONFIG_SND_SOC_CS35L36 is not set
-# CONFIG_SND_SOC_CS42L42 is not set
-# CONFIG_SND_SOC_CS42L51_I2C is not set
-# CONFIG_SND_SOC_CS42L52 is not set
-# CONFIG_SND_SOC_CS42L56 is not set
-# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS4265 is not set
-# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
-# CONFIG_SND_SOC_CS4271_SPI is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
-# CONFIG_SND_SOC_CS43130 is not set
-# CONFIG_SND_SOC_CS4341 is not set
-# CONFIG_SND_SOC_CS4349 is not set
-# CONFIG_SND_SOC_CS53L30 is not set
-# CONFIG_SND_SOC_CX2072X is not set
-# CONFIG_SND_SOC_DA7213 is not set
-CONFIG_SND_SOC_DA7219=m
-CONFIG_SND_SOC_DMIC=m
-CONFIG_SND_SOC_HDMI_CODEC=m
-# CONFIG_SND_SOC_ES7134 is not set
-# CONFIG_SND_SOC_ES7241 is not set
-# CONFIG_SND_SOC_ES8316 is not set
-# CONFIG_SND_SOC_ES8328_I2C is not set
-# CONFIG_SND_SOC_ES8328_SPI is not set
-# CONFIG_SND_SOC_GTM601 is not set
-CONFIG_SND_SOC_HDAC_HDMI=m
-# CONFIG_SND_SOC_INNO_RK3036 is not set
-# CONFIG_SND_SOC_MAX98088 is not set
-CONFIG_SND_SOC_MAX98357A=m
-# CONFIG_SND_SOC_MAX98504 is not set
-CONFIG_SND_SOC_MAX9867=m
-# CONFIG_SND_SOC_MAX98927 is not set
-CONFIG_SND_SOC_MAX98373=m
-# CONFIG_SND_SOC_MAX9860 is not set
-# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
-# CONFIG_SND_SOC_PCM1681 is not set
-CONFIG_SND_SOC_PCM1789=m
-CONFIG_SND_SOC_PCM1789_I2C=m
-# CONFIG_SND_SOC_PCM179X_I2C is not set
-# CONFIG_SND_SOC_PCM179X_SPI is not set
-CONFIG_SND_SOC_PCM186X=m
-CONFIG_SND_SOC_PCM186X_I2C=m
-CONFIG_SND_SOC_PCM186X_SPI=m
-# CONFIG_SND_SOC_PCM3060_I2C is not set
-# CONFIG_SND_SOC_PCM3060_SPI is not set
-# CONFIG_SND_SOC_PCM3168A_I2C is not set
-# CONFIG_SND_SOC_PCM3168A_SPI is not set
-# CONFIG_SND_SOC_PCM512x_I2C is not set
-# CONFIG_SND_SOC_PCM512x_SPI is not set
-# CONFIG_SND_SOC_RK3328 is not set
-CONFIG_SND_SOC_RL6231=m
-CONFIG_SND_SOC_RL6347A=m
-CONFIG_SND_SOC_RT286=m
-CONFIG_SND_SOC_RT298=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
-# CONFIG_SND_SOC_RT5616 is not set
-# CONFIG_SND_SOC_RT5631 is not set
-CONFIG_SND_SOC_RT5640=m
-CONFIG_SND_SOC_RT5645=m
-CONFIG_SND_SOC_RT5651=m
-CONFIG_SND_SOC_RT5670=m
-CONFIG_SND_SOC_RT5677=m
-CONFIG_SND_SOC_RT5677_SPI=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
-# CONFIG_SND_SOC_SGTL5000 is not set
-CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
-CONFIG_SND_SOC_SPDIF=m
-# CONFIG_SND_SOC_SSM2305 is not set
-# CONFIG_SND_SOC_SSM2602_SPI is not set
-# CONFIG_SND_SOC_SSM2602_I2C is not set
-CONFIG_SND_SOC_SSM4567=m
-# CONFIG_SND_SOC_STA32X is not set
-# CONFIG_SND_SOC_STA350 is not set
-# CONFIG_SND_SOC_STI_SAS is not set
-# CONFIG_SND_SOC_TAS2552 is not set
-# CONFIG_SND_SOC_TAS2562 is not set
-# CONFIG_SND_SOC_TAS2770 is not set
-# CONFIG_SND_SOC_TAS5086 is not set
-# CONFIG_SND_SOC_TAS571X is not set
-# CONFIG_SND_SOC_TAS5720 is not set
-CONFIG_SND_SOC_TAS6424=m
-CONFIG_SND_SOC_TDA7419=m
-# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
-# CONFIG_SND_SOC_TLV320AIC31XX is not set
-CONFIG_SND_SOC_TLV320AIC32X4=m
-CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
-CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
-# CONFIG_SND_SOC_TLV320AIC3X is not set
-# CONFIG_SND_SOC_TS3A227E is not set
-CONFIG_SND_SOC_TSCS42XX=m
-# CONFIG_SND_SOC_TSCS454 is not set
-# CONFIG_SND_SOC_UDA1334 is not set
-# CONFIG_SND_SOC_WM8510 is not set
-# CONFIG_SND_SOC_WM8523 is not set
-# CONFIG_SND_SOC_WM8524 is not set
-# CONFIG_SND_SOC_WM8580 is not set
-# CONFIG_SND_SOC_WM8711 is not set
-# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
-# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
-# CONFIG_SND_SOC_WM8750 is not set
-# CONFIG_SND_SOC_WM8753 is not set
-# CONFIG_SND_SOC_WM8770 is not set
-# CONFIG_SND_SOC_WM8776 is not set
-# CONFIG_SND_SOC_WM8782 is not set
-# CONFIG_SND_SOC_WM8804_I2C is not set
-# CONFIG_SND_SOC_WM8804_SPI is not set
-# CONFIG_SND_SOC_WM8903 is not set
-# CONFIG_SND_SOC_WM8904 is not set
-# CONFIG_SND_SOC_WM8960 is not set
-# CONFIG_SND_SOC_WM8962 is not set
-# CONFIG_SND_SOC_WM8974 is not set
-# CONFIG_SND_SOC_WM8978 is not set
-# CONFIG_SND_SOC_WM8985 is not set
-# CONFIG_SND_SOC_WSA881X is not set
-# CONFIG_SND_SOC_ZX_AUD96P22 is not set
-CONFIG_SND_SOC_MAX9759=m
-# CONFIG_SND_SOC_MT6351 is not set
-# CONFIG_SND_SOC_MT6358 is not set
-# CONFIG_SND_SOC_MT6660 is not set
-# CONFIG_SND_SOC_NAU8540 is not set
-# CONFIG_SND_SOC_NAU8810 is not set
-# CONFIG_SND_SOC_NAU8822 is not set
-CONFIG_SND_SOC_NAU8824=m
-CONFIG_SND_SOC_NAU8825=m
-# CONFIG_SND_SOC_TPA6130A2 is not set
-# end of CODEC drivers
-
-CONFIG_SND_SIMPLE_CARD_UTILS=m
-CONFIG_SND_SIMPLE_CARD=m
-CONFIG_SND_X86=y
-# CONFIG_HDMI_LPE_AUDIO is not set
-CONFIG_SND_SYNTH_EMUX=m
-# CONFIG_SND_XEN_FRONTEND is not set
-CONFIG_AC97_BUS=m
-
-#
-# HID support
-#
-CONFIG_HID=m
-CONFIG_HID_BATTERY_STRENGTH=y
-CONFIG_HIDRAW=y
-CONFIG_UHID=m
-CONFIG_HID_GENERIC=m
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_ACCUTOUCH is not set
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=m
-# CONFIG_HID_APPLEIR is not set
-CONFIG_HID_ASUS=m
-# CONFIG_HID_AUREAL is not set
-# CONFIG_HID_BELKIN is not set
-CONFIG_HID_BETOP_FF=m
-# CONFIG_HID_BIGBEN_FF is not set
-CONFIG_HID_CHERRY=m
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CORSAIR is not set
-CONFIG_HID_COUGAR=m
-# CONFIG_HID_MACALLY is not set
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CMEDIA=m
-# CONFIG_HID_CP2112 is not set
-# CONFIG_HID_CREATIVE_SB0540 is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-CONFIG_HID_ELAN=m
-# CONFIG_HID_ELECOM is not set
-# CONFIG_HID_ELO is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_GEMBIRD is not set
-# CONFIG_HID_GFRM is not set
-# CONFIG_HID_HOLTEK is not set
-# CONFIG_HID_GOOGLE_HAMMER is not set
-CONFIG_HID_GT683R=m
-CONFIG_HID_KEYTOUCH=m
-# CONFIG_HID_KYE is not set
-CONFIG_HID_UCLOGIC=m
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_VIEWSONIC is not set
-# CONFIG_HID_GYRATION is not set
-CONFIG_HID_ICADE=m
-# CONFIG_HID_ITE is not set
-CONFIG_HID_JABRA=m
-# CONFIG_HID_TWINHAN is not set
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LED=m
-CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_HID_LOGITECH_HIDPP=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-# CONFIG_HID_MALTRON is not set
-# CONFIG_HID_MAYFLASH is not set
-# CONFIG_HID_REDRAGON is not set
-CONFIG_HID_MICROSOFT=m
-# CONFIG_HID_MONTEREY is not set
-CONFIG_HID_MULTITOUCH=m
-# CONFIG_HID_NTI is not set
-# CONFIG_HID_NTRIG is not set
-CONFIG_HID_ORTEK=m
-# CONFIG_HID_PANTHERLORD is not set
-CONFIG_HID_PENMOUNT=m
-# CONFIG_HID_PETALYNX is not set
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PICOLCD_CIR=y
-CONFIG_HID_PLANTRONICS=m
-CONFIG_HID_PRIMAX=m
-# CONFIG_HID_RETRODE is not set
-CONFIG_HID_ROCCAT=m
-# CONFIG_HID_SAITEK is not set
-# CONFIG_HID_SAMSUNG is not set
-CONFIG_HID_SONY=m
-CONFIG_SONY_FF=y
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_STEAM=m
-# CONFIG_HID_STEELSERIES is not set
-# CONFIG_HID_SUNPLUS is not set
-CONFIG_HID_RMI=m
-# CONFIG_HID_GREENASIA is not set
-CONFIG_HID_HYPERV_MOUSE=m
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TIVO is not set
-# CONFIG_HID_TOPSEED is not set
-CONFIG_HID_THINGM=m
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_UDRAW_PS3 is not set
-# CONFIG_HID_U2FZERO is not set
-# CONFIG_HID_WACOM is not set
-CONFIG_HID_WIIMOTE=m
-# CONFIG_HID_XINMO is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_HID_ZYDACRON=m
-CONFIG_HID_SENSOR_HUB=m
-# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
-CONFIG_HID_ALPS=m
-# end of Special HID drivers
-
-#
-# USB HID support
-#
-CONFIG_USB_HID=m
-# CONFIG_HID_PID is not set
-CONFIG_USB_HIDDEV=y
-# end of USB HID support
-
-#
-# I2C HID support
-#
-CONFIG_I2C_HID=m
-# end of I2C HID support
-
-#
-# Intel ISH HID support
-#
-CONFIG_INTEL_ISH_HID=m
-# CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER is not set
-# end of Intel ISH HID support
-# end of HID support
-
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-# CONFIG_USB_ULPI_BUS is not set
-# CONFIG_USB_CONN_GPIO is not set
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=m
-CONFIG_USB_PCI=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
-CONFIG_USB_LEDS_TRIGGER_USBPORT=m
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=m
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_C67X00_HCD=m
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PCI=m
-CONFIG_USB_XHCI_PLATFORM=m
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_EHCI_PCI=m
-# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD_PLATFORM=m
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_PCI=m
-CONFIG_USB_OHCI_HCD_SSB=y
-CONFIG_USB_OHCI_HCD_PLATFORM=m
-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_HCD_BCMA is not set
-CONFIG_USB_HCD_SSB=m
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=m
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_VHCI_HC_PORTS=8
-CONFIG_USBIP_VHCI_NR_HCS=1
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-# CONFIG_USB_CDNS3 is not set
-# CONFIG_USB_MUSB_HDRC is not set
-# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_DWC2 is not set
-# CONFIG_USB_CHIPIDEA is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_USS720=m
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_SIMPLE=m
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-# CONFIG_USB_SERIAL_F81232 is not set
-# CONFIG_USB_SERIAL_F8153X is not set
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-# CONFIG_USB_SERIAL_METRO is not set
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-CONFIG_USB_SERIAL_MOS7840=m
-# CONFIG_USB_SERIAL_MXUPORT is not set
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_SAFE=m
-CONFIG_USB_SERIAL_SAFE_PADDED=y
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_XSENS_MT=m
-# CONFIG_USB_SERIAL_WISHBONE is not set
-# CONFIG_USB_SERIAL_SSU100 is not set
-CONFIG_USB_SERIAL_QT2=m
-# CONFIG_USB_SERIAL_UPD78F0730 is not set
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-# CONFIG_USB_LEGOTOWER is not set
-CONFIG_USB_LCD=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-# CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-# CONFIG_USB_TRANCEVIBRATOR is not set
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-# CONFIG_USB_EHSET_TEST_FIXTURE is not set
-CONFIG_USB_ISIGHTFW=m
-# CONFIG_USB_YUREX is not set
-CONFIG_USB_EZUSB_FX2=m
-# CONFIG_USB_HUB_USB251XB is not set
-CONFIG_USB_HSIC_USB3503=m
-CONFIG_USB_HSIC_USB4604=m
-# CONFIG_USB_LINK_LAYER_TEST is not set
-CONFIG_USB_CHAOSKEY=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-
-#
-# USB Physical Layer drivers
-#
-CONFIG_USB_PHY=y
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_USB_GPIO_VBUS=m
-# CONFIG_USB_ISP1301 is not set
-# end of USB Physical Layer drivers
-
-# CONFIG_USB_GADGET is not set
-CONFIG_TYPEC=m
-# CONFIG_TYPEC_TCPM is not set
-# CONFIG_TYPEC_UCSI is not set
-# CONFIG_TYPEC_HD3SS3220 is not set
-CONFIG_TYPEC_TPS6598X=m
-
-#
-# USB Type-C Multiplexer/DeMultiplexer Switch support
-#
-CONFIG_TYPEC_MUX_PI3USB30532=m
-# end of USB Type-C Multiplexer/DeMultiplexer Switch support
-
-#
-# USB Type-C Alternate Mode drivers
-#
-CONFIG_TYPEC_DP_ALTMODE=m
-# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
-# end of USB Type-C Alternate Mode drivers
-
-CONFIG_USB_ROLE_SWITCH=m
-CONFIG_USB_ROLES_INTEL_XHCI=m
-CONFIG_MMC=m
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_SDIO_UART=m
-CONFIG_MMC_TEST=m
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_IO_ACCESSORS=y
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=y
-CONFIG_MMC_SDHCI_ACPI=m
-CONFIG_MMC_SDHCI_PLTFM=m
-CONFIG_MMC_SDHCI_F_SDH30=m
-CONFIG_MMC_WBSD=m
-CONFIG_MMC_TIFM_SD=m
-# CONFIG_MMC_SPI is not set
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
-CONFIG_MMC_VUB300=m
-# CONFIG_MMC_USHC is not set
-# CONFIG_MMC_USDHI6ROL0 is not set
-CONFIG_MMC_REALTEK_PCI=m
-CONFIG_MMC_REALTEK_USB=m
-CONFIG_MMC_CQHCI=m
-CONFIG_MMC_TOSHIBA_PCI=m
-CONFIG_MMC_MTK=m
-# CONFIG_MMC_SDHCI_XENON is not set
-CONFIG_MEMSTICK=m
-# CONFIG_MEMSTICK_DEBUG is not set
-
-#
-# MemoryStick drivers
-#
-# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
-CONFIG_MSPRO_BLOCK=m
-# CONFIG_MS_BLOCK is not set
-
-#
-# MemoryStick Host Controller Drivers
-#
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
-CONFIG_MEMSTICK_R592=m
-CONFIG_MEMSTICK_REALTEK_PCI=m
-CONFIG_MEMSTICK_REALTEK_USB=m
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_CLASS_FLASH=m
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-CONFIG_LEDS_APU=m
-# CONFIG_LEDS_AS3645A is not set
-CONFIG_LEDS_LM3530=m
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-CONFIG_LEDS_LM3601X=m
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_LP3944=m
-CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_LP55XX_COMMON=m
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-CONFIG_LEDS_LP5562=m
-# CONFIG_LEDS_LP8501 is not set
-CONFIG_LEDS_CLEVO_MAIL=m
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
-# CONFIG_LEDS_DAC124S085 is not set
-# CONFIG_LEDS_PWM is not set
-CONFIG_LEDS_REGULATOR=m
-# CONFIG_LEDS_BD2802 is not set
-CONFIG_LEDS_INTEL_SS4200=m
-# CONFIG_LEDS_TCA6507 is not set
-# CONFIG_LEDS_TLC591XX is not set
-# CONFIG_LEDS_LM355x is not set
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-CONFIG_LEDS_BLINKM=m
-CONFIG_LEDS_MLXCPLD=m
-CONFIG_LEDS_MLXREG=m
-# CONFIG_LEDS_USER is not set
-# CONFIG_LEDS_NIC78BX is not set
-# CONFIG_LEDS_TI_LMU_COMMON is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_ONESHOT=m
-CONFIG_LEDS_TRIGGER_DISK=y
-CONFIG_LEDS_TRIGGER_MTD=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-# CONFIG_LEDS_TRIGGER_CPU is not set
-CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-CONFIG_LEDS_TRIGGER_TRANSIENT=m
-CONFIG_LEDS_TRIGGER_CAMERA=m
-CONFIG_LEDS_TRIGGER_PANIC=y
-CONFIG_LEDS_TRIGGER_NETDEV=m
-# CONFIG_LEDS_TRIGGER_PATTERN is not set
-CONFIG_LEDS_TRIGGER_AUDIO=m
-CONFIG_ACCESSIBILITY=y
-# CONFIG_A11Y_BRAILLE_CONSOLE is not set
-CONFIG_INFINIBAND=m
-CONFIG_INFINIBAND_USER_MAD=m
-CONFIG_INFINIBAND_USER_ACCESS=m
-# CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI is not set
-CONFIG_INFINIBAND_USER_MEM=y
-CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
-CONFIG_INFINIBAND_ADDR_TRANS=y
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-CONFIG_INFINIBAND_MTHCA=m
-CONFIG_INFINIBAND_MTHCA_DEBUG=y
-# CONFIG_INFINIBAND_QIB is not set
-CONFIG_INFINIBAND_CXGB4=m
-# CONFIG_INFINIBAND_EFA is not set
-CONFIG_INFINIBAND_I40IW=m
-CONFIG_MLX4_INFINIBAND=m
-CONFIG_MLX5_INFINIBAND=m
-# CONFIG_INFINIBAND_OCRDMA is not set
-# CONFIG_INFINIBAND_VMWARE_PVRDMA is not set
-# CONFIG_INFINIBAND_USNIC is not set
-CONFIG_INFINIBAND_HFI1=m
-# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
-# CONFIG_SDMA_VERBOSITY is not set
-# CONFIG_INFINIBAND_QEDR is not set
-CONFIG_INFINIBAND_RDMAVT=m
-CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
-CONFIG_INFINIBAND_IPOIB=m
-# CONFIG_INFINIBAND_IPOIB_CM is not set
-CONFIG_INFINIBAND_IPOIB_DEBUG=y
-# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
-CONFIG_INFINIBAND_SRP=m
-CONFIG_INFINIBAND_SRPT=m
-CONFIG_INFINIBAND_ISER=m
-# CONFIG_INFINIBAND_ISERT is not set
-# CONFIG_INFINIBAND_OPA_VNIC is not set
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_EDAC=y
-CONFIG_EDAC_LEGACY_SYSFS=y
-# CONFIG_EDAC_DEBUG is not set
-CONFIG_EDAC_DECODE_MCE=y
-CONFIG_EDAC_AMD64=m
-# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
-CONFIG_EDAC_E752X=m
-CONFIG_EDAC_I82975X=m
-CONFIG_EDAC_I3000=m
-CONFIG_EDAC_I3200=m
-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
-CONFIG_EDAC_SKX=m
-# CONFIG_EDAC_I10NM is not set
-CONFIG_EDAC_PND2=m
-CONFIG_RTC_LIB=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-CONFIG_RTC_SYSTOHC=y
-CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-CONFIG_RTC_NVMEM=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_TEST=m
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_ABB5ZES3 is not set
-# CONFIG_RTC_DRV_ABEOZ9 is not set
-CONFIG_RTC_DRV_ABX80X=m
-CONFIG_RTC_DRV_DS1307=m
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-# CONFIG_RTC_DRV_ISL12022 is not set
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF85063=m
-# CONFIG_RTC_DRV_PCF85363 is not set
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8010=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-# CONFIG_RTC_DRV_RV3028 is not set
-CONFIG_RTC_DRV_RV8803=m
-# CONFIG_RTC_DRV_SD3078 is not set
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-# CONFIG_RTC_DRV_DS1302 is not set
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1343=m
-CONFIG_RTC_DRV_DS1347=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6916=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RX4581=m
-# CONFIG_RTC_DRV_RX6110 is not set
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_PCF2123=m
-CONFIG_RTC_DRV_MCP795=m
-CONFIG_RTC_I2C_AND_SPI=m
-
-#
-# SPI and I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS3232 is not set
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV3029_HWMON=y
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_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_CROS_EC is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_RTC_DRV_FTRTC010 is not set
-
-#
-# HID Sensor RTC drivers
-#
-# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
-CONFIG_DMADEVICES=y
-# CONFIG_DMADEVICES_DEBUG is not set
-
-#
-# DMA Devices
-#
-CONFIG_DMA_ENGINE=y
-CONFIG_DMA_VIRTUAL_CHANNELS=m
-CONFIG_DMA_ACPI=y
-# CONFIG_ALTERA_MSGDMA is not set
-CONFIG_INTEL_IDMA64=m
-# CONFIG_INTEL_IDXD is not set
-CONFIG_INTEL_IOATDMA=m
-CONFIG_INTEL_MIC_X100_DMA=m
-# CONFIG_PLX_DMA is not set
-CONFIG_QCOM_HIDMA_MGMT=m
-# CONFIG_QCOM_HIDMA is not set
-CONFIG_DW_DMAC_CORE=m
-# CONFIG_DW_DMAC is not set
-CONFIG_DW_DMAC_PCI=m
-# CONFIG_DW_EDMA is not set
-# CONFIG_DW_EDMA_PCIE is not set
-CONFIG_HSU_DMA=m
-# CONFIG_SF_PDMA is not set
-
-#
-# DMA Clients
-#
-# CONFIG_ASYNC_TX_DMA is not set
-CONFIG_DMATEST=m
-CONFIG_DMA_ENGINE_RAID=y
-
-#
-# DMABUF options
-#
-CONFIG_SYNC_FILE=y
-# CONFIG_UDMABUF is not set
-# CONFIG_DMABUF_SELFTESTS is not set
-# CONFIG_DMABUF_HEAPS is not set
-# end of DMABUF options
-
-CONFIG_DCA=m
-CONFIG_AUXDISPLAY=y
-# CONFIG_HD44780 is not set
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
-CONFIG_KS0108_DELAY=2
-CONFIG_CFAG12864B=m
-CONFIG_CFAG12864B_RATE=20
-# CONFIG_IMG_ASCII_LCD is not set
-# CONFIG_PARPORT_PANEL is not set
-# CONFIG_CHARLCD_BL_OFF is not set
-# CONFIG_CHARLCD_BL_ON is not set
-CONFIG_CHARLCD_BL_FLASH=y
-# CONFIG_PANEL is not set
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-CONFIG_UIO_PDRV_GENIRQ=m
-# CONFIG_UIO_DMEM_GENIRQ is not set
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
-CONFIG_UIO_NETX=m
-# CONFIG_UIO_PRUSS is not set
-# CONFIG_UIO_MF624 is not set
-# CONFIG_UIO_HV_GENERIC is not set
-CONFIG_VFIO_IOMMU_TYPE1=m
-CONFIG_VFIO_VIRQFD=m
-CONFIG_VFIO=m
-# CONFIG_VFIO_NOIOMMU is not set
-CONFIG_VFIO_PCI=m
-CONFIG_VFIO_PCI_VGA=y
-CONFIG_VFIO_PCI_MMAP=y
-CONFIG_VFIO_PCI_INTX=y
-CONFIG_VFIO_PCI_IGD=y
-# CONFIG_VFIO_MDEV is not set
-CONFIG_IRQ_BYPASS_MANAGER=m
-CONFIG_VIRT_DRIVERS=y
-# CONFIG_VBOXGUEST is not set
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_MENU=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_PCI_LEGACY=y
-# CONFIG_VIRTIO_PMEM is not set
-CONFIG_VIRTIO_BALLOON=m
-CONFIG_VIRTIO_INPUT=m
-CONFIG_VIRTIO_MMIO=m
-# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_HYPERV=m
-CONFIG_HYPERV_TIMER=y
-CONFIG_HYPERV_UTILS=m
-CONFIG_HYPERV_BALLOON=m
-# end of Microsoft Hyper-V guest support
-
-#
-# Xen driver support
-#
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_SCRUB_PAGES_DEFAULT=y
-CONFIG_XEN_DEV_EVTCHN=m
-CONFIG_XEN_BACKEND=y
-CONFIG_XENFS=m
-CONFIG_XEN_COMPAT_XENFS=y
-CONFIG_XEN_SYS_HYPERVISOR=y
-CONFIG_XEN_XENBUS_FRONTEND=y
-CONFIG_XEN_GNTDEV=m
-CONFIG_XEN_GRANT_DEV_ALLOC=m
-# CONFIG_XEN_GRANT_DMA_ALLOC is not set
-CONFIG_SWIOTLB_XEN=y
-CONFIG_XEN_PCIDEV_BACKEND=m
-CONFIG_XEN_PVCALLS_FRONTEND=m
-# CONFIG_XEN_PVCALLS_BACKEND is not set
-CONFIG_XEN_SCSI_BACKEND=m
-CONFIG_XEN_PRIVCMD=m
-CONFIG_XEN_ACPI_PROCESSOR=m
-# CONFIG_XEN_MCE_LOG is not set
-CONFIG_XEN_HAVE_PVMMU=y
-CONFIG_XEN_EFI=y
-CONFIG_XEN_AUTO_XLATE=y
-CONFIG_XEN_ACPI=y
-# CONFIG_XEN_SYMS is not set
-CONFIG_XEN_HAVE_VPMU=y
-# end of Xen driver support
-
-# CONFIG_GREYBUS is not set
-CONFIG_STAGING=y
-# CONFIG_PRISM2_USB is not set
-# CONFIG_COMEDI is not set
-# CONFIG_RTL8192U is not set
-CONFIG_RTLLIB=m
-CONFIG_RTLLIB_CRYPTO_CCMP=m
-CONFIG_RTLLIB_CRYPTO_TKIP=m
-CONFIG_RTLLIB_CRYPTO_WEP=m
-# CONFIG_RTL8192E is not set
-CONFIG_RTL8723BS=m
-# CONFIG_R8712U is not set
-# CONFIG_R8188EU is not set
-# CONFIG_RTS5208 is not set
-# CONFIG_VT6655 is not set
-# CONFIG_VT6656 is not set
-
-#
-# IIO staging drivers
-#
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16240 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7816 is not set
-# CONFIG_AD7192 is not set
-# CONFIG_AD7280 is not set
-# end of Analog to digital converters
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-# end of Analog digital bi-direction converters
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# CONFIG_AD7746 is not set
-# end of Capacitance to digital converters
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# end of Direct Digital Synthesis
-
-#
-# Network Analyzer, Impedance Converters
-#
-# CONFIG_AD5933 is not set
-# end of Network Analyzer, Impedance Converters
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7854 is not set
-# end of Active energy metering IC
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S1210 is not set
-# end of Resolver to digital converters
-# end of IIO staging drivers
-
-# CONFIG_FB_SM750 is not set
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-# end of Speakup console speech
-
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_FIREWIRE_SERIAL is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_FB_TFT is not set
-# CONFIG_WILC1000_SDIO is not set
-# CONFIG_WILC1000_SPI is not set
-# CONFIG_MOST is not set
-# CONFIG_KS7010 is not set
-# CONFIG_PI433 is not set
-
-#
-# Gasket devices
-#
-# CONFIG_STAGING_GASKET_FRAMEWORK is not set
-# end of Gasket devices
-
-# CONFIG_FIELDBUS_DEV is not set
-# CONFIG_KPC2000 is not set
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_I1480U=m
-CONFIG_STAGING_EXFAT_FS=m
-CONFIG_STAGING_EXFAT_DISCARD=y
-# CONFIG_STAGING_EXFAT_DELAYED_SYNC is not set
-# CONFIG_STAGING_EXFAT_KERNEL_DEBUG is not set
-# CONFIG_STAGING_EXFAT_DEBUG_MSG is not set
-CONFIG_STAGING_EXFAT_DEFAULT_CODEPAGE=437
-CONFIG_STAGING_EXFAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_QLGE=m
-CONFIG_NET_VENDOR_HP=y
-CONFIG_HP100=m
-# CONFIG_WFX is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_ACER_WMI=m
-CONFIG_ACER_WIRELESS=m
-CONFIG_ACERHDF=m
-CONFIG_ALIENWARE_WMI=m
-CONFIG_ASUS_LAPTOP=m
-CONFIG_DCDBAS=m
-CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_WMI=y
-CONFIG_DELL_SMBIOS_SMM=y
-CONFIG_DELL_LAPTOP=m
-CONFIG_DELL_WMI=m
-CONFIG_DELL_WMI_DESCRIPTOR=m
-CONFIG_DELL_WMI_AIO=m
-# CONFIG_DELL_WMI_LED is not set
-CONFIG_DELL_SMO8800=m
-CONFIG_DELL_RBTN=m
-CONFIG_DELL_RBU=m
-CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_TABLET is not set
-CONFIG_AMILO_RFKILL=m
-CONFIG_GPD_POCKET_FAN=m
-CONFIG_HP_ACCEL=m
-CONFIG_HP_WIRELESS=m
-CONFIG_HP_WMI=m
-# CONFIG_LG_LAPTOP is not set
-CONFIG_MSI_LAPTOP=m
-CONFIG_PANASONIC_LAPTOP=m
-CONFIG_COMPAL_LAPTOP=m
-CONFIG_SONY_LAPTOP=m
-# CONFIG_SONYPI_COMPAT is not set
-CONFIG_IDEAPAD_LAPTOP=m
-# CONFIG_SURFACE3_WMI is not set
-CONFIG_THINKPAD_ACPI=m
-CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
-# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
-# CONFIG_THINKPAD_ACPI_DEBUG is not set
-# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
-CONFIG_THINKPAD_ACPI_VIDEO=y
-CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
-CONFIG_SENSORS_HDAPS=m
-CONFIG_INTEL_MENLOW=m
-CONFIG_EEEPC_LAPTOP=m
-CONFIG_ASUS_WMI=m
-CONFIG_ASUS_NB_WMI=m
-CONFIG_EEEPC_WMI=m
-CONFIG_ASUS_WIRELESS=m
-CONFIG_ACPI_WMI=m
-CONFIG_WMI_BMOF=m
-CONFIG_INTEL_WMI_THUNDERBOLT=m
-# CONFIG_XIAOMI_WMI is not set
-CONFIG_MSI_WMI=m
-# CONFIG_PEAQ_WMI is not set
-# CONFIG_TOPSTAR_LAPTOP is not set
-# CONFIG_ACPI_TOSHIBA is not set
-CONFIG_TOSHIBA_BT_RFKILL=m
-CONFIG_TOSHIBA_HAPS=m
-# CONFIG_TOSHIBA_WMI is not set
-CONFIG_ACPI_CMPC=m
-# CONFIG_INTEL_INT0002_VGPIO is not set
-CONFIG_INTEL_HID_EVENT=m
-CONFIG_INTEL_VBTN=m
-# CONFIG_INTEL_IPS is not set
-CONFIG_INTEL_PMC_CORE=y
-# CONFIG_IBM_RTL is not set
-# CONFIG_SAMSUNG_LAPTOP is not set
-CONFIG_MXM_WMI=m
-CONFIG_INTEL_OAKTRAIL=m
-# CONFIG_SAMSUNG_Q10 is not set
-CONFIG_APPLE_GMUX=m
-# CONFIG_INTEL_RST is not set
-# CONFIG_INTEL_SMARTCONNECT is not set
-# CONFIG_INTEL_PMC_IPC is not set
-# CONFIG_SURFACE_PRO3_BUTTON is not set
-CONFIG_INTEL_PUNIT_IPC=m
-CONFIG_MLX_PLATFORM=m
-# CONFIG_INTEL_TURBO_MAX_3 is not set
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
-CONFIG_I2C_MULTI_INSTANTIATE=m
-CONFIG_INTEL_ATOMISP2_PM=m
-# CONFIG_HUAWEI_WMI is not set
-CONFIG_PCENGINES_APU2=m
-# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
-
-#
-# Intel Speed Select Technology interface support
-#
-# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set
-# end of Intel Speed Select Technology interface support
-
-# CONFIG_SYSTEM76_ACPI is not set
-CONFIG_PMC_ATOM=y
-# CONFIG_MFD_CROS_EC is not set
-CONFIG_CHROME_PLATFORMS=y
-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 is not set
-CONFIG_CROS_EC_SPI=m
-# CONFIG_CROS_EC_LPC is not set
-CONFIG_CROS_EC_PROTO=y
-CONFIG_CROS_KBD_LED_BACKLIGHT=m
-CONFIG_CROS_EC_CHARDEV=m
-CONFIG_CROS_EC_LIGHTBAR=m
-CONFIG_CROS_EC_SENSORHUB=m
-CONFIG_CROS_EC_SYSFS=m
-CONFIG_MELLANOX_PLATFORM=y
-CONFIG_MLXREG_HOTPLUG=m
-CONFIG_MLXREG_IO=m
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_HAVE_CLK_PREPARE=y
-CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
-# CONFIG_COMMON_CLK_MAX9485 is not set
-# CONFIG_COMMON_CLK_SI5341 is not set
-# CONFIG_COMMON_CLK_SI5351 is not set
-CONFIG_COMMON_CLK_SI544=m
-# CONFIG_COMMON_CLK_CDCE706 is not set
-# CONFIG_COMMON_CLK_CS2000_CP is not set
-# CONFIG_COMMON_CLK_PWM is not set
-# end of Common Clock Framework
-
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-CONFIG_CLKEVT_I8253=y
-CONFIG_I8253_LOCK=y
-CONFIG_CLKBLD_I8253=y
-# end of Clock Source drivers
-
-CONFIG_MAILBOX=y
-CONFIG_PCC=y
-# CONFIG_ALTERA_MBOX is not set
-CONFIG_IOMMU_IOVA=y
-CONFIG_IOASID=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Generic IOMMU Pagetable Support
-#
-# end of Generic IOMMU Pagetable Support
-
-# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
-CONFIG_IOMMU_DMA=y
-CONFIG_AMD_IOMMU=y
-CONFIG_AMD_IOMMU_V2=m
-CONFIG_DMAR_TABLE=y
-CONFIG_INTEL_IOMMU=y
-# CONFIG_INTEL_IOMMU_SVM is not set
-# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
-CONFIG_INTEL_IOMMU_FLOPPY_WA=y
-# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
-CONFIG_IRQ_REMAP=y
-CONFIG_HYPERV_IOMMU=y
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-CONFIG_RPMSG=m
-# CONFIG_RPMSG_CHAR is not set
-# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
-CONFIG_RPMSG_VIRTIO=m
-# end of Rpmsg drivers
-
-CONFIG_SOUNDWIRE=m
-
-#
-# SoundWire Devices
-#
-CONFIG_SOUNDWIRE_CADENCE=m
-CONFIG_SOUNDWIRE_INTEL=m
-
-#
-# 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=m
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
-CONFIG_DEVFREQ_GOV_PERFORMANCE=m
-CONFIG_DEVFREQ_GOV_POWERSAVE=m
-CONFIG_DEVFREQ_GOV_USERSPACE=m
-# CONFIG_DEVFREQ_GOV_PASSIVE is not set
-
-#
-# DEVFREQ Drivers
-#
-# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=y
-
-#
-# Extcon Device Drivers
-#
-# CONFIG_EXTCON_ADC_JACK is not set
-# CONFIG_EXTCON_FSA9480 is not set
-CONFIG_EXTCON_GPIO=m
-# CONFIG_EXTCON_INTEL_INT3496 is not set
-# CONFIG_EXTCON_MAX3355 is not set
-# CONFIG_EXTCON_PTN5150 is not set
-# CONFIG_EXTCON_RT8973A is not set
-# CONFIG_EXTCON_SM5502 is not set
-# CONFIG_EXTCON_USB_GPIO is not set
-# CONFIG_EXTCON_USBC_CROS_EC is not set
-CONFIG_MEMORY=y
-CONFIG_IIO=m
-CONFIG_IIO_BUFFER=y
-# CONFIG_IIO_BUFFER_CB is not set
-# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
-CONFIG_IIO_KFIFO_BUF=m
-CONFIG_IIO_TRIGGERED_BUFFER=m
-# CONFIG_IIO_CONFIGFS is not set
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-# CONFIG_IIO_SW_DEVICE is not set
-# CONFIG_IIO_SW_TRIGGER is not set
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADXL372_SPI is not set
-# CONFIG_ADXL372_I2C is not set
-# CONFIG_BMA180 is not set
-# CONFIG_BMA220 is not set
-# CONFIG_BMA400 is not set
-# CONFIG_BMC150_ACCEL is not set
-# CONFIG_DA280 is not set
-# CONFIG_DA311 is not set
-# CONFIG_DMARD09 is not set
-# CONFIG_DMARD10 is not set
-CONFIG_HID_SENSOR_ACCEL_3D=m
-# CONFIG_IIO_ST_ACCEL_3AXIS is not set
-# CONFIG_KXSD9 is not set
-# CONFIG_KXCJK1013 is not set
-# CONFIG_MC3230 is not set
-# CONFIG_MMA7455_I2C is not set
-# CONFIG_MMA7455_SPI is not set
-# CONFIG_MMA7660 is not set
-# CONFIG_MMA8452 is not set
-# CONFIG_MMA9551 is not set
-# CONFIG_MMA9553 is not set
-# CONFIG_MXC4005 is not set
-# CONFIG_MXC6255 is not set
-# CONFIG_SCA3000 is not set
-# CONFIG_STK8312 is not set
-# CONFIG_STK8BA50 is not set
-# end of Accelerometers
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7091R5 is not set
-# CONFIG_AD7124 is not set
-# CONFIG_AD7266 is not set
-# CONFIG_AD7291 is not set
-# CONFIG_AD7292 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7606_IFACE_PARALLEL is not set
-# CONFIG_AD7606_IFACE_SPI is not set
-# CONFIG_AD7766 is not set
-# CONFIG_AD7768_1 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7791 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7923 is not set
-# CONFIG_AD7949 is not set
-# CONFIG_AD799X is not set
-# CONFIG_CC10001_ADC is not set
-# CONFIG_HI8435 is not set
-# CONFIG_HX711 is not set
-# CONFIG_INA2XX_ADC is not set
-# CONFIG_LTC2471 is not set
-# CONFIG_LTC2485 is not set
-# CONFIG_LTC2496 is not set
-# CONFIG_LTC2497 is not set
-# CONFIG_MAX1027 is not set
-# CONFIG_MAX11100 is not set
-# CONFIG_MAX1118 is not set
-# CONFIG_MAX1363 is not set
-# CONFIG_MAX9611 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
-# CONFIG_MCP3911 is not set
-# CONFIG_NAU7802 is not set
-# CONFIG_TI_ADC081C is not set
-# CONFIG_TI_ADC0832 is not set
-# CONFIG_TI_ADC084S021 is not set
-# CONFIG_TI_ADC12138 is not set
-# CONFIG_TI_ADC108S102 is not set
-# CONFIG_TI_ADC128S052 is not set
-# CONFIG_TI_ADC161S626 is not set
-# CONFIG_TI_ADS1015 is not set
-# CONFIG_TI_ADS7950 is not set
-# CONFIG_TI_TLC4541 is not set
-# CONFIG_XILINX_XADC is not set
-# end of Analog to digital converters
-
-#
-# Analog Front Ends
-#
-# end of Analog Front Ends
-
-#
-# Amplifiers
-#
-# CONFIG_AD8366 is not set
-# end of Amplifiers
-
-#
-# Chemical Sensors
-#
-# CONFIG_ATLAS_PH_SENSOR is not set
-# CONFIG_BME680 is not set
-# CONFIG_CCS811 is not set
-# CONFIG_IAQCORE is not set
-# CONFIG_SENSIRION_SGP30 is not set
-# CONFIG_SPS30 is not set
-# CONFIG_VZ89X is not set
-# end of Chemical Sensors
-
-# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set
-
-#
-# Hid Sensor IIO Common
-#
-CONFIG_HID_SENSOR_IIO_COMMON=m
-CONFIG_HID_SENSOR_IIO_TRIGGER=m
-# end of Hid Sensor IIO Common
-
-#
-# SSP Sensor Common
-#
-# CONFIG_IIO_SSP_SENSORS_COMMONS is not set
-CONFIG_IIO_SSP_SENSORHUB=m
-# end of SSP Sensor Common
-
-#
-# Digital to analog converters
-#
-# CONFIG_AD5064 is not set
-# CONFIG_AD5360 is not set
-# CONFIG_AD5380 is not set
-# CONFIG_AD5421 is not set
-# CONFIG_AD5446 is not set
-# CONFIG_AD5449 is not set
-# CONFIG_AD5592R is not set
-# CONFIG_AD5593R is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_LTC1660 is not set
-# CONFIG_LTC2632 is not set
-# CONFIG_AD5686_SPI is not set
-# CONFIG_AD5696_I2C is not set
-# CONFIG_AD5755 is not set
-# CONFIG_AD5758 is not set
-# CONFIG_AD5761 is not set
-# CONFIG_AD5764 is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD7303 is not set
-# CONFIG_AD8801 is not set
-# CONFIG_DS4424 is not set
-# CONFIG_M62332 is not set
-# CONFIG_MAX517 is not set
-# CONFIG_MCP4725 is not set
-# CONFIG_MCP4922 is not set
-# CONFIG_TI_DAC082S085 is not set
-# CONFIG_TI_DAC5571 is not set
-# CONFIG_TI_DAC7311 is not set
-# CONFIG_TI_DAC7612 is not set
-# end of Digital to analog converters
-
-#
-# IIO dummy driver
-#
-# end of IIO dummy driver
-
-#
-# Frequency Synthesizers DDS/PLL
-#
-
-#
-# Clock Generator/Distribution
-#
-# CONFIG_AD9523 is not set
-# end of Clock Generator/Distribution
-
-#
-# Phase-Locked Loop (PLL) frequency synthesizers
-#
-# CONFIG_ADF4350 is not set
-# CONFIG_ADF4371 is not set
-# end of Phase-Locked Loop (PLL) frequency synthesizers
-# end of Frequency Synthesizers DDS/PLL
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16136 is not set
-# CONFIG_ADIS16260 is not set
-# CONFIG_ADXRS450 is not set
-# CONFIG_BMG160 is not set
-# CONFIG_FXAS21002C is not set
-CONFIG_HID_SENSOR_GYRO_3D=m
-# CONFIG_MPU3050_I2C is not set
-# CONFIG_IIO_ST_GYRO_3AXIS is not set
-# CONFIG_ITG3200 is not set
-# end of Digital gyroscope sensors
-
-#
-# Health Sensors
-#
-
-#
-# Heart Rate Monitors
-#
-# CONFIG_AFE4403 is not set
-# CONFIG_AFE4404 is not set
-# CONFIG_MAX30100 is not set
-# CONFIG_MAX30102 is not set
-# end of Heart Rate Monitors
-# end of Health Sensors
-
-#
-# Humidity sensors
-#
-# CONFIG_AM2315 is not set
-# CONFIG_DHT11 is not set
-# CONFIG_HDC100X is not set
-CONFIG_HID_SENSOR_HUMIDITY=m
-# CONFIG_HTS221 is not set
-# CONFIG_HTU21 is not set
-# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
-# end of Humidity sensors
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-# CONFIG_ADIS16460 is not set
-# CONFIG_ADIS16480 is not set
-# CONFIG_BMI160_I2C is not set
-# CONFIG_BMI160_SPI is not set
-# CONFIG_FXOS8700_I2C is not set
-# CONFIG_FXOS8700_SPI is not set
-# CONFIG_KMX61 is not set
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_SPI is not set
-# CONFIG_IIO_ST_LSM6DSX is not set
-# end of Inertial measurement units
-
-#
-# Light sensors
-#
-# CONFIG_ACPI_ALS is not set
-# CONFIG_ADJD_S311 is not set
-# CONFIG_ADUX1020 is not set
-# CONFIG_AL3320A is not set
-# CONFIG_APDS9300 is not set
-# CONFIG_APDS9960 is not set
-# CONFIG_BH1750 is not set
-# CONFIG_BH1780 is not set
-# CONFIG_CM32181 is not set
-# CONFIG_CM3232 is not set
-# CONFIG_CM3323 is not set
-# CONFIG_CM36651 is not set
-# CONFIG_GP2AP020A00F is not set
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_ISL29028 is not set
-# CONFIG_ISL29125 is not set
-CONFIG_HID_SENSOR_ALS=m
-CONFIG_HID_SENSOR_PROX=m
-# CONFIG_JSA1212 is not set
-# CONFIG_RPR0521 is not set
-# CONFIG_LTR501 is not set
-# CONFIG_LV0104CS is not set
-# CONFIG_MAX44000 is not set
-# CONFIG_MAX44009 is not set
-# CONFIG_NOA1305 is not set
-# CONFIG_OPT3001 is not set
-# CONFIG_PA12203001 is not set
-# CONFIG_SI1133 is not set
-# CONFIG_SI1145 is not set
-# CONFIG_STK3310 is not set
-# CONFIG_ST_UVIS25 is not set
-# CONFIG_TCS3414 is not set
-# CONFIG_TCS3472 is not set
-# CONFIG_SENSORS_TSL2563 is not set
-# CONFIG_TSL2583 is not set
-# CONFIG_TSL2772 is not set
-# CONFIG_TSL4531 is not set
-# CONFIG_US5182D is not set
-# CONFIG_VCNL4000 is not set
-# CONFIG_VCNL4035 is not set
-# CONFIG_VEML6030 is not set
-# CONFIG_VEML6070 is not set
-# CONFIG_VL6180 is not set
-# CONFIG_ZOPT2201 is not set
-# end of Light sensors
-
-#
-# Magnetometer sensors
-#
-# CONFIG_AK8975 is not set
-# CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN_I2C is not set
-# CONFIG_BMC150_MAGN_SPI is not set
-# CONFIG_MAG3110 is not set
-CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
-# CONFIG_MMC35240 is not set
-# CONFIG_IIO_ST_MAGN_3AXIS is not set
-# CONFIG_SENSORS_HMC5843_I2C is not set
-# CONFIG_SENSORS_HMC5843_SPI is not set
-# CONFIG_SENSORS_RM3100_I2C is not set
-# CONFIG_SENSORS_RM3100_SPI is not set
-# end of Magnetometer sensors
-
-#
-# Multiplexers
-#
-# end of Multiplexers
-
-#
-# Inclinometer sensors
-#
-CONFIG_HID_SENSOR_INCLINOMETER_3D=m
-CONFIG_HID_SENSOR_DEVICE_ROTATION=m
-# end of Inclinometer sensors
-
-#
-# Triggers - standalone
-#
-# CONFIG_IIO_INTERRUPT_TRIGGER is not set
-# CONFIG_IIO_SYSFS_TRIGGER is not set
-# end of Triggers - standalone
-
-#
-# Digital potentiometers
-#
-# CONFIG_AD5272 is not set
-# CONFIG_DS1803 is not set
-# CONFIG_MAX5432 is not set
-# CONFIG_MAX5481 is not set
-# CONFIG_MAX5487 is not set
-# CONFIG_MCP4018 is not set
-# CONFIG_MCP4131 is not set
-# CONFIG_MCP4531 is not set
-# CONFIG_MCP41010 is not set
-# CONFIG_TPL0102 is not set
-# end of Digital potentiometers
-
-#
-# Digital potentiostats
-#
-# CONFIG_LMP91000 is not set
-# end of Digital potentiostats
-
-#
-# Pressure sensors
-#
-# CONFIG_ABP060MG is not set
-# CONFIG_BMP280 is not set
-# CONFIG_DLHL60D is not set
-# CONFIG_DPS310 is not set
-CONFIG_HID_SENSOR_PRESS=m
-# CONFIG_HP03 is not set
-# CONFIG_MPL115_I2C is not set
-# CONFIG_MPL115_SPI is not set
-# CONFIG_MPL3115 is not set
-# CONFIG_MS5611 is not set
-# CONFIG_MS5637 is not set
-# CONFIG_IIO_ST_PRESS is not set
-# CONFIG_T5403 is not set
-# CONFIG_HP206C is not set
-# CONFIG_ZPA2326 is not set
-# end of Pressure sensors
-
-#
-# Lightning sensors
-#
-# CONFIG_AS3935 is not set
-# end of Lightning sensors
-
-#
-# Proximity and distance sensors
-#
-# CONFIG_ISL29501 is not set
-# CONFIG_LIDAR_LITE_V2 is not set
-# CONFIG_MB1232 is not set
-# CONFIG_PING is not set
-# CONFIG_RFD77402 is not set
-# CONFIG_SRF04 is not set
-# CONFIG_SX9500 is not set
-# CONFIG_SRF08 is not set
-# CONFIG_VL53L0X_I2C is not set
-# end of Proximity and distance sensors
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-# CONFIG_AD2S1200 is not set
-# end of Resolver to digital converters
-
-#
-# Temperature sensors
-#
-# CONFIG_LTC2983 is not set
-# CONFIG_MAXIM_THERMOCOUPLE is not set
-CONFIG_HID_SENSOR_TEMP=m
-# CONFIG_MLX90614 is not set
-# CONFIG_MLX90632 is not set
-# CONFIG_TMP006 is not set
-# CONFIG_TMP007 is not set
-# CONFIG_TSYS01 is not set
-# CONFIG_TSYS02D is not set
-# CONFIG_MAX31856 is not set
-# end of Temperature sensors
-
-CONFIG_NTB=m
-# CONFIG_NTB_MSI is not set
-CONFIG_NTB_AMD=m
-# CONFIG_NTB_IDT is not set
-CONFIG_NTB_INTEL=m
-CONFIG_NTB_SWITCHTEC=m
-CONFIG_NTB_PINGPONG=m
-# CONFIG_NTB_TOOL is not set
-CONFIG_NTB_PERF=m
-CONFIG_NTB_TRANSPORT=m
-# CONFIG_VME_BUS is not set
-CONFIG_PWM=y
-CONFIG_PWM_SYSFS=y
-# CONFIG_PWM_CROS_EC is not set
-CONFIG_PWM_LPSS=m
-CONFIG_PWM_LPSS_PCI=m
-CONFIG_PWM_LPSS_PLATFORM=m
-CONFIG_PWM_PCA9685=m
-
-#
-# IRQ chip support
-#
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-CONFIG_RESET_CONTROLLER=y
-# CONFIG_RESET_BRCMSTB_RESCAL is not set
-# CONFIG_RESET_TI_SYSCON is not set
-
-#
-# PHY Subsystem
-#
-CONFIG_GENERIC_PHY=y
-# CONFIG_BCM_KONA_USB2_PHY is not set
-# CONFIG_PHY_PXA_28NM_HSIC is not set
-# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_CPCAP_USB is not set
-# CONFIG_PHY_INTEL_EMMC is not set
-# end of PHY Subsystem
-
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-
-#
-# Performance monitor support
-#
-# end of Performance monitor support
-
-CONFIG_RAS=y
-CONFIG_USB4=m
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-CONFIG_LIBNVDIMM=y
-CONFIG_BLK_DEV_PMEM=m
-CONFIG_ND_BLK=y
-CONFIG_ND_CLAIM=y
-CONFIG_ND_BTT=y
-CONFIG_BTT=y
-CONFIG_DAX_DRIVER=y
-CONFIG_DAX=y
-CONFIG_DEV_DAX=m
-CONFIG_NVMEM=y
-CONFIG_NVMEM_SYSFS=y
-
-#
-# 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_TEE is not set
-CONFIG_PM_OPP=y
-CONFIG_UNISYS_VISORBUS=m
-# 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_DCACHE_WORD_ACCESS=y
-# CONFIG_VALIDATE_FS_PARSER is not set
-CONFIG_FS_IOMAP=y
-# CONFIG_EXT2_FS is not set
-# CONFIG_EXT3_FS is not set
-CONFIG_EXT4_FS=m
-CONFIG_EXT4_USE_FOR_EXT2=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=m
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-# CONFIG_REISERFS_FS_SECURITY is not set
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-CONFIG_XFS_ONLINE_SCRUB=y
-# CONFIG_XFS_ONLINE_REPAIR is not set
-# CONFIG_XFS_WARN is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
-# CONFIG_BTRFS_DEBUG is not set
-# CONFIG_BTRFS_ASSERT is not set
-# CONFIG_BTRFS_FS_REF_VERIFY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_F2FS_FS=m
-# CONFIG_F2FS_STAT_FS is not set
-CONFIG_F2FS_FS_XATTR=y
-CONFIG_F2FS_FS_POSIX_ACL=y
-CONFIG_F2FS_FS_SECURITY=y
-# CONFIG_F2FS_CHECK_FS is not set
-# CONFIG_F2FS_FAULT_INJECTION is not set
-CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_F2FS_FS_LZO=y
-CONFIG_F2FS_FS_LZ4=y
-# CONFIG_FS_DAX is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_EXPORTFS_BLOCK_OPS=y
-CONFIG_FILE_LOCKING=y
-# CONFIG_MANDATORY_FILE_LOCKING is not set
-CONFIG_FS_ENCRYPTION=y
-CONFIG_FS_ENCRYPTION_ALGS=m
-CONFIG_FS_VERITY=y
-# CONFIG_FS_VERITY_DEBUG is not set
-CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
-CONFIG_FSNOTIFY=y
-# CONFIG_DNOTIFY is not set
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_QUOTACTL_COMPAT=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_AUTOFS_FS=m
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_VIRTIO_FS=m
-CONFIG_OVERLAY_FS=m
-# 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=m
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_FAT_DEFAULT_UTF8=y
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-# end of DOS/FAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-# CONFIG_PROC_KCORE is not set
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-# CONFIG_PROC_CHILDREN is not set
-CONFIG_PROC_PID_ARCH_STATUS=y
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLBFS is not set
-CONFIG_MEMFD_CREATE=y
-CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
-CONFIG_CONFIGFS_FS=m
-CONFIG_EFIVAR_FS=m
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ORANGEFS_FS=m
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-CONFIG_ECRYPT_FS=m
-# CONFIG_ECRYPT_FS_MESSAGING is not set
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-CONFIG_UBIFS_FS_ZSTD=y
-# CONFIG_UBIFS_ATIME_SUPPORT is not set
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_SECURITY=y
-# CONFIG_UBIFS_FS_AUTHENTICATION is not set
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-CONFIG_SQUASHFS_FILE_DIRECT=y
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZ4=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-CONFIG_SQUASHFS_ZSTD=y
-# 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=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX6FS_FS is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=y
-# CONFIG_PSTORE_LZO_COMPRESS is not set
-# CONFIG_PSTORE_LZ4_COMPRESS is not set
-# CONFIG_PSTORE_LZ4HC_COMPRESS is not set
-# CONFIG_PSTORE_842_COMPRESS is not set
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_COMPRESS=y
-CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-# CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT is not set
-CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
-# CONFIG_PSTORE_CONSOLE is not set
-# CONFIG_PSTORE_PMSG is not set
-CONFIG_PSTORE_RAM=m
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-# CONFIG_EROFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=m
-CONFIG_NFS_V2=m
-CONFIG_NFS_V3=m
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=m
-# CONFIG_NFS_SWAP is not set
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_PNFS_FILE_LAYOUT=m
-CONFIG_PNFS_BLOCK=m
-CONFIG_PNFS_FLEXFILE_LAYOUT=m
-CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
-# CONFIG_NFS_V4_1_MIGRATION is not set
-CONFIG_NFS_V4_SECURITY_LABEL=y
-CONFIG_NFS_FSCACHE=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-CONFIG_NFS_DISABLE_UDP_SUPPORT=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_PNFS=y
-CONFIG_NFSD_BLOCKLAYOUT=y
-CONFIG_NFSD_SCSILAYOUT=y
-CONFIG_NFSD_FLEXFILELAYOUT=y
-# CONFIG_NFSD_V4_2_INTER_SSC is not set
-# CONFIG_NFSD_V4_SECURITY_LABEL is not set
-CONFIG_GRACE_PERIOD=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
-# CONFIG_SUNRPC_DEBUG is not set
-CONFIG_SUNRPC_XPRT_RDMA=m
-CONFIG_CEPH_FS=m
-CONFIG_CEPH_FSCACHE=y
-CONFIG_CEPH_FS_POSIX_ACL=y
-# CONFIG_CEPH_FS_SECURITY_LABEL is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_CIFS_DEBUG=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
-CONFIG_CIFS_DFS_UPCALL=y
-# CONFIG_CIFS_SMB_DIRECT is not set
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CODA_FS=m
-# CONFIG_AFS_FS is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-# CONFIG_9P_FS_SECURITY is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_MAC_ROMAN=m
-CONFIG_NLS_MAC_CELTIC=m
-CONFIG_NLS_MAC_CENTEURO=m
-CONFIG_NLS_MAC_CROATIAN=m
-CONFIG_NLS_MAC_CYRILLIC=m
-CONFIG_NLS_MAC_GAELIC=m
-CONFIG_NLS_MAC_GREEK=m
-CONFIG_NLS_MAC_ICELAND=m
-CONFIG_NLS_MAC_INUIT=m
-CONFIG_NLS_MAC_ROMANIAN=m
-CONFIG_NLS_MAC_TURKISH=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-# CONFIG_UNICODE is not set
-CONFIG_IO_WQ=y
-# end of File systems
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_KEYS_REQUEST_CACHE is not set
-# CONFIG_PERSISTENT_KEYRINGS is not set
-# CONFIG_BIG_KEYS is not set
-CONFIG_TRUSTED_KEYS=m
-CONFIG_ENCRYPTED_KEYS=m
-CONFIG_KEY_DH_OPERATIONS=y
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_PAGE_TABLE_ISOLATION=y
-# CONFIG_SECURITY_INFINIBAND is not set
-# CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_PATH=y
-# CONFIG_INTEL_TXT is not set
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-CONFIG_HARDENED_USERCOPY=y
-CONFIG_HARDENED_USERCOPY_FALLBACK=y
-CONFIG_FORTIFY_SOURCE=y
-# CONFIG_STATIC_USERMODEHELPER is not set
-# CONFIG_SECURITY_SELINUX 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=y
-# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set
-CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
-# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
-# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
-# CONFIG_INTEGRITY 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=y
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-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_SKCIPHER=y
-CONFIG_CRYPTO_SKCIPHER2=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_AKCIPHER=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_KPP=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_USER=m
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_NULL2=y
-CONFIG_CRYPTO_PCRYPT=m
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-CONFIG_CRYPTO_SIMD=m
-CONFIG_CRYPTO_GLUE_HELPER_X86=m
-CONFIG_CRYPTO_ENGINE=m
-
-#
-# Public-key cryptography
-#
-CONFIG_CRYPTO_RSA=y
-CONFIG_CRYPTO_DH=y
-CONFIG_CRYPTO_ECC=m
-CONFIG_CRYPTO_ECDH=m
-CONFIG_CRYPTO_ECRDSA=m
-CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CURVE25519_X86=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-# CONFIG_CRYPTO_OFB is not set
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_NHPOLY1305=m
-CONFIG_CRYPTO_NHPOLY1305_SSE2=m
-CONFIG_CRYPTO_NHPOLY1305_AVX2=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_ESSIV=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_CMAC=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_CRC32C_INTEL=m
-CONFIG_CRYPTO_CRC32=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_XXHASH=m
-CONFIG_CRYPTO_BLAKE2B=m
-# CONFIG_CRYPTO_BLAKE2S is not set
-CONFIG_CRYPTO_BLAKE2S_X86=m
-CONFIG_CRYPTO_CRCT10DIF=y
-CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_POLY1305=m
-CONFIG_CRYPTO_POLY1305_X86_64=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA1_SSSE3=m
-CONFIG_CRYPTO_SHA256_SSSE3=m
-CONFIG_CRYPTO_SHA512_SSSE3=m
-CONFIG_CRYPTO_SHA256=y
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SM3=m
-CONFIG_CRYPTO_STREEBOG=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_BLOWFISH_X86_64=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAMELLIA_X86_64=m
-CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
-CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
-CONFIG_CRYPTO_CAST_COMMON=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST5_AVX_X86_64=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_CAST6_AVX_X86_64=m
-CONFIG_CRYPTO_DES=m
-# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_CHACHA20=m
-CONFIG_CRYPTO_CHACHA20_X86_64=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
-CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
-CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-CONFIG_CRYPTO_TWOFISH_X86_64=m
-CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
-CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=m
-# CONFIG_CRYPTO_842 is not set
-CONFIG_CRYPTO_LZ4=m
-CONFIG_CRYPTO_LZ4HC=m
-CONFIG_CRYPTO_ZSTD=y
-
-#
-# 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=m
-CONFIG_CRYPTO_USER_API_RNG=m
-CONFIG_CRYPTO_USER_API_AEAD=m
-# CONFIG_CRYPTO_STATS is not set
-CONFIG_CRYPTO_HASH_INFO=y
-
-#
-# Crypto library routines
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=m
-CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m
-CONFIG_CRYPTO_LIB_BLAKE2S=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
-CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
-CONFIG_CRYPTO_LIB_CHACHA=m
-CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
-CONFIG_CRYPTO_LIB_CURVE25519=m
-CONFIG_CRYPTO_LIB_DES=m
-CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
-CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
-CONFIG_CRYPTO_LIB_POLY1305=m
-CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
-CONFIG_CRYPTO_LIB_SHA256=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
-# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
-CONFIG_CRYPTO_DEV_CCP=y
-CONFIG_CRYPTO_DEV_CCP_DD=m
-CONFIG_CRYPTO_DEV_SP_CCP=y
-CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
-CONFIG_CRYPTO_DEV_SP_PSP=y
-# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
-CONFIG_CRYPTO_DEV_QAT=m
-CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
-CONFIG_CRYPTO_DEV_QAT_C3XXX=m
-CONFIG_CRYPTO_DEV_QAT_C62X=m
-CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
-CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
-CONFIG_CRYPTO_DEV_QAT_C62XVF=m
-# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
-CONFIG_CRYPTO_DEV_CHELSIO=m
-CONFIG_CRYPTO_DEV_VIRTIO=m
-# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
-# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-# CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_PKCS7_MESSAGE_PARSER=y
-# CONFIG_PKCS7_TEST_KEY is not set
-CONFIG_SIGNED_PE_FILE_VERIFICATION=y
-
-#
-# Certificates for signature checking
-#
-CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS=""
-# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
-CONFIG_SECONDARY_TRUSTED_KEYRING=y
-# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
-# end of Certificates for signature checking
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_RAID6_PQ_BENCHMARK=y
-# CONFIG_PACKING is not set
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_CORDIC=m
-CONFIG_RATIONAL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-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=m
-# CONFIG_CRC4 is not set
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=m
-CONFIG_CRC8=m
-CONFIG_XXHASH=y
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_LZ4_COMPRESS=y
-CONFIG_LZ4HC_COMPRESS=m
-CONFIG_LZ4_DECOMPRESS=y
-CONFIG_ZSTD_COMPRESS=y
-CONFIG_ZSTD_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_ENC8=y
-CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_INTERVAL_TREE=y
-CONFIG_XARRAY_MULTI=y
-CONFIG_ASSOCIATIVE_ARRAY=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DMA_VIRT_OPS=y
-CONFIG_SWIOTLB=y
-# CONFIG_DMA_API_DEBUG is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_IOMMU_HELPER=y
-CONFIG_CHECK_SIGNATURE=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_GLOB=y
-# CONFIG_GLOB_SELFTEST is not set
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_CLZ_TAB=y
-CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=y
-CONFIG_DIMLIB=y
-CONFIG_OID_REGISTRY=y
-CONFIG_UCS2_STRING=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_GENERIC_VDSO_TIME_NS=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_6x10 is not set
-CONFIG_FONT_10x18=y
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_TER16x32 is not set
-CONFIG_SG_POOL=y
-CONFIG_ARCH_HAS_PMEM_API=y
-CONFIG_MEMREGION=y
-CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
-CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
-CONFIG_ARCH_STACKWALK=y
-CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-#
-# 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=3
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-CONFIG_SYMBOLIC_ERRNAME=y
-CONFIG_DEBUG_BUGVERBOSE=y
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=1280
-# CONFIG_STRIP_ASM_SYMS 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_FRAME_POINTER=y
-CONFIG_STACK_VALIDATION=y
-# end of Compile-time checks and compiler options
-
-#
-# Generic Kernel Debugging Instruments
-#
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-# CONFIG_DEBUG_FS is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
-# CONFIG_UBSAN is not set
-CONFIG_UBSAN_ALIGNMENT=y
-# end of Generic Kernel Debugging Instruments
-
-# CONFIG_DEBUG_KERNEL is not set
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_RODATA_TEST is not set
-CONFIG_GENERIC_PTDUMP=y
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_HAVE_ARCH_KASAN=y
-CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
-CONFIG_CC_HAS_KASAN_GENERIC=y
-# CONFIG_KASAN is not set
-CONFIG_KASAN_STACK=1
-# end of Memory Debugging
-
-#
-# Debug Oops, Lockups and Hangs
-#
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
-# end of Debug Oops, Lockups and Hangs
-
-#
-# Scheduler Debugging
-#
-CONFIG_SCHED_INFO=y
-# end of Scheduler Debugging
-
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# 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
-
-#
-# Debug kernel data structures
-#
-# CONFIG_BUG_ON_DATA_CORRUPTION is not set
-# end of Debug kernel data structures
-
-#
-# RCU Debugging
-#
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# end of RCU Debugging
-
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
-CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_FENTRY=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_SAMPLES is not set
-CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_IO_STRICT_DEVMEM=y
-
-#
-# x86 Debugging
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_X86_VERBOSE_BOOTUP is not set
-CONFIG_EARLY_PRINTK=y
-# CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_EARLY_PRINTK_USB_XDBC is not set
-# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_DEBUG_WX is not set
-CONFIG_DOUBLEFAULT=y
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-# CONFIG_PUNIT_ATOM_DEBUG is not set
-# CONFIG_UNWINDER_ORC is not set
-CONFIG_UNWINDER_FRAME_POINTER=y
-# end of x86 Debugging
-
-#
-# Kernel Testing and Coverage
-#
-# CONFIG_KUNIT is not set
-CONFIG_ARCH_HAS_KCOV=y
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_KCOV is not set
-# CONFIG_RUNTIME_TESTING_MENU is not set
-# CONFIG_MEMTEST is not set
-# end of Kernel Testing and Coverage
-# end of Kernel hacking
diff --git a/testing/linux-elm/APKBUILD b/testing/linux-elm/APKBUILD
new file mode 100644
index 00000000000..84f3c22923a
--- /dev/null
+++ b/testing/linux-elm/APKBUILD
@@ -0,0 +1,215 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+
+_flavor=elm
+pkgname=linux-${_flavor}
+# NOTE: this kernel is intended for testing
+# please resist urge to upgrade it blindly
+pkgver=6.8.2
+case $pkgver in
+ *.*.*) _kernver=${pkgver%.*};;
+ *.*) _kernver=$pkgver;;
+esac
+pkgrel=0
+pkgdesc="Linux latest stable kernel for $_flavor chromebooks"
+url="https://www.kernel.org"
+_depends_dev="perl gmp-dev bash flex bison"
+makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any
+ openssl-dev diffutils findutils vboot-utils u-boot-tools dtc"
+options="!strip !check"
+install=
+
+#subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
+source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz"
+case $pkgver in
+ *.*.0) source="$source";;
+ *.*.*) source="$source
+ https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz" ;;
+esac
+
+ source="$source
+ config
+ kernel.its.$_flavor
+ fix-mmc-order.patch
+ mps-ter12x24-font-kernel.patch
+ "
+
+arch="aarch64"
+_carch="arm64"
+license="GPL-2.0"
+
+prepare() {
+ local _patch_failed=
+ cd "$srcdir"/linux-$_kernver
+ case $pkgver in
+ *.*.0);;
+ *)
+ msg "Applying patch-$pkgver.xz"
+ unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N ;;
+ esac
+
+ # 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() {
+ local _builddir="$srcdir"/linux-$_kernver
+ echo "-$pkgrel-$_flavor" > "$_builddir"/localversion-alpine \
+ || return 1
+
+ cp "$srcdir"/config "$_builddir"/.config
+ make -C "$srcdir"/linux-$_kernver \
+ O="$_builddir" \
+ ARCH="$_carch" \
+ listnewconfig oldconfig
+}
+
+build() {
+ unset LDFLAGS
+ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+ cd "$srcdir"/linux-$_kernver
+ make ARCH="$_carch" CC="${CC:-gcc}" \
+ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
+}
+
+_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"/linux-$_kernver
+ # 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-$_buildflavor"
+
+ 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
+}
+
+# main flavor installs in $pkgdir
+package() {
+
+ _package $_flavor "$pkgdir"
+ local _builddir="$srcdir"/linux-$_kernver
+ cd $_builddir
+ cp $srcdir/kernel.its.$_flavor .
+ mkimage -D "-I dts -O dtb -p 2048" -f kernel.its.$_flavor vmlinux.uimg
+
+ dd if=/dev/zero of=bootloader.bin bs=512 count=1
+ echo "console=tty0 earlyprintk=tty0 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootwait rw mitigations=off loglevel=7" > cmdline
+ vbutil_kernel \
+ --pack $pkgdir/boot/vmlinux.kpart-$pkgver-$pkgrel-$_flavor \
+ --version 1 \
+ --vmlinuz vmlinux.uimg \
+ --arch aarch64 \
+ --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
+ --signprivate kernel_data_key.vbprivk \
+ --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
+ --config cmdline \
+ --bootloader bootloader.bin
+
+ rm cmdline bootloader.bin
+ rm $pkgdir/boot/vmlinuz-$_flavor
+ cd $pkgdir/boot
+ ln -s vmlinux.kpart-$pkgver-$pkgrel-$_flavor vmlinux.kpart
+}
+
+_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="
+5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068 linux-6.8.tar.xz
+a8e32b89f7680670c69c62f356846bb65b57614f979114627a9a2f945d7dc97c921d30197dffa993e5b18e499ba8c7196046ffdf0e721528a5378d1ee65a9ba5 patch-6.8.2.xz
+4fdd734d57e6c434765bf86e80ca4163a2491079b29ae53a00f2c28ac89d0aec4c1188bd59f12607e94a2fa2eaae7ae9cc87e1513a0f246384d038e649d8f2ab config
+112af92af4a3f61867ffc20076d057845aa8c9139e58153d0c88f4d7185d9a9628fa79d4edfa8855f095fb70d257bfbd7c4573a7431d4b17706415b411a50775 kernel.its.elm
+00e7afdab1dc89a6e0426829685d85cebb98fb95cb13a253d01326fd22f78ddf792bbe3b5be4c9bc93784f1fa93f87f604a4b6c6710660319db6f2e35dd09835 fix-mmc-order.patch
+fcea50a1ba2356d64a9c3ee0b7b7c326654996956d68eb445fafdb4320b4104b6321f768f0ce4ceb5cd4696be3a7332908ba1de7054fb20bf8c97f4234bfa6a4 mps-ter12x24-font-kernel.patch
+"
diff --git a/testing/linux-elm/config b/testing/linux-elm/config
new file mode 100644
index 00000000000..72f22ff53b4
--- /dev/null
+++ b/testing/linux-elm/config
@@ -0,0 +1,6836 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm64 6.8.2 Kernel Configuration
+#
+CONFIG_CC_VERSION_TEXT="gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309"
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130201
+CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=24200
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=24200
+CONFIG_LLD_VERSION=0
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
+CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
+CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+CONFIG_PAHOLE_VERSION=0
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="localhost"
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_WATCH_QUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_IRQ_IPI=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# end of IRQ subsystem
+
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+# end of Timers subsystem
+
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+
+#
+# BPF subsystem
+#
+# CONFIG_BPF_SYSCALL is not set
+# CONFIG_BPF_JIT is not set
+# end of BPF subsystem
+
+CONFIG_PREEMPT_BUILD=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+# CONFIG_PREEMPT_DYNAMIC is not set
+# CONFIG_SCHED_CORE 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_SCHED_THERMAL_PRESSURE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+# CONFIG_TASK_XACCT 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_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_TREE_SRCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+# end of RCU Subsystem
+
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# CONFIG_UCLAMP_TASK is not set
+# end of Scheduler features
+
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_GCC10_NO_ARRAY_BOUNDS=y
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
+CONFIG_CC_NO_STRINGOP_OVERFLOW=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_CGROUPS=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_CGROUP_FAVOR_DYNMODS is not set
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_SCHED_MM_CID=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_PERF is not set
+# CONFIG_CGROUP_MISC is not set
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_TIME_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BOOT_CONFIG is not set
+CONFIG_INITRAMFS_PRESERVE_MTIME=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_LD_ORPHAN_WARN=y
+CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
+CONFIG_SYSCTL=y
+CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_MULTIUSER=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=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_KCMP=y
+CONFIG_RSEQ=y
+CONFIG_CACHESTAT_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_SELFTEST is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_GUEST_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# end of Kernel Performance Events And Counters
+
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+# CONFIG_PROFILING is not set
+
+#
+# Kexec and crash features
+#
+# CONFIG_KEXEC is not set
+# CONFIG_KEXEC_FILE is not set
+# CONFIG_CRASH_DUMP is not set
+# end of Kexec and crash features
+# end of General setup
+
+CONFIG_ARM64=y
+CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
+CONFIG_64BIT=y
+CONFIG_MMU=y
+CONFIG_ARM64_PAGE_SHIFT=12
+CONFIG_ARM64_CONT_PTE_SHIFT=4
+CONFIG_ARM64_CONT_PMD_SHIFT=4
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_BITS_MAX=33
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_NO_IOPORT_MAP=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_SMP=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
+
+#
+# Platform selection
+#
+# CONFIG_ARCH_ACTIONS is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_APPLE is not set
+# CONFIG_ARCH_BCM is not set
+# CONFIG_ARCH_BERLIN is not set
+# CONFIG_ARCH_BITMAIN is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_K3 is not set
+# CONFIG_ARCH_LG1K is not set
+# CONFIG_ARCH_HISI is not set
+# CONFIG_ARCH_KEEMBAY is not set
+CONFIG_ARCH_MEDIATEK=y
+# CONFIG_ARCH_MESON is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_NXP is not set
+# CONFIG_ARCH_MA35 is not set
+# CONFIG_ARCH_NPCM is not set
+# CONFIG_ARCH_PENSANDO is not set
+# CONFIG_ARCH_QCOM is not set
+# CONFIG_ARCH_REALTEK is not set
+# CONFIG_ARCH_RENESAS is not set
+# CONFIG_ARCH_ROCKCHIP is not set
+# CONFIG_ARCH_SEATTLE is not set
+# CONFIG_ARCH_INTEL_SOCFPGA is not set
+# CONFIG_ARCH_STM32 is not set
+# CONFIG_ARCH_SYNQUACER is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_SPRD is not set
+# CONFIG_ARCH_THUNDER is not set
+# CONFIG_ARCH_THUNDER2 is not set
+# CONFIG_ARCH_UNIPHIER is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_VISCONTI is not set
+# CONFIG_ARCH_XGENE is not set
+# CONFIG_ARCH_ZYNQMP is not set
+# end of Platform selection
+
+#
+# Kernel Features
+#
+
+#
+# ARM errata workarounds via the alternatives framework
+#
+# CONFIG_AMPERE_ERRATUM_AC03_CPU_38 is not set
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
+CONFIG_ARM64_ERRATUM_826319=y
+CONFIG_ARM64_ERRATUM_827319=y
+CONFIG_ARM64_ERRATUM_824069=y
+CONFIG_ARM64_ERRATUM_819472=y
+CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_1742098=y
+CONFIG_ARM64_ERRATUM_845719=y
+CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_1024718=y
+CONFIG_ARM64_ERRATUM_1418040=y
+CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1530923=y
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+CONFIG_ARM64_ERRATUM_2441007=y
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1542419=y
+CONFIG_ARM64_ERRATUM_1508412=y
+# CONFIG_ARM64_ERRATUM_2051678 is not set
+# CONFIG_ARM64_ERRATUM_2077057 is not set
+# CONFIG_ARM64_ERRATUM_2658417 is not set
+CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y
+CONFIG_ARM64_ERRATUM_2054223=y
+# CONFIG_ARM64_ERRATUM_2067961 is not set
+# CONFIG_ARM64_ERRATUM_2441009 is not set
+# CONFIG_ARM64_ERRATUM_2457168 is not set
+# CONFIG_ARM64_ERRATUM_2645198 is not set
+# CONFIG_ARM64_ERRATUM_2966298 is not set
+# CONFIG_ARM64_ERRATUM_3117295 is not set
+CONFIG_CAVIUM_ERRATUM_22375=y
+CONFIG_CAVIUM_ERRATUM_23154=y
+CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_TX2_ERRATUM_219=y
+CONFIG_FUJITSU_ERRATUM_010001=y
+CONFIG_HISILICON_ERRATUM_161600802=y
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
+CONFIG_QCOM_QDF2400_ERRATUM_0065=y
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y
+# CONFIG_ROCKCHIP_ERRATUM_3588001 is not set
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+# end of ARM errata workarounds via the alternatives framework
+
+CONFIG_ARM64_4K_PAGES=y
+# CONFIG_ARM64_16K_PAGES is not set
+# CONFIG_ARM64_64K_PAGES is not set
+# CONFIG_ARM64_VA_BITS_39 is not set
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_ARM64_VA_BITS=48
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PA_BITS=48
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SCHED_MC=y
+# CONFIG_SCHED_CLUSTER is not set
+CONFIG_SCHED_SMT=y
+CONFIG_NR_CPUS=8
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_NUMA is not set
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_ARCH_SUPPORTS_KEXEC=y
+CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
+CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
+CONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=y
+CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y
+CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
+CONFIG_TRANS_TABLE=y
+# CONFIG_XEN is not set
+CONFIG_ARCH_FORCE_MAX_ORDER=10
+CONFIG_UNMAP_KERNEL_AT_EL0=y
+CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+# CONFIG_ARM64_SW_TTBR0_PAN is not set
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+CONFIG_COMPAT=y
+CONFIG_KUSER_HELPERS=y
+# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+
+#
+# ARMv8.1 architectural features
+#
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_PAN=y
+CONFIG_AS_HAS_LSE_ATOMICS=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_USE_LSE_ATOMICS=y
+# end of ARMv8.1 architectural features
+
+#
+# ARMv8.2 architectural features
+#
+CONFIG_AS_HAS_ARMV8_2=y
+CONFIG_AS_HAS_SHA3=y
+# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_RAS_EXTN=y
+CONFIG_ARM64_CNP=y
+# end of ARMv8.2 architectural features
+
+#
+# ARMv8.3 architectural features
+#
+CONFIG_ARM64_PTR_AUTH=y
+CONFIG_ARM64_PTR_AUTH_KERNEL=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
+CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
+CONFIG_AS_HAS_ARMV8_3=y
+CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
+CONFIG_AS_HAS_LDAPR=y
+# end of ARMv8.3 architectural features
+
+#
+# ARMv8.4 architectural features
+#
+CONFIG_ARM64_AMU_EXTN=y
+CONFIG_AS_HAS_ARMV8_4=y
+CONFIG_ARM64_TLB_RANGE=y
+# end of ARMv8.4 architectural features
+
+#
+# ARMv8.5 architectural features
+#
+CONFIG_AS_HAS_ARMV8_5=y
+CONFIG_ARM64_BTI=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y
+CONFIG_ARM64_E0PD=y
+CONFIG_ARM64_AS_HAS_MTE=y
+CONFIG_ARM64_MTE=y
+# end of ARMv8.5 architectural features
+
+#
+# ARMv8.7 architectural features
+#
+CONFIG_ARM64_EPAN=y
+# end of ARMv8.7 architectural features
+
+CONFIG_ARM64_SVE=y
+# CONFIG_ARM64_SME is not set
+# CONFIG_ARM64_PSEUDO_NMI is not set
+CONFIG_RELOCATABLE=y
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+# end of Kernel Features
+
+#
+# Boot options
+#
+CONFIG_CMDLINE=""
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_DMI=y
+# end of Boot options
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+CONFIG_ENERGY_MODEL=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# end of Power management options
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DT_IDLE_GENPD=y
+
+#
+# ARM CPU Idle Drivers
+#
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
+# end of ARM CPU Idle Drivers
+# end of CPU Idle
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+#
+# CPU frequency scaling drivers
+#
+# CONFIG_CPUFREQ_DT is not set
+# CONFIG_CPUFREQ_DT_PLATDEV is not set
+CONFIG_ARM_MEDIATEK_CPUFREQ=y
+CONFIG_ARM_MEDIATEK_CPUFREQ_HW=m
+CONFIG_ARM_SCMI_CPUFREQ=m
+# end of CPU Frequency scaling
+# end of CPU Power Management
+
+CONFIG_ARCH_SUPPORTS_ACPI=y
+# CONFIG_ACPI is not set
+CONFIG_HAVE_KVM=y
+CONFIG_KVM_COMMON=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_DIRTY_RING=y
+CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
+CONFIG_NEED_KVM_DIRTY_RING_WITH_BITMAP=y
+CONFIG_KVM_MMIO=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_KVM_VFIO=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
+CONFIG_KVM_GENERIC_MMU_NOTIFIER=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+# CONFIG_NVHE_EL2_DEBUG is not set
+
+#
+# General architecture-dependent options
+#
+CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_KEEPINITRD=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
+# CONFIG_SHADOW_CALL_STACK is not set
+CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
+CONFIG_LTO_NONE=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET=y
+# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_HAVE_ARCH_COMPILER_H=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_ARCH_HAS_RELR=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y
+CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# end of GCOV-based kernel profiling
+
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+CONFIG_FUNCTION_ALIGNMENT_4B=y
+CONFIG_FUNCTION_ALIGNMENT=4
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_MODULE_SIG=y
+# CONFIG_MODULE_SIG_FORCE is not set
+# CONFIG_MODULE_SIG_ALL is not set
+CONFIG_MODULE_SIG_SHA256=y
+# CONFIG_MODULE_SIG_SHA384 is not set
+# CONFIG_MODULE_SIG_SHA512 is not set
+# CONFIG_MODULE_SIG_SHA3_256 is not set
+# CONFIG_MODULE_SIG_SHA3_384 is not set
+# CONFIG_MODULE_SIG_SHA3_512 is not set
+CONFIG_MODULE_SIG_HASH="sha256"
+CONFIG_MODULE_COMPRESS_NONE=y
+# CONFIG_MODULE_COMPRESS_GZIP is not set
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_COMPRESS_ZSTD is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_CGROUP_PUNT_BIO=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_WRITE_MOUNTED is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_CGROUP_IOCOST is not set
+# CONFIG_BLK_CGROUP_IOPRIO is not set
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+# end of Partition Types
+
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
+CONFIG_BLK_MQ_STACKING=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=m
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+# end of IO Schedulers
+
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_STATE=y
+CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
+CONFIG_ARCH_HAVE_ELF_PROT=y
+CONFIG_ARCH_USE_GNU_PROPERTY=y
+CONFIG_ELFCORE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_ZPOOL=y
+CONFIG_SWAP=y
+CONFIG_ZSWAP=y
+# CONFIG_ZSWAP_DEFAULT_ON is not set
+# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set
+# CONFIG_ZSWAP_SHRINKER_DEFAULT_ON is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSMALLOC_CHAIN_SIZE=8
+
+#
+# Slab allocator options
+#
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_SLUB_CPU_PARTIAL is not set
+# CONFIG_RANDOM_KMALLOC_CACHES is not set
+# end of Slab allocator options
+
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_PAGE_REPORTING=y
+CONFIG_MIGRATION=y
+CONFIG_PCP_BATCH_SCALE_MAX=5
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
+CONFIG_ARCH_WANTS_THP_SWAP=y
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CMA is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_USES_PG_ARCH_X=y
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_PERCPU_STATS is not set
+
+#
+# GUP_TEST needs to have DEBUG_FS enabled
+#
+# CONFIG_DMAPOOL_TEST is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_SECRETMEM=y
+# CONFIG_ANON_VMA_NAME is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+# CONFIG_LRU_GEN_STATS is not set
+CONFIG_LRU_GEN_WALKS_MMU=y
+CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
+CONFIG_PER_VMA_LOCK=y
+CONFIG_LOCK_MM_AND_FIND_VMA=y
+
+#
+# Data Access Monitoring
+#
+# CONFIG_DAMON is not set
+# end of Data Access Monitoring
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_XGRESS=y
+CONFIG_NET_REDIRECT=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_DIAG=m
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_UNIX_DIAG=m
+CONFIG_TLS=m
+# CONFIG_TLS_DEVICE is not set
+# CONFIG_TLS_TOE is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_INTERFACE is not set
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ESP=m
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_NET_HANDSHAKE=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=y
+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=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+# CONFIG_INET_ESP_OFFLOAD is not set
+# CONFIG_INET_ESPINTCP is not set
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TABLE_PERTURB_ORDER=16
+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_SIGPOOL=y
+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 is not set
+# CONFIG_INET6_ESPINTCP is not set
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_ILA=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=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_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
+CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
+# CONFIG_NETWORK_SECMARK is not set
+# 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_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_FAMILY_ARP=y
+# CONFIG_NETFILTER_NETLINK_HOOK is not set
+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_SYSLOG=m
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+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=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+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=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=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=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=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_REJECT_INET=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB=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 is not set
+CONFIG_NF_DUP_NETDEV=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 is not set
+# CONFIG_NETFILTER_XTABLES is not set
+# 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=m
+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=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_LOG_ARP=m
+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 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_TABLES_IPV6=y
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_DUP_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
+CONFIG_NF_LOG_IPV6=m
+# CONFIG_IP6_NF_IPTABLES is not set
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+# CONFIG_NF_TABLES_BRIDGE is not set
+CONFIG_NF_CONNTRACK_BRIDGE=m
+# CONFIG_IP_DCCP is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
+# 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_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+# CONFIG_BRIDGE_MRP is not set
+# CONFIG_BRIDGE_CFM is not set
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+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_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+# CONFIG_NET_SCH_RED is not set
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+# CONFIG_NET_SCH_CBS is not set
+# CONFIG_NET_SCH_ETF is not set
+CONFIG_NET_SCH_MQPRIO_LIB=m
+# CONFIG_NET_SCH_TAPRIO is not set
+# CONFIG_NET_SCH_GRED is not set
+CONFIG_NET_SCH_NETEM=m
+# CONFIG_NET_SCH_DRR is not set
+CONFIG_NET_SCH_MQPRIO=m
+# CONFIG_NET_SCH_SKBPRIO is not set
+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 is not set
+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_SCH_ETS=m
+# CONFIG_NET_SCH_DEFAULT is not set
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_FLOW=m
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NET_CLS_BPF is not set
+CONFIG_NET_CLS_FLOWER=m
+# CONFIG_NET_CLS_MATCHALL is not set
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=y
+CONFIG_NET_ACT_GACT=y
+# CONFIG_GACT_PROB is not set
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_NAT=m
+# CONFIG_NET_ACT_PEDIT is not set
+# 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 is not set
+# CONFIG_NET_ACT_VLAN is not set
+# CONFIG_NET_ACT_BPF is not set
+CONFIG_NET_ACT_CONNMARK=m
+# CONFIG_NET_ACT_CTINFO is not set
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+# CONFIG_NET_ACT_CT is not set
+# CONFIG_NET_ACT_GATE is not set
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+# CONFIG_NET_TC_SKB_EXT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=m
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+CONFIG_NETLINK_DIAG=m
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_MPLS_ROUTING=m
+# CONFIG_MPLS_IPTUNNEL is not set
+CONFIG_NET_NSH=m
+CONFIG_HSR=m
+# CONFIG_NET_SWITCHDEV is not set
+# CONFIG_NET_L3_MASTER_DEV is not set
+# CONFIG_QRTR is not set
+# CONFIG_NET_NCSI is not set
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_MAX_SKB_FRAGS=17
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# end of Network testing
+# end of Networking options
+
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+# end of AX.25 network device drivers
+
+CONFIG_CAN=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_GW=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_ISOTP is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+# CONFIG_BT_RFCOMM is not set
+# CONFIG_BT_BNEP is not set
+# CONFIG_BT_HIDP is not set
+CONFIG_BT_LE=y
+CONFIG_BT_LE_L2CAP_ECRED=y
+# CONFIG_BT_LEDS is not set
+# CONFIG_BT_MSFTEXT is not set
+# CONFIG_BT_AOSPEXT is not set
+# CONFIG_BT_FEATURE_DEBUG is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+# CONFIG_BT_HCIBTSDIO is not set
+# CONFIG_BT_HCIUART is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+# CONFIG_BT_MTKSDIO is not set
+# CONFIG_BT_VIRTIO is not set
+# end of Bluetooth device drivers
+
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+CONFIG_STREAM_PARSER=y
+# CONFIG_MCTP is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
+# 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 is not set
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+# CONFIG_PCI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_CACHE=y
+# CONFIG_FW_UPLOAD is not set
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_GENERIC_CPU_DEVICES=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_MOXTET is not set
+# CONFIG_VEXPRESS_CONFIG is not set
+# CONFIG_MHI_BUS is not set
+# CONFIG_MHI_BUS_EP is not set
+# end of Bus devices
+
+#
+# Cache Drivers
+#
+# end of Cache Drivers
+
+CONFIG_CONNECTOR=m
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+CONFIG_ARM_SCMI_PROTOCOL=m
+CONFIG_ARM_SCMI_HAVE_TRANSPORT=y
+CONFIG_ARM_SCMI_HAVE_SHMEM=y
+CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y
+CONFIG_ARM_SCMI_TRANSPORT_SMC=y
+# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set
+# CONFIG_ARM_SCMI_TRANSPORT_VIRTIO is not set
+# CONFIG_ARM_SCMI_POWER_CONTROL is not set
+# end of ARM System Control and Management Interface Protocol
+
+CONFIG_ARM_SCPI_PROTOCOL=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_SYSFB=y
+CONFIG_SYSFB_SIMPLEFB=y
+# CONFIG_ARM_FFA_TRANSPORT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+# CONFIG_EFI_ZBOOT is not set
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+CONFIG_EFI_BOOTLOADER_CONTROL=y
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+# CONFIG_EFI_DISABLE_RUNTIME is not set
+# CONFIG_EFI_COCO_SECRET is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+
+#
+# Qualcomm firmware drivers
+#
+# end of Qualcomm firmware drivers
+
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
+# CONFIG_GNSS is not set
+# CONFIG_MTD 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_DYNAMIC=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OF_OVERLAY=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_CDROM=m
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEF_COMP_LZORLE is not set
+CONFIG_ZRAM_DEF_COMP_ZSTD=y
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+CONFIG_ZRAM_DEF_COMP="zstd"
+# CONFIG_ZRAM_WRITEBACK is not set
+# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
+# CONFIG_ZRAM_MULTI_COMP is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
+# 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_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_UBLK is not set
+
+#
+# NVME Support
+#
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP 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_HI6421V600_IRQ 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_HISI_HIKEY_USB is not set
+# CONFIG_OPEN_DICE is not set
+# CONFIG_VCPU_STALL_DETECTOR is not set
+# CONFIG_NSM is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=m
+# 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
+# CONFIG_ECHO is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_UACCE is not set
+# CONFIG_PVPANIC is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI_COMMON=y
+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=m
+# CONFIG_CHR_DEV_SG is not set
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# 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=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_VIRTIO=m
+# CONFIG_SCSI_DH is not set
+# end of SCSI device support
+
+# CONFIG_ATA is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_BITMAP_FILE is not set
+# CONFIG_BCACHE is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_UNSTRIPED is not set
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_THIN_PROVISIONING is not set
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_WRITECACHE is not set
+# CONFIG_DM_EBS is not set
+# CONFIG_DM_ERA is not set
+# CONFIG_DM_CLONE is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_RAID is not set
+# CONFIG_DM_ZERO is not set
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_DUST is not set
+# CONFIG_DM_UEVENT is not set
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_DM_VERITY is not set
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+# CONFIG_DM_INTEGRITY 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_WIREGUARD=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_EQUALIZER=m
+CONFIG_IFB=m
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+CONFIG_BAREUDP=m
+CONFIG_GTP=m
+CONFIG_AMT=m
+CONFIG_MACSEC=m
+# CONFIG_NETCONSOLE is not set
+CONFIG_TUN=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+# CONFIG_ETHERNET is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+CONFIG_LED_TRIGGER_PHY=y
+CONFIG_PHYLIB_LEDS=y
+CONFIG_FIXED_PHY=y
+# CONFIG_SFP is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_ADIN_PHY is not set
+# CONFIG_ADIN1100_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+CONFIG_AX88796B_PHY=m
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MARVELL_88Q2XXX_PHY is not set
+# CONFIG_MARVELL_88X2222_PHY is not set
+# CONFIG_MAXLINEAR_GPHY is not set
+# CONFIG_MEDIATEK_GE_PHY is not set
+# CONFIG_MEDIATEK_GE_SOC_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_MICROCHIP_T1S_PHY is not set
+CONFIG_MICROCHIP_PHY=m
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_MOTORCOMM_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_CBTX_PHY is not set
+# CONFIG_NXP_C45_TJA11XX_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_NCN26000_PHY is not set
+CONFIG_AT803X_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_REALTEK_PHY=m
+# CONFIG_RENESAS_PHY is not set
+CONFIG_ROCKCHIP_PHY=y
+CONFIG_SMSC_PHY=m
+CONFIG_STE10XP=m
+# CONFIG_TERANETICS_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_DP83869_PHY is not set
+# CONFIG_DP83TD510_PHY is not set
+# CONFIG_DP83TG720_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PSE_CONTROLLER is not set
+CONFIG_CAN_DEV=m
+# CONFIG_CAN_VCAN is not set
+# CONFIG_CAN_VXCAN is not set
+# CONFIG_CAN_NETLINK is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+
+#
+# MDIO Multiplexers
+#
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+
+#
+# PCS device drivers
+#
+# end of PCS device drivers
+
+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_PPPOE_HASH_BITS_1 is not set
+# CONFIG_PPPOE_HASH_BITS_2 is not set
+CONFIG_PPPOE_HASH_BITS_4=y
+# CONFIG_PPPOE_HASH_BITS_8 is not set
+CONFIG_PPPOE_HASH_BITS=4
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+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=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_CH9200=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_USB_RTL8153_ECM=m
+CONFIG_WLAN=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT7601U=m
+# CONFIG_MT76x0U is not set
+# CONFIG_MT76x2U is not set
+# CONFIG_MT7663U is not set
+# CONFIG_MT7663S is not set
+# CONFIG_MT7921S is not set
+# CONFIG_MT7921U is not set
+# CONFIG_MT7925U is not set
+CONFIG_WLAN_VENDOR_MICROCHIP=y
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
+# CONFIG_WLAN_VENDOR_PURELIFI is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_SILABS is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+CONFIG_MAC80211_HWSIM=m
+CONFIG_VIRT_WIFI=m
+# CONFIG_WAN is not set
+
+#
+# Wireless WAN
+#
+# CONFIG_WWAN is not set
+# end of Wireless WAN
+
+CONFIG_NET_FAILOVER=m
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_MATRIXKMAP=y
+CONFIG_INPUT_VIVALDIFMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADC is not set
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_PINEPHONE is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEYBOARD_CROS_EC=y
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_MT6779 is not set
+CONFIG_KEYBOARD_MTK_PMIC=m
+# CONFIG_KEYBOARD_CYPRESS_SF is not set
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+CONFIG_MOUSE_ELAN_I2C=m
+CONFIG_MOUSE_ELAN_I2C_I2C=y
+CONFIG_MOUSE_ELAN_I2C_SMBUS=y
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOUSE_SYNAPTICS_USB=m
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADC is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+# CONFIG_JOYSTICK_IFORCE_232 is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_ZHENHUA is not set
+# CONFIG_JOYSTICK_AS5011 is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+# CONFIG_JOYSTICK_PSXPAD_SPI is not set
+# CONFIG_JOYSTICK_PXRC is not set
+# CONFIG_JOYSTICK_QWIIC is not set
+# CONFIG_JOYSTICK_FSIA6B is not set
+# CONFIG_JOYSTICK_SENSEHAT is not set
+# CONFIG_JOYSTICK_SEESAW is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ADC is not set
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_BU21029 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
+# CONFIG_TOUCHSCREEN_EXC3000 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GOODIX is not set
+# CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
+# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_ILITEK is not set
+# CONFIG_TOUCHSCREEN_S6SY761 is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+CONFIG_TOUCHSCREEN_ELAN=m
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
+# CONFIG_TOUCHSCREEN_MSG2638 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set
+# CONFIG_TOUCHSCREEN_IMAGIS is not set
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+# CONFIG_TOUCHSCREEN_TSC2004 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_RM_TS is not set
+# CONFIG_TOUCHSCREEN_SILEAD is not set
+# CONFIG_TOUCHSCREEN_SIS_I2C is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_SUR40 is not set
+# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
+# CONFIG_TOUCHSCREEN_SX8654 is not set
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_ZET6223 is not set
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+# CONFIG_TOUCHSCREEN_IQS5XX is not set
+# CONFIG_TOUCHSCREEN_IQS7211 is not set
+# CONFIG_TOUCHSCREEN_ZINITIX is not set
+# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+# CONFIG_INPUT_GPIO_VIBRA is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_KXTJ9 is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_PALMAS_PWRBUTTON is not set
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_DA7280_HAPTICS is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_IQS269A is not set
+# CONFIG_INPUT_IQS626A is not set
+# CONFIG_INPUT_IQS7222 is not set
+# CONFIG_INPUT_CMA3000 is not set
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+CONFIG_RMI4_CORE=y
+# CONFIG_RMI4_I2C is not set
+# CONFIG_RMI4_SPI is not set
+# CONFIG_RMI4_SMB is not set
+CONFIG_RMI4_F03=y
+CONFIG_RMI4_F03_SERIO=y
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+# CONFIG_RMI4_F34 is not set
+# CONFIG_RMI4_F3A is not set
+# CONFIG_RMI4_F55 is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_AMBAKMI is not set
+# CONFIG_SERIO_LIBPS2 is not set
+CONFIG_SERIO_RAW=m
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO 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=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
+CONFIG_LDISC_AUTOLOAD=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+# CONFIG_SERIAL_8250_FINTEK is not set
+# CONFIG_SERIAL_8250_CONSOLE is not set
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_FSL=y
+# CONFIG_SERIAL_8250_DW is not set
+# CONFIG_SERIAL_8250_RT288X is not set
+CONFIG_SERIAL_8250_MT6577=y
+CONFIG_SERIAL_OF_PLATFORM=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+# CONFIG_SERIAL_AMBA_PL011 is not set
+# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART 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
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NULL_TTY is not set
+CONFIG_HVC_DRIVER=y
+# CONFIG_HVC_DCC is not set
+# CONFIG_SERIAL_DEV_BUS is not set
+CONFIG_VIRTIO_CONSOLE=m
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+# CONFIG_HW_RANDOM_BA431 is not set
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HW_RANDOM_MTK=m
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+# CONFIG_TCG_TPM is not set
+# CONFIG_XILLYBUS is not set
+# CONFIG_XILLYUSB is not set
+# end of Character devices
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=y
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_GPMUX is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+# end of Multiplexer I2C Chip support
+
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CADENCE is not set
+# CONFIG_I2C_CBUS_GPIO is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_HISI is not set
+CONFIG_I2C_MT65XX=y
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_CP2615 is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_CROS_EC_TUNNEL=y
+# CONFIG_I2C_VIRTIO is not set
+# end of I2C Hardware Bus support
+
+CONFIG_I2C_STUB=m
+# 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_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=y
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_CADENCE_QUADSPI is not set
+# CONFIG_SPI_CADENCE_XSPI is not set
+# CONFIG_SPI_DESIGNWARE is not set
+CONFIG_SPI_GPIO=y
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_MICROCHIP_CORE is not set
+# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
+CONFIG_SPI_MT65XX=y
+CONFIG_SPI_MTK_NOR=y
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SIFIVE is not set
+CONFIG_SPI_SLAVE_MT27XX=m
+# CONFIG_SPI_SN_F_OSPI 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
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SLAVE_TIME=m
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
+CONFIG_SPI_DYNAMIC=y
+CONFIG_SPMI=m
+# CONFIG_SPMI_HISI3670 is not set
+CONFIG_SPMI_MTK_PMIF=m
+# CONFIG_HSI is not set
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_PINCTRL_AS3722 is not set
+# CONFIG_PINCTRL_CY8C95X0 is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_PALMAS is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_SX150X is not set
+
+#
+# MediaTek pinctrl drivers
+#
+CONFIG_EINT_MTK=y
+CONFIG_PINCTRL_MTK=y
+CONFIG_PINCTRL_MTK_V2=y
+CONFIG_PINCTRL_MTK_MOORE=y
+CONFIG_PINCTRL_MTK_PARIS=y
+CONFIG_PINCTRL_MT2712=y
+CONFIG_PINCTRL_MT6765=y
+CONFIG_PINCTRL_MT6779=y
+CONFIG_PINCTRL_MT6795=y
+CONFIG_PINCTRL_MT6797=y
+CONFIG_PINCTRL_MT7622=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_PINCTRL_MT7986=y
+CONFIG_PINCTRL_MT8167=y
+CONFIG_PINCTRL_MT8173=y
+CONFIG_PINCTRL_MT8183=y
+CONFIG_PINCTRL_MT8186=y
+# CONFIG_PINCTRL_MT8188 is not set
+CONFIG_PINCTRL_MT8192=y
+# CONFIG_PINCTRL_MT8195 is not set
+CONFIG_PINCTRL_MT8365=y
+CONFIG_PINCTRL_MT8516=y
+CONFIG_PINCTRL_MT6397=y
+# end of MediaTek pinctrl drivers
+
+#
+# Renesas pinctrl drivers
+#
+# end of Renesas pinctrl drivers
+
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=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_HISI is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_PL061 is not set
+# CONFIG_GPIO_SIFIVE is not set
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_XGENE is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_FXL6408 is not set
+# CONFIG_GPIO_DS4520 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_PCA9570 is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+CONFIG_GPIO_PALMAS=y
+# CONFIG_GPIO_TPS6586X is not set
+# 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
+
+#
+# Virtual GPIO drivers
+#
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_LATCH is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_VIRTIO is not set
+# CONFIG_GPIO_SIM is not set
+# end of Virtual GPIO drivers
+
+# CONFIG_W1 is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_AS3722 is not set
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+CONFIG_POWER_RESET_MT6323=y
+# CONFIG_POWER_RESET_REGULATOR is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_XGENE is not set
+# CONFIG_POWER_RESET_SYSCON is not set
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+# CONFIG_SYSCON_REBOOT_MODE is not set
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_IP5XXX_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_CW2015 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SAMSUNG_SDI is not set
+CONFIG_BATTERY_SBS=m
+CONFIG_CHARGER_SBS=m
+CONFIG_MANAGER_SBS=m
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_LTC4162L is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MAX77976 is not set
+# CONFIG_CHARGER_MT6360 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ2515X is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
+# CONFIG_CHARGER_BQ256XX is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_CHARGER_TPS65090 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_BATTERY_RT5033 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_RT9467 is not set
+# CONFIG_CHARGER_RT9471 is not set
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
+# CONFIG_CHARGER_UCS1002 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_BATTERY_UG3105 is not set
+# CONFIG_FUEL_GAUGE_MM8013 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_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM1177 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_AHT10 is not set
+# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+CONFIG_SENSORS_ARM_SCMI=m
+CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
+# CONFIG_SENSORS_CORSAIR_PSU 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_GIGABYTE_WATERFORCE 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_HS3001 is not set
+CONFIG_SENSORS_IIO_HWMON=m
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWERZ is not set
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC2991 is not set
+# CONFIG_SENSORS_LTC2992 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_MAX127 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_MAX31730 is not set
+# CONFIG_SENSORS_MAX31760 is not set
+# CONFIG_MAX31827 is not set
+# CONFIG_SENSORS_MAX6620 is not set
+# CONFIG_SENSORS_MAX6621 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_MAX31790 is not set
+# CONFIG_SENSORS_MC34VR500 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_TPS23861 is not set
+# CONFIG_SENSORS_MR75203 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=m
+# 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_NCT6775_I2C is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
+# CONFIG_SENSORS_NZXT_SMART2 is not set
+# CONFIG_SENSORS_OCC_P8_I2C is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_PWM_FAN is not set
+# CONFIG_SENSORS_SBTSI is not set
+# CONFIG_SENSORS_SBRMI is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHT4x 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_EMC2305 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_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_INA238 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=m
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_TMP464 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# 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=y
+CONFIG_THERMAL_NETLINK=y
+# CONFIG_THERMAL_STATISTICS is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_FREQ_THERMAL=y
+# CONFIG_CPU_IDLE_THERMAL is not set
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+# CONFIG_THERMAL_MMIO is not set
+
+#
+# Mediatek thermal drivers
+#
+CONFIG_MTK_THERMAL=y
+CONFIG_MTK_SOC_THERMAL=m
+CONFIG_MTK_LVTS_THERMAL=m
+# end of Mediatek thermal drivers
+
+CONFIG_GENERIC_ADC_THERMAL=m
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=m
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_SYSFS is not set
+# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT 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_XILINX_WINDOW_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_ARM_SP805_WATCHDOG is not set
+# CONFIG_ARM_SBSA_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+CONFIG_MEDIATEK_WATCHDOG=m
+# CONFIG_ARM_SMC_WATCHDOG 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=m
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DRIVER_GPIO is not set
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_SMPRO is not set
+CONFIG_MFD_AS3722=m
+# 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_CROS_EC_DEV=y
+# CONFIG_MFD_CS42L43_I2C is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_MFD_MAX5970 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_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+# CONFIG_MFD_IQS62X 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_MAX77541 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_MAX77714 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_MT6360=m
+# CONFIG_MFD_MT6370 is not set
+CONFIG_MFD_MT6397=y
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_OCELOT is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_NTXEC is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_SY7636A is not set
+# CONFIG_MFD_RT4831 is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RT5120 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK8XX_I2C is not set
+# CONFIG_MFD_RK8XX_SPI 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_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+CONFIG_MFD_PALMAS=y
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+CONFIG_MFD_TPS65090=y
+# 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_TPS65219 is not set
+CONFIG_MFD_TPS6586X=y
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS6594_I2C is not set
+# CONFIG_MFD_TPS6594_SPI 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_BD71828 is not set
+# CONFIG_MFD_ROHM_BD957XMUF is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_ATC260X_I2C is not set
+# CONFIG_MFD_QCOM_PM8008 is not set
+# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
+# CONFIG_MFD_RSMU_I2C is not set
+# CONFIG_MFD_RSMU_SPI is not set
+# end of Multifunction device drivers
+
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+# CONFIG_REGULATOR_NETLINK_EVENTS is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+CONFIG_REGULATOR_ARM_SCMI=m
+CONFIG_REGULATOR_AS3722=m
+# CONFIG_REGULATOR_AW37503 is not set
+CONFIG_REGULATOR_CROS_EC=m
+# CONFIG_REGULATOR_DA9121 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+CONFIG_REGULATOR_DA9211=y
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_FAN53880 is not set
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX77503 is not set
+# CONFIG_REGULATOR_MAX77857 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8893 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+CONFIG_REGULATOR_MAX8973=m
+# CONFIG_REGULATOR_MAX20086 is not set
+# CONFIG_REGULATOR_MAX20411 is not set
+# CONFIG_REGULATOR_MAX77826 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MP5416 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MP886X is not set
+# CONFIG_REGULATOR_MPQ7920 is not set
+CONFIG_REGULATOR_MT6311=y
+# CONFIG_REGULATOR_MT6315 is not set
+CONFIG_REGULATOR_MT6323=y
+# CONFIG_REGULATOR_MT6331 is not set
+# CONFIG_REGULATOR_MT6332 is not set
+# CONFIG_REGULATOR_MT6357 is not set
+CONFIG_REGULATOR_MT6358=y
+CONFIG_REGULATOR_MT6359=m
+CONFIG_REGULATOR_MT6360=m
+CONFIG_REGULATOR_MT6380=y
+CONFIG_REGULATOR_MT6397=y
+CONFIG_REGULATOR_PALMAS=y
+# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PF8X00 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+CONFIG_REGULATOR_PWM=y
+# CONFIG_REGULATOR_QCOM_SPMI is not set
+# CONFIG_REGULATOR_QCOM_USB_VBUS is not set
+# CONFIG_REGULATOR_RAA215300 is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RT4803 is not set
+# CONFIG_REGULATOR_RT5190A is not set
+# CONFIG_REGULATOR_RT5739 is not set
+# CONFIG_REGULATOR_RT5759 is not set
+# CONFIG_REGULATOR_RT6160 is not set
+# CONFIG_REGULATOR_RT6190 is not set
+# CONFIG_REGULATOR_RT6245 is not set
+# CONFIG_REGULATOR_RTQ2134 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_RTQ6752 is not set
+# CONFIG_REGULATOR_RTQ2208 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+# CONFIG_REGULATOR_SY8827N is not set
+CONFIG_REGULATOR_TPS51632=m
+CONFIG_REGULATOR_TPS62360=m
+# CONFIG_REGULATOR_TPS6286X is not set
+# CONFIG_REGULATOR_TPS6287X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+CONFIG_REGULATOR_TPS65090=m
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_TPS6586X is not set
+CONFIG_REGULATOR_VCTRL=m
+# CONFIG_REGULATOR_QCOM_LABIBB is not set
+# CONFIG_RC_CORE is not set
+CONFIG_CEC_CORE=m
+CONFIG_CEC_NOTIFIER=y
+
+#
+# CEC support
+#
+CONFIG_MEDIA_CEC_SUPPORT=y
+# CONFIG_CEC_CH7322 is not set
+CONFIG_CEC_CROS_EC=m
+# CONFIG_CEC_GPIO is not set
+# CONFIG_USB_PULSE8_CEC is not set
+# CONFIG_USB_RAINSHADOW_CEC is not set
+# end of CEC support
+
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+
+#
+# Media device types
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+# CONFIG_MEDIA_TEST_SUPPORT is not set
+# end of Media device types
+
+CONFIG_VIDEO_DEV=m
+CONFIG_MEDIA_CONTROLLER=y
+
+#
+# Video4Linux options
+#
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_H264=m
+CONFIG_V4L2_VP9=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+# CONFIG_V4L2_FLASH_LED_CLASS is not set
+CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_ASYNC=m
+# end of Video4Linux options
+
+#
+# Media controller options
+#
+# end of Media controller options
+
+#
+# Media drivers
+#
+
+#
+# Drivers filtered as selected at 'Filter media drivers'
+#
+
+#
+# Media drivers
+#
+CONFIG_MEDIA_USB_SUPPORT=y
+
+#
+# Webcam devices
+#
+# CONFIG_USB_GSPCA is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_VIDEO_USBTV is not set
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+
+#
+# Webcam, TV (analog/digital) USB devices
+#
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_V4L2=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+
+#
+# Software defined radio USB devices
+#
+CONFIG_USB_AIRSPY=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_MSI2500=m
+CONFIG_MEDIA_PLATFORM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+# CONFIG_SDR_PLATFORM_DRIVERS is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
+# CONFIG_VIDEO_MUX is not set
+
+#
+# Allegro DVT media platform drivers
+#
+
+#
+# Amlogic media platform drivers
+#
+
+#
+# Amphion drivers
+#
+
+#
+# Aspeed media platform drivers
+#
+
+#
+# Atmel media platform drivers
+#
+
+#
+# Cadence media platform drivers
+#
+# CONFIG_VIDEO_CADENCE_CSI2RX is not set
+# CONFIG_VIDEO_CADENCE_CSI2TX is not set
+
+#
+# Chips&Media media platform drivers
+#
+
+#
+# Intel media platform drivers
+#
+
+#
+# Marvell media platform drivers
+#
+
+#
+# Mediatek media platform drivers
+#
+CONFIG_VIDEO_MEDIATEK_JPEG=m
+CONFIG_VIDEO_MEDIATEK_MDP=m
+CONFIG_VIDEO_MEDIATEK_VCODEC_VPU=y
+CONFIG_VIDEO_MEDIATEK_VCODEC=m
+CONFIG_VIDEO_MEDIATEK_VPU=m
+
+#
+# Microchip Technology, Inc. media platform drivers
+#
+
+#
+# Nuvoton media platform drivers
+#
+
+#
+# NVidia media platform drivers
+#
+
+#
+# NXP media platform drivers
+#
+
+#
+# Qualcomm media platform drivers
+#
+
+#
+# Renesas media platform drivers
+#
+
+#
+# Rockchip media platform drivers
+#
+
+#
+# Samsung media platform drivers
+#
+
+#
+# STMicroelectronics media platform drivers
+#
+
+#
+# Sunxi media platform drivers
+#
+
+#
+# Texas Instruments drivers
+#
+
+#
+# Verisilicon media platform drivers
+#
+
+#
+# VIA media platform drivers
+#
+
+#
+# Xilinx media platform drivers
+#
+# CONFIG_VIDEO_XILINX is not set
+CONFIG_UVC_COMMON=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+# end of Media drivers
+
+CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
+
+#
+# Media ancillary drivers
+#
+CONFIG_VIDEO_CAMERA_SENSOR=y
+# CONFIG_VIDEO_ALVIUM_CSI2 is not set
+# CONFIG_VIDEO_AR0521 is not set
+# CONFIG_VIDEO_GC0308 is not set
+# CONFIG_VIDEO_GC2145 is not set
+# CONFIG_VIDEO_HI556 is not set
+# CONFIG_VIDEO_HI846 is not set
+# CONFIG_VIDEO_HI847 is not set
+# CONFIG_VIDEO_IMX208 is not set
+# CONFIG_VIDEO_IMX214 is not set
+# CONFIG_VIDEO_IMX219 is not set
+# CONFIG_VIDEO_IMX258 is not set
+# CONFIG_VIDEO_IMX274 is not set
+# CONFIG_VIDEO_IMX290 is not set
+# CONFIG_VIDEO_IMX296 is not set
+# CONFIG_VIDEO_IMX319 is not set
+# CONFIG_VIDEO_IMX334 is not set
+# CONFIG_VIDEO_IMX335 is not set
+# CONFIG_VIDEO_IMX355 is not set
+# CONFIG_VIDEO_IMX412 is not set
+# CONFIG_VIDEO_IMX415 is not set
+# CONFIG_VIDEO_MT9M001 is not set
+# CONFIG_VIDEO_MT9M111 is not set
+# CONFIG_VIDEO_MT9M114 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T112 is not set
+CONFIG_VIDEO_MT9V011=m
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MT9V111 is not set
+# CONFIG_VIDEO_OG01A1B is not set
+# CONFIG_VIDEO_OV01A10 is not set
+# CONFIG_VIDEO_OV02A10 is not set
+# CONFIG_VIDEO_OV08D10 is not set
+# CONFIG_VIDEO_OV08X40 is not set
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_OV13B10 is not set
+CONFIG_VIDEO_OV2640=m
+# CONFIG_VIDEO_OV2659 is not set
+# CONFIG_VIDEO_OV2680 is not set
+# CONFIG_VIDEO_OV2685 is not set
+# CONFIG_VIDEO_OV4689 is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV5648 is not set
+# CONFIG_VIDEO_OV5670 is not set
+# CONFIG_VIDEO_OV5675 is not set
+# CONFIG_VIDEO_OV5693 is not set
+# CONFIG_VIDEO_OV5695 is not set
+# CONFIG_VIDEO_OV64A40 is not set
+# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV7251 is not set
+# CONFIG_VIDEO_OV7640 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_OV772X is not set
+# CONFIG_VIDEO_OV7740 is not set
+# CONFIG_VIDEO_OV8856 is not set
+# CONFIG_VIDEO_OV8858 is not set
+# CONFIG_VIDEO_OV8865 is not set
+# CONFIG_VIDEO_OV9282 is not set
+# CONFIG_VIDEO_OV9640 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_RDACM20 is not set
+# CONFIG_VIDEO_RDACM21 is not set
+# CONFIG_VIDEO_RJ54N1 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_ST_VGXY61 is not set
+# CONFIG_VIDEO_CCS is not set
+# CONFIG_VIDEO_ET8EK8 is not set
+
+#
+# Camera ISPs
+#
+# CONFIG_VIDEO_THP7312 is not set
+# end of Camera ISPs
+
+#
+# Lens drivers
+#
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_AK7375 is not set
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_DW9719 is not set
+# CONFIG_VIDEO_DW9768 is not set
+# CONFIG_VIDEO_DW9807_VCM is not set
+# end of Lens drivers
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+# end of Flash devices
+
+#
+# audio, video and radio I2C drivers auto-selected by 'Autoselect ancillary drivers'
+#
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_TVP5150=m
+
+#
+# Video and audio decoders
+#
+
+#
+# Video serializers and deserializers
+#
+# CONFIG_VIDEO_DS90UB913 is not set
+# CONFIG_VIDEO_DS90UB953 is not set
+# CONFIG_VIDEO_DS90UB960 is not set
+# end of Video serializers and deserializers
+
+#
+# SPI I2C drivers auto-selected by 'Autoselect ancillary drivers'
+#
+
+#
+# Media SPI Adapters
+#
+# CONFIG_VIDEO_GS1662 is not set
+# end of Media SPI Adapters
+
+CONFIG_MEDIA_TUNER=m
+
+#
+# Tuner drivers auto-selected by 'Autoselect ancillary drivers'
+#
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MSI001=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+# end of Media ancillary drivers
+
+#
+# Graphics support
+#
+CONFIG_APERTURE_HELPERS=y
+CONFIG_VIDEO_CMDLINE=y
+CONFIG_VIDEO_NOMODESET=y
+# CONFIG_AUXDISPLAY is not set
+CONFIG_DRM=y
+CONFIG_DRM_MIPI_DSI=y
+# CONFIG_DRM_DEBUG_MM is not set
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_DP_AUX_BUS=y
+CONFIG_DRM_DISPLAY_HELPER=y
+CONFIG_DRM_DISPLAY_DP_HELPER=y
+CONFIG_DRM_DP_AUX_CHARDEV=y
+# CONFIG_DRM_DP_CEC is not set
+CONFIG_DRM_GEM_DMA_HELPER=m
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+CONFIG_DRM_VGEM=m
+# CONFIG_DRM_VKMS is not set
+CONFIG_DRM_UDL=m
+# CONFIG_DRM_VIRTIO_GPU is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
+# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set
+# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
+# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
+# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
+# CONFIG_DRM_PANEL_DSI_CM is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_EDP=y
+# CONFIG_DRM_PANEL_EBBG_FT8719 is not set
+# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
+# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
+# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
+# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
+# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_JDI_LPM102A188A is not set
+# CONFIG_DRM_PANEL_JDI_R63452 is not set
+# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
+# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
+# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
+# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set
+# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set
+# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
+# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set
+# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
+# CONFIG_DRM_PANEL_TPO_TPG110 is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set
+# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set
+# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
+# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
+# CONFIG_DRM_CHRONTEL_CH7033 is not set
+CONFIG_DRM_CROS_EC_ANX7688=m
+CONFIG_DRM_DISPLAY_CONNECTOR=y
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NWL_MIPI_DSI is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+CONFIG_DRM_PARADE_PS8640=y
+# CONFIG_DRM_SAMSUNG_DSIM is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+# CONFIG_DRM_ANALOGIX_ANX6345 is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
+# end of Display Interface Bridges
+
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_HISI_KIRIN is not set
+# CONFIG_DRM_LOGICVC is not set
+CONFIG_DRM_MEDIATEK=y
+CONFIG_DRM_MEDIATEK_DP=y
+CONFIG_DRM_MEDIATEK_HDMI=y
+# CONFIG_DRM_ARCPGU is not set
+CONFIG_DRM_GM12U320=m
+# CONFIG_DRM_PANEL_MIPI_DBI is not set
+CONFIG_DRM_SIMPLEDRM=y
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9163 is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+CONFIG_DRM_PL111=m
+# CONFIG_DRM_LIMA is not set
+# CONFIG_DRM_PANFROST is not set
+# CONFIG_DRM_TIDSS is not set
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
+# CONFIG_DRM_POWERVR is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_EFI is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_SMSCUFX is not set
+CONFIG_FB_UDL=m
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_SSD1307 is not set
+CONFIG_FB_CORE=y
+CONFIG_FB_NOTIFY=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_DEVICE=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYSMEM_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_DMAMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+CONFIG_LCD_CLASS_DEVICE=y
+# CONFIG_LCD_L4F00242T03 is not set
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_ILI922X is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+CONFIG_LCD_PLATFORM=y
+# CONFIG_LCD_AMS369FG06 is not set
+# CONFIG_LCD_LMS501KF03 is not set
+# CONFIG_LCD_HX8357 is not set
+# CONFIG_LCD_OTM3225A is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_KTD253 is not set
+# CONFIG_BACKLIGHT_KTZ8866 is not set
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_BACKLIGHT_QCOM_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+CONFIG_BACKLIGHT_LP855X=y
+# CONFIG_BACKLIGHT_MP3309C is not set
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_BACKLIGHT_LED is not set
+# end of Backlight & LCD device support
+
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+# end of Console display driver support
+
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+# end of Graphics support
+
+# CONFIG_DRM_ACCEL is not set
+CONFIG_SOUND=m
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_HWDEP=m
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_MAX_CARDS=32
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_CTL_FAST_LOOKUP=y
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_CTL_INPUT_VALIDATION is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_MIDI=m
+# CONFIG_SND_SEQ_UMP is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+CONFIG_SND_ALOOP=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+
+#
+# HD-Audio
+#
+# end of HD-Audio
+
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_SOC=m
+# CONFIG_SND_SOC_ADI is not set
+# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_AMD_ACP_CONFIG is not set
+# CONFIG_SND_ATMEL_SOC is not set
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# end of SoC Audio for Freescale CPUs
+
+# CONFIG_SND_SOC_CHV3_I2S is not set
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+CONFIG_SND_SOC_MEDIATEK=m
+# CONFIG_SND_SOC_MT2701 is not set
+# CONFIG_SND_SOC_MT6797 is not set
+# CONFIG_SND_SOC_MT7986 is not set
+CONFIG_SND_SOC_MT8173=m
+# CONFIG_SND_SOC_MT8173_MAX98090 is not set
+CONFIG_SND_SOC_MT8173_RT5650=m
+CONFIG_SND_SOC_MT8173_RT5650_RT5514=m
+CONFIG_SND_SOC_MT8173_RT5650_RT5676=m
+CONFIG_SND_SOC_MT8183=m
+CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A=m
+CONFIG_SND_SOC_MT8183_DA7219_MAX98357A=m
+# CONFIG_SND_SOC_MT8186 is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+# CONFIG_SND_SOC_MT8188 is not set
+# CONFIG_SND_SOC_MT8192 is not set
+# CONFIG_SND_SOC_MT8195 is not set
+# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# end of STMicroelectronics STM32 SOC audio support
+
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4375 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set
+# CONFIG_SND_SOC_AW8738 is not set
+# CONFIG_SND_SOC_AW88395 is not set
+# CONFIG_SND_SOC_AW88261 is not set
+# CONFIG_SND_SOC_AW87390 is not set
+# CONFIG_SND_SOC_AW88399 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+CONFIG_SND_SOC_BT_SCO=m
+# CONFIG_SND_SOC_CHV3_CODEC is not set
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS35L41_SPI is not set
+# CONFIG_SND_SOC_CS35L41_I2C is not set
+# CONFIG_SND_SOC_CS35L45_SPI is not set
+# CONFIG_SND_SOC_CS35L45_I2C is not set
+# CONFIG_SND_SOC_CS35L56_I2C is not set
+# CONFIG_SND_SOC_CS35L56_SPI is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS42L83 is not set
+# CONFIG_SND_SOC_CS4234 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_CX2072X is not set
+# CONFIG_SND_SOC_DA7213 is not set
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES7241 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8326 is not set
+CONFIG_SND_SOC_ES8328=m
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_ES8328_SPI=m
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_HDA is not set
+# CONFIG_SND_SOC_ICS43432 is not set
+# CONFIG_SND_SOC_IDT821034 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98088 is not set
+# CONFIG_SND_SOC_MAX98090 is not set
+CONFIG_SND_SOC_MAX98357A=m
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98520 is not set
+# CONFIG_SND_SOC_MAX98373_I2C is not set
+# CONFIG_SND_SOC_MAX98388 is not set
+# CONFIG_SND_SOC_MAX98390 is not set
+# CONFIG_SND_SOC_MAX98396 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3060_I2C is not set
+# CONFIG_SND_SOC_PCM3060_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_PEB2466 is not set
+# CONFIG_SND_SOC_RK3328 is not set
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RT1015=m
+CONFIG_SND_SOC_RT1015P=m
+CONFIG_SND_SOC_RT5514=m
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_RT5640 is not set
+CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5659=m
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
+# CONFIG_SND_SOC_RT9120 is not set
+# CONFIG_SND_SOC_RTQ9128 is not set
+# CONFIG_SND_SOC_SGTL5000 is not set
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIMPLE_MUX is not set
+# CONFIG_SND_SOC_SMA1303 is not set
+# CONFIG_SND_SOC_SPDIF is not set
+# CONFIG_SND_SOC_SRC4XXX_I2C is not set
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2518 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM3515 is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2764 is not set
+# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS2780 is not set
+# CONFIG_SND_SOC_TAS2781_I2C is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS5805M is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TFA989X is not set
+# CONFIG_SND_SOC_TLV320ADC3XXX is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+CONFIG_SND_SOC_TS3A227E=m
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731_I2C is not set
+# CONFIG_SND_SOC_WM8731_SPI is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8940 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8961 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZL38060 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+CONFIG_SND_SOC_MT6351=m
+CONFIG_SND_SOC_MT6358=m
+# CONFIG_SND_SOC_MT6359 is not set
+# CONFIG_SND_SOC_MT6359_ACCDET is not set
+CONFIG_SND_SOC_MT6660=m
+# CONFIG_SND_SOC_NAU8315 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8821 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
+# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
+# end of CODEC drivers
+
+# CONFIG_SND_SIMPLE_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
+# CONFIG_SND_TEST_COMPONENT is not set
+# CONFIG_SND_VIRTIO is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELAN is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EVISION is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GOOGLE_HAMMER is not set
+# CONFIG_HID_GOOGLE_STADIA_FF is not set
+# CONFIG_HID_VIVALDI is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+CONFIG_HID_UCLOGIC=m
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_VRC2 is not set
+# CONFIG_HID_XIAOMI is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LETSKETCH is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_MEGAWORLD_FF is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+CONFIG_HID_MULTITOUCH=m
+# CONFIG_HID_NINTENDO is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PLAYSTATION is not set
+# CONFIG_HID_PXRC is not set
+# CONFIG_HID_RAZER is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SEMITEK is not set
+# CONFIG_HID_SIGMAMICRO is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+CONFIG_HID_RMI=y
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_TOPRE is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_U2FZERO is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2200 is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# HID-BPF support
+#
+# end of HID-BPF support
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+# end of USB HID support
+
+CONFIG_I2C_HID=y
+CONFIG_I2C_HID_OF=m
+CONFIG_I2C_HID_OF_ELAN=m
+# CONFIG_I2C_HID_OF_GOODIX is not set
+CONFIG_I2C_HID_CORE=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_USB_ULPI_BUS=y
+CONFIG_USB_CONN_GPIO=m
+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_FEW_INIT_RETRIES is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_MON=m
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DBGCAP=y
+# CONFIG_USB_XHCI_PCI_RENESAS is not set
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_XHCI_MTK=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_EHCI_FSL is not set
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_SSB is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# 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=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+
+#
+# USB dual-mode controller drivers
+#
+# CONFIG_USB_CDNS_SUPPORT is not set
+CONFIG_USB_MTU3=y
+CONFIG_USB_MTU3_HOST=y
+# CONFIG_USB_MTU3_DEBUG is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_CHIPIDEA is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_F8153X=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
+# CONFIG_USB_SERIAL_XR is not set
+# CONFIG_USB_SERIAL_DEBUG 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_APPLEDISPLAY is not set
+# CONFIG_APPLE_MFI_FASTCHARGE 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=m
+CONFIG_USB_HUB_USB251XB=m
+CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+# CONFIG_USB_ONBOARD_HUB is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_VIEWPORT=y
+# end of USB Physical Layer drivers
+
+# CONFIG_USB_GADGET is not set
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TCPCI=m
+# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_MT6360=m
+# CONFIG_TYPEC_TCPCI_MAXIM is not set
+# CONFIG_TYPEC_FUSB302 is not set
+CONFIG_TYPEC_UCSI=m
+# CONFIG_UCSI_CCG is not set
+# CONFIG_UCSI_STM32G0 is not set
+# CONFIG_TYPEC_TPS6598X is not set
+# CONFIG_TYPEC_ANX7411 is not set
+# CONFIG_TYPEC_RT1719 is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
+# CONFIG_TYPEC_STUSB160X is not set
+# CONFIG_TYPEC_WUSB3801 is not set
+
+#
+# USB Type-C Multiplexer/DeMultiplexer Switch support
+#
+# CONFIG_TYPEC_MUX_FSA4480 is not set
+# CONFIG_TYPEC_MUX_GPIO_SBU is not set
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# CONFIG_TYPEC_MUX_NB7VPQ904M is not set
+# CONFIG_TYPEC_MUX_PTN36502 is not set
+# CONFIG_TYPEC_MUX_WCD939X_USBSS is not set
+# end of USB Type-C Multiplexer/DeMultiplexer Switch support
+
+#
+# USB Type-C Alternate Mode drivers
+#
+CONFIG_TYPEC_DP_ALTMODE=m
+# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
+# end of USB Type-C Alternate Mode drivers
+
+CONFIG_USB_ROLE_SWITCH=m
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+# CONFIG_PWRSEQ_SD8787 is not set
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=32
+# 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_ARMMMCI is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_CQHCI=y
+CONFIG_MMC_HSQ=y
+CONFIG_MMC_MTK=y
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLASS_MULTICOLOR=m
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_AW200XX is not set
+# CONFIG_LEDS_AW2013 is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_EL15203000 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_MT6323=m
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP50XX is not set
+# CONFIG_LEDS_LP55XX_COMMON is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_PCA995X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2606MVV 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=m
+CONFIG_LEDS_SYSCON=y
+# CONFIG_LEDS_MLXREG is not set
+CONFIG_LEDS_USER=m
+# CONFIG_LEDS_SPI_BYTE is not set
+# CONFIG_LEDS_LM3697 is not set
+
+#
+# Flash and Torch LED drivers
+#
+# CONFIG_LEDS_AAT1290 is not set
+# CONFIG_LEDS_AS3645A is not set
+# CONFIG_LEDS_KTD2692 is not set
+# CONFIG_LEDS_LM3601X is not set
+# CONFIG_LEDS_MT6360 is not set
+# CONFIG_LEDS_RT4505 is not set
+# CONFIG_LEDS_RT8515 is not set
+# CONFIG_LEDS_SGM3140 is not set
+
+#
+# RGB LED drivers
+#
+# CONFIG_LEDS_GROUP_MULTICOLOR is not set
+# CONFIG_LEDS_KTD202X is not set
+# CONFIG_LEDS_PWM_MULTICOLOR is not set
+# CONFIG_LEDS_QCOM_LPG is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_TRIGGER_PATTERN is not set
+# CONFIG_LEDS_TRIGGER_AUDIO is not set
+# CONFIG_LEDS_TRIGGER_TTY is not set
+
+#
+# Simple LED drivers
+#
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_SUPPORT=y
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABEOZ9 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+CONFIG_RTC_DRV_AS3722=m
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_MAX31335 is not set
+# CONFIG_RTC_DRV_NCT3018Y is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF85363 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+CONFIG_RTC_DRV_PALMAS=m
+CONFIG_RTC_DRV_TPS6586X=m
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV3032 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_SD3078 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+CONFIG_RTC_DRV_EFI=m
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+CONFIG_RTC_DRV_CROS_EC=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_MT2712 is not set
+CONFIG_RTC_DRV_MT6397=m
+CONFIG_RTC_DRV_MT7622=m
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_AMBA_PL08X is not set
+# CONFIG_BCM_SBA_RAID is not set
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_QDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+# CONFIG_MV_XOR_V2 is not set
+# CONFIG_PL330_DMA is not set
+# CONFIG_XILINX_DMA is not set
+# CONFIG_XILINX_XDMA is not set
+# CONFIG_XILINX_ZYNQMP_DMA is not set
+# CONFIG_XILINX_ZYNQMP_DPDMA is not set
+CONFIG_MTK_HSDMA=y
+CONFIG_MTK_CQDMA=y
+# CONFIG_MTK_UART_APDMA is not set
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_DW_DMAC is not set
+# CONFIG_SF_PDMA is not set
+
+#
+# DMA Clients
+#
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_UDMABUF is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMABUF_HEAPS=y
+# CONFIG_DMABUF_SYSFS_STATS is not set
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+# end of DMABUF options
+
+# CONFIG_UIO is not set
+CONFIG_VFIO=m
+CONFIG_VFIO_GROUP=y
+CONFIG_VFIO_CONTAINER=y
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_NOIOMMU=y
+CONFIG_VFIO_VIRQFD=y
+
+#
+# VFIO support for platform devices
+#
+CONFIG_VFIO_PLATFORM_BASE=m
+CONFIG_VFIO_PLATFORM=m
+# CONFIG_VFIO_AMBA is not set
+
+#
+# VFIO platform reset drivers
+#
+# CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET is not set
+# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
+# end of VFIO platform reset drivers
+# end of VFIO support for platform devices
+
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO_ANCHOR=y
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+# CONFIG_VDPA is not set
+CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST_TASK=y
+CONFIG_VHOST=m
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_NET=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_COMEDI is not set
+CONFIG_STAGING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_RTLLIB is not set
+# CONFIG_RTL8723BS is not set
+# CONFIG_R8712U is not set
+# CONFIG_VT6656 is not set
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16240 is not set
+# end of Accelerometers
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7816 is not set
+# end of Analog to digital converters
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+# end of Analog digital bi-direction converters
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+# end of Direct Digital Synthesis
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+# end of Network Analyzer, Impedance Converters
+# end of IIO staging drivers
+
+# CONFIG_STAGING_MEDIA is not set
+CONFIG_STAGING_BOARD=y
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_FB_TFT is not set
+# CONFIG_KS7010 is not set
+# CONFIG_PI433 is not set
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_FIELDBUS_DEV is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CROS_EC=y
+CONFIG_CROS_EC_I2C=y
+CONFIG_CROS_EC_SPI=y
+CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CROS_EC_CHARDEV=y
+CONFIG_CROS_EC_LIGHTBAR=y
+CONFIG_CROS_EC_VBC=m
+CONFIG_CROS_EC_SENSORHUB=y
+CONFIG_CROS_EC_SYSFS=m
+CONFIG_CROS_EC_TYPEC=m
+# CONFIG_CROS_HPS_I2C is not set
+CONFIG_CROS_USBPD_LOGGER=m
+CONFIG_CROS_USBPD_NOTIFY=y
+# CONFIG_MELLANOX_PLATFORM is not set
+# CONFIG_SURFACE_PLATFORMS is not set
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Clock driver for ARM Reference designs
+#
+# CONFIG_CLK_ICST is not set
+# CONFIG_CLK_SP810 is not set
+# end of Clock driver for ARM Reference designs
+
+# CONFIG_LMK04832 is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_SCMI is not set
+# CONFIG_COMMON_CLK_SCPI is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
+# CONFIG_COMMON_CLK_XGENE is not set
+# CONFIG_COMMON_CLK_PALMAS is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_RS9_PCIE is not set
+# CONFIG_COMMON_CLK_SI521XX is not set
+# CONFIG_COMMON_CLK_VC3 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_VC7 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+
+#
+# Clock driver for MediaTek SoC
+#
+CONFIG_COMMON_CLK_MEDIATEK=y
+CONFIG_COMMON_CLK_MEDIATEK_FHCTL=y
+CONFIG_COMMON_CLK_MT2712=y
+# CONFIG_COMMON_CLK_MT2712_BDPSYS is not set
+# CONFIG_COMMON_CLK_MT2712_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT2712_JPGDECSYS is not set
+# CONFIG_COMMON_CLK_MT2712_MFGCFG is not set
+# CONFIG_COMMON_CLK_MT2712_MMSYS is not set
+# CONFIG_COMMON_CLK_MT2712_VDECSYS is not set
+# CONFIG_COMMON_CLK_MT2712_VENCSYS is not set
+CONFIG_COMMON_CLK_MT6765=y
+CONFIG_COMMON_CLK_MT6765_AUDIOSYS=y
+# CONFIG_COMMON_CLK_MT6765_CAMSYS is not set
+# CONFIG_COMMON_CLK_MT6765_GCESYS is not set
+# CONFIG_COMMON_CLK_MT6765_MMSYS is not set
+# CONFIG_COMMON_CLK_MT6765_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT6765_VCODECSYS is not set
+# CONFIG_COMMON_CLK_MT6765_MFGSYS is not set
+# CONFIG_COMMON_CLK_MT6765_MIPI0ASYS is not set
+# CONFIG_COMMON_CLK_MT6765_MIPI0BSYS is not set
+# CONFIG_COMMON_CLK_MT6765_MIPI1ASYS is not set
+# CONFIG_COMMON_CLK_MT6765_MIPI1BSYS is not set
+# CONFIG_COMMON_CLK_MT6765_MIPI2ASYS is not set
+# CONFIG_COMMON_CLK_MT6765_MIPI2BSYS is not set
+# CONFIG_COMMON_CLK_MT6779 is not set
+# CONFIG_COMMON_CLK_MT6795 is not set
+CONFIG_COMMON_CLK_MT6797=y
+CONFIG_COMMON_CLK_MT6797_MMSYS=y
+CONFIG_COMMON_CLK_MT6797_IMGSYS=y
+CONFIG_COMMON_CLK_MT6797_VDECSYS=y
+CONFIG_COMMON_CLK_MT6797_VENCSYS=y
+CONFIG_COMMON_CLK_MT7622=y
+# CONFIG_COMMON_CLK_MT7622_ETHSYS is not set
+# CONFIG_COMMON_CLK_MT7622_HIFSYS is not set
+# CONFIG_COMMON_CLK_MT7622_AUDSYS is not set
+CONFIG_COMMON_CLK_MT7981=y
+CONFIG_COMMON_CLK_MT7981_ETHSYS=y
+CONFIG_COMMON_CLK_MT7986=y
+CONFIG_COMMON_CLK_MT7986_ETHSYS=y
+# CONFIG_COMMON_CLK_MT7988 is not set
+CONFIG_COMMON_CLK_MT8167=y
+CONFIG_COMMON_CLK_MT8167_AUDSYS=y
+CONFIG_COMMON_CLK_MT8167_IMGSYS=y
+CONFIG_COMMON_CLK_MT8167_MFGCFG=y
+CONFIG_COMMON_CLK_MT8167_MMSYS=y
+CONFIG_COMMON_CLK_MT8167_VDECSYS=y
+CONFIG_COMMON_CLK_MT8173=y
+CONFIG_COMMON_CLK_MT8173_IMGSYS=y
+CONFIG_COMMON_CLK_MT8173_MMSYS=y
+CONFIG_COMMON_CLK_MT8173_VDECSYS=y
+CONFIG_COMMON_CLK_MT8173_VENCSYS=y
+CONFIG_COMMON_CLK_MT8183=y
+# CONFIG_COMMON_CLK_MT8183_AUDIOSYS is not set
+# CONFIG_COMMON_CLK_MT8183_CAMSYS is not set
+# CONFIG_COMMON_CLK_MT8183_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_CORE0 is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_CORE1 is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_ADL is not set
+# CONFIG_COMMON_CLK_MT8183_IPU_CONN is not set
+# CONFIG_COMMON_CLK_MT8183_MFGCFG is not set
+# 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_COMMON_CLK_MT8186 is not set
+# CONFIG_COMMON_CLK_MT8188 is not set
+CONFIG_COMMON_CLK_MT8192=y
+# CONFIG_COMMON_CLK_MT8192_AUDSYS is not set
+# CONFIG_COMMON_CLK_MT8192_CAMSYS is not set
+# CONFIG_COMMON_CLK_MT8192_IMGSYS is not set
+# CONFIG_COMMON_CLK_MT8192_IMP_IIC_WRAP is not set
+# CONFIG_COMMON_CLK_MT8192_IPESYS is not set
+# CONFIG_COMMON_CLK_MT8192_MDPSYS is not set
+# CONFIG_COMMON_CLK_MT8192_MFGCFG is not set
+# CONFIG_COMMON_CLK_MT8192_MMSYS is not set
+# CONFIG_COMMON_CLK_MT8192_MSDC is not set
+# CONFIG_COMMON_CLK_MT8192_SCP_ADSP is not set
+# CONFIG_COMMON_CLK_MT8192_VDECSYS is not set
+# CONFIG_COMMON_CLK_MT8192_VENCSYS is not set
+# CONFIG_COMMON_CLK_MT8195 is not set
+# CONFIG_COMMON_CLK_MT8365 is not set
+CONFIG_COMMON_CLK_MT8516=y
+# CONFIG_COMMON_CLK_MT8516_AUDSYS is not set
+# end of Clock driver for MediaTek SoC
+
+# CONFIG_XILINX_VCU is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+CONFIG_MTK_TIMER=y
+CONFIG_MTK_CPUX_TIMER=y
+# end of Clock Source drivers
+
+CONFIG_MAILBOX=y
+CONFIG_ARM_MHU=m
+# CONFIG_ARM_MHU_V2 is not set
+CONFIG_PLATFORM_MHU=m
+# CONFIG_PL320_MBOX is not set
+# CONFIG_ALTERA_MBOX is not set
+# CONFIG_MAILBOX_TEST is not set
+# CONFIG_MTK_ADSP_MBOX is not set
+CONFIG_MTK_CMDQ_MBOX=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IO_PGTABLE=y
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S_SELFTEST is not set
+# CONFIG_IOMMU_IO_PGTABLE_DART is not set
+# end of Generic IOMMU Pagetable Support
+
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+# CONFIG_IOMMUFD is not set
+CONFIG_ARM_SMMU=m
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
+# CONFIG_ARM_SMMU_V3 is not set
+CONFIG_MTK_IOMMU=y
+CONFIG_VIRTIO_IOMMU=m
+
+#
+# Remoteproc drivers
+#
+# CONFIG_REMOTEPROC is not set
+# end of Remoteproc drivers
+
+#
+# Rpmsg drivers
+#
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+# 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
+
+#
+# Broadcom SoC drivers
+#
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# CONFIG_QUICC_ENGINE is not set
+# CONFIG_FSL_RCPM is not set
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# fujitsu SoC drivers
+#
+# end of fujitsu SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+#
+# Enable LiteX SoC Builder specific drivers
+#
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# end of Enable LiteX SoC Builder specific drivers
+
+#
+# MediaTek SoC drivers
+#
+CONFIG_MTK_CMDQ=y
+CONFIG_MTK_DEVAPC=m
+CONFIG_MTK_INFRACFG=y
+CONFIG_MTK_PMIC_WRAP=y
+CONFIG_MTK_REGULATOR_COUPLER=y
+CONFIG_MTK_MMSYS=y
+# CONFIG_MTK_SVS is not set
+# end of MediaTek SoC drivers
+
+# CONFIG_WPCM450_SOC is not set
+
+#
+# Qualcomm SoC drivers
+#
+# end of Qualcomm SoC drivers
+
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# end of Xilinx SoC drivers
+# end of SOC (System On Chip) specific Drivers
+
+#
+# PM Domains
+#
+
+#
+# Amlogic PM Domains
+#
+# end of Amlogic PM Domains
+
+CONFIG_ARM_SCMI_PERF_DOMAIN=m
+CONFIG_ARM_SCMI_POWER_DOMAIN=m
+CONFIG_ARM_SCPI_POWER_DOMAIN=m
+
+#
+# Broadcom PM Domains
+#
+# end of Broadcom PM Domains
+
+#
+# i.MX PM Domains
+#
+# end of i.MX PM Domains
+
+#
+# MediaTek PM Domains
+#
+CONFIG_MTK_SCPSYS=y
+CONFIG_MTK_SCPSYS_PM_DOMAINS=y
+# end of MediaTek PM Domains
+
+#
+# Qualcomm PM Domains
+#
+# end of Qualcomm PM Domains
+# end of PM Domains
+
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+# CONFIG_DEVFREQ_GOV_PASSIVE is not set
+
+#
+# DEVFREQ Drivers
+#
+# CONFIG_ARM_MEDIATEK_CCI_DEVFREQ is not set
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_ADC_JACK is not set
+# CONFIG_EXTCON_FSA9480 is not set
+# CONFIG_EXTCON_GPIO is not set
+# CONFIG_EXTCON_MAX3355 is not set
+CONFIG_EXTCON_PALMAS=y
+# CONFIG_EXTCON_PTN5150 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
+CONFIG_EXTCON_USBC_CROS_EC=y
+# CONFIG_EXTCON_USBC_TUSB320 is not set
+CONFIG_MEMORY=y
+# CONFIG_ARM_PL172_MPMC is not set
+CONFIG_MTK_SMI=y
+CONFIG_IIO=m
+CONFIG_IIO_BUFFER=y
+# CONFIG_IIO_BUFFER_CB is not set
+# CONFIG_IIO_BUFFER_DMA is not set
+# CONFIG_IIO_BUFFER_DMAENGINE is not set
+# CONFIG_IIO_BUFFER_HW_CONSUMER is not set
+CONFIG_IIO_KFIFO_BUF=m
+CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_CONFIGFS=m
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+# CONFIG_IIO_SW_DEVICE is not set
+# CONFIG_IIO_SW_TRIGGER is not set
+# CONFIG_IIO_TRIGGERED_EVENT is not set
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADXL313_I2C is not set
+# CONFIG_ADXL313_SPI is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
+# CONFIG_ADXL355_I2C is not set
+# CONFIG_ADXL355_SPI is not set
+# CONFIG_ADXL367_SPI is not set
+# CONFIG_ADXL367_I2C is not set
+# CONFIG_ADXL372_SPI is not set
+# CONFIG_ADXL372_I2C is not set
+# CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
+# CONFIG_BMA400 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_BMI088_ACCEL is not set
+# CONFIG_DA280 is not set
+# CONFIG_DA311 is not set
+# CONFIG_DMARD06 is not set
+# CONFIG_DMARD09 is not set
+# CONFIG_DMARD10 is not set
+# CONFIG_FXLS8962AF_I2C is not set
+# CONFIG_FXLS8962AF_SPI is not set
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_IIO_KX022A_SPI is not set
+# CONFIG_IIO_KX022A_I2C is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+# CONFIG_MMA7660 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+# CONFIG_MSA311 is not set
+# CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
+# CONFIG_SCA3000 is not set
+# CONFIG_SCA3300 is not set
+# CONFIG_STK8312 is not set
+# CONFIG_STK8BA50 is not set
+# end of Accelerometers
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD4130 is not set
+# CONFIG_AD7091R5 is not set
+# CONFIG_AD7091R8 is not set
+# CONFIG_AD7124 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7266 is not set
+# CONFIG_AD7280 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7292 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7606_IFACE_PARALLEL is not set
+# CONFIG_AD7606_IFACE_SPI is not set
+# CONFIG_AD7766 is not set
+# CONFIG_AD7768_1 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD7949 is not set
+# CONFIG_AD799X is not set
+# CONFIG_ADI_AXI_ADC is not set
+# CONFIG_CC10001_ADC is not set
+# CONFIG_ENVELOPE_DETECTOR is not set
+# CONFIG_HI8435 is not set
+# CONFIG_HX711 is not set
+# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2309 is not set
+# CONFIG_LTC2471 is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_LTC2496 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
+# CONFIG_MAX11205 is not set
+# CONFIG_MAX11410 is not set
+# CONFIG_MAX1241 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MAX34408 is not set
+# CONFIG_MAX9611 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_MCP3564 is not set
+# CONFIG_MCP3911 is not set
+CONFIG_MEDIATEK_MT6360_ADC=m
+# CONFIG_MEDIATEK_MT6577_AUXADC is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_PALMAS_GPADC is not set
+# CONFIG_QCOM_SPMI_IADC is not set
+# CONFIG_QCOM_SPMI_VADC is not set
+# CONFIG_QCOM_SPMI_ADC5 is not set
+# CONFIG_RICHTEK_RTQ6056 is not set
+# CONFIG_SD_ADC_MODULATOR is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
+# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC108S102 is not set
+# CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
+# CONFIG_TI_ADS7924 is not set
+# CONFIG_TI_ADS1100 is not set
+# CONFIG_TI_ADS7950 is not set
+# CONFIG_TI_ADS8344 is not set
+# CONFIG_TI_ADS8688 is not set
+# CONFIG_TI_ADS124S08 is not set
+# CONFIG_TI_ADS131E08 is not set
+# CONFIG_TI_LMP92064 is not set
+# CONFIG_TI_TLC4541 is not set
+# CONFIG_TI_TSC2046 is not set
+# CONFIG_VF610_ADC is not set
+# CONFIG_XILINX_XADC is not set
+# end of Analog to digital converters
+
+#
+# Analog to digital and digital to analog converters
+#
+# CONFIG_AD74115 is not set
+# CONFIG_AD74413R is not set
+# end of Analog to digital and digital to analog converters
+
+#
+# Analog Front Ends
+#
+# CONFIG_IIO_RESCALE is not set
+# end of Analog Front Ends
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+# CONFIG_ADA4250 is not set
+# CONFIG_HMC425 is not set
+# end of Amplifiers
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7746 is not set
+# end of Capacitance to digital converters
+
+#
+# Chemical Sensors
+#
+# CONFIG_AOSONG_AGS02MA is not set
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_ATLAS_EZO_SENSOR is not set
+# CONFIG_BME680 is not set
+# CONFIG_CCS811 is not set
+# CONFIG_IAQCORE is not set
+# CONFIG_SCD30_CORE is not set
+# CONFIG_SCD4X is not set
+# CONFIG_SENSIRION_SGP30 is not set
+# CONFIG_SENSIRION_SGP40 is not set
+# CONFIG_SPS30_I2C is not set
+# CONFIG_SENSEAIR_SUNRISE_CO2 is not set
+# CONFIG_VZ89X is not set
+# end of Chemical Sensors
+
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
+
+#
+# Hid Sensor IIO Common
+#
+# end of Hid Sensor IIO Common
+
+#
+# IIO SCMI Sensors
+#
+# CONFIG_IIO_SCMI is not set
+# end of IIO SCMI Sensors
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+# end of SSP Sensor Common
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD3552R is not set
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_LTC2688 is not set
+# CONFIG_AD5686_SPI is not set
+# CONFIG_AD5696_I2C is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5758 is not set
+# CONFIG_AD5761 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5766 is not set
+# CONFIG_AD5770R is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7293 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_AD8801 is not set
+# CONFIG_DPOT_DAC is not set
+# CONFIG_DS4424 is not set
+# CONFIG_LTC1660 is not set
+# CONFIG_LTC2632 is not set
+# CONFIG_M62332 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MAX5522 is not set
+# CONFIG_MAX5821 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4728 is not set
+# CONFIG_MCP4821 is not set
+# CONFIG_MCP4922 is not set
+# CONFIG_TI_DAC082S085 is not set
+# CONFIG_TI_DAC5571 is not set
+# CONFIG_TI_DAC7311 is not set
+# CONFIG_TI_DAC7612 is not set
+# CONFIG_VF610_DAC is not set
+# end of Digital to analog converters
+
+#
+# IIO dummy driver
+#
+# end of IIO dummy driver
+
+#
+# Filters
+#
+# CONFIG_ADMV8818 is not set
+# end of Filters
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+# end of Clock Generator/Distribution
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+# CONFIG_ADF4371 is not set
+# CONFIG_ADF4377 is not set
+# CONFIG_ADMV1013 is not set
+# CONFIG_ADMV1014 is not set
+# CONFIG_ADMV4420 is not set
+# CONFIG_ADRF6780 is not set
+# end of Phase-Locked Loop (PLL) frequency synthesizers
+# end of Frequency Synthesizers DDS/PLL
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS290 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_FXAS21002C is not set
+# CONFIG_MPU3050_I2C is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+# end of Digital gyroscope sensors
+
+#
+# Health Sensors
+#
+
+#
+# Heart Rate Monitors
+#
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+# CONFIG_MAX30100 is not set
+# CONFIG_MAX30102 is not set
+# end of Heart Rate Monitors
+# end of Health Sensors
+
+#
+# Humidity sensors
+#
+# CONFIG_AM2315 is not set
+# CONFIG_DHT11 is not set
+# CONFIG_HDC100X is not set
+# CONFIG_HDC2010 is not set
+# CONFIG_HDC3020 is not set
+# CONFIG_HTS221 is not set
+# CONFIG_HTU21 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+# end of Humidity sensors
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
+# CONFIG_ADIS16475 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+# CONFIG_BMI323_I2C is not set
+# CONFIG_BMI323_SPI is not set
+# CONFIG_BOSCH_BNO055_I2C is not set
+# CONFIG_FXOS8700_I2C is not set
+# CONFIG_FXOS8700_SPI is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_ICM42600_I2C is not set
+# CONFIG_INV_ICM42600_SPI is not set
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
+# CONFIG_IIO_ST_LSM6DSX is not set
+# CONFIG_IIO_ST_LSM9DS0 is not set
+# end of Inertial measurement units
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_ADUX1020 is not set
+# CONFIG_AL3010 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_APDS9960 is not set
+# CONFIG_AS73211 is not set
+# CONFIG_BH1750 is not set
+# CONFIG_BH1780 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM3605 is not set
+# CONFIG_CM36651 is not set
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+# CONFIG_GP2AP002 is not set
+# CONFIG_GP2AP020A00F is not set
+CONFIG_SENSORS_ISL29018=m
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_ISL76682 is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_ROHM_BU27008 is not set
+# CONFIG_ROHM_BU27034 is not set
+# CONFIG_RPR0521 is not set
+# CONFIG_LTR390 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_LTRF216A is not set
+# CONFIG_LV0104CS is not set
+# CONFIG_MAX44000 is not set
+# CONFIG_MAX44009 is not set
+# CONFIG_NOA1305 is not set
+# CONFIG_OPT3001 is not set
+# CONFIG_OPT4001 is not set
+# CONFIG_PA12203001 is not set
+# CONFIG_SI1133 is not set
+# CONFIG_SI1145 is not set
+# CONFIG_STK3310 is not set
+# CONFIG_ST_UVIS25 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+CONFIG_SENSORS_TSL2563=m
+CONFIG_TSL2583=m
+# CONFIG_TSL2591 is not set
+# CONFIG_TSL2772 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_US5182D is not set
+# CONFIG_VCNL4000 is not set
+# CONFIG_VCNL4035 is not set
+# CONFIG_VEML6030 is not set
+# CONFIG_VEML6070 is not set
+# CONFIG_VEML6075 is not set
+# CONFIG_VL6180 is not set
+# CONFIG_ZOPT2201 is not set
+# end of Light sensors
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8974 is not set
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_MMC35240 is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+# CONFIG_SENSORS_RM3100_I2C is not set
+# CONFIG_SENSORS_RM3100_SPI is not set
+# CONFIG_TI_TMAG5273 is not set
+# CONFIG_YAMAHA_YAS530 is not set
+# end of Magnetometer sensors
+
+#
+# Multiplexers
+#
+CONFIG_IIO_MUX=m
+# end of Multiplexers
+
+#
+# Inclinometer sensors
+#
+# end of Inclinometer sensors
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_INTERRUPT_TRIGGER is not set
+# CONFIG_IIO_SYSFS_TRIGGER is not set
+# end of Triggers - standalone
+
+#
+# Linear and angular position sensors
+#
+# end of Linear and angular position sensors
+
+#
+# Digital potentiometers
+#
+# CONFIG_AD5110 is not set
+# CONFIG_AD5272 is not set
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5432 is not set
+# CONFIG_MAX5481 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4018 is not set
+# CONFIG_MCP4131 is not set
+# CONFIG_MCP4531 is not set
+# CONFIG_MCP41010 is not set
+# CONFIG_TPL0102 is not set
+# CONFIG_X9250 is not set
+# end of Digital potentiometers
+
+#
+# Digital potentiostats
+#
+# CONFIG_LMP91000 is not set
+# end of Digital potentiostats
+
+#
+# Pressure sensors
+#
+# CONFIG_ABP060MG is not set
+# CONFIG_ROHM_BM1390 is not set
+# CONFIG_BMP280 is not set
+CONFIG_IIO_CROS_EC_BARO=m
+# CONFIG_DLHL60D is not set
+# CONFIG_DPS310 is not set
+# CONFIG_HP03 is not set
+# CONFIG_HSC030PA is not set
+# CONFIG_ICP10100 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_MPRLS0025PA is not set
+# CONFIG_MS5611 is not set
+# CONFIG_MS5637 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
+# end of Pressure sensors
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+# end of Lightning sensors
+
+#
+# Proximity and distance sensors
+#
+# CONFIG_CROS_EC_MKBP_PROXIMITY is not set
+# CONFIG_IRSD200 is not set
+# CONFIG_ISL29501 is not set
+# CONFIG_LIDAR_LITE_V2 is not set
+# CONFIG_MB1232 is not set
+# CONFIG_PING is not set
+# CONFIG_RFD77402 is not set
+# CONFIG_SRF04 is not set
+# CONFIG_SX9310 is not set
+# CONFIG_SX9324 is not set
+# CONFIG_SX9360 is not set
+# CONFIG_SX9500 is not set
+# CONFIG_SRF08 is not set
+# CONFIG_VCNL3020 is not set
+# CONFIG_VL53L0X_I2C is not set
+# end of Proximity and distance sensors
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+# CONFIG_AD2S1210 is not set
+# end of Resolver to digital converters
+
+#
+# Temperature sensors
+#
+# CONFIG_LTC2983 is not set
+# CONFIG_MAXIM_THERMOCOUPLE is not set
+# CONFIG_MLX90614 is not set
+# CONFIG_MLX90632 is not set
+# CONFIG_MLX90635 is not set
+# CONFIG_TMP006 is not set
+# CONFIG_TMP007 is not set
+# CONFIG_TMP117 is not set
+# CONFIG_TSYS01 is not set
+# CONFIG_TSYS02D is not set
+# CONFIG_MAX30208 is not set
+# CONFIG_MAX31856 is not set
+# CONFIG_MAX31865 is not set
+# CONFIG_MCP9600 is not set
+# end of Temperature sensors
+
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_CLK is not set
+CONFIG_PWM_CROS_EC=y
+# CONFIG_PWM_FSL_FTM is not set
+CONFIG_PWM_MTK_DISP=y
+CONFIG_PWM_MEDIATEK=y
+# CONFIG_PWM_PCA9685 is not set
+# CONFIG_PWM_XILINX is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+# CONFIG_AL_FIC is not set
+# CONFIG_XILINX_INTC is not set
+CONFIG_PARTITION_PERCPU=y
+CONFIG_MST_IRQ=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SCMI=m
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_TI_TPS380X is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+# CONFIG_PHY_CAN_TRANSCEIVER is not set
+
+#
+# PHY drivers for Broadcom platforms
+#
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# end of PHY drivers for Broadcom platforms
+
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_DPHY_RX is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_MTK_PCIE is not set
+CONFIG_PHY_MTK_TPHY=y
+CONFIG_PHY_MTK_UFS=m
+CONFIG_PHY_MTK_XSPHY=m
+CONFIG_PHY_MTK_HDMI=y
+CONFIG_PHY_MTK_MIPI_DSI=y
+CONFIG_PHY_MTK_DP=y
+# CONFIG_PHY_LAN966X_SERDES is not set
+# CONFIG_PHY_CPCAP_USB is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_QCOM_USB_HS is not set
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+# CONFIG_PHY_TUSB1210 is not set
+# end of PHY Subsystem
+
+CONFIG_POWERCAP=y
+CONFIG_IDLE_INJECT=y
+# CONFIG_ARM_SCMI_POWERCAP is not set
+# CONFIG_DTPM is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+# CONFIG_ARM_CCI_PMU is not set
+# CONFIG_ARM_CCN is not set
+# CONFIG_ARM_CMN is not set
+CONFIG_ARM_PMU=y
+# CONFIG_ARM_SMMU_V3_PMU is not set
+CONFIG_ARM_PMUV3=y
+# CONFIG_ARM_DSU_PMU is not set
+# CONFIG_ARM_SPE_PMU is not set
+# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set
+# end of Performance monitor support
+
+CONFIG_RAS=y
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_NVMEM_LAYOUTS=y
+
+#
+# Layout Types
+#
+# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set
+# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set
+# end of Layout Types
+
+CONFIG_NVMEM_MTK_EFUSE=m
+# CONFIG_NVMEM_RMEM is not set
+# CONFIG_NVMEM_SPMI_SDAM 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_TEE is not set
+CONFIG_MULTIPLEXER=m
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MUX_ADG792A is not set
+# CONFIG_MUX_ADGS1408 is not set
+# CONFIG_MUX_GPIO is not set
+# CONFIG_MUX_MMIO is not set
+# end of Multiplexer drivers
+
+CONFIG_PM_OPP=y
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# CONFIG_PECI is not set
+# CONFIG_HTE is not set
+# CONFIG_CDX_BUS is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+CONFIG_FS_STACK=y
+CONFIG_BUFFER_HEAD=y
+CONFIG_LEGACY_DIRECT_IO=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=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=m
+CONFIG_XFS_SUPPORT_V4=y
+# CONFIG_XFS_SUPPORT_ASCII_CI is not set
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_ONLINE_SCRUB is not set
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZ4HC=y
+CONFIG_F2FS_FS_ZSTD=y
+# CONFIG_F2FS_IOSTAT is not set
+# CONFIG_F2FS_UNFAIR_RWSEM is not set
+# CONFIG_BCACHEFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_VIRTIO_FS=m
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+# CONFIG_OVERLAY_FS_DEBUG is not set
+
+#
+# Caches
+#
+CONFIG_NETFS_SUPPORT=m
+# CONFIG_NETFS_STATS is not set
+# CONFIG_FSCACHE is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_FAT_DEFAULT_UTF8=y
+CONFIG_EXFAT_FS=m
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+# CONFIG_NTFS3_LZX_XPRESS is not set
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_TMPFS_INODE64 is not set
+# CONFIG_TMPFS_QUOTA is not set
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
+# CONFIG_HUGETLBFS is not set
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_EFIVAR_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_ECRYPT_FS=m
+# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
+CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+# 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=m
+# 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=m
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
+CONFIG_PSTORE_COMPRESS=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+# CONFIG_PSTORE_BLK is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_EROFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+# CONFIG_NFS_V2 is not set
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+# CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+CONFIG_NFSD=m
+# CONFIG_NFSD_V2 is not set
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+# CONFIG_NFSD_BLOCKLAYOUT is not set
+# CONFIG_NFSD_SCSILAYOUT is not set
+# CONFIG_NFSD_FLEXFILELAYOUT is not set
+# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
+# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 is not set
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SWN_UPCALL=y
+CONFIG_SMB_SERVER=m
+CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
+# CONFIG_SMB_SERVER_KERBEROS5 is not set
+CONFIG_SMBFS=m
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+# 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=m
+CONFIG_NLS_CODEPAGE_855=m
+# 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=m
+# 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=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+CONFIG_NLS_ISO8859_5=m
+# 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=m
+# 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=m
+CONFIG_NLS_UCS2_UTILS=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_REQUEST_CACHE is not set
+CONFIG_PERSISTENT_KEYRINGS=y
+# CONFIG_TRUSTED_KEYS is not set
+CONFIG_ENCRYPTED_KEYS=y
+# CONFIG_USER_DECRYPTED_DATA is not set
+CONFIG_KEY_DH_OPERATIONS=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_FORTIFY_SOURCE is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM=""
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
+CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
+# end of Memory initialization
+
+#
+# Hardening of kernel data structures
+#
+# CONFIG_LIST_HARDENED is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Hardening of kernel data structures
+
+CONFIG_RANDSTRUCT_NONE=y
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_XOR_BLOCKS=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_FIPS is not set
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_SIG2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_NULL2=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=m
+# end of Crypto core or helper
+
+#
+# Public-key cryptography
+#
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_DH=y
+# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+# CONFIG_CRYPTO_ECDSA is not set
+CONFIG_CRYPTO_ECRDSA=m
+# CONFIG_CRYPTO_SM2 is not set
+CONFIG_CRYPTO_CURVE25519=m
+# end of Public-key cryptography
+
+#
+# Block ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARIA is not set
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SEED is not set
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SM4=m
+# CONFIG_CRYPTO_SM4_GENERIC is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+# end of Block ciphers
+
+#
+# Length-preserving ciphers and modes
+#
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_HCTR2 is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_NHPOLY1305=m
+# end of Length-preserving ciphers and modes
+
+#
+# AEAD (authenticated encryption with associated data) ciphers
+#
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GENIV=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ESSIV=m
+# end of AEAD (authenticated encryption with associated data) ciphers
+
+#
+# Hashes, digests, and MACs
+#
+CONFIG_CRYPTO_BLAKE2B=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA3=y
+CONFIG_CRYPTO_SM3=m
+# CONFIG_CRYPTO_SM3_GENERIC is not set
+CONFIG_CRYPTO_STREEBOG=m
+# CONFIG_CRYPTO_VMAC is not set
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_XXHASH=m
+# end of Hashes, digests, and MACs
+
+#
+# CRCs (cyclic redundancy checks)
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRCT10DIF=y
+# end of CRCs (cyclic redundancy checks)
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+CONFIG_CRYPTO_ZSTD=y
+# end of Compression
+
+#
+# Random number generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
+CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
+CONFIG_CRYPTO_JITTERENTROPY_OSR=1
+CONFIG_CRYPTO_KDF800108_CTR=y
+# end of Random number generation
+
+#
+# Userspace interface
+#
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+# CONFIG_CRYPTO_STATS is not set
+# end of Userspace interface
+
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_CHACHA20_NEON=m
+
+#
+# Accelerated Cryptographic Algorithms for CPU (arm64)
+#
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_POLY1305_NEON=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA256_ARM64=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_ARM64=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+# CONFIG_CRYPTO_SM3_NEON is not set
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set
+CONFIG_CRYPTO_AES_ARM64=m
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set
+# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set
+# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+# end of Accelerated Cryptographic Algorithms for CPU (arm64)
+
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP is not set
+CONFIG_CRYPTO_DEV_VIRTIO=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_HISI_SEC is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
+# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
+
+#
+# Certificates for signature checking
+#
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+CONFIG_MODULE_SIG_KEY_TYPE_RSA=y
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# end of Certificates for signature checking
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+# CONFIG_RAID6_PQ_BENCHMARK is not set
+CONFIG_LINEAR_RANGES=y
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
+# CONFIG_INDIRECT_PIO is not set
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_GF128MUL=m
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
+CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+# end of Crypto library routines
+
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+# CONFIG_CRC64_ROCKSOFT is not set
+CONFIG_CRC_ITU_T=m
+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=y
+CONFIG_CRC8=m
+CONFIG_XXHASH=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4HC_COMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+# CONFIG_XZ_DEC_MICROLZMA is not set
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_INTERVAL_TREE=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_DMA_OPS=y
+CONFIG_NEED_SG_DMA_FLAGS=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_SWIOTLB=y
+# CONFIG_SWIOTLB_DYNAMIC is not set
+CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
+# CONFIG_DMA_RESTRICTED_POOL is not set
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_DIRECT_REMAP=y
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_CLZ_TAB=y
+CONFIG_IRQ_POLL=y
+CONFIG_MPILIB=y
+CONFIG_DIMLIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_6x10 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+CONFIG_FONT_TER12x24=y
+# CONFIG_FONT_TER16x32 is not set
+# CONFIG_FONT_6x8 is not set
+CONFIG_SG_POOL=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
+CONFIG_STACKDEPOT_MAX_FRAMES=64
+CONFIG_SBITMAP=y
+# CONFIG_LWQ_TEST is not set
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_AS_HAS_NON_CONST_ULEB128=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_DEBUG_FS is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
+# end of Generic Kernel Debugging Instruments
+
+#
+# Networking Debugging
+#
+# end of Networking Debugging
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_PAGE_TABLE_CHECK is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_ARCH_HAS_DEBUG_WX=y
+# CONFIG_DEBUG_WX is not set
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_PER_VMA_LOCK_STATS is not set
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+# CONFIG_DEBUG_VM_PGTABLE is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
+CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y
+CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_KASAN_SW_TAGS=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+# CONFIG_KASAN is not set
+CONFIG_HAVE_ARCH_KFENCE=y
+# CONFIG_KFENCE is not set
+# end of Memory Debugging
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=30
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_INFO=y
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_DEBUG_IRQFLAGS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+
+#
+# Debug kernel data structures
+#
+# end of Debug kernel data structures
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
+# CONFIG_RCU_CPU_STALL_CPUTIME is not set
+# end of RCU Debugging
+
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=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_SAMPLES is not set
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
+
+#
+# arm64 Debugging
+#
+# CONFIG_PID_IN_CONTEXTIDR is not set
+# CONFIG_ARM64_RELOC_TEST is not set
+# CONFIG_CORESIGHT is not set
+# end of arm64 Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_ARCH_USE_MEMTEST=y
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+
+#
+# Rust hacking
+#
+# end of Rust hacking
+# end of Kernel hacking
diff --git a/testing/linux-elm/fix-mmc-order.patch b/testing/linux-elm/fix-mmc-order.patch
new file mode 100644
index 00000000000..9633fe89589
--- /dev/null
+++ b/testing/linux-elm/fix-mmc-order.patch
@@ -0,0 +1,12 @@
+--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi 2020-12-13 22:41:30.000000000 +0000
++++ a/arch/arm64/boot/dts/mediatek/mt8173.dtsi 2021-01-06 19:57:33.225047779 +0000
+@@ -55,6 +55,9 @@
+ serial1 = &uart1;
+ serial2 = &uart2;
+ serial3 = &uart3;
++ mmc0 = &mmc0;
++ mmc1 = &mmc1;
++ mmc2 = &mmc2;
+ };
+
+ cluster0_opp: opp_table0 {
diff --git a/testing/linux-elm/kernel.its.elm b/testing/linux-elm/kernel.its.elm
new file mode 100644
index 00000000000..f8a51531d4e
--- /dev/null
+++ b/testing/linux-elm/kernel.its.elm
@@ -0,0 +1,62 @@
+/dts-v1/;
+
+/ {
+ description = "Chrome OS kernel image with one or more FDT blobs";
+ images {
+ kernel-1{
+ description = "kernel";
+ data = /incbin/("arch/arm64/boot/Image");
+ type = "kernel_noload";
+ arch = "arm64";
+ os = "linux";
+ compression = "none";
+ load = <0>;
+ entry = <0>;
+ };
+ fdt-1{
+ description = "mt8173-elm.dtb";
+ data = /incbin/("arch/arm64/boot/dts/mediatek/mt8173-elm.dtb");
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+ hash-1{
+ algo = "sha1";
+ };
+ };
+ fdt-2{
+ description = "mt8173-elm-hana.dtb";
+ data = /incbin/("arch/arm64/boot/dts/mediatek/mt8173-elm-hana.dtb");
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+ hash-1{
+ algo = "sha1";
+ };
+ };
+ fdt-3{
+ description = "mt8173-elm-hana-rev7.dtb";
+ data = /incbin/("arch/arm64/boot/dts/mediatek/mt8173-elm-hana-rev7.dtb");
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+ hash-1{
+ algo = "sha1";
+ };
+ };
+ };
+ configurations {
+ default = "conf-1";
+ conf-1{
+ kernel = "kernel-1";
+ fdt = "fdt-1";
+ };
+ conf-2{
+ kernel = "kernel-1";
+ fdt = "fdt-2";
+ };
+ conf-3{
+ kernel = "kernel-1";
+ fdt = "fdt-3";
+ };
+ };
+};
diff --git a/testing/linux-elm/mps-ter12x24-font-kernel.patch b/testing/linux-elm/mps-ter12x24-font-kernel.patch
new file mode 100644
index 00000000000..8a91c0fbf10
--- /dev/null
+++ b/testing/linux-elm/mps-ter12x24-font-kernel.patch
@@ -0,0 +1,1659 @@
+From 49c48a7bbc4c0f434870d2defb6b1d9c6c4f9a21 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=2E=20Stani=C4=87?= <mps@arvanta.net>
+Date: Sat, 15 Jan 2022 21:29:51 +0100
+Subject: [PATCH] add 12x24 bold terminus fonts
+
+---
+ include/linux/font.h | 2 +
+ lib/fonts/Kconfig | 10 +
+ lib/fonts/Makefile | 1 +
+ lib/fonts/font_ter12x24.c | 1562 +++++++++++++++++++++++++++++++++++++
+ lib/fonts/fonts.c | 3 +
+ 5 files changed, 1578 insertions(+)
+ create mode 100644 lib/fonts/font_ter12x24.c
+
+diff --git a/include/linux/font.h b/include/linux/font.h
+index abf1442ce719..e1e1c4000231 100644
+--- a/include/linux/font.h
++++ b/include/linux/font.h
+@@ -35,6 +35,7 @@ struct font_desc {
+ #define FONT6x10_IDX 10
+ #define TER16x32_IDX 11
+ #define FONT6x8_IDX 12
++#define TER12x24_IDX 13
+
+ extern const struct font_desc font_vga_8x8,
+ font_vga_8x16,
+@@ -48,6 +49,7 @@ extern const struct font_desc font_vga_8x8,
+ font_mini_4x6,
+ font_6x10,
+ font_ter_16x32,
++ font_ter_12x24,
+ font_6x8;
+
+ /* Find a font with a specific name */
+diff --git a/lib/fonts/Kconfig b/lib/fonts/Kconfig
+index c035fde66aeb..ff0f701d2ec1 100644
+--- a/lib/fonts/Kconfig
++++ b/lib/fonts/Kconfig
+@@ -110,6 +110,15 @@ config FONT_SUN12x22
+ big letters (like the letters used in the SPARC PROM). If the
+ standard font is unreadable for you, say Y, otherwise say N.
+
++config FONT_TER12x24
++ bool "Terminus 12x24 bold font (not supported by all drivers)"
++ depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
++ help
++ Terminus Font is a clean, fixed width bitmap font, designed
++ for long (8 and more hours per day) work with computers.
++ This is the high resolution, large version for use with HiDPI screens.
++ If the standard font is unreadable for you, say Y, otherwise say N.
++
+ config FONT_TER16x32
+ bool "Terminus 16x32 font (not supported by all drivers)"
+ depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
+@@ -138,6 +147,7 @@ config FONT_AUTOSELECT
+ depends on !FONT_SUN12x22
+ depends on !FONT_10x18
+ depends on !FONT_TER16x32
++ depends on !FONT_TER12x24
+ depends on !FONT_6x8
+ select FONT_8x16
+
+diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile
+index e16f68492174..d26b9f64a09c 100644
+--- a/lib/fonts/Makefile
++++ b/lib/fonts/Makefile
+@@ -15,6 +15,7 @@ font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
+ font-objs-$(CONFIG_FONT_MINI_4x6) += font_mini_4x6.o
+ font-objs-$(CONFIG_FONT_6x10) += font_6x10.o
+ font-objs-$(CONFIG_FONT_TER16x32) += font_ter16x32.o
++font-objs-$(CONFIG_FONT_TER12x24) += font_ter12x24.o
+ font-objs-$(CONFIG_FONT_6x8) += font_6x8.o
+
+ font-objs += $(font-objs-y)
+diff --git a/lib/fonts/font_ter12x24.c b/lib/fonts/font_ter12x24.c
+new file mode 100644
+index 000000000000..5b50e83a766c
+--- /dev/null
++++ b/lib/fonts/font_ter12x24.c
+@@ -0,0 +1,1562 @@
++// SPDX-License-Identifier: GPL-2.0
++#include <linux/font.h>
++#include <linux/module.h>
++
++#define FONTDATAMAX 16384
++
++static const struct font_data fontdata_ter12x24 = {
++ { 0, 0, FONTDATAMAX, 0 }, {
++
++
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x0f, 0x00, 0x19, 0x80, 0x30, 0xc0, 0x30, 0x00,
++ 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x7f, 0x00,
++ 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00,
++ 0x30, 0x60, 0x30, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x66, 0x60, 0x36, 0xc0,
++ 0x1f, 0x80, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0xf0,
++ 0x03, 0xf0, 0x0f, 0xf0, 0x3f, 0xf0, 0xff, 0xf0,
++ 0xff, 0xf0, 0x3f, 0xf0, 0x0f, 0xf0, 0x03, 0xf0,
++ 0x00, 0xf0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 2 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xf0, 0x00,
++ 0xfc, 0x00, 0xff, 0x00, 0xff, 0xc0, 0xff, 0xf0,
++ 0xff, 0xf0, 0xff, 0xc0, 0xff, 0x00, 0xfc, 0x00,
++ 0xf0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 3 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0f, 0x00, 0x1f, 0x80, 0x36, 0xc0,
++ 0x66, 0x60, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 4 */
++ 0xaa, 0xa0, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00,
++ 0xaa, 0xa0, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00,
++ 0xaa, 0xa0, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00,
++ 0xaa, 0xa0, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00,
++ 0xaa, 0xa0, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00,
++ 0xaa, 0xa0, 0x00, 0x00, 0xaa, 0xa0, 0x00, 0x00, /* 5 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0,
++ 0x3f, 0xc0, 0x3f, 0xc0, 0x3f, 0xc0, 0x3f, 0xc0,
++ 0x3f, 0xc0, 0x3f, 0xc0, 0x3f, 0xc0, 0x3f, 0xc0,
++ 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 6 */
++ 0xaa, 0xa0, 0x55, 0x50, 0xaa, 0xa0, 0x55, 0x50,
++ 0xaa, 0xa0, 0x55, 0x50, 0xaa, 0xa0, 0x55, 0x50,
++ 0xaa, 0xa0, 0x55, 0x50, 0xaa, 0xa0, 0x55, 0x50,
++ 0xaa, 0xa0, 0x55, 0x50, 0xaa, 0xa0, 0x55, 0x50,
++ 0xaa, 0xa0, 0x55, 0x50, 0xaa, 0xa0, 0x55, 0x50,
++ 0xaa, 0xa0, 0x55, 0x50, 0xaa, 0xa0, 0x55, 0x50, /* 7 */
++ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x31, 0x80,
++ 0x31, 0x80, 0x31, 0x80, 0x31, 0x80, 0x1f, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 8 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0f, 0x00,
++ 0x1f, 0x80, 0x3f, 0xc0, 0x7f, 0xe0, 0xff, 0xf0,
++ 0xff, 0xf0, 0x7f, 0xe0, 0x3f, 0xc0, 0x1f, 0x80,
++ 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 9 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00,
++ 0x03, 0x00, 0x01, 0x80, 0x00, 0xc0, 0x01, 0x80,
++ 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0x00,
++ 0x30, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 10 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 11 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
++ 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 12 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x19, 0x80,
++ 0x19, 0x80, 0xf9, 0xf0, 0xf9, 0xf0, 0x00, 0x00,
++ 0x00, 0x00, 0xf9, 0xf0, 0xf9, 0xf0, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, /* 13 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0xff, 0xf0,
++ 0xff, 0xf0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 14 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x18, 0x00,
++ 0x0c, 0x00, 0x06, 0x00, 0x03, 0x00, 0x01, 0x80,
++ 0x00, 0xc0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 15 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xf0,
++ 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 16 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0xfe, 0x00,
++ 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 17 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0xff, 0xf0, 0xff, 0xf0, 0x06, 0x00,
++ 0x06, 0x00, 0xff, 0xf0, 0xff, 0xf0, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 18 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7f, 0xe0,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 19 */
++ 0xff, 0xf0, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 20 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0xff, 0xf0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 21 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xff, 0xf0, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 22 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0xff, 0xf0, /* 23 */
++ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0,
++ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0,
++ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0,
++ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0,
++ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0,
++ 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, 0xff, 0xf0, /* 24 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0,
++ 0xff, 0xf0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 25 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0xfe, 0x00,
++ 0xfe, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 26 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0xf0,
++ 0x07, 0xf0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 27 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0xff, 0xf0,
++ 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 28 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf0,
++ 0x07, 0xf0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 29 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00,
++ 0xfe, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 30 */
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, /* 31 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 32 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 33 */
++ 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 34 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x19, 0x80,
++ 0x7f, 0xe0, 0x19, 0x80, 0x19, 0x80, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x7f, 0xe0, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 35 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x1f, 0x80, 0x36, 0xc0, 0x66, 0x60,
++ 0x66, 0x00, 0x66, 0x00, 0x36, 0x00, 0x1f, 0x80,
++ 0x06, 0xc0, 0x06, 0x60, 0x06, 0x60, 0x66, 0x60,
++ 0x36, 0xc0, 0x1f, 0x80, 0x06, 0x00, 0x06, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 36 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x38, 0xc0, 0x6c, 0xc0, 0x6d, 0x80,
++ 0x39, 0x80, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x19, 0xc0,
++ 0x1b, 0x60, 0x33, 0x60, 0x31, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 37 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x0e, 0x00, 0x1b, 0x00, 0x31, 0x80, 0x31, 0x80,
++ 0x31, 0x80, 0x1b, 0x00, 0x0e, 0x00, 0x1e, 0x60,
++ 0x33, 0x60, 0x61, 0xc0, 0x60, 0xc0, 0x60, 0xc0,
++ 0x61, 0xc0, 0x33, 0x60, 0x1e, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 38 */
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 39 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x0c, 0x00,
++ 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x0c, 0x00,
++ 0x0c, 0x00, 0x06, 0x00, 0x03, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 40 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00,
++ 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 41 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xc0,
++ 0x31, 0x80, 0x1b, 0x00, 0x0e, 0x00, 0xff, 0xe0,
++ 0x0e, 0x00, 0x1b, 0x00, 0x31, 0x80, 0x60, 0xc0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 42 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7f, 0xe0,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 43 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 44 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 45 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 46 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x01, 0x80,
++ 0x01, 0x80, 0x03, 0x00, 0x03, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 47 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0xe0, 0x61, 0xe0, 0x63, 0x60, 0x66, 0x60,
++ 0x6c, 0x60, 0x78, 0x60, 0x70, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 48 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x36, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x3f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 49 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x00, 0x60, 0x00, 0xc0, 0x01, 0x80,
++ 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0x00,
++ 0x30, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 50 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0x60, 0x00, 0xc0, 0x0f, 0x80,
++ 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 51 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x60, 0x00, 0xe0, 0x01, 0xe0, 0x03, 0x60,
++ 0x06, 0x60, 0x0c, 0x60, 0x18, 0x60, 0x30, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0,
++ 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 52 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80, 0x00, 0xc0,
++ 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 53 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0xc0, 0x30, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80, 0x60, 0xc0,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 54 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x00, 0x60,
++ 0x00, 0xc0, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x80,
++ 0x03, 0x00, 0x03, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 55 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80,
++ 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 56 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x30, 0x60,
++ 0x1f, 0xe0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0xc0, 0x3f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 57 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 58 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 59 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00,
++ 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00,
++ 0x03, 0x00, 0x01, 0x80, 0x00, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 60 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 61 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00,
++ 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0xc0,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00,
++ 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 62 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 63 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0x80, 0x60, 0xc0, 0xc0, 0x60, 0xc3, 0xe0,
++ 0xc6, 0x60, 0xcc, 0x60, 0xcc, 0x60, 0xcc, 0x60,
++ 0xcc, 0x60, 0xcc, 0x60, 0xc6, 0x60, 0xc3, 0xe0,
++ 0xc0, 0x00, 0x60, 0x00, 0x3f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 64 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 65 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x60, 0xc0,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 66 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 67 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 68 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 69 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 70 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x63, 0xe0,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 71 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 72 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 73 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0xf0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0,
++ 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0,
++ 0x00, 0xc0, 0x00, 0xc0, 0x60, 0xc0, 0x60, 0xc0,
++ 0x60, 0xc0, 0x31, 0x80, 0x1f, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 74 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0xc0, 0x61, 0x80, 0x63, 0x00,
++ 0x66, 0x00, 0x6c, 0x00, 0x78, 0x00, 0x70, 0x00,
++ 0x78, 0x00, 0x6c, 0x00, 0x66, 0x00, 0x63, 0x00,
++ 0x61, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 75 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 76 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x80, 0x20, 0xc0, 0x60, 0xe0, 0xe0, 0xf1, 0xe0,
++ 0xdb, 0x60, 0xce, 0x60, 0xc4, 0x60, 0xc0, 0x60,
++ 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60,
++ 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 77 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x70, 0x60, 0x78, 0x60, 0x6c, 0x60, 0x66, 0x60,
++ 0x63, 0x60, 0x61, 0xe0, 0x60, 0xe0, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 78 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 79 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 80 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x66, 0x60, 0x33, 0xc0, 0x1f, 0x80, 0x00, 0xc0,
++ 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 81 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80,
++ 0x78, 0x00, 0x6c, 0x00, 0x66, 0x00, 0x63, 0x00,
++ 0x61, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 82 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x30, 0x00, 0x1f, 0x80,
++ 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 83 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 84 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 85 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x30, 0xc0, 0x30, 0xc0, 0x30, 0xc0, 0x30, 0xc0,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00,
++ 0x0f, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 86 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60,
++ 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60,
++ 0xc4, 0x60, 0xce, 0x60, 0xdb, 0x60, 0xf1, 0xe0,
++ 0xe0, 0xe0, 0xc0, 0x60, 0x80, 0x20, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 87 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x30, 0xc0,
++ 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00,
++ 0x0f, 0x00, 0x19, 0x80, 0x19, 0x80, 0x30, 0xc0,
++ 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 88 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x30, 0xc0,
++ 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00, 0x0f, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 89 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 90 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x18, 0x00, 0x1f, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 91 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x03, 0x00, 0x03, 0x00, 0x01, 0x80,
++ 0x01, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 92 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00,
++ 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00,
++ 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00,
++ 0x03, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 93 */
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0f, 0x00,
++ 0x19, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 94 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 95 */
++ 0x00, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 96 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 97 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 98 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 99 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 100 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x30, 0x60, 0x1f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 101 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0xe0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x3f, 0xc0, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 102 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xe0, 0x1f, 0xe0, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0xc0, 0x3f, 0x80, 0x00, 0x00, /* 103 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 104 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 105 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00,
++ 0x03, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0,
++ 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0,
++ 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x30, 0xc0,
++ 0x30, 0xc0, 0x19, 0x80, 0x0f, 0x00, 0x00, 0x00, /* 106 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00,
++ 0x30, 0x60, 0x30, 0xc0, 0x31, 0x80, 0x33, 0x00,
++ 0x36, 0x00, 0x3c, 0x00, 0x36, 0x00, 0x33, 0x00,
++ 0x31, 0x80, 0x30, 0xc0, 0x30, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 107 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 108 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x66, 0xc0, 0x66, 0x60, 0x66, 0x60,
++ 0x66, 0x60, 0x66, 0x60, 0x66, 0x60, 0x66, 0x60,
++ 0x66, 0x60, 0x66, 0x60, 0x66, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 109 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 110 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 111 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, /* 112 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, /* 113 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x67, 0xe0, 0x6c, 0x00, 0x78, 0x00, 0x70, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 114 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0xc0, 0x60, 0x60, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x3f, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0x60, 0x60, 0x60, 0x3f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 115 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00,
++ 0x7f, 0x80, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00,
++ 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00,
++ 0x0c, 0x00, 0x0c, 0x00, 0x07, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 116 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 117 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0,
++ 0x30, 0xc0, 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00,
++ 0x0f, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 118 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x66, 0x60, 0x66, 0x60, 0x66, 0x60, 0x66, 0x60,
++ 0x66, 0x60, 0x66, 0x60, 0x3f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 119 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x19, 0x80,
++ 0x0f, 0x00, 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80,
++ 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 120 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xe0, 0x1f, 0xe0, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0xc0, 0x3f, 0x80, 0x00, 0x00, /* 121 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x00, 0x60, 0x00, 0xc0, 0x01, 0x80,
++ 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0x00,
++ 0x30, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 122 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0x80, 0x06, 0x00, 0x0c, 0x00, 0x0c, 0x00,
++ 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x38, 0x00,
++ 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00,
++ 0x0c, 0x00, 0x06, 0x00, 0x03, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 123 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 124 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x38, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x80,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x0c, 0x00, 0x38, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 125 */
++ 0x00, 0x00, 0x00, 0x00, 0x3c, 0x60, 0x66, 0x60,
++ 0x66, 0x60, 0x63, 0xc0, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 126 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x0f, 0x00, 0x19, 0x80, 0x30, 0xc0, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 127 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x0f, 0x80, 0x18, 0xc0, 0x30, 0x60,
++ 0x60, 0x00, 0x60, 0x00, 0xff, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0xff, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x30, 0x60, 0x18, 0xc0, 0x0f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 128 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 129 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 130 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x03, 0xc0, 0x06, 0x60, 0x06, 0x60, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x3f, 0xc0, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x66, 0x00, 0x66, 0x00, 0x3c, 0x00, 0x00, 0x00, /* 131 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc0,
++ 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x19, 0x80,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 132 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x66, 0x60, 0x66, 0x60, 0x66, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 133 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7f, 0xe0,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 134 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7f, 0xe0,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7f, 0xe0,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 135 */
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 136 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x73, 0x00, 0xdb, 0x00, 0xde, 0x00,
++ 0x76, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x18, 0x00,
++ 0x18, 0x00, 0x30, 0x00, 0x30, 0x00, 0x6e, 0xe0,
++ 0x7b, 0xb0, 0xdb, 0xb0, 0xce, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 137 */
++ 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x30, 0x00, 0x1f, 0x80,
++ 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 138 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00,
++ 0x18, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00,
++ 0x06, 0x00, 0x03, 0x00, 0x01, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 139 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0xf0, 0x63, 0x00, 0xc3, 0x00, 0xc3, 0x00,
++ 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0xf0,
++ 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0x00,
++ 0xc3, 0x00, 0x63, 0x00, 0x3f, 0xf0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 140 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 141 */
++ 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 142 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 143 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 144 */
++ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 145 */
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 146 */
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x0c, 0xc0,
++ 0x0c, 0xc0, 0x0c, 0xc0, 0x0c, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 147 */
++ 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, 0x19, 0x80,
++ 0x19, 0x80, 0x19, 0x80, 0x33, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 148 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x0f, 0x00, 0x1f, 0x80, 0x1f, 0x80,
++ 0x1f, 0x80, 0x1f, 0x80, 0x0f, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 149 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 150 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 151 */
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 152 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xfd, 0x10, 0x31, 0xb0, 0x31, 0xf0, 0x31, 0xb0,
++ 0x31, 0xb0, 0x31, 0xb0, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 153 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x3f, 0xc0, 0x60, 0x60, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x3f, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0x60, 0x60, 0x60, 0x3f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 154 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00,
++ 0x03, 0x00, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 155 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0xc0, 0x66, 0x60, 0xc6, 0x30, 0xc6, 0x30,
++ 0xc6, 0x30, 0xc7, 0xf0, 0xc6, 0x00, 0xc6, 0x00,
++ 0xc6, 0x00, 0x66, 0x30, 0x3f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 156 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 157 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x00, 0x60, 0x00, 0xc0, 0x01, 0x80,
++ 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, 0x00,
++ 0x30, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 158 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x30, 0xc0,
++ 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00, 0x0f, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 159 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 160 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 161 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x1f, 0x80, 0x36, 0xc0, 0x66, 0x60, 0x66, 0x00,
++ 0x66, 0x00, 0x66, 0x00, 0x66, 0x00, 0x66, 0x00,
++ 0x66, 0x60, 0x36, 0xc0, 0x1f, 0x80, 0x06, 0x00,
++ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 162 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x0f, 0x00, 0x19, 0x80, 0x30, 0xc0, 0x30, 0x00,
++ 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x7f, 0x00,
++ 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00,
++ 0x30, 0x60, 0x30, 0x60, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 163 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x60, 0xc0,
++ 0x3f, 0x80, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0,
++ 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x3f, 0x80,
++ 0x60, 0xc0, 0xc0, 0x60, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 164 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x30, 0xc0,
++ 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x3f, 0xc0, 0x06, 0x00, 0x06, 0x00,
++ 0x3f, 0xc0, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 165 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 166 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
++ 0x31, 0x80, 0x30, 0x00, 0x30, 0x00, 0x1e, 0x00,
++ 0x33, 0x00, 0x31, 0x80, 0x31, 0x80, 0x31, 0x80,
++ 0x31, 0x80, 0x19, 0x80, 0x0f, 0x00, 0x01, 0x80,
++ 0x01, 0x80, 0x31, 0x80, 0x1f, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 167 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 168 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x40, 0x40,
++ 0x9f, 0x20, 0xb1, 0xa0, 0xb1, 0xa0, 0xb0, 0x20,
++ 0xb0, 0x20, 0xb1, 0xa0, 0xb1, 0xa0, 0x9f, 0x20,
++ 0x40, 0x40, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 169 */
++ 0x00, 0x00, 0x3f, 0x80, 0x00, 0xc0, 0x00, 0xc0,
++ 0x3f, 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0,
++ 0x60, 0xc0, 0x3f, 0xc0, 0x00, 0x00, 0x7f, 0xc0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 170 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x60, 0x0c, 0xc0, 0x19, 0x80, 0x33, 0x00,
++ 0x66, 0x00, 0xcc, 0x00, 0x66, 0x00, 0x33, 0x00,
++ 0x19, 0x80, 0x0c, 0xc0, 0x06, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 171 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 172 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 173 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x40, 0x40,
++ 0xbf, 0x20, 0xb1, 0xa0, 0xb1, 0xa0, 0xb1, 0xa0,
++ 0xbf, 0x20, 0xb6, 0x20, 0xb3, 0x20, 0xb1, 0xa0,
++ 0x40, 0x40, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 174 */
++ 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 175 */
++ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x31, 0x80,
++ 0x31, 0x80, 0x31, 0x80, 0x31, 0x80, 0x1f, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 176 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x7f, 0xe0,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 177 */
++ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x31, 0x80,
++ 0x31, 0x80, 0x01, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x18, 0x00, 0x3f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 178 */
++ 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x31, 0x80,
++ 0x01, 0x80, 0x01, 0x80, 0x0f, 0x00, 0x01, 0x80,
++ 0x01, 0x80, 0x31, 0x80, 0x1f, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 179 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 180 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0xe0, 0x61, 0xe0, 0x7f, 0x60, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, /* 181 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0xe0, 0x66, 0x60, 0x66, 0x60, 0x66, 0x60,
++ 0x66, 0x60, 0x66, 0x60, 0x66, 0x60, 0x3e, 0x60,
++ 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60,
++ 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 182 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 183 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 184 */
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0e, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 185 */
++ 0x00, 0x00, 0x1f, 0x00, 0x31, 0x80, 0x60, 0xc0,
++ 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0, 0x60, 0xc0,
++ 0x31, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x7f, 0xc0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 186 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0xcc, 0x00, 0x66, 0x00, 0x33, 0x00, 0x19, 0x80,
++ 0x0c, 0xc0, 0x06, 0x60, 0x0c, 0xc0, 0x19, 0x80,
++ 0x33, 0x00, 0x66, 0x00, 0xcc, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 187 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
++ 0x1c, 0x00, 0x3c, 0x00, 0x0c, 0x00, 0x0c, 0x20,
++ 0x0c, 0x60, 0x0c, 0xc0, 0x01, 0x80, 0x03, 0x00,
++ 0x06, 0x60, 0x0c, 0xe0, 0x19, 0xe0, 0x33, 0x60,
++ 0x66, 0x60, 0x47, 0xe0, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 188 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
++ 0x1c, 0x00, 0x3c, 0x00, 0x0c, 0x20, 0x0c, 0x60,
++ 0x0c, 0xc0, 0x0d, 0x80, 0x03, 0x00, 0x06, 0x00,
++ 0x0c, 0x00, 0x1b, 0xc0, 0x36, 0x60, 0x66, 0x60,
++ 0x40, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x07, 0xe0,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 189 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00,
++ 0x66, 0x00, 0x06, 0x00, 0x1c, 0x00, 0x06, 0x20,
++ 0x66, 0x60, 0x3c, 0xc0, 0x01, 0x80, 0x03, 0x00,
++ 0x06, 0x60, 0x0c, 0xe0, 0x19, 0xe0, 0x33, 0x60,
++ 0x66, 0x60, 0x47, 0xe0, 0x00, 0x60, 0x00, 0x60,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 190 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00,
++ 0x18, 0x00, 0x30, 0x00, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 191 */
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 192 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 193 */
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 194 */
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 195 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 196 */
++ 0x0f, 0x00, 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x7f, 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 197 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0xf0, 0x63, 0x00, 0xc3, 0x00, 0xc3, 0x00,
++ 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0x00, 0xff, 0xf0,
++ 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0x00,
++ 0xc3, 0x00, 0xc3, 0x00, 0xc3, 0xf0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 198 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 199 */
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 200 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 201 */
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 202 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x7f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 203 */
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 204 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 205 */
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 206 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 207 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0xfe, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 208 */
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x70, 0x60, 0x78, 0x60, 0x6c, 0x60, 0x66, 0x60,
++ 0x63, 0x60, 0x61, 0xe0, 0x60, 0xe0, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 209 */
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 210 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 211 */
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 212 */
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 213 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 214 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60,
++ 0x30, 0xc0, 0x19, 0x80, 0x0f, 0x00, 0x06, 0x00,
++ 0x0f, 0x00, 0x19, 0x80, 0x30, 0xc0, 0x60, 0x60,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 215 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x70, 0x60, 0x60,
++ 0x60, 0xe0, 0x61, 0xe0, 0x63, 0x60, 0x66, 0x60,
++ 0x6c, 0x60, 0x78, 0x60, 0x70, 0x60, 0x60, 0x60,
++ 0xe0, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 216 */
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 217 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 218 */
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 219 */
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 220 */
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x30, 0xc0, 0x30, 0xc0,
++ 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00, 0x0f, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 221 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x7f, 0x80,
++ 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 222 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x3f, 0x00, 0x61, 0x80, 0x60, 0xc0, 0x60, 0xc0,
++ 0x60, 0xc0, 0x61, 0x80, 0x7f, 0x80, 0x60, 0xc0,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x70, 0x60, 0x68, 0xc0, 0x6f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 223 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 224 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 225 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 226 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 227 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 228 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x0f, 0x00, 0x19, 0x80, 0x19, 0x80, 0x0f, 0x00,
++ 0x3f, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x60,
++ 0x1f, 0xe0, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 229 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x7b, 0xe0, 0x0e, 0x30, 0x06, 0x30, 0x06, 0x30,
++ 0x7e, 0x30, 0xc7, 0xf0, 0xc6, 0x00, 0xc6, 0x00,
++ 0xc6, 0x00, 0xc7, 0x30, 0x7d, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 230 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 231 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x30, 0x60, 0x1f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 232 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x30, 0x60, 0x1f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 233 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x30, 0x60, 0x1f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 234 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x7f, 0xe0, 0x60, 0x00, 0x60, 0x00,
++ 0x60, 0x00, 0x30, 0x60, 0x1f, 0xc0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 235 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 236 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 237 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 238 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x1e, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x06, 0x00, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 239 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x36, 0x00, 0x1c, 0x00, 0x36, 0x00, 0x03, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 240 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 241 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 242 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 243 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 244 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1c, 0xc0, 0x36, 0xc0, 0x33, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 245 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x1f, 0x80, 0x30, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xc0, 0x1f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 246 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0,
++ 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00,
++ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 247 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x1f, 0xa0, 0x30, 0xc0, 0x60, 0xe0, 0x61, 0xe0,
++ 0x63, 0x60, 0x66, 0x60, 0x6c, 0x60, 0x78, 0x60,
++ 0x70, 0x60, 0x30, 0xc0, 0x5f, 0x80, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 248 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 249 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 250 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x06, 0x00, 0x0f, 0x00, 0x19, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 251 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0x60, 0x1f, 0xe0, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 252 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x01, 0x80, 0x03, 0x00, 0x06, 0x00, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xe0, 0x1f, 0xe0, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0xc0, 0x3f, 0x80, 0x00, 0x00, /* 253 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00,
++ 0x7f, 0x80, 0x60, 0xc0, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0xc0, 0x7f, 0x80, 0x60, 0x00,
++ 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, /* 254 */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x19, 0x80, 0x19, 0x80, 0x19, 0x80, 0x00, 0x00,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
++ 0x60, 0x60, 0x30, 0xe0, 0x1f, 0xe0, 0x00, 0x60,
++ 0x00, 0x60, 0x00, 0xc0, 0x3f, 0x80, 0x00, 0x00, /* 255 */
++} };
++
++
++const struct font_desc font_ter_12x24 = {
++ .idx = TER12x24_IDX,
++ .name = "TER12x24",
++ .width = 12,
++ .height = 24,
++ .charcount = 256,
++ .data = fontdata_ter12x24.data,
++#ifdef __sparc__
++ .pref = 5,
++#else
++ .pref = -1,
++#endif
++};
+diff --git a/lib/fonts/fonts.c b/lib/fonts/fonts.c
+index 5f4b07b56cd9..1be88be06b2b 100644
+--- a/lib/fonts/fonts.c
++++ b/lib/fonts/fonts.c
+@@ -54,6 +54,9 @@ static const struct font_desc *fonts[] = {
+ #ifdef CONFIG_FONT_6x10
+ &font_6x10,
+ #endif
++#ifdef CONFIG_FONT_TER12x24
++ &font_ter_12x24,
++#endif
+ #ifdef CONFIG_FONT_TER16x32
+ &font_ter_16x32,
+ #endif
+--
+2.34.1
+
diff --git a/testing/linux-gru/APKBUILD b/testing/linux-gru/APKBUILD
new file mode 100644
index 00000000000..a74f662ee76
--- /dev/null
+++ b/testing/linux-gru/APKBUILD
@@ -0,0 +1,220 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+
+_flavor=gru
+pkgname=linux-${_flavor}
+# NOTE: this kernel is intended for testing
+# please resist urge to upgrade it blindly
+pkgver=6.8.1
+case $pkgver in
+ *.*.*) _kernver=${pkgver%.*};;
+ *.*) _kernver=$pkgver;;
+esac
+pkgrel=0
+pkgdesc="Linux latest stable kernel for $_flavor chromebook"
+url="https://www.kernel.org"
+_depends_dev="perl gmp-dev flex bison"
+makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any
+ openssl-dev diffutils findutils vboot-utils u-boot-tools dtc"
+options="!strip !check"
+install=
+
+#subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
+source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz"
+case $pkgver in
+ *.*.0) source="$source";;
+ *.*.*) source="$source
+ https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz" ;;
+esac
+
+ source="$source
+ config
+ kernel.its.$_flavor
+ fix-rk3399-gru-mmc-order.patch
+ fix-gru-analogix_dp_core.patch
+ PATCH-v4-00-11-media-rkvdec-Add-H.264-High-10-and-4-2-2-profile-support.patch
+ "
+
+arch="aarch64"
+_carch="arm64"
+license="GPL-2.0"
+
+prepare() {
+ local _patch_failed=
+ cd "$srcdir"/linux-$_kernver
+ case $pkgver in
+ *.*.0);;
+ *)
+ msg "Applying patch-$pkgver.xz"
+ unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N ;;
+ esac
+
+ # 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() {
+ local _builddir="$srcdir"/linux-$_kernver
+ echo "-$pkgrel-$_flavor" > "$_builddir"/localversion-alpine \
+ || return 1
+
+ cp "$srcdir"/config "$_builddir"/.config
+ make -C "$srcdir"/linux-$_kernver \
+ O="$_builddir" \
+ ARCH="$_carch" \
+ listnewconfig oldconfig
+}
+
+build() {
+ unset LDFLAGS
+ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+ cd "$srcdir"/linux-$_kernver
+ make ARCH="$_carch" CC="${CC:-gcc}" \
+ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
+}
+
+_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"/linux-$_kernver
+ # 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_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 -rf "$_outdir"/lib/firmware
+
+ install -D -m644 include/config/kernel.release \
+ "$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
+}
+
+# main flavor installs in $pkgdir
+package() {
+
+ _package $_flavor "$pkgdir"
+ local _builddir="$srcdir"/linux-$_kernver
+ #cp $_builddir/arch/arm64/boot/Image.gz $pkgdir/boot/vmlinuz-$_flavor
+ cd $_builddir
+ cp $srcdir/kernel.its.$_flavor .
+ mkimage -D "-I dts -O dtb -p 2048" -f kernel.its.$_flavor vmlinux.uimg
+
+ dd if=/dev/zero of=bootloader.bin bs=512 count=1
+ echo "console=tty0 earlyprintk=tty0 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootwait rw mitigations=off loglevel=7" > cmdline
+ vbutil_kernel \
+ --pack $pkgdir/boot/vmlinux.kpart-$pkgver-$pkgrel-$_flavor \
+ --version 1 \
+ --vmlinuz vmlinux.uimg \
+ --arch aarch64 \
+ --keyblock /usr/share/vboot/devkeys/kernel.keyblock \
+ --signprivate kernel_data_key.vbprivk \
+ --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
+ --config cmdline \
+ --bootloader bootloader.bin
+
+ rm cmdline bootloader.bin
+ #rm $pkgdir/boot/vmlinuz-$_flavor
+ rm $pkgdir/boot/System.map-$pkgver-$pkgrel-$_flavor
+ cd $pkgdir/boot
+ ln -s vmlinux.kpart-$pkgver-$pkgrel-$_flavor vmlinux.kpart
+}
+
+_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="
+5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068 linux-6.8.tar.xz
+33ddb70a2df5ce51e23a82616e02197e4b812e0c094d0c88dd6ea6e2f00d843c2ff124fc15548e0ae3853fc1a6ea605e6b94eff7aa49a34961d7b20b7d27ff6c patch-6.8.1.xz
+cb2e4b59b4eeaff3efdb90da5cd6ef6c8bb6a3dd2e1f8d8ed903ac54fab37176612e6fa085d6a7cc9cb8c7da491f1160830f3436e050a17020fe5f57bd145f71 config
+b5a2fbc0560201b4ec1d21e890cc5290c58d0544105a5bfabfe04e76bdf54b64dc07076c40414cedb38b12687cf1ae3f773ecfcac02e3d1edd84f6ef80c951da kernel.its.gru
+1653cd164857fb433c32203df8254d27c28bcf64e4bd5d0291ce95a8d7e5b48815ea6e81e32060b9a4c0cb13c302f9accc8e77451e30138669337f0d20910a76 fix-rk3399-gru-mmc-order.patch
+476188e5a6967fe061293a6d5b540158869f7f09eba3b0eb651bb7948003c050aa7e419c90f3135316f2ce8c1bb4a411bd3c82cde85dddbf17d971c5198893fe fix-gru-analogix_dp_core.patch
+4b1a494a3821d1829a2a2bb6f959ecbfc1a2e750e8bcf5154701d13478a87e01468848182c8bad993aedf55d5e43c69d360f90a8023f90018b099a7a0dacb7aa PATCH-v4-00-11-media-rkvdec-Add-H.264-High-10-and-4-2-2-profile-support.patch
+"
diff --git a/testing/linux-gru/PATCH-v4-00-11-media-rkvdec-Add-H.264-High-10-and-4-2-2-profile-support.patch b/testing/linux-gru/PATCH-v4-00-11-media-rkvdec-Add-H.264-High-10-and-4-2-2-profile-support.patch
new file mode 100644
index 00000000000..cd021f3d97e
--- /dev/null
+++ b/testing/linux-gru/PATCH-v4-00-11-media-rkvdec-Add-H.264-High-10-and-4-2-2-profile-support.patch
@@ -0,0 +1,2119 @@
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id F1266C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:55:40 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229599AbjKEQzl (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:55:41 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55938 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229445AbjKEQzk (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:55:40 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5FEE83;
+ Sun, 5 Nov 2023 08:55:35 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: Message-ID: Date: Subject: Cc:
+ To: From; q=dns/txt; s=fe-e1b5cab7be; t=1699203327;
+ bh=gpEWyFLpFVQA/Y7FAcamWOkPAGDRoHusQHT6WoMBcvI=;
+ b=K0OH+eJxuk0CnFzeiViuoctJ7h50ZC066xjRckTpJRZnM/oC/4dvBdhNAWZI7fjkfQDHnPvuz
+ sugfkZzS1jJgb9iFSYJgJvRzqFTw/UDEmvH9Xaa+vg8/YtjuZNoQeeBr5KNdIGfXEMa2GFKFdyH
+ 5UNc0EM8JL/HAEG0Abjj7JudHNAqAYOViJrxPFGiJpMpjCdzukShWBLzhORwN0pqU7u2AP9PbLN
+ 9wMy86L2PDL71vlFLOMaTUvoat8S8lCrmZ8s/3r0NnTsSvvkIoIW7CpqigEIq+Tus8059ev81AE
+ Cv72ZOB6ZYNsv/1lqQwD3ZbyyDQWTixsefj76wGEr07g==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 00/11] media: rkvdec: Add H.264 High 10 and 4:2:2 profile support
+Date: Sun, 5 Nov 2023 16:54:59 +0000
+Message-ID: <20231105165521.3592037-1-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c8ff42ad2f8d152468da
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 4223
+Lines: 104
+
+This is a revival of a 3 year old series [1] now that NV15/NV20/NV30 support
+for display driver have landed in mainline tree.
+
+This series adds H.264 High 10 and 4:2:2 profile support to the Rockchip
+Video Decoder driver.
+
+Patch 1 adds helpers for calculating plane bytesperline and sizeimage.
+Patch 2 adds two new pixelformats for semi-planer 10-bit 4:2:0/4:2:2 YUV.
+
+Patch 3 change to use bytesperline and buffer height to configure strides.
+Patch 4 change to use values from SPS/PPS control to configure the HW.
+Patch 5 remove an unnecessary call to validate sps at streaming start.
+
+Patch 6-10 refactor code to support filtering of CAPUTRE formats based
+on the image format returned from a get_image_fmt ops.
+
+Patch 11 adds final bits to support H.264 High 10 and 4:2:2 profiles.
+
+Tested on a ROCK Pi 4 (RK3399) and Rock64 (RK3328):
+
+ v4l2-compliance 1.24.1, 64 bits, 64-bit time_t
+ ...
+ Total for rkvdec device /dev/video1: 46, Succeeded: 46, Failed: 0, Warnings: 0
+
+ Running test suite JVT-FR-EXT with decoder FFmpeg-H.264-V4L2-request
+ ...
+ Ran 65/69 tests successfully
+
+ Running test suite JVT-AVC_V1 with decoder FFmpeg-H.264-V4L2-request
+ ...
+ Ran 127/135 tests successfully
+
+Before this series:
+
+ Running test suite JVT-FR-EXT with decoder FFmpeg-H.264-V4L2-request
+ ...
+ Ran 44/69 tests successfully
+
+Changes in v4:
+- Fix failed v4l2-compliance tests related to CAPTURE queue
+- Rework CAPTURE format filter anv validate to use an image format
+- Run fluster test suite JVT-FR-EXT [4] and JVT-AVC_V1 [5]
+Link to v3: https://lore.kernel.org/linux-media/20231029183427.1781554-1-jonas@kwiboo.se/
+
+Changes in v3:
+- Drop merged patches
+- Use bpp and bpp_div instead of prior misuse of block_w/block_h
+- New patch to use values from SPS/PPS control to configure the HW
+- New patch to remove an unnecessary call to validate sps at streaming start
+- Reworked pixel format validation
+Link to v2: https://lore.kernel.org/linux-media/20200706215430.22859-1-jonas@kwiboo.se/
+
+Changes in v2:
+- Collect r-b tags
+- SPS pic width and height in mbs validation moved to rkvdec_try_ctrl
+- New patch to not override output buffer sizeimage
+- Reworked pixel format validation
+- Only align decoded buffer instead of changing frmsize step_width
+Link to v1: https://lore.kernel.org/linux-media/20200701215616.30874-1-jonas@kwiboo.se/
+
+Following commits adds support for NV15/NV20/NV30 to VOP driver:
+728c15b4b5f3 ("drm/fourcc: Add NV20 and NV30 YUV formats")
+d4b384228562 ("drm/rockchip: vop: Add NV15, NV20 and NV30 support")
+
+To fully runtime test this series you may need above drm commits and ffmpeg
+patches from [2], this series and drm patches is also available at [3].
+
+[1] https://lore.kernel.org/linux-media/20200706215430.22859-1-jonas@kwiboo.se/
+[2] https://github.com/Kwiboo/FFmpeg/commits/v4l2-request-n6.1-dev/
+[3] https://github.com/Kwiboo/linux-rockchip/commits/linuxtv-rkvdec-high-10-v4/
+[4] https://gist.github.com/Kwiboo/f4ac15576b2c72887ae2bc5d58b5c865
+[5] https://gist.github.com/Kwiboo/459a1c8f1dcb56e45dc7a7a29cc28adf
+
+Regards,
+Jonas
+
+Alex Bee (1):
+ media: rkvdec: h264: Don't hardcode SPS/PPS parameters
+
+Jonas Karlman (10):
+ media: v4l2-common: Add helpers to calculate bytesperline and
+ sizeimage
+ media: v4l2: Add NV15 and NV20 pixel formats
+ media: rkvdec: h264: Use bytesperline and buffer height as virstride
+ media: rkvdec: h264: Remove SPS validation at streaming start
+ media: rkvdec: Extract rkvdec_fill_decoded_pixfmt into helper
+ media: rkvdec: Move rkvdec_reset_decoded_fmt helper
+ media: rkvdec: Extract decoded format enumeration into helper
+ media: rkvdec: Add image format concept
+ media: rkvdec: Add get_image_fmt ops
+ media: rkvdec: h264: Support High 10 and 4:2:2 profiles
+
+ .../media/v4l/pixfmt-yuv-planar.rst | 128 +++++++++++
+ drivers/media/v4l2-core/v4l2-common.c | 80 +++----
+ drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
+ drivers/staging/media/rkvdec/rkvdec-h264.c | 83 +++----
+ drivers/staging/media/rkvdec/rkvdec.c | 217 +++++++++++++-----
+ drivers/staging/media/rkvdec/rkvdec.h | 18 +-
+ include/uapi/linux/videodev2.h | 2 +
+ 7 files changed, 396 insertions(+), 134 deletions(-)
+
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id DE389C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:55:44 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229689AbjKEQzp (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:55:45 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55952 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229445AbjKEQzm (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:55:42 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1C1083;
+ Sun, 5 Nov 2023 08:55:39 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203336; bh=VBY0FHZGIpUm3P9r+IeT6rGp7Go4Kcp8zODviR0ogjA=;
+ b=BKDG4dDc9E/ZgiRG/Ru2++h4WwhGmSBs+ypZlLeawtW/RGt/AaLCHiGqdm+rglxe3LuoobCDP
+ Z1McdMSA8+pGaOGUjrkNcejfcOiStGk2dyup5CL6o2cffFmwXiddU2IHSGyIsuPiKQMdW9vg06V
+ +Am3LQs7O/C62i61U99NwL+/OQLIrYdmIa4qIfN0Q2jD0pzCSQNUQqT9Km6MaKtalT6vgB5uBkz
+ dUUFyzSfjUIGLYrDsn7Krz0TAMgW3h1o+DmNrU9ADxowdsgtpe/KXGyoNvgNzmZVjUl1yPHmV2N
+ tXo2xLb10U5ZdhnEMg9J5mdqQWl3Z0x8mVyzpn4DbH8g==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 02/11] media: v4l2: Add NV15 and NV20 pixel formats
+Date: Sun, 5 Nov 2023 16:55:01 +0000
+Message-ID: <20231105165521.3592037-3-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c90742ad2f8d152468f4
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 9980
+Lines: 237
+
+Add NV15 and NV20 pixel formats used by the Rockchip Video Decoder for
+10-bit buffers.
+
+NV15 and NV20 is 10-bit 4:2:0/4:2:2 semi-planar YUV formats similar to
+NV12 and NV16, using 10-bit components with no padding between each
+component. Instead, a group of 4 luminance/chrominance samples are
+stored over 5 bytes in little endian order:
+
+YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes
+
+The '15' and '20' suffix refers to the optimum effective bits per pixel
+which is achieved when the total number of luminance samples is a
+multiple of 8 for NV15 and 4 for NV20.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- No change
+
+v3:
+- Use bpp and bpp_div instead of the misuse of block_w/block_h
+- Update documentation, expand to use full 4x4 sample image
+
+ .../media/v4l/pixfmt-yuv-planar.rst | 128 ++++++++++++++++++
+ drivers/media/v4l2-core/v4l2-common.c | 2 +
+ drivers/media/v4l2-core/v4l2-ioctl.c | 2 +
+ include/uapi/linux/videodev2.h | 2 +
+ 4 files changed, 134 insertions(+)
+
+diff --git a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst
+index 1840224faa41..4366cdcb970e 100644
+--- a/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst
++++ b/Documentation/userspace-api/media/v4l/pixfmt-yuv-planar.rst
+@@ -79,6 +79,13 @@ All components are stored with the same number of bits per component.
+ - Cr, Cb
+ - Yes
+ - Linear
++ * - V4L2_PIX_FMT_NV15
++ - 'NV15'
++ - 10
++ - 4:2:0
++ - Cb, Cr
++ - Yes
++ - Linear
+ * - V4L2_PIX_FMT_NV12M
+ - 'NM12'
+ - 8
+@@ -158,6 +165,13 @@ All components are stored with the same number of bits per component.
+ - Cr, Cb
+ - Yes
+ - Linear
++ * - V4L2_PIX_FMT_NV20
++ - 'NV20'
++ - 10
++ - 4:2:2
++ - Cb, Cr
++ - Yes
++ - Linear
+ * - V4L2_PIX_FMT_NV16M
+ - 'NM16'
+ - 8
+@@ -288,6 +302,57 @@ of the luma plane.
+ - Cr\ :sub:`11`
+
+
++.. _V4L2-PIX-FMT-NV15:
++
++NV15
++----
++
++Semi-planar 10-bit YUV 4:2:0 format similar to NV12, using 10-bit components
++with no padding between each component. A group of 4 components are stored over
++5 bytes in little endian order.
++
++.. flat-table:: Sample 4x4 NV15 Image (1 byte per cell)
++ :header-rows: 0
++ :stub-columns: 0
++
++ * - start + 0:
++ - Y'\ :sub:`00[7:0]`
++ - Y'\ :sub:`01[5:0]`\ Y'\ :sub:`00[9:8]`
++ - Y'\ :sub:`02[3:0]`\ Y'\ :sub:`01[9:6]`
++ - Y'\ :sub:`03[1:0]`\ Y'\ :sub:`02[9:4]`
++ - Y'\ :sub:`03[9:2]`
++ * - start + 5:
++ - Y'\ :sub:`10[7:0]`
++ - Y'\ :sub:`11[5:0]`\ Y'\ :sub:`10[9:8]`
++ - Y'\ :sub:`12[3:0]`\ Y'\ :sub:`11[9:6]`
++ - Y'\ :sub:`13[1:0]`\ Y'\ :sub:`12[9:4]`
++ - Y'\ :sub:`13[9:2]`
++ * - start + 10:
++ - Y'\ :sub:`20[7:0]`
++ - Y'\ :sub:`21[5:0]`\ Y'\ :sub:`20[9:8]`
++ - Y'\ :sub:`22[3:0]`\ Y'\ :sub:`21[9:6]`
++ - Y'\ :sub:`23[1:0]`\ Y'\ :sub:`22[9:4]`
++ - Y'\ :sub:`23[9:2]`
++ * - start + 15:
++ - Y'\ :sub:`30[7:0]`
++ - Y'\ :sub:`31[5:0]`\ Y'\ :sub:`30[9:8]`
++ - Y'\ :sub:`32[3:0]`\ Y'\ :sub:`31[9:6]`
++ - Y'\ :sub:`33[1:0]`\ Y'\ :sub:`32[9:4]`
++ - Y'\ :sub:`33[9:2]`
++ * - start + 20:
++ - Cb\ :sub:`00[7:0]`
++ - Cr\ :sub:`00[5:0]`\ Cb\ :sub:`00[9:8]`
++ - Cb\ :sub:`01[3:0]`\ Cr\ :sub:`00[9:6]`
++ - Cr\ :sub:`01[1:0]`\ Cb\ :sub:`01[9:4]`
++ - Cr\ :sub:`01[9:2]`
++ * - start + 25:
++ - Cb\ :sub:`10[7:0]`
++ - Cr\ :sub:`10[5:0]`\ Cb\ :sub:`10[9:8]`
++ - Cb\ :sub:`11[3:0]`\ Cr\ :sub:`10[9:6]`
++ - Cr\ :sub:`11[1:0]`\ Cb\ :sub:`11[9:4]`
++ - Cr\ :sub:`11[9:2]`
++
++
+ .. _V4L2-PIX-FMT-NV12MT:
+ .. _V4L2-PIX-FMT-NV12MT-16X16:
+ .. _V4L2-PIX-FMT-NV12-4L4:
+@@ -500,6 +565,69 @@ number of lines as the luma plane.
+ - Cr\ :sub:`32`
+
+
++.. _V4L2-PIX-FMT-NV20:
++
++NV20
++----
++
++Semi-planar 10-bit YUV 4:2:2 format similar to NV16, using 10-bit components
++with no padding between each component. A group of 4 components are stored over
++5 bytes in little endian order.
++
++.. flat-table:: Sample 4x4 NV20 Image (1 byte per cell)
++ :header-rows: 0
++ :stub-columns: 0
++
++ * - start + 0:
++ - Y'\ :sub:`00[7:0]`
++ - Y'\ :sub:`01[5:0]`\ Y'\ :sub:`00[9:8]`
++ - Y'\ :sub:`02[3:0]`\ Y'\ :sub:`01[9:6]`
++ - Y'\ :sub:`03[1:0]`\ Y'\ :sub:`02[9:4]`
++ - Y'\ :sub:`03[9:2]`
++ * - start + 5:
++ - Y'\ :sub:`10[7:0]`
++ - Y'\ :sub:`11[5:0]`\ Y'\ :sub:`10[9:8]`
++ - Y'\ :sub:`12[3:0]`\ Y'\ :sub:`11[9:6]`
++ - Y'\ :sub:`13[1:0]`\ Y'\ :sub:`12[9:4]`
++ - Y'\ :sub:`13[9:2]`
++ * - start + 10:
++ - Y'\ :sub:`20[7:0]`
++ - Y'\ :sub:`21[5:0]`\ Y'\ :sub:`20[9:8]`
++ - Y'\ :sub:`22[3:0]`\ Y'\ :sub:`21[9:6]`
++ - Y'\ :sub:`23[1:0]`\ Y'\ :sub:`22[9:4]`
++ - Y'\ :sub:`23[9:2]`
++ * - start + 15:
++ - Y'\ :sub:`30[7:0]`
++ - Y'\ :sub:`31[5:0]`\ Y'\ :sub:`30[9:8]`
++ - Y'\ :sub:`32[3:0]`\ Y'\ :sub:`31[9:6]`
++ - Y'\ :sub:`33[1:0]`\ Y'\ :sub:`32[9:4]`
++ - Y'\ :sub:`33[9:2]`
++ * - start + 20:
++ - Cb\ :sub:`00[7:0]`
++ - Cr\ :sub:`00[5:0]`\ Cb\ :sub:`00[9:8]`
++ - Cb\ :sub:`01[3:0]`\ Cr\ :sub:`00[9:6]`
++ - Cr\ :sub:`01[1:0]`\ Cb\ :sub:`01[9:4]`
++ - Cr\ :sub:`01[9:2]`
++ * - start + 25:
++ - Cb\ :sub:`10[7:0]`
++ - Cr\ :sub:`10[5:0]`\ Cb\ :sub:`10[9:8]`
++ - Cb\ :sub:`11[3:0]`\ Cr\ :sub:`10[9:6]`
++ - Cr\ :sub:`11[1:0]`\ Cb\ :sub:`11[9:4]`
++ - Cr\ :sub:`11[9:2]`
++ * - start + 30:
++ - Cb\ :sub:`20[7:0]`
++ - Cr\ :sub:`20[5:0]`\ Cb\ :sub:`20[9:8]`
++ - Cb\ :sub:`21[3:0]`\ Cr\ :sub:`20[9:6]`
++ - Cr\ :sub:`21[1:0]`\ Cb\ :sub:`21[9:4]`
++ - Cr\ :sub:`21[9:2]`
++ * - start + 35:
++ - Cb\ :sub:`30[7:0]`
++ - Cr\ :sub:`30[5:0]`\ Cb\ :sub:`30[9:8]`
++ - Cb\ :sub:`31[3:0]`\ Cr\ :sub:`30[9:6]`
++ - Cr\ :sub:`31[1:0]`\ Cb\ :sub:`31[9:4]`
++ - Cr\ :sub:`31[9:2]`
++
++
+ .. _V4L2-PIX-FMT-NV24:
+ .. _V4L2-PIX-FMT-NV42:
+
+diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c
+index 834b426da8b1..c65ffab5800a 100644
+--- a/drivers/media/v4l2-core/v4l2-common.c
++++ b/drivers/media/v4l2-core/v4l2-common.c
+@@ -270,8 +270,10 @@ const struct v4l2_format_info *v4l2_format_info(u32 format)
+ /* YUV planar formats */
+ { .format = V4L2_PIX_FMT_NV12, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 2 },
+ { .format = V4L2_PIX_FMT_NV21, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 2 },
++ { .format = V4L2_PIX_FMT_NV15, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 10, 0, 0 }, .bpp_div = { 4, 4, 1, 1 }, .hdiv = 2, .vdiv = 2 },
+ { .format = V4L2_PIX_FMT_NV16, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 },
+ { .format = V4L2_PIX_FMT_NV61, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 },
++ { .format = V4L2_PIX_FMT_NV20, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 10, 0, 0 }, .bpp_div = { 4, 4, 1, 1 }, .hdiv = 2, .vdiv = 1 },
+ { .format = V4L2_PIX_FMT_NV24, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 1, .vdiv = 1 },
+ { .format = V4L2_PIX_FMT_NV42, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 1, .vdiv = 1 },
+ { .format = V4L2_PIX_FMT_P010, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 2, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 },
+diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
+index 9b1de54ce379..937434e5f2c1 100644
+--- a/drivers/media/v4l2-core/v4l2-ioctl.c
++++ b/drivers/media/v4l2-core/v4l2-ioctl.c
+@@ -1347,8 +1347,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
+ case V4L2_PIX_FMT_YUV48_12: descr = "12-bit YUV 4:4:4 Packed"; break;
+ case V4L2_PIX_FMT_NV12: descr = "Y/UV 4:2:0"; break;
+ case V4L2_PIX_FMT_NV21: descr = "Y/VU 4:2:0"; break;
++ case V4L2_PIX_FMT_NV15: descr = "10-bit Y/UV 4:2:0 (Packed)"; break;
+ case V4L2_PIX_FMT_NV16: descr = "Y/UV 4:2:2"; break;
+ case V4L2_PIX_FMT_NV61: descr = "Y/VU 4:2:2"; break;
++ case V4L2_PIX_FMT_NV20: descr = "10-bit Y/UV 4:2:2 (Packed)"; break;
+ case V4L2_PIX_FMT_NV24: descr = "Y/UV 4:4:4"; break;
+ case V4L2_PIX_FMT_NV42: descr = "Y/VU 4:4:4"; break;
+ case V4L2_PIX_FMT_P010: descr = "10-bit Y/UV 4:2:0"; break;
+diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
+index c3d4e490ce7c..617340c43e40 100644
+--- a/include/uapi/linux/videodev2.h
++++ b/include/uapi/linux/videodev2.h
+@@ -638,8 +638,10 @@ struct v4l2_pix_format {
+ /* two planes -- one Y, one Cr + Cb interleaved */
+ #define V4L2_PIX_FMT_NV12 v4l2_fourcc('N', 'V', '1', '2') /* 12 Y/CbCr 4:2:0 */
+ #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */
++#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/CbCr 4:2:0 10-bit packed */
+ #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */
+ #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
++#define V4L2_PIX_FMT_NV20 v4l2_fourcc('N', 'V', '2', '0') /* 20 Y/CbCr 4:2:2 10-bit packed */
+ #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
+ #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
+ #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/CbCr 4:2:0 10-bit per component */
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id D15E5C41535
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:55:46 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229783AbjKEQzr (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:55:47 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55960 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229750AbjKEQzp (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:55:45 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E66683;
+ Sun, 5 Nov 2023 08:55:43 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203340; bh=+OFG4YG5FDD0E7pqkDYNn/y86VqErWzPoJTEkQmn5bo=;
+ b=StlZA6dajX8qKmnknsBdHP3Zb/+n/5VM9fvjRarx8NdJAOE9c0/LroE7FCRJMTpAd2QeYPqEk
+ GlBJF8Tkoce8+on3TMDoVVVcDVoe64X9F3I8sky3f3QMVM0hRMfESCloGAfBmgJMQOlFbiYJoF8
+ jyas+Ej+T3Hdf7GpbMvKscpxZWPdkAR/L0TcjRZ1ecrJCV3tjQb3B0AgNn16RUNk8xal98zksRH
+ 8AZIkScpnmidofdFs4XzySMSGmQZ8Xm9d2rtbdBZJBhV0izwzGuXM74kGbD1Sfn/PSJvoc1NwTP
+ YspiFhJeP4kTyJBikzZ2FU7MJpZRGMnjGYIWOf8kdEQA==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 03/11] media: rkvdec: h264: Use bytesperline and buffer height as virstride
+Date: Sun, 5 Nov 2023 16:55:02 +0000
+Message-ID: <20231105165521.3592037-4-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c90b42ad2f8d15246901
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 1840
+Lines: 58
+
+Use bytesperline and buffer height to calculate the strides configured.
+
+This does not really change anything other than ensuring the
+bytesperline that is signaled to userspace matches what is configured
+in HW.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- No change
+
+v3:
+- Remove unnecessary yuv_virstride +=
+
+ drivers/staging/media/rkvdec/rkvdec-h264.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c
+index 4fc167b42cf0..7a1e76d423df 100644
+--- a/drivers/staging/media/rkvdec/rkvdec-h264.c
++++ b/drivers/staging/media/rkvdec/rkvdec-h264.c
+@@ -896,9 +896,9 @@ static void config_registers(struct rkvdec_ctx *ctx,
+ dma_addr_t rlc_addr;
+ dma_addr_t refer_addr;
+ u32 rlc_len;
+- u32 hor_virstride = 0;
+- u32 ver_virstride = 0;
+- u32 y_virstride = 0;
++ u32 hor_virstride;
++ u32 ver_virstride;
++ u32 y_virstride;
+ u32 yuv_virstride = 0;
+ u32 offset;
+ dma_addr_t dst_addr;
+@@ -909,16 +909,16 @@ static void config_registers(struct rkvdec_ctx *ctx,
+
+ f = &ctx->decoded_fmt;
+ dst_fmt = &f->fmt.pix_mp;
+- hor_virstride = (sps->bit_depth_luma_minus8 + 8) * dst_fmt->width / 8;
+- ver_virstride = round_up(dst_fmt->height, 16);
++ hor_virstride = dst_fmt->plane_fmt[0].bytesperline;
++ ver_virstride = dst_fmt->height;
+ y_virstride = hor_virstride * ver_virstride;
+
+ if (sps->chroma_format_idc == 0)
+ yuv_virstride = y_virstride;
+ else if (sps->chroma_format_idc == 1)
+- yuv_virstride += y_virstride + y_virstride / 2;
++ yuv_virstride = y_virstride + y_virstride / 2;
+ else if (sps->chroma_format_idc == 2)
+- yuv_virstride += 2 * y_virstride;
++ yuv_virstride = 2 * y_virstride;
+
+ reg = RKVDEC_Y_HOR_VIRSTRIDE(hor_virstride / 16) |
+ RKVDEC_UV_HOR_VIRSTRIDE(hor_virstride / 16) |
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id 20224C4167B
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:55:51 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229863AbjKEQzv (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:55:51 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38594 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229750AbjKEQzu (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:55:50 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A35E83;
+ Sun, 5 Nov 2023 08:55:47 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203344; bh=9YYcLQUrnGdihBMIqGOq7h6o3o2vBA6zqeQq5WUvP+E=;
+ b=eD1bLCz2tEhCI1tolmZ2Vjzp0MZ0gVT9Jvs1nWFjuFxp8N+NKZT7j0QlBDBaD1+w7cmQCFei8
+ 4F5T0hyjf2cAB5Q8QrcBhKv4qTTY+WCbPYE/wfGku+1gS6asFDkGE+ws7ggy7WuAzRP80crHHYY
+ aJ0wLjygKoFoM4JDmk8foW2RPtEpn+C5D3J8C6NM+BnYSqQ5I2Pt4edVa9o8Xou7VXSSLMo/d2P
+ GFcatom08AiaB6WcjllBvOSR+Aey0GU3xrvkWT3QghBLDhLvb+UBMg8b/UoMU2r5gepuQrhduVU
+ QEztP/n2G3V3Ne51W5539Y9gynfSfM1XXNkgJJAubGGg==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 04/11] media: rkvdec: h264: Don't hardcode SPS/PPS parameters
+Date: Sun, 5 Nov 2023 16:55:03 +0000
+Message-ID: <20231105165521.3592037-5-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c90f42ad2f8d1524690e
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 2306
+Lines: 57
+
+From: Alex Bee <knaerzche@gmail.com>
+
+Some SPS/PPS parameters are currently hardcoded in the driver even
+though they exist in the stable uapi controls.
+
+Use values from SPS/PPS controls instead of hardcoding them.
+
+Signed-off-by: Alex Bee <knaerzche@gmail.com>
+[jonas@kwiboo.se: constraint_set_flags condition, commit message]
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- No change
+
+v3:
+- New patch
+
+ drivers/staging/media/rkvdec/rkvdec-h264.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c
+index 7a1e76d423df..8bce8902b8dd 100644
+--- a/drivers/staging/media/rkvdec/rkvdec-h264.c
++++ b/drivers/staging/media/rkvdec/rkvdec-h264.c
+@@ -655,13 +655,14 @@ static void assemble_hw_pps(struct rkvdec_ctx *ctx,
+
+ #define WRITE_PPS(value, field) set_ps_field(hw_ps->info, field, value)
+ /* write sps */
+- WRITE_PPS(0xf, SEQ_PARAMETER_SET_ID);
+- WRITE_PPS(0xff, PROFILE_IDC);
+- WRITE_PPS(1, CONSTRAINT_SET3_FLAG);
++ WRITE_PPS(sps->seq_parameter_set_id, SEQ_PARAMETER_SET_ID);
++ WRITE_PPS(sps->profile_idc, PROFILE_IDC);
++ WRITE_PPS(!!(sps->constraint_set_flags & (1 << 3)), CONSTRAINT_SET3_FLAG);
+ WRITE_PPS(sps->chroma_format_idc, CHROMA_FORMAT_IDC);
+ WRITE_PPS(sps->bit_depth_luma_minus8, BIT_DEPTH_LUMA);
+ WRITE_PPS(sps->bit_depth_chroma_minus8, BIT_DEPTH_CHROMA);
+- WRITE_PPS(0, QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG);
++ WRITE_PPS(!!(sps->flags & V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS),
++ QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG);
+ WRITE_PPS(sps->log2_max_frame_num_minus4, LOG2_MAX_FRAME_NUM_MINUS4);
+ WRITE_PPS(sps->max_num_ref_frames, MAX_NUM_REF_FRAMES);
+ WRITE_PPS(sps->pic_order_cnt_type, PIC_ORDER_CNT_TYPE);
+@@ -688,8 +689,8 @@ static void assemble_hw_pps(struct rkvdec_ctx *ctx,
+ DIRECT_8X8_INFERENCE_FLAG);
+
+ /* write pps */
+- WRITE_PPS(0xff, PIC_PARAMETER_SET_ID);
+- WRITE_PPS(0x1f, PPS_SEQ_PARAMETER_SET_ID);
++ WRITE_PPS(pps->pic_parameter_set_id, PIC_PARAMETER_SET_ID);
++ WRITE_PPS(pps->seq_parameter_set_id, PPS_SEQ_PARAMETER_SET_ID);
+ WRITE_PPS(!!(pps->flags & V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE),
+ ENTROPY_CODING_MODE_FLAG);
+ WRITE_PPS(!!(pps->flags & V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT),
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id 1E995C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:55:59 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229908AbjKEQz7 (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:55:59 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38624 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229750AbjKEQzy (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:55:54 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F582D9;
+ Sun, 5 Nov 2023 08:55:51 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203347; bh=QFwovX5RPW7IMq4uUoTrIwvqoq7/7Q8z3p4frGKGekE=;
+ b=iogMt8BWbZ0IMRmVXbXItCv2PMI90AvIJerLiaBkLdr5Iz3gxsyeA+sJtYcyrGpEiAq4Cx4jh
+ CU6e08rrf0+3hAGVy+uUEWSLW1V9mgO3K0MhMjoD5j3sNnCLB/zlyIgQKEVPNEPMsJJsCjUPrSp
+ bkjdHkeuCSVnNC6wRPf9nVTntHFNca6abSevGZl1ivQkXbc4zjsKD0bby05TvBxzYGNDV4jJEvN
+ msaVQ7ak2pAhjvxTFBh/wR7hcGbvTNhHB8PrknCBLCMXttDHfgNPsOPd5mIGi3gHBL284C2+afM
+ /TMAOTHtW2vO7Dp0JJU8Pi7PNGYV/XciaErgvSuz78Hw==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 05/11] media: rkvdec: h264: Remove SPS validation at streaming start
+Date: Sun, 5 Nov 2023 16:55:04 +0000
+Message-ID: <20231105165521.3592037-6-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c91342ad2f8d1524691b
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 1757
+Lines: 64
+
+SPS parameters is validated in try_ctrl() ops so there is no need to
+re-validate when streaming starts.
+
+Remove the unnecessary call to validate sps at streaming start.
+
+Suggested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- No change
+
+v3:
+- New patch
+
+ drivers/staging/media/rkvdec/rkvdec-h264.c | 19 ++-----------------
+ 1 file changed, 2 insertions(+), 17 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c
+index 8bce8902b8dd..815d5359ddd5 100644
+--- a/drivers/staging/media/rkvdec/rkvdec-h264.c
++++ b/drivers/staging/media/rkvdec/rkvdec-h264.c
+@@ -1070,17 +1070,6 @@ static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
+ struct rkvdec_dev *rkvdec = ctx->dev;
+ struct rkvdec_h264_priv_tbl *priv_tbl;
+ struct rkvdec_h264_ctx *h264_ctx;
+- struct v4l2_ctrl *ctrl;
+- int ret;
+-
+- ctrl = v4l2_ctrl_find(&ctx->ctrl_hdl,
+- V4L2_CID_STATELESS_H264_SPS);
+- if (!ctrl)
+- return -EINVAL;
+-
+- ret = rkvdec_h264_validate_sps(ctx, ctrl->p_new.p_h264_sps);
+- if (ret)
+- return ret;
+
+ h264_ctx = kzalloc(sizeof(*h264_ctx), GFP_KERNEL);
+ if (!h264_ctx)
+@@ -1089,8 +1078,8 @@ static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
+ priv_tbl = dma_alloc_coherent(rkvdec->dev, sizeof(*priv_tbl),
+ &h264_ctx->priv_tbl.dma, GFP_KERNEL);
+ if (!priv_tbl) {
+- ret = -ENOMEM;
+- goto err_free_ctx;
++ kfree(h264_ctx);
++ return -ENOMEM;
+ }
+
+ h264_ctx->priv_tbl.size = sizeof(*priv_tbl);
+@@ -1100,10 +1089,6 @@ static int rkvdec_h264_start(struct rkvdec_ctx *ctx)
+
+ ctx->priv = h264_ctx;
+ return 0;
+-
+-err_free_ctx:
+- kfree(h264_ctx);
+- return ret;
+ }
+
+ static void rkvdec_h264_stop(struct rkvdec_ctx *ctx)
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id E72FAC4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:56:03 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229929AbjKEQ4D (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:56:03 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40048 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229972AbjKEQ4B (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:56:01 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABBE0134;
+ Sun, 5 Nov 2023 08:55:55 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203351; bh=eOQ3o+VKmQncWFPGxsnugYz9IoSdcHeasfArhQJpc8A=;
+ b=DxSazXkmvBaYEXuEfUZTO2CrIiKkwVLyRvf+CutflUqddjZ4lu9V1QaDKwHxPC/KnpomVLB/z
+ wP0RVGihxRnMmONsgqV7RLCUZFP1U/EyG4zUYMwM5teK2RpY4trsrGiRX7wwbH1KsJiZ/GHnotH
+ JWTMsOeokFfQ9dt0Q/RPoHt32/zJciZjvwr3Q3UN6xL0TWgg+AlweSo2bi45hwk6SV/CQVWGl0E
+ STWBOr6lOhYkdkyXL4Mu8dKb0VOhjfU6eKaWBNdqlktBK5jFo6ep3Smt0aEZnQWrdE5T/QMuc6h
+ LF6bqgyHkpIzskFFblPBoYmMAXhSB3XBVMnzwpZVC40g==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 06/11] media: rkvdec: Extract rkvdec_fill_decoded_pixfmt into helper
+Date: Sun, 5 Nov 2023 16:55:05 +0000
+Message-ID: <20231105165521.3592037-7-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c91742ad2f8d15246928
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 2352
+Lines: 69
+
+Extract call to v4l2_fill_pixfmt_mp() and ajusting of sizeimage into a
+helper. Replace current code with a call to the new helper.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- Do not reset pix_mp->field in rkvdec_fill_decoded_pixfmt()
+
+v3:
+- No changes
+
+ drivers/staging/media/rkvdec/rkvdec.c | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
+index 84a41792cb4b..0570c790ad08 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.c
++++ b/drivers/staging/media/rkvdec/rkvdec.c
+@@ -27,6 +27,16 @@
+ #include "rkvdec.h"
+ #include "rkvdec-regs.h"
+
++static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx,
++ struct v4l2_pix_format_mplane *pix_mp)
++{
++ v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat,
++ pix_mp->width, pix_mp->height);
++ pix_mp->plane_fmt[0].sizeimage += 128 *
++ DIV_ROUND_UP(pix_mp->width, 16) *
++ DIV_ROUND_UP(pix_mp->height, 16);
++}
++
+ static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl)
+ {
+ struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl);
+@@ -192,13 +202,9 @@ static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx)
+
+ rkvdec_reset_fmt(ctx, f, ctx->coded_fmt_desc->decoded_fmts[0]);
+ f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+- v4l2_fill_pixfmt_mp(&f->fmt.pix_mp,
+- ctx->coded_fmt_desc->decoded_fmts[0],
+- ctx->coded_fmt.fmt.pix_mp.width,
+- ctx->coded_fmt.fmt.pix_mp.height);
+- f->fmt.pix_mp.plane_fmt[0].sizeimage += 128 *
+- DIV_ROUND_UP(f->fmt.pix_mp.width, 16) *
+- DIV_ROUND_UP(f->fmt.pix_mp.height, 16);
++ f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width;
++ f->fmt.pix_mp.height = ctx->coded_fmt.fmt.pix_mp.height;
++ rkvdec_fill_decoded_pixfmt(ctx, &f->fmt.pix_mp);
+ }
+
+ static int rkvdec_enum_framesizes(struct file *file, void *priv,
+@@ -264,12 +270,7 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv,
+ &pix_mp->height,
+ &coded_desc->frmsize);
+
+- v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat,
+- pix_mp->width, pix_mp->height);
+- pix_mp->plane_fmt[0].sizeimage +=
+- 128 *
+- DIV_ROUND_UP(pix_mp->width, 16) *
+- DIV_ROUND_UP(pix_mp->height, 16);
++ rkvdec_fill_decoded_pixfmt(ctx, pix_mp);
+ pix_mp->field = V4L2_FIELD_NONE;
+
+ return 0;
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id A9C69C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 16:56:26 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S230438AbjKEQ41 (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 11:56:27 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40098 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S230256AbjKEQ4Q (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 11:56:16 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1192910C8;
+ Sun, 5 Nov 2023 08:56:11 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203367; bh=lpnBJaNiSOXF2fbVkARa+33opskrlpRAhdbPZ7vR6lI=;
+ b=VM49k8elFZ6RRgB1nf7LwO33PFuV3oU0yPReic/VjHWVuJIWjF1BAAqQeJ/kSNr4WviBYt7wc
+ yoAzmSrMaXchniGD9+P+AClnI10zGhD6Ms5PVd5D3+60btZDafhrPK3z58o1orIkwbQorItpCN7
+ C9SwGc78iqWSqt00jt/1LXXtxIPZmJidD6Hl8dszXb/mSxHFCy02zpZeMCQSZ1t0WPI2jokH9c8
+ SI4a8ajRdYOEWjyKSv9R54v8NGjE99w9sBKIJDgTSNbokoEgRzO2xFaBXHTHmM3jEMIvJDFRn04
+ LvpAtA46NwI+N4+6y/C2XtBij8WOvmhPWH3EmiP1bMHQ==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 10/11] media: rkvdec: Add get_image_fmt ops
+Date: Sun, 5 Nov 2023 16:55:09 +0000
+Message-ID: <20231105165521.3592037-11-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c92642ad2f8d1524695c
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 3036
+Lines: 102
+
+Add support for a get_image_fmt() ops that return the required image
+format.
+
+The CAPTURE format is reset when required image format changes and the
+buffer queue is not busy.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- Change fmt_opaque into an image format
+- Split patch into two
+
+v3:
+- New patch
+
+ drivers/staging/media/rkvdec/rkvdec.c | 49 +++++++++++++++++++++++++--
+ drivers/staging/media/rkvdec/rkvdec.h | 2 ++
+ 2 files changed, 49 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
+index 5949d59d4cf9..225aa1f0ac48 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.c
++++ b/drivers/staging/media/rkvdec/rkvdec.c
+@@ -108,15 +108,60 @@ static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl)
+ {
+ struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl);
+ const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc;
++ struct v4l2_pix_format_mplane *pix_mp = &ctx->decoded_fmt.fmt.pix_mp;
++ enum rkvdec_image_fmt image_fmt;
++ struct vb2_queue *vq;
++ int ret;
++
++ if (desc->ops->try_ctrl) {
++ ret = desc->ops->try_ctrl(ctx, ctrl);
++ if (ret)
++ return ret;
++ }
++
++ if (!desc->ops->get_image_fmt)
++ return 0;
+
+- if (desc->ops->try_ctrl)
+- return desc->ops->try_ctrl(ctx, ctrl);
++ image_fmt = desc->ops->get_image_fmt(ctx, ctrl);
++ if (ctx->image_fmt == image_fmt)
++ return 0;
++
++ if (rkvdec_is_valid_fmt(ctx, pix_mp->pixelformat, image_fmt))
++ return 0;
++
++ /* format change not allowed when queue is busy */
++ vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx,
++ V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
++ if (vb2_is_busy(vq))
++ return -EINVAL;
++
++ return 0;
++}
++
++static int rkvdec_s_ctrl(struct v4l2_ctrl *ctrl)
++{
++ struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl);
++ const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc;
++ struct v4l2_pix_format_mplane *pix_mp = &ctx->decoded_fmt.fmt.pix_mp;
++ enum rkvdec_image_fmt image_fmt;
++
++ if (!desc->ops->get_image_fmt)
++ return 0;
++
++ image_fmt = desc->ops->get_image_fmt(ctx, ctrl);
++ if (ctx->image_fmt == image_fmt)
++ return 0;
++
++ ctx->image_fmt = image_fmt;
++ if (!rkvdec_is_valid_fmt(ctx, pix_mp->pixelformat, ctx->image_fmt))
++ rkvdec_reset_decoded_fmt(ctx);
+
+ return 0;
+ }
+
+ static const struct v4l2_ctrl_ops rkvdec_ctrl_ops = {
+ .try_ctrl = rkvdec_try_ctrl,
++ .s_ctrl = rkvdec_s_ctrl,
+ };
+
+ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = {
+diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
+index 6f8cf50c5d99..e466a2753ccf 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.h
++++ b/drivers/staging/media/rkvdec/rkvdec.h
+@@ -73,6 +73,8 @@ struct rkvdec_coded_fmt_ops {
+ struct vb2_v4l2_buffer *dst_buf,
+ enum vb2_buffer_state result);
+ int (*try_ctrl)(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl);
++ enum rkvdec_image_fmt (*get_image_fmt)(struct rkvdec_ctx *ctx,
++ struct v4l2_ctrl *ctrl);
+ };
+
+ enum rkvdec_image_fmt {
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id DF360C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 17:05:42 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229489AbjKERFn (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 12:05:43 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36374 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229445AbjKERFn (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 12:05:43 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 174C497;
+ Sun, 5 Nov 2023 09:05:40 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203938; bh=7TvJ7hJu85Rv+IB9dyvciIwrrP9mf2NII64BLyqL6pI=;
+ b=c6ljQ0zc5Ummv/9BSWkxu9BtNA/+DCE2lXoUKtp9N4iUnWtyAwwNjkL2Bir0OIk0oyAfDbVaO
+ DydCMQZT7Xw9thbnRaxqGjl9JxlsfsM1MFfeiApOYBFCYpWvEFdZ4LCAo4KuhyYKaAjXPajcxa1
+ AsKteI80bM0J+jDIkZ7JW3WhVsayK8EFvvkRzG0/p/ioaVcDJH00SNkaTSgGVra9Qlb7VK43LKJ
+ Z2R+RvTtBArmGOPuOJqasDeCAWCp2U+FQW2KsF0hP4s1QWjBTWvMK5kOCuJ/mJ8TiS1Fj0VP/DY
+ 7T4m6ZNaWP0ja3sMROTPADMdc+dBmfooxn74yBsZw0xQ==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 01/11] media: v4l2-common: Add helpers to calculate bytesperline and sizeimage
+Date: Sun, 5 Nov 2023 16:55:00 +0000
+Message-ID: <20231105165521.3592037-2-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c90342ad2f8d152468e7
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 4617
+Lines: 129
+
+Add helper functions to calculate plane bytesperline and sizeimage,
+these new helpers consider bpp div, block width and height when
+calculating plane bytesperline and sizeimage.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- No change
+
+v3:
+- Consider bpp_div in calculation
+
+ drivers/media/v4l2-core/v4l2-common.c | 78 +++++++++++++--------------
+ 1 file changed, 39 insertions(+), 39 deletions(-)
+
+diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c
+index 3a4b15a98e02..834b426da8b1 100644
+--- a/drivers/media/v4l2-core/v4l2-common.c
++++ b/drivers/media/v4l2-core/v4l2-common.c
+@@ -350,6 +350,34 @@ static inline unsigned int v4l2_format_block_height(const struct v4l2_format_inf
+ return info->block_h[plane];
+ }
+
++static inline unsigned int v4l2_format_plane_width(const struct v4l2_format_info *info, int plane,
++ unsigned int width)
++{
++ unsigned int hdiv = plane ? info->hdiv : 1;
++ unsigned int aligned_width =
++ ALIGN(width, v4l2_format_block_width(info, plane));
++
++ return DIV_ROUND_UP(aligned_width, hdiv) *
++ info->bpp[plane] / info->bpp_div[plane];
++}
++
++static inline unsigned int v4l2_format_plane_height(const struct v4l2_format_info *info, int plane,
++ unsigned int height)
++{
++ unsigned int vdiv = plane ? info->vdiv : 1;
++ unsigned int aligned_height =
++ ALIGN(height, v4l2_format_block_height(info, plane));
++
++ return DIV_ROUND_UP(aligned_height, vdiv);
++}
++
++static inline unsigned int v4l2_format_plane_size(const struct v4l2_format_info *info, int plane,
++ unsigned int width, unsigned int height)
++{
++ return v4l2_format_plane_width(info, plane, width) *
++ v4l2_format_plane_height(info, plane, height);
++}
++
+ void v4l2_apply_frmsize_constraints(u32 *width, u32 *height,
+ const struct v4l2_frmsize_stepwise *frmsize)
+ {
+@@ -385,37 +413,19 @@ int v4l2_fill_pixfmt_mp(struct v4l2_pix_format_mplane *pixfmt,
+
+ if (info->mem_planes == 1) {
+ plane = &pixfmt->plane_fmt[0];
+- plane->bytesperline = ALIGN(width, v4l2_format_block_width(info, 0)) * info->bpp[0] / info->bpp_div[0];
++ plane->bytesperline = v4l2_format_plane_width(info, 0, width);
+ plane->sizeimage = 0;
+
+- for (i = 0; i < info->comp_planes; i++) {
+- unsigned int hdiv = (i == 0) ? 1 : info->hdiv;
+- unsigned int vdiv = (i == 0) ? 1 : info->vdiv;
+- unsigned int aligned_width;
+- unsigned int aligned_height;
+-
+- aligned_width = ALIGN(width, v4l2_format_block_width(info, i));
+- aligned_height = ALIGN(height, v4l2_format_block_height(info, i));
+-
+- plane->sizeimage += info->bpp[i] *
+- DIV_ROUND_UP(aligned_width, hdiv) *
+- DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i];
+- }
++ for (i = 0; i < info->comp_planes; i++)
++ plane->sizeimage +=
++ v4l2_format_plane_size(info, i, width, height);
+ } else {
+ for (i = 0; i < info->comp_planes; i++) {
+- unsigned int hdiv = (i == 0) ? 1 : info->hdiv;
+- unsigned int vdiv = (i == 0) ? 1 : info->vdiv;
+- unsigned int aligned_width;
+- unsigned int aligned_height;
+-
+- aligned_width = ALIGN(width, v4l2_format_block_width(info, i));
+- aligned_height = ALIGN(height, v4l2_format_block_height(info, i));
+-
+ plane = &pixfmt->plane_fmt[i];
+ plane->bytesperline =
+- info->bpp[i] * DIV_ROUND_UP(aligned_width, hdiv) / info->bpp_div[i];
+- plane->sizeimage =
+- plane->bytesperline * DIV_ROUND_UP(aligned_height, vdiv);
++ v4l2_format_plane_width(info, i, width);
++ plane->sizeimage = plane->bytesperline *
++ v4l2_format_plane_height(info, i, height);
+ }
+ }
+ return 0;
+@@ -439,22 +449,12 @@ int v4l2_fill_pixfmt(struct v4l2_pix_format *pixfmt, u32 pixelformat,
+ pixfmt->width = width;
+ pixfmt->height = height;
+ pixfmt->pixelformat = pixelformat;
+- pixfmt->bytesperline = ALIGN(width, v4l2_format_block_width(info, 0)) * info->bpp[0] / info->bpp_div[0];
++ pixfmt->bytesperline = v4l2_format_plane_width(info, 0, width);
+ pixfmt->sizeimage = 0;
+
+- for (i = 0; i < info->comp_planes; i++) {
+- unsigned int hdiv = (i == 0) ? 1 : info->hdiv;
+- unsigned int vdiv = (i == 0) ? 1 : info->vdiv;
+- unsigned int aligned_width;
+- unsigned int aligned_height;
+-
+- aligned_width = ALIGN(width, v4l2_format_block_width(info, i));
+- aligned_height = ALIGN(height, v4l2_format_block_height(info, i));
+-
+- pixfmt->sizeimage += info->bpp[i] *
+- DIV_ROUND_UP(aligned_width, hdiv) *
+- DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i];
+- }
++ for (i = 0; i < info->comp_planes; i++)
++ pixfmt->sizeimage +=
++ v4l2_format_plane_size(info, i, width, height);
+ return 0;
+ }
+ EXPORT_SYMBOL_GPL(v4l2_fill_pixfmt);
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id E8AB8C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 17:06:34 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229599AbjKERGf (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 12:06:35 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49762 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229448AbjKERGe (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 12:06:34 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86726CC;
+ Sun, 5 Nov 2023 09:06:31 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203989; bh=DHrB2MDEvgLvMGiiGW4ysBRF9ISWcTsdFhQXpZT8qmk=;
+ b=qmG2UqLYMHESXsPdAlgbWWmznBQ+5Rc/W8EIDO0qSi+1yFUmMT+7+LjPru6aNwNGUsKKRYzb/
+ EY6npsho/gelDfv/bMhMUH5ndDkQCcOqZCToPdUe0PMb38XzUz5XHCLQMEYwMYTtgLjz4KhCRUu
+ g2nf26aFjz09K1jtw4iXOLCLAUYi36nTcDGJD9A13XdIsr8M7IWP/XQB+e7g+eWEKqsgD4JOqzH
+ Nab8uOYS4hQZIMT/Ova8vLF2KuzcAjAK6OQVaDE3MvKT7EjLO0Ole1+rQ98P5NmDGs12WosfF9m
+ 4StMPGZuIZleIWK657/cEYge1ZXLPL+xPAI2af7/C2uQ==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 07/11] media: rkvdec: Move rkvdec_reset_decoded_fmt helper
+Date: Sun, 5 Nov 2023 16:55:06 +0000
+Message-ID: <20231105165521.3592037-8-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c91a42ad2f8d15246935
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 2929
+Lines: 88
+
+Move rkvdec_reset_decoded_fmt() and the called rkvdec_reset_fmt() helper
+functions in preparation for adding a new caller in an upcoming patch.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- No change
+
+v3:
+- New patch
+
+ drivers/staging/media/rkvdec/rkvdec.c | 46 +++++++++++++--------------
+ 1 file changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
+index 0570c790ad08..7a79840470e1 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.c
++++ b/drivers/staging/media/rkvdec/rkvdec.c
+@@ -37,6 +37,29 @@ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx,
+ DIV_ROUND_UP(pix_mp->height, 16);
+ }
+
++static void rkvdec_reset_fmt(struct rkvdec_ctx *ctx, struct v4l2_format *f,
++ u32 fourcc)
++{
++ memset(f, 0, sizeof(*f));
++ f->fmt.pix_mp.pixelformat = fourcc;
++ f->fmt.pix_mp.field = V4L2_FIELD_NONE;
++ f->fmt.pix_mp.colorspace = V4L2_COLORSPACE_REC709;
++ f->fmt.pix_mp.ycbcr_enc = V4L2_YCBCR_ENC_DEFAULT;
++ f->fmt.pix_mp.quantization = V4L2_QUANTIZATION_DEFAULT;
++ f->fmt.pix_mp.xfer_func = V4L2_XFER_FUNC_DEFAULT;
++}
++
++static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx)
++{
++ struct v4l2_format *f = &ctx->decoded_fmt;
++
++ rkvdec_reset_fmt(ctx, f, ctx->coded_fmt_desc->decoded_fmts[0]);
++ f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
++ f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width;
++ f->fmt.pix_mp.height = ctx->coded_fmt.fmt.pix_mp.height;
++ rkvdec_fill_decoded_pixfmt(ctx, &f->fmt.pix_mp);
++}
++
+ static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl)
+ {
+ struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl);
+@@ -169,18 +192,6 @@ rkvdec_find_coded_fmt_desc(u32 fourcc)
+ return NULL;
+ }
+
+-static void rkvdec_reset_fmt(struct rkvdec_ctx *ctx, struct v4l2_format *f,
+- u32 fourcc)
+-{
+- memset(f, 0, sizeof(*f));
+- f->fmt.pix_mp.pixelformat = fourcc;
+- f->fmt.pix_mp.field = V4L2_FIELD_NONE;
+- f->fmt.pix_mp.colorspace = V4L2_COLORSPACE_REC709;
+- f->fmt.pix_mp.ycbcr_enc = V4L2_YCBCR_ENC_DEFAULT;
+- f->fmt.pix_mp.quantization = V4L2_QUANTIZATION_DEFAULT;
+- f->fmt.pix_mp.xfer_func = V4L2_XFER_FUNC_DEFAULT;
+-}
+-
+ static void rkvdec_reset_coded_fmt(struct rkvdec_ctx *ctx)
+ {
+ struct v4l2_format *f = &ctx->coded_fmt;
+@@ -196,17 +207,6 @@ static void rkvdec_reset_coded_fmt(struct rkvdec_ctx *ctx)
+ ctx->coded_fmt_desc->ops->adjust_fmt(ctx, f);
+ }
+
+-static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx)
+-{
+- struct v4l2_format *f = &ctx->decoded_fmt;
+-
+- rkvdec_reset_fmt(ctx, f, ctx->coded_fmt_desc->decoded_fmts[0]);
+- f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+- f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width;
+- f->fmt.pix_mp.height = ctx->coded_fmt.fmt.pix_mp.height;
+- rkvdec_fill_decoded_pixfmt(ctx, &f->fmt.pix_mp);
+-}
+-
+ static int rkvdec_enum_framesizes(struct file *file, void *priv,
+ struct v4l2_frmsizeenum *fsize)
+ {
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id 13D34C4167D
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 17:06:36 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229713AbjKERGg (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 12:06:36 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49742 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229445AbjKERGe (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 12:06:34 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 658B0BE;
+ Sun, 5 Nov 2023 09:06:31 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203989; bh=xMWdTI2tUEFKp2F1sr+htYd15e9XusEq/UI6wwQ23Zo=;
+ b=ZyiltVXf8DDsLqPsgtPJgmb3HjfrtesgDPcdXKeTv9LmdPuf5p/dHGViNsOMP55fb0AllTPZI
+ +GYZTNfnkZRUci2yDg85xvcVfB4qqwcOerT5AiZ2yI+b3fluYbcT/aQYBcOfWFmsC38AMYUObPE
+ 7uB+brrbLncf+LOFQvobQi1o9aZKobaW7glDrpjrHlmXU5Cd6sGaFubfnqBZSKhRcnhUdV5F2se
+ 3h1YHIp7EfEXXyMy6TRcqAn4dQWILwcVQPSfBjLUGRNOGxmXVBxQ/ucfLmqBfGnCqYezK/EhLhu
+ VaHDM9J/9hnv8XqC38Tp71ktBmt0DX+gjp/G4cJ9tXsA==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 08/11] media: rkvdec: Extract decoded format enumeration into helper
+Date: Sun, 5 Nov 2023 16:55:07 +0000
+Message-ID: <20231105165521.3592037-9-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c91e42ad2f8d15246942
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 3560
+Lines: 114
+
+Add a rkvdec_is_valid_fmt() helper that check if a fourcc is a supported
+CAPTURE format, and a rkvdec_enum_decoded_fmt() helper that enumerate
+valid formats.
+
+This move current code into helper functions in preparation for adding
+CAPTURE format filtering and validation in next patch.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- Rename rkvdec_decoded_fmts() to rkvdec_enum_decoded_fmt()
+- Rename rkvdec_valid_fmt() to rkvdec_is_valid_fmt()
+
+v3:
+- New patch
+
+ drivers/staging/media/rkvdec/rkvdec.c | 49 +++++++++++++++++++--------
+ 1 file changed, 35 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
+index 7a79840470e1..c3aede94c872 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.c
++++ b/drivers/staging/media/rkvdec/rkvdec.c
+@@ -27,6 +27,32 @@
+ #include "rkvdec.h"
+ #include "rkvdec-regs.h"
+
++static u32 rkvdec_enum_decoded_fmt(struct rkvdec_ctx *ctx, int index)
++{
++ const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc;
++
++ if (WARN_ON(!desc))
++ return 0;
++
++ if (index >= desc->num_decoded_fmts)
++ return 0;
++
++ return desc->decoded_fmts[index];
++}
++
++static bool rkvdec_is_valid_fmt(struct rkvdec_ctx *ctx, u32 fourcc)
++{
++ const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc;
++ unsigned int i;
++
++ for (i = 0; i < desc->num_decoded_fmts; i++) {
++ if (desc->decoded_fmts[i] == fourcc)
++ return true;
++ }
++
++ return false;
++}
++
+ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx,
+ struct v4l2_pix_format_mplane *pix_mp)
+ {
+@@ -52,8 +78,10 @@ static void rkvdec_reset_fmt(struct rkvdec_ctx *ctx, struct v4l2_format *f,
+ static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx)
+ {
+ struct v4l2_format *f = &ctx->decoded_fmt;
++ u32 fourcc;
+
+- rkvdec_reset_fmt(ctx, f, ctx->coded_fmt_desc->decoded_fmts[0]);
++ fourcc = rkvdec_enum_decoded_fmt(ctx, 0);
++ rkvdec_reset_fmt(ctx, f, fourcc);
+ f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+ f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width;
+ f->fmt.pix_mp.height = ctx->coded_fmt.fmt.pix_mp.height;
+@@ -244,7 +272,6 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv,
+ struct v4l2_pix_format_mplane *pix_mp = &f->fmt.pix_mp;
+ struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
+ const struct rkvdec_coded_fmt_desc *coded_desc;
+- unsigned int i;
+
+ /*
+ * The codec context should point to a coded format desc, if the format
+@@ -255,13 +282,8 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv,
+ if (WARN_ON(!coded_desc))
+ return -EINVAL;
+
+- for (i = 0; i < coded_desc->num_decoded_fmts; i++) {
+- if (coded_desc->decoded_fmts[i] == pix_mp->pixelformat)
+- break;
+- }
+-
+- if (i == coded_desc->num_decoded_fmts)
+- pix_mp->pixelformat = coded_desc->decoded_fmts[0];
++ if (!rkvdec_is_valid_fmt(ctx, pix_mp->pixelformat))
++ pix_mp->pixelformat = rkvdec_enum_decoded_fmt(ctx, 0);
+
+ /* Always apply the frmsize constraint of the coded end. */
+ pix_mp->width = max(pix_mp->width, ctx->coded_fmt.fmt.pix_mp.width);
+@@ -425,14 +447,13 @@ static int rkvdec_enum_capture_fmt(struct file *file, void *priv,
+ struct v4l2_fmtdesc *f)
+ {
+ struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
++ u32 fourcc;
+
+- if (WARN_ON(!ctx->coded_fmt_desc))
+- return -EINVAL;
+-
+- if (f->index >= ctx->coded_fmt_desc->num_decoded_fmts)
++ fourcc = rkvdec_enum_decoded_fmt(ctx, f->index);
++ if (!fourcc)
+ return -EINVAL;
+
+- f->pixelformat = ctx->coded_fmt_desc->decoded_fmts[f->index];
++ f->pixelformat = fourcc;
+ return 0;
+ }
+
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id 76EB5C4332F
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 17:06:37 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229763AbjKERGh (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 12:06:37 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49746 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229468AbjKERGe (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 12:06:34 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 65B2FC0;
+ Sun, 5 Nov 2023 09:06:31 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203989; bh=agrfRALBNiUBrIChitGx/tWeu1YIIhSrbadQHiAr0/U=;
+ b=EqAb0U5L9SU595Hn0hOfOqRGiHEhR7msr6AoN8PLhH//fPEIGnD2XGrABq//gcZ0L4iFzDMn1
+ LQVWfRPX2+HolbeaZU5GJYid4xPzyEiMaE7b1ME83f895yElL7cWkVNNruYw2+OZEwf83G1gOhX
+ 30GscCQ6yADNSg0vZUkJ8O+Gn0wsiC/8o491YC2Vm633H2NTnYBfnn8DD8mt8QjOteS1iO2CLGV
+ qRol7kkRs4B5Sw159YFgD2PjT5phdzjb3s5weGf4bC0Oy4NKAzVq8PfKtsRyGjLUWFwyOr5gLf/
+ VoOB+lXhBbfM9YZcTvjcotOutLz4xDS89FXy5NWgjjlw==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 09/11] media: rkvdec: Add image format concept
+Date: Sun, 5 Nov 2023 16:55:08 +0000
+Message-ID: <20231105165521.3592037-10-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c92242ad2f8d1524694f
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 5178
+Lines: 164
+
+Add an enum rkvdec_image_fmt used to signal an image format, e.g.
+4:2:0 8-bit, 4:2:0 10-bit or any.
+
+Tag each supported CAPUTRE format with an image format and use this tag
+to filter out unsupported CAPTURE formats.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- Change fmt_opaque into an image format
+- Split patch into two
+
+v3:
+- New patch
+
+ drivers/staging/media/rkvdec/rkvdec.c | 45 ++++++++++++++++++++-------
+ drivers/staging/media/rkvdec/rkvdec.h | 13 +++++++-
+ 2 files changed, 45 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
+index c3aede94c872..5949d59d4cf9 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.c
++++ b/drivers/staging/media/rkvdec/rkvdec.c
+@@ -27,26 +27,42 @@
+ #include "rkvdec.h"
+ #include "rkvdec-regs.h"
+
+-static u32 rkvdec_enum_decoded_fmt(struct rkvdec_ctx *ctx, int index)
++static inline bool rkvdec_image_fmt_match(enum rkvdec_image_fmt fmt1,
++ enum rkvdec_image_fmt fmt2)
++{
++ return fmt1 == fmt2 || fmt2 == RKVDEC_IMG_FMT_ANY ||
++ fmt1 == RKVDEC_IMG_FMT_ANY;
++}
++
++static u32 rkvdec_enum_decoded_fmt(struct rkvdec_ctx *ctx, int index,
++ enum rkvdec_image_fmt image_fmt)
+ {
+ const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc;
++ unsigned int i, j;
+
+ if (WARN_ON(!desc))
+ return 0;
+
+- if (index >= desc->num_decoded_fmts)
+- return 0;
++ for (i = 0, j = 0; i < desc->num_decoded_fmts; i++) {
++ if (rkvdec_image_fmt_match(desc->decoded_fmts[i].image_fmt,
++ image_fmt) &&
++ index == j++)
++ return desc->decoded_fmts[i].fourcc;
++ }
+
+- return desc->decoded_fmts[index];
++ return 0;
+ }
+
+-static bool rkvdec_is_valid_fmt(struct rkvdec_ctx *ctx, u32 fourcc)
++static bool rkvdec_is_valid_fmt(struct rkvdec_ctx *ctx, u32 fourcc,
++ enum rkvdec_image_fmt image_fmt)
+ {
+ const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc;
+ unsigned int i;
+
+ for (i = 0; i < desc->num_decoded_fmts; i++) {
+- if (desc->decoded_fmts[i] == fourcc)
++ if (rkvdec_image_fmt_match(desc->decoded_fmts[i].image_fmt,
++ image_fmt) &&
++ desc->decoded_fmts[i].fourcc == fourcc)
+ return true;
+ }
+
+@@ -80,7 +96,7 @@ static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx)
+ struct v4l2_format *f = &ctx->decoded_fmt;
+ u32 fourcc;
+
+- fourcc = rkvdec_enum_decoded_fmt(ctx, 0);
++ fourcc = rkvdec_enum_decoded_fmt(ctx, 0, ctx->image_fmt);
+ rkvdec_reset_fmt(ctx, f, fourcc);
+ f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+ f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width;
+@@ -149,8 +165,11 @@ static const struct rkvdec_ctrls rkvdec_h264_ctrls = {
+ .num_ctrls = ARRAY_SIZE(rkvdec_h264_ctrl_descs),
+ };
+
+-static const u32 rkvdec_h264_vp9_decoded_fmts[] = {
+- V4L2_PIX_FMT_NV12,
++static const struct rkvdec_decoded_fmt_desc rkvdec_h264_vp9_decoded_fmts[] = {
++ {
++ .fourcc = V4L2_PIX_FMT_NV12,
++ .image_fmt = RKVDEC_IMG_FMT_420_8BIT,
++ },
+ };
+
+ static const struct rkvdec_ctrl_desc rkvdec_vp9_ctrl_descs[] = {
+@@ -282,8 +301,9 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv,
+ if (WARN_ON(!coded_desc))
+ return -EINVAL;
+
+- if (!rkvdec_is_valid_fmt(ctx, pix_mp->pixelformat))
+- pix_mp->pixelformat = rkvdec_enum_decoded_fmt(ctx, 0);
++ if (!rkvdec_is_valid_fmt(ctx, pix_mp->pixelformat, ctx->image_fmt))
++ pix_mp->pixelformat = rkvdec_enum_decoded_fmt(ctx, 0,
++ ctx->image_fmt);
+
+ /* Always apply the frmsize constraint of the coded end. */
+ pix_mp->width = max(pix_mp->width, ctx->coded_fmt.fmt.pix_mp.width);
+@@ -400,6 +420,7 @@ static int rkvdec_s_output_fmt(struct file *file, void *priv,
+ *
+ * Note that this will propagates any size changes to the decoded format.
+ */
++ ctx->image_fmt = RKVDEC_IMG_FMT_ANY;
+ rkvdec_reset_decoded_fmt(ctx);
+
+ /* Propagate colorspace information to capture. */
+@@ -449,7 +470,7 @@ static int rkvdec_enum_capture_fmt(struct file *file, void *priv,
+ struct rkvdec_ctx *ctx = fh_to_rkvdec_ctx(priv);
+ u32 fourcc;
+
+- fourcc = rkvdec_enum_decoded_fmt(ctx, f->index);
++ fourcc = rkvdec_enum_decoded_fmt(ctx, f->index, ctx->image_fmt);
+ if (!fourcc)
+ return -EINVAL;
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
+index 633335ebb9c4..6f8cf50c5d99 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.h
++++ b/drivers/staging/media/rkvdec/rkvdec.h
+@@ -75,13 +75,23 @@ struct rkvdec_coded_fmt_ops {
+ int (*try_ctrl)(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl);
+ };
+
++enum rkvdec_image_fmt {
++ RKVDEC_IMG_FMT_ANY = 0,
++ RKVDEC_IMG_FMT_420_8BIT,
++};
++
++struct rkvdec_decoded_fmt_desc {
++ u32 fourcc;
++ enum rkvdec_image_fmt image_fmt;
++};
++
+ struct rkvdec_coded_fmt_desc {
+ u32 fourcc;
+ struct v4l2_frmsize_stepwise frmsize;
+ const struct rkvdec_ctrls *ctrls;
+ const struct rkvdec_coded_fmt_ops *ops;
+ unsigned int num_decoded_fmts;
+- const u32 *decoded_fmts;
++ const struct rkvdec_decoded_fmt_desc *decoded_fmts;
+ u32 subsystem_flags;
+ };
+
+@@ -104,6 +114,7 @@ struct rkvdec_ctx {
+ const struct rkvdec_coded_fmt_desc *coded_fmt_desc;
+ struct v4l2_ctrl_handler ctrl_hdl;
+ struct rkvdec_dev *dev;
++ enum rkvdec_image_fmt image_fmt;
+ void *priv;
+ };
+
+--
+2.42.0
+
+
+From mboxrd@z Thu Jan 1 00:00:00 1970
+Return-Path: <linux-media-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
+ aws-us-west-2-korg-lkml-1.web.codeaurora.org
+Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
+ by smtp.lore.kernel.org (Postfix) with ESMTP id B3251C4167D
+ for <linux-media@archiver.kernel.org>; Sun, 5 Nov 2023 17:06:38 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S229819AbjKERGi (ORCPT <rfc822;linux-media@archiver.kernel.org>);
+ Sun, 5 Nov 2023 12:06:38 -0500
+Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49766 "EHLO
+ lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S229485AbjKERGe (ORCPT
+ <rfc822;linux-media@vger.kernel.org>); Sun, 5 Nov 2023 12:06:34 -0500
+Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223])
+ by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8D673CF;
+ Sun, 5 Nov 2023 09:06:31 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se;
+ h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To:
+ Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be;
+ t=1699203989; bh=WmsBIZTUryXo8sAoKKwOi0tlNS64CkDxgo5K4gfiot4=;
+ b=dWnV8LMI4yaUluAmzqSRc780oE8KkxYXJ766IuIV+C7KMLeTDayvTUoFGRLBjgwEWQO422y3R
+ G3Agw4uO2OdiC2oHEvn7WzfUN3aqCE41gviOY4xU2Nsc69VNj9j6RtI4c850hkoL/UM++ACftrG
+ O6FAClJ47jWIWHZyFCkyb1zIP3zcjf/BIrmw1+sQtHl3vQfBWkz3nN7t20p9G/yUu3gFVKA0wCe
+ xkX75Fw61bnYYaHCYsDCH73qRfroG6ZEfcsO+8aumYL0Relj0XqGshXGFTxV1nO6YzXEo16K5as
+ ezQuCyd80lFKj3mDBawIjB8Nd2RlMGQYFpxIdE26g5/g==
+From: Jonas Karlman <jonas@kwiboo.se>
+To: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>,
+ Mauro Carvalho Chehab <mchehab@kernel.org>,
+ Hans Verkuil <hverkuil-cisco@xs4all.nl>,
+ "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
+Cc: Alex Bee <knaerzche@gmail.com>,
+ Nicolas Dufresne <nicolas.dufresne@collabora.com>,
+ Benjamin Gaignard <benjamin.gaignard@collabora.com>,
+ Sebastian Fricke <sebastian.fricke@collabora.com>,
+ Christopher Obbard <chris.obbard@collabora.com>,
+ linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
+ linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
+ Jonas Karlman <jonas@kwiboo.se>
+Subject: [PATCH v4 11/11] media: rkvdec: h264: Support High 10 and 4:2:2 profiles
+Date: Sun, 5 Nov 2023 16:55:10 +0000
+Message-ID: <20231105165521.3592037-12-jonas@kwiboo.se>
+X-Mailer: git-send-email 2.42.0
+In-Reply-To: <20231105165521.3592037-1-jonas@kwiboo.se>
+References: <20231105165521.3592037-1-jonas@kwiboo.se>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+X-Report-Abuse-To: abuse@forwardemail.net
+X-Report-Abuse: abuse@forwardemail.net
+X-Complaints-To: abuse@forwardemail.net
+X-ForwardEmail-Version: 0.4.40
+X-ForwardEmail-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net,
+ 149.28.215.223
+X-ForwardEmail-ID: 6547c92b42ad2f8d15246969
+Precedence: bulk
+List-ID: <linux-media.vger.kernel.org>
+X-Mailing-List: linux-media@vger.kernel.org
+Status: RO
+Content-Length: 6470
+Lines: 194
+
+Add support and enable decoding of H264 High 10 and 4:2:2 profiles.
+
+Decoded CAPTURE buffer width is aligned to 64 pixels to accommodate HW
+requirement of 10-bit format buffers, fixes decoding of:
+
+- Hi422FR13_SONY_A
+- Hi422FR14_SONY_A
+- Hi422FR15_SONY_A
+- Hi422FR6_SONY_A
+- Hi422FR7_SONY_A
+- Hi422FR8_SONY_A
+- Hi422FR9_SONY_A
+- Hi422FREXT18_SONY_A
+
+The get_image_fmt() ops is implemented to select an image format
+required for the provided SPS control.
+
+Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
+---
+v4:
+- Change to use get_image_fmt() ops
+
+v3:
+- Add get_fmt_opaque ops, the expected pixelformat is used as opaque
+- Add new valid_fmt ops that validate pixelformat matches opaque
+- Update H264_PROFILE control max value
+
+ drivers/staging/media/rkvdec/rkvdec-h264.c | 37 ++++++++++++++++------
+ drivers/staging/media/rkvdec/rkvdec.c | 33 +++++++++++++++----
+ drivers/staging/media/rkvdec/rkvdec.h | 3 ++
+ 3 files changed, 57 insertions(+), 16 deletions(-)
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c
+index 815d5359ddd5..baac6d012ddd 100644
+--- a/drivers/staging/media/rkvdec/rkvdec-h264.c
++++ b/drivers/staging/media/rkvdec/rkvdec-h264.c
+@@ -1027,24 +1027,42 @@ static int rkvdec_h264_adjust_fmt(struct rkvdec_ctx *ctx,
+ return 0;
+ }
+
++static enum rkvdec_image_fmt rkvdec_h264_get_image_fmt(struct rkvdec_ctx *ctx,
++ struct v4l2_ctrl *ctrl)
++{
++ const struct v4l2_ctrl_h264_sps *sps = ctrl->p_new.p_h264_sps;
++
++ if (ctrl->id != V4L2_CID_STATELESS_H264_SPS)
++ return RKVDEC_IMG_FMT_ANY;
++
++ if (sps->bit_depth_luma_minus8 == 0) {
++ if (sps->chroma_format_idc == 2)
++ return RKVDEC_IMG_FMT_422_8BIT;
++ else
++ return RKVDEC_IMG_FMT_420_8BIT;
++ } else if (sps->bit_depth_luma_minus8 == 2) {
++ if (sps->chroma_format_idc == 2)
++ return RKVDEC_IMG_FMT_422_10BIT;
++ else
++ return RKVDEC_IMG_FMT_420_10BIT;
++ }
++
++ return RKVDEC_IMG_FMT_ANY;
++}
++
+ static int rkvdec_h264_validate_sps(struct rkvdec_ctx *ctx,
+ const struct v4l2_ctrl_h264_sps *sps)
+ {
+ unsigned int width, height;
+
+- /*
+- * TODO: The hardware supports 10-bit and 4:2:2 profiles,
+- * but it's currently broken in the driver.
+- * Reject them for now, until it's fixed.
+- */
+- if (sps->chroma_format_idc > 1)
+- /* Only 4:0:0 and 4:2:0 are supported */
++ if (sps->chroma_format_idc > 2)
++ /* Only 4:0:0, 4:2:0 and 4:2:2 are supported */
+ return -EINVAL;
+ if (sps->bit_depth_luma_minus8 != sps->bit_depth_chroma_minus8)
+ /* Luma and chroma bit depth mismatch */
+ return -EINVAL;
+- if (sps->bit_depth_luma_minus8 != 0)
+- /* Only 8-bit is supported */
++ if (sps->bit_depth_luma_minus8 != 0 && sps->bit_depth_luma_minus8 != 2)
++ /* Only 8-bit and 10-bit is supported */
+ return -EINVAL;
+
+ width = (sps->pic_width_in_mbs_minus1 + 1) * 16;
+@@ -1175,4 +1193,5 @@ const struct rkvdec_coded_fmt_ops rkvdec_h264_fmt_ops = {
+ .stop = rkvdec_h264_stop,
+ .run = rkvdec_h264_run,
+ .try_ctrl = rkvdec_h264_try_ctrl,
++ .get_image_fmt = rkvdec_h264_get_image_fmt,
+ };
+diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
+index 225aa1f0ac48..eb59605ccf28 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.c
++++ b/drivers/staging/media/rkvdec/rkvdec.c
+@@ -73,7 +73,7 @@ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx,
+ struct v4l2_pix_format_mplane *pix_mp)
+ {
+ v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat,
+- pix_mp->width, pix_mp->height);
++ ALIGN(pix_mp->width, 64), pix_mp->height);
+ pix_mp->plane_fmt[0].sizeimage += 128 *
+ DIV_ROUND_UP(pix_mp->width, 16) *
+ DIV_ROUND_UP(pix_mp->height, 16);
+@@ -193,7 +193,7 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = {
+ {
+ .cfg.id = V4L2_CID_MPEG_VIDEO_H264_PROFILE,
+ .cfg.min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
+- .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
++ .cfg.max = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422,
+ .cfg.menu_skip_mask =
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED),
+ .cfg.def = V4L2_MPEG_VIDEO_H264_PROFILE_MAIN,
+@@ -210,11 +210,23 @@ static const struct rkvdec_ctrls rkvdec_h264_ctrls = {
+ .num_ctrls = ARRAY_SIZE(rkvdec_h264_ctrl_descs),
+ };
+
+-static const struct rkvdec_decoded_fmt_desc rkvdec_h264_vp9_decoded_fmts[] = {
++static const struct rkvdec_decoded_fmt_desc rkvdec_h264_decoded_fmts[] = {
+ {
+ .fourcc = V4L2_PIX_FMT_NV12,
+ .image_fmt = RKVDEC_IMG_FMT_420_8BIT,
+ },
++ {
++ .fourcc = V4L2_PIX_FMT_NV15,
++ .image_fmt = RKVDEC_IMG_FMT_420_10BIT,
++ },
++ {
++ .fourcc = V4L2_PIX_FMT_NV16,
++ .image_fmt = RKVDEC_IMG_FMT_422_8BIT,
++ },
++ {
++ .fourcc = V4L2_PIX_FMT_NV20,
++ .image_fmt = RKVDEC_IMG_FMT_422_10BIT,
++ },
+ };
+
+ static const struct rkvdec_ctrl_desc rkvdec_vp9_ctrl_descs[] = {
+@@ -237,6 +249,13 @@ static const struct rkvdec_ctrls rkvdec_vp9_ctrls = {
+ .num_ctrls = ARRAY_SIZE(rkvdec_vp9_ctrl_descs),
+ };
+
++static const struct rkvdec_decoded_fmt_desc rkvdec_vp9_decoded_fmts[] = {
++ {
++ .fourcc = V4L2_PIX_FMT_NV12,
++ .image_fmt = RKVDEC_IMG_FMT_420_8BIT,
++ },
++};
++
+ static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = {
+ {
+ .fourcc = V4L2_PIX_FMT_H264_SLICE,
+@@ -250,8 +269,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = {
+ },
+ .ctrls = &rkvdec_h264_ctrls,
+ .ops = &rkvdec_h264_fmt_ops,
+- .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts),
+- .decoded_fmts = rkvdec_h264_vp9_decoded_fmts,
++ .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_decoded_fmts),
++ .decoded_fmts = rkvdec_h264_decoded_fmts,
+ .subsystem_flags = VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF,
+ },
+ {
+@@ -266,8 +285,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = {
+ },
+ .ctrls = &rkvdec_vp9_ctrls,
+ .ops = &rkvdec_vp9_fmt_ops,
+- .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts),
+- .decoded_fmts = rkvdec_h264_vp9_decoded_fmts,
++ .num_decoded_fmts = ARRAY_SIZE(rkvdec_vp9_decoded_fmts),
++ .decoded_fmts = rkvdec_vp9_decoded_fmts,
+ }
+ };
+
+diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h
+index e466a2753ccf..9a9f4fced7a1 100644
+--- a/drivers/staging/media/rkvdec/rkvdec.h
++++ b/drivers/staging/media/rkvdec/rkvdec.h
+@@ -80,6 +80,9 @@ struct rkvdec_coded_fmt_ops {
+ enum rkvdec_image_fmt {
+ RKVDEC_IMG_FMT_ANY = 0,
+ RKVDEC_IMG_FMT_420_8BIT,
++ RKVDEC_IMG_FMT_420_10BIT,
++ RKVDEC_IMG_FMT_422_8BIT,
++ RKVDEC_IMG_FMT_422_10BIT,
+ };
+
+ struct rkvdec_decoded_fmt_desc {
+--
+2.42.0
+
+
diff --git a/testing/linux-gru/config b/testing/linux-gru/config
new file mode 100644
index 00000000000..7420227fcf2
--- /dev/null
+++ b/testing/linux-gru/config
@@ -0,0 +1,7386 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm64 6.8.1 Kernel Configuration
+#
+CONFIG_CC_VERSION_TEXT="gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309"
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130201
+CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=24200
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=24200
+CONFIG_LLD_VERSION=0
+CONFIG_RUST_IS_AVAILABLE=y
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
+CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
+CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+CONFIG_PAHOLE_VERSION=0
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="localhost"
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_WATCH_QUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_INJECTION=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_IRQ_IPI=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# end of IRQ subsystem
+
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+# end of Timers subsystem
+
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+
+#
+# BPF subsystem
+#
+# CONFIG_BPF_SYSCALL is not set
+# CONFIG_BPF_JIT is not set
+# end of BPF subsystem
+
+CONFIG_PREEMPT_BUILD=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+# CONFIG_PREEMPT_DYNAMIC is not set
+# CONFIG_SCHED_CORE 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_SCHED_THERMAL_PRESSURE=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+# CONFIG_TASK_XACCT 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_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_TREE_SRCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+# end of RCU Subsystem
+
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# CONFIG_UCLAMP_TASK is not set
+# end of Scheduler features
+
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_GCC10_NO_ARRAY_BOUNDS=y
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
+CONFIG_CC_NO_STRINGOP_OVERFLOW=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_CGROUPS=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_CGROUP_FAVOR_DYNMODS is not set
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_SCHED_MM_CID=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_RDMA=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_PERF is not set
+# CONFIG_CGROUP_MISC is not set
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_TIME_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_RELAY is not set
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_BOOT_CONFIG is not set
+CONFIG_INITRAMFS_PRESERVE_MTIME=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_LD_ORPHAN_WARN=y
+CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
+CONFIG_SYSCTL=y
+CONFIG_HAVE_UID16=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_EXPERT is not set
+CONFIG_UID16=y
+CONFIG_MULTIUSER=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=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_KCMP=y
+CONFIG_RSEQ=y
+CONFIG_CACHESTAT_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_SELFTEST is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_GUEST_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# end of Kernel Performance Events And Counters
+
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+# CONFIG_PROFILING is not set
+
+#
+# Kexec and crash features
+#
+# CONFIG_KEXEC is not set
+# CONFIG_KEXEC_FILE is not set
+# CONFIG_CRASH_DUMP is not set
+# end of Kexec and crash features
+# end of General setup
+
+CONFIG_ARM64=y
+CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
+CONFIG_64BIT=y
+CONFIG_MMU=y
+CONFIG_ARM64_PAGE_SHIFT=12
+CONFIG_ARM64_CONT_PTE_SHIFT=4
+CONFIG_ARM64_CONT_PMD_SHIFT=4
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_BITS_MAX=33
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_SMP=y
+CONFIG_KERNEL_MODE_NEON=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=4
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
+
+#
+# Platform selection
+#
+# CONFIG_ARCH_ACTIONS is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_APPLE is not set
+# CONFIG_ARCH_BCM is not set
+# CONFIG_ARCH_BERLIN is not set
+# CONFIG_ARCH_BITMAIN is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_K3 is not set
+# CONFIG_ARCH_LG1K is not set
+# CONFIG_ARCH_HISI is not set
+# CONFIG_ARCH_KEEMBAY is not set
+# CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_MESON is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_NXP is not set
+# CONFIG_ARCH_MA35 is not set
+# CONFIG_ARCH_NPCM is not set
+# CONFIG_ARCH_PENSANDO is not set
+# CONFIG_ARCH_QCOM is not set
+# CONFIG_ARCH_REALTEK is not set
+# CONFIG_ARCH_RENESAS is not set
+CONFIG_ARCH_ROCKCHIP=y
+# CONFIG_ARCH_SEATTLE is not set
+# CONFIG_ARCH_INTEL_SOCFPGA is not set
+# CONFIG_ARCH_STM32 is not set
+# CONFIG_ARCH_SYNQUACER is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_SPRD is not set
+# CONFIG_ARCH_THUNDER is not set
+# CONFIG_ARCH_THUNDER2 is not set
+# CONFIG_ARCH_UNIPHIER is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_VISCONTI is not set
+# CONFIG_ARCH_XGENE is not set
+# CONFIG_ARCH_ZYNQMP is not set
+# end of Platform selection
+
+#
+# Kernel Features
+#
+
+#
+# ARM errata workarounds via the alternatives framework
+#
+# CONFIG_AMPERE_ERRATUM_AC03_CPU_38 is not set
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
+CONFIG_ARM64_ERRATUM_826319=y
+CONFIG_ARM64_ERRATUM_827319=y
+CONFIG_ARM64_ERRATUM_824069=y
+CONFIG_ARM64_ERRATUM_819472=y
+CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_1742098=y
+CONFIG_ARM64_ERRATUM_845719=y
+CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_1024718=y
+CONFIG_ARM64_ERRATUM_1418040=y
+CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1530923=y
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+# CONFIG_ARM64_ERRATUM_2441007 is not set
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1542419=y
+CONFIG_ARM64_ERRATUM_1508412=y
+# CONFIG_ARM64_ERRATUM_2051678 is not set
+# CONFIG_ARM64_ERRATUM_2077057 is not set
+# CONFIG_ARM64_ERRATUM_2658417 is not set
+# CONFIG_ARM64_ERRATUM_2054223 is not set
+# CONFIG_ARM64_ERRATUM_2067961 is not set
+# CONFIG_ARM64_ERRATUM_2441009 is not set
+# CONFIG_ARM64_ERRATUM_2457168 is not set
+# CONFIG_ARM64_ERRATUM_2645198 is not set
+# CONFIG_ARM64_ERRATUM_2966298 is not set
+# CONFIG_ARM64_ERRATUM_3117295 is not set
+CONFIG_CAVIUM_ERRATUM_22375=y
+CONFIG_CAVIUM_ERRATUM_23154=y
+CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_TX2_ERRATUM_219=y
+CONFIG_FUJITSU_ERRATUM_010001=y
+CONFIG_HISILICON_ERRATUM_161600802=y
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
+CONFIG_QCOM_QDF2400_ERRATUM_0065=y
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y
+CONFIG_ROCKCHIP_ERRATUM_3588001=y
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+# end of ARM errata workarounds via the alternatives framework
+
+CONFIG_ARM64_4K_PAGES=y
+# CONFIG_ARM64_16K_PAGES is not set
+# CONFIG_ARM64_64K_PAGES is not set
+# CONFIG_ARM64_VA_BITS_39 is not set
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_ARM64_VA_BITS=48
+CONFIG_ARM64_PA_BITS_48=y
+CONFIG_ARM64_PA_BITS=48
+# CONFIG_CPU_BIG_ENDIAN is not set
+CONFIG_CPU_LITTLE_ENDIAN=y
+CONFIG_SCHED_MC=y
+# CONFIG_SCHED_CLUSTER is not set
+CONFIG_SCHED_SMT=y
+CONFIG_NR_CPUS=8
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_NUMA is not set
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_CC_HAVE_SHADOW_CALL_STACK=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+CONFIG_ARCH_SUPPORTS_KEXEC=y
+CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
+CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
+CONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=y
+CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y
+CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
+CONFIG_TRANS_TABLE=y
+# CONFIG_XEN is not set
+CONFIG_ARCH_FORCE_MAX_ORDER=10
+CONFIG_UNMAP_KERNEL_AT_EL0=y
+CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
+CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
+# CONFIG_ARM64_SW_TTBR0_PAN is not set
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
+CONFIG_COMPAT=y
+CONFIG_KUSER_HELPERS=y
+# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set
+CONFIG_ARMV8_DEPRECATED=y
+CONFIG_SWP_EMULATION=y
+CONFIG_CP15_BARRIER_EMULATION=y
+CONFIG_SETEND_EMULATION=y
+
+#
+# ARMv8.1 architectural features
+#
+CONFIG_ARM64_HW_AFDBM=y
+CONFIG_ARM64_PAN=y
+CONFIG_AS_HAS_LSE_ATOMICS=y
+CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_USE_LSE_ATOMICS=y
+# end of ARMv8.1 architectural features
+
+#
+# ARMv8.2 architectural features
+#
+CONFIG_AS_HAS_ARMV8_2=y
+CONFIG_AS_HAS_SHA3=y
+# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_RAS_EXTN=y
+CONFIG_ARM64_CNP=y
+# end of ARMv8.2 architectural features
+
+#
+# ARMv8.3 architectural features
+#
+CONFIG_ARM64_PTR_AUTH=y
+CONFIG_ARM64_PTR_AUTH_KERNEL=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y
+CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y
+CONFIG_AS_HAS_ARMV8_3=y
+CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
+CONFIG_AS_HAS_LDAPR=y
+# end of ARMv8.3 architectural features
+
+#
+# ARMv8.4 architectural features
+#
+CONFIG_ARM64_AMU_EXTN=y
+CONFIG_AS_HAS_ARMV8_4=y
+CONFIG_ARM64_TLB_RANGE=y
+# end of ARMv8.4 architectural features
+
+#
+# ARMv8.5 architectural features
+#
+CONFIG_AS_HAS_ARMV8_5=y
+CONFIG_ARM64_BTI=y
+CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y
+CONFIG_ARM64_E0PD=y
+CONFIG_ARM64_AS_HAS_MTE=y
+CONFIG_ARM64_MTE=y
+# end of ARMv8.5 architectural features
+
+#
+# ARMv8.7 architectural features
+#
+CONFIG_ARM64_EPAN=y
+# end of ARMv8.7 architectural features
+
+CONFIG_ARM64_SVE=y
+CONFIG_ARM64_SME=y
+# CONFIG_ARM64_PSEUDO_NMI is not set
+CONFIG_RELOCATABLE=y
+# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+# end of Kernel Features
+
+#
+# Boot options
+#
+CONFIG_CMDLINE=""
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_DMI=y
+# end of Boot options
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+CONFIG_ENERGY_MODEL=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# end of Power management options
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_IDLE_GOV_TEO=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DT_IDLE_GENPD=y
+
+#
+# ARM CPU Idle Drivers
+#
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
+# end of ARM CPU Idle Drivers
+# end of CPU Idle
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_CPUFREQ_DT=m
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_ARM_SCPI_CPUFREQ=m
+# end of CPU Frequency scaling
+# end of CPU Power Management
+
+CONFIG_ARCH_SUPPORTS_ACPI=y
+# CONFIG_ACPI is not set
+CONFIG_HAVE_KVM=y
+CONFIG_KVM_COMMON=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_IRQ_ROUTING=y
+CONFIG_HAVE_KVM_DIRTY_RING=y
+CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
+CONFIG_NEED_KVM_DIRTY_RING_WITH_BITMAP=y
+CONFIG_KVM_MMIO=y
+CONFIG_HAVE_KVM_MSI=y
+CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
+CONFIG_KVM_VFIO=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_HAVE_KVM_IRQ_BYPASS=y
+CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
+CONFIG_KVM_GENERIC_MMU_NOTIFIER=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+# CONFIG_NVHE_EL2_DEBUG is not set
+
+#
+# General architecture-dependent options
+#
+CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_KEEPINITRD=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
+# CONFIG_SHADOW_CALL_STACK is not set
+CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
+CONFIG_LTO_NONE=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET=y
+# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_HAVE_ARCH_COMPILER_H=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_HAS_RELR=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y
+CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# end of GCOV-based kernel profiling
+
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+CONFIG_FUNCTION_ALIGNMENT_4B=y
+CONFIG_FUNCTION_ALIGNMENT=4
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_MODULE_SIG=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_ALL=y
+CONFIG_MODULE_SIG_SHA256=y
+# CONFIG_MODULE_SIG_SHA384 is not set
+# CONFIG_MODULE_SIG_SHA512 is not set
+# CONFIG_MODULE_SIG_SHA3_256 is not set
+# CONFIG_MODULE_SIG_SHA3_384 is not set
+# CONFIG_MODULE_SIG_SHA3_512 is not set
+CONFIG_MODULE_SIG_HASH="sha256"
+CONFIG_MODULE_COMPRESS_NONE=y
+# CONFIG_MODULE_COMPRESS_GZIP is not set
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_COMPRESS_ZSTD is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_CGROUP_PUNT_BIO=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_WRITE_MOUNTED is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_CGROUP_IOCOST is not set
+# CONFIG_BLK_CGROUP_IOPRIO is not set
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+# CONFIG_CMDLINE_PARTITION is not set
+# end of Partition Types
+
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
+CONFIG_BLK_MQ_STACKING=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+# end of IO Schedulers
+
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_STATE=y
+CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
+CONFIG_ARCH_HAVE_ELF_PROT=y
+CONFIG_ARCH_USE_GNU_PROPERTY=y
+CONFIG_ELFCORE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_ZPOOL=y
+CONFIG_SWAP=y
+CONFIG_ZSWAP=y
+# CONFIG_ZSWAP_DEFAULT_ON is not set
+# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set
+# CONFIG_ZSWAP_SHRINKER_DEFAULT_ON is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="zstd"
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc"
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSMALLOC_CHAIN_SIZE=8
+
+#
+# Slab allocator options
+#
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_SLUB_CPU_PARTIAL is not set
+# CONFIG_RANDOM_KMALLOC_CACHES is not set
+# end of Slab allocator options
+
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+# CONFIG_MEMORY_HOTPLUG is not set
+CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_PAGE_REPORTING=y
+CONFIG_MIGRATION=y
+CONFIG_PCP_BATCH_SCALE_MAX=5
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_MEMORY_FAILURE is not set
+CONFIG_ARCH_WANTS_THP_SWAP=y
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CMA is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_USES_PG_ARCH_X=y
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_PERCPU_STATS is not set
+
+#
+# GUP_TEST needs to have DEBUG_FS enabled
+#
+# CONFIG_DMAPOOL_TEST is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_SECRETMEM=y
+# CONFIG_ANON_VMA_NAME is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+# CONFIG_LRU_GEN_STATS is not set
+CONFIG_LRU_GEN_WALKS_MMU=y
+CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
+CONFIG_PER_VMA_LOCK=y
+CONFIG_LOCK_MM_AND_FIND_VMA=y
+
+#
+# Data Access Monitoring
+#
+# CONFIG_DAMON is not set
+# end of Data Access Monitoring
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_XGRESS=y
+CONFIG_NET_REDIRECT=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=m
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_UNIX_DIAG=m
+CONFIG_TLS=m
+# CONFIG_TLS_DEVICE is not set
+# CONFIG_TLS_TOE is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_INTERFACE is not set
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ESP=m
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_NET_HANDSHAKE=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=y
+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=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+# CONFIG_INET_ESP_OFFLOAD is not set
+# CONFIG_INET_ESPINTCP is not set
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TABLE_PERTURB_ORDER=16
+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_SIGPOOL=y
+CONFIG_TCP_AO=y
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+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 is not set
+# CONFIG_INET6_ESPINTCP is not set
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_ILA=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=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_IPV6_SEG6_BPF=y
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
+# CONFIG_NETLABEL is not set
+CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
+CONFIG_MPTCP_IPV6=y
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=m
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_FAMILY_ARP=y
+# CONFIG_NETFILTER_NETLINK_HOOK is not set
+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_SYSLOG=m
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMEOUT=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CONNTRACK_OVS=y
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+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=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=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_NAT_OVS=y
+CONFIG_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=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_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB=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 is not set
+CONFIG_NF_DUP_NETDEV=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 is not set
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XTABLES_COMPAT=y
+
+#
+# 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_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_LED=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 is not set
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
+CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=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=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_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=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=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=m
+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=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
+# 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=m
+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=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_SOCKET_IPV4=m
+CONFIG_NF_TPROXY_IPV4=m
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_LOG_ARP=m
+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=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 is not set
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_DUP_IPV6=m
+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=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+# CONFIG_IP6_NF_SECURITY is not set
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+# CONFIG_NF_TABLES_BRIDGE is not set
+CONFIG_NF_CONNTRACK_BRIDGE=m
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+# end of DCCP CCIDs Configuration
+
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
+# 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_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+# CONFIG_BRIDGE_MRP is not set
+# CONFIG_BRIDGE_CFM is not set
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+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_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+# CONFIG_NET_SCH_RED is not set
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+# CONFIG_NET_SCH_CBS is not set
+# CONFIG_NET_SCH_ETF is not set
+CONFIG_NET_SCH_MQPRIO_LIB=m
+# CONFIG_NET_SCH_TAPRIO is not set
+# CONFIG_NET_SCH_GRED is not set
+CONFIG_NET_SCH_NETEM=m
+# CONFIG_NET_SCH_DRR is not set
+CONFIG_NET_SCH_MQPRIO=m
+# CONFIG_NET_SCH_SKBPRIO is not set
+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 is not set
+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_SCH_ETS=m
+# CONFIG_NET_SCH_DEFAULT is not set
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_FLOW=m
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NET_CLS_BPF is not set
+CONFIG_NET_CLS_FLOWER=m
+# CONFIG_NET_CLS_MATCHALL is not set
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=y
+CONFIG_NET_ACT_GACT=y
+# CONFIG_GACT_PROB is not set
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_SAMPLE=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+# CONFIG_NET_ACT_PEDIT is not set
+# 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 is not set
+# CONFIG_NET_ACT_VLAN is not set
+# CONFIG_NET_ACT_BPF is not set
+CONFIG_NET_ACT_CONNMARK=m
+# CONFIG_NET_ACT_CTINFO is not set
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+# CONFIG_NET_ACT_CT is not set
+# CONFIG_NET_ACT_GATE is not set
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+# CONFIG_NET_TC_SKB_EXT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=m
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_BATMAN_V is not set
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATMAN_ADV_MCAST=y
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_OPENVSWITCH=m
+CONFIG_OPENVSWITCH_GRE=m
+CONFIG_VSOCKETS=m
+CONFIG_VSOCKETS_DIAG=m
+CONFIG_VSOCKETS_LOOPBACK=m
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_NETLINK_DIAG=m
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_MPLS_ROUTING=m
+# CONFIG_MPLS_IPTUNNEL is not set
+CONFIG_NET_NSH=m
+CONFIG_HSR=m
+# CONFIG_NET_SWITCHDEV is not set
+CONFIG_NET_L3_MASTER_DEV=y
+# CONFIG_QRTR is not set
+# CONFIG_NET_NCSI is not set
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_MAX_SKB_FRAGS=17
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# end of Network testing
+# end of Networking options
+
+CONFIG_HAMRADIO=y
+
+#
+# Packet Radio protocols
+#
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_NETROM=m
+CONFIG_ROSE=m
+
+#
+# AX.25 network device drivers
+#
+CONFIG_MKISS=m
+CONFIG_6PACK=m
+CONFIG_BPQETHER=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_YAM=m
+# end of AX.25 network device drivers
+
+CONFIG_CAN=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_BCM=m
+CONFIG_CAN_GW=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_ISOTP is not set
+CONFIG_BT=m
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM=m
+# CONFIG_BT_RFCOMM_TTY is not set
+# CONFIG_BT_BNEP is not set
+CONFIG_BT_HIDP=m
+CONFIG_BT_HS=y
+CONFIG_BT_LE=y
+# CONFIG_BT_LE_L2CAP_ECRED is not set
+# CONFIG_BT_LEDS is not set
+# CONFIG_BT_MSFTEXT is not set
+# CONFIG_BT_AOSPEXT is not set
+# CONFIG_BT_FEATURE_DEBUG is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+# CONFIG_BT_HCIBTSDIO is not set
+# CONFIG_BT_HCIUART is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBCM4377 is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+# CONFIG_BT_MTKSDIO is not set
+# CONFIG_BT_MTKUART is not set
+# CONFIG_BT_VIRTIO is not set
+# CONFIG_BT_NXPUART is not set
+# end of Bluetooth device drivers
+
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+CONFIG_STREAM_PARSER=y
+# CONFIG_MCTP is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
+# 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 is not set
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEAER_INJECT=m
+CONFIG_PCIE_ECRC=y
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+# CONFIG_PCIE_DPC is not set
+# CONFIG_PCIE_PTM is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
+CONFIG_PCI_STUB=y
+# CONFIG_PCI_PF_STUB is not set
+CONFIG_PCI_ATS=y
+CONFIG_PCI_ECAM=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+CONFIG_PCI_PASID=y
+CONFIG_PCI_LABEL=y
+# CONFIG_PCI_DYNAMIC_OF_NODES is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=4
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# PCI controller drivers
+#
+# CONFIG_PCIE_ALTERA is not set
+# CONFIG_PCI_HOST_THUNDER_PEM is not set
+# CONFIG_PCI_HOST_THUNDER_ECAM is not set
+# CONFIG_PCI_FTPCI100 is not set
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=m
+# CONFIG_PCIE_MICROCHIP_HOST is not set
+CONFIG_PCIE_ROCKCHIP=y
+CONFIG_PCIE_ROCKCHIP_HOST=y
+# CONFIG_PCI_XGENE is not set
+# CONFIG_PCIE_XILINX is not set
+
+#
+# Cadence-based PCIe controllers
+#
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# end of Cadence-based PCIe controllers
+
+#
+# DesignWare-based PCIe controllers
+#
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+# CONFIG_PCIE_AL is not set
+# CONFIG_PCI_MESON is not set
+CONFIG_PCI_HISI=y
+# CONFIG_PCIE_KIRIN is not set
+CONFIG_PCIE_DW_PLAT=y
+CONFIG_PCIE_DW_PLAT_HOST=y
+CONFIG_PCIE_ROCKCHIP_DW_HOST=y
+# end of DesignWare-based PCIe controllers
+
+#
+# Mobiveil-based PCIe controllers
+#
+# end of Mobiveil-based PCIe controllers
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_CXL_BUS is not set
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_CACHE=y
+# CONFIG_FW_UPLOAD is not set
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_GENERIC_CPU_DEVICES=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP_SPMI=m
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_MOXTET is not set
+# CONFIG_VEXPRESS_CONFIG is not set
+# CONFIG_MHI_BUS is not set
+# CONFIG_MHI_BUS_EP is not set
+# end of Bus devices
+
+#
+# Cache Drivers
+#
+# end of Cache Drivers
+
+CONFIG_CONNECTOR=m
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# CONFIG_ARM_SCMI_PROTOCOL is not set
+# end of ARM System Control and Management Interface Protocol
+
+CONFIG_ARM_SCPI_PROTOCOL=m
+CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
+# CONFIG_SYSFB_SIMPLEFB is not set
+# CONFIG_ARM_FFA_TRANSPORT is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+# CONFIG_EFI_ZBOOT is not set
+# CONFIG_EFI_ARMSTUB_DTB_LOADER is not set
+CONFIG_EFI_BOOTLOADER_CONTROL=y
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+CONFIG_EFI_EARLYCON=y
+# CONFIG_EFI_DISABLE_RUNTIME is not set
+# CONFIG_EFI_COCO_SECRET is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+
+#
+# Qualcomm firmware drivers
+#
+# end of Qualcomm firmware drivers
+
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
+# CONFIG_GNSS is not set
+# CONFIG_MTD 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_DYNAMIC=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OF_OVERLAY=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_CDROM=m
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+CONFIG_ZRAM=m
+# CONFIG_ZRAM_DEF_COMP_LZORLE is not set
+CONFIG_ZRAM_DEF_COMP_ZSTD=y
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+CONFIG_ZRAM_DEF_COMP="zstd"
+# CONFIG_ZRAM_WRITEBACK is not set
+# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
+# CONFIG_ZRAM_MULTI_COMP is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
+# 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_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_UBLK is not set
+
+#
+# NVME Support
+#
+# CONFIG_BLK_DEV_NVME is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP 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_PHANTOM is not set
+CONFIG_TIFM_CORE=y
+CONFIG_TIFM_7XX1=m
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HI6421V600_IRQ is not set
+# CONFIG_HP_ILO 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_DW_XDATA_PCIE is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_HISI_HIKEY_USB is not set
+# CONFIG_OPEN_DICE is not set
+# CONFIG_VCPU_STALL_DETECTOR is not set
+# CONFIG_NSM is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 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
+
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+#
+# 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
+# CONFIG_VMWARE_VMCI is not set
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_BCM_VK is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_UACCE is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_GP_PCI1XXXX is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI_COMMON=y
+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=m
+# CONFIG_CHR_DEV_SG is not set
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# 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=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_MPI3MR is not set
+# CONFIG_SCSI_SMARTPQI is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_MYRB is not set
+# CONFIG_SCSI_MYRS is not set
+# CONFIG_SCSI_SNIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FDOMAIN_PCI is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+CONFIG_SCSI_VIRTIO=m
+# CONFIG_SCSI_DH is not set
+# end of SCSI device support
+
+# CONFIG_ATA is not set
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+# CONFIG_MD_BITMAP_FILE is not set
+# CONFIG_BCACHE is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_UNSTRIPED is not set
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_SNAPSHOT is not set
+# CONFIG_DM_THIN_PROVISIONING is not set
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_WRITECACHE is not set
+# CONFIG_DM_EBS is not set
+# CONFIG_DM_ERA is not set
+# CONFIG_DM_CLONE is not set
+# CONFIG_DM_MIRROR is not set
+# CONFIG_DM_RAID is not set
+# CONFIG_DM_ZERO is not set
+# CONFIG_DM_MULTIPATH is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_DUST is not set
+# CONFIG_DM_UEVENT is not set
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_DM_VERITY is not set
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+# CONFIG_DM_INTEGRITY is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_IFB=m
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+CONFIG_BAREUDP=m
+CONFIG_GTP=m
+# CONFIG_AMT is not set
+CONFIG_MACSEC=m
+# CONFIG_NETCONSOLE is not set
+CONFIG_TUN=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_NET_VRF=m
+# CONFIG_VSOCKMON is not set
+# CONFIG_ARCNET is not set
+# CONFIG_ETHERNET is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+CONFIG_LED_TRIGGER_PHY=y
+CONFIG_PHYLIB_LEDS=y
+CONFIG_FIXED_PHY=y
+# CONFIG_SFP is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_ADIN_PHY is not set
+# CONFIG_ADIN1100_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+CONFIG_AX88796B_PHY=m
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MARVELL_88Q2XXX_PHY is not set
+# CONFIG_MARVELL_88X2222_PHY is not set
+# CONFIG_MAXLINEAR_GPHY is not set
+# CONFIG_MEDIATEK_GE_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_MICROCHIP_T1S_PHY is not set
+CONFIG_MICROCHIP_PHY=m
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_MOTORCOMM_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_CBTX_PHY is not set
+# CONFIG_NXP_C45_TJA11XX_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_NCN26000_PHY is not set
+CONFIG_AT803X_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_REALTEK_PHY=m
+# CONFIG_RENESAS_PHY is not set
+CONFIG_ROCKCHIP_PHY=y
+CONFIG_SMSC_PHY=m
+CONFIG_STE10XP=m
+# CONFIG_TERANETICS_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_DP83869_PHY is not set
+# CONFIG_DP83TD510_PHY is not set
+# CONFIG_DP83TG720_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PSE_CONTROLLER is not set
+CONFIG_CAN_DEV=m
+# CONFIG_CAN_VCAN is not set
+# CONFIG_CAN_VXCAN is not set
+# CONFIG_CAN_NETLINK is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_GPIO is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_THUNDER is not set
+
+#
+# MDIO Multiplexers
+#
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_BUS_MUX_GPIO=m
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+
+#
+# PCS device drivers
+#
+# end of PCS device drivers
+
+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_PPPOE_HASH_BITS_1 is not set
+# CONFIG_PPPOE_HASH_BITS_2 is not set
+CONFIG_PPPOE_HASH_BITS_4=y
+# CONFIG_PPPOE_HASH_BITS_8 is not set
+CONFIG_PPPOE_HASH_BITS=4
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_NET_DRIVERS=m
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_LAN78XX=m
+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=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9700=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_NET_QMI_WWAN=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_USB_NET_CH9200=m
+CONFIG_USB_NET_AQC111=m
+CONFIG_USB_RTL8153_ECM=m
+CONFIG_WLAN=y
+# CONFIG_WLAN_VENDOR_ADMTEK is not set
+# CONFIG_WLAN_VENDOR_ATH is not set
+# CONFIG_WLAN_VENDOR_ATMEL is not set
+# CONFIG_WLAN_VENDOR_BROADCOM is not set
+# CONFIG_WLAN_VENDOR_INTEL is not set
+# CONFIG_WLAN_VENDOR_INTERSIL is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+# CONFIG_WLAN_VENDOR_MEDIATEK is not set
+# CONFIG_WLAN_VENDOR_MICROCHIP is not set
+# CONFIG_WLAN_VENDOR_PURELIFI is not set
+# CONFIG_WLAN_VENDOR_RALINK is not set
+# CONFIG_WLAN_VENDOR_REALTEK is not set
+# CONFIG_WLAN_VENDOR_RSI is not set
+# CONFIG_WLAN_VENDOR_SILABS is not set
+# CONFIG_WLAN_VENDOR_ST is not set
+# CONFIG_WLAN_VENDOR_TI is not set
+# CONFIG_WLAN_VENDOR_ZYDAS is not set
+# CONFIG_WLAN_VENDOR_QUANTENNA is not set
+CONFIG_MAC80211_HWSIM=m
+CONFIG_VIRT_WIFI=m
+# CONFIG_WAN is not set
+
+#
+# Wireless WAN
+#
+# CONFIG_WWAN is not set
+# end of Wireless WAN
+
+# CONFIG_VMXNET3 is not set
+CONFIG_NET_FAILOVER=m
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_MATRIXKMAP=y
+CONFIG_INPUT_VIVALDIFMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADC is not set
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_PINEPHONE is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KEYBOARD_CROS_EC=y
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_MTK_PMIC is not set
+# CONFIG_KEYBOARD_CYPRESS_SF is not set
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_JOYSTICK=y
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADC is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=m
+# CONFIG_JOYSTICK_IFORCE_232 is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_ZHENHUA is not set
+# CONFIG_JOYSTICK_AS5011 is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+# CONFIG_JOYSTICK_PSXPAD_SPI is not set
+# CONFIG_JOYSTICK_PXRC is not set
+# CONFIG_JOYSTICK_QWIIC is not set
+# CONFIG_JOYSTICK_FSIA6B is not set
+# CONFIG_JOYSTICK_SENSEHAT is not set
+# CONFIG_JOYSTICK_SEESAW is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ADC is not set
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_BU21029 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
+# CONFIG_TOUCHSCREEN_EXC3000 is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GOODIX is not set
+# CONFIG_TOUCHSCREEN_HIDEEP is not set
+# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
+# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_ILITEK is not set
+# CONFIG_TOUCHSCREEN_S6SY761 is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+# CONFIG_TOUCHSCREEN_ELAN is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MSG2638 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set
+# CONFIG_TOUCHSCREEN_IMAGIS is not set
+# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+# CONFIG_TOUCHSCREEN_TSC2004 is not set
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+# CONFIG_TOUCHSCREEN_TSC2007 is not set
+# CONFIG_TOUCHSCREEN_RM_TS is not set
+# CONFIG_TOUCHSCREEN_SILEAD is not set
+# CONFIG_TOUCHSCREEN_SIS_I2C is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+# CONFIG_TOUCHSCREEN_SUR40 is not set
+# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
+# CONFIG_TOUCHSCREEN_SX8654 is not set
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_ZET6223 is not set
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+# CONFIG_TOUCHSCREEN_IQS5XX is not set
+# CONFIG_TOUCHSCREEN_IQS7211 is not set
+# CONFIG_TOUCHSCREEN_ZINITIX is not set
+# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+# CONFIG_INPUT_GPIO_VIBRA is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_KXTJ9 is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+CONFIG_INPUT_AXP20X_PEK=m
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_PALMAS_PWRBUTTON is not set
+# CONFIG_INPUT_PCF8574 is not set
+CONFIG_INPUT_PWM_BEEPER=m
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_DA7280_HAPTICS is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_IQS269A is not set
+# CONFIG_INPUT_IQS626A is not set
+# CONFIG_INPUT_IQS7222 is not set
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_AMBAKMI is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=m
+CONFIG_SERIO_RAW=m
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO 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=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
+CONFIG_LDISC_AUTOLOAD=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCILIB=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+# CONFIG_SERIAL_8250_PCI1XXXX is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_FSL=y
+# CONFIG_SERIAL_8250_DW is not set
+# CONFIG_SERIAL_8250_RT288X is not set
+CONFIG_SERIAL_8250_PERICOM=y
+CONFIG_SERIAL_OF_PLATFORM=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set
+# 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_JSM is not set
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+CONFIG_HVC_DRIVER=y
+# CONFIG_HVC_DCC is not set
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_VIRTIO_CONSOLE=m
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+# CONFIG_HW_RANDOM_BA431 is not set
+CONFIG_HW_RANDOM_VIRTIO=m
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m
+# CONFIG_HW_RANDOM_CN10K is not set
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_TCG_TPM=m
+CONFIG_HW_RANDOM_TPM=y
+# CONFIG_TCG_TIS is not set
+# CONFIG_TCG_TIS_SPI is not set
+# CONFIG_TCG_TIS_I2C is not set
+# CONFIG_TCG_TIS_I2C_CR50 is not set
+# CONFIG_TCG_TIS_I2C_ATMEL is not set
+CONFIG_TCG_TIS_I2C_INFINEON=m
+# CONFIG_TCG_TIS_I2C_NUVOTON is not set
+CONFIG_TCG_ATMEL=m
+# CONFIG_TCG_VTPM_PROXY is not set
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
+# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
+# CONFIG_XILLYBUS is not set
+# CONFIG_XILLYUSB is not set
+# end of Character devices
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=y
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_MUX_GPIO is not set
+# CONFIG_I2C_MUX_GPMUX is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+# end of Multiplexer I2C Chip support
+
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CADENCE is not set
+# CONFIG_I2C_CBUS_GPIO is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_HISI is not set
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+CONFIG_I2C_RK3X=y
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_THUNDERX is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_CP2615 is not set
+# CONFIG_I2C_PCI1XXXX is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_CROS_EC_TUNNEL=y
+# CONFIG_I2C_VIRTIO is not set
+# end of I2C Hardware Bus support
+
+CONFIG_I2C_STUB=m
+# 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_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=y
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_CADENCE_QUADSPI is not set
+# CONFIG_SPI_CADENCE_XSPI is not set
+# CONFIG_SPI_DESIGNWARE is not set
+CONFIG_SPI_GPIO=y
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_MICROCHIP_CORE is not set
+# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PCI1XXXX is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_PXA2XX is not set
+CONFIG_SPI_ROCKCHIP=y
+CONFIG_SPI_ROCKCHIP_SFC=m
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SIFIVE is not set
+# CONFIG_SPI_SN_F_OSPI is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_THUNDERX is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+CONFIG_SPI_DYNAMIC=y
+CONFIG_SPMI=m
+# CONFIG_SPMI_HISI3670 is not set
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG 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
+CONFIG_PTP_1588_CLOCK_OPTIONAL=m
+# CONFIG_DP83640_PHY is not set
+# CONFIG_PTP_1588_CLOCK_INES is not set
+CONFIG_PTP_1588_CLOCK_KVM=m
+# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
+# CONFIG_PTP_1588_CLOCK_IDTCM is not set
+# CONFIG_PTP_1588_CLOCK_MOCK is not set
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_PINCTRL_AS3722 is not set
+# CONFIG_PINCTRL_AXP209 is not set
+# CONFIG_PINCTRL_CY8C95X0 is not set
+CONFIG_PINCTRL_MAX77620=y
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_PALMAS is not set
+CONFIG_PINCTRL_ROCKCHIP=y
+CONFIG_PINCTRL_SINGLE=y
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_SX150X is not set
+
+#
+# Renesas pinctrl drivers
+#
+# end of Renesas pinctrl drivers
+
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_GPIO_GENERIC=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=y
+# CONFIG_GPIO_EXAR is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+CONFIG_GPIO_GENERIC_PLATFORM=y
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_HISI is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_ROCKCHIP=y
+# CONFIG_GPIO_SIFIVE is not set
+CONFIG_GPIO_SYSCON=y
+CONFIG_GPIO_XGENE=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_ADNP is not set
+# CONFIG_GPIO_FXL6408 is not set
+# CONFIG_GPIO_DS4520 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=y
+CONFIG_GPIO_PCA953X_IRQ=y
+# CONFIG_GPIO_PCA9570 is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+CONFIG_GPIO_MAX77620=y
+# CONFIG_GPIO_PALMAS is not set
+# CONFIG_GPIO_TPS6586X is not set
+# end of MFD GPIO expanders
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI 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
+
+#
+# Virtual GPIO drivers
+#
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_LATCH is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_VIRTIO is not set
+# CONFIG_GPIO_SIM is not set
+# end of Virtual GPIO drivers
+
+# CONFIG_W1 is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_AS3722 is not set
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_MT6323 is not set
+# CONFIG_POWER_RESET_REGULATOR is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_XGENE is not set
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_REBOOT_MODE=y
+CONFIG_SYSCON_REBOOT_MODE=y
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_IP5XXX_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_CW2015 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SAMSUNG_SDI is not set
+CONFIG_BATTERY_SBS=m
+CONFIG_CHARGER_SBS=m
+CONFIG_MANAGER_SBS=m
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_AXP20X_POWER is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_LTC4162L is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MAX77976 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ2515X is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
+# CONFIG_CHARGER_BQ256XX is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_CHARGER_TPS65090 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_BATTERY_RT5033 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_RT9467 is not set
+# CONFIG_CHARGER_RT9471 is not set
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_CROS_PCHG=m
+# CONFIG_CHARGER_UCS1002 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_BATTERY_UG3105 is not set
+# CONFIG_FUEL_GAUGE_MM8013 is not set
+CONFIG_HWMON=m
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7314 is not set
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7X10=m
+# CONFIG_SENSORS_ADT7310 is not set
+CONFIG_SENSORS_ADT7410=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+# CONFIG_SENSORS_AHT10 is not set
+# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
+# CONFIG_SENSORS_AS370 is not set
+CONFIG_SENSORS_ASC7621=m
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+CONFIG_SENSORS_ARM_SCPI=m
+CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
+# CONFIG_SENSORS_CORSAIR_PSU is not set
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+# CONFIG_SENSORS_I5K_AMB is not set
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+# CONFIG_SENSORS_FTSTEUTATES is not set
+# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_G762=m
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_HS3001 is not set
+CONFIG_SENSORS_IIO_HWMON=m
+CONFIG_SENSORS_IT87=m
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWERZ is not set
+CONFIG_SENSORS_POWR1220=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LTC2945=m
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC2991 is not set
+# CONFIG_SENSORS_LTC2992 is not set
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4222=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4260=m
+CONFIG_SENSORS_LTC4261=m
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX127 is not set
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX197=m
+# CONFIG_SENSORS_MAX31722 is not set
+# CONFIG_SENSORS_MAX31730 is not set
+# CONFIG_SENSORS_MAX31760 is not set
+# CONFIG_MAX31827 is not set
+# CONFIG_SENSORS_MAX6620 is not set
+# CONFIG_SENSORS_MAX6621 is not set
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MAX6697=m
+# CONFIG_SENSORS_MAX31790 is not set
+# CONFIG_SENSORS_MC34VR500 is not set
+CONFIG_SENSORS_MCP3021=m
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_TPS23861 is not set
+# CONFIG_SENSORS_MR75203 is not set
+# CONFIG_SENSORS_ADCXX is not set
+CONFIG_SENSORS_LM63=m
+# CONFIG_SENSORS_LM70 is not set
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95234=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_NCT6683=m
+CONFIG_SENSORS_NCT6775_CORE=m
+CONFIG_SENSORS_NCT6775=m
+# CONFIG_SENSORS_NCT6775_I2C is not set
+CONFIG_SENSORS_NCT7802=m
+CONFIG_SENSORS_NCT7904=m
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
+# CONFIG_SENSORS_NZXT_SMART2 is not set
+# CONFIG_SENSORS_OCC_P8_I2C is not set
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+# CONFIG_SENSORS_ACBEL_FSG032 is not set
+# CONFIG_SENSORS_ADM1266 is not set
+CONFIG_SENSORS_ADM1275=m
+# CONFIG_SENSORS_BEL_PFE is not set
+# CONFIG_SENSORS_BPA_RS600 is not set
+# CONFIG_SENSORS_DELTA_AHE50DC_FAN is not set
+# CONFIG_SENSORS_FSP_3Y is not set
+# CONFIG_SENSORS_IBM_CFFPS is not set
+# CONFIG_SENSORS_DPS920AB is not set
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
+# CONFIG_SENSORS_IR35221 is not set
+# CONFIG_SENSORS_IR36021 is not set
+# CONFIG_SENSORS_IR38064 is not set
+# CONFIG_SENSORS_IRPS5401 is not set
+# CONFIG_SENSORS_ISL68137 is not set
+CONFIG_SENSORS_LM25066=m
+# CONFIG_SENSORS_LM25066_REGULATOR is not set
+# CONFIG_SENSORS_LT7182S is not set
+CONFIG_SENSORS_LTC2978=m
+# CONFIG_SENSORS_LTC2978_REGULATOR is not set
+# CONFIG_SENSORS_LTC3815 is not set
+# CONFIG_SENSORS_LTC4286 is not set
+# CONFIG_SENSORS_MAX15301 is not set
+CONFIG_SENSORS_MAX16064=m
+# CONFIG_SENSORS_MAX16601 is not set
+# CONFIG_SENSORS_MAX20730 is not set
+# CONFIG_SENSORS_MAX20751 is not set
+# CONFIG_SENSORS_MAX31785 is not set
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+# CONFIG_SENSORS_MP2856 is not set
+# CONFIG_SENSORS_MP2888 is not set
+# CONFIG_SENSORS_MP2975 is not set
+# CONFIG_SENSORS_MP5023 is not set
+# CONFIG_SENSORS_MP5990 is not set
+# CONFIG_SENSORS_MPQ7932 is not set
+# CONFIG_SENSORS_PIM4328 is not set
+# CONFIG_SENSORS_PLI1209BC is not set
+# CONFIG_SENSORS_PM6764TR is not set
+# CONFIG_SENSORS_PXE1610 is not set
+# CONFIG_SENSORS_Q54SJ108A2 is not set
+# CONFIG_SENSORS_STPDDC60 is not set
+# CONFIG_SENSORS_TDA38640 is not set
+CONFIG_SENSORS_TPS40422=m
+# CONFIG_SENSORS_TPS53679 is not set
+# CONFIG_SENSORS_TPS546D24 is not set
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+# CONFIG_SENSORS_XDPE152 is not set
+# CONFIG_SENSORS_XDPE122 is not set
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_PWM_FAN=m
+# CONFIG_SENSORS_SBTSI is not set
+# CONFIG_SENSORS_SBRMI is not set
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
+# CONFIG_SENSORS_SHT4x is not set
+CONFIG_SENSORS_SHTC1=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC2305 is not set
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+# CONFIG_SENSORS_STTS751 is not set
+CONFIG_SENSORS_ADC128D818=m
+CONFIG_SENSORS_ADS7828=m
+# CONFIG_SENSORS_ADS7871 is not set
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_INA209=m
+CONFIG_SENSORS_INA2XX=m
+# CONFIG_SENSORS_INA238 is not set
+CONFIG_SENSORS_INA3221=m
+CONFIG_SENSORS_TC74=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP103=m
+CONFIG_SENSORS_TMP108=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+# CONFIG_SENSORS_TMP464 is not set
+# CONFIG_SENSORS_TMP513 is not set
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+# CONFIG_SENSORS_W83773G is not set
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_THERMAL=y
+# CONFIG_THERMAL_NETLINK is not set
+# CONFIG_THERMAL_STATISTICS is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_FREQ_THERMAL=y
+# CONFIG_CPU_IDLE_THERMAL is not set
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+# CONFIG_THERMAL_MMIO is not set
+CONFIG_MAX77620_THERMAL=m
+CONFIG_ROCKCHIP_THERMAL=m
+CONFIG_GENERIC_ADC_THERMAL=m
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=m
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_SYSFS is not set
+# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT 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_XILINX_WINDOW_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_ARM_SP805_WATCHDOG is not set
+# CONFIG_ARM_SBSA_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_DW_WATCHDOG=m
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX77620_WATCHDOG is not set
+# CONFIG_ARM_SMC_WATCHDOG is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_HP_WATCHDOG is not set
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB_DRIVER_GPIO=y
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_ACT8945A is not set
+CONFIG_MFD_AS3711=y
+# CONFIG_MFD_SMPRO is not set
+CONFIG_MFD_AS3722=m
+# 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=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_CROS_EC_DEV=y
+# CONFIG_MFD_CS42L43_I2C is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_MFD_MAX5970 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_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO 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_MAX77541 is not set
+CONFIG_MFD_MAX77620=y
+# CONFIG_MFD_MAX77650 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77714 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_MT6360 is not set
+# CONFIG_MFD_MT6370 is not set
+CONFIG_MFD_MT6397=y
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_OCELOT is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_NTXEC is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_SY7636A is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT4831 is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RT5120 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK8XX_I2C is not set
+# CONFIG_MFD_RK8XX_SPI 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=m
+CONFIG_MFD_SM501_GPIO=y
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+CONFIG_MFD_PALMAS=y
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+CONFIG_MFD_TPS65090=y
+# 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_TPS65219 is not set
+CONFIG_MFD_TPS6586X=y
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS6594_I2C is not set
+# CONFIG_MFD_TPS6594_SPI 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_VX855=m
+# 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_BD71828 is not set
+# CONFIG_MFD_ROHM_BD957XMUF is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_ATC260X_I2C is not set
+# CONFIG_MFD_KHADAS_MCU is not set
+# CONFIG_MFD_QCOM_PM8008 is not set
+# CONFIG_RAVE_SP_CORE is not set
+# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
+# CONFIG_MFD_RSMU_I2C is not set
+# CONFIG_MFD_RSMU_SPI is not set
+# end of Multifunction device drivers
+
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_NETLINK_EVENTS is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_AS3711 is not set
+# CONFIG_REGULATOR_AS3722 is not set
+# CONFIG_REGULATOR_AW37503 is not set
+# CONFIG_REGULATOR_AXP20X is not set
+CONFIG_REGULATOR_CROS_EC=m
+# CONFIG_REGULATOR_DA9121 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_FAN53880 is not set
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX77503 is not set
+CONFIG_REGULATOR_MAX77620=y
+# CONFIG_REGULATOR_MAX77857 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8893 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MAX20086 is not set
+# CONFIG_REGULATOR_MAX20411 is not set
+# CONFIG_REGULATOR_MAX77826 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MP5416 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MP886X is not set
+# CONFIG_REGULATOR_MPQ7920 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_MT6315 is not set
+# CONFIG_REGULATOR_MT6323 is not set
+# CONFIG_REGULATOR_MT6331 is not set
+# CONFIG_REGULATOR_MT6332 is not set
+# CONFIG_REGULATOR_MT6357 is not set
+# CONFIG_REGULATOR_MT6358 is not set
+# CONFIG_REGULATOR_MT6359 is not set
+# CONFIG_REGULATOR_MT6397 is not set
+# CONFIG_REGULATOR_PALMAS is not set
+# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PF8X00 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+CONFIG_REGULATOR_PWM=y
+# CONFIG_REGULATOR_QCOM_SPMI is not set
+# CONFIG_REGULATOR_QCOM_USB_VBUS is not set
+# CONFIG_REGULATOR_RAA215300 is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RT4803 is not set
+# CONFIG_REGULATOR_RT5190A is not set
+# CONFIG_REGULATOR_RT5739 is not set
+# CONFIG_REGULATOR_RT5759 is not set
+# CONFIG_REGULATOR_RT6160 is not set
+# CONFIG_REGULATOR_RT6190 is not set
+# CONFIG_REGULATOR_RT6245 is not set
+# CONFIG_REGULATOR_RTQ2134 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_RTQ6752 is not set
+# CONFIG_REGULATOR_RTQ2208 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+# CONFIG_REGULATOR_SY8827N is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS6286X is not set
+# CONFIG_REGULATOR_TPS6287X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65090 is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_TPS6586X is not set
+CONFIG_REGULATOR_VCTRL=m
+# CONFIG_REGULATOR_QCOM_LABIBB is not set
+CONFIG_RC_CORE=m
+# CONFIG_LIRC is not set
+# CONFIG_RC_MAP is not set
+# CONFIG_RC_DECODERS is not set
+# CONFIG_RC_DEVICES is not set
+CONFIG_CEC_CORE=y
+CONFIG_CEC_NOTIFIER=y
+
+#
+# CEC support
+#
+CONFIG_MEDIA_CEC_SUPPORT=y
+# CONFIG_CEC_CH7322 is not set
+CONFIG_CEC_CROS_EC=m
+# CONFIG_CEC_GPIO is not set
+# CONFIG_USB_PULSE8_CEC is not set
+# CONFIG_USB_RAINSHADOW_CEC is not set
+# end of CEC support
+
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
+
+#
+# Media device types
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+# CONFIG_MEDIA_TEST_SUPPORT is not set
+# end of Media device types
+
+CONFIG_VIDEO_DEV=m
+CONFIG_MEDIA_CONTROLLER=y
+
+#
+# Video4Linux options
+#
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_V4L2_H264=m
+CONFIG_V4L2_VP9=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+# CONFIG_V4L2_FLASH_LED_CLASS is not set
+CONFIG_V4L2_FWNODE=m
+CONFIG_V4L2_ASYNC=m
+# end of Video4Linux options
+
+#
+# Media controller options
+#
+# end of Media controller options
+
+#
+# Media drivers
+#
+
+#
+# Drivers filtered as selected at 'Filter media drivers'
+#
+
+#
+# Media drivers
+#
+CONFIG_MEDIA_USB_SUPPORT=y
+
+#
+# Webcam devices
+#
+# CONFIG_USB_GSPCA is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_VIDEO_USBTV is not set
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+
+#
+# Webcam, TV (analog/digital) USB devices
+#
+# CONFIG_VIDEO_EM28XX is not set
+
+#
+# Software defined radio USB devices
+#
+CONFIG_USB_AIRSPY=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_MSI2500=m
+# CONFIG_MEDIA_PCI_SUPPORT is not set
+CONFIG_MEDIA_PLATFORM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+# CONFIG_SDR_PLATFORM_DRIVERS is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
+CONFIG_VIDEO_MUX=m
+
+#
+# Allegro DVT media platform drivers
+#
+
+#
+# Amlogic media platform drivers
+#
+
+#
+# Amphion drivers
+#
+
+#
+# Aspeed media platform drivers
+#
+
+#
+# Atmel media platform drivers
+#
+
+#
+# Cadence media platform drivers
+#
+# CONFIG_VIDEO_CADENCE_CSI2RX is not set
+# CONFIG_VIDEO_CADENCE_CSI2TX is not set
+
+#
+# Chips&Media media platform drivers
+#
+
+#
+# Intel media platform drivers
+#
+
+#
+# Marvell media platform drivers
+#
+# CONFIG_VIDEO_CAFE_CCIC is not set
+
+#
+# Mediatek media platform drivers
+#
+
+#
+# Microchip Technology, Inc. media platform drivers
+#
+
+#
+# Nuvoton media platform drivers
+#
+
+#
+# NVidia media platform drivers
+#
+
+#
+# NXP media platform drivers
+#
+
+#
+# Qualcomm media platform drivers
+#
+
+#
+# Renesas media platform drivers
+#
+
+#
+# Rockchip media platform drivers
+#
+CONFIG_VIDEO_ROCKCHIP_RGA=m
+CONFIG_VIDEO_ROCKCHIP_ISP1=m
+
+#
+# Samsung media platform drivers
+#
+
+#
+# STMicroelectronics media platform drivers
+#
+
+#
+# Sunxi media platform drivers
+#
+
+#
+# Texas Instruments drivers
+#
+
+#
+# Verisilicon media platform drivers
+#
+CONFIG_VIDEO_HANTRO=m
+CONFIG_VIDEO_HANTRO_ROCKCHIP=y
+
+#
+# VIA media platform drivers
+#
+
+#
+# Xilinx media platform drivers
+#
+# CONFIG_VIDEO_XILINX is not set
+CONFIG_UVC_COMMON=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_V4L2=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF2_DMA_SG=m
+# end of Media drivers
+
+CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y
+
+#
+# Media ancillary drivers
+#
+
+#
+# IR I2C driver auto-selected by 'Autoselect ancillary drivers'
+#
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_CAMERA_SENSOR=y
+# CONFIG_VIDEO_ALVIUM_CSI2 is not set
+# CONFIG_VIDEO_AR0521 is not set
+# CONFIG_VIDEO_GC0308 is not set
+# CONFIG_VIDEO_GC2145 is not set
+# CONFIG_VIDEO_HI556 is not set
+# CONFIG_VIDEO_HI846 is not set
+# CONFIG_VIDEO_HI847 is not set
+# CONFIG_VIDEO_IMX208 is not set
+# CONFIG_VIDEO_IMX214 is not set
+# CONFIG_VIDEO_IMX219 is not set
+# CONFIG_VIDEO_IMX258 is not set
+# CONFIG_VIDEO_IMX274 is not set
+# CONFIG_VIDEO_IMX290 is not set
+# CONFIG_VIDEO_IMX296 is not set
+# CONFIG_VIDEO_IMX319 is not set
+# CONFIG_VIDEO_IMX334 is not set
+# CONFIG_VIDEO_IMX335 is not set
+# CONFIG_VIDEO_IMX355 is not set
+# CONFIG_VIDEO_IMX412 is not set
+# CONFIG_VIDEO_IMX415 is not set
+# CONFIG_VIDEO_MT9M001 is not set
+# CONFIG_VIDEO_MT9M111 is not set
+# CONFIG_VIDEO_MT9M114 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T112 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_MT9V111 is not set
+# CONFIG_VIDEO_OG01A1B is not set
+# CONFIG_VIDEO_OV01A10 is not set
+# CONFIG_VIDEO_OV02A10 is not set
+# CONFIG_VIDEO_OV08D10 is not set
+# CONFIG_VIDEO_OV08X40 is not set
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_OV13B10 is not set
+# CONFIG_VIDEO_OV2640 is not set
+# CONFIG_VIDEO_OV2659 is not set
+# CONFIG_VIDEO_OV2680 is not set
+# CONFIG_VIDEO_OV2685 is not set
+# CONFIG_VIDEO_OV4689 is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV5648 is not set
+# CONFIG_VIDEO_OV5670 is not set
+# CONFIG_VIDEO_OV5675 is not set
+# CONFIG_VIDEO_OV5693 is not set
+# CONFIG_VIDEO_OV5695 is not set
+# CONFIG_VIDEO_OV64A40 is not set
+# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV7251 is not set
+# CONFIG_VIDEO_OV7640 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_OV772X is not set
+# CONFIG_VIDEO_OV7740 is not set
+# CONFIG_VIDEO_OV8856 is not set
+# CONFIG_VIDEO_OV8858 is not set
+# CONFIG_VIDEO_OV8865 is not set
+# CONFIG_VIDEO_OV9282 is not set
+# CONFIG_VIDEO_OV9640 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_RDACM20 is not set
+# CONFIG_VIDEO_RDACM21 is not set
+# CONFIG_VIDEO_RJ54N1 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_ST_VGXY61 is not set
+# CONFIG_VIDEO_CCS is not set
+# CONFIG_VIDEO_ET8EK8 is not set
+
+#
+# Camera ISPs
+#
+# CONFIG_VIDEO_THP7312 is not set
+# end of Camera ISPs
+
+#
+# Lens drivers
+#
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_AK7375 is not set
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_DW9719 is not set
+# CONFIG_VIDEO_DW9768 is not set
+# CONFIG_VIDEO_DW9807_VCM is not set
+# end of Lens drivers
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+# end of Flash devices
+
+#
+# audio, video and radio I2C drivers auto-selected by 'Autoselect ancillary drivers'
+#
+
+#
+# Video and audio decoders
+#
+
+#
+# Video serializers and deserializers
+#
+# CONFIG_VIDEO_DS90UB913 is not set
+# CONFIG_VIDEO_DS90UB953 is not set
+# CONFIG_VIDEO_DS90UB960 is not set
+# end of Video serializers and deserializers
+
+#
+# SPI I2C drivers auto-selected by 'Autoselect ancillary drivers'
+#
+
+#
+# Media SPI Adapters
+#
+# CONFIG_VIDEO_GS1662 is not set
+# end of Media SPI Adapters
+
+CONFIG_MEDIA_TUNER=m
+
+#
+# Tuner drivers auto-selected by 'Autoselect ancillary drivers'
+#
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MSI001=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+# end of Media ancillary drivers
+
+#
+# Graphics support
+#
+CONFIG_VIDEO_CMDLINE=y
+CONFIG_VIDEO_NOMODESET=y
+# CONFIG_AUXDISPLAY is not set
+CONFIG_DRM=y
+CONFIG_DRM_MIPI_DSI=y
+# CONFIG_DRM_DEBUG_MM is not set
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_DP_AUX_BUS=y
+CONFIG_DRM_DISPLAY_HELPER=y
+CONFIG_DRM_DISPLAY_DP_HELPER=y
+CONFIG_DRM_DISPLAY_HDMI_HELPER=y
+CONFIG_DRM_DP_AUX_CHARDEV=y
+# CONFIG_DRM_DP_CEC is not set
+CONFIG_DRM_GEM_DMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=m
+CONFIG_DRM_SCHED=m
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_NOUVEAU is not set
+# CONFIG_DRM_XE is not set
+CONFIG_DRM_VGEM=m
+# CONFIG_DRM_VKMS is not set
+CONFIG_DRM_ROCKCHIP=y
+CONFIG_ROCKCHIP_VOP=y
+# CONFIG_ROCKCHIP_VOP2 is not set
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+# CONFIG_ROCKCHIP_INNO_HDMI is not set
+# CONFIG_ROCKCHIP_LVDS is not set
+CONFIG_ROCKCHIP_RGB=y
+# CONFIG_ROCKCHIP_RK3066_HDMI is not set
+# CONFIG_DRM_VMWGFX is not set
+CONFIG_DRM_UDL=m
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_QXL is not set
+CONFIG_DRM_VIRTIO_GPU=m
+# CONFIG_DRM_VIRTIO_GPU_KMS is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
+# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set
+# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
+# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
+# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
+# CONFIG_DRM_PANEL_DSI_CM is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_EDP=y
+# CONFIG_DRM_PANEL_EBBG_FT8719 is not set
+# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
+# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
+# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
+# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
+# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
+# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_JDI_LPM102A188A is not set
+# CONFIG_DRM_PANEL_JDI_R63452 is not set
+# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
+# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
+# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
+# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set
+# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
+# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set
+# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SYNAPTICS_R63353 is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set
+# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
+# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set
+# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
+# CONFIG_DRM_PANEL_TPO_TPG110 is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set
+# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set
+# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
+# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
+# CONFIG_DRM_CHRONTEL_CH7033 is not set
+# CONFIG_DRM_CROS_EC_ANX7688 is not set
+CONFIG_DRM_DISPLAY_CONNECTOR=y
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NWL_MIPI_DSI is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+CONFIG_DRM_PARADE_PS8640=y
+# CONFIG_DRM_SAMSUNG_DSIM is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+CONFIG_DRM_ANALOGIX_ANX6345=m
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+CONFIG_DRM_ANALOGIX_DP=y
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
+CONFIG_DRM_DW_HDMI=y
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_GP_AUDIO is not set
+CONFIG_DRM_DW_HDMI_CEC=m
+CONFIG_DRM_DW_MIPI_DSI=y
+# end of Display Interface Bridges
+
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_HISI_HIBMC is not set
+# CONFIG_DRM_HISI_KIRIN is not set
+# CONFIG_DRM_LOGICVC is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_GM12U320 is not set
+# CONFIG_DRM_PANEL_MIPI_DBI is not set
+# CONFIG_DRM_SIMPLEDRM is not set
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9163 is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+CONFIG_DRM_PL111=m
+# CONFIG_DRM_LIMA is not set
+CONFIG_DRM_PANFROST=m
+# CONFIG_DRM_TIDSS is not set
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
+# CONFIG_DRM_POWERVR is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_EFI is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SMSCUFX is not set
+CONFIG_FB_UDL=m
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_SIMPLE is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+CONFIG_FB_CORE=y
+CONFIG_FB_NOTIFY=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_DEVICE=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYSMEM_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_DMAMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_KTD253 is not set
+# CONFIG_BACKLIGHT_KTZ8866 is not set
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_BACKLIGHT_QCOM_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+CONFIG_BACKLIGHT_LP855X=y
+# CONFIG_BACKLIGHT_MP3309C is not set
+# CONFIG_BACKLIGHT_AS3711 is not set
+CONFIG_BACKLIGHT_GPIO=y
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_BACKLIGHT_LED is not set
+# end of Backlight & LCD device support
+
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+# end of Console display driver support
+
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+# end of Graphics support
+
+# CONFIG_DRM_ACCEL is not set
+CONFIG_SOUND=m
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_SEQ_DEVICE=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+# CONFIG_SND_HRTIMER is not set
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_MAX_CARDS=32
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_CTL_FAST_LOOKUP=y
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_CTL_INPUT_VALIDATION is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQ_DUMMY is not set
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_MIDI=m
+# CONFIG_SND_SEQ_UMP is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+CONFIG_SND_ALOOP=m
+# CONFIG_SND_VIRMIDI is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_SERIAL_GENERIC is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ALS300 is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_AZT3328 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1 is not set
+# CONFIG_SND_EMU10K1X is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_ES1938 is not set
+# CONFIG_SND_ES1968 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1712 is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MAESTRO3 is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_SONICVIBES is not set
+# CONFIG_SND_TRIDENT is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+# end of HD-Audio
+
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+# CONFIG_SND_SPI is not set
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+# CONFIG_SND_SOC_ADI is not set
+# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_AMD_ACP_CONFIG is not set
+# CONFIG_SND_ATMEL_SOC is not set
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# end of SoC Audio for Freescale CPUs
+
+# CONFIG_SND_SOC_CHV3_I2S is not set
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+CONFIG_SND_SOC_ROCKCHIP=m
+CONFIG_SND_SOC_ROCKCHIP_I2S=m
+CONFIG_SND_SOC_ROCKCHIP_I2S_TDM=m
+CONFIG_SND_SOC_ROCKCHIP_PDM=m
+CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
+CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
+CONFIG_SND_SOC_ROCKCHIP_RT5645=m
+CONFIG_SND_SOC_RK3288_HDMI_ANALOG=m
+CONFIG_SND_SOC_RK3399_GRU_SOUND=m
+# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# end of STMicroelectronics STM32 SOC audio support
+
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4375 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set
+# CONFIG_SND_SOC_AW8738 is not set
+# CONFIG_SND_SOC_AW88395 is not set
+# CONFIG_SND_SOC_AW88261 is not set
+# CONFIG_SND_SOC_AW87390 is not set
+# CONFIG_SND_SOC_AW88399 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+CONFIG_SND_SOC_BT_SCO=m
+# CONFIG_SND_SOC_CHV3_CODEC is not set
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS35L41_SPI is not set
+# CONFIG_SND_SOC_CS35L41_I2C is not set
+# CONFIG_SND_SOC_CS35L45_SPI is not set
+# CONFIG_SND_SOC_CS35L45_I2C is not set
+# CONFIG_SND_SOC_CS35L56_I2C is not set
+# CONFIG_SND_SOC_CS35L56_SPI is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS42L83 is not set
+# CONFIG_SND_SOC_CS4234 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_CX2072X is not set
+# CONFIG_SND_SOC_DA7213 is not set
+CONFIG_SND_SOC_DA7219=m
+CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_HDMI_CODEC=m
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES7241 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8326 is not set
+CONFIG_SND_SOC_ES8328=m
+CONFIG_SND_SOC_ES8328_I2C=m
+CONFIG_SND_SOC_ES8328_SPI=m
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_HDA is not set
+# CONFIG_SND_SOC_ICS43432 is not set
+# CONFIG_SND_SOC_IDT821034 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98088 is not set
+CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98520 is not set
+# CONFIG_SND_SOC_MAX98373_I2C is not set
+# CONFIG_SND_SOC_MAX98388 is not set
+# CONFIG_SND_SOC_MAX98390 is not set
+# CONFIG_SND_SOC_MAX98396 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3060_I2C is not set
+# CONFIG_SND_SOC_PCM3060_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_PEB2466 is not set
+CONFIG_SND_SOC_RK3328=m
+CONFIG_SND_SOC_RL6231=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_RT5640 is not set
+CONFIG_SND_SOC_RT5645=m
+# CONFIG_SND_SOC_RT5659 is not set
+# CONFIG_SND_SOC_RT9120 is not set
+# CONFIG_SND_SOC_RTQ9128 is not set
+# CONFIG_SND_SOC_SGTL5000 is not set
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIMPLE_MUX is not set
+# CONFIG_SND_SOC_SMA1303 is not set
+# CONFIG_SND_SOC_SPDIF is not set
+# CONFIG_SND_SOC_SRC4XXX_I2C is not set
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2518 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM3515 is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2764 is not set
+# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS2780 is not set
+# CONFIG_SND_SOC_TAS2781_I2C is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS5805M is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TFA989X is not set
+# CONFIG_SND_SOC_TLV320ADC3XXX is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+CONFIG_SND_SOC_TS3A227E=m
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731_I2C is not set
+# CONFIG_SND_SOC_WM8731_SPI is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8940 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8961 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZL38060 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_NAU8315 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8821 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
+# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
+# end of CODEC drivers
+
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SIMPLE_CARD=m
+CONFIG_SND_AUDIO_GRAPH_CARD=m
+# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
+# CONFIG_SND_TEST_COMPONENT is not set
+# CONFIG_SND_VIRTIO is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELAN is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EVISION is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GOOGLE_HAMMER is not set
+# CONFIG_HID_GOOGLE_STADIA_FF is not set
+# CONFIG_HID_VIVALDI is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+CONFIG_HID_UCLOGIC=m
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_VRC2 is not set
+# CONFIG_HID_XIAOMI is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+CONFIG_HID_LED=m
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LETSKETCH is not set
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_HID_LOGITECH_HIDPP=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_MEGAWORLD_FF is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+CONFIG_HID_MULTITOUCH=m
+# CONFIG_HID_NINTENDO is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_NVIDIA_SHIELD is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PLAYSTATION is not set
+# CONFIG_HID_PXRC is not set
+# CONFIG_HID_RAZER is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SEMITEK is not set
+# CONFIG_HID_SIGMAMICRO is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_TOPRE is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_U2FZERO is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2200 is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# HID-BPF support
+#
+# end of HID-BPF support
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+# end of USB HID support
+
+CONFIG_I2C_HID=y
+CONFIG_I2C_HID_OF=m
+# CONFIG_I2C_HID_OF_ELAN is not set
+# CONFIG_I2C_HID_OF_GOODIX is not set
+CONFIG_I2C_HID_CORE=m
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_LED_TRIG is not set
+CONFIG_USB_ULPI_BUS=y
+# CONFIG_USB_CONN_GPIO is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+# CONFIG_USB_PCI_AMD is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_FEW_INIT_RETRIES is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_OTG=y
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set
+# CONFIG_USB_OTG_FSM is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_MON=m
+
+#
+# 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_PCI=y
+# CONFIG_USB_XHCI_PCI_RENESAS is not set
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=y
+# CONFIG_USB_EHCI_FSL is not set
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_SSB is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+# CONFIG_USB_PRINTER is not set
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# 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=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
+
+#
+# USB dual-mode controller drivers
+#
+# CONFIG_USB_CDNS_SUPPORT is not set
+# CONFIG_USB_MUSB_HDRC is not set
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_ULPI=y
+CONFIG_USB_DWC3_HOST=y
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_HAPS=y
+CONFIG_USB_DWC3_OF_SIMPLE=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_DWC2_HOST=y
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+CONFIG_USB_DWC2_PCI=y
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA_PCI=y
+CONFIG_USB_CHIPIDEA_MSM=y
+CONFIG_USB_CHIPIDEA_NPCM=y
+CONFIG_USB_CHIPIDEA_IMX=y
+CONFIG_USB_CHIPIDEA_GENERIC=y
+CONFIG_USB_CHIPIDEA_TEGRA=y
+CONFIG_USB_ISP1760=y
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1760_HOST_ROLE=y
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_F8153X=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
+# CONFIG_USB_SERIAL_XR is not set
+# CONFIG_USB_SERIAL_DEBUG 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_APPLEDISPLAY is not set
+# CONFIG_APPLE_MFI_FASTCHARGE 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=m
+# CONFIG_USB_HUB_USB251XB is not set
+CONFIG_USB_HSIC_USB3503=m
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+# CONFIG_USB_ONBOARD_HUB is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_VIEWPORT=y
+# end of USB Physical Layer drivers
+
+# CONFIG_USB_GADGET is not set
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=m
+# CONFIG_TYPEC_TCPCI is not set
+# CONFIG_TYPEC_FUSB302 is not set
+CONFIG_TYPEC_UCSI=m
+# CONFIG_UCSI_CCG is not set
+# CONFIG_UCSI_STM32G0 is not set
+# CONFIG_TYPEC_TPS6598X is not set
+# CONFIG_TYPEC_ANX7411 is not set
+# CONFIG_TYPEC_RT1719 is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
+# CONFIG_TYPEC_STUSB160X is not set
+# CONFIG_TYPEC_WUSB3801 is not set
+
+#
+# USB Type-C Multiplexer/DeMultiplexer Switch support
+#
+# CONFIG_TYPEC_MUX_FSA4480 is not set
+# CONFIG_TYPEC_MUX_GPIO_SBU is not set
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# CONFIG_TYPEC_MUX_NB7VPQ904M is not set
+# CONFIG_TYPEC_MUX_PTN36502 is not set
+# CONFIG_TYPEC_MUX_WCD939X_USBSS is not set
+# end of USB Type-C Multiplexer/DeMultiplexer Switch support
+
+#
+# USB Type-C Alternate Mode drivers
+#
+CONFIG_TYPEC_DP_ALTMODE=m
+# CONFIG_TYPEC_NVIDIA_ALTMODE is not set
+# end of USB Type-C Alternate Mode drivers
+
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+# CONFIG_PWRSEQ_SD8787 is not set
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=32
+# 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_ARMMMCI is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PCI=y
+# CONFIG_MMC_RICOH_MMC is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_ARASAN=y
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_TIFM_SD is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_PLTFM=y
+# CONFIG_MMC_DW_BLUEFIELD is not set
+# CONFIG_MMC_DW_EXYNOS is not set
+# CONFIG_MMC_DW_HI3798CV200 is not set
+# CONFIG_MMC_DW_K3 is not set
+CONFIG_MMC_DW_PCI=y
+CONFIG_MMC_DW_ROCKCHIP=y
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+CONFIG_MMC_CQHCI=y
+CONFIG_MMC_HSQ=y
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_SCSI_UFSHCD is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLASS_MULTICOLOR=m
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_AW200XX is not set
+# CONFIG_LEDS_AW2013 is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_EL15203000 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_MT6323 is not set
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_GPIO is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP50XX is not set
+# CONFIG_LEDS_LP55XX_COMMON is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_PCA995X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2606MVV 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=m
+CONFIG_LEDS_SYSCON=y
+# CONFIG_LEDS_MLXREG is not set
+CONFIG_LEDS_USER=m
+# CONFIG_LEDS_SPI_BYTE is not set
+# CONFIG_LEDS_LM3697 is not set
+
+#
+# Flash and Torch LED drivers
+#
+# CONFIG_LEDS_AAT1290 is not set
+# CONFIG_LEDS_AS3645A is not set
+# CONFIG_LEDS_KTD2692 is not set
+# CONFIG_LEDS_LM3601X is not set
+# CONFIG_LEDS_RT4505 is not set
+# CONFIG_LEDS_RT8515 is not set
+# CONFIG_LEDS_SGM3140 is not set
+
+#
+# RGB LED drivers
+#
+# CONFIG_LEDS_GROUP_MULTICOLOR is not set
+# CONFIG_LEDS_KTD202X is not set
+# CONFIG_LEDS_PWM_MULTICOLOR is not set
+# CONFIG_LEDS_QCOM_LPG is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_TRIGGER_PATTERN is not set
+# CONFIG_LEDS_TRIGGER_AUDIO is not set
+CONFIG_LEDS_TRIGGER_TTY=m
+
+#
+# Simple LED drivers
+#
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_SUPPORT=y
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABEOZ9 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_AS3722 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_MAX31335 is not set
+# CONFIG_RTC_DRV_MAX77686 is not set
+# CONFIG_RTC_DRV_NCT3018Y is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF85363 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+CONFIG_RTC_DRV_PALMAS=m
+CONFIG_RTC_DRV_TPS6586X=m
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV3032 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_SD3078 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
+# CONFIG_RTC_DRV_RX6110 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+CONFIG_RTC_DRV_EFI=m
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+CONFIG_RTC_DRV_CROS_EC=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+CONFIG_RTC_DRV_MT6397=m
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_AMBA_PL08X is not set
+# CONFIG_BCM_SBA_RAID is not set
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_QDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+CONFIG_MV_XOR_V2=y
+CONFIG_PL330_DMA=y
+# CONFIG_PLX_DMA is not set
+# CONFIG_XILINX_DMA is not set
+# CONFIG_XILINX_XDMA is not set
+# CONFIG_XILINX_ZYNQMP_DMA is not set
+# CONFIG_XILINX_ZYNQMP_DPDMA is not set
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+CONFIG_DW_DMAC_CORE=m
+CONFIG_DW_DMAC=m
+CONFIG_DW_DMAC_PCI=m
+# CONFIG_DW_EDMA is not set
+# CONFIG_SF_PDMA is not set
+
+#
+# DMA Clients
+#
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DMA_ENGINE_RAID=y
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_UDMABUF is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMABUF_HEAPS=y
+# CONFIG_DMABUF_SYSFS_STATS is not set
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+# end of DMABUF options
+
+# CONFIG_UIO is not set
+CONFIG_VFIO=m
+# CONFIG_VFIO_DEVICE_CDEV is not set
+CONFIG_VFIO_GROUP=y
+CONFIG_VFIO_CONTAINER=y
+CONFIG_VFIO_IOMMU_TYPE1=m
+CONFIG_VFIO_NOIOMMU=y
+CONFIG_VFIO_VIRQFD=y
+
+#
+# VFIO support for PCI devices
+#
+CONFIG_VFIO_PCI_CORE=m
+CONFIG_VFIO_PCI_MMAP=y
+CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI=m
+# end of VFIO support for PCI devices
+
+#
+# VFIO support for platform devices
+#
+CONFIG_VFIO_PLATFORM_BASE=m
+CONFIG_VFIO_PLATFORM=m
+# CONFIG_VFIO_AMBA is not set
+
+#
+# VFIO platform reset drivers
+#
+# CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET is not set
+# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
+# end of VFIO platform reset drivers
+# end of VFIO support for platform devices
+
+CONFIG_IRQ_BYPASS_MANAGER=y
+CONFIG_VIRT_DRIVERS=y
+# CONFIG_NITRO_ENCLAVES is not set
+CONFIG_VIRTIO_ANCHOR=y
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_PCI_LIB=m
+CONFIG_VIRTIO_PCI_LIB_LEGACY=m
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
+# CONFIG_VDPA is not set
+CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST_TASK=y
+CONFIG_VHOST=m
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_VSOCK=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_COMEDI is not set
+CONFIG_STAGING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_RTLLIB is not set
+# CONFIG_RTL8723BS is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS5208 is not set
+# CONFIG_VT6655 is not set
+# CONFIG_VT6656 is not set
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16240 is not set
+# end of Accelerometers
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7816 is not set
+# end of Analog to digital converters
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+# end of Analog digital bi-direction converters
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+# end of Direct Digital Synthesis
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+# end of Network Analyzer, Impedance Converters
+# end of IIO staging drivers
+
+# CONFIG_FB_SM750 is not set
+CONFIG_STAGING_MEDIA=y
+# CONFIG_VIDEO_MAX96712 is not set
+CONFIG_VIDEO_ROCKCHIP_VDEC=m
+
+#
+# StarFive media platform drivers
+#
+# CONFIG_STAGING_MEDIA_DEPRECATED is not set
+# CONFIG_STAGING_BOARD is not set
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_FB_TFT is not set
+# CONFIG_KS7010 is not set
+# CONFIG_PI433 is not set
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_FIELDBUS_DEV is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CROS_EC=y
+CONFIG_CROS_EC_I2C=y
+CONFIG_CROS_EC_SPI=y
+CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CROS_EC_CHARDEV=y
+CONFIG_CROS_EC_LIGHTBAR=y
+CONFIG_CROS_EC_VBC=m
+CONFIG_CROS_EC_SENSORHUB=y
+CONFIG_CROS_EC_SYSFS=m
+CONFIG_CROS_EC_TYPEC=y
+# CONFIG_CROS_HPS_I2C is not set
+CONFIG_CROS_USBPD_LOGGER=m
+CONFIG_CROS_USBPD_NOTIFY=y
+# CONFIG_MELLANOX_PLATFORM is not set
+# CONFIG_SURFACE_PLATFORMS is not set
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Clock driver for ARM Reference designs
+#
+# CONFIG_CLK_ICST is not set
+# CONFIG_CLK_SP810 is not set
+# end of Clock driver for ARM Reference designs
+
+# CONFIG_LMK04832 is not set
+# CONFIG_COMMON_CLK_MAX77686 is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_SCPI=m
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
+# CONFIG_COMMON_CLK_XGENE is not set
+# CONFIG_COMMON_CLK_PALMAS is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_RS9_PCIE is not set
+# CONFIG_COMMON_CLK_SI521XX is not set
+# CONFIG_COMMON_CLK_VC3 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_VC7 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+CONFIG_COMMON_CLK_ROCKCHIP=y
+CONFIG_CLK_PX30=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+# CONFIG_CLK_RK3568 is not set
+CONFIG_CLK_RK3588=y
+# CONFIG_XILINX_VCU is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ROCKCHIP_TIMER=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+# end of Clock Source drivers
+
+CONFIG_MAILBOX=y
+CONFIG_ARM_MHU=m
+# CONFIG_ARM_MHU_V2 is not set
+CONFIG_PLATFORM_MHU=m
+# CONFIG_PL320_MBOX is not set
+CONFIG_ROCKCHIP_MBOX=y
+# CONFIG_ALTERA_MBOX is not set
+# CONFIG_MAILBOX_TEST is not set
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+CONFIG_IOMMU_IO_PGTABLE=y
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
+CONFIG_IOMMU_IO_PGTABLE_ARMV7S=y
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S_SELFTEST is not set
+# CONFIG_IOMMU_IO_PGTABLE_DART is not set
+# end of Generic IOMMU Pagetable Support
+
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+CONFIG_IOMMUFD=m
+CONFIG_ROCKCHIP_IOMMU=y
+# CONFIG_ARM_SMMU is not set
+# CONFIG_ARM_SMMU_V3 is not set
+# CONFIG_VIRTIO_IOMMU is not set
+
+#
+# Remoteproc drivers
+#
+# CONFIG_REMOTEPROC is not set
+# end of Remoteproc drivers
+
+#
+# Rpmsg drivers
+#
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+# 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
+
+#
+# Broadcom SoC drivers
+#
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# CONFIG_QUICC_ENGINE is not set
+# CONFIG_FSL_RCPM is not set
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# fujitsu SoC drivers
+#
+# end of fujitsu SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+#
+# Enable LiteX SoC Builder specific drivers
+#
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# end of Enable LiteX SoC Builder specific drivers
+
+# CONFIG_WPCM450_SOC is not set
+
+#
+# Qualcomm SoC drivers
+#
+# end of Qualcomm SoC drivers
+
+CONFIG_ROCKCHIP_GRF=y
+CONFIG_ROCKCHIP_IODOMAIN=y
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# end of Xilinx SoC drivers
+# end of SOC (System On Chip) specific Drivers
+
+#
+# PM Domains
+#
+
+#
+# Amlogic PM Domains
+#
+# end of Amlogic PM Domains
+
+CONFIG_ARM_SCPI_POWER_DOMAIN=m
+
+#
+# Broadcom PM Domains
+#
+# end of Broadcom PM Domains
+
+#
+# i.MX PM Domains
+#
+# end of i.MX PM Domains
+
+#
+# Qualcomm PM Domains
+#
+# end of Qualcomm PM Domains
+
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+# end of PM Domains
+
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+# CONFIG_DEVFREQ_GOV_PASSIVE is not set
+
+#
+# DEVFREQ Drivers
+#
+CONFIG_ARM_RK3399_DMC_DEVFREQ=m
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=m
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+CONFIG_EXTCON_ADC_JACK=m
+# CONFIG_EXTCON_FSA9480 is not set
+CONFIG_EXTCON_GPIO=y
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_PALMAS is not set
+# CONFIG_EXTCON_PTN5150 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_EXTCON_USBC_CROS_EC=y
+# CONFIG_EXTCON_USBC_TUSB320 is not set
+CONFIG_MEMORY=y
+# CONFIG_ARM_PL172_MPMC is not set
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_BUFFER_CB=y
+# CONFIG_IIO_BUFFER_DMA is not set
+# CONFIG_IIO_BUFFER_DMAENGINE is not set
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
+CONFIG_IIO_KFIFO_BUF=y
+CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_CONFIGFS=m
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
+# CONFIG_IIO_TRIGGERED_EVENT is not set
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADXL313_I2C is not set
+# CONFIG_ADXL313_SPI is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
+# CONFIG_ADXL355_I2C is not set
+# CONFIG_ADXL355_SPI is not set
+# CONFIG_ADXL367_SPI is not set
+# CONFIG_ADXL367_I2C is not set
+# CONFIG_ADXL372_SPI is not set
+# CONFIG_ADXL372_I2C is not set
+# CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
+# CONFIG_BMA400 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_BMI088_ACCEL is not set
+# CONFIG_DA280 is not set
+# CONFIG_DA311 is not set
+# CONFIG_DMARD06 is not set
+# CONFIG_DMARD09 is not set
+# CONFIG_DMARD10 is not set
+# CONFIG_FXLS8962AF_I2C is not set
+# CONFIG_FXLS8962AF_SPI is not set
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_IIO_KX022A_SPI is not set
+# CONFIG_IIO_KX022A_I2C is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+# CONFIG_MMA7660 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+# CONFIG_MSA311 is not set
+# CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
+# CONFIG_SCA3000 is not set
+# CONFIG_SCA3300 is not set
+# CONFIG_STK8312 is not set
+# CONFIG_STK8BA50 is not set
+# end of Accelerometers
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD4130 is not set
+# CONFIG_AD7091R5 is not set
+# CONFIG_AD7091R8 is not set
+# CONFIG_AD7124 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7266 is not set
+# CONFIG_AD7280 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7292 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7606_IFACE_PARALLEL is not set
+# CONFIG_AD7606_IFACE_SPI is not set
+# CONFIG_AD7766 is not set
+# CONFIG_AD7768_1 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD7949 is not set
+# CONFIG_AD799X is not set
+# CONFIG_ADI_AXI_ADC is not set
+# CONFIG_AXP20X_ADC is not set
+# CONFIG_AXP288_ADC is not set
+# CONFIG_CC10001_ADC is not set
+# CONFIG_ENVELOPE_DETECTOR is not set
+# CONFIG_HI8435 is not set
+# CONFIG_HX711 is not set
+# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2309 is not set
+# CONFIG_LTC2471 is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_LTC2496 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
+# CONFIG_MAX11205 is not set
+# CONFIG_MAX11410 is not set
+# CONFIG_MAX1241 is not set
+# CONFIG_MAX1363 is not set
+# CONFIG_MAX34408 is not set
+# CONFIG_MAX9611 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_MCP3564 is not set
+# CONFIG_MCP3911 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_PALMAS_GPADC is not set
+CONFIG_QCOM_VADC_COMMON=m
+# CONFIG_QCOM_SPMI_IADC is not set
+CONFIG_QCOM_SPMI_VADC=m
+# CONFIG_QCOM_SPMI_ADC5 is not set
+CONFIG_ROCKCHIP_SARADC=m
+# CONFIG_RICHTEK_RTQ6056 is not set
+# CONFIG_SD_ADC_MODULATOR is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
+# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC108S102 is not set
+# CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
+# CONFIG_TI_ADS7924 is not set
+# CONFIG_TI_ADS1100 is not set
+# CONFIG_TI_ADS7950 is not set
+# CONFIG_TI_ADS8344 is not set
+# CONFIG_TI_ADS8688 is not set
+# CONFIG_TI_ADS124S08 is not set
+# CONFIG_TI_ADS131E08 is not set
+# CONFIG_TI_LMP92064 is not set
+# CONFIG_TI_TLC4541 is not set
+# CONFIG_TI_TSC2046 is not set
+# CONFIG_VF610_ADC is not set
+# CONFIG_XILINX_XADC is not set
+# end of Analog to digital converters
+
+#
+# Analog to digital and digital to analog converters
+#
+# CONFIG_AD74115 is not set
+# CONFIG_AD74413R is not set
+# end of Analog to digital and digital to analog converters
+
+#
+# Analog Front Ends
+#
+# CONFIG_IIO_RESCALE is not set
+# end of Analog Front Ends
+
+#
+# Amplifiers
+#
+CONFIG_AD8366=m
+# CONFIG_ADA4250 is not set
+# CONFIG_HMC425 is not set
+# end of Amplifiers
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7746 is not set
+# end of Capacitance to digital converters
+
+#
+# Chemical Sensors
+#
+# CONFIG_AOSONG_AGS02MA is not set
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_ATLAS_EZO_SENSOR is not set
+# CONFIG_BME680 is not set
+# CONFIG_CCS811 is not set
+# CONFIG_IAQCORE is not set
+# CONFIG_PMS7003 is not set
+# CONFIG_SCD30_CORE is not set
+# CONFIG_SCD4X is not set
+# CONFIG_SENSIRION_SGP30 is not set
+# CONFIG_SENSIRION_SGP40 is not set
+# CONFIG_SPS30_I2C is not set
+# CONFIG_SPS30_SERIAL is not set
+# CONFIG_SENSEAIR_SUNRISE_CO2 is not set
+# CONFIG_VZ89X is not set
+# end of Chemical Sensors
+
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
+
+#
+# Hid Sensor IIO Common
+#
+# end of Hid Sensor IIO Common
+
+#
+# IIO SCMI Sensors
+#
+# end of IIO SCMI Sensors
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+# end of SSP Sensor Common
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD3552R is not set
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_LTC2688 is not set
+# CONFIG_AD5686_SPI is not set
+# CONFIG_AD5696_I2C is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5758 is not set
+# CONFIG_AD5761 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5766 is not set
+# CONFIG_AD5770R is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7293 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_AD8801 is not set
+# CONFIG_DPOT_DAC is not set
+# CONFIG_DS4424 is not set
+# CONFIG_LTC1660 is not set
+# CONFIG_LTC2632 is not set
+# CONFIG_M62332 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MAX5522 is not set
+# CONFIG_MAX5821 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4728 is not set
+# CONFIG_MCP4821 is not set
+# CONFIG_MCP4922 is not set
+# CONFIG_TI_DAC082S085 is not set
+# CONFIG_TI_DAC5571 is not set
+# CONFIG_TI_DAC7311 is not set
+# CONFIG_TI_DAC7612 is not set
+# CONFIG_VF610_DAC is not set
+# end of Digital to analog converters
+
+#
+# IIO dummy driver
+#
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+# end of IIO dummy driver
+
+#
+# Filters
+#
+# CONFIG_ADMV8818 is not set
+# end of Filters
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+# end of Clock Generator/Distribution
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+# CONFIG_ADF4371 is not set
+# CONFIG_ADF4377 is not set
+# CONFIG_ADMV1013 is not set
+# CONFIG_ADMV1014 is not set
+# CONFIG_ADMV4420 is not set
+# CONFIG_ADRF6780 is not set
+# end of Phase-Locked Loop (PLL) frequency synthesizers
+# end of Frequency Synthesizers DDS/PLL
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS290 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_FXAS21002C is not set
+# CONFIG_MPU3050_I2C is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+# end of Digital gyroscope sensors
+
+#
+# Health Sensors
+#
+
+#
+# Heart Rate Monitors
+#
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+# CONFIG_MAX30100 is not set
+# CONFIG_MAX30102 is not set
+# end of Heart Rate Monitors
+# end of Health Sensors
+
+#
+# Humidity sensors
+#
+# CONFIG_AM2315 is not set
+# CONFIG_DHT11 is not set
+# CONFIG_HDC100X is not set
+# CONFIG_HDC2010 is not set
+# CONFIG_HDC3020 is not set
+# CONFIG_HTS221 is not set
+# CONFIG_HTU21 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+# end of Humidity sensors
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
+# CONFIG_ADIS16475 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+# CONFIG_BMI323_I2C is not set
+# CONFIG_BMI323_SPI is not set
+# CONFIG_BOSCH_BNO055_SERIAL is not set
+# CONFIG_BOSCH_BNO055_I2C is not set
+# CONFIG_FXOS8700_I2C is not set
+# CONFIG_FXOS8700_SPI is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_ICM42600_I2C is not set
+# CONFIG_INV_ICM42600_SPI is not set
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
+# CONFIG_IIO_ST_LSM6DSX is not set
+# CONFIG_IIO_ST_LSM9DS0 is not set
+# end of Inertial measurement units
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_ADUX1020 is not set
+# CONFIG_AL3010 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_APDS9960 is not set
+# CONFIG_AS73211 is not set
+# CONFIG_BH1750 is not set
+# CONFIG_BH1780 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM3605 is not set
+# CONFIG_CM36651 is not set
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+# CONFIG_GP2AP002 is not set
+# CONFIG_GP2AP020A00F is not set
+CONFIG_SENSORS_ISL29018=m
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_ISL76682 is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_ROHM_BU27008 is not set
+# CONFIG_ROHM_BU27034 is not set
+# CONFIG_RPR0521 is not set
+# CONFIG_LTR390 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_LTRF216A is not set
+# CONFIG_LV0104CS is not set
+# CONFIG_MAX44000 is not set
+# CONFIG_MAX44009 is not set
+# CONFIG_NOA1305 is not set
+# CONFIG_OPT3001 is not set
+# CONFIG_OPT4001 is not set
+# CONFIG_PA12203001 is not set
+# CONFIG_SI1133 is not set
+# CONFIG_SI1145 is not set
+# CONFIG_STK3310 is not set
+# CONFIG_ST_UVIS25 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+CONFIG_SENSORS_TSL2563=m
+CONFIG_TSL2583=m
+# CONFIG_TSL2591 is not set
+# CONFIG_TSL2772 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_US5182D is not set
+# CONFIG_VCNL4000 is not set
+# CONFIG_VCNL4035 is not set
+# CONFIG_VEML6030 is not set
+# CONFIG_VEML6070 is not set
+# CONFIG_VEML6075 is not set
+# CONFIG_VL6180 is not set
+# CONFIG_ZOPT2201 is not set
+# end of Light sensors
+
+#
+# Magnetometer sensors
+#
+CONFIG_AK8974=m
+CONFIG_AK8975=m
+# CONFIG_AK09911 is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_MMC35240 is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+# CONFIG_SENSORS_RM3100_I2C is not set
+# CONFIG_SENSORS_RM3100_SPI is not set
+# CONFIG_TI_TMAG5273 is not set
+# CONFIG_YAMAHA_YAS530 is not set
+# end of Magnetometer sensors
+
+#
+# Multiplexers
+#
+CONFIG_IIO_MUX=y
+# end of Multiplexers
+
+#
+# Inclinometer sensors
+#
+# end of Inclinometer sensors
+
+#
+# Triggers - standalone
+#
+CONFIG_IIO_HRTIMER_TRIGGER=m
+CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
+CONFIG_IIO_SYSFS_TRIGGER=m
+# end of Triggers - standalone
+
+#
+# Linear and angular position sensors
+#
+# end of Linear and angular position sensors
+
+#
+# Digital potentiometers
+#
+# CONFIG_AD5110 is not set
+# CONFIG_AD5272 is not set
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5432 is not set
+# CONFIG_MAX5481 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4018 is not set
+# CONFIG_MCP4131 is not set
+# CONFIG_MCP4531 is not set
+# CONFIG_MCP41010 is not set
+# CONFIG_TPL0102 is not set
+# CONFIG_X9250 is not set
+# end of Digital potentiometers
+
+#
+# Digital potentiostats
+#
+# CONFIG_LMP91000 is not set
+# end of Digital potentiostats
+
+#
+# Pressure sensors
+#
+# CONFIG_ABP060MG is not set
+# CONFIG_ROHM_BM1390 is not set
+# CONFIG_BMP280 is not set
+CONFIG_IIO_CROS_EC_BARO=m
+# CONFIG_DLHL60D is not set
+# CONFIG_DPS310 is not set
+# CONFIG_HP03 is not set
+# CONFIG_HSC030PA is not set
+# CONFIG_ICP10100 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
+# CONFIG_MPL3115 is not set
+# CONFIG_MPRLS0025PA is not set
+# CONFIG_MS5611 is not set
+# CONFIG_MS5637 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
+# end of Pressure sensors
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+# end of Lightning sensors
+
+#
+# Proximity and distance sensors
+#
+CONFIG_CROS_EC_MKBP_PROXIMITY=m
+# CONFIG_IRSD200 is not set
+# CONFIG_ISL29501 is not set
+# CONFIG_LIDAR_LITE_V2 is not set
+# CONFIG_MB1232 is not set
+# CONFIG_PING is not set
+# CONFIG_RFD77402 is not set
+# CONFIG_SRF04 is not set
+# CONFIG_SX9310 is not set
+# CONFIG_SX9324 is not set
+# CONFIG_SX9360 is not set
+# CONFIG_SX9500 is not set
+# CONFIG_SRF08 is not set
+# CONFIG_VCNL3020 is not set
+# CONFIG_VL53L0X_I2C is not set
+# end of Proximity and distance sensors
+
+#
+# Resolver to digital converters
+#
+CONFIG_AD2S90=m
+CONFIG_AD2S1200=m
+# CONFIG_AD2S1210 is not set
+# end of Resolver to digital converters
+
+#
+# Temperature sensors
+#
+# CONFIG_LTC2983 is not set
+# CONFIG_MAXIM_THERMOCOUPLE is not set
+# CONFIG_MLX90614 is not set
+# CONFIG_MLX90632 is not set
+# CONFIG_MLX90635 is not set
+# CONFIG_TMP006 is not set
+# CONFIG_TMP007 is not set
+# CONFIG_TMP117 is not set
+# CONFIG_TSYS01 is not set
+# CONFIG_TSYS02D is not set
+# CONFIG_MAX30208 is not set
+# CONFIG_MAX31856 is not set
+# CONFIG_MAX31865 is not set
+# CONFIG_MCP9600 is not set
+# end of Temperature sensors
+
+# CONFIG_NTB is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_CLK is not set
+CONFIG_PWM_CROS_EC=y
+# CONFIG_PWM_DWC is not set
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_ROCKCHIP=y
+# CONFIG_PWM_XILINX is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+# CONFIG_AL_FIC is not set
+# CONFIG_XILINX_INTC is not set
+CONFIG_PARTITION_PERCPU=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_TI_TPS380X is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+# CONFIG_PHY_CAN_TRANSCEIVER is not set
+
+#
+# PHY drivers for Broadcom platforms
+#
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# end of PHY drivers for Broadcom platforms
+
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_DPHY_RX is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_LAN966X_SERDES is not set
+# CONFIG_PHY_CPCAP_USB is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_QCOM_USB_HS is not set
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+CONFIG_PHY_ROCKCHIP_DP=y
+# CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set
+CONFIG_PHY_ROCKCHIP_EMMC=y
+CONFIG_PHY_ROCKCHIP_INNO_HDMI=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+# CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY is not set
+# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
+# CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY is not set
+CONFIG_PHY_ROCKCHIP_PCIE=y
+# CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set
+CONFIG_PHY_ROCKCHIP_TYPEC=y
+CONFIG_PHY_ROCKCHIP_USB=m
+CONFIG_PHY_SAMSUNG_USB2=m
+# CONFIG_PHY_TUSB1210 is not set
+# end of PHY Subsystem
+
+CONFIG_POWERCAP=y
+CONFIG_IDLE_INJECT=y
+# CONFIG_DTPM is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+# CONFIG_ARM_CCI_PMU is not set
+# CONFIG_ARM_CCN is not set
+# CONFIG_ARM_CMN is not set
+CONFIG_ARM_PMU=y
+# CONFIG_ARM_SMMU_V3_PMU is not set
+CONFIG_ARM_PMUV3=y
+# CONFIG_ARM_DSU_PMU is not set
+# CONFIG_ARM_SPE_PMU is not set
+# CONFIG_HISI_PCIE_PMU is not set
+# CONFIG_HNS3_PMU is not set
+# CONFIG_DWC_PCIE_PMU is not set
+# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set
+# end of Performance monitor support
+
+CONFIG_RAS=y
+# CONFIG_USB4 is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_NVMEM_LAYOUTS=y
+
+#
+# Layout Types
+#
+# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set
+# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set
+# end of Layout Types
+
+# CONFIG_NVMEM_RMEM is not set
+CONFIG_NVMEM_ROCKCHIP_EFUSE=m
+CONFIG_NVMEM_ROCKCHIP_OTP=m
+# CONFIG_NVMEM_SPMI_SDAM is not set
+
+#
+# HW tracing support
+#
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# CONFIG_HISI_PTT is not set
+# end of HW tracing support
+
+# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+# CONFIG_TEE is not set
+CONFIG_MULTIPLEXER=y
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MUX_ADG792A is not set
+# CONFIG_MUX_ADGS1408 is not set
+# CONFIG_MUX_GPIO is not set
+# CONFIG_MUX_MMIO is not set
+# end of Multiplexer drivers
+
+CONFIG_PM_OPP=y
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# CONFIG_PECI is not set
+# CONFIG_HTE is not set
+# CONFIG_CDX_BUS is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+CONFIG_FS_STACK=y
+CONFIG_BUFFER_HEAD=y
+CONFIG_LEGACY_DIRECT_IO=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=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=m
+CONFIG_XFS_SUPPORT_V4=y
+# CONFIG_XFS_SUPPORT_ASCII_CI is not set
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_ONLINE_SCRUB is not set
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZ4HC=y
+CONFIG_F2FS_FS_ZSTD=y
+# CONFIG_F2FS_IOSTAT is not set
+# CONFIG_F2FS_UNFAIR_RWSEM is not set
+# CONFIG_BCACHEFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_VIRTIO_FS=m
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+# CONFIG_OVERLAY_FS_DEBUG is not set
+
+#
+# Caches
+#
+CONFIG_NETFS_SUPPORT=m
+# CONFIG_NETFS_STATS is not set
+# CONFIG_FSCACHE is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_FAT_DEFAULT_UTF8=y
+CONFIG_EXFAT_FS=m
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+# CONFIG_NTFS3_LZX_XPRESS is not set
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_TMPFS_INODE64 is not set
+# CONFIG_TMPFS_QUOTA is not set
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
+# CONFIG_HUGETLBFS is not set
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_EFIVAR_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_ECRYPT_FS=m
+# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
+CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+# 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=m
+# 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=m
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
+CONFIG_PSTORE_COMPRESS=y
+# CONFIG_PSTORE_CONSOLE is not set
+# CONFIG_PSTORE_PMSG is not set
+# CONFIG_PSTORE_RAM is not set
+# CONFIG_PSTORE_BLK is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_EROFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+# CONFIG_NFS_V2 is not set
+CONFIG_NFS_V3=m
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=m
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+# CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+CONFIG_NFSD=m
+# CONFIG_NFSD_V2 is not set
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+# CONFIG_NFSD_BLOCKLAYOUT is not set
+# CONFIG_NFSD_SCSILAYOUT is not set
+# CONFIG_NFSD_FLEXFILELAYOUT is not set
+# CONFIG_NFSD_V4_SECURITY_LABEL is not set
+# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
+# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 is not set
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SWN_UPCALL=y
+CONFIG_SMB_SERVER=m
+CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
+# CONFIG_SMB_SERVER_KERBEROS5 is not set
+CONFIG_SMBFS=m
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+# 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=m
+CONFIG_NLS_CODEPAGE_855=m
+# 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=m
+# 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=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+CONFIG_NLS_ISO8859_5=m
+# 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=m
+# 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=m
+CONFIG_NLS_UCS2_UTILS=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_REQUEST_CACHE is not set
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_TRUSTED_KEYS_TPM=y
+CONFIG_ENCRYPTED_KEYS=y
+# CONFIG_USER_DECRYPTED_DATA is not set
+CONFIG_KEY_DH_OPERATIONS=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+# CONFIG_SECURITYFS is not set
+# CONFIG_SECURITY_NETWORK is not set
+# CONFIG_SECURITY_PATH is not set
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_FORTIFY_SOURCE 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=y
+# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_SECURITY_LANDLOCK is not set
+# CONFIG_INTEGRITY is not set
+# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM=""
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
+# end of Memory initialization
+
+#
+# Hardening of kernel data structures
+#
+# CONFIG_LIST_HARDENED is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Hardening of kernel data structures
+
+CONFIG_RANDSTRUCT_NONE=y
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_XOR_BLOCKS=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_FIPS is not set
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_SIG2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_NULL2=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=m
+# end of Crypto core or helper
+
+#
+# Public-key cryptography
+#
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_DH=y
+# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+# CONFIG_CRYPTO_ECDSA is not set
+CONFIG_CRYPTO_ECRDSA=m
+# CONFIG_CRYPTO_SM2 is not set
+CONFIG_CRYPTO_CURVE25519=m
+# end of Public-key cryptography
+
+#
+# Block ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARIA is not set
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SEED is not set
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SM4=m
+# CONFIG_CRYPTO_SM4_GENERIC is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+# end of Block ciphers
+
+#
+# Length-preserving ciphers and modes
+#
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_HCTR2 is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+CONFIG_CRYPTO_LRW=m
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_NHPOLY1305=m
+# end of Length-preserving ciphers and modes
+
+#
+# AEAD (authenticated encryption with associated data) ciphers
+#
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GENIV=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ESSIV=m
+# end of AEAD (authenticated encryption with associated data) ciphers
+
+#
+# Hashes, digests, and MACs
+#
+CONFIG_CRYPTO_BLAKE2B=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+CONFIG_CRYPTO_POLY1305=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA3=y
+CONFIG_CRYPTO_SM3=m
+# CONFIG_CRYPTO_SM3_GENERIC is not set
+CONFIG_CRYPTO_STREEBOG=m
+# CONFIG_CRYPTO_VMAC is not set
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_XXHASH=m
+# end of Hashes, digests, and MACs
+
+#
+# CRCs (cyclic redundancy checks)
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRC64_ROCKSOFT=y
+# end of CRCs (cyclic redundancy checks)
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+CONFIG_CRYPTO_ZSTD=y
+# end of Compression
+
+#
+# Random number generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
+CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
+CONFIG_CRYPTO_JITTERENTROPY_OSR=1
+CONFIG_CRYPTO_KDF800108_CTR=y
+# end of Random number generation
+
+#
+# Userspace interface
+#
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+# CONFIG_CRYPTO_STATS is not set
+# end of Userspace interface
+
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_CHACHA20_NEON=m
+
+#
+# Accelerated Cryptographic Algorithms for CPU (arm64)
+#
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_POLY1305_NEON=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA256_ARM64=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_ARM64=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+# CONFIG_CRYPTO_SM3_NEON is not set
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set
+CONFIG_CRYPTO_AES_ARM64=m
+CONFIG_CRYPTO_AES_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set
+# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set
+# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+# end of Accelerated Cryptographic Algorithms for CPU (arm64)
+
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_C62X is not set
+# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_420XX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
+# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set
+CONFIG_CRYPTO_DEV_ROCKCHIP=m
+CONFIG_CRYPTO_DEV_VIRTIO=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_HISI_SEC is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
+# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
+
+#
+# Certificates for signature checking
+#
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+CONFIG_MODULE_SIG_KEY_TYPE_RSA=y
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# end of Certificates for signature checking
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+# CONFIG_RAID6_PQ_BENCHMARK is not set
+CONFIG_LINEAR_RANGES=y
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
+# CONFIG_INDIRECT_PIO is not set
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_GF128MUL=m
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
+CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+# end of Crypto library routines
+
+CONFIG_CRC_CCITT=y
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC64_ROCKSOFT=y
+CONFIG_CRC_ITU_T=m
+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=y
+# CONFIG_CRC4 is not set
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=y
+CONFIG_CRC8=m
+CONFIG_XXHASH=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4HC_COMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+# CONFIG_XZ_DEC_MICROLZMA is not set
+CONFIG_XZ_DEC_BCJ=y
+# 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_INTERVAL_TREE=y
+CONFIG_INTERVAL_TREE_SPAN_ITER=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_DMA_OPS=y
+CONFIG_NEED_SG_DMA_FLAGS=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_SWIOTLB=y
+# CONFIG_SWIOTLB_DYNAMIC is not set
+CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
+# CONFIG_DMA_RESTRICTED_POOL is not set
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_DIRECT_REMAP=y
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_CLZ_TAB=y
+CONFIG_IRQ_POLL=y
+CONFIG_MPILIB=y
+CONFIG_DIMLIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_6x10 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+CONFIG_FONT_TER16x32=y
+# CONFIG_FONT_6x8 is not set
+CONFIG_SG_POOL=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
+CONFIG_STACKDEPOT_MAX_FRAMES=64
+CONFIG_SBITMAP=y
+# CONFIG_LWQ_TEST is not set
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+CONFIG_ASN1_ENCODER=m
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_AS_HAS_NON_CONST_ULEB128=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_DEBUG_FS is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
+# end of Generic Kernel Debugging Instruments
+
+#
+# Networking Debugging
+#
+# end of Networking Debugging
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_PAGE_TABLE_CHECK is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_ARCH_HAS_DEBUG_WX=y
+# CONFIG_DEBUG_WX is not set
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_PER_VMA_LOCK_STATS is not set
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+# CONFIG_DEBUG_VM_PGTABLE is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
+CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y
+CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_KASAN_SW_TAGS=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+# CONFIG_KASAN is not set
+CONFIG_HAVE_ARCH_KFENCE=y
+# CONFIG_KFENCE is not set
+# end of Memory Debugging
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=30
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_INFO=y
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_DEBUG_IRQFLAGS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+
+#
+# Debug kernel data structures
+#
+# end of Debug kernel data structures
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
+# CONFIG_RCU_CPU_STALL_CPUTIME is not set
+# end of RCU Debugging
+
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=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_SAMPLES is not set
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
+
+#
+# arm64 Debugging
+#
+# CONFIG_PID_IN_CONTEXTIDR is not set
+# CONFIG_ARM64_RELOC_TEST is not set
+# CONFIG_CORESIGHT is not set
+# end of arm64 Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_ARCH_USE_MEMTEST=y
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+
+#
+# Rust hacking
+#
+# end of Rust hacking
+# end of Kernel hacking
diff --git a/testing/linux-gru/fix-gru-analogix_dp_core.patch b/testing/linux-gru/fix-gru-analogix_dp_core.patch
new file mode 100644
index 00000000000..4b56e6c333e
--- /dev/null
+++ b/testing/linux-gru/fix-gru-analogix_dp_core.patch
@@ -0,0 +1,17 @@
+crude hack to fix random display freeze
+
+--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c 2021-01-26 11:15:26.757702834 +0000
++++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c 2021-01-26 11:15:26.757702834 +0000
+@@ -979,12 +979,6 @@
+ if (ret)
+ return ret;
+
+- if (analogix_dp_detect_sink_psr(dp)) {
+- ret = analogix_dp_enable_sink_psr(dp);
+- if (ret)
+- return ret;
+- }
+-
+ return ret;
+ }
+
diff --git a/testing/linux-gru/fix-rk3399-gru-mmc-order.patch b/testing/linux-gru/fix-rk3399-gru-mmc-order.patch
new file mode 100644
index 00000000000..782a2040486
--- /dev/null
+++ b/testing/linux-gru/fix-rk3399-gru-mmc-order.patch
@@ -0,0 +1,18 @@
+Author: Milan P. Stanić <mps@arvanta.net>
+Date: 2021-06-28 18:49:49 +0000
+
+set more 'natural' order of e/mmc devices, internal emmc is mmcblk0
+
+--- a/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi 2021-06-27 22:21:11.000000000 +0000
++++ b/arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi 2021-06-28 18:49:49.370552503 +0000
+@@ -11,8 +11,8 @@
+
+ / {
+ aliases {
+- mmc0 = &sdmmc;
+- mmc1 = &sdhci;
++ mmc1 = &sdmmc;
++ mmc0 = &sdhci;
+ };
+
+ chosen {
diff --git a/testing/linux-gru/kernel.its.gru b/testing/linux-gru/kernel.its.gru
new file mode 100644
index 00000000000..9e15a52bf1c
--- /dev/null
+++ b/testing/linux-gru/kernel.its.gru
@@ -0,0 +1,48 @@
+/dts-v1/;
+
+/ {
+ description = "Chrome OS kernel image with one or more FDT blobs";
+ images {
+ kernel-1{
+ description = "kernel";
+ data = /incbin/("arch/arm64/boot/Image");
+ type = "kernel_noload";
+ arch = "arm64";
+ os = "linux";
+ compression = "none";
+ load = <0>;
+ entry = <0>;
+ };
+ fdt-1{
+ description = "rk3399-gru-bob.dtb";
+ data = /incbin/("arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dtb");
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+ hash-1{
+ algo = "sha1";
+ };
+ };
+ fdt-2{
+ description = "rk3399-gru-kevin.dtb";
+ data = /incbin/("arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb");
+ type = "flat_dt";
+ arch = "arm64";
+ compression = "none";
+ hash-1{
+ algo = "sha1";
+ };
+ };
+ };
+ configurations {
+ default = "conf-1";
+ conf-1{
+ kernel = "kernel-1";
+ fdt = "fdt-1";
+ };
+ conf-2{
+ kernel = "kernel-1";
+ fdt = "fdt-2";
+ };
+ };
+};
diff --git a/testing/linux-openvfd/APKBUILD b/testing/linux-openvfd/APKBUILD
new file mode 100644
index 00000000000..a6acde6a1b9
--- /dev/null
+++ b/testing/linux-openvfd/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Petr Hodina <phodina@protonmail.com>
+# Maintainer: Petr Hodina <phodina@protonmail.com>
+pkgname=linux-openvfd
+pkgver=0_git20220906
+pkgrel=0
+_gitrev=ac2d94c8f466d6d1d56b5dc818a342b0ce01a750
+pkgdesc="FD628 and similar compatible LED controller driver for linux, service daemon"
+url="https://github.com/arthur-liberman/linux_openvfd"
+makedepends="linux-headers"
+arch="aarch64"
+license="GPL-2.0-or-later"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/arthur-liberman/linux_openvfd/archive/$_gitrev.tar.gz"
+builddir="$srcdir/linux_openvfd-$_gitrev"
+options="!check" # has no test suite
+
+build() {
+ make OpenVFDService
+}
+
+package() {
+ install -Dm755 OpenVFDService -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+340f1102b61e81a126622f91802e11819ffe4ae1ae92542efaa20d2f26faff893bbc1efed9f406c0c6e4f3fcb9d386ce636de242c8677c5486bd27e98b967c64 linux-openvfd-ac2d94c8f466d6d1d56b5dc818a342b0ce01a750.tar.gz
+"
diff --git a/testing/linux-sophgo/APKBUILD b/testing/linux-sophgo/APKBUILD
new file mode 100644
index 00000000000..73cb04ad5e5
--- /dev/null
+++ b/testing/linux-sophgo/APKBUILD
@@ -0,0 +1,150 @@
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+
+_flavor=sophgo
+pkgname=linux-$_flavor
+pkgver=6.1.80_git20240328
+_commit=83ab3eda46e651464f2715455ae66711882be116
+pkgrel=0
+arch=riscv64
+pkgdesc="Linux Sophgo kernel"
+url="https://www.kernel.org"
+depends="initramfs-generator"
+subpackages="$pkgname-dev $pkgname-doc"
+_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 openssl-dev>3 mawk
+ diffutils findutils zstd pahole python3 gcc>=13.1.1_git20230624"
+options="!strip !check"
+license="GPL-2.0-only"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sophgo/linux-riscv/archive/$_commit.tar.gz
+ sophgo.riscv64.config
+ "
+builddir="$srcdir"/linux-riscv-$_commit
+arch=riscv64
+
+build() {
+ unset LDFLAGS CFLAGS CPPFLAGS CXXFLAGS
+ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+ local _builddir="$srcdir/build-$_flavor-$arch"
+
+ mkdir -p "$_builddir"
+ echo "-$pkgrel-$_flavor" > "$_builddir"/localversion-alpine
+ cp "$srcdir"/"$_flavor.$arch.config" "$_builddir"/.config
+ msg "Configuring kernel"
+ make -C "$builddir" \
+ O="$_builddir" \
+ olddefconfig
+
+ msg "Build kernel"
+ cd "$_builddir"
+ make CC="${CC:-gcc}" \
+ AWK="${AWK:-mawk}" \
+ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
+}
+
+package() {
+ depends="$depends linux-firmware-any"
+ local _builddir="$srcdir/build-$_flavor-$arch"
+ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+ cd "$_builddir"
+ local _abi_release="$(make -s kernelrelease)"
+
+ mkdir -p "$pkgdir"/boot "$pkgdir"/lib/modules
+ make modules_install zinstall dtbs_install \
+ INSTALL_MOD_PATH="$pkgdir" \
+ INSTALL_MOD_STRIP=1 \
+ INSTALL_PATH="$pkgdir"/boot \
+ INSTALL_DTBS_PATH="$pkgdir/boot/dtbs-$_flavor"
+
+ rm -f "$pkgdir"/lib/modules/"$_abi_release"/build \
+ "$pkgdir"/lib/modules/"$_abi_release"/source
+ rm -rf "$pkgdir"/lib/firmware
+
+ install -D -m644 include/config/kernel.release \
+ "$pkgdir"/usr/share/kernel/$_flavor/kernel.release
+
+ 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
+}
+
+
+dev() {
+ local _builddir="$srcdir/build-$_flavor-$arch"
+ 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
+ #
+ # 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 -a "$_builddir"/.config "$_builddir"/localversion-alpine \
+ "$dir"/
+
+ make -C "$builddir" \
+ O="$dir" \
+ 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 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 "$builddir"
+ 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 "arch/riscv" -name include -type d -print | while IFS='' read -r folder; do
+ find "$folder" -type f
+ done | sort -u | cpio -pdm "$dir"
+
+ install -Dm644 "$_builddir"/Module.symvers \
+ "$dir"/Module.symvers
+
+ # remove unneeded things
+ msg "Removing documentation..."
+ rm -r "$dir"/Documentation
+ find "$dir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ msg "Removing unneeded arch headers..."
+ for i in "$dir"/arch/*; do
+ if [ "${i##*/}" != riscv ]; 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="
+24a4f4ec9857fcca62b43b0bc62a0ec3b4fb361308fd98075a9f8ba976c10f43add551482a03d27a381b688698fc0a7435d307b015d024c7c18f13d4d040de05 linux-sophgo-6.1.80_git20240328.tar.gz
+c06c0822898247a247bdb6cc9ebe954c1edd15376fe8ffc2c595dfd1cb2e7b63cf52b7a25fc0227b6f9681d546d690134b43e2d3bfb972e6b65696b0ff45e188 sophgo.riscv64.config
+"
diff --git a/testing/linux-sophgo/sophgo.riscv64.config b/testing/linux-sophgo/sophgo.riscv64.config
new file mode 100644
index 00000000000..17f1bc01c3a
--- /dev/null
+++ b/testing/linux-sophgo/sophgo.riscv64.config
@@ -0,0 +1,5540 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/riscv 6.1.72 Kernel Configuration
+#
+CONFIG_CC_VERSION_TEXT="gcc (Alpine 13.2.1_git20231014) 13.2.1 20231014"
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130201
+CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=24100
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=24100
+CONFIG_LLD_VERSION=0
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
+CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+CONFIG_PAHOLE_VERSION=125
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_WATCH_QUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+CONFIG_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# end of IRQ subsystem
+
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_ARCH_CLOCKSOURCE_INIT=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+# end of Timers subsystem
+
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+
+#
+# BPF subsystem
+#
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT is not set
+CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+CONFIG_USERMODE_DRIVER=y
+# CONFIG_BPF_PRELOAD is not set
+# end of BPF subsystem
+
+CONFIG_PREEMPT_BUILD=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+
+#
+# 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=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+# CONFIG_PSI is not set
+# end of CPU/Task time and stats accounting
+
+CONFIG_CPU_ISOLATION=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASKS_TRACE_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+# end of RCU Subsystem
+
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=13
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# end of Scheduler features
+
+CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_GCC11_NO_ARRAY_BOUNDS=y
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
+CONFIG_CGROUPS=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_CGROUP_FAVOR_DYNMODS is not set
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_CGROUP_PIDS=y
+# CONFIG_CGROUP_RDMA is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+# CONFIG_PROC_PID_CPUSET is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_MISC=y
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_TIME_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_SCHED_AUTOGROUP=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+# CONFIG_INITRAMFS_FORCE is not set
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_RD_ZSTD=y
+CONFIG_BOOT_CONFIG=y
+# CONFIG_BOOT_CONFIG_EMBED is not set
+CONFIG_INITRAMFS_PRESERVE_MTIME=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+# CONFIG_EXPERT is not set
+CONFIG_MULTIUSER=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=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_BASE_RELATIVE=y
+CONFIG_KCMP=y
+CONFIG_RSEQ=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# end of Kernel Performance Events And Counters
+
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+# CONFIG_PROFILING is not set
+# end of General setup
+
+CONFIG_64BIT=y
+CONFIG_RISCV=y
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=24
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17
+CONFIG_RISCV_SBI=y
+CONFIG_MMU=y
+CONFIG_PAGE_OFFSET=0xff60000000000000
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=5
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_RISCV_DMA_NONCOHERENT=y
+CONFIG_AS_HAS_INSN=y
+
+#
+# SoC selection
+#
+# CONFIG_SOC_MICROCHIP_POLARFIRE is not set
+CONFIG_SOC_SIFIVE=y
+CONFIG_SOC_STARFIVE=y
+CONFIG_SOC_VIRT=y
+CONFIG_ARCH_SOPHGO=y
+# CONFIG_SOPHGO_MULTI_CHIP_CLOCK_SYNC is not set
+# end of SoC selection
+
+#
+# CPU errata selection
+#
+CONFIG_ERRATA_SIFIVE=y
+CONFIG_ERRATA_SIFIVE_CIP_453=y
+CONFIG_ERRATA_SIFIVE_CIP_1200=y
+CONFIG_ERRATA_THEAD=y
+CONFIG_ERRATA_THEAD_PBMT=y
+CONFIG_ERRATA_THEAD_CMO=y
+CONFIG_ERRATA_THEAD_PMU=y
+# end of CPU errata selection
+
+#
+# Platform type
+#
+# CONFIG_NONPORTABLE is not set
+CONFIG_ARCH_RV64I=y
+# CONFIG_CMODEL_MEDLOW is not set
+CONFIG_CMODEL_MEDANY=y
+CONFIG_MODULE_SECTIONS=y
+CONFIG_SMP=y
+# CONFIG_SCHED_MC is not set
+CONFIG_SCHED_CLUSTER=y
+# CONFIG_SCHED_SMT is not set
+CONFIG_NR_CPUS=64
+CONFIG_HOTPLUG_CPU=y
+CONFIG_TUNE_GENERIC=y
+CONFIG_HIGHMEM=y
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=3
+CONFIG_RISCV_ALTERNATIVE=y
+CONFIG_RISCV_ALTERNATIVE_EARLY=y
+CONFIG_RISCV_ISA_C=y
+CONFIG_RISCV_ISA_SVPBMT=y
+CONFIG_TOOLCHAIN_HAS_ZICBOM=y
+CONFIG_RISCV_ISA_ZICBOM=y
+CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y
+CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y
+CONFIG_FPU=y
+CONFIG_VECTOR=y
+# end of Platform type
+
+#
+# Kernel features
+#
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+CONFIG_SCHED_HRTICK=y
+CONFIG_RISCV_SBI_V01=y
+CONFIG_RISCV_BOOT_SPINWAIT=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_FILE=y
+CONFIG_ARCH_HAS_KEXEC_PURGATORY=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_COMPAT=y
+# end of Kernel features
+
+#
+# Boot options
+#
+CONFIG_CMDLINE="console=ttyS0,115200"
+# CONFIG_CMDLINE_FALLBACK is not set
+CONFIG_CMDLINE_EXTEND=y
+# CONFIG_CMDLINE_FORCE is not set
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+# end of Boot options
+
+CONFIG_PORTABLE=y
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+# 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
+
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
+CONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL=y
+CONFIG_KVM_XFER_TO_GUEST_WORK=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+
+#
+# General architecture-dependent options
+#
+CONFIG_CRASH_CORE=y
+CONFIG_KEXEC_CORE=y
+CONFIG_KEXEC_ELF=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_LTO_NONE=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# end of GCOV-based kernel profiling
+
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_MODULE_SIG=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_ALL=y
+CONFIG_MODULE_SIG_SHA1=y
+# CONFIG_MODULE_SIG_SHA224 is not set
+# CONFIG_MODULE_SIG_SHA256 is not set
+# CONFIG_MODULE_SIG_SHA384 is not set
+# CONFIG_MODULE_SIG_SHA512 is not set
+CONFIG_MODULE_SIG_HASH="sha1"
+# CONFIG_MODULE_COMPRESS_NONE is not set
+CONFIG_MODULE_COMPRESS_GZIP=y
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_COMPRESS_ZSTD is not set
+# CONFIG_MODULE_DECOMPRESS is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+# CONFIG_BLK_WBT is not set
+# CONFIG_BLK_CGROUP_IOLATENCY is not set
+# CONFIG_BLK_CGROUP_IOCOST is not set
+# CONFIG_BLK_CGROUP_IOPRIO is not set
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIX_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_CMDLINE_PARTITION=y
+# end of Partition Types
+
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=m
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+# end of IO Schedulers
+
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_MMIOWB=y
+CONFIG_MMIOWB=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_FREEZER=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_ARCH_HAS_BINFMT_FLAT=y
+# CONFIG_BINFMT_FLAT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_ZPOOL=y
+CONFIG_SWAP=y
+CONFIG_ZSWAP=y
+# CONFIG_ZSWAP_DEFAULT_ON is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
+CONFIG_ZSMALLOC=y
+# CONFIG_ZSMALLOC_STAT is not set
+
+#
+# SLAB allocator options
+#
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# end of SLAB allocator options
+
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+# CONFIG_SPARSEMEM_VMEMMAP is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_PAGE_REPORTING=y
+CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_BOUNCE=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_THP_SWAP=y
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_FRONTSWAP=y
+# CONFIG_CMA is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ZONE_DMA32=y
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_PERCPU_STATS is not set
+
+#
+# GUP_TEST needs to have DEBUG_FS enabled
+#
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_KMAP_LOCAL=y
+CONFIG_SECRETMEM=y
+# CONFIG_ANON_VMA_NAME is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+# CONFIG_LRU_GEN_STATS is not set
+CONFIG_LOCK_MM_AND_FIND_VMA=y
+
+#
+# Data Access Monitoring
+#
+# CONFIG_DAMON is not set
+# end of Data Access Monitoring
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_REDIRECT=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_DIAG=m
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_UNIX_DIAG=m
+CONFIG_TLS=m
+# CONFIG_TLS_DEVICE is not set
+# CONFIG_TLS_TOE is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ESP=m
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_XDP_SOCKETS=y
+# CONFIG_XDP_SOCKETS_DIAG is not set
+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=y
+# CONFIG_IP_PIMSM_V1 is not set
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+# CONFIG_INET_ESP_OFFLOAD is not set
+# CONFIG_INET_ESPINTCP is not set
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TABLE_PERTURB_ORDER=16
+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 is not set
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_BBR=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+# CONFIG_INET6_ESP_OFFLOAD is not set
+# CONFIG_INET6_ESPINTCP is not set
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_ILA=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=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 is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
+# CONFIG_NETLABEL is not set
+CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
+CONFIG_MPTCP_IPV6=y
+# CONFIG_NETWORK_SECMARK is not set
+# 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_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_FAMILY_ARP=y
+# CONFIG_NETFILTER_NETLINK_HOOK is not set
+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_SYSLOG=m
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+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=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+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=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=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_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+# CONFIG_NFT_NUMGEN is not set
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=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_OBJREF=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB=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_NF_DUP_NETDEV=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 is not set
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XTABLES_COMPAT=y
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+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_HL=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_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=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=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=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_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=m
+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=m
+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=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
+# 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=m
+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=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+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=y
+
+#
+# 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=m
+CONFIG_IP_VS_OVF=m
+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_TWOS=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_TABLES_IPV4=y
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_LOG_ARP=m
+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=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_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=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_DUP_IPV6=m
+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=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
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_TABLES_BRIDGE=m
+# CONFIG_NFT_BRIDGE_META is not set
+CONFIG_NFT_BRIDGE_REJECT=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=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+# end of DCCP CCIDs Configuration
+
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_RDS=m
+# CONFIG_RDS_TCP is not set
+# CONFIG_RDS_DEBUG is not set
+CONFIG_TIPC=m
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_TIPC_CRYPTO=y
+CONFIG_TIPC_DIAG=m
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER 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_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+# CONFIG_BRIDGE_MRP is not set
+# CONFIG_BRIDGE_CFM is not set
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_PHONET=m
+CONFIG_6LOWPAN=m
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
+CONFIG_IEEE802154=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+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
+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=m
+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=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_SCH_ETS=m
+# CONFIG_NET_SCH_DEFAULT is not set
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=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_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_MATCHALL=m
+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 is not set
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+# CONFIG_NET_ACT_MPLS is not set
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+# CONFIG_NET_ACT_CTINFO is not set
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+# CONFIG_NET_ACT_CT is not set
+# CONFIG_NET_ACT_GATE is not set
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+# CONFIG_NET_TC_SKB_EXT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=m
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+CONFIG_NETLINK_DIAG=y
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_MPLS_ROUTING=m
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_NET_NSH=m
+# CONFIG_HSR is not set
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_QRTR=m
+# CONFIG_QRTR_SMD is not set
+# CONFIG_QRTR_TUN is not set
+CONFIG_NET_NCSI=y
+# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
+# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+# CONFIG_BPF_STREAM_PARSER is not set
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+# 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_MCTP is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_FD=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+CONFIG_NET_IFE=m
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_NET_DEVLINK=y
+CONFIG_PAGE_POOL=y
+# CONFIG_PAGE_POOL_STATS is not set
+CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIEAER is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+# CONFIG_PCIE_PTM is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_STUB is not set
+CONFIG_PCI_ECAM=y
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=4
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PCI controller drivers
+#
+# CONFIG_PCI_FTPCI100 is not set
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCIE_XILINX=y
+# CONFIG_PCIE_MICROCHIP_HOST is not set
+
+#
+# DesignWare PCI Core Support
+#
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+# CONFIG_PCI_MESON is not set
+CONFIG_PCIE_FU740=y
+# end of DesignWare PCI Core Support
+
+#
+# Mobiveil PCIe Core Support
+#
+# end of Mobiveil PCIe Core Support
+
+#
+# Cadence PCIe controllers support
+#
+CONFIG_PCIE_CADENCE=y
+CONFIG_PCIE_CADENCE_HOST=y
+CONFIG_PCIE_CADENCE_PLAT=y
+CONFIG_PCIE_CADENCE_PLAT_HOST=y
+CONFIG_PCIE_CADENCE_SOPHGO=y
+# CONFIG_PCI_J721E_HOST is not set
+# end of Cadence PCIe controllers support
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_CXL_BUS is not set
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_XZ=y
+# CONFIG_FW_LOADER_COMPRESS_ZSTD is not set
+# CONFIG_FW_UPLOAD is not set
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
+CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP_MMIO=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_ARCH_NUMA=y
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_MOXTET is not set
+# CONFIG_MHI_BUS is not set
+# CONFIG_MHI_BUS_EP is not set
+# end of Bus devices
+
+# CONFIG_CONNECTOR is not set
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# end of ARM System Control and Management Interface Protocol
+
+# CONFIG_SYSFB_SIMPLEFB is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+# CONFIG_EFI_ZBOOT is not set
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+CONFIG_EFI_EARLYCON=y
+# CONFIG_EFI_DISABLE_RUNTIME is not set
+# CONFIG_EFI_COCO_SECRET is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
+# CONFIG_GNSS is not set
+CONFIG_MTD=m
+CONFIG_MTD_TESTS=m
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_AR7_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_SM_FTL=m
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# 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=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+# end of RAM/ROM/Flash chip drivers
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_PHYSMAP_OF is not set
+# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_PLATRAM=m
+# end of Mapping drivers for chip access
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+CONFIG_MTD_PMC551_BUGFIX=y
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_DATAFLASH=m
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DATAFLASH_OTP is not set
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_MCHP48L640 is not set
+# CONFIG_MTD_SST25L is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+# end of Self-contained MTD device drivers
+
+#
+# NAND
+#
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_ONENAND=m
+# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
+# CONFIG_MTD_ONENAND_GENERIC is not set
+# CONFIG_MTD_ONENAND_OTP is not set
+# CONFIG_MTD_ONENAND_2X_PROGRAM is not set
+# CONFIG_MTD_RAW_NAND is not set
+CONFIG_MTD_SPI_NAND=m
+
+#
+# ECC engine support
+#
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC=y
+CONFIG_MTD_NAND_ECC_SW_BCH=y
+# CONFIG_MTD_NAND_ECC_MXIC is not set
+# end of ECC engine support
+# end of NAND
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+# end of LPDDR & LPDDR2 PCM memory drivers
+
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
+CONFIG_SPI_SOPHGO_SPIFMC=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_BLOCK 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_RESERVED_MEM=y
+# CONFIG_OF_OVERLAY is not set
+CONFIG_OF_NUMA=y
+CONFIG_OF_DMA_DEFAULT_COHERENT=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+CONFIG_CDROM=y
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+CONFIG_ZRAM=m
+CONFIG_ZRAM_DEF_COMP_LZORLE=y
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+CONFIG_ZRAM_DEF_COMP="lzo-rle"
+# CONFIG_ZRAM_WRITEBACK is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+CONFIG_VIRTIO_BLK=m
+CONFIG_BLK_DEV_RBD=m
+# CONFIG_BLK_DEV_UBLK is not set
+
+#
+# NVME Support
+#
+CONFIG_NVME_CORE=m
+CONFIG_BLK_DEV_NVME=m
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVME_VERBOSE_ERRORS=y
+CONFIG_NVME_HWMON=y
+CONFIG_NVME_FABRICS=m
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_AUTH is not set
+CONFIG_NVME_TARGET=m
+# CONFIG_NVME_TARGET_PASSTHRU is not set
+CONFIG_NVME_TARGET_LOOP=m
+# CONFIG_NVME_TARGET_FC is not set
+# CONFIG_NVME_TARGET_TCP is not set
+# CONFIG_NVME_TARGET_AUTH is not set
+# end of NVME Support
+
+#
+# Misc devices
+#
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO 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_DW_XDATA_PCIE is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_HISI_HIKEY_USB is not set
+# CONFIG_OPEN_DICE is not set
+CONFIG_VCPU_STALL_DETECTOR=m
+# 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
+
+# CONFIG_CB710_CORE is not set
+
+#
+# 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
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_BCM_VK is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_HABANA_AI is not set
+# CONFIG_UACCE is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_GP_PCI1XXXX is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI_COMMON=y
+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=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_BLK_DEV_BSG=y
+# 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=y
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_ISCSI_BOOT_SYSFS is not set
+# CONFIG_SCSI_CXGB3_ISCSI is not set
+# CONFIG_SCSI_CXGB4_ISCSI is not set
+# CONFIG_SCSI_BNX2_ISCSI is not set
+# CONFIG_BE2ISCSI is not set
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_HPSA is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_3W_SAS is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_AIC94XX is not set
+# CONFIG_SCSI_MVSAS is not set
+# CONFIG_SCSI_MVUMI is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_ARCMSR is not set
+# CONFIG_SCSI_ESAS2R is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_MEGARAID_SAS is not set
+# CONFIG_SCSI_MPT3SAS is not set
+# CONFIG_SCSI_MPT2SAS is not set
+# CONFIG_SCSI_MPI3MR is not set
+# CONFIG_SCSI_SMARTPQI is not set
+# CONFIG_SCSI_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_MYRB is not set
+# CONFIG_SCSI_MYRS is not set
+# CONFIG_SCSI_SNIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_FDOMAIN_PCI is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_STEX is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_ISCSI is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_AM53C974 is not set
+# CONFIG_SCSI_WD719X is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_PMCRAID is not set
+# CONFIG_SCSI_PM8001 is not set
+CONFIG_SCSI_VIRTIO=m
+# CONFIG_SCSI_DH is not set
+# end of SCSI device support
+
+CONFIG_ATA=m
+CONFIG_SATA_HOST=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_FORCE=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_MOBILE_LPM_POLICY=0
+CONFIG_SATA_AHCI_PLATFORM=m
+# CONFIG_AHCI_DWC is not set
+# CONFIG_AHCI_CEVA is not set
+# CONFIG_AHCI_QORIQ is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_SATA_ACARD_AHCI is not set
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_NV is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_ATP867X is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RDC is not set
+# CONFIG_PATA_SCH is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_TOSHIBA is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_OF_PLATFORM is not set
+# CONFIG_PATA_RZ1000 is not set
+
+#
+# Generic fallback / legacy drivers
+#
+# CONFIG_ATA_GENERIC is not set
+# CONFIG_PATA_LEGACY is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_IFB=m
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
+# CONFIG_GTP is not set
+# CONFIG_AMT is not set
+CONFIG_MACSEC=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_TUN=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+CONFIG_NET_VRF=m
+# CONFIG_ARCNET is not set
+# CONFIG_ATM_DRIVERS is not set
+CONFIG_ETHERNET=y
+CONFIG_MDIO=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_ALTERA_TSE 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_ASIX is not set
+# CONFIG_NET_VENDOR_ATHEROS is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_MACB=m
+CONFIG_MACB_PCI=m
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_DAVICOM is not set
+# CONFIG_DNET 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_ENGLEDER is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+CONFIG_NET_VENDOR_FUNGIBLE=y
+CONFIG_FUN_CORE=m
+CONFIG_FUN_ETH=m
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+# CONFIG_E1000 is not set
+CONFIG_E1000E=m
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_IXGB is not set
+CONFIG_IXGBE=m
+CONFIG_IXGBE_HWMON=y
+# CONFIG_IXGBEVF is not set
+# CONFIG_I40E is not set
+# CONFIG_I40EVF is not set
+# CONFIG_ICE is not set
+# CONFIG_FM10K is not set
+# CONFIG_IGC is not set
+# CONFIG_NET_VENDOR_WANGXUN is not set
+# CONFIG_JME is not set
+# CONFIG_NET_VENDOR_ADI is not set
+# CONFIG_NET_VENDOR_LITEX 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=y
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENCX24J600 is not set
+# CONFIG_LAN743X is not set
+# CONFIG_LAN966X_SWITCH is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_MICROSOFT is not set
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETERION 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_ETHOC=m
+# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
+# CONFIG_NET_VENDOR_PENSANDO 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_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+CONFIG_R8169=m
+# 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_NET_VENDOR_SOCIONEXT is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STMMAC_PLATFORM=m
+# CONFIG_DWMAC_DWC_QOS_ETH is not set
+CONFIG_DWMAC_GENERIC=m
+# CONFIG_DWMAC_INTEL_PLAT is not set
+# CONFIG_STMMAC_PCI is not set
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_VERTEXCOM 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_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
+CONFIG_FIXED_PHY=y
+# CONFIG_SFP is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_ADIN_PHY is not set
+# CONFIG_ADIN1100_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+# CONFIG_AX88796B_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MARVELL_88X2222_PHY is not set
+# CONFIG_MAXLINEAR_GPHY is not set
+# CONFIG_MEDIATEK_GE_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_MICROCHIP_PHY is not set
+# CONFIG_MICROCHIP_T1_PHY is not set
+CONFIG_MICROSEMI_PHY=m
+# CONFIG_MOTORCOMM_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_C45_TJA11XX_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+CONFIG_REALTEK_PHY=m
+# CONFIG_RENESAS_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_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_DP83869_PHY is not set
+# CONFIG_DP83TD510_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PSE_CONTROLLER is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_THUNDER is not set
+
+#
+# MDIO Multiplexers
+#
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+
+#
+# PCS device drivers
+#
+CONFIG_PCS_XPCS=m
+# end of PCS device drivers
+
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# Host-side USB support is needed for USB Network Adapter support
+#
+CONFIG_USB_NET_DRIVERS=m
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_RTL8152 is not set
+# CONFIG_USB_LAN78XX is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_IPHETH is not set
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+# CONFIG_ADM8211 is not set
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+# CONFIG_ATH5K is not set
+# CONFIG_ATH5K_PCI is not set
+# CONFIG_ATH9K is not set
+# CONFIG_ATH9K_HTC is not set
+# CONFIG_CARL9170 is not set
+# CONFIG_ATH6KL is not set
+# CONFIG_AR5523 is not set
+# CONFIG_WIL6210 is not set
+# CONFIG_ATH10K is not set
+# CONFIG_WCN36XX is not set
+# CONFIG_ATH11K is not set
+CONFIG_WLAN_VENDOR_ATMEL=y
+# CONFIG_ATMEL is not set
+# CONFIG_AT76C50X_USB is not set
+CONFIG_WLAN_VENDOR_BROADCOM=y
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMSMAC is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWLWIFI is not set
+CONFIG_WLAN_VENDOR_INTERSIL=y
+# CONFIG_HOSTAP is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_MWL8K is not set
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+# CONFIG_MT7601U is not set
+CONFIG_MT76_CORE=m
+CONFIG_MT76_LEDS=y
+CONFIG_MT76_CONNAC_LIB=m
+# CONFIG_MT76x0U is not set
+# CONFIG_MT76x0E is not set
+# CONFIG_MT76x2E is not set
+# CONFIG_MT76x2U is not set
+# CONFIG_MT7603E is not set
+# CONFIG_MT7615E is not set
+# CONFIG_MT7663U is not set
+# CONFIG_MT7663S is not set
+# CONFIG_MT7915E is not set
+CONFIG_MT7921_COMMON=m
+CONFIG_MT7921E=m
+# CONFIG_MT7921S is not set
+# CONFIG_MT7921U is not set
+CONFIG_WLAN_VENDOR_MICROCHIP=y
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
+# CONFIG_WLAN_VENDOR_PURELIFI is not set
+CONFIG_WLAN_VENDOR_RALINK=y
+# CONFIG_RT2X00 is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_RTL_CARDS is not set
+# CONFIG_RTL8XXXU is not set
+# CONFIG_RTW88 is not set
+# CONFIG_RTW89 is not set
+CONFIG_WLAN_VENDOR_RSI=y
+# CONFIG_RSI_91X is not set
+# CONFIG_WLAN_VENDOR_SILABS is not set
+CONFIG_WLAN_VENDOR_ST=y
+# CONFIG_CW1200 is not set
+CONFIG_WLAN_VENDOR_TI=y
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX is not set
+# CONFIG_WL18XX is not set
+# CONFIG_WLCORE is not set
+CONFIG_WLAN_VENDOR_ZYDAS=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_ZD1211RW is not set
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+# CONFIG_QTNFMAC_PCIE is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+# CONFIG_VIRT_WIFI is not set
+# CONFIG_WAN is not set
+CONFIG_IEEE802154_DRIVERS=m
+# CONFIG_IEEE802154_FAKELB is not set
+# CONFIG_IEEE802154_AT86RF230 is not set
+# CONFIG_IEEE802154_MRF24J40 is not set
+# CONFIG_IEEE802154_CC2520 is not set
+# CONFIG_IEEE802154_ATUSB is not set
+# CONFIG_IEEE802154_ADF7242 is not set
+# CONFIG_IEEE802154_CA8210 is not set
+# CONFIG_IEEE802154_MCR20A is not set
+# CONFIG_IEEE802154_HWSIM is not set
+
+#
+# Wireless WAN
+#
+# CONFIG_WWAN is not set
+# end of Wireless WAN
+
+# CONFIG_VMXNET3 is not set
+CONFIG_NET_FAILOVER=m
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=m
+CONFIG_INPUT_FF_MEMLESS=m
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+CONFIG_INPUT_VIVALDIFMAP=y
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=m
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_GOLDFISH_EVENTS is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_CYPRESS_SF is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB 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=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_AMBAKMI is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO 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=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LDISC_AUTOLOAD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_RT288X is not set
+# CONFIG_SERIAL_8250_PERICOM is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+# CONFIG_SERIAL_AMBA_PL011 is not set
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+# 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_JSM is not set
+CONFIG_SERIAL_SIFIVE=y
+CONFIG_SERIAL_SIFIVE_CONSOLE=y
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_GOLDFISH_TTY is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_RISCV_SBI=y
+# CONFIG_RPMSG_TTY is not set
+# CONFIG_SERIAL_DEV_BUS is not set
+CONFIG_VIRTIO_CONSOLE=y
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_HW_RANDOM_BA431 is not set
+CONFIG_HW_RANDOM_VIRTIO=m
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+# CONFIG_TCG_TPM is not set
+# CONFIG_XILLYBUS is not set
+# CONFIG_XILLYUSB is not set
+CONFIG_RANDOM_TRUST_CPU=y
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
+# end of Character devices
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_CP2615 is not set
+# CONFIG_I2C_PCI1XXXX 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
+#
+CONFIG_I2C_VIRTIO=m
+# 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_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_CADENCE_XSPI is not set
+# CONFIG_SPI_DESIGNWARE is not set
+# CONFIG_SPI_NXP_FLEXSPI is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_MICROCHIP_CORE is not set
+# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+CONFIG_SPI_SIFIVE=y
+# 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
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX 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
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_PINCTRL_CY8C95X0 is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_SX150X is not set
+
+#
+# Renesas pinctrl drivers
+#
+# end of Renesas pinctrl drivers
+
+CONFIG_PINCTRL_STARFIVE_JH7100=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_GPIO_GENERIC=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=m
+# CONFIG_GPIO_EXAR is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+CONFIG_GPIO_GENERIC_PLATFORM=y
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_PL061 is not set
+CONFIG_GPIO_SIFIVE=y
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# 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_PCA9570 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
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI 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
+
+#
+# Virtual GPIO drivers
+#
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_VIRTIO=m
+# CONFIG_GPIO_SIM is not set
+# end of Virtual GPIO drivers
+
+# CONFIG_W1 is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+# CONFIG_SYSCON_REBOOT_MODE is not set
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+# CONFIG_PDA_POWER is not set
+# CONFIG_IP5XXX_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_CW2015 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SAMSUNG_SDI is not set
+CONFIG_BATTERY_SBS=m
+CONFIG_CHARGER_SBS=m
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_LTC4162L is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MAX77976 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ2515X is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
+# CONFIG_CHARGER_BQ256XX is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_BATTERY_RT5033 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_BATTERY_UG3105 is not set
+CONFIG_HWMON=y
+# 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_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM1177 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_AHT10 is not set
+# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
+# CONFIG_SENSORS_CORSAIR_PSU is not set
+# CONFIG_SENSORS_DRIVETEMP is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S 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_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC2992 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_MAX127 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_MAX31730 is not set
+# CONFIG_SENSORS_MAX31760 is not set
+# CONFIG_SENSORS_MAX6620 is not set
+# CONFIG_SENSORS_MAX6621 is not set
+# CONFIG_SENSORS_MAX6639 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_TPS23861 is not set
+# CONFIG_SENSORS_MR75203 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=m
+# 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_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775_I2C is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
+# CONFIG_SENSORS_NZXT_SMART2 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+CONFIG_SENSORS_PWM_FAN=m
+# CONFIG_SENSORS_SBTSI is not set
+# CONFIG_SENSORS_SBRMI is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHT4x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC2305 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_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_INA238 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 is not set
+# CONFIG_SENSORS_TMP464 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 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=y
+# CONFIG_THERMAL_NETLINK is not set
+# CONFIG_THERMAL_STATISTICS is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+# CONFIG_THERMAL_WRITABLE_TRIPS is not set
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
+CONFIG_THERMAL_GOV_STEP_WISE=y
+# CONFIG_THERMAL_GOV_BANG_BANG is not set
+# CONFIG_THERMAL_GOV_USER_SPACE is not set
+# CONFIG_CPU_THERMAL is not set
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_THERMAL_MMIO is not set
+# CONFIG_WATCHDOG 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_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO 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_MAX77714 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_MT6360 is not set
+# CONFIG_MFD_MT6370 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_OCELOT is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_NTXEC is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_UCB1400_CORE is not set
+# CONFIG_MFD_SY7636A is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT4831 is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RT5120 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_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# 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_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_VX855 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_BD71828 is not set
+# CONFIG_MFD_ROHM_BD957XMUF is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_ATC260X_I2C is not set
+# CONFIG_MFD_QCOM_PM8008 is not set
+# CONFIG_MFD_INTEL_M10_BMC is not set
+# CONFIG_MFD_RSMU_I2C is not set
+# CONFIG_MFD_RSMU_SPI is not set
+# end of Multifunction device drivers
+
+# CONFIG_REGULATOR is not set
+# CONFIG_RC_CORE is not set
+
+#
+# CEC support
+#
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+# end of CEC support
+
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_APERTURE_HELPERS=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_DP_AUX_BUS=m
+CONFIG_DRM_DISPLAY_HELPER=m
+CONFIG_DRM_DISPLAY_DP_HELPER=y
+CONFIG_DRM_DISPLAY_HDMI_HELPER=y
+# CONFIG_DRM_DP_AUX_CHARDEV is not set
+# CONFIG_DRM_DP_CEC is not set
+CONFIG_DRM_TTM=m
+CONFIG_DRM_BUDDY=m
+CONFIG_DRM_VRAM_HELPER=m
+CONFIG_DRM_TTM_HELPER=m
+CONFIG_DRM_GEM_SHMEM_HELPER=m
+CONFIG_DRM_SCHED=m
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_USERPTR is not set
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_CIK=y
+# CONFIG_DRM_AMDGPU_USERPTR is not set
+
+#
+# ACP (Audio CoProcessor) Configuration
+#
+# CONFIG_DRM_AMD_ACP is not set
+# end of ACP (Audio CoProcessor) Configuration
+
+#
+# Display Engine Configuration
+#
+CONFIG_DRM_AMD_DC=y
+CONFIG_DRM_AMD_DC_DCN=y
+# CONFIG_DRM_AMD_DC_HDCP is not set
+# CONFIG_DRM_AMD_DC_SI is not set
+# end of Display Engine Configuration
+
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+# CONFIG_NOUVEAU_DEBUG_MMU is not set
+# CONFIG_NOUVEAU_DEBUG_PUSH is not set
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_VGEM=m
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_RCAR_DW_HDMI is not set
+# CONFIG_DRM_RCAR_USE_LVDS is not set
+# CONFIG_DRM_RCAR_USE_MIPI_DSI is not set
+CONFIG_DRM_QXL=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_SIMPLE is not set
+CONFIG_DRM_PANEL_EDP=m
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
+# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
+# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TPG110 is not set
+# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
+# CONFIG_DRM_CHRONTEL_CH7033 is not set
+# CONFIG_DRM_DISPLAY_CONNECTOR is not set
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NWL_MIPI_DSI is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_PARADE_PS8640 is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+# CONFIG_DRM_ANALOGIX_ANX6345 is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
+# end of Display Interface Bridges
+
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_LOGICVC is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_GM12U320 is not set
+# CONFIG_DRM_PANEL_MIPI_DBI is not set
+CONFIG_DRM_SIMPLEDRM=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9163 is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
+CONFIG_DRM_SMI=m
+CONFIG_DRM_SMI_HDMI=y
+# CONFIG_DRM_SMI_PRIME is not set
+CONFIG_DRM_LEGACY=y
+# CONFIG_DRM_TDFX is not set
+# CONFIG_DRM_R128 is not set
+# CONFIG_DRM_MGA is not set
+# CONFIG_DRM_VIA is not set
+# CONFIG_DRM_SAVAGE is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m
+CONFIG_DRM_NOMODESET=y
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_CFB_FILLRECT=m
+CONFIG_FB_CFB_COPYAREA=m
+CONFIG_FB_CFB_IMAGEBLIT=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_BACKLIGHT=m
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_EFI is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_GOLDFISH is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_SIMPLE is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+# CONFIG_BACKLIGHT_KTD253 is not set
+# CONFIG_BACKLIGHT_PWM is not set
+# CONFIG_BACKLIGHT_QCOM_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+# CONFIG_BACKLIGHT_LP855X is not set
+# CONFIG_BACKLIGHT_GPIO is not set
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_BACKLIGHT_LED is not set
+# end of Backlight & LCD device support
+
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
+# end of Console display driver support
+
+# CONFIG_LOGO is not set
+# end of Graphics support
+
+CONFIG_SOUND=m
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_CTL_FAST_LOOKUP=y
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_CTL_INPUT_VALIDATION is not set
+CONFIG_SND_VMASTER=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+CONFIG_SND_ENS1370=m
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+# end of HD-Audio
+
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+# CONFIG_SND_USB_CAIAQ_INPUT is not set
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
+# CONFIG_SND_SOC_ADI is not set
+CONFIG_SND_SOC_AMD_ACP=m
+# CONFIG_SND_SOC_AMD_CZ_RT5645_MACH is not set
+# CONFIG_SND_AMD_ACP_CONFIG is not set
+# CONFIG_SND_ATMEL_SOC is not set
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
+# CONFIG_SND_SOC_FSL_RPMSG is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# end of SoC Audio for Freescale CPUs
+
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# end of STMicroelectronics STM32 SOC audio support
+
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+CONFIG_SND_SOC_AC97_CODEC=m
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4375 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_AW8738 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS35L41_SPI is not set
+# CONFIG_SND_SOC_CS35L41_I2C is not set
+# CONFIG_SND_SOC_CS35L45_SPI is not set
+# CONFIG_SND_SOC_CS35L45_I2C is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS42L83 is not set
+# CONFIG_SND_SOC_CS4234 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_CX2072X is not set
+# CONFIG_SND_SOC_DA7213 is not set
+# CONFIG_SND_SOC_DMIC is not set
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES7241 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8326 is not set
+# CONFIG_SND_SOC_ES8328_I2C is not set
+# CONFIG_SND_SOC_ES8328_SPI is not set
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_HDA is not set
+# CONFIG_SND_SOC_ICS43432 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98088 is not set
+# CONFIG_SND_SOC_MAX98357A is not set
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98520 is not set
+# CONFIG_SND_SOC_MAX98373_I2C is not set
+# CONFIG_SND_SOC_MAX98390 is not set
+# CONFIG_SND_SOC_MAX98396 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3060_I2C is not set
+# CONFIG_SND_SOC_PCM3060_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_RK3328 is not set
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_RT5640 is not set
+# CONFIG_SND_SOC_RT5659 is not set
+# CONFIG_SND_SOC_RT9120 is not set
+# CONFIG_SND_SOC_SGTL5000 is not set
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIMPLE_MUX is not set
+# CONFIG_SND_SOC_SPDIF is not set
+# CONFIG_SND_SOC_SRC4XXX_I2C is not set
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2518 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2764 is not set
+# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS2780 is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS5805M is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TFA989X is not set
+# CONFIG_SND_SOC_TLV320ADC3XXX is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+# CONFIG_SND_SOC_TS3A227E is not set
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731_I2C is not set
+# CONFIG_SND_SOC_WM8731_SPI is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8940 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZL38060 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_NAU8315 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8821 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
+# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
+# end of CODEC drivers
+
+# CONFIG_SND_SIMPLE_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
+# CONFIG_SND_TEST_COMPONENT is not set
+CONFIG_SND_VIRTIO=m
+CONFIG_AC97_BUS=m
+
+#
+# HID support
+#
+CONFIG_HID=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=m
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELAN is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_VIVALDI is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+CONFIG_HID_UCLOGIC=m
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_VRC2 is not set
+# CONFIG_HID_XIAOMI is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LETSKETCH is not set
+CONFIG_HID_LOGITECH=m
+# CONFIG_HID_LOGITECH_DJ is not set
+# CONFIG_HID_LOGITECH_HIDPP is not set
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+CONFIG_HID_MAYFLASH=m
+# CONFIG_HID_MEGAWORLD_FF is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+CONFIG_HID_NINTENDO=m
+# CONFIG_NINTENDO_FF is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PXRC is not set
+# CONFIG_HID_RAZER is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SEMITEK is not set
+# CONFIG_HID_SIGMAMICRO is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_TOPRE is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_U2FZERO is not set
+CONFIG_HID_WACOM=m
+CONFIG_HID_WIIMOTE=m
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=m
+# CONFIG_HID_PID is not set
+CONFIG_USB_HIDDEV=y
+# end of USB HID support
+
+#
+# I2C HID support
+#
+# CONFIG_I2C_HID_OF is not set
+# CONFIG_I2C_HID_OF_ELAN is not set
+# CONFIG_I2C_HID_OF_GOODIX is not set
+# end of I2C HID support
+# end of HID support
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=m
+# CONFIG_USB_LED_TRIG is not set
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_USB_CONN_GPIO is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=m
+CONFIG_USB_PCI=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_FEW_INIT_RETRIES is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+# CONFIG_USB_MON is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_DBGCAP=y
+CONFIG_USB_XHCI_PCI=m
+# CONFIG_USB_XHCI_PCI_RENESAS is not set
+CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=m
+# CONFIG_USB_EHCI_FSL is not set
+CONFIG_USB_EHCI_HCD_PLATFORM=m
+# 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=m
+CONFIG_USB_OHCI_HCD_PCI=m
+CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_UHCI_HCD=m
+# 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 is not set
+# 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=m
+# 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=m
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_USB_CDNS_SUPPORT is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_DWC2=m
+CONFIG_USB_DWC2_HOST=y
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PCI is not set
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS 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_APPLE_MFI_FASTCHARGE 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
+# CONFIG_USB_ONBOARD_HUB is not set
+# CONFIG_USB_ATM 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=m
+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_ARMMMCI is not set
+CONFIG_MMC_SDHCI=m
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=m
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_TIFM_SD is not set
+CONFIG_MMC_SPI=y
+CONFIG_MMC_SDHCI_SOPHGO=m
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+# CONFIG_MMC_DW 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_HSQ is not set
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_SCSI_UFSHCD 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_CLASS_MULTICOLOR is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_AW2013 is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_EL15203000 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 is not set
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP50XX is not set
+# CONFIG_LEDS_LP55XX_COMMON 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_PWM 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
+# CONFIG_LEDS_TI_LMU_COMMON is not set
+
+#
+# Flash and Torch LED drivers
+#
+
+#
+# RGB LED drivers
+#
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+# CONFIG_LEDS_TRIGGER_ONESHOT is not set
+# CONFIG_LEDS_TRIGGER_DISK is not set
+# CONFIG_LEDS_TRIGGER_MTD is not set
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
+# CONFIG_LEDS_TRIGGER_NETDEV is not set
+# CONFIG_LEDS_TRIGGER_PATTERN is not set
+# CONFIG_LEDS_TRIGGER_AUDIO is not set
+# CONFIG_LEDS_TRIGGER_TTY is not set
+
+#
+# Simple LED drivers
+#
+CONFIG_ACCESSIBILITY=y
+# CONFIG_A11Y_BRAILLE_CONSOLE is not set
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTSA is not set
+# CONFIG_SPEAKUP_SYNTH_APOLLO is not set
+# CONFIG_SPEAKUP_SYNTH_AUDPTR is not set
+# CONFIG_SPEAKUP_SYNTH_BNS is not set
+# CONFIG_SPEAKUP_SYNTH_DECTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_LTLK is not set
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+# CONFIG_SPEAKUP_SYNTH_SPKOUT is not set
+# CONFIG_SPEAKUP_SYNTH_TXPRT is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# end of Speakup console speech
+
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_SUPPORT=y
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABEOZ9 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_NCT3018Y is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF85363 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV3032 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_SD3078 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_EFI is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+CONFIG_RTC_DRV_GOLDFISH=y
+# CONFIG_RTC_DRV_ASTBMC is not set
+# CONFIG_DMADEVICES is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_UDMABUF is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+# CONFIG_DMABUF_HEAPS is not set
+# CONFIG_DMABUF_SYSFS_STATS is not set
+# end of DMABUF options
+
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+CONFIG_VIRT_DRIVERS=y
+CONFIG_VIRTIO_ANCHOR=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_PCI_LIB=m
+CONFIG_VIRTIO_PCI_LIB_LEGACY=m
+CONFIG_VIRTIO_MENU=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_PCI_LEGACY=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VIRTIO_DMA_SHARED_BUFFER=m
+# CONFIG_VDPA is not set
+CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST=m
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_NET=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_COMEDI is not set
+CONFIG_STAGING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_RTL8192U is not set
+CONFIG_RTLLIB=m
+CONFIG_RTLLIB_CRYPTO_CCMP=m
+CONFIG_RTLLIB_CRYPTO_TKIP=m
+CONFIG_RTLLIB_CRYPTO_WEP=m
+CONFIG_RTL8192E=m
+# CONFIG_RTL8723BS is not set
+CONFIG_R8712U=m
+CONFIG_R8188EU=m
+# CONFIG_RTS5208 is not set
+# CONFIG_VT6655 is not set
+# CONFIG_VT6656 is not set
+# CONFIG_FB_SM750 is not set
+# CONFIG_STAGING_MEDIA is not set
+# CONFIG_STAGING_BOARD is not set
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_FB_TFT is not set
+# CONFIG_KS7010 is not set
+# CONFIG_PI433 is not set
+# CONFIG_XIL_AXIS_FIFO is not set
+# CONFIG_FIELDBUS_DEV is not set
+# CONFIG_QLGE is not set
+# CONFIG_VME_BUS is not set
+CONFIG_GOLDFISH=y
+# CONFIG_GOLDFISH_PIPE is not set
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+# CONFIG_LMK04832 is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_RS9_PCIE is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_VC7 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+CONFIG_CLK_ANALOGBITS_WRPLL_CLN28HPC=y
+CONFIG_CLK_SIFIVE=y
+CONFIG_CLK_SIFIVE_PRCI=y
+CONFIG_CLK_STARFIVE_JH7100=y
+CONFIG_CLK_STARFIVE_JH7100_AUDIO=m
+# CONFIG_XILINX_VCU is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_DW_APB_TIMER=y
+CONFIG_DW_APB_TIMER_OF=y
+CONFIG_RISCV_TIMER=y
+# CONFIG_MICROCHIP_PIT64B is not set
+# end of Clock Source drivers
+
+# CONFIG_MAILBOX is not set
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+# end of Generic IOMMU Pagetable Support
+
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+
+#
+# Remoteproc drivers
+#
+# CONFIG_REMOTEPROC is not set
+# end of Remoteproc drivers
+
+#
+# Rpmsg drivers
+#
+CONFIG_RPMSG=m
+CONFIG_RPMSG_CHAR=m
+# CONFIG_RPMSG_CTRL is not set
+CONFIG_RPMSG_NS=m
+CONFIG_RPMSG_VIRTIO=m
+# end of Rpmsg drivers
+
+# CONFIG_SOUNDWIRE is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Amlogic SoC drivers
+#
+# end of Amlogic SoC drivers
+
+#
+# Broadcom SoC drivers
+#
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# fujitsu SoC drivers
+#
+# end of fujitsu SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+#
+# Enable LiteX SoC Builder specific drivers
+#
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# end of Enable LiteX SoC Builder specific drivers
+
+#
+# Qualcomm SoC drivers
+#
+# end of Qualcomm SoC drivers
+
+# CONFIG_SIFIVE_CCACHE is not set
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# 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_NTB is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_CLK is not set
+# CONFIG_PWM_DWC is not set
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_SIFIVE=y
+# CONFIG_PWM_XILINX is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+# CONFIG_AL_FIC is not set
+# CONFIG_XILINX_INTC is not set
+CONFIG_RISCV_INTC=y
+CONFIG_SIFIVE_PLIC=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RESET_STARFIVE_JH7100=y
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_TI_TPS380X is not set
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+# CONFIG_PHY_CAN_TRANSCEIVER is not set
+
+#
+# PHY drivers for Broadcom platforms
+#
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# end of PHY drivers for Broadcom platforms
+
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_DPHY_RX is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_LAN966X_SERDES is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_SAMSUNG_USB2 is not set
+# end of PHY Subsystem
+
+# CONFIG_POWERCAP is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+CONFIG_RISCV_PMU=y
+CONFIG_RISCV_PMU_LEGACY=y
+CONFIG_RISCV_PMU_SBI=y
+# end of Performance monitor support
+
+CONFIG_RAS=y
+# CONFIG_USB4 is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+# CONFIG_NVMEM_RMEM is not set
+# CONFIG_NVMEM_U_BOOT_ENV 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
+# CONFIG_MOST is not set
+# CONFIG_PECI is not set
+# CONFIG_HTE 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 is not set
+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=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+# CONFIG_REISERFS_FS_SECURITY is not set
+# CONFIG_JFS_FS is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_SUPPORT_V4=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_XFS_ONLINE_SCRUB=y
+# CONFIG_XFS_ONLINE_REPAIR is not set
+# CONFIG_XFS_WARN is not set
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+CONFIG_NILFS2_FS=m
+CONFIG_F2FS_FS=y
+# CONFIG_F2FS_STAT_FS is not set
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZ4HC=y
+CONFIG_F2FS_FS_ZSTD=y
+# CONFIG_F2FS_IOSTAT is not set
+# CONFIG_F2FS_UNFAIR_RWSEM is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+CONFIG_FS_VERITY=y
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+# CONFIG_QFMT_V1 is not set
+# CONFIG_QFMT_V2 is not set
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS4_FS is not set
+CONFIG_AUTOFS_FS=y
+CONFIG_FUSE_FS=m
+# CONFIG_CUSE is not set
+CONFIG_VIRTIO_FS=m
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+
+#
+# Caches
+#
+CONFIG_NETFS_SUPPORT=m
+CONFIG_NETFS_STATS=y
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+# CONFIG_FSCACHE_DEBUG is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_ERROR_INJECTION is not set
+# CONFIG_CACHEFILES_ONDEMAND is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+CONFIG_EXFAT_FS=m
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+# CONFIG_NTFS3_LZX_XPRESS is not set
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_TMPFS_INODE64 is not set
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_EFIVAR_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_ECRYPT_FS=m
+# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+# 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_UBIFS_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_FILE_CACHE is not set
+CONFIG_SQUASHFS_FILE_DIRECT=y
+# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+# 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=m
+# CONFIG_EROFS_FS_DEBUG is not set
+CONFIG_EROFS_FS_XATTR=y
+CONFIG_EROFS_FS_POSIX_ACL=y
+CONFIG_EROFS_FS_SECURITY=y
+CONFIG_EROFS_FS_ZIP=y
+# CONFIG_EROFS_FS_ZIP_LZMA is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
+# CONFIG_NFSD is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_V4_2_SSC_HELPER=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SWN_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
+# CONFIG_SMB_SERVER_KERBEROS5 is not set
+CONFIG_SMBFS=m
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_9P_FS_SECURITY=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_MAC_ROMAN=m
+CONFIG_NLS_MAC_CELTIC=m
+CONFIG_NLS_MAC_CENTEURO=m
+CONFIG_NLS_MAC_CROATIAN=m
+CONFIG_NLS_MAC_CYRILLIC=m
+CONFIG_NLS_MAC_GAELIC=m
+CONFIG_NLS_MAC_GREEK=m
+CONFIG_NLS_MAC_ICELAND=m
+CONFIG_NLS_MAC_INUIT=m
+CONFIG_NLS_MAC_ROMANIAN=m
+CONFIG_NLS_MAC_TURKISH=m
+CONFIG_NLS_UTF8=m
+# CONFIG_DLM is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_KEYS_REQUEST_CACHE=y
+# CONFIG_PERSISTENT_KEYRINGS is not set
+# CONFIG_TRUSTED_KEYS is not set
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_USER_DECRYPTED_DATA is not set
+CONFIG_KEY_DH_OPERATIONS=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_FORTIFY_SOURCE=y
+# CONFIG_STATIC_USERMODEHELPER is not set
+# CONFIG_SECURITY_SELINUX 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=y
+# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+CONFIG_SECURITY_LANDLOCK=y
+# CONFIG_INTEGRITY is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM=""
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
+# end of Memory initialization
+
+CONFIG_RANDSTRUCT_NONE=y
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_XOR_BLOCKS=m
+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_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=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_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=m
+# end of Crypto core or helper
+
+#
+# Public-key cryptography
+#
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_DH=y
+# CONFIG_CRYPTO_DH_RFC7919_GROUPS is not set
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECDSA=m
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_SM2=m
+CONFIG_CRYPTO_CURVE25519=m
+# end of Public-key cryptography
+
+#
+# Block ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARIA is not set
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SEED is not set
+CONFIG_CRYPTO_SERPENT=m
+# CONFIG_CRYPTO_SM4_GENERIC is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+# end of Block ciphers
+
+#
+# Length-preserving ciphers and modes
+#
+CONFIG_CRYPTO_ADIANTUM=m
+# CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CFB is not set
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_HCTR2 is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_OFB is not set
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_NHPOLY1305=m
+# end of Length-preserving ciphers and modes
+
+#
+# AEAD (authenticated encryption with associated data) ciphers
+#
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ESSIV=m
+# end of AEAD (authenticated encryption with associated data) ciphers
+
+#
+# Hashes, digests, and MACs
+#
+CONFIG_CRYPTO_BLAKE2B=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_POLY1305=m
+# CONFIG_CRYPTO_RMD160 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SM3=m
+# CONFIG_CRYPTO_SM3_GENERIC is not set
+CONFIG_CRYPTO_STREEBOG=m
+# CONFIG_CRYPTO_VMAC is not set
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_XXHASH=m
+# end of Hashes, digests, and MACs
+
+#
+# CRCs (cyclic redundancy checks)
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+# CONFIG_CRYPTO_CRCT10DIF is not set
+# end of CRCs (cyclic redundancy checks)
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+# CONFIG_CRYPTO_ZSTD is not set
+# end of Compression
+
+#
+# Random number generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+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_KDF800108_CTR=y
+# end of Random number generation
+
+#
+# Userspace interface
+#
+CONFIG_CRYPTO_USER_API=y
+CONFIG_CRYPTO_USER_API_HASH=y
+# 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_USER_API_ENABLE_OBSOLETE=y
+# CONFIG_CRYPTO_STATS is not set
+# end of Userspace interface
+
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_C62X is not set
+# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+CONFIG_CRYPTO_DEV_VIRTIO=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
+
+#
+# Certificates for signature checking
+#
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+CONFIG_MODULE_SIG_KEY_TYPE_RSA=y
+# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# end of Certificates for signature checking
+
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+# CONFIG_RAID6_PQ_BENCHMARK is not set
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+# end of Crypto library routines
+
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC64_ROCKSOFT is not set
+CONFIG_CRC_ITU_T=y
+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=y
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+CONFIG_XXHASH=y
+CONFIG_AUDIT_GENERIC=y
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4HC_COMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+# CONFIG_XZ_DEC_MICROLZMA is not set
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_ZSTD=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_BCH=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_INTERVAL_TREE=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+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_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_SWIOTLB=y
+# CONFIG_DMA_RESTRICTED_POOL is not set
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_DIRECT_REMAP=y
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_SGL_ALLOC=y
+# CONFIG_FORCE_NR_CPUS is not set
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_CLZ_TAB=y
+# CONFIG_IRQ_POLL is not set
+CONFIG_MPILIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_SG_POOL=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
+CONFIG_SBITMAP=y
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_AS_HAS_NON_CONST_LEB128=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
+# CONFIG_DEBUG_FS is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
+# end of Generic Kernel Debugging Instruments
+
+#
+# Networking Debugging
+#
+# end of Networking Debugging
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_ARCH_HAS_DEBUG_WX=y
+# CONFIG_DEBUG_WX is not set
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+# CONFIG_DEBUG_VM_PGTABLE is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+# CONFIG_KASAN is not set
+CONFIG_HAVE_ARCH_KFENCE=y
+# CONFIG_KFENCE is not set
+# end of Memory Debugging
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_INFO=y
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_DEBUG_IRQFLAGS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+
+#
+# Debug kernel data structures
+#
+CONFIG_DEBUG_LIST=y
+CONFIG_BUG_ON_DATA_CORRUPTION=y
+# end of Debug kernel data structures
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
+# end of RCU Debugging
+
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_SAMPLES is not set
+# CONFIG_STRICT_DEVMEM is not set
+
+#
+# riscv Debugging
+#
+# end of riscv Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_ARCH_USE_MEMTEST=y
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+
+#
+# Rust hacking
+#
+# end of Rust hacking
+# end of Kernel hacking
diff --git a/testing/linux-starfive/APKBUILD b/testing/linux-starfive/APKBUILD
new file mode 100644
index 00000000000..90a362643df
--- /dev/null
+++ b/testing/linux-starfive/APKBUILD
@@ -0,0 +1,251 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+
+_flavor=starfive
+pkgname=linux-${_flavor}
+pkgver=6.8.7
+case $pkgver in
+ *.*.*) _kernver=${pkgver%.*};;
+ *.*) _kernver=$pkgver;;
+esac
+pkgrel=0
+pkgdesc="starfive (development kernel)"
+url="https://www.kernel.org"
+depends="initramfs-generator"
+_depends_dev="perl gmp-dev elfutils-dev flex bison"
+makedepends="$_depends_dev sed bc linux-headers installkernel pigz
+ linux-firmware-any openssl-dev diffutils findutils python3"
+options="!strip !check"
+_config=${config:-config-$_flavor.${CARCH}}
+
+subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
+source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz"
+case $pkgver in
+ *.*.0) source="$source";;
+ *.*.*) source="$source
+ https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz" ;;
+esac
+ source="$source
+ config-starfive.riscv64
+ aurel32.6.7.y.patch
+ "
+
+builddir="$srcdir/linux-${_kernver}"
+arch="riscv64"
+license="GPL-2.0-only"
+
+unset _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
+
+_carch=${CARCH}
+case "$_carch" in
+aarch64*) _carch="arm64" ;;
+arm*) _carch="arm" ;;
+riscv64) _carch="riscv" ;;
+esac
+
+prepare() {
+ local _patch_failed=
+ case $pkgver in
+ *.*.0);;
+ *)
+ msg "Applying patch-$pkgver.xz"
+ unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N ;;
+ esac
+
+ # first apply patches in specified order
+ mkdir drivers/pci/controller/plda
+ cp drivers/pci/controller/pcie-microchip-host.c drivers/pci/controller/plda/pcie-microchip-host.c
+ 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}
+ echo "-$pkgrel-$i" > "$builddir"/localversion-alpine \
+ || return 1
+
+ cp "$srcdir"/$_config "$builddir"/.config
+ make -C $builddir \
+ O="$builddir" \
+ ARCH="$_carch" \
+ listnewconfig oldconfig
+ done
+}
+
+build() {
+ unset LDFLAGS
+ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
+ make ARCH="$_carch" DTC_FLAGS="-@" CC="${CC:-gcc}" \
+ KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
+}
+
+_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})"
+
+ # 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";;
+ riscv64) _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-$_buildflavor"
+
+ 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
+ cp "$builddir"/.config $pkgdir/boot/config-$_flavor
+
+}
+
+# main flavor installs in $pkgdir
+package() {
+ depends="$depends linux-firmware-any"
+
+ _package $_flavor "$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
+ cd $builddir
+ cp "$srcdir"/config-$_flavor.${CARCH} "$dir"/.config
+ echo "-$pkgrel-$_flavor" > "$dir"/localversion-alpine
+
+ echo "Installing headers..."
+ cp -t $dir -a $builddir/include
+echo "**********"
+ install -Dt $dir -m644 $builddir/Makefile
+ install -Dt $dir -m644 $builddir/Module.symvers
+ install -Dt $dir -m644 $builddir/System.map
+ cp -t $dir -a $builddir/scripts
+
+echo "***********************************"
+ install -Dt "${dir}/arch/${_carch}" -m644 $builddir/arch/${_carch}/Makefile
+ install -Dt "${dir}/arch/${_carch}/kernel" -m644 $builddir/arch/${_carch}/kernel/asm-offsets.s
+ cp -t "${dir}/arch/${_carch}" -a $builddir/arch/${_carch}/include
+
+echo "***********************************"
+ install -Dt "$dir/drivers/md" -m644 drivers/md/*.h
+ install -Dt "$dir/net/mac80211" -m644 net/mac80211/*.h
+
+ # https://bugs.archlinux.org/task/13146
+ install -Dt "$dir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+
+ # https://bugs.archlinux.org/task/20402
+ install -Dt "$dir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "$dir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "$dir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+
+ # https://bugs.archlinux.org/task/71392
+ install -Dt "$dir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
+
+ echo "Installing KConfig files..."
+ find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
+
+ echo "Removing unneeded architectures..."
+ local arch
+ for arch in "$dir"/arch/*/; do
+ case $(basename "$arch") in $_carch) continue ;; esac
+ echo "Removing $(basename "$arch")"
+ rm -r "$arch"
+ done
+
+ echo "Removing broken symlinks..."
+ find -L "$builddir" -type l -printf 'Removing %P\n' -delete
+
+ echo "Removing loose objects..."
+ find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ echo "Stripping build tools..."
+ local file
+ while read -rd '' file; do
+ case "$(file -bi "$file")" in
+ application/x-sharedlib\;*) # Libraries (.so)
+ strip -v $STRIP_SHARED "$file" ;;
+ application/x-archive\;*) # Libraries (.a)
+ strip -v $STRIP_STATIC "$file" ;;
+ application/x-executable\;*) # Binaries
+ strip -v $STRIP_BINARIES "$file" ;;
+ application/x-pie-executable\;*) # Relocatable binaries
+ strip -v $STRIP_SHARED "$file" ;;
+ esac
+ done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)
+
+ echo "Stripping vmlinux..."
+ strip -v $STRIP_STATIC "$builddir/vmlinux"
+
+ echo "Adding symlink..."
+ mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
+ ln -sf /usr/src/linux-headers-${_abi_release} \
+ "$subpkgdir"/lib/modules/${_abi_release}/build
+}
+
+sha512sums="
+5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068 linux-6.8.tar.xz
+19f6ff889e643bd46bce57ff9312900ab2bf866a8c2eaf0ab545bd6f4189872346c861672babbff991dbb04e3ef1a9b805aaac491d660482bdedc30af5922a0c patch-6.8.7.xz
+9d6ec9c178d5fb35669ad8f9ea86374bc26fbe998be8f285bfb2b891d6a53b0aa9ed5b0c8023e9322868488546a20dbbf5aeca2612f8813e5ade18ba3ae28f62 config-starfive.riscv64
+6031bfd1d002e7e12a32ca7d0f91ed642045c2ff205a8c256d9818cd16688c8ca44bd22fec4daa345b896cc86744efb19d41711a6c14241baddd2b19ff3bc6a9 aurel32.6.7.y.patch
+"
diff --git a/testing/linux-starfive/aurel32.6.7.y.patch b/testing/linux-starfive/aurel32.6.7.y.patch
new file mode 100644
index 00000000000..d35c7e9aeb3
--- /dev/null
+++ b/testing/linux-starfive/aurel32.6.7.y.patch
@@ -0,0 +1,5023 @@
+From 28015397cb6568ef62f56b1cc87a95f7bcd01320 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:51 +0800
+Subject: [PATCH 01/23] dt-bindings: PCI: Add PLDA XpressRICH PCIe host common
+ properties
+
+Add PLDA XpressRICH PCIe host common properties dt-binding doc.
+PolarFire PCIe host using PLDA IP. Move common properties from Microchip
+PolarFire PCIe host to PLDA files.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+Tested-by: John Clark <inindev@gmail.com>
+Message-ID: <20240108110612.19048-2-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../bindings/pci/microchip,pcie-host.yaml | 55 +-------------
+ .../pci/plda,xpressrich3-axi-common.yaml | 75 +++++++++++++++++++
+ 2 files changed, 76 insertions(+), 54 deletions(-)
+ create mode 100644 Documentation/devicetree/bindings/pci/plda,xpressrich3-axi-common.yaml
+
+diff --git a/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml b/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml
+index f7a3c2636355..7c2d51221f65 100644
+--- a/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml
++++ b/Documentation/devicetree/bindings/pci/microchip,pcie-host.yaml
+@@ -10,21 +10,13 @@ maintainers:
+ - Daire McNamara <daire.mcnamara@microchip.com>
+
+ allOf:
+- - $ref: /schemas/pci/pci-bus.yaml#
++ - $ref: plda,xpressrich3-axi-common.yaml#
+ - $ref: /schemas/interrupt-controller/msi-controller.yaml#
+
+ properties:
+ compatible:
+ const: microchip,pcie-host-1.0 # PolarFire
+
+- reg:
+- maxItems: 2
+-
+- reg-names:
+- items:
+- - const: cfg
+- - const: apb
+-
+ clocks:
+ description:
+ Fabric Interface Controllers, FICs, are the interface between the FPGA
+@@ -52,18 +44,6 @@ properties:
+ items:
+ pattern: '^fic[0-3]$'
+
+- interrupts:
+- minItems: 1
+- items:
+- - description: PCIe host controller
+- - description: builtin MSI controller
+-
+- interrupt-names:
+- minItems: 1
+- items:
+- - const: pcie
+- - const: msi
+-
+ ranges:
+ maxItems: 1
+
+@@ -71,39 +51,6 @@ properties:
+ minItems: 1
+ maxItems: 6
+
+- msi-controller:
+- description: Identifies the node as an MSI controller.
+-
+- msi-parent:
+- description: MSI controller the device is capable of using.
+-
+- interrupt-controller:
+- type: object
+- properties:
+- '#address-cells':
+- const: 0
+-
+- '#interrupt-cells':
+- const: 1
+-
+- interrupt-controller: true
+-
+- required:
+- - '#address-cells'
+- - '#interrupt-cells'
+- - interrupt-controller
+-
+- additionalProperties: false
+-
+-required:
+- - reg
+- - reg-names
+- - "#interrupt-cells"
+- - interrupts
+- - interrupt-map-mask
+- - interrupt-map
+- - msi-controller
+-
+ unevaluatedProperties: false
+
+ examples:
+diff --git a/Documentation/devicetree/bindings/pci/plda,xpressrich3-axi-common.yaml b/Documentation/devicetree/bindings/pci/plda,xpressrich3-axi-common.yaml
+new file mode 100644
+index 000000000000..31bb17b11e58
+--- /dev/null
++++ b/Documentation/devicetree/bindings/pci/plda,xpressrich3-axi-common.yaml
+@@ -0,0 +1,75 @@
++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
++%YAML 1.2
++---
++$id: http://devicetree.org/schemas/pci/plda,xpressrich3-axi-common.yaml#
++$schema: http://devicetree.org/meta-schemas/core.yaml#
++
++title: PLDA XpressRICH PCIe host common properties
++
++maintainers:
++ - Daire McNamara <daire.mcnamara@microchip.com>
++ - Kevin Xie <kevin.xie@starfivetech.com>
++
++description:
++ Generic PLDA XpressRICH PCIe host common properties.
++
++allOf:
++ - $ref: /schemas/pci/pci-bus.yaml#
++
++properties:
++ reg:
++ maxItems: 2
++
++ reg-names:
++ items:
++ - const: cfg
++ - const: apb
++
++ interrupts:
++ minItems: 1
++ items:
++ - description: PCIe host controller
++ - description: builtin MSI controller
++
++ interrupt-names:
++ minItems: 1
++ items:
++ - const: pcie
++ - const: msi
++
++ msi-controller:
++ description: Identifies the node as an MSI controller.
++
++ msi-parent:
++ description: MSI controller the device is capable of using.
++
++ interrupt-controller:
++ type: object
++ properties:
++ '#address-cells':
++ const: 0
++
++ '#interrupt-cells':
++ const: 1
++
++ interrupt-controller: true
++
++ required:
++ - '#address-cells'
++ - '#interrupt-cells'
++ - interrupt-controller
++
++ additionalProperties: false
++
++required:
++ - reg
++ - reg-names
++ - interrupts
++ - msi-controller
++ - "#interrupt-cells"
++ - interrupt-map-mask
++ - interrupt-map
++
++additionalProperties: true
++
++...
+--
+2.43.0
+
+
+From 3e4b15a292dc46205ccca0e73e0397936ce8a8b6 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:52 +0800
+Subject: [PATCH 02/23] PCI: microchip: Move pcie-microchip-host.c to plda
+ directory
+
+For Microchip Polarfire PCIe host is PLDA XpressRich IP, move to plda
+directory. Prepare for refactoring the codes.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-3-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ MAINTAINERS | 4 ++--
+ drivers/pci/controller/Kconfig | 9 +--------
+ drivers/pci/controller/Makefile | 2 +-
+ drivers/pci/controller/plda/Kconfig | 14 ++++++++++++++
+ drivers/pci/controller/plda/Makefile | 2 ++
+ .../controller/{ => plda}/pcie-microchip-host.c | 2 +-
+ 6 files changed, 21 insertions(+), 12 deletions(-)
+ create mode 100644 drivers/pci/controller/plda/Kconfig
+ create mode 100644 drivers/pci/controller/plda/Makefile
+ rename drivers/pci/controller/{ => plda}/pcie-microchip-host.c (99%)
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index a7c4cf8201e0..1a2a4d2fab74 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -16789,7 +16789,7 @@ M: Daire McNamara <daire.mcnamara@microchip.com>
+ L: linux-pci@vger.kernel.org
+ S: Supported
+ F: Documentation/devicetree/bindings/pci/microchip*
+-F: drivers/pci/controller/*microchip*
++F: drivers/pci/controller/plda/*microchip*
+
+ PCIE DRIVER FOR QUALCOMM MSM
+ M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+@@ -18587,7 +18587,7 @@ F: drivers/char/hw_random/mpfs-rng.c
+ F: drivers/clk/microchip/clk-mpfs*.c
+ F: drivers/i2c/busses/i2c-microchip-corei2c.c
+ F: drivers/mailbox/mailbox-mpfs.c
+-F: drivers/pci/controller/pcie-microchip-host.c
++F: drivers/pci/controller/plda/pcie-microchip-host.c
+ F: drivers/pwm/pwm-microchip-core.c
+ F: drivers/reset/reset-mpfs.c
+ F: drivers/rtc/rtc-mpfs.c
+diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
+index e534c02ee34f..4d2c188f5835 100644
+--- a/drivers/pci/controller/Kconfig
++++ b/drivers/pci/controller/Kconfig
+@@ -215,14 +215,6 @@ config PCIE_MT7621
+ help
+ This selects a driver for the MediaTek MT7621 PCIe Controller.
+
+-config PCIE_MICROCHIP_HOST
+- tristate "Microchip AXI PCIe controller"
+- depends on PCI_MSI && OF
+- select PCI_HOST_COMMON
+- help
+- Say Y here if you want kernel to support the Microchip AXI PCIe
+- Host Bridge driver.
+-
+ config PCI_HYPERV_INTERFACE
+ tristate "Microsoft Hyper-V PCI Interface"
+ depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
+@@ -356,4 +348,5 @@ config PCIE_XILINX_CPM
+ source "drivers/pci/controller/cadence/Kconfig"
+ source "drivers/pci/controller/dwc/Kconfig"
+ source "drivers/pci/controller/mobiveil/Kconfig"
++source "drivers/pci/controller/plda/Kconfig"
+ endmenu
+diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile
+index f2b19e6174af..038ccbd9e3ba 100644
+--- a/drivers/pci/controller/Makefile
++++ b/drivers/pci/controller/Makefile
+@@ -33,7 +33,6 @@ obj-$(CONFIG_PCIE_ROCKCHIP_EP) += pcie-rockchip-ep.o
+ obj-$(CONFIG_PCIE_ROCKCHIP_HOST) += pcie-rockchip-host.o
+ obj-$(CONFIG_PCIE_MEDIATEK) += pcie-mediatek.o
+ obj-$(CONFIG_PCIE_MEDIATEK_GEN3) += pcie-mediatek-gen3.o
+-obj-$(CONFIG_PCIE_MICROCHIP_HOST) += pcie-microchip-host.o
+ obj-$(CONFIG_VMD) += vmd.o
+ obj-$(CONFIG_PCIE_BRCMSTB) += pcie-brcmstb.o
+ obj-$(CONFIG_PCI_LOONGSON) += pci-loongson.o
+@@ -44,6 +43,7 @@ obj-$(CONFIG_PCIE_MT7621) += pcie-mt7621.o
+ # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW
+ obj-y += dwc/
+ obj-y += mobiveil/
++obj-y += plda/
+
+
+ # The following drivers are for devices that use the generic ACPI
+diff --git a/drivers/pci/controller/plda/Kconfig b/drivers/pci/controller/plda/Kconfig
+new file mode 100644
+index 000000000000..5cb3be4fc98c
+--- /dev/null
++++ b/drivers/pci/controller/plda/Kconfig
+@@ -0,0 +1,14 @@
++# SPDX-License-Identifier: GPL-2.0
++
++menu "PLDA-based PCIe controllers"
++ depends on PCI
++
++config PCIE_MICROCHIP_HOST
++ tristate "Microchip AXI PCIe controller"
++ depends on PCI_MSI && OF
++ select PCI_HOST_COMMON
++ help
++ Say Y here if you want kernel to support the Microchip AXI PCIe
++ Host Bridge driver.
++
++endmenu
+diff --git a/drivers/pci/controller/plda/Makefile b/drivers/pci/controller/plda/Makefile
+new file mode 100644
+index 000000000000..e1a265cbf91c
+--- /dev/null
++++ b/drivers/pci/controller/plda/Makefile
+@@ -0,0 +1,2 @@
++# SPDX-License-Identifier: GPL-2.0
++obj-$(CONFIG_PCIE_MICROCHIP_HOST) += pcie-microchip-host.o
+diff --git a/drivers/pci/controller/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+similarity index 99%
+rename from drivers/pci/controller/pcie-microchip-host.c
+rename to drivers/pci/controller/plda/pcie-microchip-host.c
+index 137fb8570ba2..cb09a8137e25 100644
+--- a/drivers/pci/controller/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -18,7 +18,7 @@
+ #include <linux/pci-ecam.h>
+ #include <linux/platform_device.h>
+
+-#include "../pci.h"
++#include "../../pci.h"
+
+ /* Number of MSI IRQs */
+ #define MC_MAX_NUM_MSI_IRQS 32
+--
+2.43.0
+
+
+From df7fb97715c19a67eb4c19bf63752206d2f62a93 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:53 +0800
+Subject: [PATCH 03/23] PCI: microchip: Move PLDA IP register macros to
+ pcie-plda.h
+
+Move PLDA PCIe host controller IP registers macros to pcie-plda.h,
+including bridge registers and local IRQ event number.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-4-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ MAINTAINERS | 8 ++
+ .../pci/controller/plda/pcie-microchip-host.c | 108 +++---------------
+ drivers/pci/controller/plda/pcie-plda.h | 108 ++++++++++++++++++
+ 3 files changed, 132 insertions(+), 92 deletions(-)
+ create mode 100644 drivers/pci/controller/plda/pcie-plda.h
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 1a2a4d2fab74..730fe2d640a1 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -16557,6 +16557,14 @@ S: Maintained
+ F: Documentation/devicetree/bindings/pci/layerscape-pcie-gen4.txt
+ F: drivers/pci/controller/mobiveil/pcie-layerscape-gen4.c
+
++PCI DRIVER FOR PLDA PCIE IP
++M: Daire McNamara <daire.mcnamara@microchip.com>
++M: Kevin Xie <kevin.xie@starfivetech.com>
++L: linux-pci@vger.kernel.org
++S: Maintained
++F: Documentation/devicetree/bindings/pci/plda,*
++F: drivers/pci/controller/plda/*plda*
++
+ PCI DRIVER FOR RENESAS R-CAR
+ M: Marek Vasut <marek.vasut+renesas@gmail.com>
+ M: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index cb09a8137e25..d9030d550482 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -19,6 +19,7 @@
+ #include <linux/platform_device.h>
+
+ #include "../../pci.h"
++#include "pcie-plda.h"
+
+ /* Number of MSI IRQs */
+ #define MC_MAX_NUM_MSI_IRQS 32
+@@ -30,84 +31,6 @@
+ #define MC_PCIE_BRIDGE_ADDR (MC_PCIE1_BRIDGE_ADDR)
+ #define MC_PCIE_CTRL_ADDR (MC_PCIE1_CTRL_ADDR)
+
+-/* PCIe Bridge Phy Regs */
+-#define PCIE_PCI_IRQ_DW0 0xa8
+-#define MSIX_CAP_MASK BIT(31)
+-#define NUM_MSI_MSGS_MASK GENMASK(6, 4)
+-#define NUM_MSI_MSGS_SHIFT 4
+-
+-#define IMASK_LOCAL 0x180
+-#define DMA_END_ENGINE_0_MASK 0x00000000u
+-#define DMA_END_ENGINE_0_SHIFT 0
+-#define DMA_END_ENGINE_1_MASK 0x00000000u
+-#define DMA_END_ENGINE_1_SHIFT 1
+-#define DMA_ERROR_ENGINE_0_MASK 0x00000100u
+-#define DMA_ERROR_ENGINE_0_SHIFT 8
+-#define DMA_ERROR_ENGINE_1_MASK 0x00000200u
+-#define DMA_ERROR_ENGINE_1_SHIFT 9
+-#define A_ATR_EVT_POST_ERR_MASK 0x00010000u
+-#define A_ATR_EVT_POST_ERR_SHIFT 16
+-#define A_ATR_EVT_FETCH_ERR_MASK 0x00020000u
+-#define A_ATR_EVT_FETCH_ERR_SHIFT 17
+-#define A_ATR_EVT_DISCARD_ERR_MASK 0x00040000u
+-#define A_ATR_EVT_DISCARD_ERR_SHIFT 18
+-#define A_ATR_EVT_DOORBELL_MASK 0x00000000u
+-#define A_ATR_EVT_DOORBELL_SHIFT 19
+-#define P_ATR_EVT_POST_ERR_MASK 0x00100000u
+-#define P_ATR_EVT_POST_ERR_SHIFT 20
+-#define P_ATR_EVT_FETCH_ERR_MASK 0x00200000u
+-#define P_ATR_EVT_FETCH_ERR_SHIFT 21
+-#define P_ATR_EVT_DISCARD_ERR_MASK 0x00400000u
+-#define P_ATR_EVT_DISCARD_ERR_SHIFT 22
+-#define P_ATR_EVT_DOORBELL_MASK 0x00000000u
+-#define P_ATR_EVT_DOORBELL_SHIFT 23
+-#define PM_MSI_INT_INTA_MASK 0x01000000u
+-#define PM_MSI_INT_INTA_SHIFT 24
+-#define PM_MSI_INT_INTB_MASK 0x02000000u
+-#define PM_MSI_INT_INTB_SHIFT 25
+-#define PM_MSI_INT_INTC_MASK 0x04000000u
+-#define PM_MSI_INT_INTC_SHIFT 26
+-#define PM_MSI_INT_INTD_MASK 0x08000000u
+-#define PM_MSI_INT_INTD_SHIFT 27
+-#define PM_MSI_INT_INTX_MASK 0x0f000000u
+-#define PM_MSI_INT_INTX_SHIFT 24
+-#define PM_MSI_INT_MSI_MASK 0x10000000u
+-#define PM_MSI_INT_MSI_SHIFT 28
+-#define PM_MSI_INT_AER_EVT_MASK 0x20000000u
+-#define PM_MSI_INT_AER_EVT_SHIFT 29
+-#define PM_MSI_INT_EVENTS_MASK 0x40000000u
+-#define PM_MSI_INT_EVENTS_SHIFT 30
+-#define PM_MSI_INT_SYS_ERR_MASK 0x80000000u
+-#define PM_MSI_INT_SYS_ERR_SHIFT 31
+-#define NUM_LOCAL_EVENTS 15
+-#define ISTATUS_LOCAL 0x184
+-#define IMASK_HOST 0x188
+-#define ISTATUS_HOST 0x18c
+-#define IMSI_ADDR 0x190
+-#define ISTATUS_MSI 0x194
+-
+-/* PCIe Master table init defines */
+-#define ATR0_PCIE_WIN0_SRCADDR_PARAM 0x600u
+-#define ATR0_PCIE_ATR_SIZE 0x25
+-#define ATR0_PCIE_ATR_SIZE_SHIFT 1
+-#define ATR0_PCIE_WIN0_SRC_ADDR 0x604u
+-#define ATR0_PCIE_WIN0_TRSL_ADDR_LSB 0x608u
+-#define ATR0_PCIE_WIN0_TRSL_ADDR_UDW 0x60cu
+-#define ATR0_PCIE_WIN0_TRSL_PARAM 0x610u
+-
+-/* PCIe AXI slave table init defines */
+-#define ATR0_AXI4_SLV0_SRCADDR_PARAM 0x800u
+-#define ATR_SIZE_SHIFT 1
+-#define ATR_IMPL_ENABLE 1
+-#define ATR0_AXI4_SLV0_SRC_ADDR 0x804u
+-#define ATR0_AXI4_SLV0_TRSL_ADDR_LSB 0x808u
+-#define ATR0_AXI4_SLV0_TRSL_ADDR_UDW 0x80cu
+-#define ATR0_AXI4_SLV0_TRSL_PARAM 0x810u
+-#define PCIE_TX_RX_INTERFACE 0x00000000u
+-#define PCIE_CONFIG_INTERFACE 0x00000001u
+-
+-#define ATR_ENTRY_SIZE 32
+-
+ /* PCIe Controller Phy Regs */
+ #define SEC_ERROR_EVENT_CNT 0x20
+ #define DED_ERROR_EVENT_CNT 0x24
+@@ -179,20 +102,21 @@
+ #define EVENT_LOCAL_DMA_END_ENGINE_1 12
+ #define EVENT_LOCAL_DMA_ERROR_ENGINE_0 13
+ #define EVENT_LOCAL_DMA_ERROR_ENGINE_1 14
+-#define EVENT_LOCAL_A_ATR_EVT_POST_ERR 15
+-#define EVENT_LOCAL_A_ATR_EVT_FETCH_ERR 16
+-#define EVENT_LOCAL_A_ATR_EVT_DISCARD_ERR 17
+-#define EVENT_LOCAL_A_ATR_EVT_DOORBELL 18
+-#define EVENT_LOCAL_P_ATR_EVT_POST_ERR 19
+-#define EVENT_LOCAL_P_ATR_EVT_FETCH_ERR 20
+-#define EVENT_LOCAL_P_ATR_EVT_DISCARD_ERR 21
+-#define EVENT_LOCAL_P_ATR_EVT_DOORBELL 22
+-#define EVENT_LOCAL_PM_MSI_INT_INTX 23
+-#define EVENT_LOCAL_PM_MSI_INT_MSI 24
+-#define EVENT_LOCAL_PM_MSI_INT_AER_EVT 25
+-#define EVENT_LOCAL_PM_MSI_INT_EVENTS 26
+-#define EVENT_LOCAL_PM_MSI_INT_SYS_ERR 27
+-#define NUM_EVENTS 28
++#define NUM_MC_EVENTS 15
++#define EVENT_LOCAL_A_ATR_EVT_POST_ERR (NUM_MC_EVENTS + PLDA_AXI_POST_ERR)
++#define EVENT_LOCAL_A_ATR_EVT_FETCH_ERR (NUM_MC_EVENTS + PLDA_AXI_FETCH_ERR)
++#define EVENT_LOCAL_A_ATR_EVT_DISCARD_ERR (NUM_MC_EVENTS + PLDA_AXI_DISCARD_ERR)
++#define EVENT_LOCAL_A_ATR_EVT_DOORBELL (NUM_MC_EVENTS + PLDA_AXI_DOORBELL)
++#define EVENT_LOCAL_P_ATR_EVT_POST_ERR (NUM_MC_EVENTS + PLDA_PCIE_POST_ERR)
++#define EVENT_LOCAL_P_ATR_EVT_FETCH_ERR (NUM_MC_EVENTS + PLDA_PCIE_FETCH_ERR)
++#define EVENT_LOCAL_P_ATR_EVT_DISCARD_ERR (NUM_MC_EVENTS + PLDA_PCIE_DISCARD_ERR)
++#define EVENT_LOCAL_P_ATR_EVT_DOORBELL (NUM_MC_EVENTS + PLDA_PCIE_DOORBELL)
++#define EVENT_LOCAL_PM_MSI_INT_INTX (NUM_MC_EVENTS + PLDA_INTX)
++#define EVENT_LOCAL_PM_MSI_INT_MSI (NUM_MC_EVENTS + PLDA_MSI)
++#define EVENT_LOCAL_PM_MSI_INT_AER_EVT (NUM_MC_EVENTS + PLDA_AER_EVENT)
++#define EVENT_LOCAL_PM_MSI_INT_EVENTS (NUM_MC_EVENTS + PLDA_MISC_EVENTS)
++#define EVENT_LOCAL_PM_MSI_INT_SYS_ERR (NUM_MC_EVENTS + PLDA_SYS_ERR)
++#define NUM_EVENTS (NUM_MC_EVENTS + PLDA_INT_EVENT_NUM)
+
+ #define PCIE_EVENT_CAUSE(x, s) \
+ [EVENT_PCIE_ ## x] = { __stringify(x), s }
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+new file mode 100644
+index 000000000000..cad3a98d967e
+--- /dev/null
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -0,0 +1,108 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * PLDA PCIe host controller driver
++ */
++
++#ifndef _PCIE_PLDA_H
++#define _PCIE_PLDA_H
++
++/* PCIe Bridge Phy Regs */
++#define PCIE_PCI_IRQ_DW0 0xa8
++#define MSIX_CAP_MASK BIT(31)
++#define NUM_MSI_MSGS_MASK GENMASK(6, 4)
++#define NUM_MSI_MSGS_SHIFT 4
++
++#define IMASK_LOCAL 0x180
++#define DMA_END_ENGINE_0_MASK 0x00000000u
++#define DMA_END_ENGINE_0_SHIFT 0
++#define DMA_END_ENGINE_1_MASK 0x00000000u
++#define DMA_END_ENGINE_1_SHIFT 1
++#define DMA_ERROR_ENGINE_0_MASK 0x00000100u
++#define DMA_ERROR_ENGINE_0_SHIFT 8
++#define DMA_ERROR_ENGINE_1_MASK 0x00000200u
++#define DMA_ERROR_ENGINE_1_SHIFT 9
++#define A_ATR_EVT_POST_ERR_MASK 0x00010000u
++#define A_ATR_EVT_POST_ERR_SHIFT 16
++#define A_ATR_EVT_FETCH_ERR_MASK 0x00020000u
++#define A_ATR_EVT_FETCH_ERR_SHIFT 17
++#define A_ATR_EVT_DISCARD_ERR_MASK 0x00040000u
++#define A_ATR_EVT_DISCARD_ERR_SHIFT 18
++#define A_ATR_EVT_DOORBELL_MASK 0x00000000u
++#define A_ATR_EVT_DOORBELL_SHIFT 19
++#define P_ATR_EVT_POST_ERR_MASK 0x00100000u
++#define P_ATR_EVT_POST_ERR_SHIFT 20
++#define P_ATR_EVT_FETCH_ERR_MASK 0x00200000u
++#define P_ATR_EVT_FETCH_ERR_SHIFT 21
++#define P_ATR_EVT_DISCARD_ERR_MASK 0x00400000u
++#define P_ATR_EVT_DISCARD_ERR_SHIFT 22
++#define P_ATR_EVT_DOORBELL_MASK 0x00000000u
++#define P_ATR_EVT_DOORBELL_SHIFT 23
++#define PM_MSI_INT_INTA_MASK 0x01000000u
++#define PM_MSI_INT_INTA_SHIFT 24
++#define PM_MSI_INT_INTB_MASK 0x02000000u
++#define PM_MSI_INT_INTB_SHIFT 25
++#define PM_MSI_INT_INTC_MASK 0x04000000u
++#define PM_MSI_INT_INTC_SHIFT 26
++#define PM_MSI_INT_INTD_MASK 0x08000000u
++#define PM_MSI_INT_INTD_SHIFT 27
++#define PM_MSI_INT_INTX_MASK 0x0f000000u
++#define PM_MSI_INT_INTX_SHIFT 24
++#define PM_MSI_INT_MSI_MASK 0x10000000u
++#define PM_MSI_INT_MSI_SHIFT 28
++#define PM_MSI_INT_AER_EVT_MASK 0x20000000u
++#define PM_MSI_INT_AER_EVT_SHIFT 29
++#define PM_MSI_INT_EVENTS_MASK 0x40000000u
++#define PM_MSI_INT_EVENTS_SHIFT 30
++#define PM_MSI_INT_SYS_ERR_MASK 0x80000000u
++#define PM_MSI_INT_SYS_ERR_SHIFT 31
++#define NUM_LOCAL_EVENTS 15
++#define ISTATUS_LOCAL 0x184
++#define IMASK_HOST 0x188
++#define ISTATUS_HOST 0x18c
++#define IMSI_ADDR 0x190
++#define ISTATUS_MSI 0x194
++
++/* PCIe Master table init defines */
++#define ATR0_PCIE_WIN0_SRCADDR_PARAM 0x600u
++#define ATR0_PCIE_ATR_SIZE 0x25
++#define ATR0_PCIE_ATR_SIZE_SHIFT 1
++#define ATR0_PCIE_WIN0_SRC_ADDR 0x604u
++#define ATR0_PCIE_WIN0_TRSL_ADDR_LSB 0x608u
++#define ATR0_PCIE_WIN0_TRSL_ADDR_UDW 0x60cu
++#define ATR0_PCIE_WIN0_TRSL_PARAM 0x610u
++
++/* PCIe AXI slave table init defines */
++#define ATR0_AXI4_SLV0_SRCADDR_PARAM 0x800u
++#define ATR_SIZE_SHIFT 1
++#define ATR_IMPL_ENABLE 1
++#define ATR0_AXI4_SLV0_SRC_ADDR 0x804u
++#define ATR0_AXI4_SLV0_TRSL_ADDR_LSB 0x808u
++#define ATR0_AXI4_SLV0_TRSL_ADDR_UDW 0x80cu
++#define ATR0_AXI4_SLV0_TRSL_PARAM 0x810u
++#define PCIE_TX_RX_INTERFACE 0x00000000u
++#define PCIE_CONFIG_INTERFACE 0x00000001u
++
++#define ATR_ENTRY_SIZE 32
++
++enum plda_int_event {
++ PLDA_AXI_POST_ERR,
++ PLDA_AXI_FETCH_ERR,
++ PLDA_AXI_DISCARD_ERR,
++ PLDA_AXI_DOORBELL,
++ PLDA_PCIE_POST_ERR,
++ PLDA_PCIE_FETCH_ERR,
++ PLDA_PCIE_DISCARD_ERR,
++ PLDA_PCIE_DOORBELL,
++ PLDA_INTX,
++ PLDA_MSI,
++ PLDA_AER_EVENT,
++ PLDA_MISC_EVENTS,
++ PLDA_SYS_ERR,
++ PLDA_INT_EVENT_NUM
++};
++
++#define PLDA_NUM_DMA_EVENTS 16
++
++#define PLDA_MAX_INT_NUM (PLDA_NUM_DMA_EVENTS + PLDA_INT_EVENT_NUM)
++
++#endif
+--
+2.43.0
+
+
+From f569d322f9b4683c5f427247c374ac39889643e6 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:54 +0800
+Subject: [PATCH 04/23] PCI: microchip: Add bridge_addr field to struct mc_pcie
+
+For bridge address base is common PLDA field, Add this to struct mc_pcie
+first.
+
+INTx and MSI codes interrupts codes will get the bridge base address from
+port->bridge_addr. These codes will be changed to common codes.
+axi_base_addr is Microchip its own data.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-5-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 23 ++++++++-----------
+ 1 file changed, 9 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index d9030d550482..c55ede80a6d0 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -195,6 +195,7 @@ struct mc_pcie {
+ struct irq_domain *event_domain;
+ raw_spinlock_t lock;
+ struct mc_msi msi;
++ void __iomem *bridge_addr;
+ };
+
+ struct cause {
+@@ -339,8 +340,7 @@ static void mc_handle_msi(struct irq_desc *desc)
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct device *dev = port->dev;
+ struct mc_msi *msi = &port->msi;
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long status;
+ u32 bit;
+ int ret;
+@@ -365,8 +365,7 @@ static void mc_handle_msi(struct irq_desc *desc)
+ static void mc_msi_bottom_irq_ack(struct irq_data *data)
+ {
+ struct mc_pcie *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ u32 bitpos = data->hwirq;
+
+ writel_relaxed(BIT(bitpos), bridge_base_addr + ISTATUS_MSI);
+@@ -488,8 +487,7 @@ static void mc_handle_intx(struct irq_desc *desc)
+ struct mc_pcie *port = irq_desc_get_handler_data(desc);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct device *dev = port->dev;
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long status;
+ u32 bit;
+ int ret;
+@@ -514,8 +512,7 @@ static void mc_handle_intx(struct irq_desc *desc)
+ static void mc_ack_intx_irq(struct irq_data *data)
+ {
+ struct mc_pcie *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+
+ writel_relaxed(mask, bridge_base_addr + ISTATUS_LOCAL);
+@@ -524,8 +521,7 @@ static void mc_ack_intx_irq(struct irq_data *data)
+ static void mc_mask_intx_irq(struct irq_data *data)
+ {
+ struct mc_pcie *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long flags;
+ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+ u32 val;
+@@ -540,8 +536,7 @@ static void mc_mask_intx_irq(struct irq_data *data)
+ static void mc_unmask_intx_irq(struct irq_data *data)
+ {
+ struct mc_pcie *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long flags;
+ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+ u32 val;
+@@ -896,8 +891,7 @@ static void mc_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ static int mc_pcie_setup_windows(struct platform_device *pdev,
+ struct mc_pcie *port)
+ {
+- void __iomem *bridge_base_addr =
+- port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ void __iomem *bridge_base_addr = port->bridge_addr;
+ struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
+ struct resource_entry *entry;
+ u64 pci_addr;
+@@ -1081,6 +1075,7 @@ static int mc_host_probe(struct platform_device *pdev)
+ mc_disable_interrupts(port);
+
+ bridge_base_addr = port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
++ port->bridge_addr = bridge_base_addr;
+
+ /* Allow enabling MSI by disabling MSI-X */
+ val = readl(bridge_base_addr + PCIE_PCI_IRQ_DW0);
+--
+2.43.0
+
+
+From a863afc3ea3339f8fa682b4db2dee8f48ff84cb6 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:55 +0800
+Subject: [PATCH 05/23] PCI: microchip: Rename two PCIe data structures
+
+Add PLDA PCIe related data structures by rename data structure name from
+mc_* to plda_*.
+
+axi_base_addr is stayed in struct mc_pcie for it's microchip its own data.
+
+The event interrupt codes is still using struct mc_pcie because the event
+interrupt codes can not be re-used.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-6-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 96 ++++++++++---------
+ 1 file changed, 53 insertions(+), 43 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index c55ede80a6d0..df0736f688ce 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -22,7 +22,7 @@
+ #include "pcie-plda.h"
+
+ /* Number of MSI IRQs */
+-#define MC_MAX_NUM_MSI_IRQS 32
++#define PLDA_MAX_NUM_MSI_IRQS 32
+
+ /* PCIe Bridge Phy and Controller Phy offsets */
+ #define MC_PCIE1_BRIDGE_ADDR 0x00008000u
+@@ -179,25 +179,29 @@ struct event_map {
+ u32 event_bit;
+ };
+
+-struct mc_msi {
++struct plda_msi {
+ struct mutex lock; /* Protect used bitmap */
+ struct irq_domain *msi_domain;
+ struct irq_domain *dev_domain;
+ u32 num_vectors;
+ u64 vector_phy;
+- DECLARE_BITMAP(used, MC_MAX_NUM_MSI_IRQS);
++ DECLARE_BITMAP(used, PLDA_MAX_NUM_MSI_IRQS);
+ };
+
+-struct mc_pcie {
+- void __iomem *axi_base_addr;
++struct plda_pcie_rp {
+ struct device *dev;
+ struct irq_domain *intx_domain;
+ struct irq_domain *event_domain;
+ raw_spinlock_t lock;
+- struct mc_msi msi;
++ struct plda_msi msi;
+ void __iomem *bridge_addr;
+ };
+
++struct mc_pcie {
++ struct plda_pcie_rp plda;
++ void __iomem *axi_base_addr;
++};
++
+ struct cause {
+ const char *sym;
+ const char *str;
+@@ -313,7 +317,7 @@ static struct mc_pcie *port;
+
+ static void mc_pcie_enable_msi(struct mc_pcie *port, void __iomem *ecam)
+ {
+- struct mc_msi *msi = &port->msi;
++ struct plda_msi *msi = &port->plda.msi;
+ u16 reg;
+ u8 queue_size;
+
+@@ -336,10 +340,10 @@ static void mc_pcie_enable_msi(struct mc_pcie *port, void __iomem *ecam)
+
+ static void mc_handle_msi(struct irq_desc *desc)
+ {
+- struct mc_pcie *port = irq_desc_get_handler_data(desc);
++ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct device *dev = port->dev;
+- struct mc_msi *msi = &port->msi;
++ struct plda_msi *msi = &port->msi;
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long status;
+ u32 bit;
+@@ -364,7 +368,7 @@ static void mc_handle_msi(struct irq_desc *desc)
+
+ static void mc_msi_bottom_irq_ack(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ u32 bitpos = data->hwirq;
+
+@@ -373,7 +377,7 @@ static void mc_msi_bottom_irq_ack(struct irq_data *data)
+
+ static void mc_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ phys_addr_t addr = port->msi.vector_phy;
+
+ msg->address_lo = lower_32_bits(addr);
+@@ -400,8 +404,8 @@ static struct irq_chip mc_msi_bottom_irq_chip = {
+ static int mc_irq_msi_domain_alloc(struct irq_domain *domain, unsigned int virq,
+ unsigned int nr_irqs, void *args)
+ {
+- struct mc_pcie *port = domain->host_data;
+- struct mc_msi *msi = &port->msi;
++ struct plda_pcie_rp *port = domain->host_data;
++ struct plda_msi *msi = &port->msi;
+ unsigned long bit;
+
+ mutex_lock(&msi->lock);
+@@ -425,8 +429,8 @@ static void mc_irq_msi_domain_free(struct irq_domain *domain, unsigned int virq,
+ unsigned int nr_irqs)
+ {
+ struct irq_data *d = irq_domain_get_irq_data(domain, virq);
+- struct mc_pcie *port = irq_data_get_irq_chip_data(d);
+- struct mc_msi *msi = &port->msi;
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(d);
++ struct plda_msi *msi = &port->msi;
+
+ mutex_lock(&msi->lock);
+
+@@ -456,11 +460,11 @@ static struct msi_domain_info mc_msi_domain_info = {
+ .chip = &mc_msi_irq_chip,
+ };
+
+-static int mc_allocate_msi_domains(struct mc_pcie *port)
++static int mc_allocate_msi_domains(struct plda_pcie_rp *port)
+ {
+ struct device *dev = port->dev;
+ struct fwnode_handle *fwnode = of_node_to_fwnode(dev->of_node);
+- struct mc_msi *msi = &port->msi;
++ struct plda_msi *msi = &port->msi;
+
+ mutex_init(&port->msi.lock);
+
+@@ -484,7 +488,7 @@ static int mc_allocate_msi_domains(struct mc_pcie *port)
+
+ static void mc_handle_intx(struct irq_desc *desc)
+ {
+- struct mc_pcie *port = irq_desc_get_handler_data(desc);
++ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+ struct device *dev = port->dev;
+ void __iomem *bridge_base_addr = port->bridge_addr;
+@@ -511,7 +515,7 @@ static void mc_handle_intx(struct irq_desc *desc)
+
+ static void mc_ack_intx_irq(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+
+@@ -520,7 +524,7 @@ static void mc_ack_intx_irq(struct irq_data *data)
+
+ static void mc_mask_intx_irq(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long flags;
+ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+@@ -535,7 +539,7 @@ static void mc_mask_intx_irq(struct irq_data *data)
+
+ static void mc_unmask_intx_irq(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ unsigned long flags;
+ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+@@ -625,21 +629,22 @@ static u32 local_events(struct mc_pcie *port)
+ return val;
+ }
+
+-static u32 get_events(struct mc_pcie *port)
++static u32 get_events(struct plda_pcie_rp *port)
+ {
++ struct mc_pcie *mc_port = container_of(port, struct mc_pcie, plda);
+ u32 events = 0;
+
+- events |= pcie_events(port);
+- events |= sec_errors(port);
+- events |= ded_errors(port);
+- events |= local_events(port);
++ events |= pcie_events(mc_port);
++ events |= sec_errors(mc_port);
++ events |= ded_errors(mc_port);
++ events |= local_events(mc_port);
+
+ return events;
+ }
+
+ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+ {
+- struct mc_pcie *port = dev_id;
++ struct plda_pcie_rp *port = dev_id;
+ struct device *dev = port->dev;
+ struct irq_data *data;
+
+@@ -655,7 +660,7 @@ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+
+ static void mc_handle_event(struct irq_desc *desc)
+ {
+- struct mc_pcie *port = irq_desc_get_handler_data(desc);
++ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+ unsigned long events;
+ u32 bit;
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+@@ -672,12 +677,13 @@ static void mc_handle_event(struct irq_desc *desc)
+
+ static void mc_ack_event_irq(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ struct mc_pcie *mc_port = container_of(port, struct mc_pcie, plda);
+ u32 event = data->hwirq;
+ void __iomem *addr;
+ u32 mask;
+
+- addr = port->axi_base_addr + event_descs[event].base +
++ addr = mc_port->axi_base_addr + event_descs[event].base +
+ event_descs[event].offset;
+ mask = event_descs[event].mask;
+ mask |= event_descs[event].enb_mask;
+@@ -687,13 +693,14 @@ static void mc_ack_event_irq(struct irq_data *data)
+
+ static void mc_mask_event_irq(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ struct mc_pcie *mc_port = container_of(port, struct mc_pcie, plda);
+ u32 event = data->hwirq;
+ void __iomem *addr;
+ u32 mask;
+ u32 val;
+
+- addr = port->axi_base_addr + event_descs[event].base +
++ addr = mc_port->axi_base_addr + event_descs[event].base +
+ event_descs[event].mask_offset;
+ mask = event_descs[event].mask;
+ if (event_descs[event].enb_mask) {
+@@ -717,13 +724,14 @@ static void mc_mask_event_irq(struct irq_data *data)
+
+ static void mc_unmask_event_irq(struct irq_data *data)
+ {
+- struct mc_pcie *port = irq_data_get_irq_chip_data(data);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ struct mc_pcie *mc_port = container_of(port, struct mc_pcie, plda);
+ u32 event = data->hwirq;
+ void __iomem *addr;
+ u32 mask;
+ u32 val;
+
+- addr = port->axi_base_addr + event_descs[event].base +
++ addr = mc_port->axi_base_addr + event_descs[event].base +
+ event_descs[event].mask_offset;
+ mask = event_descs[event].mask;
+
+@@ -811,7 +819,7 @@ static int mc_pcie_init_clks(struct device *dev)
+ return 0;
+ }
+
+-static int mc_pcie_init_irq_domains(struct mc_pcie *port)
++static int mc_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ {
+ struct device *dev = port->dev;
+ struct device_node *node = dev->of_node;
+@@ -889,7 +897,7 @@ static void mc_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ }
+
+ static int mc_pcie_setup_windows(struct platform_device *pdev,
+- struct mc_pcie *port)
++ struct plda_pcie_rp *port)
+ {
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
+@@ -970,7 +978,7 @@ static void mc_disable_interrupts(struct mc_pcie *port)
+ writel_relaxed(GENMASK(31, 0), bridge_base_addr + ISTATUS_HOST);
+ }
+
+-static int mc_init_interrupts(struct platform_device *pdev, struct mc_pcie *port)
++static int mc_init_interrupts(struct platform_device *pdev, struct plda_pcie_rp *port)
+ {
+ struct device *dev = &pdev->dev;
+ int irq;
+@@ -1043,12 +1051,12 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ mc_pcie_enable_msi(port, cfg->win);
+
+ /* Configure non-config space outbound ranges */
+- ret = mc_pcie_setup_windows(pdev, port);
++ ret = mc_pcie_setup_windows(pdev, &port->plda);
+ if (ret)
+ return ret;
+
+ /* Address translation is up; safe to enable interrupts */
+- ret = mc_init_interrupts(pdev, port);
++ ret = mc_init_interrupts(pdev, &port->plda);
+ if (ret)
+ return ret;
+
+@@ -1059,6 +1067,7 @@ static int mc_host_probe(struct platform_device *pdev)
+ {
+ struct device *dev = &pdev->dev;
+ void __iomem *bridge_base_addr;
++ struct plda_pcie_rp *plda;
+ int ret;
+ u32 val;
+
+@@ -1066,7 +1075,8 @@ static int mc_host_probe(struct platform_device *pdev)
+ if (!port)
+ return -ENOMEM;
+
+- port->dev = dev;
++ plda = &port->plda;
++ plda->dev = dev;
+
+ port->axi_base_addr = devm_platform_ioremap_resource(pdev, 1);
+ if (IS_ERR(port->axi_base_addr))
+@@ -1075,7 +1085,7 @@ static int mc_host_probe(struct platform_device *pdev)
+ mc_disable_interrupts(port);
+
+ bridge_base_addr = port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
+- port->bridge_addr = bridge_base_addr;
++ plda->bridge_addr = bridge_base_addr;
+
+ /* Allow enabling MSI by disabling MSI-X */
+ val = readl(bridge_base_addr + PCIE_PCI_IRQ_DW0);
+@@ -1087,10 +1097,10 @@ static int mc_host_probe(struct platform_device *pdev)
+ val &= NUM_MSI_MSGS_MASK;
+ val >>= NUM_MSI_MSGS_SHIFT;
+
+- port->msi.num_vectors = 1 << val;
++ plda->msi.num_vectors = 1 << val;
+
+ /* Pick vector address from design */
+- port->msi.vector_phy = readl_relaxed(bridge_base_addr + IMSI_ADDR);
++ plda->msi.vector_phy = readl_relaxed(bridge_base_addr + IMSI_ADDR);
+
+ ret = mc_pcie_init_clks(dev);
+ if (ret) {
+--
+2.43.0
+
+
+From 68cfb6ce3d0d855399cc6d7505cc8ac3ba56afa2 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:56 +0800
+Subject: [PATCH 06/23] PCI: microchip: Move PCIe host data structures to
+ plda-pcie.h
+
+Move the common data structures definition to head file for these two data
+structures can be re-used.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-7-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 20 ------------------
+ drivers/pci/controller/plda/pcie-plda.h | 21 +++++++++++++++++++
+ 2 files changed, 21 insertions(+), 20 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index df0736f688ce..a554a56cc0e8 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -21,9 +21,6 @@
+ #include "../../pci.h"
+ #include "pcie-plda.h"
+
+-/* Number of MSI IRQs */
+-#define PLDA_MAX_NUM_MSI_IRQS 32
+-
+ /* PCIe Bridge Phy and Controller Phy offsets */
+ #define MC_PCIE1_BRIDGE_ADDR 0x00008000u
+ #define MC_PCIE1_CTRL_ADDR 0x0000a000u
+@@ -179,23 +176,6 @@ struct event_map {
+ u32 event_bit;
+ };
+
+-struct plda_msi {
+- struct mutex lock; /* Protect used bitmap */
+- struct irq_domain *msi_domain;
+- struct irq_domain *dev_domain;
+- u32 num_vectors;
+- u64 vector_phy;
+- DECLARE_BITMAP(used, PLDA_MAX_NUM_MSI_IRQS);
+-};
+-
+-struct plda_pcie_rp {
+- struct device *dev;
+- struct irq_domain *intx_domain;
+- struct irq_domain *event_domain;
+- raw_spinlock_t lock;
+- struct plda_msi msi;
+- void __iomem *bridge_addr;
+-};
+
+ struct mc_pcie {
+ struct plda_pcie_rp plda;
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index cad3a98d967e..7bec6a470758 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -6,6 +6,9 @@
+ #ifndef _PCIE_PLDA_H
+ #define _PCIE_PLDA_H
+
++/* Number of MSI IRQs */
++#define PLDA_MAX_NUM_MSI_IRQS 32
++
+ /* PCIe Bridge Phy Regs */
+ #define PCIE_PCI_IRQ_DW0 0xa8
+ #define MSIX_CAP_MASK BIT(31)
+@@ -105,4 +108,22 @@ enum plda_int_event {
+
+ #define PLDA_MAX_INT_NUM (PLDA_NUM_DMA_EVENTS + PLDA_INT_EVENT_NUM)
+
++struct plda_msi {
++ struct mutex lock; /* Protect used bitmap */
++ struct irq_domain *msi_domain;
++ struct irq_domain *dev_domain;
++ u32 num_vectors;
++ u64 vector_phy;
++ DECLARE_BITMAP(used, PLDA_MAX_NUM_MSI_IRQS);
++};
++
++struct plda_pcie_rp {
++ struct device *dev;
++ struct irq_domain *intx_domain;
++ struct irq_domain *event_domain;
++ raw_spinlock_t lock;
++ struct plda_msi msi;
++ void __iomem *bridge_addr;
++};
++
+ #endif
+--
+2.43.0
+
+
+From 5d5ba2f5b6133a3d4dc0d84d9777fa28805f14f1 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:57 +0800
+Subject: [PATCH 07/23] PCI: microchip: Rename two setup functions
+
+Rename two setup functions to plda prefix. Prepare to re-use these two
+setup function.
+
+For two setup functions names are similar, rename mc_pcie_setup_windows()
+to plda_pcie_setup_iomems().
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-8-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 24 +++++++++----------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index a554a56cc0e8..9b367927cd32 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -838,9 +838,9 @@ static int mc_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ return mc_allocate_msi_domains(port);
+ }
+
+-static void mc_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+- phys_addr_t axi_addr, phys_addr_t pci_addr,
+- size_t size)
++static void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
++ phys_addr_t axi_addr, phys_addr_t pci_addr,
++ size_t size)
+ {
+ u32 atr_sz = ilog2(size) - 1;
+ u32 val;
+@@ -876,8 +876,8 @@ static void mc_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ writel(0, bridge_base_addr + ATR0_PCIE_WIN0_SRC_ADDR);
+ }
+
+-static int mc_pcie_setup_windows(struct platform_device *pdev,
+- struct plda_pcie_rp *port)
++static int plda_pcie_setup_iomems(struct platform_device *pdev,
++ struct plda_pcie_rp *port)
+ {
+ void __iomem *bridge_base_addr = port->bridge_addr;
+ struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
+@@ -888,9 +888,9 @@ static int mc_pcie_setup_windows(struct platform_device *pdev,
+ resource_list_for_each_entry(entry, &bridge->windows) {
+ if (resource_type(entry->res) == IORESOURCE_MEM) {
+ pci_addr = entry->res->start - entry->offset;
+- mc_pcie_setup_window(bridge_base_addr, index,
+- entry->res->start, pci_addr,
+- resource_size(entry->res));
++ plda_pcie_setup_window(bridge_base_addr, index,
++ entry->res->start, pci_addr,
++ resource_size(entry->res));
+ index++;
+ }
+ }
+@@ -1023,15 +1023,15 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ int ret;
+
+ /* Configure address translation table 0 for PCIe config space */
+- mc_pcie_setup_window(bridge_base_addr, 0, cfg->res.start,
+- cfg->res.start,
+- resource_size(&cfg->res));
++ plda_pcie_setup_window(bridge_base_addr, 0, cfg->res.start,
++ cfg->res.start,
++ resource_size(&cfg->res));
+
+ /* Need some fixups in config space */
+ mc_pcie_enable_msi(port, cfg->win);
+
+ /* Configure non-config space outbound ranges */
+- ret = mc_pcie_setup_windows(pdev, &port->plda);
++ ret = plda_pcie_setup_iomems(pdev, &port->plda);
+ if (ret)
+ return ret;
+
+--
+2.43.0
+
+
+From cc5abca4b49d346506fd44473be579fdb8949647 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:58 +0800
+Subject: [PATCH 08/23] PCI: microchip: Change the argument of
+ plda_pcie_setup_iomems()
+
+If other vendor do not select PCI_HOST_COMMON, the driver data is not
+struct pci_host_bridge.
+
+Move calling platform_get_drvdata() to mc_platform_init().
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-9-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/controller/plda/pcie-microchip-host.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 9b367927cd32..805870aed61d 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -876,11 +876,10 @@ static void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ writel(0, bridge_base_addr + ATR0_PCIE_WIN0_SRC_ADDR);
+ }
+
+-static int plda_pcie_setup_iomems(struct platform_device *pdev,
++static int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
+ struct plda_pcie_rp *port)
+ {
+ void __iomem *bridge_base_addr = port->bridge_addr;
+- struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
+ struct resource_entry *entry;
+ u64 pci_addr;
+ u32 index = 1;
+@@ -1018,6 +1017,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ {
+ struct device *dev = cfg->parent;
+ struct platform_device *pdev = to_platform_device(dev);
++ struct pci_host_bridge *bridge = platform_get_drvdata(pdev);
+ void __iomem *bridge_base_addr =
+ port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
+ int ret;
+@@ -1031,7 +1031,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ mc_pcie_enable_msi(port, cfg->win);
+
+ /* Configure non-config space outbound ranges */
+- ret = plda_pcie_setup_iomems(pdev, &port->plda);
++ ret = plda_pcie_setup_iomems(bridge, &port->plda);
+ if (ret)
+ return ret;
+
+--
+2.43.0
+
+
+From f3c1d38d50a32097e65d63d14402d1b2d0b80de6 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:05:59 +0800
+Subject: [PATCH 09/23] PCI: microchip: Move setup functions to
+ pcie-plda-host.c
+
+Move setup functions to common pcie-plda-host.c. So these two functions
+can be re-used.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-10-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/controller/plda/Kconfig | 4 +
+ drivers/pci/controller/plda/Makefile | 1 +
+ .../pci/controller/plda/pcie-microchip-host.c | 59 ---------------
+ drivers/pci/controller/plda/pcie-plda-host.c | 74 +++++++++++++++++++
+ drivers/pci/controller/plda/pcie-plda.h | 5 ++
+ 5 files changed, 84 insertions(+), 59 deletions(-)
+ create mode 100644 drivers/pci/controller/plda/pcie-plda-host.c
+
+diff --git a/drivers/pci/controller/plda/Kconfig b/drivers/pci/controller/plda/Kconfig
+index 5cb3be4fc98c..e54a82ee94f5 100644
+--- a/drivers/pci/controller/plda/Kconfig
++++ b/drivers/pci/controller/plda/Kconfig
+@@ -3,10 +3,14 @@
+ menu "PLDA-based PCIe controllers"
+ depends on PCI
+
++config PCIE_PLDA_HOST
++ bool
++
+ config PCIE_MICROCHIP_HOST
+ tristate "Microchip AXI PCIe controller"
+ depends on PCI_MSI && OF
+ select PCI_HOST_COMMON
++ select PCIE_PLDA_HOST
+ help
+ Say Y here if you want kernel to support the Microchip AXI PCIe
+ Host Bridge driver.
+diff --git a/drivers/pci/controller/plda/Makefile b/drivers/pci/controller/plda/Makefile
+index e1a265cbf91c..4340ab007f44 100644
+--- a/drivers/pci/controller/plda/Makefile
++++ b/drivers/pci/controller/plda/Makefile
+@@ -1,2 +1,3 @@
+ # SPDX-License-Identifier: GPL-2.0
++obj-$(CONFIG_PCIE_PLDA_HOST) += pcie-plda-host.o
+ obj-$(CONFIG_PCIE_MICROCHIP_HOST) += pcie-microchip-host.o
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 805870aed61d..573ad31c578a 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -838,65 +838,6 @@ static int mc_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ return mc_allocate_msi_domains(port);
+ }
+
+-static void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+- phys_addr_t axi_addr, phys_addr_t pci_addr,
+- size_t size)
+-{
+- u32 atr_sz = ilog2(size) - 1;
+- u32 val;
+-
+- if (index == 0)
+- val = PCIE_CONFIG_INTERFACE;
+- else
+- val = PCIE_TX_RX_INTERFACE;
+-
+- writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
+- ATR0_AXI4_SLV0_TRSL_PARAM);
+-
+- val = lower_32_bits(axi_addr) | (atr_sz << ATR_SIZE_SHIFT) |
+- ATR_IMPL_ENABLE;
+- writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
+- ATR0_AXI4_SLV0_SRCADDR_PARAM);
+-
+- val = upper_32_bits(axi_addr);
+- writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
+- ATR0_AXI4_SLV0_SRC_ADDR);
+-
+- val = lower_32_bits(pci_addr);
+- writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
+- ATR0_AXI4_SLV0_TRSL_ADDR_LSB);
+-
+- val = upper_32_bits(pci_addr);
+- writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
+- ATR0_AXI4_SLV0_TRSL_ADDR_UDW);
+-
+- val = readl(bridge_base_addr + ATR0_PCIE_WIN0_SRCADDR_PARAM);
+- val |= (ATR0_PCIE_ATR_SIZE << ATR0_PCIE_ATR_SIZE_SHIFT);
+- writel(val, bridge_base_addr + ATR0_PCIE_WIN0_SRCADDR_PARAM);
+- writel(0, bridge_base_addr + ATR0_PCIE_WIN0_SRC_ADDR);
+-}
+-
+-static int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
+- struct plda_pcie_rp *port)
+-{
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- struct resource_entry *entry;
+- u64 pci_addr;
+- u32 index = 1;
+-
+- resource_list_for_each_entry(entry, &bridge->windows) {
+- if (resource_type(entry->res) == IORESOURCE_MEM) {
+- pci_addr = entry->res->start - entry->offset;
+- plda_pcie_setup_window(bridge_base_addr, index,
+- entry->res->start, pci_addr,
+- resource_size(entry->res));
+- index++;
+- }
+- }
+-
+- return 0;
+-}
+-
+ static inline void mc_clear_secs(struct mc_pcie *port)
+ {
+ void __iomem *ctrl_base_addr = port->axi_base_addr + MC_PCIE_CTRL_ADDR;
+diff --git a/drivers/pci/controller/plda/pcie-plda-host.c b/drivers/pci/controller/plda/pcie-plda-host.c
+new file mode 100644
+index 000000000000..40139d998568
+--- /dev/null
++++ b/drivers/pci/controller/plda/pcie-plda-host.c
+@@ -0,0 +1,74 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * PLDA PCIe XpressRich host controller driver
++ *
++ * Copyright (C) 2023 Microchip Co. Ltd
++ *
++ * Author: Daire McNamara <daire.mcnamara@microchip.com>
++ */
++
++#include <linux/pci_regs.h>
++#include <linux/pci-ecam.h>
++
++#include "pcie-plda.h"
++
++void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
++ phys_addr_t axi_addr, phys_addr_t pci_addr,
++ size_t size)
++{
++ u32 atr_sz = ilog2(size) - 1;
++ u32 val;
++
++ if (index == 0)
++ val = PCIE_CONFIG_INTERFACE;
++ else
++ val = PCIE_TX_RX_INTERFACE;
++
++ writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
++ ATR0_AXI4_SLV0_TRSL_PARAM);
++
++ val = lower_32_bits(axi_addr) | (atr_sz << ATR_SIZE_SHIFT) |
++ ATR_IMPL_ENABLE;
++ writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
++ ATR0_AXI4_SLV0_SRCADDR_PARAM);
++
++ val = upper_32_bits(axi_addr);
++ writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
++ ATR0_AXI4_SLV0_SRC_ADDR);
++
++ val = lower_32_bits(pci_addr);
++ writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
++ ATR0_AXI4_SLV0_TRSL_ADDR_LSB);
++
++ val = upper_32_bits(pci_addr);
++ writel(val, bridge_base_addr + (index * ATR_ENTRY_SIZE) +
++ ATR0_AXI4_SLV0_TRSL_ADDR_UDW);
++
++ val = readl(bridge_base_addr + ATR0_PCIE_WIN0_SRCADDR_PARAM);
++ val |= (ATR0_PCIE_ATR_SIZE << ATR0_PCIE_ATR_SIZE_SHIFT);
++ writel(val, bridge_base_addr + ATR0_PCIE_WIN0_SRCADDR_PARAM);
++ writel(0, bridge_base_addr + ATR0_PCIE_WIN0_SRC_ADDR);
++}
++EXPORT_SYMBOL_GPL(plda_pcie_setup_window);
++
++int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
++ struct plda_pcie_rp *port)
++{
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ struct resource_entry *entry;
++ u64 pci_addr;
++ u32 index = 1;
++
++ resource_list_for_each_entry(entry, &bridge->windows) {
++ if (resource_type(entry->res) == IORESOURCE_MEM) {
++ pci_addr = entry->res->start - entry->offset;
++ plda_pcie_setup_window(bridge_base_addr, index,
++ entry->res->start, pci_addr,
++ resource_size(entry->res));
++ index++;
++ }
++ }
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(plda_pcie_setup_iomems);
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 7bec6a470758..3a17d8ab5bb2 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -126,4 +126,9 @@ struct plda_pcie_rp {
+ void __iomem *bridge_addr;
+ };
+
++void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
++ phys_addr_t axi_addr, phys_addr_t pci_addr,
++ size_t size);
++int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
++ struct plda_pcie_rp *port);
+ #endif
+--
+2.43.0
+
+
+From 530d17ad6ca6d827a3739f4f7424ba9a886df3ab Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:00 +0800
+Subject: [PATCH 10/23] PCI: microchip: Rename interrupt related functions
+
+Rename mc_* to plda_* for IRQ functions and related IRQ domain ops data
+instances.
+
+MSI, INTx interrupt code and IRQ init code are all can be re-used.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Acked-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-11-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 109 +++++++++---------
+ 1 file changed, 57 insertions(+), 52 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 573ad31c578a..18bc352db389 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -318,7 +318,7 @@ static void mc_pcie_enable_msi(struct mc_pcie *port, void __iomem *ecam)
+ ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_ADDRESS_HI);
+ }
+
+-static void mc_handle_msi(struct irq_desc *desc)
++static void plda_handle_msi(struct irq_desc *desc)
+ {
+ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+@@ -346,7 +346,7 @@ static void mc_handle_msi(struct irq_desc *desc)
+ chained_irq_exit(chip, desc);
+ }
+
+-static void mc_msi_bottom_irq_ack(struct irq_data *data)
++static void plda_msi_bottom_irq_ack(struct irq_data *data)
+ {
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+@@ -355,7 +355,7 @@ static void mc_msi_bottom_irq_ack(struct irq_data *data)
+ writel_relaxed(BIT(bitpos), bridge_base_addr + ISTATUS_MSI);
+ }
+
+-static void mc_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
++static void plda_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
+ {
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ phys_addr_t addr = port->msi.vector_phy;
+@@ -368,21 +368,23 @@ static void mc_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
+ (int)data->hwirq, msg->address_hi, msg->address_lo);
+ }
+
+-static int mc_msi_set_affinity(struct irq_data *irq_data,
+- const struct cpumask *mask, bool force)
++static int plda_msi_set_affinity(struct irq_data *irq_data,
++ const struct cpumask *mask, bool force)
+ {
+ return -EINVAL;
+ }
+
+-static struct irq_chip mc_msi_bottom_irq_chip = {
+- .name = "Microchip MSI",
+- .irq_ack = mc_msi_bottom_irq_ack,
+- .irq_compose_msi_msg = mc_compose_msi_msg,
+- .irq_set_affinity = mc_msi_set_affinity,
++static struct irq_chip plda_msi_bottom_irq_chip = {
++ .name = "PLDA MSI",
++ .irq_ack = plda_msi_bottom_irq_ack,
++ .irq_compose_msi_msg = plda_compose_msi_msg,
++ .irq_set_affinity = plda_msi_set_affinity,
+ };
+
+-static int mc_irq_msi_domain_alloc(struct irq_domain *domain, unsigned int virq,
+- unsigned int nr_irqs, void *args)
++static int plda_irq_msi_domain_alloc(struct irq_domain *domain,
++ unsigned int virq,
++ unsigned int nr_irqs,
++ void *args)
+ {
+ struct plda_pcie_rp *port = domain->host_data;
+ struct plda_msi *msi = &port->msi;
+@@ -397,7 +399,7 @@ static int mc_irq_msi_domain_alloc(struct irq_domain *domain, unsigned int virq,
+
+ set_bit(bit, msi->used);
+
+- irq_domain_set_info(domain, virq, bit, &mc_msi_bottom_irq_chip,
++ irq_domain_set_info(domain, virq, bit, &plda_msi_bottom_irq_chip,
+ domain->host_data, handle_edge_irq, NULL, NULL);
+
+ mutex_unlock(&msi->lock);
+@@ -405,8 +407,9 @@ static int mc_irq_msi_domain_alloc(struct irq_domain *domain, unsigned int virq,
+ return 0;
+ }
+
+-static void mc_irq_msi_domain_free(struct irq_domain *domain, unsigned int virq,
+- unsigned int nr_irqs)
++static void plda_irq_msi_domain_free(struct irq_domain *domain,
++ unsigned int virq,
++ unsigned int nr_irqs)
+ {
+ struct irq_data *d = irq_domain_get_irq_data(domain, virq);
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(d);
+@@ -423,24 +426,24 @@ static void mc_irq_msi_domain_free(struct irq_domain *domain, unsigned int virq,
+ }
+
+ static const struct irq_domain_ops msi_domain_ops = {
+- .alloc = mc_irq_msi_domain_alloc,
+- .free = mc_irq_msi_domain_free,
++ .alloc = plda_irq_msi_domain_alloc,
++ .free = plda_irq_msi_domain_free,
+ };
+
+-static struct irq_chip mc_msi_irq_chip = {
+- .name = "Microchip PCIe MSI",
++static struct irq_chip plda_msi_irq_chip = {
++ .name = "PLDA PCIe MSI",
+ .irq_ack = irq_chip_ack_parent,
+ .irq_mask = pci_msi_mask_irq,
+ .irq_unmask = pci_msi_unmask_irq,
+ };
+
+-static struct msi_domain_info mc_msi_domain_info = {
++static struct msi_domain_info plda_msi_domain_info = {
+ .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
+ MSI_FLAG_PCI_MSIX),
+- .chip = &mc_msi_irq_chip,
++ .chip = &plda_msi_irq_chip,
+ };
+
+-static int mc_allocate_msi_domains(struct plda_pcie_rp *port)
++static int plda_allocate_msi_domains(struct plda_pcie_rp *port)
+ {
+ struct device *dev = port->dev;
+ struct fwnode_handle *fwnode = of_node_to_fwnode(dev->of_node);
+@@ -455,7 +458,8 @@ static int mc_allocate_msi_domains(struct plda_pcie_rp *port)
+ return -ENOMEM;
+ }
+
+- msi->msi_domain = pci_msi_create_irq_domain(fwnode, &mc_msi_domain_info,
++ msi->msi_domain = pci_msi_create_irq_domain(fwnode,
++ &plda_msi_domain_info,
+ msi->dev_domain);
+ if (!msi->msi_domain) {
+ dev_err(dev, "failed to create MSI domain\n");
+@@ -466,7 +470,7 @@ static int mc_allocate_msi_domains(struct plda_pcie_rp *port)
+ return 0;
+ }
+
+-static void mc_handle_intx(struct irq_desc *desc)
++static void plda_handle_intx(struct irq_desc *desc)
+ {
+ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+@@ -493,7 +497,7 @@ static void mc_handle_intx(struct irq_desc *desc)
+ chained_irq_exit(chip, desc);
+ }
+
+-static void mc_ack_intx_irq(struct irq_data *data)
++static void plda_ack_intx_irq(struct irq_data *data)
+ {
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+@@ -502,7 +506,7 @@ static void mc_ack_intx_irq(struct irq_data *data)
+ writel_relaxed(mask, bridge_base_addr + ISTATUS_LOCAL);
+ }
+
+-static void mc_mask_intx_irq(struct irq_data *data)
++static void plda_mask_intx_irq(struct irq_data *data)
+ {
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+@@ -517,7 +521,7 @@ static void mc_mask_intx_irq(struct irq_data *data)
+ raw_spin_unlock_irqrestore(&port->lock, flags);
+ }
+
+-static void mc_unmask_intx_irq(struct irq_data *data)
++static void plda_unmask_intx_irq(struct irq_data *data)
+ {
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+ void __iomem *bridge_base_addr = port->bridge_addr;
+@@ -532,24 +536,24 @@ static void mc_unmask_intx_irq(struct irq_data *data)
+ raw_spin_unlock_irqrestore(&port->lock, flags);
+ }
+
+-static struct irq_chip mc_intx_irq_chip = {
+- .name = "Microchip PCIe INTx",
+- .irq_ack = mc_ack_intx_irq,
+- .irq_mask = mc_mask_intx_irq,
+- .irq_unmask = mc_unmask_intx_irq,
++static struct irq_chip plda_intx_irq_chip = {
++ .name = "PLDA PCIe INTx",
++ .irq_ack = plda_ack_intx_irq,
++ .irq_mask = plda_mask_intx_irq,
++ .irq_unmask = plda_unmask_intx_irq,
+ };
+
+-static int mc_pcie_intx_map(struct irq_domain *domain, unsigned int irq,
+- irq_hw_number_t hwirq)
++static int plda_pcie_intx_map(struct irq_domain *domain, unsigned int irq,
++ irq_hw_number_t hwirq)
+ {
+- irq_set_chip_and_handler(irq, &mc_intx_irq_chip, handle_level_irq);
++ irq_set_chip_and_handler(irq, &plda_intx_irq_chip, handle_level_irq);
+ irq_set_chip_data(irq, domain->host_data);
+
+ return 0;
+ }
+
+ static const struct irq_domain_ops intx_domain_ops = {
+- .map = mc_pcie_intx_map,
++ .map = plda_pcie_intx_map,
+ };
+
+ static inline u32 reg_to_event(u32 reg, struct event_map field)
+@@ -609,7 +613,7 @@ static u32 local_events(struct mc_pcie *port)
+ return val;
+ }
+
+-static u32 get_events(struct plda_pcie_rp *port)
++static u32 mc_get_events(struct plda_pcie_rp *port)
+ {
+ struct mc_pcie *mc_port = container_of(port, struct mc_pcie, plda);
+ u32 events = 0;
+@@ -638,7 +642,7 @@ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+ return IRQ_HANDLED;
+ }
+
+-static void mc_handle_event(struct irq_desc *desc)
++static void plda_handle_event(struct irq_desc *desc)
+ {
+ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+ unsigned long events;
+@@ -647,7 +651,7 @@ static void mc_handle_event(struct irq_desc *desc)
+
+ chained_irq_enter(chip, desc);
+
+- events = get_events(port);
++ events = mc_get_events(port);
+
+ for_each_set_bit(bit, &events, NUM_EVENTS)
+ generic_handle_domain_irq(port->event_domain, bit);
+@@ -741,8 +745,8 @@ static struct irq_chip mc_event_irq_chip = {
+ .irq_unmask = mc_unmask_event_irq,
+ };
+
+-static int mc_pcie_event_map(struct irq_domain *domain, unsigned int irq,
+- irq_hw_number_t hwirq)
++static int plda_pcie_event_map(struct irq_domain *domain, unsigned int irq,
++ irq_hw_number_t hwirq)
+ {
+ irq_set_chip_and_handler(irq, &mc_event_irq_chip, handle_level_irq);
+ irq_set_chip_data(irq, domain->host_data);
+@@ -750,8 +754,8 @@ static int mc_pcie_event_map(struct irq_domain *domain, unsigned int irq,
+ return 0;
+ }
+
+-static const struct irq_domain_ops event_domain_ops = {
+- .map = mc_pcie_event_map,
++static const struct irq_domain_ops plda_event_domain_ops = {
++ .map = plda_pcie_event_map,
+ };
+
+ static inline void mc_pcie_deinit_clk(void *data)
+@@ -799,7 +803,7 @@ static int mc_pcie_init_clks(struct device *dev)
+ return 0;
+ }
+
+-static int mc_pcie_init_irq_domains(struct plda_pcie_rp *port)
++static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ {
+ struct device *dev = port->dev;
+ struct device_node *node = dev->of_node;
+@@ -813,7 +817,8 @@ static int mc_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ }
+
+ port->event_domain = irq_domain_add_linear(pcie_intc_node, NUM_EVENTS,
+- &event_domain_ops, port);
++ &plda_event_domain_ops,
++ port);
+ if (!port->event_domain) {
+ dev_err(dev, "failed to get event domain\n");
+ of_node_put(pcie_intc_node);
+@@ -835,7 +840,7 @@ static int mc_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ of_node_put(pcie_intc_node);
+ raw_spin_lock_init(&port->lock);
+
+- return mc_allocate_msi_domains(port);
++ return plda_allocate_msi_domains(port);
+ }
+
+ static inline void mc_clear_secs(struct mc_pcie *port)
+@@ -898,14 +903,14 @@ static void mc_disable_interrupts(struct mc_pcie *port)
+ writel_relaxed(GENMASK(31, 0), bridge_base_addr + ISTATUS_HOST);
+ }
+
+-static int mc_init_interrupts(struct platform_device *pdev, struct plda_pcie_rp *port)
++static int plda_init_interrupts(struct platform_device *pdev, struct plda_pcie_rp *port)
+ {
+ struct device *dev = &pdev->dev;
+ int irq;
+ int i, intx_irq, msi_irq, event_irq;
+ int ret;
+
+- ret = mc_pcie_init_irq_domains(port);
++ ret = plda_pcie_init_irq_domains(port);
+ if (ret) {
+ dev_err(dev, "failed creating IRQ domains\n");
+ return ret;
+@@ -938,7 +943,7 @@ static int mc_init_interrupts(struct platform_device *pdev, struct plda_pcie_rp
+ }
+
+ /* Plug the INTx chained handler */
+- irq_set_chained_handler_and_data(intx_irq, mc_handle_intx, port);
++ irq_set_chained_handler_and_data(intx_irq, plda_handle_intx, port);
+
+ msi_irq = irq_create_mapping(port->event_domain,
+ EVENT_LOCAL_PM_MSI_INT_MSI);
+@@ -946,10 +951,10 @@ static int mc_init_interrupts(struct platform_device *pdev, struct plda_pcie_rp
+ return -ENXIO;
+
+ /* Plug the MSI chained handler */
+- irq_set_chained_handler_and_data(msi_irq, mc_handle_msi, port);
++ irq_set_chained_handler_and_data(msi_irq, plda_handle_msi, port);
+
+ /* Plug the main event chained handler */
+- irq_set_chained_handler_and_data(irq, mc_handle_event, port);
++ irq_set_chained_handler_and_data(irq, plda_handle_event, port);
+
+ return 0;
+ }
+@@ -977,7 +982,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ return ret;
+
+ /* Address translation is up; safe to enable interrupts */
+- ret = mc_init_interrupts(pdev, &port->plda);
++ ret = plda_init_interrupts(pdev, &port->plda);
+ if (ret)
+ return ret;
+
+--
+2.43.0
+
+
+From 0f2c8b23c449631c31774d68e54f0586719b9f83 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:01 +0800
+Subject: [PATCH 11/23] PCI: microchip: Add num_events field to struct
+ plda_pcie_rp
+
+The number of events is different across platforms. In order to share
+interrupt processing code, add a variable that defines the number of
+events so that it can be set per-platform instead of hardcoding it.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-12-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/controller/plda/pcie-microchip-host.c | 8 +++++---
+ drivers/pci/controller/plda/pcie-plda.h | 1 +
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 18bc352db389..0a5cd8b214cd 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -653,7 +653,7 @@ static void plda_handle_event(struct irq_desc *desc)
+
+ events = mc_get_events(port);
+
+- for_each_set_bit(bit, &events, NUM_EVENTS)
++ for_each_set_bit(bit, &events, port->num_events)
+ generic_handle_domain_irq(port->event_domain, bit);
+
+ chained_irq_exit(chip, desc);
+@@ -816,7 +816,8 @@ static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ return -EINVAL;
+ }
+
+- port->event_domain = irq_domain_add_linear(pcie_intc_node, NUM_EVENTS,
++ port->event_domain = irq_domain_add_linear(pcie_intc_node,
++ port->num_events,
+ &plda_event_domain_ops,
+ port);
+ if (!port->event_domain) {
+@@ -920,7 +921,7 @@ static int plda_init_interrupts(struct platform_device *pdev, struct plda_pcie_r
+ if (irq < 0)
+ return -ENODEV;
+
+- for (i = 0; i < NUM_EVENTS; i++) {
++ for (i = 0; i < port->num_events; i++) {
+ event_irq = irq_create_mapping(port->event_domain, i);
+ if (!event_irq) {
+ dev_err(dev, "failed to map hwirq %d\n", i);
+@@ -1012,6 +1013,7 @@ static int mc_host_probe(struct platform_device *pdev)
+
+ bridge_base_addr = port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
+ plda->bridge_addr = bridge_base_addr;
++ plda->num_events = NUM_EVENTS;
+
+ /* Allow enabling MSI by disabling MSI-X */
+ val = readl(bridge_base_addr + PCIE_PCI_IRQ_DW0);
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 3a17d8ab5bb2..adfca9f28458 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -124,6 +124,7 @@ struct plda_pcie_rp {
+ raw_spinlock_t lock;
+ struct plda_msi msi;
+ void __iomem *bridge_addr;
++ int num_events;
+ };
+
+ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+--
+2.43.0
+
+
+From 4e90f5c96dbf6799e63d7eaea36b5735f514400e Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:02 +0800
+Subject: [PATCH 12/23] PCI: microchip: Add request_event_irq() callback
+ function
+
+As PLDA dts binding doc(Documentation/devicetree/bindings/pci/
+plda,xpressrich3-axi-common.yaml) showes, PLDA PCIe contains an interrupt
+controller. Microchip Polarfire PCIe add some PCIe interrupts base on
+PLDA IP interrupt controller.
+
+Microchip Polarfire PCIe additional intrerrupts:
+EVENT_PCIE_L2_EXIT
+EVENT_PCIE_HOTRST_EXIT
+EVENT_PCIE_DLUP_EXIT
+EVENT_SEC_TX_RAM_SEC_ERR
+EVENT_SEC_RX_RAM_SEC_ERR
+....
+
+Both codes of register interrupts and mc_event_handler() contain
+additional interrupts symbol names, these can not be re-used. So add a
+new plda_event_handler() functions, which implements PLDA interrupt
+defalt handler. Add request_event_irq() callback function to
+compat Microchip Polorfire PCIe additional interrupts.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Acked-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-13-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 31 ++++++++++++++++---
+ drivers/pci/controller/plda/pcie-plda.h | 5 +++
+ 2 files changed, 32 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 0a5cd8b214cd..bf5ce33ee275 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -642,6 +642,11 @@ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+ return IRQ_HANDLED;
+ }
+
++static irqreturn_t plda_event_handler(int irq, void *dev_id)
++{
++ return IRQ_HANDLED;
++}
++
+ static void plda_handle_event(struct irq_desc *desc)
+ {
+ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+@@ -803,6 +808,17 @@ static int mc_pcie_init_clks(struct device *dev)
+ return 0;
+ }
+
++static int mc_request_event_irq(struct plda_pcie_rp *plda, int event_irq,
++ int event)
++{
++ return devm_request_irq(plda->dev, event_irq, mc_event_handler,
++ 0, event_cause[event].sym, plda);
++}
++
++static const struct plda_event mc_event = {
++ .request_event_irq = mc_request_event_irq,
++};
++
+ static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+ {
+ struct device *dev = port->dev;
+@@ -904,7 +920,9 @@ static void mc_disable_interrupts(struct mc_pcie *port)
+ writel_relaxed(GENMASK(31, 0), bridge_base_addr + ISTATUS_HOST);
+ }
+
+-static int plda_init_interrupts(struct platform_device *pdev, struct plda_pcie_rp *port)
++static int plda_init_interrupts(struct platform_device *pdev,
++ struct plda_pcie_rp *port,
++ const struct plda_event *event)
+ {
+ struct device *dev = &pdev->dev;
+ int irq;
+@@ -928,8 +946,13 @@ static int plda_init_interrupts(struct platform_device *pdev, struct plda_pcie_r
+ return -ENXIO;
+ }
+
+- ret = devm_request_irq(dev, event_irq, mc_event_handler,
+- 0, event_cause[i].sym, port);
++ if (event->request_event_irq)
++ ret = event->request_event_irq(port, event_irq, i);
++ else
++ ret = devm_request_irq(dev, event_irq,
++ plda_event_handler,
++ 0, NULL, port);
++
+ if (ret) {
+ dev_err(dev, "failed to request IRQ %d\n", event_irq);
+ return ret;
+@@ -983,7 +1006,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ return ret;
+
+ /* Address translation is up; safe to enable interrupts */
+- ret = plda_init_interrupts(pdev, &port->plda);
++ ret = plda_init_interrupts(pdev, &port->plda, &mc_event);
+ if (ret)
+ return ret;
+
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index adfca9f28458..16b81b23c213 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -127,6 +127,11 @@ struct plda_pcie_rp {
+ int num_events;
+ };
+
++struct plda_event {
++ int (*request_event_irq)(struct plda_pcie_rp *pcie,
++ int event_irq, int event);
++};
++
+ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ phys_addr_t axi_addr, phys_addr_t pci_addr,
+ size_t size);
+--
+2.43.0
+
+
+From 5b7f9e79770f81f51a53a1adbd6bfb4f97ebe2e0 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:03 +0800
+Subject: [PATCH 13/23] PCI: microchip: Add INTx and MSI event num to struct
+ plda_event
+
+The INTx and MSI interrupt event num is different in Microchip and
+StarFive platform.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Acked-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-14-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/controller/plda/pcie-microchip-host.c | 6 ++++--
+ drivers/pci/controller/plda/pcie-plda.h | 2 ++
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index bf5ce33ee275..8a51d3aa7e88 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -817,6 +817,8 @@ static int mc_request_event_irq(struct plda_pcie_rp *plda, int event_irq,
+
+ static const struct plda_event mc_event = {
+ .request_event_irq = mc_request_event_irq,
++ .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX,
++ .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI,
+ };
+
+ static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+@@ -960,7 +962,7 @@ static int plda_init_interrupts(struct platform_device *pdev,
+ }
+
+ intx_irq = irq_create_mapping(port->event_domain,
+- EVENT_LOCAL_PM_MSI_INT_INTX);
++ event->intx_event);
+ if (!intx_irq) {
+ dev_err(dev, "failed to map INTx interrupt\n");
+ return -ENXIO;
+@@ -970,7 +972,7 @@ static int plda_init_interrupts(struct platform_device *pdev,
+ irq_set_chained_handler_and_data(intx_irq, plda_handle_intx, port);
+
+ msi_irq = irq_create_mapping(port->event_domain,
+- EVENT_LOCAL_PM_MSI_INT_MSI);
++ event->msi_event);
+ if (!msi_irq)
+ return -ENXIO;
+
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 16b81b23c213..0efe64d5f688 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -130,6 +130,8 @@ struct plda_pcie_rp {
+ struct plda_event {
+ int (*request_event_irq)(struct plda_pcie_rp *pcie,
+ int event_irq, int event);
++ int intx_event;
++ int msi_event;
+ };
+
+ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+--
+2.43.0
+
+
+From 982d3f872fbf86323e7db898d02f3f0af36e4fa9 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:04 +0800
+Subject: [PATCH 14/23] PCI: microchip: Add get_events() callback and add PLDA
+ get_event()
+
+As PLDA dts binding doc(Documentation/devicetree/bindings/pci/
+plda,xpressrich3-axi-common.yaml) showes, PLDA PCIe contains an interrupt
+controller.
+
+PolarFire implements its own PCIe interrupts, additional to the regular
+PCIe interrupts, due to lack of an MSI controller, so the interrupt to
+event number mapping is different to the PLDA regular interrupts,
+necessitating a custom get_events() implementation.
+
+Microchip Polarfire PCIe additional intrerrupts:
+EVENT_PCIE_L2_EXIT
+EVENT_PCIE_HOTRST_EXIT
+EVENT_PCIE_DLUP_EXIT
+EVENT_SEC_TX_RAM_SEC_ERR
+EVENT_SEC_RX_RAM_SEC_ERR
+....
+
+plda_get_events() adds interrupt register to PLDA local event num mapping
+codes. All The PLDA interrupts can be seen in new added graph.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Acked-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-15-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 35 ++++++++++++++++++-
+ drivers/pci/controller/plda/pcie-plda.h | 32 +++++++++++++++++
+ 2 files changed, 66 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 8a51d3aa7e88..b3df373a2141 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -626,6 +626,26 @@ static u32 mc_get_events(struct plda_pcie_rp *port)
+ return events;
+ }
+
++static u32 plda_get_events(struct plda_pcie_rp *port)
++{
++ u32 events, val, origin;
++
++ origin = readl_relaxed(port->bridge_addr + ISTATUS_LOCAL);
++
++ /* MSI event and sys events */
++ val = (origin & SYS_AND_MSI_MASK) >> PM_MSI_INT_MSI_SHIFT;
++ events = val << (PM_MSI_INT_MSI_SHIFT - PCI_NUM_INTX + 1);
++
++ /* INTx events */
++ if (origin & PM_MSI_INT_INTX_MASK)
++ events |= BIT(PM_MSI_INT_INTX_SHIFT);
++
++ /* remains are same with register */
++ events |= origin & GENMASK(P_ATR_EVT_DOORBELL_SHIFT, 0);
++
++ return events;
++}
++
+ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+ {
+ struct plda_pcie_rp *port = dev_id;
+@@ -656,7 +676,7 @@ static void plda_handle_event(struct irq_desc *desc)
+
+ chained_irq_enter(chip, desc);
+
+- events = mc_get_events(port);
++ events = port->event_ops->get_events(port);
+
+ for_each_set_bit(bit, &events, port->num_events)
+ generic_handle_domain_irq(port->event_domain, bit);
+@@ -750,6 +770,10 @@ static struct irq_chip mc_event_irq_chip = {
+ .irq_unmask = mc_unmask_event_irq,
+ };
+
++static const struct plda_event_ops plda_event_ops = {
++ .get_events = plda_get_events,
++};
++
+ static int plda_pcie_event_map(struct irq_domain *domain, unsigned int irq,
+ irq_hw_number_t hwirq)
+ {
+@@ -815,6 +839,10 @@ static int mc_request_event_irq(struct plda_pcie_rp *plda, int event_irq,
+ 0, event_cause[event].sym, plda);
+ }
+
++static const struct plda_event_ops mc_event_ops = {
++ .get_events = mc_get_events,
++};
++
+ static const struct plda_event mc_event = {
+ .request_event_irq = mc_request_event_irq,
+ .intx_event = EVENT_LOCAL_PM_MSI_INT_INTX,
+@@ -931,6 +959,9 @@ static int plda_init_interrupts(struct platform_device *pdev,
+ int i, intx_irq, msi_irq, event_irq;
+ int ret;
+
++ if (!port->event_ops)
++ port->event_ops = &plda_event_ops;
++
+ ret = plda_pcie_init_irq_domains(port);
+ if (ret) {
+ dev_err(dev, "failed creating IRQ domains\n");
+@@ -1007,6 +1038,8 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ if (ret)
+ return ret;
+
++ port->plda.event_ops = &mc_event_ops;
++
+ /* Address translation is up; safe to enable interrupts */
+ ret = plda_init_interrupts(pdev, &port->plda, &mc_event);
+ if (ret)
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 0efe64d5f688..9db92ccf286c 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -58,6 +58,7 @@
+ #define PM_MSI_INT_EVENTS_SHIFT 30
+ #define PM_MSI_INT_SYS_ERR_MASK 0x80000000u
+ #define PM_MSI_INT_SYS_ERR_SHIFT 31
++#define SYS_AND_MSI_MASK GENMASK(31, 28)
+ #define NUM_LOCAL_EVENTS 15
+ #define ISTATUS_LOCAL 0x184
+ #define IMASK_HOST 0x188
+@@ -108,6 +109,36 @@ enum plda_int_event {
+
+ #define PLDA_MAX_INT_NUM (PLDA_NUM_DMA_EVENTS + PLDA_INT_EVENT_NUM)
+
++/*
++ * PLDA interrupt register
++ *
++ * 31 27 23 15 7 0
++ * +--+--+--+-+------+-+-+-+-+-+-+-+-+-----------+-----------+
++ * |12|11|10|9| intx |7|6|5|4|3|2|1|0| DMA error | DMA end |
++ * +--+--+--+-+------+-+-+-+-+-+-+-+-+-----------+-----------+
++ * bit 0-7 DMA interrupt end : reserved for vendor implement
++ * bit 8-15 DMA error : reserved for vendor implement
++ * 0: AXI post error (PLDA_AXI_POST_ERR)
++ * 1: AXI fetch error (PLDA_AXI_FETCH_ERR)
++ * 2: AXI discard error (PLDA_AXI_DISCARD_ERR)
++ * 3: AXI doorbell (PLDA_PCIE_DOORBELL)
++ * 4: PCIe post error (PLDA_PCIE_POST_ERR)
++ * 5: PCIe fetch error (PLDA_PCIE_FETCH_ERR)
++ * 6: PCIe discard error (PLDA_PCIE_DISCARD_ERR)
++ * 7: PCIe doorbell (PLDA_PCIE_DOORBELL)
++ * 8: 4 INTx interruts (PLDA_INTX)
++ * 9: MSI interrupt (PLDA_MSI)
++ * 10: AER event (PLDA_AER_EVENT)
++ * 11: PM/LTR/Hotplug (PLDA_MISC_EVENTS)
++ * 12: System error (PLDA_SYS_ERR)
++ */
++
++struct plda_pcie_rp;
++
++struct plda_event_ops {
++ u32 (*get_events)(struct plda_pcie_rp *pcie);
++};
++
+ struct plda_msi {
+ struct mutex lock; /* Protect used bitmap */
+ struct irq_domain *msi_domain;
+@@ -123,6 +154,7 @@ struct plda_pcie_rp {
+ struct irq_domain *event_domain;
+ raw_spinlock_t lock;
+ struct plda_msi msi;
++ const struct plda_event_ops *event_ops;
+ void __iomem *bridge_addr;
+ int num_events;
+ };
+--
+2.43.0
+
+
+From a4d9ec0a9ad3c0f3637b65c8dfd3ad3af5f38acc Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:05 +0800
+Subject: [PATCH 15/23] PCI: microchip: Add event irqchip field to host port
+ and add PLDA irqchip
+
+As PLDA dts binding doc(Documentation/devicetree/bindings/pci/
+plda,xpressrich3-axi-common.yaml) showes, PLDA PCIe contains an interrupt
+controller.
+
+Microchip PolarFire PCIE event IRQs includes PLDA interrupts and
+Polarfire their own interrupts. The interrupt irqchip ops includes
+ack/mask/unmask interrupt ops, which will write correct registers.
+Microchip Polarfire PCIe additional interrupts require to write Polarfire
+SoC self-defined registers. So Microchip PCIe event irqchip ops can not
+be re-used.
+
+To support PLDA its own event IRQ process, implements PLDA irqchip ops and
+add event irqchip field to struct pcie_plda_rp.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Acked-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-16-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 66 ++++++++++++++++++-
+ drivers/pci/controller/plda/pcie-plda.h | 5 +-
+ 2 files changed, 69 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index b3df373a2141..beaf5c27da84 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -770,6 +770,64 @@ static struct irq_chip mc_event_irq_chip = {
+ .irq_unmask = mc_unmask_event_irq,
+ };
+
++static u32 plda_hwirq_to_mask(int hwirq)
++{
++ u32 mask;
++
++ /* hwirq 23 - 0 are the same with register */
++ if (hwirq < EVENT_PM_MSI_INT_INTX)
++ mask = BIT(hwirq);
++ else if (hwirq == EVENT_PM_MSI_INT_INTX)
++ mask = PM_MSI_INT_INTX_MASK;
++ else
++ mask = BIT(hwirq + PCI_NUM_INTX - 1);
++
++ return mask;
++}
++
++static void plda_ack_event_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++
++ writel_relaxed(plda_hwirq_to_mask(data->hwirq),
++ port->bridge_addr + ISTATUS_LOCAL);
++}
++
++static void plda_mask_event_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ u32 mask, val;
++
++ mask = plda_hwirq_to_mask(data->hwirq);
++
++ raw_spin_lock(&port->lock);
++ val = readl_relaxed(port->bridge_addr + IMASK_LOCAL);
++ val &= ~mask;
++ writel_relaxed(val, port->bridge_addr + IMASK_LOCAL);
++ raw_spin_unlock(&port->lock);
++}
++
++static void plda_unmask_event_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ u32 mask, val;
++
++ mask = plda_hwirq_to_mask(data->hwirq);
++
++ raw_spin_lock(&port->lock);
++ val = readl_relaxed(port->bridge_addr + IMASK_LOCAL);
++ val |= mask;
++ writel_relaxed(val, port->bridge_addr + IMASK_LOCAL);
++ raw_spin_unlock(&port->lock);
++}
++
++static struct irq_chip plda_event_irq_chip = {
++ .name = "PLDA PCIe EVENT",
++ .irq_ack = plda_ack_event_irq,
++ .irq_mask = plda_mask_event_irq,
++ .irq_unmask = plda_unmask_event_irq,
++};
++
+ static const struct plda_event_ops plda_event_ops = {
+ .get_events = plda_get_events,
+ };
+@@ -777,7 +835,9 @@ static const struct plda_event_ops plda_event_ops = {
+ static int plda_pcie_event_map(struct irq_domain *domain, unsigned int irq,
+ irq_hw_number_t hwirq)
+ {
+- irq_set_chip_and_handler(irq, &mc_event_irq_chip, handle_level_irq);
++ struct plda_pcie_rp *port = (void *)domain->host_data;
++
++ irq_set_chip_and_handler(irq, port->event_irq_chip, handle_level_irq);
+ irq_set_chip_data(irq, domain->host_data);
+
+ return 0;
+@@ -962,6 +1022,9 @@ static int plda_init_interrupts(struct platform_device *pdev,
+ if (!port->event_ops)
+ port->event_ops = &plda_event_ops;
+
++ if (!port->event_irq_chip)
++ port->event_irq_chip = &plda_event_irq_chip;
++
+ ret = plda_pcie_init_irq_domains(port);
+ if (ret) {
+ dev_err(dev, "failed creating IRQ domains\n");
+@@ -1039,6 +1102,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
+ return ret;
+
+ port->plda.event_ops = &mc_event_ops;
++ port->plda.event_irq_chip = &mc_event_irq_chip;
+
+ /* Address translation is up; safe to enable interrupts */
+ ret = plda_init_interrupts(pdev, &port->plda, &mc_event);
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 9db92ccf286c..a3ce01735bea 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -107,7 +107,9 @@ enum plda_int_event {
+
+ #define PLDA_NUM_DMA_EVENTS 16
+
+-#define PLDA_MAX_INT_NUM (PLDA_NUM_DMA_EVENTS + PLDA_INT_EVENT_NUM)
++#define EVENT_PM_MSI_INT_INTX (PLDA_NUM_DMA_EVENTS + PLDA_INTX)
++#define EVENT_PM_MSI_INT_MSI (PLDA_NUM_DMA_EVENTS + PLDA_MSI)
++#define PLDA_MAX_EVENT_NUM (PLDA_NUM_DMA_EVENTS + PLDA_INT_EVENT_NUM)
+
+ /*
+ * PLDA interrupt register
+@@ -155,6 +157,7 @@ struct plda_pcie_rp {
+ raw_spinlock_t lock;
+ struct plda_msi msi;
+ const struct plda_event_ops *event_ops;
++ const struct irq_chip *event_irq_chip;
+ void __iomem *bridge_addr;
+ int num_events;
+ };
+--
+2.43.0
+
+
+From 874bc4a2048652f676823b6f728bae729f56fdfd Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:06 +0800
+Subject: [PATCH 16/23] PCI: microchip: Move IRQ functions to pcie-plda-host.c
+
+Move IRQ related functions to pcie-plda-host.c for re-use these codes.
+Now Refactoring codes complete.
+
+Including MSI, INTx, event interrupts and IRQ init functions.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Acked-by: Conor Dooley <conor.dooley@microchip.com>
+Message-ID: <20240108110612.19048-17-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../pci/controller/plda/pcie-microchip-host.c | 467 -----------------
+ drivers/pci/controller/plda/pcie-plda-host.c | 472 ++++++++++++++++++
+ drivers/pci/controller/plda/pcie-plda.h | 3 +
+ 3 files changed, 475 insertions(+), 467 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index beaf5c27da84..105964306b71 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -318,244 +318,6 @@ static void mc_pcie_enable_msi(struct mc_pcie *port, void __iomem *ecam)
+ ecam + MC_MSI_CAP_CTRL_OFFSET + PCI_MSI_ADDRESS_HI);
+ }
+
+-static void plda_handle_msi(struct irq_desc *desc)
+-{
+- struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+- struct irq_chip *chip = irq_desc_get_chip(desc);
+- struct device *dev = port->dev;
+- struct plda_msi *msi = &port->msi;
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- unsigned long status;
+- u32 bit;
+- int ret;
+-
+- chained_irq_enter(chip, desc);
+-
+- status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL);
+- if (status & PM_MSI_INT_MSI_MASK) {
+- writel_relaxed(status & PM_MSI_INT_MSI_MASK, bridge_base_addr + ISTATUS_LOCAL);
+- status = readl_relaxed(bridge_base_addr + ISTATUS_MSI);
+- for_each_set_bit(bit, &status, msi->num_vectors) {
+- ret = generic_handle_domain_irq(msi->dev_domain, bit);
+- if (ret)
+- dev_err_ratelimited(dev, "bad MSI IRQ %d\n",
+- bit);
+- }
+- }
+-
+- chained_irq_exit(chip, desc);
+-}
+-
+-static void plda_msi_bottom_irq_ack(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- u32 bitpos = data->hwirq;
+-
+- writel_relaxed(BIT(bitpos), bridge_base_addr + ISTATUS_MSI);
+-}
+-
+-static void plda_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- phys_addr_t addr = port->msi.vector_phy;
+-
+- msg->address_lo = lower_32_bits(addr);
+- msg->address_hi = upper_32_bits(addr);
+- msg->data = data->hwirq;
+-
+- dev_dbg(port->dev, "msi#%x address_hi %#x address_lo %#x\n",
+- (int)data->hwirq, msg->address_hi, msg->address_lo);
+-}
+-
+-static int plda_msi_set_affinity(struct irq_data *irq_data,
+- const struct cpumask *mask, bool force)
+-{
+- return -EINVAL;
+-}
+-
+-static struct irq_chip plda_msi_bottom_irq_chip = {
+- .name = "PLDA MSI",
+- .irq_ack = plda_msi_bottom_irq_ack,
+- .irq_compose_msi_msg = plda_compose_msi_msg,
+- .irq_set_affinity = plda_msi_set_affinity,
+-};
+-
+-static int plda_irq_msi_domain_alloc(struct irq_domain *domain,
+- unsigned int virq,
+- unsigned int nr_irqs,
+- void *args)
+-{
+- struct plda_pcie_rp *port = domain->host_data;
+- struct plda_msi *msi = &port->msi;
+- unsigned long bit;
+-
+- mutex_lock(&msi->lock);
+- bit = find_first_zero_bit(msi->used, msi->num_vectors);
+- if (bit >= msi->num_vectors) {
+- mutex_unlock(&msi->lock);
+- return -ENOSPC;
+- }
+-
+- set_bit(bit, msi->used);
+-
+- irq_domain_set_info(domain, virq, bit, &plda_msi_bottom_irq_chip,
+- domain->host_data, handle_edge_irq, NULL, NULL);
+-
+- mutex_unlock(&msi->lock);
+-
+- return 0;
+-}
+-
+-static void plda_irq_msi_domain_free(struct irq_domain *domain,
+- unsigned int virq,
+- unsigned int nr_irqs)
+-{
+- struct irq_data *d = irq_domain_get_irq_data(domain, virq);
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(d);
+- struct plda_msi *msi = &port->msi;
+-
+- mutex_lock(&msi->lock);
+-
+- if (test_bit(d->hwirq, msi->used))
+- __clear_bit(d->hwirq, msi->used);
+- else
+- dev_err(port->dev, "trying to free unused MSI%lu\n", d->hwirq);
+-
+- mutex_unlock(&msi->lock);
+-}
+-
+-static const struct irq_domain_ops msi_domain_ops = {
+- .alloc = plda_irq_msi_domain_alloc,
+- .free = plda_irq_msi_domain_free,
+-};
+-
+-static struct irq_chip plda_msi_irq_chip = {
+- .name = "PLDA PCIe MSI",
+- .irq_ack = irq_chip_ack_parent,
+- .irq_mask = pci_msi_mask_irq,
+- .irq_unmask = pci_msi_unmask_irq,
+-};
+-
+-static struct msi_domain_info plda_msi_domain_info = {
+- .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
+- MSI_FLAG_PCI_MSIX),
+- .chip = &plda_msi_irq_chip,
+-};
+-
+-static int plda_allocate_msi_domains(struct plda_pcie_rp *port)
+-{
+- struct device *dev = port->dev;
+- struct fwnode_handle *fwnode = of_node_to_fwnode(dev->of_node);
+- struct plda_msi *msi = &port->msi;
+-
+- mutex_init(&port->msi.lock);
+-
+- msi->dev_domain = irq_domain_add_linear(NULL, msi->num_vectors,
+- &msi_domain_ops, port);
+- if (!msi->dev_domain) {
+- dev_err(dev, "failed to create IRQ domain\n");
+- return -ENOMEM;
+- }
+-
+- msi->msi_domain = pci_msi_create_irq_domain(fwnode,
+- &plda_msi_domain_info,
+- msi->dev_domain);
+- if (!msi->msi_domain) {
+- dev_err(dev, "failed to create MSI domain\n");
+- irq_domain_remove(msi->dev_domain);
+- return -ENOMEM;
+- }
+-
+- return 0;
+-}
+-
+-static void plda_handle_intx(struct irq_desc *desc)
+-{
+- struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+- struct irq_chip *chip = irq_desc_get_chip(desc);
+- struct device *dev = port->dev;
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- unsigned long status;
+- u32 bit;
+- int ret;
+-
+- chained_irq_enter(chip, desc);
+-
+- status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL);
+- if (status & PM_MSI_INT_INTX_MASK) {
+- status &= PM_MSI_INT_INTX_MASK;
+- status >>= PM_MSI_INT_INTX_SHIFT;
+- for_each_set_bit(bit, &status, PCI_NUM_INTX) {
+- ret = generic_handle_domain_irq(port->intx_domain, bit);
+- if (ret)
+- dev_err_ratelimited(dev, "bad INTx IRQ %d\n",
+- bit);
+- }
+- }
+-
+- chained_irq_exit(chip, desc);
+-}
+-
+-static void plda_ack_intx_irq(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+-
+- writel_relaxed(mask, bridge_base_addr + ISTATUS_LOCAL);
+-}
+-
+-static void plda_mask_intx_irq(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- unsigned long flags;
+- u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+- u32 val;
+-
+- raw_spin_lock_irqsave(&port->lock, flags);
+- val = readl_relaxed(bridge_base_addr + IMASK_LOCAL);
+- val &= ~mask;
+- writel_relaxed(val, bridge_base_addr + IMASK_LOCAL);
+- raw_spin_unlock_irqrestore(&port->lock, flags);
+-}
+-
+-static void plda_unmask_intx_irq(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- void __iomem *bridge_base_addr = port->bridge_addr;
+- unsigned long flags;
+- u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
+- u32 val;
+-
+- raw_spin_lock_irqsave(&port->lock, flags);
+- val = readl_relaxed(bridge_base_addr + IMASK_LOCAL);
+- val |= mask;
+- writel_relaxed(val, bridge_base_addr + IMASK_LOCAL);
+- raw_spin_unlock_irqrestore(&port->lock, flags);
+-}
+-
+-static struct irq_chip plda_intx_irq_chip = {
+- .name = "PLDA PCIe INTx",
+- .irq_ack = plda_ack_intx_irq,
+- .irq_mask = plda_mask_intx_irq,
+- .irq_unmask = plda_unmask_intx_irq,
+-};
+-
+-static int plda_pcie_intx_map(struct irq_domain *domain, unsigned int irq,
+- irq_hw_number_t hwirq)
+-{
+- irq_set_chip_and_handler(irq, &plda_intx_irq_chip, handle_level_irq);
+- irq_set_chip_data(irq, domain->host_data);
+-
+- return 0;
+-}
+-
+-static const struct irq_domain_ops intx_domain_ops = {
+- .map = plda_pcie_intx_map,
+-};
+-
+ static inline u32 reg_to_event(u32 reg, struct event_map field)
+ {
+ return (reg & field.reg_mask) ? BIT(field.event_bit) : 0;
+@@ -626,26 +388,6 @@ static u32 mc_get_events(struct plda_pcie_rp *port)
+ return events;
+ }
+
+-static u32 plda_get_events(struct plda_pcie_rp *port)
+-{
+- u32 events, val, origin;
+-
+- origin = readl_relaxed(port->bridge_addr + ISTATUS_LOCAL);
+-
+- /* MSI event and sys events */
+- val = (origin & SYS_AND_MSI_MASK) >> PM_MSI_INT_MSI_SHIFT;
+- events = val << (PM_MSI_INT_MSI_SHIFT - PCI_NUM_INTX + 1);
+-
+- /* INTx events */
+- if (origin & PM_MSI_INT_INTX_MASK)
+- events |= BIT(PM_MSI_INT_INTX_SHIFT);
+-
+- /* remains are same with register */
+- events |= origin & GENMASK(P_ATR_EVT_DOORBELL_SHIFT, 0);
+-
+- return events;
+-}
+-
+ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+ {
+ struct plda_pcie_rp *port = dev_id;
+@@ -662,28 +404,6 @@ static irqreturn_t mc_event_handler(int irq, void *dev_id)
+ return IRQ_HANDLED;
+ }
+
+-static irqreturn_t plda_event_handler(int irq, void *dev_id)
+-{
+- return IRQ_HANDLED;
+-}
+-
+-static void plda_handle_event(struct irq_desc *desc)
+-{
+- struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+- unsigned long events;
+- u32 bit;
+- struct irq_chip *chip = irq_desc_get_chip(desc);
+-
+- chained_irq_enter(chip, desc);
+-
+- events = port->event_ops->get_events(port);
+-
+- for_each_set_bit(bit, &events, port->num_events)
+- generic_handle_domain_irq(port->event_domain, bit);
+-
+- chained_irq_exit(chip, desc);
+-}
+-
+ static void mc_ack_event_irq(struct irq_data *data)
+ {
+ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+@@ -770,83 +490,6 @@ static struct irq_chip mc_event_irq_chip = {
+ .irq_unmask = mc_unmask_event_irq,
+ };
+
+-static u32 plda_hwirq_to_mask(int hwirq)
+-{
+- u32 mask;
+-
+- /* hwirq 23 - 0 are the same with register */
+- if (hwirq < EVENT_PM_MSI_INT_INTX)
+- mask = BIT(hwirq);
+- else if (hwirq == EVENT_PM_MSI_INT_INTX)
+- mask = PM_MSI_INT_INTX_MASK;
+- else
+- mask = BIT(hwirq + PCI_NUM_INTX - 1);
+-
+- return mask;
+-}
+-
+-static void plda_ack_event_irq(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+-
+- writel_relaxed(plda_hwirq_to_mask(data->hwirq),
+- port->bridge_addr + ISTATUS_LOCAL);
+-}
+-
+-static void plda_mask_event_irq(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- u32 mask, val;
+-
+- mask = plda_hwirq_to_mask(data->hwirq);
+-
+- raw_spin_lock(&port->lock);
+- val = readl_relaxed(port->bridge_addr + IMASK_LOCAL);
+- val &= ~mask;
+- writel_relaxed(val, port->bridge_addr + IMASK_LOCAL);
+- raw_spin_unlock(&port->lock);
+-}
+-
+-static void plda_unmask_event_irq(struct irq_data *data)
+-{
+- struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
+- u32 mask, val;
+-
+- mask = plda_hwirq_to_mask(data->hwirq);
+-
+- raw_spin_lock(&port->lock);
+- val = readl_relaxed(port->bridge_addr + IMASK_LOCAL);
+- val |= mask;
+- writel_relaxed(val, port->bridge_addr + IMASK_LOCAL);
+- raw_spin_unlock(&port->lock);
+-}
+-
+-static struct irq_chip plda_event_irq_chip = {
+- .name = "PLDA PCIe EVENT",
+- .irq_ack = plda_ack_event_irq,
+- .irq_mask = plda_mask_event_irq,
+- .irq_unmask = plda_unmask_event_irq,
+-};
+-
+-static const struct plda_event_ops plda_event_ops = {
+- .get_events = plda_get_events,
+-};
+-
+-static int plda_pcie_event_map(struct irq_domain *domain, unsigned int irq,
+- irq_hw_number_t hwirq)
+-{
+- struct plda_pcie_rp *port = (void *)domain->host_data;
+-
+- irq_set_chip_and_handler(irq, port->event_irq_chip, handle_level_irq);
+- irq_set_chip_data(irq, domain->host_data);
+-
+- return 0;
+-}
+-
+-static const struct irq_domain_ops plda_event_domain_ops = {
+- .map = plda_pcie_event_map,
+-};
+-
+ static inline void mc_pcie_deinit_clk(void *data)
+ {
+ struct clk *clk = data;
+@@ -909,47 +552,6 @@ static const struct plda_event mc_event = {
+ .msi_event = EVENT_LOCAL_PM_MSI_INT_MSI,
+ };
+
+-static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+-{
+- struct device *dev = port->dev;
+- struct device_node *node = dev->of_node;
+- struct device_node *pcie_intc_node;
+-
+- /* Setup INTx */
+- pcie_intc_node = of_get_next_child(node, NULL);
+- if (!pcie_intc_node) {
+- dev_err(dev, "failed to find PCIe Intc node\n");
+- return -EINVAL;
+- }
+-
+- port->event_domain = irq_domain_add_linear(pcie_intc_node,
+- port->num_events,
+- &plda_event_domain_ops,
+- port);
+- if (!port->event_domain) {
+- dev_err(dev, "failed to get event domain\n");
+- of_node_put(pcie_intc_node);
+- return -ENOMEM;
+- }
+-
+- irq_domain_update_bus_token(port->event_domain, DOMAIN_BUS_NEXUS);
+-
+- port->intx_domain = irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX,
+- &intx_domain_ops, port);
+- if (!port->intx_domain) {
+- dev_err(dev, "failed to get an INTx IRQ domain\n");
+- of_node_put(pcie_intc_node);
+- return -ENOMEM;
+- }
+-
+- irq_domain_update_bus_token(port->intx_domain, DOMAIN_BUS_WIRED);
+-
+- of_node_put(pcie_intc_node);
+- raw_spin_lock_init(&port->lock);
+-
+- return plda_allocate_msi_domains(port);
+-}
+-
+ static inline void mc_clear_secs(struct mc_pcie *port)
+ {
+ void __iomem *ctrl_base_addr = port->axi_base_addr + MC_PCIE_CTRL_ADDR;
+@@ -1010,75 +612,6 @@ static void mc_disable_interrupts(struct mc_pcie *port)
+ writel_relaxed(GENMASK(31, 0), bridge_base_addr + ISTATUS_HOST);
+ }
+
+-static int plda_init_interrupts(struct platform_device *pdev,
+- struct plda_pcie_rp *port,
+- const struct plda_event *event)
+-{
+- struct device *dev = &pdev->dev;
+- int irq;
+- int i, intx_irq, msi_irq, event_irq;
+- int ret;
+-
+- if (!port->event_ops)
+- port->event_ops = &plda_event_ops;
+-
+- if (!port->event_irq_chip)
+- port->event_irq_chip = &plda_event_irq_chip;
+-
+- ret = plda_pcie_init_irq_domains(port);
+- if (ret) {
+- dev_err(dev, "failed creating IRQ domains\n");
+- return ret;
+- }
+-
+- irq = platform_get_irq(pdev, 0);
+- if (irq < 0)
+- return -ENODEV;
+-
+- for (i = 0; i < port->num_events; i++) {
+- event_irq = irq_create_mapping(port->event_domain, i);
+- if (!event_irq) {
+- dev_err(dev, "failed to map hwirq %d\n", i);
+- return -ENXIO;
+- }
+-
+- if (event->request_event_irq)
+- ret = event->request_event_irq(port, event_irq, i);
+- else
+- ret = devm_request_irq(dev, event_irq,
+- plda_event_handler,
+- 0, NULL, port);
+-
+- if (ret) {
+- dev_err(dev, "failed to request IRQ %d\n", event_irq);
+- return ret;
+- }
+- }
+-
+- intx_irq = irq_create_mapping(port->event_domain,
+- event->intx_event);
+- if (!intx_irq) {
+- dev_err(dev, "failed to map INTx interrupt\n");
+- return -ENXIO;
+- }
+-
+- /* Plug the INTx chained handler */
+- irq_set_chained_handler_and_data(intx_irq, plda_handle_intx, port);
+-
+- msi_irq = irq_create_mapping(port->event_domain,
+- event->msi_event);
+- if (!msi_irq)
+- return -ENXIO;
+-
+- /* Plug the MSI chained handler */
+- irq_set_chained_handler_and_data(msi_irq, plda_handle_msi, port);
+-
+- /* Plug the main event chained handler */
+- irq_set_chained_handler_and_data(irq, plda_handle_event, port);
+-
+- return 0;
+-}
+-
+ static int mc_platform_init(struct pci_config_window *cfg)
+ {
+ struct device *dev = cfg->parent;
+diff --git a/drivers/pci/controller/plda/pcie-plda-host.c b/drivers/pci/controller/plda/pcie-plda-host.c
+index 40139d998568..98c51e594efe 100644
+--- a/drivers/pci/controller/plda/pcie-plda-host.c
++++ b/drivers/pci/controller/plda/pcie-plda-host.c
+@@ -7,11 +7,483 @@
+ * Author: Daire McNamara <daire.mcnamara@microchip.com>
+ */
+
++#include <linux/irqchip/chained_irq.h>
++#include <linux/irqdomain.h>
++#include <linux/msi.h>
+ #include <linux/pci_regs.h>
+ #include <linux/pci-ecam.h>
+
+ #include "pcie-plda.h"
+
++static void plda_handle_msi(struct irq_desc *desc)
++{
++ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
++ struct irq_chip *chip = irq_desc_get_chip(desc);
++ struct device *dev = port->dev;
++ struct plda_msi *msi = &port->msi;
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ unsigned long status;
++ u32 bit;
++ int ret;
++
++ chained_irq_enter(chip, desc);
++
++ status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL);
++ if (status & PM_MSI_INT_MSI_MASK) {
++ writel_relaxed(status & PM_MSI_INT_MSI_MASK,
++ bridge_base_addr + ISTATUS_LOCAL);
++ status = readl_relaxed(bridge_base_addr + ISTATUS_MSI);
++ for_each_set_bit(bit, &status, msi->num_vectors) {
++ ret = generic_handle_domain_irq(msi->dev_domain, bit);
++ if (ret)
++ dev_err_ratelimited(dev, "bad MSI IRQ %d\n",
++ bit);
++ }
++ }
++
++ chained_irq_exit(chip, desc);
++}
++
++static void plda_msi_bottom_irq_ack(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ u32 bitpos = data->hwirq;
++
++ writel_relaxed(BIT(bitpos), bridge_base_addr + ISTATUS_MSI);
++}
++
++static void plda_compose_msi_msg(struct irq_data *data, struct msi_msg *msg)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ phys_addr_t addr = port->msi.vector_phy;
++
++ msg->address_lo = lower_32_bits(addr);
++ msg->address_hi = upper_32_bits(addr);
++ msg->data = data->hwirq;
++
++ dev_dbg(port->dev, "msi#%x address_hi %#x address_lo %#x\n",
++ (int)data->hwirq, msg->address_hi, msg->address_lo);
++}
++
++static int plda_msi_set_affinity(struct irq_data *irq_data,
++ const struct cpumask *mask, bool force)
++{
++ return -EINVAL;
++}
++
++static struct irq_chip plda_msi_bottom_irq_chip = {
++ .name = "PLDA MSI",
++ .irq_ack = plda_msi_bottom_irq_ack,
++ .irq_compose_msi_msg = plda_compose_msi_msg,
++ .irq_set_affinity = plda_msi_set_affinity,
++};
++
++static int plda_irq_msi_domain_alloc(struct irq_domain *domain,
++ unsigned int virq,
++ unsigned int nr_irqs,
++ void *args)
++{
++ struct plda_pcie_rp *port = domain->host_data;
++ struct plda_msi *msi = &port->msi;
++ unsigned long bit;
++
++ mutex_lock(&msi->lock);
++ bit = find_first_zero_bit(msi->used, msi->num_vectors);
++ if (bit >= msi->num_vectors) {
++ mutex_unlock(&msi->lock);
++ return -ENOSPC;
++ }
++
++ set_bit(bit, msi->used);
++
++ irq_domain_set_info(domain, virq, bit, &plda_msi_bottom_irq_chip,
++ domain->host_data, handle_edge_irq, NULL, NULL);
++
++ mutex_unlock(&msi->lock);
++
++ return 0;
++}
++
++static void plda_irq_msi_domain_free(struct irq_domain *domain,
++ unsigned int virq,
++ unsigned int nr_irqs)
++{
++ struct irq_data *d = irq_domain_get_irq_data(domain, virq);
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(d);
++ struct plda_msi *msi = &port->msi;
++
++ mutex_lock(&msi->lock);
++
++ if (test_bit(d->hwirq, msi->used))
++ __clear_bit(d->hwirq, msi->used);
++ else
++ dev_err(port->dev, "trying to free unused MSI%lu\n", d->hwirq);
++
++ mutex_unlock(&msi->lock);
++}
++
++static const struct irq_domain_ops msi_domain_ops = {
++ .alloc = plda_irq_msi_domain_alloc,
++ .free = plda_irq_msi_domain_free,
++};
++
++static struct irq_chip plda_msi_irq_chip = {
++ .name = "PLDA PCIe MSI",
++ .irq_ack = irq_chip_ack_parent,
++ .irq_mask = pci_msi_mask_irq,
++ .irq_unmask = pci_msi_unmask_irq,
++};
++
++static struct msi_domain_info plda_msi_domain_info = {
++ .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
++ MSI_FLAG_PCI_MSIX),
++ .chip = &plda_msi_irq_chip,
++};
++
++static int plda_allocate_msi_domains(struct plda_pcie_rp *port)
++{
++ struct device *dev = port->dev;
++ struct fwnode_handle *fwnode = of_node_to_fwnode(dev->of_node);
++ struct plda_msi *msi = &port->msi;
++
++ mutex_init(&port->msi.lock);
++
++ msi->dev_domain = irq_domain_add_linear(NULL, msi->num_vectors,
++ &msi_domain_ops, port);
++ if (!msi->dev_domain) {
++ dev_err(dev, "failed to create IRQ domain\n");
++ return -ENOMEM;
++ }
++
++ msi->msi_domain = pci_msi_create_irq_domain(fwnode,
++ &plda_msi_domain_info,
++ msi->dev_domain);
++ if (!msi->msi_domain) {
++ dev_err(dev, "failed to create MSI domain\n");
++ irq_domain_remove(msi->dev_domain);
++ return -ENOMEM;
++ }
++
++ return 0;
++}
++
++static void plda_handle_intx(struct irq_desc *desc)
++{
++ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
++ struct irq_chip *chip = irq_desc_get_chip(desc);
++ struct device *dev = port->dev;
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ unsigned long status;
++ u32 bit;
++ int ret;
++
++ chained_irq_enter(chip, desc);
++
++ status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL);
++ if (status & PM_MSI_INT_INTX_MASK) {
++ status &= PM_MSI_INT_INTX_MASK;
++ status >>= PM_MSI_INT_INTX_SHIFT;
++ for_each_set_bit(bit, &status, PCI_NUM_INTX) {
++ ret = generic_handle_domain_irq(port->intx_domain, bit);
++ if (ret)
++ dev_err_ratelimited(dev, "bad INTx IRQ %d\n",
++ bit);
++ }
++ }
++
++ chained_irq_exit(chip, desc);
++}
++
++static void plda_ack_intx_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
++
++ writel_relaxed(mask, bridge_base_addr + ISTATUS_LOCAL);
++}
++
++static void plda_mask_intx_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ unsigned long flags;
++ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
++ u32 val;
++
++ raw_spin_lock_irqsave(&port->lock, flags);
++ val = readl_relaxed(bridge_base_addr + IMASK_LOCAL);
++ val &= ~mask;
++ writel_relaxed(val, bridge_base_addr + IMASK_LOCAL);
++ raw_spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static void plda_unmask_intx_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ void __iomem *bridge_base_addr = port->bridge_addr;
++ unsigned long flags;
++ u32 mask = BIT(data->hwirq + PM_MSI_INT_INTX_SHIFT);
++ u32 val;
++
++ raw_spin_lock_irqsave(&port->lock, flags);
++ val = readl_relaxed(bridge_base_addr + IMASK_LOCAL);
++ val |= mask;
++ writel_relaxed(val, bridge_base_addr + IMASK_LOCAL);
++ raw_spin_unlock_irqrestore(&port->lock, flags);
++}
++
++static struct irq_chip plda_intx_irq_chip = {
++ .name = "PLDA PCIe INTx",
++ .irq_ack = plda_ack_intx_irq,
++ .irq_mask = plda_mask_intx_irq,
++ .irq_unmask = plda_unmask_intx_irq,
++};
++
++static int plda_pcie_intx_map(struct irq_domain *domain, unsigned int irq,
++ irq_hw_number_t hwirq)
++{
++ irq_set_chip_and_handler(irq, &plda_intx_irq_chip, handle_level_irq);
++ irq_set_chip_data(irq, domain->host_data);
++
++ return 0;
++}
++
++static const struct irq_domain_ops intx_domain_ops = {
++ .map = plda_pcie_intx_map,
++};
++
++static u32 plda_get_events(struct plda_pcie_rp *port)
++{
++ u32 events, val, origin;
++
++ origin = readl_relaxed(port->bridge_addr + ISTATUS_LOCAL);
++
++ /* MSI event and sys events */
++ val = (origin & SYS_AND_MSI_MASK) >> PM_MSI_INT_MSI_SHIFT;
++ events = val << (PM_MSI_INT_MSI_SHIFT - PCI_NUM_INTX + 1);
++
++ /* INTx events */
++ if (origin & PM_MSI_INT_INTX_MASK)
++ events |= BIT(PM_MSI_INT_INTX_SHIFT);
++
++ /* remains are same with register */
++ events |= origin & GENMASK(P_ATR_EVT_DOORBELL_SHIFT, 0);
++
++ return events;
++}
++
++static irqreturn_t plda_event_handler(int irq, void *dev_id)
++{
++ return IRQ_HANDLED;
++}
++
++static void plda_handle_event(struct irq_desc *desc)
++{
++ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
++ unsigned long events;
++ u32 bit;
++ struct irq_chip *chip = irq_desc_get_chip(desc);
++
++ chained_irq_enter(chip, desc);
++
++ events = port->event_ops->get_events(port);
++
++ for_each_set_bit(bit, &events, port->num_events)
++ generic_handle_domain_irq(port->event_domain, bit);
++
++ chained_irq_exit(chip, desc);
++}
++
++static u32 plda_hwirq_to_mask(int hwirq)
++{
++ u32 mask;
++
++ /* hwirq 23 - 0 are the same with register */
++ if (hwirq < EVENT_PM_MSI_INT_INTX)
++ mask = BIT(hwirq);
++ else if (hwirq == EVENT_PM_MSI_INT_INTX)
++ mask = PM_MSI_INT_INTX_MASK;
++ else
++ mask = BIT(hwirq + PCI_NUM_INTX - 1);
++
++ return mask;
++}
++
++static void plda_ack_event_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++
++ writel_relaxed(plda_hwirq_to_mask(data->hwirq),
++ port->bridge_addr + ISTATUS_LOCAL);
++}
++
++static void plda_mask_event_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ u32 mask, val;
++
++ mask = plda_hwirq_to_mask(data->hwirq);
++
++ raw_spin_lock(&port->lock);
++ val = readl_relaxed(port->bridge_addr + IMASK_LOCAL);
++ val &= ~mask;
++ writel_relaxed(val, port->bridge_addr + IMASK_LOCAL);
++ raw_spin_unlock(&port->lock);
++}
++
++static void plda_unmask_event_irq(struct irq_data *data)
++{
++ struct plda_pcie_rp *port = irq_data_get_irq_chip_data(data);
++ u32 mask, val;
++
++ mask = plda_hwirq_to_mask(data->hwirq);
++
++ raw_spin_lock(&port->lock);
++ val = readl_relaxed(port->bridge_addr + IMASK_LOCAL);
++ val |= mask;
++ writel_relaxed(val, port->bridge_addr + IMASK_LOCAL);
++ raw_spin_unlock(&port->lock);
++}
++
++static struct irq_chip plda_event_irq_chip = {
++ .name = "PLDA PCIe EVENT",
++ .irq_ack = plda_ack_event_irq,
++ .irq_mask = plda_mask_event_irq,
++ .irq_unmask = plda_unmask_event_irq,
++};
++
++static const struct plda_event_ops plda_event_ops = {
++ .get_events = plda_get_events,
++};
++
++static int plda_pcie_event_map(struct irq_domain *domain, unsigned int irq,
++ irq_hw_number_t hwirq)
++{
++ struct plda_pcie_rp *port = (void *)domain->host_data;
++
++ irq_set_chip_and_handler(irq, port->event_irq_chip, handle_level_irq);
++ irq_set_chip_data(irq, domain->host_data);
++
++ return 0;
++}
++
++static const struct irq_domain_ops plda_event_domain_ops = {
++ .map = plda_pcie_event_map,
++};
++
++static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
++{
++ struct device *dev = port->dev;
++ struct device_node *node = dev->of_node;
++ struct device_node *pcie_intc_node;
++
++ /* Setup INTx */
++ pcie_intc_node = of_get_next_child(node, NULL);
++ if (!pcie_intc_node) {
++ dev_err(dev, "failed to find PCIe Intc node\n");
++ return -EINVAL;
++ }
++
++ port->event_domain = irq_domain_add_linear(pcie_intc_node,
++ port->num_events,
++ &plda_event_domain_ops,
++ port);
++ if (!port->event_domain) {
++ dev_err(dev, "failed to get event domain\n");
++ of_node_put(pcie_intc_node);
++ return -ENOMEM;
++ }
++
++ irq_domain_update_bus_token(port->event_domain, DOMAIN_BUS_NEXUS);
++
++ port->intx_domain = irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX,
++ &intx_domain_ops, port);
++ if (!port->intx_domain) {
++ dev_err(dev, "failed to get an INTx IRQ domain\n");
++ of_node_put(pcie_intc_node);
++ return -ENOMEM;
++ }
++
++ irq_domain_update_bus_token(port->intx_domain, DOMAIN_BUS_WIRED);
++
++ of_node_put(pcie_intc_node);
++ raw_spin_lock_init(&port->lock);
++
++ return plda_allocate_msi_domains(port);
++}
++
++int plda_init_interrupts(struct platform_device *pdev,
++ struct plda_pcie_rp *port,
++ const struct plda_event *event)
++{
++ struct device *dev = &pdev->dev;
++ int irq;
++ int i, intx_irq, msi_irq, event_irq;
++ int ret;
++
++ if (!port->event_ops)
++ port->event_ops = &plda_event_ops;
++
++ if (!port->event_irq_chip)
++ port->event_irq_chip = &plda_event_irq_chip;
++
++ ret = plda_pcie_init_irq_domains(port);
++ if (ret) {
++ dev_err(dev, "failed creating IRQ domains\n");
++ return ret;
++ }
++
++ irq = platform_get_irq(pdev, 0);
++ if (irq < 0)
++ return -ENODEV;
++
++ for (i = 0; i < port->num_events; i++) {
++ event_irq = irq_create_mapping(port->event_domain, i);
++ if (!event_irq) {
++ dev_err(dev, "failed to map hwirq %d\n", i);
++ return -ENXIO;
++ }
++
++ if (event->request_event_irq)
++ ret = event->request_event_irq(port, event_irq, i);
++ else
++ ret = devm_request_irq(dev, event_irq,
++ plda_event_handler,
++ 0, NULL, port);
++
++ if (ret) {
++ dev_err(dev, "failed to request IRQ %d\n", event_irq);
++ return ret;
++ }
++ }
++
++ intx_irq = irq_create_mapping(port->event_domain,
++ event->intx_event);
++ if (!intx_irq) {
++ dev_err(dev, "failed to map INTx interrupt\n");
++ return -ENXIO;
++ }
++
++ /* Plug the INTx chained handler */
++ irq_set_chained_handler_and_data(intx_irq, plda_handle_intx, port);
++
++ msi_irq = irq_create_mapping(port->event_domain,
++ event->msi_event);
++ if (!msi_irq)
++ return -ENXIO;
++
++ /* Plug the MSI chained handler */
++ irq_set_chained_handler_and_data(msi_irq, plda_handle_msi, port);
++
++ /* Plug the main event chained handler */
++ irq_set_chained_handler_and_data(irq, plda_handle_event, port);
++
++ return 0;
++}
++EXPORT_SYMBOL_GPL(plda_init_interrupts);
++
+ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ phys_addr_t axi_addr, phys_addr_t pci_addr,
+ size_t size)
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index a3ce01735bea..6672a231a4bc 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -169,6 +169,9 @@ struct plda_event {
+ int msi_event;
+ };
+
++int plda_init_interrupts(struct platform_device *pdev,
++ struct plda_pcie_rp *port,
++ const struct plda_event *event);
+ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ phys_addr_t axi_addr, phys_addr_t pci_addr,
+ size_t size);
+--
+2.43.0
+
+
+From 3ed458f3854d5e86cd34ee9e3d87a8b3c2287913 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:07 +0800
+Subject: [PATCH 17/23] pci: plda: Add event bitmap field to struct
+ plda_pcie_rp
+
+For PLDA DMA interrupts are not all implemented. The non-implemented
+interrupts should be masked. So add a bitmap field to mask the non-
+implemented interrupts.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Message-ID: <20240108110612.19048-18-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/controller/plda/pcie-microchip-host.c | 1 +
+ drivers/pci/controller/plda/pcie-plda-host.c | 6 ++++--
+ drivers/pci/controller/plda/pcie-plda.h | 1 +
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
+index 105964306b71..48f60a04b740 100644
+--- a/drivers/pci/controller/plda/pcie-microchip-host.c
++++ b/drivers/pci/controller/plda/pcie-microchip-host.c
+@@ -636,6 +636,7 @@ static int mc_platform_init(struct pci_config_window *cfg)
+
+ port->plda.event_ops = &mc_event_ops;
+ port->plda.event_irq_chip = &mc_event_irq_chip;
++ port->plda.events_bitmap = GENMASK(NUM_EVENTS - 1, 0);
+
+ /* Address translation is up; safe to enable interrupts */
+ ret = plda_init_interrupts(pdev, &port->plda, &mc_event);
+diff --git a/drivers/pci/controller/plda/pcie-plda-host.c b/drivers/pci/controller/plda/pcie-plda-host.c
+index 98c51e594efe..a040e7e5492f 100644
+--- a/drivers/pci/controller/plda/pcie-plda-host.c
++++ b/drivers/pci/controller/plda/pcie-plda-host.c
+@@ -290,6 +290,7 @@ static void plda_handle_event(struct irq_desc *desc)
+
+ events = port->event_ops->get_events(port);
+
++ events &= port->events_bitmap;
+ for_each_set_bit(bit, &events, port->num_events)
+ generic_handle_domain_irq(port->event_domain, bit);
+
+@@ -420,8 +421,9 @@ int plda_init_interrupts(struct platform_device *pdev,
+ {
+ struct device *dev = &pdev->dev;
+ int irq;
+- int i, intx_irq, msi_irq, event_irq;
++ int intx_irq, msi_irq, event_irq;
+ int ret;
++ u32 i;
+
+ if (!port->event_ops)
+ port->event_ops = &plda_event_ops;
+@@ -439,7 +441,7 @@ int plda_init_interrupts(struct platform_device *pdev,
+ if (irq < 0)
+ return -ENODEV;
+
+- for (i = 0; i < port->num_events; i++) {
++ for_each_set_bit(i, &port->events_bitmap, port->num_events) {
+ event_irq = irq_create_mapping(port->event_domain, i);
+ if (!event_irq) {
+ dev_err(dev, "failed to map hwirq %d\n", i);
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 6672a231a4bc..443109d04d59 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -159,6 +159,7 @@ struct plda_pcie_rp {
+ const struct plda_event_ops *event_ops;
+ const struct irq_chip *event_irq_chip;
+ void __iomem *bridge_addr;
++ unsigned long events_bitmap;
+ int num_events;
+ };
+
+--
+2.43.0
+
+
+From 45f29fdd79438d1efe3924e796be927c79822fe5 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:08 +0800
+Subject: [PATCH 18/23] PCI: plda: Add host init/deinit and map bus functions
+
+Add PLDA host plda_pcie_host_init()/plda_pcie_host_deinit() and map bus
+function. So vendor can use it to init PLDA PCIe host core.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Mason Huo <mason.huo@starfivetech.com>
+Message-ID: <20240108110612.19048-19-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/controller/plda/pcie-plda-host.c | 131 +++++++++++++++++--
+ drivers/pci/controller/plda/pcie-plda.h | 22 ++++
+ 2 files changed, 139 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/pci/controller/plda/pcie-plda-host.c b/drivers/pci/controller/plda/pcie-plda-host.c
+index a040e7e5492f..a18923d7cea6 100644
+--- a/drivers/pci/controller/plda/pcie-plda-host.c
++++ b/drivers/pci/controller/plda/pcie-plda-host.c
+@@ -3,6 +3,7 @@
+ * PLDA PCIe XpressRich host controller driver
+ *
+ * Copyright (C) 2023 Microchip Co. Ltd
++ * StarFive Co. Ltd
+ *
+ * Author: Daire McNamara <daire.mcnamara@microchip.com>
+ */
+@@ -15,6 +16,15 @@
+
+ #include "pcie-plda.h"
+
++void __iomem *plda_pcie_map_bus(struct pci_bus *bus, unsigned int devfn,
++ int where)
++{
++ struct plda_pcie_rp *pcie = bus->sysdata;
++
++ return pcie->config_base + PCIE_ECAM_OFFSET(bus->number, devfn, where);
++}
++EXPORT_SYMBOL_GPL(plda_pcie_map_bus);
++
+ static void plda_handle_msi(struct irq_desc *desc)
+ {
+ struct plda_pcie_rp *port = irq_desc_get_handler_data(desc);
+@@ -420,9 +430,7 @@ int plda_init_interrupts(struct platform_device *pdev,
+ const struct plda_event *event)
+ {
+ struct device *dev = &pdev->dev;
+- int irq;
+- int intx_irq, msi_irq, event_irq;
+- int ret;
++ int event_irq, ret;
+ u32 i;
+
+ if (!port->event_ops)
+@@ -437,8 +445,8 @@ int plda_init_interrupts(struct platform_device *pdev,
+ return ret;
+ }
+
+- irq = platform_get_irq(pdev, 0);
+- if (irq < 0)
++ port->irq = platform_get_irq(pdev, 0);
++ if (port->irq < 0)
+ return -ENODEV;
+
+ for_each_set_bit(i, &port->events_bitmap, port->num_events) {
+@@ -461,26 +469,26 @@ int plda_init_interrupts(struct platform_device *pdev,
+ }
+ }
+
+- intx_irq = irq_create_mapping(port->event_domain,
+- event->intx_event);
+- if (!intx_irq) {
++ port->intx_irq = irq_create_mapping(port->event_domain,
++ event->intx_event);
++ if (!port->intx_irq) {
+ dev_err(dev, "failed to map INTx interrupt\n");
+ return -ENXIO;
+ }
+
+ /* Plug the INTx chained handler */
+- irq_set_chained_handler_and_data(intx_irq, plda_handle_intx, port);
++ irq_set_chained_handler_and_data(port->intx_irq, plda_handle_intx, port);
+
+- msi_irq = irq_create_mapping(port->event_domain,
+- event->msi_event);
+- if (!msi_irq)
++ port->msi_irq = irq_create_mapping(port->event_domain,
++ event->msi_event);
++ if (!port->msi_irq)
+ return -ENXIO;
+
+ /* Plug the MSI chained handler */
+- irq_set_chained_handler_and_data(msi_irq, plda_handle_msi, port);
++ irq_set_chained_handler_and_data(port->msi_irq, plda_handle_msi, port);
+
+ /* Plug the main event chained handler */
+- irq_set_chained_handler_and_data(irq, plda_handle_event, port);
++ irq_set_chained_handler_and_data(port->irq, plda_handle_event, port);
+
+ return 0;
+ }
+@@ -546,3 +554,98 @@ int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
+ return 0;
+ }
+ EXPORT_SYMBOL_GPL(plda_pcie_setup_iomems);
++
++static void plda_pcie_irq_domain_deinit(struct plda_pcie_rp *pcie)
++{
++ irq_set_chained_handler_and_data(pcie->irq, NULL, NULL);
++ irq_set_chained_handler_and_data(pcie->msi_irq, NULL, NULL);
++ irq_set_chained_handler_and_data(pcie->intx_irq, NULL, NULL);
++
++ irq_domain_remove(pcie->msi.msi_domain);
++ irq_domain_remove(pcie->msi.dev_domain);
++
++ irq_domain_remove(pcie->intx_domain);
++ irq_domain_remove(pcie->event_domain);
++}
++
++int plda_pcie_host_init(struct plda_pcie_rp *port, struct pci_ops *ops,
++ const struct plda_event *plda_event)
++{
++ struct device *dev = port->dev;
++ struct pci_host_bridge *bridge;
++ struct platform_device *pdev = to_platform_device(dev);
++ struct resource *cfg_res;
++ int ret;
++
++ pdev = to_platform_device(dev);
++
++ port->bridge_addr =
++ devm_platform_ioremap_resource_byname(pdev, "apb");
++
++ if (IS_ERR(port->bridge_addr))
++ return dev_err_probe(dev, PTR_ERR(port->bridge_addr),
++ "failed to map reg memory\n");
++
++ cfg_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cfg");
++ if (!cfg_res)
++ return dev_err_probe(dev, -ENODEV,
++ "failed to get config memory\n");
++
++ port->config_base = devm_ioremap_resource(dev, cfg_res);
++ if (IS_ERR(port->config_base))
++ return dev_err_probe(dev, PTR_ERR(port->config_base),
++ "failed to map config memory\n");
++
++ bridge = devm_pci_alloc_host_bridge(dev, 0);
++ if (!bridge)
++ return dev_err_probe(dev, -ENOMEM,
++ "failed to alloc bridge\n");
++
++ if (port->host_ops && port->host_ops->host_init) {
++ ret = port->host_ops->host_init(port);
++ if (ret)
++ return ret;
++ }
++
++ port->bridge = bridge;
++ plda_pcie_setup_window(port->bridge_addr, 0, cfg_res->start, 0,
++ resource_size(cfg_res));
++ plda_pcie_setup_iomems(bridge, port);
++ plda_set_default_msi(&port->msi);
++ ret = plda_init_interrupts(pdev, port, plda_event);
++ if (ret)
++ goto err_host;
++
++ /* Set default bus ops */
++ bridge->ops = ops;
++ bridge->sysdata = port;
++
++ ret = pci_host_probe(bridge);
++ if (ret < 0) {
++ dev_err_probe(dev, ret, "failed to probe pci host\n");
++ goto err_probe;
++ }
++
++ return ret;
++
++err_probe:
++ plda_pcie_irq_domain_deinit(port);
++err_host:
++ if (port->host_ops && port->host_ops->host_deinit)
++ port->host_ops->host_deinit(port);
++
++ return ret;
++}
++EXPORT_SYMBOL_GPL(plda_pcie_host_init);
++
++void plda_pcie_host_deinit(struct plda_pcie_rp *port)
++{
++ pci_stop_root_bus(port->bridge->bus);
++ pci_remove_root_bus(port->bridge->bus);
++
++ plda_pcie_irq_domain_deinit(port);
++
++ if (port->host_ops && port->host_ops->host_deinit)
++ port->host_ops->host_deinit(port);
++}
++EXPORT_SYMBOL_GPL(plda_pcie_host_deinit);
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 443109d04d59..7b69891700a4 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -141,6 +141,11 @@ struct plda_event_ops {
+ u32 (*get_events)(struct plda_pcie_rp *pcie);
+ };
+
++struct plda_pcie_host_ops {
++ int (*host_init)(struct plda_pcie_rp *pcie);
++ void (*host_deinit)(struct plda_pcie_rp *pcie);
++};
++
+ struct plda_msi {
+ struct mutex lock; /* Protect used bitmap */
+ struct irq_domain *msi_domain;
+@@ -152,14 +157,20 @@ struct plda_msi {
+
+ struct plda_pcie_rp {
+ struct device *dev;
++ struct pci_host_bridge *bridge;
+ struct irq_domain *intx_domain;
+ struct irq_domain *event_domain;
+ raw_spinlock_t lock;
+ struct plda_msi msi;
+ const struct plda_event_ops *event_ops;
+ const struct irq_chip *event_irq_chip;
++ const struct plda_pcie_host_ops *host_ops;
+ void __iomem *bridge_addr;
++ void __iomem *config_base;
+ unsigned long events_bitmap;
++ int irq;
++ int msi_irq;
++ int intx_irq;
+ int num_events;
+ };
+
+@@ -170,6 +181,8 @@ struct plda_event {
+ int msi_event;
+ };
+
++void __iomem *plda_pcie_map_bus(struct pci_bus *bus, unsigned int devfn,
++ int where);
+ int plda_init_interrupts(struct platform_device *pdev,
+ struct plda_pcie_rp *port,
+ const struct plda_event *event);
+@@ -178,4 +191,13 @@ void plda_pcie_setup_window(void __iomem *bridge_base_addr, u32 index,
+ size_t size);
+ int plda_pcie_setup_iomems(struct pci_host_bridge *bridge,
+ struct plda_pcie_rp *port);
++int plda_pcie_host_init(struct plda_pcie_rp *port, struct pci_ops *ops,
++ const struct plda_event *plda_event);
++void plda_pcie_host_deinit(struct plda_pcie_rp *pcie);
++
++static inline void plda_set_default_msi(struct plda_msi *msi)
++{
++ msi->vector_phy = IMSI_ADDR;
++ msi->num_vectors = PLDA_MAX_NUM_MSI_IRQS;
++}
+ #endif
+--
+2.43.0
+
+
+From a3bcc30c729854515731b73ed6e1e3bc5f7d2bc7 Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:09 +0800
+Subject: [PATCH 19/23] dt-bindings: PCI: Add StarFive JH7110 PCIe controller
+
+Add StarFive JH7110 SoC PCIe controller dt-bindings. JH7110 using PLDA
+XpressRICH PCIe host controller IP.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
+Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+Message-ID: <20240108110612.19048-20-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../bindings/pci/starfive,jh7110-pcie.yaml | 120 ++++++++++++++++++
+ 1 file changed, 120 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/pci/starfive,jh7110-pcie.yaml
+
+diff --git a/Documentation/devicetree/bindings/pci/starfive,jh7110-pcie.yaml b/Documentation/devicetree/bindings/pci/starfive,jh7110-pcie.yaml
+new file mode 100644
+index 000000000000..67151aaa3948
+--- /dev/null
++++ b/Documentation/devicetree/bindings/pci/starfive,jh7110-pcie.yaml
+@@ -0,0 +1,120 @@
++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
++%YAML 1.2
++---
++$id: http://devicetree.org/schemas/pci/starfive,jh7110-pcie.yaml#
++$schema: http://devicetree.org/meta-schemas/core.yaml#
++
++title: StarFive JH7110 PCIe host controller
++
++maintainers:
++ - Kevin Xie <kevin.xie@starfivetech.com>
++
++allOf:
++ - $ref: plda,xpressrich3-axi-common.yaml#
++
++properties:
++ compatible:
++ const: starfive,jh7110-pcie
++
++ clocks:
++ items:
++ - description: NOC bus clock
++ - description: Transport layer clock
++ - description: AXI MST0 clock
++ - description: APB clock
++
++ clock-names:
++ items:
++ - const: noc
++ - const: tl
++ - const: axi_mst0
++ - const: apb
++
++ resets:
++ items:
++ - description: AXI MST0 reset
++ - description: AXI SLAVE0 reset
++ - description: AXI SLAVE reset
++ - description: PCIE BRIDGE reset
++ - description: PCIE CORE reset
++ - description: PCIE APB reset
++
++ reset-names:
++ items:
++ - const: mst0
++ - const: slv0
++ - const: slv
++ - const: brg
++ - const: core
++ - const: apb
++
++ starfive,stg-syscon:
++ $ref: /schemas/types.yaml#/definitions/phandle-array
++ description:
++ The phandle to System Register Controller syscon node.
++
++ perst-gpios:
++ description: GPIO controlled connection to PERST# signal
++ maxItems: 1
++
++ phys:
++ description:
++ Specified PHY is attached to PCIe controller.
++ maxItems: 1
++
++required:
++ - clocks
++ - resets
++ - starfive,stg-syscon
++
++unevaluatedProperties: false
++
++examples:
++ - |
++ #include <dt-bindings/gpio/gpio.h>
++ soc {
++ #address-cells = <2>;
++ #size-cells = <2>;
++
++ pcie@940000000 {
++ compatible = "starfive,jh7110-pcie";
++ reg = <0x9 0x40000000 0x0 0x10000000>,
++ <0x0 0x2b000000 0x0 0x1000000>;
++ reg-names = "cfg", "apb";
++ #address-cells = <3>;
++ #size-cells = <2>;
++ #interrupt-cells = <1>;
++ device_type = "pci";
++ ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x08000000>,
++ <0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
++ starfive,stg-syscon = <&stg_syscon>;
++ bus-range = <0x0 0xff>;
++ interrupt-parent = <&plic>;
++ interrupts = <56>;
++ interrupt-map-mask = <0x0 0x0 0x0 0x7>;
++ interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
++ <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
++ <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
++ <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
++ msi-controller;
++ clocks = <&syscrg 86>,
++ <&stgcrg 10>,
++ <&stgcrg 8>,
++ <&stgcrg 9>;
++ clock-names = "noc", "tl", "axi_mst0", "apb";
++ resets = <&stgcrg 11>,
++ <&stgcrg 12>,
++ <&stgcrg 13>,
++ <&stgcrg 14>,
++ <&stgcrg 15>,
++ <&stgcrg 16>;
++ perst-gpios = <&gpios 26 GPIO_ACTIVE_LOW>;
++ phys = <&pciephy0>;
++
++ pcie_intc0: interrupt-controller {
++ #address-cells = <0>;
++ #interrupt-cells = <1>;
++ interrupt-controller;
++ };
++ };
++ };
+--
+2.43.0
+
+
+From 68c605686c561a1cc3a42c82bc0de854b5b4183e Mon Sep 17 00:00:00 2001
+From: Kevin Xie <kevin.xie@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:10 +0800
+Subject: [PATCH 20/23] PCI: Add PCIE_RESET_CONFIG_DEVICE_WAIT_MS waiting time
+ value
+
+Add the PCIE_RESET_CONFIG_DEVICE_WAIT_MS macro to define the minimum
+waiting time between exit from a conventional reset and sending the
+first configuration request to the device.
+
+As described in PCI base specification r6.0, section 6.6.1 <Conventional
+Reset>, there are two different use cases of the value:
+
+ - "With a Downstream Port that does not support Link speeds greater
+ than 5.0 GT/s, software must wait a minimum of 100 ms following exit
+ from a Conventional Reset before sending a Configuration Request to
+ the device immediately below that Port."
+
+ - "With a Downstream Port that supports Link speeds greater than
+ 5.0 GT/s, software must wait a minimum of 100 ms after Link training
+ completes before sending a Configuration Request to the device
+ immediately below that Port."
+
+Signed-off-by: Kevin Xie <kevin.xie@starfivetech.com>
+Reviewed-by: Mason Huo <mason.huo@starfivetech.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Message-ID: <20240108110612.19048-21-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ drivers/pci/pci.h | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
+index f43873049d52..6990146e14e3 100644
+--- a/drivers/pci/pci.h
++++ b/drivers/pci/pci.h
+@@ -22,6 +22,22 @@
+ */
+ #define PCIE_PME_TO_L2_TIMEOUT_US 10000
+
++/*
++ * As described in PCI base specification r6.0, section 6.6.1 <Conventional
++ * Reset>, there are two different use cases of the value:
++ *
++ * - "With a Downstream Port that does not support Link speeds greater
++ * than 5.0 GT/s, software must wait a minimum of 100 ms following exit
++ * from a Conventional Reset before sending a Configuration Request to
++ * the device immediately below that Port."
++ *
++ * - "With a Downstream Port that supports Link speeds greater than
++ * 5.0 GT/s, software must wait a minimum of 100 ms after Link training
++ * completes before sending a Configuration Request to the device
++ * immediately below that Port."
++ */
++#define PCIE_RESET_CONFIG_DEVICE_WAIT_MS 100
++
+ extern const unsigned char pcie_link_speed[];
+ extern bool pci_early_dump;
+
+--
+2.43.0
+
+
+From d595015610966f0c9e3128ce23db29dd0f212e0e Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:11 +0800
+Subject: [PATCH 21/23] PCI: starfive: Add JH7110 PCIe controller
+
+Add StarFive JH7110 SoC PCIe controller platform driver codes, JH7110
+with PLDA host PCIe core.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Co-developed-by: Kevin Xie <kevin.xie@starfivetech.com>
+Reviewed-by: Mason Huo <mason.huo@starfivetech.com>
+Message-ID: <20240108110612.19048-22-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ MAINTAINERS | 7 +
+ drivers/pci/controller/plda/Kconfig | 12 +
+ drivers/pci/controller/plda/Makefile | 1 +
+ drivers/pci/controller/plda/pcie-plda.h | 71 ++-
+ drivers/pci/controller/plda/pcie-starfive.c | 473 ++++++++++++++++++++
+ 5 files changed, 563 insertions(+), 1 deletion(-)
+ create mode 100644 drivers/pci/controller/plda/pcie-starfive.c
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 730fe2d640a1..7fa339e6c25d 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -16821,6 +16821,13 @@ S: Maintained
+ F: Documentation/devicetree/bindings/pci/socionext,uniphier-pcie*
+ F: drivers/pci/controller/dwc/pcie-uniphier*
+
++PCIE DRIVER FOR STARFIVE JH71x0
++M: Kevin Xie <kevin.xie@starfivetech.com>
++L: linux-pci@vger.kernel.org
++S: Maintained
++F: Documentation/devicetree/bindings/pci/starfive*
++F: drivers/pci/controller/plda/pcie-starfive.c
++
+ PCIE DRIVER FOR ST SPEAR13XX
+ M: Pratyush Anand <pratyush.anand@gmail.com>
+ L: linux-pci@vger.kernel.org
+diff --git a/drivers/pci/controller/plda/Kconfig b/drivers/pci/controller/plda/Kconfig
+index e54a82ee94f5..c0e14146d7e4 100644
+--- a/drivers/pci/controller/plda/Kconfig
++++ b/drivers/pci/controller/plda/Kconfig
+@@ -15,4 +15,16 @@ config PCIE_MICROCHIP_HOST
+ Say Y here if you want kernel to support the Microchip AXI PCIe
+ Host Bridge driver.
+
++config PCIE_STARFIVE_HOST
++ tristate "StarFive PCIe host controller"
++ depends on PCI_MSI && OF
++ depends on ARCH_STARFIVE || COMPILE_TEST
++ select PCIE_PLDA_HOST
++ help
++ Say Y here if you want to support the StarFive PCIe controller in
++ host mode. StarFive PCIe controller uses PLDA PCIe core.
++
++ If you choose to build this driver as module it will be dynamically
++ linked and module will be called pcie-starfive.ko.
++
+ endmenu
+diff --git a/drivers/pci/controller/plda/Makefile b/drivers/pci/controller/plda/Makefile
+index 4340ab007f44..0ac6851bed48 100644
+--- a/drivers/pci/controller/plda/Makefile
++++ b/drivers/pci/controller/plda/Makefile
+@@ -1,3 +1,4 @@
+ # SPDX-License-Identifier: GPL-2.0
+ obj-$(CONFIG_PCIE_PLDA_HOST) += pcie-plda-host.o
+ obj-$(CONFIG_PCIE_MICROCHIP_HOST) += pcie-microchip-host.o
++obj-$(CONFIG_PCIE_STARFIVE_HOST) += pcie-starfive.o
+diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
+index 7b69891700a4..04e385758a2f 100644
+--- a/drivers/pci/controller/plda/pcie-plda.h
++++ b/drivers/pci/controller/plda/pcie-plda.h
+@@ -10,10 +10,20 @@
+ #define PLDA_MAX_NUM_MSI_IRQS 32
+
+ /* PCIe Bridge Phy Regs */
++#define GEN_SETTINGS 0x80
++#define RP_ENABLE 1
++#define PCIE_PCI_IDS_DW1 0x9c
++#define IDS_CLASS_CODE_SHIFT 16
++#define REVISION_ID_MASK GENMASK(7, 0)
++#define CLASS_CODE_ID_MASK GENMASK(31, 8)
+ #define PCIE_PCI_IRQ_DW0 0xa8
+ #define MSIX_CAP_MASK BIT(31)
+ #define NUM_MSI_MSGS_MASK GENMASK(6, 4)
+ #define NUM_MSI_MSGS_SHIFT 4
++#define PCI_MISC 0xb4
++#define PHY_FUNCTION_DIS BIT(15)
++#define PCIE_WINROM 0xfc
++#define PREF_MEM_WIN_64_SUPPORT BIT(3)
+
+ #define IMASK_LOCAL 0x180
+ #define DMA_END_ENGINE_0_MASK 0x00000000u
+@@ -65,6 +75,8 @@
+ #define ISTATUS_HOST 0x18c
+ #define IMSI_ADDR 0x190
+ #define ISTATUS_MSI 0x194
++#define PMSG_SUPPORT_RX 0x3f0
++#define PMSG_LTR_SUPPORT BIT(2)
+
+ /* PCIe Master table init defines */
+ #define ATR0_PCIE_WIN0_SRCADDR_PARAM 0x600u
+@@ -86,6 +98,8 @@
+ #define PCIE_TX_RX_INTERFACE 0x00000000u
+ #define PCIE_CONFIG_INTERFACE 0x00000001u
+
++#define CONFIG_SPACE_ADDR_OFFSET 0x1000u
++
+ #define ATR_ENTRY_SIZE 32
+
+ enum plda_int_event {
+@@ -200,4 +214,59 @@ static inline void plda_set_default_msi(struct plda_msi *msi)
+ msi->vector_phy = IMSI_ADDR;
+ msi->num_vectors = PLDA_MAX_NUM_MSI_IRQS;
+ }
+-#endif
++
++static inline void plda_pcie_enable_root_port(struct plda_pcie_rp *plda)
++{
++ u32 value;
++
++ value = readl_relaxed(plda->bridge_addr + GEN_SETTINGS);
++ value |= RP_ENABLE;
++ writel_relaxed(value, plda->bridge_addr + GEN_SETTINGS);
++}
++
++static inline void plda_pcie_set_standard_class(struct plda_pcie_rp *plda)
++{
++ u32 value;
++
++ /* set class code and reserve revision id */
++ value = readl_relaxed(plda->bridge_addr + PCIE_PCI_IDS_DW1);
++ value &= REVISION_ID_MASK;
++ value |= (PCI_CLASS_BRIDGE_PCI << IDS_CLASS_CODE_SHIFT);
++ writel_relaxed(value, plda->bridge_addr + PCIE_PCI_IDS_DW1);
++}
++
++static inline void plda_pcie_set_pref_win_64bit(struct plda_pcie_rp *plda)
++{
++ u32 value;
++
++ value = readl_relaxed(plda->bridge_addr + PCIE_WINROM);
++ value |= PREF_MEM_WIN_64_SUPPORT;
++ writel_relaxed(value, plda->bridge_addr + PCIE_WINROM);
++}
++
++static inline void plda_pcie_disable_ltr(struct plda_pcie_rp *plda)
++{
++ u32 value;
++
++ value = readl_relaxed(plda->bridge_addr + PMSG_SUPPORT_RX);
++ value &= ~PMSG_LTR_SUPPORT;
++ writel_relaxed(value, plda->bridge_addr + PMSG_SUPPORT_RX);
++}
++
++static inline void plda_pcie_disable_func(struct plda_pcie_rp *plda)
++{
++ u32 value;
++
++ value = readl_relaxed(plda->bridge_addr + PCI_MISC);
++ value |= PHY_FUNCTION_DIS;
++ writel_relaxed(value, plda->bridge_addr + PCI_MISC);
++}
++
++static inline void plda_pcie_write_rc_bar(struct plda_pcie_rp *plda, u64 val)
++{
++ void __iomem *addr = plda->bridge_addr + CONFIG_SPACE_ADDR_OFFSET;
++
++ writel_relaxed(lower_32_bits(val), addr + PCI_BASE_ADDRESS_0);
++ writel_relaxed(upper_32_bits(val), addr + PCI_BASE_ADDRESS_1);
++}
++#endif /* _PCIE_PLDA_H */
+diff --git a/drivers/pci/controller/plda/pcie-starfive.c b/drivers/pci/controller/plda/pcie-starfive.c
+new file mode 100644
+index 000000000000..9bb9f0e29565
+--- /dev/null
++++ b/drivers/pci/controller/plda/pcie-starfive.c
+@@ -0,0 +1,473 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * PCIe host controller driver for StarFive JH7110 Soc.
++ *
++ * Copyright (C) 2023 StarFive Technology Co., Ltd.
++ */
++
++#include <linux/bitfield.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <linux/gpio/consumer.h>
++#include <linux/interrupt.h>
++#include <linux/kernel.h>
++#include <linux/mfd/syscon.h>
++#include <linux/module.h>
++#include <linux/of_address.h>
++#include <linux/of_irq.h>
++#include <linux/of_pci.h>
++#include <linux/pci.h>
++#include <linux/phy/phy.h>
++#include <linux/platform_device.h>
++#include <linux/pm_runtime.h>
++#include <linux/regmap.h>
++#include <linux/reset.h>
++#include "../../pci.h"
++
++#include "pcie-plda.h"
++
++#define PCIE_FUNC_NUM 4
++
++/* system control */
++#define STG_SYSCON_PCIE0_BASE 0x48
++#define STG_SYSCON_PCIE1_BASE 0x1f8
++
++#define STG_SYSCON_AR_OFFSET 0x78
++#define STG_SYSCON_AXI4_SLVL_AR_MASK GENMASK(22, 8)
++#define STG_SYSCON_AXI4_SLVL_PHY_AR(x) FIELD_PREP(GENMASK(20, 17), x)
++#define STG_SYSCON_AW_OFFSET 0x7c
++#define STG_SYSCON_AXI4_SLVL_AW_MASK GENMASK(14, 0)
++#define STG_SYSCON_AXI4_SLVL_PHY_AW(x) FIELD_PREP(GENMASK(12, 9), x)
++#define STG_SYSCON_CLKREQ BIT(22)
++#define STG_SYSCON_CKREF_SRC_MASK GENMASK(19, 18)
++#define STG_SYSCON_RP_NEP_OFFSET 0xe8
++#define STG_SYSCON_K_RP_NEP BIT(8)
++#define STG_SYSCON_LNKSTA_OFFSET 0x170
++#define DATA_LINK_ACTIVE BIT(5)
++
++/* Parameters for the waiting for link up routine */
++#define LINK_WAIT_MAX_RETRIES 10
++#define LINK_WAIT_USLEEP_MIN 90000
++#define LINK_WAIT_USLEEP_MAX 100000
++
++struct starfive_jh7110_pcie {
++ struct plda_pcie_rp plda;
++ struct reset_control *resets;
++ struct clk_bulk_data *clks;
++ struct regmap *reg_syscon;
++ struct gpio_desc *power_gpio;
++ struct gpio_desc *reset_gpio;
++ struct phy *phy;
++
++ unsigned int stg_pcie_base;
++ int num_clks;
++};
++
++/*
++ * The BAR0/1 of bridge should be hidden during enumeration to
++ * avoid the sizing and resource allocation by PCIe core.
++ */
++static bool starfive_pcie_hide_rc_bar(struct pci_bus *bus, unsigned int devfn,
++ int offset)
++{
++ if (pci_is_root_bus(bus) && !devfn &&
++ (offset == PCI_BASE_ADDRESS_0 || offset == PCI_BASE_ADDRESS_1))
++ return true;
++
++ return false;
++}
++
++static int starfive_pcie_config_write(struct pci_bus *bus, unsigned int devfn,
++ int where, int size, u32 value)
++{
++ if (starfive_pcie_hide_rc_bar(bus, devfn, where))
++ return PCIBIOS_SUCCESSFUL;
++
++ return pci_generic_config_write(bus, devfn, where, size, value);
++}
++
++static int starfive_pcie_config_read(struct pci_bus *bus, unsigned int devfn,
++ int where, int size, u32 *value)
++{
++ if (starfive_pcie_hide_rc_bar(bus, devfn, where)) {
++ *value = 0;
++ return PCIBIOS_SUCCESSFUL;
++ }
++
++ return pci_generic_config_read(bus, devfn, where, size, value);
++}
++
++static int starfive_pcie_parse_dt(struct starfive_jh7110_pcie *pcie,
++ struct device *dev)
++{
++ int domain_nr;
++
++ pcie->num_clks = devm_clk_bulk_get_all(dev, &pcie->clks);
++ if (pcie->num_clks < 0)
++ return dev_err_probe(dev, pcie->num_clks,
++ "failed to get pcie clocks\n");
++
++ pcie->resets = devm_reset_control_array_get_exclusive(dev);
++ if (IS_ERR(pcie->resets))
++ return dev_err_probe(dev, PTR_ERR(pcie->resets),
++ "failed to get pcie resets");
++
++ pcie->reg_syscon =
++ syscon_regmap_lookup_by_phandle(dev->of_node,
++ "starfive,stg-syscon");
++
++ if (IS_ERR(pcie->reg_syscon))
++ return dev_err_probe(dev, PTR_ERR(pcie->reg_syscon),
++ "failed to parse starfive,stg-syscon\n");
++
++ pcie->phy = devm_phy_optional_get(dev, NULL);
++ if (IS_ERR(pcie->phy))
++ return dev_err_probe(dev, PTR_ERR(pcie->phy),
++ "failed to get pcie phy\n");
++
++ domain_nr = of_get_pci_domain_nr(dev->of_node);
++
++ if (domain_nr < 0 || domain_nr > 1)
++ return dev_err_probe(dev, -ENODEV,
++ "failed to get valid pcie domain\n");
++
++ if (domain_nr == 0)
++ pcie->stg_pcie_base = STG_SYSCON_PCIE0_BASE;
++ else
++ pcie->stg_pcie_base = STG_SYSCON_PCIE1_BASE;
++
++ pcie->reset_gpio = devm_gpiod_get_optional(dev, "perst",
++ GPIOD_OUT_HIGH);
++ if (IS_ERR(pcie->reset_gpio))
++ return dev_err_probe(dev, PTR_ERR(pcie->reset_gpio),
++ "failed to get perst-gpio\n");
++
++ pcie->power_gpio = devm_gpiod_get_optional(dev, "enable",
++ GPIOD_OUT_LOW);
++ if (IS_ERR(pcie->power_gpio))
++ return dev_err_probe(dev, PTR_ERR(pcie->power_gpio),
++ "failed to get power-gpio\n");
++
++ return 0;
++}
++
++static struct pci_ops starfive_pcie_ops = {
++ .map_bus = plda_pcie_map_bus,
++ .read = starfive_pcie_config_read,
++ .write = starfive_pcie_config_write,
++};
++
++static int starfive_pcie_clk_rst_init(struct starfive_jh7110_pcie *pcie)
++{
++ struct device *dev = pcie->plda.dev;
++ int ret;
++
++ ret = clk_bulk_prepare_enable(pcie->num_clks, pcie->clks);
++ if (ret)
++ return dev_err_probe(dev, ret, "failed to enable clocks\n");
++
++ ret = reset_control_deassert(pcie->resets);
++ if (ret) {
++ clk_bulk_disable_unprepare(pcie->num_clks, pcie->clks);
++ dev_err_probe(dev, ret, "failed to deassert resets\n");
++ }
++
++ return ret;
++}
++
++static void starfive_pcie_clk_rst_deinit(struct starfive_jh7110_pcie *pcie)
++{
++ reset_control_assert(pcie->resets);
++ clk_bulk_disable_unprepare(pcie->num_clks, pcie->clks);
++}
++
++static bool starfive_pcie_link_up(struct plda_pcie_rp *plda)
++{
++ struct starfive_jh7110_pcie *pcie =
++ container_of(plda, struct starfive_jh7110_pcie, plda);
++ int ret;
++ u32 stg_reg_val;
++
++ ret = regmap_read(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_LNKSTA_OFFSET,
++ &stg_reg_val);
++ if (ret) {
++ dev_err(pcie->plda.dev, "failed to read link status\n");
++ return false;
++ }
++
++ return !!(stg_reg_val & DATA_LINK_ACTIVE);
++}
++
++static int starfive_pcie_host_wait_for_link(struct starfive_jh7110_pcie *pcie)
++{
++ int retries;
++
++ /* Check if the link is up or not */
++ for (retries = 0; retries < LINK_WAIT_MAX_RETRIES; retries++) {
++ if (starfive_pcie_link_up(&pcie->plda)) {
++ dev_info(pcie->plda.dev, "port link up\n");
++ return 0;
++ }
++ usleep_range(LINK_WAIT_USLEEP_MIN, LINK_WAIT_USLEEP_MAX);
++ }
++
++ return -ETIMEDOUT;
++}
++
++static int starfive_pcie_enable_phy(struct device *dev,
++ struct starfive_jh7110_pcie *pcie)
++{
++ int ret;
++
++ if (!pcie->phy)
++ return 0;
++
++ ret = phy_init(pcie->phy);
++ if (ret)
++ return dev_err_probe(dev, ret,
++ "failed to initialize pcie phy\n");
++
++ ret = phy_set_mode(pcie->phy, PHY_MODE_PCIE);
++ if (ret) {
++ dev_err_probe(dev, ret, "failed to set pcie mode\n");
++ goto err_phy_on;
++ }
++
++ ret = phy_power_on(pcie->phy);
++ if (ret) {
++ dev_err_probe(dev, ret, "failed to power on pcie phy\n");
++ goto err_phy_on;
++ }
++
++ return 0;
++
++err_phy_on:
++ phy_exit(pcie->phy);
++ return ret;
++}
++
++static void starfive_pcie_disable_phy(struct starfive_jh7110_pcie *pcie)
++{
++ phy_power_off(pcie->phy);
++ phy_exit(pcie->phy);
++}
++
++static void starfive_pcie_host_deinit(struct plda_pcie_rp *plda)
++{
++ struct starfive_jh7110_pcie *pcie =
++ container_of(plda, struct starfive_jh7110_pcie, plda);
++
++ starfive_pcie_clk_rst_deinit(pcie);
++ if (pcie->power_gpio)
++ gpiod_set_value_cansleep(pcie->power_gpio, 0);
++ starfive_pcie_disable_phy(pcie);
++}
++
++static int starfive_pcie_host_init(struct plda_pcie_rp *plda)
++{
++ struct starfive_jh7110_pcie *pcie =
++ container_of(plda, struct starfive_jh7110_pcie, plda);
++ struct device *dev = plda->dev;
++ int ret;
++ int i;
++
++ ret = starfive_pcie_enable_phy(dev, pcie);
++ if (ret)
++ return ret;
++
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_RP_NEP_OFFSET,
++ STG_SYSCON_K_RP_NEP, STG_SYSCON_K_RP_NEP);
++
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_AW_OFFSET,
++ STG_SYSCON_CKREF_SRC_MASK,
++ FIELD_PREP(STG_SYSCON_CKREF_SRC_MASK, 2));
++
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_AW_OFFSET,
++ STG_SYSCON_CLKREQ, STG_SYSCON_CLKREQ);
++
++ ret = starfive_pcie_clk_rst_init(pcie);
++ if (ret)
++ return ret;
++
++ if (pcie->power_gpio)
++ gpiod_set_value_cansleep(pcie->power_gpio, 1);
++
++ if (pcie->reset_gpio)
++ gpiod_set_value_cansleep(pcie->reset_gpio, 1);
++
++ /* Disable physical functions except #0 */
++ for (i = 1; i < PCIE_FUNC_NUM; i++) {
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_AR_OFFSET,
++ STG_SYSCON_AXI4_SLVL_AR_MASK,
++ STG_SYSCON_AXI4_SLVL_PHY_AR(i));
++
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_AW_OFFSET,
++ STG_SYSCON_AXI4_SLVL_AW_MASK,
++ STG_SYSCON_AXI4_SLVL_PHY_AW(i));
++
++ plda_pcie_disable_func(plda);
++ }
++
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_AR_OFFSET,
++ STG_SYSCON_AXI4_SLVL_AR_MASK, 0);
++ regmap_update_bits(pcie->reg_syscon,
++ pcie->stg_pcie_base + STG_SYSCON_AW_OFFSET,
++ STG_SYSCON_AXI4_SLVL_AW_MASK, 0);
++
++ plda_pcie_enable_root_port(plda);
++ plda_pcie_write_rc_bar(plda, 0);
++
++ /* PCIe PCI Standard Configuration Identification Settings. */
++ plda_pcie_set_standard_class(plda);
++
++ /*
++ * The LTR message forwarding of PCIe Message Reception was set by core
++ * as default, but the forward id & addr are also need to be reset.
++ * If we do not disable LTR message forwarding here, or set a legal
++ * forwarding address, the kernel will get stuck after the driver probe.
++ * To workaround, disable the LTR message forwarding support on
++ * PCIe Message Reception.
++ */
++ plda_pcie_disable_ltr(plda);
++
++ /* Prefetchable memory window 64-bit addressing support */
++ plda_pcie_set_pref_win_64bit(plda);
++
++ /*
++ * Ensure that PERST has been asserted for at least 100 ms,
++ * the sleep value is T_PVPERL from PCIe CEM spec r2.0 (Table 2-4)
++ */
++ msleep(100);
++ if (pcie->reset_gpio)
++ gpiod_set_value_cansleep(pcie->reset_gpio, 0);
++
++ /*
++ * With a Downstream Port (<=5GT/s), software must wait a minimum
++ * of 100ms following exit from a conventional reset before
++ * sending a configuration request to the device.
++ */
++ msleep(PCIE_RESET_CONFIG_DEVICE_WAIT_MS);
++
++ if (starfive_pcie_host_wait_for_link(pcie))
++ dev_info(dev, "port link down\n");
++
++ return 0;
++}
++
++static const struct plda_pcie_host_ops sf_host_ops = {
++ .host_init = starfive_pcie_host_init,
++ .host_deinit = starfive_pcie_host_deinit,
++};
++
++static const struct plda_event stf_pcie_event = {
++ .intx_event = EVENT_PM_MSI_INT_INTX,
++ .msi_event = EVENT_PM_MSI_INT_MSI
++};
++
++static int starfive_pcie_probe(struct platform_device *pdev)
++{
++ struct starfive_jh7110_pcie *pcie;
++ struct device *dev = &pdev->dev;
++ struct plda_pcie_rp *plda;
++ int ret;
++
++ pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
++ if (!pcie)
++ return -ENOMEM;
++
++ plda = &pcie->plda;
++ plda->dev = dev;
++
++ ret = starfive_pcie_parse_dt(pcie, dev);
++ if (ret)
++ return ret;
++
++ plda->host_ops = &sf_host_ops;
++ plda->num_events = PLDA_MAX_EVENT_NUM;
++ /* mask doorbell event */
++ plda->events_bitmap = GENMASK(PLDA_INT_EVENT_NUM - 1, 0)
++ & ~BIT(PLDA_AXI_DOORBELL)
++ & ~BIT(PLDA_PCIE_DOORBELL);
++ plda->events_bitmap <<= PLDA_NUM_DMA_EVENTS;
++ ret = plda_pcie_host_init(&pcie->plda, &starfive_pcie_ops,
++ &stf_pcie_event);
++ if (ret)
++ return ret;
++
++ pm_runtime_enable(&pdev->dev);
++ pm_runtime_get_sync(&pdev->dev);
++ platform_set_drvdata(pdev, pcie);
++
++ return 0;
++}
++
++static void starfive_pcie_remove(struct platform_device *pdev)
++{
++ struct starfive_jh7110_pcie *pcie = platform_get_drvdata(pdev);
++
++ pm_runtime_put(&pdev->dev);
++ pm_runtime_disable(&pdev->dev);
++ plda_pcie_host_deinit(&pcie->plda);
++ platform_set_drvdata(pdev, NULL);
++}
++
++static int starfive_pcie_suspend_noirq(struct device *dev)
++{
++ struct starfive_jh7110_pcie *pcie = dev_get_drvdata(dev);
++
++ clk_bulk_disable_unprepare(pcie->num_clks, pcie->clks);
++ starfive_pcie_disable_phy(pcie);
++
++ return 0;
++}
++
++static int starfive_pcie_resume_noirq(struct device *dev)
++{
++ struct starfive_jh7110_pcie *pcie = dev_get_drvdata(dev);
++ int ret;
++
++ ret = starfive_pcie_enable_phy(dev, pcie);
++ if (ret)
++ return ret;
++
++ ret = clk_bulk_prepare_enable(pcie->num_clks, pcie->clks);
++ if (ret) {
++ dev_err(dev, "failed to enable clocks\n");
++ starfive_pcie_disable_phy(pcie);
++ return ret;
++ }
++
++ return 0;
++}
++
++static const struct dev_pm_ops starfive_pcie_pm_ops = {
++ NOIRQ_SYSTEM_SLEEP_PM_OPS(starfive_pcie_suspend_noirq,
++ starfive_pcie_resume_noirq)
++};
++
++static const struct of_device_id starfive_pcie_of_match[] = {
++ { .compatible = "starfive,jh7110-pcie", },
++ { /* sentinel */ }
++};
++MODULE_DEVICE_TABLE(of, starfive_pcie_of_match);
++
++static struct platform_driver starfive_pcie_driver = {
++ .driver = {
++ .name = "pcie-starfive",
++ .of_match_table = of_match_ptr(starfive_pcie_of_match),
++ .pm = pm_sleep_ptr(&starfive_pcie_pm_ops),
++ },
++ .probe = starfive_pcie_probe,
++ .remove_new = starfive_pcie_remove,
++};
++module_platform_driver(starfive_pcie_driver);
++
++MODULE_DESCRIPTION("StarFive JH7110 PCIe host driver");
++MODULE_LICENSE("GPL v2");
+--
+2.43.0
+
+
+From bb33f9248da218662ccf28d1730833a18ce22d9f Mon Sep 17 00:00:00 2001
+From: Minda Chen <minda.chen@starfivetech.com>
+Date: Mon, 8 Jan 2024 19:06:12 +0800
+Subject: [PATCH 22/23] riscv: dts: starfive: add PCIe dts configuration for
+ JH7110
+
+Add PCIe dts configuraion for JH7110 SoC platform.
+
+Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
+Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
+Message-ID: <20240108110612.19048-23-minda.chen@starfivetech.com>
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../jh7110-starfive-visionfive-2.dtsi | 64 ++++++++++++++
+ arch/riscv/boot/dts/starfive/jh7110.dtsi | 86 +++++++++++++++++++
+ 2 files changed, 150 insertions(+)
+
+diff --git a/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
+index b89e9791efa7..2f8056d6f817 100644
+--- a/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
++++ b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
+@@ -287,6 +287,22 @@ &pwmdac {
+ status = "okay";
+ };
+
++&pcie0 {
++ perst-gpios = <&sysgpio 26 GPIO_ACTIVE_LOW>;
++ phys = <&pciephy0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pcie0_pins>;
++ status = "okay";
++};
++
++&pcie1 {
++ perst-gpios = <&sysgpio 28 GPIO_ACTIVE_LOW>;
++ phys = <&pciephy1>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pcie1_pins>;
++ status = "okay";
++};
++
+ &qspi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+@@ -513,6 +529,54 @@ GPOEN_ENABLE,
+ };
+ };
+
++ pcie0_pins: pcie0-0 {
++ clkreq-pins {
++ pinmux = <GPIOMUX(27, GPOUT_LOW,
++ GPOEN_DISABLE,
++ GPI_NONE)>;
++ bias-pull-down;
++ drive-strength = <2>;
++ input-enable;
++ input-schmitt-disable;
++ slew-rate = <0>;
++ };
++
++ wake-pins {
++ pinmux = <GPIOMUX(32, GPOUT_LOW,
++ GPOEN_DISABLE,
++ GPI_NONE)>;
++ bias-pull-up;
++ drive-strength = <2>;
++ input-enable;
++ input-schmitt-disable;
++ slew-rate = <0>;
++ };
++ };
++
++ pcie1_pins: pcie1-0 {
++ clkreq-pins {
++ pinmux = <GPIOMUX(29, GPOUT_LOW,
++ GPOEN_DISABLE,
++ GPI_NONE)>;
++ bias-pull-down;
++ drive-strength = <2>;
++ input-enable;
++ input-schmitt-disable;
++ slew-rate = <0>;
++ };
++
++ wake-pins {
++ pinmux = <GPIOMUX(21, GPOUT_LOW,
++ GPOEN_DISABLE,
++ GPI_NONE)>;
++ bias-pull-up;
++ drive-strength = <2>;
++ input-enable;
++ input-schmitt-disable;
++ slew-rate = <0>;
++ };
++ };
++
+ spi0_pins: spi0-0 {
+ mosi-pins {
+ pinmux = <GPIOMUX(52, GPOUT_SYS_SPI0_TXD,
+diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi
+index 45213cdf50dc..dfa2f94ed5b2 100644
+--- a/arch/riscv/boot/dts/starfive/jh7110.dtsi
++++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi
+@@ -1138,5 +1138,91 @@ voutcrg: clock-controller@295c0000 {
+ #reset-cells = <1>;
+ power-domains = <&pwrc JH7110_PD_VOUT>;
+ };
++
++ pcie0: pcie@940000000 {
++ compatible = "starfive,jh7110-pcie";
++ reg = <0x9 0x40000000 0x0 0x1000000>,
++ <0x0 0x2b000000 0x0 0x100000>;
++ reg-names = "cfg", "apb";
++ linux,pci-domain = <0>;
++ #address-cells = <3>;
++ #size-cells = <2>;
++ #interrupt-cells = <1>;
++ ranges = <0x82000000 0x0 0x30000000 0x0 0x30000000 0x0 0x08000000>,
++ <0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
++ interrupts = <56>;
++ interrupt-map-mask = <0x0 0x0 0x0 0x7>;
++ interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
++ <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
++ <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
++ <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
++ msi-controller;
++ device_type = "pci";
++ starfive,stg-syscon = <&stg_syscon>;
++ bus-range = <0x0 0xff>;
++ clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
++ <&stgcrg JH7110_STGCLK_PCIE0_TL>,
++ <&stgcrg JH7110_STGCLK_PCIE0_AXI_MST0>,
++ <&stgcrg JH7110_STGCLK_PCIE0_APB>;
++ clock-names = "noc", "tl", "axi_mst0", "apb";
++ resets = <&stgcrg JH7110_STGRST_PCIE0_AXI_MST0>,
++ <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV0>,
++ <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV>,
++ <&stgcrg JH7110_STGRST_PCIE0_BRG>,
++ <&stgcrg JH7110_STGRST_PCIE0_CORE>,
++ <&stgcrg JH7110_STGRST_PCIE0_APB>;
++ reset-names = "mst0", "slv0", "slv", "brg",
++ "core", "apb";
++ status = "disabled";
++
++ pcie_intc0: interrupt-controller {
++ #address-cells = <0>;
++ #interrupt-cells = <1>;
++ interrupt-controller;
++ };
++ };
++
++ pcie1: pcie@9c0000000 {
++ compatible = "starfive,jh7110-pcie";
++ reg = <0x9 0xc0000000 0x0 0x1000000>,
++ <0x0 0x2c000000 0x0 0x100000>;
++ reg-names = "cfg", "apb";
++ linux,pci-domain = <1>;
++ #address-cells = <3>;
++ #size-cells = <2>;
++ #interrupt-cells = <1>;
++ ranges = <0x82000000 0x0 0x38000000 0x0 0x38000000 0x0 0x08000000>,
++ <0xc3000000 0x9 0x80000000 0x9 0x80000000 0x0 0x40000000>;
++ interrupts = <57>;
++ interrupt-map-mask = <0x0 0x0 0x0 0x7>;
++ interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc1 0x1>,
++ <0x0 0x0 0x0 0x2 &pcie_intc1 0x2>,
++ <0x0 0x0 0x0 0x3 &pcie_intc1 0x3>,
++ <0x0 0x0 0x0 0x4 &pcie_intc1 0x4>;
++ msi-controller;
++ device_type = "pci";
++ starfive,stg-syscon = <&stg_syscon>;
++ bus-range = <0x0 0xff>;
++ clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
++ <&stgcrg JH7110_STGCLK_PCIE1_TL>,
++ <&stgcrg JH7110_STGCLK_PCIE1_AXI_MST0>,
++ <&stgcrg JH7110_STGCLK_PCIE1_APB>;
++ clock-names = "noc", "tl", "axi_mst0", "apb";
++ resets = <&stgcrg JH7110_STGRST_PCIE1_AXI_MST0>,
++ <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV0>,
++ <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV>,
++ <&stgcrg JH7110_STGRST_PCIE1_BRG>,
++ <&stgcrg JH7110_STGRST_PCIE1_CORE>,
++ <&stgcrg JH7110_STGRST_PCIE1_APB>;
++ reset-names = "mst0", "slv0", "slv", "brg",
++ "core", "apb";
++ status = "disabled";
++
++ pcie_intc1: interrupt-controller {
++ #address-cells = <0>;
++ #interrupt-cells = <1>;
++ interrupt-controller;
++ };
++ };
+ };
+ };
+--
+2.43.0
+
+
+From 744fa2c80f19985d27a786af5e78cc9ce945b06c Mon Sep 17 00:00:00 2001
+From: Xingyu Wu <xingyu.wu@starfivetech.com>
+Date: Mon, 21 Aug 2023 23:29:15 +0800
+Subject: [PATCH 23/23] clk: starfive: jh7110-sys: Fix lower rate of CPUfreq by
+ setting PLL0 rate to 1.5GHz
+
+CPUfreq supports 4 cpu frequency loads on 375/500/750/1500MHz.
+But now PLL0 rate is 1GHz and the cpu frequency loads become
+333/500/500/1000MHz in fact.
+
+So PLL0 rate should be set to 1.5GHz. Change the parent of cpu_root clock
+and the divider of cpu_core before the setting.
+
+Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
+Fixes: e2c510d6d630 ("riscv: dts: starfive: Add cpu scaling for JH7110 SoC")
+Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
+Link: https://lore.kernel.org/r/20230821152915.208366-1-xingyu.wu@starfivetech.com
+Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+---
+ .../clk/starfive/clk-starfive-jh7110-sys.c | 47 ++++++++++++++++++-
+ 1 file changed, 46 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/clk/starfive/clk-starfive-jh7110-sys.c b/drivers/clk/starfive/clk-starfive-jh7110-sys.c
+index 3884eff9fe93..b6b9e967dfc7 100644
+--- a/drivers/clk/starfive/clk-starfive-jh7110-sys.c
++++ b/drivers/clk/starfive/clk-starfive-jh7110-sys.c
+@@ -501,7 +501,52 @@ static int __init jh7110_syscrg_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
+- return jh7110_reset_controller_register(priv, "rst-sys", 0);
++ ret = jh7110_reset_controller_register(priv, "rst-sys", 0);
++ if (ret)
++ return ret;
++
++ /*
++ * Set PLL0 rate to 1.5GHz
++ * In order to not affect the cpu when the PLL0 rate is changing,
++ * we need to switch the parent of cpu_root clock to osc clock first,
++ * and then switch back after setting the PLL0 rate.
++ */
++ pllclk = clk_get(priv->dev, "pll0_out");
++ if (!IS_ERR(pllclk)) {
++ struct clk *osc = clk_get(&pdev->dev, "osc");
++ struct clk *cpu_root = priv->reg[JH7110_SYSCLK_CPU_ROOT].hw.clk;
++ struct clk *cpu_core = priv->reg[JH7110_SYSCLK_CPU_CORE].hw.clk;
++
++ if (IS_ERR(osc)) {
++ clk_put(pllclk);
++ return PTR_ERR(osc);
++ }
++
++ /*
++ * CPU need voltage regulation by CPUfreq if set 1.5GHz.
++ * So in this driver, cpu_core need to be set the divider to be 2 first
++ * and will be 750M after setting parent.
++ */
++ ret = clk_set_rate(cpu_core, clk_get_rate(cpu_core) / 2);
++ if (ret)
++ goto failed_set;
++
++ ret = clk_set_parent(cpu_root, osc);
++ if (ret)
++ goto failed_set;
++
++ ret = clk_set_rate(pllclk, 1500000000);
++ if (ret)
++ goto failed_set;
++
++ ret = clk_set_parent(cpu_root, pllclk);
++
++failed_set:
++ clk_put(pllclk);
++ clk_put(osc);
++ }
++
++ return ret;
+ }
+
+ static const struct of_device_id jh7110_syscrg_match[] = {
+--
+2.43.0
+
diff --git a/testing/linux-starfive/config-starfive.riscv64 b/testing/linux-starfive/config-starfive.riscv64
new file mode 100644
index 00000000000..29494f3e5b2
--- /dev/null
+++ b/testing/linux-starfive/config-starfive.riscv64
@@ -0,0 +1,5744 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/riscv 6.8.7 Kernel Configuration
+#
+CONFIG_CC_VERSION_TEXT="gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309"
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130201
+CONFIG_CLANG_VERSION=0
+CONFIG_AS_IS_GNU=y
+CONFIG_AS_VERSION=24200
+CONFIG_LD_IS_BFD=y
+CONFIG_LD_VERSION=24200
+CONFIG_LLD_VERSION=0
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
+CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
+CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
+CONFIG_PAHOLE_VERSION=0
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_TABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+# CONFIG_WERROR is not set
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_WATCH_QUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_IRQ_IPI=y
+CONFIG_GENERIC_IRQ_IPI_MUX=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# end of IRQ subsystem
+
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_CONTEXT_TRACKING=y
+CONFIG_CONTEXT_TRACKING_IDLE=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+# CONFIG_NO_HZ is not set
+CONFIG_HIGH_RES_TIMERS=y
+# end of Timers subsystem
+
+CONFIG_BPF=y
+CONFIG_HAVE_EBPF_JIT=y
+
+#
+# BPF subsystem
+#
+CONFIG_BPF_SYSCALL=y
+# CONFIG_BPF_JIT is not set
+CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+# CONFIG_BPF_PRELOAD is not set
+# end of BPF subsystem
+
+CONFIG_PREEMPT_BUILD=y
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+CONFIG_PREEMPT_DYNAMIC=y
+
+#
+# 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=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+# CONFIG_PSI is not set
+# end of CPU/Task time and stats accounting
+
+CONFIG_CPU_ISOLATION=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_TREE_SRCU=y
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RCU=y
+CONFIG_TASKS_TRACE_RCU=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+# end of RCU Subsystem
+
+CONFIG_IKCONFIG=m
+CONFIG_IKCONFIG_PROC=y
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# CONFIG_UCLAMP_TASK is not set
+# end of Scheduler features
+
+CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
+CONFIG_CC_HAS_INT128=y
+CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
+CONFIG_GCC10_NO_ARRAY_BOUNDS=y
+CONFIG_CC_NO_ARRAY_BOUNDS=y
+CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
+CONFIG_CC_NO_STRINGOP_OVERFLOW=y
+CONFIG_ARCH_SUPPORTS_INT128=y
+CONFIG_CGROUPS=y
+CONFIG_PAGE_COUNTER=y
+# CONFIG_CGROUP_FAVOR_DYNMODS is not set
+CONFIG_MEMCG=y
+CONFIG_MEMCG_KMEM=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_SCHED_MM_CID=y
+CONFIG_CGROUP_PIDS=y
+# CONFIG_CGROUP_RDMA is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+# CONFIG_PROC_PID_CPUSET is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_BPF=y
+# CONFIG_CGROUP_MISC is not set
+CONFIG_SOCK_CGROUP_DATA=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_TIME_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+# CONFIG_RD_LZ4 is not set
+CONFIG_RD_ZSTD=y
+CONFIG_BOOT_CONFIG=y
+# CONFIG_BOOT_CONFIG_FORCE is not set
+# CONFIG_BOOT_CONFIG_EMBED is not set
+CONFIG_INITRAMFS_PRESERVE_MTIME=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
+CONFIG_LD_ORPHAN_WARN=y
+CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_SYSCTL_ARCH_UNALIGN_ALLOW=y
+# CONFIG_EXPERT is not set
+CONFIG_MULTIUSER=y
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=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_KCMP=y
+CONFIG_RSEQ=y
+CONFIG_CACHESTAT_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_SELFTEST is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# end of Kernel Performance Events And Counters
+
+CONFIG_SYSTEM_DATA_VERIFICATION=y
+# CONFIG_PROFILING is not set
+
+#
+# Kexec and crash features
+#
+# CONFIG_KEXEC is not set
+# CONFIG_KEXEC_FILE is not set
+# CONFIG_CRASH_DUMP is not set
+# end of Kexec and crash features
+# end of General setup
+
+CONFIG_64BIT=y
+CONFIG_RISCV=y
+CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE=y
+CONFIG_RISCV_USE_LINKER_RELAXATION=y
+CONFIG_ARCH_MMAP_RND_BITS_MIN=18
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=24
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17
+CONFIG_RISCV_SBI=y
+CONFIG_MMU=y
+CONFIG_PAGE_OFFSET=0xff60000000000000
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_PGTABLE_LEVELS=5
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_RISCV_DMA_NONCOHERENT=y
+CONFIG_RISCV_NONSTANDARD_CACHE_OPS=y
+CONFIG_AS_HAS_INSN=y
+CONFIG_AS_HAS_OPTION_ARCH=y
+
+#
+# SoC selection
+#
+# CONFIG_SOC_MICROCHIP_POLARFIRE is not set
+# CONFIG_ARCH_RENESAS is not set
+# CONFIG_SOC_SIFIVE is not set
+# CONFIG_ARCH_SOPHGO is not set
+CONFIG_ARCH_STARFIVE=y
+CONFIG_SOC_STARFIVE=y
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_THEAD is not set
+# CONFIG_SOC_VIRT is not set
+# end of SoC selection
+
+#
+# CPU errata selection
+#
+# CONFIG_ERRATA_ANDES is not set
+CONFIG_ERRATA_SIFIVE=y
+CONFIG_ERRATA_SIFIVE_CIP_453=y
+CONFIG_ERRATA_SIFIVE_CIP_1200=y
+CONFIG_ERRATA_THEAD=y
+CONFIG_ERRATA_THEAD_PBMT=y
+CONFIG_ERRATA_THEAD_CMO=y
+CONFIG_ERRATA_THEAD_PMU=y
+# end of CPU errata selection
+
+#
+# Platform type
+#
+# CONFIG_NONPORTABLE is not set
+CONFIG_ARCH_RV64I=y
+# CONFIG_CMODEL_MEDLOW is not set
+CONFIG_CMODEL_MEDANY=y
+CONFIG_MODULE_SECTIONS=y
+CONFIG_SMP=y
+# CONFIG_SCHED_MC is not set
+CONFIG_NR_CPUS=4
+CONFIG_HOTPLUG_CPU=y
+CONFIG_TUNE_GENERIC=y
+# CONFIG_NUMA is not set
+CONFIG_RISCV_ALTERNATIVE=y
+CONFIG_RISCV_ALTERNATIVE_EARLY=y
+CONFIG_RISCV_ISA_C=y
+CONFIG_RISCV_ISA_SVNAPOT=y
+CONFIG_RISCV_ISA_SVPBMT=y
+CONFIG_TOOLCHAIN_HAS_V=y
+CONFIG_RISCV_ISA_V=y
+CONFIG_RISCV_ISA_V_DEFAULT_ENABLE=y
+CONFIG_RISCV_ISA_V_UCOPY_THRESHOLD=768
+CONFIG_RISCV_ISA_V_PREEMPTIVE=y
+CONFIG_TOOLCHAIN_HAS_ZBB=y
+CONFIG_RISCV_ISA_ZBB=y
+CONFIG_RISCV_ISA_ZICBOM=y
+CONFIG_RISCV_ISA_ZICBOZ=y
+CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y
+CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y
+CONFIG_FPU=y
+CONFIG_IRQ_STACKS=y
+CONFIG_THREAD_SIZE_ORDER=2
+CONFIG_RISCV_MISALIGNED=y
+# end of Platform type
+
+#
+# Kernel features
+#
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_HZ_1000=y
+CONFIG_HZ=1000
+CONFIG_SCHED_HRTICK=y
+CONFIG_RISCV_SBI_V01=y
+# CONFIG_RISCV_BOOT_SPINWAIT is not set
+CONFIG_ARCH_SUPPORTS_KEXEC=y
+CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
+CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
+CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
+CONFIG_COMPAT=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_RELOCATABLE is not set
+# CONFIG_RANDOMIZE_BASE is not set
+# end of Kernel features
+
+#
+# Boot options
+#
+CONFIG_CMDLINE=""
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
+CONFIG_STACKPROTECTOR_PER_TASK=y
+CONFIG_RISCV_ISA_FALLBACK=y
+# end of Boot options
+
+CONFIG_PORTABLE=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+# CONFIG_ENERGY_MODEL is not set
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# end of Power management options
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Idle
+#
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+# CONFIG_CPU_IDLE_GOV_LADDER is not set
+CONFIG_CPU_IDLE_GOV_MENU=y
+# CONFIG_CPU_IDLE_GOV_TEO is not set
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DT_IDLE_GENPD=y
+
+#
+# RISC-V CPU Idle Drivers
+#
+CONFIG_RISCV_SBI_CPUIDLE=y
+# end of RISC-V CPU Idle Drivers
+# end of CPU Idle
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+#
+# CPU frequency scaling drivers
+#
+CONFIG_CPUFREQ_DT=m
+CONFIG_CPUFREQ_DT_PLATDEV=y
+# end of CPU Frequency scaling
+# end of CPU Power Management
+
+# CONFIG_VIRTUALIZATION is not set
+CONFIG_ARCH_SUPPORTS_ACPI=y
+# CONFIG_ACPI is not set
+
+#
+# General architecture-dependent options
+#
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+CONFIG_GENERIC_ENTRY=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+# CONFIG_SECCOMP_CACHE_DEBUG is not set
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_LTO_NONE=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_ARCH_WANT_PMD_MKWRITE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_HAS_VDSO_DATA=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_DYNAMIC_SIGFRAME=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+# end of GCOV-based kernel profiling
+
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+CONFIG_FUNCTION_ALIGNMENT=0
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULE_SIG_FORMAT=y
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_MODULE_SIG=y
+# CONFIG_MODULE_SIG_FORCE is not set
+CONFIG_MODULE_SIG_ALL=y
+# CONFIG_MODULE_SIG_SHA1 is not set
+CONFIG_MODULE_SIG_SHA256=y
+# CONFIG_MODULE_SIG_SHA384 is not set
+# CONFIG_MODULE_SIG_SHA512 is not set
+# CONFIG_MODULE_SIG_SHA3_256 is not set
+# CONFIG_MODULE_SIG_SHA3_384 is not set
+# CONFIG_MODULE_SIG_SHA3_512 is not set
+CONFIG_MODULE_SIG_HASH="sha256"
+CONFIG_MODULE_COMPRESS_NONE=y
+# CONFIG_MODULE_COMPRESS_GZIP is not set
+# CONFIG_MODULE_COMPRESS_XZ is not set
+# CONFIG_MODULE_COMPRESS_ZSTD is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_CGROUP_PUNT_BIO=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_INTEGRITY_T10=y
+CONFIG_BLK_DEV_WRITE_MOUNTED=y
+# CONFIG_BLK_DEV_ZONED is not set
+CONFIG_BLK_DEV_THROTTLING=y
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+CONFIG_BLK_CGROUP_IOLATENCY=y
+# CONFIG_BLK_CGROUP_IOCOST is not set
+CONFIG_BLK_CGROUP_IOPRIO=y
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# end of Partition Types
+
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
+CONFIG_BLK_MQ_STACKING=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=m
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
+# CONFIG_BFQ_CGROUP_DEBUG is not set
+# end of IO Schedulers
+
+CONFIG_PADATA=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_MMIOWB=y
+CONFIG_MMIOWB=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_ARCH_HAS_BINFMT_FLAT=y
+# CONFIG_BINFMT_FLAT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_ZPOOL=y
+CONFIG_SWAP=y
+CONFIG_ZSWAP=y
+# CONFIG_ZSWAP_DEFAULT_ON is not set
+# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set
+# CONFIG_ZSWAP_SHRINKER_DEFAULT_ON is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set
+# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set
+# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
+CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
+CONFIG_ZSMALLOC=m
+# CONFIG_ZSMALLOC_STAT is not set
+CONFIG_ZSMALLOC_CHAIN_SIZE=8
+
+#
+# Slab allocator options
+#
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_RANDOM_KMALLOC_CACHES is not set
+# end of Slab allocator options
+
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
+CONFIG_BALLOON_COMPACTION=y
+CONFIG_COMPACTION=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_PAGE_REPORTING=y
+CONFIG_MIGRATION=y
+CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_PCP_BATCH_SCALE_MAX=5
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
+CONFIG_THP_SWAP=y
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_CMA=y
+# CONFIG_CMA_SYSFS is not set
+CONFIG_CMA_AREAS=7
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ZONE_DMA32=y
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_PERCPU_STATS is not set
+
+#
+# GUP_TEST needs to have DEBUG_FS enabled
+#
+# CONFIG_DMAPOOL_TEST is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_SECRETMEM=y
+# CONFIG_ANON_VMA_NAME is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+# CONFIG_LRU_GEN_STATS is not set
+CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
+CONFIG_PER_VMA_LOCK=y
+CONFIG_LOCK_MM_AND_FIND_VMA=y
+
+#
+# Data Access Monitoring
+#
+# CONFIG_DAMON is not set
+# end of Data Access Monitoring
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_XGRESS=y
+CONFIG_NET_REDIRECT=y
+CONFIG_SKB_EXTENSIONS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=m
+CONFIG_PACKET_DIAG=m
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_UNIX_DIAG=m
+CONFIG_TLS=m
+# CONFIG_TLS_DEVICE is not set
+# CONFIG_TLS_TOE is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_ALGO=m
+CONFIG_XFRM_USER=m
+CONFIG_XFRM_INTERFACE=m
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ESP=m
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+# CONFIG_XDP_SOCKETS is not set
+CONFIG_NET_HANDSHAKE=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=y
+# CONFIG_IP_PIMSM_V1 is not set
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_NET_IPVTI=m
+CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_NET_FOU_IP_TUNNELS=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+# CONFIG_INET_ESP_OFFLOAD is not set
+# CONFIG_INET_ESPINTCP is not set
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_TABLE_PERTURB_ORDER=16
+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 is not set
+CONFIG_INET_DIAG_DESTROY=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_NV=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
+CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_BBR=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_TCP_SIGPOOL=y
+# CONFIG_TCP_AO is not set
+CONFIG_TCP_MD5SIG=y
+CONFIG_IPV6=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+# CONFIG_INET6_ESP_OFFLOAD is not set
+# CONFIG_INET6_ESPINTCP is not set
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_IPV6_ILA=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_VTI=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=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 is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
+# CONFIG_NETLABEL is not set
+CONFIG_MPTCP=y
+CONFIG_INET_MPTCP_DIAG=m
+CONFIG_MPTCP_IPV6=y
+# CONFIG_NETWORK_SECMARK is not set
+# 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_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NETFILTER_BPF_LINK=y
+# CONFIG_NETFILTER_NETLINK_HOOK is not set
+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_SYSLOG=m
+CONFIG_NETFILTER_CONNCOUNT=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_PROCFS=y
+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=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_CONNTRACK_AMANDA=m
+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=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_NETLINK_TIMEOUT=m
+CONFIG_NF_CT_NETLINK_HELPER=m
+CONFIG_NETFILTER_NETLINK_GLUE_CT=y
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=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_NETFILTER_SYNPROXY=m
+CONFIG_NF_TABLES=m
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+# CONFIG_NFT_NUMGEN is not set
+CONFIG_NFT_CT=m
+CONFIG_NFT_FLOW_OFFLOAD=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_REJECT_INET=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_FIB=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_NF_DUP_NETDEV=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 is not set
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XTABLES_COMPAT=y
+
+#
+# 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_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_LED=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=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=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=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_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=m
+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=m
+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=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
+# 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=m
+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=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETNET=m
+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=y
+
+#
+# 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=m
+CONFIG_IP_VS_OVF=m
+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_TWOS=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_TABLES_IPV4=y
+CONFIG_NFT_REJECT_IPV4=m
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_NF_DUP_IPV4=m
+CONFIG_NF_LOG_ARP=m
+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=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 is not set
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_SOCKET_IPV6=m
+CONFIG_NF_TPROXY_IPV6=m
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NFT_REJECT_IPV6=m
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_NF_DUP_IPV6=m
+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=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
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_TABLES_BRIDGE=m
+# CONFIG_NFT_BRIDGE_META is not set
+CONFIG_NFT_BRIDGE_REJECT=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_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+# end of DCCP CCIDs Configuration
+
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
+CONFIG_RDS=m
+# CONFIG_RDS_TCP is not set
+# CONFIG_RDS_DEBUG is not set
+CONFIG_TIPC=m
+CONFIG_TIPC_MEDIA_UDP=y
+CONFIG_TIPC_CRYPTO=y
+CONFIG_TIPC_DIAG=m
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER 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_MRP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_VLAN_FILTERING=y
+# CONFIG_BRIDGE_MRP is not set
+# CONFIG_BRIDGE_CFM is not set
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_LLC=m
+CONFIG_LLC2=m
+# CONFIG_ATALK is not set
+CONFIG_X25=m
+CONFIG_LAPB=m
+CONFIG_PHONET=m
+CONFIG_6LOWPAN=m
+CONFIG_6LOWPAN_NHC=m
+CONFIG_6LOWPAN_NHC_DEST=m
+CONFIG_6LOWPAN_NHC_FRAGMENT=m
+CONFIG_6LOWPAN_NHC_HOP=m
+CONFIG_6LOWPAN_NHC_IPV6=m
+CONFIG_6LOWPAN_NHC_MOBILITY=m
+CONFIG_6LOWPAN_NHC_ROUTING=m
+CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
+CONFIG_IEEE802154=m
+# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set
+CONFIG_IEEE802154_SOCKET=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_MAC802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+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_MQPRIO_LIB=m
+CONFIG_NET_SCH_TAPRIO=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+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=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_SCH_ETS=m
+# CONFIG_NET_SCH_DEFAULT is not set
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=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_FLOW=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_MATCHALL=m
+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 is not set
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+# CONFIG_NET_ACT_MPLS is not set
+CONFIG_NET_ACT_VLAN=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_NET_ACT_CONNMARK=m
+# CONFIG_NET_ACT_CTINFO is not set
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+# CONFIG_NET_ACT_CT is not set
+# CONFIG_NET_ACT_GATE is not set
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
+# CONFIG_NET_TC_SKB_EXT is not set
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=m
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+CONFIG_NETLINK_DIAG=y
+CONFIG_MPLS=y
+CONFIG_NET_MPLS_GSO=m
+CONFIG_MPLS_ROUTING=m
+CONFIG_MPLS_IPTUNNEL=m
+CONFIG_NET_NSH=m
+# CONFIG_HSR is not set
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_QRTR=m
+# CONFIG_QRTR_TUN is not set
+CONFIG_NET_NCSI=y
+# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
+# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_MAX_SKB_FRAGS=17
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+# CONFIG_BPF_STREAM_PARSER is not set
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+# 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_MCTP is not set
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
+CONFIG_NET_9P=m
+CONFIG_NET_9P_FD=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+CONFIG_NET_IFE=m
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_PAGE_POOL=y
+CONFIG_PAGE_POOL_STATS=y
+CONFIG_FAILOVER=m
+CONFIG_ETHTOOL_NETLINK=y
+
+#
+# Device Drivers
+#
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+# CONFIG_PCIEPORTBUS is not set
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+# CONFIG_PCIE_PTM is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+# CONFIG_PCI_DYNAMIC_OF_NODES is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# PCI controller drivers
+#
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+# CONFIG_PCIE_XILINX is not set
+
+#
+# Cadence-based PCIe controllers
+#
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# end of Cadence-based PCIe controllers
+
+#
+# DesignWare-based PCIe controllers
+#
+# CONFIG_PCI_MESON is not set
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+# end of DesignWare-based PCIe controllers
+
+#
+# Mobiveil-based PCIe controllers
+#
+# end of Mobiveil-based PCIe controllers
+
+#
+# PLDA-based PCIe controllers
+#
+CONFIG_PCIE_PLDA_HOST=y
+# CONFIG_PCIE_MICROCHIP_HOST is not set
+CONFIG_PCIE_STARFIVE_HOST=y
+# end of PLDA-based PCIe controllers
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_CXL_BUS is not set
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+CONFIG_AUXILIARY_BUS=y
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_DEVTMPFS_SAFE is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+CONFIG_FW_CACHE=y
+# CONFIG_FW_UPLOAD is not set
+# end of Firmware loader
+
+CONFIG_ALLOW_DEV_COREDUMP=y
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_GENERIC_CPU_DEVICES=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_MOXTET is not set
+# CONFIG_MHI_BUS is not set
+# CONFIG_MHI_BUS_EP is not set
+# end of Bus devices
+
+#
+# Cache Drivers
+#
+# CONFIG_AX45MP_L2_CACHE is not set
+CONFIG_SIFIVE_CCACHE=y
+# end of Cache Drivers
+
+# CONFIG_CONNECTOR is not set
+
+#
+# Firmware Drivers
+#
+
+#
+# ARM System Control and Management Interface Protocol
+#
+# end of ARM System Control and Management Interface Protocol
+
+# CONFIG_FW_CFG_SYSFS is not set
+# CONFIG_SYSFB_SIMPLEFB is not set
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# EFI (Extensible Firmware Interface) Support
+#
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+# CONFIG_EFI_ZBOOT is not set
+# CONFIG_EFI_BOOTLOADER_CONTROL is not set
+# CONFIG_EFI_CAPSULE_LOADER is not set
+# CONFIG_EFI_TEST is not set
+# CONFIG_RESET_ATTACK_MITIGATION is not set
+# CONFIG_EFI_DISABLE_PCI_DMA is not set
+CONFIG_EFI_EARLYCON=y
+# CONFIG_EFI_DISABLE_RUNTIME is not set
+# CONFIG_EFI_COCO_SECRET is not set
+# end of EFI (Extensible Firmware Interface) Support
+
+#
+# Qualcomm firmware drivers
+#
+# end of Qualcomm firmware drivers
+
+#
+# Tegra firmware driver
+#
+# end of Tegra firmware driver
+# end of Firmware Drivers
+
+# CONFIG_GNSS is not set
+CONFIG_MTD=m
+# CONFIG_MTD_TESTS is not set
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+
+#
+# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK.
+#
+# 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=y
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE 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_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 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+# end of Mapping drivers for chip access
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_MCHP48L640 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
+
+#
+# NAND
+#
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_RAW_NAND is not set
+# CONFIG_MTD_SPI_NAND is not set
+
+#
+# ECC engine support
+#
+# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set
+# CONFIG_MTD_NAND_ECC_SW_BCH is not set
+# CONFIG_MTD_NAND_ECC_MXIC is not set
+# end of ECC engine support
+# end of NAND
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# end of LPDDR & LPDDR2 PCM memory drivers
+
+CONFIG_MTD_SPI_NOR=m
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_BLOCK 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_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_CDROM=m
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+CONFIG_ZRAM=m
+CONFIG_ZRAM_DEF_COMP_LZORLE=y
+# CONFIG_ZRAM_DEF_COMP_LZO is not set
+CONFIG_ZRAM_DEF_COMP="lzo-rle"
+# CONFIG_ZRAM_WRITEBACK is not set
+# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
+# CONFIG_ZRAM_MULTI_COMP is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_VIRTIO_BLK is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_UBLK is not set
+
+#
+# NVME Support
+#
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=y
+# CONFIG_NVME_MULTIPATH is not set
+# CONFIG_NVME_VERBOSE_ERRORS is not set
+# CONFIG_NVME_HWMON is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_HOST_AUTH 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_PHANTOM is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO 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_DW_XDATA_PCIE is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_HISI_HIKEY_USB is not set
+# CONFIG_OPEN_DICE is not set
+# CONFIG_VCPU_STALL_DETECTOR is not set
+# CONFIG_NSM is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=y
+# CONFIG_EEPROM_AT25 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
+
+# CONFIG_CB710_CORE is not set
+
+#
+# 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
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_BCM_VK is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_GP_PCI1XXXX is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI_COMMON=y
+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=m
+# CONFIG_CHR_DEV_SG is not set
+CONFIG_BLK_DEV_BSG=y
+# 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=y
+CONFIG_BLK_DEV_MD=m
+# CONFIG_MD_BITMAP_FILE is not set
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_BCACHE=m
+# CONFIG_BCACHE_DEBUG is not set
+# CONFIG_BCACHE_ASYNC_REGISTRATION is not set
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set
+CONFIG_DM_PERSISTENT_DATA=m
+# CONFIG_DM_UNSTRIPED is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+# CONFIG_DM_THIN_PROVISIONING is not set
+# CONFIG_DM_CACHE is not set
+# CONFIG_DM_WRITECACHE is not set
+# CONFIG_DM_EBS is not set
+# CONFIG_DM_ERA is not set
+CONFIG_DM_CLONE=m
+CONFIG_DM_MIRROR=m
+# CONFIG_DM_LOG_USERSPACE is not set
+CONFIG_DM_RAID=m
+# CONFIG_DM_ZERO is not set
+CONFIG_DM_MULTIPATH=m
+# CONFIG_DM_MULTIPATH_QL is not set
+# CONFIG_DM_MULTIPATH_ST is not set
+# CONFIG_DM_MULTIPATH_HST is not set
+# CONFIG_DM_MULTIPATH_IOA is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_DUST is not set
+CONFIG_DM_UEVENT=y
+# CONFIG_DM_FLAKEY is not set
+# CONFIG_DM_VERITY is not set
+# CONFIG_DM_SWITCH is not set
+# CONFIG_DM_LOG_WRITES is not set
+CONFIG_DM_INTEGRITY=m
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_WIREGUARD=m
+# CONFIG_WIREGUARD_DEBUG is not set
+CONFIG_EQUALIZER=m
+# CONFIG_NET_FC is not set
+CONFIG_IFB=m
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
+# CONFIG_GTP is not set
+# CONFIG_AMT is not set
+CONFIG_MACSEC=m
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+# CONFIG_NETCONSOLE_EXTENDED_LOG is not set
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_TUN=m
+# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_NLMON=m
+# CONFIG_NETKIT is not set
+CONFIG_NET_VRF=m
+# CONFIG_ARCNET is not set
+# CONFIG_ATM_DRIVERS is not set
+CONFIG_ETHERNET=y
+# 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_ALTERA_TSE 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_ASIX is not set
+# CONFIG_NET_VENDOR_ATHEROS is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CHELSIO is not set
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_DAVICOM is not set
+# CONFIG_DNET 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_ENGLEDER is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FUNGIBLE 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_JME is not set
+# CONFIG_NET_VENDOR_ADI is not set
+# CONFIG_NET_VENDOR_LITEX 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_MICROSOFT is not set
+# CONFIG_NET_VENDOR_MYRI is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETERION 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_ETHOC is not set
+# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
+# CONFIG_NET_VENDOR_PENSANDO 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_NET_VENDOR_REALTEK 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_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_NET_VENDOR_SOCIONEXT is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_SELFTESTS is not set
+CONFIG_STMMAC_PLATFORM=m
+# CONFIG_DWMAC_DWC_QOS_ETH is not set
+CONFIG_DWMAC_GENERIC=m
+CONFIG_DWMAC_STARFIVE=m
+# CONFIG_DWMAC_INTEL_PLAT is not set
+CONFIG_STMMAC_PCI=m
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_VERTEXCOM is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WANGXUN is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
+CONFIG_FIXED_PHY=y
+# CONFIG_SFP is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_ADIN_PHY is not set
+# CONFIG_ADIN1100_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+# CONFIG_AX88796B_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MARVELL_88Q2XXX_PHY is not set
+# CONFIG_MARVELL_88X2222_PHY is not set
+# CONFIG_MAXLINEAR_GPHY is not set
+# CONFIG_MEDIATEK_GE_PHY is not set
+CONFIG_MICREL_PHY=y
+# CONFIG_MICROCHIP_T1S_PHY is not set
+# CONFIG_MICROCHIP_PHY is not set
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+CONFIG_MOTORCOMM_PHY=m
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_CBTX_PHY is not set
+# CONFIG_NXP_C45_TJA11XX_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_NCN26000_PHY is not set
+# CONFIG_AT803X_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=m
+# CONFIG_TERANETICS_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_DP83869_PHY is not set
+# CONFIG_DP83TD510_PHY is not set
+# CONFIG_DP83TG720_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PSE_CONTROLLER is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_THUNDER is not set
+
+#
+# MDIO Multiplexers
+#
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+
+#
+# PCS device drivers
+#
+CONFIG_PCS_XPCS=m
+# end of PCS device drivers
+
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+# CONFIG_PPPOE_HASH_BITS_1 is not set
+# CONFIG_PPPOE_HASH_BITS_2 is not set
+CONFIG_PPPOE_HASH_BITS_4=y
+# CONFIG_PPPOE_HASH_BITS_8 is not set
+CONFIG_PPPOE_HASH_BITS=4
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_USB_NET_DRIVERS=m
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_RTL8152 is not set
+# CONFIG_USB_LAN78XX is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_IPHETH is not set
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+# CONFIG_ADM8211 is not set
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+# CONFIG_ATH5K is not set
+# CONFIG_ATH5K_PCI is not set
+# CONFIG_ATH9K is not set
+# CONFIG_ATH9K_HTC is not set
+# CONFIG_CARL9170 is not set
+# CONFIG_ATH6KL is not set
+# CONFIG_AR5523 is not set
+# CONFIG_WIL6210 is not set
+# CONFIG_ATH10K is not set
+# CONFIG_WCN36XX is not set
+# CONFIG_ATH11K is not set
+# CONFIG_ATH12K is not set
+CONFIG_WLAN_VENDOR_ATMEL=y
+# CONFIG_AT76C50X_USB is not set
+CONFIG_WLAN_VENDOR_BROADCOM=y
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+CONFIG_BRCMUTIL=m
+# CONFIG_BRCMSMAC is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_SDIO=y
+# CONFIG_BRCMFMAC_USB is not set
+# CONFIG_BRCMFMAC_PCIE is not set
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_WLAN_VENDOR_INTEL=y
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWLWIFI is not set
+CONFIG_WLAN_VENDOR_INTERSIL=y
+# CONFIG_P54_COMMON is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_MWL8K is not set
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+# CONFIG_MT7601U is not set
+# CONFIG_MT76x0U is not set
+# CONFIG_MT76x0E is not set
+# CONFIG_MT76x2E is not set
+# CONFIG_MT76x2U is not set
+# CONFIG_MT7603E is not set
+# CONFIG_MT7615E is not set
+# CONFIG_MT7663U is not set
+# CONFIG_MT7663S is not set
+# CONFIG_MT7915E is not set
+# CONFIG_MT7921E is not set
+# CONFIG_MT7921S is not set
+# CONFIG_MT7921U is not set
+# CONFIG_MT7996E is not set
+# CONFIG_MT7925E is not set
+# CONFIG_MT7925U is not set
+CONFIG_WLAN_VENDOR_MICROCHIP=y
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
+# CONFIG_WLAN_VENDOR_PURELIFI is not set
+CONFIG_WLAN_VENDOR_RALINK=y
+# CONFIG_RT2X00 is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_RTL_CARDS is not set
+# CONFIG_RTL8XXXU is not set
+# CONFIG_RTW88 is not set
+# CONFIG_RTW89 is not set
+CONFIG_WLAN_VENDOR_RSI=y
+# CONFIG_RSI_91X is not set
+# CONFIG_WLAN_VENDOR_SILABS is not set
+CONFIG_WLAN_VENDOR_ST=y
+# CONFIG_CW1200 is not set
+CONFIG_WLAN_VENDOR_TI=y
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX is not set
+# CONFIG_WL18XX is not set
+# CONFIG_WLCORE is not set
+CONFIG_WLAN_VENDOR_ZYDAS=y
+# CONFIG_ZD1211RW is not set
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+# CONFIG_QTNFMAC_PCIE is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_VIRT_WIFI is not set
+# CONFIG_WAN is not set
+CONFIG_IEEE802154_DRIVERS=m
+# CONFIG_IEEE802154_FAKELB is not set
+# CONFIG_IEEE802154_AT86RF230 is not set
+# CONFIG_IEEE802154_MRF24J40 is not set
+# CONFIG_IEEE802154_CC2520 is not set
+# CONFIG_IEEE802154_ATUSB is not set
+# CONFIG_IEEE802154_ADF7242 is not set
+# CONFIG_IEEE802154_CA8210 is not set
+# CONFIG_IEEE802154_MCR20A is not set
+# CONFIG_IEEE802154_HWSIM is not set
+
+#
+# Wireless WAN
+#
+# CONFIG_WWAN is not set
+# end of Wireless WAN
+
+# CONFIG_VMXNET3 is not set
+CONFIG_NET_FAILOVER=m
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=m
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+CONFIG_INPUT_VIVALDIFMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+CONFIG_KEYBOARD_GPIO_POLLED=m
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_PINEPHONE is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+# CONFIG_KEYBOARD_CYPRESS_SF 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=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MMA8450 is not set
+CONFIG_INPUT_GPIO_BEEPER=m
+CONFIG_INPUT_GPIO_DECODER=m
+# CONFIG_INPUT_GPIO_VIBRA is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_KXTJ9 is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+# CONFIG_INPUT_AXP20X_PEK is not set
+# CONFIG_INPUT_UINPUT is not set
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_DA7280_HAPTICS is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IBM_PANEL is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_IQS269A is not set
+# CONFIG_INPUT_IQS626A is not set
+# CONFIG_INPUT_IQS7222 is not set
+# CONFIG_INPUT_CMA3000 is not set
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_AMBAKMI is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO 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=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
+# CONFIG_LDISC_AUTOLOAD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCILIB=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+# CONFIG_SERIAL_8250_PCI1XXXX is not set
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_RT288X is not set
+CONFIG_SERIAL_8250_PERICOM=y
+# CONFIG_SERIAL_OF_PLATFORM is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+# CONFIG_SERIAL_AMBA_PL011 is not set
+# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+# 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_JSM is not set
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+# CONFIG_SERIAL_DEV_BUS is not set
+# CONFIG_VIRTIO_CONSOLE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_SSIF_IPMI_BMC is not set
+# CONFIG_IPMB_DEVICE_INTERFACE is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_HW_RANDOM_BA431 is not set
+# CONFIG_HW_RANDOM_VIRTIO is not set
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HW_RANDOM_JH7110=m
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+# CONFIG_TCG_TPM is not set
+# CONFIG_XILLYBUS is not set
+# CONFIG_XILLYUSB is not set
+# end of Character devices
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_GPMUX=m
+CONFIG_I2C_MUX_LTC4306=m
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+CONFIG_I2C_MUX_MLXCPLD=m
+# end of Multiplexer I2C Chip support
+
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=m
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
+CONFIG_I2C_DESIGNWARE_PLATFORM=m
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_NOMADIK is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_CP2615 is not set
+# CONFIG_I2C_PCI1XXXX 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
+#
+# CONFIG_I2C_VIRTIO is not set
+# end of I2C Hardware Bus support
+
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_EEPROM is not set
+# CONFIG_I2C_SLAVE_TESTUNIT 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_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=m
+# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_CADENCE_QUADSPI=y
+# CONFIG_SPI_CADENCE_XSPI is not set
+CONFIG_SPI_DESIGNWARE=y
+CONFIG_SPI_DW_DMA=y
+# CONFIG_SPI_DW_PCI is not set
+CONFIG_SPI_DW_MMIO=y
+CONFIG_SPI_GPIO=m
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_MICROCHIP_CORE is not set
+# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PCI1XXXX is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_SC18IS602 is not set
+CONFIG_SPI_SIFIVE=m
+# CONFIG_SPI_SN_F_OSPI 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
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+CONFIG_SPI_MUX=m
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_LOOPBACK_TEST=m
+# CONFIG_SPI_TLE62X0 is not set
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_SLAVE_TIME=m
+CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
+CONFIG_SPI_DYNAMIC=y
+# CONFIG_SPMI is not set
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+# CONFIG_PTP_1588_CLOCK is not set
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_PINCTRL_AXP209 is not set
+# CONFIG_PINCTRL_CY8C95X0 is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
+# CONFIG_PINCTRL_OCELOT is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_SX150X is not set
+
+#
+# Renesas pinctrl drivers
+#
+# end of Renesas pinctrl drivers
+
+CONFIG_PINCTRL_STARFIVE_JH7100=y
+CONFIG_PINCTRL_STARFIVE_JH7110=y
+CONFIG_PINCTRL_STARFIVE_JH7110_SYS=y
+CONFIG_PINCTRL_STARFIVE_JH7110_AON=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=256
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=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_EXAR 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_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_PL061 is not set
+# CONFIG_GPIO_SIFIVE is not set
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_FXL6408 is not set
+# CONFIG_GPIO_DS4520 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_PCA9570 is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+CONFIG_GPIO_TPS65086=y
+# end of MFD GPIO expanders
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI 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
+
+#
+# Virtual GPIO drivers
+#
+CONFIG_GPIO_AGGREGATOR=m
+# CONFIG_GPIO_LATCH is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_VIRTIO is not set
+# CONFIG_GPIO_SIM is not set
+# end of Virtual GPIO drivers
+
+# CONFIG_W1 is not set
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_REGULATOR is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_TPS65086 is not set
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_REBOOT_MODE=y
+CONFIG_SYSCON_REBOOT_MODE=y
+# CONFIG_NVMEM_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_POWER_SUPPLY_HWMON=y
+# CONFIG_IP5XXX_POWER is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_CW2015 is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_SAMSUNG_SDI is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_CHARGER_SBS is not set
+# CONFIG_MANAGER_SBS is not set
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LT3651 is not set
+# CONFIG_CHARGER_LTC4162L is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_MAX77976 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ2515X is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
+# CONFIG_CHARGER_BQ256XX is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_GOLDFISH is not set
+# CONFIG_BATTERY_RT5033 is not set
+# CONFIG_CHARGER_RT9455 is not set
+# CONFIG_CHARGER_RT9467 is not set
+# CONFIG_CHARGER_RT9471 is not set
+# CONFIG_CHARGER_UCS1002 is not set
+# CONFIG_CHARGER_BD99954 is not set
+# CONFIG_BATTERY_UG3105 is not set
+# CONFIG_FUEL_GAUGE_MM8013 is not set
+CONFIG_HWMON=y
+# 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_ADM1177 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_AHT10 is not set
+# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
+# CONFIG_SENSORS_CORSAIR_PSU is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB 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_GIGABYTE_WATERFORCE 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_HS3001 is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWERZ is not set
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC2991 is not set
+# CONFIG_SENSORS_LTC2992 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_MAX127 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_MAX31730 is not set
+# CONFIG_SENSORS_MAX31760 is not set
+# CONFIG_MAX31827 is not set
+# CONFIG_SENSORS_MAX6620 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_MC34VR500 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_TPS23861 is not set
+# CONFIG_SENSORS_MR75203 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_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT6775_I2C is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
+# CONFIG_SENSORS_NZXT_SMART2 is not set
+# CONFIG_SENSORS_OCC_P8_I2C is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_PWM_FAN is not set
+# CONFIG_SENSORS_SBTSI is not set
+# CONFIG_SENSORS_SBRMI is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHT4x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC2305 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_SFCTEMP=m
+# 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_INA238 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 is not set
+# CONFIG_SENSORS_TMP464 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 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=y
+CONFIG_THERMAL_NETLINK=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
+CONFIG_THERMAL_GOV_STEP_WISE=y
+# CONFIG_THERMAL_GOV_BANG_BANG is not set
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_FREQ_THERMAL=y
+CONFIG_DEVFREQ_THERMAL=y
+# CONFIG_THERMAL_EMULATION is not set
+# CONFIG_THERMAL_MMIO is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=m
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_SYSFS is not set
+# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT 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_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_MEN_A21_WDT is not set
+CONFIG_STARFIVE_WATCHDOG=m
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI 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_CORE=y
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_SMPRO 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=m
+CONFIG_MFD_AXP20X_I2C=m
+# CONFIG_MFD_CS42L43_I2C is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_MFD_MAX5970 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_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO 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_MAX77541 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_MAX77714 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_MT6360 is not set
+# CONFIG_MFD_MT6370 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_MFD_OCELOT is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_NTXEC is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_SY7636A is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT4831 is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RT5120 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK8XX_I2C is not set
+# CONFIG_MFD_RK8XX_SPI 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_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# 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=y
+# 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_TPS65219 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_TPS6594_I2C is not set
+# CONFIG_MFD_TPS6594_SPI 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_VX855 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_BD71828 is not set
+# CONFIG_MFD_ROHM_BD957XMUF is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# CONFIG_MFD_ATC260X_I2C is not set
+# CONFIG_MFD_QCOM_PM8008 is not set
+# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
+# CONFIG_MFD_RSMU_I2C is not set
+# CONFIG_MFD_RSMU_SPI is not set
+# end of Multifunction device drivers
+
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_NETLINK_EVENTS is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_AW37503 is not set
+CONFIG_REGULATOR_AXP20X=m
+# CONFIG_REGULATOR_DA9121 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_FAN53880 is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX77503 is not set
+# CONFIG_REGULATOR_MAX77857 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8893 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+# CONFIG_REGULATOR_MAX20086 is not set
+# CONFIG_REGULATOR_MAX20411 is not set
+# CONFIG_REGULATOR_MAX77826 is not set
+# CONFIG_REGULATOR_MCP16502 is not set
+# CONFIG_REGULATOR_MP5416 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MP886X is not set
+# CONFIG_REGULATOR_MPQ7920 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PF8X00 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RAA215300 is not set
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RT4803 is not set
+# CONFIG_REGULATOR_RT5190A is not set
+# CONFIG_REGULATOR_RT5739 is not set
+# CONFIG_REGULATOR_RT5759 is not set
+# CONFIG_REGULATOR_RT6160 is not set
+# CONFIG_REGULATOR_RT6190 is not set
+# CONFIG_REGULATOR_RT6245 is not set
+# CONFIG_REGULATOR_RTQ2134 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_RTQ6752 is not set
+# CONFIG_REGULATOR_RTQ2208 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
+# CONFIG_REGULATOR_SY8827N is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS6286X is not set
+# CONFIG_REGULATOR_TPS6287X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65086 is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_VCTRL is not set
+# CONFIG_RC_CORE is not set
+
+#
+# CEC support
+#
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+# end of CEC support
+
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_APERTURE_HELPERS=y
+CONFIG_VIDEO_CMDLINE=y
+CONFIG_VIDEO_NOMODESET=y
+# CONFIG_AUXDISPLAY is not set
+CONFIG_DRM=y
+CONFIG_DRM_MIPI_DSI=y
+# CONFIG_DRM_DEBUG_MM is not set
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+CONFIG_DRM_I2C_NXP_TDA998X=m
+# CONFIG_DRM_I2C_NXP_TDA9950 is not set
+# end of I2C encoder or helper chips
+
+#
+# ARM devices
+#
+# CONFIG_DRM_KOMEDA is not set
+# end of ARM devices
+
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+# CONFIG_DRM_NOUVEAU is not set
+# CONFIG_DRM_XE is not set
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_VKMS is not set
+# CONFIG_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_QXL is not set
+# CONFIG_DRM_VIRTIO_GPU is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
+# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
+# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
+# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
+# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
+# end of Display Panels
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_CHIPONE_ICN6211 is not set
+# CONFIG_DRM_CHRONTEL_CH7033 is not set
+CONFIG_DRM_DISPLAY_CONNECTOR=m
+# CONFIG_DRM_ITE_IT6505 is not set
+# CONFIG_DRM_LONTIUM_LT8912B is not set
+# CONFIG_DRM_LONTIUM_LT9211 is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
+# CONFIG_DRM_LONTIUM_LT9611UXC is not set
+# CONFIG_DRM_ITE_IT66121 is not set
+# CONFIG_DRM_LVDS_CODEC is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NWL_MIPI_DSI is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_PARADE_PS8640 is not set
+# CONFIG_DRM_SAMSUNG_DSIM is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_SII9234 is not set
+# CONFIG_DRM_SIMPLE_BRIDGE is not set
+# CONFIG_DRM_THINE_THC63LVD1024 is not set
+# CONFIG_DRM_TOSHIBA_TC358762 is not set
+# CONFIG_DRM_TOSHIBA_TC358764 is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TOSHIBA_TC358768 is not set
+# CONFIG_DRM_TOSHIBA_TC358775 is not set
+# CONFIG_DRM_TI_DLPC3433 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_TI_SN65DSI83 is not set
+# CONFIG_DRM_TI_SN65DSI86 is not set
+# CONFIG_DRM_TI_TPD12S015 is not set
+# CONFIG_DRM_ANALOGIX_ANX6345 is not set
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_ANALOGIX_ANX7625 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+CONFIG_DRM_CDNS_DSI=m
+CONFIG_DRM_CDNS_DSI_J721E=y
+# CONFIG_DRM_CDNS_MHDP8546 is not set
+# end of Display Interface Bridges
+
+# CONFIG_DRM_ETNAVIV is not set
+# CONFIG_DRM_LOGICVC is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_GM12U320 is not set
+# CONFIG_DRM_PANEL_MIPI_DBI is not set
+CONFIG_DRM_SIMPLEDRM=y
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9163 is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_ILI9486 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
+# CONFIG_DRM_GUD is not set
+# CONFIG_DRM_SSD130X is not set
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_EFI is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+CONFIG_FB_CORE=y
+CONFIG_FB_NOTIFY=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_DEVICE=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYSMEM_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SYSMEM_HELPERS=y
+CONFIG_FB_SYSMEM_HELPERS_DEFERRED=y
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING 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
+
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set
+# end of Console display driver support
+
+# CONFIG_LOGO is not set
+# end of Graphics support
+
+# CONFIG_DRM_ACCEL is not set
+CONFIG_SOUND=m
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_DMAENGINE_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_MAX_CARDS=32
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_CTL_FAST_LOOKUP=y
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_CTL_INPUT_VALIDATION is not set
+CONFIG_SND_VMASTER=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+# CONFIG_SND_AC97_POWER_SAVE is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+# end of HD-Audio
+
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+# CONFIG_SND_USB_CAIAQ_INPUT is not set
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_USB_HIFACE=m
+CONFIG_SND_BCD2000=m
+CONFIG_SND_USB_LINE6=m
+CONFIG_SND_USB_POD=m
+CONFIG_SND_USB_PODHD=m
+CONFIG_SND_USB_TONEPORT=m
+CONFIG_SND_USB_VARIAX=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+# CONFIG_SND_SOC_ADI is not set
+# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_AMD_ACP_CONFIG is not set
+# CONFIG_SND_ATMEL_SOC is not set
+# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+# CONFIG_SND_SOC_FSL_ASRC is not set
+# CONFIG_SND_SOC_FSL_SAI is not set
+# CONFIG_SND_SOC_FSL_AUDMIX is not set
+# CONFIG_SND_SOC_FSL_SSI is not set
+# CONFIG_SND_SOC_FSL_SPDIF is not set
+# CONFIG_SND_SOC_FSL_ESAI is not set
+# CONFIG_SND_SOC_FSL_MICFIL is not set
+# CONFIG_SND_SOC_FSL_XCVR is not set
+# CONFIG_SND_SOC_IMX_AUDMUX is not set
+# end of SoC Audio for Freescale CPUs
+
+# CONFIG_SND_SOC_CHV3_I2S is not set
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+# CONFIG_SND_SOC_MTK_BTCVSD is not set
+# CONFIG_SND_SOC_SOF_TOPLEVEL is not set
+CONFIG_SND_SOC_STARFIVE=m
+CONFIG_SND_SOC_JH7110_PWMDAC=m
+CONFIG_SND_SOC_JH7110_TDM=m
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# end of STMicroelectronics STM32 SOC audio support
+
+# CONFIG_SND_SOC_XILINX_I2S is not set
+# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set
+# CONFIG_SND_SOC_XILINX_SPDIF is not set
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+CONFIG_SND_SOC_I2C_AND_SPI=m
+
+#
+# CODEC drivers
+#
+CONFIG_SND_SOC_AC97_CODEC=m
+# CONFIG_SND_SOC_ADAU1372_I2C is not set
+# CONFIG_SND_SOC_ADAU1372_SPI is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_ADAU7118_HW is not set
+# CONFIG_SND_SOC_ADAU7118_I2C is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4118 is not set
+# CONFIG_SND_SOC_AK4375 is not set
+# CONFIG_SND_SOC_AK4458 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_AK5558 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_AW8738 is not set
+# CONFIG_SND_SOC_AW88395 is not set
+# CONFIG_SND_SOC_AW88261 is not set
+# CONFIG_SND_SOC_AW87390 is not set
+# CONFIG_SND_SOC_AW88399 is not set
+# CONFIG_SND_SOC_BD28623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# CONFIG_SND_SOC_CHV3_CODEC is not set
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS35L36 is not set
+# CONFIG_SND_SOC_CS35L41_SPI is not set
+# CONFIG_SND_SOC_CS35L41_I2C is not set
+# CONFIG_SND_SOC_CS35L45_SPI is not set
+# CONFIG_SND_SOC_CS35L45_I2C is not set
+# CONFIG_SND_SOC_CS35L56_I2C is not set
+# CONFIG_SND_SOC_CS35L56_SPI is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS42L83 is not set
+# CONFIG_SND_SOC_CS4234 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+# CONFIG_SND_SOC_CS42XX8_I2C is not set
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4341 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_CX2072X is not set
+# CONFIG_SND_SOC_DA7213 is not set
+# CONFIG_SND_SOC_DMIC is not set
+CONFIG_SND_SOC_HDMI_CODEC=m
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES7241 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+# CONFIG_SND_SOC_ES8326 is not set
+# CONFIG_SND_SOC_ES8328_I2C is not set
+# CONFIG_SND_SOC_ES8328_SPI is not set
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_HDA is not set
+# CONFIG_SND_SOC_ICS43432 is not set
+# CONFIG_SND_SOC_IDT821034 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98088 is not set
+# CONFIG_SND_SOC_MAX98090 is not set
+# CONFIG_SND_SOC_MAX98357A is not set
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9867 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX98520 is not set
+# CONFIG_SND_SOC_MAX98373_I2C is not set
+# CONFIG_SND_SOC_MAX98388 is not set
+# CONFIG_SND_SOC_MAX98390 is not set
+# CONFIG_SND_SOC_MAX98396 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM1789_I2C is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM186X_I2C is not set
+# CONFIG_SND_SOC_PCM186X_SPI is not set
+# CONFIG_SND_SOC_PCM3060_I2C is not set
+# CONFIG_SND_SOC_PCM3060_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM5102A is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_PEB2466 is not set
+# CONFIG_SND_SOC_RK3328 is not set
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_RT5640 is not set
+# CONFIG_SND_SOC_RT5659 is not set
+# CONFIG_SND_SOC_RT9120 is not set
+# CONFIG_SND_SOC_RTQ9128 is not set
+# CONFIG_SND_SOC_SGTL5000 is not set
+# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set
+# CONFIG_SND_SOC_SIMPLE_MUX is not set
+# CONFIG_SND_SOC_SMA1303 is not set
+CONFIG_SND_SOC_SPDIF=m
+# CONFIG_SND_SOC_SRC4XXX_I2C is not set
+# CONFIG_SND_SOC_SSM2305 is not set
+# CONFIG_SND_SOC_SSM2518 is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM3515 is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS2562 is not set
+# CONFIG_SND_SOC_TAS2764 is not set
+# CONFIG_SND_SOC_TAS2770 is not set
+# CONFIG_SND_SOC_TAS2780 is not set
+# CONFIG_SND_SOC_TAS2781_I2C is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TAS5805M is not set
+# CONFIG_SND_SOC_TAS6424 is not set
+# CONFIG_SND_SOC_TDA7419 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+# CONFIG_SND_SOC_TFA989X is not set
+# CONFIG_SND_SOC_TLV320ADC3XXX is not set
+# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set
+# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set
+# CONFIG_SND_SOC_TLV320ADCX140 is not set
+# CONFIG_SND_SOC_TS3A227E is not set
+# CONFIG_SND_SOC_TSCS42XX is not set
+# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731_I2C is not set
+# CONFIG_SND_SOC_WM8731_SPI is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8782 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8904 is not set
+# CONFIG_SND_SOC_WM8940 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+# CONFIG_SND_SOC_WM8961 is not set
+# CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_ZL38060 is not set
+# CONFIG_SND_SOC_MAX9759 is not set
+# CONFIG_SND_SOC_MT6351 is not set
+# CONFIG_SND_SOC_MT6358 is not set
+# CONFIG_SND_SOC_MT6660 is not set
+# CONFIG_SND_SOC_NAU8315 is not set
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8821 is not set
+# CONFIG_SND_SOC_NAU8822 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_VA_MACRO is not set
+# CONFIG_SND_SOC_LPASS_RX_MACRO is not set
+# CONFIG_SND_SOC_LPASS_TX_MACRO is not set
+# end of CODEC drivers
+
+CONFIG_SND_SIMPLE_CARD_UTILS=m
+CONFIG_SND_SIMPLE_CARD=m
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set
+# CONFIG_SND_TEST_COMPONENT is not set
+# CONFIG_SND_VIRTIO is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_GENERIC=m
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_BIGBEN_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELAN is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EVISION is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_FT260 is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GOOGLE_STADIA_FF is not set
+# CONFIG_HID_VIVALDI is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+CONFIG_HID_UCLOGIC=m
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_VRC2 is not set
+# CONFIG_HID_XIAOMI is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LETSKETCH is not set
+CONFIG_HID_LOGITECH=m
+# CONFIG_HID_LOGITECH_DJ is not set
+# CONFIG_HID_LOGITECH_HIDPP is not set
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_MEGAWORLD_FF is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NINTENDO is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PXRC is not set
+# CONFIG_HID_RAZER is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SEMITEK is not set
+# CONFIG_HID_SIGMAMICRO is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_TOPRE is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_U2FZERO is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2200 is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# HID-BPF support
+#
+# end of HID-BPF support
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=m
+# CONFIG_HID_PID is not set
+CONFIG_USB_HIDDEV=y
+# end of USB HID support
+
+CONFIG_I2C_HID=m
+# CONFIG_I2C_HID_OF is not set
+# CONFIG_I2C_HID_OF_ELAN is not set
+# CONFIG_I2C_HID_OF_GOODIX is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_LED_TRIG is not set
+# 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_PCI=y
+# CONFIG_USB_PCI_AMD is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_FEW_INIT_RETRIES is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_PRODUCTLIST is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+# CONFIG_USB_MON is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DBGCAP=y
+CONFIG_USB_XHCI_PCI=y
+# CONFIG_USB_XHCI_PCI_RENESAS is not set
+CONFIG_USB_XHCI_PLATFORM=y
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# 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 is not set
+# 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=y
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USBIP_CORE is not set
+
+#
+# USB dual-mode controller drivers
+#
+CONFIG_USB_CDNS_SUPPORT=y
+CONFIG_USB_CDNS_HOST=y
+CONFIG_USB_CDNS3=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_STARFIVE=y
+# CONFIG_USB_MUSB_HDRC is not set
+CONFIG_USB_DWC3=m
+CONFIG_USB_DWC3_HOST=y
+
+#
+# Platform Glue Driver Support
+#
+CONFIG_USB_DWC3_HAPS=m
+CONFIG_USB_DWC3_OF_SIMPLE=m
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+# CONFIG_USB_SERIAL_GENERIC is not set
+CONFIG_USB_SERIAL_SIMPLE=m
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_CH341 is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_F81232 is not set
+# CONFIG_USB_SERIAL_F8153X is not set
+CONFIG_USB_SERIAL_GARMIN=m
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_IUU is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_METRO is not set
+# CONFIG_USB_SERIAL_MOS7720 is not set
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_MXUPORT is not set
+# CONFIG_USB_SERIAL_NAVMAN is not set
+CONFIG_USB_SERIAL_PL2303=m
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_QCAUX is not set
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_SYMBOL is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_OPTION is not set
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+# CONFIG_USB_SERIAL_WISHBONE is not set
+# CONFIG_USB_SERIAL_SSU100 is not set
+# CONFIG_USB_SERIAL_QT2 is not set
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
+# CONFIG_USB_SERIAL_XR is not set
+# CONFIG_USB_SERIAL_DEBUG 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_APPLEDISPLAY is not set
+# CONFIG_APPLE_MFI_FASTCHARGE 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
+# CONFIG_USB_ONBOARD_HUB is not set
+# CONFIG_USB_ATM 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=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_TCPCI=y
+# CONFIG_TYPEC_RT1711H is not set
+# CONFIG_TYPEC_TCPCI_MAXIM is not set
+# CONFIG_TYPEC_FUSB302 is not set
+# CONFIG_TYPEC_UCSI is not set
+# CONFIG_TYPEC_TPS6598X is not set
+# CONFIG_TYPEC_ANX7411 is not set
+# CONFIG_TYPEC_RT1719 is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
+# CONFIG_TYPEC_STUSB160X is not set
+# CONFIG_TYPEC_WUSB3801 is not set
+
+#
+# USB Type-C Multiplexer/DeMultiplexer Switch support
+#
+# CONFIG_TYPEC_MUX_FSA4480 is not set
+# CONFIG_TYPEC_MUX_GPIO_SBU is not set
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# CONFIG_TYPEC_MUX_NB7VPQ904M is not set
+# CONFIG_TYPEC_MUX_PTN36502 is not set
+# CONFIG_TYPEC_MUX_WCD939X_USBSS is not set
+# end of USB Type-C Multiplexer/DeMultiplexer Switch support
+
+#
+# USB Type-C Alternate Mode drivers
+#
+# CONFIG_TYPEC_DP_ALTMODE is not set
+# end of USB Type-C Alternate Mode drivers
+
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=m
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SIMPLE=m
+CONFIG_MMC_BLOCK=m
+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_ARMMMCI is not set
+# CONFIG_MMC_SDHCI is not set
+# CONFIG_MMC_TIFM_SD is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+CONFIG_MMC_DW=m
+CONFIG_MMC_DW_PLTFM=m
+# CONFIG_MMC_DW_BLUEFIELD is not set
+# CONFIG_MMC_DW_EXYNOS is not set
+# CONFIG_MMC_DW_HI3798CV200 is not set
+# CONFIG_MMC_DW_K3 is not set
+# CONFIG_MMC_DW_PCI is not set
+CONFIG_MMC_DW_STARFIVE=m
+# 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_HSQ=m
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_SCSI_UFSHCD 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_CLASS_MULTICOLOR is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_AN30259A is not set
+# CONFIG_LEDS_AW200XX is not set
+# CONFIG_LEDS_AW2013 is not set
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_CR0014114 is not set
+# CONFIG_LEDS_EL15203000 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_LP50XX is not set
+# CONFIG_LEDS_LP55XX_COMMON is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_PCA995X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+CONFIG_LEDS_PWM=m
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2606MVV 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=m
+# CONFIG_LEDS_SPI_BYTE is not set
+# CONFIG_LEDS_LM3697 is not set
+
+#
+# Flash and Torch LED drivers
+#
+
+#
+# RGB LED drivers
+#
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_ONESHOT=m
+# CONFIG_LEDS_TRIGGER_MTD is not set
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+# CONFIG_LEDS_TRIGGER_CPU is not set
+CONFIG_LEDS_TRIGGER_ACTIVITY=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_LEDS_TRIGGER_TRANSIENT=m
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
+CONFIG_LEDS_TRIGGER_PATTERN=m
+CONFIG_LEDS_TRIGGER_AUDIO=m
+CONFIG_LEDS_TRIGGER_TTY=m
+
+#
+# Simple LED drivers
+#
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_SUPPORT=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABEOZ9 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_MAX31335 is not set
+# CONFIG_RTC_DRV_NCT3018Y is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_ISL12026 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF85363 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV3032 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+# CONFIG_RTC_DRV_SD3078 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_EFI is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PL030 is not set
+# CONFIG_RTC_DRV_PL031 is not set
+# CONFIG_RTC_DRV_CADENCE is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+# CONFIG_RTC_DRV_GOLDFISH is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_AMBA_PL08X is not set
+CONFIG_DW_AXI_DMAC=y
+# CONFIG_FSL_EDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+# CONFIG_PL330_DMA is not set
+# CONFIG_PLX_DMA is not set
+# CONFIG_XILINX_DMA is not set
+# CONFIG_XILINX_XDMA is not set
+# CONFIG_XILINX_ZYNQMP_DPDMA is not set
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+# CONFIG_DW_EDMA is not set
+# CONFIG_SF_PDMA is not set
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_UDMABUF is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_DEBUG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
+CONFIG_DMABUF_HEAPS=y
+# CONFIG_DMABUF_SYSFS_STATS is not set
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+# CONFIG_DMABUF_HEAPS_CMA is not set
+# end of DMABUF options
+
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO_ANCHOR=y
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_MENU=y
+# CONFIG_VIRTIO_PCI is not set
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
+# CONFIG_VDPA is not set
+CONFIG_VHOST_IOTLB=m
+CONFIG_VHOST_TASK=y
+CONFIG_VHOST=m
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_NET=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_COMEDI is not set
+# CONFIG_STAGING is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+# CONFIG_LMK04832 is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
+# CONFIG_COMMON_CLK_PWM is not set
+# CONFIG_COMMON_CLK_RS9_PCIE is not set
+# CONFIG_COMMON_CLK_SI521XX is not set
+# CONFIG_COMMON_CLK_VC3 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_VC7 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+CONFIG_CLK_STARFIVE_JH71X0=y
+CONFIG_CLK_STARFIVE_JH7100=y
+CONFIG_CLK_STARFIVE_JH7100_AUDIO=m
+CONFIG_CLK_STARFIVE_JH7110_PLL=y
+CONFIG_CLK_STARFIVE_JH7110_SYS=y
+CONFIG_CLK_STARFIVE_JH7110_AON=y
+CONFIG_CLK_STARFIVE_JH7110_STG=y
+CONFIG_CLK_STARFIVE_JH7110_ISP=y
+CONFIG_CLK_STARFIVE_JH7110_VOUT=y
+# CONFIG_XILINX_VCU is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_RISCV_TIMER=y
+# end of Clock Source drivers
+
+# CONFIG_MAILBOX is not set
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+# end of Generic IOMMU Pagetable Support
+
+# CONFIG_IOMMUFD 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
+
+#
+# Broadcom SoC drivers
+#
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# fujitsu SoC drivers
+#
+# end of fujitsu SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+#
+# Enable LiteX SoC Builder specific drivers
+#
+# CONFIG_LITEX_SOC_CONTROLLER is not set
+# end of Enable LiteX SoC Builder specific drivers
+
+# CONFIG_WPCM450_SOC is not set
+
+#
+# Qualcomm SoC drivers
+#
+# end of Qualcomm SoC drivers
+
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# end of Xilinx SoC drivers
+# end of SOC (System On Chip) specific Drivers
+
+#
+# PM Domains
+#
+
+#
+# Amlogic PM Domains
+#
+# end of Amlogic PM Domains
+
+#
+# Broadcom PM Domains
+#
+# end of Broadcom PM Domains
+
+#
+# i.MX PM Domains
+#
+# end of i.MX PM Domains
+
+#
+# Qualcomm PM Domains
+#
+# end of Qualcomm PM Domains
+
+CONFIG_JH71XX_PMU=y
+# end of PM Domains
+
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=m
+CONFIG_DEVFREQ_GOV_USERSPACE=m
+CONFIG_DEVFREQ_GOV_PASSIVE=m
+
+#
+# DEVFREQ Drivers
+#
+# CONFIG_PM_DEVFREQ_EVENT is not set
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_FSA9480 is not set
+# CONFIG_EXTCON_GPIO is not set
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_PTN5150 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
+# CONFIG_EXTCON_USBC_TUSB320 is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_NTB is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+# CONFIG_PWM_ATMEL_TCB is not set
+# CONFIG_PWM_CLK is not set
+# CONFIG_PWM_DWC is not set
+# CONFIG_PWM_FSL_FTM is not set
+# CONFIG_PWM_PCA9685 is not set
+# CONFIG_PWM_SIFIVE is not set
+# CONFIG_PWM_XILINX is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+# CONFIG_AL_FIC is not set
+# CONFIG_XILINX_INTC is not set
+CONFIG_RISCV_INTC=y
+CONFIG_SIFIVE_PLIC=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_TI_TPS380X is not set
+CONFIG_RESET_STARFIVE_JH71X0=y
+CONFIG_RESET_STARFIVE_JH7100=y
+CONFIG_RESET_STARFIVE_JH7110=y
+
+#
+# PHY Subsystem
+#
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+# CONFIG_PHY_CAN_TRANSCEIVER is not set
+
+#
+# PHY drivers for Broadcom platforms
+#
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# end of PHY drivers for Broadcom platforms
+
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_DPHY_RX is not set
+# CONFIG_PHY_CADENCE_SIERRA is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_LAN966X_SERDES is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+CONFIG_PHY_STARFIVE_JH7110_DPHY_RX=y
+CONFIG_PHY_STARFIVE_JH7110_PCIE=y
+CONFIG_PHY_STARFIVE_JH7110_USB=y
+# end of PHY Subsystem
+
+CONFIG_POWERCAP=y
+# CONFIG_IDLE_INJECT is not set
+# CONFIG_DTPM is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+CONFIG_RISCV_PMU=y
+CONFIG_RISCV_PMU_LEGACY=y
+CONFIG_RISCV_PMU_SBI=y
+# CONFIG_DWC_PCIE_PMU is not set
+# end of Performance monitor support
+
+# CONFIG_RAS is not set
+# CONFIG_USB4 is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID_BINDER_IPC is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_NVMEM_LAYOUTS=y
+
+#
+# Layout Types
+#
+# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set
+# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set
+# end of Layout Types
+
+# CONFIG_NVMEM_RMEM is not set
+CONFIG_NVMEM_U_BOOT_ENV=m
+
+#
+# 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_MULTIPLEXER=m
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MUX_ADG792A is not set
+# CONFIG_MUX_ADGS1408 is not set
+# CONFIG_MUX_GPIO is not set
+# CONFIG_MUX_MMIO is not set
+# end of Multiplexer drivers
+
+CONFIG_PM_OPP=y
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# CONFIG_PECI is not set
+# CONFIG_HTE is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+CONFIG_FS_STACK=y
+CONFIG_BUFFER_HEAD=y
+CONFIG_LEGACY_DIRECT_IO=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=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=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
+# CONFIG_BTRFS_DEBUG is not set
+# CONFIG_BTRFS_ASSERT is not set
+# CONFIG_BTRFS_FS_REF_VERIFY is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_F2FS_FS=y
+# CONFIG_F2FS_STAT_FS is not set
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+# CONFIG_F2FS_CHECK_FS is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
+CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_FS_LZO=y
+CONFIG_F2FS_FS_LZORLE=y
+CONFIG_F2FS_FS_LZ4=y
+CONFIG_F2FS_FS_LZ4HC=y
+CONFIG_F2FS_FS_ZSTD=y
+# CONFIG_F2FS_IOSTAT is not set
+# CONFIG_F2FS_UNFAIR_RWSEM is not set
+# CONFIG_BCACHEFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+CONFIG_FS_VERITY=y
+CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
+CONFIG_FSNOTIFY=y
+# CONFIG_DNOTIFY is not set
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+# CONFIG_QUOTA_NETLINK_INTERFACE is not set
+# CONFIG_QUOTA_DEBUG is not set
+# CONFIG_QFMT_V1 is not set
+# CONFIG_QFMT_V2 is not set
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS_FS=m
+CONFIG_FUSE_FS=m
+# CONFIG_CUSE is not set
+CONFIG_VIRTIO_FS=m
+CONFIG_OVERLAY_FS=m
+# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+# CONFIG_OVERLAY_FS_INDEX is not set
+# CONFIG_OVERLAY_FS_XINO_AUTO is not set
+# CONFIG_OVERLAY_FS_METACOPY is not set
+# CONFIG_OVERLAY_FS_DEBUG is not set
+
+#
+# Caches
+#
+CONFIG_NETFS_SUPPORT=m
+CONFIG_NETFS_STATS=y
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+# CONFIG_FSCACHE_DEBUG is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_ERROR_INJECTION is not set
+# CONFIG_CACHEFILES_ONDEMAND is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+CONFIG_EXFAT_FS=m
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+CONFIG_NTFS3_FS=m
+# CONFIG_NTFS3_64BIT_CLUSTER is not set
+# CONFIG_NTFS3_LZX_XPRESS is not set
+# CONFIG_NTFS3_FS_POSIX_ACL is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_CHILDREN=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+# CONFIG_TMPFS_INODE64 is not set
+# CONFIG_TMPFS_QUOTA is not set
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_EFIVAR_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_ECRYPT_FS=m
+# CONFIG_ECRYPT_FS_MESSAGING 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_UBIFS_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_FILE_CACHE is not set
+CONFIG_SQUASHFS_FILE_DIRECT=y
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
+CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+# 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=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V2=m
+CONFIG_NFS_V3=m
+# CONFIG_NFS_V3_ACL is not set
+CONFIG_NFS_V4=m
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=m
+CONFIG_PNFS_BLOCK=m
+CONFIG_PNFS_FLEXFILE_LAYOUT=m
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+# CONFIG_NFS_V4_1_MIGRATION is not set
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
+# CONFIG_NFSD is not set
+CONFIG_GRACE_PERIOD=m
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_V4_2_SSC_HELPER=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
+# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 is not set
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_SWN_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER=m
+CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
+# CONFIG_SMB_SERVER_KERBEROS5 is not set
+CONFIG_SMBFS=m
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+# 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 is not set
+# 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=m
+CONFIG_NLS_UCS2_UTILS=m
+# CONFIG_DLM is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_KEYS_REQUEST_CACHE=y
+# CONFIG_PERSISTENT_KEYRINGS is not set
+# CONFIG_TRUSTED_KEYS is not set
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_USER_DECRYPTED_DATA is not set
+CONFIG_KEY_DH_OPERATIONS=y
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_HARDENED_USERCOPY=y
+CONFIG_FORTIFY_SOURCE=y
+# 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=y
+# CONFIG_SECURITY_LOCKDOWN_LSM_EARLY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_SECURITY_LANDLOCK is not set
+# CONFIG_INTEGRITY is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM=""
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_STACK_ALL_PATTERN is not set
+# CONFIG_INIT_STACK_ALL_ZERO is not set
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+# CONFIG_ZERO_CALL_USED_REGS is not set
+# end of Memory initialization
+
+#
+# Hardening of kernel data structures
+#
+# CONFIG_LIST_HARDENED is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Hardening of kernel data structures
+
+CONFIG_RANDSTRUCT_NONE=y
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+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_SIG2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_NULL2=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+# end of Crypto core or helper
+
+#
+# Public-key cryptography
+#
+CONFIG_CRYPTO_RSA=y
+CONFIG_CRYPTO_DH=y
+CONFIG_CRYPTO_DH_RFC7919_GROUPS=y
+CONFIG_CRYPTO_ECC=m
+CONFIG_CRYPTO_ECDH=m
+# CONFIG_CRYPTO_ECDSA is not set
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_SM2=m
+CONFIG_CRYPTO_CURVE25519=m
+# end of Public-key cryptography
+
+#
+# Block ciphers
+#
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_AES_TI=m
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARIA is not set
+# 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_DES=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SEED is not set
+CONFIG_CRYPTO_SERPENT=m
+# CONFIG_CRYPTO_SM4_GENERIC is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+# end of Block ciphers
+
+#
+# Length-preserving ciphers and modes
+#
+CONFIG_CRYPTO_ADIANTUM=m
+# CONFIG_CRYPTO_ARC4 is not set
+CONFIG_CRYPTO_CHACHA20=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_HCTR2 is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_NHPOLY1305=m
+# end of Length-preserving ciphers and modes
+
+#
+# AEAD (authenticated encryption with associated data) ciphers
+#
+# CONFIG_CRYPTO_AEGIS128 is not set
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GENIV=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_ECHAINIV=m
+CONFIG_CRYPTO_ESSIV=m
+# end of AEAD (authenticated encryption with associated data) ciphers
+
+#
+# Hashes, digests, and MACs
+#
+CONFIG_CRYPTO_BLAKE2B=m
+CONFIG_CRYPTO_CMAC=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+CONFIG_CRYPTO_POLY1305=m
+# CONFIG_CRYPTO_RMD160 is not set
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA3=y
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_SM3_GENERIC=m
+CONFIG_CRYPTO_STREEBOG=m
+# CONFIG_CRYPTO_VMAC is not set
+CONFIG_CRYPTO_WP512=m
+# CONFIG_CRYPTO_XCBC is not set
+CONFIG_CRYPTO_XXHASH=m
+# end of Hashes, digests, and MACs
+
+#
+# CRCs (cyclic redundancy checks)
+#
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRC64_ROCKSOFT=y
+# end of CRCs (cyclic redundancy checks)
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+# CONFIG_CRYPTO_ZSTD is not set
+# end of Compression
+
+#
+# Random number generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
+CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
+CONFIG_CRYPTO_JITTERENTROPY_OSR=1
+CONFIG_CRYPTO_KDF800108_CTR=y
+# end of Random number generation
+
+#
+# Userspace interface
+#
+CONFIG_CRYPTO_USER_API=y
+CONFIG_CRYPTO_USER_API_HASH=y
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+# CONFIG_CRYPTO_STATS is not set
+# end of Userspace interface
+
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_C62X is not set
+# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
+# CONFIG_CRYPTO_DEV_QAT_420XX is not set
+# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
+# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
+# CONFIG_CRYPTO_DEV_VIRTIO is not set
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
+CONFIG_PKCS7_MESSAGE_PARSER=y
+# CONFIG_PKCS7_TEST_KEY is not set
+CONFIG_SIGNED_PE_FILE_VERIFICATION=y
+# CONFIG_FIPS_SIGNATURE_SELFTEST is not set
+
+#
+# Certificates for signature checking
+#
+CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
+CONFIG_MODULE_SIG_KEY_TYPE_RSA=y
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
+# CONFIG_SECONDARY_TRUSTED_KEYRING_SIGNED_BY_BUILTIN is not set
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# end of Certificates for signature checking
+
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+# CONFIG_RAID6_PQ_BENCHMARK is not set
+CONFIG_LINEAR_RANGES=y
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+
+#
+# Crypto library routines
+#
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_LIB_AES=y
+CONFIG_CRYPTO_LIB_ARC4=m
+CONFIG_CRYPTO_LIB_GF128MUL=m
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m
+CONFIG_CRYPTO_LIB_CHACHA=m
+CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m
+CONFIG_CRYPTO_LIB_CURVE25519=m
+CONFIG_CRYPTO_LIB_DES=m
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
+CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m
+CONFIG_CRYPTO_LIB_POLY1305=m
+CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+# end of Crypto library routines
+
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC64_ROCKSOFT=y
+CONFIG_CRC_ITU_T=m
+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=y
+# CONFIG_CRC4 is not set
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+CONFIG_XXHASH=y
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_COMPRESS=y
+CONFIG_LZ4HC_COMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_XZ_DEC=m
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+# CONFIG_XZ_DEC_MICROLZMA is not set
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_ZSTD=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_CLOSURES=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=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_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_ARCH_DMA_DEFAULT_COHERENT=y
+CONFIG_SWIOTLB=y
+# CONFIG_SWIOTLB_DYNAMIC is not set
+CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
+# CONFIG_DMA_RESTRICTED_POOL is not set
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_DIRECT_REMAP=y
+CONFIG_DMA_CMA=y
+
+#
+# Default contiguous memory area size:
+#
+CONFIG_CMA_SIZE_MBYTES=16
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_ALIGNMENT=8
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_CLZ_TAB=y
+# CONFIG_IRQ_POLL is not set
+CONFIG_MPILIB=y
+CONFIG_DIMLIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_FONT_SUPPORT=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_SG_POOL=y
+CONFIG_ARCH_HAS_PMEM_API=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
+CONFIG_STACKDEPOT_MAX_FRAMES=64
+CONFIG_SBITMAP=y
+# CONFIG_LWQ_TEST is not set
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+# CONFIG_STACKTRACE_BUILD_ID is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+# CONFIG_DEBUG_KERNEL is not set
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_AS_HAS_NON_CONST_ULEB128=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
+# CONFIG_DEBUG_FS is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_UBSAN is not set
+CONFIG_HAVE_KCSAN_COMPILER=y
+# end of Generic Kernel Debugging Instruments
+
+#
+# Networking Debugging
+#
+# end of Networking Debugging
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_ARCH_HAS_DEBUG_WX=y
+# CONFIG_DEBUG_WX is not set
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_PER_VMA_LOCK_STATS is not set
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+# CONFIG_DEBUG_VM_PGTABLE is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+# CONFIG_KASAN is not set
+CONFIG_HAVE_ARCH_KFENCE=y
+# CONFIG_KFENCE is not set
+# end of Memory Debugging
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_INFO=y
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_DEBUG_IRQFLAGS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+
+#
+# Debug kernel data structures
+#
+# CONFIG_DEBUG_CLOSURES is not set
+# end of Debug kernel data structures
+
+#
+# RCU Debugging
+#
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
+# CONFIG_RCU_CPU_STALL_CPUTIME is not set
+# end of RCU Debugging
+
+CONFIG_HAVE_RETHOOK=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
+CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
+# CONFIG_STRICT_DEVMEM is not set
+
+#
+# riscv Debugging
+#
+
+#
+# arch/riscv/kernel Testing and Coverage
+#
+CONFIG_AS_HAS_ULEB128=y
+CONFIG_RUNTIME_KERNEL_TESTING_MENU=y
+# end of arch/riscv/kernel Testing and Coverage
+# end of riscv Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+# CONFIG_KCOV is not set
+# CONFIG_RUNTIME_TESTING_MENU is not set
+CONFIG_ARCH_USE_MEMTEST=y
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+
+#
+# Rust hacking
+#
+# end of Rust hacking
+# end of Kernel hacking
diff --git a/testing/linux-timemachine/APKBUILD b/testing/linux-timemachine/APKBUILD
new file mode 100644
index 00000000000..add90edb773
--- /dev/null
+++ b/testing/linux-timemachine/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
+# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
+pkgname=linux-timemachine
+pkgver=1.3.2
+pkgrel=0
+pkgdesc="Rsync-based OSX-like time machine for atomic and resumable local and remote backups"
+url="https://github.com/cytopia/linux-timemachine"
+arch="noarch"
+license="MIT"
+depends="rsync"
+options="!check" # tests depend on docker
+source="https://github.com/cytopia/linux-timemachine/archive/refs/tags/v$pkgver/linux-timemachine-$pkgver.tar.gz"
+
+package() {
+ install -Dm0755 -oroot -groot timemachine "$pkgdir"/usr/bin/timemachine
+}
+
+sha512sums="
+ed0d010a20feef169aca3bcad7703afd05334a4047563b70fae0266daf3edc7af259a5838986b8a6ff6a990cf712b832079e2c6170d96b9107e2e6fb1057132f linux-timemachine-1.3.2.tar.gz
+"
diff --git a/testing/linuxkit/APKBUILD b/testing/linuxkit/APKBUILD
new file mode 100644
index 00000000000..fd987d95ef6
--- /dev/null
+++ b/testing/linuxkit/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=linuxkit
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Toolkit for building immutable operating systems for containers"
+url="https://github.com/linuxkit/linuxkit"
+# 32-bit platforms: github.com/rn/iso9660wrap: integer overflow
+# riscv64: fails to build
+arch="all !x86 !armhf !armv7 !riscv64"
+license="Apache-2.0"
+makedepends="go"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxkit/linuxkit/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver/src/cmd/linuxkit"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.GitCommit=AlpineLinux
+ -X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version=v$pkgver
+ "
+ go build -v -ldflags "$_goldflags"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+
+ mkdir -p "$pkgdir"/usr/share/doc/linuxkit/examples
+ cp -r ../../../examples/*.yml "$pkgdir"/usr/share/doc/linuxkit/examples/
+}
+
+sha512sums="
+5cc5b8ef7005e64185a46e94c0e7102b040959d040b88fd565121842c8f0f061511b41c6bb397255aa02a2508c7d60e48e03e68ba25c7376209554a4ea0ab370 linuxkit-1.2.0.tar.gz
+"
diff --git a/testing/linuxptp/APKBUILD b/testing/linuxptp/APKBUILD
new file mode 100644
index 00000000000..491be0a8fc1
--- /dev/null
+++ b/testing/linuxptp/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer:
+pkgname=linuxptp
+pkgver=4.2
+pkgrel=0
+pkgdesc="User space PTP stack for Linux"
+url="https://linuxptp.nwtime.org/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ bsd-compat-headers
+ linux-headers
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/richardcochran/linuxptp/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+_bins="hwstamp_ctl nsm phc2sys phc_ctl pmc ptp4l timemaster ts2phc tz2alt"
+for _bin in $_bins; do
+ depends="$depends $pkgname-$_bin=$pkgver-r$pkgrel"
+ subpackages="$subpackages $pkgname-$_bin:split"
+done
+
+build() {
+ make \
+ CC="${CC:-cc}" \
+ version="$pkgver" \
+ EXTRA_CFLAGS="$CFLAGS -flto=auto"
+}
+
+package() {
+ make \
+ prefix=/usr \
+ mandir=/usr/share/man \
+ DESTDIR="$pkgdir" \
+ install
+}
+
+split() {
+ local name="${subpkgname#"$pkgname"-}"
+ pkgdesc="$pkgdesc ($name utility)"
+ depends=""
+
+ amove usr/sbin/$name
+}
+
+sha512sums="
+479e512efd0573602379a9e1d8ef5c0ec9e033944cee5aed11c68cea5e8a3f7d4b6f2d11f6d6d4718282010da52c2c8629d675d9b388cc0c3d574845a913cdbb linuxptp-4.2.tar.gz
+"
diff --git a/testing/linuxwave/APKBUILD b/testing/linuxwave/APKBUILD
new file mode 100644
index 00000000000..8c0f8bd22d6
--- /dev/null
+++ b/testing/linuxwave/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=linuxwave
+pkgver=0.1.5
+pkgrel=0
+pkgdesc="Generate music from the entropy of Linux"
+url="https://github.com/orhun/linuxwave"
+license="MIT"
+arch="x86_64 aarch64" # Limited by zig aport
+makedepends="zig"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/orhun/linuxwave/releases/download/v$pkgver/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+aarch64 | x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ zig build -Drelease-safe -Dpie=true -Drelro=true ${cputarget:+-Dcpu="$cputarget"}
+}
+
+check() {
+ zig build test
+}
+
+package() {
+ install -Dm755 "zig-out/bin/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm644 "man/$pkgname.1" -t "$pkgdir/usr/share/man/man1"
+ install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+1df73a1bdda6eed122f7e114a283e327f849cccc8fcb0d925403a21de683eea6eb327374f1d6028a7502648004709d9e2ad07d2be80247ec111c44686ebefbfb linuxwave-0.1.5.tar.gz
+"
diff --git a/testing/lipstick-asteroidos/0001-Drop-Qt-extended-surface.patch b/testing/lipstick-asteroidos/0001-Drop-Qt-extended-surface.patch
new file mode 100644
index 00000000000..e64e7004d6c
--- /dev/null
+++ b/testing/lipstick-asteroidos/0001-Drop-Qt-extended-surface.patch
@@ -0,0 +1,229 @@
+From f321b9772bec5f7925e58435e1027ecec5a4e9a8 Mon Sep 17 00:00:00 2001
+From: Chupligin Sergey <neochapay@gmail.com>
+Date: Wed, 24 Mar 2021 19:39:56 +0300
+Subject: [PATCH] [compositor] Drop Qt extended surface
+
+---
+ src/compositor/lipstickcompositor.cpp | 11 ---------
+ src/compositor/lipstickcompositor.h | 7 ------
+ src/compositor/lipstickcompositorwindow.cpp | 25 +++++----------------
+ src/compositor/lipstickcompositorwindow.h | 6 -----
+ src/compositor/windowmodel.cpp | 22 ------------------
+ 5 files changed, 5 insertions(+), 66 deletions(-)
+
+diff --git a/src/compositor/lipstickcompositor.cpp b/src/compositor/lipstickcompositor.cpp
+index 4dce9d7b..00bb548e 100644
+--- a/src/compositor/lipstickcompositor.cpp
++++ b/src/compositor/lipstickcompositor.cpp
+@@ -35,7 +35,6 @@
+ #include <private/qguiapplication_p.h>
+ #include <QtGui/qpa/qplatformintegration.h>
+ #include <QWaylandQuickShellSurfaceItem>
+-#include <QtWaylandCompositor/private/qwlextendedsurface_p.h>
+
+ #include <mce/dbus-names.h>
+ #include <mce/mode-names.h>
+@@ -77,9 +76,6 @@ LipstickCompositor::LipstickCompositor()
+ m_xdgShell = new QWaylandXdgShell(this);
+ connect(m_xdgShell, &QWaylandXdgShell::toplevelCreated, this, &LipstickCompositor::onToplevelCreated);
+
+- m_surfExtGlob = new QtWayland::SurfaceExtensionGlobal(this);
+- connect(m_surfExtGlob, &QtWayland::SurfaceExtensionGlobal::extendedSurfaceReady, this, &LipstickCompositor::onExtendedSurfaceReady);
+-
+ m_wm = new QWaylandQtWindowManager(this);
+ connect(m_wm, &QWaylandQtWindowManager::openUrl, this, &LipstickCompositor::openUrl);
+
+@@ -194,13 +190,6 @@ void LipstickCompositor::onSurfaceCreated(QWaylandSurface *surface)
+ connect(surface, SIGNAL(redraw()), this, SLOT(windowSwapped()));
+ }
+
+-void LipstickCompositor::onExtendedSurfaceReady(QtWayland::ExtendedSurface *extSurface, QWaylandSurface *surface)
+-{
+- LipstickCompositorWindow *window = surfaceWindow(surface);
+- if(window)
+- window->setExtendedSurface(extSurface);
+-}
+-
+ bool LipstickCompositor::openUrl(QWaylandClient *client, const QUrl &url)
+ {
+ Q_UNUSED(client)
+diff --git a/src/compositor/lipstickcompositor.h b/src/compositor/lipstickcompositor.h
+index a22b474f..b570f669 100644
+--- a/src/compositor/lipstickcompositor.h
++++ b/src/compositor/lipstickcompositor.h
+@@ -33,11 +33,6 @@
+ #include <timed-qt5/exception>
+ #include <timed-qt5/event-declarations.h>
+
+-namespace QtWayland {
+- class SurfaceExtensionGlobal;
+- class ExtendedSurface;
+-}
+-
+ class WindowModel;
+ class LipstickCompositorWindow;
+ class LipstickCompositorProcWindow;
+@@ -191,7 +186,6 @@ private slots:
+ void initialize();
+
+ void onToplevelCreated(QWaylandXdgToplevel * topLevel, QWaylandXdgSurface * shellSurface);
+- void onExtendedSurfaceReady(QtWayland::ExtendedSurface *extSurface, QWaylandSurface *surface);
+
+ private:
+ friend class LipstickCompositorWindow;
+@@ -245,7 +239,6 @@ private slots:
+ QQuickWindow *m_window;
+ QWaylandOutput *m_output;
+ QWaylandXdgShell *m_xdgShell;
+- QtWayland::SurfaceExtensionGlobal *m_surfExtGlob;
+ QWaylandQtWindowManager *m_wm;
+
+ Maemo::Timed::Interface *m_timedDbus;
+diff --git a/src/compositor/lipstickcompositorwindow.cpp b/src/compositor/lipstickcompositorwindow.cpp
+index 5bfc79ea..db15f501 100644
+--- a/src/compositor/lipstickcompositorwindow.cpp
++++ b/src/compositor/lipstickcompositorwindow.cpp
+@@ -17,6 +17,7 @@
+ #include <QWaylandCompositor>
+ #include <QWaylandSeat>
+ #include <QTimer>
++#include <QEvent>
+ #include <sys/types.h>
+ #include <signal.h>
+ #include "lipstickcompositor.h"
+@@ -28,14 +29,13 @@
+ #include <EGL/egl.h>
+ #include <private/qwaylandsurface_p.h>
+ #include <private/qquickwindow_p.h>
+-#include <QtWaylandCompositor/private/qwlextendedsurface_p.h>
+
+ LipstickCompositorWindow::LipstickCompositorWindow(int windowId, const QString &category,
+ QWaylandSurface *surface, QQuickItem *parent)
+ : QWaylandQuickItem(), m_windowId(windowId), m_category(category),
+ m_delayRemove(false), m_windowClosed(false), m_removePosted(false),
+ m_interceptingTouch(false), m_mapped(false), m_noHardwareComposition(false),
+- m_focusOnTouch(false), m_hasVisibleReferences(false), m_extSurface(nullptr)
++ m_focusOnTouch(false), m_hasVisibleReferences(false)
+ {
+ setFlags(QQuickItem::ItemIsFocusScope | flags());
+
+@@ -111,29 +111,14 @@ QString LipstickCompositorWindow::category() const
+ return m_category;
+ }
+
+-QtWayland::ExtendedSurface *LipstickCompositorWindow::extendedSurface()
+-{
+- return m_extSurface;
+-}
+-
+-void LipstickCompositorWindow::setExtendedSurface(QtWayland::ExtendedSurface *extSurface)
+-{
+- m_extSurface = extSurface;
+- connect(m_extSurface, SIGNAL(windowFlagsChanged()), this, SIGNAL(windowFlagsChanged()));
+-}
+
+ qint16 LipstickCompositorWindow::windowFlags()
+ {
+- if (m_extSurface) {
+- return m_extSurface->windowFlags();
+- }
+ return 0;
+ }
+
+ QVariantMap LipstickCompositorWindow::windowProperties()
+ {
+- if (m_extSurface)
+- return m_extSurface->windowProperties();
+ return QVariantMap();
+ }
+
+@@ -198,15 +183,15 @@ bool LipstickCompositorWindow::eventFilter(QObject *obj, QEvent *event)
+ }
+ return false;
+ }
+- if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
++ if (event->type() == 6 || event->type() == 7) {
+ QKeyEvent *ke = static_cast<QKeyEvent *>(event);
+ QWaylandSurface *m_surface = surface();
+ if (m_surface) {
+ QWaylandSeat *inputDevice = m_surface->compositor()->seatFor(ke);
+- if (event->type() == QEvent::KeyPress)
++ if (event->type() == 6) //KeyPress
+ inputDevice->setKeyboardFocus(m_surface);
+ inputDevice->sendFullKeyEvent(ke);
+- if (event->type() == QEvent::KeyRelease)
++ if (event->type() == 7) //KeyRelease
+ qApp->removeEventFilter(this);
+ return true;
+ }
+diff --git a/src/compositor/lipstickcompositorwindow.h b/src/compositor/lipstickcompositorwindow.h
+index c85e46ad..4af3693c 100644
+--- a/src/compositor/lipstickcompositorwindow.h
++++ b/src/compositor/lipstickcompositorwindow.h
+@@ -20,9 +20,6 @@
+ #include <QWaylandBufferRef>
+ #include "lipstickglobal.h"
+
+-namespace QtWayland {
+- class ExtendedSurface;
+-}
+ class LipstickCompositorWindowHwcNode;
+
+ class LIPSTICK_EXPORT LipstickCompositorWindow : public QWaylandQuickItem
+@@ -106,8 +103,6 @@ private slots:
+ void tryRemove();
+ void handleTouchEvent(QTouchEvent *e);
+
+- void setExtendedSurface(QtWayland::ExtendedSurface *extSurface);
+- QtWayland::ExtendedSurface *extendedSurface();
+ void setTitle(QString title);
+ QString m_title;
+
+@@ -124,7 +119,6 @@ private slots:
+ QVariant m_data;
+ QList<QMetaObject::Connection> m_surfaceConnections;
+ QVector<QQuickItem *> m_refs;
+- QtWayland::ExtendedSurface *m_extSurface;
+ };
+
+ #endif // LIPSTICKCOMPOSITORWINDOW_H
+diff --git a/src/compositor/windowmodel.cpp b/src/compositor/windowmodel.cpp
+index 245e23a2..c942d493 100644
+--- a/src/compositor/windowmodel.cpp
++++ b/src/compositor/windowmodel.cpp
+@@ -14,7 +14,6 @@
+ ****************************************************************************/
+
+ #include <QDBusConnection>
+-#include <QtWaylandCompositor/private/qwlextendedsurface_p.h>
+ #include "lipstickcompositorwindow.h"
+ #include "lipstickcompositor.h"
+ #include "windowmodel.h"
+@@ -202,27 +201,6 @@ void WindowModel::launchProcess(const QString &binaryName)
+ proc << part;
+ }
+ }
+-
+- // Cannot match, as the cmdline has less arguments than then binary part
+- if (binaryParts.size() > proc.size()) {
+- continue;
+- }
+-
+- bool match = true;
+-
+- // All parts of binaryName must be contained in this order in the
+- // process command line to match the given process
+- for (int i=0; i<binaryParts.count(); i++) {
+- if (proc[i] != binaryParts[i]) {
+- match = false;
+- break;
+- }
+- }
+-
+- if (match) {
+- emit win->extendedSurface()->raiseRequested();
+- break;
+- }
+ }
+ }
+
diff --git a/testing/lipstick-asteroidos/0002-Disables-tests-and-doc.patch b/testing/lipstick-asteroidos/0002-Disables-tests-and-doc.patch
new file mode 100644
index 00000000000..bf43a606b44
--- /dev/null
+++ b/testing/lipstick-asteroidos/0002-Disables-tests-and-doc.patch
@@ -0,0 +1,20 @@
+From 46c9290b58958dff65119caf898ca821ba87e34f Mon Sep 17 00:00:00 2001
+From: Florent Revest <revestflo@gmail.com>
+Date: Tue, 28 Feb 2017 12:40:30 +0100
+Subject: [PATCH] Disables tests and doc
+
+---
+ lipstick.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lipstick.pro b/lipstick.pro
+index 016139da..9fda0c5c 100644
+--- a/lipstick.pro
++++ b/lipstick.pro
+@@ -1,5 +1,5 @@
+ TEMPLATE = subdirs
+-SUBDIRS += src plugin tools tests doc
++SUBDIRS += src plugin tools
+
+ plugin.depends = src
+ tools.depends = src
diff --git a/testing/lipstick-asteroidos/APKBUILD b/testing/lipstick-asteroidos/APKBUILD
new file mode 100644
index 00000000000..23cc5f5fb4a
--- /dev/null
+++ b/testing/lipstick-asteroidos/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=lipstick-asteroidos
+pkgver=2.0.0
+pkgrel=1
+pkgdesc="A project aimed at offering easy to modify user experiences for varying mobile device form factors"
+url="https://github.com/AsteroidOS/lipstick"
+# armhf blocked by nemo-qml-plugin-devicelock
+arch="all !armhf"
+license="LGPL-2.1-only"
+depends_dev="
+ bluez-qt5-dev
+ elogind-dev
+ libdsme-dev
+ libmce-qt-dev
+ libngf-qt-dev
+ libresourceqt-dev
+ libusb-moded-qt-dev
+ libxkbcommon-dev
+ mlite-dev
+ nemo-keepalive-dev
+ nemo-qml-plugin-devicelock-dev
+ nemo-qml-plugin-systemsettings-dev
+ pulseaudio-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtsensors-dev
+ qt5-qtsystems-dev
+ qt5-qttools-dev
+ qt5-qtwayland-dev
+ ssu-sysinfo-dev
+ user-managerd-dev
+ wayland-dev
+ "
+makedepends="$depends_dev
+ doxygen
+ graphviz
+ "
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsteroidOS/lipstick/archive/refs/tags/$pkgver.tar.gz
+ 0001-Drop-Qt-extended-surface.patch
+ 0002-Disables-tests-and-doc.patch
+ "
+options="!check" # Broken
+builddir="$srcdir/lipstick-$pkgver"
+
+provides="lipstick=$pkgver-r$pkgrel"
+replaces="lipstick lipstick-glacier"
+
+build() {
+ qmake-qt5
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ INSTALL_ROOT="$pkgdir" make install
+
+ mkdir -p "$pkgdir"/usr/share/dbus-1/system.d/
+ mv "$pkgdir"/etc/dbus-1/system.d/* "$pkgdir"/usr/share/dbus-1/system.d/
+}
+
+tools() {
+ pkgdesc="Useful command line tools for Lipstick"
+
+ amove usr/bin
+}
+
+sha512sums="
+e4e65a328bdac7c5a0bfcb8f9bf54f749ab5cb0bf1ef1d5f2829866ff0f7698fcf174c8871d58c700e198a992b3cc0ccfd74eae3d6ab748f51514e4331c51a29 lipstick-asteroidos-2.0.0.tar.gz
+b08c875045ce84beea6bab5c22aafc7eb32668450d3b9ed2163718adedf1f19e16e9d143514882e06da38e720f508924f641a80a654eea0e76af873088c16233 0001-Drop-Qt-extended-surface.patch
+221e2a75d660197364372ea8718ee6b0a476b6f8f413157b8524ec5cca57d45779b02fe7fc433727af2c8e47b52ddc6a784063fe7d1608d98396464935447a78 0002-Disables-tests-and-doc.patch
+"
diff --git a/testing/liquibase/APKBUILD b/testing/liquibase/APKBUILD
index 263bb8ae260..143487d1693 100644
--- a/testing/liquibase/APKBUILD
+++ b/testing/liquibase/APKBUILD
@@ -2,18 +2,22 @@
# Contributor: Curt Tilmes <Curt.Tilmes@nasa.gov>
# Maintainer: Curt Tilmes <Curt.Tilmes@nasa.gov>
pkgname=liquibase
-pkgver=3.8.8
+pkgver=4.9.1
pkgrel=0
pkgdesc="Source Control for your Database"
-url="http://www.liquibase.org/"
-arch="noarch !mips !mips64" # java
+url="https://www.liquibase.org/"
+arch="noarch !riscv64" # blocked by openjdk8
license="Apache-2.0"
-depends="openjdk8-jre bash"
+depends="java-jre bash"
subpackages="$pkgname-doc"
source="https://github.com/liquibase/liquibase/releases/download/v$pkgver/liquibase-$pkgver.tar.gz"
builddir="$srcdir"
options="!check" # No tests
+# secfixes:
+# 4.9.1-r0:
+# - CVE-2022-0839
+
package() {
mkdir -p "$pkgdir"/usr/share/"$pkgname"
for file in lib liquibase liquibase.jar; do
@@ -29,4 +33,6 @@ package() {
done
}
-sha512sums="48cdd205e1edc44d968a079ad3dd23737971db36a9eae3488819a271b18a5d4e6259e8d107b3018628eaf1dade118709d4fe4da5a8267e4c352b16f8ad634cc9 liquibase-3.8.8.tar.gz"
+sha512sums="
+8daa0477e4e3dc18f2f8008b419827dd622b8d7981ebb401ac472f6d6c5ed6b2e49d4ec7d1d30e197d944752838437ffeec3d77abd4d8da219db25c8dde832d9 liquibase-4.9.1.tar.gz
+"
diff --git a/testing/liquid-dsp/APKBUILD b/testing/liquid-dsp/APKBUILD
new file mode 100644
index 00000000000..47c03e2489a
--- /dev/null
+++ b/testing/liquid-dsp/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=liquid-dsp
+pkgver=1.5.0
+pkgrel=0
+pkgdesc="Digital signal processing library for software-defined radios"
+url="https://liquidsdr.org"
+arch="x86_64 aarch64" # tests only pass on 64 bit architectures https://github.com/jgaeddert/liquid-dsp/issues/146
+license="MIT"
+makedepends="autoconf automake"
+subpackages="$pkgname-dev"
+source="https://github.com/jgaeddert/liquid-dsp/archive/v$pkgver/liquid-dsp-v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ ./bootstrap.sh
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --host=$CHOST \
+ --build=$CBUILD
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ # https://github.com/jgaeddert/liquid-dsp/issues/312
+ mv "$pkgdir"/usr/lib/libliquid.a* "$pkgdir"/usr/lib/libliquid.a
+}
+
+sha512sums="
+b9b655d155136aee828c76ae8287726b8abf51c969e5c2ded63e99bcb064b247597eec5b896d2fd608d94363a0d3d51214af12673858a5bdf22d27d4b662de12 liquid-dsp-v1.5.0.tar.gz
+"
diff --git a/testing/listenbrainz-mpd/APKBUILD b/testing/listenbrainz-mpd/APKBUILD
new file mode 100644
index 00000000000..b6bde336fcc
--- /dev/null
+++ b/testing/listenbrainz-mpd/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=listenbrainz-mpd
+pkgver=2.3.5
+pkgrel=0
+pkgdesc="ListenBrainz submission client for MPD written in Rust"
+url="https://codeberg.org/elomatreb/listenbrainz-mpd"
+arch="all"
+license="AGPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ sqlite-dev
+"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/elomatreb/listenbrainz-mpd/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+options="net !check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen --all-features
+}
+
+package() {
+ install -Dm755 target/release/listenbrainz-mpd "$pkgdir"/usr/bin/listenbrainz-mpd
+
+ install -Dm644 listenbrainz-mpd.adoc -t "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+ install -Dm644 generated_completions/listenbrainz-mpd.bash "$pkgdir"/usr/share/bash-completion/completions/listenbrainz-mpd
+ install -Dm644 generated_completions/listenbrainz-mpd.fish "$pkgdir"/usr/share/fish/vendor_completions.d/listenbrainz-mpd.fish
+ install -Dm644 generated_completions/_listenbrainz-mpd "$pkgdir"/usr/share/zsh/site-functions/_listenbrainz-mpd
+}
+
+sha512sums="
+d7a590a07646e7384b7f4a557163b16fc210d36a6343ee3d79b4a113e22a16bb2a09abc428deac7279a5a9c5461587da74e7e45ddc014faa17674e1093d1dca4 listenbrainz-mpd-2.3.5.tar.gz
+"
diff --git a/testing/lite-editor-colors/APKBUILD b/testing/lite-editor-colors/APKBUILD
deleted file mode 100644
index 3eb7d492f4e..00000000000
--- a/testing/lite-editor-colors/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=lite-editor-colors
-pkgver=0_git20200506
-_commit=f968093aace093e04bb97e142596bf629e8e9b22
-pkgrel=0
-pkgdesc="Colors themes for the lite text editor"
-url="https://github.com/rxi/lite-colors"
-arch="noarch"
-license="MIT"
-depends="lite-editor"
-options="!check" # no tests
-source="$pkgname-$pkgver.tar.gz::https://github.com/rxi/lite-colors/archive/$_commit.tar.gz"
-builddir="$srcdir/lite-colors-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/lite-editor/data
- cp -r colors "$pkgdir"/usr/share/lite-editor/data
-}
-
-sha512sums="985c4ac5a957552b8132dac00291a267a40766ea63812b92f9d052841e7c3f0bcae8e643eb62d46e525f34643ff97eb321a82fd06543f8ce8c65749d04396b73 lite-editor-colors-0_git20200506.tar.gz"
diff --git a/testing/lite-editor-plugins/APKBUILD b/testing/lite-editor-plugins/APKBUILD
deleted file mode 100644
index 29e520fb357..00000000000
--- a/testing/lite-editor-plugins/APKBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=lite-editor-plugins
-pkgver=0_git20200510
-_commit=3a19b1791a6a143aaad789adc18a2801875e37bb
-pkgrel=0
-pkgdesc="Plugins for the lite text editor"
-url="https://github.com/rxi/lite-plugins"
-arch="noarch"
-license="MIT"
-depends="lite-editor"
-options="!check" # no tests
-source="$pkgname-$pkgver.tar.gz::https://github.com/rxi/lite-plugins/archive/$_commit.tar.gz"
-builddir="$srcdir/lite-plugins-$_commit"
-
-# List of plugins. Installing a plugin means it's always enabled:
-# https://github.com/rxi/lite/issues/60 . All functional plugins are
-# listed here, language syntax plugins are always installed.
-_plugins="
- autowrap
- bracketmatch
- colorpreview
- detectindent
- drawwhitespace
- eval
- gitstatus
- gofmt
- hidestatus
- indentguide
- lfautoinsert
- lineguide
- macmodkeys
- selectionhighlight
- sort
- spellcheck
- titleize
- togglesnakecamel
- unboundedscroll
- "
-for _x in $_plugins; do
- subpackages="$subpackages $pkgname-$_x:_package_plugin"
-done
-
-package() {
- mkdir -p "$pkgdir"/usr/share/lite-editor/data
- cp -r plugins "$pkgdir"/usr/share/lite-editor/data
-}
-
-_package_plugin() {
- local plugin="${subpkgname#$pkgname-}"
-
- pkgdesc="$pkgdesc ($plugin plugin)"
-
- depends="$pkgname"
-
- mkdir -p "$subpkgdir"/usr/share/lite-editor/data/plugins
- mv "$pkgdir"/usr/share/lite-editor/data/plugins/$plugin.lua "$subpkgdir"/usr/share/lite-editor/data/plugins
-}
-
-sha512sums="026fd478d2e04af0616271f5e175cdd167b3747e9339ec4f87182509dccfdd37f3ed67256e713b251a6896c7bbfb7731ff72b5b872dc0eabcb32b28e8d86f171 lite-editor-plugins-0_git20200510.tar.gz"
diff --git a/testing/lite-editor/APKBUILD b/testing/lite-editor/APKBUILD
deleted file mode 100644
index 2c5344e62a2..00000000000
--- a/testing/lite-editor/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=lite-editor
-pkgver=1.03
-pkgrel=0
-pkgdesc="A lightweight text editor written in Lua"
-url="https://github.com/rxi/lite"
-arch="all"
-license="MIT"
-depends="lua"
-makedepends="bash sdl2-dev"
-options="!check" # no tests
-source="$pkgname-$pkgver.tar.gz::https://github.com/rxi/lite/archive/v$pkgver/v$pkgver.tar.gz
- dont-assume-local-project.patch"
-builddir="$srcdir/lite-$pkgver"
-
-build() {
- ./build.sh
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin/ "$pkgdir"/usr/share/lite-editor
- cp lite "$pkgdir"/usr/bin/lite
- cp -r data "$pkgdir"/usr/share/lite-editor
-}
-
-sha512sums="f22c0cb1abc3157203f5f966ed2674fcc8b9489bb28139596573c0f1e10b5de18ba819a5c17d70d87ce5075db6a5c1a61e1e4cf56a4c9ff40000e635a06f9b09 lite-editor-1.03.tar.gz
-ee628fb3de653cc85eb9859ca9f496b57fd080ef759fff9f35b0a1fe9a802ec3bf1d55c2956dfcc6e21100921012fe595ae8be959fad7aac9cc82c8f0e3d1673 dont-assume-local-project.patch"
diff --git a/testing/lite-editor/dont-assume-local-project.patch b/testing/lite-editor/dont-assume-local-project.patch
deleted file mode 100644
index ecbc70fc02b..00000000000
--- a/testing/lite-editor/dont-assume-local-project.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Upstream: Issue opened: https://github.com/rxi/lite/issues/49
-Reason: Right now lite just assumes that the data directory will be right
-next to the binary, but we want the binary in /usr/bin and the data in
-/usr/share/lite-editor
-
-diff --git a/data/core/commands/core.lua b/data/core/commands/core.lua
-index 5c9d622..568f0ef 100644
---- a/data/core/commands/core.lua
-+++ b/data/core/commands/core.lua
-@@ -85,7 +85,7 @@ command.add(nil, {
- end,
-
- ["core:open-user-module"] = function()
-- core.root_view:open_doc(core.open_doc(EXEDIR .. "/data/user/init.lua"))
-+ core.root_view:open_doc(core.open_doc("/usr/share/lite-editor/data/user/init.lua"))
- end,
-
- ["core:open-project-module"] = function()
-diff --git a/data/core/init.lua b/data/core/init.lua
-index a25cdb5..3bea486 100644
---- a/data/core/init.lua
-+++ b/data/core/init.lua
-@@ -150,7 +150,7 @@ end
-
- function core.load_plugins()
- local no_errors = true
-- local files = system.list_dir(EXEDIR .. "/data/plugins")
-+ local files = system.list_dir("/usr/share/lite-editor/data/plugins")
- for _, filename in ipairs(files) do
- local modname = "plugins." .. filename:gsub(".lua$", "")
- local ok = core.try(require, modname)
-@@ -421,7 +421,7 @@ end
-
- function core.on_error(err)
- -- write error to file
-- local fp = io.open(EXEDIR .. "/error.txt", "wb")
-+ local fp = io.open("/tmp/lite-editor-error.txt", "wb")
- fp:write("Error: " .. tostring(err) .. "\n")
- fp:write(debug.traceback(nil, 4))
- fp:close()
-diff --git a/data/core/style.lua b/data/core/style.lua
-index ab597c2..23b551f 100644
---- a/data/core/style.lua
-+++ b/data/core/style.lua
-@@ -7,10 +7,10 @@ style.scrollbar_size = common.round(4 * SCALE)
- style.caret_width = common.round(2 * SCALE)
- style.tab_width = common.round(170 * SCALE)
-
--style.font = renderer.font.load(EXEDIR .. "/data/fonts/font.ttf", 14 * SCALE)
--style.big_font = renderer.font.load(EXEDIR .. "/data/fonts/font.ttf", 34 * SCALE)
--style.icon_font = renderer.font.load(EXEDIR .. "/data/fonts/icons.ttf", 14 * SCALE)
--style.code_font = renderer.font.load(EXEDIR .. "/data/fonts/monospace.ttf", 13.5 * SCALE)
-+style.font = renderer.font.load("/usr/share/lite-editor/data/fonts/font.ttf", 14 * SCALE)
-+style.big_font = renderer.font.load("/usr/share/lite-editor/data/fonts/font.ttf", 34 * SCALE)
-+style.icon_font = renderer.font.load("/usr/share/lite-editor/data/fonts/icons.ttf", 14 * SCALE)
-+style.code_font = renderer.font.load("/usr/share/lite-editor/data/fonts/monospace.ttf", 13.5 * SCALE)
-
- style.background = { common.color "#2e2e32" }
- style.background2 = { common.color "#252529" }
-diff --git a/src/main.c b/src/main.c
-index d282a9a..50eedb5 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -127,8 +127,8 @@ int main(int argc, char **argv) {
- "xpcall(function()\n"
- " SCALE = tonumber(os.getenv(\"LITE_SCALE\")) or SCALE\n"
- " PATHSEP = package.config:sub(1, 1)\n"
-- " package.path = EXEDIR .. '/data/?.lua;' .. package.path\n"
-- " package.path = EXEDIR .. '/data/?/init.lua;' .. package.path\n"
-+ " package.path = '/usr/share/lite-editor/data/?.lua;' .. package.path\n"
-+ " package.path = '/usr/share/lite-editor/data/?/init.lua;' .. package.path\n"
- " core = require('core')\n"
- " core.init()\n"
- " core.run()\n"
diff --git a/testing/lite-xl/APKBUILD b/testing/lite-xl/APKBUILD
new file mode 100644
index 00000000000..2c527aa9df8
--- /dev/null
+++ b/testing/lite-xl/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Jakub Panek <me@panekj.dev>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lite-xl
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="Lightweight text editor written in Lua"
+url="https://lite-xl.github.io"
+arch="all"
+license="MIT"
+makedepends="
+ cmake
+ freetype-dev
+ lua5.4-dev
+ meson
+ pcre2-dev
+ reproc-dev
+ sdl2-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/lite-xl/lite-xl/archive/v$pkgver/lite-xl-$pkgver.tar.gz"
+options="!check" # no tests available
+
+build() {
+ abuild-meson -Darch_tuple="$CARCH-linux" . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+224bf8e2629f2dcd9bc5c8468a0f3f8fd6453db910241e79c8d3ba6902202a31df8381f0dd9c5fb797ad98df7bc122ea288accb58353fe310ed770d0874268e5 lite-xl-2.1.1.tar.gz
+"
diff --git a/testing/litehtml/APKBUILD b/testing/litehtml/APKBUILD
new file mode 100644
index 00000000000..ce33d6c4219
--- /dev/null
+++ b/testing/litehtml/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=litehtml
+pkgver=0.8
+pkgrel=2
+pkgdesc="Fast and lightweight HTML/CSS rendering engine"
+url="http://www.litehtml.com"
+arch="all"
+license="BSD-3-Clause"
+makedepends="cmake samurai gumbo-parser-dev"
+checkdepends="gtest-dev"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://github.com/litehtml/litehtml/archive/v$pkgver/litehtml-$pkgver.tar.gz
+ fix-gtest-check.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLITEHTML_UTF8=ON \
+ -DEXTERNAL_GUMBO=ON \
+ -DEXTERNAL_GTEST=ON \
+ -DBUILD_TESTING=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)"
+ cmake -B build-static -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLITEHTML_UTF8=ON \
+ -DEXTERNAL_GUMBO=ON \
+ -DBUILD_TESTING=OFF
+ cmake --build build
+ cmake --build build-static
+}
+
+check() {
+ ctest --output-on-failure --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ DESTDIR="$pkgdir" cmake --install build-static
+}
+
+sha512sums="
+e2df205258c4e6f48cc0d8f900fb62c2da1b18c9ca007f1e222e51a59a632eb122eb2dc6136de6641ed96b3c6c823f7f90d098f2f40f9966b0cb831b180776a4 litehtml-0.8.tar.gz
+dd4d42b85a90ecb76e7d95d450e99ffce120a0032fd73196fc06835105bae8f3b3b294743e29d4f177ec363e99ebf1ae7e265e39d656ce9180244d2aafe45e3c fix-gtest-check.patch
+"
diff --git a/testing/litehtml/fix-gtest-check.patch b/testing/litehtml/fix-gtest-check.patch
new file mode 100644
index 00000000000..3ea2454d625
--- /dev/null
+++ b/testing/litehtml/fix-gtest-check.patch
@@ -0,0 +1,20 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -147,7 +147,7 @@
+ set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_LIB_VERSION} SOVERSION ${PROJECT_SO_VERSION})
+
+ set_target_properties(${PROJECT_NAME} PROPERTIES
+- CXX_STANDARD 11
++ CXX_STANDARD 14
+ C_STANDARD 99
+ PUBLIC_HEADER "${HEADER_LITEHTML}"
+ )
+@@ -205,7 +205,7 @@
+ )
+
+ set_target_properties(${TEST_NAME} PROPERTIES
+- CXX_STANDARD 11
++ CXX_STANDARD 14
+ C_STANDARD 99
+ PUBLIC_HEADER "${HEADER_LITEHTML}"
+ )
diff --git a/testing/litespeed/APKBUILD b/testing/litespeed/APKBUILD
deleted file mode 100644
index cbed3e97eaa..00000000000
--- a/testing/litespeed/APKBUILD
+++ /dev/null
@@ -1,133 +0,0 @@
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
-pkgname=litespeed
-pkgver=1.4.50
-pkgrel=1
-_pkgreal=open$pkgname
-_pkghome=var/lib/$pkgname
-_php=php7
-pkgdesc="High-performance, lightweight, open source HTTP server"
-url="https://openlitespeed.org/"
-arch="x86 x86_64 armhf armv7"
-license="GPL-3.0-or-later"
-pkgusers=litespeed
-pkggroups=litespeed
-depends="$_php-$pkgname $_php-bcmath $_php-json $_php-mcrypt $_php-session $_php-sockets $_php-posix"
-makedepends="linux-headers openssl-dev geoip-dev expat-dev pcre-dev zlib-dev
- bsd-compat-headers lua-dev luajit-dev brotli-dev"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc $pkgname-snmp::noarch"
-source="https://openlitespeed.org/packages/openlitespeed-$pkgver.src.tgz
- $pkgname.initd
- include.patch
- install.patch
- ls_lock.patch
- thread.patch
- "
-builddir="$srcdir/openlitespeed-$pkgver"
-
-build() {
- ./configure \
- --host=$CHOST \
- --build=$CBUILD \
- --prefix=/$_pkghome \
- --with-user=$pkgusers \
- --with-group=$pkggroups \
- --enable-adminssl=no \
- --disable-rpath \
- --disable-static \
- --with-openssl=/usr \
- --with-expat \
- --with-pcre \
- --with-lua \
- --with-brotli=/usr/lib/ \
- --with-zlib
- make
-}
-
-package() {
- local file;
- make DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"/usr/lib/$pkgname \
- "$pkgdir"/usr/sbin \
- "$pkgdir"/var/log
-
- # remove trash
- rm -fr "$pkgdir"/$_pkghome/php* \
- "$pkgdir"/$_pkghome/lib \
- "$pkgdir"/$_pkghome/GPL* \
- "$pkgdir"/$_pkghome/gdata \
- "$pkgdir"/$_pkghome/autoupdate \
- "$pkgdir"/$_pkghome/fcgi-bin/* \
- "$pkgdir"/$_pkghome/bin/lshttpd \
- "$pkgdir"/$_pkghome/admin/conf/php.* \
- "$pkgdir"/$_pkghome/admin/misc/gdb-bt \
- "$pkgdir"/$_pkghome/admin/misc/convertxml.* \
- "$pkgdir"/$_pkghome/admin/misc/build_admin_php.sh
-
- # fix ownership
- chown -R $pkgusers:$pkggroups \
- "$pkgdir"/$_pkghome/tmp \
- "$pkgdir"/$_pkghome/conf \
- "$pkgdir"/$_pkghome/logs \
- "$pkgdir"/$_pkghome/backup \
- "$pkgdir"/$_pkghome/cachedata \
- "$pkgdir"/$_pkghome/admin/tmp \
- "$pkgdir"/$_pkghome/admin/logs \
- "$pkgdir"/$_pkghome/admin/conf \
- "$pkgdir"/$_pkghome/admin/cgid \
- "$pkgdir"/$_pkghome/Example/logs
-
- # install configs
- install -Dm755 "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- mv "$pkgdir"/$_pkghome/conf \
- "$pkgdir"/etc/$pkgname
- mv "$pkgdir"/$_pkghome/admin/conf \
- "$pkgdir"/etc/$pkgname/admin
- ln -s /etc/$pkgname "$pkgdir"/$_pkghome/conf
- ln -s /etc/$pkgname/admin "$pkgdir"/$_pkghome/admin/conf
- find "$pkgdir"/etc/$pkgname -type f -print0 | xargs -0 chmod -x
-
- # install binary
- mv "$pkgdir"/$_pkghome/bin/$_pkgreal \
- "$pkgdir"/usr/sbin/lshttpd
- ln -sf /usr/sbin/lshttpd \
- "$pkgdir"/$_pkghome/bin/$pkgname
-
- # install modules
- for file in $(find "$pkgdir"/$_pkghome/modules -name "*.so"); do
- mv $file "$pkgdir"/usr/lib/$pkgname/${file##*/}
- ln -s /usr/lib/$pkgname/${file##*/} $file
- done
-
- # install logs
- mv "$pkgdir"/$_pkghome/logs "$pkgdir"/var/log/$pkgname
- mv "$pkgdir"/$_pkghome/admin/logs "$pkgdir"/var/log/$pkgname/admin
- mv "$pkgdir"/$_pkghome/Example/logs "$pkgdir"/var/log/$pkgname/Example
- ln -s /var/log/$pkgname "$pkgdir"/$_pkghome/logs
- ln -s /var/log/$pkgname/admin "$pkgdir"/$_pkghome/admin/logs
- ln -s /var/log/$pkgname/Example "$pkgdir"/$_pkghome/Example/logs
-
- # install backend
- ln -s /usr/bin/ls$_php "$pkgdir"/$_pkghome/fcgi-bin/lsphp
- ln -s /etc/$_php/php.ini "$pkgdir"/etc/$pkgname/php.ini
- ln -s /etc/$_php/php.ini "$pkgdir"/etc/$pkgname/admin/php.ini
-}
-
-snmp() {
- pkgdesc="$pkgdesc (snmp monitoring add-on + cacti templates)"
- depends="$pkgname net-snmp"
-
- mkdir -p "$subpkgdir"/$_pkghome/add-ons
- mv "$pkgdir"/$_pkghome/add-ons/snmp_monitoring \
- "$subpkgdir"/$_pkghome/add-ons
-}
-
-sha512sums="1d16eec757876f55950afa09d9aeb454b18b4446ca859ee26c73a5200a0bea5e666283812bb35345b2d2a807d20df0095aceca32ebd16c84316ae5c0111c6cba openlitespeed-1.4.50.src.tgz
-2b0299246aaeb885122d8f939437f0e4701f6a79ea976f725ba8765d8b295c2797c0cac30e639d5eda665b9589710ee55acc4d03b078c4b9cc1e564994ccb9f5 litespeed.initd
-50c21bf9cc12a8d7408c6e981f3264e4daeff8285f8544c4dbe3673773abde769d4386067d2b4c858b48ba496c384d69ff6aa1eee8291d8c09b213e847d50ff4 include.patch
-732bcdd87db538bfb3432abe42b6a7868ef97ef8b2d8063f3875879cb83079cf2a73e3a0a92c7dedfad6b454affabf9739580af9a4098f5fef942b3510a4ad28 install.patch
-d17fe323aa3dde1ce881c6bac8775abf1b45ed83db57f6a3dc1c458e48e0d42ad65944bd364590b79fef425f3ff55966586f9760396af4556d25f06f4a70b7ad ls_lock.patch
-c7775836ee13b082e5c2ce011673b1a30b5ca83765d6d81ff1359110ba970808de6a87cd6d61fd688c9d2037451598154b429d70ad25094b9e9f10938aea00fd thread.patch"
diff --git a/testing/litespeed/include.patch b/testing/litespeed/include.patch
deleted file mode 100644
index fe37d1c1c9b..00000000000
--- a/testing/litespeed/include.patch
+++ /dev/null
@@ -1,118 +0,0 @@
---- a/src/main/httpserver.cpp.orig
-+++ b/src/main/httpserver.cpp
-@@ -138,7 +138,7 @@
-
- #if defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__) \
- || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
--#include <sys/sysctl.h>
-+#include <linux/sysctl.h>
- #endif
-
- #define FILEMODE 0644
---- a/src/main/lshttpdmain.cpp.orig
-+++ b/src/main/lshttpdmain.cpp
-@@ -50,7 +50,7 @@
- #include <util/httpfetch.h>
- #include <socket/gsockaddr.h>
-
--#include <sys/sysctl.h>
-+#include <linux/sysctl.h>
-
- #include <extensions/cgi/cgidworker.h>
- #include <extensions/registry/extappregistry.h>
-
---- a/src/sslpp/sslsesscache.h.orig
-+++ b/src/sslpp/sslsesscache.h
-@@ -24,6 +24,7 @@
- #include <util/tsingleton.h>
- #include <stdint.h>
- #include <unistd.h>
-+#include <time.h>
-
-
- #define LS_SSLSESSCACHE_DEFAULTSIZE 40*1024
---- a/src/modules/lua/lsluadefs.h.orig
-+++ b/src/modules/lua/lsluadefs.h
-@@ -22,8 +22,8 @@
- extern "C" {
- #endif
- /* need lua_State * */
--#include <luajit.h>
--#include <lauxlib.h>
-+#include <luajit-2.1/luajit.h>
-+#include <luajit-2.1/lauxlib.h>
- #ifdef __cplusplus
- };
- #endif
---- a/configure.orig
-+++ b/configure
-@@ -16031,16 +16031,16 @@
- if test "$OPENLSWS_BROTLI" = "no" ; then
- echo "Brotli compression disabled!!!"
- else
-- LIBBROTLI=" $OPENLSWS_BROTLI/out/libbrotlidec-static.a $OPENLSWS_BROTLI/out/libbrotlienc-static.a $OPENLSWS_BROTLI/out/libbrotlicommon-static.a "
-- as_ac_File=`$as_echo "ac_cv_file_$OPENLSWS_BROTLI/out/libbrotlidec-static.a" | $as_tr_sh`
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $OPENLSWS_BROTLI/out/libbrotlidec-static.a" >&5
--$as_echo_n "checking for $OPENLSWS_BROTLI/out/libbrotlidec-static.a... " >&6; }
-+ LIBBROTLI=" /usr/lib/libbrotlidec-static.a /usr/lib/libbrotlienc-static.a /usr/lib/libbrotlicommon-static.a "
-+ as_ac_File=`$as_echo "ac_cv_file_/usr/lib/libbrotlidec-static.a" | $as_tr_sh`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/lib/libbrotlidec-static.a" >&5
-+$as_echo_n "checking for /usr/lib/libbrotlidec-static.a... " >&6; }
- if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
- else
- test "$cross_compiling" = yes &&
- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
--if test -r "$OPENLSWS_BROTLI/out/libbrotlidec-static.a"; then
-+if test -r "/usr/lib/libbrotlidec-static.a"; then
- eval "$as_ac_File=yes"
- else
- eval "$as_ac_File=no"
-@@ -16052,21 +16052,21 @@
- if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
-
- cat >>confdefs.h <<_ACEOF
--#define `$as_echo "HAVE_$OPENLSWS_BROTLI/out/libbrotlidec-static.a" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_/usr/lib/libbrotlidec-static.a" | $as_tr_cpp` 1
- _ACEOF
-
- else
- LIBBROTLI=
- fi
--as_ac_File=`$as_echo "ac_cv_file_$OPENLSWS_BROTLI/c/include/brotli/decode.h" | $as_tr_sh`
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $OPENLSWS_BROTLI/c/include/brotli/decode.h" >&5
--$as_echo_n "checking for $OPENLSWS_BROTLI/c/include/brotli/decode.h... " >&6; }
-+as_ac_File=`$as_echo "ac_cv_file_/usr/include/brotli/decode.h" | $as_tr_sh`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/include/brotli/decode.h" >&5
-+$as_echo_n "checking for /usr/include/brotli/decode.h... " >&6; }
- if eval \${$as_ac_File+:} false; then :
- $as_echo_n "(cached) " >&6
- else
- test "$cross_compiling" = yes &&
- as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
--if test -r "$OPENLSWS_BROTLI/c/include/brotli/decode.h"; then
-+if test -r "/usr/include/brotli/decode.h"; then
- eval "$as_ac_File=yes"
- else
- eval "$as_ac_File=no"
-@@ -16078,7 +16078,7 @@
- if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
-
- cat >>confdefs.h <<_ACEOF
--#define `$as_echo "HAVE_$OPENLSWS_BROTLI/c/include/brotli/decode.h" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_/sur/include/brotli/decode.h" | $as_tr_cpp` 1
- _ACEOF
-
- else
-@@ -16089,8 +16089,8 @@
- echo "Brotli files check failed. If continue, brotli compression will be disabled."
- else
- echo "Brotli checked and enabled!!!"
-- CPPFLAGS="$CPPFLAGS -I$OPENLSWS_BROTLI/c/include "
-- LIBBROTLI=" $OPENLSWS_BROTLI/out/libbrotlidec-static.a $OPENLSWS_BROTLI/out/libbrotlienc-static.a $OPENLSWS_BROTLI/out/libbrotlicommon-static.a "
-+ CPPFLAGS="$CPPFLAGS -I/usr/include "
-+ LIBBROTLI=" /usr/lib/libbrotlidec-static.a /usr/lib/libbrotlienc-static.a /usr/lib/libbrotlicommon-static.a "
-
- cat >>confdefs.h <<_ACEOF
- #define USE_BROTLI 1
-
diff --git a/testing/litespeed/install.patch b/testing/litespeed/install.patch
deleted file mode 100644
index cd8e3c68042..00000000000
--- a/testing/litespeed/install.patch
+++ /dev/null
@@ -1,209 +0,0 @@
---- a/configure.orig
-+++ b/configure
-@@ -16220,7 +16220,7 @@
-
-
- if test "$OPENLSWS_BSSL" = no ; then
-- if test "$OSNAME" = Darwin ; then
-+ if test "$OSNAME" = Linux ; then
- usedynossl=yes
- CPPFLAGS=" $CPPFLAGS -I../../src -I../../include -I/usr/local/include -I/usr/local -I/usr -I/usr/pkg "
- else
-@@ -16606,7 +16606,7 @@
-
-
-
--if test "$OSNAME" = Darwin ; then
-+if test "$OSNAME" = Linux ; then
-
-
- # Check whether --with-openssl was given.
---- a/dist/install.sh.orig
-+++ b/dist/install.sh
-@@ -25,11 +25,7 @@
- fi
-
- if [ "x$OS" = "xLinux" ] ; then
-- if [ "x$OSTYPE" != "x64" ] ; then
-- $DLCMD $LSWS_HOME/admin/fcgi-bin/admin_php http://www.litespeedtech.com/packages/lsphp5_bin/i386/lsphp5
-- else
-- $DLCMD $LSWS_HOME/admin/fcgi-bin/admin_php http://www.litespeedtech.com/packages/lsphp5_bin/x86_64/lsphp5
-- fi
-+ ln -s /usr/bin/lsphp7 $LSWS_HOME/admin/fcgi-bin/admin_php
-
- if [ $? = 0 ] ; then
- HASADMINPHP=y
---- a/dist/functions.sh.orig
-+++ b/dist/functions.sh
-@@ -399,7 +399,7 @@
-
- if [ $INST_USER = "root" ]; then
- if [ $SUCC -eq "1" ]; then
-- chown -R "$DIR_OWN" "$LSWS_HOME"
-+ : #chown -R "$DIR_OWN" "$LSWS_HOME"
- fi
- fi
- }
-@@ -649,7 +649,7 @@
- if [ ! -d "$LSWS_HOME/$arg" ]; then
- mkdir "$LSWS_HOME/$arg"
- fi
-- chown "$OWNER" "$LSWS_HOME/$arg"
-+ #chown "$OWNER" "$LSWS_HOME/$arg"
- chmod $PERM "$LSWS_HOME/$arg"
- done
-
-@@ -666,7 +666,7 @@
- do
- if [ -f "$LSINSTALL_DIR/$arg" ]; then
- cp -f "$LSINSTALL_DIR/$arg" "$LSWS_HOME/$arg"
-- chown "$OWNER" "$LSWS_HOME/$arg"
-+ #chown "$OWNER" "$LSWS_HOME/$arg"
- chmod $PERM "$LSWS_HOME/$arg"
- fi
- done
-@@ -685,7 +685,7 @@
- cp "$LSINSTALL_DIR/$arg" "$LSWS_HOME/$arg"
- fi
- if [ -f "$LSWS_HOME/$arg" ]; then
-- chown "$OWNER" "$LSWS_HOME/$arg"
-+ #chown "$OWNER" "$LSWS_HOME/$arg"
- chmod $PERM "$LSWS_HOME/$arg"
- fi
- done
-@@ -701,7 +701,7 @@
- for arg
- do
- cp -R "$LSINSTALL_DIR/$arg/"* "$LSWS_HOME/$arg/"
-- chown -R "$OWNER" "$LSWS_HOME/$arg/"*
-+ #chown -R "$OWNER" "$LSWS_HOME/$arg/"*
- #chmod -R $PERM $LSWS_HOME/$arg/*
- done
- }
-@@ -728,7 +728,7 @@
- for arg
- do
- cp -R "$LSINSTALL_DIR/$arg/"* "$LSWS_HOME/$arg.$VERSION/"
-- chown -R "$OWNER" "$LSWS_HOME/$arg.$VERSION"
-+ #chown -R "$OWNER" "$LSWS_HOME/$arg.$VERSION"
- $TEST_BIN -L "$LSWS_HOME/$arg"
- if [ $? -eq 0 ]; then
- rm -f "$LSWS_HOME/$arg"
-@@ -750,7 +750,7 @@
- for arg
- do
- cp -f "$LSINSTALL_DIR/$arg" "$LSWS_HOME/$arg.$VERSION"
-- chown "$OWNER" "$LSWS_HOME/$arg.$VERSION"
-+ #chown "$OWNER" "$LSWS_HOME/$arg.$VERSION"
- chmod $PERM "$LSWS_HOME/$arg.$VERSION"
- $TEST_BIN -L "$LSWS_HOME/$arg"
- if [ $? -eq 0 ]; then
-@@ -767,11 +767,11 @@
- umask 022
- if [ $INST_USER = "root" ]; then
- SDIR_OWN="root:$ROOTGROUP"
-- chown $SDIR_OWN $LSWS_HOME
-+ #chown $SDIR_OWN $LSWS_HOME
- else
- SDIR_OWN=$DIR_OWN
- fi
-- sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc"
-+ #sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc"
-
- OWNER=$1
- PERM=$2
-@@ -782,7 +782,7 @@
- if [ ! -f "$LSWS_HOME/$arg" ]; then
- cp "$LSINSTALL_DIR/$arg" "$LSWS_HOME/$arg"
- fi
-- chown "$OWNER" "$LSWS_HOME/$arg"
-+ #chown "$OWNER" "$LSWS_HOME/$arg"
- chmod $PERM "$LSWS_HOME/$arg"
- done
- }
-@@ -797,7 +797,7 @@
- for arg
- do
- cp -R "$LSINSTALL_DIR/$arg/"* "$LSWS_HOME/$arg/"
-- chown -R "$OWNER" "$LSWS_HOME/$arg/"*
-+ #chown -R "$OWNER" "$LSWS_HOME/$arg/"*
- #chmod -R $PERM $LSWS_HOME/$arg/*
- done
- }
-@@ -816,7 +816,7 @@
- do
- if [ -d "$LSINSTALL_DIR/$arg" ]; then
- cp -R "$LSINSTALL_DIR/$arg/"* "$LSWS_HOME/$arg.$VERSION/"
-- chown -R "$OWNER" "$LSWS_HOME/$arg.$VERSION"
-+ #chown -R "$OWNER" "$LSWS_HOME/$arg.$VERSION"
- $TEST_BIN -L "$LSWS_HOME/$arg"
- if [ $? -eq 0 ]; then
- rm -f "$LSWS_HOME/$arg"
-@@ -841,7 +841,7 @@
- if [ -f "$LSINSTALL_DIR/$arg" ]; then
-
- cp -f "$LSINSTALL_DIR/$arg" "$LSWS_HOME/$arg.$VERSION"
-- chown "$OWNER" "$LSWS_HOME/$arg.$VERSION"
-+ #chown "$OWNER" "$LSWS_HOME/$arg.$VERSION"
- chmod $PERM "$LSWS_HOME/$arg.$VERSION"
- $TEST_BIN -L "$LSWS_HOME/$arg"
- if [ $? -eq 0 ]; then
-@@ -873,11 +873,11 @@
-
- create_lsadm()
- {
-- groupadd lsadm
-+ #groupadd lsadm
- #1>/dev/null 2>&1
- lsadm_gid=`grep "^lsadm:" /etc/group | awk -F : '{ print $3; }'`
-- useradd -g $lsadm_gid -d / -r -s /sbin/nologin lsadm
-- usermod -a -G $WS_GROUP lsadm
-+ #useradd -g $lsadm_gid -d / -r -s /sbin/nologin lsadm
-+ #usermod -a -G $WS_GROUP lsadm
- #1>/dev/null 2>&1
-
- }
-@@ -950,12 +950,12 @@
- CONF_OWN="lsadm:lsadm"
- fi
- SDIR_OWN="root:$ROOTGROUP"
-- chown $SDIR_OWN $LSWS_HOME
-+ #chown $SDIR_OWN $LSWS_HOME
- else
- SDIR_OWN=$DIR_OWN
- fi
-- sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc"
-- sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo"
-+ #sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc"
-+ #sed "s:%LSWS_CTRL%:$LSWS_HOME/bin/lswsctrl:" "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo.in" > "$LSINSTALL_DIR/admin/misc/lsws.rc.gentoo"
- if [ -d "$LSWS_HOME/admin/html.$VERSION" ]; then
- rm -rf "$LSWS_HOME/admin/html.$VERSION"
- fi
-@@ -967,10 +967,7 @@
- util_mkdir "$CONF_OWN" $SDIR_MOD conf conf/cert conf/templates conf/vhosts conf/vhosts/Example admin/conf admin/tmp phpbuild
- util_mkdir "$SDIR_OWN" $SDIR_MOD cgid admin/cgid admin/cgid/secret
- util_mkdir "$DIR_OWN" $SDIR_MOD tmp/ocspcache
-- chgrp $WS_GROUP $LSWS_HOME/admin/tmp $LSWS_HOME/admin/cgid $LSWS_HOME/cgid
- chmod g+x $LSWS_HOME/admin/tmp $LSWS_HOME/admin/cgid $LSWS_HOME/cgid
-- chown $CONF_OWN $LSWS_HOME/admin/tmp/sess_* 1>/dev/null 2>&1
-- chown $DIR_OWN $LSWS_HOME/cachedata
- chown $DIR_OWN $LSWS_HOME/autoupdate
- util_mkdir "$SDIR_OWN" $DIR_MOD Example
-
-@@ -993,7 +990,6 @@
-
- util_ccpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/lsperld.fpl fcgi-bin/RackRunner.rb fcgi-bin/lsnode.js
- util_cpfile "$SDIR_OWN" $EXEC_MOD fcgi-bin/RailsRunner.rb fcgi-bin/RailsRunner.rb.2.3
-- util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/rc-inst.sh admin/misc/admpass.sh admin/misc/rc-uninst.sh admin/misc/uninstall.sh admin/misc/lsws.rc admin/misc/lsws.rc.gentoo admin/misc/enable_phpa.sh admin/misc/mgr_ver.sh admin/misc/gzipStatic.sh admin/misc/fp_install.sh admin/misc/create_admin_keypair.sh admin/misc/awstats_install.sh admin/misc/update.sh admin/misc/cleancache.sh admin/misc/lsup.sh admin/misc/testbeta.sh
- util_cpfile "$SDIR_OWN" $EXEC_MOD admin/misc/ap_lsws.sh.in admin/misc/build_ap_wrapper.sh admin/misc/cpanel_restart_httpd.in admin/misc/build_admin_php.sh admin/misc/convertxml.sh
- util_cpfile "$SDIR_OWN" $DOC_MOD admin/misc/gdb-bt admin/misc/htpasswd.php admin/misc/php.ini admin/misc/genjCryptionKeyPair.php admin/misc/purge_cache_byurl.php
- util_cpfile "$SDIR_OWN" $DOC_MOD admin/misc/convertxml.php
-@@ -1047,7 +1043,6 @@
- util_cp_htaccess "$SDIR_OWN" $DOC_MOD Example/html
- fi
-
-- chown -R "$CONF_OWN" "$LSWS_HOME/conf/"
- chmod -R 0755 "$LSWS_HOME/conf/"
- chmod 0600 "$LSWS_HOME/conf/httpd_config.conf"
- chmod 0600 "$LSWS_HOME/conf/vhosts/Example/vhconf.conf"
-
diff --git a/testing/litespeed/litespeed.initd b/testing/litespeed/litespeed.initd
deleted file mode 100644
index ee3cf42ecd3..00000000000
--- a/testing/litespeed/litespeed.initd
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/sbin/openrc-run
-
-description="LiteSpeed Web Server"
-
-lshome=/var/lib/litespeed
-
-command=$lshome/bin/lswsctrl
-cfgfile=$lshome/conf/httpd_config.conf
-pidfile=/tmp/lshttpd/lshttpd.pid
-required_files="$cfgfile"
-
-depend() {
- need net
- use dns netmount
-}
-
-start() {
- ebegin "Starting $RC_SVCNAME"
- $command start >/dev/null
- eend $?
-}
-
-stop() {
- ebegin "Stopping $RC_SVCNAME"
- $command stop >/dev/null
- eend $?
-}
-
-restart() {
- ebegin "Restarting $RC_SVCNAME"
- $command restart >/dev/null
- eend $?
-}
diff --git a/testing/litespeed/litespeed.pre-install b/testing/litespeed/litespeed.pre-install
deleted file mode 100644
index eed557467b5..00000000000
--- a/testing/litespeed/litespeed.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S litespeed 2>/dev/null
-adduser -S -D -H -h /var/lib/litespeed -s /sbin/nologin -G litespeed -g litespeed litespeed 2>/dev/null
-
-exit 0
diff --git a/testing/litespeed/ls_lock.patch b/testing/litespeed/ls_lock.patch
deleted file mode 100644
index 8d6a465817f..00000000000
--- a/testing/litespeed/ls_lock.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/include/lsr/ls_lock.h
-+++ b/include/lsr/ls_lock.h
-@@ -52,16 +52,9 @@
- extern "C" {
- #endif
-
--#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__) \
-- || defined(__FreeBSD__ ) || defined(__NetBSD__) || defined(__OpenBSD__)
--#define USE_F_MUTEX
--#define USE_MUTEX_ADAPTIVE
--
--#else
- #undef USE_F_MUTEX
- #define USE_MUTEX_LOCK
-
--#endif
- #define USE_ATOMIC_SPIN
-
- #define MAX_FUTEX_SPINCNT 10
---- a/src/lsr/ls_lock.c.orig
-+++ b/src/lsr/ls_lock.c
-@@ -118,11 +118,7 @@
- #else /* defined(USE_MUTEX_ADAPTIVE) */
- /* pthread_mutexattr_settype(&myAttr, PTHREAD_MUTEX_NORMAL); */
- pthread_mutexattr_settype(&myAttr,
--#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)
-- PTHREAD_MUTEX_ERRORCHECK_NP
--#else /* defined(linux) */
- PTHREAD_MUTEX_ERRORCHECK
--#endif /* defined(linux) */
- );
- #endif /* defined(USE_MUTEX_ADAPTIVE) */
- /* pthread_mutexattr_settype(&myAttr, PTHREAD_MUTEX_RECURSIVE); */
-
diff --git a/testing/litespeed/thread.patch b/testing/litespeed/thread.patch
deleted file mode 100644
index 19efff09761..00000000000
--- a/testing/litespeed/thread.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/src/thread/thread.h
-+++ b/src/thread/thread.h
-@@ -86,12 +86,6 @@
-
- int timedJoin(void **pRetVal, struct timespec *timeout)
- { return pthread_timedjoin_np(m_tid, pRetVal, timeout); }
--
-- int attrSetAffinity(size_t cpusetsize, const cpu_set_t *cpuset)
-- { return pthread_attr_setaffinity_np(&m_attr, cpusetsize, cpuset); }
--
-- int attrGetAffinity(size_t cpusetsize, cpu_set_t *pCpuSet)
-- { return pthread_attr_getaffinity_np(&m_attr, cpusetsize, pCpuSet); }
- #endif
-
- int attrSetDetachState(int detachstate)
---- a/src/thread/pthreadmutex.cpp
-+++ b/src/thread/pthreadmutex.cpp
-@@ -16,19 +16,6 @@
- * along with this program. If not, see http://www.gnu.org/licenses/. *
- *****************************************************************************/
- #include "pthreadmutex.h"
--#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__gnu_linux__)) && !defined( NDEBUG )
-
--#ifndef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
--# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-- {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __LOCK_INITIALIZER}
--#endif
--
--pthread_mutex_t PThreadMutex::s_proto =
-- PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
--
--#else
--
- pthread_mutex_t PThreadMutex::s_proto = PTHREAD_MUTEX_INITIALIZER;
--
--#endif
-
diff --git a/testing/litterbox/APKBUILD b/testing/litterbox/APKBUILD
new file mode 100644
index 00000000000..e596d6f3b75
--- /dev/null
+++ b/testing/litterbox/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=litterbox
+pkgver=1.9
+pkgrel=1
+pkgdesc="IRC logger"
+arch="all"
+url="https://git.causal.agency/litterbox/"
+license="GPL-3.0-or-later"
+options="!check" # v1.7 not a real test suite
+makedepends="libretls-dev sqlite-dev"
+subpackages="$pkgname-doc"
+source="https://git.causal.agency/litterbox/snapshot/litterbox-$pkgver.tar.gz"
+
+build() {
+ # configure script is not gnu-autoconf
+ ./configure \
+ --prefix=/usr \
+ --bindir=/usr/bin \
+ --mandir=/usr/share/man
+ make all
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b2af91635118010ba5093027bffadbbdaa4e6e80f953881f1fb416ebff410897b9a1259e9cc7ddd33df6334b97704b3992979a85f0310e0dabde6af41b56149a litterbox-1.9.tar.gz
+"
diff --git a/testing/livestreamer/APKBUILD b/testing/livestreamer/APKBUILD
deleted file mode 100644
index 982b796d436..00000000000
--- a/testing/livestreamer/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=livestreamer
-pkgver=1.12.2
-pkgrel=8
-pkgdesc="Command-line utility that extracts streams from various services and pipes them into a video player of choice"
-url="https://docs.livestreamer.io/"
-arch="noarch"
-license="BSD-2-Clause AND MIT"
-depends="py3-requests rtmpdump py3-setuptools py3-pycryptodome py3-librtmp"
-makedepends="py3-sphinx"
-source="$pkgname-$pkgver.tar.gz::https://github.com/chrippa/livestreamer/archive/v$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --root="$pkgdir" --optimize=1
-}
-
-sha512sums="547886b494a7562e479cf31db15b5b02545f2ebc5f8b70d0fe0006d3748c5c9f20517638c7642377e2bdc4083738829eacf272e8d68f332da212bf65300f5d12 livestreamer-1.12.2.tar.gz"
diff --git a/testing/lizardfs/APKBUILD b/testing/lizardfs/APKBUILD
new file mode 100644
index 00000000000..b9ab14c9e29
--- /dev/null
+++ b/testing/lizardfs/APKBUILD
@@ -0,0 +1,160 @@
+# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
+# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
+pkgname=lizardfs
+pkgver=3.13.0
+pkgrel=13
+pkgdesc="Highly reliable, scalable and efficient distributed file system"
+url="https://github.com/lizardfs/lizardfs/"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ asciidoc
+ boost-dev
+ cmake
+ db-dev
+ fuse-dev
+ fuse3-dev
+ isa-l-dev
+ judy-dev
+ libpcap-dev
+ libtool
+ linux-pam-dev
+ python3-dev
+ samurai
+ spdlog-dev
+ thrift-dev
+ zlib-dev
+ "
+checkdepends="gtest-dev"
+pkgusers="mfs"
+pkggroups="mfs"
+options="!check" # need to setup a virtual machine
+install="$pkgname.pre-install"
+subpackages="
+ $pkgname-doc
+ $pkgname-client
+ $pkgname-master
+ $pkgname-chunkserver
+ $pkgname-metalogger
+ $pkgname-cgi::noarch
+ $pkgname-cgiserv::noarch
+ $pkgname-metalogger-openrc:metalogger_openrc
+ $pkgname-master-openrc:master_openrc
+ $pkgname-chunkserver-openrc:chunkserver_openrc
+ $pkgname-cgiserv-openrc:cgiserv_openrc
+ $pkgname-bash-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/lizardfs/lizardfs/archive/refs/tags/$pkgver-rc3.tar.gz
+ gcc13.patch
+ $pkgname-uraft.patch
+ $pkgname-cgiserv.initd
+ $pkgname-chunkserver.initd
+ $pkgname-cgiserv.confd
+ $pkgname-master.initd
+ $pkgname-metalogger.initd
+ $pkgname-iostat-header.patch
+ $pkgname-cstdio-header.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver-rc3"
+
+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=MinSizeRel \
+ -DENABLE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DENABLE_DOCS=NO \
+ -DENABLE_JEMALLOC=YES \
+ -DCMAKE_INSTALL_PREFIX=/ \
+ -DENABLE_POLONAISE=OFF \
+ -DTHROW_INSTEAD_OF_ABORT=YES \
+ -Wno-dev \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ chown -R mfs:mfs "$pkgdir"/var/lib/lizardfs
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion
+ mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions
+}
+
+master() {
+ pkgdesc="LizardFS master server"
+ depends="lizardfs=$pkgver-r$pkgrel"
+ amove \
+ usr/sbin/mfsmaster \
+ usr/sbin/mfsrestoremaster \
+ usr/sbin/mfsmetadump \
+ usr/sbin/mfsmetarestore \
+ var/lib/lizardfs/metadata.mfs.empty
+ chown -R $pkgusers:$pkggroups "$subpkgdir"/var/lib/lizardfs
+}
+
+master_openrc() {
+ default_openrc
+ install -Dm755 "$srcdir"/$pkgname-master.initd "$subpkgdir"/etc/init.d/$pkgname-master
+}
+
+metalogger() {
+ pkgdesc="LizardFS metadata replication server"
+ depends="lizardfs=$pkgver-r$pkgrel"
+ amove usr/sbin/mfsmetalogger
+}
+
+metalogger_openrc() {
+ default_openrc
+ install -Dm755 "$srcdir"/$pkgname-metalogger.initd "$subpkgdir"/etc/init.d/$pkgname-metalogger
+}
+
+chunkserver() {
+ pkgdesc="LizardFS data server"
+ depends="lizardfs=$pkgver-r$pkgrel"
+ amove usr/sbin/mfschunkserver
+}
+
+chunkserver_openrc() {
+ default_openrc
+ install -Dm755 "$srcdir"/$pkgname-chunkserver.initd "$subpkgdir"/etc/init.d/$pkgname-chunkserver
+}
+
+client() {
+ pkgdesc="LizardFS client"
+ depends="fuse fuse3"
+ amove usr/bin/*
+
+}
+
+cgi() {
+ pkgdesc="LizardFS CGI Monitor"
+ depends="python3"
+ amove usr/share/mfscgi
+}
+
+cgiserv() {
+ pkgdesc="Simple CGI-capable HTTP server to run LizardFS CGI Monitor"
+ depends="$pkgname-cgi=$pkgver-r$pkgrel"
+ amove usr/sbin/mfscgiserv
+}
+
+cgiserv_openrc() {
+ default_openrc
+ install -Dm755 "$srcdir"/$pkgname-cgiserv.initd "$subpkgdir"/etc/init.d/$pkgname-cgiserv
+ install -Dm755 "$srcdir"/$pkgname-cgiserv.confd "$subpkgdir"/etc/conf.d/$pkgname-cgiserv
+}
+
+sha512sums="
+5e57c0704d30d1e4f7fd7c2ac6ed889d0075d86ad20536fc927f4fe0d228b907c4ac2697d3c17d0313853f27506fdf6441bf9559d3ed79ae95f51595ec3363d9 lizardfs-3.13.0.tar.gz
+b0c13076aeef2489897ab73138101fbbd239ae4c7375bb45dc280b42dd5d7a761a46a97b64f3b5274c99a4318758024db593cb91a0d9a82e58b71ef45b20bf4c gcc13.patch
+ec38f06048c2719bba1a8e751411468270e9bc82c955c897dde21cd1e428be686e2b3ae680a57813370ec89e264f66132acd27f84f2ade6f5a63c0b8e2ece256 lizardfs-uraft.patch
+c698aff4de9aeb76202a809e44ac8d0ec9c6348a806b1c813c2a40858339b1c139a480a9c5aff40bf2c9821883c6c0dfeabb010f3faa5746673235f0fb3c5a76 lizardfs-cgiserv.initd
+56a714f3d29030ca12dc1859a1121b2a89606a2ccccec65481e2eb0b846757dea71dfe5f5a6d648b32e731d14b7d7725f79703851365b0862d7eb415a5f49dfb lizardfs-chunkserver.initd
+b5c625f0004df33889de60ddad37e41f3acf081b37247606a1544e5f63354e121fe4cce511a6e60f4f2c0305155faf0614b8a4bce7267929fe68a1a4b546b582 lizardfs-cgiserv.confd
+a041fa324d37bda098ad65e9d6507f281ed388471956ca79aa33b8b0d1c4a9d528662a2410c47f3856183d6378ac7fb417c3d7ec314f624e7e5dac7c5e4247f0 lizardfs-master.initd
+8e73a7715e7a010d435efb9058ed67aad1caa95c840d3f1fae6bafd2a700cedbb0244d29363929d8e8d9a2036a2e0b173c0c2f7b52529ba4088e1296479fc0f5 lizardfs-metalogger.initd
+fed14323975cd2d916bcc78d15ec105176106024faa6587a5b6dc3f2c7c5cf3632491babf2865459ac614ba885ee79e301aac4f19c27c4f04780a4a9d94e9312 lizardfs-iostat-header.patch
+b91f07af8a1d82ac9530e0ddc5984ee1f3cba9af7d6e9bf2093d04fbd0862d98860a2db2bd13fe6e0eea0cd7bfd2254a8973a5a398402c1682c51b54267b82cf lizardfs-cstdio-header.patch
+"
diff --git a/testing/lizardfs/gcc13.patch b/testing/lizardfs/gcc13.patch
new file mode 100644
index 00000000000..40438422b35
--- /dev/null
+++ b/testing/lizardfs/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/src/common/io_limits_config_loader.h b/src/common/io_limits_config_loader.h
+index 411f986..7554792 100644
+--- a/src/common/io_limits_config_loader.h
++++ b/src/common/io_limits_config_loader.h
+@@ -19,6 +19,7 @@
+ #pragma once
+ #include "common/platform.h"
+
++#include <cstdint>
+ #include <istream>
+ #include <map>
+ #include <string>
diff --git a/testing/lizardfs/lizardfs-cgiserv.confd b/testing/lizardfs/lizardfs-cgiserv.confd
new file mode 100644
index 00000000000..b50a6aa77bc
--- /dev/null
+++ b/testing/lizardfs/lizardfs-cgiserv.confd
@@ -0,0 +1,10 @@
+# MooseFS HTTP/CGI server configuration.
+
+# BIND_HOST: local address to listen on
+# default: any
+BIND_HOST="0.0.0.0"
+
+# BIND_PORT: port to listen on
+# default: 9425
+BIND_PORT=9425
+
diff --git a/testing/lizardfs/lizardfs-cgiserv.initd b/testing/lizardfs/lizardfs-cgiserv.initd
new file mode 100644
index 00000000000..fdd01c0257a
--- /dev/null
+++ b/testing/lizardfs/lizardfs-cgiserv.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+PIDFILE=/var/run/mfscgiserv.pid
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting mfs CGI server"
+ start-stop-daemon --start --quiet --exec /usr/sbin/mfscgiserv \
+ --pidfile "${PIDFILE}" --make-pidfile --background \
+ -- -H ${BIND_HOST} -P ${BIND_PORT} -f
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping mfs CGI server"
+ start-stop-daemon --stop -q --pidfile "${PIDFILE}"
+ eend $?
+}
+
diff --git a/testing/lizardfs/lizardfs-chunkserver.initd b/testing/lizardfs/lizardfs-chunkserver.initd
new file mode 100644
index 00000000000..b564270254b
--- /dev/null
+++ b/testing/lizardfs/lizardfs-chunkserver.initd
@@ -0,0 +1,9 @@
+#!/sbin/openrc-run
+
+command=/usr/sbin/mfschunkserver
+
+depend() {
+ need syslog
+ after net
+}
+
diff --git a/testing/lizardfs/lizardfs-cstdio-header.patch b/testing/lizardfs/lizardfs-cstdio-header.patch
new file mode 100644
index 00000000000..af55d6dbdda
--- /dev/null
+++ b/testing/lizardfs/lizardfs-cstdio-header.patch
@@ -0,0 +1,32 @@
+From e418677e7d09b6a44805cbca177a446016eea23f Mon Sep 17 00:00:00 2001
+From: Patryk <patryk@lizardfs.com>
+Date: Sun, 23 Aug 2020 09:52:26 +0200
+Subject: [PATCH] build: Fix compilation for gcc-10
+
+There was a lacking include for cstdio in daemonize.cc.
+This header is no longer included implicitly since gcc-10,
+hence the compilation error.
+See: https://github.com/CopernicaMarketingSoftware/PHP-CPP/pull/440
+
+Change-Id: I5b22d4759e100e270aa0732d32407b0edc16f500
+---
+ src/mount/fuse/daemonize.cc | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/mount/fuse/daemonize.cc b/src/mount/fuse/daemonize.cc
+index 8d0ccf1c4..7ba3eeadc 100644
+--- a/src/mount/fuse/daemonize.cc
++++ b/src/mount/fuse/daemonize.cc
+@@ -19,9 +19,10 @@
+ #include "common/platform.h"
+ #include "daemonize.h"
+
+-#include <errno.h>
++#include <cerrno>
++#include <cstdio>
++#include <cstring>
+ #include <fcntl.h>
+-#include <string.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
diff --git a/testing/lizardfs/lizardfs-iostat-header.patch b/testing/lizardfs/lizardfs-iostat-header.patch
new file mode 100644
index 00000000000..2ce24025600
--- /dev/null
+++ b/testing/lizardfs/lizardfs-iostat-header.patch
@@ -0,0 +1,13 @@
+diff --git a/src/chunkserver/iostat.h b/src/chunkserver/iostat.h
+index e1a50e97..09a04c67 100644
+--- a/src/chunkserver/iostat.h
++++ b/src/chunkserver/iostat.h
+@@ -28,6 +28,7 @@
+ #include <algorithm>
+ #include <unordered_map>
+ #include <vector>
++#include <sys/sysmacros.h>
+
+ #include <sys/stat.h>
+ #include <sys/types.h>
+
diff --git a/testing/lizardfs/lizardfs-master.initd b/testing/lizardfs/lizardfs-master.initd
new file mode 100644
index 00000000000..e8c9217b4f9
--- /dev/null
+++ b/testing/lizardfs/lizardfs-master.initd
@@ -0,0 +1,8 @@
+#!/sbin/openrc-run
+
+command=/usr/sbin/mfsmaster
+
+depend() {
+ need syslog
+ after net
+}
diff --git a/testing/lizardfs/lizardfs-metalogger.initd b/testing/lizardfs/lizardfs-metalogger.initd
new file mode 100644
index 00000000000..72e9c58d4ba
--- /dev/null
+++ b/testing/lizardfs/lizardfs-metalogger.initd
@@ -0,0 +1,8 @@
+#!/sbin/openrc-run
+
+command=/usr/sbin/mfsmetalogger
+
+depend() {
+ need syslog
+ after net
+}
diff --git a/testing/lizardfs/lizardfs-uraft.patch b/testing/lizardfs/lizardfs-uraft.patch
new file mode 100644
index 00000000000..8f2ba81f48a
--- /dev/null
+++ b/testing/lizardfs/lizardfs-uraft.patch
@@ -0,0 +1,94 @@
+From be9ae3a1943e7164ac093fe46612b94fa9fbd69f Mon Sep 17 00:00:00 2001
+From: Marcin Konarski <marcin.konarski@lizardfs.com>
+Date: Thu, 27 May 2021 14:27:17 +0200
+Subject: [PATCH] all: Fix (release) build warnings from GCC 11.1.1
+
+Change-Id: I164403e5fd866828b2970a23e928a495630405a7
+---
+ src/common/small_vector_unittest.cc | 3 +++
+ src/master/matoclserv.cc | 2 +-
+ src/tools/file_info.cc | 3 +++
+ src/uraft/main.cc | 1 +
+ src/uraft/uraft.cc | 1 +
+ src/uraft/uraftcontroller.cc | 1 +
+ 6 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/src/common/small_vector_unittest.cc b/src/common/small_vector_unittest.cc
+index 488a940e6..2da7d6640 100644
+--- a/src/common/small_vector_unittest.cc
++++ b/src/common/small_vector_unittest.cc
+@@ -83,7 +83,10 @@ TEST(SmallVectorTest, EraseTest) {
+ small_vector<int16_t, 7> vec_A;
+ std::vector<int16_t> vec_B;
+
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wstringop-overflow"
+ vec_A.insert(vec_A.begin(), range.begin(), range.end());
++#pragma GCC diagnostic pop
+ vec_B.insert(vec_B.begin(), range.begin(), range.end());
+
+ vec_A.erase(vec_A.begin() + 40);
+diff --git a/src/master/matoclserv.cc b/src/master/matoclserv.cc
+index 324633076..1645fc244 100644
+--- a/src/master/matoclserv.cc
++++ b/src/master/matoclserv.cc
+@@ -2891,7 +2891,7 @@ void matoclserv_fuse_read_chunk(matoclserventry *eptr, PacketHeader header, cons
+ }
+
+ void matoclserv_chunks_info(matoclserventry *eptr, const uint8_t *data, uint32_t length) {
+- uint32_t message_id, inode, chunk_index, chunk_count, uid, gid;
++ uint32_t message_id{0}, inode, chunk_index, chunk_count, uid, gid;
+ PacketVersion version;
+ uint8_t status;
+ std::vector<ChunkWithAddressAndLabel> chunks;
+diff --git a/src/tools/file_info.cc b/src/tools/file_info.cc
+index fa03f591e..50a381229 100644
+--- a/src/tools/file_info.cc
++++ b/src/tools/file_info.cc
+@@ -120,7 +120,10 @@ static int chunks_info(const char *file_name, int fd, uint32_t inode, bool long_
+ chunk_index, chunk.chunk_id, chunk.chunk_version, chunk.chunk_id, chunk.chunk_version);
+ ChunkCopiesCalculator chunk_calculator;
+ for(const auto &part : chunk.chunk_parts) {
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
+ chunk_calculator.addPart(part.chunkType, MediaLabel::kWildcard);
++#pragma GCC diagnostic pop
+ }
+ chunk_calculator.evalRedundancyLevel();
+ if (chunk.chunk_parts.size() > 0) {
+diff --git a/src/uraft/main.cc b/src/uraft/main.cc
+index 6e1be1214..7a05fdb99 100644
+--- a/src/uraft/main.cc
++++ b/src/uraft/main.cc
+@@ -11,6 +11,7 @@
+ #include <fstream>
+ #include <iostream>
+
++#define BOOST_BIND_GLOBAL_PLACEHOLDERS
+ #include <boost/bind.hpp>
+ #include <boost/lexical_cast.hpp>
+ #include <boost/program_options.hpp>
+diff --git a/src/uraft/uraft.cc b/src/uraft/uraft.cc
+index f6439b82f..05d88d122 100644
+--- a/src/uraft/uraft.cc
++++ b/src/uraft/uraft.cc
+@@ -6,6 +6,7 @@
+ #include <ifaddrs.h>
+ #endif
+
++#define BOOST_BIND_GLOBAL_PLACEHOLDERS
+ #include <boost/bind.hpp>
+ #include <boost/date_time/posix_time/posix_time.hpp>
+
+diff --git a/src/uraft/uraftcontroller.cc b/src/uraft/uraftcontroller.cc
+index f46178fd1..53af6e1a8 100644
+--- a/src/uraft/uraftcontroller.cc
++++ b/src/uraft/uraftcontroller.cc
+@@ -10,6 +10,7 @@
+ #include <iostream>
+ #include <stdexcept>
+
++#define BOOST_BIND_GLOBAL_PLACEHOLDERS
+ #include <boost/bind.hpp>
+ #include <boost/lexical_cast.hpp>
+ #include <boost/version.hpp>
diff --git a/testing/lizardfs/lizardfs.pre-install b/testing/lizardfs/lizardfs.pre-install
new file mode 100644
index 00000000000..83ce5445756
--- /dev/null
+++ b/testing/lizardfs/lizardfs.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S mfs 2>/dev/null
+adduser -S -D -H -h /var/lib/mfs -s /sbin/nologin -G mfs -g mfs mfs \
+ 2>/dev/null
+
+exit 0
diff --git a/testing/lkrg/AKMBUILD b/testing/lkrg/AKMBUILD
new file mode 100644
index 00000000000..7f5d2d278b4
--- /dev/null
+++ b/testing/lkrg/AKMBUILD
@@ -0,0 +1,3 @@
+modname=lkrg
+modver=0.9.6
+built_modules='lkrg.ko'
diff --git a/testing/lkrg/APKBUILD b/testing/lkrg/APKBUILD
new file mode 100644
index 00000000000..f0eddaa344c
--- /dev/null
+++ b/testing/lkrg/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Jo Coscia <jo@jcoscia.com>
+# Maintainer: Jo Coscia <jo@jcoscia.com>
+pkgname=lkrg
+pkgver=0.9.6
+pkgrel=0
+pkgdesc="Linux Kernel Runtime Guard kernel module (AKMS)"
+url="https://lkrg.org/"
+arch="x86 x86_64 aarch64 armhf armv7"
+license="GPL-2.0-only"
+depends="akms"
+install="$pkgname.post-deinstall"
+subpackages="$pkgname-doc"
+source="https://lkrg.org/download/lkrg-$pkgver.tar.gz
+ AKMBUILD"
+options="!check" # no test suite
+
+package() {
+ install -Dm644 "$srcdir"/AKMBUILD "$pkgdir"/usr/src/lkrg/AKMBUILD
+ install -Dm644 "$builddir"/Makefile "$pkgdir"/usr/src/lkrg/Makefile
+ install -Dm644 "$builddir"/scripts/bootup/lkrg.conf "$pkgdir"/etc/sysctl.d/lkrg.conf
+ install -Dm644 "$builddir"/LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ cp -Rp "$builddir"/src "$pkgdir"/usr/src/lkrg/src
+ chmod -R u=rwX,go=rX-w "$pkgdir"/usr/src/lkrg/
+}
+
+doc() {
+ pkgdesc="Documentation for $pkgname"
+ mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"
+ mv "$builddir"/CHANGES "$subpkgdir"/usr/share/doc/lkrg/
+ mv "$builddir"/CONCEPTS "$subpkgdir"/usr/share/doc/lkrg/
+ mv "$builddir"/PATREONS "$subpkgdir"/usr/share/doc/lkrg/
+ mv "$builddir"/PERFORMANCE "$subpkgdir"/usr/share/doc/lkrg/
+ mv "$builddir"/README "$subpkgdir"/usr/share/doc/lkrg/
+ chmod -R u=rwX,go=rX-w "$subpkgdir"/usr/share/doc/lkrg/
+}
+
+sha512sums="
+08c109ffbe7f15ff60ed1958640f43194b96b16c75bd91c1e209e2f93a2b97f60f0b9ed00ccc13effbbf06092fc3c432dfb55f94b9e181a6cd2b30a1ea8ee653 lkrg-0.9.6.tar.gz
+e9174654cac18a8cbb4dc8e46a93bd19620ab355bf50563660980a525e87eb1d72b9fdece9fac5749c8ffad7ea38940da8e5bd950439695e2f50d82eebd18b5c AKMBUILD"
diff --git a/testing/lkrg/lkrg.post-deinstall b/testing/lkrg/lkrg.post-deinstall
new file mode 100644
index 00000000000..3abf364e19f
--- /dev/null
+++ b/testing/lkrg/lkrg.post-deinstall
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/sbin/akms uninstall lkrg
diff --git a/testing/llmnrd/APKBUILD b/testing/llmnrd/APKBUILD
index ef8a1b52317..5ba2ee26f49 100644
--- a/testing/llmnrd/APKBUILD
+++ b/testing/llmnrd/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Nathan Caldwell <saintdev@gmail.com>
# Maintainer: Nathan Caldwell <saintdev@gmail.com>
pkgname=llmnrd
-pkgver=0.6
-pkgrel=0
+pkgver=0.7
+pkgrel=1
pkgdesc="Link-Local Multicast Resolution (LLMNR) Daemon for Linux"
url="https://github.com/tklauser/llmnrd"
arch="all"
@@ -11,7 +11,7 @@ makedepends="linux-headers"
subpackages="$pkgname-doc $pkgname-openrc"
# llmnrd has no test suite
options="!check"
-source="https://github.com/tklauser/llmnrd/releases/download/v$pkgver/llmnrd-$pkgver.tar.bz2
+source="llmnrd-$pkgver.tar.gz::https://github.com/tklauser/llmnrd/archive/v$pkgver.tar.gz
llmnrd.initd
llmnrd.confd"
@@ -28,6 +28,8 @@ package() {
"$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="855fc1bda87bfa35ffb8d04e3d3851282668cd334a59923bdeec73e19f87b7c94cc4e14d9e3fa70e9b95a6d9749d4521b5ca657e17263b03bc25375137723cec llmnrd-0.6.tar.bz2
+sha512sums="
+9376f42b51a54eea50e990b29b3c1697353da90c3d80c4a756a66828c0d22e969f43fa9798a12be1ab4a7cbe641b1d40bc8d2fb9364af755492077020bb43010 llmnrd-0.7.tar.gz
10466be3e64d69999db9f026640ae44a86f0bcfa8e2fd2e07292cc9bb7c5aa6877f71338b4b0532e7a5415a6e1473252943e407cf2cc78ba4b3efd860bc75435 llmnrd.initd
-a99c34e6c67f47adbaa828378e257c28b40882be9e113dc3ec9bd6ab7b65c9440881665c9d0331117eef31bcec5e22c4d2fdd91cbaf3d079acc38b345469c9f5 llmnrd.confd"
+a99c34e6c67f47adbaa828378e257c28b40882be9e113dc3ec9bd6ab7b65c9440881665c9d0331117eef31bcec5e22c4d2fdd91cbaf3d079acc38b345469c9f5 llmnrd.confd
+"
diff --git a/testing/lmdbxx/APKBUILD b/testing/lmdbxx/APKBUILD
deleted file mode 100644
index 36d66ea9691..00000000000
--- a/testing/lmdbxx/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=lmdbxx
-pkgver=0.9.14.0
-_commit=0b43ca87d8cfabba392dfe884eb1edb83874de02
-pkgrel=2
-pkgdesc="C++11 wrapper for the LMDB database library"
-options="!check"
-url="http://lmdbxx.sourceforge.net"
-arch="noarch"
-license="Unlicense"
-makedepends="doxygen"
-# docs are available but require pandoc to be built which isn't packaged for Alpine
-source="$pkgname-$_commit.tar.gz::https://github.com/drycpp/lmdbxx/archive/$_commit.tar.gz"
-builddir="$srcdir"/lmdbxx-"$_commit"
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install
-}
-
-sha512sums="025a945288a398b09549c91c98509a57912f8614c14b476e7c8d4fb0dc8fc1288fa1b3a33567cccea474277a1c48b3701f2df31e8a6acc851eb9549a9822f074 lmdbxx-0b43ca87d8cfabba392dfe884eb1edb83874de02.tar.gz"
diff --git a/testing/lnav/APKBUILD b/testing/lnav/APKBUILD
deleted file mode 100644
index aec27f4aed1..00000000000
--- a/testing/lnav/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Heiko Bernloehr <Heiko.Bernloehr@FreeIT.de>
-pkgname="lnav"
-pkgver="0.8.5"
-pkgrel=1
-pkgdesc="advanced log file navigator and viewer"
-url="https://lnav.org"
-arch="all"
-options="!check" # failed on some tests
-license="BSD-2-Clause"
-makedepends="libbsd-dev bzip2-dev zlib-dev sqlite-dev readline-dev pcre-dev
- ncurses-dev bash"
-subpackages="$pkgname-doc"
-source="https://github.com/tstack/lnav/releases/download/v$pkgver/lnav-$pkgver.tar.gz"
-builddir="$srcdir/lnav-$pkgver"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="fbb61d454dc89388aeaaeca6ba1366f84cbd75260ef8e2f26a4208ab22f175886438dad7f40e4c21089209c7713c1ebcc3a722a248083c8d55f264cf139a79fe lnav-0.8.5.tar.gz"
diff --git a/testing/lockrun/APKBUILD b/testing/lockrun/APKBUILD
index 4c45bc312f8..96dfdd6a96c 100644
--- a/testing/lockrun/APKBUILD
+++ b/testing/lockrun/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Mikhail Snetkov <msnetkov@navikey.ru>
pkgname=lockrun
pkgver=1.1.3
-pkgrel=0
+pkgrel=1
pkgdesc="Run cron job with overrun protection"
url="http://unixwiz.net/tools/lockrun.html"
arch="all"
diff --git a/testing/log4cpp/APKBUILD b/testing/log4cpp/APKBUILD
index f94fc6b751c..5d440a99a21 100644
--- a/testing/log4cpp/APKBUILD
+++ b/testing/log4cpp/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Hidde van der Heide <hvanderheide@nexuz.net>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=log4cpp
-pkgver=1.1.3
-pkgrel=2
+pkgver=1.1.4
+pkgrel=1
pkgdesc="Log library for C++"
-url="http://log4cpp.sourceforge.net/"
+url="https://log4cpp.sourceforge.net/"
arch="all"
license="LGPL-2.1-or-later"
subpackages="$pkgname-dev"
@@ -13,11 +13,12 @@ builddir="$srcdir/$pkgname"
prepare() {
default_prepare
+
update_config_guess
+ update_config_sub
}
build() {
- cd "$builddir"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -31,13 +32,13 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="88e5e10bce8d7d6421c3dcf14aa25385159c4ae52becdc1f3666ab86e1ad3f633786d82afe398c517d4faaa57b3e7b7c0b524361d81c6b9040dbded5cecc19de log4cpp-1.1.3.tar.gz"
+sha512sums="
+0cdbd46ccd048d70bea3c35d22080dc5dd21fc3b9c415fe464847e60775954f57e9c8344506f0f94f16e90e8bdaa9cc6d84d3aa65191501e52ee8dfc639f0398 log4cpp-1.1.4.tar.gz
+"
diff --git a/testing/log4cxx/APKBUILD b/testing/log4cxx/APKBUILD
index 8bd152db3ed..31860573a6e 100644
--- a/testing/log4cxx/APKBUILD
+++ b/testing/log4cxx/APKBUILD
@@ -1,52 +1,45 @@
# Contributor: Russ Webber <russ@rw.id.au>
# Maintainer: Russ Webber <russ@rw.id.au>
pkgname=log4cxx
-pkgver=0.10.0
-pkgrel=0
-pkgdesc="A C++ port of the Log4j logging framework."
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="C++ port of the Log4j logging framework"
url="http://logging.apache.org/log4cxx"
license="Apache-2.0"
-options="!check" # testsuite in 0.10.0 does not work on alpine
-subpackages="$pkgname-static $pkgname-dev"
+options="!check" # testsuite in 1.1.0 does not work on alpine
+subpackages="$pkgname-dev"
arch="all"
-depends_dev="$pkgname-static"
-makedepends="autoconf automake libtool zip libxml2-dev apr-util-dev"
-source="https://archive.apache.org/dist/logging/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz
- $pkgname-GPGKEYS::https://archive.apache.org/dist/logging/KEYS
- log4cxx-0.10.0-missing_includes.patch
- log4cxx-0.10.0-narrowing-fixes-from-upstream.patch"
+makedepends="cmake zip libxml2-dev apr-util-dev samurai"
+source="https://archive.apache.org/dist/logging/log4cxx/$pkgver/apache-log4cxx-$pkgver.tar.gz"
builddir="$srcdir/apache-$pkgname-$pkgver"
-prepare() {
- update_config_guess
- default_prepare
-}
+# secfixes:
+# 1.1.0-r0:
+# - CVE-2023-31038
build() {
- # if configure is autogenerated make install seems to fail #./autogen.sh
- # does not configure if specifying --build=$CBUILD \ --host=$CHOST \
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ $CMAKE_CROSSOPTS
+ cmake --build build
}
check() {
- make check
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest --test-dir build -E sizebasedrollingtest
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-# Used by: https://github.com/alpinelinux/abuild/pull/57
-#gpg_signature_extensions="asc"
-#gpgfingerprints="good:748F 15B2 CF9B A8F0 2415 5E6E D7C9 2B70 FA1C 814D"
-
-sha512sums="1c34d80983db5648bc4582ddcf6b4fdefdc6594c2769f95235f5441cd6d03cf279cc8f365e9a687085b113f79ebac9d7d33a54b6aa3b3b808c0e1a56a15ffa37 apache-log4cxx-0.10.0.tar.gz
-3e380b6633cce6f31447c0a6448685d927cb91d8184692d4e420865f5bfc67379e2ae97a7db2c2ad51b543123440827e0d092e84cfdbc8b3652e92d97e08115a log4cxx-GPGKEYS
-14fa0b19516171cbbe2c6220816819fc52cf8f3b3ded5d71966e2f4a71bda9ce1ed8fe7e57745a835e6ac5558631916ed9824d09ec7469d84c7bf99fb4946304 log4cxx-0.10.0-missing_includes.patch
-15b692b37961adbc808e4c10d2719483502f3ac060ee5be248832d4e2a2f76f7d9e120ea9a6bf908230cf230a893964040e54415cca35a12e576d0a5ab1f4176 log4cxx-0.10.0-narrowing-fixes-from-upstream.patch"
+sha512sums="
+66a66eab933a6afd0779e3f73f65afa4fb82481208b591fd7c7c86ded805f50abcd9cdf954bdb49e1e7f5198e6c1c4fff8a7e180ff5fff9491f1946e9ba6fe2b apache-log4cxx-1.1.0.tar.gz
+"
diff --git a/testing/log4cxx/log4cxx-0.10.0-missing_includes.patch b/testing/log4cxx/log4cxx-0.10.0-missing_includes.patch
deleted file mode 100644
index 6834648d09a..00000000000
--- a/testing/log4cxx/log4cxx-0.10.0-missing_includes.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff -Naur apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp apache-log4cxx-0.10.0/src/examples/cpp/console.cpp
---- apache-log4cxx-0.10.0.orig/src/examples/cpp/console.cpp 2008-04-01 00:34:52.000000000 +0200
-+++ apache-log4cxx-0.10.0/src/examples/cpp/console.cpp 2008-05-06 05:40:52.000000000 +0200
-@@ -15,7 +15,10 @@
- * limitations under the License.
- */
-
--#include <stdlib.h>
-+#include <cstdio>
-+#include <cstdlib>
-+#include <cstring>
-+#include <stdint.h>
- #include <log4cxx/logger.h>
- #include <log4cxx/consoleappender.h>
- #include <log4cxx/simplelayout.h>
-diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp
---- apache-log4cxx-0.10.0.orig/src/main/cpp/inputstreamreader.cpp 2008-04-01 00:34:09.000000000 +0200
-+++ apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp 2008-05-06 05:32:31.000000000 +0200
-@@ -21,6 +21,8 @@
- #include <log4cxx/helpers/pool.h>
- #include <log4cxx/helpers/bytebuffer.h>
-
-+#include <cstring>
-+
- using namespace log4cxx;
- using namespace log4cxx::helpers;
-
-diff -Naur apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp
---- apache-log4cxx-0.10.0.orig/src/main/cpp/socketoutputstream.cpp 2008-04-01 00:34:09.000000000 +0200
-+++ apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp 2008-05-06 05:35:55.000000000 +0200
-@@ -20,6 +20,8 @@
- #include <log4cxx/helpers/socket.h>
- #include <log4cxx/helpers/bytebuffer.h>
-
-+#include <cstring>
-+
- using namespace log4cxx;
- using namespace log4cxx::helpers; \ No newline at end of file
diff --git a/testing/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch b/testing/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch
deleted file mode 100644
index e583e7661d1..00000000000
--- a/testing/log4cxx/log4cxx-0.10.0-narrowing-fixes-from-upstream.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-diff --git a/src/main/cpp/locationinfo.cpp b/src/main/cpp/locationinfo.cpp
-index e76ea29..bd22a1d 100644
---- a/src/main/cpp/locationinfo.cpp
-+++ b/src/main/cpp/locationinfo.cpp
-@@ -149,18 +149,21 @@ void LocationInfo::write(ObjectOutputStream& os, Pool& p) const {
- os.writeNull(p);
- } else {
- char prolog[] = {
-- 0x72, 0x00, 0x21, 0x6F, 0x72, 0x67, 0x2E,
-- 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E, 0x6C,
-- 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69,
-- 0x2E, 0x4C, 0x6F, 0x63, 0x61, 0x74, 0x69, 0x6F,
-- 0x6E, 0x49, 0x6E, 0x66, 0x6F, 0xED, 0x99, 0xBB,
-- 0xE1, 0x4A, 0x91, 0xA5, 0x7C, 0x02, 0x00, 0x01,
-- 0x4C, 0x00, 0x08, 0x66, 0x75, 0x6C, 0x6C, 0x49,
-- 0x6E, 0x66, 0x6F,
-- 0x74, 0x00, 0x12, 0x4C, 0x6A,
-- 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67,
-- 0x2F, 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B,
-- 0x78, 0x70 };
-+ 0x72,
-+ 0x00,
-+ 0x21, 0x6F, 0x72, 0x67, 0x2E, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2E,
-+ 0x6C, 0x6F, 0x67, 0x34, 0x6A, 0x2E, 0x73, 0x70, 0x69, 0x2E, 0x4C, 0x6F,
-+ 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x49, 0x6E, 0x66, 0x6F, static_cast<char>(0xED),
-+ static_cast<char>(0x99), static_cast<char>(0xBB), static_cast<char>(0xE1),
-+ 0x4A, static_cast<char>(0x91), static_cast<char>(0xA5), 0x7C, 0x02,
-+ 0x00,
-+ 0x01, 0x4C,
-+ 0x00,
-+ 0x08, 0x66, 0x75, 0x6C, 0x6C, 0x49, 0x6E, 0x66, 0x6F, 0x74,
-+ 0x00,
-+ 0x12, 0x4C, 0x6A, 0x61, 0x76, 0x61, 0x2F, 0x6C, 0x61, 0x6E, 0x67, 0x2F,
-+ 0x53, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3B, 0x78, 0x70
-+ };
- os.writeProlog("org.apache.log4j.spi.LocationInfo", 2, prolog, sizeof(prolog), p);
- char* line = p.itoa(lineNumber);
- //
-diff --git a/src/main/cpp/loggingevent.cpp b/src/main/cpp/loggingevent.cpp
-index 1c0d4be..edbf40b 100644
---- a/src/main/cpp/loggingevent.cpp
-+++ b/src/main/cpp/loggingevent.cpp
-@@ -242,7 +242,7 @@ void LoggingEvent::writeProlog(ObjectOutputStream& os, Pool& p) {
- 0x68, 0x65, 0x2E, 0x6C, 0x6F, 0x67, 0x34, 0x6A,
- 0x2E, 0x73, 0x70, 0x69, 0x2E, 0x4C, 0x6F, 0x67,
- 0x67, 0x69, 0x6E, 0x67, 0x45, 0x76, 0x65, 0x6E,
-- 0x74, 0xF3, 0xF2, 0xB9, 0x23, 0x74, 0x0B, 0xB5,
-+ 0x74, static_cast<char>(0xF3), static_cast<char>(0xF2), static_cast<char>(0xB9), 0x23, 0x74, 0x0B, static_cast<char>(0xB5),
- 0x3F, 0x03, 0x00, 0x0A, 0x5A, 0x00, 0x15, 0x6D,
- 0x64, 0x63, 0x43, 0x6F, 0x70, 0x79, 0x4C, 0x6F,
- 0x6F, 0x6B, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75,
-diff --git a/src/main/cpp/objectoutputstream.cpp b/src/main/cpp/objectoutputstream.cpp
-index 7cd696b..5442420 100644
---- a/src/main/cpp/objectoutputstream.cpp
-+++ b/src/main/cpp/objectoutputstream.cpp
-@@ -36,7 +36,7 @@ ObjectOutputStream::ObjectOutputStream(OutputStreamPtr outputStream, Pool& p)
- objectHandle(0x7E0000),
- classDescriptions(new ClassDescriptionMap())
- {
-- char start[] = { 0xAC, 0xED, 0x00, 0x05 };
-+ char start[] = { static_cast<char>(0xAC), static_cast<char>(0xED), 0x00, 0x05 };
- ByteBuffer buf(start, sizeof(start));
- os->write(buf, p);
- }
-@@ -81,15 +81,15 @@ void ObjectOutputStream::writeObject(const MDC::Map& val, Pool& p) {
- //
- // TC_OBJECT and the classDesc for java.util.Hashtable
- //
-- char prolog[] = {
-- 0x72, 0x00, 0x13, 0x6A, 0x61, 0x76, 0x61,
-- 0x2E, 0x75, 0x74, 0x69, 0x6C, 0x2E, 0x48, 0x61,
-- 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x13,
-- 0xBB, 0x0F, 0x25, 0x21, 0x4A, 0xE4, 0xB8, 0x03,
-- 0x00, 0x02, 0x46, 0x00, 0x0A, 0x6C, 0x6F, 0x61,
-- 0x64, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x49,
-- 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68,
-- 0x6F, 0x6C, 0x64, 0x78, 0x70 };
-+ char prolog[] = {
-+ 0x72, 0x00, 0x13, 0x6A, 0x61, 0x76, 0x61,
-+ 0x2E, 0x75, 0x74, 0x69, 0x6C, 0x2E, 0x48, 0x61,
-+ 0x73, 0x68, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x13,
-+ static_cast<char>(0xBB), 0x0F, 0x25, 0x21, 0x4A, static_cast<char>(0xE4), static_cast<char>(0xB8), 0x03,
-+ 0x00, 0x02, 0x46, 0x00, 0x0A, 0x6C, 0x6F, 0x61,
-+ 0x64, 0x46, 0x61, 0x63, 0x74, 0x6F, 0x72, 0x49,
-+ 0x00, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68,
-+ 0x6F, 0x6C, 0x64, 0x78, 0x70 };
- writeProlog("java.util.Hashtable", 1, prolog, sizeof(prolog), p);
- //
- // loadFactor = 0.75, threshold = 5, blockdata start, buckets.size = 7
-diff --git a/src/test/cpp/xml/domtestcase.cpp b/src/test/cpp/xml/domtestcase.cpp
-index a500628..29d67dd 100644
---- a/src/test/cpp/xml/domtestcase.cpp
-+++ b/src/test/cpp/xml/domtestcase.cpp
-@@ -190,9 +190,9 @@ public:
- DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase3.xml"));
- LOG4CXX_INFO(logger, "File name is expected to end with a superscript 3");
- #if LOG4CXX_LOGCHAR_IS_UTF8
-- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xC2, 0xB3, 0 };
-+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast<logchar>(0xC2), static_cast<logchar>(0xB3), 0 };
- #else
-- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xB3, 0 };
-+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast<logchar>(0xB3), 0 };
- #endif
- File file;
- file.setPath(fname);
-@@ -209,9 +209,9 @@ public:
- DOMConfigurator::configure(LOG4CXX_TEST_STR("input/xml/DOMTestCase4.xml"));
- LOG4CXX_INFO(logger, "File name is expected to end with an ideographic 4");
- #if LOG4CXX_LOGCHAR_IS_UTF8
-- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0xE3, 0x86, 0x95, 0 };
-+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast<logchar>(0xE3), static_cast<logchar>(0x86), static_cast<logchar>(0x95), 0 };
- #else
-- const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, 0x3195, 0 };
-+ const logchar fname[] = { 0x6F, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2F, 0x64, 0x6F, 0x6D, static_cast<logchar>(0x3195), 0 };
- #endif
- File file;
- file.setPath(fname); \ No newline at end of file
diff --git a/testing/logc-libs/APKBUILD b/testing/logc-libs/APKBUILD
new file mode 100644
index 00000000000..4b87b095a0b
--- /dev/null
+++ b/testing/logc-libs/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=logc-libs
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="A set of libraries adding LogC support to third-party libraries"
+url="https://gitlab.nic.cz/turris/logc-libs"
+# s390x: blocked by czmq
+arch="all !s390x"
+license="MIT"
+makedepends="
+ autoconf-archive
+ automake
+ czmq-dev
+ libevent-dev
+ libtool
+ logc-dev
+ "
+subpackages="
+ $pkgname-dev
+ logc-czmq:_lib
+ logc-libevent:_lib
+ "
+source="https://gitlab.nic.cz/turris/logc-libs/-/archive/v$pkgver/logc-libs-v$pkgver.tar.bz2"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # tests are not supported on musl
+
+prepare() {
+ default_prepare
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --with-czmq \
+ --with-event
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_lib() {
+ pkgdesc="LogC extension for ${subpkgname#logc-}"
+
+ amove usr/lib/*${subpkgname#logc-}_logc.so*
+}
+
+sha512sums="
+21b14bcaf516b63215a3860816f25c65477e8954a807596ab1e3dbb48ad86a051abec0f03ee0fcc8351e7485f8568d6efbb1d9ef69e0301f7cbef6374d7cefe9 logc-libs-v0.1.0.tar.bz2
+"
diff --git a/testing/logc/APKBUILD b/testing/logc/APKBUILD
new file mode 100644
index 00000000000..33188940e5c
--- /dev/null
+++ b/testing/logc/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=logc
+pkgver=0.5.0
+pkgrel=0
+pkgdesc="Logging library for C"
+url="https://gitlab.nic.cz/turris/logc"
+arch="all"
+license="MIT"
+makedepends="
+ argp-standalone
+ gperf
+ libconfig-dev
+ meson
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-argp
+ $pkgname-config:_config
+ "
+source="https://gitlab.nic.cz/turris/logc/-/archive/v$pkgver/logc-v$pkgver.tar.bz2"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # tests are not supported on musl
+
+build() {
+ abuild-meson \
+ -Dlibargp=enabled \
+ -Dlibconfig=enabled \
+ -Dtests=disabled \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+argp() {
+ pkgdesc="$pkgdesc - argp integration"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/liblogc_argp.so*
+}
+
+_config() {
+ pkgdesc="$pkgdesc - libconfig integration"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/liblogc_config.so*
+}
+
+sha512sums="
+425dad537f891891a314b7b0b95f14987b0adffb5bbe9fd511cfe83ddc965b1eace9e71670463ed4a87444ba56bceeb8b61d07f07cf89b8674f6efb38a58faf2 logc-v0.5.0.tar.bz2
+"
diff --git a/testing/logisim-evolution/APKBUILD b/testing/logisim-evolution/APKBUILD
new file mode 100644
index 00000000000..fab3fce79dc
--- /dev/null
+++ b/testing/logisim-evolution/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=logisim-evolution
+pkgver=3.8.0
+pkgrel=0
+pkgdesc="Digital logic design tool and simulator"
+url="https://github.com/logisim-evolution/logisim-evolution"
+arch="x86_64 aarch64 s390x" # limited by java
+license="GPL-3.0-or-later"
+depends="openjdk17-jre hicolor-icon-theme"
+makedepends="openjdk17-jdk"
+source="https://github.com/logisim-evolution/logisim-evolution/archive/v$pkgver/logisim-evolution-$pkgver.tar.gz
+logisim-evolution
+Desktop-file.patch"
+options="net !check"
+
+build() {
+ export GRADLE_USER_HOME="$srcdir"/.gradle
+ ./gradlew --parallel shadowJar
+}
+
+package() {
+ install -Dm644 build/libs/logisim-evolution-"$pkgver"-all.jar \
+ "$pkgdir"/usr/share/logisim-evolution/logisim-evolution.jar
+
+ install -Dm644 support/Flatpak/com.github.reds.LogisimEvolution.xml \
+ "$pkgdir"/usr/share/mime/packages/logisim-evolution.xml
+
+ install -Dm644 support/Flatpak/com.github.reds.LogisimEvolution.desktop \
+ "$pkgdir"/usr/share/applications/logisim-evolution.desktop
+
+ install -Dm755 "$srcdir"/logisim-evolution "$pkgdir"/usr/bin/logisim-evolution
+
+ local size
+ for size in 16 32 48 128 256; do
+ install -Dm644 \
+ src/main/resources/resources/logisim/img/logisim-icon-"$size".png \
+ "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps/logisim-evolution.png
+ done
+}
+
+sha512sums="
+3f1b78fbd3cfe06c0d8fbe224481bd4134bc8583bdfd7b3009386281ede32526a847c23d02f1709707682a276dd8106cd49c120f774fb00c5d72ba3ccbb46f21 logisim-evolution-3.8.0.tar.gz
+dc93426421ace75f6479fbfb49a5d54ba7c7b64a49be3d5336451639f26a559d9b3f1a93136863d921760d53646e6fbca7be1c3a6580b8132245c4980115e5ca logisim-evolution
+34a4331673bffd6db0f1a1c17a4879c5a4b48dc099b9bae9fb5b190a3541fe1e6c8d6a7bdf3f9d00691e3e002051bc509282d89a95847ff1f90f755986a797a3 Desktop-file.patch
+"
diff --git a/testing/logisim-evolution/Desktop-file.patch b/testing/logisim-evolution/Desktop-file.patch
new file mode 100644
index 00000000000..018d8ade9bc
--- /dev/null
+++ b/testing/logisim-evolution/Desktop-file.patch
@@ -0,0 +1,13 @@
+diff --git a/support/Flatpak/com.github.reds.LogisimEvolution.desktop b/support/Flatpak/com.github.reds.LogisimEvolution.desktop
+index 60a3521ac..312e80f35 100644
+--- a/support/Flatpak/com.github.reds.LogisimEvolution.desktop
++++ b/support/Flatpak/com.github.reds.LogisimEvolution.desktop
+@@ -2,7 +2,7 @@
+ Name=Logisim Evolution
+ GenericName=Logisim Logic Circuit Simulator
+ Comment=Digital Logic Circuit Simulator
+-Exec=LogisimEvolution.sh
++Exec=logisim-evolution
+ Icon=com.github.reds.LogisimEvolution
+ Terminal=false
+ Type=Application
diff --git a/testing/logisim-evolution/logisim-evolution b/testing/logisim-evolution/logisim-evolution
new file mode 100755
index 00000000000..c795466c1de
--- /dev/null
+++ b/testing/logisim-evolution/logisim-evolution
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/java -jar /usr/share/logisim-evolution/logisim-evolution.jar "$@"
diff --git a/testing/logstash/APKBUILD b/testing/logstash/APKBUILD
deleted file mode 100644
index 9704c0509d1..00000000000
--- a/testing/logstash/APKBUILD
+++ /dev/null
@@ -1,84 +0,0 @@
-# Contributor: Steeve Chailloux <steeve@chaahk.com>
-# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
-pkgname=logstash
-pkgver=7.5.2
-pkgrel=0
-pkgdesc="A flexible, open source, data collection, parsing and enrichment pipeline"
-url="http://logstash.net"
-arch="noarch !mips !mips64" # java
-license="Apache-2.0"
-depends="openjdk8-jre-base java-jffi-native libc6-compat bash"
-makedepends="$depends_dev"
-install="$pkgname.pre-install"
-pkgusers="logstash"
-subpackages="$pkgname-doc $pkgname-openrc"
-options="!strip !check"
-source="$pkgname-$pkgver.tar.gz::https://artifacts.elastic.co/downloads/logstash/logstash-$pkgver.tar.gz
- $pkgname.confd
- $pkgname.initd
- $pkgname.conf
- $pkgname.profile
- "
-
-package() {
- local datadir=/var/lib/logstash logdir=$datadir/logs confdir=/etc/logstash
- local homedir=/usr/share/logstash heapsize=150m
-
- # create the necessary dirs
- install -dm755 "$pkgdir/$homedir"
- install -dm755 "$pkgdir/$logdir"
- install -dm755 "$pkgdir/$datadir"
- install -dm755 "$pkgdir/$confdir"
- install -dm755 "$pkgdir/$confdir/conf.d"
-
- # install scripts
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.conf \
- "$pkgdir/$confdir"/conf.d/
- install -m644 -D "$srcdir"/$pkgname.profile \
- "$pkgdir"/etc/profile.d/logstash.sh
-
- # copy files
- cp -r * "$pkgdir/$homedir/"
- cp config/* "$pkgdir/$confdir/"
-
- # move docs
- mkdir -p "$pkgdir"/usr/share/doc/logstash && cd "$pkgdir"
- find usr/share/logstash -maxdepth 1 -type f ! -name Gemfile* \
- -name "[[:upper:]]*" -exec mv {} usr/share/doc/logstash/ \;
-
- # remove files for windows
- find usr/share/logstash -type f -name *.bat -exec rm -f {} \;
- find usr/share/logstash -type f -name *win32* -exec rm -f {} \;
- find usr/share/logstash -type f -name *Win32* -exec rm -f {} \;
-
- # remove bundled libjffi (we use Alpine's java-jffi-native)
- rm -rf "$pkgdir"/usr/share/logstash/vendor/jruby/lib/jni
-
- # set default paths
- sed -i \
- -e "s|# path.config:|path.config: $confdir/conf.d|" \
- -e "s|# path.logs:|path.logs: $logdir|" \
- -e "s|# path.data:|path.data: $datadir|" \
- "$pkgdir/$confdir"/logstash.yml
-
- # symlink so manual commands without -path.settings works
- rmdir "$pkgdir/$homedir"/data
- ln -s "$datadir" "$pkgdir/$homedir"/data
- ln -s "$logdir" "$pkgdir/$homedir"/logs
-
- # reduce heap sizes
- sed -i \
- -e "s|^-Xms.*|-Xms$heapsize|" \
- -e "s|^-Xmx.*|-Xmx$heapsize|" \
- "$pkgdir/$confdir"/jvm.options
-}
-
-sha512sums="955e546372466fb557eb15b9f466decef24c520c7ff16afd5432d5a8d1dd1f061f11fb9178678bed74b3c16a2d5ee6cd72fc8e4d757c8af36747dc25522c443e logstash-7.5.2.tar.gz
-94b18da3f0ef40f68118b27654563e7aa6dd4a3b90f0d8ad61a8be579d4be62c2bf1b192a32ee6140b81224343eeb442687539f6def1e725787b8cb96c0c70d1 logstash.confd
-828684ea0b9faa53ac51f7fb22bf73d862dc058d605f27958db6a8efbd10f5463a0837fa88b62a3964582c72fdd7ece434057a540b0924eae1fae17b9d5887b4 logstash.initd
-21609c8f44b31a5f298573be4b5c0fdcdc165e603a95c3626570fb6dd44dad114a74ee3f10fbd518f72b537a3d6bdcdbad09798c4bead0ee16f2a3b8e2b00ed3 logstash.conf
-180349d57a6a48be9052649425a945a07cf5e194d0f32f83567b460936729a70244d73c3495f8a318a3b98ac99a2848cadfbee5bd017da803c68c5140b6cd29d logstash.profile"
diff --git a/testing/logstash/logstash.conf b/testing/logstash/logstash.conf
deleted file mode 100644
index ddd5ada667d..00000000000
--- a/testing/logstash/logstash.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-# https://www.elastic.co/guide/en/logstash/current/configuration.html
-# https://www.elastic.co/guide/en/logstash/current/input-plugins.html
-# https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
-# https://www.elastic.co/guide/en/logstash/current/output-plugins.html
-
-input {
- file {
- type => "syslog"
- path => ["/var/log/**/*.log"]
- }
-}
-
-output {
- stdout { codec => rubydebug }
-}
-
diff --git a/testing/logstash/logstash.confd b/testing/logstash/logstash.confd
deleted file mode 100644
index 67edcd26500..00000000000
--- a/testing/logstash/logstash.confd
+++ /dev/null
@@ -1,20 +0,0 @@
-# Config file for /etc/init.d/logstash
-#
-# see also $LS_CONF/jvm.options
-#
-LS_HOME=/usr/share/logstash
-LS_CONF=/etc/logstash
-LS_DATA=/var/lib/logstash
-LS_LOGS=${LS_DATA}/logs
-
-# User to run Logstash as.
-LS_USER=logstash
-
-# Group to run Logstash as. Defaults to primary group of $LS_USER.
-# LS_GROUP=
-
-# stdout & stderr fill logs rapidly
-#LS_REDIR="1>/dev/null 2>> ${LS_LOGS}/error.log"
-
-# add pipeline config under conf.d
-LS_OPTS="-f $LS_CONF/conf.d/*.conf -l $LS_LOGS $LS_REDIR"
diff --git a/testing/logstash/logstash.initd b/testing/logstash/logstash.initd
deleted file mode 100644
index b022fd387bf..00000000000
--- a/testing/logstash/logstash.initd
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-description="logs, events, or other data transporter"
-
-: ${LS_USER:="logstash"}
-: ${LS_GROUP:="$(id -gn $LS_USER)"}
-
-nice="19"
-pidfile="/run/$RC_SVCNAME.sd.pid"
-supervise_daemon_args="-u $LS_USER -g $LS_GROUP -p $pidfile -N $nice"
-command=/usr/share/logstash/bin/logstash
-command_args="--path.settings ${LS_CONF} ${LS_OPTS}"
-max_fd="16384"
-
-depends() {
- use net
-}
-
-in_contr() {
- grep "container=" /proc/1/environ
-}
-
-start_pre() {
- local dir
-
- # Note: checkpath doesn't create intermediate directories.
- for dir in "${LS_HOME}" "${LS_DATA}" "${LS_LOGS}"; do
- mkdir -p "$(dirname "$dir")"
- done
-
- checkpath -d -o $LS_USER:$LS_GROUP -m755 "${LS_HOME}"
- checkpath -d -o $LS_USER:$LS_GROUP -m700 "${LS_DATA}"
- checkpath -d -o $LS_USER:$LS_GROUP -m755 "${LS_LOGS}"
-
- if [ -n "$max_fd" ]; then
- if [ -z "$(in_contr)" ]; then
- ulimit -n "$max_fd" && einfo "Max open filedescriptors: $max_fd"
- else
- einfo "Run 'ulimit -n $max_fd' on the container host"
- fi
- fi
-}
diff --git a/testing/logstash/logstash.pre-install b/testing/logstash/logstash.pre-install
deleted file mode 100644
index bd470b80512..00000000000
--- a/testing/logstash/logstash.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S logstash 2>/dev/null
-adduser -S -D -H -h /usr/share/logstash -s /sbin/nologin -G logstash -g logstash logstash 2>/dev/null
-
-exit 0
diff --git a/testing/logstash/logstash.profile b/testing/logstash/logstash.profile
deleted file mode 100644
index fd6cc07b5a9..00000000000
--- a/testing/logstash/logstash.profile
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-export PATH=$PATH:/usr/share/logstash/bin
diff --git a/testing/logwatch/APKBUILD b/testing/logwatch/APKBUILD
index 050e316b2b3..1d8c4164117 100644
--- a/testing/logwatch/APKBUILD
+++ b/testing/logwatch/APKBUILD
@@ -1,20 +1,18 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=logwatch
-pkgver=7.5.2
-pkgrel=1
-pkgdesc="A customizable, pluggable log-monitoring system"
-url="https://www.logwatch.org"
+pkgver=7.10
+pkgrel=0
+pkgdesc="Customizable, pluggable log-monitoring system"
+url="https://sourceforge.net/projects/logwatch/"
arch="noarch"
-license="custom"
+license="MIT"
options="!check"
depends="perl"
subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/project/logwatch/logwatch-$pkgver/logwatch-$pkgver.tar.gz"
package() {
- cd "$srcdir"/$pkgname-$pkgver
-
mkdir -p "$pkgdir"/usr/bin \
"$pkgdir"/var/cache/$pkgname \
"$pkgdir"/etc/periodic/daily \
@@ -46,4 +44,6 @@ package() {
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="157486143ba12167f6c50c778372a4295db3744878607bceba8e0813357651bffd8924ef5ef41a4fbd20811c020dcc031eb354a0f52b8eb6d9aac197087c2bc5 logwatch-7.5.2.tar.gz"
+sha512sums="
+838bcc7a3b12eb31450a20195fe2ca4ab238500051bb2f50bd1775272fefa412e0a2473c0294a5495ef594fa530b00dac0dc6d18b93e124f36614686502e55cb logwatch-7.10.tar.gz
+"
diff --git a/testing/lol-html/APKBUILD b/testing/lol-html/APKBUILD
new file mode 100644
index 00000000000..915868b851a
--- /dev/null
+++ b/testing/lol-html/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=lol-html
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="Low output latency streaming HTML parser/rewriter (C library)"
+url="https://crates.io/crates/lol-html"
+arch="all"
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="$pkgname-dev"
+source="
+ https://github.com/cloudflare/lol-html/archive/v$pkgver/lol-html-$pkgver.tar.gz
+ lol-html.pc.in
+
+ lockfile.patch
+ "
+builddir="$srcdir/lol-html-$pkgver/c-api"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+ (
+ cd tests
+ cargo fetch --target="$CTARGET" --locked
+ )
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ sed 's/@VERSION@/'"$pkgver"'/' "$srcdir"/lol-html.pc.in > lol-html.pc
+}
+
+check() {
+ # why is this a separate crate?
+ cd tests
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/liblolhtml.so -t "$pkgdir"/usr/lib/
+ install -Dm644 include/lol_html.h -t "$pkgdir"/usr/include/
+ install -Dm644 lol-html.pc -t "$pkgdir"/usr/lib/pkgconfig/
+}
+
+sha512sums="
+5cf78d7f602018e22642fbba0bbf0a84fc17dc218f5e60d77f2c0f08c7d5bd6e378487372e40a2a3a02c7729ae6a24d128130fa702e597335e9a9e860f60cce1 lol-html-1.1.1.tar.gz
+21772f891c68c8d6970c35d0c0fc920c00bd61bc075adcb72fa9479b340ea020f8d112832c6dba41f5e96cb03245587c3ffd518341ee7bb154ccebf7535e691c lol-html.pc.in
+e92b9e841e3db4c3fe8cf8132ca85317dfaf0dd072d34146e6249050b0165d1130f190d1646962ec406fcc7d27936a9d47018aadda02132b38cefe9c53c0fc5f lockfile.patch
+"
diff --git a/testing/lol-html/lockfile.patch b/testing/lol-html/lockfile.patch
new file mode 100644
index 00000000000..e84a35984c6
--- /dev/null
+++ b/testing/lol-html/lockfile.patch
@@ -0,0 +1,1087 @@
+--- /dev/null
++++ ./Cargo.lock
+@@ -0,0 +1,532 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "ahash"
++version = "0.8.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
++dependencies = [
++ "cfg-if",
++ "once_cell",
++ "version_check",
++ "zerocopy",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "bitflags"
++version = "2.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
++
++[[package]]
++name = "byteorder"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
++
++[[package]]
++name = "cc"
++version = "1.0.83"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "convert_case"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
++
++[[package]]
++name = "cssparser"
++version = "0.27.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
++dependencies = [
++ "cssparser-macros",
++ "dtoa-short",
++ "itoa",
++ "matches",
++ "phf",
++ "proc-macro2",
++ "quote",
++ "smallvec",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "cssparser-macros"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
++dependencies = [
++ "quote",
++ "syn 2.0.38",
++]
++
++[[package]]
++name = "derive_more"
++version = "0.99.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
++dependencies = [
++ "convert_case",
++ "proc-macro2",
++ "quote",
++ "rustc_version",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "dtoa"
++version = "1.0.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
++
++[[package]]
++name = "dtoa-short"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
++dependencies = [
++ "dtoa",
++]
++
++[[package]]
++name = "encoding_rs"
++version = "0.8.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "fxhash"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
++dependencies = [
++ "byteorder",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "hashbrown"
++version = "0.13.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
++dependencies = [
++ "ahash",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "lazycell"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
++
++[[package]]
++name = "libc"
++version = "0.2.149"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
++
++[[package]]
++name = "log"
++version = "0.4.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
++
++[[package]]
++name = "lol_html"
++version = "1.1.1"
++dependencies = [
++ "bitflags 2.4.1",
++ "cfg-if",
++ "cssparser",
++ "encoding_rs",
++ "hashbrown",
++ "lazy_static",
++ "lazycell",
++ "memchr",
++ "mime",
++ "safemem",
++ "selectors",
++ "thiserror",
++]
++
++[[package]]
++name = "lolhtml"
++version = "1.1.1"
++dependencies = [
++ "cc",
++ "encoding_rs",
++ "libc",
++ "lol_html",
++ "thiserror",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
++
++[[package]]
++name = "memchr"
++version = "2.6.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
++
++[[package]]
++name = "mime"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
++
++[[package]]
++name = "nodrop"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
++
++[[package]]
++name = "once_cell"
++version = "1.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
++
++[[package]]
++name = "phf"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
++dependencies = [
++ "phf_macros",
++ "phf_shared",
++ "proc-macro-hack",
++]
++
++[[package]]
++name = "phf_codegen"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
++dependencies = [
++ "phf_generator",
++ "phf_shared",
++]
++
++[[package]]
++name = "phf_generator"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
++dependencies = [
++ "phf_shared",
++ "rand",
++]
++
++[[package]]
++name = "phf_macros"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
++dependencies = [
++ "phf_generator",
++ "phf_shared",
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "phf_shared"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
++dependencies = [
++ "siphasher",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
++
++[[package]]
++name = "precomputed-hash"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.20+deprecated"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
++dependencies = [
++ "unicode-ident",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++dependencies = [
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++ "rand_pcg",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "rand_pcg"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "rustc_version"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
++dependencies = [
++ "semver",
++]
++
++[[package]]
++name = "safemem"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
++
++[[package]]
++name = "selectors"
++version = "0.22.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
++dependencies = [
++ "bitflags 1.3.2",
++ "cssparser",
++ "derive_more",
++ "fxhash",
++ "log",
++ "matches",
++ "phf",
++ "phf_codegen",
++ "precomputed-hash",
++ "servo_arc",
++ "smallvec",
++ "thin-slice",
++]
++
++[[package]]
++name = "semver"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
++
++[[package]]
++name = "servo_arc"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
++dependencies = [
++ "nodrop",
++ "stable_deref_trait",
++]
++
++[[package]]
++name = "siphasher"
++version = "0.3.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
++
++[[package]]
++name = "smallvec"
++version = "1.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
++
++[[package]]
++name = "stable_deref_trait"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
++
++[[package]]
++name = "syn"
++version = "1.0.109"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "syn"
++version = "2.0.38"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "thin-slice"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
++
++[[package]]
++name = "thiserror"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.38",
++]
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
++
++[[package]]
++name = "version_check"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "zerocopy"
++version = "0.7.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e50cbb27c30666a6108abd6bc7577556265b44f243e2be89a8bc4e07a528c107"
++dependencies = [
++ "zerocopy-derive",
++]
++
++[[package]]
++name = "zerocopy-derive"
++version = "0.7.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a25f293fe55f0a48e7010d65552bb63704f6ceb55a1a385da10d41d8f78e4a3d"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.38",
++]
+--- /dev/null
++++ ./tests/Cargo.lock
+@@ -0,0 +1,549 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "ahash"
++version = "0.8.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
++dependencies = [
++ "cfg-if",
++ "once_cell",
++ "version_check",
++ "zerocopy",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "bitflags"
++version = "2.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
++
++[[package]]
++name = "byteorder"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
++
++[[package]]
++name = "cc"
++version = "1.0.83"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "convert_case"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
++
++[[package]]
++name = "cssparser"
++version = "0.27.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a"
++dependencies = [
++ "cssparser-macros",
++ "dtoa-short",
++ "itoa",
++ "matches",
++ "phf",
++ "proc-macro2",
++ "quote",
++ "smallvec",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "cssparser-macros"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
++dependencies = [
++ "quote",
++ "syn 2.0.38",
++]
++
++[[package]]
++name = "ctests"
++version = "0.1.0"
++dependencies = [
++ "cc",
++ "glob",
++ "libc",
++ "lol_html",
++ "lolhtml",
++]
++
++[[package]]
++name = "derive_more"
++version = "0.99.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
++dependencies = [
++ "convert_case",
++ "proc-macro2",
++ "quote",
++ "rustc_version",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "dtoa"
++version = "1.0.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
++
++[[package]]
++name = "dtoa-short"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
++dependencies = [
++ "dtoa",
++]
++
++[[package]]
++name = "encoding_rs"
++version = "0.8.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "fxhash"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
++dependencies = [
++ "byteorder",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "glob"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
++
++[[package]]
++name = "hashbrown"
++version = "0.13.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
++dependencies = [
++ "ahash",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "lazycell"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
++
++[[package]]
++name = "libc"
++version = "0.2.149"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
++
++[[package]]
++name = "log"
++version = "0.4.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
++
++[[package]]
++name = "lol_html"
++version = "1.1.1"
++dependencies = [
++ "bitflags 2.4.1",
++ "cfg-if",
++ "cssparser",
++ "encoding_rs",
++ "hashbrown",
++ "lazy_static",
++ "lazycell",
++ "memchr",
++ "mime",
++ "safemem",
++ "selectors",
++ "thiserror",
++]
++
++[[package]]
++name = "lolhtml"
++version = "1.1.1"
++dependencies = [
++ "cc",
++ "encoding_rs",
++ "libc",
++ "lol_html",
++ "thiserror",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
++
++[[package]]
++name = "memchr"
++version = "2.6.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
++
++[[package]]
++name = "mime"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
++
++[[package]]
++name = "nodrop"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
++
++[[package]]
++name = "once_cell"
++version = "1.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
++
++[[package]]
++name = "phf"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
++dependencies = [
++ "phf_macros",
++ "phf_shared",
++ "proc-macro-hack",
++]
++
++[[package]]
++name = "phf_codegen"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
++dependencies = [
++ "phf_generator",
++ "phf_shared",
++]
++
++[[package]]
++name = "phf_generator"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
++dependencies = [
++ "phf_shared",
++ "rand",
++]
++
++[[package]]
++name = "phf_macros"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c"
++dependencies = [
++ "phf_generator",
++ "phf_shared",
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "phf_shared"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
++dependencies = [
++ "siphasher",
++]
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
++
++[[package]]
++name = "precomputed-hash"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.20+deprecated"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
++dependencies = [
++ "unicode-ident",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++dependencies = [
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++ "rand_pcg",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "rand_pcg"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "rustc_version"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
++dependencies = [
++ "semver",
++]
++
++[[package]]
++name = "safemem"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
++
++[[package]]
++name = "selectors"
++version = "0.22.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe"
++dependencies = [
++ "bitflags 1.3.2",
++ "cssparser",
++ "derive_more",
++ "fxhash",
++ "log",
++ "matches",
++ "phf",
++ "phf_codegen",
++ "precomputed-hash",
++ "servo_arc",
++ "smallvec",
++ "thin-slice",
++]
++
++[[package]]
++name = "semver"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
++
++[[package]]
++name = "servo_arc"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432"
++dependencies = [
++ "nodrop",
++ "stable_deref_trait",
++]
++
++[[package]]
++name = "siphasher"
++version = "0.3.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
++
++[[package]]
++name = "smallvec"
++version = "1.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
++
++[[package]]
++name = "stable_deref_trait"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
++
++[[package]]
++name = "syn"
++version = "1.0.109"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "syn"
++version = "2.0.38"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "thin-slice"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
++
++[[package]]
++name = "thiserror"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.38",
++]
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
++
++[[package]]
++name = "version_check"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "zerocopy"
++version = "0.7.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e50cbb27c30666a6108abd6bc7577556265b44f243e2be89a8bc4e07a528c107"
++dependencies = [
++ "zerocopy-derive",
++]
++
++[[package]]
++name = "zerocopy-derive"
++version = "0.7.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a25f293fe55f0a48e7010d65552bb63704f6ceb55a1a385da10d41d8f78e4a3d"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.38",
++]
diff --git a/testing/lol-html/lol-html.pc.in b/testing/lol-html/lol-html.pc.in
new file mode 100644
index 00000000000..bd7145a470b
--- /dev/null
+++ b/testing/lol-html/lol-html.pc.in
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: lol-html
+Description: Low output latency streaming HTML parser/rewriter
+Version: @VERSION@
+
+Requires:
+Libs: -L${libdir} -llolhtml
+Cflags: -I${includedir}
diff --git a/testing/lolcat/APKBUILD b/testing/lolcat/APKBUILD
index 6c7edd8f634..69618c03f53 100644
--- a/testing/lolcat/APKBUILD
+++ b/testing/lolcat/APKBUILD
@@ -1,14 +1,15 @@
# Contributor: Daniel Isaksen <d@duniel.no>
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=lolcat
-pkgver=1.0
+pkgver=1.4
pkgrel=0
pkgdesc="High-performance implementation of lolcat"
url="https://github.com/jaseg/lolcat/"
arch="all"
license="WTFPL"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jaseg/${pkgname}/archive/v$pkgver.tar.gz
- fix-url-and-version.patch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jaseg/lolcat/archive/v$pkgver.tar.gz
+ makefile.patch
+ "
options="!check" # No upstream testsuite
build() {
@@ -20,5 +21,7 @@ package() {
make DESTDIR="$pkgdir/usr/bin" install
}
-sha512sums="5f668706c2415273140047040a9e6d02d80a1572a834503480688f46466e2750f3cf5372f364039921f6461f2dbec7fa2dbe8a5600abdf3390c2caf56d1595bf lolcat-1.0.tar.gz
-14cdd61496bc0a0fbec39a8dcfb2d16d9424abfb1c6348750cb263fbb6a416bf89c6f05e549e1205fe64128c65946dcdde2a889c162336795e838b539c9b1470 fix-url-and-version.patch"
+sha512sums="
+8f73121ef372383f5ff1d444f69a6255f5ff65abfbb4f103197480f957dcc440375c7c01be5c33247ce920ff39e34519702f7550b9b8ada2f18190d0ae948024 lolcat-1.4.tar.gz
+cddac8348b17f180daa8f4c53788dc86ab348f2d5c4c98e91b7b50010e6638750e6f1c2931d115090e8075055bef2c3d4e12218fc64b4a346bfdf543c058b262 makefile.patch
+"
diff --git a/testing/lolcat/fix-url-and-version.patch b/testing/lolcat/fix-url-and-version.patch
deleted file mode 100644
index 1005925de97..00000000000
--- a/testing/lolcat/fix-url-and-version.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- old/lolcat.c
-+++ new/lolcat.c
-@@ -45,9 +45,9 @@
- " lolcat Copy standard input to standard output.\n"
- " fortune | lolcat Display a rainbow cookie.\n"
- "\n"
-- "Report lolcat bugs to <http://www.github.org/jaseg/lolcat/issues>\n"
-- "lolcat home page: <http://www.github.org/jaseg/lolcat/>\n"
-- "Original idea: <http://www.github.org/busyloop/lolcat/>\n";
-+ "Report lolcat bugs to <http://www.github.com/jaseg/lolcat/issues>\n"
-+ "lolcat home page: <http://www.github.com/jaseg/lolcat/>\n"
-+ "Original idea: <http://www.github.com/busyloop/lolcat/>\n";
-
- #define ARRAY_SIZE(foo) (sizeof(foo) / sizeof(foo[0]))
- const unsigned char codes[] = { 39, 38, 44, 43, 49, 48, 84, 83, 119, 118, 154, 148, 184, 178, 214, 208, 209, 203, 204, 198, 199, 163, 164, 128, 129, 93, 99, 63, 69, 33 };
-@@ -72,7 +72,7 @@
-
- static void version(void)
- {
-- wprintf(L"lolcat version 0.1, (c) 2014 jaseg\n");
-+ wprintf(L"lolcat version 1.0, (c) 2014 jaseg\n");
- exit(0);
- }
-
diff --git a/testing/lolcat/makefile.patch b/testing/lolcat/makefile.patch
new file mode 100644
index 00000000000..e9d100482a9
--- /dev/null
+++ b/testing/lolcat/makefile.patch
@@ -0,0 +1,17 @@
+diff --git a/Makefile b/Makefile
+index 9ce889d..e9ca9db 100644
+--- a/Makefile
++++ b/Makefile
+@@ -16,10 +16,10 @@ xterm256lut.h: xterm256lut_gen.py
+ python $< > $@
+
+ lolcat: lolcat.c xterm256lut.h
+- $(CC) $(CFLAGS) -o $@ $< $(LIBS)
++ $(CC) $(CFLAGS) -o $@ $< $(LIBS) $(LDFLAGS)
+
+ censor: censor.c
+- $(CC) $(CFLAGS) -o $@ $< $(LIBS)
++ $(CC) $(CFLAGS) -o $@ $< $(LIBS) $(LDFLAGS)
+
+ install: lolcat censor
+ install lolcat $(DESTDIR)/lolcat
diff --git a/testing/lomiri-action-api/0002-Use-qmltestrunner-qt5.patch b/testing/lomiri-action-api/0002-Use-qmltestrunner-qt5.patch
new file mode 100644
index 00000000000..197f8ccac2d
--- /dev/null
+++ b/testing/lomiri-action-api/0002-Use-qmltestrunner-qt5.patch
@@ -0,0 +1,53 @@
+From 095b55e0e992f63af414b27e1b2ca52ff1a550fb Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 15 Nov 2023 00:21:02 +0100
+Subject: [PATCH 2/2] Use qmltestrunner-qt5
+
+---
+ CMakeLists.txt | 2 +-
+ cmake/modules/QmlTest.cmake | 2 +-
+ test/qml/CMakeLists.txt | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e70f8ec..6cefd26 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -82,7 +82,7 @@ if(${GENERATE_DOCUMENTATION})
+ endif()
+
+
+-find_program(qmltestrunner_exe qmltestrunner)
++find_program(qmltestrunner_exe qmltestrunner-qt5)
+
+ if(NOT qmltestrunner_exe)
+ message(FATAL_ERROR "Could not locate qmltestrunner.")
+diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
+index 87fab8e..61bdc51 100644
+--- a/cmake/modules/QmlTest.cmake
++++ b/cmake/modules/QmlTest.cmake
+@@ -15,7 +15,7 @@
+ # qmltest_DEFAULT_IMPORT_PATHS
+ # qmltest_DEFAULT_PROPERTIES
+
+-find_program(qmltestrunner_exe qmltestrunner)
++find_program(qmltestrunner_exe qmltestrunner-qt5)
+
+ if(NOT qmltestrunner_exe)
+ message(FATAL_ERROR "Could not locate qmltestrunner.")
+diff --git a/test/qml/CMakeLists.txt b/test/qml/CMakeLists.txt
+index e817ea0..f4fd2fa 100644
+--- a/test/qml/CMakeLists.txt
++++ b/test/qml/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_custom_target(qmlunittests)
+ add_custom_target(qmlunittests_1_1)
+
+-find_program(qmltestrunner_exe qmltestrunner)
++find_program(qmltestrunner_exe qmltestrunner-qt5)
+
+ if(NOT qmltestrunner_exe)
+ message(FATAL_ERROR "Could not locate qmltestrunner.")
+--
+2.42.1
+
diff --git a/testing/lomiri-action-api/APKBUILD b/testing/lomiri-action-api/APKBUILD
new file mode 100644
index 00000000000..2bbfe6acb01
--- /dev/null
+++ b/testing/lomiri-action-api/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-action-api
+pkgver=1.1.3
+pkgrel=0
+pkgdesc="Lomiri Action Qt API"
+url="https://gitlab.com/ubports/development/core/lomiri-action-api"
+arch="all"
+license="LGPL-3.0-only"
+depends_dev="qt5-qtdeclarative-dev"
+makedepends="
+ $depends_dev
+ cmake
+ samurai
+ "
+checkdepends="dbus-test-runner"
+subpackages="$pkgname-dev"
+source="https://gitlab.com/ubports/development/core/lomiri-action-api/-/archive/$pkgver/lomiri-action-api-$pkgver.tar.gz
+ 0002-Use-qmltestrunner-qt5.patch
+ "
+options="!check" # tests hang
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -Duse_libhud2=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+425b88cc97a0de10378dd003daaf3749d856ed469b468350de22fc428dd614e36361e1297b3e0b801999c13d8c7647fe0bcf732333e8a7af10dc65f8b9a53aa9 lomiri-action-api-1.1.3.tar.gz
+3c6c8b12579ee0a9ad5bc28afa6dcfee132cb9a90b44314f9c10e044fd468f8004b8b460aa624714f672b35a500b1ae755494d112c3a9185a2670b8aec5d2e3b 0002-Use-qmltestrunner-qt5.patch
+"
diff --git a/testing/lomiri-api/0001-Add-missing-headers-for-GCC13.patch b/testing/lomiri-api/0001-Add-missing-headers-for-GCC13.patch
new file mode 100644
index 00000000000..4cc5b2bd150
--- /dev/null
+++ b/testing/lomiri-api/0001-Add-missing-headers-for-GCC13.patch
@@ -0,0 +1,37 @@
+From 029b42a9b4d5467951595dff8bc536eb5a9e3ef7 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 7 Jun 2023 09:22:27 +0200
+Subject: [PATCH] Add missing headers for GCC13
+
+---
+ include/lomiri/util/FileIO.h | 1 +
+ include/lomiri/util/ResourcePtr.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/include/lomiri/util/FileIO.h b/include/lomiri/util/FileIO.h
+index b2ad19e..815bf8e 100644
+--- a/include/lomiri/util/FileIO.h
++++ b/include/lomiri/util/FileIO.h
+@@ -23,6 +23,7 @@
+
+ #include <string>
+ #include <vector>
++#include <cstdint>
+
+ namespace lomiri
+ {
+diff --git a/include/lomiri/util/ResourcePtr.h b/include/lomiri/util/ResourcePtr.h
+index b385590..701bfb3 100644
+--- a/include/lomiri/util/ResourcePtr.h
++++ b/include/lomiri/util/ResourcePtr.h
+@@ -21,6 +21,7 @@
+
+ #include <mutex>
+ #include <type_traits>
++#include <stdexcept>
+
+ namespace lomiri
+ {
+--
+2.42.0
+
diff --git a/testing/lomiri-api/APKBUILD b/testing/lomiri-api/APKBUILD
new file mode 100644
index 00000000000..4c2d9197402
--- /dev/null
+++ b/testing/lomiri-api/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-api
+pkgver=0.2.1
+pkgrel=0
+pkgdesc="API for Lomiri shell integration"
+url="https://gitlab.com/ubports/development/core/lomiri-api"
+arch="all"
+license="LGPL-3.0-only"
+depends_dev="
+ gtest-dev
+ qt5-qtdeclarative-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ gmock
+ libqtdbustest
+ samurai
+ "
+checkdepends="dbus"
+source="https://gitlab.com/ubports/development/core/lomiri-api/-/archive/$pkgver/lomiri-api-$pkgver.tar.gz
+ 0001-Add-missing-headers-for-GCC13.patch
+ qmltestrunner.patch
+ "
+subpackages="$pkgname-dev"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+9eb356d6733a780aabb8e8dde412c0aafca5dd021e1b093f5b369c778da0c0ae933e0a8f527528a85ae989d1856f8a3691117bacda1829716dadf253852ffb96 lomiri-api-0.2.1.tar.gz
+08c2b3bd7d583064f60c29accd74d10cad64c221e79b84ec973dd0e31b0bfb180a30f3800c1695686d172198a0a15fdf4ae6860e84413bab2d19e89e693b32f7 0001-Add-missing-headers-for-GCC13.patch
+04c316667ed5892c55278b01377d4d9c1a6ae14a330bfa594e5e54371d37441747684ab553799cb5e7804f4c68d181e78caeb8279491b9f5302a4e70095c74af qmltestrunner.patch
+"
diff --git a/testing/lomiri-api/qmltestrunner.patch b/testing/lomiri-api/qmltestrunner.patch
new file mode 100644
index 00000000000..4129a866348
--- /dev/null
+++ b/testing/lomiri-api/qmltestrunner.patch
@@ -0,0 +1,15 @@
+Alpine uses versioned Qt binaries
+
+diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
+index 8241703..d209b55 100644
+--- a/cmake/modules/QmlTest.cmake
++++ b/cmake/modules/QmlTest.cmake
+@@ -15,7 +15,7 @@
+ # qmltest_DEFAULT_IMPORT_PATHS
+ # qmltest_DEFAULT_PROPERTIES
+
+-find_program(qmltestrunner_exe qmltestrunner)
++find_program(qmltestrunner_exe qmltestrunner-qt5)
+
+ if(NOT qmltestrunner_exe)
+ message(FATAL_ERROR "Could not locate qmltestrunner.")
diff --git a/testing/lomiri-app-launch/0001-liblomiri-app-launch-jobs-posix.cpp-pass-more-enviro.patch b/testing/lomiri-app-launch/0001-liblomiri-app-launch-jobs-posix.cpp-pass-more-enviro.patch
new file mode 100644
index 00000000000..276df5b4445
--- /dev/null
+++ b/testing/lomiri-app-launch/0001-liblomiri-app-launch-jobs-posix.cpp-pass-more-enviro.patch
@@ -0,0 +1,27 @@
+From 9ae05ed4263e0c61724e2613101f89759d1b1f09 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Thu, 14 Mar 2024 19:38:29 -0400
+Subject: [PATCH] liblomiri-app-launch/jobs-posix.cpp: pass more environment
+ variables
+
+---
+ liblomiri-app-launch/jobs-posix.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/liblomiri-app-launch/jobs-posix.cpp b/liblomiri-app-launch/jobs-posix.cpp
+index e1639fe..f5b9518 100644
+--- a/liblomiri-app-launch/jobs-posix.cpp
++++ b/liblomiri-app-launch/jobs-posix.cpp
+@@ -211,6 +211,9 @@ std::shared_ptr<Application::Instance> POSIX::launch(
+ {
+ copyEnvByPrefix("QT_", env);
+ copyEnvByPrefix("XDG_", env);
++ copyEnv("HOME", env);
++ copyEnv("DISPLAY", env);
++ copyEnv("WAYLAND_DISPLAY", env);
+
+ /* If we're in Lomiri we don't want to pass it's platform, we want
+ * an application platform. */
+--
+2.43.2
+
diff --git a/testing/lomiri-app-launch/APKBUILD b/testing/lomiri-app-launch/APKBUILD
new file mode 100644
index 00000000000..71bc7b558fa
--- /dev/null
+++ b/testing/lomiri-app-launch/APKBUILD
@@ -0,0 +1,68 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=lomiri-app-launch
+pkgver=0.1.9
+pkgrel=1
+pkgdesc="User space daemon for launching applications"
+arch="all"
+url="https://gitlab.com/ubports/development/core/lomiri-app-launch"
+license="GPL-3.0-only"
+depends_dev="
+ click-dev
+ curl-dev
+ dbus-test-runner-dev
+ gobject-introspection-dev
+ gtest-dev
+ json-glib-dev
+ lomiri-api-dev
+ lttng-ust-dev
+ mir-dev
+ properties-cpp-dev
+ zeitgeist-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ dbus-test-runner
+ glib-dev
+ lttng-ust-tools
+ qt5-qtdeclarative
+ samurai
+ "
+checkdepends="
+ bash
+ gmock
+ gtest-dev
+ py3-dbusmock
+ "
+source="https://gitlab.com/ubports/development/core/lomiri-app-launch/-/archive/$pkgver/lomiri-app-launch-$pkgver.tar.gz
+ 0001-liblomiri-app-launch-jobs-posix.cpp-pass-more-enviro.patch
+ "
+subpackages="$pkgname-dev"
+options="!check" # test 12/13 appears to hang
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DUSE_SYSTEMD=OFF \
+ -DLOMIRI_APP_LAUNCH_ARCH=foo \
+ -DENABLE_MIRCLIENT=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+b00ae1009f9b10126d9d9abc4961d9315e6d1fa086e9c010cf752826a166cb2aa9a3f3aa915900ee1156081e409f3df93be970c23c9e5a31f8ab2fa2b9bbf6c9 lomiri-app-launch-0.1.9.tar.gz
+e8228226e3b4436333dd74869167417a0deaaf9c9c3e62a8b07c7478ccadb44d232320da6389e4aeba737f93adb7b348d077e694410d4d225d9b888a947eb98b 0001-liblomiri-app-launch-jobs-posix.cpp-pass-more-enviro.patch
+"
diff --git a/testing/lomiri-calculator-app/0001-point-qmlscene-to-qmlscene-qt5.patch b/testing/lomiri-calculator-app/0001-point-qmlscene-to-qmlscene-qt5.patch
new file mode 100644
index 00000000000..f78866c0dec
--- /dev/null
+++ b/testing/lomiri-calculator-app/0001-point-qmlscene-to-qmlscene-qt5.patch
@@ -0,0 +1,35 @@
+From 18cc9602d0bf71df38cfaaa5615f6f782be43a72 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Tue, 5 Mar 2024 16:24:28 -0500
+Subject: [PATCH] point qmlscene to qmlscene-qt5
+
+---
+ CMakeLists.txt | 2 +-
+ app/lomiri-calculator-app.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6869c1b..2790571 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -35,7 +35,7 @@ if(CLICK_MODE)
+ set(LOMIRI-CALCULATOR-APP_DIR "${CMAKE_INSTALL_DATADIR}/qml")
+
+ set(QT_IMPORTS_DIR "${CMAKE_INSTALL_LIBDIR}")
+- set(EXEC "lomiri-calculator-app-migrate.py qmlscene -qt5 $@ ${LOMIRI-CALCULATOR-APP_DIR}/${MAIN_QML}")
++ set(EXEC "lomiri-calculator-app-migrate.py qmlscene-qt5 $@ ${LOMIRI-CALCULATOR-APP_DIR}/${MAIN_QML}")
+ if(NOT BZR_REVNO)
+ execute_process(
+ COMMAND bzr revno
+diff --git a/app/lomiri-calculator-app.in b/app/lomiri-calculator-app.in
+index d07f134..6762bd4 100644
+--- a/app/lomiri-calculator-app.in
++++ b/app/lomiri-calculator-app.in
+@@ -1,3 +1,3 @@
+ #!/bin/sh
+ export QT_SELECT=qt5
+-exec qmlscene @CMAKE_INSTALL_PREFIX@/@LOMIRI-CALCULATOR-APP_DIR@/@MAIN_QML@
++exec qmlscene-qt5 @CMAKE_INSTALL_PREFIX@/@LOMIRI-CALCULATOR-APP_DIR@/@MAIN_QML@
+--
+2.43.2
+
diff --git a/testing/lomiri-calculator-app/APKBUILD b/testing/lomiri-calculator-app/APKBUILD
new file mode 100644
index 00000000000..6a0a0059ef2
--- /dev/null
+++ b/testing/lomiri-calculator-app/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-calculator-app
+pkgver=4.0.2
+pkgrel=0
+pkgdesc="A powerful and easy to use calculator"
+url="https://gitlab.com/ubports/development/apps/lomiri-calculator-app"
+arch="all !armhf" # blocked by lomiri-ui-toolkit
+license="GPL-3.0-only"
+source="https://gitlab.com/ubports/development/apps/lomiri-calculator-app/-/archive/v$pkgver/lomiri-calculator-app-v$pkgver.tar.gz
+ 0001-point-qmlscene-to-qmlscene-qt5.patch
+ "
+depends="
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qqc2-suru-style
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ lomiri-trust-store-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+subpackages="$pkgname-lang"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # requires autopilot
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF \
+ -DINSTALL_TESTS=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7642f8e62ce7a2e11474155790283f21c9ab1b16462f16541f5937bfbda1c2eed400fd553a451bb9acacfe8d12348696524d43198ae2745e78bd501f04baa8e7 lomiri-calculator-app-v4.0.2.tar.gz
+86d64f4be2f8277ee044a3b6b7041e4ff6694606f4a506ad1f9f970382ca10ae0ccc3d1b242589ca5e17f26b6258b688587770128c8449c61bce1bb8206fc4f1 0001-point-qmlscene-to-qmlscene-qt5.patch
+"
diff --git a/testing/lomiri-clock-app/0001-point-qmlscene-to-qmlscene-qt5.patch b/testing/lomiri-clock-app/0001-point-qmlscene-to-qmlscene-qt5.patch
new file mode 100644
index 00000000000..4abaa19bc7b
--- /dev/null
+++ b/testing/lomiri-clock-app/0001-point-qmlscene-to-qmlscene-qt5.patch
@@ -0,0 +1,37 @@
+From 7d5caaa5c9e48ca83e1b99340ffc845b8e6a88af Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Tue, 28 Nov 2023 21:01:24 +0100
+Subject: [PATCH] point qmlscene to qmlscene-qt5
+
+---
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7c092b80..2ae948c8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -86,10 +86,10 @@ if(${CLICK_MODE})
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/manifest.json DESTINATION ${CMAKE_INSTALL_PREFIX})
+ install(FILES "${APP_HARDCODE}.json" DESTINATION ${CMAKE_INSTALL_PREFIX})
+ install(PROGRAMS lomiri-clock-app-migrate.py DESTINATION ${CMAKE_INSTALL_PREFIX})
+- set(EXEC "lomiri-clock-app-migrate.py qmlscene -I ${MODULE_PATH} %U ${LOMIRI-CLOCK_APP_DIR}/${MAIN_QML}")
++ set(EXEC "lomiri-clock-app-migrate.py qmlscene-qt5 -I ${MODULE_PATH} %U ${LOMIRI-CLOCK_APP_DIR}/${MAIN_QML}")
+ else(CLICK_MODE)
+ install(PROGRAMS lomiri-clock-app-migrate.py DESTINATION ${CMAKE_INSTALL_PREFIX}/${LOMIRI-CLOCK_APP_DIR})
+- set(EXEC "qmlscene $@ -I ${MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/${LOMIRI-CLOCK_APP_DIR}/${MAIN_QML}")
++ set(EXEC "qmlscene-qt5 $@ -I ${MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/${LOMIRI-CLOCK_APP_DIR}/${MAIN_QML}")
+ endif()
+
+ install(FILES ${URLS_FILE} DESTINATION "${CMAKE_INSTALL_DATADIR}/lomiri-url-dispatcher/urls")
+@@ -124,6 +124,6 @@ add_custom_target("autopilot" chmod +x ${CMAKE_SOURCE_DIR}/tests/autopilot/run
+ DEPENDS timezone timezone-qmldir alarmsettings alarmsettings-qmldir datetime datetime-qmldir geolocation geolocation-qmldir
+ WORKING_DIRECTORY ./app)
+
+-add_custom_target("run" /usr/bin/qmlscene -I ${CMAKE_BINARY_DIR}/backend ${CMAKE_SOURCE_DIR}/app/lomiri-clock-app.qml
++add_custom_target("run" /usr/bin/qmlscene-qt5 -I ${CMAKE_BINARY_DIR}/backend ${CMAKE_SOURCE_DIR}/app/lomiri-clock-app.qml
+ DEPENDS timezone timezone-qmldir alarmsettings alarmsettings-qmldir datetime datetime-qmldir geolocation geolocation-qmldir
+ WORKING_DIRECTORY ./app)
+--
+2.43.0
+
diff --git a/testing/lomiri-clock-app/APKBUILD b/testing/lomiri-clock-app/APKBUILD
new file mode 100644
index 00000000000..37a22bd119e
--- /dev/null
+++ b/testing/lomiri-clock-app/APKBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-clock-app
+pkgver=4.0.3
+pkgrel=0
+pkgdesc="Clock App for Lomiri Operating Environment"
+url="https://gitlab.com/ubports/development/apps/lomiri-clock-app"
+arch="all !armhf" # blocked by lomiri-ui-toolkit
+license="GPL-3.0-only"
+depends="
+ geonames
+ gsettings-qt
+ lomiri-libusermetrics
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qt5-qtlocation
+ u1db-qt
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ geonames-dev
+ gnome-desktop-dev
+ lomiri-trust-store-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+subpackages="$pkgname-lang"
+source="https://gitlab.com/ubports/development/apps/lomiri-clock-app/-/archive/v$pkgver/lomiri-clock-app-v$pkgver.tar.gz
+ 0001-point-qmlscene-to-qmlscene-qt5.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # tests do not run
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d906a34e789dbd486af5c4837ab076485737217910d95bbe1e9b0b8453356c5d08373cd700dd768f41b2440e7c9a57fb7ca699a4fa73f80cf03e66bec3bc0cc4 lomiri-clock-app-v4.0.3.tar.gz
+eccc0ef81f43d59271a613a74eb71c1fa809e5afed581188878dd608a485ee9b2baf7b2f34242cc650bbc35b2a63782d9fa053f1a01e23ce9c5e8a995619a06e 0001-point-qmlscene-to-qmlscene-qt5.patch
+"
diff --git a/testing/lomiri-content-hub/APKBUILD b/testing/lomiri-content-hub/APKBUILD
new file mode 100644
index 00000000000..90e3616bb3d
--- /dev/null
+++ b/testing/lomiri-content-hub/APKBUILD
@@ -0,0 +1,76 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=lomiri-content-hub
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="Content sharing/picking infrastructure and service, designed to allow apps to securely and efficiently exchange content"
+url="https://gitlab.com/ubports/development/core/content-hub"
+arch="all !armhf" # blocked by lomiri-ui-toolkit-dev
+license="GPL-3.0-only AND LGPL-3.0-only"
+depends_dev="
+ gsettings-qt-dev
+ libapparmor-dev
+ libnih-dev
+ libnotify-dev
+ lomiri-app-launch-dev
+ lomiri-download-manager-dev
+ lomiri-ui-toolkit-dev
+ qt5-qtdeclarative-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ doxygen
+ graphviz
+ gtest-dev
+ libapparmor
+ qt5-qttools-dev
+ samurai
+ "
+checkdepends="
+ dbus-test-runner
+ gmock
+ xvfb-run
+ "
+source="https://gitlab.com/ubports/development/core/content-hub/-/archive/$pkgver/content-hub-$pkgver.tar.gz
+ qdoc.patch
+ qmlplugindump.patch
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+builddir="$srcdir/content-hub-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DWerror=OFF
+ cmake --build build
+}
+
+check() {
+ # Some app_hub_communication_* tests require some custom dbus extension
+ # (GetConnectionAppArmorSecurityContext).
+ xvfb-run ctest --test-dir build --output-on-failure \
+ -E 'app_hub_communication_store_migration|app_hub_communication_transfer|app_hub_communication_handler'
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # Remove files for testing only
+ # https://gitlab.com/ubports/development/core/content-hub/-/blob/main/debian/content-hub-testability.install
+ rm "$pkgdir"/usr/bin/content-hub-test*
+ rm "$pkgdir"/usr/share/content-hub/peers/content-hub-test*
+ rm "$pkgdir"/usr/share/applications/content-hub-test*
+ rm -r "$pkgdir"/usr/share/content-hub/testability/data
+ rm "$pkgdir"/usr/share/icons/hicolor/512x512/apps/content-hub-test*
+}
+
+sha512sums="
+b14dc28bf81adfd1eb5b52f38c744fdcc7e4a5aedc8f220dbdf01b1d78adb4de269db6a6f3bf5edf711cdd6f429e4d6b8c1e318f4b8bdc7e0fceb3597c019f40 content-hub-1.1.1.tar.gz
+32f307cbe1418842315080627240e9b2fe0ea26c96197da446d2a239a19c947a91fbf242a87d8ebb2b6d4f729e8ce2adc71b3592513d14479e39b45ce7d0085e qdoc.patch
+639a3b2ea44d436f0a5e61dae77a71e7650b8d5a0073e5f04d0af0ac3060675cf93c927f5cfddfabc09866a7b5ab36810a109597ae3cc43865e5b1680c5a9b28 qmlplugindump.patch
+"
diff --git a/testing/lomiri-content-hub/qdoc.patch b/testing/lomiri-content-hub/qdoc.patch
new file mode 100644
index 00000000000..c4110240418
--- /dev/null
+++ b/testing/lomiri-content-hub/qdoc.patch
@@ -0,0 +1,17 @@
+diff --git a/doc/qml/CMakeLists.txt b/doc/qml/CMakeLists.txt
+index 4e14324..6f2f537 100644
+--- a/doc/qml/CMakeLists.txt
++++ b/doc/qml/CMakeLists.txt
+@@ -1,10 +1,9 @@
+ # add a target to generate API documentation with qdoc
+ SET(QDOC_WORKS FALSE)
+-SET(ENV{QT_SELECT} qt5)
+-FIND_PROGRAM(QDOC_EXECUTABLE qdoc)
++FIND_PROGRAM(QDOC_EXECUTABLE qdoc-qt5)
+ if(QDOC_EXECUTABLE)
+ EXECUTE_PROCESS(COMMAND ${QDOC_EXECUTABLE} --version OUTPUT_VARIABLE QDOC_OUTPUT ERROR_QUIET)
+-string(REGEX REPLACE "qdoc ([0-9]+(\\.[0-9]+)+).*" "\\1" QDOC_VERSION ${QDOC_OUTPUT})
++string(REGEX REPLACE "qdoc-qt5 ([0-9]+(\\.[0-9]+)+).*" "\\1" QDOC_VERSION ${QDOC_OUTPUT})
+ if(QDOC_VERSION MATCHES "^5\\.")
+ set(QDOC_WORKS TRUE)
+ endif()
diff --git a/testing/lomiri-content-hub/qmlplugindump.patch b/testing/lomiri-content-hub/qmlplugindump.patch
new file mode 100644
index 00000000000..f4a31e18397
--- /dev/null
+++ b/testing/lomiri-content-hub/qmlplugindump.patch
@@ -0,0 +1,13 @@
+diff --git a/import/Lomiri/Content/CMakeLists.txt b/import/Lomiri/Content/CMakeLists.txt
+index d2382a3..055ea34 100644
+--- a/import/Lomiri/Content/CMakeLists.txt
++++ b/import/Lomiri/Content/CMakeLists.txt
+@@ -93,7 +93,7 @@ endif()
+
+ if(NOT CMAKE_CROSSCOMPILING)
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+- COMMAND qmlplugindump -qt=qt5 -noinstantiate -notrelocatable Lomiri.Content 1.1 ../../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
++ COMMAND qmlplugindump-qt5 -noinstantiate -notrelocatable Lomiri.Content 1.1 ../../ > ${CMAKE_CURRENT_BINARY_DIR}/plugins.qmltypes
+ DEPENDS ${PLUGIN}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ )
diff --git a/testing/lomiri-docviewer-app/0001-non-click-mode-install-icon-and-splash.patch b/testing/lomiri-docviewer-app/0001-non-click-mode-install-icon-and-splash.patch
new file mode 100644
index 00000000000..93f018517aa
--- /dev/null
+++ b/testing/lomiri-docviewer-app/0001-non-click-mode-install-icon-and-splash.patch
@@ -0,0 +1,85 @@
+From 09dfa87f3189c6b26d717a7cd470d7c79254f2f7 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Mon, 26 Feb 2024 09:55:57 +0100
+Subject: [PATCH 1/3] CMakeLists.txt: Use SVG icon as desktop app icon.
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ebcb355..a085c40 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,7 +21,7 @@ set(LIBREOFFICE_INCLUDE_DIR "" CACHE PATH "Custom LibreOfficeKit include directo
+
+ set(APP_NAME lomiri-docviewer-app)
+ set(DESKTOP_FILE "${PROJECT_NAME}.desktop")
+-set(ICON_FILE docviewer-app.png)
++set(ICON_FILE docviewer-app.svg)
+ set(SPLASH_FILE docviewer-app-splash.svg)
+ set(AUTOPILOT_DIR lomiri_docviewer_app)
+
+--
+GitLab
+
+
+From 3797d91f205ca72166e413bf2272a09164dd5c72 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Mon, 26 Feb 2024 09:56:06 +0100
+Subject: [PATCH 2/3] data/CMakeLists.txt: In non-click mode, fix installation
+ of desktop app icon into datadir.
+
+---
+ data/CMakeLists.txt | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 05b1f4e..ce552e1 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -11,9 +11,7 @@ else(CLICK_MODE)
+ set(DESKTOP_DIR ${CMAKE_INSTALL_DATADIR}/applications)
+ set(EXEC "${APP_NAME}")
+
+- install(DIRECTORY icons/hicolor DESTINATION ${CMAKE_INSTALL_DATADIR}/icons
+- FILES_MATCHING PATTERN *.png
+- )
++ install(FILES ${ICON_FILE} DESTINATION ${DATA_DIR})
+ endif(CLICK_MODE)
+
+ set(TRYEXEC "${APP_NAME}")
+--
+GitLab
+
+
+From 4d09277013f3ae12772a3888d90083c4c7ceff1c Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Mon, 26 Feb 2024 09:56:31 +0100
+Subject: [PATCH 3/3] data/CMakeLists.txt: Do install splash file in non-click
+ mode.
+
+---
+ data/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index ce552e1..da34181 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -8,10 +8,12 @@ if(CLICK_MODE)
+ install(FILES ${SPLASH_FILE} DESTINATION ${DATA_DIR})
+ else(CLICK_MODE)
+ set(ICON "${CMAKE_INSTALL_PREFIX}/${DATA_DIR}/${ICON_FILE}")
++ set(SPLASH "${CMAKE_INSTALL_PREFIX}/${DATA_DIR}/${SPLASH_FILE}")
+ set(DESKTOP_DIR ${CMAKE_INSTALL_DATADIR}/applications)
+ set(EXEC "${APP_NAME}")
+
+ install(FILES ${ICON_FILE} DESTINATION ${DATA_DIR})
++ install(FILES ${SPLASH_FILE} DESTINATION ${DATA_DIR})
+ endif(CLICK_MODE)
+
+ set(TRYEXEC "${APP_NAME}")
+--
+GitLab
+
diff --git a/testing/lomiri-docviewer-app/APKBUILD b/testing/lomiri-docviewer-app/APKBUILD
new file mode 100644
index 00000000000..f908a6bfa20
--- /dev/null
+++ b/testing/lomiri-docviewer-app/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-docviewer-app
+pkgver=3.0.4
+pkgrel=0
+pkgdesc="A Document Viewer application capable of opening many common document file formats"
+url="https://gitlab.com/ubports/development/apps/lomiri-docviewer-app"
+# blocked by lomiri-ui-toolkit and libreofficekit
+arch="all !armhf !ppc64le !s390x !riscv64"
+license="GPL-3.0-only"
+source="https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/archive/v$pkgver/lomiri-docviewer-app-v$pkgver.tar.gz
+ 0001-non-click-mode-install-icon-and-splash.patch
+ "
+depends="
+ lomiri-content-hub
+ lomiri-thumbnailer
+ lomiri-trust-store
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ poppler-qt5
+ qqc2-suru-style
+ qt5-qtmultimedia
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ libreofficekit
+ poppler-qt5-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # requires autopilot
+subpackages="$pkgname-lang $pkgname-doc"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF \
+ -DINSTALL_TESTS=Off
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+b4ec929c432c28aaec3f011fd70a9e35708ff1e202a785624aa4bc4ffbb8664101362a1a9a4fa8d72529d4e455bd3c9b249659d266f6d2d2c69b353629fecb6f lomiri-docviewer-app-v3.0.4.tar.gz
+0f308ab1c1e6cc0cc6fc154936c9d103594249ab7c3fa1022f0d454c0c57b769f86b4fbff63950b47e43f28c43638fa9315772ee4cbe41aa7b75197cdf33f172 0001-non-click-mode-install-icon-and-splash.patch
+"
diff --git a/testing/lomiri-download-manager/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch b/testing/lomiri-download-manager/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
new file mode 100644
index 00000000000..02d85281faa
--- /dev/null
+++ b/testing/lomiri-download-manager/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
@@ -0,0 +1,218 @@
+From 58412c9afc9e6caa0fc1f848958ae1e4631dd1a2 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 31 Jan 2024 22:45:49 +0100
+Subject: [PATCH] Use CMAKE_INSTALL_FULL_* for installing
+
+While I don't think there should be a difference between the two
+variables for most cases, for SYSCONFDIR we might end up installing into
+/usr/etc/ if we don't use the FULL_SYSCONFDIR variable.
+---
+ CMakeLists.txt | 2 +-
+ docs/CMakeLists.txt | 2 +-
+ docs/man/CMakeLists.txt | 2 +-
+ docs/qml/CMakeLists.txt | 2 +-
+ po/CMakeLists.txt | 2 +-
+ src/common/priv/CMakeLists.txt | 2 +-
+ src/common/public/CMakeLists.txt | 8 ++++----
+ src/downloads/client/CMakeLists.txt | 6 +++---
+ src/downloads/common/CMakeLists.txt | 6 +++---
+ src/downloads/daemon/CMakeLists.txt | 8 ++++----
+ src/downloads/priv/CMakeLists.txt | 2 +-
+ src/extractor/CMakeLists.txt | 2 +-
+ src/uploads/common/CMakeLists.txt | 6 +++---
+ src/uploads/daemon/CMakeLists.txt | 8 ++++----
+ 14 files changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8c4750a2..c183b3d2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,7 +34,7 @@ IF(CMAKE_BUILD_TYPE MATCHES [cC][oO][vV][eE][rR][aA][gG][eE])
+ ENABLE_COVERAGE_REPORT(TARGETS ${DIALER_APP})
+ ENDIF(CMAKE_BUILD_TYPE MATCHES [cC][oO][vV][eE][rR][aA][gG][eE])
+
+-set(QT_INSTALL_QML "${CMAKE_INSTALL_LIBDIR}/qt5/qml")
++set(QT_INSTALL_QML "${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml")
+
+ set(LDM_VERSION_MAJOR 0)
+ set(LDM_VERSION_MINOR 1)
+diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
+index 059b8797..0658acaa 100644
+--- a/docs/CMakeLists.txt
++++ b/docs/CMakeLists.txt
+@@ -28,7 +28,7 @@ if(DOXYGEN_FOUND)
+ COMMENT "Generating API documentation with Doxygen" VERBATIM)
+ install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html
+- DESTINATION ${CMAKE_INSTALL_DOCDIR}/cpp)
++ DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR}/cpp)
+ add_dependencies(doc cppdoc)
+ endif(DOXYGEN_FOUND)
+
+diff --git a/docs/man/CMakeLists.txt b/docs/man/CMakeLists.txt
+index d51c7a65..1e17c01e 100644
+--- a/docs/man/CMakeLists.txt
++++ b/docs/man/CMakeLists.txt
+@@ -2,5 +2,5 @@ install(
+ FILES
+ lomiri-download-manager.1
+ lomiri-upload-manager.1
+- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/
++ DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1/
+ )
+diff --git a/docs/qml/CMakeLists.txt b/docs/qml/CMakeLists.txt
+index 8fd39d22..26579b02 100644
+--- a/docs/qml/CMakeLists.txt
++++ b/docs/qml/CMakeLists.txt
+@@ -31,7 +31,7 @@ file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/css"
+
+ install(
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
+- DESTINATION ${CMAKE_INSTALL_DOCDIR}/qml/html
++ DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR}/qml/html
+ )
+
+ add_dependencies(doc qmldoc)
+diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
+index f5c1f3ed..ae887c7c 100644
+--- a/po/CMakeLists.txt
++++ b/po/CMakeLists.txt
+@@ -21,7 +21,7 @@ add_custom_target(${POT_FILE}
+ foreach(PO_FILE ${PO_FILES})
+ get_filename_component(LANG ${PO_FILE} NAME_WE)
+ gettext_process_po_files(${LANG} ALL PO_FILES ${PO_FILE})
+- set(INSTALL_DIR ${CMAKE_INSTALL_LOCALEDIR}/${LANG}/LC_MESSAGES)
++ set(INSTALL_DIR ${CMAKE_INSTALL_FULL_LOCALEDIR}/${LANG}/LC_MESSAGES)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LANG}.gmo
+ DESTINATION ${INSTALL_DIR}
+ RENAME ${DOMAIN}.mo)
+diff --git a/src/common/priv/CMakeLists.txt b/src/common/priv/CMakeLists.txt
+index e7723f3d..fe0596a4 100644
+--- a/src/common/priv/CMakeLists.txt
++++ b/src/common/priv/CMakeLists.txt
+@@ -83,4 +83,4 @@ target_link_libraries(${TARGET}
+ ldm-common
+ )
+
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
+diff --git a/src/common/public/CMakeLists.txt b/src/common/public/CMakeLists.txt
+index 4b1e8660..95738aa7 100644
+--- a/src/common/public/CMakeLists.txt
++++ b/src/common/public/CMakeLists.txt
+@@ -57,7 +57,7 @@ target_link_libraries(${TARGET}
+
+ configure_file(${TARGET}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc @ONLY)
+
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(FILES ${TRANSFERS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lomiri/transfers)
+-install(FILES ${ERRORS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lomiri/transfers/errors)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
++install(FILES ${TRANSFERS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/lomiri/transfers)
++install(FILES ${ERRORS_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/lomiri/transfers/errors)
+diff --git a/src/downloads/client/CMakeLists.txt b/src/downloads/client/CMakeLists.txt
+index d622434c..79ae0d34 100644
+--- a/src/downloads/client/CMakeLists.txt
++++ b/src/downloads/client/CMakeLists.txt
+@@ -71,6 +71,6 @@ target_link_libraries(${TARGET}
+
+ configure_file(${TARGET}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc @ONLY)
+
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lomiri/download_manager)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
++install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/lomiri/download_manager)
+diff --git a/src/downloads/common/CMakeLists.txt b/src/downloads/common/CMakeLists.txt
+index 23fa1482..448e773a 100644
+--- a/src/downloads/common/CMakeLists.txt
++++ b/src/downloads/common/CMakeLists.txt
+@@ -47,6 +47,6 @@ target_link_libraries(${TARGET}
+
+ configure_file(${TARGET}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc @ONLY)
+
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lomiri/download_manager)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
++install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/lomiri/download_manager)
+diff --git a/src/downloads/daemon/CMakeLists.txt b/src/downloads/daemon/CMakeLists.txt
+index cdc9f83b..a0e94a74 100644
+--- a/src/downloads/daemon/CMakeLists.txt
++++ b/src/downloads/daemon/CMakeLists.txt
+@@ -43,9 +43,9 @@ if(USE_SYSTEMD)
+ endif()
+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.service DESTINATION
+- ${CMAKE_INSTALL_DATADIR}/dbus-1/services)
++ ${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/services)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/com.lomiri.applications.Downloader.service DESTINATION
+- ${CMAKE_INSTALL_DATADIR}/dbus-1/system-services)
++ ${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/system-services)
+ install(FILES com.lomiri.applications.Downloader.conf DESTINATION
+- ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d)
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_BINDIR})
++ ${CMAKE_INSTALL_FULL_SYSCONFDIR}/dbus-1/system.d)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
+diff --git a/src/downloads/priv/CMakeLists.txt b/src/downloads/priv/CMakeLists.txt
+index 9eaf3092..40b1093d 100644
+--- a/src/downloads/priv/CMakeLists.txt
++++ b/src/downloads/priv/CMakeLists.txt
+@@ -49,7 +49,7 @@ include_directories(${CMAKE_SOURCE_DIR}/src/common/public)
+ include_directories(${CMAKE_SOURCE_DIR}/src/common/priv)
+ include_directories(${CMAKE_SOURCE_DIR}/src/downloads/common)
+
+-add_definitions(-DHELPER_DIR="${CMAKE_INSTALL_LIBEXECDIR}/lomiri-download-manager")
++add_definitions(-DHELPER_DIR="${CMAKE_INSTALL_FULL_LIBEXECDIR}/lomiri-download-manager")
+
+ add_library(${TARGET} STATIC
+ ${HEADERS}
+diff --git a/src/extractor/CMakeLists.txt b/src/extractor/CMakeLists.txt
+index 8c40b9b5..9efc64ed 100644
+--- a/src/extractor/CMakeLists.txt
++++ b/src/extractor/CMakeLists.txt
+@@ -29,4 +29,4 @@ target_link_libraries(${TARGET}
+ ldm-priv-common
+ )
+
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/lomiri-download-manager)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR}/lomiri-download-manager)
+diff --git a/src/uploads/common/CMakeLists.txt b/src/uploads/common/CMakeLists.txt
+index 0729445f..aa444553 100644
+--- a/src/uploads/common/CMakeLists.txt
++++ b/src/uploads/common/CMakeLists.txt
+@@ -41,6 +41,6 @@ target_link_libraries(${TARGET}
+
+ configure_file(${TARGET}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc @ONLY)
+
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lomiri/upload_manager)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.pc DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR})
++install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/lomiri/upload_manager)
+diff --git a/src/uploads/daemon/CMakeLists.txt b/src/uploads/daemon/CMakeLists.txt
+index 157c6fd6..9731899d 100644
+--- a/src/uploads/daemon/CMakeLists.txt
++++ b/src/uploads/daemon/CMakeLists.txt
+@@ -43,9 +43,9 @@ if(USE_SYSTEMD)
+ endif()
+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}.service DESTINATION
+- ${CMAKE_INSTALL_DATADIR}/dbus-1/services)
++ ${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/services)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/com.lomiri.applications.Uploader.service DESTINATION
+- ${CMAKE_INSTALL_DATADIR}/dbus-1/system-services)
++ ${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/system-services)
+ install(FILES com.lomiri.applications.Uploader.conf DESTINATION
+- ${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d)
+-install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_BINDIR})
++ ${CMAKE_INSTALL_FULL_SYSCONFDIR}/dbus-1/system.d)
++install(TARGETS ${TARGET} DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})
+--
+2.43.0
+
diff --git a/testing/lomiri-download-manager/0001-docs-use-qdoc-qt5-directly-instead-of-qtswitcher.patch b/testing/lomiri-download-manager/0001-docs-use-qdoc-qt5-directly-instead-of-qtswitcher.patch
new file mode 100644
index 00000000000..a5e51db1ece
--- /dev/null
+++ b/testing/lomiri-download-manager/0001-docs-use-qdoc-qt5-directly-instead-of-qtswitcher.patch
@@ -0,0 +1,29 @@
+From ea2ef8fe05fa0ff60bd11ff6db0d98b7cbb78299 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 7 Jun 2023 12:03:31 +0200
+Subject: [PATCH] docs: use qdoc-qt5 directly instead of qtswitcher
+
+---
+ docs/qml/CMakeLists.txt | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/docs/qml/CMakeLists.txt b/docs/qml/CMakeLists.txt
+index 8fd39d22..0f6c29a6 100644
+--- a/docs/qml/CMakeLists.txt
++++ b/docs/qml/CMakeLists.txt
+@@ -1,10 +1,9 @@
+ # add a target to generate API documentation with qdoc 5.x
+ SET(QDOC_WORKS FALSE)
+-SET(ENV{QT_SELECT} qt5)
+-FIND_PROGRAM(QDOC_EXECUTABLE qdoc)
++FIND_PROGRAM(QDOC_EXECUTABLE qdoc-qt5)
+ if(QDOC_EXECUTABLE)
+ EXECUTE_PROCESS(COMMAND ${QDOC_EXECUTABLE} --version OUTPUT_VARIABLE QDOC_OUTPUT ERROR_QUIET)
+-string(REGEX REPLACE "qdoc ([0-9]+(\\.[0-9]+)+).*" "\\1" QDOC_VERSION ${QDOC_OUTPUT})
++string(REGEX REPLACE "qdoc-qt5 ([0-9]+(\\.[0-9]+)+).*" "\\1" QDOC_VERSION ${QDOC_OUTPUT})
+ if(QDOC_VERSION MATCHES "^5\\.")
+ set(QDOC_WORKS TRUE)
+ endif()
+--
+2.43.0
+
diff --git a/testing/lomiri-download-manager/APKBUILD b/testing/lomiri-download-manager/APKBUILD
new file mode 100644
index 00000000000..10af07359c2
--- /dev/null
+++ b/testing/lomiri-download-manager/APKBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=lomiri-download-manager
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Provides a service for downloading files while an application is suspended"
+arch="all"
+url="https://gitlab.com/ubports/development/core/lomiri-download-manager"
+license="LGPL-3.0-only"
+depends_dev="
+ boost-dev
+ glog-dev
+ gtest-dev
+ lomiri-api-dev
+ qt5-qtdeclarative-dev
+ qt5-qttools-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ doxygen
+ gmock
+ graphviz
+ samurai
+ "
+checkdepends="dbus-test-runner xvfb-run"
+source="https://gitlab.com/ubports/development/core/lomiri-download-manager/-/archive/$pkgver/lomiri-download-manager-$pkgver.tar.gz
+ 0001-docs-use-qdoc-qt5-directly-instead-of-qtswitcher.patch
+ 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DUSE_SYSTEMD=OFF \
+ -DENABLE_WERROR=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+693dbaa85dc227a2c1ed26acc4bf662c888f45df544868906c9d405c62e32215a4825e03ba548ce3aa38f7c9a0c9c7c8e58198c4384c54aec343dfa47b7ab99c lomiri-download-manager-0.1.3.tar.gz
+6b387c39a3073d9f7c3c90724db192490f435c1fef72489188908ee13e512b56234f8b0ac45469fd5f4cb1a961338f85a1534440c99ba992bc461547df7f024d 0001-docs-use-qdoc-qt5-directly-instead-of-qtswitcher.patch
+ad8e60484201053b93585a3f818409ba8c235d57590454084f0d3c3dcb2e62297fc277a2662f5dd1a19c0682fb3200089d752e01cd585ef7d4a6a7fcc52b9fd8 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+"
diff --git a/testing/lomiri-filemanager-app/0001-include-paths.h.patch b/testing/lomiri-filemanager-app/0001-include-paths.h.patch
new file mode 100644
index 00000000000..549f89826af
--- /dev/null
+++ b/testing/lomiri-filemanager-app/0001-include-paths.h.patch
@@ -0,0 +1,25 @@
+From 0bb6c9dd19989dcc54d0a2c93bb67b5db9abff0f Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 31 Dec 2023 13:37:18 -0500
+Subject: [PATCH] include paths.h
+
+---
+ src/plugin/placesmodel/qmtabparser.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/plugin/placesmodel/qmtabparser.cpp b/src/plugin/placesmodel/qmtabparser.cpp
+index 0ce1e73b..45549b42 100644
+--- a/src/plugin/placesmodel/qmtabparser.cpp
++++ b/src/plugin/placesmodel/qmtabparser.cpp
+@@ -24,6 +24,8 @@
+ #include <QFileInfo>
+ #include <QStringList>
+
++#include <paths.h>
++
+ class MtabFileGuard
+ {
+ FILE *mtabFile;
+--
+2.43.0
+
diff --git a/testing/lomiri-filemanager-app/0002-link-libintl.patch b/testing/lomiri-filemanager-app/0002-link-libintl.patch
new file mode 100644
index 00000000000..76fdd921d70
--- /dev/null
+++ b/testing/lomiri-filemanager-app/0002-link-libintl.patch
@@ -0,0 +1,25 @@
+From fef0cf28275e471e069f570e460746b89bb6d7a6 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 31 Dec 2023 13:40:37 -0500
+Subject: [PATCH] link libintl
+
+---
+ src/app/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
+index dc22cc94..fb978121 100644
+--- a/src/app/CMakeLists.txt
++++ b/src/app/CMakeLists.txt
+@@ -12,7 +12,7 @@ set(filemanager_SRCS
+ add_executable(lomiri-filemanager-app ${filemanager_SRCS})
+
+ qt5_use_modules(lomiri-filemanager-app Gui Qml Quick)
+-target_link_libraries(lomiri-filemanager-app stdc++)
++target_link_libraries(lomiri-filemanager-app stdc++ -lintl)
+
+ if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
+ add_custom_target(lomiri-filemanager-app-qmlfiles ALL
+--
+2.43.0
+
diff --git a/testing/lomiri-filemanager-app/APKBUILD b/testing/lomiri-filemanager-app/APKBUILD
new file mode 100644
index 00000000000..30bfd2e8adb
--- /dev/null
+++ b/testing/lomiri-filemanager-app/APKBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-filemanager-app
+pkgver=1.0.4
+pkgrel=0
+pkgdesc="A convergent file manager supporting both mobile devices and desktops"
+url="https://gitlab.com/ubports/development/apps/lomiri-filemanager-app"
+arch="all !armhf" # blocked by lomiri-ui-toolkit
+license="GPL-3.0-only"
+source="https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/archive/v$pkgver/lomiri-filemanager-app-v$pkgver.tar.gz
+ 0001-include-paths.h.patch
+ 0002-link-libintl.patch
+ "
+depends="
+ lomiri-content-hub
+ lomiri-thumbnailer
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qqc2-suru-style
+ samba
+ suru-icon-theme
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ libsmbclient
+ lomiri-trust-store-dev
+ musl-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samba-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # requires autopilot
+subpackages="$pkgname-lang"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF \
+ -DINSTALL_TESTS=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a22b3d952779569d0cf9f23a86b876b1024301d5a40ff8b30e4076bc60868e50a09447e7c2212902f58e18a0e67b6fab508244050a8f8560beffe6d2e2d53263 lomiri-filemanager-app-v1.0.4.tar.gz
+b3abc5dfb4b7d6ed9923b3819bebb42316d9d7fb383d60ae36c6d523c6b49d0b8aeec20bc13fe45887cfa5254fb51ad366b86891d0611dcabe15e44faedbe8bd 0001-include-paths.h.patch
+8a129769115f4c4381c771ad38b8a02071ba11fa686d4337e707272c0fb62536973784980df0df42052b051e6d532697e3b592bd48e033ade5467f9a3f624107 0002-link-libintl.patch
+"
diff --git a/testing/lomiri-gallery-app/0001-update-for-newer-Exiv2-version.patch b/testing/lomiri-gallery-app/0001-update-for-newer-Exiv2-version.patch
new file mode 100644
index 00000000000..5cfbe030a57
--- /dev/null
+++ b/testing/lomiri-gallery-app/0001-update-for-newer-Exiv2-version.patch
@@ -0,0 +1,66 @@
+From ab358e7a51375945c1f6119a08ce5ccc03bce34a Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 31 Dec 2023 14:07:54 -0500
+Subject: [PATCH] update for newer Exiv2 version
+
+---
+ src/photo/photo-metadata.cpp | 8 ++++----
+ src/photo/photo-metadata.h | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/photo/photo-metadata.cpp b/src/photo/photo-metadata.cpp
+index ac4a0b05..f9a08ae8 100644
+--- a/src/photo/photo-metadata.cpp
++++ b/src/photo/photo-metadata.cpp
+@@ -134,7 +134,7 @@ PhotoMetadata* PhotoMetadata::fromFile(const char* filepath)
+ result->m_keysPresent.insert(QString(i->key().c_str()));
+
+ return result;
+- } catch (Exiv2::AnyError& e) {
++ } catch (Exiv2::Error& e) {
+ qDebug("Error loading image metadata: %s", e.what());
+ delete result;
+ return NULL;
+@@ -165,7 +165,7 @@ Orientation PhotoMetadata::orientation() const
+ if (m_keysPresent.find(EXIF_ORIENTATION_KEY) == m_keysPresent.end())
+ return DEFAULT_ORIENTATION;
+
+- long orientation_code = exif_data[EXIF_ORIENTATION_KEY].toLong();
++ long orientation_code = exif_data[EXIF_ORIENTATION_KEY].toUint32();
+ if (orientation_code < MIN_ORIENTATION || orientation_code > MAX_ORIENTATION)
+ return DEFAULT_ORIENTATION;
+
+@@ -244,7 +244,7 @@ void PhotoMetadata::setDateTimeDigitized(const QDateTime& digitized)
+ if (!m_keysPresent.contains(EXIF_DATETIMEDIGITIZED_KEY))
+ m_keysPresent.insert(EXIF_DATETIMEDIGITIZED_KEY);
+
+- } catch (Exiv2::AnyError& e) {
++ } catch (Exiv2::Error& e) {
+ qDebug("Do not set DateTimeDigitized, error reading image metadata; %s", e.what());
+ return;
+ }
+@@ -259,7 +259,7 @@ bool PhotoMetadata::save() const
+ try {
+ m_image->writeMetadata();
+ return true;
+- } catch (Exiv2::AnyError& e) {
++ } catch (Exiv2::Error& e) {
+ return false;
+ }
+ }
+diff --git a/src/photo/photo-metadata.h b/src/photo/photo-metadata.h
+index a2687b8d..97f27acd 100644
+--- a/src/photo/photo-metadata.h
++++ b/src/photo/photo-metadata.h
+@@ -59,7 +59,7 @@ public:
+ private:
+ PhotoMetadata(const char* filepath);
+
+- Exiv2::Image::AutoPtr m_image;
++ Exiv2::Image::UniquePtr m_image;
+ QSet<QString> m_keysPresent;
+ QFileInfo m_fileSourceInfo;
+ };
+--
+2.43.0
+
diff --git a/testing/lomiri-gallery-app/0002-disable-werror.patch b/testing/lomiri-gallery-app/0002-disable-werror.patch
new file mode 100644
index 00000000000..cf06062a41a
--- /dev/null
+++ b/testing/lomiri-gallery-app/0002-disable-werror.patch
@@ -0,0 +1,25 @@
+From 07e6f48526d8acd7a8a8bb0d8fb399cfb87dc7eb Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 31 Dec 2023 14:19:21 -0500
+Subject: [PATCH] disable werror
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 76eff6aa..c3073013 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -42,7 +42,7 @@ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(EXIV2 REQUIRED exiv2)
+ pkg_check_modules(MEDIAINFO REQUIRED libmediainfo)
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Werror")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
+ set(CMAKE_EXE_LINKER_FLAGS "-s")
+
+ # Activate C++11 on Cmake >= 3.1
+--
+2.43.0
+
diff --git a/testing/lomiri-gallery-app/APKBUILD b/testing/lomiri-gallery-app/APKBUILD
new file mode 100644
index 00000000000..d9ad50a3036
--- /dev/null
+++ b/testing/lomiri-gallery-app/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-gallery-app
+pkgver=3.0.2
+pkgrel=0
+pkgdesc="Photo gallery for the Ubuntu Touch platform"
+url="https://gitlab.com/ubports/development/apps/lomiri-gallery-app"
+arch="all !armhf" # blocked by lomiri-ui-toolkit
+license="GPL-3.0-only"
+source="https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/archive/v$pkgver/lomiri-gallery-app-v$pkgver.tar.gz
+ 0001-update-for-newer-Exiv2-version.patch
+ 0002-disable-werror.patch"
+depends="
+ exiv2
+ libmediainfo
+ lomiri-thumbnailer
+ lomiri-trust-store
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qqc2-suru-style
+ qt5-qtmultimedia
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ exiv2-dev
+ libmediainfo-dev
+ lomiri-trust-store-dev
+ mesa-gles
+ qt5-qtbase-dev
+ qt5-qtbase-sqlite
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # requires autopilot
+subpackages="$pkgname-lang"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF \
+ -DINSTALL_TESTS=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+408ab6883e82f9862e9eaa578652f48121707421bcd9672a7bcdc4412cb740a1f6077326badaadb79807de538dd5c31084706c9014fe3994c0725dfad7adb381 lomiri-gallery-app-v3.0.2.tar.gz
+e5e0eecd9b6926ff2a8359ebd3a59b5189e939cd830d0378f7a2271401f51c320061df6700a3d7ff5f2b0de274db02e6c02a2b0974498255351e3be3e186e7d1 0001-update-for-newer-Exiv2-version.patch
+01e020651ba57625476138cac716714843aceb2896bb49a3510a8adabed4579fc6c33871df5afb3a449a736c6d54b52cd23fa33aec8ca9110b1bbe908bf20461 0002-disable-werror.patch
+"
diff --git a/testing/lomiri-history-service/0001-CMakeLists.txt-Add-ENABLE_WERROR-CMake-option-defaul.patch b/testing/lomiri-history-service/0001-CMakeLists.txt-Add-ENABLE_WERROR-CMake-option-defaul.patch
new file mode 100644
index 00000000000..6ca2fe29b43
--- /dev/null
+++ b/testing/lomiri-history-service/0001-CMakeLists.txt-Add-ENABLE_WERROR-CMake-option-defaul.patch
@@ -0,0 +1,38 @@
+From af704299654bc2c1816454da23e7da5fb5f74318 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Fri, 13 Jan 2023 10:55:22 +0100
+Subject: [PATCH 1/4] CMakeLists.txt: Add ENABLE_WERROR CMake option,
+ defaulting to ON.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ CMakeLists.txt | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e61fea5..7e9e9ca 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -79,12 +79,17 @@ enable_testing()
+
+ add_definitions(-std=c++11)
+
+-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Werror")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall")
+ # TODO remove the need for -Wno-unused-variable
+ # unused-variable currently fails because of public headers includes static char's
+ # there is also a gcc bug that makes it not possable to rely on diagnostic pragmas
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69967
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wno-unused-variable")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-variable")
++
++option(ENABLE_WERROR "Treat all build warnings as errors" ON)
++if(ENABLE_WERROR)
++ add_compile_options(-Werror)
++endif()
+
+ # Define the version to be used in the library
+ set(HISTORY_VERSION_MAJOR 0)
+--
+2.42.1
+
diff --git a/testing/lomiri-history-service/0002-upgrade-to-C-17.patch b/testing/lomiri-history-service/0002-upgrade-to-C-17.patch
new file mode 100644
index 00000000000..ba836c6e077
--- /dev/null
+++ b/testing/lomiri-history-service/0002-upgrade-to-C-17.patch
@@ -0,0 +1,25 @@
+From 47323491d7054c28f24e34e7baa644b2f1a19833 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 15 Oct 2023 20:57:38 -0400
+Subject: [PATCH 2/4] upgrade to C++17
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7e9e9ca..b4d1a8a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -77,7 +77,7 @@ endfunction()
+
+ enable_testing()
+
+-add_definitions(-std=c++11)
++add_definitions(-std=c++17)
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall")
+ # TODO remove the need for -Wno-unused-variable
+--
+2.42.1
+
diff --git a/testing/lomiri-history-service/0003-remove-systemd-dependency.patch b/testing/lomiri-history-service/0003-remove-systemd-dependency.patch
new file mode 100644
index 00000000000..42a1438c4dd
--- /dev/null
+++ b/testing/lomiri-history-service/0003-remove-systemd-dependency.patch
@@ -0,0 +1,24 @@
+From 5af65080d792d88131bf76bb642518e99279b9da Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 15 Oct 2023 16:52:02 -0400
+Subject: [PATCH 3/4] remove systemd dependency
+
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b4d1a8a..3c28459 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -47,7 +47,6 @@ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(TP_QT5 REQUIRED TelepathyQt5)
+ pkg_check_modules(SQLITE3 REQUIRED sqlite3)
+ pkg_check_modules(QTGLIB QtGLib-2.0)
+-pkg_check_modules(SYSTEMD REQUIRED systemd)
+
+ find_program(DBUS_RUNNER dbus-test-runner)
+
+--
+2.42.1
+
diff --git a/testing/lomiri-history-service/0004-remove-daemon-directory.patch b/testing/lomiri-history-service/0004-remove-daemon-directory.patch
new file mode 100644
index 00000000000..bf019dd458c
--- /dev/null
+++ b/testing/lomiri-history-service/0004-remove-daemon-directory.patch
@@ -0,0 +1,26 @@
+From 55637288bad139d24c4401eb71c994835defee48 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 15 Oct 2023 17:49:13 -0400
+Subject: [PATCH 4/4] remove daemon directory
+
+Temporary patch to allow compiling. Will be fixed when work on ofono begins.
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3c28459..45a0635 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -97,7 +97,7 @@ set(HISTORY_VERSION_PATCH 0)
+ set(PACKAGE_VERSION ${HISTORY_VERSION_MAJOR}.${HISTORY_VERSION_MINOR}.${HISTORY_VERSION_PATCH})
+
+ add_subdirectory(src)
+-add_subdirectory(daemon)
++# add_subdirectory(daemon)
+ add_subdirectory(plugins)
+ add_subdirectory(tools)
+ add_subdirectory(Lomiri)
+--
+2.42.1
+
diff --git a/testing/lomiri-history-service/APKBUILD b/testing/lomiri-history-service/APKBUILD
new file mode 100644
index 00000000000..bc4d7102f25
--- /dev/null
+++ b/testing/lomiri-history-service/APKBUILD
@@ -0,0 +1,65 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-history-service
+pkgver=0.4
+pkgrel=0
+pkgdesc="Service that provides call log and conversation history"
+url="https://gitlab.com/ubports/development/core/history-service"
+arch="all"
+license="GPL-3.0-only"
+depends="
+ libphonenumber-dev
+ qt5-qtbase-dev
+ qt5-qtbase-sqlite
+ qt5-qtdeclarative-dev
+ qt5-qtpim-dev
+ sqlite-dev
+ telepathy-mission-control
+ telepathy-qt-dev
+ "
+makedepends="
+ cmake
+ cmake-extras
+ dconf
+ libqtdbustest
+ samurai
+ "
+checkdepends="
+ dbus-test-runner
+ xvfb-run
+ "
+subpackages="$pkgname-dev"
+source="https://gitlab.com/ubports/development/core/history-service/-/archive/$pkgver/history-service-$pkgver.tar.gz
+ 0001-CMakeLists.txt-Add-ENABLE_WERROR-CMake-option-defaul.patch
+ 0002-upgrade-to-C-17.patch
+ 0003-remove-systemd-dependency.patch
+ 0004-remove-daemon-directory.patch
+ "
+builddir="$srcdir/history-service-$pkgver"
+options="!check" # several tests timing out
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
+ -DENABLE_WERROR=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+73188367eb492375b1613ad10f45efd37b23cc0017955a12a89c375716268bb8bf1ba5ef024fae9798646312d3125d551549ffe44ad6c6e34fde60ba6d20fb42 history-service-0.4.tar.gz
+00d0ff183864c08307cd8161f99b2b7a51df745e29cc6c920536f5c9fe712526805943c799e8e52e373af933698a70a79e1a0e9abb5fda95c3bd3f8ea765d7c3 0001-CMakeLists.txt-Add-ENABLE_WERROR-CMake-option-defaul.patch
+ca24316555e14ac9a3f8f7420040b2803470efd312053020007009ae0273acbcf823c2c5cf0d6b88f2bbcd8430c248537e53e13a9c5855ccba17eac197cd9c4e 0002-upgrade-to-C-17.patch
+328f346cbdea5d36a432e20076dbb0a765fbe5a45b96425756e7871e66fe204d415a3e38c48a71473c7c55b7947062637ff9098df77e36873b8057b6d76dcb2a 0003-remove-systemd-dependency.patch
+5537768ff3ceda6fd4715adba63e8d34f97d2850e8137ca6efbb0614995c7c5b0ea83faef7b3b34e4b9e1c61910df47f113a1558088d510f0448f08cf28c7d7d 0004-remove-daemon-directory.patch
+"
diff --git a/testing/lomiri-indicator-location/0001-manually-disable-tests.patch b/testing/lomiri-indicator-location/0001-manually-disable-tests.patch
new file mode 100644
index 00000000000..7dd3470675a
--- /dev/null
+++ b/testing/lomiri-indicator-location/0001-manually-disable-tests.patch
@@ -0,0 +1,43 @@
+From 6432f05d57236a3279f92d51082e7eb1db3a6953 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Tue, 26 Dec 2023 20:45:54 -0500
+Subject: [PATCH] manually disable tests
+
+Fixes:
+Cannot find source file:
+
+/usr/src/gtest/src/gtest-all.cc
+
+---
+ CMakeLists.txt | 15 ---------------
+ 1 file changed, 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7a08d6f..c5d2fbe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -48,21 +48,6 @@ include_directories (SYSTEM ${SERVICE_DEPS_INCLUDE_DIRS})
+ set (CMAKE_INCLUDE_CURRENT_DIR ON)
+ set (CC_WARNING_ARGS " -Wall -Wextra -Wno-missing-field-initializers")
+
+-# testing & coverage
+-if (${enable_tests})
+- set (GTEST_SOURCE_DIR /usr/src/gtest/src)
+- set (GTEST_INCLUDE_DIR ${GTEST_SOURCE_DIR}/..)
+- set (GTEST_LIBS -lpthread)
+- enable_testing ()
+- if (${enable_lcov})
+- include(GCov)
+- endif ()
+-endif ()
+-
+ add_subdirectory (src)
+ add_subdirectory (data)
+ add_subdirectory (po)
+-
+-if (${enable_tests})
+- add_subdirectory (tests)
+-endif ()
+--
+2.43.0
+
diff --git a/testing/lomiri-indicator-location/APKBUILD b/testing/lomiri-indicator-location/APKBUILD
new file mode 100644
index 00000000000..85315ec8bce
--- /dev/null
+++ b/testing/lomiri-indicator-location/APKBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-indicator-location
+pkgver=0_git20231227
+pkgrel=0
+_commit=f0525a93eb7b3f7da824459deb2244846d967ab5
+pkgdesc="Indicator controlling access to physical location data"
+url="https://gitlab.com/ubports/development/core/indicator-location"
+arch="all !armhf" # blocked by qt5-qtdeclarative
+license="GPL-3.0-only"
+source="https://gitlab.com/ubports/development/core/indicator-location/-/archive/$_commit/indicator-location-$_commit.tar.gz
+ 0001-manually-disable-tests.patch
+ "
+makedepends="
+ cmake-extras
+ glib-dev
+ gmenuharness-dev
+ gmock
+ gtest-dev
+ intltool
+ libqtdbusmock
+ libqtdbustest
+ lomiri-api-dev
+ lomiri-app-launch-dev
+ lomiri-url-dispatcher-dev
+ qt5-qtdeclarative-dev
+ qt5-qttools
+ samurai
+ "
+checkdepends="py3-dbusmock"
+builddir="$srcdir/indicator-location-$_commit"
+options="!check" # requires Ubuntu gtest
+subpackages="$pkgname-lang"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+743ff6fc676f68d58b5f2e864072a3469638839cd50c7a6aa0f950934f19f0b03ff1918a32c49a20fec586effbada0f393f5f69a288aeaafc9294938e952764d indicator-location-f0525a93eb7b3f7da824459deb2244846d967ab5.tar.gz
+02a51e168fb3f857905ffc4d47c20f8b3e740177f19d5277f16df54dcc8a7b0fb969724d91379e6ca9e570c8a0bca0d353dac72c2d6a3a38c222052a68a17b85 0001-manually-disable-tests.patch
+"
diff --git a/testing/lomiri-indicator-network/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch b/testing/lomiri-indicator-network/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
new file mode 100644
index 00000000000..78ce65dd977
--- /dev/null
+++ b/testing/lomiri-indicator-network/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
@@ -0,0 +1,117 @@
+From 2e65084c0bdcb88f670ce8ca2609802036809566 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 31 Jan 2024 22:48:22 +0100
+Subject: [PATCH] Use CMAKE_INSTALL_FULL_* for installing
+
+While I don't think there should be a difference between the two
+variables for most cases, for SYSCONFDIR we might end up installing into
+/usr/etc/ if we don't use the FULL_SYSCONFDIR variable.
+---
+ data/CMakeLists.txt | 4 ++--
+ doc/CMakeLists.txt | 2 +-
+ po/CMakeLists.txt | 2 +-
+ src/agent/CMakeLists.txt | 2 +-
+ src/connectivity-api/connectivity-qt/CMakeLists.txt | 4 ++--
+ src/indicator/CMakeLists.txt | 2 +-
+ src/indicator/agent/CMakeLists.txt | 2 +-
+ 7 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 34ce2bce..27f31641 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -5,7 +5,7 @@
+
+ set(
+ INDICATOR_DIR
+- "${CMAKE_INSTALL_DATADIR}/unity/indicators"
++ "${CMAKE_INSTALL_FULL_DATADIR}/unity/indicators"
+ CACHE FILEPATH "Indicator directory"
+ )
+
+@@ -73,7 +73,7 @@ add_schema ("com.lomiri.indicator.network.gschema.xml")
+ ###########################
+
+ # where to install
+-set (XDG_AUTOSTART_DIR "${CMAKE_INSTALL_SYSCONFDIR}/xdg/autostart")
++set (XDG_AUTOSTART_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/xdg/autostart")
+ message (STATUS "${XDG_AUTOSTART_DIR} is the DBus Service File install dir")
+
+ set (XDG_AUTOSTART_NAME "${CMAKE_PROJECT_NAME}.desktop")
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 54b5c4e9..54eb05b2 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-set(INSTALL_DOCDIR ${CMAKE_INSTALL_DOCDIR})
++set(INSTALL_DOCDIR ${CMAKE_INSTALL_FULL_DOCDIR})
+
+ option(BUILD_DOC "Build documentation by default" TRUE)
+ option(PRIVATE_DOCS "Build private documentation" FALSE)
+diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
+index dfb7d213..9decad7c 100644
+--- a/po/CMakeLists.txt
++++ b/po/CMakeLists.txt
+@@ -36,5 +36,5 @@ foreach(LANG ${LANGS})
+ COPYONLY)
+ endforeach(LANG)
+ gettext_process_pot_file(${POT_FILE} ALL
+- INSTALL_DESTINATION ${CMAKE_INSTALL_LOCALEDIR}
++ INSTALL_DESTINATION ${CMAKE_INSTALL_FULL_LOCALEDIR}
+ LANGUAGES ${LANGS})
+diff --git a/src/agent/CMakeLists.txt b/src/agent/CMakeLists.txt
+index e71aac5c..24653240 100644
+--- a/src/agent/CMakeLists.txt
++++ b/src/agent/CMakeLists.txt
+@@ -57,5 +57,5 @@ target_link_libraries(
+ install(
+ TARGETS
+ lomiri-indicator-network-secret-agent
+- RUNTIME DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/lomiri-indicator-network/"
++ RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_LIBEXECDIR}/lomiri-indicator-network/"
+ )
+diff --git a/src/connectivity-api/connectivity-qt/CMakeLists.txt b/src/connectivity-api/connectivity-qt/CMakeLists.txt
+index 663f644b..ba37ae26 100644
+--- a/src/connectivity-api/connectivity-qt/CMakeLists.txt
++++ b/src/connectivity-api/connectivity-qt/CMakeLists.txt
+@@ -123,7 +123,7 @@ set_target_properties(
+
+ install(
+ TARGETS ${CONNECTIVITY_QT_LIB_TARGET}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
+ )
+
+ set(PC_FILE_TARGET "${CMAKE_BINARY_DIR}/${CONNECTIVITY_QT_LIB_TARGET}.pc")
+@@ -133,5 +133,5 @@ set(ABSOLUTE_SO_FILE "${CMAKE_INSTALL_FULL_LIBDIR}/lib${CONNECTIVITY_QT_LIB_TARG
+ configure_file("lomiri-connectivity-qt.pc.in" ${PC_FILE_TARGET} @ONLY)
+ install(
+ FILES ${PC_FILE_TARGET}
+- DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
++ DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig"
+ )
+diff --git a/src/indicator/CMakeLists.txt b/src/indicator/CMakeLists.txt
+index ff3e0bfe..a0e3744a 100644
+--- a/src/indicator/CMakeLists.txt
++++ b/src/indicator/CMakeLists.txt
+@@ -174,5 +174,5 @@ target_link_libraries(
+ install(
+ TARGETS
+ lomiri-indicator-network-service
+- RUNTIME DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/lomiri-indicator-network/"
++ RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_LIBEXECDIR}/lomiri-indicator-network/"
+ )
+diff --git a/src/indicator/agent/CMakeLists.txt b/src/indicator/agent/CMakeLists.txt
+index 9b47bc77..38e394d8 100644
+--- a/src/indicator/agent/CMakeLists.txt
++++ b/src/indicator/agent/CMakeLists.txt
+@@ -73,5 +73,5 @@ target_link_libraries(
+
+ install(
+ TARGETS indicator-secret-agent-bin
+- RUNTIME DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}"
++ RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_LIBEXECDIR}"
+ )
+--
+2.43.0
+
diff --git a/testing/lomiri-indicator-network/APKBUILD b/testing/lomiri-indicator-network/APKBUILD
new file mode 100644
index 00000000000..366a800f39e
--- /dev/null
+++ b/testing/lomiri-indicator-network/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-indicator-network
+pkgver=1.0.2
+pkgrel=0
+pkgdesc="The 'Network' indicator for Ubuntu Touch"
+# armhf blocked by qt5-qtdeclarative
+arch="all !armhf"
+url="https://gitlab.com/ubports/development/core/lomiri-indicator-network"
+license="GPL-3.0-only"
+depends_dev="
+ glib-dev
+ gmenuharness-dev
+ gtest-dev
+ libqofono-dev
+ libsecret-dev
+ lomiri-api-dev
+ lomiri-url-dispatcher-dev
+ networkmanager-dev
+ ofono-dev
+ qt5-qtdeclarative-dev
+ "
+makedepends="
+ $depends_dev
+ cmake-extras
+ gmock
+ intltool
+ libqtdbusmock
+ libqtdbustest
+ qt5-qttools
+ samurai
+ "
+checkdepends="py3-dbusmock"
+source="https://gitlab.com/ubports/development/core/lomiri-indicator-network/-/archive/$pkgver/lomiri-indicator-network-$pkgver.tar.gz
+ 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+options="!check" # some tests hang
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DUSE_SYSTEMD=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+bdb722678fc0ef1c3ff133c3beaeb7419bdc5a5c255888b1e82cf938f438ff6a758b0904d7780e2fe045e4ecd8e31ad10e7bf526f85d49093125d5e907dc945e lomiri-indicator-network-1.0.2.tar.gz
+89c26a655f62a82a74dab87ee5757335723c99e1da93c0797975c14a362edb45573a64fc6e335cd561f53ab2a3b3954bd58c1550b489f6b7418588fdafd33bee 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+"
diff --git a/testing/lomiri-libusermetrics/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch b/testing/lomiri-libusermetrics/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
new file mode 100644
index 00000000000..44f9a57e89c
--- /dev/null
+++ b/testing/lomiri-libusermetrics/0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
@@ -0,0 +1,135 @@
+From e87aa75b004aef1ce74c6b92290c4c4ed047e8e4 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Wed, 31 Jan 2024 22:49:40 +0100
+Subject: [PATCH] Use CMAKE_INSTALL_FULL_* for installing
+
+While I don't think there should be a difference between the two
+variables for most cases, for SYSCONFDIR we might end up installing into
+/usr/etc/ if we don't use the FULL_SYSCONFDIR variable.
+---
+ data/CMakeLists.txt | 8 ++++----
+ doc/CMakeLists.txt | 2 +-
+ src/libusermetricsinput/CMakeLists.txt | 10 +++++-----
+ src/libusermetricsoutput/CMakeLists.txt | 6 +++---
+ 4 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 87db31b..71d812c 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -10,7 +10,7 @@ install(
+ DIRECTORY
+ libusermetrics
+ DESTINATION
+- ${CMAKE_INSTALL_DATADIR}
++ ${CMAKE_INSTALL_FULL_DATADIR}
+ )
+
+ ###########################
+@@ -19,7 +19,7 @@ install(
+
+ set(
+ DBUSCONFDIR
+- "${CMAKE_INSTALL_SYSCONFDIR}/dbus-1/system.d"
++ "${CMAKE_INSTALL_FULL_SYSCONFDIR}/dbus-1/system.d"
+ )
+
+ install(
+@@ -34,7 +34,7 @@ install(
+
+ set(
+ DBUSIFACEDIR
+- "${CMAKE_INSTALL_DATADIR}/dbus-1/interfaces/"
++ "${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/interfaces/"
+ )
+
+ install(
+@@ -52,7 +52,7 @@ install(
+
+ set(
+ DBUSSERVICEDIR
+- "${CMAKE_INSTALL_DATADIR}/dbus-1/system-services/"
++ "${CMAKE_INSTALL_FULL_DATADIR}/dbus-1/system-services/"
+ )
+
+ set(USERMETRICS_SERVICE
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 46941d9..1e4ec27 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -19,7 +19,7 @@ add_doxygen(
+ *::internal*
+ *::Priv
+ INSTALL
+- ${CMAKE_INSTALL_DATAROOTDIR}/doc/libusermetrics-doc
++ ${CMAKE_INSTALL_FULL_DATAROOTDIR}/doc/libusermetrics-doc
+ XML
+ ALL
+ )
+diff --git a/src/libusermetricsinput/CMakeLists.txt b/src/libusermetricsinput/CMakeLists.txt
+index 9554117..206ff4a 100644
+--- a/src/libusermetricsinput/CMakeLists.txt
++++ b/src/libusermetricsinput/CMakeLists.txt
+@@ -84,8 +84,8 @@ set_target_properties(
+
+ install(
+ TARGETS usermetricsinput
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libusermetrics-${API_VERSION}/libusermetricsinput"
++ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/libusermetrics-${API_VERSION}/libusermetricsinput"
+ )
+
+ # Package config
+@@ -95,7 +95,7 @@ configure_file("libusermetricsinput.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/${LIBUSE
+
+ install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIBUSERMETRICSINPUT_PC}"
+- DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
++ DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig"
+ )
+
+ ##########################
+@@ -115,7 +115,7 @@ set_target_properties(
+
+ install(
+ TARGETS usermetricsinput-bin
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++ RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
+ )
+
+ target_link_libraries(
+@@ -135,7 +135,7 @@ add_executable(
+
+ install(
+ TARGETS usermetricsinput-increment
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++ RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
+ )
+
+ target_link_libraries(
+diff --git a/src/libusermetricsoutput/CMakeLists.txt b/src/libusermetricsoutput/CMakeLists.txt
+index 9cdd56f..775cfa5 100644
+--- a/src/libusermetricsoutput/CMakeLists.txt
++++ b/src/libusermetricsoutput/CMakeLists.txt
+@@ -76,8 +76,8 @@ set_target_properties(
+
+ install(
+ TARGETS usermetricsoutput
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libusermetrics-${API_VERSION}/libusermetricsoutput"
++ LIBRARY DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}
++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/libusermetrics-${API_VERSION}/libusermetricsoutput"
+ )
+
+ # Package config
+@@ -87,5 +87,5 @@ configure_file("libusermetricsoutput.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/${LIBUS
+
+ install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIBUSERMETRICSOUTPUT_PC}"
+- DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
++ DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig"
+ )
+--
+2.43.0
+
diff --git a/testing/lomiri-libusermetrics/APKBUILD b/testing/lomiri-libusermetrics/APKBUILD
new file mode 100644
index 00000000000..8f42fa463b8
--- /dev/null
+++ b/testing/lomiri-libusermetrics/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-libusermetrics
+pkgver=1.3.2
+pkgrel=0
+pkgdesc='Library for exporting anonymous metrics about users'
+arch="all !armhf" # blocked by qt5-qtxmlpatterns-dev
+url="https://gitlab.com/ubports/development/core/libusermetrics"
+license="GPL-3.0-only AND LGPL-3.0-only AND LGPL-2.1-only"
+depends_dev="
+ click-dev
+ gsettings-qt-dev
+ libapparmor-dev
+ qdjango-dev
+ qt5-qtxmlpatterns-dev
+ "
+makedepends="
+ $depends_dev
+ cmake-extras
+ doxygen
+ gmock
+ gtest-dev
+ intltool
+ libapparmor
+ libqtdbustest
+ qt5-qtbase-dev
+ samurai
+ "
+checkdepends="dbus"
+source="https://gitlab.com/ubports/development/core/libusermetrics/-/archive/$pkgver/libusermetrics-$pkgver.tar.gz
+ 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+builddir="$srcdir/libusermetrics-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+6e790903e386f32585646c04867b49200acde335b69b16049c11a0a5db1402dee0bbabf16c89cd967efd0eca8e9bd3af93ba01f40b1d5bf0a90534d7f21a570e libusermetrics-1.3.2.tar.gz
+eb65d7bfcf5ffc0b71dc16fd847e999bea0976a04919afb61cdd1ec789015699693912aeef862576ede7734274b103bd0c0aab554967d99d8fc7470dd3bbf361 0001-Use-CMAKE_INSTALL_FULL_-for-installing.patch
+"
diff --git a/testing/lomiri-location-service/APKBUILD b/testing/lomiri-location-service/APKBUILD
new file mode 100644
index 00000000000..af45a93b18b
--- /dev/null
+++ b/testing/lomiri-location-service/APKBUILD
@@ -0,0 +1,62 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-location-service
+pkgver=3.1.0
+pkgrel=0
+pkgdesc="Location service aggregating position/velocity/heading updates and exporting them over dbus"
+arch="all"
+url="https://gitlab.com/ubports/development/core/location-service"
+license="GPL-3.0-only AND LGPL-3.0-only"
+depends_dev="
+ boost-dev
+ dbus-cpp-dev
+ dbus-dev
+ gflags-dev
+ glog-dev
+ gpsd-dev
+ json-c-dev
+ libapparmor-dev
+ lomiri-trust-store-dev
+ net-cpp-dev
+ process-cpp-dev
+ properties-cpp-dev
+ qt5-qtbase-dev
+ qt5-qtlocation-dev
+ "
+makedepends="$depends_dev
+ cmake-extras
+ gettext
+ gmock
+ gtest-dev
+ samurai
+ "
+checkdepends="coreutils"
+source="https://gitlab.com/ubports/development/core/location-service/-/archive/$pkgver/location-service-$pkgver.tar.gz
+ cstdint.patch
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+builddir="$srcdir/location-service-$pkgver"
+# tests try to write to /var/lib/lomiri-location-service/config.ini
+options="!check"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DLOCATION_SERVICE_ENABLE_GPS_PROVIDER=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+cb336690469c97780348de86ba6881228160f3f7ef5c548cd7238fcaeca5f35b1fbd2fb5897d20a805e922b63e2592c159d93747ecfdd7ef94b40c4d5b708838 location-service-3.1.0.tar.gz
+a593923e4a997977bdab1b7e72bfefbe401c5cb12c15d137e67c7e3527d3b0cd2be10a376140f081a5922d347bb5bce4c88140f33e53f1580bfdaad2a9f36f46 cstdint.patch
+"
diff --git a/testing/lomiri-location-service/cstdint.patch b/testing/lomiri-location-service/cstdint.patch
new file mode 100644
index 00000000000..bd0c01e4ec8
--- /dev/null
+++ b/testing/lomiri-location-service/cstdint.patch
@@ -0,0 +1,24 @@
+diff --git a/src/location_service/com/lomiri/location/satellite_based_positioning_state.cpp b/src/location_service/com/lomiri/location/satellite_based_positioning_state.cpp
+index 022b595..ceadd6a 100644
+--- a/src/location_service/com/lomiri/location/satellite_based_positioning_state.cpp
++++ b/src/location_service/com/lomiri/location/satellite_based_positioning_state.cpp
+@@ -20,6 +20,7 @@
+
+ #include <iostream>
+ #include <unordered_map>
++#include <cstdint>
+
+ namespace location = com::lomiri::location;
+
+diff --git a/src/location_service/com/lomiri/location/wifi_and_cell_reporting_state.cpp b/src/location_service/com/lomiri/location/wifi_and_cell_reporting_state.cpp
+index 4ef18a2..f22b0f6 100644
+--- a/src/location_service/com/lomiri/location/wifi_and_cell_reporting_state.cpp
++++ b/src/location_service/com/lomiri/location/wifi_and_cell_reporting_state.cpp
+@@ -20,6 +20,7 @@
+
+ #include <iostream>
+ #include <unordered_map>
++#include <cstdint>
+
+ namespace location = com::lomiri::location;
+
diff --git a/testing/lomiri-notifications/APKBUILD b/testing/lomiri-notifications/APKBUILD
new file mode 100644
index 00000000000..e65270c2514
--- /dev/null
+++ b/testing/lomiri-notifications/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-notifications
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="An implementation of the Free Desktop Notification server for Lomiri"
+url="https://gitlab.com/ubports/development/core/lomiri-notifications"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cmake
+ libqtdbustest
+ lomiri-api-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtquickcontrols2-dev
+ samurai
+ "
+source="https://gitlab.com/ubports/development/core/lomiri-notifications/-/archive/$pkgver/lomiri-notifications-$pkgver.tar.gz"
+options="!check" # tests fail
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+5e60238ee5c926324cd9749e425e3da62ff27634e31c4db22e328dd4e9508e15ff1cba28aade48982f9d9d884fcb6720f0bb32e8c89e8ede35db1dcd8e433f14 lomiri-notifications-1.3.0.tar.gz
+"
diff --git a/testing/lomiri-schemas/0001-data-schemas-com.lomiri.Shell.gschema.xml.in-Add-log.patch b/testing/lomiri-schemas/0001-data-schemas-com.lomiri.Shell.gschema.xml.in-Add-log.patch
new file mode 100644
index 00000000000..551d0b8b833
--- /dev/null
+++ b/testing/lomiri-schemas/0001-data-schemas-com.lomiri.Shell.gschema.xml.in-Add-log.patch
@@ -0,0 +1,31 @@
+From 533ef3e23f65fb87042a21fde421b6a3a653032b Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Fri, 22 Mar 2024 19:00:35 -0400
+Subject: [PATCH] data/schemas/com.lomiri.Shell.gschema.xml.in: Add
+ logo-picture-uri
+
+---
+ data/schemas/com.lomiri.Shell.gschema.xml.in | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/data/schemas/com.lomiri.Shell.gschema.xml.in b/data/schemas/com.lomiri.Shell.gschema.xml.in
+index 692de37..5ef6947 100644
+--- a/data/schemas/com.lomiri.Shell.gschema.xml.in
++++ b/data/schemas/com.lomiri.Shell.gschema.xml.in
+@@ -272,6 +272,13 @@
+ <summary>The position of launcher.</summary>
+ <description>The position of launcher.</description>
+ </key>
++ <key name="logo-picture-uri" type="s">
++ <default>'file:///usr/share/lomiri/Launcher/graphics/home.svg'</default>
++ <summary>Logo URI to be displayed on the launcher</summary>
++ <description>
++ URI to use for the launcher's logo. Only .svg files are supported.
++ </description>
++ </key>
+ </schema>
+ <schema path="/com/lomiri/shell/devices/" id="com.lomiri.Shell.Devices" gettext-domain="lomiri">
+ <key type="as" name="blacklist">
+--
+2.44.0
+
diff --git a/testing/lomiri-schemas/APKBUILD b/testing/lomiri-schemas/APKBUILD
new file mode 100644
index 00000000000..a2c47dacf88
--- /dev/null
+++ b/testing/lomiri-schemas/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-schemas
+pkgver=0.1.4
+pkgrel=1
+pkgdesc="GSettings / AccountsService schema files for Lomiri"
+arch="noarch"
+url="https://gitlab.com/ubports/development/core/lomiri-schemas"
+license="LGPL-2.1-or-later"
+makedepends="
+ cmake
+ cmake-extras
+ glib-dev
+ intltool
+ "
+source="https://gitlab.com/ubports/development/core/lomiri-schemas/-/archive/$pkgver/lomiri-schemas-$pkgver.tar.gz
+ 0001-data-schemas-com.lomiri.Shell.gschema.xml.in-Add-log.patch
+ "
+options="!check" # No tests
+
+build() {
+ # Doesn't build with Ninja backend:
+ # ninja: multiple rules generate 'data/schemas/com.lomiri.Shell.gschema.xml'
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a77f3591c0e5e58683ecd94964b232db69d6eaf97623ca554c03f33c7711c1638372f9274608d77838c6228a46c8379953766124c4b85ca49987a3a6a77b0fa0 lomiri-schemas-0.1.4.tar.gz
+ff1397970b31179a1c9538bf3d929f06d9667024df202ad50d2727cd91e0979e273d9ec77bff4a109c6e942ecc74dde60704843c19dd84a5fabf4aeb91abf239 0001-data-schemas-com.lomiri.Shell.gschema.xml.in-Add-log.patch
+"
diff --git a/testing/lomiri-settings-components/APKBUILD b/testing/lomiri-settings-components/APKBUILD
new file mode 100644
index 00000000000..a4d4df26e29
--- /dev/null
+++ b/testing/lomiri-settings-components/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=lomiri-settings-components
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="Lomiri settings Components"
+arch="all"
+url="https://gitlab.com/ubports/development/core/lomiri-settings-components"
+license="GPL-3.0-only AND LGPL-3.0-only"
+makedepends="
+ cmake
+ cmake-extras
+ qt5-qtdeclarative-dev
+ samurai
+ "
+source="https://gitlab.com/ubports/development/core/lomiri-settings-components/-/archive/$pkgver/lomiri-settings-components-$pkgver.tar
+ qmltestrunner.patch
+ "
+subpackages="$pkgname-lang"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+21e170a558f4d34d5e06918d0b63ae95eb6791b2fdbfe5438dfbdf61c87abcbbd37149dd3f35158a775608db0257f503b3fe0f8ee78dd924c96cd36fa51d2b1b lomiri-settings-components-1.1.1.tar
+0cbe24ba24468ccfae80b6d6b49c68b55e44561ac7914645746af15ee252c12341f2b401390cffbed520963d1cb7da6980f99520ee820528de964b8a714b87b4 qmltestrunner.patch
+"
diff --git a/testing/lomiri-settings-components/qmltestrunner.patch b/testing/lomiri-settings-components/qmltestrunner.patch
new file mode 100644
index 00000000000..d98bb704de7
--- /dev/null
+++ b/testing/lomiri-settings-components/qmltestrunner.patch
@@ -0,0 +1,29 @@
+diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
+index 42d5c49..3ccd6ac 100644
+--- a/cmake/modules/QmlTest.cmake
++++ b/cmake/modules/QmlTest.cmake
+@@ -65,9 +65,9 @@ endfunction()
+ # This function wraps add_executable_test, see below for available arguments.
+
+ function(add_qml_unittest PATH COMPONENT_NAME)
+- import_executables(qmltestrunner)
++ import_executables(qmltestrunner-qt5)
+
+- add_executable_test(${COMPONENT_NAME} qmltestrunner
++ add_executable_test(${COMPONENT_NAME} qmltestrunner-qt5
+ ${ARGN}
+ ARGS -input ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
+ )
+@@ -84,10 +84,10 @@ endfunction()
+ # This function wraps add_manual_test, see below for available arguments.
+
+ function(add_manual_qml_test PATH COMPONENT_NAME)
+- import_executables(qmlscene)
++ import_executables(qmlscene-qt5)
+ cmake_parse_arguments(QMLTEST "${QMLTEST_OPTIONS}" "${QMLTEST_SINGLE}" "${QMLTEST_MULTI}" ${ARGN})
+
+- add_manual_test(${COMPONENT_NAME} qmlscene
++ add_manual_test(${COMPONENT_NAME} qmlscene-qt5
+ ${ARGN}
+ ARGS ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
+ )
diff --git a/testing/lomiri-sounds/APKBUILD b/testing/lomiri-sounds/APKBUILD
new file mode 100644
index 00000000000..700e495ca79
--- /dev/null
+++ b/testing/lomiri-sounds/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-sounds
+pkgver=22.02
+pkgrel=0
+pkgdesc="Ringtones and notification tones recommended for the Lomiri stack"
+url="https://gitlab.com/ubports/development/apps/lomiri-sounds"
+arch="noarch"
+license="CC0-1.0 AND CC-BY-3.0 AND CC-BY-SA-3.0 AND CC-BY-4.0"
+source="https://gitlab.com/ubports/development/core/lomiri-sounds/-/archive/$pkgver/lomiri-sounds-$pkgver.tar.gz"
+makedepends="
+ cmake
+ samurai
+ "
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+759e0ce2d38b4463533cb4d6869cabdb90d7b9fcb05b833929eb1318f8ab5e7ae93078da3a25015d6874ab6bb79d3048004d9502ca6e0d5a0a49833fc2c1982f lomiri-sounds-22.02.tar.gz
+"
diff --git a/testing/lomiri-system-settings/0001-Migrate-to-upstream-maliit-keyboard.patch b/testing/lomiri-system-settings/0001-Migrate-to-upstream-maliit-keyboard.patch
new file mode 100644
index 00000000000..616110d2cca
--- /dev/null
+++ b/testing/lomiri-system-settings/0001-Migrate-to-upstream-maliit-keyboard.patch
@@ -0,0 +1,81 @@
+From c4873925dbe4eaa5ba9f8fc6884abbbb31fc7a22 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sat, 14 Oct 2023 02:35:10 -0400
+Subject: [PATCH 1/2] Migrate to upstream maliit keyboard
+
+---
+ plugins/language/PageComponent.qml | 2 +-
+ plugins/language/SpellChecking.qml | 2 +-
+ plugins/language/ThemeValues.qml | 2 +-
+ plugins/language/onscreenkeyboard-plugin.cpp | 2 +-
+ plugins/sound/PageComponent.qml | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/plugins/language/PageComponent.qml b/plugins/language/PageComponent.qml
+index 02c0369e..30cdcfda 100644
+--- a/plugins/language/PageComponent.qml
++++ b/plugins/language/PageComponent.qml
+@@ -106,7 +106,7 @@ ItemPage {
+ GSettings {
+ id: settings
+
+- schema.id: "com.lomiri.keyboard.maliit"
++ schema.id: "org.maliit.keyboard.maliit"
+ }
+
+ GSettings {
+diff --git a/plugins/language/SpellChecking.qml b/plugins/language/SpellChecking.qml
+index 0c184516..dc6f6980 100644
+--- a/plugins/language/SpellChecking.qml
++++ b/plugins/language/SpellChecking.qml
+@@ -36,7 +36,7 @@ ItemPage {
+ GSettings {
+ id: settings
+
+- schema.id: "com.lomiri.keyboard.maliit"
++ schema.id: "org.maliit.keyboard.maliit"
+ }
+
+ ListItem.Standard {
+diff --git a/plugins/language/ThemeValues.qml b/plugins/language/ThemeValues.qml
+index d7da214d..e8867cf8 100644
+--- a/plugins/language/ThemeValues.qml
++++ b/plugins/language/ThemeValues.qml
+@@ -35,7 +35,7 @@ ItemPage {
+ GSettings {
+ id: settings
+
+- schema.id: "com.lomiri.keyboard.maliit"
++ schema.id: "org.maliit.keyboard.maliit"
+
+ onChanged: {
+ var curIndex = themeModel.findIndex(function(data){return data.value === value})
+diff --git a/plugins/language/onscreenkeyboard-plugin.cpp b/plugins/language/onscreenkeyboard-plugin.cpp
+index 9d96b1e4..a98b7010 100644
+--- a/plugins/language/onscreenkeyboard-plugin.cpp
++++ b/plugins/language/onscreenkeyboard-plugin.cpp
+@@ -24,7 +24,7 @@
+ #include "onscreenkeyboard-plugin.h"
+ #include "qstringliteral.h"
+
+-#define LOMIRI_KEYBOARD_SCHEMA_ID "com.lomiri.keyboard.maliit"
++#define LOMIRI_KEYBOARD_SCHEMA_ID "org.maliit.keyboard.maliit"
+
+ #define KEY_ENABLED_LAYOUTS "enabled-languages"
+ #define KEY_CURRENT_LAYOUT "active-language"
+diff --git a/plugins/sound/PageComponent.qml b/plugins/sound/PageComponent.qml
+index 50e16bb1..ea15cbeb 100644
+--- a/plugins/sound/PageComponent.qml
++++ b/plugins/sound/PageComponent.qml
+@@ -44,7 +44,7 @@ ItemPage {
+ GSettings {
+ id: keyboardSettings
+
+- schema.id: "com.lomiri.keyboard.maliit"
++ schema.id: "org.maliit.keyboard.maliit"
+ }
+
+ GSettings {
+--
+2.44.0
+
diff --git a/testing/lomiri-system-settings/0002-Use-qmltestrunner-qt5.patch b/testing/lomiri-system-settings/0002-Use-qmltestrunner-qt5.patch
new file mode 100644
index 00000000000..cb82ba15877
--- /dev/null
+++ b/testing/lomiri-system-settings/0002-Use-qmltestrunner-qt5.patch
@@ -0,0 +1,25 @@
+From 32df5272bd8c58d5e0fa8a249f10011d046d4a87 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Mon, 18 May 2020 21:37:40 +0200
+Subject: [PATCH 2/2] Use qmltestrunner-qt5
+
+---
+ cmake/QmlTest.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/QmlTest.cmake b/cmake/QmlTest.cmake
+index 253b1206..dbdf6668 100644
+--- a/cmake/QmlTest.cmake
++++ b/cmake/QmlTest.cmake
+@@ -19,7 +19,7 @@
+ # qmltest_DEFAULT_IMPORT_PATHS
+ # qmltest_DEFAULT_PROPERTIES
+
+-find_program(qmltestrunner_exe qmltestrunner)
++find_program(qmltestrunner_exe qmltestrunner-qt5)
+ find_program(qmlscene_exe qmlscene)
+ find_program(gcc_exe gcc)
+
+--
+2.44.0
+
diff --git a/testing/lomiri-system-settings/APKBUILD b/testing/lomiri-system-settings/APKBUILD
new file mode 100644
index 00000000000..056ebab068d
--- /dev/null
+++ b/testing/lomiri-system-settings/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-system-settings
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="System Settings application for Lomiri"
+url="https://gitlab.com/ubports/development/core/lomiri-system-settings"
+# armhf: blocked by lomiri-ui-toolkit
+# s390x, riscv64, ppc64le: blocked by ayatana-indicator-datetime
+arch="all !armhf !s390x !riscv64 !ppc64le"
+license="GPL-3.0-only"
+depends="
+ accountsservice
+ ayatana-indicator-bluetooth
+ ayatana-indicator-datetime
+ ayatana-indicator-power
+ lomiri-content-hub
+ lomiri-indicator-network
+ lomiri-settings-components
+ lomiri-ui-toolkit
+ qt5-qtmultimedia
+ "
+makedepends="
+ accountsservice-dev
+ click-dev
+ cmake
+ cmake-extras
+ geonames-dev
+ gnome-desktop-dev
+ gsettings-qt-dev
+ icu-dev
+ intltool
+ libqtdbusmock
+ networkmanager-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative
+ qt5-qtdeclarative-dev
+ samurai
+ upower-dev
+ "
+checkdepends="
+ mesa-dri-gallium
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+subpackages="$pkgname-lang"
+source="https://gitlab.com/ubports/development/core/lomiri-system-settings/-/archive/$pkgver/lomiri-system-settings-$pkgver.tar.gz
+ 0001-Migrate-to-upstream-maliit-keyboard.patch
+ 0002-Use-qmltestrunner-qt5.patch
+ "
+options="!check" # fails tst-bluetooth-device
+# Somehow on armv7 the tests try to use zink from mesa which doesn't work
+case "$CARCH" in
+ armv7) options="!check" ;;
+esac
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ebdedf53d0ac7a68d5742d751ad14181b47928aa8083d9fe8198e8700e04763f42536f725fc77d06fbc8356a5f0ccbc737adc620535287fc45a9ef99b8303396 lomiri-system-settings-1.1.0.tar.gz
+ff645e7d129e09cf2545ac8298244dd03cd6764362350e4d564c9d806202123ff666428a54eda6bb37e6b88d5dcee944a771a726c8261299c4b9b93920fafdb9 0001-Migrate-to-upstream-maliit-keyboard.patch
+169dda7b2fab1e6e7b791579aa15eb79b08442463a71a786d7b3506c3ae8ad14a9000d3ca8b67b6d4facf81066fe210c62b6e130143f4f04de604ea233307412 0002-Use-qmltestrunner-qt5.patch
+"
diff --git a/testing/lomiri-telephony-service/APKBUILD b/testing/lomiri-telephony-service/APKBUILD
new file mode 100644
index 00000000000..127911771bf
--- /dev/null
+++ b/testing/lomiri-telephony-service/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-telephony-service
+pkgver=0.5.3
+pkgrel=0
+pkgdesc="Backend dispatcher service for various mobile phone related operations"
+url="https://gitlab.com/ubports/development/core/telephony-service"
+# armhf: blocked by lomiri-libusermetrics
+# s390x/riscv64: blocked by ayatana-indicator-messages
+arch="all !armhf !s390x !riscv64"
+license="GPL-3.0-only"
+depends="
+ dconf
+ telepathy-mission-control
+ "
+makedepends="
+ ayatana-indicator-messages-dev
+ cmake
+ libnotify-dev
+ libphonenumber-dev
+ libqtdbustest
+ lomiri-api-dev
+ lomiri-history-service-dev
+ lomiri-libusermetrics-dev
+ lomiri-url-dispatcher-dev
+ pulseaudio-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtfeedback-dev
+ qt5-qtmultimedia-dev
+ qt5-qtpim-dev
+ telepathy-qt-dev
+ samurai
+ "
+checkdepends="dbus-test-runner xvfb-run"
+source="https://gitlab.com/ubports/development/core/telephony-service/-/archive/$pkgver/telephony-service-$pkgver.tar.gz"
+subpackages="$pkgname-lang"
+builddir="$srcdir/telephony-service-$pkgver"
+options="!check" # Various tests hang
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
+ -DSKIP_QML_TESTS=ON
+ cmake --build build
+}
+
+check() {
+ xvfb-run ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+f0632c9008378568c3b4fa8b93216afc9e004d9313865487c1c06866c9bfddb4e96071411721c2785960a33631dd3ade7b2491333ad2c17c8e40626e1e5c5b2a telephony-service-0.5.3.tar.gz
+"
diff --git a/testing/lomiri-terminal-app/APKBUILD b/testing/lomiri-terminal-app/APKBUILD
new file mode 100644
index 00000000000..12302f26396
--- /dev/null
+++ b/testing/lomiri-terminal-app/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-terminal-app
+pkgver=2.0.2
+pkgrel=0
+pkgdesc="A terminal app for desktop and mobile devices"
+url="https://gitlab.com/ubports/development/apps/lomiri-terminal-app"
+# armhf: blocked by lomiri-ui-toolkit
+arch="all !armhf"
+license="GPL-3.0-only"
+depends="
+ gsettings-qt
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qmltermwidget
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ gnome-desktop-dev
+ lomiri-trust-store-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+source="https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/archive/v$pkgver/lomiri-terminal-app-v$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-lang"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF \
+ -DINSTALL_TESTS=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+86ef104e5ee98fbaec876b2ca2c8f013f0e6228ecd80afc68c111522ef1536757bfabe52cffc22b9e12f5d38dbe195835dfe728fb62363f9c2c15c1d28c37be2 lomiri-terminal-app-v2.0.2.tar.gz
+"
diff --git a/testing/lomiri-thumbnailer/APKBUILD b/testing/lomiri-thumbnailer/APKBUILD
new file mode 100644
index 00000000000..0b868377d30
--- /dev/null
+++ b/testing/lomiri-thumbnailer/APKBUILD
@@ -0,0 +1,74 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-thumbnailer
+pkgver=3.0.3
+pkgrel=1
+pkgdesc="D-Bus service for out of process thumbnailing"
+url="https://gitlab.com/ubports/development/core/lomiri-thumbnailer"
+arch="all"
+license="GPL-3.0-only"
+depends="
+ dconf
+ "
+depends_dev="
+ boost-dev
+ gdk-pixbuf-dev
+ gst-plugins-base-dev
+ gstreamer-dev
+ gtest-dev
+ leveldb-dev
+ libapparmor-dev
+ libexif-dev
+ librsvg-dev
+ lomiri-api-dev
+ persistent-cache-cpp-dev
+ qt5-qtdeclarative-dev
+ qt5-qtquickcontrols2-dev
+ taglib-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ doxygen
+ gmock
+ libqtdbustest
+ samurai
+ "
+checkdepends="
+ xvfb-run
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/archive/$pkgver/lomiri-thumbnailer-$pkgver.tar.gz
+ fix-googletest.patch
+ disable-qml-and-dbus-tests.patch
+ manually-disable-tests.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ # uncompressed man pages
+ rm "$pkgdir"/usr/share/man/man1/lomiri-thumbnailer-admin.1
+ rm "$pkgdir"/usr/share/man/man1/thumbnailer-service.1
+ rm "$pkgdir"/usr/share/man/man5/thumbnailer-settings.5
+}
+
+sha512sums="
+4f64cfaf79273edcd9cf1a27b23b2d55fdc06d61a0e80f4be095b9034c269a28535ece5f558dd1b42bae4465da1444b5eb1716c2c94a34533fefc8aaae5a15f7 lomiri-thumbnailer-3.0.3.tar.gz
+51f9aea7dd5ebc66012df4efcaf6f84bdfdb43ac3c0168e662ad6d8f5029aa806aea876ecb9b6c78376feff80d6937ff1de868ca20301814dd99a93c8baf5978 fix-googletest.patch
+27181c3acd8ddd17f4b85c331c98143e45e440d7411dfa1fa6252be9013b2804291f9d194579163925a97fc9fdb2a52fc572aec6bb8230d2fd49cd8f29730d02 disable-qml-and-dbus-tests.patch
+664007046cec229fb9ace9428a512064aa4e4993a451a8aa2c597d3e1088ddd7569fd8a6811148fabd1ec9dd9fb3e3e8ba2dfb7a0d497b40cfa42653e7ff14d9 manually-disable-tests.patch
+"
diff --git a/testing/lomiri-thumbnailer/disable-qml-and-dbus-tests.patch b/testing/lomiri-thumbnailer/disable-qml-and-dbus-tests.patch
new file mode 100644
index 00000000000..10efa5a7611
--- /dev/null
+++ b/testing/lomiri-thumbnailer/disable-qml-and-dbus-tests.patch
@@ -0,0 +1,42 @@
+From 06caff49c352aa090f17d2fec41273f8441cea1d Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Tue, 17 Oct 2023 21:05:45 -0400
+Subject: [PATCH] disable-qml-and-dbus-tests
+
+---
+ tests/dbus/CMakeLists.txt | 1 -
+ tests/qml/CMakeLists.txt | 11 -----------
+ 2 files changed, 12 deletions(-)
+
+diff --git a/tests/dbus/CMakeLists.txt b/tests/dbus/CMakeLists.txt
+index 1f42ad1..9be6696 100644
+--- a/tests/dbus/CMakeLists.txt
++++ b/tests/dbus/CMakeLists.txt
+@@ -8,5 +8,4 @@ target_link_libraries(dbus_test
+ Qt5::Test
+ gtest
+ )
+-add_test(dbus dbus_test)
+ add_dependencies(dbus_test thumbnailer-service)
+diff --git a/tests/qml/CMakeLists.txt b/tests/qml/CMakeLists.txt
+index a165c8a..ae47bbd 100644
+--- a/tests/qml/CMakeLists.txt
++++ b/tests/qml/CMakeLists.txt
+@@ -8,14 +8,3 @@ target_link_libraries(qml_test
+ Qt5::Test
+ )
+ add_dependencies(qml_test thumbnailer-service LomiriThumbnailer-qml)
+-
+-if (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "powerpc-linux-gnu"
+- OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "s390x-linux-gnu")
+- message("Skipping qml test for ${CMAKE_LIBRARY_ARCHITECTURE}")
+-else()
+- add_test(qml ${CMAKE_SOURCE_DIR}/tools/run-xvfb.sh ./qml_test -import ${CMAKE_BINARY_DIR}/plugins)
+- # Clear some environment variables that can interfere with the tests
+- set_tests_properties(qml PROPERTIES
+- ENVIRONMENT "DBUS_SESSION_BUS_ADDRESS=;QT_QPA_PLATFORMTHEME="
+- )
+-endif()
+--
+2.42.0
+
diff --git a/testing/lomiri-thumbnailer/fix-googletest.patch b/testing/lomiri-thumbnailer/fix-googletest.patch
new file mode 100644
index 00000000000..41f648cef26
--- /dev/null
+++ b/testing/lomiri-thumbnailer/fix-googletest.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 57a2816..d925953 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -23,7 +23,7 @@ endif()
+
+ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11 -Wall -pedantic -Wextra -fvisibility=hidden")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++14 -Wall -pedantic -Wextra -fvisibility=hidden")
+
+ # Some additional warnings not included by the general flags set above.
+ set(EXTRA_C_WARNINGS "-Wcast-align -Wcast-qual -Wformat -Wredundant-decls -Wswitch-default")
+
diff --git a/testing/lomiri-thumbnailer/manually-disable-tests.patch b/testing/lomiri-thumbnailer/manually-disable-tests.patch
new file mode 100644
index 00000000000..0ceec7ddade
--- /dev/null
+++ b/testing/lomiri-thumbnailer/manually-disable-tests.patch
@@ -0,0 +1,24 @@
+From ce210b9cb0be02dc51bf01de5e52ced27e10e24f Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Tue, 17 Oct 2023 21:40:21 -0400
+Subject: [PATCH] manually disable tests
+
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5d8994c..e60d65f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,7 +176,6 @@ add_subdirectory(plugins/Lomiri/Thumbnailer.0.1)
+ if (${ENABLE_UBUNTU_COMPAT})
+ add_subdirectory(plugins/Ubuntu/Thumbnailer.0.1)
+ endif()
+-add_subdirectory(tests)
+ add_subdirectory(include)
+ add_subdirectory(man)
+ #add_subdirectory(doc)
+--
+2.42.0
+
diff --git a/testing/lomiri-trust-store/APKBUILD b/testing/lomiri-trust-store/APKBUILD
new file mode 100644
index 00000000000..cd89fb42fb9
--- /dev/null
+++ b/testing/lomiri-trust-store/APKBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-trust-store
+pkgver=2.0.2
+pkgrel=0
+pkgdesc="API for creating, reading, updating and deleting trust requests answered by users"
+url="https://gitlab.com/ubports/development/core/trust-store"
+arch="all"
+license="LGPL-3.0-only"
+depends_dev="
+ boost-dev
+ dbus-cpp-dev
+ libapparmor-dev
+ mir-dev
+ process-cpp-dev
+ properties-cpp-dev
+ qt5-qtdeclarative-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ gmock
+ gtest-dev
+ libapparmor
+ samurai
+ "
+checkdepends="
+ coreutils
+ dbus
+ "
+source="https://gitlab.com/ubports/development/core/trust-store/-/archive/$pkgver/trust-store-$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-lang"
+builddir="$srcdir/trust-store-$pkgver"
+options="!check" # some tests fail
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DTRUST_STORE_MIR_AGENT_ENABLED=OFF \
+ -DENABLE_WERROR=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+3dab27f752ad12845a41af04c3a749d89043a2d36cdd81f4705399144b7747f1f37142df8e30e70003ab42d75171e01e99bc6678d39e277f94eb0a8267c856b7 trust-store-2.0.2.tar.gz
+"
diff --git a/testing/lomiri-ui-extras/0004-Disable-tst_printers-unittest.patch b/testing/lomiri-ui-extras/0004-Disable-tst_printers-unittest.patch
new file mode 100644
index 00000000000..6b3c2af0008
--- /dev/null
+++ b/testing/lomiri-ui-extras/0004-Disable-tst_printers-unittest.patch
@@ -0,0 +1,25 @@
+Description: Disable failing tst_printers unittest.
+Author: Anton Gladky <gladk@debian.org>
+Bug-Debian: https://bugs.debian.org/1015103
+Forwarded: https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/issues/67
+Last-Update: 2022-10-06
+
+--- lomiri-ui-extras-0.5.orig/tests/unittests/Printers/CMakeLists.txt
++++ lomiri-ui-extras-0.5/tests/unittests/Printers/CMakeLists.txt
+@@ -19,11 +19,11 @@ add_executable(testPrintersPrinterJob ts
+ target_link_libraries(testPrintersPrinterJob LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
+ add_test(tst_printerjob testPrintersPrinterJob)
+
+-add_executable(testPrintersPrinters tst_printers.cpp ${MOCK_SOURCES})
+-target_link_libraries(testPrintersPrinters LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
+-add_test(tst_printers testPrintersPrinters)
+-set_tests_properties(tst_printers PROPERTIES
+- ENVIRONMENT "XDG_DATA_DIRS=${CMAKE_CURRENT_SOURCE_DIR}/testdata")
++#add_executable(testPrintersPrinters tst_printers.cpp ${MOCK_SOURCES})
++#target_link_libraries(testPrintersPrinters LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
++#add_test(tst_printers testPrintersPrinters)
++#set_tests_properties(tst_printers PROPERTIES
++# ENVIRONMENT "XDG_DATA_DIRS=${CMAKE_CURRENT_SOURCE_DIR}/testdata")
+
+ add_executable(testPrintersPrinterModel tst_printermodel.cpp ${MOCK_SOURCES})
+ target_link_libraries(testPrintersPrinterModel LomiriComponentsExtrasPrintersQml Qt5::Test Qt5::Gui)
diff --git a/testing/lomiri-ui-extras/APKBUILD b/testing/lomiri-ui-extras/APKBUILD
new file mode 100644
index 00000000000..0309e98bf6d
--- /dev/null
+++ b/testing/lomiri-ui-extras/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-ui-extras
+pkgver=0.6.3
+pkgrel=0
+pkgdesc='Misc Lomiri UI QML components'
+arch="all"
+url="https://gitlab.com/ubports/development/core/lomiri-ui-extras"
+license="GPL-3.0-only"
+makedepends="
+ cmake-extras
+ cups-dev
+ exiv2-dev
+ linux-pam-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ bash
+ dbus-test-runner
+ diffutils
+ grep
+ xvfb-run
+ "
+source="https://gitlab.com/ubports/development/core/lomiri-ui-extras/-/archive/$pkgver/lomiri-ui-extras-$pkgver.tar.gz
+ 0004-Disable-tst_printers-unittest.patch
+ "
+subpackages="$pkgname-lang"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ xvfb-run ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+bbbd45ec59cd7720b64659b29c5c26d76454c311a8ee886cd02073ad6110733c915006d943500f7238038a5cbbf823e81311b408d1ba59d4766d795c652a6b38 lomiri-ui-extras-0.6.3.tar.gz
+888a089cc548e2904a7c787d33edc24a1b140cc0371591594f6851dac7bccc62a07a32eab30d271421f4d9593d0490aaf57cd824883470ede4b44980f6bda997 0004-Disable-tst_printers-unittest.patch
+"
diff --git a/testing/lomiri-ui-toolkit/0001-Remove-debian-isms-from-test-runner.patch b/testing/lomiri-ui-toolkit/0001-Remove-debian-isms-from-test-runner.patch
new file mode 100644
index 00000000000..76b7fdead8f
--- /dev/null
+++ b/testing/lomiri-ui-toolkit/0001-Remove-debian-isms-from-test-runner.patch
@@ -0,0 +1,31 @@
+From 618fc59553bf8d15254e6d695908c982fbd21dae Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Sun, 23 Aug 2020 14:09:54 +0200
+Subject: [PATCH 1/2] Remove debian-isms from test runner
+
+---
+ tests/unit/runtest.sh | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/tests/unit/runtest.sh b/tests/unit/runtest.sh
+index c19682df0..c426fe4d7 100755
+--- a/tests/unit/runtest.sh
++++ b/tests/unit/runtest.sh
+@@ -88,13 +88,7 @@ function create_test_cmd {
+ EXE=$(abspath $_TARGETPATH)
+ _CMD="-n $_TESTFILE -m 500"
+
+- DEB_HOST_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
+- if [[ ${DEB_HOST_ARCH} =~ 'arm' ]]; then
+- _CMD="dbus-test-runner --task $EXE $_CMD"
+- else
+- _CMD="dbus-test-runner --task gdb -p --quiet $_CMD"
+- _CMD="$_CMD -p --batch -p -ex -p 'set print thread-events off' -p -ex -p run -p -ex -p bt -p --return-child-result -p --args -p $EXE"
+- fi
++ _CMD="dbus-test-runner --task $EXE $_CMD"
+
+ if [[ 'minimal custom' == *$_MINIMAL* ]]; then
+ _CMD="$_CMD -p -platform -p $_MINIMAL"
+--
+2.31.1
+
diff --git a/testing/lomiri-ui-toolkit/0002-Don-t-build-app-launch-profiler.patch b/testing/lomiri-ui-toolkit/0002-Don-t-build-app-launch-profiler.patch
new file mode 100644
index 00000000000..be9c33a1a72
--- /dev/null
+++ b/testing/lomiri-ui-toolkit/0002-Don-t-build-app-launch-profiler.patch
@@ -0,0 +1,25 @@
+From 481eb1c21cd60455737fa288a62941bd0aa12350 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Tue, 15 Sep 2020 17:48:47 +0200
+Subject: [PATCH 2/2] Don't build app-launch-profiler
+
+---
+ lomiri-sdk.pro | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lomiri-sdk.pro b/lomiri-sdk.pro
+index a180b037f..e987f2b30 100644
+--- a/lomiri-sdk.pro
++++ b/lomiri-sdk.pro
+@@ -11,7 +11,7 @@ load(qt_parts)
+ src_uitk_launcher.subdir = lomiri-ui-toolkit-launcher
+ src_uitk_launcher.depends = sub-src
+
+-SUBDIRS += po app-launch-profiler src_uitk_launcher apicheck
++SUBDIRS += po src_uitk_launcher apicheck
+ !CONFIG(no_docs) {
+ SUBDIRS += documentation
+ }
+--
+2.31.1
+
diff --git a/testing/lomiri-ui-toolkit/APKBUILD b/testing/lomiri-ui-toolkit/APKBUILD
new file mode 100644
index 00000000000..01455bf5997
--- /dev/null
+++ b/testing/lomiri-ui-toolkit/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+pkgname=lomiri-ui-toolkit
+pkgver=1.3.5100
+pkgrel=0
+pkgdesc="Qt Components for Lomiri"
+arch="all !armhf" # blocked by qt5-qtsystems-dev
+url="https://gitlab.com/ubports/development/core/lomiri-ui-toolkit"
+license="LGPL-3.0-only"
+depends="
+ qt5-qtfeedback
+ qt5-qtgraphicaleffects
+ "
+depends_dev="
+ eudev-dev
+ libevdev-dev
+ libnih-dev
+ libxi-dev
+ lttng-ust-dev
+ mir-dev
+ qt5-qtfeedback-dev
+ qt5-qtgraphicaleffects
+ qt5-qtpim-dev
+ qt5-qtsvg-dev
+ qt5-qtsystems-dev
+ "
+makedepends="
+ $depends_dev
+ qt5-qtdeclarative-dev
+ qt5-qttools-dev
+ "
+checkdepends="
+ bash
+ dbus-test-runner
+ diffutils
+ grep
+ xvfb-run
+ "
+source="https://gitlab.com/ubports/development/core/lomiri-ui-toolkit/-/archive/$pkgver/lomiri-ui-toolkit-$pkgver.tar.gz
+ 0001-Remove-debian-isms-from-test-runner.patch
+ 0002-Don-t-build-app-launch-profiler.patch
+ "
+subpackages="$pkgname-dev $pkgname-lang"
+options="!check" # Several tests fail
+
+build() {
+ qmake-qt5 CONFIG+=no_docs
+ make
+}
+
+check() {
+ xvfb-run make check
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+sha512sums="
+42752f329ddbd8bf0f1411493c8826b9751681a007ced97a2a3441593ff7d5bb78f3ae3d849f3fa56a9a6b9a9d87a45ff571597ef1f4f33097fed2a9360ef67c lomiri-ui-toolkit-1.3.5100.tar.gz
+7423ea0f4edececdeab09c4c91686e981ecedc2b7b39d147d604eb1bd8cdb26a1c3b4fad848215a1a8db1197bd3a58fb82651b0e298c52181632ae629c307d9a 0001-Remove-debian-isms-from-test-runner.patch
+46a12139eeb09b4a7baba4c020103bff8c7885d65fc88ec2e2f4cbf6d93f0aed8d853da316619cb3bafdde5853517dab0b372132d91a03870b9e06a839a854df 0002-Don-t-build-app-launch-profiler.patch
+"
diff --git a/testing/lomiri-url-dispatcher/0001-remove-systemd.patch b/testing/lomiri-url-dispatcher/0001-remove-systemd.patch
new file mode 100644
index 00000000000..429af543f0e
--- /dev/null
+++ b/testing/lomiri-url-dispatcher/0001-remove-systemd.patch
@@ -0,0 +1,64 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7d9d00b..55e1e12 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -90,9 +90,6 @@ else()
+ endif()
+ message("Installing DBus interfaces to ${DBUSIFACEDIR}")
+
+-pkg_check_modules(SYSTEMD REQUIRED systemd)
+-pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemduserunitdir)
+-
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 79f7547..e7e0a76 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -27,45 +27,6 @@ com.lomiri.URLDispatcher.xml
+ DESTINATION ${DBUSIFACEDIR}
+ )
+
+-###########################
+-# systemd
+-###########################
+-
+-configure_file(
+-lomiri-url-dispatcher.service.in
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher.service
+-)
+-
+-configure_file(
+-lomiri-url-dispatcher-update-system-dir.path.in
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-system-dir.path
+-)
+-
+-configure_file(
+-lomiri-url-dispatcher-update-system-dir.service.in
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-system-dir.service
+-)
+-
+-configure_file(
+-lomiri-url-dispatcher-update-user-dir.path.in
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-user-dir.path
+-)
+-
+-configure_file(
+-lomiri-url-dispatcher-update-user-dir.service.in
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-user-dir.service
+-)
+-
+-install(
+-FILES
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher.service
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-system-dir.path
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-system-dir.service
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-user-dir.path
+-${CMAKE_CURRENT_BINARY_DIR}/lomiri-url-dispatcher-update-user-dir.service
+-DESTINATION ${SYSTEMD_USER_UNIT_DIR}
+-)
+-
+ ###########################
+ # Click Hook
+ ###########################
diff --git a/testing/lomiri-url-dispatcher/APKBUILD b/testing/lomiri-url-dispatcher/APKBUILD
new file mode 100644
index 00000000000..6087708e00e
--- /dev/null
+++ b/testing/lomiri-url-dispatcher/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri-url-dispatcher
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Service to allow sending of URLs and get handlers started"
+arch="all"
+url="https://gitlab.com/ubports/development/core/lomiri-url-dispatcher"
+license="LGPL-3.0-only"
+depends_dev="
+ click-dev
+ dbus-test-runner-dev
+ gtest-dev
+ json-glib-dev
+ libapparmor-dev
+ lomiri-app-launch-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ dbus-test-runner
+ glib-dev
+ gmock
+ intltool
+ samurai
+ "
+checkdepends="py3-dbusmock"
+source="https://gitlab.com/ubports/development/core/lomiri-url-dispatcher/-/archive/$pkgver/lomiri-url-dispatcher-$pkgver.tar.gz
+ 0001-remove-systemd.patch
+ "
+subpackages="$pkgname-dev $pkgname-lang"
+options="!check" # several tests hang
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -Denable_mirclient=OFF
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+3aeae627e5e01fff6a1201d5fd2f5d52b78b1c628feadf19f0f23e6cad34004212930e317c584f3fc9d67a9dac6dea72bac770747f2a6a116359d5e55a20fd77 lomiri-url-dispatcher-0.1.3.tar.gz
+586d24fd32f368b7f0404d4f5664bde8ed85e88e79f4532aa686ba0e4fc5c6c9c3c33832fded9f09bc5eba983b853a6be2204d9796a571e2dfecfa1afaf9f74f 0001-remove-systemd.patch
+"
diff --git a/testing/lomiri-weather-app/0001-rename-WEATHER_APP_DIR-to-LOMIRI_WEATHER_APP_DIR.patch b/testing/lomiri-weather-app/0001-rename-WEATHER_APP_DIR-to-LOMIRI_WEATHER_APP_DIR.patch
new file mode 100644
index 00000000000..e11cc560c13
--- /dev/null
+++ b/testing/lomiri-weather-app/0001-rename-WEATHER_APP_DIR-to-LOMIRI_WEATHER_APP_DIR.patch
@@ -0,0 +1,21 @@
+From d1d9814346b24baffe1850418e0b2f9e172f2bb1 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Mon, 11 Mar 2024 17:59:17 -0400
+Subject: [PATCH 1/2] rename WEATHER_APP_DIR to LOMIRI_WEATHER_APP_DIR
+
+---
+ lomiri-weather-app.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lomiri-weather-app.in b/lomiri-weather-app.in
+index 4a179c1..95d7fbc 100644
+--- a/lomiri-weather-app.in
++++ b/lomiri-weather-app.in
+@@ -1,3 +1,3 @@
+ #!/bin/bash
+ export QT_SELECT=qt5
+-exec qmlscene @CMAKE_INSTALL_PREFIX@/@WEATHER_APP_DIR@/@MAIN_QML@
++exec qmlscene @CMAKE_INSTALL_PREFIX@/@LOMIRI_WEATHER_APP_DIR@/@MAIN_QML@
+--
+2.43.2
+
diff --git a/testing/lomiri-weather-app/0002-point-qmlscene-to-qmlscene-qt5.patch b/testing/lomiri-weather-app/0002-point-qmlscene-to-qmlscene-qt5.patch
new file mode 100644
index 00000000000..5c4146ed696
--- /dev/null
+++ b/testing/lomiri-weather-app/0002-point-qmlscene-to-qmlscene-qt5.patch
@@ -0,0 +1,21 @@
+From 0626f5457f5a5ab00f785b2b68d0b943b99c8ac0 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Mon, 11 Mar 2024 18:02:26 -0400
+Subject: [PATCH 2/2] point qmlscene to qmlscene-qt5
+
+---
+ lomiri-weather-app.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lomiri-weather-app.in b/lomiri-weather-app.in
+index 95d7fbc..9fe6475 100644
+--- a/lomiri-weather-app.in
++++ b/lomiri-weather-app.in
+@@ -1,3 +1,3 @@
+ #!/bin/bash
+ export QT_SELECT=qt5
+-exec qmlscene @CMAKE_INSTALL_PREFIX@/@LOMIRI_WEATHER_APP_DIR@/@MAIN_QML@
++exec qmlscene-qt5 @CMAKE_INSTALL_PREFIX@/@LOMIRI_WEATHER_APP_DIR@/@MAIN_QML@
+--
+2.43.2
+
diff --git a/testing/lomiri-weather-app/APKBUILD b/testing/lomiri-weather-app/APKBUILD
new file mode 100644
index 00000000000..bffa83f5217
--- /dev/null
+++ b/testing/lomiri-weather-app/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=lomiri-weather-app
+pkgver=5.13.5
+pkgrel=0
+pkgdesc="Provides current weather information for your mobile device"
+url="https://gitlab.com/ubports/development/apps/lomiri-weather-app"
+arch="all !armhf" # blocked by lomiri-ui-toolkit
+license="GPL-3.0-only"
+source="https://gitlab.com/ubports/development/apps/lomiri-weather-app/-/archive/v$pkgver/lomiri-weather-app-v$pkgver.tar.gz
+ 0001-rename-WEATHER_APP_DIR-to-LOMIRI_WEATHER_APP_DIR.patch
+ 0002-point-qmlscene-to-qmlscene-qt5.patch
+ "
+depends="
+ lomiri-indicator-network
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qqc2-suru-style
+ qt5-qtlocation
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ lomiri-trust-store-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ xvfb-run
+ "
+subpackages="$pkgname-lang"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # requires autopilot
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=OFF \
+ -DINSTALL_TESTS=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ mv "$pkgdir"/usr/share/lomiri-weather-app/app/*.svg \
+ "$pkgdir"/usr/share/lomiri-weather-app
+}
+
+sha512sums="
+3a90bd80a8748e9f3a3ab76a36b5e9ba39f9a93999584d7e92e8412170f5c0b7ecb6466b7390420507a572b657a319df4dda6f683f2064e338ee7b21af769261 lomiri-weather-app-v5.13.5.tar.gz
+1755d62aab06d873ba28ddcf5037e13c3faf16bb3b38881ac885caa5a4006f46705a1a25db382e30f8438d8e212e70e2767698ca41ed42d56c64ab86adfbb548 0001-rename-WEATHER_APP_DIR-to-LOMIRI_WEATHER_APP_DIR.patch
+7251565108426e207cdc3ea68c677b4f9b3ba65390d7fac9510704e74985b8b258bd80bf4e25e1fd83fdb92c46228a7ad09a23f0de7b37bcc734fb30ea592628 0002-point-qmlscene-to-qmlscene-qt5.patch
+"
diff --git a/testing/lomiri/0001-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch b/testing/lomiri/0001-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch
new file mode 100644
index 00000000000..cbb86ab7376
--- /dev/null
+++ b/testing/lomiri/0001-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch
@@ -0,0 +1,40 @@
+From 57a1a449b7305604710db32ffd9ab413492e1f5b Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Sun, 24 Dec 2023 17:23:39 +0100
+Subject: [PATCH 1/7] Fix overwriting INCLUDE_DIRECTORIES variable
+
+Let's set it before adding more include directories. Fixes compilation
+on Alpine Linux as of day - with CMake 3.28.1 fwiw
+---
+ tests/uqmlscene/CMakeLists.txt | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tests/uqmlscene/CMakeLists.txt b/tests/uqmlscene/CMakeLists.txt
+index 6cffcc4f1..6c0cce047 100644
+--- a/tests/uqmlscene/CMakeLists.txt
++++ b/tests/uqmlscene/CMakeLists.txt
+@@ -6,6 +6,10 @@ add_executable(uqmlscene
+
+ pkg_check_modules(XCB REQUIRED xcb)
+
++if (NOT "${XCB_INCLUDE_DIRS}" STREQUAL "")
++ set_target_properties(uqmlscene PROPERTIES INCLUDE_DIRECTORIES ${XCB_INCLUDE_DIRS})
++endif()
++
+ include_directories(
+ SYSTEM
+ ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
+@@ -19,10 +23,6 @@ include_directories(
+ ${liblomiri-private_SOURCE_DIR}
+ )
+
+-if (NOT "${XCB_INCLUDE_DIRS}" STREQUAL "")
+- set_target_properties(uqmlscene PROPERTIES INCLUDE_DIRECTORIES ${XCB_INCLUDE_DIRS})
+-endif()
+-
+ target_link_libraries(uqmlscene
+ Qt5::Qml Qt5::Quick Qt5::Test Qt5::DBus
+ ${Qt5Qml_LIBRARIES}
+--
+2.43.0
+
diff --git a/testing/lomiri/0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/testing/lomiri/0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch
new file mode 100644
index 00000000000..3a670177afe
--- /dev/null
+++ b/testing/lomiri/0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,59 @@
+From 601e01de1085356f61de8337c05b685f4f70c28d Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Sun, 28 Jan 2024 11:25:29 +0100
+Subject: [PATCH 2/7] Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+---
+ plugins/UInput/uinput.cpp | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/plugins/UInput/uinput.cpp b/plugins/UInput/uinput.cpp
+index e80db50d1..65034ae83 100644
+--- a/plugins/UInput/uinput.cpp
++++ b/plugins/UInput/uinput.cpp
+@@ -108,8 +108,11 @@ void UInput::removeMouse()
+ void UInput::moveMouse(int dx, int dy)
+ {
+ struct input_event event;
++ struct timespec time;
+ memset(&event, 0, sizeof(event));
+- clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
++ clock_gettime(CLOCK_MONOTONIC, &time);
++ event.input_event_sec = time.tv_sec;
++ event.input_event_usec = time.tv_nsec / 1000;
+ event.type = EV_REL;
+ event.code = REL_X;
+ event.value = dx;
+@@ -138,8 +141,11 @@ void UInput::releaseMouse(Button button)
+ void UInput::scrollMouse(int dh, int dv)
+ {
+ struct input_event event;
++ struct timespec time;
+ memset(&event, 0, sizeof(event));
+- clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
++ clock_gettime(CLOCK_MONOTONIC, &time);
++ event.input_event_sec = time.tv_sec;
++ event.input_event_usec = time.tv_nsec / 1000;
+ event.type = EV_REL;
+ event.code = REL_HWHEEL;
+ event.value = dh;
+@@ -158,8 +164,11 @@ void UInput::scrollMouse(int dh, int dv)
+ void UInput::injectMouse(Button button, int down)
+ {
+ struct input_event event;
++ struct timespec time;
+ memset(&event, 0, sizeof(event));
+- clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
++ clock_gettime(CLOCK_MONOTONIC, &time);
++ event.input_event_sec = time.tv_sec;
++ event.input_event_usec = time.tv_nsec / 1000;
+ event.type = EV_KEY;
+ switch (button) {
+ case ButtonLeft:
+--
+2.43.0
+
diff --git a/testing/lomiri/0003-cursor-Always-follow-cursor-position-from-mir.patch b/testing/lomiri/0003-cursor-Always-follow-cursor-position-from-mir.patch
new file mode 100644
index 00000000000..81771cd59c1
--- /dev/null
+++ b/testing/lomiri/0003-cursor-Always-follow-cursor-position-from-mir.patch
@@ -0,0 +1,32 @@
+From 0528e804b6625bd42664ac661566efb4f1918031 Mon Sep 17 00:00:00 2001
+From: Marius Gripsgard <marius@ubports.com>
+Date: Wed, 31 May 2023 05:48:35 +0200
+Subject: [PATCH 3/7] cursor: Always follow cursor position from mir
+
+It makes no sense to not, if we dont we can quickly get out of sync with
+mir.
+
+This was done for multiscreen, but this has to be fixed another way then
+tracking pointer ourself. The plan is to follow mir's screen position
+anyway so we don't need this. (the current multiscreen impl is horrable)
+---
+ plugins/Cursor/InputDispatcherFilter.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/plugins/Cursor/InputDispatcherFilter.cpp b/plugins/Cursor/InputDispatcherFilter.cpp
+index 4ef0199d9..5dcc1a421 100644
+--- a/plugins/Cursor/InputDispatcherFilter.cpp
++++ b/plugins/Cursor/InputDispatcherFilter.cpp
+@@ -72,7 +72,8 @@ bool InputDispatcherFilter::eventFilter(QObject *o, QEvent *e)
+ QPointF movement = me->localPos();
+
+ // Adjust the position
+- QPointF oldPos = pointer->window()->geometry().topLeft() + pointer->position();
++ // Get the pos from mir
++ QPointF oldPos = me->screenPos();
+ QPointF newPos = adjustedPositionForMovement(oldPos, movement);
+
+ QScreen* currentScreen = screenAt(newPos);
+--
+2.43.0
+
diff --git a/testing/lomiri/0004-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch b/testing/lomiri/0004-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch
new file mode 100644
index 00000000000..01b23f1b57d
--- /dev/null
+++ b/testing/lomiri/0004-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch
@@ -0,0 +1,26 @@
+From ced81a10807327855f583687f4ac3c7f7ec7250c Mon Sep 17 00:00:00 2001
+From: Marius Gripsgard <marius@ubports.com>
+Date: Thu, 12 Jan 2023 01:08:08 +0100
+Subject: [PATCH 4/7] Disable broken tests due to dropped mocks from mir 2.9
+
+---
+ tests/mocks/CMakeLists.txt | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tests/mocks/CMakeLists.txt b/tests/mocks/CMakeLists.txt
+index c9a93cf66..c49e8898f 100644
+--- a/tests/mocks/CMakeLists.txt
++++ b/tests/mocks/CMakeLists.txt
+@@ -41,7 +41,8 @@ add_subdirectory(Powerd)
+ add_subdirectory(QMenuModel.1)
+ add_subdirectory(SessionBroadcast)
+ add_subdirectory(Lomiri)
+-add_subdirectory(QtMir/Application)
++# Broken due to dropped mocks from mir 2.9
++#add_subdirectory(QtMir/Application)
+ add_subdirectory(QtMultimedia)
+ add_subdirectory(WindowManager)
+ add_subdirectory(Wizard)
+--
+2.43.0
+
diff --git a/testing/lomiri/0005-Add-qt5-suffix-to-search-for-Qt-tools.patch b/testing/lomiri/0005-Add-qt5-suffix-to-search-for-Qt-tools.patch
new file mode 100644
index 00000000000..1452c101e7d
--- /dev/null
+++ b/testing/lomiri/0005-Add-qt5-suffix-to-search-for-Qt-tools.patch
@@ -0,0 +1,47 @@
+From 7a1477480b29605193be5e77ee27faf5c52839d2 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Tue, 29 Jan 2019 19:25:24 +0100
+Subject: [PATCH 5/7] Add -qt5 suffix to search for Qt tools
+
+---
+ cmake/modules/QmlTest.cmake | 4 ++--
+ tests/CMakeLists.txt | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/cmake/modules/QmlTest.cmake b/cmake/modules/QmlTest.cmake
+index f4a95ab4e..537ba792c 100644
+--- a/cmake/modules/QmlTest.cmake
++++ b/cmake/modules/QmlTest.cmake
+@@ -114,9 +114,9 @@ endfunction()
+ # This function wraps add_executable_test, see below for available arguments.
+
+ function(add_qml_unittest PATH COMPONENT_NAME)
+- import_executables(qmltestrunner)
++ import_executables(qmltestrunner-qt5)
+
+- add_executable_test(${COMPONENT_NAME} qmltestrunner
++ add_executable_test(${COMPONENT_NAME} qmltestrunner-qt5
+ ${ARGN}
+ ARGS -input ${CMAKE_CURRENT_SOURCE_DIR}/${PATH}/tst_${COMPONENT_NAME}.qml ${QMLTEST_ARGS}
+ )
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index f2bcf212d..58cf9bee9 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -135,11 +135,11 @@ endfunction()
+ if(DEFINED ENV{DEB_BUILD_MULTIARCH})
+ set(QDBUSXML2CPP_EXECUTABLE "/usr/lib/$ENV{DEB_BUILD_MULTIARCH}/qt5/bin/qdbusxml2cpp")
+ else()
+- FIND_PROGRAM(QDBUSXML2CPP_EXECUTABLE qdbusxml2cpp)
++ FIND_PROGRAM(QDBUSXML2CPP_EXECUTABLE qdbusxml2cpp-qt5)
+ endif()
+
+ if(NOT QDBUSXML2CPP_EXECUTABLE)
+- message(FATAL_ERROR "qdbusxml2cpp not found")
++ message(FATAL_ERROR "qdbusxml2cpp-qt5 not found")
+ endif()
+
+ install(DIRECTORY data graphics
+--
+2.43.0
+
diff --git a/testing/lomiri/0006-No-systemd.patch b/testing/lomiri/0006-No-systemd.patch
new file mode 100644
index 00000000000..86d2bdfe314
--- /dev/null
+++ b/testing/lomiri/0006-No-systemd.patch
@@ -0,0 +1,22 @@
+From f7b5bcf00f57ef0d64cefb772a02e29d81b6bb2b Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Fri, 25 Jun 2021 10:16:19 +0200
+Subject: [PATCH 6/7] No systemd
+
+---
+ data/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
+index 4bffd05dd..7b5bb8e4f 100644
+--- a/data/CMakeLists.txt
++++ b/data/CMakeLists.txt
+@@ -49,4 +49,4 @@ add_custom_target(pkgversion ALL COMMAND echo ${PROJECT_VERSION} | head -n1 > ${
+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/lib/lomiri)
+
+-add_subdirectory(systemd-user)
++#add_subdirectory(systemd-user)
+--
+2.43.0
+
diff --git a/testing/lomiri/0007-Disable-lightdm-integration.patch b/testing/lomiri/0007-Disable-lightdm-integration.patch
new file mode 100644
index 00000000000..58109720a81
--- /dev/null
+++ b/testing/lomiri/0007-Disable-lightdm-integration.patch
@@ -0,0 +1,40 @@
+From 8f73d2aa28bf83b45876b1b6719a8488eb762f85 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca.weiss@fairphone.com>
+Date: Tue, 14 Nov 2023 22:00:38 +0100
+Subject: [PATCH 7/7] Disable lightdm integration
+
+Not needed on postmarketOS
+---
+ plugins/CMakeLists.txt | 2 +-
+ tests/plugins/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
+index 7dacef455..da53955d4 100644
+--- a/plugins/CMakeLists.txt
++++ b/plugins/CMakeLists.txt
+@@ -16,7 +16,7 @@ add_subdirectory(BatteryMonitor)
+ add_subdirectory(Cursor)
+ add_subdirectory(GlobalShortcut)
+ add_subdirectory(Greeter)
+-add_subdirectory(LightDM)
++#add_subdirectory(LightDM)
+ add_subdirectory(Powerd)
+ add_subdirectory(ProcessControl)
+ add_subdirectory(ScreenshotDirectory)
+diff --git a/tests/plugins/CMakeLists.txt b/tests/plugins/CMakeLists.txt
+index 352beba17..5f6f5cc8c 100644
+--- a/tests/plugins/CMakeLists.txt
++++ b/tests/plugins/CMakeLists.txt
+@@ -2,7 +2,7 @@ add_subdirectory(AccountsService)
+ add_subdirectory(Cursor)
+ add_subdirectory(GlobalShortcut)
+ add_subdirectory(Greeter)
+-add_subdirectory(LightDM)
++#add_subdirectory(LightDM)
+ add_subdirectory(SessionBroadcast)
+ add_subdirectory(Lomiri)
+ add_subdirectory(Utils)
+--
+2.43.0
+
diff --git a/testing/lomiri/0008-Change-hard-coded-launcher-logo-to-one-set-by-a-reso.patch b/testing/lomiri/0008-Change-hard-coded-launcher-logo-to-one-set-by-a-reso.patch
new file mode 100644
index 00000000000..44e8fc81602
--- /dev/null
+++ b/testing/lomiri/0008-Change-hard-coded-launcher-logo-to-one-set-by-a-reso.patch
@@ -0,0 +1,158 @@
+From b7df6bf3459ddadb29b6c4203e1032b6f3808c0b Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Fri, 22 Mar 2024 19:28:46 -0400
+Subject: [PATCH] Change hard-coded launcher logo to one set by a resolver
+
+---
+ plugins/Utils/constants.cpp | 1 +
+ plugins/Utils/constants.h | 3 ++
+ qml/Components/LogoResolver.qml | 61 +++++++++++++++++++++++++++++++++
+ qml/Launcher/LauncherPanel.qml | 22 ++++++++++--
+ 4 files changed, 85 insertions(+), 2 deletions(-)
+ create mode 100644 qml/Components/LogoResolver.qml
+
+diff --git a/plugins/Utils/constants.cpp b/plugins/Utils/constants.cpp
+index d7d6053f5..780cb75ed 100644
+--- a/plugins/Utils/constants.cpp
++++ b/plugins/Utils/constants.cpp
+@@ -29,4 +29,5 @@ Constants::Constants(QObject *parent)
+
+ QString snapRoot = QFile::decodeName(qgetenv("SNAP"));
+ m_defaultWallpaper = snapRoot + "/usr/share/backgrounds/warty-final-ubuntu.png";
++ m_defaultLogo = snapRoot + "/usr/share/lomiri/Launcher/graphics/home.svg";
+ }
+diff --git a/plugins/Utils/constants.h b/plugins/Utils/constants.h
+index c2ccc9cab..0e4eded31 100644
+--- a/plugins/Utils/constants.h
++++ b/plugins/Utils/constants.h
+@@ -30,14 +30,17 @@ class Constants: public QObject
+ Q_OBJECT
+ Q_PROPERTY(int indicatorValueTimeout READ indicatorValueTimeout CONSTANT)
+ Q_PROPERTY(QString defaultWallpaper READ defaultWallpaper CONSTANT)
++ Q_PROPERTY(QString defaultLogo READ defaultLogo CONSTANT)
+
+ public:
+ Constants(QObject *parent = 0);
+
+ int indicatorValueTimeout() const { return m_indicatorValueTimeout; }
+ QString defaultWallpaper() const { return m_defaultWallpaper; }
++ QString defaultLogo() const { return m_defaultLogo; }
+
+ private:
+ int m_indicatorValueTimeout;
+ QString m_defaultWallpaper;
++ QString m_defaultLogo;
+ };
+diff --git a/qml/Components/LogoResolver.qml b/qml/Components/LogoResolver.qml
+new file mode 100644
+index 000000000..53b1bb937
+--- /dev/null
++++ b/qml/Components/LogoResolver.qml
+@@ -0,0 +1,61 @@
++/*
++ * Copyright (C) 2015 Canonical Ltd.
++ * Copyright (C) 2024 UBports Foundation
++ *
++ * 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; version 3.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++import QtQuick 2.12
++import Lomiri.Components 1.3
++
++Item {
++ id: root
++
++ // Provide a list of logos to resolve here, preferred ones first
++ property var candidates: []
++
++ property bool cache: true
++
++ readonly property url logo: {
++ for (var i = 0; i < repeater.count; i++) {
++ var image = repeater.itemAt(i);
++ var expectedImageSource = Qt.resolvedUrl(candidates[i]);
++ if (image.source != expectedImageSource)
++ return "";
++ if (image.status === Image.Ready)
++ return candidates[i];
++ if (image.status === Image.Loading)
++ return "";
++ }
++ if (candidates.length > 0) {
++ return candidates.slice(-1)[0]; // last item is last resort
++ } else {
++ return "";
++ }
++ }
++
++ Repeater {
++ id: repeater
++ model: root.candidates.slice(0, -1)
++ delegate: Image {
++ source: modelData
++ autoTransform: true
++ asynchronous: true
++ cache: root.cache
++ height: 0
++ width: 0
++ sourceSize.height: 1
++ sourceSize.width: 1
++ }
++ }
++}
+diff --git a/qml/Launcher/LauncherPanel.qml b/qml/Launcher/LauncherPanel.qml
+index 4d5764803..56a0110ea 100644
+--- a/qml/Launcher/LauncherPanel.qml
++++ b/qml/Launcher/LauncherPanel.qml
+@@ -19,6 +19,7 @@ import QtQml.StateMachine 1.0 as DSM
+ import Lomiri.Components 1.3
+ import Lomiri.Launcher 0.1
+ import Lomiri.Components.Popups 1.3
++import GSettings 1.0
+ import Utils 0.1
+ import "../Components"
+
+@@ -95,11 +96,28 @@ Rectangle {
+ width: parent.width * .6
+ height: width
+ anchors.centerIn: parent
+- source: "graphics/home.svg"
+- color: "white"
++ source: homeLogoResolver.logo
+ rotation: root.rotation
+ }
+
++ LogoResolver {
++ id: homeLogoResolver
++ objectName: "homeLogoResolver"
++
++ readonly property url defaultLogo: "file://" + Constants.defaultLogo
++ readonly property bool hasCustomLogo: logo != defaultLogo
++
++ GSettings {
++ id: logoSettings
++ schema.id: "com.lomiri.Shell.Launcher"
++ }
++
++ candidates: [
++ logoSettings.logoPictureUri,
++ defaultLogo
++ ]
++ }
++
+ AbstractButton {
+ id: dashItem
+ anchors.fill: parent
+--
+2.44.0
+
diff --git a/testing/lomiri/APKBUILD b/testing/lomiri/APKBUILD
new file mode 100644
index 00000000000..3a2e4ea2beb
--- /dev/null
+++ b/testing/lomiri/APKBUILD
@@ -0,0 +1,115 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lomiri
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="A convergent desktop environment"
+# armhf: blocked by lomiri-ui-toolkit
+# s390x, riscv64, ppc64le: blocked by lomiri-system-settings
+arch="all !armhf !s390x !riscv64 !ppc64le"
+url="https://gitlab.com/ubports/development/core/lomiri"
+license="GPL-3.0-only AND LGPL-2.1-only"
+depends="
+ ayatana-indicator-keyboard
+ ayatana-indicator-session
+ biometryd
+ gsettings-desktop-schemas
+ lomiri-notifications
+ lomiri-schemas
+ lomiri-settings-components
+ lomiri-telephony-service
+ lomiri-thumbnailer
+ openrc-settingsd
+ qt5-qtbase-sqlite
+ qt5-qtgraphicaleffects
+ suru-icon-theme
+ "
+makedepends="
+ cmake
+ cmake-extras
+ dbus-test-runner
+ doxygen
+ elogind-dev
+ geonames-dev
+ gnome-desktop-dev
+ graphviz
+ gsettings-qt-dev
+ libqtdbusmock
+ libqtdbustest
+ linux-pam-dev
+ lomiri-api-dev
+ lomiri-app-launch-dev
+ lomiri-deviceinfo-dev
+ lomiri-download-manager-dev
+ lomiri-indicator-network-dev
+ lomiri-libusermetrics-dev
+ lomiri-system-settings
+ lomiri-ui-toolkit-dev
+ qmenumodel
+ qmenumodel-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qtmir-dev
+ samurai
+ "
+checkdepends="py3-dbusmock"
+source="https://gitlab.com/ubports/development/core/lomiri/-/archive/$pkgver/lomiri-$pkgver.tar.gz
+ 0001-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch
+ 0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+ 0003-cursor-Always-follow-cursor-position-from-mir.patch
+ 0004-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch
+ 0005-Add-qt5-suffix-to-search-for-Qt-tools.patch
+ 0006-No-systemd.patch
+ 0007-Disable-lightdm-integration.patch
+ 0008-Change-hard-coded-launcher-logo-to-one-set-by-a-reso.patch
+ home.svg
+ "
+subpackages="$pkgname-lang"
+options="!check" # Tests fail
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # Replace the Ubuntu logo with Alpine
+ rm "$pkgdir"/usr/share/lomiri/Launcher/graphics/home.svg
+ install -Dm644 "$srcdir"/home.svg \
+ "$pkgdir"/usr/share/lomiri/Launcher/graphics/
+
+ # Remove various mocks and test files not wanted at runtime
+ rm "$pkgdir"/usr/bin/indicators-client
+ rm "$pkgdir"/usr/bin/lomiri-mock-indicator-service
+ rm -r "$pkgdir"/usr/lib/lomiri/qml/mocks/
+ rm -r "$pkgdir"/usr/lib/lomiri/qml/utils/Lomiri/SelfTest/
+ rm -r "$pkgdir"/usr/libexec/lomiri/tests/
+ rm "$pkgdir"/usr/libexec/lomiri/uqmlscene
+ rm "$pkgdir"/usr/share/applications/indicators-client.desktop
+ rm -r "$pkgdir"/usr/share/lomiri/mocks/
+ rm -r "$pkgdir"/usr/share/lomiri/tests/
+}
+
+sha512sums="
+4f844cb7552a6df9c3ed31f6705d0af2147fd44e7b390e8a4f7c5f95e61fc91590ebec1b296cf9eae83bbaa56df8fc5b1fa685143a788472e21525532d0b4251 lomiri-0.2.1.tar.gz
+46f11652b0ed77fd27f14cef236a9f247885cc2fd85c433b47c617c0a9a3f80c292ba98c779b02e75bd752075160dc5e997b3f2bd4e24ee7f7005706268ded81 0001-Fix-overwriting-INCLUDE_DIRECTORIES-variable.patch
+2a1f8069ff84486f7905fa2dc098b283c4d8308ad374d3f8383559241bfd9da4cabaecacfef41825f154e0d2d902eb85dff788aaca6260e1f6a21714bba7ff1d 0002-Fix-build-on-32bit-arches-with-64bit-time_t.patch
+f124a98e8b13a0c640ab7180a9516d11122c787bff821225f7730fe292ad476a7fc68d1ffa7b3d2be0f3daf4732c3d60aba61044225764bf62eb4b432ca51a68 0003-cursor-Always-follow-cursor-position-from-mir.patch
+1ce136ed0dd5f9a285d194684194ca04135ad9b4a7ac3bea5f1714b58465cc8d98f5f218938ea2155d9d9a4939877a65b7f7b02dba2d6beed3a940e42e137fd8 0004-Disable-broken-tests-due-to-dropped-mocks-from-mir-2.patch
+33e92a4646352f16993829ae7686b7ebf2c949d418e51ed466268b53d8d0f939861fa113a19403936ce48e16e58c6166e370a4fd27a184bde554c4e2746b0898 0005-Add-qt5-suffix-to-search-for-Qt-tools.patch
+828c19e69cc830b40d648ed5bfe03fdd350986c0f6276c7cb659097c54bb593a5a5c2471d2b4a463ced80f23f790829f50f5ec807c4e0d846e5b84a433109c1c 0006-No-systemd.patch
+1ddd7a73bf5aa815e50251afd4b54563cc366667c9b9d230ba377451a569a0af01255ad2a3dbff255fc2067d9a404592f3c3f3910ff1c1a83f1280741663e92d 0007-Disable-lightdm-integration.patch
+c953baa7ee424567105dcf37f45674638f9b8236e59121e05f454ccf198d65a9f8de445cfcc3d78a6e11439e395c33812d161b8fff0a6e03df2ee3f4d5526fbd 0008-Change-hard-coded-launcher-logo-to-one-set-by-a-reso.patch
+8be30a5e7692c39ffb1948910b45d8fa69a88725df45b67ba69711281b3cf15568b9fff29a8b5b216e5e86656b5961ad7ef9eb0e87c007215e012c3a663045b7 home.svg
+"
diff --git a/testing/lomiri/home.svg b/testing/lomiri/home.svg
new file mode 100644
index 00000000000..0cf773428db
--- /dev/null
+++ b/testing/lomiri/home.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ id="svg2"
+ version="1.1"
+ inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
+ width="320"
+ height="320"
+ xml:space="preserve"
+ sodipodi:docname="home.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
+ id="metadata8"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs6"><clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath16"><path
+ d="M 0,560 H 960 V 0 H 0 Z"
+ id="path18"
+ inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1080"
+ inkscape:window-height="689"
+ id="namedview4"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:zoom="0.9560989"
+ inkscape:cx="145.90541"
+ inkscape:cy="141.19878"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g10"
+ inkscape:showpageshadow="2"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ inkscape:clip-to-page="false" /><g
+ id="g10"
+ inkscape:groupmode="layer"
+ inkscape:label="Alpine_Linux_logo_v4"
+ transform="matrix(1.25,0,0,-1.25,-267.55675,591.98975)"><g
+ id="g56"
+ transform="matrix(1.697972,0,0,1.697972,307.48063,318.69932)"
+ style="fill:#ffffff;fill-opacity:1"><path
+ d="M 0,0 V 15.687 L -11.296,4.379 C -10.079,3.532 -8.932,2.836 -7.853,2.27 -6.774,1.703 -5.764,1.265 -4.823,0.932 -3.882,0.598 -3.009,0.37 -2.206,0.222 -1.402,0.075 -0.667,0.009 0,0 m 57.751,1.304 c 0.02,-0.017 0.13,-0.11 0.333,-0.239 0.204,-0.13 0.502,-0.297 0.898,-0.462 0.395,-0.164 0.889,-0.327 1.485,-0.448 0.596,-0.122 1.294,-0.202 2.098,-0.202 0.671,0 1.411,0.059 2.222,0.2 0.812,0.142 1.693,0.367 2.645,0.699 0.953,0.333 1.976,0.773 3.07,1.344 1.094,0.572 2.259,1.276 3.495,2.136 L 65.425,12.729 37.015,41.245 24.549,28.776 7.733,46.117 -34.471,4.39 c 1.235,-0.86 2.398,-1.564 3.491,-2.136 1.093,-0.571 2.115,-1.011 3.067,-1.344 0.951,-0.332 1.832,-0.557 2.643,-0.698 0.81,-0.142 1.55,-0.201 2.22,-0.201 0.804,0 1.502,0.08 2.097,0.202 0.596,0.121 1.089,0.284 1.485,0.449 0.396,0.164 0.693,0.331 0.897,0.461 0.204,0.13 0.314,0.223 0.334,0.24 L 0.815,20.415 7.628,26.948 26.494,8.082 33.085,1.304 c 0.02,-0.017 0.13,-0.11 0.334,-0.239 0.204,-0.13 0.501,-0.297 0.897,-0.462 0.396,-0.164 0.89,-0.327 1.485,-0.448 0.596,-0.122 1.295,-0.202 2.099,-0.202 0.67,0 1.411,0.059 2.222,0.2 0.811,0.142 1.693,0.367 2.645,0.699 0.952,0.333 1.975,0.773 3.069,1.344 1.094,0.572 2.259,1.276 3.495,2.136 L 34.192,19.157 37.01,21.975 50.111,8.874 57.751,1.304 M 57.588,80.32 94.807,15.838 57.588,-48.644 h -74.463 l -37.219,64.482 37.219,64.482 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path58"
+ inkscape:connector-curvature="0" /></g><g
+ id="g60"
+ transform="matrix(1.697972,0,0,1.697972,365.83092,350.92547)"
+ style="fill:#ffffff;fill-opacity:1"><path
+ d="M 0,0 -9.913,9.895 -9.208,10.604 0.775,0.73 Z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path62"
+ inkscape:connector-curvature="0" /></g></g></svg>
diff --git a/testing/looking-glass/APKBUILD b/testing/looking-glass/APKBUILD
new file mode 100644
index 00000000000..21818202bf5
--- /dev/null
+++ b/testing/looking-glass/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Rogério da Silva Yokomizo <me@ro.ger.io>
+# Maintainer: Rogério da Silva Yokomizo <me@ro.ger.io>
+pkgname=looking-glass
+_pkgver=B6
+pkgver=6b
+pkgrel=2
+pkgdesc="Allows the use of a KVM configured for VGA PCI Pass-through without an attached physical monitor, keyboard or mouse"
+url="https://looking-glass.io/"
+arch="x86_64"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ fontconfig-dev
+ libsamplerate-dev
+ libx11-dev
+ libxcursor-dev
+ libxfixes-dev
+ libxi-dev
+ libxinerama-dev
+ libxkbcommon-dev
+ libxpresent-dev
+ libxscrnsaver-dev
+ nettle-dev
+ obs-studio-dev
+ pipewire-dev
+ pulseaudio-dev
+ samurai
+ spice-dev
+ wayland-dev
+ wayland-protocols
+ "
+source="$pkgname-$_pkgver.tar.gz::https://looking-glass.io/artifact/$_pkgver/source
+ missing-includes.patch
+ obs-plugins-lib.patch
+ werror.patch
+ "
+subpackages="$pkgname-obs"
+builddir="$srcdir/$pkgname-$_pkgver"
+options="!check" # There are no tests nor --version.
+
+build() {
+ cmake -S client -B build-client -G Ninja \
+ -DENABLE_BACKTRACE=OFF \
+ -DOPTIMIZE_FOR_NATIVE=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ cmake -S obs -B build-obs -G Ninja \
+ -DENABLE_BACKTRACE=OFF \
+ -DOPTIMIZE_FOR_NATIVE=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ cmake --build build-client
+ cmake --build build-obs
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build-client
+ DESTDIR="$pkgdir" cmake --install build-obs
+}
+
+obs() {
+ pkgdesc="$pkgdesc (obs plugin)"
+ amove usr/lib/obs-plugins
+}
+
+sha512sums="
+558981d6b32098076ef0775a748da349941551352cbef836e37310e43e5cd6072df3dec6fa2418a9abecc7729ef0c1c6869e3168d05a3d76bea46c6eb8c4e82c looking-glass-B6.tar.gz
+6d2449764a8316dd3c1b5cc0aa552671068f89ed2f95297f3c5256af8529b93e5ec7af8f979bd2e744fd09b11063e8a93f3ed26284f0e49294e467ca10f6e772 missing-includes.patch
+33c5463412a16691f47d7833ebf81d7cf20c560a077dca141dcc9f02a5d6dfb676e483835f39a06012b114be9f509dda4614fe253bb1c72a0142e82dc265a5ca obs-plugins-lib.patch
+b952d1fd284aed15bcfe7990f160dec3a4565fb5833ce339920f62de6bb46fbc09265a0a79fe80d212eecc6a1813614e1e193a8846c37e2afd18431dc3a89ca4 werror.patch
+"
diff --git a/testing/looking-glass/missing-includes.patch b/testing/looking-glass/missing-includes.patch
new file mode 100644
index 00000000000..635752cca64
--- /dev/null
+++ b/testing/looking-glass/missing-includes.patch
@@ -0,0 +1,92 @@
+--- a/repos/PureSpice/src/agent.c
++++ b/repos/PureSpice/src/agent.c
+@@ -31,6 +31,7 @@ Place, Suite 330, Boston, MA 02111-1307
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <assert.h>
+
+ #include <sys/ioctl.h>
+--- a/repos/PureSpice/src/channel_cursor.c
++++ b/repos/PureSpice/src/channel_cursor.c
+@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307
+ #include "channel_cursor.h"
+
+ #include <stdlib.h>
++#include <string.h>
+
+ #include "messages.h"
+
+--- a/repos/PureSpice/src/channel_display.c
++++ b/repos/PureSpice/src/channel_display.c
+@@ -19,6 +19,7 @@ Place, Suite 330, Boston, MA 02111-1307
+
+ #include "purespice.h"
+ #include <stdlib.h>
++#include <string.h>
+
+ #include "ps.h"
+ #include "log.h"
+--- a/repos/PureSpice/src/channel_inputs.c
++++ b/repos/PureSpice/src/channel_inputs.c
+@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307
+ #include "messages.h"
+
+ #include <stdlib.h>
++#include <string.h>
+
+ const SpiceLinkHeader * channelInputs_getConnectPacket(void)
+ {
+--- a/repos/PureSpice/src/channel_main.c
++++ b/repos/PureSpice/src/channel_main.c
+@@ -24,6 +24,7 @@ Place, Suite 330, Boston, MA 02111-1307
+ #include "messages.h"
+
+ #include <stdlib.h>
++#include <string.h>
+
+ struct ChannelMain
+ {
+--- a/repos/PureSpice/src/channel_playback.c
++++ b/repos/PureSpice/src/channel_playback.c
+@@ -26,6 +26,8 @@ Place, Suite 330, Boston, MA 02111-1307
+
+ #include "messages.h"
+
++#include <string.h>
++
+ const SpiceLinkHeader * channelPlayback_getConnectPacket(void)
+ {
+ typedef struct
+--- a/repos/PureSpice/src/channel_record.c
++++ b/repos/PureSpice/src/channel_record.c
+@@ -26,6 +26,8 @@ Place, Suite 330, Boston, MA 02111-1307
+
+ #include "messages.h"
+
++#include <string.h>
++
+ const SpiceLinkHeader * channelRecord_getConnectPacket(void)
+ {
+ typedef struct
+--- a/repos/PureSpice/src/log.c
++++ b/repos/PureSpice/src/log.c
+@@ -25,6 +25,7 @@ Place, Suite 330, Boston, MA 02111-1307
+
+ #include <stdarg.h>
+ #include <stdio.h>
++#include <string.h>
+
+ static void log_stdout(const char * file, unsigned int line,
+ const char * function, const char * format, ...)
+--- a/repos/PureSpice/src/ps.c
++++ b/repos/PureSpice/src/ps.c
+@@ -37,6 +37,7 @@ Place, Suite 330, Boston, MA 02111-1307
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <assert.h>
+ #include <errno.h>
+
diff --git a/testing/looking-glass/obs-plugins-lib.patch b/testing/looking-glass/obs-plugins-lib.patch
new file mode 100644
index 00000000000..1390adb7fb7
--- /dev/null
+++ b/testing/looking-glass/obs-plugins-lib.patch
@@ -0,0 +1,12 @@
+--- a/obs/CMakeLists.txt
++++ b/obs/CMakeLists.txt
+@@ -84,7 +84,8 @@ target_link_libraries(looking-glass-obs
+ )
+
+ install(TARGETS looking-glass-obs
+- LIBRARY DESTINATION ${OBS_PLUGIN_PREFIX}/${CMAKE_PROJECT_NAME}/bin/${OBS_PLUGIN_DIR}
++ # LIBRARY DESTINATION ${OBS_PLUGIN_PREFIX}/${CMAKE_PROJECT_NAME}/bin/${OBS_PLUGIN_DIR}
++ LIBRARY DESTINATION /usr/lib/obs-plugins
+ )
+
+ feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES)
diff --git a/testing/looking-glass/werror.patch b/testing/looking-glass/werror.patch
new file mode 100644
index 00000000000..436419f70d7
--- /dev/null
+++ b/testing/looking-glass/werror.patch
@@ -0,0 +1,24 @@
+diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt
+index 836f814..7047365 100644
+--- a/client/CMakeLists.txt
++++ b/client/CMakeLists.txt
+@@ -68,7 +68,6 @@ add_compile_options(
+ "-Wno-unused-parameter"
+ "$<$<COMPILE_LANGUAGE:C>:-Wstrict-prototypes>"
+ "$<$<C_COMPILER_ID:GNU>:-Wimplicit-fallthrough=2>"
+- "-Werror"
+ "-Wfatal-errors"
+ "-ffast-math"
+ "-fdata-sections"
+diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt
+index 0491e65..60b37ff 100644
+--- a/obs/CMakeLists.txt
++++ b/obs/CMakeLists.txt
+@@ -18,7 +18,6 @@ add_feature_info(ENABLE_BACKTRACE ENABLE_BACKTRACE "Backtrace support.")
+
+ add_compile_options(
+ "-Wall"
+- "-Werror"
+ "-Wfatal-errors"
+ "-ffast-math"
+ "-fdata-sections"
diff --git a/testing/loolwsd/10-musl.patch b/testing/loolwsd/10-musl.patch
new file mode 100644
index 00000000000..f546d9ce8d9
--- /dev/null
+++ b/testing/loolwsd/10-musl.patch
@@ -0,0 +1,230 @@
+fix differences between musl and glibc
+* change error funtion to err
+* change sys/poll.h to poll.h
+* add ftw-missing.h with defines missing in alpine ftw.h
+* remove test subdir from makefile.am as tests fail
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -14,7 +14,7 @@
+
+ else
+
+-SUBDIRS = . test loleaflet
++SUBDIRS = . loleaflet
+
+ export ENABLE_DEBUG
+
+--- a/common/FileUtil.cpp
++++ b/common/FileUtil.cpp
+@@ -12,6 +12,7 @@
+ #include "FileUtil.hpp"
+
+ #include <ftw.h>
++#include "ftw-missing.h"
+ #include <sys/stat.h>
+ #ifdef __linux
+ #include <sys/vfs.h>
+--- a/common/IoUtil.cpp
++++ b/common/IoUtil.cpp
+@@ -11,7 +11,7 @@
+
+ #include "IoUtil.hpp"
+
+-#include <sys/poll.h>
++#include <poll.h>
+
+ #include <cassert>
+ #include <cstdlib>
+--- a/common/Seccomp.cpp
++++ b/common/Seccomp.cpp
+@@ -17,6 +17,7 @@
+
+ #include <dlfcn.h>
+ #include <ftw.h>
++#include "ftw-missing.h"
+ #include <linux/audit.h>
+ #include <linux/filter.h>
+ #if DISABLE_SECCOMP == 0
+--- a/common/Session.cpp
++++ b/common/Session.cpp
+@@ -14,6 +14,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <ftw.h>
++#include "ftw-missing.h"
+ #include <utime.h>
+
+ #include <cassert>
+--- a/common/SigUtil.cpp
++++ b/common/SigUtil.cpp
+@@ -11,11 +11,11 @@
+
+ #include "SigUtil.hpp"
+
+-#if !defined(__ANDROID__)
++#if !defined(__ANDROID__) && defined(__GLIBC__)
+ # include <execinfo.h>
+ #endif
+ #include <csignal>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/stat.h>
+ #include <sys/uio.h>
+ #include <unistd.h>
+@@ -265,7 +265,7 @@
+
+ void dumpBacktrace()
+ {
+-#if !defined(__ANDROID__)
++#if !defined(__ANDROID__) && defined(__GLIBC__)
+ Log::signalLog("\nBacktrace ");
+ Log::signalLogNumber(getpid());
+ Log::signalLog(":\n");
+@@ -278,7 +278,7 @@
+ backtrace_symbols_fd(backtraceBuffer, numSlots, STDERR_FILENO);
+ }
+ #else
+- LOG_SYS("Backtrace not available on Android.");
++ LOG_SYS("Backtrace not available on Android or Musl.");
+ #endif
+
+ if (std::getenv("LOOL_DEBUG"))
+--- a/common/Util.cpp
++++ b/common/Util.cpp
+@@ -12,7 +12,7 @@
+ #include "Util.hpp"
+
+ #include <csignal>
+-#include <sys/poll.h>
++#include <poll.h>
+ #ifdef __linux
+ #include <sys/prctl.h>
+ #include <sys/syscall.h>
+--- /dev/null
++++ b/common/ftw-missing.h
+@@ -0,0 +1,6 @@
++#define FTW_ACTIONRETVAL 16
++
++#define FTW_CONTINUE 0
++#define FTW_STOP 1
++#define FTW_SKIP_SUBTREE 2
++#define FTW_SKIP_SIBLINGS 3
+--- a/kit/Kit.cpp
++++ b/kit/Kit.cpp
+@@ -16,6 +16,7 @@
+ #include <dlfcn.h>
+ #ifdef __linux
+ #include <ftw.h>
++#include "ftw-missing.h"
+ #include <sys/capability.h>
+ #include <sys/sysmacros.h>
+ #endif
+--- a/tools/map.cpp
++++ b/tools/map.cpp
+@@ -20,7 +20,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -99,7 +99,7 @@
+ snprintf(path_proc, sizeof(path_proc), "/proc/%d/%s", proc_id, name);
+ int fd = open(path_proc, 0);
+ if (fd < 0)
+- error(EXIT_FAILURE, errno, "Failed to open %s", path_proc);
++ err(EXIT_FAILURE, "Failed to open %s", path_proc);
+ return fd;
+ }
+
+@@ -259,7 +259,7 @@
+ data.resize (map.size());
+ if (lseek(mem_fd, map.getStart(), SEEK_SET) < 0 ||
+ read(mem_fd, &data[0], map.size()) != (int)map.size())
+- error(EXIT_FAILURE, errno, "Failed to seek in /proc/%d/mem to %lld",
++ err(EXIT_FAILURE, "Failed to seek in /proc/%d/mem to %lld",
+ _proc_id, map.getStart());
+
+ scanForSalStrings(map, data);
+@@ -341,9 +341,9 @@
+ parentData.resize(0x1000);
+
+ if (lseek(mem_fd, page, SEEK_SET) < 0)
+- error(EXIT_FAILURE, errno, "Failed to seek in /proc/<pid>/mem to %lld", page);
++ err(EXIT_FAILURE, "Failed to seek in /proc/<pid>/mem to %lld", page);
+ if (read(mem_fd, &pageData[0], 0x1000) != 0x1000)
+- error(EXIT_FAILURE, errno, "Failed to read page %lld from /proc/<pid>/mem", page);
++ err(EXIT_FAILURE, "Failed to read page %lld from /proc/<pid>/mem", page);
+
+ if (lseek(parent_fd, page, SEEK_SET) < 0)
+ parentData.resize(0);
+@@ -450,10 +450,10 @@
+ for (addr_t p : vaddrs)
+ {
+ if (lseek(fd, (p / 0x1000 * 8), SEEK_SET) < 0)
+- error(EXIT_FAILURE, errno, "Failed to seek in pagemap");
++ err(EXIT_FAILURE, "Failed to seek in pagemap");
+ addr_t vaddrData;
+ if (read(fd, &vaddrData, 8) < 0)
+- error(EXIT_FAILURE, errno, "Failed to read vaddrdata");
++ err(EXIT_FAILURE, "Failed to read vaddrdata");
+ {
+ // https://patchwork.kernel.org/patch/6787921/
+ // fprintf(stderr, "addr: 0x%8llx bits: 0x%8llx : %s\n", p, vaddrData,
+@@ -521,7 +521,7 @@
+ std::vector<addr_t> *pushTo = nullptr;
+
+ if ((file_pointer = fopen(file, "r")) == nullptr)
+- error(EXIT_FAILURE, errno, "%s", file);
++ err(EXIT_FAILURE, "%s", file);
+
+ while (fgets(buffer, sizeof(buffer), file_pointer))
+ {
+@@ -612,7 +612,7 @@
+ char buffer[4096];
+ int len;
+ if ((len = read(fd, buffer, sizeof (buffer))) < 0)
+- error(EXIT_FAILURE, errno, "Failed to read /proc/%d/stat", proc_id);
++ err(EXIT_FAILURE, "Failed to read /proc/%d/stat", proc_id);
+ close (fd);
+ buffer[len] = '\0';
+
+@@ -679,12 +679,12 @@
+
+ root_proc = opendir("/proc");
+ if (!root_proc)
+- error(EXIT_FAILURE, errno, "%s", "/proc");
++ err(EXIT_FAILURE, "%s", "/proc");
+
+ while ((dir_proc = readdir(root_proc)))
+ {
+ if (!dir_proc && !dir_proc->d_name[0])
+- error(EXIT_FAILURE, ENOTDIR, "bad dir");
++ err(EXIT_FAILURE, "bad dir");
+
+ if (*dir_proc->d_name > '0' && *dir_proc->d_name <= '9')
+ {
+--- a/wsd/Admin.cpp
++++ b/wsd/Admin.cpp
+@@ -11,7 +11,7 @@
+
+ #include <cassert>
+ #include <mutex>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <unistd.h>
+
+ #include <Poco/Net/HTTPCookie.h>
+--- a/wsd/AdminModel.hpp
++++ b/wsd/AdminModel.hpp
+@@ -13,6 +13,7 @@
+ #include <memory>
+ #include <set>
+ #include <string>
++#include <list>
+
+ #include <Poco/Process.h>
+
diff --git a/testing/loolwsd/APKBUILD b/testing/loolwsd/APKBUILD
new file mode 100644
index 00000000000..7a86790ebd5
--- /dev/null
+++ b/testing/loolwsd/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=loolwsd
+pkgver=6.4.0.2
+pkgrel=2
+pkgdesc="LibreOffice Online WebSocket server"
+url="https://github.com/LibreOffice/online"
+license="MPL-2.0"
+# x86 and armv7 fail to build with size errors
+# ppc64le blocked by libreofficekit
+# all: does not build
+#arch="all !s390x !x86 !armv7 !armhf !ppc64le"
+makedepends="automake autoconf libtool libreofficekit bash py3-lxml py3-polib libpng-dev
+ cppunit-dev libcap-dev linux-pam-dev npm openssl-dev>3 krb5-dev poco-dev libseccomp-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/LibreOffice/online/archive/libreoffice-$pkgver.tar.gz
+ 10-musl.patch"
+builddir="$srcdir/online-libreoffice-$pkgver"
+
+build() {
+ ./autogen.sh
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-silent-rules \
+ --with-lokit-path=/usr/include/libreoffice \
+ --with-lo-path=/usr/lib/libreoffice \
+ --with-poco-includes=/usr/include/Poco \
+ --with-vendor="Alpine Linux" \
+ --enable-browsersync \
+ --disable-seccomp \
+ --disable-setcap \
+ --enable-anonymization
+ make CXXFLAGS="$CXXFLAGS -DNDEBUG" all-local
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+}
+
+sha512sums="e2e8846023c314a22fecf1452a8b00854a7fb6c67a61640335e624ee8d14ee934af14a880cf61a5a64f6291a77165a5cc698e861a75d5294b1ff6405161e9dac libreoffice-6.4.0.2.tar.gz
+58c3dfb81913a2ddf995fb8eccd9e4038252b3d29b2f37ed754e1e6f9a9ae5bbcc8464ceaef2e98f916715443fa35305a7ae2925779348231547960ee96cbb91 10-musl.patch"
diff --git a/testing/lotide/APKBUILD b/testing/lotide/APKBUILD
new file mode 100644
index 00000000000..a9039b54f34
--- /dev/null
+++ b/testing/lotide/APKBUILD
@@ -0,0 +1,89 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=lotide
+pkgver=0.15.0
+pkgrel=0
+_hitide="${pkgver%.*}.0"
+pkgdesc="Federated forum / link aggregator using ActivityPub"
+url="https://sr.ht/~vpzom/lotide/"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="cargo cargo-auditable openssl-dev zlib-dev"
+install="lotide.pre-install lotide.post-install hitide.pre-install"
+pkgusers="lotide"
+pkggroups="lotide"
+subpackages="lotide-openrc hitide hitide-openrc:_hitide_openrc:noarch"
+source="lotide-$pkgver.tar.gz::https://git.sr.ht/~vpzom/lotide/archive/v$pkgver.tar.gz
+ hitide-$_hitide.tar.gz::https://git.sr.ht/~vpzom/hitide/archive/v$_hitide.tar.gz
+ cargo-update-libc_patch
+
+ lotide.initd lotide.confd
+ hitide.initd hitide.confd
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # Requires running database
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+
+ cd "../hitide-v$_hitide"
+ patch Cargo.lock "$srcdir"/cargo-update-libc_patch
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ cd "../hitide-v$_hitide"
+
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+
+ cd "../hitide-v$_hitide"
+
+ cargo test --frozen
+}
+
+package() {
+ install -Dvm755 target/release/lotide -t "$pkgdir"/usr/bin/
+
+ install -dm750 -o lotide -g lotide "$pkgdir"/var/lib/lotide
+ install -dm750 -o lotide -g lotide "$pkgdir"/var/lib/lotide/media
+
+ install -Dm755 "$srcdir"/lotide.initd "$pkgdir"/etc/init.d/lotide
+ install -Dm644 "$srcdir"/lotide.confd "$pkgdir"/etc/conf.d/lotide
+
+ cd "../hitide-v$_hitide"
+
+ install -Dvm755 target/release/hitide -t "$pkgdir"/usr/bin/
+}
+
+hitide() {
+ pkgdesc="$pkgdesc (web UI frontend)"
+
+ amove usr/bin/hitide
+}
+
+_hitide_openrc() {
+ pkgdesc="$pkgdesc (OpenRC init scripts for web UI frontend)"
+ install_if="openrc hitide=$pkgver-r$pkgrel"
+
+ install -Dm755 "$srcdir"/hitide.initd "$subpkgdir"/etc/init.d/hitide
+ install -Dm644 "$srcdir"/hitide.confd "$subpkgdir"/etc/conf.d/hitide
+}
+
+sha512sums="
+f6c49e58207644eea17a847a4a38f23765322e030fdfe79f6aec27312217a42f10c830047f87de1441d45856a3f53dc02247b934fe9b85cbe36ca83d251b7497 lotide-0.15.0.tar.gz
+3888c09e51005faf55bd2a7d9772398f318ed01b016bf1af265b94ad6d3e3272b8d5fe163629f2227e8ec9638da196393c040dcacf4100ab1616a741de2545b2 hitide-0.15.0.tar.gz
+753b55edaa323cd7d777a994ebfc365036e1031f81f31e4907181dd2acf94e3f77e3ce0b49c1ccb73f801687f385d263506276c48fe627f56b906421251b9ed7 cargo-update-libc_patch
+ba052e36c230192c4b5eb3d3f47c39c00ecc4bfb8722bada4101b7367f9c49713ae3de5688680c556b4c3042ce338b8bd0e20b85d5367e1f541b38669bba64cd lotide.initd
+a8c10e2d17118bdc7701330a3f2e6930c8e3a85162174792f7ee314b4bb8ee4d21954a32689282ab5ed75edda588fbc84ab6c309c346b8dde5910fcf7a4dcaec lotide.confd
+83a27192d78fc399cf4b3158fe687efb6155c183812444657a42938f91ef5d8c675f46af365ecb677bf728158868a2fd9a80a3e1ca479ab810f4a7909d711168 hitide.initd
+f715ea4d941d45bdd7773d0450049333ab48d9d7292c7aa17bcf26109246f33289ddeae92e4a06457a4209a0a65248d67a13736e3be7126378c890776aa515d6 hitide.confd
+"
diff --git a/testing/lotide/cargo-update-libc_patch b/testing/lotide/cargo-update-libc_patch
new file mode 100644
index 00000000000..8454e6bbeb0
--- /dev/null
+++ b/testing/lotide/cargo-update-libc_patch
@@ -0,0 +1,14 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -728,9 +728,9 @@
+
+ [[package]]
+ name = "libc"
+-version = "0.2.145"
++version = "0.2.150"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fc86cde3ff845662b8f4ef6cb50ea0e20c524eb3d29ae048287e06a1b3fa6a81"
++checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+
+ [[package]]
+ name = "linux-raw-sys"
diff --git a/testing/lotide/hitide.confd b/testing/lotide/hitide.confd
new file mode 100644
index 00000000000..bb9eb20ef78
--- /dev/null
+++ b/testing/lotide/hitide.confd
@@ -0,0 +1,11 @@
+# Configuration for /etc/init.d/hitide
+
+# The internal URL path for accessing the lotide backend
+BACKEND_HOST="http://localhost:3333"
+
+# The external user-facing URL path of the frontend
+FRONTEND_URL="https://lotide.example.com"
+
+# Port number to bind to.
+# (If not set, defaults to 4333.)
+#HITIDE_PORT=4333
diff --git a/testing/lotide/hitide.initd b/testing/lotide/hitide.initd
new file mode 100644
index 00000000000..af848ea99f0
--- /dev/null
+++ b/testing/lotide/hitide.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+
+name=hitide
+description="Lotide UI"
+
+export BACKEND_HOST
+export FRONTEND_URL
+export HITIDE_PORT
+
+command="/usr/bin/hitide"
+command_background=true
+command_user="hitide:hitide"
+pidfile="/run/${RC_SVCNAME}.pid"
+error_log="/var/log/hitide.log"
+
+depend() {
+ need localmount net
+ after firewall lotide
+}
+
+start_pre() {
+ checkpath -f -m 0640 -o "$command_user" "$error_log"
+}
diff --git a/testing/lotide/hitide.pre-install b/testing/lotide/hitide.pre-install
new file mode 100644
index 00000000000..b914069286b
--- /dev/null
+++ b/testing/lotide/hitide.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S hitide 2>/dev/null
+adduser -S -D -H \
+ -h /var/empty \
+ -s /sbin/nologin \
+ -G hitide \
+ -g "Lotide UI" \
+ hitide 2>/dev/null
+
+exit 0
diff --git a/testing/lotide/lotide.confd b/testing/lotide/lotide.confd
new file mode 100644
index 00000000000..bcc82f6c436
--- /dev/null
+++ b/testing/lotide/lotide.confd
@@ -0,0 +1,33 @@
+# Configuration for /etc/init.d/lotide
+
+# Credentials for database connection. For examples, see
+# https://docs.rs/tokio-postgres/0.6.0/tokio_postgres/config/struct.Config.html#examples-1
+DATABASE_URL="postgres://user:password@localhost/lotide"
+
+# Port the lotide backend listens on.
+# (If not set, defaults to 3333.)
+#LOTIDE_PORT=3333
+
+# Set this to the external root address lotide is hosted at,
+# and reverse proxy all `application/activity+json` and
+# `application/ld+json` content types to "http://localhost:3333/apub"
+HOST_URL_ACTIVITYPUB="https://lotide.example.com"
+
+# Lotide API endpoint
+HOST_URL_API="https://lotide.example.com/api"
+
+# Set to `true` to make signatures work with the proxy setup
+APUB_PROXY_REWRITES="true"
+
+# Set to `true` to make ratelimiting work with the proxy setup
+ALLOW_FORWARDED="true"
+
+# URL used to access SMTP server, required for sending email
+#SMTP_URL="smtps://username:password@smtp.example.com"
+
+# From value used in sent emails, required for sending email
+#SMTP_FROM="admin@lotide.example.com"
+
+# Directory on disk used for storing uploaded images.
+# (If not set, image uploads will be disabled.)
+#MEDIA_LOCATION="/var/lib/lotide/media"
diff --git a/testing/lotide/lotide.initd b/testing/lotide/lotide.initd
new file mode 100644
index 00000000000..ab275f9cf56
--- /dev/null
+++ b/testing/lotide/lotide.initd
@@ -0,0 +1,80 @@
+#!/sbin/openrc-run
+
+name=lotide
+description="Lotide Backend"
+
+extra_stopped_commands="setup migrate"
+description_setup="Setup the Lotide database"
+description_migrate="Run Lotide database migrations"
+
+export DATABASE_URL
+export LOTIDE_PORT
+export HOST_URL_ACTIVITYPUB
+export HOST_URL_API
+export APUB_PROXY_REWRITES
+export ALLOW_FORWARDED
+export SMTP_URL
+export SMTP_FROM
+export MEDIA_LOCATION
+
+command="/usr/bin/lotide"
+command_background=true
+command_user="lotide:lotide"
+pidfile="/run/${RC_SVCNAME}.pid"
+error_log="/var/log/lotide.log"
+
+depend() {
+ need localmount net
+ after firewall postgresql
+}
+
+start_pre() {
+ checkpath -f -m 0640 -o "$command_user" "$error_log"
+ checkpath -d -m 0750 -o "$command_user" "/var/lib/lotide"
+
+ lotide_exec migrate
+}
+
+setup() {
+ local dbname dbuser dbpass domain sqlhost sqlport sqluri
+ local sqlfile="$(mktemp -u).sql"
+
+ read -p "Lotide db name: " dbname
+ read -p "Lotide db user: " dbuser
+ read -p "Lotide db password: " dbpass
+ read -p "Lotide domain: " domain
+ read -p "PostgreSQL host: " sqlhost
+ read -p "PostgreSQL port: " sqlport
+
+ sqluri="\"postgres:\/\/$dbuser:$dbpass@$sqlhost:$sqlport\/$dbname\""
+
+ sed -i -e "s/lotide\.example\.com/$domain/g" \
+ -e "/^DATABASE_URL/s/=.*/=$sqluri/" \
+ /etc/conf.d/lotide
+
+ if [ -f /etc/conf.d/hitide ]; then
+ sed -i -e "s/lotide\.example\.com/$domain/g" \
+ /etc/conf.d/hitide
+ fi
+
+ umask 0177
+ cat > "$sqlfile" <<-EOF
+ CREATE USER $dbuser WITH PASSWORD '$dbpass';
+ CREATE DATABASE $dbname OWNER $dbuser;
+ EOF
+
+ einfo "Initialize your Lotide db with $sqlfile,"
+ einfo "then run: rc-service $RC_SVCNAME migrate"
+}
+
+migrate() {
+ ebegin "Running Lotide database migrations"
+ lotide_exec migrate setup
+ lotide_exec migrate >/dev/null
+ eend $?
+}
+
+lotide_exec() {
+ start-stop-daemon --exec "$command" --user "$command_user" \
+ -- $command_args $*
+}
diff --git a/testing/lotide/lotide.post-install b/testing/lotide/lotide.post-install
new file mode 100644
index 00000000000..c039eb83dc0
--- /dev/null
+++ b/testing/lotide/lotide.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+echo "--"
+echo "Setup the Lotide database by running: rc-service lotide setup"
+echo "Run the hitide service, and setup your reverse proxy by following the example at"
+echo "https://git.sr.ht/~vpzom/lotide/tree/master/doc/INSTALL.md#recommended-proxy-setup"
+echo "--"
diff --git a/testing/lotide/lotide.pre-install b/testing/lotide/lotide.pre-install
new file mode 100644
index 00000000000..ee165c91754
--- /dev/null
+++ b/testing/lotide/lotide.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S lotide 2>/dev/null
+adduser -S -D -H \
+ -h /var/lib/lotide \
+ -s /sbin/nologin \
+ -G lotide \
+ -g "Lotide Backend" \
+ lotide 2>/dev/null
+
+exit 0
diff --git a/testing/lottieconverter/APKBUILD b/testing/lottieconverter/APKBUILD
new file mode 100644
index 00000000000..66e20054bad
--- /dev/null
+++ b/testing/lottieconverter/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=lottieconverter
+pkgver=0.2_git20231219
+_gitrev=3ad34af7bbcf9197fda782a5832b18b72a3bb939
+pkgrel=0
+pkgdesc="Simple, dummy lottie converter"
+url="https://github.com/sot-tech/LottieConverter"
+arch="all"
+license="BSD-3-Clause"
+makedepends="
+ cmake
+ giflib-dev
+ libpng-dev
+ rlottie-dev
+ samurai
+ zlib-dev
+"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$_gitrev.tar.gz::https://github.com/sot-tech/LottieConverter/archive/$_gitrev.tar.gz
+"
+builddir="$srcdir/LottieConverter-$_gitrev"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DSYSTEM_GL=1 \
+ -DSYSTEM_RL=1
+
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build -C Release --output-on-failure
+}
+
+package() {
+ install -Dm755 build/lottieconverter -t "$pkgdir"/usr/bin
+
+ install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/lottieconverter/LICENSE
+}
+
+sha512sums="
+770b305ecb843807a2519094f090c092baee56a572b7e52c7d6cde079c179e6aa57ebdabf8448cbbaedda7b7ae9f6f0552389b900bae2b3de00eca8ea9408d45 lottieconverter-3ad34af7bbcf9197fda782a5832b18b72a3bb939.tar.gz
+"
diff --git a/testing/lout/APKBUILD b/testing/lout/APKBUILD
index 242e81f9061..d39995e6e82 100644
--- a/testing/lout/APKBUILD
+++ b/testing/lout/APKBUILD
@@ -1,40 +1,39 @@
+# Maintainer: Paul Bredbury <brebs@sent.com>
pkgname=lout
-pkgver=3.40
+pkgver=3.42.2
pkgrel=0
pkgdesc="Lightweight typesetting and document formatting system"
-url="https://savannah.nongnu.org/projects/lout"
+url="https://github.com/william8000/lout"
arch="all"
license="GPL-3.0-or-later"
makedepends="zlib-dev"
-install="$pkgname.post-install"
subpackages="$pkgname-doc"
-source="https://download.savannah.gnu.org/releases/$pkgname/$pkgname-$pkgver.tar.gz
- lout-3.40-makefile.patch"
+source="lout-$pkgver.tar.gz::https://github.com/william8000/lout/archive/refs/tags/$pkgver.tar.gz
+ makefile.patch"
options="!check" # No test suite
-builddir="$srcdir/$pkgname-$pkgver"
-build() {
- cd "$builddir"
+# secfixes:
+# 3.42-r0:
+# - CVE-2019-19917
+# - CVE-2019-19918
- make \
- PREFIX="/usr" \
- PDF_COMPRESSION=1 \
- ZLIB="-lz" \
- all
+build() {
+ make all
}
package() {
- cd "$builddir"
-
mkdir -p "$pkgdir/usr/bin" \
"$pkgdir/usr/share/doc/lout" \
"$pkgdir/usr/share/man/man1"
make \
PREFIX="$pkgdir/usr" \
+ LOUTDOCDIR="$pkgdir/usr/share/doc/lout" \
+ LOUTMANDIR="$pkgdir/usr/share/man/man1" \
allinstall
}
-
-sha512sums="adffbb44b9328f0d64b1c8f08fe0217307b1cca870827ca54e0aaae5a2258f519e3e6f0adc715ba6d192dd731ab26c2cc86aa8611d991d5665503842e599c061 lout-3.40.tar.gz
-a4aa624c6134354e7d26bf70a618bc7f2ad4304eb2c551c124815e8153f0ee554b85ee3537c965e58c4de084716a4a4b7b1faf4ec5a9e58d682a92a52d69b0e6 lout-3.40-makefile.patch"
+sha512sums="
+1e3b419f03232a55c8d6b2d904e8a4fed4a601b4bc93f9e85bdfc78a56b6f93837d4751ae1d877e2ef19215cd9ec2ad76d83ec75cd7d74d668c89b14014304d9 lout-3.42.2.tar.gz
+5f36fcda843a5dc933f8fb6e01b23184153b80401986f233c2ec622fc459fa78b73e1dbf2c17b5973d99dd57c7cd79744b3c1d4dd4f70e156e08a0f3184db065 makefile.patch
+"
diff --git a/testing/lout/lout-3.40-makefile.patch b/testing/lout/lout-3.40-makefile.patch
deleted file mode 100644
index c9bcbfade4e..00000000000
--- a/testing/lout/lout-3.40-makefile.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-diff -Naur a/makefile b/makefile
---- a/makefile 2012-02-08 07:28:03.000000000 +0000
-+++ b/makefile 2019-01-06 23:12:11.464068094 +0000
-@@ -269,11 +269,11 @@
- # DEBUGGING = 1
- # TRACING = -g
-
--PREFIX = /home/jeff
-+PREFIX = /usr
- BINDIR = $(PREFIX)/bin
--LOUTLIBDIR = $(PREFIX)/lout.lib
--LOUTDOCDIR = $(PREFIX)/lout.doc
--MANDIR = $(PREFIX)/lout.man
-+LOUTLIBDIR = $(PREFIX)/share/lout
-+LOUTDOCDIR = $(PREFIX)/share/doc/lout
-+MANDIR = $(PREFIX)/share/man/man1
-
- LIBFONT = font
- LIBMAPS = maps
-@@ -295,11 +295,9 @@
- ZLIB =
- ZLIBPATH =
-
--CC = gcc
--
- RCOPY = cp -r
-
--COPTS = -ansi -pedantic -Wall -O3
-+COPTS += -ansi -pedantic -Wall
-
- CFLAGS = -DOS_UNIX=$(OSUNIX) \
- -DOS_DOS=$(OSDOS) \
-@@ -333,7 +331,7 @@
- z49.o z50.o z51.o z52.o
-
- lout: $(OBJS)
-- $(CC) -o lout $(OBJS) $(ZLIB) -lm
-+ $(CC) $(COPTS) $(LDFLAGS) -o lout $(OBJS) $(ZLIB) -lm
- chmod a+x lout
-
- $(OBJS): externs.h
-@@ -341,7 +339,7 @@
- externs.h:
-
- prg2lout: prg2lout.c
-- $(CC) $(COPTS) -o prg2lout prg2lout.c
-+ $(CC) $(COPTS) $(LDFLAGS) -o prg2lout prg2lout.c
- chmod a+x prg2lout
-
- all: lout prg2lout
-@@ -355,7 +353,7 @@
- chmod 755 $(BINDIR)/prg2lout
- @echo ""
- @echo "(b) Installing library files into LOUTLIBDIR $(LOUTLIBDIR)"
-- mkdir $(LOUTLIBDIR)
-+ mkdir -p $(LOUTLIBDIR)
- chmod 755 $(LOUTLIBDIR)
- @echo ""
- mkdir $(LOUTLIBDIR)/$(LIBINCL)
-@@ -386,9 +384,6 @@
- mkdir $(LOUTLIBDIR)/$(LIBLOCA)
- chmod 755 $(LOUTLIBDIR)/$(LIBLOCA)
- @echo ""
-- @echo "(c) Initializing run (should be silent, no errors expected)"
-- $(BINDIR)/lout -x -s $(LOUTLIBDIR)/$(LIBINCL)/init
-- @echo ""
- @echo "(d) Changing mode of files just created by initializing run"
- chmod 644 $(LOUTLIBDIR)/$(LIBDATA)/*
- chmod 644 $(LOUTLIBDIR)/$(LIBHYPH)/*
diff --git a/testing/lout/lout.post-install b/testing/lout/lout.post-install
deleted file mode 100644
index 033908a5512..00000000000
--- a/testing/lout/lout.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-# Populate /usr/share/lout/hyph/*.lp and /usr/share/lout/data/*.li
-exec lout -x -s /usr/share/lout/include/init
diff --git a/testing/lout/makefile.patch b/testing/lout/makefile.patch
new file mode 100644
index 00000000000..cf5176bfd13
--- /dev/null
+++ b/testing/lout/makefile.patch
@@ -0,0 +1,41 @@
+--- a/makefile
++++ b/makefile
+@@ -274,16 +274,11 @@
+ #TRACING = -g -fno-omit-frame-pointer -fsanitize=undefined
+ #TRACING = -g -fno-omit-frame-pointer -fsanitize=address -fsanitize-recover
+
+-#PREFIX = /home/jeff
+-PREFIX = /usr/local
++PREFIX = /usr
+ BINDIR = $(PREFIX)/bin
+-#LOUTLIBDIR = $(PREFIX)/lout.lib
+-#LOUTDOCDIR = $(PREFIX)/lout.doc
+-#MANDIR = $(PREFIX)/lout.man
+-LIBDIR = $(PREFIX)/share/lout-$(VERSION)
+-LOUTLIBDIR = $(LIBDIR)/lib
+-LOUTDOCDIR = $(LIBDIR)/doc
+-MANDIR = $(LIBDIR)/man
++LOUTLIBDIR = $(PREFIX)/share/lout
++LOUTDOCDIR = $(PREFIX)/share/doc/lout
++MANDIR = $(PREFIX)/share/man/man1
+
+ LIBFONT = font
+ LIBMAPS = maps
+@@ -295,14 +290,14 @@
+ CHARIN = 1
+ CHAROUT = 0
+
+-USELOC = 1
++USELOC = 0
+ LOC_FR = fr
+ LOC_DE = de
+
+ COLLATE = 1
+
+-PDF_COMPRESSION = 0
+-ZLIB =
++PDF_COMPRESSION = 1
++ZLIB = -lz
+ ZLIBPATH =
+
+ CC = gcc
diff --git a/testing/love/APKBUILD b/testing/love/APKBUILD
deleted file mode 100755
index 025a5faed8e..00000000000
--- a/testing/love/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=love
-pkgver=11.3
-pkgrel=0
-pkgdesc="A Lua 2D Graphics Library"
-url="https://love2d.org"
-arch="x86_64"
-license="Zlib"
-makedepends="libtool autoconf automake sdl2-dev zlib-dev openal-soft-dev
- freetype-dev libmodplug-dev mpg123-dev libvorbis-dev libtheora-dev luajit-dev
- lua-dev libx11-dev"
-subpackages="$pkgname-doc"
-source="love-$pkgver.tar.gz::https://bitbucket.org/rude/love/get/$pkgver.tar.gz"
-builddir="$srcdir"/rude-love-8c6f6a0ca1f0/
-options="!check" #No checks
-
-prepare() {
- platform/unix/automagic
- ./configure --prefix=/usr LDFLAGS="" lua_CFLAGS="-I/usr/bin/luajit" lua_LIBS="-L/usr/lib -lluajit-5.1"
-}
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="546cafe4cf1d5e0d0cac943d74d62390eef89f9875db892375aee27eee5c93c93841fa6b9726ef5ea1ce76ff98bc918593d18e1c5b55415c7701d5c8c25c4a80 love-11.3.tar.gz"
diff --git a/testing/lowjs/APKBUILD b/testing/lowjs/APKBUILD
index 43011435dc7..38fe82176fc 100644
--- a/testing/lowjs/APKBUILD
+++ b/testing/lowjs/APKBUILD
@@ -1,65 +1,53 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=lowjs
-pkgver=1.5.1
+pkgver=1.6.2
# Keep in sync with submodules in deps/.
-_gitrev_open62541="9f1cbfa96fd050220c86d3e5939d88cab1b680ce"
-_gitrev_duktape="10486db548732957ba9fc8c9e4ad01a857d268bd"
-pkgrel=1
+_gitrev_open62541="8828fa712d7076962aa67d2a0542d7892c34d964"
+_commit_sha="d14bd8de2d"
+_commit_date="2021-02-28T00:53:17Z"
+pkgrel=2
pkgdesc="A port of Node.JS with far lower system requirements"
url="https://www.neonious.com/lowjs/"
-arch="all !s390x !ppc64le !mips !mips64" # excluded archs are not supported
+arch="all !s390x !ppc64le !riscv64" # excluded archs are not supported
license="custom"
makedepends="
c-ares-dev
cmake
+ duktape-dev
jq
- mbedtls-dev
+ mbedtls2-dev
npm
- py2-setuptools
python3
- python3-dev
- yaml-dev
"
subpackages="$pkgname-doc"
source="https://github.com/neonious/lowjs/archive/v$pkgver/$pkgname-$pkgver.tar.gz
https://github.com/neonious/open62541/archive/$_gitrev_open62541/open62541-$_gitrev_open62541.tar.gz
- https://github.com/svaarala/duktape/archive/$_gitrev_duktape/duktape-$_gitrev_duktape.tar.gz
- https://pypi.org/packages/source/p/pyaml/pyaml-20.4.0.tar.gz
use-npm-ci.patch
open62541-gcc9.patch
unbundle-c-ares.patch
unbundle-mbedtls.patch
make-flags.patch
+ musl.patch
+ unbundle-duktape.patch
test.js
"
builddir="$srcdir/$pkgname-$pkgver"
+options="net" # npm
prepare() {
- cd "$builddir"
-
rm -Rf deps/open62541
mv ../open62541-$_gitrev_open62541 deps/open62541
- rm -Rf deps/duktape
- mv ../duktape-$_gitrev_duktape deps/duktape
-
- easy_install-2.7 --user ../pyaml-*
-
default_prepare
}
build() {
- local resp=$(curl -fsSL https://api.github.com/repos/neonious/lowjs/commits/v$pkgver)
- local commit_sha=$(echo "$resp" | jq -r '.sha | .[0:10]')
- local commit_date=$(echo "$resp" | jq -r '.commit.committer.date | .[0:4]+.[5:7]+.[8:10]')
- [ "$commit_sha" ] && [ "$commit_date" ] || { eerror "Failed to get commit SHA or date"; return 1; }
-
unset LDFLAGS # fails to build with -Wl,--as-needed
make -j1 \
LOW_LIB_PATH="../lib/low/" \
- LOW_VERSION="${commit_date}_${commit_sha}"
+ LOW_VERSION="${_commit_date}_${_commit_sha}"
}
check() {
@@ -81,13 +69,15 @@ package() {
install -D -m 0644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="254f005f0ca21e2d1efdca7546dad549c1f4b23aab838dfd65f24e8ba165bb9adad6b18a81d5147e3c833539bc6e9090c9fc51e15a3a8179191a2c4e6c7b695d lowjs-1.5.1.tar.gz
-7c71ff0ce8cda56e4a4cc8e416172fd847f7289d45c4e44e54e56f3081b914d9401c86341ae3d0a4bccd7b6e9c3b274c92892e67e3cd300824bf900cd9f02ac1 open62541-9f1cbfa96fd050220c86d3e5939d88cab1b680ce.tar.gz
-7f34ae3f6f0d9bfd039ef3ba14939eb4d59cf513b5c7fac7e9aec915cb3551751a95c2e8d91d56bae9343d2a834a572516827a7997cf8596cb3e9b127e1f32d5 duktape-10486db548732957ba9fc8c9e4ad01a857d268bd.tar.gz
-432fd215e034beafc07270a6aa8b726d5a16ef8946a95c1db9a34b4f492bbe2089dffbb1ce856d3e8153ec18ac943973a23e3aa9283d53ee0b2e7ba5dcd3d317 pyaml-20.4.0.tar.gz
+sha512sums="
+d013b1d631d1056baf1e5b12f606b1d14ebd3355a9cc75e5e1b6179e65918c5a5d68b79058c6ea56c848729eee74c39386451fd17c6de53667a3b542b1256c83 lowjs-1.6.2.tar.gz
+8d992a3a8fdf1717af2497c0d2d5e9e27e490b29253da78ecd64a6ff866fcef4f7114cb7cb073a8a862efff16eddfcb9416a9c64a2659b3bc9c2294e4cec3734 open62541-8828fa712d7076962aa67d2a0542d7892c34d964.tar.gz
b8aecec6aa87eb2ab7ffecaca1989f922042ee534612229872bad10bc0e304951cb66a1d1aa3ba4e76384ca2ea28b8c5b7176eacf6b7df3d59ea7435b7894a48 use-npm-ci.patch
c2c7f10d327d2e56d2824db02c647c05773c652179f40eff7b376dfbf7eecd72b7d07c18458d59fd195993b261cb9a48e9f521ccb1a519807270c036ed8d5746 open62541-gcc9.patch
-4298f2a26716a01a7bc1175a6f272f3681a6bcb29d916805d825f214b8bf9b7d2ed02d2c51b1c149109118a38391fd3ec8e6ac17c9c72ab926ea12dae5259835 unbundle-c-ares.patch
-4d761c495d09c555b664a0bda9b4bc4d01793bcdce161e16a54f786478a15bbab9feda4c139f38e179158786305399d0edac8348785981c98747c1eca0433b26 unbundle-mbedtls.patch
-002833f2adef30e29fde97f06aa29f4d9ab7244a5cfddd77e9565f898c8a04a7c496bec617492937a54548586da44abf5dd2e979365a44ccfe186b7b654039d0 make-flags.patch
-9ee7d585c9ce17ca00e86e0f74976883fa14e70f3728cf230256f2570dafdaa3adeae1922de5f0dcb74bba8577f9394c54441bc3729c1bb58bb6a298c26651d0 test.js"
+37d8810d8e89354ed8d908395ba21b7795049ff990f2d6d795d2458f511c4a9352c734f989c9eb2a54f8a06475769abe4051056d4c92e613d12103168790d361 unbundle-c-ares.patch
+bc0d847cabf195911b127768ac99d7876a2c43b0bb7ed359c9691f525560b302c3ee404fb16a0245acf9d04b912dabb89dd6f9584bafeeb6fe3b07eeaaac7cdb unbundle-mbedtls.patch
+6a7771e749bf567819bb028738cf38da71ab7a397211de410e2406dc3a2e87bc8d4e4c4804e25f0a76b2dc96836b020ac91d8a32c806eb2874fe65deee2c51f9 make-flags.patch
+e42dfb980acacdd4bd042bad0e625562122b84037fa8b25c2bbe8dee2b6598505205d5aa9ecc66cee5ae2d830bd847e74147323c9db183789dc09f3be58fc71c musl.patch
+03b1a8fb5ef165c0b64165e191ad4f15bfbfadde58cc46b149943bfefaeebe2d0819cf54ed28c7935640545b523fcaa73abf0d8efa9988bca70d5791988e84d5 unbundle-duktape.patch
+9ee7d585c9ce17ca00e86e0f74976883fa14e70f3728cf230256f2570dafdaa3adeae1922de5f0dcb74bba8577f9394c54441bc3729c1bb58bb6a298c26651d0 test.js
+"
diff --git a/testing/lowjs/make-flags.patch b/testing/lowjs/make-flags.patch
index 1d6aad622c4..a19b50b3f48 100644
--- a/testing/lowjs/make-flags.patch
+++ b/testing/lowjs/make-flags.patch
@@ -9,8 +9,8 @@
+CFLAGS += $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low
CXX = g++
--CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
-+CXXFLAGS += $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+-CXXFLAGS = $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
++CXXFLAGS += $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
LD = g++
-LDFLAGS = $(FLAGS) -lm -ldl -lpthread -lcares -lmbedcrypto -lmbedtls -lmbedx509 deps/open62541/build/bin/libopen62541.a -lresolv
diff --git a/testing/lowjs/musl.patch b/testing/lowjs/musl.patch
new file mode 100644
index 00000000000..20c9cd89980
--- /dev/null
+++ b/testing/lowjs/musl.patch
@@ -0,0 +1,45 @@
+--- a/src/low_main.cpp
++++ b/src/low_main.cpp
+@@ -78,9 +78,9 @@
+ low->in_gc = false;
+ low->disallow_native = false;
+
+- low->web_thread = NULL;
++ low->web_thread = 0;
+ for(int i = 0; i < LOW_NUM_DATA_THREADS; i++)
+- low->data_thread[i] = NULL;
++ low->data_thread[i] = 0;
+
+ low->destroying = false;
+ low->duk_flag_stop = 0;
+--- a/src/LowHTTPDirect.h
++++ b/src/LowHTTPDirect.h
+@@ -8,6 +8,7 @@
+ #include "LowLoopCallback.h"
+ #include "LowSocketDirect.h"
+
++#include <ctype.h>
+ #include <pthread.h>
+
+ #include "low_config.h"
+--- a/src/low_crypto.h
++++ b/src/low_crypto.h
+@@ -5,6 +5,7 @@
+ #ifndef __LOW_CRYPTO_H__
+ #define __LOW_CRYPTO_H__
+
++#include <ctype.h>
+ #include "duktape.h"
+
+ duk_ret_t low_crypto_create_hash(duk_context *ctx);
+--- a/src/low_opcua.h
++++ b/src/low_opcua.h
+@@ -7,6 +7,7 @@
+ #define __LOW_OPCUA_H__
+
+ #include "duktape.h"
++#include <ctype.h>
+
+ #include "low_main.h"
+ #include "LowLoopCallback.h"
+
diff --git a/testing/lowjs/unbundle-c-ares.patch b/testing/lowjs/unbundle-c-ares.patch
index f94cc588a90..935e6483e3e 100644
--- a/testing/lowjs/unbundle-c-ares.patch
+++ b/testing/lowjs/unbundle-c-ares.patch
@@ -1,7 +1,7 @@
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@
- CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+ CXXFLAGS = $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
LD = g++
-LDFLAGS = $(FLAGS) -lm -ldl -lpthread deps/open62541/build/bin/libopen62541.a -lresolv
@@ -9,22 +9,23 @@
OBJECTS_LOW = \
app/main.o \
-@@ -50,13 +50,12 @@
+@@ -52,14 +52,12 @@
clean:
rm -rf */*.o */*.d bin/* deps/duktape/src-low lib lib_js/build node_modules util/dukc test/duk_crash
- cd deps/c-ares && make clean
cd deps/mbedtls && make clean
cd deps/open62541 && rm -rf build
+- rm deps/c-ares/configure
bin/low: $(OBJECTS) $(OBJECTS_LOW) deps/mbedtls/programs/test/benchmark
mkdir -p bin
- $(LD) -o bin/low deps/mbedtls/library/*.o deps/mbedtls/crypto/library/*.o deps/c-ares/libcares_la-*.o $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
+ $(LD) -o bin/low deps/mbedtls/library/*.o deps/mbedtls/crypto/library/*.o $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
- util/dukc: deps/duktape/src-low/duktape.o util/dukc.o
- $(LD) -o util/dukc deps/duktape/src-low/duktape.o util/dukc.o $(LDFLAGS)
-@@ -70,7 +69,7 @@
+ obj_lowjs_serv: $(OBJECTS) $(OBJECTS_LOW) deps/mbedtls/programs/test/benchmark util/dukc
+
+@@ -76,7 +74,7 @@
$(CXX) $(CXXFLAGS) -MMD -o $@ -c $<
%.o : %.c Makefile
$(C) $(CFLAGS) -MMD -o $@ -c $<
@@ -33,20 +34,20 @@
$(CXX) $(CXXFLAGS) -MMD -o $@ -c $<
-include $(OBJECTS:.o=.d) $(OBJECTS_LOW:.o=.d)
-@@ -110,13 +109,6 @@
- -DDUK_USE_SYMBOL_BUILTIN \
+@@ -117,13 +115,6 @@
-DDUK_USE_SECTION_B \
-DDUK_USE_CPP_EXCEPTIONS
--
+
-deps/c-ares/configure:
- cd deps/c-ares && . ./buildconf
-deps/c-ares/Makefile: deps/c-ares/configure
- cd deps/c-ares && ./configure
-deps/c-ares/.libs/libcares.a: deps/c-ares/Makefile
- cd deps/c-ares && make
-
+-
deps/mbedtls/programs/test/benchmark:
cd deps/mbedtls && make
+
--- a/src/LowDNSResolver.cpp
+++ b/src/LowDNSResolver.cpp
@@ -13,7 +13,7 @@
diff --git a/testing/lowjs/unbundle-duktape.patch b/testing/lowjs/unbundle-duktape.patch
new file mode 100644
index 00000000000..40b5fba8ea3
--- /dev/null
+++ b/testing/lowjs/unbundle-duktape.patch
@@ -0,0 +1,36 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,19 +1,18 @@
+ FLAGS = -DLOW_VERSION="\"$(LOW_VERSION)\"" -DLOW_LIB_PATH="\"$(LOW_LIB_PATH)\""
+
+ C = gcc
+-CFLAGS += $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low
++CFLAGS += $(FLAGS) -Isrc -Iapp
+
+ CXX = g++
+-CXXFLAGS += $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
++CXXFLAGS += $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+
+ LD = g++
+-LDFLAGS += $(FLAGS) -lm -ldl -lpthread -lcares -lmbedcrypto -lmbedtls -lmbedx509 deps/open62541/build/bin/libopen62541.a -lresolv
++LDFLAGS += $(FLAGS) -lm -ldl -lpthread -lcares -lmbedcrypto -lmbedtls -lmbedx509 deps/open62541/build/bin/libopen62541.a -lresolv -lduktape
+
+ OBJECTS_LOW = \
+ app/main.o \
+ app/transpile.o
+ OBJECTS = \
+- deps/duktape/src-low/duktape.o \
+ src/low_main.o \
+ src/low_module.o \
+ src/low_native.o \
+@@ -60,8 +59,8 @@
+
+ obj_lowjs_serv: $(OBJECTS) $(OBJECTS_LOW) deps/mbedtls/programs/test/benchmark util/dukc
+
+-util/dukc: deps/duktape/src-low/duktape.o util/dukc.o
+- $(LD) -o util/dukc deps/duktape/src-low/duktape.o util/dukc.o $(LDFLAGS)
++util/dukc: util/dukc.o
++ $(LD) -o util/dukc util/dukc.o $(LDFLAGS)
+
+ test/bugs/duk_crash_TR20180627: deps/duktape/src-low/duktape.o test/bugs/duk_crash_TR20180627.o
+ $(LD) -o test/bugs/duk_crash_TR20180627 deps/duktape/src-low/duktape.o test/bugs/duk_crash_TR20180627.o $(LDFLAGS)
diff --git a/testing/lowjs/unbundle-mbedtls.patch b/testing/lowjs/unbundle-mbedtls.patch
index a84206c7ad7..bda5b6b7877 100644
--- a/testing/lowjs/unbundle-mbedtls.patch
+++ b/testing/lowjs/unbundle-mbedtls.patch
@@ -8,8 +8,8 @@
+CFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low
CXX = g++
--CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
-+CXXFLAGS = $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
+-CXXFLAGS = $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/mbedtls/include -Ideps/mbedtls/crypto/include -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
++CXXFLAGS = $(CXXFLAGS_SERV) $(FLAGS) -Isrc -Iapp -Ideps/duktape/src-low -Ideps/open62541/build/src_generated -Ideps/open62541/include -Ideps/open62541/arch -Ideps/open62541/plugins/include -Ideps/open62541/src/client -Ideps/open62541/deps -Ideps/open62541/src --std=c++11
LD = g++
-LDFLAGS = $(FLAGS) -lm -ldl -lpthread -lcares deps/open62541/build/bin/libopen62541.a -lresolv
@@ -17,7 +17,7 @@
OBJECTS_LOW = \
app/main.o \
-@@ -50,12 +50,11 @@
+@@ -52,12 +52,11 @@
clean:
rm -rf */*.o */*.d bin/* deps/duktape/src-low lib lib_js/build node_modules util/dukc test/duk_crash
@@ -29,16 +29,16 @@
mkdir -p bin
- $(LD) -o bin/low deps/mbedtls/library/*.o deps/mbedtls/crypto/library/*.o $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
+ $(LD) -o bin/low $(OBJECTS) $(OBJECTS_LOW) $(LDFLAGS)
- util/dukc: deps/duktape/src-low/duktape.o util/dukc.o
- $(LD) -o util/dukc deps/duktape/src-low/duktape.o util/dukc.o $(LDFLAGS)
-@@ -109,9 +108,6 @@
- -DDUK_USE_SYMBOL_BUILTIN \
+ obj_lowjs_serv: $(OBJECTS) $(OBJECTS_LOW) deps/mbedtls/programs/test/benchmark util/dukc
+
+@@ -115,9 +114,6 @@
-DDUK_USE_SECTION_B \
-DDUK_USE_CPP_EXCEPTIONS
--
+
-deps/mbedtls/programs/test/benchmark:
- cd deps/mbedtls && make
-
+-
deps/open62541/build/bin/libopen62541.a:
cd deps/open62541 && rm -rf build && mkdir build
+ cd deps/open62541/build && cmake ..
diff --git a/testing/lpac/APKBUILD b/testing/lpac/APKBUILD
new file mode 100644
index 00000000000..664b02d69b7
--- /dev/null
+++ b/testing/lpac/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Luca Weiss <luca@z3ntu.xyz>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=lpac
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="C-based eUICC LPA"
+url="https://github.com/estkme-group/lpac"
+# x86: textrels
+arch="all !x86"
+license="AGPL-3.0-only AND LGPL-2.0-only AND MIT"
+makedepends="
+ cmake
+ curl-dev
+ pcsc-lite-dev
+ samurai
+ "
+subpackages="$pkgname-dbg"
+source="$pkgname-$pkgver.tar.gz::https://github.com/estkme-group/lpac/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_RPATH=/usr/lib/lpac
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d92037f095cdb73911f6933b09e208e33cb56e3c09155bb0492903eb7b3b5026a2605d3fcdea71bdbdd1115afb04171a8d44cb18df0fac09670dd1ba3b0be523 lpac-2.0.0.tar.gz
+"
diff --git a/testing/lrcalc/APKBUILD b/testing/lrcalc/APKBUILD
new file mode 100644
index 00000000000..4a002ddf2f0
--- /dev/null
+++ b/testing/lrcalc/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=lrcalc
+pkgver=2.1
+pkgrel=1
+pkgdesc="Littlewood-Richardson Calculator"
+url="https://sites.math.rutgers.edu/~asbuch/lrcalc/"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-dev $pkgname-libs"
+source="https://sites.math.rutgers.edu/~asbuch/lrcalc/lrcalc-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+76db29af51fb97e582d37b92a426cacf85fd61b8e7c2a70dc99dec23b396d62d996f0c66b5bbbd8b6928b46fa1186c9bb3c28aa91646cdccd38bd9b783af44d7 lrcalc-2.1.tar.gz
+"
diff --git a/testing/lrdf/APKBUILD b/testing/lrdf/APKBUILD
deleted file mode 100644
index 0581af5ea49..00000000000
--- a/testing/lrdf/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=lrdf
-pkgver=0.6.1
-pkgrel=0
-pkgdesc="RDF library for accessing plugin metadata in the LADSPA plugin system"
-url="https://github.com/swh/LRDF"
-arch="all"
-license="GPL-2.0-only"
-makedepends="autoconf automake libtool raptor2-dev"
-subpackages="$pkgname-static $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/swh/LRDF/archive/v0.6.1.tar.gz"
-builddir="$srcdir/LRDF-$pkgver"
-options="!check" # remove_test not working: https://github.com/swh/LRDF/issues/15
-
-prepare() {
- default_prepare
- autoreconf -vif
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="7732813eec704aef984d056de254e4fa049fdd0a7444b6a88f75f012afe9c587cbd1295f027c77361fa42bc097cdce9d9cabdba6b86e99a3c14805d84258df1c lrdf-0.6.1.tar.gz"
diff --git a/testing/lrzsz/APKBUILD b/testing/lrzsz/APKBUILD
index ee0d4851cf4..eea2d84e4ec 100644
--- a/testing/lrzsz/APKBUILD
+++ b/testing/lrzsz/APKBUILD
@@ -2,27 +2,28 @@
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=lrzsz
pkgver=0.12.20
-pkgrel=0
+pkgrel=2
pkgdesc="Unix communication package providing the XMODEM, YMODEM ZMODEM file transfer protocols"
url="https://ohse.de/uwe/software/lrzsz.html"
arch="all"
-license="GPL"
-source="https://ohse.de/uwe/releases/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+license="GPL-2.0-or-later"
+subpackages="$pkgname-doc"
+source="https://ohse.de/uwe/releases/lrzsz-$pkgver.tar.gz"
build() {
- cd "$builddir"
- ./configure --prefix=/usr
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --mandir=/usr/share/man
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make install -j1 DESTDIR="$pkgdir"
}
diff --git a/testing/lsd/APKBUILD b/testing/lsd/APKBUILD
new file mode 100644
index 00000000000..6096f83cb3a
--- /dev/null
+++ b/testing/lsd/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=lsd
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="Next-Gen ls command"
+url="https://github.com/lsd-rs/lsd"
+arch="all"
+license="Apache-2.0"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/lsd-rs/lsd/archive/refs/tags/v$pkgver/lsd-$pkgver.tar.gz"
+# check: tests fail in CI only due to escape code
+# net: needed for downloading dependencies
+options="!check net"
+
+build() {
+ SHELL_COMPLETIONS_DIR=completions cargo auditable build --release --locked
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ install -Dm755 target/release/lsd -t "$pkgdir"/usr/bin/
+ install -D -m644 completions/lsd.bash "$pkgdir"/usr/share/bash-completion/completions/lsd
+ install -D -m644 completions/lsd.fish "$pkgdir"/usr/share/fish/vendor_completions.d/lsd.fish
+ install -D -m644 completions/_lsd "$pkgdir"/usr/share/zsh/site-functions/_lsd
+}
+
+sha512sums="
+7a3f517bb9d9b2f3a43989caef1b7454c99fd7a4f49a86da09a221821a78273bf6be60404288fead4a36bf8e3f88cfb38e0b601c7edd2ff98ea847ca8ac0ed01 lsd-1.1.1.tar.gz
+"
diff --git a/testing/lsdvd/APKBUILD b/testing/lsdvd/APKBUILD
new file mode 100644
index 00000000000..1f1553f3539
--- /dev/null
+++ b/testing/lsdvd/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+pkgname=lsdvd
+pkgver=0.17
+pkgrel=0
+pkgdesc="Console application that displays the content of a DVD"
+url="https://sourceforge.net/projects/lsdvd/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libdvdread-dev"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/lsdvd/lsdvd-$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d217ebe063c9d4c1584abe99cba5c5d09e1d600d26c58f90d542235f9a629433aa24f24fd8399c639e21391e7a5e8bdf54a9c85083aed63eae1090f4c23677e0 lsdvd-0.17.tar.gz
+"
diff --git a/testing/lshell/APKBUILD b/testing/lshell/APKBUILD
index c35c3d70f4b..0c561f4bde6 100644
--- a/testing/lshell/APKBUILD
+++ b/testing/lshell/APKBUILD
@@ -2,22 +2,26 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=lshell
pkgver=0.9.18
-pkgrel=5
+pkgrel=11
pkgdesc="Python3-based limited Shell"
url="https://github.com/ghantoos/lshell"
arch="noarch"
license="GPL-3.0-or-later"
depends="python3"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-doc $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/ghantoos/lshell/archive/$pkgver.tar.gz"
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+ mv "$pkgdir"/usr/lib/python3*/site-packages/etc "$pkgdir"
}
sha512sums="546e55fd04d9913adbf6ff181d365f0aff8c94131229d4be994b29e94b925943fb32f99dc145172938535565f69405d0edad5bd2d9b7125f8770d0f0c591fece lshell-0.9.18.tar.gz"
diff --git a/testing/lsip6/APKBUILD b/testing/lsip6/APKBUILD
new file mode 100644
index 00000000000..e862f66064d
--- /dev/null
+++ b/testing/lsip6/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Martijn Braam <martijn@brixit.nl>
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=lsip6
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Look up IPv6 link-local addresses on point-to-point links"
+url="https://git.sr.ht/~martijnbraam/lsip6"
+arch="all"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/lsip6/archive/$pkgver.tar.gz"
+depends="python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+options="!check" # No testsuite
+subpackages="$pkgname-pyc"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir"\
+ .dist/*.whl
+}
+
+
+sha512sums="
+e5af476807ff1315df9830a0de3875bde6025a7d508aa11c54d4c05f9649159bb3dec51419103427ca7cb63932e92e614ff41b7bc24f0fa2b913671cbfa3816b lsip6-0.2.0.tar.gz
+"
diff --git a/testing/lsix/APKBUILD b/testing/lsix/APKBUILD
new file mode 100644
index 00000000000..3d4be329904
--- /dev/null
+++ b/testing/lsix/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=lsix
+pkgver=1.8.2
+pkgrel=0
+pkgdesc="Preview thumbnails in the terminal using sixel graphics"
+url="https://github.com/hackerb9/lsix"
+arch="noarch"
+license="GPL-3.0-only"
+depends="bash imagemagick"
+source="https://github.com/hackerb9/lsix/archive/$pkgver/lsix-$pkgver.tar.gz"
+options="!check" # no upstream tests
+
+package() {
+ install -Dm755 lsix -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+735b1b052123aee2562a41f6aa3c386a0e1cc147e09add4b33092a68071ed95b8f77461a803e6a212ab445ba56ca37d0fed616296437c07235d38ac0c1ba06b8 lsix-1.8.2.tar.gz
+"
diff --git a/testing/lsmash/APKBUILD b/testing/lsmash/APKBUILD
index 59e8147ce2e..611a4938b19 100644
--- a/testing/lsmash/APKBUILD
+++ b/testing/lsmash/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Alexander Edland <alpine@ocv.me>
-# Maintainer: Alexander Edland <alpine@ocv.me>
+# Maintainer:
pkgname=lsmash
pkgver=2.14.5
-pkgrel=0
+pkgrel=2
pkgdesc="MP4 and MOV muxer/demuxer"
url="https://github.com/l-smash/l-smash"
arch="all"
@@ -24,7 +24,7 @@ build() {
package() {
cd "$builddir"
make -j1 DESTDIR="$pkgdir" install
-
+
# prefix binaries with lsmash- because
# /usr/bin/muxer is likely to cause collisions
for i in "$pkgdir"/usr/bin/*; do
diff --git a/testing/lttng-tools/APKBUILD b/testing/lttng-tools/APKBUILD
deleted file mode 100644
index 9140f96a3cf..00000000000
--- a/testing/lttng-tools/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Michael Jeanson <mjeanson@efficios.com>
-# Maintainer: Michael Jeanson <mjeanson@efficios.com>
-pkgname=lttng-tools
-pkgver=2.11.2
-pkgrel=0
-pkgdesc="LTTng 2.0 control and utility programs"
-url="https://lttng.org"
-arch="all !aarch64"
-license="GPL-2.0"
-depends="babeltrace"
-depends_dev="popt-dev libxml2-dev userspace-rcu-dev lttng-ust-dev kmod-dev
- util-linux-dev"
-makedepends="$depends_dev bash grep coreutils automake autoconf libtool"
-checkdepends="util-linux"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://lttng.org/files/lttng-tools/lttng-tools-$pkgver.tar.bz2"
-
-build() {
- unset LDFLAGS
- # We patch Makefile.am
- autoreconf -fi
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var
- make V=1
-}
-
-check() {
- # only run ubnit tests. all tests takes too much time
- make -j1 -C tests/unit check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/licenses/$pkgname
- mv "$pkgdir"/usr/share/doc/$pkgname/LICENSE \
- "$pkgdir"/usr/share/licenses/$pkgname/
-}
-
-sha512sums="1adc8d2205677d2e2f5613e46406cf00d190ceef63b93c6f90bfc4ff024982f971c48c9df82055d7dab9a5f49ccab9a7eb8639aee8cdc4697173f0e222700170 lttng-tools-2.11.2.tar.bz2"
diff --git a/testing/lua-ansicolors/APKBUILD b/testing/lua-ansicolors/APKBUILD
deleted file mode 100644
index ec8057507d3..00000000000
--- a/testing/lua-ansicolors/APKBUILD
+++ /dev/null
@@ -1,51 +0,0 @@
-# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
-pkgname=lua-ansicolors
-_rockname="${pkgname#lua-}"
-pkgver=1.0.2
-pkgrel=1
-pkgdesc="ANSI terminal color manipulation for Lua"
-url="https://github.com/kikito/ansicolors.lua"
-license="MIT"
-arch="all"
-makedepends="luarocks"
-options="!check" # Test dependencies not available
-source="$_rockname-$pkgver.tar.gz::https://github.com/kikito/$_rockname.lua/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_rockname.lua-$pkgver"
-
-_luaversions="5.1 5.2 5.3"
-for _v in $_luaversions; do
- makedepends="$makedepends lua$_v-dev luarocks$_v"
- subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
-done
-
-build() {
- local lver; for lver in $_luaversions; do
- msg "Building for Lua $lver..."
-
- luarocks-$lver \
- --deps-mode=none \
- LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
- LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
- make --tree="./build" \
- "$_rockname-${pkgver%??}-1.rockspec"
-
- rm "./build/lib/luarocks/rocks-$lver/manifest"
- 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
- mkdir -p "$subpkgdir/usr/${path%/*}"
- mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
- done
-}
-sha512sums="d7052fc63ec09076c0fa940f506fa06ebd210cf590f35310a21c80062cbf062b6d2607c3f89b8dbb39377793e25ea11f471101913e620a7566957e7ed7efbb04 ansicolors-1.0.2.tar.gz"
diff --git a/testing/lua-connman_dbus/APKBUILD b/testing/lua-connman_dbus/APKBUILD
deleted file mode 100644
index 42f7c203df3..00000000000
--- a/testing/lua-connman_dbus/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-_luaversions="5.1 5.2 5.3"
-pkgname="lua-connman_dbus"
-_rockname="${pkgname#lua-*}"
-pkgver="0.4.0"
-pkgrel=0
-pkgdesc="Get network information with Connman over DBus"
-url="https://github.com/stefano-m/lua-connman_dbus"
-arch="all"
-license="Apache-2.0"
-depends="connman lua-dbus_proxy"
-subpackages="$pkgname-doc"
-makedepends="luarocks gobject-introspection-dev"
-options="!check" # No checks available
-source="$pkgname-$pkgver.tar.gz::https://github.com/stefano-m/lua-connman_dbus/archive/v$pkgver.tar.gz"
-
-for _luaversion in $_luaversions; do
- makedepends="$makedepends lua$_luaversion-dev"
- subpackages="$subpackages lua$_luaversion-$_rockname:_subpackage"
-done
-
-build() {
- for _luaversion in $_luaversions; do
- msg "Building for Lua $_luaversion"
- "luarocks-$_luaversion" \
- CC="$CC" \
- CFLAGS="$CFLAGS -fPIC" \
- LUA_INCDIR="$(pkg-config --variable=includedir "lua$_luaversion")" \
- LUA_LIBDIR="$(pkg-config --variable=libdir "lua$_luaversion")" \
- LUA_VERSION="$_luaversion" \
- make --tree="./build-$_luaversion" \
- "rockspec/$_rockname-$pkgver-"*".rockspec"
- done
-}
-
-package() {
- mkdir -p "$pkgdir/usr/share/doc/$pkgname/"
- cp -r "docs/" "$pkgdir/usr/share/doc/$pkgname/"
-}
-
-_subpackage() {
- _luaversion="${subpkgname%-$_rockname}"
- _luaversion="${_luaversion#lua*}"
- pkgdesc="$pkgdesc - for Lua $_luaversion"
- depends="$depends lua$_luaversion"
- install_if="lua$_luaversion $pkgname=$pkgver-r$pkgrel"
-
- for _luascript in "$builddir/build-$_luaversion/share/lua/$_luaversion/$_rockname/"*.lua; do
- install -D -m 644 \
- -t "$subpkgdir/usr/share/lua/$_luaversion/$_rockname" \
- "$_luascript"
- done
-}
-
-sha512sums="a0ae559dac81cca4801159e7d87e6890a196e6151df6178bd5956df725f348be529bdf95337329614261e9e4b270621d97d20dd9c63e50595ba88cadea092015 lua-connman_dbus-0.4.0.tar.gz"
diff --git a/testing/lua-dbus_proxy/APKBUILD b/testing/lua-dbus_proxy/APKBUILD
deleted file mode 100644
index d3456fe2baf..00000000000
--- a/testing/lua-dbus_proxy/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-_luaversions="5.1 5.2 5.3"
-pkgname="lua-dbus_proxy"
-_rockname="${pkgname#lua-*}"
-pkgver="0.9.0"
-pkgrel=0
-pkgdesc="Simple API around GLib's GIO:GDBusProxy built on top of lgi"
-url="https://github.com/stefano-m/lua-dbus_proxy"
-arch="all"
-license="Apache-2.0"
-depends="dbus lua-lgi"
-subpackages="${pkgname}-doc"
-makedepends="luarocks gobject-introspection-dev"
-options="!check" # Tests require running dbus server to interact with
-source="${pkgname}-${pkgver}.tar.gz::https://github.com/stefano-m/lua-dbus_proxy/archive/v${pkgver}.tar.gz"
-
-for _luaversion in ${_luaversions}; do
- makedepends="${makedepends} lua${_luaversion}-dev"
- subpackages="${subpackages} lua${_luaversion}-${_rockname}:_subpackage"
-done
-
-build() {
- for _luaversion in ${_luaversions}; do
- msg "Building for Lua ${_luaversion}"
- "luarocks-${_luaversion}" \
- CC="${CC}" \
- CFLAGS="${CFLAGS} -fPIC" \
- LUA_INCDIR="$(pkg-config --variable=includedir "lua${_luaversion}")" \
- LUA_LIBDIR="$(pkg-config --variable=libdir "lua${_luaversion}")" \
- LUA_VERSION="${_luaversion}" \
- make --tree="./build-${_luaversion}" \
- "rockspec/${_rockname}-${pkgver}-"*".rockspec"
- done
-}
-
-package() {
- mkdir -p "${pkgdir}/usr/share/doc/${pkgname}/"
- cp -r "docs/" "${pkgdir}/usr/share/doc/${pkgname}/"
-}
-
-_subpackage() {
- _luaversion="${subpkgname%-${_rockname}}"
- _luaversion="${_luaversion#lua*}"
- pkgdesc="${pkgdesc} - for Lua ${_luaversion}"
- depends="${depends} lua${_luaversion}"
- install_if="lua${_luaversion} ${pkgname}=${pkgver}-r${pkgrel}"
-
- for _luascript in "${builddir}/build-${_luaversion}/share/lua/${_luaversion}/${_rockname}/"*.lua; do
- install -D -m 644 \
- -t "${subpkgdir}/usr/share/lua/${_luaversion}/${_rockname}" \
- "${_luascript}"
- done
-}
-
-sha512sums="f49a91f0f1b53a5cc5b5266ecc1f500e46676ccb910750827ef778ba5ed740d135d3b49592c8256a23a7770604a77d3fc110854626b35b5e67bb7608ee633eb1 lua-dbus_proxy-0.9.0.tar.gz"
diff --git a/testing/lua-editorconfig/APKBUILD b/testing/lua-editorconfig/APKBUILD
new file mode 100644
index 00000000000..51d470cdc1f
--- /dev/null
+++ b/testing/lua-editorconfig/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=lua-editorconfig
+_pkgname=editorconfig-core-lua
+_rockname=editorconfig-core
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="EditorConfig Core bindings for Lua"
+url="https://github.com/editorconfig/editorconfig-core-lua"
+arch="all"
+license="BSD-2-Clause"
+makedepends="cmake editorconfig-dev"
+options="!check" # no tests
+source="$_pkgname-$pkgver.tar.gz::https://github.com/editorconfig/editorconfig-core-lua/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+_luaversions="5.2 5.3 5.4" # depends on lua5.2+
+for _v in $_luaversions; do
+ makedepends="$makedepends lua$_v-dev"
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+build() {
+ local lver; for lver in $_luaversions; do
+ mkdir -p "$builddir"/build-$lver
+ cd "$builddir"/build-$lver
+
+ msg "Building against Lua $lver..."
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DLUA_INCLUDE_DIR="$(pkg-config --variable=includedir lua$lver)" \
+ -DLUA_LIBRARIES="$(pkg-config --variable=libdir lua$lver)" \
+ $CMAKE_CROSSOPTS ..
+
+ make
+ 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 install_cmod=$(pkg-config --variable=INSTALL_CMOD lua$lver)
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-1"
+
+ install -D -m 755 "$builddir"/build-$lver/editorconfig.so \
+ "$subpkgdir"/$install_cmod/editorconfig.so
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="9d9afbfc5e6a2b352eb5d4066111f34836fb6eefb0363173d6aa55078be2be2129f9d1c9d9bcef85899b99bf332861de30046d9a2bc27a96b92d4cf2681aea05 editorconfig-core-lua-0.3.0.tar.gz"
diff --git a/testing/lua-etlua/APKBUILD b/testing/lua-etlua/APKBUILD
deleted file mode 100644
index 133e4d21378..00000000000
--- a/testing/lua-etlua/APKBUILD
+++ /dev/null
@@ -1,65 +0,0 @@
-# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
-pkgname=lua-etlua
-_rockname="${pkgname#lua-}"
-pkgver=1.3.0
-pkgrel=2
-pkgdesc="Embedded Lua templates"
-url="https://github.com/leafo/etlua"
-license="MIT"
-arch="all"
-makedepends="luarocks"
-checkdepends="lua-busted luajit moonscript"
-source="$_rockname-$pkgver.tar.gz::https://github.com/leafo/$_rockname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_rockname-$pkgver"
-
-_luaversions="5.1 5.2"
-for _v in $_luaversions; do
- makedepends="$makedepends lua$_v-dev luarocks$_v"
- subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
- checkdepends="$checkdepends lua$_v lua$_v-busted"
-done
-
-build() {
- local lver; for lver in $_luaversions; do
- msg "Building for Lua $lver..."
-
- luarocks-$lver \
- --deps-mode=none \
- LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
- LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
- make --tree="./build" \
- "$_rockname-dev-1.rockspec"
-
- rm "./build/lib/luarocks/rocks-$lver/manifest"
- done
-}
-
-check() {
- mkdir .bin
-
- local lver; for lver in $_luaversions; do
- msg "Testing on lua$lver..."
- ln -sf "/usr/bin/lua$lver" ".bin/lua"
- LUA_PATH="$builddir/?.lua;;" \
- PATH="$builddir/.bin:$PATH" \
- lua "/usr/bin/busted"
- 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
- mkdir -p "$subpkgdir/usr/${path%/*}"
- mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
- done
-}
-
-sha512sums="132a5d7d898b791242abc3b95f47f534d0b0e2a3f9848efb95be04f92049b18c919af8c2ac162e11f78b502d346e78a73935c1ad720f5ffbb1efe90355b39a9a etlua-1.3.0.tar.gz"
diff --git a/testing/lua-fn/APKBUILD b/testing/lua-fn/APKBUILD
new file mode 100644
index 00000000000..1ad7ab595d5
--- /dev/null
+++ b/testing/lua-fn/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Ziyao <tswuyin_st127@163.com>
+# Maintainer: Ziyao <tswuyin_st127@163.com>
+pkgname=lua-fn
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Functional programming library for Lua"
+url="https://github.com/ziyao233/fn"
+arch="noarch"
+license="MIT"
+depends="lua5.4"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ziyao233/fn/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/fn-$pkgver"
+
+check() {
+ lua5.4 test.lua
+}
+
+package() {
+ install -Dm644 fn.lua -t "$pkgdir"/usr/share/lua/5.4/
+}
+
+sha512sums="
+bf5a5dfbdc51e7dd85b965a0393e6c68aad61414acc4047e5dabfcc819a7a6bea4cfb9dda03091b8b1df4225b02f48bd774b56b8f0f951202c0e88a7a78a25ad lua-fn-0.1.0.tar.gz
+"
diff --git a/testing/lua-inet/APKBUILD b/testing/lua-inet/APKBUILD
new file mode 100644
index 00000000000..6bf66cbb61c
--- /dev/null
+++ b/testing/lua-inet/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
+# Maintainer:
+pkgname=lua-inet
+_rockname=${pkgname#lua-}
+pkgver=0.2.0
+pkgrel=0
+_gittag=${pkgname}_$pkgver
+pkgdesc="An IP address mangling library for Lua"
+url="https://git.2e8.dk/lua-inet/"
+arch="noarch"
+license="LGPL-3.0-only"
+depends="lua-lpeg"
+checkdepends="lua5.2 lua5.3 luacheck"
+source="$pkgname-$pkgver.tar.gz::https://git.2e8.dk/lua-inet//snapshot/$_gittag.tar.gz
+ luacheck.patch"
+builddir="$srcdir/$_gittag"
+
+_luaversions="5.2 5.3 5.4"
+for _v in $_luaversions; do
+ provides="$provides lua$_v-$_rockname=$pkgver-r$pkgrel"
+done
+
+check() {
+ make test
+}
+
+package() {
+ local dir=$pkgdir/usr/share/lua/common
+ local rockdir=$pkgdir/usr/lib/luarocks/rocks-common/$_rockname/$pkgver-1
+ mkdir -p "$dir" "$rockdir"
+ cp -r lua/inet "$dir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="
+9717926ce959fb06de89c6159bdd5abbe0fe837e22a192df165da8633e78b53ddc84c6a2156e8a5c603222011a93c15cfe00eeae867189ba94e32df21b4cf26a lua-inet-0.2.0.tar.gz
+3450320f865b77bfd41de7d6cf99550fa1b84bb6c61816c3175108b48b251036615fb1d48f1f5c8b90eab8d408839d278c5c11a3b68d610a21ad2393a3f5569a luacheck.patch
+"
diff --git a/testing/lua-inet/luacheck.patch b/testing/lua-inet/luacheck.patch
new file mode 100644
index 00000000000..16ab9a721b9
--- /dev/null
+++ b/testing/lua-inet/luacheck.patch
@@ -0,0 +1,8 @@
+--- lua-inet_0.2.0/Makefile
++++ lua-inet_0.2.0.luacheck/Makefile
+@@ -3,4 +3,4 @@
+ test:
+ lua5.2 ./test.lua
+ lua5.3 ./test.lua
+- find lua/ test/ -iname '*.lua' | xargs luacheck
++ find lua/ test/ -iname '*.lua' | xargs luacheck --std lua52
diff --git a/testing/lua-jsonschema/APKBUILD b/testing/lua-jsonschema/APKBUILD
deleted file mode 100644
index c199108ed32..00000000000
--- a/testing/lua-jsonschema/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
-pkgname=lua-jsonschema
-_rockname=${pkgname#lua-}
-pkgver=0.8
-pkgrel=0
-pkgdesc="Pure Lua JSON schema validator for Lua/LuaJIT"
-url="https://github.com/iresty/jsonschema"
-license="MIT"
-arch="noarch"
-depends="lua-net-url lua-rex-pcre"
-makedepends="luarocks"
-options="!check" # Test dependencies not available
-source="$_rockname-$pkgver.tar.gz::https://github.com/iresty/jsonschema/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_rockname-$pkgver"
-_luaversions="5.1 5.2 5.3"
-
-for _luaversion in $_luaversions; do
- makedepends="$makedepends lua$_luaversion-dev"
- subpackages="$subpackages lua$_luaversion-$_rockname:_subpackage"
-done
-
-build() {
- local lver; for lver in $_luaversions; do
- msg "Building for Lua $lver..."
-
- luarocks-$lver \
- --deps-mode=none \
- LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
- LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
- make --tree="./build" \
- "rockspec/$_rockname-master-"*".rockspec"
-
- rm "./build/lib/luarocks/rocks-$lver/manifest"
- 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
- mkdir -p "$subpkgdir/usr/${path%/*}"
- mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
- done
-}
-sha512sums="4791b42a6e94984b245db60079035addab59e429451558217a52bbc03753355d0cd61ffb66b2623a944b08515d28f1ebd9b97a0b50cde444c26f6ad788792a53 jsonschema-0.8.tar.gz"
diff --git a/testing/lua-lanes/APKBUILD b/testing/lua-lanes/APKBUILD
new file mode 100644
index 00000000000..b7a27d204d3
--- /dev/null
+++ b/testing/lua-lanes/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Hani Shawa <hani.shawa@ev-box.com>
+# Maintainer: Hani Shawa <hani.shawa@ev-box.com>
+pkgname=lua-lanes
+_rockname=${pkgname#lua-}
+pkgver=3.16.0
+pkgrel=1
+pkgdesc="portable, message passing multithreading library"
+url="https://github.com/LuaLanes/lanes"
+license="MIT"
+arch="all"
+makedepends="luarocks"
+options="!check" # Test dependencies not available
+source="$_rockname-$pkgver.tar.gz::https://github.com/LuaLanes/lanes/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_rockname-$pkgver"
+_luaversions="5.1 5.2 5.3 5.4"
+
+for _luaversion in $_luaversions; do
+ makedepends="$makedepends lua$_luaversion-dev"
+ subpackages="$subpackages lua$_luaversion-$_rockname:_subpackage"
+done
+
+build() {
+ local lver; for lver in $_luaversions; do
+ msg "Building for Lua $lver..."
+
+ luarocks-$lver \
+ CFLAGS="-fPIC -DPTHREAD_MUTEX_RECURSIVE_NP=PTHREAD_MUTEX_RECURSIVE -Dpthread_yield=sched_yield" \
+ LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
+ make --tree="./build" \
+ "$_rockname-$pkgver-"*".rockspec"
+
+ 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 path; for path in "lib/lua/$lver" "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
+ mkdir -p "$subpkgdir/usr/${path%/*}"
+ mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
+ done
+}
+
+sha512sums="
+ffd935baae8af752591251bbb1a7f936034ad281870d453e6e1b4291c175c91537ccae23ec25a616b45e8ab601222f323e05e938d7887091ba7e132b0cd5e449 lanes-3.16.0.tar.gz
+"
diff --git a/testing/lua-language-server/APKBUILD b/testing/lua-language-server/APKBUILD
new file mode 100644
index 00000000000..3336d505a2b
--- /dev/null
+++ b/testing/lua-language-server/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Jordan Christiansen <xordspar0@gmail.com>
+pkgname=lua-language-server
+pkgver=3.8.0
+pkgrel=0
+pkgdesc="Language Server for Lua"
+url="https://github.com/LuaLS/lua-language-server"
+# s390x/ppc64le: ftbfs
+# 32-bit: not useful there
+arch="all !x86 !armhf !armv7 !s390x !ppc64le"
+license="MIT"
+makedepends="bash linux-headers samurai"
+source="https://github.com/LuaLS/lua-language-server/archive/refs/tags/$pkgver/lua-language-server-$pkgver.tar.gz
+ lua-language-server-submodules-$pkgver.zip.noauto::https://github.com/LuaLS/lua-language-server/releases/download/$pkgver/lua-language-server-$pkgver-submodules.zip
+ wrapper
+ "
+options="!check" # tests run in build
+
+prepare() {
+ unzip -o "$srcdir"/lua-language-server-submodules-$pkgver.zip.noauto \
+ -d "$builddir"
+ default_prepare
+}
+
+build() {
+ ninja -C 3rd/luamake -f compile/ninja/linux.ninja
+ ./3rd/luamake/luamake rebuild
+}
+
+package() {
+ install -Dm755 "$srcdir"/wrapper "$pkgdir"/usr/bin/lua-language-server
+ install -Dm755 bin/lua-language-server \
+ -t "$pkgdir"/usr/lib/lua-language-server/bin
+ install -Dm644 bin/main.lua \
+ -t "$pkgdir"/usr/lib/lua-language-server/bin
+ install -Dm644 debugger.lua main.lua \
+ -t "$pkgdir"/usr/lib/lua-language-server
+ cp -a locale meta script "$pkgdir"/usr/lib/lua-language-server
+}
+
+sha512sums="
+bc4e698fffdf3dc5013d5def363f8ac68a5e8dda6828851b73736a32f3968ef5c4db68903b7b7ac99b9da875803b788bdcbbaadfe27939b4845d062052688435 lua-language-server-3.8.0.tar.gz
+c3b4ab6e4f991f0a6875542d04f0efe2b6692b28297051439a38a5b64131e9ba7a04a3b64149a8d55783d54f4c9e462cfd42c050d5384e77224e81d9542f95be lua-language-server-submodules-3.8.0.zip.noauto
+d8d34d2ae8073c256b5f98f4cc7db058fbb92d63a5709894fca898ab47fcfcfca2d1419a1060c29464fbad937e3d09f0cde404b4d98609eec934ea4392044849 wrapper
+"
diff --git a/testing/lua-language-server/wrapper b/testing/lua-language-server/wrapper
new file mode 100755
index 00000000000..7ebcd4440f3
--- /dev/null
+++ b/testing/lua-language-server/wrapper
@@ -0,0 +1,11 @@
+#!/bin/sh
+# taken from https://github.com/archlinux/svntogit-community/blob/3b6e414da1733d2fc1bc4f830e1bd913c1f4b529/trunk/wrapper
+TMPPATH="/tmp/lua-language-server-$(id -u)"
+mkdir -p "$TMPPATH"
+INSTANCEPATH=$(mktemp -d "$TMPPATH/instance.XXXXXX")
+DEFAULT_LOGPATH="$INSTANCEPATH/log"
+DEFAULT_METAPATH="$INSTANCEPATH/meta"
+
+exec /usr/lib/lua-language-server/bin/lua-language-server -E /usr/lib/lua-language-server/main.lua \
+ --logpath="$DEFAULT_LOGPATH" --metapath="$DEFAULT_METAPATH" \
+ "$@"
diff --git a/testing/lua-lapis/APKBUILD b/testing/lua-lapis/APKBUILD
deleted file mode 100644
index 9762f703cf5..00000000000
--- a/testing/lua-lapis/APKBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Maintainer: Pegah Bahramiani <pb.bahramiani@gmail.com>
-pkgname=lua-lapis
-_rockname="${pkgname#lua-}"
-pkgver=1.7.0
-pkgrel=0
-pkgdesc="A web framework for Lua/MoonScript supporting OpenResty or http.server"
-url="https://https://github.com/leafo/lapis"
-license="MIT"
-arch="all"
-depends="
- lua-ansicolors
- lua-cjson
- lua-date
- lua-etlua
- lua-filesystem
- lua-loadkit
- lua-lpeg
- lua-mimetypes
- lua-ossl
- lua-pgmoon
- lua-socket
-"
-makedepends="luarocks"
-options="!check" # Test dependencies not available
-source="$_rockname-$pkgver.tar.gz::https://github.com/leafo/$_rockname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_rockname-$pkgver"
-_luaversions="5.1"
-for _v in $_luaversions; do
- makedepends="$makedepends lua$_v-dev luarocks$_v"
- subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
-done
-
-build() {
- local lver; for lver in $_luaversions; do
- msg "Building for Lua $lver..."
- luarocks-$lver \
- --deps-mode=none \
- LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
- LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
- make --tree="./build" \
- "$_rockname-dev-1.rockspec"
- rm "./build/lib/luarocks/rocks-$lver/manifest"
- 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
- mkdir -p "$subpkgdir/usr/${path%/*}"
- mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
- done
-}
-sha512sums="9dbbf326e821acad7eacea09664094d038da5e120fdf707992969421be7e1daaf9e2aa9147263d266732cfb9f24ca400aefaa9b4903f8a244d5d26e0ffec4895 lapis-1.7.0.tar.gz"
-
diff --git a/testing/lua-lcurses/APKBUILD b/testing/lua-lcurses/APKBUILD
index d9be8ce239f..6795b586ddd 100644
--- a/testing/lua-lcurses/APKBUILD
+++ b/testing/lua-lcurses/APKBUILD
@@ -29,6 +29,9 @@ prepare() {
cd "$builddir"
./bootstrap --skip-git
+ update_config_sub
+ update_config_guess
+
local lver; for lver in $_luaversions; do
cp -r "$builddir" "$builddir-$lver"
done
diff --git a/testing/lua-libmodbus/APKBUILD b/testing/lua-libmodbus/APKBUILD
index 5627f4b474f..ab785782401 100644
--- a/testing/lua-libmodbus/APKBUILD
+++ b/testing/lua-libmodbus/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Tobias Spieth <tobias.spieth@evbox.com>
pkgname=lua-libmodbus
_rockname="${pkgname#lua-}"
-pkgver=0.5
+pkgver=0.6.1
pkgrel=0
pkgdesc="Lua bindings to libmodbus"
url="https://github.com/etactica/lua-libmodbus"
@@ -15,8 +15,8 @@ source="$_rockname-$pkgver.tar.gz::https://github.com/etactica/lua-libmodbus/arc
_luaversions="5.1 5.2"
for _v in $_luaversions; do
- makedepends="${makedepends} lua$_v-dev luarocks$_v"
- subpackages="${subpackages} lua$_v-${_rockname}:_subpackage"
+ makedepends="$makedepends lua$_v-dev luarocks$_v"
+ subpackages="$subpackages lua$_v-$_rockname:_subpackage"
done
build() {
@@ -41,13 +41,13 @@ package() {
_subpackage() {
local lver="${subpkgname:3:3}"
- pkgdesc="${pkgdesc} (for Lua ${lver})"
+ pkgdesc="$pkgdesc (for Lua $lver)"
depends="lua$lver"
- install_if="${pkgname}=$pkgver-r${pkgrel} lua$lver"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
local path="lib/lua/$lver"
mkdir -p "$subpkgdir/usr/${path%/*}"
mv "$builddir/build-$lver/$path" "$subpkgdir/usr/$path/"
}
-sha512sums="d4a800beb6bf450f796883a8c863484b7335495192889f4f9ca80141c10e9460588aff41ee3f69d9b6ef5db6788975dda809376313f4eec02e456732c6129c94 libmodbus-0.5.tar.gz"
+sha512sums="99bca4898b2a6b6b94f6bab794efdfddb44f2baed552344ddda912a3154be15d2f01e021df7fe8231252359e2fbd5ad8a3db129d0c658b49ded6f74ad531231f libmodbus-0.6.1.tar.gz"
diff --git a/testing/lua-linenoise/APKBUILD b/testing/lua-linenoise/APKBUILD
index 53a7b4b8785..65cc70627ce 100644
--- a/testing/lua-linenoise/APKBUILD
+++ b/testing/lua-linenoise/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-linenoise
pkgver=0.9
-pkgrel=0
+pkgrel=1
pkgdesc="Lua bindings for linenoise"
url="https://github.com/hoelzro/lua-linenoise"
arch="all"
@@ -9,7 +9,7 @@ license="MIT"
makedepends="linenoise-dev"
source="lua-linenoise-$pkgver.tar.gz::https://github.com/hoelzro/lua-linenoise/archive/$pkgver.tar.gz"
-_luaversions="5.1 5.2 5.3"
+_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
makedepends="$makedepends lua$_v-dev"
@@ -32,7 +32,7 @@ package() {
_subpackage() {
local lua="${subpkgname%-*}"
local lver=${lua#lua}
- pkgdesc="$pkgdesc (for Lua ${lver})"
+ pkgdesc="$pkgdesc (for Lua $lver)"
depends="$lua"
install_if="$pkgname=$pkgver-r$pkgrel $lua"
diff --git a/testing/lua-linotify/APKBUILD b/testing/lua-linotify/APKBUILD
deleted file mode 100644
index 782cda30f75..00000000000
--- a/testing/lua-linotify/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=lua-linotify
-pkgver=0.4
-pkgrel=0
-pkgdesc="Inotify bindings for Lua"
-url="https://github.com/hoelzro/linotify"
-arch="all"
-license="MIT"
-depends=""
-makedepends=""
-install=""
-subpackages=""
-source="linotify-$pkgver.tar.gz::https://github.com/hoelzro/linotify/archive/$pkgver.tar.gz
- makefile.patch
- "
-builddir="$srcdir/linotify-$pkgver"
-
-_luaversions="5.1 5.2 5.3"
-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 LUAVER=$lver -C "$builddir-$lver"
- 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"
-
- cd "$builddir-$lver"
- make LUAVER=$lver PREFIX="/usr" DESTDIR="$subpkgdir" install
-}
-
-sha512sums="8024b32ffcb8ce696786bf15f5b61978e511d6484e3817550fc0e49b1dbebb3f3db9d4b2ced8e772a65b31616102a03161dbc91e3efb4082ccea63b7269ac5d8 linotify-0.4.tar.gz
-d2729c6124c0119d0933c6b563747795be6ed830c539ae839ba4724412e535cabc53457b81a578fa7c551e4e1894428868b7a79d9d7299675d74e0fbae033b5a makefile.patch"
diff --git a/testing/lua-linotify/makefile.patch b/testing/lua-linotify/makefile.patch
deleted file mode 100644
index 5a637f6d756..00000000000
--- a/testing/lua-linotify/makefile.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- ./Makefile.orig
-+++ ./Makefile
-@@ -7,19 +7,13 @@
- # out this line when debugging.
- OMIT_FRAME_POINTER = -fomit-frame-pointer
-
--# Seach for lua .pc file
--LUAPKG_CMD = $(shell pkg-config --list-all | grep Lua | awk '{print $$1}')
--CFLAGS = -fPIC -O3 -Wall $(shell pkg-config "$(LUAPKG_CMD)" --cflags)
--LFLAGS = -shared $(OMIT_FRAME_POINTER)
--INSTALL_PATH = $(shell pkg-config "$(LUAPKG_CMD)" --variable=INSTALL_CMOD)
--
- ## If your system doesn't have pkg-config, comment out the previous
- ## lines and uncomment and change the following ones according to your
- ## building enviroment.
-
--#CFLAGS = -I/usr/include/lua5.1/ -fPIC -O3 -Wall
--#LFLAGS = -shared $(OMIT_FRAME_POINTER)
--#INSTALL_PATH = /usr/lib/lua/5.1
-+CFLAGS = -I/usr/include/lua$(LUAVER)/ -fPIC -O3 -Wall
-+LFLAGS = -shared $(OMIT_FRAME_POINTER)
-+INSTALL_PATH = /usr/lib/lua/$(LUAVER)
-
- all: $(LIBNAME)
-
diff --git a/testing/lua-luastatic/APKBUILD b/testing/lua-luastatic/APKBUILD
new file mode 100644
index 00000000000..68958420541
--- /dev/null
+++ b/testing/lua-luastatic/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=lua-luastatic
+_pkgname=luastatic
+pkgver=0.0.12
+pkgrel=1
+pkgdesc="Build a standalone executable from a Lua program."
+url="https://github.com/ers35/luastatic"
+arch="all"
+license="CC0-1.0"
+options="!check" # make check not implemented
+source="$pkgname-$pkgver.tar.gz::https://github.com/ers35/luastatic/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+_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-}:_package"
+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..."
+ cd "$builddir-$lver"
+ if [ "$lver" = "5.1" ]; then
+ make LUA=lua LIBLUA_A=/usr/lib/liblua.a
+ else
+ make LUA=lua$lver LUA_INCLUDE=/usr/include/lua$lver LIBLUA_A=/usr/lib/liblua-$lver.so.0
+ fi
+ done
+}
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_package() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc $lver"
+ depends="lua$lver"
+
+ cd "$builddir-$lver"
+ mkdir -p "$subpkgdir"/usr/bin/
+ cp -a $_pkgname "$subpkgdir"/usr/bin/luastatic-$lver
+ if [ $lver = 5.4 ]; then
+ ln -sf /usr/bin/luastatic-$lver "$subpkgdir"/usr/bin/luastatic
+ fi
+}
+
+sha512sums="83bdf50536eb9f817c394d309a56a1476b3d40262ab9e1a81b185f2d599ebfe523ebbf8559837a710b679941908aea1dc5bfd6e9aba6420b8cc41273d8a1b731 lua-luastatic-0.0.12.tar.gz"
diff --git a/testing/lua-lupa/APKBUILD b/testing/lua-lupa/APKBUILD
new file mode 100644
index 00000000000..ccf2615a525
--- /dev/null
+++ b/testing/lua-lupa/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
+# Maintainer:
+pkgname=lua-lupa
+_rockname=${pkgname#lua-}
+pkgver=1.0
+pkgrel=0
+_gittag=${_rockname}_$pkgver
+pkgdesc="Jinja2 template engine implementation written in Lua"
+url="https://orbitalquark.github.io/lupa/"
+arch="noarch"
+license="MIT"
+depends="lua-lpeg"
+checkdepends="lua5.1"
+source="$pkgname-$pkgver.tar.gz::https://github.com/orbitalquark/lupa/archive/$_gittag.tar.gz"
+builddir="$srcdir/$_rockname-$_gittag"
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ provides="$provides lua$_v-$_rockname=$pkgver-r$pkgrel"
+done
+
+check() {
+ make tests
+}
+
+package() {
+ install -m 644 -D lupa.lua "$pkgdir"/usr/share/lua/common/lupa.lua
+
+ local rockdir=$pkgdir/usr/lib/luarocks/rocks-common/$_rockname/$pkgver-1
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="
+ecb4a71d78b5a1786dfc5f34071be0718d54cba1b11dc35edff5f1a3d232db076ebf2ad1d4956cfd1eb036b5ce9f60ef5327f08905ebde14702a92798052630e lua-lupa-1.0.tar.gz
+"
diff --git a/testing/lua-middleclass/APKBUILD b/testing/lua-middleclass/APKBUILD
deleted file mode 100644
index 296a68faeec..00000000000
--- a/testing/lua-middleclass/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=lua-middleclass
-pkgver=4.0.0
-pkgrel=0
-_luaversions="5.1 5.2 5.3"
-pkgdesc="Object-orientation for Lua"
-url="https://github.com/kikito/middleclass"
-arch="noarch"
-license="MIT"
-depends=""
-depends_dev=""
-makedepends="$depends_dev"
-install=""
-subpackages=""
-source="middleclass-$pkgver.tar.gz::https://github.com/kikito/middleclass/archive/v$pkgver.tar.gz"
-
-for _v in $_luaversions; do
- subpackages="$subpackages lua$_v-${pkgname#*lua-}:split_${_v/./_}"
- eval "split_${_v/./_}() { _split $_v; }"
-done
-
-builddir="$srcdir"/middleclass-$pkgver
-
-build() {
- return 0
-}
-
-package() {
- mkdir -p "$pkgdir"
-}
-
-_split() {
- cd "$builddir"
- local _ver="$1"
- install_if="lua$_ver $pkgname=$pkgver-r$pkgrel"
- pkgdesc="Object-orientation for Lua $_ver"
- install -Dm644 middleclass.lua \
- "$subpkgdir/usr/share/lua/$_ver/middleclass.lua" || return 1
-}
-
-sha512sums="c648bd3fd9bc2e3edf802c04734b1e940311cc7a1556c51336047a52ae2b0fa7d107f3c8509ffb51cce49e865e9a6e22f4cd53f6e50255d26819060159d228a2 middleclass-4.0.0.tar.gz"
diff --git a/testing/lua-mimetypes/APKBUILD b/testing/lua-mimetypes/APKBUILD
deleted file mode 100644
index 768212c8009..00000000000
--- a/testing/lua-mimetypes/APKBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
-pkgname=lua-mimetypes
-_rockname="${pkgname#lua-}"
-pkgver=1.0.0
-pkgrel=1
-pkgdesc="A MIME type database for Lua. You can use this in servers and the like to check the MIME types of files"
-url="https://bitbucket.org/leafstorm/lua-mimetypes"
-license="MIT"
-arch="noarch"
-makedepends="luarocks"
-checkdepends="luajit"
-_commithash="ef4ee2e81596" # v1.0.0 with updated rockspec
-source="$_rockname-$pkgver.tar.gz::https://bitbucket.org/leafstorm/lua-mimetypes/get/$_commithash.tar.gz"
-builddir="$srcdir/leafstorm-$pkgname-$_commithash"
-
-_luaversions="5.1 5.2 5.3"
-for _v in $_luaversions; do
- makedepends="$makedepends lua$_v-dev luarocks$_v"
- checkdepends="$checkdepends lua$_v"
- subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
-done
-
-build() {
- local lver; for lver in $_luaversions; do
- msg "Building for Lua $lver..."
-
- luarocks-$lver \
- --deps-mode=none \
- LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
- LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
- make --tree="./build" \
- "rockspecs/$_rockname-$pkgver-1.rockspec"
-
- rm "./build/lib/luarocks/rocks-$lver/manifest"
- done
-}
-
-check() {
- local lver; for lver in $_luaversions jit; do
- msg "Testing on lua$lver..."
- lua$lver "test.lua"
- 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
- mkdir -p "$subpkgdir/usr/${path%/*}"
- mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
- done
-}
-sha512sums="605618a04d0f8fa13d4077ed0f0a1e7846a8c028a7dc7125c3576fb6214863557cf18e4ee0318fba7de367e90e346313e1a25a03db8049ef7aa4cd2747614811 mimetypes-1.0.0.tar.gz"
diff --git a/testing/lua-net-url/APKBUILD b/testing/lua-net-url/APKBUILD
deleted file mode 100644
index c37a7b3433f..00000000000
--- a/testing/lua-net-url/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
-pkgname=lua-net-url
-_rockname=${pkgname#lua-}
-pkgver=0.9
-pkgrel=0
-pkgdesc="URL and Query string parser, builder, normalizer for Lua"
-url="https://github.com/golgote/neturl"
-license="MIT"
-arch="noarch"
-makedepends="luarocks"
-subpackages="${pkgname}-doc"
-options="!check" #test dependencies not available
-source="${_rockname}-${pkgver}.tar.gz::https://github.com/golgote/neturl/archive/${pkgver}-1.tar.gz"
-builddir="${srcdir}/neturl-${pkgver}-1"
-
-_luaversions="5.1 5.2 5.3"
-for _luaversion in $_luaversions; do
- makedepends="${makedepends} lua${_luaversion}-dev"
- subpackages="${subpackages} lua${_luaversion}-${_rockname}:_subpackage"
-done
-
-build() {
- for _luaversion in ${_luaversions}; do
- msg "Building for Lua ${_luaversion}"
- "luarocks-${_luaversion}" \
- CC="$CC" \
- CFLAGS="$CFLAGS -fPIC" \
- LUA_INCDIR="$(pkg-config --variable=includedir "lua${_luaversion}")" \
- LUA_LIBDIR="$(pkg-config --variable=libdir "lua${_luaversion}")" \
- LUA_VERSION="${_luaversion}" \
- make --tree="./build-${_luaversion}" \
- "rockspec/${_rockname}-${pkgver}-"*".rockspec"
- done
-}
-
-package() {
- mkdir -p "${pkgdir}/usr/share/doc/${pkgname}/"
- cp -r "docs/" "${pkgdir}/usr/share/doc/${pkgname}/"
-}
-
-_subpackage() {
- _luaversion="${subpkgname%-${_rockname}}"
- _luaversion="${_luaversion#lua*}"
- pkgdesc="${pkgdesc} - for Lua ${_luaversion}"
- depends="${depends} lua${_luaversion}"
- install_if="lua${_luaversion} ${pkgname}=${pkgver}-r${pkgrel}"
-
- for _luascript in "${builddir}/build-${_luaversion}/share/lua/${_luaversion}/${_rockname%-url}/"*.lua; do
- install -D -m 644 \
- -t "${subpkgdir}/usr/share/lua/${_luaversion}/${_rockname%-url}" \
- "${_luascript}"
- done
-}
-
-sha512sums="c9a9742d3158e81edc20a972764dc8e85721f9cfa37a430ffce519db9ea3293adc3124f95aa27c380f55eeae36ef398f6c78df285a02eb0896683f53ca369f8e net-url-0.9.tar.gz"
diff --git a/testing/lua-pgmoon/APKBUILD b/testing/lua-pgmoon/APKBUILD
deleted file mode 100644
index c06c12be926..00000000000
--- a/testing/lua-pgmoon/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
-pkgname=lua-pgmoon
-_rockname="${pkgname#lua-}"
-pkgver=1.10.0
-pkgrel=1
-pkgdesc="A pure Lua Postgres driver for use in OpenResty & more"
-url="https://github.com/leafo/pgmoon"
-license="MIT"
-arch="all"
-depends="lua-bitop lua-lpeg"
-makedepends="luarocks"
-options="!check" # Test suite is broken
-source="$_rockname-$pkgver.tar.gz::https://github.com/leafo/$_rockname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_rockname-$pkgver"
-
-_luaversions="5.1 5.2 5.3"
-for _v in $_luaversions; do
- makedepends="$makedepends lua$_v-dev luarocks$_v"
- subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
-done
-
-build() {
- local lver; for lver in $_luaversions; do
- msg "Building for Lua $lver..."
-
- luarocks-$lver \
- --deps-mode=none \
- LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
- LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
- make --tree="./build" \
- "$_rockname-dev-1.rockspec"
-
- rm "./build/lib/luarocks/rocks-$lver/manifest"
- 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
- mkdir -p "$subpkgdir/usr/${path%/*}"
- mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
- done
-}
-sha512sums="aa37e57286f1dde1fb475e7c86ccd6d2830cd7246e8ffaa1182b7e0bc65dad4bc84bd28bd161afeef06fbb1b36d734bb3c3cdc22217229b90875a61d1246336a pgmoon-1.10.0.tar.gz"
diff --git a/testing/lua-resty-openssl/APKBUILD b/testing/lua-resty-openssl/APKBUILD
new file mode 100644
index 00000000000..e2a5b4f9f93
--- /dev/null
+++ b/testing/lua-resty-openssl/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=lua-resty-openssl
+pkgver=0.8.22
+pkgrel=0
+pkgdesc="FFI-based OpenSSL binding for OpenResty"
+url="https://github.com/fffonion/lua-resty-openssl"
+# ppc64le, riscv64: no luajit/openresty
+# armhf, armv7, s390x, x86: failing tests
+arch="aarch64 x86_64"
+license="BSD-2-Clause"
+depends="
+ libcrypto3
+ libssl3
+ luajit
+ "
+checkdepends="
+ bash
+ openresty
+ perl-test-harness-utils
+ perl-test-nginx
+ "
+source="https://github.com/fffonion/lua-resty-openssl/archive/refs/tags/$pkgver/lua-resty-openssl-$pkgver.tar.gz"
+
+check() {
+ prove -r t
+}
+
+package() {
+ mkdir -p "$pkgdir/usr/share/lua/common"
+ cp -r ./lib/resty "$pkgdir/usr/share/lua/common"
+}
+
+sha512sums="
+02d9542d716a9dd9c319a2cb5228b0461dd5c8fee9650e7f87f3c8f4c115677fcb1cea208d4e4105882198b6f6a9afe8896140b6ffb6c6200701d6d4a47813cd lua-resty-openssl-0.8.22.tar.gz
+"
diff --git a/testing/lua-resty-redis/APKBUILD b/testing/lua-resty-redis/APKBUILD
index 0a76707616e..b902f843e71 100644
--- a/testing/lua-resty-redis/APKBUILD
+++ b/testing/lua-resty-redis/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=lua-resty-redis
-pkgver=0.27
-pkgrel=1
+pkgver=0.29
+pkgrel=0
pkgdesc="Lua redis client driver for the ngx_lua based on the cosocket API"
url="https://github.com/openresty/lua-resty-redis"
-arch="noarch"
+arch="noarch !riscv64 !ppc64le" # blocked by luajit
license="BSD-2-Clause"
depends="luajit"
-source="https://github.com/openresty/lua-resty-redis/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
+source="https://github.com/openresty/lua-resty-redis/archive/v$pkgver/lua-resty-redis-$pkgver.tar.gz"
options="!check" # FIXME: tests require OpenResty and additional dependencies
package() {
@@ -19,4 +19,6 @@ package() {
"$pkgdir"/usr/lib/luarocks/rocks-common/$pkgname/$pkgver-1
}
-sha512sums="cb4fb5b5bb903c8740ac5ae75960f786039406a7e9c671c758cb25aa2fc8fdfcac351db4b2aefe73f28fd89a110b85b6ef4b9c6642ae2983f67d371c99f41bd3 lua-resty-redis-0.27.tar.gz"
+sha512sums="
+f72e28de510de7b1e9760ad8936b72b83549aa85813bcd76b2b047070cbc2f8c5aab7b0ea0374640bf6bfe7e8fe93dcea5a413825d548da1671a8b643f81362e lua-resty-redis-0.29.tar.gz
+"
diff --git a/testing/lua-resty-upload/APKBUILD b/testing/lua-resty-upload/APKBUILD
index e24539c957a..6b8bc503b1c 100644
--- a/testing/lua-resty-upload/APKBUILD
+++ b/testing/lua-resty-upload/APKBUILD
@@ -1,10 +1,11 @@
# Maintainer: Pegah Bahramiani <pb.bahramiani@gmail.com>
pkgname=lua-resty-upload
-pkgver=0.10
+pkgver=0.11
pkgrel=0
pkgdesc="Streaming reader and parser for HTTP file uploading based on ngx_lua cosocket"
url="https://github.com/openresty/lua-resty-upload"
-arch="all"
+# riscv64, ppc64le: no luajit
+arch="all !riscv64 !ppc64le"
license="BSD-2-Clause"
depends="luajit"
source="https://github.com/openresty/lua-resty-upload/archive/v$pkgver/lua-resty-upload-$pkgver.tar.gz"
@@ -17,4 +18,6 @@ package() {
install -D -m 644 rock_manifest \
"$pkgdir"/usr/lib/luarocks/rocks-5.1/$pkgname/$pkgver-1
}
-sha512sums="5826780d79c6e5a3644e3d8985c4274c439df60815ae3d13d94ff66dd84328aae6786c9b5a76579ed8cfbabdef7d856e240a85a3af13c1cf03f793dff33ba068 lua-resty-upload-0.10.tar.gz"
+sha512sums="
+4aa778701dd869524cc448ae62af2efdc633215806326e8bcda094cdd7e71d4e362948412d46c5121c41c01891fa369d7d55dc67c11e1db65ea6e5e074b733ba lua-resty-upload-0.11.tar.gz
+"
diff --git a/testing/lua-xml/APKBUILD b/testing/lua-xml/APKBUILD
index 0407ea92b3c..0e57ff24bbe 100644
--- a/testing/lua-xml/APKBUILD
+++ b/testing/lua-xml/APKBUILD
@@ -13,6 +13,13 @@ checkdepends="lua-lut luajit"
source="https://github.com/lubyk/$_rockname/archive/REL-$pkgver/lua-xml-$pkgver.tar.gz"
builddir="$srcdir/$_rockname-REL-$pkgver"
+case "$CARCH" in
+ppc64le|riscv64)
+ # blocked by luajit
+ options="$options !check"
+ ;;
+esac
+
_luaversions="5.1 5.2"
for _v in $_luaversions; do
makedepends="$makedepends lua$_v-dev luarocks$_v"
diff --git a/testing/lua5.2-penlight/APKBUILD b/testing/lua5.2-penlight/APKBUILD
index a8941eaf943..79ea057a862 100644
--- a/testing/lua5.2-penlight/APKBUILD
+++ b/testing/lua5.2-penlight/APKBUILD
@@ -2,16 +2,16 @@
_luaver=5.2
pkgname=lua${_luaver}-penlight
pkgver=1.3.0
-pkgrel=0
+pkgrel=1
pkgdesc="Lua libraries for extended operations on tables, lists and strings"
-url="https://github.com/stevedonovan/Penlight"
+url="https://github.com/lunarmodules/Penlight"
arch="noarch"
license="GPL"
depends="lua${_luaver}-filesystem"
makedepends="wget"
install=
subpackages="$pkgname-doc"
-source="penlight-$pkgver.tar.gz::https://github.com/stevedonovan/Penlight/archive/$pkgver.tar.gz"
+source="penlight-$pkgver.tar.gz::https://github.com/lunarmodules/Penlight/archive/$pkgver.tar.gz"
_builddir="$srcdir"/Penlight-$pkgver
diff --git a/testing/luacov-html/APKBUILD b/testing/luacov-html/APKBUILD
new file mode 100644
index 00000000000..dce09e893e6
--- /dev/null
+++ b/testing/luacov-html/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Hani Shawa <hani.shawa@ev-box.com>
+# Maintainer: Hani Shawa <hani.shawa@ev-box.com>
+pkgname=luacov-html
+_rockname=${pkgname#lua-}
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="reporter for LuaCov that generates HTML files to visualize the code coverage"
+options="!check" # Test dependencies not available
+url="https://github.com/wesen1/luacov-html"
+license="MIT"
+arch="noarch"
+depends="luacov"
+makedepends="luarocks"
+source="$_rockname-$pkgver.tar.gz::https://github.com/wesen1/luacov-html/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_rockname-$pkgver"
+_luaversions="5.1 5.2 5.3"
+
+for _v in $_luaversions; do
+ makedepends="$makedepends lua$_v-dev luarocks$_v"
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+build() {
+ local lver; for lver in $_luaversions; do
+ msg "Building for Lua $lver..."
+
+ luarocks-$lver \
+ CC="$CC" \
+ CFLAGS="$CFLAGS -fPIC" \
+ LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
+ LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
+ make --tree=./build \
+ "$_rockname-$pkgver-"*".rockspec"
+ rm "./build/lib/luarocks/rocks-$lver/manifest"
+ 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
+ mkdir -p "$subpkgdir/usr/${path%/*}"
+ mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
+ done
+}
+
+sha512sums="
+68d108a01ba8a8d37fa6297b1663f0c04eac7d5e3161662351a0ae5a201145de4d385f9866be92cd28525b1357c832d7a6d6069ecde039d3d6e0e7b77c973d54 luacov-html-1.0.0.tar.gz
+"
diff --git a/testing/luacov/APKBUILD b/testing/luacov/APKBUILD
new file mode 100644
index 00000000000..57679265768
--- /dev/null
+++ b/testing/luacov/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Hani Shawa <hani.shawa@ev-box.com>
+# Maintainer: Hani Shawa <hani.shawa@ev-box.com>
+pkgname=luacov
+_rockname=${pkgname#lua-}
+pkgver=0.15.0
+pkgrel=0
+pkgdesc="simple coverage analysis tool for Lua scripts"
+url="https://github.com/keplerproject/luacov"
+license="MIT"
+arch="noarch"
+makedepends="luarocks"
+options="!check" # Test dependencies not available
+source="$_rockname-$pkgver.tar.gz::https://github.com/keplerproject/luacov/archive/v$pkgver.tar.gz
+reporter_fix.lua.patch
+"
+
+_luaversions="5.1 5.2 5.3 5.4"
+
+for _v in $_luaversions; do
+ makedepends="$makedepends lua$_v-dev luarocks$_v"
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+build() {
+ local lver; for lver in $_luaversions; do
+ msg "Building for Lua $lver..."
+
+ luarocks-$lver \
+ LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
+ LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
+ make --tree=./build \
+ "$_rockname-scm-1.rockspec"
+ rm "./build/lib/luarocks/rocks-$lver/manifest"
+ 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 path; for path in "lib/luarocks/rocks-$lver" "share/lua/$lver"; do
+ mkdir -p "$subpkgdir/usr/${path%/*}"
+ mv "$builddir/build/$path" "$subpkgdir/usr/$path/"
+ done
+}
+
+sha512sums="
+cab02c540aad905db1fecd7f62545157c8ff9ea82f9ea602bff7b6093e3940a3a316e212a2efe30fa2439435dae6cd4005c2ee41de6b937d3e5f447bc2128a59 luacov-0.15.0.tar.gz
+8694e1d5f72da049909d1a868c5b159721c81d20ce5cf9061069732cf6d52e24a9453ad172dec47baf605ed45a8501a7f5131d6bf7609d6b81d1e1eb451e5ce9 reporter_fix.lua.patch
+"
diff --git a/testing/luacov/reporter_fix.lua.patch b/testing/luacov/reporter_fix.lua.patch
new file mode 100644
index 00000000000..b97ccd1974e
--- /dev/null
+++ b/testing/luacov/reporter_fix.lua.patch
@@ -0,0 +1,22 @@
+diff --git a/src/luacov/reporter.lua b/src/luacov/reporter.lua
+index 0aadce1..d041d10 100644
+--- a/src/luacov/reporter.lua
++++ b/src/luacov/reporter.lua
+@@ -33,7 +33,7 @@ local function dirtree(dir)
+ entry=directory..dir_sep..entry
+ local attr=lfs.attributes(entry)
+ coroutine.yield(entry,attr)
+- if attr.mode == "directory" then
++ if attr and attr.mode == "directory" then
+ yieldtree(entry)
+ end
+ end
+@@ -130,7 +130,7 @@ function ReporterBase:new(conf)
+ local function add_empty_dir_coverage_data(directory_path)
+
+ for filename, attr in dirtree(directory_path) do
+- if attr.mode == "file" and fileMatches(filename, '.%.lua$') then
++ if attr and attr.mode == "file" and fileMatches(filename, '.%.lua$') then
+ add_empty_file_coverage_data(filename)
+ end
+ end
diff --git a/testing/luakit/APKBUILD b/testing/luakit/APKBUILD
deleted file mode 100644
index ffd4de58798..00000000000
--- a/testing/luakit/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=luakit
-pkgver=2.1
-pkgrel=2
-pkgdesc="Fast, small, webkit based browser framework extensible by Lua"
-url="https://luakit.github.io/"
-arch="all !mips !mips64 !s390x" #fixme install fails on s390x
-license="GPL-3.0-or-later"
-depends="gsettings-desktop-schemas lua5.1-filesystem"
-makedepends="webkit2gtk-dev luajit-dev"
-checkdepends="xvfb luacheck lua5.1-luassert"
-options="!check" #fixme
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/luakit/luakit/archive/$pkgver.tar.gz
- config-mk.patch
- tests.patch"
-
-build() {
- make PREFIX=/usr USE_LUAJIT=1 DEVELOPMENT_PATHS=0
-}
-
-check() {
- make run-tests
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/doc/"$pkgname"
- mv "$pkgdir"/usr/share/"$pkgname"/doc/* "$pkgdir"/usr/share/doc/"$pkgname"
- rmdir "$pkgdir"/usr/share/"$pkgname"/doc
-}
-
-sha512sums="1daee7fe4bf5fad0f2c70d714c316914c601467facafdb22e4f27c18a691e249cefd5680ede834bcc555041afdc5d7e70610e2cd5e33db1ad8d9f2fe0327ccac luakit-2.1.tar.gz
-d852a17bf202b18e75bda3885e421a957ce501ebbeb0ecd6e7a6379747e350878c9f95683a0385ce9daa719ddd02a3e5d5143ebd9ee892a469d8457e7a863b5a config-mk.patch
-6d0b3a93b7bedcdd3ebe7283d734d013aa25683a9effc841f4a57aa8f2ea34dc68dc4bd35a22436d28e4011c60243047b72ff8d81affb349912de43e1e20232f tests.patch"
diff --git a/testing/luakit/config-mk.patch b/testing/luakit/config-mk.patch
deleted file mode 100644
index 59d407891f4..00000000000
--- a/testing/luakit/config-mk.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -upr luakit-2017.08.10.orig/config.mk luakit-2017.08.10/config.mk
---- luakit-2017.08.10.orig/config.mk 2017-09-16 13:29:59.436651544 +0200
-+++ luakit-2017.08.10/config.mk 2017-09-16 13:30:42.353527111 +0200
-@@ -2,7 +2,7 @@
-
- # Compile/link options.
- CC ?= gcc
--CFLAGS += -std=gnu99 -ggdb -W -Wall -Wextra -Werror=unused-result
-+CFLAGS += -std=gnu99 -W -Wall -Wextra -Werror=unused-result
- LDFLAGS +=
- CPPFLAGS +=
-
diff --git a/testing/luakit/tests.patch b/testing/luakit/tests.patch
deleted file mode 100644
index 3d9763f0d46..00000000000
--- a/testing/luakit/tests.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- a/clib/soup.c
-+++ b/clib/soup.c
-@@ -106,7 +106,7 @@ luaH_soup_set_cookies_storage(lua_State *L)
- luaL_error(L, "cookies_storage cannot be empty");
- g_free(cookies_storage);
- cookies_storage = g_strdup(new_path);
--
-+
- if ((f = g_fopen(cookies_storage, "a")) != NULL) {
- g_chmod(cookies_storage, 0600);
- fclose(f);
---- a/lib/binds.lua
-+++ b/lib/binds.lua
-@@ -496,7 +496,7 @@ modes.add_cmds({
- callback = function (_, err)
- w:error(err)
- end,
-- })
-+ })
- else
- w:error("No argument provided")
- end
---- a/lib/help_chrome.lua
-+++ b/lib/help_chrome.lua
-@@ -27,7 +27,8 @@ local index_html_template = [==[
- </style>
- </head>
- <body>
-- <header id="page-header"><h1>Luakit Help</h1><div class="rhs">version {version} / webkit {webkitversion}</div></header>
-+ <header id="page-header"><h1>Luakit Help</h1><div
-+ class="rhs">version {version} / webkit {webkitversion}</div></header>
- <div class=content-margin>
- <h2>About Luakit</h2>
- <p>Luakit is a highly configurable, browser framework based on the <a
---- a/tests/async/test_module_binds_have_descriptions.lua
-+++ b/tests/async/test_module_binds_have_descriptions.lua
-@@ -47,6 +47,7 @@ local function add_file_error(errors, file, error, ...)
- end
-
- T.test_module_binds_have_descriptions = function ()
-+ require("newtab_chrome")
- local files = test.find_files({"lib/"}, ".+%.lua$", {"_wm%.lua$", "modes%.lua", "unique_instance%.lua"})
-
- local errors = {}
---- a/tests/lib.lua
-+++ b/tests/lib.lua
-@@ -115,7 +115,7 @@ function _M.wait(timeout)
- shared_lib.traceback = debug.traceback("",2)
-
- waiting = true
-- timeout = timeout or 200
-+ timeout = timeout or 1000
- return coroutine.yield({timeout=timeout})
- end
-
diff --git a/testing/luksmeta/APKBUILD b/testing/luksmeta/APKBUILD
new file mode 100644
index 00000000000..27d1f46a301
--- /dev/null
+++ b/testing/luksmeta/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=luksmeta
+pkgver=9
+pkgrel=0
+pkgdesc="Library for storing metadata in the LUKSv1 header"
+url="https://github.com/latchset/luksmeta"
+license="LGPL-2.0-or-later"
+arch="all"
+makedepends="autoconf automake libtool asciidoc cryptsetup-dev"
+checkdepends="bash cryptsetup"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/latchset/luksmeta/archive/v$pkgver/luksmeta-$pkgver.tar.gz
+ force-creation-of-luks1-containers-in-tests.patch
+ relax-content-tests-in-test-suite.patch
+ musl.patch
+ "
+
+prepare() {
+ default_prepare
+
+ autoreconf -fi
+}
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+874331988fe2648d4924779b348f190ed5c6e4d71da4ad027f176e3f8dcbc78fc26e9f9b8402a97437db5b884db31b72598afc70e025cd8533168a5986417a76 luksmeta-9.tar.gz
+a97a000c8bd952fb5a6569ef111bdef5acd56d75bd6bc1f3be3b44113ec6d313400961d018ebe442aa214ac6e8aba41bcce838cb5e34cacd3f84d012910ae729 force-creation-of-luks1-containers-in-tests.patch
+6821e042fcc182dbb7c534a2108d486600c87d3c30fa02491cf6cb47867de85bab6f1fdb13c701bab53a794a9d5559e78dc5a9e53cc169d8792e754dee927741 relax-content-tests-in-test-suite.patch
+aec3e5b91464a71e33ca7e53c51924cf99b5a7048923bf253c88587d607d763c6671c2fa89c21c0447020368487270dd31f65a40477d277880a9f12d6569431e musl.patch
+"
diff --git a/testing/luksmeta/force-creation-of-luks1-containers-in-tests.patch b/testing/luksmeta/force-creation-of-luks1-containers-in-tests.patch
new file mode 100644
index 00000000000..9f3cd5669cf
--- /dev/null
+++ b/testing/luksmeta/force-creation-of-luks1-containers-in-tests.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://github.com/latchset/luksmeta/pull/10
+
+From af81262c0f6e6b37e5c6b520d0fca3a9f9b6c1fc Mon Sep 17 00:00:00 2001
+From: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
+Date: Sat, 28 Sep 2019 13:24:11 +0200
+Subject: [PATCH] Force creation of LUKS1 containers in test suite
+
+Cryptsetup defaults to LUKS2 since version 2.1, make sure to create
+LUKS1 containers instead by using the "--type luks1" argument.
+---
+ test-luksmeta | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test-luksmeta b/test-luksmeta
+index fd17ead..f1e8b2e 100755
+--- a/test-luksmeta
++++ b/test-luksmeta
+@@ -11,7 +11,7 @@ function onexit() {
+ trap 'onexit' EXIT
+
+ truncate -s 4M $tmp
+-echo -n foo | cryptsetup luksFormat $tmp -
++echo -n foo | cryptsetup luksFormat --type luks1 $tmp -
+
+ ! ./luksmeta test -d $tmp
+
diff --git a/testing/luksmeta/musl.patch b/testing/luksmeta/musl.patch
new file mode 100644
index 00000000000..26eb47ab86d
--- /dev/null
+++ b/testing/luksmeta/musl.patch
@@ -0,0 +1,175 @@
+The tests use glibc's error.h, which musl libc does not implement.
+Use err.h instead.
+
+--- a/test-lm-big.c
++++ b/test-lm-big.c
+@@ -19,7 +19,7 @@
+
+ #include "test.h"
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+@@ -107,7 +107,7 @@ main(int argc, char *argv[])
+ /* Set the data. */
+ r = luksmeta_save(cd, CRYPT_ANY_SLOT, UUID, DATA, sizeof(DATA));
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "luksmeta_save()");
++ err(EXIT_FAILURE, "luksmeta_save()");
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+--- a/test-lm-init.c
++++ b/test-lm-init.c
+@@ -22,7 +22,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+
+@@ -89,11 +89,11 @@ main(int argc, char *argv[])
+ /* Test to make sure that data corruption is picked up correctly. */
+ fd = open(filename, O_RDWR | O_SYNC);
+ if (fd < 0)
+- error(EXIT_FAILURE, errno, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+ if (lseek(fd, offset + 16, SEEK_SET) == -1)
+- error(EXIT_FAILURE, errno, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+ if (write(fd, &(char) { 17 }, 1) != 1)
+- error(EXIT_FAILURE, errno, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+ close(fd);
+ assert(luksmeta_save(cd, 2, UUID, UUID, sizeof(UUID)) == -EINVAL);
+ assert(luksmeta_load(cd, 2, uuid, data, sizeof(data)) == -EINVAL);
+--- a/test-lm-one.c
++++ b/test-lm-one.c
+@@ -18,7 +18,7 @@
+ */
+
+ #include "test.h"
+-#include <error.h>
++#include <err.h>
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -44,7 +44,7 @@ main(int argc, char *argv[])
+
+ r = luksmeta_save(cd, CRYPT_ANY_SLOT, UUID, UUID, sizeof(UUID));
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ /* Test the layout state. */
+ assert(test_layout((range_t[]) {
+--- a/test-lm-two.c
++++ b/test-lm-two.c
+@@ -18,7 +18,7 @@
+ */
+
+ #include "test.h"
+-#include <error.h>
++#include <err.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+@@ -49,7 +49,7 @@ main(int argc, char *argv[])
+ /* Add one metadata. */
+ r = luksmeta_save(cd, 0, UUID0, UUID0, sizeof(UUID0));
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "luksmeta_save()");
++ err(EXIT_FAILURE, "luksmeta_save()");
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+@@ -66,7 +66,7 @@ main(int argc, char *argv[])
+ /* Add a second metadata. */
+ r = luksmeta_save(cd, 1, UUID1, UUID1, sizeof(UUID1));
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "luksmeta_save()");
++ err(EXIT_FAILURE, "luksmeta_save()");
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+--- a/test.c
++++ b/test.c
+@@ -18,7 +18,7 @@
+ */
+
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <errno.h>
+ #include <stdbool.h>
+ #include <stdio.h>
+@@ -105,7 +105,7 @@ test_hole(struct crypt_device *cd, uint32_t *offset, uint32_t *length)
+
+ payload_offset = crypt_get_data_offset(cd) * 512;
+ if (payload_offset < ALIGN(1, true))
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ for (int slot = 0; slot < crypt_keyslot_max(CRYPT_LUKS1); slot++) {
+ uint64_t off = 0;
+@@ -113,7 +113,7 @@ test_hole(struct crypt_device *cd, uint32_t *offset, uint32_t *length)
+
+ r = crypt_keyslot_area(cd, slot, &off, &len);
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ if (off + len > keyarea_end)
+ keyarea_end = off + len;
+@@ -132,23 +132,23 @@ test_format(void)
+
+ fd = mkstemp(filename);
+ if (fd < 0)
+- error(EXIT_FAILURE, errno, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ /* Create a 4MB sparse file. */
+ if (lseek(fd, 4194303, SEEK_SET) == -1)
+- error(EXIT_FAILURE, errno, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+ if (write(fd, "", 1) != 1)
+- error(EXIT_FAILURE, errno, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+ close(fd);
+
+ r = crypt_init(&cd, filename);
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ r = crypt_format(cd, CRYPT_LUKS1, "aes", "xts-plain64",
+ NULL, NULL, 32, NULL);
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ return cd;
+ }
+@@ -161,15 +161,15 @@ test_init(void)
+
+ r = crypt_init(&cd, filename);
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ r = crypt_load(cd, CRYPT_LUKS1, NULL);
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ r = luksmeta_init(cd);
+ if (r < 0)
+- error(EXIT_FAILURE, -r, "%s:%d", __FILE__, __LINE__);
++ err(EXIT_FAILURE, "%s:%d", __FILE__, __LINE__);
+
+ return cd;
+ }
diff --git a/testing/luksmeta/relax-content-tests-in-test-suite.patch b/testing/luksmeta/relax-content-tests-in-test-suite.patch
new file mode 100644
index 00000000000..563fe634517
--- /dev/null
+++ b/testing/luksmeta/relax-content-tests-in-test-suite.patch
@@ -0,0 +1,150 @@
+Patch-Source: https://github.com/latchset/luksmeta/pull/7
+
+From 9c550e0675f9fa8fe58c996660c61eca11b424d1 Mon Sep 17 00:00:00 2001
+From: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
+Date: Mon, 10 Dec 2018 14:25:33 +0100
+Subject: [PATCH] Relax content tests in test suite
+
+Starting with version 2.0.5, cryptsetup wipes the full LUKS header
+and fills unused sections with random data, this was introduced
+in commit
+
+ commit c2bce3e93ecee41f661b589ee28f112eb538259e
+ Author: Milan Broz <gmazyland@gmail.com>
+ Date: Sun Oct 14 13:11:50 2018 +0200
+
+ Wipe full header areas (including unused) during LUKS format.
+
+While this is the right thing to do, it breaks luksmeta tests. So
+relax them.
+
+Bug-Debian: https://bugs.debian.org/915256
+Resolves: https://github.com/latchset/luksmeta/issues/6
+---
+ test-lm-assumptions.c | 3 ++-
+ test-lm-big.c | 4 ++--
+ test-lm-init.c | 4 ++--
+ test-lm-one.c | 4 ++--
+ test-lm-two.c | 8 ++++----
+ 5 files changed, 12 insertions(+), 11 deletions(-)
+
+diff --git a/test-lm-assumptions.c b/test-lm-assumptions.c
+index d9ff20b..b4f293f 100644
+--- a/test-lm-assumptions.c
++++ b/test-lm-assumptions.c
+@@ -28,7 +28,8 @@ main(int argc, char *argv[])
+ /* Test the layout state. */
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- END(1024), /* Rest of the file */
++ { 1024, 3072, true }, /* Keyslot Area */
++ { 0, 0 },
+ }));
+
+ unlink(filename);
+diff --git a/test-lm-big.c b/test-lm-big.c
+index 6098e59..eb94d3b 100644
+--- a/test-lm-big.c
++++ b/test-lm-big.c
+@@ -111,7 +111,7 @@ main(int argc, char *argv[])
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ { offset + 4096, 4096 }, /* luksmeta slot 0 */
+ { offset + 8192, 4096 }, /* luksmeta slot 0 (cont) */
+@@ -127,7 +127,7 @@ main(int argc, char *argv[])
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ END(offset + 4096), /* Rest of the file */
+ }));
+diff --git a/test-lm-init.c b/test-lm-init.c
+index 2a6cb45..b16d597 100644
+--- a/test-lm-init.c
++++ b/test-lm-init.c
+@@ -57,7 +57,7 @@ main(int argc, char *argv[])
+ /* Test the layout state. */
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ END(offset + 4096), /* Rest of the file */
+ }));
+@@ -106,7 +106,7 @@ main(int argc, char *argv[])
+ assert(luksmeta_test(cd) == -ENOENT);
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ END(offset), /* Rest of the file */
+ }));
+
+diff --git a/test-lm-one.c b/test-lm-one.c
+index 8deb70a..18613e0 100644
+--- a/test-lm-one.c
++++ b/test-lm-one.c
+@@ -49,7 +49,7 @@ main(int argc, char *argv[])
+ /* Test the layout state. */
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ { offset + 4096, 4096 }, /* luksmeta slot 0 */
+ END(offset + 8192), /* Rest of the file */
+@@ -68,7 +68,7 @@ main(int argc, char *argv[])
+ /* Test the layout state. */
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ END(offset + 4096), /* Rest of the file */
+ }));
+diff --git a/test-lm-two.c b/test-lm-two.c
+index 78fea5b..9f0b1c5 100644
+--- a/test-lm-two.c
++++ b/test-lm-two.c
+@@ -53,7 +53,7 @@ main(int argc, char *argv[])
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ { offset + 4096, 4096 }, /* luksmeta slot 0 */
+ END(offset + 8192), /* Rest of the file */
+@@ -70,7 +70,7 @@ main(int argc, char *argv[])
+
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ { offset + 4096, 4096 }, /* luksmeta slot 0 */
+ { offset + 8192, 4096 }, /* luksmeta slot 1 */
+@@ -88,7 +88,7 @@ main(int argc, char *argv[])
+ assert(luksmeta_wipe(cd, 0, UUID0) == 0);
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ { offset + 4096, 4096, true }, /* luksmeta slot 0 */
+ { offset + 8192, 4096 }, /* luksmeta slot 1 */
+@@ -99,7 +99,7 @@ main(int argc, char *argv[])
+ assert(luksmeta_wipe(cd, 1, UUID1) == 0);
+ assert(test_layout((range_t[]) {
+ { 0, 1024 }, /* LUKS header */
+- { 1024, offset - 1024, true }, /* Keyslot Area */
++ { 1024, 3072, true }, /* Keyslot Area */
+ { offset, 4096 }, /* luksmeta header */
+ END(offset + 4096), /* Rest of the file */
+ }));
diff --git a/testing/lumina-desktop/APKBUILD b/testing/lumina-desktop/APKBUILD
new file mode 100644
index 00000000000..bcbe312cb04
--- /dev/null
+++ b/testing/lumina-desktop/APKBUILD
@@ -0,0 +1,176 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=lumina-desktop
+pkgver=1.6.2
+pkgrel=0
+pkgdesc="Lumina desktop environment"
+options="!check" #no tests available
+url="https://lumina-desktop.org/"
+arch="all"
+license="BSD-3-Clause"
+depends="
+ $pkgname-core
+ $pkgname-coreutils
+ $pkgname-archiver
+ $pkgname-fileinfo
+ $pkgname-fm
+ $pkgname-mediaplayer
+ $pkgname-photo
+ $pkgname-screenshot
+ $pkgname-sudo
+ $pkgname-textedit
+"
+makedepends="qt5-qtbase-dev qt5-qtx11extras-dev qt5-qtsvg-dev
+ qt5-qtmultimedia-dev qt5-qttools-dev xcb-util-wm-dev xcb-util-image-dev
+ libxcursor-dev qt5-qtdeclarative-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lumina-desktop/lumina/archive/v$pkgver.tar.gz"
+builddir="$srcdir/lumina-$pkgver"
+subpackages="$depends $pkgname-doc"
+
+build() {
+ qmake-qt5 QMAKE_CFLAGS_ISYSTEM= \
+ PREFIX=/usr \
+ LIBPREFIX=/usr/lib \
+ QT5LIBDIR=/usr/lib/qt5 \
+ L_MANDIR=/usr/share/man \
+ L_ETCDIR=/etc \
+ CONFIG+=WITH_I18N
+ make
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+core() {
+ pkgdesc="Lumina desktop core components"
+ depends="libxcb xinit fluxbox xscreensaver xterm xbacklight pavucontrol acpi dbus"
+ amove usr/share/lumina-desktop/*.ogg
+ amove usr/share/lumina-desktop/*.jpg
+ amove usr/share/lumina-desktop/*.png
+ amove usr/share/lumina-desktop/*.conf
+ amove usr/share/lumina-desktop/fluxbox*
+ amove usr/share/lumina-desktop/theme.cfg
+ amove usr/share/lumina-desktop/screensavers
+ amove usr/share/icons
+ amove etc
+
+ amove usr/share/lumina-desktop/i18n/lumina-desktop*
+ amove usr/share/xsessions/Lumina-DE.desktop
+ amove usr/bin/lumina-desktop
+
+ amove usr/share/lumina-desktop/i18n/lumina-info*
+ amove usr/share/applications/lumina-info.desktop
+ amove usr/share/applications/lumina-support.desktop
+ amove usr/bin/lumina-info
+
+ amove usr/share/lumina-desktop/i18n/lumina-open*
+ amove usr/bin/lumina-open
+
+ amove usr/bin/start-lumina-desktop
+
+ amove usr/share/lumina-desktop/menu-scripts
+ amove usr/share/lumina-desktop/themes
+ amove usr/share/lumina-desktop/globs2
+
+ amove usr/lib
+ amove usr/share/lthemeengine
+ amove usr/share/applications/lthemeengine.desktop
+ amove usr/bin/lthemeengine*
+
+ amove usr/bin/lumina-pingcursor
+}
+
+coreutils() {
+ pkgdesc="Lumina desktop core utilities"
+ depends="xrandr"
+
+ amove usr/bin/lumina-config
+ amove usr/share/applications/lumina-config.desktop
+ amove usr/share/lumina-desktop/i18n/lumina-config*
+
+ amove usr/bin/lumina-search
+ amove usr/share/applications/lumina-search.desktop
+ amove usr/share/lumina-desktop/i18n/lumina-search*
+
+ amove usr/bin/lumina-xconfig
+ amove usr/share/applications/lumina-xconfig.desktop
+ amove usr/share/lumina-desktop/i18n/lumina-xconfig*
+}
+
+archiver() {
+ pkgdesc="Lumina desktop archiver"
+ depends="tar"
+
+ amove usr/bin/lumina-archiver
+ amove usr/share/applications/lumina-archiver.desktop
+ amove usr/share/lumina-desktop/i18n/l-archiver*
+}
+
+fileinfo() {
+ pkgdesc="Lumina desktop fileinfo"
+ depends=""
+
+ amove usr/bin/lumina-fileinfo
+ amove usr/share/applications/lumina-fileinfo.desktop
+ amove usr/share/lumina-desktop/i18n/l-fileinfo*
+}
+
+fm() {
+ pkgdesc="Lumina desktop fm"
+ depends="$pkgname-archiver $pkgname-fileinfo"
+
+ amove usr/bin/lumina-fm
+ amove usr/share/applications/lumina-fm.desktop
+ amove usr/share/lumina-desktop/i18n/lumina-fm*
+}
+
+mediaplayer() {
+ pkgdesc="Lumina desktop media player"
+ depends="pianobar"
+
+ amove usr/bin/lumina-mediaplayer
+ amove usr/share/applications/lumina-mediaplayer.desktop
+ amove usr/share/applications/lumina-mediaplayer-pandora.desktop
+ amove usr/share/lumina-desktop/i18n/l-mediap*
+}
+
+photo() {
+ pkgdesc="Lumina desktop photo"
+ depends=""
+
+ amove usr/bin/lumina-photo
+ amove usr/share/applications/lumina-photo.desktop
+ amove usr/share/lumina-desktop/i18n/l-photo*
+}
+
+screenshot() {
+ pkgdesc="Lumina desktop screenshot"
+ depends=""
+
+ amove usr/bin/lumina-screenshot
+ amove usr/share/applications/lumina-screenshot.desktop
+ amove usr/share/lumina-desktop/i18n/l-screenshot*
+}
+
+sudo() {
+ pkgdesc="Lumina sudo"
+ depends=""
+
+ amove usr/bin/lumina-sudo
+}
+
+textedit() {
+ pkgdesc="Lumina desktop textedit"
+ depends=""
+
+ amove usr/bin/lumina-textedit
+ amove usr/bin/lte
+ amove usr/share/lumina-desktop/syntax_rules/*
+ amove usr/share/applications/lumina-textedit.desktop
+ amove usr/share/lumina-desktop/i18n/l-te*
+}
+
+sha512sums="
+0bebdc89644af49232ad9a0b753dee501f3e99d6615ce926c71790932d228e3c6676ca4835aeaf6badf5455102278261e48bed0d3004fe9209aca68d620cae02 lumina-desktop-1.6.2.tar.gz
+"
diff --git a/testing/lumins/APKBUILD b/testing/lumins/APKBUILD
new file mode 100644
index 00000000000..64465a8e147
--- /dev/null
+++ b/testing/lumins/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=lumins
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="tool for local file synchronizing"
+url="https://github.com/wchang22/LuminS"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" #limited by rust/cargo
+options="!check" #Test are passing but creation of apkindex crashes
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wchang22/LuminS/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/LuminS-$pkgver"
+
+
+build() {
+ cargo auditable build --release --locked
+}
+
+package() {
+ cargo auditable install --locked --path . --root=$pkgdir/usr
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="d69b63573cb2278fcd7bb952a56492fe377c2b5fc74653cccf2fa217736e86508698c605e769b261d3912e758d1f1cc8b0a9d3d0ac3a127b7a0d4764ec66a0bb lumins-0.4.0.tar.gz"
diff --git a/testing/lutgen/APKBUILD b/testing/lutgen/APKBUILD
new file mode 100644
index 00000000000..a1fa411fc40
--- /dev/null
+++ b/testing/lutgen/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Sam Nystrom <sam@samnystrom.dev>
+# Maintainer: Sam Nystrom <sam@samnystrom.dev>
+pkgname=lutgen
+pkgver=0.10.0
+pkgrel=0
+pkgdesc="Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes"
+url="https://github.com/ozwaldorf/lutgen-rs"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/ozwaldorf/lutgen-rs/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/lutgen-rs-$pkgver"
+options="net" # cargo fetch
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+ mkdir -p completions
+ ./target/release/lutgen completions bash > completions/lutgen
+ ./target/release/lutgen completions zsh > completions/_lutgen
+ ./target/release/lutgen completions fish > completions/lutgen.fish
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/lutgen "$pkgdir"/usr/bin/lutgen
+ install -Dm644 completions/lutgen "$pkgdir"/usr/share/bash-completion/completions/lutgen
+ install -Dm644 completions/_lutgen "$pkgdir"/usr/share/zsh/site-functions/_lutgen
+ install -Dm644 completions/lutgen.fish "$pkgdir"/usr/share/fish/vendor_completions.d/lutgen.fish
+}
+
+sha512sums="
+416b748ff0b0ef5f43deb446fadd14f9d370cbda62f20dcc83499bfc548073d0c7dab1e4cfbe608a797806d48eb751de447945bd3d748a8baba1928c7de068f1 lutgen-0.10.0.tar.gz
+"
diff --git a/testing/lv2/APKBUILD b/testing/lv2/APKBUILD
deleted file mode 100644
index ac3111ef02b..00000000000
--- a/testing/lv2/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=lv2
-pkgver=1.18.0
-pkgrel=0
-pkgdesc="extensible open standard for audio plugins"
-url="https://lv2plug.in"
-arch="all"
-license="ISC"
-makedepends="python3 gtk+2.0-dev libsndfile-dev gcovr"
-subpackages="$pkgname-dev"
-source="http://lv2plug.in/spec/lv2-$pkgver.tar.bz2"
-
-build() {
- python3 waf configure --prefix=/usr -T
- python3 waf build
-}
-
-check() {
- python3 waf test
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="9e8dd9c1f30371260d21efc105b1d4d4ad03d9e332d4d3877d873f20b9527bcd0e917ff23fc6e0a9cc4337bda85882c742f225f7cf4fbc8a8a0964565c91f9d9 lv2-1.18.0.tar.bz2"
diff --git a/testing/lwan/APKBUILD b/testing/lwan/APKBUILD
index 820389066af..227f88f59e0 100644
--- a/testing/lwan/APKBUILD
+++ b/testing/lwan/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=lwan
pkgver=0.1
-pkgrel=1
+pkgrel=2
pkgdesc="Experimental, scalable, high performance HTTP server"
url="https://lwan.ws"
arch="x86_64"
@@ -14,6 +14,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/lpereira/lwan/archive/v$pkgv
fix-pthread-stack-min.patch
fix-libdir.patch
fix-pkgconfig-version.patch
+ gettid.patch
"
build() {
@@ -48,7 +49,10 @@ dev() {
default_dev
}
-sha512sums="6cd42b81402f98c13f905149e515758994b15d9bda6179112c5b2ce59f63c1ce6299234ffcdd64fbc8c37e5f4fd45cfe125c80a05a09ba599158ecf26f5c511c lwan-0.1.tar.gz
+sha512sums="
+6cd42b81402f98c13f905149e515758994b15d9bda6179112c5b2ce59f63c1ce6299234ffcdd64fbc8c37e5f4fd45cfe125c80a05a09ba599158ecf26f5c511c lwan-0.1.tar.gz
e0db0c8c580543399893a86374cc2597cd8f8b358bc79334401948f0729e6da69d719388f023fd696e71d4cca3d9312d26b62b5d8aa0d44196754f8707b0bbcb fix-pthread-stack-min.patch
43e3cdbfa55357a35ea3980d18dcd1962bb850b52592f8c5d270f5f4860cde3ab1e4e371136cb59b7b3d1fa98d81c0f5de447630b40d2300953ff6b62ab1bb4a fix-libdir.patch
-b1107bcca58a6243a1e297ec86af7a5fddde856ef718425903abb6163295f6f861c7c55ec961118f087e175b23d2772cf3ce25b998bca8da3129c289ab10ad65 fix-pkgconfig-version.patch"
+b1107bcca58a6243a1e297ec86af7a5fddde856ef718425903abb6163295f6f861c7c55ec961118f087e175b23d2772cf3ce25b998bca8da3129c289ab10ad65 fix-pkgconfig-version.patch
+d1bda2e3e385fc5f9722ae37b2fe7a6f41ab9bc6bb158cc7ba68eed7dfed429b54c0fa8cd2927be4f91ed3de11209f03dd8b7bbaf203d7cc18176e2a9efe7a4e gettid.patch
+"
diff --git a/testing/lwan/gettid.patch b/testing/lwan/gettid.patch
new file mode 100644
index 00000000000..da8ab2e82e9
--- /dev/null
+++ b/testing/lwan/gettid.patch
@@ -0,0 +1,76 @@
+Patch-Source: https://github.com/lpereira/lwan/commit/870a8aa013544b944db15abf484690b5fb0b88be
+From 870a8aa013544b944db15abf484690b5fb0b88be Mon Sep 17 00:00:00 2001
+From: Leandro Pereira <leandro@hardinfo.org>
+Date: Wed, 9 Oct 2019 22:03:06 -0700
+Subject: [PATCH] Only provide gettid() implementation if not available in libc
+
+Newer glibc provides a wrapper for this syscall now.
+---
+ CMakeLists.txt | 1 +
+ src/cmake/lwan-build-config.h.cmake | 1 +
+ src/lib/missing.c | 6 +++++-
+ src/lib/missing/sys/types.h | 4 +++-
+ 4 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8266609..7028963 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -85,6 +85,7 @@ check_function_exists(readahead HAS_READAHEAD)
+ check_function_exists(mkostemp HAS_MKOSTEMP)
+ check_function_exists(clock_gettime HAS_CLOCK_GETTIME)
+ check_function_exists(pthread_barrier_init HAS_PTHREADBARRIER)
++check_function_exists(gettid HAVE_GETTID)
+
+ if (NOT HAS_CLOCK_GETTIME AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ list(APPEND ADDITIONAL_LIBRARIES rt)
+diff --git a/src/cmake/lwan-build-config.h.cmake b/src/cmake/lwan-build-config.h.cmake
+index 4708ed5..3d80c20 100644
+--- a/src/cmake/lwan-build-config.h.cmake
++++ b/src/cmake/lwan-build-config.h.cmake
+@@ -30,6 +30,7 @@
+ #cmakedefine HAS_READAHEAD
+ #cmakedefine HAS_REALLOCARRAY
+ #cmakedefine HAS_MKOSTEMP
++#cmakedefine HAVE_GETTID
+
+ /* Compiler builtins for specific CPU instruction support */
+ #cmakedefine HAVE_BUILTIN_CLZLL
+diff --git a/src/lib/missing.c b/src/lib/missing.c
+index 22dddaa..c3b5a4b 100644
+--- a/src/lib/missing.c
++++ b/src/lib/missing.c
+@@ -351,13 +351,17 @@ proc_pidpath(pid_t pid, void *buffer, size_t buffersize)
+ #endif
+
+ #if defined(__linux__)
++
++#if !defined(HAVE_GETTID)
+ #include <sys/syscall.h>
+
+-long
++pid_t
+ gettid(void)
+ {
+- return syscall(SYS_gettid);
++ return (pid_t)syscall(SYS_gettid);
+ }
++#endif
++
+ #elif defined(__FreeBSD__)
+ #include <sys/thr.h>
+
+diff --git a/src/lib/missing/sys/types.h b/src/lib/missing/sys/types.h
+index f178de8..cdc0658 100644
+--- a/src/lib/missing/sys/types.h
++++ b/src/lib/missing/sys/types.h
+@@ -22,6 +22,8 @@
+ #ifndef MISSING_SYS_TYPES_H
+ #define MISSING_SYS_TYPES_H
+
+-long gettid(void);
++#ifndef HAVE_GETTID
++pid_t gettid(void);
++#endif
+
+ #endif
diff --git a/testing/lxappearance/APKBUILD b/testing/lxappearance/APKBUILD
index 290766152ff..9a77229d5d4 100644
--- a/testing/lxappearance/APKBUILD
+++ b/testing/lxappearance/APKBUILD
@@ -1,12 +1,11 @@
# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
# Maintainer:
-
pkgname=lxappearance
pkgver=0.6.3
-pkgrel=1
+pkgrel=3
pkgdesc='Feature-rich GTK+ theme switcher'
arch='all'
-license='GPL2'
+license='GPL-2.0-or-later'
url='https://lxde.org/'
makedepends='gtk+2.0-dev intltool dbus-glib-dev'
subpackages="$pkgname-doc $pkgname-dev $pkgname-lang"
@@ -14,20 +13,19 @@ source="https://downloads.sourceforge.net/lxde/$pkgname-$pkgver.tar.xz"
builddir="$srcdir"/$pkgname-$pkgver
build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-dbus \
- || return 1
- make || return 1
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-dbus \
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="035cc952a33ac25408a4158cb4e745b17af3f29b5ceedfbe6b37235d16c801658403e862cd35ad7c8ca20fe6186fab1dce74a6e8d3b2eec12a30d532fc21662c lxappearance-0.6.3.tar.xz"
+sha512sums="
+035cc952a33ac25408a4158cb4e745b17af3f29b5ceedfbe6b37235d16c801658403e862cd35ad7c8ca20fe6186fab1dce74a6e8d3b2eec12a30d532fc21662c lxappearance-0.6.3.tar.xz
+"
diff --git a/testing/lxd-feature/APKBUILD b/testing/lxd-feature/APKBUILD
new file mode 100644
index 00000000000..cd4485e29f7
--- /dev/null
+++ b/testing/lxd-feature/APKBUILD
@@ -0,0 +1,133 @@
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=lxd-feature
+pkgver=5.20
+pkgrel=2
+pkgdesc="Container hypervisor and a new user experience for LXC - 'Feature' release channel"
+url="https://ubuntu.com/lxd"
+arch="all"
+license="AGPL-3.0"
+pkggroups="lxd"
+depends="
+ acl
+ attr
+ ca-certificates
+ cgmanager
+ dnsmasq
+ iproute2
+ iptables
+ lxc
+ netcat-openbsd
+ rsync
+ shadow-subids
+ squashfs-tools
+ tar
+ xz
+ "
+makedepends="
+ acl-dev
+ acl-static
+ autoconf
+ automake
+ dqlite-dev
+ dqlite-static
+ eudev-dev
+ gettext-dev
+ gettext-static
+ go
+ intltool
+ libcap-dev
+ libcap-static
+ libseccomp-static
+ libtool
+ libuv-dev
+ libuv-static
+ linux-headers
+ lxc-dev
+ lz4-dev
+ patchelf
+ raft-dev
+ raft-static
+ sqlite-dev
+ sqlite-static
+ tcl-dev
+ zlib-static
+ "
+subpackages="
+ $pkgname-scripts:scripts:noarch
+ $pkgname-bash-completion
+ $pkgname-openrc
+ $pkgname-doc
+ "
+install="$pkgname.pre-install"
+options="!check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/canonical/lxd/releases/download/lxd-$pkgver/lxd-$pkgver.tar.gz
+ $pkgname.confd
+ $pkgname.initd
+ "
+ldpath="/usr/lib/lxd"
+sonameprefix="$pkgname:"
+builddir="$srcdir/lxd-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export GOPATH="$builddir/_dist"
+ export CGO_LDFLAGS="-lintl $LDFLAGS"
+ export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)"
+ export GO111MODULE=on
+
+ mkdir -p bin
+ go build -v -tags "netgo libsqlite3" -ldflags '-extldflags "-static -lm -ldl -lz -lpthread -lz -lintl -lraft -ldqlite -luv -lseccomp -lcap"' -o bin/ ./lxd-migrate/...
+ go build -v -tags "agent libsqlite3" -ldflags '-extldflags "-static -lm -ldl -lz -lpthread -lz -lintl -lraft -ldqlite -luv -lseccomp -lcap"' -o bin/ ./lxd-agent/...
+
+ for tool in fuidshift lxc lxc-to-lxd lxd lxd-benchmark; do
+ go build -v -tags "libsqlite3" -o bin/ ./$tool/...
+ done
+}
+
+package() {
+ for tool in lxc fuidshift lxc-to-lxd lxd lxd-benchmark lxd-migrate lxd-agent; do
+ install -p -Dm755 "bin/$tool" "$pkgdir/usr/bin/$tool"
+ done
+ install -Dm755 bin/lxd "$pkgdir"/usr/sbin/lxd
+ install -Dm755 bin/lxc "$pkgdir"/usr/bin/lxc
+
+ patchelf --set-rpath "/usr/lib/lxd" "$pkgdir/usr/sbin/lxd"
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/lxd
+ install -Dm644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/lxd
+
+ mkdir -p "$pkgdir"/var/lib/lxd
+ chmod 755 "$pkgdir"/var/lib/lxd
+ chgrp $pkggroups "$pkgdir"/var/lib/lxd
+
+ install -Dm755 scripts/empty-lxd.sh \
+ "$pkgdir"/usr/bin/empty-lxd.sh
+
+ install -Dm644 scripts/bash/lxd-client \
+ -t "$pkgdir"/usr/share/bash-completion/completions/
+
+ mkdir -p "$pkgdir/usr/share/doc/lxd"
+ cat > "$pkgdir"/usr/share/doc/lxd/README.alpine <<-EOF
+ -----------------------------------
+ Be sure to add your local user to the lxd group.
+ EOF
+}
+
+scripts() {
+ pkgdesc="LXD scripts"
+ depends="$pkgname=$pkgver-r$pkgrel py3-lxc jq"
+
+ amove usr/bin/empty-lxd.sh
+}
+
+sha512sums="
+cf593f967d9d595577ab9b05bad99d04b9c30031461fdd4769f4746e651b3aa8e94fca53548da1aec22ff312a91ff46710ab88043a633fbd78ffafe130fed3e3 lxd-feature-5.20.tar.gz
+1bbb26a61b3812e6eb4c3cb7db6c2d9adb43195f96f317d6bba1ace6a97f1faed0677a12c3827002bc147edba9b355f0e7ead3960d254a131b25fb8c060ea8d0 lxd-feature.confd
+ebf9608ea3db25b456a557c81838c6a793adf5f490bd64e1f3dc6951bad619188cb0170f0a794b086adbd128267b4339ab46c1b6a815a4ae7f3a6566b7854d97 lxd-feature.initd
+"
diff --git a/testing/lxd-feature/lxd-feature.confd b/testing/lxd-feature/lxd-feature.confd
new file mode 100644
index 00000000000..843bd6e42b5
--- /dev/null
+++ b/testing/lxd-feature/lxd-feature.confd
@@ -0,0 +1,26 @@
+# Group which owns the shared socket, used for unpriviledged containers
+LXD_OPTIONS=" --group lxd"
+
+# Enable cpu profiling into the specified file
+#LXD_OPTIONS="${LXD_OPTIONS} --cpuprofile /tmp/lxc_cpu_profile"
+
+# Enable memory profiling into the specified file
+#LXD_OPTIONS="${LXD_OPTIONS} --memprofile /tmp/lxc_mem_profile"
+
+# Enables debug mode
+#LXD_OPTIONS="${LXD_OPTIONS} --debug"
+
+# For debugging, print a complete stack trace every n seconds
+#LXD_OPTIONS="${LXD_OPTIONS} --print-goroutines-every 5"
+
+# Enables verbose mode
+#LXD_OPTIONS="${LXD_OPTIONS} -v"
+
+# Logfile to log to
+#LXD_OPTIONS="${LXD_OPTIONS} --logfile /var/log/lxd/lxd.log"
+
+# Enables syslog logging
+#LXD_OPTIONS="${LXD_OPTIONS} --syslog"
+
+# Enable cgroup for systemd based containers.
+#systemd_container=no
diff --git a/testing/lxd-feature/lxd-feature.initd b/testing/lxd-feature/lxd-feature.initd
new file mode 100644
index 00000000000..b2ec9bbc95e
--- /dev/null
+++ b/testing/lxd-feature/lxd-feature.initd
@@ -0,0 +1,51 @@
+#!/sbin/openrc-run
+# (c) 2016 Alpine Linux
+
+command="/usr/sbin/lxd"
+command_args="${LXD_OPTIONS}"
+command_background="true"
+pidfile="/var/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+ use lxcfs
+ after firewall
+}
+
+systemd_ctr() {
+ local cmd="$1"
+ # Required for lxd to run some systemd containers
+ local cgroup=/sys/fs/cgroup/systemd
+ local mnt_opts='rw,nosuid,nodev,noexec,relatime,none,name=systemd'
+
+ case "$cmd" in
+ mount)
+ checkpath -d $cgroup
+ if ! mount | grep $cgroup >/dev/null; then
+ mount -t cgroup -o $mnt_opts cgroup $cgroup
+ fi
+ ;;
+ unmount)
+ if mount | grep $cgroup >/dev/null; then
+ umount $cgroup
+ fi
+ ;;
+ esac
+}
+
+
+start_pre() {
+ if yesno "$systemd_container"; then
+ systemd_ctr mount
+ fi
+}
+
+stop() {
+ if [ -e /var/lib/lxd/unix.socket ]; then
+ $command shutdown
+ fi
+}
+
+stop_post() {
+ systemd_ctr unmount
+}
diff --git a/testing/lxd/lxd.pre-install b/testing/lxd-feature/lxd-feature.pre-install
index 5dedf7c575c..5dedf7c575c 100644
--- a/testing/lxd/lxd.pre-install
+++ b/testing/lxd-feature/lxd-feature.pre-install
diff --git a/testing/lxd/APKBUILD b/testing/lxd/APKBUILD
deleted file mode 100644
index ee12e3fe024..00000000000
--- a/testing/lxd/APKBUILD
+++ /dev/null
@@ -1,176 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=lxd
-pkgver=4.1
-pkgrel=0
-pkgdesc="a container hypervisor and a new user experience for LXC"
-url="https://linuxcontainers.org/lxd/"
-arch="all !mips !mips64"
-license="Apache-2.0"
-depends="
- acl
- netcat-openbsd
- cgmanager
- squashfs-tools
- rsync
- shadow-uidmap
- lxc
- ip6tables
- dnsmasq
- ca-certificates
- tar
- iproute2
- xz
- "
-makedepends="
- lxc-dev
- gettext-dev
- acl-dev
- tcl-dev
- libuv-dev
- eudev-dev
- libcap-dev
- linux-headers
-
- rsync
- go
- intltool
-
- libtool
- autoconf
- automake
- patchelf
- "
-subpackages="
- $pkgname-scripts:scripts
- $pkgname-bash-completion:bashcomp:noarch
- $pkgname-openrc
- $pkgname-libs
- "
-install="$pkgname.pre-install"
-options="!check"
-source="https://linuxcontainers.org/downloads/$pkgname/$pkgname-$pkgver.tar.gz
- $pkgname.confd
- $pkgname.initd
- lxd-dont-go-get.patch
- add-missing-includes.patch
- "
-# avoid conflict with system libsqlite3.so.0 by adding a soname prefix.
-# this makes lxd-libs provide so:lxd:libsqlite3.so.0 and lxd depend on
-# so:lxd:libsqlite3.so.0.
-ldpath="/usr/lib/lxd"
-sonameprefix="$pkgname:"
-
-_project="github.com/lxc/lxd"
-
-prepare() {
- export GOPATH="$builddir/_dist"
- default_prepare
- #update_config_guess
- for p in raft sqlite dqlite; do
- cd "$GOPATH"/deps/$p
- autoreconf -i
- done
-}
-
-build() {
- export GOPATH="$builddir/_dist"
- export CGO_CFLAGS="-I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/libco/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/dqlite/include/"
- export CGO_LDFLAGS="$CGO_LDFLAGS -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/libco/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/dqlite/.libs/ -lintl"
- export LD_LIBRARY_PATH="$ldpath ${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/libco/:${GOPATH}/deps/raft/.libs/:${GOPATH}/deps/dqlite/.libs/"
-
- cd "$GOPATH"/deps/raft
- PKG_CONFIG_PATH="${GOPATH}/deps/raft/" ./configure \
- --prefix=/usr \
- --libdir=/usr/lib/lxd
- make
-
- cd "$GOPATH"/deps/libco
- make
-
- cd "$GOPATH"/deps/sqlite
- ./configure \
- --prefix=/usr \
- --enable-replication \
- --disable-amalgamation \
- --disable-tcl \
- --libdir=/usr/lib/lxd
- make
-
- cd "$GOPATH"/deps/dqlite
- PKG_CONFIG_PATH="${GOPATH}/deps/sqlite/:${GOPATH}/deps/libco/:${GOPATH}/deps/raft/" ./configure \
- --prefix=/usr \
- --libdir=/usr/lib/lxd
-
- make CFLAGS="-I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/libco/ -I${GOPATH}/deps/raft/include/" LDFLAGS="-L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/libco/ -L${GOPATH}/deps/raft/.libs/"
-
- cd "$builddir"
- go install -v -x -tags libsqlite3 $_project/lxd
- for bin in lxc fuidshift lxc-to-lxd lxd-benchmark lxd-agent lxd-p2c; do
- go install -v -x $_project/$bin
- done
-}
-
-package() {
- for r in sqlite dqlite; do
- cd "$GOPATH"/deps/$r
- make DESTDIR="$pkgdir" install
- done
-
- cp ${GOPATH}/deps/libco/libco.so* "$pkgdir"/usr/lib/lxd
- cp ${GOPATH}/deps/raft/.libs/libraft.so* "$pkgdir"/usr/lib/lxd
-
- rm $pkgdir/usr/bin/sqlite3
- rm -r $pkgdir/usr/include
-
- cd ${GOPATH}
- install -Dm755 bin/$pkgname "$pkgdir"/usr/sbin/$pkgname
- install -Dm755 bin/lxc "$pkgdir"/usr/bin/lxc
-
- patchelf --set-rpath "/usr/lib/lxd" "${pkgdir}/usr/sbin/lxd"
-
- install -Dm755 "$srcdir"/lxd.initd \
- "$pkgdir"/etc/init.d/lxd
- install -Dm644 "$srcdir"/lxd.confd \
- "$pkgdir"/etc/conf.d/lxd
-}
-
-bashcomp() {
- depends="bash"
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
- cp scripts/bash/lxd-client "$subpkgdir"/usr/share/bash-completion/completions/lxd-client
-}
-
-scripts() {
- pkgdesc="LXD scripts"
- depends="$pkgname py3-lxc"
-
- export GOPATH="$builddir/_dist"
- cd $GOPATH
-
- for tool in fuidshift lxc-to-lxd lxd-benchmark lxd-agent lxd-p2c; do
- install -Dm755 bin/$tool "$subpkgdir"/usr/bin/$tool
- done
- install -Dm755 ../scripts/empty-lxd.sh "$subpkgdir"/usr/bin/empty-lxd.sh
-}
-
-libs() {
- pkgdesc="LXD bundled libraries"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
- patchelf --set-rpath "/usr/lib/lxd" "${subpkgdir}/usr/lib/lxd/libdqlite.so"
- patchelf --set-rpath "/usr/lib/lxd" "${subpkgdir}/usr/lib/lxd/libsqlite3.so"
- rm -rf "$subpkgdir"/usr/lib/lxd/pkgconfig \
- "$subpkgdir"/usr/lib/lxd/*.a
- rm -r "$pkgdir"/etc
-}
-
-sha512sums="3662615c199c438bc0fe9bb1e63ef55eee65be41402e7046ae0c6a1272e072b3dfd61e1f377a9ddf8ebbae837c6b211866e70278023a4f3540abb657d376241f lxd-4.1.tar.gz
-bc32c71f2ce10f508433e1e4651c08c18e8a17e9419a7ce391c0f127fc7cf378c665178926b35eae8813e290d9c5eab3ceb605679fd32efdf2cf98a57cee4127 lxd.confd
-94de0c0d5ab63463a929a4151359950b1117d0ada5ccf0944311cc70c6b6d4c437ccb4158734ab35db67bfb4abc437074c3f3515be4531f63adc74da21fefb5b lxd.initd
-6bd42ac2571eb77fc3761f549bf77771fbfc4dad8934f9ccf6e421b2874ae5205345511d46f16f69b0b653e859d8019382c5da077db9cbb8149ae883d544215c lxd-dont-go-get.patch
-c9291e7df7e7d62324d6f31460268b138eaeb7928b2aceb9e1763bc123c4410557a887847e441c03efb92642a6c39c8db6557e2af6a738ac46a9df93b5ac1d3b add-missing-includes.patch"
diff --git a/testing/lxd/add-missing-includes.patch b/testing/lxd/add-missing-includes.patch
deleted file mode 100644
index fce3c9621c1..00000000000
--- a/testing/lxd/add-missing-includes.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/_dist/deps/dqlite/src/vfs.c b/_dist/deps/dqlite/src/vfs.c
-index 31e138c..c5f9e9c 100644
---- a/_dist/deps/dqlite/src/vfs.c
-+++ b/_dist/deps/dqlite/src/vfs.c
-@@ -2,6 +2,9 @@
- #include <sys/time.h>
- #include <errno.h>
-
-+#include <pthread.h>
-+#include <sys/types.h>
-+
- #include <raft.h>
-
- #include <sqlite3.h>
diff --git a/testing/lxd/lxd-dont-go-get.patch b/testing/lxd/lxd-dont-go-get.patch
deleted file mode 100644
index 1c59dcef74b..00000000000
--- a/testing/lxd/lxd-dont-go-get.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 3ff398d..92f3ba2 100644
---- a/Makefile
-+++ b/Makefile
-@@ -15,7 +15,6 @@ ifeq ($(TAG_SQLITE3),)
- exit 1
- endif
-
-- go get -t -v -d ./...
- CC=$(CC) go install -v -tags "$(TAG_SQLITE3)" $(DEBUG) ./...
- CGO_ENABLED=0 go install -v -tags netgo ./lxd-p2c
- go install -v -tags agent ./lxd-agent
-@@ -23,7 +22,6 @@ endif
-
- .PHONY: client
- client:
-- go get -t -v -d ./...
- go install -v -tags "$(TAG_SQLITE3)" $(DEBUG) ./lxc
- @echo "LXD client built successfully"
-
-@@ -110,7 +108,6 @@ deps:
-
- .PHONY: update
- update:
-- go get -t -v -d -u ./...
- @echo "Dependencies updated"
-
- .PHONY: update-protobuf
-@@ -131,7 +128,6 @@ ifeq ($(TAG_SQLITE3),)
- exit 1
- endif
-
-- go get -t -v -d ./...
- CC=$(CC) go install -v -tags "$(TAG_SQLITE3) logdebug" $(DEBUG) ./...
- @echo "LXD built successfully"
-
-@@ -142,15 +138,11 @@ ifeq ($(TAG_SQLITE3),)
- exit 1
- endif
-
-- go get -t -v -d ./...
- CC=$(CC) go install -a -v -tags "$(TAG_SQLITE3)" $(DEBUG) ./...
- @echo "LXD built successfully"
-
- .PHONY: check
- check: default
-- go get -v -x github.com/rogpeppe/godeps
-- go get -v -x github.com/tsenart/deadcode
-- go get -v -x github.com/golang/lint/golint
- go test -v -tags "$(TAG_SQLITE3)" $(DEBUG) ./...
- cd test && ./main.sh
-
-@@ -166,7 +158,6 @@ dist:
- ln -s ../../../../lxd-$(VERSION) $(TMP)/_dist/src/github.com/lxc/lxd
-
- # Download dependencies
-- cd $(TMP)/lxd-$(VERSION) && GOPATH=$(TMP)/_dist go get -t -v -d ./...
-
- # Download the cluster-enabled sqlite/dqlite
- mkdir $(TMP)/_dist/deps/
-@@ -205,7 +196,6 @@ update-po:
- done
-
- update-pot:
-- go get -v -x github.com/snapcore/snapd/i18n/xgettext-go/
- xgettext-go -o po/$(DOMAIN).pot --add-comments-tag=TRANSLATORS: --sort-output --package-name=$(DOMAIN) --msgid-bugs-address=lxc-devel@lists.linuxcontainers.org --keyword=i18n.G --keyword-plural=i18n.NG lxc/*.go lxc/*/*.go
-
- build-mo: $(MOFILES)
diff --git a/testing/lxd/lxd.confd b/testing/lxd/lxd.confd
deleted file mode 100644
index 68a521a1c11..00000000000
--- a/testing/lxd/lxd.confd
+++ /dev/null
@@ -1,23 +0,0 @@
-# Group which owns the shared socket, used for unpriviledged containers
-#LXD_OPTIONS=" --group lxd"
-
-# Enable cpu profiling into the specified file
-#LXD_OPTIONS="${LXD_OPTIONS} --cpuprofile /tmp/lxc_cpu_profile"
-
-# Enable memory profiling into the specified file
-#LXD_OPTIONS="${LXD_OPTIONS} --memprofile /tmp/lxc_mem_profile"
-
-# Enables debug mode
-#LXD_OPTIONS="${LXD_OPTIONS} --debug"
-
-# For debugging, print a complete stack trace every n seconds
-#LXD_OPTIONS="${LXD_OPTIONS} --print-goroutines-every 5"
-
-# Enables verbose mode
-#LXD_OPTIONS="${LXD_OPTIONS} -v"
-
-# Logfile to log to
-#LXD_OPTIONS="${LXD_OPTIONS} --logfile /var/log/lxd/lxd.log"
-
-# Enables syslog logging
-#LXD_OPTIONS="${LXD_OPTIONS} --syslog"
diff --git a/testing/lxd/lxd.initd b/testing/lxd/lxd.initd
deleted file mode 100644
index 6020f85b350..00000000000
--- a/testing/lxd/lxd.initd
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/sbin/openrc-run
-# (c) 2016 Alpine Linux
-
-command="/usr/sbin/lxd"
-command_args="${LXD_OPTIONS}"
-command_background="true"
-pidfile="/var/run/${RC_SVCNAME}.pid"
-
-depend() {
- need net
- use lxcfs
- after firewall
-}
diff --git a/testing/lxqt-build-tools/APKBUILD b/testing/lxqt-build-tools/APKBUILD
deleted file mode 100644
index 3af9cae52be..00000000000
--- a/testing/lxqt-build-tools/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=lxqt-build-tools
-pkgver=0.7.0
-pkgrel=0
-pkgdesc="Various packaging tools and scripts for LXQt applications"
-url="https://lxqt.org/"
-options="!check" # No testsuite
-arch="noarch"
-license="BSD-3-Clause"
-makedepends="cmake qt5-qtbase-dev glib-dev"
-source="https://github.com/lxde/lxqt-build-tools/releases/download/$pkgver/lxqt-build-tools-$pkgver.tar.xz"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- $CMAKE_CROSSOPTS .
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"/usr/lib
- mv "$pkgdir"/usr/share/cmake "$pkgdir"/usr/lib
-}
-
-sha512sums="7b6fd30e6ae8355ae36be55f8f7d47d78f507c11ebd9cbdd1d2ce5f14db68b845ad0bb8ca05fa1122bfd4c41f6dc792dff5100dcb8e61167517c3704527c7cde lxqt-build-tools-0.7.0.tar.xz"
diff --git a/testing/lychee/APKBUILD b/testing/lychee/APKBUILD
new file mode 100644
index 00000000000..76d5461e1ce
--- /dev/null
+++ b/testing/lychee/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=lychee
+pkgver=0.14.3
+pkgrel=0
+pkgdesc="Fast, async, resource-friendly link checker written in Rust"
+url=https://lychee.cli.rs
+# !s390x !armhf !riscv64: openssl fails to build
+arch="all !s390x !armhf !riscv64"
+license="MIT OR Apache-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ perl
+ make
+ pkgconf
+ "
+subpackages="$pkgname-doc"
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lycheeverse/lychee/archive/v$pkgver/lychee-$pkgver.tar.gz
+ fix-ssl-certificate-tests.patch::https://github.com/lycheeverse/lychee/commit/381d368fbfd773fa07b62e32dc51d38a888ea873.patch"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --features vendored-openssl
+}
+
+check() {
+ cargo test --features vendored-openssl -- --test-threads 1
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE-MIT -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+aa2ede6734b0aff9775347b72cb51b914f6387bb42463f604ab8d6f661944600bb5a856145c0820a5ac692464a738aced0571cdce44a6a33a6d94240bbdbfc34 lychee-0.14.3.tar.gz
+f1591f6316257095924ca3ff2609ad0a34e2ee86f34b9e00ba607e0591e3ad61b48998d8773ee442e7dbe01028d11a35d74a812a4e4bbbfb34b359717ec1dda1 fix-ssl-certificate-tests.patch
+"
diff --git a/testing/lynis/APKBUILD b/testing/lynis/APKBUILD
index e9bc6f01f3e..07d4c00071b 100644
--- a/testing/lynis/APKBUILD
+++ b/testing/lynis/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=lynis
-pkgver=2.7.5
+pkgver=3.1.1
pkgrel=0
pkgdesc="Security and system auditing tool"
url="https://cisofy.com/lynis/"
@@ -10,7 +10,7 @@ license="GPL-3.0-or-later"
depends="bash"
options="!check" # no testsuit
subpackages="$pkgname-doc
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-bash-completion
"
source="$pkgname-$pkgver.tar.gz::https://cisofy.com/files/lynis-$pkgver.tar.gz
$pkgname.cron"
@@ -23,22 +23,18 @@ package() {
install -Dm755 "$builddir/$pkgname" "$pkgdir/usr/sbin/$pkgname"
install -Dm600 "$builddir/default.prf" "$pkgdir/etc/$pkgname/default.prf"
- install -Dm600 "$srcdir/$pkgname.cron" "$pkgdir"/etc/periodic/daily/$pkgname
+ install -Dm755 "$srcdir/$pkgname.cron" "$pkgdir"/etc/periodic/daily/$pkgname
# lynis-doc
install -Dm644 CHANGELOG.md FAQ README -t "$pkgdir/usr/share/doc/$pkgname/"
install -Dm644 "$builddir/lynis.8" "$pkgdir/usr/share/man/man8/lynis.8"
-}
-
-bashcomp() {
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+ install -Dm644 "$builddir/extras/bash_completion.d/lynis" \
+ "$pkgdir/usr/share/bash-completion/completions/lynis"
- mkdir -p "$subpkgdir"/usr/share/bash-completion/completions/
- install -Dm644 "$builddir/extras/bash_completion.d/lynis" \
- "$subpkgdir/usr/share/bash-completion/completions/lynis"
}
-sha512sums="0ec814cb65252e3e8a44013ad0902e188a4825c521d47280586c0dd9924dfb7b79cce9797055ab7b7be59dacc111607d114175e0a793844227eadda76f68980b lynis-2.7.5.tar.gz
-1cdaaee433912c2ccdec8ad7c9b88be55fe3f1d68e2fca79cc6e0e10112d465a70cfbe0a049623437f604bfc9793e0d29b709e035cbf710d4d38ba48acc5355f lynis.cron"
+sha512sums="
+c37366154e03a661a7e995d14c651d5503c7189f50edfd194d8b7034e001b9610bfe79917221156ab3607f7c348625ea956fb0acb46a6c7e64a7d189dbcfd4ee lynis-3.1.1.tar.gz
+1cdaaee433912c2ccdec8ad7c9b88be55fe3f1d68e2fca79cc6e0e10112d465a70cfbe0a049623437f604bfc9793e0d29b709e035cbf710d4d38ba48acc5355f lynis.cron
+"
diff --git a/testing/lyrebird/APKBUILD b/testing/lyrebird/APKBUILD
new file mode 100644
index 00000000000..8a161ec2e15
--- /dev/null
+++ b/testing/lyrebird/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Katie Holly <holly@fuslvz.ws>
+# Maintainer: Katie Holly <holly@fuslvz.ws>
+pkgname=lyrebird
+pkgver=0.1.0
+pkgrel=4
+pkgdesc="pluggable transport proxy for Tor, implementing obfs4"
+url="https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird"
+arch="all"
+license="BSD-3-Clause"
+makedepends="go"
+source="$pkgname-$pkgver.tar.bz2::https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/-/archive/lyrebird-$pkgver/lyrebird-lyrebird-$pkgver.tar.bz2"
+builddir="$srcdir/lyrebird-lyrebird-$pkgver"
+
+# it used to be named this upstream
+provides="obfs4proxy=$pkgver-r$pkgrel"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o lyrebird ./cmd/lyrebird
+}
+
+check() {
+ go test -short ./...
+}
+
+package() {
+ install -Dm755 lyrebird -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+f9b8686d1c5f9ddb41a255a1a8954e05cefd50523ada7360432b456c62475ba606872df407ba8ebd7714d4f185eef0efae63e3e53c5c1c18fd323a97912f951e lyrebird-0.1.0.tar.bz2
+"
diff --git a/testing/lzbench/APKBUILD b/testing/lzbench/APKBUILD
deleted file mode 100644
index a0251274026..00000000000
--- a/testing/lzbench/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=lzbench
-pkgver=1.8
-pkgrel=0
-pkgdesc="lzbench is an in-memory benchmark of open-source LZ77/LZSS/LZMA compressors"
-url="https://github.com/inikep/lzbench"
-arch="all !x86 !s390x !mips !mips64"
-license="GPL zlib MIT Unlicense BSD Apache-2.0 CDDL CC0 custom"
-options="!check" # No test suite from upstream
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/inikep/lzbench/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver/"
-
-build() {
- make
-}
-
-package() {
- install -Dm 755 lzbench "$pkgdir"/usr/bin/lzbench
-
- install -Dm 644 -t "$pkgdir"/usr/share/doc/$pkgname/ README.md
-}
-
-sha512sums="3fbbc95159aa99844039ccf45fecf7a1637bb049a87542eb942a849234d753907c1f78f7fe3776855a282bc0cb1f363d26ca6dae4bc0d16592adc0853c977d16 lzbench-1.8.tar.gz"
diff --git a/testing/lzfse/APKBUILD b/testing/lzfse/APKBUILD
new file mode 100644
index 00000000000..72d4d870302
--- /dev/null
+++ b/testing/lzfse/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=lzfse
+pkgver=1.0
+pkgrel=0
+pkgdesc="lzfse compression library and command line tool"
+url="https://github.com/lzfse/lzfse"
+arch="all !s390x" # test fails on s390x
+license="BSD-3-Clause"
+makedepends="cmake"
+subpackages="$pkgname-dev"
+source="https://github.com/lzfse/lzfse/archive/refs/tags/lzfse-$pkgver.tar.gz"
+builddir="$srcdir/"$pkgname-$pkgname-$pkgver
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+9d7ca44e6d3d2bdf4b82b0eb66c14922369b8b6fe2cf891187a77c6708b8d26c2c1b2ccddec6059e85dbbbb37c497419549f02812b5f34d06238ac246a8cf912 lzfse-1.0.tar.gz
+"
diff --git a/testing/lzlib/APKBUILD b/testing/lzlib/APKBUILD
deleted file mode 100644
index 134f53f982c..00000000000
--- a/testing/lzlib/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Klemens Nanni <kl3@posteo.org>
-# Maintainer: Klemens Nanni <kl3@posteo.org>
-pkgname=lzlib
-pkgver=1.11
-pkgrel=0
-pkgdesc="Library for the lzip compression file format"
-url="http://www.nongnu.org/lzip/lzlib.html"
-arch="all"
-license="GPL-2.0-or-later"
-subpackages="$pkgname-doc $pkgname-dev"
-source="https://download.savannah.gnu.org/releases/lzip/$pkgname/$pkgname-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="5aa3ff084177efe906518724a98a78c32d1c0e02b967800a44388fc6af441de48fcc5899457913fca11fae3beb8bebc260ac447f0a336b1c14f3f13726114567 lzlib-1.11.tar.gz"
diff --git a/testing/lzop/APKBUILD b/testing/lzop/APKBUILD
deleted file mode 100644
index a68606e1cc6..00000000000
--- a/testing/lzop/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Sasha Gerrand <alpine-pkgs@sgerrand.com>
-# Maintainer: Sasha Gerrand <alpine-pkgs@sgerrand.com>
-pkgname=lzop
-pkgver=1.04
-pkgrel=0
-pkgdesc="lzop is a very fast file compressor"
-url="https://www.lzop.org/"
-arch="all"
-license="GPL-2.0-only"
-makedepends="lzo-dev"
-subpackages="$pkgname-doc"
-source="https://www.lzop.org/download/lzop-$pkgver.tar.gz"
-
-build() {
- cd "$builddir"
- ./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
-}
-
-sha512sums="5829b4495ffefab549aa697a05c536ce593c572c9eee6004460583a0090abcd317c6074c4f981dfee6be61ac8d127f02dd37053b6cb782af64db41586a8bbb6e lzop-1.04.tar.gz"
diff --git a/testing/m17n-db/APKBUILD b/testing/m17n-db/APKBUILD
new file mode 100644
index 00000000000..2774161b4f6
--- /dev/null
+++ b/testing/m17n-db/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer:
+pkgname=m17n-db
+pkgver=1.8.5
+pkgrel=0
+# the i18n/charmaps are in the glibc source
+_glibc=2.37
+pkgdesc="gnu M-text multilingualization data"
+url="https://www.nongnu.org/m17n/"
+arch="noarch"
+license="LGPL-2.1-or-later"
+# FIXME: bb awk hangs
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="mawk gettext-dev"
+subpackages="$pkgname-lang $pkgname-dev"
+source="https://download.savannah.gnu.org/releases/m17n/m17n-db-$pkgver.tar.gz
+ glibc-$_glibc.tar.xz::https://ftp.gnu.org/gnu/glibc/glibc-$_glibc.tar.xz
+ "
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --with-charmaps="$srcdir"/glibc-$_glibc/localedata/charmaps/ \
+ AWK=mawk
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ mkdir -p "$pkgdir"/usr/lib
+ mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib/
+}
+
+sha512sums="
+6c3f42072b7e0a36870fd8143fb1ac7c3efc21c41869d984dfa0cbb87eb1f9958e429f1144a975b401791f0423386a03ab02531f162496531e303d9b0e049987 m17n-db-1.8.5.tar.gz
+4fc5932f206bb1b8b54828a28af1a681616b838bbab60c81c82155f3629cbfe1301d271af65511ed917f4c6949a025429221fe6035753282f15346919f15b90c glibc-2.37.tar.xz
+"
diff --git a/testing/m17n-lib/APKBUILD b/testing/m17n-lib/APKBUILD
new file mode 100644
index 00000000000..2e30be76b13
--- /dev/null
+++ b/testing/m17n-lib/APKBUILD
@@ -0,0 +1,75 @@
+# Maintainer:
+pkgname=m17n-lib
+pkgver=1.8.4
+pkgrel=1
+pkgdesc="gnu M-text multilingualization library"
+url="https://www.nongnu.org/m17n/"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="m17n-db"
+depends_dev="
+ m17n-db-dev
+ $pkgname-tools=$pkgver-r$pkgrel
+ "
+makedepends="
+ anthy-dev
+ fontconfig-dev
+ freetype-dev
+ fribidi-dev
+ gettext-dev
+ libthai-dev
+ libx11-dev
+ libxaw-dev
+ libxft-dev
+ libxml2-dev
+ libxt-dev
+ "
+subpackages="
+ $pkgname-dev
+ libm17n-core
+ libm17n-flt
+ $pkgname-tools
+ "
+source="http://download.savannah.gnu.org/releases/m17n/m17n-lib-$pkgver.tar.gz"
+
+build() {
+ export CFLAGS="$CFLAGS -flto=auto $(pkg-config --cflags glib-2.0)"
+ export LIBS="-lintl"
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --disable-dependency-tracking \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+core() {
+ pkgdesc="$pkgdesc (-core lib)"
+
+ amove usr/lib/libm17n-core.so.*
+}
+
+flt() {
+ pkgdesc="$pkgdesc (-flt lib)"
+
+ amove usr/lib/libm17n-flt.so.*
+}
+
+tools() {
+ pkgdesc="$pkgdesc (extra tools)"
+
+ amove usr/bin
+}
+
+sha512sums="
+7e322788aed8a758a8c289112433aabccd12dacf14b247ba9060503bcc44930c9251f0c4e718987b9a151de097e72bc1e07c8096f7f4ad83a7d7183a549721d6 m17n-lib-1.8.4.tar.gz
+"
diff --git a/testing/m2r2/APKBUILD b/testing/m2r2/APKBUILD
new file mode 100644
index 00000000000..4c578870ed8
--- /dev/null
+++ b/testing/m2r2/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=m2r2
+pkgver=0.3.3
+pkgrel=2
+pkgdesc="Markdown to reStructuredText converter"
+url="https://crossnox.github.io/m2r2"
+arch="all"
+license="MIT"
+depends="python3 py3-docutils py3-mistune1 py3-setuptools py3-setuptools_scm"
+checkdepends="py3-pytest py3-six"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/CrossNox/m2r2/archive/v$pkgver.tar.gz
+ mistune1.patch
+ no-circular-import.patch
+ "
+options="!check" # fail for some reason
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+502ac414e023579590078df3cf2bc704434ae8dcfde771b1085be99347499047c7000e7b8eb8bfeedb42e0a835f1871c1f01b198318225d6ced396d2bbafde20 m2r2-0.3.3.tar.gz
+9c5e062b8bff6db108894b33971499a8d0badd187414ab5ffe40934fe7894239189e89a1aa592da428d228d640d3e4f9c10b5aa89553dafe37734b896a5c3f32 mistune1.patch
+3f6c03ac0244b9514a830449a1ac57d2cecd30b5f5c84301eb68f304d3d8e6e6287770c9ea8144c6cee9d00c21b48e6d88ace0e92e80ee460c6c6d02cb29c34f no-circular-import.patch
+"
diff --git a/testing/m2r2/mistune1.patch b/testing/m2r2/mistune1.patch
new file mode 100644
index 00000000000..28a5eaff640
--- /dev/null
+++ b/testing/m2r2/mistune1.patch
@@ -0,0 +1,82 @@
+diff --git a/m2r2.py b/m2r2.py
+index e78d969..b259970 100644
+--- a/m2r2.py
++++ b/m2r2.py
+@@ -9,7 +9,7 @@ import re
+ import sys
+ from argparse import ArgumentParser, Namespace
+
+-import mistune
++import mistune1
+ from docutils import io, nodes, statemachine, utils
+ from docutils.parsers import rst
+ from docutils.utils import column_width
+@@ -79,7 +79,7 @@ def parse_options():
+ parser.parse_known_args(namespace=options)
+
+
+-class RestBlockGrammar(mistune.BlockGrammar):
++class RestBlockGrammar(mistune1.BlockGrammar):
+ directive = re.compile(
+ r"^( *\.\..*?)\n(?=\S)",
+ re.DOTALL | re.MULTILINE,
+@@ -94,13 +94,13 @@ class RestBlockGrammar(mistune.BlockGrammar):
+ )
+
+
+-class RestBlockLexer(mistune.BlockLexer):
++class RestBlockLexer(mistune1.BlockLexer):
+ grammar_class = RestBlockGrammar
+ default_rules = [
+ "directive",
+ "oneline_directive",
+ "rest_code_block",
+- ] + mistune.BlockLexer.default_rules
++ ] + mistune1.BlockLexer.default_rules
+
+ def parse_directive(self, m):
+ self.tokens.append({"type": "directive", "text": m.group(1)})
+@@ -113,7 +113,7 @@ class RestBlockLexer(mistune.BlockLexer):
+ self.tokens.append({"type": "rest_code_block"})
+
+
+-class RestInlineGrammar(mistune.InlineGrammar):
++class RestInlineGrammar(mistune1.InlineGrammar):
+ image_link = re.compile(
+ r"\[!\[(?P<alt>.*?)\]\((?P<url>.*?)\).*?\]\((?P<target>.*?)\)"
+ )
+@@ -139,14 +139,14 @@ class RestInlineGrammar(mistune.InlineGrammar):
+ self.emphasis = re.compile(r"^\*(?P<text>(?:\*\*|[^\*])+?)\*(?!\*)") # *word*
+
+
+-class RestInlineLexer(mistune.InlineLexer):
++class RestInlineLexer(mistune1.InlineLexer):
+ grammar_class = RestInlineGrammar
+ default_rules = [
+ "image_link",
+ "rest_role",
+ "rest_link",
+ "eol_literal_marker",
+- ] + mistune.InlineLexer.default_rules
++ ] + mistune1.InlineLexer.default_rules
+
+ def __init__(self, *args, **kwargs):
+ no_underscore_emphasis = kwargs.pop("no_underscore_emphasis", False)
+@@ -197,7 +197,7 @@ class RestInlineLexer(mistune.InlineLexer):
+ return self.renderer.eol_literal_marker(marker)
+
+
+-class RestRenderer(mistune.Renderer):
++class RestRenderer(mistune1.Renderer):
+ _include_raw_html = False
+ list_indent_re = re.compile(r"^(\s*(#\.|\*)\s)")
+ indent = " " * 3
+@@ -528,7 +528,7 @@ class RestRenderer(mistune.Renderer):
+ return "\n\n"
+
+
+-class M2R(mistune.Markdown):
++class M2R(mistune1.Markdown):
+ def __init__(
+ self, renderer=None, inline=RestInlineLexer, block=RestBlockLexer, **kwargs
+ ):
diff --git a/testing/m2r2/no-circular-import.patch b/testing/m2r2/no-circular-import.patch
new file mode 100644
index 00000000000..e51424e2301
--- /dev/null
+++ b/testing/m2r2/no-circular-import.patch
@@ -0,0 +1,37 @@
+Patch-Source: https://github.com/CrossNox/m2r2/pull/22
+From 37832c0254a2413ee666a42b6906361289b50202 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20H=C3=A4ggstr=C3=B6m?=
+ <christian.haggstrom@orexplore.com>
+Date: Wed, 27 Jan 2021 14:23:25 +0100
+Subject: [PATCH] Don't try to import m2r2 during setup
+
+Don't try to import m2r2 during setup, since it expects m2r2 to be
+installed already.
+
+Fixes the following error during pip install:
+
+pkg_resources.DistributionNotFound: The 'm2r2' distribution was not found and is required by the application
+---
+ setup.py | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 4c6c913..23de72a 100644
+--- a/setup.py
++++ b/setup.py
+@@ -10,13 +10,8 @@
+ from distutils.core import setup
+
+ readme_file = path.join(path.dirname(path.abspath(__file__)), "README.md")
+-try:
+- from m2r2 import parse_from_file
+-
+- readme = parse_from_file(readme_file)
+-except ImportError:
+- with open(readme_file) as f:
+- readme = f.read()
++with open(readme_file) as f:
++ readme = f.read()
+
+
+ __version__ = "0.2.5"
diff --git a/testing/ma1sd/APKBUILD b/testing/ma1sd/APKBUILD
index e262b971710..b94026dbb99 100644
--- a/testing/ma1sd/APKBUILD
+++ b/testing/ma1sd/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
+# Maintainer:
pkgname=ma1sd
-pkgver=2.3.0
-pkgrel=0
+pkgver=2.5.0
+pkgrel=2
pkgdesc="Federated Matrix Identity Server"
url="https://github.com/ma1uta/ma1sd/"
-arch="noarch !mips !mips64" # openjdk8-jre missing
+arch="noarch !riscv64" # openjdk8-jre missing
license="AGPL-3.0-or-later"
install="$pkgname.pre-install"
-depends="openjdk8-jre"
+depends="java-jre-headless"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.tar::https://github.com/ma1uta/ma1sd/releases/download/$pkgver/ma1sd-shadow.tar
ma1sd.initd
@@ -24,6 +24,8 @@ package() {
install -Dm644 "$srcdir"/ma1sd.confd "$pkgdir"/etc/conf.d/ma1sd
}
-sha512sums="afa56c788c0ca6d4b144f20330f1e347c3f476bab8b49c4a3b1bd5892d63eaa52bff8b1d9fc0b7f609815f77e70164550c1f2b89df4c6576aefe4531b131c649 ma1sd-2.3.0.tar
+sha512sums="
+f686195ace341fbafd2877e875bc8823c5b0be9903440a8f7561dfc743b493e5aa148ada7b29f659b505ae7f6c3a02f367bb235ea65b2d48aafcc5f81b8d1e0c ma1sd-2.5.0.tar
4225641b2c7dcaa18ee5ee9a544c4299c6cb11b263da007e101f44394d90aeea86e98b273526bdf121f370d4cf60290d72a9364f953ced0ec9d5deb4da96bd13 ma1sd.initd
-7c3cef61c4d414903ea68de83127c21503875a39a5b4408747862479e8107bf3e6f454af0f1d096d5f69f3524fca9d3802e812d9e81576c271e109e048473bd5 ma1sd.confd"
+7c3cef61c4d414903ea68de83127c21503875a39a5b4408747862479e8107bf3e6f454af0f1d096d5f69f3524fca9d3802e812d9e81576c271e109e048473bd5 ma1sd.confd
+"
diff --git a/testing/macchina/APKBUILD b/testing/macchina/APKBUILD
new file mode 100644
index 00000000000..37e43719e6e
--- /dev/null
+++ b/testing/macchina/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Jakub Panek <me@panekj.dev>
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+pkgname=macchina
+pkgver=6.1.8
+pkgrel=1
+pkgdesc="System information fetcher, with an (unhealthy) emphasis on performance"
+url="https://github.com/Macchina-CLI/macchina"
+# arm: needs https://github.com/Macchina-CLI/libmacchina/commit/1afd21de2d38b82cb2821259e260fcfc8d0cabc0
+arch="all !armhf !armv7 !x86 !s390x !riscv64" # s390x and riscv64 blocked by cargo
+license="MIT"
+makedepends="cargo sqlite-dev cargo-auditable"
+options="net"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Macchina-CLI/macchina/archive/refs/tags/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/macchina -t "$pkgdir/usr/bin"
+
+ install -Dm644 doc/*.1 -t "$pkgdir/usr/share/man/man1"
+ install -Dm644 doc/*.7 -t "$pkgdir/usr/share/man/man7"
+
+ install -Dm644 contrib/themes/* -t "$pkgdir"/usr/share/macchina/themes
+}
+
+sha512sums="
+e91c21497745e3317c811b0edbf004087989fbd1053cb5d63c9e802e5508dec104bb0834d1719c557a45aac2870c4605d00922e0505846a414af0db93d037349 macchina-6.1.8.tar.gz
+"
diff --git a/testing/maddy/APKBUILD b/testing/maddy/APKBUILD
new file mode 100644
index 00000000000..22aac31e1b7
--- /dev/null
+++ b/testing/maddy/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=maddy
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="Composable all-in-one mail server"
+url="https://maddy.email/"
+license="GPL-3.0-or-later"
+arch="all"
+makedepends="go scdoc linux-pam-dev sqlite-dev"
+subpackages="$pkgname-openrc $pkgname-doc $pkgname-vim::noarch"
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+install="$pkgname.pre-install"
+source="https://github.com/foxcpp/maddy/archive/v$pkgver/maddy-$pkgver.tar.gz
+ $pkgname.initd
+ use-syslog.patch
+ "
+
+# secfixes:
+# 0.6.3-r0:
+# - CVE-2023-27582
+
+export GOFLAGS="$GOFLAGS -trimpath -mod=readonly -modcacherw -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ ldflags="-extldflags \"$LDFLAGS\"
+ -X github.com/foxcpp/maddy.Version=$pkgver
+ "
+
+ go build -ldflags="$ldflags" -v -o bin/maddy ./cmd/maddy
+
+ scdoc <docs/man/maddy.1.scd >maddy.1
+}
+
+check() {
+ # disable failing remote_test
+ # pam-helper fails to build due to strict-prototypes; "int run()" w/o prototype invalid
+ go test $(go list ./... | grep -Ev '(internal/target/remote|maddy-pam-helper)')
+}
+
+package() {
+ install -Dm755 bin/maddy -t "$pkgdir"/usr/bin/
+
+ install -Dm644 maddy.conf "$pkgdir"/etc/maddy/maddy.conf
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ install -Dm644 maddy.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+vim() {
+ pkgdesc="$pkgdesc (vim syntax)"
+ depends=""
+ install_if="vim $pkgname=$pkgver-r$pkgrel"
+
+ mkdir -p "$subpkgdir"/usr/share/vim
+ cp -r "$builddir"/dist/vim "$subpkgdir"/usr/share/vim/vimfiles
+}
+
+sha512sums="
+1aca8c03a232e8556655c84721211eca829174f6aa4a371fd0b15fbfdf82ab24c841338f214a742b05118a8a31d21d513bd8667513559bb32ba0870c427062fe maddy-0.7.1.tar.gz
+c521763df519f86063ecfcb65c6689df880ea6478a83584ee1a7ebbfa5d95d1adf52ea9355f918a5a1c41f78d8b3a690e049fb43faac718ca5b6c519e10b0f23 maddy.initd
+76dbb8d7f4b389f2fc1e4e9ecbf93bd7e9a002a8520d93067e39b7a8d35e74e92af7151c116d38aa9d7548747cdd107b38392204f7d3a8944914aee236f7934e use-syslog.patch
+"
diff --git a/testing/maddy/maddy.initd b/testing/maddy/maddy.initd
new file mode 100644
index 00000000000..aae69fc2fb3
--- /dev/null
+++ b/testing/maddy/maddy.initd
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="maddy"
+description="Composable all-in-one mail server"
+description_log_reopen="Reopen log files"
+description_reload="Reload some files from disk (but without main configuration)"
+
+command=/usr/bin/maddy
+command_args="run $maddy_opts"
+command_user=maddy:maddy
+capabilities="^cap_net_bind_service"
+
+# make relative paths in config relative to the state directory
+directory="/var/lib/$RC_SVCNAME"
+extra_started_commands="log_reopen reload"
+
+depend() {
+ need net localmount
+ after firewall
+}
+
+log_reopen() {
+ ebegin "Reopening log files of $name"
+ supervise-daemon $RC_SVCNAME --signal USR1
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading $name"
+ supervise-daemon $RC_SVCNAME --signal USR2
+ eend $?
+}
+
+start_pre() {
+ checkpath -d -o maddy:maddy /run/maddy
+}
diff --git a/testing/maddy/maddy.pre-install b/testing/maddy/maddy.pre-install
new file mode 100644
index 00000000000..936044c0d45
--- /dev/null
+++ b/testing/maddy/maddy.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S maddy 2>/dev/null
+adduser -S -D -h /var/lib/maddy -s /sbin/nologin -G maddy -g maddy maddy 2>/dev/null
+
+exit 0
diff --git a/testing/maddy/use-syslog.patch b/testing/maddy/use-syslog.patch
new file mode 100644
index 00000000000..c8b66b1f1bd
--- /dev/null
+++ b/testing/maddy/use-syslog.patch
@@ -0,0 +1,14 @@
+Reason: Use syslog for logging
+Upstream: No
+
+--- a/maddy.conf
++++ b/maddy.conf
+@@ -182,3 +182,8 @@ imap tls://0.0.0.0:993 tcp://0.0.0.0:143 {
+ auth &local_authdb
+ storage &local_mailboxes
+ }
++
++# ----------------------------------------------------------------------------
++# Logging
++
++log syslog
diff --git a/testing/mage/APKBUILD b/testing/mage/APKBUILD
new file mode 100644
index 00000000000..6f690acae98
--- /dev/null
+++ b/testing/mage/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Mark Pashmfouroush <mark@markpash.me>
+# Maintainer: Mark Pashmfouroush <mark@markpash.me>
+pkgname=mage
+pkgver=1.13.0
+pkgrel=15
+# Commit hash that corresponds to the version
+_commit=3504e09d7fcfdeab6e70281edce5d5dfb205f31a
+pkgdesc="make-like build tool using Go"
+url="https://magefile.org/"
+license="Apache-2.0"
+arch="all"
+depends="go"
+options="chmod-clean net"
+source="https://github.com/magefile/mage/archive/v$pkgver/mage-$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o bin/mage -ldflags="
+ -X \"github.com/magefile/mage/mage.timestamp=$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})\"
+ -X \"github.com/magefile/mage/mage.commitHash=$_commit\"
+ -X \"github.com/magefile/mage/mage.gitTag=$pkgver\"
+ "
+}
+
+check() {
+ export GOROOT=/usr/lib/go
+ go vet ./...
+ go test -v -tags CI ./...
+}
+
+package() {
+ install -Dm0755 bin/mage "$pkgdir/usr/bin/mage"
+}
+
+sha512sums="
+a393a0192ecaf8664f9dd35acfd994993ab1c028a08fb8c925fc569ce58dc9d58baeef4760b012563e3f3a6957c77d548bb33a6b577d12af2e030e2465e6d24b mage-1.13.0.tar.gz
+"
diff --git a/testing/mailctl/APKBUILD b/testing/mailctl/APKBUILD
new file mode 100644
index 00000000000..19d1b384121
--- /dev/null
+++ b/testing/mailctl/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Koni Marti <koni.marti@gmail.com>
+# Maintainer: Koni Marti <koni.marti@gmail.com>
+pkgname=mailctl
+pkgver=0.9.2
+pkgrel=0
+pkgdesc="Renewal and authorization of OAuth2 credentials"
+url="https://github.com/pdobsan/mailctl"
+arch="aarch64 x86_64" # limited by ghc
+license="BSD-3-Clause"
+depends="gnupg"
+makedepends="ghc cabal zlib-dev libffi-dev"
+subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-zsh-completion $pkgname-fish-completion"
+source="mailctl-$pkgver.tar.gz::https://github.com/pdobsan/mailctl/archive/refs/tags/$pkgver.tar.gz
+ cabal.project.freeze
+ "
+
+export CABAL_DIR="$srcdir/.cabal"
+
+cabal_update() {
+ cd $builddir
+ cabal v2-update
+ (
+ cd "$builddir"
+ cabal v2-freeze --shadow-installed-packages
+ mv cabal.project.freeze "$startdir/"
+ )
+}
+
+prepare() {
+ default_prepare
+ ln -sf "$srcdir/cabal.project.freeze" \
+ "$builddir/cabal.project.freeze"
+}
+
+build() {
+ cabal v2-update
+ cabal v2-build mailctl:exes \
+ --jobs=${JOBS:-1} \
+ --prefix=/usr \
+ --docdir=/usr/share/doc/$pkgname \
+ --sysconfdir=/etc
+}
+
+check() {
+ cabal test
+}
+
+package() {
+ mkdir -p "$pkgdir"
+
+ # See https://github.com/haskell/cabal/issues/6919#issuecomment-761563498
+ cabal list-bin mailctl:exes | xargs install -Dm755 -t "$pkgdir"/usr/bin
+ install -Dm644 README.md -t "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 configs/* -t "$pkgdir"/usr/share/$pkgname
+
+ cd completions
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+d179eca8a24c819cab7e3d7337f12b5321d69baba2e0f61613c1ad8a438261ffe54ad78b77407576c67216f83fbfcd142e5fffa918181165e326b748ffe9d4f4 mailctl-0.9.2.tar.gz
+387f833c20e9055340e1ef71a997d741e5e5acf44e47ef7ed7305fb8787b210db98f2526a972cba99c1e1b1dc0eaf2527e03e4d7fe0d7c17c3d62cc65d78403c cabal.project.freeze
+"
diff --git a/testing/mailctl/cabal.project.freeze b/testing/mailctl/cabal.project.freeze
new file mode 100644
index 00000000000..4d1f21145c3
--- /dev/null
+++ b/testing/mailctl/cabal.project.freeze
@@ -0,0 +1,203 @@
+active-repositories: hackage.haskell.org:merge
+constraints: any.Cabal ==3.8.1.0,
+ any.Cabal-syntax ==3.8.1.0,
+ any.HUnit ==1.6.2.0,
+ any.OneTuple ==0.4.1.1,
+ any.QuickCheck ==2.14.3,
+ QuickCheck -old-random +templatehaskell,
+ any.StateVar ==1.2.2,
+ any.aeson ==2.2.1.0,
+ aeson +ordered-keymap,
+ any.ansi-terminal ==1.0,
+ ansi-terminal -example,
+ any.ansi-terminal-types ==0.11.5,
+ any.appar ==0.1.8,
+ any.array ==0.5.4.0,
+ any.asn1-encoding ==0.9.6,
+ any.asn1-parse ==0.9.5,
+ any.asn1-types ==0.3.4,
+ any.assoc ==1.1,
+ assoc +tagged,
+ any.async ==2.2.5,
+ async -bench,
+ any.attoparsec ==0.14.4,
+ attoparsec -developer,
+ any.attoparsec-aeson ==2.2.0.1,
+ any.auto-update ==0.1.6,
+ any.base ==4.17.2.1,
+ any.base-orphans ==0.9.1,
+ any.base64 ==0.4.2.4,
+ any.base64-bytestring ==1.2.1.0,
+ any.basement ==0.0.16,
+ any.bifunctors ==5.6.1,
+ bifunctors +tagged,
+ any.binary ==0.8.9.1,
+ any.bitvec ==1.1.5.0,
+ bitvec +simd,
+ any.blaze-builder ==0.4.2.3,
+ any.bsb-http-chunked ==0.0.0.4,
+ any.byteorder ==1.0.4,
+ any.bytestring ==0.11.5.3,
+ any.cabal-doctest ==1.0.9,
+ any.call-stack ==0.4.0,
+ any.case-insensitive ==1.2.1.0,
+ any.cereal ==0.5.8.3,
+ cereal -bytestring-builder,
+ any.colour ==2.3.6,
+ any.comonad ==5.0.8,
+ comonad +containers +distributive +indexed-traversable,
+ any.conduit ==1.3.5,
+ any.conduit-extra ==1.3.6,
+ any.containers ==0.6.7,
+ any.contravariant ==1.5.5,
+ contravariant +semigroups +statevar +tagged,
+ any.cookie ==0.4.6,
+ any.crypton ==0.34,
+ crypton -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq +support_pclmuldq +support_rdrand -support_sse +use_target_attributes,
+ any.crypton-connection ==0.3.1,
+ any.crypton-x509 ==1.7.6,
+ any.crypton-x509-store ==1.6.9,
+ any.crypton-x509-system ==1.6.7,
+ any.crypton-x509-validation ==1.6.12,
+ any.data-default-class ==0.1.2.0,
+ any.data-fix ==0.3.2,
+ any.deepseq ==1.4.8.0,
+ any.directory ==1.3.7.1,
+ any.distributive ==0.6.2.1,
+ distributive +semigroups +tagged,
+ any.dlist ==1.0,
+ dlist -werror,
+ any.easy-file ==0.2.5,
+ any.either ==5.0.2,
+ any.exceptions ==0.10.5,
+ any.fast-logger ==3.2.2,
+ any.filepath ==1.4.2.2,
+ any.foldable1-classes-compat ==0.1,
+ foldable1-classes-compat +tagged,
+ any.generically ==0.1.1,
+ any.ghc-bignum ==1.3,
+ any.ghc-boot-th ==9.4.8,
+ any.ghc-prim ==0.9.1,
+ any.hashable ==1.4.3.0,
+ hashable +integer-gmp -random-initial-seed,
+ any.hourglass ==0.2.12,
+ any.hsc2hs ==0.68.10,
+ hsc2hs -in-ghc-tree,
+ any.hsyslog ==5.0.2,
+ hsyslog -install-examples,
+ any.http-client ==0.7.16,
+ http-client +network-uri,
+ any.http-client-tls ==0.3.6.3,
+ any.http-conduit ==2.3.8.3,
+ http-conduit +aeson,
+ any.http-date ==0.0.11,
+ any.http-types ==0.12.4,
+ any.http2 ==3.0.3,
+ http2 -devel -doc -h2spec,
+ any.indexed-traversable ==0.1.3,
+ any.indexed-traversable-instances ==0.1.1.2,
+ any.integer-conversion ==0.1.0.1,
+ any.integer-gmp ==1.1,
+ any.integer-logarithms ==1.0.3.1,
+ integer-logarithms -check-bounds +integer-gmp,
+ any.iproute ==1.7.12,
+ any.libyaml ==0.1.2,
+ libyaml -no-unicode -system-libyaml,
+ any.memory ==0.18.0,
+ memory +support_bytestring +support_deepseq,
+ any.mime-types ==0.1.2.0,
+ any.mono-traversable ==1.0.15.3,
+ any.mtl ==2.2.2,
+ any.network ==3.1.4.0,
+ network -devel,
+ any.network-byte-order ==0.1.7,
+ any.network-uri ==2.6.4.2,
+ any.old-locale ==1.0.0.7,
+ any.old-time ==1.1.0.4,
+ any.optparse-applicative ==0.18.1.0,
+ optparse-applicative +process,
+ any.parsec ==3.1.16.1,
+ any.pem ==0.2.4,
+ any.pretty ==1.1.3.6,
+ any.pretty-simple ==4.1.2.0,
+ pretty-simple -buildexample +buildexe,
+ any.prettyprinter ==1.7.1,
+ prettyprinter -buildreadme +text,
+ any.prettyprinter-ansi-terminal ==1.1.3,
+ any.primitive ==0.9.0.0,
+ any.process ==1.6.18.0,
+ any.profunctors ==5.6.2,
+ any.psqueues ==0.2.8.0,
+ any.random ==1.2.1.1,
+ any.recv ==0.1.0,
+ any.resourcet ==1.3.0,
+ any.rts ==1.0.2,
+ any.safe-exceptions ==0.1.7.4,
+ any.scientific ==0.3.7.0,
+ scientific -bytestring-builder -integer-simple,
+ any.semialign ==1.3,
+ semialign +semigroupoids,
+ any.semigroupoids ==6.0.0.1,
+ semigroupoids +comonad +containers +contravariant +distributive +tagged +unordered-containers,
+ any.simple-sendfile ==0.2.32,
+ simple-sendfile +allow-bsd -fallback,
+ any.socks ==0.6.1,
+ any.split ==0.2.4,
+ any.splitmix ==0.1.0.5,
+ splitmix -optimised-mixer,
+ any.stm ==2.5.1.0,
+ any.streaming-commons ==0.2.2.6,
+ streaming-commons -use-bytestring-builder,
+ any.strict ==0.5,
+ any.strings ==1.1,
+ any.tagged ==0.8.8,
+ tagged +deepseq +transformers,
+ any.template-haskell ==2.19.0.0,
+ any.text ==2.0.2,
+ any.text-iso8601 ==0.1,
+ any.text-short ==0.1.5,
+ text-short -asserts,
+ any.th-abstraction ==0.6.0.0,
+ any.th-compat ==0.1.4,
+ any.these ==1.2,
+ any.time ==1.12.2,
+ any.time-compat ==1.9.6.1,
+ time-compat -old-locale,
+ any.time-manager ==0.0.1,
+ any.tls ==1.9.0,
+ tls +compat -hans +network,
+ any.transformers ==0.5.6.2,
+ any.transformers-compat ==0.7.2,
+ transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
+ any.twain ==2.1.2.0,
+ any.typed-process ==0.2.11.1,
+ any.unix ==2.7.3,
+ any.unix-compat ==0.7.1,
+ unix-compat -old-time,
+ any.unix-time ==0.4.11,
+ any.unliftio ==0.2.25.0,
+ any.unliftio-core ==0.2.1.0,
+ any.unordered-containers ==0.2.19.1,
+ unordered-containers -debug,
+ any.utf8-string ==1.0.2,
+ any.uuid-types ==1.0.5.1,
+ any.vault ==0.3.1.5,
+ vault +useghc,
+ any.vector ==0.13.1.0,
+ vector +boundschecks -internalchecks -unsafechecks -wall,
+ any.vector-algorithms ==0.9.0.1,
+ vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks,
+ any.vector-stream ==0.1.0.0,
+ any.wai ==3.2.4,
+ any.wai-extra ==3.1.13.0,
+ wai-extra -build-example,
+ any.wai-logger ==2.4.0,
+ any.warp ==3.3.30,
+ warp +allow-sendfilefd -network-bytestring -warp-debug +x509,
+ any.witherable ==0.4.2,
+ any.word8 ==0.1.3,
+ any.yaml ==0.11.11.2,
+ yaml +no-examples +no-exe,
+ any.zlib ==0.6.3.0,
+ zlib -bundled-c-zlib -non-blocking-ffi -pkg-config
+index-state: hackage.haskell.org 2024-01-01T03:15:09Z
diff --git a/testing/maildir2rss/APKBUILD b/testing/maildir2rss/APKBUILD
new file mode 100644
index 00000000000..4ff7b5e9177
--- /dev/null
+++ b/testing/maildir2rss/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=maildir2rss
+pkgver=0.0.2
+pkgrel=4
+pkgdesc="Convert a maildir to a rss feed"
+url="https://git.sr.ht/~cowingtonpost/maildir2rss"
+arch="all"
+license="MPL-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~cowingtonpost/maildir2rss/archive/v$pkgver.tar.gz"
+builddir="$srcdir/maildir2rss-v$pkgver"
+options="!check" # no tests
+
+export GOPATH="$srcdir/go"
+export GOCACHE="$srcdir/go-build"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+020b83dc4f0bef57f7abed28bb0d8504b8bcdc7c8ed6dbd43b7c03634fea37bb6473a785a911eca8d8f8c106776aec6326b91b8b73267e0f6ac7b09d251a1ffd maildir2rss-0.0.2.tar.gz
+"
diff --git a/testing/mailsec-check/APKBUILD b/testing/mailsec-check/APKBUILD
new file mode 100644
index 00000000000..093e13f85a8
--- /dev/null
+++ b/testing/mailsec-check/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=mailsec-check
+pkgver=0_git20210729
+_commit=a4aa6329a96ae6403791a51ddb8ac880af5b4eb3
+pkgrel=18
+pkgdesc="Utility to analyze state of deployment of security-related email protocols"
+url="https://github.com/foxcpp/mailsec-check"
+license="MIT"
+arch="all"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/foxcpp/mailsec-check/archive/$_commit.tar.gz
+ mtasts_test.patch
+ "
+builddir="$srcdir/$pkgname-$_commit"
+
+export GOFLAGS="$GOFLAGS -trimpath -mod=readonly -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 mailsec-check "$pkgdir"/usr/bin/mailsec-check
+}
+
+sha512sums="
+3962b5575ac1dbfd5189b7d1cf7292e035082bbba8106a058d8bf3f4f6bd967ae9d55240e136390752faa87f3b5c52e1872d48db330c8792a3f3f858bf9ccba8 mailsec-check-0_git20210729.tar.gz
+683caef0c617513581a669b54738d425debbbac0e18054dd6277966aaca5d78bdff1437f0582dce853472eb35bf7800fa572e2756e3802572f15e258f53fdcb6 mtasts_test.patch
+"
diff --git a/testing/mailsec-check/mtasts_test.patch b/testing/mailsec-check/mtasts_test.patch
new file mode 100644
index 00000000000..41fd3c34700
--- /dev/null
+++ b/testing/mailsec-check/mtasts_test.patch
@@ -0,0 +1,13 @@
+readDNSRecord is undefined. Use correct function name in tests.
+
+--- a/mtasts/mtasts_test.go
++++ b/mtasts/mtasts_test.go
+@@ -57,7 +57,7 @@ func TestReadDNSRecord(t *testing.T) {
+
+ for _, c := range cases {
+ t.Run(c.value, func(t *testing.T) {
+- id, err := readDNSRecord(c.value)
++ id, err := ReadDNSRecord(c.value)
+ if c.fail {
+ if err == nil {
+ t.Errorf("expected failure for %v, but got with id=%v", c.value, id)
diff --git a/testing/mailtutan/APKBUILD b/testing/mailtutan/APKBUILD
new file mode 100644
index 00000000000..7873685dfe1
--- /dev/null
+++ b/testing/mailtutan/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mailtutan
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="An SMTP server for test and development environments written in Rust"
+url="https://github.com/mailtutan/mailtutan"
+arch="all !s390x !riscv64 !ppc64le" # builds fail due to ring (dependency), see issues 986, 1612 and 1630 respectively at https://github.com/briansmith/ring
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/mailtutan/mailtutan/archive/refs/tags/v$pkgver.tar.gz
+"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/mailtutan "$pkgdir"/usr/bin/mailtutan
+}
+
+sha512sums="
+5193a5a946a50e865de0b60930c4ba2d227e3c418d4f6d90a9eba7a184c7c09441be459e09160bf76ee943703d41a8db7986901b2a098f56a9db030c4fc342c1 mailtutan-0.3.0.tar.gz
+"
diff --git a/testing/mailutils/APKBUILD b/testing/mailutils/APKBUILD
index 0ecd6b245ad..6f61f9bc365 100644
--- a/testing/mailutils/APKBUILD
+++ b/testing/mailutils/APKBUILD
@@ -1,19 +1,27 @@
# Contributor: Shiz <hi@shiz.me>
# Maintainer: Shiz <hi@shiz.me>
pkgname=mailutils
-pkgver=3.9
+pkgver=3.17
pkgrel=0
pkgdesc="GNU swiss army knife of electronic mail handling"
url="https://mailutils.org/"
-arch="all !s390x"
+arch="all"
license="GPL-3.0-or-later"
replaces="mailx"
depends_dev="$pkgname-libs=$pkgver-r$pkgrel"
-makedepends="readline-dev libtool"
-checkdepends="autoconf"
+makedepends="
+ libunistring-dev
+ libtool
+ gnutls-dev
+ readline-dev
+ "
+checkdepends="autoconf netcat-openbsd"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-servers $pkgname-mh"
source="https://ftp.gnu.org/gnu/mailutils/mailutils-$pkgver.tar.xz
- disable-koi8-r-test.patch"
+ disable-koi8-r-test.patch
+ "
+# they pretty much all pass, but the test suite takes an hour
+options="!check"
build() {
./configure \
@@ -35,38 +43,35 @@ package() {
make DESTDIR="$pkgdir" install
cd "$pkgdir"
- rm usr/lib/charset.alias
+ # rm usr/lib/charset.alias
# No need for these to be suid/sgid root.
chmod u-s usr/sbin/mda
chmod g-s usr/bin/dotlock
}
-servers() {
- pkgdesc="$pkgdesc (servers)"
+libs() {
+ pkgdesc="$pkgdesc (libraries)"
- mkdir -p "$subpkgdir"/usr/sbin
- local server; for server in pop3d imap4d comsatd; do
- mv "$pkgdir"/usr/sbin/$server "$subpkgdir"/usr/sbin/
- done
+ amove usr/lib
}
-libs() {
- pkgdesc="$pkgdesc (libraries)"
+servers() {
+ pkgdesc="$pkgdesc (servers)"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
+ amove \
+ usr/sbin/pop3d \
+ usr/sbin/imap4d \
+ usr/sbin/comsatd
}
mh() {
pkgdesc="$pkgdesc (MH compatibility)"
- mkdir -p "$subpkgdir"/usr/bin \
- "$subpkgdir"/usr/share/$pkgname
-
- mv "$pkgdir"/usr/bin/mu-mh "$subpkgdir"/usr/bin/
- mv "$pkgdir"/usr/share/$pkgname/mh "$subpkgdir"/usr/share/$pkgname/
- rmdir -p "$pkgdir"/usr/share/$pkgname || true
+ amove usr/bin/mu-mh \
+ usr/share/mailutils/mh
}
-sha512sums="1eef9bebeeafbf974e54b87705444ee02b663a86e22442a9ec5db16ade38e6e9a3079ee8a8267393e97d6e9e477917617b2e1d57d3287ab19e4df73b66e5a8d4 mailutils-3.9.tar.xz
-d0d78bba10d3ce039bb00657a570fb9411fabf448548994860285701939ae52afd15c007daa85bb18662a67153dda86069afe240b430fbe1b28a45755108f477 disable-koi8-r-test.patch"
+sha512sums="
+e4080d9674444c3e077aa72f825a0373a4750d187a04a488449e89f6fec19d9309a118412e91745575eb90d05fa541f8d2626a8fd5e8ac10710aa1f7a0ff3193 mailutils-3.17.tar.xz
+fd628287a8b70b84e4fe477f3fed157308f1a0e803dfd65390d90a7ad40023155559b284e29ceb95dd3c854fce4e3a22a651d8de99b49db7c9d4b3682003cf2c disable-koi8-r-test.patch
+"
diff --git a/testing/mailutils/disable-koi8-r-test.patch b/testing/mailutils/disable-koi8-r-test.patch
index 803072148af..2d67861df43 100644
--- a/testing/mailutils/disable-koi8-r-test.patch
+++ b/testing/mailutils/disable-koi8-r-test.patch
@@ -1,7 +1,9 @@
musl does not support this charset.
+diff --git a/libmailutils/tests/decode2047.at b/libmailutils/tests/decode2047.at
+index d255844..806d4bd 100644
--- a/libmailutils/tests/decode2047.at
+++ b/libmailutils/tests/decode2047.at
-@@ -49,12 +49,6 @@
+@@ -50,12 +50,6 @@ TESTDEC2047([],[decode04],
[If you can read this yo ... u understand the example.
])
diff --git a/testing/makeself/APKBUILD b/testing/makeself/APKBUILD
index ae4615be557..ef870b4aa95 100644
--- a/testing/makeself/APKBUILD
+++ b/testing/makeself/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Pedro Filipe <xpecex@outlook.com>
pkgname=makeself
-pkgver=2.4.0
+pkgver=2.5.0
pkgrel=0
pkgdesc="Generate a self-extractable compressed tar archive from a directory"
options="!check" # Github tarball is incomplete
@@ -17,5 +17,7 @@ package() {
install -Dm755 makeself-header.sh "$pkgdir"/usr/bin/makeself-header
}
-sha512sums="f45e349adfb329e75f5fee0053c54e06c7004c12824c935a73a9b9895acb569b339a1acc3ee2b6d69e65cf797120e9d0502ebb6fcceb72fa166cf92f802b1eca makeself-release-2.4.0.tar.gz
-e35228c67a1953cf32af57d011808f70312d1f103505cb4393cc0c1182ed498d05c2ad2c28d8116111ed70479a4fe644b2335ab7e1bb53445a2fbf666396ebdb makeself-header_path.patch"
+sha512sums="
+cd0ce98579f00a02f9559848b39e0a6efea9df1866073d419f0b6560034cc186ed8315f8b4589e03f626b040727d9ae646bc2abaebe4f4da556b87617bdd770f makeself-release-2.5.0.tar.gz
+0d334c17f3801961cb0ed9175734bdac3bf0fdf40531707bedcd75a9e7d2fb6f5dd7e377cf31cc851000d002ea7059e65280efbcb10e923d4e02714c890ba37b makeself-header_path.patch
+"
diff --git a/testing/makeself/makeself-header_path.patch b/testing/makeself/makeself-header_path.patch
index eb0aba52340..8bf63ba03e6 100644
--- a/testing/makeself/makeself-header_path.patch
+++ b/testing/makeself/makeself-header_path.patch
@@ -1,11 +1,14 @@
+Upstream: No
+Reason: hardcoded path specific to Alpine Linux
--- ./makeself.sh
+++ ./makeself.sh
-@@ -185,7 +185,7 @@
+@@ -208,7 +208,7 @@
TAR_EXTRA=""
GPG_EXTRA=""
DU_ARGS=-ks
-HEADER=`dirname "$0"`/makeself-header.sh
+HEADER=/usr/bin/makeself-header
+ SIGNATURE=""
TARGETDIR=""
NOOVERWRITE=n
DATE=`LC_ALL=C date`
diff --git a/testing/mame/APKBUILD b/testing/mame/APKBUILD
index 5f7d117f34e..991b95baa8e 100644
--- a/testing/mame/APKBUILD
+++ b/testing/mame/APKBUILD
@@ -1,19 +1,19 @@
-# Contributor: Taner Tas <taner76@gmail.com>
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=mame
-pkgver=0.214
+pkgver=0.251
_pkgver=${pkgver/.}
+_groovymame=gm0251sr002o
pkgrel=0
pkgdesc="Multi Arcade Machine Emulator with GroovyMAME/Switchres/No-nag patchset."
-url="https://mamedev.org"
-arch="all !aarch64 !mips !mips64"
+url="https://mamedev.org/"
+# riscv64: takes forever to build and constantly fails
+# s390x: who plays an arcade emulator on a mainframe
+arch="all !s390x !riscv64"
license="GPL-2.0-or-later"
depends="$pkgname-common"
makedepends="
alsa-lib-dev
- clang-dev
coreutils
- dos2unix
expat-dev
flac-dev
fontconfig-dev
@@ -26,8 +26,9 @@ makedepends="
mesa-dev
nasm
portaudio-dev
- portmidi-dev
- python2-dev
+ portmidi-dev<=200
+ pulseaudio-dev
+ python3-dev
py3-sphinx
rapidjson-dev
sdl2-dev
@@ -39,35 +40,24 @@ subpackages="
$pkgname-common::noarch
$pkgname-arcade
$pkgname-mess
- $pkgname-data::noarch
+ $pkgname-plugins::noarch
$pkgname-doc
$pkgname-lang
$pkgname-tools
- $pkgname-plugins::noarch
+ $pkgname-data::noarch
"
-_groovymame_patch=groovymame-$pkgver.diff
source="
- https://github.com/mamedev/mame/archive/$pkgname$_pkgver.tar.gz
- $_groovymame_patch::https://drive.google.com/uc?export=download&id=11cjRkLc4hfLdCVsNCXOua2YQeM_ZD2p-
+ https://github.com/mamedev/mame/archive/mame$_pkgver.tar.gz
+ $_groovymame.patch::https://github.com/antonioginer/GroovyMAME/releases/download/$_groovymame/GroovyMAME${_groovymame:3:3}.patch
mame.ini
midi.conf
fix-musl.patch
nonag.patch
- fix-ppc64le-float.patch
"
options="!check" # No test suite
builddir="$srcdir"/$pkgname-$pkgname${pkgver/.}
-prepare() {
- cd "$builddir"
- default_prepare
- cp "$srcdir"/$_groovymame_patch . && dos2unix $_groovymame_patch
- patch -p0 < $_groovymame_patch
-}
-
build() {
- cd "$builddir"
-
case "$CARCH" in
x86|armhf|armv7) _PTR64=0;;
*) _PTR64=1;;
@@ -78,64 +68,46 @@ build() {
*) _NOASM=1 ;;
esac
- case "$CARCH" in
- s390x) _BIGENDIAN=1 ;;
- *) _BIGENDIAN=0 ;;
- esac
-
- case "$CARCH" in
- armhf)
- # clang segfaults on armhf
- true
- ;;
- *)
- # clang builds have better benchmark score and smaller size
- export OVERRIDE_CC=clang
- export OVERRIDE_CXX=clang++
- # clang workaraound
- sed -i -e 's/-flifetime-dse=1//g' scripts/genie.lua
- ;;
- esac
-
- export CFLAGS="-I/usr/include/lua5.3 -DBX_CRT_MUSL -Wno-everything"
- export CXXFLAGS="$CFLAGS"
+ export CFLAGS="$CFLAGS -I/usr/include/lua5.3 -DBX_CRT_MUSL"
+ export CXXFLAGS="$CXXFLAGS -I/usr/include/lua5.3 -DBX_CRT_MUSL"
export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
-_build="make
- TARGETOS=linux
- NOWERROR=1
- DEBUG=0
- USE_QTDEBUG=0
- VERBOSE=1
- REGENIE=1
- OSD=sdl
- SYMBOLS=0
- FORCE_DRC_C_BACKEND=
- PTR64=$_PTR64
- NOASM=$_NOASM
- BIGENDIAN=$_BIGENDIAN
- TOOLS=
- SDL_INI_PATH=/etc/mame
- USE_SYSTEM_LIB_EXPAT=1
- USE_SYSTEM_LIB_ZLIB=1
- USE_SYSTEM_LIB_JPEG=1
- USE_SYSTEM_LIB_FLAC=1
- USE_SYSTEM_LIB_LUA=1
- USE_SYSTEM_LIB_SQLITE3=1
- USE_SYSTEM_LIB_PORTAUDIO=1
- USE_SYSTEM_LIB_UV=1
- USE_SYSTEM_LIB_GLM=1
- USE_SYSTEM_LIB_RAPIDJSON=1
- USE_SYSTEM_LIB_PORTMIDI=1
- USE_SYSTEM_LIB_ASIO=0"
-
- [ -f mame ] || [ -f mame64 ] || $_build TOOLS=1 SUBTARGET=mame
- [ -f mamearcade ] || [ -f mamearcade64 ] || $_build SUBTARGET=arcade
- [ -f mess ] || [ -f mess64 ] || $_build SUBTARGET=mess
+ local build="make
+ TARGETOS=linux
+ NOWERROR=1
+ DEBUG=0
+ USE_QTDEBUG=0
+ VERBOSE=1
+ REGENIE=1
+ OSD=sdl
+ SYMBOLS=0
+ FORCE_DRC_C_BACKEND=
+ PTR64=$_PTR64
+ NOASM=$_NOASM
+ BIGENDIAN=0
+ TOOLS=
+ PYTHON_EXECUTABLE=python3
+ SDL_INI_PATH=/etc/mame
+ USE_SYSTEM_LIB_EXPAT=1
+ USE_SYSTEM_LIB_ZLIB=1
+ USE_SYSTEM_LIB_JPEG=1
+ USE_SYSTEM_LIB_FLAC=1
+ USE_SYSTEM_LIB_LUA=1
+ USE_SYSTEM_LIB_SQLITE3=1
+ USE_SYSTEM_LIB_PORTAUDIO=1
+ USE_SYSTEM_LIB_UV=1
+ USE_SYSTEM_LIB_GLM=1
+ USE_SYSTEM_LIB_RAPIDJSON=1
+ USE_SYSTEM_LIB_PORTMIDI=1
+ USE_SYSTEM_LIB_ASIO=0
+ "
+
+ [ -f mame ] || [ -f mame64 ] || $build TOOLS=1 SUBTARGET=mame
+ [ -f mamearcade ] || [ -f mamearcade64 ] || $build SUBTARGET=arcade
+ [ -f mess ] || [ -f mess64 ] || $build SUBTARGET=mess
}
package() {
- cd "$builddir"
install -D -m755 mame "$pkgdir"/usr/bin/mame || \
install -D -m755 mame64 "$pkgdir"/usr/bin/mame
install -D -m644 docs/man/mame.6 "$pkgdir"/usr/share/man/man6/mame.6
@@ -150,61 +122,34 @@ package() {
do
install -D -m644 docs/man/"$i" "$pkgdir"/usr/share/man/man1/"$i"
done
-}
-common() {
- cd "$builddir"
- pkgdesc="MAME - Common configuration files"
- install -D -m644 "$srcdir"/mame.ini "$subpkgdir"/etc/mame/mame.ini
- install -D -m644 "$srcdir"/midi.conf "$subpkgdir"/etc/modules-load.d/midi.conf
- install -d -m755 "$subpkgdir"/usr/share/$pkgname/roms
-}
+ install -D -m644 "$srcdir"/mame.ini "$pkgdir"/etc/mame/mame.ini
+ install -D -m644 "$srcdir"/midi.conf "$pkgdir"/usr/lib/modules-load.d/midi.conf
+ install -d -m755 "$pkgdir"/usr/share/mame/roms
-arcade() {
- pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
- cd "$builddir"
- install -D -m755 mamearcade "$subpkgdir"/usr/bin/mamearcade || \
- install -D -m755 mamearcade64 "$subpkgdir"/usr/bin/mamearcade
- ln -s mamearcade "$subpkgdir"/usr/bin/arcade
-}
+ install -D -m755 mamearcade "$pkgdir"/usr/bin/mamearcade || \
+ install -D -m755 mamearcade64 "$pkgdir"/usr/bin/mamearcade
+ ln -s mamearcade "$pkgdir"/usr/bin/arcade
-mess() {
- pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
- cd "$builddir"
- install -D -m755 mess "$subpkgdir"/usr/bin/mess || \
- install -D -m755 mess64 "$subpkgdir"/usr/bin/mess
-}
+ install -D -m755 mamemess "$pkgdir"/usr/bin/mess || \
+ install -D -m755 mamemess64 "$pkgdir"/usr/bin/mess
-data() {
- pkgdesc="Distribution data files for MAME"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/$pkgname
for i in artwork \
bgfx \
hash \
hlsl \
ini \
keymaps \
+ language \
+ plugins \
samples
do
- cp -r "$i" "$subpkgdir"/usr/share/$pkgname
+ cp -r "$i" "$pkgdir"/usr/share/mame
done
- rm -rf "$subpkgdir"/usr/share/$pkgname/bgfx/shaders/dx11
- rm -rf "$subpkgdir"/usr/share/$pkgname/bgfx/shaders/dx9
- rm -rf "$subpkgdir"/usr/share/$pkgname/bgfx/shaders/metal
-}
-
-plugins() {
- pkgdesc="Distribution plugins for MAME"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/$pkgname
- cp -r plugins "$subpkgdir"/usr/share/$pkgname/
-}
+ rm -rf "$pkgdir"/usr/share/mame/bgfx/shaders/dx11
+ rm -rf "$pkgdir"/usr/share/mame/bgfx/shaders/dx9
+ rm -rf "$pkgdir"/usr/share/mame/bgfx/shaders/metal
-tools() {
- pkgdesc="Tools for MAME"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/bin
for i in castool \
chdman \
floptool \
@@ -214,20 +159,67 @@ tools() {
ldverify \
romcmp
do
- install -sm755 "$i" "$subpkgdir"/usr/bin
+ install -Dm755 "$i" -t "$pkgdir"/usr/bin
done
}
+common() {
+ pkgdesc="MAME - Common configuration files"
+
+ amove etc/mame/mame.ini \
+ usr/lib/modules-load.d/midi.conf \
+ usr/share/mame/roms
+}
+
+arcade() {
+ pkgdesc="Multi Arcade Machine Emulator - Arcade specific build."
+
+ amove usr/bin/mamearcade \
+ usr/bin/arcade
+}
+
+mess() {
+ pkgdesc="Multi Arcade Machine Emulator - Mess specific build."
+
+ amove usr/bin/mess
+}
+
+data() {
+ pkgdesc="Distribution data files for MAME"
+
+ amove usr/share/mame
+}
+
+plugins() {
+ pkgdesc="Distribution plugins for MAME"
+
+ amove usr/share/mame/plugins
+}
+
+tools() {
+ pkgdesc="Tools for MAME"
+
+ amove usr/bin/castool \
+ usr/bin/chdman \
+ usr/bin/floptool \
+ usr/bin/imgtool \
+ usr/bin/jedutil \
+ usr/bin/ldresample \
+ usr/bin/ldverify \
+ usr/bin/romcmp
+}
+
lang() {
pkgdesc="Localization files for MAME"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/$pkgname
- cp -r language "$subpkgdir"/usr/share/$pkgname/
+
+ amove usr/share/mame/language
}
-sha512sums="1c5851c7a95f4f3a312b47ba182f2f8fdfd186e16593d58555c8291174c07d8f18b7c4bec8d26589755e427dc2f29c66404a2dfb4f35dca9b63292b42faaca1c mame0214.tar.gz
-a1bfe6af9ffd0f8ce0c8ee0613d74fb7f1da45b4be62e22c20c4d9a6a6bfeefb9ba41fa90157626cd8ded8aef0380963fd40dd83e6c93aa6444d7107af5be44e groovymame-0.214.diff
+
+sha512sums="
+5d613f5057cbd30e20bd47912e31db25d284b75e768228d637a740c2d5303297a0d53caff79f38b1dd3f691e1c1978f9e3c3b20158c61f71b94d879fc9c8ddf5 mame0251.tar.gz
+c99a4b0dc5eed6126a9b1237b824d16a19267b61041e90637e9566abe0ca32376478c3cead7b32388fe253b351b842cb4b873d42477fa53fc09d4164a595d06a gm0251sr002o.patch
dc008245cbea0b94f58d83e09bf5fd3fff04ac0e2f3a36b910a8b7633c5377419fc67a1fd366ef268e283f744d9a8d29928cfacf456b3edaa2d0b1a11d46a701 mame.ini
8f83ff5a916f4ff8e86c5afbdfe4475f7780bb36c20c78d6d029d0eb0dafd77b3471faa538aca384001d2049dc94c4df3429c67d743adde9fd6329c91e6d19a2 midi.conf
-75bba366aebb37de7758368fbf7418194a18d535e61c1768e6c2c5cf4b3b7a2f625ef687cb8278c03daa9e308951df4c0bdcc944dfcc4ce5305f5ac83e5e049b fix-musl.patch
-864816a55f35f9d485ccd143a1e0acd76d47239a6d5344be2a76b50fd4efbdfb4f3e45318d7dfda67faa63c0a52022f2e8313f058965a1eba60e6ca4677a519b nonag.patch
-daa915d08b61e3828b28144f1934fd1fa9fe04da00b3536f86b984035f1a1bc81da498e1bc8632bc5f9c8b86533b70814a91318627fcafc3f05ebda59e303cc4 fix-ppc64le-float.patch"
+32fa59744e426a0921e44e1e792dbdc263cf8e505407adfe1dc392aa949db96bf8fce2140a3f5ede5a5ba756cf40d80887c502f52cec805c34c477ac44c21049 fix-musl.patch
+3e4e1ccfc506d18cd4d78ea477b53bf9854568c1eab64e6dc63bbdc750dcd94a2229635d17dbe9c5ee75b28baffeac5c87850f7c87b0dd400636811a961d8d9d nonag.patch
+"
diff --git a/testing/mame/fix-musl.patch b/testing/mame/fix-musl.patch
index cda914196ce..0c1378c6834 100644
--- a/testing/mame/fix-musl.patch
+++ b/testing/mame/fix-musl.patch
@@ -1,9 +1,9 @@
--- a/src/lib/netlist/plib/pexception.cpp
+++ b/src/lib/netlist/plib/pexception.cpp
-@@ -10,7 +10,7 @@
-
- #include <cfenv>
-
+@@ -8,7 +8,7 @@
+ #include <cfloat>
+ #include <iostream>
+
-#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__)
+#if (defined(__x86_64__) || defined(__i386__)) && defined(__linux__) && defined(__GLIBC__)
#define HAS_FEENABLE_EXCEPT (1)
@@ -19,3 +19,23 @@
#include "platform.h"
#include "config.h"
+--- a/src/osd/modules/sound/pulse_sound.cpp
++++ b/src/osd/modules/sound/pulse_sound.cpp
+@@ -19,6 +19,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <poll.h>
++#include <signal.h>
+
+ #include <thread>
+ #include <pulse/pulseaudio.h>
+--- a/src/lib/netlist/plib/ppmf.h
++++ b/src/lib/netlist/plib/ppmf.h
+@@ -94,6 +94,7 @@
+ #ifndef PPMF_FORCE_TYPE
+ #define PPMF_FORCE_TYPE -1
+ #endif
++#include "stddef.h"
+
+ namespace plib {
+
diff --git a/testing/mame/fix-ppc64le-float.patch b/testing/mame/fix-ppc64le-float.patch
deleted file mode 100644
index 99a31eda2c5..00000000000
--- a/testing/mame/fix-ppc64le-float.patch
+++ /dev/null
@@ -1,115 +0,0 @@
---- a/3rdparty/bx/include/bx/inline/endian.inl
-+++ b/3rdparty/bx/include/bx/inline/endian.inl
-@@ -46,7 +46,7 @@
- }
-
- template <typename Ty>
-- inline Ty toLittleEndian(const Ty _in)
-+ inline Ty toLittleEndian(Ty _in)
- {
- #if BX_CPU_ENDIAN_BIG
- return endianSwap(_in);
-@@ -56,7 +56,7 @@
- }
-
- template <typename Ty>
-- inline Ty toBigEndian(const Ty _in)
-+ inline Ty toBigEndian(Ty _in)
- {
- #if BX_CPU_ENDIAN_LITTLE
- return endianSwap(_in);
-@@ -66,7 +66,7 @@
- }
-
- template <typename Ty>
-- inline Ty toHostEndian(const Ty _in, bool _fromLittleEndian)
-+ inline Ty toHostEndian(Ty _in, bool _fromLittleEndian)
- {
- #if BX_CPU_ENDIAN_LITTLE
- return _fromLittleEndian ? _in : endianSwap(_in);
---- a/3rdparty/bx/include/bx/inline/readerwriter.inl
-+++ b/3rdparty/bx/include/bx/inline/readerwriter.inl
-@@ -273,7 +273,7 @@
- }
-
- template<typename Ty>
-- int32_t read(ReaderI* _reader, Ty& _value, Error* _err)
-+ inline int32_t read(ReaderI* _reader, Ty& _value, Error* _err)
- {
- BX_ERROR_SCOPE(_err);
- BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
-@@ -281,7 +281,7 @@
- }
-
- template<typename Ty>
-- int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err)
-+ inline int32_t readHE(ReaderI* _reader, Ty& _value, bool _fromLittleEndian, Error* _err)
- {
- BX_ERROR_SCOPE(_err);
- BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
-@@ -329,7 +329,7 @@
- }
-
- template<typename Ty>
-- int32_t write(WriterI* _writer, const Ty& _value, Error* _err)
-+ inline int32_t write(WriterI* _writer, const Ty& _value, Error* _err)
- {
- BX_ERROR_SCOPE(_err);
- BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
-@@ -337,7 +337,7 @@
- }
-
- template<typename Ty>
-- int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err)
-+ inline int32_t writeLE(WriterI* _writer, const Ty& _value, Error* _err)
- {
- BX_ERROR_SCOPE(_err);
- BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
-@@ -346,8 +346,14 @@
- return result;
- }
-
-+ template<>
-+ inline int32_t writeLE(WriterI* _writer, const float& _value, Error* _err)
-+ {
-+ return writeLE(_writer, floatToBits(_value), _err);
-+ }
-+
- template<typename Ty>
-- int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err)
-+ inline int32_t writeBE(WriterI* _writer, const Ty& _value, Error* _err)
- {
- BX_ERROR_SCOPE(_err);
- BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
-@@ -356,6 +362,12 @@
- return result;
- }
-
-+ template<>
-+ inline int32_t writeBE(WriterI* _writer, const float& _value, Error* _err)
-+ {
-+ return writeBE(_writer, floatToBits(_value), _err);
-+ }
-+
- inline int64_t skip(SeekerI* _seeker, int64_t _offset)
- {
- return _seeker->seek(_offset, Whence::Current);
-@@ -392,7 +404,7 @@
- }
-
- template<typename Ty>
-- int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err)
-+ inline int32_t peek(ReaderSeekerI* _reader, Ty& _value, Error* _err)
- {
- BX_ERROR_SCOPE(_err);
- BX_STATIC_ASSERT(isTriviallyCopyable<Ty>() );
---- a/3rdparty/bx/include/bx/readerwriter.h
-+++ b/3rdparty/bx/include/bx/readerwriter.h
-@@ -10,6 +10,7 @@
- #include "endian.h"
- #include "error.h"
- #include "filepath.h"
-+#include "math.h"
- #include "string.h"
- #include "uint32_t.h"
-
diff --git a/testing/mame/nonag.patch b/testing/mame/nonag.patch
index f7457b4e965..b382a8fb6fe 100644
--- a/testing/mame/nonag.patch
+++ b/testing/mame/nonag.patch
@@ -1,35 +1,11 @@
--- a/src/emu/render.cpp
+++ b/src/emu/render.cpp
-@@ -1399,7 +1399,8 @@
+@@ -1429,7 +1429,7 @@
+ add_element_primitives(list, item_xform, curitem);
}
-
- // if we are not in the running stage, draw an outer box
+ }
- else
-+ // DISABLE WHITE BORDER
+ else if ( !m_manager.machine().options().skip_gameinfo() )
{
+ // if we are not in the running stage, draw an outer box
render_primitive *prim = list.alloc(render_primitive::QUAD);
- set_render_bounds_xy(prim->bounds, 0.0f, 0.0f, (float)m_width, (float)m_height);
---- a/src/frontend/mame/ui/ui.cpp
-+++ b/src/frontend/mame/ui/ui.cpp
-@@ -313,7 +313,8 @@
- switch (state)
- {
- case 0:
-- if (show_warnings)
-+ // DISABLE INTERACTIVE WARNING MESSAGES
-+ if (show_gameinfo)
- messagebox_text = machine_info().warnings_string();
- if (!messagebox_text.empty())
- {
-@@ -770,6 +771,10 @@
-
- uint32_t mame_ui_manager::handler_messagebox(render_container &container)
- {
-+ // DISABLE INITIALIZING, LOADING & DECRYPTING MESSAGES
-+ if (machine().options().skip_gameinfo())
-+ return 0;
-+
- draw_text_box(container, messagebox_text.c_str(), ui::text_layout::LEFT, 0.5f, 0.5f, messagebox_backcolor);
- return 0;
- }
diff --git a/testing/mangal/APKBUILD b/testing/mangal/APKBUILD
new file mode 100644
index 00000000000..5fc9f5b45a2
--- /dev/null
+++ b/testing/mangal/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=mangal
+pkgver=4.0.6
+pkgrel=10
+pkgdesc="Fancy TUI manga downloader"
+url="https://github.com/metafates/mangal"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/metafates/mangal/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # connects to dead api
+
+build() {
+ local _goldflags="
+ -X github.com/metafates/mangal/constant.BuiltAt=$(date -u "+%Y-%m-%dT%H:%M:%SZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X github.com/metafates/mangal/constant.BuiltBy=AlpineLinux
+ -X github.com/metafates/mangal/constant.Revision=0000000
+ "
+ go build -v -ldflags "$_goldflags"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 completions/$pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 completions/$pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 completions/$pkgname.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+b826dd77cb66efe39812eb6c00439d2578dd32456fbb038509e4a92da52e96d06c8a55d8d85fde2414dcde57197a181cf8a95c0a2bd90903f11340fceda9059b mangal-4.0.6.tar.gz
+"
diff --git a/testing/mangr0ve/APKBUILD b/testing/mangr0ve/APKBUILD
new file mode 100644
index 00000000000..31e5181270c
--- /dev/null
+++ b/testing/mangr0ve/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jacob Ludvigsen <jacob.ludvigsen@protonmail.com>
+# Maintainer: Jacob Ludvigsen <jacob.ludvigsen@protonmail.com>
+pkgname=mangr0ve
+pkgver=0.1.2
+pkgrel=0
+pkgdesc="Terminal application simplifiyng rollback of btrfs subvols"
+url="https://gitlab.com/papiris/mangr0ve"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="btrfs-progs"
+options="!check" # Upstream does not provide tests yet
+subpackages="$pkgname-doc"
+source="https://gitlab.com/papiris/mangr0ve/-/archive/$pkgver/mangr0ve-$pkgver.tar.bz2"
+
+build() {
+ return 0
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+}
+
+sha512sums="
+0edd067d47aca23f901b5e76087f3148f9e3894e8ef0409d9d2b57f3a5b78fae7a6dbd99c023c36eff42d69d9569531708a84cf18469776e687ca482e916d03d mangr0ve-0.1.2.tar.bz2
+"
diff --git a/testing/manifest-tool/APKBUILD b/testing/manifest-tool/APKBUILD
new file mode 100644
index 00000000000..eb8a9870b33
--- /dev/null
+++ b/testing/manifest-tool/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Phil Estes <estesp@gmail.com>
+# Maintainer: Phil Estes <estesp@gmail.com>
+pkgname=manifest-tool
+pkgver=2.1.6
+_pkgcommit=d96ae95374f885e40b1e7de367c72ab09d7dc362
+pkgrel=2
+pkgdesc="tool for inspecting and creating multi-platform container images"
+url="https://github.com/estesp/manifest-tool"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/estesp/manifest-tool/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/manifest-tool-$pkgver/"
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ msg "Building manifest-tool"
+ cd v2 && go build \
+ -ldflags "-X main.gitCommit=$_pkgcommit -X main.version=$pkgver" \
+ -o ../manifest-tool github.com/estesp/manifest-tool/v2/cmd/manifest-tool
+}
+
+check() {
+ echo "no check"
+}
+
+package() {
+ install -Dm0755 manifest-tool -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+0a23875928191626d474a99d4a052dc578863eef301d4e4c48a96dbf0a1c59279b6d3fb90d3cced4c01c7fa0b2d8f58feaa6612fb21c614cfacaf3b4b8692bee manifest-tool-2.1.6.tar.gz
+"
diff --git a/testing/manticore/0001-use-shared-boost-lib.patch b/testing/manticore/0001-use-shared-boost-lib.patch
new file mode 100644
index 00000000000..65c0d76a3c7
--- /dev/null
+++ b/testing/manticore/0001-use-shared-boost-lib.patch
@@ -0,0 +1,13 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index c2fce771f..388558341 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -113,7 +113,7 @@ endif ()
+
+ # Boost is required dependency now
+ set ( Boost_USE_MULTITHREADED ON )
+-set ( Boost_USE_STATIC_LIBS ON )
++set ( Boost_USE_STATIC_LIBS OFF )
+ # todo: as alternative we can try to recompile boost with clang, but precompiled also quite ok
+ if (CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME STREQUAL Windows)
+ set ( Boost_COMPILER vc142 )
diff --git a/testing/manticore/APKBUILD b/testing/manticore/APKBUILD
new file mode 100644
index 00000000000..8cee589fe7d
--- /dev/null
+++ b/testing/manticore/APKBUILD
@@ -0,0 +1,102 @@
+# Contributor: Zach DeCook <zachdecook@librem.one>
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=manticore
+pkgver=6.2.12
+pkgrel=0
+pkgdesc="Easy to use open source fast database for search"
+url="https://manticoresearch.com/"
+# 32-bit systems fail to build, tests fail on s390x, ppc64le doc fail.
+arch="all !ppc64le !s390x !x86 !armhf !armv7"
+license="GPL-2.0-only"
+replaces="sphinx manticoresearch"
+install="$pkgname.pre-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/manticoresoftware/manticoresearch/archive/refs/tags/$pkgver.tar.gz
+ 0001-use-shared-boost-lib.patch
+ $pkgname.initd
+ "
+makedepends="
+ bison
+ boost-dev
+ cmake
+ curl-dev
+ expat-dev
+ flex
+ gtest-dev
+ icu-dev
+ libpq-dev
+ libstemmer-dev
+ mariadb-connector-c-dev
+ re2-dev
+ samurai
+ unixodbc-dev
+ zstd-dev
+ "
+checkdepends="php82"
+pkgusers="manticore"
+pkggroups="manticore"
+subpackages="
+ $pkgname-converter
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-tools
+ "
+
+builddir="$srcdir/manticoresearch-$pkgver/"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var \
+ -DCMAKE_INSTALL_FULL_LOCALSTATEDIR=/var \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DLOCALDATADIR=/var/lib/manticore \
+ -DWITH_ICU=1 \
+ -DWITH_ICU_FORCE_STATIC=0 \
+ -DWITH_RE2=1 \
+ -DWITH_RE2_FORCE_STATIC=0 \
+ -DWITH_STEMMER=1 \
+ -DWITH_STEMMER_FORCE_STATIC=0 \
+ -DWITH_GALERA=0
+ cmake --build build
+}
+
+check() {
+ # Exclude test 'perform indextool' which always fails
+ ctest --test-dir build --output-on-failure -E '(Perform_indextool)' -j1
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ # User/Group created by pre-install hook.
+ chown -R $pkgusers:$pkggroups "$pkgdir"/var/lib/manticore
+ chown -R $pkgusers:$pkggroups "$pkgdir"/var/log/manticore
+ chown -R $pkgusers:$pkggroups "$pkgdir"/var/run/manticore
+
+ mkdir -p "$pkgdir"/usr/share/man/man1
+ cp "$builddir"/doc/*.1 "$pkgdir"/usr/share/man/man1/
+
+}
+
+converter() {
+ pkgdesc="Update Sphinx/Manticore 2.X indexes to new format for Manticore Search"
+ amove usr/bin/index_converter
+}
+
+tools() {
+ pkgdesc="indexer, indextool, and miscellaneous tools for Manticore Search"
+ mkdir -p "$subpkgdir/usr/bin"
+ amove usr/bin/indexer \
+ usr/bin/indextool \
+ usr/bin/spelldump \
+ usr/bin/wordbreaker
+}
+
+sha512sums="
+3dcf0b70153564553182c0e596f2107df67e8265c814c4bee1dafa14e7241ec5258437f9740b5cdf6a29fd84b73c482e33eb70b93c1386eb595d292050984eef manticore-6.2.12.tar.gz
+c5579f95e21041f9859d2ad1a8f8c5d60a1cb812ba201d56a26c22a410329be221c62f3e33d2e3ed634a9d3d345a2a8e96dd02c13f7d32e077ff67615dd51551 0001-use-shared-boost-lib.patch
+d7aec4e7cd4eebaae190083e79bd20c3cc486aaba7557eb846bf9383a21eb6f8d9c30923b187c8ec4062ee5299a432ccc3839e6ed1402e3adc13588cb6525ce9 manticore.initd
+"
diff --git a/testing/manticore/manticore.initd b/testing/manticore/manticore.initd
new file mode 100644
index 00000000000..8dab732181c
--- /dev/null
+++ b/testing/manticore/manticore.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+# searchd doesn't change user,
+# so in order to keep root ownership of pidfile,
+# we let openRC manage the daemon's backgrounding.
+command="/usr/bin/searchd"
+command_user="manticore:manticore"
+pidfile="/run/$RC_SVCNAME.pid"
+command_args="--nodetach"
+command_background="true"
+
+depend() {
+ use logger
+}
+start_pre() {
+ checkpath -d -o $command_user /var/lib/manticore
+ checkpath -d -o $command_user /var/log/manticore
+ # This is for the pidfile which searchd creates
+ # (which isn't used by openrc).
+ checkpath -d -o $command_user /var/run/manticore
+}
diff --git a/testing/manticore/manticore.pre-install b/testing/manticore/manticore.pre-install
new file mode 100755
index 00000000000..67ff8152ac3
--- /dev/null
+++ b/testing/manticore/manticore.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S manticore 2>/dev/null
+adduser -S -D -H -h /var/lib/manticore -s /sbin/nologin -G manticore -g manticore manticore 2>/dev/null
+
+exit 0
diff --git a/testing/mapnik/APKBUILD b/testing/mapnik/APKBUILD
index 39eccb640f1..f86a372eedf 100644
--- a/testing/mapnik/APKBUILD
+++ b/testing/mapnik/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: Markus Juenemann <markus@juenemann.net>
# Maintainer: Markus Juenemann <markus@juenemann.net>
pkgname=mapnik
-pkgver=3.0.23
-pkgrel=0
+pkgver=3.1.0
+pkgrel=25
pkgdesc="An open source toolkit for developing mapping applications"
url="https://mapnik.org/"
-arch="x86_64"
+arch="all"
license="LPGL-2.0-or-later"
makedepends="
boost-dev
@@ -15,41 +15,44 @@ makedepends="
harfbuzz-dev
icu-dev
libpng-dev
+ libpq-dev
libwebp-dev
libxml2-dev
- postgresql-dev
proj-dev
- python3
py3-setuptools
+ python3
sqlite-dev
+ scons
tiff-dev
zlib-dev
"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/mapnik/mapnik/releases/download/v$pkgver/mapnik-v$pkgver.tar.bz2"
-
+source="https://github.com/mapnik/mapnik/releases/download/v$pkgver/mapnik-v$pkgver.tar.bz2
+ boost-1.77.patch
+ gcc13.patch
+ scons4.patch
+ "
builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # fail to build
+
build() {
- python3 scons/scons.py configure \
- CUSTOM_CXXFLAGS="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=ON" \
- CUSTOM_CFLAGS="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=ON" \
- PREFIX=/usr \
+ scons configure FAST=True \
+ PREFIX="/usr" \
+ INPUT_PLUGINS=all \
+ XMLPARSER=libxml2 \
DESTDIR="$pkgdir" \
- --jobs=${JOBS:-2} \
- --config=cache \
- --implicit-cache \
- --max-drift=1
- python3 scons/scons.py \
- --jobs=${JOBS:-2} \
- --config=cache \
- --implicit-cache \
- --max-drift=1
+ CPP_TESTS="$(want_check && echo True || echo False)" \
+ CUSTOM_CXXFLAGS="$CXXFLAGS" \
+ CUSTOM_LDFLAGS="$LDFLAGS" \
+ CUSTOM_DEFINES="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1"
+
+ scons --jobs=$JOBS
}
package() {
- python3 scons/scons.py install \
- --jobs=${JOBS-2} \
+ scons install \
--config=cache \
+ --jobs=$JOBS \
--implicit-cache \
--max-drift=1
}
@@ -67,4 +70,9 @@ doc() {
install -Dm644 $builddir/docs/* "$subpkgdir"/usr/share/docs/$pkgname/docs/
}
-sha512sums="d901e092c8d876bc21f0e8cb713a6d102308983652f21f4fb5f120c50616724b692bcf0abe66ffecf1f0aa8a60e0f9b803be85eb0eee83c477895082559b38c9 mapnik-v3.0.23.tar.bz2"
+sha512sums="
+089e619f4672e017b1aaf31836ade7e22d2a465f5a923f697935d8447d5dd0c2acb9ae6682d1c9035e58036c62685c2f38f75f0a106ee9b4ce6197e0357c47eb mapnik-v3.1.0.tar.bz2
+b5961faf1bf903fca0d92408f4b9a783e61b5c06e89c9318aa7f59c6ca98be922504909ae7cf59dd09e953378952f7af3335f3f71cb1ff9f5a8a8c8f7c729f6d boost-1.77.patch
+b9de94825d5c9934adcfd451b1fada42d17d9b79345649c19d9d1b3db333309086b7de711e9fb44038a3ba992c27d520f6a5a66f656c267f9e8d286ad2bec920 gcc13.patch
+e0c60c696b9d195ad0e430c8c4fb9c36465d9635fae3e4a8b25dca4b421d90330994285c92dfcefe929a196ff87345da278a564d8fa9f3ac29a46d9e2dfa3110 scons4.patch
+"
diff --git a/testing/mapnik/boost-1.77.patch b/testing/mapnik/boost-1.77.patch
new file mode 100644
index 00000000000..b0e18f5beb6
--- /dev/null
+++ b/testing/mapnik/boost-1.77.patch
@@ -0,0 +1,48 @@
+From 737e7a69c2679b33093e1ebf0b4c3fa34ae36878 Mon Sep 17 00:00:00 2001
+From: Artem Pavlenko <artem@mapnik.org>
+Date: Wed, 1 Sep 2021 10:11:13 +0100
+Subject: [PATCH] Add includes required for building with boost_1_77
+ (https://github.com/boostorg/geometry/commit/46e3d9231c2353b323796b6423f13cd61e0d585c#diff-2eb9871858184271f07935b31093c2d9f70f7a219979bec85adc03db6721a182)
+
+---
+ plugins/input/csv/csv_datasource.hpp | 1 +
+ plugins/input/geojson/geojson_datasource.hpp | 1 +
+ plugins/input/topojson/topojson_datasource.hpp | 1 +
+ 4 files changed, 4 insertions(+)
+
+diff --git a/plugins/input/csv/csv_datasource.hpp b/plugins/input/csv/csv_datasource.hpp
+index 13b876b3a9..a81d308e28 100644
+--- a/plugins/input/csv/csv_datasource.hpp
++++ b/plugins/input/csv/csv_datasource.hpp
+@@ -39,6 +39,7 @@ MAPNIK_DISABLE_WARNING_PUSH
+ #include <mapnik/warning_ignore.hpp>
+ #include <boost/optional.hpp>
+ #include <boost/version.hpp>
++#include <boost/geometry/strategies/cartesian/disjoint_box_box.hpp>
+ #include <boost/geometry/index/rtree.hpp>
+ MAPNIK_DISABLE_WARNING_POP
+
+diff --git a/plugins/input/geojson/geojson_datasource.hpp b/plugins/input/geojson/geojson_datasource.hpp
+index 88ef28b34e..4bb965f3cb 100644
+--- a/plugins/input/geojson/geojson_datasource.hpp
++++ b/plugins/input/geojson/geojson_datasource.hpp
+@@ -38,6 +38,7 @@ MAPNIK_DISABLE_WARNING_PUSH
+ #include <mapnik/warning_ignore.hpp>
+ #include <boost/optional.hpp>
+ #include <boost/version.hpp>
++#include <boost/geometry/strategies/cartesian/disjoint_box_box.hpp>
+ #include <boost/geometry/index/rtree.hpp>
+ MAPNIK_DISABLE_WARNING_POP
+
+diff --git a/plugins/input/topojson/topojson_datasource.hpp b/plugins/input/topojson/topojson_datasource.hpp
+index a603804b36..0c0937899e 100644
+--- a/plugins/input/topojson/topojson_datasource.hpp
++++ b/plugins/input/topojson/topojson_datasource.hpp
+@@ -41,6 +41,7 @@ MAPNIK_DISABLE_WARNING_PUSH
+ #include <boost/geometry/geometries/geometries.hpp>
+ #include <boost/geometry.hpp>
+ #include <boost/version.hpp>
++#include <boost/geometry/strategies/cartesian/disjoint_box_box.hpp>
+ #include <boost/geometry/index/rtree.hpp>
+ MAPNIK_DISABLE_WARNING_POP
+
diff --git a/testing/mapnik/gcc13.patch b/testing/mapnik/gcc13.patch
new file mode 100644
index 00000000000..e68020675f8
--- /dev/null
+++ b/testing/mapnik/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/include/mapnik/wkb.hpp b/include/mapnik/wkb.hpp
+index fc32a9f..482496a 100644
+--- a/include/mapnik/wkb.hpp
++++ b/include/mapnik/wkb.hpp
+@@ -27,6 +27,7 @@
+ #include <mapnik/config.hpp>
+ #include <mapnik/geometry.hpp>
+ #include <mapnik/util/noncopyable.hpp>
++#include <cstdint>
+
+ namespace mapnik
+ {
diff --git a/testing/mapnik/scons4.patch b/testing/mapnik/scons4.patch
new file mode 100644
index 00000000000..f9a7452d084
--- /dev/null
+++ b/testing/mapnik/scons4.patch
@@ -0,0 +1,11 @@
+#https://github.com/archlinux/svntogit-community/blob/packages/mapnik/trunk/scons4.patch
+--- a/SConstruct 2021-01-08 13:23:24.000000000 +0200
++++ b/SConstruct 2021-11-22 11:41:03.413991679 +0200
+@@ -126,7 +126,6 @@ PLUGINS = { # plugins with external depe
+
+ def init_environment(env):
+ env.Decider('MD5-timestamp')
+- env.SourceCode(".", None)
+ if os.environ.get('RANLIB'):
+ env['RANLIB'] = os.environ['RANLIB']
+ if os.environ.get('AR'):
diff --git a/testing/mapserver/10-musl.patch b/testing/mapserver/10-musl.patch
new file mode 100644
index 00000000000..4b08dd10493
--- /dev/null
+++ b/testing/mapserver/10-musl.patch
@@ -0,0 +1,33 @@
+Author: Holger Jaekel <holger.jaekel@gmx.de>
+Summary: Fixes compilation with musl libc, define PATH_MAX
+----
+
+--- a/mapflatgeobuf.c
++++ b/mapflatgeobuf.c
+@@ -29,9 +29,9 @@
+
+ #define NEED_IGNORE_RET_VAL
+
++#include "mapserver.h"
+ #include <limits.h>
+ #include <assert.h>
+-#include "mapserver.h"
+ #include "mapows.h"
+
+ #include "flatgeobuf/flatgeobuf_c.h"
+
+
+--- a/mapshape.c
++++ b/mapshape.c
+@@ -36,10 +36,10 @@
+
+ #define NEED_IGNORE_RET_VAL
+
++#include "mapserver.h"
+ #include <limits.h>
+ #include <assert.h>
+ #include <stdbool.h>
+-#include "mapserver.h"
+ #include "mapows.h"
+
+ #include <cpl_conv.h>
diff --git a/testing/mapserver/APKBUILD b/testing/mapserver/APKBUILD
index 8c03773b26b..70ad25fd488 100644
--- a/testing/mapserver/APKBUILD
+++ b/testing/mapserver/APKBUILD
@@ -1,46 +1,51 @@
# Contributor: Bjoern Schilberg <bjoern@intevation.de>
# Maintainer: Bjoern Schilberg <bjoern@intevation.de>
pkgname=mapserver
-pkgver=7.4.4
-pkgrel=1
+pkgver=8.0.1
+pkgrel=2
pkgdesc="CGI-based platform for publishing spatial data and interactive mapping applications to the web"
url="https://mapserver.org/"
-arch="x86_64"
+# s390x: blocked by exempi-dev
+arch="all !s390x"
license="MIT"
depends_dev="
- cmake
- postgresql-dev
- geos-dev
+ cairo-dev
+ curl-dev
+ exempi-dev
+ fcgi-dev
+ freetype-dev
+ fribidi-dev
gdal-dev
- jpeg-dev
+ geos-dev
giflib-dev
+ harfbuzz-dev
+ jpeg-dev
+ libpq-dev
+ librsvg-dev
libxml2-dev
+ pixman-dev
proj-dev
- fcgi-dev
- curl-dev
- freetype-dev
- cairo-dev
protobuf-c-dev
"
makedepends="
$depends_dev
+ cmake
+ samurai
"
subpackages="
$pkgname-dev
"
source="
- http://download.osgeo.org/mapserver/$pkgname-$pkgver.tar.gz
+ https://download.osgeo.org/mapserver/mapserver-$pkgver.tar.gz
+ 10-musl.patch
"
build() {
- mkdir build; cd build
- cmake .. \
+ CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE" \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
- -DWITH_GDAL=ON \
-DWITH_GEOS=ON \
- -DWITH_OGR=ON \
- -DWITH_PROJ=ON \
-DWITH_POSTGIS=ON \
-DWITH_KML=ON \
-DWITH_WCS=ON \
@@ -52,20 +57,25 @@ build() {
-DWITH_THREAD_SAFETY=OFF \
-DWITH_FCGI=ON \
-DWITH_CAIRO=ON \
+ -DWITH_RSVG=ON \
-DWITH_CURL=ON \
-DWITH_MYSQL=OFF \
- -DWITH_FRIBIDI=OFF \
- -DWITH_HARFBUZZ=OFF \
- -DWITH_EXEMPI=OFF \
- -DWITH_PROTOBUFC=ON
- make -j1
+ -DWITH_FRIBIDI=ON \
+ -DWITH_HARFBUZZ=ON \
+ -DWITH_EXEMPI=ON \
+ -DWITH_PROTOBUFC=ON \
+ -DWITH_PIXMAN=ON
+ cmake --build build
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ # shellcheck disable=2115
rm -rf "$pkgdir"/usr/share/
chmod -x "$pkgdir"/usr/include/mapserver/*.h
}
-sha512sums="6885780edd005ea2907e7cd20e435fc33e9642a106663ee5f5d601f32b0fd9ad18e21f17d33cc652865b4728db6394b567a35714bacd9a9aa340394726635bca mapserver-7.4.4.tar.gz"
+sha512sums="
+dae14a7eb6b09f5461c19bff83ca8ed6c21ae84d451b2c854794efb25b144b7edbf2a33479dc53e78aa646e5196e81219b4a1f393ff824db4508204a2d0301d1 mapserver-8.0.1.tar.gz
+12743afabee45bc77788b699cfc8ac50cf11629e0041b7b9aac3ba1c966d14fa0280044b72ac1b7520e99124d9b4627a6b5d005a486ae9ad03bc86b0775ad547 10-musl.patch
+"
diff --git a/testing/mariadb-connector-odbc/APKBUILD b/testing/mariadb-connector-odbc/APKBUILD
deleted file mode 100644
index dc0d87f4de3..00000000000
--- a/testing/mariadb-connector-odbc/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Joe Searle <joe@jsearle.net>
-# Maintainer: Joe Searle <joe@jsearle.net>
-pkgname=mariadb-connector-odbc
-pkgver=3.1.4
-pkgrel=1
-pkgdesc="MariaDB Connector/ODBC is a standardized, LGPL licensed database driver using the industry standard ODBC API."
-url="https://github.com/MariaDB/mariadb-connector-odbc"
-arch="all"
-license="LGPL-2.1-only"
-depends="unixodbc"
-makedepends="cmake unixodbc-dev mariadb-connector-c mariadb-connector-c-dev mariadb-static"
-source="$pkgname-$pkgver.tar.gz::https://github.com/MariaDB/mariadb-connector-odbc/archive/$pkgver.tar.gz"
-subpackages="$pkgname-doc"
-options="!check" # 'test' directory not included in releases
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- # Link to /usr/include/mysql necessary when using system installed mariadb-connector-c
- CFLAGS="$CFLAGS -I/usr/include/mysql" \
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- ${CMAKE_CROSSOPTS} .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="1f662b57d78cb6b58de84b75025bbc16cdfebeea39991d0a8f28ff2be76682ea80f2a8828c006c966607eebb0fb6522bc59a98564c6a7408b878d8ba06d9ed9b mariadb-connector-odbc-3.1.4.tar.gz"
diff --git a/testing/marisa-trie/APKBUILD b/testing/marisa-trie/APKBUILD
deleted file mode 100644
index a1ec29b07e8..00000000000
--- a/testing/marisa-trie/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=marisa-trie
-pkgver=0.2.5
-pkgrel=0
-pkgdesc="Static and space-efficient trie data structure library"
-url="https://github.com/s-yata/marisa-trie"
-arch="all !mips !mips64" # fails to build on mips
-license="BSD-2-Clause"
-makedepends="autoconf automake libtool"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/s-yata/marisa-trie/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
-
- autoreconf -i
-}
-
-build() {
- case "$CARCH" in
- x86|x86_64) sse2="--enable-sse2" ;;
- *) sse2="--disable-sse2" ;;
- esac
-
- ./configure \
- --prefix=/usr \
- --disable-static \
- $sse2
-
- make
-}
-
-check() {
- make check
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="62975a2dacd2a1072c990cd490f866cd5483c069c94a4706baf3ffc21ec43991583a8ef8721c3b841617b0654cbb894698c19759ff12b8887b6fd28939dfb547 marisa-trie-0.2.5.tar.gz"
diff --git a/testing/marknote/APKBUILD b/testing/marknote/APKBUILD
new file mode 100644
index 00000000000..797fa3e02bb
--- /dev/null
+++ b/testing/marknote/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: team/kde <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=kde-other
+pkgname=marknote
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="A simple markdown note management app"
+# armhf blocked by extra-cmake-modules
+arch="all !armhf"
+url="https://apps.kde.org/marknote/"
+license="GPL-3.0-or-later AND CC0-1.0"
+depends="
+ kirigami
+ kirigami-addons
+ "
+makedepends="
+ extra-cmake-modules
+ kcolorscheme-dev
+ kconfig-dev
+ kcoreaddons-dev
+ ki18n-dev
+ kirigami-addons-dev
+ kirigami-dev
+ kxmlgui-dev
+ qt6-qtbase-dev
+ qt6-qtdeclarative-dev
+ qt6-qtsvg-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+_repo_url="https://invent.kde.org/office/marknote.git"
+source="https://download.kde.org/stable/marknote/marknote-$pkgver.tar.xz"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+b5664ae77d64e53f2eb773a3bca88709995ee2fc743490a2cc45bc15affb30a866cf970f5c766c4c8a4f0da8c93cce97c5ef2c21776d2977acd3c3344bda3a6b marknote-1.1.1.tar.xz
+"
diff --git a/testing/marxan/APKBUILD b/testing/marxan/APKBUILD
new file mode 100644
index 00000000000..87daf7260ec
--- /dev/null
+++ b/testing/marxan/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: andrea rota <andrea.rota@vizzuality.com>
+# Maintainer: andrea rota <andrea.rota@vizzuality.com>
+pkgname=marxan
+pkgver=4.0.7
+pkgrel=1
+pkgdesc="Systematic reserve design for conservation planning"
+url="https://marxansolutions.org/"
+license="MIT"
+arch="all"
+# Building of tests is currently broken in upstream tree: bypassing them for the
+# time being via options="!check"
+options="!check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Marxan-source-code/marxan/archive/refs/tags/v$pkgver.tar.gz
+ "
+
+build() {
+ export CXXFLAGS="$CXXFLAGS -O3 -std=c++17 -fopenmp"
+ make
+}
+
+check() {
+ cd test
+ make
+ ./test
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+416d101173524efb09a572a7291a58fa96cd747c64bff601dbf0998916bf7972a2cf5994c4acde905badcdc1bdf1c39f32863a3ba17ce8aa5a84835a29eae3cd marxan-4.0.7.tar.gz
+"
diff --git a/testing/masky/APKBUILD b/testing/masky/APKBUILD
new file mode 100644
index 00000000000..8d4b017258f
--- /dev/null
+++ b/testing/masky/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=masky
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Python library with CLI allowing to remotely dump domain user credentials via an ADCS"
+url="https://github.com/Z4kSec/Masky"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asn1
+ py3-asn1crypto
+ py3-colorama
+ py3-cryptography
+ py3-impacket
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Z4kSec/Masky/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/Masky-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1de63dd2d01af8bb9762aadd5bf215cf87bc45edee91e2a99534d234344e849050476a1fbe61caf7786ceb5b2b7e040f8b9f3cd1d9416193f7b022ac856bb013 masky-0.2.0.tar.gz
+"
diff --git a/testing/massif-visualizer/APKBUILD b/testing/massif-visualizer/APKBUILD
deleted file mode 100644
index dedd768483d..00000000000
--- a/testing/massif-visualizer/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=massif-visualizer
-pkgver=0.7.0
-pkgrel=0
-pkgdesc="Visualizer for Valgrind Massif data files"
-arch="all !armhf" # armhf blocked by extra-cmake-modules
-url="https://kde.org/applications/development/org.kde.massif-visualizer"
-license="GPL-2.0-or-later"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtsvg-dev qt5-qtxmlpatterns-dev karchive-dev kconfig-dev kcoreaddons-dev kparts-dev kio-dev ki18n-dev kdiagram-dev"
-checkdepends="xvfb-run"
-source="https://download.kde.org/stable/massif-visualizer/$pkgver/src/massif-visualizer-$pkgver.tar.xz"
-subpackages="$pkgname-lang"
-
-build() {
- # The infowidget plugin is disabled due to an incompatibility with musl
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DENABLE_INFOWIDGET_PLUGIN=FALSE
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="058412e34c0899a34fb4080a602cb0c70a9ac707f27b72a79fb412ea35a6e8c66ce06df15b3153fdc1a70a27232f98b508c7441b657eb73466962b33f9b2f561 massif-visualizer-0.7.0.tar.xz"
diff --git a/testing/massivethreads/0001-musl-fixes.patch b/testing/massivethreads/0001-musl-fixes.patch
new file mode 100644
index 00000000000..6053a8f104d
--- /dev/null
+++ b/testing/massivethreads/0001-musl-fixes.patch
@@ -0,0 +1,77 @@
+diff --git a/src/myth_io.h b/src/myth_io.h
+index e0b61551b8..832629c352 100644
+--- a/src/myth_io.h
++++ b/src/myth_io.h
+@@ -6,6 +6,7 @@
+ #define MYTH_IO_H_
+
+ #include <sys/socket.h>
++#include <sys/select.h>
+ #include <stdint.h>
+ #include <stdarg.h>
+
+
+
+diff --git a/src/Makefile.am b/patchMakefile.am
+index f55b46a5e5..f9a3e631ae 100644
+--- a/src/Makefile.am
++++ b/patchMakefile.am
+@@ -18,7 +18,8 @@ COMMON_SRCS = \
+ myth_context.c \
+ myth_if_native.c \
+ myth_real.c \
+- myth_eco.c
++ myth_eco.c \
++ pthread.c
+
+ # sources for wrapping system functions (used only for -dl and -ld versions)
+ WRAP_SRCS = \
+
+
+diff --git a/src/pthread.h b/src/pthread.h
+new file mode 100644
+index 0000000000..1a81566b46
+--- /dev/null
++++ b/src/pthread.h
+@@ -0,0 +1,15 @@
++#ifndef _MUSL_PTHREAD_H_OVERRIDE
++#define _MUSL_PTHREAD_H_OVERRIDE
++
++#include <errno.h>
++#include_next <pthread.h>
++
++// musl's pthread_equal is a macro
++#undef pthread_equal
++int pthread_equal(pthread_t t1, pthread_t t2);
++
++// musl doesn't define mutexattr functions
++int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *__restrict, int *__restrict);
++int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int);
++
++#endif//_MUSL_PTHREAD_H_OVERRIDE
+
+
+diff --git a/src/pthread.c b/src/pthread.c
+new file mode 100644
+index 0000000000..10f57c0fb7
+--- /dev/null
++++ b/src/pthread.c
+@@ -0,0 +1,18 @@
++#include <pthread.h>
++
++int pthread_equal(pthread_t t1, pthread_t t2) {
++ return t1 == t2;
++}
++
++int pthread_mutexattr_getprioceiling( const pthread_mutexattr_t *restrict attr
++ , int *restrict prioceiling )
++{
++ if (prioceiling) *prioceiling = 99;
++ return 0;
++}
++
++int pthread_mutexattr_setprioceiling( pthread_mutexattr_t *attr
++ , int prioceiling )
++{
++ return EPERM;
++}
diff --git a/testing/massivethreads/APKBUILD b/testing/massivethreads/APKBUILD
new file mode 100644
index 00000000000..46ed95e9e23
--- /dev/null
+++ b/testing/massivethreads/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Hazem <hazem-alpine@riseup.net>
+# Maintainer: Hazem <hazem-alpine@riseup.net>
+pkgname=massivethreads
+pkgver=1.00
+pkgrel=0
+pkgdesc="Lightweight Thread Library for High Productivity Languages"
+url="https://github.com/massivethreads/massivethreads"
+arch="x86_64"
+license="BSD-2-Clause"
+makedepends="autoconf automake"
+subpackages="$pkgname-dev"
+source="
+ https://github.com/massivethreads/massivethreads/archive/refs/tags/v$pkgver/massivethreads-$pkgver.tar.gz
+ 0001-musl-fixes.patch
+"
+
+build() {
+ aclocal # needed because we patch Makefile.ac
+ automake -a
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-myth-dl \
+ --disable-myth-ld
+ make
+}
+
+check() {
+ # pvalloc is not implemented in musl and not needed in massivethreads
+ # only referenced for wrapping in myth-dl/ld which we disable anyway
+ echo 'main(){}' > $builddir/tests/myth_pvalloc.c
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -f $pkgdir/usr/bin/*
+ rm -f $pkgdir/usr/lib/libdr*
+}
+
+sha512sums="
+aaea978bf0d41a9a97ccf0d8c5be318feb1e547e72f7dea267ddc3a18d653831465d531c193f79e8f75d75b12945d3dab882d93596d90dda7f70676fe87ea72e massivethreads-1.00.tar.gz
+6e45f1053580460bf203c4e92e9889a3d7a46adfc4d38b4e75eaab8b73c3992fc928f6ff94960e7cb00bbc02fb61b6ab4646daf7051f69166780b62eb6ba5a5f 0001-musl-fixes.patch
+"
diff --git a/testing/mat2/APKBUILD b/testing/mat2/APKBUILD
new file mode 100644
index 00000000000..d733ca470c8
--- /dev/null
+++ b/testing/mat2/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Waweic <waweic@activ.ism.rocks>
+# Contributor: Waweic <waweic@activ.ism.rocks>
+pkgname=mat2
+pkgver=0.13.4
+pkgrel=1
+pkgdesc="Metadata removal tool, supporting a wide range of commonly used file formats"
+url="https://0xacab.org/jvoisin/mat2"
+arch="noarch !s390x !riscv64" #librsvg missing for s390x and riscv64
+license="LGPL-3.0-or-later"
+depends="
+ exiftool
+ gdk-pixbuf
+ librsvg
+ mailcap
+ poppler-glib
+ py3-cairo
+ py3-gobject3
+ py3-mutagen
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="ffmpeg"
+source="https://0xacab.org/jvoisin/mat2/-/archive/$pkgver/mat2-$pkgver.tar.gz
+ manpage-dir.patch
+ "
+subpackages="$pkgname-doc $pkgname-pyc"
+
+prepare() {
+ default_prepare
+
+ # doesn't contain a version in [project], so it's invalid to parse from a
+ # builder, # but we can ignore all that as all the logic is in setup.*
+ rm -fv pyproject.toml
+}
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 -m unittest discover -v
+}
+
+package() {
+ python3 setup.py install --skip-build --prefix=/usr --root="$pkgdir"
+ install -Dm 644 doc/*.md -t "$pkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+75c08c9c52a82f9983e799c2aeef0da8324d1c92ac32fb748a68063ec7b28569692082aceacf7161d24db0e8a988357c423b6e17ca5c0f934309c9791c41ab18 mat2-0.13.4.tar.gz
+2bf84ae9fab848fea43c87b708937628c2d5e74cb4f0457ef259356c651056eea1a0d033d606fc5511f195cbb5a097c21e631a9a4973431c8f3242a1969d9123 manpage-dir.patch
+"
diff --git a/testing/mat2/manpage-dir.patch b/testing/mat2/manpage-dir.patch
new file mode 100644
index 00000000000..e66f5202375
--- /dev/null
+++ b/testing/mat2/manpage-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 356ca4b..bbdf1d9 100644
+--- a/setup.py
++++ b/setup.py
+@@ -20,7 +20,7 @@ setuptools.setup(
+ 'pycairo',
+ ],
+ packages=setuptools.find_packages(exclude=('tests', )),
+- data_files = [('man/man1', ['doc/mat2.1'])],
++ data_files = [('share/man/man1', ['doc/mat2.1'])],
+ classifiers=[
+ "Development Status :: 3 - Alpha",
+ "Environment :: Console",
diff --git a/testing/materia-gtk-theme/APKBUILD b/testing/materia-gtk-theme/APKBUILD
index 9555c16a571..f6e39890ade 100644
--- a/testing/materia-gtk-theme/APKBUILD
+++ b/testing/materia-gtk-theme/APKBUILD
@@ -1,13 +1,12 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
+# Maintainer:
pkgname=materia-gtk-theme
-pkgver=20200422
-_commit=b36b379c9256b67e5f63a60c6faf6912f1845b66
+pkgver=20210322
pkgrel=1
pkgdesc="Material Design theme for GNOME/GTK desktops"
options="!check" # It is a theme
url="https://github.com/nana-4/materia-theme"
-arch="noarch !s390x !mips !mips64"
+arch="noarch !s390x"
license="GPL-2.0-only"
makedepends="meson sassc"
subpackages="
@@ -35,22 +34,19 @@ subpackages="
materia-dark-compact-gnome-shell:_dark_compact_gnome_shell:noarch
materia-dark-compact-chromium:_dark_compact_chromium:noarch
"
-source="$pkgname-$_commit.tar.gz::https://github.com/nana-4/materia-theme/archive/$_commit.tar.gz
- fix-align.patch::https://github.com/tuberry/materia-theme/commit/79a9fe8738615d8641900ef1067dd9d1fcc295de.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/nana-4/materia-theme/archive/v$pkgver.tar.gz
"
-builddir="$srcdir/materia-theme-$_commit"
+builddir="$srcdir/materia-theme-$pkgver"
build() {
- meson \
- --prefix=/usr \
- --buildtype=plain \
- -Dgnome_shell_version=3.36 \
+ abuild-meson \
+ -Dgnome_shell_version=3.38 \
. output
- ninja -C output
+ meson compile -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
rm -rf "$pkgdir"/usr/share/themes/*/xfwm4
rm -rf "$pkgdir"/usr/share/themes/*/cinnamon
@@ -67,7 +63,7 @@ package() {
_dark_compact() {
pkgdesc="Dark compact version of Materia"
- depends="gnome-themes-extra gtk-murrine-engine"
+ depends="gtk-murrine-engine"
amove usr/share/themes/Materia-dark-compact/index.theme
}
@@ -105,7 +101,7 @@ _dark_compact_chromium() {
_dark() {
pkgdesc="Dark version of Materia"
- depends="gnome-themes-extra gtk-murrine-engine"
+ depends="gtk-murrine-engine"
amove usr/share/themes/Materia-dark/index.theme
}
@@ -143,7 +139,7 @@ _dark_chromium() {
_materia() {
pkgdesc="Materia theme"
- depends="gnome-themes-extra gtk-murrine-engine"
+ depends="gtk-murrine-engine"
amove usr/share/themes/Materia/index.theme
}
@@ -181,7 +177,7 @@ _chromium() {
_materia_compact() {
pkgdesc="Compact Materia theme"
- depends="gnome-themes-extra gtk-murrine-engine"
+ depends="gtk-murrine-engine"
amove usr/share/themes/Materia-compact/index.theme
}
@@ -216,5 +212,4 @@ _chromium_compact() {
amove usr/share/themes/Materia-compact/chrome
}
-sha512sums="136372f07be77a9a682a6194d9a9f4f5c686db27250ad6d4e4777261bf04f4986fc0dfcf6835514824b1b4ac3f078bb147a210064196fac85931e3d90760e6c7 materia-gtk-theme-b36b379c9256b67e5f63a60c6faf6912f1845b66.tar.gz
-715ec8e8b61c8b1921ed59529a0a2fbbd08e06dfb5cf5e42404b97c955f045c9e89381005e1b77fad4a5b7a4d3625c2a7d9d27ee568f5e79d266113572c53bac fix-align.patch"
+sha512sums="c384a1afd5cf72f7ccfc0d1af8fd7efbe66027aa6e293899d57e46d8e572822ec6070785e957b07464cf0b3b73a302b9344920af361a9e8ab582565b7cedba71 materia-gtk-theme-20210322.tar.gz"
diff --git a/testing/materia-kde/APKBUILD b/testing/materia-kde/APKBUILD
index 9118491a042..d75e83ca1bf 100644
--- a/testing/materia-kde/APKBUILD
+++ b/testing/materia-kde/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
+# Maintainer:
pkgname=materia-kde
-pkgver=20200523
+pkgver=20220823
pkgrel=0
pkgdesc="Materia theme from GNOME for KDE Plasma 5"
options="!check" # It is a theme
@@ -40,23 +40,24 @@ _plasma() {
install_if="materia plasma-desktop"
amove usr/share/plasma/desktoptheme/Materia
- amove usr/share/plasma/desktoptheme/Materia-Mono
- amove usr/share/plasma/look-and-feel
-
+ amove usr/share/plasma/desktoptheme/Materia-Color
+ amove usr/share/plasma/look-and-feel/com.github.varlesh.materia
+ amove usr/share/plasma/look-and-feel/com.github.varlesh.materia-light
}
_dark_plasma() {
pkgdesc="Plasma assets for dark KDE version of Materia"
- depends="materia-plasma"
+ depends="materia-kde-plasma"
install_if="materia-dark plasma-desktop"
amove usr/share/aurorae/themes/Materia-Dark
amove usr/share/color-schemes/MateriaDark.colors
+ amove usr/share/plasma/look-and-feel/com.github.varlesh.materia-dark
}
_light_plasma() {
pkgdesc="Plasma assets for light KDE version of Materia"
- depends="materia-plasma"
+ depends="materia-kde-plasma"
install_if="materia-light plasma-desktop"
amove usr/share/aurorae/themes/Materia-Light
@@ -128,4 +129,6 @@ _light_compact_kvantum() {
mkdir -p "$subpkgdir"
}
-sha512sums="fb62491b77666b6f2784e68119004047b4bfa31456d9a33163ce5fcddf80c94985e7b61dbf629786134532e6906ca5b59fdd96316ba9d01f0274bb0a594ae4c7 materia-kde-20200523.tar.gz"
+sha512sums="
+22052f581269f78a6d4fcdb3e475f682be625151b698b29273b5c62514d2c70e5aff75d51e514731f5263726e66aa970a788af610e943991aca1d5968ef42775 materia-kde-20220823.tar.gz
+"
diff --git a/testing/matrix-synapse-rest-password-provider/APKBUILD b/testing/matrix-synapse-rest-password-provider/APKBUILD
deleted file mode 100644
index e719d18255f..00000000000
--- a/testing/matrix-synapse-rest-password-provider/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=matrix-synapse-rest-password-provider
-pkgver=0.1.3
-pkgrel=0
-pkgdesc="Password Provider for Synapse fetching data from a REST endpoint"
-url="https://github.com/ma1uta/matrix-synapse-rest-password-provider"
-arch="noarch"
-license="AGPL-3.0-or-later"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://github.com/ma1uta/matrix-synapse-rest-password-provider/archive/v$pkgver/matrix-synapse-rest-password-provider-v$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="4e897562235531652bf74e05facd0a1ebcc249d0bd8f55932940c7bb9f65d98054fb8c910abbabcc074b421aecb0d6c8bca776003b0f57f1b00bc44f7b47fcf5 matrix-synapse-rest-password-provider-v0.1.3.tar.gz"
diff --git a/testing/matterbridge/APKBUILD b/testing/matterbridge/APKBUILD
deleted file mode 100644
index 60c204ca8f0..00000000000
--- a/testing/matterbridge/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Konstantin Kulikov <k.kulikov2@gmail.com>
-# Maintainer: Konstantin Kulikov <k.kulikov2@gmail.com>
-pkgname=matterbridge
-pkgver=1.17.5
-pkgrel=0
-_commit=8eb5e3cb # git rev-parse --short HEAD
-pkgdesc="Bridges between a growing number of chat protocols"
-url="https://github.com/42wim/matterbridge"
-arch="all"
-license="Apache-2.0"
-makedepends="go"
-subpackages="$pkgname-openrc"
-install="$pkgname.pre-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/42wim/matterbridge/archive/v$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd
- "
-
-export GOPATH=${GOPATH:-$srcdir/go}
-export GOCACHE=${GOCACHE:-$srcdir/go-build}
-export GOTMPDIR=${GOTMPDIR:-$srcdir}
-
-build() {
- go build -mod=vendor -ldflags="-w -s -X main.githash=$_commit" .
-}
-
-check() {
- go test -short -mod=vendor ./...
-}
-
-package() {
- install -Dm755 $builddir/$pkgname $pkgdir/usr/bin/$pkgname
- install -Dm755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/$pkgname
- install -Dm644 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/$pkgname
-}
-
-sha512sums="e6fc9d9c060c98969cc278db38583c20f98bcb80d9d6da3940d1cefc07e53675af212dc87d0769a40daf94154a151ed5f80d79dcb01bfc97d13431c828527b9f matterbridge-1.17.5.tar.gz
-4dfe463b4c0d2b7cf08c5976e5417af6ec84e11a1e1437356b1624517cb961032903a0a9e11167d0d6223fa9590c9ba157c1e257a718505ed3592627e65a66d0 matterbridge.initd
-43b5f450787c40e35e3a419b8f8c06a0ecf3f396ed8a8c58f672164468f788c13b50081ba1397fd857e1768790255616cb3a15f3a3c02603af7268cc8a84ea69 matterbridge.confd"
diff --git a/testing/matterbridge/matterbridge.confd b/testing/matterbridge/matterbridge.confd
deleted file mode 100644
index edfde9d41ac..00000000000
--- a/testing/matterbridge/matterbridge.confd
+++ /dev/null
@@ -1 +0,0 @@
-MATTERBRIDGE_OPTS="-conf /etc/matterbridge.toml"
diff --git a/testing/matterbridge/matterbridge.initd b/testing/matterbridge/matterbridge.initd
deleted file mode 100644
index 404e69f4eba..00000000000
--- a/testing/matterbridge/matterbridge.initd
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/sbin/openrc-run
-
-name=matterbridge
-description="Bridges between a growing number of chat protocols"
-
-command="/usr/bin/matterbridge"
-command_args="$MATTERBRIDGE_OPTS"
-command_background=yes
-command_user=matterbridge:matterbridge
-pidfile="/run/$RC_SVCNAME.pid"
-
-depend() {
- need net
- after firewall
-}
diff --git a/testing/matterbridge/matterbridge.pre-install b/testing/matterbridge/matterbridge.pre-install
deleted file mode 100644
index e1880aa8069..00000000000
--- a/testing/matterbridge/matterbridge.pre-install
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-name=matterbridge
-
-addgroup -S "$name" 2>/dev/null
-adduser -S -D -H -h /var/empty -s /sbin/nologin -G $name -g $name $name 2>/dev/null
-
-exit 0
diff --git a/testing/mattermost-desktop/APKBUILD b/testing/mattermost-desktop/APKBUILD
new file mode 100644
index 00000000000..47eb9dbaf4f
--- /dev/null
+++ b/testing/mattermost-desktop/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=mattermost-desktop
+pkgver=5.7.0
+pkgrel=0
+_pkgver="${pkgver/_rc/-rc.}"
+pkgdesc="Open source collaboration for developers"
+url="https://mattermost.com/"
+arch="aarch64 x86_64" # electron
+license="Apache-2.0"
+depends="electron"
+makedepends="
+ electron-dev
+ electron-tasje
+ nodejs
+ npm
+ python3
+ "
+options="net !check" # broken
+checkdepends="libx11-dev make"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/mattermost/desktop/archive/refs/tags/v$_pkgver/mattermost-v$_pkgver.tar.gz
+
+ mattermost-desktop
+ "
+builddir="$srcdir/desktop-$_pkgver"
+replaces="mattermost"
+
+prepare() {
+ default_prepare
+
+ git init
+ git config user.email x@x
+ git config user.name x
+ git commit --allow-empty --message "$(date -Is)" --no-gpg-sign
+
+ msg "Downloading dependencies"
+ npm ci --ignore-scripts
+}
+
+build() {
+ msg "Building the app resources"
+ NODE_ENV=production npm run build
+
+ msg "Building native modules"
+ (
+ # it doesn't have an install script with node-gyp and doesn't even have it in deps
+ cd node_modules/macos-notification-state
+ ../.bin/node-gyp rebuild --build-from-source --nodedir=/usr/include/electron/node_headers
+ )
+
+ msg "Removing devDependencies"
+ npm prune --omit=dev
+
+ msg "Packaging the app"
+ tasje --config electron-builder.json pack --additional-asar-unpack '*.node'
+}
+
+check() {
+ export ELECTRON_OVERRIDE_DIST_PATH=/usr/bin/electron
+ npm rebuild robotjs --build-from-source --nodedir=/usr/include/electron/node_headers
+
+ npm run test
+}
+
+package() {
+ install -Dm644 release/resources/app.asar "$pkgdir"/usr/lib/$pkgname/app.asar
+ cp -r release/resources/app.asar.unpacked/ "$pkgdir"/usr/lib/$pkgname/app.asar.unpacked
+ install -Dm644 release/Mattermost.Desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+ install -Dm755 "$srcdir"/mattermost-desktop "$pkgdir"/usr/bin/mattermost-desktop
+
+ while read -r size; do
+ install -Dm644 release/icons/$size.png "$pkgdir"/usr/share/icons/hicolor/$size/apps/$pkgname.png
+ done < release/icons/size-list
+}
+
+sha512sums="
+b6d0e12e81bc7fa75bba9b4808480db2b64c003e41faf31157612b7f234f76b11334c4fc375adec7b1744358e28e7847e92b78dc26d4e3c10bec860095b15efd mattermost-desktop-5.7.0.tar.gz
+4947e5e7db708f34c812735099c83228b63be7e0f27c19272449c48405a8a49b4f5aa9b45b802c9d6e55a4898ef750d3f9d033e65bb2d0cc906429c5d2864194 mattermost-desktop
+"
diff --git a/testing/mattermost-desktop/mattermost-desktop b/testing/mattermost-desktop/mattermost-desktop
new file mode 100755
index 00000000000..4af404ba534
--- /dev/null
+++ b/testing/mattermost-desktop/mattermost-desktop
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec electron /usr/lib/mattermost-desktop/app.asar "$@"
diff --git a/testing/mautrix-discord/APKBUILD b/testing/mautrix-discord/APKBUILD
new file mode 100644
index 00000000000..491c0f2e533
--- /dev/null
+++ b/testing/mautrix-discord/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mautrix-discord
+pkgver=0.6.5
+pkgrel=2
+pkgdesc="Matrix-Discord puppeting bridge"
+url="https://go.mau.fi/mautrix-discord/"
+arch="all"
+license="AGPL-3.0-or-later"
+depends="lottieconverter"
+makedepends="go olm-dev sqlite-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mautrix/discord/archive/v$pkgver.tar.gz
+ mautrix-discord.initd
+ mautrix-discord.confd
+ default-log-dir.patch
+"
+builddir="$srcdir/discord-$pkgver"
+options="net"
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ go build
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 mautrix-discord \
+ -t "$pkgdir"/usr/bin/
+ install -Dm644 example-config.yaml \
+ -t "$pkgdir"/etc/mautrix-discord/
+
+ install -Dm755 "$srcdir"/mautrix-discord.initd \
+ "$pkgdir"/etc/init.d/mautrix-discord
+ install -Dm644 "$srcdir"/mautrix-discord.confd \
+ "$pkgdir"/etc/conf.d/mautrix-discord
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+b52bc3a963c52970a6af334e985b959efc04e3181cac6d2c1f404b06ee94d19a2ed4a7edfcbe2248eb2ee5196e19f917c9451326593fc5b95724bdc7dd6fd936 mautrix-discord-0.6.5.tar.gz
+772c39fd22eccf4116ebe0b496a055a2807ef3b500a7bbc8838e2fc1fef8b05e20be80b7e7b515304914ca244349093a21cdcf42b2e6dd0bcbd45fef3358fd89 mautrix-discord.initd
+46c472289880a631389dbc7f40062858f7a11e2987f1183cb16d426aa50f57d4b57e4857e4f9852b1c930fc03ccf304bcd27a452681a570e97ec8174808cbf01 mautrix-discord.confd
+f2317ccd91959c2d6b6937ab09bbcb5e2472847c5b880c4a37a4dd96784705a503a5cfcb183017656d716dfceabbc55c33d1083f1cb26c7964bf6dd4dd57f364 default-log-dir.patch
+"
diff --git a/testing/mautrix-discord/default-log-dir.patch b/testing/mautrix-discord/default-log-dir.patch
new file mode 100644
index 00000000000..0739cce186c
--- /dev/null
+++ b/testing/mautrix-discord/default-log-dir.patch
@@ -0,0 +1,17 @@
+Upstream: No, Alpine specific
+Reason: We don't want to log into $PWD/logs by default but
+into /var/log/mautrix-discord.
+diff --git a/example-config.yaml b/example-config.yaml
+index a636e58..9674a1c 100644
+--- a/example-config.yaml
++++ b/example-config.yaml
+@@ -357,7 +357,7 @@ logging:
+ format: pretty-colored
+ - type: file
+ format: json
+- filename: ./logs/mautrix-discord.log
++ filename: /var/log/mautrix-discord/mautrix-discord.log
+ max_size: 100
+ max_backups: 10
+ compress: true
+
diff --git a/testing/mautrix-discord/mautrix-discord.confd b/testing/mautrix-discord/mautrix-discord.confd
new file mode 100644
index 00000000000..518d93ee0c7
--- /dev/null
+++ b/testing/mautrix-discord/mautrix-discord.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/mautrix-discord
+
+# Location of configuration file
+config="/etc/mautrix-discord/config.yaml"
+
+# Extra arguments to be passed when starting mautrix-discord
+# command_args=""
diff --git a/testing/mautrix-discord/mautrix-discord.initd b/testing/mautrix-discord/mautrix-discord.initd
new file mode 100644
index 00000000000..b5d33392208
--- /dev/null
+++ b/testing/mautrix-discord/mautrix-discord.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="mautrix-discord"
+description="Daemon for Mautrix-Discord, a Matrix-Discord puppeting bridge"
+
+: ${config:="/etc/mautrix-discord/config.yaml"}
+: ${command_user:="mautrix-discord:mautrix-discord"}
+
+command="/usr/bin/mautrix-discord"
+command_args="-c $config $command_args"
+
+depends() {
+ need net
+}
+
+start_pre() {
+ checkpath --file --owner "$command_user" "$config"
+ checkpath --directory --owner "$command_user" /var/log/mautrix-discord
+}
diff --git a/testing/mautrix-discord/mautrix-discord.pre-install b/testing/mautrix-discord/mautrix-discord.pre-install
new file mode 100644
index 00000000000..9bc4428b595
--- /dev/null
+++ b/testing/mautrix-discord/mautrix-discord.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S mautrix-discord 2>/dev/null
+adduser -S -D -H -h /var/lib/mautrix-discord -s /sbin/nologin -G mautrix-discord -g mautrix-discord mautrix-discord 2>/dev/null
+
+exit 0
diff --git a/testing/mautrix-gmessages/APKBUILD b/testing/mautrix-gmessages/APKBUILD
new file mode 100644
index 00000000000..459665c403a
--- /dev/null
+++ b/testing/mautrix-gmessages/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mautrix-gmessages
+pkgver=0.4.0
+pkgrel=0
+pkgdesc="Matrix-Google Messages puppeting bridge"
+url="https://go.mau.fi/mautrix-gmessages/"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="go olm-dev sqlite-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mautrix/gmessages/archive/v$pkgver.tar.gz
+ mautrix-gmessages.initd
+ mautrix-gmessages.confd
+ default-log-dir.patch
+ "
+builddir="$srcdir/gmessages-$pkgver"
+options="net"
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ go build
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 mautrix-gmessages \
+ -t "$pkgdir"/usr/bin/
+ install -Dm644 example-config.yaml \
+ -t "$pkgdir"/etc/mautrix-gmessages/
+
+ install -Dm755 "$srcdir"/mautrix-gmessages.initd \
+ "$pkgdir"/etc/init.d/mautrix-gmessages
+ install -Dm644 "$srcdir"/mautrix-gmessages.confd \
+ "$pkgdir"/etc/conf.d/mautrix-gmessages
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+5155910eff8f5da6f28ab264439dd1990eb07116f25744f4681e41c9bb794ae73ef997760193e439674c55bcb26c5d457c1c07b2e9b277afd61c07aed6a0b10f mautrix-gmessages-0.4.0.tar.gz
+4d8d9752b97a64b1b0d97031aced7d202f9bf3462d1362a137853987de6b870b5f8a599943b63b730024ca477665f27f611090ac8c03e5fc24b5ed719d589e0a mautrix-gmessages.initd
+3332b10948fc07845b3b9a775bbb01057d2e6c768e25b429a451dbfb668195eb9f2c1d6b435a944aa7e5618b6ae609fb16e471696176fe3ae0768dffec6618e5 mautrix-gmessages.confd
+336298e0506bb3056733499098c291376e1777a24c994bdb92e4b2d62e954a59cddb66e60ce04100a86bc9ef4b7eb95353e003f9a3db2971040b72c9df0cc21b default-log-dir.patch
+"
diff --git a/testing/mautrix-gmessages/default-log-dir.patch b/testing/mautrix-gmessages/default-log-dir.patch
new file mode 100644
index 00000000000..abea44a5fb2
--- /dev/null
+++ b/testing/mautrix-gmessages/default-log-dir.patch
@@ -0,0 +1,17 @@
+Upstream: No, Alpine specific
+Reason: We don't want to log into $PWD/logs by default but
+into /var/log/mautrix-gmessages.
+diff --git a/example-config.yaml b/example-config.yaml
+index a636e58..9674a1c 100644
+--- a/example-config.yaml
++++ b/example-config.yaml
+@@ -399,7 +399,7 @@ logging:
+ format: pretty-colored
+ - type: file
+ format: json
+- filename: ./logs/mautrix-gmessages.log
++ filename: /var/log/mautrix-gmessages/mautrix-gmessages.log
+ max_size: 100
+ max_backups: 10
+ compress: true
+
diff --git a/testing/mautrix-gmessages/mautrix-gmessages.confd b/testing/mautrix-gmessages/mautrix-gmessages.confd
new file mode 100644
index 00000000000..1d405d64c5a
--- /dev/null
+++ b/testing/mautrix-gmessages/mautrix-gmessages.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/mautrix-gmessages
+
+# Location of configuration file
+config="/etc/mautrix-gmessages/config.yaml"
+
+# Extra arguments to be passed when starting mautrix-gmessages
+# command_args=""
diff --git a/testing/mautrix-gmessages/mautrix-gmessages.initd b/testing/mautrix-gmessages/mautrix-gmessages.initd
new file mode 100644
index 00000000000..6d8804b63fc
--- /dev/null
+++ b/testing/mautrix-gmessages/mautrix-gmessages.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="mautrix-gmessages"
+description="Daemon for Mautrix-GMessages, a Matrix-Google Messages puppeting bridge"
+
+: ${config:="/etc/mautrix-gmessages/config.yaml"}
+: ${command_user:="mautrix-gmessages:mautrix-gmessages"}
+
+command="/usr/bin/mautrix-gmessages"
+command_args="-c $config $command_args"
+
+depends() {
+ need net
+}
+
+start_pre() {
+ checkpath --file --owner "$command_user" "$config"
+ checkpath --directory --owner "$command_user" /var/log/mautrix-gmessages
+}
diff --git a/testing/mautrix-gmessages/mautrix-gmessages.pre-install b/testing/mautrix-gmessages/mautrix-gmessages.pre-install
new file mode 100644
index 00000000000..93f835bfaef
--- /dev/null
+++ b/testing/mautrix-gmessages/mautrix-gmessages.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S mautrix-gmessages 2>/dev/null
+adduser -S -D -H -h /var/lib/mautrix-gmessages -s /sbin/nologin -G mautrix-gmessages -g mautrix-gmessages mautrix-gmessages 2>/dev/null
+
+exit 0
diff --git a/testing/mautrix-meta/APKBUILD b/testing/mautrix-meta/APKBUILD
new file mode 100644
index 00000000000..9334f19e271
--- /dev/null
+++ b/testing/mautrix-meta/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mautrix-meta
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="Matrix-Facebook Messenger and Instagram DM puppeting bridge"
+url="https://go.mau.fi/mautrix-meta/"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="go olm-dev sqlite-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mautrix/meta/archive/v$pkgver.tar.gz
+ mautrix-meta.initd
+ mautrix-meta.confd
+ default-log-dir.patch
+"
+builddir="$srcdir/meta-$pkgver"
+options="net !check" # only test requires test data we don't have
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ go build -ldflags "-X main.Tag=$pkgver -X 'main.BuildTime=$(date '+%b %_d %Y, %H:%M:%S')'"
+}
+
+package() {
+ install -Dm755 mautrix-meta \
+ -t "$pkgdir"/usr/bin/
+ install -Dm644 example-config.yaml \
+ -t "$pkgdir"/etc/mautrix-meta/
+
+ install -Dm755 "$srcdir"/mautrix-meta.initd \
+ "$pkgdir"/etc/init.d/mautrix-meta
+ install -Dm644 "$srcdir"/mautrix-meta.confd \
+ "$pkgdir"/etc/conf.d/mautrix-meta
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+099c105ad8834f585215d0d9e3db16c1fe6d6064fe480b944e895527e44c069623f7667db8e84f90004df72dd49bdd1e1359b46e7987814e7c41a0b344ec3a67 mautrix-meta-0.3.0.tar.gz
+9b870d61aa277ae3434df0167b64bb7cdff8f29bd3493f305cef40e2c132089a9a106d30161e81ec76a09c608c652caf83e1c3d481589cdf4f4791965d9fe435 mautrix-meta.initd
+473d1ba73d1e311f8ebb364d495bab5289a167414ab4aa824c9ed7a37ea93cd3dd4ef0262963c9e300eb748b0dff6a030add39cbf636acb6db208b6c01aaec3d mautrix-meta.confd
+c95f99af50ef5841af7f654fd37ca34470eb3c918cec2ea624a149942901350b1b154207b8b0a1ddb763d4c65850379a44898b5b208afd01812c9993c7621ada default-log-dir.patch
+"
diff --git a/testing/mautrix-meta/default-log-dir.patch b/testing/mautrix-meta/default-log-dir.patch
new file mode 100644
index 00000000000..11c7f518e1b
--- /dev/null
+++ b/testing/mautrix-meta/default-log-dir.patch
@@ -0,0 +1,17 @@
+Upstream: No, Alpine specific
+Reason: We don't want to log into $PWD/logs by default but
+into /var/log/mautrix-meta.
+diff --git a/example-config.yaml b/example-config.yaml
+index a636e58..9674a1c 100644
+--- a/example-config.yaml
++++ b/example-config.yaml
+@@ -333,7 +333,7 @@ logging:
+ format: pretty-colored
+ - type: file
+ format: json
+- filename: ./logs/mautrix-meta.log
++ filename: /var/log/mautrix-meta/mautrix-meta.log
+ max_size: 100
+ max_backups: 10
+ compress: true
+
diff --git a/testing/mautrix-meta/mautrix-meta.confd b/testing/mautrix-meta/mautrix-meta.confd
new file mode 100644
index 00000000000..834b7fdb3a0
--- /dev/null
+++ b/testing/mautrix-meta/mautrix-meta.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/mautrix-meta
+
+# Location of configuration file
+config="/etc/mautrix-meta/config.yaml"
+
+# Extra arguments to be passed when starting mautrix-meta
+# command_args=""
diff --git a/testing/mautrix-meta/mautrix-meta.initd b/testing/mautrix-meta/mautrix-meta.initd
new file mode 100644
index 00000000000..5dee6c217c9
--- /dev/null
+++ b/testing/mautrix-meta/mautrix-meta.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="mautrix-meta"
+description="Daemon for Mautrix-Meta, a Matrix-Facebook Messenger and Instagram DM puppeting bridge"
+
+: ${config:="/etc/mautrix-meta/config.yaml"}
+: ${command_user:="mautrix-meta:mautrix-meta"}
+
+command="/usr/bin/mautrix-meta"
+command_args="-c $config $command_args"
+
+depends() {
+ need net
+}
+
+start_pre() {
+ checkpath --file --owner "$command_user" "$config"
+ checkpath --directory --owner "$command_user" /var/log/mautrix-meta
+}
diff --git a/testing/mautrix-meta/mautrix-meta.pre-install b/testing/mautrix-meta/mautrix-meta.pre-install
new file mode 100644
index 00000000000..020b7614ed9
--- /dev/null
+++ b/testing/mautrix-meta/mautrix-meta.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S mautrix-meta 2>/dev/null
+adduser -S -D -H -h /var/lib/mautrix-meta -s /sbin/nologin -G mautrix-meta -g mautrix-meta mautrix-meta 2>/dev/null
+
+exit 0
diff --git a/testing/mautrix-signal/APKBUILD b/testing/mautrix-signal/APKBUILD
new file mode 100644
index 00000000000..c0cc794ed5d
--- /dev/null
+++ b/testing/mautrix-signal/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mautrix-signal
+pkgver=0.6.0
+_libsignalver=0.44.0
+pkgrel=0
+pkgdesc="A Matrix-Signal puppeting bridge"
+url="https://go.mau.fi/mautrix-signal/"
+arch="all !armhf !armv7 !x86 !ppc64le !s390x" # boring ssl only supports 64 bit, and doesn't set OPENSSL_64_BIT for ppc64le and s390x
+license="AGPL-3.0-or-later"
+makedepends="
+ cargo
+ cargo-auditable
+ clang-libclang
+ cmake
+ go
+ olm-dev
+ protoc
+ sqlite-dev
+"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="
+ signal-$pkgver.tar.gz::https://github.com/mautrix/signal/archive/refs/tags/v$pkgver.tar.gz
+ libsignal-$_libsignalver.tar.gz::https://github.com/signalapp/libsignal/archive/refs/tags/v$_libsignalver.tar.gz
+ mautrix-signal.initd
+ mautrix-signal.confd
+ default-log-dir.patch
+"
+builddir="$srcdir/signal-$pkgver"
+options="net"
+_rust_dir=pkg/libsignalgo/libsignal
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ mv -T "$srcdir/libsignal-$_libsignalver" "$_rust_dir"
+ cd "$_rust_dir"
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ cd "$_rust_dir"
+ cargo auditable build -p libsignal-ffi --release --frozen
+ mv target/release/libsignal_ffi.a "$builddir"
+ cd "$builddir"
+ LIBRARY_PATH=. go build -ldflags "-X main.Tag=$pkgver -X 'main.BuildTime=$(date '+%b %_d %Y, %H:%M:%S')'"
+}
+
+check() {
+ LIBRARY_PATH=. go test ./...
+}
+
+package() {
+ install -Dm755 mautrix-signal \
+ -t "$pkgdir"/usr/bin/
+ install -Dm644 example-config.yaml \
+ -t "$pkgdir"/etc/mautrix-signal/
+
+ install -Dm755 "$srcdir"/mautrix-signal.initd \
+ "$pkgdir"/etc/init.d/mautrix-signal
+ install -Dm644 "$srcdir"/mautrix-signal.confd \
+ "$pkgdir"/etc/conf.d/mautrix-signal
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+ac55ed462b442bc28045bd639359151b5717fef374f74a150c6597f4252cfb406c16de2b7989cb49b5e0e3c29f447427e19ac860048f7a9b2b020823694ffdba signal-0.6.0.tar.gz
+ef5bb03e2ebf37aefb31eb7c2e6c5196d07ca90f056e834a580f6293505789cd56268296a4ebc44b60b7550f2d6995ff1d8e4d27e73e783dedc29d097135d784 libsignal-0.44.0.tar.gz
+90555c016fc9d9aa90b5115b898c3e2f365d277390862fa6de693970db53d6ae41e0e55ca1ca5315d52fc14f61a58e7d8713aefd4eb4050241cfdbb27f9a8213 mautrix-signal.initd
+ffcfed000e4ca779a055ddf4374753e23e424501a70a148e9785a4c4f6f2d32e94e2275a766ac9435b2509a1d621821a2baad8c5e4964ef08cbd13045cb430df mautrix-signal.confd
+8c355de5a4a6714afa2aec594f9035b8cb25fab153e83a2222a17f2068d10a970f9ef2e1854085a122494df152831dfcdeb5612f648dc685fe6d9c0b4b4107f4 default-log-dir.patch
+"
diff --git a/testing/mautrix-signal/default-log-dir.patch b/testing/mautrix-signal/default-log-dir.patch
new file mode 100644
index 00000000000..b1692b0f43a
--- /dev/null
+++ b/testing/mautrix-signal/default-log-dir.patch
@@ -0,0 +1,17 @@
+Upstream: No, Alpine specific
+Reason: We don't want to log into $PWD/logs by default but
+into /var/log/mautrix-signal.
+diff --git a/example-config.yaml b/example-config.yaml
+index a636e58..9674a1c 100644
+--- a/example-config.yaml
++++ b/example-config.yaml
+@@ -300,7 +300,7 @@ logging:
+ format: pretty-colored
+ - type: file
+ format: json
+- filename: ./logs/mautrix-signal.log
++ filename: /var/log/mautrix-signal/mautrix-signal.log
+ max_size: 100
+ max_backups: 10
+ compress: true
+
diff --git a/testing/mautrix-signal/mautrix-signal.confd b/testing/mautrix-signal/mautrix-signal.confd
new file mode 100644
index 00000000000..53d94bd7afd
--- /dev/null
+++ b/testing/mautrix-signal/mautrix-signal.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/mautrix-signal
+
+# Location of configuration file
+config="/etc/mautrix-signal/config.yaml"
+
+# Extra arguments to be passed when starting mautrix-signal
+# command_args=""
diff --git a/testing/mautrix-signal/mautrix-signal.initd b/testing/mautrix-signal/mautrix-signal.initd
new file mode 100644
index 00000000000..f8146da2461
--- /dev/null
+++ b/testing/mautrix-signal/mautrix-signal.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="mautrix-signal"
+description="Daemon for Mautrix-Signal, a Matrix-Signal puppeting bridge"
+
+: ${config:="/etc/mautrix-signal/config.yaml"}
+: ${command_user:="mautrix-signal:mautrix-signal"}
+
+command="/usr/bin/mautrix-signal"
+command_args="-c $config $command_args"
+
+depends() {
+ need net
+}
+
+start_pre() {
+ checkpath --file --owner "$command_user" "$config"
+ checkpath --directory --owner "$command_user" /var/log/mautrix-signal
+}
diff --git a/testing/mautrix-signal/mautrix-signal.pre-install b/testing/mautrix-signal/mautrix-signal.pre-install
new file mode 100644
index 00000000000..83a633e59fc
--- /dev/null
+++ b/testing/mautrix-signal/mautrix-signal.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S mautrix-signal 2>/dev/null
+adduser -S -D -H -h /var/lib/mautrix-signal -s /sbin/nologin -G mautrix-signal -g mautrix-signal mautrix-signal 2>/dev/null
+
+exit 0
diff --git a/testing/mautrix-slack/APKBUILD b/testing/mautrix-slack/APKBUILD
new file mode 100644
index 00000000000..b56d9bd3d9c
--- /dev/null
+++ b/testing/mautrix-slack/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mautrix-slack
+pkgver=0_git20230925
+_gitrev=4530ff397d08d93b673cd71da4c2a75d969ca0df
+pkgrel=2
+pkgdesc="Matrix-Slack puppeting bridge"
+url="https://go.mau.fi/mautrix-slack/"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="go olm-dev sqlite-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/mautrix/slack/archive/$_gitrev.tar.gz
+ mautrix-slack.initd
+ mautrix-slack.confd
+ default-log-dir.patch
+ "
+builddir="$srcdir/slack-$_gitrev"
+options="net"
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+ go build
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 mautrix-slack \
+ -t "$pkgdir"/usr/bin/
+ install -Dm644 example-config.yaml \
+ -t "$pkgdir"/etc/mautrix-slack/
+
+ install -Dm755 "$srcdir"/mautrix-slack.initd \
+ "$pkgdir"/etc/init.d/mautrix-slack
+ install -Dm644 "$srcdir"/mautrix-slack.confd \
+ "$pkgdir"/etc/conf.d/mautrix-slack
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+d2bd2b4a52233d2ce59c7fde956ae253c97c6e28913b479fd64708759fceae8154dc71d54dadb8d515fccf6a5a43c0b77a94d0938e4c2a8333a18ac9b7965a7f mautrix-slack-4530ff397d08d93b673cd71da4c2a75d969ca0df.tar.gz
+84d1b9d35eab5345f236571830f0d18c1028c82e596f7c2ff17036bbc46ef1d2a11a214f2a5b28e4774045d6f0369381097c445479bd45f0f1e0157f0bf12040 mautrix-slack.initd
+cda8cd828fa1e4e4c302adc79a51d9af99fb428a81639691afefad6b575f6d2ac75730ea2cc455be514fe65a9836bdeb530a86b553c34a47e4a56796ce843fe1 mautrix-slack.confd
+9444fec2555b1a4a1a4db2f0d08179fdd7a9d725e0a7414cea35591dbaea642978ce2020b6889f54c40f69627b167eaa1a796abcaf216ade5a6457584c38f8dc default-log-dir.patch
+"
diff --git a/testing/mautrix-slack/default-log-dir.patch b/testing/mautrix-slack/default-log-dir.patch
new file mode 100644
index 00000000000..82c8818bb36
--- /dev/null
+++ b/testing/mautrix-slack/default-log-dir.patch
@@ -0,0 +1,17 @@
+Upstream: No, Alpine specific
+Reason: We don't want to log into $PWD/logs by default but
+into /var/log/mautrix-slack.
+diff --git a/example-config.yaml b/example-config.yaml
+index a636e58..9674a1c 100644
+--- a/example-config.yaml
++++ b/example-config.yaml
+@@ -288,7 +288,7 @@ logging:
+ format: pretty-colored
+ - type: file
+ format: json
+- filename: ./logs/mautrix-slack.log
++ filename: /var/log/mautrix-slack/mautrix-slack.log
+ max_size: 100
+ max_backups: 10
+ compress: true
+
diff --git a/testing/mautrix-slack/mautrix-slack.confd b/testing/mautrix-slack/mautrix-slack.confd
new file mode 100644
index 00000000000..9bea816b80d
--- /dev/null
+++ b/testing/mautrix-slack/mautrix-slack.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/mautrix-slack
+
+# Location of configuration file
+config="/etc/mautrix-slack/config.yaml"
+
+# Extra arguments to be passed when starting mautrix-slack
+# command_args=""
diff --git a/testing/mautrix-slack/mautrix-slack.initd b/testing/mautrix-slack/mautrix-slack.initd
new file mode 100644
index 00000000000..ffd5da54eb7
--- /dev/null
+++ b/testing/mautrix-slack/mautrix-slack.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="mautrix-slack"
+description="Daemon for Mautrix-Slack, a Matrix-Slack puppeting bridge"
+
+: ${config:="/etc/mautrix-slack/config.yaml"}
+: ${command_user:="mautrix-slack:mautrix-slack"}
+
+command="/usr/bin/mautrix-slack"
+command_args="-c $config $command_args"
+
+depends() {
+ need net
+}
+
+start_pre() {
+ checkpath --file --owner "$command_user" "$config"
+ checkpath --directory --owner "$command_user" /var/log/mautrix-slack
+}
diff --git a/testing/mautrix-slack/mautrix-slack.pre-install b/testing/mautrix-slack/mautrix-slack.pre-install
new file mode 100644
index 00000000000..4f04f9d2de4
--- /dev/null
+++ b/testing/mautrix-slack/mautrix-slack.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S mautrix-slack 2>/dev/null
+adduser -S -D -H -h /var/lib/mautrix-slack -s /sbin/nologin -G mautrix-slack -g mautrix-slack mautrix-slack 2>/dev/null
+
+exit 0
diff --git a/testing/mautrix-telegram/APKBUILD b/testing/mautrix-telegram/APKBUILD
deleted file mode 100644
index 661a9f8d2fb..00000000000
--- a/testing/mautrix-telegram/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mautrix-telegram
-pkgver=0.8.0_rc5
-pkgrel=1
-pkgdesc="A Matrix-Telegram hybrid puppeting/relaybot bridge"
-url="https://github.com/tulir/mautrix-telegram"
-arch="noarch"
-license="AGPL-3.0-or-later"
-depends="python3 py3-aiohttp py3-mautrix py3-ruamel.yaml py3-magic py3-sqlalchemy py3-alembic py3-commonmark py3-telethon py3-telethon-session-sqlalchemy"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-runner py3-pytest-mock py3-pytest-asyncio"
-install="$pkgname.pre-install $pkgname.post-upgrade"
-subpackages="$pkgname-openrc"
-source="https://github.com/tulir/mautrix-telegram/archive/v${pkgver/_/-}/mautrix-telegram-v${pkgver/_/-}.tar.gz
- mautrix-telegram.initd
- mautrix-telegram.confd
- default-log-dir.patch
- "
-builddir="$srcdir/$pkgname-${pkgver/_/-}"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- # Remove installed tests
- local _site_packages=$(python3 -c "import site; print(site.getsitepackages()[0])")
- rm -r "$pkgdir/$_site_packages"/tests/
-
- install -Dm644 mautrix_telegram/example-config.yaml "$pkgdir"/etc/mautrix-telegram/example-config.yaml
- install -Dm755 "$srcdir"/mautrix-telegram.initd "$pkgdir"/etc/init.d/mautrix-telegram
- install -Dm644 "$srcdir"/mautrix-telegram.confd "$pkgdir"/etc/conf.d/mautrix-telegram
-
- mkdir -p "$pkgdir"/usr/share/mautrix-telegram
- mv \
- "$pkgdir"/usr/alembic \
- "$pkgdir"/usr/alembic.ini \
- "$pkgdir"/usr/share/mautrix-telegram/
-}
-sha512sums="c5cf00af060cfc4c5182b89a2c44529e6c1d71ed2aedb5f7a88c5f3b2a89ecea693cd93635946b543daa0ae174c1845cd0594bb7593b46c8e819202899050aa3 mautrix-telegram-v0.8.0-rc5.tar.gz
-394e50290a212e0f68a9b4d53dfa181df3cc0494f01c88d701db018bc1ec454f0f92fd56b750c6229ffaf0d1b6832f9f2177a3a1444b9a3b92d23ad3194b566c mautrix-telegram.initd
-7b3c15dd2d0671c4c777bcf4f2e905d9a0b639a54828313ac9db1a9793fde3d092e92f18aa896bff94b9a81db3df74b3de65661c6879cb648d36f5cec2437df0 mautrix-telegram.confd
-7e75b46226c928f3aa64b13a3042eae7da164006b262f40ff5bbfdda9e91c80c2189a009735539d2349a638ad11c6ce0bf4bd93db12f485cb4906553283512c3 default-log-dir.patch"
diff --git a/testing/mautrix-telegram/default-log-dir.patch b/testing/mautrix-telegram/default-log-dir.patch
deleted file mode 100644
index eaccc4df41e..00000000000
--- a/testing/mautrix-telegram/default-log-dir.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream: No, Alpine specific
-Reason: We don't want to log into $PWD by default but into /var/log/mautrix-telegram.log
-
-diff --git a/mautrix_telegram/example-config.yaml b/mautrix_telegram/example-config.yaml
-index 70bc111..9875175 100644
---- a/mautrix_telegram/example-config.yaml
-+++ b/mautrix_telegram/example-config.yaml
-@@ -415,7 +415,7 @@ logging:
- file:
- class: logging.handlers.RotatingFileHandler
- formatter: normal
-- filename: ./mautrix-telegram.log
-+ filename: /var/log/mautrix-telegram.log
- maxBytes: 10485760
- backupCount: 10
- console:
diff --git a/testing/mautrix-telegram/mautrix-telegram.confd b/testing/mautrix-telegram/mautrix-telegram.confd
deleted file mode 100644
index d4632241838..00000000000
--- a/testing/mautrix-telegram/mautrix-telegram.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-# Configuration for /etc/init.d/mautrix-telegram
-
-# Location of configuration file
-config="/etc/mautrix-telegram/config.yaml"
-
-# Extra arguments to be passed when starting mautrix-telegram
-# command_args=""
diff --git a/testing/mautrix-telegram/mautrix-telegram.initd b/testing/mautrix-telegram/mautrix-telegram.initd
deleted file mode 100644
index 37ec98c6724..00000000000
--- a/testing/mautrix-telegram/mautrix-telegram.initd
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name="mautrix-telegram"
-description="Daemon for mautrix-telegram, the Matrix-Telegram hybrid puppeting/relaybot bridge"
-
-: ${command_user:="mautrix-telegram:mautrix-telegram"}
-: ${config:="/etc/mautrix-telegram/config.yaml"}
-
-command="/usr/bin/mautrix-telegram"
-command_args="-c $config $command_args"
-
-depends() {
- need net
-}
-
-start_pre() {
- checkpath --file --owner "$command_user" /etc/mautrix-telegram/config.yaml
- checkpath --file --owner "$command_user" /var/log/mautrix-telegram.log
-}
diff --git a/testing/mautrix-telegram/mautrix-telegram.post-upgrade b/testing/mautrix-telegram/mautrix-telegram.post-upgrade
deleted file mode 100644
index d4f7d0a8c83..00000000000
--- a/testing/mautrix-telegram/mautrix-telegram.post-upgrade
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-cat <<EOF
-You might need to upgrade the database after upgrading to a newer version of
-mautrix-telegram. You can do so using alembic. After making sure it's installed
-run:
-
- cd /usr/share/mautrix-telegram && alembic -x config=/etc/mautrix-telegram/config.yaml upgrade head
-
-Then restart the service.
-EOF
diff --git a/testing/mautrix-telegram/mautrix-telegram.pre-install b/testing/mautrix-telegram/mautrix-telegram.pre-install
deleted file mode 100644
index 488396b1122..00000000000
--- a/testing/mautrix-telegram/mautrix-telegram.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S mautrix-telegram 2>/dev/null
-adduser -S -D -H -h /var/lib/mautrix-telegram -s /sbin/nologin -G mautrix-telegram -g mautrix-telegram mautrix-telegram 2>/dev/null
-
-exit 0
diff --git a/testing/mautrix-whatsapp/APKBUILD b/testing/mautrix-whatsapp/APKBUILD
deleted file mode 100644
index 40d96399a06..00000000000
--- a/testing/mautrix-whatsapp/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=mautrix-whatsapp
-pkgver=0_git20200521
-_commit=b4949eec5982643502bb9787cf5e2872a78807c1
-pkgrel=2
-pkgdesc="A Matrix-WhatsApp puppeting bridge"
-url="https://maunium.net/go/mautrix-whatsapp"
-arch="all !s390x"
-license="AGPL-3.0-or-later"
-makedepends="go olm-dev"
-install="$pkgname.pre-install $pkgname.pre-upgrade"
-subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tulir/mautrix-whatsapp/archive/$_commit.tar.gz
- mautrix-whatsapp.initd
- mautrix-whatsapp.confd
- default-log-dir.patch
- "
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- go build
-}
-
-check() {
- go test -v ./...
-}
-
-package() {
- install -Dm755 mautrix-whatsapp "$pkgdir"/usr/bin/mautrix-whatsapp
- install -Dm644 example-config.yaml "$pkgdir"/etc/mautrix-whatsapp/example-config.yaml
- install -Dm755 "$srcdir"/mautrix-whatsapp.initd "$pkgdir"/etc/init.d/mautrix-whatsapp
- install -Dm755 "$srcdir"/mautrix-whatsapp.confd "$pkgdir"/etc/conf.d/mautrix-whatsapp
-}
-
-sha512sums="b8e699c55c54611ec11792aaa4aa8ffbe31d041cb7751f5e91ef55fa552298e73c361ca84d31bc3fc2af54c499cd524aed3885de94562f360c778d9058eab7a4 mautrix-whatsapp-0_git20200521.tar.gz
-c735950faace99380a5cfd998ede482108381fcb48bdcd2405d32a4a84e12b2ee75995c3c12160d257479612dcd0ea4c773d4d7b6bef6f6bbbd0373f31f20acd mautrix-whatsapp.initd
-9349b660273c63d2973f1b99ddbd98469dddc098157380603210159f17d3cb1eb55e71dbd21550b20d40831f4da320225e7c03441667e2750e30a2e1fa03acfe mautrix-whatsapp.confd
-5642900e35028d4a0918ed9fd73f6dee402d895dff53423aa32f728703a01492d5aba64ec63984e2929d4630e43f7ed35bec71039fb4b8051703c421f38013da default-log-dir.patch"
diff --git a/testing/mautrix-whatsapp/default-log-dir.patch b/testing/mautrix-whatsapp/default-log-dir.patch
deleted file mode 100644
index 629fde6bada..00000000000
--- a/testing/mautrix-whatsapp/default-log-dir.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream: No, Alpine specific
-Reason: We don't want to log into $PWD/logs by default but
-into /var/log/mautrix-whatsapp.
-diff --git a/example-config.yaml b/example-config.yaml
-index dfe2c25..ee79796 100644
---- a/example-config.yaml
-+++ b/example-config.yaml
-@@ -188,7 +188,7 @@ bridge:
- # Logging config.
- logging:
- # The directory for log files. Will be created if not found.
-- directory: ./logs
-+ directory: /var/log/mautrix-whatsapp
- # Available variables: .Date for the file date and .Index for different log files on the same day.
- file_name_format: "{{.Date}}-{{.Index}}.log"
- # Date format for file names in the Go time format: https://golang.org/pkg/time/#pkg-constants
diff --git a/testing/mautrix-whatsapp/mautrix-whatsapp.confd b/testing/mautrix-whatsapp/mautrix-whatsapp.confd
deleted file mode 100644
index 2ff3d33dd54..00000000000
--- a/testing/mautrix-whatsapp/mautrix-whatsapp.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-# Configuration for /etc/init.d/mautrix-whatsapp
-
-# Location of configuration file
-config="/etc/mautrix-whatsapp/config.yaml"
-
-# Extra arguments to be passed when starting mautrix-whatsapp
-# command_args=""
diff --git a/testing/mautrix-whatsapp/mautrix-whatsapp.initd b/testing/mautrix-whatsapp/mautrix-whatsapp.initd
deleted file mode 100644
index 138ab8e615f..00000000000
--- a/testing/mautrix-whatsapp/mautrix-whatsapp.initd
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name="mautrix-whatsapp"
-description="Daemon for Mautrix-Whatsapp, a Matrix-WhatsApp puppeting bridge"
-
-: ${config:="/etc/mautrix-whatsapp/config.yaml"}
-: ${command_user:="mautrix-whatsapp:mautrix-whatsapp"}
-
-command="/usr/bin/mautrix-whatsapp"
-command_args="-c $config $command_args"
-
-depends() {
- need net
-}
-
-start_pre() {
- checkpath --file --owner "$command_user" /etc/mautrix-whatsapp/config.yaml
- checkpath --file --owner "$command_user" /etc/mautrix-whatsapp/registration.yaml
- checkpath --directory --owner "$command_user" /var/log/mautrix-whatsapp
-}
diff --git a/testing/mautrix-whatsapp/mautrix-whatsapp.pre-install b/testing/mautrix-whatsapp/mautrix-whatsapp.pre-install
deleted file mode 100644
index 14f7ec9eb63..00000000000
--- a/testing/mautrix-whatsapp/mautrix-whatsapp.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S mautrix-whatsapp 2>/dev/null
-adduser -S -D -H -h /var/lib/mautrix-whatsapp -s /sbin/nologin -G mautrix-whatsapp -g mautrix-whatsapp mautrix-whatsapp 2>/dev/null
-
-exit 0
diff --git a/testing/mautrix-whatsapp/mautrix-whatsapp.pre-upgrade b/testing/mautrix-whatsapp/mautrix-whatsapp.pre-upgrade
deleted file mode 120000
index e105e629a44..00000000000
--- a/testing/mautrix-whatsapp/mautrix-whatsapp.pre-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-mautrix-whatsapp.pre-install \ No newline at end of file
diff --git a/testing/maxima/APKBUILD b/testing/maxima/APKBUILD
new file mode 100644
index 00000000000..9d2efdec9a6
--- /dev/null
+++ b/testing/maxima/APKBUILD
@@ -0,0 +1,88 @@
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+pkgname=maxima
+pkgver=5.47.0
+pkgrel=7
+pkgdesc="Sophisticated computer algebra system"
+url="http://maxima.sourceforge.net"
+# riscv64: TODO after Alpine 3.20
+arch="all !riscv64"
+license="GPL-2.0-or-later"
+_ecl_version="23.9.9"
+depends="texinfo shared-mime-info"
+makedepends="
+ autoconf
+ automake
+ ecl-dev~=$_ecl_version
+ gc-dev
+ gmp-dev
+ libffi-dev
+ perl
+ python3
+ "
+checkdepends="gnuplot"
+subpackages="
+ $pkgname-doc
+ $pkgname-doc-extra
+ $pkgname-bash-completion
+ $pkgname-emacs
+ "
+source="
+ maxima-$pkgver.tar.gz::https://sourceforge.net/projects/maxima/files/Maxima-source/$pkgver-source/maxima-$pkgver.tar.gz/download
+ handle-multiple-ldflags.patch
+ "
+options="!check" # take hours
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --enable-ecl \
+ --with-default-lisp=ecl
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ # remove unused files
+ find "$pkgdir" -type d -iname tests -exec rm -r {} \+
+
+ install -Dm664 src/binary-ecl/maxima.fas -t "$pkgdir"/usr/lib/ecl-$_ecl_version/
+}
+
+extra() {
+ pkgdesc="$pkgdesc (extra html documentation + demos)"
+
+ amove usr/share/$pkgname/$pkgver/doc
+ amove usr/share/$pkgname/$pkgver/demo
+}
+
+emacs() {
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs"
+ pkgdesc="Emacs plugins for $pkgname"
+
+ amove usr/share/emacs
+}
+
+sha512sums="
+953b98336eb086069edaa917981372450ce165dedd7a7b39b181d3f2d8b089551eea943e0084148eaa3ded395dcba9135509d3d11d9132ab7a3ad8bb800d3a11 maxima-5.47.0.tar.gz
+58b574a91f14aa1568b43ce96ac847babed75e91b68be25f40d7da1f09d1e4c8a37f549d33d7566c54e546f4825e8f8f9038777460beea0d3f9282e1ead27eb0 handle-multiple-ldflags.patch
+"
diff --git a/testing/maxima/handle-multiple-ldflags.patch b/testing/maxima/handle-multiple-ldflags.patch
new file mode 100644
index 00000000000..799fc15f918
--- /dev/null
+++ b/testing/maxima/handle-multiple-ldflags.patch
@@ -0,0 +1,43 @@
+Description: Handle multiple LDFLAGS
+ Without this patch, building with LDFLAGS containing more than one flag results
+ in flags being dropped.
+Author: Graham Inggs <ginggs@debian.org>
+Bug-Debian: http://bugs.debian.org/847925
+
+--- a/src/maxima.system
++++ b/src/maxima.system
+@@ -58,6 +58,19 @@
+ (and (apply #'compile-file file :output-file object-output args)
+ (c:build-fasl output :lisp-files (list object-output)))))
+
++(defun split-string (string &key (item #\space) (test #'char=))
++ ;; Splits the string into substrings at spaces.
++ (let ((len (length string))
++ (index 0) result)
++ (dotimes (i len
++ (progn (unless (= index len)
++ (push (subseq string index) result))
++ (reverse result)))
++ (when (funcall test (char string i) item)
++ (unless (= index i);; two spaces in a row
++ (push (subseq string index i) result))
++ (setf index (1+ i))))))
++
+ #+ecl
+ (defun build-maxima-lib ()
+ (labels ((list-all-objects (module)
+@@ -79,12 +92,12 @@
+ :ld-flags
+ (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
+ (find-package "MAXIMA")))))
+- (if (and x (not (string= x ""))) (list x))))
++ (if (and x (not (string= x ""))) (split-string x))))
+ (c::build-program "binary-ecl/maxima" :lisp-files obj
+ :ld-flags
+ (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
+ (find-package "MAXIMA")))))
+- (if (and x (not (string= x ""))) (list x)))
++ (if (and x (not (string= x ""))) (split-string x)))
+ :epilogue-code '(progn (cl-user::run)))))))
+
+ (defun maxima-binary-pathname ()
diff --git a/testing/mbpfan/01-remove-systemd.patch b/testing/mbpfan/01-remove-systemd.patch
new file mode 100644
index 00000000000..2532d35eb87
--- /dev/null
+++ b/testing/mbpfan/01-remove-systemd.patch
@@ -0,0 +1,12 @@
+diff --git a/Makefile b/Makefile
+index d5223ae..e212e79 100644
+--- a/Makefile
++++ b/Makefile
+@@ -49,7 +49,6 @@ uninstall:
+ install: $(BIN)
+ install -d $(DESTDIR)/usr/sbin
+ install -d $(DESTDIR)/etc
+- install -d $(DESTDIR)/lib/systemd/system
+ install -d $(DESTDIR)/usr/share/doc/mbpfan
+ install $(BIN) $(DESTDIR)/usr/sbin
+ install -m644 $(CONF) $(DESTDIR)/etc
diff --git a/testing/mbpfan/APKBUILD b/testing/mbpfan/APKBUILD
new file mode 100644
index 00000000000..97b9b0c93fb
--- /dev/null
+++ b/testing/mbpfan/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=mbpfan
+pkgver=2.4.0
+pkgrel=0
+pkgdesc="simple daemon to control fan speed on MacBooks, other macs"
+url="https://ineed.coffee/projects/mbpfan"
+arch="x86_64 x86"
+license="GPL3.0-or-later"
+options="!check"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="mbpfan-$pkgver.tar.gz::https://github.com/linux-on-mac/mbpfan/archive/refs/tags/v$pkgver.tar.gz
+ 01-remove-systemd.patch
+ $pkgname.initd"
+
+build() {
+ make
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+ install -Dm755 "$srcdir"/"$pkgname".initd "$pkgdir"/etc/init.d/mbpfan
+}
+
+sha512sums="
+fa906043552a895d274642dfe8e3a94fdece0bf9b430710d9ee4dc4f33b6762fbed3314e4a67ede11916514297d511031cc99b35b7a267b58aceefd73e4b1d22 mbpfan-2.4.0.tar.gz
+bd9e2496049978f4dae322279573e784b7866bbdaa39de65b124f5206ab270ff71933b762a1caf3a792b33760bdd66852c46486b66429d825c623a32c8c7c52b 01-remove-systemd.patch
+bc3905e85d89e71d56239549bede3dd826633da2152d2e548fdf0c5eb2fde7a94e776afcce4d1657d2198998538d9e19b2a9d464c95c2b14083d8f5782417467 mbpfan.initd
+"
diff --git a/testing/mbpfan/mbpfan.initd b/testing/mbpfan/mbpfan.initd
new file mode 100644
index 00000000000..5fe50521591
--- /dev/null
+++ b/testing/mbpfan/mbpfan.initd
@@ -0,0 +1,9 @@
+#!/sbin/openrc-run
+
+name=mbpfan
+command=/usr/sbin/mbpfan
+start_stop_daemon_args="--quiet"
+
+depend() {
+ use logger
+}
diff --git a/testing/mbrola/APKBUILD b/testing/mbrola/APKBUILD
new file mode 100644
index 00000000000..32e26f1316e
--- /dev/null
+++ b/testing/mbrola/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=mbrola
+pkgver=3.3
+pkgrel=0
+pkgdesc="Speech synthesizer based on the concatenation of diphones"
+url="https://github.com/numediart/MBROLA"
+arch="all !s390x" # assumes little endian
+license="AGPL-3.0-or-later"
+source="https://github.com/numediart/MBROLA/archive/refs/tags/$pkgver/mbrola-$pkgver.tar.gz
+ terrible-makefile.patch
+ "
+builddir="$srcdir/MBROLA-$pkgver"
+options="!check" # tests need some external script to run
+
+build() {
+ make
+}
+
+package() {
+ install -Dm755 Bin/mbrola -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+4c15481d2afc7f459c511d2f2791ae1f0f89893ea86fcde113c73f9b5509b893bc7beac8ec5fa76ca0f4e0aca35982ff1db15e8611514d91991608aee004c3f2 mbrola-3.3.tar.gz
+73390819c34612a9438b6fc197c0b01934401c0d2fd2bd8f3514a1f61422d4dbac79fe0c5f82c963e29531b615fe676eeda981cad6089fa4224baf7dbf67d219 terrible-makefile.patch
+"
diff --git a/testing/mbrola/terrible-makefile.patch b/testing/mbrola/terrible-makefile.patch
new file mode 100644
index 00000000000..4ebbf009357
--- /dev/null
+++ b/testing/mbrola/terrible-makefile.patch
@@ -0,0 +1,22 @@
+diff --git a/Makefile b/Makefile
+index 47cf410..2d3f916 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,7 +4,7 @@
+ VERSION=3.3
+
+ # To test strict C ANSI compliance
+-CC = gcc -ansi -pedantic
++CC ?= gcc -ansi -pedantic
+ LIB= -lm
+
+ # This allow you to write commands like "make PURE=purify demo1"
+@@ -33,7 +33,7 @@ CFLAGS += -DLITTLE_ENDIAN
+ # GENERAL FLAGS FOR GCC
+
+ # Optimized code
+-CFLAGS += -O6
++CFLAGS ?= -O2
+
+ # Debug mode with gdb
+ #CFLAGS += -g
diff --git a/testing/mce-dev/APKBUILD b/testing/mce-dev/APKBUILD
deleted file mode 100644
index 671500fdf7d..00000000000
--- a/testing/mce-dev/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mce-dev
-pkgver=1.28.1
-pkgrel=0
-pkgdesc="Mers mce-dev"
-url="https://git.sailfishos.org/mer-core/mce-dev"
-arch="noarch"
-license="LGPL-2.1-or-later"
-makedepends="qt5-qtbase-dev doxygen"
-subpackages="$pkgname-doc"
-source="https://git.sailfishos.org/mer-core/mce-dev/-/archive/$pkgver/mce-dev-$pkgver.tar.gz"
-options="!check" # No test suite available
-
-build() {
- make
- make doc
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-doc() {
- install -dm755 "$subpkgdir"/usr/share/doc/$pkgname
- mv "$builddir"/doc/html "$subpkgdir"/usr/share/doc/$pkgname/
-}
-
-sha512sums="82a0c7c5479e9cb959d36274199da64818af007bdf328e942a3cd206c6d77af1c26d0e6dfd67776b6fd2cf4c4bc2c3bfdb17218dd9de9be888e7f57b0f7b9d15 mce-dev-1.28.1.tar.gz"
diff --git a/testing/mcjoin/APKBUILD b/testing/mcjoin/APKBUILD
new file mode 100644
index 00000000000..22c8e4cc44c
--- /dev/null
+++ b/testing/mcjoin/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Nico de Haer <nico.dehaer@gmail.com>
+# Maintainer: Nico de Haer <nico.dehaer@gmail.com>
+pkgname=mcjoin
+pkgver=2.11
+pkgrel=0
+pkgdesc="Tiny multicast testing tool"
+url="https://github.com/troglobit/mcjoin"
+license="ISC"
+arch="all"
+subpackages="$pkgname-doc"
+source="https://github.com/troglobit/mcjoin/releases/download/v$pkgver/mcjoin-$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4a1af8dae08e7ee5cc168b2a9b5f921f5f11be1d9dc0d9b0a3d5f1f7f531c22414be6edf448dd52f543ad27c66cab3663105bd7efc621f13e575d47d5434adff mcjoin-2.11.tar.gz
+"
diff --git a/testing/mcman/APKBUILD b/testing/mcman/APKBUILD
new file mode 100644
index 00000000000..a0424e7df7e
--- /dev/null
+++ b/testing/mcman/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mcman
+pkgver=0.4.4
+pkgrel=0
+pkgdesc="Powerful Minecraft Server Manager CLI"
+url="https://github.com/ParadigmMC/mcman"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/ParadigmMC/mcman/archive/refs/tags/$pkgver.tar.gz
+"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/mcman "$pkgdir"/usr/bin/mcman
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+6b5ca9ba901d803c07932eaab38876bfe7baea767bd747692ba63de2a79924502d60fed4637578ca46cb43f3c16911e4981c85f9393c3fa0888fa5baf9ff54d5 mcman-0.4.4.tar.gz
+"
diff --git a/testing/mcqd/APKBUILD b/testing/mcqd/APKBUILD
new file mode 100644
index 00000000000..1b1382e6f5a
--- /dev/null
+++ b/testing/mcqd/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=mcqd
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Fast exact algorithm for finding a maximum clique in an undirected graph"
+url="https://gitlab.com/janezkonc/mcqd"
+arch="all"
+license="GPL-3.0-only"
+source="https://gitlab.com/janezkonc/mcqd/-/archive/v$pkgver/mcqd-v$pkgver.tar.gz"
+subpackages="$pkgname-dev"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ $CXX ${CXXFLAGS/-Os/-O3} $LDFLAGS -o mcqd mcqd.cpp
+}
+
+check() {
+ ./mcqd test.clq
+}
+
+package() {
+ install -Dm755 mcqd "$pkgdir"/usr/bin/mcqd
+ install -Dm644 mcqd.h "$pkgdir"/usr/include/mcqd.h
+}
+
+sha512sums="
+ce0a8e1722d793793bdc1c0d47bf088daaa26e830550d401c1a05938581cc1e1f5ec3d846292e4152658143231f64542c32f046344d95c71b975f28a9c750817 mcqd-v1.0.0.tar.gz
+"
diff --git a/testing/md2gemini/APKBUILD b/testing/md2gemini/APKBUILD
new file mode 100644
index 00000000000..089dae6e136
--- /dev/null
+++ b/testing/md2gemini/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=md2gemini
+pkgver=1.9.1
+pkgrel=1
+pkgdesc="converter from Markdown to the Gemini text format"
+#arch="noarch" # archived upstream, need Mistune 2.x
+url="https://github.com/makeworld-the-better-one/md2gemini"
+license="LGPL-3.0-or-later"
+depends="py3-cjkwrap py3-wcwidth py3-mistune"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/makeworld-the-better-one/md2gemini/archive/v$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
+}
+
+sha512sums="
+c066d8e8d2a0d784b140b778b988dd78793e4ae1735b9534f354283f8c24e7a20ec517aafeeea00029db5e8da166a38f3fa4d410389de05feafc96405b47eee9 md2gemini-1.9.1.tar.gz
+"
diff --git a/testing/md5ha1/APKBUILD b/testing/md5ha1/APKBUILD
index d18cb2ec3ae..ab44b9092ea 100644
--- a/testing/md5ha1/APKBUILD
+++ b/testing/md5ha1/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=md5ha1
pkgver=0_git20171202
-pkgrel=0
+pkgrel=1
pkgdesc="Tool for computing WWW-Digest MD5 HA1 string"
url="https://github.com/miconda/md5ha1"
arch="all"
diff --git a/testing/mdbook-katex/APKBUILD b/testing/mdbook-katex/APKBUILD
new file mode 100644
index 00000000000..2b6b05d17b8
--- /dev/null
+++ b/testing/mdbook-katex/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=mdbook-katex
+pkgver=0.8.0
+pkgrel=0
+pkgdesc="Preprocessor for mdbook to render LaTeX equations in HTML"
+url="https://github.com/lzanini/mdbook-katex"
+arch="all"
+license="MIT"
+depends="mdbook"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+source="https://github.com/lzanini/mdbook-katex/archive/refs/tags/v$pkgver/mdbook-katex-$pkgver.tar.gz"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/mdbook-katex "$pkgdir"/usr/bin/mdbook-katex
+}
+
+sha512sums="
+b7091b5985a552ef9b4cfad82855fd92f663f4b632bccda1904046c23549a22916deb6adea54e583d2edf3f08115db9868be464dfbdf3e090e8197999e4230ae mdbook-katex-0.8.0.tar.gz
+"
diff --git a/testing/mdbook/APKBUILD b/testing/mdbook/APKBUILD
deleted file mode 100644
index bb04a40b2c9..00000000000
--- a/testing/mdbook/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=mdbook
-pkgver=0.3.7
-pkgrel=0
-pkgdesc="mdBook is a utility to create modern online books from Markdown files"
-url="https://rust-lang.github.io/mdBook/"
-arch="all !s390x !mips !mips64" # limited by cargo
-license="MPL-2.0"
-makedepends="rust cargo"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rust-lang-nursery/mdBook/archive/v$pkgver.tar.gz"
-builddir="$srcdir/mdBook-$pkgver"
-export CARGO_HOME="$srcdir"/cargo
-
-build() {
- cargo build --release --verbose
-}
-
-check() {
- cargo test --all --release --verbose
-}
-
-package() {
- install -Dm755 target/release/mdbook "$pkgdir"/usr/bin/mdbook
-}
-
-sha512sums="8ed9b4bdc850fc66dca893438e7ee1c7e29f0419e5b055825d34bbb0b9811c645a3e031f6ff717bdd99adc0699df68cd693071df28150611b0096ffcc52334f5 mdbook-0.3.7.tar.gz"
diff --git a/testing/mdcat/APKBUILD b/testing/mdcat/APKBUILD
index 1aa7bef266e..f5f95b57590 100644
--- a/testing/mdcat/APKBUILD
+++ b/testing/mdcat/APKBUILD
@@ -1,27 +1,59 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
pkgname=mdcat
-pkgver=0.18.2
+pkgver=2.1.1
pkgrel=0
pkgdesc="Cat for markdown"
-url="https://github.com/lunaryorn/mdcat"
-arch="all !s390x !mips !mips64" # Limited by cargo
+url="https://github.com/swsnr/mdcat"
+#Undefined temporary symbol .LBB16_2
+arch="all !armhf"
license="Apache-2.0"
-makedepends="cargo openssl-dev"
-checkdepends="py3-ansi2html"
-source="$pkgname-$pkgver.tar.gz::https://github.com/lunaryorn/mdcat/archive/mdcat-$pkgver.tar.gz"
+makedepends="asciidoctor cargo shared-mime-info openssl-dev>3 cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="https://github.com/swsnr/mdcat/archive/refs/tags/mdcat-$pkgver.tar.gz"
builddir="$srcdir/mdcat-mdcat-$pkgver"
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
build() {
- cargo build --release --locked
+ cargo auditable build --release --frozen
}
check() {
- cargo test --release --locked
+ cargo test --frozen
}
package() {
- install -s -Dm0755 target/release/mdcat -t "$pkgdir"/usr/bin
+ install -Dm755 target/release/mdcat -t "$pkgdir"/usr/bin/
+ ln -s /usr/bin/mdcat "$pkgdir"/usr/bin/mdless
+
+ # Install the generated shell completion files
+ install -Dm644 target/release/build/mdcat-*/out/completions/mdcat.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/mdcat
+ install -Dm644 target/release/build/mdcat-*/out/completions/mdless.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/mdless
+ install -Dm644 target/release/build/mdcat-*/out/completions/_mdcat \
+ -t "$pkgdir"/usr/share/zsh/site-functions
+ install -Dm644 target/release/build/mdcat-*/out/completions/_mdless \
+ -t "$pkgdir"/usr/share/zsh/site-functions
+ install -Dm644 target/release/build/mdcat-*/out/completions/mdcat.fish \
+ -t "$pkgdir"/usr/share/fish/vendor_completions.d
+ install -Dm644 target/release/build/mdcat-*/out/completions/mdless.fish \
+ -t "$pkgdir"/usr/share/fish/vendor_completions.d
+
+ # Install the generated man-page
+ install -Dm644 "$builddir"/target/release/build/mdcat-*/out/mdcat.1 \
+ -t "$pkgdir"/usr/share/man/man1/
}
-sha512sums="ee475af1bc6e3baa5f0f3f61852b2b49f004eb5d4c15050ccfde72941ead0d5170d7b9be418b6d0cde1cd1361e5310e457445583fdf4fa971bd62e2380a651d1 mdcat-0.18.2.tar.gz"
+sha512sums="
+8bff3c1e696311fc39bfb5a89e8aaf45986acab3f06a4c905682af233720940f4b1193c36907474ea8d94491148fba72b098dd23166adb56d7ebaac37c861d82 mdcat-2.1.1.tar.gz
+"
diff --git a/testing/mdevd/APKBUILD b/testing/mdevd/APKBUILD
deleted file mode 100644
index fe81036fbed..00000000000
--- a/testing/mdevd/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
-# Contributor: Laurent Bercot <ska-devel@skarnet.org>
-#
-# NOTE: For now this APKBUILD is pure mechanism.
-# A later version of the APKBUILD will install mdevd as device manager,
-# replacing busybox mdev.
-pkgname=mdevd
-pkgver=0.1.1.2
-pkgrel=0
-pkgdesc="A netlink-listening device manager similar to mdev"
-url="https://skarnet.org/software/mdevd/"
-arch="all"
-license="ISC"
-options="!check" # no tests provided
-makedepends="linux-headers skalibs-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
-source="https://skarnet.org/software/mdevd/mdevd-$pkgver.tar.gz
- $pkgname.initd"
-
-build() {
- ./configure \
- --enable-shared \
- --enable-static \
- --disable-allstatic
- make
-}
-
-package() {
- make install DESTDIR="$pkgdir"
-
- mkdir -p "$pkgdir"/usr/share/doc
- cp -a doc "$pkgdir"/usr/share/doc/$pkgname
-
- install -D -m 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
-}
-
-sha512sums="7d7a25facde1291854f564e805cc2bf7e7e0b06aaa4b631a640cf999007a3ef063ec68e8973559ec69023f40bb6ed24937d4d8510fd697f34a97345a22ede5b5 mdevd-0.1.1.2.tar.gz
-d579d22e0047c43b8b59c73874f28690e0b5665bbe5bf1b38ebedb1df87af601412b0afc348a1ac5d985e28f9206a7d4f97b1b714e21c8cf9461c6b96b662d95 mdevd.initd"
diff --git a/testing/mdevd/mdevd.initd b/testing/mdevd/mdevd.initd
deleted file mode 100644
index 283f40682f5..00000000000
--- a/testing/mdevd/mdevd.initd
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/sbin/openrc-run
-
-supervisor=supervise-daemon
-
-name="Kernel Device Manager"
-description="A netlink-listening device manager similar to mdev"
-
-extra_started_commands="reload"
-description_reload="Reload the configuration file"
-
-: ${cfgfile:="/etc/mdev.conf"}
-: ${logfile:="/var/log/$RC_SVCNAME.log"}
-
-required_files="$cfgfile"
-
-command="/bin/mdevd"
-command_args="-f $cfgfile ${command_args:-}"
-
-supervise_daemon_args="--stdout $logfile --stderr $logfile"
-
-depend() {
- provide dev
- need sysfs dev-mount
- before checkfs fsck
- keyword -containers -lxc -vserver
-}
-
-start_pre() {
- mkdir -p /dev
-}
-
-reload() {
- ebegin "Reloading $name configuration"
- supervise-daemon --signal HUP
- eend $?
-}
diff --git a/testing/mdnsd/APKBUILD b/testing/mdnsd/APKBUILD
new file mode 100644
index 00000000000..0f3a5ea180b
--- /dev/null
+++ b/testing/mdnsd/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Miguel Terron <miguel.a.terron@gmail.com>
+# Maintainer: Miguel Terron <miguel.a.terron@gmail.com>
+pkgname=mdnsd
+pkgver=0.12
+pkgrel=1
+pkgdesc="Embeddable Multicast DNS Daemon"
+url="https://github.com/troglobit/mdnsd"
+arch="all"
+license="BSD-3-Clause"
+subpackages="
+ $pkgname-doc
+ $pkgname-libs
+ $pkgname-static
+ $pkgname-openrc
+ "
+source="
+ mdnsd.confd
+ mdnsd.initd
+ https://github.com/troglobit/mdnsd/releases/download/v$pkgver/mdnsd-$pkgver.tar.xz
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --without-systemd
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ 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="
+417c394b24ee1ac87f83a6040df963e948191007ef9b27b28537ecdf7b01e126b0069f6ef96e579394d75b90194f1de975edb9e71486e16815372ea379006601 mdnsd.confd
+8a4fb736263ec05aa439f320091a43dfea64fb7e89fd0af5ada3981d0461009f55e1ac598a143a9458063eaf117e1b7b788463f0af316153fa6bfea864019a99 mdnsd.initd
+c28917bfb16f1fa6d3594a4e98f43cae7cc5bfcb31dac6bc8eeafae60e05b15790245d859137e0c15838893f04365c2a48331b6082fa5b17ff5ae3665c963de6 mdnsd-0.12.tar.xz
+"
diff --git a/testing/mdnsd/mdnsd.confd b/testing/mdnsd/mdnsd.confd
new file mode 100644
index 00000000000..f51d03fffc6
--- /dev/null
+++ b/testing/mdnsd/mdnsd.confd
@@ -0,0 +1,8 @@
+# /etc/conf.d/mdnsd: config file for /etc/init.d/mdnsd
+
+# -l LEVEL Set log level: none, err, notice (default), info, debug
+# -n Run in foreground, do not detach from controlling terminal
+# -s Use syslog even if running in foreground
+# -t TTL Set TTL of mDNS packets, default: 1 (link-local only)
+
+MDNSD_OPTS="-n"
diff --git a/testing/mdnsd/mdnsd.initd b/testing/mdnsd/mdnsd.initd
new file mode 100644
index 00000000000..7bb9f49b5b7
--- /dev/null
+++ b/testing/mdnsd/mdnsd.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+description="embeddable multicast DNS daemon"
+command="/usr/sbin/mdnsd"
+command_args="${MDNSD_OPTS}"
+command_background="yes"
+command_user="daemon:daemon"
+
+pidfile="/run/${RC_SVCNAME}.pid"
+extra_started_commands="reload"
+
+depend() {
+ need net
+ after firewall
+}
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/testing/mdp/APKBUILD b/testing/mdp/APKBUILD
index 6cced9038a8..0546db01337 100644
--- a/testing/mdp/APKBUILD
+++ b/testing/mdp/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=mdp
pkgver=1.0.15
-pkgrel=0
+pkgrel=1
pkgdesc="command line based markdown presentation tool"
url="https://github.com/visit1985/mdp"
arch="all"
diff --git a/testing/mediascanner2/0001-rename-msg-to-message.patch b/testing/mediascanner2/0001-rename-msg-to-message.patch
new file mode 100644
index 00000000000..0f48b70ed7c
--- /dev/null
+++ b/testing/mediascanner2/0001-rename-msg-to-message.patch
@@ -0,0 +1,39 @@
+From 897636832b3fb5cb62aea5d32db65e41262c0a78 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Mon, 11 Mar 2024 15:56:53 -0400
+Subject: [PATCH 1/3] rename msg to message
+
+---
+ src/extractor/CMakeLists.txt | 2 +-
+ src/qml/MediaScanner.0.1/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/extractor/CMakeLists.txt b/src/extractor/CMakeLists.txt
+index 7bc6d3f..6e9579d 100644
+--- a/src/extractor/CMakeLists.txt
++++ b/src/extractor/CMakeLists.txt
+@@ -5,7 +5,7 @@ include_directories(.. ${CMAKE_CURRENT_BINARY_DIR})
+ # Build stubs/skeletons for D-Bus interface
+ find_program(gdbus_codegen gdbus-codegen)
+ if(NOT gdbus_codegen)
+- msg(FATAL_ERROR "Could not locate gdbus-codegen")
++ message(FATAL_ERROR "Could not locate gdbus-codegen")
+ endif()
+
+ add_custom_command(
+diff --git a/src/qml/MediaScanner.0.1/CMakeLists.txt b/src/qml/MediaScanner.0.1/CMakeLists.txt
+index e08ccb0..73b5146 100644
+--- a/src/qml/MediaScanner.0.1/CMakeLists.txt
++++ b/src/qml/MediaScanner.0.1/CMakeLists.txt
+@@ -61,7 +61,7 @@ install(
+ if(NOT CMAKE_CROSSCOMPILING)
+ find_program(qmlplugindump_exe qmlplugindump)
+ if(NOT qmlplugindump_exe)
+- msg(FATAL_ERROR "Could not locate qmlplugindump.")
++ message(FATAL_ERROR "Could not locate qmlplugindump.")
+ endif()
+
+ # qmlplugindump doesn't run reliably in the CI environment (it seems
+--
+2.43.2
+
diff --git a/testing/mediascanner2/0002-point-qmlplugindump-to-qmlplugindump-qt5.patch b/testing/mediascanner2/0002-point-qmlplugindump-to-qmlplugindump-qt5.patch
new file mode 100644
index 00000000000..267a343efaa
--- /dev/null
+++ b/testing/mediascanner2/0002-point-qmlplugindump-to-qmlplugindump-qt5.patch
@@ -0,0 +1,25 @@
+From 1af9d8f6209534c54c573b021e4f04e678bb090b Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Mon, 11 Mar 2024 16:01:49 -0400
+Subject: [PATCH 2/3] point qmlplugindump to qmlplugindump-qt5
+
+---
+ src/qml/MediaScanner.0.1/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/qml/MediaScanner.0.1/CMakeLists.txt b/src/qml/MediaScanner.0.1/CMakeLists.txt
+index 73b5146..489988a 100644
+--- a/src/qml/MediaScanner.0.1/CMakeLists.txt
++++ b/src/qml/MediaScanner.0.1/CMakeLists.txt
+@@ -59,7 +59,7 @@ install(
+ )
+
+ if(NOT CMAKE_CROSSCOMPILING)
+- find_program(qmlplugindump_exe qmlplugindump)
++ find_program(qmlplugindump_exe qmlplugindump-qt5)
+ if(NOT qmlplugindump_exe)
+ message(FATAL_ERROR "Could not locate qmlplugindump.")
+ endif()
+--
+2.43.2
+
diff --git a/testing/mediascanner2/0003-disable-coverage-report.patch b/testing/mediascanner2/0003-disable-coverage-report.patch
new file mode 100644
index 00000000000..a08bb6d4752
--- /dev/null
+++ b/testing/mediascanner2/0003-disable-coverage-report.patch
@@ -0,0 +1,58 @@
+From d41c684e2a40e0f9dc90e87cddfb912708fec7b6 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Mon, 11 Mar 2024 16:18:38 -0400
+Subject: [PATCH 3/3] disable coverage report
+
+---
+ CMakeLists.txt | 31 -------------------------------
+ 1 file changed, 31 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e92d036..ddaaea4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,7 +39,6 @@ if(${FULL_WARNINGS})
+ # C does not have any more warning flags.
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weffc++")
+ endif()
+-find_package(CoverageReport)
+
+ include(GNUInstallDirs)
+ set(LIBDIR $CMAKE_INSTALL_LIBDIR)
+@@ -65,33 +64,3 @@ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/mediascanner-2.0.service
+ DESTINATION lib/systemd/user
+ )
+-
+-enable_coverage_report(
+- TARGETS
+- mediascanner
+- extractor-client
+- extractor-backend
+- mediascanner-extractor
+- scannerstuff
+- scannerdaemon
+- ms-dbus
+- mediascanner-dbus
+- mediascanner-qml
+- query
+- mountwatcher
+- FILTER
+- ${CMAKE_SOURCE_DIR}/tests/*
+- ${CMAKE_BINARY_DIR}/*
+- TESTS
+- basic
+- test_mediastore
+- test_metadataextractor
+- test_extractorbackend
+- test_sqliteutils
+- test_mfbuilder
+- test_subtreewatcher
+- test_volumemanager
+- test_dbus
+- test_qml
+- test_util
+-)
+--
+2.43.2
+
diff --git a/testing/mediascanner2/APKBUILD b/testing/mediascanner2/APKBUILD
new file mode 100644
index 00000000000..690411f6a62
--- /dev/null
+++ b/testing/mediascanner2/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=mediascanner2
+pkgver=0.115
+pkgrel=0
+pkgdesc="Media scanner for Lomiri"
+url="https://gitlab.com/ubports/development/core/mediascanner2.git"
+arch="all"
+license="GPL-3.0-only AND LGPL-3.0-only"
+source="https://gitlab.com/ubports/development/core/mediascanner2/-/archive/$pkgver/mediascanner2-$pkgver.tar.gz
+ 0001-rename-msg-to-message.patch
+ 0002-point-qmlplugindump-to-qmlplugindump-qt5.patch
+ 0003-disable-coverage-report.patch
+ "
+makedepends="
+ cmake
+ dbus-cpp-dev
+ gdk-pixbuf-dev
+ glib-dev
+ gmock
+ gtest-dev
+ gstreamer-dev
+ gst-plugins-base-dev
+ libapparmor-dev
+ libexif-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ samurai
+ sqlite-dev
+ taglib-dev
+ udisks2-dev
+ "
+options="!check" # tests fail to find gmock
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DENABLE_TESTS=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+82399ba394f6d858374de26d722b932812eb4c519993f1f5262c7b7b59eb620b56d24938c00bff9ccd3ab1759be451d2b782e1ab32f8fe4254635431462d67db mediascanner2-0.115.tar.gz
+18da589b6ba8394d175ea55d94407ebbd54e0dda90137e0ec172706b766115e80b6140ab4556dad5fa27cdec3f80acedb29d5db150ef7d3ba37b178c48b902c1 0001-rename-msg-to-message.patch
+afa4ab639e8e72b8964e5a2ede6cb69ae207f298e5aaf966e9d3152da7ae19c46123c7a938b2a5499703f34aee703b73a5ba45a89c5c4116b061d79e5984fabb 0002-point-qmlplugindump-to-qmlplugindump-qt5.patch
+3bb35becaf1e38fee9db96fc3e9410a221d2db5e757cd8e4a52a87ba18ff8d259698beb5d742e07ed06ba99fe77cb66fd6d2bb102069719b291f848a2afbe947 0003-disable-coverage-report.patch
+"
diff --git a/testing/mediastreamer2-plugin-openh264/APKBUILD b/testing/mediastreamer2-plugin-openh264/APKBUILD
new file mode 100644
index 00000000000..37414b34a5d
--- /dev/null
+++ b/testing/mediastreamer2-plugin-openh264/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Martin Schmidt <martin.schmidt13@gmx.de>
+# Maintainer: Martin Schmidt <martin.schmidt13@gmx.de>
+pkgname=mediastreamer2-plugin-openh264
+pkgver=5.2.0_git20231020
+_commit=ed96173dc74ca48e700cafea53f1d49575d84c70
+pkgrel=0
+pkgdesc="An H.264 encoder/decoder plugin for mediastreamer2 based on the openh264 library"
+url="https://gitlab.linphone.org/BC/public/msopenh264"
+arch="all"
+license="GPL-2.0-or-later"
+options="!check" # no test available
+makedepends="
+ bctoolbox-dev
+ cmake
+ mediastreamer2-dev
+ openh264-dev
+ ortp-dev
+ samurai
+ "
+source="$pkgname-$_commit.tar.gz::https://gitlab.linphone.org/BC/public/msopenh264/-/archive/$_commit.tar.gz"
+builddir="$srcdir/msopenh264-$_commit"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DBUILD_SHARED_LIBS=YES
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+c4487675b7ea16ed4a967d0cbc0a9c3e8aff8e0832805b9a3fb2f38d836008663f68c37253f04d04237b306e709c357e19c34598242cc9fcdbe7bbdce57e9d3c mediastreamer2-plugin-openh264-ed96173dc74ca48e700cafea53f1d49575d84c70.tar.gz
+"
diff --git a/testing/mediastreamer2-plugin-x264/APKBUILD b/testing/mediastreamer2-plugin-x264/APKBUILD
new file mode 100644
index 00000000000..13e79f01b25
--- /dev/null
+++ b/testing/mediastreamer2-plugin-x264/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Martin Schmidt <martin.schmidt13@gmx.de>
+# Maintainer: Martin Schmidt <martin.schmidt13@gmx.de>
+_commit=f4fe74056d0474b42025d95449ec859e984d78ea
+pkgname=mediastreamer2-plugin-x264
+pkgver=20200722
+pkgrel=6
+pkgdesc="GPL plugin to bring video H264 encoding/decoding capabilities to mediastreamer2 applications"
+url="https://gitlab.linphone.org/BC/public/msx264"
+arch="all"
+license="GPL-2.0-or-later"
+options="!check" # no test available
+makedepends="cmake ortp-dev bctoolbox-dev mediastreamer2-dev x264-dev samurai"
+source="$pkgname-$_commit.tar.gz::https://gitlab.linphone.org/BC/public/msx264/-/archive/$_commit.tar.gz
+ fix-cmakelists.patch
+ no-werror.patch
+ "
+builddir="$srcdir/msx264-$_commit"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DENABLE_SHARED=YES
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+cc295d06b13fddaf97669ef20bf239622ea0690bd8d193df0f435831caf433f5b036be83bfdd9a261af8d51c272d4e2b614cfd2af04766797c86314d46782065 mediastreamer2-plugin-x264-f4fe74056d0474b42025d95449ec859e984d78ea.tar.gz
+179d6451494275566286fe437323ddf34ad54afca8770c24723a0a956b55b56e547aa70ca34c7956beda8618914b3e6e0eec92bd8fd567e5828dc7271e6f56b9 fix-cmakelists.patch
+aa8663ea222d6152fe9a101a3060a668876f22875bbc496b6e549a00a2660a3e9eeb95cda2189431968934ace90cabad7575d76ae65127171d10f84f2589567f no-werror.patch
+"
diff --git a/testing/mediastreamer2-plugin-x264/fix-cmakelists.patch b/testing/mediastreamer2-plugin-x264/fix-cmakelists.patch
new file mode 100644
index 00000000000..f17ef6e1071
--- /dev/null
+++ b/testing/mediastreamer2-plugin-x264/fix-cmakelists.patch
@@ -0,0 +1,18 @@
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -25,12 +25,12 @@
+ include("${EP_ortp_CONFIG_DIR}/OrtpConfig.cmake")
+ else()
+ find_package(Mediastreamer2 REQUIRED)
+- find_package(ORTP REQUIRED)
++ find_package(Ortp REQUIRED)
+ endif()
+
+ set(LIBS
+- ${ORTP_LIBRARIES}
+- ${MEDIASTREAMER2_LIBRARIES}
++ ${Ortp_TARGET}
++ ${Mediastreamer2_TARGET}
+ ${X264_LIBRARIES}
+ )
+
diff --git a/testing/mediastreamer2-plugin-x264/no-werror.patch b/testing/mediastreamer2-plugin-x264/no-werror.patch
new file mode 100644
index 00000000000..64e2830a685
--- /dev/null
+++ b/testing/mediastreamer2-plugin-x264/no-werror.patch
@@ -0,0 +1,17 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ba97d92..276d570 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -72,10 +72,10 @@ if(NOT MSVC)
+ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unknown-warning-option")
+ if(NOT IOS)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wextra")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
+ endif()
+ elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wextra -Wno-error=pragmas")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra -Wno-error=pragmas")
+ endif()
+ endif()
+
diff --git a/testing/mediastreamer2/APKBUILD b/testing/mediastreamer2/APKBUILD
index d96e5e5c250..1cef0f71238 100644
--- a/testing/mediastreamer2/APKBUILD
+++ b/testing/mediastreamer2/APKBUILD
@@ -1,25 +1,54 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=mediastreamer2
-pkgver=4.3.1
+pkgver=5.3.38
pkgrel=0
-pkgdesc="A library written in C that allows you to create and run audio and video streams"
-url="https://www.linphone.org/technical-corner/mediastreamer2/overview"
+pkgdesc="library written in C that allows you to create and run audio and video streams"
+url="https://www.linphone.org/technical-corner/mediastreamer2"
arch="all"
license="GPL-2.0-or-later"
options="!check" # no test available
-makedepends="cmake gettext-dev ffmpeg-dev ortp-dev
- libxv-dev speex-dev speexdsp-dev libsrtp-dev
- v4l-utils-dev bctoolbox-dev mesa-dev glew-dev
- opus-dev libpcap-dev spandsp-dev tiff-dev libtheora-dev
- alsa-lib-dev python3-dev gsm-dev sqlite-dev libxml2-dev
- jpeg-dev bzrtp-dev"
-subpackages="$pkgname-dev"
-source="https://gitlab.linphone.org/BC/public/mediastreamer2/-/archive/$pkgver/mediastreamer2-$pkgver.tar.gz"
+makedepends="
+ alsa-lib-dev
+ bcg729-dev
+ bctoolbox-dev
+ bzrtp-dev
+ cmake
+ doxygen
+ ffmpeg4-dev
+ gettext-dev
+ glew-dev
+ graphviz
+ grep
+ gsm-dev
+ jpeg-dev
+ libpcap-dev
+ libsrtp-dev
+ libtheora-dev
+ libvpx-dev
+ libxml2-dev
+ libxv-dev
+ mesa-dev
+ opus-dev
+ ortp-dev
+ python3-dev
+ samurai
+ spandsp-dev
+ speex-dev
+ speexdsp-dev
+ sqlite-dev
+ tiff-dev
+ v4l-utils-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://gitlab.linphone.org/BC/public/mediastreamer2/-/archive/$pkgver/mediastreamer2-$pkgver.tar.gz
+ fix-cmake-path.patch
+ fix-soname.patch
+ "
build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
+ cmake -G Ninja -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_MODULE_PATH=/usr/lib/cmake \
@@ -33,22 +62,19 @@ build() {
-DENABLE_FFMPEG=YES \
-DENABLE_SPEEX_CODEC=YES \
-DENABLE_SPEEX_DSP=YES \
- -DENABLE_SHARED=YES \
+ -DBUILD_SHARED_LIBS=YES \
+ -DENABLE_VPX=YES \
-DENABLE_UNIT_TESTS=NO
- make -C build
+ cmake --build build
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/include/OpenGL
}
-dev() {
- default_dev
- mkdir -p "$subpkgdir"/usr/lib/cmake/Mediastreamer2
- mv "$pkgdir"/usr/share/Mediastreamer2/cmake/* "$subpkgdir"/usr/lib/cmake/Mediastreamer2
- # Remove empty dirs
- rmdir "$pkgdir"/usr/share/Mediastreamer2/cmake
- rmdir "$pkgdir"/usr/share/Mediastreamer2
-}
-
-sha512sums="e27236f62d92d5f7ad068df68ca303d0da891df3cd1a974ff2b76d14df95ff1c24ab71653d0381250a716552cf5eac1b318854192adceca14a52e5faf2c0472e mediastreamer2-4.3.1.tar.gz"
+sha512sums="
+1c3da2ccf14e01f5f439e0264b130088f592c659999dcf3da5f429a7c3caf1ea535c483ef197302eb3f3bfc28ba524dbb034fc2265f9cb59f3872016377488b8 mediastreamer2-5.3.38.tar.gz
+964467b5f493915d4e920b3afce9ce0cacc9bb34a7886c4b4e06340d6fa646754a03ce18ec66a4a3b82d63ec52330a0b21c842d80e47a6685eb942bb01b1869b fix-cmake-path.patch
+9aa98303d53c622cd8ee6386544db337eb5069d86754876d6901a0d9bebe6e6d623f41c7ae900bb2649254b503ee63367ce612bc4bec9423fc3d57cfece119c2 fix-soname.patch
+"
diff --git a/testing/mediastreamer2/fix-cmake-path.patch b/testing/mediastreamer2/fix-cmake-path.patch
new file mode 100644
index 00000000000..48323e8f3cd
--- /dev/null
+++ b/testing/mediastreamer2/fix-cmake-path.patch
@@ -0,0 +1,14 @@
+Adapted from https://github.com/OpenMandrivaAssociation/mediastreamer/blob/master/mediastreamer2-5.3.6-cmake-config-location.patch
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -680,7 +680,7 @@ if(ENABLE_TOOLS AND NOT ANDROID)
+ )
+
+ 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 MS2_PLUGINS_DIR
+
diff --git a/testing/mediastreamer2/fix-soname.patch b/testing/mediastreamer2/fix-soname.patch
new file mode 100644
index 00000000000..05e36b57cf4
--- /dev/null
+++ b/testing/mediastreamer2/fix-soname.patch
@@ -0,0 +1,12 @@
+Patch-Source: https://github.com/OpenMandrivaAssociation/mediastreamer/blob/master/mediastreamer2-5.3.6-soname.patch
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -617,6 +617,7 @@ if(BUILD_SHARED_LIBS)
+ set_target_properties(mediastreamer2 PROPERTIES SOVERSION ${MEDIASTREAMER_SO_VERSION})
+ else()
+
++ set_target_properties(mediastreamer2 PROPERTIES SOVERSION ${MEDIASTREAMER_SO_VERSION})
+
+ #Workaround for the Debian 11 issue with conflict between libc and libtirpc
+ #/usr/bin/ld: /lib/x86_64-linux-gnu/libtirpc.so.3: warning: common of `rpc_createerr@@GLIBC_2.2.5' overridden by definition from /lib/x86_64-linux-gnu/libc.so.6
diff --git a/testing/mednafen/APKBUILD b/testing/mednafen/APKBUILD
deleted file mode 100644
index f5cce3c7a14..00000000000
--- a/testing/mednafen/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: August Klein <amatcoder@gmail.com>
-# Maintainer: August Klein <amatcoder@gmail.com>
-pkgname=mednafen
-pkgver=1.22.2
-pkgrel=0
-pkgdesc="A command-line multi-system emulator"
-url="https://mednafen.github.io/"
-arch="all !s390x !mips !mips64"
-license="GPL-2.0-only"
-makedepends="alsa-lib-dev flac-dev libogg-dev libsndfile-dev libvorbis-dev
- lzo-dev sdl2-dev zlib-dev"
-subpackages="$pkgname-lang"
-source="https://mednafen.github.io/releases/files/mednafen-$pkgver.tar.xz
- ppc64.patch
- "
-
-builddir="$srcdir"/$pkgname
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- rm -rf "$pkgdir"/usr/lib/charset.alias
-}
-
-sha512sums="e094a9134115344bf857eb7edce67f146fd43b83432db69271d5924ab5ec7dae11cdb7272c0d3c697a654902ce73cb42165f5e1256758f05e41167007e8f3a2d mednafen-1.22.2.tar.xz
-eabdf2fb1b0872b902d2a7107b87a2033cdbbf177156061e086e808699b9a6d95533e32a2be1d9b9b3a714d64e2c79aa16ec0d68690cfd379940fec59c96960d ppc64.patch"
diff --git a/testing/mednafen/ppc64.patch b/testing/mednafen/ppc64.patch
deleted file mode 100644
index 1097c2ae16f..00000000000
--- a/testing/mednafen/ppc64.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Taken from Adélie Linux (https://code.foxkit.us/adelie/packages/blob/master/user/mednafen/ppc64.patch)
-===
-
-musl is always ELFv2, no matter endianness.
-
---- mednafen/src/snes/src/lib/libco/ppc.c.old 2019-01-28 06:52:37.000000000 +0000
-+++ mednafen/src/snes/src/lib/libco/ppc.c 2019-03-25 03:42:05.330000000 +0000
-@@ -40,7 +40,7 @@
- /* Whether function calls are indirect through a descriptor,
- or are directly to function */
- #ifndef LIBCO_PPCDESC
-- #if !_CALL_SYSV && (_CALL_AIX || _CALL_AIXDESC || LIBCO_PPC64)
-+ #if !_CALL_SYSV && (_CALL_AIX || _CALL_AIXDESC || (LIBCO_PPC64 && _CALL_ELF == 1))
- #define LIBCO_PPCDESC 1
- #endif
- #endif
-
diff --git a/testing/meek/APKBUILD b/testing/meek/APKBUILD
deleted file mode 100644
index 67e03557283..00000000000
--- a/testing/meek/APKBUILD
+++ /dev/null
@@ -1,78 +0,0 @@
-# Contributor: kpcyrd <git@rxv.cc>
-# Maintainer: kpcyrd <git@rxv.cc>
-pkgname=meek
-pkgver=0.30
-pkgrel=3
-pkgdesc="A pluggable transport proxy written in Go"
-url="https://trac.torproject.org/projects/tor/wiki/doc/meek"
-arch="all"
-license="CC0-1.0"
-depends="ca-certificates"
-makedepends="glide go libcap"
-subpackages="$pkgname-doc
- $pkgname-server
- "
-# no test suite available
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://gitweb.torproject.org/pluggable-transports/$pkgname.git/snapshot/$pkgname-$pkgver.tar.gz
- glide.lock
- glide.yaml
- "
-builddir="$srcdir/src/$pkgname"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir/$pkgname-$pkgver" "$builddir"
- cd "$builddir"
- cp "$srcdir"/glide.yaml "$srcdir"/glide.lock .
- export GOPATH="$srcdir"
- glide install --skip-test
- default_prepare
-}
-
-build() {
- cd "$builddir"
- export GOPATH="$srcdir"
- go build -v -ldflags "-s -w" \
- -o meek-client/meek-client ./meek-client/...
- go build -v -ldflags "-s -w" \
- -o meek-server/meek-server ./meek-server/...
-}
-
-package() {
- cd "$builddir"
- install -Dm 755 meek-client/meek-client "$pkgdir/usr/bin/meek-client"
-
- mkdir -p "$pkgdir/usr/share/man/man1"
- install -Dm644 doc/*.1 -t "$pkgdir/usr/share/man/man1"
- install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
-
- install -Dm644 README "$pkgdir/usr/share/doc/$pkgname/README"
- install -Dm644 meek-client/torrc \
- "$pkgdir/usr/share/doc/$pkgname/torrc.meek-client"
- install -Dm644 meek-server/torrc \
- "$pkgdir/usr/share/doc/$pkgname/torrc.meek-server"
-}
-
-server() {
- pkgdesc="meek pluggable transport proxy server"
- depends=
- install -Dm 755 "$builddir"/meek-server/meek-server \
- "$subpkgdir/usr/bin/meek-server"
- setcap 'cap_net_bind_service=+ep' "$subpkgdir/usr/bin/meek-server"
-}
-
-glide_init() {
- abuild clean deps unpack prepare
- cd "$builddir"
- export GOPATH="$srcdir"
- rm -f glide.yaml glide.lock
- glide init --non-interactive
- glide update
- cp glide.yaml glide.lock "$startdir"
- cd "$startdir" && abuild checksum clean
-}
-
-sha512sums="5dd989d6800f4aaca9e5f66acf325afbb4fea70a8347a1fdff77381b28d5b9762f9d7a45b4375086d9167e1a407e53aa1d1b3203eaa09e3f8e36f2a9805dcc3d meek-0.30.tar.gz
-ccbd369ec5319ed6057c2d980e77612c1f1c2ec8f63a24f8e4dba3ee4f6c2b041050d49753c96f9f7e4d1c759ce0f023fa620250022a1699fbf45893e71fa555 glide.lock
-6c04650f2b09db98f3fdce52cc4a2720f16ea3cdf6165dd75ea4f20785138a42635ad608c64b749767a58933ed5115ed720a3a03005f0a426ea1e5e379ff26cd glide.yaml"
diff --git a/testing/meek/glide.lock b/testing/meek/glide.lock
deleted file mode 100644
index aafbe4dd921..00000000000
--- a/testing/meek/glide.lock
+++ /dev/null
@@ -1,25 +0,0 @@
-hash: ebadb3f691ad2a4b1d80941e8ba0049959860146e8a5f28bc3eec7d9b4a2bd56
-updated: 2018-04-16T21:02:35.672083878Z
-imports:
-- name: git.torproject.org/pluggable-transports/goptlib.git
- version: 7d56ec4f381e8b1aedfda360594e35a5731b5337
-- name: golang.org/x/crypto
- version: f70185d77e8278766928032ee1355e3da47e7181
- subpackages:
- - acme
- - acme/autocert
-- name: golang.org/x/net
- version: 61147c48b25b599e5b561d2e9c4f3e1ef489ca41
- subpackages:
- - http2
- - http2/hpack
- - idna
- - lex/httplex
-- name: golang.org/x/text
- version: 7922cc490dd5a7dbaa7fd5d6196b49db59ac042f
- subpackages:
- - secure/bidirule
- - transform
- - unicode/bidi
- - unicode/norm
-testImports: []
diff --git a/testing/meek/glide.yaml b/testing/meek/glide.yaml
deleted file mode 100644
index f8f3ae0ead1..00000000000
--- a/testing/meek/glide.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-package: meek
-import:
-- package: git.torproject.org/pluggable-transports/goptlib.git
-- package: golang.org/x/crypto
- subpackages:
- - acme/autocert
-- package: golang.org/x/net
- subpackages:
- - http2
diff --git a/testing/meep/APKBUILD b/testing/meep/APKBUILD
index e821662c621..ed6ba607786 100644
--- a/testing/meep/APKBUILD
+++ b/testing/meep/APKBUILD
@@ -1,17 +1,17 @@
# Contributor: Isaac Dunham <ibid.ag@gmail.com>
# Maintainer:
pkgname=meep
-pkgver=1.3
-pkgrel=8
-pkgdesc="free finite-difference time-domain (FDTD) simulation software package developed at MIT to model electromagnetic systems"
-url="http://ab-initio.mit.edu/wiki/index.php/Meep"
-arch="x86_64 x86 ppc64le s390x"
+pkgver=1.28.0
+pkgrel=0
+pkgdesc="FDTD finite-difference time-domain solver"
+url="https://meep.readthedocs.io/"
+arch="x86_64 ppc64le s390x"
license="GPL-2.0-or-later"
-makedepends="$depends_dev harminv-dev>=1.4.1-r3 openblas-dev>=0.3.0 libctl-dev guile-dev
- hdf5-dev gsl-dev gfortran gmp-dev fftw-dev"
+makedepends="harminv-dev>=1.4.1-r3 openblas-dev>=0.3.0 libctl-dev
+ guile-dev hdf5-dev gsl-dev gfortran gmp-dev fftw-dev"
# Omit -doc because it requires latex2html to build
subpackages="$pkgname-dev"
-source="http://ab-initio.mit.edu/meep/meep-$pkgver.tar.gz"
+source="https://github.com/NanoComp/meep/releases/download/v$pkgver/meep-$pkgver.tar.gz"
build() {
./configure \
@@ -23,12 +23,19 @@ build() {
--infodir=/usr/share/info \
--localstatedir=/var \
--enable-portable-binary \
- --with-blas=openblas --with-lapack=openblas
+ --with-blas=openblas \
+ --with-lapack=openblas
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="4ad8d68f27d9971fe6dd4b8440f78d5b141fe747a80c50da55ecbc56a5beb0c2d31441fb46b54cac3c62d4cb34cb1ce6819c06bd2c54bc35f129ba683dc84aea meep-1.3.tar.gz"
+sha512sums="
+1a50ee1ebd5646e838fa57a95169a77d3d30e0d96016faeacccab4a3ba68c6763d1379f8087b3ec83a79202e87c45056321ca2cca6a720cfd700653fe35a917d meep-1.28.0.tar.gz
+"
diff --git a/testing/megatools/APKBUILD b/testing/megatools/APKBUILD
index e68fd542eb4..ab19c4c1bbc 100644
--- a/testing/megatools/APKBUILD
+++ b/testing/megatools/APKBUILD
@@ -1,46 +1,47 @@
+# Contributor: Jonas Marklen <txc@txc.se>
# Contributor: H <agathos5@gmail.com>
-# Maintainer:
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
pkgname=megatools
-pkgver=1.10.2
-pkgrel=0
-pkgdesc="Megatools is a collection of programs for accessing Mega.nz service from a command line of your desktop or server."
+pkgver=1.11.1.20230212
+pkgrel=1
+pkgdesc="Collection of programs for accessing Mega.nz service"
url="https://megatools.megous.com"
arch="all"
-license="GPL-2.0"
-makedepends="curl-dev glib-dev openssl-dev gmp-dev asciidoc"
-subpackages="$pkgname-doc"
+license="GPL-2.0-only"
+makedepends="
+ asciidoc
+ curl-dev
+ docbook2x
+ glib-dev
+ gmp-dev
+ meson
+ openssl-dev
+ "
+subpackages="$pkgname-doc $pkgname-bash-completion"
source="https://megatools.megous.com/builds/megatools-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
build() {
- cd "$builddir"
- ./configure --prefix=/usr
- make
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
}
check() {
- cd "$builddir"
- make check
- for i in megacopy megadf megadl megaget megals megamkdir megaput megareg megarm; do
- msg $i
- ./$i --version
- done
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
- cd "$builddir"
- #make DESTDIR="$pkgdir" install
- ./install-sh -c -d "${pkgdir}/usr/bin"
- ./install-sh -c -d "${pkgdir}/usr/share/doc/megatools"
- ./install-sh -c -d "${pkgdir}/usr/share/man/man1"
- ./install-sh -c -d "${pkgdir}/usr/share/man/man5"
- ./install-sh -c -d "${pkgdir}/usr/share/man/man7"
- ./install-sh -c -m 755 megacopy megadf megadl megaget megals megamkdir megaput megareg megarm "${pkgdir}/usr/bin"
- ./install-sh -c -m 644 LICENSE NEWS TODO README INSTALL HACKING "${pkgdir}/usr/share/doc/megatools"
- ./install-sh -c -m 644 docs/megadf.1 docs/megaget.1 docs/megals.1 docs/megamkdir.1 docs/megaput.1 docs/megareg.1 docs/megarm.1 \
- docs/megacopy.1 docs/megadl.1 "${pkgdir}/usr/share/man/man1"
- ./install-sh -c -m 644 docs/megarc.5 "${pkgdir}/usr/share/man/man5"
- ./install-sh -c -m 644 docs/megatools.7 "${pkgdir}/usr/share/man/man7"
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ install -Dm644 contrib/bash-completion/megatools \
+ "$pkgdir"/usr/share/bash-completion/completions/megatools
+
+ for bin in megacopy megadf megadl megaget megals megamkdir megaput megareg megarm; do
+ ln -s megatools "$pkgdir"/usr/share/bash-completion/completions/$bin
+ done
}
-sha512sums="6d9a5dcba6be12bce38313c3481565b2f8671e354d2e021614b62c2cf30963b9e4a87574dd80b36613290db7721e3ef4d32072a19efee76ff292b17bc6c2bafe megatools-1.10.2.tar.gz"
+sha512sums="
+8d96533c6ae117f38e095b16f4c3241a9170397174befaff9caf81b598addbe60c89c05d29b20efead462a8f263f799107653cab1ad429ab2ba2fe0dc4fbbb39 megatools-1.11.1.20230212.tar.gz
+"
diff --git a/testing/megazeux/APKBUILD b/testing/megazeux/APKBUILD
new file mode 100644
index 00000000000..da1a1309417
--- /dev/null
+++ b/testing/megazeux/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Adrian Siekierka <kontakt@asie.pl>
+# Maintainer: Adrian Siekierka <kontakt@asie.pl>
+pkgname=megazeux
+pkgver=2.93
+pkgrel=0
+pkgdesc="Game creation system"
+url="https://www.digitalmzx.com/"
+# Compiling on s390x currently leads to an endianness misdetection, and thus
+# a test failure.
+# https://www.digitalmzx.com/forums/index.php?app=tracker&showissue=830
+arch="all !s390x"
+license="GPL-2.0-or-later"
+makedepends="libpng-dev libvorbis-dev sdl2-dev zlib-dev"
+subpackages="$pkgname-doc"
+_srcprefix=mzx${pkgver/.}
+source="${_srcprefix}src.tar.xz::https://www.digitalmzx.com/download.php?latest=src&ver=$pkgver"
+builddir="$srcdir/$_srcprefix/"
+
+build() {
+ ./config.sh \
+ --platform unix \
+ --prefix /usr \
+ --bindir /usr/lib/megazeux \
+ --libdir /usr/lib \
+ --gamesdir /usr/bin
+
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+}
+
+sha512sums="
+23356d28b59f8da5865f4535fec106f7b25f3330b58e5a1ec8839ebf2c2d529d30582ebf1753ba798f23047cf9a0ae3a1e598a672ef68b25649d12979b83a012 mzx293src.tar.xz
+"
diff --git a/testing/memdump/APKBUILD b/testing/memdump/APKBUILD
index e17fc9b90a0..293ffa52098 100644
--- a/testing/memdump/APKBUILD
+++ b/testing/memdump/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Niklas Cathor <niklas.cathor@gmx.de>
pkgname=memdump
pkgver=1.01
-pkgrel=0
+pkgrel=1
pkgdesc="utility to dump memory contents to standard output"
url="http://www.porcupine.org/forensics/tct.html"
arch="all"
diff --git a/testing/memtester/APKBUILD b/testing/memtester/APKBUILD
deleted file mode 100644
index b61b98a204b..00000000000
--- a/testing/memtester/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Olliver Schinagl <oliver@schinagl.nl>
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-pkgname=memtester
-pkgver=4.3.0
-pkgrel=0
-pkgdesc="A userspace utility for testing the memory subsystem for faults."
-url="http://pyropus.ca/software/memtester/"
-arch="all"
-license="GPL-2.0-or-later"
-depends=""
-options="!check" # No checks available
-subpackages="${pkgname}-doc"
-source="http://pyropus.ca/software/memtester/old-versions/memtester-4.3.0.tar.gz"
-
-build()
-{
- make
-}
-
-package()
-{
- install -D -m 755 "memtester" "${pkgdir}/usr/bin/memtester"
- gzip -c "memtester.8" > "memtester.8.gz" && \
- install -D -m 644 "memtester.8.gz" "${pkgdir}/usr/share/man/man8/memtester.8.gz"
- install -D -m 644 "COPYING" "${pkgdir}/usr/share/doc/${pkgname}/copying"
- gzip -c "README" > "README.gz" && \
- install -D -m 644 "README.gz" "${pkgdir}/usr/share/doc/${pkgname}/README.gz"
- gzip -c "README.tests" > "README.tests.gz" && \
- install -D -m 644 "README.tests.gz" "${pkgdir}/usr/share/doc/${pkgname}/README.tests.gz"
-}
-
-sha512sums="045bcc73855706ff03e8ca65297a0d6e5b5ac02f99dae0f17cef1310b403efcb78d9a7295eca6d2de703b0a7b2f71b58a37f5a42040f01fc77a321a8d2205888 memtester-4.3.0.tar.gz"
diff --git a/testing/menumaker/APKBUILD b/testing/menumaker/APKBUILD
new file mode 100644
index 00000000000..6626ac1de21
--- /dev/null
+++ b/testing/menumaker/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Avis Orsetti <avisorsetti@riseup.net>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=menumaker
+pkgver=0.99.14
+pkgrel=1
+pkgdesc="Heuristics-driven menu generator for Deskmenu, FluxBox, IceWM, OpenBox, WindowMaker and XFCE"
+url="https://menumaker.sourceforge.net/"
+arch="all"
+license="BSD-2-Clause"
+depends="python3"
+options="!check" # No tests provided
+source="https://downloads.sourceforge.net/menumaker/menumaker-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ ./configure --prefix=/usr --infodir=/usr/share/info
+}
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin
+ make DESTDIR="$pkgdir" pkgdatadir=/usr/lib/menumaker install
+ make DESTDIR="$pkgdir" PYTHON_BIN="python3" pkgdatadir=/usr/lib/menumaker install-exec-local
+ rm -rf "$pkgdir"/usr/share/info
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/license
+}
+
+sha512sums="
+81d44c1917d0fd4cd1c8b7cdd4ce12795fee7cc286959a7fc9dc6f84a096ea850a4348d98b6a7dce153c5d07fdb8b3aaf13f3476a9f34dd56646af3097d406d0 menumaker-0.99.14.tar.gz
+"
diff --git a/testing/mepo/0001-zig-0.12-adapt-build.zig.patch b/testing/mepo/0001-zig-0.12-adapt-build.zig.patch
new file mode 100644
index 00000000000..fd63008843b
--- /dev/null
+++ b/testing/mepo/0001-zig-0.12-adapt-build.zig.patch
@@ -0,0 +1,32 @@
+From 5c4ce980285aca894c71c1bdbfce35f05d0b0261 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sat, 20 Apr 2024 23:43:07 +0200
+Subject: [PATCH] zig 0.12: adapt build.zig
+
+---
+ build.zig | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/build.zig b/build.zig
+index c15e65d..a61082e 100644
+--- a/build.zig
++++ b/build.zig
+@@ -1,8 +1,6 @@
+ const std = @import("std");
+-const Builder = std.build.Builder;
+-const LibExeObjStep = std.build.LibExeObjStep;
+
+-fn setDependencies(step: *std.build.LibExeObjStep) void {
++fn setDependencies(step: *std.Build.Step.Compile) void {
+ step.linkSystemLibrary("c");
+ step.linkSystemLibrary("SDL2");
+ step.linkSystemLibrary("SDL2_gfx");
+@@ -11,7 +9,7 @@ fn setDependencies(step: *std.build.LibExeObjStep) void {
+ step.linkSystemLibrary("curl");
+ }
+
+-pub fn build(b: *Builder) void {
++pub fn build(b: *std.Build) void {
+ b.installDirectory(.{
+ .source_dir = .{ .path = "scripts" },
+ .install_dir = .{ .bin = {} },
diff --git a/testing/mepo/0002-zig-0.12-convert-some-vars-to-consts.patch b/testing/mepo/0002-zig-0.12-convert-some-vars-to-consts.patch
new file mode 100644
index 00000000000..57e0a36a9f7
--- /dev/null
+++ b/testing/mepo/0002-zig-0.12-convert-some-vars-to-consts.patch
@@ -0,0 +1,347 @@
+From 48dabfd3ce237f249c63b9428462f6781eec50aa Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sat, 20 Apr 2024 23:53:31 +0200
+Subject: [PATCH] zig 0.12: convert some vars to consts
+
+---
+ src/Mepo.zig | 13 ++++++++-----
+ src/TileCache.zig | 13 ++++++-------
+ src/api/shellpipe_async.zig | 4 ++--
+ src/blit/blit.zig | 36 +++++++++++-------------------------
+ src/util/utilmepolang.zig | 22 +++++++++++-----------
+ src/util/utilsdl.zig | 2 +-
+ 6 files changed, 39 insertions(+), 51 deletions(-)
+
+diff --git a/src/Mepo.zig b/src/Mepo.zig
+index 44b7990..dc49cab 100644
+--- a/src/Mepo.zig
++++ b/src/Mepo.zig
+@@ -473,7 +473,7 @@ pub fn init_video_and_sdl_stdin_loop(mepo: *@This(), enable_stdin_mepolang_repl:
+
+ while (true) {
+ const stdin = &std.io.getStdIn().reader();
+- var read_slice: []const u8 = stdin.readUntilDelimiterAlloc(mepo.allocator, '\n', 102400) catch continue;
++ const read_slice: []const u8 = stdin.readUntilDelimiterAlloc(mepo.allocator, '\n', 102400) catch continue;
+ const slice_z = try mepo.allocator.dupeZ(u8, read_slice);
+ mepo.allocator.free(read_slice);
+ std.debug.print("Read {d} bytes, running input as mepolang\n", .{slice_z.len});
+@@ -509,7 +509,7 @@ pub fn sdl_event_loop(mepo: *@This()) !void {
+
+ // Process SDL events
+ if (sdl.SDL_WaitEventTimeout(&e, config.DragThresholdTicks) > 0) {
+- var pending_fn = switch (e.type) {
++ const pending_fn = switch (e.type) {
+ sdl.SDL_FINGERDOWN => &event_fingerdown,
+ sdl.SDL_FINGERUP => &event_fingerup,
+ sdl.SDL_KEYUP => &event_keyup,
+@@ -734,7 +734,7 @@ pub fn blit(mepo: *@This()) !void {
+ pub fn video_init(mepo: *@This()) !void {
+ mepo.window = try setup_sdl_video_and_window(mepo.allocator);
+ mepo.renderer = renderer: {
+- var r = try utilsdl.errorcheck_ptr(sdl.SDL_Renderer, sdl.SDL_CreateRenderer(
++ const r = try utilsdl.errorcheck_ptr(sdl.SDL_Renderer, sdl.SDL_CreateRenderer(
+ mepo.window,
+ -1,
+ switch (mepo.renderer_type) {
+@@ -747,7 +747,7 @@ pub fn video_init(mepo: *@This()) !void {
+ };
+ var sdl_renderer_info: sdl.SDL_RendererInfo = undefined;
+ try utilsdl.errorcheck(sdl.SDL_GetRendererInfo(mepo.renderer, &sdl_renderer_info));
+- utildbg.log("Requested renderer driver {}, using renderer: {s}\n", .{mepo.renderer_type, sdl_renderer_info.name});
++ utildbg.log("Requested renderer driver {}, using renderer: {s}\n", .{ mepo.renderer_type, sdl_renderer_info.name });
+ mepo.tile_cache.renderer = mepo.renderer;
+ }
+
+@@ -774,7 +774,10 @@ pub fn init(allocator: std.mem.Allocator, tile_cache: *TileCache, use_config: []
+ return @as(@This(), .{
+ .allocator = allocator,
+ .blit_pinlayer_cache = datastructure.EvictionHashMap(
+- types.XYZ, *sdl.SDL_Texture, evict_texture, &config.MaxTextures,
++ types.XYZ,
++ *sdl.SDL_Texture,
++ evict_texture,
++ &config.MaxTextures,
+ ).init(allocator),
+ .async_shellpipe_threads = datastructure.QueueHashMap(i8, sdl.SDL_threadID).init(allocator),
+ .config = use_config,
+diff --git a/src/TileCache.zig b/src/TileCache.zig
+index 9014589..0b1fa63 100644
+--- a/src/TileCache.zig
++++ b/src/TileCache.zig
+@@ -82,13 +82,13 @@ pub fn download_loop(tile_cache: *@This(), graphical_mode: bool) !void {
+
+ // 2. Transfer from UI LIFO into transfers
+ while (tile_cache.queue_lifo_ui.count() > 0 and tile_cache.transfer_map.count() < p.get(p.pref.tile_cache_max_n_transfers).u) {
+- var coords = tile_cache.queue_lifo_ui.pop();
++ const coords = tile_cache.queue_lifo_ui.pop();
+ try tile_cache.curl_add_to_multi_and_register_transfer(coords.key, true);
+ }
+
+ // 3. Transfer from BG LIFO into transfers
+ while (tile_cache.queue_lifo_bg.count() > 0 and tile_cache.transfer_map.count() < p.get(p.pref.tile_cache_max_n_transfers).u) {
+- var coords = tile_cache.queue_lifo_bg.pop();
++ const coords = tile_cache.queue_lifo_bg.pop();
+ try tile_cache.curl_add_to_multi_and_register_transfer(coords.key, false);
+ }
+
+@@ -259,7 +259,7 @@ pub fn tile_ui_retreive_or_queue(tile_cache: *@This(), coords: types.XYZ) !TileD
+ if (file_cached_png_opt) |file_cached_png| {
+ defer tile_cache.allocator.free(file_cached_png);
+ const surface = tile_cache.load_data_to_surface(file_cached_png) catch |err| {
+- utildbg.log("Errored when loading data for tile {} from FS (file: {s}) to SDL Surface: {}\n", .{coords, png_fs_path, err});
++ utildbg.log("Errored when loading data for tile {} from FS (file: {s}) to SDL Surface: {}\n", .{ coords, png_fs_path, err });
+ break :load_from_fs;
+ };
+ defer sdl.SDL_FreeSurface(surface);
+@@ -285,7 +285,7 @@ pub fn tile_ui_retreive_or_queue(tile_cache: *@This(), coords: types.XYZ) !TileD
+ fn curl_add_to_multi_and_register_transfer(tile_cache: *@This(), coords: types.XYZ, load_to_texture: bool) !void {
+ if (tile_cache.transfer_map.get(coords)) |_| return;
+
+- var transfer_datum: *TransferDatum = datum: {
++ const transfer_datum: *TransferDatum = datum: {
+ var dat = try tile_cache.allocator.create(TransferDatum);
+ dat.client = curl.curl_easy_init().?;
+ dat.coords = coords;
+@@ -297,7 +297,7 @@ fn curl_add_to_multi_and_register_transfer(tile_cache: *@This(), coords: types.X
+ };
+ try tile_cache.transfer_map.put(coords, transfer_datum);
+
+- var tile_url = url: {
++ const tile_url = url: {
+ var url = try tile_cache.allocator.alloc(u8, p.get(p.pref.tile_cache_url).t.?.len + (3 * 10));
+ if (cstdio.sprintf(
+ &url[0],
+@@ -387,8 +387,7 @@ fn download_loop_progress_indicator(tile_cache: *@This(), initial_queue_size: us
+ \\
+ ,
+ .{
+- 100.0 * @as(f32, @floatFromInt(initial_queue_size - tile_cache.queue_lifo_bg.count()))
+- / @as(f32, @floatFromInt(initial_queue_size)),
++ 100.0 * @as(f32, @floatFromInt(initial_queue_size - tile_cache.queue_lifo_bg.count())) / @as(f32, @floatFromInt(initial_queue_size)),
+ initial_queue_size - tile_cache.queue_lifo_bg.count(),
+ initial_queue_size,
+ tile_cache.byte_counter / 1024 / 1024,
+diff --git a/src/api/shellpipe_async.zig b/src/api/shellpipe_async.zig
+index 02d60c7..f45b3e4 100644
+--- a/src/api/shellpipe_async.zig
++++ b/src/api/shellpipe_async.zig
+@@ -38,7 +38,7 @@ fn async_shellpipe(mepo: *Mepo, unique_handle_id: i8, cmd: []const u8) !void {
+ }
+
+ fn async_shellpipe_run(userdata: ?*anyopaque) callconv(.C) c_int {
+- var shellpipe_request: *AsyncShellpipeRequest = @alignCast(@ptrCast(userdata.?));
++ const shellpipe_request: *AsyncShellpipeRequest = @alignCast(@ptrCast(userdata.?));
+ async_shellpipe_run_catch_errors(shellpipe_request.mepo, shellpipe_request.unique_handle_id, shellpipe_request.cmd) catch |err| {
+ utildbg.log("Error running async shellpipe: {}\n", .{err});
+ };
+@@ -89,7 +89,7 @@ fn async_shellpipe_run_catch_errors(mepo: *Mepo, unique_handle_id: i8, cmd: []co
+ if (std.mem.lastIndexOf(u8, stdout.items, ";")) |mepolang_statement_end_index| {
+ const statement = stdout.items[0 .. mepolang_statement_end_index + 1];
+ utildbg.log("Running mepolang statement from async shellpipe: {s}\n", .{statement});
+- var heap_statement = try mepo.allocator.dupeZ(u8, statement);
++ const heap_statement = try mepo.allocator.dupeZ(u8, statement);
+ utilsdl.sdl_push_event_mepolang_execution(heap_statement);
+ try stdout.replaceRange(0, mepolang_statement_end_index + 1, &[_]u8{});
+ }
+diff --git a/src/blit/blit.zig b/src/blit/blit.zig
+index 55f74dc..5abba0c 100644
+--- a/src/blit/blit.zig
++++ b/src/blit/blit.zig
+@@ -187,7 +187,7 @@ fn blit_tile_pinlayer(mepo: *Mepo, tile_x: u32, tile_y: u32, zoom: u8, x_off: i3
+ {
+ const pingroup_order = order: {
+ // E.g. place active pingroup last so its always ontop in rendering order
+- var groups = [10]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
++ const groups = [10]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
+ var target_order: [10]u8 = undefined;
+ var index: u8 = 0;
+ for (groups) |i| {
+@@ -201,7 +201,7 @@ fn blit_tile_pinlayer(mepo: *Mepo, tile_x: u32, tile_y: u32, zoom: u8, x_off: i3
+
+ for (pingroup_order) |pin_group_i| {
+ const pin_group = mepo.pin_groups[pin_group_i];
+- var is_active_path_track= false;
++ var is_active_path_track = false;
+ var prev_pin: ?*types.Pin = null;
+ for (pin_group.items, 0..) |*pin, pin_i| {
+ defer prev_pin = pin;
+@@ -227,26 +227,12 @@ fn blit_tile_pinlayer(mepo: *Mepo, tile_x: u32, tile_y: u32, zoom: u8, x_off: i3
+ }
+ };
+
+- try blit_pin(
+- mepo,
+- pin,
+- if (prev_pin != null) prev_pin else null,
+- @intCast(pin_group_i),
+- is_active_path,
+- .{ .x = tile_x, .y = tile_y, .z = zoom }
+- );
++ try blit_pin(mepo, pin, if (prev_pin != null) prev_pin else null, @intCast(pin_group_i), is_active_path, .{ .x = tile_x, .y = tile_y, .z = zoom });
+ }
+ }
+
+ if (mepo.pin_group_active_item) |active_pin_i| {
+- try blit_pin(
+- mepo,
+- &mepo.pin_groups[mepo.pin_group_active].items[active_pin_i],
+- null,
+- mepo.pin_group_active,
+- true,
+- .{ .x = tile_x, .y = tile_y, .z = zoom }
+- );
++ try blit_pin(mepo, &mepo.pin_groups[mepo.pin_group_active].items[active_pin_i], null, mepo.pin_group_active, true, .{ .x = tile_x, .y = tile_y, .z = zoom });
+ }
+ }
+
+@@ -362,14 +348,14 @@ fn blit_pin(mepo: *Mepo, pin: *types.Pin, prev_pin: ?*types.Pin, pin_group: u8,
+ const font_height: i8 = @intCast(config.ZoomLevelToPinFontSize[p.get(p.pref.zoom).u]);
+ const n_tiles_font_overlap = 2;
+ const pin_in_view = r: {
+- const a = pin_target_x > (-config.Tsize * n_tiles_font_overlap) and pin_target_x < (config.Tsize * n_tiles_font_overlap);
++ const a = pin_target_x > (-config.Tsize * n_tiles_font_overlap) and pin_target_x < (config.Tsize * n_tiles_font_overlap);
+ const b = pin_target_y > -font_height and pin_target_y - (pin_rect_size / 2) < config.Tsize;
+ break :r a and b;
+ };
+ const prevpin_in_view = r: {
+ if (prev_pin == null) break :r false;
+ const a = prevpin_target_x.? > (-config.Tsize * n_tiles_font_overlap) and prevpin_target_x.? < config.Tsize * n_tiles_font_overlap;
+- const b = prevpin_target_y.? > -font_height and prevpin_target_y.? - (pin_rect_size / 2) < config.Tsize;
++ const b = prevpin_target_y.? > -font_height and prevpin_target_y.? - (pin_rect_size / 2) < config.Tsize;
+ break :r a and b;
+ };
+ const connecting_line_in_view = r: {
+@@ -430,9 +416,9 @@ fn blit_pin(mepo: *Mepo, pin: *types.Pin, prev_pin: ?*types.Pin, pin_group: u8,
+ if (pin.category != .Instructive or mepo.pin_group_active != pin_group)
+ break :render_pin_label;
+
+- const pin_label_bg_value : u24 = if (is_active) 0xe8e8e8 else 0xffffff;
++ const pin_label_bg_value: u24 = if (is_active) 0xe8e8e8 else 0xffffff;
+ const pin_label_bg: types.Color = .{ .value = pin_label_bg_value, .opacity = 255 };
+- const pin_label_border_value : u24 = if (is_active) 0x000000 else 0xe8e8e8;
++ const pin_label_border_value: u24 = if (is_active) 0x000000 else 0xe8e8e8;
+ const pin_label_border = .{ .value = pin_label_border_value, .opacity = 255 };
+
+ const label_color: u24 = 0x000000;
+@@ -525,7 +511,7 @@ fn blit_overlay_debugbar(mepo: *Mepo) !void {
+ fn blit_help(mepo: *Mepo) !void {
+ if (!p.get(p.pref.help).b) return;
+
+- var msg = msg: {
++ const msg = msg: {
+ var acc = std.ArrayList([]const u8).init(mepo.allocator);
+ defer acc.deinit();
+ defer for (acc.items) |item| mepo.allocator.free(item);
+@@ -658,7 +644,7 @@ fn blit_multiline_text(
+ comptime fmt_string: [:0]const u8,
+ args: anytype,
+ ) !void {
+- var msg = try std.fmt.allocPrintZ(mepo.allocator, fmt_string, args);
++ const msg = try std.fmt.allocPrintZ(mepo.allocator, fmt_string, args);
+ defer mepo.allocator.free(msg);
+
+ const font_size = font_size: {
+@@ -673,7 +659,7 @@ fn blit_multiline_text(
+ var textures_height: c_int = 0;
+
+ // Accumulate lines rendered into slice of textures
+- var textures: []*sdl.SDL_Texture = textures: {
++ const textures: []*sdl.SDL_Texture = textures: {
+ var textures_array: [50]*sdl.SDL_Texture = undefined;
+ var textures_array_size: usize = 0;
+
+diff --git a/src/util/utilmepolang.zig b/src/util/utilmepolang.zig
+index 4b859b3..40cc8a5 100644
+--- a/src/util/utilmepolang.zig
++++ b/src/util/utilmepolang.zig
+@@ -128,7 +128,7 @@ test "statementize" {
+ {
+ const input = &[_][]const u8{ "foo", "bar", "baz" };
+ const expect_0 = [_][]const u8{ "foo", "bar", "baz" };
+- var result = try statementize(std.heap.c_allocator, input[0..]);
++ const result = try statementize(std.heap.c_allocator, input[0..]);
+ try std.testing.expectEqual(@as(usize, @intCast(1)), result.len);
+ for (result[0], 0..) |_, idx| {
+ try std.testing.expect(std.mem.eql(u8, expect_0[idx], result[0][idx]));
+@@ -140,7 +140,7 @@ test "statementize" {
+ const input = &[_][]const u8{ "foo", "bar", "baz", ";", "bil", "nil", ";" };
+ const expect_0 = [_][]const u8{ "foo", "bar", "baz" };
+ const expect_1 = [_][]const u8{ "bil", "nil" };
+- var result = try statementize(std.heap.c_allocator, input[0..]);
++ const result = try statementize(std.heap.c_allocator, input[0..]);
+ try std.testing.expectEqual(@as(usize, @intCast(2)), result.len);
+ for (result[0], 0..) |_, idx| {
+ try std.testing.expect(std.mem.eql(u8, expect_0[idx], result[0][idx]));
+@@ -155,7 +155,7 @@ test "statementize" {
+ const input = &[_][]const u8{ "foo", "[", "bar", "[", "gill", "]", "]", "baz", ";", "bil", "nil", ";" };
+ const expect_0 = [_][]const u8{ "foo", "[", "bar", "[", "gill", "]", "]", "baz" };
+ const expect_1 = [_][]const u8{ "bil", "nil" };
+- var result = try statementize(std.heap.c_allocator, input[0..]);
++ const result = try statementize(std.heap.c_allocator, input[0..]);
+ try std.testing.expectEqual(@as(usize, @intCast(2)), result.len);
+ for (result[0], 0..) |_, idx| {
+ try std.testing.expect(std.mem.eql(u8, expect_0[idx], result[0][idx]));
+@@ -168,7 +168,7 @@ test "statementize" {
+ // Returns error for unmatched [] inputs
+ {
+ const input = &[_][]const u8{ "foo", "]", ";" };
+- var result = statementize(std.heap.c_allocator, input[0..]);
++ const result = statementize(std.heap.c_allocator, input[0..]);
+ try std.testing.expectEqual(result, error.UnbalancedBrackets);
+ }
+ }
+@@ -177,8 +177,8 @@ test "tokenize" {
+ {
+ // basic tokenization test based on whitespace
+ const input = "foo bar baz";
+- var expect = [_][]const u8{ "foo", "bar", "baz" };
+- var result = try tokenize(std.heap.c_allocator, input);
++ const expect = [_][]const u8{ "foo", "bar", "baz" };
++ const result = try tokenize(std.heap.c_allocator, input);
+ try std.testing.expectEqual(@as(usize, @intCast(3)), result.len);
+ for (result, 0..) |_, idx| {
+ try std.testing.expect(std.mem.eql(u8, expect[idx], result[idx]));
+@@ -188,8 +188,8 @@ test "tokenize" {
+ {
+ // e.g. treats [] brackets as individual tokens irregardless of whitespace (test [foo])
+ const input = "foo bar [baz]";
+- var expect = [_][]const u8{ "foo", "bar", "[", "baz", "]" };
+- var result = try tokenize(std.heap.c_allocator, input);
++ const expect = [_][]const u8{ "foo", "bar", "[", "baz", "]" };
++ const result = try tokenize(std.heap.c_allocator, input);
+ try std.testing.expectEqual(@as(usize, @intCast(5)), result.len);
+ for (result, 0..) |_, idx| {
+ try std.testing.expect(std.mem.eql(u8, expect[idx], result[idx]));
+@@ -199,8 +199,8 @@ test "tokenize" {
+ {
+ // e.g. treats [] brackets as individual tokens irregardless of whitespace (test [ foo])
+ const input = "foo bar [ baz]";
+- var expect = [_][]const u8{ "foo", "bar", "[", "baz", "]" };
+- var result = try tokenize(std.heap.c_allocator, input);
++ const expect = [_][]const u8{ "foo", "bar", "[", "baz", "]" };
++ const result = try tokenize(std.heap.c_allocator, input);
+ try std.testing.expectEqual(@as(usize, @intCast(5)), result.len);
+ for (result, 0..) |_, idx| {
+ try std.testing.expect(std.mem.eql(u8, expect[idx], result[idx]));
+@@ -217,7 +217,7 @@ test "argize" {
+ expect: []const types.MepoArg,
+ };
+
+- var specs = [_]spec{
++ const specs = [_]spec{
+ .{
+ // Standard check to make sure text / numbers argized properly
+ .input = &[_][]const u8{ "arga", "22.2" },
+diff --git a/src/util/utilsdl.zig b/src/util/utilsdl.zig
+index 0ff0501..ec2f4f9 100644
+--- a/src/util/utilsdl.zig
++++ b/src/util/utilsdl.zig
+@@ -52,7 +52,7 @@ pub fn sdl_push_event_signal(signal: c_int) callconv(.C) void {
+ }
+
+ pub fn sdl_renderer_set_draw_color(renderer: *sdl.SDL_Renderer, color: types.Color) errors.SDLError!void {
+- var sdl_color = color.to_sdl();
++ const sdl_color = color.to_sdl();
+ const blend_mode = if (sdl_color.a != sdl.SDL_ALPHA_OPAQUE) sdl.SDL_BLENDMODE_ADD else sdl.SDL_BLENDMODE_NONE;
+ try errorcheck(sdl.SDL_SetRenderDrawBlendMode(renderer, @intCast(blend_mode)));
+ try errorcheck(sdl.SDL_SetRenderDrawColor(renderer, sdl_color.r, sdl_color.g, sdl_color.b, color.opacity));
diff --git a/testing/mepo/0003-zig-0.12-roll-the-version.patch b/testing/mepo/0003-zig-0.12-roll-the-version.patch
new file mode 100644
index 00000000000..4f34632a1df
--- /dev/null
+++ b/testing/mepo/0003-zig-0.12-roll-the-version.patch
@@ -0,0 +1,24 @@
+From 04ed4198942b716728393b235e3c29d88e46c837 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sat, 20 Apr 2024 23:54:45 +0200
+Subject: [PATCH] zig 0.12: roll the version
+
+---
+ src/main.zig | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/main.zig b/src/main.zig
+index 77b0eb4..b477ad7 100644
+--- a/src/main.zig
++++ b/src/main.zig
+@@ -12,8 +12,8 @@ const utildbg = @import("./util/utildbg.zig");
+ pub fn main() !void {
+ comptime {
+ const v = builtin.zig_version;
+- if (v.major != 0 or v.minor != 11)
+- @panic("Must be built against Zig 0.11.x");
++ if (v.major != 0 or v.minor != 12)
++ @panic("Must be built against Zig 0.12.x");
+ }
+
+ const allocator = std.heap.c_allocator;
diff --git a/testing/mepo/0004-zig-0.12-std.os.SIG-std.os.linux.SIG.patch b/testing/mepo/0004-zig-0.12-std.os.SIG-std.os.linux.SIG.patch
new file mode 100644
index 00000000000..a93d39f4900
--- /dev/null
+++ b/testing/mepo/0004-zig-0.12-std.os.SIG-std.os.linux.SIG.patch
@@ -0,0 +1,61 @@
+From 70ae4c6440fef6ba58ad73fe1f7db6c976580c92 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:02:27 +0200
+Subject: [PATCH] zig 0.12: std.os.SIG -> std.os.linux.SIG
+
+---
+ src/api/bind_signal.zig | 11 +++++------
+ src/api/filedump.zig | 8 ++++----
+ 2 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/src/api/bind_signal.zig b/src/api/bind_signal.zig
+index 235dde2..05d8a0c 100644
+--- a/src/api/bind_signal.zig
++++ b/src/api/bind_signal.zig
+@@ -27,13 +27,13 @@ fn bind_signal(mepo: *Mepo, signo_str: [:0]const u8, expression: []const u8) !vo
+ // Signal
+ var signal_name: u6 = 0;
+ if (std.mem.orderZ(u8, signo_str, "USR1") == .eq) {
+- signal_name = std.os.SIG.USR1;
++ signal_name = std.os.linux.SIG.USR1;
+ } else if (std.mem.orderZ(u8, signo_str, "USR2") == .eq) {
+- signal_name = std.os.SIG.USR2;
++ signal_name = std.os.linux.SIG.USR2;
+ } else if (std.mem.orderZ(u8, signo_str, "TERM") == .eq) {
+- signal_name = std.os.SIG.TERM;
++ signal_name = std.os.linux.SIG.TERM;
+ } else if (std.mem.orderZ(u8, signo_str, "INT") == .eq) {
+- signal_name = std.os.SIG.INT;
++ signal_name = std.os.linux.SIG.INT;
+ } else {
+ return error.InvalidSignalName;
+ }
+@@ -45,8 +45,7 @@ fn bind_signal(mepo: *Mepo, signo_str: [:0]const u8, expression: []const u8) !vo
+ .flags = 0,
+ };
+
+- std.os.sigaction(signal_name, &signal_action, null)
+- catch return error.FailedToSetupSighandler;
++ std.os.sigaction(signal_name, &signal_action, null) catch return error.FailedToSetupSighandler;
+
+ if (mepo.table_signals.get(signal_name)) |heap_str| {
+ mepo.allocator.free(heap_str);
+diff --git a/src/api/filedump.zig b/src/api/filedump.zig
+index bbc892e..38adbb0 100644
+--- a/src/api/filedump.zig
++++ b/src/api/filedump.zig
+@@ -105,10 +105,10 @@ fn filedump(mepo: *Mepo, save_types: []const u8, filepath: []const u8) !void {
+ var it_sigs = mepo.table_signals.iterator();
+ while (it_sigs.next()) |sig| {
+ const signame = switch (sig.key_ptr.*) {
+- std.os.SIG.USR1 => "USR1",
+- std.os.SIG.USR2 => "USR2",
+- std.os.SIG.INT => "INT",
+- std.os.SIG.TERM => "TERM",
++ std.os.linux.SIG.USR1 => "USR1",
++ std.os.linux.SIG.USR2 => "USR2",
++ std.os.linux.SIG.INT => "INT",
++ std.os.linux.SIG.TERM => "TERM",
+ else => continue,
+ };
+
diff --git a/testing/mepo/0005-zig-0.12-std.os.getenv-std.posix.getenv.patch b/testing/mepo/0005-zig-0.12-std.os.getenv-std.posix.getenv.patch
new file mode 100644
index 00000000000..14bdda7c9c0
--- /dev/null
+++ b/testing/mepo/0005-zig-0.12-std.os.getenv-std.posix.getenv.patch
@@ -0,0 +1,52 @@
+From b41112eac9fdf5678babe74e5f3f8cf6f2554d60 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:04:09 +0200
+Subject: [PATCH] zig 0.12: std.os.getenv -> std.posix.getenv
+
+---
+ src/Mepo.zig | 2 +-
+ src/util/utilfile.zig | 4 ++--
+ src/util/utilplatform.zig | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/Mepo.zig b/src/Mepo.zig
+index dc49cab..eb7f8cf 100644
+--- a/src/Mepo.zig
++++ b/src/Mepo.zig
+@@ -710,7 +710,7 @@ fn setup_sdl_video_and_window(allocator: std.mem.Allocator) !*sdl.SDL_Window {
+ config.InitWindowH,
+ sdl.SDL_WINDOW_SHOWN | sdl.SDL_WINDOW_RESIZABLE | sdl.SDL_WINDOW_ALLOW_HIGHDPI,
+ ));
+- if (std.os.getenv("MEPO_WINDOW_REPOSITION")) |reposition| {
++ if (std.posix.getenv("MEPO_WINDOW_REPOSITION")) |reposition| {
+ if (reposition.len == 1 and reposition[0] == '1') {
+ sdl.SDL_SetWindowPosition(w, 0, 0);
+ }
+diff --git a/src/util/utilfile.zig b/src/util/utilfile.zig
+index 950964e..d0656e9 100644
+--- a/src/util/utilfile.zig
++++ b/src/util/utilfile.zig
+@@ -29,8 +29,8 @@ pub fn wordexp_filepath(allocator: std.mem.Allocator, path: []const u8) ![:0]con
+ .default_home_path = ".cache",
+ },
+ }) |default_mapping| {
+- if (std.os.getenv(default_mapping.env_var) != null) continue;
+- if (std.os.getenv("HOME")) |home_dir| {
++ if (std.posix.getenv(default_mapping.env_var) != null) continue;
++ if (std.posix.getenv("HOME")) |home_dir| {
+ const value = try std.fmt.allocPrintZ(allocator, "{s}/{s}", .{ home_dir, default_mapping.default_home_path });
+ defer allocator.free(value);
+ _ = cstdlib.setenv(&default_mapping.env_var[0], &value[0], 1);
+diff --git a/src/util/utilplatform.zig b/src/util/utilplatform.zig
+index 204a802..65d0dcc 100644
+--- a/src/util/utilplatform.zig
++++ b/src/util/utilplatform.zig
+@@ -9,7 +9,7 @@ pub fn supports_osk() bool {
+
+ pub fn xdg_session_desktop() enum { Phosh, Plamo, Unknown } {
+ var env_session_desktop: []const u8 = "unknown";
+- if (std.os.getenv("XDG_SESSION_DESKTOP")) |v| {
++ if (std.posix.getenv("XDG_SESSION_DESKTOP")) |v| {
+ env_session_desktop = v;
+ }
+
diff --git a/testing/mepo/0006-zig-0.12-std.os.sigaction-std.posix.sigaction.patch b/testing/mepo/0006-zig-0.12-std.os.sigaction-std.posix.sigaction.patch
new file mode 100644
index 00000000000..1dca486cb7a
--- /dev/null
+++ b/testing/mepo/0006-zig-0.12-std.os.sigaction-std.posix.sigaction.patch
@@ -0,0 +1,30 @@
+From f454182c119ea49effb328475fa4430615991672 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:06:46 +0200
+Subject: [PATCH] zig 0.12: std.os.sigaction -> std.posix.sigaction
+
+---
+ src/api/bind_signal.zig | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/api/bind_signal.zig b/src/api/bind_signal.zig
+index 05d8a0c..a80033b 100644
+--- a/src/api/bind_signal.zig
++++ b/src/api/bind_signal.zig
+@@ -39,13 +39,13 @@ fn bind_signal(mepo: *Mepo, signo_str: [:0]const u8, expression: []const u8) !vo
+ }
+
+ // Register generic signal handler
+- const signal_action = std.os.Sigaction{
++ const signal_action = std.posix.Sigaction{
+ .handler = .{ .handler = utilsdl.sdl_push_event_signal },
+- .mask = std.os.empty_sigset,
++ .mask = std.posix.empty_sigset,
+ .flags = 0,
+ };
+
+- std.os.sigaction(signal_name, &signal_action, null) catch return error.FailedToSetupSighandler;
++ std.posix.sigaction(signal_name, &signal_action, null) catch return error.FailedToSetupSighandler;
+
+ if (mepo.table_signals.get(signal_name)) |heap_str| {
+ mepo.allocator.free(heap_str);
diff --git a/testing/mepo/0007-zig-0.12-std.mem.copy-std.mem.copyForwards.patch b/testing/mepo/0007-zig-0.12-std.mem.copy-std.mem.copyForwards.patch
new file mode 100644
index 00000000000..62d404bc168
--- /dev/null
+++ b/testing/mepo/0007-zig-0.12-std.mem.copy-std.mem.copyForwards.patch
@@ -0,0 +1,22 @@
+From 78cc65d4d5b8e5613e62751b0ce0e82992f1365d Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:13:09 +0200
+Subject: [PATCH] zig 0.12: std.mem.copy -> std.mem.copyForwards
+
+---
+ src/Mepo.zig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Mepo.zig b/src/Mepo.zig
+index eb7f8cf..9541a2b 100644
+--- a/src/Mepo.zig
++++ b/src/Mepo.zig
+@@ -362,7 +362,7 @@ pub fn mepolang_execute(mepo: *@This(), mepolang_text: []const u8) !void {
+ if (FnTable.get(statement[0])) |fn_spec| {
+ const args: []types.MepoArg = try utilmepolang.argize(arena.allocator(), statement[1..statement.len]);
+ var caller_args: [types.MepoFnNargs]types.MepoArg = undefined;
+- std.mem.copy(types.MepoArg, caller_args[0..], args);
++ std.mem.copyForwards(types.MepoArg, caller_args[0..], args);
+
+ utildbg.log("Running API function for: {s} requested by mepolang input statement: {s}\n", .{ statement[0], statement });
+ _ = mepolang_execute_validate_args(fn_spec, args) catch |e| {
diff --git a/testing/mepo/0008-zig-0.12-std.math.absCast-abs.patch b/testing/mepo/0008-zig-0.12-std.math.absCast-abs.patch
new file mode 100644
index 00000000000..a7c322960cd
--- /dev/null
+++ b/testing/mepo/0008-zig-0.12-std.math.absCast-abs.patch
@@ -0,0 +1,32 @@
+From b356b82245c728fae69b98a1023f1d046a200c48 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:13:54 +0200
+Subject: [PATCH] zig 0.12: std.math.absCast -> @abs
+
+---
+ src/api/pin_cycle.zig | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/api/pin_cycle.zig b/src/api/pin_cycle.zig
+index cc1a73f..fdd33cf 100644
+--- a/src/api/pin_cycle.zig
++++ b/src/api/pin_cycle.zig
+@@ -14,8 +14,7 @@ pub const spec = .{
+ };
+
+ fn execute(mepo: *Mepo, args: [types.MepoFnNargs]types.MepoArg) !void {
+- try pin_cycle(mepo, @as(i32, @intFromFloat(args[0].Number)) == 1,
+- @intFromFloat(args[1].Number));
++ try pin_cycle(mepo, @as(i32, @intFromFloat(args[0].Number)) == 1, @intFromFloat(args[1].Number));
+ }
+
+ pub fn pin_cycle(mepo: *Mepo, viewport_only: bool, delta: i32) !void {
+@@ -25,7 +24,7 @@ pub fn pin_cycle(mepo: *Mepo, viewport_only: bool, delta: i32) !void {
+ var target_i = if (mepo.pin_group_active_item) |active_item| @as(i32, @intCast(active_item)) else 0;
+ const group_unordered = !p.get(p.pingroup_prop(mepo.pin_group_active, .Ordered)).b;
+ const add: i32 = if (delta > 0) 1 else -1;
+- for (0..std.math.absCast(delta)) |_| {
++ for (0..@abs(delta)) |_| {
+ var pin_i = target_i + add;
+ // E.g. two conditions to skip and continually increase pin_i:
+ // 1. Within an ordered group, structural pins should be skipped
diff --git a/testing/mepo/0009-zig-0.12-std.ChildProcess.exec-std.ChildProcess.run.patch b/testing/mepo/0009-zig-0.12-std.ChildProcess.exec-std.ChildProcess.run.patch
new file mode 100644
index 00000000000..2558059df86
--- /dev/null
+++ b/testing/mepo/0009-zig-0.12-std.ChildProcess.exec-std.ChildProcess.run.patch
@@ -0,0 +1,22 @@
+From fe7c5c5f22c7e071249480582f7effe1a3a67a8c Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:14:24 +0200
+Subject: [PATCH] zig 0.12: std.ChildProcess.exec -> std.ChildProcess.run
+
+---
+ src/api/shellpipe_sync.zig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/api/shellpipe_sync.zig b/src/api/shellpipe_sync.zig
+index a96ad1a..71051fd 100644
+--- a/src/api/shellpipe_sync.zig
++++ b/src/api/shellpipe_sync.zig
+@@ -32,7 +32,7 @@ fn shellpipe_sync(mepo: *Mepo, cmd: []const u8) !void {
+ try mepo.blit();
+ const env_vars = try get_env_vars(mepo, arena.allocator());
+ const args = [_][]const u8{ "sh", "-c", cmd };
+- const process_result = try std.ChildProcess.exec(.{
++ const process_result = try std.ChildProcess.run(.{
+ .allocator = arena.allocator(),
+ .argv = args[0..],
+ .env_map = &env_vars,
diff --git a/testing/mepo/0010-zig-0.12-std.os.exit-std.posix.exit.patch b/testing/mepo/0010-zig-0.12-std.os.exit-std.posix.exit.patch
new file mode 100644
index 00000000000..eb915d5f107
--- /dev/null
+++ b/testing/mepo/0010-zig-0.12-std.os.exit-std.posix.exit.patch
@@ -0,0 +1,22 @@
+From 004a6d00e6cd0602d297d60ca270589684ed2f90 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:18:16 +0200
+Subject: [PATCH] zig 0.12: std.os.exit -> std.posix.exit
+
+---
+ src/Mepo.zig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Mepo.zig b/src/Mepo.zig
+index 9541a2b..998f7d9 100644
+--- a/src/Mepo.zig
++++ b/src/Mepo.zig
+@@ -618,7 +618,7 @@ pub fn graceful_terminate_sdl() void {
+ sdl.IMG_Quit();
+ sdl.SDL_VideoQuit();
+ sdl.SDL_Quit();
+- std.os.exit(0);
++ std.posix.exit(0);
+ }
+
+ pub fn sighandle_terminate(arg: c_int) callconv(.C) void {
diff --git a/testing/mepo/0011-zig-0.12-std.os.poll-std.posix.poll.patch b/testing/mepo/0011-zig-0.12-std.os.poll-std.posix.poll.patch
new file mode 100644
index 00000000000..649b45aada0
--- /dev/null
+++ b/testing/mepo/0011-zig-0.12-std.os.poll-std.posix.poll.patch
@@ -0,0 +1,47 @@
+From 691711f17be11c939e638f16098c80edd0625528 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:22:56 +0200
+Subject: [PATCH] zig 0.12: std.os.poll -> std.posix.poll
+
+---
+ src/api/shellpipe_async.zig | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/api/shellpipe_async.zig b/src/api/shellpipe_async.zig
+index f45b3e4..63c919a 100644
+--- a/src/api/shellpipe_async.zig
++++ b/src/api/shellpipe_async.zig
+@@ -68,19 +68,19 @@ fn async_shellpipe_run_catch_errors(mepo: *Mepo, unique_handle_id: i8, cmd: []co
+ var stdout = std.ArrayList(u8).init(mepo.allocator);
+ errdefer stdout.deinit();
+
+- var poll_fds = [_]std.os.pollfd{
+- .{ .fd = child.stdout.?.handle, .events = std.os.POLL.IN, .revents = undefined },
++ var poll_fds = [_]std.posix.pollfd{
++ .{ .fd = child.stdout.?.handle, .events = std.posix.POLL.IN, .revents = undefined },
+ };
+ const bump_amt = 512;
+
+ var continue_reading = true;
+ while (continue_reading) {
+- const events = try std.os.poll(&poll_fds, std.math.maxInt(i32));
++ const events = try std.posix.poll(&poll_fds, std.math.maxInt(i32));
+ if (events == 0) continue;
+- if (poll_fds[0].revents & std.os.POLL.IN != 0) {
++ if (poll_fds[0].revents & std.posix.POLL.IN != 0) {
+ try stdout.ensureTotalCapacity(@min(stdout.items.len + bump_amt, max_output_bytes));
+ if (stdout.unusedCapacitySlice().len == 0) return error.StdoutStreamTooLong;
+- const nread = try std.os.read(poll_fds[0].fd, stdout.unusedCapacitySlice());
++ const nread = try std.posix.read(poll_fds[0].fd, stdout.unusedCapacitySlice());
+ if (nread == 0) {
+ continue_reading = false;
+ continue;
+@@ -93,7 +93,7 @@ fn async_shellpipe_run_catch_errors(mepo: *Mepo, unique_handle_id: i8, cmd: []co
+ utilsdl.sdl_push_event_mepolang_execution(heap_statement);
+ try stdout.replaceRange(0, mepolang_statement_end_index + 1, &[_]u8{});
+ }
+- } else if (poll_fds[0].revents & (std.os.POLL.ERR | std.os.POLL.NVAL | std.os.POLL.HUP) != 0) {
++ } else if (poll_fds[0].revents & (std.posix.POLL.ERR | std.posix.POLL.NVAL | std.posix.POLL.HUP) != 0) {
+ continue_reading = false;
+ continue;
+ }
diff --git a/testing/mepo/0012-zig-0.12-std.math.absInt-abs.patch b/testing/mepo/0012-zig-0.12-std.math.absInt-abs.patch
new file mode 100644
index 00000000000..1e25c5b89cc
--- /dev/null
+++ b/testing/mepo/0012-zig-0.12-std.math.absInt-abs.patch
@@ -0,0 +1,52 @@
+From 79df227e7d1b6af7aceebad133ec56d222861ee8 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sun, 21 Apr 2024 00:29:55 +0200
+Subject: [PATCH] zig 0.12: std.math.absInt -> @abs
+
+---
+ src/Mepo.zig | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/Mepo.zig b/src/Mepo.zig
+index 998f7d9..b8f9fe3 100644
+--- a/src/Mepo.zig
++++ b/src/Mepo.zig
+@@ -23,8 +23,8 @@ debug_message: ?[]const u8 = null,
+ drag: ?struct {
+ begin_ticks: u32,
+ point: sdl.SDL_Point,
+- delta_x: i32 = 0,
+- delta_y: i32 = 0,
++ delta_x: u32 = 0,
++ delta_y: u32 = 0,
+ } = null,
+ fingers: std.ArrayList(sdl.SDL_FingerID),
+ fingers_gesture_delta: isize = 0,
+@@ -169,14 +169,14 @@ fn event_mousebuttonup(mepo: *@This(), e: sdl.SDL_Event) types.Pending {
+ var closest_match_pin: ?struct {
+ pin_group_i: u8,
+ pin_i: u32,
+- delta_dist: i32,
++ delta_dist: u32,
+ } = null;
+ for (mepo.pin_groups, 0..) |pin_group, pin_group_i| {
+ for (pin_group.items, 0..) |*item, pin_i| {
+ if (item.category == .Structural) continue;
+ const pin_x = mepo.convert_latlon_to_xy(.LonToX, item.lon);
+ const pin_y = mepo.convert_latlon_to_xy(.LatToY, item.lat);
+- const delta = (std.math.absInt(pin_x - cursor.x) catch continue) + (std.math.absInt(pin_y - cursor.y) catch continue);
++ const delta = @abs(pin_x - cursor.x) + @abs(pin_y - cursor.y);
+ if (delta < config.ClickPinMaxDelta and (closest_match_pin == null or closest_match_pin.?.delta_dist > delta)) {
+ closest_match_pin = .{
+ .pin_group_i = @intCast(pin_group_i),
+@@ -212,8 +212,8 @@ fn event_mousemotion(mepo: *@This(), e: sdl.SDL_Event) types.Pending {
+ if (mepo.drag != null and mepo.within_touch_bounds(cursor.x, cursor.y)) {
+ mepo.drag.?.point.x = cursor.x;
+ mepo.drag.?.point.y = cursor.y;
+- mepo.drag.?.delta_x += std.math.absInt(e.motion.xrel) catch unreachable;
+- mepo.drag.?.delta_y += std.math.absInt(e.motion.yrel) catch unreachable;
++ mepo.drag.?.delta_x += @abs(e.motion.xrel);
++ mepo.drag.?.delta_y += @abs(e.motion.yrel);
+ mepo.set_x(mepo.get_x() - (e.motion.xrel * p.get(p.pref.drag_scale).u));
+ mepo.set_y(mepo.get_y() - (e.motion.yrel * p.get(p.pref.drag_scale).u));
+ return .Drag;
diff --git a/testing/mepo/APKBUILD b/testing/mepo/APKBUILD
new file mode 100644
index 00000000000..7bfbc7b13bb
--- /dev/null
+++ b/testing/mepo/APKBUILD
@@ -0,0 +1,80 @@
+# Maintainer: Miles Alan <m@milesalan.com>
+pkgname=mepo
+pkgver=1.2.0
+pkgrel=1
+_pkgdescbase="Fast, simple, and hackable OSM map viewer for Linux"
+pkgdesc="$_pkgdescbase (base SDL application)"
+url="https://git.sr.ht/~mil/mepo"
+arch="aarch64 x86_64" # Limited by zig aport
+license="GPL-3.0-or-later"
+makedepends="
+ curl-dev
+ sdl2-dev
+ sdl2_gfx-dev
+ sdl2_image-dev
+ sdl2_ttf-dev
+ zig>=0.11.0
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~mil/mepo/archive/$pkgver.tar.gz
+ 0001-zig-0.12-adapt-build.zig.patch
+ 0002-zig-0.12-convert-some-vars-to-consts.patch
+ 0003-zig-0.12-roll-the-version.patch
+ 0004-zig-0.12-std.os.SIG-std.os.linux.SIG.patch
+ 0005-zig-0.12-std.os.getenv-std.posix.getenv.patch
+ 0006-zig-0.12-std.os.sigaction-std.posix.sigaction.patch
+ 0007-zig-0.12-std.mem.copy-std.mem.copyForwards.patch
+ 0008-zig-0.12-std.math.absCast-abs.patch
+ 0009-zig-0.12-std.ChildProcess.exec-std.ChildProcess.run.patch
+ 0010-zig-0.12-std.os.exit-std.posix.exit.patch
+ 0011-zig-0.12-std.os.poll-std.posix.poll.patch
+ 0012-zig-0.12-std.math.absInt-abs.patch
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-scripts:scripts:noarch
+"
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+ aarch64|x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ zig build -Doptimize=ReleaseSafe ${cputarget:+-Dcpu="$cputarget"}
+ zig-out/bin/mepo -docman > mepo.1
+}
+
+check() {
+ zig build test
+}
+
+package() {
+ install -Dm755 zig-out/bin/mepo* -t "$pkgdir/usr/bin/"
+ install -Dm644 zig-out/share/applications/mepo.desktop -t "$pkgdir/usr/share/applications/"
+ install -Dm644 zig-out/share/pixmaps/mepo.png -t "$pkgdir/usr/share/pixmaps/"
+ install -Dm644 mepo.1 -t "$pkgdir/usr/share/man/man1/"
+}
+
+scripts() {
+ pkgdesc="$_pkgdescbase (including base SDL application & scripts)"
+ depends="$pkgname=$pkgver-r$pkgrel zenity curl findutils xwininfo geoclue jq ncurses font-hack-nerd"
+ mkdir -p "$subpkgdir"
+ amove usr/bin/mepo_*
+}
+
+sha512sums="
+e01b19a578f9ffa340eac62e1db75495b424fe9bff98b9d25cf2c3cd6a402e8c756463582757bbd979aa927cd2e8c1ded2c25f6746851fb2a39a1257794fbbf3 mepo-1.2.0.tar.gz
+7b2d7cbd7c00db8863a0815f34e959c7e7e071b29e4576edb0e0e952489ab34461dfe0a054fcc933deda2fa50cdc43eded8a73e59e45955c6c0c35401e43704f 0001-zig-0.12-adapt-build.zig.patch
+0c0f88fe7e28b9b220473c909b0b1fa5dac14fb6bcb18bf0a1eca9bba572fc3235ba74a92e823b13e734215c3581bd9fdd4b4a7ab93cf1bb3b9487146441667a 0002-zig-0.12-convert-some-vars-to-consts.patch
+37e6ccb8e6d28167a365548f5515ca568744d4204855ac95f783d7b601291b60bbc8353007521fcb291039267eecde6085bc806793ae05ef65586cccfce91d94 0003-zig-0.12-roll-the-version.patch
+c7963bad05e800ebdac128142a71392a2b5ef3f010c6dab62f7be00ef2df91f3b06404e0dcb1c85f672b051d110426decd3d8e3b2bda4093d114caca3278461b 0004-zig-0.12-std.os.SIG-std.os.linux.SIG.patch
+6c7918237aad1eab69734fc3b5f2392da6039f51587072f9a809c77571d4364bd88f34decbbfb701d4dc47d0987da12b3d99b8b178819d82926977ebf73b9e74 0005-zig-0.12-std.os.getenv-std.posix.getenv.patch
+9c2d6a452a4137f709480ffe7f2871561004c4b8e5c8a79d1d482f90bb1cf90c51eee1e6702ec6e790aee677a56ffdb00b6a5254895ce134abc4be65c5ace93e 0006-zig-0.12-std.os.sigaction-std.posix.sigaction.patch
+68bd1633606e4db2f064b520fe6143f1a179e0b8b1d3df249cf60791132953ba6fd0a10a80f1f70a754f1a0260a43a92105f0928e09d2c786740d68324b818c5 0007-zig-0.12-std.mem.copy-std.mem.copyForwards.patch
+b5af22b1f11beeb9fefc8801ffa0748c63f54248683a60531789c7ec30effb122d4f011dba50dce082668563795d9ad1722d3b96d698c79122b60b0f5819b3f9 0008-zig-0.12-std.math.absCast-abs.patch
+e606a2595131a8d75fe79103c13b91257d3a104e4799aed6d75dd43de6cb46deb47a7a7e9e3ed171e0f066789a9f14ea92cbf6b0b9b4604ab7df4daa69c00c99 0009-zig-0.12-std.ChildProcess.exec-std.ChildProcess.run.patch
+e855ba670adec24935c3f10ee6107648e6a9e34eb9ea27a72520e76950ee9afa69ac2e13af392ae947ec5aacc07e625af17780624ae1b473e03be66c08c33ecd 0010-zig-0.12-std.os.exit-std.posix.exit.patch
+26890ba25a841d051a77e79582c1d4916f81f52f2f173eccc813878724e36835fd6a3df586c80d4d608562079d7c0a127a6a2a00ae2913d769ada716f6b0568c 0011-zig-0.12-std.os.poll-std.posix.poll.patch
+fb69d64dabd1e6b4eb49dffabb4488a19b1d10ec444a55abe5d173245e715a75ef7aec5b588d16f743034aae41e565e0f3ef90f49a9ac9f131daf9bc7370307b 0012-zig-0.12-std.math.absInt-abs.patch
+"
diff --git a/testing/mergerfs/APKBUILD b/testing/mergerfs/APKBUILD
index 7426545692d..f3ff66592a4 100644
--- a/testing/mergerfs/APKBUILD
+++ b/testing/mergerfs/APKBUILD
@@ -3,13 +3,13 @@
# NOTE: For now we must use vendored libfuse, see the URL below for details.
# https://github.com/trapexit/mergerfs/blob/2.27.0/README.md#why-was-libfuse-embedded-into-mergerfs
pkgname=mergerfs
-pkgver=2.29.0
+pkgver=2.38.1
pkgrel=0
pkgdesc="A FUSE based union filesystem"
url="https://github.com/trapexit/mergerfs"
arch="all"
license="ISC"
-depends="libattr fuse"
+depends="libattr"
makedepends="autoconf automake libtool gettext-dev attr-dev linux-headers"
options="suid !check" # No test suite
subpackages="$pkgname-doc"
@@ -29,4 +29,6 @@ package() {
make PREFIX="/usr" DESTDIR="$pkgdir" install
}
-sha512sums="2c21dedffc2f261c6c8427af59cffcacacc9b67bce7bb9989bd5946aa645c68bac0f56250ec19710e586a00892f7198853390bea3ff5981035d5a492ae4569a2 mergerfs-2.29.0.tar.gz"
+sha512sums="
+f485df32bb0749898ea18e8f97996c74cb1fd998108baa3fc207e6c4f6d68f3a0905fd0cbb113e9aefa6444bf98ffe207de53d57579e393da259d9a79d2cc160 mergerfs-2.38.1.tar.gz
+"
diff --git a/testing/merlin/APKBUILD b/testing/merlin/APKBUILD
index 032fe8bf448..9e39c0b49ce 100644
--- a/testing/merlin/APKBUILD
+++ b/testing/merlin/APKBUILD
@@ -1,37 +1,55 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=merlin
-pkgver=3.0.5
+pkgver=4.14
+_ocamlver=4.14
+_pkgver="$pkgver-${_ocamlver//./}"
pkgrel=0
pkgdesc="Context sensitive completion for OCaml"
url="https://ocaml.github.io/merlin/"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
+arch="all !riscv64 !loongarch64" # ocaml
license="MIT"
-depends="ocaml ocaml-findlib"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="
+ dune
ocaml
+ ocaml-csexp-dev
ocaml-findlib-dev
+ ocaml-menhir-dev
ocaml-yojson-dev
"
-options="!check" # XXX: tests are broken, see https://github.com/ocaml/merlin/issues/766
-subpackages="$pkgname-emacs::noarch $pkgname-vim::noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+checkdepends="cmd:menhir jq ocaml-ppxlib-dev"
+options="!check" # requires annotation and source files that we delete in ocaml
+subpackages="
+ $pkgname-dev
+ $pkgname-emacs::noarch
+ $pkgname-vim::noarch
+ "
+source="$pkgname-$_pkgver.tar.bz2::https://github.com/ocaml/merlin/releases/download/v$_pkgver/merlin-$_pkgver.tbz"
+builddir="$srcdir/$pkgname-$_pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- ./configure --prefix /usr
- make
+ dune build -p merlin,merlin-lib,dot-merlin-reader \
+ @install --no-buffer --verbose
}
check() {
- cd "$builddir"
- make test
+ dune runtest --build-dir=.testenv --no-buffer --verbose
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ merlin merlin-lib dot-merlin-reader
+
+ install -Dvm644 LICENSE \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
}
emacs() {
@@ -39,22 +57,54 @@ emacs() {
depends="$pkgname=$pkgver-r$pkgrel"
install_if="$pkgname=$pkgver-r$pkgrel emacs"
- _submv usr/share/emacs
+ amove usr/share/emacs
}
vim() {
pkgdesc="$pkgdesc in vim"
- depends="$pkgname=$pkgver-r$pkgrel"
+ depends="$pkgname=$pkgver-r$pkgrel python3"
install_if="$pkgname=$pkgver-r$pkgrel vim"
- _submv usr/share/ocamlmerlin/vim
+ amove usr/share/merlin/vim
}
-_submv() {
- local path="$1"
- mkdir -p "$subpkgdir"/${path%/*}
- mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
- rmdir -p "$pkgdir"/${path%/*} 2>/dev/null || true
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="bc9790d72caaec2824fe66c3ed439961a00285cd3f7e59cea8f16283a4f489a89d8ac231d2d0da1000e0f03fa6f7b52c04fa4aff6459df5bd17322693493088d merlin-3.0.5.tar.gz"
+sha512sums="
+ebefec44c7f54b10aa85895baacecf778930ee0c4cd5a257836755ccadd9018c20379511e254efa98ed7d48fff9ba9eeb93b45a722cc1d2d61f51570cc57985d merlin-4.14-414.tar.bz2
+"
diff --git a/testing/mesa-asahi/APKBUILD b/testing/mesa-asahi/APKBUILD
new file mode 100644
index 00000000000..d2860170431
--- /dev/null
+++ b/testing/mesa-asahi/APKBUILD
@@ -0,0 +1,339 @@
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+# this package is temporary for asahi linux
+pkgname=mesa-asahi
+_asahiver=20240228
+_commit=asahi-$_asahiver
+pkgver=24.0.0_pre$_asahiver
+pkgrel=1
+pkgdesc="Mesa DRI OpenGL library for Asahi linux"
+url="https://gitlab.freedesktop.org/asahi/mesa"
+arch="aarch64"
+license="MIT SGI-B-2.0 BSL-1.0"
+subpackages="
+ $pkgname-dev
+ $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-vulkan-swrast:_vulkan
+ $pkgname-rusticl
+ "
+_llvmver=17
+depends_dev="
+ libdrm-dev
+ libxext-dev
+ libxdamage-dev
+ libxcb-dev
+ libxshmfence-dev
+ "
+makedepends="
+ $depends_dev
+ bison
+ clang17-dev
+ expat-dev
+ findutils
+ flex
+ gettext
+ elfutils-dev
+ glslang-dev
+ libtool
+ libclc-dev
+ libxfixes-dev
+ libva-dev
+ libvdpau-dev
+ libx11-dev
+ libxml2-dev
+ libxrandr-dev
+ libxxf86vm-dev
+ llvm$_llvmver-dev
+ meson
+ py3-mako
+ python3
+ vulkan-loader-dev
+ wayland-dev
+ wayland-protocols
+ xorgproto
+ zlib-dev
+ zstd-dev
+ rust
+ rust-bindgen
+ spirv-llvm-translator-dev
+ "
+source="
+ https://gitlab.freedesktop.org/asahi/mesa/-/archive/$_commit/mesa-$_commit.tar.gz
+ "
+# $pkgname-$_commitid.tar.gz::https://gitlab.freedesktop.org/asahi/mesa/-/archive/$_commitid/mesa-$_commitid.tar.gz
+
+replaces="mesa-dricore"
+options="!check" # we skip tests intentionally
+builddir="$srcdir"/mesa-asahi-$_asahiver
+
+_dri_driverdir=/usr/lib/xorg/modules/dri
+_gallium_drivers="swrast,virgl,kmsro,asahi,svga,zink"
+_vulkan_drivers="swrast"
+_vulkan_layers="device-select,overlay"
+ _rusticl=true
+
+ # ~5% smaller
+ _lto=false
+
+build() {
+ # 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"
+ echo '24.0.0' > VERSION
+ 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 \
+ -Ddri-drivers-path=$_dri_driverdir \
+ -Dgallium-drivers=$_gallium_drivers \
+ -Dvulkan-drivers=$_vulkan_drivers \
+ -Dvulkan-layers=$_vulkan_layers \
+ -Dplatforms=x11,wayland \
+ -Dllvm=enabled \
+ -Dshared-llvm=enabled \
+ -Dshared-glapi=enabled \
+ -Dgbm=enabled \
+ -Dglx=dri \
+ -Dopengl=true \
+ -Dosmesa=true \
+ -Dgles1=enabled \
+ -Dgles2=enabled \
+ -Ddri3=enabled \
+ -Degl=enabled \
+ -Dgallium-extra-hud=true \
+ -Dgallium-nine=false \
+ -Dgallium-rusticl=$_rusticl \
+ -Dgallium-va=enabled \
+ -Dgallium-vdpau=enabled \
+ -Dgallium-xa=enabled \
+ -Dvideo-codecs=h264dec,h264enc,h265dec,h265enc \
+ . output
+
+ # Print config
+ meson configure --no-pager output
+
+ # parallel build workaround
+ ninja -C output \
+ src/compiler/nir/nir_intrinsics.h \
+ src/util/format/u_format_pack.h \
+ $build_first
+
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ provides="mesa"
+ provider_priority=0
+ replaces="mesa"
+
+}
+
+_dev() {
+ pkgdesc="Mesa development libraries"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provides="mesa-dev"
+ provider_priority=0
+ replaces="mesa-dev"
+}
+egl() {
+ pkgdesc="Mesa libEGL runtime libraries"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-egl"
+ replaces="mesa-egl"
+
+ amove usr/lib/libEGL.so*
+}
+
+gl() {
+ pkgdesc="Mesa libGL runtime libraries"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-gl"
+ replaces="mesa-gl"
+
+ amove usr/lib/libGL.so*
+}
+
+glapi() {
+ pkgdesc="Mesa shared glapi"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-glapi"
+ replaces="mesa-glapi"
+
+ amove usr/lib/libglapi.so.*
+}
+
+gles() {
+ pkgdesc="Mesa libGLESv2 runtime libraries"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-gles"
+ replaces="mesa-gles"
+
+ amove usr/lib/libGLES*.so*
+}
+xatracker() {
+ pkgdesc="Mesa XA state tracker for vmware"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-xatracker"
+ replaces="mesa-xatracker"
+
+ amove usr/lib/libxatracker*.so.*
+}
+
+osmesa() {
+ pkgdesc="Mesa offscreen rendering libraries"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-osmesa"
+ replaces="mesa-osmesa"
+
+ amove usr/lib/libOSMesa.so.*
+}
+
+gbm() {
+ pkgdesc="Mesa gbm library"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-gbm"
+ replaces="mesa-gbm"
+
+ amove usr/lib/libgbm.so.*
+}
+
+libd3dadapter9() {
+ pkgdesc="Mesa directx9 adapter"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+
+ amove usr/lib/d3d/d3dadapter9.so*
+}
+
+rusticl() {
+ pkgdesc="Mesa OpenCL driver"
+ depends="mesa-asahi=$pkgver-r$pkgrel clang$_llvmver-headers libclc~$_llvmver"
+ provider_priority=0
+ provides="mesa-rusticl"
+ replaces="mesa-rusticl"
+
+ amove usr/lib/libRusticlOpenCL.so.*
+ amove etc/OpenCL/vendors/
+}
+
+# Move links referencing the same file to the subpackage.
+# Usage: _mv_links <base directory> <example>
+# where <example> is one of the libraries covered by the megadriver.
+# The example is used to find other links that point to the same file.
+_mv_links() {
+ install -d "$subpkgdir"/$1
+ find -L "$pkgdir"/$1 -samefile "$pkgdir"/$1/$2 -print0 \
+ | xargs -0 -I{} mv {} "$subpkgdir"/$1/
+}
+
+_mv_vulkan() {
+ local i
+ install -d "$subpkgdir"/usr/lib
+ install -d "$subpkgdir"/usr/share/vulkan/icd.d
+ for i in "$@"; do
+ amove usr/lib/libvulkan_$i*.so
+ amove usr/share/vulkan/icd.d/${i}_*.*
+ done
+}
+
+# Mesa uses "megadrivers" where multiple drivers are linked into one shared
+# 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.
+
+_gallium() {
+ pkgdesc="Mesa gallium DRI drivers"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-dri-gallium"
+ replaces="mesa-dri-gallium"
+
+ # libgallium_dri.so
+ _mv_links $_dri_driverdir swrast_dri.so
+}
+
+_va() {
+ local n=${subpkgname##*-va-}
+ pkgdesc="Mesa $n VAAPI drivers"
+ depends="mesa-asahi=$pkgver-r$pkgrel libva"
+
+ case $n in
+ gallium)
+ # libgallium_drv_video.so
+ _mv_links /usr/lib/dri radeonsi_drv_video.so ;;
+ esac
+}
+
+_vdpau() {
+ local n=${subpkgname##*-vdpau-}
+ pkgdesc="Mesa $n VDPAU drivers"
+ depends="mesa-asahi=$pkgver-r$pkgrel libvdpau"
+
+ case $n in
+ gallium)
+ # libvdpau_gallium.so.1.0.0
+ _mv_links /usr/lib/vdpau libvdpau_radeonsi.so.1.0.0 ;;
+ esac
+}
+
+_vulkan() {
+ local n=${subpkgname##*-vulkan-}
+ pkgdesc="Mesa Vulkan API driver for $n"
+ depends="mesa-asahi=$pkgver-r$pkgrel"
+ provider_priority=0
+ provides="mesa-vulkan"
+ replaces="mesa-vulkan"
+
+ case $n in
+ swrast)
+ _mv_vulkan lvp ;;
+ esac
+}
+
+_vulkan_layers() {
+ pkgdesc="collection of vulkan layers from mesa"
+ depends="python3"
+ provider_priority=0
+ provides="mesa-vulkan-layers"
+
+ # 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"
+ replaces="$pkgname-vulkan-layer=$pkgver-r$pkgrel"
+
+ amove usr/share/vulkan/explicit_layer.d
+ amove usr/share/vulkan/implicit_layer.d
+ amove usr/lib/libVkLayer_*.so
+ amove usr/bin/mesa-overlay-control.py
+}
+
+sha512sums="
+7c0125e67ad34b283a4aebf2236d709c3d783583f7d851b725c8fd50767ca29c10337794953e291f6aa87eac2432856e00a90e363b820edd45e500e0891f78bb mesa-asahi-20240228.tar.gz
+"
diff --git a/testing/meson-tools/APKBUILD b/testing/meson-tools/APKBUILD
index 821369669ae..6235ed9f2a1 100644
--- a/testing/meson-tools/APKBUILD
+++ b/testing/meson-tools/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Daniel Santana <daniel@santana.tech>
pkgname=meson-tools
pkgver=0.1
-pkgrel=0
+pkgrel=1
pkgdesc="Tools for Amlogic Meson ARM platforms"
url="https://github.com/afaerber/meson-tools"
arch="all"
license="GPL-2.0-or-later"
-makedepends_host="openssl-dev"
+makedepends_host="openssl-dev>3"
subpackages="$pkgname-doc"
options="!check" # no tests provided
source="$pkgname-$pkgver.tar.gz::https://github.com/afaerber/meson-tools/archive/v$pkgver.tar.gz"
diff --git a/testing/metalang99/APKBUILD b/testing/metalang99/APKBUILD
new file mode 100644
index 00000000000..fa2cf514cea
--- /dev/null
+++ b/testing/metalang99/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Sebastian Hudak <sebastian@sebsite.pw>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=metalang99
+pkgver=1.13.3
+pkgrel=0
+pkgdesc="C meta-programming language built with pre-processor macros"
+url="https://github.com/Hirrolot/metalang99"
+arch="noarch"
+license="MIT"
+checkdepends="bash cmake"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Hirrolot/metalang99/archive/v$pkgver.tar.gz"
+
+check() {
+ scripts/test.sh
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr
+ cp -r include "$pkgdir"/usr/include
+}
+
+sha512sums="
+dae829981780995fd3fbb1c2921a57fd560a3e1ad2af5df1654bc555a77aa15287b33ce064fd0914b50869aceb959f567ed79d4b00249ef814973756fc9c5ff1 metalang99-1.13.3.tar.gz
+"
diff --git a/testing/metalog/APKBUILD b/testing/metalog/APKBUILD
deleted file mode 100644
index ee3643302a8..00000000000
--- a/testing/metalog/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=metalog
-pkgver=20200113
-pkgrel=0
-pkgdesc="small, simple to config, flexible syslogd/klogd daemon"
-url="https://github.com/hvisage/metalog"
-arch="all"
-license="GPL-2.0-only"
-makedepends="pcre-dev automake autoconf autoconf-archive"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hvisage/metalog/archive/metalog-$pkgver.tar.gz
- metalog.initd
- metalog.confd
- "
-builddir="$srcdir/"metalog-metalog-$pkgver
-
-prepare() {
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
-}
-
-sha512sums="d399d86f988c69c9f74553cd682a5fe04886bca458e6f8bb3132fe1fb9f522510a428cfde8af0857c5ba22531b276b04fa05183e0006c2d28ef0f0aead488f93 metalog-20200113.tar.gz
-09d8ac585418c6a3dfccc9d0f1a050b5862924712d78dc44fce3cb497bb362afe0a556240b14cf957fcdf64d0d06f5b6a8df4372c69129b43dc3520ecd310344 metalog.initd
-1efbc74e23abef06bd62b35bb1f4166b86b5b4618d81e8eb085b4c9b45d0c4319b6db19a24648f7010400eed05c2486e16f16176a0e5435d7f263492934019c6 metalog.confd"
diff --git a/testing/metalog/metalog.confd b/testing/metalog/metalog.confd
deleted file mode 100644
index 2f3630d03de..00000000000
--- a/testing/metalog/metalog.confd
+++ /dev/null
@@ -1,10 +0,0 @@
-# Configuration file
-CONFIGFILE="/etc/metalog.conf"
-
-# PID file
-PIDFILE="/run/metalog.pid"
-
-# Options to metalog
-# "-B" start server in background/daemon mode
-# "-s" tells metalog to run in sync mode
-METALOG_OPTS="-B -s"
diff --git a/testing/metalog/metalog.initd b/testing/metalog/metalog.initd
deleted file mode 100644
index bb947bdadf8..00000000000
--- a/testing/metalog/metalog.initd
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-pidfile="${PIDFILE:-/run/metalog.pid}"
-command="/usr/sbin/metalog"
-command_args="--pidfile=${pidfile} --daemonize ${METALOG_OPTS}"
-
-extra_started_commands="buffer unbuffer"
-
-depend() {
- need localmount
- use clock hostname
- after bootmisc
- provide logger
-}
-
-buffer() {
- ebegin "Enabling log buffering"
- start-stop-daemon --exec "${command}" --signal USR2 --pidfile "${pidfile}"
- eend ${?}
-}
-
-unbuffer() {
- ebegin "Disabling log buffering"
- start-stop-daemon --exec "${command}" --signal USR1 --pidfile "${pidfile}"
- eend ${?}
-}
diff --git a/testing/metricbeat/APKBUILD b/testing/metricbeat/APKBUILD
deleted file mode 100644
index 6fa894186d6..00000000000
--- a/testing/metricbeat/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Ramanathan Sivagurunathan <ramzthecoder@gmail.com>
-# Maintainer: Ramanathan Sivagurunathan <ramzthecoder@gmail.com>
-pkgname=metricbeat
-pkgver=6.2.3
-pkgrel=2
-pkgdesc="MetricBeat - Lightweight shipper for system and service statistics"
-pkgusers="root"
-url="https://www.elastic.co/products/beats"
-arch="all !aarch64 !armhf !armv7"
-license="ASL 2.0"
-depends=""
-makedepends="go"
-install=""
-subpackages=""
-source="beats-${pkgver}.tar.gz::https://github.com/elastic/beats/archive/v$pkgver.tar.gz
- metricbeat.initd
- metricbeat.confd
- metricbeat.yml
- "
-builddir="$srcdir/src/github.com/elastic/beats/$pkgname"
-
-prepare() {
- mkdir -p "$srcdir/src/github.com/elastic/"
- mv "$srcdir/beats-${pkgver}" "$srcdir/src/github.com/elastic/beats" || return 1
- default_prepare
-}
-
-build() {
- cd "$builddir"
- GOPATH="$srcdir" go build -v || return 1
-}
-
-package() {
- cd "$builddir"
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname || return 1
- install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname || return 1
- install -Dm644 "$srcdir/metricbeat.yml" "$pkgdir/etc/$pkgname/metricbeat.yml" || return 1
- install -Dm755 "$builddir/metricbeat" "$pkgdir/usr/bin/metricbeat" || return 1
-}
-
-sha512sums="b0628bc8df6460ac6b1610d7bb6cc2bb93898887f0617324d79727dbeca5cce6de28dc8b584663c66888fc23912ced1b3e231c046ecb343e09899df3026c997e beats-6.2.3.tar.gz
-a846db44732077c38fd0699592ad27371af75ee8a53419c79197c4e5d727e1745c5145ebefd21073304cb624c5947686626f693e87406b122892f99cebe38f5b metricbeat.initd
-91fad211c1ac8b3bb97848f1ff97f7e708cfd100b174ae1839c4dd60d501cd8b7b4e9f0f4dbb936134c4ef19595bf39c53b256990f08f003c3e88893e0c94212 metricbeat.confd
-b05e083c2ea2337cebd650f2898385ff40fb7f4fe2d7d46109cec3e960d80566129756e8a45e71ed53ec40c33539295453d363feafb60caec8747ae8d09f9124 metricbeat.yml"
diff --git a/testing/metricbeat/metricbeat.confd b/testing/metricbeat/metricbeat.confd
deleted file mode 100644
index 31ab5d85813..00000000000
--- a/testing/metricbeat/metricbeat.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# Metricbeat startup
-metricbeat_opts="-c /etc/metricbeat/metricbeat.yml -e"
diff --git a/testing/metricbeat/metricbeat.initd b/testing/metricbeat/metricbeat.initd
deleted file mode 100644
index 989afe6908a..00000000000
--- a/testing/metricbeat/metricbeat.initd
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/sbin/openrc-run
-
-METRICBEAT_LOG_FILE="/var/log/${SVCNAME}.log"
-
-name=metricbeat
-description="MetricBeat - Lightweight shipper for system and service statistics"
-description_checkconfig="Verify configuration file"
-daemon=/usr/bin/$name
-extra_commands="checkconfig"
-
-start_pre() {
- checkpath -f -m 0644 "$METRICBEAT_LOG_FILE"
-}
-
-depend() {
- need net
- after firewall
-}
-
-checkconfig() {
- metricbeat -configtest -c /etc/metricbeat/metricbeat.yml
-}
-
-start() {
- checkconfig || return 1
-
-ebegin "Starting ${name}"
- start-stop-daemon --start --quiet \
- -m --pidfile /var/run/${name}.pid \
- -b --stdout $METRICBEAT_LOG_FILE --stderr $METRICBEAT_LOG_FILE \
- --exec ${daemon} -- ${metricbeat_opts}
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${name}"
- start-stop-daemon --stop --quiet \
- --pidfile /var/run/${name}.pid \
- --exec ${daemon}
- eend $?
-}
-
diff --git a/testing/metricbeat/metricbeat.yml b/testing/metricbeat/metricbeat.yml
deleted file mode 100644
index 657ea61828d..00000000000
--- a/testing/metricbeat/metricbeat.yml
+++ /dev/null
@@ -1,105 +0,0 @@
-###################### Metricbeat Configuration Example #######################
-
-# This file is an example configuration file highlighting only the most common
-# options. The metricbeat.full.yml file from the same directory contains all the
-# supported options with more comments. You can use it as a reference.
-#
-# You can find the full configuration reference here:
-# https://www.elastic.co/guide/en/beats/metricbeat/index.html
-
-#========================== Modules configuration ============================
-metricbeat.modules:
-
-#------------------------------- System Module -------------------------------
-- module: system
- metricsets:
- # CPU stats
- - cpu
-
- # System Load stats
- - load
-
- # Per CPU core stats
- #- core
-
- # IO stats
- #- diskio
-
- # Per filesystem stats
- - filesystem
-
- # File system summary stats
- - fsstat
-
- # Memory stats
- - memory
-
- # Network stats
- - network
-
- # Per process stats
- - process
-
- # Sockets (linux only)
- #- socket
- enabled: true
- period: 10s
- processes: ['.*']
-
-
-
-#================================ General =====================================
-
-# The name of the shipper that publishes the network data. It can be used to group
-# all the transactions sent by a single shipper in the web interface.
-#name:
-
-# The tags of the shipper are included in their own field with each
-# transaction published.
-#tags: ["service-X", "web-tier"]
-
-# Optional fields that you can specify to add additional information to the
-# output.
-#fields:
-# env: staging
-
-#================================ Outputs =====================================
-
-# Configure what outputs to use when sending the data collected by the beat.
-# Multiple outputs may be used.
-
-#-------------------------- Elasticsearch output ------------------------------
-output.elasticsearch:
- # Array of hosts to connect to.
- hosts: ["localhost:9200"]
-
- # Optional protocol and basic auth credentials.
- #protocol: "https"
- #username: "elastic"
- #password: "changeme"
-
-#----------------------------- Logstash output --------------------------------
-#output.logstash:
- # The Logstash hosts
- #hosts: ["localhost:5044"]
-
- # Optional SSL. By default is off.
- # List of root certificates for HTTPS server verifications
- #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
-
- # Certificate for SSL client authentication
- #ssl.certificate: "/etc/pki/client/cert.pem"
-
- # Client Certificate Key
- #ssl.key: "/etc/pki/client/cert.key"
-
-#================================ Logging =====================================
-
-# Sets log level. The default log level is info.
-# Available log levels are: critical, error, warning, info, debug
-#logging.level: debug
-
-# At debug level, you can selectively enable logging only for some components.
-# To enable all selectors use ["*"]. Examples of other selectors are "beat",
-# "publish", "service".
-#logging.selectors: ["*"]
diff --git a/testing/mgba/APKBUILD b/testing/mgba/APKBUILD
deleted file mode 100644
index e8b377f4238..00000000000
--- a/testing/mgba/APKBUILD
+++ /dev/null
@@ -1,94 +0,0 @@
-# Contributor: Alexander Edland <alpine@ocv.me>
-# Maintainer: Alexander Edland <alpine@ocv.me>
-pkgname=mgba
-pkgver=0.6.3
-pkgrel=3
-pkgdesc="Game Boy Advance Emulator"
-url="https://github.com/mgba-emu/mgba"
-arch="all !s390x !mips !mips64" # broken on big-endian
-arch="$arch !armhf !armv7" # Missing qt5-qtmultimedia-dev
-license="MPL-2.0"
-makedepends="cmake qt5-qtmultimedia-dev qt5-qtbase-dev qt5-qttools-dev
- sdl-dev libzip-dev zlib-dev libpng-dev ffmpeg-dev imagemagick-dev
- libepoxy-dev cmocka-dev libedit-dev py3-virtualenv python3-dev"
-checkdepends="py3-cffi py3-cached-property"
-subpackages="$pkgname-doc $pkgname-qt:_qt"
-source="mgba-$pkgver.tar.gz::https://github.com/mgba-emu/mgba/archive/$pkgver.tar.gz
- http://gbdev.gg8.se/files/roms/blargg-gb-tests/cpu_instrs.zip
- test-py.sh
- no-rpath.patch
- python3.patch
- mgba-qt5.11.patch
- mgba-qt.desktop"
-
-build() {
- # declaration mismatch in include/mgba/core/thread.h
- export CPPFLAGS="$CPPFLAGS -fno-strict-aliasing"
-
- mkdir build
- cd build
- cmake \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib \
- -DBUILD_TEST:BOOL=ON \
- -DBUILD_SUITE:BOOL=ON \
- ..
- make
-}
-
-check() {
- cd "$builddir/build"
- ./mgba-suite
-
- # test python bindings by executing an open source ROM
- # for DMG-01 (OG gameboy) and exporting a png screenshot
-# PYTHONPATH="$PWD/$(echo python/lib.linux-*-3.*)" \
-# LD_LIBRARY_PATH="$builddir/build" \
-# ZIPFILE="$srcdir/cpu_instrs.zip" \
-# "$startdir/test-py.sh"
-}
-
-package() {
- cd "$builddir/build"
- make install DESTDIR="$pkgdir"
-
- # delete test files
- rm "$pkgdir/usr/bin/mgba-fuzz"
- rm "$pkgdir/usr/bin/tbl-fuzz"
-
- # delete config cruft
- rm "$pkgdir/usr/include/mgba/flags.h"
- rmdir -p "$pkgdir/usr/include/mgba" || :
-}
-
-_py() {
- pkgdesc="Python3 bindings for the mGBA emulator"
- depends="py3-cffi py3-cached-property"
-
- cd "$builddir/build/python"
- local bdir=$(echo lib.linux-*-3.*)
- local pyver=${bdir##*-}
- local dest="$subpkgdir/usr/lib/python$pyver/site-packages"
-
- mkdir -p "$dest"
- mv $bdir/mgba/ "$dest"
-}
-
-_qt() {
- pkgdesc="Qt5 frontend for the mGBA emulator"
-
- local bin="$subpkgdir/usr/bin"
- local apps="$subpkgdir/usr/share/applications"
-
- mkdir -p "$bin" "$apps"
- mv "$pkgdir/usr/bin/mgba-qt" "$bin"
- cp "$startdir/mgba-qt.desktop" "$apps"
-}
-
-sha512sums="d646af7869dbcf8df671a75ecfd8c270950c013b826b23b94bacae43a77243786f198725e1b9bf17827d1ffcf6a8eef70091d53ea878bfb2450472485f42f233 mgba-0.6.3.tar.gz
-ea4a1de976e2188c3720d7b8e6f75f67feaede37473826343f9b0a03fe76405e84305384ceee1bc56a4e8131cab432b63320d4c0b120a6c81425af8f0bfbd234 cpu_instrs.zip
-239d985e6379495569bcc5c9fe15ab913585029d9979cc6b2cdd23ff49cb1426f9b90c763b3314cac888c599951e54c2584ee69280158b615aa64ad188f1e1ad test-py.sh
-8fefd97e66b63bc660abab2a5d0f29b96b41022e12e53af9841c97dd8d74dddde9c1ac7b56a7f5d7346aa42671767ce3794ecccf66142262116e740a21f6ef03 no-rpath.patch
-7e2ac69620f0118d429afbb6ae905be1e81c80c5eb83118b74ab65f3db81f25823098475d32add624e4424fdac0f882f18c4b42673719eb278160805330148c8 python3.patch
-eb3095f1cdde968bbde3c83c84fee9f773d138806c15302492e0d37fd67c13783dbd9d63b306d969ca444152e1e3d342ba59e160bfc78dc123d1fd1f3f90c19b mgba-qt5.11.patch
-f77d1e3a35521f29e9caaebb6b010e497602a467963b95b155f67d39c129d8a1bd6acdbce1a10bf25e68ac38de0e4079deb92c710afccc8a2c4841820d3f9119 mgba-qt.desktop"
diff --git a/testing/mgba/mgba-qt.desktop b/testing/mgba/mgba-qt.desktop
deleted file mode 100644
index ae9dcd5f88f..00000000000
--- a/testing/mgba/mgba-qt.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=mGBA
-GenericName=Game Boy Advance Emulator
-Exec=mgba-qt %f
-Icon=mgba
-Terminal=false
-Type=Application
-Categories=Game;Emulator;Qt;
-MimeType=application/x-mgba-qt;
diff --git a/testing/mgba/mgba-qt5.11.patch b/testing/mgba/mgba-qt5.11.patch
deleted file mode 100644
index 338bb50c8fb..00000000000
--- a/testing/mgba/mgba-qt5.11.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7f41dd354176b720c8e3310553c6b772278b9dca Mon Sep 17 00:00:00 2001
-From: Vicki Pfau <vi@endrift.com>
-Date: Fri, 25 May 2018 18:04:16 -0700
-Subject: [PATCH] Qt: Fix build with Qt 5.11
-
----
- src/platform/qt/LoadSaveState.cpp | 1 +
- src/platform/qt/Window.h | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/src/platform/qt/LoadSaveState.cpp b/src/platform/qt/LoadSaveState.cpp
-index 538254ff6..d9db6a7d3 100644
---- a/src/platform/qt/LoadSaveState.cpp
-+++ b/src/platform/qt/LoadSaveState.cpp
-@@ -10,6 +10,7 @@
- #include "GamepadButtonEvent.h"
- #include "VFileDevice.h"
-
-+#include <QAction>
- #include <QDateTime>
- #include <QKeyEvent>
- #include <QPainter>
-diff --git a/src/platform/qt/Window.h b/src/platform/qt/Window.h
-index baca971ea..2d9d139cc 100644
---- a/src/platform/qt/Window.h
-+++ b/src/platform/qt/Window.h
-@@ -5,6 +5,7 @@
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #pragma once
-
-+#include <QAction>
- #include <QDateTime>
- #include <QList>
- #include <QMainWindow>
-
diff --git a/testing/mgba/no-rpath.patch b/testing/mgba/no-rpath.patch
deleted file mode 100644
index ad2d3d871bc..00000000000
--- a/testing/mgba/no-rpath.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- mgba-0.6.3/CMakeLists.txt
-+++ mgba-0.6.3-mod/CMakeLists.txt
-@@ -108,13 +108,10 @@
- if (BUILD_OPENEMU)
- set(OE_LIBDIR "${LIBDIR}" CACHE PATH "Installed library directory (OpenEmu)")
- mark_as_advanced(OE_LIBDIR)
- endif()
-
--
--set(CMAKE_INSTALL_RPATH "${LIBDIR}")
--
- if (NOT DEFINED MANDIR)
- set(MANDIR ${CMAKE_INSTALL_MANDIR})
- endif()
-
- # Function definitions
diff --git a/testing/mgba/python3.patch b/testing/mgba/python3.patch
deleted file mode 100644
index bd14c9a4b0c..00000000000
--- a/testing/mgba/python3.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- mgba-0.6.3/src/platform/python/CMakeLists.txt
-+++ mgba-0.6.3-mod/src/platform/python/CMakeLists.txt
-@@ -1,6 +1,6 @@
--find_program(PYTHON python)
-+find_program(PYTHON python3)
-
- get_property(INCLUDE_DIRECTORIES DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
- set(INCLUDE_FLAGS)
- foreach(DIR IN LISTS INCLUDE_DIRECTORIES)
- list(APPEND INCLUDE_FLAGS "-I${DIR}")
diff --git a/testing/mgba/test-py.sh b/testing/mgba/test-py.sh
deleted file mode 100755
index af47e0a7c92..00000000000
--- a/testing/mgba/test-py.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-set -e
-
-mkdir test-py
-cd test-py
-
-cat > test.py <<'EOF'
-import sys
-import mgba.core
-import mgba.image
-
-core = mgba.core.loadPath(sys.argv[1])
-screen = mgba.image.Image(*core.desiredVideoDimensions())
-core.setVideoBuffer(screen)
-core.reset()
-
-for i in range(2000):
- core.runFrame()
-
-with open("dump.png".format(i), "wb") as f:
- screen.savePNG(f)
-EOF
-
-echo "using LD_LIBRARY_PATH [$LD_LIBRARY_PATH]"
-echo "using PYTHONPATH [$PYTHONPATH]"
-echo "using ZIPFILE [$ZIPFILE]"
-
-unzip "$ZIPFILE"
-echo "running Z80 cpu test suite"
-python3 test.py "cpu_instrs/cpu_instrs.gb"
-ls -al dump.png
-[ $(wc -c < dump.png) -gt 768 ]
diff --git a/testing/mhddfs/APKBUILD b/testing/mhddfs/APKBUILD
deleted file mode 100644
index 148c9be42df..00000000000
--- a/testing/mhddfs/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Zsolt M <zsolt@meszarovics.me>
-# Maintainer:
-pkgname=mhddfs
-pkgver=0.1.39
-pkgrel=0
-pkgdesc="A fuse-based file system for unifying several mount points into one."
-url="http://mhddfs.uvw.ru"
-arch="" # fails to build
-license="GPL-3.0"
-depends="fuse"
-depends_dev="fuse-dev attr-dev"
-makedepends="$depends_dev"
-_uthashver=1.9.9
-source="http://mhddfs.uvw.ru/downloads/${pkgname}_${pkgver}.tar.gz
- uthash-v${_uthashver}.tar.gz::https://github.com/troydhanson/uthash/archive/v${_uthashver}.tar.gz
- local-uthash.patch"
-builddir="$srcdir"/${pkgname}-${pkgver}
-
-build() {
- cd "$builddir"
- srcdir=${srcdir} make
-}
-
-package() {
- cd "$builddir"
- install -Dsm755 mhddfs "$pkgdir"/usr/bin/${pkgname}
-}
-
-sha512sums="cf1952e665e82a92ccfef9215d4faf78cd235566b67e6ebc3a60ab53089d9391bc41a08e6b203ad052e4a08bdd14428f2d9abe48f341aeb0c80ae1da80f83f89 mhddfs_0.1.39.tar.gz
-40b888529db6baba7bdb0a11c3f782719c40470f6b8e4d75ed480c4c465606e990abf65786156a93f4e2f9c8805cbc098550cc3c62e33b7345fa5bf6d146a8c4 uthash-v1.9.9.tar.gz
-e288ab2efad8955e621460e46dc6ec7c14f6471498ec3df6900fad00bfbb91d3ba9cabed10f17257c6aa15f5be6558c75d4220e57b935beb1cef0893d7a9bbab local-uthash.patch"
diff --git a/testing/mhddfs/local-uthash.patch b/testing/mhddfs/local-uthash.patch
deleted file mode 100644
index d9322d4069f..00000000000
--- a/testing/mhddfs/local-uthash.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- mhddfs-0.1.39/Makefile.orig
-+++ mhddfs-0.1.39/Makefile
-@@ -9,7 +9,7 @@
- # 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.
-+ # GNU General Public License for more details.
-
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
-@@ -24,6 +24,9 @@
-
- CFLAGS = -Wall $(shell pkg-config fuse --cflags) \
- -DFUSE_USE_VERSION=26 -MMD
-+
-+CFLAGS += -I${srcdir}/uthash-1.9.9/src
-+
- ifdef WITHOUT_XATTR
- CFLAGS += -DWITHOUT_XATTR
- endif
diff --git a/testing/micro/APKBUILD b/testing/micro/APKBUILD
deleted file mode 100644
index b2a707582d4..00000000000
--- a/testing/micro/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=micro
-pkgver=2.0.4
-pkgrel=1
-# This will need to be updated along with version as it cannot currently be
-# obtained from the tarball, and is necessary if the user is to make error
-# reports upsteam.
-_commithash=c5b0c2d41f67048ba859cbf7d7aba6a3b547e1ef
-pkgdesc="A modern and intuitive terminal-based text editor"
-url="https://micro-editor.github.io/"
-options="!check chmod-clean"
-arch="all"
-license="MIT"
-makedepends="go"
-subpackages="$pkgname-doc"
-source="micro-$pkgver.tar.gz::https://github.com/zyedidia/micro/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/zyedidia/$pkgname"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
- default_prepare
-}
-
-build() {
- export GOPATH="$srcdir"
- go get -v -ldflags "
- -s -w
- -X github.com/zyedidia/micro/v2/internal/util.Version=$pkgver-$pkgrel
- -X github.com/zyedidia/micro/v2/internal/util.CommitHash=$_commithash
- -X github.com/zyedidia/micro/v2/internal/util.CompileDate=$SOURCE_DATE_EPOCH
- " \
- ./cmd/micro
-}
-
-package() {
- install -Dm755 "$srcdir"/bin/$pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm644 "$builddir"/assets/packaging/micro.1 -t "$pkgdir"/usr/share/man/man1
- install -Dm644 "$builddir"/assets/packaging/micro.desktop -t "$pkgdir"/usr/share/applications
- install -Dm644 "$builddir"/assets/micro-logo.svg "$pkgdir"/usr/share/pixmaps/micro.svg
- install -Dm644 "$builddir"/assets/micro-solarized.png "$pkgdir"/usr/share/pixmaps/micro.png
-}
-
-sha512sums="5317a46612022513a98f525261e40870264abfb78b1ecb3df5e55c2726f6637969f722a0df1643d6e3a9de04cd7fab23a44dd7415c1e9acc5dbf2552563d8d82 micro-2.0.4.tar.gz"
diff --git a/testing/micropython/APKBUILD b/testing/micropython/APKBUILD
index 37c5938afdd..0f2f493f6b0 100644
--- a/testing/micropython/APKBUILD
+++ b/testing/micropython/APKBUILD
@@ -1,26 +1,34 @@
# Contributor: Marian <marian.buschsieweke@ovgu.de>
# Maintainer: Marian <marian.buschsieweke@ovgu.de>
pkgname=micropython
-pkgver=1.12
-pkgrel=1
-pkgdesc="A lean and efficient Python implementation for MCUs and constrained systems"
+pkgver=1.22.1
+_mpy_lib_ver=1.22.0
+pkgrel=0
+pkgdesc="lean and efficient Python implementation for MCUs and constrained systems"
url="https://www.micropython.org/"
-# ppc64le: mpy-cross fails to compile with "unsupported relocation
-# armv7: 21 unit tests fail (not minor stuff line double precision issues)
-# armhf: fails to build
-arch="all !ppc64le !armv7 !armhf"
+# ppc64le: mpy-cross fails to compile with "unsupported relocation type 4 & 5"
+# armhf: fails to build due to "error compiling argparse.py"
+arch="all !ppc64le !armhf"
license="MIT"
makedepends="libffi-dev python3"
subpackages="$pkgname-cross"
-source="micropython-$pkgver.tar.gz::https://github.com/micropython/micropython/archive/v$pkgver.tar.gz
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/micropython/micropython/archive/refs/tags/v$pkgver.tar.gz
+ micropython-lib-$_mpy_lib_ver.tar.gz::https://github.com/micropython/micropython-lib/archive/refs/tags/v$_mpy_lib_ver.tar.gz
micropython-1.9.4-prevent-stripping.patch
- python3.patch
- no_ussl.patch
+ no_ssl.patch
no_legacy_berkeley_db.patch
+ no-werror.patch
"
+prepare() {
+ default_prepare
+ rmdir lib/micropython-lib
+ ln -s ../../micropython-lib-$_mpy_lib_ver lib/micropython-lib
+}
+
build() {
make -C mpy-cross PYTHON=python3
make -C ports/unix PYTHON=python3
@@ -37,26 +45,30 @@ check() {
;;
esac
- # ffi callback fails on kernel with PaX
- rm tests/unix/ffi_callback.py
+ # Needed for tests/extmod/select_poll_fd.py to
+ # pass (see comment in that file for more info)
+ ulimit -n 1024
make -C ports/unix test PYTHON=python3
}
package() {
- mkdir -p "$pkgdir/usr/bin"
- install -m755 ports/unix/micropython "$pkgdir/usr/bin/micropython"
+ install -Dm755 -t "$pkgdir"/usr/bin \
+ ports/unix/build-standard/micropython \
+ mpy-cross/build/mpy-cross
}
cross() {
pkgdesc="Compile micropython code to bytecode, which can be transfered to MCUs"
- cd "$builddir"
- mkdir -p "$subpkgdir/usr/bin"
- install -m755 mpy-cross/mpy-cross "$subpkgdir/usr/bin/mpy-cross"
+
+ amove usr/bin/mpy-cross
}
-sha512sums="624688bdf658f63de2257eed7b903a2a1bebaf02436feed09e0893090f49052d0e1b3d55ee8128f5ea813586f5c1e3d6cce6a8230be7fdb418509bb3b734b5ca micropython-1.12.tar.gz
-8f994394f42d7fed5fa35b62c01c37ebea3b487c029d659134a263ef8d65e1ec17bec755fdf57cde2f234969bc4f7f4ab30858562d7f8cdb2bc6cb819ba2ae0d micropython-1.9.4-prevent-stripping.patch
-8dbdc52e09f70b5eea461257ebc00031ab9d2c91a9bdbd7522e4ffd1eddddcd0dab3a171361e776543abca827a2f5d6ad01b06c10c8635db861bf79bfa065338 python3.patch
-9a6cd131c8875a9d320653b7b93d46a759eee3255e25763eb8de6934b3035f691e497eafc9412320f13c5921a384d42d6e60ea3eb3d65f3a6101dae9be514f3c no_ussl.patch
-e86ad02ef746605f2f685ae776a6ad6ea39ae6e57fa0869a0c03895fd581647de20fa7e6aaeebac45e7302a63451d625208b1356ee2f35a66df70ac2755a25ff no_legacy_berkeley_db.patch"
+sha512sums="
+df4220a360f38b865e128fe23d8082eec1ed30cd80d5c94ea957de59e5ba67b766852b26a068c4abb672448012336fbab988f810a95cb4f4dc49055158f30a2f micropython-1.22.1.tar.gz
+fb46625b038c649c98fe0929a8f8fb6c01495614942942a7c92b90679f07c39ad7142c966a7643538d529c356b00f483308a33ac00d441fb662dd3a3dd3c418d micropython-lib-1.22.0.tar.gz
+47f4923b1901bf0c8c90a15fe7188ae5c07d4c451d129c271d52d9449ac6094bf7183d5c4dc9cb38d5d5b4bf6944a715b7a3377575e9bc92bee16801d8088436 micropython-1.9.4-prevent-stripping.patch
+6e13449a4d273538d9d752de88a292ff15ef035ca55abc8c5ee4b396d3088c292f059e59a9b17594d02393a0deb28f309d6fde057ba9c2bd91e58b99f55d7c97 no_ssl.patch
+e86ad02ef746605f2f685ae776a6ad6ea39ae6e57fa0869a0c03895fd581647de20fa7e6aaeebac45e7302a63451d625208b1356ee2f35a66df70ac2755a25ff no_legacy_berkeley_db.patch
+99a021dc8fe8f7cd26455e9e7610e36bfb3c01182b42855a6cc3453dea29ea25fe622c3d722a71f973a1382446f6434260cc2a986d92895e187e784c57069b31 no-werror.patch
+"
diff --git a/testing/micropython/micropython-1.9.4-prevent-stripping.patch b/testing/micropython/micropython-1.9.4-prevent-stripping.patch
index a130b72b613..b9da21e885f 100644
--- a/testing/micropython/micropython-1.9.4-prevent-stripping.patch
+++ b/testing/micropython/micropython-1.9.4-prevent-stripping.patch
@@ -1,22 +1,24 @@
---- a/py/mkenv.mk 2017-11-25 09:52:30.921836372 +0000
-+++ a/py/mkenv.mk 2017-11-25 09:52:35.257861233 +0000
-@@ -50,7 +50,6 @@
+--- a/py/mkenv.mk
++++ a/py/mkenv.mk
+@@ -52,7 +52,6 @@
LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
SIZE = $(CROSS_COMPILE)size
-STRIP = $(CROSS_COMPILE)strip
AR = $(CROSS_COMPILE)ar
- ifeq ($(MICROPY_FORCE_32BIT),1)
- CC += -m32
---- a/py/mkrules.mk 2017-11-25 09:53:13.107078063 +0000
-+++ a/py/mkrules.mk 2017-11-25 09:53:31.898185592 +0000
-@@ -129,9 +129,6 @@
+
+ MAKE_MANIFEST = $(PYTHON) $(TOP)/tools/makemanifest.py
+--- a/py/mkrules.mk
++++ a/py/mkrules.mk
+@@ -211,11 +211,6 @@
# Do not pass COPT here - it's *C* compiler optimizations. For example,
# we may want to compile using Thumb, but link with non-Thumb libc.
$(Q)$(CC) -o $@ $^ $(LIB) $(LDFLAGS)
-ifndef DEBUG
-- $(Q)$(STRIP) $(STRIPFLAGS_EXTRA) $(PROG)
+-ifdef STRIP
+- $(Q)$(STRIP) $(STRIPFLAGS_EXTRA) $@
+-endif
-endif
- $(Q)$(SIZE) $$(find $(BUILD) -path "$(BUILD)/build/frozen*.o") $(PROG)
+ $(Q)$(SIZE) $$(find $(BUILD) -path "$(BUILD)/build/frozen*.o") $@
clean: clean-prog
diff --git a/testing/micropython/no-werror.patch b/testing/micropython/no-werror.patch
new file mode 100644
index 00000000000..4f292119cc6
--- /dev/null
+++ b/testing/micropython/no-werror.patch
@@ -0,0 +1,11 @@
+--- a/ports/unix/Makefile
++++ b/ports/unix/Makefile
+@@ -44,7 +44,7 @@
+ INC += -I$(BUILD)
+
+ # compiler settings
+-CWARN = -Wall -Werror
++CWARN = -Wall
+ CWARN += -Wextra -Wno-unused-parameter -Wpointer-arith -Wdouble-promotion -Wfloat-conversion
+ CFLAGS += $(INC) $(CWARN) -std=gnu99 -DUNIX $(COPT) -I$(VARIANT_DIR) $(CFLAGS_EXTRA)
+
diff --git a/testing/micropython/no_ssl.patch b/testing/micropython/no_ssl.patch
new file mode 100644
index 00000000000..231e60ff3d7
--- /dev/null
+++ b/testing/micropython/no_ssl.patch
@@ -0,0 +1,18 @@
+--- micropython-1.12-orig/ports/unix/mpconfigport.mk
++++ micropython-1.12/ports/unix/mpconfigport.mk
+@@ -24,13 +24,13 @@
+ MICROPY_PY_FFI = 1
+
+ # ssl module requires one of the TLS libraries below
+-MICROPY_PY_SSL = 1
++MICROPY_PY_SSL = 0
+ # axTLS has minimal size but implements only a subset of modern TLS
+ # functionality, so may have problems with some servers.
+ MICROPY_SSL_AXTLS = 0
+ # mbedTLS is more up to date and complete implementation, but also
+ # more bloated.
+-MICROPY_SSL_MBEDTLS = 1
++MICROPY_SSL_MBEDTLS = 0
+
+ # jni module requires JVM/JNI
+ MICROPY_PY_JNI = 0
diff --git a/testing/micropython/no_ussl.patch b/testing/micropython/no_ussl.patch
deleted file mode 100644
index d39ca849b70..00000000000
--- a/testing/micropython/no_ussl.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- micropython-1.12-orig/ports/unix/mpconfigport.mk
-+++ micropython-1.12/ports/unix/mpconfigport.mk
-@@ -24,10 +24,10 @@
- MICROPY_PY_FFI = 1
-
- # ussl module requires one of the TLS libraries below
--MICROPY_PY_USSL = 1
-+MICROPY_PY_USSL = 0
- # axTLS has minimal size but implements only a subset of modern TLS
- # functionality, so may have problems with some servers.
--MICROPY_SSL_AXTLS = 1
-+MICROPY_SSL_AXTLS = 0
- # mbedTLS is more up to date and complete implementation, but also
- # more bloated.
- MICROPY_SSL_MBEDTLS = 0
diff --git a/testing/micropython/python3.patch b/testing/micropython/python3.patch
deleted file mode 100644
index 13641ea00bb..00000000000
--- a/testing/micropython/python3.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/lib/memzip/make-memzip.py b/lib/memzip/make-memzip.py
-index 9730f5e..3a1f7a5 100755
---- a/lib/memzip/make-memzip.py
-+++ b/lib/memzip/make-memzip.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Takes a directory of files and zips them up (as uncompressed files).
- # This then gets converted into a C data structure which can be read
-diff --git a/ports/teensy/make-pins.py b/ports/teensy/make-pins.py
-index 0f6c5f2..5d21d8f 100755
---- a/ports/teensy/make-pins.py
-+++ b/ports/teensy/make-pins.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- """Creates the pin file for the Teensy."""
-
- from __future__ import print_function
-diff --git a/tools/make-frozen.py b/tools/make-frozen.py
-index 1051b52..06ee7a3 100755
---- a/tools/make-frozen.py
-+++ b/tools/make-frozen.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Create frozen modules structure for MicroPython.
- #
-diff --git a/tools/pyboard.py b/tools/pyboard.py
-index 16ee41f..17b7f98 100755
---- a/tools/pyboard.py
-+++ b/tools/pyboard.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # This file is part of the MicroPython project, http://micropython.org/
- #
-diff --git a/tools/pydfu.py b/tools/pydfu.py
-index 8c0220d..55ea952 100755
---- a/tools/pydfu.py
-+++ b/tools/pydfu.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- # This file is part of the OpenMV project.
- # Copyright (c) 2013/2014 Ibrahim Abdelkader <i.abdalkader@gmail.com>
- # This work is licensed under the MIT license, see the file LICENSE for
diff --git a/testing/milkytracker/APKBUILD b/testing/milkytracker/APKBUILD
new file mode 100644
index 00000000000..cabeba2ebf8
--- /dev/null
+++ b/testing/milkytracker/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=milkytracker
+pkgver=1.04.00
+pkgrel=2
+pkgdesc="music tracker inspired by fast tracker 2"
+url="https://milkytracker.titandemo.org/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ alsa-lib-dev
+ cmake
+ rtmidi-dev
+ samurai
+ sdl2-dev
+ zziplib-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver-1.tar.gz::https://github.com/milkytracker/MilkyTracker/archive/refs/tags/v$pkgver.tar.gz
+ fix-crash.patch
+ "
+builddir="$srcdir/MilkyTracker-$pkgver"
+options="!check" # no testsuite
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+247ff5daacb45b9445262917ab6c5e3b2309756d4e2a8317f4fd1fddefb49e97359122362ca0d8c5e3676661a45e2c559dd5a1e2cd7193d916a645f626ff32e7 milkytracker-1.04.00-1.tar.gz
+9142846f031067c6327ae06cb77ac9a2be5d3e743b9ffc5f8f7e5ff12b48bd0d483c552401f476ef79edfb640cc2bd32353587fd9710e556eb3f1af0aae8024a fix-crash.patch
+"
diff --git a/testing/milkytracker/fix-crash.patch b/testing/milkytracker/fix-crash.patch
new file mode 100644
index 00000000000..727a5903e56
--- /dev/null
+++ b/testing/milkytracker/fix-crash.patch
@@ -0,0 +1,16 @@
+https://github.com/milkytracker/MilkyTracker/pull/319
+--
+diff --git a/src/milkyplay/PlayerBase.h b/src/milkyplay/PlayerBase.h
+index 18bcc74..6dc123c 100644
+--- a/src/milkyplay/PlayerBase.h
++++ b/src/milkyplay/PlayerBase.h
+@@ -117,3 +117,3 @@ private:
+ (speed << BITPOS_SPEED)),
+- mainVolumeTicker((mainVol << BITPOS_MAINVOL) +
++ mainVolumeTicker(mainVol +
+ (ticker << BITPOS_TICKER))
+@@ -174,3 +174,3 @@ protected:
+ mp_sint32 bpm; // BPM speed
+- mp_sint32 ticker; // runs from 0 to tickspeed-1
++ mp_sint32 ticker = 0; // runs from 0 to tickspeed-1
+
diff --git a/testing/mimalloc1/APKBUILD b/testing/mimalloc1/APKBUILD
new file mode 100644
index 00000000000..81bb217ea4f
--- /dev/null
+++ b/testing/mimalloc1/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=mimalloc1
+_projname=mimalloc
+pkgver=1.8.2
+pkgrel=0
+_pkgdesc="A compact general purpose allocator with excellent performance"
+pkgdesc="$_pkgdesc (in secure mode)"
+url="https://github.com/microsoft/mimalloc"
+# ppc64le: tests segfault in secure mode
+arch="all !ppc64le"
+license="MIT"
+makedepends="cmake samurai"
+provides="mimalloc=$pkgver-r$pkgrel"
+subpackages="
+ $pkgname-dev
+ $pkgname-insecure
+ $pkgname-debug
+ "
+source="https://github.com/microsoft/mimalloc/archive/v$pkgver/$_projname-$pkgver.tar.gz
+ cmake-add-insecure-suffix.patch
+ "
+builddir="$srcdir/$_projname-$pkgver"
+
+_buildtypes='debug insecure secure'
+
+build() {
+ # https://github.com/microsoft/mimalloc/issues/597
+ export CFLAGS="$CFLAGS -D__USE_ISOC11"
+ _build out/debug -DCMAKE_BUILD_TYPE=Debug -DMI_DEBUG_FULL=ON
+
+ # This is called "release" build by upstream.
+ _build out/insecure -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=OFF
+
+ _build out/secure -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON
+}
+
+_build() {
+ local outdir="$1"; shift
+
+ local crossopts=
+ [ "$CBUILD" = "$CHOST" ] \
+ || crossopts='-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux'
+
+ CFLAGS=${CFLAGS/-Os/} cmake -B "$outdir" -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DMI_INSTALL_TOPLEVEL=ON \
+ $crossopts \
+ "$@" .
+ cmake --build "$outdir"
+}
+
+check() {
+ local btype; for btype in $_buildtypes; do
+ msg "Testing $btype build"
+
+ cd "$builddir"/out/$btype
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest --timeout 300
+ done
+}
+
+package() {
+ local btype; for btype in $_buildtypes; do
+ DESTDIR="$pkgdir" cmake --install out/$btype
+ done
+
+ cd "$pkgdir"
+ ln -s libmimalloc-secure.so usr/lib/libmimalloc.so
+ ln -s libmimalloc-secure.so.${pkgver%%.*} usr/lib/libmimalloc.so.${pkgver%%.*}
+ ln -s libmimalloc-secure.so.${pkgver%.*} usr/lib/libmimalloc.so.${pkgver%.*}
+ ln -s libmimalloc-secure.a usr/lib/libmimalloc.a
+
+ sed 's/-secure/-insecure/g' usr/lib/cmake/mimalloc/mimalloc-release.cmake \
+ > usr/lib/cmake/mimalloc/mimalloc-insecure.cmake
+ mv usr/lib/cmake/mimalloc/mimalloc-release.cmake usr/lib/cmake/mimalloc/mimalloc-secure.cmake
+ ln -s mimalloc-secure.cmake usr/lib/cmake/mimalloc/mimalloc-release.cmake
+
+ rm -f usr/lib/*.o
+}
+
+dev() {
+ provides="mimalloc-dev=$pkgver-r$pkgrel"
+
+ default_dev
+}
+
+insecure() {
+ pkgdesc="$_pkgdesc (in insecure mode)"
+ provides="mimalloc-insecure=$pkgver-r$pkgrel"
+
+ amove usr/lib/libmimalloc-insecure.*
+}
+
+debug() {
+ pkgdesc="$_pkgdesc (debug build)"
+ provides="mimalloc-debug=$pkgver-r$pkgrel"
+ options="!strip"
+
+ amove usr/lib/libmimalloc-debug.*
+}
+
+sha512sums="
+8648043fc94c2a998bb84464bbfb52cc85e9dcaff604433b9b0940104f314753fdedf1413c9ffb6719d6affaac6ad0d7a1289532387464bce2291a00152443a0 mimalloc-1.8.2.tar.gz
+9cfaa68a6dcf377a52a60e37a1e83f81fc9ba94afb55f10bb089e24561e791c318e7e0860c17944ef2aaa11546a32fa4a3510afe3aefefcc0a393dc2f334ef3d cmake-add-insecure-suffix.patch
+"
diff --git a/testing/mimalloc1/cmake-add-insecure-suffix.patch b/testing/mimalloc1/cmake-add-insecure-suffix.patch
new file mode 100644
index 00000000000..a0e4abb7a2b
--- /dev/null
+++ b/testing/mimalloc1/cmake-add-insecure-suffix.patch
@@ -0,0 +1,42 @@
+Updated: 20 Feb 2021 by Nicolas Lorin <androw95220@gmail.com>
+
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Thu, 19 Aug 2021 23:08:13 +0200
+Subject: Add suffix "-insecure" to library with MI_SECURE=OFF
+
+We want to make the secure variant the default one.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0011b87..bda3d5e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -67,11 +67,6 @@ if (NOT CMAKE_BUILD_TYPE)
+ endif()
+ endif()
+
+-if("${CMAKE_BINARY_DIR}" MATCHES ".*(S|s)ecure$")
+- message(STATUS "Default to secure build")
+- set(MI_SECURE "ON")
+-endif()
+-
+
+ # -----------------------------------------------------------------------------
+ # Process options
+@@ -313,6 +308,8 @@ endif()
+ set(mi_basename "mimalloc")
+ if(MI_SECURE)
+ set(mi_basename "${mi_basename}-secure")
++else()
++ set(mi_basename "${mi_basename}-insecure")
+ endif()
+ if(MI_VALGRIND)
+ set(mi_basename "${mi_basename}-valgrind")
+@@ -322,7 +319,7 @@ if(MI_ASAN)
+ endif()
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LC)
+ if(NOT(CMAKE_BUILD_TYPE_LC MATCHES "^(release|relwithdebinfo|minsizerel|none)$"))
+- set(mi_basename "${mi_basename}-${CMAKE_BUILD_TYPE_LC}") #append build type (e.g. -debug) if not a release version
++ set(mi_basename "mimalloc-${CMAKE_BUILD_TYPE_LC}") #append build type (e.g. -debug) if not a release version
+ endif()
+
+ if(MI_BUILD_SHARED)
diff --git a/testing/mimedefang/APKBUILD b/testing/mimedefang/APKBUILD
new file mode 100644
index 00000000000..902075f7a31
--- /dev/null
+++ b/testing/mimedefang/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=mimedefang
+pkgver=3.4.1
+pkgrel=0
+pkgdesc="e-mail filtering tool that works with the Sendmail Milter library"
+url="https://mimedefang.org"
+arch="all"
+license="GPL-2.0-only"
+pkgusers="defang"
+pkggroups="defang"
+depends="
+ perl-digest-sha1
+ perl-html-parser
+ perl-io-socket-ssl
+ perl-mail-dkim
+ perl-mail-spf
+ perl-mime-base64
+ perl-mime-tools
+ perl-net-dns
+ perl-unix-syslog
+ tzdata
+ "
+# if compiled with support from clamd it must be run as user defang
+makedepends="clamav-clamdscan clamav-scanner libmilter-dev"
+case "$CARCH" in
+ x86) :
+ ;;
+ *) makedepends="$makedepends rspamd-client"
+ ;;
+esac
+checkdepends="perl-archive-zip perl-test-class perl-test-harness-utils perl-test-most"
+subpackages="$pkgname-doc"
+install="$pkgname.pre-install"
+source="https://github.com/The-McGrail-Foundation/MIMEDefang/releases/download/v$pkgver/mimedefang-$pkgver.tar.gz
+ date-test.patch
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-user=defang
+ make
+}
+
+check() {
+ make test SMTP_TEST=no
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -dm 750 -o defang -g defang "$pkgdir"/var/log/$pkgname
+}
+
+sha512sums="
+2734834774c44d53a4e5632d113385e13e4e2ae8e94d5a766dca4f5a08b974373dbd6ee8a815a5b12d967b485154344ddbc9b70eb5ffe4988f061523e60ac0ab mimedefang-3.4.1.tar.gz
+3921058b9526dfbb2480d989e45ec9e1fc584470afb024f328e682b0fccdd8121945f9b61794c3abb599b22b0a0797dfaeb3071930e8f339cf0508baf1513ecd date-test.patch
+"
diff --git a/testing/mimedefang/date-test.patch b/testing/mimedefang/date-test.patch
new file mode 100644
index 00000000000..72bd4a13ea6
--- /dev/null
+++ b/testing/mimedefang/date-test.patch
@@ -0,0 +1,11 @@
+--- a/t/dates.t
++++ b/t/dates.t
+@@ -37,7 +37,7 @@
+ {
+ no warnings 'once';
+ local $::main::QueueID = 'wookie';
+- like(::main::gen_msgid_header(), qr/Message-ID: <\d{12}\.wookie\@[-a-zA-Z0-9\.]+>\n/, 'Got Message-ID header in correct format');
++ like(::main::gen_msgid_header(), qr/Message-ID: <\d{12}\.wookie\@[-_a-zA-Z0-9\.]+>\n/, 'Got Message-ID header in correct format');
+ }
+
+ sub t_time_str: Test(1)
diff --git a/testing/mimedefang/mimedefang.pre-install b/testing/mimedefang/mimedefang.pre-install
new file mode 100644
index 00000000000..517db26e01b
--- /dev/null
+++ b/testing/mimedefang/mimedefang.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S defang 2>/dev/null
+adduser -S -D -H -h /var/spool/MIMEDefang -s /sbin/nologin -G defang -g defang defang 2>/dev/null
+
+exit 0
diff --git a/testing/mimeo/APKBUILD b/testing/mimeo/APKBUILD
new file mode 100644
index 00000000000..99523d0f4c0
--- /dev/null
+++ b/testing/mimeo/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=mimeo
+pkgver=2023
+pkgrel=1
+pkgdesc="Open files by MIME-type or file name using regular expressions"
+url="https://xyne.dev/projects/mimeo/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 py3-xdg file shared-mime-info"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://xyne.dev/projects/mimeo/src/mimeo-$pkgver.tar.xz"
+options="!check" # no upstream checks
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+700c0cc79ee4a37aceeaddf1370112b65ea7506f6740c3be7339d53787d419046f3086304bd4f97a13c11e81d0bc0973cd3542ef70ab888f4f6c01808bb00d30 mimeo-2023.tar.xz
+"
diff --git a/testing/mimic1/APKBUILD b/testing/mimic1/APKBUILD
deleted file mode 100644
index f1e0ea37909..00000000000
--- a/testing/mimic1/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mimic1
-pkgver=1.3.0.1
-pkgrel=0
-pkgdesc="Mycroft's TTS engine, based on CMU's Flite (Festival Lite)"
-url="https://mimic.mycroft.ai/"
-# mips, mips64 and s390x are unsupported architectures
-arch="all !mips !mips64 !s390x"
-license="MIT AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND Apache-2.0 AND CDLA-Permissive-1.0"
-makedepends="automake autoconf libtool pcre2-dev pulseaudio-dev alsa-lib-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/mycroftai/mimic1/archive/$pkgver/mimic1-$pkgver.tar.gz
- fix-musl-incompabilities.patch
- "
-
-prepare() {
- default_prepare
-
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-shared
- make
-}
-
-check() {
- make check
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="df6b56ea8e02ffd2c02090ff99e722638c962c278cb5354fcc75d010bb4a4e1f830855c8637e44d9f72007810b34df24eeaba39e7767b3502e49ce04263569f4 mimic1-1.3.0.1.tar.gz
-dccf3734a16a6ac334a9fed3feca83adabd04c7c8724a9c81b36c765d02cc34aefe16d622f658f5ac2efeed2e1174531ec47ecd92403a1f53f54be1d62f0f7b6 fix-musl-incompabilities.patch"
diff --git a/testing/mimic1/fix-musl-incompabilities.patch b/testing/mimic1/fix-musl-incompabilities.patch
deleted file mode 100644
index 1aee6310369..00000000000
--- a/testing/mimic1/fix-musl-incompabilities.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mimic1/pull/199
-
-diff --git a/src/hts/hts_engine_API/lib/HTS_misc.c b/src/hts/hts_engine_API/lib/HTS_misc.c
-index 72306cb..afcaaec 100644
---- a/src/hts/hts_engine_API/lib/HTS_misc.c
-+++ b/src/hts/hts_engine_API/lib/HTS_misc.c
-@@ -247,8 +247,10 @@ size_t HTS_ftell(HTS_File * fp)
- fgetpos((FILE *) fp->pointer, &pos);
- #if defined(_WIN32) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__ANDROID__)
- return (size_t) pos;
--#else
-+#elif defined(__GLIBC__)
- return (size_t) pos.__pos;
-+#else
-+ return (size_t) ftell(fp->pointer);
- #endif /* _WIN32 || __CYGWIN__ || __APPLE__ || __ANDROID__ */
- } else if (fp->type == HTS_DATA) {
- HTS_Data *d = (HTS_Data *) fp->pointer;
-diff --git a/src/utils/cst_tokenstream.c b/src/utils/cst_tokenstream.c
-index 7c6ecdb..c3b27e5 100644
---- a/src/utils/cst_tokenstream.c
-+++ b/src/utils/cst_tokenstream.c
-@@ -705,7 +705,7 @@ static void get_token_sub_part_2(cst_tokenstream *ts,
-
- static void get_token_postpunctuation(cst_tokenstream *ts)
- {
-- int p, t, plast;
-+ int p, t, plast = 0;
- const cst_string *one_cp;
-
- t = cst_strlen(ts->token);
diff --git a/testing/mimir/APKBUILD b/testing/mimir/APKBUILD
new file mode 100644
index 00000000000..cda60b643ed
--- /dev/null
+++ b/testing/mimir/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=mimir
+pkgver=2.11.0
+pkgrel=2
+pkgdesc="Horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus"
+options="net"
+url="https://github.com/grafana/mimir"
+license="AGPL-3.0-or-later"
+# others: needs 64 bits
+arch="x86_64 aarch64 ppc64le riscv64"
+makedepends="go bash"
+checkdepends="tzdata"
+subpackages="$pkgname-openrc"
+install="mimir.pre-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/mimir/archive/refs/tags/mimir-$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.yaml
+ "
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ mkdir build
+}
+
+build() {
+ go build -v \
+ -o build \
+ ./cmd/...
+}
+
+check() {
+ # not stable test for fluent-bit
+ # tsdb/index fails on aarch64
+ # shell check suggests to break it
+ # shellcheck disable=SC2046
+ # TestHelp fails because we build on a different path
+ TZ=UTC GOGC=10 go test -p=2 -skip 'fluent-bit|stores/tsdb/index|TestAlertmanager_StateReplication|TestHelp|TestConfigDescriptorIsUpToDate|TestIngester_compactBlocksToReduceInMemorySeries_Concurrency' ./...
+}
+
+package() {
+ mkdir -p "$pkgdir"/etc/$pkgname
+ install -Dm0755 build/* -t "$pkgdir"/usr/bin
+ install -Dm644 "$srcdir"/$pkgname.yaml "$pkgdir"/etc/mimir/mimir.yaml
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+4bea41a1a915904a56a68d5dcb9a24ce9af2ba812f850f5c7b0de1e92a674f9cc2de9f1bd28c84dfbd98989422006b05dbec77f362a409c5411f28a30025c9ec mimir-2.11.0.tar.gz
+7e0121d8d464d202ed8689d9831c2a86740ae4cf0da12f7e723bd90895ff7b3f33a1355dfe6a443e7e5d2a87b159a26b3eef937463a576205bd78dbdb8c01460 mimir.initd
+246f0c875828b819bd8f11d49afecd63480626f4d96d95a1431c2d755e356ebe6109b7e0d34262f668c783609f7781cace26a73bfbe660b6626854f0d34fba72 mimir.confd
+f4e1ef6f40faaeaa2a46112c023596c94b4d910274b257f5cb19198cfc6c068c3b6fe762b949354547948449a952a5ed1fb93b3cb090e69459cd5b780b4b3d44 mimir.yaml
+"
diff --git a/testing/mimir/mimir.confd b/testing/mimir/mimir.confd
new file mode 100644
index 00000000000..a9d2f31365b
--- /dev/null
+++ b/testing/mimir/mimir.confd
@@ -0,0 +1,5 @@
+# The mimir config file
+MIMIR_CONF="/etc/mimir/mimir.yaml"
+
+# Add any extra options to pass to mimir to this setting.
+#MIMIR_OPTS=""
diff --git a/testing/mimir/mimir.initd b/testing/mimir/mimir.initd
new file mode 100644
index 00000000000..8a753681baf
--- /dev/null
+++ b/testing/mimir/mimir.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+configfile="${MIMIR_CONF:-/etc/mimir/mimir.yaml}"
+
+command=/usr/bin/mimir
+command_args="-config.file=${configfile}
+ ${MIMIR_OPTS}"
+command_background=yes
+command_user=mimir:grafana
+make_pidfile=yes
+pidfile=/var/run/mimir.pid
diff --git a/testing/mimir/mimir.pre-install b/testing/mimir/mimir.pre-install
new file mode 100755
index 00000000000..4a84c04e8e3
--- /dev/null
+++ b/testing/mimir/mimir.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S grafana 2>/dev/null
+adduser -S -D -h /var/lib/mimir -s /bin/false -G grafana -g grafana mimir 2>/dev/null
+
+exit 0
diff --git a/testing/mimir/mimir.yaml b/testing/mimir/mimir.yaml
new file mode 100644
index 00000000000..5c58c51259d
--- /dev/null
+++ b/testing/mimir/mimir.yaml
@@ -0,0 +1,50 @@
+# Do not use this configuration in production.
+# It is for demonstration purposes only.
+multitenancy_enabled: false
+
+activity_tracker:
+ filepath: /var/lib/mimir/metrics-activity.log
+
+blocks_storage:
+ backend: filesystem
+ bucket_store:
+ sync_dir: /var/lib/mimir/tsdb-sync
+ filesystem:
+ dir: /var/lib/mimir/data/tsdb
+ tsdb:
+ dir: /var/lib/mimir/tsdb
+
+compactor:
+ data_dir: /var/lib/mimir/compactor
+ sharding_ring:
+ kvstore:
+ store: memberlist
+
+distributor:
+ ring:
+ instance_addr: 127.0.0.1
+ kvstore:
+ store: memberlist
+
+ingester:
+ ring:
+ instance_addr: 127.0.0.1
+ kvstore:
+ store: memberlist
+ replication_factor: 1
+
+ruler:
+ rule_path: /var/lib/mimir/data-ruler/
+
+ruler_storage:
+ backend: filesystem
+ filesystem:
+ dir: /var/lib/mimir/rules
+
+server:
+ http_listen_port: 9009
+ log_level: error
+
+store_gateway:
+ sharding_ring:
+ replication_factor: 1
diff --git a/testing/mingw-w64-libusb/APKBUILD b/testing/mingw-w64-libusb/APKBUILD
new file mode 100644
index 00000000000..04a26213149
--- /dev/null
+++ b/testing/mingw-w64-libusb/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Clayton Craft <clayton@craftyguy.net>
+# Maintainer: Clayton Craft <clayton@craftyguy.net>
+pkgname=mingw-w64-libusb
+pkgver=1.0.27
+pkgrel=0
+pkgdesc="MinGW-w64 library that provides generic access to USB device for Windows"
+options="!check"
+url="https://libusb.info/"
+arch="x86_64 x86"
+license="LGPL-2.1-only"
+makedepends="
+ mingw-w64-gcc
+ mingw-w64-binutils
+ "
+source="https://github.com/libusb/libusb/releases/download/v$pkgver/libusb-$pkgver.tar.bz2"
+builddir="$srcdir/libusb-$pkgver"
+
+case "$CARCH" in
+ x86_64)
+ _target="x86_64-w64-mingw32"
+ _configure_args="--disable-lib32 --enable-lib64"
+ ;;
+ x86)
+ _target="i686-w64-mingw32"
+ _configure_args="--disable-lib64 --enable-lib32"
+ ;;
+esac
+
+build() {
+ export LDFLAGS="${LDFLAGS/-Wl,-z,pack-relative-relocs/}"
+ ./configure \
+ --prefix=/usr/$_target \
+ --host=$_target \
+ --target=$_target \
+ $_configure_args \
+ CC=$_target-gcc
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+42abbbcf2564f86cc2f05826aeefa6beb03c9f89dc9fe05bdfa351caa3dbd07713ce193daadecf29557604dd3cbc770c8031a78e1ad0a8df3627c3f551d28ff0 libusb-1.0.27.tar.bz2
+"
diff --git a/testing/minidyndns/APKBUILD b/testing/minidyndns/APKBUILD
index 0600e6f0e7c..35799283a14 100644
--- a/testing/minidyndns/APKBUILD
+++ b/testing/minidyndns/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Martin Rusko <martin.rusko@gmail.com>
pkgname=minidyndns
pkgver=1.3.0
-pkgrel=2
+pkgrel=3
pkgdesc="A simple no fuss DNS server with built-in HTTP/HTTPS interface to update IPs"
url="https://github.com/arkanis/minidyndns"
arch="noarch"
license="MIT"
-depends="ruby ruby-etc"
+depends="ruby"
options="!check" # there is no testing suite at the moment
subpackages="$pkgname-doc $pkgname-openrc"
source="minidyndns-$pkgver.tar.gz::https://github.com/arkanis/minidyndns/archive/v$pkgver.tar.gz
diff --git a/testing/minikube/APKBUILD b/testing/minikube/APKBUILD
index f5549fe3a93..18176e4938f 100644
--- a/testing/minikube/APKBUILD
+++ b/testing/minikube/APKBUILD
@@ -1,35 +1,60 @@
-# Contributor:
+# Contributor: Michał Polański <michal@polanski.me>
# Maintainer: Magicloud <magiclouds@gmail.com>
pkgname=minikube
-pkgver=0.35.0
+pkgver=1.32.0
pkgrel=2
-pkgdesc="Minikube is a tool that makes it easy to run Kubernetes locally"
+pkgdesc="Tool that makes it easy to run Kubernetes locally"
url="https://github.com/kubernetes/minikube"
-arch="all !mips !mips64" # fails to build on mips
-license="Apache"
-makedepends="make go git bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kubernetes/minikube/archive/v$pkgver.tar.gz"
-
-prepare () {
- rm -rf "$srcdir/src"
- mkdir -p "$srcdir/src/k8s.io"
- mv "$srcdir/minikube-$pkgver" "$srcdir/src/k8s.io/minikube"
+license="Apache-2.0"
+arch="all !s390x !riscv64" # blocked by libvirt
+arch="$arch !x86 !armhf !armv7 !ppc64le !aarch64" # FTBFS (kvm2 driver)
+makedepends="go bash libvirt-dev"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ docker-machine-driver-kvm2:_kvm2_driver
+ "
+source="https://github.com/kubernetes/minikube/archive/v$pkgver/minikube-$pkgver.tar.gz
+ skip-amd64-only-test.patch
+ "
+options="net"
+
+export GOPATH="$srcdir"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make out/minikube out/docker-machine-driver-kvm2
+
+ cd out
+ ./minikube completion bash > $pkgname.bash
+ ./minikube completion fish > $pkgname.fish
+ ./minikube completion zsh > $pkgname.zsh
}
-build () {
- export GOPATH="$srcdir"
- cd "$GOPATH/src/k8s.io/minikube"
- make
+check() {
+ TESTSUITE=unittest make test
}
-package () {
- install -Dm755 "$srcdir/src/k8s.io/minikube/out/minikube" -t "$pkgdir/usr/bin"
+package() {
+ cd out
+ install -Dm755 minikube "$pkgdir"/usr/bin/minikube
+ install -Dm755 docker-machine-driver-kvm2 "$pkgdir"/usr/bin/docker-machine-driver-kvm2
+
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
}
-check () {
- export GOPATH="$srcdir"
- cd "$GOPATH/src/k8s.io/minikube"
- make test
+_kvm2_driver() {
+ pkgdesc="minikube-maintained KVM driver for docker-machine"
+
+ amove usr/bin/docker-machine-driver-kvm2
}
-sha512sums="ef5158ebf42090570e5bef3ff7cfe3536c091356119925029510a0cec93fa0deba780964fc576e54ccb50336d05d95782a405b3161e0ff2fa0544d82ae0d7682 minikube-0.35.0.tar.gz"
+sha512sums="
+afc759879b1f5cb713c112592ae7547bb7f6f4792289110183e87dafd00e4d05187ea9d728472cc15e585e50a1c219729fb66c5ae3d63dc32ee8d00b873ab2ae minikube-1.32.0.tar.gz
+2eccb63b0905791968dec95f8f758da12632a8530c6db600648f2a190b23dd363d1a3c717488fc4e36f9082346c053eb9cf2ed00f65d14744e3fe9606dc32ddd skip-amd64-only-test.patch
+"
diff --git a/testing/minikube/skip-amd64-only-test.patch b/testing/minikube/skip-amd64-only-test.patch
new file mode 100644
index 00000000000..f1fe14890bb
--- /dev/null
+++ b/testing/minikube/skip-amd64-only-test.patch
@@ -0,0 +1,15 @@
+Reason: Skip test that works only with amd64 platform
+Upstream: No
+
+diff --git a/pkg/util/utils_test.go b/pkg/util/utils_test.go
+index 3e5e36965..1d242ce37 100644
+--- a/pkg/util/utils_test.go
++++ b/pkg/util/utils_test.go
+@@ -28,6 +28,7 @@ import (
+ )
+
+ func TestGetBinaryDownloadURL(t *testing.T) {
++ t.Skip("amd64-only test")
+ testData := []struct {
+ version string
+ platform string
diff --git a/testing/minimodem/APKBUILD b/testing/minimodem/APKBUILD
new file mode 100644
index 00000000000..64d3ed9fec0
--- /dev/null
+++ b/testing/minimodem/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=minimodem
+pkgver=0.24
+pkgrel=1
+pkgdesc="general-purpose software audio FSK modem"
+url="http://www.whence.com/minimodem"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="autoconf automake alsa-lib-dev fftw-dev pulseaudio-dev libsndfile-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/kamalmostafa/minimodem/archive/refs/tags/minimodem-$pkgver-1.tar.gz"
+builddir="$srcdir/minimodem-minimodem-$pkgver-1"
+options="!check" # tests fail in CI
+
+build() {
+ autoreconf -i
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4a60a13596adbebc2b0b63579b037b595221f1ba7ede33e0e74d8866ffd786f2a9504e01c9ff06e136af5e1a6f0a43940e7d3650e19a0964bc1fc9ba231b437c minimodem-0.24-1.tar.gz
+"
diff --git a/testing/minio-client/APKBUILD b/testing/minio-client/APKBUILD
deleted file mode 100644
index 9a2bebd7a0a..00000000000
--- a/testing/minio-client/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=minio-client
-_pkgname=mc
-_pkgver='RELEASE.2020-05-16T01-44-37Z'
-pkgver=${_pkgver#*.}
-pkgver=${pkgver%T*}
-pkgver=0.${pkgver//-}
-pkgrel=0
-pkgdesc="The MinIO Client"
-url="https://minio.io/"
-arch="all"
-license="Apache-2.0"
-makedepends="go"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/minio/$_pkgname/archive/$_pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$_pkgver"
-options="net"
-
-export GOPATH="$srcdir"
-export CGO_ENABLED=0
-
-build() {
- local _ldflags=$(go run buildscripts/gen-ldflags.go 2> /dev/null)
- go build -tags kqueue --ldflags "$_ldflags" -o bin/mc
-}
-
-check() {
- # mc/cmd is disabled, seems to be outdated and fails on all my systems
- go test -tags kqueue $(go list ./... | grep -v \
- -e cmd \
- )
-}
-
-package() {
- install -Dm755 "$builddir"/bin/mc \
- "$pkgdir"/usr/bin/mcli
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-sha512sums="f1df191aa85398ba0159fbcbd4710b4a918eab65c98c633e1d392cf7905954b1fad9c8f4089187349deb7ca7ad53d638a2faa71d38b23c35e0da47d39a64bb64 mc-0.20200516.tar.gz"
diff --git a/testing/minio/APKBUILD b/testing/minio/APKBUILD
deleted file mode 100644
index 9b515408150..00000000000
--- a/testing/minio/APKBUILD
+++ /dev/null
@@ -1,73 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=minio
-_pkgver='RELEASE.2020-05-16T01-33-21Z'
-pkgver=${_pkgver#*.}
-pkgver=${pkgver%T*}
-pkgver=0.${pkgver//-}
-pkgrel=0
-pkgdesc="An open source object storage server compatible with Amazon S3"
-pkgusers="minio"
-pkggroups="minio"
-url="https://minio.io/"
-arch="all !mips !mips64" # fails to build on mips
-license="Apache-2.0"
-install="minio.pre-install"
-makedepends="go"
-source="
- minio.initd
- minio.confd
- $pkgname-$pkgver.tar.gz::https://github.com/minio/minio/archive/$_pkgver.tar.gz
- "
-builddir="$srcdir/$pkgname-$_pkgver"
-options="net"
-subpackages="$pkgname-openrc"
-
-export GOPATH="$srcdir"
-export CGO_ENABLED=0
-
-# secfixes:
-# 0.20200423-r0:
-# - CVE-2020-11012
-
-build() {
- local _ldflags=$(go run buildscripts/gen-ldflags.go 2> /dev/null)
- go build -tags kqueue --ldflags "$_ldflags" -o bin/minio
-}
-
-check() {
- # cmd: disk usage errors, like same as pkg/disk
- # pkg/disk: doesn't know what btrfs is
- # pkg/s3select: fails on 32bit systems
- # pkg/event/target: fails on aarch64
- # pkg/sys: fails on aarch64
- # cmd/http: fails on aarch64, suspect ipv6 problem
- # pkg/dsync: fails on armv7
- go test -tags kqueue $(go list ./... | grep -v \
- -e 'cmd$' \
- -e pkg/disk \
- -e pkg/s3select \
- -e pkg/event/target \
- -e pkg/sys \
- -e cmd/http \
- -e pkg/dsync
- )
-}
-
-package() {
- install -Dm755 "$builddir"/bin/minio \
- "$pkgdir"/usr/bin/minio
- install -Dm755 "$srcdir"/"$pkgname".initd \
- "$pkgdir"/etc/init.d/"$pkgname"
- install -Dm644 "$srcdir"/"$pkgname".confd \
- "$pkgdir"/etc/conf.d/"$pkgname"
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="6427a225d4e6c51cc5de077ccd29ddf52556722cf958e83e480df1c5882aa4fa7daebfeb970e80f8f9c3176594d8e427e8c8dbf268ce945647a11bdf1e69affd minio.initd
-ed9790fbadfb38e4d660eb1befd87e803d70dec04d936e8cd26def4a9c21240bb7cae8750ae3395aa4761e6738b9e346c86ba57761cfde30efe46d2cb459a7e4 minio.confd
-2526ffeacb220bb91a6882863bffaff40f8b3e2e7d71d33b99879e46ace48d2636484aaa48c830c7880f529552338005a29e2806226eee743f0a47310bfc2a7c minio-0.20200516.tar.gz"
diff --git a/testing/minio/minio.confd b/testing/minio/minio.confd
deleted file mode 100644
index 952ce135641..00000000000
--- a/testing/minio/minio.confd
+++ /dev/null
@@ -1,13 +0,0 @@
-# defaults to storing data in /srv/minio
-# but you can run multiple instances, e.g minio.home in /srv/minio.home
-MINIO_VOLUMES="/srv/${RC_SVCNAME}"
-
-#export MINIO_ACCESS_KEY=myUser
-#export MINIO_SECRET_KEY=mySecretKey
-
-# recommended for production setups
-#MINIO_OPTS='--quiet --anonymous'
-
-# optional additional settings
-#address=minio.example.com:9000
-#export MINIO_DOMAIN=minio.example.com
diff --git a/testing/minio/minio.initd b/testing/minio/minio.initd
deleted file mode 100644
index 7a8afcbb0d8..00000000000
--- a/testing/minio/minio.initd
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-respawn_delay=5
-respawn_max=0
-healthcheck_timer=30
-
-name='Minio Block Storage Server'
-command=/usr/bin/minio
-command_args="server \
- ${address:+--address=$address} \
- $MINIO_OPTS \
- $MINIO_VOLUMES"
-command_user="minio:minio"
-
-start_pre() {
- # the conf.d file might contain secrets!
- [ -f "/etc/conf.d/${RC_SVCNAME}" ] && checkpath --file --mode 0600 --owner root:root "/etc/conf.d/${RC_SVCNAME}"
- # make sure the default volume exists
- checkpath --directory --mode 0700 --owner minio:minio "/srv/${RC_SVCNAME}"
-}
-
-healthcheck() {
- [ -x /usr/bin/curl ] || return 0
- /usr/bin/curl -q "${address:-localhost:9000}"/minio/health/ready
-}
diff --git a/testing/minio/minio.pre-install b/testing/minio/minio.pre-install
deleted file mode 100644
index 3015873c0fd..00000000000
--- a/testing/minio/minio.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S minio 2>/dev/null
-adduser -S -D -h /var/lib/minio -s /sbin/nologin -G minio -g minio minio 2>/dev/null
-
-exit 0
diff --git a/testing/minisatip/APKBUILD b/testing/minisatip/APKBUILD
new file mode 100644
index 00000000000..39b979451d7
--- /dev/null
+++ b/testing/minisatip/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: lgehr <lgehr@mailbox.org>
+pkgname=minisatip
+pkgver=1.3.4
+pkgrel=0
+pkgdesc="minisatip is an SATIP server for linux using local DVB-S2, DVB-C, DVB-T or ATSC cards"
+url="https://minisatip.org"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="linux-headers openssl-dev libdvbcsa-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/catalinii/minisatip/archive/refs/tags/v$pkgver.tar.gz
+ minisatip.initd
+ minisatip.confd
+ default_document_root.patch
+ "
+
+prepare() {
+ default_prepare
+
+ # gcc sanitisers don't work on musl
+ # #10304
+ sed -i 's; -fsanitize=address;;g' tests/Makefile.in
+ sed -i 's; -fsanitize=leak;;g' tests/Makefile.in
+ sed -i 's; -fsanitize=null;;g' tests/Makefile.in
+}
+
+build() {
+ # no execinfo.h
+ export CFLAGS="$CFLAGS -DNO_BACKTRACE"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make -j1 test #parallel execution fails with "text file busy"
+}
+
+package() {
+ install -Dm755 minisatip "$pkgdir"/usr/bin/minisatip
+ mkdir -p "$pkgdir"/usr/share/minisatip/html
+ cp -r html "$pkgdir"/usr/share/minisatip
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+12e6d81e1b7c8c0c2206a209aa7f4cf5daabfa1d71f26ce11284f585add5e989685c061f179ada35eaa54e28332a49eef7ef3ace21f9db56d15831a15a33ae52 minisatip-1.3.4.tar.gz
+fb0c4125350dbb516fb005ee0246d9219bb7c38a0429fc714bd861990cfa8c13e5e217f5be9cf7216a0f5e912ef1fb6d21e93e98b303286332f66dfee6936460 minisatip.initd
+b29b2d4140b2c66431fdf876c0f15f98794be185c786cce7c5c202484e8c73c8b17aa564c37bdca22157fa97ac5598a8c16b58699559b1bd39e4a5c18835bccd minisatip.confd
+f9352ea6973e0314aa5c5bab4ee31dcb2b731fc889115a442d8cf912ae143ed2d04cdacefbebf13c949c0f17c6a800b73d3d0ee804734ba2dfce09783085781a default_document_root.patch
+"
diff --git a/testing/minisatip/default_document_root.patch b/testing/minisatip/default_document_root.patch
new file mode 100644
index 00000000000..8e2fd17f86f
--- /dev/null
+++ b/testing/minisatip/default_document_root.patch
@@ -0,0 +1,11 @@
+--- a/src/minisatip.c
++++ b/src/minisatip.c
+@@ -662,7 +662,7 @@
+ opts.pids_all_no_dec = 0;
+ opts.rtsp_port = 554;
+ opts.use_ipv4_only = 1;
+- opts.document_root = "html";
++ opts.document_root = "/usr/share/minisatip/html";
+ opts.cache_dir = "/var/cache/minisatip";
+ opts.xml_path = DESC_XML;
+ opts.th_priority = -1;
diff --git a/testing/minisatip/minisatip.confd b/testing/minisatip/minisatip.confd
new file mode 100644
index 00000000000..558669db98f
--- /dev/null
+++ b/testing/minisatip/minisatip.confd
@@ -0,0 +1,2 @@
+supervisor=supervise-daemon
+extra_opts="--syslog"
diff --git a/testing/minisatip/minisatip.initd b/testing/minisatip/minisatip.initd
new file mode 100644
index 00000000000..386b13dfe26
--- /dev/null
+++ b/testing/minisatip/minisatip.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+command="/usr/bin/minisatip"
+command_args="-f $extra_opts"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+command_user="minisatip:minisatip"
+capabilities="^cap_net_bind_service"
+
+depend() {
+ need net
+ use logger dns
+ after firewall
+}
diff --git a/testing/minisatip/minisatip.pre-install b/testing/minisatip/minisatip.pre-install
new file mode 100644
index 00000000000..8e64a72b60f
--- /dev/null
+++ b/testing/minisatip/minisatip.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S minisatip 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G minisatip -g minisatip minisatip 2>/dev/null
+adduser minisatip video
+
+exit 0
diff --git a/testing/minisign/APKBUILD b/testing/minisign/APKBUILD
deleted file mode 100644
index 248c0c16d7c..00000000000
--- a/testing/minisign/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Michael Zuo <muh.muhten@gmail.com>
-pkgname=minisign
-pkgver=0.8
-pkgrel=0
-pkgdesc="A dead simple tool to sign files and verify signatures."
-url="https://jedisct1.github.io/minisign"
-arch="all"
-license="ISC"
-options="!check"
-makedepends="cmake libsodium-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jedisct1/minisign/archive/$pkgver.tar.gz"
-
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- cmake -DCMAKE_INSTALL_PREFIX=/usr
- make
-}
-
-package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir"
-}
-
-sha512sums="79bf626d0c15e39ce3bdf53600038028c0b22904b648074bf516a9ea6962c9486c41244e80637a5fbac090cce1ed9b4b3d57b8a02632646e01b43aa413cd8bd9 minisign-0.8.tar.gz"
diff --git a/testing/mint-themes/APKBUILD b/testing/mint-themes/APKBUILD
new file mode 100644
index 00000000000..f742fcf828d
--- /dev/null
+++ b/testing/mint-themes/APKBUILD
@@ -0,0 +1,139 @@
+# Maintainer: Raymond Hackley <raymondhackley@protonmail.com>
+pkgname=mint-themes
+pkgver=2.1.1
+pkgrel=0
+pkgdesc="Mint themes for GNOME/GTK desktops"
+options="!check" # It is a theme
+url="https://github.com/linuxmint/mint-themes"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="mint-x-theme mint-y-theme"
+makedepends="python3 sassc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/mint-themes/archive/$pkgver.tar.gz"
+subpackages="
+ $pkgname-doc
+ mint-x-theme:mint_x_theme
+ mint-x-theme-gtk2:mint_x_theme_gtk2
+ mint-x-theme-gtk3:mint_x_theme_gtk3
+ mint-x-theme-gtk4:mint_x_theme_gtk4
+ mint-x-theme-metacity:mint_x_theme_metacity
+ mint-x-theme-xfwm4:mint_x_theme_xfwm4
+ mint-y-theme:mint_y_theme
+ mint-y-theme-gtk2:mint_y_theme_gtk2
+ mint-y-theme-gtk3:mint_y_theme_gtk3
+ mint-y-theme-gtk4:mint_y_theme_gtk4
+ mint-y-theme-metacity:mint_y_theme_metacity
+ mint-y-theme-xfwm4:mint_y_theme_xfwm4
+ "
+
+build() {
+ make
+}
+
+package() {
+ rm -rf "$builddir/usr/share/themes/Linux Mint" \
+ "$builddir"/usr/share/themes/*/cinnamon
+ mkdir -p "$pkgdir"
+ mv "$builddir"/usr "$pkgdir"/
+
+ install -Dm644 "$builddir"/debian/changelog \
+ "$pkgdir"/usr/share/doc/"$pkgname"/changelog
+ install -Dm644 "$builddir"/debian/copyright \
+ "$pkgdir"/usr/share/doc/"$pkgname"/copyright
+}
+
+mint_x_theme() {
+ pkgdesc="Mint-X themes"
+ depends=""
+ amove usr/share/themes/Mint-X*/index.theme
+}
+
+mint_x_theme_gtk2() {
+ pkgdesc="GTK+2.0 assets for Mint themes"
+ depends="gtk-murrine-engine"
+ install_if="mint-x-theme=$pkgver-r$pkgrel gtk+2.0"
+
+ amove usr/share/themes/Mint-X*/gtk-2.0
+}
+
+mint_x_theme_gtk3() {
+ pkgdesc="GTK+3.0 assets for Mint themes"
+ depends=""
+ install_if="mint-x-theme=$pkgver-r$pkgrel gtk+3.0"
+
+ amove usr/share/themes/Mint-X*/gtk-3.0
+}
+
+mint_x_theme_gtk4() {
+ pkgdesc="GTK+4.0 assets for Mint themes"
+ depends=""
+ install_if="mint-x-theme=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/share/themes/Mint-X*/gtk-4.0
+}
+
+mint_x_theme_xfwm4() {
+ pkgdesc="xfwm assets for Mint themes"
+ depends=""
+ install_if="mint-x-theme=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Mint-X*/xfwm4
+}
+
+mint_x_theme_metacity() {
+ pkgdesc="metacity assets for Mint themes"
+ depends=""
+ install_if="mint-x-theme=$pkgver-r$pkgrel metacity"
+
+ amove usr/share/themes/Mint-X*/metacity-1
+}
+
+mint_y_theme() {
+ pkgdesc="Mint-Y themes"
+ depends=""
+ amove usr/share/themes/Mint-Y*/index.theme
+}
+
+mint_y_theme_gtk2() {
+ pkgdesc="GTK+2.0 assets for Mint-Y themes"
+ depends="gtk-murrine-engine"
+ install_if="mint-y-theme=$pkgver-r$pkgrel gtk+2.0"
+
+ amove usr/share/themes/Mint-Y*/gtk-2.0
+}
+
+mint_y_theme_gtk3() {
+ pkgdesc="GTK+3.0 assets for Mint-Y themes"
+ depends=""
+ install_if="mint-y-theme=$pkgver-r$pkgrel gtk+3.0"
+
+ amove usr/share/themes/Mint-Y*/gtk-3.0
+}
+
+mint_y_theme_gtk4() {
+ pkgdesc="GTK+4.0 assets for Mint-Y themes"
+ depends=""
+ install_if="mint-y-theme=$pkgver-r$pkgrel gtk4.0"
+
+ amove usr/share/themes/Mint-Y*/gtk-4.0
+}
+
+mint_y_theme_xfwm4() {
+ pkgdesc="xfwm assets for Mint-Y themes"
+ depends=""
+ install_if="mint-y-theme=$pkgver-r$pkgrel xfwm4"
+
+ amove usr/share/themes/Mint-Y*/xfwm4
+}
+
+mint_y_theme_metacity() {
+ pkgdesc="metacity assets for Mint-Y themes"
+ depends=""
+ install_if="mint-y-theme=$pkgver-r$pkgrel metacity"
+
+ amove usr/share/themes/Mint-Y*/metacity-1
+}
+
+sha512sums="
+7692608dd0ac8e6f5d14b2f0332d40d215e4f07f9745a3bcc2bea099b7519d70d1a23aec853ca30191d04f133772cacae9fca38b3f6737b9afe916c696b08aaf mint-themes-2.1.1.tar.gz
+"
diff --git a/testing/mint-x-icons/APKBUILD b/testing/mint-x-icons/APKBUILD
new file mode 100644
index 00000000000..af615497e3e
--- /dev/null
+++ b/testing/mint-x-icons/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=mint-x-icons
+pkgver=1.6.5
+pkgrel=1
+pkgdesc="Mint-X icon theme"
+options="!check" # It is an icon theme
+url="https://github.com/linuxmint/mint-x-icons"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="$pkgname-$pkgver-2.tar.gz::https://github.com/linuxmint/mint-x-icons/archive/$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+package() {
+ mkdir -p "$pkgdir"
+ mv -v "$builddir"/usr "$pkgdir"/
+
+ install -Dm644 "$builddir"/debian/changelog \
+ "$pkgdir"/usr/share/doc/"$pkgname"/changelog
+ install -Dm644 "$builddir"/debian/copyright \
+ "$pkgdir"/usr/share/doc/"$pkgname"/copyright
+}
+
+sha512sums="
+63dc27dccbcf3c548a7aed6cb18abcd3abd17e254f4e94b8e5589ff57f843e315bea618e25e9b974d93abf2929bcd7271c1596bba3e71ddab56f8e7d2def854d mint-x-icons-1.6.5-2.tar.gz
+"
diff --git a/testing/mint-y-icons/APKBUILD b/testing/mint-y-icons/APKBUILD
new file mode 100644
index 00000000000..edb6f33fca2
--- /dev/null
+++ b/testing/mint-y-icons/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=mint-y-icons
+pkgver=1.7.2
+pkgrel=0
+pkgdesc="Mint-Y icon theme"
+options="!check" # It is an icon theme
+url="https://github.com/linuxmint/mint-y-icons"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/mint-y-icons/archive/$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+package() {
+ mkdir -p "$pkgdir"
+ mv -v "$builddir"/usr "$pkgdir"/
+
+ install -Dm644 "$builddir"/debian/changelog \
+ "$pkgdir"/usr/share/doc/"$pkgname"/changelog
+ install -Dm644 "$builddir"/debian/copyright \
+ "$pkgdir"/usr/share/doc/"$pkgname"/copyright
+}
+
+sha512sums="
+a188b69618b005882a5fbad4252abc35ecddd70a811f0d9d54a1116cdeec10c543f1d9d5554938d753655270e5e16282d27dc219a6a217461bf7591a597a1a20 mint-y-icons-1.7.2.tar.gz
+"
diff --git a/testing/mir-core/APKBUILD b/testing/mir-core/APKBUILD
deleted file mode 100644
index f25979ee817..00000000000
--- a/testing/mir-core/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=mir-core
-pkgver=1.1.2
-pkgrel=0
-pkgdesc="Base software building blocks and conventions"
-url="https://github.com/libmir/mir-core"
-arch="x86 x86_64 aarch64" # ldc
-license="BSL-1.0"
-makedepends="meson ldc ldc-runtime"
-subpackages="$pkgname-dev"
-source="https://github.com/libmir/mir-core/archive/v$pkgver/mir-core-$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- -Dwith_test=true \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="b2c748d4239fd4a01ff1e537321530e2a6e354b4fb848006ae7e96213d3c64b15b9b99916c82406fd79fe37479105989a0d7310d2b184194c3db69b431be9954 mir-core-1.1.2.tar.gz"
diff --git a/testing/mir/0001-Fix-the-signature-of-drmModeCrtcSetGamma.patch b/testing/mir/0001-Fix-the-signature-of-drmModeCrtcSetGamma.patch
new file mode 100644
index 00000000000..51707dfa212
--- /dev/null
+++ b/testing/mir/0001-Fix-the-signature-of-drmModeCrtcSetGamma.patch
@@ -0,0 +1,70 @@
+From 98250e9c32c5b9b940da2fb0a32d8139bbc68157 Mon Sep 17 00:00:00 2001
+From: Alan Griffiths <alan@octopull.co.uk>
+Date: Thu, 31 Aug 2023 12:05:13 +0100
+Subject: [PATCH] Fix the signature of drmModeCrtcSetGamma
+
+---
+ tests/include/mir/test/doubles/mock_drm.h | 2 +-
+ tests/mir_test_doubles/mock_drm.cpp | 22 ++++++++++++++++++++--
+ 2 files changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/tests/include/mir/test/doubles/mock_drm.h b/tests/include/mir/test/doubles/mock_drm.h
+index aeba8c7d05..d3c44f30c2 100644
+--- a/tests/include/mir/test/doubles/mock_drm.h
++++ b/tests/include/mir/test/doubles/mock_drm.h
+@@ -155,7 +155,7 @@ public:
+ MOCK_METHOD6(drmModeCrtcGetGamma, int(int fd, uint32_t crtc_id, uint32_t size,
+ uint16_t* red, uint16_t* green, uint16_t* blue));
+ MOCK_METHOD6(drmModeCrtcSetGamma, int(int fd, uint32_t crtc_id, uint32_t size,
+- uint16_t* red, uint16_t* green, uint16_t* blue));
++ uint16_t const* red, uint16_t const* green, uint16_t const* blue));
+
+ MOCK_METHOD1(drmGetVersion, drmVersionPtr(int));
+ MOCK_METHOD1(drmFreeVersion, void(drmVersionPtr));
+diff --git a/tests/mir_test_doubles/mock_drm.cpp b/tests/mir_test_doubles/mock_drm.cpp
+index d3d5840b7a..bd51466cba 100644
+--- a/tests/mir_test_doubles/mock_drm.cpp
++++ b/tests/mir_test_doubles/mock_drm.cpp
+@@ -489,6 +489,24 @@ testing::Matcher<int> mtd::IsFdOfDevice(char const* device)
+ return ::testing::MakeMatcher(new mtd::MockDRM::IsFdOfDeviceMatcher(device));
+ }
+
++// The signature of drmModeCrtcSetGamma() changes from passing the gamma as `uint16_t*` to `uint16_t const*`
++// We need to provide a definition that matches
++namespace
++{
++template<typename Any>
++struct Decode_drmModeCrtcSetGamma_signature;
++
++template<typename Arg>
++struct Decode_drmModeCrtcSetGamma_signature<int(int fd, uint32_t crtc_id, uint32_t size, Arg red, Arg gree, Arg blue)>
++{
++ using gamma_t = Arg;
++};
++using gamma_t = Decode_drmModeCrtcSetGamma_signature<decltype(drmModeCrtcSetGamma)>::gamma_t;
++}
++
++// Ensure we get a compile error if the definition doesn't match the declaration (instead of providing an overload)
++extern "C"
++{
+ int drmOpen(const char *name, const char *busid)
+ {
+ return global_mock->drmOpen(name, busid);
+@@ -548,8 +566,7 @@ int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
+ return global_mock->drmModeCrtcGetGamma(fd, crtc_id, size, red, green, blue);
+ }
+
+-int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size,
+- uint16_t* red, uint16_t* green, uint16_t* blue)
++int drmModeCrtcSetGamma(int fd, uint32_t crtc_id, uint32_t size, gamma_t red, gamma_t green, gamma_t blue)
+ {
+ return global_mock->drmModeCrtcSetGamma(fd, crtc_id, size, red, green, blue);
+ }
+@@ -751,3 +768,4 @@ int drmCheckModesettingSupported(char const* busid)
+ {
+ return global_mock->drmCheckModesettingSupported(busid);
+ }
++}
+--
+2.42.0
+
diff --git a/testing/mir/APKBUILD b/testing/mir/APKBUILD
new file mode 100644
index 00000000000..e63516927c6
--- /dev/null
+++ b/testing/mir/APKBUILD
@@ -0,0 +1,111 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=mir
+pkgver=2.15.0
+pkgrel=1
+pkgdesc="Mir Display Server"
+url="https://mir-server.io"
+arch="all"
+license="GPL-2.0-or-later AND LGPL-2.0-or-later"
+depends="
+ ttf-freefont
+ xkeyboard-config
+ "
+depends_dev="
+ boost-dev
+ capnproto-dev
+ eudev-dev
+ freetype-dev
+ gflags-dev
+ glib-dev
+ glm-dev
+ glog-dev
+ libepoxy-dev
+ libevdev-dev
+ libinput-dev
+ libxcursor-dev
+ libxkbcommon-dev
+ libxml++-2.6-dev
+ lttng-ust-dev
+ mesa-dev
+ nettle-dev
+ protobuf-dev
+ umockdev-dev
+ wayland-dev
+ yaml-cpp-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ gmock
+ gtest-dev
+ lttng-ust-tools
+ py3-pillow
+ samurai
+ wlcs-dev
+ "
+checkdepends="
+ bash
+ grep
+ wlcs
+ "
+source="https://github.com/MirServer/mir/releases/download/v$pkgver/mir-$pkgver.tar.xz
+ 0001-Fix-the-signature-of-drmModeCrtcSetGamma.patch
+ "
+subpackages="$pkgname-dev $pkgname-demos $pkgname-test-tools:test_tools"
+options="!check" # some tests fail/hang currently, to be debugged
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DMIR_FATAL_COMPILE_WARNINGS=OFF \
+ -DMIR_ENABLE_WLCS_TESTS=OFF \
+ -DMIR_USE_LD=ld
+ cmake --build build
+}
+
+check() {
+ XDG_RUNTIME_DIR=/tmp ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+ amove usr/bin/mir_wayland_generator
+}
+
+demos() {
+ pkgdesc="$pkgdesc - demonstration programs"
+ amove usr/bin/miral-shell
+ amove usr/bin/miral-kiosk
+ amove usr/bin/miral-app
+ amove usr/bin/miral-terminal
+ amove usr/bin/mir-shell
+ amove usr/bin/miral-system-compositor
+ amove usr/share/applications/miral-shell.desktop
+ amove usr/share/wayland-sessions/mir-shell.desktop
+ amove usr/share/icons/hicolor/scalable/apps/ubuntu-logo.svg
+}
+
+test_tools() {
+ pkgdesc="$pkgdesc - stress tests and other test tools"
+ amove usr/bin/mir_performance_tests
+ amove usr/bin/mir-smoke-test-runner
+ amove usr/bin/mir_platform_graphics_test_harness
+ amove usr/lib/mir/tools/libmirserverlttng.so
+ amove usr/bin/mir_demo_client_*
+ amove usr/bin/mir_demo_server
+ amove usr/lib/mir/server-platform/graphics-dummy.so
+ amove usr/lib/mir/server-platform/input-stub.so
+}
+
+sha512sums="
+b8a5ed4326a6257595873c35d683a343fc96840d1b2824af6478c59db44cc8d0eea9984b74db09ae101885d457d83fa4faa37992b755b92f3e7712b1c09072cd mir-2.15.0.tar.xz
+c31f487d4db5281bad79b228899dcc4e159050e218002f7f152a5885e065c55f109932085854f8c4f45fb70ecb629c5a6bfeef87d2f94db0e39ab82004f337fc 0001-Fix-the-signature-of-drmModeCrtcSetGamma.patch
+"
diff --git a/testing/miraclecast/APKBUILD b/testing/miraclecast/APKBUILD
new file mode 100644
index 00000000000..1d2b8ff934b
--- /dev/null
+++ b/testing/miraclecast/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=miraclecast
+pkgver=1.0_git20221016
+pkgrel=0
+_commit="380504b0f833faa46f12d3a1f3861b97d08d32a4"
+pkgdesc="Connect external monitors to your system via Wifi-Display specification also known as Miracast"
+url="https://github.com/albfan/miraclecast"
+arch="all"
+license="LGPL-2.1-or-later AND LGPL-2.0-or-later AND GPL-2.0-only"
+makedepends="
+ meson
+ elogind-dev
+ eudev-dev
+ glib-dev
+ readline-dev
+ samurai
+ "
+subpackages="$pkgname-bash-completion"
+source="https://github.com/albfan/miraclecast/archive/$_commit/miraclecast-$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ abuild-meson \
+ . output \
+ -Denable-systemd=false \
+ -Dbuild-tests=true
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild -v -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ mkdir -p "$pkgdir"/usr/share/dbus-1/system.d
+ mv \
+ "$pkgdir"/etc/dbus-1/system.d/org.freedesktop.miracle.conf \
+ "$pkgdir"/usr/share/dbus-1/system.d/
+ rm -r "$pkgdir"/etc/dbus-1
+}
+
+sha512sums="
+b3a91cffa36cdfff3db9cd080d1ccf549188cf26a01d2f795b0262e9c7e621b9bc9bdf1e606c38b4051381dac8295f7dc9561b77601db29ac520eadd237c2003 miraclecast-380504b0f833faa46f12d3a1f3861b97d08d32a4.tar.gz
+"
diff --git a/testing/mitmproxy/APKBUILD b/testing/mitmproxy/APKBUILD
index df08dcd08f2..3acec9de8f6 100644
--- a/testing/mitmproxy/APKBUILD
+++ b/testing/mitmproxy/APKBUILD
@@ -1,30 +1,85 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
pkgname=mitmproxy
-pkgver=0.18.2
-pkgrel=3
-pkgdesc="An interactive SSL-capable intercepting HTTP proxy"
-url="https://www.mitmproxy.org/"
-arch="noarch"
+pkgver=10.2.0
+pkgrel=0
+pkgdesc="Interactive TLS-capable intercepting HTTP proxy"
+url="https://mitmproxy.org/"
license="MIT"
-depends="python3 py3-flask py3-urwid py3-$pkgname py3-itsdangerous"
-makedepends="py3-setuptools"
-subpackages="py3-$pkgname:_py"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz"
+# armhf, s390x: limited by py3-zstandard
+# ppc64le, riscv64, s390x: limited by py3-mitmproxy-rs
+arch="noarch !armhf !ppc64le !riscv64 !s390x"
+depends="
+ py3-aioquic
+ py3-asgiref
+ py3-brotli
+ py3-certifi
+ py3-cryptography
+ py3-flask
+ py3-h11
+ py3-h2
+ py3-hyperframe
+ py3-kaitaistruct
+ py3-ldap3
+ py3-mitmproxy-rs
+ py3-msgpack
+ py3-passlib
+ py3-protobuf
+ py3-openssl
+ py3-parsing
+ py3-pyperclip
+ py3-ruamel.yaml
+ py3-sortedcontainers
+ py3-tornado
+ py3-urwid
+ py3-wsproto
+ py3-publicsuffix2
+ py3-zstandard
+ "
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-hypothesis
+ py3-parver
+ py3-pytest
+ py3-pytest-asyncio
+ py3-requests
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/mitmproxy/mitmproxy/archive/$pkgver/mitmproxy-$pkgver.tar.gz
+ skip-test-optmanager-x86.patch
+ fix-openssl-tests.patch
+ "
+
+# secfixes:
+# 7.0.3-r0:
+# - CVE-2021-39214
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"
+check() {
+ pytest \
+ --deselect "test/mitmproxy/test_version.py::test_get_version" \
+ --deselect "test/mitmproxy/proxy/test_mode_servers.py::test_wireguard" \
+ --deselect "test/mitmproxy/addons/test_script.py::test_order"
}
-_py() {
- cd "$builddir"
- pkgdesc="$pkgname python3 bindings"
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/mitmproxy-$pkgver-py3-none-any.whl
}
-sha512sums="39836063a041d7fd14bb82ccf2fb53262b8ec14b629197776e27ebfb2fc97103ee5b4af979ffe6db35103e833679e2e5a640295831d55a2cd0f20a602b559064 mitmproxy-0.18.2.tar.gz"
+sha512sums="
+dde49756394b6ea0c69e791f0ffe579d8ba2b0a321032af8700a4ba3d1a26039e477f24523fb34229faf0e9c71a29530938c8f302dc9131a674f4cb47a57f0c3 mitmproxy-10.2.0.tar.gz
+1baa88dae9f664af4bed62f89a7f5d13685b42774ea19563eba7298ef09fa07fafb4d5f1650e044561a5d304451d916e6c9833ad9755204d424bea6ed3bdb4fd skip-test-optmanager-x86.patch
+7f37bcff3ea870224075f18745e382c9ba8bd3c8697be11d0eccf458a5f4eecdda097c2ae790f6f5db796512c03fb78988d3e96cbde5aac6cef6a8b8b767faab fix-openssl-tests.patch
+"
diff --git a/testing/mitmproxy/fix-openssl-tests.patch b/testing/mitmproxy/fix-openssl-tests.patch
new file mode 100644
index 00000000000..8e3d07bbe84
--- /dev/null
+++ b/testing/mitmproxy/fix-openssl-tests.patch
@@ -0,0 +1,20 @@
+apparently the tests rely on some openssl library error strings, and we get different ones :)
+
+diff --git a/test/mitmproxy/proxy/layers/test_tls.py b/test/mitmproxy/proxy/layers/test_tls.py
+index 9960f8b..892ce31 100644
+--- a/test/mitmproxy/proxy/layers/test_tls.py
++++ b/test/mitmproxy/proxy/layers/test_tls.py
+@@ -394,3 +394,3 @@ class TestServerTLS:
+ << commands.Log(
+- "Server TLS handshake failed. The remote server does not speak TLS.",
++ "Server TLS handshake failed. OpenSSL Error([('SSL routines', '', 'packet length too long'), ('SSL routines', '', 'record layer failure')])",
+ WARNING,
+@@ -401,3 +401,2 @@ class TestServerTLS:
+ )
+- assert tls_hook_data().conn.error == "The remote server does not speak TLS."
+
+@@ -668,3 +667,3 @@ class TestClientTLS:
+ "Client TLS handshake failed. The client does not trust the proxy's certificate "
+- "for wrong.host.mitmproxy.org (sslv3 alert bad certificate)",
++ "for wrong.host.mitmproxy.org (OpenSSL Error([('SSL routines', '', 'ssl/tls alert bad certificate')]))",
+ WARNING,
diff --git a/testing/mitmproxy/skip-test-optmanager-x86.patch b/testing/mitmproxy/skip-test-optmanager-x86.patch
new file mode 100644
index 00000000000..b2d21c93091
--- /dev/null
+++ b/testing/mitmproxy/skip-test-optmanager-x86.patch
@@ -0,0 +1,11 @@
+--- a/test/mitmproxy/test_optmanager.py
++++ b/test/mitmproxy/test_optmanager.py
+@@ -186,6 +186,8 @@ def test_subscribe():
+ assert t.called
+
+
++import platform
++@pytest.mark.skipif(platform.machine() == "i686", reason="Test is flaky")
+ def test_rollback():
+ o = TO()
+
diff --git a/testing/mitra/APKBUILD b/testing/mitra/APKBUILD
new file mode 100644
index 00000000000..31a634d6891
--- /dev/null
+++ b/testing/mitra/APKBUILD
@@ -0,0 +1,100 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=mitra
+pkgver=2.16.0
+pkgrel=0
+_mitraweb=$pkgver #"${pkgver%.*}.0"
+pkgdesc="ActivityPub microblogging platform written in Rust"
+url="https://mitra.social/@mitra"
+# riscv64: vite webapp fails to build: 'Parse error @:1:38'
+arch="all !riscv64"
+license="AGPL-3.0-only"
+depends="postgresql"
+makedepends="
+ cargo
+ cargo-auditable
+ nodejs
+ npm
+ openssl-dev
+ "
+install="$pkgname.pre-install $pkgname.post-install"
+pkgusers="mitra"
+pkggroups="mitra"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="mitra-$pkgver.tar.gz::https://codeberg.org/silverpill/mitra/archive/v$pkgver.tar.gz
+ mitra-web-$_mitraweb.tar.gz::https://codeberg.org/silverpill/mitra-web/archive/v$_mitraweb.tar.gz
+ mitra.initd
+ init.sql
+ config.yaml
+ "
+builddir="$srcdir/mitra"
+
+# use system openssl
+export OPENSSL_NO_VENDOR=1
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+
+ cd "$srcdir/mitra-web"
+
+ npm ci --foreground-scripts
+}
+
+build() {
+ RUSTFLAGS="--cfg=ammonia_unstable" \
+ cargo auditable build --frozen --release \
+ --features production
+
+ cd "$srcdir/mitra-web"
+
+ echo 'VITE_BACKEND_URL=' > .env.local
+ npm run build
+}
+
+check() {
+ # These tests require a database connection
+ RUSTFLAGS="--cfg=ammonia_unstable" \
+ cargo test --frozen --workspace \
+ --exclude mitra_models -- \
+ --skip test_follow_unfollow \
+ --skip test_hide_reblogs \
+ --skip test_subscribe_unsubscribe \
+ --skip test_get_jrd \
+ --skip test_filter_mentions_none \
+ --skip test_filter_mentions_only_known \
+ --skip test_prepare_instance_ed25519_key
+
+ cd "$srcdir/mitra-web"
+
+ npm run test
+}
+
+package() {
+ install -Dm755 target/release/mitra -t "$pkgdir"/usr/bin
+ install -Dm755 target/release/mitractl -t "$pkgdir"/usr/bin
+
+ mkdir -p "$pkgdir"/usr/share/webapps
+ cp -r "$srcdir"/mitra-web/dist \
+ "$pkgdir"/usr/share/webapps/mitra
+
+ install -Dm644 docs/* -t "$pkgdir"/usr/share/doc/$pkgname
+ install -Dm644 config_dev.example.yaml \
+ contrib/Caddyfile contrib/*.nginx \
+ contrib/monero/wallet.conf \
+ -t "$pkgdir"/usr/share/doc/$pkgname/examples
+
+ install -Dm640 -g mitra "$srcdir"/config.yaml -t "$pkgdir"/etc/mitra
+ install -dm755 -o mitra -g mitra "$pkgdir"/var/lib/mitra
+ install -Dm644 "$srcdir"/init.sql -t "$pkgdir"/var/lib/mitra
+ install -Dm755 "$srcdir"/mitra.initd "$pkgdir"/etc/init.d/mitra
+}
+
+sha512sums="
+11ccb4162e5d35f774438c964f174c28d89e67be1d0789cb0320997c149739ade73388ebf18fdc1d5bf476f8b589e41f83b5a9a3e587ee7383fb39e6f4201af1 mitra-2.16.0.tar.gz
+59935e83c4c462d6d44774d3780844962c7a5c34bc1aa335cfb6565a8f32d7af55344a61d45d4cbcb7fed9a6ce68925ec9982feaa171e895bed8fef9d9a38447 mitra-web-2.16.0.tar.gz
+691f84f5dfdddc176e75792ab03ff167054246e75ced51be47a89f405ae55ebe5eb6280b73c1b467b5ecbe8539f6108fb3d86873d50fcc4f4b8c5b182632acb0 mitra.initd
+180a47f5072534418b4aac3ce7c885a4f7e4dc38aca80d6d81c79848d12fbe24799788c3575bd195030a10da5e0372f87fa2809a4ef99a48eaa6df52f4d053dd init.sql
+c958bcd6c96cb40d7369b7dcd13d1722ed23afb856c2569630b47cf5fe8a94105bb5e7ed7421c169e08f3764d9e60e05bed0b861ab117292d715600c852b15b0 config.yaml
+"
diff --git a/testing/mitra/config.yaml b/testing/mitra/config.yaml
new file mode 100644
index 00000000000..7f93b570260
--- /dev/null
+++ b/testing/mitra/config.yaml
@@ -0,0 +1,121 @@
+# Mitra configuration file
+
+# Database configuration
+# Examples:
+# - postgres://mitra:mitra@127.0.0.1:5432/mitra
+# - postgres://mitra@%2Fvar%2Frun%2Fpostgresql/mitra
+database_url: postgres://mitra:${psql_password}@127.0.0.1:5432/mitra
+#database_tls_ca_file: /etc/mitra/database.pem
+
+# Directory where media attachments and temporary files are stored
+storage_dir: /var/lib/mitra
+# Directory where static files for web client (frontend) are stored
+web_client_dir: /usr/share/webapps/mitra
+
+http_host: '127.0.0.1'
+http_port: 8383
+
+# List of allowed origins for CORS (in addition to `instance_uri`)
+# Trailing slashes are not allowed.
+#http_cors_allowlist:
+# - http://127.0.0.1:8383
+
+# Log level (debug, info, warn)
+#log_level: info
+
+# Domain name
+instance_uri: https://example.tld
+
+instance_title: example
+instance_short_description: my instance
+# Long description can contain markdown syntax
+instance_description: |
+ # My instance
+ Welcome!
+# Make list of instance admins public
+instance_staff_public: false
+# Make instance (local) timeline public
+instance_timeline_public: false
+
+registration:
+ # Possible values: open, invite
+ type: invite
+ # Possible values: user, read_only_user
+ default_role: user
+
+# Possible values: password, eip4361, caip122_monero. Default: only password.
+#authentication_methods:
+# - password
+# - eip4361
+# - caip122_monero
+# Access token expiration time (seconds). Default: 7 days
+#authentication_token_lifetime: 604800
+
+# EIP-4361 / CAIP-122 login message
+#login_message: 'Do not sign this message on other sites!'
+
+# Limits
+#limits:
+# media:
+# file_size_limit: 20M
+# posts:
+# character_limit: 5000
+
+# Data retention parameters.
+# Objects will be deleted after the specified number of days.
+retention:
+ # Remote posts with which local accounts didn't interact
+ extraneous_posts: 50
+ # Remote accounts without posts
+ empty_profiles: 150
+
+# Federation parameters
+#federation:
+# enabled: true
+# # Proxy for outgoing requests
+# #proxy_url: 'socks5h://127.0.0.1:9050'
+# # Proxy for outgoing requests to .onion targets
+# #onion_proxy_url: 'socks5h://127.0.0.1:9050'
+# # Proxy for outgoing requests to .i2p targets
+# #i2p_proxy_url: 'socks5h://127.0.0.1:4447'
+
+# Lists of blocked and allowed domains (allowlist has higher priority).
+# Wildcard patterns are supported. Example: *.domain.example
+#blocked_instances: []
+#allowed_instances: []
+
+# Blockchain integrations
+# Multi-chain setups are currently not supported.
+# Chain metadata for EVM chains can be found at https://github.com/ethereum-lists/chains
+# Signing key for ethereum integration can be generated with `mitractl generate-ethereum-address`
+#blockchains:
+# - chain_id: monero:mainnet
+# chain_metadata:
+# # Displayed on subscription page, can contain markdown syntax
+# description: null
+# node_url: 'http://127.0.0.1:18089'
+# wallet_rpc_url: 'http://127.0.0.1:18083'
+# wallet_rpc_username: null
+# wallet_rpc_password: null
+# wallet_name: null
+# wallet_password: null
+# account_index: 0
+# - chain_id: eip155:31337
+# chain_metadata:
+# chain_name: localhost
+# currency_name: ETH
+# currency_symbol: ETH
+# currency_decimals: 18
+# public_api_url: 'http://127.0.0.1:8545'
+# explorer_url: null
+# contract_address: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9'
+# contract_dir: /usr/share/mitra/contracts
+# api_url: 'http://127.0.0.1:8545'
+# signing_key: null
+# chain_sync_step: 1000
+# chain_reorg_max_depth: 10
+
+# IPFS integration
+#ipfs_api_url: 'http://127.0.0.1:5001'
+# IPFS gateway (for clients)
+#ipfs_gateway_url: 'https://ipfs.example.tld'
diff --git a/testing/mitra/init.sql b/testing/mitra/init.sql
new file mode 100644
index 00000000000..be22ea28630
--- /dev/null
+++ b/testing/mitra/init.sql
@@ -0,0 +1,2 @@
+CREATE USER mitra WITH PASSWORD '${psql_password}';
+CREATE DATABASE mitra OWNER mitra ENCODING 'UTF8';
diff --git a/testing/mitra/mitra.initd b/testing/mitra/mitra.initd
new file mode 100644
index 00000000000..c50b06ba5bb
--- /dev/null
+++ b/testing/mitra/mitra.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+
+name=mitra
+description="Mitra is an ActivityPub microblogging platform written in Rust"
+
+: ${cfgfile:="/etc/mitra/config.yaml"}
+export CONFIG_PATH="${cfgfile}"
+
+command="/usr/bin/mitra"
+command_background=true
+command_user="mitra:mitra"
+pidfile="/run/${RC_SVCNAME}.pid"
+directory="/var/lib/mitra"
+error_log="/var/log/mitra.log"
+
+required_files="$cfgfile"
+
+depend() {
+ need localmount net postgresql
+ after firewall
+}
+
+start_pre() {
+ checkpath -f -m 0640 -o "root:mitra" "$cfgfile"
+ checkpath -f -m 0640 -o "$command_user" "$error_log"
+ checkpath -d -m 0750 -o "$command_user" "$directory"
+}
diff --git a/testing/mitra/mitra.post-install b/testing/mitra/mitra.post-install
new file mode 100644
index 00000000000..ab2f6413a95
--- /dev/null
+++ b/testing/mitra/mitra.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+echo "--"
+echo "Create a PostgreSQL user and database using /var/lib/mitra/init.sql."
+echo "Be sure to set the database password in the config at /etc/mitra/config.yaml."
+echo "Then create an admin user with 'mitractl create-user <user> <password> admin'."
+echo "--"
diff --git a/testing/mitra/mitra.pre-install b/testing/mitra/mitra.pre-install
new file mode 100644
index 00000000000..b91fd19ad2e
--- /dev/null
+++ b/testing/mitra/mitra.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S mitra 2>/dev/null
+adduser -S -D -H \
+ -h /var/lib/mitra \
+ -s /sbin/nologin \
+ -G mitra \
+ -g "Mitra microblogging platform" \
+ mitra 2>/dev/null
+
+exit 0
diff --git a/testing/mixxx/APKBUILD b/testing/mixxx/APKBUILD
new file mode 100644
index 00000000000..6da4121366d
--- /dev/null
+++ b/testing/mixxx/APKBUILD
@@ -0,0 +1,72 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=mixxx
+pkgver=2.3.6
+pkgrel=2
+pkgdesc="DJ mixing software"
+url="https://www.mixxx.org/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="qt5-qtbase-sqlite"
+# eudev is used to determine the right location to install a udev file by the build system
+makedepends="
+ chromaprint-dev
+ cmake
+ eudev-dev
+ ffmpeg-dev
+ fftw-dev
+ flac-dev
+ glu-dev
+ hidapi-dev
+ lame-dev
+ libebur128-dev
+ libid3tag-dev
+ libkeyfinder-dev
+ libmad-dev
+ libmodplug-dev
+ libshout-dev
+ libsndfile-dev
+ libusb-dev
+ libvorbis-dev
+ lilv-dev
+ opusfile-dev
+ portaudio-dev
+ portmidi-dev<=200
+ protobuf-dev
+ qt5-qtbase-dev
+ qt5-qtscript-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ qt5-qtx11extras-dev
+ qtkeychain-dev
+ rubberband-dev
+ samurai
+ soundtouch-dev
+ sqlite-dev
+ taglib-dev
+ upower-dev
+ wavpack-dev
+ "
+checkdepends="xvfb-run"
+subpackages="$pkgname-doc"
+source="https://github.com/mixxxdj/mixxx/archive/$pkgver/mixxx-$pkgver.tar.gz"
+install="$pkgname.post-install $pkgname.post-upgrade"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run -a ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a92c2c92dc7619ac135d940f23ffdc101c528eca6322517805afb9eb48a84c6339cefb88b96bdac6ffb23967c2f93f621daf3e98bfecbf7f3fe7626ddcec4398 mixxx-2.3.6.tar.gz
+"
diff --git a/testing/mixxx/mixxx.post-install b/testing/mixxx/mixxx.post-install
new file mode 100644
index 00000000000..ddd8c6460d4
--- /dev/null
+++ b/testing/mixxx/mixxx.post-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+udevadm control --reload-rules
+udevadm trigger
diff --git a/testing/mixxx/mixxx.post-upgrade b/testing/mixxx/mixxx.post-upgrade
new file mode 120000
index 00000000000..24686c1ea8a
--- /dev/null
+++ b/testing/mixxx/mixxx.post-upgrade
@@ -0,0 +1 @@
+mixxx.post-install \ No newline at end of file
diff --git a/testing/mjpg-streamer/APKBUILD b/testing/mjpg-streamer/APKBUILD
new file mode 100644
index 00000000000..51bb4d66478
--- /dev/null
+++ b/testing/mjpg-streamer/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: George Hopkins <george-hopkins@null.net>
+# Maintainer: George Hopkins <george-hopkins@null.net>
+pkgname=mjpg-streamer
+pkgver=0_git20210220
+pkgrel=1
+_commit="310b29f4a94c46652b20c4b7b6e5cf24e532af39"
+pkgdesc="MJPEG streaming application for Linux-UVC compatible webcams"
+url="https://github.com/jacksonliam/mjpg-streamer"
+arch="all"
+license="GPL-2.0-only"
+makedepends="cmake jpeg-dev libgphoto2-dev linux-headers protobuf-c-dev sdl12-compat-dev zeromq-dev"
+options="!check" # no test suite
+source="
+ $pkgname-$_commit.tar.gz::https://github.com/jacksonliam/mjpg-streamer/archive/$_commit.tar.gz
+ version.patch
+ "
+builddir="$srcdir/$pkgname-$_commit/mjpg-streamer-experimental"
+
+case "$CARCH" in
+ armv7|armhf)
+ makedepends="$makedepends raspberrypi-dev"
+ subpackages="$subpackages $pkgname-input-raspicam:raspicam"
+ ;;
+esac
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DGIT_HASH="$_commit" \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+raspicam() {
+ pkgdesc="$pkgdesc (Raspberry Pi camera input)"
+ mkdir -p "$subpkgdir"/usr/lib/mjpg-streamer
+ mv "$pkgdir"/usr/lib/mjpg-streamer/input_raspicam.so "$subpkgdir"/usr/lib/mjpg-streamer/
+}
+
+sha512sums="
+e345390a930f51094760b19eccc0f8867ea0693a887669c230f1e9a9af0d38c745548f80896cb0b57c0741647e90384007fa3abdd6eecf9bed96555ae9465900 mjpg-streamer-310b29f4a94c46652b20c4b7b6e5cf24e532af39.tar.gz
+9939f72c5336b801b3efb1ada353b343ef16050ea4600851b48766bc3365016632d79aeafd6e73422dce5d9836946770ff85dbc347986c9a98e6819e45bbd23b version.patch
+"
diff --git a/testing/mjpg-streamer/version.patch b/testing/mjpg-streamer/version.patch
new file mode 100644
index 00000000000..9330f97a55c
--- /dev/null
+++ b/testing/mjpg-streamer/version.patch
@@ -0,0 +1,21 @@
+--- a/CMakeLists.txt 2021-09-08 07:43:30.622938936 +0200
++++ b/CMakeLists.txt 2021-09-08 07:29:53.172008240 +0200
+@@ -20,17 +20,7 @@ include(mjpg_streamer_utils)
+ #
+ # Get the current git hash
+ #
+-execute_process(
+- COMMAND git rev-parse HEAD
+- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+- RESULT_VARIABLE GIT_RESULT
+- OUTPUT_VARIABLE GIT_HASH
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+-)
+-
+-if(GIT_RESULT EQUAL 0)
+- add_definitions("-DGIT_HASH=\"${GIT_HASH}\"")
+-endif()
++add_definitions("-DGIT_HASH=\"${GIT_HASH}\"")
+
+ #
+ # Options
diff --git a/testing/mkcert/APKBUILD b/testing/mkcert/APKBUILD
new file mode 100644
index 00000000000..2650a0a0c19
--- /dev/null
+++ b/testing/mkcert/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=mkcert
+pkgver=1.4.4
+pkgrel=11
+pkgdesc="simple zero-config tool to make locally trusted development certificates with any names you'd like"
+url="https://mkcert.dev/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="go nss-tools"
+options="chmod-clean"
+source="$pkgname-$pkgver.tar.gz::https://github.com/FiloSottile/mkcert/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go generate
+ go build -ldflags "-X main.Version=$pkgver" -v
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+480672618df409f153535f42ed4777447635b2ac78e38d9cc62aa9baa47b074aa01fa94ade4666f9ad31bf870caec53e5f0de69791c5e094a911d59f82382b05 mkcert-1.4.4.tar.gz
+"
diff --git a/testing/mkdocs-bootstrap/APKBUILD b/testing/mkdocs-bootstrap/APKBUILD
new file mode 100644
index 00000000000..152beca0d7a
--- /dev/null
+++ b/testing/mkdocs-bootstrap/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-bootstrap
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="bootstrap theme for mkdocs"
+url="http://mkdocs.github.io/mkdocs-bootstrap"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-bootstrap/mkdocs-bootstrap-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+590b6ab2b449c65e26a90a76cae2b10d3a6681c99b33c0ff91c48ca3e2e90c2c4cf3cb0588d9c13775568b084bec56862dc212e9b30bd081e78e4ff3da2c8cbe mkdocs-bootstrap-1.1.1.tar.gz
+"
diff --git a/testing/mkdocs-bootstrap386/APKBUILD b/testing/mkdocs-bootstrap386/APKBUILD
new file mode 100644
index 00000000000..084186a895f
--- /dev/null
+++ b/testing/mkdocs-bootstrap386/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-bootstrap386
+pkgver=0.0.2
+pkgrel=4
+pkgdesc="a vintage 1980s DOS inspired Twitter Bootstrap theme for mkdocs"
+url="https://github.com/chrissimpkins/bootstrap386"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-bootstrap386/mkdocs-bootstrap386-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+e183546242ba25f0a3d205628184eb02ca4f64666922a0f1e2ee978120f262437c9f587a733880afb90e01f586541cbf05c136eb71e4e78a7920a76090d682ff mkdocs-bootstrap386-0.0.2.tar.gz
+"
diff --git a/testing/mkdocs-bootstrap4/APKBUILD b/testing/mkdocs-bootstrap4/APKBUILD
new file mode 100644
index 00000000000..5aab0d37e57
--- /dev/null
+++ b/testing/mkdocs-bootstrap4/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-bootstrap4
+pkgver=0.1.5
+pkgrel=4
+pkgdesc="bootstrap4 theme for mkdocs"
+url="https://github.com/byrnereese/mkdocs-bootstrap4"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-bootstrap4/mkdocs-bootstrap4-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+a380ac24bd7dbf64344a78d4a897c5e77967a2f8a886d1f22ec343dc51ef99476fd2ad950526903cd9049a16691c7522f507571bb742cf4a17e4bd727d9523e5 mkdocs-bootstrap4-0.1.5.tar.gz
+"
diff --git a/testing/mkdocs-bootswatch/APKBUILD b/testing/mkdocs-bootswatch/APKBUILD
new file mode 100644
index 00000000000..619d872bdfc
--- /dev/null
+++ b/testing/mkdocs-bootswatch/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-bootswatch
+pkgver=1.1
+pkgrel=4
+pkgdesc="bootswatch themes for mkdocs"
+url="http://mkdocs.org"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-bootswatch/mkdocs-bootswatch-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0bf2ce1787438d76bc0ccbabac6e192bcb3f596f33b0637928de3457395ad88193df51ba0f720d736d74418c8725dcfb58a717b577f752d45c70320f7a10592a mkdocs-bootswatch-1.1.tar.gz
+"
diff --git a/testing/mkdocs-cinder/APKBUILD b/testing/mkdocs-cinder/APKBUILD
new file mode 100644
index 00000000000..cc43b24463c
--- /dev/null
+++ b/testing/mkdocs-cinder/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-cinder
+pkgver=1.2.0
+pkgrel=4
+pkgdesc="clean responsive theme for mkdocs"
+url="https://github.com/chrissimpkins/cinder"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-cinder/mkdocs-cinder-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+29bfabab23980c2595a182618b21530d50a3b6bf0cb4a08e63888a0ce372e897c3752c8778b92f31c4ed5f71214021311817f9d1718e0984660f9717a8a432a2 mkdocs-cinder-1.2.0.tar.gz
+"
diff --git a/testing/mkdocs-cluster/APKBUILD b/testing/mkdocs-cluster/APKBUILD
new file mode 100644
index 00000000000..cb8ed57a739
--- /dev/null
+++ b/testing/mkdocs-cluster/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-cluster
+pkgver=0.0.9
+pkgrel=4
+pkgdesc="another bootstrap theme for mkdocs"
+url="https://gitlab.com/kaliko/mkdocs-cluster"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-cluster/mkdocs-cluster-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0cbdf0fb96b1de85bb0474a607ca9a1242debdea977e1a2376bdb6566e746263df646b3a9e0f6da8465b760954649e87295c0a8e2b83b22b0cb2aa75e8fc6737 mkdocs-cluster-0.0.9.tar.gz
+"
diff --git a/testing/mkdocs-gitbook/APKBUILD b/testing/mkdocs-gitbook/APKBUILD
new file mode 100644
index 00000000000..15d2d8011e2
--- /dev/null
+++ b/testing/mkdocs-gitbook/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-gitbook
+pkgver=0.0.1
+pkgrel=4
+pkgdesc="GitBook theme for mkdocs"
+url="https://gitlab.com/lramage/mkdocs-gitbook-theme"
+arch="noarch"
+license="Apache-2.0"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-gitbook/mkdocs-gitbook-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+2cc5b23f83fa27157d0a5f9bc788a3bdd351cb60cbe6cd5d4f76c54483e8805ad225879c026e5a0de72485446ca6a7b49277087cfb56e9abe983eb086de85b83 mkdocs-gitbook-0.0.1.tar.gz
+"
diff --git a/testing/mkdocs-ivory/APKBUILD b/testing/mkdocs-ivory/APKBUILD
new file mode 100644
index 00000000000..c8632955a27
--- /dev/null
+++ b/testing/mkdocs-ivory/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-ivory
+pkgver=0.4.6
+pkgrel=4
+pkgdesc="ivory theme for MkDocs"
+url="https://github.com/daizutabi/mkdocs-ivory"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-ivory/mkdocs-ivory-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+5c28eef636f182db3ec2a0e5b11688767018705a83dcc00699231c625c63b53f05a23cb479b1137c341cebe8bea8bb52662d484cfb5f635c5471df4ffee5b1e0 mkdocs-ivory-0.4.6.tar.gz
+"
diff --git a/testing/mkdocs-rtd-dropdown/APKBUILD b/testing/mkdocs-rtd-dropdown/APKBUILD
new file mode 100644
index 00000000000..fefcea2a171
--- /dev/null
+++ b/testing/mkdocs-rtd-dropdown/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-rtd-dropdown
+pkgver=1.0.2
+pkgrel=4
+pkgdesc="clone of read the docs theme for markdown"
+url="https://github.com/cjsheets/mkdocs-rtd-dropdown"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/mkdocs-rtd-dropdown/mkdocs-rtd-dropdown-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+1354231909a99dd457a2ff493b84c7ee16b7ac183ff8503a441de56e0c08fa6cc9dc3c38483c79ae1570fe7666ef362784d562ffc63f2c65fe2fd9f9e48fdaf8 mkdocs-rtd-dropdown-1.0.2.tar.gz
+"
diff --git a/testing/mkdocs-windmill/APKBUILD b/testing/mkdocs-windmill/APKBUILD
new file mode 100644
index 00000000000..cfc9f8b6edb
--- /dev/null
+++ b/testing/mkdocs-windmill/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=mkdocs-windmill
+pkgver=1.0.5
+pkgrel=3
+pkgdesc="MkDocs theme focused on navigation and usability"
+url="https://github.com/gristlabs/mkdocs-windmill"
+arch="noarch"
+license="MIT"
+depends="python3 mkdocs"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/$pkgname/$pkgname-$pkgver.tar.gz"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+32093a10e1ef1eddba6de031556bcf53f7b8bb9ef911a5bde4b89aecb4733a1ec35cf9ec3d99b98b678b4d22f8958ef6da4e36b1fcac04fdf3cdc1a9a71766f0 mkdocs-windmill-1.0.5.tar.gz
+"
diff --git a/testing/mkg3a/APKBUILD b/testing/mkg3a/APKBUILD
new file mode 100644
index 00000000000..b41ba76cc12
--- /dev/null
+++ b/testing/mkg3a/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: KikooDX <kikoodx@paranoici.org>
+# Maintainer: KikooDX <kikoodx@paranoici.org>
+pkgname=mkg3a
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="utility for creating Casio Prizm add-on (.g3a) files"
+url="https://gitlab.com/taricorp/mkg3a"
+arch="all"
+license="Zlib"
+makedepends="libpng-dev cmake"
+subpackages="$pkgname-doc"
+options="!check" # there is no test suite
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/taricorp/mkg3a/-/archive/$pkgver/mkg3a-$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+ -DCMAKE_C_FLAGS="$CFLAGS" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="a65f58e3691892473d3a56c6f56155dafe37bfc5e31a112978ed1c0c82f60d67715949a807cb5a8beb8d3441501c20c6ff2432e0c12270900f2fe343baf31fe8 mkg3a-0.5.0.tar.gz"
diff --git a/testing/mkmr/APKBUILD b/testing/mkmr/APKBUILD
deleted file mode 100644
index 4a91b848996..00000000000
--- a/testing/mkmr/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
-pkgname=mkmr
-pkgver=0.0.16
-pkgrel=0
-pkgdesc="Make merge requests in any GitLab repo conveniently"
-options="!check" # No testsuite
-url="https://github.com/maxice8/mkmr"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="
- python3
- py3-setuptools
- py3-gitlab
- py3-gitpython
- py3-python-editor
- py3-inquirer
- py3-giturlparse
- "
-makedepends="scdoc"
-subpackages="$pkgname-doc"
-source="https://files.pythonhosted.org/packages/source/m/mkmr/mkmr-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- # Flit is dumb, use setuptools instead of distutilsc.core
- sed -i 's|distutils.core|setuptools|' setup.py
-}
-
-build() {
- python3 setup.py build
-
- for d in docs/*; do
- scdoc < $d > ${d%.scd}
- done
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- mkdir -p "$pkgdir"/usr/share/man/man1
- mv docs/*.1 "$pkgdir"/usr/share/man/man1
-}
-sha512sums="bcf287d058253b493b9048727287641e94bb3e9c2085659aa61a6f84a62c93fd2159aa1fa9a2d6b8d32abf9e4de0dd942388127cbae7a55c3c0f279f370ed07d mkmr-0.0.16.tar.gz"
diff --git a/testing/mkrundir/APKBUILD b/testing/mkrundir/APKBUILD
new file mode 100644
index 00000000000..f54b53b3d7e
--- /dev/null
+++ b/testing/mkrundir/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=mkrundir
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="Create an XDG_RUNTIME_DIR"
+url="https://sr.ht/~whynothugo/mkrundir/"
+arch="x86_64 aarch64 riscv64" # Hare
+license="ISC"
+makedepends="hare libcap-setcap"
+source="
+ mkrundir-$pkgver.tar.gz::https://git.sr.ht/~whynothugo/mkrundir/archive/v$pkgver.tar.gz
+"
+options="!check setcap"
+builddir="$srcdir/mkrundir-v$pkgver/"
+
+build() {
+ make PREFIX=/usr mkrundir
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+586dcfcd39a953cd012b44f63b7f6a513a1f020d13b8e42e3bfde994a1b595ae82fd6f16ecf1867262b51a4adef2a5ae28f8990126fcb3d77931d973f62a3a68 mkrundir-0.3.1.tar.gz
+"
diff --git a/testing/mktorrent-borg/APKBUILD b/testing/mktorrent-borg/APKBUILD
index 461b6dba16c..7fdeefa3b79 100644
--- a/testing/mktorrent-borg/APKBUILD
+++ b/testing/mktorrent-borg/APKBUILD
@@ -1,32 +1,31 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=mktorrent-borg
pkgver=0.9.9
-pkgrel=0
+pkgrel=1
pkgdesc="A handy tool for creating .torrent files"
url="http://borg.uu3.net/~borg/"
arch="all"
license="BSD-3-Clause"
-makedepends="openssl-dev"
+makedepends="openssl-dev>3"
subpackages="$pkgname-doc"
-source="ftp://borg.uu3.net/pub/unix/mktorrent/mktorrent-${pkgver}.tgz"
+source="http://borg.uu3.net/ftp/pub/unix/mktorrent/mktorrent-$pkgver.tgz"
builddir="$srcdir/${pkgname/-borg/}"
build() {
- cd "$builddir"
make
}
check() {
- cd "$builddir"
./mktorrent --help > /dev/null
}
package() {
- cd "$builddir"
- install -D -m755 mktorrent $pkgdir/usr/bin/$pkgname
- install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -D -m755 mktorrent $pkgdir/usr/bin/mktorrent
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/mktorrent/LICENSE
}
-sha512sums="ff702383c99d5c80b4433fb279968e1f19c6315216a2b74064ba57240ecd990b674195c035278c7e54801b77ab76fbb94667d8d7938d5ce2348faf015de27c5f mktorrent-0.9.9.tgz"
+sha512sums="
+ff702383c99d5c80b4433fb279968e1f19c6315216a2b74064ba57240ecd990b674195c035278c7e54801b77ab76fbb94667d8d7938d5ce2348faf015de27c5f mktorrent-0.9.9.tgz
+"
diff --git a/testing/mle/APKBUILD b/testing/mle/APKBUILD
deleted file mode 100644
index 914c6e7b377..00000000000
--- a/testing/mle/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Adam Saponara <as@php.net>
-# Maintainer: Adam Saponara <as@php.net>
-pkgname=mle
-pkgver=1.4.3
-pkgrel=0
-pkgdesc="Flexible terminal-based text editor"
-url="https://github.com/adsr/mle"
-arch="all"
-license="Apache-2.0"
-makedepends="uthash-dev termbox-dev lua5.3-dev pcre-dev"
-checkdepends="bash grep"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/adsr/mle/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- sed -i 's/-llua5.3/-llua/g' Makefile
-}
-
-build() {
- export CFLAGS="$CFLAGS -I/usr/include/lua5.3"
- export LDFLAGS="$LDFLAGS -L/usr/lib/lua5.3"
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" prefix=/usr install
- install -d "$pkgdir/usr/share/man/man1"
- install -m644 mle.1 "$pkgdir"/usr/share/man/man1/
-}
-
-sha512sums="014a8834a088f410a9ef5cd213140f1e4386726bd277f5fdffdfff8165cd1460ede54d5cb62a26bdef804391a524d398a439977b8f82add3d365936a3c5505ab mle-1.4.3.tar.gz"
diff --git a/testing/mlite/APKBUILD b/testing/mlite/APKBUILD
deleted file mode 100644
index 56bbd90bb93..00000000000
--- a/testing/mlite/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mlite
-pkgver=0.2.28
-pkgrel=0
-pkgdesc="Useful classes originating from MeeGo Touch"
-url="https://git.sailfishos.org/mer-core/mlite"
-arch="all"
-license="LGPL-2.1-only"
-depends_dev="dconf-dev"
-makedepends="$depends_dev qt5-qtbase-dev qt5-qttools-dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/mlite/-/archive/$pkgver/mlite-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- rm -r "$pkgdir/opt"
-}
-
-sha512sums="a42fdf5d84cdaea75b660a9415c0b0ff4728fe3b16d7b5ccef0cb78c1c9c02a96c8a6c6c0fefdb4854190c538bfadddb017b6e2dc5fa376a95426b34fd9fbb82 mlite-0.2.28.tar.gz"
diff --git a/testing/mlxl/APKBUILD b/testing/mlxl/APKBUILD
new file mode 100644
index 00000000000..d9e61f66e1c
--- /dev/null
+++ b/testing/mlxl/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Miles Alan <m@milesalan.com>
+pkgname=mlxl
+pkgver=0.1
+pkgrel=0
+pkgdesc="Mobile Linux X Lock"
+url="https://git.sr.ht/~mil/mlxl"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="libx11-dev"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~mil/mlxl/archive/$pkgver.tar.gz
+ flags.patch
+ "
+# No test suite.
+# suid locker
+options="suid !check"
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b6fc13d8cdcda18206e50c5606932a076ac270bb525da1364c637e6b89be2e62c58e3fe77aaed5e1e3656a991ddb0e6de0be623e70170afac6f264a53398cc1f mlxl-0.1.tar.gz
+01418e757936a1693b42d576d563dffb4fc8751b7d787945feb3cb0c9fdf3056061844841c5a3ed636b075f1c707529d5a17a48071e423c76702d20082d025a9 flags.patch
+"
diff --git a/testing/mlxl/flags.patch b/testing/mlxl/flags.patch
new file mode 100644
index 00000000000..7c19464e947
--- /dev/null
+++ b/testing/mlxl/flags.patch
@@ -0,0 +1,11 @@
+diff --git a/Makefile b/Makefile
+index d468630..c2ccfd4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,5 +1,5 @@
+ mlxl:
+- gcc -o mlxl mlxl.c -lX11
++ gcc $(CFLAGS) $(LDFLAGS) -o mlxl mlxl.c -lX11
+ chmod u+s mlxl
+
+ clean:
diff --git a/testing/mm-common/APKBUILD b/testing/mm-common/APKBUILD
new file mode 100644
index 00000000000..c10137f8970
--- /dev/null
+++ b/testing/mm-common/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=mm-common
+pkgver=1.0.5
+pkgrel=0
+arch="noarch"
+pkgdesc="Build infrastructure and utilities for GNOME C++ binding libraries"
+options="!check" # No test suite
+url="https://gitlab.gnome.org/GNOME/mm-common"
+license="GPL-2.0-or-later"
+depends="
+ gtkmm3-dev
+ glibmm-dev
+ "
+makedepends="meson"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver-2.tar.xz::https://download.gnome.org/sources/mm-common/${pkgver%.*}/mm-common-$pkgver.tar.xz"
+
+build() {
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+bf681b4d63d5bf531a9315b0c8841e3815af276828d1828a3eb04dcb805cbbfbaac182f79f5e48688a7eef8666975b9079144e320093e4ee3addff48813e61ad mm-common-1.0.5-2.tar.xz
+"
diff --git a/testing/mm/APKBUILD b/testing/mm/APKBUILD
index aa6af1e4eac..d87d4363053 100644
--- a/testing/mm/APKBUILD
+++ b/testing/mm/APKBUILD
@@ -1,4 +1,3 @@
-# Contributor:
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=mm
diff --git a/testing/mmc-utils/APKBUILD b/testing/mmc-utils/APKBUILD
deleted file mode 100644
index d5a35886c84..00000000000
--- a/testing/mmc-utils/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Olliver Schinagl <oliver@schinagl.nl>
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-pkgname=mmc-utils
-pkgver="4.3.0_git20181024"
-pkgrel=1
-pkgdesc="Configure MMC storage devices from userspace."
-url="https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git"
-arch="all"
-license="GPL-2.0"
-depends=""
-makedepends="linux-headers"
-options="!check" # No checks available
-subpackages="${pkgname}-doc"
-_githash="aef913e31b659462fe6b9320d241676cba97f67b"
-source="https://git.kernel.org/pub/scm/linux/kernel/git/cjb/${pkgname}.git/snapshot/${pkgname}-${_githash}.tar.gz"
-builddir="${srcdir}/${pkgname}-${_githash}"
-
-build()
-{
- make
-}
-
-package()
-{
- make DESTDIR="${pkgdir}" prefix="/usr" install install-man
- gzip -c "man/mmc.1" > "mmc.1.gz" && \
- install -D -m 644 "mmc.1.gz" "${pkgdir}/usr/share/man/man1/mmc.1.gz"
-}
-
-sha512sums="afadc665f1c181d4ae2fd5e1e1fc0b05f79a0de039d04ee8db333254aafd7b90edc49accb54d8d7e29a2e541fce34037f83449f91a7b2ebbd2f28e415d9904fd mmc-utils-aef913e31b659462fe6b9320d241676cba97f67b.tar.gz"
diff --git a/testing/mmix/APKBUILD b/testing/mmix/APKBUILD
new file mode 100644
index 00000000000..d0eacf1296a
--- /dev/null
+++ b/testing/mmix/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=mmix
+pkgver=0_git20221025
+pkgrel=0
+pkgdesc="Assembler and instruction level simulator for the MMIX platform"
+url="http://www.mmix.cs.hm.edu/exe/index.html"
+# ppc64le, s390x and riscv64 blocked by texlive
+arch="all !ppc64le !s390x !riscv64"
+license="custom"
+makedepends="texlive" # ctangle is needed to compile .w files
+_commit=013719105c56e0205e003f7f6ae5c3e1314da6bc
+source="$pkgname-$pkgver.tar.bz2::https://gitlab.lrz.de/mmix/mmixware/-/archive/$_commit/mmixware-$_commit.tar.bz2"
+builddir="$srcdir/mmixware-$_commit"
+options="!check" # contains no unit test suite
+
+build() {
+ # parallel build is broken. Luckily, this is quick to compile anyway
+ make all -j1
+}
+
+package() {
+ mkdir -p "$pkgdir/usr/bin"
+ install -Dm 755 mmix mmixal mmotype mmmix -t "$pkgdir/usr/bin"
+ install -Dm 644 -t "$pkgdir"/usr/share/licenses/$pkgname/ boilerplate.w
+}
+
+sha512sums="
+279e75ec798f0b168dc002accfc449d222def43b5f580d5d69bb0156f7f11613a880dc68eac554c4813708db5efd92fe70f6e0e7bdf3864eb69060f843a968e7 mmix-0_git20221025.tar.bz2
+"
diff --git a/testing/mml/APKBUILD b/testing/mml/APKBUILD
new file mode 100644
index 00000000000..0a8e3bcd56d
--- /dev/null
+++ b/testing/mml/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=mml
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Command line tool for MIME message Meta Language"
+url="https://github.com/soywod/mml"
+# s390x: nix/libc crate
+# riscv64: ftbfs, segfault
+arch="all !s390x !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="shotman-$pkgver.tar.gz::https://github.com/soywod/mml/archive/refs/tags/v$pkgver.tar.gz"
+options="net" # fetch dependencies
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+ ./target/release/mml completion bash > $pkgname.bash
+ ./target/release/mml completion fish > $pkgname.fish
+ ./target/release/mml completion zsh > $pkgname.zsh
+ ./target/release/mml man ./
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 0755 target/release/$pkgname "$pkgdir/usr/bin/$pkgname"
+
+ install -Dm644 $pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+
+ install -Dm 0644 mml-compile.1 "$pkgdir/usr/share/man/man1/mml-compile.1"
+ install -Dm 0644 mml-completion.1 "$pkgdir/usr/share/man/man1/mml-completion.1"
+ install -Dm 0644 mml-interpret.1 "$pkgdir/usr/share/man/man1/mml-interpret.1"
+ install -Dm 0644 mml-man.1 "$pkgdir/usr/share/man/man1/mml-man.1"
+ install -Dm 0644 mml.1 "$pkgdir/usr/share/man/man1/mml.1"
+}
+
+sha512sums="
+2e164288c7e9de283427cf4d80f234b1db3d9eb252e2cfbf87b5a2e81148f2d7ad473242cea7afe2ea9cc11447de08c824e8dd72faf63fe537225f9b5de8e6f8 shotman-1.0.0.tar.gz
+"
diff --git a/testing/mmtc/APKBUILD b/testing/mmtc/APKBUILD
new file mode 100644
index 00000000000..399ca01113f
--- /dev/null
+++ b/testing/mmtc/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mmtc
+pkgver=0.3.2
+pkgrel=0
+pkgdesc="Minimal mpd terminal client that aims to be simple yet highly configurable"
+url="https://github.com/figsoda/mmtc"
+arch="all"
+license="MPL-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/figsoda/mmtc/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/mmtc "$pkgdir"/usr/bin/mmtc
+}
+
+sha512sums="
+0a5c7f362b74004788dc2764fcd93508c521baa6543bb5583b200fe03c03b820f3817dd437deee7df4e3ff0dc2f93ba18861f535db4b59da8cc855ab6ee503b2 mmtc-0.3.2.tar.gz
+"
diff --git a/testing/mnamer/APKBUILD b/testing/mnamer/APKBUILD
new file mode 100644
index 00000000000..d3df2c8e328
--- /dev/null
+++ b/testing/mnamer/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Philipp Glaum <p@pglaum.de>
+# Maintainer: Philipp Glaum <p@pglaum.de>
+pkgname=mnamer
+_pkgname=mnamer
+pkgver=2.5.5
+pkgrel=1
+pkgdesc="media file organiser"
+options="!check" # No testsuite
+url="https://pypi.org/project/mnamer/"
+arch="noarch"
+license="MIT"
+depends="py3-appdirs py3-guessit py3-requests py3-requests-cache py3-teletype"
+makedepends="py3-setuptools py3-gpep517 py3-installer py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f5d197c57c76474f0b4ae07a39333bc0ebbd5dec858593b602e9b19b7a7bfb64e4b04cf2a98197fecf0a3c1f49b55214e72c67dc3250200acf737cb626c2a980 mnamer-2.5.5.tar.gz
+"
diff --git a/testing/mnemosyne/APKBUILD b/testing/mnemosyne/APKBUILD
new file mode 100644
index 00000000000..055327cf09b
--- /dev/null
+++ b/testing/mnemosyne/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=mnemosyne
+pkgver=2.10.1
+pkgrel=1
+pkgdesc="Flash-card tool with a sophisticated card review algorithm"
+url="https://mnemosyne-proj.org"
+# py3-pyqt6-webengine
+arch="x86_64 aarch64"
+license="GPL-3.0 AND AGPL-3.0-or-later"
+depends="
+ py3-argon2-cffi
+ py3-cherrypy
+ py3-google-trans-new
+ py3-gtts
+ py3-matplotlib
+ py3-pillow
+ py3-pyqt6-webengine
+ py3-qt6
+ py3-urllib3
+ py3-webob
+ python3
+ qt6-qtbase-sqlite
+ "
+makedepends="
+ py3-setuptools
+ "
+subpackages="$pkgname-lang $pkgname-pyc"
+source="https://downloads.sourceforge.net/mnemosyne-proj/Mnemosyne-$pkgver.tar.gz
+ fix-loading-icons.patch
+ "
+builddir="$srcdir/Mnemosyne-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ mkdir -p "$pkgdir"/usr/share/mnemosyne
+ mv "$pkgdir"/usr/pixmaps "$pkgdir"/usr/share/mnemosyne/
+}
+
+sha512sums="
+84b33186c20c1741c2ce305ec8f49eae5bca9a5f519f68bbbc8d5a7d60b0bee927b20c8682bfe309f00269e89364e0fc64a0c2edae880f8ef991123918c40475 Mnemosyne-2.10.1.tar.gz
+62d57b6aaec59c011cc1fa0706e2e3adfc460d431e49f597b13a21f584490188c46daff798917c3fd889c235a5f181bc607f2b9362e80a76c25d25078b760dd1 fix-loading-icons.patch
+"
diff --git a/testing/mnemosyne/fix-loading-icons.patch b/testing/mnemosyne/fix-loading-icons.patch
new file mode 100644
index 00000000000..16d51fa40a9
--- /dev/null
+++ b/testing/mnemosyne/fix-loading-icons.patch
@@ -0,0 +1,76 @@
+Patch-Source: https://github.com/mnemosyne-proj/mnemosyne/commit/3c596c439feb7b3ed449100000de20dc87a35b6f
+also manually patched for pixmaps dir
+--
+From 3c596c439feb7b3ed449100000de20dc87a35b6f Mon Sep 17 00:00:00 2001
+From: Vlad <itraveller@mail.ru>
+Date: Sun, 26 Feb 2023 21:21:58 +0300
+Subject: [PATCH] Fix a bug causing the app to not find its icons.
+
+The reason for the problem is that the icon paths were not tied to the script, but to the current working directory.
+
+Fix #234
+---
+ mnemosyne/pyqt_ui/about_dlg.py | 2 +-
+ mnemosyne/pyqt_ui/getting_started_dlg.py | 2 +-
+ mnemosyne/pyqt_ui/main_wdgt.ui | 24 ++++++++++++------------
+ mnemosyne/pyqt_ui/mnemosyne | 7 ++-----
+ mnemosyne/pyqt_ui/tip_dlg.py | 2 +-
+ 5 files changed, 17 insertions(+), 20 deletions(-)
+
+diff --git a/mnemosyne/pyqt_ui/about_dlg.py b/mnemosyne/pyqt_ui/about_dlg.py
+index 0d5926db..3b6a78eb 100755
+--- a/mnemosyne/pyqt_ui/about_dlg.py
++++ b/mnemosyne/pyqt_ui/about_dlg.py
+@@ -22,7 +22,7 @@ def __init__(self, **kwds):
+ # Note: the svg file does not seem to work under windows.
+ #watermark = QtGui.QPixmap("pixmaps/mnemosyne.svg").\
+ # scaledToHeight(200, QtCore.Qt.TransformationMode.SmoothTransformation)
+- watermark = QtGui.QPixmap("pixmaps/mnemosyne.png")
++ watermark = QtGui.QPixmap("icons:mnemosyne.png")
+ self.watermark.setPixmap(watermark)
+ self.about_label.setText("<b>" + _("Mnemosyne") + " " + version + "</b><br><br>" + \
+ _("Main author: Peter Bienstman") + "<br><br>" + \
+diff --git a/mnemosyne/pyqt_ui/getting_started_dlg.py b/mnemosyne/pyqt_ui/getting_started_dlg.py
+index f125fb66..69edae43 100755
+--- a/mnemosyne/pyqt_ui/getting_started_dlg.py
++++ b/mnemosyne/pyqt_ui/getting_started_dlg.py
+@@ -20,7 +20,7 @@ def __init__(self, **kwds):
+ # Note: the svg file does not seem to work under windows.
+ #watermark = QtGui.QPixmap("pixmaps/mnemosyne.svg")\
+ # .scaledToHeight(200, QtCore.Qt.TransformationMode.SmoothTransformation)
+- watermark = QtGui.QPixmap("pixmaps/mnemosyne.png")
++ watermark = QtGui.QPixmap("icons:mnemosyne.png")
+ self.setPixmap(QtWidgets.QWizard.WizardPixmap.WatermarkPixmap, watermark)
+
+ def activate(self):
+diff --git a/mnemosyne/pyqt_ui/mnemosyne b/mnemosyne/pyqt_ui/mnemosyne
+index 73660586..603cd457 100755
+--- a/mnemosyne/pyqt_ui/mnemosyne
++++ b/mnemosyne/pyqt_ui/mnemosyne
+@@ -203,11 +203,8 @@ font-size: 12px;
+ }"""
+ a.setStyleSheet(stylesheet)
+
+-# FIXME: install in the system Python does not really work unless
+-# you copy 'pixmaps' to 'C:\Program Files\Python311'
+-# The statement below don't help.
+-QtGui.QIcon.setFallbackSearchPaths(["C:/Program Files (x86)/Mnemosyne",
+-"C:/Program Files/Python311/Lib/site-packages/Mnemosyne-2.10-py3.11.egg"])
++pixmaps_dir = '/usr/share/mnemosyne/pixmaps'
++QtCore.QDir.addSearchPath('icons', pixmaps_dir)
+
+ # Add other components we need. The translator should come first.
+ # The UI components should come in the order they should be instantiated,
+diff --git a/mnemosyne/pyqt_ui/tip_dlg.py b/mnemosyne/pyqt_ui/tip_dlg.py
+index ae12c25d..9eb891a5 100755
+--- a/mnemosyne/pyqt_ui/tip_dlg.py
++++ b/mnemosyne/pyqt_ui/tip_dlg.py
+@@ -71,7 +71,7 @@ def __init__(self, **kwds):
+ # Note: the svg file does not seem to work under windows.
+ #watermark = QtGui.QPixmap("pixmaps/mnemosyne.svg").\
+ # scaledToHeight(200, QtCore.Qt.TransformationMode.SmoothTransformation)
+- watermark = QtGui.QPixmap("pixmaps/mnemosyne.png")
++ watermark = QtGui.QPixmap("icons:mnemosyne.png")
+ self.watermark.setPixmap(watermark)
+ self.update_dialog()
+
diff --git a/testing/moarvm/APKBUILD b/testing/moarvm/APKBUILD
deleted file mode 100644
index 5ce7d55f2c8..00000000000
--- a/testing/moarvm/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Curt Tilmes <Curt.Tilmes@nasa.gov>
-# Maintainer: Curt Tilmes <Curt.Tilmes@nasa.gov>
-pkgname=moarvm
-pkgver=2020.05
-pkgrel=0
-pkgdesc="A VM with adaptive optimization and JIT compilation, built for Rakudo"
-url="http://moarvm.org/"
-arch="all"
-license="Artistic-2.0"
-makedepends="perl libffi-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://moarvm.org/releases/MoarVM-$pkgver.tar.gz"
-builddir="$srcdir"/MoarVM-"$pkgver"
-options="!check" # No tests
-
-build() {
- unset CPPFLAGS CFLAGS
- perl Configure.pl --prefix=/usr --has-libffi
- make
-}
-
-package() {
- install -Dm755 moar "$pkgdir"/usr/bin/moar
- install -Dm755 libmoar.so "$pkgdir"/usr/lib/libmoar.so
-}
-
-dev() {
- cd "$builddir"
- make DESTDIR="$builddir"/install install
- mkdir -p "$subpkgdir"/usr/share
- cp -r install/usr/include "$subpkgdir"/usr
- cp -r install/usr/share/nqp "$subpkgdir"/usr/share
- install -Dm644 install/usr/share/pkgconfig/moar.pc "$subpkgdir"/usr/lib/pkgconfig/moar.pc
-}
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"
- for file in Artistic2.txt CREDITS LICENSE MANIFEST README.markdown VERSION docs; do
- cp -r $file "$subpkgdir"/usr/share/doc/"$pkgname"
- done
-}
-
-sha512sums="10dd2bb8c629ac4d7804a8e64f8883617545930520c61ff34b62b29b81f827c425004bb07c8978df9620da446fa204ccb3b5c8889651e243a1fe4da28350ab66 MoarVM-2020.05.tar.gz"
diff --git a/testing/mobpass/APKBUILD b/testing/mobpass/APKBUILD
index 41d2ae87f9e..37e79be1654 100644
--- a/testing/mobpass/APKBUILD
+++ b/testing/mobpass/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Anjandev Momi <anjan@momi.ca>
pkgname=mobpass
pkgver=0.2
-pkgrel=0
+pkgrel=5
pkgdesc="A mobile interface for gopass"
url="https://git.sr.ht/~anjan/mobpass"
-arch="noarch !mips64 !armhf" # missing dependencies
+arch="noarch !armhf" # missing dependencies
options="!check" # No test suite
license="GPL-3.0-or-later"
depends="python3 py3-qt5 qt5-qtquickcontrols qt5-qtquickcontrols2 gopass py3-fuzzyfinder"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~anjan/mobpass/archive/v$pkgver.tar.gz"
builddir="$srcdir/"$pkgname-v$pkgver
@@ -18,8 +19,8 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
install -Dm644 mobpass.desktop "$pkgdir"/usr/share/applications/mobpass.desktop
}
-sha512sums="b04e40907f02e6459987eca4ea582dd17da34599a62b064547fecc1cc58d007b69d68c751b650005393b301ed7bf9ed79e84a0ec53ecfdc1541400fcdf70ce05 mobpass-0.2.tar.gz"
+sha512sums="4e302df637eece3da35014177b99d2e1b49247d573fd302b4defad6e80da1136761d00d48ab93f7f5ed06efc727d194ad1b253a7d09576010b8e6e9451355186 mobpass-0.2.tar.gz"
diff --git a/testing/modem-manager-gui/APKBUILD b/testing/modem-manager-gui/APKBUILD
new file mode 100644
index 00000000000..39b89512f5d
--- /dev/null
+++ b/testing/modem-manager-gui/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=modem-manager-gui
+pkgver=0.0.20
+pkgrel=0
+pkgdesc="GUI front-end for ModemManager / Wader / oFono"
+url="https://linuxonly.ru/page/modem-manager-gui"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="po4a itstool gdbm-dev gtk+3.0-dev gtkspell3-dev libnotify-dev"
+options="!check" # no test suite
+subpackages="$pkgname-doc $pkgname-lang"
+source="
+ https://download.tuxfamily.org/gsf/source/modem-manager-gui-$pkgver.tar.gz
+ musl-compatibility.patch
+ "
+builddir="$srcdir/$pkgname"
+
+build() {
+ # Custom configure script
+ # It does not include GNU Autoconf's build/host similar options
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6802415e14b758642e8827c70ad92cf6ce5ffe0ed80c55c4765ef66b15a8047ca8a510eefcc7f040fcd59eb7890ce7ed94731d6f8abd110280c8a997dde977d1 modem-manager-gui-0.0.20.tar.gz
+9bb107fe3084eb7e533b8c0eecd83612ef7da1bff2b8113fe4953bc85c4f699799a0a75afbdff36750e994f32d99825b044d3ea1c5d55efb4f1c295a26bd0aea musl-compatibility.patch
+"
diff --git a/testing/modem-manager-gui/musl-compatibility.patch b/testing/modem-manager-gui/musl-compatibility.patch
new file mode 100644
index 00000000000..0d6532a856b
--- /dev/null
+++ b/testing/modem-manager-gui/musl-compatibility.patch
@@ -0,0 +1,15 @@
+--- a/src/connection-editor-window.c
++++ b/src/connection-editor-window.c
+@@ -1122,9 +1122,9 @@
+ /*Get current country ID if possible*/
+ countryid = NULL;
+ langenv = getenv("LANG");
+- if (langenv != NULL) {
+- countryid = nl_langinfo(_NL_ADDRESS_COUNTRY_AB2);
+- }
++ // if (langenv != NULL) {
++ // countryid = nl_langinfo(_NL_ADDRESS_COUNTRY_AB2);
++ // }
+ /*Create menu*/
+ mmguiapp->window->providersmenu = gtk_menu_new();
+ /*Sort operators by countries*/
diff --git a/testing/moderncli/APKBUILD b/testing/moderncli/APKBUILD
new file mode 100644
index 00000000000..82c52df2d49
--- /dev/null
+++ b/testing/moderncli/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: David Sugar <tychosoft@gmail.com>
+# Contributor: David Sugar <tychosoft@gmail.com>
+pkgname=moderncli
+pkgver=0.8.1
+pkgrel=0
+pkgdesc="Modern C++17 header-only library of includes"
+url="https://www.tychosoft.com/tychosoft/moderncli/wiki"
+arch="noarch"
+license="MIT"
+makedepends="cmake fmt-dev openssl-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.tychosoft.com/api/packages/tychosoft/generic/moderncli/$pkgver/moderncli-$pkgver.tar.gz"
+
+build() {
+ cmake \
+ -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release .
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+ install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+ install -Dm644 FEATURES.md "$pkgdir"/usr/share/doc/$pkgname/FEATURES.md
+}
+
+sha512sums="d38e8e8abc2854aa3524885ebd4bf22b19711d94b2238e4f7db0765dd8abc2dafd0e7fed81534c3676ede2746d960f7a977019a43739a91d1a2cdaf6531fc1e3 moderncli-0.8.1.tar.gz
+"
diff --git a/testing/moe/APKBUILD b/testing/moe/APKBUILD
index aefc93295d5..eea68fac2fd 100644
--- a/testing/moe/APKBUILD
+++ b/testing/moe/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: André Klitzing <aklitzing@gmail.com>
# Maintainer: André Klitzing <aklitzing@gmail.com>
pkgname=moe
-pkgver=1.10
+pkgver=1.14
pkgrel=0
-pkgdesc="A powerful and user-friendly text editor"
+pkgdesc="powerful and user-friendly text editor"
url="https://www.gnu.org/software/moe/moe.html"
arch="all"
license="GPL-2.0-or-later"
@@ -11,17 +11,18 @@ makedepends="ncurses-dev texinfo"
subpackages="$pkgname-doc"
source="https://ftp.gnu.org/gnu/moe/moe-$pkgver.tar.lz"
options="!check"
-builddir="$srcdir/"$pkgname-$pkgver
build() {
- cd "$builddir"
- ./configure --prefix=/usr --sysconfdir=/etc
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
make CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS"
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="3908d7906aa7dcb8bd4a5d340fe94b06fc91814098c20e8939906c2b0e03e1a8a3c95847b5f8111a5d9f37636a2fafa52f9105e0e8fa0ad8b16c2f9e9dede748 moe-1.10.tar.lz"
+sha512sums="
+db45f7c05b9a1a06085b2604eb8e9857caeb7d3a56a4815df208806bbbf19cc47b19776619635c70860142cb8bb775c0eaf31b9b07698cc83b74f1c6d6f47d5c moe-1.14.tar.lz
+"
diff --git a/testing/moka-icon-theme/APKBUILD b/testing/moka-icon-theme/APKBUILD
index 21af3325ffe..82f306958f8 100644
--- a/testing/moka-icon-theme/APKBUILD
+++ b/testing/moka-icon-theme/APKBUILD
@@ -1,26 +1,22 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=moka-icon-theme
pkgver=5.4.0
-pkgrel=1
+pkgrel=2
pkgdesc="Moka Icon Theme"
url="https://snwh.org/moka"
arch="noarch"
license="CC-BY-SA-4.0 OR GPL-3.0-or-later"
makedepends="meson"
-options="!strip"
source="moka-icon-theme-$pkgver.tar.gz::https://github.com/snwh/moka-icon-theme/archive/v$pkgver.tar.gz"
build() {
- meson \
- --prefix=/usr \
- --buildtype=plain \
- output
- ninja -C output
+ abuild-meson output
+ meson compile -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
sha512sums="3cb6889eae3ddfcad68a05fd6cdf5e92b5d78b965b22df1c289f1e274491be8cb967965cbdf430fe218337994b19592546f3cadf8c39ff5e573d6d7e76648238 moka-icon-theme-5.4.0.tar.gz"
diff --git a/testing/monero/APKBUILD b/testing/monero/APKBUILD
deleted file mode 100644
index bb0288cae5f..00000000000
--- a/testing/monero/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: André Klitzing <aklitzing@gmail.com>
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=monero
-pkgver=0.15.0.5
-pkgrel=0
-_ver_randomx=1.1.6
-pkgdesc="Secure, private, untraceable cryptocurrency"
-url="https://getmonero.org/"
-arch="all !aarch64 !mips !mips64" # build failure
-license="BSD-3-Clause"
-makedepends="boost-dev cmake cppzmq libsodium-dev miniupnpc-dev openssl-dev
- openpgm-dev rapidjson-dev readline-dev unbound-dev zeromq-dev"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/monero-project/monero/archive/v$pkgver.tar.gz
- $pkgname-randomx-$_ver_randomx.tar.gz::https://github.com/tevador/RandomX/archive/v$_ver_randomx.tar.gz
- easylogging.patch
- system-miniupnpc.patch
- version-string.patch
- "
-
-build() {
- rm -fr external/randomx
- ln -s $srcdir/RandomX-$_ver_randomx external/randomx
- mkdir -p build && cd build
- cmake -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DSTACK_TRACE=OFF \
- -DMANUAL_SUBMODULES=1 \
- ..
- make
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin
- install -m755 -t "$pkgdir"/usr/bin build/bin/*
-}
-
-sha512sums="3156d1c000a5aea66e7c8503f4d0d424444e609145f4f182b0ba2841685bb4673c711b588066bad87b5e73f498b8c774636e084d20e47989bc1b215c1ca15a27 monero-0.15.0.5.tar.gz
-c59ebccd5ddc7690824b8fc68c4492f1a00d785e5820a69a73361ae639d66d2a6d1589e8b9783666edf29374516e4e1ca3a887393bab8b98bd0086e4783ac3c8 monero-randomx-1.1.6.tar.gz
-899f2d539f826664f38d2f674db8272b639a4e4af72a147769c9382a5cbf0df4934183f30f01725b4e950df49cc580fc8d4de70387e905943cd2b295d53ef9aa easylogging.patch
-70c8e981d87442e0c8eccb6804af8ba78c312cfeb547957b20c8e4e83e533f161ce1b094891a99df4113e901f43954a0f1473e39781e8dae77faa0726132563b system-miniupnpc.patch
-087e48b0507c0fb7cc9dbab05b0373b61687de3935642299c6df0194539934e7cccad497435c32291c063b10f4d91d4fbc98d81e269148c4e14780ed38d43559 version-string.patch"
diff --git a/testing/monero/easylogging.patch b/testing/monero/easylogging.patch
deleted file mode 100644
index a0b7a664c8c..00000000000
--- a/testing/monero/easylogging.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/external/easylogging++/easylogging++.h
-+++ b/external/easylogging++/easylogging++.h
-@@ -216,7 +216,7 @@
- # define ELPP_INTERNAL_INFO(lvl, msg)
- #endif // (defined(ELPP_DEBUG_INFO))
- #if (defined(ELPP_FEATURE_ALL)) || (defined(ELPP_FEATURE_CRASH_LOG))
--# if (ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_OPENBSD && !ELPP_OS_NETBSD && !ELPP_OS_ANDROID)
-+# if ( __has_include(<execinfo.h>) && ELPP_COMPILER_GCC && !ELPP_MINGW && !ELPP_OS_OPENBSD && !ELPP_OS_NETBSD && !ELPP_OS_ANDROID)
- # define ELPP_STACKTRACE 1
- # else
- # define ELPP_STACKTRACE 0
diff --git a/testing/monero/system-miniupnpc.patch b/testing/monero/system-miniupnpc.patch
deleted file mode 100644
index 3742ce525c9..00000000000
--- a/testing/monero/system-miniupnpc.patch
+++ /dev/null
@@ -1,103 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
-
- add_subdirectory(external)
-
-+# Final setup for miniupnpc
-+if(UPNP_STATIC OR IOS)
-+ add_definitions("-DUPNP_STATIC")
-+else()
-+ add_definitions("-DUPNP_DYNAMIC")
-+ include_directories(${UPNP_INCLUDE})
-+endif()
-+
- # Final setup for libunbound
- include_directories(${UNBOUND_INCLUDE})
- link_directories(${UNBOUND_LIBRARY_DIRS})
-diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
-index 9b21705e..76340a22 100644
---- a/src/p2p/net_node.inl
-+++ b/src/p2p/net_node.inl
-@@ -49,9 +49,16 @@
- #include "storages/levin_abstract_invoke2.h"
- #include "cryptonote_core/cryptonote_core.h"
-
--#include <miniupnp/miniupnpc/miniupnpc.h>
--#include <miniupnp/miniupnpc/upnpcommands.h>
--#include <miniupnp/miniupnpc/upnperrors.h>
-+// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
-+#ifdef UPNP_STATIC
-+ #include <miniupnp/miniupnpc/miniupnpc.h>
-+ #include <miniupnp/miniupnpc/upnpcommands.h>
-+ #include <miniupnp/miniupnpc/upnperrors.h>
-+#else
-+ #include "miniupnpc.h"
-+ #include "upnpcommands.h"
-+ #include "upnperrors.h"
-+#endif
-
- #undef MONERO_DEFAULT_LOG_CATEGORY
- #define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
---
-2.17.0
-
---- a/external/CMakeLists.txt 2018-10-10 13:13:55.759414180 +0200
-+++ b/external/CMakeLists.txt 2018-10-10 13:19:33.363411827 +0200
-@@ -34,22 +34,46 @@
- # We always compile if we are building statically to reduce static dependency issues...
- # ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with
- # others.
-+if(NOT IOS)
-+ find_package(Miniupnpc QUIET)
-+endif()
-
--find_package(Miniupnpc REQUIRED)
--
--message(STATUS "Using in-tree miniupnpc")
--add_subdirectory(miniupnp/miniupnpc)
--set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
--if(MSVC)
-- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
--elseif(NOT MSVC)
-- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
-+# If we have the correct shared version and we're not building static, use it
-+if(STATIC OR IOS)
-+ set(USE_SHARED_MINIUPNPC false)
-+elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
-+ set(USE_SHARED_MINIUPNPC true)
- endif()
-+
-+
-+if(USE_SHARED_MINIUPNPC)
-+ message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
-+
-+ set(UPNP_STATIC false PARENT_SCOPE)
-+ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
-+ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
-+else()
-+ if(STATIC)
-+ message(STATUS "Using miniupnpc from local source tree for static build")
-+ else()
-+ message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
-+ endif()
-+ add_subdirectory(miniupnp/miniupnpc)
-+
-+ set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-+ if(MSVC)
-+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
-+ elseif(NOT MSVC)
-+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
-+ endif()
-+
- if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -D_NETBSD_SOURCE")
- endif()
-
--set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
-+ set(UPNP_STATIC true PARENT_SCOPE)
-+ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
-+endif()
-
- find_package(Unbound)
-
diff --git a/testing/monero/version-string.patch b/testing/monero/version-string.patch
deleted file mode 100644
index 98dd8a2ca4d..00000000000
--- a/testing/monero/version-string.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cmake/Version.cmake b/cmake/Version.cmake
-index 3677e80..490de2c 100644
---- a/cmake/Version.cmake
-+++ b/cmake/Version.cmake
-@@ -32,7 +32,7 @@ function (write_static_version_header hash)
- endfunction ()
-
- find_package(Git QUIET)
--if ("$Format:$" STREQUAL "")
-+if ("$Format:$" STREQUAL "" OR NOT EXISTS .git)
- # We're in a tarball; use hard-coded variables.
- write_static_version_header("release")
- elseif (GIT_FOUND OR Git_FOUND)
diff --git a/testing/monetdb/APKBUILD b/testing/monetdb/APKBUILD
index 2be7c5b6c03..8d3261984a4 100644
--- a/testing/monetdb/APKBUILD
+++ b/testing/monetdb/APKBUILD
@@ -3,12 +3,12 @@
pkgname=monetdb
_pkgname=MonetDB
pkgver=11.33.11
-pkgrel=1
+pkgrel=4
pkgdesc="Column-oriented database management system"
url="https://www.monetdb.org/Home"
arch="all"
license="MPL-1.1"
-makedepends="musl-dev gcc bison make openssl-dev libxml2-dev xz-dev
+makedepends="musl-dev gcc bison make openssl-dev>3 libxml2-dev xz-dev
bzip2-dev lz4-dev readline-dev snappy-dev curl-dev pcre-dev unixodbc-dev
libatomic_ops-dev"
subpackages="$pkgname-dev $pkgname-doc"
@@ -30,6 +30,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+
+ rm -r "$pkgdir"/usr/lib/systemd
}
sha512sums="1f841a9c5455faf14840608ddb570d70374989c2371a6dcb9044c3e66f4de722f123bd89adca28e3193ecbbe16fb4fd184ee622ce47fbb59076d230c14b18b4f MonetDB-11.33.11.tar.xz
diff --git a/testing/mongo-cxx-driver/01-dont-build-mongo-tests.patch b/testing/mongo-cxx-driver/01-dont-build-mongo-tests.patch
deleted file mode 100644
index 6e93a19fae9..00000000000
--- a/testing/mongo-cxx-driver/01-dont-build-mongo-tests.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/src/mongocxx/CMakeLists.txt b/src/mongocxx/CMakeLists.txt
-index eaa9060..819078d 100644
---- a/src/mongocxx/CMakeLists.txt
-+++ b/src/mongocxx/CMakeLists.txt
-@@ -259,4 +259,4 @@ install(
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PKG}-${MONGOCXX_VERSION}
- )
-
--add_subdirectory(test)
-+# add_subdirectory(test)
diff --git a/testing/mongo-cxx-driver/APKBUILD b/testing/mongo-cxx-driver/APKBUILD
index 7888f5b9aec..27ebeda32cf 100644
--- a/testing/mongo-cxx-driver/APKBUILD
+++ b/testing/mongo-cxx-driver/APKBUILD
@@ -1,58 +1,69 @@
# Contributor: Russ Webber <russ@rw.id.au>
# Maintainer: Russ Webber <russ@rw.id.au>
pkgname=mongo-cxx-driver
-pkgver=3.4.1
+pkgver=3.8.0
pkgrel=0
pkgdesc="C++ driver for MongoDB"
url="http://mongocxx.org/"
arch="all"
license="Apache-2.0"
-makedepends="cmake mongo-c-driver-dev libbson-dev openssl-dev python3 snappy-dev zstd-dev"
+makedepends="
+ cmake
+ libbson-dev
+ mongo-c-driver-dev
+ mongo-c-driver-static
+ openssl-dev
+ python3
+ samurai
+ snappy-dev
+ zstd-dev
+ "
subpackages="$pkgname-dev:_dev libbsoncxx libbsoncxx-dev"
source="mongo-cxx-driver-$pkgver.tar.gz::https://github.com/mongodb/mongo-cxx-driver/archive/r$pkgver.tar.gz
- 01-dont-build-mongo-tests.patch"
+ no-mongo-tests.patch
+ "
builddir="$srcdir/mongo-cxx-driver-r$pkgver"
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake -B build . \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
-DCMAKE_CXX_STANDARD=17 \
-DBSONCXX_POLY_USE_STD=ON \
-DBUILD_VERSION="$pkgver" \
- $CMAKE_CROSSOPTS .
- make -C build
+ $CMAKE_CROSSOPTS
+ cmake --build build
}
check() {
# mongo tests require a running server, so they are disabled.
# libbsoncxx tests are still ran
- make -C build test
+ ctest --test-dir build --output-on-failure
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ # abuild can't trace this
+ depends="libbsoncxx=$pkgver-r$pkgrel"
+ DESTDIR="$pkgdir" cmake --install build
rm -rf "$pkgdir"/usr/share/mongo-cxx-driver/
}
libbsoncxx() {
pkgdesc="Building, parsing, and iterating BSON documents using C++"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libbsoncxx.so.* "$subpkgdir"/usr/lib/
+
+ amove usr/lib/libbsoncxx.so.*
}
_dev() {
# This should be removed once abuild knows how to search for pkg-config
# files that are in another subpackage that is also being created alongside
# this one.
- depends_dev="libbsoncxx-dev"
+ depends_dev="libbsoncxx-dev=$pkgver-r$pkgrel"
default_dev
@@ -73,5 +84,7 @@ _dev() {
mv "$subpkgdir"/usr/include/bsoncxx "$pkgdir"/usr/include
}
-sha512sums="c34d7e06946c89db88a6122ab4e7e4952bd6403ca80e57adc7d91264505e1ac1d623fe932f7b82546e26033078ab1f96bb6048a0e343b26d4b8b630658be0e71 mongo-cxx-driver-3.4.1.tar.gz
-4eed3eb4236bd13eb6f80f90938481c35d6d728c7b777f2cf6e459c5b3776d612cf7d8e000fa7e5c74f741943b2900325cbcd623584081cbb931cab04ce36828 01-dont-build-mongo-tests.patch"
+sha512sums="
+f9f0d83ee2ef1f3c2dae1f3663b893d819737d4e646d0137fb623b84663382eb93ab36123c2a85247f43ae979a95276fa231d5da8ad62a6da002ab9daecaa0d4 mongo-cxx-driver-3.8.0.tar.gz
+18eaace179782c8e59d585def40da2cb941c767484f2739a6714dc1526c62cd8595bfe89545ddfa32e781a618a0f73a53ac3ee9ecdeb86c7b3250bd380b4d276 no-mongo-tests.patch
+"
diff --git a/testing/mongo-cxx-driver/no-mongo-tests.patch b/testing/mongo-cxx-driver/no-mongo-tests.patch
new file mode 100644
index 00000000000..b49d880a45d
--- /dev/null
+++ b/testing/mongo-cxx-driver/no-mongo-tests.patch
@@ -0,0 +1,22 @@
+diff --git a/src/mongocxx/CMakeLists.txt b/src/mongocxx/CMakeLists.txt
+index 7106040..e3456ce 100644
+--- a/src/mongocxx/CMakeLists.txt
++++ b/src/mongocxx/CMakeLists.txt
+@@ -208,7 +208,7 @@ else()
+ mongocxx_add_library(mongocxx_mocked "mongocxx-mocked" STATIC)
+ endif()
+ endif()
+-if(ENABLE_TESTS)
++if(ENABLE_TESTING)
+ target_link_libraries(mongocxx_mocked PUBLIC bsoncxx_testing)
+ target_compile_definitions(mongocxx_mocked PUBLIC MONGOCXX_TESTING)
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+@@ -249,7 +249,7 @@ if(MONGOCXX_BUILD_STATIC)
+ endif()
+ mongocxx_install("${mongocxx_target_list}" "${mongocxx_pkg_dep}")
+
+-if(ENABLE_TESTS)
++if(false)
+ add_subdirectory(test)
+ endif()
+
diff --git a/testing/mongo-php7-library/APKBUILD b/testing/mongo-php7-library/APKBUILD
deleted file mode 100644
index f419e643d1a..00000000000
--- a/testing/mongo-php7-library/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-
-_php=php7
-pkgname=mongo-${_php}-library
-_realname=mongo-php-library
-pkgver=1.4.2
-pkgrel=0
-pkgdesc="High-level abstraction around the lower-level drivers for PHP"
-url="https://github.com/mongodb/mongo-php-library"
-arch="noarch"
-license="Apache-2.0"
-makedepends="$depends_dev ${_php}-mongodb"
-subpackages="$pkgname-doc"
-options="!check" # require mongodb server
-source="$_realname-$pkgver.tar.gz::https://github.com/mongodb/$_realname/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_realname-$pkgver
-
-build() {
- cd "$builddir"
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/doc/mongo-${_php}-library/docs
- mkdir -p "$pkgdir"/usr/lib/${_php}/vendor/mongodb/mongodb
- mv src/* "$pkgdir"/usr/lib/${_php}/vendor/mongodb/mongodb
- mv tests "$pkgdir"/usr/lib/${_php}/vendor/mongodb/mongodb/
- mv docs/* "$pkgdir"/usr/share/doc/mongo-${_php}-library/docs
- mv LICENSE README.md "$pkgdir"/usr/share/doc/mongo-${_php}-library
-}
-
-sha512sums="c473b85f60fd942f591c712187d68744b95472f11450af5bcd1768d79fb0e3ffe08c486fad72898fe5fd3002e865ea79959767b80830db92bd92d87f52877f33 mongo-php-library-1.4.2.tar.gz"
diff --git a/testing/mono/APKBUILD b/testing/mono/APKBUILD
index 751abc7c29e..1483e38df9f 100644
--- a/testing/mono/APKBUILD
+++ b/testing/mono/APKBUILD
@@ -1,41 +1,38 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Contributor: blattersturm <peachypies@protonmail.ch>
# Maintainer:
pkgname=mono
-pkgver=5.20.1.19
+pkgver=6.12.0.205
pkgrel=1
pkgdesc="Free implementation of the .NET platform including runtime and compiler"
url="https://www.mono-project.com/"
-arch="x86_64 x86 armv7"
+arch="x86_64 aarch64"
license="MIT"
depends="python3"
-depends_dev="libgdiplus-dev zlib-dev"
-makedepends="$depends_dev autoconf automake cmake libtool linux-headers paxmark"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-source="https://download.mono-project.com/sources/mono/mono-${pkgver/_/~}.tar.bz2
- python3.patch
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ libgdiplus-dev
"
-
-prepare() {
- default_prepare
- # Remove hardcoded lib directory from the config.
- sed -i 's|$mono_libdir/||g' data/config.in
-
- # We need to do this so it don't get killed in the build proces when
- # MPROTECT and RANDMMAP is enable.
- sed -i '/exec "/ i\paxmark mr "$(readlink -f "$MONO_EXECUTABLE")"' \
- runtime/mono-wrapper.in
-}
+makedepends="
+ $depends_dev
+ bash
+ cmake
+ linux-headers
+ perl
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-lang
+ "
+source="https://download.mono-project.com/sources/mono/preview/mono-$pkgver.tar.xz
+ mono-try-catch.patch
+ "
+options="!check" # fail
build() {
- # Based on Fedora and SUSE package.
- export CFLAGS="$CFLAGS -fno-strict-aliasing"
-
- # Set the minimum arch for x86 to prevent atomic linker errors.
- [ "$CARCH" = "x86" ] && export CFLAGS="$CFLAGS -march=i586 -mtune=generic"
-
- # Run autogen to fix supplied configure linker issues with make install.
- ./autogen.sh \
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
@@ -43,27 +40,39 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
- --disable-rpath \
--disable-boehm \
+ --enable-ninja \
+ --disable-rpath \
+ --disable-static \
--enable-parallel-mark \
--with-mcs-docs=no \
--without-sigaltstack
make
+ make -C mcs/jay
+}
+
+check() {
+ make check
}
package() {
- make -j1 DESTDIR="$pkgdir" install
- paxmark mr "$pkgdir"/usr/bin/mono-sgen
+ make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" prefix=/usr INSTALL=../../install-sh -C mcs/jay install
cd "$pkgdir"
- # Remove .la files.
- rm ./usr/lib/*.la
+ rm -rf \
+ usr/lib/mono/*/Mono.Security.Win32* \
+ usr/lib/*.la
+}
+
+dev() {
+ default_dev
- # Remove Windows-only stuff.
- rm -r ./usr/lib/mono/*/Mono.Security.Win32*
- rm ./usr/lib/libMonoSupportW.*
+ mv "$subpkgdir"/usr/lib/*.so "$pkgdir"/usr/lib/
}
-sha512sums="498fffc70c524cf21477196b6fdc3c5d03a719098c0a0ca40c29e239588675ddc0538659e4119171316f8f35555fcd42390d474dff0b795bf67188bc34a35ae0 mono-5.20.1.19.tar.bz2
-6d16a04f350f406d631626c43e783dda9bf1ee87fd97f376b089b547f4d1851f5724f4fe2ad4c6adb1e2a8a3fe5dce6a4dd2da4abbe9f865bf0101831ec63632 python3.patch"
+sha512sums="
+ede22d511b8f0757b6ba3cb85af209eddfe9d19b00b0d870a8f6b68fa90bc56d3fe06a86874fdfcef2a1e93ec3ed524fee7d1363c0a00296c1d522bb8c71697a mono-6.12.0.205.tar.xz
+3a82d4bed31b212e23fe24647fc5b9c4788be5f4966377a3bef9f92a51d16181e77e19ca1ec4736792da6a18206986bbb54d967499e2ca7e224201cf811f91b5 mono-try-catch.patch
+"
diff --git a/testing/mono/mono-try-catch.patch b/testing/mono/mono-try-catch.patch
new file mode 100644
index 00000000000..051c72be685
--- /dev/null
+++ b/testing/mono/mono-try-catch.patch
@@ -0,0 +1,31 @@
+diff -ur mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
+--- mono-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-11-17 18:12:57.000000000 +0300
++++ mono-patched-5.9.0.398/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs 2017-12-06 06:24:45.067519852 +0300
+@@ -2810,14 +2810,21 @@
+
+ internal override object ClipboardRetrieve(IntPtr handle, int type, XplatUI.ClipboardToObject converter)
+ {
+- XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero);
++ try
++ {
++ XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero);
+
+- Clipboard.Retrieving = true;
+- while (Clipboard.Retrieving) {
+- UpdateMessageQueue(null, false);
+- }
++ Clipboard.Retrieving = true;
++ while (Clipboard.Retrieving) {
++ UpdateMessageQueue(null, false);
++ }
+
+- return Clipboard.Item;
++ return Clipboard.Item;
++ }
++ catch (Exception ex)
++ {
++ return null;
++ }
+ }
+
+ internal override void ClipboardStore (IntPtr handle, object obj, int type, XplatUI.ObjectToClipboard converter, bool copy)
diff --git a/testing/mono/python3.patch b/testing/mono/python3.patch
deleted file mode 100644
index 38f3081e622..00000000000
--- a/testing/mono/python3.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff --git a/mono/mini/Makefile.am b/mono/mini/Makefile.am
-index 6c840f88b..402a8c8f6 100644
---- a/mono/mini/Makefile.am
-+++ b/mono/mini/Makefile.am
-@@ -742,7 +742,7 @@ MemoryIntrinsics.dll: MemoryIntrinsics.il
-
- GENMDESC_OPTS=
-
--GENMDESC_PRG=python $(srcdir)/genmdesc.py $(target_define) $(srcdir)
-+GENMDESC_PRG=python3 $(srcdir)/genmdesc.py $(target_define) $(srcdir)
-
- cpu-wasm.h: mini-ops.h cpu-wasm.md
- $(GENMDESC_PRG) cpu-wasm.h wasm_desc $(srcdir)/cpu-wasm.md
-diff --git a/mono/mini/Makefile.am.in b/mono/mini/Makefile.am.in
-index 6c840f88b..402a8c8f6 100755
---- a/mono/mini/Makefile.am.in
-+++ b/mono/mini/Makefile.am.in
-@@ -742,7 +742,7 @@ MemoryIntrinsics.dll: MemoryIntrinsics.il
-
- GENMDESC_OPTS=
-
--GENMDESC_PRG=python $(srcdir)/genmdesc.py $(target_define) $(srcdir)
-+GENMDESC_PRG=python3 $(srcdir)/genmdesc.py $(target_define) $(srcdir)
-
- cpu-wasm.h: mini-ops.h cpu-wasm.md
- $(GENMDESC_PRG) cpu-wasm.h wasm_desc $(srcdir)/cpu-wasm.md
-diff --git a/mono/mini/Makefile.in b/mono/mini/Makefile.in
-index d3555b8c7..8a7e85ad4 100644
---- a/mono/mini/Makefile.in
-+++ b/mono/mini/Makefile.in
-@@ -1212,7 +1212,7 @@ libmonoincludedir = $(includedir)/mono-$(API_VER)/mono/jit
- libmonoinclude_HEADERS = jit.h
- CSFLAGS = -unsafe -nowarn:0219,0169,0414,0649,0618
- GENMDESC_OPTS =
--GENMDESC_PRG = python $(srcdir)/genmdesc.py $(target_define) $(srcdir)
-+GENMDESC_PRG = python3 $(srcdir)/genmdesc.py $(target_define) $(srcdir)
- LLVM_AOT_RUNTIME_OPTS = $(if $(LLVM),--llvm,)
- GSHAREDVT_RUNTIME_OPTS = $(if $(GSHAREDVT),-O=gsharedvt,)
- fullaot_regtests = $(regtests)
-diff --git a/mono/mini/genmdesc.py b/mono/mini/genmdesc.py
-index 987332bdf..c3593ba96 100755
---- a/mono/mini/genmdesc.py
-+++ b/mono/mini/genmdesc.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python3
-
- #
- # This tool is used to generate the cpu-<ARCH>.h files used by the JIT. The input is the
-diff --git a/scripts/mono-heapviz b/scripts/mono-heapviz
-index 27b6f7f60..d19ca33d9 100755
---- a/scripts/mono-heapviz
-+++ b/scripts/mono-heapviz
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/python3
-
- # Generate a heap visualization for SGen from the heap dump written by
- # mono if the MONO_GC_DEBUG is set to something like
-
diff --git a/testing/moon-buggy/APKBUILD b/testing/moon-buggy/APKBUILD
new file mode 100644
index 00000000000..3930e440ef4
--- /dev/null
+++ b/testing/moon-buggy/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Miles Alan <m@milesalan.com>
+# Maintainer: Miles Alan <m@milesalan.com>
+pkgname=moon-buggy
+pkgver=1.0.51
+pkgrel=1
+pkgdesc="Simple character graphics game where you drive some kind of car across the moon's surface"
+url="https://www.seehuhn.de/pages/moon-buggy.html"
+license="GPL-2.0-or-later"
+arch="all"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="https://m.seehuhn.de/programs/moon-buggy-$pkgver.tar.gz
+ skip-install-data-hook.patch
+ "
+options="!check" # no test suite
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --sharedstatedir=/var/games
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+34da2ca8b79d4f95a762cb7142586d176fd1b58ea6f4375de424d73d6046c2dc3dbae30dddb3a78c8c2563fbfec01d9eaafe27b79cc78ffa22121ad5a2e9dc77 moon-buggy-1.0.51.tar.gz
+e5a61910c2aded4316e3adf424d65def61822509c919cbb0a2040564270b8b81f9eb64ed581d95bb5b41cc348dc7b29c6f817c21e8fb5d65382288e4a2750abc skip-install-data-hook.patch
+"
diff --git a/testing/moon-buggy/skip-install-data-hook.patch b/testing/moon-buggy/skip-install-data-hook.patch
new file mode 100644
index 00000000000..53e60a47f53
--- /dev/null
+++ b/testing/moon-buggy/skip-install-data-hook.patch
@@ -0,0 +1,14 @@
+Don't run install-data-hook since it just installs user-specific
+data to the user's home directory, i.e. the `abuild` user.
+Program is fully functional without it.
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -747,7 +747,6 @@
+
+ install-data-am: install-data-local install-info-am install-man
+ @$(NORMAL_INSTALL)
+- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+
+ install-exec-am: install-binPROGRAMS
+ @$(NORMAL_INSTALL)
diff --git a/testing/moosefs/APKBUILD b/testing/moosefs/APKBUILD
index 9a50e3fdd39..5d1ae30758c 100644
--- a/testing/moosefs/APKBUILD
+++ b/testing/moosefs/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=moosefs
-pkgver=3.0.113
-pkgrel=0
+pkgver=3.0.117
+pkgrel=1
pkgdesc="Open Source, Petabyte, Fault-Tolerant, Highly Performing, Scalable Network Distributed File System"
url="https://moosefs.com"
arch="all"
license="GPL-2.0-only"
-makedepends="autoconf automake zlib-dev libpcap-dev libtool fuse-dev python3-dev"
+makedepends="autoconf automake zlib-dev libpcap-dev libtool fuse3-dev python3-dev"
pkgusers="mfs"
pkggroups="mfs"
subpackages="$pkgname-doc $pkgname-static $pkgname-client $pkgname-master
@@ -22,8 +22,7 @@ source="$pkgname-$pkgver.tar.gz::http://ppa.moosefs.com/src/moosefs-$pkgver-1.ta
$pkgname-cgiserv.confd
$pkgname-master.initd
$pkgname-metalogger.initd
- $pkgname-chunkserver.initd
- $pkgname-nbd.patch"
+ $pkgname-chunkserver.initd"
prepare() {
default_prepare
@@ -124,10 +123,11 @@ chunkserver_openrc() {
client() {
pkgdesc="MooseFS client"
- depends="fuse"
+ depends="fuse3"
cd "$pkgdir"
_mv_files \
- usr/bin/* \
+ usr/bin \
+ sbin/mount.* \
etc/mfs/mfsmount.cfg.sample
}
@@ -152,10 +152,11 @@ cgiserv_openrc() {
install -Dm644 "$srcdir"/moosefs-cgiserv.confd "$subpkgdir"/etc/conf.d/moosefs-cgiserv
}
-sha512sums="c96a8c23e0039a9f7f3e3a8d002513cffcd2c2f49a19a11666c404967cc54c3feac033ce1a3ed8445fb7914dc64a2af6d634b6c88c595c89bf944c73ea574300 moosefs-3.0.113.tar.gz
+sha512sums="
+ee0bba2fc5c62e8ec52d27743871d79c1c201b327f8b6f2c12434fef38c87179485a958bf08b97754aae4a8e82b1d20e4cea74a17e973b0682f78cfa73dff3ef moosefs-3.0.117.tar.gz
c698aff4de9aeb76202a809e44ac8d0ec9c6348a806b1c813c2a40858339b1c139a480a9c5aff40bf2c9821883c6c0dfeabb010f3faa5746673235f0fb3c5a76 moosefs-cgiserv.initd
b5c625f0004df33889de60ddad37e41f3acf081b37247606a1544e5f63354e121fe4cce511a6e60f4f2c0305155faf0614b8a4bce7267929fe68a1a4b546b582 moosefs-cgiserv.confd
a041fa324d37bda098ad65e9d6507f281ed388471956ca79aa33b8b0d1c4a9d528662a2410c47f3856183d6378ac7fb417c3d7ec314f624e7e5dac7c5e4247f0 moosefs-master.initd
8e73a7715e7a010d435efb9058ed67aad1caa95c840d3f1fae6bafd2a700cedbb0244d29363929d8e8d9a2036a2e0b173c0c2f7b52529ba4088e1296479fc0f5 moosefs-metalogger.initd
56a714f3d29030ca12dc1859a1121b2a89606a2ccccec65481e2eb0b846757dea71dfe5f5a6d648b32e731d14b7d7725f79703851365b0862d7eb415a5f49dfb moosefs-chunkserver.initd
-3e957fd22d3667eeb5690b9b03067eee55799a0e47bcbf62783efaca9595ccf49fa292ab3cf798151ca6f08b282ef89c3004af6f2567998567898a738a2633d2 moosefs-nbd.patch"
+"
diff --git a/testing/moosefs/moosefs-nbd.patch b/testing/moosefs/moosefs-nbd.patch
deleted file mode 100644
index dc1b2326cd1..00000000000
--- a/testing/moosefs/moosefs-nbd.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a4f89aae9fae993abebe25e5c9653c14464fa8c5 Mon Sep 17 00:00:00 2001
-From: Jakub Kruszona-Zawadzki <acid@moosefs.com>
-Date: Wed, 13 May 2020 10:24:00 +0200
-Subject: [PATCH] (mfsio/nbd) fixed compile issue on systems without LOCK_*
- constants (issue #366)
-
----
- buildno.txt | 2 +-
- mfsclient/mfsio.h | 13 +++++++++++++
- 2 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/buildno.txt b/buildno.txt
-index 44acfeb..87577dc 100644
---- a/buildno.txt
-+++ b/buildno.txt
-@@ -1 +1 @@
--1201
-+1202
-diff --git a/mfsclient/mfsio.h b/mfsclient/mfsio.h
-index 5385cc0..fb1c8ee 100644
---- a/mfsclient/mfsio.h
-+++ b/mfsclient/mfsio.h
-@@ -29,6 +29,19 @@ typedef struct _mfscfg {
- # define UTIME_OMIT ((1l << 30) - 2l)
- #endif
-
-+#ifndef LOCK_SH
-+#define LOCK_SH 1
-+#endif
-+#ifndef LOCK_EX
-+#define LOCK_EX 2
-+#endif
-+#ifndef LOCK_NB
-+#define LOCK_NB 4
-+#endif
-+#ifndef LOCK_UN
-+#define LOCK_UN 8
-+#endif
-+
- int mfs_mknod(const char *path, mode_t mode, dev_t dev);
- int mfs_unlink(const char *path);
- int mfs_mkdir(const char *path, mode_t mode);
diff --git a/testing/morph-browser/APKBUILD b/testing/morph-browser/APKBUILD
new file mode 100644
index 00000000000..6436f3ee515
--- /dev/null
+++ b/testing/morph-browser/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=morph-browser
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Lightweight web browser tailored for Ubuntu Touch"
+url="https://gitlab.com/ubports/development/core/morph-browser"
+# armhf: blocked by lomiri-ui-toolkit
+# ppc64le/riscv64/s390x: blocked by qt5-qtwebengine
+arch="all !armhf !ppc64le !riscv64 !s390x"
+license="GPL-3.0-only"
+depends="
+ font-liberation
+ lomiri-action-api
+ lomiri-content-hub
+ lomiri-ui-extras
+ lomiri-ui-toolkit
+ qt5-qtbase-sqlite
+ qt5-qtquickcontrols2
+ "
+makedepends="
+ click-dev
+ cmake
+ cmake-extras
+ gnome-desktop-dev
+ libapparmor-dev
+ lomiri-trust-store-dev
+ qt5-qtdeclarative-dev
+ qt5-qtwebengine-dev
+ samurai
+ xvfb-run
+ "
+checkdepends="
+ py3-dbusmock
+ py3-xdg
+ "
+subpackages="$pkgname-lang"
+source="https://gitlab.com/ubports/development/core/morph-browser/-/archive/$pkgver/morph-browser-$pkgver.tar.gz"
+options="!check" # 4 tests fail and test 27 hangs
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCLICK_MODE=off
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+646182b0b408e40e96e506180059c388e0b1fe6e8a249618997f7e5064ae8ad603f7d66438b0116063cfce4e2e3372e847663e9bbaf1e1eea0bbee0dbf5c16ce morph-browser-1.1.0.tar.gz
+"
diff --git a/testing/most/APKBUILD b/testing/most/APKBUILD
deleted file mode 100644
index 2160a8687d8..00000000000
--- a/testing/most/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=most
-pkgver=5.1.0
-pkgrel=0
-pkgdesc="A terminal pager similar to more and less"
-url="http://www.jedsoft.org/most/index.html"
-arch=""
-license="GPL-2.0-or-later"
-makedepends="slang-dev ncurses-dev"
-subpackages="$pkgname-doc"
-source="https://www.jedsoft.org/releases/most/most-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- update_config_guess
-}
-
-build() {
- ./configure --prefix=/usr --sysconfdir=/etc
- make -j1
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="cbc090283bbaafb8ffee9d6d1abc7b49cd58d54b742cf8dc86274351dee6398d1f24841bd1631ac40f861ad9e23569646133d3297317d9d514a7a38dd74533d2 most-5.1.0.tar.gz"
diff --git a/testing/motion/APKBUILD b/testing/motion/APKBUILD
index 2894053b10c..59c895b9cd3 100644
--- a/testing/motion/APKBUILD
+++ b/testing/motion/APKBUILD
@@ -1,23 +1,24 @@
# Contributor: Katie Holly <holly@fuslvz.ws>
# Contributor: Åukasz Jendrysik <scadu@yandex.com>
# Contributor: Mika Havela <mika.havela@gmail.com>
-# Maintainer: Mika Havela <mika.havela@gmail.com>
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=motion
-pkgver=4.3.1
+pkgver=4.6.0
pkgrel=0
-pkgdesc="Detect if a significant part of the picture has changed (e.g. from a webcam)."
+pkgdesc="Detect if a significant part of the picture has changed (e.g. from a webcam)"
url="https://motion-project.github.io"
arch="all"
options="!check"
license="GPL-2.0-or-later"
pkgusers="motion"
pkggroups="motion"
-depends="v4l-utils ffmpeg"
+depends="v4l-utils"
makedepends="$depends_dev autoconf automake bash gettext-dev v4l-utils-dev linux-headers
- libjpeg-turbo-dev ffmpeg-dev libmicrohttpd-dev libwebp-dev"
+ libjpeg-turbo-dev ffmpeg-dev libmicrohttpd-dev libwebp-dev xz"
install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Motion-Project/motion/archive/release-$pkgver.tar.gz
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-lang"
+source="https://github.com/Motion-Project/motion/archive/release-$pkgver/motion-$pkgver.tar.gz
motion.confd
motion.initd
"
@@ -48,6 +49,8 @@ package() {
install -Dm755 "$srcdir"/"$pkgname".initd "$pkgdir"/etc/init.d/"$pkgname"
}
-sha512sums="17033dab055c4f1d9e2912a27d0a5b419d325b0781def98428a6117e38c62201b87199210071ba93d6c4dae514733b749e39cbc1befe6242f157d4583e07dcc6 motion-4.3.1.tar.gz
+sha512sums="
+96984254e316694e98ac55a0216c712d7280a3b5b8d5e1bca17282eee5426022c56e54aa4175269117c6128a3a834a550528bfc2a04c9f5b670e41e740456d29 motion-4.6.0.tar.gz
8a67b5b0360924e58ba3136a737ce73bb43201a49b2b6e2c632426561b830f6ab55cbbeaa89be7f1683aa8fd322b4f31b9f560e67a93eaceb964c9f56ceef363 motion.confd
-be30f19595dba27f2d0ca8133c93e134161781935a152bd1701e581410039e37742acd11987c38e6e64f495b1fd2b0a74a8c61ae0e6e211a475fca7994172501 motion.initd"
+be30f19595dba27f2d0ca8133c93e134161781935a152bd1701e581410039e37742acd11987c38e6e64f495b1fd2b0a74a8c61ae0e6e211a475fca7994172501 motion.initd
+"
diff --git a/testing/mp3gain/APKBUILD b/testing/mp3gain/APKBUILD
new file mode 100644
index 00000000000..9079402954e
--- /dev/null
+++ b/testing/mp3gain/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Marvin Preuss <marvin@xsteadfastx.org>
+# Maintainer: Marvin Preuss <marvin@xsteadfastx.org>
+pkgname=mp3gain
+pkgver=1.6.2
+_pkgver_download=1_6_2
+pkgrel=2
+pkgdesc="Analyzes and adjusts the volume of MP3 files"
+url="https://mp3gain.sourceforge.net/"
+arch="all"
+license="LGPL-2.1-only"
+makedepends="mpg123-dev"
+options="!check" # no testsuite
+source="$pkgname-$pkgver.zip::https://sourceforge.net/projects/mp3gain/files/mp3gain/$pkgver/mp3gain-$_pkgver_download-src.zip/download"
+builddir="$srcdir/"
+build() {
+ make OSTYPE=linux
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin
+ make INSTALL_PATH="$pkgdir"/usr/bin OSTYPE=linux install
+}
+
+sha512sums="
+ec9de6c755120480ccb72b34a0042aea7546ef923090ab04e420d5b189523b4504e29952a3d695d3c42c74348f5c3c9123ff090bcc671e43375711e085d67480 mp3gain-1.6.2.zip
+"
diff --git a/testing/mp3val/APKBUILD b/testing/mp3val/APKBUILD
new file mode 100644
index 00000000000..43de6481698
--- /dev/null
+++ b/testing/mp3val/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=mp3val
+pkgver=0.1.8
+pkgrel=1
+pkgdesc="Tool for MPEG Audio File (MP3, etc) validation and fixing"
+url="https://mp3val.sourceforge.net/"
+arch="all"
+license="GPL-2.0-or-later"
+source="$pkgname-$pkgver.tar.gz::https://downloads.sourceforge.net/mp3val/mp3val-$pkgver-src.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver-src/"
+
+build() {
+ make -f Makefile.linux
+}
+
+check() {
+ echo Check: "$(./mp3val -v)"
+}
+
+package() {
+ install -Dm755 ./mp3val -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+62371453be53840fb0f0d87c9fcf9cbd6f5c8ae107e529f0cb6b8190ef9e7ebf564bb080c9d0a6adc3b5450673e70b5f4343dee82c1e6400750935cccebc2604 mp3val-0.1.8.tar.gz
+"
diff --git a/testing/mpdcron/APKBUILD b/testing/mpdcron/APKBUILD
index b65a138c088..6e0b11869f0 100644
--- a/testing/mpdcron/APKBUILD
+++ b/testing/mpdcron/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: dai9ah <dai9ah@protonmail.com>
pkgname=mpdcron
pkgver=0.3
-pkgrel=0
+pkgrel=1
pkgdesc="Cron-like daemon for mpd"
options="!check" # No testsuite
url="https://github.com/alip/mpdcron"
diff --git a/testing/mpdecimal/APKBUILD b/testing/mpdecimal/APKBUILD
deleted file mode 100644
index 4472d27dc52..00000000000
--- a/testing/mpdecimal/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Stefan Stutz <stutz@pm.me>
-# Maintainer: Stefan Stutz <stutz@pm.me>
-pkgname=mpdecimal
-pkgver=2.4.2
-pkgrel=0
-pkgdesc="A complete implementation of the General Decimal Arithmetic Specification"
-url="http://www.bytereef.org/mpdecimal/index.html"
-arch="all"
-license="BSD"
-subpackages="$pkgname-doc"
-source="http://www.bytereef.org/software/mpdecimal/releases/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- cd "$builddir"
- default_prepare
-
- update_config_guess
-}
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir"
-}
-sha512sums="eb18ad53b81b93c469db4d915bbb3fae21b36ad82a88e01fef3a6946ac5f50b54376e259a5ecbe23836f1efd59d226b942ecdee87eaba7f9e75cdcaaa9499ef7 mpdecimal-2.4.2.tar.gz"
diff --git a/testing/mpdris2-rs/APKBUILD b/testing/mpdris2-rs/APKBUILD
new file mode 100644
index 00000000000..2c012a001d8
--- /dev/null
+++ b/testing/mpdris2-rs/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=mpdris2-rs
+pkgver=0.2.3
+pkgrel=0
+pkgdesc="Exposing MPRIS V2.1 D-Bus interface for mpd"
+url="https://github.com/szclsya/mpdris2-rs"
+arch="all"
+license="GPL-3.0-or-later"
+depends="dbus"
+makedepends="
+ cargo
+ cargo-auditable
+"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/szclsya/mpdris2-rs/archive/refs/tags/$pkgver.tar.gz"
+options="net !check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/mpdris2-rs "$pkgdir"/usr/bin/mpdris2-rs
+
+ install -Dm 655 COPYING "$pkgdir"/usr/share/licenses/"$pkgname"/COPYING
+}
+
+sha512sums="
+0a6bb577dd80a658f6b492ac3e9dd15337d8cf7d3dd2ffc672f94245856b67ae6ac1e6848cf3fccf8150e40bfed4c90b7ba3c301a874dd22f680fd05d5d4c4b5 mpdris2-rs-0.2.3.tar.gz
+"
diff --git a/testing/mpdris2/APKBUILD b/testing/mpdris2/APKBUILD
index db5b0231481..d08d3ba1fa3 100644
--- a/testing/mpdris2/APKBUILD
+++ b/testing/mpdris2/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Galen Abell <galen@galenabell.com>
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=mpdris2
-pkgver=0.8
-pkgrel=0
+pkgver=0.9.1
+pkgrel=3
pkgdesc="MPRIS V2.1 support for mpd"
url="https://github.com/eonpatapon/mpDris2"
arch="noarch"
license="GPL-3.0-only"
-depends="py3-mpd2"
+depends="py3-mpd2 py3-dbus py3-gobject3 py3-mutagen"
makedepends="autoconf automake intltool gettext-dev"
options="!check" # no tests
subpackages="$pkgname-doc $pkgname-lang"
@@ -27,5 +27,8 @@ build() {
package() {
make DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir"/usr/lib/systemd
}
-sha512sums="b3c2973723e9fb3140a4e6c9e3dfe66cc305c2ad5014e1e63a165e3ec371b4135570fdf72f57081e86420bd652a9baeb32fd229989582e5f115c8613e0759f52 mpdris2-0.8.tar.gz"
+
+sha512sums="260b5c910303766a7730110a1ca52c859b4e8ba41ba4fe842187cb3dbacca1bc096a93cce2e26e6c82b640f2905411e3011251566b47404466cedfb2f43860ee mpdris2-0.9.1.tar.gz"
diff --git a/testing/mpop/APKBUILD b/testing/mpop/APKBUILD
index c80fed2e95e..655efec1bce 100644
--- a/testing/mpop/APKBUILD
+++ b/testing/mpop/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: xcko <xcko@airmail.cc>
# Maintainer: xcko <xcko@airmail.cc>
pkgname=mpop
-pkgver=1.4.9
+pkgver=1.4.18
pkgrel=0
pkgdesc="retrieves mail from pop3 mailboxes"
url="https://marlam.de/mpop"
@@ -34,4 +34,6 @@ vim() {
"$subpkgdir"/usr/share/vim/vimfiles/syntax/$pkgname.vim
}
-sha512sums="92b7e9c980f12fb76da1af1a0793ea432c638a1137dbd72c2abba00828152d8635a351a996384af1e51bb754243b6caecdc61810c217b81014ad77ecf35d73b4 mpop-1.4.9.tar.xz"
+sha512sums="
+4f20d3653c99361269011162df6a5d2b2f73d7e3e4bb62fc24c301a5d12f0e911ff432b2e786d2f49088cb96c273a4961ee514ba48465c0c455937559d2b2cff mpop-1.4.18.tar.xz
+"
diff --git a/testing/mpv-sponsorblock/APKBUILD b/testing/mpv-sponsorblock/APKBUILD
new file mode 100644
index 00000000000..862d570777f
--- /dev/null
+++ b/testing/mpv-sponsorblock/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=mpv-sponsorblock
+pkgver=2.1.0
+pkgrel=0
+pkgdesc="MPV plugin that allows you to skip sponsors while watching YouTube videos"
+url="https://github.com/TheCactusVert/mpv-sponsorblock"
+# rust-ring
+arch="x86 x86_64 aarch64"
+license="MIT"
+depends="mpv"
+makedepends="
+ cargo
+ cargo-auditable
+ mpv-dev
+ "
+source="https://github.com/TheCactusVert/mpv-sponsorblock/archive/v$pkgver/mpv-sponsorblock-$pkgver.tar.gz"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm0644 target/release/libmpv_sponsorblock.so -t "$pkgdir"/etc/mpv/scripts/
+}
+
+sha512sums="
+60c673ef37e72aad87e69a533311fe2172fd53cc687f29d64560b35d2b272d16cbda523536312992170bcab2d5d84d7b4bdc91a7b75bdf8e76f4b21dccc6bd79 mpv-sponsorblock-2.1.0.tar.gz
+"
diff --git a/testing/mpvpaper/APKBUILD b/testing/mpvpaper/APKBUILD
new file mode 100644
index 00000000000..673e50f04f7
--- /dev/null
+++ b/testing/mpvpaper/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=mpvpaper
+pkgver=1.4
+pkgrel=0
+pkgdesc="Video wallpaper setter for wlroots based compositors using mpv"
+url="https://github.com/GhostNaN/mpvpaper"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # no test suite
+makedepends="
+ meson
+ ninja
+ mpv-dev
+ wayland-dev
+ wayland-protocols
+ mesa-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/GhostNaN/mpvpaper/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ install -Dm644 mpvpaper.man "$pkgdir"/usr/share/man/man1/mpvpaper.1
+}
+
+sha512sums="
+23a5859705319bea6508a09df3ea791b976326dcaa8a7df86e0b38754017a1bcb0c594b967db91abe2d631fe9f07454399f57f447fd14192c6f9ede4d479f1d2 mpvpaper-1.4.tar.gz
+"
diff --git a/testing/mqtt2prometheus/APKBUILD b/testing/mqtt2prometheus/APKBUILD
new file mode 100644
index 00000000000..a419fba3f6c
--- /dev/null
+++ b/testing/mqtt2prometheus/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=mqtt2prometheus
+pkgver=0.1.7
+pkgrel=8
+pkgdesc="MQTT to Prometheus gateway"
+url="https://github.com/hikhvar/mqtt2prometheus"
+arch="all"
+license="MIT"
+makedepends="go"
+source="https://github.com/hikhvar/mqtt2prometheus/archive/v$pkgver/mqtt2prometheus-$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o mqtt2prometheus ./cmd
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 mqtt2prometheus -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+729c1e6dd1a6d3cc8fefb6ae371e26d0fd6d30fbb8eac03033780de2fc90aaaddfce2fd6ac6e5c5fdcd828c40794bda519f603ad7e9210d8dbf28108e45a994f mqtt2prometheus-0.1.7.tar.gz
+"
diff --git a/testing/mrsh/APKBUILD b/testing/mrsh/APKBUILD
new file mode 100644
index 00000000000..62339f64c71
--- /dev/null
+++ b/testing/mrsh/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=mrsh
+# NOTE: this software is not ready to be moved out of the testing repository
+pkgver=0_git20210518
+_commit=cd3c3a48055ab4085d83f149ff4b4feba40b40cb
+pkgrel=1
+pkgdesc="Minimal POSIX shell"
+url="https://mrsh.sh/"
+license="MIT"
+arch="all"
+makedepends="meson readline-dev"
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-libs"
+source="$pkgname-$_commit.tar.gz::https://github.com/emersion/mrsh/archive/$_commit.tar.gz"
+builddir="$srcdir/mrsh-$_commit"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+a625ac90b1e395b9b464317f1c36211c29cc3b17acd28eaf7c3bb1deed497cae6980360ffa516367b16a2613850e5d6795f2a9838d00dbfba6111fc7522cad98 mrsh-cd3c3a48055ab4085d83f149ff4b4feba40b40cb.tar.gz
+"
diff --git a/testing/msgpack-d/APKBUILD b/testing/msgpack-d/APKBUILD
deleted file mode 100644
index ee5a023691a..00000000000
--- a/testing/msgpack-d/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=msgpack-d
-pkgver=1.0.2
-pkgrel=0
-pkgdesc="MessagePack for D"
-url="https://msgpack.org/"
-arch="x86 x86_64 aarch64" # ldc
-license="BSL-1.0"
-makedepends="meson ldc ldc-runtime"
-subpackages="$pkgname-dev"
-source="https://github.com/msgpack/msgpack-d/archive/v$pkgver/msgpack-d-$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="a3c51e2030fa8e30925e4bf75386cd355b4bbe1c0e07a4be81c7c70224e0b6c41e58efe1cc4bfb82c9720b62ef92d54252729554d70ce9e13f78222045a64641 msgpack-d-1.0.2.tar.gz"
diff --git a/testing/msh/APKBUILD b/testing/msh/APKBUILD
new file mode 100644
index 00000000000..829d5dc99f1
--- /dev/null
+++ b/testing/msh/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=msh
+pkgver=2.5.0
+pkgrel=4
+pkgdesc="Autostart and stop minecraft-server when players join/leave"
+url="https://github.com/gekware/minecraft-server-hibernation"
+arch="all"
+license="GPL-3.0-only"
+makedepends="go"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/gekware/minecraft-server-hibernation/archive/refs/tags/v$pkgver.tar.gz
+ msh.initd
+ msh.confd
+"
+builddir="$srcdir/minecraft-server-hibernation-$pkgver"
+options="!check" # no tests
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build .
+}
+
+package() {
+ install -Dm 755 msh "$pkgdir"/usr/bin/msh
+ install -dm 644 -o $pkgname -g $pkgname "$pkgdir"/etc/$pkgname # Write access is required
+
+ install -Dm 644 msh-config.json "$pkgdir"/etc/msh/msh-config.json
+
+ install -Dm755 "$srcdir"/msh.initd "$pkgdir"/etc/init.d/msh
+ install -Dm644 "$srcdir"/msh.confd "$pkgdir"/etc/conf.d/msh
+}
+
+sha512sums="
+90b059f8ba7940023a270e4f09b088ca55f319fd4bbfcdc1bca0bc3efd09b2f509074c283640fe4de3124b865060bd9fc1f4805baaafa5017d1bcbfc5c6424b6 msh-2.5.0.tar.gz
+c5683294949686b348e5bfb870ff39eed7af64758d7646224335aec7d2c431b0d6cf818b19384e10311e7a381be2c85b052e8d859abe8515ccb7fc514fe4696e msh.initd
+8074464d36b54183f0091e48f2ef25ce0378fc12b0e613a4c53a47a3c8bdd4688b8407f115480d8651ad434cfbfeb681a9beb9650124863843beee97cef259ad msh.confd
+"
diff --git a/testing/msh/msh.confd b/testing/msh/msh.confd
new file mode 100644
index 00000000000..51bdf02b38c
--- /dev/null
+++ b/testing/msh/msh.confd
@@ -0,0 +1,3 @@
+command_user="msh:msh"
+directory="/etc/msh"
+logdir="/var/log/msh"
diff --git a/testing/msh/msh.initd b/testing/msh/msh.initd
new file mode 100644
index 00000000000..b354c0107df
--- /dev/null
+++ b/testing/msh/msh.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+supervisor="supervise-daemon"
+
+# fallback values for /etc/conf.d/msh
+: ${command_user:=msh:msh}
+: ${directory:=/etc/msh}
+: ${logdir:=/var/log/msh}
+
+name=msh
+description="Autostart and stop minecraft-server when players join/leave"
+command="/usr/bin/msh"
+command_background=true
+
+pidfile="/run/$name.pid"
+output_log="$logdir/output.log"
+error_log="$logdir/error.log"
+
+depend() {
+ need net
+ use logger
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory" "$logdir"
+ checkpath -f -o "$command_user" "$output_log" "$error_log"
+}
diff --git a/testing/msh/msh.pre-install b/testing/msh/msh.pre-install
new file mode 100644
index 00000000000..615debdc3ad
--- /dev/null
+++ b/testing/msh/msh.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S msh #2>/dev/null
+adduser -S -D -s /sbin/nologin -G msh -g msh msh #2>/dev/null
+
+exit 0
diff --git a/testing/mspdebug/APKBUILD b/testing/mspdebug/APKBUILD
new file mode 100644
index 00000000000..a7849a0cf61
--- /dev/null
+++ b/testing/mspdebug/APKBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=mspdebug
+pkgver=0.25
+pkgrel=1
+pkgdesc="A free debugger for use with MSP430 MCUs"
+url="https://github.com/dlbeer/mspdebug"
+makedepends="libusb-compat-dev readline-dev linux-headers"
+arch="all"
+license="GPL-2.0-only"
+subpackages="$pkgname-doc"
+
+source="$pkgname-$pkgver.tar.gz::https://github.com/dlbeer/mspdebug/archive/v$pkgver.tar.gz"
+options="!check" # no unit tests provided
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="5eba1d4fa6773daa89cccd8eb1964a5dfd5fb5e6719769ab6241c71010aca05c43217a8fcb6bebe1c2d9f58824f1dda5787f27b2e119f0d086eb9ae40e7fca90 mspdebug-0.25.tar.gz"
diff --git a/testing/msr-tools/APKBUILD b/testing/msr-tools/APKBUILD
new file mode 100644
index 00000000000..0759bf6ba14
--- /dev/null
+++ b/testing/msr-tools/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=msr-tools
+pkgver=1.3
+pkgrel=1
+pkgdesc="utilities for MSRs and CPU ID"
+url="https://01.org/msr-tools"
+arch="x86_64 x86"
+license="GPL-2.0-or-later"
+options="!check" # no tests
+source="https://01.org/sites/default/files/downloads/msr-tools/msr-tools-$pkgver.zip"
+builddir="$srcdir"/msr-tools-master
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/bin
+ make sbindir="$pkgdir"/usr/bin install
+}
+
+sha512sums="9605eed0b6211d0ecbe48a14d66b5d61965770f249c5c1b15416d4f2e9a37a68ecfde171077c3acc74bb6b951749bcff186acbb4d6d8a3051695d2d97c0e332b msr-tools-1.3.zip"
diff --git a/testing/mstflint/0001-fix-musl.patch b/testing/mstflint/0001-fix-musl.patch
new file mode 100644
index 00000000000..6a9131c2aed
--- /dev/null
+++ b/testing/mstflint/0001-fix-musl.patch
@@ -0,0 +1,26 @@
+diff -ur mstflint-4.25.0/mtcr_ul/mtcr_ul_com.c mstflint-4.25.0/mtcr_ul/mtcr_ul_com.c
+--- mstflint-4.25.0/mtcr_ul/mtcr_ul_com.c 2022-04-28 11:50:04.000000000 +0000
++++ mstflint-4.25.0/mtcr_ul/mtcr_ul_com.c 2022-05-19 14:06:49.479797274 +0000
+@@ -67,7 +67,13 @@
+ #include <endian.h>
+ #include <byteswap.h>
+ #include <errno.h>
++#ifndef _GNU_SOURCE
++#define _GNU_SOURCE
+ #include <sys/types.h>
++#undef _GNU_SOURCE
++#else
++#include <sys/types.h>
++#endif
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <string.h>
+@@ -77,7 +83,7 @@
+
+ #if CONFIG_ENABLE_MMAP
+ #include <sys/mman.h>
+-#include <sys/pci.h>
++#include <linux/pci.h>
+ #include <sys/ioctl.h>
+ #endif
+
diff --git a/testing/mstflint/APKBUILD b/testing/mstflint/APKBUILD
new file mode 100644
index 00000000000..422e0b6715c
--- /dev/null
+++ b/testing/mstflint/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Hal Martin <hal.martin@gmail.com>
+# Maintainer: Hal Martin <hal.martin@gmail.com>
+pkgname=mstflint
+_pkgver=4.26.0-1
+pkgver=${_pkgver/-/.}
+pkgrel=0
+pkgdesc="MSTFLINT Firmware Burning and Diagnostics Tools"
+url="https://github.com/Mellanox/mstflint"
+license="GPL-2.0-only"
+# only tested on x86_64 as I lack hardware to test other architectures
+# should work for platforms with PCIe and PCIe x4/x8 slot
+arch="x86_64 aarch64"
+makedepends="
+ linux-headers
+ zlib-dev
+ openssl-dev
+ automake
+ autoconf
+ pciutils-dev"
+
+source="https://github.com/Mellanox/mstflint/releases/download/v$_pkgver/mstflint-$_pkgver.tar.gz
+ 0001-fix-musl.patch
+ "
+builddir="$srcdir/$pkgname-${_pkgver/-*/}"
+
+subpackages="$pkgname-doc"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-inband
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+
+sha512sums="
+6ba357f5ed3a8c5ac4195b7b45c5abad3eb95d549f5bd2cc8ae84dee7dab894c47839a3ce3aec04bdaa4942ca953bb148a68cf72c2e9d4e60e090595c96c163e mstflint-4.26.0-1.tar.gz
+0e2b8c69570e9aa5a3815915f6c66e0b0a5f9498c4bea0df5e29d654d436d33bb7bb7fe54405cc883c38077bbea3e1cffb9ee28e9af03dec510c3c36acbecd57 0001-fix-musl.patch
+"
diff --git a/testing/mtg/APKBUILD b/testing/mtg/APKBUILD
index 722c1e418a8..a6f6f505cea 100644
--- a/testing/mtg/APKBUILD
+++ b/testing/mtg/APKBUILD
@@ -1,37 +1,49 @@
# Contributor: Konstantin Kulikov <k.kulikov2@gmail.com>
# Maintainer: Konstantin Kulikov <k.kulikov2@gmail.com>
pkgname=mtg
-pkgver=1.0.5
-pkgrel=0
+pkgver=2.1.7
+pkgrel=13
pkgdesc="MTPROTO proxy for Telegram"
url="https://github.com/9seconds/mtg"
-arch="all"
license="MIT"
+arch="all !x86 !armhf !armv7" # 32bit archs seem broken
makedepends="go"
-options="!check chmod-clean net" # No test suite.
+options="net"
subpackages="$pkgname-openrc"
install="mtg.pre-install"
-source="go.mod go.sum apk.go mtg.initd mtg.confd"
-builddir=$srcdir
+source="$pkgname-$pkgver.tar.gz::https://github.com/9seconds/mtg/archive/refs/tags/v$pkgver.tar.gz
+ mtg.initd
+ mtg.confd
+ mtg.conf
+ skip-network-tests.patch
+ increase-test-timeout.patch
+ "
-export GOPATH=${GOPATH:-$srcdir/go}
-export GOCACHE=${GOCACHE:-$srcdir/go-build}
-export GOTMPDIR=${GOTMPDIR:-$srcdir}
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- for pkg in $(go list -f '{{ join .Imports " " }}'); do
- go build -mod=readonly -v $pkg
- done
+ go build -v .
+}
+
+check() {
+ go test ./...
}
package() {
install -Dm755 $builddir/mtg $pkgdir/usr/sbin/mtg
install -Dm755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/$pkgname
install -Dm644 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/$pkgname
+ install -Dm644 $srcdir/$pkgname.conf $pkgdir/etc/$pkgname.conf
}
-sha512sums="462e5c3c5ccff384827bf84d0bd3b0eee64ba261546c9a27de8704503019969bfff825e017f64980d646daff040df120ed97242ed535e31109b69a6595eae1e1 go.mod
-54ffc5225341914dc556bd321ca2bd8abddbf3e803e306461ce47201715c5c28caaa0762505eb2b981786c8423eb3c5ad67ed0b73ab85008227777fb65a11347 go.sum
-2b4104c4fd669eadf876fb6858de395083f3b3534bc67fdb931cb22a112d939df2eeb8727dd350d6f40dcf173d0f7e36f7ccf43d074b8fa7efd0c190388acc45 apk.go
-39d7bf9eda457435f58ab0415f211d465e1643d357d40d67dc86a609bb0467acd4aef75e50b6b753bb687f6209f29fd426cb283af3743852e9c385b09d4033b4 mtg.initd
-2988b98d27ad1ecc954f5c34e3ebd3f40fd42d1429c60eccf82d3b19e326bf0f6c17670e5800f1bdfcf93cc6a9c4ef6d39bf4561d07abdf0bc5c9d091bda20e9 mtg.confd"
+sha512sums="
+e98307683274e73977b352442ccabcc9064a4dd93a3f840c9b36edffce6d2a66ee01ffce49eaf496451c351ce083447d72009912483dd9639847a32055822c95 mtg-2.1.7.tar.gz
+6ce0b34b2224ea86d56f1c6911302c42a6b4aa9d13046fd0016d9adc267121fd1365829e26559875b836d0b94f9e784954949094489b7e16975d82332d241273 mtg.initd
+41c3edc721fae9569596776e38fe6cebfe213cbb62b9a187fbb893eab9421d64ec5a683a54af5f1444a3e28af89402ab4d55abf9f653a64a040c0a4b684f5ece mtg.confd
+340651372d8fa861bf40ead66af7fc52ee917aa62eb21bbf562bd5775ffd13ed688fe516a278aa96a8fe55ea48225ca1d9048a7bca7eaf6a5fedd563b27f21b4 mtg.conf
+affffba79e839030482c904cd278977d380e5d5179d752c28ee923e69fa82bd09458517d851c943fa7ffe121811c663c2dc6b692c34b3a2c6e28ab4284eac11d skip-network-tests.patch
+70eef96edf5298da0d1b6540ecf31253f0b5cfbe443b77f0b7f601051d9e6060f15afc29ecd0de92db3b7e8e0cbcd055b30b3b990b4202da546a798db4c48e7a increase-test-timeout.patch
+"
diff --git a/testing/mtg/apk.go b/testing/mtg/apk.go
deleted file mode 100644
index 261f931d7bc..00000000000
--- a/testing/mtg/apk.go
+++ /dev/null
@@ -1,6 +0,0 @@
-package apk
-
-import (
- _ "github.com/9seconds/mtg"
-)
-
diff --git a/testing/mtg/go.mod b/testing/mtg/go.mod
deleted file mode 100644
index 6b4aadd1b21..00000000000
--- a/testing/mtg/go.mod
+++ /dev/null
@@ -1,5 +0,0 @@
-module apk
-
-go 1.12
-
-require github.com/9seconds/mtg v1.0.5
diff --git a/testing/mtg/go.sum b/testing/mtg/go.sum
deleted file mode 100644
index 3933aab9d33..00000000000
--- a/testing/mtg/go.sum
+++ /dev/null
@@ -1,183 +0,0 @@
-github.com/9seconds/mtg v1.0.5 h1:iEYotWW3Bbg6tia6jz6ukedePM3WBjaqR8X9S91kom8=
-github.com/9seconds/mtg v1.0.5/go.mod h1:MO64Qt+88haAVltkfsD+vpBkvvAzf5TpMKeOOaGelF4=
-github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/VictoriaMetrics/fastcache v1.5.7 h1:4y6y0G8PRzszQUYIQHHssv/jgPHAb5qQuuDNdCbyAgw=
-github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=
-github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
-github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8=
-github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
-github.com/beevik/ntp v0.3.0 h1:xzVrPrE4ziasFXgBVBZJDP0Wg/KpMwk2KHJ4Ba8GrDw=
-github.com/beevik/ntp v0.3.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
-github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.5 h1:F768QJ1E9tib+q5Sc8MkdJi1RxLTbRcTf8LJV56aRls=
-github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
-github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
-github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
-github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.5.1 h1:bdHYieyGlH+6OLEk2YQha8THib30KP0/yD0YH9m6xcA=
-github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=
-github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/procfs v0.0.11 h1:DhHlBtkHWPYi8O2y31JkK0TF+DGM+51OopZjH/Ia5qI=
-github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/smira/go-statsd v1.3.1 h1:JalGiHNdK7GqVAPpg7j0Kwp2jZrz/fCg/B4ZuNuBY2w=
-github.com/smira/go-statsd v1.3.1/go.mod h1:1srXJ9/pbnN04G8f4F1jUzsGOnwkPKXciyqpewGlkC4=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
-go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
-go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
-go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
-go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.14.1 h1:nYDKopTbvAPq/NrUVZwT15y2lpROBiLLyoRTbXOYWOo=
-go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
-golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59 h1:3zb4D3T4G8jdExgVU/95+vQXfpEPiMdCaZgmGVxjNHM=
-golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
-golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k=
-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775 h1:TC0v2RSO1u2kn1ZugjrFXkRZAEaqMN/RW+OTZkBzmLE=
-golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200319210407-521f4a0cd458 h1:DgonIcqC7u+gVZX7lpuReBil5B/i8fvW/hAQdhT6/ao=
-golang.org/x/tools v0.0.0-20200319210407-521f4a0cd458/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
-honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U=
-honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
diff --git a/testing/mtg/increase-test-timeout.patch b/testing/mtg/increase-test-timeout.patch
new file mode 100644
index 00000000000..b40c8f95f23
--- /dev/null
+++ b/testing/mtg/increase-test-timeout.patch
@@ -0,0 +1,11 @@
+--- a/mtglib/proxy_test.go
++++ b/mtglib/proxy_test.go
+@@ -149,7 +149,7 @@
+ InsecureSkipVerify: true,
+ },
+ },
+- Timeout: 5 * time.Second,
++ Timeout: 15 * time.Second,
+ }
+
+ addr := fmt.Sprintf("https://%s/headers", suite.ProxyAddress())
diff --git a/testing/mtg/mtg.conf b/testing/mtg/mtg.conf
new file mode 100644
index 00000000000..45e3b480ad3
--- /dev/null
+++ b/testing/mtg/mtg.conf
@@ -0,0 +1,3 @@
+# /usr/sbin/mtg generate-secret --help
+secret = ""
+bind-to = "0.0.0.0:3128"
diff --git a/testing/mtg/mtg.confd b/testing/mtg/mtg.confd
index bf2879d53e4..764e0c726d7 100644
--- a/testing/mtg/mtg.confd
+++ b/testing/mtg/mtg.confd
@@ -1,6 +1,5 @@
-# Replace SECRET with actual secret. To generate one see:
-# /usr/sbin/mtg generate-secret --help
-MTG_OPTS="-b 0.0.0.0:3128 SECRET"
+# Path to config file
+MTG_CONFIG="/etc/mtg.conf"
# Uncomment both lines if you want mtg to send logs to syslog.
#error_logger="logger -t $RC_SVCNAME"
diff --git a/testing/mtg/mtg.initd b/testing/mtg/mtg.initd
index 38a4cf0921a..21126bdc9f7 100644
--- a/testing/mtg/mtg.initd
+++ b/testing/mtg/mtg.initd
@@ -1,7 +1,7 @@
#!/sbin/openrc-run
command="/usr/sbin/mtg"
-command_args="run $MTG_OPTS"
+command_args="run $MTG_CONFIG"
command_background=yes
command_user=mtg:mtg
pidfile="/run/$RC_SVCNAME.pid"
diff --git a/testing/mtg/skip-network-tests.patch b/testing/mtg/skip-network-tests.patch
new file mode 100644
index 00000000000..d56b747b61a
--- /dev/null
+++ b/testing/mtg/skip-network-tests.patch
@@ -0,0 +1,29 @@
+Some tests do requests to remote servers which are
+found to be not available from builders.
+
+diff --git a/mtglib/proxy_test.go b/mtglib/proxy_test.go
+index 59963c6..899cfe4 100644
+--- a/mtglib/proxy_test.go
++++ b/mtglib/proxy_test.go
+@@ -175,6 +175,8 @@ func (suite *ProxyTestSuite) TestHTTPSRequest() {
+ }
+
+ func (suite *ProxyTestSuite) TestMakeRealRequest() {
++ suite.T().Skip("telegram server not available from builders")
++
+ secret, _ := hex.DecodeString(suite.opts.Secret.Hex())
+ resolver, err := dcs.MTProxyResolver(
+ suite.ProxyAddress(),
+diff --git a/network/network_test.go b/network/network_test.go
+index 891c614..d57577c 100644
+--- a/network/network_test.go
++++ b/network/network_test.go
+@@ -51,6 +51,8 @@ func (suite *NetworkTestSuite) TestLocalHTTPRequest() {
+ }
+
+ func (suite *NetworkTestSuite) TestRealHTTPRequest() {
++ suite.T().Skip("httpbin.org not available from builders")
++
+ ntw, err := network.NewNetwork(suite.dialer, "itsme", "1.1.1.1", 0)
+ suite.NoError(err)
+
diff --git a/testing/mtm/APKBUILD b/testing/mtm/APKBUILD
new file mode 100644
index 00000000000..e718a46de10
--- /dev/null
+++ b/testing/mtm/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=mtm
+pkgver=1.2.1
+pkgrel=0
+pkgdesc="Perhaps the smallest useful terminal multiplexer in the world"
+url="https://github.com/deadpixi/mtm"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # No tests
+depends="ncurses-terminfo"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/deadpixi/mtm/archive/$pkgver.tar.gz"
+
+build() {
+ make HEADERS='-DNCURSESW_INCLUDE_H="<ncurses.h>"'
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin
+ install -Dm644 $pkgname.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+74e5230c6ea65c87d580516b7b62edeb4f273c1a36662bac84af41ca47e4ce252e393132dfe8c700441d6b74c19d6d560fbc503815c12f9d1cbdda2e19a9a9e2 mtm-1.2.1.tar.gz
+"
diff --git a/testing/mtxclient/APKBUILD b/testing/mtxclient/APKBUILD
deleted file mode 100644
index c27fbe95cf4..00000000000
--- a/testing/mtxclient/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mtxclient
-pkgver=0.3.0
-pkgrel=0
-pkgdesc="Client API library for Matrix, built on top of Boost.Asio"
-url="https://github.com/nheko-reborn/mtxclient"
-arch="all"
-license="MIT"
-depends_dev="nlohmann-json openssl-dev zlib-dev olm-dev libsodium-dev boost-dev"
-makedepends="$depends_dev cmake gtest-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/nheko-reborn/mtxclient/archive/v$pkgver.tar.gz"
-options="!check" # Requires running Synapse instance
-
-build() {
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_LIB_EXAMPLES=OFF \
- -DCMAKE_BUILD_TYPE=None
- make
-}
-
-check() {
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="113eb2c1042e0aeea6607fae0b7fd0ff1655d6b902fa11a3492561c53240901e641f53d413810e932ac210e519026016c5fac38bda1592336c95b2d79781557e mtxclient-0.3.0.tar.gz"
diff --git a/testing/multibootusb/APKBUILD b/testing/multibootusb/APKBUILD
deleted file mode 100644
index 711520f0fd6..00000000000
--- a/testing/multibootusb/APKBUILD
+++ /dev/null
@@ -1,52 +0,0 @@
-# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=multibootusb
-pkgver=9.2.0
-pkgrel=2
-pkgdesc="Create multi boot live Linux on a USB disk"
-url="http://multibootusb.org/"
-arch="noarch"
-license="GPL-2.0"
-depends="python3 p7zip parted util-linux py3-udev mtools py3-dbus py3-six $pkgname-data"
-makedepends="py3-setuptools"
-options="!check" # this package has no tests
-subpackages="$pkgname-gui:_gui $pkgname-data:_data"
-source="${pkgname}-${pkgver}.tar.gz::https://github.com/mbusb/${pkgname}/archive/v${pkgver}.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --root="$pkgdir" --prefix="/usr"
-
- # remove windows executables
- rm -rf "$pkgdir"/usr/share/multibootusb/data/tools/dd \
- "$pkgdir"/usr/share/multibootusb/data/tools/mkfs \
- "$pkgdir"/usr/share/multibootusb/data/tools/syslinux/syslinux_windows.zip
-}
-
-_data() {
- description="$description (Data files)"
- options="!archcheck"
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/multibootusb \
- "$subpkgdir"/usr/share
-}
-
-_gui() {
- description="$description (GUI)"
- depends="py3-qt5 $pkgname"
- mkdir -p "$subpkgdir"
-
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/pixmaps \
- "$pkgdir"/usr/share/applications \
- "$subpkgdir"/usr/share
-
-
-}
-sha512sums="461ce6edd835b2a017d96c3987338cd9004894949ac0b121fc289d100b7945dd89970f966e48310b97f312221a2f5a047190c55802d3a07a9eec0bf6ec22356d multibootusb-9.2.0.tar.gz"
diff --git a/testing/muon/APKBUILD b/testing/muon/APKBUILD
new file mode 100644
index 00000000000..fcb4b63b0f4
--- /dev/null
+++ b/testing/muon/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Stone Tickle <lattis@mochiro.moe>
+# Maintainer: Stone Tickle <lattis@mochiro.moe>
+pkgname=muon
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="A meson-compatible build system."
+url="https://muon.build"
+arch="all"
+license="GPL-3.0-only AND Apache-2.0"
+depends="samurai"
+makedepends="scdoc curl-dev libarchive-dev pkgconf-dev python3 py3-yaml"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~lattis/muon/archive/$pkgver.tar.gz
+ https://mochiro.moe/wrap/meson-docs-0.64.1-19-g39c6fa4bc.tar.gz
+ fix-tests.patch
+"
+builddir="$srcdir/$pkgname-$pkgver/"
+
+build() {
+ mv ../meson-docs subprojects/
+ ./bootstrap.sh build
+ build/muon setup build
+ samu -C build
+
+ # options copied from abuild-meson
+ build/muon setup \
+ -Dprefix=/usr \
+ -Dlibdir=/usr/lib \
+ -Dlibexecdir=/usr/libexec \
+ -Dbindir=/usr/bin \
+ -Dsbindir=/usr/sbin \
+ -Dincludedir=/usr/include \
+ -Ddatadir=/usr/share \
+ -Dmandir=/usr/share/man \
+ -Dinfodir=/usr/share/info \
+ -Dlocaledir=/usr/share/locale \
+ -Dsysconfdir=/etc \
+ -Dlocalstatedir=/var \
+ -Dsharedstatedir=/var/lib \
+ -Dbuildtype=plain \
+ -Dauto_features=auto \
+ -Dwrap_mode=nodownload \
+ -Db_lto=false \
+ -Db_staticpic=true \
+ -Db_pie=true \
+ build
+
+ samu -C build
+}
+
+check() {
+ build/muon -C build test -d dots
+}
+
+package() {
+ DESTDIR=$pkgdir build/muon -C build install
+}
+
+sha512sums="
+b2e90048756bdc26bdea24fe227a87ad4d0e57176e217e22ea492a55229c62e2a70243f60af1e162e2dde8468fdda9662a32ea5cfadd69fab95a83499efa077b muon-0.2.0.tar.gz
+59c986c4c4d545a6488cd74a2b6563b867716b74aab95fd19a745ce46a99fe5222232e132c80c5ed80f3e61d13e74cf2dc13b1b6d4638fd40a69d82d0d74faaa meson-docs-0.64.1-19-g39c6fa4bc.tar.gz
+e9b402583f6dcf31756408abde8eef4752d34c36fcc96b563095eaf73c1736ec06012c347828d5040e18d8b0b788371a5d6fd4866cb4be23b57320ca0df6a74d fix-tests.patch
+"
diff --git a/testing/muon/fix-tests.patch b/testing/muon/fix-tests.patch
new file mode 100644
index 00000000000..ea750db09d2
--- /dev/null
+++ b/testing/muon/fix-tests.patch
@@ -0,0 +1,28 @@
+One of the test cases of this test checks if ppoll is only defined
+when poll.h is included with -D_GNU_SOURCE. The generated C code
+for this test must be compiled with -std=c99 or newer, as otherwise,
+the ppoll function will be implicitly declared to be `int ppoll()`
+even if poll.h doesn't define it, thereby causing the test case
+to fail.
+
+The test failure message is:
+
+c compiler: has function ppoll: YES
+c compiler: header poll.h has symbol ppoll: YES
+err ppoll should not be accessible without _GNU_SOURCE
+tests/project/common/103 has header symbol/meson.build:49:5: error in function assert()
+ 49 | assert(
+ ^
+
+diff -upr "muon-0.2.0.orig/tests/project/common/103 has header symbol/meson.build" "muon-0.2.0/tests/project/common/103 has header symbol/meson.build"
+--- "muon-0.2.0.orig/tests/project/common/103 has header symbol/meson.build" 2024-03-27 22:11:49.923516032 +0100
++++ "muon-0.2.0/tests/project/common/103 has header symbol/meson.build" 2024-03-27 22:12:09.156904627 +0100
+@@ -2,7 +2,7 @@ project(
+ 'has header symbol',
+ 'c',
+ 'cpp',
+- default_options: ['cpp_std=c++11'],
++ default_options: ['c_std=c99', 'cpp_std=c++11'],
+ )
+
+ cc = meson.get_compiler('c')
diff --git a/testing/muse/APKBUILD b/testing/muse/APKBUILD
new file mode 100644
index 00000000000..643c508a020
--- /dev/null
+++ b/testing/muse/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=muse
+pkgver=4.2.1
+pkgrel=1
+pkgdesc="Linux Music Editor"
+url="https://github.com/muse-sequencer/muse/"
+# x86: doesn't build
+arch="all !x86"
+license="GPL-2.0-or-later"
+makedepends="
+ alsa-lib-dev
+ cmake
+ extra-cmake-modules
+ fluidsynth-dev
+ jack-dev
+ ladspa-dev
+ libsamplerate-dev
+ libsndfile-dev
+ lilv-dev
+ lv2-dev
+ python3-dev
+ qt5-qtbase-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ rubberband-dev
+ samurai
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/muse-sequencer/muse/archive/refs/tags/$pkgver/muse-$pkgver.tar.gz"
+builddir="$srcdir/muse-$pkgver/src"
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+cf033cf77cb328a2aa704bf04d69dd515108e9c789e2ec9321a577b5b3b3bb73ce738142903b69b2c9c3ec5c27e921adc52511932f48809149f5a5cf5fd7deb2 muse-4.2.1.tar.gz
+"
diff --git a/testing/musescore/APKBUILD b/testing/musescore/APKBUILD
deleted file mode 100644
index 18a8ac79a96..00000000000
--- a/testing/musescore/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=musescore
-pkgver=3.4.2
-pkgrel=0
-pkgdesc="Create, play and print beautiful sheet music"
-url="https://musescore.org/"
-arch="all !armhf" # qt5-qtdeclarative
-arch="$arch !mips !mips64" # texlive
-license="GPL-2.0-or-later"
-depends="
- qt5-qtbase
- qt5-qtgraphicaleffects
- qt5-qtquickcontrols2
- "
-install="$pkgname.pre-install $pkgname.pre-upgrade"
-makedepends="
- ccache
- cmake
- doxygen
- jack-dev
- lame-dev
- libsndfile-dev
- portaudio-dev
- portmidi-dev
- pulseaudio-dev
- qt5-qtbase-dev
- qt5-qtquickcontrols2-dev
- qt5-qtdeclarative-dev
- qt5-qtscript-dev
- qt5-qtsvg-dev
- qt5-qttools-dev
- qt5-qtwebchannel-dev
- qt5-qtlocation-dev
- qt5-qtxmlpatterns-dev
- texlive-dev
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/musescore/MuseScore/archive/v$pkgver.tar.gz"
-options="!check" # no testsuit provided
-builddir="$srcdir"/MuseScore-$pkgver
-
-build() {
- make PREFIX=/usr BUILD_WEBENGINE=OFF USE_SYSTEM_FREETYPE=ON revision release
-}
-
-package() {
- DESTDIR="$pkgdir" make UPDATE_CACHE=FALSE -C build.release install
-}
-
-sha512sums="d53024a04793dd418bce910e47b1d6f785b6e5ffbd97117a910f144ee37d20c20ce555a45fcf30532019aa8d7e429fc2dfedfef33a6078ab73889fe7995fe9f4 musescore-3.4.2.tar.gz"
diff --git a/testing/musescore/musescore.pre-install b/testing/musescore/musescore.pre-install
deleted file mode 100644
index 019d8334655..00000000000
--- a/testing/musescore/musescore.pre-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-printf " *\n * Musescore supports both 'alsa' and 'pulseaudio'.\n *\n"
-printf " *\n * 'alsa' needs 'modprobe snd_seq'.\n *\n"
-printf " *\n * 'pulseaudio' works out of the box.\n *\n"
diff --git a/testing/musescore/musescore.pre-upgrade b/testing/musescore/musescore.pre-upgrade
deleted file mode 100644
index 10005dc03c0..00000000000
--- a/testing/musescore/musescore.pre-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-musescore.pre-install
diff --git a/testing/musikcube/APKBUILD b/testing/musikcube/APKBUILD
new file mode 100644
index 00000000000..cf72ffda84c
--- /dev/null
+++ b/testing/musikcube/APKBUILD
@@ -0,0 +1,108 @@
+# Maintainer:
+pkgname=musikcube
+pkgver=3.0.2
+pkgrel=1
+pkgdesc="a cross-platform, terminal-based music player, audio engine, metadata indexer, and server"
+url="https://github.com/clangen/musikcube"
+arch="all"
+license="BSD-3-Clause"
+# TODO: libbasu-dev instead of elogind-dev yields a nonfunctioning mpris plugin,
+# even though session is not in elogind anyway, libelogind works
+makedepends="
+ alsa-lib-dev
+ asio-dev
+ cmake
+ curl-dev
+ elogind-dev
+ ffmpeg-dev
+ kissfft-dev
+ lame-dev
+ libev-dev
+ libmicrohttpd-dev
+ libopenmpt-dev
+ ncurses-dev
+ pipewire-dev
+ samurai
+ sdbus-cpp-dev
+ sqlite-dev
+ taglib-dev
+ "
+# TODO: split server (-d)
+# put plugins in not /usr/share
+# split locales
+subpackages="
+ $pkgname-dev
+ $pkgname-plugin-all:allplugins
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/clangen/musikcube/archive/refs/tags/$pkgver.tar.gz
+ locale.patch
+ tinfo.patch
+ sys.patch
+ "
+options="!check" # no tests
+
+# alsa/pipewire/ffmpegdecorder left in by default
+_plugins="
+ httpdatastream
+ mpris
+ openmpt
+ server
+ stockencoders
+ supereqdsp
+ taglibreader
+ "
+for _plugin in $_plugins; do
+ subpackages="$subpackages $pkgname-plugin-$_plugin:plugin"
+done
+
+prepare() {
+ default_prepare
+
+ cd src/3rdparty
+ rm -r src/sqlite
+ rm -r src/kiss*
+}
+
+build() {
+ # no-ncursesw prevents looking in the wrong place
+ # disable-update-check is passed for ''homebrew builds'', removes update checker
+ CFLAGS="$CFLAGS -DNDEBUG -O2" \
+ CXXFLAGS="$CXXFLAGS -DDISABLE_UPDATE_CHECK -DNO_NCURSESW -DNDEBUG -O2" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir -p "$pkgdir"/usr/lib
+ mv "$pkgdir"/usr/share/musikcube/libmusikcore.so "$pkgdir"/usr/lib/
+
+ # just sh wrappers, so use symlinks instead
+ ln -sfv ../share/musikcube/musikcube "$pkgdir"/usr/bin/musikcube
+ ln -sfv ../share/musikcube/musikcubed "$pkgdir"/usr/bin/musikcubed
+}
+
+plugin() {
+ local sub="${subpkgname#"$pkgname"-plugin-}"
+ pkgdesc="$pkgdesc ($sub plugin)"
+
+ amove usr/share/musikcube/plugins/*$sub*.so
+}
+
+allplugins() {
+ pkgdesc="$pkgdesc (all plugins)"
+ local plugin
+ for plugin in $_plugins; do
+ depends="$depends $pkgname-plugin-$plugin=$pkgver-r$pkgrel"
+ done
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="
+33d7fa0768c235afa2d877fb2bd3523f47c2fcf1bd500daabbd3755645439c51a1d477e8e8fe7f2a6aba451121b0d600e413fa0a491da9947a4dff7cb0430d82 musikcube-3.0.2.tar.gz
+cbb0c515a245475221f98b6858152f99c5e0d1d95ee4d79ecfcb616788f907099aed7195fa16180267900e56c136bd9d38caea7b285a2f8720cd7a767cbba279 locale.patch
+4f473fae6a4351875930ee5ba537116047e7cd1e16d70822f815b46bacb4e80289afcef9c577b0ef9c966ddc8087819391a2517b630e4ef4a791c120b849b2a7 tinfo.patch
+fdcd4c2ed2771b6c5584723a6a9e7d4ab582cceb5f50f4b8bd22b59be31eb8bf905c4e5981c6aabcf437ff64ea5b49b0b0ec2b8da5b458311a8880bdacbc8be5 sys.patch
+"
diff --git a/testing/musikcube/locale.patch b/testing/musikcube/locale.patch
new file mode 100644
index 00000000000..29eaaf65f3b
--- /dev/null
+++ b/testing/musikcube/locale.patch
@@ -0,0 +1,15 @@
+the output of setlocale is quite opaque and segfaults in portable libstdc++ locale() implementation later, so just use current
+--
+diff --git a/src/musikcube/app/model/DirectoryAdapter.cpp b/src/musikcube/app/model/DirectoryAdapter.cpp
+index 6108cde..2f4d1bc 100755
+--- a/src/musikcube/app/model/DirectoryAdapter.cpp
++++ b/src/musikcube/app/model/DirectoryAdapter.cpp
+@@ -133,7 +133,7 @@ static void buildDirectoryList(
+ std::sort(
+ target.begin(),
+ target.end(),
+- std::locale(setlocale(LC_ALL, nullptr)));
++ std::locale(""));
+ }
+ catch (...) {
+ std::sort(target.begin(), target.end());
diff --git a/testing/musikcube/sys.patch b/testing/musikcube/sys.patch
new file mode 100644
index 00000000000..b1e80ff83e6
--- /dev/null
+++ b/testing/musikcube/sys.patch
@@ -0,0 +1,37 @@
+use system versions of some things
+--
+diff --git a/src/musikcore/CMakeLists.txt b/src/musikcore/CMakeLists.txt
+index 8309cc3..8894c15 100644
+--- a/src/musikcore/CMakeLists.txt
++++ b/src/musikcore/CMakeLists.txt
+@@ -1,3 +1,7 @@
++find_package(PkgConfig REQUIRED)
++pkg_check_modules(kissfft REQUIRED kissfft-float)
++pkg_check_modules(sqlite REQUIRED sqlite3)
++
+ set(CORE_SOURCES
+ ./c_context.cpp
+ ./c_interface_wrappers.cpp
+@@ -67,10 +71,7 @@ set(CORE_SOURCES
+ ./support/Playback.cpp
+ ./support/Preferences.cpp
+ ./support/PreferenceKeys.cpp
+ ../3rdparty/src/sqlean/unicode/extension.c
+- ../3rdparty/src/sqlite/sqlite3.c
+- ../3rdparty/src/kiss_fft.c
+- ../3rdparty/src/kiss_fftr.c
+ ../3rdparty/src/md5.c
+ )
+
+@@ -85,9 +86,9 @@ add_definitions(-DMCSDK_DEFINE_EXPORTS)
+ add_library(musikcore SHARED ${CORE_SOURCES})
+
+ set_target_properties(musikcore PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${musikcube_SOURCE_DIR}/bin)
+-target_link_libraries(musikcore ${musikcube_LINK_LIBS})
+-target_include_directories(musikcore BEFORE PRIVATE ${VENDOR_INCLUDE_DIRECTORIES})
++target_link_libraries(musikcore ${musikcube_LINK_LIBS} ${sqlite_LIBRARIES} ${kissfft_LIBRARIES})
++target_include_directories(musikcore BEFORE PRIVATE ${VENDOR_INCLUDE_DIRECTORIES} ${sqlite_INCLUDE_DIRS} ${kissfft_INCLUDE_DIRS})
+ find_header(asio.hpp)
+
+ if (ENABLE_PCH MATCHES "true")
+ message(STATUS "[musikcore] enabling precompiled headers")
diff --git a/testing/musikcube/tinfo.patch b/testing/musikcube/tinfo.patch
new file mode 100644
index 00000000000..dbc021e2985
--- /dev/null
+++ b/testing/musikcube/tinfo.patch
@@ -0,0 +1,16 @@
+libtinfo is just a split part of ncurses
+--
+diff --git a/src/musikcube/CMakeLists.txt b/src/musikcube/CMakeLists.txt
+index e16ec8b..7d10500 100644
+--- a/src/musikcube/CMakeLists.txt
++++ b/src/musikcube/CMakeLists.txt
+@@ -113,9 +113,6 @@ else()
+ message(STATUS "[ncurses] detected OpenBSD, unsetting LIBTINFO")
+ set(LIBTINFO "")
+ else()
+- message(STATUS "[ncurses] not Darwin! will attempt to link against libtinfo")
+- find_library(LIBTINFO NAMES tinfo)
+- message(STATUS "[musikcube] using libtinfo at: " ${LIBTINFO})
+ endif()
+ endif()
+
diff --git a/testing/mustach/APKBUILD b/testing/mustach/APKBUILD
deleted file mode 100644
index 5924f7231d1..00000000000
--- a/testing/mustach/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Lucas Ramage <ramage.lucas@protonmail.com>
-# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
-pkgname=mustach
-pkgver=0.99_git20200124
-_sha=62f2b3c5625de3292ea86ca92a077e162db75911 # contains fully qualified soname
-pkgrel=1
-pkgdesc="C implementation of mustache templating"
-url="https://gitlab.com/jobol/mustach"
-arch="all !mips !mips64" # testsuite crashes on mips
-license="Apache-2.0"
-makedepends="json-c-dev valgrind"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="https://gitlab.com/jobol/mustach/-/archive/$_sha/mustach-$_sha.tar.bz2"
-builddir="$srcdir/$pkgname-$_sha"
-
-build() {
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" PREFIX="/usr" install
-
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 AUTHORS README.md \
- "$pkgdir"/usr/share/doc/$pkgname/
-}
-sha512sums="d2cd892ff936d400b1776a298bad81b38289733b215c6d5ccd7601001e26282a57d9cdcab514c0b48a4109b156f398904e5f3304765b32bec6ad95c7749c8220 mustach-62f2b3c5625de3292ea86ca92a077e162db75911.tar.bz2"
diff --git a/testing/mwoffliner/APKBUILD b/testing/mwoffliner/APKBUILD
deleted file mode 100644
index bb3b3038620..00000000000
--- a/testing/mwoffliner/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=mwoffliner
-pkgver=1.10.8
-pkgrel=1
-pkgdesc="Scrape any online Mediawiki motorised wiki to your local filesystem"
-url="https://github.com/openzim/mwoffliner"
-arch="x86_64"
-license="GPL-3.0-or-later"
-options="!check" # no test suite from upstream
-depends="nodejs-npm redis libc6-compat"
-makedepends="python3 autoconf automake chrpath libjpeg-turbo-dev nasm zlib-dev
- libzim-dev bash"
-subpackages="$pkgname-doc"
-source="mwoffliner-$pkgver.tar.gz::https://github.com/openzim/mwoffliner/archive/v$pkgver.tar.gz"
-
-build() {
- npm install
-}
-
-check() {
- npm test
-}
-
-package() {
- install -d "$pkgdir"/usr/share/doc/$pkgname "$pkgdir"/usr/lib/node_modules/$pkgname
- cp -a lib node_modules package*.json "$pkgdir"/usr/lib/node_modules/$pkgname
- ln -s /usr/lib/node_modules/$pkgname/bin/$pkgname "$pkgdir"/usr/lib/node_modules/$pkgname
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-
- # Strip all the rpath that include /home
- local scandir="$pkgdir"/usr/lib/node_modules/mwoffliner/node_modules/@openzim/libzim/
- scanelf --recursive --rpath --etype ET_DYN "$scandir" | \
- awk '/home/{print $3;}' | xargs chrpath --delete
-}
-
-sha512sums="fe8a3a8d735764effddafd83d96ed10169218cd1b197badaccc3cecbc0b20acf91a6474356d7daf71e4e2b4b576c005a21c731fe82df559f1ed2af58fe659b9e mwoffliner-1.10.8.tar.gz"
diff --git a/testing/mxclient/APKBUILD b/testing/mxclient/APKBUILD
new file mode 100644
index 00000000000..d7c8ad45025
--- /dev/null
+++ b/testing/mxclient/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=mxclient
+pkgver=0_git20211002
+pkgrel=1
+_commitid="7d47bcf1df699c2a9ea9b333c3b980c546455a3b"
+pkgdesc="minimalist client for sending mail direct to the recipient's MX"
+url="https://github.com/richfelker/mxclient/"
+arch="all"
+license="MIT"
+options="!check" # no tests
+makedepends="bearssl-dev"
+source="mxclient-$pkgver.tar.gz::https://github.com/richfelker/mxclient/archive/$_commitid.tar.gz"
+builddir="$srcdir/"mxclient-$_commitid
+
+build() {
+ make
+}
+
+package() {
+ mkdir -p $pkgdir/usr/bin
+ make DESTDIR=$pkgdir bindir=/usr/bin install
+}
+
+sha512sums="
+7674975630312bbff07a07d9d6bf66fc18df5ef5acb0d690b25d8c15b741df4fc9d128334ab5491b66d345f0816342d00e62aaaa5364e583dd3513cd47585a3e mxclient-0_git20211002.tar.gz
+"
diff --git a/testing/mxml/APKBUILD b/testing/mxml/APKBUILD
deleted file mode 100644
index f2bdb902661..00000000000
--- a/testing/mxml/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=mxml
-pkgver=3.1
-pkgrel=0
-pkgdesc="Small XML library that you can use to read and write XML files"
-url="https://www.msweet.org/mxml/"
-arch="all"
-license="Apache-2.0"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/michaelrsweet/mxml/archive/v$pkgver.tar.gz"
-
-build() {
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var
- make
-}
-
-check() {
- make testmxml
-}
-
-package() {
- make BUILDROOT="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="8f8923b394093db5c471c52c17185916bc3c91f66c97de66919bfef2a09f271879a52f285e5fc4ded03484a3f83ba8fdb588d985b06e0c25ee001f1a80ffa586 mxml-3.1.tar.gz"
diff --git a/testing/mycli/APKBUILD b/testing/mycli/APKBUILD
deleted file mode 100644
index ffe36effa83..00000000000
--- a/testing/mycli/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=mycli
-pkgver=1.21.1
-pkgrel=0
-pkgdesc="MySQL CLI with autocompletion and syntax highlighting"
-url="https://www.mycli.net"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3
- py3-click
- py3-pygments
- py3-prompt_toolkit>2.0.5
- py3-pymysql
- py3-sqlparse<0.4.0
- py3-configobj
- py3-cryptography
- py3-cli_helpers"
-makedepends="python3-dev py3-setuptools"
-checkdepends="py3-pytest py3-mock"
-source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/m/mycli/mycli-$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m pytest -v test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ed7b971fdefd36f7a93b3b373b0b81e51f43b21ce53089e5ae6bfe828361f47b5d6b95c8d3974496546f014fd71ac14a6b4a79f570271fe192a14ab77c8084fd mycli-1.21.1.tar.gz"
diff --git a/testing/mycroft-core/0001-remove-xmlrunner-dep.patch b/testing/mycroft-core/0001-remove-xmlrunner-dep.patch
deleted file mode 100644
index ba0b0201f09..00000000000
--- a/testing/mycroft-core/0001-remove-xmlrunner-dep.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mycroft-core/pull/2571
-
-From 81a5025667b6c000e3f87c35d4357f28888c65f8 Mon Sep 17 00:00:00 2001
-From: Bart Ribbers <bribbers@disroot.org>
-Date: Wed, 6 May 2020 13:55:24 +0200
-Subject: [PATCH] Remove the xmlrunner dep from requirements.txt, it isn't
- actually used anymore
-
----
- requirements.txt | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/requirements.txt b/requirements.txt
-index d0c6cc1a5a7..d265e2e2fc4 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -8,7 +8,6 @@ tornado==6.0.3
- websocket-client==0.54.0
- requests-futures==0.9.5
- pyalsaaudio==0.8.2
--xmlrunner==1.7.7
- pyserial==3.0
- psutil==5.6.6
- pocketsphinx==0.1.0
diff --git a/testing/mycroft-core/0002-follow-xdg-for-skill-settings.patch b/testing/mycroft-core/0002-follow-xdg-for-skill-settings.patch
deleted file mode 100644
index 6caf8370699..00000000000
--- a/testing/mycroft-core/0002-follow-xdg-for-skill-settings.patch
+++ /dev/null
@@ -1,204 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mycroft-core/pull/2559
-
-diff --git a/mycroft/skills/mycroft_skill/mycroft_skill.py b/mycroft/skills/mycroft_skill/mycroft_skill.py
-index 4f3b6d9da6..d60a3279d0 100644
---- a/mycroft/skills/mycroft_skill/mycroft_skill.py
-+++ b/mycroft/skills/mycroft_skill/mycroft_skill.py
-@@ -21,8 +21,11 @@ import traceback
- from itertools import chain
- from os import walk
- from os.path import join, abspath, dirname, basename, exists
-+from pathlib import Path
- from threading import Event, Timer
-
-+from xdg import BaseDirectory
-+
- from adapt.intent import Intent, IntentBuilder
-
- from mycroft import dialog
-@@ -113,6 +116,7 @@ class MycroftSkill:
- bus (MycroftWebsocketClient): Optional bus connection
- use_settings (bool): Set to false to not use skill settings at all
- """
-+
- def __init__(self, name=None, bus=None, use_settings=True):
- self.name = name or self.__class__.__name__
- self.resting_name = None
-@@ -123,16 +127,6 @@ class MycroftSkill:
- #: Member variable containing the absolute path of the skill's root
- #: directory. E.g. /opt/mycroft/skills/my-skill.me/
- self.root_dir = dirname(abspath(sys.modules[self.__module__].__file__))
-- if use_settings:
-- self.settings = get_local_settings(self.root_dir, self.name)
-- self._initial_settings = deepcopy(self.settings)
-- else:
-- self.settings = None
--
-- #: Set to register a callback method that will be called every time
-- #: the skills settings are updated. The referenced method should
-- #: include any logic needed to handle the updated settings.
-- self.settings_change_callback = None
-
- self.gui = SkillGUI(self)
-
-@@ -141,6 +135,19 @@ class MycroftSkill:
- self.bind(bus)
- #: Mycroft global configuration. (dict)
- self.config_core = Configuration.get()
-+
-+ self.settings = None
-+ self.settings_write_path = None
-+ self.settings_read_path = None
-+
-+ if use_settings:
-+ self._init_settings()
-+
-+ #: Set to register a callback method that will be called every time
-+ #: the skills settings are updated. The referenced method should
-+ #: include any logic needed to handle the updated settings.
-+ self.settings_change_callback = None
-+
- self.dialog_renderer = None
-
- #: Filesystem access to skill specific folder.
-@@ -157,6 +164,42 @@ class MycroftSkill:
- self.event_scheduler = EventSchedulerInterface(self.name)
- self.intent_service = IntentServiceInterface()
-
-+ def _init_settings(self):
-+ """Setup skill settings."""
-+
-+ # To not break existing setups,
-+ # save to skill directory if the file exists already
-+ self.settings_write_path = Path(self.root_dir)
-+
-+ # Otherwise save to XDG_CONFIG_DIR
-+ if not self.settings_write_path.joinpath('settings.json').exists():
-+ self.settings_write_path = Path(BaseDirectory.save_config_path(
-+ 'mycroft', 'skills', basename(self.root_dir)))
-+
-+ # To not break existing setups,
-+ # read from skill directory if the settings file exists there
-+ self.settings_read_path = Path(self.root_dir)
-+
-+ # Then, check XDG_CONFIG_DIR
-+ if not self.settings_read_path.joinpath('settings.json').exists():
-+ for dir in BaseDirectory.load_config_paths('mycroft',
-+ 'skills',
-+ basename(
-+ self.root_dir)):
-+ path = Path(dir)
-+ #: If there is a settings file here, use it
-+ if path.joinpath('settings.json').exists():
-+ self.settings_read_path = path
-+ break
-+
-+ # Lastly, check /etc/mycroft
-+ if not self.settings_read_path.joinpath('settings.json').exists():
-+ self.settings_read_path = Path(
-+ '/etc/mycroft/skills/').joinpath(basename(self.root_dir))
-+
-+ self.settings = get_local_settings(self.settings_read_path, self.name)
-+ self._initial_settings = deepcopy(self.settings)
-+
- @property
- def enclosure(self):
- if self._enclosure:
-@@ -271,7 +314,7 @@ class MycroftSkill:
- if remote_settings is not None:
- LOG.info('Updating settings for skill ' + self.name)
- self.settings.update(**remote_settings)
-- save_settings(self.root_dir, self.settings)
-+ save_settings(self.settings_write_path, self.settings)
- if self.settings_change_callback is not None:
- self.settings_change_callback()
-
-@@ -544,7 +587,7 @@ class MycroftSkill:
-
- if not voc or not exists(voc):
- raise FileNotFoundError(
-- 'Could not find {}.voc file'.format(voc_filename))
-+ 'Could not find {}.voc file'.format(voc_filename))
- # load vocab and flatten into a simple list
- vocab = read_vocab_file(voc)
- self.voc_match_cache[cache_key] = list(chain(*vocab))
-@@ -811,7 +854,7 @@ class MycroftSkill:
- """Store settings and indicate that the skill handler has completed
- """
- if self.settings != self._initial_settings:
-- save_settings(self.root_dir, self.settings)
-+ save_settings(self.settings_write_path, self.settings)
- self._initial_settings = self.settings
- if handler_info:
- msg_type = handler_info + '.complete'
-@@ -1233,7 +1276,7 @@ class MycroftSkill:
-
- # Store settings
- if self.settings != self._initial_settings:
-- save_settings(self.root_dir, self.settings)
-+ save_settings(self.settings_write_path, self.settings)
-
- if self.settings_meta:
- self.settings_meta.stop()
-diff --git a/mycroft/skills/settings.py b/mycroft/skills/settings.py
-index c210625f5b..f576b34c9e 100644
---- a/mycroft/skills/settings.py
-+++ b/mycroft/skills/settings.py
-@@ -93,18 +93,22 @@ def get_local_settings(skill_dir, skill_name) -> dict:
- def save_settings(skill_dir, skill_settings):
- """Save skill settings to file."""
- settings_path = Path(skill_dir).joinpath('settings.json')
-- if Path(skill_dir).exists():
-- with open(str(settings_path), 'w') as settings_file:
-- try:
-- json.dump(skill_settings, settings_file)
-- except Exception:
-- LOG.exception('error saving skill settings to '
-- '{}'.format(settings_path))
-- else:
-- LOG.info('Skill settings successfully saved to '
-- '{}' .format(settings_path))
-- else:
-- LOG.info('Skill folder no longer exists, can\'t save settings.')
-+
-+ # Either the file already exists in /opt, or we are writing
-+ # to XDG_CONFIG_DIR and always have the permission to make
-+ # sure the file always exists
-+ if not Path(settings_path).exists():
-+ settings_path.touch(mode=0o644)
-+
-+ with open(str(settings_path), 'w') as settings_file:
-+ try:
-+ json.dump(skill_settings, settings_file)
-+ except Exception:
-+ LOG.exception('error saving skill settings to '
-+ '{}'.format(settings_path))
-+ else:
-+ LOG.info('Skill settings successfully saved to '
-+ '{}' .format(settings_path))
-
-
- def get_display_name(skill_name: str):
-diff --git a/mycroft/skills/skill_loader.py b/mycroft/skills/skill_loader.py
-index 2402740188..b7e8186967 100644
---- a/mycroft/skills/skill_loader.py
-+++ b/mycroft/skills/skill_loader.py
-@@ -259,7 +259,8 @@ class SkillLoader:
- if first_run:
- LOG.info("First run of " + self.skill_id)
- self.instance.settings["__mycroft_skill_firstrun"] = False
-- save_settings(self.skill_directory, self.instance.settings)
-+ save_settings(self.instance.settings_write_path,
-+ self.instance.settings)
- intro = self.instance.get_intro_message()
- if intro:
- self.instance.speak(intro)
-diff --git a/requirements.txt b/requirements.txt
-index 509436fb89..c9358db687 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -30,3 +30,4 @@ fann2==1.0.7
- padaos==0.1.9
- precise-runner==0.2.1
- petact==0.1.2
-+pyxdg==0.26
diff --git a/testing/mycroft-core/0003-xdg.patch b/testing/mycroft-core/0003-xdg.patch
deleted file mode 100644
index d041b6f9389..00000000000
--- a/testing/mycroft-core/0003-xdg.patch
+++ /dev/null
@@ -1,775 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mycroft-core/pull/2578
-
-diff --git a/README.md b/README.md
-index 1665b0a68dd..eaf04259ddb 100644
---- a/README.md
-+++ b/README.md
-@@ -71,20 +71,20 @@ Mycroft is nothing without skills. There are a handful of default skills that a
-
- ## Pairing Information
- Pairing information generated by registering with Home is stored in:
--`~/.mycroft/identity/identity2.json` <b><-- DO NOT SHARE THIS WITH OTHERS!</b>
-+`~/.config/mycroft/identity/identity2.json` <b><-- DO NOT SHARE THIS WITH OTHERS!</b>
-
- ## Configuration
- Mycroft configuration consists of 4 possible locations:
--- `mycroft-core/mycroft/configuration/mycroft.conf`(Defaults)
-+- `mycroft-core/mycroft/configuration/mycroft.conf` (Defaults)
- - [Mycroft Home](https://home.mycroft.ai) (Remote)
--- `/etc/mycroft/mycroft.conf`(Machine)
--- `$HOME/.mycroft/mycroft.conf`(User)
-+- `/etc/mycroft/mycroft.conf` (Machine)
-+- `$XDG_CONFIG_DIR/mycroft/mycroft.conf` (which is by default `$HOME/.config/mycroft/mycroft.conf`) (USER)
-
- When the configuration loader starts, it looks in these locations in this order, and loads ALL configurations. Keys that exist in multiple configuration files will be overridden by the last file to contain the value. This process results in a minimal amount being written for a specific device and user, without modifying default distribution files.
-
- ## Using Mycroft Without Home
-
--If you do not wish to use the Mycroft Home service, before starting Mycroft for the first time, create `$HOME/.mycroft/mycroft.conf` with the following contents:
-+If you do not wish to use the Mycroft Home service, before starting Mycroft for the first time, create `$HOME/.config/mycroft/mycroft.conf` with the following contents:
-
- ```
- {
-diff --git a/bin/mycroft-config b/bin/mycroft-config
-index a1271b328df..435ceb607d8 100755
---- a/bin/mycroft-config
-+++ b/bin/mycroft-config
-@@ -95,13 +95,13 @@ function validate_config_file() {
- return $result
- }
-
--_conf_file="~/.mycroft/mycroft.conf"
-+_conf_file="~/.config/mycroft/mycroft.conf"
- function name_to_path() {
- case ${1} in
- "system") _conf_file="/etc/mycroft/mycroft.conf" ;;
-- "user") _conf_file=$(readlink -f ~/.mycroft/mycroft.conf) ;;
-+ "user") _conf_file=$(readlink -f ~/.config/mycroft/mycroft.conf) ;;
- "default") _conf_file="$DIR/../mycroft/configuration/mycroft.conf" ;;
-- "remote") _conf_file="/var/tmp/mycroft_web_cache.json" ;;
-+ "remote") _conf_file="~/.cache/mycroft/web_cache.json" ;;
-
- *)
- echo "ERROR: Unknown name '${1}'."
-diff --git a/mycroft/api/__init__.py b/mycroft/api/__init__.py
-index 43663ee1270..d2843120ef4 100644
---- a/mycroft/api/__init__.py
-+++ b/mycroft/api/__init__.py
-@@ -20,8 +20,6 @@ import requests
- from requests import HTTPError, RequestException
-
- from mycroft.configuration import Configuration
--from mycroft.configuration.config import DEFAULT_CONFIG, SYSTEM_CONFIG, \
-- USER_CONFIG
- from mycroft.identity import IdentityManager, identity_lock
- from mycroft.version import VersionManager
- from mycroft.util import get_arch, connected, LOG
-@@ -49,12 +47,9 @@ class Api:
- def __init__(self, path):
- self.path = path
-
-- # Load the config, skipping the REMOTE_CONFIG since we are
-+ # Load the config, skipping the remote config since we are
- # getting the info needed to get to it!
-- config = Configuration.get([DEFAULT_CONFIG,
-- SYSTEM_CONFIG,
-- USER_CONFIG],
-- cache=False)
-+ config = Configuration.get(cache=False, remote=False)
- config_server = config.get("server")
- self.url = config_server.get("url")
- self.version = config_server.get("version")
-@@ -238,9 +233,7 @@ class DeviceApi(Api):
- platform_build = ""
-
- # load just the local configs to get platform info
-- config = Configuration.get([SYSTEM_CONFIG,
-- USER_CONFIG],
-- cache=False)
-+ config = Configuration.get(cache=False, remote=False)
- if "enclosure" in config:
- platform = config.get("enclosure").get("platform", "unknown")
- platform_build = config.get("enclosure").get("platform_build", "")
-@@ -262,9 +255,7 @@ class DeviceApi(Api):
- platform_build = ""
-
- # load just the local configs to get platform info
-- config = Configuration.get([SYSTEM_CONFIG,
-- USER_CONFIG],
-- cache=False)
-+ config = Configuration.get(cache=False, remote=False)
- if "enclosure" in config:
- platform = config.get("enclosure").get("platform", "unknown")
- platform_build = config.get("enclosure").get("platform_build", "")
-diff --git a/mycroft/client/enclosure/__main__.py b/mycroft/client/enclosure/__main__.py
-index 20cb41aaac2..fdcadf08411 100644
---- a/mycroft/client/enclosure/__main__.py
-+++ b/mycroft/client/enclosure/__main__.py
-@@ -17,7 +17,7 @@
- This provides any "enclosure" specific functionality, for example GUI or
- control over the Mark-1 Faceplate.
- """
--from mycroft.configuration import LocalConf, SYSTEM_CONFIG
-+from mycroft.configuration import Configuration
- from mycroft.util.log import LOG
- from mycroft.util import (create_daemon, wait_for_exit_signal,
- reset_sigint_handler)
-@@ -59,8 +59,8 @@ def main():
- only the GUI bus will be started.
- """
- # Read the system configuration
-- system_config = LocalConf(SYSTEM_CONFIG)
-- platform = system_config.get("enclosure", {}).get("platform")
-+ config = Configuration.get(remote=False)
-+ platform = config.get("enclosure", {}).get("platform")
-
- enclosure = create_enclosure(platform)
- if enclosure:
-diff --git a/mycroft/client/enclosure/mark1/__init__.py b/mycroft/client/enclosure/mark1/__init__.py
-index 26a7311c791..c02566d3435 100644
---- a/mycroft/client/enclosure/mark1/__init__.py
-+++ b/mycroft/client/enclosure/mark1/__init__.py
-@@ -15,8 +15,10 @@
- import subprocess
- import time
- import sys
-+import os
- from alsaaudio import Mixer
- from threading import Thread, Timer
-+from xdg import BaseDirectory
-
- import serial
-
-@@ -29,7 +31,7 @@ from mycroft.client.enclosure.mark1.eyes import EnclosureEyes
- from mycroft.client.enclosure.mark1.mouth import EnclosureMouth
- from mycroft.enclosure.display_manager import \
- init_display_manager_bus_connection
--from mycroft.configuration import Configuration, LocalConf, USER_CONFIG
-+from mycroft.configuration import Configuration, LocalConf
- from mycroft.messagebus.message import Message
- from mycroft.util import play_wav, create_signal, connected, check_for_signal
- from mycroft.util.audio_test import record
-@@ -163,6 +165,9 @@ class EnclosureReader(Thread):
- if "unit.factory-reset" in data:
- self.bus.emit(Message("speak", {
- 'utterance': mycroft.dialog.get("reset to factory defaults")}))
-+ subprocess.call(
-+ 'rm ~/.config/mycroft/identity/identity2.json',
-+ shell=True)
- subprocess.call(
- 'rm ~/.mycroft/identity/identity2.json',
- shell=True)
-@@ -193,7 +198,8 @@ class EnclosureReader(Thread):
-
- LOG.info("Setting opt_in to: " + word)
- new_config = {'opt_in': enable}
-- user_config = LocalConf(USER_CONFIG)
-+ user_config = LocalConf(os.path.join(
-+ BaseDirectory.save_config_path('mycroft'), 'mycroft.conf'))
- user_config.merge(new_config)
- user_config.store()
-
-diff --git a/mycroft/client/speech/hotword_factory.py b/mycroft/client/speech/hotword_factory.py
-index 32011be0095..f5d7d336026 100644
---- a/mycroft/client/speech/hotword_factory.py
-+++ b/mycroft/client/speech/hotword_factory.py
-@@ -26,10 +26,11 @@ from os.path import dirname, exists, join, abspath, expanduser, isfile, isdir
- from shutil import rmtree
- from threading import Timer, Event, Thread
- from urllib.error import HTTPError
-+from xdg import BaseDirectory
-
- from petact import install_package
-
--from mycroft.configuration import Configuration, LocalConf, USER_CONFIG
-+from mycroft.configuration import Configuration, LocalConf
- from mycroft.util.log import LOG
-
- RECOGNIZER_DIR = join(abspath(dirname(__file__)), "recognizer")
-@@ -137,7 +138,17 @@ class PreciseHotword(HotWordEngine):
- from precise_runner import (
- PreciseRunner, PreciseEngine, ReadWriteStream
- )
-- local_conf = LocalConf(USER_CONFIG)
-+
-+ old_path = join(expanduser('~'), './mycroft/mycroft.conf')
-+ if isfile(old_path):
-+ local_conf = old_path
-+ else:
-+ for dir in BaseDirectory.load_config_paths('mycroft'):
-+ local_conf = LocalConf(join(dir, 'mycroft.conf'))
-+ # If the current config contains the precise key use it,
-+ # otherwise continue to the next file
-+ if local_conf.get('precise', None) is not None:
-+ break
- if (local_conf.get('precise', {}).get('dist_url') ==
- 'http://bootstrap.mycroft.ai/artifacts/static/daily/'):
- del local_conf['precise']['dist_url']
-@@ -195,7 +206,10 @@ class PreciseHotword(HotWordEngine):
-
- @property
- def folder(self):
-- return join(expanduser('~'), '.mycroft', 'precise')
-+ old_path = join(expanduser('~'), '.mycroft', 'precise')
-+ if os.path.isdir(old_path):
-+ return old_path
-+ return join(BaseDirectory.save_data_path('mycroft', 'precise'))
-
- @property
- def install_destination(self):
-@@ -305,8 +319,23 @@ class SnowboyHotWord(HotWordEngine):
- class PorcupineHotWord(HotWordEngine):
- def __init__(self, key_phrase="hey mycroft", config=None, lang="en-us"):
- super(PorcupineHotWord, self).__init__(key_phrase, config, lang)
-+
-+ xdg_data_path = None
-+
-+ # Use the old path if available
-+ old_path = join(expanduser('~'), '.mycroft', 'Porcupine')
-+ if os.path.isdir(old_path):
-+ xdg_data_path = old_path
-+
-+ # Otherwise use the new XDG config dirs
-+ if xdg_data_path is None:
-+ for dir in BaseDirectory.load_data_paths('mycroft', 'Porcupine'):
-+ if os.path.isdir(dir):
-+ xdg_data_path = dir
-+ break
-+
- porcupine_path = expanduser(self.config.get(
-- "porcupine_path", join('~', '.mycroft', 'Porcupine')))
-+ "porcupine_path", xdg_data_path))
- keyword_file_paths = [expanduser(x.strip()) for x in self.config.get(
- "keyword_file_path", "hey_mycroft.ppn").split(',')]
- sensitivities = self.config.get("sensitivities", 0.5)
-diff --git a/mycroft/client/text/text_client.py b/mycroft/client/text/text_client.py
-index 44d11d61087..734e14ca83f 100644
---- a/mycroft/client/text/text_client.py
-+++ b/mycroft/client/text/text_client.py
-@@ -15,6 +15,7 @@
- import sys
- import io
- from math import ceil
-+from xdg import BaseDirectory
-
- from .gui_server import start_qml_gui
-
-@@ -142,8 +143,7 @@ def handleNonAscii(text):
- ##############################################################################
- # Settings
-
--config_file = os.path.join(os.path.expanduser("~"), ".mycroft_cli.conf")
--
-+filename = "mycroft_cli.conf"
-
- def load_mycroft_config(bus):
- """ Load the mycroft config and connect it to updates over the messagebus.
-@@ -171,6 +171,25 @@ def load_settings():
- global max_log_lines
- global show_meter
-
-+ config_file = None
-+
-+ # Old location
-+ path = os.path.join(os.path.expanduser("~"), ".mycroft_cli.conf")
-+ if os.path.isfile(path):
-+ config_file = path
-+
-+ # Check XDG_CONFIG_DIR
-+ if config_file is None:
-+ for dir in BaseDirectory.load_config_paths('mycroft'):
-+ file = os.path.join(dir, filename)
-+ if os.path.isfile(file):
-+ config_file = file
-+ break
-+
-+ # Check /etc/mycroft
-+ if config_file is None:
-+ config_file = os.path.join("/etc/mycroft", filename)
-+
- try:
- with io.open(config_file, 'r') as f:
- config = json.load(f)
-@@ -195,7 +214,11 @@ def save_settings():
- config["cy_chat_area"] = cy_chat_area
- config["show_last_key"] = show_last_key
- config["max_log_lines"] = max_log_lines
-- config["show_meter"] = show_meter
-+ config["show_meter"] = show_meteri
-+
-+ config_file = os.path.join(
-+ BaseDirectory.save_config_path("mycroft"), filename)
-+
- with io.open(config_file, 'w') as f:
- f.write(str(json.dumps(config, ensure_ascii=False)))
-
-diff --git a/mycroft/configuration/__init__.py b/mycroft/configuration/__init__.py
-index da28826c11d..b920d9c8336 100644
---- a/mycroft/configuration/__init__.py
-+++ b/mycroft/configuration/__init__.py
-@@ -13,4 +13,3 @@
- # limitations under the License.
- #
- from .config import Configuration, LocalConf, RemoteConf
--from .locations import SYSTEM_CONFIG, USER_CONFIG
-diff --git a/mycroft/configuration/config.py b/mycroft/configuration/config.py
-index 4322dfdb92f..fee89e9ad91 100644
---- a/mycroft/configuration/config.py
-+++ b/mycroft/configuration/config.py
-@@ -17,15 +17,13 @@
- import re
- import json
- import inflection
--from os.path import exists, isfile
-+from os.path import exists, isfile, join, expanduser, dirname
- from requests import RequestException
-+from xdg import BaseDirectory
-
- from mycroft.util.json_helper import load_commented_json, merge_dict
- from mycroft.util.log import LOG
-
--from .locations import (DEFAULT_CONFIG, SYSTEM_CONFIG, USER_CONFIG,
-- WEB_CONFIG_CACHE)
--
-
- def is_remote_list(values):
- ''' check if this list corresponds to a backend formatted collection of
-@@ -135,7 +133,8 @@ class RemoteConf(LocalConf):
- def __init__(self, cache=None):
- super(RemoteConf, self).__init__(None)
-
-- cache = cache or WEB_CONFIG_CACHE
-+ cache = cache or join(BaseDirectory.save_cache_path('mycroft'),
-+ 'web_cache.json')
- from mycroft.api import is_paired
- if not is_paired():
- self.load_local(cache)
-@@ -180,7 +179,7 @@ class Configuration:
- __patch = {} # Patch config that skills can update to override config
-
- @staticmethod
-- def get(configs=None, cache=True):
-+ def get(configs=None, cache=True, remote=True):
- """
- Get configuration, returns cached instance if available otherwise
- builds a new configuration dict.
-@@ -188,27 +187,55 @@ class Configuration:
- Args:
- configs (list): List of configuration dicts
- cache (boolean): True if the result should be cached
-+ remote (boolean): False if the Mycroft Home settings shouldn't
-+ be loaded
- """
- if Configuration.__config:
- return Configuration.__config
- else:
-- return Configuration.load_config_stack(configs, cache)
-+ return Configuration.load_config_stack(configs, cache, remote)
-
- @staticmethod
-- def load_config_stack(configs=None, cache=False):
-+ def load_config_stack(configs=None, cache=False, remote=True):
- """
- load a stack of config dicts into a single dict
-
- Args:
- configs (list): list of dicts to load
- cache (boolean): True if result should be cached
-+ remote (boolean): False if the Mycroft Home settings shouldn't
-+ be loaded
-
- Returns: merged dict of all configuration files
- """
- if not configs:
-- configs = [LocalConf(DEFAULT_CONFIG), RemoteConf(),
-- LocalConf(SYSTEM_CONFIG), LocalConf(USER_CONFIG),
-- Configuration.__patch]
-+ # First use patched config
-+ configs = [LocalConf(Configuration.__patch)]
-+
-+ # Then use XDG config
-+ # This includes both the user config and
-+ # /etc/xdg/mycroft/mycroft.conf
-+ for dir in BaseDirectory.load_config_paths('mycroft'):
-+ configs.append(LocalConf(join(dir, 'mycroft.conf')))
-+
-+ # Then check the old user config
-+ old_path = join(expanduser('~'), '.mycroft/mycroft.conf')
-+ if isfile(old_path):
-+ configs.append(LocalConf(old_path))
-+
-+ # Then use remote config
-+ if remote:
-+ configs.append(RemoteConf())
-+
-+ # Then use /etc/mycroft/mycroft.conf
-+ configs.append(LocalConf('/etc/mycroft/mycroft.conf'))
-+
-+ # Then use the config that comes with the package
-+ configs.append(LocalConf(join(dirname(__file__), 'mycroft.conf')))
-+
-+ # Make sure we reverse the array, as merge_dict will put every new
-+ # file on top of the previous one
-+ configs = reversed(configs)
- else:
- # Handle strings in stack
- for index, item in enumerate(configs):
-diff --git a/mycroft/configuration/locations.py b/mycroft/configuration/locations.py
-deleted file mode 100644
-index cbbaab6ca94..00000000000
---- a/mycroft/configuration/locations.py
-+++ /dev/null
-@@ -1,38 +0,0 @@
--# Copyright 2018 Mycroft AI Inc.
--#
--# Licensed under the Apache License, Version 2.0 (the "License");
--# you may not use this file except in compliance with the License.
--# You may obtain a copy of the License at
--#
--# http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--import os
--from os.path import join, dirname, expanduser, exists
--
--DEFAULT_CONFIG = join(dirname(__file__), 'mycroft.conf')
--SYSTEM_CONFIG = os.environ.get('MYCROFT_SYSTEM_CONFIG',
-- '/etc/mycroft/mycroft.conf')
--USER_CONFIG = join(expanduser('~'), '.mycroft/mycroft.conf')
--REMOTE_CONFIG = "mycroft.ai"
--WEB_CONFIG_CACHE = os.environ.get('MYCROFT_WEB_CACHE',
-- '/var/tmp/mycroft_web_cache.json')
--
--
--def __ensure_folder_exists(path):
-- """ Make sure the directory for the specified path exists.
--
-- Arguments:
-- path (str): path to config file
-- """
-- directory = dirname(path)
-- if not exists(directory):
-- os.makedirs(directory)
--
--
--__ensure_folder_exists(WEB_CONFIG_CACHE)
--__ensure_folder_exists(USER_CONFIG)
-diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf
-index b3e324eb553..798a88567cf 100644
---- a/mycroft/configuration/mycroft.conf
-+++ b/mycroft/configuration/mycroft.conf
-@@ -5,7 +5,7 @@
- // overridden at the REMOTE level (set by the user via
- // https://home.mycroft.ai), at the SYSTEM level (typically in the file
- // '/etc/mycroft/mycroft.conf'), or at the USER level (typically in the
-- // file '~/.mycroft/mycroft.conf').
-+ // file '~/.config/mycroft/mycroft.conf').
- //
- // The load order of settings is:
- // DEFAULT
-@@ -107,7 +107,7 @@
- },
- "upload_skill_manifest": true,
- // Directory to look for user skills
-- "directory": "~/.mycroft/skills",
-+ "directory": "~/.local/share/mycroft/skills",
- // Enable auto update by msm
- "auto_update": true,
- // blacklisted skills to not load
-@@ -210,7 +210,7 @@
- "threshold": 1e-90,
- "lang": "en-us"
- // Specify custom model via:
-- // "local_model_file": "~/.mycroft/precise/models/something.pb"
-+ // "local_model_file": "~/.local/share/mycroft/precise/models/something.pb"
- // Precise options:
- // "sensitivity": 0.5, // Higher = more sensitive
- // "trigger_level": 3 // Higher = more delay & less sensitive
-@@ -303,7 +303,7 @@
- },
-
- "padatious": {
-- "intent_cache": "~/.mycroft/intent_cache",
-+ "intent_cache": "~/.local/share/mycroft/intent_cache",
- "train_delay": 4,
- "single_thread": false
- },
-diff --git a/mycroft/filesystem/__init__.py b/mycroft/filesystem/__init__.py
-index 45ec15a4ac5..414069573f4 100644
---- a/mycroft/filesystem/__init__.py
-+++ b/mycroft/filesystem/__init__.py
-@@ -14,6 +14,7 @@
- #
- import os
- from os.path import join, expanduser, isdir
-+from xdg import BaseDirectory
-
-
- class FileSystemAccess:
-@@ -30,7 +31,13 @@ class FileSystemAccess:
- def __init_path(path):
- if not isinstance(path, str) or len(path) == 0:
- raise ValueError("path must be initialized as a non empty string")
-- path = join(expanduser('~'), '.mycroft', path)
-+ old_path = join(expanduser('~'), '.mycroft', path)
-+ if isdir(old_path):
-+ path = old_path
-+ else:
-+ # Use save_config_path rather than load_first_config to make sure
-+ # this directory exists and the skills don't have to deal with it
-+ path = join(BaseDirectory.save_config_path('mycroft'), path)
-
- if not isdir(path):
- os.makedirs(path)
-diff --git a/mycroft/messagebus/send_func.py b/mycroft/messagebus/send_func.py
-index 403db9f45c1..a11a9b0a591 100644
---- a/mycroft/messagebus/send_func.py
-+++ b/mycroft/messagebus/send_func.py
-@@ -15,8 +15,6 @@
- from websocket import create_connection
-
- from mycroft.configuration import Configuration
--from mycroft.configuration.locations import (DEFAULT_CONFIG, SYSTEM_CONFIG,
-- USER_CONFIG)
- from mycroft.messagebus.client import MessageBusClient
- from mycroft.messagebus.message import Message
-
-@@ -32,10 +30,7 @@ def send(message_to_send, data_to_send=None):
- data_to_send = data_to_send or {}
-
- # Calculate the standard Mycroft messagebus websocket address
-- config = Configuration.get([DEFAULT_CONFIG,
-- SYSTEM_CONFIG,
-- USER_CONFIG],
-- cache=False)
-+ config = Configuration.get(cache=False, remote=False)
- config = config.get("websocket")
- url = MessageBusClient.build_url(
- config.get("host"),
-diff --git a/mycroft/skills/event_scheduler.py b/mycroft/skills/event_scheduler.py
-index fe41ac1bedc..cb1c9f3c61d 100644
---- a/mycroft/skills/event_scheduler.py
-+++ b/mycroft/skills/event_scheduler.py
-@@ -20,6 +20,7 @@ import time
- from datetime import datetime, timedelta
- from threading import Thread, Lock
- from os.path import isfile, join, expanduser
-+from xdg import BaseDirectory
-
- from mycroft.configuration import Configuration
- from mycroft.messagebus.message import Message
-@@ -54,14 +55,19 @@ class EventScheduler(Thread):
- """
- def __init__(self, bus, schedule_file='schedule.json'):
- super().__init__()
-- data_dir = expanduser(Configuration.get()['data_dir'])
-
- self.events = {}
- self.event_lock = Lock()
-
- self.bus = bus
- self.is_running = True
-- self.schedule_file = join(data_dir, schedule_file)
-+ old_path = join(expanduser(Configuration.get()['data_dir']),
-+ schedule_file)
-+ if isfile(old_path):
-+ self.schedule_file = old_path
-+ else:
-+ self.schedule_file = join(
-+ BaseDirectory.load_first_config('mycroft'), schedule_file)
- if self.schedule_file:
- self.load()
-
-diff --git a/mycroft/skills/skill_updater.py b/mycroft/skills/skill_updater.py
-index 9535ad90319..bf373ba99f8 100644
---- a/mycroft/skills/skill_updater.py
-+++ b/mycroft/skills/skill_updater.py
-@@ -17,6 +17,7 @@ import os
- import sys
- from datetime import datetime
- from time import time
-+from xdg import BaseDirectory
-
- from msm import MsmException
-
-@@ -91,9 +92,9 @@ class SkillUpdater:
- '.mycroft-skills'
- )
- else:
-- self._installed_skills_file_path = os.path.expanduser(
-- '~/.mycroft/.mycroft-skills'
-- )
-+ self._installed_skills_file_path = join(
-+ BaseDirectory.save_data_path('mycroft',
-+ '.mycroft-skills'))
-
- return self._installed_skills_file_path
-
-diff --git a/mycroft/util/file_utils.py b/mycroft/util/file_utils.py
-index 84555fc3bb3..7c09fd226ee 100644
---- a/mycroft/util/file_utils.py
-+++ b/mycroft/util/file_utils.py
-@@ -22,6 +22,7 @@ import os
- import psutil
- from stat import S_ISREG, ST_MTIME, ST_MODE, ST_SIZE
- import tempfile
-+from xdg import BaseDirectory
-
- import mycroft.configuration
- from .log import LOG
-@@ -33,15 +34,15 @@ def resolve_resource_file(res_name):
- Resource names are in the form: 'filename.ext'
- or 'path/filename.ext'
-
-- The system wil look for ~/.mycroft/res_name first, and
-- if not found will look at /opt/mycroft/res_name,
-- then finally it will look for res_name in the 'mycroft/res'
-- folder of the source code package.
-+ The system wil look for $XDG_DATA_DIRS/mycroft/res_name first
-+ (defaults to ~/.local/share/mycroft/res_name), and if not found will
-+ look at /opt/mycroft/res_name, then finally it will look for res_name
-+ in the 'mycroft/res' folder of the source code package.
-
- Example:
- With mycroft running as the user 'bob', if you called
- resolve_resource_file('snd/beep.wav')
-- it would return either '/home/bob/.mycroft/snd/beep.wav' or
-+ it would return either '/home/bob/.local/share/mycroft/snd/beep.wav' or
- '/opt/mycroft/snd/beep.wav' or '.../mycroft/res/snd/beep.wav',
- where the '...' is replaced by the path where the package has
- been installed.
-@@ -57,8 +58,14 @@ def resolve_resource_file(res_name):
- if os.path.isfile(res_name):
- return res_name
-
-- # Now look for ~/.mycroft/res_name (in user folder)
-- filename = os.path.expanduser("~/.mycroft/" + res_name)
-+ # Now look for XDG_DATA_DIRS
-+ for dir in BaseDirectory.load_data_paths('mycroft'):
-+ filename = os.path.join(dir, res_name)
-+ if os.path.isfile(filename):
-+ return filename
-+
-+ # Now look in the old user location
-+ filename = os.path.join(os.path.expanduser('~'), '.mycroft', res_name)
- if os.path.isfile(filename):
- return filename
-
-diff --git a/mycroft/util/log.py b/mycroft/util/log.py
-index 0ea391f8f79..788f6df1c37 100644
---- a/mycroft/util/log.py
-+++ b/mycroft/util/log.py
-@@ -21,7 +21,7 @@ This module provides the LOG pseudo function quickly creating a logger instance
- for use.
-
- The default log level of the logger created here can ONLY be set in
--/etc/mycroft/mycroft.conf or ~/.mycroft/mycroft.conf
-+/etc/mycroft/mycroft.conf or ~/.config/mycroft/mycroft.conf
-
- The default log level can also be programatically be changed by setting the
- LOG.level parameter.
-@@ -31,10 +31,10 @@ import inspect
- import logging
- import sys
-
--from os.path import isfile
-+from os.path import isfile, join
-+from xdg import BaseDirectory
-
- from mycroft.util.json_helper import load_commented_json, merge_dict
--from mycroft.configuration.locations import SYSTEM_CONFIG, USER_CONFIG
-
-
- def getLogger(name="MYCROFT"):
-@@ -84,7 +84,10 @@ class LOG:
- # Check configs manually, the Mycroft configuration system can't be
- # used since it uses the LOG system and would cause horrible cyclic
- # dependencies.
-- confs = [SYSTEM_CONFIG, USER_CONFIG]
-+ confs = []
-+ for dir in BaseDirectory.load_config_paths('mycroft'):
-+ confs.append(join(dir, 'mycroft.conf'))
-+ confs.append('/etc/mycroft/mycroft.conf')
- config = {}
- for conf in confs:
- try:
-diff --git a/test/unittests/skills/test_skill_updater.py b/test/unittests/skills/test_skill_updater.py
-index 38d4083d7f2..a1fda04fb3a 100644
---- a/test/unittests/skills/test_skill_updater.py
-+++ b/test/unittests/skills/test_skill_updater.py
-@@ -15,6 +15,7 @@
- """Unit tests for the SkillUpdater class."""
- from os import path
- from time import sleep
-+from xdg import BaseDirectory
- from unittest.mock import Mock, patch, PropertyMock
-
- from mycroft.skills.skill_updater import SkillUpdater
-@@ -143,7 +144,8 @@ class TestSkillUpdater(MycroftUnitTestBase):
- os_patch.return_value = False
- updater = SkillUpdater(self.message_bus_mock)
- self.assertEqual(
-- path.expanduser('~/.mycroft/.mycroft-skills'),
-+ join(BaseDirectory.save_data_path('mycroft'),
-+ 'mycroft-skills'),
- updater.installed_skills_file_path
- )
-
-diff --git a/test/unittests/util/commented.json b/test/unittests/util/commented.json
-index 87c7d3e2c2d..00a581f6df4 100644
---- a/test/unittests/util/commented.json
-+++ b/test/unittests/util/commented.json
-@@ -54,7 +54,7 @@
- }
- },
- "skills": {
-- "directory": "~/.mycroft/skills"
-+ "directory": "~/.local/share/mycroft/skills"
- },
- "server": {
- "url": "https://api.mycroft.ai",
-diff --git a/test/unittests/util/plain.json b/test/unittests/util/plain.json
-index f8c474139ce..eec84631d88 100644
---- a/test/unittests/util/plain.json
-+++ b/test/unittests/util/plain.json
-@@ -36,7 +36,7 @@
- }
- },
- "skills": {
-- "directory": "~/.mycroft/skills"
-+ "directory": "~/.local/share/mycroft/skills"
- },
- "server": {
- "url": "https://api.mycroft.ai",
-diff --git a/test/unittests/util/test_file_utils.py b/test/unittests/util/test_file_utils.py
-index dcc4d72676c..e409f712950 100644
---- a/test/unittests/util/test_file_utils.py
-+++ b/test/unittests/util/test_file_utils.py
-@@ -33,7 +33,8 @@ class TestResolveResource(TestCase):
-
- mock_isfile.side_effect = files_in_dotmycroft_exists
- self.assertEqual(resolve_resource_file('1984.txt'),
-- expanduser('~/.mycroft/1984.txt'))
-+ join(BaseDirectory.save_data_path('mycroft'),
-+ '1984.txt'))
-
- @mock.patch('os.path.isfile')
- def test_data_dir(self, mock_isfile, mock_conf):
-diff --git a/test/util.py b/test/util.py
-index f80c0f9bd40..f657bdb8304 100644
---- a/test/util.py
-+++ b/test/util.py
-@@ -1,7 +1,7 @@
--from mycroft.configuration.config import LocalConf, DEFAULT_CONFIG
-+from mycroft.configuration.config import LocalConf
- from copy import deepcopy
-
--__config = LocalConf(DEFAULT_CONFIG)
-+__config = LocalConf(join(dirname(__file__), 'mycroft.conf'))
-
-
- # Base config to use when mocking
diff --git a/testing/mycroft-core/0004-relax-dep-requirements.patch b/testing/mycroft-core/0004-relax-dep-requirements.patch
deleted file mode 100644
index 56b85a29c79..00000000000
--- a/testing/mycroft-core/0004-relax-dep-requirements.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mycroft-core/pull/2562
-
-From 466d39fd4057ab17492877edd18131541cd88e15 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=85ke=20Forslund?= <ake.forslund@gmail.com>
-Date: Mon, 4 May 2020 09:28:48 +0200
-Subject: [PATCH] Allow building Mycroft with loose requirements
-
----
- setup.py | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/setup.py b/setup.py
-index c98f7b4f8f9..3d08cbbd943 100644
---- a/setup.py
-+++ b/setup.py
-@@ -13,6 +13,7 @@
- # limitations under the License.
- #
- from setuptools import setup, find_packages
-+import os
- import os.path
-
- BASEDIR = os.path.abspath(os.path.dirname(__file__))
-@@ -44,6 +45,9 @@ def required(requirements_file):
- """ Read requirements file and remove comments and empty lines. """
- with open(os.path.join(BASEDIR, requirements_file), 'r') as f:
- requirements = f.read().splitlines()
-+ if 'MYCROFT_LOOSE_REQUIREMENTS' in os.environ:
-+ print('USING LOOSE REQUIREMENTS!')
-+ requirements = [r.replace('==', '>=') for r in requirements]
- return [pkg for pkg in requirements
- if pkg.strip() and not pkg.startswith("#")]
-
diff --git a/testing/mycroft-core/0005-make-some-deps-optional.patch b/testing/mycroft-core/0005-make-some-deps-optional.patch
deleted file mode 100644
index c75a0fbd7d8..00000000000
--- a/testing/mycroft-core/0005-make-some-deps-optional.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mycroft-core/pull/2575
-
-diff --git a/.travis.yml b/.travis.yml
-index c01c851d87..a0b9ab2c1c 100644
---- a/.travis.yml
-+++ b/.travis.yml
-@@ -26,8 +26,6 @@ install:
- - mkdir ${TMPDIR}
- - echo ${TMPDIR}
- - VIRTUALENV_ROOT=${VIRTUAL_ENV} ./dev_setup.sh
-- - pip install -r requirements.txt
-- - pip install -r test-requirements.txt
- # command to run tests
- script:
- - pycodestyle mycroft test
-diff --git a/LICENSE.md b/LICENSE.md
-index b2719d2a5e..b882a785c0 100644
---- a/LICENSE.md
-+++ b/LICENSE.md
-@@ -208,4 +208,4 @@ Component licenses for mycroft-core:
- The mycroft-core software references various Python Packages (via PIP),
- each of which has a separate license. All are compatible with the
- Apache 2.0 license. See the referenced packages listed in the
--"requirements.txt" file for specific terms and conditions.
-+"requirements/requirements.txt" file for specific terms and conditions.
-diff --git a/MANIFEST.in b/MANIFEST.in
-index 1888d6da7b..1708d5345f 100644
---- a/MANIFEST.in
-+++ b/MANIFEST.in
-@@ -1,5 +1,5 @@
- recursive-include mycroft/client/speech/recognizer/model *
--include requirements.txt
-+include requirements/requirements.txt
- include mycroft/configuration/*.conf
- recursive-include mycroft/res *
- recursive-include mycroft/res/snd *
-diff --git a/dev_setup.sh b/dev_setup.sh
-index 3c59bc427b..f7f2d90009 100755
---- a/dev_setup.sh
-+++ b/dev_setup.sh
-@@ -495,16 +495,26 @@ if ! grep -q "$TOP" $VENV_PATH_FILE ; then
- fi
-
- # install required python modules
--if ! pip install -r requirements.txt ; then
-- echo 'Warning: Failed to install all requirements. Continue? y/N'
-+if ! pip install -r requirements/requirements.txt ; then
-+ echo 'Warning: Failed to install required dependencies. Continue? y/N'
- read -n1 continue
- if [[ $continue != 'y' ]] ; then
- exit 1
- fi
- fi
-
--if ! pip install -r test-requirements.txt ; then
-- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..."
-+# install optional python modules
-+if ! pip install -r requirements/requirements-optional.txt ; then
-+ echo 'Warning: Failed to install optional dependencies. Continue? y/N'
-+ read -n1 continue
-+ if [[ $continue != 'y' ]] ; then
-+ exit 1
-+ fi
-+fi
-+
-+
-+if ! pip install -r requirements/requirements-tests.txt ; then
-+ echo "Warning: Test requirements failed to install. Note: normal operation should still work fine..."
- fi
-
- SYSMEM=$(free | awk '/^Mem:/ { print $2 }')
-@@ -563,4 +573,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then
- fi
-
- #Store a fingerprint of setup
--md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed
-+md5sum requirements/requirements.txt requirements/requirements-optional.txt requirements/requirements-tests.txt dev_setup.sh > .installed
-diff --git a/mycroft/client/enclosure/generic/__init__.py b/mycroft/client/enclosure/generic/__init__.py
-index 6256498add..a86dda739c 100644
---- a/mycroft/client/enclosure/generic/__init__.py
-+++ b/mycroft/client/enclosure/generic/__init__.py
-@@ -15,7 +15,6 @@
- import subprocess
- import time
- import sys
--from alsaaudio import Mixer
- from threading import Thread, Timer
-
- import mycroft.dialog
-diff --git a/requirements/requirements-optional.txt b/requirements/requirements-optional.txt
-new file mode 100644
-index 0000000000..4a62dad731
---- /dev/null
-+++ b/requirements/requirements-optional.txt
-@@ -0,0 +1,4 @@
-+pychromecast==3.2.2
-+python-vlc==1.1.2
-+pyalsaaudio==0.8.2
-+google-api-python-client==1.6.4
-diff --git a/test-requirements.txt b/requirements/requirements-tests.txt
-similarity index 90%
-rename from test-requirements.txt
-rename to requirements/requirements-tests.txt
-index 874a0f130d..9e038123e5 100644
---- a/test-requirements.txt
-+++ b/requirements/requirements-tests.txt
-@@ -7,3 +7,5 @@ sphinx==2.2.1
- sphinx-rtd-theme==0.4.3
- git+https://github.com/behave/behave@v1.2.7.dev1
- allure-behave==2.8.10
-+
-+python-vlc==1.1.2
-diff --git a/requirements.txt b/requirements/requirements.txt
-similarity index 83%
-rename from requirements.txt
-rename to requirements/requirements.txt
-index db2fa43738..f86a81b4bf 100644
---- a/requirements.txt
-+++ b/requirements/requirements.txt
-@@ -7,16 +7,12 @@ SpeechRecognition==3.8.1
- tornado==6.0.3
- websocket-client==0.54.0
- requests-futures==0.9.5
--pyalsaaudio==0.8.2
- pyserial==3.0
- psutil==5.6.6
- pocketsphinx==0.1.0
- inflection==0.3.1
- pillow==7.1.2
- python-dateutil==2.6.0
--pychromecast==3.2.2
--python-vlc==1.1.2
--google-api-python-client==1.6.4
- fasteners==0.14.1
- PyYAML==5.1.2
-
-diff --git a/scripts/my-info.sh b/scripts/my-info.sh
-index a3b944308e..e395411120 100644
---- a/scripts/my-info.sh
-+++ b/scripts/my-info.sh
-@@ -144,7 +144,7 @@ function checkmimic() {
- # pythoning!
- function checkPIP() {
- mlog "Python checks"
-- mlog " - Verifying ${MYCROFT_HOME}/requirements.txt:"
-+ mlog " - Verifying ${MYCROFT_HOME}/requirements/requirements.txt:"
- if workon mycroft ; then
- pip list > /tmp/mycroft-piplist.$$
-
-diff --git a/setup.py b/setup.py
-index c98f7b4f8f..2e171d66b6 100644
---- a/setup.py
-+++ b/setup.py
-@@ -56,7 +56,9 @@ setup(
- author_email='devs@mycroft.ai',
- url='https://github.com/MycroftAI/mycroft-core',
- description='Mycroft Core',
-- install_requires=required('requirements.txt'),
-+ install_requires=required('requirements/requirements.txt'),
-+ extras_requires=required('requirements/requirements-optional.txt'),
-+ tests_requires=required('requirements/requirements-tests.txt'),
- packages=find_packages(include=['mycroft*']),
- include_package_data=True,
-
-diff --git a/test/Dockerfile.test b/test/Dockerfile.test
-index 87e3c85287..32554af019 100644
---- a/test/Dockerfile.test
-+++ b/test/Dockerfile.test
-@@ -64,12 +64,14 @@ RUN python3 -m venv "/opt/mycroft/mycroft-core/.venv"
- # determine if any changes have been made since it last started
- WORKDIR /opt/mycroft/mycroft-core
- RUN .venv/bin/python -m pip install pip==20.0.2
--COPY requirements.txt .
-+COPY requirements/requirements.txt .
- RUN .venv/bin/python -m pip install -r requirements.txt
--COPY test-requirements.txt .
--RUN .venv/bin/python -m pip install -r test-requirements.txt
-+COPY requirements/requirements-optional.txt .
-+RUN .venv/bin/python -m pip install -r requirements-optional.txt
-+COPY requirements/requirements-tests.txt .
-+RUN .venv/bin/python -m pip install -r requirements-tests.txt
- COPY dev_setup.sh .
--RUN md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed
-+RUN md5sum requirements.txt requirements-tests.txt requirements-optional.txt dev_setup.sh > .installed
-
- # Add the mycroft core virtual environment to the system path.
- ENV PATH /opt/mycroft/mycroft-core/.venv/bin:$PATH
diff --git a/testing/mycroft-core/APKBUILD b/testing/mycroft-core/APKBUILD
deleted file mode 100644
index fc16b4bc4d6..00000000000
--- a/testing/mycroft-core/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-core
-pkgver=20.2.3
-pkgrel=0
-pkgdesc="Mycroft Core, the Mycroft Artificial Intelligence platform"
-url="https://mycroft.ai/"
-# mips, mips64 and s390x blocked by py3-precise-runner
-# s390x blocked by mimic1
-arch="noarch !mips !mips64 !s390x"
-license="Apache-2.0"
-depends="python3 py3-six py3-requests py3-gtts py3-pyaudio py3-pyee py3-speechrecognition py3-tornado py3-websocket-client py3-requests-futures py3-serial py3-psutil py3-pocketsphinx py3-inflection py3-pillow py3-dateutil py3-fasteners py3-yaml py3-lingua-franca mycroft-skills-manager mycroft-skills-kit py3-adapt-parser py3-padatious py3-fann2 py3-padaos py3-precise-runner py3-petact py3-xdg mimic1"
-# These dependencies are required for their executables
-depends="$depends pulseaudio-utils mpg123 vorbis-tools"
-# Minimum skills required for functionality
-depends="$depends mycroft-skill-fallback-unknown mycroft-skill-pairing mycroft-skill-configuration"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-wheel py3-vlc"
-install="$pkgname.post-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/MycroftAI/mycroft-core/archive/release/v$pkgver.tar.gz
- mycroft.conf
- 0001-remove-xmlrunner-dep.patch
- 0002-follow-xdg-for-skill-settings.patch
- 0003-xdg.patch
- 0004-relax-dep-requirements.patch
- 0005-make-some-deps-optional.patch
- "
-# Net is required for tests
-# Two tests are broken still
-# https://github.com/MycroftAI/mycroft-core/issues/2574
-options="!check"
-builddir="$srcdir/mycroft-core-release-v$pkgver"
-
-build() {
- MYCROFT_LOOSE_REQUIREMENTS=1 python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- MYCROFT_LOOSE_REQUIREMENTS=1 python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 "$srcdir"/mycroft.conf "$pkgdir"/etc/mycroft/mycroft.conf
-}
-
-sha512sums="8c9464f32dea1c5b843725c4494be17a4ccd5c46af363d3fc695813a79c1100b033f3bbac5d5e490c6afb9d018de5418cd1e467766d2d190c74ba2902399eec9 mycroft-core-20.2.3.tar.gz
-c852bf37c3588a3f65f55b65af0e55440e13aeeaca522e7029a7326ec58c9cf053d14c7c3376a952b65512cabe3437ba6701f1e0e0e4971d6b5ada159bacd57a mycroft.conf
-d9b8fd8dc9e42937f2ec095c1ddee738073a9f9c64917a9793cadaad23504a7ae22e2e1420a2822ed915b4aae6fa5e5717ead97dc88f3045dd1bbb73b92eed4d 0001-remove-xmlrunner-dep.patch
-27148a19c2d5a4fd61c25850659e4edc95844c30eb1339243e939cf22aa9093d9d4e805d80a79174e257be1614ebd7be284163e3688b083c0704a1e4c9328f58 0002-follow-xdg-for-skill-settings.patch
-f1760d828a37d3abd50e9f26c983dc68277e12b181ff598e4d7d1447b3a965644039c4d5035b1adaf593cf6a4afd44bc85cd16929c2a553eca1125c21d3e2619 0003-xdg.patch
-fa0667bd4a9f8f9c17c353f1bf1899bf699d77968caca81b54d7aa89219b65b4f2630e07dd092a427221fc98c2f9e2890811f3f50c44fe783bbadb3725554898 0004-relax-dep-requirements.patch
-4d6fdc303e0f6ce73fc91cc680f7942c2a902540f090a3c27a2d9f51eecc704093fbba5fb11f25273c688317138959bf5cfb15bac6d5a20ce2be551a4f6c6ab5 0005-make-some-deps-optional.patch"
diff --git a/testing/mycroft-core/mycroft-core.post-install b/testing/mycroft-core/mycroft-core.post-install
deleted file mode 100644
index 90c4336c559..00000000000
--- a/testing/mycroft-core/mycroft-core.post-install
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-cat <<EOF
-mycroft-core installs with the most basic skills required to get the package working.
-If you want all the official MycroftAI skills, consider installing the mycroft-skills meta package.
-
-Since there currently isn't a single end-point to start Mycroft, you'll need to run the following manually:
-- /usr/bin/mycroft-messagebus
-- /usr/bin/mycroft-audio
-- /usr/bin/mycroft-speech-client
-- /usr/bin/mycroft-skills
-- /usr/bin/mycroft-cli-client
-EOF
diff --git a/testing/mycroft-core/mycroft.conf b/testing/mycroft-core/mycroft.conf
deleted file mode 100644
index ff8e493d4ca..00000000000
--- a/testing/mycroft-core/mycroft.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "data_dir": "/usr/share/mycroft",
- "skills": {
- "auto_update": false
- }
-}
diff --git a/testing/mycroft-gui/APKBUILD b/testing/mycroft-gui/APKBUILD
deleted file mode 100644
index a8ca6efdaf3..00000000000
--- a/testing/mycroft-gui/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Bart Ribberse <bribbers@disroot.org>
-# Maintainer: Bart Ribberse <bribbers@disroot.org>
-pkgname=mycroft-gui
-pkgver=1.0
-pkgrel=0
-pkgdesc="The Graphical User Interface used by the Mycroft Mark II and more"
-url="https://mycroft.ai"
-# ppc64le, s390x, armhf, mips and mips64 blocked by qt5-qtwebview
-arch="all !ppc64le !s390x !armhf !mips !mips64"
-license="Apache-2.0"
-depends="kirigami2 mycroft-skill-mark2"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtmultimedia-dev qt5-qtwebsockets-dev qt5-qtwebview-dev plasma-framework-dev kdbusaddons-dev kio-dev"
-source="https://github.com/MycroftAI/mycroft-gui/archive/v$pkgver/mycroft-gui-v$pkgver.tar.gz"
-options="!check" # Tests fail to compile
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_TESTING=OFF \
- -DBUILD_REMOTE_TTS=ON
- # TODO: enable tests
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-}
-
-sha512sums="2a28b4cbfcc4c0a7af297b5bfbc76be5dd35947addc94292bf04388ac196e23eb0a1b50bdb7cc4a21c32d52db3694336cd3b8bae3ce74883172a49c6e932666d mycroft-gui-v1.0.tar.gz"
diff --git a/testing/mycroft-skill-alarm/APKBUILD b/testing/mycroft-skill-alarm/APKBUILD
deleted file mode 100644
index 23b94e959b5..00000000000
--- a/testing/mycroft-skill-alarm/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-alarm
-pkgver=20.02_git20200508
-pkgrel=0
-_commit="efaa776be9f603b17df7b4e7a07e73fb4fbd4675"
-pkgdesc="Mycroft AI official Alarm Skill - Set single and recurring alarms, with a choice of alarm sounds"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-pyalsaaudio"
-source="https://github.com/mycroftai/skill-alarm/archive/$_commit/skills-alarm-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-alarm-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-alarm.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-alarm.mycroftai/
-}
-
-sha512sums="a5be3e4d9881fdd00b282cef7ddbea3566a1653891ebd45c7a41a5691518075fae8b461c631b55b33282c13a223bb96dfcf96349a7cc9c69aaac2a3b12d7664f skills-alarm-efaa776be9f603b17df7b4e7a07e73fb4fbd4675.tar.gz"
diff --git a/testing/mycroft-skill-audio-record/APKBUILD b/testing/mycroft-skill-audio-record/APKBUILD
deleted file mode 100644
index da23e997b69..00000000000
--- a/testing/mycroft-skill-audio-record/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-audio-record
-pkgver=20.02_git20200326
-pkgrel=0
-_commit="7a0b4af7dc2c813ccbcdcdabff0ea18bd9e90169"
-pkgdesc="Mycroft AI official Audio Record Skill - record audio and play it back"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-psutil"
-source="https://github.com/mycroftai/skill-audio-record/archive/$_commit/skills-audio-record-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-audio-record-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-audio-record.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-audio-record.mycroftai/
-}
-
-sha512sums="5785a5c3b6787ab6511f4791cf0fd288c04b3a38d0dcb83412f418e6b7039692bdd28c57c6615cd7b43f3b960991cdb9744d94e8b46bc754cc2d1d55e308823c skills-audio-record-7a0b4af7dc2c813ccbcdcdabff0ea18bd9e90169.tar.gz"
diff --git a/testing/mycroft-skill-cocktail/APKBUILD b/testing/mycroft-skill-cocktail/APKBUILD
deleted file mode 100644
index 1323b743b60..00000000000
--- a/testing/mycroft-skill-cocktail/APKBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-cocktail
-pkgver=1.0
-pkgrel=0
-pkgdesc="Mycroft skill for making drinks"
-url="https://github.com/forslund/skill-cocktail"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="python3"
-source="https://github.com/forslund/skill-cocktail/archive/v$pkgver/skill-cocktail-v$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-cocktail-$pkgver"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/cocktail
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/cocktail/
-}
-
-sha512sums="be6b0bb18ee8aac4247cf044ec7a3350653803cec89a3d7a3d5c3ce5f149af2c9c5a2305f02d811be6f9521c77fdc857d6967e450406076fead6c16a70bfd493 skill-cocktail-v1.0.tar.gz"
diff --git a/testing/mycroft-skill-configuration/APKBUILD b/testing/mycroft-skill-configuration/APKBUILD
deleted file mode 100644
index 030109b5710..00000000000
--- a/testing/mycroft-skill-configuration/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-configuration
-pkgver=20.02_git20200428
-pkgrel=0
-_commit="cb7eb2e9763eb3f52282000c91d75a521e58ab90"
-pkgdesc="Mycroft AI official Configuration Skill - synchronize settings with home.mycroft.ai"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-requests py3-humanhash3"
-source="https://github.com/mycroftai/skill-configuration/archive/$_commit/skills-configuration-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-configuration-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-configuration.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-configuration.mycroftai/
-}
-
-sha512sums="85cb8467aa5d6c551529ee1d979cea236c89133ca6f7c022b537875f772ad31afb0d1714f44e8fb2a8997a056a5fa85c5601918a35b238f067120ebbbb07dde1 skills-configuration-cb7eb2e9763eb3f52282000c91d75a521e58ab90.tar.gz"
diff --git a/testing/mycroft-skill-date-time/APKBUILD b/testing/mycroft-skill-date-time/APKBUILD
deleted file mode 100644
index b097cf80ce0..00000000000
--- a/testing/mycroft-skill-date-time/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-date-time
-pkgver=20.02_git20200503
-pkgrel=0
-_commit="1b3d4dfc4500d16670e1e412546a8956c162f82d"
-pkgdesc="Mycroft AI official Date and Time Skill, providing the current time, date and day of week for cities around the world"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-tz py3-tzlocal py3-astral py3-holidays"
-source="https://github.com/mycroftai/skill-date-time/archive/$_commit/skills-date-time-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-date-time-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-date-time.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-date-time.mycroftai/
-}
-
-sha512sums="82b77d4cefe2680d44ade86f66a5db0a709d09b21c3695845e97df2bdfb06387d33e2ae343a47fae705546b7d65241e429e1b36bc867acc6e7c11e17267c7841 skills-date-time-1b3d4dfc4500d16670e1e412546a8956c162f82d.tar.gz"
diff --git a/testing/mycroft-skill-dismissal/APKBUILD b/testing/mycroft-skill-dismissal/APKBUILD
deleted file mode 100644
index 0abae2aeea1..00000000000
--- a/testing/mycroft-skill-dismissal/APKBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-dismissal
-pkgver=1.1r1
-pkgrel=0
-pkgdesc="Allows you to dismiss Mycroft verbally, in case of accidental activation, or if you change your mind"
-url="https://github.com/ChanceNCounter/dismissal-skill"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/ChanceNCounter/dismissal-skill/archive/v$pkgver/dismissal-skill-v$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/dismissal-skill-$pkgver"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/dismissal
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/dismissal/
-}
-
-sha512sums="cd88fbce25c0ef3a5cebf762bf2d39d43c34e04c0f29e5ae95373face41bf3ab168ab00b474d98a4311d3f9cf4a6eb64853a8daeac0d60c5471986c34f9403f1 dismissal-skill-v1.1r1.tar.gz"
diff --git a/testing/mycroft-skill-email/APKBUILD b/testing/mycroft-skill-email/APKBUILD
deleted file mode 100644
index bf361cb0c03..00000000000
--- a/testing/mycroft-skill-email/APKBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-email
-pkgver=1.6.5
-pkgrel=0
-pkgdesc="Check your email with Mycroft!"
-url="https://github.com/LinusS1/email-skill"
-arch="noarch"
-license="Apache-2.0"
-depends="py3-inflect py3-yaml"
-source="https://github.com/LinusS1/email-skill/archive/v$pkgver/email-skill-v$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/email-skill-$pkgver"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-email
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-email/
-}
-
-sha512sums="19f145ce602999009e9d1b3dcd2e963a9d4ea4f8da9232b0bcb3e0d58934ecfcd0a28063a3c4046a3acf8fcb8481799da90513792958e603757e3c41f889918f email-skill-v1.6.5.tar.gz"
diff --git a/testing/mycroft-skill-fallback-duckduckgo/APKBUILD b/testing/mycroft-skill-fallback-duckduckgo/APKBUILD
deleted file mode 100644
index 3cf745b7b5c..00000000000
--- a/testing/mycroft-skill-fallback-duckduckgo/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-fallback-duckduckgo
-pkgver=20.02_git20200221
-pkgrel=0
-_commit="0b9e3c7d0786621d2847ba77d5e4d492f0139531"
-pkgdesc="Mycroft AI official Duck Duck Go Skill - used as a fallback if an Utterance can't be matched to an Intent"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/fallback-duckduckgo/archive/$_commit/fallback-duckduckgo-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/fallback-duckduckgo-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/fallback-duckduckgo.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/fallback-duckduckgo.mycroftai/
-}
-
-sha512sums="30759fcc781edf10926e7fe53f4749f2294bef6ca9dde8183d3f9bf6c8f126e3178b19e2f0216b62d561279e9f324491f384a67dfa905b1e6b10e572d73adb38 fallback-duckduckgo-0b9e3c7d0786621d2847ba77d5e4d492f0139531.tar.gz"
diff --git a/testing/mycroft-skill-fallback-unknown/APKBUILD b/testing/mycroft-skill-fallback-unknown/APKBUILD
deleted file mode 100644
index 899a8d4f9c4..00000000000
--- a/testing/mycroft-skill-fallback-unknown/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-fallback-unknown
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="76e805b937dc7bb01e9e11c03538cffd68da5d59"
-pkgdesc="Mycroft AI official Unknown Fallback Skill - used if no Intent is matched to an Utterance"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/fallback-unknown/archive/$_commit/fallback-unknown-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/fallback-unknown-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/fallback-unknown.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/fallback-unknown.mycroftai
-}
-
-sha512sums="54e36fadc5542d4e2515be4a3c5d37e28169acd4e92e0fdeaa98f8aa6c774842df66c5d41834b9951b7c6d6e394f9f496f244ff88d26868f79b1df2bc367d41e fallback-unknown-76e805b937dc7bb01e9e11c03538cffd68da5d59.tar.gz"
diff --git a/testing/mycroft-skill-fallback-wolfram-alpha/APKBUILD b/testing/mycroft-skill-fallback-wolfram-alpha/APKBUILD
deleted file mode 100644
index 6b0ebd72a0e..00000000000
--- a/testing/mycroft-skill-fallback-wolfram-alpha/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-fallback-wolfram-alpha
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="991e2cbdb99d44580ea94389e9d79a42b806ff2a"
-pkgdesc="Mycroft AI official Wolfram Alpha Skill - used as a fallback if an Intent is not matched"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-requests py3-wolframalpha py3-mtranslate"
-source="https://github.com/mycroftai/fallback-wolfram-alpha/archive/$_commit/fallback-wolfram-alpha-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/fallback-wolfram-alpha-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/fallback-wolfram-alpha.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/fallback-wolfram-alpha.mycroftai/
-}
-
-sha512sums="d31575552197a6d371c91a2c390b69fef96ae51011899d5efd110901ab1fca3fad2de406f0cdadd1b318fedf0311b9320c9b668aea15f6dd421e4047975dab0e fallback-wolfram-alpha-991e2cbdb99d44580ea94389e9d79a42b806ff2a.tar.gz"
diff --git a/testing/mycroft-skill-ip/APKBUILD b/testing/mycroft-skill-ip/APKBUILD
deleted file mode 100644
index ecb44765377..00000000000
--- a/testing/mycroft-skill-ip/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-ip
-pkgver=20.02_git20200225
-pkgrel=0
-_commit="0e28eb36b9484150811fdc4b7cd02a49f9776df8"
-pkgdesc="Mycroft AI official IP Skill - find the IP address of your Device"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-ifaddr"
-source="https://github.com/mycroftai/skill-ip/archive/$_commit/skills-ip-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-ip-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-ip.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-ip.mycroftai/
-}
-
-sha512sums="4782a55a12a2e802d38c806938e5c30e2f36b31cf9e658d13b3ad6e9686bb0e53e0bdacb492af77a1c365caae211fcf7875052664a5eecc57e01ee875446561d skills-ip-0e28eb36b9484150811fdc4b7cd02a49f9776df8.tar.gz"
diff --git a/testing/mycroft-skill-joke/APKBUILD b/testing/mycroft-skill-joke/APKBUILD
deleted file mode 100644
index 175891773cf..00000000000
--- a/testing/mycroft-skill-joke/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-joke
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="c796553722f8b76239900e482e4a2aa378d8660c"
-pkgdesc="Mycroft AI official Joke Skill - provide basic jokes"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-pyjokes"
-source="https://github.com/mycroftai/skill-joke/archive/$_commit/skills-joke-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-joke-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-joke.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-joke.mycroftai/
-}
-
-sha512sums="19fe2bd56bb84fd5c3cbaf0433a0228a3e6c745c544ad518279080fdf5782902a64de00a856b6f92de9e4f7ca11eea515e42b4e94fd45dee6dd88138ab810dc2 skills-joke-c796553722f8b76239900e482e4a2aa378d8660c.tar.gz"
diff --git a/testing/mycroft-skill-learning/APKBUILD b/testing/mycroft-skill-learning/APKBUILD
deleted file mode 100644
index 7d0285f6680..00000000000
--- a/testing/mycroft-skill-learning/APKBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-learning
-pkgver=1.1
-pkgrel=0
-pkgdesc="Teach Mycroft knowledge and humor"
-url="https://github.com/gras64/learning-skill"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/gras64/learning-skill/archive/V$pkgver/learning-skill-V$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/learning-skill-$pkgver"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/learning
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/learning/
-}
-
-sha512sums="3d19b32d792d4954c61df461035d080f61356dc45b50e9b3e1b93dc3f08e76a0755558103e20d5ce0f7bf0f8cf50f0647b16a41d71b3acf9ee1ad399863531fd learning-skill-V1.1.tar.gz"
diff --git a/testing/mycroft-skill-mark2/APKBUILD b/testing/mycroft-skill-mark2/APKBUILD
deleted file mode 100644
index d1964fd1229..00000000000
--- a/testing/mycroft-skill-mark2/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-mark2
-pkgver=0_git20200204
-pkgrel=0
-_commit="1e608db1db4e241838ce8a5d44b35286d7e8b23b"
-pkgdesc="Control of the Mycroft Mark 2 enclosure"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-astral py3-arrow"
-source="https://github.com/mycroftai/skill-mark-2/archive/$_commit/skills-mark-2-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-mark-2-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mark2
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mark2/
-}
-
-sha512sums="d262c7309ff0fc9f88eccbf55400442166de1ea20494f53880b556eaed73c1f737e346376cb2c97a272e6a8403216008e57d6171999ca5828ca882835c1008c3 skills-mark-2-1e608db1db4e241838ce8a5d44b35286d7e8b23b.tar.gz"
diff --git a/testing/mycroft-skill-moviemaster/APKBUILD b/testing/mycroft-skill-moviemaster/APKBUILD
deleted file mode 100644
index 97f9a27f05f..00000000000
--- a/testing/mycroft-skill-moviemaster/APKBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-moviemaster
-pkgver=0.2.0
-pkgrel=0
-pkgdesc="Find information about movies, actors and production details"
-url="https://github.com/builderjer/moviemaster"
-arch="noarch"
-license="GPL-3.0-only"
-depends="py3-tmdbv3api"
-source="https://github.com/builderjer/moviemaster/archive/v$pkgver/moviemaster-v$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/moviemaster-$pkgver"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-email
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-email/
-}
-
-sha512sums="98d3a1630ac896058a407a442eb57eb342d91e3f05b16816d2a74532dfa2d03a79a2223d9d3bd6456d5d4c81bb34d8eeaa5091614673588b486065b712f748ac moviemaster-v0.2.0.tar.gz"
diff --git a/testing/mycroft-skill-naptime/APKBUILD b/testing/mycroft-skill-naptime/APKBUILD
deleted file mode 100644
index 51201983075..00000000000
--- a/testing/mycroft-skill-naptime/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-naptime
-pkgver=20.02_git20200226
-pkgrel=0
-_commit="3435fa442285185a2eb01fbe9b774ed419e73ff8"
-pkgdesc="Mycroft AI official Naptime Skill - put Mycroft to sleep for a while"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-naptime/archive/$_commit/skills-naptime-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-naptime-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-naptime.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-naptime.mycroftai/
-}
-
-sha512sums="e45e8e40a0668362a557bd174e7cf2e2a69b94c5fa012c5d8a673f02984f8d1177acc9f35c174b22373cabf8aa0649a03fe5818185ce13a60f94bcf8b4215e81 skills-naptime-3435fa442285185a2eb01fbe9b774ed419e73ff8.tar.gz"
diff --git a/testing/mycroft-skill-npr-news/APKBUILD b/testing/mycroft-skill-npr-news/APKBUILD
deleted file mode 100644
index 50e31556e52..00000000000
--- a/testing/mycroft-skill-npr-news/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-npr-news
-pkgver=20.02_git20200424
-pkgrel=0
-_commit="fc153c686c380b2190ebc5952778cf793c86100e"
-pkgdesc="Mycroft AI official News Skill, providing the latest news report from your favorite broadcast"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-feedparser"
-source="https://github.com/mycroftai/skill-npr-news/archive/$_commit/skills-npr-news-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-npr-news-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-npr-news.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-npr-news.mycroftai/
-}
-
-sha512sums="2d938ed2a7a6785d3897731eb122a203eb04e2089919ed6ce82e8f6a5a2fd5c704a2e930b30789a330694d9e7039897ce5901a3c941c28d81bff142b5db1a9a9 skills-npr-news-fc153c686c380b2190ebc5952778cf793c86100e.tar.gz"
diff --git a/testing/mycroft-skill-pairing/APKBUILD b/testing/mycroft-skill-pairing/APKBUILD
deleted file mode 100644
index 4c67009e074..00000000000
--- a/testing/mycroft-skill-pairing/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-pairing
-pkgver=20.02_git20200501
-pkgrel=0
-_commit="6e8afa98485dd6771ffa3b282e35cfe5098b223a"
-pkgdesc="Mycroft AI official Pairing Skill - connect your Device to home.mycroft.ai"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-pairing/archive/$_commit/skills-pairing-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-pairing-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-pairing.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-pairing.mycroftai/
-}
-
-sha512sums="c9382e7ab9556420cb2dfe32f45e3452094b6f5ea0ddcd206b4483c76a8a33b723ffdecd63e8e235e68fd99ee7e2a61d0e965a2d22c4d06bdcb1060145317b21 skills-pairing-6e8afa98485dd6771ffa3b282e35cfe5098b223a.tar.gz"
diff --git a/testing/mycroft-skill-personal/APKBUILD b/testing/mycroft-skill-personal/APKBUILD
deleted file mode 100644
index dfce8c710db..00000000000
--- a/testing/mycroft-skill-personal/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-personal
-pkgver=20.02_git20200226
-pkgrel=0
-_commit="31b8930ac7350fab3c7803d754c945dff616124d"
-pkgdesc="Mycroft AI official Personality Skill - answers basic personality questions around Mycroft"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-personal/archive/$_commit/skills-personal-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-personal-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-personal.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-personal.mycroftai/
-}
-
-sha512sums="28942572294db98db9070cb7239c83c7779b3334c8c59da8cd167f9c638c85c625f43c62c16bca942ef3a267087d3b9d56a4b16b209f01fb510650e6b1991cb2 skills-personal-31b8930ac7350fab3c7803d754c945dff616124d.tar.gz"
diff --git a/testing/mycroft-skill-playback-control/APKBUILD b/testing/mycroft-skill-playback-control/APKBUILD
deleted file mode 100644
index a1cea5ed354..00000000000
--- a/testing/mycroft-skill-playback-control/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-playback-control
-pkgver=20.02_git20200423
-pkgrel=0
-_commit="f27ab11efc80cfeb556baf420e83bcd4c31b412f"
-pkgdesc="Mycroft AI official Playback Control Skill - providing Intents for other Skills to use common playback functionality"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-playback-control/archive/$_commit/skills-playback-control-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-playback-control-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-playback-control.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-playback-control.mycroftai/
-}
-
-sha512sums="b569bce0dd2d27204d84ebf0789510a5f62542b4fbf7a926c499730acd614a2479f88ae018ebab8fe77e8dd3b7e58d97b5ebc1b6fde154f01edc0fc27f4ff904 skills-playback-control-f27ab11efc80cfeb556baf420e83bcd4c31b412f.tar.gz"
diff --git a/testing/mycroft-skill-pokemon/APKBUILD b/testing/mycroft-skill-pokemon/APKBUILD
deleted file mode 100644
index 8f7ff3510b5..00000000000
--- a/testing/mycroft-skill-pokemon/APKBUILD
+++ /dev/null
@@ -1,20 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-pokemon
-pkgver=1.1.1
-pkgrel=0
-pkgdesc="A skill for mycroft that will answer many questions about Pokémon"
-url="https://github.com/retrodaredevil/pokemon-skill"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-pokebase"
-source="https://github.com/retrodaredevil/pokemon-skill/archive/v$pkgver/pokemon-skill-v$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/pokemon-skill-$pkgver"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/pokemon
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/pokemon/
-}
-
-sha512sums="b051cd4973dba081e849ceaad6ac05d5868f1e4ce134ebaa12db32f1952598ff62b4e3e7282ad42df50ff527a696e0ae5fba23e715e6d3c47691ae732e003537 pokemon-skill-v1.1.1.tar.gz"
diff --git a/testing/mycroft-skill-query/APKBUILD b/testing/mycroft-skill-query/APKBUILD
deleted file mode 100644
index d17d59f8abd..00000000000
--- a/testing/mycroft-skill-query/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-query
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="8122f664ea5faf4e8dc07208188f1fbfcbce139b"
-pkgdesc="Skill Negotiating for the best source for an answer via Common QA "
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-query/archive/$_commit/skills-query-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-query-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/fallback-query.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/fallback-query.mycroftai/
-}
-
-sha512sums="be66a3593bb9c56baf7eaf91564421da08d058aa1d711dacf32991012671c0f47dcac6b760c98ba98708ca6bd6986933a6b500062ac7f85112ab4253629e575c skills-query-8122f664ea5faf4e8dc07208188f1fbfcbce139b.tar.gz"
diff --git a/testing/mycroft-skill-reminder/APKBUILD b/testing/mycroft-skill-reminder/APKBUILD
deleted file mode 100644
index 3810f757a35..00000000000
--- a/testing/mycroft-skill-reminder/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-reminder
-pkgver=20.02_git20200402
-pkgrel=0
-_commit="b8dc13ec00bb0feb361deb58fd71080e98ed1325"
-pkgdesc="Mycroft AI official Reminder Skill - set reminders"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-reminder/archive/$_commit/skills-reminder-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-reminder-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-reminder.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-reminder.mycroftai/
-}
-
-sha512sums="6784f0bbc82c31a5754c8a67ace7121f3a17f54df79afee556ae428f2541fa36baa2ad88ee41442ee1642b639ef245ddfb835378a9c5600d0658afe28e0ce7d0 skills-reminder-b8dc13ec00bb0feb361deb58fd71080e98ed1325.tar.gz"
diff --git a/testing/mycroft-skill-singing/APKBUILD b/testing/mycroft-skill-singing/APKBUILD
deleted file mode 100644
index 6ac953dfd2f..00000000000
--- a/testing/mycroft-skill-singing/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-singing
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="19a78b32faac2eb49bb5a6eff8ca3a57f1f1d448"
-pkgdesc="Mycroft AI official Singing Skill - Mycroft speaks lyrics to popular songs"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 mycroft-skill-playback-control"
-source="https://github.com/mycroftai/skill-singing/archive/$_commit/skills-singing-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-singing-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-singing.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-singing.mycroftai/
-}
-
-sha512sums="eb45109d865eeb99a9da29889e6c781eb80186a288dc88d69dc928a3f400fee7fa6f4806fafa6d89433f738fc07556a553387baf9f7fcdf6e0a828a9bc8a168e skills-singing-19a78b32faac2eb49bb5a6eff8ca3a57f1f1d448.tar.gz"
diff --git a/testing/mycroft-skill-speak/APKBUILD b/testing/mycroft-skill-speak/APKBUILD
deleted file mode 100644
index 3050d8f26b1..00000000000
--- a/testing/mycroft-skill-speak/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-speak
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="a3edc6a882873d71b7f55f7e8b0c4b55d09e8721"
-pkgdesc="Mycroft AI official Speak Skill - make Mycroft speak back text"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-speak/archive/$_commit/skills-speak-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-speak-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-speak.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-speak.mycroftai/
-}
-
-sha512sums="c15e3cbf8b5dedd874241aab6a5c4ac9e59aa92d1eae278b8bcd526f18d8d6a716e2821b75f8635c54dffdf4f92cfa7a80176f53bf847338b39d29367da9e40d skills-speak-a3edc6a882873d71b7f55f7e8b0c4b55d09e8721.tar.gz"
diff --git a/testing/mycroft-skill-spelling/APKBUILD b/testing/mycroft-skill-spelling/APKBUILD
deleted file mode 100644
index 692bed53f20..00000000000
--- a/testing/mycroft-skill-spelling/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-spelling
-pkgver=20.02_git20200225
-pkgrel=0
-_commit="b28e6ec1a02ae2cc173e2fc5fda64767735208ac"
-pkgdesc="Mycroft AI spelling Skill"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-spelling/archive/$_commit/skills-spelling-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-spelling-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-spelling.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-spelling.mycroftai/
-}
-
-sha512sums="1cb3adb108eeed49c079dca2d84e41715974dab76889d7da24e7d13d2e29e4077eb3f8aebdee23fcdfd82312600b104c3415599bfdaa8b80831c300697f3a3f5 skills-spelling-b28e6ec1a02ae2cc173e2fc5fda64767735208ac.tar.gz"
diff --git a/testing/mycroft-skill-stock/APKBUILD b/testing/mycroft-skill-stock/APKBUILD
deleted file mode 100644
index dbf551ec2bf..00000000000
--- a/testing/mycroft-skill-stock/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-stock
-pkgver=20.02_git20200428
-pkgrel=0
-_commit="b48a4982aa04a25ea33f7ad141c535551cf0888c"
-pkgdesc="Mycroft AI official Stock Skill - providing current prices of stocks"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-requests"
-source="https://github.com/mycroftai/skill-stock/archive/$_commit/skills-stock-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-stock-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-stock.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-stock.mycroftai/
-}
-
-sha512sums="6bcab30269f7217a394c9ef1cb78367508d28c318371c819444c2712e0382a474aac3e9fda60ac670ebecdb17cd02c85bb86d928940f53304503b561db16a701 skills-stock-b48a4982aa04a25ea33f7ad141c535551cf0888c.tar.gz"
diff --git a/testing/mycroft-skill-stop/APKBUILD b/testing/mycroft-skill-stop/APKBUILD
deleted file mode 100644
index 2c3634f6148..00000000000
--- a/testing/mycroft-skill-stop/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-stop
-pkgver=20.02_git20200226
-pkgrel=0
-_commit="e6872b66e264c597ad921b5a358fded5821d265c"
-pkgdesc="Mycroft AI official Stop Skill - stop the actions of a Skill that are in progress"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-stop/archive/$_commit/skills-stop-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-stop-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-stop.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-stop.mycroftai/
-}
-
-sha512sums="3d55db1b0c7573e04035d7c83a871566a795a8f417655f449cc5b3c332be65eee6ec08665cc8018d6edc83cf995afd9247a7807337ae1356979450ebff890b24 skills-stop-e6872b66e264c597ad921b5a358fded5821d265c.tar.gz"
diff --git a/testing/mycroft-skill-support/APKBUILD b/testing/mycroft-skill-support/APKBUILD
deleted file mode 100644
index 3f17eedbd6f..00000000000
--- a/testing/mycroft-skill-support/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-support
-pkgver=20.02_git20200113
-pkgrel=0
-_commit="743fb3525748d025093b29cbaf01e48e65395337"
-pkgdesc="Mycroft AI official Support Skill - create information for a support request using voice"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-openssl"
-source="https://github.com/mycroftai/skill-support/archive/$_commit/skills-support-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-support-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-support.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-support.mycroftai/
-}
-
-sha512sums="a5bc4347459b72b4fe52fbbd63994e3e4e86103b4a92e721b152ad43db40c36e2e10f922902af9c869f3cda1d3a13b9a2406a6398584f634f43f3a20db0b7326 skills-support-743fb3525748d025093b29cbaf01e48e65395337.tar.gz"
diff --git a/testing/mycroft-skill-timer/APKBUILD b/testing/mycroft-skill-timer/APKBUILD
deleted file mode 100644
index 36177652edc..00000000000
--- a/testing/mycroft-skill-timer/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-timer
-pkgver=20.02_git20200409
-pkgrel=0
-_commit="458e23fe55418488866a2bf2703f89c3ee0683df"
-pkgdesc="Mycroft AI official Timer Skill - set multiple named timers"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-num2words"
-source="https://github.com/mycroftai/mycroft-timer/archive/$_commit/mycroft-timer-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/mycroft-timer-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-timer.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-timer.mycroftai/
-}
-
-sha512sums="93419ac7d64f2daa24c54b4f41a2b9cc998d7244f1c93fee550f1181626728725e7d7445a5b24cbd64961b18035e6c5798a5647ee3fcddc16393cfa96ba8b88d mycroft-timer-458e23fe55418488866a2bf2703f89c3ee0683df.tar.gz"
diff --git a/testing/mycroft-skill-version-checker/APKBUILD b/testing/mycroft-skill-version-checker/APKBUILD
deleted file mode 100644
index 058b5d21fa7..00000000000
--- a/testing/mycroft-skill-version-checker/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-version-checker
-pkgver=20.02_git20200225
-pkgrel=0
-_commit="1cc84563fbb8289d7b61284733addf9e179e26f1"
-pkgdesc="Mycroft AI official Version Checker Skill - check the version of mycroft-core that is installed"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-version-checker/archive/$_commit/skills-version-checker-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-version-checker-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-version-checker.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-version-checker.mycroftai/
-}
-
-sha512sums="7e277ccc597c0955a2415847cde0ff7c0d5a815cde42e265d69e337d05f29de8fa3924221fcd6c492796d402598a2ad43a4ab61c1bbd5a86c1ec46ef7ec5c545 skills-version-checker-1cc84563fbb8289d7b61284733addf9e179e26f1.tar.gz"
diff --git a/testing/mycroft-skill-volume/APKBUILD b/testing/mycroft-skill-volume/APKBUILD
deleted file mode 100644
index 8112b1b3c2b..00000000000
--- a/testing/mycroft-skill-volume/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-volume
-pkgver=20.02_git20200413
-pkgrel=0
-_commit="a5aaf928de334fa340a7126b81d93becaf99d724"
-pkgdesc="Mycroft AI official Volume Skill - control the volume of your Device"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-source="https://github.com/mycroftai/skill-volume/archive/$_commit/skills-volume-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-volume-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-volume.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-volume.mycroftai/
-}
-
-sha512sums="83562ec5c8cff4603d8c8626fd087d3d4f2a894bfae906aabc9aeecb2e1e19789414ef8e1bac136477fa401c461417d7d2684b86dcccb6558c5f6e3580374503 skills-volume-a5aaf928de334fa340a7126b81d93becaf99d724.tar.gz"
diff --git a/testing/mycroft-skill-weather/APKBUILD b/testing/mycroft-skill-weather/APKBUILD
deleted file mode 100644
index d01c72a4571..00000000000
--- a/testing/mycroft-skill-weather/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-weather
-pkgver=20.02_git20200323
-pkgrel=0
-_commit="a48db3b87508fe7dd88ec7ac600ccf6d0bf22b43"
-pkgdesc="Mycroft AI official Weather Skill, providing weather conditions and forecasts"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-multi-key-dict py3-pyowm py3-requests"
-source="https://github.com/mycroftai/skill-weather/archive/$_commit/skills-weather-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-weather-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-weather.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-weather.mycroftai/
-}
-
-sha512sums="51af8003a2838eeb399e6ed9afd0cd48ffe405b7f1d4af710550e069f0ebaee6397677281df137cdb8f2c81a1d3c4867fd9f06e510f89d232109f58cfa3f960d skills-weather-a48db3b87508fe7dd88ec7ac600ccf6d0bf22b43.tar.gz"
diff --git a/testing/mycroft-skill-wiki/APKBUILD b/testing/mycroft-skill-wiki/APKBUILD
deleted file mode 100644
index 94c4f9968fe..00000000000
--- a/testing/mycroft-skill-wiki/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skill-wiki
-pkgver=20.02_git20200415
-pkgrel=0
-_commit="c1504a9264e7a329934659b68096031a8a63a35d"
-pkgdesc="Query Wikipedia articles"
-url="https://mycroft.ai/skills"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-wikipedia"
-source="https://github.com/mycroftai/skill-wiki/archive/$_commit/skills-wiki-$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/skill-wiki-$_commit"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/mycroft/skills/mycroft-wiki.mycroftai
- cp -r ./* "$pkgdir"/usr/share/mycroft/skills/mycroft-wiki.mycroftai/
-}
-
-sha512sums="549c1673962c529d1768ce7d37546865a543678b3869d46f5e8e89cf1c88d1f1db2f291f6ff4bb3fb6ef6ddba4eee75d20e78f83a43e4f54cccfc07b71f1d959 skills-wiki-c1504a9264e7a329934659b68096031a8a63a35d.tar.gz"
diff --git a/testing/mycroft-skills-kit/APKBUILD b/testing/mycroft-skills-kit/APKBUILD
deleted file mode 100644
index 48622d80101..00000000000
--- a/testing/mycroft-skills-kit/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skills-kit
-pkgver=0.3.15
-pkgrel=0
-pkgdesc="Mycroft Skills Kit"
-url="https://github.com/MycroftAI/mycroft-skills-kit"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 mycroft-skills-manager py3-colorama py3-requests py3-pygithub py3-pip"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/m/msk/msk-$pkgver.tar.gz
- remove-typing-dep.patch
- "
-options="!check" # No tests
-builddir="$srcdir/msk-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1b0f0b7d0fed88f5ac1e7c50834cc9beabae267a29dc3d6ff6b7ed48a88e842cd6874332cc7f35c257d960b83b332f481cb096130e599a1bbed53752633fe110 msk-0.3.15.tar.gz
-ea5f6d3eccfaeeba5d5bd19c829776ca2c4d3420c11199c42f17bd0b42819978a58304360a09a0539c5350466874fe2bf480e971d8ecf9a078de0ac715cfe258 remove-typing-dep.patch"
diff --git a/testing/mycroft-skills-kit/remove-typing-dep.patch b/testing/mycroft-skills-kit/remove-typing-dep.patch
deleted file mode 100644
index 162e0b33707..00000000000
--- a/testing/mycroft-skills-kit/remove-typing-dep.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Upstream pull-request: https://github.com/MycroftAI/mycroft-skills-kit/pull/45
-
-From 0c22d30464f162727bf1b4f50705354e4e9b309f Mon Sep 17 00:00:00 2001
-From: Bart Ribbers <bribbers@disroot.org>
-Date: Mon, 4 May 2020 16:51:34 +0200
-Subject: [PATCH] Remove the typing dep
-
-Typing is a backport for Python older than 3.5, and isn't required on
-newer versions. Besides Python 3.4 and lower isn't support anymore by
-Mycroft anyway
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 246a4e7..9973754 100644
---- a/setup.py
-+++ b/setup.py
-@@ -26,7 +26,7 @@
- version='0.3.15', # Also update in msk/__init__.py
- packages=['msk', 'msk.actions'],
- package_data={'msk': ['licenses/*']},
-- install_requires=['GitPython>=3.0.5', 'typing', 'msm>=0.5.13', 'pygithub',
-+ install_requires=['GitPython>=3.0.5', 'msm>=0.5.13', 'pygithub',
- 'requests', 'colorama'],
- url='https://github.com/MycroftAI/mycroft-skills-kit',
- license='Apache-2.0',
diff --git a/testing/mycroft-skills-manager/APKBUILD b/testing/mycroft-skills-manager/APKBUILD
deleted file mode 100644
index df59d4373b6..00000000000
--- a/testing/mycroft-skills-manager/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skills-manager
-pkgver=0.8.7
-pkgrel=0
-pkgdesc="Mycroft Skills Manager"
-url="https://github.com/MycroftAI/mycroft-skills-manager"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-lazy py3-pako py3-yaml py3-fasteners py3-gitpython py3-requests"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/m/msm/msm-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/msm-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="501a12668dc25b0db5407f9f3af37884f8fc824eebf486bd6e3a92cbfcd8525ad9ef61398a36618ed7f2c2d399eea64dceb2efbcf45cc259d29cef185f0aefe1 msm-0.8.7.tar.gz"
diff --git a/testing/mycroft-skills/APKBUILD b/testing/mycroft-skills/APKBUILD
deleted file mode 100644
index c3a9b9ff625..00000000000
--- a/testing/mycroft-skills/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=mycroft-skills
-pkgver=20.02
-pkgrel=1
-pkgdesc="Meta package for the official MyCroft Skills"
-url="https://mycroft.ai"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="mycroft-skill-stop
- mycroft-skill-volume
- mycroft-skill-version-checker
- mycroft-skill-naptime
- mycroft-skill-query
- mycroft-skill-fallback-duckduckgo
- mycroft-skill-fallback-wolfram-alpha
- mycroft-skill-speak
- mycroft-skill-alarm
- mycroft-skill-audio-record
- mycroft-skill-date-time
- mycroft-skill-ip
- mycroft-skill-joke
- mycroft-skill-npr-news
- mycroft-skill-personal
- mycroft-skill-reminder
- mycroft-skill-singing
- mycroft-skill-spelling
- mycroft-skill-stock
- mycroft-skill-support
- mycroft-skill-timer
- mycroft-skill-weather
- mycroft-skill-wiki
- mycroft-skill-version-checker
- "
-options="!check" # No tests for a metapkg
-
-package() {
- mkdir -p "$pkgdir"
-}
diff --git a/testing/mygui/APKBUILD b/testing/mygui/APKBUILD
deleted file mode 100644
index 40588d0caa8..00000000000
--- a/testing/mygui/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Clayton Craft <clayton@craftyguy.net>
-# Maintainer: Clayton Craft <clayton@craftyguy.net>
-pkgname=mygui
-pkgver=3.2.2
-pkgrel=0
-pkgdesc="A multilayer and overlappable GUI System"
-# Note: only tested on the following archs, may work on others too but not
-# adding them until this has been confirmed
-arch="x86_64 aarch64"
-url="http://mygui.info/"
-license="MIT"
-makedepends="boost-dev cmake oxygen graphviz ttf-dejavu doxygen freetype-dev ois-dev"
-source="https://github.com/MyGUI/mygui/archive/MyGUI$pkgver.tar.gz"
-subpackages="$pkgname-dev"
-# Package includes unit tests but they require glx/acceleration
-options="!check"
-builddir="$srcdir/mygui-MyGUI$pkgver"
-
-build() {
- sed -i "71 i set(MYGUI_GCC_VISIBILITY_FLAGS "")" CMakeLists.txt
- sed -i "s/\$OIS_LIBRARIES/$OIS_LIBRARIES boost_system/g" Common/CMakeLists.txt
-
- cmake -B build . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DMYGUI_INSTALL_SAMPLES=TRUE \
- -DMYGUI_INSTALL_TOOLS=TRUE \
- -DMYGUI_INSTALL_DOCS=TRUE \
- -DMYGUI_INSTALL_MEDIA=TRUE \
- -DFREETYPE_INCLUDE_DIR=/usr/include/freetype3/ \
- -DMYGUI_BUILD_DEMOS=FALSE \
- -DMYGUI_BUILD_TOOLS=FALSE \
- -DCMAKE_BUILD_TYPE=None \
- -DMYGUI_RENDERSYSTEM=7 \
- -DBUILD_SHARED_LIBS=TRUE
-
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-sha512sums="1290ce1d78b9e4bfe72bea3fb1bc6cdd25969b44be2844df62a1f425b3e221a68b61658fdf45271fb50a1957f12b5ada1c9be971e00ecfe41f53ae0a83ae18d4 MyGUI3.2.2.tar.gz"
diff --git a/testing/mynewt-newt/APKBUILD b/testing/mynewt-newt/APKBUILD
deleted file mode 100644
index 4950e1ba28a..00000000000
--- a/testing/mynewt-newt/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=mynewt-newt
-pkgver=1.7.0
-_ver=${pkgver//./_}_tag
-pkgrel=1
-pkgdesc="Apache Newt is a smart build and package management tool for Apache Mynewt Operating System"
-url="https://mynewt.apache.org"
-arch="x86_64 x86"
-license="Apache-2.0"
-options="!check" # unreleased test suite in separate repository
-depends="git"
-makedepends="go"
-subpackages="$pkgname-doc"
-source="mynewt-newt-$pkgver.tar.gz::https://github.com/apache/mynewt-newt/archive/mynewt_${_ver}.tar.gz"
-builddir="$srcdir/mynewt-newt-mynewt_${_ver}"
-
-build() {
- ./build.sh
-}
-
-package() {
- install -Dm 755 newt/newt "${pkgdir}/usr/bin/newt"
-
- install -Dm 644 -t "${pkgdir}/usr/share/doc/${pkgname}/" README.md
-}
-
-sha512sums="ea3ff490bf1322127a1c7c3b77a6f4289b94d66b7c7bf7ad8e5749ef0da73c7a3afdbf297e1f53a28da2e93f1f31ffa170a5433dc7dff36736a279f8d3e0b5f1 mynewt-newt-1.7.0.tar.gz"
diff --git a/testing/mypaint/APKBUILD b/testing/mypaint/APKBUILD
new file mode 100644
index 00000000000..40eb2bbc2cd
--- /dev/null
+++ b/testing/mypaint/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: mio <miyopan@e.email>
+# Maintainer: mio <miyopan@e.email>
+pkgname=mypaint
+pkgver=2.0.1
+pkgrel=0
+pkgdesc="Fast and dead-simple painting app for artists"
+url="https://mypaint.app/"
+license="GPL-2.0-or-later"
+# s390x: fails big endian tests
+arch="all !s390x"
+depends="
+ mypaint-brushes2
+ py3-cairo
+ py3-gobject3
+ py3-numpy
+ "
+# Required for tests: py3-cairo py3-gobject3
+makedepends="
+ glib-dev
+ gtk+3.0-dev
+ lcms2-dev
+ libmypaint-dev
+ libpng-dev
+ mypaint-brushes2-dev
+ python3-dev
+ py3-cairo
+ py3-numpy-dev
+ py3-gobject3-dev
+ py3-setuptools
+ py3-wheel
+ swig
+ "
+subpackages="$pkgname-pyc $pkgname-lang"
+source="mypaint-v$pkgver.tar.gz::https://github.com/mypaint/mypaint/archive/v$pkgver.tar.gz
+ fix-invalid-mode-ru.patch"
+
+build() {
+ python setup.py build_config
+ python setup.py build
+}
+
+check() {
+ python setup.py test
+}
+
+package() {
+ python setup.py install --root="$pkgdir" --skip-build
+}
+
+pyc() {
+ pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
+ install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"
+
+ cd "$pkgdir" || return 0
+ local IFS='
+'
+ amove $(find usr/lib -type d -name __pycache__)
+}
+
+sha512sums="
+80983bb70234c4f5fbcc0c13d0e6bb8d20198ec18e22c395d42814b9c7a6621bdd0b1c395ac8067b19bb7a47400514c99aa3ebdad2ddb4859f9446c43beb51ea mypaint-v2.0.1.tar.gz
+ad87fcf5b76db88ff495e260e12dd24d3309d5e8897a88ed836e4df4bc09f7188ef1e17a8190a94020a4d0c978017b99f7afcaf88d99dce12b9037d663e37157 fix-invalid-mode-ru.patch
+"
diff --git a/testing/mypaint/fix-invalid-mode-ru.patch b/testing/mypaint/fix-invalid-mode-ru.patch
new file mode 100644
index 00000000000..7c2df6effdc
--- /dev/null
+++ b/testing/mypaint/fix-invalid-mode-ru.patch
@@ -0,0 +1,98 @@
+From 032a155b72f2b021f66a994050d83f07342d04af Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
+ <congdanhqx@gmail.com>
+Date: Wed, 9 Nov 2022 11:24:33 +0700
+Subject: [PATCH] python: fix for Python 3.11
+
+- python 3 always open in universal mode, U is default mode in 3.0,
+ and removed in 3.11
+- mypaint doesn't use ld?n?gettext, so bind_textdomain_codeset isn't
+ needed, that function is deprecated in 3.8 and is no-ops in 3.10 and
+ removed in 3.11
+---
+ lib/gettext_setup.py | 25 ++-----------------------
+ setup.py | 2 +-
+ 2 files changed, 3 insertions(+), 24 deletions(-)
+
+diff --git a/lib/gettext_setup.py b/lib/gettext_setup.py
+index d4ce60a20..72cfaeddc 100644
+--- a/lib/gettext_setup.py
++++ b/lib/gettext_setup.py
+@@ -82,13 +82,11 @@ def init_gettext(localepath):
+ # yanked in over GI.
+ # https://bugzilla.gnome.org/show_bug.cgi?id=574520#c26
+ bindtextdomain = None
+- bind_textdomain_codeset = None
+ textdomain = None
+
+ # Try the POSIX/Linux way first.
+ try:
+ bindtextdomain = locale.bindtextdomain
+- bind_textdomain_codeset = locale.bind_textdomain_codeset
+ textdomain = locale.textdomain
+ except AttributeError:
+ logger.warning(
+@@ -117,12 +115,6 @@ def init_gettext(localepath):
+ ctypes.c_char_p,
+ )
+ bindtextdomain.restype = ctypes.c_char_p
+- bind_textdomain_codeset = libintl.bind_textdomain_codeset
+- bind_textdomain_codeset.argtypes = (
+- ctypes.c_char_p,
+- ctypes.c_char_p,
+- )
+- bind_textdomain_codeset.restype = ctypes.c_char_p
+ textdomain = libintl.textdomain
+ textdomain.argtypes = (
+ ctypes.c_char_p,
+@@ -177,35 +169,22 @@ def init_gettext(localepath):
+ # complete set from the same source.
+ # Required for translatable strings in GtkBuilder XML
+ # to be translated.
+- if bindtextdomain and bind_textdomain_codeset and textdomain:
++ if bindtextdomain and textdomain:
+ assert os.path.exists(path)
+ assert os.path.isdir(path)
+ if sys.platform == 'win32':
+ p = bindtextdomain(dom.encode('utf-8'), path.encode('utf-8'))
+- c = bind_textdomain_codeset(
+- dom.encode('utf-8'), codeset.encode('utf-8')
+- )
+ else:
+ p = bindtextdomain(dom, path)
+- c = bind_textdomain_codeset(dom, codeset)
+ logger.debug("C bindtextdomain(%r, %r): %r", dom, path, p)
+- logger.debug(
+- "C bind_textdomain_codeset(%r, %r): %r",
+- dom, codeset, c,
+- )
+ # Call the implementations in Python's standard gettext module
+ # too. This has proper cross-platform support, but it only
+ # initializes the native Python "gettext" module.
+ # Required for marked strings in Python source to be translated.
+ # See http://docs.python.org/release/2.7/library/locale.html
+ p = gettext.bindtextdomain(dom, path)
+- c = gettext.bind_textdomain_codeset(dom, codeset)
+ logger.debug("Python bindtextdomain(%r, %r): %r", dom, path, p)
+- logger.debug(
+- "Python bind_textdomain_codeset(%r, %r): %r",
+- dom, codeset, c,
+- )
+- if bindtextdomain and bind_textdomain_codeset and textdomain:
++ if bindtextdomain and textdomain:
+ if sys.platform == 'win32':
+ d = textdomain(defaultdom.encode('utf-8'))
+ else:
+diff --git a/setup.py b/setup.py
+index 204236765..046db5880 100644
+--- a/setup.py
++++ b/setup.py
+@@ -679,7 +679,7 @@ def _install_script(self, src, header):
+ self.announce("installing %s as %s" % (src, targ_basename), level=2)
+ if self.dry_run:
+ return []
+- with open(src, "rU") as in_fp:
++ with open(src, "r") as in_fp:
+ with open(targ, "w") as out_fp:
+ line = in_fp.readline().rstrip()
+ if line.startswith("#!"):
diff --git a/testing/n30f/APKBUILD b/testing/n30f/APKBUILD
index c9d30b8eb52..7fc5b33151b 100644
--- a/testing/n30f/APKBUILD
+++ b/testing/n30f/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Camille Scholtz <onodera@openmailbox.org>
pkgname=n30f
pkgver=2.0
-pkgrel=1
+pkgrel=3
pkgdesc="A quick hack to display a png in a borderless and transparent non-wm-managed window"
url="https://github.com/sdhand/n30f"
arch="all"
-license="BSD"
+license="BSD-3-Clause"
depends_dev="cairo-dev libxcb-dev"
makedepends="$depends_dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/sdhand/$pkgname/archive/$pkgver.tar.gz"
diff --git a/testing/nano-hare/APKBUILD b/testing/nano-hare/APKBUILD
new file mode 100644
index 00000000000..da4309aef25
--- /dev/null
+++ b/testing/nano-hare/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Sertonix <sertonix@posteo.net>
+# Maintainer: Sertonix <sertonix@posteo.net>
+pkgname=nano-hare
+pkgver=0_git20231021
+_commit=6907c3f20a9177c3aeeead5fcf4dae1926471181
+pkgrel=0
+pkgdesc="Nano syntax highlighting for Hare"
+url="https://sr.ht/~lmarz/nano-hare/"
+arch="noarch"
+license="Unlicense"
+install_if="nano-syntax hare"
+source="$pkgname-$_commit.tar.gz::https://git.sr.ht/~lmarz/nano-hare/archive/$_commit.tar.gz"
+builddir="$srcdir/nano-hare-$_commit"
+# !check: no checks available
+options="!check"
+
+package() {
+ install -Dm0644 -t "$pkgdir"/usr/share/nano/ -- "$builddir"/hare.nanorc
+}
+
+sha512sums="
+b77d83f952ac72114d0902895fe6994d45b97131415610e3d98344e9bdbf880c8c98e63ef3c0c713c6d84e31280545e8976bc88f1d597b79fc1570b94e8c5648 nano-hare-6907c3f20a9177c3aeeead5fcf4dae1926471181.tar.gz
+"
diff --git a/testing/nanomsg/APKBUILD b/testing/nanomsg/APKBUILD
deleted file mode 100644
index d23f13142a2..00000000000
--- a/testing/nanomsg/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=nanomsg
-pkgver=1.1.5
-pkgrel=1
-pkgdesc="Socket library that provides several common communication patterns"
-url="https://nanomsg.org"
-arch="all !armhf !armv7" # armhf: segfaults in 2 tests
-license="MIT"
-makedepends="asciidoctor xmlto cmake"
-options="libtool"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/nanomsg/nanomsg/archive/$pkgver.tar.gz"
-
-
-build() {
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib .
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="773b8e169a7accac21414c63972423a249164f5b843c6c65c1b03a2eb90d21da788a98debdeb396dab795e52d30605696bc2cf65e5e05687bf115438d5b22717 nanomsg-1.1.5.tar.gz"
diff --git a/testing/nauty/APKBUILD b/testing/nauty/APKBUILD
new file mode 100644
index 00000000000..1e65a786102
--- /dev/null
+++ b/testing/nauty/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=nauty
+pkgver=2.8.8
+_pkgver=${pkgver//./_}
+pkgrel=0
+pkgdesc="Programs for computing automorphism groups of graphs and digraphs"
+url="https://pallini.di.uniroma1.it/"
+arch="all"
+license="Apache-2.0"
+subpackages="$pkgname-dev"
+source="https://pallini.di.uniroma1.it/nauty$_pkgver.tar.gz"
+builddir="$srcdir/$pkgname$_pkgver"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-generic
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" pkgconfigexecdir=/usr/lib/pkgconfig install
+}
+
+sha512sums="
+c0495256b92b0742e7f0a3ad8b43f400e7b4bc4b58dff560e7d0a868f392b0462424566b8ebba5ec08499551eab091b6a8e2c0ddba4953ab7592906034812c18 nauty2_8_8.tar.gz
+"
diff --git a/testing/nawk/APKBUILD b/testing/nawk/APKBUILD
deleted file mode 100644
index a1f341af85a..00000000000
--- a/testing/nawk/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer:
-pkgname=nawk
-gitrev=33ead6d2393268365253732a3ac566e3d3362b00
-pkgver=20190311
-pkgrel=0
-pkgdesc="The one, true implementation of AWK"
-url="https://www.cs.princeton.edu/~bwk/btl.mirror/"
-arch=x86_64
-license=MIT
-depends=
-makedepends=byacc
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/onetrueawk/awk/archive/$gitrev.tar.gz"
-options="!check"
-builddir="$srcdir/awk-$gitrev"
-
-build() {
- cd "$builddir"
-
- make YACC='yacc -d -s'
-}
-
-package() {
- cd "$builddir"
- install -Dm755 a.out "$pkgdir"/usr/bin/$pkgname
- install -Dm644 awk.1 "$pkgdir"/usr/share/man/man1/$pkgname.1
-}
-
-sha512sums="ad7ff1ec4f32316c844ec837d2fef0ae12fa823fd8d8266f4c6c7b22ecca0dc34feae7517a2c7b4f2962e6cffe28fe77d40a0a544a1b6aef8bd90c4e9074c21f $pkgname-$pkgver.tar.gz"
diff --git a/testing/nb/APKBUILD b/testing/nb/APKBUILD
new file mode 100644
index 00000000000..d8b8b08ab15
--- /dev/null
+++ b/testing/nb/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Quillith <tag.quill@protonmail.com>
+# Maintainer: Quillith <tag.quill@protonmail.com>
+pkgname=nb
+pkgver=7.12.1
+pkgrel=0
+pkgdesc="Command line note-taking, bookmarking, archiving, and knowledge base application"
+url="https://github.com/xwmx/nb"
+arch="noarch"
+license="AGPL-3.0-or-later"
+depends="bash git"
+subpackages="
+ $pkgname-doc
+ $pkgname-full
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/xwmx/nb/archive/$pkgver.tar.gz"
+options="!check" # no tests
+
+package() {
+ install -Dm755 nb "$pkgdir/usr/bin/nb"
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/nb/LICENSE"
+ install -Dm644 README.md "$pkgdir/usr/share/doc/nb/README.md"
+ # Completions
+ install -Dm644 etc/nb-completion.bash "$pkgdir/usr/share/bash-completion/completions/nb"
+ install -Dm644 etc/nb-completion.fish "$pkgdir/usr/share/fish/vendor_completions.d/nb.fish"
+ install -Dm644 etc/nb-completion.zsh "$pkgdir/usr/share/zsh/site-functions/_nb"
+ # Plugins
+ install -Dm644 -t "$pkgdir/usr/share/nb/plugins/" plugins/*
+ # Extras (prefixed with "nb-")
+ for extra in bookmark notes; do
+ install -Dm0755 "bin/$extra" "$pkgdir/usr/bin/nb-$extra"
+ done
+}
+
+full() {
+ pkgdesc="More utilities that integrate with nb"
+ depends="$pkgname=$pkgver-r$pkgrel bat nmap-ncat pandoc ripgrep tig w3m"
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="
+ed3d41a809e39a19711c6c97c38216f17f144b8b474eb94aec4134f9756da03440073f3f6557acf8f7959d3d9fba6392d1d5f59e8b94d5269b7336b11353457e nb-7.12.1.tar.gz
+"
diff --git a/testing/nbsdgames/APKBUILD b/testing/nbsdgames/APKBUILD
new file mode 100644
index 00000000000..d22f9a5072c
--- /dev/null
+++ b/testing/nbsdgames/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=nbsdgames
+pkgver=5
+pkgrel=0
+pkgdesc="A package of 18 text-based modern games"
+url="https://github.com/abakh/nbsdgames"
+arch="all"
+license="custom"
+options="!check"
+
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/abakh/nbsdgames/archive/refs/tags/v$pkgver.tar.gz
+ fix-makefile-path.patch
+ "
+
+build() {
+ make all
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/man/man6
+ make DESTDIR="$pkgdir" manpages
+
+ mkdir -p "$pkgdir"/usr/bin
+ mkdir -p "$pkgdir"/var/games
+ make DESTDIR="$pkgdir" install
+
+ install -D LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+sha512sums="
+04fcc7628b7310bcbebf8ae7e1462605b2a4aa3bc7c50758e8fc54836d18c3d320a1ba5c766d388912d8f9a7a49bf78ba654f1430fdda730daa80ff189f49ffc nbsdgames-5.tar.gz
+2a76cbdba6b150ef445637b3daf7b51a325f5bd88d5e8feb773d725c22c272c4100cae5da84843aafbb71c440d5b2cab1f006f82abd41c31f37a1ad9cd287015 fix-makefile-path.patch
+"
diff --git a/testing/nbsdgames/fix-makefile-path.patch b/testing/nbsdgames/fix-makefile-path.patch
new file mode 100644
index 00000000000..edb557bdb75
--- /dev/null
+++ b/testing/nbsdgames/fix-makefile-path.patch
@@ -0,0 +1,124 @@
+--- a/Makefile
++++ b/Makefile
+@@ -2,83 +2,65 @@
+
+ #-O3 --std=c99 -lcurses -DNO_MOUSE for NetBSD curses
+ #adding --std=c99 makes warnings in GNU, and the blame is upon glibc feature test macros. my code is correct.
++GAMES_DIR?=$(PREFIX)/usr/bin
++SCORES_DIR?=$(PREFIX)/var/games
++MAN_DIR?=$(PREFIX)/usr/share/man/man6
++CFLAGS+= -Wno-unused-result -DSCORES_DIR=\"$(SCORES_DIR)\"
++LIBS_PKG_CONFIG!=pkg-config --libs --cflags ncurses
++LIBS=$(LIBS_PKG_CONFIG) -lm
+
+-GAMES_DIR?=/usr/games
+-SCORES_DIR?=/var/games
+-MAN_DIR?=/usr/share/man/man6
+-CFLAGS+= -Wno-unused-result -D SCORES_DIR=\"$(SCORES_DIR)\"
+-LDFLAGS+= -lncurses -lm
+
+-
+ ALL= nbsdgames jewels sudoku mines reversi checkers battleship rabbithole sos pipes fifteen memoblocks fisher muncher miketron redsquare darrt snakeduel tugow
+ SCORE_FILES= pipes_scores jewels_scores miketron_scores muncher_scores fisher_scores darrt_scores tugow_scores
+
+-all: $(ALL)
++all: $(ALL)
+
+ scorefiles:
+- for sf in $(SCORE_FILES); do touch $(SCORES_DIR)/$$sf ; chmod 664 $(SCORES_DIR)/$$sf; chown :games $(SCORES_DIR)/$$sf ; done;
+- for game in $(ALL); do chown :games $(GAMES_DIR)/$$game; chmod g $(GAMES_DIR)/$$game ; done;
++ for sf in $(SCORE_FILES); do touch $(DESTDIR)$(SCORES_DIR)/$$sf ; chmod 664 $(DESTDIR)$(SCORES_DIR)/$$sf; chown :games $(DESTDIR)$(SCORES_DIR)/$$sf ; done;
++ for game in $(ALL); do chown :games $(DESTDIR)$(GAMES_DIR)/$$game; chmod g $(DESTDIR)$(GAMES_DIR)/$$game ; done;
+
+ manpages:
+- cp man/* $(MAN_DIR)
+-jewels: jewels.c config.h common.h
+- $(CC) jewels.c $(LDFLAGS) $(CFLAGS) -o ./jewels
+-sudoku: sudoku.c config.h
+- $(CC) sudoku.c $(LDFLAGS) $(CFLAGS) -o ./sudoku
+-mines: mines.c config.h
+- $(CC) mines.c $(LDFLAGS) $(CFLAGS) -o ./mines
+-reversi: reversi.c config.h
+- $(CC) reversi.c $(LDFLAGS) $(CFLAGS) -o ./reversi
+-checkers: checkers.c config.h
+- $(CC) checkers.c $(LDFLAGS) $(CFLAGS) -o ./checkers
+-battleship: battleship.c config.h
+- $(CC) battleship.c $(LDFLAGS) $(CFLAGS) -o ./battleship
+-rabbithole: rabbithole.c config.h
+- $(CC) rabbithole.c $(LDFLAGS) $(CFLAGS) -o ./rabbithole
+-sos: sos.c config.h
+- $(CC) sos.c $(LDFLAGS) $(CFLAGS) -o ./sos
+-pipes: pipes.c config.h common.h
+- $(CC) pipes.c $(LDFLAGS) $(CFLAGS) -o ./pipes
+-fifteen: fifteen.c config.h
+- $(CC) fifteen.c $(LDFLAGS) $(CFLAGS) -o ./fifteen
+-memoblocks: memoblocks.c
+- $(CC) memoblocks.c $(LDFLAGS) $(CFLAGS) -o ./memoblocks
+-fisher: fisher.c config.h common.h
+- $(CC) fisher.c $(LDFLAGS) $(CFLAGS) -o ./fisher
+-muncher: muncher.c config.h common.h
+- $(CC) muncher.c $(LDFLAGS) $(CFLAGS) -o ./muncher
+-miketron: miketron.c config.h common.h
+- $(CC) miketron.c $(LDFLAGS) $(CFLAGS) -o ./miketron
+-redsquare: redsquare.c config.h
+- $(CC) redsquare.c $(LDFLAGS) $(CFLAGS) -o ./redsquare
+-darrt: darrt.c config.h common.h
+- $(CC) darrt.c $(LDFLAGS) $(CFLAGS) -o ./darrt
+-nbsdgames: nbsdgames.c
+- $(CC) nbsdgames.c $(LDFLAGS) $(CFLAGS) -o ./nbsdgames
+-snakeduel: snakeduel.c config.h
+- $(CC) snakeduel.c $(LDFLAGS) $(CFLAGS) -o ./snakeduel
+-tugow: tugow.c common.h
+- $(CC) tugow.c $(LDFLAGS) $(CFLAGS) -o ./tugow
++ cp man/* $(DESTDIR)$(MAN_DIR)
++
++# Games which only need config.h
++sudoku mines reversi checkers battleship rabbithole sos fifteen redsquare snakeduel: config.h
++ $(CC) $(CFLAGS) $@.c $< $(LDFLAGS) $(LIBS) -o $@
++
++# Games which need config.h and common.h
++jewels pipes fisher muncher miketron darrt: config.h common.h
++ $(CC) $(CFLAGS) $@.c $< $(LDFLAGS) $(LIBS) -o $@
++
++# Games which only need common.h
++tugow: common.h
++ $(CC) $(CFLAGS) $@.c $< $(LDFLAGS) $(LIBS) -o $@
++
++# Games which only need themselves
++memoblocks nbsdgames:
++ $(CC) $(CFLAGS) $@.c $< $(LDFLAGS) $(LIBS) -o $@
++
+ menu:
+- cp nbsdgames.desktop /usr/share/applications
+- cp nbsdgames.svg /usr/share/pixmaps
++ cp nbsdgames.desktop $(DESTIDR)$(PREFIX)/usr/share/applications
++ cp nbsdgames.svg $(DESTDIR)$(PREFIX)/usr/share/pixmaps
+ clean:
+ for game in $(ALL); do rm $$game; done;
+ uninstall:
+ for game in $(ALL); do rm $(GAMES_DIR)/$$game; rm $(MAN_DIR)/$$game.6.gz ;done;
+ install: $(ALL)
+- cp $(ALL) $(GAMES_DIR)
++ cp $(ALL) $(DESTDIR)/$(GAMES_DIR)
+ test:
+ for game in $(ALL); do ./$$game ;done;
+
+ #######for namespacing #######
+ nb:
+- CFLAGS="$$CFLAGS -D NB=\\\"nb\\\"" make
++ CFLAGS="$$CFLAGS -D NB=\\\"nb\\\"" $(MAKE)
+ for game in $(ALL); do cp $$game nb$$game ;done;
+ for manpage in $(ls man); do cp man/$$manpage man/nb$$manpage ;done;
+ nbinstall: nb
+- cp nb* $(GAMES_DIR)
++ for game in $(ALL); do cp nb$$game $(DESTDIR)/$(GAMES_DIR) ;done;
++ cp nbsdgames $(DESTDIR)/$(GAMES_DIR)
++ rm $(DESTDIR)/$(GAMES_DIR)/nbnbsdgames
+ nbmanpages: nb
+- cp man/nb* $(MAN_DIR)
+-nbclean:
+- for game in $(ALL); do rm nb$$game; done;
++ cp man/nb* $(DESTDIR)/$(MAN_DIR)
++nbclean: clean
++ for game in $(ALL); do rm nb$$game ;done;
++
diff --git a/testing/nbtscan/APKBUILD b/testing/nbtscan/APKBUILD
deleted file mode 100644
index aed24f0d8d2..00000000000
--- a/testing/nbtscan/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: François Chavant <alpine@mail.chavant.info>
-pkgname=nbtscan
-pkgver=1.5.1
-pkgrel=2
-pkgdesc="NETBIOS nameserver scanner"
-url="http://www.unixwiz.net/tools/nbtscan.html"
-arch="all"
-license="GPL-2.0-or-later"
-source="https://dev.alpinelinux.org/archive/nbtscan/nbtscan_$pkgver.tar.gz"
-subpackages="$pkgname-dbg"
-options="!check"
-
-builddir="$srcdir/$pkgname-${pkgver}a"
-
-prepare() {
- update_config_guess
- default_prepare
-}
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-package() {
- mkdir -p "$pkgdir/usr/bin/"
- install -Dm755 "$builddir/nbtscan" "$pkgdir/usr/bin/"
-}
-sha512sums="525ad8f827109b759a0bd9fa7b2b20271a7474d2a3bffe8c2dc2ed12d4ed3148b18b3db345b4e786e3a76024cd1c6c45518e188dd026a462d21109fee3c4a3b5 nbtscan_1.5.1.tar.gz"
diff --git a/testing/ncdu2/APKBUILD b/testing/ncdu2/APKBUILD
new file mode 100644
index 00000000000..6cf208d8159
--- /dev/null
+++ b/testing/ncdu2/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=ncdu2
+pkgver=2.3_git20240412
+_commit=5944b738d04f768b36d05e6011d1284b49a08749
+pkgrel=0
+pkgdesc="Disk usage analyzer with an ncurses interface"
+url="https://dev.yorhel.nl/ncdu"
+license="MIT"
+arch="x86_64 aarch64" # Limited by zig aport
+makedepends="chrpath zig ncurses-dev"
+subpackages="$pkgname-doc"
+#source="https://dev.yorhel.nl/download/ncdu-$pkgver.tar.gz"
+source="$pkgname-$_commit.tar.gz::https://code.blicky.net/yorhel/ncdu/archive/$_commit.tar.gz"
+builddir="$srcdir/ncdu"
+replaces=ncdu
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+ aarch64|x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ zig build -Doptimize=ReleaseSafe -Dpie=true ${cputarget:+-Dcpu="$cputarget"}
+}
+
+check() {
+ zig build test
+}
+
+package() {
+ install -Dm755 zig-out/bin/ncdu "$pkgdir"/usr/bin/ncdu
+ chrpath -d "$pkgdir"/usr/bin/ncdu
+
+ make install-doc PREFIX="$pkgdir/usr"
+
+ install -Dm644 LICENSES/MIT.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+6ce41386061d6cb88df3bd29ef103d118393e72c44d08f75f705f837dcddb235f3564c41c30b1209597b8982b6a233a47f708c0291db7150a1b38a329fcb0f53 ncdu2-5944b738d04f768b36d05e6011d1284b49a08749.tar.gz
+"
diff --git a/testing/ncpamixer/APKBUILD b/testing/ncpamixer/APKBUILD
deleted file mode 100644
index c6a77a2c357..00000000000
--- a/testing/ncpamixer/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Luca Weiss <luca@z3ntu.xyz>
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=ncpamixer
-pkgver=1.3.3
-pkgrel=1
-pkgdesc="ncurses PulseAudio Mixer"
-url="https://github.com/fulhax/ncpamixer"
-arch="all"
-license="MIT"
-makedepends="cmake pulseaudio-dev ncurses-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/fulhax/ncpamixer/archive/$pkgver.tar.gz"
-options="!check" # no tests
-
-build() {
- cmake "$builddir"/src \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="f86fe4a8c3e505399e4eae831ded56dffbf0dc00f4392873a90e6dac10f8964becba65dad2ddcee128de636635a488fb9769a10909c2f7e1202d69d016358da6 ncpamixer-1.3.3.tar.gz"
diff --git a/testing/ndpi/APKBUILD b/testing/ndpi/APKBUILD
index f5b9e0fe854..82d60f82061 100644
--- a/testing/ndpi/APKBUILD
+++ b/testing/ndpi/APKBUILD
@@ -1,27 +1,26 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=ndpi
_pkgreal=nDPI
-pkgver=2.2
-pkgrel=1
+pkgver=4.8
+pkgrel=0
pkgdesc="Open Source Deep Packet Inspection Software Toolkit"
url="https://github.com/ntop/nDPI"
# armhf test fail without apparent cause
-# s390x/mips test hangs (big-endian)
-arch="all !armhf !armv7 !s390x !mips !mips64"
-license="GPL-3.0"
-makedepends="autoconf automake libpcap-dev libtool"
+# s390x test hangs (big-endian)
+arch="all !armhf !armv7 !s390x"
+license="GPL-3.0-only"
+makedepends="autoconf automake libpcap-dev libtool json-c-dev"
subpackages="$pkgname-dev"
+options="!check" # currently broken
source="$pkgname-$pkgver.tar.gz::https://github.com/ntop/nDPI/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgreal-$pkgver
prepare() {
- cd "$builddir"
default_prepare
./autogen.sh
}
build() {
- cd "$builddir"
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
@@ -30,16 +29,16 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
check() {
- cd "$builddir"
# fails on those two
rm tests/pcap/nintendo.pcap
rm tests/pcap/skype-conference-call.pcap
make check
}
-sha512sums="ee1e0a1cc87a3971408877bd5d3154f6bd5d4ddcd2437c8e03e5d8a5093da2b1cbfefad1e28e77145af4286eecbd341ef90f94aa5c7f36a98e3625e9948e96d6 ndpi-2.2.tar.gz"
+sha512sums="
+f76eb99a83262a6d148509c7ce457b9af35dce3657c8191405ba15999b25c323ee0bee2907b0a7e6ba6f12a63182fde839e0098a4e8e0f63999e600526f3036b ndpi-4.8.tar.gz
+"
diff --git a/testing/neard/APKBUILD b/testing/neard/APKBUILD
index 63fd56e57e3..28843c45920 100644
--- a/testing/neard/APKBUILD
+++ b/testing/neard/APKBUILD
@@ -1,20 +1,25 @@
# Contributor: Minecrell <minecrell@minecrell.net>
# Maintainer: Minecrell <minecrell@minecrell.net>
pkgname=neard
-pkgver=0.16
-pkgrel=1
+pkgver=0.19
+pkgrel=0
pkgdesc="Near Field Communication manager"
url="https://01.org/linux-nfc/"
arch="all"
license="GPL-2.0-only"
depends="dbus"
-makedepends="glib-dev dbus-dev libnl-dev"
+makedepends="glib-dev dbus-dev libnl3-dev autoconf autoconf-archive automake libtool"
subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
source="
- https://cdn.kernel.org/pub/linux/network/nfc/$pkgname-$pkgver.tar.xz
+ https://git.kernel.org/pub/scm/network/nfc/neard.git/snapshot/neard-$pkgver.tar.gz
neard.initd
"
+prepare() {
+ default_prepare
+ ./bootstrap
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -39,7 +44,12 @@ package() {
mv "$pkgdir"/usr/include/version.h "$pkgdir"/usr/include/near/version.h
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ mkdir -p "$pkgdir"/usr/share/dbus-1/system.d/
+ mv "$pkgdir"/etc/dbus-1/system.d/* "$pkgdir"/usr/share/dbus-1/system.d/
}
-sha512sums="d0fd5dcfd19db64e65e4149c76979bc7a438240aa6840b35059fde41a8a84a2424274577de964a925e76cd013d21796f69f5361012b6ac79c546d0abdcfed2a6 neard-0.16.tar.xz
-6e28ffa74687cc409856d8966d9e794e523254781133e61adb81007ed00b7f057122ca8dfa967684312a613e9a3898865844320e4302990046d871a0a9b66eb5 neard.initd"
+sha512sums="
+577061c214365853667033a2ae9f78a367adcbf07f2d7a70087c484ac31b410d34c003f396da622604f8844f30d44cba01f0d8a7cadebfd4c4c6457996541b48 neard-0.19.tar.gz
+6e28ffa74687cc409856d8966d9e794e523254781133e61adb81007ed00b7f057122ca8dfa967684312a613e9a3898865844320e4302990046d871a0a9b66eb5 neard.initd
+"
diff --git a/testing/neatvi/APKBUILD b/testing/neatvi/APKBUILD
deleted file mode 100644
index 1c56ef2b9bd..00000000000
--- a/testing/neatvi/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Alex Raschi <raschi.alex@gmail.com>
-pkgname=neatvi
-pkgver=07
-pkgrel=0
-pkgdesc="vi/ex editor with support for bidirectional UTF-8 text, syntax highlight and infinite undo/redo"
-url="https://github.com/aligrudi/neatvi"
-arch="all"
-license="ISC" # vi.c
-subpackages="$pkgname-doc"
-options="!check" # no test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/aligrudi/neatvi/archive/$pkgver.tar.gz
- conf.patch"
-
-build() {
- make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
-}
-
-package() {
- local pkgbin="$pkgdir"/usr/bin
- mkdir -p "$pkgbin"
- mv vi "$pkgbin"/neatvi
-}
-
-doc() {
- local pkgdoc="$subpkgdir"/usr/share/doc/"$pkgname"
- cd "$builddir"
- mkdir -p "$pkgdoc"
- mv README "$pkgdoc"
-
- default_doc
-}
-
-sha512sums="456e502d08fd3f1c866ebb8e3fe6225c944c3c925cc38e59b5325c20cb815555087ed54e562d1b70b7f4a690034873d2c97e53264b187b986b9518bee10e1b57 neatvi-07.tar.gz
-d5538cf2bfb98b93d3661f686540580f754cd5fca641893b58cf80312ec703aa332601f68258335a71bdeb72356148a75db22ae139e05c04c060cfcb31f2fafd conf.patch"
diff --git a/testing/neatvi/conf.patch b/testing/neatvi/conf.patch
deleted file mode 100644
index 1fdc92ddee1..00000000000
--- a/testing/neatvi/conf.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/conf.h.orig 2017-10-01 09:07:44.000000000 +0200
-+++ b/conf.h 2018-11-20 18:54:51.484850964 +0100
-@@ -12,6 +12,7 @@ static struct filetype {
- {"mk", "Makefile$|makefile$|\\.mk$"}, /* makefile */
- {"sh", "\\.sh$"}, /* shell script */
- {"nm", "\\.nm$"}, /* neatmail */
-+ {"sh", ".$"}, /* everything else */
- };
-
- /* syntax highlighting patterns */
diff --git a/testing/neatvnc/APKBUILD b/testing/neatvnc/APKBUILD
deleted file mode 100644
index 0f5a7192da3..00000000000
--- a/testing/neatvnc/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=neatvnc
-pkgver=0.1.0
-pkgrel=0
-pkgdesc="A liberally licensed VNC server library with a clean interface"
-url="https://github.com/any1/neatvnc"
-arch="all"
-license="ISC"
-makedepends="meson pixman-dev libuv-dev libdrm-dev"
-options="!check" # no test suite
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/any1/neatvnc/archive/v$pkgver.tar.gz"
-
-build() {
- meson \
- --buildtype=plain \
- --prefix=/usr \
- --libdir=/usr/lib \
- build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="e53f630d878dc9c66a123d07261ccdf3a46ece8c77096b1e3bca9633406bc7c22c11ab7b1e7bae19e5b75e4d131dde78c5c25deb012286ee115269f8f1694911 neatvnc-0.1.0.tar.gz"
diff --git a/testing/nebula/APKBUILD b/testing/nebula/APKBUILD
deleted file mode 100644
index 6aa1146eb89..00000000000
--- a/testing/nebula/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=nebula
-pkgver=1.2.0
-pkgrel=2
-pkgdesc="A scalable overlay networking tool with a focus on performance, simplicity & security"
-url="https://github.com/slackhq/nebula"
-arch="all !armv7 !armhf" # https://github.com/slackhq/nebula/issues/212
-license="MIT"
-pkgusers="$pkgname"
-pkggroups="$pkgname"
-install="$pkgname.pre-install"
-makedepends="go libcap"
-subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/slackhq/nebula/archive/v$pkgver.tar.gz
- $pkgname.initd
- "
-
-build() {
- make BUILD_NUMBER="$pkgver" bin
-}
-
-check() {
- make test
-}
-
-package() {
- install -Dm750 -o nebula -g nebula nebula -t "$pkgdir"/usr/sbin/
- setcap cap_net_admin+ep "$pkgdir"/usr/sbin/nebula
-
- install -Dm755 nebula-cert -t "$pkgdir"/usr/bin/
-
- install -Dm755 examples/config.yml -t "$pkgdir"/etc/$pkgname
-
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
-}
-
-sha512sums="1dcb8ec532e1345012e2c2367da751eef0d364d222019b4139013086351381fdc23743ac0df34caeb805082d0d2e971c78126465c765f07605f224cbee2a408d nebula-1.2.0.tar.gz
-7c2887da481776d1ed9945f645e81d8843c8abba935c51d3ccf0090d6a2ea0514cf2690fb3db44faca81822bdf5d5306417b227e49cfe035ff0f679425702f12 nebula.initd"
diff --git a/testing/nebula/nebula.initd b/testing/nebula/nebula.initd
deleted file mode 100644
index bb1ece4851a..00000000000
--- a/testing/nebula/nebula.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-name=$RC_SVCNAME
-description="Scalable overlay networking tool"
-cfgfile="/etc/$RC_SVCNAME/config.yml"
-command="/usr/sbin/$RC_SVCNAME"
-command_args="-config $cfgfile"
-command_user="$RC_SVCNAME"
-supervisor="supervise-daemon"
-
-depend() {
- need net
- use logger dns
- after firewall
- provide nebula
-}
-
-start_pre() {
- $command -config $cfgfile -test
-}
diff --git a/testing/nebula/nebula.pre-install b/testing/nebula/nebula.pre-install
deleted file mode 100644
index d67589150da..00000000000
--- a/testing/nebula/nebula.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S nebula 2>/dev/null
-adduser -S -D -H -s /bin/false -G nebula -g nebula nebula 2>/dev/null
-
-exit 0
diff --git a/testing/nemo-keepalive/APKBUILD b/testing/nemo-keepalive/APKBUILD
deleted file mode 100644
index 8b8443d4753..00000000000
--- a/testing/nemo-keepalive/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nemo-keepalive
-pkgver=1.7.3
-pkgrel=0
-pkgdesc="Nemo's Keepalive"
-url="https://git.sailfishos.org/mer-core/nemo-keepalive"
-arch="all"
-license="LGPL-2.1-or-later"
-depends_dev="qt5-qtdeclarative-dev libiphb-dev mce-dev"
-makedepends="$depends_dev qt5-qtbase-dev qtchooser"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://git.sailfishos.org/mer-core/nemo-keepalive/-/archive/$pkgver/nemo-keepalive-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="158270911f5a2f4f7e097f0c5f457061d699f151cd4a27b0ad096fdbe5c41dc0be550050c1d0508d40badcbcd0de43e3e1044dfbce7e172c19317a5f6cce76f6 nemo-keepalive-1.7.3.tar.gz"
diff --git a/testing/nemo-qml-plugin-alarms/APKBUILD b/testing/nemo-qml-plugin-alarms/APKBUILD
new file mode 100644
index 00000000000..d285e529179
--- /dev/null
+++ b/testing/nemo-qml-plugin-alarms/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=nemo-qml-plugin-alarms
+pkgver=0.3.10
+pkgrel=1
+pkgdesc="Nemo QML alarms plugin"
+url="https://github.com/sailfishos/nemo-qml-plugin-alarms"
+arch="all"
+license="BSD-3-Clause"
+makedepends="
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ timed-dev
+ "
+source="https://github.com/sailfishos/nemo-qml-plugin-alarms/archive/$pkgver/nemo-qml-plugin-alarms-$pkgver.tar.gz"
+options="!check"
+
+build() {
+ qmake-qt5
+ make
+}
+
+package() {
+ INSTALL_ROOT="$pkgdir" make install
+
+ # Remove installed tests
+ rm -r "$pkgdir"/opt
+}
+
+sha512sums="
+0c062e525ab3ce8171ec9c877fba85b9c56222953f0890267817382409ada55f57852efd70f07011e3c90f4df9ce217fe6bb50b84fc8b2c2a2858e8fde2abeb2 nemo-qml-plugin-alarms-0.3.10.tar.gz
+"
diff --git a/testing/nemo-qml-plugin-dbus/APKBUILD b/testing/nemo-qml-plugin-dbus/APKBUILD
deleted file mode 100644
index 80d5979e963..00000000000
--- a/testing/nemo-qml-plugin-dbus/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nemo-qml-plugin-dbus
-pkgver=2.1.21
-pkgrel=1
-pkgdesc="Nemo QML dbus plugin"
-url="https://git.sailfishos.org/mer-core/nemo-qml-plugin-dbus"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative-dev
-license="BSD-3-Clause AND LGPL-2.1-only"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/nemo-qml-plugin-dbus/-/archive/$pkgver/nemo-qml-plugin-dbus-$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove installed tests
- rm -r "$pkgdir"/opt
-}
-
-sha512sums="1e6cd57d2008e708d0e63b20f8a357e0e21643bd9c6e3e7fe8acd464b225e736daa3ebb45e99b1593347059eb9bbcc5e38d4da71d12f367c968c905f227d0d68 nemo-qml-plugin-dbus-2.1.21.tar.gz"
diff --git a/testing/nemo-qml-plugin-devicelock/APKBUILD b/testing/nemo-qml-plugin-devicelock/APKBUILD
deleted file mode 100644
index 6c16a03aaa9..00000000000
--- a/testing/nemo-qml-plugin-devicelock/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nemo-qml-plugin-devicelock
-pkgver=0.2.26
-pkgrel=0
-pkgdesc="Nemo QML devicelock plugin"
-url="https://git.sailfishos.org/mer-core/nemo-qml-plugin-devicelock"
-arch="all"
-license="BSD-3-Clause"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev nemo-qml-plugin-dbus-dev nemo-keepalive-dev elogind-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://git.sailfishos.org/mer-core/nemo-qml-plugin-devicelock/-/archive/$pkgver/nemo-qml-plugin-devicelock-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="c4363eec4f50056cb2f5d5a94aa6eb0a4b1b23c8f6132b2f812f21abb17bf3d8f6cd0d64ffe6e24548cb2a596516c4b1bed646aa8afdb4efd6a02efaedede3c4 nemo-qml-plugin-devicelock-0.2.26.tar.gz"
diff --git a/testing/nemo-qml-plugin-models/APKBUILD b/testing/nemo-qml-plugin-models/APKBUILD
deleted file mode 100644
index e968dfe9fb0..00000000000
--- a/testing/nemo-qml-plugin-models/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nemo-qml-plugin-models
-pkgver=0.1.3
-pkgrel=0
-pkgdesc="Nemo QML models plugin"
-url="https://git.sailfishos.org/mer-core/nemo-qml-plugin-models"
-arch="all"
-license="BSD-3-Clause"
-depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev libmlocale-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/nemo-qml-plugin-models/-/archive/$pkgver/nemo-qml-plugin-models-$pkgver.tar.gz"
-options="!check" # No suitable tests
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove tests
- rm -rf "$pkgdir"/opt
-}
-
-sha512sums="bdc41c7e4d3043bab06137cd29a2fe363d13eed1a617cc04f2be82eebfab62e34b01cd0655cfb7a616ea08705ed3ede979a60d3ebc13fc14c74352de3142400a nemo-qml-plugin-models-0.1.3.tar.gz"
diff --git a/testing/nemo-qml-plugin-systemsettings/0001-Remove-developer-mode.patch b/testing/nemo-qml-plugin-systemsettings/0001-Remove-developer-mode.patch
deleted file mode 100644
index 15f6236048a..00000000000
--- a/testing/nemo-qml-plugin-systemsettings/0001-Remove-developer-mode.patch
+++ /dev/null
@@ -1,736 +0,0 @@
-Developer mode is really SailfishOS specific and doesn't make sense to have on other platforms.
-Besides, it depends on PackageKit which is not available on Alpine.
-
-diff --git a/src/developermodesettings.cpp b/src/developermodesettings.cpp
-deleted file mode 100644
-index 5767eb7..0000000
---- a/src/developermodesettings.cpp
-+++ /dev/null
-@@ -1,524 +0,0 @@
--/*
-- * Copyright (c) 2013 – 2019 Jolla Ltd.
-- * Copyright (c) 2019 Open Mobile Platform LLC.
-- * Contact: Thomas Perl <thomas.perl@jollamobile.com>
-- * Contact: Raine Makelainen <raine.makelainen@jolla.com>
-- *
-- * You may use this file under the terms of the BSD license as follows:
-- *
-- * "Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions are
-- * met:
-- * * Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * * Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in
-- * the documentation and/or other materials provided with the
-- * distribution.
-- * * Neither the name of Nemo Mobile 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 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 "developermodesettings.h"
--#include "logging_p.h"
--
--#include <QFile>
--#include <QDir>
--#include <QDBusReply>
--#include <QNetworkInterface>
--#include <transaction.h>
--
--/* Symbolic constants */
--#define PROGRESS_INDETERMINATE (-1)
--
--/* Interfaces for IP addresses */
--#define USB_NETWORK_FALLBACK_INTERFACE "usb0"
--#define USB_NETWORK_FALLBACK_IP "192.168.2.15"
--#define WLAN_NETWORK_INTERFACE "wlan0"
--#define WLAN_NETWORK_FALLBACK_INTERFACE "tether"
--
--/* A file that is provided by the developer mode package */
--#define DEVELOPER_MODE_PROVIDED_FILE "/usr/bin/devel-su"
--#define DEVELOPER_MODE_PACKAGE "jolla-developer-mode"
--#define DEVELOPER_MODE_PACKAGE_PRELOAD_DIR "/var/lib/jolla-developer-mode/preloaded/"
--
--/* D-Bus service */
--#define USB_MODED_SERVICE "com.meego.usb_moded"
--#define USB_MODED_PATH "/com/meego/usb_moded"
--#define USB_MODED_INTERFACE "com.meego.usb_moded"
--
--/* D-Bus method names */
--#define USB_MODED_GET_NET_CONFIG "get_net_config"
--#define USB_MODED_SET_NET_CONFIG "net_config"
--
--/* USB Mode Daemon network configuration properties */
--#define USB_MODED_CONFIG_IP "ip"
--#define USB_MODED_CONFIG_INTERFACE "interface"
--
--static QMap<QString,QString> enumerate_network_interfaces()
--{
-- QMap<QString,QString> result;
--
-- for (const QNetworkInterface &intf : QNetworkInterface::allInterfaces()) {
-- for (const QNetworkAddressEntry &entry : intf.addressEntries()) {
-- if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) {
-- result[intf.name()] = entry.ip().toString();
-- }
-- }
-- }
--
-- return result;
--}
--
--static QString get_cached_package(const QString &version)
--{
-- QDir dir(DEVELOPER_MODE_PACKAGE_PRELOAD_DIR);
-- QStringList filters;
-- filters << QStringLiteral("%1-%2.*.rpm").arg(DEVELOPER_MODE_PACKAGE).arg(version);
-- auto preloaded = dir.entryList(filters, QDir::Files, QDir::Name);
-- if (preloaded.empty())
-- return QString();
-- return dir.absoluteFilePath(preloaded.last());
--}
--
--DeveloperModeSettings::DeveloperModeSettings(QObject *parent)
-- : QObject(parent)
-- , m_usbModeDaemon(USB_MODED_SERVICE, USB_MODED_PATH, USB_MODED_INTERFACE, QDBusConnection::systemBus())
-- , m_wlanIpAddress("-")
-- , m_usbInterface(USB_NETWORK_FALLBACK_INTERFACE)
-- , m_usbIpAddress(USB_NETWORK_FALLBACK_IP)
-- , m_username(qgetenv("USER"))
-- , m_developerModeEnabled(QFile::exists(DEVELOPER_MODE_PROVIDED_FILE))
-- , m_workStatus(Idle)
-- , m_workProgress(PROGRESS_INDETERMINATE)
-- , m_transactionRole(PackageKit::Transaction::RoleUnknown)
-- , m_transactionStatus(PackageKit::Transaction::StatusUnknown)
-- , m_refreshedForInstall(false)
-- , m_localInstallFailed(false)
-- , m_localDeveloperModePackagePath(get_cached_package(QStringLiteral("*"))) // Initialized to possibly incompatible package
--{
-- // Resolve and update local package path
-- if (!m_localDeveloperModePackagePath.isEmpty()) {
-- PackageKit::Transaction *resolvePackage = PackageKit::Daemon::resolve(DEVELOPER_MODE_PACKAGE"-preload", PackageKit::Transaction::FilterInstalled);
-- connect(resolvePackage, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
-- connect(resolvePackage, &PackageKit::Transaction::package,
-- this, [this](PackageKit::Transaction::Info info, const QString &packageID, const QString &summary) {
-- Q_UNUSED(summary)
-- Q_ASSERT(info == PackageKit::Transaction::InfoInstalled);
-- const QString version = PackageKit::Transaction::packageVersion(packageID);
-- m_localDeveloperModePackagePath = get_cached_package(version);
-- if (m_localDeveloperModePackagePath.isEmpty()) {
-- emit repositoryAccessRequiredChanged();
-- }
-- qCDebug(lcDeveloperModeLog) << "Preload package version: " << version << ", local package path: " << m_localDeveloperModePackagePath;
-- });
-- }
--
-- refresh();
--
-- // TODO: Watch WLAN / USB IP addresses for changes
-- // TODO: Watch package manager for changes to developer mode
--}
--
--DeveloperModeSettings::~DeveloperModeSettings()
--{
--}
--
--QString DeveloperModeSettings::wlanIpAddress() const
--{
-- return m_wlanIpAddress;
--}
--
--QString DeveloperModeSettings::usbIpAddress() const
--{
-- return m_usbIpAddress;
--}
--
--QString DeveloperModeSettings::username() const
--{
-- return m_username;
--}
--
--bool DeveloperModeSettings::developerModeEnabled() const
--{
-- return m_developerModeEnabled;
--}
--
--enum DeveloperModeSettings::Status DeveloperModeSettings::workStatus() const
--{
-- return m_workStatus;
--}
--
--int DeveloperModeSettings::workProgress() const
--{
-- return m_workProgress;
--}
--
--bool DeveloperModeSettings::repositoryAccessRequired() const
--{
-- // Aka local-install-of-developer-mode-package-is-not-possible
-- return m_localInstallFailed || m_localDeveloperModePackagePath.isEmpty();
--}
--
--void DeveloperModeSettings::setDeveloperMode(bool enabled)
--{
-- if (m_developerModeEnabled != enabled) {
-- if (m_workStatus != Idle) {
-- qCWarning(lcDeveloperModeLog) << "DeveloperMode state change requested during activity, ignored.";
-- return;
-- }
--
-- m_refreshedForInstall = false;
-- if (enabled) {
-- resolveAndExecute(InstallCommand);
-- } else {
-- resolveAndExecute(RemoveCommand);
-- }
-- }
--}
--
--void DeveloperModeSettings::setUsbIpAddress(const QString &usbIpAddress)
--{
-- if (m_usbIpAddress != usbIpAddress) {
-- usbModedSetConfig(USB_MODED_CONFIG_IP, usbIpAddress);
-- m_usbIpAddress = usbIpAddress;
-- emit usbIpAddressChanged();
-- }
--}
--
--void DeveloperModeSettings::refresh()
--{
-- /* Retrieve network configuration from usb_moded */
-- m_usbInterface = usbModedGetConfig(USB_MODED_CONFIG_INTERFACE, USB_NETWORK_FALLBACK_INTERFACE);
-- QString usbIp = usbModedGetConfig(USB_MODED_CONFIG_IP, USB_NETWORK_FALLBACK_IP);
--
-- if (usbIp != m_usbIpAddress) {
-- m_usbIpAddress = usbIp;
-- emit usbIpAddressChanged();
-- }
--
-- /* Retrieve network configuration from interfaces */
-- QMap<QString,QString> entries = enumerate_network_interfaces();
--
-- if (entries.contains(m_usbInterface)) {
-- QString ip = entries[m_usbInterface];
-- if (m_usbIpAddress != ip) {
-- m_usbIpAddress = ip;
-- emit usbIpAddressChanged();
-- }
-- }
--
-- if (entries.contains(WLAN_NETWORK_INTERFACE)) {
-- QString ip = entries[WLAN_NETWORK_INTERFACE];
-- if (m_wlanIpAddress != ip) {
-- m_wlanIpAddress = ip;
-- emit wlanIpAddressChanged();
-- }
-- } else if (entries.contains(WLAN_NETWORK_FALLBACK_INTERFACE)) {
-- // If the WLAN network interface does not have an IP address,
-- // but there is a "tether" interface that does have an IP, assume
-- // it is the WLAN interface in tethering mode, and use its IP.
-- QString ip = entries[WLAN_NETWORK_FALLBACK_INTERFACE];
-- if (m_wlanIpAddress != ip) {
-- m_wlanIpAddress = ip;
-- emit wlanIpAddressChanged();
-- }
-- }
--
-- for (const QString &device : entries.keys()) {
-- qCDebug(lcDeveloperModeLog) << "Device:" << device << "IP:" << entries[device];
-- }
--}
--
--void DeveloperModeSettings::refreshPackageCacheAndInstall()
--{
-- m_refreshedForInstall = true;
--
-- // Soft refresh, do not clear & reload valid cache.
-- PackageKit::Transaction *refreshCache = PackageKit::Daemon::refreshCache(false);
-- connect(refreshCache, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
-- connect(refreshCache, &PackageKit::Transaction::finished,
-- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
-- qCDebug(lcDeveloperModeLog) << "Package cache updated:" << status << runtime;
-- resolveAndExecute(InstallCommand); // trying again regardless of success, some repositories might be updated
-- });
--}
--
--void DeveloperModeSettings::resolveAndExecute(Command command)
--{
-- setWorkStatus(Preparing);
-- m_workProgress = 0;
-- m_developerModePackageId.clear(); // might differ between installed/available
--
-- if (command == InstallCommand && !m_localInstallFailed && !m_localDeveloperModePackagePath.isEmpty()) {
-- // Resolve which version of developer mode package is expected
-- PackageKit::Transaction *resolvePackage = PackageKit::Daemon::resolve(DEVELOPER_MODE_PACKAGE"-preload", PackageKit::Transaction::FilterInstalled);
-- connect(resolvePackage, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
-- connect(resolvePackage, &PackageKit::Transaction::package,
-- this, [this](PackageKit::Transaction::Info info, const QString &packageID, const QString &summary) {
-- Q_UNUSED(summary)
-- Q_ASSERT(info == PackageKit::Transaction::InfoInstalled);
-- const QString version = PackageKit::Transaction::packageVersion(packageID);
-- m_localDeveloperModePackagePath = get_cached_package(version);
-- emit repositoryAccessRequiredChanged();
-- qCDebug(lcDeveloperModeLog) << "Preload package version: " << version << ", local package path: " << m_localDeveloperModePackagePath;
-- });
--
-- connect(resolvePackage, &PackageKit::Transaction::finished,
-- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
-- Q_UNUSED(runtime)
-- if (status != PackageKit::Transaction::ExitSuccess || m_localDeveloperModePackagePath.isEmpty()) {
-- qCDebug(lcDeveloperModeLog) << "Preloaded package not found, must use remote package";
-- // No cached package => install from repos
-- resolveAndExecute(InstallCommand);
-- } else {
-- PackageKit::Transaction *tx = PackageKit::Daemon::installFiles(QStringList() << m_localDeveloperModePackagePath);
-- connectCommandSignals(tx);
-- connect(tx, &PackageKit::Transaction::finished,
-- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
-- if (status == PackageKit::Transaction::ExitSuccess) {
-- qCDebug(lcDeveloperModeLog) << "Developer mode installation from local package transaction done:" << status << runtime;
-- resetState();
-- } else if (status == PackageKit::Transaction::ExitFailed) {
-- qCWarning(lcDeveloperModeLog) << "Developer mode installation from local package failed, trying from repos";
-- m_localInstallFailed = true;
-- emit repositoryAccessRequiredChanged();
-- resolveAndExecute(InstallCommand); // TODO: If repo access is not available this can not bail out
-- } // else ExitUnknown (ignored)
-- });
-- }
-- });
--
-- } else {
-- PackageKit::Transaction::Filters filters;
-- if (command == RemoveCommand) {
-- filters = PackageKit::Transaction::FilterInstalled;
-- } else {
-- filters = PackageKit::Transaction::FilterNewest;
-- }
-- PackageKit::Transaction *resolvePackage = PackageKit::Daemon::resolve(DEVELOPER_MODE_PACKAGE, filters);
--
-- connect(resolvePackage, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
-- connect(resolvePackage, &PackageKit::Transaction::package,
-- this, [this](PackageKit::Transaction::Info info, const QString &packageId, const QString &summary) {
-- qCDebug(lcDeveloperModeLog) << "Package transaction:" << info << packageId << "summary:" << summary;
-- m_developerModePackageId = packageId;
-- });
--
-- connect(resolvePackage, &PackageKit::Transaction::finished,
-- this, [this, command](PackageKit::Transaction::Exit status, uint runtime) {
-- Q_UNUSED(runtime)
--
-- if (status != PackageKit::Transaction::ExitSuccess || m_developerModePackageId.isEmpty()) {
-- if (command == InstallCommand) {
-- if (m_refreshedForInstall) {
-- qCWarning(lcDeveloperModeLog) << "Failed to install developer mode, package didn't resolve.";
-- resetState();
-- } else {
-- refreshPackageCacheAndInstall(); // try once if it helps
-- }
-- } else if (command == RemoveCommand) {
-- qCWarning(lcDeveloperModeLog) << "Removing developer mode but package didn't resolve into anything. Shouldn't happen.";
-- resetState();
-- }
--
-- } else if (command == InstallCommand) {
-- PackageKit::Transaction *tx = PackageKit::Daemon::installPackage(m_developerModePackageId);
-- connectCommandSignals(tx);
--
-- if (m_refreshedForInstall) {
-- connect(tx, &PackageKit::Transaction::finished,
-- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
-- qCDebug(lcDeveloperModeLog) << "Developer mode installation transaction done (with refresh):" << status << runtime;
-- resetState();
-- });
-- } else {
-- connect(tx, &PackageKit::Transaction::finished,
-- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
-- if (status == PackageKit::Transaction::ExitSuccess) {
-- qCDebug(lcDeveloperModeLog) << "Developer mode installation transaction done:" << status << runtime;
-- resetState();
-- } else {
-- qCDebug(lcDeveloperModeLog) << "Developer mode installation failed, trying again after refresh";
-- refreshPackageCacheAndInstall();
-- }
-- });
-- }
-- } else {
-- PackageKit::Transaction *tx = PackageKit::Daemon::removePackage(m_developerModePackageId, true, true);
-- connectCommandSignals(tx);
-- connect(tx, &PackageKit::Transaction::finished,
-- this, [this](PackageKit::Transaction::Exit status, uint runtime) {
-- qCDebug(lcDeveloperModeLog) << "Developer mode removal transaction done:" << status << runtime;
-- resetState();
-- });
-- }
-- });
-- }
--}
--
--void DeveloperModeSettings::connectCommandSignals(PackageKit::Transaction *transaction)
--{
-- connect(transaction, &PackageKit::Transaction::errorCode, this, &DeveloperModeSettings::reportTransactionErrorCode);
-- connect(transaction, &PackageKit::Transaction::percentageChanged, this, [this, transaction]() {
-- updateState(transaction->percentage(), m_transactionStatus, m_transactionRole);
-- });
--
-- connect(transaction, &PackageKit::Transaction::statusChanged, this, [this, transaction]() {
-- updateState(m_workProgress, transaction->status(), m_transactionRole);
-- });
--
-- connect(transaction, &PackageKit::Transaction::roleChanged, this, [this, transaction]() {
-- updateState(m_workProgress, m_transactionStatus, transaction->role());
-- });
--}
--
--void DeveloperModeSettings::updateState(int percentage, PackageKit::Transaction::Status status, PackageKit::Transaction::Role role)
--{
-- // Expected changes from PackageKit when installing packages:
-- // 1. Change to 'install packages' role or 'install files' if installing from local package file
-- // 2. Status changes:
-- // setup -> refresh cache -> query -> resolve deps -> install (refer to as 'Preparing' status)
-- // -> download ('DownloadingPackages' status)
-- // -> install ('InstallingPackages' status)
-- // -> finished
-- //
-- // If installing from local package fails, it starts over!
-- //
-- // Expected changes from PackageKit when removing packages:
-- // 1. Change to 'remove packages' role
-- // 2. Status changes:
-- // setup -> remove -> resolve deps (refer to as 'Preparing' status)
-- // -> remove ('RemovingPackages' status)
-- // -> finished
-- //
-- // Notice the 'install' and 'remove' packagekit status changes occur twice.
--
-- int progress = m_workProgress;
-- DeveloperModeSettings::Status workStatus = m_workStatus;
--
-- m_transactionRole = role;
-- m_transactionStatus = status;
--
-- // Do not update progress when finished or role is unknown.
-- if (m_transactionStatus == PackageKit::Transaction::StatusFinished
-- || m_transactionRole == PackageKit::Transaction::RoleUnknown) {
-- return;
-- }
--
-- if (percentage >= 0 && percentage <= 100) {
-- int rangeStart = 0;
-- int rangeEnd = 0;
-- if (m_transactionRole == PackageKit::Transaction::RoleInstallPackages
-- || m_transactionRole == PackageKit::Transaction::RoleInstallFiles) {
-- switch (m_transactionStatus) {
-- case PackageKit::Transaction::StatusRefreshCache: // 0-10 %
-- rangeStart = 0;
-- rangeEnd = 10;
-- break;
-- case PackageKit::Transaction::StatusQuery: // fall through; packagekit progress changes 0-100 over query->resolve stages
-- case PackageKit::Transaction::StatusDepResolve: // 10-20 %
-- rangeStart = 10;
-- rangeEnd = 20;
-- break;
-- case PackageKit::Transaction::StatusDownload: // 20-60 %
-- // Skip downloading when installing from local file
-- if (m_transactionRole != PackageKit::Transaction::RoleInstallFiles) {
-- workStatus = DownloadingPackages;
-- }
-- rangeStart = 20;
-- rangeEnd = 60;
-- break;
-- case PackageKit::Transaction::StatusInstall: // 60-100 %
-- workStatus = InstallingPackages;
-- rangeStart = 60;
-- rangeEnd = 100;
-- break;
-- default:
-- break;
-- }
-- } else if (m_transactionRole == PackageKit::Transaction::RoleRemovePackages) {
-- if (m_transactionStatus == PackageKit::Transaction::StatusSetup) {
-- // Let the setup to be bound between 0-20 %
-- rangeStart = 0;
-- rangeEnd = 20;
-- } else { // 20-100 %
-- workStatus = RemovingPackages;
-- rangeStart = 20;
-- rangeEnd = 100;
-- }
-- }
-- if (rangeEnd > 0 && rangeEnd > rangeStart) {
-- progress = rangeStart + ((rangeEnd - rangeStart) * (percentage / 100.0));
-- }
-- }
--
-- progress = qBound(0, qMax(progress, m_workProgress), 100); // Ensure the emitted progress value never decreases.
--
-- setWorkStatus(workStatus);
--
-- if (m_workProgress != progress) {
-- m_workProgress = progress;
-- emit workProgressChanged();
-- }
--}
--
--void DeveloperModeSettings::resetState()
--{
-- bool enabled = QFile::exists(DEVELOPER_MODE_PROVIDED_FILE);
-- if (m_developerModeEnabled != enabled) {
-- m_developerModeEnabled = enabled;
-- emit developerModeEnabledChanged();
-- }
--
-- setWorkStatus(Idle);
--
-- if (m_workProgress != PROGRESS_INDETERMINATE) {
-- m_workProgress = PROGRESS_INDETERMINATE;
-- emit workProgressChanged();
-- }
--}
--
--void DeveloperModeSettings::setWorkStatus(DeveloperModeSettings::Status status)
--{
-- if (m_workStatus != status) {
-- m_workStatus = status;
-- emit workStatusChanged();
-- }
--}
--
--void DeveloperModeSettings::reportTransactionErrorCode(PackageKit::Transaction::Error code, const QString &details)
--{
-- qCWarning(lcDeveloperModeLog) << "Transaction error:" << code << details;
--}
--
--QString DeveloperModeSettings::usbModedGetConfig(const QString &key, const QString &fallback)
--{
-- QString value = fallback;
--
-- QDBusMessage msg = m_usbModeDaemon.call(USB_MODED_GET_NET_CONFIG, key);
-- QList<QVariant> result = msg.arguments();
-- if (result[0].toString() == key && result.size() == 2) {
-- value = result[1].toString();
-- }
--
-- return value;
--}
--
--void DeveloperModeSettings::usbModedSetConfig(const QString &key, const QString &value)
--{
-- m_usbModeDaemon.call(USB_MODED_SET_NET_CONFIG, key, value);
--}
-diff --git a/src/developermodesettings.h b/src/developermodesettings.h
-deleted file mode 100644
-index d5473f7..0000000
---- a/src/developermodesettings.h
-+++ /dev/null
-@@ -1,130 +0,0 @@
--/*
-- * Copyright (c) 2013 – 2019 Jolla Ltd.
-- * Copyright (c) 2019 Open Mobile Platform LLC.
-- * Contact: Thomas Perl <thomas.perl@jollamobile.com>
-- *
-- * You may use this file under the terms of the BSD license as follows:
-- *
-- * "Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions are
-- * met:
-- * * Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * * Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in
-- * the documentation and/or other materials provided with the
-- * distribution.
-- * * Neither the name of Nemo Mobile 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 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."
-- */
--
--#ifndef DEVELOPERMODESETTINGS_H
--#define DEVELOPERMODESETTINGS_H
--
--#include <QObject>
--#include <QDBusInterface>
--
--#include <systemsettingsglobal.h>
--#include <daemon.h>
--
--
--QT_BEGIN_NAMESPACE
--class QDBusPendingCallWatcher;
--QT_END_NAMESPACE
--
--class SYSTEMSETTINGS_EXPORT DeveloperModeSettings : public QObject
--{
-- Q_OBJECT
-- Q_ENUMS(Status)
--
-- Q_PROPERTY(QString wlanIpAddress READ wlanIpAddress NOTIFY wlanIpAddressChanged)
-- Q_PROPERTY(QString usbIpAddress READ usbIpAddress NOTIFY usbIpAddressChanged)
-- Q_PROPERTY(QString username READ username CONSTANT)
-- Q_PROPERTY(bool developerModeEnabled READ developerModeEnabled NOTIFY developerModeEnabledChanged)
-- Q_PROPERTY(enum DeveloperModeSettings::Status workStatus READ workStatus NOTIFY workStatusChanged)
-- Q_PROPERTY(int workProgress READ workProgress NOTIFY workProgressChanged)
-- Q_PROPERTY(bool repositoryAccessRequired READ repositoryAccessRequired NOTIFY repositoryAccessRequiredChanged)
--
--public:
-- explicit DeveloperModeSettings(QObject *parent = NULL);
-- virtual ~DeveloperModeSettings();
--
-- enum Status {
-- Idle = 0,
-- Preparing,
-- DownloadingPackages,
-- InstallingPackages,
-- RemovingPackages
-- };
--
-- QString wlanIpAddress() const;
-- QString usbIpAddress() const;
-- QString username() const;
-- bool developerModeEnabled() const;
-- enum DeveloperModeSettings::Status workStatus() const;
-- int workProgress() const;
-- bool repositoryAccessRequired() const;
--
-- Q_INVOKABLE void setDeveloperMode(bool enabled);
-- Q_INVOKABLE void setUsbIpAddress(const QString &usbIpAddress);
-- Q_INVOKABLE void refresh();
--
--signals:
-- void wlanIpAddressChanged();
-- void usbIpAddressChanged();
-- void developerModeEnabledChanged();
-- void workStatusChanged();
-- void workProgressChanged();
-- void repositoryAccessRequiredChanged();
--
--private slots:
-- void reportTransactionErrorCode(PackageKit::Transaction::Error code, const QString &details);
-- void updateState(int percentage, PackageKit::Transaction::Status status, PackageKit::Transaction::Role role);
--
--private:
-- enum Command {
-- InstallCommand,
-- RemoveCommand
-- };
--
-- void resetState();
-- void setWorkStatus(Status status);
-- void refreshPackageCacheAndInstall();
-- void resolveAndExecute(Command command);
-- void connectCommandSignals(PackageKit::Transaction *transaction);
--
-- QString usbModedGetConfig(const QString &key, const QString &fallback);
-- void usbModedSetConfig(const QString &key, const QString &value);
--
-- QDBusInterface m_usbModeDaemon;
-- QString m_wlanIpAddress;
-- QString m_usbInterface;
-- QString m_usbIpAddress;
-- QString m_username;
-- QString m_developerModePackageId;
-- bool m_developerModeEnabled;
-- DeveloperModeSettings::Status m_workStatus;
-- int m_workProgress;
-- PackageKit::Transaction::Role m_transactionRole;
-- PackageKit::Transaction::Status m_transactionStatus;
-- bool m_refreshedForInstall;
-- bool m_localInstallFailed;
-- QString m_localDeveloperModePackagePath;
--};
--
--Q_DECLARE_METATYPE(DeveloperModeSettings::Status)
--
--#endif /* DEVELOPERMODESETTINGS_H */
-diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp
-index 8174c09..b7db9ae 100644
---- a/src/plugin/plugin.cpp
-+++ b/src/plugin/plugin.cpp
-@@ -43,7 +43,6 @@
- #include "alarmtonemodel.h"
- #include "displaysettings.h"
- #include "aboutsettings.h"
--#include "developermodesettings.h"
- #include "batterystatus.h"
- #include "diskusage.h"
- #include "partitionmodel.h"
-@@ -104,10 +103,8 @@ public:
- qmlRegisterType<AboutSettings>(uri, 1, 0, "AboutSettings");
- qmlRegisterType<PartitionModel>(uri, 1, 0, "PartitionModel");
- qRegisterMetaType<Partition>("Partition");
-- qmlRegisterType<DeveloperModeSettings>(uri, 1, 0, "DeveloperModeSettings");
- qmlRegisterType<CertificateModel>(uri, 1, 0, "CertificateModel");
- qmlRegisterSingletonType<SettingsVpnModel>(uri, 1, 0, "SettingsVpnModel", api_factory<SettingsVpnModel>);
-- qRegisterMetaType<DeveloperModeSettings::Status>("DeveloperModeSettings::Status");
- qmlRegisterType<BatteryStatus>(uri, 1, 0, "BatteryStatus");
- qmlRegisterType<DiskUsage>(uri, 1, 0, "DiskUsage");
- qmlRegisterType<LocationSettings>(uri, 1, 0, "LocationSettings");
-diff --git a/src/plugin/plugin.pro b/src/plugin/plugin.pro
-index 9a05fa9..cfd58e7 100644
---- a/src/plugin/plugin.pro
-+++ b/src/plugin/plugin.pro
-@@ -6,7 +6,7 @@ CONFIG += qt plugin c++11 hide_symbols link_pkgconfig
- QT += qml dbus network
- QT -= gui
-
--PKGCONFIG += profile usb-moded-qt5 nemomodels-qt5 libsailfishkeyprovider connman-qt5 packagekitqt5
-+PKGCONFIG += profile usb-moded-qt5 nemomodels-qt5 libsailfishkeyprovider connman-qt5
-
- target.path = $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH
- INSTALLS += target
-diff --git a/src/src.pro b/src/src.pro
-index 791a3f7..57f59b4 100644
---- a/src/src.pro
-+++ b/src/src.pro
-@@ -7,7 +7,7 @@ QT -= gui
-
- CONFIG += c++11 hide_symbols link_pkgconfig
- PKGCONFIG += profile mlite5 mce timed-qt5 blkid libcrypto nemomodels-qt5 libsailfishkeyprovider connman-qt5 glib-2.0
--PKGCONFIG += ssu-sysinfo nemodbus packagekitqt5 libsystemd sailfishusermanager sailfishaccesscontrol
-+PKGCONFIG += ssu-sysinfo nemodbus libsystemd sailfishusermanager sailfishaccesscontrol
-
- system(qdbusxml2cpp -p mceiface.h:mceiface.cpp mce.xml)
-
-@@ -22,8 +22,7 @@ SOURCES += \
- mceiface.cpp \
- displaysettings.cpp \
- aboutsettings.cpp \
-- certificatemodel.cpp \
-- developermodesettings.cpp \
-+ certificatemodel.cpp \
- batterystatus.cpp \
- diskusage.cpp \
- diskusage_impl.cpp \
-@@ -51,7 +50,6 @@ PUBLIC_HEADERS = \
- aboutsettings.h \
- certificatemodel.h \
- settingsvpnmodel.h \
-- developermodesettings.h \
- batterystatus.h \
- udisks2block_p.h \
- udisks2defines.h \
diff --git a/testing/nemo-qml-plugin-systemsettings/0002-Remove-broken-certificatemodel.patch b/testing/nemo-qml-plugin-systemsettings/0002-Remove-broken-certificatemodel.patch
deleted file mode 100644
index c12acc6599b..00000000000
--- a/testing/nemo-qml-plugin-systemsettings/0002-Remove-broken-certificatemodel.patch
+++ /dev/null
@@ -1,996 +0,0 @@
-Sadly this functionality is broken with no available patch to fix it.
-To make sure we can still build and use this package, let's just remove it.
-
-diff --git a/src/certificatemodel.cpp b/src/certificatemodel.cpp
-deleted file mode 100644
-index f568fec..0000000
---- a/src/certificatemodel.cpp
-+++ /dev/null
-@@ -1,800 +0,0 @@
--/*
-- * Copyright (c) 2016 - 2019 Jolla Ltd.
-- * Copyright (c) 2019 Open Mobile Platform LLC.
-- *
-- * You may use this file under the terms of the BSD license as follows:
-- *
-- * "Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions are
-- * met:
-- * * Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * * Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in
-- * the documentation and/or other materials provided with the
-- * distribution.
-- * * Neither the name of Nemo Mobile 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 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 "certificatemodel.h"
--
--#include <QFile>
--#include <QRegularExpression>
--#include <QDebug>
--#include <functional>
--
--#include <openssl/opensslv.h>
--#include <openssl/bio.h>
--#include <openssl/conf.h>
--#include <openssl/engine.h>
--#include <openssl/err.h>
--#include <openssl/evp.h>
--#include <openssl/pem.h>
--#include <openssl/x509v3.h>
--
--namespace {
--
--struct X509List;
--
--}
--
--struct X509Certificate
--{
-- QList<QPair<QString, QString>> subjectList(bool shortForm = false) const
-- {
-- return nameList(X509_get_subject_name(x509), shortForm);
-- }
-- QString subject(bool shortForm = true, const QString &separator = QString(", ")) const
-- {
-- return toString(subjectList(shortForm), separator);
-- }
-- QString subjectElement(int nid) const
-- {
-- return nameElement(X509_get_subject_name(x509), nid);
-- }
--
-- QList<QPair<QString, QString>> issuerList(bool shortForm = false) const
-- {
-- return nameList(X509_get_issuer_name(x509), shortForm);
-- }
-- QString issuer(bool shortForm = true, const QString &separator = QString(", ")) const
-- {
-- return toString(issuerList(shortForm), separator);
-- }
-- QString issuerElement(int nid) const
-- {
-- return nameElement(X509_get_issuer_name(x509), nid);
-- }
--
-- QString version() const
-- {
-- return QString::number(X509_get_version(x509) + 1);
-- }
--
-- QString serialNumber() const
-- {
-- return integerToString(X509_get_serialNumber(x509));
-- }
--
-- QDateTime notBefore() const
-- {
-- return toDateTime(X509_get_notBefore(x509));
-- }
--
-- QDateTime notAfter() const
-- {
-- return toDateTime(X509_get_notAfter(x509));
-- }
--
-- QList<QPair<QString, QString>> publicKeyList(bool shortForm = false) const
-- {
-- QList<QPair<QString, QString>> rv;
--
-- if (EVP_PKEY *key = X509_get_pubkey(x509)) {
-- rv.append(qMakePair(QStringLiteral("Algorithm"), idToString(EVP_PKEY_id(key), shortForm)));
-- rv.append(qMakePair(QStringLiteral("Bits"), QString::number(EVP_PKEY_bits(key))));
--
-- BIO *b = BIO_new(BIO_s_mem());
-- EVP_PKEY_print_public(b, key, 0, 0);
-- const QList<QPair<QString, QString>> &details(parseData(bioToString(b)));
-- for (auto it = details.cbegin(), end = details.cend(); it != end; ++it) {
-- rv.append(qMakePair(it->first, it->second));
-- }
-- BIO_free(b);
--
-- EVP_PKEY_free(key);
-- }
--
-- return rv;
-- }
--
-- QList<QPair<QString, QString>> extensionList(bool shortForm = false) const
-- {
-- QList<QPair<QString, QString>> rv;
--
-- for (int i = 0, n = sk_X509_EXTENSION_num(x509->cert_info->extensions); i < n; ++i) {
-- X509_EXTENSION *extension = sk_X509_EXTENSION_value(x509->cert_info->extensions, i);
--
-- ASN1_OBJECT *object = X509_EXTENSION_get_object(extension);
-- int nid = OBJ_obj2nid(object);
-- if (nid == NID_undef)
-- continue;
--
-- QString name(objectToString(object, shortForm));
-- if (X509_EXTENSION_get_critical(extension) > 0) {
-- name.append(QStringLiteral(" (Critical)"));
-- }
--
-- BIO *b = BIO_new(BIO_s_mem());
-- X509V3_EXT_print(b, extension, 0, 0);
-- rv.append(qMakePair(name, bioToString(b)));
-- BIO_free(b);
-- }
--
-- return rv;
-- }
--
-- QList<QPair<QString, QString>> signatureList(bool shortForm = false) const
-- {
-- QList<QPair<QString, QString>> rv;
--
-- rv.append(qMakePair(QStringLiteral("Algorithm"), objectToString(x509->sig_alg->algorithm, shortForm)));
--
-- BIO *b = BIO_new(BIO_s_mem());
-- X509_signature_dump(b, x509->signature, 0);
-- QString d(bioToString(b).replace(QChar('\n'), QString()));
-- rv.append(qMakePair(QStringLiteral("Data"), d.trimmed()));
-- BIO_free(b);
--
-- return rv;
-- }
--
--private:
-- static QString stringToString(ASN1_STRING *data)
-- {
-- return QString::fromUtf8(reinterpret_cast<char*>(ASN1_STRING_data(data)));
-- }
--
-- static QString timeToString(ASN1_TIME *data)
-- {
-- return stringToString(data);
-- }
--
-- static QString idToString(int nid, bool shortForm)
-- {
-- return QString::fromUtf8(shortForm ? OBJ_nid2sn(nid) : OBJ_nid2ln(nid));
-- }
--
-- static QString objectToString(ASN1_OBJECT *object, bool shortForm)
-- {
-- return idToString(OBJ_obj2nid(object), shortForm);
-- }
--
-- static QString integerToString(ASN1_INTEGER *integer)
-- {
-- if (integer->type != V_ASN1_INTEGER && integer->type != V_ASN1_NEG_INTEGER)
-- return QString();
--
-- quint64 value = 0;
-- for (size_t i = 0, n = qMin(integer->length, 8); i < n; ++i)
-- value = value << 8 | integer->data[i];
--
-- QString rv = QString::number(value);
-- if (integer->type == V_ASN1_NEG_INTEGER)
-- rv.prepend(QStringLiteral("-"));
-- return rv;
-- }
--
-- static QString bioToString(BIO *bio)
-- {
-- char *out = 0;
-- int n = BIO_get_mem_data(bio, &out);
-- return QString::fromUtf8(QByteArray::fromRawData(out, n));
-- }
--
-- static QList<QPair<QString, QString>> nameList(X509_NAME *name, bool shortForm = true)
-- {
-- QList<QPair<QString, QString>> rv;
--
-- for (int i = 0, n = X509_NAME_entry_count(name); i < n; ++i) {
-- X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, i);
-- ASN1_OBJECT *object = X509_NAME_ENTRY_get_object(entry);
-- ASN1_STRING *data = X509_NAME_ENTRY_get_data(entry);
-- rv.append(qMakePair(objectToString(object, shortForm), stringToString(data)));
-- }
--
-- return rv;
-- }
--
-- static QString nameElement(X509_NAME *name, int nid)
-- {
-- for (int i = 0, n = X509_NAME_entry_count(name); i < n; ++i) {
-- X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, i);
-- ASN1_OBJECT *object = X509_NAME_ENTRY_get_object(entry);
-- if (OBJ_obj2nid(object) == nid) {
-- ASN1_STRING *data = X509_NAME_ENTRY_get_data(entry);
-- return stringToString(data);
-- }
-- }
--
-- return QString();
-- }
--
-- static QString toString(const QList<QPair<QString, QString>> &list, const QString &separator = QString(", "))
-- {
-- QString rv;
--
-- for (auto it = list.cbegin(), end = list.cend(); it != end; ++it) {
-- if (!rv.isEmpty()) {
-- rv.append(separator);
-- }
-- rv.append(it->first);
-- rv.append(QChar(':'));
-- rv.append(it->second);
-- }
--
-- return rv;
-- }
--
-- static QDateTime toDateTime(ASN1_TIME *time)
-- {
-- const QString ts(timeToString(time));
-- return (time->type == V_ASN1_GENERALIZEDTIME ? fromGENERALIZEDTIME(ts) : fromUTCTIME(ts));
-- }
--
-- static QDateTime fromUTCTIME(const QString &ts)
-- {
-- QDate d;
-- QTime t;
-- int offset = 0;
--
-- // "YYMMDDhhmm[ss](Z|(+|-)hhmm)"
-- const QRegularExpression re("([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?(Z)?(([+-])([0-9]{2})([0-9]{2}))?");
-- QRegularExpressionMatch match = re.match(ts);
-- if (match.hasMatch()) {
-- int y = match.captured(1).toInt();
-- d = QDate((y < 70 ? 2000 : 1900) + y, match.captured(2).toInt(), match.captured(3).toInt());
--
-- t = QTime(match.captured(4).toInt(), match.captured(5).toInt(), match.captured(6).toInt());
--
-- if (match.lastCapturedIndex() > 7) {
-- offset = match.captured(11).toInt() * 60 + match.captured(10).toInt() * 60*60;
-- if (match.captured(9) == "-") {
-- offset = -offset;
-- }
-- }
-- }
--
-- return QDateTime(d, t, Qt::OffsetFromUTC, offset);
-- }
--
-- static QDateTime fromGENERALIZEDTIME(const QString &ts)
-- {
-- QDate d;
-- QTime t;
-- int offset = 0;
--
-- // "YYYYMMDDhh[mm[ss[.fff]]](Z|(+|-)hhmm)" <- nested optionals can be treated as appearing sequentially
-- const QRegularExpression re("([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})?([0-9]{2})?(\\.[0-9]{1,3})?(Z)?(([+-])([0-9]{2})([0-9]{2}))?");
-- QRegularExpressionMatch match = re.match(ts);
-- if (match.hasMatch()) {
-- d = QDate(match.captured(1).toInt(), match.captured(2).toInt(), match.captured(3).toInt());
--
-- double fraction = match.captured(7).toDouble();
-- int ms = (fraction * 1000);
-- t = QTime(match.captured(4).toInt(), match.captured(5).toInt(), match.captured(6).toInt(), ms);
--
-- if (match.lastCapturedIndex() > 8) {
-- offset = match.captured(12).toInt() * 60 + match.captured(11).toInt() * 60*60;
-- if (match.captured(10) == "-") {
-- offset = -offset;
-- }
-- }
-- }
--
-- return QDateTime(d, t, Qt::OffsetFromUTC, offset);
-- }
--
-- static QList<QPair<QString, QString>> parseData(QString data)
-- {
-- QList<QPair<QString, QString>> rv;
--
-- // Join any data with the preceding header
-- data.replace(QRegularExpression(": *\n +"), QStringLiteral(":"));
-- foreach (const QString &line, data.split(QString("\n"), QString::SkipEmptyParts)) {
-- int index = line.indexOf(QChar(':'));
-- if (index != -1) {
-- QString name(line.left(index));
-- QString value(line.mid(index + 1).trimmed());
-- rv.append(qMakePair(name, value));
-- }
-- }
--
-- return rv;
-- }
--
-- friend struct ::X509List;
--
-- X509Certificate(X509 *x) : x509(x) {}
--
-- X509 *x509;
--};
--
--namespace {
--
--struct X509List
--{
-- X509List()
-- : crlStack(0), certificateStack(0), pkcs7(0), pkcs7Signed(0)
-- {
-- crlStack = sk_X509_CRL_new_null();
-- if (!crlStack) {
-- qWarning() << "Unable to allocate CRL stack";
-- } else {
-- certificateStack = sk_X509_new_null();
-- if (!certificateStack) {
-- qWarning() << "Unable to allocate X509 stack";
-- } else {
-- pkcs7 = PKCS7_new();
-- pkcs7Signed = PKCS7_SIGNED_new();
-- if (!pkcs7 || !pkcs7Signed) {
-- qWarning() << "Unable to create PKCS7 structures";
-- } else {
-- pkcs7Signed->crl = crlStack;
-- pkcs7Signed->cert = certificateStack;
--
-- pkcs7->type = OBJ_nid2obj(NID_pkcs7_signed);
-- pkcs7->d.sign = pkcs7Signed;
-- pkcs7Signed->contents->type = OBJ_nid2obj(NID_pkcs7_data);
-- if (!ASN1_INTEGER_set(pkcs7Signed->version, 1)) {
-- qWarning() << "Unable to set PKCS7 signed version";
-- }
-- }
-- }
-- }
-- }
--
-- ~X509List()
-- {
-- /* Apparently, pkcs7Signed and pkcs7 cannot be safely freed...
-- if (pkcs7Signed)
-- PKCS7_SIGNED_free(pkcs7Signed);
-- if (pkcs7)
-- PKCS7_free(pkcs7);
-- */
-- if (certificateStack)
-- sk_X509_free(certificateStack);
-- if (crlStack)
-- sk_X509_CRL_free(crlStack);
-- }
--
-- bool isValid() const
-- {
-- return pkcs7 && pkcs7Signed;
-- }
--
-- int count() const
-- {
-- return sk_X509_num(certificateStack);
-- }
--
-- void append(X509 *x509)
-- {
-- sk_X509_push(certificateStack, x509);
-- }
--
-- void for_each(std::function<void (const X509Certificate &)> fn) const
-- {
-- for (int i = 0, n(count()); i < n; ++i) {
-- fn(X509Certificate(sk_X509_value(certificateStack, i)));
-- }
-- }
--
--private:
-- STACK_OF(X509_CRL) *crlStack;
-- STACK_OF(X509) *certificateStack;
-- PKCS7 *pkcs7;
-- PKCS7_SIGNED *pkcs7Signed;
--};
--
--struct PKCS7File
--{
-- explicit PKCS7File(const QString &path)
-- {
-- if (!isValid()) {
-- qWarning() << "Unable to prepare X509 certificates structure";
-- } else {
-- BIO *input = BIO_new(BIO_s_file());
-- if (!input) {
-- qWarning() << "Unable to allocate new BIO for:" << path;
-- } else {
-- const QByteArray filename(QFile::encodeName(path));
-- if (BIO_read_filename(input, const_cast<char *>(filename.constData())) <= 0) {
-- qWarning() << "Unable to open PKCS7 file:" << path;
-- } else {
-- read_pem_from_bio(input);
-- }
--
-- BIO_free(input);
-- }
-- }
-- }
--
-- explicit PKCS7File(const QByteArray &pem)
-- {
-- if (!isValid()) {
-- qWarning() << "Unable to prepare X509 certificates structure";
-- } else {
-- BIO *input = BIO_new_mem_buf(pem.constData(), pem.length());
-- if (!input) {
-- qWarning() << "Unable to allocate new BIO while importing in-memory PEM";
-- } else {
-- read_pem_from_bio(input);
-- BIO_free(input);
-- }
-- }
-- }
--
-- void read_pem_from_bio(BIO *input) {
-- STACK_OF(X509_INFO) *certificateStack = PEM_X509_INFO_read_bio(input, NULL, NULL, NULL);
-- if (!certificateStack) {
-- qWarning() << "Unable to read PKCS7 data";
-- } else {
-- while (sk_X509_INFO_num(certificateStack)) {
-- X509_INFO *certificateInfo = sk_X509_INFO_shift(certificateStack);
-- if (certificateInfo->x509 != NULL) {
-- certs.append(certificateInfo->x509);
-- certificateInfo->x509 = NULL;
-- }
-- X509_INFO_free(certificateInfo);
-- }
--
-- sk_X509_INFO_free(certificateStack);
-- }
-- }
--
-- ~PKCS7File()
-- {
-- }
--
-- bool isValid() const
-- {
-- return certs.isValid();
-- }
--
-- int count() const
-- {
-- return certs.count();
-- }
--
-- const X509List &getCertificates()
-- {
-- return certs;
-- }
--
--private:
-- X509List certs;
--};
--
--class LibCrypto
--{
-- struct Initializer
-- {
-- Initializer()
-- {
-- // As per: https://wiki.openssl.org/index.php/Library_Initialization#libcrypto_Initialization
-- OpenSSL_add_all_algorithms();
-- ERR_load_crypto_strings();
-- OPENSSL_config(NULL);
-- }
--
-- ~Initializer()
-- {
-- FIPS_mode_set(0);
-- ENGINE_cleanup();
-- CONF_modules_unload(1);
-- EVP_cleanup();
-- CRYPTO_cleanup_all_ex_data();
-- ERR_remove_thread_state(NULL);
-- ERR_free_strings();
-- }
-- };
--
-- static Initializer init;
--
--public:
-- template<class T>
-- static QList<Certificate> getCertificates(const T &bundleData)
-- {
-- PKCS7File bundle(bundleData);
--
-- return bundleToCertificates(bundle);
-- }
--private:
-- static QList<Certificate> bundleToCertificates(PKCS7File &bundle)
-- {
-- QList<Certificate> certificates;
-- if (bundle.isValid() && bundle.count() > 0) {
-- certificates.reserve(bundle.count());
-- bundle.getCertificates().for_each([&certificates](const X509Certificate &cert) {
-- certificates.append(Certificate(cert));
-- });
-- }
--
-- return certificates;
-- }
--};
--
--
--LibCrypto::Initializer LibCrypto::init;
--
--const QList<QPair<QString, CertificateModel::BundleType> > &bundlePaths()
--{
-- static QList<QPair<QString, CertificateModel::BundleType> > paths;
-- if (paths.isEmpty()) {
-- paths.append(qMakePair(QString("/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem"), CertificateModel::TLSBundle));
-- paths.append(qMakePair(QString("/etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem"), CertificateModel::EmailBundle));
-- paths.append(qMakePair(QString("/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem"), CertificateModel::ObjectSigningBundle));
-- }
-- return paths;
--}
--
--CertificateModel::BundleType bundleType(const QString &path)
--{
-- if (path.isEmpty())
-- return CertificateModel::NoBundle;
--
-- const QList<QPair<QString, CertificateModel::BundleType> > &bundles(bundlePaths());
-- for (auto it = bundles.cbegin(), end = bundles.cend(); it != end; ++it) {
-- if (it->first == path)
-- return it->second;
-- }
--
-- return CertificateModel::UserSpecifiedBundle;
--}
--
--QString bundlePath(CertificateModel::BundleType type)
--{
-- if (type == CertificateModel::UserSpecifiedBundle)
-- return QString();
--
-- const QList<QPair<QString, CertificateModel::BundleType> > &bundles(bundlePaths());
-- for (auto it = bundles.cbegin(), end = bundles.cend(); it != end; ++it) {
-- if (it->second == type)
-- return it->first;
-- }
--
-- return QStringLiteral("");
--}
--
--}
--
--Certificate::Certificate(const X509Certificate &cert)
-- : m_commonName(cert.subjectElement(NID_commonName))
-- , m_countryName(cert.subjectElement(NID_countryName))
-- , m_organizationName(cert.subjectElement(NID_organizationName))
-- , m_organizationalUnitName(cert.subjectElement(NID_organizationalUnitName))
-- , m_notValidBefore(cert.notBefore())
-- , m_notValidAfter(cert.notAfter())
--{
-- // Yield consistent names for the certificates, despite inconsistent naming policy
-- QString Certificate::*members[] = { &Certificate::m_commonName, &Certificate::m_organizationalUnitName, &Certificate::m_organizationName, &Certificate::m_countryName };
-- for (auto it = std::begin(members); it != std::end(members); ++it) {
-- const QString &s(this->*(*it));
-- if (!s.isEmpty()) {
-- if (m_primaryName.isEmpty()) {
-- m_primaryName = s;
-- } else if (m_secondaryName.isEmpty()) {
-- m_secondaryName = s;
-- break;
-- }
-- }
-- }
--
-- // Matches QSslCertificate::issuerDisplayName() introducd in Qt 5.12
-- // Returns a name that describes the issuer. It returns the CommonName if
-- // available, otherwise falls back to the Organization or the first
-- // OrganizationalUnitName.
-- m_issuerDisplayName = cert.issuerElement(NID_commonName);
-- if (m_issuerDisplayName.isEmpty()) {
-- m_issuerDisplayName = cert.issuerElement(NID_countryName);
-- }
-- if (m_issuerDisplayName.isEmpty()) {
-- m_issuerDisplayName = cert.issuerElement(NID_organizationName);
-- }
--
-- // Populate the details map
-- m_details.insert(QStringLiteral("Version"), QVariant(cert.version()));
-- m_details.insert(QStringLiteral("SerialNumber"), QVariant(cert.serialNumber()));
-- m_details.insert(QStringLiteral("SubjectDisplayName"), QVariant(m_primaryName));
-- m_details.insert(QStringLiteral("OrganizationName"), QVariant(m_organizationName));
-- m_details.insert(QStringLiteral("IssuerDisplayName"), QVariant(m_issuerDisplayName));
--
-- QVariantMap validity;
-- validity.insert(QStringLiteral("NotBefore"), QVariant(cert.notBefore()));
-- validity.insert(QStringLiteral("NotAfter"), QVariant(cert.notAfter()));
-- m_details.insert(QStringLiteral("Validity"), QVariant(validity));
--
-- QVariantMap issuer;
-- const QList<QPair<QString, QString>> &issuerDetails(cert.issuerList());
-- for (auto it = issuerDetails.cbegin(), end = issuerDetails.cend(); it != end; ++it) {
-- issuer.insert(it->first, QVariant(it->second));
-- }
-- m_details.insert(QStringLiteral("Issuer"), QVariant(issuer));
--
-- QVariantMap subject;
-- const QList<QPair<QString, QString>> &subjectDetails(cert.subjectList());
-- for (auto it = subjectDetails.cbegin(), end = subjectDetails.cend(); it != end; ++it) {
-- subject.insert(it->first, QVariant(it->second));
-- }
-- m_details.insert(QStringLiteral("Subject"), QVariant(subject));
--
-- QVariantMap publicKey;
-- const QList<QPair<QString, QString>> &keyDetails(cert.publicKeyList());
-- for (auto it = keyDetails.cbegin(), end = keyDetails.cend(); it != end; ++it) {
-- publicKey.insert(it->first, QVariant(it->second));
-- }
-- m_details.insert(QStringLiteral("SubjectPublicKeyInfo"), QVariant(publicKey));
--
-- QVariantMap extensions;
-- const QList<QPair<QString, QString>> &extensionDetails(cert.extensionList());
-- for (auto it = extensionDetails.cbegin(), end = extensionDetails.cend(); it != end; ++it) {
-- extensions.insert(it->first, QVariant(it->second));
-- }
-- m_details.insert(QStringLiteral("Extensions"), extensions);
--
-- QVariantMap signature;
-- const QList<QPair<QString, QString>> &signatureDetails(cert.signatureList());
-- for (auto it = signatureDetails.cbegin(), end = signatureDetails.cend(); it != end; ++it) {
-- signature.insert(it->first, QVariant(it->second));
-- }
-- m_details.insert(QStringLiteral("Signature"), signature);
--}
--
--CertificateModel::CertificateModel(QObject *parent)
-- : QAbstractListModel(parent)
-- , m_type(NoBundle)
--{
--}
--
--CertificateModel::~CertificateModel()
--{
--}
--
--CertificateModel::BundleType CertificateModel::bundleType() const
--{
-- return m_type;
--}
--
--void CertificateModel::setBundleType(BundleType type)
--{
-- if (m_type != type) {
-- m_type = type;
--
-- const QString path(::bundlePath(m_type));
-- if (!path.isNull())
-- setBundlePath(path);
--
-- emit bundleTypeChanged();
-- }
--}
--
--QString CertificateModel::bundlePath() const
--{
-- return m_path;
--}
--
--void CertificateModel::setBundlePath(const QString &path)
--{
-- if (m_path != path) {
-- m_path = path;
-- refresh();
--
-- const BundleType type(::bundleType(m_path));
-- setBundleType(type);
--
-- emit bundlePathChanged();
-- }
--}
--
--int CertificateModel::rowCount(const QModelIndex & parent) const
--{
-- Q_UNUSED(parent)
-- return m_certificates.count();
--}
--
--QVariant CertificateModel::data(const QModelIndex &index, int role) const
--{
-- int row = index.row();
-- if (row < 0 || row >= m_certificates.count()) {
-- return QVariant();
-- }
--
-- const Certificate &cert = m_certificates.at(row);
-- switch (role) {
-- case CommonNameRole:
-- return cert.commonName();
-- case CountryNameRole:
-- return cert.countryName();
-- case OrganizationNameRole:
-- return cert.organizationName();
-- case OrganizationalUnitNameRole:
-- return cert.organizationalUnitName();
-- case PrimaryNameRole:
-- return cert.primaryName();
-- case SecondaryNameRole:
-- return cert.secondaryName();
-- case NotValidBeforeRole:
-- return cert.notValidBefore();
-- case NotValidAfterRole:
-- return cert.notValidAfter();
-- case DetailsRole:
-- return cert.details();
-- default:
-- break;
-- }
--
-- return QVariant();
--}
--
--QHash<int, QByteArray> CertificateModel::roleNames() const
--{
-- QHash<int, QByteArray> roles;
--
-- roles[CommonNameRole] = "commonName";
-- roles[CountryNameRole] = "countryName";
-- roles[OrganizationNameRole] = "organizationName";
-- roles[OrganizationalUnitNameRole] = "organizationalUnitName";
-- roles[PrimaryNameRole] = "primaryName";
-- roles[SecondaryNameRole] = "secondaryName";
-- roles[NotValidBeforeRole] = "notValidBefore";
-- roles[NotValidAfterRole] = "notValidAfter";
-- roles[DetailsRole] = "details";
--
-- return roles;
--}
--void CertificateModel::refresh()
--{
-- beginResetModel();
-- if (m_path.isEmpty()) {
-- m_certificates.clear();
-- } else {
-- m_certificates = getCertificates(m_path);
-- std::stable_sort(m_certificates.begin(), m_certificates.end(), [](const Certificate &lhs, const Certificate &rhs) {
-- int c = lhs.primaryName().compare(rhs.primaryName(), Qt::CaseInsensitive);
-- if (c < 0)
-- return true;
-- if (c > 0)
-- return false;
-- c = lhs.secondaryName().compare(rhs.secondaryName(), Qt::CaseInsensitive);
-- if (c < 0)
-- return true;
-- return false;
-- });
-- }
-- endResetModel();
--}
--
--QList<Certificate> CertificateModel::getCertificates(const QString &bundlePath)
--{
-- return LibCrypto::getCertificates(bundlePath);
--}
--
--QList<Certificate> CertificateModel::getCertificates(const QByteArray &pem)
--{
-- return LibCrypto::getCertificates(pem);
--}
-diff --git a/src/certificatemodel.h b/src/certificatemodel.h
-deleted file mode 100644
-index 8573ac4..0000000
---- a/src/certificatemodel.h
-+++ /dev/null
-@@ -1,139 +0,0 @@
--/*
-- * Copyright (c) 2016 - 2019 Jolla Ltd.
-- * Copyright (c) 2019 Open Mobile Platform LLC.
-- *
-- * You may use this file under the terms of the BSD license as follows:
-- *
-- * "Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions are
-- * met:
-- * * Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * * Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in
-- * the documentation and/or other materials provided with the
-- * distribution.
-- * * Neither the name of Nemo Mobile 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 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."
-- */
--
--#ifndef CERTIFICATEMODEL_H
--#define CERTIFICATEMODEL_H
--
--#include <QAbstractListModel>
--#include <QDateTime>
--#include <QList>
--#include <QVariantMap>
--
--#include "systemsettingsglobal.h"
--
--
--struct X509Certificate;
--
--class SYSTEMSETTINGS_EXPORT Certificate
--{
--public:
-- Certificate(const X509Certificate &cert);
--
-- QString commonName() const { return m_commonName; }
-- QString countryName() const { return m_countryName; }
-- QString organizationName() const { return m_organizationName; }
-- QString organizationalUnitName() const { return m_organizationalUnitName; }
-- QString primaryName() const { return m_primaryName; }
-- QString secondaryName() const { return m_secondaryName; }
--
-- QDateTime notValidBefore() const { return m_notValidBefore; }
-- QDateTime notValidAfter() const { return m_notValidAfter; }
--
-- QVariantMap details() const { return m_details; }
--
-- QString issuerDisplayName() const { return m_issuerDisplayName; }
--
--private:
-- QString m_commonName;
-- QString m_countryName;
-- QString m_organizationName;
-- QString m_organizationalUnitName;
-- QString m_primaryName;
-- QString m_secondaryName;
--
-- QDateTime m_notValidBefore;
-- QDateTime m_notValidAfter;
--
-- QString m_issuerDisplayName;
--
-- QVariantMap m_details;
--};
--
--class SYSTEMSETTINGS_EXPORT CertificateModel: public QAbstractListModel
--{
-- Q_OBJECT
-- Q_PROPERTY(BundleType bundleType READ bundleType WRITE setBundleType NOTIFY bundleTypeChanged)
-- Q_PROPERTY(QString bundlePath READ bundlePath WRITE setBundlePath NOTIFY bundlePathChanged)
-- Q_ENUMS(BundleType)
--
--public:
-- enum BundleType {
-- NoBundle,
-- TLSBundle,
-- EmailBundle,
-- ObjectSigningBundle,
-- UserSpecifiedBundle,
-- };
--
-- enum CertificateRoles {
-- CommonNameRole = Qt::UserRole + 1,
-- CountryNameRole = Qt::UserRole + 2,
-- OrganizationNameRole = Qt::UserRole + 3,
-- OrganizationalUnitNameRole = Qt::UserRole + 4,
-- PrimaryNameRole = Qt::UserRole + 5,
-- SecondaryNameRole = Qt::UserRole + 6,
-- NotValidBeforeRole = Qt::UserRole + 7,
-- NotValidAfterRole = Qt::UserRole + 8,
-- DetailsRole = Qt::UserRole + 9,
-- };
--
-- explicit CertificateModel(QObject *parent = 0);
-- virtual ~CertificateModel();
--
-- BundleType bundleType() const;
-- void setBundleType(BundleType type);
--
-- QString bundlePath() const;
-- void setBundlePath(const QString &path);
--
-- virtual int rowCount(const QModelIndex & parent = QModelIndex()) const;
-- virtual QVariant data(const QModelIndex &index, int role) const;
--
-- static QList<Certificate> getCertificates(const QString &bundlePath);
-- static QList<Certificate> getCertificates(const QByteArray &pem);
--
--Q_SIGNALS:
-- void bundleTypeChanged();
-- void bundlePathChanged();
--
--protected:
-- void refresh();
--
-- QHash<int, QByteArray> roleNames() const;
--
--private:
-- BundleType m_type;
-- QString m_path;
-- QList<Certificate> m_certificates;
--};
--
--#endif
-diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp
-index b7db9ae..b06f37a 100644
---- a/src/plugin/plugin.cpp
-+++ b/src/plugin/plugin.cpp
-@@ -46,7 +46,6 @@
- #include "batterystatus.h"
- #include "diskusage.h"
- #include "partitionmodel.h"
--#include "certificatemodel.h"
- #include "settingsvpnmodel.h"
- #include "locationsettings.h"
- #include "deviceinfo.h"
-@@ -103,7 +102,6 @@ public:
- qmlRegisterType<AboutSettings>(uri, 1, 0, "AboutSettings");
- qmlRegisterType<PartitionModel>(uri, 1, 0, "PartitionModel");
- qRegisterMetaType<Partition>("Partition");
-- qmlRegisterType<CertificateModel>(uri, 1, 0, "CertificateModel");
- qmlRegisterSingletonType<SettingsVpnModel>(uri, 1, 0, "SettingsVpnModel", api_factory<SettingsVpnModel>);
- qmlRegisterType<BatteryStatus>(uri, 1, 0, "BatteryStatus");
- qmlRegisterType<DiskUsage>(uri, 1, 0, "DiskUsage");
-diff --git a/src/src.pro b/src/src.pro
-index 57f59b4..e5b7d37 100644
---- a/src/src.pro
-+++ b/src/src.pro
-@@ -21,8 +21,7 @@ SOURCES += \
- alarmtonemodel.cpp \
- mceiface.cpp \
- displaysettings.cpp \
-- aboutsettings.cpp \
-- certificatemodel.cpp \
-+ aboutsettings.cpp \
- batterystatus.cpp \
- diskusage.cpp \
- diskusage_impl.cpp \
-@@ -48,7 +47,6 @@ PUBLIC_HEADERS = \
- mceiface.h \
- displaysettings.h \
- aboutsettings.h \
-- certificatemodel.h \
- settingsvpnmodel.h \
- batterystatus.h \
- udisks2block_p.h \
diff --git a/testing/nemo-qml-plugin-systemsettings/APKBUILD b/testing/nemo-qml-plugin-systemsettings/APKBUILD
deleted file mode 100644
index 522734085f3..00000000000
--- a/testing/nemo-qml-plugin-systemsettings/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nemo-qml-plugin-systemsettings
-pkgver=0.5.47
-pkgrel=0
-pkgdesc="Nemo QML systemsettings plugin"
-url="https://git.sailfishos.org/mer-core/nemo-qml-plugin-systemsettings"
-arch="all !armhf" # missing dependencies
-license="BSD-3-Clause"
-depends_dev="qt5-qtdeclarative-dev qt5-qtsystems-dev sailfish-access-control profiled-dev mlite-dev mce-dev timed-dev ssu-sysinfo-dev nemo-qml-plugin-dbus-dev user-managerd-dev libusb-moded-qt-dev"
-makedepends="$depends_dev qt5-qtbase-dev qt5-qttools-dev qtchooser libconnman-qt-dev libsailfishkeyprovider-dev nemo-qml-plugin-models-dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/nemo-qml-plugin-systemsettings/-/archive/$pkgver/nemo-qml-plugin-systemsettings-$pkgver.tar.gz
- 0001-Remove-developer-mode.patch
- 0002-Remove-broken-certificatemodel.patch
- "
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="3214f8acd1ecda421c03355e7c53265a7e9f4544354ed84f4f4b5f60484b958aedc551b22fdbe0b8e532eb038406fe3328f4148d480eda8bdbc9d3b1e188e1c1 nemo-qml-plugin-systemsettings-0.5.47.tar.gz
-f0b06a9634dcf81f31b8dcb17be70e9c0a7a8615aa7c4b8625c24db525c7e333ef372987db74e4356f36cabb9d8e9142e90390df5731f09e592a362cb26c1aa5 0001-Remove-developer-mode.patch
-b49f239c9dc7c3e52e5f62e5cc13359ae4a92d289d22906b9ca02a33e6b032d8682692b25a0f5f6163b167d643f318537854b4c9e08b185a423d40f76643c5c5 0002-Remove-broken-certificatemodel.patch"
diff --git a/testing/neomutt/APKBUILD b/testing/neomutt/APKBUILD
deleted file mode 100644
index c15abc81722..00000000000
--- a/testing/neomutt/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=neomutt
-pkgver=20180716
-pkgrel=3
-pkgdesc="Mutt with miscellaneous fixes and feature patches"
-url="https://neomutt.org/"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="cyrus-sasl-dev gdbm-dev gettext-dev gpgme-dev libidn-dev
- ncurses-dev openssl-dev notmuch-dev bsd-compat-headers libxslt tcl
- docbook-xsl perl w3m"
-subpackages="$pkgname-doc $pkgname-lang"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgname-$pkgver"
-
-build() {
- ./configure \
- --notmuch \
- --gpgme \
- --gdbm \
- --ssl \
- --sasl
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm644 contrib/gpg.rc \
- "$pkgdir"/usr/share/doc/$pkgname/examples/Muttrc.gpg
-}
-
-sha512sums="ee4093217cc1409262b96ab33ed78a38f5c6a72f62fcd7b25027f9373687ce67af8a4e1793b1d7d843bee5b4a7e0c69b30b3badf88a4e1a8fadd8b21441faaae neomutt-20180716.tar.gz"
diff --git a/testing/netcdf-fortran/APKBUILD b/testing/netcdf-fortran/APKBUILD
deleted file mode 100644
index c059be22a5c..00000000000
--- a/testing/netcdf-fortran/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
-# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
-pkgname=netcdf-fortran
-pkgver=4.5.2
-pkgrel=1
-pkgdesc="NetCDF fortran bindings"
-url="https://www.unidata.ucar.edu/software/netcdf/"
-arch="all !armhf !armv7 !s390x !mips !mips64" # disabling on armhf and armv7 as netcdf is not available
-license="Apache-2.0"
-makedepends="
- cmake
- doxygen
- gfortran
- graphviz
- m4
- netcdf-dev
- "
-depends_dev="
- netcdf-dev
- "
-subpackages="
- $pkgname-doc
- $pkgname-dev
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/Unidata/netcdf-fortran/archive/v$pkgver.tar.gz"
-
-build() {
- ./configure \
- --prefix=/usr \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -rf $pkgdir/usr/include/CMakeFiles
-}
-
-check() {
- make check
-}
-sha512sums="d9f5463ee31dab62d5a1b2feb0c780c344978f179237cd23f92ea32a4b400910a66a9ac4e446be734166ecc7578ef25a7183b4444926a6f386d9a5e02d1cf4f6 netcdf-fortran-4.5.2.tar.gz"
diff --git a/testing/netdata/APKBUILD b/testing/netdata/APKBUILD
deleted file mode 100644
index 810ac688700..00000000000
--- a/testing/netdata/APKBUILD
+++ /dev/null
@@ -1,97 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=netdata
-pkgver=1.22.1
-pkgrel=0
-pkgdesc="Real-time performance monitoring"
-url="https://www.netdata.cloud/"
-license="GPL-3.0-or-later"
-arch="all"
-depends="bash"
-makedepends="zlib-dev e2fsprogs-dev linux-headers libcap-dev automake autoconf
- openssl-dev libuv-dev"
-pkgusers="netdata"
-pkggroups="netdata"
-subpackages="$pkgname-openrc $pkgname-nodejs::noarch $pkgname-python::noarch"
-install="$pkgname.pre-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/netdata/netdata/archive/v$pkgver.tar.gz
- $pkgname.initd"
-
-prepare() {
- default_prepare
- autoreconf -i
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --with-zlib \
- --with-math \
- --enable-https \
- --with-webdir=/usr/share/webapss/netdata \
- --with-user=netdata
- make
-}
-
-check() {
- msg "check"
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- chgrp -R $pkggroups "$pkgdir"/usr/share/webapss/netdata
- install -Dm755 $srcdir/$pkgname.initd \
- $pkgdir/etc/init.d/$pkgname
- install -Dm644 ./system/netdata.conf $pkgdir/etc/netdata/netdata.conf
-
- # cap needed for disk I/O utilization reporting
- setcap cap_dac_read_search,cap_sys_ptrace+ep \
- "$pkgdir"/usr/libexec/netdata/plugins.d/apps.plugin
-
- install -d -Dm0750 -o netdata -g netdata "$pkgdir"/var/log/netdata
- install -d -Dm0750 -o netdata -g netdata "$pkgdir"/var/cache/netdata
-}
-
-nodejs() {
- pkgdesc="$pkgdesc (nodejs support)"
- depends="$pkgname nodejs"
-
- mkdir -p "$subpkgdir"/etc/netdata
- mkdir -p "$subpkgdir"/usr/libexec/netdata/plugins.d
- mkdir -p "$subpkgdir"/usr/lib/netdata/conf.d
-
- mv $pkgdir/usr/libexec/netdata/node.d \
- $subpkgdir/usr/libexec/netdata
- mv $pkgdir/usr/libexec/netdata/plugins.d/node.d.plugin \
- $subpkgdir/usr/libexec/netdata/plugins.d
- mv $pkgdir/etc/netdata/node.d \
- $subpkgdir/etc/netdata/
- mv $pkgdir/usr/lib/netdata/conf.d/node.d.conf \
- $subpkgdir/usr/lib/netdata/conf.d
-}
-
-python() {
- pkgdesc="$pkgdesc (python3 support)"
- depends="$pkgname python3"
-
- mkdir -p "$subpkgdir"/etc/netdata
- mkdir -p "$subpkgdir"/usr/libexec/netdata/plugins.d
- mkdir -p "$subpkgdir"/usr/lib/netdata/conf.d
-
- mv $pkgdir/usr/libexec/netdata/python.d \
- "$subpkgdir"/usr/libexec/netdata
- mv $pkgdir/usr/libexec/netdata/plugins.d/python.d.plugin \
- "$subpkgdir"/usr/libexec/netdata/plugins.d
- mv $pkgdir/etc/netdata/python.d \
- $subpkgdir/etc/netdata/
- mv $pkgdir/usr/lib/netdata/conf.d/python.d \
- $subpkgdir/usr/lib/netdata/conf.d
- mv $pkgdir/usr/lib/netdata/conf.d/python.d.conf \
- $subpkgdir/usr/lib/netdata/conf.d
-}
-
-sha512sums="47a0b6c4c1b3d8ab18cf25725223c72683ed74084f0efd09cddbe293950839315f8fcadb16c2e5fa9a179745f20b08ce8652d4b972465eacc6a1792b4cfc296e netdata-1.22.1.tar.gz
-98dd8f188dfffe1221d05a4dd369e8f4f8dc2bf7a722ac8769afd351324b53b37c5675e705a4d42d20ce93ea9497fda9eb2457edaa500d4e72c9f1350b1d4652 netdata.initd"
diff --git a/testing/netdata/netdata.initd b/testing/netdata/netdata.initd
deleted file mode 100644
index fddd2a74b60..00000000000
--- a/testing/netdata/netdata.initd
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/sbin/openrc-run
-
-command=/usr/sbin/netdata
-pidfile=/run/netdata.pid
-command_args="-P ${pidfile}"
-name="netdata"
-description="Real-time performance monitoring"
-
-depend() {
- need net
- after apache2 squid nginx mysql named opensips hostapd postfix lm_sensors
-}
-
-start_pre() {
- checkpath --directory --owner netdata:netdata --mode 0750 /var/lib/netdata
- checkpath --directory --owner netdata:netdata --mode 0750 /var/log/netdata
- checkpath --directory --owner netdata:netdata --mode 0750 /var/cache/netdata
-}
diff --git a/testing/netdata/netdata.pre-install b/testing/netdata/netdata.pre-install
deleted file mode 100644
index 7bcb4821ae1..00000000000
--- a/testing/netdata/netdata.pre-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-addgroup -S netdata 2>/dev/null
-adduser -S -D -H -h /dev/null -s /sbin/nologin -G netdata -g netdata netdata 2>/dev/null
-addgroup netdata readproc 2>/dev/null
-exit 0
diff --git a/testing/netdisco/APKBUILD b/testing/netdisco/APKBUILD
deleted file mode 100644
index ffc37ea79bf..00000000000
--- a/testing/netdisco/APKBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=netdisco
-_pkgreal=App-Netdisco
-_pkgver=2.036012_003
-pkgver=${_pkgver/_/p}
-pkgrel=2
-pkgdesc="An open source web-based network management tool."
-url="https://metacpan.org/release/App-Netdisco/"
-arch="noarch !armv7 !mips !mips64"
-license="BSD"
-cpandepends="perl-dancer-plugin-passphrase perl-data-printer perl-plack perl-ldap
- perl-file-sharedir perl-starman perl-socket6 perl-json-xs perl-netaddr-mac
- perl-anyevent perl-uri perl-dancer-plugin-dbic perl-template-plugin-csv
- perl-try-tiny perl-snmp-info perl-list-moreutils perl-dbix-class
- perl-anyevent-dns-etchosts perl-daemon-control perl-file-slurper perl-moo
- perl-io-socket-ssl perl-role-tiny perl-algorithm-cron perl-sereal
- perl-template-plugin-number-format perl-json perl-dbix-class-helpers
- perl-dancer-plugin-auth-extensible perl-sql-translator perl-path-class
- perl-template-toolkit perl-url-encode perl-dancer perl-plack-middleware-reverseproxy
- perl-namespace-clean perl-cgi-expand perl-html-parser perl-net-dns
- perl-dancer-session-cookie perl-yaml-libyaml perl-netaddr-ip perl-aliased
- perl-guard perl-mce perl-plack-middleware-expires perl-dbd-pg"
-# perl-app-local-lib-helper perl-app-cpanminus
-cpanmakedepends=""
-cpancheckdepends="perl-env-path"
-depends="perl-term-ui perl-archive-extract $cpandepends"
-makedepends="perl-dev perl-module-build $cpanmakedepends"
-checkdepends="$cpancheckdepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/O/OL/OLIVER/$_pkgreal-$_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}')
- ./Build
-}
-
-package() {
- cd "$builddir"
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- cd "$builddir"
- ./Build test
-}
-
-sha512sums="4c0f5dcd6f6174f5531399f1bc6aafb3a650e4abe4ff97c39fdeb6ce982e7a7c95cd205e53f871b56aafa98a9cd4d5b6812aea8415e3ef5a2ca06c1f9576ae3f App-Netdisco-2.036012_003.tar.gz"
diff --git a/testing/netdiscover/APKBUILD b/testing/netdiscover/APKBUILD
new file mode 100644
index 00000000000..70ebee3d83a
--- /dev/null
+++ b/testing/netdiscover/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Faustin Lammler <faustin@fala.red>
+# Maintainer: Faustin Lammler <faustin@fala.red>
+pkgname=netdiscover
+pkgver=0.10
+pkgrel=0
+pkgdesc="Active/passive ARP reconnaissance tool"
+url="https://github.com/netdiscover-scanner/netdiscover"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ autoconf
+ automake
+ libpcap-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/netdiscover-scanner/netdiscover/archive/$pkgver.tar.gz"
+options="!check" # no proper testsuite
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ # Running update-oui-database.sh would probably make the build irreproducible
+ # ./update-oui-database.sh
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+a04a3ecb9cb76f22edc761b1a661e6e0f5c620763ca5a059923ce2d080e0d15bc0e0861ae354efc28ba2cea09b642128d8ee022106402f82041180c22e8becc9 netdiscover-0.10.tar.gz
+"
diff --git a/testing/netpbm/01-makefile.patch b/testing/netpbm/01-makefile.patch
deleted file mode 100644
index 9658a5bd10a..00000000000
--- a/testing/netpbm/01-makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/GNUmakefile.orig
-+++ b/GNUmakefile
-@@ -252,7 +252,7 @@
- echo " make package pkgdir=/tmp/newnetpbm "; \
- false; \
- fi
-- mkdir $(PKGDIR)
-+ mkdir -p $(PKGDIR)
- echo "Netpbm install package made by 'make package'" \
- >$(PKGDIR)/pkginfo
- date >>$(PKGDIR)/pkginfo
diff --git a/testing/netpbm/02-installnetpbm.patch b/testing/netpbm/02-installnetpbm.patch
deleted file mode 100644
index 23637eea5f7..00000000000
--- a/testing/netpbm/02-installnetpbm.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Author: Tom Parker-Shemilt <palfrey@tevp.net>
-Summary: Enables non-interactive builds
-
-installnetpbm.pl defaults to wanting keyboard interactivity, which we don't want!
-----
---- a/buildtools/installnetpbm.pl.orig
-+++ b/buildtools/installnetpbm.pl
-@@ -186,2 +186,3 @@
- my $default = "$prefix/bin";
-+ return $default;
-
-@@ -244,2 +245,3 @@
- my $default = "$prefix/lib";
-+ return $default;
-
-@@ -508,2 +510,3 @@
-
-+ return;
- my $done;
-@@ -575,2 +578,3 @@
- my $default = "$prefix/lib";
-+ return $default;
-
-@@ -638,2 +642,3 @@
- my $default = "$prefix/lib";
-+ return $default;
-
-@@ -675,2 +680,3 @@
- my $default = "$prefix/include";
-+ return $default;
-
-@@ -769,2 +775,3 @@
- my $default = "$prefix/man";
-+ return "$prefix/share/man";
-
-@@ -810,2 +817,3 @@
- sub tryToCreateManwebConf($) {
-+ return;
-
-@@ -1103,2 +1111,3 @@
- my $default = "$prefix/lib/pkgconfig";
-+ return $default;
-
-@@ -1184,5 +1193,5 @@
-
--my $pkgdir = getPkgdir();
-+my $pkgdir = $ENV{'BUILDDIR'} . "/pkgdir";
-
--my $prefix = getPrefix();
-+my $prefix = $ENV{'PKGDIR'} . "/usr";
-
diff --git a/testing/netpbm/APKBUILD b/testing/netpbm/APKBUILD
deleted file mode 100644
index 045a8e878ce..00000000000
--- a/testing/netpbm/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Tom Parker-Shemilt <palfrey@tevp.net>
-# Maintainer: Tom Parker-Shemilt <palfrey@tevp.net>
-pkgname=netpbm
-pkgver=10.73.30
-pkgrel=0
-pkgdesc="A toolkit for manipulation of graphic images"
-url="http://netpbm.sourceforge.net/"
-arch="all"
-license="IJG AND BSD-3-Clause AND GPL-2.0-only"
-depends="libpng libjpeg-turbo tiff zlib"
-makedepends="perl libpng-dev libjpeg-turbo-dev tiff-dev zlib-dev libx11-dev sed flex"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="http://downloads.sourceforge.net/netpbm/super_stable/netpbm-$pkgver.tgz
- config.mk
- 01-makefile.patch
- 02-installnetpbm.patch
- "
-
-build() {
- cat config.mk.in "$srcdir"/config.mk > config.mk
- make
- make package pkgdir="$(pwd)/pkgdir"
-}
-
-package() {
- mkdir -p $pkgdir/usr/bin/ \
- $pkgdir/usr/share/man/man1 \
- $pkgdir/usr/share/man/man3 \
- $pkgdir/usr/share/man/man5 \
- $pkgdir/usr/share/man/web \
- $pkgdir/usr/lib/pkgconfig
- BUILDDIR="$builddir" PKGDIR="$pkgdir" ./installnetpbm
- install -Dm644 $builddir/doc/copyright_summary "$pkgdir"/usr/share/licenses/$pkgname/COPYING
- sed -i "s,$pkgdir,,g" "$pkgdir/usr/lib/pkgconfig/netpbm.pc"
- sed -i "s/Version: Netpbm $pkgver/Version: $pkgver/" "$pkgdir/usr/lib/pkgconfig/netpbm.pc"
-}
-
-sha512sums="a04dc530df98cd1265b6fe9ecb8e37613bea55a89a20d47f7fb52a8c7a1e733650f53f320a807cd785ff170b320c03fbabf6e29b7a274d4d5f73281f45cf23bc netpbm-10.73.30.tgz
-07e87947e71fe5831ffb7740df051b66eacef45892f6c28e337882a28b47b87ab15252cf2ae51c3208fb80523539ad7996136d09f436f32c2dc2bd4be24549d0 config.mk
-85d78938cf825fdca5c43a40ab25a147ae42e7b78f61ffb73082b64edb3a7127d2197971b9bdbf1011ef8ba20a55acce84b5dc8fba43b603f8faa33abeb761bb 01-makefile.patch
-e863fba8eec7551179eb96246abd9e3af1bfacf5dbb029a9a2c4d4af00bc6fc6d12e484d422f50d5890993c101b9f060b30c5ca753c4c7ae8577a219649b9dad 02-installnetpbm.patch"
diff --git a/testing/netpbm/config.mk b/testing/netpbm/config.mk
deleted file mode 100644
index 51ab18f7c8a..00000000000
--- a/testing/netpbm/config.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFAULT_TARGET = nonmerge
-NETPBMLIBTYPE = unixshared
-NETPBMLIBSUFFIX = so
-STATICLIB_TOO = Y
-LDRELOC = ld --reloc
-LINKER_CAN_DO_EXPLICIT_LIBRARY = Y
-LINKERISCOMPILER = Y
-CFLAGS_SHLIB += -fPIC
-TIFFLIB = -ltiff
-JPEGLIB = -ljpeg
-PNGLIB = -lpng
-ZLIB = -lz
-X11LIB = -lX11
-NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/ \ No newline at end of file
diff --git a/testing/netsed/APKBUILD b/testing/netsed/APKBUILD
index 7149bba7c77..23a27f2517e 100644
--- a/testing/netsed/APKBUILD
+++ b/testing/netsed/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=netsed
pkgver=1.3
-pkgrel=2
+pkgrel=3
pkgdesc="The network packet stream editor"
url="http://silicone.homelinux.org/projects/netsed/"
arch="all"
diff --git a/testing/netsurf/APKBUILD b/testing/netsurf/APKBUILD
index 00e3e77a057..71d5046c7a9 100644
--- a/testing/netsurf/APKBUILD
+++ b/testing/netsurf/APKBUILD
@@ -1,22 +1,31 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Contributor: Miles Alan <m@milesalan.com>
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=netsurf
-pkgver=3.10
+pkgver=3.11
pkgrel=0
-pkgdesc="NetSurf is a free, open source web browser."
+pkgdesc="free, open source web browser"
url="http://www.netsurf-browser.org"
-arch="all !s390x !mips !mips64" # librsvg
-license="GPL-2.0"
+arch="all"
+license="GPL-2.0-or-later"
makedepends="curl-dev openssl-dev doxygen flex bison libwebp-dev lcms2-dev
- libmng-dev gperf libglade-dev gtk+3.0-dev libcurl libpng-dev libidn-dev
- check-dev libharu-dev librsvg-dev libjpeg-turbo-dev vim"
-subpackages="$pkgname-doc"
+ libmng-dev gperf gtk+3.0-dev libcurl libpng-dev libidn-dev
+ check-dev libharu-dev librsvg-dev libjpeg-turbo-dev vim
+ perl perl-html-parser sdl12-compat-dev expat-dev"
+subpackages="
+ $pkgname-doc
+ $pkgname-framebuffer
+ $pkgname-framebuffer-doc
+"
source="http://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-all-$pkgver.tar.gz
- netsurf"
+ netsurf
+ non-coreutils-install-compatibility.patch"
builddir="$srcdir"/$pkgname-all-$pkgver
+export CFLAGS="$CFLAGS -fcommon"
+
prepare() {
default_prepare
sed 's:-Werror::' -i "$builddir"/libsvgtiny/Makefile
@@ -28,6 +37,12 @@ build() {
LIBDIR=lib \
INCLUDEDIR=include \
PREFIX=/usr
+
+ make \
+ TARGET=framebuffer \
+ LIBDIR=lib \
+ INCLUDEDIR=include \
+ PREFIX=/usr
}
package() {
@@ -40,7 +55,6 @@ package() {
install
install -Dm755 "$srcdir/netsurf" "$pkgdir/usr/bin/$pkgname"
-
install -Dm644 netsurf/docs/netsurf-gtk.1 -t "$pkgdir"/usr/share/man/man1
# Icon
@@ -58,5 +72,24 @@ package() {
-i "$pkgdir"/usr/share/applications/netsurf.desktop
}
-sha512sums="fc4c300eef07c540a7e07f8034db25b7e5fb731b5956029af2220f8638802aa38c055ad54b5683c14501aef9c22fb781b96613c16ae9a6996c3833ceede6f9bf netsurf-all-3.10.tar.gz
-4f6868f377abb1fbade92088bee9a319952c4cee82821ca5b3f892484e0d111f33045c8583f3d069e48af6f3f2fcad43c364daa0f5457b3b013542793ac10fcf netsurf"
+framebuffer() {
+ pkgdesc="$pkgdesc (framebuffer)"
+
+ cd "$builddir"
+ make \
+ TARGET=framebuffer \
+ LIBDIR=lib \
+ INCLUDEDIR=include \
+ PREFIX=/usr \
+ DESTDIR="$subpkgdir" \
+ install
+
+ install -Dm755 netsurf/nsfb "$subpkgdir/usr/bin/netsurf-framebuffer"
+ install -Dm644 netsurf/docs/netsurf-fb.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+f931687e08976ca336762587cc1ac75e45518be62b19d1d31aac3063b92b9666f8a022ff3a183e80c89404ba8ff33458b26521130e96943043085a42291ee283 netsurf-all-3.11.tar.gz
+4f6868f377abb1fbade92088bee9a319952c4cee82821ca5b3f892484e0d111f33045c8583f3d069e48af6f3f2fcad43c364daa0f5457b3b013542793ac10fcf netsurf
+528a0d085afcf089789fc2e2aafa27e48c71f9eba1eeed65ba293ccb9c60187193d8e36337ff56b9de8221821d6cb2a4146e175edb383f7a6ef660771c8a1e28 non-coreutils-install-compatibility.patch
+"
diff --git a/testing/netsurf/non-coreutils-install-compatibility.patch b/testing/netsurf/non-coreutils-install-compatibility.patch
new file mode 100644
index 00000000000..de5374db041
--- /dev/null
+++ b/testing/netsurf/non-coreutils-install-compatibility.patch
@@ -0,0 +1,27 @@
+Alpine / busybox's install doesn't have coreutils' -T option.
+
+--- a/netsurf/frontends/framebuffer/Makefile
++++ b/netsurf/frontends/framebuffer/Makefile
+@@ -200,10 +200,10 @@ NETSURF_FRAMEBUFFER_RESOURCE_LIST := adblock.css credits.html \
+ install-framebuffer:
+ $(VQ)echo " INSTALL: $(DESTDIR)/$(PREFIX)"
+ $(Q)$(INSTALL) -d $(DESTDIR)/$(NETSURF_FRAMEBUFFER_BIN)
+- $(Q)$(INSTALL) -T $(EXETARGET) $(DESTDIR)/$(NETSURF_FRAMEBUFFER_BIN)/netsurf-fb
++ $(Q)$(INSTALL) $(EXETARGET) $(DESTDIR)/$(NETSURF_FRAMEBUFFER_BIN)/netsurf-fb
+ $(Q)$(INSTALL) -d $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES)
+ $(Q)for F in $(NETSURF_FRAMEBUFFER_RESOURCE_LIST); do $(INSTALL) -m 644 $(FRONTEND_RESOURCES_DIR)/$$F $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES); done
+- $(Q)$(INSTALL) -m 644 -T $(MESSAGES_TARGET)/en/Messages $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES)/Messages
++ $(Q)$(INSTALL) -m 644 $(MESSAGES_TARGET)/en/Messages $(DESTDIR)/$(NETSURF_FRAMEBUFFER_RESOURCES)/Messages
+
+ # ----------------------------------------------------------------------------
+ # Package target
+--- a/buildsystem/makefiles/Makefile.tools
++++ b/buildsystem/makefiles/Makefile.tools
+@@ -285,7 +285,7 @@ GENHTML ?= genhtml
+
+ BUILD_CXX ?= c++
+
+-INSTALL ?= install -C
++INSTALL ?= install
+
+ LCOV ?= lcov
diff --git a/testing/newlib-stage1/APKBUILD b/testing/newlib-stage1/APKBUILD
deleted file mode 100644
index 5167ae73568..00000000000
--- a/testing/newlib-stage1/APKBUILD
+++ /dev/null
@@ -1,144 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-
-_pkgbase=newlib
-_targets="
- arm-none-eabi
- mips-mti-elf
- msp430-elf
- "
-pkgname="$_pkgbase-stage1"
-pkgver="3.1.0"
-pkgrel=0
-pkgdesc="A C standard library implementation intended for use on embedded systems"
-url="http://www.sourceware.org/newlib/"
-makedepends="texinfo"
-arch="all"
-license="BSD"
-source="
- ftp://sourceware.org/pub/$_pkgbase/$_pkgbase-$pkgver.tar.gz
- "
-options="!check"
-
-for target in $_targets; do
- targetnorm="${target//-/_}"
- subpackages="$_pkgbase-$target-stage1:$targetnorm $subpackages"
- makedepends="binutils-$target gcc-$target-stage1 $makedepends"
-done
-
-builddir="$srcdir/$_pkgbase-$pkgver"
-
-# This package installes two version of the newlib library to remain compatible
-# with projects expecting the GNU ARM Embedded Toolchain [1]. The nano version
-# appends the postix "_nano" to the libaries. The is not an arbitrary choice,
-# it matches the specs in "/usr/arm-none-eabi/lib/nano.specs", which is
-# part of the default newlib installation.
-# [1]: https://launchpad.net/gcc-arm-embedded/
-
-build() {
- for target in $_targets; do
- mkdir "$builddir/build-$target" "$builddir/build-$target-nano"
- # nano version
- cd "$builddir/build-$target-nano"
- "$builddir"/configure \
- --target=$target \
- --prefix=/usr/ \
- --infodir=/deleteme/info \
- --mandir=/deleteme/man \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --disable-newlib-supplied-syscalls \
- --disable-nls \
- --disable-newlib-fseek-optimization \
- --disable-newlib-fvwrite-in-streamio \
- --disable-newlib-unbuf-stream-opt \
- --disable-newlib-wide-orient \
- --enable-lite-exit \
- --enable-newlib-global-atexit \
- --enable-newlib-nano-formatted-io \
- --enable-newlib-nano-malloc \
- --enable-newlib-reent-small \
- CC_FOR_TARGET="$target"-gcc \
- GCC_FOR_TARGET="$target"-gcc \
- AR_FOR_TARGET="$target"-ar \
- AS_FOR_TARGET="$target"-as \
- LD_FOR_TARGET="$target"-ld \
- NM_FOR_TARGET="$target"-nm \
- OBJDUMP_FOR_TARGET="$target"-objdump \
- RANLIB_FOR_TARGET="$target"-ranlib \
- READELF_FOR_TARGET="$target"-readelf \
- STRIP_FOR_TARGET="$target"-strip \
- CFLAGS="-Os -ffunction-sections -fdata-sections -fshort-wchar"
- make
-
- # regular version
- cd "$builddir/build-$target"
- "$builddir"/configure \
- --host=$CHOST \
- --target=$target \
- --prefix=/usr \
- --infodir=/deleteme/info \
- --mandir=/deleteme/man \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --disable-newlib-supplied-syscalls \
- --disable-nls \
- --enable-newlib-io-long-long \
- --enable-newlib-register-fini \
- CC_FOR_TARGET="$target"-gcc \
- GCC_FOR_TARGET="$target"-gcc \
- AR_FOR_TARGET="$target"-ar \
- AS_FOR_TARGET="$target"-as \
- LD_FOR_TARGET="$target"-ld \
- NM_FOR_TARGET="$target"-nm \
- OBJDUMP_FOR_TARGET="$target"-objdump \
- RANLIB_FOR_TARGET="$target"-ranlib \
- READELF_FOR_TARGET="$target"-readelf \
- STRIP_FOR_TARGET="$target"-strip \
- CFLAGS="-O2 -ffunction-sections -fdata-sections -pipe"
- make
- done
-}
-
-package() {
- for target in $_targets; do
- depends="$depends $_pkgbase-$target"
- done
- mkdir -p "$pkgdir"
-}
-
-_install_subpkg() {
- pkgdesc="A C standard library implementation intended for $target"
- target="${subpkgname#$_pkgbase-}"
- target="${target%-stage1}"
- mkdir -p "$subpkgdir"
- # install nano version
- cd "$builddir/build-$target-nano"
- make -j1 DESTDIR="$subpkgdir" install
- # rename nano version libs
- cd "$subpkgdir/usr/$target/lib"
- for file in $(find . -regex ".*\(c\|g\|rdimon\)\.a"); do
- mv "$file" "${file%.a}_nano.a"
- done
- mkdir -p "$subpkgdir/usr/$target/include/nano"
- mv "$subpkgdir/usr/$target/include/newlib.h" \
- "$subpkgdir/usr/$target/include/nano/"
-
- # install regular version
- cd "$builddir/build-$target"
- make -j1 DESTDIR="$subpkgdir" install
- rm -rf "$subpkgdir/deleteme"
-}
-
-arm_none_eabi() {
- _install_subpkg
-}
-
-mips_mti_elf() {
- _install_subpkg
-}
-
-msp430_elf() {
- _install_subpkg
-}
-
-sha512sums="efc4c3ab7153387780d141386bca5d3e20c9d25ae3e6b87cf94c8df9d301ce5926dacdff9bd33aeb9781559d933c3d0ae77f4e5b46120d90792f75dbfde702c7 newlib-3.1.0.tar.gz"
diff --git a/testing/newlib/APKBUILD b/testing/newlib/APKBUILD
deleted file mode 100644
index 58ab8fa7697..00000000000
--- a/testing/newlib/APKBUILD
+++ /dev/null
@@ -1,144 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-
-_pkgbase=newlib
-_targets="
- mips-mti-elf
- msp430-elf
- arm-none-eabi
- "
-pkgname="$_pkgbase"
-pkgver="3.0.0.20180831"
-pkgrel=1
-pkgdesc="A C standard library implementation intended for use on embedded systems"
-url="http://www.sourceware.org/newlib/"
-makedepends="texinfo"
-arch="all !mips !mips64"
-license="BSD"
-source="
- ftp://sourceware.org/pub/${_pkgbase}/${_pkgbase}-${pkgver}.tar.gz
- "
-options="!check"
-
-for target in $_targets; do
- targetnorm="${target//-/_}"
- subpackages="${_pkgbase}-${target}:${targetnorm} ${subpackages}"
- makedepends="binutils-${target} gcc-${target} ${makedepends}"
-done
-
-builddir="$srcdir/$_pkgbase-$pkgver"
-
-# This package installes two version of the newlib library to remain compatible
-# with projects expecting the GNU ARM Embedded Toolchain [1]. The nano version
-# appends the postix "_nano" to the libaries. The is not an arbitrary choice,
-# it matches the specs in "/usr/arm-none-eabi/lib/nano.specs", which is
-# part of the default newlib installation.
-# [1]: https://launchpad.net/gcc-arm-embedded/
-
-build() {
- for target in $_targets; do
- mkdir "${builddir}/build-$target" "${builddir}/build-$target-nano"
- # nano version
- cd "${builddir}/build-$target-nano"
- "$builddir"/configure \
- --target=$target \
- --prefix=/usr/ \
- --infodir=/deleteme/info \
- --mandir=/deleteme/man \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --disable-newlib-supplied-syscalls \
- --disable-nls \
- --disable-newlib-fseek-optimization \
- --disable-newlib-fvwrite-in-streamio \
- --disable-newlib-unbuf-stream-opt \
- --disable-newlib-wide-orient \
- --enable-lite-exit \
- --enable-newlib-global-atexit \
- --enable-newlib-nano-formatted-io \
- --enable-newlib-nano-malloc \
- --enable-newlib-reent-small \
- CC_FOR_TARGET="$target"-gcc \
- GCC_FOR_TARGET="$target"-gcc \
- AR_FOR_TARGET="$target"-ar \
- AS_FOR_TARGET="$target"-as \
- LD_FOR_TARGET="$target"-ld \
- NM_FOR_TARGET="$target"-nm \
- OBJDUMP_FOR_TARGET="$target"-objdump \
- RANLIB_FOR_TARGET="$target"-ranlib \
- READELF_FOR_TARGET="$target"-readelf \
- STRIP_FOR_TARGET="$target"-strip \
- CFLAGS="-Os -ffunction-sections -fdata-sections -fshort-wchar"
- make
-
- # regular version
- cd "${builddir}/build-$target"
- "$builddir"/configure \
- --host=$CHOST \
- --target=$target \
- --prefix=/usr \
- --infodir=/deleteme/info \
- --mandir=/deleteme/man \
- --htmldir=/deleteme/html \
- --pdfdir=/deleteme/pdf \
- --disable-newlib-supplied-syscalls \
- --disable-nls \
- --enable-newlib-io-long-long \
- --enable-newlib-register-fini \
- CC_FOR_TARGET="$target"-gcc \
- GCC_FOR_TARGET="$target"-gcc \
- AR_FOR_TARGET="$target"-ar \
- AS_FOR_TARGET="$target"-as \
- LD_FOR_TARGET="$target"-ld \
- NM_FOR_TARGET="$target"-nm \
- OBJDUMP_FOR_TARGET="$target"-objdump \
- RANLIB_FOR_TARGET="$target"-ranlib \
- READELF_FOR_TARGET="$target"-readelf \
- STRIP_FOR_TARGET="$target"-strip \
- CFLAGS="-O2 -ffunction-sections -fdata-sections -pipe"
- make
- done
-}
-
-package() {
- for target in $_targets; do
- depends="$depends $_pkgbase-$target"
- done
- mkdir -p "$pkgdir"
-}
-
-_install_subpkg() {
- pkgdesc="A C standard library implementation intended for ${target}"
- target="${subpkgname#$_pkgbase-}"
- depends="binutils-${target} gcc-${target} ${depends}"
- mkdir -p "$subpkgdir"
- # install nano version
- cd "${builddir}/build-${target}-nano"
- make -j1 DESTDIR="$subpkgdir" install
- # rename nano version libs
- cd "${subpkgdir}/usr/$target/lib"
- for file in $(find . -regex ".*\(c\|g\|rdimon\)\.a"); do
- mv "$file" "${file%.a}_nano.a"
- done
- mkdir -p "${subpkgdir}/usr/$target/include/nano"
- mv "${subpkgdir}/usr/$target/include/newlib.h" \
- "${subpkgdir}/usr/$target/include/nano/"
-
- # install regular version
- cd "${builddir}/build-${target}"
- make -j1 DESTDIR="$subpkgdir" install
- rm -rf "${subpkgdir}/deleteme"
-}
-
-arm_none_eabi() {
- _install_subpkg
-}
-
-mips_mti_elf() {
- _install_subpkg
-}
-
-msp430_elf() {
- _install_subpkg
-}
-
-sha512sums="c195111ac61458fccbd700345cd8ed7806776b3d16557e9a86fbcdf0ff5f544bff7eb701e84defb3f6b4d6fc00674163fa89aead1b171ed3281470a4f6306d1f newlib-3.0.0.20180831.tar.gz"
diff --git a/testing/newsyslog/10-compat.patch b/testing/newsyslog/10-compat.patch
new file mode 100644
index 00000000000..f954ffe2ce2
--- /dev/null
+++ b/testing/newsyslog/10-compat.patch
@@ -0,0 +1,80 @@
+Author: Vlad Glagolev <scm@vaygr.net>
+URL: based on https://bugs.gentoo.org/707452
+Summary: fixes build with recent compilers, modern sort(1), musl
+diff --git a/mksigname.sh b/mksigname.sh
+index 164f5b8..bdb918b 100644
+--- a/mksigname.sh
++++ b/mksigname.sh
+@@ -40,7 +40,7 @@ fi
+ trap 'rc=$?; rm -f $tmpin $tmpout; trap 0; exit $rc' $trapsigs
+
+ CC="${CC:-cc}"
+-CPP="${CPP:-${CC} -E -C}"
++CPP="${CPP:-${CC} -E -C -P}"
+
+ cat <<__EOF__
+ /*
+@@ -86,7 +86,7 @@ sed -n -e 's|"\(..\)", /|"\1", /|' \
+ -e 's|"\(..*\)", /|"\1", /|' \
+ -e 's|^[ ]*QwErTy \([0-9]\)[ ]|/* \1 */ |p' \
+ -e 's|^[ ]*QwErTy \([0-9][0-9]*\)[ ]|/* \1 */ |p' < $tmpout | \
+- sort -n +1 | \
++ sort -n -k2 | \
+ awk 'BEGIN {
+ last = 0;
+ nsigs = 0;
+diff --git a/newsyslog.c b/newsyslog.c
+index 6d814c9..f4b4c4f 100644
+--- a/newsyslog.c
++++ b/newsyslog.c
+@@ -423,12 +423,12 @@ do_entry(ent)
+
+ assert(domidnight == -1 || domidnight == 1 || domidnight == 0);
+ if (verbose) {
+- printf("## %s [%s(%lu):%s(%lu)] 0%03o <#%u,%s%s%s%s%s>: ",
++ printf("## %s [%s(%lu):%s(%lu)] 0%03o <#%u,%s%s%s%s%s%s>: ",
+ ent->log,
+ ent->user ? ent->user : "",
+- (unsigned long) (ent->uid == NO_ID) ? (write_metalog ? 0 : geteuid()) : ent->uid,
++ (unsigned long) ((ent->uid == NO_ID) ? (write_metalog ? 0 : geteuid()) : ent->uid),
+ ent->group ? ent->group : "",
+- (unsigned long) (ent->gid == NO_ID) ? (write_metalog ? 0 : getegid()) : ent->gid,
++ (unsigned long) ((ent->gid == NO_ID) ? (write_metalog ? 0 : getegid()) : ent->gid),
+ ent->permissions,
+ ent->numlogs,
+ (ent->flags & CE_SUBDIR) ? "subdir," : "",
+diff --git a/sig2str.c b/sig2str.c
+index c05da8a..43f1e2a 100644
+--- a/sig2str.c
++++ b/sig2str.c
+@@ -65,7 +65,7 @@ extern const unsigned int sys_nsigname; /* also from sys_signame.c */
+ #endif
+
+ #if !defined(SYS_SIGNAME_DECLARED)
+-const char *const sys_signame[]; /* defined in sys_signame.c */
++extern const char *const sys_signame[]; /* defined in sys_signame.c */
+ #endif
+
+ #if !defined(HAVE_DECL_SIG2STR)
+diff --git a/str2sig.c b/str2sig.c
+index 65e730d..d485e0f 100644
+--- a/str2sig.c
++++ b/str2sig.c
+@@ -31,7 +31,7 @@ static const char rcsid[] =
+ #include "newsyslog.h" /* generic portability definitions */
+
+ #if !defined(SYS_SIGNAME_DECLARED)
+-const char *const sys_signame[]; /* defined in signame.c */
++extern const char *const sys_signame[]; /* defined in signame.c */
+ #endif
+
+ /* NetBSD gained sys_nsig sometime just prior to 1.4 */
+@@ -67,7 +67,7 @@ extern const unsigned int sys_nsigname; /* also from sys_signame.c */
+ #endif
+
+ #if !defined(SYS_SIGNAME_DECLARED)
+-const char *const sys_signame[]; /* defined in sys_signame.c */
++extern const char *const sys_signame[]; /* defined in sys_signame.c */
+ #endif
+
+ #if !defined(HAVE_DECL_STR2SIG)
diff --git a/testing/newsyslog/20-html.patch b/testing/newsyslog/20-html.patch
new file mode 100644
index 00000000000..93c1921fc02
--- /dev/null
+++ b/testing/newsyslog/20-html.patch
@@ -0,0 +1,23 @@
+Author: Vlad Glagolev <scm@vaygr.net>
+URL: N/A
+Summary: fixes build with groff
+--- a/Makefile.am.orig
++++ b/Makefile.am
+@@ -118,7 +118,7 @@
+
+ .8.8.html:
+ @rm -f $@
+- ($(TBL) $< | $(NROFF) -mdoc2html > $@) || (rm -f $@; exit 1)
++ ($(TBL) $< | $(NROFF) -mhtml > $@) || (rm -f $@; exit 1)
+
+ .5.5.ps:
+ @rm -f $@
+@@ -126,7 +126,7 @@
+
+ .5.5.html:
+ @rm -f $@
+- ($(TBL) $< | $(NROFF) -mdoc2html > $@) || (rm -f $@; exit 1)
++ ($(TBL) $< | $(NROFF) -mhtml > $@) || (rm -f $@; exit 1)
+
+ .cat5.cat5-dist:
+ @rm -f $@
diff --git a/testing/newsyslog/APKBUILD b/testing/newsyslog/APKBUILD
new file mode 100644
index 00000000000..508ae689828
--- /dev/null
+++ b/testing/newsyslog/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Vlad Glagolev <scm@vaygr.net>
+# Maintainer: Vlad Glagolev <scm@vaygr.net>
+pkgname=newsyslog
+pkgver=1.2.0.91
+pkgrel=1
+pkgdesc="utility that automates system log rotation and compression"
+url="https://github.com/robohack/newsyslog"
+arch="all"
+license="MIT"
+makedepends="automake autoconf groff"
+subpackages="$pkgname-doc"
+source="https://github.com/robohack/newsyslog/archive/refs/tags/v$pkgver/newsyslog-$pkgver.tar.gz
+ 10-compat.patch
+ 20-html.patch
+ "
+
+prepare() {
+ default_prepare
+ autoreconf -fisv
+}
+
+build() {
+ CFLAGS="$CFLAGS -D_GNU_SOURCE" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-syslogd_pid=/run/syslogd.pid \
+ --with-gzip
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 newsyslog.conf "$pkgdir"/etc/newsyslog.conf
+
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="
+7e3522b5fc8332f83c902b0c4f3e1539b2e25a9acea0d48540d2283f7675a324c2cdf008c9fa49b8091f17f7eff55017058aa81eaf263a75b94bf4eada70c5ec newsyslog-1.2.0.91.tar.gz
+bcb598cbe8e48fc81a8503ef3f07131d1c57a8e30b6cd45a0553beaa702e1f998eafcb02751b7f1b2c648b93278d7aecc10da46da4690405344ac882ec70befa 10-compat.patch
+4194b6334324e857d8d3d047111a266381af86649b21e5ff44b987a6ef9e39a4a8bcea8f8a1d989aceac84fd7ac88726bd1e22ce6f9e47c2a67958fc290cbafb 20-html.patch
+"
diff --git a/testing/next/APKBUILD b/testing/next/APKBUILD
deleted file mode 100644
index 0e95bc6f946..00000000000
--- a/testing/next/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Contributor: Benjamin Buccianti <bebuccianti@gmail.com>
-pkgname=next
-pkgver=1.3.4
-pkgrel=0
-pkgdesc="Atlas Engineer Next Browser"
-url="https://next.atlas.engineer"
-arch="x86_64" #SBCL currently only built for x86_64, to be expanded once compatibility is met
-license="BSD-3-Clause"
-source="$pkgname-$pkgver.zip::https://github.com/atlas-engineer/next/archive/$pkgver.zip"
-makedepends="git sbcl webkit2gtk-dev"
-depends="webkit2gtk glib-networking gsettings-desktop-schemas libfixposix libfixposix-dev gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly libffi libffi-dev"
-options="!check !strip" #No testsuite exists; Stripping the package causes the
-# package to build, but the next browser is unfunctional, dropping to an SBCL repl
-# instead of properly running.
-
-build() {
- make all
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="036dd3fb6078ea510ac3f5b00cacd416018772cb0c9e838b26629947ea5bc0572c31e125fc9ba8294d0354e380fb8169fbed3c8b58c584898198bc441c611bd0 next-1.3.4.zip"
diff --git a/testing/nextpnr/APKBUILD b/testing/nextpnr/APKBUILD
new file mode 100644
index 00000000000..50b9934f365
--- /dev/null
+++ b/testing/nextpnr/APKBUILD
@@ -0,0 +1,69 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=nextpnr
+pkgver=0.6
+pkgrel=2
+pkgdesc="portable FPGA place and route tool"
+url="https://github.com/YosysHQ/nextpnr"
+arch="all"
+license="ISC"
+makedepends="
+ py3-apicula
+ boost-dev
+ cmake
+ eigen-dev
+ icestorm
+ ninja
+ prjtrellis
+ prjtrellis-db-ecp5
+ python3-dev
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/YosysHQ/nextpnr/archive/refs/tags/nextpnr-$pkgver.tar.gz
+ "
+builddir="$srcdir/nextpnr-nextpnr-$pkgver"
+
+_fpga_archs="generic ice40 ecp5 gowin"
+for _fpga_arch in $_fpga_archs; do
+ subpackages="$subpackages $pkgname-$_fpga_arch:_subpkg"
+done
+
+build() {
+ for _fpga_arch in $_fpga_archs; do
+ echo "--> building for $_fpga_arch"
+ # regarding -DUSE_IPO=off: see https://github.com/YosysHQ/nextpnr/issues/797
+ cmake -B "build-$_fpga_arch" -G Ninja \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_IPO=off \
+ -DBUILD_TESTS=ON \
+ -DCURRENT_GIT_VERSION=$pkgver \
+ -DARCH="$_fpga_arch" \
+ #
+ cmake --build build-$_fpga_arch
+ done
+}
+
+check() {
+ for _fpga_arch in $_fpga_archs; do
+ cd "$builddir/build-$_fpga_arch"
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j1
+ done
+}
+
+package() {
+ for _fpga_arch in $_fpga_archs; do
+ depends="$depends $pkgname-$_fpga_arch"
+ done
+ mkdir -p "$pkgdir"
+}
+
+_subpkg() {
+ local _fpga_arch="${subpkgname#nextpnr-}"
+ pkgdesc="portable FPGA place and route tool for $_fpga_arch"
+ DESTDIR="$subpkgdir" cmake --install "$builddir/build-$_fpga_arch"
+}
+
+sha512sums="
+d943afa9bee2c786b0474936300c1a8f9971dc62f2348fb7b67ab3e1ab44d9dc7cfae62ccdd61838cdd80de2139ff6d1c5f22f45fa3932be095254f8b4214f84 nextpnr-0.6.tar.gz
+"
diff --git a/testing/nginx-naxsi/APKBUILD b/testing/nginx-naxsi/APKBUILD
deleted file mode 100644
index fd6b3b4c1a0..00000000000
--- a/testing/nginx-naxsi/APKBUILD
+++ /dev/null
@@ -1,193 +0,0 @@
-# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
-# Contributor: Cameron Banta <cbanta@gmail.com>
-# Contributor: Jeff Bilyk <jbilyk@gmail.com>
-# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
-
-pkgname=nginx-naxsi
-_pkgname=nginx
-pkgver=1.16.0
-pkgrel=1
-pkgdesc="Lightweight HTTP and reverse proxy server with Naxsi WAF support, see also 'nxapi'"
-url="https://github.com/nbs-system/naxsi"
-arch="all"
-license="custom"
-
-# Modules
-_ngx_naxsi_name=naxsi
-_ngx_naxsi_ver=0.56
-_ngx_naxsi_dir="$srcdir/$_ngx_naxsi_name-$_ngx_naxsi_ver/naxsi_src"
-
-_ngx_cache_purge_name=ngx_cache_purge
-_ngx_cache_purge_ver=2.3.0.1
-_ngx_cache_purge_dir="$srcdir/$_ngx_cache_purge_name-$_ngx_cache_purge_ver"
-
-_ngx_upstream_fair_name=nginx-upstream-fair
-_ngx_upstream_fair_ver=0.1.3
-_ngx_upstream_fair_dir="$srcdir/$_ngx_upstream_fair_name-$_ngx_upstream_fair_ver"
-
-_ngx_http_sysguard_name=tengine-http-sysguard
-_ngx_http_sysguard_ver=2.2.0
-_ngx_http_sysguard_dir="$srcdir/$_ngx_http_sysguard_name-$_ngx_http_sysguard_ver"
-
-depends="!nginx"
-makedepends="linux-headers gd-dev geoip-dev libxml2-dev libxslt-dev openssl-dev
- pcre-dev perl-dev pkgconf zlib-dev"
-pkgusers="nginx"
-_grp_ngx="nginx"
-_grp_www="www-data"
-pkggroups="$_grp_ngx $_grp_www"
-install="$pkgname.pre-install $pkgname.pre-upgrade"
-options="!check"
-subpackages="$pkgname-doc"
-source="https://nginx.org/download/$_pkgname-$pkgver.tar.gz
- naxsi-$_ngx_naxsi_ver.tar.gz::https://github.com/nbs-system/$_ngx_naxsi_name/archive/$_ngx_naxsi_ver.tar.gz
- ngx_cache_purge-$_ngx_cache_purge_ver.tar.gz::https://github.com/itoffshore/$_ngx_cache_purge_name/archive/v$_ngx_cache_purge_ver.tar.gz
- upstream-fair-$_ngx_upstream_fair_ver.tar.gz::https://github.com/itoffshore/$_ngx_upstream_fair_name/archive/$_ngx_upstream_fair_ver.tar.gz
- sysguard-$_ngx_http_sysguard_ver.tar.gz::https://github.com/itoffshore/$_ngx_http_sysguard_name/archive/v$_ngx_http_sysguard_ver.tar.gz
-
- anonymise.patch
- sysguard.patch
-
- nginx.initd
- nginx.logrotate
- nginx.conf
- default.conf
- sysguard.conf
- "
-builddir="$srcdir"/$_pkgname-$pkgver
-
-_modules_dir="usr/lib/nginx/modules"
-_modules="
- http-geoip
- http-image-filter
- http-perl
- http-xslt-filter
- mail
- stream
- http-naxsi
- http-cache-purge
- http-upstream-fair
- http-sysguard
- "
-
-for _m in $_modules; do
- subpackages="$subpackages $pkgname-mod-$_m:_module"
-done
-
-
-build() {
- ./configure \
- --prefix=/var/lib/$_pkgname \
- --sbin-path=/usr/sbin/$_pkgname \
- --modules-path=/$_modules_dir \
- --conf-path=/etc/$_pkgname/$_pkgname.conf \
- --pid-path=/run/$_pkgname/$_pkgname.pid \
- --lock-path=/run/$_pkgname/$_pkgname.lock \
- --error-log-path=/var/log/$_pkgname/error.log \
- --http-log-path=/var/log/$_pkgname/access.log \
- --http-client-body-temp-path=/var/lib/$_pkgname/tmp/client_body \
- --http-proxy-temp-path=/var/lib/$_pkgname/tmp/proxy \
- --http-fastcgi-temp-path=/var/lib/$_pkgname/tmp/fastcgi \
- --with-perl_modules_path=/usr/lib/perl5/vendor_perl \
- \
- --user=$pkgusers \
- --group=$_grp_ngx \
- --with-threads \
- --with-file-aio \
- --without-http_uwsgi_module \
- --without-http_scgi_module \
- \
- --with-http_ssl_module \
- --with-http_v2_module \
- --with-http_realip_module \
- --with-http_addition_module \
- --with-http_sub_module \
- --with-http_dav_module \
- --with-http_flv_module \
- --with-http_mp4_module \
- --with-http_gunzip_module \
- --with-http_gzip_static_module \
- --with-http_auth_request_module \
- --with-http_random_index_module \
- --with-http_secure_link_module \
- --with-http_slice_module \
- --with-http_stub_status_module \
- --with-http_xslt_module=dynamic \
- --with-http_image_filter_module=dynamic \
- --with-http_geoip_module=dynamic \
- --with-http_perl_module=dynamic \
- --with-mail=dynamic \
- --with-mail_ssl_module \
- --with-stream=dynamic \
- --with-stream_ssl_module \
- \
- --add-dynamic-module="$_ngx_naxsi_dir" \
- --add-dynamic-module="$_ngx_cache_purge_dir" \
- --add-dynamic-module="$_ngx_upstream_fair_dir" \
- --add-dynamic-module="$_ngx_http_sysguard_dir"
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
- install -Dm644 README "$pkgdir"/usr/share/doc/$pkgname/README
-
- cd "$pkgdir"
-
- install -Dm644 "$srcdir"/nginx.conf ./etc/$_pkgname/nginx.conf
- install -Dm644 "$srcdir"/default.conf ./etc/$_pkgname/conf.d/default.conf
- install -m755 -D "$srcdir"/$_pkgname.initd ./etc/init.d/$_pkgname
- install -m644 -D "$srcdir"/$_pkgname.logrotate ./etc/logrotate.d/$_pkgname
- install -m644 -D "$srcdir"/naxsi-$_ngx_naxsi_ver/naxsi_config/naxsi_core.rules ./etc/nginx/naxsi_core.rules
-
- install -dm755 ./etc/$_pkgname/modules
- install -dm750 -o $pkgusers -g $_grp_ngx ./var/lib/$_pkgname
- install -dm700 -o $pkgusers -g $_grp_ngx ./var/lib/$_pkgname/tmp
-
- ln -sf /$_modules_dir ./var/lib/$_pkgname/modules
- ln -sf /var/log/$_pkgname ./var/lib/$_pkgname/logs
- ln -sf /run/$_pkgname ./var/lib/$_pkgname/run
-
- rm -rf ./run ./etc/$_pkgname/*.default
- # scgi & uwsgi servers are disabled
- rm ./etc/$_pkgname/scgi_params ./etc/$_pkgname/uwsgi_params
-
- # add module configuration
- _mod_conf sysguard.conf nginx-naxsi-mod-http-sysguard
-}
-
-_module() {
- local name="${subpkgname#$pkgname-mod-}"
- name="${name//-/_}"
- soname="ngx_${name}_module.so"
-
- pkgdesc="$pkgdesc (module $name)"
- depends="!nginx-mod-$name"
- provides="$name"
-
- mkdir -p "$subpkgdir"/$_modules_dir
- cd "$subpkgdir"
-
- mv "$pkgdir"/$_modules_dir/$soname ./$_modules_dir/$soname
- mkdir -p "$subpkgdir"/etc/nginx/modules
- echo "load_module \"modules/$soname\";" > ./etc/nginx/modules/$name.conf
-}
-
-_mod_conf() {
- local conf=$1 module=$2
- install -Dm644 "$srcdir"/$conf ${pkgdir%/*}/$module/etc/nginx/conf.d/$conf
-}
-sha512sums="e99cfaa4538f209c096ea2f93c04b5019756617f3bcd3305c273e98ddc89fed5bf90d65fb9b493149bc47d55ff79e73850bfcac20505fab74930d0102075df3d nginx-1.16.0.tar.gz
-4660751849bce303af6010b7257532404710106a94817e78d4bc4b566f8019620f24f30207f1d4366b88132a5124e34b164dc67ed80b6710f4bad66115564cbd naxsi-0.56.tar.gz
-c49c81dbdb8bd507fccf31295e603cea8f0a964867c27eff0436dcea3b4a547c8ae2f11ecf49c4d82c693cf8138c17ebbed395738539d0d61254951e5f0db7e3 ngx_cache_purge-2.3.0.1.tar.gz
-8adb7453c27748f4e685e3352e9b318b408da818754dc5b6244e908423941a8ba337561104f6e481f2553cbc0e334dcea73b57f8e810a9d6e974bb69ff8859e5 upstream-fair-0.1.3.tar.gz
-2743d9aea60bd4984b650213e571cf27e6ff5b3db708242ccb53b8fc669d1cc82ee224ba79aee2f6969b6e13821cfdd3df7b412541e1fdbb867ecc95326e07e1 sysguard-2.2.0.tar.gz
-1117ca5887822e002d9995c041435fda53890614fd7309ea011a59bfb0df3261fc7ba8670e93aaee9116cda16b9806921a85f52c9959b093f2e5ac5df4d9b0fb anonymise.patch
-2dca2ac74fb92e330fde7b6b6120b2fd2565c377a629c9536cf77beebe41aa4b092d4229d5b487b0fb02be4f2cc5b897c429c87bbbbc7b0d31e1cbb94231ddce sysguard.patch
-72888c43cec3203cafe1c5e018be464129a220913c21e0abe5ca57ad0649b7120d419ede9b37181def3daad7f08b1c1afdacb33a20aa148ce1d1b9ce3b5b2a33 nginx.initd
-01b77cff16f6e8bfd7fa1d4d20f625bbcddd08f0509173452d060c342c93dc315a7b0560f4734323a5d29ea294de0491f2e3f32e5337574e1a28ebc005eceea8 nginx.logrotate
-a1a1d9dbd65955b458d17918138fc65bf8990c46909ef43940b1633458c8f119eb485939179b6a9a3dac0c3b58c1eb0c5aec44e7b25ea7a34969c4a0807d4788 nginx.conf
-ed1257ca2c0f687e24ebfd5446c472a592a9f7abea022bd04b3dd519631cc235f448027aabf699a89cb7aa4d5761031d44dffcd33d02fd17db0c93da0d5e8689 default.conf
-8067c78b00e9fd89141b7a70fdc39ab1095a89c97abc8c9a37df26bef40785715dabdae19bce596ec3c3baff00f9022e2f24c7f5d884590857773e87aae75734 sysguard.conf"
diff --git a/testing/nginx-naxsi/anonymise.patch b/testing/nginx-naxsi/anonymise.patch
deleted file mode 100644
index 8b6f9c2ba14..00000000000
--- a/testing/nginx-naxsi/anonymise.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- nginx-1.11.10/src/http/ngx_http_header_filter_module.c
-+++ nginx-1.11.10/src/http/ngx_http_header_filter_module.c.new
-@@ -46,9 +46,9 @@
- };
-
-
--static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
--static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
--static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;
-+static u_char ngx_http_server_string[] = "";
-+static u_char ngx_http_server_full_string[] = "";
-+static u_char ngx_http_server_build_string[] = "";
-
-
- static ngx_str_t ngx_http_status_lines[] = {
-@@ -276,10 +276,10 @@
-
- if (r->headers_out.server == NULL) {
- if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
-- len += sizeof(ngx_http_server_full_string) - 1;
-+ len += sizeof(ngx_http_server_full_string) - 0;
-
- } else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
-- len += sizeof(ngx_http_server_build_string) - 1;
-+ len += sizeof(ngx_http_server_build_string) - 0;
-
- } else {
- len += sizeof(ngx_http_server_string) - 1;
---- nginx-1.11.10/src/http/ngx_http_special_response.c
-+++ nginx-1.11.10/src/http/ngx_http_special_response.c.new
-@@ -19,21 +19,21 @@
-
-
- static u_char ngx_http_error_full_tail[] =
--"<hr><center>" NGINX_VER "</center>" CRLF
-+"<hr><center>127.0.0.1</center>" CRLF
- "</body>" CRLF
- "</html>" CRLF
- ;
-
-
- static u_char ngx_http_error_build_tail[] =
--"<hr><center>" NGINX_VER_BUILD "</center>" CRLF
-+"<hr><center>1.0.0</center>" CRLF
- "</body>" CRLF
- "</html>" CRLF
- ;
-
-
- static u_char ngx_http_error_tail[] =
--"<hr><center>nginx</center>" CRLF
-+"<hr><center>localhost</center>" CRLF
- "</body>" CRLF
- "</html>" CRLF
- ;
---- nginx-1.11.10/src/http/v2/ngx_http_v2_filter_module.c
-+++ nginx-1.11.10/src/http/v2/ngx_http_v2_filter_module.c.new
-@@ -236,16 +236,7 @@
- clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-
- if (r->headers_out.server == NULL) {
--
-- if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_ON) {
-- len += 1 + nginx_ver_len;
--
-- } else if (clcf->server_tokens == NGX_HTTP_SERVER_TOKENS_BUILD) {
-- len += 1 + nginx_ver_build_len;
--
-- } else {
-- len += 1 + sizeof(nginx);
-- }
-+ len += 1 + sizeof(nginx);
- }
-
- if (r->headers_out.date == NULL) {
diff --git a/testing/nginx-naxsi/default.conf b/testing/nginx-naxsi/default.conf
deleted file mode 100644
index 3225a5d067a..00000000000
--- a/testing/nginx-naxsi/default.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-# This is a default site configuration which will simply return 404, preventing
-# chance access to any other virtualhost.
-
-server {
- listen 80 default_server;
- listen [::]:80 default_server;
-
- server_tokens off;
-
- # Everything is a 404
- location / {
- return 404;
- }
-
- # You may need this to prevent return 404 recursion.
- location = /404.html {
- internal;
- }
-}
-
diff --git a/testing/nginx-naxsi/nginx-naxsi.pre-install b/testing/nginx-naxsi/nginx-naxsi.pre-install
deleted file mode 100644
index 8512f43ddaa..00000000000
--- a/testing/nginx-naxsi/nginx-naxsi.pre-install
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-addgroup -S -g 82 www-data 2>/dev/null
-addgroup -S nginx 2>/dev/null
-adduser -S -D -H -h /var/www/localhost/htdocs -s /sbin/nologin -G nginx \
- -g nginx nginx 2>/dev/null
-addgroup nginx www-data 2>/dev/null
-
-exit 0
diff --git a/testing/nginx-naxsi/nginx-naxsi.pre-upgrade b/testing/nginx-naxsi/nginx-naxsi.pre-upgrade
deleted file mode 120000
index 364e0b943cd..00000000000
--- a/testing/nginx-naxsi/nginx-naxsi.pre-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-nginx-naxsi.pre-install \ No newline at end of file
diff --git a/testing/nginx-naxsi/nginx.conf b/testing/nginx-naxsi/nginx.conf
deleted file mode 100644
index c637b92e32a..00000000000
--- a/testing/nginx-naxsi/nginx.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-# /etc/nginx/nginx.conf
-
-user nginx;
-
-# Set number of worker processes automatically based on number of CPU cores.
-worker_processes auto;
-
-# Enables the use of JIT for regular expressions to speed-up their processing.
-pcre_jit on;
-
-# Configures default error logger.
-error_log /var/log/nginx/error.log warn;
-
-# Includes files with directives to load dynamic modules.
-include /etc/nginx/modules/*.conf;
-
-
-events {
- # The maximum number of simultaneous connections that can be opened by
- # a worker process.
- worker_connections 1024;
-}
-
-http {
- # Includes mapping of file name extensions to MIME types of responses
- # and defines the default type.
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
-
- # Name servers used to resolve names of upstream servers into addresses.
- # It's also needed when using tcpsocket and udpsocket in Lua modules.
- #resolver 208.67.222.222 208.67.220.220;
-
- # Don't tell nginx version to clients.
- server_tokens off;
-
- # Specifies the maximum accepted body size of a client request, as
- # indicated by the request header Content-Length. If the stated content
- # length is greater than this size, then the client receives the HTTP
- # error code 413. Set to 0 to disable.
- client_max_body_size 1m;
-
- # Timeout for keep-alive connections. Server will close connections after
- # this time.
- keepalive_timeout 65;
-
- # Sendfile copies data between one FD and other from within the kernel,
- # which is more efficient than read() + write().
- sendfile on;
-
- # Don't buffer data-sends (disable Nagle algorithm).
- # Good for sending frequent small bursts of data in real time.
- tcp_nodelay on;
-
- # Causes nginx to attempt to send its HTTP response head in one packet,
- # instead of using partial frames.
- #tcp_nopush on;
-
-
- # Path of the file with Diffie-Hellman parameters for EDH ciphers.
- #ssl_dhparam /etc/ssl/nginx/dh2048.pem;
-
- # Specifies that our cipher suits should be preferred over client ciphers.
- ssl_prefer_server_ciphers on;
-
- # Enables a shared SSL cache with size that can hold around 8000 sessions.
- ssl_session_cache shared:SSL:2m;
-
-
- # Enable gzipping of responses.
- #gzip on;
-
- # Set the Vary HTTP header as defined in the RFC 2616.
- gzip_vary on;
-
- # Enable checking the existence of precompressed files.
- #gzip_static on;
-
-
- # Specifies the main log format.
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
-
- # Sets the path, format, and configuration for a buffered log write.
- access_log /var/log/nginx/access.log main;
-
-
- # Includes virtual hosts configs.
- include /etc/nginx/conf.d/*.conf;
-}
-
diff --git a/testing/nginx-naxsi/nginx.initd b/testing/nginx-naxsi/nginx.initd
deleted file mode 100644
index 7a58780f87c..00000000000
--- a/testing/nginx-naxsi/nginx.initd
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-description="Nginx http and reverse proxy server"
-extra_started_commands="reload reopen upgrade"
-
-cfgfile=${cfgfile:-/etc/nginx/nginx.conf}
-pidfile=/run/nginx/$RC_SVCNAME.sd.pid
-command=/usr/sbin/nginx
-command_args="-c $cfgfile"
-command_args_foreground='-g "daemon off;"'
-required_files="$cfgfile"
-
-depend() {
- need net
- use dns logger netmount
-}
-
-start_pre() {
- ebegin
- checkpath --directory --owner nginx:nginx ${pidfile%/*}
- $command $command_args -t -q
- eend $?
-}
-
-reload() {
- ebegin "Reloading ${RC_SVCNAME} configuration"
- start_pre && $command -s reload
- eend $?
-}
-
-reopen() {
- ebegin "Reopening ${RC_SVCNAME} log files"
- $command -s reopen
- eend $?
-}
-
-upgrade() {
- restart
-}
-
-restart() {
- stop
- # prevents bind() failed (98: Address in use) error msg
- sleep 0.05
- start
-}
diff --git a/testing/nginx-naxsi/nginx.logrotate b/testing/nginx-naxsi/nginx.logrotate
deleted file mode 100644
index 7778b1108b1..00000000000
--- a/testing/nginx-naxsi/nginx.logrotate
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx.logrotate,v 1.1 2010/01/03 20:29:40 djc Exp $
-
-/var/log/nginx/*.log {
- missingok
- sharedscripts
- postrotate
- kill -USR1 `cat /var/run/nginx.pid`
- endscript
-}
-
diff --git a/testing/nginx-naxsi/sysguard.conf b/testing/nginx-naxsi/sysguard.conf
deleted file mode 100644
index 25619d3d4e4..00000000000
--- a/testing/nginx-naxsi/sysguard.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-# http://tengine.taobao.org/document/http_sysguard
-
-sysguard on;
-
-sysguard_load load=10.5 action=/loadlimit;
-sysguard_mem swapratio=20% action=/swaplimit;
-sysguard_mem free=20M action=/freelimit;
-sysguard_rt rt=2.5 period=5s action=/rtlimit;
-
-location /loadlimit {
- return 503;
-}
-
-location /swaplimit {
- return 503;
-}
-
-location /freelimit {
- return 503;
-}
-
-location /rtlimit {
- return 503;
-}
-
diff --git a/testing/nginx-naxsi/sysguard.patch b/testing/nginx-naxsi/sysguard.patch
deleted file mode 100644
index be8b0d2ee43..00000000000
--- a/testing/nginx-naxsi/sysguard.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/http/ngx_http_request.h
-+++ b/src/http/ngx_http_request.h
-@@ -498,6 +498,7 @@
- */
- unsigned limit_conn_set:1;
- unsigned limit_req_set:1;
-+ unsigned sysguard_set:1;
-
- #if 0
- unsigned cacheable:1;
diff --git a/testing/nginx-ultimate-bad-bot-blocker/APKBUILD b/testing/nginx-ultimate-bad-bot-blocker/APKBUILD
index 6c76658d960..f4e4b095f13 100644
--- a/testing/nginx-ultimate-bad-bot-blocker/APKBUILD
+++ b/testing/nginx-ultimate-bad-bot-blocker/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=nginx-ultimate-bad-bot-blocker
-pkgver=4.2020.05.2060
+pkgver=4.2023.10.4046
pkgrel=0
pkgdesc="Nginx Bad Bot and User-Agent Blocker"
url="https://github.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker"
@@ -35,4 +35,6 @@ package() {
install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/nginx-ultimate-bad-bot-blocker/LICENSE
}
-sha512sums="d3caef9c1022879be846b35eaf1356a887fe3ddfd8334fc87a23d5a34b4c090ba9ea69d0fda83ddc2407b0936f87434e75fa59fa48d0ad514eb86653f3d0aaf6 nginx-ubbb-4.2020.05.2060.tar.gz"
+sha512sums="
+b51f8cad242aec6c4979f046918f6c8ffc6e7be374bb3357b18fc6eecfd45baaf5f03f825ba115907e55a9b6c8faa1a295d6f73d48c283ab1a97b9605ec55f2e nginx-ubbb-4.2023.10.4046.tar.gz
+"
diff --git a/testing/ngs/APKBUILD b/testing/ngs/APKBUILD
new file mode 100644
index 00000000000..46905bf9870
--- /dev/null
+++ b/testing/ngs/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ngs
+pkgver=0.2.14
+pkgrel=0
+pkgdesc="Next Generation Shell"
+url="https://ngs-lang.org"
+# armhf, armv7, x86: tests fail
+arch="all !armhf !armv7 !x86"
+license="GPL-3.0"
+makedepends="
+ bash
+ cmake
+ gc-dev
+ json-c-dev
+ libffi-dev
+ pcre-dev
+ peg
+ samurai
+ "
+subpackages="
+ $pkgname-aws::noarch
+ $pkgname-vim::noarch
+ "
+source="https://github.com/ngs-lang/ngs/archive/v$pkgver/ngs-$pkgver.tar.gz
+ cmakelists.patch
+ busybox-compat.patch
+ "
+
+build() {
+ local crossopts=
+ if [ "$CBUILD" != "$CHOST" ]; then
+ crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+
+ # The test segfaults with the default stack size.
+ LDFLAGS="$LDFLAGS -Wl,-z,stack-size=2097152" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE NGS_PATH="$builddir/lib" ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # stdlib.ngs is bundled into the ngs binary, so it's not used.
+ cd "$pkgdir"/usr/lib/ngs
+ rm -rf experiments lang-tests.ngs stdlib.ngs
+}
+
+aws() {
+ pkgdesc="$pkgdesc - experimental AWS library"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/ngs/autoload/globals/AWS*
+}
+
+vim() {
+ pkgdesc="$pkgdesc (vim syntax)"
+ depends=""
+ install_if="vim $pkgname=$pkgver-r$pkgrel"
+
+ mkdir -p "$subpkgdir"/usr/share/vim/vimfiles
+ cp -r "$builddir"/vim/* "$subpkgdir"/usr/share/vim/vimfiles/
+}
+
+sha512sums="
+5b0f8fc94eb936133312d088cabd09f3097dfc0157fafaab7b25279b1ce85a1359de4df2b1499d287e64b2e98d6fc9dd02ef12bd5e7a672834b361f6d7f4bb8d ngs-0.2.14.tar.gz
+b53ff460f4e5ccf3db8819c897dbfce5b97cec8c6b2b8f917479c9aa3e8caea923a3d9b6cb73f8baa79926f8463c2eac23c89b72163220ee898ce055a132091b cmakelists.patch
+a3c22590c2ba072eab773859d9fa50c55d88f8f7af5d70c0ddb4bd005d69a549f87625d5da47f515256ef004bdae2f2366e427c63b16a4f9471eca3effdec0cd busybox-compat.patch
+"
diff --git a/testing/ngs/busybox-compat.patch b/testing/ngs/busybox-compat.patch
new file mode 100644
index 00000000000..0a1775cb38b
--- /dev/null
+++ b/testing/ngs/busybox-compat.patch
@@ -0,0 +1,13 @@
+Fix compatibility with busybox utils.
+
+--- a/lib/stdlib.ngs
++++ b/lib/stdlib.ngs
+@@ -7393,7 +7393,7 @@
+ F decode_base64(s:Str) {
+ t = (4 - len(s) % 4) % 4
+ fill = "=" * t
+- `echo "$s$fill" | base64 --decode 2>${true}`
++ `echo "$s$fill" | base64 -d 2>${true}`
+ }
+ }
+
diff --git a/testing/ngs/cmakelists.patch b/testing/ngs/cmakelists.patch
new file mode 100644
index 00000000000..b32702fbf90
--- /dev/null
+++ b/testing/ngs/cmakelists.patch
@@ -0,0 +1,39 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -116,25 +116,28 @@
+
+ target_link_libraries(ngs m pthread gc ffi dl json-c pcre)
+
+-add_custom_target(man ALL WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc COMMAND make man DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/doc/*.1.md)
++# XXX-Patched: pandoc is available for x86_64 only
++#add_custom_target(man ALL WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc COMMAND make man DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/doc/*.1.md)
+
+
+ install(FILES "${PROJECT_BINARY_DIR}/ngs" DESTINATION bin)
+ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/ngs DESTINATION bin)
+ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/ DESTINATION lib/ngs)
+-install(
+- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/
+- DESTINATION bin FILES_MATCHING PATTERN "*.ngs"
+- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE
+-)
+-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION doc/ngs)
++# XXX-Patched: these scripts are quite doubtful, looks like helper scripts for the project or experimental stuff
++#install(
++# DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin/
++# DESTINATION bin FILES_MATCHING PATTERN "*.ngs"
++# PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE
++#)
++#install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE DESTINATION doc/ngs)
+
+ if(APPLE)
+ set(MAN_DIR share/man/man1)
+ else()
+ set(MAN_DIR man/man1)
+ endif()
+-install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc/ DESTINATION ${MAN_DIR} FILES_MATCHING PATTERN "*.1")
++# XXX-Patched: pandoc is available for x86_64 only
++#install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc/ DESTINATION ${MAN_DIR} FILES_MATCHING PATTERN "*.1")
+
+ enable_testing()
+ add_test(all bash -c "${CMAKE_CURRENT_BINARY_DIR}/ngs ${CMAKE_CURRENT_SOURCE_DIR}/test.ngs")
diff --git a/testing/ngspice/APKBUILD b/testing/ngspice/APKBUILD
deleted file mode 100644
index 35ba19d8330..00000000000
--- a/testing/ngspice/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=ngspice
-pkgver=31
-pkgrel=0
-pkgdesc="open source spice simulator for electric and electronic circuits"
-url="http://ngspice.sourceforge.net/"
-arch="all"
-license="BSD-3-Clause"
-makedepends="libxaw-dev libedit-dev readline-dev"
-depends="python3"
-subpackages="$pkgname-doc $pkgname-dev"
-source="
- https://downloads.sourceforge.net/project/$pkgname/ng-spice-rework/$pkgver/$pkgname-$pkgver.tar.gz
- "
-
-build() {
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --with-readline=yes \
- --enable-xspice \
- --enable-cider \
- --enable-openmp \
- --with-ngshared
-
- make
-
- # build the binary ngspice, which is only build without --with-ngshared
-
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --with-readline=yes \
- --enable-xspice \
- --enable-cider \
- --enable-openmp
-
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm755 src/.libs/libngspice.so.0.0.0 "$pkgdir/usr/lib/libngspice.so.0.0.0"
- ln -s "libngspice.so.0.0.0" "$pkgdir/usr/lib/libngspice.so.0"
- ln -s "libngspice.so.0.0.0" "$pkgdir/usr/lib/libngspice.so"
-}
-
-sha512sums="448024f398d267911d5d2a48da03eb0d87ba1133ce39d5132bd318dde8ad359d19c7f85f6b4ec88c08b081c9140f7b931334d84173019a22aa2ac98482bd7d5d ngspice-31.tar.gz"
diff --git a/testing/nheko/APKBUILD b/testing/nheko/APKBUILD
deleted file mode 100644
index 9468d89448f..00000000000
--- a/testing/nheko/APKBUILD
+++ /dev/null
@@ -1,70 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
-# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
-pkgname=nheko
-pkgver=0.7.1
-pkgrel=1
-pkgdesc="Qt5-based client for Matrix protocol"
-url="https://github.com/Nheko-Reborn/nheko/releases"
-arch="all !armhf" # Limited by qt5-qtmultimedia
-license="GPL-3.0-or-later"
-options="!check" # no test suite
-depends="qt5-qtquickcontrols2 qt5-qtmultimedia"
-makedepends="
- cmake
- ninja
- boost-dev
- lmdb-dev
- lmdbxx
- tweeny
- qt5-qtbase-dev
- qt5-qttools-dev
- qt5-qtmultimedia-dev
- qt5-qtsvg-dev
- qt5-qtdeclarative-dev
- qt5-qtquickcontrols2-dev
- zlib-dev
- openssl-dev
- olm-dev
- nlohmann-json
- cmark-dev
- spdlog-dev
- mtxclient-dev
- libsodium-dev
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/Nheko-Reborn/nheko/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- sed -e '/-Wall/d' \
- -e '/-Wextra/d' \
- -e '/-Werror/d' \
- -e '/-pedantic/d' \
- -e '/-pipe/d' \
- -i CMakeLists.txt
-}
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build \
- -GNinja \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_SKIP_RPATH=True \
- -DCMAKE_BUILD_TYPE=None \
- $CMAKE_CROSSOPTS .
- ninja -C build
-}
-
-check() {
- ninja -C build check
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="c3f8325c865b4021709114ab7f658ae5198404242eb8761c8589d42b08d175323406a65ff0706b16a4139155ac7676e12282bce078cc0a02284ecd70a7d62bdc nheko-0.7.1.tar.gz"
diff --git a/testing/nicotine-plus/APKBUILD b/testing/nicotine-plus/APKBUILD
new file mode 100644
index 00000000000..340990fc2a3
--- /dev/null
+++ b/testing/nicotine-plus/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: dai9ah <dai9ah@protonmail.com>
+# Maintainer: dai9ah <dai9ah@protonmail.com>
+pkgname=nicotine-plus
+pkgver=3.3.2
+pkgrel=1
+pkgdesc="Graphical client for the SoulSeek peer-to-peer system"
+url="https://nicotine-plus.github.io/nicotine-plus"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="gtk+3.0 py3-gobject3 python3 python3-gdbm"
+makedepends="py3-gpep517 py3-setuptools py3-wheel gettext"
+checkdepends="py3-pytest"
+subpackages="$pkgname-doc $pkgname-lang $pkgname-pyc"
+source="nicotine-plus-$pkgver.tar.gz::https://github.com/Nicotine-Plus/nicotine-plus/archive/$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m pytest \
+ --deselect pynicotine/tests/integration/test_startup.py::StartupTest::test_gui_startup
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+lang() {
+ pkgdesc="Languages for package $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ amove usr/lib/python*/site-packages/pynicotine/locale
+}
+
+sha512sums="
+590886c24104e47c1cd72fb0c03bc0a87f33f7ecdb6349b2fef354aa22a6417bcf002b2d1083b383bdc2ca4f35200f3997af7f8c552658ca9defec2958510cd8 nicotine-plus-3.3.2.tar.gz
+"
diff --git a/testing/nil/APKBUILD b/testing/nil/APKBUILD
new file mode 100644
index 00000000000..14329d5e4d7
--- /dev/null
+++ b/testing/nil/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=nil
+pkgver=2023.08.09
+_pkgver=${pkgver//./-}
+pkgrel=0
+pkgdesc="An incremental analysis assistant for writing in Nix"
+url="https://github.com/oxalica/nil"
+arch="x86 x86_64 aarch64" # nix (aports)
+license="MIT OR Apache-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ nix
+"
+source="
+ $pkgname-$_pkgver.tar.gz::https://github.com/oxalica/nil/archive/refs/tags/$_pkgver.tar.gz
+"
+builddir="$srcdir/$pkgname-$_pkgver"
+options="net"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 target/release/nil "$pkgdir"/usr/bin/nil
+
+ for l in APACHE MIT
+ do
+ install -Dm 644 LICENSE-"$l" "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE-"$l"
+ done
+}
+
+sha512sums="
+44e93b06ee90503e79e41d137d14d7c576fafd889a41436aca0ddaa58eecd0cff329bd8a884baca2984a750fbb984000ef79b56981209d6692d564e0a587406c nil-2023-08-09.tar.gz
+"
diff --git a/testing/nim/APKBUILD b/testing/nim/APKBUILD
deleted file mode 100644
index 90af96719f0..00000000000
--- a/testing/nim/APKBUILD
+++ /dev/null
@@ -1,88 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-#
-# WARNING: There may be breakages!
-pkgname=nim
-pkgver=0.17.2
-pkgrel=2
-pkgdesc="A systems and applications programming language"
-url="https://nim-lang.org/"
-arch="all !s390x"
-license="MIT"
-checkdepends="sqlite-libs nodejs"
-subpackages="$pkgname-doc nimsuggest niminst"
-depends="libucontext-dev" # used by nims compiler
-source="https://nim-lang.org/download/$pkgname-$pkgver.tar.xz
- $pkgname-csources-$pkgver.tar.gz::https://github.com/nim-lang/csources/archive/v$pkgver.tar.gz
- niminst-fix-paths.patch
- nim-config-fix-paths.patch
- nim-config-enable-ucontext.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
-# Don't run tests on armhf, it'd take eternity...
-# Can't run tests on mips, no nodejs...
-case "$CARCH" in
- armhf) options="!check";;
- mips*) options="!check";;
-esac
-
-prepare() {
- mv "$srcdir"/csources-$pkgver "$builddir"/csources
- default_prepare
-}
-
-build() {
- cd "$builddir"/csources
-
- msg2 "Building nim csources..."
- ./build.sh
-
- cd ..
-
- msg2 "Building koch..."
- ./bin/nim compile -d:release koch
-
- msg2 "Building nim..."
- ./koch boot -d:release
-
- msg2 "Building nimsuggest..."
- ./bin/nim compile -d:release nimsuggest/nimsuggest.nim
-}
-
-check() {
- cd "$builddir"
- # XXX: Some tests fail!
- ./koch tests --pedantic --targets="c js" all || true
-}
-
-package() {
- cd "$builddir"
- DESTDIR="$pkgdir" ./koch install /usr/bin
-
- cd "$pkgdir"
- mkdir -p usr/include
- local file; for file in usr/lib/nim/*.h; do
- mv $file usr/include/
- ln -s ../../include/${file##*/} usr/lib/nim/${file##*/}
- done
-}
-
-nimsuggest() {
- pkgdesc="idetools for the nim language"
-
- install -D -m 755 "$builddir"/nimsuggest/nimsuggest \
- "$subpkgdir"/usr/bin/nimsuggest
-}
-
-niminst() {
- pkgdesc="A tool to generate an installer for a Nim program"
-
- install -D -m 755 "$builddir"/tools/niminst/niminst \
- "$subpkgdir"/usr/bin/niminst
-}
-
-sha512sums="7b4ed1eb1e9067ce72b76b95c43ec74eb38f04611776c174ba6a697254a9253fed61258712fb938f15e662bb3b0d36138194fc8fa89bbcb4d22888263e5e2880 nim-0.17.2.tar.xz
-4a8f1e87bd96ab33998b0d3415c0ba9560b78795e0396d8af8b588a93c23477097f2c5388b4e612fbc142b490480326b394a933c805a3585cd6f3d7e8390e3e6 nim-csources-0.17.2.tar.gz
-4ab36c5d8772567ba09b536e3dd91ddcf253892056751318ccbfce7ac24f0a646bfcd94f5dadc823c9a8394bea9614fede20c1805638052ebdbe7b5bafba4f05 niminst-fix-paths.patch
-813eb4cb93b0e9f12cb7666bef65c583390008ec09bc850f43f621688dc809bc51c105898095a8ef6316fbef49ac657a7abc75d74ad7b8cb3919c8f1a721af02 nim-config-fix-paths.patch
-5a21039dfcb2a49ccefb22c8d77a757b23a0f0f79046cb6a96862e44d1ef92bd7739dc412dfc1d464a564d5b06cc9365bcc27df26f13234dd985d33378d6fd39 nim-config-enable-ucontext.patch"
diff --git a/testing/nim/nim-config-enable-ucontext.patch b/testing/nim/nim-config-enable-ucontext.patch
deleted file mode 100644
index 87216497bea..00000000000
--- a/testing/nim/nim-config-enable-ucontext.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ruN a/config/nim.cfg b/config/nim.cfg
---- a/config/nim.cfg 2018-02-15 00:45:38.251038499 +0100
-+++ b/config/nim.cfg 2018-02-15 00:46:48.937858896 +0100
-@@ -231,3 +231,7 @@
-
- # Configuration for the Tiny C Compiler:
- tcc.options.always = "-w"
-+
-+# Enable libucontext
-+gcc.options.linker %= "-lucontext"
-+llvm_gcc.options.linker %= "-lucontext"
diff --git a/testing/nim/nim-config-fix-paths.patch b/testing/nim/nim-config-fix-paths.patch
deleted file mode 100644
index 7f74d5f56e7..00000000000
--- a/testing/nim/nim-config-fix-paths.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Tue, 23 Aug 2017 22:57:00 +0200
-Subject: [PATCH] Fix default nimblepath in nim.cfg
-
---- a/config/nim.cfg
-+++ b/config/nim.cfg
-@@ -41,7 +41,7 @@
- @if nimbabel:
- nimblepath="$home/.nimble/pkgs/"
- @if not windows:
-- nimblepath="/opt/nimble/pkgs/"
-+ nimblepath="/usr/share/nimble/pkgs/"
- @else:
- # TODO:
- @end
diff --git a/testing/nim/niminst-fix-paths.patch b/testing/nim/niminst-fix-paths.patch
deleted file mode 100644
index 1274220493f..00000000000
--- a/testing/nim/niminst-fix-paths.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Tue, 23 Aug 2017 22:57:00 +0200
-Subject: [PATCH] Patch niminst's (de)install to be usable for distributions
-
-* Add support for DESTDIR variable (staged installs).
-* Change paths to be FHS/Alpine compliant.
-* Use "install" command instead of mkdir/cp/chmod.
-
-+++ b/tools/niminst/install.tmpl
---- a/tools/niminst/install.tmpl
-@@ -5,6 +5,8 @@
-
- set -e
-
-+: ${DESTDIR:=}
-+
- if [ $# -eq 1 ] ; then
- # if c.cat[fcUnixBin].len > 0:
- if test -f ?{c.cat[fcUnixBin][0].toUnix}
-@@ -26,43 +28,47 @@
- echo " <some other dir> (treated similar to '/opt')"
- echo "To deinstall, use the command:"
- echo "sh deinstall.sh DIR"
-+ echo ""
-+ echo "You may also use environment variable DESTDIR for staged installs"
-+ echo "(DESTDIR is prepended to each install target file). Note that this"
-+ echo "is added by Alpine Linux, it's not supported by standard niminst."
- exit 1
- ;;
- "/usr/bin")
-- bindir=/usr/bin
-- configdir=/etc
-- libdir=/usr/lib/?proj
-- docdir=/usr/share/?proj/doc
-- datadir=/usr/share/?proj/data
-- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version"
-+ bindir="$DESTDIR/usr/bin"
-+ configdir="$DESTDIR/etc"
-+ libdir="$DESTDIR/usr/lib/?proj"
-+ docdir="$DESTDIR/usr/share/doc/?proj"
-+ datadir="$DESTDIR/usr/share/?proj/data"
-+ nimbleDir="$DESTDIR/usr/share/nimble/pkgs/?c.nimblePkgName-?c.version"
- ;;
- "/usr/local/bin")
-- bindir=/usr/local/bin
-- configdir=/etc
-- libdir=/usr/local/lib/?proj
-- docdir=/usr/local/share/?proj/doc
-- datadir=/usr/local/share/?proj/data
-- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version"
-+ bindir="$DESTDIR/usr/local/bin"
-+ configdir="$DESTDIR/etc"
-+ libdir="$DESTDIR/usr/local/lib/?proj"
-+ docdir="$DESTDIR/usr/local/share/doc/?proj"
-+ datadir="$DESTDIR/usr/local/share/?proj/data"
-+ nimbleDir="$DESTDIR/usr/local/share/nimble/pkgs/?c.nimblePkgName-?c.version"
- ;;
- "/opt")
-- bindir="/opt/?proj/bin"
-- configdir="/opt/?proj/config"
-- libdir="/opt/?proj/lib"
-- docdir="/opt/?proj/doc"
-- datadir="/opt/?proj/data"
-- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version"
-- mkdir -p /opt/?proj
-+ bindir="$DESTDIR/opt/?proj/bin"
-+ configdir="$DESTDIR/opt/?proj/config"
-+ libdir="$DESTDIR/opt/?proj/lib"
-+ docdir="$DESTDIR/opt/?proj/doc"
-+ datadir="$DESTDIR/opt/?proj/data"
-+ nimbleDir="$DESTDIR/opt/nimble/pkgs/?c.nimblePkgName-?c.version"
-+ mkdir -p $DESTDIR/opt/?proj
- mkdir -p $bindir
- mkdir -p $configdir
- ;;
- *)
-- bindir="$1/?proj/bin"
-- configdir="$1/?proj/config"
-- libdir="$1/?proj/lib"
-- docdir="$1/?proj/doc"
-- datadir="$1/?proj/data"
-- nimbleDir="$1/?proj"
-- mkdir -p $1/?proj
-+ bindir="$DESTDIR$1/?proj/bin"
-+ configdir="$DESTDIR$1/?proj/config"
-+ libdir="$DESTDIR$1/?proj/lib"
-+ docdir="$DESTDIR$1/?proj/doc"
-+ datadir="$DESTDIR$1/?proj/data"
-+ nimbleDir="$DESTDIR$1/?proj"
-+ mkdir -p $DESTDIR$1/?proj
- mkdir -p $bindir
- mkdir -p $configdir
- ;;
-@@ -89,35 +95,28 @@
- #end for
-
- #for f in items(c.cat[fcUnixBin]):
-- cp ?f.toUnix $bindir/?f.skipRoot.toUnix
-- chmod 755 $bindir/?f.skipRoot.toUnix
-+ install -D -m 755 ?f.toUnix $bindir/?f.skipRoot.toUnix
- #end for
- #for f in items(c.cat[fcConfig]):
-- cp ?f.toUnix $configdir/?f.skipRoot.toUnix
-- chmod 644 $configdir/?f.skipRoot.toUnix
-+ install -D -m 755 ?f.toUnix $configdir/?f.skipRoot.toUnix
- #end for
- #for f in items(c.cat[fcData]):
- if [ -f ?f.toUnix ]; then
-- cp ?f.toUnix $datadir/?f.skipRoot.toUnix
-- chmod 644 $datadir/?f.skipRoot.toUnix
-+ install -D -m 644 ?f.toUnix $datadir/?f.skipRoot.toUnix
- fi
- #end for
- #for f in items(c.cat[fcDoc]):
- if [ -f ?f.toUnix ]; then
-- cp ?f.toUnix $docdir/?f.skipRoot.toUnix
-- chmod 644 $docdir/?f.skipRoot.toUnix
-+ install -D -m 644 ?f.toUnix $docdir/?f.skipRoot.toUnix
- fi
- #end for
- #for f in items(c.cat[fcLib]):
-- cp ?f.toUnix $libdir/?f.skipRoot.toUnix
-- chmod 644 $libdir/?f.skipRoot.toUnix
-+ install -D -m 644 ?f.toUnix $libdir/?f.skipRoot.toUnix
- #end for
- #for f in items(c.cat[fcNimble]):
-- cp ?f.toUnix $nimbleDir/?f.toUnix
-- chmod 644 $nimbleDir/?f.toUnix
-+ install -D -m 644 ?f.toUnix $nimbleDir/?f.toUnix
- #end for
--cp ?{c.nimblePkgName}.nimble $nimbleDir/?{c.nimblePkgName}.nimble
--chmod 644 $nimbleDir/?{c.nimblePkgName}.nimble
-+install -D -m 644 ?{c.nimblePkgName}.nimble $nimbleDir/?{c.nimblePkgName}.nimble
-
- echo "installation successful"
- else
-@@ -130,5 +129,9 @@
- echo " <some other dir> (treated similar to '/opt')"
- echo "To deinstall, use the command:"
- echo "sh deinstall.sh DIR"
-+ echo ""
-+ echo "You may also use environment variable DESTDIR for staged installs"
-+ echo "(DESTDIR is prepended to each install target file). Note that this"
-+ echo "is added by Alpine Linux, it's not supported by standard niminst."
- exit 1
- fi
---- a/tools/niminst/deinstall.tmpl
-+++ b/tools/niminst/deinstall.tmpl
-@@ -19,17 +19,17 @@
- bindir=/usr/bin
- configdir=/etc
- libdir=/usr/lib/?proj
-- docdir=/usr/share/?proj/doc
-+ docdir=/usr/share/doc/?proj
- datadir=/usr/share/?proj/data
-- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version"
-+ nimbleDir="/usr/share/nimble/pkgs/?c.nimblePkgName-?c.version"
- ;;
- "/usr/local/bin")
- bindir=/usr/local/bin
- configdir=/etc
- libdir=/usr/local/lib/?proj
-- docdir=/usr/local/share/?proj/doc
-+ docdir=/usr/local/share/doc/?proj
- datadir=/usr/local/share/?proj/data
-- nimbleDir="/opt/nimble/pkgs/?c.nimblePkgName-?c.version"
-+ nimbleDir="/usr/share/nimble/pkgs/?c.nimblePkgName-?c.version"
- ;;
- "/opt")
- bindir="/opt/?proj/bin"
diff --git a/testing/nimble/APKBUILD b/testing/nimble/APKBUILD
deleted file mode 100644
index e972b400430..00000000000
--- a/testing/nimble/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=nimble
-pkgver=0.8.10
-pkgrel=0
-pkgdesc="Package manager for the Nim programming language"
-url="https://github.com/nim-lang/nimble"
-arch="all !s390x"
-license="BSD-3-Clause"
-depends="nim"
-source="$pkgname-$pkgver.tar.gz::https://github.com/nim-lang/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- nim compile -d:release src/nimble
-}
-
-package() {
- cd "$builddir"
- install -D -m 755 src/nimble "$pkgdir"/usr/bin/nimble
-}
-
-sha512sums="18128cb28c6f1b1d1bf2dddb287e376404ddf842a3f665ae3dfddb39ad5dc08e7ec0509d6e823cec3eaad3263ec4a5e72d513aae173a50451799a85ef79453b3 nimble-0.8.10.tar.gz"
diff --git a/testing/nitro/APKBUILD b/testing/nitro/APKBUILD
index 874ae7a5402..aa07ca1d165 100644
--- a/testing/nitro/APKBUILD
+++ b/testing/nitro/APKBUILD
@@ -1,38 +1,36 @@
# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
pkgname=nitro
-pkgver=2.7_beta2
+pkgver=2.7_beta8
_ver=${pkgver/_beta/dev-}
-pkgrel=1
-pkgdesc="The Nitro NITF project"
+pkgrel=2
+pkgdesc="Nitro NITF project"
url="https://github.com/hobu/nitro"
arch="all"
-license="GPL-3.0"
-depends=""
-makedepends="cmake linux-headers"
-install=""
+license="GPL-3.0-or-later"
+makedepends="cmake linux-headers samurai"
subpackages="$pkgname-dev"
source="$pkgname-$_ver.tar.gz::https://github.com/hobu/$pkgname/archive/$_ver.tar.gz
- fix-path-max.patch
+ gettid.patch
+ path-max.patch
"
builddir="$srcdir/$pkgname-$_ver"
options="!check"
build() {
- mkdir -p "$builddir"
- cd "$builddir"
-
- mkdir build && cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DNITRO_PKG_SUBDIR=lib/pkgconfig
+ cmake --build build
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="8414cfa4a3ca6bb1ad6536dc149c1d0d52479a9fda916db3c9c9c6fe39b01dba292f73a17b6ba47d757f5107997055e9b19f69ff08beca87dfb59383a4fb184a nitro-2.7dev-2.tar.gz
-4bf97526c39ae9a7c402d42451770b5b1383e44b426b49685a8d66ce5b0dd178f47e0865349b9c4b953af4b94616b2493d732c4562e6be10ba96b40bd1332052 fix-path-max.patch"
+sha512sums="
+5aba97037bfcb3543a881b74a1adb0dfbff689b4ce39bd674274470c9f5712af7f93f2528a5035154c0c4e79993c23a18084af7ff385f4ad1a714a92a51151f6 nitro-2.7dev-8.tar.gz
+d1866140e2fb76ba48c6f63f966ee1079248bdef64dd218fa44c73126649168076cc9e2a36aecd58d2b29a3c326a89e6aa0a8376de89ff94144e49606c9e3d32 gettid.patch
+58ad46ca4dde8511cda41af90d26c8898f84d509f6f9b31c2d17defc16a6d99aeba33d6c4c88d339ea39fe6598aa164c4ed46dfe009d06d46b3e11a5e13b78af path-max.patch
+"
diff --git a/testing/nitro/fix-path-max.patch b/testing/nitro/fix-path-max.patch
deleted file mode 100644
index 4a3c575527f..00000000000
--- a/testing/nitro/fix-path-max.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- nitro-2.7dev-1/c++/sys/source/OSUnix.cpp.orig 2017-08-29 13:22:41.833028289 +0300
-+++ nitro-2.7dev-1/c++/sys/source/OSUnix.cpp 2017-08-29 13:22:59.726615275 +0300
-@@ -25,6 +25,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
-+#include <limits.h>
-
- #include "sys/OSUnix.h"
- #include "sys/File.h"
diff --git a/testing/nitro/gettid.patch b/testing/nitro/gettid.patch
new file mode 100644
index 00000000000..59ed98b41fc
--- /dev/null
+++ b/testing/nitro/gettid.patch
@@ -0,0 +1,11 @@
+diff -urN nitro-2.7dev-2.orig/c++/mt/include/mt/LinuxCPUAffinityThreadInitializer.h nitro-2.7dev-2/c++/mt/include/mt/LinuxCPUAffinityThreadInitializer.h
+--- nitro-2.7dev-2.orig/c++/mt/include/mt/LinuxCPUAffinityThreadInitializer.h 2021-07-05 15:27:26.892022427 -0600
++++ nitro-2.7dev-2/c++/mt/include/mt/LinuxCPUAffinityThreadInitializer.h 2021-07-05 15:27:42.922103609 -0600
+@@ -31,7 +31,6 @@
+ #include <sys/types.h>
+ #include <linux/unistd.h>
+ #include <sys/syscall.h>
+-#define gettid() syscall(SYS_gettid)
+
+ #include <import/sys.h>
+ #include "mt/CPUAffinityThreadInitializer.h"
diff --git a/testing/nitro/path-max.patch b/testing/nitro/path-max.patch
new file mode 100644
index 00000000000..13de4827487
--- /dev/null
+++ b/testing/nitro/path-max.patch
@@ -0,0 +1,12 @@
+diff --git a/c++/sys/source/OSUnix.cpp b/c++/sys/source/OSUnix.cpp
+index 0f03e6c..9b30c40 100644
+--- a/c++/sys/source/OSUnix.cpp
++++ b/c++/sys/source/OSUnix.cpp
+@@ -25,6 +25,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <limits.h>
+
+ #include "sys/OSUnix.h"
+ #include "sys/File.h"
diff --git a/testing/nitrocli/APKBUILD b/testing/nitrocli/APKBUILD
new file mode 100644
index 00000000000..4f162b0c755
--- /dev/null
+++ b/testing/nitrocli/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer:
+pkgname=nitrocli
+pkgver=0.4.1
+pkgrel=3
+pkgdesc="A command line tool for interacting with Nitrokey devices"
+url="https://github.com/d-e-s-o/nitrocli"
+arch="x86_64 x86 armhf armv7 aarch64 ppc64le" # limited by rust/cargo
+license="GPL-3.0-or-later"
+depends="gnupg"
+checkdepends="python3" # used by the extension tests
+makedepends="cargo hidapi-dev libnitrokey-dev cargo-auditable"
+subpackages="$pkgname-doc $pkgname-bash-completion"
+source="https://github.com/d-e-s-o/nitrocli/archive/v$pkgver/nitrocli-$pkgver.tar.gz
+ src-tests-run.rs-use-python3.patch
+ "
+
+
+build() {
+ export USE_SYSTEM_LIBNITROKEY=1
+ cargo auditable build --release --locked
+ cargo run --bin=shell-complete bash > nitrocli
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ cargo auditable install --locked --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/bin/shell-complete
+ rm "$pkgdir"/usr/.crates*
+
+ install -Dm644 -t "$pkgdir/usr/share/man/man1" \
+ "$builddir/doc/$pkgname.1"
+
+ install -Dm644 -t "$pkgdir/usr/share/bash-completion/completions" \
+ "$builddir/nitrocli"
+}
+
+sha512sums="
+d6d8ee1d83144c90d6b248f086176397542dd34a4f873848245a7f2796c201ded982f78f1d83f54b247bb8569fb79f54a01f4e217cd85e5b2b098c35d2abba8c nitrocli-0.4.1.tar.gz
+d2aa6258274ec427e0feb6e5f2c19bba328be3b2de4a26f5ea5b6a27f4b948e578c140a966f2a1c1e1ae160a7ef2f005cb2469cb684a22b042bbcf977621ac29 src-tests-run.rs-use-python3.patch
+"
diff --git a/testing/nitrocli/src-tests-run.rs-use-python3.patch b/testing/nitrocli/src-tests-run.rs-use-python3.patch
new file mode 100644
index 00000000000..1c17afbc22b
--- /dev/null
+++ b/testing/nitrocli/src-tests-run.rs-use-python3.patch
@@ -0,0 +1,34 @@
+From 006679ae586ad790e391b46eb9fedf9e6f765d3c Mon Sep 17 00:00:00 2001
+From: Henrik Riomar <henrik.riomar@gmail.com>
+Date: Fri, 17 Sep 2021 17:58:35 +0200
+Subject: [PATCH] src/tests/run.rs: use python3
+
+---
+ src/tests/run.rs | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tests/run.rs b/src/tests/run.rs
+index ed1bbb8..7e69347 100644
+--- a/src/tests/run.rs
++++ b/src/tests/run.rs
+@@ -294,7 +294,7 @@ fn extension() -> anyhow::Result<()> {
+ .open(ext_dir.path().join("nitrocli-ext"))?;
+
+ ext.write_all(
+- br#"#!/usr/bin/env python
++ br#"#!/usr/bin/env python3
+ print("success")
+ "#,
+ )?;
+@@ -325,7 +325,7 @@ fn extension_failure() -> anyhow::Result<()> {
+ .open(ext_dir.path().join("nitrocli-ext"))?;
+
+ ext.write_all(
+- br#"#!/usr/bin/env python
++ br#"#!/usr/bin/env python3
+ import sys
+ sys.exit(42);
+ "#,
+--
+2.33.0
+
diff --git a/testing/nix/APKBUILD b/testing/nix/APKBUILD
deleted file mode 100644
index 5c1c59ce0be..00000000000
--- a/testing/nix/APKBUILD
+++ /dev/null
@@ -1,97 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=nix
-pkgver=2.3.4
-pkgrel=1
-pkgdesc="The purely functional package manager"
-url="https://nixos.org/nix/"
-arch="x86 x86_64 aarch64" # supported platforms
-license="LGPL-2.1-or-later"
-depends="ca-certificates"
-depends_dev="boost-dev"
-makedepends="
- $depends_dev
- bash
- brotli-dev
- bzip2-dev
- curl-dev
- gc-dev
- openssl-dev
- libseccomp-dev
- libsodium-dev
- sqlite-dev
- xz
- xz-dev
- editline-dev
- "
-pkggroups="nix nixbld"
-install="$pkgname.pre-install"
-subpackages="$pkgname-dev $pkgname-openrc $pkgname-doc"
-source="https://nixos.org/releases/nix/nix-$pkgver/nix-$pkgver.tar.xz
- nix-daemon.initd
- nix-profile.sh
- "
-
-build() {
- # NOTE: /nix/var is recommended by upstream and we need /nix anyway.
- bash ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/nix/var \
- --enable-gc
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- cd "$pkgdir"
-
- # Remove trash.
- rm -R etc/init
- rm -R usr/lib/systemd
- rm etc/profile.d/*
-
- mkdir -p usr/sbin
- rm -f usr/bin/nix-daemon
- ln -s ../bin/nix usr/sbin/nix-daemon
-
- install -m 755 -D "$srcdir"/nix-profile.sh etc/profile.d/nix.sh
- install -m 755 -D "$srcdir"/nix-daemon.initd etc/init.d/nix-daemon
-
- # Setup build users.
- # Note: max-jobs should equal number of created nixbld<n> users.
- install -d -m 0555 etc/nix
- cat > etc/nix/nix.conf <<-EOF
- build-users-group = nixbld
- max-jobs = 4
- EOF
-
- # This is based on https://github.com/NixOS/nix/blob/9617a04/scripts/install-multi-user.sh#L525
- # NOTE: store dir must be /nix/store, otherwise pre-built binaries from
- # the standard Nixpkgs channels would not work.
- install -d -m 1775 -g nixbld \
- nix/store
- install -d -m 0755 \
- nix/var/log/nix/drvs \
- nix/var/nix/db \
- nix/var/nix/gcroots \
- nix/var/nix/manifests \
- nix/var/nix/profiles/default \
- nix/var/nix/temproots \
- nix/var/nix/userpool \
- nix/var/nix/profile/per-user/root
- install -d -m 1777 \
- nix/var/nix/profiles/per-user \
- nix/var/nix/gcroots/per-user
- # Allow only users in the nix group to perform Nix operations.
- install -d -m 0770 -g nix \
- nix/var/nix/daemon-socket
-}
-
-sha512sums="9c5b7aa92648b3c86f7e313088a17a8ae0e3c3d35a2b16b4af543b190f7649b6958aa345ee7df625201f5eb9d77d1b016b980536de8f77b331dfdd32ecdd6d69 nix-2.3.4.tar.xz
-9e4568db987fbae5097f7bb086e8ad51742c2d229703104fb7e6f240ffb0ca72e57dc305fb238bcee4ec8002d780007af60f241b1f32b6aa413dd579d9c59e75 nix-daemon.initd
-0fb5b9ff2f593dca22251b342494ea0b61380d8f905d85855282d259c112aa2a918d9785aa08f847c693a939ebae9fbefcd4e417ad93283a142e066105cc87b5 nix-profile.sh"
diff --git a/testing/nix/nix-daemon.initd b/testing/nix/nix-daemon.initd
deleted file mode 100644
index fe81aa8e2bd..00000000000
--- a/testing/nix/nix-daemon.initd
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/sbin/openrc-run
-
-description="Nix multi-user support daemon"
-
-command="/usr/sbin/nix-daemon"
-command_background="yes"
-pidfile="/run/$RC_SVCNAME.pid"
diff --git a/testing/nix/nix-profile.sh b/testing/nix/nix-profile.sh
deleted file mode 100644
index 527122d3222..00000000000
--- a/testing/nix/nix-profile.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-# Profile for Nix package manager
-# This script is based on https://github.com/NixOS/nix/blob/master/scripts/nix-profile.sh.in.
-
-# Sanity check
-[ "$HOME" ] && [ "$USER" ] || return 0
-
-_nix_setup_user() {
- local nix_profile="$HOME/.nix-profile"
- local nix_defexpr="$HOME/.nix-defexpr"
- local profiles_dir="/nix/var/nix/profiles"
- local user_profile_dir="$profiles_dir/per-user/$USER"
- local user_gcroots_dir="/nix/var/nix/gcroots/per-user/$USER"
-
- mkdir -m 0755 -p "$user_profile_dir"
- [ -O "$user_profile_dir" ] \
- || echo "Nix: WARNING: bad ownership on $user_profile_dir, should be $(id -u)" >&2
-
- [ -w "$HOME" ] || return 0
-
- # Create ~/.nix-profile if needed.
- if ! [ -L "$nix_profile" ]; then
- echo "Nix: creating $nix_profile" >&2
-
- if [ "$USER" = root ]; then
- # Root installs in the system-wide profile by default.
- ln -s "$profiles_dir/default" "$nix_profile" \
- || echo "Nix: WARNING: could not create $nix_profile -> $profiles_dir/default" >&2
- else
- ln -s "$user_profile_dir/profile" "$nix_profile" \
- || echo "Nix: WARNING: could not create $nix_profile -> $user_profile_dir/profile" >&2
- fi
- fi
-
- # Subscribe the user to the unstable Nixpkgs channel by default.
- if ! [ -e "$HOME/.nix-channels" ]; then
- echo 'https://nixos.org/channels/nixpkgs-unstable nixpkgs' > "$HOME/.nix-channels"
- fi
-
- # Create the per-user garbage collector roots directory.
- mkdir -m 0755 -p "$user_gcroots_dir"
- [ -O "$user_gcroots_dir" ] \
- || echo "Nix: WARNING: bad ownership on $user_gcroots_dir, should be $(id -u)" >&2
-
- # Set up a default Nix expression from which to install stuff.
- if [ ! -e "$nix_defexpr" -o -L "$nix_defexpr" ]; then
- rm -f "$nix_defexpr"
- mkdir -p "$nix_defexpr"
-
- if [ "$USER" != root ]; then
- ln -s "$profiles_dir"/per-user/root/channels "$nix_defexpr"/channels_root
- fi
- fi
-
- export NIX_PROFILES="$NIX_PROFILES $nix_profile"
-
- # Append ~/.nix-defexpr/channels/nixpkgs to $NIX_PATH so that <nixpkgs>
- # paths work when the user has fetched the Nixpkgs channel.
- export NIX_PATH="${NIX_PATH:+$NIX_PATH:}nixpkgs=$nix_defexpr/channels/nixpkgs"
-
- # Set up secure multi-user builds; non-root users build through the Nix daemon.
- [ "$USER" = root ] || export NIX_REMOTE='daemon'
-}
-
-
-# Set $NIX_SSL_CERT_FILE so that Nixpkgs applications like curl work.
-export NIX_SSL_CERT_FILE='/etc/ssl/certs/ca-certificates.crt'
-
-# The default profile for all users.
-export NIX_PROFILES='/nix/var/nix/profiles/default'
-
-# Set up environment for users that are allowed to build and install Nix
-# packages: root and members of nix or wheel group.
-if [ "$USER" = root ] || id -nG | grep -Eq '\b(nix|wheel)\b'; then
- _nix_setup_user
-fi
-
-# Set up PATH and MANPATH.
-for _i in $NIX_PROFILES; do
- export PATH="$_i/bin:$PATH"
- [ "$MANPATH" ] && export MANPATH="$_i/share/man:$MANPATH"
-done
-
-unset _i
-unset -f _nix_setup_user
diff --git a/testing/nix/nix.pre-install b/testing/nix/nix.pre-install
deleted file mode 100644
index 04bca100955..00000000000
--- a/testing/nix/nix.pre-install
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-addgroup -S nix 2>/dev/null
-addgroup -S nixbld 2>/dev/null
-for n in $(seq 0 3); do
- adduser -S -D -H -h /var/empty -s /sbin/nologin -G nixbld \
- -g "Nix build user $n" nixbld$n 2>/dev/null
-done
-
-exit 0
diff --git a/testing/nixpacks/APKBUILD b/testing/nixpacks/APKBUILD
new file mode 100644
index 00000000000..8de3a985b13
--- /dev/null
+++ b/testing/nixpacks/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Tomio <mail@tom1o.space>
+# Maintainer: Tomio <mail@tom1o.space>
+pkgname=nixpacks
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="Generate an OCI compliant image based off app source."
+url="https://github.com/railwayapp/nixpacks"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by alpine's integration/bootstrapping (https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/35671#note_243623)
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="https://github.com/railwayapp/nixpacks/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
+
+
+build() {
+ cargo auditable build --release
+}
+
+check() {
+ # Only generate_plan_tests, docker_run_tests needs docker
+ cargo test --test generate_plan_tests
+}
+
+package() {
+ install -D -m755 target/release/nixpacks -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+66f437f3a4e357886a1eba59411d543f585b3204e662afcc2ef5d701d2d221f3ec4de9c7852de712eef2f9c7c8822822d7f6534597d58aab3b99ccf8e64a7c52 nixpacks-0.1.7.tar.gz
+"
diff --git a/testing/nkk/APKBUILD b/testing/nkk/APKBUILD
new file mode 100644
index 00000000000..8c1496af876
--- /dev/null
+++ b/testing/nkk/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=nkk
+pkgver=0_git20221010
+_commit=b3c87f883d6bad7a
+pkgrel=0
+pkgdesc="Simple wayland client library briding the gap from cairo to wayland"
+url="https://code.jessemcclure.org/nkk/"
+arch="all"
+license="MIT"
+depends_dev="
+ cairo-dev
+ libxkbcommon-dev
+ mesa-dev
+ pango-dev
+ wayland-dev
+ "
+makedepends="$depends_dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://code.jessemcclure.org/nkk/tarball/$_commit/nkk-$_commit.tar.gz
+ pc-opengl.patch
+ "
+builddir="$srcdir/nkk-$_commit"
+options="!check" # no testsuite provided
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b66a03ef446ed3b005c41db967f71385601a9b9d85b9ecf3567fd5564eb38962f1dbc0356da36750a9076b59aa4aa2abb35220da5d4e6fe0b36e9339fdc87ff2 nkk-b3c87f883d6bad7a.tar.gz
+5088862425121660e3ca3a16af29260b501d266e269f9502ccf176e974da517c8c4081d4113b715491f803012550c7e3664ccd1360a1d1b5c0557382de121499 pc-opengl.patch
+"
diff --git a/testing/nkk/pc-opengl.patch b/testing/nkk/pc-opengl.patch
new file mode 100644
index 00000000000..60f87bc4bff
--- /dev/null
+++ b/testing/nkk/pc-opengl.patch
@@ -0,0 +1,14 @@
+opengl.pc is glvnd
+--
+diff --git a/nkk.pc b/nkk.pc
+index dbe8e64..38837f1 100644
+--- a/nkk.pc
++++ b/nkk.pc
+@@ -5,6 +5,6 @@ includedir=${prefix}/include
+ Name: nkk
+ Description: Wayland client library
+ Version: 0.1
+-Requires: opengl pangocairo wayland-egl
++Requires: egl pangocairo wayland-egl
+ Requires.private: wayland-client xkbcommon
+ Libs: -L${libdir} -lnkk
diff --git a/testing/nlohmann-json/APKBUILD b/testing/nlohmann-json/APKBUILD
deleted file mode 100644
index b4018176fd3..00000000000
--- a/testing/nlohmann-json/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Nick Black <dankamongmen@gmail.com>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nlohmann-json
-pkgver=3.7.3
-pkgrel=1
-pkgdesc="JSON for Modern C++"
-url="https://github.com/nlohmann/json"
-arch="noarch"
-license="MIT"
-makedepends="cmake doxygen graphviz"
-subpackages="$pkgname-doc"
-source="nlohmann-json-$pkgver.tar.gz::https://github.com/nlohmann/json/archive/v$pkgver.tar.gz"
-builddir="$srcdir/json-$pkgver"
-
-build() {
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- make
- make -C doc
-}
-
-check() {
- local skipped_tests=
- if [ "$CARCH" = "aarch64" ]; then
- # test-unicode_all takes too long and times out
- skipped_tests="$skipped_tests|test-unicode_all"
- fi
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E "($skipped_tests)"
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname
- mv doc/html "$pkgdir"/usr/share/doc/$pkgname/
-}
-
-sha512sums="c416b1e14f1fd695fc30a56127ca6440de4b334858ced54a6424d9d093e4665e74b7048f9ab7253ac02ac870e64a2868c78e6c2d6de80d1bd49e50a850cec865 nlohmann-json-3.7.3.tar.gz"
diff --git a/testing/nlopt/APKBUILD b/testing/nlopt/APKBUILD
new file mode 100644
index 00000000000..0be29fe46b0
--- /dev/null
+++ b/testing/nlopt/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=nlopt
+pkgver=2.7.1
+pkgrel=0
+pkgdesc="library for nonlinear optimization, wrapping many algorithms for global and local, constrained or unconstrained, optimization"
+url="https://github.com/stevengj/nlopt/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="samurai cmake"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/stevengj/nlopt/archive/refs/tags/v$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 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=minsizerel \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+e23cb522fc696010574c14b72be85acc0f8ccf0bf208bf2b8789c57d6c5a6e6d419ee10330581518b1c1567018ae909b626ce7761d4fbd5bf112916871e420e2 nlopt-2.7.1.tar.gz
+"
diff --git a/testing/nm-tray/APKBUILD b/testing/nm-tray/APKBUILD
new file mode 100644
index 00000000000..90632a2fc06
--- /dev/null
+++ b/testing/nm-tray/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: cristian_ci <cristian_ci@protonmail.com>
+# Maintainer: cristian_ci <cristian_ci@protonmail.com>
+pkgname=nm-tray
+pkgver=0.5.0
+pkgrel=0
+pkgdesc="Simple NetworkManager front end based on Qt"
+url="https://github.com/palinek/nm-tray"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ networkmanager-qt5-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/palinek/nm-tray/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DNM_TRAY_XDG_AUTOSTART_DIR=/etc/xdg/autostart
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+lang() {
+ install_if="lang $pkgname=$pkgver-r$pkgrel"
+ amove usr/share/$pkgname/*.qm
+}
+
+sha512sums="
+ba118f7fd07a60af5ed6b7b53cf771f339c89f9bef02aeb2f59bfbddd3e896bdc31aa506437e33cb8fe2ef921c595b76527d61cefd202e9e1f5197762b69ab51 nm-tray-0.5.0.tar.gz
+"
diff --git a/testing/nmail/APKBUILD b/testing/nmail/APKBUILD
new file mode 100644
index 00000000000..710e09def4d
--- /dev/null
+++ b/testing/nmail/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=nmail
+pkgver=4.54
+pkgrel=0
+pkgdesc="Terminal-based email client"
+url="https://github.com/d99kris/nmail"
+arch="all"
+license="MIT"
+depends="cyrus-sasl-login"
+makedepends="
+ cmake
+ cyrus-sasl-dev
+ file-dev
+ libetpan-dev
+ linux-headers
+ ncurses-dev
+ openssl-dev
+ samurai
+ sqlite-dev
+ util-linux-dev
+ xapian-core-dev
+ "
+subpackages="$pkgname-doc $pkgname-oauth::noarch"
+source="https://github.com/d99kris/nmail/archive/v$pkgver/nmail-$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DHAS_CUSTOM_LIBETPAN=OFF
+ cmake --build build
+}
+
+check() {
+ ./build/nmail --version
+
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dvm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+oauth() {
+ pkgdesc="$pkgdesc (OAuth2 Python helper script)"
+ depends="$pkgname=$pkgver-r$pkgrel py3-requests"
+
+ amove usr/bin/oauth2nmail
+}
+
+sha512sums="
+e8c221bfa4891d1133ad98d273c75b522644c7e21f36d869b33e933205aad959e44012406fffdc028fefef07632c9609bacd56d3486de371b6a04bb69c1d1bc1 nmail-4.54.tar.gz
+"
diff --git a/testing/nmap-parse-output/APKBUILD b/testing/nmap-parse-output/APKBUILD
new file mode 100644
index 00000000000..ad9b2d3b3c9
--- /dev/null
+++ b/testing/nmap-parse-output/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=nmap-parse-output
+pkgver=1.5.1
+pkgrel=0
+pkgdesc="Converts/manipulates/extracts data from a Nmap scan output."
+url="https://github.com/ernw/nmap-parse-output"
+arch="noarch"
+license="BSD-3-Clause"
+depends="bash libxslt"
+subpackages="$pkgname-bash-completion $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ernw/nmap-parse-output/archive/v$pkgver.tar.gz"
+options="!check"
+
+package() {
+ install -Dm 755 -t "$pkgdir/usr/share/$pkgname/" nmap-parse-output
+ install -Dm 644 -t "$pkgdir/usr/share/$pkgname/nmap-parse-output-xslt/" nmap-parse-output-xslt/*
+ install -dm 755 "$pkgdir/usr/bin"
+ ln -sf "/usr/share/$pkgname/$pkgname" "$pkgdir/usr/bin/$pkgname"
+
+ # bash-completion
+ install -Dm 644 _nmap-parse-output "$pkgdir/usr/share/bash-completion/completions/nmap-parse-output"
+
+ # doc
+ install -Dm 644 -t "$pkgdir/usr/share/doc/$pkgname/" README.md
+ install -Dm 644 -t "$pkgdir/usr/share/doc/$pkgname/" demo.gif
+ install -Dm 644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
+ install -Dm 644 -t "$pkgdir/usr/share/licenses/$pkgname/" ThirdPartyNotices.md
+}
+
+sha512sums="
+460705435905bf08f71c66af107c453ee3090d3f9e9381417e78d13811f22646e76fa311718e88f75083756b4d368431d7c47df0747031d5631fe63fcbf77726 nmap-parse-output-1.5.1.tar.gz
+"
diff --git a/testing/nmon/APKBUILD b/testing/nmon/APKBUILD
new file mode 100644
index 00000000000..e50fe4583f9
--- /dev/null
+++ b/testing/nmon/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=nmon
+pkgver=16p
+pkgrel=0
+pkgdesc="Nigel's performance Monitor for Linux"
+url="https://nmon.sourceforge.net/"
+arch="all"
+license="BSD-3-Clause"
+options="!check" # no upstream tests
+makedepends="ncurses-dev"
+source="
+ glibc.patch
+
+ https://sourceforge.net/projects/nmon/files/lmon$pkgver.c
+ "
+
+prepare() {
+ mkdir "$builddir"
+ cp lmon$pkgver.c "$builddir"/lmon.c
+ default_prepare
+}
+
+build() {
+ case "$CARCH" in
+ ppc64le) _BUILD_ARCH="POWER" ;;
+ s390x) _BUILD_ARCH="MAINFRAME" ;;
+ arm*|aarch64) _BUILD_ARCH="ARM" ;;
+ *) _BUILD_ARCH="X86" ;;
+ esac
+
+ echo "Building for $_BUILD_ARCH"
+ cc -o nmon lmon.c -g -O3 -Wall -lncurses -lm \
+ -D $_BUILD_ARCH -D JFS -D GETUSER -D LARGEMEM
+}
+
+package() {
+ install -Dm0755 nmon "$pkgdir"/usr/bin/nmon
+}
+
+sha512sums="
+c6749baeeefbb5fa781badcf0a3b1a77792498663155b70f00ae8da751eb72ac38f1f734fd9e2eb32cb364938e366453f50e29928f247b945b684021fbde9af5 glibc.patch
+137a54e49a43f0197dc1edc039bcba7e0a51965c8e49b0034123e1d1d540fb7cec8203bca691dcbe0621b8667a73c572bd9b7b3f7e20948d62d8b9b76124edba lmon16p.c
+"
diff --git a/testing/nmon/glibc.patch b/testing/nmon/glibc.patch
new file mode 100644
index 00000000000..9418f2d421e
--- /dev/null
+++ b/testing/nmon/glibc.patch
@@ -0,0 +1,29 @@
+From: Mike Crute <mike@crute.us>
+Date: Sun, 31 May 2020 19:26:32 +0000
+Subject: [PATCH] Add glibc compatibility to nmon
+
+musl is missing some compatibility with glibc which this patch adds to the nmon
+source. The fstab.h header was not used and fails to build if it's included.
+
+---
+
+--- a/lmon.c
++++ b/lmon.c
+@@ -42,6 +42,9 @@
+ pi_delayacct_blkio_ticks
+ */
+
++/* Fix compatibility for glibc */
++#define __STRING(x) #x
++
+ /* note: RAW assumes you are using the index "i" to select the CPU */
+ #define RAW(member) (long)((long)(p->cpuN[i].member) - (long)(q->cpuN[i].member))
+ #define RAWTOTAL(member) (long)((long)(p->cpu_total.member) - (long)(q->cpu_total.member))
+@@ -583,7 +586,6 @@
+ int isroot = 0;
+
+ #include <mntent.h>
+-#include <fstab.h>
+ #include <sys/stat.h>
+ #include <sys/statfs.h>
+ #include <net/if.h>
diff --git a/testing/noblenote/APKBUILD b/testing/noblenote/APKBUILD
new file mode 100644
index 00000000000..6484058c3c0
--- /dev/null
+++ b/testing/noblenote/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=noblenote
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Program to make and manage notes"
+url="https://github.com/hakaishi/nobleNote"
+arch="all"
+license="MIT"
+makedepends="qt5-qtbase-dev qt5-qttools-dev coreutils"
+source="https://github.com/hakaishi/nobleNote/archive/v$pkgver/nobleNote-$pkgver.tar.gz"
+options="!check" # No test suite
+builddir="$srcdir/nobleNote-$pkgver"
+
+prepare() {
+ default_prepare
+ sed -i 's|Icon=noblenote|Icon=/usr/share/pixmaps/noblenote-icons/noblenote|' noblenote.desktop
+}
+
+build() {
+ qmake-qt5 PREFIX=/usr
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ install -Dm644 noblenote.desktop \
+ "$pkgdir"/usr/share/applications/noblenote.desktop
+}
+
+sha512sums="3c218931f6bff313dbeeec15ad486feef6bb5a467a308a6e2eec10b6ccdc9bd60bf58f1ebebc0e69c634e62b08ea9b9f5440bd1830f9d25d0cd7dd7fa18af122 nobleNote-1.2.1.tar.gz"
diff --git a/testing/node-closurecompiler-externs/APKBUILD b/testing/node-closurecompiler-externs/APKBUILD
deleted file mode 100644
index 486ef0f378a..00000000000
--- a/testing/node-closurecompiler-externs/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=node-closurecompiler-externs
-_pkgname=node.js-closure-compiler-externs
-_npmname=closurecompiler-externs
-pkgver=1.0.4
-pkgrel=0
-pkgdesc="A collection of node.js externs for use with Closure Compiler"
-url="https://github.com/dcodeIO/node.js-closure-compiler-externs"
-arch="noarch !mips !mips64" # blocked by nodejs
-license="Apache-2.0"
-depends="nodejs"
-source="$pkgname-$pkgver.tar.gz::https://github.com/dcodeIO/$_pkgname/archive/$pkgver.tar.gz
- domain.js-fix-type-annotations.patch"
-builddir="$srcdir/$_pkgname-$pkgver"
-options="!check"
-
-package() {
- local destdir="$pkgdir/usr/lib/node_modules/$_npmname"
-
- mkdir -p "$destdir"
- cp -R "$builddir"/* "$destdir"/
-
- cd "$destdir"
- rm -r tests *.md *.png LICENSE
-}
-
-sha512sums="74965e7519bf618dd0ebf85a8716e1e4156bb6b696598ee405c0da4e9e646a4f84838a1e4b12cf8936b2871010adf363d1611726185b3b273d94c4be1c78c298 node-closurecompiler-externs-1.0.4.tar.gz
-68189a32cef61ebd9dc19ddc6e0e8cf750b6205ee3d82ba17e49f831e9ad813e33c3629ce1aebaf91d644d39378651901c72959f6a4960353288e28573d002d5 domain.js-fix-type-annotations.patch"
diff --git a/testing/node-closurecompiler-externs/domain.js-fix-type-annotations.patch b/testing/node-closurecompiler-externs/domain.js-fix-type-annotations.patch
deleted file mode 100644
index c638747b251..00000000000
--- a/testing/node-closurecompiler-externs/domain.js-fix-type-annotations.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8a76d75392291c80a6b303133b95a31d98fd2f5c Mon Sep 17 00:00:00 2001
-From: Andrew Keller <andrew@wimpyprogrammer.com>
-Date: Wed, 18 Feb 2015 22:45:15 -0500
-Subject: [PATCH] Fixing type annotations in domain.js
-
-Fixing the syntax of the type annotations for variable number, any type callbacks to avoid warnings from the Closure Compiler.
-
-Upstream-Commit: https://github.com/dcodeIO/node.js-closure-compiler-externs/commit/8a76d75392291c80a6b303133b95a31d98fd2f5c
----
- domain.js | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/domain.js b/domain.js
-index 3349561..6136f91 100644
---- a/domain.js
-+++ b/domain.js
-@@ -64,14 +64,14 @@ domain.Domain.prototype.add = function(emitter) {};
- domain.Domain.prototype.remove = function(emitter) {};
-
- /**
-- * @param {function(...[*])} callback
-- * @return {function(...[*])}
-+ * @param {function(...*)} callback
-+ * @return {function(...*)}
- */
- domain.Domain.prototype.bind = function(callback) {};
-
- /**
-- * @param {function(...[*])} callback
-- * @return {function(...[*])}
-+ * @param {function(...*)} callback
-+ * @return {function(...*)}
- */
- domain.Domain.prototype.intercept = function(callback) {};
-
diff --git a/testing/node-libpg-query/APKBUILD b/testing/node-libpg-query/APKBUILD
new file mode 100644
index 00000000000..2f1483f6dea
--- /dev/null
+++ b/testing/node-libpg-query/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=node-libpg-query
+_npmname=libpg-query
+pkgver=13.1.2
+# XXX: upstream does not use tags
+_gitrev=f34989e21713a66938f559480230359b4a7d3c31
+pkgrel=4
+pkgdesc="The real PostgreSQL query parser for Node.js (experimental aport!)"
+url="https://github.com/pyramation/libpg-query-node"
+# riscv64: missing libpg_query
+# x86: textrels
+# armhf, armv7: blocked by libpg_query
+arch="all !x86 !riscv64 !armhf !armv7"
+license="MIT"
+makedepends="libpg_query-dev nodejs-dev python3 yarn"
+source="https://github.com/pyramation/libpg-query-node/archive/$_gitrev/$pkgname-$_gitrev.tar.gz
+ gyp.patch
+ package.patch
+ bump-gyp.patch
+ "
+builddir="$srcdir/$_npmname-node-$_gitrev"
+
+prepare() {
+ default_prepare
+ sed -Eix 's/"pg_query.h"/<pg_query.h>/' queryparser.cc src/*
+}
+
+build() {
+ yarn install --frozen-lockfile --ignore-scripts --non-interactive
+ yarn rebuild --release --verbose --nodedir=/usr/include/node
+ yarn pack -f package.tgz
+}
+
+check() {
+ yarn check
+}
+
+package() {
+ tar -xf package.tgz \
+ --strip-components=1 \
+ --one-top-level="$pkgdir"/usr/lib/node_modules/$_npmname
+}
+
+sha512sums="
+54f28409383783877f66a40375a663401c5fd2b8a6a73c059e6d286cb28332c489f1bf7ed67c6aaaab164a9443ad347f6bd7031dc4fdc5eac389c0bf40b16256 node-libpg-query-f34989e21713a66938f559480230359b4a7d3c31.tar.gz
+54d3a540fc351a4e8530ad7455b25df666efef564699626da363531caf483785abea1bf1ba7b895c385af852dfffbd032c759d2cd73882bf77b8836aa9c9bbda gyp.patch
+d6656ddc5ee9b0c3365bb4f6f7deb0fea24cadf08450a09e0615a2c7c44f65ce6e2dcbddcf921af92bf9a3608d0134d1b2910b1af9e97b79a62600bab4f11f34 package.patch
+aeff0d4fd3c0f0713607b98d682b1c46ee118586370cbb3f870ca67b90034cb075c2f443e2f21fa107f3c8a02e5ae905d9e836c64dfbde60068c6e249bb2123b bump-gyp.patch
+"
diff --git a/testing/node-libpg-query/bump-gyp.patch b/testing/node-libpg-query/bump-gyp.patch
new file mode 100644
index 00000000000..a09fff81fef
--- /dev/null
+++ b/testing/node-libpg-query/bump-gyp.patch
@@ -0,0 +1,57 @@
+diff --git a/package.json b/package.json
+index 89c42ac..d976ff8 100644
+--- a/package.json
++++ b/package.json
+@@ -32,3 +32,3 @@
+ "node-addon-api": "^1.6.3",
+- "node-gyp": "^8.0.0"
++ "node-gyp": "~8.2.0"
+ },
+diff --git a/yarn.lock b/yarn.lock
+index bf81a2d..9cc9bd7 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -479,2 +479,7 @@ minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
+
++minipass@^5.0.0:
++ version "5.0.0"
++ resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
++ integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
++
+ minizlib@^2.0.0, minizlib@^2.1.1:
+@@ -536,6 +541,6 @@ node-addon-api@^1.6.3:
+
+-node-gyp@^8.0.0:
+- version "8.0.0"
+- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.0.0.tgz#225af2b06b8419ae81f924bf25ae4c167f6378a5"
+- integrity sha512-Jod6NxyWtcwrpAQe0O/aXOpC5QfncotgtG73dg65z6VW/C6g/G4jiajXQUBIJ8pk/VfM6mBYE9BN/HvudTunUQ==
++node-gyp@~8.2.0:
++ version "8.2.0"
++ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.2.0.tgz#ef509ccdf5cef3b4d93df0690b90aa55ff8c7977"
++ integrity sha512-KG8SdcoAnw2d6augGwl1kOayALUrXW/P2uOAm2J2+nmW/HjZo7y+8TDg7LejxbekOOSv3kzhq+NSUYkIDAX8eA==
+ dependencies:
+@@ -549,3 +554,3 @@ node-gyp@^8.0.0:
+ semver "^7.3.5"
+- tar "^6.1.0"
++ tar "^6.1.2"
+ which "^2.0.2"
+@@ -742,3 +747,3 @@ supports-color@5.4.0:
+
+-tar@^6.0.2, tar@^6.1.0:
++tar@^6.0.2:
+ version "6.1.0"
+@@ -754,2 +759,14 @@ tar@^6.0.2, tar@^6.1.0:
+
++tar@^6.1.2:
++ version "6.2.1"
++ resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
++ integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
++ dependencies:
++ chownr "^2.0.0"
++ fs-minipass "^2.0.0"
++ minipass "^5.0.0"
++ minizlib "^2.1.1"
++ mkdirp "^1.0.3"
++ yallist "^4.0.0"
++
+ type-detect@0.1.1:
diff --git a/testing/node-libpg-query/gyp.patch b/testing/node-libpg-query/gyp.patch
new file mode 100644
index 00000000000..853e185ba48
--- /dev/null
+++ b/testing/node-libpg-query/gyp.patch
@@ -0,0 +1,18 @@
+--- a/binding.gyp
++++ b/binding.gyp
+@@ -11,13 +11,13 @@
+ 'cflags!': [ '-fno-exceptions' ],
+ 'cflags_cc!': [ '-fno-exceptions' ],
+ 'include_dirs': [
+- "libpg_query/include",
++ "/usr/include/node",
+ "<!@(node -p \"require('node-addon-api').include\")"
+ ],
+ 'dependencies': ["<!(node -p \"require('node-addon-api').gyp\")"],
+ 'conditions': [
+ ['OS=="linux"', {
+- "libraries": [ "-L<!(pwd)/libpg_query/linux", "-lpg_query" ]
++ "libraries": [ "-lpg_query" ]
+ }],
+ ['OS=="mac"', {
+ "libraries": [ "-L<!(pwd)/libpg_query/osx", "-lpg_query" ],
diff --git a/testing/node-libpg-query/package.patch b/testing/node-libpg-query/package.patch
new file mode 100644
index 00000000000..b6f3f00bff6
--- /dev/null
+++ b/testing/node-libpg-query/package.patch
@@ -0,0 +1,33 @@
+--- a/package.json
++++ b/package.json
+@@ -8,13 +8,16 @@
+ "publishConfig": {
+ "access": "public"
+ },
++ "files": [
++ "index.js",
++ "index.d.ts",
++ "build/Release/queryparser.node"
++ ],
+ "scripts": {
+ "configure": "node-gyp configure",
+ "build": "node-gyp configure build",
+ "rebuild": "node-gyp configure rebuild",
+- "test": "mocha --timeout 5000",
+- "preinstall": "script/buildAddon.sh",
+- "postinstall": "node-gyp rebuild"
++ "test": "mocha --timeout 5000"
+ },
+ "author": "Dan Lynch <pyramation@gmail.com> (http://github.com/pyramation)",
+ "license": "LICENSE IN LICENSE",
+@@ -25,9 +28,7 @@
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "lodash": "^4.17.15",
+- "mocha": "^5.2.0"
+- },
+- "dependencies": {
++ "mocha": "^5.2.0",
+ "node-addon-api": "^1.6.3",
+ "node-gyp": "^8.0.0"
+ },
diff --git a/testing/nodejs18/APKBUILD b/testing/nodejs18/APKBUILD
new file mode 100644
index 00000000000..821d86af505
--- /dev/null
+++ b/testing/nodejs18/APKBUILD
@@ -0,0 +1,222 @@
+# Contributor: Jose-Luis Rivas <ghostbar@riseup.net>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Dave Esaias <dave@containership.io>
+# Contributor: Tadahisa Kamijo <kamijin@live.jp>
+# Contributor: Eivind Uggedal <eu@eju.no>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+#
+# secfixes:
+# 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
+# - CVE-2021-44533
+# - CVE-2022-21824
+# 14.18.1-r0:
+# - CVE-2021-22959
+# - CVE-2021-22960
+# 14.17.6-r0:
+# - CVE-2021-37701
+# - CVE-2021-37712
+# - CVE-2021-37713
+# - CVE-2021-39134
+# - CVE-2021-39135
+# 14.17.5-r0:
+# - CVE-2021-3672
+# - CVE-2021-22931
+# - CVE-2021-22939
+# 14.17.4-r0:
+# - CVE-2021-22930
+# 14.16.1-r0:
+# - CVE-2020-7774
+# 14.16.0-r0:
+# - CVE-2021-22883
+# - CVE-2021-22884
+# 14.15.5-r0:
+# - CVE-2021-21148
+# 14.15.4-r0:
+# - CVE-2020-8265
+# - CVE-2020-8287
+# 14.15.1-r0:
+# - CVE-2020-8277
+# 12.18.4-r0:
+# - CVE-2020-8201
+# - CVE-2020-8252
+# 12.18.0-r0:
+# - CVE-2020-8172
+# - CVE-2020-11080
+# - CVE-2020-8174
+# 12.15.0-r0:
+# - CVE-2019-15606
+# - CVE-2019-15605
+# - CVE-2019-15604
+# 10.16.3-r0:
+# - CVE-2019-9511
+# - CVE-2019-9512
+# - CVE-2019-9513
+# - CVE-2019-9514
+# - CVE-2019-9515
+# - CVE-2019-9516
+# - CVE-2019-9517
+# - CVE-2019-9518
+# 10.15.3-r0:
+# - CVE-2019-5737
+# 10.14.0-r0:
+# - CVE-2018-12121
+# - CVE-2018-12122
+# - CVE-2018-12123
+# - CVE-2018-0735
+# - CVE-2018-0734
+# 8.11.4-r0:
+# - CVE-2018-12115
+# 8.11.3-r0:
+# - CVE-2018-7167
+# - CVE-2018-7161
+# - CVE-2018-1000168
+# 8.11.0-r0:
+# - CVE-2018-7158
+# - CVE-2018-7159
+# - CVE-2018-7160
+# 8.9.3-r0:
+# - CVE-2017-15896
+# - CVE-2017-15897
+# 6.11.5-r0:
+# - CVE-2017-14919
+# 6.11.1-r0:
+# - CVE-2017-1000381
+# 0:
+# - CVE-2021-43803
+# - CVE-2022-32212
+
+# temporary package to fix testing/code-oss builds
+pkgname=nodejs18
+# 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=18.19.1
+pkgrel=0
+pkgdesc="JavaScript runtime built on V8 engine - LTS version (temporary hack)"
+url="https://nodejs.org/"
+arch="aarch64 x86_64"
+license="MIT"
+depends="ca-certificates"
+makedepends="
+ brotli-dev
+ c-ares-dev
+ icu-dev
+ linux-headers
+ nghttp2-dev
+ openssl-dev
+ py3-jinja2
+ python3
+ samurai
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+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
+ "
+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 \
+ deps/cares \
+ deps/corepack \
+ deps/openssl/* \
+ deps/v8/third_party/jinja2 \
+ deps/zlib \
+ tools/inspector_protocol/jinja2
+
+ mv nodejs-openssl.cnf deps/openssl/
+
+ # the build system tries to import from the riscv folder for some reason
+ # the push_registers_asm.cc has definitions fo 64 bit riscv only
+ cp -r deps/v8/src/heap/base/asm/riscv64 deps/v8/src/heap/base/asm/riscv
+}
+
+build() {
+ # Add defines recommended in libuv readme.
+ local common_flags="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+
+ # 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"
+
+ # 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
+ # libuv incompatibility.
+ #
+ # NOTE: We don't package the bundled npm - it's a separate project with
+ # its own release cycle and version numbering, so it's better to keep
+ # it in a standalone aport.
+ #
+ # TODO: Fix and enable corepack.
+ python3 configure.py --prefix=/usr \
+ --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
+
+ make BUILDTYPE=Release
+}
+
+# TODO Run provided test suite.
+check() {
+ cd "$builddir"/out/Release
+
+ ./node -e 'console.log("Hello, world!")'
+ ./node -e "require('assert').equal(process.versions.node, '$pkgver')"
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ mv "$pkgdir"/usr/bin/node "$pkgdir"/usr/bin/node18
+ mv "$pkgdir"/usr/include/node "$pkgdir"/usr/include/node18
+}
+
+sha512sums="
+039359089d0383808ac3929b97995d23bfa02b4cd150492888942fd51d6d7d60df174dbf14d7764dae379d4251ca02b6c1702bce8b79d4f99fff23c7874469f7 node-v18.19.1.tar.gz
+8c264eefc0bfa9dd57656f9f515e940d5c21b8d836dc549031ee559ba909643f4f2495b8b392ee9976c5eed7c3b4a09db876bbe0f7fcd5b2bf63fafca37bffc2 disable-running-gyp-on-shared-deps.patch
+30ca1ce7f9512c943950b8eec98bca99d24c740ebaa14619292fe5ed931dcf603ca90afb1d704ca7f545e421752ba4dde81c0c5bbb5242eb1726739ca627e15f fix-build-with-system-c-ares.patch
+"
diff --git a/testing/nodejs18/disable-running-gyp-on-shared-deps.patch b/testing/nodejs18/disable-running-gyp-on-shared-deps.patch
new file mode 100644
index 00000000000..ce3cbe224c1
--- /dev/null
+++ b/testing/nodejs18/disable-running-gyp-on-shared-deps.patch
@@ -0,0 +1,22 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 26 Nov 2016 01:32:00 +0200
+Subject: Disable running gyp on shared deps
+
+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
+@@ -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
diff --git a/testing/nodejs18/fix-build-with-system-c-ares.patch b/testing/nodejs18/fix-build-with-system-c-ares.patch
new file mode 100644
index 00000000000..8121891d048
--- /dev/null
+++ b/testing/nodejs18/fix-build-with-system-c-ares.patch
@@ -0,0 +1,535 @@
+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/testing/noggin-model/APKBUILD b/testing/noggin-model/APKBUILD
new file mode 100644
index 00000000000..f8b3a9dd2aa
--- /dev/null
+++ b/testing/noggin-model/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: John Gebbie <me@johngebbie.com>
+# Maintainer: John Gebbie <me@johngebbie.com>
+pkgname=noggin-model
+pkgver=0.1
+pkgrel=0
+pkgdesc="Face landmark tracking model"
+url="https://sr.ht/~geb/noggin"
+arch="noarch"
+license="BSD-2-Clause"
+subpackages="$pkgname-lightweight"
+source="noggin-$pkgver.tar.gz::https://git.sr.ht/~geb/noggin/archive/$pkgver.tar.gz"
+builddir="$srcdir/noggin-$pkgver"
+options="!check" # just data
+
+package() {
+ install -Dm644 models/lm_model3_opt.onnx -t "$pkgdir"/usr/share/noggin-models
+ install -Dm644 models/lm_model0_opt.onnx -t "$pkgdir"/usr/share/noggin-models
+}
+
+lightweight() {
+ amove usr/share/noggin-models/lm_model0_opt.onnx
+}
+
+sha512sums="
+5da081eb8cb51ac3460d7e4c427a844ca95f50f768a9ada9e5fde2644b1cc51ae9f2745eccf88ecf0f49a6fd5c1fcc36d827ee1f32d1c4550fe65547f9baaf09 noggin-0.1.tar.gz
+"
diff --git a/testing/noggin/APKBUILD b/testing/noggin/APKBUILD
new file mode 100644
index 00000000000..c62c1fbb63f
--- /dev/null
+++ b/testing/noggin/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: John Gebbie <me@johngebbie.com>
+# Maintainer: John Gebbie <me@johngebbie.com>
+pkgname=noggin
+pkgver=0.1
+pkgrel=7
+pkgdesc="Face tracking utility, often for playing games"
+url="https://sr.ht/~geb/noggin"
+# limited by onnxruntime and opencv
+arch="all !x86 !s390x !riscv64 !ppc64le"
+license="GPL-3.0-only"
+depends="onnxruntime"
+makedepends="go scdoc opencv-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~geb/noggin/archive/$pkgver.tar.gz"
+options="!check" # no test suite
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+export NOGGIN_VERSION="$pkgver"
+export NOGGIN_MODEL_PACKAGE=noggin-model
+export NOGGIN_SKIP_CHECKS=yes
+export NOGGIN_SKIP_EXAMPLES=yes
+
+build() {
+ NOGGIN_SKIP_INSTALL=yes ./install.sh "$pkgdir" /usr/bin
+}
+
+package() {
+ install -Dm755 noggin -t "$pkgdir/usr/bin"
+ NOGGIN_SKIP_BINARY=yes NOGGIN_SKIP_MODELS=yes ./install.sh "$pkgdir" /usr/bin
+}
+
+sha512sums="
+5da081eb8cb51ac3460d7e4c427a844ca95f50f768a9ada9e5fde2644b1cc51ae9f2745eccf88ecf0f49a6fd5c1fcc36d827ee1f32d1c4550fe65547f9baaf09 noggin-0.1.tar.gz
+"
diff --git a/testing/noice/APKBUILD b/testing/noice/APKBUILD
index 9eea829fddf..bf6586cbafa 100644
--- a/testing/noice/APKBUILD
+++ b/testing/noice/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: sin <sin@2f30.org>
pkgname=noice
pkgver=0.8
-pkgrel=0
+pkgrel=1
pkgdesc="A simple file browser"
url="https://git.2f30.org/noice"
arch="all"
diff --git a/testing/nom/APKBUILD b/testing/nom/APKBUILD
new file mode 100644
index 00000000000..ec2fc1b2bde
--- /dev/null
+++ b/testing/nom/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Tuan Anh Tran <me@tuananh.org>
+# Maintainer: Tuan Anh Tran <me@tuananh.org>
+pkgname=nom
+pkgver=2.1.4
+pkgrel=0
+pkgdesc="RSS reader for the terminal"
+url="https://github.com/guyfedwards/nom"
+arch="all"
+depends="glow"
+license="GPL-3.0-or-later"
+makedepends="go"
+# bumping go-sqlite in go.{mod,sum} to solve issue with musl. ref: https://github.com/mattn/go-sqlite3/issues/1164
+source="$pkgname-$pkgver.tar.gz::https://github.com/guyfedwards/nom/archive/refs/tags/v$pkgver.tar.gz
+ update-go-sqlite3.patch
+ "
+builddir="$srcdir/nom-$pkgver/"
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ msg "Building nom"
+ go build -o nom cmd/nom/main.go
+}
+
+check() {
+ go test -v ./internal/...
+}
+
+package() {
+ install -Dm0755 nom -t "$pkgdir"/usr/bin/
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -Dm644 -t "$pkgdir"/usr/share/doc/"$pkgname" README.md
+}
+
+sha512sums="
+3dde1e13cac6e7d5731c85c40e5ed992a5fbe1705f1910e2cfc0f396d90382f272a4359d30a97e2d92e1efcd4ea0361226ca25698a03df3095fa6b432f62e1ef nom-2.1.4.tar.gz
+422329cfba5655f62061bbff64a8227d891b0fa6d3a49a9d307bbe033b47889a871a97cea2c45ca069869a3604f073f72734337a9d583d7ece9d01e9b6585216 update-go-sqlite3.patch
+"
diff --git a/testing/nom/update-go-sqlite3.patch b/testing/nom/update-go-sqlite3.patch
new file mode 100644
index 00000000000..8e574d2c537
--- /dev/null
+++ b/testing/nom/update-go-sqlite3.patch
@@ -0,0 +1,28 @@
+diff --git a/go.mod b/go.mod
+index 554391e..ab4e276 100644
+--- a/go.mod
++++ b/go.mod
+@@ -9,7 +9,7 @@ require (
+ github.com/charmbracelet/glamour v0.5.0
+ github.com/charmbracelet/lipgloss v0.6.0
+ github.com/jessevdk/go-flags v1.4.0
+- github.com/mattn/go-sqlite3 v1.14.16
++ github.com/mattn/go-sqlite3 v1.14.22
+ github.com/mmcdole/gofeed v1.1.3
+ golang.org/x/term v0.4.0
+ gopkg.in/yaml.v3 v3.0.1
+diff --git a/go.sum b/go.sum
+index 3c096c9..c586418 100644
+--- a/go.sum
++++ b/go.sum
+@@ -62,8 +62,8 @@ github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRC
+ github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+ github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
+ github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+-github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
+-github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
++github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
++github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+ github.com/microcosm-cc/bluemonday v1.0.17 h1:Z1a//hgsQ4yjC+8zEkV8IWySkXnsxmdSY642CTFQb5Y=
+ github.com/microcosm-cc/bluemonday v1.0.17/go.mod h1:Z0r70sCuXHig8YpBzCc5eGHAap2K7e/u082ZUpDRRqM=
+ github.com/mmcdole/gofeed v1.1.3 h1:pdrvMb18jMSLidGp8j0pLvc9IGziX4vbmvVqmLH6z8o=
diff --git a/testing/nomacs/APKBUILD b/testing/nomacs/APKBUILD
deleted file mode 100644
index 8fff7611c76..00000000000
--- a/testing/nomacs/APKBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Maintainer: Alex Raschi <raschi.alex@gmail.com>
-pkgname=nomacs
-pkgver=3.14.2
-pkgrel=0
-pkgdesc="Small and fast Qt image viewer"
-url="https://nomacs.org/"
-arch="all"
-license="GPL-3.0-or-later"
-depends="qt5-qtimageformats"
-makedepends="cmake
- qt5-qtbase-dev
- qt5-qttools-dev
- qt5-qtsvg-dev
- exiv2-dev
- quazip-dev
- libwebp-dev
- lcov
- libzip-dev"
-subpackages="$pkgname-doc $pkgname-lang"
-options="!check" # no test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/nomacs/nomacs/archive/$pkgver.tar.gz
- fix-std-cout.patch"
-builddir="$srcdir/$pkgname-$pkgver/ImageLounge"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DENABLE_OPENCV=False \
- -DENABLE_RAW=False \
- -DENABLE_TIFF=False \
- -DENABLE_QT_DEBUG=False \
- -DENABLE_TRANSLATIONS=True \
- -DENABLE_PLUGINS=False \
- -DUSE_SYSTEM_QUAZIP=True \
- ${CMAKE_CROSSOPTS} .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-lang() {
- pkgdesc="Languages for package $pkgname"
- depends=""
- local langdir="usr/share/$pkgname/Image Lounge/translations"
-
- mkdir -p "$subpkgdir"/"$langdir"
- mv "$pkgdir"/"$langdir"/* "$subpkgdir"/"$langdir"/
-}
-
-sha512sums="58104c85078bdbff7f65625658bb01b152631470eea93a43494eed55ae5e2441b7bcf3ed6c8f1aef07831bc99c80af94467fcc0e15dc1d282ef313bfcb3c81e9 nomacs-3.14.2.tar.gz
-1530398feaa341687fd5e0117507b2262d46deb3052988e97156beee81d9611c8035be03ab616868a2dcff93fa5e82279f6a73af7edc70630451cfa28f9a4765 fix-std-cout.patch"
diff --git a/testing/nomacs/fix-std-cout.patch b/testing/nomacs/fix-std-cout.patch
deleted file mode 100644
index c0d09bad6cb..00000000000
--- a/testing/nomacs/fix-std-cout.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/DkGui/DkNoMacs.cpp
-+++ b/src/DkGui/DkNoMacs.cpp
-@@ -25,6 +25,7 @@
-
- *******************************************************************************************************/
-
-+#include <iostream>
- #include "DkNoMacs.h"
-
- // my stuff
---- a/src/DkCore/DkMetaData.cpp
-+++ b/src/DkCore/DkMetaData.cpp
-@@ -25,6 +25,7 @@
-
- *******************************************************************************************************/
-
-+#include <iostream>
- #include "DkMetaData.h"
- #include "DkUtils.h"
- #include "DkMath.h"
diff --git a/testing/nomad/APKBUILD b/testing/nomad/APKBUILD
deleted file mode 100644
index 0c9673fdce8..00000000000
--- a/testing/nomad/APKBUILD
+++ /dev/null
@@ -1,73 +0,0 @@
-# Contributor: Matthias Neugebauer <mtneug@mailbox.org>
-# Maintainer: Matthias Neugebauer <mtneug@mailbox.org>
-pkgname=nomad
-pkgver=0.11.2
-pkgrel=1
-pkgdesc="An easy-to-use, flexible, and performant workload orchestrator"
-url="https://www.nomadproject.io/"
-arch="all !mips !mips64" # blocking on yarn/npm
-license="MPL-2.0"
-depends="cni-plugins"
-makedepends="linux-headers bash make go yarn npm go-bindata-assetfs"
-subpackages="$pkgname-openrc"
-options="net !check" # cannot produce environment for testing in CI
-source="$pkgname-$pkgver.tar.gz::https://github.com/hashicorp/nomad/archive/v$pkgver.tar.gz
- nomad.initd
- nomad.confd
- nvidia-driver.patch
- server.hcl
- static-assets.patch
- ui-remove-husky.patch"
-
-builddir="$srcdir/src/github.com/hashicorp/$pkgname"
-
-# secfixes:
-# 0.11.1-r0:
-# - CVE-2020-10944
-# 0.10.3-r0:
-# - CVE-2020-7218
-# - CVE-2020-7218
-# 0.9.6-r0:
-# - CVE-2019-12741
-# - CVE-2019-15928
-# - CVE-2019-16742
-# 0.9.5-r0:
-# - CVE-2019-14802
-# - CVE-2019-14803
-# 0.9.2-r0:
-# - CVE-2019-12618
-
-prepare() {
- mkdir -p "$srcdir/src/github.com/hashicorp"
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
- default_prepare
-}
-
-build() {
- make ember-dist
- GOPATH="$srcdir" CGO_ENABLED=1 GO_TAGS="ui release" make static-assets
- GOPATH="$srcdir" CGO_ENABLED=1 go build -v -o bin/$pkgname \
- -ldflags "-X github.com/hashicorp/nomad/version.GitCommit='$pkgver'" \
- -tags "ui release"
-}
-
-check() {
- GOPATH="$srcdir" CGO_ENABLED=1 go test -timeout=15m "./..."
-}
-
-package() {
- install -m755 -D "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
- install -m644 -D "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname"
-
- install -m750 -o root -g root -D bin/$pkgname "$pkgdir/usr/sbin/$pkgname"
- install -m640 -o root -g root -D "$srcdir/server.hcl" "$pkgdir/etc/nomad.d/server.hcl"
- install -m750 -o root -g root -d "$pkgdir/var/lib/$pkgname"
-}
-
-sha512sums="7b977bd0820234f8b3397a5f2299ca43a1c0c1443c18060d1059117e30c039f2a90653a1483585dbc14f1fe83918b67e159002e73f15879ca8e0656ab775c89e nomad-0.11.2.tar.gz
-ac969c81150ba57871c1f75f17c11d06ffc7bcc872882416c7c0d9d43f5e352ca1b7e7bfd75e32a9d01a826496c77a657dc298f5e048f85b4d9e85bc3afee51d nomad.initd
-a4fcc9f319926e8e5257dcc902cf3e1cbacd8bee82097b7a9719611d52037431a7e953a4b0fa90fc25475d2590cd14877c8e4c87bd909dd0099a754ba6f5063c nomad.confd
-e9c0161c2a9c0e1933c266520a410764a709c7b4f65b1a81c1fb2494eae89daa847ffca5df46d6eea61d855f35d21e66433ec0afe8c08017187c917e952b8544 nvidia-driver.patch
-c2ba7db5bb0858547bf346819945d24626ac761541f38350b40408e1b26227549f6aa4d6946baadbf856329c0ac9f81f84164597d11361224b62a1697f17e726 server.hcl
-d6a97a6b45125a13b0f4f02c3f32b55fb3261bf1ea4028fa45d08aaee04393e4994ddbb3aac28c84e2a9992003d795618b1345dbf08e912eef7c37921416d56d static-assets.patch
-904268431358cdb3e2172cb77e8ef952d337fe8213f5b1973275f4e240a75185fb0963dfb59ae2ad2927bb994cda4e9fa63656e0d23fd21eb44f4e1649bed9a5 ui-remove-husky.patch"
diff --git a/testing/nomad/nomad.confd b/testing/nomad/nomad.confd
deleted file mode 100644
index 3161e31c3c7..00000000000
--- a/testing/nomad/nomad.confd
+++ /dev/null
@@ -1 +0,0 @@
-nomad_opts="agent -server -config=/etc/nomad.d"
diff --git a/testing/nomad/nomad.initd b/testing/nomad/nomad.initd
deleted file mode 100644
index 05949fd87ac..00000000000
--- a/testing/nomad/nomad.initd
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/sbin/openrc-run
-name="Nomad"
-description="An easy-to-use, flexible, and performant workload orchestrator"
-description_healthcheck="Check health status"
-description_reload="Reload configuration"
-
-extra_started_commands="healthcheck reload"
-
-command="/usr/sbin/${RC_SVCNAME}"
-command_args="${nomad_opts}"
-command_user="root:root"
-
-supervisor=supervise-daemon
-output_log="/var/log/${RC_SVCNAME}.log"
-error_log="/var/log/${RC_SVCNAME}.log"
-respawn_max=0
-respawn_delay=10
-healthcheck_timer=60
-
-depend() {
- need net
- after firewall
-}
-
-start_pre() {
- checkpath -f -m 0644 -o "$command_user" "$output_log" "$error_log"
-}
-
-healthcheck() {
- $command agent-info > /dev/null 2>&1
-}
-
-reload() {
- start_pre \
- && ebegin "Reloading $RC_SVCNAME configuration" \
- && $supervisor "$RC_SVCNAME" --signal HUP
- eend $?
-}
diff --git a/testing/nomad/nvidia-driver.patch b/testing/nomad/nvidia-driver.patch
deleted file mode 100644
index 6ce01343fe6..00000000000
--- a/testing/nomad/nvidia-driver.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Disable the Nvidia GPU device plugin as this requires NVIDIA drivers.
-diff --git a/devices/gpu/nvidia/nvml/driver_default.go b/devices/gpu/nvidia/nvml/driver_default.go
-index e67efa22e..215ccfc53 100644
---- a/devices/gpu/nvidia/nvml/driver_default.go
-+++ b/devices/gpu/nvidia/nvml/driver_default.go
-@@ -1,5 +1,3 @@
--// +build !linux
--
- package nvml
-
- // Initialize nvml library by locating nvml shared object file and calling ldopen
-diff --git a/devices/gpu/nvidia/nvml/driver_linux.go b/devices/gpu/nvidia/nvml/driver_linux.go
-index bdd777561..ad68efa32 100644
---- a/devices/gpu/nvidia/nvml/driver_linux.go
-+++ b/devices/gpu/nvidia/nvml/driver_linux.go
-@@ -1,3 +1,5 @@
-+// +build !linux
-+
- package nvml
-
- import (
diff --git a/testing/nomad/server.hcl b/testing/nomad/server.hcl
deleted file mode 100644
index 61602fb0362..00000000000
--- a/testing/nomad/server.hcl
+++ /dev/null
@@ -1,12 +0,0 @@
-data_dir = "/var/lib/nomad"
-disable_update_check = true
-enable_syslog = true
-
-server {
- enabled = true
- bootstrap_expect = 1
-}
-
-client {
- enabled = true
-}
diff --git a/testing/nomad/static-assets.patch b/testing/nomad/static-assets.patch
deleted file mode 100644
index 4858fc678fa..00000000000
--- a/testing/nomad/static-assets.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-This patch removes the custom output name option that is handled properly only
-in the master branch of go-bindata-assetfs (see https://github.com/elazarl/go-bindata-assetfs/pull/32)
-diff --git a/GNUmakefile b/GNUmakefile
-index 2168ed8de..76bb2c3cd 100644
---- a/GNUmakefile
-+++ b/GNUmakefile
-@@ -346,7 +346,7 @@
- .PHONY: static-assets
- static-assets: ## Compile the static routes to serve alongside the API
- @echo "--> Generating static assets"
-- @go-bindata-assetfs -pkg agent -prefix ui -modtime 1480000000 -tags ui -o bindata_assetfs.go ./ui/dist/...
-+ @go-bindata-assetfs -pkg agent -prefix ui -modtime 1480000000 -tags ui ./ui/dist/...
- @mv bindata_assetfs.go command/agent
-
- .PHONY: test-ui
-
diff --git a/testing/nomad/ui-remove-husky.patch b/testing/nomad/ui-remove-husky.patch
deleted file mode 100644
index 67e47de9bb3..00000000000
--- a/testing/nomad/ui-remove-husky.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Husky is an npm package which will automatically, without confirmation,
-git hooks into the 'current' repository. When building this package,
-this repository will be aports, which is unwanted to put it mildly.
-
-diff --git a/ui/package.json b/ui/package.json
-index 0fcd03deae..6c7ae337bf 100644
---- a/ui/package.json
-+++ b/ui/package.json
-@@ -101,7 +101,6 @@
- "fuse.js": "^3.4.4",
- "glob": "^4.0.5",
- "http-proxy": "^1.1.6",
-- "husky": "^4.2.5",
- "is-ip": "^3.1.0",
- "ivy-codemirror": "IvyApp/ivy-codemirror#c3b7f49f8e6492878619f8055695581240cce21a",
- "lint-staged": "^10.1.3",
-diff --git a/ui/yarn.lock b/ui/yarn.lock
-index 8b5bbec3a6..7dc013d78e 100644
---- a/ui/yarn.lock
-+++ b/ui/yarn.lock
-@@ -9306,22 +9306,6 @@
- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
- integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
-
--husky@^4.2.5:
-- version "4.2.5"
-- resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36"
-- integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==
-- dependencies:
-- chalk "^4.0.0"
-- ci-info "^2.0.0"
-- compare-versions "^3.6.0"
-- cosmiconfig "^6.0.0"
-- find-versions "^3.2.0"
-- opencollective-postinstall "^2.0.2"
-- pkg-dir "^4.2.0"
-- please-upgrade-node "^3.2.0"
-- slash "^3.0.0"
-- which-pm-runs "^1.0.0"
--
- iconv-lite@0.4.23:
- version "0.4.23"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
diff --git a/testing/nomp/APKBUILD b/testing/nomp/APKBUILD
deleted file mode 100644
index 5d9f73b9d4e..00000000000
--- a/testing/nomp/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=nomp
-pkgver=0.1
-pkgrel=6
-pkgdesc="Ncurses OpenVAS Manager Protocol"
-url="https://gitlab.com/git-rep/nomp"
-arch="all"
-license="GPL-2.0"
-#no check provided by upstream
-options="!check"
-makedepends="openssl-dev libxml++-dev ncurses-dev"
-source="https://gitlab.com/git-rep/nomp/-/archive/v$pkgver/$pkgname-v$pkgver.tar.gz
- make-path.patch
- fix-include.patch"
-builddir="$srcdir/$pkgname-v$pkgver"
-
-build() {
- cd "$builddir"
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="e4c53b44f85438775f4046c0e90e05f9d80cb60e999c1cc9f6661a43d6ab9ad5a1cf2322e97386f99a83d62aefdfeb477a065639a823f469a1278628bc19673c nomp-v0.1.tar.gz
-9713d125666993e69d7dae5dd253eee884090ce2087c419214beeb4c133e2e3ac219f8bac097e97952ff41066bfb6a6ad731b390c2aadba43ddd72f96f9443f2 make-path.patch
-62e777a2fc5adcc2bd15daed66aefa3043ded45b7458f20ebafef7eff5457cd070053a62df9071c3b31c4ae177e2c4b43ee44e0d7c3ea81870e57b63a04f4f8a fix-include.patch"
diff --git a/testing/nomp/fix-include.patch b/testing/nomp/fix-include.patch
deleted file mode 100644
index 2c030f0ee1f..00000000000
--- a/testing/nomp/fix-include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/src/ssl_socket.cc b/src/ssl_socket.cc
-index 2e18c99..b1aa611 100644
---- a/src/ssl_socket.cc
-+++ b/src/ssl_socket.cc
-@@ -1,4 +1,5 @@
- #include "ssl_socket.h"
-+#include <string.h>
-
- SSL_socket::SSL_socket() :
- is_started(false),
diff --git a/testing/nomp/make-path.patch b/testing/nomp/make-path.patch
deleted file mode 100644
index 5d69caf4b84..00000000000
--- a/testing/nomp/make-path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile b/Makefile
-index c53a4b7..05aa874 100644
---- a/Makefile
-+++ b/Makefile
-@@ -6,7 +6,7 @@ BUILDDIR = .build
- SOURCES = $(wildcard src/*.cc)
- OBJECTS = $(patsubst $(SOURCEDIR)/%.cc,$(BUILDDIR)/%.o,$(SOURCES))
- DEPS := $(OBJECTS:.o=.d)
--PREFIX = /usr/local
-+PREFIX = /usr
- TARGET = nomp
-
- .SILENT:
diff --git a/testing/normaliz/APKBUILD b/testing/normaliz/APKBUILD
new file mode 100644
index 00000000000..eb2229ae98b
--- /dev/null
+++ b/testing/normaliz/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=normaliz
+pkgver=3.10.2
+pkgrel=1
+pkgdesc="Normaliz is an open source tool for computations."
+url="https://www.normaliz.uni-osnabrueck.de/"
+# s390x: flint, libarb, libantic
+arch="all !s390x"
+license="GPL-3.0"
+makedepends="
+ boost-dev
+ diffutils
+ flint-dev
+ gmp-dev
+ libantic-dev
+ libarb-dev
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="
+ normaliz-$pkgver.tar.gz::https://github.com/Normaliz/Normaliz/releases/download/v$pkgver/normaliz-$pkgver.tar.gz
+ "
+
+build() {
+ # math
+ export CFLAGS="$CFLAGS -O3 -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -O3 -flto=auto"
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-static
+
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e9b6fdc699376e7d4245d100d600b5931fbf4ea0d8086144fe148a4f17210324d1f0cbaa2a4ed9e10fc1977302f083442ad27e94a4dfd8ec9015f22f696d7685 normaliz-3.10.2.tar.gz
+"
diff --git a/testing/noson-app/APKBUILD b/testing/noson-app/APKBUILD
new file mode 100644
index 00000000000..c56108e92be
--- /dev/null
+++ b/testing/noson-app/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=noson-app
+pkgver=5.4.1
+pkgrel=1
+pkgdesc="The essential to control music from your SONOS devices on Linux platforms"
+url="https://janbar.github.io/noson-app/"
+# armhf: Missing Qt stuff
+# riscv64: truncated relocation
+arch="all !armhf !riscv64"
+license="GPL-3.0-only"
+subpackages="$pkgname-dbg"
+depends="qt5-qtsvg"
+makedepends="
+ cmake
+ flac-dev
+ noson-dev
+ pulseaudio-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtquickcontrols2-dev
+ qt5-qtsvg-dev
+ samurai
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/janbar/noson-app/archive/$pkgver.tar.gz
+ "
+options="!check" # No unit tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=1 \
+ -DBUILD_DEPENDENCIES=0 \
+ -DBUILD_LIBNOSON=0
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+dbddb96f3e0720c3d9306d34466575d64be622250345ff0d45589abbdfc6f4a777a3fe1314c023ac5240b208f865dd7886c8ef206bb81b85262e5172a72f9441 noson-app-5.4.1.tar.gz
+"
diff --git a/testing/noson/APKBUILD b/testing/noson/APKBUILD
new file mode 100644
index 00000000000..704ae5d8856
--- /dev/null
+++ b/testing/noson/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=noson
+pkgver=2.10.3
+pkgrel=0
+pkgdesc="An easy client interface to drive SONOS player"
+url="https://github.com/janbar/noson"
+arch="all"
+license="GPL-3.0-only"
+subpackages="$pkgname-dev $pkgname-dbg"
+makedepends="
+ cmake
+ flac-dev
+ openssl-dev>3
+ pulseaudio-dev
+ samurai
+ zlib-dev
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/janbar/noson/archive/$pkgver.tar.gz
+ gcc12.patch
+ "
+options="!check" # No unit tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=1
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+5cfd459b317ad5320311fa25377b1daabc3744fe7a6b78a29d7e9e28f9bb6c2d248b97093f775818e4b9868a30a5b3952210d28d3870fb283d4b7a18111f1b01 noson-2.10.3.tar.gz
+18dc5e56f4a08be910cdae6ee6edf0c10c5864ba8712e4d21d357ea2e14bc9f23124b9699c9bf760972855fc1a28f64c071ac5a00b61d22da1bcd442cfe9eaec gcc12.patch
+"
diff --git a/testing/noson/gcc12.patch b/testing/noson/gcc12.patch
new file mode 100644
index 00000000000..edaac4dc711
--- /dev/null
+++ b/testing/noson/gcc12.patch
@@ -0,0 +1,13 @@
+diff --git a/noson/src/private/os/threads/timeout.h b/noson/src/private/os/threads/timeout.h
+index f0c3453..d65fcd7 100644
+--- a/noson/src/private/os/threads/timeout.h
++++ b/noson/src/private/os/threads/timeout.h
+@@ -26,6 +26,8 @@
+ #include <mach/mach_time.h>
+ #endif
+
++#include <time.h>
++
+ #ifdef NSROOT
+ namespace NSROOT {
+ #endif
diff --git a/testing/notepadqq/APKBUILD b/testing/notepadqq/APKBUILD
deleted file mode 100644
index e86cd73cb30..00000000000
--- a/testing/notepadqq/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=notepadqq
-pkgver=1.4.8
-pkgrel=1
-pkgdesc="Notepad++-like text editor for Linux"
-url="https://notepadqq.altervista.org/"
-arch="x86 x86_64"
-license="GPL-3.0-only" # No source code headers
-depends="coreutils qt5-qtwebkit qt5-qtsvg qt5-qtbase"
-makedepends="qt5-qtbase-dev qt5-qttools-dev qt5-qtsvg-dev
- qt5-qtwebkit-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- sed -i \
- -e 's:/lib/notepadqq/:/bin/:' \
- src/ui/ui.pro
- sed -i -e 's:\.\./\.\.:\.\.:' src/ui/notepadqq.cpp
-}
-
-build() {
- qmake-qt5 PREFIX=/usr LRELEASE=/usr/lib/qt5/bin/lrelease notepadqq.pro
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
-}
-
-sha512sums="fa1937b75a378fb81486a871a5b736f6ba216cd4b71f99e342e457de65ea034c2ee4d2c9f42754c4737671ccb1083fb1e6c946240ab2094042125430578141fa notepadqq-1.4.8.tar.gz"
diff --git a/testing/nototools/APKBUILD b/testing/nototools/APKBUILD
deleted file mode 100644
index 7c9b9310ee1..00000000000
--- a/testing/nototools/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nototools
-pkgver=0.2.1_git20200311
-_commit="697ee75c7ddbd3107347d7fe7db475306c5baad4"
-pkgrel=0
-pkgdesc="Noto fonts support tools and scripts"
-url="https://www.google.com/get/noto/"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/googlei18n/nototools/archive/$_commit.tar.gz
- data_path.patch
- "
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install \
- --prefix=/usr \
- --root="$pkgdir"
-
- mkdir -p "$pkgdir"/usr/share/nototools
- cp -r third_party "$pkgdir"/usr/share/nototools
-}
-
-sha512sums="11986de3dad86fdef74794fa45d81fb11cfd162bacf151b1ebdbd585564903ceed7bcf1cf72b4e264c13fe9195e54f3bdd446ecfe79fbfb8db471364e5d2ee99 nototools-0.2.1_git20200311.tar.gz
-e0d37ab7c2398695a00053c8c47346406d5cf8dda7ff3e24482d5318786794bb601fd2dd813437054b558d52df8934fc3050dc41a9ec9090a08835cabedaaa1c data_path.patch"
diff --git a/testing/nototools/data_path.patch b/testing/nototools/data_path.patch
deleted file mode 100644
index bbfcefdc7c8..00000000000
--- a/testing/nototools/data_path.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -upr a/nototools/unicode_data.py b/nototools/unicode_data.py
---- a/nototools/unicode_data.py 2016-07-18 23:42:00.000000000 +0200
-+++ b/nototools/unicode_data.py 2016-12-16 01:27:55.783284557 +0100
-@@ -401,8 +401,7 @@ def all_scripts():
- return frozenset(_script_code_to_long_name.keys())
-
-
--_DATA_DIR_PATH = path.join(path.abspath(path.dirname(__file__)),
-- os.pardir, "third_party", "ucd")
-+_DATA_DIR_PATH = "/usr/share/nototools/third_party/ucd"
-
-
- def open_unicode_data_file(data_file_name):
-Only in b/nototools: unicode_data.py.orig
diff --git a/testing/novnc/APKBUILD b/testing/novnc/APKBUILD
deleted file mode 100644
index 0c72fb252e6..00000000000
--- a/testing/novnc/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Andre Bierwolf <a.b.bierwolf@gmail.com>
-# Maintainer: Andre Bierwolf <a.b.bierwolf@gmail.com>
-pkgname=novnc
-_pkgname=noVNC
-pkgver=1.0.0
-pkgrel=1
-pkgdesc="VNC client using HTML5 (WebSockets, Canvas) with encryption (wss://) support"
-url="https://kanaka.github.io/noVNC/"
-arch="noarch !mips !mips64" # blocking on websockify
-license="MPL-2.0"
-depends="websockify>=0.8.0-r2 net-tools"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$_pkgname/archive/v$pkgver.tar.gz
- alpine-specific-launch.js.patch"
-builddir="$srcdir/$_pkgname-$pkgver"
-options="!check"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/$pkgname
- cd "$pkgdir"/usr/share/$pkgname
-
- cp -r "$builddir"/* .
-
- # Clean up package.
- rm utils/README.md
-
- # Move license files.
- mkdir -p "$pkgdir"/usr/share/licenses/$pkgname
- mv LICENSE.txt docs/LICENSE.* "$pkgdir"/usr/share/licenses/novnc/
-
- # Move documentation.
- mkdir -p "$pkgdir"/usr/share/doc
- mv docs "$pkgdir"/usr/share/doc/$pkgname
- mv README.md "$pkgdir"/usr/share/doc/$pkgname/
-
- # Install launch.sh to /usr/bin.
- install -D -m 755 utils/launch.sh "$pkgdir"/usr/bin/novnc_server
-
- # Remove irrelevant utils.
- rm -r utils
-}
-
-sha512sums="97a86be5f10f382e2ed641360f5f6c3b22998f68f980c78138aca900ef6a011c1f6aa9cbdd8cd07afd4884e8c65af30d65487e87bb34e524c10f16cf4cd116a3 novnc-1.0.0.tar.gz
-d4fba29910c81a52af176cc9af533660a2b09a7846d9857824db0a9b5395712ae99ebd1d96a7cb3c29a58b7aad78876c88e14b847d6cb542cf9cb2991730c935 alpine-specific-launch.js.patch"
diff --git a/testing/novnc/alpine-specific-launch.js.patch b/testing/novnc/alpine-specific-launch.js.patch
deleted file mode 100644
index 1c3861e1102..00000000000
--- a/testing/novnc/alpine-specific-launch.js.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/utils/launch.sh
-+++ b/utils/launch.sh
-@@ -110,42 +110,11 @@
- echo "Warning: could not find self.pem"
- fi
-
--# try to find websockify (prefer local, try global, then download local)
--if [[ -e ${HERE}/websockify ]]; then
-- WEBSOCKIFY=${HERE}/websockify/run
--
-- if [[ ! -x $WEBSOCKIFY ]]; then
-- echo "The path ${HERE}/websockify exists, but $WEBSOCKIFY either does not exist or is not executable."
-- echo "If you intended to use an installed websockify package, please remove ${HERE}/websockify."
-- exit 1
-- fi
--
-- echo "Using local websockify at $WEBSOCKIFY"
--else
-- WEBSOCKIFY=$(which websockify 2>/dev/null)
--
-- if [[ $? -ne 0 ]]; then
-- echo "No installed websockify, attempting to clone websockify..."
-- WEBSOCKIFY=${HERE}/websockify/run
-- git clone https://github.com/novnc/websockify ${HERE}/websockify
--
-- if [[ ! -e $WEBSOCKIFY ]]; then
-- echo "Unable to locate ${HERE}/websockify/run after downloading"
-- exit 1
-- fi
--
-- echo "Using local websockify at $WEBSOCKIFY"
-- else
-- echo "Using installed websockify at $WEBSOCKIFY"
-- fi
--fi
--
- echo "Starting webserver and WebSockets proxy on port ${PORT}"
--#${HERE}/websockify --web ${WEB} ${CERT:+--cert ${CERT}} ${PORT} ${VNC_DEST} &
--${WEBSOCKIFY} ${SSLONLY} --web ${WEB} ${CERT:+--cert ${CERT}} ${PORT} ${VNC_DEST} &
-+${HERE}/websockify --web ${WEB} ${CERT:+--cert ${CERT}} ${PORT} ${VNC_DEST} &
- proxy_pid="$!"
- sleep 1
--if ! ps -p ${proxy_pid} >/dev/null; then
-+if [ -z "$proxy_pid" ] || ! ps -o pid= | grep -qw ${proxy_pid}; then
- proxy_pid=
- echo "Failed to start WebSockets proxy"
- exit 1
diff --git a/testing/npapi-vlc/APKBUILD b/testing/npapi-vlc/APKBUILD
deleted file mode 100644
index 04c5703d356..00000000000
--- a/testing/npapi-vlc/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=npapi-vlc
-pkgver=2.2.6
-_pkglibver="0_git20180718"
-pkgrel=1
-pkgdesc="NPAPI browser plugin based on libvlc"
-url="https://code.videolan.org/videolan/npapi-vlc"
-arch="all !s390x !mips !mips64" # vlc missing
-license="GPL-2.0-or-later"
-makedepends="vlc-dev automake autoconf libtool npapi-sdk libx11-dev libxcb-dev
- gtk+2.0-dev"
-source="https://code.videolan.org/videolan/npapi-vlc/-/archive/$pkgver/npapi-vlc-${pkgver}.tar.bz2
- https://dev.alpinelinux.org/archive/$pkgname/libvlcpp-${_pkglibver}.tar.gz
- "
-builddir="$srcdir"/$pkgname-$pkgver
-
-prepare() {
- default_prepare
- cd "$srcdir"
- mv libvlcpp-master-* libvlcpp-master
- cd "$builddir"
- cp -rf "$srcdir"/libvlcpp-master/vlcpp .
- ./autogen.sh
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="688ed0909955ec797fe23739e96220617be3e947025f83548a463f92d29578f5cb9015b1effa0ac4a43cf689be29368a602b9cb5b0475d2a90da94e9266d3c13 npapi-vlc-2.2.6.tar.bz2
-7a505e17b7bf3f74d39b63ae608ad72b59367f7653e935d35a616800e4dbddc95750f1437a3022f0d17f6ff34c40dc93b060ef35bb08973849d43b2332a5ebae libvlcpp-0_git20180718.tar.gz"
diff --git a/testing/npd6/APKBUILD b/testing/npd6/APKBUILD
deleted file mode 100644
index 3ae925fbe3d..00000000000
--- a/testing/npd6/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=npd6
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="Neighbor proxy daemon for IPv6"
-url="https://www.ipsidixit.net/"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="linux-headers"
-subpackages="$pkgname-doc $pkgname-openrc::noarch"
-options="!check" # No test suite present
-source="$pkgname-$pkgver.tar.gz::https://github.com/npd6/npd6/archive/$pkgver.tar.gz
- remove-sysctl-h.patch
- $pkgname.initd
- $pkgname.confd"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
-}
-
-package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir"
-
- rm -r "$pkgdir"/etc/init.d
- install -Dm0755 "$srcdir"/npd6.initd "$pkgdir"/etc/init.d/npd6
- install -Dm0644 "$srcdir"/npd6.confd "$pkgdir"/etc/conf.d/npd6
-}
-
-sha512sums="5cecbae63823f8729d6b24894e47e36d7278b2074499de7938a62e774cd41b4324611cfeb672d35b4d52ebe68c0dccc52a6a376c2b04fe62b5a2eeaadff32ca9 npd6-1.1.0.tar.gz
-a4d1c63af209d2c74ba16b4375e59048515a14711483ef1b7c32fb697d319ae4a5eb78976c9971ff2089aa67fd444ef646f578d37a81d7463071a0a1adb1ee03 remove-sysctl-h.patch
-f1251bb2735a9624ec958d5518740494b5f301da848b477eda89819b274e34ac58ae346cd09eb9395ae007eb1753e8a42155ca26cfad77e9f5ee717876163522 npd6.initd
-b2b883ab38ce5d3063e358d365a60c33e0f5603a7a4ecf2199248f75d1266dc8638e1670a46d9546c88cc3ac123f61d9a613b0607944291dc61ce540cfb5b546 npd6.confd"
diff --git a/testing/npd6/npd6.confd b/testing/npd6/npd6.confd
deleted file mode 100644
index de958444da4..00000000000
--- a/testing/npd6/npd6.confd
+++ /dev/null
@@ -1 +0,0 @@
-ARGS=
diff --git a/testing/npd6/npd6.initd b/testing/npd6/npd6.initd
deleted file mode 100644
index 1632b4bb1ec..00000000000
--- a/testing/npd6/npd6.initd
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/bin/npd6"
-command_args="--foreground $ARGS"
-command_background=true
-pidfile="/run/npd6.pid"
-
-depend() {
- need net
-}
diff --git a/testing/npd6/remove-sysctl-h.patch b/testing/npd6/remove-sysctl-h.patch
deleted file mode 100644
index ce462caafad..00000000000
--- a/testing/npd6/remove-sysctl-h.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/includes.h b/includes.h
-index 2b74cef69a..1cbcffdecf 100644
---- a/includes.h
-+++ b/includes.h
-@@ -53,7 +53,6 @@
- #include <netinet/ip6.h>
- #include <netinet/icmp6.h>
- #include <arpa/inet.h>
--#include <sys/sysctl.h>
- #include <net/if.h>
- #include <getopt.h>
- #include <ifaddrs.h>
diff --git a/testing/nqp/APKBUILD b/testing/nqp/APKBUILD
deleted file mode 100644
index 093e493b365..00000000000
--- a/testing/nqp/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Curt Tilmes <Curt.Tilmes@nasa.gov>
-# Maintainer: Curt Tilmes <Curt.Tilmes@nasa.gov>
-pkgname=nqp
-pkgver=2020.05
-pkgrel=0
-pkgdesc="Not Quite Perl"
-url="https://github.com/Raku/nqp"
-arch="all !x86 !armhf !armv7 !s390x"
-options="!archcheck" # Arch dependencies are embedded
-license="Artistic-2.0"
-depends="moarvm"
-makedepends="perl-utils moarvm-dev libffi-dev"
-subpackages="$pkgname-doc"
-source="https://github.com/Raku/nqp/releases/download/$pkgver/nqp-$pkgver.tar.gz"
-
-build() {
- perl Configure.pl --prefix=/usr --backends=moar
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"
- for file in CREDITS LICENSE README.pod VERSION docs examples; do
- cp -r $file "$subpkgdir"/usr/share/doc/"$pkgname"
- done
-}
-
-sha512sums="a60e9bcf9ef8d4c0492cc193893d398d0c62a114e829375ac9a7601336bc2cc820b8f486b10f8b647302d473f3e85ebd13559d4089d38ef6c95b0b7e8778c5cd nqp-2020.05.tar.gz"
diff --git a/testing/nsh/APKBUILD b/testing/nsh/APKBUILD
new file mode 100644
index 00000000000..49394ad5304
--- /dev/null
+++ b/testing/nsh/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=nsh
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="A command-line shell like fish, but POSIX compatible"
+url="https://github.com/nuta/nsh"
+arch="aarch64 armhf armv7 ppc64le x86 x86_64" # limited by rust/cargo
+license="CC0-1.0 OR MIT"
+# bash is needed for completion
+depends="bash"
+checkdepends="python3 py3-termcolor"
+makedepends="cargo cargo-auditable"
+install="$pkgname.post-install $pkgname.pre-deinstall"
+subpackages="$pkgname-dbg"
+source="https://github.com/nuta/nsh/archive/v$pkgver/nsh-$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ # Optimize for size (1.9 -> 1.4 MiB).
+ sed -i 's/^opt-level\s*=.*/opt-level = "z"/' Cargo.toml
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ # Disabled due to: "`![feature]` may not be used on the stable release channel`"
+ #cargo test --frozen
+
+ # Integration tests
+ ./test.py
+}
+
+package() {
+ cargo auditable install --locked --offline --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="
+5b8e4b27526c567c12e79b1583b5036a2c28aca4bb58256f2d66714c37d4b89cfb77ec1c8124602b2786fbd05c52f01a12d10f7de18c548e88fe96dbbf5d7615 nsh-0.4.2.tar.gz
+"
diff --git a/testing/nsh/nsh.post-install b/testing/nsh/nsh.post-install
new file mode 100644
index 00000000000..6b4fd612059
--- /dev/null
+++ b/testing/nsh/nsh.post-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+add-shell '/usr/bin/nsh'
+exit 0
diff --git a/testing/nsh/nsh.pre-deinstall b/testing/nsh/nsh.pre-deinstall
new file mode 100644
index 00000000000..5bd651f2773
--- /dev/null
+++ b/testing/nsh/nsh.pre-deinstall
@@ -0,0 +1,3 @@
+#!/bin/sh
+remove-shell '/usr/bin/nsh'
+exit 0
diff --git a/testing/nsjail/APKBUILD b/testing/nsjail/APKBUILD
new file mode 100644
index 00000000000..4b15bf9c337
--- /dev/null
+++ b/testing/nsjail/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: John Vogel <jvogel4@stny.rr.com>
+# Maintainer: John Vogel <jvogel4@stny.rr.com>
+pkgname=nsjail
+pkgver=3.4
+pkgrel=2
+pkgdesc="A light-weight process isolation tool"
+url="https://github.com/google/nsjail"
+# upstream supported architectures
+arch="armhf armv7 aarch64 riscv64 x86 x86_64"
+license="Apache-2.0"
+makedepends="bison flex linux-headers abseil-cpp-dev libnl3-dev protobuf-dev libbsd-dev"
+options="!check" # no tests
+subpackages="$pkgname-doc"
+_kafelver=1af0975af45ca4404f357b9a4e1636f53a01bfd3
+source="https://github.com/google/nsjail/archive/$pkgver/nsjail-$pkgver.tar.gz
+ https://github.com/google/kafel/archive/$_kafelver/kafel-$_kafelver.tar.gz
+ protobuf-23.patch
+ "
+
+prepare() {
+ default_prepare
+ mv "$srcdir"/kafel-"$_kafelver"/* "$builddir"/kafel/
+}
+
+build() {
+ make
+}
+
+package() {
+ install -D -t "$pkgdir"/usr/bin nsjail
+ install -D -t "$pkgdir"/usr/share/man/man1 nsjail.1
+ install -D -t "$pkgdir"/usr/share/doc/nsjail README.md LICENSE
+ install -d "$pkgdir"/usr/share/doc/nsjail/configs
+ for config in configs/*; do
+ install -D -t "$pkgdir"/usr/share/doc/nsjail/configs "$config"
+ done
+}
+
+sha512sums="
+085006762a02408c9e1c3ea713905230fda0c240ca553e3891b4c705abecb83bf9cb4439413c61b4979bdc1a8f2de708a6ee5dbf487cad8a70476f76607d5a36 nsjail-3.4.tar.gz
+521ab57afd6fb21dfff9d2ce20e316007b0dbff952cabc6e86a8071300a6c47351c7fe151c9c8db0c59fa3a27ca45b34934c029a3325252a2cef1b5de72e6e21 kafel-1af0975af45ca4404f357b9a4e1636f53a01bfd3.tar.gz
+1acb9d983a7eaf545a893a1951b711d2b2267131c84f7d3a37f35f69524a29ea0690f42cea65a7f009cc7c9a789c58dab56e189cae07726c7f09a60de5b0f3a8 protobuf-23.patch
+"
diff --git a/testing/nsjail/protobuf-23.patch b/testing/nsjail/protobuf-23.patch
new file mode 100644
index 00000000000..d99148df920
--- /dev/null
+++ b/testing/nsjail/protobuf-23.patch
@@ -0,0 +1,24 @@
+diff --git a/config.cc b/config.cc
+index 0148ab2..7f0b4d7 100644
+--- a/config.cc
++++ b/config.cc
+@@ -302,11 +302,6 @@ static bool parseInternal(nsjconf_t* nsjconf, const nsjail::NsJailConfig& njc) {
+ return true;
+ }
+
+-static void logHandler(
+- google::protobuf::LogLevel level, const char* filename, int line, const std::string& message) {
+- LOG_W("config.cc: '%s'", message.c_str());
+-}
+-
+ bool parseFile(nsjconf_t* nsjconf, const char* file) {
+ LOG_D("Parsing configuration from '%s'", file);
+
+@@ -316,7 +311,6 @@ bool parseFile(nsjconf_t* nsjconf, const char* file) {
+ return false;
+ }
+
+- SetLogHandler(logHandler);
+ google::protobuf::io::FileInputStream input(fd);
+ input.SetCloseOnDelete(true);
+
diff --git a/testing/nsnake/APKBUILD b/testing/nsnake/APKBUILD
index 9d95451dfc5..441f702e3bf 100644
--- a/testing/nsnake/APKBUILD
+++ b/testing/nsnake/APKBUILD
@@ -1,17 +1,16 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=nsnake
-pkgver=3.0.1
+pkgver=3.0.0
pkgrel=0
pkgdesc="snake game for your terminal"
options="!check suid" # suid is required for saving scores.
-url="https://github.com/alexdantas/nSnake"
+url="http://projects.malikania.fr/nsnake"
arch="all"
license="ISC"
makedepends="ncurses-dev"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/alexdantas/nSnake/archive/v$pkgver.tar.gz"
-builddir="$srcdir/nSnake-$pkgver"
+source="http://releases.malikania.fr/nsnake/$pkgver/nsnake-$pkgver.tar.xz"
build() {
make PREFIX=/usr VARDIR=/var
@@ -21,4 +20,6 @@ package() {
make PREFIX=/usr VARDIR=/var DESTDIR="$pkgdir" install
}
-sha512sums="94930849ce0ff3137c2033f4148858d55dbfdeb66f42109669891462914e434eeb0a442bca9804d8760f63ccb490264263602af11749f489f99c3c1c69e68139 nsnake-3.0.1.tar.gz"
+sha512sums="
+8d65ea44d3ff3242d7e381759993464876889c01b49405dda4cceb617f824c00c2bd78ceb18f46e950dc67911823f4acb9412dcd84937d16c53c40d2183ada26 nsnake-3.0.0.tar.xz
+"
diff --git a/testing/nsq/APKBUILD b/testing/nsq/APKBUILD
index 0a53f8c6ed7..36603da41c7 100644
--- a/testing/nsq/APKBUILD
+++ b/testing/nsq/APKBUILD
@@ -1,30 +1,29 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=nsq
-pkgver=1.2.0
-pkgrel=1
+pkgver=1.3.0
+pkgrel=2
pkgdesc="A realtime distributed messaging platform"
url="https://nsq.io/"
-arch="all !mips !mips64" # blocked by dep
+arch="all"
license="MIT"
depends="go"
-makedepends="dep"
-options="chmod-clean"
source="$pkgname-$pkgver.tar.gz::https://github.com/nsqio/nsq/archive/v$pkgver.tar.gz
- glibc-test.patch"
-builddir="$srcdir/go/src/github.com/nsqio/$pkgname"
+ no-fmt.patch
+ more-test-procs.patch
+ "
+options="net"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
- export GOPATH="$srcdir/go"
default_prepare
- cd "$builddir" # just created
- dep ensure
+ go mod download
}
build() {
- export GOPATH="$srcdir/go"
make
}
@@ -33,12 +32,11 @@ check() {
}
package() {
- cd build
- for file in *; do
- install -sD -m 755 "$file" "$pkgdir"/usr/bin/"$file"
- done
+ install -Dm755 -t "$pkgdir"/usr/bin/ build/*
}
-
-sha512sums="01ef18775a3ee6688fed2c7b85f35099d6b01e9a2f10813b3baa94a6c5a2974abf70ee8d2c6d5aebb6952825ab0a2f986838d3dc35e7b5e06bef3ffa8c0e7c15 nsq-1.2.0.tar.gz
-e0fa26f0a7b412dc4b3e56cb1d557183d86e751862b86f9192fca153232e856713c2cf76f1f063b7595912e4164c7b6e1f33cfec6fab9c7e8e96297646230a22 glibc-test.patch"
+sha512sums="
+5d466c3675dbccd99b5ad4f691968d3396af0a92630b850cd36e9ffb0c8d00a6f43cf5617a0fa0d78876dfd65ae496e79fa72da5707b04397e0444529d2e88d6 nsq-1.3.0.tar.gz
+7d7ac1942dbeea48b90fe9e2a88f06c9d197c0c55949ab435edf5e6b3c174c38357749306232f56f26dc2513d049327242bb03c4b655d75db642f28015ad5b58 no-fmt.patch
+771822f35ba925a1e8a93d3d29c6f8afb9f23e354f50ece7dc360584db52a2c7ba260397827dcc780f3972d7b37d941e910a5702ce8b9c818fc8eeb3eea1265a more-test-procs.patch
+"
diff --git a/testing/nsq/glibc-test.patch b/testing/nsq/glibc-test.patch
deleted file mode 100644
index 58997f554e2..00000000000
--- a/testing/nsq/glibc-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/test.sh
-+++ b/test.sh.orig
-@@ -1,8 +1,7 @@
--#!/bin/bash
-+#!/bin/sh
- set -e
-
- GOMAXPROCS=1 go test -timeout 90s $(go list ./... | grep -v /vendor/)
--GOMAXPROCS=4 go test -timeout 90s -race $(go list ./... | grep -v /vendor/)
-
- # no tests, but a build is something
- for dir in apps/*/ bench/*/; do
-
diff --git a/testing/nsq/more-test-procs.patch b/testing/nsq/more-test-procs.patch
new file mode 100644
index 00000000000..e45a6800726
--- /dev/null
+++ b/testing/nsq/more-test-procs.patch
@@ -0,0 +1,11 @@
+--- a/test.sh
++++ b/test.sh.orig
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ set -e
+
+-GOMAXPROCS=1 go test -timeout 90s ./...
++GOMAXPROCS=4 go test -timeout 90s ./...
+
+ if [ "$GOARCH" = "amd64" ] || [ "$GOARCH" = "arm64" ]; then
+ # go test: -race is only supported on linux/amd64, linux/ppc64le,
diff --git a/testing/nsq/no-fmt.patch b/testing/nsq/no-fmt.patch
new file mode 100644
index 00000000000..1f2931e0cba
--- /dev/null
+++ b/testing/nsq/no-fmt.patch
@@ -0,0 +1,11 @@
+diff --git a/test.sh b/test.sh
+index 42fe934..78f7a94 100755
+--- a/test.sh
++++ b/test.sh
+@@ -23,5 +23,5 @@ done
+ FMTDIFF="$(find apps internal nsqd nsqlookupd -name '*.go' -exec gofmt -d '{}' ';')"
+ if [ -n "$FMTDIFF" ]; then
+ printf '%s\n' "$FMTDIFF"
+- exit 1
++ #exit 1
+ fi
diff --git a/testing/nsss/APKBUILD b/testing/nsss/APKBUILD
deleted file mode 100644
index c1d73dc29bf..00000000000
--- a/testing/nsss/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=nsss
-pkgver=0.0.2.2
-pkgrel=0
-pkgdesc=" A small and statically linkable alternative to Name Service Switch"
-url="https://skarnet.org/software/nsss"
-arch="all"
-license="ISC"
-makedepends="skalibs-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://skarnet.org/software/nsss/nsss-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --enable-shared \
- --enable-static \
- --disable-allstatic \
- --prefix=/usr \
- --libdir=/usr/lib \
- --libexecdir="/usr/lib/$pkgname" \
- --with-dynlib=/lib
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-doc() {
- default_doc
- mkdir -p "$subpkgdir/usr/share/doc"
- cp -a "$builddir/doc" "$subpkgdir/usr/share/doc/$pkgname"
-}
-sha512sums="6cece92d0aa48eb47baa321d20b77fe48d7255dd07d2d4226c9319d817e6355f72277c119ef9aa2dab8c65e144a9c13ca9df4d55120c250ca048c109ee16380f nsss-0.0.2.2.tar.gz"
diff --git a/testing/ntfy-alertmanager/APKBUILD b/testing/ntfy-alertmanager/APKBUILD
new file mode 100644
index 00000000000..373bbabc1ca
--- /dev/null
+++ b/testing/ntfy-alertmanager/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=ntfy-alertmanager
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="A bridge between ntfy and Alertmanager"
+url="https://hub.xenrox.net/~xenrox/ntfy-alertmanager"
+arch="all"
+license="AGPL3"
+makedepends="go"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="https://git.xenrox.net/~xenrox/ntfy-alertmanager/refs/download/v$pkgver/ntfy-alertmanager-$pkgver.tar.gz
+ ntfy-alertmanager.initd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o ntfy-alertmanager
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 ntfy-alertmanager "$pkgdir"/usr/bin/ntfy-alertmanager
+ install -Dm644 config.scfg "$pkgdir"/etc/ntfy-alertmanager/config
+ install -Dm755 "$srcdir"/ntfy-alertmanager.initd "$pkgdir"/etc/init.d/ntfy-alertmanager
+}
+
+sha512sums="
+8bde22778aae862a8fbde0c5fc8f966ee55b39cbc9f28b7983af356ea8ab8522030a4477df2bd47f3e6aea295a5c2f18a69657977b6760b78355eeb748646ddf ntfy-alertmanager-0.3.0.tar.gz
+843b3e00af5019d1af9330717598631cf76d8876bb373cc31419173897e01d889ffa3dab0c29ac91e15eec6677ca629b199d0dfc1ffe4e00c5ae895364cbfd7c ntfy-alertmanager.initd
+"
diff --git a/testing/ntfy-alertmanager/ntfy-alertmanager.initd b/testing/ntfy-alertmanager/ntfy-alertmanager.initd
new file mode 100644
index 00000000000..318c4ab4bad
--- /dev/null
+++ b/testing/ntfy-alertmanager/ntfy-alertmanager.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name=ntfy-alertmanager
+command="/usr/bin/ntfy-alertmanager"
+command_user="ntfy-alertmanager:ntfy-alertmanager"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/ntfy-alertmanager/ntfy-alertmanager.pre-install b/testing/ntfy-alertmanager/ntfy-alertmanager.pre-install
new file mode 100644
index 00000000000..11829150d6d
--- /dev/null
+++ b/testing/ntfy-alertmanager/ntfy-alertmanager.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S ntfy-alertmanager 2>/dev/null
+adduser -S -D -h /dev/null -s /sbin/nologin -G ntfy-alertmanager -g ntfy-alertmanager ntfy-alertmanager 2>/dev/null
+
+exit 0
diff --git a/testing/nuklear/APKBUILD b/testing/nuklear/APKBUILD
new file mode 100644
index 00000000000..902a0661f3c
--- /dev/null
+++ b/testing/nuklear/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=nuklear
+pkgver=4.12.0
+pkgrel=0
+pkgdesc="A single-header ANSI C cross-platform GUI library"
+url="https://immediate-mode-ui.github.io/Nuklear"
+arch="noarch"
+license="MIT OR Public-Domain"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Immediate-Mode-UI/Nuklear/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/Nuklear-$pkgver"
+
+package() {
+ install -Dm644 nuklear.h -t "$pkgdir"/usr/include/
+ install -Dm644 Readme.md -t "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 doc/index.html -t "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 src/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+571af205d3fca9c698942c96de14a02c8a2c5112b474028ede9dc215191f6d87520fbdc5c0fdb6c45d316df7e27f04d7b2c5ea063cfd57e9c1b62e49aa23140e nuklear-4.12.0.tar.gz
+"
diff --git a/testing/nullmailer/APKBUILD b/testing/nullmailer/APKBUILD
new file mode 100644
index 00000000000..7798f5e39ae
--- /dev/null
+++ b/testing/nullmailer/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
+# Contributor: Terra <alpine-builder@tech.futurequest.net>
+# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
+pkgname=nullmailer
+pkgver=2.2
+pkgrel=4
+pkgdesc="Simple relay-only mail transport agent"
+url="https://github.com/bruceg/nullmailer"
+arch="all"
+license="GPL-2.0-only"
+subpackages="$pkgname-doc $pkgname-openrc"
+makedepends="automake autoconf bash gnutls-dev"
+checkdepends="daemontools ucspi-tcp6"
+source="$pkgname-$pkgver.tar.gz::https://github.com/bruceg/nullmailer/archive/$pkgver.tar.gz
+ fix-tests-catch-port.patch
+ nullmailer-2.2-disable-dns-using-test.patch
+ nullmailer-2.2-disable-smtp-auth-tests.patch
+ nullmailer-2.2-fix-test-racecondition.patch
+
+ nullmailer.initd
+ adminaddr.conf
+ defaultdomain.conf
+ remotes.conf
+ me.conf
+ "
+pkgusers="nullmailer"
+pkggroups="nullmailer"
+install="$pkgname.pre-install $pkgname.post-deinstall"
+options="suid"
+
+prepare() {
+ default_prepare
+ ash ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-tls
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR=$pkgdir install
+ install -Dm0755 "$srcdir/nullmailer.initd" "$pkgdir/etc/init.d/nullmailer"
+ install -Dm0644 "$srcdir/adminaddr.conf" "$pkgdir/etc/nullmailer/adminaddr"
+ install -Dm0644 "$srcdir/defaultdomain.conf" "$pkgdir/etc/nullmailer/defaultdomain"
+ install -Dm0644 "$srcdir/remotes.conf" "$pkgdir/etc/nullmailer/remotes"
+ install -Dm0644 "$srcdir/me.conf" "$pkgdir/etc/nullmailer/me"
+
+ # ref: https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10031
+ rm -f "$pkgdir/var/spool/nullmailer/trigger"
+
+ # fix permissions for nullmailer-queue so it can read / write the queue
+ chown nullmailer "$pkgdir/usr/sbin/nullmailer-queue"
+ chmod 4755 "$pkgdir/usr/sbin/nullmailer-queue"
+}
+
+sha512sums="
+15c070edcf820ad13d8e0b250f73d75e45f592caa039e94fd717226fe09cd0ddc1f165388fab6234f57b340acc5127b54df14f35022858aab971b1f3d4e89e63 nullmailer-2.2.tar.gz
+499666333703d6b4dfe9afa76f1d4a48ec7faa4a2ca9dbe8aee6737ce98dcf4509b281ebe2fd2ce0b32d3a91b807a8b2dcffe794b70cb5b3ccb10cb7eca713e4 fix-tests-catch-port.patch
+d16592477612a716a8883ada1f18c34a4add81cfcfdda252705090e1f0b59f22a9bda9fe26bf950a78e21b9a69d20662825461669db72269280b7f82a1f8f8d9 nullmailer-2.2-disable-dns-using-test.patch
+fc3bbcd8accd5a37b8292c6fb3e935ab1cd35d4a67bb224eadf48ff54b3b00508d6496e3d40c4546a966ce5dd6c297822a4e76a6b9e69d0ce47dd4e0e3883e47 nullmailer-2.2-disable-smtp-auth-tests.patch
+10873e538dbc89e8899047e732515d30108b25fd0ff6bb2fc695f5790a94ac32629f41c470a2fec951357169fead36ee4512f543ad0e02c52f09799334b815c7 nullmailer-2.2-fix-test-racecondition.patch
+5279c92a472e6f8b39003ec0edd67f5e6d8c23b285365f8a09e8456b38b947343ba35b82d2f0e44b222fa372428b1962bfa698082b89bab24701cd9599d98ab0 nullmailer.initd
+6c32c2c49904b76bf01bdae13ecd382766ce9beeb2dadd9f127f0154d167eed5dc4ac00c4b5ec797757a35c3c4441652b8821a04ef44c82254cdac47e7ac9205 adminaddr.conf
+a24ce5c1c2b335e26a1bcf565e2b3634f182ad22bef409c974589c70aa95fdb68441de12e59b51e8bd73ad3d6b6d87a3c285d476b61128ac3351db3a49866560 defaultdomain.conf
+1c5a526f569b776f1862bc8b6ce00406ea76d79930fec81097518351660b93974a891058c85117773a401e4bfdbdac12149e01d8f643c76a90e8def9a42ba53d remotes.conf
+e71d3b3fe1b965c4645f0026768c2eecaadbc878348a20aaceb0fc8b3cbd794be820c620b20bdc3a270e3e8569df1077b1888141b699bd781f564e2b2671c65b me.conf
+"
diff --git a/testing/nullmailer/adminaddr.conf b/testing/nullmailer/adminaddr.conf
new file mode 100644
index 00000000000..88e99ef1794
--- /dev/null
+++ b/testing/nullmailer/adminaddr.conf
@@ -0,0 +1,5 @@
+## contains the target email address to send emails
+# THIS FILE DOES NOT SUPPORT COMMENTS!
+# Please remove all lines starting with # when configuring nullmailer
+
+#target-email-address@your-domain.net
diff --git a/testing/nullmailer/defaultdomain.conf b/testing/nullmailer/defaultdomain.conf
new file mode 100644
index 00000000000..90b0a99f324
--- /dev/null
+++ b/testing/nullmailer/defaultdomain.conf
@@ -0,0 +1,5 @@
+# marks the domain the emails are sent from
+# THIS FILE DOES NOT SUPPORT COMMENTS!
+# Please remove all lines starting with # when configuring nullmailer
+
+#example.com
diff --git a/testing/nullmailer/fix-tests-catch-port.patch b/testing/nullmailer/fix-tests-catch-port.patch
new file mode 100644
index 00000000000..54bace93620
--- /dev/null
+++ b/testing/nullmailer/fix-tests-catch-port.patch
@@ -0,0 +1,28 @@
+From: Simon Frankenberger <simon-alpine@fraho.eu>
+Date: Wed, 16 Sep 2020 09:46:13 +0200
+Subject: fix port detection from tcpserver in tests
+
+It seems that the port printed out by tcpserver differs from
+the expected form. Use some bash magic to extract the port number
+from the logline (last element in last line, separated by space).
+
+--- old/test/functions.in
++++ new/test/functions.in
+@@ -52,6 +52,7 @@
+ catch-port() {
+ local name=$1
+ port=$( head -n 1 $tmpdir/service/${name}-log )
++ port=${port##* }
+ }
+
+ #not() { if "$@"; then return 1; else return 0; fi }
+--- old/test/tests/protocols
++++ new/test/tests/protocols
+@@ -51,6 +51,7 @@
+
+ start server tcpserver -1 0 0 date
+ port=$( head -n 1 $tmpdir/service/server-log )
++ port=${port##* }
+ echo "Testing protocol failure with $p."
+ error 11 protocol $p -p $port --host=localhost 3<$testmail
+ stop server
diff --git a/testing/nullmailer/me.conf b/testing/nullmailer/me.conf
new file mode 100644
index 00000000000..3bb39eaed8a
--- /dev/null
+++ b/testing/nullmailer/me.conf
@@ -0,0 +1,5 @@
+# The fully-qualified host name of the computer running nullmailer.
+# THIS FILE DOES NOT SUPPORT COMMENTS!
+# Please remove all lines starting with # when configuring nullmailer
+
+#me
diff --git a/testing/nullmailer/nullmailer-2.2-disable-dns-using-test.patch b/testing/nullmailer/nullmailer-2.2-disable-dns-using-test.patch
new file mode 100644
index 00000000000..0c5939ab004
--- /dev/null
+++ b/testing/nullmailer/nullmailer-2.2-disable-dns-using-test.patch
@@ -0,0 +1,26 @@
+https://sources.debian.org/data/main/n/nullmailer/1:2.2-3/debian/patches/0006-Disable-DNS-using-test.patch
+
+From: David Bremner <david@tethera.net>
+Date: Wed, 31 Oct 2018 09:18:53 -0300
+Subject: Disable DNS using test.
+
+This is probably against policy, and causes build failures in pbuilder
+---
+ test/tests/protocols | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/tests/protocols b/test/tests/protocols
+index 52209d7..8f67b0a 100644
+--- a/test/tests/protocols
++++ b/test/tests/protocols
+@@ -28,8 +28,8 @@ do
+
+ stop server
+
+- echo "Testing host not found error with $p."
+- error 2 protocol $p --host=this.host.can.not.exist 3<$testmail
++# echo "Testing host not found error with $p."
++# error 2 protocol $p --host=this.host.can.not.exist 3<$testmail
+
+ echo "Testing connection refused error with $p."
+ error 7 protocol $p -p $port --host=localhost 3<$testmail
diff --git a/testing/nullmailer/nullmailer-2.2-disable-smtp-auth-tests.patch b/testing/nullmailer/nullmailer-2.2-disable-smtp-auth-tests.patch
new file mode 100644
index 00000000000..f66a4841f4f
--- /dev/null
+++ b/testing/nullmailer/nullmailer-2.2-disable-smtp-auth-tests.patch
@@ -0,0 +1,57 @@
+https://sources.debian.org/data/main/n/nullmailer/1:2.2-3/debian/patches/0007-disable-all-smtp-auth-tests.patch
+
+From: David Bremner <david@tethera.net>
+Date: Tue, 25 Dec 2018 08:18:35 +0900
+Subject: disable all smtp-auth tests
+
+These seem racy in ways that I haven't been able to completely nail down
+---
+ test/tests/smtp-auth | 32 ++++++++++++++++----------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/test/tests/smtp-auth b/test/tests/smtp-auth
+index 52e12d0..2dc736f 100644
+--- a/test/tests/smtp-auth
++++ b/test/tests/smtp-auth
+@@ -1,25 +1,25 @@
+ . functions
+ export HELOHOST=f.q.d.n
+
+-make-testmail
++# make-testmail
+
+-start server "tcpserver -1 ::0 0 sh $srcdir/test/authtest-smtp.sh $tmpdir/smtp-result"
+-catch-port server
++# start server "tcpserver -1 ::0 0 sh $srcdir/test/authtest-smtp.sh $tmpdir/smtp-result"
++# catch-port server
+
+-echo 'Testing auth success with smtp'
+-echo '250 OK' > $tmpdir/smtp-result
+-protocol smtp --host=localhost --port=$port --user=example --pass=example 3<$testmail
++# echo 'Testing auth success with smtp'
++# echo '250 OK' > $tmpdir/smtp-result
++# protocol smtp --host=localhost --port=$port --user=example --pass=example 3<$testmail
+
+-echo 'Testing auth login success with smtp'
+-echo $'350 Go ahead\n250 AUTH' > $tmpdir/smtp-result
+-protocol smtp --host=localhost --port=$port --user=example --pass=example --auth-login 3<$testmail
++# echo 'Testing auth login success with smtp'
++# echo $'350 Go ahead\n250 AUTH' > $tmpdir/smtp-result
++# protocol smtp --host=localhost --port=$port --user=example --pass=example --auth-login 3<$testmail
+
+-echo 'Testing auth temporary failure with smtp'
+-echo '450 No' > $tmpdir/smtp-result
+-error 16 protocol smtp --host=localhost --port $port --user=example --pass=example 3<$testmail
++# echo 'Testing auth temporary failure with smtp'
++# echo '450 No' > $tmpdir/smtp-result
++# error 16 protocol smtp --host=localhost --port $port --user=example --pass=example 3<$testmail
+
+-echo 'Testing auth permanent failure with smtp'
+-echo '550 No' > $tmpdir/smtp-result
+-error 20 protocol smtp --host=localhost --port $port --user=example --pass=example 3<$testmail
++# echo 'Testing auth permanent failure with smtp'
++# echo '550 No' > $tmpdir/smtp-result
++# error 20 protocol smtp --host=localhost --port $port --user=example --pass=example 3<$testmail
+
+-stop server
++# stop server
diff --git a/testing/nullmailer/nullmailer-2.2-fix-test-racecondition.patch b/testing/nullmailer/nullmailer-2.2-fix-test-racecondition.patch
new file mode 100644
index 00000000000..8f721d8d8cc
--- /dev/null
+++ b/testing/nullmailer/nullmailer-2.2-fix-test-racecondition.patch
@@ -0,0 +1,29 @@
+https://sources.debian.org/data/main/n/nullmailer/1:2.2-3/debian/patches/0001-Remove-race-conditions-from-tests.patch
+
+From: Felix Lechner <felix.lechner@lease-up.com>
+Date: Sat, 2 Sep 2017 09:57:43 -0300
+Subject: Remove race conditions from tests
+
+Testing the qmqp protocol fails because the testing server cannot
+acquire the lock. This is solved by waiting for the previous
+server to exit gracefully and clear the lock. Similarly, wait
+before removing temporary directories.
+
+Forwarded: no
+Last-Update: 2017-10-07
+---
+ test/tests/protocols | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/tests/protocols b/test/tests/protocols
+index 0309d12..52209d7 100644
+--- a/test/tests/protocols
++++ b/test/tests/protocols
+@@ -54,6 +54,7 @@ do
+ echo "Testing protocol failure with $p."
+ error 11 protocol $p -p $port --host=localhost 3<$testmail
+ stop server
++ wait
+ done
+
+ stop server
diff --git a/testing/nullmailer/nullmailer.initd b/testing/nullmailer/nullmailer.initd
new file mode 100644
index 00000000000..5d1353a072e
--- /dev/null
+++ b/testing/nullmailer/nullmailer.initd
@@ -0,0 +1,30 @@
+#!/sbin/openrc-run
+name=nullmailer
+description="Nullmailer relay-only MTA"
+
+command=/usr/sbin/nullmailer-send
+command_user=nullmailer:nullmailer
+command_background=true
+pidfile=/run/nullmailer.pid
+
+depend() {
+ use net logger
+}
+
+checkconfig() {
+ local error=0
+ local f
+ for f in failed queue tmp; do
+ install -dm 0750 -o nullmailer /var/spool/nullmailer/$f
+ done
+ local f=/var/spool/nullmailer/trigger
+ if [ ! -p "$f" ]; then
+ mkfifo -m660 "$f"
+ chown nullmailer:mail "$f"
+ fi
+}
+
+start_pre() {
+ checkconfig
+}
+
diff --git a/testing/nullmailer/nullmailer.post-deinstall b/testing/nullmailer/nullmailer.post-deinstall
new file mode 100644
index 00000000000..fcd0ff5739d
--- /dev/null
+++ b/testing/nullmailer/nullmailer.post-deinstall
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Remove /var/spool/nullmailer/trigger fifo
+# ref: https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10031
+f_trigger=/var/spool/nullmailer/trigger
+if [ -p "$f_trigger" ]; then
+ rm -f "$f_trigger"
+fi
diff --git a/testing/nullmailer/nullmailer.pre-install b/testing/nullmailer/nullmailer.pre-install
new file mode 100644
index 00000000000..ee998ea51fa
--- /dev/null
+++ b/testing/nullmailer/nullmailer.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S nullmailer 2>/dev/null
+adduser -SD -h /var/spool/nullmailer -G nullmailer nullmailer 2>/dev/null
+
+exit 0
diff --git a/testing/nullmailer/remotes.conf b/testing/nullmailer/remotes.conf
new file mode 100644
index 00000000000..a7df2c69156
--- /dev/null
+++ b/testing/nullmailer/remotes.conf
@@ -0,0 +1,34 @@
+# THIS FILE DOES NOT SUPPORT COMMENTS!
+# Please remove all lines starting with # when configuring nullmailer
+
+# Format is: HOST PROTOCOL [OPTIONS]
+# HOST = IP or DNS
+# PROTOCOL = smtp | qmtp
+# OPTIONS = [port=NUMBER] [user] [pass] [starttls | ssl [insecure] ]
+#
+# Examples:
+# A standard SMTP server:
+# somesendmailserver.domain.com smtp
+#
+# A qmail server with QMQP setup:
+# someqmailserver.domain.com qmqp
+#
+# A nonstandard SMTP server setup:
+# someotherserver.domain.com smtp port=2525
+#
+# SMTP server supporting AUTH PLAIN
+# mailserver smtp user=<user> pass=<pass>
+#
+# SMTP server supporting AUTH LOGIN
+# mailserver smtp user=<user> pass=<pass> auth-login
+#
+# SMTP server with smtps (legacy - use starttls instead)
+# mailserver smtp user=<user> pass=<pass> port=465 ssl
+#
+# SMTP server on submission port with starttls
+# mailserver smtp user=<user> pass=<pass> port=587 starttls
+#
+# SMTP server on submission port with starttls and self-signed certificate
+# mailserver smtp user=<user> pass=<pass> port=587 starttls insecure
+
+#mail.myserver.com
diff --git a/testing/numbat/APKBUILD b/testing/numbat/APKBUILD
new file mode 100644
index 00000000000..ce7a9d5bf48
--- /dev/null
+++ b/testing/numbat/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=numbat
+pkgver=1.9.0
+pkgrel=0
+pkgdesc="Statically typed programming language for scientific computations"
+url="https://numbat.dev/"
+arch="all !s390x" # nix crate fails to build
+license="Apache-2.0"
+makedepends="cargo cargo-auditable openssl-dev"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/sharkdp/numbat/archive/refs/tags/v$pkgver.tar.gz
+ use-system-openssl.patch
+ "
+
+export OPENSSL_NO_VENDOR=1
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/numbat -t "$pkgdir"/usr/bin/
+ mkdir -p "$pkgdir"/usr/share/doc/$pkgname
+ cp -r examples "$pkgdir"/usr/share/doc/$pkgname/
+}
+
+sha512sums="
+873a78881e62883ac7e296ea044105b2413382188a95e40989333a119cd6ca5d030fbda6dba3f1fcb656891f7694e193395d4daa7e0cca29b8c3b1821bc217b0 numbat-1.9.0.tar.gz
+025bb1315a1dd43d041721e625c4dbc990b38c9491205e67cbe4d2beffe4a62bc909ed4eb4ef6c23b4e98fa9a579a42b9f1a5be5eea746279de8f874e96a7bc0 use-system-openssl.patch
+"
diff --git a/testing/numbat/use-system-openssl.patch b/testing/numbat/use-system-openssl.patch
new file mode 100644
index 00000000000..eb081bd89c6
--- /dev/null
+++ b/testing/numbat/use-system-openssl.patch
@@ -0,0 +1,368 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index cada940..cfddfe0 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -109,9 +109,8 @@ checksum = "0f77d243921b0979fbbd728dd2d5162e68ac8252976797c24eb5b3a6af9090dc"
+ dependencies = [
+ "http",
+ "log",
+- "rustls",
++ "native-tls",
+ "url",
+- "webpki-roots",
+ ]
+
+ [[package]]
+@@ -301,6 +300,22 @@ dependencies = [
+ "windows-sys 0.45.0",
+ ]
+
++[[package]]
++name = "core-foundation"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
++dependencies = [
++ "core-foundation-sys",
++ "libc",
++]
++
++[[package]]
++name = "core-foundation-sys"
++version = "0.8.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
++
+ [[package]]
+ name = "cpufeatures"
+ version = "0.2.11"
+@@ -492,6 +507,12 @@ version = "3.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "281e452d3bad4005426416cdba5ccfd4f5c1280e10099e21db27f7c1c28347fc"
+
++[[package]]
++name = "fastrand"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
++
+ [[package]]
+ name = "fd-lock"
+ version = "4.0.1"
+@@ -518,6 +539,21 @@ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
++[[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
+ [[package]]
+ name = "form_urlencoded"
+ version = "1.2.0"
+@@ -723,6 +759,24 @@ dependencies = [
+ "autocfg",
+ ]
+
++[[package]]
++name = "native-tls"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
++dependencies = [
++ "lazy_static",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
++]
++
+ [[package]]
+ name = "nibble_vec"
+ version = "0.1.0"
+@@ -866,6 +920,50 @@ version = "11.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+
++[[package]]
++name = "openssl"
++version = "0.10.63"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
++dependencies = [
++ "bitflags 2.4.1",
++ "cfg-if",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
++
++[[package]]
++name = "openssl-sys"
++version = "0.9.99"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
+ [[package]]
+ name = "option-ext"
+ version = "0.2.0"
+@@ -878,6 +976,12 @@ version = "2.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
++[[package]]
++name = "pkg-config"
++version = "0.3.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
++
+ [[package]]
+ name = "plotters"
+ version = "0.3.5"
+@@ -1012,6 +1116,15 @@ dependencies = [
+ "bitflags 1.3.2",
+ ]
+
++[[package]]
++name = "redox_syscall"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
++dependencies = [
++ "bitflags 1.3.2",
++]
++
+ [[package]]
+ name = "redox_users"
+ version = "0.4.3"
+@@ -1019,7 +1132,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+ dependencies = [
+ "getrandom",
+- "redox_syscall",
++ "redox_syscall 0.2.16",
+ "thiserror",
+ ]
+
+@@ -1052,20 +1165,6 @@ version = "0.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+-[[package]]
+-name = "ring"
+-version = "0.17.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+-dependencies = [
+- "cc",
+- "getrandom",
+- "libc",
+- "spin",
+- "untrusted",
+- "windows-sys 0.48.0",
+-]
+-
+ [[package]]
+ name = "rust-embed"
+ version = "8.0.0"
+@@ -1114,28 +1213,6 @@ dependencies = [
+ "windows-sys 0.48.0",
+ ]
+
+-[[package]]
+-name = "rustls"
+-version = "0.21.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c"
+-dependencies = [
+- "log",
+- "ring",
+- "rustls-webpki",
+- "sct",
+-]
+-
+-[[package]]
+-name = "rustls-webpki"
+-version = "0.101.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+-dependencies = [
+- "ring",
+- "untrusted",
+-]
+-
+ [[package]]
+ name = "rustyline"
+ version = "13.0.0"
+@@ -1191,6 +1268,15 @@ dependencies = [
+ "winapi-util",
+ ]
+
++[[package]]
++name = "schannel"
++version = "0.1.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
++dependencies = [
++ "windows-sys 0.52.0",
++]
++
+ [[package]]
+ name = "scopeguard"
+ version = "1.2.0"
+@@ -1198,13 +1284,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+ [[package]]
+-name = "sct"
+-version = "0.7.1"
++name = "security-framework"
++version = "2.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
++dependencies = [
++ "bitflags 1.3.2",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
++]
++
++[[package]]
++name = "security-framework-sys"
++version = "2.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
++checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+ dependencies = [
+- "ring",
+- "untrusted",
++ "core-foundation-sys",
++ "libc",
+ ]
+
+ [[package]]
+@@ -1279,12 +1378,6 @@ version = "1.11.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
+
+-[[package]]
+-name = "spin"
+-version = "0.9.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+-
+ [[package]]
+ name = "strsim"
+ version = "0.10.0"
+@@ -1302,6 +1395,19 @@ dependencies = [
+ "unicode-ident",
+ ]
+
++[[package]]
++name = "tempfile"
++version = "3.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
++dependencies = [
++ "cfg-if",
++ "fastrand",
++ "redox_syscall 0.4.1",
++ "rustix",
++ "windows-sys 0.48.0",
++]
++
+ [[package]]
+ name = "termcolor"
+ version = "1.3.0"
+@@ -1445,12 +1551,6 @@ version = "0.1.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+-[[package]]
+-name = "untrusted"
+-version = "0.9.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+-
+ [[package]]
+ name = "url"
+ version = "2.4.1"
+@@ -1468,6 +1568,12 @@ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
+ [[package]]
+ name = "version_check"
+ version = "0.9.4"
+@@ -1563,12 +1669,6 @@ dependencies = [
+ "wasm-bindgen",
+ ]
+
+-[[package]]
+-name = "webpki-roots"
+-version = "0.25.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+-
+ [[package]]
+ name = "winapi"
+ version = "0.3.9"
+diff --git a/numbat-exchange-rates/Cargo.toml b/numbat-exchange-rates/Cargo.toml
+index c28a79a..1291b98 100644
+--- a/numbat-exchange-rates/Cargo.toml
++++ b/numbat-exchange-rates/Cargo.toml
+@@ -10,5 +10,5 @@ license = "MIT OR Apache-2.0"
+ rust-version = "1.70"
+
+ [dependencies]
+-attohttpc = { version = "0.26.0", default-features = false, features = ["tls-rustls-webpki-roots"] }
++attohttpc = { version = "0.26.0", default-features = false, features = ["tls-native"] }
+ quick-xml = "0.31.0"
diff --git a/testing/nut/APKBUILD b/testing/nut/APKBUILD
deleted file mode 100644
index d16783838ee..00000000000
--- a/testing/nut/APKBUILD
+++ /dev/null
@@ -1,80 +0,0 @@
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Contributor: Kozak Ivan <kozak-iv@yandex.ru>
-# Maintainer: Kozak Ivan <kozak-iv@yandex.ru>
-pkgname=nut
-pkgver=2.7.4
-pkgrel=6
-pkgdesc="Network UPS tools"
-url="http://www.networkupstools.org"
-arch="all"
-license="GPL"
-depends_dev="openssl-dev libusb-compat-dev net-snmp-dev neon-dev"
-makedepends="$depends_dev libtool autoconf automake"
-pkgusers=$pkgname
-pkggroups=$pkgname
-install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-dev"
-source="http://www.networkupstools.org/source/2.7/$pkgname-$pkgver.tar.gz
- openssl-1.1.patch
- upsd.initd
- upsmon.initd
- "
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
- autoreconf -vif
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --libexecdir=/usr/lib/nut \
- --without-wrap \
- --with-user=$pkgname \
- --with-group=$pkgname \
- --disable-static \
- --with-serial \
- --with-usb \
- --without-avahi \
- --with-snmp \
- --with-neon \
- --without-powerman \
- --without-ipmi \
- --without-freeipmi \
- --with-libltdl \
- --without-cgi \
- --with-drvpath=/usr/lib/nut \
- --datadir=/usr/share/nut \
- --sysconfdir=/etc/nut \
- --with-statepath=/var/run/nut \
- --with-altpidpath=/var/run/nut \
- --with-openssl
- make
-}
-
-check() {
- make -C "$builddir" check
-}
-
-package() {
- make -C "$builddir" DESTDIR="$pkgdir" install
- install -Dm755 "$srcdir"/upsd.initd "$pkgdir"/etc/init.d/nut-upsd
- install -Dm755 "$srcdir"/upsmon.initd "$pkgdir"/etc/init.d/nut-upsmon
- install -d -o $pkgname -g $pkgname "$pkgdir"/var/lib/$pkgname
-
- local file;
- for file in "$pkgdir"/etc/nut/*.sample; do
- chmod 640 $file
- chown root:$pkgname $file
- mv $file ${file%.sample}
- done
-}
-
-sha512sums="320c4aff85d8a370c5eff77d33924fdfc3caf6a250620693cdd5bf3336b3a80d8a207488eee841bcf8b72fbad68fda4c074e63b99c56e7886716fc934122d11a nut-2.7.4.tar.gz
-2b6f5df0c7084a0e86474b36d4c567b995c76e2f8fda788a7dffa6d8ecd6b41698ca8376ac228cdbfd805e3406611e7f003e4492d98c74658ed785d7320ab866 openssl-1.1.patch
-f470da96f9d324173e9bd241146284793738f99f2314dfe41c3ac3d56234394609b47d7e593ce9940ec7ce74a26a8483d0911161a16402cd3cc25023ba991d4b upsd.initd
-32470ae473fc363131787cd57f13d40763898947d56d032790ba7f3a5eaa8038b602f7e395ca44f6c5adce8ee5ec496e30ca0eaadb3c78a38015677aea751e12 upsmon.initd"
diff --git a/testing/nut/nut.pre-install b/testing/nut/nut.pre-install
deleted file mode 100644
index 6d67c81a671..00000000000
--- a/testing/nut/nut.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-addgroup -S nut 2>/dev/null
-adduser -S -D -H -h /var/lib/nut -s /sbin/nologin -G nut -g nut nut 2>/dev/null
-adduser nut uucp 2>/dev/null
-
-exit 0
diff --git a/testing/nut/openssl-1.1.patch b/testing/nut/openssl-1.1.patch
deleted file mode 100644
index e7a28845830..00000000000
--- a/testing/nut/openssl-1.1.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From fcbf18c92918ce5e81d0aab62a7aed5c2245ea4d Mon Sep 17 00:00:00 2001
-From: Eneas U de Queiroz <cote2004-github@yahoo.com>
-Date: Fri, 1 Jun 2018 11:17:28 -0300
-Subject: [PATCH] Add compatibility with openssl 1.1.0
-
-Minor adjustments were needed:
-* Openssl 1.1 libs do not need to be initialized.
-* TLSv*_method became TLS_*_method.
-
-Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
----
- clients/upsclient.c | 5 ++++-
- m4/nut_check_libopenssl.m4 | 2 +-
- server/netssl.c | 7 +++++--
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/clients/upsclient.c b/clients/upsclient.c
-index b90587b00..053d60fb0 100644
---- a/clients/upsclient.c
-+++ b/clients/upsclient.c
-@@ -316,10 +316,13 @@ int upscli_init(int certverify, const char *certpath,
-
- #ifdef WITH_OPENSSL
-
-+# if OPENSSL_VERSION_NUMBER < 0x10100000L
- SSL_library_init();
- SSL_load_error_strings();
-+# define TLS_client_method TLSv1_client_method
-+# endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
-
-- ssl_method = TLSv1_client_method();
-+ ssl_method = TLS_client_method();
-
- if (!ssl_method) {
- return 0;
-diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4
-index 1b875077b..7eb401cd9 100644
---- a/m4/nut_check_libopenssl.m4
-+++ b/m4/nut_check_libopenssl.m4
-@@ -58,7 +58,7 @@ if test -z "${nut_have_libopenssl_seen}"; then
-
- dnl check if openssl is usable
- AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT])
-- AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no])
-+ AC_CHECK_FUNCS(SSL_CTX_new, [], [nut_have_openssl=no])
-
- if test "${nut_have_openssl}" = "yes"; then
- nut_with_ssl="yes"
-diff --git a/server/netssl.c b/server/netssl.c
-index c2f409899..0289e296f 100644
---- a/server/netssl.c
-+++ b/server/netssl.c
-@@ -387,12 +387,15 @@ void ssl_init(void)
-
- #ifdef WITH_OPENSSL
-
-+# if OPENSSL_VERSION_NUMBER < 0x10100000L
- SSL_load_error_strings();
- SSL_library_init();
-+# define TLS_server_method TLSv1_server_method
-+# endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */
-
-- if ((ssl_method = TLSv1_server_method()) == NULL) {
-+ if ((ssl_method = TLS_server_method()) == NULL) {
- ssl_debug();
-- fatalx(EXIT_FAILURE, "TLSv1_server_method failed");
-+ fatalx(EXIT_FAILURE, "TLS_server_method failed");
- }
-
- if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) {
diff --git a/testing/nut/upsd.initd b/testing/nut/upsd.initd
deleted file mode 100644
index 0f891bce5db..00000000000
--- a/testing/nut/upsd.initd
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/sbin/openrc-run
-
-name="UPS Server"
-pidfile=/run/nut/upsd.pid
-command=/usr/sbin/upsd
-required_files="/etc/nut/nut.conf /etc/nut/upsd.conf"
-extra_started_commands="reload"
-start_stop_daemon_args="--quiet"
-
-depend() {
- use net dns
-}
-
-start_pre() {
- . /etc/nut/nut.conf
- case $MODE in
- standalone|netserver)
- checkpath -d --owner nut:nut --mode 750 ${pidfile%/*} || return 1
- /usr/sbin/upsdrvctl start > /dev/null
- ;;
- none)
- eerror "$name disabled, please adjust the configuration to your needs"
- eerror "Then set MODE to a suitable value in /etc/nut/nut.conf to enable it"
- return 1
- ;;
- *)
- return 1
- ;;
- esac
-}
-
-stop_post() {
- /usr/sbin/upsdrvctl stop > /dev/null
-}
-
-reload() {
- ebegin "Reloading $name"
- start-stop-daemon --signal HUP --pidfile $pidfile
- eend $?
-}
diff --git a/testing/nut/upsmon.initd b/testing/nut/upsmon.initd
deleted file mode 100644
index 4a7efe8ba44..00000000000
--- a/testing/nut/upsmon.initd
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/sbin/openrc-run
-
-name="UPS Monitor"
-pidfile=/run/upsmon.pid
-command=/usr/sbin/upsmon
-required_files="/etc/nut/nut.conf /etc/nut/upsmon.conf"
-extra_started_commands="reload"
-start_stop_daemon_args="--quiet"
-
-depend() {
- . /etc/nut/nut.conf
- case $MODE in
- standalone|netserver)
- need nut-upsd
- ;;
- esac
- use net dns
-}
-
-start_pre() {
- . /etc/nut/nut.conf
- case $MODE in
- none)
- eerror "$name disabled, please adjust the configuration to your needs"
- eerror "Then set MODE to a suitable value in /etc/nut/nut.conf to enable it"
- return 1
- ;;
- esac
-}
-
-reload() {
- ebegin "Reloading $name"
- start-stop-daemon --signal HUP --pidfile $pidfile
- eend $?
-}
diff --git a/testing/nuzzle/APKBUILD b/testing/nuzzle/APKBUILD
new file mode 100644
index 00000000000..5ee72b6a647
--- /dev/null
+++ b/testing/nuzzle/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor:
+# Maintainer: Vladimir Vitkov <vvitkov@gmail.com>
+pkgname=nuzzle
+pkgver=1.5
+pkgrel=0
+# as there is no official versioning code comes from git hash
+# use the hash later on for shortening of commands
+_gitcommit="2fdb5e793cb3e41cd5ef350d757aef7eeba93bda"
+pkgdesc="Lightweight, fast network attack detection IDS and IPS"
+url="https://nuzzle.hackerfactor.com/"
+arch="all"
+license="custom"
+makedepends="g++"
+subpackages="$pkgname-doc"
+options="toolchain !check" # No test suite provided.
+ # Single c file.
+ # Author recommends using g++ for build
+source="$pkgname-$pkgver.zip::https://github.com/hackerfactor/nuzzle/archive/$_gitcommit.zip"
+prepare() {
+ mkdir -p "$builddir"
+ mv "$srcdir"/$pkgname-$_gitcommit/* "$builddir"/
+ default_prepare
+}
+
+build() {
+ g++ -Wall -o nuzzle nuzzle.c
+}
+
+package() {
+ install -m755 -D "$builddir"/nuzzle "$pkgdir"/usr/sbin/nuzzle
+ install -m644 -D "$builddir"/LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -m644 -D "$builddir"/README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+sha512sums="
+7e08bf666634acbd8a8304254073e6c64d880347440050409c70ea3ee5671274bdef16de8ab8b7fcf7c4e12b855cd2db5acddb6231fd4708d16eae2cd241cc58 nuzzle-1.5.zip
+"
diff --git a/testing/nvchecker/APKBUILD b/testing/nvchecker/APKBUILD
new file mode 100644
index 00000000000..eec960662c0
--- /dev/null
+++ b/testing/nvchecker/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=nvchecker
+pkgver=2.14.1
+pkgrel=1
+pkgdesc="New version checker for software releases"
+url="https://github.com/lilydjwg/nvchecker"
+arch="noarch"
+license="MIT"
+depends="
+ py3-curl
+ py3-platformdirs
+ py3-structlog
+ py3-tornado
+ python3
+ "
+makedepends="
+ git
+ py3-aiohttp
+ py3-docutils
+ py3-flaky
+ py3-gobject3
+ py3-gpep517
+ py3-pygments
+ py3-setuptools
+ py3-toml
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest-asyncio
+ py3-pytest-httpbin
+ pytest
+ "
+install="$pkgname.post-install"
+subpackages="$pkgname-pyc $pkgname-doc $pkgname-bash-completion"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lilydjwg/nvchecker/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # tests fail
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ make -C docs man
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer "$builddir"/.dist/*.whl
+ .testenv/bin/python3 -m pytest -v
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+ install -Dm644 scripts/nvtake.bash_completion "$pkgdir"/usr/share/bash-completion/completions/nvtake
+ install -Dm644 docs/_build/man/nvchecker.1 -t "$pkgdir"/usr/share/man/man1/
+}
+sha512sums="
+104fd03aaefe343028ab97ca35680b3d87a7a72dba743c33fd49bc7be1731f8e31bcc5487f7257d89c167091486ea3df63c974dd68c5bae812b2e82911bf832d nvchecker-2.14.1.tar.gz
+"
diff --git a/testing/nvchecker/nvchecker.post-install b/testing/nvchecker/nvchecker.post-install
new file mode 100644
index 00000000000..cd10c052470
--- /dev/null
+++ b/testing/nvchecker/nvchecker.post-install
@@ -0,0 +1,16 @@
+#!bin/sh
+
+cat >&2 <<-EOF
+* This package does not contain any optional dependencies.
+* For certain functionality, please install additionally:
+*
+* py3-awesomeversion: for using "sort_version_key = awesomeversion" in configuration files
+* py3-lxml: for the htmlparser source
+* py3-packaging: for the pypi source
+* py3-toml: for nvchecker-ini2toml script
+* git: for the git source
+* py3-gobject3: for nvchecker-notify
+* libnotify: for nvchecker-notify
+EOF
+
+exit 0
diff --git a/testing/nvi/01additional_upstream_data.patch b/testing/nvi/01additional_upstream_data.patch
deleted file mode 100644
index 2517bbb5e3e..00000000000
--- a/testing/nvi/01additional_upstream_data.patch
+++ /dev/null
@@ -1,3482 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: A few documentation files cherry-picked from the last stable
- release tarball, because they are missing in later development
- branch releases.
-
-diff -Naur nvi-1.81.6.orig/nvi-1.79/FAQ nvi-1.81.6/nvi-1.79/FAQ
---- nvi-1.81.6.orig/nvi-1.79/FAQ 1970-01-01 01:00:00.000000000 +0100
-+++ nvi-1.81.6/nvi-1.79/FAQ 1996-10-14 15:52:46.000000000 +0200
-@@ -0,0 +1,160 @@
-+@(#)FAQ 8.13 (Berkeley) 10/14/96
-+
-+Q: How can I get vi to display my character set?
-+A: Vi uses the C library routine isprint(3) to determine if a character
-+ is printable, or should be displayed as an octal or hexadecimal value
-+ on the screen. Generally, if vi is displaying printable characters
-+ in octal/hexadecimal forms, your environment is not configured correctly.
-+ Try looking at the man pages that allow you to configure your locale.
-+ For example, to configure an ISO 8859-1 locale under Solaris using csh,
-+ you would do:
-+
-+ setenv LANG C
-+ setenv LC_CTYPE iso_8859_1
-+
-+ Other LC_CTYPE systems/values that I'm told work:
-+
-+ System Value
-+ ====== =====
-+ FreeBSD lt_LN.ISO_8859-1
-+ HP-UX 9.X american.iso88591
-+ HP-UX 10.X en_US.iso88591
-+ SunOS 4.X iso_8859_1
-+ SunOS 5.X iso_8859_1
-+
-+ If there's no other solution, you can use the print and noprint edit
-+ options of vi to specify that a specific character is printable or not
-+ printable.
-+
-+Q: My map won't work!
-+A: One thing that you should immediately check if a vi map doesn't work
-+ is if depends on the final cursor position after a P or p command.
-+ Historic vi's were inconsistent as to the final position of the cursor,
-+ and, to make matter worse, the final cursor position also depended on
-+ whether the put text came from a named or unnamed buffer! Vi follows
-+ the POSIX 1003.2 standard on this one, and makes this consistent, always
-+ placing the cursor on the first character.
-+
-+Q: I'm using ksh or csh as my vi edit option shell value, and file
-+ expansions don't work right!
-+A: The problem may be in your ksh or csh startup files, e.g., .cshrc. Vi
-+ executes the shell to do name expansion, and the shell generally reads
-+ its startup files. If the startup files are not correctly configured
-+ for non-interactive use, e.g., they always echo a prompt to the screen,
-+ vi will be unable to parse the output and things will not work
-+ correctly.
-+
-+Q: How does the iclower edit option differ from the ignorecase (i.e. ic)
-+ edit option?
-+A: The difference is that the ignorecase edit option always ignores the
-+ case of letters in the Regular Expression (RE), and the iclower edit
-+ option only ignores the case if there are no upper-case letters in the
-+ RE. If any upper-case letters appear in the Regular Expression, then
-+ it will be treated case-sensitively, as if the ignorecase edit option
-+ was not set.
-+
-+Q: When I edit binary files, vi appends a <newline> to the last line!
-+A: This is historic practice for vi, and further, it's required by the
-+ POSIX 1003.2 standard. My intent is to provide a command line and/or
-+ edit option to turn this behavior off when I switch to version 2.0 of
-+ the Berkeley DB package.
-+
-+Q: My cursor keys don't work when I'm in text input mode!
-+A: A common problem over slow links is that the set of characters sent by
-+ the cursor keys don't arrive close enough together for vi to understand
-+ that they are a single keystroke, and not separate keystrokes. Try
-+ increasing the value of the escapetime edit option, which will cause
-+ vi to wait longer before deciding that the <escape> character that
-+ starts cursor key sequences doesn't have any characters following it.
-+
-+Q: When I edit some files, vi seems to hang forever, and I have to kill it.
-+A: Vi uses flock(2) and fcntl(2) to do file locking. When it attempts to
-+ acquired a lock for a file on an NFS mounted filesystem, it can hang
-+ for a very long (perhaps infinite) period of time. Turning off the
-+ "lock" edit option will keep vi from attempting to acquire any locks
-+ on the files you edit.
-+
-+Q: When I compile vi I get lots of warnings about pointer assignments
-+ being incompatible!
-+A: Vi is partially written to support wide characters. When this code
-+ interfaces with the code that doesn't yet support wide characters,
-+ the pointer types clash. This will hopefully be fixed in the near
-+ future, but I've been saying that for awhile, now.
-+
-+Q: I get jumpy scrolling behavior in the screen!
-+A: This is almost certainly a problem with the system's terminfo or
-+ termcap information for your terminal. If the terminfo/termcap entry
-+ doesn't have the settable scrolling region capabilities, or the more
-+ powerful scrolling commands, these behaviors can result. Historic
-+ implementations of vi, and some of the vi clones, don't suffer from
-+ this problem because they wrote their own screen support instead of
-+ using the curses library.
-+
-+ The solution is to find a good terminfo or termcap entry for your
-+ terminal, which will fix the problem for all of the applications on
-+ your system, not just vi. Eric Raymond maintains the freely
-+ redistributable termcap/terminfo entries. They can be downloaded
-+ from http://www.ccil.org/~esr/ncurses.html, or you can contact him
-+ at esr@snark.thyrsus.com.
-+
-+Q: The entire screen repaints on every keystroke!
-+A: Your system's curses implementation is broken. You should use the
-+ curses implementation provided with vi or a curses replacement such
-+ as ncurses. Eric Raymond is one of the maintainers of the freely
-+ redistributable ncurses package. You can download ncurses from
-+ http://www.ccil.org/~esr/ncurses.html, or you can contact him at
-+ esr@snark.thyrsus.com.
-+
-+Q: When I use vi on a Sun console (terminal type sun-34) the screen
-+ is occasionally trashed, usually when exiting vi!
-+A: The Sun console can't handle the 'al' capability of the termcap
-+ entry (the il1 capability of terminfo entries). If you delete that
-+ entry from your terminfo/termcap information everything should work
-+ correctly.
-+
-+Q: I don't have a version of ctags (or I have ctags, but it doesn't tag
-+ nearly enough things)!
-+A: There's a version of ctags available on the 4.4BSD-Lite distributions,
-+ as well as the FreeBSD, NetBSD, Linux and GNU distributions. Or, you
-+ might want to try Exuberant Ctags:
-+
-+ Title: Exuberant Ctags
-+ Version: 1.3
-+ Entered-date: 16JUN96
-+ Description:
-+ A better ctags which generates tags for all possible tag types:
-+ macro definitions, enumerated values (values inside enum{...}),
-+ function and method definitions, enum/struct/union tags, external
-+ function prototypes (optional), typedefs, and variable
-+ declarations. It is far less easily fooled by code containing #if
-+ preprocessor conditional constructs, using a conditional path
-+ selection algorithm to resolve complicated choices, and a
-+ fall-back algorithm when this one fails. Can also be used to print
-+ out a list of selected objects found in source files.
-+ Keywords: ctags, tags, exuberant
-+ Author: darren@sirsi.com (Darren Hiebert)
-+ darren@hiwaay.net (Darren Hiebert)
-+ Maintained-by: darren@sirsi.com (Darren Hiebert)
-+ darren@hiwaay.net (Darren Hiebert)
-+ Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c
-+ 27kB ctags-1.3.tar.gz
-+ Alternate-site: ftp.halcyon.com /local/gvr
-+ 27kB ctags-1.3.tar.gz
-+ Original-site:
-+ Platforms: UNIX, MSDOS, WindowsNT, Windows95, OS/2, Amiga
-+ Copying-policy: Public domain
-+
-+Q: When I update a file I already have open, and use :e to reread it, I
-+ get nul's for the rest of the file!
-+A: Your system's implementation of mmap(2) has a bug; you will have to
-+ exit vi and re-execute it.
-+
-+Q: Where can I get cscope?
-+A: Cscope is available on UNIXWare System V Release 4.0 variants such as
-+ Sun Solaris 2.x (/opt/SUNWspro/bin) and UNIXWare System V Release 4.1.
-+
-+ You can buy version 13.3 source with an unrestricted license for $400
-+ from AT&T Software Solutions by calling +1-800-462-8146. Binary
-+ redistribution of cscope is an additional $1500, one-time flat fee.
-+
-+ For more information, see http://www.unipress.com/att/new/cscope.html.
-diff -Naur nvi-1.81.6.orig/docs/changelog nvi-1.81.6/docs/changelog
---- nvi-1.81.6.orig/nvi-1.79/docs/changelog 1970-01-01 01:00:00.000000000 +0100
-+++ nvi-1.81.6/nvi-1.79/docs/changelog 1996-10-23 15:39:08.000000000 +0200
-@@ -0,0 +1,1102 @@
-+1.78 -> 1.79 (10/23/96)
-+ + Rename delete() to del(), for C++.
-+ + Add Spanish to the list of translations.
-+ + Update to Perl 5.003_06, and other Perl interpreter updates.
-+ + Update the set-edit-option interface for the scripting languages.
-+ + Rework ex command parsing to match historic practice for backslash
-+ escaped <newline> characters inside of global commands.
-+ + Enhance the comment edit option to skip C++ comments.
-+ + Change installation to configure the recovery shell script to match
-+ the system pathnames and to install it into the vi data directory.
-+ Move the recover script into the build directory, and delete the
-+ recover directory.
-+ + Enhance LynxOS support.
-+1.76 -> 1.78 (10/01/96)
-+ + Fix bugs when both the leftright scrolling and number edit options
-+ were on.
-+ + Fix bug where splitting in the middle of the screen could repaint
-+ incorrectly.
-+ + Fix first-nul in input bug, where random garbage was inserted.
-+ + Correct search and mark-as-motion-command bug, it's a line mode
-+ action if the search starts at or before the first non<blank>.
-+ + Fix bug autoindent bug, where ^D could shift too far in the line.
-+ + Fix core dump where ! command called from the .exrc file.
-+ + Add the -S command-line option, which initializes vi to have the
-+ secure edit option preset.
-+1.75 -> 1.76 (09/15/96)
-+ + Fix bug where ^V didn't keep input mapping from happening.
-+ + Fix a core dump bug in the R command.
-+ + Give up on licensing: no more shareware, adware, whatever.
-+ + Fix cursor positioning bug for C, S and c$ in an empty file.
-+1.74 -> 1.75 (08/22/96)
-+ + Add French to the error message translations.
-+ + Move the UNLICENSED message to the end of the message line.
-+ + Fix bug where wide characters in a file name weren't calculated
-+ correctly in the status message.
-+ + Fix bug where cl_rename was called directly, by the ex shell code.
-+ + Fix bug where splitting a screen resulting in a new screen at the
-+ top of the display resulted in badly displayed status messages.
-+1.73 -> 1.74 (08/18/96)
-+ + Fix bug where the status line wasn't redisplayed if the user ran
-+ an ex command that trashed the screen.
-+ + Fix bug where the long version of the status line wasn't displayed
-+ when switching screens.
-+ + Rework fast-path filename completion code to sort the entries, and
-+ strip out . and .. by default.
-+ + Fix bug where ex went to the first line instead of the last one when
-+ reading in a file.
-+1.72 -> 1.73 (08/12/96)
-+ + Do filename completion and some file expansion internally for speed.
-+ + Fix CSCOPE_DIRS environmental variable support.
-+ + Ex parser fix for global commands in script files.
-+ + Add the O_PATH option, so you can specify a directory search path
-+ for files.
-+ + Make it possible to specify the database file to cscope, allowing
-+ multiple databases in a single directory.
-+ + Fix incremental search to overwrite erased characters so the user
-+ can tell where they are on the colon-command line.
-+ + Fix incremental search to restart the search if the user enters an
-+ unescaped shell meta character.
-+1.71 -> 1.72 (07/12/96)
-+ + Cscope fix: test for files newer than the database was reversed.
-+ + Display "files to edit" message for rewind, next and initial screen.
-+ + Fix a bug in the R command where it could fail if the user extended
-+ the file.
-+ + Fix a bug where text abbreviations could corrupt the line.
-+ + Fix a bug where the windowname edit option couldn't be set before a
-+ file was loaded into the edit buffer.
-+ + Fix a bug where the system .exrc values weren't being overridden by
-+ the user's $HOME .exrc values.
-+ + Fix a bug in the filename completion code, where garbage characters
-+ could be added to the colon command line.
-+ + Fix bug where multiple edit sessions on a non-existent file could
-+ all write the file without warning.
-+ + Fix bug where screen update was incorrect if a character triggered
-+ both a wrapmargin and showmatch condition.
-+ + Fix bug in leftright scrolling where <CR> during text input didn't
-+ return the cursor to the left margin.
-+ + Rev the Perl interpreter code, new version from Sven Verdoolaege,
-+ based on Perl 5.003.01.
-+ + Fix bug in tags file pattern search introduced in 1.71.
-+1.70 -> 1.71 (07/01/96)
-+ + Don't include <term.h> -- neither HPUX or Solaris can cope with it.
-+ + Fix bug where ^M's in the original pattern were converted into new
-+ lines in the file during substitution commands.
-+ + Make window resize events separate from interrupts -- too many users
-+ complained.
-+ + Fix bug in first-character-is-null text input semantic.
-+ + Rework search routines to take a length instead of a nul-terminated
-+ string for a pattern. This fixes a couple of bugs in searching, but
-+ probably introduces new ones.
-+ + Fix prompting the user after a write filter command, the way I did
-+ it in 1.70 broke the display.
-+ + Don't switch to the alternate xterm screen when entering the ex
-+ text input commands from vi mode.
-+ + Implement the Fg command, so can foreground a background screen into
-+ a split screen.
-+ + Change the fg command to match screen names using the last component
-+ of the filename the full filename fails.
-+1.69 -> 1.70 (06/28/96)
-+ + Change the ex read command to support named pipes.
-+ + Copy the EXINIT/NEXINIT strings before executing their commands so
-+ we don't step on the process environment.
-+ + Don't do "line modification" reports for intermediate commands
-+ executed from the vi colon command line, it screws up filter
-+ reads, causing nvi to prompt for the user to continue.
-+ + Add "smd" as an abbreviation for showmode: HP, ICL and SCO have it.
-+ + Change nvi to always prompt the user after a write filter command.
-+ This matches historic practice.
-+ + Fix recovery information mailed to the user to reflect the program's
-+ installed name.
-+ + Change configuration script to not cache option information, e.g.,
-+ --disable-curses.
-+ + Fix a bug where the second character of the vi [[, ]] and ZZ
-+ commands could start a command mapped sequence.
-+ + Fix 3 write bugs: partial writes (3,$write), were clearing the
-+ modified flag, full writes using line numbers (1,$write) were
-+ not, and append historically never cleared the modified flag, and
-+ we didn't get that right.
-+ + Shorten the "more files to edit" message so it can gang on a single
-+ line, lots of people have complained. Add the number of files that
-+ are left to edit, it's historic practice.
-+ + Fix core dump where message catalogs collided with truncating the
-+ write path. Add a new write message so the string "appended" is
-+ taken from a message catalog.
-+ + Fix bug where an undo followed by '.' to repeat it wouldn't work
-+ if no other repeatable commands had been entered.
-+ + Fix core dump when resolution of input lines' autoindent characters
-+ invalidated cached display information.
-+ + Set the name of the X11 xterm icon/window to "xterm" when exiting,
-+ if modified based on the windowname option.
-+ + Include <term.h> if it exists, fixes portability problems on IRIX
-+ systems.
-+1.68 -> 1.69 (06/17/96)
-+ + Add the windowname edit option and code to change the icon/window
-+ name for xterm's.
-+ + Enhance the comment edit option to skip shell comments.
-+ + Add conditional prototypes to replacement C library functions.
-+ + Minor enhancements/reworking to Makefile.in, other build files.
-+ + Fix bug in vi text input ^D processing, could result in cursor
-+ warp to the beginning of the line.
-+ + Fix leftright screen bug where the screen wasn't repainted when
-+ being repainted from scratch.
-+ + Update the Swedish and Dutch catalogs.
-+ + Truncate paths in write commands if they don't fit on one line.
-+ + Fix alternate screen bug where the screen flashed and output lost
-+ when switching to/from the X11 xterm alternate screen. Fix bug
-+ where nvi switched into the alternate screen during filter-read
-+ commands, which doesn't match historic practice.
-+ + Minor relative cursor positioning change, make cursor position
-+ changes from ex real and permanent.
-+1.67 -> 1.68 (06/09/96)
-+ + Fix core dump when tagging out of a modified file.
-+1.66 -> 1.67 (06/09/96)
-+ + Convert the license to adware.
-+ + Leftright scrolling tweak, don't repaint the screen as often.
-+ + Change so that search warning/error messages don't appear during an
-+ incremental search.
-+ + Cscope fix: test for files newer than the database was reversed.
-+ + Don't display ex `welcome message' if in ex batch mode.
-+ + Test for vsnprintf and snprintf separately, HP 10.10 has snprintf
-+ but not vsnprintf.
-+ + Reverse lookup order between LC_MESSAGES and LANG.
-+ + Fix Tcl/Perl core dumps in common API code to get/set options.
-+ + Fix R command -- it used a DB pinned page after discarding it.
-+ + Minor fixes in multiple edit buffer message handling code.
-+ + Fix yk command moving to shorter line core dump.
-+ + Rework message handling to try and gang more messages onto a single
-+ line.
-+1.65 -> 1.66 (05/18/96)
-+ + Convert vi man page to historic -man macro package, and install it.
-+ + Fix bug were !! on an empty line with a nonexistent command left the
-+ cursor on the second character, not the first.
-+ + Fix bug where line redisplay was wrong when a <tab> replaced a
-+ previous <tab> in the line.
-+ + Fix bug where D (d$) didn't reset the relative cursor position.
-+ + Fix bug where yG incorrectly reset the relative cursor position.
-+ + Fix bug where the window size couldn't be grown once it was shrunk.
-+ + Fix bug where the extended edit option caused tag searches to fail.
-+ + If multiple lines in the tags file with the same leading tag, build
-+ a tags stack like the Cscope stack. This is the obvious extension,
-+ and the way that Larry McVoy's ctags program works.
-+ + Send the appropriate TI/TE sequence in the curses screen whenever
-+ entering ex/vi mode. This means that :shell now shows the correct
-+ screen when using xterm alternate screens.
-+ + Rework the options display code to get five columns in an 80 column
-+ screen.
-+ + Interactive Unix V3.0 port -- mostly file name shortening, other
-+ minor changes. Only preliminary, more work will be necessary.
-+ + Add debugging option to not read EXINIT/.exrc information.
-+ + Fix bug where re_compile printed an error message to the screen
-+ when the user entered [ to an incremental search.
-+ + Turn off screen beeps when incremental search is failing.
-+ + Fix bug where the iclower option didn't trigger an RE recompilation.
-+ + Fix bug where -t into an already locked file forced the user to wait
-+ as if a startup command had failed.
-+ + LynxOS port -- mostly adding <sys/types.h> even though <sys/param.h>
-+ was already included.
-+ + Fix ex output bug, where it appeared as if an ex command was skipped
-+ due to flags not being cleared in the vs_msg() routine.
-+ + Fix core dump when global command tried to switch screens.
-+1.64 -> 1.65 (05/13/96)
-+ + Fix cscope <blank>-matching pattern to use extended RE's, and bug
-+ that kept cscope from finding patterns containing <blank>s.
-+ + Fix core dumps in both leftright and folded screens when tabstops
-+ edit option value was large, and tab characters occurred as the last
-+ character in the logical screen.
-+ + Fix core dump where the second screen of a folded line wasn't
-+ displayed correctly.
-+ + Fix incremental search to match the current location for strings
-+ starting with \< patterns.
-+ + Fix bug where margins were ignored during replay of text input.
-+ + Fix bug where motion components to shorter lines could lose because
-+ the relative motion flags weren't ever set. This has been broken
-+ forever, but the change almost certainly breaks something else -- I
-+ have no idea what.
-+ + Tags display: don't print the current entry separately, display
-+ them all and add a trailing asterisk for the current one.
-+ + Change the cscope add command to put the directory name through
-+ standard file name expansion.
-+ + Fix cscope use of buffers -- search commands weren't nul-terminated.
-+1.63 -> 1.64 (05/08/96)
-+ + Add installation target to the Makefile.
-+ + Add documentation on the new tags commands to the Vi Reference
-+ Manual.
-+ + Make the sidescroll edit option work again.
-+ + Fix bug where messages output during startup by ex could be lost.
-+ + Change ex/vi commands errors into beeps, unless the verbose edit
-+ option is set -- there are too many macros that are expected to
-+ eventually fail. This matches historic practice.
-+ + Truncate paths in initial vi screen if they won't fit on one line.
-+ + Make cursor position after filter write match historic practice.
-+ + Force the user to wait if there is output and the user is leaving
-+ the screen for any reason -- don't permit further ex commands.
-+ + Don't use a <newline> character to scroll the screen when exiting,
-+ scroll in the vi screen before endwin() is called.
-+ + Fix bug where the column number could be incorrect because the old
-+ screen wasn't updated after a screen split.
-+ + Fix ex print routine to correctly specify print flags.
-+ + Make -g/-O a separate make/configuration option.
-+ + Fix bug where ex/vi messages weren't being joined.
-+ + Fix bug where termcap strings were free'd twice.
-+ + Fix bug where TI/TE still weren't working -- I didn't put in the
-+ translation strings for BSD style curses.
-+ + Fix bug where I misspelled the iclower edit option as icloser.
-+1.62 -> 1.63 (04/29/96)
-+ + Robustness and type/lint fixes for the Tcl interface code.
-+ + Fix core dump if TERM wasn't set or terminal type was unknown.
-+ + Fix bug where combining ex commands that did/did not require an
-+ ex screen would overwrite the command with the want-to-continue
-+ messsage.
-+ + Fix bug where the screen was never resolved if the user continued
-+ entering ex commands using the : character, but then backspaced
-+ over the prompt to quit or tried to edit their colon command-line
-+ history.
-+ + Fix bug where cursor wasn't placed over the ^ placeholder character
-+ when quoting using the literal-next character.
-+ + Fix bug where nvi under BSD style curses wasn't sending TI/TE termcap
-+ strings when suspending the process.
-+ + Rename mic again, to iclower.
-+ + Fix bug where 'z' commands trailing / or ? commands weren't being
-+ executed.
-+ + Change incremental search to leave the cursor at its last position
-+ when searching for something that was never found.
-+ + Fix bug where search-with-confirmation from vi mode didn't position
-+ the cursor correctly after displaying the confirm message.
-+ + Fix bug where the "search wrapped" message was dependent on the
-+ verbose edit option, which doesn't match historic practice. Change
-+ search messages to be in inverse video.
-+ + Fix bug where matched showmatch character wasn't being displayed
-+ before the matching character was displayed.
-+ + Another cursor update bug required a change to vs_paint().
-+ + Fix bug were initial line offset was wrong for the first split screen
-+ (symptom is very strange column numbers and blank first line).
-+ + Create filename "argument" lists when creating new screens.
-+ + Fix bug where globals with associated commands that included both
-+ buffer execution and other commands could fail to execute the latter.
-+1.61 -> 1.62 (04/22/96)
-+ + Rename the "searchci" edit option to be "mic".
-+ + Fix memory corruption in global commands ending in searches.
-+ + Fix text resolution bug, corrected the cursor based on the
-+ first line input, not the last.
-+ + Rework the readonly edit option to match historic practice.
-+ + Fix several minor incremental search bugs; make incremental
-+ searches work in maps.
-+ + Fix long-line core dump, where an incorrect screen map could be
-+ used.
-+1.60 -> 1.61 (04/12/96)
-+ + The cursor now ends up on the FIRST character of the put text for
-+ all versions of the vi put commands, regardless of the source
-+ of the text. This matches System III/V behavior and POSIX 1003.2.
-+ + Fixed bug where showmatch messages were getting discarded.
-+ + Minor Perl integration fixes.
-+ + Integrate Cscope into the tags stack code -- major change.
-+ + Fixed bug where ^T would drop core if returning to a temporary file.
-+ + Changed vs_ routine to display ex output to replace tab characters
-+ with spaces.
-+ + Fix autoindent code to not back up past beginning of line when ^T
-+ inserted into the middle of a line, i.e. offset != 0.
-+ + Fix "notimeout" option, was being ignored, by a coding error.
-+ + Fix showmatch code to never flash on a match if keys are waiting.
-+ + Change the vi 'D' command to ignore any supplied count, matching
-+ historic practice.
-+ + Fix viusage for D, S, C and Y (the aliased vi commands).
-+ + Fix the Perl5 configuration bug in the configuration script.
-+ + Make file completion commands in empty lines work.
-+ + Fix where the change to let vi use the default ex command structure
-+ broke the ex specification of the script or source file name.
-+ + Fix to free saved RE structures when screens exit. This is a major
-+ RE change, which fixed several bugs in the handling of saved/subst
-+ RE's. It's likely to have added new bugs, however.
-+ + Add case-independent searching (the searchci edit option).
-+ + Add incremental search (the searchincr edit option).
-+ + Home the cursor when executing ex commands from vi.
-+1.59 -> 1.60 (03/29/96)
-+ + Fix ":w >>" core dump, make that command match historic practice.
-+ + Fix autoindent bug where the length of the line was incorrectly
-+ calculated.
-+ + Fix cursor bug where cursor could end up at the wrong place if the
-+ movement keys were entered quickly enough.
-+ + Change the read/write whirling indicator to appear only every 1/4
-+ second, clean up the appearance.
-+ + Don't change the options real values until underlying functions
-+ have returned OK -- fix "set tabstop=0" core dump.
-+ + Fix resizing on Sun's: use SA_INTERRUPT to interrupt read calls.
-+ + Fix two forward mark command bugs: one where it wasn't setting the
-+ "favorite cursor" position because of the refresh optimization,
-+ and one where it didn't have VM_RCM_SET set in the command flags
-+ for some reason.
-+ + Fix a bug were the 's' command on top of a <tab> didn't correctly
-+ copy the buffer.
-+ + Make :exusage command work for commands having optional leading
-+ capital letters, e.g. Next.
-+ + Previous changes broke the inital-matching-prefix code in the key
-+ mapping part of v_event_get -- fix it, and fix the infinite macro
-+ interrupt code at the same time.
-+ + Add "cedit" edit option, so colon command-line editing is optional.
-+ Change filec/cedit so that you can set them to the same character,
-+ and they do cedit if in column 1, and filec otherwise.
-+ + Fix "source of non-existent file" core dump.
-+ + Fix bug where functions keys specified in startup information were
-+ never resolved/activated.
-+ + Fix v_txt bug where could infinitely loop if <escape> triggered an
-+ abbreviation expansion.
-+ + Move version string into VERSION file, out of ex_version.c
-+1.58 -> 1.59
-+ + Configuration changes, several minor bug fixes, including a few
-+ core dumps. No functional changes.
-+1.57 -> 1.58
-+ + Fix the problem where colon command-line temporary files were
-+ getting left in /tmp.
-+ + Fix the configuration scripts to quit immediately if the Perl
-+ or Tk/Tcl libraries are specified but not found.
-+ + Several screen fixes -- the changes in 1.57 weren't as safe as
-+ I thought. More specifically, the refresh-only-if-waiting change
-+ caused a lot of problems. In general, fixing them should provide
-+ even more speedup, but I'm nervous.
-+ + Lots of changes in the configuration scripts, hopefully this is
-+ just a first-round ordeal.
-+ + Several other minor bug fixes.
-+1.56 -> 1.57
-+ + Add <esc> hook to colon commands, so you can edit colon commands.
-+ + Add Perl5 interpreter.
-+ + Change shell expansion code to fail if it doesn't read at least
-+ one non-blank character from the shell. If the shell expansion
-+ process fails, or if not at least one non-blank character, it
-+ now displays an error message to the user.
-+ + Rework the screen display so that it matches the historic vi screen
-+ refreshes.
-+ + Rework options processing: print/noprint are no longer cumulative,
-+ provide more information to underlying edit options modules, move
-+ O_MESG information into the screen specific code.
-+ + Make file completion character settable.
-+ + Rework terminal restart -- you can now use ":set term" to switch
-+ terminal types. This cleaned up screen resizing considerably.
-+ + Character display fix, display \177 as ^?, not in hex/octal.
-+ + Tag search bug fix, don't repeat search if successful.
-+ + Replace sys_siglist[] use with private sigmsg() routine.
-+ + Fix core dump if illegal screenId specified to Tcl routine.
-+ + Add get/set mark interface to Tcl Interpreter interface.
-+ + Fix core dump if file expansion code stressed (re: filec edit option)
-+ + Fix bug where filter commands in empty files couldn't find line 0.
-+ + Switch to GNU autoconf 2.7 for configuration, delete nvi/PORT.
-+ Many random portability fixes.
-+1.55 -> 1.56 (11/26/95)
-+ + Bug fix release -- generally available beta release.
-+1.54 -> 1.55 (11/18/95)
-+ + Bug fix release.
-+ + Integrate Tcl interpreter.
-+1.53 -> 1.54 (11/11/95)
-+ + Bug fix release. A major change in reworking the ex commands, when
-+ called from the colon command line, to match historic practice, and
-+ permit them to be entered repeatedly after ex has trashed the screen.
-+ + Use restartable endwin() from System V curses to implement screen
-+ + suspend.
-+1.52 -> 1.53 (10/29/95)
-+ + Switch to using vendor's curses library for all ports.
-+ + Back out the event driven version, leaving screen separation.
-+ + User configuration of <escape> timeout (the escapetime edit option).
-+ + Add Tcl/Tk screen support.
-+ + Add file name completion (the filec edit option).
-+ + Disallow access to outside applications (the secure edit option).
-+1.51 -> 1.52 (7/26/95)
-+ + Minor cleanups, snapshotted for SMI.
-+1.50 -> 1.51 (7/05/95)
-+ + Lots and lots of changes for event driven model, largely in moving
-+ the boundary between the screen code and the editor up and down.
-+ Private release for Rob Zimmermann @ Tartan and Bill Shannon @ SMI.
-+1.49 -> 1.50 Fri Jun 9 13:56:17 1995
-+ + Minor bug fixes for stability.
-+ + Convert to an event driven model, with the usual Nachos Supreme
-+ layering that results. This is a completely new version, nothing
-+ done previously matters any more.
-+1.48 -> 1.49 Wed Mar 8 10:42:17 1995
-+ + Changes in 1.46 broke ^A processing.
-+ + Add :previous to split screen commands.
-+ + Lots o' random bug fixes -- passes purify testing again.
-+1.47 -> 1.48 Thu Feb 9 18:13:29 1995
-+ + Random bug fixes for 1.47.
-+ + Move the FREF (file structure) list out of the screen and into
-+ the global area.
-+ + Change semantics to :E to more closely match :e -- ":E" joins
-+ the current file, so ":E /tmp" is now the command to match the
-+ historic ":split".
-+1.46 -> 1.47 Wed Feb 8 19:43:41 1995
-+ + All ex commands (including visual and excluding global and v)
-+ are now supported inside ex global commands.
-+ + Rework the append/change/insert commands to match historic
-+ practice for text appended to the ex command line, and inside
-+ of ex global commands.
-+ + Restructure to make single-line screens work.
-+ + Restructure to create curses independent screen routines.
-+ + Restructure to permit Edit, Next, and Tag routines to create new
-+ screens on the fly.
-+ + Change hexadecimal output to be \x## instead of 0x##.
-+ + Change ex commands run from vi to stay in vi mode for as long as
-+ possible, i.e. until ex modifies the screen outside of the editor.
-+1.45 -> 1.46 Tue Jan 24 10:22:27 1995
-+ + Restructure to build as a library.
-+1.44 -> 1.45 Thu Jan 12 21:33:06 1995
-+ + Fix relative cursor motion to handle folded lines.
-+ + Recompile the search pattern if applicable edit options change.
-+ + Change +/-c command ordering to match historic practice.
-+ + Rework autoindent code to always resolve preceeding <blank>
-+ characters when a ^T or ^D are entered.
-+ + Add the print/noprint edit options, so can now specify if
-+ a character is printable.
-+ + Change ex to run in canonical mode.
-+ + Fix ex text input to support the number edit option.
-+ + Vi text input fix for the R command to correctly restore
-+ characters entered and then backspaced over.
-+ + Several vi increment command fixes.
-+1.43 -> 1.44
-+ + Bug fix, vi was printing the last line number on the status line
-+ at startup. Change to execute commands at first line set, i.e.
-+ "vi -t tag -c cmd" executes cmd at the tag line, not EOF.
-+1.42 -> 1.43 Sat Dec 3 13:11:32 1994
-+ + Marks, SunOS signed comparison fix for 1.42.
-+1.41 -> 1.42 Fri Dec 2 20:08:16 1994
-+ + Make autowrite require the file not be read-only.
-+ + Make the ex insert command work in empty files.
-+ + Tab expansion is no longer limited to values < 20 (which matches
-+ historical practice).
-+ + Simplify (and fix limit detection for) the # command. It's no
-+ longer possible to use the # command itself to repeat or modify
-+ a previous # command, '.' is the only possibility.
-+ + Lots more reworking of the ex addresses, putting ? and / into
-+ the ex addressing code broke the world.
-+ + Make the Put, Preserve and Print commands work (don't ask).
-+ + Split stdout/stderr from shell expansions; stdout is expansion
-+ text, stderr is entered on the message queue.
-+1.40 -> 1.41 Fri Nov 18 16:13:52 1994
-+ + Addition of a port for AUX 3.1
-+ + Addition of a message catalog for Russian.
-+ + Make vi ? and / commands be true ex addresses (historic practice).
-+ + Display the date first in vi -r recovery list.
-+1.39 -> 1.40 Mon Nov 14 10:46:56 1994
-+ + Two bug fixes for 1.39; -r option and v_change core dump.
-+1.38 -> 1.39 Sun Nov 13 18:04:08 1994
-+ + Ex substitution with confirmation now matches historic practice
-+ (except that it still runs in raw mode, not cooked).
-+ + Nvi now clears the screen before painting, if repainting the
-+ entire screen.
-+ + Fix final cursor position for put command entering text in a
-+ single line.
-+ + Change to break error message lines on the last <blank> in the
-+ line.
-+ + Always center the current line when returning to a previously
-+ edited file or moving to a tag line that's not visible on the
-+ screen.
-+ + Change write of the current file using an explicit name or % to
-+ match the semantics of :w<CR>, not :w file<CR>.
-+ + Add command aliases to vi, and remap 6 historic commands to their
-+ historic counterparts: D->d$, Y->y_, S->c_, C->c$, A->$a, I->^i.
-+ + Match option display to historic practice; if boolean or numeric
-+ options changed to default values, not displayed by default.
-+ Nvi treats string options the same way, vi always displayed any
-+ string option that was changed.
-+ + Added lock edit option, if not set, no file locking is done.
-+ + Rework ex to permit any ex command in the EXINIT variable or
-+ exrc startup files. This fixes the bug were `vi +100 file'
-+ painted the screen and then moved to line 100 and repainted.
-+ (Yanked to SCCS ID 9.1.)
-+ + Bug fix: could report file modified more recently than it was
-+ written, incorrectly.
-+ + Search fix: historically, motions with deltas were not corrected
-+ to the previous/next line based on the starting/stopping column.
-+ + Addressing fixes: make trailing non-existent addresses work, change
-+ % to be text substitution, not a unique address (to follow future
-+ POSIX).
-+1.37 -> 1.38 Mon Oct 24 12:51:58 1994
-+ + Scrolling fix; ^B can move to nonexistent lines.
-+ + Fix to vi mapped commands; <escape> characters while already in
-+ command mode did not historically cause the mapped characters to
-+ be flushed.
-+ + Add the backup edit option, automatically version edit files.
-+ + Make it possible to edit files that db can't read, i.e. edit a
-+ temporary file, with the correct file name.
-+ + Only anchor the last line of the file to the bottom line of the
-+ screen if there's half or less of a screen between the target
-+ line and the end of the file.
-+ + Fix wrapmargin text allocation bug.
-+ + Fix ex put command to work in any empty file.
-+ + Fix global command to handle move's to line 0 correctly.
-+ + Regularize the yank cursor motions, several bug fixes for historic
-+ practice.
-+ + Fix N and n, when used as a motion command for the ! command,
-+ repeat the last bang command instead of prompting for a new
-+ one.
-+ + Timeout maps beginning with <escape> quickly, instead of based
-+ on the keytime option.
-+ + Bug fix for wraplen option, wasn't triggered for input commands.
-+1.36 -> 1.37 Sun Oct 9 19:02:53 1994
-+ + Change PORT directories to install patches before distribution.
-+ + Fix ^A to set search direction and pattern for consistency.
-+ + Fold the showdirty option into the showmode option.
-+ + Ex addressing fix: change search offset and line arguments (e.g.
-+ the copy command) to be ex addressing offsets, matching historic
-+ practice.
-+ + Ex addressing fix: support ^ as an offset/flag equivalent to -.
-+ + Ex addressing fix: historically, any missing address defaulted to
-+ dot, e.g. "4,,," was the same as ".,.".
-+ + Ex addressing fix: historically, <blank> separated numbers were
-+ additive, e.g. "3 5p" displayed line 8.
-+ + Ex addressing fix: make ';' as a range delimiter match historic
-+ practice.
-+ + Change nvi to exit immediately if stdout isn't a terminal.
-+ + Change alternate file name behavior to match historic practice,
-+ make the :write command set the current file name.
-+ + Text input fix; input keys from a map, with an associated count,
-+ weren't historically affected by the wrapmargin value.
-+ + Add wraplen option, same as wrapmargin, but from the left-hand
-+ column, not the right.
-+ + Make ex address .<number> be equivalent to .+<number>, i.e. the
-+ '+' is understood; matches historic practice, and it's widely
-+ documented for ed(1).
-+ + Input mode ^V^J historically mapped into a single ^J.
-+ + Minor catalog changes, fixes; don't use 's' to pluralize words.
-+1.35 -> 1.36 Thu Sep 8 08:40:25 1994
-+ + Don't overwrite user's maps with standard (termcap) mappings.
-+ + Make \ escape kill and erase characters in vi text input mode.
-+ + Fix ^D autoindent bug by resolving leading <blank>s at ^D.
-+ + Rework abbreviation tests (again!) to match historic practice.
-+ + Change ^D/^U default scrolling value to be based on window option
-+ value, not screen lines, correct scrolling option value, both to
-+ match historic practice. NOTE: System V does this differently!
-+1.34 -> 1.35 Wed Aug 31 19:20:15 1994
-+ + Add the historic -l option.
-+ + Message catalogs.
-+ + Display global messages at each flush, just in case some are there.
-+ + Fix global substitute code, `\\' wasn't handled correctly.
-+ + Fix abbreviation code to use <blank>s as the preceding character.
-+ + Fix ruler to display logical column, not physical column.
-+ + Block signals when user issues :preserve command, so no race caused
-+ by SIGHUP/SIGTERM.
-+1.33 -> 1.34 Wed Aug 17 14:37:32 1994 (PUBLICLY AVAILABLE VERSION)
-+ + Back out sccsid string fix, it won't work on SunOS 4.1.
-+1.32 -> 1.33 Wed Aug 17 09:31:41 1994 (PUBLICLY AVAILABLE VERSION)
-+ + Get back 5K of data space for the sccsid strings.
-+ + Fix bug where cG fix in version 1.31 broke cw cursor positioning
-+ when the change command extended the line.
-+ + Fix core dump in map/seq code if character larger than 7 bits.
-+ + Block signals when manipulating the SCR chains.
-+ + Fix memory allocation for machines with multiple pointer sizes.
-+1.31 -> 1.32 Mon Aug 15 14:27:49 1994
-+ + Turn off recno mmap call for Solaris 2.4/SunOS 5.4.
-+1.30 -> 1.31 Sun Aug 14 13:13:35 1994
-+ + Fix bug were cG on the last line of a file wasn't done in line mode,
-+ and where the cursor wasn't positioned correctly after exiting text
-+ insert mode.
-+ + Add termcap workaround to make function keys greater than 9 work
-+ correctly (or fail if old-style termcap support).
-+ + Change ex/vi to not flush mapped keys on error -- this is historic
-+ practice, and people depended on it.
-+ + Rework vi parser so that no command including a mapped key ever
-+ becomes the '.' command, matching historic practice.
-+ + Make <escape> cancellation in the vi parser match POSIX 1003.2.
-+ + Fix curses bug where standout string was written for each standout
-+ character, and where standout mode was never exited explicitly.
-+ Fix bugs in curses SF/sf and SR/sr scrolling, as seen on Sun and
-+ x86 consoles.
-+ + The v/global commands execute the print command by default.
-+ + The number option historically applies to ex as well as vi.
-+1.29 -> 1.30 Mon Aug 8 10:30:42 1994
-+ + Make first read into a temporary set the file's name.
-+ + Permit any key to continue scrolling or ex commands -- this
-+ allows stacked colon commands, and matches historic practice.
-+ + Don't output normal ! command commentary in ex silent mode.
-+ + Allow +/- flags after substitute commands, make line (flag)
-+ offsets from vi mode match historic practice.
-+ + Return <eof> to ex immediately, even if preceded by spaces. Rework
-+ ex parser to do erase the prompt instead of depending on the print
-+ routines to do it. Minor fixes to the ex parser for display of
-+ default and scrolling commands. MORE EX PARSER CHANGES.
-+1.28 -> 1.29 Fri Aug 5 10:18:07 1994
-+ + Make the abbreviated ex delete command work (:dele---###lll for
-+ example, is historically legal.
-+ + When autoprint fires, multiple flags may be set, use ex_print
-+ directly instead of the stub routines.
-+ + Change v/global commands to turn off autoprint while running.
-+ + Minor changes to make the ! command display match historic output.
-+ + Rework the ex parser to permit multiple command separators without
-+ commands -- MAJOR CHANGE, likely to introduce all sorts of new bugs.
-+ + Fix cd command to expand argument in the context of each element
-+ of the cdpath option, make relative paths always relative to the
-+ current directory.
-+ + Rework write/quit cases for temporary files, so that user's don't
-+ discard them accidentally.
-+ + Check for window size changes when continuing after a suspend.
-+ + Fix memory problem in svi_screen, used free'd memory.
-+ + Change the ex change, insert, append commands to match historic
-+ cursor positions if no data entered by the user.
-+ + Change ex format flags (#, l, p) to affect future commands, not
-+ just the current one, to match historic practice.
-+ + Make the user's EOF character an additional scroll character in ex.
-+ + Fix ex ^D scrolling to be the value of the scroll option, not half
-+ the screen.
-+ + Fix buffer execution to match historic practice -- bugs where the
-+ '*' command didn't work, and @<carriage-return> didn't work.
-+ + Fix doubled reporting of deleted lines in filters.
-+ + Rework the % ` / ? ( ) N n { and ^A commands to always cut into
-+ numeric buffers regardless of the location or length of the cut.
-+ This matches historic practice.
-+ + Fix the { command to check the current line if the cursor doesn't
-+ start on the first character of the line.
-+ + Do '!' expansion in the ex read command arguments, it's historic
-+ practice. In addition, it sets the last '!' command.
-+1.27 -> 1.28 Wed Jul 27 21:29:18 1994
-+ + Add support for scrolling using the CS and SF/sf/SR/sr termcap
-+ strings to the 4BSD curses.
-+ + Rework of getkey() introduced a bug where command interrupt put
-+ nvi into an infinite loop.
-+ + Piping through a filter historically cut the replaced lines into
-+ the default buffer, although not the numeric ones.
-+ + Read of a filter and !! historically moved to the first nonblank
-+ of the resulting cursor line (most of the time).
-+ + Rework cursor motion flags, to support '!' as a motion command.
-+1.26 -> 1.27 Tue Jul 26 10:27:58 1994
-+ + Add the meta option, to specify characters the shell will expand.
-+ + Fix the read command to match historic practice, the white space
-+ and bang characters weren't getting parsed correctly.
-+ + Change SIGALRM handler to save and restore errno.
-+ + Change SunOS include/compat.h to include <vfork.h> so that the
-+ ex/filter.c code works again.
-+ + Don't put lines deleted by the ex delete command into the numeric
-+ buffers, matching historic practice.
-+ + Fix; if appending to a buffer, default buffer historically only
-+ references the appended text, not the resulting text.
-+ + Support multiple, semi-colon separated search strings, and 'z'
-+ commands after search strings.
-+ + Make previous context mark setting match historic practice (see
-+ docs/internals/context).
-+ + Fix the set command to permit whitespace between the option and
-+ the question mark, fix question marks in general.
-+ + Fix bug where ex error messages could be accidentally preceded
-+ by a single space.
-+ + Fix bug where curses reorganization could lose screen specific
-+ mappings as soon as any screen exited.
-+ + Fix bug in paragraph code where invalid macros could be matched.
-+ Make paragraph motions stop at formfeed (^L) characters.
-+ + Change 'c' to match historic practice, it cut text into numeric
-+ buffers.
-+1.25 -> 1.26 Tue Jul 19 17:46:24 1994
-+ + Ignore SIGWINCH if the screen size is unchanged; SunOS systems
-+ deliver one when a screen is uncovered.
-+ + Fix: don't permit a command with a motion component to wrap due
-+ to wrapscan and return to the original cursor position.
-+ + Fix: ^E wasn't beeping when reaching the bottom of the file.
-+ + Fix bg/fg bug where tmp file exiting caused a NULL dereference.
-+ + Rework file locking code to use fcntl(2) explicitly.
-+ + Fix bug in section code where invalid macros could be matched.
-+ + Fix bug where line number reset by vi's Q command.
-+ + Add explicit character mode designation to character mode buffers.
-+ + Add <sys/ioctl.h> include to sex/sex_window.c, needed by NET/2
-+ vintage systems.
-+ + Change to always flush a character during suspend, 4BSD curses
-+ has the optimization where it doesn't flush after a standend().
-+ + Fix bug on OSF1 where <curses.h> changes the values of VERASE,
-+ VKILL and VWERASE to incorrect ones.
-+ + Fix bug where optarg used incorrectly in main.c.
-+ + Block all signals when acting on a signal delivery.
-+ + Fix recovery bug where RCV_EMAIL could fire even if there wasn't
-+ a backing file; format recovery message.
-+1.24 -> 1.25 Sun Jul 17 14:33:38 1994
-+ + Stop allowing keyboard suspends (^Z) in insert mode, it's hard
-+ to get autowrite correct, and it's not historic practice.
-+ + Fix z^, z+ to match historic practice.
-+ + Bug in message handling, "vi +35 non-existent_file" lost the
-+ status message because the "+35" pushed onto the stack erased
-+ it. For now, change so that messages aren't displayed if there
-+ are keys waiting -- may need to add a "don't-erase" bit to the
-+ character in the stack instead.
-+ + Bug in svi_msgflush(), where error messages could come out in
-+ normal video.
-+1.23 -> 1.24 Sat Jul 16 18:30:18 1994
-+ + Fix core dump in exf.c, where editing a non-existent file and
-+ exiting could cause already free'd memory to be free'd.
-+ + Clean up numerous memory errors, courtesy of Purify.
-+ + Change process wait code to fail if wait fails, and not attempt
-+ to interpret the wait return information.
-+ + Open recovery and DB files for writing as well as reading, System
-+ V (fcntl) won't let you acquire LOCK_EX locks otherwise.
-+ + Fix substitute bug where could malloc 0 bytes (AIX breaks).
-+ + Permit the mapping of <carriage-return>, it's historic practice.
-+ + Historic vi didn't eat <blank> characters before the force
-+ flag, match historic practice.
-+ + Bug in ex argument parsing, corrected for literal characters
-+ twice.
-+ + Delete screen specific maps when the screen closes.
-+ + Move to the first non-<blank> in the line on startup; historic
-+ practice.
-+ + Change the ex visual command to move directly to a line if no
-+ trailing 'z' command.
-+ + Fix "[[" and "]]" to match historic practice (yet again...).
-+ + Fix "yb" and "y{" commands to update the cursor correctly.
-+ + Change "~<motion>" to match the yank cursor movement semantics
-+ exactly.
-+ + Move all of the curses related code into sex/svi -- major rework,
-+ but should help in future ports.
-+ + Fix bug in split code caused by new file naming code, where would
-+ drop core when a split screen exited.
-+ + Change svi_ex_write to do character display translation, so that
-+ messages with file names in them are displayed correctly.
-+ + Display the file name on split screens instead of a divider line.
-+ + Fix move bug, wasn't copying lines before putting them.
-+ + Fix bug were :n dropped core if no arguments supplied.
-+ + Don't quote characters in executed buffer: "ifoo<esc>" should leave
-+ insert mode after the buffer is executed.
-+ + Tagpop and tagpush should set the absolute mark in case only moving
-+ within a file.
-+ + Skip leading whitespace characters before tags and cursor word
-+ searches.
-+ + Fix bug in ex_global where re_conv() was allocating the temporary
-+ buffer and not freeing it.
-+1.22 -> 1.23: Wed Jun 29 19:22:33 1994
-+ + New <sys/cdefs.h> required "inline" to change to "__inline"
-+ + Fix System V curses code for new ^Z support.
-+ + Fix off-by-one in the move code, avoid ":1,$mo$" with only one
-+ line in the buffer.
-+ + Line orientation of motion commands was remembered too long,
-+ i.e. '.' command could be incorrectly marked as line oriented.
-+ + Move file modification time into EXF, so it's shared across
-+ split screens.
-+ + Put the prev[ious] command back in, people complained.
-+ + Random fixes to next/prev semantics changed in 1.22.
-+ + Historically vi doesn't only move to the last address if there's
-+ ANYTHING after the addresses, e.g. ":3" moves to line 3, ":3|"
-+ prints line 3.
-+1.21 -> 1.22: Mon Jun 27 11:01:41 1994
-+ + Make the line between split screens inverse video again.
-+ + Delete the prev[ious] command, it's not useful enough to keep.
-+ + Rework :args/file name handling from scratch -- MAJOR CHANGE,
-+ likely to introduce all sorts of new bugs.
-+ + Fix RE bug where no subexpressions in the pattern but there were
-+ subexpressions referenced in the replacement, e.g. "s/XXX/\1/g".
-+ + Change recovery to not leave unmodified files around after a
-+ crash, by using the owner 'x' bit on unmodified backup files.
-+ MAJOR CHANGE, the system recovery script has to change!
-+ + Change -r option to delete recovery.* files that reference non-
-+ existent vi.* files.
-+ + Rework recovery locking so that fcntl(2) locking will work.
-+ + Fix append (upper-case) buffers, broken by cut fixes.
-+ + Fix | to not set the absolute motion mark.
-+ + Read $HOME/.exrc file on startup if the effective user ID is
-+ root. This makes running vi while su(1)'d work correctly.
-+ + Use the full pathname of the file as the recovery name, not
-+ just the last component. Matches historic practice.
-+ + Keep marks in empty files from being destroyed.
-+ + Block all caught signals before calling the DB routines.
-+ + Make the line change report match historic practice (yanked
-+ lines were different than everything else).
-+ + Add section on multiple screens to the reference manual.
-+ + Display all messages at once, combine onto a single line if
-+ possible. Delete the trailing period from all messages.
-+1.20 -> 1.21: Thu May 19 12:21:58 1994
-+ + Delete the -l flag from the recover mail.
-+ + Send the user email if ex command :preserve executed, this matches
-+ historic practice. Lots of changes to the preserve and recovery
-+ code, change preserve to snapshot files (again, historic practice).
-+ + Make buffers match historic practice: "add logically stores text
-+ into buffer a, buffer 1, and the unnamed buffer.
-+ + Print <tab> characters as ^I on the colon command line if the
-+ list option set.
-+ + Adjust ^F and ^B scroll values in the presence of split screens
-+ and small windows.
-+ + Break msg* routines out from util.c into msg.c, start thinking
-+ about message catalogs.
-+ + Add tildeop set option, based on stevie's option of the same name.
-+ Changes the ~ command into "[count] ~ motion", i.e. ~ takes a
-+ trailing motion.
-+ + Chose NOT to match historic practice on cursor positioning after
-+ consecutive undo commands on a single line; see vi/v_undo.c for
-+ the comment.
-+ + Add a one line cache so that multiple changes to the same line
-+ are only counted once (e.g. "dl35p" changes one line, not 35).
-+ + Rework signals some more. Block file sync signals in vi routines
-+ that interface to DB, so can sync the files at interrupt time.
-+ Write up all of the signal handling arguments, see signal.c.
-+1.19 -> 1.20: Thu May 5 19:24:57 1994
-+ + Return ^Z to synchronous handling. See the dicussion in signal.c
-+ and svi_screen.c:svi_curses_init().
-+ + Fix bug where line change report was wrong in util.c:msg_rpt().
-+1.18 -> 1.19: Thu May 5 12:59:51 1994
-+ + Block DSUSP so that ^Y isn't delivered at SIGTSTP.
-+ + Fix bug -- put into an empty file leaves the cursor at 1,0,
-+ not the first nonblank.
-+ + Fix bug were number of lines reported for the 'P' command was
-+ off-by-one.
-+ + Fix bug were 0^D wasn't being handled correctly.
-+ + Delete remnants of ^Z as a raw character.
-+ + Fix bug where if a map was an entire colon command, it may never
-+ have been displayed.
-+ + Final cursor position fixes for the vi T and t commands.
-+ + The ex :next command took an optional ex command as it's first
-+ argument similar to the :edit commands. Match historic practice.
-+1.17 -> 1.18: Wed May 4 13:57:10 1994
-+ + Rework curses information in the PORT/Makefile's.
-+ + Minor fixes to ^Z asynchronous code.
-+1.16 -> 1.17: Wed May 4 11:15:56 1994
-+ + Make ex comment handling match historic practice.
-+ + Make ^Z work asynchronously, we can no longer use the SIGTSTP
-+ handler in the curses library.
-+1.15 -> 1.16: Mon May 2 19:42:07 1994
-+ + Make the 'p' and 'P' commands support counts, i.e. "Y10p" works.
-+ + Make characters that map to themselves as the first part of the
-+ mapping work, it's historic practice.
-+ + Fix bug where "s/./\& /" discarded the space in the replacement
-+ string.
-+ + Add support for up/down cursor arrows in text input mode, rework
-+ left/right support to match industry practice.
-+ + Fix bug were enough character remapping could corrupt memory.
-+ + Delete O_REMAPMAX in favor of setting interrupts after N mapped
-+ characters without a read, delete the map counter per character.
-+ MAJOR CHANGE. All of the interrupt signal handling has been
-+ reworked so that interrupts are always turned on instead of
-+ being turned on periodically, when an interruptible operation is
-+ pending.
-+ + Fix bug where vi wait() was interrupted by the recovery alarm.
-+ + Make +cmd's and initial commands execute with the current line
-+ set to the last line of the file. This is historic practice.
-+ + Change "lock failed" error message to a file status message.
-+ It always fails over NFS, and making all NFS files readonly
-+ isn't going to fly.
-+ + Use the historic line number format, but check for overflow.
-+ + Fix bug where vi command parser ignored buffers specified as
-+ part of the motion command.
-+ + Make [@*]buffer commands on character mode buffers match historic
-+ practice.
-+ + Fix bug where the cmap/chf entries of the tty structure weren't
-+ being cleared when new characters were read.
-+ + Fix bug where the default command motion flags were being set
-+ when the command was a motion component.
-+ + Fix wrapmargin bug; if appending characters, and wrapmargin breaks
-+ the line, an additional space is eaten.
-+1.14 -> 1.15: Fri Apr 29 07:44:57 1994
-+ + Make the ex delete command work in any empty file.
-+ + Fix bug where 't' command placed the cursor on the character
-+ instead of to its left.
-+ + ^D and ^U didn't set the scroll option value historically.
-+ Note, this change means that any user set value (e.g. 15^D)
-+ will be lost when splitting the screen, since the split code
-+ now resets the scroll value regardless.
-+ + Fix the ( command to set the absolute movement mark.
-+ + Only use TIOCGWINSZ for window information if SIGWINCH signal
-+ caught.
-+ + Delete the -l flag, and make -r work for multiple arguments.
-+ Add the ex "recover[!] file" command.
-+ + Switch into ex terminal mode and use the sex routines when
-+ append/change/insert called from vi mode.
-+ + Make ^F and ^B match historic practice. This required a fairly
-+ extensive rework of the svi scrolling code.
-+ + Cursor positioning in H, M, L, G (first non-blank for 1G) wasn't
-+ being done correctly. Delete the SETLFNB flag. H, M, and L stay
-+ logical movements (SETNNB) and G always moves to the first nonblank.
-+ + System V uses "lines" and "cols", not "li" and "co", change as
-+ necessary. Check termcap function returns for errors.
-+ + Fix `<character> command to do start/end of line correction,
-+ and to set line mode if starting and stopping at column 0.
-+ + Fix bug in delete code where dropped core if deleted in character
-+ mode to an empty line. (Rework the delete code for efficiency.)
-+ + Give up on SunOS 4.1.X, and use "cc" instead of /usr/5bin/cc.
-+ + Protect ex_getline routine from interrupted system calls (if
-+ possible, set SA_RESTART on SIGALRM, too).
-+ + Fix leftright scrolling bug, when moving to a shorter line.
-+ + Do validity checking on the copy, move, t command target line
-+ numbers.
-+ + Change for System V % pattern broke trailing flags for empty
-+ replacement strings.
-+ + Fix bug when RCM flags retained in the saved dot structure.
-+ + Make the ex '=' command work for empty files.
-+ + Fix bug where special_key array was being free'd (it's no longer
-+ allocated).
-+ + Matches cut in line mode only if the starting cursor is at or
-+ before the first nonblank in its line, and the ending cursor is
-+ at or after the last nonblank in its line.
-+ + Add the :wn command, so you can write a file and switch to a new
-+ file in one command.
-+ + Allow only a single key as an argument to :viusage.
-+ + New movement code broke filter/paragraph operations in empty
-+ files ("!}date" in an empty file was dropping core).
-+1.12 -> 1.14: Mon Apr 18 11:05:10 1994 (PUBLICLY AVAILABLE VERSION, 4.4BSD)
-+ + Fix FILE structure leakage in the ex filter code.
-+ + Rework suspend code for System V curses. Nvi has to do the
-+ the work, there's no way to get curses to do it right.
-+ + Revert SunOS 4.1.X ports to the distributed curses. There's
-+ a bug in Sun's implementation that we can't live with.
-+ + Quit immediately if row/column values are unreasonable.
-+ + Fix the function keys to match vi historic behavior.
-+ + Replace the echo/awk magic in the Makefile's with awk scripts.
-+1.11 -> 1.12: Thu Apr 14 11:10:19 1994
-+ + Fix bug where only the first vi key was checked for validity.
-+ + Make 'R' continue to overwrite after a <carriage-return>.
-+ + Only display the "no recovery" message once.
-+ + Rework line backup code to restore the line to its previous
-+ condition.
-+ + Don't permit :q in a .exrc file or EXINIT variable.
-+ + Fix wrapscan option bug where forward searches become backward
-+ searches and do cursor correction accordingly.
-+ + Change "dd" to move the cursor to the first non-blank on the line.
-+ + Delete cursor attraction to the first non-blank, change non-blank
-+ motions to set the most attractive cursor position instead.
-+ + Fix 'r' substitute option to set the RE to the last RE, not the
-+ last substitute RE.
-+ + Fix 'c' and 'g' substitute options to always toggle, and fix
-+ edcompatible option to not reset them.
-+ + Display ex error messages in inverse video.
-+ + Fix errorbells option to match historic practice.
-+ + Delete fixed character display table in favor of table built based
-+ on the current locale.
-+ + Add ":set octal" option, that displays unknown characters as octal
-+ values instead of the default hexadecimal.
-+ + Make all command and text input modes interruptible.
-+ + Fix ex input mode to display error messages immediately, instead
-+ of waiting for the lines to be resolved.
-+ + Fix bug where vi calling append could overwrite the command.
-+ + Fix off-by-one in the ex print routine tab code.
-+ + Fix incorrect ^D test in vi text input routines.
-+ + Add autoindent support for ex text insert routines.
-+ + Add System V substitute command replacement pattern semantics,
-+ where '%' means the last replacement pattern.
-+ + Fix bug that \ didn't escape newlines in ex commands.
-+ + Regularize the names of special characters to CH_*.
-+ + Change hex insert character from ^Vx<hex_char> to ^X<hex_char>
-+ + Integrate System V style curses, so SunOS and Solaris ports can
-+ use the native curses implementation.
-+1.10 -> 1.11: Thu Mar 24 16:07:45 EST 1994 (PUBLICLY AVAILABLE VERSION)
-+ + Change H, M, and L to set the absolute mark, historical practice.
-+ + Fix bug in stepping through multiple tags files.
-+ + Add "remapmax" option that turns off map counts so you can remap
-+ infinitely. If it's off, term_key() can be interrupted from the
-+ keyboard, which will cause the buffers to flush. I also dropped
-+ the default max number of remaps to 50. (Only Dave Hitz's TM
-+ macros and maze appear to go over that limit.)
-+ + Change :mkexrc to not dump w{300,1200,9600}, lisp options.
-+ + Fix backward search within a line bug.
-+ + Change all the includes of "pathnames.h" to use <>'s so that the
-+ PORT versions can use -I. to replace it with their own versions.
-+ + Make reads and writes interruptible. Rework code that enters and
-+ leaves ex for '!' and filter commands, rework all interrupt and
-+ timer code.
-+ + Fix core dump when user displayed option in .exrc file.
-+ + Fix bug where writing empty files didn't update the saved
-+ modification time.
-+ + Fix bug where /pattern/ addressing was always a backward search.
-+ + Fix bug triggered by autoindent of more than 32 characters, where
-+ nvi wasn't checking the right TEXT length.
-+ + Fix bug where joining only empty lines caused a core dump.
-+1.09 -> 1.10: Sat Mar 19 15:40:29 EST 1994
-+ + Fix "set all" core dump.
-+1.08 -> 1.09: Sat Mar 19 10:11:14 EST 1994
-+ + If the tag's file path is relative, and it doesn't exist, check
-+ relative to the tag file location.
-+ + Fix ~ command to free temporary buffer on error return.
-+ + Create vi.ref, a first cut at a reference document for vi.
-+ The manual page and the reference document only document the
-+ set options, so far.
-+ + Fix 1G bug not always going to the first non-blank.
-+ + Upgrade PORT/regex to release alpha3.4, from Henry Spencer.
-+ + Add MKS vi's "cdpath" option, supporting a cd search path.
-+ + Handle if search as a motion was discarded, i.e. "d/<erase>".
-+ + Change nvi to not create multiple recovery files if modifying
-+ a recovered file.
-+ + Decide to ignore that the cursor is before the '$' when inserting
-+ in list mode. It's too hard to fix.
-+1.07 -> 1.08: Wed Mar 16 07:37:36 EST 1994
-+ + Leftright and big line scrolling fixes. This meant more changes
-+ to the screen display code, so there may be new problems.
-+ + Don't permit search-style addresses until a file has been read.
-+ + "c[Ww]" command incorrectly handled the "in whitespace" case.
-+ + Fix key space allocation bug triggered by cut/paste under SunOS.
-+ + Ex move command got the final cursor position wrong.
-+ + Delete "optimize option not implemented" message.
-+ + Make the literal-next character turn off mapping for the next
-+ character in text input mode.
-+1.06 -> 1.07: Mon Mar 14 11:10:33 EST 1994
-+ + The "wire down" change in 1.05 broke ex command parsing, there
-+ wasn't a corresponding change to handle multiple K_VLNEXT chars.
-+ + Fix final position for vi's 't' command.
-+1.05 -> 1.06: Sun Mar 13 16:12:52 EST 1994
-+ + Wire down ^D, ^H, ^W, and ^V, regardless of the user's termios
-+ values.
-+ + Add ^D as the ex scroll command.
-+ + Support ^Q as a literal-next character.
-+ + Rework abbreviations to be delimited by any !inword() character.
-+ + Add options description to the manual page.
-+ + Minor screen cache fix for svi_get.c.
-+ + Rework beautify option support to match historical practice.
-+ + Exit immediately if not reading from a tty and a command fails.
-+ + Default the SunOS 4.* ports to the distributed curses, not SMI's.
-+1.04 -> 1.05: Thu Mar 24 16:07:45 EST 1994
-+ + Make cursor keys work in input mode.
-+ + Rework screen column code in vi curses screen. MAJOR CHANGE --
-+ after this, we'll be debugging curses screen presentation from
-+ scratch.
-+ + Explode include files in vi.h into the source files.
-+1.03 -> 1.04: Sun Mar 6 14:14:16 EST 1994
-+ + Make the ex move command keep the marks on the moved lines.
-+ + Change resize semantics so you can set the screen size to a
-+ specific value. A couple of screen fixes for the resize code.
-+ + Fixes for foreground/background due to SIGWINCH.
-+ + Complete rework of all of vi's cursor movements. The underlying
-+ assumption in the old code was that the starting cursor position
-+ was part of the range of lines cut or deleted. The command
-+ "d[[" is an example where this isn't true. Change it so that all
-+ motion component commands set the final cursor position separately
-+ from the range, as it can't be done correctly later. This is a
-+ MAJOR CHANGE -- after this change, we'll be debugging the cursor
-+ positioning from scratch.
-+ + Rewrite the B, b, E, e commands to use vi's getc() interface
-+ instead of rolling their own.
-+ + Add a second MARK structure, LMARK, which is the larger mark
-+ needed by the logging and mark queue code. Everything else uses
-+ the reworked MARK structure, which is simply a line/column pair.
-+ + Rework cut/delete to not expect 1-past-the-end in the range, but
-+ to act on text to the end of the range, inclusive.
-+ + Sync on write's, to force NFS to flush.
-+1.01 -> 1.03: Sun Jan 23 17:50:35 EST 1994 (PUBLICLY AVAILABLE VERSION)
-+ + Tag stack fixes, was returning to the tag, not the position from
-+ which the user tagged.
-+ + Only use from the cursor to the end of the word in cursor word
-+ searches and tags. (Matches historical vi behavior.)
-+ + Fix delete-last-line bug when line number option set.
-+ + Fix usage line for :split command.
-+ + If O_NUMBER set, long input lines would eventually fail, the column
-+ count for the second screen of long lines wasn't set correctly.
-+ + Fix for [[ reaching SOF with a column longer than the first line.
-+ + Fix for multiple error messages if no screen displayed.
-+ + Fix :read to set alternate file name as in historical practice.
-+ + Fix cut to rotate the numeric buffers if line mode flag set.
-+1.00 -> 1.01: Wed Jan 12 13:37:18 EST 1994
-+ + Don't put cut items into numeric buffers if cutting less than
-+ parts of two lines.
-+0.94 -> 1.00: Mon Jan 10 02:27:27 EST 1994
-+ + Read-ahead not there; BSD tty driver problem, SunOS curses
-+ problem.
-+ + Global command could error if it deleted the last line of
-+ the file.
-+ + Change '.' to only apply to the 'u' if entered immediately
-+ after the 'u' command. "1pu.u.u. is still broken, but I
-+ expect that it's going to be sacrificed for multiple undo.
-+ + If backward motion on a command, now move to the point; get
-+ yank cursor positioning correct.
-+ + Rework cut buffers to match historic practice -- yank/delete
-+ numeric buffers redone sensibly, ignoring historic practice.
-+0.92 -> 0.93: Mon Dec 20 19:52:14 EST 1993
-+ + Christos Zoulas reimplemented the script windows using pty's,
-+ which means that they now work reasonably. The down side of
-+ this is that almost all ports other than 4.4BSD need to include
-+ two new files, login_tty.c and pty.c from the PORT/clib directory.
-+ I've added them to the Makefiles.
-+ + All calloc/malloc/realloc functions now cast their pointers, for
-+ SunOS -- there should be far fewer warning messages, during the
-+ build. The remaining messages are where CHAR_T's meet char *'s,
-+ i.e. where 8-bit clean meets strcmp.
-+ + The user's argument list handling has been reworked so that there
-+ is always a single consistent position for use by :next, :prev and
-+ :rewind.
-+ + All of the historical options are now at least accepted, although
-+ not all of them are implemented. (Edcompatible, hardtabs, lisp,
-+ optimize, redraw, and slowopen aren't implemented.)
-+ + The RE's have been reworked so that matches of length 0 are handled
-+ in the same way as vi used to handle them.
-+ + Several more mapping fixes and ex parser addressing fixes.
-diff -Naur nvi-1.81.6.orig/nvi-1.79/docs/tutorial/vi.advanced nvi-1.81.6/nvi-1.79/docs/tutorial/vi.advanced
---- nvi-1.81.6.orig/nvi-1.79/docs/tutorial/vi.advanced 1970-01-01 01:00:00.000000000 +0100
-+++ nvi-1.81.6/nvi-1.79/docs/tutorial/vi.advanced 2008-06-22 20:35:35.000000000 +0200
-@@ -0,0 +1,1458 @@
-+Section 26: Index to the rest of the tutorial
-+
-+The remainder of the tutorial can be perused at your leisure. Simply find the
-+topic of interest in the following list, and {/Section xx:/^M} to get to the
-+appropriate section. (Remember that ^M means the return key)
-+
-+The material in the following sections is not necessarily in a bottom up
-+order. It should be fairly obvious that if a section mentions something with
-+which you are not familiar, say, buffers, you might {/buffer/^M} followed by
-+several {n} to do a keyword search of the file for more details on that item.
-+Another point to remember is that commands are surrounded by curly-braces and
-+can therefore be found rather easily. To see where, say, the X command is
-+used try {/{X}/^M}. Subsequent {n} will show you other places the command was
-+used. We have tried to maintain the convention of placing the command letter
-+surrounded by curly-braces on the section line where that command is
-+mentioned.
-+
-+Finally, you should have enough 'savvy' at this point to be able to do your
-+own experimentation with commands without too much hand-holding on the part of
-+the tutorial. Experimentation is the best way to learn the effects of the
-+commands.
-+
-+ Section Topic - description
-+ ------- -------------------
-+(Sections 1 through 25 are located in the file vi.beginner.)
-+ 1 introduction: {^F} {ZZ}
-+ 2 introduction (con't) and positioning: {^F} {^B}
-+ 3 introduction (con't) and positioning: {^F} {^B}
-+ 4 positioning: {^F} {^B} ^M (return key)
-+ 5 quitting: {:q!} ^M key
-+ 6 marking, cursor and screen positioning: {m} {G} {'} {z}
-+ 7 marking, cursor and screen positioning: {m} {G} {'} {z}
-+ 8 marking, cursor and screen positioning: {z} {m} {'}
-+ 9 marking and positioning: {m} {''}
-+ 10 line positioning: {^M} {-}
-+ 11 scrolling with {^M}
-+ 12 scrolling with {-} and screen adjustment {z}
-+ 13 notes on use of tutorial
-+ 14 other scrolling and postioning commands: {^E} {^Y} {^D} {^U}
-+ 15 searching: {/ .. /^M}
-+ 16 searching: {? .. ?^M} {n} (in search strings ^ $)
-+ 17 searching: \ and magic-characters in search strings
-+ 18 colon commands, exiting: {:} {ZZ}
-+ 19 screen positioning: {H} {M} {L}
-+ 20 character positioning: {w} {b} {0} {W} {B} {e} {E} {'} {`}
-+ 21 cursor positioning: {l} {k} {j} {h}
-+ 22 adding text: {i} {a} {I} {A} {o} {O} ^[ (escape key)
-+ 23 character manipulation: {f} {x} {X} {w} {l} {r} {R} {s} {S} {J}
-+ 24 undo: {u} {U}
-+ 25 review
-+(The following sections are in this file.)
-+ 26 Index to the rest of the tutorial ******** YOU ARE HERE *******
-+ 27 discussion of repeat counts and the repeat command: {.}
-+ 28 more on low-level character motions: {t} {T} {|}
-+ 29 advanced correction operators: {d} {c}
-+ 30 updating the screen: {^R}
-+ 31 text buffers: {"}
-+ 32 rearranging and duplicating text: {p} {P} {y} {Y}
-+ 33 recovering lost lines
-+ 34 advanced file manipulation with vi
-+ 34.1 more than one file at a time: {:n}
-+ 34.2 reading files and command output: {:r}
-+ 34.3 invoking vi from within vi: {:e} {:vi}
-+ 34.4 escaping to a shell: {:sh} {:!}
-+ 34.5 writing parts of a file: {:w}
-+ 34.6 filtering portions of text: {!}
-+ 35 advanced searching: magic patterns
-+ 36 advanced substitution: {:s}
-+ 37 advanced line addressing: {:p} {:g} {:v}
-+ 38 higher level text objects and nroff: ( ) { } [[ ]]
-+ 39 more about inserting text
-+ 40 more on operators: {d} {c} {<} {>} {!} {=} {y}
-+ 41 abbreviations: {:ab}
-+ 42 vi's relationship with the ex editor: {:}
-+ 43 vi on hardcopy terminals and dumb terminals: open mode
-+ 44 options: {:set} {setenv EXINIT}
-+ 44.1 autoindent
-+ 44.2 autoprint
-+ 44.3 autowrite
-+ 44.4 beautify
-+ 44.5 directory
-+ 44.6 edcompatible
-+ 44.7 errorbells
-+ 44.8 hardtabs
-+ 44.9 ignorecase
-+ 44.10 lisp
-+ 44.11 list
-+ 44.12 magic
-+ 44.13 mesg
-+ 44.14 number
-+ 44.15 open
-+ 44.16 optimize
-+ 44.17 paragraphs
-+ 44.18 prompt
-+ 44.19 readonly
-+ 44.20 redraw
-+ 44.21 remap
-+ 44.22 report
-+ 44.23 scroll
-+ 44.24 sections
-+ 44.25 shell
-+ 44.26 shiftwidth
-+ 44.27 showmatch
-+ 44.28 slowopen
-+ 44.29 tabstop
-+ 44.30 tags
-+ 44.31 taglength
-+ 44.32 term
-+ 44.33 terse
-+ 44.34 timeout
-+ 44.35 ttytype
-+ 44.36 warn
-+ 44.37 window
-+ 44.38 wrapscan
-+ 44.39 wrapmargin
-+ 44.40 writeany
-+ 44.41 w300, w1200, w9600
-+
-+Section 27: repetition counts and the repeat command {.}
-+
-+Most vi commands will use a preceding count to affect their behavior in some
-+way. We have already seen how {3x} deletes three characters, and {22G} moves
-+us to line 22 of the file. For almost all of the commands, one can survive by
-+thinking of these leading numbers as a 'repeat count' specifying that the
-+command is to be repeated so many number of times.
-+
-+Other commands use the repeat count slightly differently, like the {G} command
-+which use it as a line number.
-+
-+For example:
-+
-+{3^D} means scroll down in the file three lines. Subsequent {^D} OR {^U} will
-+scroll only three lines in their respective directions!
-+
-+{3z^M} says put line three of the file at the top of the screen, while {3z.}
-+says put line three as close to the middle of the screen as possible.
-+
-+{50|} moves the cursor to column fifty in the current line.
-+
-+{3^F} says move forward 3 screenfulls. This is a repetition count. The
-+documents advertise that {3^B} should move BACK three screenfulls, but I
-+can't get it to work.
-+
-+Position the cursor on some text and try {3r.}. This replaces three characters
-+with '...'. However, {3s.....^[} is the same as {3xi.....^[}.
-+
-+Try {10a+----^[}.
-+
-+A very useful instance of a repetition count is one given to the '.' command,
-+which repeats the last 'change' command. If you {dw} and then {3.}, you will
-+delete first one and then three words. You can then delete two more words with
-+{2.}. If you {3dw}, you will delete three words. A subsequent {.} will delete
-+three more words. But a subsequent {2.} will delete only two words, not three
-+times two words.
-+
-+Caveat: The author has noticed that any repetition count with {^B} will NOT
-+work: indeed, if you are at the end of your file and try {3^B} sufficiently
-+often, the editor will hang you in an infinite loop. Please don't try it:
-+take my word for it.
-+
-+Section 28: {t} {T} {|}
-+
-+Position the cursor on line 13 below:
-+
-+Line 13: Four score and seven years ago, our forefathers brought ...
-+
-+Note that {fv} moves the cursor on/over the 'v' in 'seven'. Do a {0} to return
-+to the beginning of the line and try a {tv}. The cursor is now on/over the
-+first 'e' in 'seven'. The {f} command finds the next occurrence of the
-+specified letter and moves the cursor to it. The {t} command finds the
-+specified letter and moves the cursor to the character immediately preceding
-+it. {T} searches backwards, as does {F}.
-+
-+Now try {60|}: the cursor is now on the 'o' in 'brought', which is the
-+sixtieth character on the line.
-+
-+Section 29: {d} {c}
-+
-+Due to their complexity we have delayed discussion of two of the most powerful
-+operators in vi until now. Effective use of these operators requires more
-+explanation than was deemed appropriate for the first half of the tutorial.
-+
-+{d} and {c} are called operators instead of commands because they consist of
-+three parts: a count specification or a buffer specification (see section
-+#BUFFERS), the {d} or {c}, and the object or range description. We will not
-+discuss buffers at this stage, but will limit ourselves to count
-+specifications. Examples speak louder than words: position the cursor at the
-+beginning of line 14:
-+
-+Line 14: Euclid alone has looked on beauty bear.
-+
-+Obviously, there is something wrong with this quotation. Type {2fb} to
-+position the cursor on the 'b' of 'bear'. Now, type {cwbare^[}
-+and observe the results. The {cw} specifies that the change command {c} is to
-+operate on a word object. More accurately, it specifies that the range of the
-+change command includes the next word.
-+
-+Position the cursor on the period in Line 14. (one way is to use {f.})
-+Now, type {cbbeast^[}. This specifies the range of the change command to be the
-+previous word (the 'b' reminiscent of the {b} command). If we had wished to
-+delete the word rather than change it, we would have used the {d} operator,
-+rather than the {c} operator.
-+
-+Position the cursor at the beginning of the line with {0}. Type
-+{d/look/^M}. The search string specified the range of the delete.
-+Everything UP TO the word 'looking' was deleted from the line.
-+
-+In general, almost any command that would move the cursor will specify a range
-+for these commands. The most confusing exception to this rule is when {dd} or
-+{cc} is entered: they refer to the whole line. Following is a summary of the
-+suffixes (suffices? suffici?) and the ranges they specify:
-+
-+ suffix will delete{d}/change{c}
-+ ------ ------------------------
-+ ^[ cancels the command
-+ w the word to the right of the cursor
-+ W ditto, but ignoring punctuation
-+ b the word to the left of the cursor
-+ B ditto, but ignoring punctuation
-+ e see below.
-+ E ditto
-+ (space) a character
-+ $ to the end of the line
-+ ^ to the beginning of the line
-+ / .. / up to, but not including, the string
-+ ? .. ? back to and including the string
-+ fc up to and including the occurrence of c
-+ Fc back to and including the occurrence of c
-+ tc up to but not including the occurrence of c
-+ Tc back to but not including the occurrence of c
-+ ^M TWO lines (that's right: two)
-+ (number)^M that many lines plus one
-+ (number)G up to and including line (number)
-+ ( the previous sentence if you are at the beginning of
-+ the current sentence, or the current sentence up to where
-+ you are if you are not at the beginning of the current
-+ sentence. Here, 'sentence' refers to the intuitive
-+ notion of an English sentence, ending with '!', '?',
-+ or '.' and followed by an end of line or two spaces.
-+ ) the rest of the current sentence
-+ { analogous to '(', but in reference to paragraphs:
-+ sections of text surrounded by blank lines
-+ } analogous to ')', but in reference to paragraphs
-+ [[ analogous to '(', but in reference to sections
-+ ]] analogous to ')', but in reference to sections
-+ H the first line on the screen
-+ M the middle line on the screen
-+ L the last line on the screen
-+ 3L through the third line from the bottom of the screen
-+ ^F forward a screenful
-+ ^B backward a screenful
-+ :
-+ : etc. etc. etc.
-+
-+This list is not exhaustive, but it should be sufficient to get the idea
-+across: after the {c} or {d} operator, you can specify a range with another
-+move-the-cursor command, and that is the region of text over which the command
-+will be effective.
-+
-+Section 30: updating the screen {^R}
-+
-+Vi tries to be very intelligent about the type of terminal you are working on
-+and tries to use the in-terminal computing power (if any) of your terminal.
-+Also if the terminal is running at a low baud rate (say 1200 or below), vi sets
-+various parameters to make things easier for you. For example, if you were
-+running on a 300 baud terminal (that's 30 characters per second transmission
-+rate) not all 24 lines of the screen would be used by vi. In addition, there
-+is a large portion of the editor keeping track of what your screen currently
-+looks like, and what it would look like after a command has been executed. Vi
-+then compares the two, and updates only those portions of the screen that have
-+changed.
-+
-+Furthermore, some of you may have noticed (it depends on your terminal) that
-+deleting lines or changing large portions of text may leave some lines on the
-+screen looking like:
-+@
-+meaning that this line of the screen does not correspond to any line in your
-+file. It would cost more to update the line than to leave it blank for the
-+moment. If you would like to see your screen fully up-to-date with the
-+contents of your file, type {^R}.
-+
-+To see it in action, delete several lines with {5dd}, type {^R}, and then type
-+{u} to get the lines back.
-+
-+Here is as good a place as any to mention that if the editor is displaying the
-+end of your file, there may be lines on the screen that look like:
-+~
-+indicating that that screen line would not be affected by {^R}. These lines
-+simply indicate the end of the file.
-+
-+Section 31: text buffers {"}
-+
-+Vi gives you the ability to store text away in "buffers". This feature is very
-+convenient for moving text around in your file. There are a total of thirty-
-+five buffers available in vi. There is the "unnamed" buffer that is used by all
-+commands that delete text, including the change operator {c}, the substitute
-+and replace commands {s} and {r}, as well as the delete operator {d} and delete
-+commands {x} and {X}. This buffer is filled each time any of these commands
-+are used. However, the undo command {u} has no effect on the unnamed buffer.
-+
-+There are twenty-six buffers named 'a' through 'z' which are available for the
-+user. If the name of the buffer is capitalized, then the buffer is not
-+overwritten but appended to. For example, the command {"qdd} will delete one
-+line and store that line in the 'q' buffer, destroying the previous contents of
-+the buffer. However, {"Qdd} will delete one line of text and append that line
-+to the current contents of the 'q' buffer.
-+
-+Finally, there are nine buffers named '1' through '9' in which the last nine
-+deletes are stored. Buffer 1 is the default buffer for the modify commands and
-+is sometimes called the unnamed buffer.
-+
-+To reference a specific buffer, use the double-quote command {"} followed by
-+the name of the buffer. The next two sections show how buffers can be used to
-+advantage.
-+
-+Section 32: rearranging and duplicating text: {y} {Y} {p} {P}
-+
-+Position yourself on line 15 below and {z^M}:
-+
-+Line 15: A tree as lovely as a poem ...
-+Line 16: I think that I shall never see
-+
-+Type {dd}. Line 15 has disappeared and been replaced with the empty line (one
-+with the single character @ on it) or (again depending on your terminal) Line
-+16 has moved up and taken its place. We could recover Line 15 with an undo
-+{u} but that would simply return it to its original location. Obviously, the
-+two lines are reversed, so we want to put line 15 AFTER line 16. This is
-+simply done with the put command {p}, which you should type now. What has
-+happened is that {dd} put Line 15 into the unnamed buffer, and the {p} command
-+retrieved the line from the unnamed buffer.
-+
-+Now type {u} and observe that Line 15 disappears again (the put was undone
-+without affecting the unnamed buffer). Type {P} and see that the capital {P}
-+puts the line BEFORE the cursor.
-+
-+To get Line 15 where it belongs again type {dd}{p}.
-+
-+Also in Line 15 note that the words 'tree' and 'poem' are reversed. Using the
-+unnamed buffer again: {ft}{dw}{ma}{fp}{P}{w}{dw}{`aP} will set things aright
-+(note the use of the reverse quote).
-+
-+The put commands {p} and {P} do not affect the contents of the buffer.
-+Therefore, multiple {p} or {P} will put multiple copies of the unnamed buffer
-+into your file.
-+
-+Experiment with {d} and {p} on words, paragraphs, etc. Whatever {d}
-+deletes, {p} can put.
-+
-+Position the cursor on Line 17 and {z^M}:
-+
-+Line 17: interest apple cat elephant boy dog girl hay farmer
-+
-+Our task is to alphabetize the words on line 17. With the named buffers (and a
-+contrived example) it is quite easy:
-+
-+{"idw}{"adw}{"cdw}{"edw}{"bdw}{"ddw}{"gdw}{"hdw}{"fdw}
-+
-+stores each of the words in the named buffer corresponding to the first letter
-+of each of the words ('interest' goes in buffer "i, 'apple' goes in buffer "a,
-+etc.). Now to put the words in order type:
-+
-+{"ap$}{"bp$}{"cp$}{"dp$}{"ep$}{"fp$}{"gp$}{"hp$}{"ip$}
-+
-+Notice that, because 'farmer' was at the end of the line, {dw} did not include
-+a space after it, and that, therefore, there is no space between 'farmer' and
-+'girl'. This is corrected with {Fg}{i ^[}.
-+
-+This example could have been done just as easily with lines as with
-+words.
-+
-+You do not have to delete the text in order to put it into a buffer. If all
-+you wish to do is to copy the text somewhere else, don't use {d}, rather use
-+the yank commands {y} or {Y}. {y} is like {d} and {c} - an operator rather
-+than a command. It, too, takes a buffer specification and a range
-+specification. Therefore, instead of {dw}{P} to load the unnamed buffer with a
-+word without deleting the word, use {yw} (yank a word).
-+
-+{Y} is designed yank lines, and not arbitrary ranges. That is, {Y} is
-+equivalent to {yy} (remember that operators doubled means the current line),
-+and {3Y} is equivalent to {3yy}.
-+
-+If the text you yank or modify forms a part of a line, or is an object such as
-+a sentence which partially spans more than one line, then when you put the text
-+back, it will be placed after the cursor (or before if you use {P}). If the
-+yanked text forms whole lines, they will be put back as whole lines, without
-+changing the current line. In this case, the put acts much like the {o} or {O}
-+command.
-+
-+The named buffers "a through "z are not affected by changing edit files.
-+However, the unnamed buffer is lost when you change files, so to move text from
-+one file to another you should use a named buffer.
-+
-+Section 33: recovering lost lines
-+
-+Vi also keeps track of the last nine deletes, whether you ask for it or not.
-+This is very convenient if you would like to recover some text that was
-+accidentally deleted or modified. Position the cursor on line 18 following,
-+and {z^M}.
-+
-+
-+Line 18: line 1
-+Line 19: line 2
-+Line 20: line 3
-+Line 21: line 4
-+Line 22: line 5
-+Line 23: line 6
-+Line 24: line 7
-+Line 25: line 8
-+Line 26: line 9
-+Type {dd} nine times: now don't cheat with {9dd}! That is totally different.
-+
-+The command {"1p} will retrieve the last delete. Furthermore, when the
-+numbered buffers are used, the repeat-command command {.} will increment the
-+buffer numbers before executing, so that subsequent {.} will recover all nine
-+of the deleted lines, albeit in reverse order. If you would like to review the
-+last nine deletes without affecting the buffers or your file, do an undo {u}
-+after each put {p} and {.}:
-+
-+{"1p}{u}{.}{u}{.}{u}{.}{u}{.}{u}{.}{u}{.}{u}{.}{u}{.}
-+
-+will show you all the buffers and leave them and your file intact.
-+
-+If you had cheated above and deleted the nine lines with {9dd}, all nine lines
-+would have been stored in both the unnamed buffer and in buffer number 1.
-+(Obviously, buffer number 1 IS the unnamed buffer and is just the default
-+buffer for the modify commands.)
-+
-+Section 34: advanced file manipulation: {:r} {:e} {:n} {:w} {!} {:!}
-+
-+We've already looked at writing out the file you are editing with the
-+{:w} command. Now let's look at some other vi commands to make editing
-+more efficient.
-+
-+Section 34.1: more than one file at a time {:n} {:args}
-+
-+Many times you will want to edit more than one file in an editing session.
-+Instead of entering vi and editing the first file, exiting, entering vi and
-+editing the second, etc., vi will allow you to specify ALL files that you wish
-+to edit on the invocation line. Therefore, if you wanted to edit file1 and
-+file2:
-+
-+% vi file1 file2
-+
-+will set up file1 for editing. When you are done editing file one, write it
-+out {:w^M} and then type {:n^M} to get the next file on the list. On large
-+programming projects with many source files, it is often convenient just to
-+specify all source files with, say:
-+
-+% vi *.c
-+
-+If {:n^M} brings in a file that does not need any editing, another {:n^M}
-+will bring in the next file.
-+
-+If you have made changes to the first file, but decide to discard these changes
-+and proceed to the next file, {:n!^M} forces the editor to discard the current
-+contents of the editor.
-+
-+You can specify a new list of files after {:n}; e.g., {:n f1 f2 f3^M}. This
-+will replace the current list of files (if any).
-+
-+You can see the current list of files being edited with {:args^M}.
-+
-+Section 34.2: reading files and command output: {:r}
-+
-+Typing {:r fname^M} will read the contents of file fname into the editor and
-+put the contents AFTER the cursor line.
-+
-+Typing {:r !cmd^M} will read the output of the command cmd and place that
-+output after the cursor line.
-+
-+Section 34.3: invoking vi from within vi: {:e} {:vi}
-+
-+To edit another file not mentioned on the invocation line, type {:e filename^M}
-+or {:vi filename^M}. If you wish to discard the changes to the current file,
-+use the exclamation point after the command, e.g. {:e! filename^M}.
-+
-+Section 34.4: escaping to a shell: {:sh} {:!} {^Z}
-+
-+Occasionally, it is useful to interrupt the current editing session to perform
-+a UNIX task. However, there is no need to write the current file out, exit
-+the editor, perform the task, and then reinvoke the editor on the same file.
-+One thing to do is to spin off another process. If there are several UNIX
-+commands you will need to execute, simply create another shell with {:sh^M}.
-+At this point, the editor is put to sleep and will be reawakened when you log
-+out of the shell.
-+
-+If it is a single command that you want to execute, type {:!cmd^M}, where cmd
-+is the command that you wish to run. The output of the command will come to
-+the terminal as normal, and will not be made part of your file. The message
-+"[Hit return to continue]" will be displayed by vi after the command is
-+finished. Hitting return will then repaint the screen. Typing another
-+{:!cmd^M} at this point is also acceptable.
-+
-+However, there is a quicker, easier way: type {^Z}. Now this is a little
-+tricky, but hang in there. When you logged into UNIX, the first program you
-+began communicating with was a program that is called a "shell" (i.e. it 'lays
-+over' the operating system protecting you from it, sort of like a considerate
-+porcupine). When you got your first prompt on the terminal (probably a '%'
-+character) this was the shell telling you to type your first command. When
-+you typed {vi filename} for some file, the shell did not go away, it just went
-+to sleep. The shell is now the parent of vi. When you type {^Z} the editor
-+goes to sleep, the shell wakes up and says "you rang?" in the form of another
-+prompt (probably '%'). At this point you are talking to the shell again and
-+you can do anything that you could before including edit another file! (The
-+only thing you can't do is log out: you will get the message "There are
-+stopped jobs.")
-+
-+When your business with the shell is done, type {fg} for 'foreground' and the
-+last process which you ^Z'd out of will be reawakened and the shell will go
-+back to sleep. I will refer you to the documentation for the Berkeley shell
-+'csh' for more information on this useful capability.
-+
-+Section 34.5: writing parts of a file: {:w}
-+
-+The {:w} command will accept a range specifier that will then write only a
-+selected range of lines to a file. To write this section to a file, position
-+the cursor on the section line (e.g. {/^Section 34.5:/^M}) and {z^M}. Now type
-+{^G} to find out the line number (it will be something like "line 513"). Now
-+{/^Section 34.6:/-1^M} to find the last line of this section, and {^G} to find
-+its line number (it will be something like 542). To write out this section of
-+text by itself to a separate file which we will call "sepfile", type
-+{:510,542w sepfile^M}. If sepfile already exists, you will have to use the
-+exclamation point: {:1147,1168w! sepfile^M} or write to a different, non-
-+existent file.
-+
-+{:!cat sepfile^M} will display the file just written, and it should be the
-+contents of this section.
-+
-+There is an alternate method of determining the line numbers for the write.
-+{:set number^M} will repaint the screen with each line numbered. When the file
-+is written and the numbers no longer needed, {:set nonumber^M} will remove the
-+numbers, and {^R} will adjust the screen.
-+
-+Or, if you remember your earlier lessons about marking lines of text,
-+mark the beginning and ending lines. Suppose we had used {ma} to mark the
-+first line of the section and {mb} to mark the last. Then the command
-+{:'a,'bw sepfile^M} will write the section into "sepfile". In general,
-+you can replace a line number with the 'name' of a marked line (a single-quote
-+followed by the letter used to mark the line)
-+
-+
-+Section 34.6: filtering portions of text: {!}
-+
-+{!} is an operator like {c} and {d}. That is, it consists of a repetition
-+count, {!}, and a range specifier. Once the {!} operator is entered in its
-+entirety, a prompt will be given at the bottom of the screen for a UNIX
-+command. The text specified by the {!} operator is then deleted and
-+passed/filtered/piped to the UNIX command you type. The output of the UNIX
-+command is then placed in your file. For example, place the cursor at the
-+beginning of the following line and {z^M}:
-+
-+ls -l vi.tutorial
-+********* marks the bottom of the output from the ls command **********
-+
-+Now type {!!csh^M}. The line will be replaced with the output from the ls
-+command. The {u} command works on {!}, also.
-+
-+Here is an extended exercise to display some of these capabilities. When this
-+tutorial was prepared, certain auxiliary programs were created to aid in its
-+development. Of major concern was the formatting of sections of the tutorial
-+to fit on a single screen, particularly the first few sections. What was
-+needed was a vi command that would 'format' a paragraph; that is, fill out
-+lines with as many words as would fit in eighty columns. There is no such vi
-+command. Therefore, another method had to be found.
-+
-+Of course, nroff was designed to do text formatting. However, it produces a
-+'page'; meaning that there may be many blank lines at the end of a formatted
-+paragraph from nroff. The awk program was used to strip these blank lines from
-+the output from nroff. Below are the two files used for this purpose: I refer
-+you to documentation on nroff and awk for a full explanation of their function.
-+Position the cursor on the next line and {z^M}.
-+
-+******** contents of file f **********
-+#
-+nroff -i form.mac | awk "length != 0 { print }"
-+***** contents of file form.mac ******
-+.na
-+.nh
-+.ll 79
-+.ec 
-+.c2 
-+.cc 
-+**************************************
-+
-+Determine the line numbers of the two lines of file f. They should be
-+something like 574 and 575, although you better double check: this file is
-+under constant revision and the line numbers may change inadvertently. Then
-+{:574,575w f^M}. Do the same for the lines of file form.mac. They will be
-+approximately 577 and 582. Then {:577,582w form.mac^M}. File f must have
-+execute privileges as a shell file: {:!chmod 744 f^M}.
-+
-+Observe that this paragraph is
-+rather ratty in appearance. With our newly created files we can
-+clean it up dramatically. Position the cursor at the beginning
-+of this paragraph and type the following sequence of
-+characters
-+(note that we must abandon temporarily our convention
-+of curly braces since the command itself contains a curly brace - we
-+will use square brackets for the nonce): [!}f^M].
-+
-+Here is a brief explanation of what has happened. By typing [!}f^M] we
-+specified that the paragraph (all text between the cursor and the first blank
-+line) will be removed from the edit file and piped to a UNIX program called
-+"f". This is a shell command file that we have created. This shell file runs
-+nroff, pipes its output to awk to remove blank lines, and the output from awk
-+is then read back into our file in the place of the old, ratty paragraph. The
-+file form.mac is a list of commands to nroff to get it to produce paragraphs
-+to our taste (the right margin is not justified, the line is 79 characters
-+long, words are not hyphenated, and three nroff characters are renamed to
-+avoid conflict: note that in this file, the {^G} you see there is vi's display
-+of the control-G character, and not the two separate characters ^ up-arrow and
-+G upper-case g).
-+
-+This example was created before the existence of the fmt program. I now type
-+[!}fmt^M] to get the same effect much faster. Actually, I don't type those
-+six keys each time: I have an abbreviation (which see).
-+
-+Section 35: searching with magic patterns
-+
-+The documentation available for "magic patterns" (i.e. regular expressions) is
-+very scanty. The following should explain this possibly very confusing feature
-+of the editor. This section assumes that the magic option is on. To make
-+sure, you might want to type {:set magic^M}.
-+
-+By "magic pattern" we mean a general description of a piece of text that the
-+editor attempts to find during a search. Most search patterns consist of
-+strings of characters that must be matched exactly, e.g. {/card/^M} searches
-+for a specific string of four characters. Let us suppose that you have
-+discovered that you consistently have mistyped this simple word as either ccrd
-+or czrd (this is not so far-fetched for touch typists). You could {/ccrd/^M}
-+and {n} until there are no more of this spelling, followed by {/czrd/^M} and
-+{n} until there are no more of these. Or you could {/c.rd/^M} and catch all of
-+them on the first pass. Try typing {/c.rd/^M} followed by several {n} and
-+observe the effect.
-+
-+Line 27: card cord curd ceard
-+
-+When '.' is used in a search string, it has the effect of matching any single
-+character.
-+
-+The character '^' (up-arrow) used at the beginning of a search string means
-+the beginning of the line. {/^Line 27/^M} will find the example line above,
-+while {/Line 27/^M} will find an occurrence of this string anywhere in the
-+line.
-+
-+Similarly, {/ the$/^M} will find all occurrences of the word 'the' occurring
-+at the end of a line. There are several of them in this file.
-+
-+Note that {:set nomagic^M} will turn off the special meaning of these magic
-+characters EXCEPT for '^' and '$' which retain their special meanings at the
-+beginning and end of a search string. Within the search string they hold no
-+special meaning. Try {/\/ the$\//^M} and note that the dollar-sign is not the
-+last character in the search string. Let the dollar-sign be the last
-+character in the search string, as in {/\/ the$/^M} and observe the result.
-+
-+Observe the result of {/back.*file/^M}. This command, followed by sufficient
-+{n}, will show you all lines in the file that contain both the words 'back'
-+and 'file' on the same line. The '*' magic character specifies that the
-+previous regular expression (the '.' in our example) is to be repeatedly
-+matched zero or more times. In our example we specified that the words 'back'
-+and 'file' must appear on the same line (they may be parts of words such as
-+'backwards' or 'workfile') separated by any number (including zero) of
-+characters.
-+
-+We could have specified that 'back' and 'file' are to be words by themselves by
-+using the magic sequences '\<' or '\>'. E.g. {/\<back\>.*\<file\>/^M}. The
-+sequence '\<' specifies that this point of the search string must match the
-+beginning of a word, while '\>' specifies a match at the end of a word. By
-+surrounding a string with these characters we have specified that they must be
-+words.
-+
-+To find all words that begin with an 'l' or a 'w', followed by an 'a' or an
-+'e', and ending in 'ing', try {/\<[lw][ea][a-z]*ing\>/^M}. This will match
-+words like 'learning', 'warning', and 'leading'. The '[..]' notation matches
-+exactly ONE character. The character matched will be one of the characters
-+enclosed in the square brackets. The characters may be specified individually
-+as in [abcd] or a '-' may be used to specify a range of characters as in [a-d].
-+That is, [az] will match the letter 'a' OR the letter 'z', while [a-z] will
-+match any of the lower case letters from 'a' through 'z'. If you would like to
-+match either an 'a', a '-', or a 'z', then the '-' must be escaped: [a\-z] will
-+match ONE of the three characters 'a', '-', or 'z'.
-+
-+If you wish to find all Capitalized words, try {/\<[A-Z][a-z]*\>/^M}. The
-+following will find all character sequences that do NOT begin with an
-+uncapitalized letter by applying a special meaning to the '^' character in
-+square brackets: {/\<[^a-z][a-z]*\>/^M}. When '^' is the first character of a
-+square-bracket expression, it specifies "all but these characters". (No
-+one claimed vi was consistent.)
-+
-+To find all variable names (the first character is alphabetic, the remaining
-+characters are alphanumeric): try {/\<[A-Za-z][A-Za-z0-9]*\>/^M}.
-+
-+In summary, here are the primitives for building regular expressions:
-+
-+ ^ at beginning of pattern, matches beginning of line
-+ $ at end of pattern, matches end of line
-+ . matches any single character
-+ \< matches the beginning of a word
-+ \> matches the end of a word
-+ [str] matches any single character in str
-+ [^str] matches any single character NOT in str
-+ [x-y] matches any character in the ASCII range between x and y
-+ * matches any number (including zero) of the preceding pattern
-+
-+Section 36: advanced substitution: {:s}
-+
-+The straightforward colon-substitute command looks like the substitute
-+command of most line-oriented editors. Indeed, vi is nothing more than a
-+superstructure on the line-oriented editor ex and the colon commands are
-+simply a way of accessing commands within ex (see section #EX). This gives us
-+a lot of global file processing not usually found in visual oriented editors.
-+
-+The colon-substitute command looks like: {:s/ .. / .. /^M} and will find the
-+pattern specified after the first slash (this is called the search pattern),
-+and replace it with the pattern specified after the second slash (called,
-+obviously enough, the replacement pattern). E.g. position the cursor on line
-+28 below and {:s/esample/example/^M}:
-+
-+Line 28: This is an esample.
-+
-+The {u} and {U} commands work for {:s}. The first pattern (the search pattern)
-+may be a regular expression just as for the search command (after all, it IS a
-+search, albeit limited to the current line). Do an {u} on the above line, and
-+try the following substitute, which will do almost the same thing:
-+{:s/s[^ ]/x/^M}.
-+Better undo it with {u}. The first pattern {s[^ ]} matches an 's'
-+NOT followed by a blank: the search therefore ignores the 's'es in 'This' and
-+'is'. However, the character matched by {[^ ]} must appear in the replacement
-+pattern. But, in general, we do not know what that character is! (In this
-+particular example we obviously do, but more complicated examples will follow.)
-+Therefore, vi (really ex) has a duplication mechanism to copy patterns matched
-+in the search string into the replacement string. Line 29 below is a copy of
-+line 28 above so you can adjust your screen.
-+
-+Line 29: This is an esample.
-+
-+In general, you can nest parts of the search pattern in \( .. \) and refer to
-+it in the replacement pattern as \n, where n is a digit. The problem outlined
-+in the previous paragraph is solved with {:s/s\([^ ]\)/x\1/^M}: try it. Here
-+\1 refers to the first pattern grouping \( .. \) in the search string.
-+
-+Obviously, for a single line, this is rather tedious. Where it becomes
-+powerful, if not necessary, is in colon-substitutes that cover a range of
-+lines. (See the next section for a particularly comprehensive example.)
-+
-+If the entire character sequence matched by the search pattern is needed in
-+the replacement pattern, then the unescaped character '&' can be used. On
-+Line 29 above, try {:s/an e.ample/not &/^M}. If another line is to have the
-+word 'not' prepended to a pattern, then '~' can save you from re-typing the
-+replacement pattern. E.g. {:s/some pattern/~/^M} after the previous example
-+would be equivalent to {:s/some pattern/not &/^M}.
-+
-+One other useful replacement pattern allows you to change the case of
-+individual letters. The sequences {\u} and {\l} cause the immediately
-+following character in the replacement to be converted to upper- or lower-case,
-+respectively, if this character is a letter. The sequences {\U} and {\L} turn
-+such conversion on, either until {\E} or {\e} is encountered, or until the end
-+of the replacement pattern.
-+
-+For example, position the cursor on a line: pick a line, any line. Type
-+{:s/.*/\U&/^M} and observe the result. You can undo it with {u}.
-+
-+The search pattern may actually match more than once on a single line.
-+However, only the first pattern is substituted. If you would like ALL
-+patterns matched on the line to be substituted, append a 'g' after the
-+replacement pattern: {:s/123/456/g^M} will substitute EVERY occurrence
-+on the line of 123 with 456.
-+
-+Section 37: advanced line addressing: {:p} {:g} {:v}
-+
-+Ex (available through the colon command in vi) offers several methods for
-+specifying the lines on which a set of commands will act. For example, if you
-+would like to see lines 50 through 100 of your file: {:50,100p^M} will display
-+them, wait for you to [Hit return to continue], and leave you on line 100.
-+Obviously, it would be easier just to do {100G} from within vi. But
-+what if you would like to make changes to just those lines? Then the
-+addressing is important and powerful.
-+
-+Line 30: This is a text.
-+Line 31: Here is another text.
-+Line 32: One more text line.
-+
-+The lines above contain a typing error that the author of this tutorial tends
-+to make every time he attempts to type the word 'test'. To change all of these
-+'text's into 'test's, try the following:
-+{:/^Line 30/,/^Line 32/s/text/test/^M}. This finds the beginning and end of
-+the portion of text to be changed, and limits the substitution to each of the
-+lines in that range. The {u} command applies to ALL of the substitutions as
-+a group.
-+
-+This provides a mechanism for powerful text manipulations.
-+And very complicated examples.
-+
-+Line 33: This test is a.
-+Line 34: Here test is another.
-+Line 35: One line more test.
-+
-+The above three lines have the second word out of order. The following command
-+string will put things right. Be very careful when typing this: it is very
-+long, full of special characters, and easy to mess up. You may want to
-+consider reading the following section to understand it before trying the
-+experiment. Don't worry about messing up the rest of the file, though: the
-+address range is specified.
-+
-+{:/^Line 33/,/^Line 35/s/\([^:]*\): \([^ ]*\) \([^ ]*\) \([^.]*\)/\1: \2 \4 \3/^M}
-+
-+There are several things to note about this command string. First of all, the
-+range of the substitute was limited by the address specification {/^Line
-+33/,/^Line 35/^M}. It might have been simpler to do {:set number^M} to see the
-+line numbers directly, and then, in place of the two searches, typed
-+the line numbers, e.g. {1396,1398}. Or to mark the lines with {ma} and {mb}
-+and use {'a,'b}.
-+
-+Then follows the substitute pattern itself. To make it easier to understand
-+what the substitute is doing, the command is duplicated below with the various
-+patterns named for easier reference:
-+
-+ s/\([^:]*\): \([^ ]*\) \([^ ]*\) \([^.]*\)/\1: \2 \4 \3/
-+ |--\1---| |--\2---| |--\3---| |--\4---|
-+ |--------search pattern------------------|-replacement|
-+ |--pattern---|
-+
-+In overview, the substitute looks for a particular pattern made up of
-+sub-patterns, which are named \1, \2, \3, and \4. These patterns are specified
-+by stating what they are NOT. Pattern \1 is the sequence of characters that
-+are NOT colons: in the search string, {[^:]} will match exactly one character
-+that is not a colon, while appending the asterisk {[^:]*} specifies that the
-+'not a colon' pattern is to be repeated until no longer satisfied, and
-+{\([^:]*\)} then gives the pattern its name, in this case \1. Outside of the
-+specification of \1 comes {: }, specifying that the next two characters must be
-+a colon followed by a blank.
-+
-+Patterns \2 and \3 are similar, specifying character sequences that are
-+not blanks. Pattern \4 matches up to the period at the end of the line.
-+
-+The replacement pattern then consists of specifying the new order of the
-+patterns.
-+
-+This is a particularly complicated example, perhaps the most complicated
-+in this tutorial/reference. For our small examples, it is obviously
-+tedious and error prone. For large files, however, it may be the most
-+efficient way to make the desired modifications.
-+
-+(The reader is advised to look at the documentation for awk. This tool is very
-+powerful and slightly simpler to use than vi for this kind of file
-+manipulation. But, it is another command language to learn.)
-+
-+Many times, you will not want to operate on every line in a certain
-+range. Rather you will want to make changes on lines that satisfy
-+certain patterns; e.g. for every line that has the string 'NPS' on it,
-+change 'NPS' to 'Naval Postgraduate School'. The {:g} addressing
-+command was designed for this purpose. The example of this paragraph
-+could be typed as {:g/NPS/s//Naval Postgraduate School/^M}.
-+
-+The general format of the command is {:g/(pattern)/cmds^M} and it
-+works in the following way: all lines that match the pattern
-+following the {:g} are 'tagged' in a special way. Then each of these
-+lines have the commands following the pattern executed over them.
-+
-+Line 36: ABC rhino george farmer Dick jester lest
-+Line 37: george farmer rhino lest jester ABC
-+Line 38: rhino lest george Dick farmer ABC jester
-+
-+Type:
-+
-+{:g/^Line.*ABC/s/Dick/Harry Binswanger/|s/george farmer/gentleman george/p^M}
-+
-+There are several things of note here. First, lines 36, 37, and 38 above are
-+tagged by the {:g}. Type {:g/^Line.*ABC/p^M} to verify this. Second, there
-+are two substitutes on the same line separated by '|'. In general, any colon
-+commands can be strung together with '|'. Third, both substitutes operate on
-+all three lines, even though the first stubstitute works on only two of the
-+lines (36 and 38). Fourth, the second substitute works on only two lines (36
-+and 37) and those are the two lines printed by the trailing 'p'.
-+
-+The {:v} command works similarly to the {:g} command, except that the sense of
-+the test for 'tagging' the lines is reversed: all lines NOT matching the search
-+pattern are tagged and operated on by the commands.
-+
-+Using {^V} to quote carriage return (see section 39) can be used in global
-+substitutions to split two lines. For example, the command
-+{:g/\. /s//.^V^M/g^M} will change your file so that each sentence is on a
-+separate line. (Note that we have to 'escape' the '.', because '.' by itself
-+matches any character. Our command says to find any line which contains a
-+period followed by 2 spaces, and inserts a carriage return after the period.)
-+
-+Caveat: In some of the documentation for ex and vi you may find the
-+comment to the effect that {\^M} can be used between commands following
-+{:g}. The author of this tutorial has never gotten this to work and has
-+crashed the editor trying.
-+
-+Section 38: higher level text objects and nroff: {(} {)} [{] [}] {[[} {]]}
-+
-+(Note: this section may be a little confusing because of our command
-+notation. Using curly braces to surround command strings works fine as
-+long as the command string does not contain any curly braces itself.
-+However, the curly braces are legitimate commands in vi. Therefore, for
-+any command sequence that contains curly braces, we will surround that
-+sequence with SQUARE braces, as on the previous Section line.)
-+
-+In working with a document, particularly if using the text formatting
-+programs nroff or troff, it is often advantageous to work in terms of
-+sentences, paragraphs, and sections. The operations {(} and {)} move to
-+the beginning of the previous and next sentences, respectively. Thus
-+the command {d)} will delete the rest of the current sentence; likewise
-+{d(} will delete the previous sentence if you are at the beginning of
-+the current sentence, or, if you are not at the beginning of a sentence,
-+it will delete the current sentence from the beginning
-+up to where you are.
-+
-+A sentence is defined to end at a '.', '!', or '?' which is followed
-+by either the end of a line, or by two spaces. Any number of closing
-+')', ']', '"', and ''' characters may appear after the '.', '!', or '?'
-+before the spaces or end of line. Therefore, the {(} and {)} commands
-+would recognize only one sentence in the following line, but two
-+sentences on the second following line.
-+
-+Line 39: This is one sentence. Even though it looks like two.
-+Line 40: This is two sentences. Because it has two spaces after the '.'.
-+
-+The operations [{] and [}] move over paragraphs and the operations {[[}
-+and {]]} move over sections.
-+
-+A paragraph begins after each empty line, and also at each of a set of nroff
-+paragraph macros. A section begins after each line with a form-feed ^L in the
-+first column, and at each of a set of nroff section macros. When preparing a
-+text file as input to nroff, you will probably be using a set of nroff macros
-+to make the formatting specifications easier, or more to your taste. These
-+macros are invoked by beginning a line with a period followed by the one or two
-+letter macro name. Vi has been programmed to recognize these nroff macros, and
-+if it doesn't recognize your particular macro you can use the {:set paragraphs}
-+or {:set sections} commands so that it will.
-+
-+Section 39: more about inserting text
-+
-+There are a number of characters which you can use to make correnctions
-+during input mode. These are summarized in the following table.
-+
-+ ^H deletes the last input character
-+ ^W deletes the last input word
-+ (erase) same as ^H; each terminal can define its own erase character;
-+ for some it is ^H, for others it is the DELETE key, and for
-+ others it is '@'.
-+ (kill) deletes the input on this line; each terminal can define its
-+ own line-kill character; for some it is ^U, for others it is
-+ '@'; you will need to experiment on your terminal to find
-+ out what your line-kill and erase characters are.
-+ \ escapes a following ^H, (kill), and (erase) characters: i.e.
-+ this is how to put these characters in your file.
-+ ^[ escape key; ends insertion mode
-+ ^? the delete key; interrupts an insertion, terminating it
-+ abnormally.
-+ ^M the return key; starts a new line.
-+ ^D backtabs over the indentation set by the autoindent option
-+ 0^D backtabs over all indentation back to the beginning of the line
-+ ^^D (up-arrow followed by control-d)same as 0^D, except the indentation
-+ will be restored at the beginning of the next line.
-+ ^V quotes the next non-printing character into the file
-+
-+If you wish to type in your erase or kill character (say # or @ or ^U) then you
-+must precede it with a \, just as you would do at the normal system command
-+level. A more general way of typing non-printing characters into the file is
-+to precede them with a ^V. The ^V echoes as a ^ character on which the cursor
-+rests. This indicates that the editor expects you to type a control character
-+and it will be inserted into the file at that point. There are a few
-+exceptions to note. The implementation of the editor does not allow the null
-+character ^@ to appear in files. Also the linefeed character ^J is used by the
-+editor to separate lines in the file, so it cannot appear in the middle of a
-+line. (Trying to insert a ^M into a file, or putting it in the replacement
-+part of a substitution string will result in the matched line being split in
-+two. This, in effect, is how to split lines by using a substitution.) You can
-+insert any other character, however, if you wait for the editor to echo the ^
-+before you type the character. In fact, the editor will treat a following
-+letter as a request for the corresponding control character. This is the only
-+way to type ^S or ^Q, since the system normally uses them to suspend and resume
-+output and never gives them to the editor to process.
-+
-+If you are using the autoindent option you can backtab over the indent which it
-+supplies by typing a ^D. This backs up to the boundary specified by the
-+shiftwidth option. This only works immediately after the supplied autoindent.
-+
-+When you are using the autoindent option you may wish to place a label at the
-+left margin of a line. The way to do this easily is to type ^ (up-arrow) and
-+then ^D. The editor will move the cursor to the left margin for one line, and
-+restore the previous indent on the next. You can also type a 0 followed
-+immediately by a ^D if you wish to kill all indentation and not have it resume
-+on the next line.
-+
-+Section 40: more on operators: {d} {c} {<} {>} {!} {=} {y}
-+
-+Below is a non-exhaustive list of commands that can follow the operators
-+to affect the range over which the operators will work. However, note
-+that the operators {<}, {>}, {!}, and {=} do not operate on any object
-+less than a line. Try {!w} and you will get a beep. To get the
-+operator to work on just the current line, double it. E.g. {<<}.
-+
-+ suffix will operate on
-+ ------ ------------------------
-+ ^[ cancels the command
-+ w the word to the right of the cursor
-+ W ditto, but ignoring punctuation
-+ b the word to the left of the cursor
-+ B ditto, but ignoring punctuation
-+ e see below.
-+ E ditto
-+ (space) a character
-+ $ to the end of the line
-+ ^ to the beginning of the line
-+ / .. / up to, but not including, the string
-+ ? .. ? back to and including the string
-+ fc up to and including the occurrence of c
-+ Fc back to and including the occurrence of c
-+ tc up to but not including the occurrence of c
-+ Tc back to but not including the occurrence of c
-+ ^M TWO lines (that's right: two)
-+ (number)^M that many lines plus one
-+ (number)G up to and including line (number)
-+ ( the previous sentence if you are at the beginning of
-+ the current sentence, or the current sentence up to where
-+ you are if you are not at the beginning of the current
-+ sentence. Here, 'sentence' refers to the intuitive
-+ notion of an English sentence, ending with '!', '?',
-+ or '.' and followed by an end of line or two spaces.
-+ ) the rest of the current sentence
-+ { analogous to '(', but in reference to paragraphs:
-+ sections of text surrounded by blank lines
-+ } analogous to ')', but in reference to paragraphs
-+ [[ analogous to '(', but in reference to sections
-+ ]] analogous to ')', but in reference to sections
-+ H the first line on the screen
-+ M the middle line on the screen
-+ L the last line on the screen
-+ 3L through the third line from the bottom of the screen
-+ ^F forward a screenful
-+ ^B backward a screenful
-+ :
-+ : etc. etc. etc.
-+
-+This list is not exhaustive, but it should be sufficient to get the idea
-+across: after the operator, you can specify a range with a move-the-cursor
-+command, and that is the region of text over which the operator will be
-+effective.
-+
-+Section 41: abbreviations: {:ab}
-+
-+When typing large documents you may find yourself typing a large phrase
-+over and over. Vi gives you the ability to specify an abbreviation for
-+a long string such that typing the abbreviation will automatically
-+expand into the longer phrase.
-+
-+Type {:ab nps Naval Postgraduate School^M}. Now type:
-+
-+{iThis is to show off the nps's UNIX editor.^M^[}
-+
-+Section 42: vi's relationship with the ex editor: {:}
-+
-+Vi is actually one mode of editing within the editor ex. When you are
-+running vi you can escape to the line oriented editor of ex by giving
-+the command {Q}. All of the colon-commands which were introduced above
-+are available in ex. Likewise, most ex commands can be invoked from vi
-+using {:}.
-+
-+In rare instances, an internal error may occur in vi. In this case you
-+will get a diagnostic and will be left in the command mode of ex. You can
-+then save your work and quit if you wish by giving the command {x} after
-+the colon prompt of ex. Or you can reenter vi (if you are brave) by
-+giving ex the command {vi}.
-+
-+Section 43: vi on hardcopy terminals and dumb terminals: open mode
-+
-+(The author has not checked the following documentation for accuracy. It is
-+abstracted from the Introduction to Vi Editing document.)
-+
-+If you are on a hardcopy terminal or a terminal which does not have a cursor
-+which can move off the bottom line, you can still use the command set of vi,
-+but in a different mode. When you give the vi command to UNIX, the editor will
-+tell you that it is using open mode. This name comes from the open command in
-+ex, which is used to get into the same mode.
-+
-+The only difference between visual mode (normal vi) and open mode is the way in
-+which the text is displayed.
-+
-+In open mode the editor uses a single line window into the file, and moving
-+backward and forward in the file causes new lines to be displayed, always below
-+the current line. Two commands of vi work differently in open: {z} and {^R}.
-+The {z} command does not take parameters, but rather draws a window of context
-+around the current line and then returns you to the current line.
-+
-+If you are on a hardcopy terminal, the {^R} command will retype the current
-+line. On such terminals, the editor normally uses two lines to represent the
-+current line. The first line is a copy of the line as you started to edit it,
-+and you work on the line below this line. When you delete characters, the
-+editor types a number of \'s to show you the characters which are deleted. The
-+editor also reprints the current line soon after such changes so that you can
-+see what the line looks like again.
-+
-+It is sometimes useful to use this mode on very slow terminals which can
-+support vi in the full screen mode. You can do this by entering ex and using
-+an {open} command.
-+
-+*********************************************************************
-+Section 44: options: {:set} {setenv EXINIT}
-+
-+You will discover options as you need them. Do not worry about them very much
-+on the first pass through this document. My advice is to glance through them,
-+noting the ones that look interesting, ignoring the ones you don't understand,
-+and try re-scanning them in a couple of weeks.
-+
-+If you decide that you have a favorite set of options and would like to change
-+the default values for the editor, place a {setenv EXINIT} command in your
-+.login file. When you are given an account under UNIX your directory has
-+placed in it a file that is executed each time you log in. If one of the
-+commands in this file sets the environment variable EXINIT to a string of vi
-+commands, you can have many things done for you each time you invoke vi. For
-+example, if you decide that you don't like tabstops placed every eight columns
-+but prefer every four columns, and that you wish the editor to insert linefeeds
-+for you when your typing gets you close to column 72, and you want
-+autoindentation, then include the following line in your .login file:
-+
-+setenv EXINIT='set tabstop=4 wrapmargin=8 autoindent'
-+
-+or equivalently
-+
-+setenv EXINIT='se ts=4 wm=8 ai'
-+
-+Each time you bring up vi, this command will be executed and the options set.
-+
-+There are forty options in the vi/ex editor that the user can set for his/her
-+own convenience. They are described in more detail in individual sections
-+below. The section line will show the full spelling of the option name, the
-+abbreviation, and the default value of the option. The text itself
-+comes from the ex reference manual and is not the epitome of clarity.
-+
-+Section 44.1: {autoindent}, {ai} default: noai
-+
-+Can be used to ease the preparation of structured program text. At the
-+beginning of each append, change or insert command or when a new line is opened
-+or created by an append, change, insert, or substitute operation within open or
-+visual mode, ex looks at the line being appended after, the first line changed
-+or the line inserted before and calculates the amount of white space at the
-+start of the line. It then aligns the cursor at the level of indentation so
-+determined.
-+
-+If the user then types lines of text in, they will continue to be justified at
-+the displayed indenting level. If more white space is typed at the beginning
-+of a line, the following line will start aligned with the first non-white
-+character of the previous line. To back the cursor up to the preceding tab
-+stop one can hit {^D}. The tab stops going backwards are defined at multiples
-+of the shiftwidth option. You cannot backspace over the indent, except by
-+sending an end-of-file with a {^D}. A line with no characters added to it
-+turns into a completely blank line (the white space provided for the autoindent
-+is discarded). Also specially processed in this mode are lines beginning with
-+an up-arrow `^' and immediately followed by a {^D}. This causes the input to
-+be repositioned at the beginning of the line, but retaining the previous indent
-+for the next line. Similarly, a `0' followed by a {^D} repositions at the
-+beginning but without retaining the previous indent. Autoindent doesn't happen
-+in global commands or when the input is not a terminal.
-+
-+Section 44.2: {autoprint}, {ap} default: ap
-+
-+Causes the current line to be printed after each delete, copy, join, move,
-+substitute, t, undo or shift command. This has the same effect as supplying a
-+trailing `p' to each such command. Autoprint is suppressed in globals, and
-+only applies to the last of many commands on a line.
-+
-+Section 44.3: {autowrite}, {aw} default: noaw
-+
-+Causes the contents of the buffer to be written to the current file if you have
-+modified it and give a next, rewind, stop, tag, or {!} command, or a control-
-+up-arrow {^^} (switch files) or {^]} (tag goto) command in visual. Note, that
-+the edit and ex commands do not autowrite. In each case, there is an
-+equivalent way of switching when autowrite is set to avoid the autowrite
-+({edit} for next, rewind! for rewind, stop! for stop, tag! for tag, shell
-+for {!}, and {:e #} and a {:ta!} command from within visual).
-+
-+Section 44.4: {beautify}, {bf} default: nobeautify
-+
-+Causes all control characters except tab ^I, newline ^M and form-feed ^L to be
-+discarded from the input. A complaint is registered the first time a backspace
-+character is discarded. Beautify does not apply to command input.
-+
-+Section 44.5: {directory}, {dir} default: dir=/tmp
-+
-+Specifies the directory in which ex places its buffer file. If this directory
-+in not writable, then the editor will exit abruptly when it fails to be able to
-+create its buffer there.
-+
-+Section 44.6: {edcompatible} default: noedcompatible
-+
-+Causes the presence or absence of g and c suffixes on substitute commands to be
-+remembered, and to be toggled by repeating the suffices. The suffix r makes
-+the substitution be as in the {~} command, instead of like {&}.
-+
-+[Author's note: this should not concern users of vi.]
-+
-+Section 44.7: {errorbells}, {eb} default: noeb
-+
-+Error messages are preceded by a bell. However, bell ringing in open and
-+visual modes on errors is not suppressed by setting noeb. If possible the
-+editor always places the error message in a standout mode of the terminal (such
-+as inverse video) instead of ringing the bell.
-+
-+Section 44.8: {hardtabs}, {ht} default: ht=8
-+
-+Gives the boundaries on which terminal hardware tabs are set (or on which the
-+system expands tabs).
-+
-+Section 44.9: {ignorecase}, {ic} default: noic
-+
-+All upper case characters in the text are mapped to lower case in regular
-+expression matching. In addition, all upper case characters in regular
-+expressions are mapped to lower case except in character class specifications
-+(that is, character in square brackets).
-+
-+Section 44.10: {lisp} default: nolisp
-+
-+Autoindent indents appropriately for lisp code, and the {(}, {)}, [{], [}],
-+{[[}, and {]]} commands in open and visual modes are modified in a
-+striaghtforward, intuitive fashion to have meaning for lisp.
-+
-+[Author's note: but don't ask me to define them precisely.]
-+
-+Section 44.11: {list} default: nolist
-+
-+All printed lines will be displayed (more) unambiguously, showing tabs as ^I
-+and end-of-lines with `$'. This is the same as in the ex command {list}.
-+
-+Section 44.12: {magic} default: magic for {ex} and {vi}, nomagic for edit.
-+
-+If nomagic is set, the number of regular expression metacharacters is greatly
-+reduced, with only up-arrow `^' and `$' having special effects. In addition
-+the metacharacters `~' and `&' of the replacement pattern are treated as normal
-+characters. All the normal metacharacters may be made magic when nomagic is
-+set by preceding them with a `\'.
-+
-+[Author's note: In other words, if magic is set a back-slant turns the magic
-+off for the following character, and if nomagic is set a back-slant turns the
-+magic ON for the following character. And, no, we are not playing Dungeons and
-+Dragons, although I think the writers of these option notes must have played it
-+all the time.]
-+
-+Section 44.13: {mesg} default: mesg
-+
-+Causes write permission to be turned off to the terminal while you are in
-+visual mode, if nomesg is set.
-+
-+[Author's note: I don't know if anyone could have made any one sentence
-+paragraph more confusing than this one. What it says is: mesg allows people to
-+write to you even if you are in visual or open mode; nomesg locks your terminal
-+so they can't write to you and mess up your screen.]
-+
-+Section 44.14: {number, nu} default: nonumber
-+
-+Causes all output lines to be printed with their line numbers. In addition
-+each input line will be prompted with its line number.
-+
-+Section 44.15: {open} default: open
-+
-+If {noopen}, the commands open and visual are not permitted. This is set for
-+edit to prevent confusion resulting from accidental entry to open or visual
-+mode.
-+
-+[Author's note: As you may have guessed by now, there are actually three
-+editors available under Berkeley UNIX that are in reality the same
-+program, ex, with different options set: ex itself, vi, and edit.]
-+
-+Section 44.16: {optimize, opt} default: optimize
-+
-+Throughput of text is expedited by setting the terminal to not do automatic
-+carriage returns when printing more than one (logical) line of output, greatly
-+speeding output on terminals without addressable cursors when text with leading
-+white space is printed.
-+
-+[Author's note: I still don't know what this option does.]
-+
-+Section 44.17: {paragraphs, para} default: para=IPLPPPQPP LIbp
-+
-+Specifies the paragraphs for the [{] and [}] operations in open and visual.
-+The pairs of characters in the option's value are the names of the nroff macros
-+which start paragraphs.
-+
-+Section 44.18: {prompt} default: prompt
-+
-+Command mode input is prompted for with a `:'.
-+
-+[Author's note: Doesn't seem to have any effect on vi.]
-+
-+Section 44.19: {readonly}, {ro} default: noro, unless invoked with -R
-+ or insufficient privileges on file
-+
-+This option allows you to guarantee that you won't clobber your file by
-+accident. You can set the option and writes will fail unless you use an `!'
-+after the write. Commands such as {x}, {ZZ}, the autowrite option, and in
-+general anything that writes is affected. This option is turned on if you
-+invoke the editor with the -R flag.
-+
-+Section 44.20: {redraw} default: noredraw
-+
-+The editor simulates (using great amounts of output), an intelligent terminal
-+on a dumb terminal (e.g. during insertions in visual the characters to the
-+right of the cursor position are refreshed as each input character is typed).
-+Useful only at very high baud rates, and should be used only if the system is
-+not heavily loaded: you will notice the performance degradation yourself.
-+
-+Section 44.21: {remap} default: remap
-+
-+If on, macros are repeatedly tried until they are unchanged. For example, if o
-+is mapped to O, and O is mapped to I, then if remap is set, o will map to I,
-+but if noremap is set, it will map to O .
-+
-+Section 44.22: {report} default: report=5 for ex and vi, 2 for edit
-+
-+Specifies a threshold for feedback from commands. Any command which modifies
-+more than the specified number of lines will provide feedback as to the scope
-+of its changes. For commands such as global, open, undo, and visual which have
-+potentially more far reaching scope, the net change in the number of lines in
-+the buffer is presented at the end of the command, subject to this same
-+threshold. Thus notification is suppressed during a global command on the
-+individual commands performed.
-+
-+Section 44.23: {scroll} default: scroll=1/2 window
-+
-+Determines the number of logical lines scrolled when a {^D} is received from a
-+terminal in command mode, and determines the number of lines printed by a
-+command mode z command (double the value of scroll).
-+
-+[Author's note: Doesn't seem to affect {^D} and {z} in visual (vi) mode.]
-+
-+Section 44.24: sections {sections} default: sections=SHNHH HU
-+
-+Specifies the section macros from nroff for the {[[} and {]]} operations in
-+open and visual. The pairs of characters in the options's value are the names
-+of the macros which start paragraphs.
-+
-+Section 44.25: {shell}, {sh} default: sh=/bin/sh
-+
-+Gives the path name of the shell forked for the shell escape command `!', and
-+by the shell command. The default is taken from SHELL in the environment, if
-+present.
-+
-+[Editor's note: I would suggest that you place the following line in
-+your .login file:
-+setenv SHELL '/bin/csh'
-+]
-+
-+Section 44.26: {shiftwidth}, {sw} default: sw=8
-+
-+Used in reverse tabbing with {^D} when using autoindent to append text, and
-+used by the shift commands. Should probably be the same value as the tabstop
-+option.
-+
-+Section 44.27: {showmatch}, {sm} default: nosm
-+
-+In open and visual mode, when a `)' or `}' is typed, if the matching `(' or `{'
-+is on the screen, move the cursor to it for one second. Extremely useful with
-+complicated nested expressions, or with lisp.
-+
-+Section 44.28: {slowopen}, {slow} default: terminal dependent
-+
-+Affects the display algorithm used in visual mode, holding off display updating
-+during input of new text to improve throughput when the terminal in use is both
-+slow and unintelligent. See "An Introduction to Display Editing with Vi" for
-+more details.
-+
-+Section 44.29: {tabstop}, {ts} default: ts=8
-+
-+The editor expands tabs ^I to tabstop boundaries in the display.
-+
-+Section 44.30: {taglength}, {tl} default: tl=0
-+
-+Tags are not significant beyond this many characters.
-+A value of zero (the default) means that all characters are significant.
-+
-+Section 44.31: {tags} default: tags=tags /usr/lib/tags
-+
-+A path of files to be used as tag files for the tag command. A requested tag
-+is searched for in the specified files, sequentially. By default files called
-+tags are searched for in the current directory and in /usr/lib (a master file
-+for the entire system).
-+
-+[Author's note: The author of this tutorial has never used this option, nor
-+seen it used. I'm not even sure I know what they are talking about.]
-+
-+Section 44.32: {term} default: from environment variable TERM
-+
-+The terminal type of the output device.
-+
-+Section 44.33: {terse} default: noterse
-+
-+Shorter error diagnostics are produced for the experienced user.
-+
-+Section 44.34: {timeout} default: timeout
-+
-+Causes macros to time out after one second. Turn it off and they will
-+wait forever. This is useful if you want multi-character macros, but if
-+your terminal sends escape sequences for arrow keys, it will be
-+necessary to hit escape twice to get a beep.
-+
-+[Editor's note: Another paragraph which requires a cryptographer.]
-+
-+Section 44.35: ttytype
-+
-+[Editor's note: I have found no documentation for this option at all.]
-+
-+Section 44.36: {warn} default: warn
-+
-+Warn if there has been `[No write since last change]' before a `!' command
-+escape.
-+
-+Section 44.37: {window} default: window=speed dependent
-+
-+The number of lines in a text window in the visual command. The default is 8
-+at slow speeds (600 baud or less), 16 at medium speed (1200 baud), and the full
-+screen (minus one line) at higher speeds.
-+
-+Section 44.38: {wrapscan}, {ws} default: ws
-+
-+Searches using the regular expressions in addressing will wrap around past the
-+end of the file.
-+
-+Section 44.39: {wrapmargin}, {wm} default: wm=0
-+
-+Defines a margin for automatic wrapover of text during input in open and visual
-+modes. The numeric value is the number of columns from the right edge of the
-+screen around which vi looks for a convenient place to insert a new-line
-+character (wm=0 is OFF). This is very convenient for touch typists.
-+Wrapmargin behaves much like fill/nojustify mode does in nroff.
-+
-+Section 44.40: {writeany}, {wa} default: nowa
-+
-+Inhibit the checks normally made before write commands, allowing a write to any
-+file which the system protection mechanism will allow.
-+
-+Section 44.41: {w300}, {w1200}, {w9600} defaults: w300=8
-+ w1200=16
-+ w9600=full screen minus one
-+
-+These are not true options but set the default size of the window for when the
-+speed is slow (300), medium (1200), or high (9600), respectively. They are
-+suitable for an EXINIT and make it easy to change the 8/16/full screen rule.
-+
-+Section 45: Limitations
-+
-+Here are some editor limits that the user is likely to encounter:
-+ 1024 characters per line
-+ 256 characters per global command list
-+ 128 characters per file name
-+ 128 characters in the previous inserted and deleted text in open or
-+ visual
-+ 100 characters in a shell escape command
-+ 63 characters in a string valued option
-+ 30 characters in a tag name
-+ 250000 lines in the file (this is silently enforced).
-+
-+The visual implementation limits the number of macros defined with map to 32,
-+and the total number of characters in macros to be less than 512.
-+
-+[Editor's note: these limits may not apply to versions after 4.1BSD.]
-diff -Naur nvi-1.81.orig/nvi-1.79/docs/tutorial/vi.beginner nvi-1.81.6/nvi-1.79/docs/tutorial/vi.beginner
---- nvi-1.81.6.orig/nvi-1.79/docs/tutorial/vi.beginner 1970-01-01 01:00:00.000000000 +0100
-+++ nvi-1.81.6/nvi-1.79/docs/tutorial/vi.beginner 2008-06-22 20:35:35.000000000 +0200
-@@ -0,0 +1,741 @@
-+Section 1: {^F} {ZZ}
-+
-+To get out of this tutorial, type: ZZ (two capital Z's).
-+
-+Learning a new computer system implies learning a new text editor. These
-+tutorial lessons were created by Dain Samples to help you come to grips with
-+UC Berkeley's screen oriented editor called vi (for VIsual). This tutorial
-+uses the vi editor itself as the means of presentation.
-+
-+For best use of this tutorial, read all of a screen before performing any of
-+the indicated actions. This tutorial (or, at least, the first half of it) has
-+been designed to systematically present the vi commands IF THE INSTRUCTIONS
-+ARE FOLLOWED! If you are too adventuresome, you may find yourself lost. If
-+you ever find yourself stuck, remember the first line of this section.
-+
-+OK, now find the control key on your keyboard; it usually has CTL or CTRL
-+written on its upper surface. Your first assignment is to hold the control
-+key down while you press the 'F' key on your keyboard. Please do so now.
-+
-+
-+
-+Section 2: {^F} {^B}
-+Many of vi's commands use the control key and some other key in combination,
-+as with the control and the 'F' key above. This is abbreviated CTL-F, or ^F.
-+
-+As you have probably guessed by now, ^F (CTL-F) moves you forward a fixed
-+number of lines in the file. Throughout the remainder of the tutorial when
-+you are ready to advance to the next section of text, hit ^F.
-+
-+The opposite command is ^B. Just for fun, you might want to try a ^B to see
-+the previous section again. Be sure to do a ^F to return you here.
-+
-+Determine what the cursor looks like on your screen. Whatever it is (a box,
-+an underscore, blinking, flashing, inverse, etc.) it should now be positioned
-+in the upper left-hand corner of your screen under or on the S of Section.
-+Become familiar with your cursor: to use vi correctly it is important to
-+always know where the cursor is.
-+
-+Did you notice that when you do a ^F the cursor is left at the top of the
-+screen, and a ^B leaves the cursor near the bottom of the screen? Try the two
-+commands ^B^F again. And now do another ^F to see the next section.
-+
-+Section 3: {^F} {^B}
-+You now have two basic commands for examining a file, both forwards (^F) and
-+backwards (^B).
-+
-+Note that these are vi text editing commands: they are not commands for the
-+tutorial. Indeed, this tutorial is nothing but a text file which you are now
-+editing. Everything you do and learn in this tutorial will be applicable to
-+editing text files.
-+
-+Therefore, when you are editing a file and are ready to see more of the text,
-+entering ^F will get you to the next section of the file. Entering ^B will
-+show you the previous section.
-+
-+Time for you to do another ^F.
-+
-+
-+
-+
-+
-+
-+
-+Section 4: {^F} {^B} {^M} (return key)
-+We will adopt the notation of putting commands in curly braces so we can write
-+them unambiguously. For example, if you are to type the command sequence
-+"control B control F" (as we asked you to do above) it would appear as {^B^F}.
-+This allows clear delineation of the command strings from the text. Remember
-+that the curly braces are NOT part of the command string you are to type. Do
-+NOT type the curly braces.
-+
-+Sometimes, the command string in the curly braces will be rather long, and may
-+be such that the first couple of characters of the command will erase from
-+the screen the string you are trying to read and type. It is suggested that
-+you write down the longer commands BEFORE you type them so you won't forget
-+them once they disappear.
-+
-+Now locate the return key on your keyboard: it is usually marked 'RETURN',
-+indicate hitting the return key. In fact, the control-M key sequence is
-+exactly the same as if you hit the return key, and vice versa.
-+
-+Now type {^F}.
-+
-+
-+Section 5: {:q!} {ZZ} {^M} (return key)
-+Recognize that this tutorial is nothing more than a text file that you
-+are editing. This means that if you do something wrong, it is possible
-+for you to destroy the information in this file. Don't worry. If this
-+happens, type {ZZ} (two capital Z's) or {:q!^M} to leave the tutorial.
-+Restart the tutorial. Once in the tutorial, you can then page forward
-+with {^F} until you are back to where you want to be. (There are
-+easier ways to do this, some of which will be discussed later, but this
-+is the most straightforward.)
-+
-+You may want to write these commands down in a convenient place for quick
-+reference: {:q!^M} and {ZZ}
-+
-+We will assume that you now know to do a {^F} to advance the file
-+
-+
-+
-+
-+
-+
-+
-+Section 6: {m} {G} {'} {z}
-+Now that you know how to get around in the file via ^F and ^B let's look at
-+other ways of examining a text file. Sometimes it is necessary, in the midst
-+of editing a file, to examine another part of the file. You are then faced
-+with the problem of remembering your place in the file, looking at the other
-+text, and then getting back to your original location. Vi has a 'mark'
-+command, m. Type {mp}. You have just 'marked' your current location in the
-+file and given it the name 'p'. The command string below will do three
-+things: position you at the beginning of the file (line 1), then return you to
-+the location 'p' that you just marked with the 'm' command, and, since the
-+screen will not look exactly the same as it does right now, the 'z' command
-+will reposition the screen. (You may want to write the string down before
-+typing it: once you type {1G} it will no longer be on the screen.)
-+
-+So now type {1G'pz^M} - a one followed by a capital G, followed by the quote
-+mark, followed by a lower case 'p', then a lower case 'z', then a return
-+(which is the same as a ^M). The {1G} moves you to line 1, i.e. the beginning
-+of the file. The {'p} moves you to the location you marked with {mp}. The
-+{z^M} command will repaint the screen putting the cursor at the top of the
-+screen. (Now {^F}.)
-+
-+Section 7: {m} {G} {'} {z}
-+Let's look at some variations on those commands. If you wanted to look at
-+line 22 in the file and return to this location you could type {mp22G'p}. Do
-+so now, observing that {22G} puts your cursor at the beginning of section 2 in
-+the middle of the screen.
-+
-+Also note that, without the {z^M} command, the line with 'Section 7' on it is
-+now in the MIDDLE of the screen, and not at the top. Our cursor is on the
-+correct line (where we did the {mp} command) but the line is not where we
-+might like it to be on the screen. That is the function of the {z^M} command.
-+(Remember, ^M is the same as the 'return' key on your keyboard.) Type {z^M}
-+now and observe the effect.
-+
-+As you can see, the 'Section 7' line is now at the top of the screen with the
-+cursor happily under the capital S. If you would like the cursor line (i.e.
-+the line which the cursor is on) in the middle of the screen again, you would
-+type {z.}. If you wanted the cursor line to be at the BOTTOM of the screen,
-+type {z-}. Try typing {z-z.z^M} and watch what happens.
-+
-+{^F}
-+
-+Section 8: {z} {m} {'}
-+
-+Note that the z command does not change the position of our cursor in the file
-+itself, it simply moves the cursor around on the screen by moving the contents
-+of the file around on the screen. The cursor stays on the same line of the
-+file when using the z command.
-+
-+This brings up an important point. There are two questions that the users of
-+vi continually need to know the answer to: "Where am I in the file?" and
-+"Where am I on the screen?" The cursor on your terminal shows the answer to
-+both questions. Some commands will move you around in the file, usually
-+changing the location of the cursor on the screen as well. Other commands
-+move the cursor around on the screen without changing your location in the
-+file.
-+
-+Now type {ma}. Your location in the file has been given the name 'a'. If you
-+type {'p'a} you will see the previous location we marked in section 7, and
-+then will be returned to the current location. (You will want to do a {z^M}
-+to repaint the screen afterwards.) Try it.
-+{^F}
-+
-+Section 9: {m} {''}
-+Now we can move about in our file pretty freely. By using the {m} command we
-+can give the current cursor position a lower-case-character name, like 'p',
-+'a', 'e', 'm', or 'b'. Using the {G} command preceded by a line number we can
-+look at any line in the file we like. Using the single quote command {'}
-+followed by a character used in an {m} command, we can return to any location
-+in the file we have marked.
-+
-+However, try {m3}, or {mM}. You should hear a beep, or bell. Only lower-case
-+letters are acceptable to the {m} and {'} commands: numbers, upper-case
-+letters, and special characters are not acceptable.
-+
-+If you type the {'} command with a character that is lower-case alphabetic but
-+that has not been used in an {m} command, or for which the 'marked' text has
-+been deleted, you will also get a beep. Try {'i}. You should get a beep
-+because the command {mi} has never been issued. (Unless you've been
-+experimenting.)
-+
-+The command {''} attempts to return you to the location at which you last
-+modified some part of your file. However, my experience has been that it is
-+difficult to predict exactly where you will end up.
-+Section 10: {^M} {-}
-+Now do {ma}, marking your position at the top of the screen. Now hit {^M} (or
-+return) until the cursor is right ...
-+* <- here, over/under the asterisk. Now
-+type {mb'a'b} and watch the cursor move from the asterisk to the top of the
-+screen and back again.
-+
-+The {^M} command moves the cursor to the beginning of the next line. Now type
-+{^M} until the cursor is right ...
-+* <- here. The command to move the cursor to the beginning of the
-+previous line is {-}. Practice moving the cursor around on the screen by using
-+{^M} and {-}. BE CAREFUL to not move the cursor OFF the screen just yet. If
-+you do, type {'az^M}.
-+
-+Now we can move to any line within the screen. Practice moving around in the
-+file using the {^F}, {^B}, {-}, {^M}, {z}, and {'} commands. When you are
-+fairly confident that you can get to where you need to be in the file, and
-+position the cursor on the screen where you want it type {'az^M^F} (which, of
-+course, moves you back to the beginning of this section, repositions the
-+cursor at the top of the screen, and advances you to the next section).
-+
-+Section 11: scrolling: {^M}
-+The cursor should now be on the S of 'Section 11', and this should be on the
-+first line of the screen. If it is not, do {^M} or {-} as appropriate to put
-+the cursor on the section line, and type {z^M}.
-+
-+Type {mc} to mark your place.
-+
-+Now type {^M} until the cursor is on the last line of this screen. Now do one
-+more {^M} and observe the result. This is called scrolling. When you
-+attempted to move to a line not displayed on the screen, the line at the top of
-+the screen was 'scrolled off', and a line at the bottom of the screen was
-+'scrolled on'. The top line with 'Section 11' should no longer be visible.
-+
-+Now type {'cz^M} to reset the screen and type {^F} for the next section.
-+
-+
-+
-+
-+
-+
-+
-+Section 12: {-} {z}
-+
-+The {-} command moves the cursor to the previous line in the file. Now type
-+{-}, which attempts to move the cursor to the previous line in this file.
-+However, that line is not on the screen. The resulting action will depend on
-+your terminal. (Do a {^Mz^M} to reposition the file). On intelligent
-+terminals (e.g. VT100s, Z19s, Concept 100s), a top line is 'scrolled on' and
-+the bottom line is 'scrolled off'. Other terminals, however, may not have
-+this 'reverse scrolling' feature. They will simply repaint the screen with
-+the cursor line in the middle of the screen. On such terminals it is
-+necessary to type {z^M} to get the cursor line back to the top of the screen.
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+Section 13:
-+Up until this point, the tutorial has always tried to make sure that the first
-+line of each screen has on it the section number and a list of the commands
-+covered in that section. This will no longer be strictly maintained. If you
-+want the section line at the top of the screen, you now know enough commands to
-+do it easily: do {^M} or {-} until the cursor is on the section line and
-+then {z^M}. Also, from this point on, it may not be the case that a {^F} will
-+put you at the beginning of the next section. Therefore, be aware of where you
-+are in the file as we look at other commands. You may have to find your way
-+back to a particular section without any help from the tutorial. If you do not
-+feel comfortable with this, then it is suggested that you practice moving from
-+section 1 to section 13, back and forth, using {^M}, {-}, {^F}, and {^B}
-+commands for a while.
-+
-+Also make liberal use of the mark command {m}: if, for example, you make a
-+habit of using {mz} to mark your current location in the file, then you will
-+always be able to return to that location with {'z} if the editor does
-+something strange and you have no idea where you are or what happened.
-+
-+And finally, the proscription against experimentation is hereby lifted: play
-+with the editor. Feel free to try out variations on the commands and move
-+around in the file. By this time you should be able to recover from any gross
-+errors.
-+
-+Section 14: {^E} {^Y} {^D} {^U}
-+Let us now look at a few other commands for moving around in the file, and
-+moving the file around on the screen. Note that the commands we have already
-+looked at are sufficient: you really don't need any more commands for looking
-+in a file. The following commands are not absolutely necessary. However,
-+they can make editing more convenient, and you should take note of their
-+existence. But it would be perfectly valid to decide to ignore them on this
-+first pass: you can learn them later when you see a need for them, if you ever
-+do.
-+
-+First, let's clear up some potentially confusing language. In at least one
-+place in the official document ('An Introduction to Display Editing with Vi'
-+by William Joy, and Mark Horton, September 1980), the expression "to scroll
-+down text" means that the cursor is moved down in your file. However, note
-+that this may result in the text on the screen moving UP. This use of the
-+word 'scroll' refers to the action of the cursor within the file. However,
-+another legitimate use of the word refers to the action of the text on the
-+screen. That is, if the lines on your screen move up toward the top of the
-+screen, this would be 'scrolling the screen up'. If the lines move down
-+toward the bottom of the screen, this would be refered to as scrolling down.
-+
-+I have tried to maintain the following jargon: 'scrolling' refers to what the
-+text does on the screen, not to what the cursor does within the file. For the
-+latter I will refer to the cursor 'moving', or to 'moving the cursor'. I
-+realize that this is not necessarily consistent with Joy and Horton, but they
-+were wrong.
-+
-+{^E} scrolls the whole screen up one line, keeping the cursor on the same line,
-+if possible. However, if the cursor line is the first line on the screen, then
-+the cursor is moved to the next line in the file. Try typing {^E}.
-+
-+{^Y} scrolls the screen down one line, keeping the cursor on the same line, if
-+possible. However, if the cursor line is the last line on the screen, then the
-+cursor is moved to the previous line in the file. Try it.
-+
-+{^D} moves the cursor down into the file, scrolling the screen up.
-+
-+{^U} moves the cursor up into the file, also scrolling the screen if the
-+terminal you are on has the reverse scroll capability. Otherwise the
-+screen is repainted.
-+
-+Note that {^E} and {^Y} move the cursor on the screen while trying to keep the
-+cursor at the same place in the file (if possible: however, the cursor can
-+never move off screen), while {^D} and {^U} keep the cursor at the same place
-+on the screen while moving the cursor within the file.
-+
-+Section 15: {/ .. /^M}
-+
-+Another way to position yourself in the file is by giving the editor a string
-+to search for. Type the following: {/Here 1/^M} and the cursor should end up
-+right ...........................here ^. Now type {/Section 15:/^M} and the
-+cursor will end up over/on .....................here ^. Now type {//^M} and
-+observe that the cursor is now over the capital S five lines above this line.
-+Typing {//^M} several more times will bounce the cursor back and forth between
-+the two occurrences of the string. In other words, when you type a string
-+between the two slashes, it is searched for. Typing the slashes with nothing
-+between them acts as if you had typed the previous string again.
-+
-+Observe that the string you type between the two slashes is entered on the
-+bottom line of the screen. Now type {/Search for x /^M} except replace the 'x'
-+in the string with some other character, say 'b'. The message "Pattern not
-+found" should appear on the bottom of the screen. If you hadn't replaced the
-+'x', then you would have found the string. Try it.
-+
-+Section 16: {? .. ?^M} {n} (search strings: ^ $)
-+
-+When you surround the sought-for string with slashes as in {/Search/}, the
-+file is searched beginning from your current position in the file. If the
-+string is not found by the end of the file, searching is restarted at the
-+beginning of the file. However, if you do want the search to find the
-+PREVIOUS rather than the NEXT occurrence of the string, surround the string
-+with question marks instead of slash marks.
-+
-+Below are several occurrences of the same string.
-+Here 2 Here 2 Here 2
-+ Here 2 Here 2.
-+Observe the effect of the following search commands (try them in the
-+sequence shown):
-+{/Here 2/^M} {//^M} {??^M}
-+{/^Here 2/^M} {//^M} {??^M}
-+{/Here 2$/^M} {//^M} {??^M}
-+
-+The first command looks for the next occurrence of the string 'Here 2'.
-+However the second line of commands looks for an occurrence of 'Here 2' that
-+is at the beginning of the line. When the up-arrow is the first character of
-+a search string it stands for the beginning of the line. When the dollar-sign
-+is the last character of the search string it stands for the end of the line.
-+Therefore, the third line of commands searches for the string only when it is
-+at the end of the line. Since there is only one place the string begins a
-+line, and only one place the string ends the line, subsequent {//^M} and
-+{??^M} will find those same strings over and over.
-+
-+The {n} command will find the next occurrence of the / or ? search
-+string. Try {/Here 2/^M} followed by several {n} and observe the
-+effect. Then try {??^M} followed by several {n}. The {n} command
-+remembers the direction of the last search. It is just a way to save a
-+few keystrokes.
-+
-+Section 17: \ and magic-characters in search strings
-+
-+Now type {/Here 3$/^M}. You might expect the cursor to end up
-+right......^ here. However, you will get "Pattern not found" at the bottom of
-+the screen. Remember that the dollar-sign stands for the end of the line.
-+Somehow, you must tell vi that you do not want the end of the line, but a
-+dollar-sign. In other words, you must take away the special meaning that the
-+dollar-sign has for the search mechanism. You do this (for any special
-+character, including the up-arrow ^) by putting a back-slash ('\', not '/') in
-+front of the character.
-+
-+Now try {/Here 3\$/^M} and you should end up nine lines above this one. Try
-+{//^M} and note that it returns you to the same place, and not to the first
-+line of this paragraph: the back-slash character is not part of the search
-+string and will not be found. To find the string in the first line of this
-+paragraph, type {/Here 3\\\$/^M}. There are three back-slashes: the first takes
-+away the special meaning from the second, and the third takes away the special
-+meaning from the dollar-sign.
-+
-+Following is a list of the characters that have special meanings in search
-+strings. If you wish to find a string containing one of these characters, you
-+will have to be precede the character with a backslash. These characters are
-+called magic characters because of the fun and games you can have with them
-+and they can have with you, if you aren't aware of what they do.
-+
-+ ^ - (up-arrow) beginning of a line
-+ $ - (dollar-sign) end of a line
-+ . - (period) matches any character
-+ \ - (backslant) the escape character itself
-+ [ - (square bracket) for finding patterns (see section #SEARCH)
-+ ] - (square bracket) ditto
-+ * - (asterisk) ditto
-+
-+Without trying to explain it here, note that {:set nomagic^M} turns off the
-+special meanings of all but the ^ up-arrow, $ dollar-sign, and backslash
-+characters.
-+
-+Section 18: {: (colon commands)} {ZZ}
-+
-+In this section we will discuss getting into and out of the editor in more
-+detail. If you are editing a file and wish to save the results the command
-+sequence {:w^M} writes the current contents of the file out to disk, using the
-+file name you used when you invoked the editor. That is, if you are at the
-+command level in Unix, and you invoke vi with {vi foo} where foo is the name
-+of the file you wish to edit, then foo is the name of the file used by the
-+{:w^M} command.
-+
-+If you are done, the write and quit commands can be combined into a single
-+command {:wq^M}. An even simpler way is the command {ZZ} (two capital Z's).
-+
-+If, for some reason, you wish to exit without saving any changes you have made,
-+{:q!^M} does the trick. If you have not made any changes, the exclamation
-+point is not necessary: {:q^M}. Vi is pretty good about not letting you
-+get out without warning you that you haven't saved your file.
-+
-+We have mentioned before that you are currently in the vi editor, editing a
-+file. If you wish to start the tutorial over from the very beginning, you
-+could {ZZ}, and then type {vi.tut beginner} in response to the Unix prompt.
-+This will create a fresh copy of this file for you, which might be necessary
-+if you accidentally destroyed the copy you were working with. Just do a
-+search for the last section you were in: e.g. {/Section 18:/^Mz^M}.
-+
-+Section 19: {H} {M} {L}
-+
-+Here are a few more commands that will move you around on the screen. Again,
-+they are not absolutely necessary, but they can make screen positioning easier:
-+
-+{H} - puts the cursor at the top of the screen (the 'home' position)
-+
-+{M} - puts the cursor in the middle of the screen
-+
-+{L} - puts the cursor at the bottom of the screen.
-+
-+Try typing {HML} and watch the cursor.
-+
-+Try typing {5HM5L} and note that 5H puts you five lines from the top of the
-+screen, and 5L puts you five lines from the bottom of the screen.
-+
-+Section 20: {w} {b} {0} {W} {B} {e} {E} {'} {`}
-+
-+Up to this point we have concentrated on positioning in the file, and
-+positioning on the screen. Now let's look at positioning in a line. Put the
-+cursor at the beginning of the following line and type {z^M}:
-+
-+This is a test line: your cursor should initially be at its beginning.
-+
-+The test line should now be at the top of your screen. Type {w} several times.
-+Note that it moves you forward to the beginning of the next word. Now type
-+{b} (back to the beginning of the word) several times till you are at the
-+beginning of the line. (If you accidentally type too many {b}, type {w} until
-+you are on the beginning of the line again.) Type {wwwww} (five w's) and note
-+that the cursor is now on the colon in the sentence. The lower-case w command
-+moves you forward one word, paying attention to certain characters such as
-+colon and period as delimiters and counting them as words themselves. Now
-+type {0} (zero, not o 'oh'): this moves you to the beginning of the current
-+line. Now type {5w} and notice that this has the effect of repeating {w} five
-+times and that you are now back on the colon. Type {0} (zero) again. To
-+ignore the delimiters and to move to the beginning of the next word using only
-+blanks, tabs and carriage-returns (these are called white-space characters) to
-+delimit the words, use the {W} command: upper-case W. {B} takes you back a
-+word using white-space characters as word delimiters.
-+
-+Note that the commands {wbWB} do not stop at the beginning or end of a line:
-+they will continue to the next word on the next line in the direction specified
-+(a blank line counts as a word).
-+
-+If you are interested in the END of the word, and not the BEGINNING, then use
-+the {e} and {E} commands. These commands only move forward and there are no
-+corresponding 'reverse search' commands for the end of a word.
-+
-+Also, we have been using the {'} command to move the cursor to a position that
-+we have previously marked with the {m} command. However, position the cursor
-+in the middle of a line (any line, just pick one) and type {mk}, marking that
-+position with the letter k. Now type a few returns {^M} and type {'k}.
-+Observe that the cursor is now at the beginning of the line that you marked.
-+Now try {`k}: note that this is the reverse apostrophe, or back-quote, or grave
-+accent, or whatever you want to call it. Also note that it moves you to the
-+character that was marked, not just to the line that was marked.
-+
-+In addition, the {``} command works just like the {''} command except that you
-+are taken to the exact character, not just to the line. (I'm still not
-+sure which exact character, just as I'm still not sure which line.)
-+
-+Section 21: {l} {k} {j} {h}
-+
-+There are several commands to move around on the screen on a character by
-+character basis:
-+
-+l - moves the cursor one character to the RIGHT
-+k - moves the cursor UP one line
-+j - moves the cursor DOWN one line
-+h - moves the cursor one character to the LEFT
-+
-+Section 22: {i} {a} {I} {A} {o} {O} ^[ (escape key)
-+
-+For this and following sections you will need to use the ESCAPE key on your
-+terminal. It is usually marked ESC. Since the escape key is the same as
-+typing {^[} we will use ^[ for the escape key.
-+
-+Probably the most often used command in an editor is the insert command. Below
-+are two lines of text, the first correct, the second incorrect. Position your
-+cursor at the beginning of Line 1 and type {z^M}.
-+
-+Line 1: This is an example of the insert command.
-+Line 2: This is an of the insert command.
-+
-+To make line 2 look like line 1, we are going to insert the characters
-+'example ' before the word 'of'. So, now move the cursor so that it is
-+positioned on the 'o' of 'of'. (You can do this by typing {^M} to move
-+to the beginning of line 2, followed by {6w} or {wwwwww} to position the cursor
-+on the word 'of'.)
-+
-+Now carefully type the following string and observe the effects:
-+ {iexample ^[} (remember: ^[ is the escape key)}
-+The {i} begins the insert mode, and 'example ' is inserted into the line:
-+be sure to notice the blank in 'example '. The ^[ ends insertion mode,
-+and the line is updated to include the new string. Line 1 should look exactly
-+like Line 2.
-+
-+Move the cursor to the beginning of Line 3 below and type {z^M}:
-+
-+Line 3: These lines are examples for the 'a' command.
-+Line 4: These line are examples for the '
-+
-+We will change line four to look like line three by using the append command.
-+We need to append an 's' to the word 'line'. Position the cursor on the 'e'
-+of 'line'. You can do this in several ways, one way is the following:
-+First, type {/line /^M}. This puts us on the word 'line' in Line 4
-+(the blank in the search string is important!). Next, type {e}. The 'e' puts
-+us at the end of the word. Now, type {as^[ (^[ is the escape character)}.
-+The 'a' puts us in insert mode, AFTER the current character. We appended the
-+'s', and the escape ^[ ended the insert mode.
-+
-+The difference between {i} (insert) and {a} (append) is that {i} begins
-+inserting text BEFORE the cursor, and {a} begins inserting AFTER the cursor.
-+
-+Now type {Aa' command.^[}. The cursor is moved to the end of the line and the
-+string following {A} is inserted into the text. Line 4 should now look like
-+line 3.
-+
-+Just as {A} moves you to the end of the line to begin inserting, {I} would
-+begin inserting at the FRONT of the line.
-+
-+To begin the insertion of a line after the cursor line, type {o}. To insert a
-+line before the cursor line, type {O}. In other words {o123^[} is equivalent
-+to {A^M123^[}, and {O123^[} is equivalent to {I123^M^[}. The text after the
-+{o} or {O} is ended with an escape ^[.
-+
-+This paragraph contains information that is terminal dependent: you will just
-+have to experiment to discover what your terminal does. Once in the insert
-+mode, if you make a mistake in the typing, ^H will delete the previous
-+character up to the beginning of the current insertion. ^W will delete the
-+previous word, and one of ^U, @, or ^X will delete the current line (up to the
-+beginning of the current insertion). You will need to experiment with ^U, @,
-+and ^X to determine which works for your terminal.
-+
-+Section 23: {f} {x} {X} {w} {l} {r} {R} {s} {S} {J}
-+
-+Position the cursor at the beginning of line 5 and {z^M}:
-+
-+Line 5: The line as it should be.
-+Line 6: The line as it shouldn't be.
-+
-+To make Line 6 like Line 5, we have to delete the 'n', the apostrophe, and the
-+'t'. There are several ways to position ourselves at the 'n'. Choose
-+whichever one suits your fancy:
-+
-+{/n't/^M}
-+{^M7w6l} or {^M7w6 } (note the space)
-+{^M3fn} (finds the 3rd 'n' on the line)
-+
-+Now {xxx} will delete the three characters, as will {3x}.
-+
-+Note that {X} deletes the character just BEFORE the cursor, as opposed
-+to the character AT the cursor.
-+
-+Position the cursor at line 7 and {z^M}:
-+
-+Line 7: The line as it would be.
-+Line 8: The line as it could be.
-+
-+To change line 8 into line 7 we need to change the 'c' in 'could' into a 'w'.
-+The 'r' (replace) command was designed for this. Typing {rc} is the same as
-+typing {xic^[} (i.e. delete the 'bad' character and insert the correct
-+new character). Therefore, assuming that you have positioned the cursor on the
-+'c' of 'could', the easiest way to change 'could' into 'would' is {rw}.
-+
-+If you would like to now change the 'would' into 'should', use the substitute
-+command, 's': {ssh^[}. The difference between 'r' and 's' is that 'r'
-+(replace) replaces the current character with another character, while 's'
-+(substitute) substitutes the current character with a string, ended with an
-+escape.
-+
-+The capital letter version of replace {R} replaces each character by a
-+character one at a time until you type an escape, ^[. The 'S' command
-+substitutes the whole line.
-+
-+Position your cursor at the beginning of line 9 and {z^M}.
-+
-+Line 9: Love is a many splendored thing.
-+Line 10: Love is a most splendored thing.
-+
-+To change line 10 into line 9, position the cursor at the beginning of 'most',
-+and type {Rmany^[}.
-+
-+You may have noticed that, when inserting text, a new line is formed by typing
-+{^M}. When changing, replacing, or substituting text you can make a new line
-+by typing {^M}. However, neither {x} nor {X} will remove ^M to make two lines
-+into one line. To do this, position the cursor on the first of the two lines
-+you wish to make into a single line and type {J} (uppercase J for 'Join').
-+
-+Section 24: {u} {U}
-+
-+Finally, before we review, let's look at the undo command. Position
-+your cursor on line 11 below and {z^M}.
-+
-+Line 11: The quick brown fox jumped over the lazy hound dog.
-+Line 12: the qwick black dog dumped over the laxy poune fox.
-+
-+Type the following set of commands, and observe carefully the effect of each
-+of the commands:
-+
-+{/^Line 12:/^M} {ft} {rT} {fw} {ru} {w} {Rbrown fox^[} {w} {rj}
-+{fx} {rz} {w} {Rhound dog^[}
-+
-+Line 12 now matches line 11. Now type {U} - capital 'U'. And line 12 now
-+looks like it did before you typed in the command strings. Now type:
-+
-+{ft} {rT} {fw} {ru} {^M} {^M}
-+
-+and then type {u}: the cursor jumps back to the line containing the second
-+change you made and 'undoes' it. That is, {U} 'undoes' all the changes on the
-+line, and {u} 'undoes' only the last change. Type {u} several times and
-+observe what happens: {u} can undo a previous {u}!
-+
-+Caveat: {U} only works as long as the cursor is still on the line. Move the
-+cursor off the line and {U} will have no effect, except to possibly beep at
-+you. However, {u} will undo the last change, no matter where it occurred.
-+
-+Section 25: review
-+
-+At this point, you have all the commands you need in order to make use of vi.
-+The remainder of this tutorial will discuss variations on these commands as
-+well as introduce new commands that make the job of editing more efficient.
-+Here is a brief review of the basic commands we have covered. They are listed
-+in the order of increasing complexity and/or decreasing necessity (to say that
-+a command is less necessary is not to say that it is less useful!). These
-+commands allow you to comfortably edit any text file. There are other
-+commands that will make life easier but will require extra time to learn,
-+obviously. You may want to consider setting this tutorial aside for several
-+weeks and returning to it later after gaining experience with vi and getting
-+comfortable with it. The convenience of some of the more exotic commands may
-+then be apparent and worth the extra investment of time and effort
-+required to master them.
-+
-+to get into the editor from Unix: {vi filename}
-+to exit the editor
-+ saving all changes {ZZ} or {:wq^M}
-+ throwing away all changes {:q!^M}
-+ when no changes have been made {:q^M}
-+save a file without exiting the editor {:w^M}
-+write the file into another file {:w filename^M}
-+insert text
-+ before the cursor {i ...text... ^[}
-+ at the beginning of the line {I ...text... ^[}
-+ after the cursor (append) {a ...text... ^[}
-+ at the end of the line {A ...text... ^[}
-+ after the current line {o ...text... ^[}
-+ before the current line {O ...text... ^[}
-+delete the character ...
-+ under the cursor {x}
-+ to the left of the cursor {X}
-+delete n characters {nx} or {nX} (for n a number)
-+make two lines into one line (Join) {J}
-+find a string in the file ...
-+ searching forward {/ ...string... /^M}
-+ searching backwards {? ...string... ?^M}
-+repeat the last search command {n}
-+repeat the last search command in the
-+ opposite direction {N}
-+find the character c on this line ...
-+ searching forward {fc}
-+ searching backward {Fc}
-+repeat the last 'find character' command {;}
-+replace a character with character x {rx}
-+substitute a single character with text {s ...text... ^[}
-+substitute n characters with text {ns ...text... ^[}
-+replace characters one-by-one with text {R ...text... ^[}
-+undo all changes to the current line {U}
-+undo the last single change {u}
-+move forward in the file a "screenful" {^F}
-+move back in the file a "screenful" {^B}
-+move forward in the file one line {^M} or {+}
-+move backward in the file one line {-}
-+move to the beginning of the line {0}
-+move to the end of the line {$}
-+move forward one word {w}
-+move forward one word, ignoring punctuation {W}
-+move forward to the end of the next word {e}
-+to the end of the word, ignoring punctuation{E}
-+move backward one word {b}
-+move back one word, ignoring punctuation {B}
-+return to the last line modified {''}
-+scroll a line onto the top of the screen {^Y}
-+scroll a line onto the bottom of the screen {^E}
-+move "up" in the file a half-screen {^U}
-+move "down" in the file a half-screen {^D}
-+move the cursor to the top screen line {H}
-+move the cursor to the bottom screen line {L}
-+move the cursor to the middle line {M}
-+move LEFT one character position {h} or {^H}
-+move RIGHT one character position {l} or { }
-+move UP in the same column {k} or {^P}
-+move DOWN in the same column {j} or {^N}
-+mark the current position, name it x {mx}
-+move to the line marked/named x {'x}
-+move to the character position named x {`x}
-+move to the beginning of the file {1G}
-+move to the end of the file {G}
-+move to line 23 in the file {23G}
-+repaint the screen with the cursor line
-+ at the top of the screen {z^M}
-+ in the middle of the screen {z.}
-+ at the bottom of the screen {z-}
-+
-+More information on vi can be found in the file vi.advanced, which you can
-+peruse at your leisure. From UNIX, type {vi.tut advanced^M}.
diff --git a/testing/nvi/03db4.patch b/testing/nvi/03db4.patch
deleted file mode 100644
index 474011b66dc..00000000000
--- a/testing/nvi/03db4.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: libdb4 compatibility adjustments.
-
---- nvi-1.81.6.orig/common/msg.c 2009-02-26 14:26:58.350336128 +0100
-+++ nvi-1.81.6/common/msg.c 2009-02-26 14:29:05.235335829 +0100
-@@ -724,9 +724,18 @@
- p = buf;
- } else
- p = file;
-+ if (access(p, F_OK) != 0) {
-+ if (first) {
-+ first = 0;
-+ return (1);
-+ }
-+ sp->db_error = ENOENT;
-+ msgq_str(sp, M_DBERR, p, "%s");
-+ return (1);
-+ }
- if ((sp->db_error = db_create(&db, 0, 0)) != 0 ||
- (sp->db_error = db->set_re_source(db, p)) != 0 ||
-- (sp->db_error = db_open(db, NULL, DB_RECNO, 0, 0)) != 0) {
-+ (sp->db_error = db_open(db, NULL, DB_RECNO, DB_CREATE, 0)) != 0) {
- if (first) {
- first = 0;
- return (1);
diff --git a/testing/nvi/04confdefs.patch b/testing/nvi/04confdefs.patch
deleted file mode 100644
index d5dd21b80b5..00000000000
--- a/testing/nvi/04confdefs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Help configure by decreeing that some headers are present.
-
-diff -Naur nvi-1.81.6.orig/build/confdefs.h nvi-1.81.6/build/confdefs.h
---- nvi-1.81.6.orig/build/confdefs.h 1970-01-01 01:00:00.000000000 +0100
-+++ nvi-1.81.6/build/confdefs.h 2008-05-01 18:05:00.000000000 +0200
-@@ -0,0 +1,3 @@
-+
-+#define HAVE_SYS_MMAN_H 1
-+#define HAVE_SYS_SELECT_H 1
diff --git a/testing/nvi/06default_value_escapetime.patch b/testing/nvi/06default_value_escapetime.patch
deleted file mode 100644
index a551d421eeb..00000000000
--- a/testing/nvi/06default_value_escapetime.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Increase the default 'escapetime' setting to accommodate slow lines.
-
-diff -Naur nvi-1.81.6.orig/common/options.c nvi-1.81.6/common/options.c
---- nvi-1.81.6.orig/common/options.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/common/options.c 2008-05-01 18:06:18.000000000 +0200
-@@ -356,7 +356,7 @@
- (void)SPRINTF(b2, SIZE(b2),
- L("directory=%s"), (s = getenv("TMPDIR")) == NULL ? _PATH_TMP : s);
- OI(O_TMP_DIRECTORY, b2);
-- OI(O_ESCAPETIME, L("escapetime=1"));
-+ OI(O_ESCAPETIME, L("escapetime=3"));
- OI(O_KEYTIME, L("keytime=6"));
- OI(O_MATCHTIME, L("matchtime=7"));
- (void)SPRINTF(b2, SIZE(b2), L("msgcat=%s"), _PATH_MSGCAT);
diff --git a/testing/nvi/07flush_cache.patch b/testing/nvi/07flush_cache.patch
deleted file mode 100644
index 7479177b83d..00000000000
--- a/testing/nvi/07flush_cache.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/common/db1.c nvi-1.81.6/common/db1.c
---- nvi-1.81.6.orig/common/db1.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/common/db1.c 2008-05-01 18:07:58.000000000 +0200
-@@ -262,8 +262,7 @@
- }
-
- /* Flush the cache, update line count, before screen update. */
-- if (lno <= ep->c_lno)
-- ep->c_lno = OOBLNO;
-+ ep->c_lno = OOBLNO;
- if (ep->c_nlines != OOBLNO)
- --ep->c_nlines;
-
-@@ -314,8 +313,7 @@
- }
-
- /* Flush the cache, update line count, before screen update. */
-- if (lno < ep->c_lno)
-- ep->c_lno = OOBLNO;
-+ ep->c_lno = OOBLNO;
- if (ep->c_nlines != OOBLNO)
- ++ep->c_nlines;
-
-@@ -386,8 +384,7 @@
- }
-
- /* Flush the cache, update line count, before screen update. */
-- if (lno >= ep->c_lno)
-- ep->c_lno = OOBLNO;
-+ ep->c_lno = OOBLNO;
- if (ep->c_nlines != OOBLNO)
- ++ep->c_nlines;
-
-@@ -459,8 +456,7 @@
- }
-
- /* Flush the cache, before logging or screen update. */
-- if (lno == ep->c_lno)
-- ep->c_lno = OOBLNO;
-+ ep->c_lno = OOBLNO;
-
- /* File now dirty. */
- if (F_ISSET(ep, F_FIRSTMODIFY))
diff --git a/testing/nvi/08lfs.patch b/testing/nvi/08lfs.patch
deleted file mode 100644
index e5d9399a98b..00000000000
--- a/testing/nvi/08lfs.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Insert a safety check to save large files from being overwritten.
-
-diff -Naur nvi-1.81.6.orig/common/exf.c nvi-1.81.6/common/exf.c
---- nvi-1.81.6.orig/common/exf.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/common/exf.c 2008-05-01 18:09:55.000000000 +0200
-@@ -157,6 +157,18 @@
- */
- if (file_spath(sp, frp, &sb, &exists))
- return (1);
-+ /*
-+ * On LFS systems, it's possible that stat returned an error because
-+ * the file is >2GB, which nvi would normally treat as "doesn't exist"
-+ * and eventually overwrite. That's no good. Rather than mess with
-+ * every stat() call in file_spath, we'll just check again here.
-+ */
-+ if (!exists && stat(frp->name, &sb)) {
-+ if (errno == EOVERFLOW) {
-+ msgq(sp, M_ERR, "File too large (>2GB, probably)");
-+ goto err;
-+ }
-+ }
-
- /*
- * Check whether we already have this file opened in some
diff --git a/testing/nvi/08safe_printf.patch b/testing/nvi/08safe_printf.patch
deleted file mode 100644
index 13ef3e1741e..00000000000
--- a/testing/nvi/08safe_printf.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/common/exf.c nvi-1.81.6/common/exf.c
---- nvi-1.81.6.orig/common/exf.c 2008-05-01 18:10:20.000000000 +0200
-+++ nvi-1.81.6/common/exf.c 2008-05-01 18:10:30.000000000 +0200
-@@ -1075,7 +1075,7 @@
- *--s = '.';
- }
- }
-- msgq(sp, M_INFO, s);
-+ msgq(sp, M_INFO, "%s", s);
- if (nf)
- FREE_SPACE(sp, p, 0);
- return (0);
diff --git a/testing/nvi/08tempfile_umask.patch b/testing/nvi/08tempfile_umask.patch
deleted file mode 100644
index 3debcb705e9..00000000000
--- a/testing/nvi/08tempfile_umask.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/common/exf.c nvi-1.81.6/common/exf.c
---- nvi-1.81.6.orig/common/exf.c 2008-05-01 18:10:45.000000000 +0200
-+++ nvi-1.81.6/common/exf.c 2008-05-01 18:13:23.000000000 +0200
-@@ -207,16 +207,21 @@
- */
- oname = frp->name;
- if (LF_ISSET(FS_OPENERR) || oname == NULL || !exists) {
-+ mode_t orig_umask;
- if (opts_empty(sp, O_TMP_DIRECTORY, 0))
- goto err;
-+ orig_umask = umask(0);
-+ umask(orig_umask & 0177);
- (void)snprintf(tname, sizeof(tname),
- "%s/vi.XXXXXX", O_STR(sp, O_TMP_DIRECTORY));
- if ((fd = mkstemp(tname)) == -1) {
-+ umask(orig_umask);
- msgq(sp, M_SYSERR,
- "237|Unable to create temporary file");
- goto err;
- }
- (void)close(fd);
-+ umask(orig_umask);
-
- if (frp->name == NULL)
- F_SET(frp, FR_TMPFILE);
diff --git a/testing/nvi/09casting.patch b/testing/nvi/09casting.patch
deleted file mode 100644
index 9f0b217149c..00000000000
--- a/testing/nvi/09casting.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/vi/v_ch.c nvi-1.81.6/vi/v_ch.c
---- nvi-1.81.6.orig/vi/v_ch.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/vi/v_ch.c 2008-05-01 18:14:03.000000000 +0200
-@@ -165,7 +165,7 @@
- endp = (startp = p) + len;
- p += vp->m_start.cno;
- for (cnt = F_ISSET(vp, VC_C1SET) ? vp->count : 1; cnt--;) {
-- while (++p < endp && *p != key);
-+ while (++p < endp && *p != (char) key);
- if (p == endp) {
- notfound(sp, key);
- return (1);
-@@ -247,7 +247,7 @@
- endp = p - 1;
- p += vp->m_start.cno;
- for (cnt = F_ISSET(vp, VC_C1SET) ? vp->count : 1; cnt--;) {
-- while (--p > endp && *p != key);
-+ while (--p > endp && *p != (char) key);
- if (p == endp) {
- notfound(sp, key);
- return (1);
diff --git a/testing/nvi/10no_one_line_visual.patch b/testing/nvi/10no_one_line_visual.patch
deleted file mode 100644
index 41a638d8443..00000000000
--- a/testing/nvi/10no_one_line_visual.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Catch segfaults when the screen is only one line high.
-
-diff -Naur nvi-1.81.6.orig/vi/vi.c nvi-1.81.6/vi/vi.c
---- nvi-1.81.6.orig/vi/vi.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/vi/vi.c 2008-05-01 18:15:14.000000000 +0200
-@@ -974,6 +974,14 @@
- sp->rows = vip->srows = O_VAL(sp, O_LINES);
- sp->cols = O_VAL(sp, O_COLUMNS);
- sp->t_rows = sp->t_minrows = O_VAL(sp, O_WINDOW);
-+ /*
-+ * To avoid segfaults on terminals with only one line,
-+ * catch this corner case now and die explicitly.
-+ */
-+ if (sp->t_rows == 0) {
-+ (void)fprintf(stderr, "Error: Screen too small for visual mode.\n");
-+ return 1;
-+ }
- if (sp->rows != 1) {
- if (sp->t_rows > sp->rows - 1) {
- sp->t_minrows = sp->t_rows = sp->rows - 1;
diff --git a/testing/nvi/11backward_sentence_moving.patch b/testing/nvi/11backward_sentence_moving.patch
deleted file mode 100644
index d3b563bf0a2..00000000000
--- a/testing/nvi/11backward_sentence_moving.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/vi/v_sentence.c nvi-1.81.6/vi/v_sentence.c
---- nvi-1.81.6.orig/vi/v_sentence.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/vi/v_sentence.c 2008-05-01 18:15:37.000000000 +0200
-@@ -291,7 +291,7 @@
- * we can end up where we started. Fix it.
- */
- if (vp->m_start.lno != cs.cs_lno ||
-- vp->m_start.cno != cs.cs_cno)
-+ vp->m_start.cno > cs.cs_cno)
- goto okret;
-
- /*
diff --git a/testing/nvi/12horiz_scroll_count.patch b/testing/nvi/12horiz_scroll_count.patch
deleted file mode 100644
index cad49588bfd..00000000000
--- a/testing/nvi/12horiz_scroll_count.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/vi/vs_refresh.c nvi-1.81.6/vi/vs_refresh.c
---- nvi-1.81.6.orig/vi/vs_refresh.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/vi/vs_refresh.c 2008-05-01 18:16:01.000000000 +0200
-@@ -569,7 +569,7 @@
- * for the number option offset.
- */
- cnt = vs_columns(sp, NULL, LNO, &CNO, NULL);
-- if (O_ISSET(sp, O_NUMBER))
-+ if (O_ISSET(sp, O_NUMBER) && cnt)
- cnt -= O_NUMBER_LENGTH;
-
- /* Adjust the window towards the beginning of the line. */
diff --git a/testing/nvi/13widechar_horrors.patch b/testing/nvi/13widechar_horrors.patch
deleted file mode 100644
index d6b5f33b5b6..00000000000
--- a/testing/nvi/13widechar_horrors.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: This patch tries to cope with the fact that widechar support
-in nvi is at best rudimentary.
-Hunk 1)
-* Due to "ch = *t", this code is not wide-char aware, so
-cast the value to a proper type so the KEY_ macros make
-the right choice.
-Hunk 2)
-* Printing of the in-/decreased number back into the screen
-buffer is not widechar-aware, either. Add a dirty fix.
-Cf. #497349.
-
---- nvi-1.81.6.orig/vi/vs_msg.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/vi/vs_msg.c 2009-03-01 14:51:08.211414132 +0100
-@@ -472,10 +472,10 @@
- */
- if (ch == '\t')
- ch = ' ';
-- chlen = KEY_LEN(sp, ch);
-+ chlen = KEY_LEN(sp, (unsigned char)ch);
- if (cbp + chlen >= ecbp)
- FLUSH;
-- for (kp = KEY_NAME(sp, ch); chlen--;)
-+ for (kp = KEY_NAME(sp, (unsigned char)ch); chlen--;)
- *cbp++ = *kp++;
- }
- if (cbp > cbuf)
---- nvi-1.81.6.orig/vi/v_increment.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/vi/v_increment.c 2009-03-01 15:12:50.950415874 +0100
-@@ -57,7 +57,7 @@
- long change, ltmp, lval;
- size_t beg, blen, end, len, nlen, wlen;
- int base, isempty, rval;
-- char *ntype, nbuf[100];
-+ char *ntype, nbuf[100 * sizeof(CHAR_T)];
- CHAR_T *bp, *p, *t;
-
- /* Validate the operator. */
-@@ -202,7 +202,7 @@
- /* If we cross 0, signed numbers lose their sign. */
- if (lval == 0 && ntype == fmt[SDEC])
- ntype = fmt[DEC];
-- nlen = snprintf(nbuf, sizeof(nbuf), ntype, lval);
-+ nlen = snprintf(nbuf, sizeof(nbuf)/sizeof(CHAR_T), ntype, lval);
- } else {
- if ((nret = nget_uslong(sp, &ulval, t, NULL, base)) != NUM_OK)
- goto err;
-@@ -224,7 +224,15 @@
- if (base == 16)
- wlen -= 2;
-
-- nlen = snprintf(nbuf, sizeof(nbuf), ntype, wlen, ulval);
-+ nlen = snprintf(nbuf, sizeof(nbuf)/sizeof(CHAR_T), ntype, wlen, ulval);
-+ }
-+
-+ /* Inflate the printed char buffer to CHAR_T elements if necessary */
-+ if (sizeof(CHAR_T) > sizeof(char)) {
-+ int nlen_inflate;
-+ for (nlen_inflate = nlen; nlen_inflate >= 0; nlen_inflate--) {
-+ ((CHAR_T *)nbuf)[nlen_inflate] = nbuf[nlen_inflate];
-+ }
- }
-
- /* Build the new line. */
diff --git a/testing/nvi/14private_regex_fixes.patch b/testing/nvi/14private_regex_fixes.patch
deleted file mode 100644
index b98f5531666..00000000000
--- a/testing/nvi/14private_regex_fixes.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Fixes to the private regex library; includes fix for #523934.
-
-diff -Naur regex.orig/regcomp.c regex/regcomp.c
---- nvi-1.81.6.orig/regex/regcomp.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/regex/regcomp.c 2008-05-01 18:37:57.000000000 +0200
-@@ -606,7 +606,8 @@
- REQUIRE(starordinary, REG_BADRPT);
- /* FALLTHROUGH */
- default:
-- ordinary(p, c &~ BACKSL);
-+ /* ordinary(p, c &~ BACKSL); -- Fix potential overflow */
-+ ordinary(p, c & 0xff);
- break;
- }
-
-diff -Naur regex.orig/regexec.c regex/regexec.c
---- nvi-1.81.6.orig/regex/regexec.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/regex/regexec.c 2008-05-01 18:38:00.000000000 +0200
-@@ -63,7 +63,7 @@
-
- /* macros for manipulating states, small version */
- #define states int
--#define states1 states /* for later use in regexec() decision */
-+typedef states states1; /* for later use in regexec() decision */
- #define CLEAR(v) ((v) = 0)
- #define SET0(v, n) ((v) &= ~(1 << (n)))
- #define SET1(v, n) ((v) |= 1 << (n))
diff --git a/testing/nvi/15search_word.patch b/testing/nvi/15search_word.patch
deleted file mode 100644
index f782978ff7b..00000000000
--- a/testing/nvi/15search_word.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Al Viro <viro@ZenIV.linux.org.uk>
-Subject: Fix {^A} command. (End-of-word was not included in search
-regexp leading to false positives.)
-
---- nvi-1.81.6.orig/vi/v_search.c 2007-11-18 11:41:42.000000000 -0500
-+++ nvi-1.81.6/vi/v_search.c 2009-03-05 15:37:37.000000000 -0500
-@@ -322,15 +322,16 @@
- v_searchw(SCR *sp, VICMD *vp)
- {
- size_t blen, len;
-+ size_t olen = STRLEN(VIP(sp)->keyw);
- int rval;
- CHAR_T *bp, *p;
-
-- len = VIP(sp)->klen + RE_WSTART_LEN + RE_WSTOP_LEN;
-+ len = olen + RE_WSTART_LEN + RE_WSTOP_LEN;
- GET_SPACE_RETW(sp, bp, blen, len);
- MEMCPY(bp, RE_WSTART, RE_WSTART_LEN);
- p = bp + RE_WSTART_LEN;
-- MEMCPY(p, VIP(sp)->keyw, VIP(sp)->klen);
-- p += VIP(sp)->klen;
-+ MEMCPY(p, VIP(sp)->keyw, olen);
-+ p += olen;
- MEMCPY(p, RE_WSTOP, RE_WSTOP_LEN);
-
- rval = v_search(sp, vp, bp, len, SEARCH_SET, FORWARD);
diff --git a/testing/nvi/16manpage_errors.patch b/testing/nvi/16manpage_errors.patch
deleted file mode 100644
index e167c5f1421..00000000000
--- a/testing/nvi/16manpage_errors.patch
+++ /dev/null
@@ -1,767 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Fix a truckload of roff markup glitches.
-
-diff -Naur nvi-1.81.6.orig/docs/vi.man/vi.1 nvi-1.81.6/docs/vi.man/vi.1
---- nvi-1.81.6.orig/docs/vi.man/vi.1 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/docs/vi.man/vi.1 2008-05-01 18:17:59.000000000 +0200
-@@ -17,35 +17,35 @@
- .SH SYNOPSIS
- .B ex
- [\c
--.B -eFRrSsv\c
-+.B \-eFRrSsv\c
- ] [\c
--.BI -c " cmd"\c
-+.BI \-c " cmd"\c
- ] [\c
--.BI -t " tag"\c
-+.BI \-t " tag"\c
- ] [\c
--.BI -w " size"\c
-+.BI \-w " size"\c
- ] [file ...]
- .br
- .B vi
- [\c
--.B -eFlRrSv\c
-+.B \-eFlRrSv\c
- ] [\c
--.BI -c " cmd"\c
-+.BI \-c " cmd"\c
- ] [\c
--.BI -t " tag"\c
-+.BI \-t " tag"\c
- ] [\c
--.BI -w " size"\c
-+.BI \-w " size"\c
- ] [file ...]
- .br
- .B view
- [\c
--.B -eFRrSv\c
-+.B \-eFRrSv\c
- ] [\c
--.BI -c " cmd"\c
-+.BI \-c " cmd"\c
- ] [\c
--.BI -t " tag"\c
-+.BI \-t " tag"\c
- ] [\c
--.BI -w " size"\c
-+.BI \-w " size"\c
- ] [file ...]
- .SH LICENSE
- The vi program is freely redistributable. You are welcome to copy,
-@@ -57,7 +57,7 @@
- .I \&Vi
- is a screen oriented text editor.
- .I \&Ex
--is a line-oriented text editor.
-+is a line\(hyoriented text editor.
- .I \&Ex
- and
- .I \&vi
-@@ -66,7 +66,7 @@
- .I View
- is the equivalent of using the
- .B \-R
--(read-only) option of
-+(read\(hyonly) option of
- .IR \&vi .
- .PP
- This manual page is the one provided with the
-@@ -75,7 +75,7 @@
- .I ex/vi
- text editors.
- .I Nex/nvi
--are intended as bug-for-bug compatible replacements for the original
-+are intended as bug\(hyfor\(hybug compatible replacements for the original
- Fourth Berkeley Software Distribution (4BSD)
- .I \&ex
- and
-@@ -93,7 +93,7 @@
- editor before this manual page.
- If you're in an unfamiliar environment, and you absolutely have to
- get work done immediately, read the section after the options
--description, entitled ``Fast Startup''.
-+description, entitled \(lqFast Startup\(rq.
- It's probably enough to get you going.
- .PP
- The following options are available:
-@@ -105,7 +105,7 @@
- Particularly useful for initial positioning in the file, however
- .B cmd
- is not limited to positioning commands.
--This is the POSIX 1003.2 interface for the historic ``+cmd'' syntax.
-+This is the POSIX 1003.2 interface for the historic \(lq+cmd\(rq syntax.
- .I Nex/nvi
- supports both the old and new syntax.
- .TP
-@@ -122,7 +122,7 @@
- Start editing with the lisp and showmatch options set.
- .TP
- .B \-R
--Start editing in read-only mode, as if the command name was
-+Start editing in read\(hyonly mode, as if the command name was
- .IR view ,
- or the
- .B readonly
-@@ -151,7 +151,7 @@
- Prompts, informative messages and other user oriented message
- are turned off,
- and no startup files or environmental variables are read.
--This is the POSIX 1003.2 interface for the historic ``\-'' argument.
-+This is the POSIX 1003.2 interface for the historic \(lq\-\(rq argument.
- .I \&Nex/nvi
- supports both the old and new syntax.
- .TP
-@@ -215,8 +215,8 @@
- There are commands that switch you into input mode.
- There is only one key that takes you out of input mode,
- and that is the <escape> key.
--(Key names are written using less-than and greater-than signs, e.g.
--<escape> means the ``escape'' key, usually labeled ``esc'' on your
-+(Key names are written using less\(hythan and greater\(hythan signs, e.g.
-+<escape> means the \(lqescape\(rq key, usually labeled \(lqesc\(rq on your
- terminal's keyboard.)
- If you're ever confused as to which mode you're in,
- keep entering the <escape> key until
-@@ -227,9 +227,9 @@
- will beep at you if you try and do something that's not allowed.
- It will also display error messages.)
- .PP
--To start editing a file, enter the command ``vi file_name<carriage-return>''.
-+To start editing a file, enter the command \(lqvi file_name<carriage\(hyreturn>\(rq.
- The command you should enter as soon as you start editing is
--``:set verbose showmode<carriage-return>''.
-+\(lq:set verbose showmode<carriage\(hyreturn>\(rq.
- This will make the editor give you verbose error messages and display
- the current mode at the bottom of the screen.
- .PP
-@@ -247,11 +247,11 @@
- .B l
- Move the cursor right one character.
- .TP
--.B <cursor-arrows>
-+.B <cursor\(hyarrows>
- The cursor arrow keys should work, too.
- .TP
--.B /text<carriage-return>
--Search for the string ``text'' in the file,
-+.B /text<carriage\(hyreturn>
-+Search for the string \(lqtext\(rq in the file,
- and move the cursor to its first character.
- .PP
- The commands to enter new text are:
-@@ -303,30 +303,30 @@
- .PP
- The commands to write the file are:
- .TP
--.B :w<carriage-return>
-+.B :w<carriage\(hyreturn>
- Write the file back to the file with the name that you originally used
- as an argument on the
- .I \&vi
- command line.
- .TP
--.B ":w file_name<carriage-return>"
--Write the file back to the file with the name ``file_name''.
-+.B ":w file_name<carriage\(hyreturn>"
-+Write the file back to the file with the name \(lqfile_name\(rq.
- .PP
- The commands to quit editing and exit the editor are:
- .TP
--.B :q<carriage-return>
-+.B :q<carriage\(hyreturn>
- Quit editing and leave vi (if you've modified the file, but not
- saved your changes,
- .I \&vi
- will refuse to quit).
- .TP
--.B :q!<carriage-return>
-+.B :q!<carriage\(hyreturn>
- Quit, discarding any modifications that you may have made.
- .PP
- One final caution.
- Unusual characters can take up more than one column on the screen,
- and long lines can take up more than a single screen line.
--The above commands work on ``physical'' characters and lines,
-+The above commands work on \(lqphysical\(rq characters and lines,
- i.e. they affect the entire line no matter how many screen lines it
- takes up and the entire character no matter how many screen columns
- it takes up.
-@@ -339,87 +339,87 @@
- character.
- .PP
- .TP
--.B "[count] <control-A>"
-+.B "[count] <control\(hyA>"
- Search forward
- .I count
- times for the current word.
- .TP
--.B "[count] <control-B>"
-+.B "[count] <control\(hyB>"
- Page backwards
- .I count
- screens.
- .TP
--.B "[count] <control-D>"
-+.B "[count] <control\(hyD>"
- Scroll forward
- .I count
- lines.
- .TP
--.B "[count] <control-E>"
-+.B "[count] <control\(hyE>"
- Scroll forward
- .I count
- lines, leaving the current line and column as is, if possible.
- .TP
--.B "[count] <control-F>"
-+.B "[count] <control\(hyF>"
- Page forward
- .I count
- screens.
- .TP
--.B "<control-G>"
-+.B "<control\(hyG>"
- Display the file information.
- .TP
--.B "<control-H>"
-+.B "<control\(hyH>"
- .TP
- .B "[count] h"
- Move the cursor back
- .I count
- characters in the current line.
- .TP
--.B "[count] <control-J>"
-+.B "[count] <control\(hyJ>"
- .TP
--.B "[count] <control-N>"
-+.B "[count] <control\(hyN>"
- .TP
- .B "[count] j"
- Move the cursor down
- .I count
- lines without changing the current column.
- .TP
--.B "<control-L>"
-+.B "<control\(hyL>"
- .TP
--.B "<control-R>"
-+.B "<control\(hyR>"
- Repaint the screen.
- .TP
--.B "[count] <control-M>"
-+.B "[count] <control\(hyM>"
- .TP
- .B "[count] +"
- Move the cursor down
- .I count
- lines to the first nonblank character of that line.
- .TP
--.B "[count] <control-P>"
-+.B "[count] <control\(hyP>"
- .TP
- .B "[count] k"
- Move the cursor up
- .I count
- lines, without changing the current column.
- .TP
--.B "<control-T>"
-+.B "<control\(hyT>"
- Return to the most recent tag context.
- .TP
--.B "<control-U>"
-+.B "<control\(hyU>"
- Scroll backwards
- .I count
- lines.
- .TP
--.B "<control-W>"
-+.B "<control\(hyW>"
- Switch to the next lower screen in the window, or, to the first
- screen if there are no lower screens in the window.
- .TP
--.B "<control-Y>"
-+.B "<control\(hyY>"
- Scroll backwards
- .I count
- lines, leaving the current line and column as is, if possible.
- .TP
--.B "<control-Z>"
-+.B "<control\(hyZ>"
- Suspend the current editor session.
- .TP
- .B "<escape>"
-@@ -427,10 +427,10 @@
- .I \&ex
- commands or cancel partial commands.
- .TP
--.B "<control-]>"
-+.B "<control\(hy]>"
- Push a tag reference onto the tag stack.
- .TP
--.B "<control-^>"
-+.B "<control\(hy^>"
- Switch to the most recently edited file.
- .TP
- .B "[count] <space>"
-@@ -440,10 +440,10 @@
- .I count
- characters without changing the current line.
- .TP
--.B "[count] ! motion shell-argument(s)"
-+.B "[count] ! motion shell\(hyargument(s)"
- Replace text with results from a shell command.
- .TP
--.B "[count] # #|+|-"
-+.B "[count] # #|+|\-"
- Increment or decrement the cursor number.
- .TP
- .B "[count] $"
-@@ -457,7 +457,7 @@
- .TP
- .B "'<character>"
- .TP
--.B "`<character>"
-+.B "\`<character>"
- Return to a context marked by the character
- .IR <character> .
- .TP
-@@ -476,7 +476,7 @@
- .I count
- times.
- .TP
--.B "[count] -"
-+.B "[count] \-"
- Move to first nonblank of the previous line,
- .I count
- times.
-@@ -486,13 +486,13 @@
- .I \&vi
- command that modified text.
- .TP
--.B "/RE<carriage-return>"
-+.B "/RE<carriage\(hyreturn>"
- .TP
--.B "/RE/ [offset]<carriage-return>"
-+.B "/RE/ [offset]<carriage\(hyreturn>"
- .TP
--.B "?RE<carriage-return>"
-+.B "?RE<carriage\(hyreturn>"
- .TP
--.B "?RE? [offset]<carriage-return>"
-+.B "?RE? [offset]<carriage\(hyreturn>"
- .TP
- .B "N"
- .TP
-@@ -527,15 +527,15 @@
- bigwords.
- .TP
- .B "[buffer] [count] C"
--Change text from the current position to the end-of-line.
-+Change text from the current position to the end\(hyof\(hyline.
- .TP
- .B "[buffer] D"
--Delete text from the current position to the end-of-line.
-+Delete text from the current position to the end\(hyof\(hyline.
- .TP
- .B "[count] E"
- Move forward
- .I count
--end-of-bigwords.
-+end\(hyof\(hybigwords.
- .TP
- .B "[count] F <character>"
- Search
-@@ -552,7 +552,7 @@
- .TP
- .B "[count] H"
- Move to the screen line
--.I "count - 1"
-+.I "count \- 1"
- lines below the top of the screen.
- .TP
- .B "[count] I"
-@@ -563,7 +563,7 @@
- .TP
- .B "[count] L"
- Move to the screen line
--.I "count - 1"
-+.I "count \- 1"
- lines above the bottom of the screen.
- .TP
- .B " M"
-@@ -614,7 +614,7 @@
- characters before the cursor.
- .TP
- .B "[buffer] [count] Y"
--Copy (or ``yank'')
-+Copy (or \(lqyank\(rq)
- .I count
- lines into the specified buffer.
- .TP
-@@ -637,7 +637,7 @@
- .TP
- .B "[count] _"
- Move down
--.I "count - 1"
-+.I "count \- 1"
- lines, to the first nonblank character.
- .TP
- .B "[count] a"
-@@ -657,7 +657,7 @@
- .B "[count] e"
- Move forward
- .I count
--end-of-words.
-+end\(hyof\(hywords.
- .TP
- .B "[count] f<character>"
- Search forward,
-@@ -709,12 +709,12 @@
- characters.
- .TP
- .B "[buffer] [count] y motion"
--Copy (or ``yank'')
-+Copy (or \(lqyank\(rq)
- a text region specified by the
- .I count
- and motion into a buffer.
- .TP
--.B "[count1] z [count2] -|.|+|^|<carriage-return>"
-+.B "[count1] z [count2] \-|.|+|^|<carriage\(hyreturn>"
- Redraw, optionally repositioning and resizing the screen.
- .TP
- .B "[count] {"
-@@ -735,13 +735,20 @@
- .B "[count] ~"
- Reverse the case of the next
- .I count
--character(s).
-+character(s), if the
-+.B tildeop
-+option is
-+.IR unset .
- .TP
- .B "[count] ~ motion"
- Reverse the case of the characters in a text region specified by the
- .I count
- and
--.IR motion .
-+.IR motion ,
-+if the
-+.B tildeop
-+option is
-+.IR set .
- .TP
- .B "<interrupt>"
- Interrupt the current operation.
-@@ -755,18 +762,18 @@
- .B "<nul>"
- Replay the previous input.
- .TP
--.B "<control-D>"
-+.B "<control\(hyD>"
- Erase to the previous
- .B shiftwidth
- column boundary.
- .TP
--.B "^<control-D>"
-+.B "^<control\(hyD>"
- Erase all of the autoindent characters, and reset the autoindent level.
- .TP
--.B "0<control-D>"
-+.B "0<control\(hyD>"
- Erase all of the autoindent characters.
- .TP
--.B "<control-T>"
-+.B "<control\(hyT>"
- Insert sufficient
- .I <tab>
- and
-@@ -777,7 +784,7 @@
- .TP
- .B "<erase>
- .TP
--.B "<control-H>"
-+.B "<control\(hyH>"
- Erase the last character.
- .TP
- .B "<literal next>"
-@@ -789,7 +796,7 @@
- .B "<line erase>"
- Erase the current line.
- .TP
--.B "<control-W>"
-+.B "<control\(hyW>"
- .TP
- .B "<word erase>"
- Erase the last word.
-@@ -799,7 +806,7 @@
- .B ttywerase
- options.
- .TP
--.B "<control-X>[0-9A-Fa-f]+"
-+.B "<control\(hyX>[0\-9A\-Fa\-f]+"
- Insert a character with the specified hexadecimal value into the text.
- .TP
- .B "<interrupt>"
-@@ -811,7 +818,7 @@
- In each entry below, the tag line is a usage synopsis for the command.
- .PP
- .TP
--.B "<end-of-file>"
-+.B "<end\(hyof\(hyfile>"
- Scroll the screen.
- .TP
- .B "! argument(s)"
-@@ -932,7 +939,7 @@
- .I file
- if it was previously saved.
- .TP
--.B "res[ize] [+|-]size"
-+.B "res[ize] [+|\-]size"
- .I \&Vi
- mode only.
- Grow or shrink the current screen.
-@@ -1034,7 +1041,10 @@
- .I \&ex
- and
- .I \&vi
--modes, unless otherwise specified.
-+modes, unless otherwise specified. Multiple options can be given in
-+one set or unset, separated by spaces or tabs. Spaces and tabs can be
-+included in string options (eg. tags or filec) by preceding each with
-+a backslash. There's no way to get backslash itself into an option.
- .PP
- .TP
- .B "altwerase [off]"
-@@ -1071,7 +1081,7 @@
- command.
- .TP
- .B "cedit [no default]"
--Set the character to edit the colon command-line history.
-+Set the character to edit the colon command\(hyline history.
- .TP
- .B "columns, co [80]"
- Set the number of columns in the screen.
-@@ -1085,7 +1095,7 @@
- The directory where temporary files are created.
- .TP
- .B "edcompatible, ed [off]"
--Remember the values of the ``c'' and ``g'' suffices to the
-+Remember the values of the \(lqc\(rq and \(lqg\(rq suffices to the
- .B substitute
- commands, instead of initializing them as unset for each new
- command.
-@@ -1114,8 +1124,8 @@
- Set the spacing between hardware tab settings.
- .TP
- .B "iclower [off]"
--Makes all Regular Expressions case-insensitive,
--as long as an upper-case letter does not appear in the search string.
-+Makes all Regular Expressions case\(hyinsensitive,
-+as long as an upper\(hycase letter does not appear in the search string.
- .TP
- .B "ignorecase, ic [off]"
- Ignore case differences in regular expressions.
-@@ -1128,7 +1138,7 @@
- .B "leftright [off]"
- .I \&Vi
- only.
--Do left-right scrolling.
-+Do left\(hyright scrolling.
- .TP
- .B "lines, li [24]"
- .I \&Vi
-@@ -1227,7 +1237,7 @@
- Display a command prompt.
- .TP
- .B "readonly, ro [off]"
--Mark the file and session as read-only.
-+Mark the file and session as read\(hyonly.
- .TP
- .B "recdir [/var/tmp/vi.recover]"
- The directory where recovery files are stored.
-@@ -1278,7 +1288,7 @@
- .\" to save my life. The ONLY way I've been able to get this to work
- .\" is with the .tr command.
- .tr Q"
--.ds ms shellmeta [~{[*?$`'Q\e]
-+.ds ms shellmeta [~{[*?$\`'Q\e]
- .TP
- .B "\*(ms"
- .tr QQ
-@@ -1291,17 +1301,17 @@
- .B "showmatch, sm [off]"
- .I \&Vi
- only.
--Note matching ``{'' and ``('' for ``}'' and ``)'' characters.
-+Note matching \(lq{\(rq and \(lq(\(rq for \(lq}\(rq and \(lq)\(rq characters.
- .TP
- .B "showmode, smd [off]"
- .I \&Vi
- only.
--Display the current editor mode and a ``modified'' flag.
-+Display the current editor mode and a \(lqmodified\(rq flag.
- .TP
- .B "sidescroll [16]"
- .I \&Vi
- only.
--Set the amount a left-right scroll will shift.
-+Set the amount a left\(hyright scroll will shift.
- .TP
- .B "slowopen, slow [off]"
- Delay display updating during text input.
-@@ -1379,7 +1389,7 @@
- .I \&Vi
- only.
- Break lines automatically, the specified number of columns from the
--left-hand margin.
-+left\(hyhand margin.
- If both the
- .B wraplen
- and
-@@ -1392,7 +1402,7 @@
- .I \&Vi
- only.
- Break lines automatically, the specified number of columns from the
--right-hand margin.
-+right\(hyhand margin.
- If both the
- .B wraplen
- and
-@@ -1405,7 +1415,7 @@
- Set searches to wrap around the end or beginning of the file.
- .TP
- .B "writeany, wa [off]"
--Turn off file-overwriting checks.
-+Turn off file\(hyoverwriting checks.
- .SH "ENVIRONMENT VARIABLES
- .TP
- .I COLUMNS
-@@ -1430,7 +1440,7 @@
- .TP
- .I HOME
- The user's home directory, used as the initial directory path
--for the startup ``$\fIHOME\fP/.nexrc'' and ``$\fIHOME\fP/.exrc''
-+for the startup \(lq$\fIHOME\fP/.nexrc\(rq and \(lq$\fIHOME\fP/.exrc\(rq
- files.
- This value is also used as the default directory for the
- .I \&vi
-@@ -1462,7 +1472,7 @@
- .TP
- .I TERM
- The user's terminal type.
--The default is the type ``unknown''.
-+The default is the type \(lqunknown\(rq.
- If the
- .I TERM
- environmental variable is not set when
-@@ -1482,7 +1492,7 @@
- SIGALRM
- .I \&Vi/ex
- uses this signal for periodic backups of file modifications and to
--display ``busy'' messages when operations are likely to take a long time.
-+display \(lqbusy\(rq messages when operations are likely to take a long time.
- .TP
- SIGHUP
- .TP
-@@ -1492,7 +1502,7 @@
- be later recovered.
- See the
- .I \&vi/ex
--Reference manual section entitled ``Recovery'' for more information.
-+Reference manual section entitled \(lqRecovery\(rq for more information.
- .TP
- SIGINT
- When an interrupt occurs,
-@@ -1506,7 +1516,7 @@
- The screen is resized.
- See the
- .I \&vi/ex
--Reference manual section entitled ``Sizing the Screen'' for more information.
-+Reference manual section entitled \(lqSizing the Screen\(rq for more information.
- .TP
- SIGCONT
- .TP
-@@ -1521,7 +1531,7 @@
- The default user shell.
- .TP
- /etc/vi.exrc
--System-wide vi startup file.
-+System\(hywide vi startup file.
- .TP
- /tmp
- Temporary file directory.
-@@ -1546,38 +1556,38 @@
- .IR curses (3),
- .IR dbopen (3)
- .sp
--The ``Vi Quick Reference'' card.
-+The \(lqVi Quick Reference\(rq card.
- .sp
--``An Introduction to Display Editing with Vi'', found in the
--``UNIX User's Manual Supplementary Documents''
-+\(lqAn Introduction to Display Editing with Vi\(rq, found in the
-+\(lqUNIX User's Manual Supplementary Documents\(rq
- section of both the 4.3BSD and 4.4BSD manual sets.
- This document is the closest thing available to an introduction to the
- .I \&vi
- screen editor.
- .sp
--``Ex Reference Manual (Version 3.7)'',
-+\(lqEx Reference Manual (Version 3.7)\(rq,
- found in the
--``UNIX User's Manual Supplementary Documents''
-+\(lqUNIX User's Manual Supplementary Documents\(rq
- section of both the 4.3BSD and 4.4BSD manual sets.
- This document is the final reference for the
- .I \&ex
- editor, as distributed in most historic 4BSD and System V systems.
- .sp
--``Edit: A tutorial'',
-+\(lqEdit: A tutorial\(rq,
- found in the
--``UNIX User's Manual Supplementary Documents''
-+\(lqUNIX User's Manual Supplementary Documents\(rq
- section of the 4.3BSD manual set.
- This document is an introduction to a simple version of the
- .I \&ex
- screen editor.
- .sp
--``Ex/Vi Reference Manual'',
-+\(lqEx/Vi Reference Manual\(rq,
- found in the
--``UNIX User's Manual Supplementary Documents''
-+\(lqUNIX User's Manual Supplementary Documents\(rq
- section of the 4.4BSD manual set.
- This document is the final reference for the
- .I \&nex/nvi
--text editors, as distributed in 4.4BSD and 4.4BSD-Lite.
-+text editors, as distributed in 4.4BSD and 4.4BSD\(hyLite.
- .PP
- .I Roff
- source for all of these documents is distributed with
-@@ -1588,7 +1598,7 @@
- .I nex/nvi
- source code.
- .sp
--The files ``autowrite'', ``input'', ``quoting'' and ``structures''
-+The files \(lqautowrite\(rq, \(lqinput\(rq, \(lqquoting\(rq and \(lqstructures\(rq
- found in the
- .I nvi/docs/internals
- directory of the
-@@ -1602,7 +1612,7 @@
- editor first appeared in 4.4BSD.
- .SH STANDARDS
- .I \&Nex/nvi
--is close to IEEE Std1003.2 (``POSIX'').
-+is close to IEEE Std1003.2 (\(lqPOSIX\(rq).
- That document differs from historical
- .I ex/vi
- practice in several places; there are changes to be made on both sides.
diff --git a/testing/nvi/17tutorial_typos.patch b/testing/nvi/17tutorial_typos.patch
deleted file mode 100644
index a7b002d9ffe..00000000000
--- a/testing/nvi/17tutorial_typos.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From: Unknown
-Subject: Fix typos in the nvi tutorial.
-
---- nvi-1.81.6.orig/nvi-1.79/docs/tutorial/vi.beginner
-+++ nvi-1.81.6/nvi-1.79/docs/tutorial/vi.beginner
-@@ -505,7 +505,7 @@
- j - moves the cursor DOWN one line
- h - moves the cursor one character to the LEFT
-
--Section 22: {i} {a} {I} {A} {o} {O} ^[ (escape key)
-+Section 22: {i} {a} {I} {A} {o} {O} {^[} (escape key)
-
- For this and following sections you will need to use the ESCAPE key on your
- terminal. It is usually marked ESC. Since the escape key is the same as
-@@ -525,9 +525,9 @@
- on the word 'of'.)
-
- Now carefully type the following string and observe the effects:
-- {iexample ^[} (remember: ^[ is the escape key)}
-+ {iexample ^[} (remember: ^[ is the escape key)
- The {i} begins the insert mode, and 'example ' is inserted into the line:
--be sure to notice the blank in 'example '. The ^[ ends insertion mode,
-+be sure to notice the blank in 'example '. The {^[} ends insertion mode,
- and the line is updated to include the new string. Line 1 should look exactly
- like Line 2.
-
-@@ -541,9 +541,9 @@
- of 'line'. You can do this in several ways, one way is the following:
- First, type {/line /^M}. This puts us on the word 'line' in Line 4
- (the blank in the search string is important!). Next, type {e}. The 'e' puts
--us at the end of the word. Now, type {as^[ (^[ is the escape character)}.
-+us at the end of the word. Now, type {as^[} (^[ is the escape character).
- The 'a' puts us in insert mode, AFTER the current character. We appended the
--'s', and the escape ^[ ended the insert mode.
-+'s', and the escape '^[' ended the insert mode.
-
- The difference between {i} (insert) and {a} (append) is that {i} begins
- inserting text BEFORE the cursor, and {a} begins inserting AFTER the cursor.
---- nvi-1.81.6.orig/nvi-1.79/docs/tutorial/vi.advanced
-+++ nvi-1.81.6/nvi-1.79/docs/tutorial/vi.advanced
-@@ -26,8 +26,8 @@
- 1 introduction: {^F} {ZZ}
- 2 introduction (con't) and positioning: {^F} {^B}
- 3 introduction (con't) and positioning: {^F} {^B}
-- 4 positioning: {^F} {^B} ^M (return key)
-- 5 quitting: {:q!} ^M key
-+ 4 positioning: {^F} {^B} {^M} (return key)
-+ 5 quitting: {:q!} {^M} (return key)
- 6 marking, cursor and screen positioning: {m} {G} {'} {z}
- 7 marking, cursor and screen positioning: {m} {G} {'} {z}
- 8 marking, cursor and screen positioning: {z} {m} {'}
-@@ -44,7 +44,7 @@
- 19 screen positioning: {H} {M} {L}
- 20 character positioning: {w} {b} {0} {W} {B} {e} {E} {'} {`}
- 21 cursor positioning: {l} {k} {j} {h}
-- 22 adding text: {i} {a} {I} {A} {o} {O} ^[ (escape key)
-+ 22 adding text: {i} {a} {I} {A} {o} {O} {^[} (escape key)
- 23 character manipulation: {f} {x} {X} {w} {l} {r} {R} {s} {S} {J}
- 24 undo: {u} {U}
- 25 review
diff --git a/testing/nvi/18dbpagesize_binpower.patch b/testing/nvi/18dbpagesize_binpower.patch
deleted file mode 100644
index ec0450472df..00000000000
--- a/testing/nvi/18dbpagesize_binpower.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Make sure that the pagesize passed to db__set_pagesize() is
-a power of two.
-
---- nvi-1.81.6.orig/common/exf.c 2009-03-09 01:48:01.695862889 +0100
-+++ nvi-1.81.6/common/exf.c 2009-03-09 10:42:41.147866272 +0100
-@@ -249,11 +249,10 @@
- * (vi should have good locality) or smaller than 1K.
- */
- psize = ((sb.st_size / 15) + 1023) / 1024;
-- if (psize > 10)
-- psize = 10;
-- if (psize == 0)
-- psize = 1;
-- psize *= 1024;
-+ if (psize >= 8) psize=8<<10;
-+ else if (psize >= 4) psize=4<<10;
-+ else if (psize >= 2) psize=2<<10;
-+ else psize=1<<10;
-
- F_SET(ep, F_DEVSET);
- ep->mdev = sb.st_dev;
diff --git a/testing/nvi/19include_term_h.patch b/testing/nvi/19include_term_h.patch
deleted file mode 100644
index bb774e05794..00000000000
--- a/testing/nvi/19include_term_h.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Add <term.h> to the include list to suppress a few warnings.
-
-diff -Naur nvi-1.81.6.orig/cl/cl_funcs.c nvi-1.81.6/cl/cl_funcs.c
---- nvi-1.81.6.orig/cl/cl_funcs.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/cl/cl_funcs.c 2008-05-01 18:23:08.000000000 +0200
-@@ -18,6 +18,7 @@
- #include <sys/time.h>
-
- #include <bitstring.h>
-+#include <term.h>
- #include <ctype.h>
- #include <signal.h>
- #include <stdio.h>
-diff -Naur nvi-1.81.6.orig/cl/cl_screen.c nvi-1.81.6/cl/cl_screen.c
---- nvi-1.81.6.orig/cl/cl_screen.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/cl/cl_screen.c 2008-05-01 18:23:02.000000000 +0200
-@@ -17,6 +17,7 @@
- #include <sys/queue.h>
-
- #include <bitstring.h>
-+#include <term.h>
- #include <errno.h>
- #include <signal.h>
- #include <stdio.h>
diff --git a/testing/nvi/21exrc_writability_check.patch b/testing/nvi/21exrc_writability_check.patch
deleted file mode 100644
index e310931c054..00000000000
--- a/testing/nvi/21exrc_writability_check.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: No description.
-
-diff -Naur nvi-1.81.6.orig/ex/ex_init.c nvi-1.81.6/ex/ex_init.c
---- nvi-1.81.6.orig/ex/ex_init.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/ex/ex_init.c 2008-05-01 18:24:45.000000000 +0200
-@@ -26,6 +26,9 @@
- #include <string.h>
- #include <unistd.h>
-
-+#include <pwd.h>
-+#include <grp.h>
-+
- #include "../common/common.h"
- #include "tag.h"
- #include "pathnames.h"
-@@ -346,6 +349,9 @@
- int nf1, nf2;
- char *a, *b, buf[MAXPATHLEN];
-
-+ struct group *grp_p;
-+ struct passwd *pwd_p;
-+
- /* Check for the file's existence. */
- if (stat(path, sbp))
- return (NOEXIST);
-@@ -359,10 +365,30 @@
- }
-
- /* Check writeability. */
-- if (sbp->st_mode & (S_IWGRP | S_IWOTH)) {
-+ if (sbp->st_mode & S_IWOTH) {
- etype = WRITER;
- goto denied;
- }
-+ if (sbp->st_mode & S_IWGRP) {
-+ /* on system error (getgrgid or getpwnam return NULL) set etype to WRITER
-+ * and continue execution */
-+ if( (grp_p = getgrgid(sbp->st_gid)) == NULL) {
-+ etype = WRITER;
-+ goto denied;
-+ }
-+
-+ /* lookup the group members' uids for an uid different from euid */
-+ while( ( *(grp_p->gr_mem) ) != NULL) { /* gr_mem is a null-terminated array */
-+ if( (pwd_p = getpwnam(*(grp_p->gr_mem)++)) == NULL) {
-+ etype = WRITER;
-+ goto denied;
-+ }
-+ if(pwd_p->pw_uid != euid) {
-+ etype = WRITER;
-+ goto denied;
-+ }
-+ }
-+ }
- return (RCOK);
-
- denied: a = msg_print(sp, path, &nf1);
diff --git a/testing/nvi/24fallback_to_dumb_term.patch b/testing/nvi/24fallback_to_dumb_term.patch
deleted file mode 100644
index 60aa4cc9782..00000000000
--- a/testing/nvi/24fallback_to_dumb_term.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: If there's no $TERM around, just fall back to "dumb".
-
-diff -Naur nvi-1.81.6.orig/cl/cl_main.c nvi-1.81.6/cl/cl_main.c
---- nvi-1.81.6.orig/cl/cl_main.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/cl/cl_main.c 2008-05-01 18:29:13.000000000 +0200
-@@ -96,6 +96,7 @@
- if ((ttype = getenv("TERM")) == NULL)
- ttype = "unknown";
- term_init(gp->progname, ttype);
-+ ttype = getenv("TERM");
-
- /* Add the terminal type to the global structure. */
- if ((OG_D_STR(gp, GO_TERM) =
-@@ -233,6 +234,11 @@
-
- /* Set up the terminal database information. */
- setupterm(ttype, STDOUT_FILENO, &err);
-+ if (err == 0) {
-+ (void)fprintf(stderr, "%s: %s: unknown terminal type, falling back to 'dumb'\n", name, ttype);
-+ setenv("TERM", "dumb", 1);
-+ setupterm("dumb", STDOUT_FILENO, &err);
-+ }
- switch (err) {
- case -1:
- (void)fprintf(stderr,
diff --git a/testing/nvi/25manpage_note_dropped_F.patch b/testing/nvi/25manpage_note_dropped_F.patch
deleted file mode 100644
index 9eb68c188f0..00000000000
--- a/testing/nvi/25manpage_note_dropped_F.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Replace the manpage paragraph about the '-F' commandline option
- with a notice that is has been dropped.
-
---- nvi-1.81.6+debian-1.orig/docs/vi.man/vi.1 2008-06-13 00:52:45.000000000 +0200
-+++ nvi-1.81.6+debian-1/docs/vi.man/vi.1 2008-06-13 00:55:40.000000000 +0200
-@@ -17,7 +17,7 @@
- .SH SYNOPSIS
- .B ex
- [\c
--.B \-eFRrSsv\c
-+.B \-eRrSsv\c
- ] [\c
- .BI \-c " cmd"\c
- ] [\c
-@@ -28,7 +28,7 @@
- .br
- .B vi
- [\c
--.B \-eFlRrSv\c
-+.B \-elRrSv\c
- ] [\c
- .BI \-c " cmd"\c
- ] [\c
-@@ -39,7 +39,7 @@
- .br
- .B view
- [\c
--.B \-eFRrSv\c
-+.B \-eRrSv\c
- ] [\c
- .BI \-c " cmd"\c
- ] [\c
-@@ -113,11 +113,6 @@
- Start editing in ex mode, as if the command name were
- .IR \&ex .
- .TP
--.B \-F
--Don't copy the entire file when first starting to edit.
--(The default is to make a copy in case someone else modifies
--the file during your edit session.)
--.TP
- .B \-l
- Start editing with the lisp and showmatch options set.
- .TP
-@@ -169,6 +164,9 @@
- or
- .IR view .
- .PP
-+Note that the \fB-F\fP option (which prevented \fIex/vi\fP from making
-+a full backup of the target file) has been removed and is no longer available.
-+.PP
- Command input for
- .I ex/vi
- is read from the standard input.
diff --git a/testing/nvi/26trailing_tab_segv.patch b/testing/nvi/26trailing_tab_segv.patch
deleted file mode 100644
index d6c5a90827d..00000000000
--- a/testing/nvi/26trailing_tab_segv.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Prevent a segfault if a trailing tab is pushed to a new line by inserting
-characters before it if 'set number' is in effect.
-
---- nvi-1.81.6+debian.orig/vi/vs_relative.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6+debian/vi/vs_relative.c 2008-06-13 03:22:55.000000000 +0200
-@@ -133,7 +133,7 @@
- * Initialize the pointer into the buffer and current offset.
- */
- p = lp;
-- curoff = 0;
-+ curoff = scno;
-
- /* Macro to return the display length of any signal character. */
- #define CHLEN(val) (ch = *(UCHAR_T *)p++) == '\t' && \
diff --git a/testing/nvi/27support_C_locale.patch b/testing/nvi/27support_C_locale.patch
deleted file mode 100644
index 97d2141d166..00000000000
--- a/testing/nvi/27support_C_locale.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Allow users to edit 8-bit files even under LC_CTYPE=C.
-
---- nvi-1.81.6.orig/common/conv.c 2007-11-18 17:41:42.000000000 +0100
-+++ nvi-1.81.6/common/conv.c 2009-03-09 16:45:37.812022582 +0100
-@@ -322,11 +322,16 @@
- else {
- setlocale(LC_ALL, "");
- #ifdef USE_WIDECHAR
-- sp->conv.sys2int = cs_char2int;
-- sp->conv.int2sys = cs_int2char;
-- sp->conv.file2int = fe_char2int;
-- sp->conv.int2file = fe_int2char;
-- sp->conv.input2int = ie_char2int;
-+ if (!strcmp(LANGCODESET, "ANSI_X3.4-1968")) {
-+ sp->conv.file2int = sp->conv.input2int = sp->conv.sys2int = raw2int;
-+ sp->conv.int2sys = sp->conv.int2file = int2raw;
-+ } else {
-+ sp->conv.sys2int = cs_char2int;
-+ sp->conv.int2sys = cs_int2char;
-+ sp->conv.file2int = fe_char2int;
-+ sp->conv.int2file = fe_int2char;
-+ sp->conv.input2int = ie_char2int;
-+ }
- #endif
- #ifdef USE_ICONV
- o_set(sp, O_FILEENCODING, OS_STRDUP, nl_langinfo(CODESET), 0);
diff --git a/testing/nvi/29file_backup.patch b/testing/nvi/29file_backup.patch
deleted file mode 100644
index 52b1e9298bd..00000000000
--- a/testing/nvi/29file_backup.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From: <hesso@pool.math.tu-berlin.de>
-Subject: Save the intermediate CHAR2INT conversion pointer because
- that pointer is reused by later conversions in calls below.
-
---- nvi-1.81.6.orig/common/exf.c 2009-07-24 11:30:05.962060755 +0200
-+++ nvi-1.81.6/common/exf.c 2009-07-24 12:09:57.511311177 +0200
-@@ -1092,8 +1092,8 @@
- size_t blen;
- int flags, maxnum, nr, num, nw, rfd, wfd, version;
- char *bp, *estr, *p, *pct, *slash, *t, *wfname, buf[8192];
-- CHAR_T *wp;
-- size_t wlen;
-+ CHAR_T *wp, *wp2;
-+ size_t wlen, wlen2;
- size_t nlen;
- char *d = NULL;
-
-@@ -1148,8 +1148,13 @@
- } else
- version = 0;
- CHAR2INT(sp, bname, strlen(bname) + 1, wp, wlen);
-- if (argv_exp2(sp, &cmd, wp, wlen - 1))
-+ GET_SPACE_RETW(sp, wp2, wlen2, wlen);
-+ MEMCPY(wp2, wp, wlen);
-+ if (argv_exp2(sp, &cmd, wp2, wlen2 - 1)) {
-+ FREE_SPACEW(sp, wp2, wlen2);
- return (1);
-+ }
-+ FREE_SPACEW(sp, wp2, wlen2);
-
- /*
- * 0 args: impossible.
diff --git a/testing/nvi/APKBUILD b/testing/nvi/APKBUILD
deleted file mode 100644
index e3d8dd4e6c8..00000000000
--- a/testing/nvi/APKBUILD
+++ /dev/null
@@ -1,109 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=nvi
-pkgver=1.81.6
-pkgrel=3
-pkgdesc="Re-implementation of the vi editor"
-url="http://www.bostic.com/vi"
-arch="all"
-license="BSD-3-Clause"
-makedepends="db-dev ncurses-dev"
-subpackages="$pkgname-doc $pkgname-catalog::noarch"
-source="http://ftp.debian.org/debian/pool/main/n/nvi/nvi_$pkgver.orig.tar.gz
- 01additional_upstream_data.patch
- 03db4.patch
- 04confdefs.patch
- 06default_value_escapetime.patch
- 07flush_cache.patch
- 08lfs.patch
- 08safe_printf.patch
- 08tempfile_umask.patch
- 09casting.patch
- 10no_one_line_visual.patch
- 11backward_sentence_moving.patch
- 12horiz_scroll_count.patch
- 13widechar_horrors.patch
- 14private_regex_fixes.patch
- 15search_word.patch
- 16manpage_errors.patch
- 17tutorial_typos.patch
- 18dbpagesize_binpower.patch
- 19include_term_h.patch
- 21exrc_writability_check.patch
- 24fallback_to_dumb_term.patch
- 25manpage_note_dropped_F.patch
- 26trailing_tab_segv.patch
- 27support_C_locale.patch
- 29file_backup.patch"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- cd "$builddir"/dist
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --program-prefix=n \
- --enable-widechar \
- --disable-threads
- make
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin
- make -j1 PREFIX=/usr DESTDIR="$pkgdir" \
- install -C "$builddir"/dist
-
- # Remove tcl and perl scripts.
- rm -rf "$pkgdir"/usr/share/vi/tcl
- rm -rf "$pkgdir"/usr/share/vi/perl
-
- # Remove cat man pages.
- rm -rf "$pkgdir"/usr/share/man/cat1
-
- # Remove library.
- rm -f "$pkgdir"/usr/lib/libvi.a
-}
-
-catalog() {
- depends=""
- pkgdesc="$pkgdesc (catalog files)"
-
- mkdir -p "$subpkgdir"/usr/share/vi/
- mv "$pkgdir"/usr/share/vi/catalog/ \
- "$subpkgdir"/usr/share/vi/
-}
-
-sha512sums="1be798daf0cd05010ddaf0aa0510dc799708fd79d4b243e2700adff18e931ddd9d11621796fa8086088c3e93ba20f15ab86783732665169c52b73eaf587ff0b3 nvi_1.81.6.orig.tar.gz
-ec998baba23d15c957dbdb121a4ba7eddf0aac15503e381a1318a7e7127b0c06f3bd05ebd474175f39a6fb050ed6fd3a1f4bd348d92770355e8bc3d8d37277c9 01additional_upstream_data.patch
-d635c86c52cf16ccc947ee8a4593160adf183b236ae7c2eb03ff2ea628f493e484f906b762eb1d90ec1febc48119cac955382af3ebc223e29622123500a45f97 03db4.patch
-9b45e0639a30b81204e1c9b43877a6a83df2a5bba3b85a410427ead1e639cc9882f0ca162721074782870742af449c5a3f00b5051d459491bf9afb7cd718450d 04confdefs.patch
-4820b584614d321b6528b9400429440b126c5c8ccc502f9e61ec7ff9cd7769e7c53e04f83ffcd4804c6baed5ac55953834644444c11e9cf42841e8fb371196ca 06default_value_escapetime.patch
-df74b0977e7d864e7ea9833404f818cfb644c9fa188024b6174c7a2360350cc63f8cd8cd7fc19e54dbc5db8e2b6310be9807bb7bd108ab56dbc2d3d9cf8bff14 07flush_cache.patch
-0a432a0823d0d0b2bba2dba6ee24f1b173b4552245c1bba1727804dfa8eff09dfd88129fb615eae5846aa6ef929c08a0a23a505b000dc77ecc6de578d3dc8026 08lfs.patch
-2c1afb271f60031a15d4e2093b4e04c02462cc1d1815ce557049364bcdc81f83d3c6e25766a7a7efa8d04cc1c8284e9684df12ab161aba16bb479c9ee4660012 08safe_printf.patch
-af723124cef36966c57785f9066cc924d155a0d495375849db36a1bf1ef1b166afd8f057d258ada9367fbf82cd30694efeeeb246d0fb14ff07fcdb807230e109 08tempfile_umask.patch
-e70ee763a5c54424f75143ce892b93d8046618935bdc50bc3e646848b9b0f3d4bacf0a362b4203984527dbd98ea321a12b81b69eee7aa340e745b5d77492aca0 09casting.patch
-65776b87d86cde21ef8034a1c1fe88daaac03a960223a05fdb2e1005b7e44348dc4571abe0addeef65f08fbeef72fb376486b3dccaaff4cc7d4c39bdc206026d 10no_one_line_visual.patch
-f99afc8f83ea84ce059dbd5dc7b1bf726dbb2c64de8b12a7de21ca42a76e0a3b9f19d0c8c73bd046d7e0ad5ae81afed7f8e472232bcc55eb221b479ab4671f48 11backward_sentence_moving.patch
-3f77c69d08d8c807eb62332eca84af898849214660e238915cadf60e46014295889bb4c66fc116846d1d9cdc2cd4d3b89b4c9c4c6a5e908ebd530f6b9fee00f0 12horiz_scroll_count.patch
-97e403723934bf634120e53b7d629ca87dbae73ed0a736cf2c15d4d3f7432792535a106fbf5eb959d3b1706a868d79bf24f450e24c9b2fe295df9443ef017504 13widechar_horrors.patch
-e5b1c0d7d7f96a2066f637f848564877920f163c715a1b2c4248298ed0b6a420fd3fe4e61c3925c48bd96168352cb3935b713abff8cb33d069362192f99047d7 14private_regex_fixes.patch
-eadc89e64b93043dfcf8493ff8a36bc7c2f147c313a958a68edbea577cef92d10f9f2262dbb464016e4008e232a6efdb83cc0b3469cdc75b49eab7419a9ef01e 15search_word.patch
-21ab846548101d58d1d9d2a93c6f309729dfdc3df33a0dd73bf55d30fc42314e4dabdeb605178a6bd256ecdab4f4331e3c156b1071c0bbf82046acb40434b7ce 16manpage_errors.patch
-2dfc294f98302afad67095c8376de4de3bd582f890151ba495d1c4212964c360a9fc2afc7d988be0715b4e5d498c99f228f01d516ad57435baf07993c21c13a1 17tutorial_typos.patch
-4d8999b235634fc040d45036624d880ed3c6be614cd52c7f642f8144d24726ad764a71e385445c6346f101f65febe3e609e9c9452744ee4cef5774f9048f0029 18dbpagesize_binpower.patch
-27be473dc1628c407963eb4c828caa8c41ad57abb75ddf9adefe7a065ce9f8cfe16536aabeb1f078f859fa7a8817ea8d5d2ca1cb36c47be27436a9789faeb504 19include_term_h.patch
-4065b814649cbbc57535941b4f20ceacc925b0ef6decfbaa5a60c6c4b943f2a5b6c68371fa87f8dce5b6c219740a10339948ffdce226c88509a807580e19864d 21exrc_writability_check.patch
-b0a4c9ba713d8fb8fa8559b6038bcb70d0fb6e411a3a73cf677c38d8288f28a2febfa92f387aef899ac3959fb7bdf5220334e025b71260157f935b0f79f01e66 24fallback_to_dumb_term.patch
-9a6a71574c3fb6073d3fdd0abf783f0053fbfb1ee8408e208c9368a72c3b25a5f56156da50bdd06ebf381210278c91036cca29333b48a0d5f432bbaa1d82bbd5 25manpage_note_dropped_F.patch
-89ae70a8a2dd4fbb51e1f6e570f958e7dc63e4f60076446f5f0ce063f4dac19d2d1c8da241b4a709ef028459e4b43c682f1a3021ef4f04a72be98b7e2c7b9fd1 26trailing_tab_segv.patch
-c091a870efc7181b3480998b8b8427cdec4b37ef66358ae8bfd2c79d6037c9b64fd6e004e39400680d1d67f608c35d56e7e36d91810ded04f984fe89a052925a 27support_C_locale.patch
-4c050c5d8ee298f88bc59fd7282739dfe9202610285ca64c59b579698667ac6c8940ecf91b2b3df34d31a8ee818b9c18b1a4f9a0b47894dd4c6f8bd20c9f1c75 29file_backup.patch"
diff --git a/testing/nvidia-src/APKBUILD b/testing/nvidia-src/APKBUILD
new file mode 100644
index 00000000000..c861c741d87
--- /dev/null
+++ b/testing/nvidia-src/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+pkgname=nvidia-src
+pkgver=535.86.05
+pkgrel=0
+pkgdesc="NVIDIA Linux open GPU kernel module source (sources, AKMS)"
+url="https://github.com/NVIDIA/open-gpu-kernel-modules"
+# x86_64/aarch64 only
+arch="noarch !riscv64 !s390x !armhf !armv7 !x86 !ppc64le"
+license="MIT AND GPL-2.0-or-later"
+depends="akms"
+source="$pkgname-$pkgver.tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/open-gpu-kernel-modules-$pkgver"
+options="!check" # no tests
+
+package() {
+ mkdir -p "$pkgdir"/usr/src
+ cp -r "$builddir" "$pkgdir"/usr/src/nvidia-$pkgver
+
+ cat > "$pkgdir"/usr/src/nvidia-$pkgver/AKMBUILD <<EOF
+modname=nvidia
+modver=$pkgver-r$pkgrel
+makedepends="linux-headers"
+built_modules="kernel-open/nvidia.ko \
+ kernel-open/nvidia-drm.ko \
+ kernel-open/nvidia-modeset.ko \
+ kernel-open/nvidia-uvm.ko \
+ kernel-open/nvidia-peermem.ko \
+ "
+
+build() {
+ cp -r "\$srcdir"/* .
+ make modules \$MAKEFLAGS
+}
+EOF
+}
+
+sha512sums="
+da1964921f2f0a07e136ad5301b633c01d1e045b5fbb4ebb32f5d57471a89e649a1b653bbbb62e97755d070ce911c442ceaac2fb3d81baa53af75f4123075308 nvidia-src-535.86.05.tar.gz
+"
diff --git a/testing/nvim-cmp-buffer/APKBUILD b/testing/nvim-cmp-buffer/APKBUILD
new file mode 100644
index 00000000000..8c972bf7f7d
--- /dev/null
+++ b/testing/nvim-cmp-buffer/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-cmp-buffer
+pkgver=0.0.0_git20220810
+_commit=3022dbc9166796b644a841a02de8dd1cc1d311fa
+pkgrel=0
+pkgdesc="nvim-cmp source for buffer words"
+url="https://github.com/hrsh7th/cmp-buffer"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+depends="nvim-cmp"
+source="https://github.com/hrsh7th/cmp-buffer/archive/$_commit/nvim-cmp-$pkgver.tar.gz"
+builddir="$srcdir/cmp-buffer-$_commit"
+options="!check" # no tests
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra after lua "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+sha512sums="
+6ecddcb31b87274f27bc19a3e33fd549bbab139acc65cc1239b3295f9e279207d35b542dcca40c03589097997bec681555861731cf3a09e8a292f34f5cbc2f11 nvim-cmp-0.0.0_git20220810.tar.gz
+"
diff --git a/testing/nvim-cmp-cmdline/APKBUILD b/testing/nvim-cmp-cmdline/APKBUILD
new file mode 100644
index 00000000000..bc7f269c91c
--- /dev/null
+++ b/testing/nvim-cmp-cmdline/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-cmp-cmdline
+pkgver=0.0.0_git20220902
+_commit=d1a96c21e53316e1e21571dcce529c68720b0cf9
+pkgrel=0
+pkgdesc="nvim-cmp source for vim cmdline"
+url="https://github.com/hrsh7th/cmp-cmdline"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+depends="nvim-cmp"
+source="https://github.com/hrsh7th/cmp-cmdline/archive/$_commit/nvim-cmp-$pkgver.tar.gz"
+builddir="$srcdir/cmp-cmdline-$_commit"
+options="!check" # no tests
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra after lua "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+sha512sums="
+326c6939947706d4f9de3dfde6fcdf83e17c93601553c60860c6fcc38566c50b7c90a5b08c4074fa5dfabedc938d3ed2e152e4b059bfba1b98df63f9a15d56b9 nvim-cmp-0.0.0_git20220902.tar.gz
+"
diff --git a/testing/nvim-cmp-lsp/APKBUILD b/testing/nvim-cmp-lsp/APKBUILD
new file mode 100644
index 00000000000..6e4ec9b16c8
--- /dev/null
+++ b/testing/nvim-cmp-lsp/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=nvim-cmp-lsp
+pkgver=0.0.0_git20220516
+_commit=affe808a5c56b71630f17aa7c38e15c59fd648a8
+pkgrel=0
+pkgdesc="nvim-cmp source for neovim builtin LSP client"
+url="https://github.com/hrsh7th/cmp-nvim-lsp"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+depends="nvim-cmp"
+source="https://github.com/hrsh7th/cmp-nvim-lsp/archive/$_commit/nvim-cmp-$pkgver.tar.gz"
+builddir="$srcdir/cmp-nvim-lsp-$_commit"
+options="!check" # no tests
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra after doc lua "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+doc() {
+ default_doc
+ amove usr/share/nvim/site/doc
+}
+
+sha512sums="
+7a54d390579ec2410abcba138ffa833da49e5171decceda5e948281abe4f2938638c86380e9268678048c833af60d5d4f4f71c2968d058f050c742a051ffcbdd nvim-cmp-0.0.0_git20220516.tar.gz
+"
diff --git a/testing/nvim-cmp-luasnip/APKBUILD b/testing/nvim-cmp-luasnip/APKBUILD
new file mode 100644
index 00000000000..63318d96eee
--- /dev/null
+++ b/testing/nvim-cmp-luasnip/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=nvim-cmp-luasnip
+pkgver=0.0.0_git20220501
+_commit=a9de941bcbda508d0a45d28ae366bb3f08db2e36
+pkgrel=0
+pkgdesc="luasnip completion source for nvim-cmp"
+url="https://github.com/saadparwaiz1/cmp_luasnip"
+arch="noarch"
+license="Apache-2.0"
+subpackages="$pkgname-doc"
+depends="nvim-cmp"
+source="https://github.com/saadparwaiz1/cmp_luasnip/archive/$_commit/nvim-cmp-$pkgver.tar.gz"
+builddir="$srcdir/cmp_luasnip-$_commit"
+options="!check" # no tests
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra after lua "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+sha512sums="
+5e32c074e425c36b0724f95b91516e4885eb6da0e319f12157460bffe45aad3bd2d04d27d0f09033aee2bc372c86cf58d4f7b5310d42de6a2d47ceef571cb5ea nvim-cmp-0.0.0_git20220501.tar.gz
+"
diff --git a/testing/nvim-cmp-path/APKBUILD b/testing/nvim-cmp-path/APKBUILD
new file mode 100644
index 00000000000..38580b8fbbf
--- /dev/null
+++ b/testing/nvim-cmp-path/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-cmp-path
+pkgver=0.0.0_git20221002
+_commit=1267fcfe8845f547b6d88d9a857859fb442fde6a
+pkgrel=0
+pkgdesc="nvim-cmp source for path"
+url="https://github.com/hrsh7th/cmp-path"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+depends="nvim-cmp"
+source="https://github.com/hrsh7th/cmp-path/archive/$_commit/nvim-cmp-$pkgver.tar.gz"
+builddir="$srcdir/cmp-path-$_commit"
+options="!check" # no tests
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra after lua "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+sha512sums="
+eaf14f5ede9e53bbb3aae7a0430277f2b42c6012248edb007ce3fec0684dffb4c0d9af4a04f7395299a92ba2cae66cdd3307f2e54c696f7b68b85aec18a76d00 nvim-cmp-0.0.0_git20221002.tar.gz
+"
diff --git a/testing/nvim-cmp/APKBUILD b/testing/nvim-cmp/APKBUILD
new file mode 100644
index 00000000000..f17947221f0
--- /dev/null
+++ b/testing/nvim-cmp/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-cmp
+pkgver=0.0.0_git20221011
+_commit=714ccb7483d0ab90de1b93914f3afad1de8da24a
+pkgrel=0
+pkgdesc="completion plugin for neovim"
+url="https://github.com/hrsh7th/nvim-cmp"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+depends="neovim"
+source="https://github.com/hrsh7th/nvim-cmp/archive/$_commit/nvim-cmp-$pkgver.tar.gz"
+builddir="$srcdir/nvim-cmp-$_commit"
+options="!check" # requires vusted
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra lua autoload doc plugin utils "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+doc() {
+ default_doc
+ amove usr/share/nvim/site/doc
+}
+
+sha512sums="
+f17bbe91aee091b53bd5e7b2702f44eaf0ab296de10cdfbcceeb861235d4eb2beb40a4f1cb549d25ffbe9b8e65b62010aaf9b36a2c62dabdc4c8373e9ed0ec5e nvim-cmp-0.0.0_git20221011.tar.gz
+"
diff --git a/testing/nvim-gruvbox/APKBUILD b/testing/nvim-gruvbox/APKBUILD
new file mode 100644
index 00000000000..bf4179e0008
--- /dev/null
+++ b/testing/nvim-gruvbox/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-gruvbox
+pkgver=0.0.0_git20221212
+_commit=c64ec557672c9c8ecc71a438533525482021377f
+pkgrel=0
+pkgdesc="lua port of gruvbox vim colorscheme"
+url="https://github.com/ellisonleao/gruvbox.nvim"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+source="https://github.com/ellisonleao/gruvbox.nvim/archive/$_commit/nvim-gruvbox-$pkgver.tar.gz"
+builddir="$srcdir/gruvbox.nvim-$_commit"
+options="!check" # no tests
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra lua colors autoload "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+sha512sums="
+1a723d5f99296f0354e33cd78f08f31ff77d8e01b161362fbe97ea7b430a2119bd6ca3cedb9d591a3ca528478303387c00e934b9372575a8f8ea85a89329ae70 nvim-gruvbox-0.0.0_git20221212.tar.gz
+"
diff --git a/testing/nvim-lualine/APKBUILD b/testing/nvim-lualine/APKBUILD
new file mode 100644
index 00000000000..c5a538f2037
--- /dev/null
+++ b/testing/nvim-lualine/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-lualine
+pkgver=0.0.0_git20221006
+_commit=edca2b03c724f22bdc310eee1587b1523f31ec7c
+pkgrel=0
+pkgdesc="fast and easy to configure neovim statusline plugin"
+url="https://github.com/nvim-lualine/lualine.nvim"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+source="https://github.com/nvim-lualine/lualine.nvim/archive/$_commit/nvim-lualine-$pkgver.tar.gz"
+builddir="$srcdir/lualine.nvim-$_commit"
+options="!check" # requires neovim binary
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra lua doc "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+doc() {
+ default_doc
+ amove usr/share/nvim/site/doc
+}
+
+sha512sums="
+83e13a44ce877de1b7cce0d56f552d75c6b52b0100c3961687ff06315646a7f6e110293bfa2b6408addd07744d08e27654caf9e9371bba206430ca7aeedfacdd nvim-lualine-0.0.0_git20221006.tar.gz
+"
diff --git a/testing/nvim-packer/APKBUILD b/testing/nvim-packer/APKBUILD
new file mode 100644
index 00000000000..b62c02566fb
--- /dev/null
+++ b/testing/nvim-packer/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-packer
+pkgver=0.0.0_git20220910
+_commit=6afb67460283f0e990d35d229fd38fdc04063e0a
+pkgrel=0
+pkgdesc="use-package inspired plugin manager for neovim"
+url="https://github.com/wbthomason/packer.nvim"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+source="https://github.com/wbthomason/packer.nvim/archive/$_commit/nvim-packer-$pkgver.tar.gz"
+builddir="$srcdir/packer.nvim-$_commit"
+options="!check" # requires entire neovim tree
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra lua doc "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md -t "$pkgdir"/usr/share/doc/$pkgname
+}
+
+doc() {
+ default_doc
+ amove usr/share/nvim/site/doc
+}
+
+sha512sums="
+4f78d23cd909f91f399b7721a1971ef8a63548d08d48d125365cbde425acebb10d3d52ce0c5d0b253223bc98b413945771d5fc1bb1960aa715f0cac9848abba3 nvim-packer-0.0.0_git20220910.tar.gz
+"
diff --git a/testing/nvim-treesitter/APKBUILD b/testing/nvim-treesitter/APKBUILD
new file mode 100644
index 00000000000..3a16b892940
--- /dev/null
+++ b/testing/nvim-treesitter/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=nvim-treesitter
+pkgver=0.0.0_git20221013
+_commit=d3ca4de41faf996258b72924ecb1ecc2df69846e
+pkgrel=0
+pkgdesc="nvim treesitter configurations and abstraction layer"
+url="https://github.com/nvim-treesitter/nvim-treesitter"
+arch="noarch"
+license="Apache-2.0"
+subpackages="$pkgname-doc"
+source="https://github.com/nvim-treesitter/nvim-treesitter/archive/$_commit/nvim-treesitter-$pkgver.tar.gz"
+builddir="$srcdir/nvim-treesitter-$_commit"
+options="!check" # requires entire neovim tree
+
+package() {
+ install -d "$pkgdir"/usr/share/nvim/site
+ cp -ra lua autoload doc plugin queries \
+ "$pkgdir"/usr/share/nvim/site
+ install -Dm644 README.md -t "$pkgdir"/usr/share/doc/$pkgname
+}
+
+doc() {
+ default_doc
+ amove usr/share/nvim/site/doc
+}
+
+sha512sums="
+2ddd2ae92a5044e3c092e87b04385aff3d9bf0b8e886cd2375aa81281cfe82eeda2e8a59a040a270eb45646c3ca9afe4f24a70fc1ec7ce2c8edfc283e6ee89f4 nvim-treesitter-0.0.0_git20221013.tar.gz
+"
diff --git a/testing/nvimpager/APKBUILD b/testing/nvimpager/APKBUILD
new file mode 100644
index 00000000000..203d401c81e
--- /dev/null
+++ b/testing/nvimpager/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Prokop RandáÄek <prokop@rdck.dev>
+# Maintainer: Prokop RandáÄek <prokop@rdck.dev>
+pkgname=nvimpager
+pkgver=0.12.0
+pkgrel=0
+pkgdesc="Use nvim as a pager to view manpages, diffs, etc with nvim's syntax highlighting"
+url="https://github.com/lucc/nvimpager"
+arch="noarch"
+license="BSD-2-Clause"
+depends="cmd:nvim cmd:tput bash"
+makedepends="scdoc"
+checkdepends="cmd:lua lua-busted procps-ng"
+subpackages="$pkgname-doc $pkgname-zsh-completion"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lucc/nvimpager/archive/refs/tags/v$pkgver.tar.gz"
+
+check() {
+ TERM=linux make test
+}
+
+package() {
+ make PREFIX="/usr" DESTDIR=$pkgdir install
+}
+
+sha512sums="
+a1b67aafdb73c5baa96cf0d682b1fa7ac7f39f58d6ce50f9875b1f9815dfce04921ffdd748552f07279cb9cc6b5c700c4aa43b7755952ce7993362b4c664e2de nvimpager-0.12.0.tar.gz
+"
diff --git a/testing/nvtop/APKBUILD b/testing/nvtop/APKBUILD
new file mode 100644
index 00000000000..0614e9b927c
--- /dev/null
+++ b/testing/nvtop/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=nvtop
+pkgver=3.1.0
+pkgrel=0
+pkgdesc="GPUs process monitoring for AMD, Intel and NVIDIA"
+url="https://github.com/Syllo/nvtop"
+# no gpus that are usable on s390x
+arch="all !s390x"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ eudev-dev
+ libdrm-dev
+ ncurses-dev
+ samurai
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/Syllo/nvtop/archive/$pkgver/nvtop-$pkgver.tar.gz"
+options="!check" # no tests provided by upstream
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+
+ case "$CARCH" in
+ arm*|aarch64) local msm=ON ;;
+ *) local msm=OFF ;;
+ esac
+
+ CFLAGS="$CFLAGS -flto=auto -DNDEBUG" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DAMDGPU_SUPPORT=ON \
+ -DINTEL_SUPPORT=ON \
+ -DMSM_SUPPORT=$msm \
+ -DNVIDIA_SUPPORT=ON \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a22806920d85954930cf9a24450de2603418326b59bc7acedf8ff59ddb0f40e119de496a63f42706b4b6961c83ba664a8a33a3e4106a1c3ef6cd3da758aa5a55 nvtop-3.1.0.tar.gz
+"
diff --git a/testing/nwg-bar/APKBUILD b/testing/nwg-bar/APKBUILD
new file mode 100644
index 00000000000..ea57036e24b
--- /dev/null
+++ b/testing/nwg-bar/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=nwg-bar
+pkgver=0.1.6
+pkgrel=2
+pkgdesc="GTK3-based button bar for sway and other wlroots-based compositors"
+url="https://github.com/nwg-piotr/nwg-bar/"
+arch="all"
+license="MIT"
+makedepends="go glib-dev cairo-dev gtk+3.0-dev gtk-layer-shell-dev"
+source="https://github.com/nwg-piotr/nwg-bar/archive/v$pkgver/nwg-bar-v$pkgver.tar.gz"
+options="!check net" # no upstream tests
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o bin/nwg-bar .
+}
+
+package() {
+ install -m755 -D ./bin/nwg-bar "$pkgdir"/usr/bin/nwg-bar
+ install -m644 -D -t "$pkgdir"/usr/share/nwg-bar ./config/*
+ install -m644 -D -t "$pkgdir"/usr/share/nwg-bar/images ./images/*
+}
+
+sha512sums="
+f59a7bf34d86bd7fe5c7a98653b364fbc53cde6262fbb962950b18dd77c8c20d59e1985347e1b3e300b2c9b68a84059009c3b0a9d0ee0152a30171c78435586a nwg-bar-v0.1.6.tar.gz
+"
diff --git a/testing/nwg-displays/APKBUILD b/testing/nwg-displays/APKBUILD
new file mode 100644
index 00000000000..a79ca3d0a93
--- /dev/null
+++ b/testing/nwg-displays/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
+pkgname=nwg-displays
+pkgver=0.3.13
+pkgrel=1
+pkgdesc="Output management utility for sway Wayland compositor"
+url="https://github.com/nwg-piotr/nwg-displays"
+arch="noarch"
+license="MIT"
+depends="
+ gtk+3.0
+ gtk-layer-shell
+ py3-gobject3
+ py3-i3ipc
+ python3
+ wlr-randr
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/nwg-piotr/nwg-displays/archive/v$pkgver/nwg-displays-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+ccf708b5c528519c323951c6a2b2c0b0f5228fdfdf7e94f54f15eeb82d7fa52c8b49bf91399f6801651d02226592dc8cb6833dfe9d0cb59b5c420dd8462e1850 nwg-displays-0.3.13.tar.gz
+"
diff --git a/testing/nwg-dock/APKBUILD b/testing/nwg-dock/APKBUILD
new file mode 100644
index 00000000000..f8dbde7eacb
--- /dev/null
+++ b/testing/nwg-dock/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=nwg-dock
+pkgver=0.3.9
+pkgrel=3
+pkgdesc="GTK3-based dock for sway and other wlroots-based compositors"
+url="https://github.com/nwg-piotr/nwg-dock/"
+arch="all"
+license="MIT"
+makedepends="go glib-dev gtk+3.0-dev gtk-layer-shell-dev" # TODO: strip non-required
+#makedepends="go glib-dev cairo-dev gtk+3.0-dev gtk-layer-shell-dev" # TODO: strip non-required
+source="https://github.com/nwg-piotr/nwg-dock/archive/v$pkgver/nwg-dock-v$pkgver.tar.gz"
+options="!check net" # no upstream tests
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o bin/nwg-dock .
+}
+
+package() {
+ install -m755 -D ./bin/nwg-dock "$pkgdir"/usr/bin/nwg-dock
+ install -m644 -D -t "$pkgdir"/usr/share/nwg-dock ./config/*
+ install -m644 -D -t "$pkgdir"/usr/share/nwg-dock/images ./images/*
+}
+
+sha512sums="
+d19849659691e32a63f00b2a02c829e2cd4276f7539944e2ed7b1d630395471f1785dcb5f9cffc3a0f9aa7cde1a7305536c0ad5714750bcf0f2870e909db5c3e nwg-dock-v0.3.9.tar.gz
+"
diff --git a/testing/nymphcast-client/APKBUILD b/testing/nymphcast-client/APKBUILD
deleted file mode 100644
index ab3f5900618..00000000000
--- a/testing/nymphcast-client/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nymphcast-client
-pkgver=0_git20200310
-pkgrel=0
-_commit="0b494a446b3c215ca60dafa2678703b3f5f6e392"
-arch="all !armv7 !mips !mips64" # armv7, mips blocked by nymphcast
-url="http://nyanko.ws/product_nymphcast.php"
-pkgdesc="Test client for nymphcast"
-license="BSD-3-Clause"
-depends="avahi"
-makedepends="qt5-qtbase-dev nymphcast-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/MayaPosch/NymphCast/archive/$_commit.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/NymphCast-$_commit"
-
-prepare() {
- default_prepare
-
- mkdir "$builddir"/player/NymphCastPlayer/build
-}
-
-build() {
- cd "$builddir"/player/NymphCastPlayer/build
- qmake-qt5 ..
- make
-}
-
-package() {
- cd "$builddir"/player/NymphCastPlayer/build
- install -Dm755 NymphCastPlayer "$pkgdir"/usr/bin/NymphCastPlayer
-}
-
-sha512sums="14d79b6b34e3e05fc6ec56a2f8a8f0601be6342baa645062e663e0e6d115b1895f342ed3ceee2157339e95ce78e3de13156585ba77635e91fde09f90b032845b nymphcast-client-0b494a446b3c215ca60dafa2678703b3f5f6e392.tar.gz"
diff --git a/testing/nymphcast-mediaserver/60_nymphcast-mediaserver.nft b/testing/nymphcast-mediaserver/60_nymphcast-mediaserver.nft
new file mode 100644
index 00000000000..91045d43001
--- /dev/null
+++ b/testing/nymphcast-mediaserver/60_nymphcast-mediaserver.nft
@@ -0,0 +1,7 @@
+#!/usr/sbin/nft -f
+table inet filter {
+ chain input {
+ udp dport 4005 accept comment "accept NymphCast Media Server discovery"
+ tcp dport 4005 accept comment "accept NymphCast Media Server playback"
+ }
+}
diff --git a/testing/nymphcast-mediaserver/APKBUILD b/testing/nymphcast-mediaserver/APKBUILD
new file mode 100644
index 00000000000..bc92f03a2b5
--- /dev/null
+++ b/testing/nymphcast-mediaserver/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=nymphcast-mediaserver
+pkgver=0.1
+pkgrel=2
+arch="all"
+url="http://nyanko.ws/product_nymphcast.php"
+pkgdesc="Media server for the NymphCast ecosystem"
+license="BSD-3-Clause"
+depends="avahi"
+makedepends="
+ libnymphcast-dev
+ nymphrpc-dev
+ poco-dev
+ "
+subpackages="$pkgname-nftables::noarch"
+source="https://github.com/MayaPosch/NymphCast-MediaServer/archive/v$pkgver/nymphcast-mediaserver-v$pkgver.tar.gz
+ 60_nymphcast-mediaserver.nft
+ "
+options="!check" # No tests
+builddir="$srcdir/NymphCast-MediaServer-$pkgver"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+nftables() {
+ pkgdesc="$pkgdesc (nftables rules)"
+ install_if="$pkgname=$pkgver-r$pkgrel nftables"
+
+ install -Dm644 -t "$subpkgdir"/etc/nftables.d "$srcdir"/60_nymphcast-mediaserver.nft
+}
+
+sha512sums="
+98b68f4dc86b7c1f2b16fbee3d3fdc3004d50daf24478c5ff17edd839ad4929f0e60732fbff984b0e52ad7961860a3c2a6291d3ff738a7ffc45aa3f3180bc354 nymphcast-mediaserver-v0.1.tar.gz
+28b84bee510cc8d58ccea9a8f1bb17f61c1c8cee44683b1674506e62c1b4187dfa410150cfffb41a6d803a081ff93d3039afedd9bac602edb8e2ec26bd053d43 60_nymphcast-mediaserver.nft
+"
diff --git a/testing/nymphcast/APKBUILD b/testing/nymphcast/APKBUILD
deleted file mode 100644
index b5bb8a1a705..00000000000
--- a/testing/nymphcast/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nymphcast
-pkgver=0.1_alpha3
-pkgrel=0
-arch="all !mips !mips64" # blocked by nymphrpc -> poco
-url="http://nyanko.ws/product_nymphcast.php"
-pkgdesc="Audio and video casting system with support for custom applications"
-license="BSD-3-Clause"
-depends="avahi"
-depends_dev="nymphrpc-dev"
-makedepends="$depends_dev sdl2-dev sdl2_image-dev ffmpeg-dev openssl-dev"
-subpackages="$pkgname-static $pkgname-dev $pkgname-server $pkgname-server-openrc"
-source="https://github.com/MayaPosch/NymphCast/archive/v${pkgver/_/-}/nymphcast-v${pkgver/_/-}.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/NymphCast-${pkgver/_/-}"
-
-build() {
-
- make -C src/client_lib
- make -C src/server
-}
-
-package() {
- DESTDIR="$pkgdir" PREFIX=/usr make -C src/client_lib install
- DESTDIR="$pkgdir" PREFIX=/usr make -C src/server install-openrc
-}
-
-server() {
- pkgdesc="$pkgdesc (server)"
-
- DESTDIR="$subpkgdir" PREFIX=/usr make -C "$builddir"/src/server install
-}
-
-sha512sums="2602f6341355a74bd8ff3f4ae9fa9f78b6dfa388c7c4218869a5620389d3acc629769a5f358e6e1bd716be137d0fbd4801643c904d21bb5e2fe3b2311b97f9c1 nymphcast-v0.1-alpha3.tar.gz"
diff --git a/testing/nymphrpc/APKBUILD b/testing/nymphrpc/APKBUILD
deleted file mode 100644
index 2095052316c..00000000000
--- a/testing/nymphrpc/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=nymphrpc
-pkgver=0_git20200416
-pkgrel=0
-_commit="b648a65d8b249e6266f38d939e09657bbcfd29f0"
-arch="all !mips !mips64" # blocked by poco
-url="https://github.com/MayaPosch/NymphRPC"
-pkgdesc="Versatile and fast remote procedure call library"
-license="BSD-3-Clause"
-depends_dev="poco-dev"
-makedepends="$depends_dev"
-source="https://github.com/MayaPosch/NymphRPC/archive/$_commit/nymphrpc-$_commit.tar.gz"
-subpackages="$pkgname-static $pkgname-dev"
-options="!check" # No unit tests
-builddir="$srcdir/NymphRPC-$_commit"
-
-build() {
- make lib
-}
-
-package() {
- DESTDIR="$pkgdir" PREFIX="/usr" make install
-}
-
-sha512sums="e42b3df10fd1fe2daf96e87c35f3d373ada05503dedeff104cffa98201cb4092effb0689c28cf96ad5d90e5f771a2226401b1d46a5875d818352fe40ed08e9b4 nymphrpc-b648a65d8b249e6266f38d939e09657bbcfd29f0.tar.gz"
diff --git a/testing/nzbget/APKBUILD b/testing/nzbget/APKBUILD
index 020e2aaff1e..09ae54943df 100644
--- a/testing/nzbget/APKBUILD
+++ b/testing/nzbget/APKBUILD
@@ -1,15 +1,23 @@
# Contributor: August Klein <amatcoder@gmail.com>
# Maintainer: August Klein <amatcoder@gmail.com>
pkgname=nzbget
-pkgver=21.0
-pkgrel=0
+pkgver=21.1
+pkgrel=2
pkgdesc="Usenet downloader"
url="https://nzbget.net"
arch="all"
license="GPL-2.0-or-later"
makedepends="libxml2-dev ncurses-dev openssl-dev"
subpackages="$pkgname-doc"
-source="https://github.com/$pkgname/$pkgname/releases/download/v$pkgver/$pkgname-$pkgver-src.tar.gz"
+source="https://github.com/nzbget/nzbget/releases/download/v$pkgver/nzbget-$pkgver-src.tar.gz
+ openssl3.patch
+ "
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+}
build() {
./configure \
@@ -29,4 +37,7 @@ package() {
make -j1 DESTDIR="$pkgdir" install
}
-sha512sums="bbee5073a2788a17d78009b7ae0c41473aa4d8424301e7e62b2544dc8993e1e3b6e1026dd9f71af5627293d2113d8637a4a6138eee0a328554df298117dd6bb3 nzbget-21.0-src.tar.gz"
+sha512sums="
+d8dc1ad324f675c5505e623049a14c022475267aa03dcd5d8fd6cf9ed3b776cc2776077b61d035e252937ea4b6bf8f90bd33e715cfd842d2e012615df3ffeafb nzbget-21.1-src.tar.gz
+d080db57ee71ca04466b649cce7ca6a32d9fbecee0feae7b5c07482e7590202235e0b8d61dc8b60b4acf3c5bdd6c063042a212951b2d51a13ffe6c547a9ecc2e openssl3.patch
+"
diff --git a/testing/nzbget/openssl3.patch b/testing/nzbget/openssl3.patch
new file mode 100644
index 00000000000..b2f8decf8c7
--- /dev/null
+++ b/testing/nzbget/openssl3.patch
@@ -0,0 +1,29 @@
+Patch-Source: https://github.com/nzbget/nzbget/pull/793
+From f76e8555504e3af4cf8dd4a8c8e374b3ca025099 Mon Sep 17 00:00:00 2001
+From: Simon Chopin <simon.chopin@canonical.com>
+Date: Tue, 7 Dec 2021 13:23:21 +0100
+Subject: [PATCH] daemon:connect: don't use FIPS_mode_set with OpenSSL 3
+
+This function has been removed in OpenSSL 3, replaced by
+EVP_default_properties_enable_fips. See
+https://www.openssl.org/docs/man3.0/man7/migration_guide.html
+---
+ daemon/connect/TlsSocket.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/daemon/connect/TlsSocket.cpp b/daemon/connect/TlsSocket.cpp
+index 544bf6850..831da0dc0 100644
+--- a/daemon/connect/TlsSocket.cpp
++++ b/daemon/connect/TlsSocket.cpp
+@@ -189,7 +189,11 @@ void TlsSocket::Final()
+
+ #ifdef HAVE_OPENSSL
+ #ifndef LIBRESSL_VERSION_NUMBER
++#if OPENSSL_VERSION_NUMBER < 0x30000000L
+ FIPS_mode_set(0);
++#else
++ EVP_default_properties_enable_fips(NULL, 0);
++#endif
+ #endif
+ #ifdef NEED_CRYPTO_LOCKING
+ CRYPTO_set_locking_callback(nullptr);
diff --git a/testing/oauth2-proxy/APKBUILD b/testing/oauth2-proxy/APKBUILD
new file mode 100644
index 00000000000..e941a437c55
--- /dev/null
+++ b/testing/oauth2-proxy/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=oauth2-proxy
+pkgver=7.6.0
+pkgrel=3
+pkgdesc="Reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers"
+url="https://oauth2-proxy.github.io/oauth2-proxy"
+arch="all"
+license="MIT"
+install="$pkgname.pre-install"
+makedepends="go"
+subpackages="$pkgname-openrc"
+source="
+ https://github.com/oauth2-proxy/oauth2-proxy/archive/v$pkgver/oauth2-proxy-$pkgver.tar.gz
+
+ oauth2-proxy.initd
+ oauth2-proxy.confd
+
+ make-dont-disable-cgo.patch
+ "
+options="net"
+
+build() {
+ VERSION="$pkgver" make oauth2-proxy
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 oauth2-proxy "$pkgdir"/usr/bin/oauth2-proxy
+ install -Dm755 "$srcdir"/oauth2-proxy.initd "$pkgdir"/etc/init.d/oauth2-proxy
+ install -Dm755 "$srcdir"/oauth2-proxy.confd "$pkgdir"/etc/conf.d/oauth2-proxy
+ install -Dm644 contrib/oauth2-proxy.cfg.example "$pkgdir"/etc/oauth2-proxy/oauth2-proxy.cfg
+}
+
+sha512sums="
+de7574ae6ecf0da0b9962e4601fdc5b7f742fa0d4a55a0e5844256a2aa10170973c324b1041c490b2be0023b954a53d9b78ed488dcd238a2a047e25ab5ba7667 oauth2-proxy-7.6.0.tar.gz
+4f91d8bff4ced7fca4d0795c2a0a89e0c8cb28f981db435f30b30f122757b8fe9d855a0d4d87497becedc543cdf48d20f3bc7813728bffaeac891d927157a237 oauth2-proxy.initd
+56ec244414ecc96cad80b7c3f231c9e437350046ec80edc3661753bf24e194c51472acf2b097d893f3aed4200b0304e20e9c4d6edd05d698ff54524137c726e7 oauth2-proxy.confd
+783bd07239d36e8913836f2f1970e1603ae43d58e643b689fa9d6abaeaf6b34c5e0e250bd13fefecf7b43c45b66cb54170b9f8b913d35d6def28dcb6ea3a5489 make-dont-disable-cgo.patch
+"
diff --git a/testing/oauth2-proxy/make-dont-disable-cgo.patch b/testing/oauth2-proxy/make-dont-disable-cgo.patch
new file mode 100644
index 00000000000..9006c12e4ea
--- /dev/null
+++ b/testing/oauth2-proxy/make-dont-disable-cgo.patch
@@ -0,0 +1,16 @@
+Fixes: -buildmode=pie requires external (cgo) linking, but cgo is not enabled
+
+This is enforced on riscv64 since go 1.22
+diff --git a/Makefile b/Makefile
+index 41d01bf..b1d7e17 100644
+--- a/Makefile
++++ b/Makefile
+@@ -40,7 +40,7 @@ lint: validate-go-version
+ build: validate-go-version clean $(BINARY)
+
+ $(BINARY):
+- CGO_ENABLED=0 $(GO) build -a -installsuffix cgo -ldflags="-X main.VERSION=${VERSION}" -o $@ github.com/oauth2-proxy/oauth2-proxy/v7
++ $(GO) build -a -installsuffix cgo -ldflags="-X main.VERSION=${VERSION}" -o $@ github.com/oauth2-proxy/oauth2-proxy/v7
+
+ DOCKER_BUILD_PLATFORM ?= linux/amd64,linux/arm64,linux/ppc64le,linux/arm/v7
+ DOCKER_BUILD_RUNTIME_IMAGE ?= gcr.io/distroless/static:nonroot
diff --git a/testing/oauth2-proxy/oauth2-proxy.confd b/testing/oauth2-proxy/oauth2-proxy.confd
new file mode 100644
index 00000000000..bf95e6b8125
--- /dev/null
+++ b/testing/oauth2-proxy/oauth2-proxy.confd
@@ -0,0 +1,5 @@
+# comment to not use process supervisor
+supervisor=supervise-daemon
+
+# extra args
+#command_args=""
diff --git a/testing/oauth2-proxy/oauth2-proxy.initd b/testing/oauth2-proxy/oauth2-proxy.initd
new file mode 100644
index 00000000000..0c32bc2edbc
--- /dev/null
+++ b/testing/oauth2-proxy/oauth2-proxy.initd
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+
+command="/usr/bin/oauth2-proxy"
+command_args="--config=/etc/oauth2-proxy/oauth2-proxy.cfg $command_args"
+command_user="oa2proxy:oa2proxy"
+command_background=true
+directory="/var/lib/oauth2-proxy"
+pidfile="/run/$RC_SVCNAME.pid"
+
+output_log="/var/log/oauth2-proxy.log"
+error_log="/var/log/oauth2-proxy.log"
+
+extra_started_commands="reload"
+description_reload="Reload configuration"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 755 -o $command_user /run/oauth2-proxy
+ checkpath -d -m 755 -o $command_user /var/lib/oauth2-proxy
+
+ checkpath -f -m 640 -o $command_user /etc/oauth2-proxy/oauth2-proxy.cfg
+ checkpath -f -m 644 -o $command_user /var/log/oauth2-proxy.log
+}
+
+reload() {
+ ebegin "Reloading configuration"
+
+ if [ -n "$supervisor" ]; then
+ $supervisor $RC_SVCNAME --signal HUP
+ else
+ start-stop-daemon --signal HUP --pidfile "$pidfile"
+ fi
+}
diff --git a/testing/oauth2-proxy/oauth2-proxy.pre-install b/testing/oauth2-proxy/oauth2-proxy.pre-install
new file mode 100644
index 00000000000..3f94b54e4c3
--- /dev/null
+++ b/testing/oauth2-proxy/oauth2-proxy.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S oa2proxy 2>/dev/null
+adduser -S -D -H -h /var/lib/oauth2-proxy -s /sbin/nologin -G oa2proxy -g oa2proxy oa2proxy 2>/dev/null
+
+exit 0
diff --git a/testing/obfs4proxy/APKBUILD b/testing/obfs4proxy/APKBUILD
deleted file mode 100644
index 5f47a4795bc..00000000000
--- a/testing/obfs4proxy/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Katie Holly <holly@fuslvz.ws>
-# Maintainer: Katie Holly <holly@fuslvz.ws>
-pkgname=obfs4proxy
-pkgver=0.0.11
-pkgrel=1
-pkgdesc="pluggable transport proxy for Tor, implementing obfs4"
-url="https://gitweb.torproject.org/pluggable-transports/obfs4.git/"
-arch="x86_64 x86 armv7"
-license="BSD-3-Clause"
-makedepends="go glide"
-options="!strip chmod-clean"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Yawning/obfs4/archive/obfs4proxy-$pkgver.tar.gz
- glide.yaml
- glide.lock
- "
-builddir="$srcdir"/obfs4-$pkgname-$pkgver
-_godir="$srcdir"/go
-_vendordir="$_godir"/src/git.torproject.org/pluggable-transports/obfs4.git
-
-unpack() {
- default_unpack
- mkdir -p "$_godir"/bin "$_vendordir" "$builddir/.glide" "$builddir/.glidetmp"
- rmdir "$_vendordir"
- ln -sf "$builddir" "$_vendordir"
- cp "$srcdir"/glide.yaml "$srcdir"/glide.lock "$_vendordir"
-}
-
-build() {
- cd "$_vendordir"
- export GOPATH="$_godir"
- export PATH="$PATH:$GOPATH"
- GLIDE_HOME="$builddir/.glide" GLIDE_TMP="$builddir/.glidetmp" glide install
- go build -v -o ./$pkgname-executable ./$pkgname
-}
-
-check() {
- cd "$_vendordir"
- go test -short ./...
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin
- install -Dm755 $pkgname-executable "$pkgdir"/usr/bin/$pkgname
-}
-
-sha512sums="3eb50bc8067802f8260e0926999a659919e55cb34247f443f66a4852c9ceceacae361602a57ad1fd28a84e4ed54f3800c3258e67266eb23d45b1d09e31c5d869 obfs4proxy-0.0.11.tar.gz
-5531b275dc7954b46382f3e01a5d014cc9e06df001c08d80861c6a65e3110d1152219c76231f4ab0f81d95cff3bebcf4b6c687fd65ec8b0980364a716b9a08c2 glide.yaml
-e1a8de9a26d3ae49cf7feb53d16b75c19827a4a04e84a0f44412da25f49152205da17c5be832bd94c0688d7e078679350bd8c0ff9c9fbe3eb9cefed42bedfe2f glide.lock"
diff --git a/testing/obfs4proxy/glide.lock b/testing/obfs4proxy/glide.lock
deleted file mode 100644
index 159b228616f..00000000000
--- a/testing/obfs4proxy/glide.lock
+++ /dev/null
@@ -1,25 +0,0 @@
-hash: 784b5b8f5e754ef8f63a01e552ceb75767be4ecdc1735996e68c46114bcff6bf
-updated: 2018-02-22T10:55:09.464159938Z
-imports:
-- name: git.torproject.org/pluggable-transports/goptlib.git
- version: a3ad5df6c9e7dc8117f55958b4ce99bf1e0fe291
-- name: github.com/agl/ed25519
- version: 5312a61534124124185d41f09206b9fef1d88403
- subpackages:
- - edwards25519
- - extra25519
-- name: github.com/dchest/siphash
- version: 4ebf1de738443ea7f45f02dc394c4df1942a126d
-- name: golang.org/x/crypto
- version: dc137beb6cce2043eb6b5f223ab8bf51c32459f4
- subpackages:
- - curve25519
- - hkdf
- - nacl/secretbox
- - poly1305
- - salsa20/salsa
-- name: golang.org/x/net
- version: f2499483f923065a842d38eb4c7f1927e6fc6e6d
- subpackages:
- - proxy
-testImports: []
diff --git a/testing/obfs4proxy/glide.yaml b/testing/obfs4proxy/glide.yaml
deleted file mode 100644
index 6772cc244de..00000000000
--- a/testing/obfs4proxy/glide.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-package: git.torproject.org/pluggable-transports/obfs4.git
-import:
-- package: git.torproject.org/pluggable-transports/goptlib.git
-- package: github.com/agl/ed25519
- subpackages:
- - extra25519
-- package: github.com/dchest/siphash
-- package: golang.org/x/crypto
- subpackages:
- - curve25519
- - hkdf
- - nacl/secretbox
-- package: golang.org/x/net
- subpackages:
- - proxy
diff --git a/testing/objconv/APKBUILD b/testing/objconv/APKBUILD
new file mode 100644
index 00000000000..4a253da43cb
--- /dev/null
+++ b/testing/objconv/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Olliver Schinagl <oliver@schinagl.nl>
+# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
+pkgname="objconv"
+pkgver="2.52_git20210213"
+pkgrel=2
+pkgdesc="Agner's Object file converter"
+url="http://www.agner.org/optimize/#objconv"
+arch="all"
+license="GPL-3.0-or-later" # License is GPL with a link to gnu's GPL v3
+options="!check" # No tests available
+_commitish="42c66561231fffd39030778c1590ffb232539da3"
+source="
+ ${pkgname}-${pkgver}.tar.gz::https://github.com/gitGNU/objconv/archive/${_commitish}.tar.gz
+"
+builddir="${srcdir}/${pkgname}-${_commitish}"
+
+prepare() {
+ default_prepare
+
+ find "${builddir}/" -type f -iname 'objconv' -delete
+}
+
+build() {
+ cd "${builddir}/src/"
+ make -f "../Makefile"
+}
+
+package() {
+ install -D -m 0755 "${builddir}/src/objconv" "${pkgdir}/usr/bin/objconv"
+}
+
+sha512sums="5f711e0655ba9d95e2df0f76cff2f375dac943f81e97a88681664fde467e658923e604b89f31a85bc924d8e8fd606b1e4fa8871e391d1f9ea8408b474fac1b8a objconv-2.52_git20210213.tar.gz"
diff --git a/testing/obs-studio/APKBUILD b/testing/obs-studio/APKBUILD
deleted file mode 100644
index 9a01773ed12..00000000000
--- a/testing/obs-studio/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=obs-studio
-pkgver=25.0.8
-pkgrel=1
-pkgdesc="Free and open source software for live streaming and screen recording"
-url="https://obsproject.com/"
-arch="x86 x86_64"
-license="GPL-2.0"
-options="!check"
-makedepends="cmake ffmpeg-dev libxinerama-dev
- qt5-qtbase-dev qt5-qtx11extras-dev qt5-qtsvg-dev x264-dev fontconfig-dev
- libxcomposite-dev freetype-dev libx11-dev mesa-dev curl-dev
- pulseaudio-dev jack-dev vlc-dev alsa-lib-dev fdk-aac-dev speexdsp-dev
- v4l-utils-dev jansson-dev eudev-dev swig mbedtls-dev python3-dev"
-subpackages="$pkgname-dev"
-source="https://github.com/obsproject/obs-studio/archive/$pkgver/obs-studio-$pkgver.tar.gz"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DUNIX_STRUCTURE=1
- make -C build
-}
-
-package() {
- DESTDIR="$pkgdir" make -C build install
-}
-
-sha512sums="a97c03dc218a4e03e48f6a7dc82b4a59ebeee2039f17be66bb847681ce9ff3d25e6e015be4af78fe44739f6fad5089b6e683d7657c2e4fde8e547df9a2594a08 obs-studio-25.0.8.tar.gz"
diff --git a/testing/ocaml-alcotest/APKBUILD b/testing/ocaml-alcotest/APKBUILD
new file mode 100644
index 00000000000..d1c0d4fd25a
--- /dev/null
+++ b/testing/ocaml-alcotest/APKBUILD
@@ -0,0 +1,103 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-alcotest
+pkgver=1.5.0
+pkgrel=4
+_pkgreal=alcotest-js
+pkgdesc="Lightweight and colourful test framework"
+url="https://github.com/mirage/alcotest"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-astring-dev
+ ocaml-cmdliner-dev
+ ocaml-fmt-dev
+ ocaml-re-dev
+ ocaml-stdlib-shims
+ ocaml-uutf-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ "
+checkdepends="ocaml-result-dev"
+provides="$pkgname-lwt=$pkgver-r$pkgrel"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/alcotest/releases/download/$pkgver/alcotest-js-$pkgver.tbz
+ test-expected-output.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build \
+ -p alcotest,alcotest-lwt \
+ @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv \
+ -p alcotest,alcotest-lwt
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ alcotest alcotest-lwt
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+ provides="$pkgname-lwt-dev=$pkgver-r$pkgrel"
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+1aea91de40795ec4f6603d510107e4b663c1a94bd223f162ad231316d8595e9e098cabbe28a46bdcb588942f3d103d8377373d533bcc7413ba3868a577469b45 ocaml-alcotest-1.5.0.tar.bz2
+d379be678e86467573067bac990ea683c627f4d16c1c4d31e7803ab4b5623164f1bf35c908b44e5e434df938b9902a601e998d4e9cd7c4be888e421048b57fda test-expected-output.patch
+"
diff --git a/testing/ocaml-alcotest/test-expected-output.patch b/testing/ocaml-alcotest/test-expected-output.patch
new file mode 100644
index 00000000000..f737cf4362b
--- /dev/null
+++ b/testing/ocaml-alcotest/test-expected-output.patch
@@ -0,0 +1,9 @@
+--- a/test/e2e/alcotest/failing/unknown_option.expected
++++ b/test/e2e/alcotest/failing/unknown_option.expected
+@@ -1,3 +1,3 @@
+-unknown_option.<ext>: unknown option `--dry-runn'.
+-Usage: unknown_option.<ext> COMMAND ...
+-Try `unknown_option.<ext> --help' for more information.
++unknown_option.<ext>: unknown option '--dry-runn'.
++Usage: unknown_option.<ext> [COMMAND] …
++Try 'unknown_option.<ext> --help' for more information.
diff --git a/testing/ocaml-amqp-client/APKBUILD b/testing/ocaml-amqp-client/APKBUILD
new file mode 100644
index 00000000000..bb26395ed85
--- /dev/null
+++ b/testing/ocaml-amqp-client/APKBUILD
@@ -0,0 +1,86 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-amqp-client
+pkgver=2.3.0
+pkgrel=0
+_pkgreal=amqp-client
+pkgdesc="AMQP 0.9.1 client library"
+url="https://github.com/andersfugmann/amqp-client"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-lwt-dev
+ ocaml-lwt_log-dev
+ ocaml-uri-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-ezxmlm-dev
+ "
+subpackages="$pkgname-dev"
+source="https://github.com/andersfugmann/amqp-client/archive/$pkgver/amqp-client-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --verbose \
+ -p amqp-client,amqp-client-lwt
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose \
+ -p amqp-client,amqp-client-lwt
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit \
+ amqp-client amqp-client-lwt
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+921c3f4d0d655dc5caa5c89fe8c4309a6e22d91167676062e0e73f3007b0b5de20e7b461aefdddca6dbdf716d57d90eaefb7e974ae218cce0f0a20fb461c965d amqp-client-2.3.0.tar.gz
+"
diff --git a/testing/ocaml-angstrom/APKBUILD b/testing/ocaml-angstrom/APKBUILD
new file mode 100644
index 00000000000..a42f7378ad6
--- /dev/null
+++ b/testing/ocaml-angstrom/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-angstrom
+_pkgname=angstrom
+pkgver=0.16.0
+pkgrel=0
+pkgdesc="Parser combinators built for speed and memory-efficiency"
+url="https://github.com/inhabitedtype/angstrom"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-bigstringaf-dev ocaml-lwt-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-ppx_let-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/inhabitedtype/angstrom/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p angstrom,angstrom-unix \
+ --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ angstrom angstrom-unix
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3fda504f0d4cb53d0b7d249964257f3ab8f9a0b4e0dee13665e8b65d2a281bc1e0529f4f2e29cf376c7331bd44833cae929641a559ac003989c7341b08e33f6c angstrom-0.16.0.tar.gz
+"
diff --git a/testing/ocaml-arp/APKBUILD b/testing/ocaml-arp/APKBUILD
new file mode 100644
index 00000000000..c22a298123e
--- /dev/null
+++ b/testing/ocaml-arp/APKBUILD
@@ -0,0 +1,99 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-arp
+_pkgname=arp
+pkgver=3.0.0
+pkgrel=3
+pkgdesc="Address Resolution Protocol purely in OCaml"
+url="https://github.com/mirage/arp"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+# ocaml-bisect_ppx only needed for dev
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-bisect_ppx-dev
+ ocaml-cstruct-dev
+ ocaml-duration-dev
+ ocaml-ethernet-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-mirage-profile-dev
+ ocaml-mirage-time-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="
+ ocaml-alcotest-dev
+ ocaml-fmt-dev
+ ocaml-mirage-clock-unix-dev
+ ocaml-mirage-flow-dev
+ ocaml-mirage-random-dev
+ ocaml-mirage-random-test-dev
+ ocaml-mirage-time-unix-dev
+ ocaml-mirage-vnetif-dev
+ "
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/arp/releases/download/v$pkgver/arp-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+52eb9fdb00729a5b6c1d7dd9d14fca213aecddc6e2893c0e670dea3b31576e6765061f557b6521a065ed15a931f4cbbf432b4db8fe53df40dc801695acd242d4 ocaml-arp-3.0.0.tar.bz2
+"
diff --git a/testing/ocaml-asn1-combinators/APKBUILD b/testing/ocaml-asn1-combinators/APKBUILD
new file mode 100644
index 00000000000..12a7420c85b
--- /dev/null
+++ b/testing/ocaml-asn1-combinators/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-asn1-combinators
+_pkgname=asn1-combinators
+pkgver=0.2.6
+pkgrel=2
+pkgdesc="Embed typed ASN.1 grammars in OCaml"
+url="https://github.com/mirleft/ocaml-asn1-combinators"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+# ocaml-zarith is not separated into a -dev subpackage
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-ptime-dev
+ ocaml-zarith
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirleft/ocaml-asn1-combinators/releases/download/v$pkgver/asn1-combinators-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+4c1b28f1d230395ff1ad3b8e8d03981b10015062ec270f29e2521914eb64c2fa4d5df68363e339e9a1158c3b58aef0e25156f7ec6addd85a580fecadc17edfac ocaml-asn1-combinators-0.2.6.tar.bz2
+"
diff --git a/testing/ocaml-astring/APKBUILD b/testing/ocaml-astring/APKBUILD
new file mode 100644
index 00000000000..7b84534b292
--- /dev/null
+++ b/testing/ocaml-astring/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-astring
+_pkgname=astring
+pkgver=0.8.5
+pkgrel=2
+pkgdesc="Alternative String module for OCaml"
+url="https://erratique.ch/software/astring"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ ocaml-topkg
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/astring/releases/astring-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+b40634cc2053d651bce5c1974996b352ffa48ecac429919113840b2a807efb34387d950f12accb346afd5e40514cb90219d70b00109c30e1450c4e99f65c9856 ocaml-astring-0.8.5.tar.bz2
+"
diff --git a/testing/ocaml-atd/APKBUILD b/testing/ocaml-atd/APKBUILD
new file mode 100644
index 00000000000..37b049e44b1
--- /dev/null
+++ b/testing/ocaml-atd/APKBUILD
@@ -0,0 +1,93 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-atd
+pkgver=2.15.0
+pkgrel=0
+_pkgreal=atd
+pkgdesc="Adjustable Type Definitions"
+url="https://github.com/ahrefs/atd"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-biniou-dev
+ ocaml-easy-format-dev
+ ocaml-re-dev
+ ocaml-yojson-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-cmdliner-dev
+ ocaml-menhir
+ "
+checkdepends="
+ ocaml-alcotest-dev
+ py3-jsonschema
+ "
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/ahrefs/atd/releases/download/$pkgver/atd-$pkgver.tbz
+ disable-ocaml-internals-test.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv \
+ -p atd,atdgen,atdgen-codec-runtime,atdgen-runtime,atdts
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+33b7943ae6afd14e5a0709d9131d288e663d3f2b962caa065f1b11db8f6adfe081becba7968c8596b3ff2420577295ac248d521858cb0748e95971390eb29829 atd-2.15.0.tar.bz2
+0b41d1224f770ca868c09548716c01a8c8f4508cd790f4d8b39afbc602365e197369d4d2fd766a6ab06d002e376e112525768b6b20b732ace6b56037f0b9f71d disable-ocaml-internals-test.patch
+"
diff --git a/testing/ocaml-atd/disable-ocaml-internals-test.patch b/testing/ocaml-atd/disable-ocaml-internals-test.patch
new file mode 100644
index 00000000000..13789ce7f80
--- /dev/null
+++ b/testing/ocaml-atd/disable-ocaml-internals-test.patch
@@ -0,0 +1,11 @@
+--- a/atdgen/test/test_atdgen_main.ml
++++ b/atdgen/test/test_atdgen_main.ml
+@@ -675,7 +675,7 @@
+ check (encoded = input)
+
+ let all_tests : (string * (unit -> unit)) list = [
+- "ocaml internals", test_ocaml_internals;
++(*"ocaml internals", test_ocaml_internals;*)
+ "biniou missing record fields", test_biniou_missing_field;
+ "biniou missing tuple fields", test_biniou_missing_cell;
+ "biniou read/write unit", test_biniou_read_write_unit;
diff --git a/testing/ocaml-base/APKBUILD b/testing/ocaml-base/APKBUILD
new file mode 100644
index 00000000000..43fd9208c68
--- /dev/null
+++ b/testing/ocaml-base/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-base
+_pkgname=base
+pkgver=0.16.3
+pkgrel=0
+pkgdesc="Full standard library replacement for OCaml"
+url="https://github.com/janestreet/base"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-sexplib0-dev"
+makedepends="$depends_dev dune dune-configurator ocaml ocaml-compiler-libs"
+subpackages="$pkgname-dev"
+source="https://github.com/janestreet/base/archive/refs/tags/v$pkgver/base-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+69380ed392faf4495459f97f70a10a6959fce71d2e6ba093472fc272141646307fd7872407de855dfa48ef0435f6587eae5aa50f4a67eac40a9e1946d0c3c070 base-0.16.3.tar.gz
+"
diff --git a/testing/ocaml-base64/APKBUILD b/testing/ocaml-base64/APKBUILD
new file mode 100644
index 00000000000..272311c991d
--- /dev/null
+++ b/testing/ocaml-base64/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-base64
+_pkgname=base64
+pkgver=3.5.0
+pkgrel=2
+pkgdesc="Base64 encoding for OCaml"
+url="https://github.com/mirage/ocaml-base64"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-bos-dev ocaml-rresult-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ocaml-base64/releases/download/v$pkgver/base64-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+82efc76ca75717dbd533eac20845ca8731f535233f6a3e6081114d7e3dc7ee8367ded16f402ef05ad0bf1217a3a6224161c92b9467023e44fc7f3598a314a432 ocaml-base64-3.5.0.tar.bz2
+"
diff --git a/testing/ocaml-bigarray-compat/APKBUILD b/testing/ocaml-bigarray-compat/APKBUILD
new file mode 100644
index 00000000000..c2946c7961d
--- /dev/null
+++ b/testing/ocaml-bigarray-compat/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-bigarray-compat
+_pkgname=bigarray-compat
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Compatibility library to use Stdlib.Bigarray when possible"
+url="https://github.com/mirage/bigarray-compat"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+options="!check"
+makedepends="dune ocaml ocaml-findlib ocamlbuild ocaml-compiler-libs"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mirage/bigarray-compat/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+
+ # FIXME: quick fix for ocaml-ctypes
+ ln -sv bigarray-compat/bigarray_compat.cmi \
+ "$pkgdir"/usr/lib/ocaml/
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+bbd9c2b319930db832ae8d41844ef81e74ced9f745f32981f2efcc9777220d55e1e5d6dc2965e9e1a6ed5e0d56ad27c672289f8dc28fbe2658f3230cbda5a800 ocaml-bigarray-compat-1.1.0.tar.gz
+"
diff --git a/testing/ocaml-bigstringaf/APKBUILD b/testing/ocaml-bigstringaf/APKBUILD
new file mode 100644
index 00000000000..3f67f25a426
--- /dev/null
+++ b/testing/ocaml-bigstringaf/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-bigstringaf
+_pkgname=bigstringaf
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="Bigstring intrinsics and fast blits based on memcpy/memmove"
+url="https://github.com/inhabitedtype/bigstringaf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/inhabitedtype/bigstringaf/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+c5148d967beef15bba21a706009cb8443fe6afd76b949d6a6bcf4fc6c6d410bd0ca4c86b4ef6897cad73c51449e5387ee0173347b8d43c49f1a62024a8aa4db5 ocaml-bigstringaf-0.9.0.tar.gz
+"
diff --git a/testing/ocaml-biniou/APKBUILD b/testing/ocaml-biniou/APKBUILD
new file mode 100644
index 00000000000..79a3a58f6f9
--- /dev/null
+++ b/testing/ocaml-biniou/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-biniou
+_pkgname=biniou
+pkgver=1.2.1
+pkgrel=5
+pkgdesc="Extensible binary data format, like JSON but faster"
+url="https://github.com/ocaml-community/biniou"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-easy-format-dev ocaml-findlib"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml-community/biniou/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f0166666559f3a767fdc6987bad45ec4a772b70b8880b6d769ef644c9bfd46962f089c7b5dfff368413015e765daf4bacffe253bdb3478d9a4d30a15f0d29589 ocaml-biniou-1.2.1.tar.gz
+"
diff --git a/testing/ocaml-bisect_ppx/APKBUILD b/testing/ocaml-bisect_ppx/APKBUILD
new file mode 100644
index 00000000000..dee6025c47e
--- /dev/null
+++ b/testing/ocaml-bisect_ppx/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-bisect_ppx
+_pkgname=bisect_ppx
+pkgver=2.8.3
+pkgrel=0
+pkgdesc="Code coverage for OCaml"
+url="https://github.com/aantron/bisect_ppx"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cmdliner-dev
+ ocaml-ppxlib-dev
+ "
+makedepends="$depends_dev dune ocaml"
+options="!check" # needs ocamlformat
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/aantron/bisect_ppx/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+061f335617ff294a470efd9769adacf7a6fd11f30493aea8717e4b61a79e77a4f610dbf6026f518b35e3ef58bd0ba209bfdf60e589888469bee815d007488beb bisect_ppx-2.8.3.tar.gz
+"
diff --git a/testing/ocaml-bitstring/APKBUILD b/testing/ocaml-bitstring/APKBUILD
new file mode 100644
index 00000000000..697f54c3c86
--- /dev/null
+++ b/testing/ocaml-bitstring/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-bitstring
+_pkgname=bitstring
+pkgver=4.1.0
+pkgrel=3
+pkgdesc="Erlang-style bitstrings for OCaml"
+url="https://github.com/xguerin/bitstring"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.0-or-later"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ppxlib-dev
+ ocaml-stdlib-shims
+ "
+makedepends="$depends_dev dune ocaml"
+options="!check" # needs oUnit
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xguerin/bitstring/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+808c2f1e12286a0a346d52b0a72008e248a3ca0fd9f99b8db9f38929d25492bcb6e65ecb7e7339c23269dd948c51e5f0fc917b13adc0c497ea4d4e5c0ed7d250 ocaml-bitstring-4.1.0.tar.gz
+"
diff --git a/testing/ocaml-bos/APKBUILD b/testing/ocaml-bos/APKBUILD
new file mode 100644
index 00000000000..0e0859abc27
--- /dev/null
+++ b/testing/ocaml-bos/APKBUILD
@@ -0,0 +1,91 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-bos
+_pkgname=bos
+pkgver=0.2.1
+pkgrel=2
+pkgdesc="Basic OS interaction for OCaml"
+url="https://erratique.ch/software/bos"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-astring-dev
+ ocaml-fmt-dev
+ ocaml-fpath-dev
+ ocaml-logs-dev
+ ocaml-rresult-dev
+ "
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+checkdepends="ocaml-mtime-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/bos/releases/bos-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+8daeb8a4c2dd1f2460f6274ada19f4f1b6ebe875ff83a938c93418ce0e6bdb74b8afc5c9a7d410c1c9df2dad030e4fa276b6ed2da580639484e8b5bc92610b1d ocaml-bos-0.2.1.tar.bz2
+"
diff --git a/testing/ocaml-ca-certs-nss/APKBUILD b/testing/ocaml-ca-certs-nss/APKBUILD
new file mode 100644
index 00000000000..17a16aaf261
--- /dev/null
+++ b/testing/ocaml-ca-certs-nss/APKBUILD
@@ -0,0 +1,101 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ca-certs-nss
+_pkgname=ca-certs-nss
+pkgver=3.89.1
+pkgrel=1
+pkgdesc="X.509 trust anchors extracted from Mozilla's NSS"
+url="https://github.com/mirage/ca-certs-nss"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-mirage-clock-dev
+ ocaml-mirage-crypto-dev
+ ocaml-x509-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-astring-dev
+ ocaml-bos-dev
+ ocaml-cmdliner-dev
+ ocaml-logs-dev
+ ocaml-fmt-dev
+ gmp-dev
+ "
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ca-certs-nss/releases/download/v$pkgver/ca-certs-nss-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=""
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+274d59075585ca13420c2d35082e9d12e1d842620c9b13e2215e0ade8c114d18e85dfe08da24f51dbfe69abccaef14d0ca6968f6073718063a925cdc9986699e ocaml-ca-certs-nss-3.89.1.tar.bz2
+"
diff --git a/testing/ocaml-ca-certs/APKBUILD b/testing/ocaml-ca-certs/APKBUILD
new file mode 100644
index 00000000000..834292bc984
--- /dev/null
+++ b/testing/ocaml-ca-certs/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ca-certs
+_pkgname=ca-certs
+pkgver=0.2.2
+pkgrel=2
+pkgdesc="Detect root CA certificates from the operating system"
+url="https://github.com/mirage/ca-certs"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-astring-dev
+ ocaml-bos-dev
+ ocaml-fpath-dev
+ ocaml-logs-dev
+ ocaml-mirage-crypto-dev
+ ocaml-ptime-dev
+ ocaml-x509-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-fmt-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ca-certs/releases/download/v$pkgver/ca-certs-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+70e564a5bb69a66018ff3387bf7b4b6af2ec1507d9f2f140f2aa8519e405920ec1469e56d1fa2aa8b452d05531a35f22df2c1ac08071f9a322525e95de8e3e1f ocaml-ca-certs-0.2.2.tar.bz2
+"
diff --git a/testing/ocaml-cairo2/APKBUILD b/testing/ocaml-cairo2/APKBUILD
new file mode 100644
index 00000000000..0ff0a866016
--- /dev/null
+++ b/testing/ocaml-cairo2/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-cairo2
+_pkgname=cairo2
+pkgver=0.6.2
+pkgrel=2
+pkgdesc="OCaml bindings to Cairo, a 2D Vector Graphics Library"
+url="https://github.com/Chris00/ocaml-cairo"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ dune
+ dune-configurator-dev
+ ocaml
+ ocaml-compiler-libs
+ ocaml-csexp-dev
+ cairo-dev
+ "
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/Chris00/ocaml-cairo/releases/download/$pkgver/cairo2-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build -p cairo2 @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ cairo2
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+789b65428855c3b8fb71836ee6e607870c3140a6152fb01b8ba6e7d2e2f4842a62412061a5eff99023234d305587b605d0cbbacd29456c86a52e9df6466bd302 ocaml-cairo2-0.6.2.tar.bz2
+"
diff --git a/testing/ocaml-calendar/APKBUILD b/testing/ocaml-calendar/APKBUILD
index ceb4e8a5226..d58c15b9095 100644
--- a/testing/ocaml-calendar/APKBUILD
+++ b/testing/ocaml-calendar/APKBUILD
@@ -1,30 +1,33 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-calendar
-pkgver=2.03.2
-pkgrel=1
+_pkgname=calendar
+pkgver=2.04
+pkgrel=4
pkgdesc="Objective Caml library for managing dates and times"
-url="http://calendar.forge.ocamlcore.org/"
-arch="aarch64 ppc64le x86_64" # restrict by ocaml
-license="LGPL-2.1-or-later-WITH-linking-exception"
+url="https://forge.ocamlcore.org/projects/calendar/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
makedepends="ocaml ocaml-findlib-dev ocaml-ocamldoc gawk"
subpackages="$pkgname-dev $pkgname-doc"
-source="http://forge.ocamlcore.org/frs/download.php/915/calendar-2.03.2.tar.gz"
-builddir="$srcdir/calendar-$pkgver"
+source="https://download.ocamlcore.org/calendar/calendar/$pkgver/calendar-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
./configure --prefix=/usr --libdir=/usr/lib
make
}
check() {
- cd "$builddir"
make tests
}
package() {
- cd "$builddir"
export DESTDIR="$pkgdir"
export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
mkdir -p "$OCAMLFIND_DESTDIR"
@@ -34,4 +37,43 @@ package() {
install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-sha512sums="c6acc326aaed77d238126f8723a8e3e4054808ddfef974d9aead39731f4ab9f386eff2f34aab17e4eade3825dd1e3b708a404ecde3fc9b82416482c7095de82b calendar-2.03.2.tar.gz"
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3941768428eda47f47912846cc2921ee82c722bda7cf6095c1c8bdcfebc19bb8f64ebb1a25475396d2a49c186b83421af63602a54a261684117b1c036a66cf3d calendar-2.04.tar.gz
+"
diff --git a/testing/ocaml-camlp5/APKBUILD b/testing/ocaml-camlp5/APKBUILD
deleted file mode 100644
index cf390127607..00000000000
--- a/testing/ocaml-camlp5/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: alpine-mips-patches <info@mobile-stream.com>
-# Maintainer: alpine-mips-patches <info@mobile-stream.com>
-pkgname=ocaml-camlp5
-_pkgname=camlp5
-pkgver=7.07
-_pkgver="rel707"
-pkgrel=0
-pkgdesc="Preprocessor-pretty-printer of OCaml"
-url="https://camlp5.github.io"
-arch="aarch64 ppc64le x86_64" # reflect ocaml aport platforms
-license="BSD"
-depends="ocaml-runtime"
-makedepends="ocaml ocaml-compiler-libs"
-options="!check"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$_pkgver.tar.gz::https://github.com/camlp5/$_pkgname/archive/$_pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$_pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- --prefix /usr \
- --bindir /usr/bin \
- --libdir /usr/lib/ocaml \
- --mandir /usr/share/man
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-dev() {
- # mkcamlp5* call ocamlc
- depends="$pkgname=$pkgver-r$pkgrel ocaml ocaml-compiler-libs"
- pkgdesc="$pkgdesc (development files)"
-
- local _bindir="usr/bin"
- mkdir -p "$subpkgdir/$_bindir"
- mv "$pkgdir/$_bindir/"mkcamlp5* "$subpkgdir/$_bindir"
-
- local _camlp5dir="usr/lib/ocaml/camlp5"
- mkdir -p "$subpkgdir/$_camlp5dir"
- for p in '*.a' '*.cmx' '*.cmxa' '*.mli' '*.o'; do
- mv "$pkgdir/$_camlp5dir/"$p "$subpkgdir/$_camlp5dir"
- done
-}
-
-sha512sums="e396c109c67383ba56f3ada43f5b5ece8b2339528553802386a1d9637a151a14d7dfc48c0a4219b24ca53fad7acfddfd4dc2c1fe109ced8b71f16202b94b8cf6 ocaml-camlp5-rel707.tar.gz"
diff --git a/testing/ocaml-camlzip/APKBUILD b/testing/ocaml-camlzip/APKBUILD
new file mode 100644
index 00000000000..4b24ebb8cc4
--- /dev/null
+++ b/testing/ocaml-camlzip/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-camlzip
+_pkgname=camlzip
+pkgver=1.11
+_pkgver="rel${pkgver//./}"
+pkgrel=2
+pkgdesc="Access compressed files in ZIP, GZIP and JAR format"
+url="https://github.com/xavierleroy/camlzip"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="ocaml ocaml-findlib zlib-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xavierleroy/camlzip/archive/$_pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$_pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ make all
+}
+
+package() {
+ export OCAMLFIND_DESTDIR="$pkgdir/$_ocamldir"
+ export OCAMLFIND_LDCONF=ignore
+ mkdir -vp "$OCAMLFIND_DESTDIR"
+
+ make install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+4d69ef900437e66e00cd345497ec70f407f28cd8344ee5f2fad685d3bfe356924597d1854b752f2841b4007f96d6e0307cfae7e13cfb6f74951ae3eba5198a06 ocaml-camlzip-1.11.tar.gz
+"
diff --git a/testing/ocaml-camomile/APKBUILD b/testing/ocaml-camomile/APKBUILD
new file mode 100644
index 00000000000..1ac56963d75
--- /dev/null
+++ b/testing/ocaml-camomile/APKBUILD
@@ -0,0 +1,96 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-camomile
+_pkgname=camomile
+pkgver=1.0.2
+pkgrel=3
+pkgdesc="A Unicode library for OCaml"
+url="https://github.com/yoriyuki/Camomile"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.0-or-later"
+depends="$pkgname-data=$pkgver-r$pkgrel"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-compiler-libs ocaml-cppo ocaml-findlib"
+subpackages="$pkgname-dev $pkgname-data::noarch"
+options="!check"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/yoriyuki/Camomile/releases/download/$pkgver/camomile-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ # Workaround for https://github.com/yoriyuki/Camomile/issues/39.
+ if [ "$CARCH" = ppc64le ]; then
+ ulimit -Hs unlimited
+ ulimit -Ss 65536
+ fi
+
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build -p camomile @install
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ camomile
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+data() {
+ pkgdesc="$pkgdesc (data files)"
+ depends=""
+
+ amove usr/share/"$_pkgname"
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+7586422e68779476206027c6ebbe19b677fbe459153221f7c952c7fae374c5c8232249cb76fdb1f482069707aa1580be827cd39693906142988268b7f0e7f6d0 ocaml-camomile-1.0.2.tar.bz2
+"
diff --git a/testing/ocaml-charinfo_width/APKBUILD b/testing/ocaml-charinfo_width/APKBUILD
new file mode 100644
index 00000000000..cd984f54d78
--- /dev/null
+++ b/testing/ocaml-charinfo_width/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-charinfo_width
+_pkgname=charInfo_width
+pkgver=1.1.0
+pkgrel=3
+pkgdesc="Determine column width for a character in OCaml"
+url="https://github.com/kandu/charinfo_width/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-camomile-dev ocaml-result-dev"
+makedepends="$depends_dev dune ocaml"
+options="!check" # needs ppx_expect
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kandu/charInfo_width/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+c8dac9eb6f520213de69b23433e2f0d6a21578c70ae69fb682065e707363968959395a6ddc6c88893e08372a138287318634b52a8b4fb70ac988b4ad4a18b140 ocaml-charinfo_width-1.1.0.tar.gz
+"
diff --git a/testing/ocaml-cmdliner/APKBUILD b/testing/ocaml-cmdliner/APKBUILD
new file mode 100644
index 00000000000..a029a7768c2
--- /dev/null
+++ b/testing/ocaml-cmdliner/APKBUILD
@@ -0,0 +1,72 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-cmdliner
+_pkgname=cmdliner
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="Declarative definition of command line interfaces for OCaml"
+url="https://erratique.ch/software/cmdliner"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="ocaml"
+options="!check" # no tests provided
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/cmdliner/releases/cmdliner-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ make -j1 all
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install-doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+5478ad833da254b5587b3746e3a8493e66e867a081ac0f653a901cc8a7d944f66e4387592215ce25d939be76f281c4785702f54d4a74b1700bc8838a62255c9e ocaml-cmdliner-1.1.1.tar.bz2
+"
diff --git a/testing/ocaml-cohttp/APKBUILD b/testing/ocaml-cohttp/APKBUILD
new file mode 100644
index 00000000000..0875b73fabf
--- /dev/null
+++ b/testing/ocaml-cohttp/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-cohttp
+pkgver=5.3.1
+pkgrel=0
+_pkgreal=cohttp
+pkgdesc="Library for HTTP clients and servers"
+url="https://github.com/mirage/ocaml-cohttp"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-base64-dev
+ ocaml-conduit-dev
+ ocaml-fmt-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-magic-mime-dev
+ ocaml-ppx_sexp_conv-dev
+ ocaml-uri-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-cmdliner-dev
+ ocaml-jsonm-dev
+ "
+checkdepends="
+ ocaml-alcotest-dev
+ ocaml-ounit-dev
+ "
+options="!check" # requires unpackaged crowbar
+subpackages="
+ $pkgname-dev
+ $pkgname-tools
+ "
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/mirage/ocaml-cohttp/releases/download/v$pkgver/cohttp-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --verbose \
+ -p cohttp,cohttp-top,cohttp-lwt,cohttp-lwt-unix
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose \
+ -p cohttp,cohttp-top,cohttp-lwt,cohttp-lwt-unix
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit \
+ cohttp cohttp-top cohttp-lwt cohttp-lwt-unix
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+26580405fc33cd7e05b2c91732df97da9ba609d7392e5779be601aa65e34f1991d2b0ae2870ac29e57567f583dc0e13e61d3c4a74c7ac21012453acb33a37ae3 cohttp-5.3.1.tar.bz2
+"
diff --git a/testing/ocaml-compiler-libs-repackaged/APKBUILD b/testing/ocaml-compiler-libs-repackaged/APKBUILD
new file mode 100644
index 00000000000..bbf75db047e
--- /dev/null
+++ b/testing/ocaml-compiler-libs-repackaged/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-compiler-libs-repackaged
+_pkgname=ocaml-compiler-libs
+pkgver=0.12.4
+pkgrel=3
+pkgdesc="OCaml compiler libraries repackaged to not expose everything at toplevel"
+url="https://github.com/janestreet/ocaml-compiler-libs"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-compiler-libs"
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/janestreet/ocaml-compiler-libs/releases/download/v$pkgver/ocaml-compiler-libs-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+978dba8dfa61f98fa24fda7a9c26c2e837081f37d1685fe636dc19cfc3278a940cf01a10293504b185c406706bc1008bc54313d50f023bcdea6d5ac6c0788b35 ocaml-compiler-libs-repackaged-0.12.4.tar.bz2
+"
diff --git a/testing/ocaml-conduit/APKBUILD b/testing/ocaml-conduit/APKBUILD
new file mode 100644
index 00000000000..e4286e73fbf
--- /dev/null
+++ b/testing/ocaml-conduit/APKBUILD
@@ -0,0 +1,93 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-conduit
+pkgver=6.1.0
+pkgrel=0
+_pkgreal=conduit
+pkgdesc="Network connection establishment library"
+url="https://github.com/mirage/ocaml-conduit"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-astring-dev
+ ocaml-ca-certs-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-lwt_ssl-dev
+ ocaml-ppx_sexp_conv-dev
+ ocaml-sexplib-dev
+ ocaml-tls-dev
+ ocaml-uri-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+checkdepends="ocaml-lwt_log-dev"
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/mirage/ocaml-conduit/releases/download/v$pkgver/conduit-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --verbose \
+ -p conduit,conduit-lwt,conduit-lwt-unix
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose \
+ -p conduit,conduit-lwt,conduit-lwt-unix
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit \
+ conduit conduit-lwt conduit-lwt-unix
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+308041a9cccf5b01827365ae9e75915bf33c812658ff1a802b275827f4c9af98dd991df9106a5b8d70374cc0d41398621bbafd8de829acfef4cb86e6b9523712 conduit-6.1.0.tar.bz2
+"
diff --git a/testing/ocaml-containers/APKBUILD b/testing/ocaml-containers/APKBUILD
new file mode 100644
index 00000000000..e2a05ef6ed4
--- /dev/null
+++ b/testing/ocaml-containers/APKBUILD
@@ -0,0 +1,95 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-containers
+pkgver=3.7
+pkgrel=2
+pkgdesc="Modular, clean and powerful extension of the OCaml standard library"
+url="https://github.com/c-cube/ocaml-containers/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-compiler-libs"
+makedepends="$depends_dev dune dune-configurator ocaml"
+checkdepends="
+ ocaml-csexp-dev
+ ocaml-gen-dev
+ ocaml-iter-dev
+ ocaml-ounit-dev
+ ocaml-qcheck-dev
+ ocaml-qtest-dev
+ ocaml-uutf-dev
+ "
+options="!check"
+subpackages="$pkgname-top $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/c-cube/ocaml-containers/archive/v$pkgver.tar.gz
+ use-built-in-libraries.patch
+ "
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+top() {
+ pkgdesc="$pkgdesc (toplevel pretty-printers)"
+
+ amove usr/lib/ocaml/containers-data/top/
+ amove usr/lib/ocaml/containers/top/
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+70f99a062f7696d4ed7a6336532261c93c49a9858a84a12f7f3d60190a5c664198e70be6281dc7c7932c07325dc9c579ff521367e4c7e083566910ba0f9ea760 ocaml-containers-3.7.tar.gz
+f8404c969bfc5b03b3c8d786b04ff03e24a3eb7e75d3d1d9b84922ca78ffe4223229e8a823e401bbd967b4548d211481d4c6efefc48a603bf5d5f0b9fad239ac use-built-in-libraries.patch
+"
diff --git a/testing/ocaml-containers/use-built-in-libraries.patch b/testing/ocaml-containers/use-built-in-libraries.patch
new file mode 100644
index 00000000000..db25f60e73a
--- /dev/null
+++ b/testing/ocaml-containers/use-built-in-libraries.patch
@@ -0,0 +1,10 @@
+--- a/src/core/dune
++++ b/src/core/dune
+@@ -7,6 +7,6 @@
+ (preprocess (action (run %{project_root}/src/core/cpp/cpp.exe %{input-file})))
+ (flags :standard -warn-error -a+8 -w -32-70 -safe-string
+ -strict-sequence -nolabels -open CCMonomorphic)
+- (libraries seq either containers.monomorphic))
++ (libraries containers.monomorphic))
+
+ (ocamllex (modules CCSexp_lex))
diff --git a/testing/ocaml-cstruct/APKBUILD b/testing/ocaml-cstruct/APKBUILD
new file mode 100644
index 00000000000..6d7a231db6a
--- /dev/null
+++ b/testing/ocaml-cstruct/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-cstruct
+_pkgname=cstruct
+pkgver=6.1.0
+pkgrel=3
+pkgdesc="Access C-like structures directly from OCaml"
+url="https://github.com/mirage/ocaml-cstruct"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-fmt-dev
+ ocaml-lwt-dev
+ ocaml-ppxlib-dev
+ ocaml-sexplib-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-crowbar-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ocaml-cstruct/releases/download/v$pkgver/cstruct-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p cstruct,cstruct-sexp,cstruct-unix,cstruct-lwt,ppx_cstruct \
+ --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ cstruct cstruct-sexp cstruct-unix cstruct-lwt ppx_cstruct
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+24620eb8dd37b7508a6adbad19fe21b44739a1bd641827b4fdd74e642991647fb814cabdf44195199bdb5208cac182580c55dce511bf22ad595d56a140cc0584 ocaml-cstruct-6.1.0.tar.bz2
+"
diff --git a/testing/ocaml-ctypes/APKBUILD b/testing/ocaml-ctypes/APKBUILD
new file mode 100644
index 00000000000..af036b48ce3
--- /dev/null
+++ b/testing/ocaml-ctypes/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ctypes
+pkgver=0.20.1
+pkgrel=2
+pkgdesc="Combinators for binding to C libraries without writing any C"
+url="https://github.com/ocamllabs/ocaml-ctypes"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ libffi-dev
+ ocaml
+ ocaml-bigarray-compat-dev
+ ocaml-compiler-libs
+ ocaml-findlib-dev
+ ocaml-integers-dev
+ ocaml-stdlib-shims
+ "
+options="!check" # requires lwt and ounit
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocamllabs/ocaml-ctypes/archive/$pkgver.tar.gz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLFIND_LDCONF=ignore
+ make
+}
+
+package() {
+ export OCAMLFIND_DESTDIR="$pkgdir"/usr/lib/ocaml
+ mkdir -vp "$OCAMLFIND_DESTDIR/stublibs"
+ make install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f95e65ce5003a07634afcbee431cb23c54c8335f926074615fc8d76ab777b9d2fce8f75bb25bbb6ed9550a7d6237fb377aa9ad65a426d2d7e387f86c1158fe4a ocaml-ctypes-0.20.1.tar.gz
+"
diff --git a/testing/ocaml-curses/APKBUILD b/testing/ocaml-curses/APKBUILD
index 0e275a4eee5..db32edee067 100644
--- a/testing/ocaml-curses/APKBUILD
+++ b/testing/ocaml-curses/APKBUILD
@@ -1,42 +1,79 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-curses
-pkgver=1.0.4
-pkgrel=1
+_pkgname=curses
+pkgver=1.0.10
+pkgrel=2
pkgdesc="OCaml bindings for ncurses"
-url="https://www.nongnu.org/ocaml-tmk/"
-arch="aarch64 ppc64le x86_64" # restricted by ocaml
-license="LGPL-2.1"
-makedepends="autoconf automake libtool ocaml ocaml-findlib-dev gawk ncurses-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://download.savannah.nongnu.org/releases/ocaml-tmk/ocaml-curses-1.0.4.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- cd "$builddir"
- default_prepare
- autoreconf
-}
+url="https://github.com/mbacarella/curses"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune dune-configurator-dev ncurses-dev ocaml ocaml-csexp-dev"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mbacarella/curses/releases/download/$pkgver/curses-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- ./configure --prefix=/usr --enable-widec
- make all opt
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
}
check() {
- cd "$builddir"
- make test
- make test.opt
+ dune runtest --no-buffer --verbose
}
package() {
- cd "$builddir"
- export DESTDIR="$pkgdir"
- export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
- mkdir -p "$OCAMLFIND_DESTDIR" "$OCAMLFIND_DESTDIR/stublibs"
- ocamlfind install curses META *.cmi *.cmx *.cma *.cmxa *.a *.so *.mli
- install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="a49838f1d32bf96fda6c612ac1b38316f61c49aa015e61e49681eacf863234f36ffe71d4305dd34f8e3b0a5dc6d9757919a107bcfdf46bd90df128e975560948 ocaml-curses-1.0.4.tar.gz"
+sha512sums="
+158626f3fd6931f30482a47ab149990ff49334c8c0dc966eb07d92f22e87faaab3fd48ed7788bbc5a77f82cb6163520588ce55ab53456bca22994f147c7e00c5 ocaml-curses-1.0.10.tar.bz2
+"
diff --git a/testing/ocaml-dns/APKBUILD b/testing/ocaml-dns/APKBUILD
new file mode 100644
index 00000000000..041acd874ec
--- /dev/null
+++ b/testing/ocaml-dns/APKBUILD
@@ -0,0 +1,114 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-dns
+_pkgname=dns
+pkgver=6.2.2
+pkgrel=3
+pkgdesc="An opinionated Domain Name System (DNS) library"
+url="https://github.com/mirage/ocaml-dns"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-bos-dev
+ ocaml-hex-dev
+ ocaml-base64-dev
+ ocaml-cstruct-dev
+ ocaml-domain-name-dev
+ ocaml-duration-dev
+ ocaml-fmt-dev
+ ocaml-gmap-dev
+ ocaml-happy-eyeballs-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-lru-dev
+ ocaml-metrics-dev
+ ocaml-ptime-dev
+ ocaml-ca-certs-dev
+ ocaml-ca-certs-nss-dev
+ ocaml-lwt-dev
+ ocaml-mirage-clock-dev
+ ocaml-mirage-crypto-dev
+ ocaml-mirage-random-dev
+ ocaml-mirage-time-dev
+ ocaml-mtime-dev
+ ocaml-randomconv-dev
+ ocaml-tcpip-dev
+ ocaml-tls-dev
+ ocaml-x509-dev
+ "
+makedepends="$depends_dev dune ocaml ocaml-cmdliner-dev libev-dev gmp-dev"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ocaml-dns/releases/download/v$pkgver/dns-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=""
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+6bb12f258114cf89b7fb0ad9bd8be80863e6e9a2d32173143fdada1534898260fddd7b5965122a67eae4cd81c3918e80b0f04a4c20f6d399e01a9a9eefbdc2b9 ocaml-dns-6.2.2.tar.bz2
+"
diff --git a/testing/ocaml-domain-name/APKBUILD b/testing/ocaml-domain-name/APKBUILD
new file mode 100644
index 00000000000..2ebe82a1a7b
--- /dev/null
+++ b/testing/ocaml-domain-name/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-domain-name
+_pkgname=domain-name
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="RFC 1035 Internet domain names"
+url="https://github.com/hannesm/domain-name"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/hannesm/domain-name/releases/download/v$pkgver/domain-name-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f25aedb1ddf6ab8c49b1545cf88f4990114a9e7954d91cabf260e6ce470abd42dd135e8a55084262a77d4c9ee4bff6dc00c71307b23a48d82d50593b910ee173 ocaml-domain-name-0.4.0.tar.bz2
+"
diff --git a/testing/ocaml-down/APKBUILD b/testing/ocaml-down/APKBUILD
new file mode 100644
index 00000000000..c2ad2432cf4
--- /dev/null
+++ b/testing/ocaml-down/APKBUILD
@@ -0,0 +1,83 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-down
+_pkgname=down
+pkgver=0.1.0
+pkgrel=3
+pkgdesc="OCaml toplevel (REPL) upgrade"
+url="https://erratique.ch/software/down"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/down/releases/down-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --lib-dir "$(ocamlc -where)"
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f09d34f9a21d6a65ce85d9f6c267ee811d85cc0a91ab9dd76ed6ca0e8183df09a2e77331484e54661d154465d64fc31adb4be4a94615ef735c772d56b409a9e3 ocaml-down-0.1.0.tar.bz2
+"
diff --git a/testing/ocaml-duration/APKBUILD b/testing/ocaml-duration/APKBUILD
new file mode 100644
index 00000000000..40bdfe125bc
--- /dev/null
+++ b/testing/ocaml-duration/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-duration
+_pkgname=duration
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="Conversions to various time units"
+url="https://github.com/hannesm/duration"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/hannesm/duration/releases/download/$pkgver/duration-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+6a259ca406739bfc6020c7de767e39c2a7ee06169aa1966d43d426b2a54fc69b81be6465d04b9bd8fbbbbfd9ebe1c82a1cbfbf62100a37eb0f7403f6cf53e3b8 ocaml-duration-0.2.0.tar.bz2
+"
diff --git a/testing/ocaml-easy-format/APKBUILD b/testing/ocaml-easy-format/APKBUILD
new file mode 100644
index 00000000000..c3368797c34
--- /dev/null
+++ b/testing/ocaml-easy-format/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-easy-format
+_pkgname=easy-format
+pkgver=1.3.4
+pkgrel=1
+pkgdesc="Pretty-printing library for OCaml"
+url="https://mjambon.github.io/mjambon2016/easy-format.html"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-findlib"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml-community/easy-format/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+e3f25d8e40fefb22ed327601c8dcdadcea97fcb15ca3e92e095fd773b545d738d6709c77e76b3870bd035f985b187c7ca7a4af9bdfa95a45865ee14c9219652e ocaml-easy-format-1.3.4.tar.gz
+"
diff --git a/testing/ocaml-eqaf/APKBUILD b/testing/ocaml-eqaf/APKBUILD
new file mode 100644
index 00000000000..3370a6d549d
--- /dev/null
+++ b/testing/ocaml-eqaf/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-eqaf
+_pkgname=eqaf
+pkgver=0.8
+pkgrel=2
+pkgdesc="Constant-time equal function on string"
+url="https://github.com/mirage/eqaf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-cstruct-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-base64-dev ocaml-crowbar-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/eqaf/releases/download/v$pkgver/eqaf-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+303749bdbaae8fc27f57ebaa5cf9b16ed5b8cbaee35f0a35d69f91a437b1a3411a613d145d3aff7ff74a587509d877cc0a569fdae4d00cec65bf50d705361e25 ocaml-eqaf-0.8.tar.bz2
+"
diff --git a/testing/ocaml-erm_xml/APKBUILD b/testing/ocaml-erm_xml/APKBUILD
new file mode 100644
index 00000000000..547f3f71e78
--- /dev/null
+++ b/testing/ocaml-erm_xml/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-erm_xml
+_pkgname=xml
+pkgver=0_git20211229
+_commit=a2b4db61ca93dc265ca47b51d01fa147d3b267c3
+pkgrel=2
+pkgdesc="XML stream parser for OCaml"
+url="https://github.com/hannesm/xml"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-findlib
+ ocaml-compiler-libs
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hannesm/xml/archive/$_commit/xml-$_commit.tar.gz"
+builddir="$srcdir/$_pkgname-$_commit"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml setup.ml -configure --prefix /usr
+ ocaml setup.ml -build
+}
+
+check() {
+ ocaml setup.ml -test
+}
+
+package() {
+ export OCAMLFIND_DESTDIR="$pkgdir/$_ocamldir"
+ export OCAMLFIND_LDCONF=ignore
+ mkdir -vp "$OCAMLFIND_DESTDIR"
+
+ ocaml setup.ml -install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+ddb674fbd4e27aece25d4b288163ee7550591f8d23c7219dd212355cab9feedba847ae9990ac1219c834ec9620fcc5c4805013f99f1d5312a36c4a0c1d3f0536 ocaml-erm_xml-0_git20211229.tar.gz
+"
diff --git a/testing/ocaml-erm_xmpp/APKBUILD b/testing/ocaml-erm_xmpp/APKBUILD
new file mode 100644
index 00000000000..adf56522a1d
--- /dev/null
+++ b/testing/ocaml-erm_xmpp/APKBUILD
@@ -0,0 +1,98 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-erm_xmpp
+_pkgname=xmpp
+pkgver=0_git20220404
+_commit=e54d54e142ac9770c37e144693473692bf473530
+pkgrel=2
+pkgdesc="XMPP protocol implementation for OCaml"
+url="https://github.com/hannesm/xmpp"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-base64-dev
+ ocaml-erm_xml-dev
+ ocaml-mirage-crypto-dev
+ "
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-findlib
+ ocaml-compiler-libs
+ ocaml-camlp4-dev
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hannesm/xmpp/archive/$_commit/xmpp-$_commit.tar.gz"
+builddir="$srcdir/$_pkgname-$_commit"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ # Workaround ocamlbuild terminating with error code 10
+ if [ "$CARCH" = ppc64le ]; then
+ ulimit -Hs unlimited
+ ulimit -Ss 65536
+ fi
+
+ ocaml setup.ml -configure --prefix /usr
+ ocaml setup.ml -build
+}
+
+check() {
+ ocaml setup.ml -test
+}
+
+package() {
+ export OCAMLFIND_DESTDIR="$pkgdir/$_ocamldir"
+ export OCAMLFIND_LDCONF=ignore
+ mkdir -vp "$OCAMLFIND_DESTDIR"
+
+ ocaml setup.ml -install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+84e5b165d0257cfbbc83e888adeca2233cca201f66b7ac4d661a1fee56290816d3c36f8793bfae8ca10e52acd76baa4b29ca45e29da2701976d0b676a600252a ocaml-erm_xmpp-0_git20220404.tar.gz
+"
diff --git a/testing/ocaml-ethernet/APKBUILD b/testing/ocaml-ethernet/APKBUILD
new file mode 100644
index 00000000000..da3a5cdd1a0
--- /dev/null
+++ b/testing/ocaml-ethernet/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ethernet
+_pkgname=ethernet
+pkgver=3.0.0
+pkgrel=3
+pkgdesc="OCaml Ethernet (IEEE 802.3) layer, used in MirageOS"
+url="https://github.com/mirage/ethernet"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-logs-dev
+ ocaml-ipaddr-dev
+ ocaml-mirage-net-dev
+ ocaml-mirage-profile-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ethernet/releases/download/v$pkgver/ethernet-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+171d061b16f2e00b9caa3dfc1cd9b5b358d380e892281ac5c137dc2a3119c3fa288ea927dcb4e9efbcf4850f6857ed0d4b754f56dbb248c1c6150779e57d24e4 ocaml-ethernet-3.0.0.tar.bz2
+"
diff --git a/testing/ocaml-extlib/APKBUILD b/testing/ocaml-extlib/APKBUILD
index bed6c82f91a..51bcf7a895a 100644
--- a/testing/ocaml-extlib/APKBUILD
+++ b/testing/ocaml-extlib/APKBUILD
@@ -1,29 +1,32 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-extlib
-pkgver=1.7.6
-pkgrel=0
+_pkgname=extlib
+pkgver=1.7.9
+pkgrel=2
pkgdesc="OCaml ExtLib additions to the standard library"
url="https://github.com/ygrek/ocaml-extlib"
-arch="aarch64 ppc64le x86_64" # restricted by ocaml
-license="LGPL-2.1-or-later-WITH-linking-exception"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
makedepends="ocaml ocaml-findlib-dev ocaml-ocamldoc ocaml-cppo gawk"
subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/ygrek/ocaml-extlib/releases/download/$pkgver/extlib-$pkgver.tar.gz"
-builddir="$srcdir/extlib-$pkgver"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
make build
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
export DESTDIR="$pkgdir"
export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
mkdir -p "$OCAMLFIND_DESTDIR"
@@ -31,4 +34,43 @@ package() {
install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-sha512sums="ab3251b772cd7513d721ef73409e2d278141b9684e9e62f36f60907bad02de16006e9691a932d9c94d0a26ded9e4e4288ba203447bf53cce6c8619a11be8a0c7 extlib-1.7.6.tar.gz"
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+2386ac69f037ea520835c0624d39ae9fbffe43a20b18e247de032232ed6f419d667b53d2314c6f56dc71d368bf0b6201a56c2f3f2a5bdfd933766c5a6cb98768 extlib-1.7.9.tar.gz
+"
diff --git a/testing/ocaml-ezxmlm/APKBUILD b/testing/ocaml-ezxmlm/APKBUILD
new file mode 100644
index 00000000000..96ae526feef
--- /dev/null
+++ b/testing/ocaml-ezxmlm/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ezxmlm
+pkgver=1.1.0
+pkgrel=0
+_pkgreal=ezxmlm
+pkgdesc="Combinators for parsing and selection of XML structures"
+url="https://github.com/mirage/ezxmlm"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-xmlm-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/mirage/ezxmlm/releases/download/v$pkgver/ezxmlm-v$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-v$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+fe2cc062197730f07b62443b068e67c23e53e984dee9e864bea808a2cdd3a2922c892e6f34867620aa1d5a837c8f4f96f2c187c348d1991b7383a2579860c96f ezxmlm-1.1.0.tar.bz2
+"
diff --git a/testing/ocaml-fileutils/APKBUILD b/testing/ocaml-fileutils/APKBUILD
index 931dd6f54ff..cfae1523bb4 100644
--- a/testing/ocaml-fileutils/APKBUILD
+++ b/testing/ocaml-fileutils/APKBUILD
@@ -1,36 +1,91 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-fileutils
-pkgver=0.4.4
-pkgrel=0
+_pkgname=fileutils
+pkgver=0.6.4
+pkgrel=2
pkgdesc="OCaml library for common file and filename operations"
url="https://github.com/gildor478/ocaml-fileutils"
-arch="aarch64 ppc64le x86_64"
-license="LGPL-2.1-or-later-WITH-linking-exception"
-makedepends="ocaml ocaml-ocamldoc ocaml-ounit-dev ocamlbuild ocaml-compiler-libs ocaml-findlib-dev"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+makedepends="
+ dune
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib-dev
+ ocaml-ocamldoc
+ ocaml-seq-dev
+ ocaml-stdlib-shims
+ ocamlbuild
+ "
+options="!check"
subpackages="$pkgname-dev $pkgname-doc"
-source="${pkgname}-${pkgver}.tar.gz::https://github.com/gildor478/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gildor478/ocaml-fileutils/archive/v$pkgver.tar.gz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- export OCAMLPARAM="safe-string=0,_"
- ocaml setup.ml -configure --prefix /usr --destdir "$pkgdir"
- make
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build -p fileutils
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
- export DESTDIR="$pkgdir"
- export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
- mkdir -p "$OCAMLFIND_DESTDIR" "$OCAMLFIND_DESTDIR/stublibs"
- make install
- install -D -m644 COPYING.txt "$pkgdir/usr/share/licenses/$pkgname/COPYING.txt"
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ fileutils
+
+ cd "$pkgdir"
+ mkdir -vp usr/share/doc
+ mv -v usr/doc/"$_pkgname" \
+ usr/share/doc/"$pkgname"
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="35aa175ae8a024fe6719716cfa6769a72d8e36fc3dd743da12c9037aa52a1699b12462ab78f1341fb5f2ca25e7935d73b9fb3648161d88771f8d35f7480126f7 ocaml-fileutils-0.4.4.tar.gz"
+sha512sums="
+fed41c0c98bd9a2dde18335f0c7fd721b609f936001424eff200bca058146af55134f1d245b143bd211ece37bc036b3308528b193a6b578735b27891181f07e1 ocaml-fileutils-0.6.4.tar.gz
+"
diff --git a/testing/ocaml-fix/APKBUILD b/testing/ocaml-fix/APKBUILD
new file mode 100644
index 00000000000..74418e51f52
--- /dev/null
+++ b/testing/ocaml-fix/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-fix
+_pkgname=fix
+pkgver=20220121
+_commit=a288f05de716bcc9e82527f4cf440f9aebe965ae
+pkgrel=2
+pkgdesc="Algorithmic building blocks for memoization, recursion, and more"
+url="https://gitlab.inria.fr/fpottier/fix"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.0-only"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+options="!check" # tests take a long time to run
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.inria.fr/fpottier/fix/-/archive/$pkgver/archive.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver-$_commit"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build -p fix @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+a851d8783c0c519c6e55359a5c471af433058872409c29a1a7bdfd0076813341ad2c0ebd1ce9e28bff4d4c729dfbc808c41c084fe12a42b45a2b5e391e77ccd2 ocaml-fix-20220121.tar.gz
+"
diff --git a/testing/ocaml-fmt/APKBUILD b/testing/ocaml-fmt/APKBUILD
new file mode 100644
index 00000000000..2b7d09c157e
--- /dev/null
+++ b/testing/ocaml-fmt/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-fmt
+_pkgname=fmt
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="OCaml Format pretty-printer combinators"
+url="https://erratique.ch/software/fmt"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-findlib
+ ocaml-topkg
+ ocamlbuild
+ ocaml-cmdliner-dev
+ ocaml-compiler-libs
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/fmt/releases/fmt-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --with-base-unix true \
+ --with-cmdliner true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+66cf4b8bb92232a091dfda5e94d1c178486a358cdc34b1eec516d48ea5acb6209c0dfcb416f0c516c50ddbddb3c94549a45e4a6d5c5fd1c81d3374dec823a83b ocaml-fmt-0.9.0.tar.bz2
+"
diff --git a/testing/ocaml-fpath/APKBUILD b/testing/ocaml-fpath/APKBUILD
new file mode 100644
index 00000000000..c9ff5554f74
--- /dev/null
+++ b/testing/ocaml-fpath/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-fpath
+_pkgname=fpath
+pkgver=0.7.3
+pkgrel=2
+pkgdesc="File system paths for OCaml"
+url="https://erratique.ch/software/fpath"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-astring-dev"
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-findlib
+ ocaml-compiler-libs
+ ocaml-topkg
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/fpath/releases/fpath-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+acf4b379aee3c25305ef71d1b97b154faa6de1e8248a8e8d046cf11090a3e94f2dc048b961bb51725ca7384e784455f2893fbd51f26bf80571a9cc7e9475b945 ocaml-fpath-0.7.3.tar.bz2
+"
diff --git a/testing/ocaml-gen/APKBUILD b/testing/ocaml-gen/APKBUILD
new file mode 100644
index 00000000000..8ba01db9d2e
--- /dev/null
+++ b/testing/ocaml-gen/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-gen
+_pkgname=gen
+pkgver=1.1
+pkgrel=1
+pkgdesc="Simple, efficient iterators for OCaml"
+url="https://github.com/c-cube/gen/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-seq-dev"
+makedepends="$depends_dev dune dune-configurator ocaml"
+checkdepends="ocaml-ounit-dev ocaml-qcheck-dev ocaml-qtest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/c-cube/gen/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+71a4b5c3666a7c11935398a78feea7383f61d2c549dfb96e324d40783ffa87b5ec492c5ec468803aabfb9b48e7d0ebaa30b24d2b974540afc7cca5feea3121c1 ocaml-gen-1.1.tar.gz
+"
diff --git a/testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch b/testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch
deleted file mode 100644
index 511eb3b4a8f..00000000000
--- a/testing/ocaml-gettext/0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 35d2d7381c7101bb73d0b7f00fea06442c7b2ab8 Mon Sep 17 00:00:00 2001
-From: Pino Toscano <ptoscano@redhat.com>
-Date: Tue, 29 Aug 2017 18:29:34 +0200
-Subject: [PATCH 1/3] pr_gettext: stop tracking (and printing) untranslated
- strings
-
-Do not collect anymore the information of untranslated strings, since it
-is only used to print all of them at the end of the message extraction.
-
-While I understand the reason why this was done (i.e. to discover
-potentially untranslated user strings), this is something that just
-causes lots of output in complex projects, since strings are basically
-used for many non-UI tasks (say Str, Sys.command, etc), so the actual
-result is that there are lots of false positive. Also, this is not
-something xgettext (from GNU gettext) does.
----
- libgettext-ocaml/pr_gettext.ml | 44 ------------------------------------------
- 1 file changed, 44 deletions(-)
-
-diff --git a/libgettext-ocaml/pr_gettext.ml b/libgettext-ocaml/pr_gettext.ml
-index c44933f..d78cf21 100644
---- a/libgettext-ocaml/pr_gettext.ml
-+++ b/libgettext-ocaml/pr_gettext.ml
-@@ -71,17 +71,10 @@ struct
- module Loc = Syntax.Loc
- module Ast = Syntax.Ast
-
-- type untranslated_t =
-- {
-- str: string; (* Real string, not OCaml one *)
-- locations: (string * int) list; (* Location in the file *)
-- }
--
- type t =
- {
- po_content: po_content;
- translated: SetString.t;
-- untranslated: untranslated_t MapString.t;
- }
-
- let string_of_ocaml_string str =
-@@ -91,29 +84,6 @@ struct
- "%S"
- (fun s -> s)
-
-- let string_not_translated t ocaml_str =
-- not (SetString.mem ocaml_str t.translated)
--
-- let add_untranslated t loc ocaml_str =
-- let cur =
-- try
-- MapString.find ocaml_str t.untranslated
-- with Not_found ->
-- {
-- str = string_of_ocaml_string ocaml_str;
-- locations = [];
-- }
-- in
-- let untranslated =
-- MapString.add
-- ocaml_str
-- {cur with
-- locations =
-- (Loc.file_name loc, Loc.start_line loc) :: cur.locations}
-- t.untranslated
-- in
-- {t with untranslated = untranslated}
--
-
- let add_translation t loc ocaml_singular plural_opt domain =
- let filepos =
-@@ -164,15 +134,6 @@ struct
- | Some f -> open_out f
- | None -> stdout
- in
-- MapString.iter
-- (fun _ {str = str; locations = locs} ->
-- List.iter
-- (fun (fn, lineno) ->
-- Printf.eprintf
-- "%s:%d String %S not translated\n%!"
-- fn lineno str)
-- locs)
-- t.untranslated;
- Marshal.to_channel fd t.po_content []
-
- (* Check if the given node belong to the given functions *)
-@@ -197,7 +158,6 @@ struct
- val t =
- {
- po_content = empty_po;
-- untranslated = MapString.empty;
- translated = SetString.empty;
- }
-
-@@ -234,10 +194,6 @@ struct
- (* Add a plural / defined domain string *)
- {< t = add_translation t loc singular (Some plural) (Some domain) >}
-
-- | <:expr@loc<$str:str$>> when
-- string_not_translated t str ->
-- {< t = add_untranslated t loc str >}
--
- | e -> super#expr e
-
- end
---
-2.13.2
-
diff --git a/testing/ocaml-gettext/0002-pr_gettext-stop-printing-extracted-strings.patch b/testing/ocaml-gettext/0002-pr_gettext-stop-printing-extracted-strings.patch
deleted file mode 100644
index 6d656d9bc6b..00000000000
--- a/testing/ocaml-gettext/0002-pr_gettext-stop-printing-extracted-strings.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3f4fc73c2a0315c2da16dee7db0fcb2766f55d3c Mon Sep 17 00:00:00 2001
-From: Pino Toscano <ptoscano@redhat.com>
-Date: Tue, 29 Aug 2017 18:36:10 +0200
-Subject: [PATCH 2/3] pr_gettext: stop printing extracted strings
-
-They are written in the pot file already, no need to print them to
-stderr (even though they are not errors).
----
- libgettext-ocaml/pr_gettext.ml | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libgettext-ocaml/pr_gettext.ml b/libgettext-ocaml/pr_gettext.ml
-index d78cf21..47d93e5 100644
---- a/libgettext-ocaml/pr_gettext.ml
-+++ b/libgettext-ocaml/pr_gettext.ml
-@@ -78,7 +78,6 @@ struct
- }
-
- let string_of_ocaml_string str =
-- prerr_endline str;
- Scanf.sscanf
- (Printf.sprintf "\"%s\"" str)
- "%S"
---
-2.13.2
-
diff --git a/testing/ocaml-gettext/0003-add-more-generated-files-to-.gitignore.patch b/testing/ocaml-gettext/0003-add-more-generated-files-to-.gitignore.patch
deleted file mode 100644
index 00b410c5f23..00000000000
--- a/testing/ocaml-gettext/0003-add-more-generated-files-to-.gitignore.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 202bf1e00eaa533e133c29b509d77cdfb7c13f5e Mon Sep 17 00:00:00 2001
-From: Pino Toscano <ptoscano@redhat.com>
-Date: Tue, 29 Aug 2017 18:55:37 +0200
-Subject: [PATCH 3/3] add more generated files to .gitignore
-
-Make sure all the files generated during a build are properly ignored
-from the git status.
----
- .gitignore | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
-diff --git a/.gitignore b/.gitignore
-index d853d40..87821c3 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -1,3 +1,12 @@
-+*.a
-+*.cma
-+*.cmi
-+*.cmo
-+*.cmx
-+*.cmxa
-+*.o
-+*.so
-+*_parser.output
- /_build/
- /setup.data
- /setup.log
-@@ -7,6 +16,12 @@
- /configure
- /libgettext-ocaml/META
- /libgettext-ocaml/gettextConfig.ml
-+/libgettext-ocaml/gettextPo_parser.mli
- /config.log
- /config.status
-+/po/*.mo
- /po/fr.po.bak
-+/doc/*.1
-+/doc/*.5
-+/ocaml-gettext/ocaml-gettext
-+/ocaml-gettext/ocaml-xgettext
---
-2.13.2
-
diff --git a/testing/ocaml-gettext/APKBUILD b/testing/ocaml-gettext/APKBUILD
index 5f3c079144e..7869035f1c4 100644
--- a/testing/ocaml-gettext/APKBUILD
+++ b/testing/ocaml-gettext/APKBUILD
@@ -1,52 +1,100 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-gettext
-pkgver=0.3.7
-pkgrel=0
+_pkgname=gettext
+pkgver=0.4.2
+pkgrel=3
pkgdesc="OCaml library for i18n"
url="https://github.com/gildor478/ocaml-gettext"
-arch="aarch64 ppc64le x86_64" # restricted by ocaml
-license="LGPL-2.1-or-later-WITH-linking-exception"
-makedepends="ocaml ocaml-ocamldoc ocaml-camlp4-dev ocaml-fileutils ocaml-fileutils-dev ocaml-findlib-dev chrpath autoconf automake libxml2 libxslt docbook-xsl gettext-dev"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+makedepends="
+ autoconf
+ automake
+ chrpath
+ docbook-xsl
+ dune
+ gettext-dev
+ libxml2
+ libxslt
+ ocaml
+ ocaml-camlp4-dev
+ ocaml-camomile-dev
+ ocaml-compiler-libs
+ ocaml-cppo
+ ocaml-fileutils
+ ocaml-fileutils-dev
+ ocaml-findlib-dev
+ ocaml-seq-dev
+ ocaml-ocamldoc
+ ocaml-stdlib-shims
+"
subpackages="$pkgname-dev $pkgname-doc"
-source="${pkgname}-${pkgver}.tar.gz::https://github.com/gildor478/$pkgname/archive/$pkgver.tar.gz
- 0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch
- 0002-pr_gettext-stop-printing-extracted-strings.patch
- 0003-add-more-generated-files-to-.gitignore.patch
- ocaml-gettext-0.3.4-use-ocamlopt-g.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gildor478/ocaml-gettext/archive/v$pkgver.tar.gz"
options="!check" # there is no test suite/unit tests since tests requires camomile
-prepare() {
- default_prepare
- autoreconf -i
-}
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- unset MAKEFLAGS
- export OCAMLPARAM="safe-string=0,_"
- sed -i 's/@OCAMLDOC@/@OCAMLDOC@ -unsafe-string/g' ConfMakefile.in
- ./configure --prefix=/usr --disable-camomile --with-docbook-stylesheet=/usr/share/xml/docbook/xsl-stylesheets-1.79.1 --with-stub-ldflags=-lintl
- make all
+ export OCAMLPATH=/usr/lib/ocaml
+ # Build only gettext, as gettext-stub requires dune-configurator
+ dune build -p gettext @install
}
package() {
- cd "$builddir"
- export DESTDIR="$pkgdir"
- export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
- mkdir -p "$OCAMLFIND_DESTDIR" "$OCAMLFIND_DESTDIR/stublibs"
- find _build -name '*.o' -exec rm {} \;
- ocamlfind install gettext _build/lib/gettext/*
- ocamlfind install gettext-stub _build/lib/gettext-stub/*
- install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
- install -D -m 0755 _build/bin/ocaml-gettext "$pkgdir/usr/bin/ocaml-gettext"
- install -D -m 0755 _build/bin/ocaml-xgettext "$pkgdir/usr/bin/ocaml-xgettext"
- chrpath --delete $OCAMLFIND_DESTDIR/stublibs/dll*.so
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ gettext
+
+ cd "$pkgdir"
+ mkdir -vp usr/share/doc
+ mv -v usr/doc/"$_pkgname" \
+ usr/share/doc/"$pkgname"
+ mv -v usr/man usr/share/
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="1358320359b9d2f3fd97a47d69b2a619942a65605c1e5cbf25e33ef42a10273167b526bca15e6c9523b87d8ea9dfd3215334050ad8eb84a8c41d4feef880a27a ocaml-gettext-0.3.7.tar.gz
-430e67b9e228d36eae6d1a1378c40d3203799d04c05962d25be4703483418400d71c392c2d84baa434f5e7aab19e7925e08971392b969ff472e3baf81546ca6d 0001-pr_gettext-stop-tracking-and-printing-untranslated-s.patch
-69f9e5a000cd29b5f6e7ee1b3ce0691ba4a7fdff456c76ce271daa76a74cf422aa8769f94cac46dbceb92dcdcdaecfbc65e255f61748bd52e7ccf7e88cc04bac 0002-pr_gettext-stop-printing-extracted-strings.patch
-6cab63660875ec9f6314631ae0730870b714b5a1bc456d97a04c928f287feb82aae623b8361b6b56075901f2d9cd5716e27305cda4334ac0e61a40ce02bab599 0003-add-more-generated-files-to-.gitignore.patch
-b169f864194459db388ee8aa9db4cf97441419cb6b93c1b72854cca3fbbdcab8745a802326f967b8786853ec136aca41847799100216d6f9272e6a56dc80d169 ocaml-gettext-0.3.4-use-ocamlopt-g.patch"
+sha512sums="
+fb89be8d8d9e0ed9327b81a0c81c884ff3f1a97e46b475ef8084abded5c84a256de05d5aa0f42be94f43ab438276a4506af726b6950e4161359a9616fb5832ec ocaml-gettext-0.4.2.tar.gz
+"
diff --git a/testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch b/testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch
deleted file mode 100644
index f8f05b5c0c2..00000000000
--- a/testing/ocaml-gettext/ocaml-gettext-0.3.4-use-ocamlopt-g.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- ocaml-gettext-0.3.4/TopMakefile.old 2013-09-14 08:54:04.713986462 +0100
-+++ ocaml-gettext-0.3.4/TopMakefile 2013-09-14 08:54:18.319006115 +0100
-@@ -102,7 +102,7 @@
- %.cmxa %.a %.so:
- $(if $(STUBSOBJS), \
- $(OCAMLMKLIB) -o $* $^ $(OCAMLMKLIB_FLAGS), \
-- $(OCAMLOPT) -a -o $*.cmxa $^ \
-+ $(OCAMLOPT) -g -a -o $*.cmxa $^ \
- )
-
- %.cma %.a %.so:
-@@ -161,7 +161,7 @@
- OLIBS = $(addsuffix .cmxa,$(LIBS))
-
- install-buildprog-opt: $(CMX)
-- $(OCAMLOPT) -o $(NAME) $(INCLUDES) -package "$(REQUIRES)" -linkpkg \
-+ $(OCAMLOPT) -g -o $(NAME) $(INCLUDES) -package "$(REQUIRES)" -linkpkg \
- -predicates "$(PREDICATES)" $(OLIBS) $(CMX)
- $(INSTALL) -d $(BUILDBIN)
- $(INSTALL_SCRIPT) -t $(BUILDBIN) $(NAME)
-@@ -300,10 +300,10 @@
- $(OCAMLC) $(INCLUDES) $(CLI_OCAMLFIND) -c $<
-
- .ml.o:
-- $(OCAMLOPT) $(INCLUDES) $(CLI_OCAMLFIND) -c $<
-+ $(OCAMLOPT) -g $(INCLUDES) $(CLI_OCAMLFIND) -c $<
-
- .ml.cmx:
-- $(OCAMLOPT) $(INCLUDES) $(CLI_OCAMLFIND) -c $<
-+ $(OCAMLOPT) -g $(INCLUDES) $(CLI_OCAMLFIND) -c $<
-
- .mll.ml:
- $(OCAMLLEX) $<
diff --git a/testing/ocaml-gitlab/APKBUILD b/testing/ocaml-gitlab/APKBUILD
new file mode 100644
index 00000000000..1dfcc2c339a
--- /dev/null
+++ b/testing/ocaml-gitlab/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-gitlab
+pkgver=0.1.8
+pkgrel=0
+_pkgreal=gitlab
+pkgdesc="GitLab APIv4 OCaml library"
+url="https://github.com/tmcgilchrist/ocaml-gitlab"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-atd-dev
+ ocaml-cmdliner-dev
+ ocaml-cohttp-dev
+ ocaml-fmt-dev
+ ocaml-iso8601-dev
+ ocaml-otoml-dev
+ ocaml-stringext-dev
+ ocaml-uri-dev
+ ocaml-yojson-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-menhir
+ "
+checkdepends="ocaml-alcotest-dev"
+options="!check" # requires unpackaged ocaml-mdx
+subpackages="
+ olab
+ $pkgname-dev
+ "
+source="$pkgname-$pkgver.tar.bz2::https://github.com/tmcgilchrist/ocaml-gitlab/releases/download/$pkgver/gitlab-$pkgver.tbz
+ rename-to-olab.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --verbose \
+ -p gitlab,gitlab-unix,lab
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose \
+ -p gitlab,gitlab-unix,lab
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit \
+ gitlab gitlab-unix lab
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+olab() {
+ pkgdesc="$pkgdesc (command line tool)"
+ depends=
+
+ amove usr/bin/olab
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+04c5c7131fa5a630edd0d2c605084fb37bb6a4d875b208450bf3b3fb70dc17da0f9ed8de04271e4eea62168d77dbcdda139aa7fe1a40f06f6c6cfb4407c47680 ocaml-gitlab-0.1.8.tar.bz2
+c4d765e2824e72acab9b0b810ac8c6b1a8a25c46477009bebaf8572319fa9d5ba83b5c9296d24fb41162ed20f8ebc2dfe5c9467135b25865ee4fdfdf2b481660 rename-to-olab.patch
+"
diff --git a/testing/ocaml-gitlab/rename-to-olab.patch b/testing/ocaml-gitlab/rename-to-olab.patch
new file mode 100644
index 00000000000..c29bc92a512
--- /dev/null
+++ b/testing/ocaml-gitlab/rename-to-olab.patch
@@ -0,0 +1,36 @@
+--- a/cli/dune
++++ b/cli/dune
+@@ -1,7 +1,7 @@
+ (executable
+ (libraries cohttp-lwt-unix gitlab-unix cmdliner otoml fmt)
+ (package lab)
+- (public_name lab)
++ (public_name olab)
+ (modules main api config issue merge_request project user runner project_hook)
+ (name main))
+
+--- a/cli/main.ml
++++ b/cli/main.ml
+@@ -9,7 +9,7 @@
+ [
+ `S "DESCRIPTION";
+ `P
+- "Lab is a tool that wraps git in order to extend it with extra \
++ "OLab is a tool that wraps git in order to extend it with extra \
+ functionality that makes it better when working with GitLab.";
+ `S "BUGS";
+ `P "<https://github.com/tmcgilchrist/ocaml-gitlab/issues>";
+@@ -17,11 +17,11 @@
+ `P "<https://github.com/tmcgilchrist/ocaml-gitlab>";
+ `S "FEEDBACK";
+ `P
+- "Open an issue using 'lab issue create -R \
++ "Open an issue using 'gh issue create -R \
+ github.com/tmcgilchrist/ocaml-gitlab' ";
+ ]
+ in
+- let info = Cmd.info ~envs "lab" ~version:"0.1.8" ~doc ~man in
++ let info = Cmd.info ~envs "olab" ~version:"0.1.8" ~doc ~man in
+ let config = Config.from_file in
+ Cmd.group ~default info
+ [
diff --git a/testing/ocaml-gmap/APKBUILD b/testing/ocaml-gmap/APKBUILD
new file mode 100644
index 00000000000..11989d3cb1c
--- /dev/null
+++ b/testing/ocaml-gmap/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-gmap
+_pkgname=gmap
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="Heterogenous maps over a GADT"
+url="https://github.com/hannesm/gmap"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-fmt-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/hannesm/gmap/releases/download/$pkgver/gmap-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+71616981f5a15d6b2a47e18702083e52e81f6547076085b1489f676f50b0cc47c7c2c4fa19cb581e2878dc3d4f7133d0c50d8b51a8390be0e6e30318907d81d3 ocaml-gmap-0.3.0.tar.bz2
+"
diff --git a/testing/ocaml-happy-eyeballs-lwt/APKBUILD b/testing/ocaml-happy-eyeballs-lwt/APKBUILD
new file mode 100644
index 00000000000..4613bce1c02
--- /dev/null
+++ b/testing/ocaml-happy-eyeballs-lwt/APKBUILD
@@ -0,0 +1,99 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-happy-eyeballs-lwt
+_pkgname=happy-eyeballs
+pkgver=0.3.0
+pkgrel=3
+pkgdesc="Connecting to a remote host via IP version 4 or 6 using Lwt_unix"
+url="https://github.com/roburio/happy-eyeballs"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-domain-name-dev
+ ocaml-duration-dev
+ ocaml-fmt-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-happy-eyeballs-dev
+ ocaml-cmdliner-dev
+ ocaml-dns-dev
+ ocaml-mtime-dev
+ "
+makedepends="$depends_dev dune ocaml libev-dev gmp-dev"
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/roburio/happy-eyeballs/releases/download/v$pkgver/happy-eyeballs-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p happy-eyeballs-lwt \
+ --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ happy-eyeballs-lwt
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=""
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+0c43180c635c1ac807bd6a2abbb0403afca646870936baa451f6eadcd37d1b32ceea916d7b441b190392c4b32d32292bf6196de00faa198e2e8e59c3b4fdef56 ocaml-happy-eyeballs-lwt-0.3.0.tar.bz2
+"
diff --git a/testing/ocaml-happy-eyeballs/APKBUILD b/testing/ocaml-happy-eyeballs/APKBUILD
new file mode 100644
index 00000000000..f54e500f047
--- /dev/null
+++ b/testing/ocaml-happy-eyeballs/APKBUILD
@@ -0,0 +1,89 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-happy-eyeballs
+_pkgname=happy-eyeballs
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="Connecting to a remote host via IP version 4 or 6"
+url="https://github.com/roburio/happy-eyeballs"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-domain-name-dev
+ ocaml-duration-dev
+ ocaml-fmt-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/roburio/happy-eyeballs/releases/download/v$pkgver/happy-eyeballs-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p happy-eyeballs \
+ --verbose
+}
+
+check() {
+ dune runtest \
+ -p happy-eyeballs \
+ --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ happy-eyeballs
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+0c43180c635c1ac807bd6a2abbb0403afca646870936baa451f6eadcd37d1b32ceea916d7b441b190392c4b32d32292bf6196de00faa198e2e8e59c3b4fdef56 ocaml-happy-eyeballs-0.3.0.tar.bz2
+"
diff --git a/testing/ocaml-hex/APKBUILD b/testing/ocaml-hex/APKBUILD
new file mode 100644
index 00000000000..e9a1c509dea
--- /dev/null
+++ b/testing/ocaml-hex/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-hex
+_pkgname=hex
+pkgver=1.5.0
+pkgrel=2
+pkgdesc="Library providing hexadecimal converters"
+url="https://github.com/mirage/ocaml-hex"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-cstruct-dev"
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ocaml-hex/releases/download/v$pkgver/hex-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+baa09b47a90f0a54ad2becfb272f0674219e4fc0c03559deff26aaf13ccd59258b31bf98e56c44a5a8fa03437e3eba2bf5f0cd76e52d184d26cfb1170c490462 ocaml-hex-1.5.0.tar.bz2
+"
diff --git a/testing/ocaml-higlo/APKBUILD b/testing/ocaml-higlo/APKBUILD
new file mode 100644
index 00000000000..a34f4f3d30f
--- /dev/null
+++ b/testing/ocaml-higlo/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-higlo
+pkgver=0.9
+pkgrel=0
+_pkgreal=higlo
+pkgdesc="Syntax highlighting library"
+url="https://framagit.org/zoggy/higlo"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-sedlex-dev
+ ocaml-xtmpl-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+subpackages="$pkgname-dev"
+source="https://framagit.org/zoggy/higlo/-/archive/$pkgver/higlo-$pkgver.tar.bz2"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+725257959797b13814e5ba90ccf500770bc8cfba58916c07c64babf84d76074195a7c38e3e0593719f20b02888d7316df2c9451343c30af8a20a07868c076255 higlo-0.9.tar.bz2
+"
diff --git a/testing/ocaml-hkdf/APKBUILD b/testing/ocaml-hkdf/APKBUILD
new file mode 100644
index 00000000000..9b54721127c
--- /dev/null
+++ b/testing/ocaml-hkdf/APKBUILD
@@ -0,0 +1,83 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-hkdf
+_pkgname=hkdf
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="HMAC-based Extract-and-Expand Key Derivation Function (RFC 5869)"
+url="https://github.com/hannesm/ocaml-hkdf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-mirage-crypto-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/hannesm/ocaml-hkdf/releases/download/v$pkgver/hkdf-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d08e50857f7761572adc4d382975fde5808898c1d92d9e6e943a496cba8780ffabe1edf67844063b70d9727c0fe10b24391e001a3f65c978a5326ac82199cc88 ocaml-hkdf-1.0.4.tar.bz2
+"
diff --git a/testing/ocaml-integers/APKBUILD b/testing/ocaml-integers/APKBUILD
new file mode 100644
index 00000000000..53b4709dab8
--- /dev/null
+++ b/testing/ocaml-integers/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-integers
+pkgver=0.7.0
+pkgrel=2
+pkgdesc="Various signed and unsigned integer types for OCaml"
+url="https://github.com/ocamllabs/ocaml-integers"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-compiler-libs ocaml-stdlib-shims"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocamllabs/ocaml-integers/archive/$pkgver.tar.gz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f71bf73af2e4e0dd5bd039b28bce1fdabfb199ada1836d694814aa6d0c1c2d205531fbfc05581082b2dbb1e9cc0948e594915d5ad6a1cfa1dbffa9e44a7a7450 ocaml-integers-0.7.0.tar.gz
+"
diff --git a/testing/ocaml-ipaddr/APKBUILD b/testing/ocaml-ipaddr/APKBUILD
new file mode 100644
index 00000000000..ad0ffb7b618
--- /dev/null
+++ b/testing/ocaml-ipaddr/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ipaddr
+_pkgname=ipaddr
+pkgver=5.3.1
+pkgrel=2
+pkgdesc="A library for manipulation of IP (and MAC) address representations"
+provides="ocaml-macaddr=$pkgver-r$pkgrel"
+url="https://github.com/mirage/ocaml-ipaddr"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-domain-name-dev
+ ocaml-ppx_sexp_conv-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-ounit-dev ocaml-ppx_sexp_conv-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ocaml-ipaddr/releases/download/v$pkgver/ipaddr-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ provides="ocaml-macaddr-dev=$pkgver-r$pkgrel"
+
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+1d400f8344d1a8c2ac1c55e4a7167484034094e2227ce7c8f2f45843b0875a83030851400ceb96b5cdb756fa8798d83c77d839705fcb9e3f2bd5e46d337d63d0 ocaml-ipaddr-5.3.1.tar.bz2
+"
diff --git a/testing/ocaml-iri/APKBUILD b/testing/ocaml-iri/APKBUILD
new file mode 100644
index 00000000000..2a64f0ace28
--- /dev/null
+++ b/testing/ocaml-iri/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-iri
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Implementation of Internationalized Resource Identifiers (IRIs)"
+url="https://framagit.org/zoggy/ocaml-iri"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-sedlex-dev
+ ocaml-uunf-dev
+ ocaml-uutf-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+subpackages="$pkgname-dev"
+source="https://zoggy.frama.io/ocaml-iri/releases/ocaml-iri-$pkgver.tar.bz2"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+dad58975f1f601a56c113c5646a7b3c29ae5eb1c505e17c6120f492634d867d961f3f5cda8198b6e2a3cd84d23b04e4d230683a325c3935da1655c129a328eee ocaml-iri-1.0.0.tar.bz2
+"
diff --git a/testing/ocaml-iso8601/APKBUILD b/testing/ocaml-iso8601/APKBUILD
new file mode 100644
index 00000000000..a67917eb52e
--- /dev/null
+++ b/testing/ocaml-iso8601/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-iso8601
+pkgver=0.2.6
+pkgrel=0
+_pkgreal=ISO8601.ml
+pkgdesc="ISO 8601 and RFC 3999 date parsing"
+url="https://github.com/ocaml-community/ISO8601.ml"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-ounit-dev"
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.gz::https://github.com/ocaml-community/ISO8601.ml/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+82b5cbbb636346e8d010ee569c0fad2f00bef31c3177cfee80fc02a081c5fcfb7880bf2670fe4f46423e3ae99370626c7efffc9d332cae5cbd6377c975517b3f ISO8601.ml-0.2.6.tar.gz
+"
diff --git a/testing/ocaml-jsonm/APKBUILD b/testing/ocaml-jsonm/APKBUILD
new file mode 100644
index 00000000000..c9ef6db0d7c
--- /dev/null
+++ b/testing/ocaml-jsonm/APKBUILD
@@ -0,0 +1,99 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-jsonm
+pkgver=1.0.2
+pkgrel=0
+_pkgreal=jsonm
+pkgdesc="Non-blocking streaming JSON codec"
+url="https://erratique.ch/software/jsonm"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-uutf-dev
+ "
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-tools
+ "
+source="$_pkgreal-$pkgver.tar.bz2::https://erratique.ch/software/jsonm/releases/jsonm-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build -v \
+ --tests "$(want_check && echo true || echo false)"
+}
+
+check() {
+ ocaml pkg/pkg.ml test -v
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgreal.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+0072f5c31080202ed1cb996a8530d72c882723f26b597f784441033f59338ba8c0cbabf901794d5b1ae749a54af4d7ebf7b47987db43488c7f6ac7fe191a042f jsonm-1.0.2.tar.bz2
+"
diff --git a/testing/ocaml-lablgtk3-extras/APKBUILD b/testing/ocaml-lablgtk3-extras/APKBUILD
new file mode 100644
index 00000000000..92685d3da4d
--- /dev/null
+++ b/testing/ocaml-lablgtk3-extras/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lablgtk3-extras
+_pkgname=lablgtk-extras
+pkgver=3.0.1
+pkgrel=2
+pkgdesc="Additional tools and libraries for ocaml-lablgtk3"
+url="https://zoggy.frama.io/lablgtk-extras/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+# lablgtk3-sourceview3 is bundled together in ocaml-lablgtk3
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-lablgtk3-dev
+ ocaml-ocf-dev
+ ocaml-xmlm-dev
+ ocaml-yojson-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://framagit.org/zoggy/lablgtk-extras/-/archive/$pkgver/lablgtk-extras-$pkgver.tar.bz2"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+a14faba4a0bd679311ad7c00fd80bb768727e70c84591af51e880a928a545e51c020d5fb3d51752162aff1525a6cd1606a25199e18c0c368b8d112d253bd7320 ocaml-lablgtk3-extras-3.0.1.tar.bz2
+"
diff --git a/testing/ocaml-lablgtk3/APKBUILD b/testing/ocaml-lablgtk3/APKBUILD
new file mode 100644
index 00000000000..fcb65971d71
--- /dev/null
+++ b/testing/ocaml-lablgtk3/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lablgtk3
+_pkgname=lablgtk
+pkgver=3.1.2
+pkgrel=3
+pkgdesc="OCaml interface to GTK+3"
+provides="$pkgname-sourceview3=$pkgver-r$pkgrel"
+url="https://github.com/garrigue/lablgtk"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cairo2-dev
+ gtksourceview-dev
+ "
+makedepends="$depends_dev dune dune-configurator ocaml"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/garrigue/lablgtk/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p lablgtk3,lablgtk3-sourceview3 \
+ --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ lablgtk3 lablgtk3-sourceview3
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ provides="$pkgname-sourceview3-dev=$pkgver-r$pkgrel"
+
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+c63a492160f36685f65cb6bc0e72ff4939005acb2c65c56c0d9ba8f2112a618f24db84765e7b4416e49024048a36895028cfc5ef2c3e298dd4a309e902e34af5 ocaml-lablgtk3-3.1.2.tar.gz
+"
diff --git a/testing/ocaml-labltk/APKBUILD b/testing/ocaml-labltk/APKBUILD
new file mode 100644
index 00000000000..be36cb6d40a
--- /dev/null
+++ b/testing/ocaml-labltk/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-labltk
+_pkgname=labltk
+pkgver=8.06.12
+pkgrel=2
+_ocamlver=4.14
+pkgdesc="Tcl/Tk interface for OCaml"
+url="https://garrigue.github.io/labltk/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.0-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml=~$_ocamlver
+ ocaml-compiler-libs=~$_ocamlver
+ tk-dev
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/garrigue/labltk/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ ./configure --tk-no-x11
+ make -j1 all
+ make -j1 opt
+}
+
+package() {
+ local libdir="$pkgdir/usr/lib/ocaml"
+
+ mkdir -p "$libdir"/$_pkgname \
+ "$libdir"/stublibs \
+ "$pkgdir"/usr/bin
+
+ export RANLIB=ranlib
+ make install \
+ BINDIR="$pkgdir/usr/bin" \
+ INSTALLDIR="$pkgdir/usr/lib/ocaml/$_pkgname" \
+ STUBLIBDIR="$pkgdir/usr/lib/ocaml/stublibs"
+
+ # The *.o files are not installed by the Makefile.
+ # AIUI that prevents linking with native code programs.
+ install -m 0644 camltk/*.o "$libdir"/$_pkgname/
+}
+
+dev() {
+ local sitelib="usr/lib/ocaml/$_pkgname"
+ default_dev
+
+ mkdir -p "$subpkgdir"/usr
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ cd "$pkgdir"/$sitelib
+ mkdir -p "$subpkgdir"/$sitelib
+ mv ./*.mli "$subpkgdir"/$sitelib/
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+e1564ab2d8922276bd8ad586b37308d60ca2dd563bac3cdd992d8a6ba4de26e5499350a62a1d4cb2bbb9a5b7aff609b5187aad5fba118eb55d1b4c8355d2979a ocaml-labltk-8.06.12.tar.gz
+"
diff --git a/testing/ocaml-lambda-term/APKBUILD b/testing/ocaml-lambda-term/APKBUILD
new file mode 100644
index 00000000000..922fd1a07b7
--- /dev/null
+++ b/testing/ocaml-lambda-term/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lambda-term
+_pkgname=lambda-term
+pkgver=3.2.0
+pkgrel=4
+pkgdesc="Terminal manipulation library for OCaml"
+url="https://github.com/ocaml-community/lambda-term"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+# ocaml-lwt_react-dev is provided by ocaml-lwt-dev
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-camomile-dev
+ ocaml-lwt-dev
+ ocaml-lwt_log-dev
+ ocaml-mew_vi-dev
+ ocaml-zed-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml-community/lambda-term/releases/download/$pkgver/lambda-term-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir"
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+46cd46f47c9f34c0a5e096b96e6eec59667b645bf5201140e498e6d4eb9baba8204a2b30b73c4b2f8140e5cf1972a56e3aa485b27bc5ace25b2c368f713ad7c4 ocaml-lambda-term-3.2.0.tar.gz
+"
diff --git a/testing/ocaml-lambdasoup/APKBUILD b/testing/ocaml-lambdasoup/APKBUILD
new file mode 100644
index 00000000000..c5466e26b31
--- /dev/null
+++ b/testing/ocaml-lambdasoup/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lambdasoup
+_pkgname=lambdasoup
+pkgver=0.7.3
+pkgrel=2
+pkgdesc="Easy functional HTML scraping and manipulation with CSS selectors"
+url="https://github.com/aantron/lambdasoup"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+checkdepends="ocaml-result-dev ocaml-ounit-dev"
+makedepends="
+ dune
+ ocaml
+ ocaml-seq-dev
+ ocaml-stdlib-shims
+ ocaml-uutf-dev
+ ocaml-markup-dev
+ ocaml-bisect_ppx-dev
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/aantron/lambdasoup/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+a6f15259e0034f297913fedb2713d4048dcf760d31d00c5ce0a990f977e22aba332a7303dec557912c74c59e178cdfeebfc26703a9698a65f8020aa8222e66e9 ocaml-lambdasoup-0.7.3.tar.gz
+"
diff --git a/testing/ocaml-libvirt/0001-Add-a-binding-for-virDomainCreateXML.patch b/testing/ocaml-libvirt/0001-Add-a-binding-for-virDomainCreateXML.patch
deleted file mode 100644
index a25507b4f03..00000000000
--- a/testing/ocaml-libvirt/0001-Add-a-binding-for-virDomainCreateXML.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From 7483c7454538584a3dbe4582096f058e6e877df6 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Fri, 6 Mar 2015 15:35:46 +0000
-Subject: [PATCH] Add a binding for virDomainCreateXML.
-
-This is more modern than the ancient virDomainCreateLinux API,
-and crucially allows you to pass flags such as AUTODESTROY.
----
- configure.ac | 2 +-
- libvirt/generator.pl | 23 +++++++++++++++++++++--
- libvirt/libvirt.ml | 19 ++++++++++++++++++-
- libvirt/libvirt.mli | 13 +++++++++++--
- libvirt/libvirt_c.c | 25 ++++++++++++++++++++++++-
- 5 files changed, 75 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index b7544b4..a719fb3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,5 +1,5 @@
- # ocaml-libvirt
--# Copyright (C) 2007-2008 Red Hat Inc., Richard W.M. Jones
-+# Copyright (C) 2007-2015 Red Hat Inc., Richard W.M. Jones
- #
- # This library is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
-diff --git a/libvirt/generator.pl b/libvirt/generator.pl
-index 8229ad1..421592b 100755
---- a/libvirt/generator.pl
-+++ b/libvirt/generator.pl
-@@ -1,7 +1,7 @@
- #!/usr/bin/perl -w
- #
- # OCaml bindings for libvirt.
--# (C) Copyright 2007-2008 Richard W.M. Jones, Red Hat Inc.
-+# (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
- # http://libvirt.org/
- #
- # This library is free software; you can redistribute it and/or
-@@ -63,6 +63,7 @@ my @functions = (
- sig => "conn, int : unit" },
-
- { name => "virDomainCreateLinux", sig => "conn, string, 0U : dom" },
-+ { name => "virDomainCreateXML", sig => "conn, string, unsigned : dom" },
- { name => "virDomainFree", sig => "dom : free" },
- { name => "virDomainDestroy", sig => "dom : free" },
- { name => "virDomainLookupByName", sig => "conn, string : dom" },
-@@ -198,7 +199,7 @@ print F <<'END';
- */
-
- /* OCaml bindings for libvirt.
-- * (C) Copyright 2007-2008 Richard W.M. Jones, Red Hat Inc.
-+ * (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
- * http://libvirt.org/
- *
- * This library is free software; you can redistribute it and/or
-@@ -310,6 +311,8 @@ sub gen_arg_names
- ( "$1v", "strv" )
- } elsif ($sig =~ /^(\w+), string, 0U? : (\w+)$/) {
- ( "$1v", "strv" )
-+ } elsif ($sig =~ /^(\w+), string, unsigned : (\w+)$/) {
-+ ( "$1v", "strv", "uv" )
- } elsif ($sig =~ /^(\w+), u?int : (\w+)$/) {
- ( "$1v", "iv" )
- } elsif ($sig =~ /^(\w+), uuid : (\w+)$/) {
-@@ -632,6 +635,22 @@ sub gen_c_code
-
- CAMLreturn (rv);
- "
-+ } elsif ($sig =~ /^(\w+), string, unsigned : (\w+)$/) {
-+ my $c_ret_type = short_name_to_c_type ($2);
-+ "\
-+ CAMLlocal1 (rv);
-+ " . gen_unpack_args ($1) . "
-+ char *str = String_val (strv);
-+ unsigned int u = Int_val (uv);
-+ $c_ret_type r;
-+
-+ NONBLOCKING (r = $c_name ($1, str, u));
-+ CHECK_ERROR (!r, conn, \"$c_name\");
-+
-+ " . gen_pack_result ($2) . "
-+
-+ CAMLreturn (rv);
-+"
- } elsif ($sig =~ /^(\w+), (u?)int : unit$/) {
- my $unsigned = $2 eq "u" ? "unsigned " : "";
- "\
-diff --git a/libvirt/libvirt.ml b/libvirt/libvirt.ml
-index 9c9368a..1be023d 100644
---- a/libvirt/libvirt.ml
-+++ b/libvirt/libvirt.ml
-@@ -1,5 +1,5 @@
- (* OCaml bindings for libvirt.
-- (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc.
-+ (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
- http://libvirt.org/
-
- This library is free software; you can redistribute it and/or
-@@ -337,6 +337,20 @@ struct
- cpu : int;
- }
-
-+ type domain_create_flag =
-+ | START_PAUSED
-+ | START_AUTODESTROY
-+ | START_BYPASS_CACHE
-+ | START_FORCE_BOOT
-+ | START_VALIDATE
-+ let rec int_of_domain_create_flags = function
-+ | [] -> 0
-+ | START_PAUSED :: flags -> 1 lor int_of_domain_create_flags flags
-+ | START_AUTODESTROY :: flags -> 2 lor int_of_domain_create_flags flags
-+ | START_BYPASS_CACHE :: flags -> 4 lor int_of_domain_create_flags flags
-+ | START_FORCE_BOOT :: flags -> 8 lor int_of_domain_create_flags flags
-+ | START_VALIDATE :: flags -> 16 lor int_of_domain_create_flags flags
-+
- type sched_param = string * sched_param_value
- and sched_param_value =
- | SchedFieldInt32 of int32 | SchedFieldUInt32 of int32
-@@ -385,6 +399,9 @@ struct
- let max_peek _ = 65536
-
- external create_linux : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_domain_create_linux"
-+ external _create_xml : [>`W] Connect.t -> xml -> int -> rw t = "ocaml_libvirt_domain_create_xml"
-+ let create_xml conn xml flags =
-+ _create_xml conn xml (int_of_domain_create_flags flags)
- external lookup_by_id : 'a Connect.t -> int -> 'a t = "ocaml_libvirt_domain_lookup_by_id"
- external lookup_by_uuid : 'a Connect.t -> uuid -> 'a t = "ocaml_libvirt_domain_lookup_by_uuid"
- external lookup_by_uuid_string : 'a Connect.t -> string -> 'a t = "ocaml_libvirt_domain_lookup_by_uuid_string"
-diff --git a/libvirt/libvirt.mli b/libvirt/libvirt.mli
-index 36cd113..8cfcae2 100644
---- a/libvirt/libvirt.mli
-+++ b/libvirt/libvirt.mli
-@@ -1,5 +1,5 @@
- (** OCaml bindings for libvirt. *)
--(* (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc.
-+(* (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
- http://libvirt.org/
-
- This library is free software; you can redistribute it and/or
-@@ -430,6 +430,13 @@ sig
- cpu : int; (** real CPU number, -1 if offline *)
- }
-
-+ type domain_create_flag =
-+ | START_PAUSED (** Launch guest in paused state *)
-+ | START_AUTODESTROY (** Automatically kill guest on close *)
-+ | START_BYPASS_CACHE (** Avoid filesystem cache pollution *)
-+ | START_FORCE_BOOT (** Discard any managed save *)
-+ | START_VALIDATE (** Validate XML against schema *)
-+
- type sched_param = string * sched_param_value
- and sched_param_value =
- | SchedFieldInt32 of int32 | SchedFieldUInt32 of int32
-@@ -478,8 +485,10 @@ sig
-
- val create_linux : [>`W] Connect.t -> xml -> rw t
- (** Create a new guest domain (not necessarily a Linux one)
-- from the given XML.
-+ from the given XML. Use {!create_xml} instead.
- *)
-+ val create_xml : [>`W] Connect.t -> xml -> domain_create_flag list -> rw t
-+ (** Create a new guest domain from the given XML. *)
- val lookup_by_id : 'a Connect.t -> int -> 'a t
- (** Lookup a domain by ID. *)
- val lookup_by_uuid : 'a Connect.t -> uuid -> 'a t
-diff --git a/libvirt/libvirt_c.c b/libvirt/libvirt_c.c
-index 71e6f61..6e56682 100644
---- a/libvirt/libvirt_c.c
-+++ b/libvirt/libvirt_c.c
-@@ -6,7 +6,7 @@
- */
-
- /* OCaml bindings for libvirt.
-- * (C) Copyright 2007-2008 Richard W.M. Jones, Red Hat Inc.
-+ * (C) Copyright 2007-2015 Richard W.M. Jones, Red Hat Inc.
- * http://libvirt.org/
- *
- * This library is free software; you can redistribute it and/or
-@@ -525,6 +525,29 @@ ocaml_libvirt_domain_create_linux (value connv, value strv)
- CAMLreturn (rv);
- }
-
-+/* Automatically generated binding for virDomainCreateXML.
-+ * In generator.pl this function has signature "conn, string, unsigned : dom".
-+ */
-+
-+CAMLprim value
-+ocaml_libvirt_domain_create_xml (value connv, value strv, value uv)
-+{
-+ CAMLparam3 (connv, strv, uv);
-+
-+ CAMLlocal1 (rv);
-+ virConnectPtr conn = Connect_val (connv);
-+ char *str = String_val (strv);
-+ unsigned int u = Int_val (uv);
-+ virDomainPtr r;
-+
-+ NONBLOCKING (r = virDomainCreateXML (conn, str, u));
-+ CHECK_ERROR (!r, conn, "virDomainCreateXML");
-+
-+ rv = Val_domain (r, connv);
-+
-+ CAMLreturn (rv);
-+}
-+
- /* Automatically generated binding for virDomainFree.
- * In generator.pl this function has signature "dom : free".
- */
---
-2.3.1
-
diff --git a/testing/ocaml-libvirt/0001-Remove-unused-not_supported-function.patch b/testing/ocaml-libvirt/0001-Remove-unused-not_supported-function.patch
deleted file mode 100644
index 851385cba3e..00000000000
--- a/testing/ocaml-libvirt/0001-Remove-unused-not_supported-function.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 8853f5a49587f00a7d2a5c8c7e52480a16bbdb02 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Fri, 5 Feb 2016 16:28:34 +0000
-Subject: [PATCH] Remove unused 'not_supported' function.
-
-Found by compiling under GCC 6. The warning was:
-
-In file included from libvirt_c.c:2058:0:
-libvirt_c_epilogue.c:89:1: error: 'not_supported' defined but not used [-Werror=unused-function]
- not_supported (const char *fn)
- ^~~~~~~~~~~~~
----
- libvirt/libvirt_c_epilogue.c | 15 ---------------
- libvirt/libvirt_c_prologue.c | 1 -
- 2 files changed, 16 deletions(-)
-
-diff --git a/libvirt/libvirt_c_epilogue.c b/libvirt/libvirt_c_epilogue.c
-index 4972e50..fa592c9 100644
---- a/libvirt/libvirt_c_epilogue.c
-+++ b/libvirt/libvirt_c_epilogue.c
-@@ -84,21 +84,6 @@ _raise_virterror (const char *fn)
- (void) caml__frame;
- }
-
--/* Raise an error if a function is not supported. */
--static void
--not_supported (const char *fn)
--{
-- CAMLparam0 ();
-- CAMLlocal1 (fnv);
--
-- fnv = caml_copy_string (fn);
-- caml_raise_with_arg (*caml_named_value ("ocaml_libvirt_not_supported"), fnv);
--
-- /*NOTREACHED*/
-- /* Suppresses a compiler warning. */
-- (void) caml__frame;
--}
--
- /* Convert the virErrorNumber, virErrorDomain and virErrorLevel enums
- * into values (longs because they are variants in OCaml).
- *
-diff --git a/libvirt/libvirt_c_prologue.c b/libvirt/libvirt_c_prologue.c
-index bf972e9..710c0d6 100644
---- a/libvirt/libvirt_c_prologue.c
-+++ b/libvirt/libvirt_c_prologue.c
-@@ -25,7 +25,6 @@ typedef value (*Val_ptr_t) (void *);
- static value Val_opt (void *ptr, Val_ptr_t Val_ptr);
- /*static value option_default (value option, value deflt);*/
- static void _raise_virterror (const char *fn) Noreturn;
--static void not_supported (const char *fn) Noreturn;
- static value Val_virterror (virErrorPtr err);
-
- /* Use this around synchronous libvirt API calls to release the OCaml
---
-2.5.0
-
diff --git a/testing/ocaml-libvirt/0001-Suppress-errors-to-stderr-and-use-thread-local-virEr.patch b/testing/ocaml-libvirt/0001-Suppress-errors-to-stderr-and-use-thread-local-virEr.patch
deleted file mode 100644
index f3655349e83..00000000000
--- a/testing/ocaml-libvirt/0001-Suppress-errors-to-stderr-and-use-thread-local-virEr.patch
+++ /dev/null
@@ -1,1864 +0,0 @@
-From 68fae1ec3de46fd9eec88fb7c1894ea7ed85ccc9 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Tue, 17 Mar 2015 12:51:50 +0000
-Subject: [PATCH 1/2] Suppress errors to stderr and use thread-local
- virErrorPtr
-
-This allows us to capture errors that happen during virConnectOpen,
-without spewing error messages on stderr.
-
-The patch is rather large, only because we don't need to pass the
-virConnectPtr argument to CHECK_ERROR/_raise_virterror any longer.
----
- libvirt/generator.pl | 66 ++++++------
- libvirt/libvirt_c.c | 241 +++++++++++++++++--------------------------
- libvirt/libvirt_c_epilogue.c | 4 +-
- libvirt/libvirt_c_oneoffs.c | 94 +++++++----------
- libvirt/libvirt_c_prologue.c | 6 +-
- 5 files changed, 169 insertions(+), 242 deletions(-)
-
-diff --git a/libvirt/generator.pl b/libvirt/generator.pl
-index 421592b..34801ba 100755
---- a/libvirt/generator.pl
-+++ b/libvirt/generator.pl
-@@ -343,17 +343,13 @@ sub gen_unpack_args
- if ($_ eq "conn") {
- "virConnectPtr conn = Connect_val (connv);"
- } elsif ($_ eq "dom") {
-- "virDomainPtr dom = Domain_val (domv);\n".
-- " virConnectPtr conn = Connect_domv (domv);"
-+ "virDomainPtr dom = Domain_val (domv);"
- } elsif ($_ eq "net") {
-- "virNetworkPtr net = Network_val (netv);\n".
-- " virConnectPtr conn = Connect_netv (netv);"
-+ "virNetworkPtr net = Network_val (netv);"
- } elsif ($_ eq "pool") {
-- "virStoragePoolPtr pool = Pool_val (poolv);\n".
-- " virConnectPtr conn = Connect_polv (poolv);"
-+ "virStoragePoolPtr pool = Pool_val (poolv);"
- } elsif ($_ eq "vol") {
-- "virStorageVolPtr vol = Volume_val (volv);\n".
-- " virConnectPtr conn = Connect_volv (volv);"
-+ "virStorageVolPtr vol = Volume_val (volv);"
- } else {
- die "unknown short name $_"
- }
-@@ -402,7 +398,7 @@ sub gen_c_code
- char *r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -415,7 +411,7 @@ sub gen_c_code
- const char *r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -426,7 +422,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (Val_int (r));
- "
-@@ -438,7 +434,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1, uuid));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- /* UUIDs are byte arrays with a fixed length. */
- rv = caml_alloc_string (VIR_UUID_BUFLEN);
-@@ -453,7 +449,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1, uuid));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- rv = caml_copy_string (uuid);
- CAMLreturn (rv);
-@@ -464,7 +460,7 @@ sub gen_c_code
- int r, b;
-
- NONBLOCKING (r = $c_name ($1, &b));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (b ? Val_true : Val_false);
- "
-@@ -476,7 +472,7 @@ sub gen_c_code
- b = bv == Val_true ? 1 : 0;
-
- NONBLOCKING (r = $c_name ($1, b));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (Val_unit);
- "
-@@ -498,7 +494,7 @@ sub gen_c_code
- }
-
- NONBLOCKING (r = $c_name (conn, ids, i));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i)
-@@ -525,7 +521,7 @@ sub gen_c_code
- }
-
- NONBLOCKING (r = $c_name ($1, names, i));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -543,7 +539,7 @@ sub gen_c_code
- char *r;
-
- NONBLOCKING (r = $c_name ($1, 0));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -555,7 +551,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1, 0));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (Val_unit);
- "
-@@ -565,7 +561,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (Val_unit);
- "
-@@ -575,7 +571,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- /* So that we don't double-free in the finalizer: */
- " . gen_free_arg ($1) . "
-@@ -589,7 +585,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1, str));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (Val_unit);
- "
-@@ -601,7 +597,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1, str, 0));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- CAMLreturn (Val_unit);
- "
-@@ -614,7 +610,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, str));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($2) . "
-
-@@ -629,7 +625,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, str, 0));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($2) . "
-
-@@ -645,7 +641,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, str, u));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($2) . "
-
-@@ -659,7 +655,7 @@ sub gen_c_code
- int r;
-
- NONBLOCKING (r = $c_name ($1, i));
-- CHECK_ERROR (r == -1, conn, \"$c_name\");
-+ CHECK_ERROR (r == -1, \"$c_name\");
-
- CAMLreturn (Val_unit);
- "
-@@ -673,7 +669,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, i));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($3) . "
-
-@@ -688,7 +684,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, uuid));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($2) . "
-
-@@ -702,7 +698,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, 0));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($2) . "
-
-@@ -716,7 +712,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- " . gen_pack_result ($2) . "
-
-@@ -731,7 +727,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, str));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- connv = Field ($3v, 1);
- " . gen_pack_result ($2) . "
-@@ -747,7 +743,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, str, 0));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- connv = Field ($3v, 1);
- " . gen_pack_result ($2) . "
-@@ -762,7 +758,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1, 0));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- connv = Field ($3v, 1);
- " . gen_pack_result ($2) . "
-@@ -777,7 +773,7 @@ sub gen_c_code
- $c_ret_type r;
-
- NONBLOCKING (r = $c_name ($1));
-- CHECK_ERROR (!r, conn, \"$c_name\");
-+ CHECK_ERROR (!r, \"$c_name\");
-
- connv = Field ($3v, 1);
- " . gen_pack_result ($2) . "
-diff --git a/libvirt/libvirt_c.c b/libvirt/libvirt_c.c
-index 6e56682..8d51944 100644
---- a/libvirt/libvirt_c.c
-+++ b/libvirt/libvirt_c.c
-@@ -61,7 +61,7 @@ ocaml_libvirt_connect_close (value connv)
- int r;
-
- NONBLOCKING (r = virConnectClose (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectClose");
-+ CHECK_ERROR (r == -1, "virConnectClose");
-
- /* So that we don't double-free in the finalizer: */
- Connect_val (connv) = NULL;
-@@ -83,7 +83,7 @@ ocaml_libvirt_connect_get_hostname (value connv)
- char *r;
-
- NONBLOCKING (r = virConnectGetHostname (conn));
-- CHECK_ERROR (!r, conn, "virConnectGetHostname");
-+ CHECK_ERROR (!r, "virConnectGetHostname");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -104,7 +104,7 @@ ocaml_libvirt_connect_get_uri (value connv)
- char *r;
-
- NONBLOCKING (r = virConnectGetURI (conn));
-- CHECK_ERROR (!r, conn, "virConnectGetURI");
-+ CHECK_ERROR (!r, "virConnectGetURI");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -125,7 +125,7 @@ ocaml_libvirt_connect_get_type (value connv)
- const char *r;
-
- NONBLOCKING (r = virConnectGetType (conn));
-- CHECK_ERROR (!r, conn, "virConnectGetType");
-+ CHECK_ERROR (!r, "virConnectGetType");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -144,7 +144,7 @@ ocaml_libvirt_connect_num_of_domains (value connv)
- int r;
-
- NONBLOCKING (r = virConnectNumOfDomains (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectNumOfDomains");
-+ CHECK_ERROR (r == -1, "virConnectNumOfDomains");
-
- CAMLreturn (Val_int (r));
- }
-@@ -174,7 +174,7 @@ ocaml_libvirt_connect_list_domains (value connv, value iv)
- }
-
- NONBLOCKING (r = virConnectListDomains (conn, ids, i));
-- CHECK_ERROR (r == -1, conn, "virConnectListDomains");
-+ CHECK_ERROR (r == -1, "virConnectListDomains");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i)
-@@ -196,7 +196,7 @@ ocaml_libvirt_connect_num_of_defined_domains (value connv)
- int r;
-
- NONBLOCKING (r = virConnectNumOfDefinedDomains (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectNumOfDefinedDomains");
-+ CHECK_ERROR (r == -1, "virConnectNumOfDefinedDomains");
-
- CAMLreturn (Val_int (r));
- }
-@@ -227,7 +227,7 @@ ocaml_libvirt_connect_list_defined_domains (value connv, value iv)
- }
-
- NONBLOCKING (r = virConnectListDefinedDomains (conn, names, i));
-- CHECK_ERROR (r == -1, conn, "virConnectListDefinedDomains");
-+ CHECK_ERROR (r == -1, "virConnectListDefinedDomains");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -252,7 +252,7 @@ ocaml_libvirt_connect_num_of_networks (value connv)
- int r;
-
- NONBLOCKING (r = virConnectNumOfNetworks (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectNumOfNetworks");
-+ CHECK_ERROR (r == -1, "virConnectNumOfNetworks");
-
- CAMLreturn (Val_int (r));
- }
-@@ -283,7 +283,7 @@ ocaml_libvirt_connect_list_networks (value connv, value iv)
- }
-
- NONBLOCKING (r = virConnectListNetworks (conn, names, i));
-- CHECK_ERROR (r == -1, conn, "virConnectListNetworks");
-+ CHECK_ERROR (r == -1, "virConnectListNetworks");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -308,7 +308,7 @@ ocaml_libvirt_connect_num_of_defined_networks (value connv)
- int r;
-
- NONBLOCKING (r = virConnectNumOfDefinedNetworks (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectNumOfDefinedNetworks");
-+ CHECK_ERROR (r == -1, "virConnectNumOfDefinedNetworks");
-
- CAMLreturn (Val_int (r));
- }
-@@ -339,7 +339,7 @@ ocaml_libvirt_connect_list_defined_networks (value connv, value iv)
- }
-
- NONBLOCKING (r = virConnectListDefinedNetworks (conn, names, i));
-- CHECK_ERROR (r == -1, conn, "virConnectListDefinedNetworks");
-+ CHECK_ERROR (r == -1, "virConnectListDefinedNetworks");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -364,7 +364,7 @@ ocaml_libvirt_connect_num_of_storage_pools (value connv)
- int r;
-
- NONBLOCKING (r = virConnectNumOfStoragePools (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectNumOfStoragePools");
-+ CHECK_ERROR (r == -1, "virConnectNumOfStoragePools");
-
- CAMLreturn (Val_int (r));
- }
-@@ -395,7 +395,7 @@ ocaml_libvirt_connect_list_storage_pools (value connv, value iv)
- }
-
- NONBLOCKING (r = virConnectListStoragePools (conn, names, i));
-- CHECK_ERROR (r == -1, conn, "virConnectListStoragePools");
-+ CHECK_ERROR (r == -1, "virConnectListStoragePools");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -420,7 +420,7 @@ ocaml_libvirt_connect_num_of_defined_storage_pools (value connv)
- int r;
-
- NONBLOCKING (r = virConnectNumOfDefinedStoragePools (conn));
-- CHECK_ERROR (r == -1, conn, "virConnectNumOfDefinedStoragePools");
-+ CHECK_ERROR (r == -1, "virConnectNumOfDefinedStoragePools");
-
- CAMLreturn (Val_int (r));
- }
-@@ -451,7 +451,7 @@ ocaml_libvirt_connect_list_defined_storage_pools (value connv, value iv)
- }
-
- NONBLOCKING (r = virConnectListDefinedStoragePools (conn, names, i));
-- CHECK_ERROR (r == -1, conn, "virConnectListDefinedStoragePools");
-+ CHECK_ERROR (r == -1, "virConnectListDefinedStoragePools");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -477,7 +477,7 @@ ocaml_libvirt_connect_get_capabilities (value connv)
- char *r;
-
- NONBLOCKING (r = virConnectGetCapabilities (conn));
-- CHECK_ERROR (!r, conn, "virConnectGetCapabilities");
-+ CHECK_ERROR (!r, "virConnectGetCapabilities");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -498,7 +498,7 @@ ocaml_libvirt_connect_domain_event_deregister_any (value connv, value iv)
- int r;
-
- NONBLOCKING (r = virConnectDomainEventDeregisterAny (conn, i));
-- CHECK_ERROR (r == -1, conn, "virConnectDomainEventDeregisterAny");
-+ CHECK_ERROR (r == -1, "virConnectDomainEventDeregisterAny");
-
- CAMLreturn (Val_unit);
- }
-@@ -518,7 +518,7 @@ ocaml_libvirt_domain_create_linux (value connv, value strv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainCreateLinux (conn, str, 0));
-- CHECK_ERROR (!r, conn, "virDomainCreateLinux");
-+ CHECK_ERROR (!r, "virDomainCreateLinux");
-
- rv = Val_domain (r, connv);
-
-@@ -541,7 +541,7 @@ ocaml_libvirt_domain_create_xml (value connv, value strv, value uv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainCreateXML (conn, str, u));
-- CHECK_ERROR (!r, conn, "virDomainCreateXML");
-+ CHECK_ERROR (!r, "virDomainCreateXML");
-
- rv = Val_domain (r, connv);
-
-@@ -558,11 +558,10 @@ ocaml_libvirt_domain_free (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainFree (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainFree");
-+ CHECK_ERROR (r == -1, "virDomainFree");
-
- /* So that we don't double-free in the finalizer: */
- Domain_val (domv) = NULL;
-@@ -580,11 +579,10 @@ ocaml_libvirt_domain_destroy (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainDestroy (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainDestroy");
-+ CHECK_ERROR (r == -1, "virDomainDestroy");
-
- /* So that we don't double-free in the finalizer: */
- Domain_val (domv) = NULL;
-@@ -607,7 +605,7 @@ ocaml_libvirt_domain_lookup_by_name (value connv, value strv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainLookupByName (conn, str));
-- CHECK_ERROR (!r, conn, "virDomainLookupByName");
-+ CHECK_ERROR (!r, "virDomainLookupByName");
-
- rv = Val_domain (r, connv);
-
-@@ -629,7 +627,7 @@ ocaml_libvirt_domain_lookup_by_id (value connv, value iv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainLookupByID (conn, i));
-- CHECK_ERROR (!r, conn, "virDomainLookupByID");
-+ CHECK_ERROR (!r, "virDomainLookupByID");
-
- rv = Val_domain (r, connv);
-
-@@ -651,7 +649,7 @@ ocaml_libvirt_domain_lookup_by_uuid (value connv, value uuidv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainLookupByUUID (conn, uuid));
-- CHECK_ERROR (!r, conn, "virDomainLookupByUUID");
-+ CHECK_ERROR (!r, "virDomainLookupByUUID");
-
- rv = Val_domain (r, connv);
-
-@@ -673,7 +671,7 @@ ocaml_libvirt_domain_lookup_by_uuid_string (value connv, value strv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainLookupByUUIDString (conn, str));
-- CHECK_ERROR (!r, conn, "virDomainLookupByUUIDString");
-+ CHECK_ERROR (!r, "virDomainLookupByUUIDString");
-
- rv = Val_domain (r, connv);
-
-@@ -691,11 +689,10 @@ ocaml_libvirt_domain_get_name (value domv)
-
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- const char *r;
-
- NONBLOCKING (r = virDomainGetName (dom));
-- CHECK_ERROR (!r, conn, "virDomainGetName");
-+ CHECK_ERROR (!r, "virDomainGetName");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -712,11 +709,10 @@ ocaml_libvirt_domain_get_os_type (value domv)
-
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *r;
-
- NONBLOCKING (r = virDomainGetOSType (dom));
-- CHECK_ERROR (!r, conn, "virDomainGetOSType");
-+ CHECK_ERROR (!r, "virDomainGetOSType");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -734,11 +730,10 @@ ocaml_libvirt_domain_get_xml_desc (value domv)
-
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *r;
-
- NONBLOCKING (r = virDomainGetXMLDesc (dom, 0));
-- CHECK_ERROR (!r, conn, "virDomainGetXMLDesc");
-+ CHECK_ERROR (!r, "virDomainGetXMLDesc");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -756,12 +751,11 @@ ocaml_libvirt_domain_get_uuid (value domv)
-
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- unsigned char uuid[VIR_UUID_BUFLEN];
- int r;
-
- NONBLOCKING (r = virDomainGetUUID (dom, uuid));
-- CHECK_ERROR (r == -1, conn, "virDomainGetUUID");
-+ CHECK_ERROR (r == -1, "virDomainGetUUID");
-
- /* UUIDs are byte arrays with a fixed length. */
- rv = caml_alloc_string (VIR_UUID_BUFLEN);
-@@ -780,12 +774,11 @@ ocaml_libvirt_domain_get_uuid_string (value domv)
-
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char uuid[VIR_UUID_STRING_BUFLEN];
- int r;
-
- NONBLOCKING (r = virDomainGetUUIDString (dom, uuid));
-- CHECK_ERROR (r == -1, conn, "virDomainGetUUIDString");
-+ CHECK_ERROR (r == -1, "virDomainGetUUIDString");
-
- rv = caml_copy_string (uuid);
- CAMLreturn (rv);
-@@ -801,11 +794,10 @@ ocaml_libvirt_domain_get_max_vcpus (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainGetMaxVcpus (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainGetMaxVcpus");
-+ CHECK_ERROR (r == -1, "virDomainGetMaxVcpus");
-
- CAMLreturn (Val_int (r));
- }
-@@ -820,12 +812,11 @@ ocaml_libvirt_domain_save (value domv, value strv)
- CAMLparam2 (domv, strv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *str = String_val (strv);
- int r;
-
- NONBLOCKING (r = virDomainSave (dom, str));
-- CHECK_ERROR (r == -1, conn, "virDomainSave");
-+ CHECK_ERROR (r == -1, "virDomainSave");
-
- CAMLreturn (Val_unit);
- }
-@@ -844,7 +835,7 @@ ocaml_libvirt_domain_restore (value connv, value strv)
- int r;
-
- NONBLOCKING (r = virDomainRestore (conn, str));
-- CHECK_ERROR (r == -1, conn, "virDomainRestore");
-+ CHECK_ERROR (r == -1, "virDomainRestore");
-
- CAMLreturn (Val_unit);
- }
-@@ -860,12 +851,11 @@ ocaml_libvirt_domain_core_dump (value domv, value strv)
-
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *str = String_val (strv);
- int r;
-
- NONBLOCKING (r = virDomainCoreDump (dom, str, 0));
-- CHECK_ERROR (!r, conn, "virDomainCoreDump");
-+ CHECK_ERROR (!r, "virDomainCoreDump");
-
- CAMLreturn (Val_unit);
- }
-@@ -880,11 +870,10 @@ ocaml_libvirt_domain_suspend (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainSuspend (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainSuspend");
-+ CHECK_ERROR (r == -1, "virDomainSuspend");
-
- CAMLreturn (Val_unit);
- }
-@@ -899,11 +888,10 @@ ocaml_libvirt_domain_resume (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainResume (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainResume");
-+ CHECK_ERROR (r == -1, "virDomainResume");
-
- CAMLreturn (Val_unit);
- }
-@@ -918,11 +906,10 @@ ocaml_libvirt_domain_shutdown (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainShutdown (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainShutdown");
-+ CHECK_ERROR (r == -1, "virDomainShutdown");
-
- CAMLreturn (Val_unit);
- }
-@@ -937,11 +924,10 @@ ocaml_libvirt_domain_reboot (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainReboot (dom, 0));
-- CHECK_ERROR (r == -1, conn, "virDomainReboot");
-+ CHECK_ERROR (r == -1, "virDomainReboot");
-
- CAMLreturn (Val_unit);
- }
-@@ -961,7 +947,7 @@ ocaml_libvirt_domain_define_xml (value connv, value strv)
- virDomainPtr r;
-
- NONBLOCKING (r = virDomainDefineXML (conn, str));
-- CHECK_ERROR (!r, conn, "virDomainDefineXML");
-+ CHECK_ERROR (!r, "virDomainDefineXML");
-
- rv = Val_domain (r, connv);
-
-@@ -978,11 +964,10 @@ ocaml_libvirt_domain_undefine (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainUndefine (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainUndefine");
-+ CHECK_ERROR (r == -1, "virDomainUndefine");
-
- CAMLreturn (Val_unit);
- }
-@@ -997,11 +982,10 @@ ocaml_libvirt_domain_create (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r;
-
- NONBLOCKING (r = virDomainCreate (dom));
-- CHECK_ERROR (r == -1, conn, "virDomainCreate");
-+ CHECK_ERROR (r == -1, "virDomainCreate");
-
- CAMLreturn (Val_unit);
- }
-@@ -1016,12 +1000,11 @@ ocaml_libvirt_domain_attach_device (value domv, value strv)
- CAMLparam2 (domv, strv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *str = String_val (strv);
- int r;
-
- NONBLOCKING (r = virDomainAttachDevice (dom, str));
-- CHECK_ERROR (r == -1, conn, "virDomainAttachDevice");
-+ CHECK_ERROR (r == -1, "virDomainAttachDevice");
-
- CAMLreturn (Val_unit);
- }
-@@ -1036,12 +1019,11 @@ ocaml_libvirt_domain_detach_device (value domv, value strv)
- CAMLparam2 (domv, strv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *str = String_val (strv);
- int r;
-
- NONBLOCKING (r = virDomainDetachDevice (dom, str));
-- CHECK_ERROR (r == -1, conn, "virDomainDetachDevice");
-+ CHECK_ERROR (r == -1, "virDomainDetachDevice");
-
- CAMLreturn (Val_unit);
- }
-@@ -1056,11 +1038,10 @@ ocaml_libvirt_domain_get_autostart (value domv)
- CAMLparam1 (domv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r, b;
-
- NONBLOCKING (r = virDomainGetAutostart (dom, &b));
-- CHECK_ERROR (r == -1, conn, "virDomainGetAutostart");
-+ CHECK_ERROR (r == -1, "virDomainGetAutostart");
-
- CAMLreturn (b ? Val_true : Val_false);
- }
-@@ -1075,13 +1056,12 @@ ocaml_libvirt_domain_set_autostart (value domv, value bv)
- CAMLparam2 (domv, bv);
-
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r, b;
-
- b = bv == Val_true ? 1 : 0;
-
- NONBLOCKING (r = virDomainSetAutostart (dom, b));
-- CHECK_ERROR (r == -1, conn, "virDomainSetAutostart");
-+ CHECK_ERROR (r == -1, "virDomainSetAutostart");
-
- CAMLreturn (Val_unit);
- }
-@@ -1096,11 +1076,10 @@ ocaml_libvirt_network_free (value netv)
- CAMLparam1 (netv);
-
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- int r;
-
- NONBLOCKING (r = virNetworkFree (net));
-- CHECK_ERROR (r == -1, conn, "virNetworkFree");
-+ CHECK_ERROR (r == -1, "virNetworkFree");
-
- /* So that we don't double-free in the finalizer: */
- Network_val (netv) = NULL;
-@@ -1118,11 +1097,10 @@ ocaml_libvirt_network_destroy (value netv)
- CAMLparam1 (netv);
-
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- int r;
-
- NONBLOCKING (r = virNetworkDestroy (net));
-- CHECK_ERROR (r == -1, conn, "virNetworkDestroy");
-+ CHECK_ERROR (r == -1, "virNetworkDestroy");
-
- /* So that we don't double-free in the finalizer: */
- Network_val (netv) = NULL;
-@@ -1145,7 +1123,7 @@ ocaml_libvirt_network_lookup_by_name (value connv, value strv)
- virNetworkPtr r;
-
- NONBLOCKING (r = virNetworkLookupByName (conn, str));
-- CHECK_ERROR (!r, conn, "virNetworkLookupByName");
-+ CHECK_ERROR (!r, "virNetworkLookupByName");
-
- rv = Val_network (r, connv);
-
-@@ -1167,7 +1145,7 @@ ocaml_libvirt_network_lookup_by_uuid (value connv, value uuidv)
- virNetworkPtr r;
-
- NONBLOCKING (r = virNetworkLookupByUUID (conn, uuid));
-- CHECK_ERROR (!r, conn, "virNetworkLookupByUUID");
-+ CHECK_ERROR (!r, "virNetworkLookupByUUID");
-
- rv = Val_network (r, connv);
-
-@@ -1189,7 +1167,7 @@ ocaml_libvirt_network_lookup_by_uuid_string (value connv, value strv)
- virNetworkPtr r;
-
- NONBLOCKING (r = virNetworkLookupByUUIDString (conn, str));
-- CHECK_ERROR (!r, conn, "virNetworkLookupByUUIDString");
-+ CHECK_ERROR (!r, "virNetworkLookupByUUIDString");
-
- rv = Val_network (r, connv);
-
-@@ -1207,11 +1185,10 @@ ocaml_libvirt_network_get_name (value netv)
-
- CAMLlocal1 (rv);
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- const char *r;
-
- NONBLOCKING (r = virNetworkGetName (net));
-- CHECK_ERROR (!r, conn, "virNetworkGetName");
-+ CHECK_ERROR (!r, "virNetworkGetName");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -1228,11 +1205,10 @@ ocaml_libvirt_network_get_xml_desc (value netv)
-
- CAMLlocal1 (rv);
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- char *r;
-
- NONBLOCKING (r = virNetworkGetXMLDesc (net, 0));
-- CHECK_ERROR (!r, conn, "virNetworkGetXMLDesc");
-+ CHECK_ERROR (!r, "virNetworkGetXMLDesc");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -1250,11 +1226,10 @@ ocaml_libvirt_network_get_bridge_name (value netv)
-
- CAMLlocal1 (rv);
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- char *r;
-
- NONBLOCKING (r = virNetworkGetBridgeName (net));
-- CHECK_ERROR (!r, conn, "virNetworkGetBridgeName");
-+ CHECK_ERROR (!r, "virNetworkGetBridgeName");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -1272,12 +1247,11 @@ ocaml_libvirt_network_get_uuid (value netv)
-
- CAMLlocal1 (rv);
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- unsigned char uuid[VIR_UUID_BUFLEN];
- int r;
-
- NONBLOCKING (r = virNetworkGetUUID (net, uuid));
-- CHECK_ERROR (r == -1, conn, "virNetworkGetUUID");
-+ CHECK_ERROR (r == -1, "virNetworkGetUUID");
-
- /* UUIDs are byte arrays with a fixed length. */
- rv = caml_alloc_string (VIR_UUID_BUFLEN);
-@@ -1296,12 +1270,11 @@ ocaml_libvirt_network_get_uuid_string (value netv)
-
- CAMLlocal1 (rv);
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- char uuid[VIR_UUID_STRING_BUFLEN];
- int r;
-
- NONBLOCKING (r = virNetworkGetUUIDString (net, uuid));
-- CHECK_ERROR (r == -1, conn, "virNetworkGetUUIDString");
-+ CHECK_ERROR (r == -1, "virNetworkGetUUIDString");
-
- rv = caml_copy_string (uuid);
- CAMLreturn (rv);
-@@ -1317,11 +1290,10 @@ ocaml_libvirt_network_undefine (value netv)
- CAMLparam1 (netv);
-
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- int r;
-
- NONBLOCKING (r = virNetworkUndefine (net));
-- CHECK_ERROR (r == -1, conn, "virNetworkUndefine");
-+ CHECK_ERROR (r == -1, "virNetworkUndefine");
-
- CAMLreturn (Val_unit);
- }
-@@ -1341,7 +1313,7 @@ ocaml_libvirt_network_create_xml (value connv, value strv)
- virNetworkPtr r;
-
- NONBLOCKING (r = virNetworkCreateXML (conn, str));
-- CHECK_ERROR (!r, conn, "virNetworkCreateXML");
-+ CHECK_ERROR (!r, "virNetworkCreateXML");
-
- rv = Val_network (r, connv);
-
-@@ -1363,7 +1335,7 @@ ocaml_libvirt_network_define_xml (value connv, value strv)
- virNetworkPtr r;
-
- NONBLOCKING (r = virNetworkDefineXML (conn, str));
-- CHECK_ERROR (!r, conn, "virNetworkDefineXML");
-+ CHECK_ERROR (!r, "virNetworkDefineXML");
-
- rv = Val_network (r, connv);
-
-@@ -1380,11 +1352,10 @@ ocaml_libvirt_network_create (value netv)
- CAMLparam1 (netv);
-
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- int r;
-
- NONBLOCKING (r = virNetworkCreate (net));
-- CHECK_ERROR (r == -1, conn, "virNetworkCreate");
-+ CHECK_ERROR (r == -1, "virNetworkCreate");
-
- CAMLreturn (Val_unit);
- }
-@@ -1399,11 +1370,10 @@ ocaml_libvirt_network_get_autostart (value netv)
- CAMLparam1 (netv);
-
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- int r, b;
-
- NONBLOCKING (r = virNetworkGetAutostart (net, &b));
-- CHECK_ERROR (r == -1, conn, "virNetworkGetAutostart");
-+ CHECK_ERROR (r == -1, "virNetworkGetAutostart");
-
- CAMLreturn (b ? Val_true : Val_false);
- }
-@@ -1418,13 +1388,12 @@ ocaml_libvirt_network_set_autostart (value netv, value bv)
- CAMLparam2 (netv, bv);
-
- virNetworkPtr net = Network_val (netv);
-- virConnectPtr conn = Connect_netv (netv);
- int r, b;
-
- b = bv == Val_true ? 1 : 0;
-
- NONBLOCKING (r = virNetworkSetAutostart (net, b));
-- CHECK_ERROR (r == -1, conn, "virNetworkSetAutostart");
-+ CHECK_ERROR (r == -1, "virNetworkSetAutostart");
-
- CAMLreturn (Val_unit);
- }
-@@ -1439,11 +1408,10 @@ ocaml_libvirt_storage_pool_free (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r;
-
- NONBLOCKING (r = virStoragePoolFree (pool));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolFree");
-+ CHECK_ERROR (r == -1, "virStoragePoolFree");
-
- /* So that we don't double-free in the finalizer: */
- Pool_val (poolv) = NULL;
-@@ -1461,11 +1429,10 @@ ocaml_libvirt_storage_pool_destroy (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r;
-
- NONBLOCKING (r = virStoragePoolDestroy (pool));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolDestroy");
-+ CHECK_ERROR (r == -1, "virStoragePoolDestroy");
-
- /* So that we don't double-free in the finalizer: */
- Pool_val (poolv) = NULL;
-@@ -1488,7 +1455,7 @@ ocaml_libvirt_storage_pool_lookup_by_name (value connv, value strv)
- virStoragePoolPtr r;
-
- NONBLOCKING (r = virStoragePoolLookupByName (conn, str));
-- CHECK_ERROR (!r, conn, "virStoragePoolLookupByName");
-+ CHECK_ERROR (!r, "virStoragePoolLookupByName");
-
- rv = Val_pool (r, connv);
-
-@@ -1510,7 +1477,7 @@ ocaml_libvirt_storage_pool_lookup_by_uuid (value connv, value uuidv)
- virStoragePoolPtr r;
-
- NONBLOCKING (r = virStoragePoolLookupByUUID (conn, uuid));
-- CHECK_ERROR (!r, conn, "virStoragePoolLookupByUUID");
-+ CHECK_ERROR (!r, "virStoragePoolLookupByUUID");
-
- rv = Val_pool (r, connv);
-
-@@ -1532,7 +1499,7 @@ ocaml_libvirt_storage_pool_lookup_by_uuid_string (value connv, value strv)
- virStoragePoolPtr r;
-
- NONBLOCKING (r = virStoragePoolLookupByUUIDString (conn, str));
-- CHECK_ERROR (!r, conn, "virStoragePoolLookupByUUIDString");
-+ CHECK_ERROR (!r, "virStoragePoolLookupByUUIDString");
-
- rv = Val_pool (r, connv);
-
-@@ -1550,11 +1517,10 @@ ocaml_libvirt_storage_pool_get_name (value poolv)
-
- CAMLlocal1 (rv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- const char *r;
-
- NONBLOCKING (r = virStoragePoolGetName (pool));
-- CHECK_ERROR (!r, conn, "virStoragePoolGetName");
-+ CHECK_ERROR (!r, "virStoragePoolGetName");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -1571,11 +1537,10 @@ ocaml_libvirt_storage_pool_get_xml_desc (value poolv)
-
- CAMLlocal1 (rv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- char *r;
-
- NONBLOCKING (r = virStoragePoolGetXMLDesc (pool, 0));
-- CHECK_ERROR (!r, conn, "virStoragePoolGetXMLDesc");
-+ CHECK_ERROR (!r, "virStoragePoolGetXMLDesc");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -1593,12 +1558,11 @@ ocaml_libvirt_storage_pool_get_uuid (value poolv)
-
- CAMLlocal1 (rv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- unsigned char uuid[VIR_UUID_BUFLEN];
- int r;
-
- NONBLOCKING (r = virStoragePoolGetUUID (pool, uuid));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolGetUUID");
-+ CHECK_ERROR (r == -1, "virStoragePoolGetUUID");
-
- /* UUIDs are byte arrays with a fixed length. */
- rv = caml_alloc_string (VIR_UUID_BUFLEN);
-@@ -1617,12 +1581,11 @@ ocaml_libvirt_storage_pool_get_uuid_string (value poolv)
-
- CAMLlocal1 (rv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- char uuid[VIR_UUID_STRING_BUFLEN];
- int r;
-
- NONBLOCKING (r = virStoragePoolGetUUIDString (pool, uuid));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolGetUUIDString");
-+ CHECK_ERROR (r == -1, "virStoragePoolGetUUIDString");
-
- rv = caml_copy_string (uuid);
- CAMLreturn (rv);
-@@ -1643,7 +1606,7 @@ ocaml_libvirt_storage_pool_create_xml (value connv, value strv)
- virStoragePoolPtr r;
-
- NONBLOCKING (r = virStoragePoolCreateXML (conn, str, 0));
-- CHECK_ERROR (!r, conn, "virStoragePoolCreateXML");
-+ CHECK_ERROR (!r, "virStoragePoolCreateXML");
-
- rv = Val_pool (r, connv);
-
-@@ -1665,7 +1628,7 @@ ocaml_libvirt_storage_pool_define_xml (value connv, value strv)
- virStoragePoolPtr r;
-
- NONBLOCKING (r = virStoragePoolDefineXML (conn, str, 0));
-- CHECK_ERROR (!r, conn, "virStoragePoolDefineXML");
-+ CHECK_ERROR (!r, "virStoragePoolDefineXML");
-
- rv = Val_pool (r, connv);
-
-@@ -1682,12 +1645,11 @@ ocaml_libvirt_storage_pool_build (value poolv, value iv)
- CAMLparam2 (poolv, iv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- unsigned int i = Int_val (iv);
- int r;
-
- NONBLOCKING (r = virStoragePoolBuild (pool, i));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolBuild");
-+ CHECK_ERROR (r == -1, "virStoragePoolBuild");
-
- CAMLreturn (Val_unit);
- }
-@@ -1702,11 +1664,10 @@ ocaml_libvirt_storage_pool_undefine (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r;
-
- NONBLOCKING (r = virStoragePoolUndefine (pool));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolUndefine");
-+ CHECK_ERROR (r == -1, "virStoragePoolUndefine");
-
- CAMLreturn (Val_unit);
- }
-@@ -1721,11 +1682,10 @@ ocaml_libvirt_storage_pool_create (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r;
-
- NONBLOCKING (r = virStoragePoolCreate (pool, 0));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolCreate");
-+ CHECK_ERROR (r == -1, "virStoragePoolCreate");
-
- CAMLreturn (Val_unit);
- }
-@@ -1740,12 +1700,11 @@ ocaml_libvirt_storage_pool_delete (value poolv, value iv)
- CAMLparam2 (poolv, iv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- unsigned int i = Int_val (iv);
- int r;
-
- NONBLOCKING (r = virStoragePoolDelete (pool, i));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolDelete");
-+ CHECK_ERROR (r == -1, "virStoragePoolDelete");
-
- CAMLreturn (Val_unit);
- }
-@@ -1760,11 +1719,10 @@ ocaml_libvirt_storage_pool_refresh (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r;
-
- NONBLOCKING (r = virStoragePoolRefresh (pool, 0));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolRefresh");
-+ CHECK_ERROR (r == -1, "virStoragePoolRefresh");
-
- CAMLreturn (Val_unit);
- }
-@@ -1779,11 +1737,10 @@ ocaml_libvirt_storage_pool_get_autostart (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r, b;
-
- NONBLOCKING (r = virStoragePoolGetAutostart (pool, &b));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolGetAutostart");
-+ CHECK_ERROR (r == -1, "virStoragePoolGetAutostart");
-
- CAMLreturn (b ? Val_true : Val_false);
- }
-@@ -1798,13 +1755,12 @@ ocaml_libvirt_storage_pool_set_autostart (value poolv, value bv)
- CAMLparam2 (poolv, bv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r, b;
-
- b = bv == Val_true ? 1 : 0;
-
- NONBLOCKING (r = virStoragePoolSetAutostart (pool, b));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolSetAutostart");
-+ CHECK_ERROR (r == -1, "virStoragePoolSetAutostart");
-
- CAMLreturn (Val_unit);
- }
-@@ -1819,11 +1775,10 @@ ocaml_libvirt_storage_pool_num_of_volumes (value poolv)
- CAMLparam1 (poolv);
-
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int r;
-
- NONBLOCKING (r = virStoragePoolNumOfVolumes (pool));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolNumOfVolumes");
-+ CHECK_ERROR (r == -1, "virStoragePoolNumOfVolumes");
-
- CAMLreturn (Val_int (r));
- }
-@@ -1839,7 +1794,6 @@ ocaml_libvirt_storage_pool_list_volumes (value poolv, value iv)
-
- CAMLlocal2 (rv, strv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- int i = Int_val (iv);
- char *names[i];
- int r;
-@@ -1855,7 +1809,7 @@ ocaml_libvirt_storage_pool_list_volumes (value poolv, value iv)
- }
-
- NONBLOCKING (r = virStoragePoolListVolumes (pool, names, i));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolListVolumes");
-+ CHECK_ERROR (r == -1, "virStoragePoolListVolumes");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -1877,11 +1831,10 @@ ocaml_libvirt_storage_vol_free (value volv)
- CAMLparam1 (volv);
-
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- int r;
-
- NONBLOCKING (r = virStorageVolFree (vol));
-- CHECK_ERROR (r == -1, conn, "virStorageVolFree");
-+ CHECK_ERROR (r == -1, "virStorageVolFree");
-
- /* So that we don't double-free in the finalizer: */
- Volume_val (volv) = NULL;
-@@ -1899,12 +1852,11 @@ ocaml_libvirt_storage_vol_delete (value volv, value iv)
- CAMLparam2 (volv, iv);
-
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- unsigned int i = Int_val (iv);
- int r;
-
- NONBLOCKING (r = virStorageVolDelete (vol, i));
-- CHECK_ERROR (r == -1, conn, "virStorageVolDelete");
-+ CHECK_ERROR (r == -1, "virStorageVolDelete");
-
- CAMLreturn (Val_unit);
- }
-@@ -1920,12 +1872,11 @@ ocaml_libvirt_storage_vol_lookup_by_name (value poolv, value strv)
-
- CAMLlocal2 (rv, connv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- char *str = String_val (strv);
- virStorageVolPtr r;
-
- NONBLOCKING (r = virStorageVolLookupByName (pool, str));
-- CHECK_ERROR (!r, conn, "virStorageVolLookupByName");
-+ CHECK_ERROR (!r, "virStorageVolLookupByName");
-
- connv = Field (poolv, 1);
- rv = Val_volume (r, connv);
-@@ -1948,7 +1899,7 @@ ocaml_libvirt_storage_vol_lookup_by_key (value connv, value strv)
- virStorageVolPtr r;
-
- NONBLOCKING (r = virStorageVolLookupByKey (conn, str));
-- CHECK_ERROR (!r, conn, "virStorageVolLookupByKey");
-+ CHECK_ERROR (!r, "virStorageVolLookupByKey");
-
- rv = Val_volume (r, connv);
-
-@@ -1970,7 +1921,7 @@ ocaml_libvirt_storage_vol_lookup_by_path (value connv, value strv)
- virStorageVolPtr r;
-
- NONBLOCKING (r = virStorageVolLookupByPath (conn, str));
-- CHECK_ERROR (!r, conn, "virStorageVolLookupByPath");
-+ CHECK_ERROR (!r, "virStorageVolLookupByPath");
-
- rv = Val_volume (r, connv);
-
-@@ -1988,12 +1939,11 @@ ocaml_libvirt_storage_vol_create_xml (value poolv, value strv)
-
- CAMLlocal2 (rv, connv);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- char *str = String_val (strv);
- virStorageVolPtr r;
-
- NONBLOCKING (r = virStorageVolCreateXML (pool, str, 0));
-- CHECK_ERROR (!r, conn, "virStorageVolCreateXML");
-+ CHECK_ERROR (!r, "virStorageVolCreateXML");
-
- connv = Field (poolv, 1);
- rv = Val_volume (r, connv);
-@@ -2012,11 +1962,10 @@ ocaml_libvirt_storage_vol_get_xml_desc (value volv)
-
- CAMLlocal1 (rv);
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- char *r;
-
- NONBLOCKING (r = virStorageVolGetXMLDesc (vol, 0));
-- CHECK_ERROR (!r, conn, "virStorageVolGetXMLDesc");
-+ CHECK_ERROR (!r, "virStorageVolGetXMLDesc");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -2034,11 +1983,10 @@ ocaml_libvirt_storage_vol_get_path (value volv)
-
- CAMLlocal1 (rv);
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- char *r;
-
- NONBLOCKING (r = virStorageVolGetPath (vol));
-- CHECK_ERROR (!r, conn, "virStorageVolGetPath");
-+ CHECK_ERROR (!r, "virStorageVolGetPath");
-
- rv = caml_copy_string (r);
- free (r);
-@@ -2056,11 +2004,10 @@ ocaml_libvirt_storage_vol_get_key (value volv)
-
- CAMLlocal1 (rv);
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- const char *r;
-
- NONBLOCKING (r = virStorageVolGetKey (vol));
-- CHECK_ERROR (!r, conn, "virStorageVolGetKey");
-+ CHECK_ERROR (!r, "virStorageVolGetKey");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -2077,11 +2024,10 @@ ocaml_libvirt_storage_vol_get_name (value volv)
-
- CAMLlocal1 (rv);
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- const char *r;
-
- NONBLOCKING (r = virStorageVolGetName (vol));
-- CHECK_ERROR (!r, conn, "virStorageVolGetName");
-+ CHECK_ERROR (!r, "virStorageVolGetName");
-
- rv = caml_copy_string (r);
- CAMLreturn (rv);
-@@ -2098,11 +2044,10 @@ ocaml_libvirt_storage_pool_lookup_by_volume (value volv)
-
- CAMLlocal2 (rv, connv);
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- virStoragePoolPtr r;
-
- NONBLOCKING (r = virStoragePoolLookupByVolume (vol));
-- CHECK_ERROR (!r, conn, "virStoragePoolLookupByVolume");
-+ CHECK_ERROR (!r, "virStoragePoolLookupByVolume");
-
- connv = Field (volv, 1);
- rv = Val_pool (r, connv);
-diff --git a/libvirt/libvirt_c_epilogue.c b/libvirt/libvirt_c_epilogue.c
-index 4649724..4972e50 100644
---- a/libvirt/libvirt_c_epilogue.c
-+++ b/libvirt/libvirt_c_epilogue.c
-@@ -57,14 +57,14 @@ option_default (value option, value deflt)
- #endif
-
- static void
--_raise_virterror (virConnectPtr conn, const char *fn)
-+_raise_virterror (const char *fn)
- {
- CAMLparam0 ();
- CAMLlocal1 (rv);
- virErrorPtr errp;
- struct _virError err;
-
-- errp = conn ? virConnGetLastError (conn) : virGetLastError ();
-+ errp = virGetLastError ();
-
- if (!errp) {
- /* Fake a _virError structure. */
-diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
-index 06b3852..32e5a4b 100644
---- a/libvirt/libvirt_c_oneoffs.c
-+++ b/libvirt/libvirt_c_oneoffs.c
-@@ -32,7 +32,7 @@ ocaml_libvirt_get_version (value driverv, value unit)
-
- typeVer_ptr = driver ? &typeVer : NULL;
- NONBLOCKING (r = virGetVersion (&libVer, driver, typeVer_ptr));
-- CHECK_ERROR (r == -1, NULL, "virGetVersion");
-+ CHECK_ERROR (r == -1, "virGetVersion");
-
- rv = caml_alloc_tuple (2);
- Store_field (rv, 0, Val_int (libVer));
-@@ -53,7 +53,7 @@ ocaml_libvirt_connect_open (value namev, value unit)
- virConnectPtr conn;
-
- NONBLOCKING (conn = virConnectOpen (name));
-- CHECK_ERROR (!conn, NULL, "virConnectOpen");
-+ CHECK_ERROR (!conn, "virConnectOpen");
-
- rv = Val_connect (conn);
-
-@@ -69,7 +69,7 @@ ocaml_libvirt_connect_open_readonly (value namev, value unit)
- virConnectPtr conn;
-
- NONBLOCKING (conn = virConnectOpenReadOnly (name));
-- CHECK_ERROR (!conn, NULL, "virConnectOpen");
-+ CHECK_ERROR (!conn, "virConnectOpen");
-
- rv = Val_connect (conn);
-
-@@ -85,7 +85,7 @@ ocaml_libvirt_connect_get_version (value connv)
- int r;
-
- NONBLOCKING (r = virConnectGetVersion (conn, &hvVer));
-- CHECK_ERROR (r == -1, conn, "virConnectGetVersion");
-+ CHECK_ERROR (r == -1, "virConnectGetVersion");
-
- CAMLreturn (Val_int (hvVer));
- }
-@@ -99,7 +99,7 @@ ocaml_libvirt_connect_get_max_vcpus (value connv, value typev)
- int r;
-
- NONBLOCKING (r = virConnectGetMaxVcpus (conn, type));
-- CHECK_ERROR (r == -1, conn, "virConnectGetMaxVcpus");
-+ CHECK_ERROR (r == -1, "virConnectGetMaxVcpus");
-
- CAMLreturn (Val_int (r));
- }
-@@ -114,7 +114,7 @@ ocaml_libvirt_connect_get_node_info (value connv)
- int r;
-
- NONBLOCKING (r = virNodeGetInfo (conn, &info));
-- CHECK_ERROR (r == -1, conn, "virNodeGetInfo");
-+ CHECK_ERROR (r == -1, "virNodeGetInfo");
-
- rv = caml_alloc (8, 0);
- v = caml_copy_string (info.model); Store_field (rv, 0, v);
-@@ -138,7 +138,7 @@ ocaml_libvirt_connect_node_get_free_memory (value connv)
- unsigned long long r;
-
- NONBLOCKING (r = virNodeGetFreeMemory (conn));
-- CHECK_ERROR (r == 0, conn, "virNodeGetFreeMemory");
-+ CHECK_ERROR (r == 0, "virNodeGetFreeMemory");
-
- rv = caml_copy_int64 ((int64_t) r);
- CAMLreturn (rv);
-@@ -157,7 +157,7 @@ ocaml_libvirt_connect_node_get_cells_free_memory (value connv,
- unsigned long long freemems[max];
-
- NONBLOCKING (r = virNodeGetCellsFreeMemory (conn, freemems, start, max));
-- CHECK_ERROR (r == -1, conn, "virNodeGetCellsFreeMemory");
-+ CHECK_ERROR (r == -1, "virNodeGetCellsFreeMemory");
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-@@ -179,7 +179,7 @@ ocaml_libvirt_connect_set_keep_alive(value connv,
- int r;
-
- NONBLOCKING(r = virConnectSetKeepAlive(conn, interval, count));
-- CHECK_ERROR (r == -1, conn, "virConnectSetKeepAlive");
-+ CHECK_ERROR (r == -1, "virConnectSetKeepAlive");
-
- CAMLreturn(Val_unit);
- }
-@@ -190,7 +190,6 @@ ocaml_libvirt_domain_get_id (value domv)
- {
- CAMLparam1 (domv);
- virDomainPtr dom = Domain_val (domv);
-- /*virConnectPtr conn = Connect_domv (domv);*/
- unsigned int r;
-
- NONBLOCKING (r = virDomainGetID (dom));
-@@ -208,11 +207,10 @@ ocaml_libvirt_domain_get_max_memory (value domv)
- CAMLparam1 (domv);
- CAMLlocal1 (rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- unsigned long r;
-
- NONBLOCKING (r = virDomainGetMaxMemory (dom));
-- CHECK_ERROR (r == 0 /* [sic] */, conn, "virDomainGetMaxMemory");
-+ CHECK_ERROR (r == 0 /* [sic] */, "virDomainGetMaxMemory");
-
- rv = caml_copy_int64 (r);
- CAMLreturn (rv);
-@@ -223,12 +221,11 @@ ocaml_libvirt_domain_set_max_memory (value domv, value memv)
- {
- CAMLparam2 (domv, memv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- unsigned long mem = Int64_val (memv);
- int r;
-
- NONBLOCKING (r = virDomainSetMaxMemory (dom, mem));
-- CHECK_ERROR (r == -1, conn, "virDomainSetMaxMemory");
-+ CHECK_ERROR (r == -1, "virDomainSetMaxMemory");
-
- CAMLreturn (Val_unit);
- }
-@@ -238,12 +235,11 @@ ocaml_libvirt_domain_set_memory (value domv, value memv)
- {
- CAMLparam2 (domv, memv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- unsigned long mem = Int64_val (memv);
- int r;
-
- NONBLOCKING (r = virDomainSetMemory (dom, mem));
-- CHECK_ERROR (r == -1, conn, "virDomainSetMemory");
-+ CHECK_ERROR (r == -1, "virDomainSetMemory");
-
- CAMLreturn (Val_unit);
- }
-@@ -254,12 +250,11 @@ ocaml_libvirt_domain_get_info (value domv)
- CAMLparam1 (domv);
- CAMLlocal2 (rv, v);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- virDomainInfo info;
- int r;
-
- NONBLOCKING (r = virDomainGetInfo (dom, &info));
-- CHECK_ERROR (r == -1, conn, "virDomainGetInfo");
-+ CHECK_ERROR (r == -1, "virDomainGetInfo");
-
- rv = caml_alloc (5, 0);
- Store_field (rv, 0, Val_int (info.state)); // These flags are compatible.
-@@ -277,12 +272,11 @@ ocaml_libvirt_domain_get_scheduler_type (value domv)
- CAMLparam1 (domv);
- CAMLlocal2 (rv, strv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *r;
- int nparams;
-
- NONBLOCKING (r = virDomainGetSchedulerType (dom, &nparams));
-- CHECK_ERROR (!r, conn, "virDomainGetSchedulerType");
-+ CHECK_ERROR (!r, "virDomainGetSchedulerType");
-
- rv = caml_alloc_tuple (2);
- strv = caml_copy_string (r); Store_field (rv, 0, strv);
-@@ -297,13 +291,12 @@ ocaml_libvirt_domain_get_scheduler_parameters (value domv, value nparamsv)
- CAMLparam2 (domv, nparamsv);
- CAMLlocal4 (rv, v, v2, v3);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int nparams = Int_val (nparamsv);
- virSchedParameter params[nparams];
- int r, i;
-
- NONBLOCKING (r = virDomainGetSchedulerParameters (dom, params, &nparams));
-- CHECK_ERROR (r == -1, conn, "virDomainGetSchedulerParameters");
-+ CHECK_ERROR (r == -1, "virDomainGetSchedulerParameters");
-
- rv = caml_alloc (nparams, 0);
- for (i = 0; i < nparams; ++i) {
-@@ -348,7 +341,6 @@ ocaml_libvirt_domain_set_scheduler_parameters (value domv, value paramsv)
- CAMLparam2 (domv, paramsv);
- CAMLlocal1 (v);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int nparams = Wosize_val (paramsv);
- virSchedParameter params[nparams];
- int r, i;
-@@ -391,7 +383,7 @@ ocaml_libvirt_domain_set_scheduler_parameters (value domv, value paramsv)
- }
-
- NONBLOCKING (r = virDomainSetSchedulerParameters (dom, params, nparams));
-- CHECK_ERROR (r == -1, conn, "virDomainSetSchedulerParameters");
-+ CHECK_ERROR (r == -1, "virDomainSetSchedulerParameters");
-
- CAMLreturn (Val_unit);
- }
-@@ -401,11 +393,10 @@ ocaml_libvirt_domain_set_vcpus (value domv, value nvcpusv)
- {
- CAMLparam2 (domv, nvcpusv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int r, nvcpus = Int_val (nvcpusv);
-
- NONBLOCKING (r = virDomainSetVcpus (dom, nvcpus));
-- CHECK_ERROR (r == -1, conn, "virDomainSetVcpus");
-+ CHECK_ERROR (r == -1, "virDomainSetVcpus");
-
- CAMLreturn (Val_unit);
- }
-@@ -415,14 +406,13 @@ ocaml_libvirt_domain_pin_vcpu (value domv, value vcpuv, value cpumapv)
- {
- CAMLparam3 (domv, vcpuv, cpumapv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int maplen = caml_string_length (cpumapv);
- unsigned char *cpumap = (unsigned char *) String_val (cpumapv);
- int vcpu = Int_val (vcpuv);
- int r;
-
- NONBLOCKING (r = virDomainPinVcpu (dom, vcpu, cpumap, maplen));
-- CHECK_ERROR (r == -1, conn, "virDomainPinVcpu");
-+ CHECK_ERROR (r == -1, "virDomainPinVcpu");
-
- CAMLreturn (Val_unit);
- }
-@@ -433,7 +423,6 @@ ocaml_libvirt_domain_get_vcpus (value domv, value maxinfov, value maplenv)
- CAMLparam3 (domv, maxinfov, maplenv);
- CAMLlocal5 (rv, infov, strv, v, v2);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int maxinfo = Int_val (maxinfov);
- int maplen = Int_val (maplenv);
- virVcpuInfo info[maxinfo];
-@@ -444,7 +433,7 @@ ocaml_libvirt_domain_get_vcpus (value domv, value maxinfov, value maplenv)
- memset (cpumaps, 0, maxinfo * maplen);
-
- NONBLOCKING (r = virDomainGetVcpus (dom, info, maxinfo, cpumaps, maplen));
-- CHECK_ERROR (r == -1, conn, "virDomainPinVcpu");
-+ CHECK_ERROR (r == -1, "virDomainPinVcpu");
-
- /* Copy the virVcpuInfo structures. */
- infov = caml_alloc (maxinfo, 0);
-@@ -476,18 +465,17 @@ ocaml_libvirt_domain_get_cpu_stats (value domv)
- CAMLlocal5 (cpustats, param_head, param_node, typed_param, typed_param_value);
- CAMLlocal1 (v);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- virTypedParameterPtr params;
- int r, cpu, ncpus, nparams, i, j, pos;
- int nr_pcpus;
-
- /* get number of pcpus */
- NONBLOCKING (nr_pcpus = virDomainGetCPUStats(dom, NULL, 0, 0, 0, 0));
-- CHECK_ERROR (nr_pcpus < 0, conn, "virDomainGetCPUStats");
-+ CHECK_ERROR (nr_pcpus < 0, "virDomainGetCPUStats");
-
- /* get percpu information */
- NONBLOCKING (nparams = virDomainGetCPUStats(dom, NULL, 0, 0, 1, 0));
-- CHECK_ERROR (nparams < 0, conn, "virDomainGetCPUStats");
-+ CHECK_ERROR (nparams < 0, "virDomainGetCPUStats");
-
- if ((params = malloc(sizeof(*params) * nparams * 128)) == NULL)
- caml_failwith ("virDomainGetCPUStats: malloc");
-@@ -498,7 +486,7 @@ ocaml_libvirt_domain_get_cpu_stats (value domv)
- ncpus = nr_pcpus - cpu > 128 ? 128 : nr_pcpus - cpu;
-
- NONBLOCKING (r = virDomainGetCPUStats(dom, params, nparams, cpu, ncpus, 0));
-- CHECK_ERROR (r < 0, conn, "virDomainGetCPUStats");
-+ CHECK_ERROR (r < 0, "virDomainGetCPUStats");
-
- for (i = 0; i < ncpus; i++) {
- /* list of typed_param: single linked list of param_nodes */
-@@ -579,7 +567,6 @@ ocaml_libvirt_domain_migrate_native (value domv, value dconnv, value flagsv, val
- CAMLxparam2 (optbandwidthv, unitv);
- CAMLlocal2 (flagv, rv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- virConnectPtr dconn = Connect_val (dconnv);
- int flags = 0;
- const char *dname = Optstring_val (optdnamev);
-@@ -601,7 +588,7 @@ ocaml_libvirt_domain_migrate_native (value domv, value dconnv, value flagsv, val
- bandwidth = Int_val (Field (optbandwidthv, 0));
-
- NONBLOCKING (r = virDomainMigrate (dom, dconn, flags, dname, uri, bandwidth));
-- CHECK_ERROR (!r, conn, "virDomainMigrate");
-+ CHECK_ERROR (!r, "virDomainMigrate");
-
- rv = Val_domain (r, dconnv);
-
-@@ -622,13 +609,12 @@ ocaml_libvirt_domain_block_stats (value domv, value pathv)
- CAMLparam2 (domv, pathv);
- CAMLlocal2 (rv,v);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *path = String_val (pathv);
- struct _virDomainBlockStats stats;
- int r;
-
- NONBLOCKING (r = virDomainBlockStats (dom, path, &stats, sizeof stats));
-- CHECK_ERROR (r == -1, conn, "virDomainBlockStats");
-+ CHECK_ERROR (r == -1, "virDomainBlockStats");
-
- rv = caml_alloc (5, 0);
- v = caml_copy_int64 (stats.rd_req); Store_field (rv, 0, v);
-@@ -646,13 +632,12 @@ ocaml_libvirt_domain_interface_stats (value domv, value pathv)
- CAMLparam2 (domv, pathv);
- CAMLlocal2 (rv,v);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- char *path = String_val (pathv);
- struct _virDomainInterfaceStats stats;
- int r;
-
- NONBLOCKING (r = virDomainInterfaceStats (dom, path, &stats, sizeof stats));
-- CHECK_ERROR (r == -1, conn, "virDomainInterfaceStats");
-+ CHECK_ERROR (r == -1, "virDomainInterfaceStats");
-
- rv = caml_alloc (8, 0);
- v = caml_copy_int64 (stats.rx_bytes); Store_field (rv, 0, v);
-@@ -673,7 +658,6 @@ ocaml_libvirt_domain_block_peek_native (value domv, value pathv, value offsetv,
- CAMLparam5 (domv, pathv, offsetv, sizev, bufferv);
- CAMLxparam1 (boffv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- const char *path = String_val (pathv);
- unsigned long long offset = Int64_val (offsetv);
- size_t size = Int_val (sizev);
-@@ -687,7 +671,7 @@ ocaml_libvirt_domain_block_peek_native (value domv, value pathv, value offsetv,
-
- /* NB. not NONBLOCKING because buffer might move (XXX) */
- r = virDomainBlockPeek (dom, path, offset, size, buffer+boff, 0);
-- CHECK_ERROR (r == -1, conn, "virDomainBlockPeek");
-+ CHECK_ERROR (r == -1, "virDomainBlockPeek");
-
- CAMLreturn (Val_unit);
- }
-@@ -706,7 +690,6 @@ ocaml_libvirt_domain_memory_peek_native (value domv, value flagsv, value offsetv
- CAMLxparam1 (boffv);
- CAMLlocal1 (flagv);
- virDomainPtr dom = Domain_val (domv);
-- virConnectPtr conn = Connect_domv (domv);
- int flags = 0;
- unsigned long long offset = Int64_val (offsetv);
- size_t size = Int_val (sizev);
-@@ -728,7 +711,7 @@ ocaml_libvirt_domain_memory_peek_native (value domv, value flagsv, value offsetv
-
- /* NB. not NONBLOCKING because buffer might move (XXX) */
- r = virDomainMemoryPeek (dom, offset, size, buffer+boff, flags);
-- CHECK_ERROR (r == -1, conn, "virDomainMemoryPeek");
-+ CHECK_ERROR (r == -1, "virDomainMemoryPeek");
-
- CAMLreturn (Val_unit);
- }
-@@ -1042,7 +1025,6 @@ CAMLprim value
- ocaml_libvirt_event_add_timeout (value connv, value ms, value callback_id)
- {
- CAMLparam3 (connv, ms, callback_id);
-- virConnectPtr conn = Connect_val (connv);
- void *opaque;
- virFreeCallback freecb = free;
- virEventTimeoutCallback cb = timeout_callback;
-@@ -1055,7 +1037,7 @@ ocaml_libvirt_event_add_timeout (value connv, value ms, value callback_id)
- caml_failwith ("virEventAddTimeout: malloc");
- *((long*)opaque) = Int64_val(callback_id);
- NONBLOCKING(r = virEventAddTimeout(Int_val(ms), cb, opaque, freecb));
-- CHECK_ERROR(r == -1, conn, "virEventAddTimeout");
-+ CHECK_ERROR(r == -1, "virEventAddTimeout");
-
- CAMLreturn(Val_int(r));
- }
-@@ -1064,11 +1046,10 @@ CAMLprim value
- ocaml_libvirt_event_remove_timeout (value connv, value timer_id)
- {
- CAMLparam2 (connv, timer_id);
-- virConnectPtr conn = Connect_val (connv);
- int r;
-
- NONBLOCKING(r = virEventRemoveTimeout(Int_val(timer_id)));
-- CHECK_ERROR(r == -1, conn, "virEventRemoveTimeout");
-+ CHECK_ERROR(r == -1, "virEventRemoveTimeout");
-
- CAMLreturn(Val_int(r));
- }
-@@ -1146,7 +1127,7 @@ ocaml_libvirt_connect_domain_event_register_any(value connv, value domv, value c
- caml_failwith ("virConnectDomainEventRegisterAny: malloc");
- *((long*)opaque) = Int64_val(callback_id);
- NONBLOCKING(r = virConnectDomainEventRegisterAny(conn, dom, eventID, cb, opaque, freecb));
-- CHECK_ERROR(r == -1, conn, "virConnectDomainEventRegisterAny");
-+ CHECK_ERROR(r == -1, "virConnectDomainEventRegisterAny");
-
- CAMLreturn(Val_int(r));
- }
-@@ -1157,12 +1138,11 @@ ocaml_libvirt_storage_pool_get_info (value poolv)
- CAMLparam1 (poolv);
- CAMLlocal2 (rv, v);
- virStoragePoolPtr pool = Pool_val (poolv);
-- virConnectPtr conn = Connect_polv (poolv);
- virStoragePoolInfo info;
- int r;
-
- NONBLOCKING (r = virStoragePoolGetInfo (pool, &info));
-- CHECK_ERROR (r == -1, conn, "virStoragePoolGetInfo");
-+ CHECK_ERROR (r == -1, "virStoragePoolGetInfo");
-
- rv = caml_alloc (4, 0);
- Store_field (rv, 0, Val_int (info.state));
-@@ -1179,12 +1159,11 @@ ocaml_libvirt_storage_vol_get_info (value volv)
- CAMLparam1 (volv);
- CAMLlocal2 (rv, v);
- virStorageVolPtr vol = Volume_val (volv);
-- virConnectPtr conn = Connect_volv (volv);
- virStorageVolInfo info;
- int r;
-
- NONBLOCKING (r = virStorageVolGetInfo (vol, &info));
-- CHECK_ERROR (r == -1, conn, "virStorageVolGetInfo");
-+ CHECK_ERROR (r == -1, "virStorageVolGetInfo");
-
- rv = caml_alloc (3, 0);
- Store_field (rv, 0, Val_int (info.type));
-@@ -1239,6 +1218,12 @@ ocaml_libvirt_virterror_reset_last_conn_error (value connv)
-
- /*----------------------------------------------------------------------*/
-
-+static void
-+ignore_errors (void *user_data, virErrorPtr error)
-+{
-+ /* do nothing */
-+}
-+
- /* Initialise the library. */
- CAMLprim value
- ocaml_libvirt_init (value unit)
-@@ -1247,8 +1232,9 @@ ocaml_libvirt_init (value unit)
- CAMLlocal1 (rv);
- int r;
-
-+ virSetErrorFunc (NULL, ignore_errors);
- r = virInitialize ();
-- CHECK_ERROR (r == -1, NULL, "virInitialize");
-+ CHECK_ERROR (r == -1, "virInitialize");
-
- CAMLreturn (Val_unit);
- }
-diff --git a/libvirt/libvirt_c_prologue.c b/libvirt/libvirt_c_prologue.c
-index 7d9c0f5..bf972e9 100644
---- a/libvirt/libvirt_c_prologue.c
-+++ b/libvirt/libvirt_c_prologue.c
-@@ -24,7 +24,7 @@ static char *Optstring_val (value strv);
- typedef value (*Val_ptr_t) (void *);
- static value Val_opt (void *ptr, Val_ptr_t Val_ptr);
- /*static value option_default (value option, value deflt);*/
--static void _raise_virterror (virConnectPtr conn, const char *fn) Noreturn;
-+static void _raise_virterror (const char *fn) Noreturn;
- static void not_supported (const char *fn) Noreturn;
- static value Val_virterror (virErrorPtr err);
-
-@@ -43,8 +43,8 @@ static value Val_virterror (virErrorPtr err);
- /* Check error condition from a libvirt function, and automatically raise
- * an exception if one is found.
- */
--#define CHECK_ERROR(cond, conn, fn) \
-- do { if (cond) _raise_virterror (conn, fn); } while (0)
-+#define CHECK_ERROR(cond, fn) \
-+ do { if (cond) _raise_virterror (fn); } while (0)
-
- /*----------------------------------------------------------------------*/
-
---
-2.3.1
-
diff --git a/testing/ocaml-libvirt/0001-Use-C99-standard-int64_t-instead-of-OCaml-defined-an.patch b/testing/ocaml-libvirt/0001-Use-C99-standard-int64_t-instead-of-OCaml-defined-an.patch
deleted file mode 100644
index c00a75a1039..00000000000
--- a/testing/ocaml-libvirt/0001-Use-C99-standard-int64_t-instead-of-OCaml-defined-an.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 21ac993da0a187821e812fe7b5b31a426121a546 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Sat, 30 Aug 2014 19:10:19 +0100
-Subject: [PATCH] Use C99 standard int64_t instead of OCaml defined (and soon
- to go) int64.
-
----
- libvirt/libvirt_c_oneoffs.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
-index 3bb572f..06b3852 100644
---- a/libvirt/libvirt_c_oneoffs.c
-+++ b/libvirt/libvirt_c_oneoffs.c
-@@ -140,7 +140,7 @@ ocaml_libvirt_connect_node_get_free_memory (value connv)
- NONBLOCKING (r = virNodeGetFreeMemory (conn));
- CHECK_ERROR (r == 0, conn, "virNodeGetFreeMemory");
-
-- rv = caml_copy_int64 ((int64) r);
-+ rv = caml_copy_int64 ((int64_t) r);
- CAMLreturn (rv);
- }
-
-@@ -161,7 +161,7 @@ ocaml_libvirt_connect_node_get_cells_free_memory (value connv,
-
- rv = caml_alloc (r, 0);
- for (i = 0; i < r; ++i) {
-- iv = caml_copy_int64 ((int64) freemems[i]);
-+ iv = caml_copy_int64 ((int64_t) freemems[i]);
- Store_field (rv, i, iv);
- }
-
---
-2.0.4
-
diff --git a/testing/ocaml-libvirt/0001-Use-g-warn-error.patch b/testing/ocaml-libvirt/0001-Use-g-warn-error.patch
deleted file mode 100644
index 7c6bf35a54a..00000000000
--- a/testing/ocaml-libvirt/0001-Use-g-warn-error.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 2ba6898b4dc121b00078e36d5416b3caadd5d05e Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Mon, 27 Mar 2017 14:12:50 +0100
-Subject: [PATCH 1/5] Use -g -warn-error.
-
-Use -g for ocamlopt. ocamlopt has supported generating DWARF
-information for quite a long time.
-
-Also use -warn-error with the same set of warnings as is used
-by libguestfs.
-
-Fix a warning in examples/get_cpu_stats.ml found by enabling
--warn-error.
----
- examples/Makefile.in | 4 ++--
- examples/get_cpu_stats.ml | 2 ++
- libvirt/Makefile.in | 6 +++---
- 3 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/examples/Makefile.in b/examples/Makefile.in
-index 041e382..46006a0 100644
---- a/examples/Makefile.in
-+++ b/examples/Makefile.in
-@@ -18,10 +18,10 @@
- OCAMLFIND = @OCAMLFIND@
-
- OCAMLCPACKAGES := -package unix -I ../libvirt
--OCAMLCFLAGS := -g
-+OCAMLCFLAGS := -g -warn-error CDEFLMPSUVYZX-3
- OCAMLCLIBS := -linkpkg
- OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
--OCAMLOPTFLAGS :=
-+OCAMLOPTFLAGS := -g -warn-error CDEFLMPSUVYZX-3
- OCAMLOPTLIBS := $(OCAMLCLIBS)
-
- export LIBRARY_PATH=../libvirt
-diff --git a/examples/get_cpu_stats.ml b/examples/get_cpu_stats.ml
-index d7a8d0c..814c85e 100644
---- a/examples/get_cpu_stats.ml
-+++ b/examples/get_cpu_stats.ml
-@@ -19,9 +19,11 @@ let () =
-
- let conn = C.connect_readonly () in
-
-+ (*
- let nr_pcpus =
- let info = C.get_node_info conn in
- C.maxcpus_of_node_info info in
-+ *)
-
- let stats =
- let dom = D.lookup_by_name conn domname in
-diff --git a/libvirt/Makefile.in b/libvirt/Makefile.in
-index f7c04bb..cf614fc 100644
---- a/libvirt/Makefile.in
-+++ b/libvirt/Makefile.in
-@@ -31,15 +31,15 @@ OCAMLMKLIB = @OCAMLMKLIB@
-
- ifneq ($(OCAMLFIND),)
- OCAMLCPACKAGES := -package unix
--OCAMLCFLAGS := -g
-+OCAMLCFLAGS := -g -warn-error CDEFLMPSUVYZX-3
- OCAMLCLIBS := -linkpkg
- else
- OCAMLCINCS :=
--OCAMLCFLAGS := -g
-+OCAMLCFLAGS := -g -warn-error CDEFLMPSUVYZX-3
- OCAMLCLIBS := unix.cma
- endif
-
--OCAMLOPTFLAGS :=
-+OCAMLOPTFLAGS := $(OCAMLCFLAGS)
- ifneq ($(OCAMLFIND),)
- OCAMLOPTPACKAGES := $(OCAMLCPACKAGES)
- OCAMLOPTLIBS := $(OCAMLCLIBS)
---
-2.9.3
-
diff --git a/testing/ocaml-libvirt/0002-Don-t-bother-checking-return-from-virInitialize.patch b/testing/ocaml-libvirt/0002-Don-t-bother-checking-return-from-virInitialize.patch
deleted file mode 100644
index bbf01a6a506..00000000000
--- a/testing/ocaml-libvirt/0002-Don-t-bother-checking-return-from-virInitialize.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 06b24089986523806d386b9e3cfa4fcf5eeb87e6 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Tue, 17 Mar 2015 12:53:29 +0000
-Subject: [PATCH 2/2] Don't bother checking return from virInitialize.
-
-The Perl bindings don't do this, and it seems that the call can never
-fail, or if it does we don't care.
----
- libvirt/libvirt_c_oneoffs.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
-index 32e5a4b..5d82194 100644
---- a/libvirt/libvirt_c_oneoffs.c
-+++ b/libvirt/libvirt_c_oneoffs.c
-@@ -1229,12 +1229,9 @@ CAMLprim value
- ocaml_libvirt_init (value unit)
- {
- CAMLparam1 (unit);
-- CAMLlocal1 (rv);
-- int r;
-
- virSetErrorFunc (NULL, ignore_errors);
-- r = virInitialize ();
-- CHECK_ERROR (r == -1, "virInitialize");
-+ virInitialize ();
-
- CAMLreturn (Val_unit);
- }
---
-2.3.1
-
diff --git a/testing/ocaml-libvirt/0002-Update-dependencies.patch b/testing/ocaml-libvirt/0002-Update-dependencies.patch
deleted file mode 100644
index 1ba95ea3a69..00000000000
--- a/testing/ocaml-libvirt/0002-Update-dependencies.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From ca9a3227f9937f9cdeb84126f1c74502c9a25047 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Mon, 27 Mar 2017 14:13:47 +0100
-Subject: [PATCH 2/5] Update dependencies.
-
----
- examples/.depend | 8 ++++----
- libvirt/.depend | 6 +++---
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/examples/.depend b/examples/.depend
-index b305b76..b5379d8 100644
---- a/examples/.depend
-+++ b/examples/.depend
-@@ -1,8 +1,8 @@
--node_info.cmo : ../libvirt/libvirt.cmi
--node_info.cmx : ../libvirt/libvirt.cmx
--get_cpu_stats.cmo : ../libvirt/libvirt.cmi
--get_cpu_stats.cmx : ../libvirt/libvirt.cmx
- domain_events.cmo : ../libvirt/libvirt.cmi
- domain_events.cmx : ../libvirt/libvirt.cmx
-+get_cpu_stats.cmo : ../libvirt/libvirt.cmi
-+get_cpu_stats.cmx : ../libvirt/libvirt.cmx
- list_domains.cmo : ../libvirt/libvirt.cmi
- list_domains.cmx : ../libvirt/libvirt.cmx
-+node_info.cmo : ../libvirt/libvirt.cmi
-+node_info.cmx : ../libvirt/libvirt.cmx
-diff --git a/libvirt/.depend b/libvirt/.depend
-index 7d32e13..ee1180c 100644
---- a/libvirt/.depend
-+++ b/libvirt/.depend
-@@ -1,6 +1,6 @@
--libvirt_version.cmi :
-+libvirt.cmo : libvirt.cmi
-+libvirt.cmx : libvirt.cmi
- libvirt.cmi :
- libvirt_version.cmo : libvirt_version.cmi
- libvirt_version.cmx : libvirt_version.cmi
--libvirt.cmo : libvirt.cmi
--libvirt.cmx : libvirt.cmi
-+libvirt_version.cmi :
---
-2.9.3
-
diff --git a/testing/ocaml-libvirt/0003-Add-a-binding-for-virConnectGetAllDomainStats-RHBZ-1.patch b/testing/ocaml-libvirt/0003-Add-a-binding-for-virConnectGetAllDomainStats-RHBZ-1.patch
deleted file mode 100644
index 0eb1b28eef5..00000000000
--- a/testing/ocaml-libvirt/0003-Add-a-binding-for-virConnectGetAllDomainStats-RHBZ-1.patch
+++ /dev/null
@@ -1,393 +0,0 @@
-From 380f1e05b244ae4750ca5101b5b5a182dcd0d1fd Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Tue, 28 Mar 2017 10:08:06 +0100
-Subject: [PATCH 3/5] Add a binding for virConnectGetAllDomainStats
- (RHBZ#1390171).
-
----
- .gitignore | 2 +
- Makefile.in | 1 +
- examples/.depend | 2 +
- examples/Makefile.in | 13 ++++-
- examples/get_all_domain_stats.ml | 65 +++++++++++++++++++++
- libvirt/libvirt.ml | 23 ++++++++
- libvirt/libvirt.mli | 28 +++++++++
- libvirt/libvirt_c_oneoffs.c | 119 ++++++++++++++++++++++++++++++++++++++-
- 8 files changed, 250 insertions(+), 3 deletions(-)
- create mode 100644 examples/get_all_domain_stats.ml
-
-diff --git a/.gitignore b/.gitignore
-index 71a245e..366eb29 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -1,3 +1,4 @@
-+.gdb_history
- META
- ocaml-libvirt-*.tar.gz
- ocaml-libvirt-*.exe
-@@ -27,6 +28,7 @@ core.*
- *~
- libvirt/libvirt_version.ml
- examples/domain_events
-+examples/get_all_domain_stats
- examples/get_cpu_stats
- examples/list_domains
- examples/node_info
-diff --git a/Makefile.in b/Makefile.in
-index 3b8b7ec..2605ddd 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -41,6 +41,7 @@ clean:
- rm -f examples/node_info
- rm -f examples/get_cpu_stats
- rm -f examples/domain_events
-+ rm -f examples/get_all_domain_stats
-
- distclean: clean
- rm -f config.h config.log config.status configure
-diff --git a/examples/.depend b/examples/.depend
-index b5379d8..11f2c7c 100644
---- a/examples/.depend
-+++ b/examples/.depend
-@@ -1,5 +1,7 @@
- domain_events.cmo : ../libvirt/libvirt.cmi
- domain_events.cmx : ../libvirt/libvirt.cmx
-+get_all_domain_stats.cmo : ../libvirt/libvirt.cmi
-+get_all_domain_stats.cmx : ../libvirt/libvirt.cmx
- get_cpu_stats.cmo : ../libvirt/libvirt.cmi
- get_cpu_stats.cmx : ../libvirt/libvirt.cmx
- list_domains.cmo : ../libvirt/libvirt.cmi
-diff --git a/examples/Makefile.in b/examples/Makefile.in
-index 46006a0..8530edc 100644
---- a/examples/Makefile.in
-+++ b/examples/Makefile.in
-@@ -27,7 +27,8 @@ OCAMLOPTLIBS := $(OCAMLCLIBS)
- export LIBRARY_PATH=../libvirt
- export LD_LIBRARY_PATH=../libvirt
-
--BYTE_TARGETS := list_domains node_info get_cpu_stats domain_events
-+BYTE_TARGETS := list_domains node_info get_cpu_stats \
-+ get_all_domain_stats domain_events
- OPT_TARGETS := $(BYTE_TARGETS:%=%.opt)
-
- all: $(BYTE_TARGETS)
-@@ -64,6 +65,16 @@ get_cpu_stats.opt: get_cpu_stats.cmx
- $(OCAMLOPTPACKAGES) $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) \
- ../libvirt/mllibvirt.cmxa -o $@ $<
-
-+get_all_domain_stats: get_all_domain_stats.cmo
-+ $(OCAMLFIND) ocamlc \
-+ $(OCAMLCPACKAGES) $(OCAMLCFLAGS) $(OCAMLCLIBS) \
-+ ../libvirt/mllibvirt.cma -o $@ $<
-+
-+get_all_domain_stats.opt: get_all_domain_stats.cmx
-+ $(OCAMLFIND) ocamlopt \
-+ $(OCAMLOPTPACKAGES) $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) \
-+ ../libvirt/mllibvirt.cmxa -o $@ $<
-+
- domain_events: domain_events.cmo
- $(OCAMLFIND) ocamlc \
- $(OCAMLCPACKAGES) $(OCAMLCFLAGS) $(OCAMLCLIBS) \
-diff --git a/examples/get_all_domain_stats.ml b/examples/get_all_domain_stats.ml
-new file mode 100644
-index 0000000..4375639
---- /dev/null
-+++ b/examples/get_all_domain_stats.ml
-@@ -0,0 +1,65 @@
-+(* Example of using Domain.get_all_domain_stats (virConnectGetAllDomainStats).
-+ * Usage: get_all_domain_stats
-+ * http://libvirt.org/
-+ *)
-+
-+open Printf
-+
-+module C = Libvirt.Connect
-+module D = Libvirt.Domain
-+
-+let print_stats stats =
-+ try
-+ Array.iter (
-+ fun { D.dom = dom; D.params = params } ->
-+ printf "domain %s:\n" (D.get_name dom);
-+ Array.iteri (
-+ fun i (field, value) ->
-+ printf "\t%-20s = " field;
-+ (match value with
-+ | D.TypedFieldInt32 i -> printf "%ld" i
-+ | D.TypedFieldUInt32 i -> printf "%ld" i
-+ | D.TypedFieldInt64 i -> printf "%Ld" i
-+ | D.TypedFieldUInt64 i -> printf "%Ld" i
-+ | D.TypedFieldFloat f -> printf "%g" f
-+ | D.TypedFieldBool b -> printf "%b" b
-+ | D.TypedFieldString s -> printf "%S" s);
-+ printf "\n";
-+ ) params;
-+ printf "\n"
-+ ) stats
-+ with
-+ Libvirt.Virterror err ->
-+ eprintf "error: %s\n" (Libvirt.Virterror.to_string err)
-+
-+let () =
-+ if Array.length Sys.argv <> 1 then (
-+ eprintf "error: get_all_domain_stats\n";
-+ exit 1
-+ );
-+
-+ let conn = C.connect_readonly () in
-+
-+ let what_stats = [D.StatsCpuTotal; D.StatsInterface; D.StatsBlock] in
-+ let flags = [D.GetAllDomainsStatsActive; D.GetAllDomainsStatsInactive] in
-+
-+ let quit = ref false in
-+
-+ while not !quit do
-+ let stats = D.get_all_domain_stats conn what_stats flags in
-+
-+ if stats <> [||] then print_stats stats
-+ else (
-+ printf "no guests found\n";
-+ quit := true
-+ );
-+ flush stdout;
-+
-+ (* Run the garbage collector which is a good way to check for
-+ * memory corruption errors and reference counting issues in
-+ * libvirt. You shouldn't do this in ordinary programs.
-+ *)
-+ Gc.compact ();
-+
-+ if not !quit then Unix.sleep 3
-+ done
-diff --git a/libvirt/libvirt.ml b/libvirt/libvirt.ml
-index 1be023d..ce1878a 100644
---- a/libvirt/libvirt.ml
-+++ b/libvirt/libvirt.ml
-@@ -392,6 +392,27 @@ struct
- tx_drop : int64;
- }
-
-+ type get_all_domain_stats_flag =
-+ | GetAllDomainsStatsActive
-+ | GetAllDomainsStatsInactive
-+ | GetAllDomainsStatsOther
-+ | GetAllDomainsStatsPaused
-+ | GetAllDomainsStatsPersistent
-+ | GetAllDomainsStatsRunning
-+ | GetAllDomainsStatsShutoff
-+ | GetAllDomainsStatsTransient
-+ | GetAllDomainsStatsBacking
-+ | GetAllDomainsStatsEnforceStats
-+
-+ type stats_type =
-+ | StatsState | StatsCpuTotal | StatsBalloon | StatsVcpu
-+ | StatsInterface | StatsBlock | StatsPerf
-+
-+ type 'a domain_stats_record = {
-+ dom : 'a t;
-+ params : typed_param array;
-+ }
-+
- (* The maximum size for Domain.memory_peek and Domain.block_peek
- * supported by libvirt. This may change with different versions
- * of libvirt in the future, hence it's a function.
-@@ -446,6 +467,8 @@ struct
- external block_peek : [>`W] t -> string -> int64 -> int -> string -> int -> unit = "ocaml_libvirt_domain_block_peek_bytecode" "ocaml_libvirt_domain_block_peek_native"
- external memory_peek : [>`W] t -> memory_flag list -> int64 -> int -> string -> int -> unit = "ocaml_libvirt_domain_memory_peek_bytecode" "ocaml_libvirt_domain_memory_peek_native"
-
-+ external get_all_domain_stats : 'a Connect.t -> stats_type list -> get_all_domain_stats_flag list -> 'a domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
-+
- external const : [>`R] t -> ro t = "%identity"
-
- let get_domains conn flags =
-diff --git a/libvirt/libvirt.mli b/libvirt/libvirt.mli
-index 8cfcae2..d1b5992 100644
---- a/libvirt/libvirt.mli
-+++ b/libvirt/libvirt.mli
-@@ -478,6 +478,27 @@ sig
- tx_drop : int64;
- }
-
-+ type get_all_domain_stats_flag =
-+ | GetAllDomainsStatsActive
-+ | GetAllDomainsStatsInactive
-+ | GetAllDomainsStatsOther
-+ | GetAllDomainsStatsPaused
-+ | GetAllDomainsStatsPersistent
-+ | GetAllDomainsStatsRunning
-+ | GetAllDomainsStatsShutoff
-+ | GetAllDomainsStatsTransient
-+ | GetAllDomainsStatsBacking
-+ | GetAllDomainsStatsEnforceStats
-+
-+ type stats_type =
-+ | StatsState | StatsCpuTotal | StatsBalloon | StatsVcpu
-+ | StatsInterface | StatsBlock | StatsPerf
-+
-+ type 'a domain_stats_record = {
-+ dom : 'a t;
-+ params : typed_param array;
-+ }
-+
- val max_peek : [>`R] t -> int
- (** Maximum size supported by the {!block_peek} and {!memory_peek}
- functions. If you want to peek more than this then you must
-@@ -615,6 +636,13 @@ sig
-
- See also {!max_peek}. *)
-
-+ external get_all_domain_stats : 'a Connect.t -> stats_type list -> get_all_domain_stats_flag list -> 'a domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
-+ (** [get_all_domain_stats conn stats flags] allows you to read
-+ all stats across multiple/all domains in a single call.
-+
-+ See the libvirt documentation for
-+ [virConnectGetAllDomainStats]. *)
-+
- external const : [>`R] t -> ro t = "%identity"
- (** [const dom] turns a read/write domain handle into a read-only
- domain handle. Note that the opposite operation is impossible.
-diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
-index 5d82194..17412f5 100644
---- a/libvirt/libvirt_c_oneoffs.c
-+++ b/libvirt/libvirt_c_oneoffs.c
-@@ -1,5 +1,5 @@
- /* OCaml bindings for libvirt.
-- * (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc.
-+ * (C) Copyright 2007-2017 Richard W.M. Jones, Red Hat Inc.
- * http://libvirt.org/
- *
- * This library is free software; you can redistribute it and/or
-@@ -184,7 +184,6 @@ ocaml_libvirt_connect_set_keep_alive(value connv,
- CAMLreturn(Val_unit);
- }
-
--
- CAMLprim value
- ocaml_libvirt_domain_get_id (value domv)
- {
-@@ -560,6 +559,122 @@ ocaml_libvirt_domain_get_cpu_stats (value domv)
- CAMLreturn (cpustats);
- }
-
-+value
-+ocaml_libvirt_domain_get_all_domain_stats (value connv,
-+ value statsv, value flagsv)
-+{
-+ CAMLparam3 (connv, statsv, flagsv);
-+ CAMLlocal5 (rv, dsv, tpv, v, v1);
-+ CAMLlocal1 (v2);
-+ virConnectPtr conn = Connect_val (connv);
-+ virDomainStatsRecordPtr *rstats;
-+ unsigned int stats = 0, flags = 0;
-+ int i, j, r;
-+
-+ /* Get stats and flags. */
-+ for (; statsv != Val_int (0); statsv = Field (statsv, 1)) {
-+ v = Field (statsv, 0);
-+ if (v == Val_int (0))
-+ stats |= VIR_DOMAIN_STATS_STATE;
-+ else if (v == Val_int (1))
-+ stats |= VIR_DOMAIN_STATS_CPU_TOTAL;
-+ else if (v == Val_int (2))
-+ stats |= VIR_DOMAIN_STATS_BALLOON;
-+ else if (v == Val_int (3))
-+ stats |= VIR_DOMAIN_STATS_VCPU;
-+ else if (v == Val_int (4))
-+ stats |= VIR_DOMAIN_STATS_INTERFACE;
-+ else if (v == Val_int (5))
-+ stats |= VIR_DOMAIN_STATS_BLOCK;
-+ else if (v == Val_int (6))
-+ stats |= VIR_DOMAIN_STATS_PERF;
-+ }
-+ for (; flagsv != Val_int (0); flagsv = Field (flagsv, 1)) {
-+ v = Field (flagsv, 0);
-+ if (v == Val_int (0))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_ACTIVE;
-+ else if (v == Val_int (1))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_INACTIVE;
-+ else if (v == Val_int (2))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_OTHER;
-+ else if (v == Val_int (3))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_PAUSED;
-+ else if (v == Val_int (4))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_PERSISTENT;
-+ else if (v == Val_int (5))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_RUNNING;
-+ else if (v == Val_int (6))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_SHUTOFF;
-+ else if (v == Val_int (7))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_TRANSIENT;
-+ else if (v == Val_int (8))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_BACKING;
-+ else if (v == Val_int (9))
-+ flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS;
-+ }
-+
-+ NONBLOCKING (r = virConnectGetAllDomainStats (conn, stats, &rstats, flags));
-+ CHECK_ERROR (r == -1, "virConnectGetAllDomainStats");
-+
-+ rv = caml_alloc (r, 0); /* domain_stats_record array. */
-+ for (i = 0; i < r; ++i) {
-+ dsv = caml_alloc (2, 0); /* domain_stats_record */
-+ virDomainRef (rstats[i]->dom);
-+ Store_field (dsv, 0, Val_domain (rstats[i]->dom, connv));
-+
-+ tpv = caml_alloc (rstats[i]->nparams, 0); /* typed_param array */
-+ for (j = 0; j < rstats[i]->nparams; ++j) {
-+ v2 = caml_alloc (2, 0); /* typed_param: field name, value */
-+ Store_field (v2, 0, caml_copy_string (rstats[i]->params[j].field));
-+
-+ switch (rstats[i]->params[j].type) {
-+ case VIR_TYPED_PARAM_INT:
-+ v1 = caml_alloc (1, 0);
-+ v = caml_copy_int32 (rstats[i]->params[j].value.i);
-+ break;
-+ case VIR_TYPED_PARAM_UINT:
-+ v1 = caml_alloc (1, 1);
-+ v = caml_copy_int32 (rstats[i]->params[j].value.ui);
-+ break;
-+ case VIR_TYPED_PARAM_LLONG:
-+ v1 = caml_alloc (1, 2);
-+ v = caml_copy_int64 (rstats[i]->params[j].value.l);
-+ break;
-+ case VIR_TYPED_PARAM_ULLONG:
-+ v1 = caml_alloc (1, 3);
-+ v = caml_copy_int64 (rstats[i]->params[j].value.ul);
-+ break;
-+ case VIR_TYPED_PARAM_DOUBLE:
-+ v1 = caml_alloc (1, 4);
-+ v = caml_copy_double (rstats[i]->params[j].value.d);
-+ break;
-+ case VIR_TYPED_PARAM_BOOLEAN:
-+ v1 = caml_alloc (1, 5);
-+ v = Val_bool (rstats[i]->params[j].value.b);
-+ break;
-+ case VIR_TYPED_PARAM_STRING:
-+ v1 = caml_alloc (1, 6);
-+ v = caml_copy_string (rstats[i]->params[j].value.s);
-+ break;
-+ default:
-+ virDomainStatsRecordListFree (rstats);
-+ caml_failwith ("virConnectGetAllDomainStats: "
-+ "unknown parameter type returned");
-+ }
-+ Store_field (v1, 0, v);
-+
-+ Store_field (v2, 1, v1);
-+ Store_field (tpv, j, v2);
-+ }
-+
-+ Store_field (dsv, 1, tpv);
-+ Store_field (rv, i, dsv);
-+ }
-+
-+ virDomainStatsRecordListFree (rstats);
-+ CAMLreturn (rv);
-+}
-+
- CAMLprim value
- ocaml_libvirt_domain_migrate_native (value domv, value dconnv, value flagsv, value optdnamev, value opturiv, value optbandwidthv, value unitv)
- {
---
-2.9.3
-
diff --git a/testing/ocaml-libvirt/0004-examples-Print-more-stats-in-the-get_all_domain_stat.patch b/testing/ocaml-libvirt/0004-examples-Print-more-stats-in-the-get_all_domain_stat.patch
deleted file mode 100644
index a4baded24ac..00000000000
--- a/testing/ocaml-libvirt/0004-examples-Print-more-stats-in-the-get_all_domain_stat.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 2bb6200934090f34f81d1badb9a55f5a86a7fb32 Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Tue, 28 Mar 2017 13:11:09 +0100
-Subject: [PATCH 4/5] examples: Print more stats in the get_all_domain_stats.ml
- example.
-
-Updates commit 380f1e05b244ae4750ca5101b5b5a182dcd0d1fd.
----
- examples/get_all_domain_stats.ml | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/examples/get_all_domain_stats.ml b/examples/get_all_domain_stats.ml
-index 4375639..cc86da6 100644
---- a/examples/get_all_domain_stats.ml
-+++ b/examples/get_all_domain_stats.ml
-@@ -40,13 +40,20 @@ let () =
-
- let conn = C.connect_readonly () in
-
-- let what_stats = [D.StatsCpuTotal; D.StatsInterface; D.StatsBlock] in
-- let flags = [D.GetAllDomainsStatsActive; D.GetAllDomainsStatsInactive] in
-+ let what = [
-+ D.StatsState;
-+ D.StatsCpuTotal;
-+ D.StatsBalloon;
-+ D.StatsVcpu;
-+ D.StatsInterface;
-+ D.StatsBlock;
-+ ] in
-+ let who = [] in (* empty list means returns all domains *)
-
- let quit = ref false in
-
- while not !quit do
-- let stats = D.get_all_domain_stats conn what_stats flags in
-+ let stats = D.get_all_domain_stats conn what who in
-
- if stats <> [||] then print_stats stats
- else (
---
-2.9.3
-
diff --git a/testing/ocaml-libvirt/0005-Change-binding-of-virConnectGetAllDomainStats-to-ret.patch b/testing/ocaml-libvirt/0005-Change-binding-of-virConnectGetAllDomainStats-to-ret.patch
deleted file mode 100644
index 955a4ca71bf..00000000000
--- a/testing/ocaml-libvirt/0005-Change-binding-of-virConnectGetAllDomainStats-to-ret.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 3169af3337938e18bf9ecc6ce936d644e14ff3de Mon Sep 17 00:00:00 2001
-From: "Richard W.M. Jones" <rjones@redhat.com>
-Date: Tue, 28 Mar 2017 13:52:51 +0100
-Subject: [PATCH 5/5] Change binding of virConnectGetAllDomainStats to return
- dom UUID.
-
-The virDomainPtr object returned by this binding isn't a reliable
-virDomainPtr object. The only thing we can safely do with it is to
-get its UUID. Modify the API correspondingly.
-
-Updates commit 380f1e05b244ae4750ca5101b5b5a182dcd0d1fd.
----
- examples/get_all_domain_stats.ml | 7 ++++---
- libvirt/libvirt.ml | 6 +++---
- libvirt/libvirt.mli | 6 +++---
- libvirt/libvirt_c_oneoffs.c | 13 +++++++++++--
- 4 files changed, 21 insertions(+), 11 deletions(-)
-
-diff --git a/examples/get_all_domain_stats.ml b/examples/get_all_domain_stats.ml
-index cc86da6..be91f77 100644
---- a/examples/get_all_domain_stats.ml
-+++ b/examples/get_all_domain_stats.ml
-@@ -8,10 +8,11 @@ open Printf
- module C = Libvirt.Connect
- module D = Libvirt.Domain
-
--let print_stats stats =
-+let print_stats conn stats =
- try
- Array.iter (
-- fun { D.dom = dom; D.params = params } ->
-+ fun { D.dom_uuid = uuid; D.params = params } ->
-+ let dom = D.lookup_by_uuid conn uuid in
- printf "domain %s:\n" (D.get_name dom);
- Array.iteri (
- fun i (field, value) ->
-@@ -55,7 +56,7 @@ let () =
- while not !quit do
- let stats = D.get_all_domain_stats conn what who in
-
-- if stats <> [||] then print_stats stats
-+ if stats <> [||] then print_stats conn stats
- else (
- printf "no guests found\n";
- quit := true
-diff --git a/libvirt/libvirt.ml b/libvirt/libvirt.ml
-index ce1878a..d03a127 100644
---- a/libvirt/libvirt.ml
-+++ b/libvirt/libvirt.ml
-@@ -408,8 +408,8 @@ struct
- | StatsState | StatsCpuTotal | StatsBalloon | StatsVcpu
- | StatsInterface | StatsBlock | StatsPerf
-
-- type 'a domain_stats_record = {
-- dom : 'a t;
-+ type domain_stats_record = {
-+ dom_uuid : uuid;
- params : typed_param array;
- }
-
-@@ -467,7 +467,7 @@ struct
- external block_peek : [>`W] t -> string -> int64 -> int -> string -> int -> unit = "ocaml_libvirt_domain_block_peek_bytecode" "ocaml_libvirt_domain_block_peek_native"
- external memory_peek : [>`W] t -> memory_flag list -> int64 -> int -> string -> int -> unit = "ocaml_libvirt_domain_memory_peek_bytecode" "ocaml_libvirt_domain_memory_peek_native"
-
-- external get_all_domain_stats : 'a Connect.t -> stats_type list -> get_all_domain_stats_flag list -> 'a domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
-+ external get_all_domain_stats : [>`R] Connect.t -> stats_type list -> get_all_domain_stats_flag list -> domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
-
- external const : [>`R] t -> ro t = "%identity"
-
-diff --git a/libvirt/libvirt.mli b/libvirt/libvirt.mli
-index d1b5992..dc0033b 100644
---- a/libvirt/libvirt.mli
-+++ b/libvirt/libvirt.mli
-@@ -494,8 +494,8 @@ sig
- | StatsState | StatsCpuTotal | StatsBalloon | StatsVcpu
- | StatsInterface | StatsBlock | StatsPerf
-
-- type 'a domain_stats_record = {
-- dom : 'a t;
-+ type domain_stats_record = {
-+ dom_uuid : uuid;
- params : typed_param array;
- }
-
-@@ -636,7 +636,7 @@ sig
-
- See also {!max_peek}. *)
-
-- external get_all_domain_stats : 'a Connect.t -> stats_type list -> get_all_domain_stats_flag list -> 'a domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
-+ external get_all_domain_stats : [>`R] Connect.t -> stats_type list -> get_all_domain_stats_flag list -> domain_stats_record array = "ocaml_libvirt_domain_get_all_domain_stats"
- (** [get_all_domain_stats conn stats flags] allows you to read
- all stats across multiple/all domains in a single call.
-
-diff --git a/libvirt/libvirt_c_oneoffs.c b/libvirt/libvirt_c_oneoffs.c
-index 17412f5..958ba69 100644
---- a/libvirt/libvirt_c_oneoffs.c
-+++ b/libvirt/libvirt_c_oneoffs.c
-@@ -570,6 +570,7 @@ ocaml_libvirt_domain_get_all_domain_stats (value connv,
- virDomainStatsRecordPtr *rstats;
- unsigned int stats = 0, flags = 0;
- int i, j, r;
-+ unsigned char uuid[VIR_UUID_BUFLEN];
-
- /* Get stats and flags. */
- for (; statsv != Val_int (0); statsv = Field (statsv, 1)) {
-@@ -619,8 +620,16 @@ ocaml_libvirt_domain_get_all_domain_stats (value connv,
- rv = caml_alloc (r, 0); /* domain_stats_record array. */
- for (i = 0; i < r; ++i) {
- dsv = caml_alloc (2, 0); /* domain_stats_record */
-- virDomainRef (rstats[i]->dom);
-- Store_field (dsv, 0, Val_domain (rstats[i]->dom, connv));
-+
-+ /* Libvirt returns something superficially resembling a
-+ * virDomainPtr, but it's not a real virDomainPtr object
-+ * (eg. dom->id == -1, and its refcount is wrong). The only thing
-+ * we can safely get from it is the UUID.
-+ */
-+ v = caml_alloc_string (VIR_UUID_BUFLEN);
-+ virDomainGetUUID (rstats[i]->dom, uuid);
-+ memcpy (String_val (v), uuid, VIR_UUID_BUFLEN);
-+ Store_field (dsv, 0, v);
-
- tpv = caml_alloc (rstats[i]->nparams, 0); /* typed_param array */
- for (j = 0; j < rstats[i]->nparams; ++j) {
---
-2.9.3
-
diff --git a/testing/ocaml-libvirt/APKBUILD b/testing/ocaml-libvirt/APKBUILD
index 43c4c177eea..644bc4311b3 100644
--- a/testing/ocaml-libvirt/APKBUILD
+++ b/testing/ocaml-libvirt/APKBUILD
@@ -1,67 +1,85 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-libvirt
-pkgver=0.6.1.4
-pkgrel=1
+_pkgname=libvirt-ocaml
+pkgver=0.6.1.7
+pkgrel=0
pkgdesc="OCaml binding for libvirt"
-url="http://libvirt.org/ocaml/"
-arch="aarch64 ppc64le x86_64" # restricted by ocaml
-license="LGPL-2.1-or-later-WITH-linking-exception"
-makedepends="ocaml ocaml-ocamldoc ocaml-findlib-dev libvirt-dev perl gawk"
+url="https://libvirt.org/ocaml/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+makedepends="autoconf automake ocaml ocaml-findlib-dev libvirt-dev perl gawk"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://libvirt.org/sources/ocaml/$pkgname-$pkgver.tar.gz
- 0001-Use-C99-standard-int64_t-instead-of-OCaml-defined-an.patch
- 0001-Add-a-binding-for-virDomainCreateXML.patch
- 0001-Suppress-errors-to-stderr-and-use-thread-local-virEr.patch
- 0002-Don-t-bother-checking-return-from-virInitialize.patch
- 0001-Remove-unused-not_supported-function.patch
- 0001-Use-g-warn-error.patch
- 0002-Update-dependencies.patch
- 0003-Add-a-binding-for-virConnectGetAllDomainStats-RHBZ-1.patch
- 0004-examples-Print-more-stats-in-the-get_all_domain_stat.patch
- 0005-Change-binding-of-virConnectGetAllDomainStats-to-ret.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://gitlab.com/libvirt/libvirt-ocaml/-/archive/v$pkgver/libvirt-ocaml-v$pkgver.tar.gz"
options="!check" # there is no test suite/unit tests
+builddir="$srcdir/$_pkgname-v$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
prepare() {
default_prepare
- update_config_sub
+ autoreconf -i
}
build() {
- cd "$builddir"
- export OCAMLPARAM="safe-string=0,_"
./configure \
--host=$CHOST \
--build=$CBUILD \
--target=$CTARGET \
--prefix=/usr
- make -C libvirt all
- make opt
-}
-
-check() {
- cd "$builddir"
+ make
}
package() {
- cd "$builddir"
export DESTDIR="$pkgdir"
export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
mkdir -p "$OCAMLFIND_DESTDIR" "$OCAMLFIND_DESTDIR/stublibs"
- make install-opt
- install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
- install -D -m644 COPYING.LIB "$pkgdir/usr/share/licenses/$pkgname/COPYING.LIB"
+
+ make install
+ install -Dm644 COPYING COPYING.LIB \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="ed081a9b6f1388935e6a2ba0400e15881b3abb81a1079ab7fd88e72392ad29a0fd61550d3d7dc00682f283bc181d298af6519d19c3d15cf077988a3d6281d204 ocaml-libvirt-0.6.1.4.tar.gz
-ca1c6503a121ae392c46a37e4b260041a12b692afb7f2da39396f490020fe11b2284ff6fe110eac6fabd01296adf2aa030f598e7349a0984323f7cd1c9fa67b0 0001-Use-C99-standard-int64_t-instead-of-OCaml-defined-an.patch
-6404b398da1b41cd1fef41ce597a3d2b1dee44b636a403a9b730e9cec455c87b4bd4fa35eea869a12698623d4d9d667f5588032bac4938d4114f606fa499a1e0 0001-Add-a-binding-for-virDomainCreateXML.patch
-e59b4127c2244ef6465090ccf6965f8ca4431e543bd4b8772527b0080af30da9834655fce195b61e860676f9f4747d2d22caf38dc0c2ecd102c4933f0a5da668 0001-Suppress-errors-to-stderr-and-use-thread-local-virEr.patch
-7106aa55357b54409ca982ac60ff1243f4210a12fc3db7e6d355a5f317b947abe11d283ffc1c86193e93e6e30bd037f8883079a6dc83da33091adc449a31ddcd 0002-Don-t-bother-checking-return-from-virInitialize.patch
-bbc97d03031ef187230607de4830a3b250b8283d52ec0a60a220d165b4af9fe0deeacf43b00c056b4e090d6cf8f6aae8eb26c72e38cfca95df9e85ce0b72fd40 0001-Remove-unused-not_supported-function.patch
-830d93d7cd1dec1fcf3c0f762c61d056d62589972c26904b3711f9739745ab0125b117aff873abd3ff852c8ad03b3e779891d1420c3f21008915b4eb69d977bf 0001-Use-g-warn-error.patch
-f1dd3862b6c3a5ee04a2d54a885bc0baa053de60cde4ceeb9b70c6de9a8b4bfcac77429bf64400973a2d867bab542ca728438b30f07ac756cd362db454d684c0 0002-Update-dependencies.patch
-2b9ce951486ada9d700c4560e0d5c069d2b58c70d71ac70ee95900246a53ad6c5b2557fe82fc45b3f0fcdf7a966c2e1f442cc391758b0c9c6f7e755206e5e2c7 0003-Add-a-binding-for-virConnectGetAllDomainStats-RHBZ-1.patch
-2a2f48cd744d5b697ffded415993aa21aea5b3335abb6dd1d2ae9efeb443ead362b9b6988764a0405e96f054d949b2927c0a7316dcb0e41e02b19379a40b8471 0004-examples-Print-more-stats-in-the-get_all_domain_stat.patch
-abfcac22d22be5e2b552f2443244d62663d055d3eb9fd9ee9e82bcf21667d1a868cecc2bc5eac25097e9faca2ae20bd4ad6c0bb81eb072fa581ffbcd7ec3779b 0005-Change-binding-of-virConnectGetAllDomainStats-to-ret.patch"
+sha512sums="
+065008709b653f52e119665a5fbe4bedeb1dceb430b2d3ce022d4f9d685e168860145d40f6ae2be4d0715da5c0815029c9de49d370c73cd54d0e83846dc6a785 libvirt-ocaml-v0.6.1.7.tar.gz
+"
diff --git a/testing/ocaml-logs/APKBUILD b/testing/ocaml-logs/APKBUILD
new file mode 100644
index 00000000000..955f628897d
--- /dev/null
+++ b/testing/ocaml-logs/APKBUILD
@@ -0,0 +1,91 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-logs
+_pkgname=logs
+pkgver=0.7.0
+pkgrel=3
+pkgdesc="Logging infrastructure for OCaml"
+url="https://erratique.ch/software/logs"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ ocaml-fmt-dev
+ ocaml-cmdliner-dev
+ ocaml-lwt-dev
+ ocaml-seq-dev
+ cmd:opam-installer
+ "
+options="!check" # require mtime
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/logs/releases/logs-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --with-fmt true \
+ --with-cmdliner true \
+ --with-lwt true \
+ --with-base-threads true \
+ --with-js_of_ocaml false
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+657f66eeaf5788947a3ff4b2a179f7e192ad4ce086fc8968286066d4b83af476523b3befce50ee58abf2d9b8c8dc65573ba8ed62f9c5e7933db29a7fb769646a ocaml-logs-0.7.0.tar.bz2
+"
diff --git a/testing/ocaml-lru/APKBUILD b/testing/ocaml-lru/APKBUILD
new file mode 100644
index 00000000000..20c73e74cd5
--- /dev/null
+++ b/testing/ocaml-lru/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lru
+_pkgname=lru
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="Scalable LRU caches"
+url="https://github.com/pqwy/lru"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-psq-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-qcheck-alcotest-dev ocaml-qcheck-core-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/pqwy/lru/releases/download/v$pkgver/lru-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+b4d23089bc73bd5b0bdaa977d6e65982486def1c4fd35a2a24655adb22377692927752de2d8373fc0f751a4ec5cf905546b8754320acb01308ce43fa42288112 ocaml-lru-0.3.0.tar.bz2
+"
diff --git a/testing/ocaml-lwd/APKBUILD b/testing/ocaml-lwd/APKBUILD
new file mode 100644
index 00000000000..63b250ca342
--- /dev/null
+++ b/testing/ocaml-lwd/APKBUILD
@@ -0,0 +1,100 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lwd
+_pkgname=lwd
+pkgver=0.3
+pkgrel=0
+pkgdesc="Lightweight reactive documents"
+url="https://github.com/let-def/lwd"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ dune
+ ocaml
+ ocaml-bigarray-compat-dev
+ ocaml-compiler-libs
+ ocaml-cppo
+ ocaml-findlib
+ ocaml-lwt-dev
+ ocaml-mmap-dev
+ ocaml-notty-dev
+ ocaml-ocplib-endian-dev
+ ocaml-uutf-dev
+ ocaml-result-dev
+ ocaml-seq-dev
+ "
+options="!check"
+checkdepends="ocaml-qcheck-dev ocaml-qtest-dev"
+subpackages="$pkgname-dev"
+provides="ocaml-nottui=$pkgver-r$pkgrel"
+source="$_pkgname-$pkgver.tar.bz2::https://github.com/let-def/lwd/releases/download/v$pkgver/lwd-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build \
+ -p lwd,nottui,nottui-lwt,nottui-pretty \
+ @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ lwd nottui nottui-lwt nottui-pretty
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+ provides="ocaml-nottui-dev=$pkgver-r$pkgrel"
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+95b1fd4b7fcce72f4e220cc9a6cb3c14ea352faeac239345cca61a8906c328078e5ff3143e04c2602710e1ac4c3513d4f19c6ab62ffc716f195a3f9e0ba0560c lwd-0.3.tar.bz2
+"
diff --git a/testing/ocaml-lwt-dllist/APKBUILD b/testing/ocaml-lwt-dllist/APKBUILD
new file mode 100644
index 00000000000..450aa169833
--- /dev/null
+++ b/testing/ocaml-lwt-dllist/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lwt-dllist
+_pkgname=lwt-dllist
+pkgver=1.0.1
+pkgrel=3
+pkgdesc="Mutable doubly-linked list with Lwt iterators"
+url="https://github.com/mirage/lwt-dllist"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-lwt-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-lwt-dev" # necessary only for testing?
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/lwt-dllist/releases/download/v$pkgver/lwt-dllist-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+1df7e8e12e01a5d32e1db746f922e05f23a67c0d20e72a5b9126fead1e04decdb062081574b1c410c822305ef4eac990b7dd69f36673db8f50b9db2152abad80 ocaml-lwt-dllist-1.0.1.tar.bz2
+"
diff --git a/testing/ocaml-lwt/APKBUILD b/testing/ocaml-lwt/APKBUILD
new file mode 100644
index 00000000000..d989c294f6b
--- /dev/null
+++ b/testing/ocaml-lwt/APKBUILD
@@ -0,0 +1,110 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lwt
+_pkgname=lwt
+pkgver=5.7.0
+pkgrel=0
+pkgdesc="OCaml promises and concurrent I/O"
+url="https://github.com/ocsigen/lwt"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ libev-dev
+ ocaml-mmap-dev
+ ocaml-ocplib-endian-dev
+ ocaml-ppxlib-dev
+ ocaml-react-dev
+ ocaml-result-dev
+ "
+makedepends="$depends_dev dune dune-configurator ocaml ocaml-cppo"
+options="!check" # FIXME: tests hang
+subpackages="$pkgname-dev ${pkgname}_react:_react ${pkgname}_ppx:_ppx"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/ocsigen/lwt/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune exec \
+ -p lwt,lwt_react,lwt_ppx \
+ "src/unix/config/discover.exe" -- \
+ --save --use-libev true
+
+ dune build \
+ -p lwt,lwt_react,lwt_ppx \
+ --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ lwt lwt_react lwt_ppx
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+ depends="$depends_dev
+ $pkgname=$pkgver-r$pkgrel
+ ${pkgname}_react=$pkgver-r$pkgrel
+ ${pkgname}_ppx=$pkgver-r$pkgrel"
+ provides="${pkgname}_ppx-dev ${pkgname}_react-dev"
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+_ppx() {
+ pkgdesc="$pkgdesc (PPX syntax)"
+
+ amove usr/lib/ocaml/lwt_ppx
+}
+
+_react() {
+ pkgdesc="$pkgdesc (for FRP)"
+
+ amove usr/lib/ocaml/lwt_react
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+42e629920783428673b99c9d7a639237c9e6b35079b5d907bc67e7ea506acf9edadc48cec580bdcfd2410ed9412bf5e6bcc8b09de2fa7d35ce1490973d05ddd1 lwt-5.7.0.tar.gz
+"
diff --git a/testing/ocaml-lwt_log/APKBUILD b/testing/ocaml-lwt_log/APKBUILD
new file mode 100644
index 00000000000..002c445b700
--- /dev/null
+++ b/testing/ocaml-lwt_log/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lwt_log
+_pkgname=lwt_log
+pkgver=1.1.1
+pkgrel=5
+pkgdesc="Lwt-friendly logger"
+url="https://github.com/ocsigen/lwt_log"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.0-or-later"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-lwt-dev"
+makedepends="$depends_dev dune ocaml"
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocsigen/lwt_log/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+df3d171a7c72f37e96b756d252ab586767df9c13e01500faf13d4b2cee936b0602fd7c725c03db488d3737d8d92300af103d395a926dc654a2c44a5d6068f24a ocaml-lwt_log-1.1.1.tar.gz
+"
diff --git a/testing/ocaml-lwt_ssl/APKBUILD b/testing/ocaml-lwt_ssl/APKBUILD
new file mode 100644
index 00000000000..74e19cd9809
--- /dev/null
+++ b/testing/ocaml-lwt_ssl/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-lwt_ssl
+pkgver=1.2.0
+pkgrel=0
+_pkgreal=lwt_ssl
+pkgdesc="OpenSSL binding with concurrent I/O"
+url="https://github.com/ocsigen/lwt_ssl"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OpenSSL-Exception"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-lwt-dev
+ ocaml-ssl-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/ocsigen/lwt_ssl/releases/download/$pkgver/lwt_ssl-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+cf2ef7d4db26e40c044e743ce85849a10eb57c916cbd7d6291bf4458291689098293bfb4cd7f1023f3ae8bc8e9a68cb2c7470669501a9b44695659405a75aa00 lwt_ssl-1.2.0.tar.bz2
+"
diff --git a/testing/ocaml-magic-mime/APKBUILD b/testing/ocaml-magic-mime/APKBUILD
new file mode 100644
index 00000000000..1fcb49802fd
--- /dev/null
+++ b/testing/ocaml-magic-mime/APKBUILD
@@ -0,0 +1,73 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-magic-mime
+pkgver=1.3.1
+pkgrel=0
+_pkgreal=magic-mime
+pkgdesc="Map filenames to common MIME types"
+url="https://github.com/mirage/ocaml-magic-mime"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/mirage/ocaml-magic-mime/releases/download/v$pkgver/magic-mime-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+607f7469caa2e800a92e3c5248125108fad5e0513f4230a37ed774c86112eacdae0ee533c5c78ec2752e939e83e2201dd4ee02cbbff92ae32e25683710d7b365 magic-mime-1.3.1.tar.bz2
+"
diff --git a/testing/ocaml-markup/APKBUILD b/testing/ocaml-markup/APKBUILD
new file mode 100644
index 00000000000..5e10202d1cc
--- /dev/null
+++ b/testing/ocaml-markup/APKBUILD
@@ -0,0 +1,99 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-markup
+_pkgname=markup.ml
+pkgver=1.0.3
+pkgrel=3
+pkgdesc="Error-recovering functional HTML5 and XML parsers and writers for OCaml"
+url="https://aantron.github.io/markup.ml"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+checkdepends="ocaml-result-dev ocaml-ounit-dev"
+makedepends="
+ dune
+ ocaml
+ ocaml-bisect_ppx-dev
+ ocaml-compiler-libs
+ ocaml-compiler-libs-repackaged-dev
+ ocaml-ppx_derivers-dev
+ ocaml-ppxlib-dev
+ ocaml-sexplib0-dev
+ ocaml-seq-dev
+ ocaml-stdlib-shims
+ ocaml-uutf-dev
+ ocaml-lwt-dev
+ ocaml-ocplib-endian-dev
+ ocaml-mmap-dev
+ ocaml-bigarray-compat-dev
+ "
+provides="$pkgname-lwt=$pkgver-r$pkgrel"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/aantron/markup.ml/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+ provides="$pkgname-lwt-dev=$pkgver-r$pkgrel"
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+1bb030fa2d79f7a7ac2d04c07c72a39e83620757b1d7d8a33eea1ec9b4c32883a67de45d1eea9bfa6533ae8076009fab9af5f180ad2be9c1fef66e3e5937048a ocaml-markup-1.0.3.tar.gz
+"
diff --git a/testing/ocaml-menhir/APKBUILD b/testing/ocaml-menhir/APKBUILD
new file mode 100644
index 00000000000..6a98029c8d9
--- /dev/null
+++ b/testing/ocaml-menhir/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-menhir
+_pkgname=menhir
+# NOTE: Check supported version in Reason before upgrading!
+pkgver=20220210
+_commit=4f8151679e73cdfe598c42220ae869f904dfaa9a
+pkgrel=2
+pkgdesc="LR(1) parser generator for OCaml"
+url="http://gallium.inria.fr/~fpottier/menhir/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="GPL-2.0-only"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ dune
+ ocaml
+ ocaml-findlib
+ ocaml-ocamlbuild-dev
+ ocamlbuild
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.inria.fr/fpottier/menhir/-/archive/$pkgver/archive.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver-$_commit"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ mkdir -vp "$pkgdir"/usr/share
+ mv -v "$pkgdir"/usr/man "$pkgdir"/usr/share/
+}
+
+dev() {
+ pkgdesc="$pkgdesc (development files)"
+ license="LGPL-2.0-only-WITH-linking-exception"
+
+ amove usr/lib/ocaml
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3063fec1d8b9fe092c8461b0689d426c7fe381a2bf3fd258dc42ceecca1719d32efbb8a18d94ada5555c38175ea352da3adbb239fdbcbcf52c3a5c85a4d9586f ocaml-menhir-20220210.tar.gz
+"
diff --git a/testing/ocaml-merlin-extend/APKBUILD b/testing/ocaml-merlin-extend/APKBUILD
new file mode 100644
index 00000000000..00e66758dc6
--- /dev/null
+++ b/testing/ocaml-merlin-extend/APKBUILD
@@ -0,0 +1,86 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-merlin-extend
+_pkgname=merlin-extend
+pkgver=0.6.1
+pkgrel=2
+pkgdesc="SDK to extend Merlin"
+url="https://github.com/let-def/merlin-extend"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ dune
+ ocaml
+ ocaml-compiler-libs
+ ocaml-cppo
+ ocaml-findlib
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/let-def/merlin-extend/releases/download/v$pkgver/merlin-extend-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+631fc96aab2f35e12a078c9b4907ca7b0db9f1e3a4026040e6c23b82e0171c256a89fb5d4c887f1d156eb9e3152783cdf7a546b2496051007a1bcf5777417396 ocaml-merlin-extend-0.6.1.tar.bz2
+"
diff --git a/testing/ocaml-metrics/APKBUILD b/testing/ocaml-metrics/APKBUILD
new file mode 100644
index 00000000000..1ba361924fe
--- /dev/null
+++ b/testing/ocaml-metrics/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-metrics
+_pkgname=metrics
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="Metrics infrastructure for OCaml"
+url="https://github.com/mirage/metrics"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-lwt-dev
+ ocaml-mtime-dev
+ ocaml-uuidm-dev
+ ocaml-fmt-dev
+ ocaml-duration-dev
+ ocaml-logs-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/metrics/releases/download/v$pkgver/metrics-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+00b271b74b7081b2fe202f402c9be6fef70da7241ee82a82b7a52329aad7c1d73c0eb7ee579a20a08c0e54f546351104dd822052624654ecbfc1c33d067656fa ocaml-metrics-0.4.0.tar.bz2
+"
diff --git a/testing/ocaml-mew/APKBUILD b/testing/ocaml-mew/APKBUILD
new file mode 100644
index 00000000000..0c19eb64994
--- /dev/null
+++ b/testing/ocaml-mew/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mew
+_pkgname=mew
+pkgver=0.1.0
+pkgrel=3
+pkgdesc="Modal editing witch"
+url="https://github.com/kandu/mew"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-trie-dev"
+makedepends="$depends_dev dune ocaml"
+options="!check" # needs ppx_expect
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kandu/mew/archive/$pkgver.tar.gz
+ use-built-in-result-lib.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+77a68f6dc9f3edc729384d59247a29f32f969dc6d987ed2e6c88b9a64b655822dafa9c3cb424bf40e6cf9ed20cddf9c708738872db245f14a711770e8e938db3 ocaml-mew-0.1.0.tar.gz
+b8bbfd9fc9281ad4463d060ba7941ed09516fb66a2b751213cd70094070e585f039bee0235012661eabfa28ba52ca011139c5def1457394bbe5fb9fb41e3d0b8 use-built-in-result-lib.patch
+"
diff --git a/testing/ocaml-mew/use-built-in-result-lib.patch b/testing/ocaml-mew/use-built-in-result-lib.patch
new file mode 100644
index 00000000000..3dc6cb11d34
--- /dev/null
+++ b/testing/ocaml-mew/use-built-in-result-lib.patch
@@ -0,0 +1,9 @@
+--- a/src/dune
++++ b/src/dune
+@@ -1,5 +1,5 @@
+ (library
+ (name mew)
+ (public_name mew)
+- (libraries result trie)
++ (libraries trie)
+ (flags (:standard -safe-string)))
diff --git a/testing/ocaml-mew_vi/APKBUILD b/testing/ocaml-mew_vi/APKBUILD
new file mode 100644
index 00000000000..acb72641993
--- /dev/null
+++ b/testing/ocaml-mew_vi/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mew_vi
+_pkgname=mew_vi
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="Modal editing witch (VI interpreter)"
+url="https://github.com/kandu/mew_vi"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-mew-dev ocaml-react-dev"
+makedepends="$depends_dev dune ocaml"
+options="!check" # needs ppx_expect
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kandu/mew_vi/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f6ee1375ceee60ccae1799d07a8bc55684fdbffc2275147ef19cf3c7d242663764e6630b9423287a78efacba17f410971e3fc397d202effb331f94dc00797eb0 ocaml-mew_vi-0.5.0.tar.gz
+"
diff --git a/testing/ocaml-mikmatch/APKBUILD b/testing/ocaml-mikmatch/APKBUILD
new file mode 100644
index 00000000000..bebef618e2d
--- /dev/null
+++ b/testing/ocaml-mikmatch/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mikmatch
+_pkgname=mikmatch
+pkgver=1.0.9
+pkgrel=2
+pkgdesc="OCaml syntax extension for regexps"
+url="https://mjambon.github.io/mjambon2016/micmatch.html"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends="ocaml-tophide"
+makedepends="
+ coreutils
+ ocaml
+ ocaml-camlp4-dev
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-pcre-dev
+ "
+options="!check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mjambon/mikmatch/releases/download/v$pkgver/mikmatch-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ make -j1
+}
+
+package() {
+ export OCAMLFIND_DESTDIR="$pkgdir"/usr/lib/ocaml
+ mkdir -vp "$OCAMLFIND_DESTDIR"
+ make install
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+dcf62f67b01f039e0510446267f3d4b965daa6507631da71c8562f7eeedebf9859403d0be7a2e217365af95bb818d05de38ab4987d900a4050a1c5403a66fa5c ocaml-mikmatch-1.0.9.tar.gz
+"
diff --git a/testing/ocaml-mirage-clock/APKBUILD b/testing/ocaml-mirage-clock/APKBUILD
new file mode 100644
index 00000000000..6bfa659f66e
--- /dev/null
+++ b/testing/ocaml-mirage-clock/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-clock
+_pkgname=mirage-clock
+pkgver=4.2.0
+pkgrel=2
+pkgdesc="Libraries and module types for portable clocks"
+url="https://github.com/mirage/mirage-clock"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml dune-configurator"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-clock/releases/download/v$pkgver/mirage-clock-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+05a359dc8400d4ca200ff255dbd030acd33d2c4acb5020838f772c02cdb5f243f3dbafbc43a8cd51e6b5923a140f84c9e7ea25b2c0fa277bb68b996190d36e3b ocaml-mirage-clock-4.2.0.tar.bz2
+"
diff --git a/testing/ocaml-mirage-crypto/APKBUILD b/testing/ocaml-mirage-crypto/APKBUILD
new file mode 100644
index 00000000000..781de27360a
--- /dev/null
+++ b/testing/ocaml-mirage-crypto/APKBUILD
@@ -0,0 +1,91 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-crypto
+_pkgname=mirage-crypto
+pkgver=0.10.6
+pkgrel=3
+pkgdesc="Simple symmetric cryptography for the modern age"
+url="https://github.com/mirage/mirage-crypto"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+# ocaml-zarith is not separated into a -dev subpackage
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-duration-dev
+ ocaml-eqaf-dev
+ ocaml-logs-dev
+ ocaml-mtime-dev
+ ocaml-zarith
+ "
+makedepends="$depends_dev dune dune-configurator ocaml"
+checkdepends="ocaml-ounit2-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-crypto/releases/download/v$pkgver/mirage-crypto-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p mirage-crypto,mirage-crypto-ec,mirage-crypto-pk,mirage-crypto-rng \
+ --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ mirage-crypto mirage-crypto-ec mirage-crypto-pk mirage-crypto-rng
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+870b7d0d32acde970afcd3fac2cb51131ac74bb20c887d07ddfccd239467a5dc8b700adf463427fa916393c503f106feb733cba5bf4b9d1f8eb57f52b5af9f9c ocaml-mirage-crypto-0.10.6.tar.bz2
+"
diff --git a/testing/ocaml-mirage-flow/APKBUILD b/testing/ocaml-mirage-flow/APKBUILD
new file mode 100644
index 00000000000..78e0bcdf8f1
--- /dev/null
+++ b/testing/ocaml-mirage-flow/APKBUILD
@@ -0,0 +1,86 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-flow
+_pkgname=mirage-flow
+pkgver=3.0.0
+pkgrel=3
+pkgdesc="Flow implementations and combinators for MirageOS"
+url="https://github.com/mirage/mirage-flow"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-fmt-dev
+ ocaml-lwt-dev
+ ocaml-logs-dev
+ ocaml-mirage-clock-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-flow/releases/download/v$pkgver/mirage-flow-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+2aeb397799621bc0ea2485b68058949c99b3da8d454939d594a9b2d39ef47aa2c16489f06adfa2dea3b34fd15e60a23abc6b8e214dfbc8b7da2e958de7c36b57 ocaml-mirage-flow-3.0.0.tar.bz2
+"
diff --git a/testing/ocaml-mirage-kv/APKBUILD b/testing/ocaml-mirage-kv/APKBUILD
new file mode 100644
index 00000000000..5389fb98990
--- /dev/null
+++ b/testing/ocaml-mirage-kv/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-kv
+_pkgname=mirage-kv
+pkgver=4.0.1
+pkgrel=3
+pkgdesc="MirageOS signatures for key/value devices"
+url="https://github.com/mirage/mirage-kv"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-fmt-dev ocaml-lwt-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-kv/releases/download/v$pkgver/mirage-kv-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+e6ac8b8638eac760d245edb0159366c313ff9f5986fd310557fa6bec6f9fb87a3bb59d73065b42d2a798779d7b41cb81da235624db8e836f44801c4ae20c0293 ocaml-mirage-kv-4.0.1.tar.bz2
+"
diff --git a/testing/ocaml-mirage-net/APKBUILD b/testing/ocaml-mirage-net/APKBUILD
new file mode 100644
index 00000000000..f06cbebc51d
--- /dev/null
+++ b/testing/ocaml-mirage-net/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-net
+_pkgname=mirage-net
+pkgver=4.0.0
+pkgrel=3
+pkgdesc="Network signatures for MirageOS"
+url="https://github.com/mirage/mirage-net"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-lwt-dev
+ ocaml-ipaddr-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-net/releases/download/v$pkgver/mirage-net-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+52064dc704ebd0d305fd234b6d89fc313d5a80016d8875ef93212a1962ad8b1f332f7b0338244afbb2d2f207a28d476e7d7639be9dc607d95145afee7fccc483 ocaml-mirage-net-4.0.0.tar.bz2
+"
diff --git a/testing/ocaml-mirage-profile/APKBUILD b/testing/ocaml-mirage-profile/APKBUILD
new file mode 100644
index 00000000000..081d2123a41
--- /dev/null
+++ b/testing/ocaml-mirage-profile/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-profile
+_pkgname=mirage-profile
+pkgver=0.9.1
+pkgrel=3
+pkgdesc="Collect runtime profiling information in CTF format"
+url="https://github.com/mirage/mirage-profile"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-lwt-dev
+ ocaml-ocplib-endian-dev
+ ocaml-mtime-dev
+ "
+makedepends="$depends_dev dune ocaml"
+options="!check" # needs MProf.Trace.Control module
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-profile/releases/download/v$pkgver/mirage-profile-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build \
+ -p mirage-profile,mirage-profile-unix \
+ --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ mirage-profile mirage-profile-unix
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+23cc4a2a62f5cc05b48d626bd6c8171a442fd46490da6810b1c507fcd7661c7fcd901d8328cddf687af4144136bf0d34b63f8484e32550077ab63d23e6eaea2b ocaml-mirage-profile-0.9.1.tar.bz2
+"
diff --git a/testing/ocaml-mirage-random/APKBUILD b/testing/ocaml-mirage-random/APKBUILD
new file mode 100644
index 00000000000..81207eedb38
--- /dev/null
+++ b/testing/ocaml-mirage-random/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-random
+_pkgname=mirage-random
+pkgver=3.0.0
+pkgrel=3
+pkgdesc="Random-related devices for MirageOS"
+url="https://github.com/mirage/mirage-random"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-cstruct-dev"
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-random/releases/download/v$pkgver/mirage-random-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+5d16855740e04f8efe5bcd5a7596ccffb5b927a616c5e6de4a5f5bd96e2f9f8f3b030d8b216156cac897d49a64b0f5bd7f89c30c787c3d9be63ab952c9984160 ocaml-mirage-random-3.0.0.tar.bz2
+"
diff --git a/testing/ocaml-mirage-time/APKBUILD b/testing/ocaml-mirage-time/APKBUILD
new file mode 100644
index 00000000000..2a895232083
--- /dev/null
+++ b/testing/ocaml-mirage-time/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mirage-time
+_pkgname=mirage-time
+pkgver=3.0.0
+pkgrel=4
+pkgdesc="Time operations for MirageOS"
+url="https://github.com/mirage/mirage-time"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-lwt-dev ocaml-duration-dev"
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-time/releases/download/v$pkgver/mirage-time-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+066f9271c7871eb754cf9b3f8853f4861ce80d1cc31eb9a2384f3cd62441e15aa7636d19cc3bee6d56219fa5653b9f7da7d9b9d659fd1f7cd17326e7ba1715eb ocaml-mirage-time-3.0.0.tar.bz2
+"
diff --git a/testing/ocaml-mmap/APKBUILD b/testing/ocaml-mmap/APKBUILD
new file mode 100644
index 00000000000..169af019aac
--- /dev/null
+++ b/testing/ocaml-mmap/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mmap
+_pkgname=mmap
+pkgver=1.2.0
+pkgrel=3
+pkgdesc="File mapping functionality"
+url="https://github.com/mirage/mmap"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-bigarray-compat-dev"
+makedepends="$depends_dev dune ocaml"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mirage/mmap/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+cef6c37953d62f2f7472147a03707d60401d92aaf4ddb2dbaa697ee4eee252f70d8068e8fe5c6a36e005d4cc738f61d2c5bea12d844f1e3a696fef2f6546d59c ocaml-mmap-1.2.0.tar.gz
+"
diff --git a/testing/ocaml-mqtt/APKBUILD b/testing/ocaml-mqtt/APKBUILD
new file mode 100644
index 00000000000..3d94b19b6d5
--- /dev/null
+++ b/testing/ocaml-mqtt/APKBUILD
@@ -0,0 +1,89 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mqtt
+pkgver=0.2.2
+pkgrel=0
+pkgdesc="MQTT v3 client library"
+url="https://github.com/hyper-systems/ocaml-mqtt"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-fmt-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-ocplib-endian-dev
+ ocaml-tls-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+checkdepends="
+ ocaml-alcotest-dev
+ ocaml-cohttp-dev
+ "
+subpackages="$pkgname-dev"
+source="https://github.com/hyper-systems/ocaml-mqtt/archive/refs/tags/$pkgver/ocaml-mqtt-$pkgver.tar.gz
+ tls-lwt.patch
+ "
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f2640262b929bece15b51abd3bfcd708eb495fb7371c23e30c2a69f12a1633385d8de90153ee11aaeacb71b3f782f59b3a2f1ce9d783b20c959d9ce6f2f9d96a ocaml-mqtt-0.2.2.tar.gz
+109bfa182d8ca03d2822cc05ae9534676be024b77265ec64fecee45f6ebe7685a869071cb7dcf2e615f36273d739541918fd922e4ef3f1ccb5ab928f4c3f06d6 tls-lwt.patch
+"
diff --git a/testing/ocaml-mqtt/tls-lwt.patch b/testing/ocaml-mqtt/tls-lwt.patch
new file mode 100644
index 00000000000..2b45331de20
--- /dev/null
+++ b/testing/ocaml-mqtt/tls-lwt.patch
@@ -0,0 +1,8 @@
+--- a/lib/mqtt_client/dune
++++ b/lib/mqtt_client/dune
+@@ -3,4 +3,4 @@
+ (public_name mqtt.client)
+ (preprocess
+ (pps lwt_ppx))
+- (libraries fmt lwt lwt.unix logs logs.lwt tls tls-lwt ocplib-endian))
++ (libraries fmt lwt lwt.unix logs logs.lwt tls tls.lwt ocplib-endian))
diff --git a/testing/ocaml-mtime/APKBUILD b/testing/ocaml-mtime/APKBUILD
new file mode 100644
index 00000000000..fe65f63dfe4
--- /dev/null
+++ b/testing/ocaml-mtime/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-mtime
+_pkgname=mtime
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Monotonic wall-clock time for OCaml"
+url="https://erratique.ch/software/mtime"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/mtime/releases/mtime-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+0492fa5f5187b909fe2b0550363c7dcb8cffef963d51072272ef3d876b51e1ddf8de4c4e221cffb0144658fccf6a0dc584a5c8094a4b2208156e43bad5b269d4 ocaml-mtime-1.4.0.tar.bz2
+"
diff --git a/testing/ocaml-notty/APKBUILD b/testing/ocaml-notty/APKBUILD
new file mode 100644
index 00000000000..1e588d0fb42
--- /dev/null
+++ b/testing/ocaml-notty/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-notty
+_pkgname=notty
+pkgver=0.2.3
+pkgrel=0
+pkgdesc="Declarative terminal library for OCaml"
+url="https://github.com/pqwy/notty"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-compiler-libs
+ ocaml-lwt-dev
+ ocaml-uutf-dev
+ "
+makedepends="$depends_dev dune ocaml ocaml-cppo"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.bz2::https://github.com/pqwy/notty/releases/download/v$pkgver/notty-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+6e21d44fe39f3d80884b87635bebae55cb2b931ef74f9184ba4d74cc3e51cb0b3e976c3b6dc61d377288504e8bfabe21acdc1069eacb30df1fbf6686b80f7c6b notty-0.2.3.tar.bz2
+"
diff --git a/testing/ocaml-num/APKBUILD b/testing/ocaml-num/APKBUILD
index f937494c38c..38c6f0a7fec 100644
--- a/testing/ocaml-num/APKBUILD
+++ b/testing/ocaml-num/APKBUILD
@@ -2,19 +2,23 @@
# Maintainer: alpine-mips-patches <info@mobile-stream.com>
pkgname=ocaml-num
_pkgname=num
-pkgver=1.3
-pkgrel=0
+pkgver=1.4
+pkgrel=3
pkgdesc="Arbitray-precision rational arithmetic for OCaml"
url="https://github.com/ocaml/num"
-arch="aarch64 ppc64le x86_64" # reflect ocaml aport platforms
-license="LGPL-2.1-or-later-WITH-linking-exception-AND-MIT"
-depends="ocaml-runtime"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-only WITH OCaml-LGPL-linking-exception AND MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="ocaml ocaml-compiler-libs ocaml-findlib"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/$_pkgname/archive/v$pkgver.tar.gz
- "
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+# 32bit archs
+case "$CARCH" in
+armv7|armhf|x86) options="$options textrels" ;;
+esac
+
build() {
make
}
@@ -41,14 +45,32 @@ package() {
}
dev() {
- depends="$pkgname=$pkgver-r$pkgrel"
- pkgdesc="$pkgdesc (development files)"
-
- local _numdir="usr/lib/ocaml/$_pkgname"
- mkdir -p "$subpkgdir/$_numdir"
- for p in '*.a' '*.cmx' '*.cmxa' '*.mli'; do
- mv "$pkgdir/$_numdir/"$p "$subpkgdir/$_numdir"
- done
+ default_dev
+
+ amove usr/lib/ocaml/$_pkgname/*.mli
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="c88310f8c45700990095e6b2e9abf24c27347711b9abfd1dde75e540fbbfc6a365e6713bd69f66009af305728fcb36dc61eb37fdd0be7d73824b0e92fbe8c031 ocaml-num-1.3.tar.gz"
+sha512sums="
+0cc9be8ad95704bb683b4bf6698bada1ee9a40dc05924b72adc7b969685c33eeb68ccf174cc09f6a228c48c18fe94af06f28bebc086a24973a066da620db8e6f ocaml-num-1.4.tar.gz
+"
diff --git a/testing/ocaml-obuild/APKBUILD b/testing/ocaml-obuild/APKBUILD
index 5a7004b8a21..2de2c398b31 100644
--- a/testing/ocaml-obuild/APKBUILD
+++ b/testing/ocaml-obuild/APKBUILD
@@ -2,17 +2,21 @@
# Maintainer: Andy Li <andy@onthewings.net>
pkgname=ocaml-obuild
_pkgname=obuild
-pkgver=0.1.10
+pkgver=0.1.11
pkgrel=0
pkgdesc="Simple package build system for ocaml"
url="https://github.com/ocaml-obuild/obuild"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
+arch="all !riscv64 !loongarch64" # ocaml
license="BSD-2-Clause"
-depends="ocaml-runtime"
-makedepends="ocaml ocaml-findlib opam"
+makedepends="bash ocaml ocaml-findlib cmd:opam-installer"
options="!check" # no tests provided
-source="$pkgname-$pkgver.tar.gz::$url/archive/obuild-v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-obuild-v$pkgver"
+source="https://github.com/ocaml-obuild/obuild/archive/obuild-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$_pkgname-v$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
./bootstrap
@@ -20,11 +24,32 @@ build() {
package() {
opam-installer -i \
- --prefix="$pkgdir/usr" \
- --libdir="$pkgdir/usr/lib/ocaml" \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir"/usr/lib/ocaml \
$_pkgname.install
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
- rm -rf "$builddir/dist"
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="23667213ec7de6610fd5b3c7e0c5f98c081d0244619ed0c833ad13647b9a40561f21e862574488454993eab84a8467f4b2caa3288293451bb54f08b92d280175 ocaml-obuild-0.1.10.tar.gz"
+sha512sums="
+855f47e31bebacb2adcd0ed31e9d50f1f4803f91828afc192d306dc2cc28adc18dd91d0bf40f8ef814ac85822a20db16dce87a0bd6edf0ff9037b8dc039abff3 obuild-v0.1.11.tar.gz
+"
diff --git a/testing/ocaml-ocf/APKBUILD b/testing/ocaml-ocf/APKBUILD
new file mode 100644
index 00000000000..4e3c574b8ca
--- /dev/null
+++ b/testing/ocaml-ocf/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ocf
+_pkgname=ocf
+pkgver=0.8.0
+pkgrel=3
+pkgdesc="OCaml library to read and write configuration files in JSON syntax"
+url="https://zoggy.frama.io/ocf/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ppxlib-dev
+ ocaml-yojson-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://framagit.org/zoggy/ocf/-/archive/$pkgver/ocf-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+b9b1ce82ff370222b74429b28748c99b5b78c657e8c8b273d404ba9c17df2cd48274aad4d16b4748ecdbd1402cb8fad4136122cdf617b8ca1d6256a09efe2161 ocaml-ocf-0.8.0.tar.gz
+"
diff --git a/testing/ocaml-ocplib-endian/APKBUILD b/testing/ocaml-ocplib-endian/APKBUILD
new file mode 100644
index 00000000000..ed95e33dd13
--- /dev/null
+++ b/testing/ocaml-ocplib-endian/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ocplib-endian
+_pkgname=ocplib-endian
+pkgver=1.2
+pkgrel=3
+pkgdesc="Optimised functions to read and write int16/32/64 from strings and bigarrays"
+url="https://github.com/OCamlPro/ocplib-endian"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="$depends_dev dune ocaml ocaml-cppo"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OCamlPro/ocplib-endian/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+2e70be5f3d6e377485c60664a0e235c3b9b24a8d6b6a03895d092c6e40d53810bfe1f292ee69e5181ce6daa8a582bfe3d59f3af889f417134f658812be5b8b85 ocaml-ocplib-endian-1.2.tar.gz
+"
diff --git a/testing/ocaml-omake/APKBUILD b/testing/ocaml-omake/APKBUILD
new file mode 100644
index 00000000000..72dad33b4f3
--- /dev/null
+++ b/testing/ocaml-omake/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-omake
+_pkgname=omake
+pkgver=0.10.6
+pkgrel=0
+pkgdesc="Build system designed for scalability and portability"
+url="http://projects.camlcity.org/projects/omake.html"
+arch="all !riscv64 !loongarch64" # ocaml
+license="GPL-2.0-only"
+makedepends="ocaml ocaml-findlib"
+options="!check"
+subpackages="$pkgname-doc"
+source="http://download.camlcity.org/download/omake-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+build() {
+ ./configure -prefix /usr
+ make
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ mkdir -vp "$pkgdir"/usr/share/
+ mv -v "$pkgdir"/usr/man "$pkgdir"/usr/share/
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+e27e6a580b1b4c04c6ae9021d529ab5d9196932e6fd1f441038d1e31e22e2fd817572eca475818a8a9cfb9f9f2487fef57b88ec41c9f0b81a5b42a6954e90a2d omake-0.10.6.tar.gz
+"
diff --git a/testing/ocaml-omod/APKBUILD b/testing/ocaml-omod/APKBUILD
new file mode 100644
index 00000000000..01f6b2d1071
--- /dev/null
+++ b/testing/ocaml-omod/APKBUILD
@@ -0,0 +1,94 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-omod
+_pkgname=omod
+pkgver=0.0.3
+pkgrel=3
+pkgdesc="Lookup and load installed OCaml modules"
+url="https://erratique.ch/software/omod"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends="$pkgname-bin"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ ocaml-cmdliner-dev
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-bin $pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/omod/releases/omod-$pkgver.tbz
+ fix-cache-dir.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --lib-dir "$(ocamlc -where)"
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+bin() {
+ pkgdesc="$pkgdesc (standalone binary)"
+ depends="cmd:ocamlc"
+ amove usr/bin/omod
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+4f53b8cdd054dc1a6813427452a91294e0bbcfefe948fc1caec47be136dbcecf13112bf2b620fa2f667592b04b28df74e3bf012ea0fb0038c1da4217155ca626 ocaml-omod-0.0.3.tar.bz2
+a53e77bc22f6b8a45b664973c648234155c5b3e1cd3526ac0713e91cf6d40bede7e8f084684203c027495c70d7ccf8ebf678a4cbe13e61f22eaa5444a2a1987d fix-cache-dir.patch
+"
diff --git a/testing/ocaml-omod/fix-cache-dir.patch b/testing/ocaml-omod/fix-cache-dir.patch
new file mode 100644
index 00000000000..08e3ca36480
--- /dev/null
+++ b/testing/ocaml-omod/fix-cache-dir.patch
@@ -0,0 +1,13 @@
+The default of "/usr/var/cache/omod" won't be writable by normal users
+
+--- a/src/omod_support.ml
++++ b/src/omod_support.ml
+@@ -680,7 +680,7 @@
+ let get_cache cache = match cache with
+ | Some l -> l | None ->
+ match get_env cache_env with
+- | Some l -> l | None -> in_prefix_path ("var" / "cache" / "omod")
++ | Some l -> l | None -> (let tmp = Filename.get_temp_dir_name () in try tmp / ".omod-cache-" ^ Unix.getlogin () with _ -> tmp / ".omod-cache")
+
+ type t = { cache : Omod.fpath; libdir : Omod.fpath }
+
diff --git a/testing/ocaml-otoml/APKBUILD b/testing/ocaml-otoml/APKBUILD
new file mode 100644
index 00000000000..ae9a2f974d5
--- /dev/null
+++ b/testing/ocaml-otoml/APKBUILD
@@ -0,0 +1,83 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-otoml
+pkgver=1.0.5
+pkgrel=0
+_pkgreal=otoml
+pkgdesc="TOML parsing, manipulation, and pretty-printing library"
+url="https://github.com/dmbaturin/otoml"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-menhir-dev
+ ocaml-uutf-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ ocaml-menhir
+ "
+checkdepends="ocaml-ounit-dev"
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.gz::https://github.com/dmbaturin/otoml/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+a287bf40ec7bc1458fa74bf88cd30c2f93e0092f962858fa70acdb0e01978cd187cb1135aef66a5b5775cce31353901516ecdb6822a4c29a0a99f077f30a2149 otoml-1.0.5.tar.gz
+"
diff --git a/testing/ocaml-otr/APKBUILD b/testing/ocaml-otr/APKBUILD
new file mode 100644
index 00000000000..7f44cd86157
--- /dev/null
+++ b/testing/ocaml-otr/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-otr
+_pkgname=otr
+pkgver=0.3.10
+pkgrel=2
+pkgdesc="Off the record implementation purely in OCaml"
+url="https://github.com/hannesm/ocaml-otr"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-astring-dev
+ ocaml-base64-dev
+ ocaml-cstruct-dev
+ ocaml-mirage-crypto-dev
+ ocaml-sexplib0-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/hannesm/ocaml-otr/releases/download/v$pkgver/otr-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+24eee63e54c29e27d90718fe764178d5ee8b9fa599c7ca25b042e57b2442501089c51f11656315949f60e0362f86f743597c74dd968c4d3472e18c4def5179ba ocaml-otr-0.3.10.tar.bz2
+"
diff --git a/testing/ocaml-ounit/APKBUILD b/testing/ocaml-ounit/APKBUILD
new file mode 100644
index 00000000000..dcc971f3712
--- /dev/null
+++ b/testing/ocaml-ounit/APKBUILD
@@ -0,0 +1,89 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=ocaml-ounit
+_pkgname=ounit
+pkgver=2.2.7
+pkgrel=3
+pkgdesc="A unit test framework for OCaml"
+url="https://github.com/gildor478/ounit"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-lwt-dev
+ ocaml-seq-dev
+ ocaml-stdlib-shims
+ "
+makedepends="$depends_dev dune ocaml ocaml-findlib"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gildor478/ounit/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build -p ounit,ounit2 --verbose
+}
+
+check() {
+ dune runtest -p ounit,ounit2 --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ ounit ounit2
+ rm -Rf "$pkgdir"/.omit
+
+ # Install oUnit transition package
+ export OCAMLFIND_DESTDIR="$pkgdir/$_ocamldir"
+ export OCAMLFIND_LDCONF=ignore
+ mkdir -vp "$OCAMLFIND_DESTDIR"
+ make install-ounit version=$pkgver
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+b2cefed53127f724c099391eefe1bce3b43cad5d6b629b5f1e9446b58892639de758f5dbcbd5efb6c409ce77ed01d06693989a3ba909cf79c36c2554c1473396 ocaml-ounit-2.2.7.tar.gz
+"
diff --git a/testing/ocaml-parsexp/APKBUILD b/testing/ocaml-parsexp/APKBUILD
new file mode 100644
index 00000000000..f303215ff73
--- /dev/null
+++ b/testing/ocaml-parsexp/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-parsexp
+_pkgname=parsexp
+pkgver=0.16.0
+pkgrel=0
+pkgdesc="S-expression parsing library"
+url="https://github.com/janestreet/parsexp"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-sexplib0-dev"
+subpackages="$pkgname-dev"
+source="https://ocaml.janestreet.com/ocaml-core/v${pkgver%.*}/files/parsexp-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3308c7cda8a410d1d31b0abbebb549317fd4749fa6da65742576ac5563a8a92a4f2a3c97379546eaf1a1d0e5c71493d5a98a6b033431c48fccd09375d4d939fb parsexp-v0.16.0.tar.gz
+"
diff --git a/testing/ocaml-pbkdf/APKBUILD b/testing/ocaml-pbkdf/APKBUILD
new file mode 100644
index 00000000000..fe9445379d7
--- /dev/null
+++ b/testing/ocaml-pbkdf/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-pbkdf
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Password based key derivation functions (PBKDF) from PKCS#5"
+url="https://github.com/abeaumont/ocaml-pbkdf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-mirage-crypto-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/abeaumont/ocaml-pbkdf/archive/$pkgver.tar.gz"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d6f7d5efd761b87dd420ddcf97c2f9d4402dcc81d65cd1f4d81039b70c4d8c1e803bbaf4251482de8de7076da9f40b48c7eb1684e31e7a316deb5036c192bd3c ocaml-pbkdf-1.2.0.tar.gz
+"
diff --git a/testing/ocaml-pcre/APKBUILD b/testing/ocaml-pcre/APKBUILD
new file mode 100644
index 00000000000..c99134c1c23
--- /dev/null
+++ b/testing/ocaml-pcre/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-pcre
+_pkgname=pcre
+pkgver=7.5.0
+pkgrel=4
+pkgdesc="OCaml bindings to the Perl Compatibility Regular Expressions (PCRE) library"
+url="https://mmottl.github.io/pcre-ocaml"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel pcre-dev"
+makedepends="$depends_dev dune dune-configurator ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mmottl/pcre-ocaml/releases/download/$pkgver/pcre-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+be60f13ddb6bbfe20e30ca5d92434d85e1d1371479e1e2c725588af83fcc9366ed0435021b6a800c20336ac521f2134c767420136438684656a44ac1f9924be4 ocaml-pcre-7.5.0.tar.bz2
+"
diff --git a/testing/ocaml-ppx_blob/APKBUILD b/testing/ocaml-ppx_blob/APKBUILD
new file mode 100644
index 00000000000..4b1fe1c1428
--- /dev/null
+++ b/testing/ocaml-ppx_blob/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ppx_blob
+pkgver=0.8.0
+pkgrel=0
+_pkgreal=ppx_blob
+pkgdesc="Include a file as a string at compile time"
+url="https://github.com/johnwhitington/ppx_blob"
+arch="all !riscv64 !loongarch64" # ocaml
+license="Unlicense"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ppxlib-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+checkdepends="ocaml-alcotest-dev"
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://github.com/johnwhitington/ppx_blob/releases/download/$pkgver/ppx_blob-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+bcbd58f7b0505063eaf4799792696f633a11ee734ce57d75b8f24b53d05fafbda8330bbf577a1d7a6149bb936b535216ae83574c1d40a61434e8d3bc6b6fd973 ppx_blob-0.8.0.tar.bz2
+"
diff --git a/testing/ocaml-ppx_derivers/APKBUILD b/testing/ocaml-ppx_derivers/APKBUILD
new file mode 100644
index 00000000000..0183b0cfea4
--- /dev/null
+++ b/testing/ocaml-ppx_derivers/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ppx_derivers
+_pkgname=ppx_derivers
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="Shared [@@deriving] plugins registry"
+url="https://github.com/ocaml-ppx/ppx_derivers"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-findlib"
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml-ppx/ppx_derivers/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+ef0796fe2592e653d34ba01d206d4b507429882a2aaadcb89c7f807c33a417f2871b0c94ade5c92aefd9487daa582e19d88ad5a5eaa631e8162ae12f4a0756c6 ocaml-ppx_derivers-1.2.1.tar.gz
+"
diff --git a/testing/ocaml-ppx_deriving/APKBUILD b/testing/ocaml-ppx_deriving/APKBUILD
new file mode 100644
index 00000000000..cf82ad49131
--- /dev/null
+++ b/testing/ocaml-ppx_deriving/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ppx_deriving
+_pkgname=ppx_deriving
+pkgver=5.3.0
+pkgrel=0
+pkgdesc="Type-driven code generation for OCaml"
+url="https://github.com/ocaml-ppx/ppx_deriving"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-ppxlib-dev ocaml-result-dev"
+makedepends="$depends_dev dune ocaml ocaml-cppo ocaml-findlib-dev"
+checkdepends="ocaml-ounit-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.bz2::https://github.com/ocaml-ppx/ppx_deriving/releases/download/$pkgver/ppx_deriving-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+9bed9b00accf9a385f1f60ac4099bcab3c9a06a09b5cb11ecc378f7abde72caa53ed1ed7b92dd9c4479888b0f0af03f33f42126644c85a1b33c5665ec3c8ba9b ppx_deriving-5.3.0.tar.bz2
+"
diff --git a/testing/ocaml-ppx_sexp_conv/APKBUILD b/testing/ocaml-ppx_sexp_conv/APKBUILD
new file mode 100644
index 00000000000..4b94b427778
--- /dev/null
+++ b/testing/ocaml-ppx_sexp_conv/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ppx_sexp_conv
+_pkgname=ppx_sexp_conv
+pkgver=0.16.0
+pkgrel=0
+pkgdesc="[@@deriving] plugin to generate S-expression conversion functions"
+url="https://github.com/janestreet/ppx_sexp_conv"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-base-dev
+ ocaml-ppxlib-dev
+ ocaml-sexplib0-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="https://ocaml.janestreet.com/ocaml-core/v${pkgver%.*}/files/ppx_sexp_conv-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+898549b8fdac328bf4583b3ee744b7fed59bb22ebcf9d5afe4268985c60f5d7b04881a7e77fc2940776afb21669e96411a244b5e4902af737c673f0cce63bb55 ppx_sexp_conv-v0.16.0.tar.gz
+"
diff --git a/testing/ocaml-ppxlib/APKBUILD b/testing/ocaml-ppxlib/APKBUILD
new file mode 100644
index 00000000000..3a9c8c89ed7
--- /dev/null
+++ b/testing/ocaml-ppxlib/APKBUILD
@@ -0,0 +1,91 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ppxlib
+_pkgname=ppxlib
+pkgver=0.32.0
+pkgrel=0
+pkgdesc="Standard library for ppx rewriters"
+url="https://github.com/ocaml-ppx/ppxlib"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-compiler-libs-repackaged-dev
+ ocaml-ppx_derivers-dev
+ ocaml-sexplib0-dev
+ ocaml-stdlib-shims
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="
+ ocaml-base-dev
+ ocaml-cinaps-dev
+ ocaml-findlib
+ ocaml-re-dev
+ ocaml-stdio-dev
+ "
+options="!check"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.bz2::https://github.com/ocaml-ppx/ppxlib/releases/download/$pkgver/ppxlib-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+73fef8ab8761bfbfde6ae87cc51eaacc5a5c937f0d628a890f0abdb2bffbf073932c25287a9e3baa2a1947c37f3dfa7f83ddd33c440e2e800971015addc97cd2 ppxlib-0.32.0.tar.bz2
+"
diff --git a/testing/ocaml-psq/APKBUILD b/testing/ocaml-psq/APKBUILD
new file mode 100644
index 00000000000..5a6b0aaa443
--- /dev/null
+++ b/testing/ocaml-psq/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-psq
+_pkgname=psq
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="Functional Priority Search Queues"
+url="https://github.com/pqwy/psq"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-seq-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-qcheck-alcotest-dev ocaml-qcheck-core-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/pqwy/psq/releases/download/v$pkgver/psq-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+0c570c5fc2bb2348b1ec03507abb4f152673a5d8f92c388c4cd5b7fc43a6e8f514007dbf4fb613503c4e8d5c8d3210b24ac37c546c79d94ebdf6b482e5cde024 ocaml-psq-0.2.0.tar.bz2
+"
diff --git a/testing/ocaml-ptime/APKBUILD b/testing/ocaml-ptime/APKBUILD
new file mode 100644
index 00000000000..065b9342d6b
--- /dev/null
+++ b/testing/ocaml-ptime/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ptime
+_pkgname=ptime
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="POSIX time for OCaml"
+url="https://erratique.ch/software/ptime"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/ptime/releases/ptime-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+df2410d9cc25a33083fe968a584b8fb4d68ad5c077f3356da0a20427e6cd8756a5b946b921e5cf8ed4097f2c506e93345d9dca63b113be644d5a7cc0753d1534 ocaml-ptime-1.0.0.tar.bz2
+"
diff --git a/testing/ocaml-ptmap/APKBUILD b/testing/ocaml-ptmap/APKBUILD
index 688224e5106..f99d3ec1cc3 100644
--- a/testing/ocaml-ptmap/APKBUILD
+++ b/testing/ocaml-ptmap/APKBUILD
@@ -2,43 +2,85 @@
# Maintainer: Andy Li <andy@onthewings.net>
pkgname=ocaml-ptmap
_pkgname=ptmap
-pkgver=2.0.4
-pkgrel=0
+pkgver=2.0.5
+pkgrel=3
pkgdesc="Maps over integers implemented as Patricia trees"
url="https://github.com/backtracking/ptmap"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
-license="LGPL-2.1-or-later WITH OCaml-linking-exception"
-depends="ocaml-runtime"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
depends_dev="$pkgname=$pkgver-r$pkgrel"
-makedepends="ocaml ocaml-findlib ocaml-obuild ocaml-qtest ocaml-qcheck-dev ocaml-ounit-dev"
+makedepends="
+ dune
+ ocaml
+ ocaml-findlib
+ ocaml-stdlib-shims
+ ocaml-seq-dev
+ "
subpackages="$pkgname-dev"
-options="!check" # no tests provided
-source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/backtracking/ptmap/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
build() {
- obuild configure
- obuild build
- obuild build lib-ptmap
+ export OCAMLPATH=/usr/lib/ocaml
+ make all
+}
+
+check() {
+ make test
}
package() {
- obuild install --destdir "$pkgdir/usr/lib/ocaml"
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
- # Remove annotation files and sources.
- rm \
- "$pkgdir"/usr/lib/ocaml/ptmap/*.cmt \
- "$pkgdir"/usr/lib/ocaml/ptmap/*.cmti
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
}
dev() {
default_dev
- mkdir -p "$subpkgdir"/usr/lib/ocaml/ptmap
- mv \
- "$pkgdir"/usr/lib/ocaml/ptmap/*.cmx \
- "$pkgdir"/usr/lib/ocaml/ptmap/*.cmxa \
- "$subpkgdir"/usr/lib/ocaml/ptmap/
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="3f11664f926244a212e2d782d338982826e608463eec22e91cd77350836cbab9d4aed7542fa9c5f3c1df572552a3797a149618ad370d1b47b4e03cf497100356 ocaml-ptmap-2.0.4.tar.gz"
+sha512sums="
+6815ee977cb9a4c5088af8dfb7d8055c8d35870ceb4e95f658fbdc50405495bea75a8755442dc6f7345d2e9021c3b96d14883603759baf267feced9cd5ba5202 ocaml-ptmap-2.0.5.tar.gz
+"
diff --git a/testing/ocaml-qcheck/APKBUILD b/testing/ocaml-qcheck/APKBUILD
index 0d1b68b454d..38ed0d5627c 100644
--- a/testing/ocaml-qcheck/APKBUILD
+++ b/testing/ocaml-qcheck/APKBUILD
@@ -2,21 +2,29 @@
# Maintainer: Andy Li <andy@onthewings.net>
pkgname=ocaml-qcheck
_pkgname=qcheck
-pkgver=0.12
-pkgrel=1
+pkgver=0.18.1
+pkgrel=3
pkgdesc="QuickCheck inspired property-based testing for OCaml"
url="https://github.com/c-cube/qcheck"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
+arch="all !riscv64 !loongarch64" # ocaml
license="BSD-2-Clause"
-depends="ocaml-runtime"
depends_dev="$pkgname=$pkgver-r$pkgrel"
-makedepends="dune ocaml ocaml-findlib ocaml-ounit-dev"
+makedepends="dune ocaml ocaml-findlib ocaml-ounit-dev ocaml-seq-dev ocaml-stdlib-shims"
+options="!check" # requires alcotest
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::$url/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/c-cube/qcheck/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
build() {
- dune build @install -p qcheck,qcheck-core,qcheck-ounit -j1 --no-buffer --verbose
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install \
+ -p qcheck,qcheck-core,qcheck-ounit \
+ --no-buffer --verbose
}
check() {
@@ -24,21 +32,14 @@ check() {
}
package() {
- mkdir -p "$pkgdir"/usr/lib/ocaml
dune install \
--destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
qcheck qcheck-core qcheck-ounit
# There's just a readme and changelog.
rm -Rf "$pkgdir"/usr/doc
-
- # Remove annotation files and sources.
- local path; for path in $(find "$pkgdir"/usr/lib/ocaml \
- -name '*.cmt' \
- -o -name '*.ml')
- do
- rm "$path"
- done
}
dev() {
@@ -46,14 +47,38 @@ dev() {
cd "$pkgdir"
- local path; for path in $(find usr/lib/ocaml \
- -name '*.cmx' \
- -o -name '*.cmxa' \
- -o -name '*.mli')
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
do
- mkdir -p "${path%/*}"
- mv "$path" "$subpkgdir"/${path%/*}/
+ amove "$path"
done
}
-sha512sums="a8b844d66b65fdc8cd1cb2ff1a84801815501559dccac5e4188593f5b294ca318f7de971987ce810b6f7840a292999a98ea8beb1e2c989ee3abd78314fca3ad3 ocaml-qcheck-0.12.tar.gz"
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+6fd5fd4348ed6a48a8f64a466fedd07374eaf23d516b3c250ebad2a32ddbca3ae4ad9c84fe1112858075df46c119cd6550205a4228a553b014d135581f024ded ocaml-qcheck-0.18.1.tar.gz
+"
diff --git a/testing/ocaml-qtest/APKBUILD b/testing/ocaml-qtest/APKBUILD
index dde91a61609..788f4022353 100644
--- a/testing/ocaml-qtest/APKBUILD
+++ b/testing/ocaml-qtest/APKBUILD
@@ -2,21 +2,26 @@
# Maintainer: Andy Li <andy@onthewings.net>
pkgname=ocaml-qtest
_pkgname=qtest
-pkgver=2.10.1
-pkgrel=0
+pkgver=2.11.2
+pkgrel=3
pkgdesc="Lightweight inline test extraction from comments"
url="https://github.com/vincent-hugot/qtest"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
+arch="all !riscv64 !loongarch64" # ocaml
license="GPL-3.0-or-later"
-depends="ocaml-runtime ocaml-qcheck"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="dune ocaml ocaml-findlib ocaml-qcheck-dev ocaml-ounit-dev"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/vincent-hugot/qtest/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
build() {
- dune build @install -p qtest -j1 --no-buffer --verbose
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install --no-buffer --verbose
}
check() {
@@ -24,19 +29,13 @@ check() {
}
package() {
- mkdir -p "$pkgdir"/usr/lib/ocaml
- dune install --destdir="$pkgdir"
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
# There's just a README and LICENSE.
rm -Rf "$pkgdir"/usr/doc
-
- # Remove annotation files and sources.
- find "$pkgdir"/usr/lib/ocaml \
- \( \
- -name '*.cmt' \
- -o -name '*.ml' \
- \) \
- -exec rm "{}" \;
}
dev() {
@@ -44,13 +43,38 @@ dev() {
cd "$pkgdir"
- find usr/lib/ocaml \
- \( \
- -name '*.cmx' \
- -o -name '*.cmxa' \
- -o -name '*.mli' \
- \) \
- -exec sh -c 'mkdir -p "$(dirname $1)" && mv "$1" "$subpkgdir/$(dirname $1)/"' _ {} \;
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="838ff1951b8da35f0551b1db4d36a03ad803a57ba8b85816a51e6b1bc2ad7778299a7fd026a062437252b40c0de1c83b6171605b19f01e3874274b2676341bf0 ocaml-qtest-2.10.1.tar.gz"
+sha512sums="
+3edb8471b29c9eb2f6ba11b157abf7ca43ef965d4b1500aaaf1acaeb261972a61c9b104887ada6ca63dc85e06b1d27e34f391885b2fbeb7ea5646323d3be08d0 ocaml-qtest-2.11.2.tar.gz
+"
diff --git a/testing/ocaml-randomconv/APKBUILD b/testing/ocaml-randomconv/APKBUILD
new file mode 100644
index 00000000000..caa5187691a
--- /dev/null
+++ b/testing/ocaml-randomconv/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-randomconv
+_pkgname=randomconv
+pkgver=0.1.3
+pkgrel=2
+pkgdesc="Convert from random byte vectors (Cstruct.t) to random native numbers"
+url="https://github.com/hannesm/randomconv"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-cstruct-dev"
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/hannesm/randomconv/releases/download/v$pkgver/randomconv-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f5186f7669a6b1b943442fdcfcdb37cf6c8199a1c644ed815f351f50428b9b7e1e5408ff4a0fcdfb093451b5237e48602af60f87a1b93e49897576c8aa2cd23f ocaml-randomconv-0.1.3.tar.bz2
+"
diff --git a/testing/ocaml-re/APKBUILD b/testing/ocaml-re/APKBUILD
new file mode 100644
index 00000000000..f055d15b97e
--- /dev/null
+++ b/testing/ocaml-re/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-re
+_pkgname=re
+pkgver=1.11.0
+pkgrel=1
+pkgdesc="Pure OCaml regular expressions, with support for Perl and POSIX-style strings"
+url="https://github.com/ocaml/ocaml-re"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-seq-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-ounit-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/ocaml/ocaml-re/releases/download/$pkgver/re-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3e3712cc1266ec1f27620f3508ea2ebba338f4083b07d8a69dccee1facfdc1971a6c39f9deea664d2a62fd7f2cfd2eae816ca4c274acfadaee992a3befc4b757 ocaml-re-1.11.0.tar.bz2
+"
diff --git a/testing/ocaml-react/APKBUILD b/testing/ocaml-react/APKBUILD
new file mode 100644
index 00000000000..add2fc698c1
--- /dev/null
+++ b/testing/ocaml-react/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-react
+_pkgname=react
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="OCaml framework for Functional Reactive Programming (FRP)"
+url="https://erratique.ch/software/react"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ncurses
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ ocamlbuild
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/react/releases/react-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build --tests true --dev-pkg true
+}
+
+check() {
+ ocaml pkg/pkg.ml test
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$(ocamlc -where)" \
+ $_pkgname.install
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+18cdd544d484222ba02db6bd9351571516532e7a1c107b59bbe39193837298f5c745eab6754f8bc6ff125b387be7018c6d6e6ac99f91925a5e4f53af688522b1 ocaml-react-1.2.2.tar.bz2
+"
diff --git a/testing/ocaml-result/APKBUILD b/testing/ocaml-result/APKBUILD
new file mode 100644
index 00000000000..198c23063e5
--- /dev/null
+++ b/testing/ocaml-result/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-result
+_pkgname=result
+pkgver=1.5
+pkgrel=2
+pkgdesc="Compatibility Result module"
+url="https://github.com/janestreet/result"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-findlib"
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/janestreet/result/releases/download/$pkgver/result-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # Contains just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+4dfabc121fd69b3e0fe742f4da483830104d8fedf5ad3d83b4fb3efa2d544cb05eadc8719960b24bdf5760bff3434c5225f280339d70af9fb2842f3efe1bb87b ocaml-result-1.5.tar.bz2
+"
diff --git a/testing/ocaml-rresult/APKBUILD b/testing/ocaml-rresult/APKBUILD
new file mode 100644
index 00000000000..602510a5e2e
--- /dev/null
+++ b/testing/ocaml-rresult/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-rresult
+_pkgname=rresult
+pkgver=0.7.0
+pkgrel=2
+pkgdesc="Result value combinators for OCaml"
+url="https://erratique.ch/software/rresult"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/rresult/releases/rresult-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f1bb631c986996388e9686d49d5ae4d8aaf14034f6865c62a88fb58c48ce19ad2eb785327d69ca27c032f835984e0bd2efd969b415438628a31f3e84ec4551d3 ocaml-rresult-0.7.0.tar.bz2
+"
diff --git a/testing/ocaml-sedlex/APKBUILD b/testing/ocaml-sedlex/APKBUILD
new file mode 100644
index 00000000000..04d60305023
--- /dev/null
+++ b/testing/ocaml-sedlex/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-sedlex
+_pkgname=sedlex
+pkgver=3.2
+pkgrel=0
+pkgdesc="An OCaml lexer generator for Unicode"
+url="https://github.com/ocaml-community/sedlex"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-gen-dev ocaml-ppxlib-dev"
+makedepends="$depends_dev dune ocaml"
+checkdepends="cmd:curl"
+options="!check"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/ocaml-community/sedlex/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+00e257d1b97e99d49028d2e38b20a05c6aa151c362991c37c17522bf58c19e273b762ea39dd9783ed9ecc60d11dadeabb0487e16b4af91536e45e7e18c86cfe9 sedlex-3.2.tar.gz
+"
diff --git a/testing/ocaml-seq/APKBUILD b/testing/ocaml-seq/APKBUILD
new file mode 100644
index 00000000000..a500cad0f0d
--- /dev/null
+++ b/testing/ocaml-seq/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-seq
+_pkgname=seq
+pkgver=0.3.1
+pkgrel=2
+pkgdesc="Compatibility package for the standard OCaml iterator type"
+url="https://github.com/c-cube/seq"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-only"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml ocaml-findlib"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/c-cube/seq/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+06ce767d3ec1532f8a2421d033f4d9dc5c08c9a27574754d456c31a71ecb9a3c33857591b7d24f85492dce679cd0da8c8985c9fb1a5b5a7f8588d90056b663b8 ocaml-seq-0.3.1.tar.gz
+"
diff --git a/testing/ocaml-sexplib/APKBUILD b/testing/ocaml-sexplib/APKBUILD
new file mode 100644
index 00000000000..75e9434a8e5
--- /dev/null
+++ b/testing/ocaml-sexplib/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-sexplib
+_pkgname=sexplib
+pkgver=0.16.0
+pkgrel=0
+pkgdesc="Library for serializing OCaml values to and from S-expressions"
+url="https://github.com/janestreet/sexplib"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-num-dev
+ ocaml-parsexp-dev
+ ocaml-sexplib0-dev
+ "
+makedepends="$depends_dev dune ocaml"
+subpackages="$pkgname-dev"
+source="https://ocaml.janestreet.com/ocaml-core/v${pkgver%.*}/files/sexplib-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d361795cdc24848658aa9245fbb7a78e768849158bbbd4304e6c117f5c15b139f66a714d2eb9cbc3c16bac48dbf36357bd69641300fb7124b8a1614ce34e3a08 sexplib-v0.16.0.tar.gz
+"
diff --git a/testing/ocaml-sexplib0/APKBUILD b/testing/ocaml-sexplib0/APKBUILD
new file mode 100644
index 00000000000..e14a9650f8c
--- /dev/null
+++ b/testing/ocaml-sexplib0/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-sexplib0
+_pkgname=sexplib0
+pkgver=0.16.0
+pkgrel=0
+pkgdesc="Library containing the definition of S-expressions and some base converters"
+url="https://github.com/janestreet/sexplib0"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+subpackages="$pkgname-dev"
+source="https://ocaml.janestreet.com/ocaml-core/v${pkgver%.*}/files/sexplib0-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build -p sexplib0 @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+397c7a9cc5bd9f8a90948a94c576f757b7bb6033900b8f134f61dce8344556c4825b8408925e3686b577e67758f5de55b07181f73cbb52b12e2eacfb6c8b6259 sexplib0-v0.16.0.tar.gz
+"
diff --git a/testing/ocaml-sha/APKBUILD b/testing/ocaml-sha/APKBUILD
index 74b190b35a2..55e80867211 100644
--- a/testing/ocaml-sha/APKBUILD
+++ b/testing/ocaml-sha/APKBUILD
@@ -1,49 +1,80 @@
# Contributor: Andy Li <andy@onthewings.net>
# Maintainer: Andy Li <andy@onthewings.net>
pkgname=ocaml-sha
-pkgver=1.12
+_pkgname=sha
+pkgver=1.15.4
pkgrel=0
pkgdesc="Binding to the SHA cryptographic functions"
url="https://github.com/djs55/ocaml-sha"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
+arch="all !riscv64 !loongarch64" # ocaml
license="ISC"
-depends="ocaml-runtime"
depends_dev="$pkgname=$pkgver-r$pkgrel"
-makedepends="dune ocaml ocaml-findlib ocaml-ounit-dev"
+makedepends="dune ocaml ocaml-findlib ocaml-ounit-dev ocaml-stdlib-shims ocaml-seq-dev"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/djs55/ocaml-sha/releases/download/v$pkgver/sha-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- dune build @install -p sha --no-buffer --verbose
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install --no-buffer --verbose
}
check() {
- dune runtest --verbose
+ dune runtest --build-dir=.testenv --verbose
}
package() {
- mkdir -p "$pkgdir"/usr/lib/ocaml
- dune install --destdir="$pkgdir"
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
# There are just CHANGES, README, and LICENSE.
rm -Rf "$pkgdir"/usr/doc
-
- # Remove annotation files and sources.
- rm \
- "$pkgdir"/usr/lib/ocaml/sha/*.cmt \
- "$pkgdir"/usr/lib/ocaml/sha/*.cmti \
- "$pkgdir"/usr/lib/ocaml/sha/*.ml
}
dev() {
default_dev
- mkdir -p "$subpkgdir"/usr/lib/ocaml/sha
- mv \
- "$pkgdir"/usr/lib/ocaml/sha/*.cmx \
- "$pkgdir"/usr/lib/ocaml/sha/*.cmxa \
- "$pkgdir"/usr/lib/ocaml/sha/*.mli \
- "$subpkgdir"/usr/lib/ocaml/sha/
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="e6cdbc66202281a72ccc3592d6efba0448fe28dba7a23f8079d3a3cee12c03d01338191da88e4e4834f5ee19321ffed1c950e7a5babc73479221d8da3fe372d3 ocaml-sha-1.12.tar.gz"
+sha512sums="
+dbb31b523ba0bace023bc1b0558a8f572a0ec20fb3f19f783935be755cd161e09aba352eda2bcf7c4e5ab838c7f874cfbfaed9debf0813df25d9dbe7b9314fdf ocaml-sha-1.15.4.tar.bz2
+"
diff --git a/testing/ocaml-ssl/APKBUILD b/testing/ocaml-ssl/APKBUILD
new file mode 100644
index 00000000000..27990edc20b
--- /dev/null
+++ b/testing/ocaml-ssl/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-ssl
+pkgver=0.7.0
+pkgrel=0
+pkgdesc="Bindings for OpenSSL"
+url="https://github.com/savonet/ocaml-ssl"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ openssl-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ dune-configurator
+ ocaml
+ "
+checkdepends="ocaml-alcotest-dev"
+subpackages="$pkgname-dev"
+source="https://github.com/savonet/ocaml-ssl/archive/refs/tags/v$pkgver/ocaml-ssl-$pkgver.tar.gz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ # ssl_sock test sometimes requires multiple retries to succeed
+ # dune runtest re-runs the tests that failed only, not all tests
+ local i; for i in $(seq 0 3); do
+ [ $i -eq 0 ] || msg "Retrying ($i/3)..."
+ dune runtest --build-dir=.testenv --verbose && return 0
+ sleep 1
+ done
+ return 1
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+969c4d64828449a49bdef26ca5f8faa72d2fe2a2304ccbf589a3ff097c2bf8ae9eb83ae1c90216f6b4d6f359e462ea47e0106a7386e26848d14910138fcb07f8 ocaml-ssl-0.7.0.tar.gz
+"
diff --git a/testing/ocaml-stdlib-shims/APKBUILD b/testing/ocaml-stdlib-shims/APKBUILD
new file mode 100644
index 00000000000..847f4053534
--- /dev/null
+++ b/testing/ocaml-stdlib-shims/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-stdlib-shims
+_pkgname=stdlib-shims
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="OCaml Shims to substitute Pervasives with Stdlib"
+url="https://github.com/ocaml/stdlib-shims"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
+makedepends="dune ocaml ocaml-findlib ocaml-compiler-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/stdlib-shims/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ dune build @install
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+c4f2a6dc38171e1d2125cc30e5d63f64f49d8ed011df6588dfa0b51f9dc634f9e8771d6237110c7d1d5e81e161dd5112eaae8df71ee3a7d8a010c2732fcc75ca ocaml-stdlib-shims-0.3.0.tar.gz
+"
diff --git a/testing/ocaml-stk/APKBUILD b/testing/ocaml-stk/APKBUILD
new file mode 100644
index 00000000000..dcd40873cc1
--- /dev/null
+++ b/testing/ocaml-stk/APKBUILD
@@ -0,0 +1,95 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-stk
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="SDL-based GUI toolkit"
+url="https://framagit.org/zoggy/ocaml-stk"
+arch="all !riscv64 !loongarch64" # ocaml
+license="GPL-3.0-only"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ctypes-dev
+ ocaml-fmt-dev
+ ocaml-higlo-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-ocf-dev
+ ocaml-pcre-dev
+ ocaml-ppx_blob-dev
+ ocaml-sedlex-dev
+ ocaml-tsdl-dev
+ ocaml-tsdl-image-dev
+ ocaml-tsdl-ttf-dev
+ ocaml-uunf-dev
+ ocaml-uutf-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+subpackages="$pkgname-dev"
+source="https://framagit.org/zoggy/ocaml-stk/-/archive/$pkgver/ocaml-stk-$pkgver.tar.bz2
+ font.patch
+ "
+options="!check" # requires unpackaged landmarks-ppx
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+7978e3f10bc196ee6177ded9ae0313a5ba65e1a74e501fbecbe5ebc216ca6ee7117deaff5bc4c414083a4a55851a81e5dedaa8d0a880ad72689b3f56f3b064f5 ocaml-stk-0.1.0.tar.bz2
+34fda34bdc19b8421429c3f01d6a4c4a0edf3dc4294b6d3c61b45483a2f88f497ab6b7401a25eb34001d334f1bfdc1cf8e50ce1205c97f8909d89b0f63db1671 font.patch
+"
diff --git a/testing/ocaml-stk/font.patch b/testing/ocaml-stk/font.patch
new file mode 100644
index 00000000000..30c6159f7c7
--- /dev/null
+++ b/testing/ocaml-stk/font.patch
@@ -0,0 +1,33 @@
+--- a/lib/default_theme.json
++++ b/lib/default_theme.json
+@@ -179,7 +179,7 @@
+ fg_color_selected: "red",
+ fill: true,
+ focusable: true,
+- font_desc: { family:"Bitstream Vera Sans Mono", size:14 },
++ font_desc: { family:"DejaVu Sans Mono", size:14 },
+ cursor_width: 2,
+ cursor_color: "pink",
+ active_cursor_color: "0xff0000cc",
+--- a/lib/font.ml
++++ b/lib/font.ml
+@@ -74,7 +74,7 @@
+ let font_exts = ref [".ttf"]
+ let font_dirs = ref
+ [ Filename.current_dir_name, false ;
+- "/usr/share/fonts/truetype", true ;
++ "/usr/share/fonts", true ;
+ ]
+
+ let fonts = ref SMap.empty
+--- a/lib/font.mli
++++ b/lib/font.mli
+@@ -85,7 +85,7 @@
+ {!App.init} will call {!val-load_fonts} which uses [font_dirs] to look
+ for available fonts,
+ so additional directories must be set before initializing application.
+- Default value is [[ Filename.current_dir_name, false ; "/usr/share/fonts/truetype", true ]].
++ Default value is [[ Filename.current_dir_name, false ; "/usr/share/fonts", true ]].
+ *)
+ val font_dirs : (string * bool) list ref
+
diff --git a/testing/ocaml-stringext/APKBUILD b/testing/ocaml-stringext/APKBUILD
new file mode 100644
index 00000000000..c305028d691
--- /dev/null
+++ b/testing/ocaml-stringext/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-stringext
+_pkgname=stringext
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="Extra string functions for OCaml"
+url="https://github.com/rgrinberg/stringext"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+checkdepends="ocaml-ounit-dev ocaml-qtest-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/rgrinberg/stringext/releases/download/$pkgver/stringext-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d8ebe40f42b598a9bd99f1ef4b00ba93458385a4accd121af66a0bf3b3f8d7135f576740adf1a43081dd409977c2219fd4bdbb5b3d1308890d301d553ed49900 ocaml-stringext-1.6.0.tar.bz2
+"
diff --git a/testing/ocaml-tcpip/APKBUILD b/testing/ocaml-tcpip/APKBUILD
new file mode 100644
index 00000000000..8a191430c73
--- /dev/null
+++ b/testing/ocaml-tcpip/APKBUILD
@@ -0,0 +1,101 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-tcpip
+_pkgname=tcpip
+pkgver=7.1.2
+pkgrel=3
+pkgdesc="OCaml TCP/IP networking stack, used in MirageOS"
+url="https://github.com/mirage/mirage-tcpip"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+# ocaml-bisect_ppx only needed for dev
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-arp-dev
+ ocaml-bisect_ppx-dev
+ ocaml-cstruct-dev
+ ocaml-duration-dev
+ ocaml-ethernet-dev
+ ocaml-fmt-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-lru-dev
+ ocaml-lwt-dev
+ ocaml-lwt-dllist-dev
+ ocaml-metrics-dev
+ ocaml-mirage-clock-dev
+ ocaml-mirage-flow-dev
+ ocaml-mirage-net-dev
+ ocaml-mirage-profile-dev
+ ocaml-mirage-random-dev
+ ocaml-mirage-time-dev
+ ocaml-randomconv-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-ipaddr-cstruct-dev ocaml-mirage-clock-unix-dev ocaml-mirage-random-test-dev ocaml-mirage-vnetif-dev ocaml-pcap-format-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/mirage-tcpip/releases/download/v$pkgver/tcpip-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3f873c986de5c58df72db2953c6b2a6319963dbbbd0781b55c2878fd1eaa081ebb7cecbee595db7cb3680a6f438904f98cb69ca17e70c7a6d2d1f61277e929bd ocaml-tcpip-7.1.2.tar.bz2
+"
diff --git a/testing/ocaml-tls/APKBUILD b/testing/ocaml-tls/APKBUILD
new file mode 100644
index 00000000000..79ccbe53eba
--- /dev/null
+++ b/testing/ocaml-tls/APKBUILD
@@ -0,0 +1,103 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-tls
+_pkgname=tls
+pkgver=0.15.3
+pkgrel=4
+pkgdesc="Transport Layer Security purely in OCaml"
+url="https://github.com/mirleft/ocaml-tls"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-cstruct-dev
+ ocaml-domain-name-dev
+ ocaml-fmt-dev
+ ocaml-hkdf-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-lwt-dev
+ ocaml-mirage-crypto-dev
+ ocaml-mirage-clock-dev
+ ocaml-mirage-flow-dev
+ ocaml-mirage-kv-dev
+ ocaml-ppx_sexp_conv-dev
+ ocaml-ptime-dev
+ ocaml-sexplib-dev
+ ocaml-x509-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="
+ ocaml-alcotest-dev
+ ocaml-cmdliner-dev
+ ocaml-cstruct-unix-dev
+ ocaml-ounit-dev
+ ocaml-randomconv-dev
+ "
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirleft/ocaml-tls/releases/download/v$pkgver/tls-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build -p tls,tls-mirage --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit \
+ tls tls-mirage
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+371b85c6afebeda0fcc8cc5252e3333d9c3ef3a6bdbee160bb194e2a5928fd537c811c6eec729f16852070944e627257d44c97142a259d00d0db66956a95df49 ocaml-tls-0.15.3.tar.bz2
+"
diff --git a/testing/ocaml-tophide/APKBUILD b/testing/ocaml-tophide/APKBUILD
new file mode 100644
index 00000000000..feca779f93b
--- /dev/null
+++ b/testing/ocaml-tophide/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-tophide
+_pkgname=tophide
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Hide OCaml toplevel values whose name starts with an underscore"
+url="https://github.com/mjambon/tophide"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+makedepends="ocaml ocaml-compiler-libs ocaml-findlib"
+options="!check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mjambon/tophide/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ make
+}
+
+package() {
+ export OCAMLFIND_DESTDIR="$pkgdir"/usr/lib/ocaml
+ mkdir -vp "$OCAMLFIND_DESTDIR"
+ make install
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+9dafd73463f349e77b410e8df56966812752e78f08ad6ec5f1f13958beb374f8396fd05233b6499b0b941dc9ee5ca0d96e19041fc9b28c125692c8abf693734c ocaml-tophide-1.0.4.tar.gz
+"
diff --git a/testing/ocaml-topkg/APKBUILD b/testing/ocaml-topkg/APKBUILD
new file mode 100644
index 00000000000..aed4ef05edf
--- /dev/null
+++ b/testing/ocaml-topkg/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+# FIXME: run tests!
+pkgname=ocaml-topkg
+_pkgname=topkg
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="The transitory OCaml software packager"
+url="https://erratique.ch/software/topkg"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/topkg/releases/topkg-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build --dev-pkg true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/usr/lib/ocaml" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+9450e9139209aacd8ddb4ba18e4225770837e526a52a56d94fd5c9c4c9941e83e0e7102e2292b440104f4c338fabab47cdd6bb51d69b41cc92cc7a551e6fefab ocaml-topkg-1.0.5.tar.bz2
+"
diff --git a/testing/ocaml-trie/APKBUILD b/testing/ocaml-trie/APKBUILD
new file mode 100644
index 00000000000..051486a7811
--- /dev/null
+++ b/testing/ocaml-trie/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-trie
+_pkgname=trie
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="Strict impure trie tree OCaml module"
+url="https://github.com/kandu/trie/"
+arch="all !riscv64 !loongarch64" # ocaml
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kandu/trie/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ rm -Rf "$pkgdir"/usr/doc
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+1921a42486a0a221e546507287cbf28ccae5462abe55817269517b7b92e19f35031f2d0fba2b1890b97236d6fff11be9d76ade317ae1dfa1089bd4740a46786f ocaml-trie-1.0.0.tar.gz
+"
diff --git a/testing/ocaml-tsdl-image/APKBUILD b/testing/ocaml-tsdl-image/APKBUILD
new file mode 100644
index 00000000000..667f7e18655
--- /dev/null
+++ b/testing/ocaml-tsdl-image/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-tsdl-image
+pkgver=0.6
+pkgrel=0
+_pkgreal=tsdl-image
+pkgdesc="SDL2_Image bindings to go with ocaml-tsdl"
+url="https://github.com/sanette/tsdl-image"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ctypes-dev
+ ocaml-tsdl-dev
+ sdl2_image-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ dune-configurator
+ ocaml
+ "
+checkdepends="
+ libffi-dev
+ ocaml-bigarray-compat-dev
+ ocaml-integers-dev
+ "
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.gz::https://github.com/sanette/tsdl-image/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+af350af0591197bb3a670c1ed93a00f4bc514a7c2d60da309b574756200b6e34b91bf1886fa36f4eb43529cb0c2f715a2bc2c80b66fae6bdcee87e156ffc4f35 tsdl-image-0.6.tar.gz
+"
diff --git a/testing/ocaml-tsdl-ttf/APKBUILD b/testing/ocaml-tsdl-ttf/APKBUILD
new file mode 100644
index 00000000000..2fd38ad3e26
--- /dev/null
+++ b/testing/ocaml-tsdl-ttf/APKBUILD
@@ -0,0 +1,88 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-tsdl-ttf
+pkgver=0.6
+pkgrel=0
+_pkgreal=tsdl-ttf
+pkgdesc="SDL2_Ttf bindings to go with ocaml-tsdl"
+url="https://github.com/sanette/tsdl-ttf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ctypes-dev
+ ocaml-tsdl-dev
+ sdl2_ttf-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ dune-configurator
+ ocaml
+ "
+checkdepends="
+ libffi-dev
+ ocaml-bigarray-compat-dev
+ ocaml-integers-dev
+ "
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.gz::https://github.com/sanette/tsdl-ttf/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3184207a273869db6c208b37e41d09121ec124fdab6675d5c2fcbe2592f0104d2bfd8afeeee2b7c6ac12d94ec9bdf89d8bb2f581e3ac2767a5c95814dbbe7db3 tsdl-ttf-0.6.tar.gz
+"
diff --git a/testing/ocaml-tsdl/APKBUILD b/testing/ocaml-tsdl/APKBUILD
new file mode 100644
index 00000000000..3f4f5245319
--- /dev/null
+++ b/testing/ocaml-tsdl/APKBUILD
@@ -0,0 +1,100 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-tsdl
+pkgver=1.0.0
+pkgrel=0
+_pkgreal=tsdl
+pkgdesc="Thin bindings to SDL"
+url="https://erratique.ch/software/tsdl"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-ctypes-dev
+ ocaml-stdlib-shims
+ sdl2-dev
+ "
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+checkdepends="
+ libffi-dev
+ mesa-dri-gallium
+ ocaml-bigarray-compat-dev
+ ocaml-integers-dev
+ vulkan-loader
+ xvfb-run
+ "
+options="!check" # sdlevents test seems to hang
+subpackages="$pkgname-dev"
+source="$_pkgreal-$pkgver.tar.bz2::https://erratique.ch/software/tsdl/releases/tsdl-$pkgver.tbz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build -v \
+ --tests "$(want_check && echo true || echo false)"
+}
+
+check() {
+ xvfb-run -a ocaml pkg/pkg.ml test -v
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgreal.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+70ba93a07d8add11d29cf94ce173c022a52a7d57af7b9dad3abdae7fde6314d4690d3aacc8f75e598b6af2e692568399638813664db0331e0a898bdc14bfe670 tsdl-1.0.0.tar.bz2
+"
diff --git a/testing/ocaml-uri/APKBUILD b/testing/ocaml-uri/APKBUILD
new file mode 100644
index 00000000000..e06be9b1ef3
--- /dev/null
+++ b/testing/ocaml-uri/APKBUILD
@@ -0,0 +1,85 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uri
+_pkgname=uri
+pkgver=4.2.0
+pkgrel=2
+pkgdesc="RFC3986 URI/URL parsing library for OCaml"
+url="https://github.com/mirage/ocaml-uri"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-angstrom-dev
+ ocaml-stringext-dev
+ ocaml-ppx_sexp_conv-dev
+ ocaml-re-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-ounit-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirage/ocaml-uri/releases/download/v$pkgver/uri-v$pkgver.tbz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+119e39bf53db9e94383a4e3a3df492b60b2db097266b3a8660de431ad85bc87997718305972fd2abbfb529973475ce6b210ba5e34d12e85a5dabbb0e24130aa1 ocaml-uri-4.2.0.tar.bz2
+"
diff --git a/testing/ocaml-uucd/APKBUILD b/testing/ocaml-uucd/APKBUILD
new file mode 100644
index 00000000000..e9018dacf53
--- /dev/null
+++ b/testing/ocaml-uucd/APKBUILD
@@ -0,0 +1,83 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uucd
+_pkgname=uucd
+pkgver=14.0.0
+pkgrel=2
+pkgdesc="Unicode character database decoder for OCaml"
+url="https://erratique.ch/software/uucd"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ ocaml-topkg
+ ocaml-xmlm-dev
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/uucd/releases/uucd-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+2748ea59440e5379b7a1ed2aed94f1ad0c9f9063ae329a3ac9fc8dc057fa95b4b7c81fc0011eab89af31ddfe8e5562a49476590b36352e62004db476c45a67e1 ocaml-uucd-14.0.0.tar.bz2
+"
diff --git a/testing/ocaml-uucp/APKBUILD b/testing/ocaml-uucp/APKBUILD
new file mode 100644
index 00000000000..d3751330845
--- /dev/null
+++ b/testing/ocaml-uucp/APKBUILD
@@ -0,0 +1,89 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uucp
+_pkgname=uucp
+pkgver=14.0.0
+pkgrel=2
+pkgdesc="Unicode character properties for OCaml"
+url="https://erratique.ch/software/uucp"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ ocaml-topkg
+ ocaml-uucd-dev
+ ocaml-uunf-dev
+ ocaml-uutf-dev
+ ocaml-cmdliner-dev
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/uucp/releases/uucp-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --with-uutf true \
+ --with-uunf true \
+ --with-cmdliner true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899 ocaml-uucp-14.0.0.tar.bz2
+"
diff --git a/testing/ocaml-uuidm/APKBUILD b/testing/ocaml-uuidm/APKBUILD
new file mode 100644
index 00000000000..62ec82a94b8
--- /dev/null
+++ b/testing/ocaml-uuidm/APKBUILD
@@ -0,0 +1,90 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uuidm
+_pkgname=uuidm
+pkgver=0.9.8
+pkgrel=2
+pkgdesc="Universally unique identifiers (UUIDs) for OCaml"
+url="https://erratique.ch/software/uuidm"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-cmdliner-dev"
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/uuidm/releases/uuidm-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --with-cmdliner true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=""
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d5073ae49c402ab3ea6dc8f86bc5b8cc14129437e23e47da4d91431648fcb31c4dce6308f9c936c58df9a2c6afda61d77105a3022e369cca4e4c140320e803b5 ocaml-uuidm-0.9.8.tar.bz2
+"
diff --git a/testing/ocaml-uunf/APKBUILD b/testing/ocaml-uunf/APKBUILD
new file mode 100644
index 00000000000..404a20a9074
--- /dev/null
+++ b/testing/ocaml-uunf/APKBUILD
@@ -0,0 +1,93 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uunf
+_pkgname=uunf
+pkgver=14.0.0
+pkgrel=2
+pkgdesc="Unicode text normalization for OCaml"
+url="https://erratique.ch/software/uunf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ ocaml-topkg
+ ocaml-cmdliner-dev
+ ocaml-uucd-dev
+ ocaml-uutf-dev
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/uunf/releases/uunf-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ # Workaround ocamlopt exiting with code 2 while compiling uunf_data.ml
+ if [ "$CARCH" = ppc64le ]; then
+ ulimit -Hs unlimited
+ ulimit -Ss 65536
+ fi
+
+ ocaml pkg/pkg.ml build \
+ --with-uutf true \
+ --with-cmdliner true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+9aac01483abb8a8a5d68832d7f7692909d61559f2c9b0284c1da293f8115d1100df26e9e4cf7280bda6499ba866f5da2c72c4c21ca99a1d594b29d000e9bb051 ocaml-uunf-14.0.0.tar.bz2
+"
diff --git a/testing/ocaml-uuseg/APKBUILD b/testing/ocaml-uuseg/APKBUILD
new file mode 100644
index 00000000000..e2935f71294
--- /dev/null
+++ b/testing/ocaml-uuseg/APKBUILD
@@ -0,0 +1,93 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uuseg
+_pkgname=uuseg
+pkgver=14.0.0
+pkgrel=2
+pkgdesc="Unicode text segmentation for OCaml"
+url="https://erratique.ch/software/uuseg"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-uucp-dev ocaml-uutf-dev"
+makedepends="
+ $depends_dev
+ ocaml
+ ocamlbuild
+ ocaml-compiler-libs
+ ocaml-cmdliner-dev
+ ocaml-findlib
+ ocaml-topkg
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/uuseg/releases/uuseg-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --with-uutf true \
+ --with-cmdliner true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir"/usr \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir"/.omit \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (command line utilities)"
+ depends=""
+
+ amove usr/bin
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa ocaml-uuseg-14.0.0.tar.bz2
+"
diff --git a/testing/ocaml-uutf/APKBUILD b/testing/ocaml-uutf/APKBUILD
new file mode 100644
index 00000000000..6c44a08fc1c
--- /dev/null
+++ b/testing/ocaml-uutf/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-uutf
+_pkgname=uutf
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Non-blocking streaming Unicode codec for OCaml"
+url="https://erratique.ch/software/uutf"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ ocaml-topkg
+ ocaml-cmdliner-dev
+ cmd:opam-installer
+ "
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/uutf/releases/uutf-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build \
+ --with-cmdliner true
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+50cc4486021da46fb08156e9daec0d57b4ca469b07309c508d5a9a41e9dbcf1f32dec2ed7be027326544453dcaf9c2534919395fd826dc7768efc6cc4bfcc9f8 ocaml-uutf-1.0.3.tar.bz2
+"
diff --git a/testing/ocaml-x509/APKBUILD b/testing/ocaml-x509/APKBUILD
new file mode 100644
index 00000000000..f1a1ca7df42
--- /dev/null
+++ b/testing/ocaml-x509/APKBUILD
@@ -0,0 +1,92 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-x509
+_pkgname=x509
+pkgver=0.16.0
+pkgrel=2
+pkgdesc="Public Key Infrastructure (RFC 5280, PKCS) purely in OCaml"
+url="https://github.com/mirleft/ocaml-x509"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-2-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-asn1-combinators-dev
+ ocaml-base64-dev
+ ocaml-cstruct-dev
+ ocaml-domain-name-dev
+ ocaml-fmt-dev
+ ocaml-gmap-dev
+ ocaml-ipaddr-dev
+ ocaml-logs-dev
+ ocaml-mirage-crypto-dev
+ ocaml-pbkdf-dev
+ ocaml-ptime-dev
+ "
+makedepends="$depends_dev dune ocaml"
+checkdepends="ocaml-alcotest-dev ocaml-cstruct-unix-dev"
+options="!check"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/mirleft/ocaml-x509/releases/download/v$pkgver/x509-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+c9b4cf55d16d8b1e6b6faa18fc9ac08065fa09937f07a3447d4b637539b37bea6374c98d184eba159a8ba8eba860303a78563097e47ef30529fedaaf722115c6 ocaml-x509-0.16.0.tar.bz2
+"
diff --git a/testing/ocaml-xml-light/APKBUILD b/testing/ocaml-xml-light/APKBUILD
index 8c4c26ec5ed..5edd35d5da7 100644
--- a/testing/ocaml-xml-light/APKBUILD
+++ b/testing/ocaml-xml-light/APKBUILD
@@ -1,47 +1,75 @@
# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
pkgname=ocaml-xml-light
-pkgver=2.4
-pkgrel=1
+_pkgname=xml-light
+pkgver=2.5
+pkgrel=0
pkgdesc="Minimal XML parser and printer for OCaml"
url="https://github.com/ncannasse/xml-light"
-arch="x86_64 ppc64le" # restrict by ocaml, build fails on aarch64
-license="LGPL-2.1-or-later-WITH-linking-exception"
-makedepends="ocaml ocaml-findlib-dev ocaml-ocamldoc gawk"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ncannasse/xml-light/archive/$pkgver.tar.gz
- Makefile-explicit-target-fix.patch"
-builddir="$srcdir/xml-light-$pkgver"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="dune ocaml"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.bz2::https://github.com/ncannasse/xml-light/releases/download/$pkgver/xml-light-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- make all
- make doc
- make opt
+ dune build --release --verbose
}
check() {
- cd "$builddir"
- ./test.exe <<EOF
-<abc><123/></abc>
+ dune runtest --build-dir=.testenv
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+}
+
+dev() {
+ default_dev
-EOF
- ./test_opt.exe <<EOF
-<abc><123/></abc>
+ cd "$pkgdir"
-EOF
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
}
-package() {
- cd "$builddir"
- export DESTDIR="$pkgdir"
- export OCAMLFIND_DESTDIR="$DESTDIR/usr/lib/ocaml"
- mkdir -p "$OCAMLFIND_DESTDIR" "$OCAMLFIND_DESTDIR/stublibs"
- rm -f test.cmi
- make install_ocamlfind
- install -D -m644 README "$pkgdir/usr/share/licenses/$pkgname/README"
- install -D -m644 -t "$pkgdir/usr/share/doc/$pkgname/html/" doc/*
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="029068c6eb48cd1223438dc0f86e1c5e6fd0412d160ea4d79928eec5e5f5843af46260d7240e4260851e9580e7f92d578c764c63c8e0acab348637455493ef02 ocaml-xml-light-2.4.tar.gz
-6fd6d9131cb652df96c7fd7b68e9161a6e9a0c08fedfd2e2ee00a474d3d249ce16d4a8631a02ca36e158d8c61ff8fb0fe440b5e620eb64f865b23dcfd433e476 Makefile-explicit-target-fix.patch"
+sha512sums="
+fec6b83f8342a37bdad0fc745032f1faa57b359365ab53c2376fb031613a83a3139766f2d646a9b9b8d67da25252f2499a03de4caaef7bd8738f9b183ef84b6e xml-light-2.5.tar.bz2
+"
diff --git a/testing/ocaml-xml-light/Makefile-explicit-target-fix.patch b/testing/ocaml-xml-light/Makefile-explicit-target-fix.patch
deleted file mode 100644
index ebf09faa041..00000000000
--- a/testing/ocaml-xml-light/Makefile-explicit-target-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -78,6 +78,8 @@
-
- xml.cmi:
-
-+xml_parser.mli:
-+
- xmlParser.cmi: dtd.cmi xml.cmi
-
- xml_lexer.cmi: dtd.cmi
diff --git a/testing/ocaml-xmlm/APKBUILD b/testing/ocaml-xmlm/APKBUILD
new file mode 100644
index 00000000000..0399de29789
--- /dev/null
+++ b/testing/ocaml-xmlm/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-xmlm
+_pkgname=xmlm
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Streaming XML codec for OCaml"
+url="https://erratique.ch/software/xmlm"
+arch="all !riscv64 !loongarch64" # ocaml
+license="ISC"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocamlbuild
+ ocaml-topkg
+ cmd:opam-installer
+ "
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.bz2::https://erratique.ch/software/xmlm/releases/xmlm-$pkgver.tbz"
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ocaml pkg/pkg.ml build
+}
+
+package() {
+ opam-installer -i \
+ --prefix="$pkgdir/usr" \
+ --libdir="$pkgdir/$_ocamldir" \
+ --docdir="$builddir/.omit" \
+ $_pkgname.install
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+69f6112e6466952256d670fe1751fe4ae79e20d50f018ece1709eb2240cb1b00968ac7cee110771e0617a38ebc1cdb43e9d146471ce66ac1b176e4a1660531eb ocaml-xmlm-1.4.0.tar.bz2
+"
diff --git a/testing/ocaml-xtmpl/APKBUILD b/testing/ocaml-xtmpl/APKBUILD
new file mode 100644
index 00000000000..34a29fbabc3
--- /dev/null
+++ b/testing/ocaml-xtmpl/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-xtmpl
+pkgver=0.19.0
+pkgrel=0
+_pkgreal=xtmpl
+pkgdesc="XML templating library"
+url="https://framagit.org/zoggy/xtmpl"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-3.0-only"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-iri-dev
+ ocaml-ppxlib-dev
+ ocaml-re-dev
+ ocaml-sedlex-dev
+ ocaml-uutf-dev
+ "
+makedepends="
+ $depends_dev
+ dune
+ ocaml
+ "
+subpackages="$pkgname-dev"
+source="https://framagit.org/zoggy/xtmpl/-/archive/$pkgver/xtmpl-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --verbose \
+ -p xtmpl,xtmpl_ppx
+}
+
+check() {
+ dune runtest --build-dir=.testenv --verbose \
+ -p xtmpl,xtmpl_ppx
+}
+
+package() {
+ dune install --destdir="$pkgdir" --docdir=/.omit \
+ xtmpl xtmpl_ppx
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d0ab7fe67f2534a5c91d9c7e55efbcbcb4fa9269cfa2016e5793efbfe76abe33d3dac28eb44cfb940f121d167b88b14a0d3ba042bbd53a5d4dd379c27fae2328 xtmpl-0.19.0.tar.gz
+"
diff --git a/testing/ocaml-yojson/APKBUILD b/testing/ocaml-yojson/APKBUILD
new file mode 100644
index 00000000000..c74cfa9ae02
--- /dev/null
+++ b/testing/ocaml-yojson/APKBUILD
@@ -0,0 +1,87 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=ocaml-yojson
+_pkgname=yojson
+pkgver=2.1.2
+pkgrel=0
+pkgdesc="JSON parsing and pretty-printing library for OCaml"
+url="https://github.com/ocaml-community/yojson"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="$pkgname=$pkgver-r$pkgrel ocaml-seq-dev"
+makedepends="$depends_dev dune ocaml ocaml-cppo ocaml-findlib"
+subpackages="$pkgname-dev"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/ocaml-community/yojson/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # tests need alcotest library
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build @install -p yojson
+}
+
+check() {
+ dune runtest
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ yojson
+
+ cd "$pkgdir"
+
+ # There's just a readme and changelog.
+ rm -Rf usr/doc
+
+ # Don't package ydump tool for now.
+ rm -Rf usr/bin
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+52c3a479492c0adcd4783f5343d00b7ce76d303e08a458e59d9faf006ebaf782a03f77c1ba1d5b75f4e3da586073911d5fdd2b80dc7ce198c9a16d9b0a776e4f yojson-2.1.2.tar.gz
+"
diff --git a/testing/ocaml-zarith/APKBUILD b/testing/ocaml-zarith/APKBUILD
new file mode 100644
index 00000000000..6b48859b8f8
--- /dev/null
+++ b/testing/ocaml-zarith/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: River Dillon <oss@outerpassage.net>
+# Maintainer: River Dillon <oss@outerpassage.net>
+pkgname=ocaml-zarith
+pkgver=1.12
+pkgrel=5
+pkgdesc="library implementing arithmetic and logical operations"
+url="https://github.com/ocaml/Zarith"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.0-only WITH OCaml-LGPL-linking-exception"
+depends="gmp-dev" # zarith is not split into a -dev subpackage
+makedepends="
+ ocaml
+ ocaml-findlib
+ ocaml-compiler-libs
+ ocaml-ocamldoc
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml/Zarith/archive/refs/tags/release-$pkgver.tar.gz"
+builddir="$srcdir/Zarith-release-$pkgver"
+
+# 32bit archs
+case "$CARCH" in
+armv7|armhf|x86) options="$options textrels" ;;
+esac
+
+build() {
+ ./configure -installdir "$pkgdir"/usr/lib/ocaml
+ make
+ make doc
+}
+
+check() {
+ make tests
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/ocaml "$pkgdir"/usr/lib/ocaml/stublibs
+ OCAMLFIND_LDCONF=ignore make install
+ install -Dm644 README.md -t "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+8075573ae65579a2606b37dd1b213032a07d220d28c733f9288ae80d36f8a2cc4d91632806df2503c130ea9658dc207ee3a64347c21aa53969050a208f5b2bb4 ocaml-zarith-1.12.tar.gz
+"
diff --git a/testing/ocaml-zed/APKBUILD b/testing/ocaml-zed/APKBUILD
new file mode 100644
index 00000000000..70ca41ded48
--- /dev/null
+++ b/testing/ocaml-zed/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml-zed
+_pkgname=zed
+pkgver=3.1.0
+pkgrel=3
+pkgdesc="Abstract engine for text edition in OCaml"
+url="https://github.com/ocaml-community/zed"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ ocaml-camomile-dev
+ ocaml-charinfo_width-dev
+ ocaml-react-dev
+ "
+makedepends="$depends_dev dune ocaml"
+options="!check" # no tests provided
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ocaml-community/zed/archive/$pkgver.tar.gz
+ use-built-in-result-lib.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --docdir=/.omit
+ rm -Rf "$pkgdir"/.omit
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+d4457af15f970adb7b1ed543017e590fa0ecc47171d6dd520a1397f21ce0219caa30a9db7bedb76c0602d4f6d0f0684012cc33feafe18b848d3261a460dea10a ocaml-zed-3.1.0.tar.gz
+03655451e382d7539589ef80a97e1e16edb6f269bbf95b5997c334f08dad0332807588dc9cb5b1e4aebee64c88fcd8d1d5015bdec044093dff19bbffa84b3b53 use-built-in-result-lib.patch
+"
diff --git a/testing/ocaml-zed/use-built-in-result-lib.patch b/testing/ocaml-zed/use-built-in-result-lib.patch
new file mode 100644
index 00000000000..8514d6ee304
--- /dev/null
+++ b/testing/ocaml-zed/use-built-in-result-lib.patch
@@ -0,0 +1,8 @@
+--- a/src/dune
++++ b/src/dune
+@@ -3,4 +3,4 @@
+ (public_name zed)
+ (wrapped false)
+ (flags (:standard -safe-string))
+- (libraries bytes react camomile result charInfo_width))
++ (libraries bytes react camomile charInfo_width))
diff --git a/testing/ocaml5/APKBUILD b/testing/ocaml5/APKBUILD
new file mode 100644
index 00000000000..822775727c0
--- /dev/null
+++ b/testing/ocaml5/APKBUILD
@@ -0,0 +1,114 @@
+# Contributor: Borys Zhukov <mp5@mp5.im>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocaml5
+provides=ocaml
+pkgver=5.1.1
+pkgrel=0
+pkgdesc="Main implementation of the Caml programming language"
+url="https://ocaml.org/"
+# loongarch64: no upstream support
+arch="all !loongarch64"
+license="LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception"
+depends="$pkgname-runtime=$pkgver-r$pkgrel gcc"
+checkdepends="parallel"
+subpackages="
+ $pkgname-doc
+ $pkgname-ocamldoc
+ $pkgname-compiler-libs:_compiler_libs
+ $pkgname-runtime
+ "
+source="https://caml.inria.fr/pub/distrib/ocaml-${pkgver%.*}/ocaml-$pkgver.tar.xz"
+builddir="$srcdir/ocaml-$pkgver"
+
+# The s390x native compiler is newly added in 5.1.x and still needs some work
+case "$CARCH" in
+s390x)
+ options="$options textrels !check"
+ export LDFLAGS="$LDFLAGS -Wl,-z,notext"
+ ;;
+esac
+
+build() {
+ local _make _conf
+ case "$CARCH" in
+ # Current native compiler support in 5.1.x
+ # Disabling riscv64 here as it segfaults while building dynlink
+ aarch64|s390x|x86_64)
+ _make="world.opt"
+ _conf="--enable-native-compiler \
+ --enable-native-toplevel \
+ --disable-installing-bytecode-programs"
+ msg "Building native compiler for $CARCH"
+ ;;
+ *)
+ _make="world"
+ _conf="--disable-native-compiler \
+ --disable-native-toplevel \
+ --enable-installing-bytecode-programs"
+ msg "Building bytecode compiler for $CARCH"
+ ;;
+ esac
+
+ ./configure \
+ --prefix /usr \
+ --bindir /usr/bin \
+ --libdir /usr/lib/ocaml \
+ --mandir /usr/share/man \
+ --docdir /usr/share/doc/$pkgname \
+ --disable-installing-source-artifacts \
+ $_conf \
+ CC="${CC:-gcc}" \
+ AS="${CC:-gcc} -c" \
+ ASPP="${CC:-gcc} -c"
+ make $_make
+}
+
+check() {
+ make ocamltest
+ make -C testsuite parallel
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+ocamldoc() {
+ pkgdesc="$pkgdesc (documentation generator)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/ocamldoc*
+ amove usr/lib/ocaml/ocamldoc
+}
+
+_compiler_libs() {
+ pkgdesc="$pkgdesc (compiler libraries)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ provides="$pkgname-dev=$pkgver-r$pkgrel"
+
+ amove usr/lib/ocaml/compiler-libs
+}
+
+runtime() {
+ pkgdesc="$pkgdesc (runtime environment)"
+ depends=
+
+ amove usr/bin/ocamlrun*
+ amove usr/lib/ocaml/ld.conf
+
+ local i; for i in \
+ '*.cmo' \
+ '*.cmi' \
+ '*.cma' \
+ 'stublibs' \
+ 'threads/*.cmi' \
+ 'threads/*.cma'
+ do
+ amove "usr/lib/ocaml/$i"
+ done
+}
+
+sha512sums="
+e534881eec10b79141b6598ba6d3f59e32ed46a2c64b90c226bbec199c73cdb70e6e5bfa555c34c385d3d83c15e5115f0ea9a182fdda6547db7bbb416f8ed98f ocaml-5.1.1.tar.xz
+"
diff --git a/testing/ocamlclean/APKBUILD b/testing/ocamlclean/APKBUILD
deleted file mode 100644
index cf58a6cd923..00000000000
--- a/testing/ocamlclean/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=ocamlclean
-pkgver=2.1
-pkgrel=0
-pkgdesc="OCaml Bytecode Cleaner"
-url="http://www.algo-prog.info/ocapic/web/index.php?id=OCAPIC:OCamlClean"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by ocaml aport
-license="CECILL-2.0"
-makedepends="bash ocaml ocamlbuild"
-subpackages="$pkgname-doc"
-# backup: https://github.com/bvaugon/ocamlclean
-source="$pkgname-$pkgver.tar.bz2::http://www.algo-prog.info/ocapic/web/lib/exe/fetch.php?media=ocapic:$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
-
- ./configure \
- -prefix "$pkgdir/usr" \
- -mandir "$pkgdir/usr/share/man"
- make
-}
-
-package() {
- cd "$builddir"
- make install
-}
-
-sha512sums="6554f452c48c853fed4587456c582f31a47d947772975ba17e5a4cbb566fa61ed996dee23ec83fe360c7bcf65cc9f8544c78491769e8546b05dbada53b4cf73d ocamlclean-2.1.tar.bz2"
diff --git a/testing/ocamlnet/APKBUILD b/testing/ocamlnet/APKBUILD
new file mode 100644
index 00000000000..5df97c3fc4e
--- /dev/null
+++ b/testing/ocamlnet/APKBUILD
@@ -0,0 +1,104 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocamlnet
+pkgver=4.1.9
+pkgrel=2
+pkgdesc="Network and system programming library for OCaml"
+url="http://projects.camlcity.org/projects/ocamlnet.html"
+arch="all !riscv64 !loongarch64" # ocaml
+license="zlib-acknowledgement AND BSD-3-Clause AND GPL-2.0-only"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ ocaml
+ ocaml-camlzip-dev
+ ocaml-compiler-libs
+ ocaml-findlib
+ ocaml-pcre-dev
+ gnutls-dev
+ pcre-dev
+ tcl-dev
+ "
+subpackages="$pkgname-tcl $pkgname-dev"
+source="http://download.camlcity.org/download/ocamlnet-$pkgver.tar.gz
+ fix-version-number.patch
+ "
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export C_INCLUDE_PATH=/usr/lib/ocaml
+
+ ./configure \
+ -datadir /usr/share/"$pkgname" \
+ -enable-pcre \
+ -enable-gnutls \
+ -enable-zip \
+ -with-nethttpd \
+ -enable-tcl \
+ -equeue-tcl-defs -I/usr/include \
+ -equeue-tcl-libs -ltcl8.6
+
+ msg "Building Ocamlnet bytecode libraries"
+ make -j1 all
+ msg "Building Ocamlnet native code libraries"
+ make opt
+}
+
+package() {
+ export DESTDIR="$pkgdir"
+ export OCAMLFIND_DESTDIR="$pkgdir"/usr/lib/ocaml
+ mkdir -vp "$pkgdir"/usr/share/"$pkgname" \
+ "$OCAMLFIND_DESTDIR"/stublibs
+ make install
+}
+
+tcl() {
+ pkgdesc="$pkgdesc (Tcl event system)"
+ amove usr/lib/ocaml/equeue-tcl \
+ usr/lib/ocaml/stublibs/dllequeue_tcl*
+}
+
+dev() {
+ default_dev
+
+ cd "$pkgdir"
+
+ local path; find usr/lib/ocaml \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+a251724deb35e756c81d2d3ac836d413b659acdce6c0acf479a4fca48934ab62ad399a884197d00dbb7e7558132a56be1c8efd553c0a644d329418272f809a46 ocamlnet-4.1.9.tar.gz
+0fd0e8e51229a126ebf96fdac957d2ed69e8b3511b11b2d0a7b6d4a6f77018a4f79370f59f5ce460ad5847dc727cdddce96b2aa1da7180baff1245aee35939f4 fix-version-number.patch
+"
diff --git a/testing/ocamlnet/fix-version-number.patch b/testing/ocamlnet/fix-version-number.patch
new file mode 100644
index 00000000000..71f8eb1c9d1
--- /dev/null
+++ b/testing/ocamlnet/fix-version-number.patch
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -73,7 +73,7 @@
+ ocamlc=`get_path ocamlc`
+ set_defaults
+
+-version="$(sed -ne 's/^version: *"\(.*\)\.git".*/\1/p' ../opam)"
++version="4.1.9"
+ exec_suffix=""
+ path_sep=":"
+
diff --git a/testing/ocfs2-tools/APKBUILD b/testing/ocfs2-tools/APKBUILD
index 7d1b29d1d9b..579eedcf8c6 100644
--- a/testing/ocfs2-tools/APKBUILD
+++ b/testing/ocfs2-tools/APKBUILD
@@ -4,8 +4,8 @@
#
# TODO: Fix init script (remove bashisms)
pkgname=ocfs2-tools
-pkgver=1.8.6
-pkgrel=0
+pkgver=1.8.7
+pkgrel=2
pkgdesc="Oracle Cluster File System 2 Core Tools"
url="https://oss.oracle.com/projects/ocfs2-tools"
arch="all"
@@ -20,7 +20,7 @@ source="ocfs2-tools-$pkgver.tar.gz::https://github.com/markfasheh/ocfs2-tools/ar
cluster.conf
musl-libocfs2-__bswap_constant_32.patch
musl-o2info-atimensec.patch
- musl-sys-raw.h.patch
+ new-linux.patch
fix-operations-include-ioctl.patch
fix-o2monitor-undeclared-PATH_MAX.patch
tunefs-remove-op_query.patch
@@ -63,14 +63,16 @@ package() {
install -m 644 -D "$srcdir"/cluster.conf "$pkgdir"/etc/ocfs2/cluster.conf
}
-sha512sums="71abe46152b065b9ba7db192b9f14ed28a1fbf0fa68822d4e8188c6f1654dfaaa29ae72ea4219bd68e7fade7791a08d36cbd5af5a16a2ee96e194ecb6f0d950b ocfs2-tools-1.8.6.tar.gz
+sha512sums="
+10246ccb53ec1da59f2117f047bd8a9d7b4e5471e01dd262e8a694b530be2356d843f8faa6cf559f24ca39db45572d57540ee49a373b7658db23ff08c22541bb ocfs2-tools-1.8.7.tar.gz
e6fd44358ba5a38446a8bea60c493f4ef9b7a2d7c0076116e91f0edabb66da1fd90be884a46052592f69e338887d4df5c7b7c0b01fadf837fdbc7906a96de52a o2cb.initd
e510f08a9adc2d7c07e7b8a4d2c503c5a130a156ab1bf1cf45d8480dd94490968f718e966d0bae090a883ff36768e17971415f9905bd5dcf8632f16f7c0b931e o2cb.confd
f844e5389e0b42d6f91a1335bd2ef4d2666e5b883c999d05acd3bc63ad901bc5838aa4da35bb1d069463d7cc7dcfa277dbaa938b5953e8d420a37cfbb30f24f3 cluster.conf
87ea579ddb4a6ae34c5b815fe9015dc0168cb267312f9ef3dccfd16cd65a1f13ef1275dda72308d952ca844e42a486c891340210c4757866f2caacd0d6d3a916 musl-libocfs2-__bswap_constant_32.patch
d1eb24086f71f22e0333f4c246389ce82c9b4540bb0a2d091f6deee7f563c7e5457a838937cd07f1b90359e9c215639aebcbc54c551fb0e9e3617f29c03d49a1 musl-o2info-atimensec.patch
-b471c21f30f7ebba05ed8e4c63ff00b4ddad7e6095d256929472d61368dcb7566296201ad0af382a21f0a16c47f23cfa256ad91e6629f17595034e4807c96f3b musl-sys-raw.h.patch
+56fa3bdefca7fabec6db1ba24a5b6ee669008f05a953d88f1336a6a74e095235de350bc3adb810ec79d5e2c5045cec0db25ea4eb49e65ac31324dd7e4d770c32 new-linux.patch
41b5e0d2eae738a8e05b6377e6dd4fc79592c6fc7b62dbc1ea6d7bd1fdb80122bc2f915748e64e30c9e964a1ebc73a65d81b5409fd499a959b3015d8c0683ead fix-operations-include-ioctl.patch
35d5872e6a3651583442b3a333a2e866bf241b4fc19bdbabf4bb46cdbdb6b2806d81092b1fa80a9841a49e95a40d2bc09d12ad33e8cfbf3c267698eb9120b307 fix-o2monitor-undeclared-PATH_MAX.patch
c614235c98426a60d484203b47c44643833496de9864f2f6b1bedec206de33231878799d0b16ad2462c7ed2920cd0d8f9fd41fd7b1fff5b644e8be4b31ed815d tunefs-remove-op_query.patch
-a4b202ea3518f766e1b43b0acb1acc961d5c4d9d6792eaa77d64a07f97050be090e0233509b34fe9553328ec0e85c4735984a7009f6dc8b8325350e3525158d7 fix-sysmacros.patch"
+a4b202ea3518f766e1b43b0acb1acc961d5c4d9d6792eaa77d64a07f97050be090e0233509b34fe9553328ec0e85c4735984a7009f6dc8b8325350e3525158d7 fix-sysmacros.patch
+"
diff --git a/testing/ocfs2-tools/musl-sys-raw.h.patch b/testing/ocfs2-tools/musl-sys-raw.h.patch
deleted file mode 100644
index d29210d4338..00000000000
--- a/testing/ocfs2-tools/musl-sys-raw.h.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Wed, 23 May 2018 21:18:00 +0200
-Subject: [PATCH] Replace include sys/raw.h with linux/raw.h
-
---- a/debugfs.ocfs2/include/main.h
-+++ b/debugfs.ocfs2/include/main.h
-@@ -45,7 +45,7 @@
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <signal.h>
--#include <sys/raw.h>
-+#include <linux/raw.h>
- #include <linux/kdev_t.h>
- #include <inttypes.h>
- #include <utime.h>
---- a/fswreck/include/main.h
-+++ b/fswreck/include/main.h
-@@ -43,7 +43,7 @@
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <signal.h>
--#include <sys/raw.h>
-+#include <linux/raw.h>
- #include <linux/kdev_t.h>
- #include <inttypes.h>
-
---- a/o2info/operations.c
-+++ b/o2info/operations.c
-@@ -22,7 +22,7 @@
- #define _GNU_SOURCE /* Because libc really doesn't want us using O_DIRECT? */
-
- #include <errno.h>
--#include <sys/raw.h>
-+#include <linux/raw.h>
- #include <inttypes.h>
-
- #include "ocfs2/ocfs2.h"
diff --git a/testing/ocfs2-tools/new-linux.patch b/testing/ocfs2-tools/new-linux.patch
new file mode 100644
index 00000000000..05de1c55f68
--- /dev/null
+++ b/testing/ocfs2-tools/new-linux.patch
@@ -0,0 +1,37 @@
+neither this nor linux/raw.h exists, but seem to not be needed
+diff --git a/debugfs.ocfs2/include/main.h b/debugfs.ocfs2/include/main.h
+index 89a55ca..dc726eb 100644
+--- a/debugfs.ocfs2/include/main.h
++++ b/debugfs.ocfs2/include/main.h
+@@ -45,7 +45,6 @@
+ #include <arpa/inet.h>
+ #include <netinet/in.h>
+ #include <signal.h>
+-#include <sys/raw.h>
+ #include <linux/kdev_t.h>
+ #include <inttypes.h>
+ #include <utime.h>
+diff --git a/fswreck/include/main.h b/fswreck/include/main.h
+index 03e1b3d..8260e75 100644
+--- a/fswreck/include/main.h
++++ b/fswreck/include/main.h
+@@ -43,7 +43,6 @@
+ #include <arpa/inet.h>
+ #include <netinet/in.h>
+ #include <signal.h>
+-#include <sys/raw.h>
+ #include <linux/kdev_t.h>
+ #include <inttypes.h>
+
+diff --git a/o2info/operations.c b/o2info/operations.c
+index 9c0ba30..b52b54e 100644
+--- a/o2info/operations.c
++++ b/o2info/operations.c
+@@ -22,7 +22,6 @@
+ #define _GNU_SOURCE /* Because libc really doesn't want us using O_DIRECT? */
+
+ #include <errno.h>
+-#include <sys/raw.h>
+ #include <inttypes.h>
+ #include <sys/ioctl.h>
+
diff --git a/testing/ocp-indent/APKBUILD b/testing/ocp-indent/APKBUILD
new file mode 100644
index 00000000000..4316deb5e66
--- /dev/null
+++ b/testing/ocp-indent/APKBUILD
@@ -0,0 +1,102 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocp-indent
+pkgver=1.8.2
+pkgrel=2
+pkgdesc="OCaml source code indenter"
+url="http://www.typerex.org/ocp-indent.html"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-only WITH OCaml-LGPL-linking-exception"
+depends_dev="ocaml-cmdliner-dev ocaml-findlib-dev"
+makedepends="$depends_dev dune ocaml"
+subpackages="
+ $pkgname-doc
+ $pkgname-emacs::noarch
+ $pkgname-vim::noarch
+ ocaml-$pkgname-dev:_libdev
+ ocaml-$pkgname:_lib
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/OCamlPro/ocp-indent/archive/$pkgver.tar.gz"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build --release --verbose
+}
+
+check() {
+ dune runtest --verbose
+}
+
+package() {
+ dune install --destdir="$pkgdir"
+}
+
+emacs() {
+ pkgdesc="$pkgdesc for Emacs"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
+}
+
+vim() {
+ pkgdesc="$pkgdesc for vim"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel vim"
+
+ amove usr/share/ocp-indent/vim
+}
+
+_libdev() {
+ pkgdesc="$pkgdesc (development files)"
+ depends="$depends_dev ocaml-$pkgname=$pkgver-r$pkgrel"
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+
+}
+
+_lib() {
+ pkgdesc="$pkgdesc (library)"
+
+ amove usr/lib/ocaml
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+c5f8b63d6d3baabbadffba159d485f54f6e903eaa59a58b6df509e12e679b5b63a1cf7734d336d6b3456ea6ac74e42c58889199f2a3ed584566589d0c9bbfef5 ocp-indent-1.8.2.tar.gz
+"
diff --git a/testing/ocp-index/APKBUILD b/testing/ocp-index/APKBUILD
new file mode 100644
index 00000000000..5f08f93f5d3
--- /dev/null
+++ b/testing/ocp-index/APKBUILD
@@ -0,0 +1,109 @@
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=ocp-index
+pkgver=1.3.6
+pkgrel=0
+pkgdesc="Lightweight completion and documentation browsing for OCaml libraries"
+url="http://www.typerex.org/ocp-index.html"
+arch="all !riscv64 !loongarch64" # ocaml
+license="LGPL-2.1-only WITH OCaml-LGPL-linking-exception AND GPL-3.0-only"
+depends_dev="
+ ocaml-cmdliner-dev
+ ocaml-compiler-libs
+ ocaml-ocp-indent-dev
+ ocaml-re-dev
+ "
+makedepends="$depends_dev dune ocaml ocaml-cppo"
+subpackages="
+ $pkgname-doc
+ $pkgname-emacs::noarch
+ $pkgname-vim::noarch
+ ocaml-$pkgname-dev:_libdev
+ ocaml-$pkgname:_lib
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/OCamlPro/ocp-index/archive/refs/tags/$pkgver.tar.gz"
+_ocamldir=usr/lib/ocaml
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ dune build -p ocp-index --verbose
+}
+
+check() {
+ dune runtest --build-dir=.testenv -p ocp-index
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ ocp-index
+}
+
+emacs() {
+ pkgdesc="$pkgdesc in Emacs"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
+}
+
+vim() {
+ pkgdesc="$pkgdesc in vim"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel vim"
+
+ amove usr/share/ocp-index/vim
+}
+
+_libdev() {
+ pkgdesc="$pkgdesc (development files)"
+ depends="$depends_dev ocaml-$pkgname=$pkgver-r$pkgrel"
+
+ cd "$pkgdir"
+
+ local path; find $_ocamldir \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+
+}
+
+_lib() {
+ pkgdesc="$pkgdesc (library)"
+
+ amove usr/lib/ocaml
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+f8f97e846e37473a77636518ceefafa72a62f26ed9e7fc65ee4625498bcc1797187e895d903dfb2e874e93889956ee02b2e1f6f90c61717107db8e96d388d65a ocp-index-1.3.6.tar.gz
+"
diff --git a/testing/octave/APKBUILD b/testing/octave/APKBUILD
deleted file mode 100644
index c752c84ab49..00000000000
--- a/testing/octave/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Daniel Sabogal <dsabogalcc@gmail.com>
-# Maintainer:
-pkgname=octave
-pkgver=5.1.0
-pkgrel=1
-pkgdesc="A high-level language, primarily intended for numerical computations"
-url="https://www.gnu.org/software/octave/"
-arch="all !x86 !ppc64le !mips !mips64" # Tex dependencies aren't available for x86, openblas blocking on mips
-license="GPL-3.0-or-later"
-subpackages="$pkgname-doc"
-makedepends="autoconf automake libtool bison curl curl-dev fftw-dev fltk-dev fontconfig-dev
- freetype-dev gfortran glu-dev gnuplot imagemagick-dev hdf5-dev
- lapack-dev libsm-dev libltdl lcms2-dev openblas-dev pcre-dev perl pkgconf qt5-qtbase-dev
- readline-dev texinfo zlib-dev texlive texlive-dvi"
-source="https://ftp.gnu.org/gnu/octave/octave-$pkgver.tar.gz
- libinterp-deps.patch
- abs.patch
- "
-options="!check" # No test suite
-
-prepare() {
- default_prepare
-
- autoreconf -vif
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --infodir=/usr/share/info \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-shared \
- --disable-static \
- --with-qt
- make
-}
-
-package() {
- make DESTDIR="$pkgdir/" \
- -C "$builddir" install
- rm -rf "$pkgdir"/usr/lib/charset.alias
-}
-
-sha512sums="a842fb50c13f25e9d425fe9a2c71d9433d7e125747d2175efe0c9b2a780c799d9ce1ee085b5a13fbfedb7990b0ba5d11079d880ddb3bdb66782efc321390eebb octave-5.1.0.tar.gz
-093b13ad457e290d746908a5de1855071b2cd27b4c08101826d32fcf63398e863c3b72bb81f19255a04a880a2bf49e3ced1141bf7d0044db1328c6f2c9492f66 libinterp-deps.patch
-bcd111f35baf2681da2b1ad1edbe956ee359c5fb0114797b27747fa78e6f118406bb7fb325c1fa03c18e29815d2d4b8d9a28faf72c1fbbec526e8fbaed0cb820 abs.patch"
diff --git a/testing/octave/abs.patch b/testing/octave/abs.patch
deleted file mode 100644
index 3b892f3b5a2..00000000000
--- a/testing/octave/abs.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- octave-4.2.0/libinterp/corefcn/pr-output.cc.orig
-+++ octave-4.2.0/libinterp/corefcn/pr-output.cc
-@@ -3152,6 +3152,14 @@
- PRINT_INT_SCALAR_INTERNAL (int64_t)
- PRINT_INT_SCALAR_INTERNAL (uint64_t)
-
-+inline unsigned int abs (unsigned int x) { return x; }
-+inline long unsigned int abs (long unsigned int x) { return x; }
-+inline long long unsigned int abs (long long unsigned int x) { return x; }
-+inline short unsigned int abs (short unsigned int x) { return x; }
-+inline unsigned char abs (unsigned char x) { return x; }
-+inline signed char abs (signed char x) { return abs((int)x); }
-+inline short int abs (short int x) { return abs((int)x); }
-+
- template <typename T>
- /* static */ inline void
- octave_print_internal_template (std::ostream& os, const intNDArray<T>& nda,
diff --git a/testing/octave/libinterp-deps.patch b/testing/octave/libinterp-deps.patch
deleted file mode 100644
index 0c8736069d8..00000000000
--- a/testing/octave/libinterp-deps.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libinterp/corefcn/module.mk
-+++ b/libinterp/corefcn/module.mk
-@@ -318,6 +318,7 @@
- $(HDF5_CPPFLAGS) \
- $(LLVM_CPPFLAGS) \
- $(Z_CPPFLAGS)
-+libinterp_corefcn_libcorefcn_la_LIBADD = $(Z_LIBS)
-
- libinterp_corefcn_libcorefcn_la_CFLAGS = $(AM_CFLAGS) $(WARN_CFLAGS)
-
diff --git a/testing/octoprint-creality2xfix/APKBUILD b/testing/octoprint-creality2xfix/APKBUILD
new file mode 100644
index 00000000000..335ce48a7de
--- /dev/null
+++ b/testing/octoprint-creality2xfix/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=octoprint-creality2xfix
+pkgver=0.0.4
+pkgrel=1
+pkgdesc="Fixes the temperature reporting from the Creality Ender-3 v2 printer"
+url="https://github.com/SimplyPrint/OctoPrint-Creality2xTemperatureReportingFix"
+arch="noarch"
+license="MIT"
+depends="octoprint"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="https://github.com/SimplyPrint/OctoPrint-Creality2xTemperatureReportingFix/archive/refs/tags/$pkgver/OctoPrint-Creality2xTemperatureReportingFix-$pkgver.tar.gz"
+builddir="$srcdir/OctoPrint-Creality2xTemperatureReportingFix-$pkgver"
+
+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="
+7ef05e9e8cc4482f815ebbc5d58abb8569a5249ed38382838048ba72e7575aa47e84120bbb9d85ac06c2914702dabecb141e124fd50cf0bb805e2b5de790a35f OctoPrint-Creality2xTemperatureReportingFix-0.0.4.tar.gz
+"
diff --git a/testing/octoprint-filecheck/APKBUILD b/testing/octoprint-filecheck/APKBUILD
new file mode 100644
index 00000000000..8e53aee6cae
--- /dev/null
+++ b/testing/octoprint-filecheck/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=octoprint-filecheck
+pkgver=2024.3.27
+pkgrel=0
+pkgdesc="Checks for common issues in uploaded files"
+url="https://github.com/OctoPrint/OctoPrint-FileCheck"
+arch="noarch"
+license="AGPL-3.0-only"
+depends="octoprint"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="https://github.com/OctoPrint/OctoPrint-FileCheck/archive/refs/tags/$pkgver/OctoPrint-FileCheck-$pkgver.tar.gz"
+builddir="$srcdir/OctoPrint-FileCheck-$pkgver"
+
+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="
+5aa5709dabbd8ce7fee1867d6e140f2b2d6bbce15eacb0977d7044e788b9d5db358ea0d6e729c371772605fcf28902be65ffaab050670cbb5d9e9af3596ede17 OctoPrint-FileCheck-2024.3.27.tar.gz
+"
diff --git a/testing/octoprint-firmwarecheck/APKBUILD b/testing/octoprint-firmwarecheck/APKBUILD
new file mode 100644
index 00000000000..40e5d597c8f
--- /dev/null
+++ b/testing/octoprint-firmwarecheck/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=octoprint-firmwarecheck
+pkgver=2021.10.11
+pkgrel=1
+pkgdesc="Checks for unsafe or broken printer firmwares"
+url="https://github.com/OctoPrint/OctoPrint-FirmwareCheck"
+arch="noarch"
+license="AGPL-3.0-only"
+depends="octoprint"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="https://github.com/OctoPrint/OctoPrint-FirmwareCheck/archive/refs/tags/$pkgver/OctoPrint-FirmwareCheck-$pkgver.tar.gz"
+builddir="$srcdir/OctoPrint-FirmwareCheck-$pkgver"
+
+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="
+1916d1fb23869aec9eb8f7a837d9622e04fef551701874f5c82f4066bc1a9a6d46bead6cd0c7bd7c1a87bff30449be147534f9f3d94d21294c7f6d1ee8d9faf6 OctoPrint-FirmwareCheck-2021.10.11.tar.gz
+"
diff --git a/testing/octoprint-pisupport/APKBUILD b/testing/octoprint-pisupport/APKBUILD
new file mode 100644
index 00000000000..e7b72dd6b2b
--- /dev/null
+++ b/testing/octoprint-pisupport/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=octoprint-pisupport
+pkgver=2023.10.10
+pkgrel=0
+pkgdesc="OctoPrint plugin that provides additional information about your Pi in the UI"
+url="https://github.com/OctoPrint/OctoPrint-PiSupport"
+arch="noarch"
+license="AGPL-3.0-only"
+depends="octoprint"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-ddt py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/OctoPrint/OctoPrint-PiSupport/archive/refs/tags/$pkgver/OctoPrint-PiSupport-$pkgver.tar.gz"
+builddir="$srcdir/OctoPrint-PiSupport-$pkgver"
+
+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="
+ecc5f323efccfe3d7ebc2d57c47799bdac589fe2edbdceb4f162aa82453335b0a0a6d4e62bfb28f3b288b152a251c05b5f09559b43b43ba46ba1eb0935b2987f OctoPrint-PiSupport-2023.10.10.tar.gz
+"
diff --git a/testing/octoprint/APKBUILD b/testing/octoprint/APKBUILD
new file mode 100644
index 00000000000..aaec2c0c2db
--- /dev/null
+++ b/testing/octoprint/APKBUILD
@@ -0,0 +1,109 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=octoprint
+pkgver=1.10.0
+pkgrel=0
+pkgdesc="Snappy web interface for your 3D printer"
+url="https://octoprint.org/"
+arch="noarch"
+license="AGPL-3.0-only"
+depends="
+ py3-argon2-cffi
+ py3-babel
+ py3-blinker
+ py3-cachelib
+ py3-class-doc
+ py3-click
+ py3-colorlog
+ py3-emoji
+ py3-feedparser
+ py3-filetype
+ py3-flask
+ py3-flask-assets
+ py3-flask-babel
+ py3-flask-limiter
+ py3-flask-login
+ py3-frozendict
+ py3-future
+ py3-markdown
+ py3-netaddr
+ py3-netifaces
+ py3-passlib
+ py3-pathvalidate
+ py3-pkginfo
+ py3-psutil
+ py3-pydantic
+ py3-pylru
+ py3-pyserial
+ py3-regex
+ py3-requests
+ py3-sarge
+ py3-semantic-version
+ py3-sentry-sdk
+ py3-setuptools
+ py3-tornado
+ py3-unidecode
+ py3-watchdog
+ py3-websocket-client
+ py3-werkzeug
+ py3-wrapt
+ py3-yaml
+ py3-zeroconf
+ py3-zipstream-ng
+"
+makedepends="
+ py3-gpep517
+ py3-wheel
+ "
+checkdepends="
+ py3-ddt
+ py3-pytest
+ "
+pkgusers="octoprint"
+pkggroups="octoprint"
+install="$pkgname.pre-install"
+subpackages="
+ $pkgname-openrc
+ $pkgname-pyc
+ "
+source="
+ https://github.com/OctoPrint/OctoPrint/releases/download/$pkgver/OctoPrint-$pkgver.source.tar.gz
+
+ config.yaml
+ octoprint.initd
+
+ fix-tests.patch
+ netaddr-0.10.patch
+ pydantic-2.0.patch
+ "
+builddir="$srcdir/OctoPrint-$pkgver"
+
+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 -k 'not pip'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ install -Dm640 -o octoprint -g octoprint "$srcdir"/config.yaml "$pkgdir"/etc/octoprint/config.yaml
+ install -Dm755 "$srcdir"/octoprint.initd "$pkgdir"/etc/init.d/octoprint
+ install -d -o octoprint -g octoprint "$pkgdir"/var/log/octoprint/ "$pkgdir"/var/lib/octoprint/
+}
+
+sha512sums="
+e7aece7014e2c7b3c202a2fcbb6a2c43b6b15c2ae9d2534b454d4240e58512d94c66d556d8852e0c0c666864c075fa9cc4b0027ce7a5ce9239bdb97d2d1f8106 OctoPrint-1.10.0.source.tar.gz
+b56a37d1225d37caff1288b9c943ee86ed1f36653bbb311c835031e53e5f68e95be3ad9b53d333aad65508ba2a3ba786f80601bd74fef8efb1c3364a8fd85010 config.yaml
+3edd9971cc59fb66126f063ecac50a77792c5a3f5b718e03b7cbff74ff9f842c7784e7de2a56fb2e847a2bcb8e1c4fcfc52f8d236cdf3ecd511b230eea001162 octoprint.initd
+d678b87aaee4529b4d96f496862e5bec86df98491330328848ac06fec8d1f4571cfac995b2e9de26dcd2efc43b9dc24578d7f50cae1893fefc76470aee074f14 fix-tests.patch
+f99c752dccdee4821a88ac6e7ea98ac906002d734d2672bbd513b30d596b0c54b699071679581cdc46bfcd0eb98d6d032243a6d940f64620a69623a65db229bf netaddr-0.10.patch
+ed0bebc3632519b0adab58f6ef4666e0192ab72021f2c127146eec9c566551f04c49f05ace5a4056177f21605064146ac6259a88db15faaf88853fd3750abe88 pydantic-2.0.patch
+"
diff --git a/testing/octoprint/config.yaml b/testing/octoprint/config.yaml
new file mode 100644
index 00000000000..e3617db687f
--- /dev/null
+++ b/testing/octoprint/config.yaml
@@ -0,0 +1,153 @@
+# this is just some subset of the config. comments WILL disappear, octoprint edits this file.
+# for full reference, see:
+# https://docs.octoprint.org/en/master/configuration/config_yaml.html
+
+access_control:
+ # The YAML user file to use. If left out defaults to users.yaml in the default configuration folder.
+ userfile: /etc/octoprint/users.yaml
+
+ # If set to true, will automatically log on clients originating from any of the networks defined in
+ # "localNetworks" as the user defined in "autologinAs". Defaults to false.
+ #autologinLocal: false
+
+ # The name of the user to automatically log on clients originating from "localNetworks" as. Must
+ # be the name of one of your configured users.
+ #autologinAs: someUser
+
+ # A list of networks or IPs for which an automatic logon as the user defined in "autologinAs" will
+ # take place. If available OctoPrint will evaluate the "X-Forwarded-For" HTTP header for determining
+ # the client's IP address (see https://code.google.com/p/haproxy-docs/wiki/forwardfor on how to
+ # configure the sending of this header in HAProxy). Defaults to 127.0.0.0/8 (so basically anything
+ # originating from localhost).
+ #localNetworks:
+ #- 127.0.0.0/8
+ #- 192.168.1.0/24
+
+ # Whether to trust Basic Authentication headers. If you have setup Basic Authentication in front of
+ # OctoPrint and the user names you use there match OctoPrint accounts, by setting this to true users will
+ # be logged into OctoPrint as the user user during Basic Authentication. Your should ONLY ENABLE THIS if your
+ # OctoPrint instance is only accessible through a connection locked down through Basic Authentication!
+ #trustBasicAuthentication: false
+
+ # Whether to also check the password provided through Basic Authentication if the Basic Authentication
+ # header is to be trusted. Disabling this will only match the user name in the Basic Authentication
+ # header and login the user without further checks. Use with caution.
+ #checkBasicAuthenticationPassword: true
+
+ # Whether to trust remote user headers. If you have setup authentication in front of
+ # OctoPrint and the user names you use there match OctoPrint accounts, by setting this to true users will
+ # be logged into OctoPrint as the user provided in the header. Your should ONLY ENABLE THIS if your
+ # OctoPrint instance is only accessible through a connection locked down through an authenticating reverse proxy!
+ #trustRemoteUser: false
+
+ # Header used by the reverse proxy to convey the authenticated user.
+ #remoteUserHeader: REMOTE_USER
+
+ # If a remote user is not found, add them. Use this only if all users from the remote system can use OctoPrint.
+ #addRemoteUsers: false
+
+
+api:
+ # Whether to enable the API
+ #enabled: True
+
+ # Current API key needed for accessing the API
+ #key: ...
+
+ # Whether to allow cross origin access to the API or not
+ #allowCrossOrigin: false
+
+
+folder:
+ # Absolute path where to store gcode uploads. Defaults to the uploads folder in the OctoPrint settings folder
+ uploads: /var/lib/octoprint/uploads
+
+ # Absolute path where to store finished timelapse recordings. Defaults to the timelapse folder in the OctoPrint
+ # settings dir
+ timelapse: /var/lib/octoprint/timelapse
+
+ # Absolute path where to store temporary timelapse files. Defaults to the timelapse/tmp folder in the OctoPrint
+ # settings dir
+ timelapse_tmp: /var/lib/octoprint/timelapse_tmp
+
+ # Absolute path where to store log files. Defaults to the logs folder in the OctoPrint settings dir
+ logs: /var/log/octoprint
+
+ # Absolute path to the virtual printer's simulated SD card. Only useful for development, just ignore
+ # it otherwise
+ virtualSd: /var/lib/octoprint/virtualSd
+
+ # Absolute path to a folder being watched for new files which then get automatically
+ # added to OctoPrint (and deleted from that folder). Can e.g. be used to define a folder which
+ # can then be mounted from remote machines and used as local folder for quickly adding downloaded
+ # and/or sliced objects to print in the future.
+ watched: /run/octoprint/watched
+
+ # Absolute path to a folder where manually installed plugins may reside
+ plugins: /var/lib/octoprint/plugins
+
+ # Absolute path where to store slicing profiles
+ slicingProfiles: /etc/octoprint/slicingProfiles
+
+ # Absolute path where to store printer profiles
+ printerProfiles: /etc/octoprint/printerProfiles
+
+ # Absolute path where to store (GCODE) scripts
+ scripts: /var/lib/octoprint/scripts
+
+
+server:
+ # Use this option to define the host to which to bind the server, defaults to "0.0.0.0" (= all
+ # interfaces)
+ host: 0.0.0.0
+
+ # Use this option to define the port to which to bind the server, defaults to 5000
+ port: 5000
+
+ # If this option is true, OctoPrint will show the First Run wizard and set the setting to
+ # false after that completes
+ firstRun: true
+
+ # Settings if OctoPrint is running behind a reverse proxy (haproxy, nginx, apache, ...).
+ # These are necessary in order to make OctoPrint generate correct external URLs so
+ # that AJAX requests and download URLs work, and so that client IPs are read correctly.
+ reverseProxy:
+
+ # The request header from which to determine the URL prefix under which OctoPrint
+ # is served by the reverse proxy
+ #prefixHeader: X-Script-Name
+
+ # The request header from which to determine the scheme (http or https) under which
+ # a specific request to OctoPrint was made to the reverse proxy
+ #schemeHeader: X-Scheme
+
+ # The request header from which to determine the host under which OctoPrint
+ # is served by the reverse proxy
+ #hostHeader: X-Forwarded-Host
+
+ # Use this option to define an optional URL prefix (with a leading /, so absolute to your
+ # server's root) under which to run OctoPrint. This should only be needed if you want to run
+ # OctoPrint behind a reverse proxy under a different root endpoint than `/` and can't configure
+ # said reverse proxy to send a prefix HTTP header (X-Script-Name by default, see above) with
+ # forwarded requests.
+ #prefixFallback: ""
+
+ # Use this option to define an optional forced scheme (http or https) under which to run
+ # OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse
+ # proxy that also does HTTPS determination but can't configure said reverse proxy to
+ # send a scheme HTTP header (X-Scheme by default, see above) with forwarded requests.
+ #schemeFallback: ""
+
+ # Use this option to define an optional forced host under which to run OctoPrint. This should
+ # only be needed if you want to run OctoPrint behind a reverse proxy with a different hostname
+ # than OctoPrint itself but can't configure said reverse proxy to send a host HTTP header
+ # (X-Forwarded-Host by default, see above) with forwarded requests.
+ #hostFallback: ""
+
+ # List of trusted downstream servers for which to ignore the IP address when trying to determine
+ # the connecting client's IP address. If you have OctoPrint behind more than one reverse proxy
+ # you should add their IPs here so that they won't be interpreted as the client's IP. One reverse
+ # proxy will be handled correctly by default.
+ #trustedDownstream:
+ #- 192.168.1.254
+ #- 192.168.23.42
diff --git a/testing/octoprint/fix-tests.patch b/testing/octoprint/fix-tests.patch
new file mode 100644
index 00000000000..9a52286c1e7
--- /dev/null
+++ b/testing/octoprint/fix-tests.patch
@@ -0,0 +1,9 @@
+--- ./pytest.ini.orig
++++ ./pytest.ini
+@@ -1,5 +1,3 @@
+ [pytest]
+ testpaths = src tests
+-addopts = --doctest-modules
+- --doctest-repr=octoprint.util:pp
+- --ignore=src/octoprint/vendor
++addopts = --ignore=src/octoprint/vendor
diff --git a/testing/octoprint/netaddr-0.10.patch b/testing/octoprint/netaddr-0.10.patch
new file mode 100644
index 00000000000..54f71330b03
--- /dev/null
+++ b/testing/octoprint/netaddr-0.10.patch
@@ -0,0 +1,33 @@
+From 519b66c312e903c8485470a2792bbfaa5dc5e10a Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Thu, 15 Feb 2024 03:18:46 +0100
+Subject: [PATCH] upgrade netaddr to 0.10.x
+
+---
+ AUTHORS.md | 1 +
+ setup.py | 2 +-
+ src/octoprint/util/net.py | 7 ++++---
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/src/octoprint/util/net.py b/src/octoprint/util/net.py
+index e3fc10d5f7..4207a212e7 100644
+--- a/src/octoprint/util/net.py
++++ b/src/octoprint/util/net.py
+@@ -102,13 +102,14 @@ def to_ipnetwork(address):
+ )
+ )
+
+- subnets += list(netaddr.ip.IPV4_PRIVATE) + [
++ subnets += list(netaddr.ip.IPV4_PRIVATE_USE) + [
+ netaddr.ip.IPV4_LOOPBACK,
+ netaddr.ip.IPV4_LINK_LOCAL,
+ ]
+ if HAS_V6:
+- subnets += list(netaddr.ip.IPV6_PRIVATE) + [
+- netaddr.IPNetwork(netaddr.ip.IPV6_LOOPBACK),
++ subnets += [
++ netaddr.ip.IPV6_UNIQUE_LOCAL,
++ netaddr.ip.IPV6_LOOPBACK,
+ netaddr.ip.IPV6_LINK_LOCAL,
+ ]
+
diff --git a/testing/octoprint/octoprint.initd b/testing/octoprint/octoprint.initd
new file mode 100644
index 00000000000..691c0fa5760
--- /dev/null
+++ b/testing/octoprint/octoprint.initd
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+
+command="/usr/bin/octoprint"
+command_args="serve --basedir /etc/octoprint"
+command_user="octoprint:octoprint"
+directory="/var/lib/octoprint"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 755 -o "octoprint:octoprint" /etc/octoprint
+ checkpath -d -m 755 -o "octoprint:octoprint" /run/octoprint
+ checkpath -d -m 755 -o "octoprint:octoprint" /run/octoprint/watched
+ checkpath -d -m 755 -o "octoprint:octoprint" /var/lib/octoprint
+ checkpath -d -m 755 -o "octoprint:octoprint" /var/log/octoprint
+
+ # contains secrets for api, cookies
+ checkpath -f -m 640 -o "octoprint:octoprint" /etc/octoprint/config.yaml
+}
diff --git a/testing/octoprint/octoprint.pre-install b/testing/octoprint/octoprint.pre-install
new file mode 100644
index 00000000000..0bbbbd37d8e
--- /dev/null
+++ b/testing/octoprint/octoprint.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S octoprint 2>/dev/null
+adduser -S -D -H -h /var/lib/octoprint -s /sbin/nologin -G octoprint -g octoprint octoprint 2>/dev/null
+
+exit 0
diff --git a/testing/octoprint/pydantic-2.0.patch b/testing/octoprint/pydantic-2.0.patch
new file mode 100644
index 00000000000..1fc21eee45c
--- /dev/null
+++ b/testing/octoprint/pydantic-2.0.patch
@@ -0,0 +1,28 @@
+--- ./src/octoprint/vendor/with_attrs_docs.py.orig
++++ ./src/octoprint/vendor/with_attrs_docs.py
+@@ -4,7 +4,6 @@
+
+ from typing import Type
+
+-from class_doc import extract_docs_from_cls_obj
+ from pydantic import BaseModel
+
+
+@@ -17,16 +16,7 @@
+ :param model: any pydantic model
+ :param override_existing: override existing descriptions
+ """
+- docs = extract_docs_from_cls_obj(model)
+-
+- for field in model.__fields__.values():
+- if field.field_info.description and not override_existing:
+- continue
+-
+- try:
+- field.field_info.description = '\n'.join(docs[field.name])
+- except KeyError:
+- pass
++ pass
+
+
+ def with_attrs_docs(
diff --git a/testing/odyssey/APKBUILD b/testing/odyssey/APKBUILD
index a0c0ad02e66..7ca28068ef3 100644
--- a/testing/odyssey/APKBUILD
+++ b/testing/odyssey/APKBUILD
@@ -1,16 +1,24 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=odyssey
-pkgver=1.1
-pkgrel=1
+pkgver=1.3
+pkgrel=2
pkgdesc="Scalable PostgreSQL connection pooler"
url="https://github.com/yandex/odyssey"
arch="x86_64 x86" # limited by machinarium supported architecture
license="BSD-3-Clause"
-makedepends="cmake postgresql-dev openssl-dev linux-pam-dev"
+makedepends="
+ argp-standalone
+ cmake
+ linux-pam-dev
+ openssl-dev
+ postgresql-dev
+ "
options="!check" # https://github.com/yandex/odyssey/issues/134
subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver-$pkgrel.tar.gz::https://github.com/yandex/odyssey/archive/$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/yandex/odyssey/archive/$pkgver.tar.gz
+ argp.patch
+ types.patch
odyssey.initd
odyssey.confd"
@@ -18,14 +26,13 @@ build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
+ export CXXFLAGS="$CXXFLAGS -I$(pg_config --includedir)/server)"
cmake -B build \
- -DPOSTGRESQL_INCLUDE_DIR="$(pg_config --includedir)/server" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=None \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- $CMAKE_CROSSOPTS .
- make -C build
+ $CMAKE_CROSSOPTS
+ cmake --build build
}
check() {
@@ -45,6 +52,10 @@ package() {
}
-sha512sums="640eb0c68c274ad2b58edf854ae969e47b83376303c39a61cb8752598feb1afe612e62e41a373fa2630dea2f2b1682b2427058501b2db1b4f5b5eb1d9cc03090 odyssey-1.1-1.tar.gz
+sha512sums="
+d78fd48439074fe75b800051d69ed611efdafdceff339a9fbae5bb4c961c1f934c4c6e6e10c0350ad240977d8ad655586e55c7f7153528abebb7175a62fe68e6 odyssey-1.3.tar.gz
+8b3c6ca3490cf96d3578161fb7ed35fc3fbb56bed8d71dcdf4cbdce284cd352b14fc0ad6c309e087b198c4fdab3859d274825a0f77f4282b27bfd7df7077f52d argp.patch
+d938644040a555349a50f8b9cbe7b111c105f8a3d96609152aeb86880c7c6529f0a05202358bce7674ce2244d8657ae0e1781a7386e94ed124e5b975e29d987d types.patch
a1f129b06476c103465e9e649e88e1d5da071a377453e7a5b6dce4734928e8a5eb1c29b4a026d38b81587e6ca813ac3f533c668a264ae4ae7997716c2ec85715 odyssey.initd
-1e9fdd3cc7cf0d789b2ea57b275cca6de171d3adc887f1cddfb5a0b273988a514db133e58403fd5a01ec0511446b8746c6a78137df1d5141c7499065e9bd745a odyssey.confd"
+1e9fdd3cc7cf0d789b2ea57b275cca6de171d3adc887f1cddfb5a0b273988a514db133e58403fd5a01ec0511446b8746c6a78137df1d5141c7499065e9bd745a odyssey.confd
+"
diff --git a/testing/odyssey/argp.patch b/testing/odyssey/argp.patch
new file mode 100644
index 00000000000..5efbc3b08db
--- /dev/null
+++ b/testing/odyssey/argp.patch
@@ -0,0 +1,13 @@
+diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt
+index 81f91a9..602d327 100644
+--- a/sources/CMakeLists.txt
++++ b/sources/CMakeLists.txt
+@@ -77,7 +77,7 @@ if(THREADS_HAVE_PTHREAD_ARG)
+ set_property(TARGET ${od_binary} PROPERTY INTERFACE_COMPILE_OPTIONS "-pthread")
+ endif()
+
+-target_link_libraries(${od_binary} ${od_libraries} ${CMAKE_THREAD_LIBS_INIT} m)
++target_link_libraries(${od_binary} ${od_libraries} ${CMAKE_THREAD_LIBS_INIT} m argp)
+
+ if (BUILD_COMPRESSION)
+ target_link_libraries(${od_binary} ${compression_libraries})
diff --git a/testing/odyssey/types.patch b/testing/odyssey/types.patch
new file mode 100644
index 00000000000..8e4dd145d50
--- /dev/null
+++ b/testing/odyssey/types.patch
@@ -0,0 +1,12 @@
+diff --git a/third_party/machinarium/sources/zpq_stream.h b/third_party/machinarium/sources/zpq_stream.h
+index 70ef5e2..f86b3d2 100644
+--- a/third_party/machinarium/sources/zpq_stream.h
++++ b/third_party/machinarium/sources/zpq_stream.h
+@@ -9,6 +9,7 @@
+ #define MM_ZPQ_STREAM_H
+
+ #include <stdlib.h>
++#include <sys/types.h>
+
+ #define MM_ZPQ_IO_ERROR (-1)
+ #define MM_ZPQ_DECOMPRESS_ERROR (-2)
diff --git a/testing/ogdi/10-optimisation.patch b/testing/ogdi/10-optimisation.patch
deleted file mode 100644
index 8efa6ad6221..00000000000
--- a/testing/ogdi/10-optimisation.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Author: Holger Jaekel <holger.jaekel@gmx.de>
-Summary: allow optimisation flags from build script
-Upstream: No
-----
-
---- a/config/unix.mak
-+++ b/config/unix.mak
-@@ -55,7 +55,7 @@ LINK_SW = -L
- ifeq ($(CFG),debug)
- OPTIMIZATION = -g
- else
--OPTIMIZATION = -O
-+OPTIMIZATION =
- endif
-
- #
diff --git a/testing/ogdi/20-external.patch b/testing/ogdi/20-external.patch
deleted file mode 100644
index e95562f3c4f..00000000000
--- a/testing/ogdi/20-external.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Author: Holger Jaekel <holger.jaekel@gmx.de>
-Summary: ignore external directory as we want to use provided libraries
-Upstream: No
-----
-
---- a/makefile
-+++ b/makefile
-@@ -17,7 +17,7 @@
- #
- # Sub-directories that need to be built
- #
--subdirs = external vpflib ogdi contrib
-+subdirs = vpflib ogdi contrib
-
- #
- # Default target to build everything in all sub-directories
-diff -urN a/ogdi/makefile b/ogdi/makefile
---- a/ogdi/makefile
-+++ b/ogdi/makefile
-@@ -15,7 +15,7 @@
- #
- # Sub-directories that need to be built
- #
--subdirs = include c-api glutil attr_driver driver gltpd examples
-+subdirs = include c-api glutil attr_driver driver gltpd
-
- #
- # Default target to build everything in all sub-directories
diff --git a/testing/ogdi/APKBUILD b/testing/ogdi/APKBUILD
deleted file mode 100644
index 2af4a474db4..00000000000
--- a/testing/ogdi/APKBUILD
+++ /dev/null
@@ -1,93 +0,0 @@
-# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
-# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
-pkgname=ogdi
-pkgver=4.1.0
-_testver=3.1.0
-pkgrel=0
-pkgdesc="Open Geographic Datastore Interface Library"
-url="http://ogdi.sourceforge.net/"
-arch="all"
-license="MIT"
-makedepends="
- expat-dev
- libtirpc-dev
- tcl-dev
- unixodbc-dev
- zlib-dev
- "
-subpackages="
- $pkgname-dev
- $pkgname-odbc
- $pkgname-tcl
- "
-source="
- https://downloads.sourceforge.net/project/ogdi/ogdi/$pkgver/ogdi-$pkgver.tar.gz
- https://downloads.sourceforge.net/project/ogdi/OGDI_Test_Suite/${_testver%.*}/ogdits-$_testver.tar.gz
- 10-optimisation.patch
- 20-external.patch
- "
-
-build() {
- export TOPDIR=$builddir TARGET=Linux LD_LIBRARY_PATH=$TOPDIR/bin/Linux
- rm -r external
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-binconfigs \
- --with-zlib \
- --with-expat
- make -j1 # fails to find own libraries if built with more buildjobs
-
- # build tcl interface
- make -C ogdi/tcl_interface \
- TCL_LINKLIB="-ltcl8.6"
-
- # build contributions
- make -C contrib/gdal
-
- # build odbc drivers
- make -C ogdi/attr_driver/odbc \
- ODBC_LINKLIB="-lodbc"
-}
-
-check() {
- export TOPDIR=$builddir TARGET=Linux LD_LIBRARY_PATH=$TOPDIR/bin/Linux PATH=$PATH:$builddir/bin/Linux
- ogdi_info -u gltp:/vrf/$srcdir/ogdits-${_testver%.*}/data/vpf/vm2alv2/texash | \
- grep "Projection = \`+proj=longlat +datum=wgs84'"
-}
-
-package() {
- export TOPDIR=$builddir TARGET=Linux
- make install \
- INST_INCLUDE=$pkgdir/usr/include/ogdi \
- INST_LIB=$pkgdir/usr/lib \
- INST_BIN=$pkgdir/usr/bin
-
- # install gdal contribution
- make install -C contrib/gdal \
- INST_LIB=$pkgdir/usr/lib
-
- # install pkgconfig file
- mkdir -p $pkgdir/usr/lib/pkgconfig
- install -p -m 644 ogdi.pc $pkgdir/usr/lib/pkgconfig
-}
-
-odbc() {
- pkgdesc="ODBC driver for $pkgdesc"
- export TOPDIR=$builddir TARGET=Linux
- make install -C $builddir/ogdi/attr_driver/odbc \
- INST_LIB=$subpkgdir/usr/lib
-}
-
-tcl() {
- pkgdesc="TCL wrapper for $pkgdesc"
- export TOPDIR=$builddir TARGET=Linux
- make install -C $builddir/ogdi/tcl_interface \
- INST_LIB=$subpkgdir/usr/lib
-}
-
-sha512sums="abfc409bfa5ea2f81a90c16361fe6cdc2b2ee39775c22ceb74b13b171aa04d6d6eaffe398cae0ef91dcde8509e5cc25100eedeffdad358e090b78e118d386859 ogdi-4.1.0.tar.gz
-7fbd7c165466b6bf298d3d18b33c13b6f0166c3b1efe12b7c09e77539a20076950bc89db6c4e1e411ba374ebcf81744ec0410d3a414f395bd12339a7ae0e336b ogdits-3.1.0.tar.gz
-24682c9e893e410d08bfc0a1b06196e5d0555d4b552e07662ec26433e07f44a8f99686f79a1a5ed40de71f7da838516ffc33918837a6d79f35ab2a9b380f5592 10-optimisation.patch
-ca0283bd2791919bc4ae71af6ecf8d8900376fdef6b1d0808ae7d598501225c8a652e865214c43efc937e0d9514780f556100128c3dabff71a4792c8dd68380c 20-external.patch"
diff --git a/testing/oh-my-zsh/APKBUILD b/testing/oh-my-zsh/APKBUILD
index 0771b41330c..05d60a51840 100644
--- a/testing/oh-my-zsh/APKBUILD
+++ b/testing/oh-my-zsh/APKBUILD
@@ -1,31 +1,31 @@
# Contributor: Orson Teodoro <orsonteodoro@hotmail.com>
-# Maintainer: Orson Teodoro <orsonteodoro@hotmail.com>
-
+# Maintainer: Jacek Pruciak <alpine@juniorjpdj.pl>
pkgname=oh-my-zsh
-pkgver=0_git20180122
+pkgver=0_git20220104
pkgrel=1
-pkgdesc="A delightful community-driven framework for managing your zsh \
-configuration that includes plugins and themes."
+pkgdesc="A delightful community-driven framework for managing your zsh configuration that includes plugins and themes"
url="https://ohmyz.sh/"
arch="noarch"
license="MIT"
depends="zsh powerline-extra-symbols"
subpackages="$pkgname-doc"
options="!check" # no upstream tests
-_gitrev="37c2d0ddd751e15d0c87a51e2d9f9849093571dc"
+_gitrev="31d63ea884e8ef56a40bed8771cdd8d3aec131f9"
install="$pkgname.post-install $pkgname.post-upgrade"
-source="$pkgname-$pkgver.zip::https://github.com/robbyrussell/$pkgname/archive/$_gitrev.zip
+source="$pkgname-$pkgver.tar.gz::https://github.com/ohmyzsh/ohmyzsh/archive/$_gitrev.tar.gz
install-path.patch"
builddir="$srcdir/"ohmyzsh-$_gitrev
package() {
install -d "$pkgdir"/usr/share/oh-my-zsh/ \
"$pkgdir"/usr/share/doc/$pkgname/
- chmod 755 $(find . -type d)
- mv * "$pkgdir"/usr/share/oh-my-zsh/
+ find . -type d -exec chmod 755 {} \;
+ mv ./* "$pkgdir"/usr/share/oh-my-zsh/
install -t "$pkgdir"/usr/share/doc/$pkgname/ \
"$pkgdir"/usr/share/oh-my-zsh/README.md
}
-sha512sums="a463595e15fe0cbe23d48bab1366032db2446305e7d30410b258ba4c7109bdbd35e366026215a0047383b449121be7a3872b1abb8d4fbd4ced4dcdad29147b06 oh-my-zsh-0_git20180122.zip
-56bcb688489dcf74ba09a2924bd029786273781cf801c990f4ac2ccf53e4d54143f6c59ff49d0fa11189e07f16665ab7329dead0b9853da7bf1480caa419bf15 install-path.patch"
+sha512sums="
+1e6dae9ea56e1644001a65b3aeebcd2a5e4bd4ef6fb2869c2626c582ffeca7dbd63d2d271854ac59c2753cdf36ef3a0f7d7bcc0ffdf10bdacb2d3039b0e40b84 oh-my-zsh-0_git20220104.tar.gz
+1fa69780fdda6103ff70bf46458985d261309673b7d554b0443344e611671d2de640ced887335a9b9cadb1225f88ddca3c8386cb65eb0c92ba6e0b08d8729a6e install-path.patch
+"
diff --git a/testing/oh-my-zsh/install-path.patch b/testing/oh-my-zsh/install-path.patch
index 38859964493..270b7a1590b 100644
--- a/testing/oh-my-zsh/install-path.patch
+++ b/testing/oh-my-zsh/install-path.patch
@@ -1,3 +1,6 @@
+Upstream: No, Alpine Linux specific
+Reason: Uses proper path for oh-my-zsh
+
--- a/templates/zshrc.zsh-template.orig
+++ b/templates/zshrc.zsh-template
@@ -2,7 +2,7 @@
@@ -5,7 +8,7 @@
# Path to your oh-my-zsh installation.
-export ZSH=$HOME/.oh-my-zsh
-+export ZSH=/usr/share/
++export ZSH=/usr/share/oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
diff --git a/testing/oil/APKBUILD b/testing/oil/APKBUILD
new file mode 100644
index 00000000000..c8bfc944917
--- /dev/null
+++ b/testing/oil/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Miles Alan <m@milesalan.com>
+# Contributor: Miles Alan <m@milesalan.com>
+pkgname=oil
+pkgver=0.21.0
+pkgrel=0
+pkgdesc="Oil is a new POSIX & bash compatible shell"
+url="https://www.oilshell.org"
+arch="all"
+license="Apache-2.0"
+# !check as source has tests, but tagged releases don't
+# !strip as oil binary shows error message otherwise, see: https://github.com/oilshell/oil/issues/47
+options="!strip !check"
+makedepends="readline-dev bash"
+subpackages="$pkgname-doc"
+source="https://www.oilshell.org/download/oil-$pkgver.tar.gz"
+
+build() {
+ # not gnu autoconf
+ ./configure \
+ --prefix /usr \
+ --datarootdir /usr/share
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+ install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
+}
+
+sha512sums="
+6226fba20a7dd53344d4cd710bb5b4ffe65a9cf5413bff965e99af01c161f555c556296aebe2b842376e825c96a0dfc538964d3d1c904e61cab26bb1850ddfdc oil-0.21.0.tar.gz
+"
diff --git a/testing/ois/APKBUILD b/testing/ois/APKBUILD
deleted file mode 100644
index 42daa63976e..00000000000
--- a/testing/ois/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Clayton Craft <clayton@craftyguy.net>
-# Maintainer: Clayton Craft <clayton@craftyguy.net>
-pkgname=ois
-pkgver=1.5
-pkgrel=0
-pkgdesc="Object Oriented Input System"
-# Note: only tested on the following archs, may work on others too but not
-# adding them until this has been confirmed
-arch="x86_64 aarch64"
-url="https://github.com/wgois/OIS"
-license="Zlib"
-makedepends="cmake gcc libxaw libx11-dev linux-headers"
-source=$pkgname-$pkgver.tar.gz::"https://github.com/wgois/OIS/archive/v$pkgver.tar.gz"
-subpackages="$pkgname-dev"
-options="!check" # Package does not include any tests
-
-builddir=$srcdir/OIS-$pkgver
-
-build() {
- cmake -B build . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-sha512sums="5ab1dda7c25c1959ccbbb758ea3fda36bd62ad65f46e2c6b418317a5eb39e0bace52a44ae079dfb69fc58c90df54f8e50d589daae1100ec615325363c9d77513 ois-1.5.tar.gz"
diff --git a/testing/ol/APKBUILD b/testing/ol/APKBUILD
new file mode 100644
index 00000000000..6cd74abb6df
--- /dev/null
+++ b/testing/ol/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Yuriy Chumak <yuriy.chumak@mail.com>
+# Maintainer: Yuriy Chumak <yuriy.chumak@mail.com>
+pkgname=ol
+pkgver=2.4
+pkgrel=0
+pkgdesc="Purely functional dialect of Lisp"
+url="https://yuriy-chumak.github.io/ol/"
+arch="all"
+license="LGPL-3.0-or-later OR MIT"
+makedepends="xxd"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/yuriy-chumak/ol/archive/refs/tags/$pkgver.tar.gz
+ GNUmakefile.patch
+ tests-Makefile.patch
+ memfd_create.patch
+ "
+
+build() {
+ make HAS_SECCOMP=0
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+c280da70f04637e1c822ab5a4b6eda3a1e1602b4c1fbd59731be2619fb09b0acb079841ba142f9b7b80cbf7539b1c7bd15603311b2ae4a30636f174a1ba2499b ol-2.4.tar.gz
+07db7f6bc4a0a039865bb59fa09b0a10e6d0f0d644ab846435fb5fd6fe6e84a11e8c2736ea41b81b31445a57c45f1e0d7573132dd69c1beb5e144a1ee90ac995 GNUmakefile.patch
+fa5bdc23dda4139f04597e1d2f41ce99007378b457ddfd36b0ab5a1f932d5147c88b123fee6aececc7cec632eca2e54c514a097f3dffda5d156b1d57882742c7 tests-Makefile.patch
+da7466825b62cc8d918de012cecee85b6c54d66c3e051bacc3210f6b2459c6ffc6325be52257baf189aed1ab73f42c1661aa6e18508e4aeef2c4d5a7faa93705 memfd_create.patch
+"
diff --git a/testing/ol/GNUmakefile.patch b/testing/ol/GNUmakefile.patch
new file mode 100644
index 00000000000..6f0997ae6a7
--- /dev/null
+++ b/testing/ol/GNUmakefile.patch
@@ -0,0 +1,21 @@
+diff --git a/GNUmakefile b/GNUmakefile
+index 16403d50..42533737 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -57,9 +58,13 @@ CFLAGS_DEBUG := -O0 -g2 -Wall
+ CFLAGS_RELEASE := $(if $(RPM_OPT_FLAGS), $(RPM_OPT_FLAGS), -O2 -DNDEBUG)
+ CFLAGS_RELEASE += -DCAR_CHECK=0 -DCDR_CHECK=0
+
+-CFLAGS += -DHAS_SOCKETS=$(if $(HAS_SOCKETS),1,0)
+-CFLAGS += -DHAS_DLOPEN=$(if $(HAS_DLOPEN),1,0)
+-CFLAGS += -DHAS_SANDBOX=$(if $(HAS_SECCOMP),1,0)
++CFLAGS += -DHAS_SOCKETS=$(if $(HAS_SOCKETS),$(HAS_SOCKETS),0)
++CFLAGS += -DHAS_DLOPEN=$(if $(HAS_DLOPEN),$(HAS_DLOPEN),0)
++CFLAGS += -DHAS_SANDBOX=$(if $(HAS_SECCOMP),$(HAS_SECCOMP),0)
++
++ifneq ($(HAS_MEMFD_CREATE),)
++CFLAGS += -DHAS_MEMFD_CREATE=$(HAS_MEMFD_CREATE)
++endif
+
+ VERSION ?= $(shell echo `git describe --tags \`git rev-list --tags --max-count=1\``-`git rev-list HEAD --count`-`git log --pretty=format:'%h' -n 1`)
+
diff --git a/testing/ol/memfd_create.patch b/testing/ol/memfd_create.patch
new file mode 100644
index 00000000000..a3ec7b65c33
--- /dev/null
+++ b/testing/ol/memfd_create.patch
@@ -0,0 +1,107 @@
+diff --git a/configure.mk b/configure.mk
+index f784608f..bd8d8596 100644
+--- a/configure.mk
++++ b/configure.mk
+@@ -52,6 +52,8 @@ HAS_DLOPEN ?= $(call exists,,stdlib.h, dlopen, -ldl)
+ HAS_SECCOMP ?= $(call exists,,linux/seccomp.h, prctl)
+ HAS_SOCKETS ?= $(call exists,,stdlib.h, socket)
+
++HAS_MEMFD_CREATE ?= $(call exists,,sys/mman.h, memfd_create)
++
+ # computing native x11 variables
+ ifeq ($(UNAME),Linux)
+ x11_sizeof = $(shell echo "'|sizeof $1| (if x86? $(call sizeof,$1,,-m32 -include X11/Xlib.h) $(call sizeof,$1,,-m64 -include X11/Xlib.h))")
+diff --git a/src/olvm.c b/src/olvm.c
+index e614e359..fae38d50 100644
+--- a/src/olvm.c
++++ b/src/olvm.c
+@@ -1015,8 +1015,7 @@ __attribute__((used)) const char copyright[] = "@(#)(c) 2014-2023 Yuriy Chumak";
+ # define SYSCALL_PRCTL 0
+
+ # define HAS_SOCKETS 0
+-
+-# define SYSCALL_MEMFD 0
++# define HAS_MEMFD_CREATE 0
+ #endif
+
+ #ifdef __ANDROID__
+@@ -1035,7 +1034,7 @@ __attribute__((used)) const char copyright[] = "@(#)(c) 2014-2023 Yuriy Chumak";
+ # define SYSCALL_GETRLIMIT 0
+
+ # if __ANDROID_API__ < 30
+-# define SYSCALL_MEMFD 0
++# define HAS_MEMFD_CREATE 0
+ # endif
+ #endif
+
+@@ -1157,7 +1156,7 @@ __attribute__((used)) const char copyright[] = "@(#)(c) 2014-2023 Yuriy Chumak";
+ #endif
+
+ #ifndef HAS_SENDFILE
+-# if defined(_WIN32) || defined(__linux__)
++# if defined(_WIN32) || defined(__linux__) || defined(__APPLE__)
+ # define HAS_SENDFILE HAS_SOCKETS
+ # else
+ # define HAS_SENDFILE 0
+@@ -1274,7 +1273,28 @@ __attribute__((used)) const char copyright[] = "@(#)(c) 2014-2023 Yuriy Chumak";
+ # define __builtin_pow pow
+ #endif
+
+-#include <sys/mman.h> // we have own win32 implementation
++#ifdef __linux__
++# if HAS_MEMFD_CREATE
++# include <sys/mman.h>
++# else
++# undef HAS_MEMFD_CREATE
++# define HAS_MEMFD_CREATE 1
++ static // not a real memfd_create, but compatibility wrapper
++ int memfd_create (char* name, unsigned int flags)
++ {
++ (void) name;
++ assert (flags == 0);
++
++ char tmp_m[] = "/tmp/memfd_olvmXXXXXX";
++ int fd = mkstemp(tmp_m); unlink(tmp_m);
++
++ return fd;
++ }
++# endif
++#else
++# include <sys/mman.h> // we have own win32/macos implementation
++#endif
++
+ #include <sys/utsname.h> // we have own win32 implementation
+ #if HAS_DLOPEN
+ # include <dlfcn.h> // we have own win32 implementation
+@@ -1312,17 +1332,7 @@ __attribute__((used)) const char copyright[] = "@(#)(c) 2014-2023 Yuriy Chumak";
+ #endif
+
+ #ifdef __APPLE__
+-static // not a real memfd_create, but only compatibility wrapper
+-int memfd_create (char* name, unsigned int flags)
+-{
+- (void) name;
+- assert (flags == 0);
+-
+- char tmp_m[] = "/tmp/memfd_olvmXXXXXX";
+- int fd = mkstemp(tmp_m); unlink(tmp_m);
+-
+- return fd;
+-}
++int sendfile(int, int, off_t, off_t *, struct sf_hdtr *, int);
+ #endif
+
+ #if HAS_SENDFILE
+@@ -2644,7 +2654,11 @@ mainloop:;
+ # define SYSCALL_MKDIR 83 // deprecated
+
+ # ifndef SYSCALL_MEMFD
+- # define SYSCALL_MEMFD 85
++ # ifdef HAS_MEMFD_CREATE
++ # define SYSCALL_MEMFD ((HAS_MEMFD_CREATE == 1) ? 85 : 0)
++ # else
++ # define SYSCALL_MEMFD 85
++ # endif
+ # endif
+
+ # define SYSCALL_GETTIMEOFDAY 96
diff --git a/testing/ol/tests-Makefile.patch b/testing/ol/tests-Makefile.patch
new file mode 100644
index 00000000000..e745850b361
--- /dev/null
+++ b/testing/ol/tests-Makefile.patch
@@ -0,0 +1,395 @@
+diff --git a/tests/Makefile b/tests/Makefile
+index 1fe99d72..4199af3a 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -9,6 +9,7 @@ else
+
+ FAILED := $(shell mktemp -u /tmp/failed.XXXXXXXXX)
+
++# win32 tests:
+ MINGW32Q := $(shell which i686-w64-mingw32-gcc 1>/dev/null 2>/dev/null && echo 1)
+ MINGW64Q := $(shell which x86_64-w64-mingw32-gcc 1>/dev/null 2>/dev/null && echo 1)
+ WINEQ := $(shell which wine 1>/dev/null 2>/dev/null && echo 1)
+@@ -16,42 +17,34 @@ WINEQ := $(shell which wine 1>/dev/null 2>/dev/null && echo 1)
+ ok:="\033[1;32mok\033[0m"
+ failed:="\033[1;31mfailed\033[0m"
+
+-# 32-/64-bit test environment setup
+-HAS_32CDEFS ?= $(call exists,-m32,sys/cdefs.h,exit)
+-HAS_64CDEFS ?= $(call exists,-m64,sys/cdefs.h,exit)
++MACHINE ?= $(shell uname -m)
+
++# special case, test 64- and 32-bit both
++# (maximal testings under main development platform)
++ifeq ($(UNAME)-$(MACHINE),Linux-x86_64)
++HAS_32CDEFS ?= $(call exists,-m32,sys/cdefs.h,exit)
++HAS_64CDEFS ?= $(call exists,-m64,sys/cdefs.h,exit)
++ifeq ($(HAS_32CDEFS),1)
++DEV_MACHINE ?= 1
++endif
+ ifeq ($(HAS_64CDEFS),1)
+-vm64 = printf "64 " && ./vm64 repl <$$F | diff - $$F.ok
+-else
+-vm64 = true
++DEV_MACHINE ?= 1
+ endif
+-
+-ifeq ($(HAS_32CDEFS),1)
+-vm32 = printf "32 " && ./vm32 repl <$$F | diff - $$F.ok
+ else
+-vm32 = true
++HAS_32CDEFS ?= 0
++HAS_64CDEFS ?= 0
+ endif
+
+
+-vm32: src/olvm.c includes/ol/vm.h
+- $(CC) src/olvm.c -o $@ \
+- $(L) -m32 -DOLVM_FFI=0 \
+- $(CFLAGS)
+- @echo $(ok)
+-vm64: src/olvm.c includes/ol/vm.h
+- $(CC) src/olvm.c -o $@ \
+- $(L) -m64 -DOLVM_FFI=0 \
+- $(CFLAGS)
+- @echo $(ok)
+-
+ # -------------
+ # win
+ define winbuild
+ $(CC) src/olvm.c -o $1 \
+- -DOLVM_FFI=1 -Iincludes/win32 -Iincludes \
++ -DHAS_DLOPEN=1 -DHAS_SOCKES=1 -DOLVM_FFI=1 \
++ -Iincludes/win32 -Iincludes \
+ extensions/ffi.c \
+ -std=gnu99 -fno-exceptions -lws2_32 \
+- -DHAS_DLOPEN=1 -DHAS_SOCKES=1 $2
++ $2
+ endef
+
+ ifeq ($(MINGW32Q),1)
+@@ -72,45 +65,45 @@ tmp/vm64r.exe: src/olvm.c
+ endif
+
+
+-
+-test32: $(wildcard tests/*.scm)
+- @echo "-- test32 ----------"
+- @rm -f $(FAILED)
+- @$(CC) src/olvm.c $(CFLAGS) tests/vm.c -Iincludes -DOLVM_NOMAIN -o vm32d $(L) -m32
+- @./vm32d
+- @$(CC) src/olvm.c $(CFLAGS) tests/ffi.c -Iincludes \
+- -DOLVM_FFI=1 -Iincludes extensions/ffi.c -o ffi32 $(L) -m32
+- @for F in $^ ;do \
+- printf "Testing $$F ... " ;\
+- if OL_HOME=`pwd`/libraries ./ffi32 repl $$F >/dev/null; then\
+- echo "Ok." ;\
+- else \
+- echo "\033[0;31mFailed!\033[0m" ;\
+- touch $(FAILED) ;\
+- fi ;\
+- done
+- @if [ -e $(FAILED) ] ;then rm -f $(FAILED); exit 1 ;fi
+-
+-test64: $(wildcard tests/*.scm)
+- @echo "-- test64 ----------"
+- @rm -f $(FAILED)
+- @$(CC) src/olvm.c $(CFLAGS) tests/vm.c -Iincludes -DOLVM_NOMAIN -o vm64d $(L) -m64
+- @./vm64d
+- @$(CC) src/olvm.c $(CFLAGS) tests/ffi.c -Iincludes \
+- -DOLVM_FFI=1 -Iincludes extensions/ffi.c -o ffi64 $(L) -m64
+- @for F in $^ ;do \
+- printf "Testing $$F ... " ;\
+- if OL_HOME=`pwd`/libraries ./ffi64 repl $$F >/dev/null; then\
+- echo "Ok." ;\
+- else \
+- echo "\033[0;31mFailed!\033[0m" ;\
+- touch $(FAILED) ;\
+- fi ;\
+- done
+- @if [ -e $(FAILED) ] ;then rm -f $(FAILED); exit 1 ;fi
+-
+-test: test64
+- @echo "passed!"
++# # -=( test )=----------------------------------------
++# test32: $(wildcard tests/*.scm)
++# @echo "-- test32 ----------"
++# @rm -f $(FAILED)
++# @$(CC) src/olvm.c $(CFLAGS) tests/vm.c -Iincludes -DOLVM_NOMAIN -o vm32d $(L) -m32
++# @./vm32d
++# @$(CC) src/olvm.c $(CFLAGS) tests/ffi.c -Iincludes \
++# -DOLVM_FFI=1 -Iincludes extensions/ffi.c -o ffi32 $(L) -m32
++# @for F in $^ ;do \
++# printf "Testing $$F ... " ;\
++# if OL_HOME=`pwd`/libraries ./ffi32 repl $$F >/dev/null; then\
++# echo "Ok." ;\
++# else \
++# echo "\033[0;31mFailed!\033[0m" ;\
++# touch $(FAILED) ;\
++# fi ;\
++# done
++# @if [ -e $(FAILED) ] ;then rm -f $(FAILED); exit 1 ;fi
++
++# test64: $(wildcard tests/*.scm)
++# @echo "-- test64 ----------"
++# @rm -f $(FAILED)
++# @$(CC) src/olvm.c $(CFLAGS) tests/vm.c -Iincludes -DOLVM_NOMAIN -o vm64d $(L) -m64
++# @./vm64d
++# @$(CC) src/olvm.c $(CFLAGS) tests/ffi.c -Iincludes \
++# -DOLVM_FFI=1 -Iincludes extensions/ffi.c -o ffi64 $(L) -m64
++# @for F in $^ ;do \
++# printf "Testing $$F ... " ;\
++# if OL_HOME=`pwd`/libraries ./ffi64 repl $$F >/dev/null; then\
++# echo "Ok." ;\
++# else \
++# echo "\033[0;31mFailed!\033[0m" ;\
++# touch $(FAILED) ;\
++# fi ;\
++# done
++# @if [ -e $(FAILED) ] ;then rm -f $(FAILED); exit 1 ;fi
++
++# test: test64
++# @echo "passed!"
+
+ # -=( ffi )=----------------------------------------
+ test-ffi:
+@@ -134,23 +127,24 @@ test-ffi-release: CFLAGS += $(CFLAGS_RELEASE)
+ test-ffi-release: affix=r
+ test-ffi-release: test-ffi
+
+-# special case, maximal testings under main development platform
+-ifeq ($(UNAME),Linux)
++ifeq ($(HAS_32CDEFS),1) # x86_64
+ test-ffi-debug-32: CFLAGS += -m32
+ test-ffi-debug-32: bits=32
+ test-ffi-debug-32: test-ffi-debug
+-test-ffi-debug-64: CFLAGS += -m64
+-test-ffi-debug-64: bits=64
+-test-ffi-debug-64: test-ffi-debug
+ test-ffi-release-32: CFLAGS += -m32
+ test-ffi-release-32: bits=32
+ test-ffi-release-32: test-ffi-release
++endif
++ifeq ($(HAS_64CDEFS),1) # x86_64
++test-ffi-debug-64: CFLAGS += -m64
++test-ffi-debug-64: bits=64
++test-ffi-debug-64: test-ffi-debug
+ test-ffi-release-64: CFLAGS += -m64
+ test-ffi-release-64: bits=64
+ test-ffi-release-64: test-ffi-release
+ endif
+
+-# -=( vm )=----------------------------------------
++# -=( vmi )=---------------------------------------
+ test-vmi:
+ $(CC) src/olvm.c $(CFLAGS) tests/vm.c -Iincludes -DOLVM_NOMAIN -o $(vmi)$(affix)$(bits) $(L)
+ @echo "$(vmi)$(affix)$(bits):"
+@@ -164,22 +158,26 @@ test-vmi-release: CFLAGS += $(CFLAGS_RELEASE)
+ test-vmi-release: affix=r
+ test-vmi-release: test-vmi
+
+-# special case, maximal testings under main development platform
+-ifeq ($(UNAME),Linux)
++ifeq ($(HAS_32CDEFS),1) # x86_64
+ test-vmi-debug-32: CFLAGS += -m32
+ test-vmi-debug-32: bits=32
+ test-vmi-debug-32: test-vmi-debug
+-test-vmi-debug-64: CFLAGS += -m64
+-test-vmi-debug-64: bits=64
+-test-vmi-debug-64: test-vmi-debug
+ test-vmi-release-32: CFLAGS += -m32
+ test-vmi-release-32: bits=32
+ test-vmi-release-32: test-vmi-release
++endif
++ifeq ($(HAS_64CDEFS),1) # x86_64
++test-vmi-debug-64: CFLAGS += -m64
++test-vmi-debug-64: bits=64
++test-vmi-debug-64: test-vmi-debug
+ test-vmi-release-64: CFLAGS += -m64
+ test-vmi-release-64: bits=64
+ test-vmi-release-64: test-vmi-release
+ endif
+
++
++# -=( vm )=----------------------------------------
++# binaries
+ vm-debug:
+ $(CC) src/olvm.c $(CFLAGS) \
+ -DOLVM_FFI=1 -Iincludes extensions/ffi.c -o $(vm)d$(bits) $(L) $(CFLAGS_DEBUG)
+@@ -188,17 +186,25 @@ vm-release:
+ -DOLVM_FFI=1 -Iincludes extensions/ffi.c -o $(vm)r$(bits) $(L) $(CFLAGS_RELEASE)
+ vm=tmp/vm
+
+-# special case, maximal testings under main development platform
+-ifeq ($(UNAME),Linux)
++# vm-debug: CFLAGS += $(CFLAGS_DEBUG)
++# vm-debug: affix=d
++# vm-debug: vm-debug
++# vm-release: CFLAGS += $(CFLAGS_RELEASE)
++# vm-release: affix=r
++# vm-release: vm-release
++
++ifeq ($(HAS_32CDEFS),1) # x86_64
+ vm-debug-32: CFLAGS += -m32
+ vm-debug-32: bits=32
+ vm-debug-32: vm-debug
+-vm-debug-64: CFLAGS += -m64
+-vm-debug-64: bits=64
+-vm-debug-64: vm-debug
+ vm-release-32: CFLAGS += -m32
+ vm-release-32: bits=32
+ vm-release-32: vm-release
++endif
++ifeq ($(HAS_64CDEFS),1) # x86_64
++vm-debug-64: CFLAGS += -m64
++vm-debug-64: bits=64
++vm-debug-64: vm-debug
+ vm-release-64: CFLAGS += -m64
+ vm-release-64: bits=64
+ vm-release-64: vm-release
+@@ -206,8 +212,9 @@ endif
+
+ # -- binaries ---------------------
+ testing-binaries: includes/ol/vm.h
+- @echo "Building test binaries:"
+-ifeq ($(UNAME),Linux) # main development platform, try to do a maximal testings
++ @printf "Building test binaries:"
++ifeq ($(DEV_MACHINE),1) # main development platform, special case
++ @printf "\n"
+ ifeq ($(HAS_32CDEFS),1)
+ @printf " linux 32-bit debug and release versions... "
+ @$(MAKE) -s vm-debug-32
+@@ -232,20 +239,20 @@ ifeq ($(MINGW64Q),1)
+ @$(MAKE) -s $(vm)64r.exe
+ @echo $(ok)
+ endif
+- @echo "built."
+-else
+- @printf "Building test binaries (debug and release versions both)... "
++else # regular case
++ @printf " (debug and release versions both)... "
+ @$(MAKE) -s vm-debug
+ @$(MAKE) -s vm-release
+- @echo "Built."
+ endif
++ @echo "built."
++ @printf "\n"
+
+ # -- embed --------------------------------------------------------
+ testing-embed: tests/embed.c src/olvm.c includes/ol/ol.h tmp/repl.c
+ @echo "embed testing"
+ @echo "----------------------------------------"
+ @printf "tests/embed.c ..."
+-ifeq ($(UNAME),Linux) # main development platform, try to do a maximal testings
++ifeq ($(DEV_MACHINE),1) # main development platform, special case
+ ifeq ($(HAS_32CDEFS),1)
+ @printf ", debug-32: "
+ @$(CC) tests/embed.c src/olvm.c tmp/repl.c $(CFLAGS) $(L) -DOLVM_NOMAIN \
+@@ -290,7 +297,7 @@ ifeq ($(HAS_64CDEFS),1)
+ touch $(FAILED) ;\
+ fi
+ endif
+-else
++else # regular case
+ @printf ", debug: "
+ @$(CC) tests/embed.c src/olvm.c tmp/repl.c $(CFLAGS) $(L) -DOLVM_NOMAIN \
+ -DOLVM_FFI=1 extensions/ffi.c -o tmp/embedd \
+@@ -315,11 +322,11 @@ endif
+ @echo "."
+
+
+-# -- internal --------------------------------------
++# -- internal -------------------------------------
+ testing-internal:
+ @echo "Internal vm testing"
+- @echo "---------------------------------------"
+-ifeq ($(UNAME),Linux) # special case, try to do maximal testings under main development platform
++ @echo "----------------------------------------"
++ifeq ($(DEV_MACHINE),1) # main development platform, special case
+ ifeq ($(HAS_32CDEFS),1)
+ @$(MAKE) -s test-vmi-debug-32
+ @$(MAKE) -s test-vmi-release-32
+@@ -328,16 +335,17 @@ ifeq ($(HAS_64CDEFS),1)
+ @$(MAKE) -s test-vmi-debug-64
+ @$(MAKE) -s test-vmi-release-64
+ endif
+-else
++else # regular case
+ @$(MAKE) -s test-vmi-debug
+ @$(MAKE) -s test-vmi-release
+ endif
+ @echo " "
+
++# -- ffi ------------------------------------------
+ testing-ffi:
+ @echo "ffi testing"
+ @echo "----------------------------------------"
+-ifeq ($(UNAME),Linux) # special case, try to do maximal testings under main development platform
++ifeq ($(DEV_MACHINE),1) # main development platform, special case
+ ifeq ($(HAS_32CDEFS),1)
+ @$(MAKE) -s test-ffi-debug-32
+ @$(MAKE) -s test-ffi-release-32
+@@ -346,18 +354,17 @@ ifeq ($(HAS_64CDEFS),1)
+ @$(MAKE) -s test-ffi-debug-64
+ @$(MAKE) -s test-ffi-release-64
+ endif
+-else
++else # regular case
+ @$(MAKE) -s test-ffi-debug
+ @$(MAKE) -s test-ffi-release
+ endif
+ @echo " "
+
+-
+-# -- scm -------
++# -- scm ------------------------------------------
+ define scmtestok
+ @if ([ -f $1 ]); then\
+ printf ", $2: ";\
+- if ([ -f $^.in ] && $3 $1 repl --home=libraries $^ <$^.in 2>&1 || $3 $1 repl --home=libraries $^ 2>&1) | diff --strip-trailing-cr - $^.ok >/dev/null; then\
++ if ([ -f $^.in ] && $3 $1 repl --home=libraries $^ <$^.in 2>&1 || $3 $1 repl --home=libraries $^ 2>&1) | diff $4 - $^.ok >/dev/null; then\
+ printf $(ok) ;\
+ else \
+ printf $(failed);\
+@@ -374,17 +381,17 @@ endef
+ $(call scmtestok,$(vm)r,release)
+ $(call scmtestok,$(vm)r32,release-32)
+ $(call scmtestok,$(vm)r64,release-64)
+- $(call scmtestok,$(vm)32d.exe,win-debug-32,wine)
+- $(call scmtestok,$(vm)32r.exe,win-release-32,wine)
+- $(call scmtestok,$(vm)64d.exe,win-debug-64,wine)
+- $(call scmtestok,$(vm)64r.exe,win-release-64,wine)
++ $(call scmtestok,$(vm)32d.exe,win-debug-32,wine,--strip-trailing-cr)
++ $(call scmtestok,$(vm)32r.exe,win-release-32,wine,--strip-trailing-cr)
++ $(call scmtestok,$(vm)64d.exe,win-debug-64,wine,--strip-trailing-cr)
++ $(call scmtestok,$(vm)64r.exe,win-release-64,wine,--strip-trailing-cr)
+ @printf ".\n"
+
+-# -- bin -------
++# -- bin ------------------------------------------
+ define bintestok
+ @if ([ -f $1 ]); then\
+ printf ", $2: ";\
+- if ([ -f $^.in ] && $3 $1 $^ --home=libraries <$^.in || $3 $1 $^ --home=libraries) | diff --strip-trailing-cr - $^.ok >/dev/null; then\
++ if ([ -f $^.in ] && $3 $1 $^ --home=libraries <$^.in || $3 $1 $^ --home=libraries) | diff $4 - $^.ok >/dev/null; then\
+ printf $(ok) ;\
+ else \
+ printf $(failed);\
+@@ -401,13 +408,12 @@ endef
+ $(call bintestok,$(vm)r,release)
+ $(call bintestok,$(vm)r32,release-32)
+ $(call bintestok,$(vm)r64,release-64)
+- $(call bintestok,$(vm)32d.exe,win-debug-32,wine)
+- $(call bintestok,$(vm)32r.exe,win-release-32,wine)
+- $(call bintestok,$(vm)64d.exe,win-debug-64,wine)
+- $(call bintestok,$(vm)64r.exe,win-release-64,wine)
++ $(call bintestok,$(vm)32d.exe,win-debug-32,wine,--strip-trailing-cr)
++ $(call bintestok,$(vm)32r.exe,win-release-32,wine,--strip-trailing-cr)
++ $(call bintestok,$(vm)64d.exe,win-debug-64,wine,--strip-trailing-cr)
++ $(call bintestok,$(vm)64r.exe,win-release-64,wine,--strip-trailing-cr)
+ @printf ".\n"
+
+-
+ # -------------------------------------------------
+ # -=( tests )=-------------------------------------
+ check: tests
diff --git a/testing/olsrd/APKBUILD b/testing/olsrd/APKBUILD
new file mode 100644
index 00000000000..a6932d8dfe1
--- /dev/null
+++ b/testing/olsrd/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Mathew Meins <mm@blackhelicopters.net>
+# Maintainer: Mathew Meins <mm@blackhelicopters.net>
+pkgname=olsrd
+pkgver=0.9.8
+pkgrel=2
+pkgdesc="An implementation of the IETF RFC 3626: Optimized Link State Routing Protocol"
+url="http://www.olsr.org/mediawiki/index.php/Olsr_Daemon"
+arch="all"
+license="BSD-3-Clause"
+makedepends="linux-headers flex bison"
+subpackages="$pkgname-openrc $pkgname-doc $pkgname-plugins"
+source="https://github.com/OLSR/olsrd/archive/v$pkgver/olsrd-$pkgver.tar.gz
+ bison.patch
+ musl.patch
+ olsrd.initd
+ olsrd.confd
+ "
+options="!check" # No test suite provided by upstream
+
+build() {
+ # build olsrd itself
+ make all
+
+ # build olsr_switch
+ make switch
+
+ # build plugins
+ for plugin in arprefresh bmf dot_draw dyn_gw dyn_gw_plain httpinfo \
+ jsoninfo mdns nameservice netjson p2pd pgraph poprouting \
+ quagga secure sgwdynspeed txtinfo watchdog; do
+ make -C $builddir/lib/$plugin
+ done
+}
+
+package() {
+ install -m755 -D "$builddir"/olsrd \
+ "$pkgdir"/usr/sbin/olsrd
+ install -m755 -D "$builddir"/olsr_switch \
+ "$pkgdir"/usr/sbin/olsr_switch
+ install -m644 -D "$builddir"/files/olsrd.conf.default.txt \
+ "$pkgdir"/etc/$pkgname/olsrd.conf
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+doc() {
+ # man pages
+ install -m644 -D "$builddir"/files/olsrd.8.gz \
+ "$subpkgdir"/usr/share/man/man8/olsrd.8.gz
+ install -m644 -D "$builddir"/files/olsr_switch.8.gz \
+ "$subpkgdir"/usr/share/man/man8/olsr_switch.8.gz
+ install -m644 -D "$builddir"/files/olsrd.conf.5.gz \
+ "$subpkgdir"/usr/share/man/man5/olsrd.conf.5.gz
+
+ # miscellaneous docs
+ for f in README olsrd.conf.commotion olsrd.conf.default \
+ olsrd.conf.default.lq olsrd.conf.default.rfc \
+ olsrd.conf.default.txt olsrd.conf.funkfeuer olsrd.ufw.profile \
+ generateEffectiveConfigurationFile olsrd-adhoc-setup \
+ sgw_policy_routing_setup.sh; do
+ install -m644 -D "$builddir"/files/$f \
+ "$subpkgdir"/usr/share/doc/$pkgname/$f
+ done
+}
+
+plugins() {
+ pkgdesc="Optional plugins for olsrd"
+
+ find "$builddir"/lib/ -name 'olsrd_*.so.*' -exec sh -c '
+ install -m755 -D "$1" "$subpkgdir"/usr/lib/$(basename $1)
+ ' sh {} \;
+}
+
+sha512sums="cf3066310c4ea644ba1f482e847aa073ad006000308bfa993cecda4ccf4e9919a9005680b3c1d98e34f0c13818213f208e8dc93c8b060eeaaac160fc3df4ce8c olsrd-0.9.8.tar.gz
+b8c44fce64fd946459c67ea130b7230fbb88a761d5b64221303adea2a6ddf074c39521f22aade27820bff8748ba50851d9cbf7602c10d6bd9615992284cb2046 bison.patch
+1d2f74d017e50d17c4eabbf52412e2f5aeec7bb2ca0bb1738ae8c0527b9abd13299cbebb3428db1cc95d574b86eea50cec8c4cf388f18d6723577800fd6678fb musl.patch
+9051d65c0f3fdc82ceccc622062a5ffa7accc6584030c0e5ba855e7a7f478233476bc44ca12fa68b5c391000f0e9d4c3198bcdd879d549ae83c37d0301bec785 olsrd.initd
+4f84d8738ff00d12ca36a1b00f4c0b7b71128be60aa895a8d337d31732ed8b5bd7f9a6f0892b0218584d25630c110e8763a1605065a1ef8111b9f13299fffedb olsrd.confd"
diff --git a/testing/olsrd/bison.patch b/testing/olsrd/bison.patch
new file mode 100644
index 00000000000..b7e6fd5bd1c
--- /dev/null
+++ b/testing/olsrd/bison.patch
@@ -0,0 +1,16 @@
+--- a/src/cfgparser/local.mk
++++ b/src/cfgparser/local.mk
+@@ -74,12 +74,8 @@ $(C)oparse.c: $(C)oparse.y $(C)olsrd_conf.h $(C)Makefile
+ ifeq ($(VERBOSE),0)
+ @echo "[BISON] $@"
+ endif
+- $(MAKECMDPREFIX)$(BISON) -d -o "$@-tmp" "$<"
+- $(MAKECMDPREFIX)sed -e 's/register //' \
+- -e '/^#line/s/$(call quote,$@-tmp)/$(call quote,$@)/' \
+- < "$@-tmp" >"$@"
+- $(MAKECMDPREFIX)mv "$(subst .c,.h,$@-tmp)" "$(subst .c,.h,$@)"
+- $(MAKECMDPREFIX)$(RM) "$@-tmp" "$(subst .c,.h,$@-tmp)"
++ $(MAKECMDPREFIX)$(BISON) -d -o "$@" "$<"
++ $(MAKECMDPREFIX)sed -e 's/register //' "$@" > "$@.o" && mv "$@.o" "$@"
+
+ $(C)oparse.o: CFLAGS := $(filter-out -Wunreachable-code,$(CFLAGS))
diff --git a/testing/olsrd/musl.patch b/testing/olsrd/musl.patch
new file mode 100644
index 00000000000..3023f435fab
--- /dev/null
+++ b/testing/olsrd/musl.patch
@@ -0,0 +1,11 @@
+--- a/lib/pud/nmealib/src/info.c
++++ b/lib/pud/nmealib/src/info.c
+@@ -172,7 +172,7 @@ bool nmeaTimeParseDate(const char *s, NmeaTime *date) {
+ void nmeaTimeSet(NmeaTime *utc, uint32_t *present, struct timeval *timeval) {
+ struct timeval tv;
+ struct tm tm;
+- long usec;
++ time_t usec;
+
+ if (!utc) {
+ return;
diff --git a/testing/olsrd/olsrd.confd b/testing/olsrd/olsrd.confd
new file mode 100644
index 00000000000..582ef1c4df1
--- /dev/null
+++ b/testing/olsrd/olsrd.confd
@@ -0,0 +1 @@
+olsrd_opts="-pidfile /run/olsrd.pid"
diff --git a/testing/olsrd/olsrd.initd b/testing/olsrd/olsrd.initd
new file mode 100644
index 00000000000..79afdf7292c
--- /dev/null
+++ b/testing/olsrd/olsrd.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+name=olsrd
+command="/usr/sbin/$name"
+command_args="$olsrd_opts"
+command_background="yes"
+
+start_stop_daemon_args="-g wheel -k 027"
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/ombi/APKBUILD b/testing/ombi/APKBUILD
new file mode 100644
index 00000000000..5e51d48e1f6
--- /dev/null
+++ b/testing/ombi/APKBUILD
@@ -0,0 +1,89 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=ombi
+pkgver=4.43.5
+pkgrel=1
+pkgdesc="Friendly media request tool which automatically syncs with your media servers!"
+url="https://ombi.io"
+arch="x86_64 aarch64 armv7" # blocked by dotnet6-sdk
+license="GPL-2.0-only"
+depends="aspnetcore6-runtime sqlite-libs"
+makedepends="dotnet6-sdk yarn"
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Ombi-app/Ombi/archive/refs/tags/v$pkgver.tar.gz
+ ombi.initd
+ ombi.confd
+ "
+builddir="$srcdir/Ombi-$pkgver"
+pkgusers="ombi"
+pkggroups="ombi"
+options="net" # dotnet and yarn dependencies
+
+export DOTNET_CLI_HOME="$builddir"/dotnetclihome
+
+case $CARCH in
+ x86_64) _dotnet_arch="x64";;
+ aarch64) _dotnet_arch="arm64";;
+ armv7) _dotnet_arch="arm";;
+ *) _dotnet_arch="$CARCH";;
+esac
+
+_backend="$builddir/src/Ombi"
+_frontend="$_backend/ClientApp"
+_artifacts="$_backend/bin/Release/net6.0"
+_runtime="linux-musl-$_dotnet_arch"
+
+build() {
+ # set backend version
+ dotnet new tool-manifest
+ dotnet tool install --local dotnet-setversion
+ dotnet setversion -r "$pkgver"
+
+ # build the backend
+ dotnet publish "$_backend" \
+ -c Release \
+ -r "$_runtime" \
+ --no-self-contained
+
+ # move binaries out of runtime directory
+ mv "$_artifacts/$_runtime"/publish/* "$_artifacts" -f
+ rm -r "${_artifacts:?}/${_runtime:?}"
+
+ # remove dev config
+ rm "$_artifacts"/appsettings.Development.json
+
+ # build frontend
+ yarn --cwd "$_frontend" install --network-timeout 120000 --frozen-lockfile
+ yarn --cwd "$_frontend" build
+
+ # move frontend to atrifacts directory
+ mkdir -p "$_artifacts"/ClientApp
+ mv "$_frontend"/dist "$_artifacts"/ClientApp
+}
+
+check() {
+ make backend-tests
+}
+
+package() {
+ # setup runtime config file
+ mkdir -p "$pkgdir"/var/lib/ombi
+ chown -R "$pkgusers:$pkggroups" "$pkgdir"/var/lib/ombi
+
+ local DESTDIR="$pkgdir"/usr/lib/ombi
+
+ mkdir -p "$DESTDIR"
+ cp -af "$_artifacts"/* "$DESTDIR"
+ chown -R "$pkgusers:$pkggroups" "$DESTDIR"
+
+ install -Dm755 "$srcdir"/ombi.initd "$pkgdir"/etc/init.d/ombi
+ install -Dm644 "$srcdir"/ombi.confd "$pkgdir"/etc/conf.d/ombi
+}
+
+sha512sums="
+92f4eb27d0a1501347014e357738b51d9fe7ef769e744021281da18d74a513bf2c8d4b156a248b3719066bbf1064097a65228084f55d41994bf18abc6d8b05f7 ombi-4.43.5.tar.gz
+a48fac800aa0779c793aa1220cce16ccc55dc064487e11daf17b165fbc565e4c62e7a52e1372395508b199a12d6bf773157125f3cbaa845381cc035547b29afa ombi.initd
+7355ae0ffedc179688dc6e4c472bd8963b2cbb851bf00a103febe3138630c1cc8c7af37dc7d2e61bff7dc47214517d5b02bc0e8744894f1ff7272df5f566b8c1 ombi.confd
+"
diff --git a/testing/ombi/ombi.confd b/testing/ombi/ombi.confd
new file mode 100644
index 00000000000..5e16f801d86
--- /dev/null
+++ b/testing/ombi/ombi.confd
@@ -0,0 +1,4 @@
+#command_user="ombi:ombi" # user:group
+#umask=0002
+#storage_directory=/var/lib/ombi
+#port=3579
diff --git a/testing/ombi/ombi.initd b/testing/ombi/ombi.initd
new file mode 100644
index 00000000000..3905997aa5d
--- /dev/null
+++ b/testing/ombi/ombi.initd
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/ombi
+: ${command_user:=ombi:ombi}
+: ${umask:=0002}
+: ${storage_directory:=/var/lib/ombi}
+: ${port:=3579}
+
+name=ombi
+description="Ombi daemon"
+command="/usr/lib/ombi/Ombi"
+command_args="--storage $storage_directory --host http://*:$port"
+command_background=true
+directory=/usr/lib/ombi
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory"
+}
diff --git a/testing/ombi/ombi.pre-install b/testing/ombi/ombi.pre-install
new file mode 100644
index 00000000000..3892cee67c5
--- /dev/null
+++ b/testing/ombi/ombi.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S ombi 2>/dev/null
+adduser -S -D -h /var/lib/ombi -s /sbin/nologin -G ombi -g ombi ombi 2>/dev/null
+
+exit 0
diff --git a/testing/onboard/APKBUILD b/testing/onboard/APKBUILD
deleted file mode 100644
index 5eb0a8f7d62..00000000000
--- a/testing/onboard/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=onboard
-pkgver=1.4.1
-pkgrel=3
-pkgdesc="On-screen keyboard useful on tablet PCs or for mobility impaired users"
-arch="all !s390x !mips !mips64" # librsvg
-url="https://launchpad.net/onboard"
-license="GPL-3.0-only"
-depends="python3 hunspell gtk+3.0 iso-codes libcanberra libxkbfile
- py3-cairo py3-dbus py3-gobject3 dbus-x11 dconf ncurses
- gsettings-desktop-schemas librsvg"
-makedepends="python3-dev py3-setuptools py3-distutils-extra
- bash bash-dev gtk+3.0-dev libxkbfile-dev dconf-dev
- libcanberra-dev hunspell-dev eudev-dev"
-source="https://launchpad.net/onboard/${pkgver%.*}/$pkgver/+download/onboard-$pkgver.tar.gz
- glibc-musl-error.patch"
-options="!check" # cannot open display
-subpackages="$pkgname-doc $pkgname-lang"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
-}
-
-sha512sums="ed75c1dce893e3420ecf532faffb15efc9fba56cf6622b03fe5e1cebb88d32304636b0268e4b8b75dc0eb6d7bfc8602c4a93a90bdeb8cd960d3447d16acc7463 onboard-1.4.1.tar.gz
-23742c38f877fc31260d4d7d3ff38c8d72541a77e099183d6633de74bcb223bbd34cedd88016f043867b2571f1196b59a3378a94186b468dbaa7a5d00661065a glibc-musl-error.patch"
diff --git a/testing/onboard/glibc-musl-error.patch b/testing/onboard/glibc-musl-error.patch
deleted file mode 100644
index 46aba646b25..00000000000
--- a/testing/onboard/glibc-musl-error.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff --git a/Onboard/pypredict/lm/lm.cpp b/Onboard/pypredict/lm/lm.cpp
-index 2e64296..081b3fb 100644
---- a/Onboard/pypredict/lm/lm.cpp
-+++ b/Onboard/pypredict/lm/lm.cpp
-@@ -19,7 +19,7 @@
-
- #include <stdlib.h>
- #include <stdio.h>
--#include <error.h>
-+
- #include <algorithm>
- #include <cmath>
- #include <string>
-@@ -37,7 +37,7 @@ StrConv::StrConv()
- if (cd_mb_wc == (iconv_t) -1)
- {
- if (errno == EINVAL)
-- error (0, 0, "conversion from UTF-8 to wchar_t not available");
-+ fprintf (stderr, "conversion from UTF-8 to wchar_t not available");
- else
- perror ("iconv_open mb2wc");
- }
-@@ -45,7 +45,7 @@ StrConv::StrConv()
- if (cd_wc_mb == (iconv_t) -1)
- {
- if (errno == EINVAL)
-- error (0, 0, "conversion from wchar_t to UTF-8 not available");
-+ fprintf (stderr, "conversion from wchar_t to UTF-8 not available");
- else
- perror ("iconv_open wc2mb");
- }
-diff --git a/Onboard/pypredict/lm/lm_dynamic.cpp b/Onboard/pypredict/lm/lm_dynamic.cpp
-index 7c62824..da8cfd0 100644
---- a/Onboard/pypredict/lm/lm_dynamic.cpp
-+++ b/Onboard/pypredict/lm/lm_dynamic.cpp
-@@ -17,7 +17,7 @@
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
--#include <error.h>
-+
-
- #include "lm_dynamic.h"
-
-@@ -91,7 +91,7 @@ LMError DynamicModelBase::load_arpac(const char* filename)
- int ngrams_read = get_num_ngrams(current_level-1);
- if (ngrams_read != ngrams_expected)
- {
-- error (0, 0, "unexpected n-gram count for level %d: "
-+ fprintf (stderr, "unexpected n-gram count for level %d: "
- "expected %d n-grams, but read %d",
- current_level,
- ngrams_expected, ngrams_read);
-@@ -105,7 +105,7 @@ LMError DynamicModelBase::load_arpac(const char* filename)
- if (ntoks < current_level+1)
- {
- err_code = ERR_NUMTOKENS; // too few tokens for cur. level
-- error (0, 0, "too few tokens for n-gram level %d: "
-+ fprintf (stderr, "too few tokens for n-gram level %d: "
- "line %d, tokens found %d/%d",
- current_level,
- line_number, ntoks, current_level+1);
diff --git a/testing/one-dnn/APKBUILD b/testing/one-dnn/APKBUILD
new file mode 100644
index 00000000000..045953ab2d1
--- /dev/null
+++ b/testing/one-dnn/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Dennis Krupenik <dennis@krupenik.com>
+# Maintainer: Dennis Krupenik <dennis@krupenik.com>
+pkgname=one-dnn
+pkgver=3.1
+pkgrel=0
+pkgdesc="oneAPI Deep Neural Network Library"
+url="https://01.org/oneDNN"
+# Used to executed primitives on Intel 64bit, aarch64 and compatible devices
+arch="x86_64"
+license="Apache-2.0"
+depends_dev="onetbb-dev opencl-headers opencl-icd-loader-dev"
+makedepends="cmake samurai $depends_dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/oneapi-src/oneDNN/archive/v$pkgver/oneDNN-$pkgver.tar.gz
+ gcc13.patch
+ "
+builddir="$srcdir/oneDNN-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ # if not release type, debug is selected
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DDNNL_GPU_RUNTIME=OCL \
+ -DDNNL_CPU_RUNTIME=TBB \
+ -DONEDNN_BUILD_GRAPH=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ ctest -E '(gpu|cross-engine|api)' --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+2053157a3885618364a9da5ec738c9cc2dde15db1ce9737578565d25c4a15a65944db3bbd17780de2032cfa2329bea4cb0af24ee428c9c246bdfa07a5bdde30b oneDNN-3.1.tar.gz
+356b2d6e2aa3156e92e23872ee6643ba0d27de08af15fdd9dcf0f6dd45eaf30bf8506dbcc3594981f5a8a68fadf9d790b4b2c920c33675bc316aea6fb5a26d6b gcc13.patch
+"
diff --git a/testing/one-dnn/gcc13.patch b/testing/one-dnn/gcc13.patch
new file mode 100644
index 00000000000..fbe8614bc5b
--- /dev/null
+++ b/testing/one-dnn/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/benchdnn/utils/dims.hpp b/tests/benchdnn/utils/dims.hpp
+index 8b8430c..5c25428 100644
+--- a/tests/benchdnn/utils/dims.hpp
++++ b/tests/benchdnn/utils/dims.hpp
+@@ -18,6 +18,7 @@
+ #define UTILS_DIMS_T_HPP
+
+ #include <cassert>
++#include <cstdint>
+ #include <iostream>
+ #include <string>
+ #include <vector>
diff --git a/testing/onefetch/APKBUILD b/testing/onefetch/APKBUILD
deleted file mode 100644
index 4c6c835c667..00000000000
--- a/testing/onefetch/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=onefetch
-pkgver=2.2.0
-pkgrel=0
-pkgdesc="Git repository summary on your terminal"
-url="https://github.com/o2sh/onefetch"
-arch="all !s390x !mips !mips64"
-license="MIT"
-makedepends="cargo libgit2-dev zlib-dev"
-source="$pkgname-$pkgver.tar.gz::https://crates.io/api/v1/crates/onefetch/$pkgver/download"
-
-export LIBGIT2_SYS_USE_PKG_CONFIG=1
-
-build() {
- cargo build --release --locked
-}
-
-check() {
- cargo test --release --locked
-}
-
-package() {
- install -Dm0755 target/release/onefetch "$pkgdir"/usr/bin/onefetch
-}
-
-sha512sums="c2fbd977657273e1a469919562f9e72f75a9d1862a7011b8b92c10cda25b79894b9ed8bc191341794a4239ae2612faaacbf9f4ea5cb37820c6d06c919dcd1c0e onefetch-2.2.0.tar.gz"
diff --git a/testing/onevpl-intel-gpu/APKBUILD b/testing/onevpl-intel-gpu/APKBUILD
new file mode 100644
index 00000000000..711e0865aff
--- /dev/null
+++ b/testing/onevpl-intel-gpu/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Assaf Inbal <shmuelzon@gmail.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=onevpl-intel-gpu
+pkgver=23.2.4
+pkgrel=1
+pkgdesc="Intel oneVPL GPU Runtime"
+options="!check" # tests can't run in check(), only on install
+url="https://github.com/oneapi-src/oneVPL-intel-gpu"
+arch="x86_64"
+license="MIT"
+depends="libva"
+makedepends="
+ cmake
+ libva-dev
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/oneapi-src/oneVPL-intel-gpu/archive/refs/tags/intel-onevpl-$pkgver.tar.gz"
+builddir="$srcdir/oneVPL-intel-gpu-intel-onevpl-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+4edadb45eac2246f15301f08ad90af5695b1d848391a639447ff292ec9df85d64ea9bd04cfb52fdb751ed3707601515b09988cebcbd06b03411cb2d69970512d onevpl-intel-gpu-23.2.4.tar.gz
+"
diff --git a/testing/onioncat/APKBUILD b/testing/onioncat/APKBUILD
new file mode 100644
index 00000000000..9860305ea2e
--- /dev/null
+++ b/testing/onioncat/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Anon <danilagdn.2004@gmail.com>
+# Maintainer: Anon <danilagdn.2004@gmail.com>
+pkgname=onioncat
+pkgver=4.11.0
+pkgrel=1
+pkgdesc="OnionCat is a VPN-adapter, which uses Tor or I2P as its transport."
+url="https://www.onioncat.org/"
+arch="x86 x86_64"
+license="GPL-3.0-only"
+depends="net-tools"
+makedepends="automake autoconf libmnl-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rahra/onioncat/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ ./autogen.sh
+}
+
+build() {
+ ./configure --prefix=/usr --localstatedir=/var/lib --runstatedir=/run --sysconfdir=/etc
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make prefix="$pkgdir/usr" exec_prefix="$pkgdir/usr" localstatedir="$pkgdir/var/lib" install
+}
+
+sha512sums="
+5dc6538f343749530cbd2f29bdd6ba6bc1e921a4fae6f5c783dd2bc1d045ce304639acc5cea6c1946b7c938ce58b732c01ae1a00998f5438a414b4c623dfd0bf onioncat-4.11.0.tar.gz
+"
diff --git a/testing/onnxruntime/0001-Remove-MATH_NO_EXCEPT-macro.patch b/testing/onnxruntime/0001-Remove-MATH_NO_EXCEPT-macro.patch
new file mode 100644
index 00000000000..8f42e589122
--- /dev/null
+++ b/testing/onnxruntime/0001-Remove-MATH_NO_EXCEPT-macro.patch
@@ -0,0 +1,50 @@
+From 8caf31352140d655e2c88fb9784982c4e5db3b5b Mon Sep 17 00:00:00 2001
+From: sudotac <sudo@tofuyard.net>
+Date: Sun, 6 Aug 2023 23:46:28 +0900
+Subject: [PATCH] Remove MATH_NO_EXCEPT macro
+
+Signed-off-by: sudotac <sudo@tofuyard.net>
+---
+ .../test/providers/cpu/math/element_wise_ops_test.cc | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc b/onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc
+index 04fbd05669..5ec4d915f5 100644
+--- a/onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc
++++ b/onnxruntime/test/providers/cpu/math/element_wise_ops_test.cc
+@@ -2603,13 +2603,7 @@ TEST(MathOpTest, Mean_8) {
+ test.Run(OpTester::ExpectResult::kExpectSuccess, "", {kTensorrtExecutionProvider}); // TensorRT: Input batch size is inconsistent
+ }
+
+-#ifdef _LIBCPP_VERSION
+-#define MATH_NO_EXCEPT
+-#else
+-#define MATH_NO_EXCEPT noexcept
+-#endif
+-
+-template <float (&op)(float value) MATH_NO_EXCEPT>
++template <float (&op)(float value)>
+ void TrigFloatTest(OpTester& test, std::initializer_list<float> input) {
+ std::vector<int64_t> dims{static_cast<int64_t>(input.size())};
+
+@@ -2622,7 +2616,7 @@ void TrigFloatTest(OpTester& test, std::initializer_list<float> input) {
+ test.Run();
+ }
+
+-template <double (&op)(double value) MATH_NO_EXCEPT>
++template <double (&op)(double value)>
+ void TrigDoubleTest(OpTester& test, std::initializer_list<double> input,
+ const std::unordered_set<std::string> excluded_provider_types = {}) {
+ std::vector<int64_t> dims{static_cast<int64_t>(input.size())};
+@@ -2636,7 +2630,7 @@ void TrigDoubleTest(OpTester& test, std::initializer_list<double> input,
+ test.Run(OpTester::ExpectResult::kExpectSuccess, "", excluded_provider_types);
+ }
+
+-template <float (&op)(float value) MATH_NO_EXCEPT>
++template <float (&op)(float value)>
+ void TrigFloat16Test(OpTester& test, std::initializer_list<float> input) {
+ std::vector<int64_t> dims{static_cast<int64_t>(input.size())};
+
+--
+2.41.0
+
diff --git a/testing/onnxruntime/APKBUILD b/testing/onnxruntime/APKBUILD
new file mode 100644
index 00000000000..d48fe7f86be
--- /dev/null
+++ b/testing/onnxruntime/APKBUILD
@@ -0,0 +1,99 @@
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=onnxruntime
+pkgver=1.17.1
+pkgrel=1
+pkgdesc="Cross-platform, high performance ML inferencing and training accelerator"
+url="https://onnxruntime.ai"
+# x86, s390x: fails to build
+arch="all !x86 !s390x"
+license="MIT"
+makedepends="
+ abseil-cpp-dev
+ bash
+ cmake
+ gtest-dev
+ icu-dev
+ linux-headers
+ nlohmann-json
+ protobuf-dev
+ py3-numpy-dev
+ py3-pybind11-dev
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ re2-dev
+ samurai
+ zlib-dev
+ "
+subpackages="
+ $pkgname-dev
+ py3-$pkgname-pyc
+ py3-$pkgname:py3
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/microsoft/onnxruntime/archive/refs/tags/v$pkgver.tar.gz
+ no-execinfo.patch
+ system.patch
+ 0001-Remove-MATH_NO_EXCEPT-macro.patch
+ "
+options="net"
+
+# tests fail on arm 32 bit, see https://github.com/microsoft/onnxruntime/issues/16387
+case "$CARCH" in
+armhf|armv7) options="!check $options"; CXXFLAGS="$CXXFLAGS -Wno-overflow";;
+esac
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -Wno-deprecated-declarations -flto=auto" \
+ LDFLAGS="$LDFLAGS -Wl,--copy-dt-needed-entries" \
+ cmake -S cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_ONNX_PYTHON=ON \
+ -Donnxruntime_BUILD_SHARED_LIB=ON \
+ -Donnxruntime_BUILD_UNIT_TESTS="$(want_check && echo ON || echo OFF)" \
+ -Donnxruntime_ENABLE_PYTHON=ON \
+ -Donnxruntime_USE_NEURAL_SPEED=OFF # fix for 1.17.0, see: https://github.com/microsoft/onnxruntime/pull/19382
+ # hack for protobuf 23
+ sed -i 's|CMAKE_CXX_STANDARD 11|CMAKE_CXX_STANDARD 17|' build/_deps/onnx-src/CMakeLists.txt
+
+ cmake --build build
+
+ cd build
+ msg "building python module"
+ python3 ../setup.py build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ cd build
+ python3 ../setup.py install --skip-build --root="$pkgdir"
+
+ ln -sfv ../../../../libonnxruntime_providers_shared.so \
+ "$(echo "$pkgdir"/usr/lib/python3*/site-packages/onnxruntime/capi/libonnxruntime_providers_shared.so)"
+}
+
+py3() {
+ pkgdesc="$pkgname (python3 bindings)"
+ depends="
+ py3-coloredlogs
+ py3-flatbuffers
+ py3-numpy
+ py3-packaging
+ py3-sympy
+ "
+
+ amove usr/lib/python3*
+}
+
+sha512sums="
+a4629a9bb92d30a2686ed3d760f1ae1b94f15a6021dd4bdf36bdf66f4470c870610d217169b4489eeb51e0f730176dd2e8f8e102fea6508cc3ff5fd2f3dfccb8 onnxruntime-1.17.1.tar.gz
+976913be90b0a82ff1ba403f46306ef4e5939bb05296227c99d3c4a609dd00f5750f9b1c6c30d20791ff0724c1bcffc6aa498eac906257aefefc6f35df796fe0 no-execinfo.patch
+963542ac3cfef08c9dcd60f28c0a47d6a9fbfcbe43efbf891047939aecd5b56fe0285f538e0da3df409a53745433b0ed2bc2470c59ae8fcf86ce94bf7cd02649 system.patch
+696d76c9265ad31fdd1d8b7790693e139f31006dff4d571473f8406129fff47f2885010ed0affb7fcf629f98bed5e14d33eeef9e52eb251e90f581a05f587350 0001-Remove-MATH_NO_EXCEPT-macro.patch
+"
diff --git a/testing/onnxruntime/no-execinfo.patch b/testing/onnxruntime/no-execinfo.patch
new file mode 100644
index 00000000000..4b96c29a750
--- /dev/null
+++ b/testing/onnxruntime/no-execinfo.patch
@@ -0,0 +1,22 @@
+diff --git a/onnxruntime/core/platform/posix/stacktrace.cc b/onnxruntime/core/platform/posix/stacktrace.cc
+index 76864b2..185f131 100644
+--- a/onnxruntime/core/platform/posix/stacktrace.cc
++++ b/onnxruntime/core/platform/posix/stacktrace.cc
+@@ -3,7 +3,7 @@
+
+ #include "core/common/common.h"
+
+-#if !defined(__ANDROID__) && !defined(__wasm__) && !defined(_OPSCHEMA_LIB_) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(__ANDROID__) && !defined(__wasm__) && !defined(_OPSCHEMA_LIB_) && !defined(_AIX)
+ #include <execinfo.h>
+ #endif
+ #include <vector>
+@@ -13,7 +13,7 @@ namespace onnxruntime {
+ std::vector<std::string> GetStackTrace() {
+ std::vector<std::string> stack;
+
+-#if !defined(NDEBUG) && !defined(__ANDROID__) && !defined(__wasm__) && !defined(_OPSCHEMA_LIB_)
++#if defined(__GLIBC__) && !defined(NDEBUG) && !defined(__ANDROID__) && !defined(__wasm__) && !defined(_OPSCHEMA_LIB_)
+ constexpr int kCallstackLimit = 64; // Maximum depth of callstack
+
+ void* array[kCallstackLimit];
diff --git a/testing/onnxruntime/system.patch b/testing/onnxruntime/system.patch
new file mode 100644
index 00000000000..6f9a751aba7
--- /dev/null
+++ b/testing/onnxruntime/system.patch
@@ -0,0 +1,66 @@
+diff --git a/cmake/external/onnxruntime_external_deps.cmake b/cmake/external/onnxruntime_external_deps.cmake
+index 9effd1a2db..ed15ad31aa 100644
+--- a/cmake/external/onnxruntime_external_deps.cmake
++++ b/cmake/external/onnxruntime_external_deps.cmake
+@@ -19,16 +19,16 @@ endforeach()
+
+ message("Loading Dependencies ...")
+ # ABSL should be included before protobuf because protobuf may use absl
+-include(external/abseil-cpp.cmake)
+
+ set(RE2_BUILD_TESTING OFF CACHE BOOL "" FORCE)
+
+-FetchContent_Declare(
+- re2
+- URL ${DEP_URL_re2}
+- URL_HASH SHA1=${DEP_SHA1_re2}
+- FIND_PACKAGE_ARGS NAMES re2
+-)
++find_package(absl REQUIRED)
++set(ABSEIL_LIBS absl::inlined_vector absl::flat_hash_set
++ absl::flat_hash_map absl::node_hash_set absl::node_hash_map absl::base absl::throw_delegate absl::raw_hash_set
++ absl::hash absl::city absl::low_level_hash absl::raw_logging_internal)
++find_package(Protobuf REQUIRED)
++find_package(re2 REQUIRED)
++find_package(nlohmann_json REQUIRED)
+
+ if (onnxruntime_BUILD_UNIT_TESTS)
+ # WebAssembly threading support in Node.js is still an experimental feature and
+@@ -199,7 +199,6 @@ if (onnxruntime_DISABLE_RTTI)
+ set(protobuf_DISABLE_RTTI ON CACHE BOOL "Remove runtime type information in the binaries" FORCE)
+ endif()
+
+-include(protobuf_function)
+ #protobuf end
+
+ set(ENABLE_DATE_TESTING OFF CACHE BOOL "" FORCE)
+@@ -359,7 +359,7 @@ FetchContent_Declare(
+ # protobuf's cmake/utf8_range.cmake has the following line
+ include_directories(${utf8_range_SOURCE_DIR})
+
+-onnxruntime_fetchcontent_makeavailable(Protobuf nlohmann_json mp11 re2 GSL flatbuffers ${ONNXRUNTIME_CPUINFO_PROJ} ${ONNXRUNTIME_CLOG_PROJ})
++onnxruntime_fetchcontent_makeavailable(mp11 GSL flatbuffers ${ONNXRUNTIME_CPUINFO_PROJ} ${ONNXRUNTIME_CLOG_PROJ})
+ if(NOT flatbuffers_FOUND)
+ if(NOT TARGET flatbuffers::flatbuffers)
+ add_library(flatbuffers::flatbuffers ALIAS flatbuffers)
+@@ -386,7 +386,7 @@ namespace std { using ::getenv; }
+ endif()
+
+ if (onnxruntime_BUILD_UNIT_TESTS)
+- onnxruntime_fetchcontent_makeavailable(googletest)
++ find_package(GTest REQUIRED)
+ endif()
+
+ if(Protobuf_FOUND)
+diff --git a/cmake/onnxruntime_unittests.cmake b/cmake/onnxruntime_unittests.cmake
+index 9347be180d..8c60ff40f4 100644
+--- a/cmake/onnxruntime_unittests.cmake
++++ b/cmake/onnxruntime_unittests.cmake
+@@ -935,6 +935,7 @@ endif()
+ onnxruntime_add_include_to_target(onnx_test_data_proto onnx_proto)
+ target_include_directories(onnx_test_data_proto PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ set_target_properties(onnx_test_data_proto PROPERTIES FOLDER "ONNXRuntimeTest")
++include(protobuf_function)
+ onnxruntime_protobuf_generate(APPEND_PATH IMPORT_DIRS ${onnx_SOURCE_DIR} TARGET onnx_test_data_proto)
+
+ #
diff --git a/testing/opa/APKBUILD b/testing/opa/APKBUILD
new file mode 100644
index 00000000000..b12d3544b78
--- /dev/null
+++ b/testing/opa/APKBUILD
@@ -0,0 +1,77 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=opa
+pkgver=0.61.0
+pkgrel=2
+pkgdesc="Open source, general-purpose policy engine"
+url="https://www.openpolicyagent.org/"
+# only platforms with full +wasm support, as upstream does
+arch="aarch64 x86_64"
+license="Apache-2.0"
+makedepends="go wasmtime-dev"
+checkdepends="tzdata"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/open-policy-agent/opa/archive/refs/tags/v$pkgver.tar.gz
+ https://dev.alpinelinux.org/archive/open-policy-agent/pr6556-bump-wasmtime-go-v17.patch
+ tests-go1.22-compat.patch
+ "
+
+export CGO_ENABLED=1
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ # report.ExternalServiceURL is left blank to disable telemetry
+ # - "opa version -c" errors out
+ # - "opa run" fails the version check process silently in the background
+ # this is intended :)
+ local goldflags="
+ -X github.com/open-policy-agent/opa/version.Version=$pkgver
+ -X github.com/open-policy-agent/opa/version.Hostname=AlpineLinux
+ -X github.com/open-policy-agent/opa/version.Vcs=0000000000000000000000000000000000000000
+ -X github.com/open-policy-agent/opa/version.Timestamp=$(date -u "+%Y-%m-%dT%H:%M:%SZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X github.com/open-policy-agent/opa/internal/report.ExternalServiceURL=
+ "
+
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS -L/usr/lib -lwasmtime"
+
+ go build -v -ldflags "$goldflags" -tags opa_wasm
+
+ mkdir -p man/
+ go run build/generate-man/generate.go man/
+
+ for shell in bash fish zsh; do
+ ./opa completion $shell > opa.$shell
+ done
+}
+
+check() {
+ # tests are not ran with opa_wasm tag so tests that use wasm engine fail
+ go test -skip TestRegoTargetWasmAndTargetPluginDisablesIndexingTopdownStages ./...
+}
+
+package() {
+ install -Dm755 opa -t "$pkgdir"/usr/bin/
+
+ install -Dm644 man/*.1 -t "$pkgdir"/usr/share/man/man1/
+
+ install -Dm644 opa.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/opa
+ install -Dm644 opa.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/opa.fish
+ install -Dm644 opa.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_opa
+}
+
+sha512sums="
+d80443cf58d3b703cf4209d4170b76a2173a6af5fc18c2f777d1258b328aa35e030ac220212a03ad76f26ff08c1a93077fccbacf9a3ae6c72f48162b715375a9 opa-0.61.0.tar.gz
+458e515e22faf739ef6966ea39de5f7d9863d5d1e1e9b8659dc6e0c717ec03215ffb2770f4d48437bf995ec72fc52d85d9b8b53aa3f8428901b49fe59760a167 pr6556-bump-wasmtime-go-v17.patch
+74ab9327d0b7a5ed2c568cd0f4d1e06272671e785112f0037b810c54e2a1bc5437722973e8b4bdc2619570dbf2ae637b2057817c36b7828e365f48d1c0184c9a tests-go1.22-compat.patch
+"
diff --git a/testing/opa/tests-go1.22-compat.patch b/testing/opa/tests-go1.22-compat.patch
new file mode 100644
index 00000000000..3ad677d5461
--- /dev/null
+++ b/testing/opa/tests-go1.22-compat.patch
@@ -0,0 +1,274 @@
+Patch-Source: https://github.com/open-policy-agent/opa/commit/963f5eaada9afef608a649550eb7f50d89a06181.patch
+--
+From 963f5eaada9afef608a649550eb7f50d89a06181 Mon Sep 17 00:00:00 2001
+From: Stephan Renatus <stephan@styra.com>
+Date: Tue, 20 Feb 2024 12:46:17 +0100
+Subject: [PATCH] build(go): bump golang, build with 1.22, support 1.20+
+ (#6595)
+
+https://go.dev/doc/go1.22
+
+Signed-off-by: Stephan Renatus <stephan@styra.com>
+---
+ .github/workflows/pull-request.yaml | 2 +-
+ .go-version | 2 +-
+ go.mod | 2 +-
+ internal/prometheus/prometheus_go1.19_test.go | 145 ------------------
+ internal/prometheus/prometheus_test.go | 20 ++-
+ topdown/tokens_test.go | 6 -
+ 6 files changed, 18 insertions(+), 159 deletions(-)
+ delete mode 100644 internal/prometheus/prometheus_go1.19_test.go
+
+diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml
+index 10f073f7f9..52ddd670cf 100644
+--- a/.github/workflows/pull-request.yaml
++++ b/.github/workflows/pull-request.yaml
+@@ -292,7 +292,7 @@ jobs:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-22.04, macos-latest]
+- version: ["1.19"]
++ version: ["1.20"]
+ steps:
+ - uses: actions/checkout@v4
+ - name: Download generated artifacts
+diff --git a/.go-version b/.go-version
+index ce2dd53570..71f7f51df9 100644
+--- a/.go-version
++++ b/.go-version
+@@ -1 +1 @@
+-1.21.5
++1.22
+diff --git a/go.mod b/go.mod
+index e0d860b6a0..7abc6d4cfd 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,6 +1,6 @@
+ module github.com/open-policy-agent/opa
+
+-go 1.19
++go 1.20
+
+ require (
+ github.com/OneOfOne/xxhash v1.2.8
+diff --git a/internal/prometheus/prometheus_go1.19_test.go b/internal/prometheus/prometheus_go1.19_test.go
+deleted file mode 100644
+index 4b253d8ada..0000000000
+--- a/internal/prometheus/prometheus_go1.19_test.go
++++ /dev/null
+@@ -1,145 +0,0 @@
+-// Copyright 2022 The OPA Authors. All rights reserved.
+-// Use of this source code is governed by an Apache2
+-// license that can be found in the LICENSE file.
+-
+-// NOTE(sr): Different go runtime metrics on 1.19.
+-// This can be removed when we drop support for go 1.19.
+-//go:build go1.19 && !go1.20
+-// +build go1.19,!go1.20
+-
+-package prometheus
+-
+-import (
+- "encoding/json"
+- "testing"
+-
+- "github.com/open-policy-agent/opa/logging"
+- "github.com/open-policy-agent/opa/metrics"
+-)
+-
+-func TestJSONSerialization(t *testing.T) {
+- inner := metrics.New()
+- logger := func(logger logging.Logger) loggerFunc {
+- return func(attrs map[string]interface{}, f string, a ...interface{}) {
+- logger.WithFields(attrs).Error(f, a...)
+- }
+- }(logging.NewNoOpLogger())
+-
+- prom := New(inner, logger, []float64{1e-6, 5e-6, 1e-5, 5e-5, 1e-4, 5e-4, 1e-3, 0.01, 0.1, 1})
+-
+- m := prom.All()
+- bs, err := json.Marshal(m)
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- act := make(map[string]map[string]interface{}, len(m))
+- err = json.Unmarshal(bs, &act)
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- // NOTE(sr): "http_request_duration_seconds" only shows up after there has been a request
+- exp := map[string][]string{
+- "GAUGE": {
+- "go_gc_heap_goal_bytes",
+- "go_gc_heap_objects_objects",
+- "go_gc_stack_starting_size_bytes",
+- "go_gc_limiter_last_enabled_gc_cycle",
+- "go_goroutines",
+- "go_info",
+- "go_memory_classes_heap_free_bytes",
+- "go_memory_classes_heap_objects_bytes",
+- "go_memory_classes_heap_released_bytes",
+- "go_memory_classes_heap_stacks_bytes",
+- "go_memory_classes_heap_unused_bytes",
+- "go_memory_classes_metadata_mcache_free_bytes",
+- "go_memory_classes_metadata_mcache_inuse_bytes",
+- "go_memory_classes_metadata_mspan_free_bytes",
+- "go_memory_classes_metadata_mspan_inuse_bytes",
+- "go_memory_classes_metadata_other_bytes",
+- "go_memory_classes_os_stacks_bytes",
+- "go_memory_classes_other_bytes",
+- "go_memory_classes_profiling_buckets_bytes",
+- "go_memory_classes_total_bytes",
+- "go_memstats_alloc_bytes",
+- "go_memstats_buck_hash_sys_bytes",
+- // "go_memstats_gc_cpu_fraction", // removed: https://github.com/prometheus/client_golang/issues/842#issuecomment-861812034
+- "go_memstats_gc_sys_bytes",
+- "go_memstats_heap_alloc_bytes",
+- "go_memstats_heap_idle_bytes",
+- "go_memstats_heap_inuse_bytes",
+- "go_memstats_heap_objects",
+- "go_memstats_heap_released_bytes",
+- "go_memstats_heap_sys_bytes",
+- "go_memstats_last_gc_time_seconds",
+- "go_memstats_mcache_inuse_bytes",
+- "go_memstats_mcache_sys_bytes",
+- "go_memstats_mspan_inuse_bytes",
+- "go_memstats_mspan_sys_bytes",
+- "go_memstats_next_gc_bytes",
+- "go_memstats_other_sys_bytes",
+- "go_memstats_stack_inuse_bytes",
+- "go_memstats_stack_sys_bytes",
+- "go_memstats_sys_bytes",
+- "go_sched_goroutines_goroutines",
+- "go_sched_gomaxprocs_threads",
+- "go_threads",
+- },
+- "COUNTER": {
+- "go_gc_cycles_automatic_gc_cycles_total",
+- "go_gc_cycles_forced_gc_cycles_total",
+- "go_gc_cycles_total_gc_cycles_total",
+- "go_gc_heap_allocs_bytes_total",
+- "go_gc_heap_allocs_objects_total",
+- "go_gc_heap_tiny_allocs_objects_total",
+- "go_gc_heap_frees_bytes_total",
+- "go_gc_heap_frees_objects_total",
+- "go_cgo_go_to_c_calls_calls_total",
+- "go_memstats_alloc_bytes_total",
+- "go_memstats_lookups_total",
+- "go_memstats_mallocs_total",
+- "go_memstats_frees_total",
+- },
+- "SUMMARY": {
+- "go_gc_duration_seconds",
+- },
+- "HISTOGRAM": {
+- "go_gc_pauses_seconds", // was: "go_gc_pauses_seconds_total"
+- "go_gc_heap_allocs_by_size_bytes", // was: "go_gc_heap_allocs_by_size_bytes_total"
+- "go_gc_heap_frees_by_size_bytes", // was: "go_gc_heap_frees_by_size_bytes_total"
+- "go_sched_latencies_seconds",
+- },
+- }
+- found := 0
+- for typ, es := range exp {
+- for _, e := range es {
+- a, ok := act[e]
+- if !ok {
+- t.Errorf("%v: metric missing", e)
+- continue
+- }
+- if act, ok := a["type"].(string); !ok || act != typ {
+- t.Errorf("%v: unexpected type: %v (expected %v)", e, act, typ)
+- continue
+- }
+- found++
+- }
+- }
+- if len(act) != found {
+- t.Errorf("unexpected extra metrics, expected %d, got %d", found, len(act))
+- for a, ty := range act {
+- found := false
+- for _, es := range exp {
+- for _, e := range es {
+- if a == e {
+- found = true
+- }
+- }
+- }
+- if !found {
+- t.Errorf("unexpected metric: %v (type: %v)", a, ty)
+- }
+- }
+- }
+-}
+diff --git a/internal/prometheus/prometheus_test.go b/internal/prometheus/prometheus_test.go
+index 7f2c73f441..4f09f866bb 100644
+--- a/internal/prometheus/prometheus_test.go
++++ b/internal/prometheus/prometheus_test.go
+@@ -1,11 +1,10 @@
+ // Copyright 2022 The OPA Authors. All rights reserved.
+ // Use of this source code is governed by an Apache2
+ // license that can be found in the LICENSE file.
+-
+-// NOTE(an): Different go runtime metrics on 1.20.
+-// This can be removed when we drop support for go 1.19.
+-//go:build go1.20
+-// +build go1.20
++//
++// NOTE(sr): Different go runtime metrics on 1.20 vs 1.22.
++// Let's only test these on 1.22.
++//go:build go1.22
+
+ package prometheus
+
+@@ -137,6 +136,13 @@ func TestJSONSerialization(t *testing.T) {
+ "go_godebug_non_default_behavior_x509usefallbackroots_events_total",
+ "go_godebug_non_default_behavior_zipinsecurepath_events_total",
+ "go_godebug_non_default_behavior_tlsmaxrsasize_events_total",
++ "go_godebug_non_default_behavior_gotypesalias_events_total", // BEGIN added in 1.22
++ "go_godebug_non_default_behavior_tlsunsafeekm_events_total",
++ "go_godebug_non_default_behavior_httplaxcontentlength_events_total",
++ "go_godebug_non_default_behavior_x509usepolicies_events_total",
++ "go_godebug_non_default_behavior_tls10server_events_total",
++ "go_godebug_non_default_behavior_httpmuxgo121_events_total",
++ "go_godebug_non_default_behavior_tlsrsakex_events_total",
+ },
+ "SUMMARY": {
+ "go_gc_duration_seconds",
+@@ -146,6 +152,10 @@ func TestJSONSerialization(t *testing.T) {
+ "go_gc_heap_allocs_by_size_bytes", // was: "go_gc_heap_allocs_by_size_bytes_total"
+ "go_gc_heap_frees_by_size_bytes", // was: "go_gc_heap_frees_by_size_bytes_total"
+ "go_sched_latencies_seconds",
++ "go_sched_pauses_stopping_other_seconds", // BEGIN added in 1.22
++ "go_sched_pauses_stopping_gc_seconds",
++ "go_sched_pauses_total_gc_seconds",
++ "go_sched_pauses_total_other_seconds",
+ },
+ }
+ found := 0
+diff --git a/topdown/tokens_test.go b/topdown/tokens_test.go
+index 975a78461c..d3f482cb00 100644
+--- a/topdown/tokens_test.go
++++ b/topdown/tokens_test.go
+@@ -10,7 +10,6 @@ import (
+ "encoding/json"
+ "fmt"
+ "os"
+- "runtime"
+ "strings"
+ "testing"
+ "time"
+@@ -472,12 +471,7 @@ func TestTopdownJWTEncodeSignECWithSeedReturnsSameSignature(t *testing.T) {
+ "d":"jpsQnnGQmL-YBIffH1136cspYG6-0iY7X1fCE9-E9LI"
+ }, x)`
+
+- // go1.20 and beyond
+ encodedSigned := "eyJhbGciOiAiRVMyNTYifQ.eyJwYXkiOiAibG9hZCJ9.GRp6wIqDZuYnvQH50hnIy559LdrjUux76v1ynxX6lH0XtlgwreyR16x2JMnuElo79X3zUbqlWrZITICv86arew"
+- if strings.HasPrefix(runtime.Version(), "go1.19") { // we don't use go1.18 anymore
+- encodedSigned = "eyJhbGciOiAiRVMyNTYifQ.eyJwYXkiOiAibG9hZCJ9.05wmHY3NomU1jr7yvusBvKwhthRklPuJhUPOkoeIn5e5n_GXvE25EfRs9AJK2wOy6NoY2ljhj07M9BMtV0dfyA"
+- }
+-
+ for i := 0; i < 10; i++ {
+ q := NewQuery(ast.MustParseBody(query)).
+ WithSeed(&cng{}).
diff --git a/testing/opcr-policy/APKBUILD b/testing/opcr-policy/APKBUILD
new file mode 100644
index 00000000000..4d3333a11d6
--- /dev/null
+++ b/testing/opcr-policy/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=opcr-policy
+pkgver=0.2.9
+pkgrel=2
+pkgdesc="CLI for building, versioning and publishing authorization policies"
+url="https://www.openpolicycontainers.com/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/opcr-io/policy/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/policy-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X github.com/opcr-io/policy/pkg/version.ver=$pkgver
+ -X github.com/opcr-io/policy/pkg/version.commit=AlpineLinux
+ -X github.com/opcr-io/policy/pkg/version.date=$(date -u "+%Y-%m-%dT%H:%M:%SZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+
+ go build -v -ldflags "$_goldflags" ./cmd/policy/
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 policy -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+761d650b69c1eebc166b66660a3ac28686e3c69121890bc2c691db5ce0c116e6dc12343927b3302da8ded9be250721d3eeef423dbfeed08de7bb27e98e6ec589 opcr-policy-0.2.9.tar.gz
+"
diff --git a/testing/open-plc-utils/APKBUILD b/testing/open-plc-utils/APKBUILD
deleted file mode 100644
index 22c16b5ce56..00000000000
--- a/testing/open-plc-utils/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Olliver Schinagl <oliver@schinagl.nl>
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-pkgname=open-plc-utils
-pkgver="0_git20181025"
-pkgrel=0
-pkgdesc="Qualcomm Atheros Open Powerline Toolkit"
-url="https://github.com/qca/open-plc-utils"
-arch="all"
-license="BSD-3-Clause-Clear"
-options="suid"
-subpackages="$pkgname-doc"
-_githash="32408520fcebe785983a68e39ec83830a3005779"
-source="https://github.com/qca/$pkgname/archive/$_githash.zip"
-builddir="$srcdir/$pkgname-$_githash"
-
-prepare()
-{
- default_prepare
-
- sed -i \
- -e 's|/usr/local/|/usr/|g' \
- -e 's|/man/man1|/share/man/man1|g' \
- "make.def"
-}
-
-build()
-{
- make ROOTFS="$pkgdir"
-}
-
-check()
-{
- make ROOTFS="$pkgdir" check
-}
-
-package()
-{
- make ROOTFS="$pkgdir" install manuals
-}
-
-sha512sums="cd011f6e0738093b99873a341d6a0385ff21c99e1c6d51244678b6bb616a0b9b7bdf96a5cfb81200787f5eb2537b3ee344e60fdc56a7be9ace35c39cfc59f614 32408520fcebe785983a68e39ec83830a3005779.zip"
diff --git a/testing/open-zwave-control-panel/APKBUILD b/testing/open-zwave-control-panel/APKBUILD
deleted file mode 100644
index 65b61f74f7a..00000000000
--- a/testing/open-zwave-control-panel/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=open-zwave-control-panel
-pkgver=20170321
-_sha=bbbd461c5763faab4949b12da12901f2d6f00f48
-pkgrel=1
-pkgdesc="The OpenZWave Control Panel"
-url="https://github.com/OpenZWave/open-zwave-control-panel"
-arch="all"
-license="custom"
-makedepends="libmicrohttpd-dev openzwave-dev tinyxml-dev gnutls-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/OpenZWave/open-zwave-control-panel/archive/$_sha.tar.gz
- makefile.patch
- "
-builddir="$srcdir/$pkgname-$_sha"
-
-build() {
- make
-}
-
-package() {
- install -Dm755 ozwcp "$pkgdir"/usr/bin/ozwcp
- for i in *.js *.html; do
- install -Dm644 $i "$pkgdir/usr/share/$pkgname/$i"
- done
-}
-
-sha512sums="b688dec8b2a281f233e05e34e90923ed7848e930625dad19e44ece70cd2a1abe3bb23030fc528ef78e1b37e33068973f1b1637319d299d8d88a0328a41b2bff0 open-zwave-control-panel-20170321.tar.gz
-8540d69445526834b39c6fc670de7d4c4e3cbf6ce007b776a4fa6f8ccf018aaf330f87894343797831292dc85efb7a7d371da691a1e4f4d3c59b63d10d2c139a makefile.patch"
diff --git a/testing/open-zwave-control-panel/makefile.patch b/testing/open-zwave-control-panel/makefile.patch
deleted file mode 100644
index 5baea5a4cad..00000000000
--- a/testing/open-zwave-control-panel/makefile.patch
+++ /dev/null
@@ -1,81 +0,0 @@
---- ./Makefile
-+++ ./Makefile.new
-@@ -13,59 +13,45 @@
- RANLIB := $(CROSS_COMPILE)ranlib
-
- DEBUG_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -g -DDEBUG -ggdb -O0
--RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Werror -Wno-format -O3 -DNDEBUG
-+RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3 -DNDEBUG
-
- DEBUG_LDFLAGS := -g
-
- # Change for DEBUG or RELEASE
--CFLAGS := -c $(DEBUG_CFLAGS)
--LDFLAGS := $(DEBUG_LDFLAGS)
-+CFLAGS := -c $(RELEASE_CFLAGS)
-+LDFLAGS := $(RELEASE_CFLAGS)
-
--OPENZWAVE := ../open-zwave/
--LIBMICROHTTPD := -L/usr/local/lib/ -lmicrohttpd
-+OPENZWAVE := /usr/include/openzwave
-+LIBMICROHTTPD := -L/usr/lib/ -lmicrohttpd
-
--INCLUDES := -I $(OPENZWAVE)/cpp/src -I $(OPENZWAVE)/cpp/src/command_classes/ \
-- -I $(OPENZWAVE)/cpp/src/value_classes/ -I $(OPENZWAVE)/cpp/src/platform/ \
-- -I $(OPENZWAVE)/cpp/src/platform/unix -I $(OPENZWAVE)/cpp/tinyxml/ \
-- -I /usr/local/include/
-+INCLUDES := -I $(OPENZWAVE) -I $(OPENZWAVE)/command_classes/ \
-+ -I $(OPENZWAVE)/value_classes/ -I $(OPENZWAVE)/platform/ \
-+ -I $(OPENZWAVE)/platform/unix -I $(OPENZWAVE)/tinyxml/ \
-+ -I /usr/include/
-
- # Remove comment below for gnutls support
--#GNUTLS := -lgnutls
-+GNUTLS := -lgnutls
-
- # for Linux uncomment out next three lines
- LIBZWAVE := $(wildcard $(OPENZWAVE)/*.a)
--#LIBUSB := -ludev
--#LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) -lresolv
-+LIBUSB := -ludev
-+LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) -lresolv -ltinyxml -lopenzwave
-
--# for Mac OS X comment out above 2 lines and uncomment next 5 lines
--#ARCH := -arch i386 -arch x86_64
--#CFLAGS += $(ARCH)
--#LIBZWAVE := $(wildcard $(OPENZWAVE)/cpp/lib/mac/*.a)
--LIBUSB := -framework IOKit -framework CoreFoundation
--LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB) $(ARCH) -lresolv
--
- %.o : %.cpp
- $(CXX) $(CFLAGS) $(INCLUDES) -o $@ $<
-
- %.o : %.c
- $(CC) $(CFLAGS) $(INCLUDES) -o $@ $<
-
--all: defs ozwcp
-+all: ozwcp
-
-+ozwcp.o: ozwcp.h webserver.h $(OPENZWAVE)/Options.h $(OPENZWAVE)/Manager.h \
-+ $(OPENZWAVE)/Node.h $(OPENZWAVE)/Group.h \
-+ $(OPENZWAVE)/Notification.h $(OPENZWAVE)/platform/Log.h
-
--defs:
--ifeq ($(LIBZWAVE),)
-- @echo Please edit the Makefile to avoid this error message.
-- @exit 1
--endif
--
--ozwcp.o: ozwcp.h webserver.h $(OPENZWAVE)/cpp/src/Options.h $(OPENZWAVE)/cpp/src/Manager.h \
-- $(OPENZWAVE)/cpp/src/Node.h $(OPENZWAVE)/cpp/src/Group.h \
-- $(OPENZWAVE)/cpp/src/Notification.h $(OPENZWAVE)/cpp/src/platform/Log.h
--
--webserver.o: webserver.h ozwcp.h $(OPENZWAVE)/cpp/src/Options.h $(OPENZWAVE)/cpp/src/Manager.h \
-- $(OPENZWAVE)/cpp/src/Node.h $(OPENZWAVE)/cpp/src/Group.h \
-- $(OPENZWAVE)/cpp/src/Notification.h $(OPENZWAVE)/cpp/src/platform/Log.h
-+webserver.o: webserver.h ozwcp.h $(OPENZWAVE)/Options.h $(OPENZWAVE)/Manager.h \
-+ $(OPENZWAVE)/Node.h $(OPENZWAVE)/Group.h \
-+ $(OPENZWAVE)/Notification.h $(OPENZWAVE)/platform/Log.h
-
- ozwcp: ozwcp.o webserver.o zwavelib.o $(LIBZWAVE)
- $(LD) -o $@ $(LDFLAGS) ozwcp.o webserver.o zwavelib.o $(LIBS)
diff --git a/testing/opencascade/APKBUILD b/testing/opencascade/APKBUILD
deleted file mode 100644
index 8ffb9770884..00000000000
--- a/testing/opencascade/APKBUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=opencascade
-pkgver=7.4.0
-pkgrel=1
-pkgdesc="An SDK for development of applications dealing with 3D CAD data"
-url="https://dev.opencascade.org/"
-arch="x86_64" # Dependency vtk is x86_64 only
-license="LGPL-2.1-only"
-makedepends="
- cmake
- doxygen
- ffmpeg-dev
- freeimage-dev
- freetype-dev
- libtbb
- libtbb-dev
- libxi-dev
- libxmu-dev
- mesa-dev
- tk
- tk-dev
- vtk-dev
- "
-subpackages="$pkgname-doc $pkgname-dev"
-source="
- opencascade-$pkgver.tar.gz::https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V${pkgver//./_};sf=tgz
- no_mallinfo.patch
- no_feenableexcept.patch
- cmake_fix_install_dir.patch
- cmake_add_buildtype_none.patch
- "
-builddir="$srcdir/occt-V${pkgver//./_}"
-options="!check" # No tests provided :-/
-
-build() {
- mkdir -p build
- cd build
- cmake .. \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DUSE_GL2PS=OFF \
- -DUSE_FREEIMAGE=ON \
- -DUSE_FFMPEG=ON \
- -DUSE_VTK=ON \
- -DUSE_TBB=ON
- make
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="eb0d47848d48f42a159ae5d7a4144483ba1f59f634844bd2053e48e04af30a30ba7056112cd38a1730d193a8d736b898f9608dd574cbe6829dbe7257a002772a opencascade-7.4.0.tar.gz
-01ee778de7ef95a479c87445d1d062e5d858879e211d2c312f801133e35f768cc70d00e3f3fae00f39c60473641c78517d16d63425dd2dd7e19f3079d2cf1a51 no_mallinfo.patch
-b039b8fce696bfd0f53309a72adab4065780bf1755da6208040157e9383deb0061ad8927a6f160730f431cbebe3fdd1eaa7967b38da4a245a8d9306042d97629 no_feenableexcept.patch
-10481f153adf1db55111d68da49dae1885a50e745d3a978f6316b5b13a3f2d7de6a2ed6a3c60c20ef967ea65c16b372da03bf2665ffe4493ad6fe329a3abf368 cmake_fix_install_dir.patch
-4bdedc8f0e011530115777cddeeb898750242999725347c3392d8858e5cc9543c791814aa41e1543c575a6a79b0b32fd72970bb83c8948fe42f33993244db1cf cmake_add_buildtype_none.patch"
diff --git a/testing/opencascade/cmake_add_buildtype_none.patch b/testing/opencascade/cmake_add_buildtype_none.patch
deleted file mode 100644
index cabe4055a65..00000000000
--- a/testing/opencascade/cmake_add_buildtype_none.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1c6a41b..ff973e8 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -4,7 +4,7 @@ set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/adm/cmake")
-
- set (CMAKE_SUPPRESS_REGENERATION TRUE)
-
--set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo CACHE INTERNAL "" FORCE)
-+set (CMAKE_CONFIGURATION_TYPES Release Debug RelWithDebInfo None CACHE INTERNAL "" FORCE)
-
- # macro: include patched file if it exists
- macro (OCCT_INCLUDE_CMAKE_FILE BEING_INCLUDED_FILE)
diff --git a/testing/opencascade/cmake_fix_install_dir.patch b/testing/opencascade/cmake_fix_install_dir.patch
deleted file mode 100644
index f7340a97a79..00000000000
--- a/testing/opencascade/cmake_fix_install_dir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Fixes:
-> CMake Error at cmake_install.cmake:8340 (configure_file):
-> configure_file Problem configuring file
-First posted on Arch Linux
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0b445de..1c6a41b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1122,7 +1122,7 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
- endforeach()
- # install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
- install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
--install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
-+install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"\$ENV{DESTDIR}${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
-
- foreach (OCCT_MODULE ${OCCT_MODULES})
- if (BUILD_MODULE_${OCCT_MODULE})
-diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake
-index 8220ecd..d1ceea6 100644
---- a/adm/cmake/occt_macros.cmake
-+++ b/adm/cmake/occt_macros.cmake
-@@ -598,7 +598,7 @@ macro (OCCT_UPDATE_TARGET_FILE)
- "cmake_policy(PUSH)
- cmake_policy(SET CMP0007 NEW)
- string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWERCASE)
-- file (GLOB ALL_OCCT_TARGET_FILES \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
-+ file (GLOB ALL_OCCT_TARGET_FILES \"\$ENV{DESTDIR}${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE*Targets-\${CMAKE_INSTALL_CONFIG_NAME_LOWERCASE}.cmake\")
- foreach(TARGET_FILENAME \${ALL_OCCT_TARGET_FILES})
- file (STRINGS \"\${TARGET_FILENAME}\" TARGET_FILE_CONTENT)
- file (REMOVE \"\${TARGET_FILENAME}\")
diff --git a/testing/opencascade/no_feenableexcept.patch b/testing/opencascade/no_feenableexcept.patch
deleted file mode 100644
index 21d9e699e6a..00000000000
--- a/testing/opencascade/no_feenableexcept.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-musl does not provice feenableexcept and fedisableexcept. Those calls have
-only been used on linux so far. This patch extends the #ifdef logic to only use
-them on Linux if additionally glibc is used.
---- occt-V7_4_0-org/src/OSD/OSD_signal.cxx
-+++ occt-V7_4_0/src/OSD/OSD_signal.cxx
-@@ -678,7 +678,7 @@
- // POSIX threads
- #include <pthread.h>
-
--#ifdef __linux__
-+#ifdef __linux__ && defined(__GLIBC__)
- #include <cfenv>
- //#include <fenv.h>
- #endif
-@@ -793,7 +793,7 @@
- case SIGFPE:
- sigaddset(&set, SIGFPE);
- sigprocmask(SIG_UNBLOCK, &set, NULL) ;
--#ifdef __linux__
-+#ifdef __linux__ && defined(__GLIBC__)
- OSD::SetFloatingSignal (Standard_True);
- #endif
- #if (!defined (__sun)) && (!defined(SOLARIS))
-@@ -914,7 +914,7 @@
- //=======================================================================
- void OSD::SetFloatingSignal (Standard_Boolean theFloatingSignal)
- {
--#if defined (__linux__)
-+#if defined (__linux__) && defined(__GLIBC__)
- feclearexcept (FE_ALL_EXCEPT);
- if (theFloatingSignal)
- {
-@@ -947,7 +947,7 @@
- //=======================================================================
- Standard_Boolean OSD::ToCatchFloatingSignals()
- {
--#if defined (__linux__)
-+#if defined (__linux__) && defined(__GLIBC__)
- return (fegetexcept() & _OSD_FPX) != 0;
- #else
- return Standard_False;
diff --git a/testing/opencascade/no_mallinfo.patch b/testing/opencascade/no_mallinfo.patch
deleted file mode 100644
index 6aef939aedb..00000000000
--- a/testing/opencascade/no_mallinfo.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-mallinfo() is not provided in musl. This patch uses getrusage() instead to use
-the maximum resident set size as a (poor) approximation of the heap usage.
---- occt-V7_3_0p3.bin/src/OSD/OSD_MemInfo.cxx
-+++ occt-V7_3_0p3/src/OSD/OSD_MemInfo.cxx
-@@ -35,6 +35,9 @@
- #include <sstream>
- #include <fstream>
-
-+#include <sys/time.h>
-+#include <sys/resource.h>
-+
- #include <OSD_MemInfo.hxx>
-
- // =======================================================================
-@@ -147,8 +150,11 @@
- }
- aFile.close();
-
-- struct mallinfo aMI = mallinfo();
-- myCounters[MemHeapUsage] = aMI.uordblks;
-+ // mallinfo() not available with musl. We use getrusage to approximate it
-+ // with the maximum resident set size
-+ struct rusage ru = { .ru_maxrss = 0 };
-+ getrusage(RUSAGE_SELF, &ru);
-+ myCounters[MemHeapUsage] = ru.ru_maxrss;
-
- #elif (defined(__APPLE__))
- struct task_basic_info aTaskInfo;
diff --git a/testing/opencc/APKBUILD b/testing/opencc/APKBUILD
deleted file mode 100644
index 9917eb5f338..00000000000
--- a/testing/opencc/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=opencc
-_pkgname=OpenCC
-pkgver=1.1.1
-pkgrel=0
-pkgdesc="Open Chinese Convert"
-url="http://opencc.byvoid.com/"
-arch="all"
-license="Apache-2.0"
-makedepends="cmake doxygen python3"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-ver.$pkgver.tar.gz::https://github.com/BYVoid/$_pkgname/archive/ver.$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-ver.$pkgver"
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_DOCUMENTATION=on \
- -DBUILD_TESTING=off \
- . $CMAKE_CROSSOPTS
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"-doc/usr/share/doc
- mv "$pkgdir"/usr/share/$pkgname/doc "$pkgdir"-doc/usr/share/doc/$pkgname
-}
-
-sha512sums="48ccf61f63cf0a1c0fc484a52ae1d406a28949a52be7d7d1595e6aaf87f40ac47ea4697308441a9381f0cd6f404ee5a28b85a2fa2f288c4b3933be36f4a41363 opencc-ver.1.1.1.tar.gz"
diff --git a/testing/opencolorio/APKBUILD b/testing/opencolorio/APKBUILD
deleted file mode 100644
index 716c0fe5f58..00000000000
--- a/testing/opencolorio/APKBUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# Contributor: Mark Riedesel <mark@klowner.com>
-# Maintainer: Mark Riedesel <mark@klowner.com>
-pkgname=opencolorio
-pkgver=1.1.1
-pkgrel=2
-pkgdesc="A color management framework for visual effects and animation"
-url="https://opencolorio.org"
-arch="all"
-license="BSD-3-Clause AND GPL-2.0-or-later"
-makedepends="boost-dev cmake freeglut-dev glew-dev lcms2-dev python3-dev
- tinyxml-dev yaml-cpp-dev"
-subpackages="py3-$pkgname:py3 $pkgname-dev $pkgname-tools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/imageworks/OpenColorIO/archive/v$pkgver.tar.gz
- ocio-1.1.0-yamlcpp060.patch
- gcc9.patch
- "
-builddir="$srcdir/OpenColorIO-$pkgver"
-
-build() {
- local use_ss2
- # Just to be sure we're using Alpine packages.
- rm -f ext/lcms* ext/tinyxml* ext/yaml*
-
- case "$CARCH" in
- x86_64) use_sse2=TRUE ;;
- *) use_sse2=FALSE ;;
- esac
-
- mkdir build
- cd build
-
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DOCIO_BUILD_TRUELIGHT=OFF \
- -DOCIO_BUILD_NUKE=OFF \
- -DOCIO_BUILD_SHARED=ON \
- -DOCIO_BUILD_STATIC=OFF \
- -DOCIO_USE_SSE="$use_sse2" \
- -DPYTHON=/usr/bin/python3 \
- -DUSE_EXTERNAL_YAML=TRUE \
- -DUSE_EXTERNAL_TINYXML=TRUE \
- -DUSE_EXTERNAL_LCMS=TRUE \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-error=cast-function-type"
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-tools() {
- pkgdesc="OpenColorIO color management framework tools"
-
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr
-}
-
-py3() {
- pkgdesc="Python3 bindings for OpenColorIO color management framework"
- depends="python3"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib
-}
-
-sha512sums="bed722f9ddce1887d28aacef2882debccd7c3f3c0c708d2723fea58a097de9f02721af9e85453e089ffda5406aef593ab6536c6886307823c132aa787e492e33 opencolorio-1.1.1.tar.gz
-ef4b0e880c587fcd004865fd938e7f1fb1bbb933abf1ccf352260ebe3a50145664e27b9f1119b72ced99afe4d19b49b0b6c249dd95faaec9c1332ffc44bc9811 ocio-1.1.0-yamlcpp060.patch
-b2be3e01d87b3b69fafdd5eff7adc99dd1f222184aaf338956aed5438f43960558423902ec544614cf0677a48849f0f88cd5c74f8dd5a06e20a91aa72a574883 gcc9.patch"
diff --git a/testing/opencolorio/gcc9.patch b/testing/opencolorio/gcc9.patch
deleted file mode 100644
index e0aca496b5e..00000000000
--- a/testing/opencolorio/gcc9.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/core/Config.cpp b/src/core/Config.cpp
-index f5cb379..5ea178e 100644
---- a/src/core/Config.cpp
-+++ b/src/core/Config.cpp
-@@ -330,7 +330,7 @@ OCIO_NAMESPACE_ENTER
- sanitytext_ = rhs.sanitytext_;
-
- cacheids_ = rhs.cacheids_;
-- cacheidnocontext_ = cacheidnocontext_;
-+ cacheidnocontext_ = rhs.cacheidnocontext_;
- }
- return *this;
- }
-diff --git a/src/pyglue/PyAllocationTransform.cpp b/src/pyglue/PyAllocationTransform.cpp
-index 20bb50e..06b418a 100644
---- a/src/pyglue/PyAllocationTransform.cpp
-+++ b/src/pyglue/PyAllocationTransform.cpp
-@@ -53,7 +53,6 @@ OCIO_NAMESPACE_ENTER
- ///
-
- int PyOCIO_AllocationTransform_init(PyOCIO_Transform * self, PyObject * args, PyObject * kwds);
-- PyObject * PyOCIO_AllocationTransform_equals(PyObject * self, PyObject * args);
- PyObject * PyOCIO_AllocationTransform_getAllocation(PyObject * self);
- PyObject * PyOCIO_AllocationTransform_setAllocation(PyObject * self, PyObject * args);
- PyObject * PyOCIO_AllocationTransform_getNumVars(PyObject * self);
-
diff --git a/testing/opencolorio/ocio-1.1.0-yamlcpp060.patch b/testing/opencolorio/ocio-1.1.0-yamlcpp060.patch
deleted file mode 100644
index 899ffa7cc0d..00000000000
--- a/testing/opencolorio/ocio-1.1.0-yamlcpp060.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- OpenColorIO-1.1.0/src/core/OCIOYaml.cpp 2018-01-04 17:38:27.000000000 -0800
-+++ OpenColorIO-1.1.0/src/core/OCIOYaml.cpp.new 2018-02-19 16:37:56.733948242 -0800
-@@ -30,43 +30,6 @@
-
- #include <OpenColorIO/OpenColorIO.h>
-
--#ifndef WIN32
--
--// fwd declare yaml-cpp visibility
--#pragma GCC visibility push(hidden)
--namespace YAML {
-- class Exception;
-- class BadDereference;
-- class RepresentationException;
-- class EmitterException;
-- class ParserException;
-- class InvalidScalar;
-- class KeyNotFound;
-- template <typename T> class TypedKeyNotFound;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::ColorSpace>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::Config>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::Exception>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::GpuShaderDesc>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::ImageDesc>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::Look>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::Processor>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::Transform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::AllocationTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::CDLTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::ColorSpaceTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::DisplayTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::ExponentTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::FileTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::GroupTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::LogTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::LookTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::MatrixTransform>;
-- template <> class TypedKeyNotFound<OCIO_NAMESPACE::TruelightTransform>;
--}
--#pragma GCC visibility pop
--
--#endif
--
- #ifdef WIN32
- #pragma warning( push )
- #pragma warning( disable: 4146 )
diff --git a/testing/openconnect/APKBUILD b/testing/openconnect/APKBUILD
deleted file mode 100644
index 72726479358..00000000000
--- a/testing/openconnect/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Myautsai PAN <myautsai@gmail.com>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=openconnect
-pkgver=8.10
-pkgrel=0
-pkgdesc="Open client for Cisco AnyConnect VPN"
-url="https://www.infradead.org/openconnect/"
-arch="all"
-license="LGPL-2.1-or-later"
-depends="vpnc iproute2"
-makedepends="autoconf automake intltool openssl-dev libxml2-dev
- krb5-dev lz4-dev libproxy-dev linux-headers stoken-dev
- pcsc-lite-dev oath-toolkit-dev python3-dev"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc $pkgname-bash-completion"
-source="ftp://ftp.infradead.org/pub/openconnect/openconnect-$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd
- $pkgname.logrotate
- "
-
-build() {
- ./configure \
- --prefix=/usr \
- --sbindir=/usr/bin \
- --disable-static \
- --disable-rpath \
- --with-openssl \
- --with-stoken \
- --with-vpnc-script=/etc/vpnc/vpnc-script \
- --disable-nls
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
- mkdir -p "$pkgdir"/var/log/openconnect
- mkdir -p "$pkgdir"/etc/openconnect
-}
-
-sha512sums="a36a106cf5c637602fc5bd3cd12df8f6dfe55217c1aae93c66ca33208507f3f8cda15e3a46d75615c7fcea1859d1a04017a07674ad0246876154467305477356 openconnect-8.10.tar.gz
-994a8100ef0618e22c5aa6c6ac517632ad16fd58f41abda8379f5cdca8a1ffd6eff5a4cc2d6464db60bf6cc3df1237696cbe055cf83b4c0ccfe77042baa7b1e2 openconnect.initd
-a689df7141621c80bca77fdd1e01397b98882c7fd8db79b2fe1495916656522234e3af739538002533c003e4243e9af4bf80cd73bae961e15568997ce89ef6d5 openconnect.confd
-3b269eb7f469343d48e6e3aa694c5c051811c217217bebf2e74d051cbacf2b57ba926ea69474d30937067f45100863188f719db3fa1bcb4862ddbf446bdd48d2 openconnect.logrotate"
diff --git a/testing/openconnect/openconnect.confd b/testing/openconnect/openconnect.confd
deleted file mode 100644
index 53b14e61378..00000000000
--- a/testing/openconnect/openconnect.confd
+++ /dev/null
@@ -1,26 +0,0 @@
-# Variables to configure vpn tunnels where "vpnname" is the name of your vpn tunnel:
-#
-# server_vpnname
-# password_vpnname
-# vpnopts_vpnname
-#
-# The tunnel will need to be started with a symbolic link to openconnect:
-#
-# ln -s /etc/init.d/openconnect /etc/init.d/openconnect.vpnname
-#
-# If you'd like to execute a script on preup, postup, predown and postdown of the vpn tunnel, you
-# need to create executable scripts in a directory with the same name as
-# the vpn tunnel (vpn0 can be replaced with the vpn name):
-#
-# mkdir /etc/openconnect/vpn0
-# cd /etc/openconnect/vpn0"
-# echo '#!/bin/sh' > preup.sh"
-# cp preup.sh predown.sh"
-# cp preup.sh postup.sh"
-# cp preup.sh postdown.sh"
-# chmod 755 /etc/openconnect/vpn0/*"
-
-server_vpn0="vpn.server.tld"
-password_vpn0="YOUR_PASSWORD"
-# Any OPENCONNECT options my go here (see openconnect --help)
-vpnopts_vpn0="-l --passwd-on-stdin --user=YOUR_USERNAME --script=/etc/openconnect/openconnect.sh"
diff --git a/testing/openconnect/openconnect.initd b/testing/openconnect/openconnect.initd
deleted file mode 100644
index 3ff0b25cfef..00000000000
--- a/testing/openconnect/openconnect.initd
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-VPN="${RC_SVCNAME#*.}"
-VPNDIR="/etc/openconnect/${VPN}"
-VPNLOG="/var/log/openconnect/${VPN}"
-VPNLOGFILE="${VPNLOG}/openconnect.log"
-VPNERRFILE="${VPNLOG}/openconnect.err"
-
-command="/usr/bin/openconnect"
-name="OpenConnect: ${VPN}"
-pidfile="/run/openconnect/${VPN}.pid"
-stopsig="SIGINT"
-
-depend() {
- before netmount
-}
-
-checkconfig() {
- if [ $VPN = "openconnect" ]; then
- eerror "You cannot call openconnect directly. You must create a symbolic link to it with the vpn name:"
- eerror
- eerror "ln -s /etc/init.d/openconnect /etc/init.d/openconnect.vpn0"
- eerror
- eerror "And then call it instead:"
- eerror
- eerror "/etc/init.d/openconnect.vpn0 start"
- return 1
- fi
-}
-
-checktuntap() {
- if [ "$RC_UNAME" = "Linux" -a ! -e /dev/net/tun ] ; then
- if ! modprobe tun ; then
- eerror "TUN/TAP support is not available in this kernel"
- return 1
- fi
- fi
-}
-
-run_hook() {
- if [ -x "$1" ]; then
- "$@"
- fi
-}
-
-start_pre() {
- checkconfig || return
- checktuntap || return
- checkpath -d "${VPNLOG}" || return
- checkpath -d /run/openconnect || return
- run_hook "${VPNDIR}/preup.sh"
-}
-
-start() {
- local server vpnopts password
- eval server=\$server_${VPN}
- eval vpnopts=\$vpnopts_${VPN}
- eval password=\$password_${VPN}
-
- ebegin "Starting ${name}"
- start-stop-daemon --start --exec "${command}" -- \
- --background \
- --interface="${VPN}" \
- --pid-file="${pidfile}" \
- ${vpnopts} \
- "${server}" \
- >> "${VPNLOGFILE}" \
- 2>> "${VPNERRFILE}" \
- <<EOF
-${password}
-EOF
- eend $?
-}
-
-start_post() {
- run_hook "${VPNDIR}/postup.sh"
-}
-
-stop_pre() {
- checkconfig || return
- run_hook "${VPNDIR}/predown.sh"
-}
-
-stop_post() {
- run_hook "${VPNDIR}/postdown.sh"
-}
diff --git a/testing/openconnect/openconnect.logrotate b/testing/openconnect/openconnect.logrotate
deleted file mode 100644
index 541c0a41756..00000000000
--- a/testing/openconnect/openconnect.logrotate
+++ /dev/null
@@ -1,7 +0,0 @@
-# openconnect logrotate for Alpine Linux
-#
-/var/log/openconnect/*/* {
- missingok
- size 5M
- notifempty
-}
diff --git a/testing/opencsg/APKBUILD b/testing/opencsg/APKBUILD
deleted file mode 100644
index 71a5a89f723..00000000000
--- a/testing/opencsg/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=opencsg
-pkgver=1.4.2
-pkgrel=1
-pkgdesc="A library that does image-based CSG rendering using OpenGL"
-url="http://www.opencsg.org/"
-arch="all"
-license="GPL-2.0-only"
-subpackages="$pkgname-dev $pkgname-example"
-makedepends="glew-dev freeglut-dev"
-source="http://www.opencsg.org/OpenCSG-$pkgver.tar.gz"
-builddir="$srcdir/OpenCSG-$pkgver"
-
-build() {
- make -j1
-}
-
-check() {
- make check
-}
-
-package() {
- for folder in src example; do
- sed -e 's/\/usr\/local\//\/usr\//g' -i $folder/Makefile
- make INSTALL_ROOT="$pkgdir" install -j 1 -C $folder
- done
-}
-
-example() {
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
-}
-
-sha512sums="fbe6f925982717ecca7bd0eacc4fc5b362c80c7663b1ff0d9a228f2b5e1d3625d3e6d324d9e634665c74e9c0fc37d10290ece293e59a3eba67035b6b700b7778 OpenCSG-1.4.2.tar.gz"
diff --git a/testing/opendht/APKBUILD b/testing/opendht/APKBUILD
new file mode 100644
index 00000000000..37fdb53e1d7
--- /dev/null
+++ b/testing/opendht/APKBUILD
@@ -0,0 +1,75 @@
+# Contributor: Gavin Henry <ghenry@sentrypeer.org>
+# Maintainer: Gavin Henry <ghenry@sentrypeer.org>
+pkgname=opendht
+pkgver=3.1.7
+pkgrel=2
+pkgdesc="C++17 Distributed Hash Table implementation"
+url="https://github.com/savoirfairelinux/opendht"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ argon2-dev
+ asio-dev
+ cmake
+ cython
+ fmt-dev
+ gnutls-dev
+ http-parser-dev
+ jsoncpp-dev
+ msgpack-cxx-dev
+ nettle-dev
+ openssl-dev
+ py3-setuptools
+ python3-dev
+ readline-dev
+ restinio-dev
+ samurai
+ "
+checkdepends="cppunit-dev"
+depends_dev="fmt-dev"
+subpackages="py3-$pkgname:_py3 $pkgname-libs $pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/savoirfairelinux/opendht/archive/refs/tags/v$pkgver.tar.gz"
+# tests require a quiet environment or network reads don't match
+options="!check"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DOPENDHT_C=ON \
+ -DOPENDHT_TOOLS=ON \
+ -DOPENDHT_PYTHON=ON \
+ -DOPENDHT_HTTP=ON \
+ -DOPENDHT_PUSH_NOTIFICATIONS=ON \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+libs() {
+ default_libs
+ amove usr/lib/libopendht-c.so
+}
+
+_py3() {
+ pkgdesc="$pkgdesc (python bindings)"
+ amove usr/lib/python*
+ amove usr/bin/dhtcluster
+}
+
+sha512sums="
+c89e8276520f94daa31a5c07e6725ba6b8f3daa2fa118914f61394b879b63dce2e0ab462e35af31d40ebd15d1feb119236b4a791dff683486ed7ccd1d0589756 opendht-3.1.7.tar.gz
+"
diff --git a/testing/opendmarc/APKBUILD b/testing/opendmarc/APKBUILD
deleted file mode 100644
index 82358c9840a..00000000000
--- a/testing/opendmarc/APKBUILD
+++ /dev/null
@@ -1,73 +0,0 @@
-# Contributor: Hidde van der Heide <hvanderheide@nexuz.net>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=opendmarc
-pkgver=1.3.2
-pkgrel=0
-pkgdesc="A free open source implementation of the DMARC specification"
-url="http://www.trusteddomain.org/opendmarc/"
-arch="all"
-license="BSD-3-Clause Sendmail"
-makedepends="libmilter-dev libspf2-dev"
-pkgusers="$pkgname"
-install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-libs $pkgname-openrc"
-source="https://downloads.sourceforge.net/project/$pkgname/$pkgname-$pkgver.tar.gz
- netdb_defines.patch
- fix-153-duplicate-dkim-auth_result-sections.patch
- fix-193-sql-strict-mode-compatibility.patch
- dmarcfail-fix-shebang.patch
- config-defaults.patch
- $pkgname.initd
- "
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
- update_config_guess
- update_config_sub
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --with-installdir=/usr \
- --with-spf \
- --with-spf2-lib=/usr/lib \
- --with-spf2-include=/usr/include/spf2
- make
-}
-
-check() {
- cd "$builddir"
- opendmarc/opendmarc -V
-}
-
-package() {
- cd "$builddir"
-
- make DESTDIR="$pkgdir" install
-
- cd "$pkgdir"
-
- install -m 644 -D "$builddir"/opendmarc/opendmarc.conf.sample \
- ./etc/$pkgname/opendmarc.conf
- install -m 755 -D "$srcdir"/$pkgname.initd ./etc/init.d/$pkgname
- install -m 750 -o $pkgusers -g mail -d ./var/spool/$pkgname
-
- # Not needed, standard SPDX licenses.
- rm -Rf ./usr/share/doc/$pkgname/LICENSE*
-}
-
-sha512sums="6045fb7d2be8f0ffdeca07324857d92908a41c6792749017c2fcc1058f05f55317b1919c67c780827dd7094ec8fff2e1fa4aeb5bab7ff7461537957af2652748 opendmarc-1.3.2.tar.gz
-a6808ac27264c84a8f7210ccc67f03028bc3644542c4def30824e6342a3fb207615c7b4b21f38084523df0b4dd777fbb6e9d3802bb50b41d3c5b0ce29ebfeff7 netdb_defines.patch
-90036e48151d054e43e68f739c4a9cb029b5a698910a566a59148673f9a3329ba7550038fba73538309bf7c43374615819f0351623f273c1ef139129fb2bc5fc fix-153-duplicate-dkim-auth_result-sections.patch
-b9b7ce647f58e28f28862aa70b43c23579c453ecf839fde57524826193b099c4865e1da0b97eb7bcccf169c9343fd8f1187de4bbad37e1920561c790ac0ca7c2 fix-193-sql-strict-mode-compatibility.patch
-a8585104490d42ecb2acce40df2e36fc5ed6155fecb16a9de5606703b1b3f5fc7f84f2933350fa3ff8f7da133bc251f30dc33b9c1310bc64e801179de68df026 dmarcfail-fix-shebang.patch
-ea19017a1e2cab4fe388bca45f44f2f3d71c3212e7f5b312e13e0b7af7cd4180bf5ec1e441e65f0ac33e8d98241b4d980a56fe8afc16a443d304cfab06d2bd95 config-defaults.patch
-db4a9c79bbf4c54ae70a61d1501b1fb044b2242b43b82b34365b1c1e45429290f3aa89a78711e9fae5518753ddb3e15de2ef68118dae275ed6a6d6be9b2c03ec opendmarc.initd"
diff --git a/testing/opendmarc/config-defaults.patch b/testing/opendmarc/config-defaults.patch
deleted file mode 100644
index 65aa823e30b..00000000000
--- a/testing/opendmarc/config-defaults.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-Change defaults based on Fedora and openSUSE packages.
-
-Also remove options for supervisor and options that need root privileges
-(we use OpenRC for process supervising and dropping privileges).
-
---- a/opendmarc/opendmarc.conf.sample
-+++ b/opendmarc/opendmarc.conf.sample
-@@ -24,7 +24,7 @@
- ## provided, the name of the host running the filter (as returned by the
- ## gethostname(3) function) will be used.
- #
--# AuthservID name
-+AuthservID HOSTNAME
-
- ## AuthservIDWithJobID { true | false }
- ## default "false"
-@@ -35,46 +35,6 @@
- #
- # AuthservIDWithJobID false
-
--## AutoRestart { true | false }
--## default "false"
--##
--## Automatically re-start on failures. Use with caution; if the filter fails
--## instantly after it starts, this can cause a tight fork(2) loop.
--#
--# AutoRestart false
--
--## AutoRestartCount n
--## default 0
--##
--## Sets the maximum automatic restart count. After this number of automatic
--## restarts, the filter will give up and terminate. A value of 0 implies no
--## limit.
--#
--# AutoRestartCount 0
--
--## AutoRestartRate n/t[u]
--## default (no limit)
--##
--## Sets the maximum automatic restart rate. If the filter begins restarting
--## faster than the rate defined here, it will give up and terminate. This
--## is a string of the form n/t[u] where n is an integer limiting the count
--## of restarts in the given interval and t[u] defines the time interval
--## through which the rate is calculated; t is an integer and u defines the
--## units thus represented ("s" or "S" for seconds, the default; "m" or "M"
--## for minutes; "h" or "H" for hours; "d" or "D" for days). For example, a
--## value of "10/1h" limits the restarts to 10 in one hour. There is no
--## default, meaning restart rate is not limited.
--#
--# AutoRestartRate n/t[u]
--
--## Background { true | false }
--## default "true"
--##
--## Causes opendmarc to fork and exits immediately, leaving the service
--## running in the background.
--#
--# Background true
--
- ## BaseDirectory (string)
- ## default (none)
- ##
-@@ -84,18 +44,8 @@
- ## directory. It's also useful for arranging that any crash dumps will be
- ## saved to a specific location.
- #
--# BaseDirectory /var/run/opendmarc
-+BaseDirectory /run/opendmarc
-
--## ChangeRootDirectory (string)
--## default (none)
--##
--## Requests that the operating system change the effective root directory of
--## the process to the one specified here prior to beginning execution.
--## chroot(2) requires superuser access. A warning will be generated if
--## UserID is not also set.
--#
--# ChangeRootDirectory /var/chroot/opendmarc
--
- ## CopyFailuresTo (string)
- ## default (none)
- ##
-@@ -175,7 +125,7 @@
- ## rather periodically imported into a relational database from which the
- ## aggregate reports can be extracted by a tool such as opendmarc-import(8).
- #
--# HistoryFile /var/run/opendmarc.dat
-+# HistoryFile /var/spool/opendmarc/opendmarc.dat
-
- ## IgnoreAuthenticatedClients { true | false }
- ## default "false"
-@@ -193,7 +143,7 @@
- ## connections are to be ignored by the filter. If not specified, defaults
- ## to "127.0.0.1" only.
- #
--# IgnoreHosts /usr/local/etc/opendmarc/ignore.hosts
-+# IgnoreHosts /etc/opendmarc/ignore.hosts
-
- ## IgnoreMailFrom domain[,...]
- ## default (none)
-@@ -212,14 +162,6 @@
- #
- # MilterDebug 0
-
--## PidFile path
--## default (none)
--##
--## Specifies the path to a file that should be created at process start
--## containing the process ID.
--#
--# PidFile /var/run/opendmarc.pid
--
- ## PublicSuffixList path
- ## default (none)
- ##
-@@ -284,7 +226,7 @@
- ## either in the configuration file or on the command line. If an IP
- ## address is used, it must be enclosed in square brackets.
- #
--# Socket inet:8893@localhost
-+Socket inet:8893@localhost
-
- ## SoftwareHeader { true | false }
- ## default "false"
-@@ -294,7 +236,7 @@
- ## delivery. The product's name, version, and the job ID are included in
- ## the header field's contents.
- #
--# SoftwareHeader false
-+SoftwareHeader true
-
- ## SPFIgnoreResults { true | false }
- ## default "false"
-@@ -303,7 +245,7 @@
- ## message. This is useful if you want the filter to perfrom SPF checks
- ## itself, or because you don't trust the arriving header.
- #
--# SPFIgnoreResults false
-+SPFIgnoreResults true
-
- ## SPFSelfValidate { true | false }
- ## default false
-@@ -316,14 +258,14 @@
- ## is also set, it never looks for SPF results in headers and
- ## always performs the SPF check itself when this is set.
- #
--# SPFSelfValidate false
-+SPFSelfValidate true
-
- ## Syslog { true | false }
- ## default "false"
- ##
- ## Log via calls to syslog(3) any interesting activity.
- #
--# Syslog false
-+Syslog true
-
- ## SyslogFacility facility-name
- ## default "mail"
-@@ -354,13 +296,4 @@
- ## specific file mode on creation regardless of the process umask. See
- ## umask(2) for more information.
- #
--# UMask 077
--
--## UserID user[:group]
--## default (none)
--##
--## Attempts to become the specified userid before starting operations.
--## The process will be assigned all of the groups and primary group ID of
--## the named userid unless an alternate group is specified.
--#
--# UserID opendmarc
-+UMask 007
diff --git a/testing/opendmarc/dmarcfail-fix-shebang.patch b/testing/opendmarc/dmarcfail-fix-shebang.patch
deleted file mode 100644
index 35eee0083ab..00000000000
--- a/testing/opendmarc/dmarcfail-fix-shebang.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- a/contrib/rddmarc/dmarcfail.py
-+++ b/contrib/rddmarc/dmarcfail.py
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/python
-+#!/usr/bin/python2
- # $Header: /home/johnl/hack/dmarc/RCS/dmarcfail.py,v 1.1 2012/07/12 03:59:29 johnl Exp $
- # parse DMARC failure reports, add it to the mysql database
- # optional arguments are names of files containing ARF messages,
diff --git a/testing/opendmarc/fix-153-duplicate-dkim-auth_result-sections.patch b/testing/opendmarc/fix-153-duplicate-dkim-auth_result-sections.patch
deleted file mode 100644
index d0bc7eb27cd..00000000000
--- a/testing/opendmarc/fix-153-duplicate-dkim-auth_result-sections.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Description: do not report same dkim result multiple times
- in the same record object
-URL: https://sf.net/p/opendmarc/tickets/153/
-Author: Tomki
-
-Patch-Source: https://sourceforge.net/p/opendmarc/tickets/_discuss/thread/1ed9d2d3/a93c/attachment/ticket153.patch
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: opendmarc-1.3.1/reports/opendmarc-reports.in
-===================================================================
---- opendmarc-1.3.1.orig/reports/opendmarc-reports.in
-+++ opendmarc-1.3.1/reports/opendmarc-reports.in
-@@ -719,6 +719,7 @@ foreach (@$domainset)
- exit(1);
- }
-
-+ my %dkim_domain_result_cache = ();
- while ($dbi_a = $dbi_d->fetchrow_arrayref())
- {
- undef $dkimdomain;
-@@ -732,11 +733,15 @@ foreach (@$domainset)
- $dkimresult = $dbi_a->[1];
- }
-
--
- if (!defined($dkimdomain))
- {
- next;
- }
-+ if (defined($dkim_domain_result_cache{$dkimdomain}{$dkimresult}))
-+ {
-+ next; # no duplicate per-record auth_result dkim sections
-+ }
-+ $dkim_domain_result_cache{$dkimdomain}{$dkimresult}++;
-
- switch ($dkimresult)
- {
diff --git a/testing/opendmarc/fix-193-sql-strict-mode-compatibility.patch b/testing/opendmarc/fix-193-sql-strict-mode-compatibility.patch
deleted file mode 100644
index 0e6a0c0885a..00000000000
--- a/testing/opendmarc/fix-193-sql-strict-mode-compatibility.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/opendmarc/blob/f28/f/opendmarc.ticket193.patch
-See-Also: https://sourceforge.net/p/opendmarc/tickets/_discuss/thread/f6c4e3e3/dd30/attachment/mysql_strict_mode.patch
-
-diff --git a/db/Makefile.in b/db/Makefile.in
-index 43b8614..83bc1d1 100644
---- a/db/Makefile.in
-+++ b/db/Makefile.in
-@@ -276,7 +276,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--dist_doc_DATA = README.schema schema.mysql
-+dist_doc_DATA = README.schema schema.mysql README.update-db-schema.mysql update-db-schema.mysql
- all: all-am
-
- .SUFFIXES:
-diff --git a/db/README.update-db-schema.mysql b/db/README.update-db-schema.mysql
-new file mode 100644
-index 0000000..8a6a909
---- /dev/null
-+++ b/db/README.update-db-schema.mysql
-@@ -0,0 +1,8 @@
-+
-+To update your database to the current state use this script like this:
-+
-+ mysql -u <user> -p <passwd> --force < update-db-schema.mysql
-+
-+You might receive up to four errors about duplicate keys - this is expected if your database
-+already has these keys (because you used the MySQL schema in the db sub-direcory instead of
-+the obsolete schema in the reports sub-dirctory).
-diff --git a/db/schema.mysql b/db/schema.mysql
-index 99152bd..28416f8 100644
---- a/db/schema.mysql
-+++ b/db/schema.mysql
-@@ -5,6 +5,7 @@
-
- CREATE DATABASE IF NOT EXISTS opendmarc;
- USE opendmarc;
-+SET TIME_ZONE='+00:00';
-
- -- A table for mapping domain names and their DMARC policies to IDs
- CREATE TABLE IF NOT EXISTS domains (
-@@ -28,7 +29,7 @@ CREATE TABLE IF NOT EXISTS requests (
- pct TINYINT NOT NULL,
- locked TINYINT NOT NULL DEFAULT '0',
- firstseen TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-- lastsent TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
-+ lastsent TIMESTAMP NOT NULL DEFAULT '1970-01-01 00:00:01',
-
- PRIMARY KEY(id),
- KEY(lastsent),
-diff --git a/db/update-db-schema.mysql b/db/update-db-schema.mysql
-new file mode 100644
-index 0000000..5c0a190
---- /dev/null
-+++ b/db/update-db-schema.mysql
-@@ -0,0 +1,12 @@
-+use opendmarc;
-+SET TIME_ZONE="+00:00";
-+ALTER TABLE ipaddr MODIFY COLUMN addr VARCHAR(64) NOT NULL;
-+DELETE FROM ipaddr WHERE addr = NULL;
-+ALTER TABLE messages MODIFY COLUMN spf TINYINT NOT NULL;
-+ALTER TABLE requests ALTER COLUMN locked SET DEFAULT '0';
-+ALTER TABLE requests ALTER COLUMN lastsent SET DEFAULT '1970-01-01 00:00:01';
-+ALTER TABLE requests ADD UNIQUE KEY domain (domain);
-+ALTER TABLE requests ADD KEY lastsent (lastsent);
-+ALTER TABLE messages ADD KEY date (date);
-+ALTER TABLE signatures ADD KEY message (message);
-+
-diff --git a/reports/opendmarc-expire.in b/reports/opendmarc-expire.in
-index 9912bb1..0adbd92 100755
---- a/reports/opendmarc-expire.in
-+++ b/reports/opendmarc-expire.in
-@@ -210,6 +210,17 @@ if ($verbose)
- print STDERR "$progname: connected to database\n";
- }
-
-+# switch to UTC to have a defined date behaviour
-+$dbi_s = $dbi_h->prepare("SET TIME_ZONE='+00:00'");
-+
-+if (!$dbi_s->execute())
-+{
-+ print STDERR "$progname: failed to change to UTC: " . $dbi_h->errstr . "\n";
-+ $dbi_s->finish;
-+ $dbi_h->disconnect;
-+ exit(1);
-+}
-+
- #
- # Expire messages
- #
-@@ -340,7 +351,7 @@ if ($verbose)
- print STDERR "$progname: expiring request data older than $maxage days\n";
- }
-
--$dbi_s = $dbi_h->prepare("DELETE FROM requests WHERE lastsent <= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL ? DAY) AND NOT lastsent = '0000-00-00 00:00:00'");
-+$dbi_s = $dbi_h->prepare("DELETE FROM requests WHERE lastsent <= DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL ? DAY) AND NOT lastsent <= '1970-01-01 00:00:01'");
- $rows = $dbi_s->execute($maxage);
- if (!$rows)
- {
-diff --git a/reports/opendmarc-import.in b/reports/opendmarc-import.in
-index 5a28f2f..3efc926 100755
---- a/reports/opendmarc-import.in
-+++ b/reports/opendmarc-import.in
-@@ -204,20 +204,18 @@ sub update_db
- $envfrom_id = get_table_id($envdomain, "domains");
- $pdomain_id = get_table_id($pdomain, "domains");
- $ipaddr_id = get_table_id($ipaddr, "ipaddr", "addr");
-- $request_id = get_table_id($from_id, "requests", "domain");
-
- if (!defined($rep_id) ||
- !defined($from_id) ||
- !defined($envfrom_id) ||
- !defined($pdomain_id) ||
-- !defined($ipaddr_id) ||
-- !defined($request_id))
-+ !defined($ipaddr_id))
- {
- return;
- }
-
-- $dbi_s = $dbi_h->prepare("INSERT INTO messages (date, jobid, reporter, policy, disp, ip, env_domain, from_domain, spf, align_spf, align_dkim, sigcount) VALUES(FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
-- if (!$dbi_s->execute($received, $jobid, $rep_id, $policy, $action, $ipaddr_id, $envfrom_id, $from_id, $spf, $align_spf, $align_dkim, $sigcount))
-+ $dbi_s = $dbi_h->prepare("INSERT INTO messages (date, jobid, reporter, policy, disp, ip, env_domain, from_domain, policy_domain, spf, align_spf, align_dkim, sigcount) VALUES(FROM_UNIXTIME(?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
-+ if (!$dbi_s->execute($received, $jobid, $rep_id, $policy, $action, $ipaddr_id, $envfrom_id, $from_id, $pdomain_id, $spf, $align_spf, $align_dkim, $sigcount))
- {
- print STDERR "$progname: failed to insert message: " . $dbi_h->errstr . "\n";
- return;
-@@ -275,41 +273,51 @@ sub update_db
- }
- $dbi_s->finish;
-
-- if (get_value("requests", "locked", $request_id) != 1)
-+ $dbi_t = $dbi_h->prepare("SELECT id FROM requests WHERE domain = ?");
-+ if (!$dbi_t->execute($from_id))
- {
-- if (scalar @rua > 0)
-+ print STDERR "$progname: failed to retrieve table ID: " . $dbi_h->errstr . "\n";
-+ return undef;
-+ }
-+
-+ undef $request_id;
-+ while ($dbi_a = $dbi_t->fetchrow_arrayref())
-+ {
-+ if (defined($dbi_a->[0]))
- {
-- $repuri = join(",", @rua);
-- $dbi_s = $dbi_h->prepare("UPDATE requests SET repuri = ? WHERE id = ?");
-+ $request_id = $dbi_a->[0];
-+ }
-+ }
-
-- if (!$dbi_s->execute($repuri, $request_id))
-- {
-- print STDERR "$progname: failed to update reporting URI for $fdomain: " . $dbi_h->errstr . "\n";
-- $dbi_s->finish;
-- return;
-- }
-+ $dbi_t->finish;
-
-- $dbi_s->finish;
-- }
-- else
-+ $repuri = join(",", @rua);
-+
-+ if (defined($request_id))
-+ {
-+ if (get_value("requests", "locked", $request_id) != 1)
- {
-- $dbi_s = $dbi_h->prepare("UPDATE requests SET repuri = NULL WHERE id = ?");
-+ $dbi_s = $dbi_h->prepare("UPDATE requests SET domain = ?, repuri = ?, adkim = ?, aspf = ?, policy = ?, spolicy = ?, pct = ? WHERE id = ?");
-
-- if (!$dbi_s->execute($request_id))
-+ if (!$dbi_s->execute($from_id, $repuri, $adkim, $aspf, $p, $sp, $pct, $request_id))
- {
-- print STDERR "$progname: failed to update reporting URI for $fdomain: " . $dbi_h->errstr . "\n";
-+ print STDERR "$progname: failed to update policy data for $fdomain: " . $dbi_h->errstr . "\n";
- $dbi_s->finish;
- return;
- }
--
-- $dbi_s->finish;
- }
-+ else
-+ {
-+ print STDERR "$progname: policy data for $fdomain not updated, because they are locked\n";
-+ }
-+ }
-+ else
-+ {
-+ $dbi_s = $dbi_h->prepare("insert requests SET domain = ?, repuri = ?, adkim = ?, aspf = ?, policy = ?, spolicy = ?, pct = ?");
-
-- $dbi_s = $dbi_h->prepare("UPDATE requests SET adkim = ?, aspf = ?, policy = ?, spolicy = ?, pct = ? WHERE id = ?");
--
-- if (!$dbi_s->execute($adkim, $aspf, $p, $sp, $pct, $request_id))
-+ if (!$dbi_s->execute($from_id, $repuri, $adkim, $aspf, $p, $sp, $pct))
- {
-- print STDERR "$progname: failed to update policy data for $fdomain: " . $dbi_h->errstr . "\n";
-+ print STDERR "$progname: failed to insert policy data for $fdomain: " . $dbi_h->errstr . "\n";
- $dbi_s->finish;
- return;
- }
diff --git a/testing/opendmarc/netdb_defines.patch b/testing/opendmarc/netdb_defines.patch
deleted file mode 100644
index 0009f1d7998..00000000000
--- a/testing/opendmarc/netdb_defines.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/libopendmarc/opendmarc_internal.h 2015-02-23 20:31:51.000000000 +0000
-+++ b/libopendmarc/opendmarc_internal.h 2018-06-27 13:59:30.237526809 +0000
-@@ -115,6 +115,17 @@
-
- #define DNS_MAX_RETRIES 6
-
-+/*
-+** Fix missing NETDB defines when using musl libc
-+*/
-+#if !defined(NETDB_INTERNAL)
-+# define NETDB_INTERNAL (-1)
-+#endif
-+
-+#if !defined(NETDB_SUCCESS)
-+# define NETDB_SUCCESS (0)
-+#endif
-+
- /*****************************************************************************
- ** DMARC_POLICY_T -- The opaque context for the library.
- ** Memory needs to be allocated and freed.
diff --git a/testing/opendmarc/opendmarc.initd b/testing/opendmarc/opendmarc.initd
deleted file mode 100644
index e67caebd8cd..00000000000
--- a/testing/opendmarc/opendmarc.initd
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-extra_commands="checkconfig"
-
-description="Domain-based Message Authentication, Reporting & Conformance (DMARC) Milter"
-description_checkconfig="Check configuration file"
-
-: ${cfgfile:="/etc/opendmarc/$RC_SVCNAME.conf"}
-: ${command_user:="opendmarc:mail"}
-
-command="/usr/sbin/opendmarc"
-command_args="-f -c $cfgfile ${command_args:-}"
-pidfile="/run/opendmarc/$RC_SVCNAME.pid"
-
-required_files="$cfgfile"
-
-depends() {
- use dns logger net
- before mta
-}
-
-start_pre() {
- checkpath -d -m 750 -o "$command_user" "${pidfile%/*}" || return 1
- $command -c "$cfgfile" -n
-}
-
-checkconfig() {
- ebegin "Checking $name configuration"
- $command -c "$cfgfile" -n
- eend $?
-}
diff --git a/testing/opendmarc/opendmarc.pre-install b/testing/opendmarc/opendmarc.pre-install
deleted file mode 100644
index 5345378ba58..00000000000
--- a/testing/opendmarc/opendmarc.pre-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-adduser -S -D -H -h /run/opendmarc -s /sbin/nologin -G mail -g opendmarc opendmarc 2>/dev/null
-
-exit 0
diff --git a/testing/openfire/APKBUILD b/testing/openfire/APKBUILD
deleted file mode 100644
index 7f195862d0e..00000000000
--- a/testing/openfire/APKBUILD
+++ /dev/null
@@ -1,86 +0,0 @@
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=openfire
-pkgver=4.2.3
-pkgrel=0
-pkgdesc="Openfire is a cross-platform real-time collaboration server based on the XMPP (Jabber) protocol."
-url="https://www.igniterealtime.org/projects/openfire/"
-arch="all !mips !mips64" # java
-license="Apache-2.0"
-depends="openjdk8-jre-lib"
-makedepends="apache-ant openjdk8"
-subpackages="$pkgname-plugins::noarch $pkgname-openrc"
-source="
- https://www.igniterealtime.org/downloadServlet?filename=$pkgname/${pkgname}_src_${pkgver//./_}.tar.gz
- $pkgname.initd
- $pkgname.confd
- $pkgname.logrotate
- "
-pkgusers="openfire"
-pkggroups="openfire"
-install="
- $pkgname.pre-install
- openfire.post-install
- openfire.post-upgrade
- "
-options="!check" # No test suite
-builddir="$srcdir/${pkgname}_src"
-_ofhome="/var/lib/openfire"
-
-build() {
- cd "$builddir"
- rm -rf src/resources/nativeAuth
- cd build
- ant openfire plugins
-}
-
-package() {
- cd "$builddir"
- install -dm0755 "$pkgdir/$_ofhome"
- install -dm0755 "$pkgdir/$_ofhome"/plugins
-
- cp -r target/openfire/conf "$pkgdir/$_ofhome"/
- cp -r target/openfire/lib "$pkgdir/$_ofhome"/
- cp -r target/openfire/resources "$pkgdir/$_ofhome"/
- cp -r target/openfire/plugins/admin "$pkgdir/$_ofhome"/plugins/
-
- find "$pkgdir" -type f -exec chmod 0644 {} \;
- find "$pkgdir" -type d -exec chmod 0755 {} \;
- find "$pkgdir" -type d -exec chmod u-s,g-s {} \;
-
- chmod 0700 "$pkgdir/$_ofhome"/conf \
- "$pkgdir/$_ofhome"/resources/security
-
- cd "$pkgdir/$_ofhome"/conf
- for i in openfire.xml security.xml
- do
- mv "$i" "$i".default
- chmod 0600 "$i".default
- done
-
- cd "$pkgdir/$_ofhome"/resources/security
- for i in client.truststore keystore truststore
- do
- mv "$i" "$i".default
- chmod 0600 "$i".default
- done
-
- chown -R $pkgusers:$pkggroups "$pkgdir/$_ofhome"
-
- install -Dm0755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm0644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
- install -Dm0644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
-
-}
-
-plugins() {
- cd "$builddir"
- install -dm755 "$subpkgdir/$_ofhome"/plugins
- cp target/openfire/plugins/*.jar "$subpkgdir/$_ofhome"/plugins/
- chown -R $pkgusers:$pkggroups "$subpkgdir/$_ofhome"
-}
-
-sha512sums="8b968c94fcd779544c90de34172b00d472dc2e42142f2aa5eda01f0e0c3dda903a3b9b6d82286916bb1ae8f97fb12f0a94aeb42fad1df0b2dd47e951e03b8523 openfire_src_4_2_3.tar.gz
-95a486898b84c4b7b0e3a60ceb7ccbb5d383451228b9c5090dc58513afc9513095e6c124e2ef170912376a7179d058b106d3bbd69db7b7204ff5f1be13823bdc openfire.initd
-e952b1dbf10df6c8303f6e71ae08853a1901cbf92f059c3dc927e0085365e6c4752d2c5ddaa9ce1da944a164ee0f29b1057e10a61840814bff3722020253b5bf openfire.confd
-e17684600700c85d366549b7ac9fec64b9abcd1fd53e131e2d5b9d53514865ad0eacb25618dfc6c264af25fb880e761cdd7349bdcbc22c1f65a6fa7444dcd2a7 openfire.logrotate"
diff --git a/testing/openfire/openfire.confd b/testing/openfire/openfire.confd
deleted file mode 100644
index d6888b0f8dd..00000000000
--- a/testing/openfire/openfire.confd
+++ /dev/null
@@ -1,6 +0,0 @@
-JAVA_HOME=/usr/lib/jvm/default-jvm
-OPENFIRE_HOME=/var/lib/openfire
-OPENFIRE_CMD="$JAVA_HOME/bin/java"
-OPENFIRE_ARGS="-server -Xmx256m -DopenfireHome=$OPENFIRE_HOME \
- -Dopenfire.lib.dir=$OPENFIRE_HOME/lib -classpath $OPENFIRE_HOME/lib/startup.jar \
- -jar $OPENFIRE_HOME/lib/startup.jar"
diff --git a/testing/openfire/openfire.initd b/testing/openfire/openfire.initd
deleted file mode 100644
index 1a370c9d884..00000000000
--- a/testing/openfire/openfire.initd
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/sbin/openrc-run
-
-depend() {
- need net
- provide jabber-server
-}
-
-start() {
- ebegin "Starting Openfire Server"
- start-stop-daemon \
- --user openfire \
- --background \
- --make-pidfile \
- --pidfile /run/openfire.pid \
- --start \
- --exec $OPENFIRE_CMD -- $OPENFIRE_ARGS > /var/log/openfire.log 2>&1
- eend
-}
-
-stop() {
- ebegin "Stopping Openfire Server"
- start-stop-daemon --pidfile /run/openfire.pid --stop
- eend
-}
diff --git a/testing/openfire/openfire.logrotate b/testing/openfire/openfire.logrotate
deleted file mode 100644
index aa26432c494..00000000000
--- a/testing/openfire/openfire.logrotate
+++ /dev/null
@@ -1,8 +0,0 @@
-/var/lib/openfire/log/* {
- size 1M
- missingok
- notifempty
- copytruncate
- rotate 7
- compress
-}
diff --git a/testing/openfire/openfire.post-install b/testing/openfire/openfire.post-install
deleted file mode 100755
index 9b2a66fae80..00000000000
--- a/testing/openfire/openfire.post-install
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-_ofhome=/var/lib/openfire
-
-for conf in "$_ofhome"/conf/openfire.xml \
- "$_ofhome"/conf/security.xml \
- "$_ofhome"/resources/security/client.truststore \
- "$_ofhome"/resources/security/keystore \
- "$_ofhome"/resources/security/truststore
-do
- if [ -f "$conf" ]
- then
- printf "$conf exists. Not creating new one. \n\n"
- else
- printf "Copying new $conf \n"
- cp -av "$conf".default "$conf" || printf "Copying new $conf failed. \n\n"
- fi
-done
diff --git a/testing/openfire/openfire.post-upgrade b/testing/openfire/openfire.post-upgrade
deleted file mode 120000
index d373752edb9..00000000000
--- a/testing/openfire/openfire.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-openfire.post-install \ No newline at end of file
diff --git a/testing/openfire/openfire.pre-install b/testing/openfire/openfire.pre-install
deleted file mode 100755
index 929ee1b5a2b..00000000000
--- a/testing/openfire/openfire.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S openfire 2>/dev/null
-adduser -S -D -H -h /var/lib/openfire -G openfire -g openfire openfire 2>/dev/null
-
-exit 0
diff --git a/testing/openfortivpn/APKBUILD b/testing/openfortivpn/APKBUILD
new file mode 100644
index 00000000000..4e1970ac33a
--- /dev/null
+++ b/testing/openfortivpn/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Taner Tas <taner76@gmail.com>
+pkgname=openfortivpn
+pkgver=1.21.0
+pkgrel=0
+pkgdesc="Openfortivpn is a client for PPP+SSL VPN tunnel services"
+url="https://github.com/adrienverge/openfortivpn"
+arch="all"
+license="GPL-3.0-only"
+depends="ppp-daemon"
+makedepends="
+ autoconf
+ automake
+ openssl-dev>3
+ "
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/adrienverge/openfortivpn/archive/v$pkgver.tar.gz
+ "
+options="!check" # No test suite
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+9751a1ce2f71fe51f8b15dec76afe600fc659b78a44397df9413ebdba9a77bc861fb75b1eb3540590c777447c15849e19033827cea3b494f2dac8075ec17142d openfortivpn-1.21.0.tar.gz
+"
diff --git a/testing/openfpgaloader/APKBUILD b/testing/openfpgaloader/APKBUILD
new file mode 100644
index 00000000000..6a5494c461f
--- /dev/null
+++ b/testing/openfpgaloader/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=openfpgaloader
+pkgver=0.11.0
+pkgrel=0
+pkgdesc="Universal utility for programming FPGAs"
+url="https://github.com/trabucayre/openFPGALoader"
+arch="all"
+license="Apache-2.0"
+makedepends="
+ cmake
+ hidapi-dev
+ libftdi1-dev
+ libusb-dev
+ ninja
+ zlib-dev
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/trabucayre/openFPGALoader/archive/refs/tags/v$pkgver.tar.gz
+ "
+builddir="$srcdir/openFPGALoader-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ #
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j1
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+cffc5f9ae0ffd75c7b7954dc19e348c80c2c847141879b6dfac06efc22fc0f574d9352cbd748553275077364a2086b00af67b5ea11130a6eea3e6f32e01f3f42 openfpgaloader-0.11.0.tar.gz
+"
diff --git a/testing/openhmd/APKBUILD b/testing/openhmd/APKBUILD
deleted file mode 100644
index 0e40e101f02..00000000000
--- a/testing/openhmd/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=openhmd
-pkgver=0.3.0
-pkgrel=1
-pkgdesc="Free and Open Source API and drivers for immersive (VR) technology"
-url="http://www.openhmd.net/"
-arch="all"
-license="BSL-1.0"
-makedepends="meson hidapi-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/OpenHMD/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/OpenHMD-$pkgver"
-options="!check" # https://github.com/OpenHMD/OpenHMD/issues/248
-
-build() {
- meson \
- --prefix=/usr \
- --libdir=/usr/lib \
- --buildtype=plain \
- -Dexamples='' \
- . build
- ninja -C build
-}
-
-check() {
- ninja -C build test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="20e6490287295f3de08150f1b036a821b97443a303ee404c71981f57f4ef291b50b6b83acd2dbb5e86a827c40b3fd06d790dabe4de3b0075432111d67875e7d2 openhmd-0.3.0.tar.gz"
diff --git a/testing/openimageio/APKBUILD b/testing/openimageio/APKBUILD
deleted file mode 100644
index 5844b69e7ae..00000000000
--- a/testing/openimageio/APKBUILD
+++ /dev/null
@@ -1,62 +0,0 @@
-# Contributor: Mark Riedesel <mark@klowner.com>
-# Maintainer: Mark Riedesel <mark@klowner.com>
-pkgname=openimageio
-pkgver=1.8.15
-pkgrel=8
-pkgdesc="Image I/O library supporting a multitude of image formats"
-options="!check" # 100 out of 120 tests fail
-url="https://sites.google.com/site/openimageio/"
-arch="all !armv7"
-license="BSD-3-Clause"
-# NOTE: OpenColorIO and OpenImageIO are cross dependent. If an ABI incompatible
-# update is done in one, the other also needs to be rebuilt.
-makedepends="cmake giflib-dev zlib-dev boost-dev libjpeg-turbo-dev libpng-dev tiff-dev
- glew-dev python3-dev openexr-dev ffmpeg-dev
- libraw-dev libwebp-dev freetype-dev qt5-qtbase-dev mesa-dev openssl-dev
- openjpeg-dev opencolorio-dev"
-subpackages="py3-$pkgname:_python $pkgname-dev $pkgname-doc $pkgname-tools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/OpenImageIO/oiio/archive/Release-$pkgver.tar.gz
- boost-python.patch
- "
-builddir="$srcdir/oiio-Release-$pkgver"
-
-build() {
- mkdir build && cd build
- cmake .. \
- -DUSE_OPENSSL=ON \
- -DUSE_PYTHON=ON \
- -DPYTHON_VERSION=3.7 \
- -DUSE_NUKE=OFF \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_SKIP_RPATH=ON \
- -DSTOP_ON_WARNING=OFF \
- -DOIIO_BUILD_TESTS=OFF \
- -DOIIO_BUILD_TOOLS=ON \
- -DINSTALL_FONTS=OFF
- make
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-tools() {
- pkgdesc="Tools for manipulating a multitude of image formats"
-
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
-}
-
-_python() {
- local pyver="${subpkgname:2:1}"
- pkgdesc="Python $pyver bindings for OpenImageIO image I/O library"
- depends="python$pyver"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python$pyver* "$subpkgdir"/usr/lib/
-}
-
-sha512sums="e022e5c7e300d3dd952bcf3476e1b676a8931f67ba6b3959b26c75b9709907ac1c1b99de651f5876045f9a333e325a161b0d5159cb5bf385eb4f9f90a04707c7 openimageio-1.8.15.tar.gz
-6f2fa329a1854be4e0dd358a1d2e0134a53422b63b5bef161a4dddfb4416a66e614afd063b15d2af56ac131c511c28b1b8f50ca6d10f00342ac2f111a23a7f0e boost-python.patch"
diff --git a/testing/openimageio/boost-python.patch b/testing/openimageio/boost-python.patch
deleted file mode 100644
index c68d426311d..00000000000
--- a/testing/openimageio/boost-python.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt
-index e58d372..649e9f3 100644
---- a/src/python/CMakeLists.txt
-+++ b/src/python/CMakeLists.txt
-@@ -18,6 +18,7 @@ if (NOT BOOST_CUSTOM)
- # different names on different systems. Try the most common ones.
- foreach (_py_lib python-${PYTHON_VERSION_FOUND} python
- python${PYTHON_VERSION_MAJOR}
-+ python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}
- python-py${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR})
- find_package (Boost QUIET COMPONENTS ${_py_lib})
- string (TOUPPER ${_py_lib} _py_lib_name)
diff --git a/testing/openjdk12/APKBUILD b/testing/openjdk12/APKBUILD
deleted file mode 100644
index 8292b44e2ed..00000000000
--- a/testing/openjdk12/APKBUILD
+++ /dev/null
@@ -1,296 +0,0 @@
-# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=openjdk12
-pkgver=12.0.2_p10
-_pkgver=${pkgver/_p10/-ga}
-pkgrel=1
-pkgdesc="Oracle OpenJDK 12"
-url="https://hg.openjdk.java.net/jdk-updates/jdk12u"
-arch="all !x86 !armhf !armv7 !mips !mips64" # oracle dropped support for 32 bit
-license="GPL-2.0-with-classpath-exception"
-makedepends="autoconf
- bash
- gawk
- grep
- make
- openjdk11-jdk
- zip
- alsa-lib-dev
- cups-dev
- elfutils-dev
- fontconfig-dev
- freetype-dev
- giflib-dev
- lcms2-dev
- libexecinfo-dev
- libffi-dev
- libjpeg-turbo-dev
- libx11-dev
- libxext-dev
- libxrandr-dev
- libxrender-dev
- libxt-dev
- libxtst-dev
- linux-headers
- zlib-dev"
-depends="$pkgname-jmods $pkgname-demos $pkgname-doc $pkgname-jdk" # for the virtual openjdk12 package
-subpackages="$pkgname-jmods:_jmods:noarch
- $pkgname-demos:_demos:noarch
- $pkgname-doc:_doc:noarch
- $pkgname-jre:_jre
- $pkgname-src:_src:noarch
- $pkgname-jre-headless:_jre_headless
- $pkgname-jdk:_jdk"
-source="jdk-$_pkgver.tar.gz::https://github.com/openjdk/jdk12u/archive/jdk-$_pkgver.tar.gz
-
- build.patch
- aarch64.patch
- ppc64le.patch
- make-4.3.patch
- fix-bootjdk-check.patch
-
- HelloWorld.java
- TestECDSA.java
- TestCryptoLevel.java
- Alpine_Bug_10126.java
-"
-builddir="$srcdir/jdk12u-jdk-$_pkgver"
-
-_java_home="/usr/lib/jvm/java-12-openjdk"
-
-ldpath="$_java_home/lib:$_java_home/lib/server"
-sonameprefix="$pkgname:"
-
-# enable running the JTReg tests in check?
-# see comment in that function for explanation
-_run_jtreg=${_run_jtreg:-0}
-if [ $_run_jtreg -ne 0 ]; then
- makedepends="$makedepends java-jtreg"
- checkdepends="$checkdepends ttf-freefont xvfb-run"
-fi
-
-
-prepare() {
- default_prepare
-
- # update autoconf files to detect alpine
- update_config_sub
- update_config_guess
-
- # remove not compilable module (hotspot jdk.hotspot.agent)
- # this needs libthread_db which is only provided by glibc
- #
- # haven't found any way to disable this module so just remove it.
- rm -r src/jdk.hotspot.agent
-}
-
-build() {
- if [ $_run_jtreg -ne 0 ]; then
- _with_jtreg="--with-jtreg=/usr/share/java/jtreg"
- else
- _with_jtreg="--with-jtreg=no"
- fi
-
- # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning
- # in the output of ./configure unless used like such:
- # --with-extra-cflags="$CFLAGS"
- # --with-extra-cxxflags="$CXXFLAGS"
- # --with-extra-ldflags="$LDFLAGS"
- # See also paragraph "Configure Control Variables" from "common/doc/building.md"
- # shellcheck disable=2097 disable=2098
- CFLAGS='' CXXFLAGS='' LDFLAGS='' \
- bash ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --target=$CTARGET \
- --prefix="$_java_home" \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-extra-cflags="$CFLAGS" \
- --with-extra-cxxflags="$CXXFLAGS" \
- --with-extra-ldflags="$LDFLAGS" \
- --with-zlib=system \
- --with-libjpeg=system \
- --with-giflib=system \
- --with-libpng=system \
- --with-lcms=system \
- --with-jobs=${JOBS:-4} \
- --with-test-jobs=${JOBS:-4} \
- --with-native-debug-symbols=none \
- $_with_jtreg \
- --disable-warnings-as-errors \
- --disable-precompiled-headers \
- --enable-dtrace=no \
- --with-jvm-variants=server \
- --with-debug-level=release \
- --with-version-pre= \
- --with-version-opt="alpine-r$pkgrel" \
- --with-version-build=${_pkgver#*+} \
- --with-vendor-name="Alpine" \
- --with-vendor-url="https://alpinelinux.org/" \
- --with-vendor-bug-url="https://gitlab.alpinelinux.org/alpine/aports/issues" \
- --with-vendor-vm-bug-url="https://gitlab.alpinelinux.org/alpine/aports/issues"
- MAKEFLAGS='' make jdk-image
-}
-
-check() {
- local _java_bin="./build/linux-*-server-release/images/jdk/bin"
-
- # 1) compile and run a simple hello world
- $_java_bin/javac -d . "$srcdir"/HelloWorld.java
- $_java_bin/java HelloWorld
-
- # 2) compile and run a testcase for unlimited policy
- $_java_bin/javac -d . "$srcdir"/TestCryptoLevel.java
- $_java_bin/java -cp . --add-opens java.base/javax.crypto=ALL-UNNAMED TestCryptoLevel
-
- # 3) compile and run a testcase for ECDSA signatures
- $_java_bin/javac -d . "$srcdir"/TestECDSA.java
- $_java_bin/java TestECDSA
-
- # 4) compile and run testcase for bug 10126
- $_java_bin/javac -d . "$srcdir"/Alpine_Bug_10126.java
- $_java_bin/java Alpine_Bug_10126
-
- # run the gtest unittest suites
- # they don't take long, DO NOT DISABLE THEM!
- MAKEFLAGS='' make test-hotspot-gtest
-
- # The jtreg tests take very, very long to finish and show some failures (9 - 12 on my machine, varying between runs)
- # I think these are not critical and can be safely ignored.
- # As the tests take too long, they are disabled by default.
- # When updating this aport please let them run at least once on your machine to see if the failure count changes.
- if [ $_run_jtreg -ne 0 ]; then
- _logfile=$( mktemp -p "$builddir" )
- MAKEFLAGS='' xvfb-run make \
- run-test-tier1 \
- run-test-tier2 \
- run-test-tier3 \
- | tee "$_logfile"
- msg "---------------------------------------"
- msg "The build log can be found at $_logfile"
- # abort the build so you may take a look at the logfile
- false
- return 1
- fi
-}
-
-package() {
- mkdir -p "$pkgdir/$_java_home"
- cp -r build/linux-*-server-release/images/jdk/* "$pkgdir/$_java_home"
-}
-
-_jmods() {
- pkgdesc="Oracle OpenJDK 12 (jmods)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/jmods" "$_toroot"
-}
-
-_demos() {
- pkgdesc="Oracle OpenJDK 12 (demos)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/demo" "$_toroot"
-}
-
-_doc() {
- pkgdesc="Oracle OpenJDK 12 (Documentation)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/man" "$_toroot"
-}
-
-_jre() {
- pkgdesc="Oracle OpenJDK 12 (JRE)"
- depends="$pkgname-jre-headless"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot/lib"
- mv "$_fromroot/lib/libawt_xawt.so" \
- "$_fromroot/lib/libfontmanager.so" \
- "$_fromroot/lib/libjavajpeg.so" \
- "$_fromroot/lib/libjawt.so" \
- "$_fromroot/lib/libjsound.so" \
- "$_fromroot/lib/liblcms.so" \
- "$_fromroot/lib/libsplashscreen.so" \
- "$_toroot/lib"
-}
-
-_src() {
- pkgdesc="Oracle OpenJDK 12 (sources)"
- depends="$pkgname-jre-headless"
- mkdir -p "$subpkgdir/$_java_home"/lib
- mv "$pkgdir"/$_java_home/lib/src.zip \
- "$subpkgdir"/$_java_home/lib/
-}
-
-_jre_headless() {
- pkgdesc="Oracle OpenJDK 12 (JRE headless)"
- depends="java-common java-cacerts"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/lib" "$_toroot"
-
- mkdir -p "$_toroot/bin"
- for i in java \
- jjs \
- keytool \
- pack200 \
- rmid \
- rmiregistry \
- unpack200; do
- mv "$_fromroot/bin/$i" "$_toroot/bin/$i"
- done
-
- mv "$_fromroot/legal" "$_toroot"
- mv "$_fromroot/conf" "$_toroot"
- mv "$_fromroot/release" "$_toroot"
- cp "$builddir/ASSEMBLY_EXCEPTION" "$_toroot"
- cp "$builddir/LICENSE" "$_toroot"
- cp "$builddir/README" "$_toroot"
-
- # symlink to shared cacerts store
- rm "$_toroot/lib/security/cacerts"
- ln -sf /etc/ssl/certs/java/cacerts \
- "$_toroot/lib/security/cacerts"
-
- # symlink for java-common to work (expects jre in $_java_home/jre)
- ln -sf . "$_toroot/jre"
-}
-
-_jdk() {
- pkgdesc="Oracle OpenJDK 12 (JDK)"
- depends="$pkgname-jre"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/bin" "$_toroot"
- mv "$_fromroot/include" "$_toroot"
-}
-
-sha512sums="370e3d8378fcdf929df7325ac988ffcb4565c3fbb7cd1831554e0977769f1beaef0185ac8c7df40b5d74ca88acb27f657fb617279f58a8f78cf2adac10b95882 jdk-12.0.2-ga.tar.gz
-fe1b54d6006e9f77c1ebc0705e28eb962f42571b4e4ee5cd73e0c7000cbf46f90df4a83b72421261e02abec488f493111d28893a27edf2af8eb43a9ecee00833 build.patch
-8c0f1f8d2a78ebb30a8460bc0ea9cd2349cea98819df1577bf7de19a1dd82d06a593f36b4e17c282ed53d23f00163e387e3dd1f3c9e5a092726e78c3aa710370 aarch64.patch
-b6b1623a8dffd5a91bf122d7ef5a4b7cd2dff9dde072e9613eb38b1c95000c95b1eef7eb8ea8edc8bc3a59592ba3cf78bd32d31a8c6e3a30c24fc2030405a696 ppc64le.patch
-ee8ba62ab5909648dccc1d5e1d12b4f35e813320a7919476bc1ff35bc2ef51030df3426616e0f636dd64a8b07021201f7bcb477253bb33a97cd0db8a6684137c make-4.3.patch
-5261f5d30659991869a069ee50988ccb4741951def70a172bbe978c0bbb2d7dc0fe4595d9ac19ae28137a13e246882f21a275b1553652ab20b96ca9af550e444 fix-bootjdk-check.patch
-d1767dddd8e0956e25c0f77ed45c6fc86a1191bae1704a6dc33be490fd20eaa50461fe5c2a3349512059d555651e2eb41437dd3c1096c351e8ee68b4534a2579 HelloWorld.java
-27e91edef89d26c0c5b9a813e2045f8d2b348745a506ae37b34b660fa7093da9a4e0e676ea41dc4a5c901bce02e5304d95e90f68d6c99cbf461b2da40a7a9853 TestECDSA.java
-b02dff8d549f88317bb4c741a9e269e8d59eef990197d085388fc49c7423a4eb9367dbe1e02bffb10e7862f5980301eb58d4494e177d0e8f60af6b05c7fbbe60 TestCryptoLevel.java
-fadd06c034614a25537246dfd66a4645c2a4c673f16b5d3e8abdd89c81baf04bd2797b26b0e589ec11ee08b90783b232a6d06c72589d211a5e10b8638a627911 Alpine_Bug_10126.java"
diff --git a/testing/openjdk12/Alpine_Bug_10126.java b/testing/openjdk12/Alpine_Bug_10126.java
deleted file mode 100644
index 76574a15098..00000000000
--- a/testing/openjdk12/Alpine_Bug_10126.java
+++ /dev/null
@@ -1,13 +0,0 @@
-public class Alpine_Bug_10126 {
- public static void main(String[] args) throws Exception {
- try (java.net.Socket sock = javax.net.ssl.SSLSocketFactory.getDefault().createSocket("bugs.alpinelinux.org", 443);
- java.io.InputStream in = sock.getInputStream();
- java.io.OutputStream out = sock.getOutputStream()) {
- out.write("GET / HTTP/1.0\n\nHost: gitlab.alpinelinux.org\n\nConnection: close\n\n\n\n".getBytes());
- out.flush();
- while (in.read(new byte[1024]) != -1) ;
- }
- System.out.println("Secured connection performed successfully");
- }
-}
-
diff --git a/testing/openjdk12/HelloWorld.java b/testing/openjdk12/HelloWorld.java
deleted file mode 100644
index 0be813a1901..00000000000
--- a/testing/openjdk12/HelloWorld.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class HelloWorld {
- public static void main(String[] args) { System.out.println("Hello World!"); }
-}
diff --git a/testing/openjdk12/TestCryptoLevel.java b/testing/openjdk12/TestCryptoLevel.java
deleted file mode 100644
index 3ed6c8dc15c..00000000000
--- a/testing/openjdk12/TestCryptoLevel.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
- Copyright (C) 2012 Red Hat, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
-import java.security.Permission;
-import java.security.PermissionCollection;
-
-public class TestCryptoLevel
-{
- public static void main(String[] args)
- throws NoSuchFieldException, ClassNotFoundException,
- IllegalAccessException, InvocationTargetException
- {
- Class<?> cls = null;
- Method def = null, exempt = null;
-
- try
- {
- cls = Class.forName("javax.crypto.JceSecurity");
- }
- catch (ClassNotFoundException ex)
- {
- System.err.println("Running a non-Sun JDK.");
- System.exit(0);
- }
- try
- {
- def = cls.getDeclaredMethod("getDefaultPolicy");
- exempt = cls.getDeclaredMethod("getExemptPolicy");
- }
- catch (NoSuchMethodException ex)
- {
- System.err.println("Running IcedTea with the original crypto patch.");
- System.exit(0);
- }
- def.setAccessible(true);
- exempt.setAccessible(true);
- PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
- PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
- Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
- Field apField = apCls.getDeclaredField("INSTANCE");
- apField.setAccessible(true);
- Permission allPerms = (Permission) apField.get(null);
- if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms)))
- {
- System.err.println("Running with the unlimited policy.");
- System.exit(0);
- }
- else
- {
- System.err.println("WARNING: Running with a restricted crypto policy.");
- System.exit(-1);
- }
- }
-}
diff --git a/testing/openjdk12/TestECDSA.java b/testing/openjdk12/TestECDSA.java
deleted file mode 100644
index abd81d1cedf..00000000000
--- a/testing/openjdk12/TestECDSA.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* TestECDSA -- Ensure ECDSA signatures are working.
- Copyright (C) 2016 Red Hat, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import java.math.BigInteger;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.Signature;
-
-/**
- * @test
- */
-public class TestECDSA {
-
- public static void main(String[] args) throws Exception {
- KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
- KeyPair key = keyGen.generateKeyPair();
-
- byte[] data = "This is a string to sign".getBytes("UTF-8");
-
- Signature dsa = Signature.getInstance("NONEwithECDSA");
- dsa.initSign(key.getPrivate());
- dsa.update(data);
- byte[] sig = dsa.sign();
- System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
-
- Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
- dsaCheck.initVerify(key.getPublic());
- dsaCheck.update(data);
- boolean success = dsaCheck.verify(sig);
- if (!success) {
- throw new RuntimeException("Test failed. Signature verification error");
- }
- System.out.println("Test passed.");
- }
-}
diff --git a/testing/openjdk12/aarch64.patch b/testing/openjdk12/aarch64.patch
deleted file mode 100644
index 26484ca0808..00000000000
--- a/testing/openjdk12/aarch64.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- old/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
-+++ new/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
-@@ -77,7 +77,6 @@
- # include <pwd.h>
- # include <poll.h>
- # include <ucontext.h>
--# include <fpu_control.h>
-
- #ifdef BUILTIN_SIM
- #define REG_SP REG_RSP
diff --git a/testing/openjdk12/build.patch b/testing/openjdk12/build.patch
deleted file mode 100644
index 2195d15f83d..00000000000
--- a/testing/openjdk12/build.patch
+++ /dev/null
@@ -1,517 +0,0 @@
---- old/make/ReleaseFile.gmk
-+++ new/make/ReleaseFile.gmk
-@@ -53,6 +53,7 @@
- $(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
- $(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
- $(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
-+ $(call info-file-item, "LIBC", "musl")
- endef
-
- # Param 1 - The file containing the MODULES list
---- old/make/hotspot/lib/CompileJvm.gmk
-+++ new/make/hotspot/lib/CompileJvm.gmk
-@@ -71,6 +71,7 @@
- -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
- -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
- -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
-+ -DLIBC='"musl"' \
- #
-
- ################################################################################
---- old/make/lib/CoreLibraries.gmk
-+++ new/make/lib/CoreLibraries.gmk
-@@ -194,6 +194,7 @@
- endif
-
- LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
-+LIBJLI_CFLAGS += -DLIBC=\"musl\"
-
- ifneq ($(USE_EXTERNAL_LIBZ), true)
- LIBJLI_EXTRA_FILES += \
---- old/src/hotspot/os/linux/os_linux.cpp
-+++ new/src/hotspot/os/linux/os_linux.cpp
-@@ -99,7 +99,6 @@
- # include <string.h>
- # include <syscall.h>
- # include <sys/sysinfo.h>
--# include <gnu/libc-version.h>
- # include <sys/ipc.h>
- # include <sys/shm.h>
- # include <link.h>
-@@ -519,6 +518,11 @@
- // detecting pthread library
-
- void os::Linux::libpthread_init() {
-+#if !defined(__GLIBC__) && !defined(__UCLIBC__)
-+ // Hard code Alpine Linux supported musl compatible settings
-+ os::Linux::set_glibc_version("glibc 2.9");
-+ os::Linux::set_libpthread_version("NPTL");
-+#else
- // Save glibc and pthread version strings.
- #if !defined(_CS_GNU_LIBC_VERSION) || \
- !defined(_CS_GNU_LIBPTHREAD_VERSION)
-@@ -536,6 +540,7 @@
- str = (char *)malloc(n, mtInternal);
- confstr(_CS_GNU_LIBPTHREAD_VERSION, str, n);
- os::Linux::set_libpthread_version(str);
-+#endif
- }
-
- /////////////////////////////////////////////////////////////////////////////
-@@ -2855,20 +2860,36 @@
- extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
- extern "C" JNIEXPORT void numa_error(char *where) { }
-
-+static void* dlvsym_if_available(void* handle, const char* name, const char* version) {
-+ typedef void* (*dlvsym_func_type)(void* handle, const char* name, const char* version);
-+ static dlvsym_func_type dlvsym_func;
-+ static bool initialized = false;
-+
-+ if (!initialized) {
-+ dlvsym_func = (dlvsym_func_type)dlsym(RTLD_NEXT, "dlvsym");
-+ initialized = true;
-+ }
-+
-+ if (dlvsym_func != NULL) {
-+ void *f = dlvsym_func(handle, name, version);
-+ if (f != NULL) {
-+ return f;
-+ }
-+ }
-+
-+ return dlsym(handle, name);
-+}
-+
- // Handle request to load libnuma symbol version 1.1 (API v1). If it fails
- // load symbol from base version instead.
- void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
-- void *f = dlvsym(handle, name, "libnuma_1.1");
-- if (f == NULL) {
-- f = dlsym(handle, name);
-- }
-- return f;
-+ return dlvsym_if_available(handle, name, "libnuma_1.1");
- }
-
- // Handle request to load libnuma symbol version 1.2 (API v2) only.
- // Return NULL if the symbol is not defined in this particular version.
- void* os::Linux::libnuma_v2_dlsym(void* handle, const char* name) {
-- return dlvsym(handle, name, "libnuma_1.2");
-+ return dlvsym_if_available(handle, name, "libnuma_1.2");
- }
-
- bool os::Linux::libnuma_init() {
---- old/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
-+++ new/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
-@@ -75,9 +75,6 @@
- # include <pwd.h>
- # include <poll.h>
- # include <ucontext.h>
--#ifndef AMD64
--# include <fpu_control.h>
--#endif
-
- #ifdef AMD64
- #define REG_SP REG_RSP
---- old/src/hotspot/share/gc/shared/genCollectedHeap.cpp
-+++ new/src/hotspot/share/gc/shared/genCollectedHeap.cpp
-@@ -1148,7 +1148,7 @@
- static ScratchBlock *removeSmallestScratch(ScratchBlock **prev_ptr) {
- bool first = true;
- size_t min_size = 0; // "first" makes this conceptually infinite.
-- ScratchBlock **smallest_ptr, *smallest;
-+ ScratchBlock **smallest_ptr = NULL, *smallest;
- ScratchBlock *cur = *prev_ptr;
- while (cur) {
- assert(*prev_ptr == cur, "just checking");
---- old/src/hotspot/share/runtime/vm_version.cpp
-+++ new/src/hotspot/share/runtime/vm_version.cpp
-@@ -270,7 +270,7 @@
- #endif
-
- #define INTERNAL_VERSION_SUFFIX VM_RELEASE ")" \
-- " for " OS "-" CPU FLOAT_ARCH_STR \
-+ " for " OS "-" CPU FLOAT_ARCH_STR LIBC \
- " JRE (" VERSION_STRING "), built on " __DATE__ " " __TIME__ \
- " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER
-
---- old/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
-+++ new/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
-@@ -204,7 +204,7 @@
- #elif defined(__APPLE__)
- inline int g_isnan(double f) { return isnan(f); }
- #elif defined(LINUX) || defined(_ALLBSD_SOURCE)
--inline int g_isnan(float f) { return isnanf(f); }
-+inline int g_isnan(float f) { return isnan(f); }
- inline int g_isnan(double f) { return isnan(f); }
- #else
- #error "missing platform-specific definition here"
---- old/src/java.base/linux/native/libnet/linux_close.c
-+++ new/src/java.base/linux/native/libnet/linux_close.c
-@@ -60,7 +60,7 @@
- /*
- * Signal to unblock thread
- */
--static int sigWakeup = (__SIGRTMAX - 2);
-+static int sigWakeup;
-
- /*
- * fdTable holds one entry per file descriptor, up to a certain
-@@ -149,6 +149,7 @@
- /*
- * Setup the signal handler
- */
-+ sigWakeup = SIGRTMAX - 2;
- sa.sa_handler = sig_wakeup;
- sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask);
---- old/src/java.base/unix/native/libjava/childproc.c
-+++ new/src/java.base/unix/native/libjava/childproc.c
-@@ -234,7 +234,13 @@
- {
- if (envp == NULL || (char **) envp == environ) {
- execvp(file, (char **) argv);
-- return;
-+ // ENOEXEC indicates that the file header was not recognized. The musl C
-+ // library does not implement the fallback to /bin/sh for that case, so fall
-+ // through to the code below which implements that fallback using
-+ // execve_with_shell_fallback.
-+ if (errno != ENOEXEC) {
-+ return;
-+ }
- }
-
- if (*file == '\0') {
---- old/src/java.base/unix/native/libjava/jdk_util_md.h
-+++ new/src/java.base/unix/native/libjava/jdk_util_md.h
-@@ -37,7 +37,7 @@
- #define ISNAND(d) isnan(d)
- #elif defined(__linux__) || defined(_ALLBSD_SOURCE)
- #include <math.h>
--#define ISNANF(f) isnanf(f)
-+#define ISNANF(f) isnan(f)
- #define ISNAND(d) isnan(d)
- #elif defined(_AIX)
- #include <math.h>
---- old/src/java.base/unix/native/libjli/java_md_solinux.c
-+++ new/src/java.base/unix/native/libjli/java_md_solinux.c
-@@ -235,6 +235,39 @@
- char *dmllp = NULL;
- char *p; /* a utility pointer */
-
-+#ifdef __linux
-+#ifndef LIBC
-+#error "LIBC not set"
-+#endif
-+
-+ if (strcmp(LIBC, "musl") == 0) {
-+ /*
-+ * The musl library loader requires LD_LIBRARY_PATH to be set in
-+ * order to correctly resolve the dependency libjava.so has on libjvm.so.
-+ *
-+ * Specifically, it differs from glibc in the sense that even if
-+ * libjvm.so has already been loaded it will not be considered a
-+ * candidate for resolving the dependency unless the *full* path
-+ * of the already loaded library matches the dependency being loaded.
-+ *
-+ * libjvm.so is being loaded by the launcher using a long path to
-+ * dlopen, not just the basename of the library. Typically this
-+ * is something like "../lib/server/libjvm.so". However, if/when
-+ * libjvm.so later tries to dlopen libjava.so (which it does in
-+ * order to get access to a few functions implemented in
-+ * libjava.so) the musl loader will, as part of loading
-+ * dependent libraries, try to load libjvm.so using only its
-+ * basename "libjvm.so". Since this does not match the longer
-+ * path path it was first loaded with, the already loaded
-+ * library is not considered a candidate, and the loader will
-+ * instead look for libjvm.so elsewhere. If it's not in
-+ * LD_LIBRARY_PATH the dependency load will fail, and libjava.so
-+ * will therefore fail as well.
-+ */
-+ return JNI_TRUE;
-+ }
-+#endif
-+
- #ifdef AIX
- /* We always have to set the LIBPATH on AIX because ld doesn't support $ORIGIN. */
- return JNI_TRUE;
---- old/src/java.base/unix/native/libnio/ch/NativeThread.c
-+++ new/src/java.base/unix/native/libnio/ch/NativeThread.c
-@@ -36,7 +36,7 @@
- #ifdef __linux__
- #include <pthread.h>
- /* Also defined in net/linux_close.c */
-- #define INTERRUPT_SIGNAL (__SIGRTMAX - 2)
-+ #define INTERRUPT_SIGNAL (SIGRTMAX - 2)
- #elif defined(_AIX)
- #include <pthread.h>
- /* Also defined in net/aix_close.c */
---- old/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
-+++ new/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
-@@ -27,9 +27,6 @@
- #include <X11/Xutil.h>
- #include <X11/Xos.h>
- #include <X11/Xatom.h>
--#ifdef __linux__
--#include <execinfo.h>
--#endif
-
- #include <jvm.h>
- #include <jni.h>
-@@ -790,26 +787,6 @@
- }
- return ret;
- }
--
--#ifdef __linux__
--void print_stack(void)
--{
-- void *array[10];
-- size_t size;
-- char **strings;
-- size_t i;
--
-- size = backtrace (array, 10);
-- strings = backtrace_symbols (array, size);
--
-- fprintf (stderr, "Obtained %zd stack frames.\n", size);
--
-- for (i = 0; i < size; i++)
-- fprintf (stderr, "%s\n", strings[i]);
--
-- free (strings);
--}
--#endif
-
- Window get_xawt_root_shell(JNIEnv *env) {
- static jclass classXRootWindow = NULL;
---- old/src/jdk.jdwp.agent/share/native/libjdwp/util.h
-+++ new/src/jdk.jdwp.agent/share/native/libjdwp/util.h
-@@ -35,15 +35,15 @@
- #ifdef DEBUG
- /* Just to make sure these interfaces are not used here. */
- #undef free
-- #define free(p) Do not use this interface.
-+ #define free do_not_use_this_interface_free
- #undef malloc
-- #define malloc(p) Do not use this interface.
-+ #define malloc do_not_use_this_interface_malloc
- #undef calloc
-- #define calloc(p) Do not use this interface.
-+ #define calloc do_not_use_this_interface_calloc
- #undef realloc
-- #define realloc(p) Do not use this interface.
-+ #define realloc do_not_use_this_interface_realloc
- #undef strdup
-- #define strdup(p) Do not use this interface.
-+ #define strdup do_not_use_this_interface_strdup
- #endif
-
- #include "log_messages.h"
---- old/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
-+++ new/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
-@@ -33,6 +33,7 @@
-
- #include <assert.h>
- #include <jni.h>
-+#include <jvm.h>
- #include <alloca.h>
- #include <signal.h>
- #include <string.h>
-@@ -91,6 +92,20 @@
- }
- }
-
-+int get_java_stacksize () {
-+ size_t stacksize;
-+ pthread_attr_t attr;
-+ JDK1_1InitArgs jdk_args;
-+
-+ jdk_args.version = JNI_VERSION_1_1;
-+ JNI_GetDefaultJavaVMInitArgs(&jdk_args);
-+ if (jdk_args.javaStackSize <= 0) {
-+ fprintf(stderr, "Test ERROR. Can't get a valid value for the default stacksize.\n");
-+ exit(7);
-+ }
-+ return jdk_args.javaStackSize;
-+}
-+
- void *run_java_overflow (void *p) {
- JNIEnv *env;
- jclass class_id;
-@@ -254,13 +269,19 @@
- exit(7);
- }
-
-+ int stack_size = get_java_stacksize();
- pthread_t thr;
-+ pthread_attr_t thread_attr;
-
-+ pthread_attr_init(&thread_attr);
-+ pthread_attr_setstacksize(&thread_attr, stack_size);
-+
- if (argc > 1 && strcmp(argv[1], "test_java_overflow") == 0) {
- printf("\nTesting JAVA_OVERFLOW\n");
-
- printf("Testing stack guard page behaviour for other thread\n");
-- pthread_create (&thr, NULL, run_java_overflow, NULL);
-+
-+ pthread_create (&thr, &thread_attr, run_java_overflow, NULL);
- pthread_join (thr, NULL);
-
- printf("Testing stack guard page behaviour for initial thread\n");
-@@ -273,7 +294,7 @@
- printf("\nTesting NATIVE_OVERFLOW\n");
-
- printf("Testing stack guard page behaviour for other thread\n");
-- pthread_create (&thr, NULL, run_native_overflow, NULL);
-+ pthread_create (&thr, &thread_attr, run_native_overflow, NULL);
- pthread_join (thr, NULL);
-
- printf("Testing stack guard page behaviour for initial thread\n");
---- old/test/jdk/java/lang/ProcessBuilder/Basic.java
-+++ new/test/jdk/java/lang/ProcessBuilder/Basic.java
-@@ -396,8 +396,8 @@
- if (failed != 0) throw new Error("null PATH");
- } else if (action.equals("PATH search algorithm")) {
- equal(System.getenv("PATH"), "dir1:dir2:");
-- check(new File("/bin/true").exists());
-- check(new File("/bin/false").exists());
-+ check(new File(TrueExe.path()).exists());
-+ check(new File(FalseExe.path()).exists());
- String[] cmd = {"prog"};
- ProcessBuilder pb1 = new ProcessBuilder(cmd);
- ProcessBuilder pb2 = new ProcessBuilder(cmd);
-@@ -438,13 +438,13 @@
- checkPermissionDenied(pb);
-
- // continue searching if EACCES
-- copy("/bin/true", "dir2/prog");
-+ copy(TrueExe.path(), "dir2/prog");
- equal(run(pb).exitValue(), True.exitValue());
- new File("dir1/prog").delete();
- new File("dir2/prog").delete();
-
- new File("dir2/prog").mkdirs();
-- copy("/bin/true", "dir1/prog");
-+ copy(TrueExe.path(), "dir1/prog");
- equal(run(pb).exitValue(), True.exitValue());
-
- // Check empty PATH component means current directory.
-@@ -460,10 +460,10 @@
- pb.command(command);
- File prog = new File("./prog");
- // "Normal" binaries
-- copy("/bin/true", "./prog");
-+ copy(TrueExe.path(), "./prog");
- equal(run(pb).exitValue(),
- True.exitValue());
-- copy("/bin/false", "./prog");
-+ copy(FalseExe.path(), "./prog");
- equal(run(pb).exitValue(),
- False.exitValue());
- prog.delete();
-@@ -518,12 +518,12 @@
- new File("dir2/prog").delete();
- new File("prog").delete();
- new File("dir3").mkdirs();
-- copy("/bin/true", "dir1/prog");
-- copy("/bin/false", "dir3/prog");
-+ copy(TrueExe.path(), "dir1/prog");
-+ copy(FalseExe.path(), "dir3/prog");
- pb.environment().put("PATH","dir3");
- equal(run(pb).exitValue(), True.exitValue());
-- copy("/bin/true", "dir3/prog");
-- copy("/bin/false", "dir1/prog");
-+ copy(TrueExe.path(), "dir3/prog");
-+ copy(FalseExe.path(), "dir1/prog");
- equal(run(pb).exitValue(), False.exitValue());
-
- } finally {
-@@ -620,6 +620,13 @@
- new File("/bin/false").exists());
- }
-
-+ static class BusyBox {
-+ public static boolean is() { return is; }
-+ private static final boolean is =
-+ (! Windows.is() &&
-+ new File("/bin/busybox").exists());
-+ }
-+
- static class UnicodeOS {
- public static boolean is() { return is; }
- private static final String osName = System.getProperty("os.name");
-@@ -658,6 +665,45 @@
- }
- }
-
-+ // On alpine linux, /bin/true and /bin/false are just links to /bin/busybox.
-+ // Some tests copy /bin/true and /bin/false to files with a different filename.
-+ // However, copying the busbox executable into a file with a different name
-+ // won't result in the expected return codes. As workaround, we create
-+ // executable files that can be copied and produce the exepected return
-+ // values. We use this workaround, if we find the busybox executable.
-+
-+ private static class TrueExe {
-+ public static String path() { return path; }
-+ private static final String path = path0();
-+ private static String path0(){
-+ if (!BusyBox.is()) {
-+ return "/bin/true";
-+ }
-+ else {
-+ File trueExe = new File("true");
-+ setFileContents(trueExe, "#!/bin/true\n");
-+ trueExe.setExecutable(true);
-+ return trueExe.getAbsolutePath();
-+ }
-+ }
-+ }
-+
-+ private static class FalseExe {
-+ public static String path() { return path; }
-+ private static final String path = path0();
-+ private static String path0(){
-+ if (!BusyBox.is()) {
-+ return "/bin/false";
-+ }
-+ else {
-+ File falseExe = new File("false");
-+ setFileContents(falseExe, "#!/bin/false\n");
-+ falseExe.setExecutable(true);
-+ return falseExe.getAbsolutePath();
-+ }
-+ }
-+ }
-+
- static class EnglishUnix {
- private static final Boolean is =
- (! Windows.is() && isEnglish("LANG") && isEnglish("LC_ALL"));
-@@ -1961,7 +2007,7 @@
- //----------------------------------------------------------------
- try {
- new File("suBdiR").mkdirs();
-- copy("/bin/true", "suBdiR/unliKely");
-+ copy(TrueExe.path(), "suBdiR/unliKely");
- final ProcessBuilder pb =
- new ProcessBuilder(new String[]{"unliKely"});
- pb.environment().put("PATH", "suBdiR");
---- old/test/jdk/java/lang/ProcessHandle/InfoTest.java
-+++ new/test/jdk/java/lang/ProcessHandle/InfoTest.java
-@@ -298,7 +298,14 @@
- }
- if (info.command().isPresent()) {
- String command = info.command().get();
-- String expected = Platform.isWindows() ? "sleep.exe" : "sleep";
-+ String expected = "sleep";
-+ if (Platform.isWindows()) {
-+ expected = "sleep.exe";
-+ } else if (new File("/bin/busybox").exists()) {
-+ // With busybox sleep is just a sym link to busybox.
-+ // The busbox executable is seen as ProcessHandle.Info command.
-+ expected = "busybox";
-+ }
- Assert.assertTrue(command.endsWith(expected), "Command: expected: \'" +
- expected + "\', actual: " + command);
-
diff --git a/testing/openjdk12/fix-bootjdk-check.patch b/testing/openjdk12/fix-bootjdk-check.patch
deleted file mode 100644
index c7fe679b36e..00000000000
--- a/testing/openjdk12/fix-bootjdk-check.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-The alpine builders print out a warning about sched_getaffinity() not working.
-This causes the version check for the boot jdk to fail.
-Patch the command to determine the version number to ignore any errors and warnings.
-
---- old/make/autoconf/boot-jdk.m4
-+++ new/make/autoconf/boot-jdk.m4
-@@ -74,7 +74,7 @@
- BOOT_JDK_FOUND=no
- else
- # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
-- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
-+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $GREP version | $HEAD -n 1`
- if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
- AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
- AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
diff --git a/testing/openjdk12/make-4.3.patch b/testing/openjdk12/make-4.3.patch
deleted file mode 100644
index 6720709cda1..00000000000
--- a/testing/openjdk12/make-4.3.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-upstream report: https://bugs.openjdk.java.net/browse/JDK-8237879.
-
-diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk
-index 170c3ed..697f9d2 100644
---- a/make/common/MakeBase.gmk
-+++ b/make/common/MakeBase.gmk
-@@ -984,7 +984,9 @@ DependOnVariableHelper = \
- $(info NewVariable $1: >$(strip $($1))<) \
- $(info OldVariable $1: >$(strip $($1_old))<)) \
- $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \
-- $(call DependOnVariableFileName, $1, $2))) \
-+ $(call DependOnVariableFileName, $1, $2)) \
-+ $(eval $(call DependOnVariableFileName, $1, $2): ) \
-+ ) \
- $(call DependOnVariableFileName, $1, $2) \
- )
-
diff --git a/testing/openjdk12/ppc64le.patch b/testing/openjdk12/ppc64le.patch
deleted file mode 100644
index d3b4ae01316..00000000000
--- a/testing/openjdk12/ppc64le.patch
+++ /dev/null
@@ -1,183 +0,0 @@
---- old/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-@@ -1290,7 +1290,11 @@
- // the safepoing polling page.
- ucontext_t* uc = (ucontext_t*) ucontext;
- // Set polling address.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- address addr = (address)uc->uc_mcontext.regs->gpr[ra] + (ssize_t)ds;
-+#else // Musl
-+ address addr = (address)uc->uc_mcontext.gp_regs[ra] + (ssize_t) ds;
-+#endif
- if (polling_address_ptr != NULL) {
- *polling_address_ptr = addr;
- }
-@@ -1353,11 +1357,20 @@
- || (is_stdu(instruction) && rs == 1)) {
- int ds = inv_ds_field(instruction);
- // return banged address
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return ds+(address)uc->uc_mcontext.regs->gpr[ra];
-+#else // Musl
-+ return ds+(address)uc->uc_mcontext.gp_regs[ra];
-+#endif
- } else if (is_stdux(instruction) && rs == 1) {
- int rb = inv_rb_field(instruction);
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- address sp = (address)uc->uc_mcontext.regs->gpr[1];
- long rb_val = (long)uc->uc_mcontext.regs->gpr[rb];
-+#else // Musl
-+ address sp = (address)uc->uc_mcontext.gp_regs[1];
-+ long rb_val = (long)uc->uc_mcontext.gp_regs[rb];
-+#endif
- return ra != 1 || rb_val >= 0 ? NULL // not a stack bang
- : sp + rb_val; // banged address
- }
---- old/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-@@ -768,7 +768,7 @@
- unsigned long auxv = getauxval(AT_HWCAP2);
-
- if (auxv & PPC_FEATURE2_HTM_NOSC) {
-- if (auxv & PPC_FEATURE2_HAS_HTM) {
-+ if (auxv & PPC_FEATURE2_HTM) {
- // TM on POWER8 and POWER9 in compat mode (VM) is supported by the JVM.
- // TM on POWER9 DD2.1 NV (baremetal) is not supported by the JVM (TM on
- // POWER9 DD2.1 NV has a few issues that need a couple of firmware
---- old/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-@@ -108,24 +108,42 @@
- // - if uc was filled by getcontext(), it is undefined - getcontext() does not fill
- // it because the volatile registers are not needed to make setcontext() work.
- // Hopefully it was zero'd out beforehand.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_get_pc in sigaction context");
- return (address)uc->uc_mcontext.regs->nip;
-+#else // Musl
-+ guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_get_pc in sigaction context");
-+ return (address)uc->uc_mcontext.gp_regs[32];
-+#endif
- }
-
- // modify PC in ucontext.
- // Note: Only use this for an ucontext handed down to a signal handler. See comment
- // in ucontext_get_pc.
- void os::Linux::ucontext_set_pc(ucontext_t * uc, address pc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_set_pc in sigaction context");
- uc->uc_mcontext.regs->nip = (unsigned long)pc;
-+#else // Musl
-+ guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_set_pc in sigaction context");
-+ uc->uc_mcontext.gp_regs[32] = (unsigned long)pc;
-+#endif
- }
-
- static address ucontext_get_lr(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return (address)uc->uc_mcontext.regs->link;
-+#else // Musl
-+ return (address)uc->uc_mcontext.gp_regs[36];
-+#endif
- }
-
- intptr_t* os::Linux::ucontext_get_sp(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return (intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/];
-+#else // Musl
-+ return (intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/];
-+#endif
- }
-
- intptr_t* os::Linux::ucontext_get_fp(const ucontext_t * uc) {
-@@ -255,7 +273,13 @@
- // 3.2.1 "Machine State Register"), however note that ISA notation for bit
- // numbering is MSB 0, so for normal bit numbering (LSB 0) they come to be
- // bits 33 and 34. It's not related to endianness, just a notation matter.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- if (second_uc->uc_mcontext.regs->msr & 0x600000000) {
-+#else // Musl
-+ // why 33?
-+ // see comment for glibc NGREG: "r0-r31, nip, msr, lr, etc."
-+ if (second_uc->uc_mcontext.gp_regs[33] & 0x600000000) {
-+#endif
- if (TraceTraps) {
- tty->print_cr("caught signal in transaction, "
- "ignoring to jump to abort handler");
-@@ -554,6 +578,7 @@
- const ucontext_t* uc = (const ucontext_t*)context;
-
- st->print_cr("Registers:");
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->nip);
- st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->link);
- st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.regs->ctr);
-@@ -562,8 +587,18 @@
- st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.regs->gpr[i]);
- if (i % 3 == 2) st->cr();
- }
-+#else // Musl
-+ st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[32]);
-+ st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[36]);
-+ st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[35]);
- st->cr();
-+ for (int i = 0; i < 32; i++) {
-+ st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.gp_regs[i]);
-+ if (i % 3 == 2) st->cr();
-+ }
-+#endif
- st->cr();
-+ st->cr();
-
- intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
- st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
-@@ -587,12 +622,22 @@
- st->print_cr("Register to memory mapping:");
- st->cr();
-
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->nip);
- st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->link);
- st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->ctr);
-+#else // Musl
-+ st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[32]);
-+ st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[36]);
-+ st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[35]);
-+#endif
- for (int i = 0; i < 32; i++) {
- st->print("r%-2d=", i);
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- print_location(st, uc->uc_mcontext.regs->gpr[i]);
-+#else // Musl
-+ print_location(st, uc->uc_mcontext.gp_regs[i]);
-+#endif
- }
- st->cr();
- }
---- old/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-@@ -56,8 +56,13 @@
- // if we were running Java code when SIGPROF came in.
- if (isInJava) {
- ucontext_t* uc = (ucontext_t*) ucontext;
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- frame ret_frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/],
- (address)uc->uc_mcontext.regs->nip);
-+#else // Musl
-+ frame ret_frame((intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/],
-+ (address)uc->uc_mcontext.gp_regs[32]);
-+#endif
-
- if (ret_frame.pc() == NULL) {
- // ucontext wasn't useful
-@@ -69,7 +74,11 @@
- if (!((Method*)(istate->method))->is_metaspace_object()) {
- return false;
- }
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
-+#else // Musl
-+ uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
-+#endif
- uint64_t istate_bcp = istate->bcp;
- uint64_t code_start = (uint64_t)(((Method*)(istate->method))->code_base());
- uint64_t code_end = (uint64_t)(((Method*)istate->method)->code_base() + ((Method*)istate->method)->code_size());
diff --git a/testing/openjdk13/APKBUILD b/testing/openjdk13/APKBUILD
deleted file mode 100644
index e244c8c5014..00000000000
--- a/testing/openjdk13/APKBUILD
+++ /dev/null
@@ -1,296 +0,0 @@
-# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=openjdk13
-pkgver=13.0.2_p8
-_pkgver=${pkgver/_p8/-ga}
-pkgrel=0
-pkgdesc="Oracle OpenJDK 13"
-url="https://hg.openjdk.java.net/jdk-updates/jdk13u"
-arch="all !x86 !armhf !armv7 !mips !mips64" # oracle dropped support for 32 bit
-license="GPL-2.0-with-classpath-exception"
-makedepends="autoconf
- bash
- gawk
- grep
- make
- openjdk12-jdk
- zip
- alsa-lib-dev
- cups-dev
- elfutils-dev
- fontconfig-dev
- freetype-dev
- giflib-dev
- lcms2-dev
- libexecinfo-dev
- libffi-dev
- libjpeg-turbo-dev
- libx11-dev
- libxext-dev
- libxrandr-dev
- libxrender-dev
- libxt-dev
- libxtst-dev
- linux-headers
- zlib-dev"
-depends="$pkgname-jmods $pkgname-demos $pkgname-doc $pkgname-jdk" # for the virtual openjdk13 package
-subpackages="$pkgname-jmods:_jmods:noarch
- $pkgname-demos:_demos:noarch
- $pkgname-doc:_doc:noarch
- $pkgname-jre:_jre
- $pkgname-src:_src:noarch
- $pkgname-jre-headless:_jre_headless
- $pkgname-jdk:_jdk"
-source="jdk-$_pkgver.tar.gz::https://github.com/openjdk/jdk13u/archive/jdk-$_pkgver.tar.gz
-
- build.patch
- aarch64.patch
- ppc64le.patch
- make-4.3.patch
- fix-bootjdk-check.patch
-
- HelloWorld.java
- TestECDSA.java
- TestCryptoLevel.java
- Alpine_Bug_10126.java
-"
-builddir="$srcdir/jdk13u-jdk-$_pkgver"
-
-_java_home="/usr/lib/jvm/java-13-openjdk"
-
-ldpath="$_java_home/lib:$_java_home/lib/server"
-sonameprefix="$pkgname:"
-
-# enable running the JTReg tests in check?
-# see comment in that function for explanation
-_run_jtreg=${_run_jtreg:-0}
-if [ $_run_jtreg -ne 0 ]; then
- makedepends="$makedepends java-jtreg"
- checkdepends="$checkdepends ttf-freefont xvfb-run"
-fi
-
-
-prepare() {
- default_prepare
-
- # update autoconf files to detect alpine
- update_config_sub
- update_config_guess
-
- # remove not compilable module (hotspot jdk.hotspot.agent)
- # this needs libthread_db which is only provided by glibc
- #
- # haven't found any way to disable this module so just remove it.
- rm -r src/jdk.hotspot.agent
-}
-
-build() {
- if [ $_run_jtreg -ne 0 ]; then
- _with_jtreg="--with-jtreg=/usr/share/java/jtreg"
- else
- _with_jtreg="--with-jtreg=no"
- fi
-
- # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning
- # in the output of ./configure unless used like such:
- # --with-extra-cflags="$CFLAGS"
- # --with-extra-cxxflags="$CXXFLAGS"
- # --with-extra-ldflags="$LDFLAGS"
- # See also paragraph "Configure Control Variables" from "common/doc/building.md"
- # shellcheck disable=2097 disable=2098
- CFLAGS='' CXXFLAGS='' LDFLAGS='' \
- bash ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --target=$CTARGET \
- --prefix="$_java_home" \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-extra-cflags="$CFLAGS" \
- --with-extra-cxxflags="$CXXFLAGS" \
- --with-extra-ldflags="$LDFLAGS" \
- --with-zlib=system \
- --with-libjpeg=system \
- --with-giflib=system \
- --with-libpng=system \
- --with-lcms=system \
- --with-jobs=${JOBS:-4} \
- --with-test-jobs=${JOBS:-4} \
- --with-native-debug-symbols=none \
- $_with_jtreg \
- --disable-warnings-as-errors \
- --disable-precompiled-headers \
- --enable-dtrace=no \
- --with-jvm-variants=server \
- --with-debug-level=release \
- --with-version-pre= \
- --with-version-opt="alpine-r$pkgrel" \
- --with-version-build=${_pkgver#*+} \
- --with-vendor-name="Alpine" \
- --with-vendor-url="https://alpinelinux.org/" \
- --with-vendor-bug-url="https://gitlab.alpinelinux.org/alpine/aports/issues" \
- --with-vendor-vm-bug-url="https://gitlab.alpinelinux.org/alpine/aports/issues"
- MAKEFLAGS='' make jdk-image
-}
-
-check() {
- local _java_bin="./build/linux-*-server-release/images/jdk/bin"
-
- # 1) compile and run a simple hello world
- $_java_bin/javac -d . "$srcdir"/HelloWorld.java
- $_java_bin/java HelloWorld
-
- # 2) compile and run a testcase for unlimited policy
- $_java_bin/javac -d . "$srcdir"/TestCryptoLevel.java
- $_java_bin/java -cp . --add-opens java.base/javax.crypto=ALL-UNNAMED TestCryptoLevel
-
- # 3) compile and run a testcase for ECDSA signatures
- $_java_bin/javac -d . "$srcdir"/TestECDSA.java
- $_java_bin/java TestECDSA
-
- # 4) compile and run testcase for bug 10126
- $_java_bin/javac -d . "$srcdir"/Alpine_Bug_10126.java
- $_java_bin/java Alpine_Bug_10126
-
- # run the gtest unittest suites
- # they don't take long, DO NOT DISABLE THEM!
- MAKEFLAGS='' make test-hotspot-gtest
-
- # The jtreg tests take very, very long to finish and show some failures (9 - 12 on my machine, varying between runs)
- # I think these are not critical and can be safely ignored.
- # As the tests take too long, they are disabled by default.
- # When updating this aport please let them run at least once on your machine to see if the failure count changes.
- if [ $_run_jtreg -ne 0 ]; then
- _logfile=$( mktemp -p "$builddir" )
- MAKEFLAGS='' xvfb-run make \
- run-test-tier1 \
- run-test-tier2 \
- run-test-tier3 \
- | tee "$_logfile"
- msg "---------------------------------------"
- msg "The build log can be found at $_logfile"
- # abort the build so you may take a look at the logfile
- false
- return 1
- fi
-}
-
-package() {
- mkdir -p "$pkgdir/$_java_home"
- cp -r build/linux-*-server-release/images/jdk/* "$pkgdir/$_java_home"
-}
-
-_jmods() {
- pkgdesc="Oracle OpenJDK 13 (jmods)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/jmods" "$_toroot"
-}
-
-_demos() {
- pkgdesc="Oracle OpenJDK 13 (demos)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/demo" "$_toroot"
-}
-
-_doc() {
- pkgdesc="Oracle OpenJDK 13 (Documentation)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/man" "$_toroot"
-}
-
-_jre() {
- pkgdesc="Oracle OpenJDK 13 (JRE)"
- depends="$pkgname-jre-headless"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot/lib"
- mv "$_fromroot/lib/libawt_xawt.so" \
- "$_fromroot/lib/libfontmanager.so" \
- "$_fromroot/lib/libjavajpeg.so" \
- "$_fromroot/lib/libjawt.so" \
- "$_fromroot/lib/libjsound.so" \
- "$_fromroot/lib/liblcms.so" \
- "$_fromroot/lib/libsplashscreen.so" \
- "$_toroot/lib"
-}
-
-_src() {
- pkgdesc="Oracle OpenJDK 13 (sources)"
- depends="$pkgname-jre-headless"
- mkdir -p "$subpkgdir/$_java_home"/lib
- mv "$pkgdir"/$_java_home/lib/src.zip \
- "$subpkgdir"/$_java_home/lib/
-}
-
-_jre_headless() {
- pkgdesc="Oracle OpenJDK 13 (JRE headless)"
- depends="java-common java-cacerts"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/lib" "$_toroot"
-
- mkdir -p "$_toroot/bin"
- for i in java \
- jjs \
- keytool \
- pack200 \
- rmid \
- rmiregistry \
- unpack200; do
- mv "$_fromroot/bin/$i" "$_toroot/bin/$i"
- done
-
- mv "$_fromroot/legal" "$_toroot"
- mv "$_fromroot/conf" "$_toroot"
- mv "$_fromroot/release" "$_toroot"
- cp "$builddir/ASSEMBLY_EXCEPTION" "$_toroot"
- cp "$builddir/LICENSE" "$_toroot"
- cp "$builddir/README" "$_toroot"
-
- # symlink to shared cacerts store
- rm "$_toroot/lib/security/cacerts"
- ln -sf /etc/ssl/certs/java/cacerts \
- "$_toroot/lib/security/cacerts"
-
- # symlink for java-common to work (expects jre in $_java_home/jre)
- ln -sf . "$_toroot/jre"
-}
-
-_jdk() {
- pkgdesc="Oracle OpenJDK 13 (JDK)"
- depends="$pkgname-jre"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/bin" "$_toroot"
- mv "$_fromroot/include" "$_toroot"
-}
-
-sha512sums="430270d31e2370aa779e01190f717e78260a13cd3a90e1cb48d602dc2e1e6fb646fe85edce4eb0e053a29702fdca4d09507554adfcf37a3a91085e8804df3238 jdk-13.0.2-ga.tar.gz
-953fea48fa200b4388867134428220b08aad38396cebff2b2a2d270ac49678e5baf08b19edf58b514750b527c06c5958e7394e7d0d4189950c213bea322048e1 build.patch
-44e26f252a911acc4fa742c352177dbd59f3a9275b76bb4cc61d430232bd95a7279d116204e39c3ebd9b4fea2ff0ba3ba091d640cdd021baa437d0196818d6bb aarch64.patch
-fabbfd3d1a42d885e0631f6a9a93408dc4c3d1d6dd8099d3783192972d1f61776724d7d2d68f425c1d8eb4e942fa5302325fb8240c0a6049e891a29e8e3b2be7 ppc64le.patch
-b8b420b9e73da54decbec04fab9ac1c79f3c01ef2f9af132cf98a008f9ff6544e67d98c109f8c48f224df9581a8b40399db25099766d9f3f9b11dafe5114c545 make-4.3.patch
-e54c69db6e97c9d7057275f6749565a748f42dadb397b2f3975d99608c4037ad93c84cf828c7e2955b1b4f1899dcc25069c8c6d675f1e963adf3f1223a47d56c fix-bootjdk-check.patch
-d1767dddd8e0956e25c0f77ed45c6fc86a1191bae1704a6dc33be490fd20eaa50461fe5c2a3349512059d555651e2eb41437dd3c1096c351e8ee68b4534a2579 HelloWorld.java
-27e91edef89d26c0c5b9a813e2045f8d2b348745a506ae37b34b660fa7093da9a4e0e676ea41dc4a5c901bce02e5304d95e90f68d6c99cbf461b2da40a7a9853 TestECDSA.java
-b02dff8d549f88317bb4c741a9e269e8d59eef990197d085388fc49c7423a4eb9367dbe1e02bffb10e7862f5980301eb58d4494e177d0e8f60af6b05c7fbbe60 TestCryptoLevel.java
-fadd06c034614a25537246dfd66a4645c2a4c673f16b5d3e8abdd89c81baf04bd2797b26b0e589ec11ee08b90783b232a6d06c72589d211a5e10b8638a627911 Alpine_Bug_10126.java"
diff --git a/testing/openjdk13/Alpine_Bug_10126.java b/testing/openjdk13/Alpine_Bug_10126.java
deleted file mode 100644
index 76574a15098..00000000000
--- a/testing/openjdk13/Alpine_Bug_10126.java
+++ /dev/null
@@ -1,13 +0,0 @@
-public class Alpine_Bug_10126 {
- public static void main(String[] args) throws Exception {
- try (java.net.Socket sock = javax.net.ssl.SSLSocketFactory.getDefault().createSocket("bugs.alpinelinux.org", 443);
- java.io.InputStream in = sock.getInputStream();
- java.io.OutputStream out = sock.getOutputStream()) {
- out.write("GET / HTTP/1.0\n\nHost: gitlab.alpinelinux.org\n\nConnection: close\n\n\n\n".getBytes());
- out.flush();
- while (in.read(new byte[1024]) != -1) ;
- }
- System.out.println("Secured connection performed successfully");
- }
-}
-
diff --git a/testing/openjdk13/HelloWorld.java b/testing/openjdk13/HelloWorld.java
deleted file mode 100644
index 0be813a1901..00000000000
--- a/testing/openjdk13/HelloWorld.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class HelloWorld {
- public static void main(String[] args) { System.out.println("Hello World!"); }
-}
diff --git a/testing/openjdk13/TestCryptoLevel.java b/testing/openjdk13/TestCryptoLevel.java
deleted file mode 100644
index 3ed6c8dc15c..00000000000
--- a/testing/openjdk13/TestCryptoLevel.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
- Copyright (C) 2012 Red Hat, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
-import java.security.Permission;
-import java.security.PermissionCollection;
-
-public class TestCryptoLevel
-{
- public static void main(String[] args)
- throws NoSuchFieldException, ClassNotFoundException,
- IllegalAccessException, InvocationTargetException
- {
- Class<?> cls = null;
- Method def = null, exempt = null;
-
- try
- {
- cls = Class.forName("javax.crypto.JceSecurity");
- }
- catch (ClassNotFoundException ex)
- {
- System.err.println("Running a non-Sun JDK.");
- System.exit(0);
- }
- try
- {
- def = cls.getDeclaredMethod("getDefaultPolicy");
- exempt = cls.getDeclaredMethod("getExemptPolicy");
- }
- catch (NoSuchMethodException ex)
- {
- System.err.println("Running IcedTea with the original crypto patch.");
- System.exit(0);
- }
- def.setAccessible(true);
- exempt.setAccessible(true);
- PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
- PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
- Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
- Field apField = apCls.getDeclaredField("INSTANCE");
- apField.setAccessible(true);
- Permission allPerms = (Permission) apField.get(null);
- if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms)))
- {
- System.err.println("Running with the unlimited policy.");
- System.exit(0);
- }
- else
- {
- System.err.println("WARNING: Running with a restricted crypto policy.");
- System.exit(-1);
- }
- }
-}
diff --git a/testing/openjdk13/TestECDSA.java b/testing/openjdk13/TestECDSA.java
deleted file mode 100644
index abd81d1cedf..00000000000
--- a/testing/openjdk13/TestECDSA.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* TestECDSA -- Ensure ECDSA signatures are working.
- Copyright (C) 2016 Red Hat, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import java.math.BigInteger;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.Signature;
-
-/**
- * @test
- */
-public class TestECDSA {
-
- public static void main(String[] args) throws Exception {
- KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
- KeyPair key = keyGen.generateKeyPair();
-
- byte[] data = "This is a string to sign".getBytes("UTF-8");
-
- Signature dsa = Signature.getInstance("NONEwithECDSA");
- dsa.initSign(key.getPrivate());
- dsa.update(data);
- byte[] sig = dsa.sign();
- System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
-
- Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
- dsaCheck.initVerify(key.getPublic());
- dsaCheck.update(data);
- boolean success = dsaCheck.verify(sig);
- if (!success) {
- throw new RuntimeException("Test failed. Signature verification error");
- }
- System.out.println("Test passed.");
- }
-}
diff --git a/testing/openjdk13/aarch64.patch b/testing/openjdk13/aarch64.patch
deleted file mode 100644
index e6a89114194..00000000000
--- a/testing/openjdk13/aarch64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-The header is not present with musl and including is not needed
-
---- old/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
-+++ new/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
-@@ -77,7 +77,6 @@
- # include <pwd.h>
- # include <poll.h>
- # include <ucontext.h>
--# include <fpu_control.h>
-
- #ifdef BUILTIN_SIM
- #define REG_SP REG_RSP
diff --git a/testing/openjdk13/build.patch b/testing/openjdk13/build.patch
deleted file mode 100644
index 0f31de9f667..00000000000
--- a/testing/openjdk13/build.patch
+++ /dev/null
@@ -1,520 +0,0 @@
-This patch contains mainly code from the portola project.
-Adopted, enhanced and fixed so that it actually compiles with alpine.
-
---- old/make/ReleaseFile.gmk
-+++ new/make/ReleaseFile.gmk
-@@ -53,6 +53,7 @@
- $(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
- $(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
- $(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
-+ $(call info-file-item, "LIBC", "musl")
- endef
-
- # Param 1 - The file containing the MODULES list
---- old/make/hotspot/lib/CompileJvm.gmk
-+++ new/make/hotspot/lib/CompileJvm.gmk
-@@ -71,6 +71,7 @@
- -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
- -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
- -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
-+ -DLIBC='"musl"' \
- #
-
- ################################################################################
---- old/make/lib/CoreLibraries.gmk
-+++ new/make/lib/CoreLibraries.gmk
-@@ -192,6 +192,7 @@
- endif
-
- LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
-+LIBJLI_CFLAGS += -DLIBC=\"musl\"
-
- ifneq ($(USE_EXTERNAL_LIBZ), true)
- LIBJLI_EXTRA_FILES += \
---- old/src/hotspot/os/linux/os_linux.cpp
-+++ new/src/hotspot/os/linux/os_linux.cpp
-@@ -102,7 +102,6 @@
- # include <string.h>
- # include <syscall.h>
- # include <sys/sysinfo.h>
--# include <gnu/libc-version.h>
- # include <sys/ipc.h>
- # include <sys/shm.h>
- # include <link.h>
-@@ -599,6 +598,11 @@
- // detecting pthread library
-
- void os::Linux::libpthread_init() {
-+#if !defined(__GLIBC__) && !defined(__UCLIBC__)
-+ // Hard code Alpine Linux supported musl compatible settings
-+ os::Linux::set_glibc_version("glibc 2.9");
-+ os::Linux::set_libpthread_version("NPTL");
-+#else
- // Save glibc and pthread version strings.
- #if !defined(_CS_GNU_LIBC_VERSION) || \
- !defined(_CS_GNU_LIBPTHREAD_VERSION)
-@@ -616,6 +620,7 @@
- str = (char *)malloc(n, mtInternal);
- confstr(_CS_GNU_LIBPTHREAD_VERSION, str, n);
- os::Linux::set_libpthread_version(str);
-+#endif
- }
-
- /////////////////////////////////////////////////////////////////////////////
-@@ -3001,20 +3006,36 @@
- extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
- extern "C" JNIEXPORT void numa_error(char *where) { }
-
-+static void* dlvsym_if_available(void* handle, const char* name, const char* version) {
-+ typedef void* (*dlvsym_func_type)(void* handle, const char* name, const char* version);
-+ static dlvsym_func_type dlvsym_func;
-+ static bool initialized = false;
-+
-+ if (!initialized) {
-+ dlvsym_func = (dlvsym_func_type)dlsym(RTLD_NEXT, "dlvsym");
-+ initialized = true;
-+ }
-+
-+ if (dlvsym_func != NULL) {
-+ void *f = dlvsym_func(handle, name, version);
-+ if (f != NULL) {
-+ return f;
-+ }
-+ }
-+
-+ return dlsym(handle, name);
-+}
-+
- // Handle request to load libnuma symbol version 1.1 (API v1). If it fails
- // load symbol from base version instead.
- void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
-- void *f = dlvsym(handle, name, "libnuma_1.1");
-- if (f == NULL) {
-- f = dlsym(handle, name);
-- }
-- return f;
-+ return dlvsym_if_available(handle, name, "libnuma_1.1");
- }
-
- // Handle request to load libnuma symbol version 1.2 (API v2) only.
- // Return NULL if the symbol is not defined in this particular version.
- void* os::Linux::libnuma_v2_dlsym(void* handle, const char* name) {
-- return dlvsym(handle, name, "libnuma_1.2");
-+ return dlvsym_if_available(handle, name, "libnuma_1.2");
- }
-
- bool os::Linux::libnuma_init() {
---- old/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
-+++ new/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
-@@ -75,9 +75,6 @@
- # include <pwd.h>
- # include <poll.h>
- # include <ucontext.h>
--#ifndef AMD64
--# include <fpu_control.h>
--#endif
-
- #ifdef AMD64
- #define REG_SP REG_RSP
---- old/src/hotspot/share/gc/shared/genCollectedHeap.cpp
-+++ new/src/hotspot/share/gc/shared/genCollectedHeap.cpp
-@@ -1153,7 +1153,7 @@
- static ScratchBlock *removeSmallestScratch(ScratchBlock **prev_ptr) {
- bool first = true;
- size_t min_size = 0; // "first" makes this conceptually infinite.
-- ScratchBlock **smallest_ptr, *smallest;
-+ ScratchBlock **smallest_ptr = NULL, *smallest;
- ScratchBlock *cur = *prev_ptr;
- while (cur) {
- assert(*prev_ptr == cur, "just checking");
---- old/src/hotspot/share/runtime/vm_version.cpp
-+++ new/src/hotspot/share/runtime/vm_version.cpp
-@@ -267,7 +267,7 @@
- #endif
-
- #define INTERNAL_VERSION_SUFFIX VM_RELEASE ")" \
-- " for " OS "-" CPU FLOAT_ARCH_STR \
-+ " for " OS "-" CPU FLOAT_ARCH_STR LIBC \
- " JRE (" VERSION_STRING "), built on " __DATE__ " " __TIME__ \
- " by " XSTR(HOTSPOT_BUILD_USER) " with " HOTSPOT_BUILD_COMPILER
-
---- old/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
-+++ new/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
-@@ -204,7 +204,7 @@
- #elif defined(__APPLE__)
- inline int g_isnan(double f) { return isnan(f); }
- #elif defined(LINUX) || defined(_ALLBSD_SOURCE)
--inline int g_isnan(float f) { return isnanf(f); }
-+inline int g_isnan(float f) { return isnan(f); }
- inline int g_isnan(double f) { return isnan(f); }
- #else
- #error "missing platform-specific definition here"
---- old/src/java.base/linux/native/libnet/linux_close.c
-+++ new/src/java.base/linux/native/libnet/linux_close.c
-@@ -60,7 +60,7 @@
- /*
- * Signal to unblock thread
- */
--static int sigWakeup = (__SIGRTMAX - 2);
-+static int sigWakeup;
-
- /*
- * fdTable holds one entry per file descriptor, up to a certain
-@@ -149,6 +149,7 @@
- /*
- * Setup the signal handler
- */
-+ sigWakeup = SIGRTMAX - 2;
- sa.sa_handler = sig_wakeup;
- sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask);
---- old/src/java.base/unix/native/libjava/childproc.c
-+++ new/src/java.base/unix/native/libjava/childproc.c
-@@ -234,7 +234,13 @@
- {
- if (envp == NULL || (char **) envp == environ) {
- execvp(file, (char **) argv);
-- return;
-+ // ENOEXEC indicates that the file header was not recognized. The musl C
-+ // library does not implement the fallback to /bin/sh for that case, so fall
-+ // through to the code below which implements that fallback using
-+ // execve_with_shell_fallback.
-+ if (errno != ENOEXEC) {
-+ return;
-+ }
- }
-
- if (*file == '\0') {
---- old/src/java.base/unix/native/libjava/jdk_util_md.h
-+++ new/src/java.base/unix/native/libjava/jdk_util_md.h
-@@ -37,7 +37,7 @@
- #define ISNAND(d) isnan(d)
- #elif defined(__linux__) || defined(_ALLBSD_SOURCE)
- #include <math.h>
--#define ISNANF(f) isnanf(f)
-+#define ISNANF(f) isnan(f)
- #define ISNAND(d) isnan(d)
- #elif defined(_AIX)
- #include <math.h>
---- old/src/java.base/unix/native/libjli/java_md_solinux.c
-+++ new/src/java.base/unix/native/libjli/java_md_solinux.c
-@@ -235,6 +235,39 @@
- char *dmllp = NULL;
- char *p; /* a utility pointer */
-
-+#ifdef __linux
-+#ifndef LIBC
-+#error "LIBC not set"
-+#endif
-+
-+ if (strcmp(LIBC, "musl") == 0) {
-+ /*
-+ * The musl library loader requires LD_LIBRARY_PATH to be set in
-+ * order to correctly resolve the dependency libjava.so has on libjvm.so.
-+ *
-+ * Specifically, it differs from glibc in the sense that even if
-+ * libjvm.so has already been loaded it will not be considered a
-+ * candidate for resolving the dependency unless the *full* path
-+ * of the already loaded library matches the dependency being loaded.
-+ *
-+ * libjvm.so is being loaded by the launcher using a long path to
-+ * dlopen, not just the basename of the library. Typically this
-+ * is something like "../lib/server/libjvm.so". However, if/when
-+ * libjvm.so later tries to dlopen libjava.so (which it does in
-+ * order to get access to a few functions implemented in
-+ * libjava.so) the musl loader will, as part of loading
-+ * dependent libraries, try to load libjvm.so using only its
-+ * basename "libjvm.so". Since this does not match the longer
-+ * path path it was first loaded with, the already loaded
-+ * library is not considered a candidate, and the loader will
-+ * instead look for libjvm.so elsewhere. If it's not in
-+ * LD_LIBRARY_PATH the dependency load will fail, and libjava.so
-+ * will therefore fail as well.
-+ */
-+ return JNI_TRUE;
-+ }
-+#endif
-+
- #ifdef AIX
- /* We always have to set the LIBPATH on AIX because ld doesn't support $ORIGIN. */
- return JNI_TRUE;
---- old/src/java.base/unix/native/libnio/ch/NativeThread.c
-+++ new/src/java.base/unix/native/libnio/ch/NativeThread.c
-@@ -36,7 +36,7 @@
- #ifdef __linux__
- #include <pthread.h>
- /* Also defined in net/linux_close.c */
-- #define INTERRUPT_SIGNAL (__SIGRTMAX - 2)
-+ #define INTERRUPT_SIGNAL (SIGRTMAX - 2)
- #elif defined(_AIX)
- #include <pthread.h>
- /* Also defined in net/aix_close.c */
---- old/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
-+++ new/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
-@@ -27,9 +27,6 @@
- #include <X11/Xutil.h>
- #include <X11/Xos.h>
- #include <X11/Xatom.h>
--#ifdef __linux__
--#include <execinfo.h>
--#endif
-
- #include <jvm.h>
- #include <jni.h>
-@@ -790,26 +787,6 @@
- }
- return ret;
- }
--
--#ifdef __linux__
--void print_stack(void)
--{
-- void *array[10];
-- size_t size;
-- char **strings;
-- size_t i;
--
-- size = backtrace (array, 10);
-- strings = backtrace_symbols (array, size);
--
-- fprintf (stderr, "Obtained %zd stack frames.\n", size);
--
-- for (i = 0; i < size; i++)
-- fprintf (stderr, "%s\n", strings[i]);
--
-- free (strings);
--}
--#endif
-
- Window get_xawt_root_shell(JNIEnv *env) {
- static jclass classXRootWindow = NULL;
---- old/src/jdk.jdwp.agent/share/native/libjdwp/util.h
-+++ new/src/jdk.jdwp.agent/share/native/libjdwp/util.h
-@@ -35,15 +35,15 @@
- #ifdef DEBUG
- /* Just to make sure these interfaces are not used here. */
- #undef free
-- #define free(p) Do not use this interface.
-+ #define free do_not_use_this_interface_free
- #undef malloc
-- #define malloc(p) Do not use this interface.
-+ #define malloc do_not_use_this_interface_malloc
- #undef calloc
-- #define calloc(p) Do not use this interface.
-+ #define calloc do_not_use_this_interface_calloc
- #undef realloc
-- #define realloc(p) Do not use this interface.
-+ #define realloc do_not_use_this_interface_realloc
- #undef strdup
-- #define strdup(p) Do not use this interface.
-+ #define strdup do_not_use_this_interface_strdup
- #endif
-
- #include "log_messages.h"
---- old/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
-+++ new/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
-@@ -33,6 +33,7 @@
-
- #include <assert.h>
- #include <jni.h>
-+#include <jvm.h>
- #include <alloca.h>
- #include <signal.h>
- #include <string.h>
-@@ -91,6 +92,20 @@
- }
- }
-
-+int get_java_stacksize () {
-+ size_t stacksize;
-+ pthread_attr_t attr;
-+ JDK1_1InitArgs jdk_args;
-+
-+ jdk_args.version = JNI_VERSION_1_1;
-+ JNI_GetDefaultJavaVMInitArgs(&jdk_args);
-+ if (jdk_args.javaStackSize <= 0) {
-+ fprintf(stderr, "Test ERROR. Can't get a valid value for the default stacksize.\n");
-+ exit(7);
-+ }
-+ return jdk_args.javaStackSize;
-+}
-+
- void *run_java_overflow (void *p) {
- JNIEnv *env;
- jclass class_id;
-@@ -254,13 +269,19 @@
- exit(7);
- }
-
-+ int stack_size = get_java_stacksize();
- pthread_t thr;
-+ pthread_attr_t thread_attr;
-
-+ pthread_attr_init(&thread_attr);
-+ pthread_attr_setstacksize(&thread_attr, stack_size);
-+
- if (argc > 1 && strcmp(argv[1], "test_java_overflow") == 0) {
- printf("\nTesting JAVA_OVERFLOW\n");
-
- printf("Testing stack guard page behaviour for other thread\n");
-- pthread_create (&thr, NULL, run_java_overflow, NULL);
-+
-+ pthread_create (&thr, &thread_attr, run_java_overflow, NULL);
- pthread_join (thr, NULL);
-
- printf("Testing stack guard page behaviour for initial thread\n");
-@@ -273,7 +294,7 @@
- printf("\nTesting NATIVE_OVERFLOW\n");
-
- printf("Testing stack guard page behaviour for other thread\n");
-- pthread_create (&thr, NULL, run_native_overflow, NULL);
-+ pthread_create (&thr, &thread_attr, run_native_overflow, NULL);
- pthread_join (thr, NULL);
-
- printf("Testing stack guard page behaviour for initial thread\n");
---- old/test/jdk/java/lang/ProcessBuilder/Basic.java
-+++ new/test/jdk/java/lang/ProcessBuilder/Basic.java
-@@ -396,8 +396,8 @@
- if (failed != 0) throw new Error("null PATH");
- } else if (action.equals("PATH search algorithm")) {
- equal(System.getenv("PATH"), "dir1:dir2:");
-- check(new File("/bin/true").exists());
-- check(new File("/bin/false").exists());
-+ check(new File(TrueExe.path()).exists());
-+ check(new File(FalseExe.path()).exists());
- String[] cmd = {"prog"};
- ProcessBuilder pb1 = new ProcessBuilder(cmd);
- ProcessBuilder pb2 = new ProcessBuilder(cmd);
-@@ -438,13 +438,13 @@
- checkPermissionDenied(pb);
-
- // continue searching if EACCES
-- copy("/bin/true", "dir2/prog");
-+ copy(TrueExe.path(), "dir2/prog");
- equal(run(pb).exitValue(), True.exitValue());
- new File("dir1/prog").delete();
- new File("dir2/prog").delete();
-
- new File("dir2/prog").mkdirs();
-- copy("/bin/true", "dir1/prog");
-+ copy(TrueExe.path(), "dir1/prog");
- equal(run(pb).exitValue(), True.exitValue());
-
- // Check empty PATH component means current directory.
-@@ -460,10 +460,10 @@
- pb.command(command);
- File prog = new File("./prog");
- // "Normal" binaries
-- copy("/bin/true", "./prog");
-+ copy(TrueExe.path(), "./prog");
- equal(run(pb).exitValue(),
- True.exitValue());
-- copy("/bin/false", "./prog");
-+ copy(FalseExe.path(), "./prog");
- equal(run(pb).exitValue(),
- False.exitValue());
- prog.delete();
-@@ -518,12 +518,12 @@
- new File("dir2/prog").delete();
- new File("prog").delete();
- new File("dir3").mkdirs();
-- copy("/bin/true", "dir1/prog");
-- copy("/bin/false", "dir3/prog");
-+ copy(TrueExe.path(), "dir1/prog");
-+ copy(FalseExe.path(), "dir3/prog");
- pb.environment().put("PATH","dir3");
- equal(run(pb).exitValue(), True.exitValue());
-- copy("/bin/true", "dir3/prog");
-- copy("/bin/false", "dir1/prog");
-+ copy(TrueExe.path(), "dir3/prog");
-+ copy(FalseExe.path(), "dir1/prog");
- equal(run(pb).exitValue(), False.exitValue());
-
- } finally {
-@@ -620,6 +620,13 @@
- new File("/bin/false").exists());
- }
-
-+ static class BusyBox {
-+ public static boolean is() { return is; }
-+ private static final boolean is =
-+ (! Windows.is() &&
-+ new File("/bin/busybox").exists());
-+ }
-+
- static class UnicodeOS {
- public static boolean is() { return is; }
- private static final String osName = System.getProperty("os.name");
-@@ -658,6 +665,45 @@
- }
- }
-
-+ // On alpine linux, /bin/true and /bin/false are just links to /bin/busybox.
-+ // Some tests copy /bin/true and /bin/false to files with a different filename.
-+ // However, copying the busbox executable into a file with a different name
-+ // won't result in the expected return codes. As workaround, we create
-+ // executable files that can be copied and produce the exepected return
-+ // values. We use this workaround, if we find the busybox executable.
-+
-+ private static class TrueExe {
-+ public static String path() { return path; }
-+ private static final String path = path0();
-+ private static String path0(){
-+ if (!BusyBox.is()) {
-+ return "/bin/true";
-+ }
-+ else {
-+ File trueExe = new File("true");
-+ setFileContents(trueExe, "#!/bin/true\n");
-+ trueExe.setExecutable(true);
-+ return trueExe.getAbsolutePath();
-+ }
-+ }
-+ }
-+
-+ private static class FalseExe {
-+ public static String path() { return path; }
-+ private static final String path = path0();
-+ private static String path0(){
-+ if (!BusyBox.is()) {
-+ return "/bin/false";
-+ }
-+ else {
-+ File falseExe = new File("false");
-+ setFileContents(falseExe, "#!/bin/false\n");
-+ falseExe.setExecutable(true);
-+ return falseExe.getAbsolutePath();
-+ }
-+ }
-+ }
-+
- static class EnglishUnix {
- private static final Boolean is =
- (! Windows.is() && isEnglish("LANG") && isEnglish("LC_ALL"));
-@@ -1961,7 +2007,7 @@
- //----------------------------------------------------------------
- try {
- new File("suBdiR").mkdirs();
-- copy("/bin/true", "suBdiR/unliKely");
-+ copy(TrueExe.path(), "suBdiR/unliKely");
- final ProcessBuilder pb =
- new ProcessBuilder(new String[]{"unliKely"});
- pb.environment().put("PATH", "suBdiR");
---- old/test/jdk/java/lang/ProcessHandle/InfoTest.java
-+++ new/test/jdk/java/lang/ProcessHandle/InfoTest.java
-@@ -298,7 +298,14 @@
- }
- if (info.command().isPresent()) {
- String command = info.command().get();
-- String expected = Platform.isWindows() ? "sleep.exe" : "sleep";
-+ String expected = "sleep";
-+ if (Platform.isWindows()) {
-+ expected = "sleep.exe";
-+ } else if (new File("/bin/busybox").exists()) {
-+ // With busybox sleep is just a sym link to busybox.
-+ // The busbox executable is seen as ProcessHandle.Info command.
-+ expected = "busybox";
-+ }
- Assert.assertTrue(command.endsWith(expected), "Command: expected: \'" +
- expected + "\', actual: " + command);
-
diff --git a/testing/openjdk13/fix-bootjdk-check.patch b/testing/openjdk13/fix-bootjdk-check.patch
deleted file mode 100644
index c9d91f9d2a2..00000000000
--- a/testing/openjdk13/fix-bootjdk-check.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-The alpine builders print out a warning about sched_getaffinity() not working.
-This causes the version check for the boot jdk to fail.
-Patch the command to determine the version number to ignore any errors and warnings.
-
---- old/make/autoconf/boot-jdk.m4
-+++ new/make/autoconf/boot-jdk.m4
-@@ -74,7 +74,7 @@
- BOOT_JDK_FOUND=no
- else
- # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
-- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
-+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $GREP version | $HEAD -n 1`
- if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
- AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
- AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
diff --git a/testing/openjdk13/make-4.3.patch b/testing/openjdk13/make-4.3.patch
deleted file mode 100644
index 356c6a988a6..00000000000
--- a/testing/openjdk13/make-4.3.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-upstream report: https://bugs.openjdk.java.net/browse/JDK-8237879.
-
-diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk
-index 170c3ed..697f9d2 100644
---- a/make/common/MakeBase.gmk
-+++ b/make/common/MakeBase.gmk
-@@ -532,7 +532,9 @@ DependOnVariableHelper = \
- $(info NewVariable $1: >$(strip $($1))<) \
- $(info OldVariable $1: >$(strip $($1_old))<)) \
- $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \
-- $(call DependOnVariableFileName, $1, $2))) \
-+ $(call DependOnVariableFileName, $1, $2)) \
-+ $(eval $(call DependOnVariableFileName, $1, $2): ) \
-+ ) \
- $(call DependOnVariableFileName, $1, $2) \
- )
-
diff --git a/testing/openjdk13/ppc64le.patch b/testing/openjdk13/ppc64le.patch
deleted file mode 100644
index b4800b62acb..00000000000
--- a/testing/openjdk13/ppc64le.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-The ucontext_t-Type is somewhat different with musl libc.
-Add some precompiler conditions to use the right fields from the struct.
-
---- old/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-@@ -47,6 +47,10 @@
- #include "opto/intrinsicnode.hpp"
- #endif
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-+
- #ifdef PRODUCT
- #define BLOCK_COMMENT(str) // nothing
- #else
-@@ -1290,7 +1294,11 @@
- // the safepoing polling page.
- ucontext_t* uc = (ucontext_t*) ucontext;
- // Set polling address.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- address addr = (address)uc->uc_mcontext.regs->gpr[ra] + (ssize_t)ds;
-+#else // Musl
-+ address addr = (address)uc->uc_mcontext.gp_regs[ra] + (ssize_t) ds;
-+#endif
- if (polling_address_ptr != NULL) {
- *polling_address_ptr = addr;
- }
-@@ -1353,11 +1361,20 @@
- || (is_stdu(instruction) && rs == 1)) {
- int ds = inv_ds_field(instruction);
- // return banged address
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return ds+(address)uc->uc_mcontext.regs->gpr[ra];
-+#else // Musl
-+ return ds+(address)uc->uc_mcontext.gp_regs[ra];
-+#endif
- } else if (is_stdux(instruction) && rs == 1) {
- int rb = inv_rb_field(instruction);
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- address sp = (address)uc->uc_mcontext.regs->gpr[1];
- long rb_val = (long)uc->uc_mcontext.regs->gpr[rb];
-+#else // Musl
-+ address sp = (address)uc->uc_mcontext.gp_regs[1];
-+ long rb_val = (long)uc->uc_mcontext.gp_regs[rb];
-+#endif
- return ra != 1 || rb_val >= 0 ? NULL // not a stack bang
- : sp + rb_val; // banged address
- }
---- old/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-@@ -50,6 +50,10 @@
- #endif
- #endif
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-+
- bool VM_Version::_is_determine_features_test_running = false;
- uint64_t VM_Version::_dscr_val = 0;
-
-@@ -892,7 +896,7 @@
- unsigned long auxv = getauxval(AT_HWCAP2);
-
- if (auxv & PPC_FEATURE2_HTM_NOSC) {
-- if (auxv & PPC_FEATURE2_HAS_HTM) {
-+ if (auxv & PPC_FEATURE2_HTM) {
- // TM on POWER8 and POWER9 in compat mode (VM) is supported by the JVM.
- // TM on POWER9 DD2.1 NV (baremetal) is not supported by the JVM (TM on
- // POWER9 DD2.1 NV has a few issues that need a couple of firmware
---- old/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-@@ -76,7 +76,11 @@
- # include <poll.h>
- # include <ucontext.h>
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-
-+
- address os::current_stack_pointer() {
- intptr_t* csp;
-
-@@ -108,24 +112,42 @@
- // - if uc was filled by getcontext(), it is undefined - getcontext() does not fill
- // it because the volatile registers are not needed to make setcontext() work.
- // Hopefully it was zero'd out beforehand.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_get_pc in sigaction context");
- return (address)uc->uc_mcontext.regs->nip;
-+#else // Musl
-+ guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_get_pc in sigaction context");
-+ return (address)uc->uc_mcontext.gp_regs[PT_NIP];
-+#endif
- }
-
- // modify PC in ucontext.
- // Note: Only use this for an ucontext handed down to a signal handler. See comment
- // in ucontext_get_pc.
- void os::Linux::ucontext_set_pc(ucontext_t * uc, address pc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_set_pc in sigaction context");
- uc->uc_mcontext.regs->nip = (unsigned long)pc;
-+#else // Musl
-+ guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_set_pc in sigaction context");
-+ uc->uc_mcontext.gp_regs[PT_NIP] = (unsigned long)pc;
-+#endif
- }
-
- static address ucontext_get_lr(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return (address)uc->uc_mcontext.regs->link;
-+#else // Musl
-+ return (address)uc->uc_mcontext.gp_regs[PT_LNK];
-+#endif
- }
-
- intptr_t* os::Linux::ucontext_get_sp(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return (intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/];
-+#else // Musl
-+ return (intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/];
-+#endif
- }
-
- intptr_t* os::Linux::ucontext_get_fp(const ucontext_t * uc) {
-@@ -133,7 +155,11 @@
- }
-
- static unsigned long ucontext_get_trap(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return uc->uc_mcontext.regs->trap;
-+#else // Musl
-+ return uc->uc_mcontext.gp_regs[PT_TRAP];
-+#endif
- }
-
- ExtendedPC os::fetch_frame_from_context(const void* ucVoid,
-@@ -259,7 +285,11 @@
- // 3.2.1 "Machine State Register"), however note that ISA notation for bit
- // numbering is MSB 0, so for normal bit numbering (LSB 0) they come to be
- // bits 33 and 34. It's not related to endianness, just a notation matter.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- if (second_uc->uc_mcontext.regs->msr & 0x600000000) {
-+#else // Musl
-+ if (second_uc->uc_mcontext.gp_regs[PT_MSR] & 0x600000000) {
-+#endif
- if (TraceTraps) {
- tty->print_cr("caught signal in transaction, "
- "ignoring to jump to abort handler");
-@@ -570,6 +600,7 @@
- const ucontext_t* uc = (const ucontext_t*)context;
-
- st->print_cr("Registers:");
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->nip);
- st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->link);
- st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.regs->ctr);
-@@ -578,8 +609,18 @@
- st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.regs->gpr[i]);
- if (i % 3 == 2) st->cr();
- }
-+#else // Musl
-+ st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[PT_NIP]);
-+ st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[PT_LNK]);
-+ st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[PT_CTR]);
- st->cr();
-+ for (int i = 0; i < 32; i++) {
-+ st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.gp_regs[i]);
-+ if (i % 3 == 2) st->cr();
-+ }
-+#endif
- st->cr();
-+ st->cr();
-
- intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
- st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
-@@ -602,12 +643,22 @@
- st->print_cr("Register to memory mapping:");
- st->cr();
-
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->nip);
- st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->link);
- st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->ctr);
-+#else // Musl
-+ st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[PT_NIP]);
-+ st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[PT_LNK]);
-+ st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[PT_CTR]);
-+#endif
- for (int i = 0; i < 32; i++) {
- st->print("r%-2d=", i);
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- print_location(st, uc->uc_mcontext.regs->gpr[i]);
-+#else // Musl
-+ print_location(st, uc->uc_mcontext.gp_regs[i]);
-+#endif
- }
- st->cr();
- }
---- old/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-@@ -27,6 +27,10 @@
- #include "runtime/frame.inline.hpp"
- #include "runtime/thread.hpp"
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-+
- frame JavaThread::pd_last_frame() {
- assert(has_last_Java_frame(), "must have last_Java_sp() when suspended");
-
-@@ -56,8 +60,13 @@
- // if we were running Java code when SIGPROF came in.
- if (isInJava) {
- ucontext_t* uc = (ucontext_t*) ucontext;
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- frame ret_frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/],
- (address)uc->uc_mcontext.regs->nip);
-+#else // Musl
-+ frame ret_frame((intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/],
-+ (address)uc->uc_mcontext.gp_regs[PT_NIP]);
-+#endif
-
- if (ret_frame.pc() == NULL) {
- // ucontext wasn't useful
-@@ -69,7 +78,11 @@
- if (MetaspaceObj::is_valid((Method*)(istate->method)) == false) {
- return false;
- }
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
-+#else // Musl
-+ uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
-+#endif
- uint64_t istate_bcp = istate->bcp;
- uint64_t code_start = (uint64_t)(((Method*)(istate->method))->code_base());
- uint64_t code_end = (uint64_t)(((Method*)istate->method)->code_base() + ((Method*)istate->method)->code_size());
diff --git a/testing/openjdk14/APKBUILD b/testing/openjdk14/APKBUILD
deleted file mode 100644
index 861c79d75ea..00000000000
--- a/testing/openjdk14/APKBUILD
+++ /dev/null
@@ -1,295 +0,0 @@
-# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=openjdk14
-pkgver=14.0.0_p36
-#_pkgver=${pkgver/_p8/-ga}
-_pkgver=14+36
-pkgrel=0
-pkgdesc="Oracle OpenJDK 14"
-url="https://hg.openjdk.java.net/jdk-updates/jdk14u"
-arch="all !x86 !armhf !armv7 !mips !mips64" # oracle dropped support for 32 bit
-license="GPL-2.0-with-classpath-exception"
-makedepends="autoconf
- bash
- gawk
- grep
- make
- openjdk13-jdk
- zip
- alsa-lib-dev
- cups-dev
- elfutils-dev
- fontconfig-dev
- freetype-dev
- giflib-dev
- lcms2-dev
- libexecinfo-dev
- libffi-dev
- libjpeg-turbo-dev
- libx11-dev
- libxext-dev
- libxrandr-dev
- libxrender-dev
- libxt-dev
- libxtst-dev
- linux-headers
- zlib-dev"
-depends="$pkgname-jmods $pkgname-demos $pkgname-doc $pkgname-jdk" # for the virtual openjdk14 package
-subpackages="$pkgname-jmods:_jmods:noarch
- $pkgname-demos:_demos:noarch
- $pkgname-doc:_doc:noarch
- $pkgname-jre:_jre
- $pkgname-src:_src:noarch
- $pkgname-jre-headless:_jre_headless
- $pkgname-jdk:_jdk"
-source="jdk-$_pkgver.tar.gz::https://github.com/openjdk/jdk14u/archive/jdk-$_pkgver.tar.gz
-
- build.patch
- aarch64.patch
- ppc64le.patch
- make-4.3.patch
- fix-bootjdk-check.patch
-
- HelloWorld.java
- TestECDSA.java
- TestCryptoLevel.java
- Alpine_Bug_10126.java
-"
-builddir="$srcdir/jdk14u-jdk-${_pkgver/+/-}"
-
-_java_home="/usr/lib/jvm/java-14-openjdk"
-
-ldpath="$_java_home/lib:$_java_home/lib/server"
-sonameprefix="$pkgname:"
-
-# enable running the JTReg tests in check?
-# see comment in that function for explanation
-_run_jtreg=${_run_jtreg:-0}
-if [ $_run_jtreg -ne 0 ]; then
- makedepends="$makedepends java-jtreg"
- checkdepends="$checkdepends ttf-freefont xvfb-run"
-fi
-
-
-prepare() {
- default_prepare
-
- # update autoconf files to detect alpine
- update_config_sub
- update_config_guess
-
- # remove not compilable module (hotspot jdk.hotspot.agent)
- # this needs libthread_db which is only provided by glibc
- #
- # haven't found any way to disable this module so just remove it.
- rm -r src/jdk.hotspot.agent
-}
-
-build() {
- if [ $_run_jtreg -ne 0 ]; then
- _with_jtreg="--with-jtreg=/usr/share/java/jtreg"
- else
- _with_jtreg="--with-jtreg=no"
- fi
-
- # CFLAGS, CXXFLAGS and LDFLAGS are ignored as shown by a warning
- # in the output of ./configure unless used like such:
- # --with-extra-cflags="$CFLAGS"
- # --with-extra-cxxflags="$CXXFLAGS"
- # --with-extra-ldflags="$LDFLAGS"
- # See also paragraph "Configure Control Variables" from "common/doc/building.md"
- # shellcheck disable=2097 disable=2098
- CFLAGS='' CXXFLAGS='' LDFLAGS='' \
- bash ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --target=$CTARGET \
- --prefix="$_java_home" \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-extra-cflags="$CFLAGS" \
- --with-extra-cxxflags="$CXXFLAGS" \
- --with-extra-ldflags="$LDFLAGS" \
- --with-zlib=system \
- --with-libjpeg=system \
- --with-giflib=system \
- --with-libpng=system \
- --with-lcms=system \
- --with-jobs=${JOBS:-4} \
- --with-test-jobs=${JOBS:-4} \
- --with-native-debug-symbols=none \
- $_with_jtreg \
- --disable-warnings-as-errors \
- --disable-precompiled-headers \
- --enable-dtrace=no \
- --with-jvm-variants=server \
- --with-debug-level=release \
- --with-version-pre= \
- --with-version-opt="alpine-r$pkgrel" \
- --with-version-build=${_pkgver#*+} \
- --with-vendor-name="Alpine" \
- --with-vendor-url="https://alpinelinux.org/" \
- --with-vendor-bug-url="https://gitlab.alpinelinux.org/alpine/aports/issues" \
- --with-vendor-vm-bug-url="https://gitlab.alpinelinux.org/alpine/aports/issues"
- MAKEFLAGS='' make jdk-image
-}
-
-check() {
- local _java_bin="./build/linux-*-server-release/images/jdk/bin"
-
- # 1) compile and run a simple hello world
- $_java_bin/javac -d . "$srcdir"/HelloWorld.java
- $_java_bin/java HelloWorld
-
- # 2) compile and run a testcase for unlimited policy
- $_java_bin/javac -d . "$srcdir"/TestCryptoLevel.java
- $_java_bin/java -cp . --add-opens java.base/javax.crypto=ALL-UNNAMED TestCryptoLevel
-
- # 3) compile and run a testcase for ECDSA signatures
- $_java_bin/javac -d . "$srcdir"/TestECDSA.java
- $_java_bin/java TestECDSA
-
- # 4) compile and run testcase for bug 10126
- $_java_bin/javac -d . "$srcdir"/Alpine_Bug_10126.java
- $_java_bin/java Alpine_Bug_10126
-
- # run the gtest unittest suites
- # they don't take long, DO NOT DISABLE THEM!
- MAKEFLAGS='' make test-hotspot-gtest
-
- # The jtreg tests take very, very long to finish and show some failures (9 - 12 on my machine, varying between runs)
- # I think these are not critical and can be safely ignored.
- # As the tests take too long, they are disabled by default.
- # When updating this aport please let them run at least once on your machine to see if the failure count changes.
- if [ $_run_jtreg -ne 0 ]; then
- _logfile=$( mktemp -p "$builddir" )
- MAKEFLAGS='' xvfb-run make \
- run-test-tier1 \
- run-test-tier2 \
- run-test-tier3 \
- | tee "$_logfile"
- msg "---------------------------------------"
- msg "The build log can be found at $_logfile"
- # abort the build so you may take a look at the logfile
- false
- return 1
- fi
-}
-
-package() {
- mkdir -p "$pkgdir/$_java_home"
- cp -r build/linux-*-server-release/images/jdk/* "$pkgdir/$_java_home"
-}
-
-_jmods() {
- pkgdesc="Oracle OpenJDK 14 (jmods)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/jmods" "$_toroot"
-}
-
-_demos() {
- pkgdesc="Oracle OpenJDK 14 (demos)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/demo" "$_toroot"
-}
-
-_doc() {
- pkgdesc="Oracle OpenJDK 14 (Documentation)"
- depends=""
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/man" "$_toroot"
-}
-
-_jre() {
- pkgdesc="Oracle OpenJDK 14 (JRE)"
- depends="$pkgname-jre-headless"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot/lib"
- mv "$_fromroot/lib/libawt_xawt.so" \
- "$_fromroot/lib/libfontmanager.so" \
- "$_fromroot/lib/libjavajpeg.so" \
- "$_fromroot/lib/libjawt.so" \
- "$_fromroot/lib/libjsound.so" \
- "$_fromroot/lib/liblcms.so" \
- "$_fromroot/lib/libsplashscreen.so" \
- "$_toroot/lib"
-}
-
-_src() {
- pkgdesc="Oracle OpenJDK 14 (sources)"
- depends="$pkgname-jre-headless"
- mkdir -p "$subpkgdir/$_java_home"/lib
- mv "$pkgdir"/$_java_home/lib/src.zip \
- "$subpkgdir"/$_java_home/lib/
-}
-
-_jre_headless() {
- pkgdesc="Oracle OpenJDK 14 (JRE headless)"
- depends="java-common java-cacerts"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/lib" "$_toroot"
-
- mkdir -p "$_toroot/bin"
- for i in java \
- jjs \
- keytool \
- rmid \
- rmiregistry; do
- mv "$_fromroot/bin/$i" "$_toroot/bin/$i"
- done
-
- mv "$_fromroot/legal" "$_toroot"
- mv "$_fromroot/conf" "$_toroot"
- mv "$_fromroot/release" "$_toroot"
- cp "$builddir/ASSEMBLY_EXCEPTION" "$_toroot"
- cp "$builddir/LICENSE" "$_toroot"
- cp "$builddir/README" "$_toroot"
-
- # symlink to shared cacerts store
- rm "$_toroot/lib/security/cacerts"
- ln -sf /etc/ssl/certs/java/cacerts \
- "$_toroot/lib/security/cacerts"
-
- # symlink for java-common to work (expects jre in $_java_home/jre)
- ln -sf . "$_toroot/jre"
-}
-
-_jdk() {
- pkgdesc="Oracle OpenJDK 14 (JDK)"
- depends="$pkgname-jre"
- _fromroot="$pkgdir/$_java_home"
- _toroot="$subpkgdir/$_java_home"
-
- mkdir -p "$_toroot"
- mv "$_fromroot/bin" "$_toroot"
- mv "$_fromroot/include" "$_toroot"
-}
-
-sha512sums="5d6c8697a156d807e03ef2185e9361dc1789c322dd9143bc2448a28aa2e5cbd74a09a67f52c45abbef186f09453ce9429c9202099c1adac4c21555f4a57a50b0 jdk-14+36.tar.gz
-365baa5a2bc9c6414eb4d22aaaefe8132b4e9aca521617a8fcefe5d7dcac68b7081d624ec518247488b8c69f35d32d25369f2499c338fe49dddfe386188dae93 build.patch
-97c5bdc3933bd7656a0d61d3cce9b1bf78d097712ee42776c48f659b06f1164c7098e0276c8d3ef171126ffb15a0745119105eac498e8b43307c779dc09bae02 aarch64.patch
-d1289ffbc0a631f15397f8fad9e2a07f0f4dde44ddd93c878934a93084609d136fbce1c39acaa35f3ca5f0979e7c0ce5ead6994e71ebf90fe1cd31b024e5c708 ppc64le.patch
-b8b420b9e73da54decbec04fab9ac1c79f3c01ef2f9af132cf98a008f9ff6544e67d98c109f8c48f224df9581a8b40399db25099766d9f3f9b11dafe5114c545 make-4.3.patch
-e54c69db6e97c9d7057275f6749565a748f42dadb397b2f3975d99608c4037ad93c84cf828c7e2955b1b4f1899dcc25069c8c6d675f1e963adf3f1223a47d56c fix-bootjdk-check.patch
-d1767dddd8e0956e25c0f77ed45c6fc86a1191bae1704a6dc33be490fd20eaa50461fe5c2a3349512059d555651e2eb41437dd3c1096c351e8ee68b4534a2579 HelloWorld.java
-27e91edef89d26c0c5b9a813e2045f8d2b348745a506ae37b34b660fa7093da9a4e0e676ea41dc4a5c901bce02e5304d95e90f68d6c99cbf461b2da40a7a9853 TestECDSA.java
-b02dff8d549f88317bb4c741a9e269e8d59eef990197d085388fc49c7423a4eb9367dbe1e02bffb10e7862f5980301eb58d4494e177d0e8f60af6b05c7fbbe60 TestCryptoLevel.java
-fadd06c034614a25537246dfd66a4645c2a4c673f16b5d3e8abdd89c81baf04bd2797b26b0e589ec11ee08b90783b232a6d06c72589d211a5e10b8638a627911 Alpine_Bug_10126.java"
diff --git a/testing/openjdk14/Alpine_Bug_10126.java b/testing/openjdk14/Alpine_Bug_10126.java
deleted file mode 100644
index 76574a15098..00000000000
--- a/testing/openjdk14/Alpine_Bug_10126.java
+++ /dev/null
@@ -1,13 +0,0 @@
-public class Alpine_Bug_10126 {
- public static void main(String[] args) throws Exception {
- try (java.net.Socket sock = javax.net.ssl.SSLSocketFactory.getDefault().createSocket("bugs.alpinelinux.org", 443);
- java.io.InputStream in = sock.getInputStream();
- java.io.OutputStream out = sock.getOutputStream()) {
- out.write("GET / HTTP/1.0\n\nHost: gitlab.alpinelinux.org\n\nConnection: close\n\n\n\n".getBytes());
- out.flush();
- while (in.read(new byte[1024]) != -1) ;
- }
- System.out.println("Secured connection performed successfully");
- }
-}
-
diff --git a/testing/openjdk14/HelloWorld.java b/testing/openjdk14/HelloWorld.java
deleted file mode 100644
index 0be813a1901..00000000000
--- a/testing/openjdk14/HelloWorld.java
+++ /dev/null
@@ -1,3 +0,0 @@
-public class HelloWorld {
- public static void main(String[] args) { System.out.println("Hello World!"); }
-}
diff --git a/testing/openjdk14/TestCryptoLevel.java b/testing/openjdk14/TestCryptoLevel.java
deleted file mode 100644
index 3ed6c8dc15c..00000000000
--- a/testing/openjdk14/TestCryptoLevel.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* TestCryptoLevel -- Ensure unlimited crypto policy is in use.
- Copyright (C) 2012 Red Hat, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
-import java.security.Permission;
-import java.security.PermissionCollection;
-
-public class TestCryptoLevel
-{
- public static void main(String[] args)
- throws NoSuchFieldException, ClassNotFoundException,
- IllegalAccessException, InvocationTargetException
- {
- Class<?> cls = null;
- Method def = null, exempt = null;
-
- try
- {
- cls = Class.forName("javax.crypto.JceSecurity");
- }
- catch (ClassNotFoundException ex)
- {
- System.err.println("Running a non-Sun JDK.");
- System.exit(0);
- }
- try
- {
- def = cls.getDeclaredMethod("getDefaultPolicy");
- exempt = cls.getDeclaredMethod("getExemptPolicy");
- }
- catch (NoSuchMethodException ex)
- {
- System.err.println("Running IcedTea with the original crypto patch.");
- System.exit(0);
- }
- def.setAccessible(true);
- exempt.setAccessible(true);
- PermissionCollection defPerms = (PermissionCollection) def.invoke(null);
- PermissionCollection exemptPerms = (PermissionCollection) exempt.invoke(null);
- Class<?> apCls = Class.forName("javax.crypto.CryptoAllPermission");
- Field apField = apCls.getDeclaredField("INSTANCE");
- apField.setAccessible(true);
- Permission allPerms = (Permission) apField.get(null);
- if (defPerms.implies(allPerms) && (exemptPerms == null || exemptPerms.implies(allPerms)))
- {
- System.err.println("Running with the unlimited policy.");
- System.exit(0);
- }
- else
- {
- System.err.println("WARNING: Running with a restricted crypto policy.");
- System.exit(-1);
- }
- }
-}
diff --git a/testing/openjdk14/TestECDSA.java b/testing/openjdk14/TestECDSA.java
deleted file mode 100644
index abd81d1cedf..00000000000
--- a/testing/openjdk14/TestECDSA.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/* TestECDSA -- Ensure ECDSA signatures are working.
- Copyright (C) 2016 Red Hat, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-import java.math.BigInteger;
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.Signature;
-
-/**
- * @test
- */
-public class TestECDSA {
-
- public static void main(String[] args) throws Exception {
- KeyPairGenerator keyGen = KeyPairGenerator.getInstance("EC");
- KeyPair key = keyGen.generateKeyPair();
-
- byte[] data = "This is a string to sign".getBytes("UTF-8");
-
- Signature dsa = Signature.getInstance("NONEwithECDSA");
- dsa.initSign(key.getPrivate());
- dsa.update(data);
- byte[] sig = dsa.sign();
- System.out.println("Signature: " + new BigInteger(1, sig).toString(16));
-
- Signature dsaCheck = Signature.getInstance("NONEwithECDSA");
- dsaCheck.initVerify(key.getPublic());
- dsaCheck.update(data);
- boolean success = dsaCheck.verify(sig);
- if (!success) {
- throw new RuntimeException("Test failed. Signature verification error");
- }
- System.out.println("Test passed.");
- }
-}
diff --git a/testing/openjdk14/aarch64.patch b/testing/openjdk14/aarch64.patch
deleted file mode 100644
index cc869aaed6c..00000000000
--- a/testing/openjdk14/aarch64.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- old/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
-+++ new/src/hotspot/os_cpu/linux_aarch64/os_linux_aarch64.cpp
-@@ -74,7 +74,6 @@
- # include <pwd.h>
- # include <poll.h>
- # include <ucontext.h>
--# include <fpu_control.h>
-
- #define REG_FP 29
- #define REG_LR 30
diff --git a/testing/openjdk14/build.patch b/testing/openjdk14/build.patch
deleted file mode 100644
index fccdafa5e63..00000000000
--- a/testing/openjdk14/build.patch
+++ /dev/null
@@ -1,517 +0,0 @@
---- old/make/ReleaseFile.gmk
-+++ new/make/ReleaseFile.gmk
-@@ -53,6 +53,7 @@
- $(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
- $(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
- $(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
-+ $(call info-file-item, "LIBC", "musl")
- endef
-
- # Param 1 - The file containing the MODULES list
---- old/make/hotspot/lib/CompileJvm.gmk
-+++ new/make/hotspot/lib/CompileJvm.gmk
-@@ -73,6 +73,7 @@
- -DHOTSPOT_BUILD_USER='"$(USERNAME)"' \
- -DHOTSPOT_VM_DISTRO='"$(HOTSPOT_VM_DISTRO)"' \
- -DCPU='"$(OPENJDK_TARGET_CPU_VM_VERSION)"' \
-+ -DLIBC='"musl"' \
- #
-
- ################################################################################
---- old/make/lib/CoreLibraries.gmk
-+++ new/make/lib/CoreLibraries.gmk
-@@ -190,6 +190,7 @@
- endif
-
- LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
-+LIBJLI_CFLAGS += -DLIBC=\"musl\"
-
- ifneq ($(USE_EXTERNAL_LIBZ), true)
- LIBJLI_EXTRA_FILES += \
---- old/src/hotspot/os/linux/os_linux.cpp
-+++ new/src/hotspot/os/linux/os_linux.cpp
-@@ -102,7 +102,6 @@
- # include <string.h>
- # include <syscall.h>
- # include <sys/sysinfo.h>
--# include <gnu/libc-version.h>
- # include <sys/ipc.h>
- # include <sys/shm.h>
- # include <link.h>
-@@ -597,6 +596,11 @@
- // detecting pthread library
-
- void os::Linux::libpthread_init() {
-+#if !defined(__GLIBC__) && !defined(__UCLIBC__)
-+ // Hard code Alpine Linux supported musl compatible settings
-+ os::Linux::set_glibc_version("glibc 2.9");
-+ os::Linux::set_libpthread_version("NPTL");
-+#else
- // Save glibc and pthread version strings.
- #if !defined(_CS_GNU_LIBC_VERSION) || \
- !defined(_CS_GNU_LIBPTHREAD_VERSION)
-@@ -614,6 +618,7 @@
- str = (char *)malloc(n, mtInternal);
- confstr(_CS_GNU_LIBPTHREAD_VERSION, str, n);
- os::Linux::set_libpthread_version(str);
-+#endif
- }
-
- /////////////////////////////////////////////////////////////////////////////
-@@ -3117,20 +3122,36 @@
- extern "C" JNIEXPORT void numa_warn(int number, char *where, ...) { }
- extern "C" JNIEXPORT void numa_error(char *where) { }
-
-+static void* dlvsym_if_available(void* handle, const char* name, const char* version) {
-+ typedef void* (*dlvsym_func_type)(void* handle, const char* name, const char* version);
-+ static dlvsym_func_type dlvsym_func;
-+ static bool initialized = false;
-+
-+ if (!initialized) {
-+ dlvsym_func = (dlvsym_func_type)dlsym(RTLD_NEXT, "dlvsym");
-+ initialized = true;
-+ }
-+
-+ if (dlvsym_func != NULL) {
-+ void *f = dlvsym_func(handle, name, version);
-+ if (f != NULL) {
-+ return f;
-+ }
-+ }
-+
-+ return dlsym(handle, name);
-+}
-+
- // Handle request to load libnuma symbol version 1.1 (API v1). If it fails
- // load symbol from base version instead.
- void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
-- void *f = dlvsym(handle, name, "libnuma_1.1");
-- if (f == NULL) {
-- f = dlsym(handle, name);
-- }
-- return f;
-+ return dlvsym_if_available(handle, name, "libnuma_1.1");
- }
-
- // Handle request to load libnuma symbol version 1.2 (API v2) only.
- // Return NULL if the symbol is not defined in this particular version.
- void* os::Linux::libnuma_v2_dlsym(void* handle, const char* name) {
-- return dlvsym(handle, name, "libnuma_1.2");
-+ return dlvsym_if_available(handle, name, "libnuma_1.2");
- }
-
- bool os::Linux::libnuma_init() {
---- old/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
-+++ new/src/hotspot/os_cpu/linux_x86/os_linux_x86.cpp
-@@ -75,9 +75,6 @@
- # include <pwd.h>
- # include <poll.h>
- # include <ucontext.h>
--#ifndef AMD64
--# include <fpu_control.h>
--#endif
-
- #ifdef AMD64
- #define REG_SP REG_RSP
---- old/src/hotspot/share/gc/shared/genCollectedHeap.cpp
-+++ new/src/hotspot/share/gc/shared/genCollectedHeap.cpp
-@@ -1116,7 +1116,7 @@
- static ScratchBlock *removeSmallestScratch(ScratchBlock **prev_ptr) {
- bool first = true;
- size_t min_size = 0; // "first" makes this conceptually infinite.
-- ScratchBlock **smallest_ptr, *smallest;
-+ ScratchBlock **smallest_ptr = NULL, *smallest;
- ScratchBlock *cur = *prev_ptr;
- while (cur) {
- assert(*prev_ptr == cur, "just checking");
---- old/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
-+++ new/src/hotspot/share/utilities/globalDefinitions_gcc.hpp
-@@ -204,7 +204,7 @@
- #elif defined(__APPLE__)
- inline int g_isnan(double f) { return isnan(f); }
- #elif defined(LINUX) || defined(_ALLBSD_SOURCE)
--inline int g_isnan(float f) { return isnanf(f); }
-+inline int g_isnan(float f) { return isnan(f); }
- inline int g_isnan(double f) { return isnan(f); }
- #else
- #error "missing platform-specific definition here"
---- old/src/java.base/linux/native/libnet/linux_close.c
-+++ new/src/java.base/linux/native/libnet/linux_close.c
-@@ -60,7 +60,7 @@
- /*
- * Signal to unblock thread
- */
--static int sigWakeup = (__SIGRTMAX - 2);
-+static int sigWakeup;
-
- /*
- * fdTable holds one entry per file descriptor, up to a certain
-@@ -149,6 +149,7 @@
- /*
- * Setup the signal handler
- */
-+ sigWakeup = SIGRTMAX - 2;
- sa.sa_handler = sig_wakeup;
- sa.sa_flags = 0;
- sigemptyset(&sa.sa_mask);
---- old/src/java.base/unix/native/libjava/childproc.c
-+++ new/src/java.base/unix/native/libjava/childproc.c
-@@ -235,7 +235,13 @@
- {
- if (envp == NULL || (char **) envp == environ) {
- execvp(file, (char **) argv);
-- return;
-+ // ENOEXEC indicates that the file header was not recognized. The musl C
-+ // library does not implement the fallback to /bin/sh for that case, so fall
-+ // through to the code below which implements that fallback using
-+ // execve_with_shell_fallback.
-+ if (errno != ENOEXEC) {
-+ return;
-+ }
- }
-
- if (*file == '\0') {
---- old/src/java.base/unix/native/libjava/jdk_util_md.h
-+++ new/src/java.base/unix/native/libjava/jdk_util_md.h
-@@ -37,7 +37,7 @@
- #define ISNAND(d) isnan(d)
- #elif defined(__linux__) || defined(_ALLBSD_SOURCE)
- #include <math.h>
--#define ISNANF(f) isnanf(f)
-+#define ISNANF(f) isnan(f)
- #define ISNAND(d) isnan(d)
- #elif defined(_AIX)
- #include <math.h>
---- old/src/java.base/unix/native/libjli/java_md_solinux.c
-+++ new/src/java.base/unix/native/libjli/java_md_solinux.c
-@@ -236,6 +236,39 @@
- char *dmllp = NULL;
- char *p; /* a utility pointer */
-
-+#ifdef __linux
-+#ifndef LIBC
-+#error "LIBC not set"
-+#endif
-+
-+ if (strcmp(LIBC, "musl") == 0) {
-+ /*
-+ * The musl library loader requires LD_LIBRARY_PATH to be set in
-+ * order to correctly resolve the dependency libjava.so has on libjvm.so.
-+ *
-+ * Specifically, it differs from glibc in the sense that even if
-+ * libjvm.so has already been loaded it will not be considered a
-+ * candidate for resolving the dependency unless the *full* path
-+ * of the already loaded library matches the dependency being loaded.
-+ *
-+ * libjvm.so is being loaded by the launcher using a long path to
-+ * dlopen, not just the basename of the library. Typically this
-+ * is something like "../lib/server/libjvm.so". However, if/when
-+ * libjvm.so later tries to dlopen libjava.so (which it does in
-+ * order to get access to a few functions implemented in
-+ * libjava.so) the musl loader will, as part of loading
-+ * dependent libraries, try to load libjvm.so using only its
-+ * basename "libjvm.so". Since this does not match the longer
-+ * path path it was first loaded with, the already loaded
-+ * library is not considered a candidate, and the loader will
-+ * instead look for libjvm.so elsewhere. If it's not in
-+ * LD_LIBRARY_PATH the dependency load will fail, and libjava.so
-+ * will therefore fail as well.
-+ */
-+ return JNI_TRUE;
-+ }
-+#endif
-+
- #ifdef AIX
- /* We always have to set the LIBPATH on AIX because ld doesn't support $ORIGIN. */
- return JNI_TRUE;
---- old/src/java.base/unix/native/libnio/ch/NativeThread.c
-+++ new/src/java.base/unix/native/libnio/ch/NativeThread.c
-@@ -36,7 +36,7 @@
- #ifdef __linux__
- #include <pthread.h>
- /* Also defined in net/linux_close.c */
-- #define INTERRUPT_SIGNAL (__SIGRTMAX - 2)
-+ #define INTERRUPT_SIGNAL (SIGRTMAX - 2)
- #elif defined(_AIX)
- #include <pthread.h>
- /* Also defined in net/aix_close.c */
---- old/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
-+++ new/src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
-@@ -27,9 +27,6 @@
- #include <X11/Xutil.h>
- #include <X11/Xos.h>
- #include <X11/Xatom.h>
--#ifdef __linux__
--#include <execinfo.h>
--#endif
-
- #include <jvm.h>
- #include <jni.h>
-@@ -779,26 +776,6 @@
- }
- return ret;
- }
--
--#ifdef __linux__
--void print_stack(void)
--{
-- void *array[10];
-- size_t size;
-- char **strings;
-- size_t i;
--
-- size = backtrace (array, 10);
-- strings = backtrace_symbols (array, size);
--
-- fprintf (stderr, "Obtained %zd stack frames.\n", size);
--
-- for (i = 0; i < size; i++)
-- fprintf (stderr, "%s\n", strings[i]);
--
-- free (strings);
--}
--#endif
-
- Window get_xawt_root_shell(JNIEnv *env) {
- static jclass classXRootWindow = NULL;
---- old/src/jdk.incubator.jpackage/unix/native/libapplauncher/PosixPlatform.cpp
-+++ new/src/jdk.incubator.jpackage/unix/native/libapplauncher/PosixPlatform.cpp
-@@ -33,7 +33,7 @@
- #include <stdbool.h>
- #include <sys/types.h>
- #include <unistd.h>
--#include <sys/sysctl.h>
-+#include <linux/sysctl.h>
- #include <sys/file.h>
- #include <sys/stat.h>
- #include <sys/wait.h>
---- old/src/jdk.jdwp.agent/share/native/libjdwp/util.h
-+++ new/src/jdk.jdwp.agent/share/native/libjdwp/util.h
-@@ -35,15 +35,15 @@
- #ifdef DEBUG
- /* Just to make sure these interfaces are not used here. */
- #undef free
-- #define free(p) Do not use this interface.
-+ #define free do_not_use_this_interface_free
- #undef malloc
-- #define malloc(p) Do not use this interface.
-+ #define malloc do_not_use_this_interface_malloc
- #undef calloc
-- #define calloc(p) Do not use this interface.
-+ #define calloc do_not_use_this_interface_calloc
- #undef realloc
-- #define realloc(p) Do not use this interface.
-+ #define realloc do_not_use_this_interface_realloc
- #undef strdup
-- #define strdup(p) Do not use this interface.
-+ #define strdup do_not_use_this_interface_strdup
- #endif
-
- #include "log_messages.h"
---- old/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
-+++ new/test/hotspot/jtreg/runtime/StackGuardPages/exeinvoke.c
-@@ -33,6 +33,7 @@
-
- #include <assert.h>
- #include <jni.h>
-+#include <jvm.h>
- #include <alloca.h>
- #include <signal.h>
- #include <string.h>
-@@ -91,6 +92,20 @@
- }
- }
-
-+int get_java_stacksize () {
-+ size_t stacksize;
-+ pthread_attr_t attr;
-+ JDK1_1InitArgs jdk_args;
-+
-+ jdk_args.version = JNI_VERSION_1_1;
-+ JNI_GetDefaultJavaVMInitArgs(&jdk_args);
-+ if (jdk_args.javaStackSize <= 0) {
-+ fprintf(stderr, "Test ERROR. Can't get a valid value for the default stacksize.\n");
-+ exit(7);
-+ }
-+ return jdk_args.javaStackSize;
-+}
-+
- void *run_java_overflow (void *p) {
- JNIEnv *env;
- jclass class_id;
-@@ -254,13 +269,19 @@
- exit(7);
- }
-
-+ int stack_size = get_java_stacksize();
- pthread_t thr;
-+ pthread_attr_t thread_attr;
-
-+ pthread_attr_init(&thread_attr);
-+ pthread_attr_setstacksize(&thread_attr, stack_size);
-+
- if (argc > 1 && strcmp(argv[1], "test_java_overflow") == 0) {
- printf("\nTesting JAVA_OVERFLOW\n");
-
- printf("Testing stack guard page behaviour for other thread\n");
-- pthread_create (&thr, NULL, run_java_overflow, NULL);
-+
-+ pthread_create (&thr, &thread_attr, run_java_overflow, NULL);
- pthread_join (thr, NULL);
-
- printf("Testing stack guard page behaviour for initial thread\n");
-@@ -273,7 +294,7 @@
- printf("\nTesting NATIVE_OVERFLOW\n");
-
- printf("Testing stack guard page behaviour for other thread\n");
-- pthread_create (&thr, NULL, run_native_overflow, NULL);
-+ pthread_create (&thr, &thread_attr, run_native_overflow, NULL);
- pthread_join (thr, NULL);
-
- printf("Testing stack guard page behaviour for initial thread\n");
---- old/test/jdk/java/lang/ProcessBuilder/Basic.java
-+++ new/test/jdk/java/lang/ProcessBuilder/Basic.java
-@@ -396,8 +396,8 @@
- if (failed != 0) throw new Error("null PATH");
- } else if (action.equals("PATH search algorithm")) {
- equal(System.getenv("PATH"), "dir1:dir2:");
-- check(new File("/bin/true").exists());
-- check(new File("/bin/false").exists());
-+ check(new File(TrueExe.path()).exists());
-+ check(new File(FalseExe.path()).exists());
- String[] cmd = {"prog"};
- ProcessBuilder pb1 = new ProcessBuilder(cmd);
- ProcessBuilder pb2 = new ProcessBuilder(cmd);
-@@ -438,13 +438,13 @@
- checkPermissionDenied(pb);
-
- // continue searching if EACCES
-- copy("/bin/true", "dir2/prog");
-+ copy(TrueExe.path(), "dir2/prog");
- equal(run(pb).exitValue(), True.exitValue());
- new File("dir1/prog").delete();
- new File("dir2/prog").delete();
-
- new File("dir2/prog").mkdirs();
-- copy("/bin/true", "dir1/prog");
-+ copy(TrueExe.path(), "dir1/prog");
- equal(run(pb).exitValue(), True.exitValue());
-
- // Check empty PATH component means current directory.
-@@ -460,10 +460,10 @@
- pb.command(command);
- File prog = new File("./prog");
- // "Normal" binaries
-- copy("/bin/true", "./prog");
-+ copy(TrueExe.path(), "./prog");
- equal(run(pb).exitValue(),
- True.exitValue());
-- copy("/bin/false", "./prog");
-+ copy(FalseExe.path(), "./prog");
- equal(run(pb).exitValue(),
- False.exitValue());
- prog.delete();
-@@ -518,12 +518,12 @@
- new File("dir2/prog").delete();
- new File("prog").delete();
- new File("dir3").mkdirs();
-- copy("/bin/true", "dir1/prog");
-- copy("/bin/false", "dir3/prog");
-+ copy(TrueExe.path(), "dir1/prog");
-+ copy(FalseExe.path(), "dir3/prog");
- pb.environment().put("PATH","dir3");
- equal(run(pb).exitValue(), True.exitValue());
-- copy("/bin/true", "dir3/prog");
-- copy("/bin/false", "dir1/prog");
-+ copy(TrueExe.path(), "dir3/prog");
-+ copy(FalseExe.path(), "dir1/prog");
- equal(run(pb).exitValue(), False.exitValue());
-
- } finally {
-@@ -620,6 +620,13 @@
- new File("/bin/false").exists());
- }
-
-+ static class BusyBox {
-+ public static boolean is() { return is; }
-+ private static final boolean is =
-+ (! Windows.is() &&
-+ new File("/bin/busybox").exists());
-+ }
-+
- static class UnicodeOS {
- public static boolean is() { return is; }
- private static final String osName = System.getProperty("os.name");
-@@ -658,6 +665,45 @@
- }
- }
-
-+ // On alpine linux, /bin/true and /bin/false are just links to /bin/busybox.
-+ // Some tests copy /bin/true and /bin/false to files with a different filename.
-+ // However, copying the busbox executable into a file with a different name
-+ // won't result in the expected return codes. As workaround, we create
-+ // executable files that can be copied and produce the exepected return
-+ // values. We use this workaround, if we find the busybox executable.
-+
-+ private static class TrueExe {
-+ public static String path() { return path; }
-+ private static final String path = path0();
-+ private static String path0(){
-+ if (!BusyBox.is()) {
-+ return "/bin/true";
-+ }
-+ else {
-+ File trueExe = new File("true");
-+ setFileContents(trueExe, "#!/bin/true\n");
-+ trueExe.setExecutable(true);
-+ return trueExe.getAbsolutePath();
-+ }
-+ }
-+ }
-+
-+ private static class FalseExe {
-+ public static String path() { return path; }
-+ private static final String path = path0();
-+ private static String path0(){
-+ if (!BusyBox.is()) {
-+ return "/bin/false";
-+ }
-+ else {
-+ File falseExe = new File("false");
-+ setFileContents(falseExe, "#!/bin/false\n");
-+ falseExe.setExecutable(true);
-+ return falseExe.getAbsolutePath();
-+ }
-+ }
-+ }
-+
- static class EnglishUnix {
- private static final Boolean is =
- (! Windows.is() && isEnglish("LANG") && isEnglish("LC_ALL"));
-@@ -1961,7 +2007,7 @@
- //----------------------------------------------------------------
- try {
- new File("suBdiR").mkdirs();
-- copy("/bin/true", "suBdiR/unliKely");
-+ copy(TrueExe.path(), "suBdiR/unliKely");
- final ProcessBuilder pb =
- new ProcessBuilder(new String[]{"unliKely"});
- pb.environment().put("PATH", "suBdiR");
---- old/test/jdk/java/lang/ProcessHandle/InfoTest.java
-+++ new/test/jdk/java/lang/ProcessHandle/InfoTest.java
-@@ -298,7 +298,14 @@
- }
- if (info.command().isPresent()) {
- String command = info.command().get();
-- String expected = Platform.isWindows() ? "sleep.exe" : "sleep";
-+ String expected = "sleep";
-+ if (Platform.isWindows()) {
-+ expected = "sleep.exe";
-+ } else if (new File("/bin/busybox").exists()) {
-+ // With busybox sleep is just a sym link to busybox.
-+ // The busbox executable is seen as ProcessHandle.Info command.
-+ expected = "busybox";
-+ }
- Assert.assertTrue(command.endsWith(expected), "Command: expected: \'" +
- expected + "\', actual: " + command);
-
diff --git a/testing/openjdk14/fix-bootjdk-check.patch b/testing/openjdk14/fix-bootjdk-check.patch
deleted file mode 100644
index c9d91f9d2a2..00000000000
--- a/testing/openjdk14/fix-bootjdk-check.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-The alpine builders print out a warning about sched_getaffinity() not working.
-This causes the version check for the boot jdk to fail.
-Patch the command to determine the version number to ignore any errors and warnings.
-
---- old/make/autoconf/boot-jdk.m4
-+++ new/make/autoconf/boot-jdk.m4
-@@ -74,7 +74,7 @@
- BOOT_JDK_FOUND=no
- else
- # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
-- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
-+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $GREP version | $HEAD -n 1`
- if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
- AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
- AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
diff --git a/testing/openjdk14/make-4.3.patch b/testing/openjdk14/make-4.3.patch
deleted file mode 100644
index 356c6a988a6..00000000000
--- a/testing/openjdk14/make-4.3.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-upstream report: https://bugs.openjdk.java.net/browse/JDK-8237879.
-
-diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk
-index 170c3ed..697f9d2 100644
---- a/make/common/MakeBase.gmk
-+++ b/make/common/MakeBase.gmk
-@@ -532,7 +532,9 @@ DependOnVariableHelper = \
- $(info NewVariable $1: >$(strip $($1))<) \
- $(info OldVariable $1: >$(strip $($1_old))<)) \
- $(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \
-- $(call DependOnVariableFileName, $1, $2))) \
-+ $(call DependOnVariableFileName, $1, $2)) \
-+ $(eval $(call DependOnVariableFileName, $1, $2): ) \
-+ ) \
- $(call DependOnVariableFileName, $1, $2) \
- )
-
diff --git a/testing/openjdk14/ppc64le.patch b/testing/openjdk14/ppc64le.patch
deleted file mode 100644
index e83b06b0792..00000000000
--- a/testing/openjdk14/ppc64le.patch
+++ /dev/null
@@ -1,238 +0,0 @@
---- old/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/macroAssembler_ppc.cpp
-@@ -48,6 +48,10 @@
- #include "opto/intrinsicnode.hpp"
- #endif
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-+
- #ifdef PRODUCT
- #define BLOCK_COMMENT(str) // nothing
- #else
-@@ -1291,7 +1295,11 @@
- // the safepoing polling page.
- ucontext_t* uc = (ucontext_t*) ucontext;
- // Set polling address.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- address addr = (address)uc->uc_mcontext.regs->gpr[ra] + (ssize_t)ds;
-+#else // Musl
-+ address addr = (address)uc->uc_mcontext.gp_regs[ra] + (ssize_t) ds;
-+#endif
- if (polling_address_ptr != NULL) {
- *polling_address_ptr = addr;
- }
-@@ -1354,11 +1362,20 @@
- || (is_stdu(instruction) && rs == 1)) {
- int ds = inv_ds_field(instruction);
- // return banged address
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return ds+(address)uc->uc_mcontext.regs->gpr[ra];
-+#else // Musl
-+ return ds+(address)uc->uc_mcontext.gp_regs[ra];
-+#endif
- } else if (is_stdux(instruction) && rs == 1) {
- int rb = inv_rb_field(instruction);
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- address sp = (address)uc->uc_mcontext.regs->gpr[1];
- long rb_val = (long)uc->uc_mcontext.regs->gpr[rb];
-+#else // Musl
-+ address sp = (address)uc->uc_mcontext.gp_regs[1];
-+ long rb_val = (long)uc->uc_mcontext.gp_regs[rb];
-+#endif
- return ra != 1 || rb_val >= 0 ? NULL // not a stack bang
- : sp + rb_val; // banged address
- }
---- old/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-+++ new/src/hotspot/cpu/ppc/vm_version_ppc.cpp
-@@ -50,6 +50,10 @@
- #endif
- #endif
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-+
- bool VM_Version::_is_determine_features_test_running = false;
- uint64_t VM_Version::_dscr_val = 0;
-
-@@ -896,7 +900,7 @@
- unsigned long auxv = getauxval(AT_HWCAP2);
-
- if (auxv & PPC_FEATURE2_HTM_NOSC) {
-- if (auxv & PPC_FEATURE2_HAS_HTM) {
-+ if (auxv & PPC_FEATURE2_HTM) {
- // TM on POWER8 and POWER9 in compat mode (VM) is supported by the JVM.
- // TM on POWER9 DD2.1 NV (baremetal) is not supported by the JVM (TM on
- // POWER9 DD2.1 NV has a few issues that need a couple of firmware
---- old/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/os_linux_ppc.cpp
-@@ -76,7 +76,11 @@
- # include <poll.h>
- # include <ucontext.h>
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-
-+
- address os::current_stack_pointer() {
- intptr_t* csp;
-
-@@ -108,24 +112,42 @@
- // - if uc was filled by getcontext(), it is undefined - getcontext() does not fill
- // it because the volatile registers are not needed to make setcontext() work.
- // Hopefully it was zero'd out beforehand.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_get_pc in sigaction context");
- return (address)uc->uc_mcontext.regs->nip;
-+#else // Musl
-+ guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_get_pc in sigaction context");
-+ return (address)uc->uc_mcontext.gp_regs[PT_NIP];
-+#endif
- }
-
- // modify PC in ucontext.
- // Note: Only use this for an ucontext handed down to a signal handler. See comment
- // in ucontext_get_pc.
- void os::Linux::ucontext_set_pc(ucontext_t * uc, address pc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- guarantee(uc->uc_mcontext.regs != NULL, "only use ucontext_set_pc in sigaction context");
- uc->uc_mcontext.regs->nip = (unsigned long)pc;
-+#else // Musl
-+ guarantee(uc->uc_mcontext.gp_regs != NULL, "only use ucontext_set_pc in sigaction context");
-+ uc->uc_mcontext.gp_regs[PT_NIP] = (unsigned long)pc;
-+#endif
- }
-
- static address ucontext_get_lr(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return (address)uc->uc_mcontext.regs->link;
-+#else // Musl
-+ return (address)uc->uc_mcontext.gp_regs[PT_LNK];
-+#endif
- }
-
- intptr_t* os::Linux::ucontext_get_sp(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return (intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/];
-+#else // Musl
-+ return (intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/];
-+#endif
- }
-
- intptr_t* os::Linux::ucontext_get_fp(const ucontext_t * uc) {
-@@ -133,7 +155,11 @@
- }
-
- static unsigned long ucontext_get_trap(const ucontext_t * uc) {
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- return uc->uc_mcontext.regs->trap;
-+#else // Musl
-+ return uc->uc_mcontext.gp_regs[PT_TRAP];
-+#endif
- }
-
- ExtendedPC os::fetch_frame_from_context(const void* ucVoid,
-@@ -259,7 +285,11 @@
- // 3.2.1 "Machine State Register"), however note that ISA notation for bit
- // numbering is MSB 0, so for normal bit numbering (LSB 0) they come to be
- // bits 33 and 34. It's not related to endianness, just a notation matter.
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- if (second_uc->uc_mcontext.regs->msr & 0x600000000) {
-+#else // Musl
-+ if (second_uc->uc_mcontext.gp_regs[PT_MSR] & 0x600000000) {
-+#endif
- if (TraceTraps) {
- tty->print_cr("caught signal in transaction, "
- "ignoring to jump to abort handler");
-@@ -588,6 +618,7 @@
- const ucontext_t* uc = (const ucontext_t*)context;
-
- st->print_cr("Registers:");
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->nip);
- st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.regs->link);
- st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.regs->ctr);
-@@ -596,8 +627,18 @@
- st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.regs->gpr[i]);
- if (i % 3 == 2) st->cr();
- }
-+#else // Musl
-+ st->print("pc =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[PT_NIP]);
-+ st->print("lr =" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[PT_LNK]);
-+ st->print("ctr=" INTPTR_FORMAT " ", uc->uc_mcontext.gp_regs[PT_CTR]);
- st->cr();
-+ for (int i = 0; i < 32; i++) {
-+ st->print("r%-2d=" INTPTR_FORMAT " ", i, uc->uc_mcontext.gp_regs[i]);
-+ if (i % 3 == 2) st->cr();
-+ }
-+#endif
- st->cr();
-+ st->cr();
-
- intptr_t *sp = (intptr_t *)os::Linux::ucontext_get_sp(uc);
- st->print_cr("Top of Stack: (sp=" PTR_FORMAT ")", p2i(sp));
-@@ -620,12 +661,22 @@
- st->print_cr("Register to memory mapping:");
- st->cr();
-
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->nip);
- st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->link);
- st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.regs->ctr);
-+#else // Musl
-+ st->print("pc ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[PT_NIP]);
-+ st->print("lr ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[PT_LNK]);
-+ st->print("ctr ="); print_location(st, (intptr_t)uc->uc_mcontext.gp_regs[PT_CTR]);
-+#endif
- for (int i = 0; i < 32; i++) {
- st->print("r%-2d=", i);
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- print_location(st, uc->uc_mcontext.regs->gpr[i]);
-+#else // Musl
-+ print_location(st, uc->uc_mcontext.gp_regs[i]);
-+#endif
- }
- st->cr();
- }
---- old/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-+++ new/src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp
-@@ -27,6 +27,10 @@
- #include "runtime/frame.inline.hpp"
- #include "runtime/thread.hpp"
-
-+#if ! (defined(__GLIBC__) || defined(__UCLIBC__))
-+#include <asm/ptrace.h>
-+#endif
-+
- frame JavaThread::pd_last_frame() {
- assert(has_last_Java_frame(), "must have last_Java_sp() when suspended");
-
-@@ -56,8 +60,13 @@
- // if we were running Java code when SIGPROF came in.
- if (isInJava) {
- ucontext_t* uc = (ucontext_t*) ucontext;
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- frame ret_frame((intptr_t*)uc->uc_mcontext.regs->gpr[1/*REG_SP*/],
- (address)uc->uc_mcontext.regs->nip);
-+#else // Musl
-+ frame ret_frame((intptr_t*)uc->uc_mcontext.gp_regs[1/*REG_SP*/],
-+ (address)uc->uc_mcontext.gp_regs[PT_NIP]);
-+#endif
-
- if (ret_frame.pc() == NULL) {
- // ucontext wasn't useful
-@@ -70,7 +79,11 @@
- if (!Method::is_valid_method(m)) return false;
- if (!Metaspace::contains(m->constMethod())) return false;
-
-+#if defined(__GLIBC__) || defined(__UCLIBC__)
- uint64_t reg_bcp = uc->uc_mcontext.regs->gpr[14/*R14_bcp*/];
-+#else // Musl
-+ uint64_t reg_bcp = uc->uc_mcontext.gp_regs[14/*R14_bcp*/];
-+#endif
- uint64_t istate_bcp = istate->bcp;
- uint64_t code_start = (uint64_t)(m->code_base());
- uint64_t code_end = (uint64_t)(m->code_base() + m->code_size());
diff --git a/testing/openjfx/APKBUILD b/testing/openjfx/APKBUILD
new file mode 100644
index 00000000000..c39c09c79d4
--- /dev/null
+++ b/testing/openjfx/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Dekedro <dekedro@protonmail.com>
+pkgname=openjfx
+pkgver=21.0.3_p1 # latest LTS
+pkgrel=0
+pkgdesc="Client application platform for desktop, mobile and embedded systems built on Java"
+url="https://openjfx.io/"
+# aarch64: java broken
+arch="x86_64"
+license="GPL-2.0-only WITH Classpath-exception-2.0 AND BSD-3-Clause"
+options="net"
+makedepends="apache-ant gradle glib-dev gtk+2.0-dev gtk+3.0-dev"
+subpackages="$pkgname-doc $pkgname-demos::noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/openjdk/jfx21u/archive/refs/tags/${pkgver%_p*}+${pkgver##*_p}.tar.gz
+ openjfx.profile
+ remove-version-suffix-check.patch"
+builddir="$srcdir/jfx21u-${pkgver%_p*}-${pkgver##*_p}"
+
+build() {
+ gradle -PRELEASE_SUFFIX="-alpine-r$pkgrel" -PCONF=Release sdk apps
+}
+
+check() {
+ gradle test -x :web:test
+}
+
+package() {
+ install -dm755 \
+ "$pkgdir"/usr/lib \
+ "$pkgdir"/usr/share/doc \
+ "$pkgdir"/usr/share/licenses \
+ "$pkgdir"/usr/share/"$pkgname"/demo
+
+ cp -a build/sdk/lib "$pkgdir"/usr/lib/"$pkgname"
+ cp -a build/sdk/legal "$pkgdir"/usr/share/licenses/"$pkgname"
+ for app in apps/*/*; do
+ test -d "$app"/dist || continue
+ cp -a "$app"/dist "$pkgdir"/usr/share/"$pkgname"/demo/"${app##*/}"
+ done
+
+ install -Dm644 "$srcdir"/openjfx.profile "$pkgdir"/etc/profile.d/openjfx.sh
+}
+
+demos() {
+ pkgdesc="$pkgdesc (demos)"
+
+ amove /usr/share/"$pkgname"/demo
+}
+
+sha512sums="
+9ef6540e316e461a8cddcc6b99c3659663d3d6911204214afe5330fd238b7112431b70e5d2bc7ad548d41f1d8e22fa8d5342f6135901ae8404a8a4e9fdd718cf openjfx-21.0.3_p1.tar.gz
+41cf37116f748269e74a3333b718a854962088b83c6c56cc2860a21c0d0e24673184cea60502afc5d4cb222de368535c417d93ebe841a75c91c6a88dbb0a5041 openjfx.profile
+3757ec908449891567150bc4e0a5b301b0b238d17095c0829f6e1f1dae59260d9b162df031a25a31d4836a200a3e045ca9d79e656e4f1b2165649005345ee7a4 remove-version-suffix-check.patch
+"
diff --git a/testing/openjfx/openjfx.profile b/testing/openjfx/openjfx.profile
new file mode 100644
index 00000000000..9ddabc854f1
--- /dev/null
+++ b/testing/openjfx/openjfx.profile
@@ -0,0 +1,3 @@
+JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --module-path /usr/lib/openjfx --add-modules \
+javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.swing"
+export JDK_JAVA_OPTIONS \ No newline at end of file
diff --git a/testing/openjfx/remove-version-suffix-check.patch b/testing/openjfx/remove-version-suffix-check.patch
new file mode 100644
index 00000000000..899b2077cf9
--- /dev/null
+++ b/testing/openjfx/remove-version-suffix-check.patch
@@ -0,0 +1,42 @@
+--- a/modules/javafx.base/src/test/java/test/com/sun/javafx/runtime/VersionInfoTest.java
++++ b/modules/javafx.base/src/test/java/test/com/sun/javafx/runtime/VersionInfoTest.java
+@@ -161,39 +161,6 @@
+ }
+
+ @Test
+- public void testNonPublic() {
+- String runtimeVersion = VersionInfo.getRuntimeVersion();
+- Version v = new Version(runtimeVersion);
+- String milestone = VersionInfo.getReleaseMilestone();
+- String timestamp = VersionInfo.getBuildTimestamp();
+- String hudsonJob = VersionInfo.getHudsonJobName();
+- assertEquals(milestone, v.suffix);
+- if (hudsonJob.length() == 0) {
+- assertEquals(timestamp, v.opt);
+- assertEquals("internal", v.suffix);
+- } else {
+- assertFalse("internal".equals(v.suffix));
+- }
+- }
+-
+- @Test
+- public void testVersionFormat() {
+- String version = VersionInfo.getVersion();
+- String message = String.format("Wrong short version string: '%s'", version);
+- assertTrue(message, version.matches(SVSTR));
+- }
+-
+- @Test
+- public void testRuntimeVersionFormat() {
+- String runtimeVersion = VersionInfo.getRuntimeVersion();
+- try {
+- Runtime.Version.parse(runtimeVersion);
+- } catch (IllegalArgumentException e) {
+- fail(e.getMessage());
+- }
+- }
+-
+- @Test
+ public void testVersionInFile() {
+ String versionLive = VersionInfo.getVersion();
+ String versionFile = properties.getProperty(VERSION_KEY);
diff --git a/testing/openmg/APKBUILD b/testing/openmg/APKBUILD
new file mode 100644
index 00000000000..b3c15ada930
--- /dev/null
+++ b/testing/openmg/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Sergio Iglesias <sergiotarxz@posteo.net>
+# Maintainer: Sergio Iglesias <sergiotarxz@posteo.net>
+pkgname=openmg
+pkgver=0.0.9
+pkgrel=0
+pkgdesc="Manga reader for GNOME"
+url="https://github.com/sergiotarxz/openmg"
+arch="all !s390x !riscv64"
+license="GPL-3.0-or-later"
+makedepends="gtk4.0-dev meson libsoup-dev libadwaita-dev pcre2-dev json-glib-dev"
+options="!check" # no tests
+source="$pkgname-$pkgver.tar.gz::https://github.com/sergiotarxz/openmg/archive/refs/tags/v$pkgver.tar.gz
+ format-security.patch
+ "
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+862ee4bfec1aee50060ea8cf375eb650c2f2646f39eb0148bec4661934cdac939b2e1255f0761142730949ff242549113087d2bc0e6142823c88d37fffdc0fe8 openmg-0.0.9.tar.gz
+880c8309c7fc6b6000cb3135e7dc1f32d740856d4d14de1e9529e9045605502692db6c5e3e6d052c3b1ecd2e5d944718d7373635b00339a3487404b216b5e668 format-security.patch
+"
diff --git a/testing/openmg/format-security.patch b/testing/openmg/format-security.patch
new file mode 100644
index 00000000000..faccc20905e
--- /dev/null
+++ b/testing/openmg/format-security.patch
@@ -0,0 +1,119 @@
+diff --git a/src/database.c b/src/database.c
+index 778ccf7..ccbb9bf 100644
+--- a/src/database.c
++++ b/src/database.c
+@@ -172,22 +172,22 @@ mg_database_register_next_migration_atttempt_insert (MgDatabase *self, sqlite3 *
+ int error = sqlite3_prepare_v2 (sqlite, "insert into options (key, value) values (?, ?);",
+ -1, &statement, NULL);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_attempt_insert;
+ }
+ error = sqlite3_bind_text (statement, 1, "migration", -1, SQLITE_TRANSIENT);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_attempt_insert;
+ }
+ error = sqlite3_bind_int (statement, 2, next_migration);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_attempt_insert;
+ }
+ error = sqlite3_step (statement);
+ if (error != SQLITE_DONE) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_attempt_insert;
+ }
+ return_value = sqlite3_changes (sqlite);
+@@ -204,22 +204,22 @@ mg_database_register_next_migration_update (MgDatabase *self, sqlite3 *sqlite,
+ int error = sqlite3_prepare_v2 (sqlite, "update options set value = ? where key = ?;",
+ -1, &statement, NULL);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_update;
+ }
+ error = sqlite3_bind_int (statement, 1, next_migration);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_update;
+ }
+ error = sqlite3_bind_text (statement, 2, "migration", -1, SQLITE_TRANSIENT);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_update;
+ }
+ error = sqlite3_step (statement);
+ if (error != SQLITE_DONE) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_register_next_migration_update;
+ }
+ return_value = sqlite3_changes (sqlite);
+@@ -245,12 +245,12 @@ mg_database_retrieve_next_migration (MgDatabase *self, sqlite3 *sqlite) {
+ sqlite3_stmt *statement = NULL;
+ error = sqlite3_prepare_v2 (sqlite, "select value from options where key = ?;", -1, &statement, NULL);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_retrieve_next_migration;
+ }
+ error = sqlite3_bind_text (statement, 1, "migration", -1, SQLITE_TRANSIENT);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_retrieve_next_migration;
+ }
+ error = sqlite3_step (statement);
+@@ -269,12 +269,12 @@ mg_database_apply_single_migration (MgDatabase *self, sqlite3 *sqlite, int migra
+ gboolean return_value = 0;
+ int error = sqlite3_prepare_v2 (sqlite, current_migration, -1, &statement, NULL);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_apply_single_migration;
+ }
+ error = sqlite3_step (statement);
+ if (error != SQLITE_DONE) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ goto cleanup_mg_database_apply_single_migration;
+ }
+ return_value = 1;
+@@ -303,7 +303,7 @@ mg_database_prepare (MgDatabase *self, char *z_sql, const char **pz_tail) {
+ sqlite3 *sqlite = mg_database_get_sqlite (self);
+ int error = sqlite3_prepare_v2 (sqlite, z_sql, -1, &statement, pz_tail);
+ if (error != SQLITE_OK) {
+- g_warning (sqlite3_errmsg (sqlite));
++ g_warning ("%s", sqlite3_errmsg (sqlite));
+ return NULL;
+ }
+ return mg_database_statement_new (self, statement);
+diff --git a/src/database/statement.c b/src/database/statement.c
+index 1599354..7218f22 100644
+--- a/src/database/statement.c
++++ b/src/database/statement.c
+@@ -137,7 +137,7 @@ mg_database_statement_bind_text (MgDatabaseStatement *self,
+ sqlite3_stmt *stmt = mg_database_statement_get_stmt (self);
+ int error = sqlite3_bind_text (stmt, index, value, -1, SQLITE_TRANSIENT);
+ if ( error != SQLITE_OK ) {
+- g_error (mg_database_get_error_string (self->owner));
++ g_error ("%s", mg_database_get_error_string (self->owner));
+ }
+ return error;
+ }
+@@ -149,7 +149,7 @@ mg_database_statement_step (MgDatabaseStatement *self) {
+ while ((error = sqlite3_step (stmt)) == SQLITE_BUSY) {
+ }
+ if (error != SQLITE_DONE && error != SQLITE_ROW) {
+- g_error (mg_database_get_error_string (self->owner));
++ g_error ("%s", mg_database_get_error_string (self->owner));
+ }
+ return error;
+ }
diff --git a/testing/openmpi/APKBUILD b/testing/openmpi/APKBUILD
deleted file mode 100644
index 6244e937a97..00000000000
--- a/testing/openmpi/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Daniel Sabogal <dsabogalcc@gmail.com>
-pkgname=openmpi
-pkgver=3.1.1
-pkgrel=2
-pkgdesc="Message passing library for high-performance computing"
-url="https://www.open-mpi.org/"
-# disable ppc64le until opal_fifo test can be fixed
-arch="all"
-license="BSD"
-makedepends="perl gfortran hwloc-dev libevent-dev libgomp"
-subpackages="$pkgname-dev:_dev $pkgname-doc"
-source="https://www.open-mpi.org/software/ompi/v${pkgver%.*}/downloads/$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
-
- local disable_atomics=""
- case "$CARCH" in
- ppc64le) disable_atomics="--disable-builtin-atomics";;
- esac
-
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --sysconfdir=/etc/$pkgname \
- --enable-ipv6 \
- --with-threads=posix \
- --with-hwloc=/usr \
- $disable_atomics
- make
-}
-
-check() {
- make -C "$builddir" check
-}
-
-package() {
- make -C "$builddir" DESTDIR="$pkgdir" install
-}
-
-_dev() {
- default_dev
-
- local bins="mpiCC mpic++ mpicc mpicxx mpif77 mpif90 mpifort
- ortecc opal_wrapper oshCC oshc++ oshcc oshcxx oshfort
- shmemCC shmemc++ shmemcc shmemcxx shmemfort"
-
- mkdir -p "$subpkgdir"/usr/bin
- local i; for i in $bins; do
- mv "$pkgdir"/usr/bin/$i "$subpkgdir"/usr/bin
- done
-}
-
-sha512sums="d0e16676727fdc69cbd732be8475ffe2a9142a2b69b41d51d1da30c245d4ad1912c26029a1305d4221781d2b8dfb89edbb84185fefc65b9070727ed85133f117 openmpi-3.1.1.tar.bz2"
diff --git a/testing/openmw/APKBUILD b/testing/openmw/APKBUILD
deleted file mode 100644
index 62bdbc334d4..00000000000
--- a/testing/openmw/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor: Clayton Craft <clayton@craftyguy.net>
-# Maintainer: Clayton Craft <clayton@craftyguy.net>
-pkgname=openmw
-pkgver=0.45.0
-pkgrel=1
-_gtestver=1.8.1
-pkgdesc="Open-source engine reimplementation for the role-playing game Morrowind"
-# Note: only tested on the following archs, may work on others too but not
-# adding them until this has been confirmed
-arch="x86_64 aarch64"
-url="http://www.openmw.org"
-license="GPL-3.0-or-later"
-makedepends="cmake boost doxygen ninja mesa-dev qt5-qtbase-dev ffmpeg-dev
- openscenegraph-dev boost-dev openal-soft-dev sdl2-dev mygui-dev bullet-dev
- libxt-dev unshield-dev gtest-dev tinyxml-dev"
-# Two failing tets:
-# [ FAILED ] ContentFileTest.dialogue_merging_test
-# [ FAILED ] ContentFileTest.content_diagnostics_test
-options="!check"
-source="https://github.com/OpenMW/openmw/archive/openmw-$pkgver.tar.gz"
-
-builddir=$srcdir/$pkgname-$pkgname-$pkgver
-
-build() {
- # build OpenMW
- CXXFLAGS="$CXXFLAGS -fpermissive" cmake -B build . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DDESIRED_QT_VERSION=5 \
- -DBUILD_WITH_CODE_COVERAGE=0 \
- -DBUILD_UNITTESTS=1 \
- -DUSE_SYSTEM_TINYXML=TRUE \
- -GNinja
- ninja -C build
-}
-
-check() {
- ./build/openmw_test_suite
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="b968426659457cf486f6756f7ab82cc4cb34a92923c433dd86f711e5d7097f75441ed17daa50d21f15f1847f5aed1f4c3a094a06cfd3f2e9b90aa182742c596f openmw-0.45.0.tar.gz"
diff --git a/testing/openocd-esp32/APKBUILD b/testing/openocd-esp32/APKBUILD
new file mode 100644
index 00000000000..eae4a199f27
--- /dev/null
+++ b/testing/openocd-esp32/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=openocd-esp32
+pkgver=0_git20230921
+_commit=a23a2d4f82f848a9e76b0b79c4b26782f26b11ed
+pkgrel=4
+pkgdesc="Fork of OpenOCD with ESP32 support"
+url="https://github.com/espressif/openocd-esp32"
+arch="all"
+license="GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only"
+makedepends="
+ autoconf
+ automake
+ hidapi-dev
+ jimtcl-dev
+ libftdi1-dev
+ libjaylink-dev
+ libtool
+ libusb-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-udev-rules:udev_rules"
+source="$pkgname-$pkgver.tar.gz::https://github.com/espressif/openocd-esp32/archive/$_commit.tar.gz
+ fix-jimtcl-link.patch"
+builddir="$srcdir/openocd-esp32-$_commit"
+
+##
+# XXX: Remove this aport when changes are upstreamed.
+##
+
+prepare() {
+ default_prepare
+ ./bootstrap nosubmodule
+}
+
+build() {
+ # --datadir:
+ # avoid conflicts with upstream openocd to allow parallel installations
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --datadir=/usr/share/$pkgname \
+ --localstatedir=/var \
+ --disable-werror \
+ --disable-internal-jimtcl \
+ --disable-internal-libjaylink
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 contrib/60-openocd.rules \
+ "$pkgdir"/lib/udev/rules.d/60-$pkgname.rules
+
+ # allow parallel install with upstream openocd
+ mv "$pkgdir"/usr/bin/openocd "$pkgdir"/usr/bin/$pkgname
+ mv "$pkgdir"/usr/share/man/man1/openocd.1 \
+ "$pkgdir"/usr/share/man/man1/openocd-esp32.1
+ sed -e 's/openocd/openocd-esp32/g' -i \
+ "$pkgdir"/usr/share/man/man1/openocd-esp32.1
+}
+
+udev_rules() {
+ pkgdesc="udev rules for $pkgname"
+ depends="!openocd-udev-rules"
+ amove lib/udev/rules.d/60-$pkgname.rules
+}
+
+sha512sums="
+cb884616a7547c30776629923d6a599f5702506a96a47076bbdfbe0a550b560a1277e751a8a6cd3e6bc7f1894604c1899d9416c731fa91ce71a95049f3cc8479 openocd-esp32-0_git20230921.tar.gz
+6fd2fbe11917bb7f181ba67812f63e75d51bcd19e4df6a7e22e1abb8f36a4f4bdc9202e815f560476ec184d54d84df8ae4dceb17f2429b9dc1d9503804dacb03 fix-jimtcl-link.patch
+"
diff --git a/testing/openocd-esp32/fix-jimtcl-link.patch b/testing/openocd-esp32/fix-jimtcl-link.patch
new file mode 100644
index 00000000000..657f3333c65
--- /dev/null
+++ b/testing/openocd-esp32/fix-jimtcl-link.patch
@@ -0,0 +1,44 @@
+Without this patch, OpenOCD only adds -ljim when linking against the
+internal version of jimtcl is disabled. This is insufficient as we build
+jimtcl with various additional features (OpenSSL, …) and thus also need
+to link against the libraries needed for these features (e.g. -lssl).
+For this reason, it is required to extract libraries needed by jimtcl
+using pkg-config. In the GNU autotools context, this can be achieved using
+the PKG_CHECK_MODULES macro from pkg.m4(7).
+
+This patch uses this macro for jimtcl and adds the required
+CFLAGS/LDFLAGS values for linking against jimtcl for the openocd target.
+
+diff -upr a/configure.ac b/configure.ac
+--- a/configure.ac 2021-09-14 17:31:53.000000000 +0200
++++ b/configure.ac 2021-10-02 11:32:04.066085040 +0200
+@@ -622,6 +622,9 @@ PKG_CHECK_MODULES([LIBGPIOD], [libgpiod]
+ PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
+ [use_libjaylink=yes], [use_libjaylink=no])
+
++PKG_CHECK_MODULES([LIBJIM], [jimtcl >= 0.80],
++ [use_internal_jimtcl=no], [use_internal_jimtcl=yes])
++
+ m4_define([PROCESS_ADAPTERS], [
+ m4_foreach([adapter], [$1], [
+ AS_IF([test $2], [
+diff -upr a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am 2021-09-14 17:31:53.000000000 +0200
++++ b/src/Makefile.am 2021-10-02 11:31:57.529416686 +0200
+@@ -9,13 +9,15 @@ bin_PROGRAMS += %D%/openocd
+ %D%/openocd.c %D%/openocd.h
+
+ %C%_openocd_LDADD = %D%/libopenocd.la
++%C%_openocd_CFLAGS =
+
+ %C%_openocd_LDADD += $(MINGWLDADD)
+
+ if INTERNAL_JIMTCL
+ %C%_openocd_LDADD += $(top_builddir)/jimtcl/libjim.a
+ else
+-%C%_openocd_LDADD += -ljim
++%C%_openocd_CFLAGS += $(LIBJIM_CFLAGS)
++%C%_openocd_LDADD += $(LIBJIM_LIBS)
+ endif
+
+ %C%_libopenocd_la_CPPFLAGS =
diff --git a/testing/openocd-git/APKBUILD b/testing/openocd-git/APKBUILD
new file mode 100644
index 00000000000..0f10268041b
--- /dev/null
+++ b/testing/openocd-git/APKBUILD
@@ -0,0 +1,96 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+_pkgname=openocd
+_commit=ea2e26f7d521f5755b4bfda7bf12d99650277421
+pkgname=$_pkgname-git
+pkgver=0_git20240113
+pkgrel=0
+pkgdesc="Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
+url="http://openocd.org/"
+arch="all"
+license="GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only"
+makedepends="
+ autoconf
+ automake
+ hidapi-dev
+ jimtcl-dev
+ libftdi1-dev
+ libjaylink-dev
+ libtool
+ libusb-dev
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-udev-rules:udev_rules:noarch
+ $pkgname-cmd-openocd:symlink:noarch
+ "
+# Note: Using a github mirror here as sourceforge git snapshots have changing checksums
+source="
+ $_pkgname-$_commit.tar.gz::https://github.com/openocd-org/openocd/archive/$_commit.tar.gz
+
+ fix-jimtcl-link.patch
+ "
+builddir="$srcdir/$_pkgname-$_commit"
+
+prepare() {
+ default_prepare
+ ./bootstrap nosubmodule
+}
+
+build() {
+ # --datadir:
+ # avoid conflicts with release version of openocd to allow parallel
+ # installations
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --datadir=/usr/share/$pkgname \
+ --localstatedir=/var \
+ --disable-werror \
+ --enable-cmsis-dap \
+ --enable-sysfsgpio \
+ --enable-bcm2835gpio \
+ --disable-internal-jimtcl \
+ --disable-internal-libjaylink
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 contrib/60-openocd.rules \
+ "$pkgdir"/lib/udev/rules.d/60-$pkgname.rules
+
+ # allow parallel install with release openocd
+ mv "$pkgdir"/usr/bin/openocd "$pkgdir"/usr/bin/$pkgname
+ mv "$pkgdir"/usr/share/man/man1/openocd.1 \
+ "$pkgdir"/usr/share/man/man1/openocd-git.1
+ sed -e 's/openocd/openocd-git/g' -i \
+ "$pkgdir"/usr/share/man/man1/openocd-git.1
+}
+
+udev_rules() {
+ pkgdesc="udev rules for $pkgname"
+ depends="!openocd-udev-rules"
+ amove lib/udev/rules.d/60-$pkgname.rules
+}
+
+symlink() {
+ pkgdesc="provide the 'openocd' cmd as symlink to 'openocd-git'"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ mkdir -p "$subpkgdir"/usr/bin/
+ ln -s openocd-git "$subpkgdir"/usr/bin/openocd
+}
+
+sha512sums="
+82ecf9ca084adef91f88425c0f8d35ba5939ccee4086e11559b98e21a0287c1fca7c8f20b25a7d650458319a10c106fd484616ffef6f9dd6dd3d3bc847bc8317 openocd-ea2e26f7d521f5755b4bfda7bf12d99650277421.tar.gz
+6fd2fbe11917bb7f181ba67812f63e75d51bcd19e4df6a7e22e1abb8f36a4f4bdc9202e815f560476ec184d54d84df8ae4dceb17f2429b9dc1d9503804dacb03 fix-jimtcl-link.patch
+"
diff --git a/testing/openocd-git/fix-jimtcl-link.patch b/testing/openocd-git/fix-jimtcl-link.patch
new file mode 100644
index 00000000000..657f3333c65
--- /dev/null
+++ b/testing/openocd-git/fix-jimtcl-link.patch
@@ -0,0 +1,44 @@
+Without this patch, OpenOCD only adds -ljim when linking against the
+internal version of jimtcl is disabled. This is insufficient as we build
+jimtcl with various additional features (OpenSSL, …) and thus also need
+to link against the libraries needed for these features (e.g. -lssl).
+For this reason, it is required to extract libraries needed by jimtcl
+using pkg-config. In the GNU autotools context, this can be achieved using
+the PKG_CHECK_MODULES macro from pkg.m4(7).
+
+This patch uses this macro for jimtcl and adds the required
+CFLAGS/LDFLAGS values for linking against jimtcl for the openocd target.
+
+diff -upr a/configure.ac b/configure.ac
+--- a/configure.ac 2021-09-14 17:31:53.000000000 +0200
++++ b/configure.ac 2021-10-02 11:32:04.066085040 +0200
+@@ -622,6 +622,9 @@ PKG_CHECK_MODULES([LIBGPIOD], [libgpiod]
+ PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
+ [use_libjaylink=yes], [use_libjaylink=no])
+
++PKG_CHECK_MODULES([LIBJIM], [jimtcl >= 0.80],
++ [use_internal_jimtcl=no], [use_internal_jimtcl=yes])
++
+ m4_define([PROCESS_ADAPTERS], [
+ m4_foreach([adapter], [$1], [
+ AS_IF([test $2], [
+diff -upr a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am 2021-09-14 17:31:53.000000000 +0200
++++ b/src/Makefile.am 2021-10-02 11:31:57.529416686 +0200
+@@ -9,13 +9,15 @@ bin_PROGRAMS += %D%/openocd
+ %D%/openocd.c %D%/openocd.h
+
+ %C%_openocd_LDADD = %D%/libopenocd.la
++%C%_openocd_CFLAGS =
+
+ %C%_openocd_LDADD += $(MINGWLDADD)
+
+ if INTERNAL_JIMTCL
+ %C%_openocd_LDADD += $(top_builddir)/jimtcl/libjim.a
+ else
+-%C%_openocd_LDADD += -ljim
++%C%_openocd_CFLAGS += $(LIBJIM_CFLAGS)
++%C%_openocd_LDADD += $(LIBJIM_LIBS)
+ endif
+
+ %C%_libopenocd_la_CPPFLAGS =
diff --git a/testing/openocd-riscv/APKBUILD b/testing/openocd-riscv/APKBUILD
new file mode 100644
index 00000000000..e1149896bf5
--- /dev/null
+++ b/testing/openocd-riscv/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+pkgname=openocd-riscv
+pkgver=0_git20230104
+_commit=43ea20dfbb6c815004a51106a3b2009d7f6c4940
+pkgrel=1
+pkgdesc="Fork of OpenOCD with RISC-V support"
+url="https://github.com/riscv/riscv-openocd"
+arch="all"
+license="GPL-2.0-only,GPL-2.0-or-later,GPL-3.0-only"
+makedepends="
+ autoconf
+ automake
+ hidapi-dev
+ jimtcl-dev
+ libftdi1-dev
+ libjaylink-dev
+ libtool
+ libusb-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-udev-rules:udev_rules"
+source="$pkgname-$pkgver.tar.gz::https://github.com/riscv/riscv-openocd/archive/$_commit.tar.gz
+ fix-jimtcl-link.patch"
+builddir="$srcdir/riscv-openocd-$_commit"
+
+##
+# XXX: Remove this aport when changes are upstreamed.
+##
+
+prepare() {
+ default_prepare
+ ./bootstrap nosubmodule
+}
+
+build() {
+ # --datadir:
+ # avoid conflicts with upstream openocd to allow parallel installations
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --datadir=/usr/share/$pkgname \
+ --localstatedir=/var \
+ --disable-werror \
+ --disable-internal-jimtcl \
+ --disable-internal-libjaylink
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 contrib/60-openocd.rules \
+ "$pkgdir"/lib/udev/rules.d/60-$pkgname.rules
+ # allow parallel install with upstream openocd
+ mv "$pkgdir"/usr/bin/openocd "$pkgdir"/usr/bin/$pkgname
+ mv "$pkgdir"/usr/share/man/man1/openocd.1 \
+ "$pkgdir"/usr/share/man/man1/openocd-riscv.1
+ sed -e 's/openocd/openocd-riscv/g' -i \
+ "$pkgdir"/usr/share/man/man1/openocd-riscv.1
+}
+
+udev_rules() {
+ pkgdesc="udev rules for $pkgname"
+ depends="!openocd-udev-rules"
+ amove lib/udev/rules.d/60-$pkgname.rules
+}
+
+sha512sums="
+2ffe4047d4c3afa8dd7be581362f36b88d250a46c4ed3f9b396a15163bd6d131984a9b0d27c47bfbda9f195443010ddfb267e7401b6b334a466a1dcad4ebc9b8 openocd-riscv-0_git20230104.tar.gz
+6fd2fbe11917bb7f181ba67812f63e75d51bcd19e4df6a7e22e1abb8f36a4f4bdc9202e815f560476ec184d54d84df8ae4dceb17f2429b9dc1d9503804dacb03 fix-jimtcl-link.patch
+"
diff --git a/testing/openocd-riscv/fix-jimtcl-link.patch b/testing/openocd-riscv/fix-jimtcl-link.patch
new file mode 100644
index 00000000000..657f3333c65
--- /dev/null
+++ b/testing/openocd-riscv/fix-jimtcl-link.patch
@@ -0,0 +1,44 @@
+Without this patch, OpenOCD only adds -ljim when linking against the
+internal version of jimtcl is disabled. This is insufficient as we build
+jimtcl with various additional features (OpenSSL, …) and thus also need
+to link against the libraries needed for these features (e.g. -lssl).
+For this reason, it is required to extract libraries needed by jimtcl
+using pkg-config. In the GNU autotools context, this can be achieved using
+the PKG_CHECK_MODULES macro from pkg.m4(7).
+
+This patch uses this macro for jimtcl and adds the required
+CFLAGS/LDFLAGS values for linking against jimtcl for the openocd target.
+
+diff -upr a/configure.ac b/configure.ac
+--- a/configure.ac 2021-09-14 17:31:53.000000000 +0200
++++ b/configure.ac 2021-10-02 11:32:04.066085040 +0200
+@@ -622,6 +622,9 @@ PKG_CHECK_MODULES([LIBGPIOD], [libgpiod]
+ PKG_CHECK_MODULES([LIBJAYLINK], [libjaylink >= 0.2],
+ [use_libjaylink=yes], [use_libjaylink=no])
+
++PKG_CHECK_MODULES([LIBJIM], [jimtcl >= 0.80],
++ [use_internal_jimtcl=no], [use_internal_jimtcl=yes])
++
+ m4_define([PROCESS_ADAPTERS], [
+ m4_foreach([adapter], [$1], [
+ AS_IF([test $2], [
+diff -upr a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am 2021-09-14 17:31:53.000000000 +0200
++++ b/src/Makefile.am 2021-10-02 11:31:57.529416686 +0200
+@@ -9,13 +9,15 @@ bin_PROGRAMS += %D%/openocd
+ %D%/openocd.c %D%/openocd.h
+
+ %C%_openocd_LDADD = %D%/libopenocd.la
++%C%_openocd_CFLAGS =
+
+ %C%_openocd_LDADD += $(MINGWLDADD)
+
+ if INTERNAL_JIMTCL
+ %C%_openocd_LDADD += $(top_builddir)/jimtcl/libjim.a
+ else
+-%C%_openocd_LDADD += -ljim
++%C%_openocd_CFLAGS += $(LIBJIM_CFLAGS)
++%C%_openocd_LDADD += $(LIBJIM_LIBS)
+ endif
+
+ %C%_libopenocd_la_CPPFLAGS =
diff --git a/testing/openra/APKBUILD b/testing/openra/APKBUILD
new file mode 100644
index 00000000000..c9b487abef4
--- /dev/null
+++ b/testing/openra/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=openra
+pkgver=20231010
+pkgrel=0
+pkgdesc="Open source implementation of the Red Alert engine"
+url="https://www.openra.net"
+arch="x86_64 armv7 aarch64"
+license="GPL-3.0-or-later"
+depends="
+ dotnet6-runtime
+ freetype
+ libgdiplus
+ lua5.1
+ openal-soft-libs
+ sdl2
+ xdg-utils
+ "
+makedepends="dotnet6-sdk"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenRA/OpenRA/archive/release-$pkgver.tar.gz"
+builddir="$srcdir/OpenRA-release-$pkgver"
+options="net"
+
+prepare() {
+ default_prepare
+
+ make version VERSION="release-$pkgver"
+}
+
+build() {
+ make RUNTIME=net6 TARGETPLATFORM=unix-generic
+}
+
+check() {
+ make RUNTIME=net6 check
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/
+ cp -a bin/ "$pkgdir"/usr/lib/openra
+ # shellcheck disable=1091
+ . ./packaging/functions.sh
+
+ install_data . "$pkgdir"/usr/lib/openra/ cnc d2k ra
+ make prefix=/usr DESTDIR="$pkgdir" install-linux-shortcuts
+ make prefix=/usr DESTDIR="$pkgdir" install-linux-appdata
+}
+
+sha512sums="
+76968f241f506faf879793b63553bd259eb2ae204c607dcbfdb03078773c32d3d122ffe554049d31fed5cd7d35bf22fb07ef0fa73505a88b2ce7f8ae21189f8d openra-20231010.tar.gz
+"
diff --git a/testing/openresty/APKBUILD b/testing/openresty/APKBUILD
deleted file mode 100644
index 06f64c6a37e..00000000000
--- a/testing/openresty/APKBUILD
+++ /dev/null
@@ -1,155 +0,0 @@
-# Contributor: tcely <openresty+aports@tcely.33mail.com>
-# Maintainer:
-pkgname=openresty
-pkgver="1.15.8.2"
-pkgrel=0
-pkgdesc="Scalable Web Platform by Extending NGINX with Lua"
-url="https://openresty.org/"
-arch="all !ppc64le !s390x" # LuaJIT build errors
-license="BSD-2-Clause"
-options="!check" # tests environment not available
-provides="cmd:nginx"
-depends="!nginx"
-makedepends="linux-headers gd-dev geoip-dev openssl-dev libxml2-dev libxslt-dev
- pcre-dev perl-dev pkgconf readline-dev zlib-dev"
-subpackages="$pkgname-doc"
-source="https://openresty.org/download/openresty-${pkgver}${_rc:+rc${_rc}}.tar.gz"
-
-_modules_dir="/usr/lib/nginx/modules"
-_add_module() {
- local name="http-$1"
- local _soname="${2-$1}"
- local soname="ngx_http_${_soname//-/_}_module.so"
-
- subpackages="$subpackages $pkgname-mod-${name}:_module"
- eval "_module_${name//-/_}_so='${soname//\'}'"
-
- [ -z "$3" ] || { shift; shift; eval "_module_${name//-/_}_deps='${*//\'}'"; }
-}
-
-_add_module echo
-_add_module headers-more headers_more_filter
-_add_module lua lua nginx-mod-devel-kit
-_add_module lua-upstream lua_upstream "$pkgname-mod-http-lua"
-_add_module redis2
-_add_module set-misc set_misc nginx-mod-devel-kit
-
-prepare() {
- default_prepare
- sed -i.orig -e '/--add-module=$dir/s/module/dynamic-&/' configure
-}
-
-_configure() {
- local _pkgname=nginx
-
- ./configure -j$(nproc) \
- --prefix=/var/lib/$_pkgname \
- --sbin-path=/usr/sbin/$_pkgname \
- --modules-path="$_modules_dir" \
- --conf-path=/etc/$_pkgname/$_pkgname.conf \
- --pid-path=/var/run/$_pkgname/$_pkgname.pid \
- --lock-path=/var/run/$_pkgname/$_pkgname.lock \
- --error-log-path=/var/log/$_pkgname/error.log \
- --http-log-path=/var/log/$_pkgname/access.log \
- \
- --http-client-body-temp-path=/var/tmp/$_pkgname/client_body \
- --http-proxy-temp-path=/var/tmp/$_pkgname/proxy \
- --http-fastcgi-temp-path=/var/tmp/$_pkgname/fastcgi \
- --http-uwsgi-temp-path=/var/tmp/$_pkgname/uwsgi \
- --http-scgi-temp-path=/var/tmp/$_pkgname/scgi \
- --with-perl_modules_path=/usr/lib/perl5/vendor_perl \
- \
- --user=$_pkgname \
- --group=$_pkgname \
- --with-threads \
- --with-file-aio \
- \
- --with-http_ssl_module \
- --with-http_v2_module \
- --with-http_realip_module \
- --with-http_addition_module \
- --with-http_xslt_module=dynamic \
- --with-http_image_filter_module=dynamic \
- --with-http_geoip_module=dynamic \
- --with-http_sub_module \
- --with-http_dav_module \
- --with-http_flv_module \
- --with-http_mp4_module \
- --with-http_gunzip_module \
- --with-http_gzip_static_module \
- --with-http_auth_request_module \
- --with-http_random_index_module \
- --with-http_secure_link_module \
- --with-http_degradation_module \
- --with-http_slice_module \
- --with-http_stub_status_module \
- --with-http_perl_module=dynamic \
- --with-mail=dynamic \
- --with-mail_ssl_module \
- --with-stream=dynamic \
- --with-stream_ssl_module \
- --with-stream_realip_module \
- --with-stream_geoip_module=dynamic \
- --with-stream_ssl_preread_module \
- --with-pcre-jit \
-
-}
-
-build() {
- _configure
- make
- mv build built
-
- mv configure.orig configure
- _configure
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-_module() {
- local name="${subpkgname#$pkgname-mod-}"
- local soname="$(eval echo "\$_module_${name//-/_}_so")"
- local _deps="$(eval echo "\$_module_${name//-/_}_deps")"
-
- pkgdesc="$pkgdesc (module $soname)"
- depends="cmd:nginx${_deps:+ }$_deps"
- provides=""
-
- mkdir -p "${subpkgdir}$_modules_dir"
- cd "${subpkgdir}$_modules_dir"
- mv "$builddir"/built/nginx-*/objs/"$soname" .
-
- mkdir -p "$subpkgdir/etc/nginx/modules"
- cd "$subpkgdir/etc/nginx/modules"
- echo "load_module \"modules/$soname\";" > "./$name.conf"
-}
-
-doc() {
- default_doc
- local _prefix='/var/lib/nginx'
-
- mkdir -p "$subpkgdir$_prefix"
- mkdir -p "$subpkgdir$_prefix/bin"
- mkdir -p "$subpkgdir$_prefix/luajit/share"
- mkdir -p "$subpkgdir$_prefix/site"
-
- mv "$pkgdir$_prefix/pod" "$subpkgdir$_prefix/"
- mv "$pkgdir$_prefix/site/pod" "$subpkgdir$_prefix/site/"
- mv "$pkgdir$_prefix/luajit/share/man" "$subpkgdir$_prefix/luajit/share/"
-
- mv "$pkgdir$_prefix/bin/md2pod.pl" "$subpkgdir$_prefix/bin/"
- mv "$pkgdir$_prefix/bin/nginx-xml2pod" "$subpkgdir$_prefix/bin/"
- mv "$pkgdir$_prefix/bin/restydoc" "$subpkgdir$_prefix/bin/"
- mv "$pkgdir$_prefix/bin/restydoc-index" "$subpkgdir$_prefix/bin/"
-
- mkdir -p "$subpkgdir/usr/lib/perl5/vendor_perl"
- mv "$pkgdir/usr/lib/perl5/vendor_perl/man3" "$subpkgdir/usr/lib/perl5/vendor_perl/"
-}
-
-#gpg_signature_extensions="asc"
-#gpgfingerprints="good:2545 1EB0 8846 0026 195B D62C B550 E09E A0E9 8066"
-
-sha512sums="f7310ce220dc2e442b4de5e0602f6a787498c52dff214eeb04929504ea03700f181022d010fdfeb87a4c5aeda3c9515475f8eb29833583f6706ed32d8c9393c8 openresty-1.15.8.2.tar.gz"
diff --git a/testing/openscad/APKBUILD b/testing/openscad/APKBUILD
deleted file mode 100644
index 7605d7d6ee2..00000000000
--- a/testing/openscad/APKBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=openscad
-pkgver=2019.05
-pkgrel=2
-pkgdesc="The programmers solid 3D CAD modeller"
-url="http://openscad.org/"
-arch="all !armhf !mips !mips64" # Limited by qt5-qtmultimedia that needs qt5-delcarative
-license="GPL-2.0-only"
-subpackages="$pkgname-doc"
-makedepends="
- bison
- boost-dev
- cgal-dev
- double-conversion-dev
- eigen-dev
- flex
- glew-dev
- gmp-dev
- harfbuzz-dev
- lib3mf-dev
- libxml2-dev
- libzip-dev
- mpfr-dev
- opencsg-dev
- qscintilla-dev
- qt5-qtbase-dev
- qt5-qtmultimedia-dev
- "
-checkdepends="
- cmake
- imagemagick
- libx11
- python3
- xorgproto
- xvfb-run
- "
-source="https://files.openscad.org/openscad-$pkgver.src.tar.gz
- boost-1.72.patch"
-options="!check" # Tests fail in xvfb, but pass on real X server
-
-build() {
- qmake-qt5 PREFIX="/usr"
- # fix issue with #include_next stdlib.h
- sed -e 's/-isystem \/usr\/include //g' -i Makefile
- make
-}
-
-check() {
- cd tests
- cmake .
- make
- #xvfb-run ctest # Tests fail in xvfb, but pass on real X server
- ctest
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
-}
-
-sha512sums="073053f625ffa4fea6ed836396b7ff4b87b26cf7500b06c804983afc0f1dfd3d78bfb81b3fd217c3939b0ec915d85b0c7990773eaf968512a150deaa0399df13 openscad-2019.05.src.tar.gz
-8cd01ce250975440bdc4515bd5acb13b39853b9c03b0368eea3e998752c80f57026db34ff653194461fb3e5187ff3f084943bc0ddc599bbaa100a9003ba7494a boost-1.72.patch"
diff --git a/testing/openscad/boost-1.72.patch b/testing/openscad/boost-1.72.patch
deleted file mode 100644
index eb3651f220f..00000000000
--- a/testing/openscad/boost-1.72.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From b6c170cc5dd1bc677176ee732cdb0ddae57e5cf0 Mon Sep 17 00:00:00 2001
-From: Jan Beich <jbeich@FreeBSD.org>
-Date: Fri, 25 Oct 2019 15:10:26 +0000
-Subject: [PATCH] Add missing header bootlegged by Boost < 1.72
-
-src/parser.y:76:6: error: no template named 'stack' in namespace 'std'
-std::stack<LocalScope *> scope_stack;
-~~~~~^
----
- src/parser.y | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/parser.y b/src/parser.y
-index 7f4fd56ca7..4c77c989ea 100644
---- a/src/parser.y
-+++ b/src/parser.y
-@@ -46,6 +46,7 @@
- #include "printutils.h"
- #include "memory.h"
- #include <sstream>
-+#include <stack>
- #include <boost/filesystem.hpp>
- #include "boost-utils.h"
- #include "feature.h"
diff --git a/testing/openscap-daemon/APKBUILD b/testing/openscap-daemon/APKBUILD
index fa99ca1490f..6975d5a7d2a 100644
--- a/testing/openscap-daemon/APKBUILD
+++ b/testing/openscap-daemon/APKBUILD
@@ -2,17 +2,26 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=openscap-daemon
pkgver=0.1.10
-pkgrel=3
+pkgrel=9
pkgdesc="Manages continuous scans of your infrastructure"
url="https://www.open-scap.org/tools/openscap-daemon/"
arch="noarch"
license="LGPL-2.1-only"
depends="py3-gobject3"
-makedepends="python3-dev"
-subpackages="$pkgname-doc"
+makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/OpenSCAP/openscap-daemon/archive/$pkgver.tar.gz
python-3.7.patch"
+prepare() {
+ default_prepare
+
+ # Install dbus configuration to datadir instead of sysconfdir, latter is
+ # local admins, former is packages
+ sed -e 's| "etc", "dbus-1"| "usr", "share", "dbus-1"|' \
+ -i setup.py
+}
+
build() {
python3 setup.py build
}
@@ -22,7 +31,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
rm -rf "$pkgdir"/usr/lib/systemd
}
diff --git a/testing/openscap/APKBUILD b/testing/openscap/APKBUILD
deleted file mode 100644
index 6dbf6c83934..00000000000
--- a/testing/openscap/APKBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=openscap
-pkgver=1.3.3
-pkgrel=0
-pkgdesc="NIST Certified SCAP 1.2 toolkit"
-url="https://www.open-scap.org/tools/openscap-base/"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="cmake python3-dev dbus-dev dbus-glib-dev bash libselinux-dev
- curl-dev openssl-dev libgcrypt-dev acl-dev libblkid libcap-dev libxml2-dev
- libxslt-dev openldap-dev pcre2-dev perl-xml-parser perl-xml-xpath perl-dev
- rpm-dev swig bzip2-dev asciidoc fts-dev doxygen procps-dev
- libbz2 util-linux-dev nss-dev"
-options="!check"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
-source="https://github.com/OpenSCAP/openscap/releases/download/$pkgver/openscap-$pkgver.tar.gz
- fix-ppc64le-path_max.patch
- path_mounted.patch
- "
-
-prepare() {
- default_prepare
- mkdir -p build
-}
-
-build() {
- cd "$builddir"/build
- export LIBS=-lfts
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DENABLE_DOCS=ON \
- -DENABLE_PERL=OFF \
- -DENABLE_TESTS=OFF\
- ..
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- install -Dm644 "$builddir"/dist/bash_completion.d/oscap \
- "$subpkgdir"/usr/share/bash-completion/completions/$pkgname
-}
-
-sha512sums="e230668cdf900a2f31ccabc20787dce6c4174740aa7d2cc7b91c1c095e2a5b73d81bb614aa767d2e51383b5472def360c4204e9a6c4c85110c58b9999566613e openscap-1.3.3.tar.gz
-0d8e5eb492b4439b82e35e4a87a2030f9aeff3173bda60d8ce57584fa7d7dda970ad35099e45fe46a7e135d9a55d6c2ced0a8b180556e37c7a9926de28244133 fix-ppc64le-path_max.patch
-f2157d6b1d31affe16edb184a287b69d28808123f1cc26a5a4238040d935517b307772b1f2d66271b8ee99b59a4d204930f9147b78478c83c36c7fc8718ec1d9 path_mounted.patch"
diff --git a/testing/openscap/fix-ppc64le-path_max.patch b/testing/openscap/fix-ppc64le-path_max.patch
deleted file mode 100644
index 5fd2981d871..00000000000
--- a/testing/openscap/fix-ppc64le-path_max.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/src/OVAL/probes/unix/linux/iflisteners_probe.c
-+++ b/src/OVAL/probes/unix/linux/iflisteners_probe.c
-@@ -53,6 +53,7 @@
- #include <netdb.h>
- #include <arpa/inet.h>
- #include <regex.h>
-+#include <limits.h>
-
- #include "_seap.h"
- #include "probe-api.h"
-diff --git a/src/OVAL/probes/unix/process58_probe.c b/src/OVAL/probes/unix/process58_probe.c
-index 95ef0a7..3ab2cb0 100644
---- a/src/OVAL/probes/unix/process58_probe.c
-+++ b/src/OVAL/probes/unix/process58_probe.c
-@@ -67,6 +67,7 @@
- #include <fcntl.h>
- #include <sched.h>
- #include <time.h>
-+#include <limits.h>
-
- #ifdef HAVE_PROC_DEVNAME_H
- #include <proc/devname.h>
-diff --git a/src/OVAL/probes/independent/environmentvariable58_probe.c b/src/OVAL/probes/independent/environmentvariable58_probe.c
-index 552ce67..e2490ac 100644
---- a/src/OVAL/probes/independent/environmentvariable58_probe.c
-+++ b/src/OVAL/probes/independent/environmentvariable58_probe.c
-@@ -50,6 +50,7 @@
- #include <fcntl.h>
- #include <sys/types.h>
- #include <dirent.h>
-+#include <limits.h>
-
- #include <probe/probe.h>
- #include "_seap.h"
diff --git a/testing/openscap/path_mounted.patch b/testing/openscap/path_mounted.patch
deleted file mode 100644
index 2d6361402e6..00000000000
--- a/testing/openscap/path_mounted.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/OVAL/probes/fsdev.c b/src/OVAL/probes/fsdev.c
-index c0b0f76..99bf786 100644
---- a/src/OVAL/probes/fsdev.c
-+++ b/src/OVAL/probes/fsdev.c
-@@ -38,6 +38,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <errno.h>
-+#include <paths.h>
-
- #if defined(OS_LINUX)
- # include <mntent.h>
diff --git a/testing/openscenegraph/APKBUILD b/testing/openscenegraph/APKBUILD
deleted file mode 100644
index b541a9c81d9..00000000000
--- a/testing/openscenegraph/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=openscenegraph
-pkgver=3.6.5
-pkgrel=2
-pkgdesc="High performance 3D graphics toolkit"
-url="http://www.openscenegraph.org/"
-arch="x86_64 aarch64" # gdal availability
-license="LGPL-2.1-or-later" # also Custom and wxWindows-3
-makedepends="$depends_dev cmake mesa-dev curl-dev giflib-dev zlib-dev
- freetype-dev jpeg-dev tiff-dev sdl-dev sdl2-dev libxml2-dev gdal-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/openscenegraph/OpenSceneGraph/archive/OpenSceneGraph-$pkgver.tar.gz
- musl-fixes.patch
- add-missing-include-for-ppc64le.patch
- "
-builddir="$srcdir"/OpenSceneGraph-OpenSceneGraph-$pkgver
-
-prepare() {
- default_prepare
- cmake . -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS -Wno-narrowing"
-}
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -D -m644 LICENSE.txt "$pkgdir/usr/share/doc/$pkgname/LICENSE"
- if [ -d "$pkgdir/usr/lib64" ]; then
- mv "$pkgdir/usr/lib64" "$pkgdir/usr/lib"
- fi
-}
-
-sha512sums="7002fa30a3bcf6551d2e1050b4ca75a3736013fd190e4f50953717406864da1952deb09f530bc8c5ddf6e4b90204baec7dbc283f497829846d46d561f66feb4b OpenSceneGraph-3.6.5.tar.gz
-016b09874bd6ca14cf1dba9274df4fc0413d2d97c3438135ecf6c5726029963f1ff279eb4986afe86173739512799e1e8ee5f7443e30fe1131524405a9d002be musl-fixes.patch
-a3e69609b2e3c51002f4babd1c5bd64fc9c32b14fc9232f4b4f345c6e96134bc80a0fe54ce3445059b4d0512d5ac1ec434101fe976b71f24c68b3569265e21d9 add-missing-include-for-ppc64le.patch"
diff --git a/testing/openscenegraph/add-missing-include-for-ppc64le.patch b/testing/openscenegraph/add-missing-include-for-ppc64le.patch
deleted file mode 100644
index 8731b33a88e..00000000000
--- a/testing/openscenegraph/add-missing-include-for-ppc64le.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- OpenSceneGraph-3.4.0/src/OpenThreads/pthreads/PThread.cpp
-+++ OpenSceneGraph-3.4.0/src/OpenThreads/pthreads/PThread.cpp
-@@ -57,6 +57,10 @@
-
- #include <iostream>
-
-+#ifdef __powerpc64__
-+#include <string.h>
-+#endif
-+
- using namespace OpenThreads;
-
- #ifdef DEBUG
diff --git a/testing/openscenegraph/musl-fixes.patch b/testing/openscenegraph/musl-fixes.patch
deleted file mode 100644
index 234c507e358..00000000000
--- a/testing/openscenegraph/musl-fixes.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/src/OpenThreads/pthreads/PThread.cpp
-+++ b/src/OpenThreads/pthreads/PThread.cpp
-@@ -23,7 +23,7 @@
- #include <pthread.h>
- #include <limits.h>
-
--#if defined __linux__ || defined __sun || defined __APPLE__ || ANDROID
-+#if defined __GLIBC__ || defined __sun || defined __APPLE__ || ANDROID
- #include <string.h>
- #include <sys/time.h>
- #include <sys/resource.h>
---- a/src/osgPlugins/osc/osc/OscHostEndianness.h
-+++ b/src/osgPlugins/osc/osc/OscHostEndianness.h
-@@ -51,7 +51,7 @@
-
- #else
-
-- #if defined(__GLIBC__) || defined(__ANDROID__) || defined(__CYGWIN__)
-+ #if defined(__linux__) || defined(__ANDROID__) || defined(__CYGWIN__)
- #include <endian.h>
- #if (__BYTE_ORDER == __LITTLE_ENDIAN)
- #ifndef __LITTLE_ENDIAN__
diff --git a/testing/openslide/APKBUILD b/testing/openslide/APKBUILD
new file mode 100644
index 00000000000..47babd604d8
--- /dev/null
+++ b/testing/openslide/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=openslide
+pkgver=3.4.1
+pkgrel=3
+pkgdesc="C library for reading virtual slide images"
+url="https://openslide.org"
+arch="all"
+license="LGPL-2.1-only"
+options="!check" # no test suite
+makedepends="
+ cairo-dev
+ gdk-pixbuf-dev
+ glib-dev
+ libpng-dev
+ libjpeg-turbo-dev
+ libxml2-dev
+ tiff-dev
+ openjpeg-dev
+ sqlite-dev
+ zlib-dev
+ "
+source="https://github.com/openslide/openslide/releases/download/v$pkgver/openslide-$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-tools:_tools $pkgname-doc"
+
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+_tools() {
+ pkgdesc="Utilities for reading virtual slide images"
+ amove usr/bin
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+dfab4de1cc0c5599d0128e59957a43ecf6f75ea773d87e58967afe54733e4bcc0ef08573723194a33e7b1da8054a458f509f15a1b4830776d2851b83a9af279b openslide-3.4.1.tar.gz
+"
diff --git a/testing/opensm/APKBUILD b/testing/opensm/APKBUILD
index 4ce7330eb3f..700bc87946a 100644
--- a/testing/opensm/APKBUILD
+++ b/testing/opensm/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Jann - Ove Risvik <jann.ove@usaklig.com>
# Maintainer:
pkgname=opensm
-pkgver=3.3.23
-pkgrel=0
+pkgver=3.3.24
+pkgrel=2
pkgdesc="OpenSM InfiniBand subnet manager"
url="https://github.com/linux-rdma/opensm"
arch="x86 x86_64 ppc64le"
@@ -34,5 +34,7 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="249143fcf2cac0504923992d46dfbd6821aad3da55ecc12c92b273b4e59196f88d9d1802d9f58ae6f1ace49958e0222424aea9b48e5aba519e5a5736fc51c3fe opensm-3.3.23.tar.gz
-c5f07423c9726bc4671327596d8585a669b25d75d9143db99e621ab6a08ed4aa0ee22e9725afe10bf4bf98ed503a06e9f52639f41a3cae61a34987b4ed643a32 0001-musl-fixes.patch"
+sha512sums="
+292449b1282008589ce6cf6a649bb64afabf359d23a8fa4afa38217801256a6a5f06912c9e463c0fdac30039aff9eceb212e8560bf05c7253c4e73080e16072e opensm-3.3.24.tar.gz
+c5f07423c9726bc4671327596d8585a669b25d75d9143db99e621ab6a08ed4aa0ee22e9725afe10bf4bf98ed503a06e9f52639f41a3cae61a34987b4ed643a32 0001-musl-fixes.patch
+"
diff --git a/testing/opensmtpd-filter-dkimsign/APKBUILD b/testing/opensmtpd-filter-dkimsign/APKBUILD
new file mode 100644
index 00000000000..66591477885
--- /dev/null
+++ b/testing/opensmtpd-filter-dkimsign/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Malte Voos <malte@malvo.org>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Malte Voos <malte@malvo.org>
+_pkgname=filter-dkimsign
+pkgname=opensmtpd-$_pkgname
+pkgver=0.6
+pkgrel=1
+pkgdesc="OpenSMTPD filter for DKIM signing"
+url="http://imperialat.at/dev/filter-dkimsign/"
+arch="all"
+license="ISC"
+makedepends="libopensmtpd-dev openssl-dev mandoc"
+install="$pkgname.pre-install $pkgname.post-install"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+source="http://imperialat.at/releases/filter-dkimsign-$pkgver.tar.gz
+ dkimsign-genkey
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ make -f Makefile.gnu HAVE_ED25519=1
+}
+
+package() {
+ make -f Makefile.gnu DESTDIR="$pkgdir" BINDIR=/usr/lib/opensmtpd/ install
+
+ install -D -m755 "$srcdir"/dkimsign-genkey -t "$pkgdir"/usr/sbin/
+}
+
+sha512sums="
+1efab386a020c6a3cbf6059ce0feea539fa62be0990fd8538c4b152fa0c302d7bfffa7c7bb74643c25e47c20250f600f1371d2725dc3178ad103ce585530c0ce filter-dkimsign-0.6.tar.gz
+0e6e1db509a8299c97070f82b2c4d832c9f19d8d8909e21563c3d589ef29ebfd5b867b3f5271a6ebe6b97196569a7b9d6403a91d9c0c1db72358d6c12abbc4c5 dkimsign-genkey
+"
diff --git a/testing/opensmtpd-filter-dkimsign/dkimsign-genkey b/testing/opensmtpd-filter-dkimsign/dkimsign-genkey
new file mode 100644
index 00000000000..f854fc60e29
--- /dev/null
+++ b/testing/opensmtpd-filter-dkimsign/dkimsign-genkey
@@ -0,0 +1,101 @@
+#!/bin/sh
+#---help---
+# Usage: dkimsign-genkey [options]
+#
+# Generate DKIM signing key and print instructions for DNS and OpenSMTPD.
+#
+# Options:
+# -a <alg> The signing algorithm to use: "rsa" or "ed25519".
+#
+# -d <domain> The domain name where the public key will be found
+# (informational only).
+#
+# -k <file> Where to write the private key; defaults to
+# /etc/smtpd/dkim/<selector>.key.
+#
+# -s <selector> The selector within the _domainkey subdomain of <domain>
+# where the public key will be found (informational only).
+#
+# -h Print this message and exit.
+#
+# Please report bugs at <https://gitlab.alpinelinux.org/alpine/aports/-/issues>.
+#---help---
+set -euo pipefail
+
+PROGNAME='dkimsign-genkey'
+FILTER_USER='dkimsign'
+FILTER_GROUP='dkimsign'
+
+die() {
+ printf '%s: %s\n' "$PROGNAME" "$1" >&2
+ exit 1
+}
+
+help() {
+ local tag='#---help---'
+ sed -n "/^$tag/,/^$tag/{/^$tag/d; s/^# \\?//; p}" "$0"
+}
+
+alg='rsa'
+domain='example.org'
+keyfile=
+selector='mail'
+while getopts ':a:d:o:s:h' OPT; do
+ case "$OPT" in
+ a) alg=$OPTARG;;
+ d) domain=$OPTARG;;
+ k) keyfile=$OPTARG;;
+ s) selector=$OPTARG;;
+ h) help; exit 0;;
+ \?) die "unknown option: -$OPTARG (try '$0 -h')";;
+ esac
+done
+
+: ${keyfile:="/etc/smtpd/dkim/$selector.key"}
+txtfile="${keyfile%.key}.txt"
+
+command -v openssl >/dev/null \
+ || die "openssl command is not installed, run: 'apk add cmd:openssl'"
+
+[ "$(id -u)" -eq 0 ] \
+ || die 'must be run as root'
+
+[ -d "${keyfile%/*}" ] \
+ || install -m 750 -g "$FILTER_GROUP" -d "${keyfile%/*}"
+
+case "$alg" in
+ rsa)
+ openssl genpkey -algorithm rsa -pkeyopt rsa_keygen_bits:2048 -outform PEM -out "$keyfile"
+ pubkey=$(openssl rsa -in "$keyfile" -pubout \
+ | sed '1d;:nl;${s/-----.*//;q;};N;s/\n//g;b nl')
+ ;;
+ ed25519)
+ openssl genpkey -algorithm ed25519 -outform PEM -out "$keyfile"
+ pubkey=$(openssl pkey -outform DER -pubout -in "$keyfile" \
+ | tail -c +13 \
+ | openssl base64)
+ ;;
+ *) die "unknown algorithm: $alg";;
+esac
+
+chgrp "$FILTER_GROUP" "$keyfile"
+chmod 440 "$keyfile"
+
+printf '%s._domainkey.%s.\tIN\tTXT\t"v=DKIM1; k=%s; p=%s;"\n' \
+ "$selector" "$domain" "$alg" "$pubkey" > "$txtfile"
+
+cat <<EOF
+
+Add the following record to DNS:
+------✂-------------------------
+$(cat "$txtfile")
+------✂-------------------------
+
+Declare dkimsign filter in /etc/smtpd/smtpd.conf:
+------✂------------------------------------------
+filter dkimsign \\
+ proc-exec "filter-dkimsign -a $alg-sha256 -d $domain -s $selector -k $keyfile" \\
+ user $FILTER_USER \\
+ group $FILTER_GROUP
+------✂------------------------------------------
+EOF
diff --git a/testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.post-install b/testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.post-install
new file mode 100644
index 00000000000..7037ce1e63f
--- /dev/null
+++ b/testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+* You can use 'dkimsign-genkey' to generate a DKIM key.
+EOF
+
+exit 0
diff --git a/testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.pre-install b/testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.pre-install
new file mode 100644
index 00000000000..625becb4096
--- /dev/null
+++ b/testing/opensmtpd-filter-dkimsign/opensmtpd-filter-dkimsign.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S dkimsign 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G dkimsign -g opensmtpd-filter-dkimsign dkimsign 2>/dev/null
+
+exit 0
diff --git a/testing/opensmtpd-filter-rspamd/APKBUILD b/testing/opensmtpd-filter-rspamd/APKBUILD
deleted file mode 100644
index 19fa83a6538..00000000000
--- a/testing/opensmtpd-filter-rspamd/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=opensmtpd-filter-rspamd
-_pkgname=filter-rspamd
-pkgver=0.1.6
-pkgrel=1
-pkgdesc="OpenSMTPD filter integration for Rspamd"
-url="https://github.com/poolpOrg/filter-rspamd"
-arch="all"
-license="ISC"
-options="!check" # No test suite
-depends="opensmtpd"
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/poolpOrg/filter-rspamd/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- go build
-}
-
-package() {
- install -Dm 0555 "$_pkgname-$pkgver" "$pkgdir"/usr/lib/opensmtpd/"$_pkgname"
-}
-
-sha512sums="d452143902c713f2d277651e8322b6da00d8531f32b8c78f7c945b4e9302083df2ad419614ed2a9d4d31270d8edd0c4e9ac8a11c9f470fcf8364347e101ac456 opensmtpd-filter-rspamd-0.1.6.tar.gz"
diff --git a/testing/openspades/APKBUILD b/testing/openspades/APKBUILD
index 1c64cf597be..4c8ea197028 100644
--- a/testing/openspades/APKBUILD
+++ b/testing/openspades/APKBUILD
@@ -3,39 +3,56 @@
pkgname=openspades
pkgver=0.1.3
_resource_version=r33
-pkgrel=2
+pkgrel=5
pkgdesc="open-source voxel firt person shooter"
url="http://openspades.yvt.jp/"
arch="x86_64 x86" #disabled for the other architectures due to compiling problems
license="GPL-3.0-only"
-depends="bash openal-soft glew sdl2 sdl2_image freetype opus opusfile libjpeg-turbo libxinerama libxft zip"
-makedepends="grep make cmake openal-soft-dev glew-dev curl-dev sdl2-dev sdl2_image-dev freetype-dev opus-dev opusfile-dev libjpeg-turbo-dev libxinerama-dev libxft-dev"
+depends="bash openal-soft glew opus libjpeg-turbo libxinerama libxft zip"
+makedepends="
+ cmake
+ curl-dev
+ freetype-dev
+ glew-dev
+ grep
+ imagemagick
+ libjpeg-turbo-dev
+ libxft-dev
+ libxinerama-dev
+ openal-soft-dev
+ opus-dev
+ opusfile-dev
+ samurai
+ sdl2-dev
+ sdl2_image-dev
+ "
subpackages="$pkgname-doc"
options="!check" #no testsuite
source="$pkgname-$pkgver.zip::https://github.com/yvt/openspades/archive/v$pkgver.zip
https://github.com/yvt/openspades-paks/releases/download/$_resource_version/OpenSpadesDevPackage-$_resource_version.zip
fix-resources.patch"
-prepare() {
- default_prepare
- mv "$srcdir/Nonfree/pak000-Nonfree.pak" "$srcdir/$pkgname-$pkgver/Resources"
- mv "$srcdir/OfficialMods/font-unifont.pak" "$srcdir/$pkgname-$pkgver/Resources"
-}
-
build() {
- cmake CMakeLists.txt \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DOPENSPADES_RESDIR=/usr/share/$pkgname/Resources \
- -DOPENSPADES_INSTALL_RESOURCES=share/$pkgname/Resources \
- -DOPENSPADES_INSTALL_BINARY=bin
- make
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DOPENSPADES_RESDIR=/usr/share/$pkgname/Resources \
+ -DOPENSPADES_INSTALL_RESOURCES=share/$pkgname/Resources \
+ -DOPENSPADES_INSTALL_BINARY=bin
+ cmake --build build
+
+ # need to be installed by cmake
+ mv "$srcdir/Nonfree/pak000-Nonfree.pak" build/Resources/
+ mv "$srcdir/OfficialMods/font-unifont.pak" build/Resources/
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm644 "$srcdir"/Nonfree/LICENSE.md "$pkgdir"/usr/share/doc/openspades/ASSETS_LICENSE
}
-sha512sums="c7164dc5c9ac67ec20ef174b18e2ed7383fbe8ccd2d2e725b92256ee58273b96d6c2fa106ea7f8f196505f847340e381c221f97fe797a040575bb2dd6e228e6c openspades-0.1.3.zip
+sha512sums="
+c7164dc5c9ac67ec20ef174b18e2ed7383fbe8ccd2d2e725b92256ee58273b96d6c2fa106ea7f8f196505f847340e381c221f97fe797a040575bb2dd6e228e6c openspades-0.1.3.zip
eb16dee8adfdd93388eac6309908811af02afdcdd6d009e2ab30b87a6b9bb495e77d3de750af18a3209dcf01ddb8400a6b03c1d570f1b77f8a1d2e5f26eb329e OpenSpadesDevPackage-r33.zip
-f9d01fb4443c5cc8a60ef1d115bff21ddbd6e1ee606391d04962228c5b986b5ec27972350aa921f6837e8d73435ba84abdbd89adc1767282625d15defa947ebe fix-resources.patch" \ No newline at end of file
+f9d01fb4443c5cc8a60ef1d115bff21ddbd6e1ee606391d04962228c5b986b5ec27972350aa921f6837e8d73435ba84abdbd89adc1767282625d15defa947ebe fix-resources.patch
+"
diff --git a/testing/openssh-askpass/APKBUILD b/testing/openssh-askpass/APKBUILD
deleted file mode 100644
index 7ce2373a43d..00000000000
--- a/testing/openssh-askpass/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=openssh-askpass
-pkgver=7.6_p1
-_myver=${pkgver%_*}${pkgver#*_}
-pkgrel=0
-pkgdesc="A passphrase dialog for OpenSSH and GTK"
-url="http://www.openssh.org/portable.html"
-arch="all"
-license="AS-IS"
-depends="openssh-client"
-options="!check"
-makedepends="gtk+2.0-dev"
-subpackages=""
-source="https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-$_myver.tar.gz"
-builddir="$srcdir"/openssh-$_myver/contrib
-
-build () {
- cd "$builddir"
- make gnome-ssh-askpass2
-}
-
-package() {
- cd "$builddir"
- install -Dm755 gnome-ssh-askpass2 "$pkgdir"/usr/lib/ssh/gtk-ssh-askpass
- install -d "$pkgdir"/etc/profile.d
- cat > "$pkgdir"/etc/profile.d/openssh-askpass.sh <<- EOF
- SSH_ASKPASS=/usr/lib/ssh/gtk-ssh-askpass
- export SSH_ASKPASS
- EOF
- chmod +x "$pkgdir"/etc/profile.d/openssh-askpass.sh
-}
-
-sha512sums="de17fdcb8239401f76740c8d689a8761802f6df94e68d953f3c70b9f4f8bdb403617c48c1d01cc8c368d88e9d50aee540bf03d5a36687dfb39dfd28d73029d72 openssh-7.6p1.tar.gz"
diff --git a/testing/openssl1.1-compat/APKBUILD b/testing/openssl1.1-compat/APKBUILD
new file mode 100644
index 00000000000..29eb65bacac
--- /dev/null
+++ b/testing/openssl1.1-compat/APKBUILD
@@ -0,0 +1,177 @@
+# Contributor: Ariadne Conill <ariadne@dereferenced.org>
+# Maintainer: Timo Teras <timo.teras@iki.fi>
+pkgname=openssl1.1-compat
+pkgver=1.1.1w
+_abiver=${pkgver%.*}
+pkgrel=0
+pkgdesc="toolkit for transport layer security (TLS) - version 1.1"
+url="https://www.openssl.org/"
+arch="all"
+license="OpenSSL"
+replaces="libressl"
+depends_dev="!openssl-dev"
+makedepends_build="perl"
+makedepends_host="linux-headers"
+makedepends="$makedepends_host $makedepends_build"
+subpackages="$pkgname-dbg $pkgname-libs-static:_static $pkgname-dev
+ 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"
+pcprefix="openssl$_abiver:pc:"
+
+# secfixes:
+# 1.1.1u-r1:
+# - CVE-2023-3446
+# 1.1.1t-r2:
+# - CVE-2023-0465
+# 1.1.1t-r1:
+# - CVE-2023-0464
+# 1.1.1t-r0:
+# - CVE-2022-4304
+# - CVE-2022-4450
+# - CVE-2023-0215
+# - CVE-2023-0286
+# 1.1.1q-r0:
+# - CVE-2022-2097
+# 1.1.1n-r0:
+# - CVE-2022-0778
+# 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
+# 0:
+# - CVE-2022-1292
+# - CVE-2022-2068
+
+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/ssl1.1 \
+ shared \
+ no-zlib \
+ no-async \
+ no-comp \
+ no-idea \
+ no-mdc2 \
+ no-rc5 \
+ no-ec2m \
+ no-sm2 \
+ no-sm4 \
+ no-ssl2 \
+ 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_sw install_ssldirs
+ # remove the script c_rehash
+ rm "$pkgdir"/usr/bin/c_rehash
+ mv -f "$pkgdir"/usr/bin/openssl "$pkgdir"/usr/bin/openssl$_abiver
+}
+
+_libcrypto() {
+ pkgdesc="Crypto library from openssl"
+ replaces="libressl2.7-libcrypto"
+ 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/
+}
+
+_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
+}
+
+_static() {
+ default_static
+}
+
+sha512sums="
+b4c625fe56a4e690b57b6a011a225ad0cb3af54bd8fb67af77b5eceac55cc7191291d96a660c5b568a08a2fbf62b4612818e7cca1bb95b2b6b4fc649b0552b6d openssl-1.1.1w.tar.gz
+43c3255118db6f5f340dc865c0f25ccbcafe5bf7507585244ca59b4d27daf533d6c3171aa32a8685cbb6200104bec535894b633de13feaadff87ab86739a445a man-section.patch
+e040f23770d52b988578f7ff84d77563340f37c026db7643db8e4ef18e795e27d10cb42cb8656da4d9c57a28283a2828729d70f940edc950c3422a54fea55509 ppc64.patch
+"
diff --git a/testing/openssl1.1-compat/man-section.patch b/testing/openssl1.1-compat/man-section.patch
new file mode 100644
index 00000000000..0606897f45e
--- /dev/null
+++ b/testing/openssl1.1-compat/man-section.patch
@@ -0,0 +1,54 @@
+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 | 6 ++++--
+ util/process_docs.pl | 3 ++-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
+index 1292053546f5..c034d21884d8 100644
+--- a/Configurations/unix-Makefile.tmpl
++++ b/Configurations/unix-Makefile.tmpl
+@@ -183,7 +183,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=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}");
diff --git a/testing/openssl1.1-compat/ppc64.patch b/testing/openssl1.1-compat/ppc64.patch
new file mode 100644
index 00000000000..c75ceedba2c
--- /dev/null
+++ b/testing/openssl1.1-compat/ppc64.patch
@@ -0,0 +1,96 @@
+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/testing/opensubdiv/APKBUILD b/testing/opensubdiv/APKBUILD
deleted file mode 100644
index cca5ff451c2..00000000000
--- a/testing/opensubdiv/APKBUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Contributor: Mark Riedesel <mark@klowner.com>
-# Maintainer: Mark Riedesel <mark@klowner.com>
-pkgname=opensubdiv
-_pkgname=OpenSubdiv
-pkgver=3.0.5
-_pkgver=${pkgver//./_}
-pkgrel=6
-pkgdesc="An Open-Source subdivision surface library"
-url="http://graphics.pixar.com/opensubdiv"
-arch="all"
-license="Apache-2.0"
-makedepends="cmake glew-dev glfw-dev doxygen py3-docutils
- libxcursor-dev libxrandr-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-tutorials $pkgname-tools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/PixarAnimationStudios/$_pkgname/archive/v$_pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$_pkgver"
-
-build() {
- mkdir -p "$builddir"/build
- cd "$builddir"/build
-
- cmake .. \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_SKIP_RPATH=TRUE \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DNO_TBB=TRUE \
- -DNO_PTEX=TRUE \
- -DNO_MAYA=TRUE \
- -DNO_CUDA=TRUE \
- -DNO_OPENCL=TRUE
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-tutorials() {
- pkgdesc="$pkgdesc (tutorials)"
- depends="$pkgname"
-
- cd "$pkgdir"
-
- mkdir -p "$subpkgdir"/usr/bin/
- local tut; for tut in ./usr/bin/tutorials/*; do
- mv $tut "$subpkgdir"/usr/bin/opensubdiv_${tut##*/}
- done
- rmdir ./usr/bin/tutorials
-}
-
-tools() {
- pkgdesc="$pkgdesc (tools)"
-
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
-}
-
-sha512sums="cee4c13fd0ef0a8dac6f880bdda8b6eed1ac3c17f7eadbd5f00bb8fe0140ca12a244b7e51edc98186af0551a26ac88e402651837f3f49195d3a9697437b86bf8 opensubdiv-3.0.5.tar.gz"
diff --git a/testing/opentelemetry-cpp/APKBUILD b/testing/opentelemetry-cpp/APKBUILD
new file mode 100644
index 00000000000..92997fa44c7
--- /dev/null
+++ b/testing/opentelemetry-cpp/APKBUILD
@@ -0,0 +1,108 @@
+# Contributor: Severin Neumann <neumanns@cisco.com>
+# Maintainer: Severin Neumann <neumanns@cisco.com>
+pkgname=opentelemetry-cpp
+pkgver=1.11.0
+pkgrel=2
+_opentelemetryproto_ver=1.0.0
+pkgdesc="OpenTelemetry C++"
+url="https://opentelemetry.io/"
+arch="all !s390x" # failing test (TraceIdRatioBasedSampler.ShouldSampleWithoutContext)
+license="Apache-2.0"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ $pkgname-exporter-otlp-common=$pkgver-r$pkgrel
+ $pkgname-exporter-otlp-grpc=$pkgver-r$pkgrel
+ $pkgname-exporter-otlp-http=$pkgver-r$pkgrel
+ $pkgname-exporter-zipkin=$pkgver-r$pkgrel
+ "
+makedepends="
+ abseil-cpp-dev
+ c-ares-dev
+ cmake
+ curl-dev
+ grpc-dev
+ nlohmann-json
+ protobuf-dev
+ re2-dev
+ samurai
+ "
+checkdepends="
+ benchmark-dev
+ gtest-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-exporter-otlp-common
+ $pkgname-exporter-otlp-grpc
+ $pkgname-exporter-otlp-http
+ $pkgname-exporter-zipkin
+ "
+source="
+ https://github.com/open-telemetry/opentelemetry-cpp/archive/v$pkgver/opentelemetry-cpp-v$pkgver.tar.gz
+ opentelemetry-proto-$_opentelemetryproto_ver.tar.gz::https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v$_opentelemetryproto_ver.tar.gz
+ gcc13.patch
+ "
+
+build() {
+ # skip some broken asm in benchmark 1.8.1
+ export CXXFLAGS="$CXXFLAGS -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY"
+ cmake -B build -G Ninja -Wno-dev \
+ -DOTELCPP_PROTO_PATH="$srcdir/opentelemetry-proto-$_opentelemetryproto_ver" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_W3CTRACECONTEXT_TEST="$(want_check && echo ON || echo OFF)" \
+ -DCMAKE_BUILD_TYPE=None \
+ -DWITH_ABSEIL=ON \
+ -DWITH_STL=ON \
+ -DWITH_EXAMPLES=OFF \
+ -DWITH_ZPAGES=OFF \
+ -DWITH_OTLP_GRPC=ON \
+ -DWITH_OTLP_HTTP=ON \
+ -DWITH_ZIPKIN=ON \
+ -DWITH_PROMETHEUS=OFF \
+ -DWITH_LOGS_PREVIEW=OFF \
+ -DWITH_ASYNC_EXPORT_PREVIEW=OFF \
+ -DWITH_METRICS_EXEMPLAR_PREVIEW=OFF
+ cmake --build build
+}
+
+check() {
+ cd build
+ # these seem to fail on 32-bit as passing an invalid curl option
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j1 -E '(SendPostRequest.*)'
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+common() {
+ pkgdesc="OpenTelemetry C++ OTLP Common Libraries"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ amove usr/lib/libopentelemetry_otlp*
+}
+
+http() {
+ pkgdesc="OpenTelemetry C++ OTLP HTTP exporter"
+ depends="$pkgname=$pkgver-r$pkgrel $pkgname-exporter-otlp-common=$pkgver-r$pkgrel"
+ amove usr/lib/libopentelemetry_exporter_otlp_http*
+}
+
+grpc() {
+ pkgdesc="OpenTelemetry C++ OTLP gRPC exporter"
+ depends="$pkgname=$pkgver-r$pkgrel $pkgname-exporter-otlp-common=$pkgver-r$pkgrel"
+ amove usr/lib/libopentelemetry_exporter_otlp_grpc*
+}
+
+zipkin() {
+ pkgdesc="OpenTelemetry C++ OTLP Zipkin exporter"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ amove usr/lib/libopentelemetry_exporter_zipkin*
+}
+
+sha512sums="
+906df3cd44d88f7846231bc14c7305b9c6d9ee22ebd5a0cce21d6da1d7d62e72efe6101a2518d969a238eb3d6bbdf75e8017d7ab42edc0409391700973602006 opentelemetry-cpp-v1.11.0.tar.gz
+74de78304a91fe72cfcdbd87fcb19c0d6338c161d6624ce09eac0527b1b43b8a5d8790ae055e1d3d44319eaa070a506f47e740f888c91d724a0aef8b509688f0 opentelemetry-proto-1.0.0.tar.gz
+ca839f8bac0b16855fdbe539c21bf16de0fcd13802bb0ba62d25db99a6bf1fa5e6911dbb19ee0523f39bb47188e5c657e2fd10193908c060a6b74f8d2c5f0fc3 gcc13.patch
+"
diff --git a/testing/opentelemetry-cpp/gcc13.patch b/testing/opentelemetry-cpp/gcc13.patch
new file mode 100644
index 00000000000..5933a699dfc
--- /dev/null
+++ b/testing/opentelemetry-cpp/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/api/include/opentelemetry/trace/propagation/detail/hex.h b/api/include/opentelemetry/trace/propagation/detail/hex.h
+index c8bd58f..aecdedd 100644
+--- a/api/include/opentelemetry/trace/propagation/detail/hex.h
++++ b/api/include/opentelemetry/trace/propagation/detail/hex.h
+@@ -5,6 +5,7 @@
+
+ #include <algorithm>
+ #include <cstring>
++#include <cstdint>
+
+ #include "opentelemetry/nostd/string_view.h"
+ #include "opentelemetry/version.h"
diff --git a/testing/openttd-opengfx/APKBUILD b/testing/openttd-opengfx/APKBUILD
index ccb5576cfb3..13676fb1015 100644
--- a/testing/openttd-opengfx/APKBUILD
+++ b/testing/openttd-opengfx/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Adrian Siekierka <kontakt@asie.pl>
-# Maintainer: Adrian Siekierka <kontakt@asie.pl>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=openttd-opengfx
-pkgver=0.6.0
+pkgver=7.1
pkgrel=0
pkgdesc="Free graphics set for OpenTTD"
url="https://www.openttd.org/"
@@ -13,12 +13,15 @@ builddir="$srcdir/opengfx-$pkgver"
install_if="openttd"
prepare() {
+ default_prepare
+
tar xf opengfx-$pkgver.tar
}
package() {
- mkdir -p "$pkgdir/usr/share/games/openttd/data"
- install -Dm644 *.grf *.obg "$pkgdir/usr/share/games/openttd/data"
+ install -Dm644 ./*.grf ./*.obg -t "$pkgdir"/usr/share/games/openttd/data
}
-sha512sums="712812744b7d4dea4d704b179cc6d2078626f1582e73283ff8b512a1fbe46bdf4e293e8ed678965d280ad9fe3665d7cd291dc89b65212ee01451034f356f9d57 opengfx-0.6.0-all.zip"
+sha512sums="
+89dbb5cb45f3d720290d78904611ee3173617d97f4f49176fb10949b7d78bb0348b1aa7e12743c0cf3834b09ed73c1e161e04ae7532f2baffe4f1259bc8df04c opengfx-7.1-all.zip
+"
diff --git a/testing/openttd-openmsx/APKBUILD b/testing/openttd-openmsx/APKBUILD
index c5a80c7b923..5ea81202a49 100644
--- a/testing/openttd-openmsx/APKBUILD
+++ b/testing/openttd-openmsx/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=openttd-openmsx
-pkgver=0.3.1
+pkgver=0.4.2
pkgrel=0
pkgdesc="Music Base Set for OpenTTD"
url="https://www.openttd.org/"
@@ -12,6 +12,12 @@ source="https://cdn.openttd.org/openmsx-releases/$pkgver/openmsx-$pkgver-all.zip
builddir="$srcdir/openmsx-$pkgver"
install_if="openttd"
+prepare() {
+ default_prepare
+
+ tar xf openmsx-$pkgver.tar
+}
+
package() {
local file
for file in *.mid openmsx.obm; do
@@ -20,4 +26,6 @@ package() {
done
}
-sha512sums="d17856fc70796eadb798b133af8a987ff9887c7f0d736e48bd27e9451eb122935271779b65e098e061c1316def455f56da6caa1d448e2bf111ecf8c189d3fbc8 openmsx-0.3.1-all.zip"
+sha512sums="
+0f2e122bdd7d51fd6ed276f343a1daaf61c7f43f8d9178ec7b945fd1d4d1166e981b0764be1ac8c12e2fc3da24a189767d8c24e15e092346822b6417a33676b9 openmsx-0.4.2-all.zip
+"
diff --git a/testing/openttd-opensfx/APKBUILD b/testing/openttd-opensfx/APKBUILD
index 2000521298a..52c3b0e0ce7 100644
--- a/testing/openttd-opensfx/APKBUILD
+++ b/testing/openttd-opensfx/APKBUILD
@@ -1,20 +1,27 @@
# Contributor: Adrian Siekierka <kontakt@asie.pl>
-# Maintainer: Adrian Siekierka <kontakt@asie.pl>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=openttd-opensfx
-pkgver=0.2.3
-pkgrel=1
+pkgver=1.0.3
+pkgrel=0
pkgdesc="Free sound effect set for OpenTTD"
url="https://www.openttd.org/"
arch="noarch"
-license="CC-SamplingPlus-1.0"
+license="CC-BY-SA-3.0 GPL-2.0-or-later CDDL-1.1"
options="!check" # No test suite
source="https://cdn.openttd.org/opensfx-releases/$pkgver/opensfx-$pkgver-all.zip"
builddir="$srcdir/opensfx-$pkgver"
install_if="openttd"
+prepare() {
+ default_prepare
+
+ tar xf opensfx-$pkgver.tar
+}
+
package() {
- mkdir -p "$pkgdir/usr/share/games/openttd/data"
- install -Dm644 *.cat *.obs "$pkgdir/usr/share/games/openttd/data"
+ install -Dm644 ./*.cat ./*.obs -t "$pkgdir"/usr/share/games/openttd/data
}
-sha512sums="ee4f4659201f1b6829fcea3c66416573d11e50988ef33452c2e9867bee8e68ddbf978ca805802b2b4188c624e814816300e69c8b78bb80c9604841be706c96cc opensfx-0.2.3-all.zip"
+sha512sums="
+4a3f0d19efe97729a1918101b8cb59a01a84aae43e432d697c9ca9af38296e1de0665b705dba0b3a29b8b04df6629c98eb8690534c7e70566f573ce72cab30b0 opensfx-1.0.3-all.zip
+"
diff --git a/testing/openttd/APKBUILD b/testing/openttd/APKBUILD
index bb826bf1596..8683114f3eb 100644
--- a/testing/openttd/APKBUILD
+++ b/testing/openttd/APKBUILD
@@ -1,43 +1,44 @@
# Contributor: Adrian Siekierka <kontakt@asie.pl>
-# Maintainer: Adrian Siekierka <kontakt@asie.pl>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=openttd
-pkgver=1.10.1
-pkgrel=0
+pkgver=13.4
+pkgrel=1
pkgdesc="Open source version of the Transport Tycoon Deluxe simulator"
url="https://www.openttd.org"
arch="all"
license="GPL-2.0-or-later"
-makedepends="fontconfig-dev freetype-dev icu-dev libpng-dev lzo-dev sdl2-dev xz-dev zlib-dev"
-checkdepends="openttd-opengfx"
+makedepends="
+ cmake
+ fontconfig-dev
+ fluidsynth-dev
+ freetype-dev
+ icu-dev
+ libpng-dev
+ lzo-dev
+ samurai
+ sdl2-dev
+ xz-dev
+ zlib-dev
+ "
subpackages="$pkgname-doc $pkgname-lang::noarch"
-source="https://cdn.openttd.org/openttd-releases/$pkgver/openttd-$pkgver-source.tar.xz"
+source="https://cdn.openttd.org/openttd-releases/$pkgver/openttd-$pkgver-source.tar.xz
+ no-sse4.patch
+ "
+options="!check" # TODO: find how to start test suite, no check implemented
build() {
- # OpenTTD's builtin strip does not work when cross-compiling,
- # but it will be done automatically later in the package build.
- ./configure \
- --build="$CBUILD" \
- --host="$CHOST" \
- --disable-strip \
- --prefix-dir=/usr \
- --binary-dir=bin \
- --install-dir="$pkgdir" \
- --with-sdl \
- --with-zlib \
- --with-liblzma \
- --with-liblzo2 \
- --with-freetype \
- --with-fontconfig \
- --without-icu
- make
-}
-
-check() {
- make test
+ cmake -B build \
+ -G "Ninja" \
+ -DCMAKE_INSTALL_BINDIR=bin \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_DATADIR=share/games \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,stack-size=1048576"
+ cmake --build build
}
package() {
- make install
+ DESTDIR="$pkgdir" cmake --build build --target install
}
lang() {
@@ -49,4 +50,7 @@ lang() {
-exec mv {} "$subpkgdir"/{} \;
}
-sha512sums="9e391c2c18687ce9d6fb1094da5dac1166ec409b17f5f4745486b24185e01380cfd806157b7fb9298c58f790995b43bc8c93d993e6a7e36a5b7cf153b7a1de89 openttd-1.10.1-source.tar.xz"
+sha512sums="
+84f57a39c0dade44f0e6153dff7a40eec0da8e2f892ce870d5f9e037f80daa5c7c46ff786fa51c3671366dd5056504cd7ccbc1c4e5bce8b2c5575533b454c001 openttd-13.4-source.tar.xz
+fef70a685b4d440a0c1a6b6cde94df2dcada7ee10f4b213ee0a649dfbbb5de800aed06a4f066b2be5369147b1ecd83ad6b89bdb06138c46b250ca7f75c95b5a4 no-sse4.patch
+"
diff --git a/testing/openttd/no-sse4.patch b/testing/openttd/no-sse4.patch
new file mode 100644
index 00000000000..3966acc5666
--- /dev/null
+++ b/testing/openttd/no-sse4.patch
@@ -0,0 +1,13 @@
+this sets the sources to use sse4 instructions, which is above our baseline.
+it also enables sse4 on pure-x86 with our builds, so best to disable
+--- a/cmake/FindSSE.cmake
++++ b/cmake/FindSSE.cmake
+@@ -12,6 +12,7 @@
+ #include <xmmintrin.h>
+ #include <smmintrin.h>
+ #include <tmmintrin.h>
+- int main() { return 0; }"
++ # die!
++ int main() { *(int *)0 = 0; }"
+ SSE_FOUND
+ )
diff --git a/testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch b/testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch
deleted file mode 100644
index 9a6133e8e25..00000000000
--- a/testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch b/testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch
-new file mode 100644
-index 0000000000..c320f05aab
---- /dev/null
-+++ b/testing/openv2g/0001-Enable-XMLDSIG-codec-support.patch
-@@ -0,0 +1,14 @@
-+diff --git a/src/xmldsig/xmldsigEXIDatatypes.h b/Release/src/xmldsig/xmldsigEXIDatatypes.h
-+index 8b06393..ee7ac88 100755
-+--- a/src/xmldsig/xmldsigEXIDatatypes.h
-++++ b/src/xmldsig/xmldsigEXIDatatypes.h
-+@@ -44,8 +44,8 @@ extern "C" {
-+
-+ #define SUPPORT_YES 1
-+ #define SUPPORT_NO 2
-+-#define DEPLOY_XMLDSIG_CODEC SUPPORT_NO
-+-#define DEPLOY_XMLDSIG_CODEC_FRAGMENT SUPPORT_NO
-++#define DEPLOY_XMLDSIG_CODEC SUPPORT_YES
-++#define DEPLOY_XMLDSIG_CODEC_FRAGMENT SUPPORT_YES
-+
-+ #if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
diff --git a/testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch b/testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch
deleted file mode 100644
index df9da8bb8b3..00000000000
--- a/testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch b/testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch
-new file mode 100644
-index 0000000000..bf76a6943c
---- /dev/null
-+++ b/testing/openv2g/0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch
-@@ -0,0 +1,13 @@
-+diff --git a/src/codec/EXIConfig.h b/Release/src/codec/EXIConfig.h
-+index edbb2dc..24669f6 100755
-+--- a/src/codec/EXIConfig.h
-++++ b/src/codec/EXIConfig.h
-+@@ -79,7 +79,7 @@ extern "C" {
-+ *
-+ * ASCII or UCS
-+ * */
-+-#define STRING_REPRESENTATION STRING_REPRESENTATION_UCS
-++#define STRING_REPRESENTATION STRING_REPRESENTATION_ASCII
-+
-+
-+ /* in the case of ASCII an extra char (null terminator) for printf and other functions is useful */
diff --git a/testing/openv2g/APKBUILD b/testing/openv2g/APKBUILD
deleted file mode 100644
index f65f4b93c9e..00000000000
--- a/testing/openv2g/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Olliver Schinagl <oliver@schinagl.nl>
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-pkgname=openv2g
-pkgver=0.9.4
-pkgrel=1
-pkgdesc="Implements ISO IEC 15118 and also the DIN 70121 vehicle to grid (V2G) communication interface"
-url="https://openv2g.org/"
-arch="all"
-license="LGPL-3.0-or-later"
-options="!check" # No tests available
-subpackages="lib$pkgname:libs $pkgname-dev"
-source="
- 0001-Enable-XMLDSIG-codec-support.patch
- 0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch
- makefiles.patch
- $pkgname-$pkgver.zip::https://downloads.sourceforge.net/sourceforge/openv2g/OpenV2G_$pkgver.zip
-"
-
-unpack() {
- mkdir -p "$builddir"
- unzip "$srcdir/$pkgname-$pkgver.zip" -d "$builddir"
- # To ensure patches can be applied, convert the \r\n code-base first.
- find "$builddir" -type f -exec dos2unix '{}' \;
-}
-
-build() {
- cd Release
- make
-}
-
-package() {
- depends="lib$pkgname"
- cd Release
- make DESTDIR="$pkgdir/usr" install
-}
-
-sha512sums="a445b77e0870ac6f0bb5b419e862de7eaffc1da1421bffd267ea06c976b869d70111179dc54a373f0c28f6bdae83629cbc6e45c68ec03b571692a631b6436c67 0001-Enable-XMLDSIG-codec-support.patch
-fd2ee6c2a223e462f2142b16d1887b2a43e2c0c4e30cb40569d04dd116c83581e75d1867244691ac2b9f0ea21eb453a6df85fc4d9378154f4772f07648b792e7 0002-Violate-the-spec-less-by-downgrading-to-ASCII-for-UT.patch
-5c4e8df3033a9ebed412a004efdb812528e3d7c7e8d126dc1a1139c106391eeba58a7b13f88a21d4addd176b6f65dee3d1e2243cb46177628c5dd2b6e3f59f33 makefiles.patch
-0fe088bc3ae0f0dc6af8c9c3a989301e5e155a9406b80cb9025ceb5b548dc94202dde37993711c589fac6eddf626897c7ef003b73e01cb1c5b20b7b73365b930 openv2g-0.9.4.zip"
diff --git a/testing/openv2g/makefiles.patch b/testing/openv2g/makefiles.patch
deleted file mode 100644
index 43260767e3e..00000000000
--- a/testing/openv2g/makefiles.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-diff --git a/Release/makefile b/Release/makefile
-index f30e46e..2cd455f 100644
---- a/Release/makefile
-+++ b/Release/makefile
-@@ -5,6 +5,7 @@
- -include ../makefile.init
-
- RM := rm -rf
-+DESTDIR := '/usr/local'
-
- # All of the sources participating in the build are defined here
- -include sources.mk
-@@ -30,19 +31,62 @@ endif
- # Add inputs and outputs from these tool invocations to the build variables
-
- # All Target
--all: OpenV2G.exe
-+all: OpenV2G
-
- # Tool invocations
--OpenV2G.exe: $(OBJS) $(USER_OBJS)
-+OpenV2G: $(BIN_OBJS) $(OBJS) $(USER_OBJS)
- @echo 'Building target: $@'
- @echo 'Invoking: MinGW C Linker'
-- gcc -o "OpenV2G.exe" $(OBJS) $(USER_OBJS) $(LIBS)
-+ @echo 'objs: $(OBJS) userobjs: $(USER_OBJS) libs: $(LIBS)'
-+ ar rcs 'libopenv2g.a' $(OBJS) $(USER_OBJS)
-+ gcc -shared -o 'libopenv2g.so' $(OBJS) $(USER_OBJS) $(LIBS)
-+ gcc -o 'openv2g' $(BIN_OBJS) $(OBJS) $(USER_OBJS) $(LIBS)
- @echo 'Finished building target: $@'
- @echo ' '
-
-+install: all
-+ @install -D -m 755 -t '$(DESTDIR)/bin' 'openv2g'
-+ @install -D -m 644 'libopenv2g.so' '$(DESTDIR)/lib/libopenv2g.so.0.9.4'
-+ @ln -s 'libopenv2g.so.0.9.4' '$(DESTDIR)/lib/libopenv2g.so.0'
-+ @ln -s 'libopenv2g.so.0' '$(DESTDIR)/lib/libopenv2g.so'
-+ @install -D -m 644 -t '$(DESTDIR)/lib' 'libopenv2g.a'
-+ @install -D -m 644 -t '$(DESTDIR)/include/openv2g/appHandshake' \
-+ ../src/appHandshake/appHandEXIDatatypes.h \
-+ ../src/appHandshake/appHandEXIDatatypesDecoder.h \
-+ ../src/appHandshake/appHandEXIDatatypesEncoder.h
-+ @install -D -m 644 -t '$(DESTDIR)/include/openv2g/codec' \
-+ ../src/codec/BitInputStream.h \
-+ ../src/codec/BitOutputStream.h \
-+ ../src/codec/ByteStream.h \
-+ ../src/codec/DecoderChannel.h \
-+ ../src/codec/EXIConfig.h \
-+ ../src/codec/EXIHeaderDecoder.h \
-+ ../src/codec/EXIHeaderEncoder.h \
-+ ../src/codec/EXIOptions.h \
-+ ../src/codec/EXITypes.h \
-+ ../src/codec/EncoderChannel.h \
-+ ../src/codec/ErrorCodes.h \
-+ ../src/codec/MethodsBag.h
-+ @install -D -m 644 -t '$(DESTDIR)/include/openv2g/din' \
-+ ../src/din/dinEXIDatatypes.h \
-+ ../src/din/dinEXIDatatypesDecoder.h \
-+ ../src/din/dinEXIDatatypesEncoder.h \
-+ ../src/iso1/iso1EXIDatatypes.h \
-+ ../src/iso1/iso1EXIDatatypesDecoder.h \
-+ ../src/iso1/iso1EXIDatatypesEncoder.h \
-+ ../src/iso2/iso2EXIDatatypes.h \
-+ ../src/iso2/iso2EXIDatatypesDecoder.h \
-+ ../src/iso2/iso2EXIDatatypesEncoder.h
-+ @install -D -m 644 -t '$(DESTDIR)/include/openv2g/transport' \
-+ ../src/transport/v2gtp.h
-+ @install -D -m 644 -t '$(DESTDIR)/include/openv2g/xmldsig' \
-+ ../src/xmldsig/xmldsigEXIDatatypes.h \
-+ ../src/xmldsig/xmldsigEXIDatatypesDecoder.h \
-+ ../src/xmldsig/xmldsigEXIDatatypesEncoder.h
-+
- # Other Targets
- clean:
-- -$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) OpenV2G.exe
-+ -$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) openv2g libopenv2g.a libopenv2g.so
- -@echo ' '
-
- .PHONY: all clean dependents
-diff --git a/Release/src/appHandshake/subdir.mk b/Release/src/appHandshake/subdir.mk
-index 9181dcc..cd8e5a3 100644
---- a/Release/src/appHandshake/subdir.mk
-+++ b/Release/src/appHandshake/subdir.mk
-@@ -23,7 +23,7 @@ C_DEPS += \
- src/appHandshake/%.o: ../src/appHandshake/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/codec/subdir.mk b/Release/src/codec/subdir.mk
-index ecedb18..d1647bf 100644
---- a/Release/src/codec/subdir.mk
-+++ b/Release/src/codec/subdir.mk
-@@ -38,7 +38,7 @@ C_DEPS += \
- src/codec/%.o: ../src/codec/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/din/subdir.mk b/Release/src/din/subdir.mk
-index 209e552..773d4ce 100644
---- a/Release/src/din/subdir.mk
-+++ b/Release/src/din/subdir.mk
-@@ -23,7 +23,7 @@ C_DEPS += \
- src/din/%.o: ../src/din/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/iso1/subdir.mk b/Release/src/iso1/subdir.mk
-index d8ea6ae..7920ac8 100644
---- a/Release/src/iso1/subdir.mk
-+++ b/Release/src/iso1/subdir.mk
-@@ -23,7 +23,7 @@ C_DEPS += \
- src/iso1/%.o: ../src/iso1/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/iso2/subdir.mk b/Release/src/iso2/subdir.mk
-index caf3b79..de3ba35 100644
---- a/Release/src/iso2/subdir.mk
-+++ b/Release/src/iso2/subdir.mk
-@@ -23,7 +23,7 @@ C_DEPS += \
- src/iso2/%.o: ../src/iso2/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/test/subdir.mk b/Release/src/test/subdir.mk
-index eceb3be..9f5db63 100644
---- a/Release/src/test/subdir.mk
-+++ b/Release/src/test/subdir.mk
-@@ -8,7 +8,7 @@ C_SRCS += \
- ../src/test/main_databinder.c \
- ../src/test/main_example.c
-
--OBJS += \
-+BIN_OBJS += \
- ./src/test/main.o \
- ./src/test/main_databinder.o \
- ./src/test/main_example.o
-@@ -23,7 +23,7 @@ C_DEPS += \
- src/test/%.o: ../src/test/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/transport/subdir.mk b/Release/src/transport/subdir.mk
-index fc10ca1..c4e8b99 100644
---- a/Release/src/transport/subdir.mk
-+++ b/Release/src/transport/subdir.mk
-@@ -17,7 +17,7 @@ C_DEPS += \
- src/transport/%.o: ../src/transport/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
-diff --git a/Release/src/xmldsig/subdir.mk b/Release/src/xmldsig/subdir.mk
-index 2497b78..20e799f 100644
---- a/Release/src/xmldsig/subdir.mk
-+++ b/Release/src/xmldsig/subdir.mk
-@@ -23,7 +23,7 @@ C_DEPS += \
- src/xmldsig/%.o: ../src/xmldsig/%.c
- @echo 'Building file: $<'
- @echo 'Invoking: GCC C Compiler'
-- gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-+ gcc -I"../src/codec" -I"../src/din" -I"../src/iso1" -I"../src/iso2" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -fPIC -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
- @echo 'Finished building: $<'
- @echo ' '
-
diff --git a/testing/openvas-smb/001-cmakelist-fortify.patch b/testing/openvas-smb/001-cmakelist-fortify.patch
deleted file mode 100644
index cda525e3ef8..00000000000
--- a/testing/openvas-smb/001-cmakelist-fortify.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 021b08f..cf21e05 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -150,7 +150,7 @@ pkg_check_modules (POPT REQUIRED popt)
- if(${GSSAPI_VERSION} VERSION_LESS "7.5.0")
- add_definitions(-DOLD_HEIMDAL)
- endif()
--set (CMAKE_C_FLAGS "-fPIC -O2 -D_FORTIFY_SOURCE=2 -fstack-protector ${CMAKE_C_FLAGS}")
-+set (CMAKE_C_FLAGS "-fPIC -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector ${CMAKE_C_FLAGS}")
- set (CMAKE_C_FLAGS "-Wno-unused-result -fno-strict-aliasing ${CMAKE_C_FLAGS}")
- set (LINKER_HARDENING_FLAGS "-Wl,-z,relro -Wl,-z,now")
-
diff --git a/testing/openvas-smb/APKBUILD b/testing/openvas-smb/APKBUILD
deleted file mode 100644
index 96c47f5a11e..00000000000
--- a/testing/openvas-smb/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=openvas-smb
-pkgver=1.0.5
-pkgrel=3
-pkgdesc="SMB module for OpenVAS Scanner"
-url="https://github.com/greenbone/openvas-smb"
-arch="x86 x86_64"
-license="GPL-2.0"
-options="!check" #no check available
-makedepends="cmake mingw-w64-gcc mingw-w64-binutils mingw-w64-headers mingw-w64-crt
-gvm-libs-dev gnutls-dev popt-dev perl-dev
-glib-dev xmltoman doxygen graphviz heimdal-dev sqlite-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/greenbone/openvas-smb/archive/v$pkgver.tar.gz
- mingw-alpine-support.patch
- fix-missing-includes-path.patch
- comparison_fn_t.patch
- disable-backtrace.patch
- 001-cmakelist-fortify.patch"
-
-build() {
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_VERBOSE_MAKEFILE=ON .
- # generate winexesvc_exe.c early to work around parallel build issue
- make -C winexe bin2c
- make -j1 -C winexe winexesvc_exe.c.o
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="8b63fd269c96f67621ca900b748c523802fef6bb19f25d10b2bcaf839570b65164b79524e969971e2f278576f5e85326825a9e3a2331b0e5b165254cc947d2c2 openvas-smb-1.0.5.tar.gz
-bd139b2317feb5fe3ea3ab4b62664ae70547b2859c372e30cd7062dbaef535a5ea665d33253d85a28553ab13ab0b943f609e86f7fcb9572c403d5b7612052701 mingw-alpine-support.patch
-494ec5c871959b9493fbbec7060778d2bb2be689f2434f4b0489b24e9800ea0b3a91015537deae60ffd071ad8740913ee1598f04e1a416516f45658bd9d4315f fix-missing-includes-path.patch
-96b81bb378d0a70b1d31c19c646a95b96056ca3f85c02edc221bc17093b5403ba1fcdf9f3175e455aa32b7399e58a1c9cda525985c09c8b7dee8068bf3643a14 comparison_fn_t.patch
-6a5f67177ca74ce051d190a81727b94938addf538c52831b5af3394f4d8d2ea990bcd58e3dc92570c7c4b0719deea49e2aa2fa549297c6e36ec4f8fa3f0a5270 disable-backtrace.patch
-56c150d8fcc46720d71a632e7f6ff7a1ad92d90c84361eb8ad81c4b4811ac9ff56f06654f70840895ac7bec4f852bafeff0599e29a4c5572d826403df1d2ca68 001-cmakelist-fortify.patch"
diff --git a/testing/openvas-smb/comparison_fn_t.patch b/testing/openvas-smb/comparison_fn_t.patch
deleted file mode 100644
index f2655ac6f62..00000000000
--- a/testing/openvas-smb/comparison_fn_t.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/samba/librpc/ndr/libndr_proto.h b/samba/librpc/ndr/libndr_proto.h
-index f60d93d..b97df1d 100644
---- a/samba/librpc/ndr/libndr_proto.h
-+++ b/samba/librpc/ndr/libndr_proto.h
-@@ -9,6 +9,7 @@
- #define _PUBLIC_
- #endif
-
-+typedef int (*comparison_fn_t)(const void *, const void *);
-
- /* The following definitions come from librpc/ndr/ndr.c */
-
-diff --git a/samba/lib/ldb/common/ldb_msg.c b/samba/lib/ldb/common/ldb_msg.c
-index 0f7a214..7ff1583 100644
---- a/samba/lib/ldb/common/ldb_msg.c
-+++ b/samba/lib/ldb/common/ldb_msg.c
-@@ -35,6 +35,8 @@
- #include "includes.h"
- #include "ldb/include/includes.h"
-
-+typedef int (*comparison_fn_t)(const void *, const void *);
-+
- /*
- create a new ldb_message in a given memory context (NULL for top level)
- */
-diff --git a/samba/lib/ldb/include/includes.h b/samba/lib/ldb/include/includes.h
-index ce0d40e..c07f117 100644
---- a/samba/lib/ldb/include/includes.h
-+++ b/samba/lib/ldb/include/includes.h
-@@ -16,7 +16,7 @@
- #define dyn_MODULESDIR dyn_LIBDIR
- #endif
-
--
-+typedef int (*comparison_fn_t)(const void *, const void *);
-
- #define discard_const(ptr) ((void *)((intptr_t)(ptr)))
- #define discard_const_p(type, ptr) ((type *)discard_const(ptr))
diff --git a/testing/openvas-smb/disable-backtrace.patch b/testing/openvas-smb/disable-backtrace.patch
deleted file mode 100644
index f5e0ef819f2..00000000000
--- a/testing/openvas-smb/disable-backtrace.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-diff --git a/samba/include/config.h b/samba/include/config.h
-index b99c4d5..dd85ee4 100644
---- a/samba/include/config.h
-+++ b/samba/include/config.h
-@@ -38,7 +38,7 @@
- /* #define HAVE_ATTR_XATTR_H 1 */
-
- /* Define to 1 if you have the `backtrace' function. */
--#define HAVE_BACKTRACE 1
-+#define HAVE_BACKTRACE 0
-
- /* Define to 1 if you have the <blkid/blkid.h> header file. */
- /* #undef HAVE_BLKID_BLKID_H */
-diff --git a/samba/include/config_tmp.h b/samba/include/config_tmp.h
-index e85cb77..9c7e93c 100644
---- a/samba/include/config_tmp.h
-+++ b/samba/include/config_tmp.h
-@@ -38,7 +38,7 @@
- #define HAVE_ATTR_XATTR_H 1
-
- /* Define to 1 if you have the `backtrace' function. */
--#define HAVE_BACKTRACE 1
-+#define HAVE_BACKTRACE 0
-
- /* Define to 1 if you have the <blkid/blkid.h> header file. */
- /* #undef HAVE_BLKID_BLKID_H */
-diff --git a/samba/lib/util/fault.c b/samba/lib/util/fault.c
-index c7d6b7e..a9cdabb 100644
---- a/samba/lib/util/fault.c
-+++ b/samba/lib/util/fault.c
-@@ -36,83 +36,6 @@ static struct {
-
- static const char *progname;
-
--#ifdef HAVE_BACKTRACE
--#include <execinfo.h>
--#elif HAVE_LIBEXC_H
--#include <libexc.h>
--#endif
--
--/**
-- * Write backtrace to debug log
-- */
--_PUBLIC_ void call_backtrace(void)
--{
--#ifdef HAVE_BACKTRACE
--#ifndef BACKTRACE_STACK_SIZE
--#define BACKTRACE_STACK_SIZE 64
--#endif
-- void *backtrace_stack[BACKTRACE_STACK_SIZE];
-- size_t backtrace_size;
-- char **backtrace_strings;
--
-- /* get the backtrace (stack frames) */
-- backtrace_size = backtrace(backtrace_stack,BACKTRACE_STACK_SIZE);
-- backtrace_strings = backtrace_symbols(backtrace_stack, backtrace_size);
--
-- DEBUG(0, ("BACKTRACE: %lu stack frames:\n",
-- (unsigned long)backtrace_size));
--
-- if (backtrace_strings) {
-- int i;
--
-- for (i = 0; i < backtrace_size; i++)
-- DEBUGADD(0, (" #%u %s\n", i, backtrace_strings[i]));
--
-- /* Leak the backtrace_strings, rather than risk what free() might do */
-- }
--
--#elif HAVE_LIBEXC
--
--#define NAMESIZE 32 /* Arbitrary */
--#ifndef BACKTRACE_STACK_SIZE
--#define BACKTRACE_STACK_SIZE 64
--#endif
--
-- /* The IRIX libexc library provides an API for unwinding the stack. See
-- * libexc(3) for details. Apparantly trace_back_stack leaks memory, but
-- * since we are about to abort anyway, it hardly matters.
-- *
-- * Note that if we paniced due to a SIGSEGV or SIGBUS (or similar) this
-- * will fail with a nasty message upon failing to open the /proc entry.
-- */
-- {
-- uint64_t addrs[BACKTRACE_STACK_SIZE];
-- char * names[BACKTRACE_STACK_SIZE];
-- char namebuf[BACKTRACE_STACK_SIZE * NAMESIZE];
--
-- int i;
-- int levels;
--
-- ZERO_ARRAY(addrs);
-- ZERO_ARRAY(names);
-- ZERO_ARRAY(namebuf);
--
-- for (i = 0; i < BACKTRACE_STACK_SIZE; i++) {
-- names[i] = namebuf + (i * NAMESIZE);
-- }
--
-- levels = trace_back_stack(0, addrs, names,
-- BACKTRACE_STACK_SIZE, NAMESIZE);
--
-- DEBUG(0, ("BACKTRACE: %d stack frames:\n", levels));
-- for (i = 0; i < levels; i++) {
-- DEBUGADD(0, (" #%d 0x%llx %s\n", i, addrs[i], names[i]));
-- }
-- }
--#undef NAMESIZE
--#endif
--}
--
- _PUBLIC_ const char *panic_action = NULL;
-
- /**
-@@ -143,8 +66,6 @@ _PUBLIC_ void smb_panic(const char *why)
- }
- DEBUG(0,("PANIC: %s\n", why));
-
-- call_backtrace();
--
- #ifdef SIGABRT
- CatchSignal(SIGABRT,SIGNAL_CAST SIG_DFL);
- #endif
-diff --git a/samba/lib/util/util_proto.h b/samba/lib/util/util_proto.h
-index efc787f..bb48f46 100644
---- a/samba/lib/util/util_proto.h
-+++ b/samba/lib/util/util_proto.h
-@@ -44,7 +44,6 @@ _PUBLIC_ void register_debug_handlers(const char *name, struct debug_ops *ops);
-
- /* The following definitions come from lib/util/fault.c */
-
--_PUBLIC_ void call_backtrace(void);
- _PUBLIC_ void smb_panic(const char *why);
- _PUBLIC_ void fault_setup(const char *pname);
- _PUBLIC_ BOOL register_fault_handler(const char *name, void (*fault_handler)(int sig));
diff --git a/testing/openvas-smb/fix-missing-includes-path.patch b/testing/openvas-smb/fix-missing-includes-path.patch
deleted file mode 100644
index 3d634f15cb6..00000000000
--- a/testing/openvas-smb/fix-missing-includes-path.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-diff --git a/samba/auth/auth_util.c b/samba/auth/auth_util.c
-index b1e1672..7068cdf 100644
---- a/samba/auth/auth_util.c
-+++ b/samba/auth/auth_util.c
-@@ -23,7 +23,7 @@
- */
-
- #include "includes.h"
--#include <heimdal/gssapi/gssapi.h>
-+#include <gssapi/gssapi.h>
- #include "auth/auth.h"
- #include "libcli/security/security.h"
- #include "libcli/auth/libcli_auth.h"
-diff --git a/samba/auth/credentials/credentials_krb5.h b/samba/auth/credentials/credentials_krb5.h
-index a7a05d2..4a23954 100644
---- a/samba/auth/credentials/credentials_krb5.h
-+++ b/samba/auth/credentials/credentials_krb5.h
-@@ -21,7 +21,7 @@
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
--#include <heimdal/gssapi/gssapi.h>
-+#include <gssapi/gssapi.h>
-
- struct ccache_container;
-
-diff --git a/samba/lib/replace/system/kerberos.h b/samba/lib/replace/system/kerberos.h
-index 496eec9..88d1d99 100644
---- a/samba/lib/replace/system/kerberos.h
-+++ b/samba/lib/replace/system/kerberos.h
-@@ -125,7 +125,7 @@
- /* Whether krb5_princ_realm returns krb5_realm or krb5_data */
- #define KRB5_PRINC_REALM_RETURNS_REALM 1
-
--#include <heimdal/krb5.h>
-+#include <krb5.h>
- #include <com_err.h>
- #endif
-
-diff --git a/samba/auth/kerberos/krb5_init_context.h b/samba/auth/kerberos/krb5_init_context.h
-index 4b7cc3a..d318149 100644
---- a/samba/auth/kerberos/krb5_init_context.h
-+++ b/samba/auth/kerberos/krb5_init_context.h
-@@ -17,7 +17,7 @@
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--#include <heimdal/krb5.h>
-+#include <krb5.h>
-
- struct smb_krb5_context {
- struct krb5_context_data *krb5_context;
-
-diff --git a/samba/include/config.h b/samba/include/config.h
-index a555fbb..b99c4d5 100644
---- a/samba/include/config.h
-+++ b/samba/include/config.h
-@@ -454,7 +454,7 @@
- /* #undef HAVE_NSS_COMMON_H */
-
- /* Define to 1 if you have the <nss.h> header file. */
--#define HAVE_NSS_H 1
-+#define HAVE_NSS_H 0
-
- /* Define to 1 if you have the <ns_api.h> header file. */
- /* #undef HAVE_NS_API_H */
-diff --git a/samba/auth/gensec/gensec_gssapi.c b/samba/auth/gensec/gensec_gssapi.c
-index 5f92e78..daecb7a 100644
---- a/samba/auth/gensec/gensec_gssapi.c
-+++ b/samba/auth/gensec/gensec_gssapi.c
-@@ -23,7 +23,7 @@
- */
-
- #include "includes.h"
--#include <heimdal/gssapi/gssapi_krb5.h>
-+#include <gssapi/gssapi_krb5.h>
- #include "system/kerberos.h"
- #include <heimdal/gssapi/gssapi.h>
- #include "auth/kerberos/kerberos.h"
-diff --git a/samba/auth/gensec/gensec_gssapi.c b/samba/auth/gensec/gensec_gssapi.c
-index daecb7a..0139f8d 100644
---- a/samba/auth/gensec/gensec_gssapi.c
-+++ b/samba/auth/gensec/gensec_gssapi.c
-@@ -25,7 +25,7 @@
- #include "includes.h"
- #include <gssapi/gssapi_krb5.h>
- #include "system/kerberos.h"
--#include <heimdal/gssapi/gssapi.h>
-+#include <gssapi/gssapi.h>
- #include "auth/kerberos/kerberos.h"
- #include "librpc/gen_ndr/krb5pac.h"
- #include "auth/auth.h"
-diff --git a/samba/auth/kerberos/kerberos.c b/samba/auth/kerberos/kerberos.c
-index 1f190c1..37a9773 100644
---- a/samba/auth/kerberos/kerberos.c
-+++ b/samba/auth/kerberos/kerberos.c
-@@ -24,7 +24,7 @@
-
- #include "includes.h"
- #include "system/kerberos.h"
--#include <heimdal/roken.h>
-+#include <roken.h>
-
- #ifdef HAVE_KRB5
-
-diff --git a/samba/auth/kerberos/krb5_init_context.c b/samba/auth/kerberos/krb5_init_context.c
-index f7230e4..20d65c6 100644
---- a/samba/auth/kerberos/krb5_init_context.c
-+++ b/samba/auth/kerberos/krb5_init_context.c
-@@ -27,9 +27,9 @@
- #include "lib/socket/socket.h"
- #include "system/network.h"
- #include "lib/events/events.h"
--#include <heimdal/roken.h>
-+#include <roken.h>
-
--#include <heimdal/krb5.h>
-+#include <krb5.h>
-
- /*
- context structure for operations on cldap packets
-diff --git a/samba/dsdb/samdb/ldb_modules/password_hash.c b/samba/dsdb/samdb/ldb_modules/password_hash.c
-index 26101b9..3467d8e 100644
---- a/samba/dsdb/samdb/ldb_modules/password_hash.c
-+++ b/samba/dsdb/samdb/ldb_modules/password_hash.c
-@@ -43,7 +43,7 @@
- #include "system/time.h"
- #include "dsdb/samdb/samdb.h"
- #include "dsdb/common/flags.h"
--#include <heimdal/hdb.h>
-+#include <hdb.h>
- #include "dsdb/samdb/ldb_modules/password_modules.h"
-
- /* If we have decided there is reason to work on this request, then
-diff --git a/winexe/winexe.c b/winexe/winexe.c
-index 25eecb2..075442b 100644
---- a/winexe/winexe.c
-+++ b/winexe/winexe.c
-@@ -6,7 +6,7 @@
- #include "includes.h"
-
- #include <sys/fcntl.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
- #include <sys/termios.h>
- #include <signal.h>
- #include <stdint.h>
-diff --git a/winexe/wincmd.c b/winexe/wincmd.c
-index df61593..0bdf9ff 100644
---- a/winexe/wincmd.c
-+++ b/winexe/wincmd.c
-@@ -47,7 +47,7 @@
- #include <glib.h> /* for g_malloc0 */
-
- #include <sys/fcntl.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
- #include <sys/termios.h>
- #include <signal.h>
-
diff --git a/testing/openvas-smb/mingw-alpine-support.patch b/testing/openvas-smb/mingw-alpine-support.patch
deleted file mode 100644
index 527da607e70..00000000000
--- a/testing/openvas-smb/mingw-alpine-support.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/winexe/CMakeLists.txt b/winexe/CMakeLists.txt
-index a0e8bb5..2cb6040 100644
---- a/winexe/CMakeLists.txt
-+++ b/winexe/CMakeLists.txt
-@@ -54,7 +54,7 @@ include_directories(${SMB_INCLUDES})
- include_directories(${POPT_INCLUDE_DIRS})
- include_directories(${GLIB_INCLUDE_DIRS})
-
--find_program(MINGW_GCC NAMES i686-w64-mingw32-gcc i586-mingw32msvc-gcc)
-+find_program(MINGW_GCC NAMES i686-w64-mingw32-gcc i586-mingw32msvc-gcc x86_64-w64-mingw32-gcc x86-w64-mingw32-gcc)
-
- if (NOT MINGW_GCC)
- message(SEND_ERROR "i586-mingw32msvc-gcc not found in PATH.\nIt is needed to build the Windows Service for winexe.")
diff --git a/testing/openvpn3/APKBUILD b/testing/openvpn3/APKBUILD
new file mode 100644
index 00000000000..d13575a369b
--- /dev/null
+++ b/testing/openvpn3/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=openvpn3
+pkgver=3.8.4
+pkgrel=0
+pkgdesc="C++ class library that implements the functionality of an OpenVPN client"
+url="https://github.com/OpenVPN/openvpn3"
+arch="all !s390x" # broken tests due to endianness assumptions
+license="AGPL-3.0-only"
+depends_dev="lz4-dev asio-dev libcap-dev jsoncpp-dev xxhash-dev"
+makedepends="cmake samurai gtest-dev $depends_dev"
+subpackages="$pkgname-dev"
+source="https://github.com/OpenVPN/openvpn3/archive/refs/tags/release/$pkgver/openvpn3-$pkgver.tar.gz
+ unvendor.patch
+ "
+builddir="$srcdir/openvpn3-release-$pkgver"
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=False \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+check() {
+ cd build
+ test/unittests/coreUnitTests \
+ --gtest_filter=-buffer_ip.ipv6
+}
+
+package() {
+ # no cmake install target
+ install -Dm755 build/test/ovpncli/ovpncli -t "$pkgdir"/usr/bin
+ mkdir "$pkgdir"/usr/include
+ mv openvpn "$pkgdir"/usr/include
+}
+
+sha512sums="
+2678cfc090ae65c3be03f2056ad009a708f1af13cbad904a6630d5ddf619cd7885b91c042b63c4a839d0603e754d69fe8d060b6ab7366db6ab69cecba4007da4 openvpn3-3.8.4.tar.gz
+83bf9085f97a08abccb583a5bd0b15258594b2746e45128c1f987445a92c1de0ea6ef80b750a12dab4baf4aba6fe94d44ff4e8b886796bd107e5cd3568755c5d unvendor.patch
+"
diff --git a/testing/openvpn3/unvendor.patch b/testing/openvpn3/unvendor.patch
new file mode 100644
index 00000000000..5959fae44ad
--- /dev/null
+++ b/testing/openvpn3/unvendor.patch
@@ -0,0 +1,34 @@
+
+
+--- a/test/unittests/CMakeLists.txt
++++ b/test/unittests/CMakeLists.txt
+@@ -1,28 +1,4 @@
+-
+-# current latest GTEST version
+-set(OVPN_GTEST_VERSION release-1.11.0)
+-# use an older version of gtest for GCC < 5.1.0; 1.10.1 is the latest
+-# version that works with the 4.8.x compilers
+-if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.1.0)
+- set(OVPN_GTEST_VERSION release-1.10.0)
+- # Note: not all the test compilation units hit the
+- # "'is_trivially_copy_constructible' is not a member of 'std'"
+- # issue; only the following do (with line number as of this
+- # writing and the include on the line):
+- # core_tests.cpp:21: // #include <gtest/gtest.h>
+- # test_b64.cpp:22: // #include "test_common.h"
+- # test_comp.cpp:45: // #include "test_common.h"
+- # test_log.cpp:22: // #include "test_common.h"
+- # test_route_emulation.cpp:23: // #include "test_common.h"
+- # test_verify_x509_name.cpp:25: // #include "test_common.h"
+- #
+- # Note further: test_common.h includes gtest/gtest.h; but that is
+- # not a sufficient condition to hit the bust. For example,
+- # test_continuation.cpp includes test_common.h but does not manifest
+- # the issue.
+-endif()
+-
+-include(dlgoogletest)
++FIND_LIBRARY(GTEST_LIB NAMES gtest)
+
+ # Extra includes/libraries that are currently only use by the core unit test
+ FIND_PATH(LZO_INCLUDE_DIR NAMES lzo/lzo1x.h)
diff --git a/testing/openwsman/APKBUILD b/testing/openwsman/APKBUILD
index 4fc83943f79..84587296273 100644
--- a/testing/openwsman/APKBUILD
+++ b/testing/openwsman/APKBUILD
@@ -1,18 +1,29 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=openwsman
-pkgver=2.6.11
-pkgrel=1
+pkgver=2.7.2
+pkgrel=4
pkgdesc="Opensource Implementation of WS-Management"
url="https://openwsman.github.io"
arch="all"
license="custom BSD-3-Clause"
options="!check" # No test suite
-makedepends="cmake swig openssl-dev perl-dev curl-dev python3-dev sblim-sfcc-dev libxml2-dev"
+makedepends="
+ cmake
+ curl-dev
+ libxml2-dev
+ openssl-dev
+ perl-dev
+ py3-setuptools
+ python3-dev
+ sblim-sfcc-dev
+ swig
+ "
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="$pkgname-$pkgver.tar.gz::https://github.com/Openwsman/openwsman/archive/v$pkgver.tar.gz
fix-musl-build.patch
- default-config.patch"
+ default-config.patch
+ "
# secfixes:
# 2.6.10-r0:
@@ -20,15 +31,9 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/Openwsman/openwsman/archive/
# 2.6.4-r0:
# - CVE-2016-2183
-prepare() {
- default_prepare
- mkdir -p build
-}
-
build() {
- cd "$builddir"/build
- cmake \
- -DCMAKE_BUILD_TYPE=None \
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_C_FLAGS="$CFLAGS $CPPFLAGS" \
-DCMAKE_CXX_FLAGS="$CFXXLAGS $CPPFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
@@ -38,13 +43,18 @@ build() {
-DBUILD_PYTHON=OFF \
-DBUILD_PYTHON3=ON \
-DBUILD_RUBY_GEM=OFF \
- -DBUILD_JAVA=OFF \
- ..
- make
+ -DBUILD_JAVA=OFF
+ cmake --build build
}
-check() {
- cd "$builddir"/build
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ mv "$pkgdir/usr/sbin/"* "$pkgdir/usr/bin"
+ rmdir "$pkgdir/usr/sbin/"
+ rm "$pkgdir"/etc/pam.d/$pkgname
+ rmdir "$pkgdir/etc/pam.d/"
+ install -Dp -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
libs() {
@@ -55,17 +65,8 @@ libs() {
"$subpkgdir"/usr/lib/
}
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir/" install
-
- mv "$pkgdir/usr/sbin/"* "$pkgdir/usr/bin"
- rmdir "$pkgdir/usr/sbin/"
- rm "$pkgdir"/etc/pam.d/$pkgname
- rmdir "$pkgdir/etc/pam.d/"
- install -Dp -m644 ../COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
-}
-
-sha512sums="aa718d1aa2649b401816fbfa59e2950c226af6f6b507cd3659f4505f5bed4309db7b9eb903320f83a5c6d9d251bffd5df08910bc908bb2d381f68682a81107ca openwsman-2.6.11.tar.gz
+sha512sums="
+ffd6a0d00a00b00e321b2b55e0c77326f5943ca3224eee74c706e53a1c5c44ef0e8b1cfde5d631966769eefd4e567b0db8713085b7a8b386c2871ab4ada83046 openwsman-2.7.2.tar.gz
d031a3fd5f30b71ef87d7fd9c241baf55c20953c175ab0eb6192f9971b7b8a3a9c18693fa2cd468ed7f7ef94170281b7db5e987ba1b88c92d64231e560e91542 fix-musl-build.patch
-3c10cb34a0bb0d70461225c0944c0fdaf9aadba2c78ee8122dcf8b493190bc86db0252cc74a7fdb178a2d0a0c26fb3323a1cd8dce320fe21eb0ad2860e42a0f1 default-config.patch"
+3c10cb34a0bb0d70461225c0944c0fdaf9aadba2c78ee8122dcf8b493190bc86db0252cc74a7fdb178a2d0a0c26fb3323a1cd8dce320fe21eb0ad2860e42a0f1 default-config.patch
+"
diff --git a/testing/opkg-utils/APKBUILD b/testing/opkg-utils/APKBUILD
new file mode 100644
index 00000000000..5ded96cc3f9
--- /dev/null
+++ b/testing/opkg-utils/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Ryan Barnett <ryanbarnett3@gmail.com>
+pkgname=opkg-utils
+pkgver=0.4.5
+pkgrel=1
+pkgdesc="Helper scripts for use with the opkg package manager"
+url="https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="bash
+ binutils
+ bzip2
+ coreutils
+ diffutils
+ findutils
+ grep
+ gzip
+ lz4
+ python3
+ sed
+ tar
+ xz
+ "
+makedepends="perl"
+subpackages="$pkgname-doc"
+source="https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/snapshot/opkg-utils-$pkgver.tar.gz"
+options="!check" # no test suite
+
+package() {
+ # There are no build commands as all files are either shell scripts
+ # or python scripts
+ make PREFIX=/usr DESTDIR="$pkgdir" install-utils
+ # Makefile installs docs under (PREFIX)/man. Change the prefix
+ # to preferred location for man pages under /usr/share
+ make PREFIX=/usr/share DESTDIR="$pkgdir" install-docs
+}
+
+sha512sums="819377e8f417d6abac4a74ad3612ca22de68b3f785d0ef912e60f174132335683080936bb20a1dba44d9d717b2cf9c442a9a774ba0a1297504eb695e6dd64df6 opkg-utils-0.4.5.tar.gz"
diff --git a/testing/opkg/APKBUILD b/testing/opkg/APKBUILD
new file mode 100644
index 00000000000..fb19282d781
--- /dev/null
+++ b/testing/opkg/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Ryan Barnett <ryanbarnett3@gmail.com>
+pkgname=opkg
+pkgver=0.6.2
+pkgrel=0
+pkgdesc="Lightweight package management system"
+url="https://git.yoctoproject.org/opkg/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="curl-dev gpgme-dev libarchive-dev zstd-dev autoconf automake libtool pkgconf"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+source="https://downloads.yoctoproject.org/releases/opkg/opkg-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-zstd
+ make
+}
+
+check() {
+ # Tests cannot be run in parallel, must be sequential
+ make -j 1 check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+40175634d109bba45a67b01ac342a089b9caa132b143f29e76b23ef5688a103797843a555c067474a1796bdeb86e0fc5bfb584575da87cecf8809ccc77a87bde opkg-0.6.2.tar.gz
+"
diff --git a/testing/opmsg/APKBUILD b/testing/opmsg/APKBUILD
index 2690cf2dd15..c73cf8be7b3 100644
--- a/testing/opmsg/APKBUILD
+++ b/testing/opmsg/APKBUILD
@@ -1,26 +1,28 @@
# Contributor: stef <l0ls0fo2i@ctrlc.hu>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=opmsg
-pkgver=1.78
-pkgrel=2
+pkgver=1.84
+pkgrel=1
pkgdesc="opmsg gpg-like encryption system"
url="https://github.com/stealth/opmsg"
arch="all"
license="GPL-3.0-or-later"
-makedepends="openssl-dev"
+makedepends="openssl-dev>3"
source="$pkgname-$pkgver.tar.gz::https://github.com/stealth/opmsg/archive/rel-${pkgver}s.tar.gz"
builddir="$srcdir/$pkgname-rel-${pkgver}s"
build() {
cd "$builddir/src"
- make opmsg opmux
+ make all contrib
}
package() {
- cd "$builddir/src"
+ cd "$builddir/src/build"
mkdir -p "$pkgdir"/usr/bin
- cp opmsg opmux "$pkgdir"/usr/bin
+ cp opcoin opmsg opmux "$pkgdir"/usr/bin
}
-sha512sums="bfd3a9dfcc5082f4f7e3988d31c9e7ef499dd9726565f8fa21d631698c5821bcf080ff2b46488f1a93a997ff76a6e106343d85358b25a2785ce184419372cd23 opmsg-1.78.tar.gz"
+sha512sums="
+055795e9fde157bd43f2ff124800e5f1e4d8e0349f0acbf6afe6e3c3855f01bcb0068051e0d22aa454ff2f95b6320c18823e8e066d36bcfa0f560e561aa69134 opmsg-1.84.tar.gz
+"
diff --git a/testing/optee-client/APKBUILD b/testing/optee-client/APKBUILD
new file mode 100644
index 00000000000..4e46e6a6a8c
--- /dev/null
+++ b/testing/optee-client/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Petr Hodina <phodina@protonmail.com>
+pkgname=optee-client
+pkgver=3.20.0
+pkgrel=0
+pkgdesc="Normal World Client side of tee"
+url="https://github.com/OP-TEE/optee_client"
+arch="aarch64 armv7"
+license="BSD-2-Clause"
+makedepends="
+ bsd-compat-headers
+ cmake
+ linux-headers
+ samurai
+ util-linux-dev
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OP-TEE/optee_client/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/optee_client-$pkgver"
+# requires more dependencies
+options="!check"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCFG_TEE_CLIENT_LOG_FILE=/var/log/tee/teec.log \
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir -p "$pkgdir"/var/log/tee
+}
+
+sha512sums="
+678db0b9c5c2a0332120e737ddd2c4d83e6e6b0e2a09fa53b61edf3dd9586268314d4cd429833d9baf1f77fd6b0a78ea5b828b62bcfb00ad59bdbab494b0842b optee-client-3.20.0.tar.gz
+"
diff --git a/testing/orage/APKBUILD b/testing/orage/APKBUILD
new file mode 100644
index 00000000000..ce5b49a4ad9
--- /dev/null
+++ b/testing/orage/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=orage
+pkgver=4.18.0
+pkgrel=0
+pkgdesc="Calendar for Xfce"
+url="https://docs.xfce.org/apps/orage/start"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ dbus-dev
+ dbus-glib-dev
+ glib-dev
+ gtk+3.0-dev
+ libical-dev
+ libnotify-dev
+ libxfce4ui-dev
+ popt-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.xfce.org/apps/orage/-/archive/orage-$pkgver/orage-orage-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install DESTDIR="$pkgdir" prefix=/usr
+}
+
+sha512sums="
+27ee0a5d54f0e31a5f177c087db614859aed3916dbe2972c8a93b44d13ed943f321ff26d022a053d599ff1e85f37b4d28b65aff22e6efd96bc2e43b6d2e23093 orage-4.18.0.tar.gz
+"
diff --git a/testing/oras-cli/APKBUILD b/testing/oras-cli/APKBUILD
new file mode 100644
index 00000000000..b08133c7a1e
--- /dev/null
+++ b/testing/oras-cli/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=oras-cli
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="OCI registry client"
+url="https://oras.land/cli"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/oras-project/oras/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/oras-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X oras.land/oras/internal/version.Version=$pkgver
+ -X oras.land/oras/internal/version.BuildMetadata=
+ -X oras.land/oras/internal/version.GitCommit=AlpineLinux
+ -X oras.land/oras/internal/version.GitTreeState=clean
+ "
+ go build -v -ldflags "$_goldflags" ./cmd/oras
+
+ for shell in bash fish zsh; do
+ ./oras completion $shell > oras.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 oras -t "$pkgdir"/usr/bin/
+
+ install -Dm644 oras.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/oras
+ install -Dm644 oras.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/oras.fish
+ install -Dm644 oras.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_oras
+}
+
+sha512sums="
+2353a879ca7ff62f2933c2548c3b16e4dafb0b18a6428cb6722121c6961486d821e4caf4d853854cfb5879fcc97338490f6273660ad4235fc9277ad3797071c3 oras-cli-1.1.0.tar.gz
+"
diff --git a/testing/osmctools/APKBUILD b/testing/osmctools/APKBUILD
new file mode 100644
index 00000000000..512478e50ff
--- /dev/null
+++ b/testing/osmctools/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=osmctools
+pkgver=0.9
+pkgrel=0
+pkgdesc="A few really fast tools to convert, filter and update OpenStreetMap data files"
+url="https://gitlab.com/osm-c-tools/osmctools"
+arch="all"
+license="AGPL-3.0-only"
+makedepends="autoconf automake zlib-dev"
+source="https://gitlab.com/osm-c-tools/osmctools/-/archive/$pkgver/osmctools-$pkgver.tar.gz"
+options="!check" # no tests included
+
+prepare() {
+ default_prepare
+ autoreconf -vfi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6e51646e9291b53ce109f579c555c1eb9e6853452c81caebd530aa1be56aa3d313331a3544375f187c9d26888e4a330774f2acd6bdbb3baadf1a2db330430940 osmctools-0.9.tar.gz
+"
diff --git a/testing/ospd-acunetix/APKBUILD b/testing/ospd-acunetix/APKBUILD
deleted file mode 100644
index d8483ab04b1..00000000000
--- a/testing/ospd-acunetix/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-acunetix
-pkgver=1.0b1
-pkgrel=4
-_pkgid=2181
-pkgdesc="OSP server implementation to allow OpenVAS to remotel control nmap port scanner"
-url="http://www.openvas.org/"
-arch="noarch"
-license="GPL"
-depends="python3"
-makedepends="cmake py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-
-sha512sums="2a5b6fde959a890cd2084d1f8414639f8d281c3456239f101d1f353ec4044142cf71d7f7788a4d9aa0ce5d7a8a33204b785f5fd5d372d5c661e1ba9b9a447fd3 ospd-acunetix-1.0b1.tar.gz"
diff --git a/testing/ospd-ancor/APKBUILD b/testing/ospd-ancor/APKBUILD
deleted file mode 100644
index 15d27b4a800..00000000000
--- a/testing/ospd-ancor/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-ancor
-pkgver=1.0.0
-pkgrel=4
-_pkgid=2005
-pkgdesc="OSP server implementation to allow OpenVAS to get scan results from an Ancor server"
-url="http://openvas.org/"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="python3 py3-requests ospd"
-makedepends="python3-dev py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-sha512sums="5bf23798c6bed4ba70e8f9c694c5870ef05d39a92091821687251e92df05363016a700dd9432c94646af7763bc7f6681b69a827f9bd8786a614a356d8c40602a ospd-ancor-1.0.0.tar.gz"
diff --git a/testing/ospd-debsecan/APKBUILD b/testing/ospd-debsecan/APKBUILD
deleted file mode 100644
index b691cb63ee5..00000000000
--- a/testing/ospd-debsecan/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-debsecan
-pkgver=1.2b1
-pkgrel=3
-_pkgid=2405
-pkgdesc="OSP server implementation to allow OpenVAS to remotely control a debsecan scanner"
-url="http://www.openvas.org/"
-arch="noarch"
-license="GPL"
-depends="python3 ospd"
-makedepends="cmake py3-paramiko py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-
-sha512sums="f86f72713dda710c4b7975ed78dc26c664dcbcd5e77e7cab227416748982e29b7e22259fbf5c790a6c7d620234fc38e2c921555900b323f1bf57179ff472dcc3 ospd-debsecan-1.2b1.tar.gz"
diff --git a/testing/ospd-ikeprobe/APKBUILD b/testing/ospd-ikeprobe/APKBUILD
deleted file mode 100644
index 29f6ebb3e51..00000000000
--- a/testing/ospd-ikeprobe/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-ikeprobe
-pkgver=1.0b1
-pkgrel=5
-_pkgid=2204
-pkgdesc="OSP server implementation to allow OpenVAS to remotely control a ikeprobe scanner"
-url="http://www.openvas.org/"
-arch="noarch"
-license="GPL"
-depends="python3 ospd"
-makedepends="cmake python3-dev py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="567b2100ab42d7effe8fb47890a3c05fb7066ef97e29f2c723a3f29fd58addac220a91dda01804e997eec126905d43d59621b7318bfa02487ed789e228fe8660 ospd-ikeprobe-1.0b1.tar.gz"
diff --git a/testing/ospd-ikescan/APKBUILD b/testing/ospd-ikescan/APKBUILD
deleted file mode 100644
index ff7f4f370c7..00000000000
--- a/testing/ospd-ikescan/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-ikescan
-pkgver=1.0b1
-pkgrel=5
-_pkgid=2185
-pkgdesc="OSP server implementation to allow OpenVAS to remotely control a ike-scan scanner"
-url="http://www.openvas.org/"
-arch="noarch"
-license="GPL"
-depends="python3 ospd py3-pexpect"
-makedepends="cmake python3-dev py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="4035656008d9cae579a836a4d69a7d1d2b5a45610fcfdab9b4311c942788bf4dc10b8db1dba6325fb162b4dd19cd3a522f44cff1d70152af7bfb096095a00e60 ospd-ikescan-1.0b1.tar.gz"
diff --git a/testing/ospd-nmap/APKBUILD b/testing/ospd-nmap/APKBUILD
deleted file mode 100644
index c8b46502572..00000000000
--- a/testing/ospd-nmap/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-nmap
-pkgver=1.0b1
-pkgrel=5
-_pkgid=2218
-pkgdesc="OSP server implementation to allow OpenVAS to remotel control nmap port scanner"
-url="http://www.openvas.org/"
-arch="noarch"
-license="GPL"
-depends="python3"
-makedepends="cmake python3-dev py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-
-sha512sums="f251d0951ba6225844274d26187aa7b90a654ed765471f356fa7979b623c5c04c7f7527dffb9e8f28e278c3e4079a7881947787435779c57d5346520934a9d21 ospd-nmap-1.0b1.tar.gz"
diff --git a/testing/ospd-ovaldi/APKBUILD b/testing/ospd-ovaldi/APKBUILD
deleted file mode 100644
index d6389a7cab3..00000000000
--- a/testing/ospd-ovaldi/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-ovaldi
-pkgver=1.0.0
-pkgrel=5
-_pkgid=2003
-pkgdesc="OSP server implementation to allow OpenVAS to remotely control ovaldi scanners"
-url="http://openvas.org/"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="python3 ospd"
-makedepends="python3-dev py3-paramiko py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-sha512sums="73a0e2782225ca010abcf3ba45378238da44450fd856a2dc6dfbcc1d24c83a8b5e1e252189029c80bab850dff4b91c8f461f49b4a3410e86285b85ce4ac5113a ospd-ovaldi-1.0.0.tar.gz"
diff --git a/testing/ospd-paloalto/APKBUILD b/testing/ospd-paloalto/APKBUILD
deleted file mode 100644
index e97e2186be5..00000000000
--- a/testing/ospd-paloalto/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-paloalto
-pkgver=1.0b1
-pkgrel=5
-_pkgid=2149
-pkgdesc="OSP server implementation to allow OpenVAS to remotely control a PaloAlto"
-url="http://www.openvas.org/"
-arch="noarch"
-license="GPL"
-depends="python3 ospd"
-makedepends="cmake python3-dev py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-
-sha512sums="33e0645a467e08c0836096568859917beee9abc2131b22ca35e280c1a0f5ace36047cec93cbfb42c679f30e81ed1f238b7fdf8bf1ecbb90fe1f5beb1a1d0cc55 ospd-paloalto-1.0b1.tar.gz"
diff --git a/testing/ospd-ssh-keyscan/APKBUILD b/testing/ospd-ssh-keyscan/APKBUILD
deleted file mode 100644
index e73b9c914f8..00000000000
--- a/testing/ospd-ssh-keyscan/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-ssh-keyscan
-pkgver=1.0b1
-pkgrel=4
-_pkgid=2213
-pkgdesc="OSP server implementation to allow OpenVAS to scan ssh keys"
-url="http://openvas.org/"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="python3 ospd"
-makedepends="python3-dev py3-paramiko py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-sha512sums="510a084ff93e2c6283ef21ea4c439077b15c9ada92f48cd0876fca87d430a4479b5700b536d68322cbcde7a1cc5109993706fae4d29e9ee61a7cb927450e5262 ospd-ssh-keyscan-1.0b1.tar.gz"
diff --git a/testing/ospd-w3af/APKBUILD b/testing/ospd-w3af/APKBUILD
deleted file mode 100644
index 45fa5dffbe0..00000000000
--- a/testing/ospd-w3af/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ospd-w3af
-pkgver=1.0.0
-pkgrel=5
-_pkgid=2004
-pkgdesc="OSP server implementation to allow OpenVAS to remotely control a w3af scanner"
-url="http://openvas.org/"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="python3 ospd"
-makedepends="python3-dev py3-paramiko py3-setuptools"
-source="http://wald.intevation.org/frs/download.php/$_pkgid/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py check
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-sha512sums="798ce2551134e8060d2c8ed5e72ceaa9b378ee31a175120aa43441ea6ff8f5a6cd421c710d6fde7beaf659cd82d213fe78d7d5b8f846be5d2535e094b719977e ospd-w3af-1.0.0.tar.gz"
diff --git a/testing/ossec-hids-agent/APKBUILD b/testing/ossec-hids-agent/APKBUILD
deleted file mode 100644
index c09701f91df..00000000000
--- a/testing/ossec-hids-agent/APKBUILD
+++ /dev/null
@@ -1,85 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ossec-hids-agent
-_target=${pkgname/ossec-hids-/}
-pkgver=3.6.0
-pkgrel=0
-pkgdesc="Open Source Host-based Intrusion Detection System"
-url="https://www.ossec.net/"
-arch="all !aarch64 !armhf !armv7 !s390x"
-license="GPL-2.0-only WITH openssl-exception"
-depends="inotify-tools procps ossec-hids-openrc"
-makedepends="linux-headers bsd-compat-headers openssl-dev \
-libevent-dev inotify-tools-dev findutils file zlib-dev pcre2-dev \
-lua5.3-dev geoip-dev czmq-dev"
-checkdepends="check-dev subunit-dev"
-subpackages="$pkgname-doc"
-pkgusers="ossec ossecm ossecr"
-pkggroups="ossec"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ossec/ossec-hids/archive/$pkgver.tar.gz
- $pkgname.logrotate
- musl_lack_of_a_out_h.patch
- makefile.patch
- config"
-builddir="$srcdir"/ossec-hids-$pkgver
-
-prepare() {
- default_prepare
- export V=1
- export USER_INSTALL_TYPE=$_target
- export USER_NO_STOP=yes
- export USER_DIR=/var/ossec
- export USER_BINARYINSTALL=x
- export USE_GEOIP=yes
- export USE_ZEROMQ=yes
- export LUA_ENABLE=yes
- export USE_INOTIFY=yes
- export PCRE2_SYSTEM=yes
-}
-
-build() {
- cd "$builddir"/src
- make clean
- make TARGET=$_target PREFIX=/var/ossec
-}
-
-check() {
- cd "$builddir"/src
- make test PREFIX=/var/ossec
-}
-
-package() {
- install -Dm644 -D "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
- install -Dm644 -D etc/ossec-$_target.conf "$pkgdir"/etc/ossec-$_target.conf
-
- mkdir -p "$pkgdir"/var/ossec/etc
- cat << EOF > "$pkgdir"/var/ossec/etc/ossec-init.conf
-DIRECTORY="/var/ossec"
-VERSION="$(cat src/VERSION)"
-DATE="$(date)"
-TYPE="$_target"
-EOF
-
- set -- $pkgusers
- cd "$builddir"/src
- find "$pkgdir" -user nobody -exec chown 524 '{}' ';'
- find "$pkgdir" -user mail -exec chown 525 '{}' ';'
- find "$pkgdir" -user daemon -exec chown 526 '{}' ';'
- find "$pkgdir" -group nobody -exec chgrp 525 '{}' ';'
-
- make TARGET="$_target" PREFIX="$pkgdir"/var/ossec install
-}
-
-doc() {
- cd "$builddir"
- pkgdesc="Documentation for $pkgname"
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
- cp -a doc/* \
- "$subpkgdir"/usr/share/doc/$pkgname
-}
-
-sha512sums="1f5e897de757df264dfb56def74b7d8f886b6b9d772b5b3d0197c9cd00a32fd7fd8a7b53566851fea3cd74d433b5594cbd074e50b7dbe36305fb3c243e8ddcf5 ossec-hids-agent-3.6.0.tar.gz
-6cdf4852feabfdd043405e2570bb9a3013eb11c1865e9178fb67a019717d44fb0fedba05ab74c4334a1bae0a0c45912213dd7d6c7e1eab31853d40beea7596a0 ossec-hids-agent.logrotate
-4e076581cc3977c527f30da6c43552db18bc35ea7b745c1504f4d15ebfbcef42c9604804af28fc90744a85f847a0f0c5bf991476cae71e3d860adb7cfa33a63b musl_lack_of_a_out_h.patch
-27ccd8197541693c6cfa85e1598b40a5bd2dbd1dec2b7bd057211b45fd0c14c42c2ddd01d9ac57491eda93bb318961642d3adce55b395351d530609250ca003f makefile.patch
-5213936052ed3adf8d9bb36d044386e2decf85ad59e7d5a69b4b73c708ea779dc03049c3429e9b658efceb347b950b0192ca4f66bb56a3101c2016f106dcc287 config"
diff --git a/testing/ossec-hids-agent/config b/testing/ossec-hids-agent/config
deleted file mode 100644
index 4400290be78..00000000000
--- a/testing/ossec-hids-agent/config
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-
-# Do you want to update it? (y/n) [y]:
-export USER_UPDATE=y
-
-# Do you want to update the rules? (y/n) [y]:
-export USER_UPDATE_RULES=y
-
-# User Language:
-export USER_LANGUAGE=en
-
-# Do you want e-mail notification? (y/n) [y]:
-export USER_ENABLE_EMAIL=y
-# What's your e-mail address?
-export USER_EMAIL_ADDRESS=foo@example.com
-# What's your SMTP server ip/host?
-export USER_EMAIL_SMTP=localhost
-
-# Do you want to run the integrity check daemon? (y/n) [y]:
-export USER_ENABLE_SYSCHECK=y
-
-#Do you want to run the rootkit detection engine? (y/n) [y]:
-export USER_ENABLE_ROOTCHECK=y
-
-# Active response allows you to execute a specific
-# command based on the events received. For example,
-# you can block an IP address or disable access for
-# a specific user.
-# More information at:
-# https://ossec.github.io/docs/manual/ar/
-#
-# - Do you want to enable active response? (y/n) [y]:
-export USER_ENABLE_ACTIVE_RESPONSE=y
-
-# - By default, we can enable the host-deny and the
-# firewall-drop responses. The first one will add
-# a host to the /etc/hosts.deny and the second one
-# will block the host on iptables (if linux) or on
-# ipfilter (if Solaris, FreeBSD or NetBSD).
-# - They can be used to stop SSHD brute force scans,
-# portscans and some other forms of attacks. You can
-# also add them to block on snort events, for example.
-#
-# - Do you want to enable the firewall-drop response? (y/n) [y]:
-export USER_ENABLE_FIREWALL_RESPONSE=y
-
-# Do you want to add more IPs to the white list? (y/n)? [n]:
-# if set to y, installer will ask you to enter the list of IPs
-# if you want to use this feature, you must also export USER_NO_STOP=no
-export USER_WHITE_LIST=n
-
-# Do you want to enable remote syslog (port 514 udp)? (y/n) [y]:
-export USER_ENABLE_SYSLOG=y
-
-# IP address or hostname of the ossec server. Only used on agent installations.
-# export USER_AGENT_SERVER_IP="127.0.0.1"
-# export USER_AGENT_SERVER_NAME
-# Agent's config profile name. This is used to create agent.conf configuration profiles
-# for this particular profile name. Only used on agent installations.
-# Can be any string. E.g. LinuxDBServer or WindowsDomainController
-export USER_AGENT_CONFIG_PROFILE="generic"
-
-
diff --git a/testing/ossec-hids-agent/makefile.patch b/testing/ossec-hids-agent/makefile.patch
deleted file mode 100644
index e3f15a6b962..00000000000
--- a/testing/ossec-hids-agent/makefile.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/src/Makefile b/src/Makefile
-index 1a3c9bd..b2ddfb1 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -22,13 +22,13 @@ OSSEC_USER_MAIL?=ossecm
- OSSEC_USER_REM?=ossecr
-
- INSTALL_CMD?=install -m $(1) -o $(2) -g $(3)
--INSTALL_LOCALTIME?=yes
--INSTALL_RESOLVCONF?=yes
-+INSTALL_LOCALTIME=no
-+INSTALL_RESOLVCONF=no
-
- USE_PRELUDE?=no
- USE_ZEROMQ?=no
- USE_GEOIP?=no
--USE_INOTIFY=no
-+USE_INOTIFY=yes
- USE_PCRE2_JIT=yes
-
- ifneq (${TARGET},winagent)
-@@ -399,7 +399,6 @@ install-hybrid: install-server-generic
- install-server: install-server-generic
-
- install-common: build
-- ./init/adduser.sh ${OSSEC_USER} ${OSSEC_USER_MAIL} ${OSSEC_USER_REM} ${OSSEC_GROUP} ${PREFIX}
- $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/
- $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs
- $(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/ossec.log
-@@ -1254,7 +1253,7 @@ ossec-makelists: analysisd/makelists-live.o ${analysisd_live_o} ${format_o} aler
- #### test ##########
- ####################
-
--CFLAGS_TEST = -g -O0 --coverage
-+CFLAGS_TEST = -g -O0
-
- LDFLAGS_TEST = -lcheck -lm -pthread -lrt -lsubunit
-
-@@ -1265,7 +1264,7 @@ endif #TEST
-
- test_programs = test_os_zlib test_os_xml test_os_regex test_os_crypto test_shared
-
--.PHONY: test run_tests build_tests test_valgrind test_coverage
-+.PHONY: test run_tests build_tests test_valgrind
-
- test: build_tests
- ${MAKE} run_tests
diff --git a/testing/ossec-hids-agent/musl_lack_of_a_out_h.patch b/testing/ossec-hids-agent/musl_lack_of_a_out_h.patch
deleted file mode 100644
index a4d2b12a619..00000000000
--- a/testing/ossec-hids-agent/musl_lack_of_a_out_h.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/rootcheck/os_string.c b/src/rootcheck/os_string.c
-index e7ca284..85b6d9b 100644
---- a/src/rootcheck/os_string.c
-+++ b/src/rootcheck/os_string.c
-@@ -44,7 +44,7 @@
-
- #ifdef SOLARIS
- #include <sys/exechdr.h>
--#elif defined Darwin || defined HPUX
-+#elif defined Darwin || defined HPUX || defined linux
-
- /* For some reason darwin does not have that */
- struct exec {
diff --git a/testing/ossec-hids-agent/ossec-hids-agent.logrotate b/testing/ossec-hids-agent/ossec-hids-agent.logrotate
deleted file mode 100644
index 7b6406819f6..00000000000
--- a/testing/ossec-hids-agent/ossec-hids-agent.logrotate
+++ /dev/null
@@ -1,5 +0,0 @@
-/var/ossec/logs/active-responses.log /var/ossec/logs/ossec.log {
- missingok
- notifempty
- copytruncate
-}
diff --git a/testing/ossec-hids-local/APKBUILD b/testing/ossec-hids-local/APKBUILD
deleted file mode 100644
index 567bf4f5a6d..00000000000
--- a/testing/ossec-hids-local/APKBUILD
+++ /dev/null
@@ -1,87 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ossec-hids-local
-_target=${pkgname/ossec-hids-/}
-pkgver=3.6.0
-pkgrel=0
-pkgdesc="Open Source Host-based Intrusion Detection System"
-url="https://www.ossec.net/"
-arch="all !aarch64 !armhf !armv7 !s390x"
-license="GPL-2.0-only WITH openssl-exception"
-depends="inotify-tools procps ossec-hids-openrc"
-makedepends="linux-headers bsd-compat-headers openssl-dev \
-libevent-dev inotify-tools-dev findutils file zlib-dev pcre2-dev \
-sqlite-dev lua5.3-dev geoip-dev czmq-dev"
-checkdepends="check-dev subunit-dev"
-subpackages="$pkgname-doc"
-pkgusers="ossec ossecm ossecr"
-pkggroups="ossec"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ossec/ossec-hids/archive/$pkgver.tar.gz
- $pkgname.logrotate
- musl_lack_of_a_out_h.patch
- makefile.patch
- config"
-builddir="$srcdir"/ossec-hids-$pkgver
-
-prepare() {
- default_prepare
- export V=1
- export USER_INSTALL_TYPE=$_target
- export USER_NO_STOP=yes
- export USER_DIR=/var/ossec
- export USER_BINARYINSTALL=x
- export USE_GEOIP=yes
- export USE_ZEROMQ=yes
- export LUA_ENABLE=yes
- export USE_SQLITE=yes
- export DATABASE=sqlite
- export USE_INOTIFY=yes
- export PCRE2_SYSTEM=yes
-}
-
-build() {
- cd "$builddir"/src
- make clean
- make TARGET=$_target PREFIX=/var/ossec
-}
-
-check() {
- cd "$builddir"/src
- make test PREFIX=/var/ossec
-}
-
-package() {
- install -Dm644 -D "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
- install -Dm644 -D etc/ossec-$_target.conf "$pkgdir"/etc/ossec-$_target.conf
-
- mkdir -p "$pkgdir"/var/ossec/etc
- cat << EOF > "$pkgdir"/var/ossec/etc/ossec-init.conf
-DIRECTORY="/var/ossec"
-VERSION="$(cat src/VERSION)"
-DATE="$(date)"
-TYPE="$_target"
-EOF
-
- set -- $pkgusers
- cd "$builddir"/src
- find "$pkgdir" -user nobody -exec chown 524 '{}' ';'
- find "$pkgdir" -user mail -exec chown 525 '{}' ';'
- find "$pkgdir" -user daemon -exec chown 526 '{}' ';'
- find "$pkgdir" -group nobody -exec chgrp 525 '{}' ';'
-
- make TARGET="$_target" PREFIX="$pkgdir"/var/ossec install
-}
-
-doc() {
- cd "$builddir"
- pkgdesc="Documentation for $pkgname"
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
- cp -a doc/* \
- "$subpkgdir"/usr/share/doc/$pkgname
-}
-
-sha512sums="1f5e897de757df264dfb56def74b7d8f886b6b9d772b5b3d0197c9cd00a32fd7fd8a7b53566851fea3cd74d433b5594cbd074e50b7dbe36305fb3c243e8ddcf5 ossec-hids-local-3.6.0.tar.gz
-6cdf4852feabfdd043405e2570bb9a3013eb11c1865e9178fb67a019717d44fb0fedba05ab74c4334a1bae0a0c45912213dd7d6c7e1eab31853d40beea7596a0 ossec-hids-local.logrotate
-4e076581cc3977c527f30da6c43552db18bc35ea7b745c1504f4d15ebfbcef42c9604804af28fc90744a85f847a0f0c5bf991476cae71e3d860adb7cfa33a63b musl_lack_of_a_out_h.patch
-27ccd8197541693c6cfa85e1598b40a5bd2dbd1dec2b7bd057211b45fd0c14c42c2ddd01d9ac57491eda93bb318961642d3adce55b395351d530609250ca003f makefile.patch
-5213936052ed3adf8d9bb36d044386e2decf85ad59e7d5a69b4b73c708ea779dc03049c3429e9b658efceb347b950b0192ca4f66bb56a3101c2016f106dcc287 config"
diff --git a/testing/ossec-hids-local/config b/testing/ossec-hids-local/config
deleted file mode 100644
index 4400290be78..00000000000
--- a/testing/ossec-hids-local/config
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-
-# Do you want to update it? (y/n) [y]:
-export USER_UPDATE=y
-
-# Do you want to update the rules? (y/n) [y]:
-export USER_UPDATE_RULES=y
-
-# User Language:
-export USER_LANGUAGE=en
-
-# Do you want e-mail notification? (y/n) [y]:
-export USER_ENABLE_EMAIL=y
-# What's your e-mail address?
-export USER_EMAIL_ADDRESS=foo@example.com
-# What's your SMTP server ip/host?
-export USER_EMAIL_SMTP=localhost
-
-# Do you want to run the integrity check daemon? (y/n) [y]:
-export USER_ENABLE_SYSCHECK=y
-
-#Do you want to run the rootkit detection engine? (y/n) [y]:
-export USER_ENABLE_ROOTCHECK=y
-
-# Active response allows you to execute a specific
-# command based on the events received. For example,
-# you can block an IP address or disable access for
-# a specific user.
-# More information at:
-# https://ossec.github.io/docs/manual/ar/
-#
-# - Do you want to enable active response? (y/n) [y]:
-export USER_ENABLE_ACTIVE_RESPONSE=y
-
-# - By default, we can enable the host-deny and the
-# firewall-drop responses. The first one will add
-# a host to the /etc/hosts.deny and the second one
-# will block the host on iptables (if linux) or on
-# ipfilter (if Solaris, FreeBSD or NetBSD).
-# - They can be used to stop SSHD brute force scans,
-# portscans and some other forms of attacks. You can
-# also add them to block on snort events, for example.
-#
-# - Do you want to enable the firewall-drop response? (y/n) [y]:
-export USER_ENABLE_FIREWALL_RESPONSE=y
-
-# Do you want to add more IPs to the white list? (y/n)? [n]:
-# if set to y, installer will ask you to enter the list of IPs
-# if you want to use this feature, you must also export USER_NO_STOP=no
-export USER_WHITE_LIST=n
-
-# Do you want to enable remote syslog (port 514 udp)? (y/n) [y]:
-export USER_ENABLE_SYSLOG=y
-
-# IP address or hostname of the ossec server. Only used on agent installations.
-# export USER_AGENT_SERVER_IP="127.0.0.1"
-# export USER_AGENT_SERVER_NAME
-# Agent's config profile name. This is used to create agent.conf configuration profiles
-# for this particular profile name. Only used on agent installations.
-# Can be any string. E.g. LinuxDBServer or WindowsDomainController
-export USER_AGENT_CONFIG_PROFILE="generic"
-
-
diff --git a/testing/ossec-hids-local/makefile.patch b/testing/ossec-hids-local/makefile.patch
deleted file mode 100644
index e3f15a6b962..00000000000
--- a/testing/ossec-hids-local/makefile.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/src/Makefile b/src/Makefile
-index 1a3c9bd..b2ddfb1 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -22,13 +22,13 @@ OSSEC_USER_MAIL?=ossecm
- OSSEC_USER_REM?=ossecr
-
- INSTALL_CMD?=install -m $(1) -o $(2) -g $(3)
--INSTALL_LOCALTIME?=yes
--INSTALL_RESOLVCONF?=yes
-+INSTALL_LOCALTIME=no
-+INSTALL_RESOLVCONF=no
-
- USE_PRELUDE?=no
- USE_ZEROMQ?=no
- USE_GEOIP?=no
--USE_INOTIFY=no
-+USE_INOTIFY=yes
- USE_PCRE2_JIT=yes
-
- ifneq (${TARGET},winagent)
-@@ -399,7 +399,6 @@ install-hybrid: install-server-generic
- install-server: install-server-generic
-
- install-common: build
-- ./init/adduser.sh ${OSSEC_USER} ${OSSEC_USER_MAIL} ${OSSEC_USER_REM} ${OSSEC_GROUP} ${PREFIX}
- $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/
- $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs
- $(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/ossec.log
-@@ -1254,7 +1253,7 @@ ossec-makelists: analysisd/makelists-live.o ${analysisd_live_o} ${format_o} aler
- #### test ##########
- ####################
-
--CFLAGS_TEST = -g -O0 --coverage
-+CFLAGS_TEST = -g -O0
-
- LDFLAGS_TEST = -lcheck -lm -pthread -lrt -lsubunit
-
-@@ -1265,7 +1264,7 @@ endif #TEST
-
- test_programs = test_os_zlib test_os_xml test_os_regex test_os_crypto test_shared
-
--.PHONY: test run_tests build_tests test_valgrind test_coverage
-+.PHONY: test run_tests build_tests test_valgrind
-
- test: build_tests
- ${MAKE} run_tests
diff --git a/testing/ossec-hids-local/musl_lack_of_a_out_h.patch b/testing/ossec-hids-local/musl_lack_of_a_out_h.patch
deleted file mode 100644
index a4d2b12a619..00000000000
--- a/testing/ossec-hids-local/musl_lack_of_a_out_h.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/rootcheck/os_string.c b/src/rootcheck/os_string.c
-index e7ca284..85b6d9b 100644
---- a/src/rootcheck/os_string.c
-+++ b/src/rootcheck/os_string.c
-@@ -44,7 +44,7 @@
-
- #ifdef SOLARIS
- #include <sys/exechdr.h>
--#elif defined Darwin || defined HPUX
-+#elif defined Darwin || defined HPUX || defined linux
-
- /* For some reason darwin does not have that */
- struct exec {
diff --git a/testing/ossec-hids-local/ossec-hids-local.logrotate b/testing/ossec-hids-local/ossec-hids-local.logrotate
deleted file mode 100644
index 7b6406819f6..00000000000
--- a/testing/ossec-hids-local/ossec-hids-local.logrotate
+++ /dev/null
@@ -1,5 +0,0 @@
-/var/ossec/logs/active-responses.log /var/ossec/logs/ossec.log {
- missingok
- notifempty
- copytruncate
-}
diff --git a/testing/ossec-hids-server/APKBUILD b/testing/ossec-hids-server/APKBUILD
deleted file mode 100644
index 64646656629..00000000000
--- a/testing/ossec-hids-server/APKBUILD
+++ /dev/null
@@ -1,87 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ossec-hids-server
-_target=${pkgname/ossec-hids-/}
-pkgver=3.6.0
-pkgrel=0
-pkgdesc="Open Source Host-based Intrusion Detection System"
-url="https://www.ossec.net/"
-arch="all !aarch64 !armhf !armv7 !s390x"
-license="GPL-2.0-only WITH openssl-exception"
-depends="inotify-tools procps ossec-hids-openrc"
-makedepends="linux-headers bsd-compat-headers openssl-dev \
-libevent-dev inotify-tools-dev findutils file zlib-dev pcre2-dev \
-sqlite-dev lua5.3-dev geoip-dev czmq-dev"
-checkdepends="check-dev subunit-dev"
-subpackages="$pkgname-doc"
-pkgusers="ossec ossecm ossecr"
-pkggroups="ossec"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ossec/ossec-hids/archive/$pkgver.tar.gz
- $pkgname.logrotate
- musl_lack_of_a_out_h.patch
- makefile.patch
- config"
-builddir="$srcdir"/ossec-hids-$pkgver
-
-prepare() {
- default_prepare
- export V=1
- export USER_INSTALL_TYPE=$_target
- export USER_NO_STOP=yes
- export USER_DIR=/var/ossec
- export USER_BINARYINSTALL=x
- export USE_GEOIP=yes
- export USE_ZEROMQ=yes
- export LUA_ENABLE=yes
- export USE_SQLITE=yes
- export DATABASE=sqlite
- export USE_INOTIFY=yes
- export PCRE2_SYSTEM=yes
-}
-
-build() {
- cd "$builddir"/src
- make clean
- make TARGET=$_target PREFIX=/var/ossec
-}
-
-check() {
- cd "$builddir"/src
- make test PREFIX=/var/ossec
-}
-
-package() {
- install -Dm644 -D "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
- install -Dm644 -D etc/ossec-$_target.conf "$pkgdir"/etc/ossec-$_target.conf
-
- mkdir -p "$pkgdir"/var/ossec/etc
- cat << EOF > "$pkgdir"/var/ossec/etc/ossec-init.conf
-DIRECTORY="/var/ossec"
-VERSION="$(cat src/VERSION)"
-DATE="$(date)"
-TYPE="$_target"
-EOF
-
- set -- $pkgusers
- cd "$builddir"/src
- find "$pkgdir" -user nobody -exec chown 524 '{}' ';'
- find "$pkgdir" -user mail -exec chown 525 '{}' ';'
- find "$pkgdir" -user daemon -exec chown 526 '{}' ';'
- find "$pkgdir" -group nobody -exec chgrp 525 '{}' ';'
-
- make TARGET="$_target" PREFIX="$pkgdir"/var/ossec install
-}
-
-doc() {
- cd "$builddir"
- pkgdesc="Documentation for $pkgname"
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
- cp -a doc/* \
- "$subpkgdir"/usr/share/doc/$pkgname
-}
-
-sha512sums="1f5e897de757df264dfb56def74b7d8f886b6b9d772b5b3d0197c9cd00a32fd7fd8a7b53566851fea3cd74d433b5594cbd074e50b7dbe36305fb3c243e8ddcf5 ossec-hids-server-3.6.0.tar.gz
-6cdf4852feabfdd043405e2570bb9a3013eb11c1865e9178fb67a019717d44fb0fedba05ab74c4334a1bae0a0c45912213dd7d6c7e1eab31853d40beea7596a0 ossec-hids-server.logrotate
-4e076581cc3977c527f30da6c43552db18bc35ea7b745c1504f4d15ebfbcef42c9604804af28fc90744a85f847a0f0c5bf991476cae71e3d860adb7cfa33a63b musl_lack_of_a_out_h.patch
-27ccd8197541693c6cfa85e1598b40a5bd2dbd1dec2b7bd057211b45fd0c14c42c2ddd01d9ac57491eda93bb318961642d3adce55b395351d530609250ca003f makefile.patch
-5213936052ed3adf8d9bb36d044386e2decf85ad59e7d5a69b4b73c708ea779dc03049c3429e9b658efceb347b950b0192ca4f66bb56a3101c2016f106dcc287 config"
diff --git a/testing/ossec-hids-server/config b/testing/ossec-hids-server/config
deleted file mode 100644
index 4400290be78..00000000000
--- a/testing/ossec-hids-server/config
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-
-# Do you want to update it? (y/n) [y]:
-export USER_UPDATE=y
-
-# Do you want to update the rules? (y/n) [y]:
-export USER_UPDATE_RULES=y
-
-# User Language:
-export USER_LANGUAGE=en
-
-# Do you want e-mail notification? (y/n) [y]:
-export USER_ENABLE_EMAIL=y
-# What's your e-mail address?
-export USER_EMAIL_ADDRESS=foo@example.com
-# What's your SMTP server ip/host?
-export USER_EMAIL_SMTP=localhost
-
-# Do you want to run the integrity check daemon? (y/n) [y]:
-export USER_ENABLE_SYSCHECK=y
-
-#Do you want to run the rootkit detection engine? (y/n) [y]:
-export USER_ENABLE_ROOTCHECK=y
-
-# Active response allows you to execute a specific
-# command based on the events received. For example,
-# you can block an IP address or disable access for
-# a specific user.
-# More information at:
-# https://ossec.github.io/docs/manual/ar/
-#
-# - Do you want to enable active response? (y/n) [y]:
-export USER_ENABLE_ACTIVE_RESPONSE=y
-
-# - By default, we can enable the host-deny and the
-# firewall-drop responses. The first one will add
-# a host to the /etc/hosts.deny and the second one
-# will block the host on iptables (if linux) or on
-# ipfilter (if Solaris, FreeBSD or NetBSD).
-# - They can be used to stop SSHD brute force scans,
-# portscans and some other forms of attacks. You can
-# also add them to block on snort events, for example.
-#
-# - Do you want to enable the firewall-drop response? (y/n) [y]:
-export USER_ENABLE_FIREWALL_RESPONSE=y
-
-# Do you want to add more IPs to the white list? (y/n)? [n]:
-# if set to y, installer will ask you to enter the list of IPs
-# if you want to use this feature, you must also export USER_NO_STOP=no
-export USER_WHITE_LIST=n
-
-# Do you want to enable remote syslog (port 514 udp)? (y/n) [y]:
-export USER_ENABLE_SYSLOG=y
-
-# IP address or hostname of the ossec server. Only used on agent installations.
-# export USER_AGENT_SERVER_IP="127.0.0.1"
-# export USER_AGENT_SERVER_NAME
-# Agent's config profile name. This is used to create agent.conf configuration profiles
-# for this particular profile name. Only used on agent installations.
-# Can be any string. E.g. LinuxDBServer or WindowsDomainController
-export USER_AGENT_CONFIG_PROFILE="generic"
-
-
diff --git a/testing/ossec-hids-server/makefile.patch b/testing/ossec-hids-server/makefile.patch
deleted file mode 100644
index e3f15a6b962..00000000000
--- a/testing/ossec-hids-server/makefile.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/src/Makefile b/src/Makefile
-index 1a3c9bd..b2ddfb1 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -22,13 +22,13 @@ OSSEC_USER_MAIL?=ossecm
- OSSEC_USER_REM?=ossecr
-
- INSTALL_CMD?=install -m $(1) -o $(2) -g $(3)
--INSTALL_LOCALTIME?=yes
--INSTALL_RESOLVCONF?=yes
-+INSTALL_LOCALTIME=no
-+INSTALL_RESOLVCONF=no
-
- USE_PRELUDE?=no
- USE_ZEROMQ?=no
- USE_GEOIP?=no
--USE_INOTIFY=no
-+USE_INOTIFY=yes
- USE_PCRE2_JIT=yes
-
- ifneq (${TARGET},winagent)
-@@ -399,7 +399,6 @@ install-hybrid: install-server-generic
- install-server: install-server-generic
-
- install-common: build
-- ./init/adduser.sh ${OSSEC_USER} ${OSSEC_USER_MAIL} ${OSSEC_USER_REM} ${OSSEC_GROUP} ${PREFIX}
- $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/
- $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs
- $(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/ossec.log
-@@ -1254,7 +1253,7 @@ ossec-makelists: analysisd/makelists-live.o ${analysisd_live_o} ${format_o} aler
- #### test ##########
- ####################
-
--CFLAGS_TEST = -g -O0 --coverage
-+CFLAGS_TEST = -g -O0
-
- LDFLAGS_TEST = -lcheck -lm -pthread -lrt -lsubunit
-
-@@ -1265,7 +1264,7 @@ endif #TEST
-
- test_programs = test_os_zlib test_os_xml test_os_regex test_os_crypto test_shared
-
--.PHONY: test run_tests build_tests test_valgrind test_coverage
-+.PHONY: test run_tests build_tests test_valgrind
-
- test: build_tests
- ${MAKE} run_tests
diff --git a/testing/ossec-hids-server/musl_lack_of_a_out_h.patch b/testing/ossec-hids-server/musl_lack_of_a_out_h.patch
deleted file mode 100644
index a4d2b12a619..00000000000
--- a/testing/ossec-hids-server/musl_lack_of_a_out_h.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/rootcheck/os_string.c b/src/rootcheck/os_string.c
-index e7ca284..85b6d9b 100644
---- a/src/rootcheck/os_string.c
-+++ b/src/rootcheck/os_string.c
-@@ -44,7 +44,7 @@
-
- #ifdef SOLARIS
- #include <sys/exechdr.h>
--#elif defined Darwin || defined HPUX
-+#elif defined Darwin || defined HPUX || defined linux
-
- /* For some reason darwin does not have that */
- struct exec {
diff --git a/testing/ossec-hids-server/ossec-hids-server.logrotate b/testing/ossec-hids-server/ossec-hids-server.logrotate
deleted file mode 100644
index 7b6406819f6..00000000000
--- a/testing/ossec-hids-server/ossec-hids-server.logrotate
+++ /dev/null
@@ -1,5 +0,0 @@
-/var/ossec/logs/active-responses.log /var/ossec/logs/ossec.log {
- missingok
- notifempty
- copytruncate
-}
diff --git a/testing/ossec-hids/APKBUILD b/testing/ossec-hids/APKBUILD
deleted file mode 100644
index 06b679dff8d..00000000000
--- a/testing/ossec-hids/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=ossec-hids
-pkgver=3.6.0
-pkgrel=0
-pkgdesc="Open Source Host-based Intrusion Detection System - meta package"
-url="https://www.ossec.net/"
-arch="noarch"
-license="GPL-2.0-only WITH openssl-exception"
-depends="inotify-tools procps"
-makedepends="linux-headers bsd-compat-headers openssl-dev
-libevent-dev inotify-tools-dev findutils file zlib-dev pcre2-dev
-sqlite-dev lua5.3-dev"
-install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-contrib::noarch $pkgname-openrc"
-pkgusers="ossec ossecm ossecr"
-pkggroups="ossec"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ossec/ossec-hids/archive/$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- export USER_NO_STOP=yes
- export USER_DIR=/var/ossec
- export USER_BINARYINSTALL=x
- export PCRE2_SYSTEM=yes
-}
-
-build() {
- return 0
-}
-
-package() {
- install -Dm755 -D src/init/ossec-hids-alpine.init "$pkgdir"/etc/init.d/ossec-hids
- install -Dm644 -D etc/ossec.conf "$pkgdir"/etc/ossec.conf
-}
-
-doc() {
- cd "$builddir"
- pkgdesc="Documentation for $pkgname"
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
- cp -a doc/* \
- "$subpkgdir"/usr/share/doc/$pkgname
-}
-
-contrib() {
- pkgdesc="Contrib files for $pkgname"
- mkdir -p "$subpkgdir"/usr/share/$pkgname
- cp -a "$builddir"/contrib/* "$subpkgdir"/usr/share/$pkgname
- for r in selinux debian-packages specs; do
- rm -rf "$subpkgdir"/usr/share/$pkgname/$r
- done
-}
-
-sha512sums="1f5e897de757df264dfb56def74b7d8f886b6b9d772b5b3d0197c9cd00a32fd7fd8a7b53566851fea3cd74d433b5594cbd074e50b7dbe36305fb3c243e8ddcf5 ossec-hids-3.6.0.tar.gz"
diff --git a/testing/ossec-hids/ossec-hids.pre-install b/testing/ossec-hids/ossec-hids.pre-install
deleted file mode 100755
index e6cd506f999..00000000000
--- a/testing/ossec-hids/ossec-hids.pre-install
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-addgroup -S ossec 2>/dev/null
-adduser -S -D -s /sbin/nologin -h /var/ossec -G ossec -g ossec ossec 2>/dev/null
-adduser -S -D -s /sbin/nologin -h /var/ossec -G ossec -g ossec ossecm 2>/dev/null
-adduser -S -D -s /sbin/nologin -h /var/ossec -G ossec -g ossec ossecr 2>/dev/null
-
-exit 0
-
diff --git a/testing/ossp-uuid/APKBUILD b/testing/ossp-uuid/APKBUILD
deleted file mode 100644
index b67d895cdd4..00000000000
--- a/testing/ossp-uuid/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: "Andrzej Trzaska <atrzaska2@gmail.com>"
-# Maintainer: "Andrzej Trzaska <atrzaska2@gmail.com>"
-pkgname=ossp-uuid
-pkgver=1.6.2
-pkgrel=1
-pkgdesc="Open Source Software Project Universally Unique Identifier (UUID)"
-url="http://www.ossp.org/pkg/lib/uuid/"
-arch="all"
-license="MIT"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://mirrors.ocf.berkeley.edu/debian/pool/main/o/ossp-uuid/ossp-uuid_$pkgver.orig.tar.gz
- uuid.patch
- "
-builddir="$srcdir/uuid-$pkgver"
-
-prepare() {
- update_config_guess
- default_prepare
-}
-
-build() {
- ./configure --prefix=/usr --without-pgsql --without-perl --without-php --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="16c7e016ce08d7679cc6ee7dec43a886a8c351960acdde99f8f9b590c7232d521bc6e66e4766d969d22c3f835dcc2814fdecc44eef1cd11e7b9b0f9c41b5c03e ossp-uuid_1.6.2.orig.tar.gz
-5247357f73ba667e4530af80f38bac17dd3395d8152ba1bf239abb1ab53f334d405a8673a3f99ac82c73737c19eccea71886b2ebc61ac37bc64e9ed69ab1bc0a uuid.patch"
diff --git a/testing/ossp-uuid/uuid.patch b/testing/ossp-uuid/uuid.patch
deleted file mode 100644
index a88c453d830..00000000000
--- a/testing/ossp-uuid/uuid.patch
+++ /dev/null
@@ -1,208 +0,0 @@
-diff -up uuid-1.6.1/uuid-config.in.BAD uuid-1.6.1/uuid-config.in
---- uuid-1.6.1/uuid-config.in.BAD 2008-03-06 11:56:13.000000000 -0500
-+++ uuid-1.6.1/uuid-config.in 2008-03-06 11:56:25.000000000 -0500
-@@ -121,7 +121,7 @@ do
- output_extra="$output_extra $uuid_ldflags"
- ;;
- --libs)
-- output="$output -luuid"
-+ output="$output -lossp-uuid"
- output_extra="$output_extra $uuid_libs"
- ;;
- * )
-diff -up uuid-1.6.1/Makefile.in.BAD uuid-1.6.1/Makefile.in
---- uuid-1.6.1/Makefile.in.BAD 2008-03-06 11:10:13.000000000 -0500
-+++ uuid-1.6.1/Makefile.in 2008-03-06 11:11:39.000000000 -0500
-@@ -62,13 +62,13 @@ PERL = @PERL@
- PHP = @PHP@
- PG_CONFIG = @PG_CONFIG@
-
--LIB_NAME = libuuid.la
-+LIB_NAME = libossp-uuid.la
- LIB_OBJS = uuid.lo uuid_md5.lo uuid_sha1.lo uuid_prng.lo uuid_mac.lo uuid_time.lo uuid_ui64.lo uuid_ui128.lo uuid_str.lo
-
--DCE_NAME = libuuid_dce.la
-+DCE_NAME = libossp-uuid_dce.la
- DCE_OBJS = uuid_dce.lo $(LIB_OBJS)
-
--CXX_NAME = libuuid++.la
-+CXX_NAME = libossp-uuid++.la
- CXX_OBJS = uuid++.lo $(LIB_OBJS)
-
- PRG_NAME = uuid
-@@ -79,10 +79,10 @@ MAN_NAME = uuid.3 uuid++.3 uuid.1
- PERL_NAME = $(S)/perl/blib/lib/OSSP/uuid.pm
- PERL_OBJS = $(S)/perl/uuid.pm
-
--PHP_NAME = $(S)/php/modules/uuid.so
-+PHP_NAME = $(S)/php/modules/ossp-uuid.so
- PHP_OBJS = $(S)/php/uuid.c
-
--PGSQL_NAME = $(S)/pgsql/libuuid.so
-+PGSQL_NAME = $(S)/pgsql/libossp-uuid.so
- PGSQL_OBJS = $(S)/pgsql/uuid.c
-
- TARGETS = $(LIB_NAME) @DCE_NAME@ @CXX_NAME@ $(PRG_NAME) @PERL_NAME@ @PHP_NAME@ @PGSQL_NAME@
-@@ -231,7 +231,7 @@ install:
- $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(mandir)/man1
- $(SHTOOL) install -c -m 755 uuid-config $(DESTDIR)$(bindir)/
- $(SHTOOL) install -c -m 644 $(S)/uuid-config.1 $(DESTDIR)$(mandir)/man1/
-- $(SHTOOL) install -c -m 644 $(S)/uuid.pc $(DESTDIR)$(libdir)/pkgconfig/
-+ $(SHTOOL) install -c -m 644 $(S)/uuid.pc $(DESTDIR)$(libdir)/pkgconfig/ossp-uuid.pc
- $(SHTOOL) install -c -m 644 uuid.h $(DESTDIR)$(includedir)/
- -@if [ ".$(WITH_DCE)" = .yes ]; then \
- echo "$(SHTOOL) install -c -m 644 $(S)/uuid_dce.h $(DESTDIR)$(includedir)/"; \
-@@ -241,7 +241,7 @@ install:
- echo "$(SHTOOL) install -c -m 644 $(S)/uuid++.hh $(DESTDIR)$(includedir)/"; \
- $(SHTOOL) install -c -m 644 $(S)/uuid++.hh $(DESTDIR)$(includedir)/; \
- fi
-- $(SHTOOL) install -c -m 644 $(S)/uuid.3 $(DESTDIR)$(mandir)/man3/
-+ $(SHTOOL) install -c -m 644 $(S)/uuid.3 $(DESTDIR)$(mandir)/man3/ossp-uuid.3
- -@if [ ".$(WITH_CXX)" = .yes ]; then \
- echo "$(SHTOOL) install -c -m 644 $(S)/uuid++.3 $(DESTDIR)$(mandir)/man3/"; \
- $(SHTOOL) install -c -m 644 $(S)/uuid++.3 $(DESTDIR)$(mandir)/man3/; \
-@@ -276,7 +276,7 @@ uninstall:
- -@if [ ".$(WITH_CXX)" = .yes ]; then \
- $(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(CXX_NAME); \
- fi
-- -$(RM) $(DESTDIR)$(mandir)/man3/uuid.3
-+ -$(RM) $(DESTDIR)$(mandir)/man3/ossp-uuid.3
- -@if [ ".$(WITH_CXX)" = .yes ]; then \
- echo "$(RM) $(DESTDIR)$(mandir)/man3/uuid++.3"; \
- $(RM) $(DESTDIR)$(mandir)/man3/uuid++.3; \
-@@ -290,7 +290,7 @@ uninstall:
- echo "$(RM) $(DESTDIR)$(includedir)/uuid++.hh"; \
- $(RM) $(DESTDIR)$(includedir)/uuid++.hh; \
- fi
-- -$(RM) $(DESTDIR)$(libdir)/pkgconfig/uuid.pc
-+ -$(RM) $(DESTDIR)$(libdir)/pkgconfig/ossp-uuid.pc
- -$(RM) $(DESTDIR)$(mandir)/man1/uuid-config.1
- -$(RM) $(DESTDIR)$(bindir)/uuid-config
- -$(RMDIR) $(DESTDIR)$(mandir)/man1 >/dev/null 2>&1 || $(TRUE)
-diff -up uuid-1.6.1/pgsql/Makefile.BAD uuid-1.6.1/pgsql/Makefile
---- uuid-1.6.1/pgsql/Makefile.BAD 2008-03-06 11:53:26.000000000 -0500
-+++ uuid-1.6.1/pgsql/Makefile 2008-03-06 11:54:14.000000000 -0500
-@@ -18,13 +18,13 @@ POSTGRES := $(shell $(PG_CONFIG
- top_builddir := $(dir $(PGXS))../..
- include $(top_builddir)/src/Makefile.global
-
--NAME = uuid
-+NAME = ossp-uuid
- OBJS = uuid.o
- SO_MAJOR_VERSION = 1
- SO_MINOR_VERSION = 0
-
- override CPPFLAGS := -I.. $(CPPFLAGS)
--SHLIB_LINK := -L../.libs -luuid
-+SHLIB_LINK := -L../.libs -lossp-uuid
- SHLIB_LINK += $(shell test $(shell uname -s) = FreeBSD && echo "-Wl,-Bsymbolic")
- SHLIB_LINK += $(shell test $(shell uname -s) = Darwin && echo "-bundle_loader $(POSTGRES)")
- rpath :=
-@@ -35,16 +35,16 @@ enable_shared = yes
- include $(top_builddir)/src/Makefile.shlib
-
- uuid.sql: uuid.sql.in
-- sed -e 's;MODULE_PATHNAME;$(DESTDIR)$(pkglibdir)/uuid$(DLSUFFIX);g' <uuid.sql.in >uuid.sql
-+ sed -e 's;MODULE_PATHNAME;$(DESTDIR)$(pkglibdir)/ossp-uuid$(DLSUFFIX);g' <uuid.sql.in >uuid.sql
-
- install: all
- $(mkinstalldirs) $(DESTDIR)$(pkglibdir)
- $(mkinstalldirs) $(DESTDIR)$(datadir)
-- $(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/uuid$(DLSUFFIX)
-+ $(INSTALL_SHLIB) $(shlib) $(DESTDIR)$(pkglibdir)/ossp-uuid$(DLSUFFIX)
- $(INSTALL_DATA) uuid.sql $(DESTDIR)$(datadir)/uuid.sql
-
- uninstall:
-- -rm -f $(DESTDIR)$(pkglibdir)/uuid$(DLSUFFIX)
-+ -rm -f $(DESTDIR)$(pkglibdir)/ossp-uuid$(DLSUFFIX)
- -rm -f $(DESTDIR)$(datadir)/uuid.sql
-
- clean distclean: clean-lib
-diff -up uuid-1.6.1/uuid.pc.in.BAD uuid-1.6.1/uuid.pc.in
---- uuid-1.6.1/uuid.pc.in.BAD 2008-03-06 11:57:29.000000000 -0500
-+++ uuid-1.6.1/uuid.pc.in 2008-03-06 11:57:36.000000000 -0500
-@@ -37,6 +37,6 @@ Description: Universally Unique Identifi
- Version: @UUID_VERSION_RAW@
- URL: http://www.ossp.org/pkg/lib/uuid/
- Cflags: -I${includedir}
--Libs: -L${libdir} -luuid
-+Libs: -L${libdir} -lossp-uuid
- Libs.private: @LIBS@
-
-diff -up uuid-1.6.1/perl/Makefile.PL.BAD uuid-1.6.1/perl/Makefile.PL
---- uuid-1.6.1/perl/Makefile.PL.BAD 2008-03-06 11:12:05.000000000 -0500
-+++ uuid-1.6.1/perl/Makefile.PL 2008-03-06 11:49:25.000000000 -0500
-@@ -33,9 +33,9 @@ use Config;
- use ExtUtils::MakeMaker;
-
- # determine source directory
--my ($srcdir) = map { my $d = $_; $d =~ s/\/libuuid\.la$//; $d }
-- grep { -f $_ } ("../libuuid.la", glob("../*/libuuid.la"))
-- or die "no source directory found (where libuuid.la is located)";
-+my ($srcdir) = map { my $d = $_; $d =~ s/\/libossp-uuid\.la$//; $d }
-+ grep { -f $_ } ("../libossp-uuid.la", glob("../*/libossp-uuid.la"))
-+ or die "no source directory found (where libossp-uuid.la is located)";
-
- # determine extra build options
- my $compat = 0;
-@@ -47,7 +47,7 @@ WriteMakefile(
- VERSION_FROM => 'uuid.pm',
- ABSTRACT_FROM => 'uuid.pod',
- PREREQ_PM => {},
-- LIBS => [ "-L$srcdir/.libs -L$srcdir -luuid" ],
-+ LIBS => [ "-L$srcdir/.libs -L$srcdir -lossp-uuid" ],
- DEFINE => '',
- INC => "-I. -I$srcdir",
- PM => { 'uuid.pm' => '$(INST_LIBDIR)/uuid.pm',
-diff -up uuid-1.6.1/Makefile.PL.BAD uuid-1.6.1/Makefile.PL
---- uuid-1.6.1/Makefile.PL.BAD 2008-03-06 11:09:49.000000000 -0500
-+++ uuid-1.6.1/Makefile.PL 2008-03-06 11:10:01.000000000 -0500
-@@ -44,7 +44,7 @@ ARGS = $ARGS
- all pure_all:
- \@if [ ! -d build ]; then mkdir build; fi
- \@if [ ! -f build/Makefile ]; then (cd build && ../configure --disable-shared); fi
-- \@if [ ! -f build/libuuid.la ]; then (cd build && \$(MAKE) \$(MFLAGS) libuuid.la); fi
-+ \@if [ ! -f build/libossp-uuid.la ]; then (cd build && \$(MAKE) \$(MFLAGS) libossp-uuid.la); fi
- \@if [ ! -f perl/Makefile ]; then (cd perl && \$(PERL) Makefile.PL \$(ARGS)); fi
- \@cd perl && \$(MAKE) \$(MFLAGS) \$\@
-
-diff -up uuid-1.6.1/php/config.m4.BAD uuid-1.6.1/php/config.m4
---- uuid-1.6.1/php/config.m4.BAD 2008-03-06 11:54:55.000000000 -0500
-+++ uuid-1.6.1/php/config.m4 2008-03-06 11:55:07.000000000 -0500
-@@ -34,7 +34,7 @@ if test "$PHP_UUID" != "no"; then
- PHP_NEW_EXTENSION(uuid, uuid.c, $ext_shared)
- AC_DEFINE(HAVE_UUID, 1, [Have OSSP uuid library])
- PHP_ADD_LIBPATH([..], )
-- PHP_ADD_LIBRARY([uuid],, UUID_SHARED_LIBADD)
-+ PHP_ADD_LIBRARY([ossp-uuid],, UUID_SHARED_LIBADD)
- PHP_ADD_INCLUDE([..])
- PHP_SUBST(UUID_SHARED_LIBADD)
-
-diff -up uuid-1.6.1/php/Makefile.local.BAD uuid-1.6.1/php/Makefile.local
---- uuid-1.6.1/php/Makefile.local.BAD 2008-03-06 11:54:39.000000000 -0500
-+++ uuid-1.6.1/php/Makefile.local 2008-03-06 11:54:49.000000000 -0500
-@@ -48,7 +48,7 @@ install: build
- @version=`$(PHP)-config --version | sed -e 's;^\([0-9]\).*$$;\1;'`; extdir="$(EXTDIR)"; \
- echo "installing PHP$$version API into $$extdir"; \
- ./build/shtool mkdir -f -p -m 755 $(DESTDIR)$$extdir; \
-- ./build/shtool install -c -m 755 modules/uuid.so $(DESTDIR)$$extdir/uuid.so; \
-+ ./build/shtool install -c -m 755 modules/uuid.so $(DESTDIR)$$extdir/ossp-uuid.so; \
- ./build/shtool install -c -m 644 uuid.php$$version $(DESTDIR)$$extdir/uuid.php
-
- clean:
-diff -up uuid-1.6.1/php/uuid.ts.BAD uuid-1.6.1/php/uuid.ts
---- uuid-1.6.1/php/uuid.ts.BAD 2008-03-06 11:55:38.000000000 -0500
-+++ uuid-1.6.1/php/uuid.ts 2008-03-06 11:56:03.000000000 -0500
-@@ -34,9 +34,9 @@
-
- $php_version = $argv[1];
-
--print "++ loading DSO uuid.so (low-level API)\n";
-+print "++ loading DSO ossp-uuid.so (low-level API)\n";
- if (!extension_loaded('uuid')) {
-- dl('modules/uuid.so');
-+ dl('modules/ossp-uuid.so');
- }
-
- print "++ loading PHP uuid.php${php_version} (high-level API)\n";
-
diff --git a/testing/ostinato/APKBUILD b/testing/ostinato/APKBUILD
deleted file mode 100644
index 5a8a7fc1c6d..00000000000
--- a/testing/ostinato/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Maintainer: Corentin Henry <corentinhenry@gmail.com>
-# Contributor: Corentin Henry <corentinhenry@gmail.com>
-pkgname=ostinato
-pkgver=0.9_git20190528
-pkgrel=5
-_commit="edc7ed677c1d5c308e66441f464dfd69aa922643"
-pkgdesc="Packet/Traffic Generator and Analyzer"
-url="https://www.ostinato.org"
-arch="all"
-license="GPL-3.0-or-later"
-options="!check" # make test does nothing
-makedepends="qt5-qtbase-dev protobuf-dev libpcap-dev qt5-qtscript-dev libnl3-dev"
-subpackages="$pkgname-drone $pkgname-gui"
-source="$pkgname-$_commit.tar.gz::https://github.com/pstavirs/$pkgname/archive/$_commit.tar.gz
- bug-265.patch
- ModelTest.patch
- "
- # pstavirs/ostinato#265
- # ModelTest::ModelTest is included and needed during linking even in release mode
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- qmake-qt5 PREFIX=/usr
- make CXXFLAGS="$CXXFLAGS" # qmake generates broken CFLAGS, demand it use ours
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
-}
-
-drone() {
- pkgdesc="ostinato controller"
-
- install -d "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/drone "$subpkgdir"/usr/bin/drone
-}
-
-gui() {
- pkgdesc="graphical controller for ostinato"
-
- install -d "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/ostinato "$subpkgdir"/usr/bin/ostinato
-}
-
-sha512sums="b71bb38d9bd429198a0cce7f4abbe599f68ceb6a13d377aef437d12a972818f53ed67090191405f8b95538c9f2101fc20548f32258a1da1aca10a812fbd05a3c ostinato-edc7ed677c1d5c308e66441f464dfd69aa922643.tar.gz
-25ebe30724a22cbecada8e26b07dccbd4cbcf572e10988af11baa6dc9e4aeb31e6d332cb766f726626ef8ecc889ecaae083a540cdd41cc05edb4c354554cdced bug-265.patch
-e0a3d2781c62b1898a80af8522b36d6b1a7aeae9831c33c42e4e76fe002ee7ebff50d432508a18046d7b5988f09d9a9f90a0433cfae1d2c1cbeaf664671abf6c ModelTest.patch"
diff --git a/testing/ostinato/ModelTest.patch b/testing/ostinato/ModelTest.patch
deleted file mode 100644
index d01a1e7b0d4..00000000000
--- a/testing/ostinato/ModelTest.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Undefined reference to ModelTest::ModelTest under defaults.
-Clearly, we're not in a debug mode, but the sources think we are.
-
-Patch is not upstream, made by SpaceToast on #alpine-devel
-diff -ur a/client/ostinato.pro b/client/ostinato.pro
---- a/client/ostinato.pro 2019-05-28 09:32:50.000000000 -0400
-+++ b/client/ostinato.pro 2019-06-04 19:14:23.477762179 -0400
-@@ -123,6 +123,6 @@
-
- INCLUDEPATH += "../extra/modeltest"
- greaterThan(QT_MINOR_VERSION, 6) {
--CONFIG(debug, debug|release): LIBS += -L"../extra/modeltest/$(OBJECTS_DIR)/" -lmodeltest
--CONFIG(debug, debug|release): QT += testlib
-+LIBS += -L"../extra/modeltest/$(OBJECTS_DIR)/" -lmodeltest
-+QT += testlib
- }
-
-
diff --git a/testing/ostinato/bug-265.patch b/testing/ostinato/bug-265.patch
deleted file mode 100644
index 5d9f1de1c32..00000000000
--- a/testing/ostinato/bug-265.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-https://github.com/pstavirs/ostinato/issues/265#issuecomment-429008063
-diff --git a/common/mld.cpp b/common/mld.cpp
-index 52b48a5..fbb22f5 100644
---- a/common/mld.cpp
-+++ b/common/mld.cpp
-@@ -225,9 +225,9 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- fv.resize(16);
- for (int i = 0; i < data.sources_size(); i++)
- {
-- qToBigEndian(data.sources(i).v6_hi(),
-+ qToBigEndian(quint64(data.sources(i).v6_hi()),
- (uchar*)fv.data());
-- qToBigEndian(data.sources(i).v6_lo(),
-+ qToBigEndian(quint64(data.sources(i).v6_lo()),
- (uchar*)fv.data()+8);
-
- list << QHostAddress((quint8*)fv.constData()).toString();
-@@ -240,9 +240,9 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- fv.resize(16 * data.sources_size());
- for (int i = 0; i < data.sources_size(); i++)
- {
-- qToBigEndian(data.sources(i).v6_hi(),
-+ qToBigEndian(quint64(data.sources(i).v6_hi()),
- (uchar*)(fv.data() + i*16));
-- qToBigEndian(data.sources(i).v6_lo(),
-+ qToBigEndian(quint64(data.sources(i).v6_lo()),
- (uchar*)(fv.data() + i*16 + 8));
- }
- return fv;
-@@ -254,9 +254,9 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- fv.resize(16);
- for (int i = 0; i < data.sources_size(); i++)
- {
-- qToBigEndian(data.sources(i).v6_hi(),
-+ qToBigEndian(quint64(data.sources(i).v6_hi()),
- (uchar*)fv.data());
-- qToBigEndian(data.sources(i).v6_lo(),
-+ qToBigEndian(quint64(data.sources(i).v6_lo()),
- (uchar*)fv.data()+8);
-
- list << QHostAddress((quint8*)fv.constData()).toString();
-@@ -295,9 +295,9 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- QStringList sl;
- for (int j = 0; j < rec.sources_size(); j++)
- {
-- qToBigEndian(rec.sources(j).v6_hi(),
-+ qToBigEndian(quint64(rec.sources(j).v6_hi()),
- (uchar*)(ip.data()));
-- qToBigEndian(rec.sources(j).v6_lo(),
-+ qToBigEndian(quint64(rec.sources(j).v6_lo()),
- (uchar*)(ip.data() + 8));
- sl.append(QHostAddress(
- (quint8*)ip.constData()).toString());
-@@ -322,15 +322,15 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- QByteArray rv = list.at(i).toByteArray();
-
- rv.insert(4, QByteArray(16+16*rec.sources_size(), char(0)));
-- qToBigEndian(rec.group_address().v6_hi(),
-+ qToBigEndian(quint64(rec.group_address().v6_hi()),
- (uchar*)(rv.data()+4));
-- qToBigEndian(rec.group_address().v6_lo(),
-+ qToBigEndian(quint64(rec.group_address().v6_lo()),
- (uchar*)(rv.data()+4+8));
- for (int j = 0; j < rec.sources_size(); j++)
- {
-- qToBigEndian(rec.sources(j).v6_hi(),
-+ qToBigEndian(quint64(rec.sources(j).v6_hi()),
- (uchar*)(rv.data()+20+16*j));
-- qToBigEndian(rec.sources(j).v6_lo(),
-+ qToBigEndian(quint64(rec.sources(j).v6_lo()),
- (uchar*)(rv.data()+20+16*j+8));
- }
-
-@@ -352,9 +352,9 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- QString recStr = list.at(i);
- QString str;
-
-- qToBigEndian(rec.group_address().v6_hi(),
-+ qToBigEndian(quint64(rec.group_address().v6_hi()),
- (uchar*)(ip.data()));
-- qToBigEndian(rec.group_address().v6_lo(),
-+ qToBigEndian(quint64(rec.group_address().v6_lo()),
- (uchar*)(ip.data() + 8));
- str.append(QString("Group: %1").arg(
- QHostAddress((quint8*)ip.constData()).toString()));
-@@ -363,9 +363,9 @@ QVariant MldProtocol::fieldData(int index, FieldAttrib attrib,
- QStringList sl;
- for (int j = 0; j < rec.sources_size(); j++)
- {
-- qToBigEndian(rec.sources(j).v6_hi(),
-+ qToBigEndian(quint64(rec.sources(j).v6_hi()),
- (uchar*)(ip.data()));
-- qToBigEndian(rec.sources(j).v6_lo(),
-+ qToBigEndian(quint64(rec.sources(j).v6_lo()),
- (uchar*)(ip.data() + 8));
- sl.append(QHostAddress(
- (quint8*)ip.constData()).toString());
diff --git a/testing/otf-atkinson-hyperlegible/APKBUILD b/testing/otf-atkinson-hyperlegible/APKBUILD
new file mode 100644
index 00000000000..be56eff2886
--- /dev/null
+++ b/testing/otf-atkinson-hyperlegible/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Sam Stuewe <samuel.stuewe@gmail.com>
+# Maintainer: Sam Stuewe <samuel.stuewe@gmail.com>
+pkgname=otf-atkinson-hyperlegible
+pkgver=2020.0514
+pkgrel=0
+pkgdesc="Font focused on improved readability"
+url="https://www.brailleinstitute.org/freefont"
+license="custom"
+subpackages="$pkgname-doc"
+arch="noarch"
+options="!check" # no test suite
+source="https://www.brailleinstitute.org/wp-content/uploads/atkinson-hyperlegible-font/Atkinson-Hyperlegible-Font-Print-and-Web-${pkgver/./-}.zip
+ LICENSE.pdf::https://www.brailleinstitute.org/wp-content/uploads/2020/11/Atkinson-Hyperlegible-Font-License-2020-1104.pdf"
+
+package() {
+ cd "$srcdir/Atkinson-Hyperlegible-Font-Print-and-Web-${pkgver/./-}/Print Fonts"
+
+ local file; for file in *.otf; do
+ install -Dm644 "$file" \
+ "$pkgdir"/usr/share/fonts/opentype/atkinson-hyperlegible/"$file"
+ done
+
+ install -Dm644 "$srcdir/LICENSE.pdf" "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.pdf
+}
+
+sha512sums="869e4a477caac906731494daa6db216f621fd75231aeb94053a412ff1c3752726c873895a785b138d3a74dc721a06925b791ccf1a3cdaddd52edc99c4188a0bd Atkinson-Hyperlegible-Font-Print-and-Web-2020-0514.zip
+2d81fa4e4ac09490e9d9f8d8b8922a8ffc8d2568994147dfea713259f210e90883c0353f13be05d0e979ca99313b136a1021199adec863cf9012a52928403f54 LICENSE.pdf"
diff --git a/testing/otpclient/APKBUILD b/testing/otpclient/APKBUILD
new file mode 100644
index 00000000000..9e8a052aac4
--- /dev/null
+++ b/testing/otpclient/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=otpclient
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="Simple GTK+ client for managing TOTP and HOTP"
+url="https://github.com/paolostivanin/OTPClient"
+license="GPL-3.0-or-later"
+arch="all"
+options="!check" # no test suite
+makedepends="
+ cmake
+ gtk+3.0-dev
+ jansson-dev
+ libcotp-dev
+ libgcrypt-dev
+ libpng-dev
+ libqrencode-dev
+ libsecret-dev
+ libzip-dev
+ protobuf-c-dev
+ protobuf-dev
+ samurai
+ zbar-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/paolostivanin/OTPClient/archive/v$pkgver/OTPClient-$pkgver.tar.gz"
+builddir="$srcdir/OTPClient-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+74eb67e93ee2ec9bf780fbe23febd927877073524ad3574034f6b885d3c898a7ec14c2f9771f8368762d76514ca863e84a4ef7cc2db5e7fdeb79de91ee28b2c0 OTPClient-3.2.1.tar.gz
+"
diff --git a/testing/otrs/APKBUILD b/testing/otrs/APKBUILD
index 8943427a284..a6c43aaba3d 100644
--- a/testing/otrs/APKBUILD
+++ b/testing/otrs/APKBUILD
@@ -1,32 +1,90 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=otrs
-pkgver=5.0.24
-pkgrel=0
+_pkgname=znuny
+pkgver=6.0.48
+pkgrel=1
pkgdesc="Flexible Open Source Service Management Software"
-url="https://www.otrs.org/"
+url="https://www.znuny.org/"
arch="noarch"
license="AGPL-3.0-or-later"
pkgusers="otrs"
pkggroups="www-data"
depends="perl perl-archive-zip perl-crypt-eksblowfish perl-crypt-ssleay
- perl-date-format perl-dbi perl-encode-hanextra perl-io-socket-ssl perl-json-xs
+ perl-timedate perl-dbi perl-encode-hanextra perl-io-socket-ssl perl-json-xs
perl-ldap perl-libwww perl-mail-imapclient perl-net-dns perl-template-toolkit
perl-text-csv perl-text-csv_xs perl-uri perl-xml-libxml perl-xml-libxslt
- perl-xml-parser perl-yaml-xs ttf-dejavu"
+ perl-xml-parser perl-yaml-xs font-dejavu perl-datetime perl-moo
+ perl-css-minifier-xs perl-javascript-minifier-xs"
subpackages="$pkgname-doc $pkgname-dev $pkgname-setup $pkgname-apache2
$pkgname-fastcgi $pkgname-nginx $pkgname-bash-completion:bashcomp
$pkgname-openrc"
install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade
$pkgname-setup.post-install $pkgname-setup.post-deinstall"
-source="http://ftp.otrs.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2
+source="https://download.znuny.org/releases/$_pkgname-$pkgver.tar.bz2
$pkgname.initd
$pkgname.spawn-fcgi
$pkgname.nginx.conf
"
-
-# Security fixes:
-# 5.0.23:
+builddir=$srcdir/$_pkgname-$pkgver
+
+# secfixes:
+# 6.0.48-r0:
+# - CVE-2022-4427
+# 6.0.44-r0:
+# - ZSA-2022-05
+# - ZSA-2022-06
+# 6.0.43-r0:
+# - ZSA-2022-04
+# 6.0.40-r0:
+# - CVE-2021-41182
+# - CVE-2021-41183
+# - CVE-2021-41184
+# 6.0.39-r0:
+# - CVE-2021-21252
+# - CVE-2021-21440
+# - CVE-2021-21443
+# - CVE-2021-36091
+# 6.0.33-r0:
+# - CVE-2017-16664
+# - CVE-2017-16854
+# - CVE-2017-16921
+# - CVE-2017-17476
+# - CVE-2018-14593
+# - CVE-2018-16586
+# - CVE-2018-16587
+# - CVE-2018-17960
+# - CVE-2018-19141
+# - CVE-2018-19143
+# - CVE-2018-20800
+# - CVE-2019-10065
+# - CVE-2019-10066
+# - CVE-2019-10067
+# - CVE-2019-11358
+# - CVE-2019-12248
+# - CVE-2019-12497
+# - CVE-2019-12746
+# - CVE-2019-13457
+# - CVE-2019-13458
+# - CVE-2019-16375
+# - CVE-2019-18179
+# - CVE-2019-18180
+# - CVE-2019-9752
+# - CVE-2019-9892
+# - CVE-2020-11022
+# - CVE-2020-11023
+# - CVE-2020-1765
+# - CVE-2020-1766
+# - CVE-2020-1767
+# - CVE-2020-1769
+# - CVE-2020-1770
+# - CVE-2020-1771
+# - CVE-2020-1772
+# - CVE-2020-1773
+# - CVE-2020-1774
+# - CVE-2020-1776
+# - CVE-2021-21434
+# 5.0.23-r0:
# - CVE-2017-14635
prepare() {
@@ -48,11 +106,11 @@ package() {
# switch to system fonts
rm -fr var/lib/$pkgname/var/fonts
- ln -s /usr/share/fonts/ttf-dejavu \
+ ln -s /usr/share/fonts/dejavu \
var/lib/$pkgname/var/fonts
# fix *.dist files
- for file in var/lib/$pkgname/var/cron/*.dist \
+ for file in "var/lib/$pkgname/var/cron"/*.dist \
var/lib/$pkgname/Kernel/Config.pod.dist
do
mv $file ${file%.dist}
@@ -72,11 +130,11 @@ doc() {
mv "$pkgdir"/var/lib/$pkgname/doc \
"$subpkgdir"/var/lib/$pkgname
- for file in $(find "$pkgdir" -name "*.md" -o -name "*.pod" -o -name "*.txt" \
- -o -name "ARCHIVE" -o -name "README" \
- -o -name "UPGRADING" -o -name "COPYING*")
- do
- file=${file#$pkgdir}
+ local file; find "$pkgdir" -name "*.md" -o -name "*.pod" \
+ -o -name "*.txt" -o -name "ARCHIVE" -o -name "README" \
+ -o -name "UPGRADING" -o -name "COPYING*" \
+ | while read -r file; do
+ file=${file#"$pkgdir"}
mkdir -p "$subpkgdir"/${file%/*}
mv "$pkgdir"/$file "$subpkgdir"/$file
done
@@ -181,7 +239,9 @@ bashcomp() {
"$subpkgdir"/var/lib/$pkgname/.bash_completion
}
-sha512sums="7c5d756a30dfe39a224911883e3b265a3ee221b3a1dcec722c5cfd5369b02af9198c460519e1b5eaca7fa327153655f87203d4cc44a18f92eb13183d301f5195 otrs-5.0.24.tar.bz2
+sha512sums="
+898d97edffb82965767d77f5c7f0bdf9cf286008ce32fb46d67eb5d571b9576777d95573e2ed66d69db6141039f9b350f8c64e022478b08cd9b0d00d9c87f2a8 znuny-6.0.48.tar.bz2
90d43b350a00fa1648c8add5e2af9b88f78cb583f71438306a9b80ee45a939eda903472b84db1327e0579a5d8c5fd88e3c1e7d55a15106aeef426b16e932363d otrs.initd
7bab58132a5705c8e8ecade8e4aea3b0f04af66a71e4ae08cfeda91b0e143607de350debdc49bf2ce022277ee3804aead3ca8825804d073690c2f5f3a19d776e otrs.spawn-fcgi
-f79474575ac7c734edcfbaf56fc8062c3594749791f9d1fa4328c6bde71747f0ce6219d47ba7ab409927b7343b36dc0c4aa29cd03600c2d806ed5409edab6b14 otrs.nginx.conf"
+f79474575ac7c734edcfbaf56fc8062c3594749791f9d1fa4328c6bde71747f0ce6219d47ba7ab409927b7343b36dc0c4aa29cd03600c2d806ed5409edab6b14 otrs.nginx.conf
+"
diff --git a/testing/ouch/APKBUILD b/testing/ouch/APKBUILD
new file mode 100644
index 00000000000..735cb317f28
--- /dev/null
+++ b/testing/ouch/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=ouch
+pkgver=0.5.1
+pkgrel=0
+pkgdesc="Painless compression and decompression"
+url="https://github.com/ouch-org/ouch"
+arch="all"
+license="MIT"
+makedepends="cargo bzip2-dev xz-dev zlib-dev zstd-dev cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/ouch-org/ouch/archive/refs/tags/$pkgver.tar.gz
+ use-system-libs.patch
+ "
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ OUCH_ARTIFACTS_FOLDER=artifacts \
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/ouch -t "$pkgdir"/usr/bin/
+
+ cd artifacts/
+ install -Dm644 ouch.1 ouch-list.1 ouch-compress.1 ouch-decompress.1 \
+ -t "$pkgdir"/usr/share/man/man1/
+
+ install -Dm644 ouch.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/ouch
+ install -Dm644 ouch.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/ouch.fish
+ install -Dm644 _ouch \
+ "$pkgdir"/usr/share/zsh/site-functions/_ouch
+}
+
+sha512sums="
+b30dc9bb6bf8850f30ea6e23ae202df0941c2dc80b1f9b137093c36c6c2028e4c167809e657daa8b3af7a5ed1692a350e0b4709095281ad744d9fe0e22dd42b3 ouch-0.5.1.tar.gz
+1f56e8fcef76e48a7d1f3d2aac852c610a44e2d46360e8f6639f8f75a0385202aad772734f121218b132262cfe62a701e312db1a826ce45dad099ee09acd9e1b use-system-libs.patch
+"
diff --git a/testing/ouch/use-system-libs.patch b/testing/ouch/use-system-libs.patch
new file mode 100644
index 00000000000..0c61e09d672
--- /dev/null
+++ b/testing/ouch/use-system-libs.patch
@@ -0,0 +1,11 @@
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -34,7 +34,7 @@
+ unrar = "0.5.2"
+ xz2 = "0.1.7"
+ zip = { version = "0.6.6", default-features = false, features = ["time"] }
+-zstd = { version = "0.13.0", default-features = false }
++zstd = { version = "0.13.0", default-features = false, features = ["pkg-config"] }
+
+ [target.'cfg(not(unix))'.dependencies]
+ is_executable = "1.0.1"
diff --git a/testing/ovn/APKBUILD b/testing/ovn/APKBUILD
new file mode 100644
index 00000000000..70e2be13c07
--- /dev/null
+++ b/testing/ovn/APKBUILD
@@ -0,0 +1,152 @@
+# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+pkgname=ovn
+pkgver=24.03.1
+ovs_pkgver=3.3.0
+pkgrel=0
+pkgdesc="Open Virtual Network"
+url="https://www.ovn.org"
+arch="all"
+license="Apache-2.0"
+makedepends="automake
+ autoconf
+ libtool
+ libcap-ng-dev
+ linux-headers
+ openssl-dev>3
+ python3
+ unbound-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-dbg $pkgname-openrc"
+giturl="https://github.com/openvswitch/ovs.git"
+_gitrev="498cedc"
+options="!check" # most of the tests are failing
+install="$pkgname.post-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ovn-org/ovn/archive/refs/tags/v$pkgver.tar.gz
+ openvswitch-$ovs_pkgver.tar.gz::https://github.com/openvswitch/ovs/archive/refs/tags/v$ovs_pkgver.tar.gz
+ ovn-ctl.confd
+ ovn-northd.initd
+ ovn-ovsdb-server-nb.initd
+ ovn-ovsdb-server-sb.initd
+ ovn-controller.initd
+ ovs-modules.initd
+ ovs-vswitchd.confd
+ ovs-vswitchd.initd
+ ovsdb-server.confd
+ ovsdb-server.initd
+
+ ovs-ifupdown-alpine.patch
+ "
+provides="openvswitch=$ovs_pkgver"
+# https://dev.alpinelinux.org/archive/ovn/openvswitch-$ovs_pkgver-$_gitrev.tar.gz
+
+snapshot() {
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+ if ! [ -d ovs ]; then git clone $giturl; fi
+ cd ovs
+ git archive --prefix=openvswitch-$ovs_pkgver/ -o "$srcdir"/openvswitch-$ovs_pkgver-$_gitrev.tar.gz $_gitrev
+ scp "$srcdir"/openvswitch-$ovs_pkgver-$_gitrev.tar.gz dev.alpinelinux.org:/archive/$pkgname/
+}
+
+prepare() {
+ # default_prepare
+ ./boot.sh
+ cd "$srcdir"/ovs-$ovs_pkgver
+ patch -p1 < ../ovs-ifupdown-alpine.patch
+ ./boot.sh
+}
+
+build() {
+ export CFLAGS="$CFLAGS -fPIC"
+ # First OpenVSwitch must be built
+ # Taking the same configure options from openvswitch APKBUILD
+ cd "$srcdir"/ovs-$ovs_pkgver
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --enable-ndebug \
+ --enable-libcap-ng
+ make
+
+ msg "Built OVS. Now building OVN"
+ cd "$builddir"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-shared \
+ --enable-ndebug \
+ --with-ovs-source=../ovs-$ovs_pkgver \
+ --with-ovs-build=../ovs-$ovs_pkgver
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ # parallel install issue
+ make -j1 DESTDIR="$pkgdir" install
+
+ install -Dm644 ../ovn-ctl.confd "$pkgdir"/etc/conf.d/ovn-ctl
+ local f
+ for f in ovn-northd \
+ ovn-ovsdb-server-nb \
+ ovn-ovsdb-server-sb \
+ ; do
+ install -Dm755 ../"$f".initd "$pkgdir/etc/init.d/$f"
+ ln -s ovn-ctl "$pkgdir/etc/conf.d/$f"
+ done
+
+ install -Dm755 ../ovn-controller.initd "$pkgdir/etc/init.d/ovn-controller"
+
+ # Install the required version of OpenVSwitch
+ # Taken from openvswitch package
+ cd "$srcdir/ovs-$ovs_pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # we don't install python and bash extensions
+ rm -rf "$pkgdir"/usr/share/openvswitch/python
+ rm -rf "$pkgdir"/etc/bash_completion.d
+
+ install -Dm755 "$srcdir"/ovsdb-server.initd \
+ "$pkgdir"/etc/init.d/ovsdb-server
+ install -Dm755 "$srcdir"/ovs-vswitchd.initd \
+ "$pkgdir"/etc/init.d/ovs-vswitchd
+ install -Dm755 "$srcdir"/ovs-modules.initd \
+ "$pkgdir"/etc/init.d/ovs-modules
+ install -Dm644 "$srcdir"/ovsdb-server.confd \
+ "$pkgdir"/etc/conf.d/ovsdb-server
+ install -Dm644 "$srcdir"/ovs-vswitchd.confd \
+ "$pkgdir"/etc/conf.d/ovs-vswitchd
+
+ install -d "$pkgdir"/etc/network/if-pre-up.d \
+ "$pkgdir"/etc/network/if-post-down.d
+ install -m755 debian/ifupdown.sh \
+ "$pkgdir"/etc/network/if-pre-up.d/openvswitch
+ ln -s ../if-pre-up.d/openvswitch \
+ "$pkgdir"/etc/network/if-post-down.d/openvswitch
+}
+
+sha512sums="
+297d41adfcbcf325c69ef7e44ea6951c0c2aacca6457140e656d7fc5e33f6cd297bee05cb7ffdbe64faebe92e1f9e3a5e8dafdd62f0c4e966dce3fbae8b8bc8e ovn-24.03.1.tar.gz
+05d980e51a11ae315d81de91404351774d05717946e3200a2564c0baf7959c204e94e3ea7efda75ff1a202b05348e5f39614c49eb65f60208beabf1103a8ae4c openvswitch-3.3.0.tar.gz
+b98fd4acefcc03714cebe18dd78839ec1e6777ed6b1b035873b7a05c24ce5c91b62d890543e58529ed47413c4ab926468a9915bf15675475712ac039f9d1cda5 ovn-ctl.confd
+436f3bc162675b5baa9e301d58fe30d7d0dfb7a196f73012cd8dd3ee7b3e9016c8db81092629da08ee08fc572a697c4c1463c819254c26eaf1f69150f522c503 ovn-northd.initd
+e2dc52c9328514d5ebe1b6b9e63a6b6055ff9fe1d9b4eb1cec429631f65d24b2144d5f328c7943b501eef40f1aafdf5bd247d5e7d58b028d25a8a361b9ebdcb0 ovn-ovsdb-server-nb.initd
+393e8ae14280e8495b92063556c40273a8dc04572e2a78f03cbf61fd37fe509d9deacf30f50831f23664c1c3dd566122c5e683e928aa5e5c8a035f3183d84a78 ovn-ovsdb-server-sb.initd
+9d54d84d1e70b0cc13c2c19b327f1441208ebcf3c1248c6625afa32cd47f8207ea80006fa82c9de6aa4d3fe03b2ab3bd3c887fb85dd6cb9bb7e5c3925afa38af ovn-controller.initd
+1e08aa5ac6ce55b97256478b9243c8a4c92a42a97fc70ea0439c832b12a775af28a127224ae6c4ce01642dde65f76c610a44105912338bf443d8ea390c2d9ccf ovs-modules.initd
+346aea099f51707d2b4fc9fdc8c1502582723fb4e00c4d5d1624b0378c94dfb76674fa95e2af894f36169df52109dbe441ee6a45aa744584d9e4c74d15a46c1d ovs-vswitchd.confd
+4bff37f8bed32d5327b4b0433984ab8ffdce77f618034aa6ffd1ad4a7caa00703ea2bef312876dce5aafa4c17fe06dddd75e5c05c10e13bf8f5c3805a0654a96 ovs-vswitchd.initd
+b1588d076bbfc7ef2dd46fce8e46186f40cbbc4667697f7ac13ddc68e34568fdab315fde47838de7f6d32916853190336cfe3735f672ad7cb624ae14dbff55a5 ovsdb-server.confd
+097d4721a78fff749c534910d98543778474406bd61b469b88a0d981a2a380556444437ec44278cead6d8688c45a38b2acbf1551acb9ab38d048f413728e3b88 ovsdb-server.initd
+08c08612be2bbcc3c006a6175f2357542e436fa5bec6b2f3ff5200e8084874a72b8116d3408cffec312e33c104b177db381727666f8dd4712617616eee8c4d63 ovs-ifupdown-alpine.patch
+"
diff --git a/testing/ovn/ovn-controller.initd b/testing/ovn/ovn-controller.initd
new file mode 100644
index 00000000000..5c93465eb35
--- /dev/null
+++ b/testing/ovn/ovn-controller.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+command="/usr/share/ovn/scripts/ovn-ctl"
+command_args="start_controller --ovn-manage-ovsdb=no --no-monitor $OVN_CTL_OPTS"
+command_background="yes"
+pidfile="/run/ovn/$RC_SVCNAME.pid"
+description="Open Virtual Network host control daemon"
+
+depend() {
+ need net ovs-vswitchd
+ after firewall
+}
+
+start_pre() {
+ checkpath --directory "${pidfile%/*}"
+}
+
+stop() {
+ ebegin "Stopping $RC_SVCNAME"
+ $command stop_controller --no-monitor
+ eend $?
+}
diff --git a/testing/ovn/ovn-ctl.confd b/testing/ovn/ovn-ctl.confd
new file mode 100644
index 00000000000..c969a18ef0d
--- /dev/null
+++ b/testing/ovn/ovn-ctl.confd
@@ -0,0 +1,3 @@
+# OVN_CTL_OPTS: Extra options to pass to ovs-ctl. This is, for example,
+# a suitable place to specify --ovn-northd-wrapper=valgrind.
+# OVN_CTL_OPTS=
diff --git a/testing/ovn/ovn-northd.initd b/testing/ovn/ovn-northd.initd
new file mode 100644
index 00000000000..0638b09dc06
--- /dev/null
+++ b/testing/ovn/ovn-northd.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+command="/usr/share/ovn/scripts/ovn-ctl"
+command_args="start_northd --ovn-manage-ovsdb=no --no-monitor $OVN_CTL_OPTS"
+command_background="yes"
+pidfile="/run/ovn/$RC_SVCNAME.pid"
+description="Open Virtual Network central control daemon"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath --directory "${pidfile%/*}"
+}
+
+stop() {
+ ebegin "Stopping $RC_SVCNAME"
+ $command stop_northd --no-monitor
+ eend $?
+}
diff --git a/testing/ovn/ovn-ovsdb-server-nb.initd b/testing/ovn/ovn-ovsdb-server-nb.initd
new file mode 100644
index 00000000000..c04148bcced
--- /dev/null
+++ b/testing/ovn/ovn-ovsdb-server-nb.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+command="/usr/share/ovn/scripts/ovn-ctl"
+command_args="run_nb_ovsdb $OVN_CTL_OPTS"
+command_background="yes"
+pidfile="/run/ovn/$RC_SVCNAME.pid"
+description="Open vSwitch database server for OVN Northbound database"
+
+depend() {
+ need net ovn-northd
+ after firewall
+}
+
+start_pre() {
+ checkpath --directory "${pidfile%/*}"
+}
+
+stop() {
+ ebegin "Stopping $RC_SVCNAME"
+ $command stop_nb_ovsdb
+ eend $?
+}
diff --git a/testing/ovn/ovn-ovsdb-server-sb.initd b/testing/ovn/ovn-ovsdb-server-sb.initd
new file mode 100644
index 00000000000..89e1743df57
--- /dev/null
+++ b/testing/ovn/ovn-ovsdb-server-sb.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+command="/usr/share/ovn/scripts/ovn-ctl"
+command_args="run_sb_ovsdb $OVN_CTL_OPTS"
+command_background="yes"
+pidfile="/run/ovn/$RC_SVCNAME.pid"
+description="Open vSwitch database server for OVN Southbound database"
+
+depend() {
+ need net ovn-northd
+ after firewall
+}
+
+start_pre() {
+ checkpath --directory "${pidfile%/*}"
+}
+
+stop() {
+ ebegin "Stopping $RC_SVCNAME"
+ $command stop_sb_ovsdb
+ eend $?
+}
diff --git a/testing/ovn/ovn.post-install b/testing/ovn/ovn.post-install
new file mode 100644
index 00000000000..8ce006b744c
--- /dev/null
+++ b/testing/ovn/ovn.post-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+test -e /proc/sys/kernel/random/uuid && cat /proc/sys/kernel/random/uuid > /etc/openvswitch/system-id.conf
diff --git a/testing/ovn/ovs-ifupdown-alpine.patch b/testing/ovn/ovs-ifupdown-alpine.patch
new file mode 100644
index 00000000000..2c156f0101f
--- /dev/null
+++ b/testing/ovn/ovs-ifupdown-alpine.patch
@@ -0,0 +1,17 @@
+diff --git a/debian/ifupdown.sh b/debian/ifupdown.sh
+index 952d1b0..7aed7e0 100755
+--- a/debian/ifupdown.sh
++++ b/debian/ifupdown.sh
+@@ -35,8 +35,10 @@ if [ -f $SERVICE_UNIT ] && [ -x /bin/systemctl ]; then
+ systemctl start openvswitch-switch.service
+ fi
+ else
+- if service openvswitch-switch status > /dev/null 2>&1; then
+- service openvswitch-switch start
++ if ! /etc/init.d/ovs-vswitchd status &>/dev/null; then
++ /etc/init.d/ovs-modules start
++ /etc/init.d/ovsdb-server start
++ /etc/init.d/ovs-vswitchd start
+ fi
+ fi
+
diff --git a/testing/ovn/ovs-modules.initd b/testing/ovn/ovs-modules.initd
new file mode 100644
index 00000000000..e6695ac3ccf
--- /dev/null
+++ b/testing/ovn/ovs-modules.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+
+MODULES="openvswitch"
+
+depend() {
+ before ovsdb-server
+}
+
+start() {
+ ebegin "Loading Openvswitch kernel modules"
+ for mod in $MODULES; do
+ modprobe -q $mod
+ done
+ eend $?
+}
+
+stop() {
+ # modules cannot be removed without a reboot
+ return 0
+}
diff --git a/testing/ovn/ovs-vswitchd.confd b/testing/ovn/ovs-vswitchd.confd
new file mode 100644
index 00000000000..3c3d15865b1
--- /dev/null
+++ b/testing/ovn/ovs-vswitchd.confd
@@ -0,0 +1,6 @@
+# Connection string for the configuration database (usually a unix socket)
+DATABASE="unix:/var/run/openvswitch/db.sock"
+
+# Additional options
+OPTIONS="--mlockall"
+
diff --git a/testing/ovn/ovs-vswitchd.initd b/testing/ovn/ovs-vswitchd.initd
new file mode 100644
index 00000000000..fe35a96721d
--- /dev/null
+++ b/testing/ovn/ovs-vswitchd.initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvswitch/files/ovs-vswitchd-r1,v 1.1 2013/04/08 19:37:58 dev-zero Exp $
+
+description="Open vSwitch virtual switch"
+
+pidfile="/var/run/openvswitch/ovs-vswitchd.pid"
+command="/usr/sbin/ovs-vswitchd"
+command_args="
+ --pidfile=$pidfile
+ --detach
+ --monitor
+ ${OPTIONS} ${DATABASE}"
+
+depend() {
+ need localmount ovsdb-server
+ after bootmisc hwdrivers modules
+ before net
+ use logger
+}
+
+start_pre() {
+ checkpath --directory "${pidfile%/*}" --mode 0750
+}
diff --git a/testing/ovn/ovsdb-server.confd b/testing/ovn/ovsdb-server.confd
new file mode 100644
index 00000000000..97367b9717e
--- /dev/null
+++ b/testing/ovn/ovsdb-server.confd
@@ -0,0 +1,16 @@
+# Socket for bringing the server up
+DB_SOCKET="/var/run/openvswitch/db.sock"
+
+# Remote sockets are defined in the database by default
+REMOTE_DB="db:Open_vSwitch,Open_vSwitch,manager_options"
+
+# All certificates and keys are stored in the database (if any)
+PRIVATE_KEY="db:Open_vSwitch,SSL,private_key"
+CERTIFICATE="db:Open_vSwitch,SSL,certificate"
+BOOTSTRAP_CA_CERT="db:Open_vSwitch,SSL,ca_cert"
+
+# Alternative path for the database (default is /etc/openvswitch/conf.db)
+# DATABASE="/etc/openvswitch/conf.db"
+
+# Additional options
+# OPTIONS=""
diff --git a/testing/ovn/ovsdb-server.initd b/testing/ovn/ovsdb-server.initd
new file mode 100644
index 00000000000..65c3f2ef33e
--- /dev/null
+++ b/testing/ovn/ovsdb-server.initd
@@ -0,0 +1,50 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openvswitch/files/ovsdb-server-r1,v 1.1 2013/04/08 19:37:58 dev-zero Exp $
+
+description="Open vSwitch database server"
+
+remote_punix=${DB_SOCKET:+"--remote=punix:${DB_SOCKET}"}
+remote_db=${REMOTE_DB:+"--remote=${REMOTE_DB}"}
+private_key=${PRIVATE_KEY:+"--private-key=${PRIVATE_KEY}"}
+certificate=${CERTIFICATE:+"--certificate=${CERTIFICATE}"}
+bootstrap_ca_cert=${BOOTSTRAP_CA_CERT:+"--bootstrap-ca-cert=${BOOTSTRAP_CA_CERT}"}
+
+db=${DATABASE:-/etc/openvswitch/conf.db}
+dbschema=/usr/share/openvswitch/vswitch.ovsschema
+
+command="/usr/sbin/ovsdb-server"
+command_args="
+ --pidfile
+ --detach
+ --monitor
+ ${remote_punix}
+ ${remote_db}
+ ${private_key}
+ ${certificate}
+ ${bootstrap_ca_cert}
+ ${DATABASE}
+ ${OPTIONS}"
+pidfile="/var/run/openvswitch/ovsdb-server.pid"
+
+
+depend() {
+ need localmount dev
+ after bootmisc hwdrivers modules
+ before net
+ use logger
+}
+
+# ovsdb-server is a hard dependency for ovs-vswitchd (to keep them in sync) - to stop the db only:
+# /etc/init.d/ovsdb-server --nodeps stop |or| rc-service ovsdb-server -- --nodeps stop
+
+start_pre() {
+ checkpath -d "/var/run/openvswitch" -m 0750
+ if ! [ -e "$db" ]; then
+ ovsdb-tool create $db $dbschema
+ elif [ "$(ovsdb-tool needs-conversion $db $dbschema)" = "yes" ]; then
+ ovsdb-tool convert $db $dbschema
+ fi
+}
+
diff --git a/testing/ovos-audio/APKBUILD b/testing/ovos-audio/APKBUILD
new file mode 100644
index 00000000000..752fef2d415
--- /dev/null
+++ b/testing/ovos-audio/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-audio
+pkgver=0.0.2_alpha13
+pkgrel=0
+pkgdesc="ovos-core metapackage for audio daemon "
+url="https://github.com/OpenVoiceOS/ovos-audio"
+arch="noarch !s390x" # blocked by py3-ovos-ocp-audio-plugin
+license="Apache-2.0"
+depends="
+ py3-ovos-bus-client
+ py3-ovos-config
+ py3-ovos-ocp-files-plugin
+ py3-ovos-ocp-m3u-plugin
+ py3-ovos-ocp-news-plugin
+ py3-ovos-ocp-rss-plugin
+ py3-ovos-ocp-audio-plugin
+ py3-ovos-plugin-manager
+ py3-ovos-tts-plugin-mimic3-server
+ py3-ovos-utils
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-audio/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+builddir=$srcdir/ovos-audio-${pkgver//_alpha/a}
+
+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="
+ff87bc8506843825a2766932f0b83a4ba72754e175d94175c01fb772193ef9372130807e7d5d931f5ba3ef406b522a094d4a965f5a05926ccda8d308f36d4d69 ovos-audio-0.0.2_alpha13.tar.gz
+"
diff --git a/testing/ovos-core/APKBUILD b/testing/ovos-core/APKBUILD
new file mode 100644
index 00000000000..6ed0824ea69
--- /dev/null
+++ b/testing/ovos-core/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-core
+pkgver=0.0.8_alpha24
+pkgrel=1
+pkgdesc="OVOS Core, the OVOS Artificial Intelligence platform"
+url="https://github.com/OpenVoiceOS/ovos-core/"
+# s390x blocked by py3-speechrecognition -> py3-ovos-backend-client
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-adapt-parser
+ py3-combo-lock
+ py3-dateutil
+ py3-lingua-franca
+ py3-ovos-backend-client
+ py3-ovos-bus-client
+ py3-ovos-classifiers
+ py3-ovos-config
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-ovos-workshop
+ py3-padatious
+ py3-requests
+ py3-watchdog
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-core/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz
+ profile.sh
+ ovos.conf
+ "
+builddir=$srcdir/ovos-core-${pkgver//_alpha/a}
+# Net is required for tests
+# Some tests are broken still, will be enabled later
+options="!check"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # test_hotword_factory and test_local_recognizer fail
+ # https://github.com/MycroftAI/mycroft-core/issues/2574
+ 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
+
+ install -Dm644 -t "$pkgdir"/etc/OpenVoiceOS "$srcdir"/ovos.conf
+
+ install -Dm644 "$srcdir"/profile.sh "$pkgdir"/etc/profile.d/ovos.sh
+}
+sha512sums="
+c0e7bbad76b5de655ed4d14ce4b84d4a7061f34de3aebc2335f8b14b08eae5ef4090e05ca81444249d3818ff2e1caa9bb9289753fbb17b663e9cd094a7a0458e ovos-core-0.0.8_alpha24.tar.gz
+c3d1a605a0b574c8e2c4031f592bdbf023f5ed9b2e1ba0cea38cf79278331f245dbe4e220e7f81de73fe612ffd722253805058dae04ba89c3d01c361b329e4ef profile.sh
+889b668be450db9c27d7d9f3b00bbcd9a2882f8a4c129cdc5c94ab21490e85acddfd914496447f5f011713c2ecd5b1cafbf13a5948677d9ff82eb5e478faf47a ovos.conf
+"
diff --git a/testing/ovos-core/ovos.conf b/testing/ovos-core/ovos.conf
new file mode 100644
index 00000000000..0071b1db4c1
--- /dev/null
+++ b/testing/ovos-core/ovos.conf
@@ -0,0 +1 @@
+{ "xdg": true }
diff --git a/testing/ovos-core/profile.sh b/testing/ovos-core/profile.sh
new file mode 100644
index 00000000000..4765d018c0e
--- /dev/null
+++ b/testing/ovos-core/profile.sh
@@ -0,0 +1,2 @@
+export MYCROFT_START_CMD="mycroft-start all"
+export MYCROFT_STOP_CMD="mycroft-stop all"
diff --git a/testing/ovos-dinkum-listener/APKBUILD b/testing/ovos-dinkum-listener/APKBUILD
new file mode 100644
index 00000000000..03d6a46813f
--- /dev/null
+++ b/testing/ovos-dinkum-listener/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-dinkum-listener
+pkgver=0.0.2
+pkgrel=0
+pkgdesc="ovos-listener based on the voice loop from mycroft-dinkum "
+url="https://github.com/OpenVoiceOS/ovos-dinkum-listener"
+# 32-bit arches blocked by py3-webrtcvad -> py3-ovos-vad-plugin-webrtcvad
+# s390x, ppc64le and riscv64 blocked by py3-webrtcvad -> py3-ovos-vad-plugin-webrtcvad
+arch="noarch !x86 !armhf !armv7 !s390x !ppc64le !riscv64"
+license="Apache-2.0"
+depends="
+ py3-ovos-backend-client
+ py3-ovos-bus-client
+ py3-ovos-config
+ py3-ovos-microphone-plugin-alsa
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-ovos-vad-plugin-webrtcvad
+ py3-speechrecognition
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-dinkum-listener/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # Broken
+
+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="
+ac351db0e53410f7b4456c7b96aad5848d0e41d058a3a30239860e9215c252d00eb1ea64a84649a923a225f1b2e054172309e34a029d5835e188a2d835bcf76e ovos-dinkum-listener-0.0.2.tar.gz
+"
diff --git a/testing/ovos-gui/APKBUILD b/testing/ovos-gui/APKBUILD
new file mode 100644
index 00000000000..c741ce43c14
--- /dev/null
+++ b/testing/ovos-gui/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-gui
+pkgver=0.0.3_alpha5
+pkgrel=1
+pkgdesc="ovos-core metapackage for gui daemon"
+url="https://github.com/OpenVoiceOS/ovos-gui"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-bus-client
+ py3-ovos-config
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-tornado
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-gui/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+builddir=$srcdir/ovos-gui-${pkgver//_alpha/a}
+
+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="
+1cb8ceba3ad53dfde671b492a76bd3b3d24560a598fccc80d8254dde35e7d8b2b9446cdd56b1e8042c72695841af83a5bd7b3ee121a387f0a89213719b431ebb ovos-gui-0.0.3_alpha5.tar.gz
+"
diff --git a/testing/ovos-messagebus/APKBUILD b/testing/ovos-messagebus/APKBUILD
new file mode 100644
index 00000000000..ab6e40836a3
--- /dev/null
+++ b/testing/ovos-messagebus/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-messagebus
+pkgver=0.0.3
+pkgrel=1
+pkgdesc="ovos-core metapackage for bus daemon"
+url="https://github.com/OpenVoiceOS/ovos-messagebus"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-config
+ py3-ovos-utils
+ py3-tornado
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-messagebus/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+a908e8974440d742a79006f1167b5dde15911898fd46532c356354b177c661a651320670c5f1c00f2cb2f68cc99ccece32429c6356867360077b64c6b739b51b ovos-messagebus-0.0.3.tar.gz
+"
diff --git a/testing/ovos-phal/APKBUILD b/testing/ovos-phal/APKBUILD
new file mode 100644
index 00000000000..30a4f7e716d
--- /dev/null
+++ b/testing/ovos-phal/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-phal
+pkgver=0.0.5_alpha6
+pkgrel=1
+pkgdesc="Plugin based Hardware Abstraction Layer for OVOS"
+url="https://github.com/OpenVoiceOS/ovos-PHAL"
+# s390x blocked by py3-speechrecognition -> py3-ovos-backend-client
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-ovos-bus-client
+ py3-ovos-config
+ py3-ovos-phal-plugin-connectivity-events
+ py3-ovos-phal-plugin-ipgeo
+ py3-ovos-phal-plugin-network-manager
+ py3-ovos-phal-plugin-oauth
+ py3-ovos-phal-plugin-system
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-ovos-workshop
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-PHAL/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+builddir="$srcdir/ovos-PHAL-${pkgver//_alpha/a}"
+
+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="
+860d0e763a9caa87defd985eaa4663c1d194e41a6dbb22dbcfe42e3bb40245832caa25ce07915b5469e35ce2aaa09ffb8f52a392fedec55b946ee47f6a1eefa3 ovos-phal-0.0.5_alpha6.tar.gz
+"
diff --git a/testing/ovos-shell/APKBUILD b/testing/ovos-shell/APKBUILD
new file mode 100644
index 00000000000..2dfc807a504
--- /dev/null
+++ b/testing/ovos-shell/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-shell
+pkgver=0.0.1_git20230404
+pkgrel=2
+_commit="d98c91ac82e2aa5984a4dd616f2d072ae9767395"
+pkgdesc="OpenVoiceOS Shell with Mycroft GUI embedded view for Wayland and EGLFS platforms"
+url="https://github.com/OpenVoiceOS/ovos-shell"
+# armhf blocked by extra-cmake-modules
+# ppc64le, s390x and riscv64 blocked by qt5-qtwebengine -> qt5-qtwebview
+# armv7 blocked by mycroft-gui
+arch="all !armhf !ppc64le !s390x !riscv64 !armv7"
+license="Apache-2.0"
+depends="
+ kirigami2
+ mycroft-gui
+ plasma-pa
+ "
+makedepends="
+ extra-cmake-modules
+ kconfig5-dev
+ kconfigwidgets5-dev
+ kcoreaddons5-dev
+ kdbusaddons5-dev
+ kguiaddons5-dev
+ ki18n5-dev
+ kiconthemes5-dev
+ kirigami2-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtwebview-dev
+ "
+source="$pkgname-$_commit.tar.gz::https://github.com/OpenVoiceOS/ovos-shell/archive/$_commit.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/$pkgname-$_commit"
+
+provides="mycroft-embedded-shell=$pkgver-r$pkgrel"
+replaces="mycroft-embedded-shell"
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -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
+}
+
+sha512sums="
+f02cce034edce9d234e93fbe2379a9a5f937664abfc47315665e7c29a8f3806a03b7b7614da1cc0baa35c3cf072a856ce7f9aee027a864b872a73c02b1dd3cc2 ovos-shell-d98c91ac82e2aa5984a4dd616f2d072ae9767395.tar.gz
+"
diff --git a/testing/ovos-skill-hello-world/APKBUILD b/testing/ovos-skill-hello-world/APKBUILD
new file mode 100644
index 00000000000..6298a4049d0
--- /dev/null
+++ b/testing/ovos-skill-hello-world/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-skill-hello-world
+pkgver=0.0.4_alpha3
+pkgrel=1
+pkgdesc="Introductory Skill so that Skill Authors can see how an OVOS Skill is put together"
+url="https://github.com/OpenVoiceOS/skill-ovos-hello-world"
+# s390x blocked by py3-speechrecognition -> py3-ovos-workshop
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-ovos-utils
+ py3-ovos-workshop
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/skill-ovos-hello-world/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/skill-ovos-hello-world-${pkgver//_alpha/a}"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+af103a0c9d09f8e178d4da234eca133023b4ff813e4f8203c9eac9dce974684bf9c42c25d640027b8d01f6adf23a1921c9a1ba8233b1c3e8e2d887235fd3f85b ovos-skill-hello-world-0.0.4_alpha3.tar.gz
+"
diff --git a/testing/ovos-skill-manager/APKBUILD b/testing/ovos-skill-manager/APKBUILD
new file mode 100644
index 00000000000..ca6d5298b02
--- /dev/null
+++ b/testing/ovos-skill-manager/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos-skill-manager
+pkgver=0.0.13
+pkgrel=1
+pkgdesc="Open Voice OS skill manager (deprecated)"
+url="https://github.com/OpenVoiceOS/ovos_skill_manager"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ ovos-skill-installer
+ py3-beautifulsoup4
+ py3-click
+ py3-click-default-group
+ py3-combo-lock
+ py3-json-database
+ py3-ovos-config
+ py3-ovos-utils
+ py3-packaging
+ py3-pako
+ py3-requests
+ py3-requests-cache
+ py3-yaml
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos_skill_manager/archive/refs/tags/$pkgver.tar.gz
+ appstore-use-last-compatible-archive.patch
+ fix-github-main-branch-detection.patch
+ "
+# net required for tests
+options="net"
+builddir="$srcdir/ovos_skill_manager-$pkgver"
+
+# Backwards compatibility from a rename
+provides="ovos-skills-manager=$pkgver-r$pkgrel"
+replaces="ovos-skills-manager"
+
+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
+ case "$CARCH" in
+ armhf)
+ .testenv/bin/python3 -m pytest \
+ -k 'not test_locate_config and not test_skill_entry_uuid' \
+ --deselect test/unittests/test_osm.py \
+ --deselect test/unittests/test_skill_entry.py::TestSkillEntryFromGit::test_requirements_commented \
+ --deselect test/unittests/test_skill_entry.py::TestSkillEntryFromGit::test_requirements_from_txt \
+ --deselect test/unittests/test_skill_entry.py::TestSkillEntryFromGit::test_requirements_json_manifest_txt \
+ --deselect test/unittests/test_skill_entry.py::TestSkillEntryFromGit::test_requirements_json_manifest_txt_dep_system_reqs \
+ --deselect test/unittests/test_skill_entry.py::TestSkillEntryFromGit::test_requirements_null_json
+ ;;
+ *)
+ .testenv/bin/python3 -m pytest \
+ -k 'not test_locate_config and not test_skill_entry_uuid' \
+ --deselect test/unittests/test_osm.py
+ ;;
+ esac
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+38629a4571e1508dae5f9f66b93b76a02f4f90069a00148cc216728c91efa1a3b397131e71a83837d9447214021ea1f5a83a80bf42e8e9d2af7d8f70e847993f ovos-skill-manager-0.0.13.tar.gz
+fdd52cc7a40e2c39c63d8a1c7adab1d713f669bf08733c5bc11d3c0a248c56a23206825d2b3729c2a182fe0bb9b18492e5319bff970aa91a8f91f7ffdc69a409 appstore-use-last-compatible-archive.patch
+2b6bb10b244fd1b9fbd5c76c0f3506d68d693a861eaa310df1c6ee2d5db49befb80268e2fe3720942b60c4b73d2f05b2f7a9dfce7c5c19b6e6afcdbd27926667 fix-github-main-branch-detection.patch
+"
diff --git a/testing/ovos-skill-manager/appstore-use-last-compatible-archive.patch b/testing/ovos-skill-manager/appstore-use-last-compatible-archive.patch
new file mode 100644
index 00000000000..cc272c1317f
--- /dev/null
+++ b/testing/ovos-skill-manager/appstore-use-last-compatible-archive.patch
@@ -0,0 +1,26 @@
+From aa2734bc78a650aa719431bc346244a3ad314fa6 Mon Sep 17 00:00:00 2001
+From: Sertonix <sertonix@posteo.net>
+Date: Thu, 28 Mar 2024 10:48:39 +0100
+Subject: [PATCH] appstore: use last compatible archive
+
+---
+ ovos_skills_manager/appstores/ovos.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/ovos_skills_manager/appstores/ovos.py b/ovos_skills_manager/appstores/ovos.py
+index 4cc8c81..b6b8322 100644
+--- a/ovos_skills_manager/appstores/ovos.py
++++ b/ovos_skills_manager/appstores/ovos.py
+@@ -10,7 +10,8 @@ import json
+ def get_ovos_skills(parse_github:bool=False, skiplist=None):
+ skiplist = skiplist or []
+ path = join(gettempdir(), "ovos")
+- dl_url = "https://github.com/OpenVoiceOS/OVOS-skills-store/archive/main.zip"
++ # Last compatible archive
++ dl_url = "https://github.com/OpenVoiceOS/OVOS-skills-store/archive/fb99f2c7ea3f1a7c9dc691ac5adbdae03dccd35e.zip"
+ download_extract_zip(dl_url, path, join(path, "ovos-appstore.zip"))
+ for root, folders, files in walk(path):
+ files = [f for f in files if f.endswith(".json")]
+--
+2.44.0
+
diff --git a/testing/ovos-skill-manager/fix-github-main-branch-detection.patch b/testing/ovos-skill-manager/fix-github-main-branch-detection.patch
new file mode 100644
index 00000000000..d2b3af86339
--- /dev/null
+++ b/testing/ovos-skill-manager/fix-github-main-branch-detection.patch
@@ -0,0 +1,31 @@
+From 466f081c14bc889c61967bd9f3e66e7a53de3a07 Mon Sep 17 00:00:00 2001
+From: Sertonix <sertonix@posteo.net>
+Date: Thu, 28 Mar 2024 11:00:15 +0100
+Subject: [PATCH] fix github main branch detection
+
+---
+ ovos_skills_manager/github/raw.py | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/ovos_skills_manager/github/raw.py b/ovos_skills_manager/github/raw.py
+index a0a2a42..c7c7805 100644
+--- a/ovos_skills_manager/github/raw.py
++++ b/ovos_skills_manager/github/raw.py
+@@ -46,12 +46,11 @@ def get_main_branch_from_github_url(url: str) -> str:
+ """
+ html = None
+ try:
+- url = normalize_github_url(url)
++ url = normalize_github_url(url) + "/branches"
+ html = requests.get(url).text
+ if "<title>Rate limit &middot; GitHub</title>" in html:
+ raise GithubHTTPRateLimited
+- encoded = html.split("default-branch=\"")[1].split('"')[0]
+- return base64.b64decode(encoded).decode("utf-8")
++ return html.split('id="default"')[1].split('title="')[1].split('"')[0]
+ except Exception as e:
+ LOG.error(f"html={html}")
+ LOG.error(e)
+--
+2.44.0
+
diff --git a/testing/ovos/APKBUILD b/testing/ovos/APKBUILD
new file mode 100644
index 00000000000..73a3227138c
--- /dev/null
+++ b/testing/ovos/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=ovos
+pkgver=0.0.1
+pkgrel=0
+pkgdesc="Meta-package for the OpenVoiceOS system"
+url="https://openvoiceos.org/"
+# 32-bit arches blocked by py3-webrtcvad -> ovos-dinkum-listener
+# only x86_64 and aarch64 blocked by vosk-api -> py3-ovos-ww-plugin-vosk
+arch="noarch !x86 !armhf !armv7 !s390x !ppc64le !riscv64"
+license="custom"
+depends="
+ ovos-audio
+ ovos-core
+ ovos-dinkum-listener
+ ovos-gui
+ ovos-messagebus
+ ovos-phal
+ py3-ovos-stt-plugin-server
+ py3-ovos-tts-plugin-mimic3-server
+ py3-ovos-ww-plugin-vosk
+ "
+options="!check" # No tests in a meta-package
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
diff --git a/testing/ovpncc/APKBUILD b/testing/ovpncc/APKBUILD
new file mode 100644
index 00000000000..e25b79e9dfb
--- /dev/null
+++ b/testing/ovpncc/APKBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Ben Fuhrmannek <ben+alpine@sektioneins.de>
+pkgname=ovpncc
+pkgver=0.1_rc1
+pkgrel=0
+pkgdesc="OpenVPN Security Config Checker"
+url="https://github.com/sektioneins/ovpncc"
+arch="noarch"
+license="Apache-2.0"
+depends="tcl tcl-lib"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sektioneins/ovpncc/archive/v${pkgver/_/}.tar.gz"
+builddir="$srcdir/$pkgname-${pkgver/_/}"
+options="!check" # No test suite
+
+package() {
+ install -Dvm755 ovpncc -t "$pkgdir"/usr/bin
+ install -Dvm644 ovpncc.tcl -t "$pkgdir"/usr/lib/"$pkgname"
+ install -Dvm755 scframework/scframework.tcl -t "$pkgdir"/usr/lib/"$pkgname"/scframework
+ install -Dvm644 README.md LICENSE.txt -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+7a4d461ccddadfdb306225e5c970446369f24f81e482c7dabfdb08fef0025cda8c3fcad051b6781e6ddd5df2d3ac07d48a0ba005ac9310c03eef8fa54a9c4691 ovpncc-0.1_rc1.tar.gz
+"
diff --git a/testing/p0f/APKBUILD b/testing/p0f/APKBUILD
index 8b02ec0569d..0d34fd54806 100644
--- a/testing/p0f/APKBUILD
+++ b/testing/p0f/APKBUILD
@@ -2,16 +2,16 @@
# Maintainer: Arch3y <arch3y@riseup.net>
pkgname=p0f
pkgver=3.09b
-pkgrel=0
+pkgrel=2
pkgdesc="Passive traffic fingerprinting tool"
-url="http://lcamtuf.coredump.cx/p0f3/"
+url="https://lcamtuf.coredump.cx/p0f3/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
makedepends="bash libpcap-dev"
+options="!check" # no tests
subpackages="$pkgname-doc"
-source="http://lcamtuf.coredump.cx/p0f3/releases/$pkgname-$pkgver.tgz
+source="https://lcamtuf.coredump.cx/p0f3/releases/p0f-$pkgver.tgz
p0f-fixes.patch"
-options="!check"
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -22,10 +22,10 @@ build() {
package() {
cd "$srcdir/$pkgname-$pkgver"
- install -Dm 755 p0f "$pkgdir/usr/bin/p0f"
- install -Dm 644 p0f.fp "$pkgdir/etc/p0f/p0f.fp"
- install -Dm 644 docs/COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
- install -Dm 644 docs/README "${pkgdir}/usr/share/doc/${pkgname}/README"
+ install -Dm 755 p0f "$pkgdir/usr/bin/p0f"
+ install -Dm 644 p0f.fp "$pkgdir/etc/p0f/p0f.fp"
+ install -Dm 644 docs/COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -Dm 644 docs/README "$pkgdir/usr/share/doc/$pkgname/README"
install -Dm 755 tools/p0f-client "$pkgdir/usr/bin"
install -Dm 755 tools/p0f-sendsyn "$pkgdir/usr/bin"
install -Dm 755 tools/p0f-sendsyn6 "$pkgdir/usr/bin"
diff --git a/testing/p910nd/APKBUILD b/testing/p910nd/APKBUILD
index f5208b343ef..c54eab0afc1 100644
--- a/testing/p910nd/APKBUILD
+++ b/testing/p910nd/APKBUILD
@@ -2,34 +2,35 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=p910nd
pkgver=0.97
-pkgrel=0
+pkgrel=2
pkgdesc="Non-spooling printer daemon"
-url="http://p910nd.sourceforge.net/"
+url="https://github.com/kenyapcomau/p910nd"
arch="all"
license="GPL"
options="!check"
subpackages="$pkgname-doc $pkgname-openrc"
-source="http://downloads.sf.net/$pkgname/$pkgname-$pkgver.tar.bz2
+source="https://github.com/kenyapcomau/p910nd/archive/$pkgver/p910nd-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
fix-paths.patch"
-builddir="$srcdir/$pkgname-$pkgver"
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ install -Dm755 p910nd "$pkgdir"/usr/bin/p910nd
+ install -Dm644 p910nd.8 "$pkgdir"/usr/share/man/man8/p910nd.8
+
install -D -m755 "$srcdir"/$pkgname.initd \
"$pkgdir"/etc/init.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.confd \
"$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="077078f5e5bc26c8fb9a4b5b02c7551db71d807b15417b79771ea876472f9af7129d68f8011b243279ec0967ff2e8a6838f5caff68502a1d2a8f7bffe6da84a5 p910nd-0.97.tar.bz2
-6c8f0208b4589dec1945fcbc4c649c46936e54abc50e35ad5916de934ead0f34b020ef2f48ca2ca6051ca4a9c09e1ac4ff563fc134d11e39f82115f8661c588f p910nd.initd
-78a2593982ea9cd8df4dc9d6e6a9a37ace3a2eea0919b74448722a5fe877b9834eb5c725e5194081f8c75ab4a032690691bfa76883a73e276aa8fa4681a793bc p910nd.confd
-c6ec4fce1c8973ad27bc8e52e4440ab0aaa2bc527323484293eb1e3d163a29909c41ac4d18ed89818fc3d8f6b0bb65a289721ee10b431f4a86977cf96fbc4d53 fix-paths.patch"
+sha512sums="
+162cb64ca79bfb1ce76b726e677ebba9f300c90e1e647625a7ee8db1d0c808a3f7b4ef9b139dfa2cfa7c8861082fe6dcdcc18636a0e0233010411b3746c1560c p910nd-0.97.tar.gz
+14064e928e887ac932e3d9ba82167f2bef13ba046e8cf8bda36a0790961cb346ad2258f8b00ff02a025c996061c7d94d2ef3e91a1e29d207784c49fb6aed296c p910nd.initd
+9a35dde6dabbe8131cfc18c47e9cdb54876f9c680f6badd1d6b399db459ae765a5fc388c549c9559088c5a056bf2e9c8417c778344b8bbf30756bde39ba4b021 p910nd.confd
+81d528496a528d95fec474cfb569251293af506daae77893c232179f4e6d98cc897cdf574c3241b6c59611ca38b5fc2c86df8a81ef72b522b82c924127efa6cb fix-paths.patch
+"
diff --git a/testing/p910nd/fix-paths.patch b/testing/p910nd/fix-paths.patch
index d0d10960c1d..645dee4963f 100644
--- a/testing/p910nd/fix-paths.patch
+++ b/testing/p910nd/fix-paths.patch
@@ -38,30 +38,24 @@ index 2fa4454..a58c1f0 100644
#endif
#ifndef PRINTERFILE
#define PRINTERFILE "/dev/lp%c"
+
diff --git a/Makefile b/Makefile
index 53db51f..6012199 100644
--- a/Makefile
+++ b/Makefile
-@@ -14,12 +14,10 @@ STRIP := strip
- CFLAGS += -O2 -Wall
-
- PROG = p910nd
--CONFIG = p910nd.conf
- INITSCRIPT = p910nd.init
- MANPAGE = p910nd.8
+@@ -18,5 +18,4 @@ STRIP := strip
INSTALL = install
BINDIR = /usr/sbin
-CONFIGDIR = /etc/sysconfig
SCRIPTDIR = /etc/init.d
MANDIR = /usr/share/man/man8
-
-@@ -29,11 +27,10 @@ $(PROG): p910nd.c
+
+@@ -29,11 +29,10 @@ $(PROG): p910nd.c
strip: $(PROG)
$(STRIP) -s $(PROG)
--install: $(PROG) $(CONFIG) $(INITSCRIPT) $(MANPAGE)
+ install: $(PROG) $(MANPAGE)
- mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(CONFIGDIR) \
-+install: $(PROG) $(INITSCRIPT) $(MANPAGE)
+ mkdir -p $(DESTDIR)$(BINDIR) \
$(DESTDIR)$(SCRIPTDIR) $(DESTDIR)$(MANDIR)
$(INSTALL) $(PROG) $(DESTDIR)$(BINDIR)
diff --git a/testing/p910nd/p910nd.confd b/testing/p910nd/p910nd.confd
index 2bdf4d9eb38..868c94fec73 100644
--- a/testing/p910nd/p910nd.confd
+++ b/testing/p910nd/p910nd.confd
@@ -1,6 +1,6 @@
# Printer number, default 0 equals to 9100, 1 to 9101, 2 to 9102
P910ND_NUM="0"
# Device
-P910ND_DEV="/dev/lp${P910ND_NUM}"
+P910ND_DEV="/dev/usb/lp${P910ND_NUM}"
# Additional daemon arguments, see man 8 p910nd
P910ND_OPTS="-b -f ${P910ND_DEV}"
diff --git a/testing/p910nd/p910nd.initd b/testing/p910nd/p910nd.initd
index 6378a75f9ea..e22811f03c0 100644
--- a/testing/p910nd/p910nd.initd
+++ b/testing/p910nd/p910nd.initd
@@ -4,7 +4,7 @@
# (c) 2019 Francesco Colista <fcolista@alpinelinux.org>
#
-command="/usr/sbin/p910nd"
+command="/usr/bin/p910nd"
pidfile="/run/p910nd/p910nd.${P910ND_NUM}.pid"
command_args="${P910ND_OPTS} ${P910ND_NUM}"
diff --git a/testing/packer/APKBUILD b/testing/packer/APKBUILD
deleted file mode 100644
index 3f8b65db359..00000000000
--- a/testing/packer/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Maintainer: Galen Abell <galen@galenabell.com>
-# Contributor: Galen Abell <galen@galenabell.com>
-pkgname=packer
-pkgver=1.5.6
-pkgrel=1
-pkgdesc="Build Automated Machine Images"
-url="https://www.packer.io/"
-arch="all !armhf !armv7"
-license="MPL-2.0"
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hashicorp/packer/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/hashicorp/$pkgname"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv $srcdir/$pkgname-$pkgver "$builddir"/
- default_prepare
-}
-
-build() {
- GO111MODULE=off GOPATH="$srcdir" go build -v -o bin/$pkgname \
- -ldflags "-X main.GitCommit=v$pkgver -X github.com/hashicorp/packer/version.Prerelease= -s -w"
-}
-
-check() {
- GOPATH="$srcdir" go list -mod=vendor . | xargs -t -n4 go test -mod=vendor -timeout=2m -parallel=4
- bin/$pkgname -v
-}
-
-package() {
- install -Dm755 "$builddir"/bin/$pkgname "$pkgdir"/usr/bin/$pkgname
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="993f54a1bf98abd5bc450bafaf202fbbfbad009b661d49783ff82cba9891b8556340801680c0fdc33b90396a3101a2ed93a11798ad51c10d7bd5f81fef4f5a31 packer-1.5.6.tar.gz"
diff --git a/testing/pacparser/APKBUILD b/testing/pacparser/APKBUILD
index 8688bb223ca..0db0eb80e53 100644
--- a/testing/pacparser/APKBUILD
+++ b/testing/pacparser/APKBUILD
@@ -1,21 +1,26 @@
# Contributor: Aaron Hurt <ahurt@ena.com>
-# Maintainer: Aaron Hurt <ahurt@ena.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=pacparser
-pkgver=1.3.7
-pkgrel=2
+pkgver=1.4.3
+pkgrel=1
pkgdesc="A library to parse proxy auto-config (PAC) files"
-url="http://pacparser.manugarg.com"
-# x86, armhf: https://github.com/pacparser/pacparser/issues/77
-arch="x86_64"
+url="https://pacparser.manugarg.com/"
+arch="all"
license="LGPL-3.0-or-later"
-makedepends="bash python3-dev"
-subpackages="py3-$pkgname:pymod $pkgname-doc $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/pacparser/pacparser/archive/$pkgver.tar.gz
- spidermonkey-make.patch"
+makedepends="bash python3-dev py3-setuptools"
+subpackages="py3-$pkgname-pyc:pyc py3-$pkgname:pymod $pkgname-doc $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/manugarg/pacparser/archive/refs/tags/v$pkgver.tar.gz
+ spidermonkey-make.patch
+ "
+
+# secfixes:
+# 1.4.0-r0:
+# - CVE-2019-25087
prepare() {
- find "$builddir" -name \*.git\* -delete
default_prepare
+
+ echo "VERSION=v$pkgver" > src/version.mk
}
build() {
@@ -25,7 +30,7 @@ build() {
}
package() {
- make -C src DESTDIR="$pkgdir" install
+ make -C src DESTDIR="$pkgdir" install install-pymod
}
pymod() {
@@ -33,9 +38,10 @@ pymod() {
replaces="py-pymod" # Backwards compatibility
provides="py-pymod=$pkgver-r$pkgrel" # Backwards compatibility
- cd "$builddir"
- PYTHON=python3 make -C src DESTDIR="$subpkgdir" install-pymod
+ amove usr/lib/python*
}
-sha512sums="9722dbfb0935824c5bea5f092e7bf82b74a0e59387e2a887d1c4e9234bcdb0af3ba4b58d5041dc6192e10200e46746481568a36bcdeca4860cdf00a921adfd2d pacparser-1.3.7.tar.gz
-6f584acfb1f9f16385bef277f4c6bd30fa5f1e77d137cdd3306d50ce60e4917da34d47cd943ea078a264298dfa4a8c3256b447072dd108349e8deddfa536a60d spidermonkey-make.patch"
+sha512sums="
+cc0d6c0a7b1fd9d55dece6c4ad80711d3d1055a0cde120dbb6e8274508631b325e7d876545b40ca05cefc6dce15aa1476e5b2936527e3183ad86114e4cd661a5 pacparser-1.4.3.tar.gz
+99753cfb450e685d866d80e33c58320584c15ec625a0745d4ea2b9d3a6eadb2308563d1b86bdc656a66d255b58a426a89cd5f14ea3b472d04a70a99ef3c1a2bf spidermonkey-make.patch
+"
diff --git a/testing/pacparser/spidermonkey-make.patch b/testing/pacparser/spidermonkey-make.patch
index 32bdf053408..1f78fa99b2e 100644
--- a/testing/pacparser/spidermonkey-make.patch
+++ b/testing/pacparser/spidermonkey-make.patch
@@ -3,20 +3,22 @@ over eachother without forcing the copy. This patch adds the -f (force)
option to the find copy command. This is not explicitly needed but does
seem to reduce a warning.
+diff --git a/src/spidermonkey/Makefile b/src/spidermonkey/Makefile
+index 99521a2..1641274 100644
--- a/src/spidermonkey/Makefile
+++ b/src/spidermonkey/Makefile
-@@ -30,12 +30,12 @@
-
+@@ -28,12 +28,12 @@ jsapi: js-buildstamp
+
jslib: js-buildstamp
cd js/src
-- find . -name "libjs.a" -exec cp {} .. \;
-+ find . -name "libjs.a" -exec cp -f {} .. \;
-
+- find . -name "libjs.a" -exec cp {} . \;
++ find . -name "libjs.a" -exec cp -f {} . \;
+
js-buildstamp:
mkdir -p js/src/$(OBJDIR)
- CFLAGS="$(SMCFLAGS)" "$(MAKE)" -C js/src -f Makefile.ref libjs.a
+ CFLAGS="$(SMCFLAGS)" $(MAKE) -C js/src -f Makefile.ref libjs.a
- find js/src -name "jsautocfg.h" -exec cp {} js/src \;
+ find js/src -name "jsautocfg.h" -exec cp -f {} js/src \;
touch js-buildstamp
-
+
clean:
diff --git a/testing/palp/APKBUILD b/testing/palp/APKBUILD
new file mode 100644
index 00000000000..b454cf77a59
--- /dev/null
+++ b/testing/palp/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=palp
+pkgver=2.20
+pkgrel=1
+pkgdesc="Package for Analyzing Lattice Polytopes"
+url="http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html"
+arch="all"
+license="GPL-3.0-only"
+options="!check" # no test suite
+source="http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-$pkgver.tar.gz"
+_files="poly class cws nef mori"
+_dimensions="4 5 6 11"
+
+prepare() {
+ default_prepare
+ mkdir -p bin
+ mv Global.h Global.h.template
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ # Inspired by https://git.sagemath.org/sage.git/plain/build/pkgs/palp/spkg-install.in
+ local dim file
+ for dim in $_dimensions; do
+ sed "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax $dim/" Global.h.template > Global.h
+ make
+ for file in $_files; do
+ mv "$file".x bin/"$file-${dim}d.x"
+ done
+ done
+}
+
+package() {
+ local dim file
+ for file in $_files; do
+ for dim in $_dimensions; do
+ install -Dm755 -t "$pkgdir"/usr/bin bin/"$file-${dim}d.x"
+ done
+ ln -sf "$file"-6d.x "$pkgdir"/usr/bin/"$file.x"
+ done
+}
+
+sha512sums="
+08d9a8543c2253297d6ff9076c7e27b9086dc758599f4a0a0348d391e583b3c9ccd9315cce6f425f62432d546a68e689def55c3a8c1f5a5e17bf7998468d1ee2 palp-2.20.tar.gz
+"
diff --git a/testing/pam-krb5/APKBUILD b/testing/pam-krb5/APKBUILD
index 7a15aa74693..0f90245ebc0 100644
--- a/testing/pam-krb5/APKBUILD
+++ b/testing/pam-krb5/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=pam-krb5
-pkgver=4.9
+pkgver=4.11
pkgrel=0
pkgdesc="PAM module providing Kerberos v5 support"
url="https://www.eyrie.org/~eagle/software/pam-krb5/"
@@ -18,7 +18,7 @@ build() {
./configure \
--prefix=/usr \
--enable-reduced-depends \
- --libdir=/usr/lib
+ --libdir=/lib
make
}
@@ -31,4 +31,6 @@ package() {
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
-sha512sums="0e93fbfacf56f9935902ead000dc46732c8a11cc2689c00b68cbaaf6519108a4ce53bb943479d01e439fb92bcc5c1a219d2b816a5ade2af54ea093bb78907201 pam-krb5-4.9.tar.gz"
+sha512sums="
+a48ff063227b77c7487b8afa50a7365e919c276ef829de1ed9f77c32f2cfdffb234fc156bb60e05d9b3b4f51bc1daff90e28f0256746923ea169cb1bd2821c2e pam-krb5-4.11.tar.gz
+"
diff --git a/testing/pam_mount/APKBUILD b/testing/pam_mount/APKBUILD
new file mode 100644
index 00000000000..98cbe07bb4a
--- /dev/null
+++ b/testing/pam_mount/APKBUILD
@@ -0,0 +1,57 @@
+# Maintainer:
+pkgname=pam_mount
+pkgver=2.20
+pkgrel=0
+pkgdesc="Pluggable Authentication Module that can mount volumes for a user session"
+url="https://codeberg.org/jengelh/pam_mount"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ cryptsetup-dev
+ libhx-dev
+ libxml2-dev
+ linux-pam-dev
+ openssl-dev
+ pcre2-dev
+ perl
+ util-linux-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ libcryptmount
+ "
+source="https://inai.de/files/pam_mount/pam_mount-$pkgver.tar.xz
+ rundir.patch
+ "
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-rundir=/run \
+ --disable-dependency-tracking
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+libcryptmount() {
+ pkgdesc="$pkgdesc (libcryptmount library)"
+
+ amove usr/lib/libcryptmount.so.*
+}
+
+sha512sums="
+8661dc5ec134c256825df28e53751d1e0e1e881008c3687a56009f4046b3d17c5b9ddd1b1971dff4e023e5d74e5059f486b08a6cab2861a4bee5ba57fbae3454 pam_mount-2.20.tar.xz
+41275676cec24f050a194c8d375c9f949b9b93125d25df778de711d59b4e458a251978fed9a9b65d9416f7863bb2b631dc1534258075f34cf5dc86be3838b25d rundir.patch
+"
diff --git a/testing/pam_mount/rundir.patch b/testing/pam_mount/rundir.patch
new file mode 100644
index 00000000000..4e767e5b973
--- /dev/null
+++ b/testing/pam_mount/rundir.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index be4d0b9..1340490 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -924,7 +924,7 @@ uninstall-am: uninstall-pkgconfigDATA
+ ${pkgconfig_DATA}: ${top_builddir}/config.status
+
+ install-data-hook:
+- ${MKDIR_P} ${DESTDIR}${localstatedir}/run/pam_mount;
++ ${MKDIR_P} ${DESTDIR}/run/pam_mount;
+
+ .PHONY: tarball
+ tarball:
diff --git a/testing/pam_sqlite3/APKBUILD b/testing/pam_sqlite3/APKBUILD
index 18413eecfe9..f028b233f2c 100644
--- a/testing/pam_sqlite3/APKBUILD
+++ b/testing/pam_sqlite3/APKBUILD
@@ -2,17 +2,15 @@
# Maintainer: Benoit Masson <yahoo@perenite.com>
pkgname=pam_sqlite3
pkgver=1.0.2
-pkgrel=0
+pkgrel=1
pkgdesc="pam_sqlite3"
url="https://github.com/HormyAJP/pam_sqlite3"
arch="all"
-license="GPL-3.0"
-depends="linux-pam"
+license="GPL-3.0-only"
makedepends="linux-pam-dev sqlite-dev bsd-compat-headers"
-install=""
-subpackages=""
-source="$pkgname-$pkgver.tar.gz::https://github.com/HormyAJP/pam_sqlite3/archive/v1.0.2.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/HormyAJP/pam_sqlite3/archive/v$pkgver.tar.gz
+ broken-makefile.patch
+ "
options="!check"
prepare() {
@@ -21,7 +19,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,10 +29,10 @@ build() {
}
package() {
- cd "$builddir"
- mkdir -p "$pkgdir/lib/security/"
-# make DESTDIR="$pkgdir" install
- install -c -m 755 -o root pam_sqlite3.so $pkgdir/lib/security/
+ install -Dm755 -o root pam_sqlite3.so -t "$pkgdir"/lib/security/
}
-sha512sums="c6925adeae0f22abef20b02404a64144990d604a77fea16d100174b7a68617662ad59eba466aa33d40001e07a24ec1579cc2b59a5fcd5fb5570f658ac1a2be5e pam_sqlite3-1.0.2.tar.gz"
+sha512sums="
+c6925adeae0f22abef20b02404a64144990d604a77fea16d100174b7a68617662ad59eba466aa33d40001e07a24ec1579cc2b59a5fcd5fb5570f658ac1a2be5e pam_sqlite3-1.0.2.tar.gz
+ef61a0905fb77de0cb6f14970886229d4c4f6d6c0854c8fc94b3e00f849e52aabb71a6c8825487918fc8d5d79941823b26cc1e2762423d85bc8ae1d50c7db41b broken-makefile.patch
+"
diff --git a/testing/pam_sqlite3/broken-makefile.patch b/testing/pam_sqlite3/broken-makefile.patch
new file mode 100644
index 00000000000..c3d6d9b6de8
--- /dev/null
+++ b/testing/pam_sqlite3/broken-makefile.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.in b/Makefile.in
+index 05e84b6..1e8c363 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -36,7 +36,7 @@ ${DISTDIR}.tar.gz: distfiles
+ dist: ${DISTDIR}.tar.gz
+
+ ${LIBLIB}: ${LIBOBJ}
+- ${CC} ${CFLAGS} ${INCLUDE} -shared -o $@ ${LIBOBJ} ${LDLIBS}
++ ${CC} ${CFLAGS} ${INCLUDE} -shared -o $@ ${LIBOBJ} ${LDLIBS} ${LDFLAGS}
+
+ test: test.c
+ ${CC} ${CFLAGS} -o $@ test.c ${LDLIBS}
diff --git a/testing/pamtester/APKBUILD b/testing/pamtester/APKBUILD
index 38abff05b18..1a2eda9a90d 100644
--- a/testing/pamtester/APKBUILD
+++ b/testing/pamtester/APKBUILD
@@ -1,39 +1,35 @@
# Contributor: Fabio Napoleoni <f.napoleoni@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pamtester
pkgver=0.1.2
-pkgrel=0
+pkgrel=3
pkgdesc="Command line tool to test PAM configuration"
-url="http://pamtester.sourceforge.net/"
+url="https://pamtester.sourceforge.net/"
arch="all"
-license="BSD"
+license="BSD-3-Clause"
depends="linux-pam"
makedepends="$depends_dev linux-pam-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://netix.dl.sourceforge.net/project/pamtester/pamtester/0.1.2/pamtester-0.1.2.tar.gz"
-
-builddir="$srcdir"/$pkgname-$pkgver
+source="https://netix.dl.sourceforge.net/project/pamtester/pamtester/$pkgver/pamtester-$pkgver.tar.gz"
prepare() {
- default_prepare || return 1
- update_config_guess || return 1
+ default_prepare
+ 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="baf4786ad735d73bce8f351071e658cffa5fa45dcf67045827f998555e6cff2bd7ff88dd751ab0198b7b1ecfb9c37ffc8ad0bcc5def098ea7143241a3d501168 pamtester-0.1.2.tar.gz"
diff --git a/testing/pandoc/APKBUILD b/testing/pandoc/APKBUILD
deleted file mode 100644
index a0c136fe704..00000000000
--- a/testing/pandoc/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Contributor: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
-# Maintainer: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
-pkgname=pandoc
-pkgver=2.9.2.1
-pkgrel=0
-pkgdesc="universal markup converter"
-url="https://pandoc.org/"
-# ghc only supports x86_64
-arch="x86_64"
-license="GPL-2.0-or-later"
-makedepends="ghc cabal zlib-dev zlib-static"
-subpackages="$pkgname-doc"
-source="https://hackage.haskell.org/package/pandoc-$pkgver/pandoc-$pkgver.tar.gz
- cabal.project.freeze
- disable-pandoc-citeproc.patch"
-
-# Cabal seems to be built without sandbox, moving the cabal-dir into src
-export CABAL_DIR="$srcdir/cabal"
-
-prepare() {
- default_prepare
- cp "$srcdir/cabal.project.freeze" . # Created using "cabal freeze"
- cabal update
- cabal configure \
- --prefix='/usr' \
- --enable-tests \
- --enable-split-sections \
- --ghc-option="-split-sections" \
- --ghc-option="-j" \
- --ghc-option="-O1" \
- --flags="+embed_data_files -trypandoc +static"
-}
-
-build() {
- cabal install --only-dependencies
- cabal build
-}
-
-check() {
- cabal test
-}
-
-package() {
- _bindir="$pkgdir/usr/bin"
- mkdir -p "$_bindir"
- cabal install \
- --installdir="$_bindir" \
- --install-method=copy
- install -Dm644 man/pandoc.1 "$pkgdir"/usr/share/man/man1/pandoc.1
-}
-
-sha512sums="35ac491a7e0a2f6d8fe0f2c2ffe265748b13920904e974f88c92b3f82edb2f1c03e28ebef1bc344ead13d566117a5e50707a68edc49f95159157f974210b23b2 pandoc-2.9.2.1.tar.gz
-85717048f5bf54f4bde8def32b03f65209de87093126fbed7329b84f9eebd6d6609d9ab73ccdbfb1cdca45eca428f2d34c4981d0afed26f55ab51c705a83d57b cabal.project.freeze
-d00f46b0f7bc1848ae228233b2243717adb50c648fd6101ac4abf610a3c4fa130130b6944fc90c207466590f27d800793f578e742aff46a2677bbdcd22066e42 disable-pandoc-citeproc.patch"
diff --git a/testing/pandoc/cabal.project.freeze b/testing/pandoc/cabal.project.freeze
deleted file mode 100644
index dc0af2c4d02..00000000000
--- a/testing/pandoc/cabal.project.freeze
+++ /dev/null
@@ -1,223 +0,0 @@
-constraints: any.Diff ==0.4.0,
- any.Glob ==0.10.0,
- any.HTTP ==4000.3.14,
- HTTP -conduit10 -mtl1 +network-uri -warn-as-error -warp-tests,
- any.HsYAML ==0.2.1.0,
- HsYAML -exe,
- any.JuicyPixels ==3.3.5,
- JuicyPixels -mmap,
- any.Only ==0.1,
- any.QuickCheck ==2.13.2,
- QuickCheck +templatehaskell,
- any.SHA ==1.6.4.4,
- SHA -exe,
- any.abstract-deque ==0.3,
- abstract-deque -usecas,
- any.abstract-par ==0.3.3,
- any.aeson ==1.4.7.1,
- aeson -bytestring-builder -cffi -developer -fast,
- any.aeson-pretty ==0.8.8,
- aeson-pretty -lib-only,
- any.ansi-terminal ==0.10.3,
- ansi-terminal -example,
- any.ansi-wl-pprint ==0.6.9,
- ansi-wl-pprint -example,
- any.array ==0.5.4.0,
- any.asn1-encoding ==0.9.6,
- any.asn1-parse ==0.9.5,
- any.asn1-types ==0.3.4,
- any.async ==2.2.2,
- async -bench,
- any.attoparsec ==0.13.2.4,
- attoparsec -developer,
- any.base ==4.13.0.0,
- any.base-compat ==0.11.1,
- any.base-compat-batteries ==0.11.1,
- any.base-noprelude ==4.13.0.0,
- any.base-orphans ==0.8.2,
- any.base16-bytestring ==0.1.1.6,
- any.base64-bytestring ==1.0.0.3,
- any.basement ==0.0.11,
- any.binary ==0.8.7.0,
- any.binary-orphans ==1.0.1,
- any.bitarray ==0.0.1.1,
- any.blaze-builder ==0.4.1.0,
- any.blaze-html ==0.9.1.2,
- any.blaze-markup ==0.8.2.4,
- any.bytestring ==0.10.10.0,
- any.call-stack ==0.2.0,
- any.case-insensitive ==1.2.1.0,
- any.cassava ==0.5.2.0,
- cassava -bytestring--lt-0_10_4,
- any.cereal ==0.5.8.1,
- cereal -bytestring-builder,
- any.clock ==0.8,
- clock -llvm,
- any.cmark-gfm ==0.2.1,
- cmark-gfm -pkgconfig,
- any.cmdargs ==0.10.20,
- cmdargs +quotation -testprog,
- any.code-page ==0.2,
- any.colour ==2.3.5,
- any.connection ==0.3.1,
- any.containers ==0.6.2.1,
- any.cookie ==0.4.5,
- any.criterion ==1.5.6.2,
- criterion -embed-data-files -fast,
- any.criterion-measurement ==0.1.2.0,
- criterion-measurement -fast,
- any.cryptonite ==0.26,
- cryptonite -check_alignment +integer-gmp -old_toolchain_inliner +support_aesni +support_deepseq -support_pclmuldq +support_rdrand -support_sse,
- any.data-default ==0.7.1.1,
- any.data-default-class ==0.1.2.0,
- any.data-default-instances-containers ==0.0.1,
- any.data-default-instances-dlist ==0.0.1,
- any.data-default-instances-old-locale ==0.0.1,
- any.deepseq ==1.4.4.0,
- any.dense-linear-algebra ==0.1.0.0,
- any.digest ==0.0.1.2,
- digest -bytestring-in-base,
- any.directory ==1.3.6.0,
- any.dlist ==0.8.0.8,
- any.doclayout ==0.3,
- any.doctemplates ==0.8.1,
- any.emojis ==0.1,
- any.errors ==2.3.0,
- any.exceptions ==0.10.4,
- exceptions +transformers-0-4,
- any.executable-path ==0.0.3.1,
- any.fail ==4.9.0.0,
- any.file-embed ==0.0.11.2,
- any.filepath ==1.4.2.1,
- any.ghc ==8.8.3,
- any.ghc-boot ==8.8.3,
- any.ghc-boot-th ==8.8.3,
- any.ghc-heap ==8.8.3,
- any.ghc-prim ==0.5.3,
- any.ghci ==8.8.3,
- any.haddock-library ==1.8.0,
- any.hashable ==1.3.0.0,
- hashable -examples +integer-gmp +sse2 -sse41,
- any.hourglass ==0.2.12,
- any.hpc ==0.6.0.3,
- any.hsc2hs ==0.68.7,
- hsc2hs -in-ghc-tree,
- any.hslua ==1.0.3.2,
- hslua +allow-unsafe-gc -apicheck +export-dynamic -hardcode-reg-keys -lua_32bits -pkg-config -system-lua,
- any.hslua-module-system ==0.2.1,
- any.hslua-module-text ==0.2.1,
- any.http-client ==0.6.4.1,
- http-client +network-uri,
- any.http-client-tls ==0.3.5.3,
- any.http-types ==0.12.3,
- any.hxt ==9.3.1.18,
- hxt -network-uri -profile,
- any.hxt-charproperties ==9.4.0.0,
- hxt-charproperties -profile,
- any.hxt-regex-xmlschema ==9.2.0.3,
- hxt-regex-xmlschema -profile,
- any.hxt-unicode ==9.0.2.4,
- any.integer-gmp ==1.0.2.0,
- any.integer-logarithms ==1.0.3,
- integer-logarithms -check-bounds +integer-gmp,
- any.ipynb ==0.1,
- any.jira-wiki-markup ==1.1.4,
- any.js-flot ==0.8.3,
- any.js-jquery ==3.3.1,
- any.math-functions ==0.3.3.0,
- math-functions +system-erf +system-expm1,
- any.memory ==0.15.0,
- memory +support_basement +support_bytestring +support_deepseq +support_foundation,
- any.microstache ==1.0.1.1,
- any.mime-types ==0.1.0.9,
- any.monad-par ==0.3.5,
- monad-par -chaselev -newgeneric,
- any.monad-par-extras ==0.3.3,
- any.mtl ==2.2.2,
- any.mwc-random ==0.14.0.0,
- any.network ==3.1.1.1,
- any.network-uri ==2.6.3.0,
- any.old-locale ==1.0.0.7,
- any.optparse-applicative ==0.15.1.0,
- pandoc +embed_data_files +static -trypandoc,
- any.pandoc-types ==1.20,
- any.parallel ==3.2.2.0,
- any.parsec ==3.1.14.0,
- any.pem ==0.2.4,
- any.pretty ==1.1.3.6,
- any.primitive ==0.7.0.1,
- any.process ==1.6.8.0,
- any.random ==1.1,
- any.regex-base ==0.94.0.0,
- any.regex-pcre-builtin ==0.95.1.1.8.43,
- any.rts ==1.0,
- any.safe ==0.3.18,
- any.scientific ==0.3.6.2,
- scientific -bytestring-builder -integer-simple,
- any.skylighting ==0.8.3.4,
- skylighting -executable,
- any.skylighting-core ==0.8.3.4,
- skylighting-core -executable -system-pcre,
- any.socks ==0.6.1,
- any.split ==0.2.3.4,
- any.splitmix ==0.0.4,
- splitmix -optimised-mixer +random,
- any.statistics ==0.15.2.0,
- any.stm ==2.5.0.0,
- any.streaming-commons ==0.2.1.2,
- streaming-commons -use-bytestring-builder,
- any.syb ==0.7.1,
- any.tagged ==0.8.6,
- tagged +deepseq +transformers,
- any.tagsoup ==0.14.8,
- any.tasty ==1.2.3,
- tasty +clock,
- any.tasty-golden ==2.3.3,
- tasty-golden -build-example,
- any.tasty-hunit ==0.10.0.2,
- any.tasty-lua ==0.2.2,
- any.tasty-quickcheck ==0.10.1.1,
- any.template-haskell ==2.15.0.0,
- any.temporary ==1.3,
- any.terminfo ==0.4.1.4,
- any.texmath ==0.12.0.1,
- texmath -executable +network-uri,
- any.text ==1.2.4.0,
- any.text-conversions ==0.3.0,
- any.text-short ==0.1.3,
- text-short -asserts,
- any.th-abstraction ==0.3.2.0,
- any.time ==1.9.3,
- any.time-compat ==1.9.3,
- time-compat -old-locale,
- any.tls ==1.5.4,
- tls +compat -hans +network,
- any.transformers ==0.5.6.2,
- any.transformers-compat ==0.6.5,
- transformers-compat -five +five-three -four +generic-deriving +mtl -three -two,
- any.unbounded-delays ==0.1.1.0,
- any.unicode-transforms ==0.3.6,
- unicode-transforms -bench-show -dev -has-icu -has-llvm,
- any.unix ==2.7.2.2,
- any.unordered-containers ==0.2.10.0,
- unordered-containers -debug,
- any.utf8-string ==1.0.1.1,
- any.uuid-types ==1.0.3,
- any.vector ==0.12.1.2,
- vector +boundschecks -internalchecks -unsafechecks -wall,
- any.vector-algorithms ==0.8.0.3,
- vector-algorithms +bench +boundschecks -internalchecks -llvm +properties -unsafechecks,
- any.vector-binary-instances ==0.2.5.1,
- any.vector-th-unbox ==0.2.1.7,
- any.wcwidth ==0.0.2,
- wcwidth -cli +split-base,
- any.weigh ==0.0.16,
- any.x509 ==1.7.5,
- any.x509-store ==1.6.7,
- any.x509-system ==1.6.6,
- any.x509-validation ==1.6.11,
- any.xml ==1.3.14,
- any.zip-archive ==0.4.1,
- zip-archive -executable,
- any.zlib ==0.6.2.1,
- zlib -non-blocking-ffi -pkg-config
diff --git a/testing/pandoc/disable-pandoc-citeproc.patch b/testing/pandoc/disable-pandoc-citeproc.patch
deleted file mode 100644
index 85b916f2440..00000000000
--- a/testing/pandoc/disable-pandoc-citeproc.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Disable cabal citeproc, as we don't accept checking out git-repos during
-build. It has to go into an extra package.
-
-If it is needed please contact the maintainer of this package.
-
---- a/cabal.project
-+++ b/cabal.project
-@@ -3,12 +3,3 @@
- package pandoc
- flags: +embed_data_files -trypandoc
- ghc-options: -j +RTS -A64m -RTS
--
--package pandoc-citeproc
-- flags: +embed_data_files +bibutils -unicode_collation -test_citeproc -debug
-- ghc-options: -j +RTS -A64m -RTS
--
--source-repository-package
-- type: git
-- location: https://github.com/jgm/pandoc-citeproc
-- tag: 0.17
diff --git a/testing/pantalaimon/APKBUILD b/testing/pantalaimon/APKBUILD
new file mode 100644
index 00000000000..19fd97d7287
--- /dev/null
+++ b/testing/pantalaimon/APKBUILD
@@ -0,0 +1,90 @@
+# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=pantalaimon
+pkgver=0.10.5
+pkgrel=4
+pkgdesc="E2EE-aware Matrix proxy daemon"
+options="!check" # Tests hang
+url="https://github.com/matrix-org/pantalaimon"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-aiohttp
+ py3-appdirs
+ py3-atomicwrites
+ py3-attrs
+ py3-cachetools
+ py3-click
+ py3-janus
+ py3-keyring
+ py3-logbook
+ py3-matrix-nio
+ py3-olm
+ py3-peewee
+ py3-prompt_toolkit
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-aioresponses
+ py3-faker
+ py3-hpack
+ py3-hyperframe
+ py3-pytest
+ py3-pytest-aiohttp
+ "
+subpackages="
+ $pkgname-ui
+ $pkgname-doc
+ $pkgname-pyc
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/matrix-org/pantalaimon/archive/$pkgver.tar.gz
+ fix-typo.patch
+ fix-media.patch
+ fix-tox.patch
+ fix-presence.patch
+ "
+
+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
+
+ install -Dm644 docs/man/panctl.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 docs/man/pantalaimon.5 -t "$pkgdir"/usr/share/man/man5/
+ install -Dm644 docs/man/pantalaimon.8 -t "$pkgdir"/usr/share/man/man8/
+}
+
+ui() {
+ depends="
+ $pkgname=$pkgver-r$pkgrel
+ py3-gobject3
+ py3-dbus
+ py3-pydbus
+ py3-notify2
+ "
+
+ amove usr/bin/panctl
+}
+
+sha512sums="
+8648037b49aeae9cdc10eaa83257412335267e70163d8800979a47b3c4bfa88d03a5a62272bddfdf1a77b8ea781b089512b6edae0f8ec67a36b28c1098f1d36e pantalaimon-0.10.5.tar.gz
+08b8d353ce496cfc893efde3e80ad9847730b6105926f2d2146c1f1e93af451f7ec138d57f1da48711962f6a9687ce061187fe5ec7e9cc6ffdf6a1a711fca924 fix-typo.patch
+8305b04edb607549332d77e54eda88e93e61ba4e209622ba2b55ce3de37d112f3f054b596181c39bdb9f9f0464b87658364ca06bfa69bd8a518c01a07af1a423 fix-media.patch
+6b8b9c87f261dcd78e8b3bf07d417e831d816077eb78f21499ee2847dea05aaef007a5dde77fb18904ceba35d82f02bb2afc89c1c04e3e6a3b76697bbf70da7e fix-tox.patch
+2660521a127059ae53fc962609a5f6df90f024723638ea0c148e434227f8d41fca6d18221fbdc78e990c8aa9192ac85746446cdac8ae6a5243e4864bb2c8a4b2 fix-presence.patch
+"
diff --git a/testing/pantalaimon/fix-media.patch b/testing/pantalaimon/fix-media.patch
new file mode 100644
index 00000000000..082f749a021
--- /dev/null
+++ b/testing/pantalaimon/fix-media.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/matrix-org/pantalaimon/commit/807deb94ee9e39bb570a904960d750e8d0dd5086.patch
+--
+From 807deb94ee9e39bb570a904960d750e8d0dd5086 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Gerber=20L=C3=B3r=C3=A1nt=20Viktor?= <glorantq@gmail.com>
+Date: Fri, 3 Feb 2023 05:45:50 +0100
+Subject: [PATCH] fix media
+
+---
+ pantalaimon/daemon.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pantalaimon/daemon.py b/pantalaimon/daemon.py
+index 3264cab..c5e4ac4 100755
+--- a/pantalaimon/daemon.py
++++ b/pantalaimon/daemon.py
+@@ -1273,7 +1273,7 @@ async def _load_decrypted_file(self, server_name, media_id, file_name):
+ client = next(iter(self.pan_clients.values()))
+
+ try:
+- response = await client.download(server_name, media_id, file_name)
++ response = await client.download(server_name=server_name, media_id=media_id, filename=file_name)
+ except ClientConnectionError as e:
+ raise e
+
diff --git a/testing/pantalaimon/fix-presence.patch b/testing/pantalaimon/fix-presence.patch
new file mode 100644
index 00000000000..665182b6f5d
--- /dev/null
+++ b/testing/pantalaimon/fix-presence.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/matrix-org/pantalaimon/commit/3968c69aa846889970df1372ba9aa54c1c5e4290.patch
+--
+From 3968c69aa846889970df1372ba9aa54c1c5e4290 Mon Sep 17 00:00:00 2001
+From: Igor Artemenko <igor@codemonium.com>
+Date: Wed, 5 Apr 2023 16:17:04 +0000
+Subject: [PATCH] Set Pantalaimon presence to offline
+
+Before this change, Pantalaimon users would always appear online because
+that is the default state when the /sync endpoint's set_presence
+parameter is not set. By explicitly setting the parameter to "offline",
+only the user-facing client (which executes its own /sync request)
+affects the presence state.
+---
+ pantalaimon/client.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pantalaimon/client.py b/pantalaimon/client.py
+index be32859..ececee3 100644
+--- a/pantalaimon/client.py
++++ b/pantalaimon/client.py
+@@ -554,6 +554,7 @@ def start_loop(self, loop_sleep_time=100):
+ full_state=True,
+ since=next_batch,
+ loop_sleep_time=loop_sleep_time,
++ set_presence="offline",
+ )
+ )
+ self.task = task
diff --git a/testing/pantalaimon/fix-tox.patch b/testing/pantalaimon/fix-tox.patch
new file mode 100644
index 00000000000..a841e13b221
--- /dev/null
+++ b/testing/pantalaimon/fix-tox.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/matrix-org/pantalaimon/commit/6638393042654b3f497ac1ea4b5f550b7024b490.patch
+--
+From 6638393042654b3f497ac1ea4b5f550b7024b490 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Damir=20Jeli=C4=87?= <poljar@termina.org.uk>
+Date: Thu, 25 May 2023 19:57:25 +0200
+Subject: [PATCH] Fix tox
+
+---
+ tox.ini | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tox.ini b/tox.ini
+index c3a2630..d90feda 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -5,7 +5,7 @@ envlist = coverage
+ deps = -rtest-requirements.txt
+ install_command = pip install {opts} {packages}
+
+-passenv = TOXENV CI
++passenv = TOXENV,CI
+ commands = pytest
+
+ [testenv:coverage]
diff --git a/testing/pantalaimon/fix-typo.patch b/testing/pantalaimon/fix-typo.patch
new file mode 100644
index 00000000000..a2e8d91d104
--- /dev/null
+++ b/testing/pantalaimon/fix-typo.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/matrix-org/pantalaimon/commit/127373fdcc91c5a4403e25444526822e59083a0d.patch
+--
+From 127373fdcc91c5a4403e25444526822e59083a0d Mon Sep 17 00:00:00 2001
+From: Igor Artemenko <igor@codemonium.com>
+Date: Tue, 6 Dec 2022 12:38:38 +0000
+Subject: [PATCH] Fix typo
+
+---
+ pantalaimon/client.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pantalaimon/client.py b/pantalaimon/client.py
+index 5b4ce05..be32859 100644
+--- a/pantalaimon/client.py
++++ b/pantalaimon/client.py
+@@ -135,7 +135,7 @@ class InvalidLimit(Exception):
+ class SqliteQStore(SqliteStore):
+ def _create_database(self):
+ return SqliteQueueDatabase(
+- self.database_path, pragmas=(("foregign_keys", 1), ("secure_delete", 1))
++ self.database_path, pragmas=(("foreign_keys", 1), ("secure_delete", 1))
+ )
+
+ def close(self):
diff --git a/testing/paperde/APKBUILD b/testing/paperde/APKBUILD
new file mode 100644
index 00000000000..922a7b79146
--- /dev/null
+++ b/testing/paperde/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: rahmanshaber <rahmanshaber@yahoo.com>
+# Maintainer: rahmanshaber <rahmanshaber@yahoo.com>
+pkgname=paperde
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="A minimalistic Desktop Environment built on top of Qt/Wayland and Wayfire."
+# armhf blocked by extra-cmake-modulese
+# riscv64 and s390x blocked by polkit
+arch="all !armhf !s390x !riscv64"
+url="https://gitlab.com/cubocore"
+license="GPL-3.0-or-later"
+depends="
+ wayfire
+ xdg-desktop-portal
+ "
+makedepends="
+ dfl-applications-dev
+ dfl-ipc-dev
+ dfl-login1-dev
+ dfl-sni-dev
+ libcprime-dev
+ libcsys-dev
+ libdbusmenu-qt-dev
+ meson
+ qt5-qtbase-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ qt5-qtwayland-dev
+ samurai
+ upower-dev
+ wayland-protocols
+ wayqt-dev
+ xdg-desktop-portal-dev
+ "
+subpackages="$pkgname-dev"
+source="https://gitlab.com/cubocore/paper/paperde/-/archive/v$pkgver/paperde-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # No test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+e391faec794ccf0d780f7796cadfec3d3a2280e0ee9556b0ba5dfd29db86f5efac168e7b9b6b5f34a54917f0ad8d664723b82910bd2a2b396582d82dd6b0cfce paperde-v0.2.1.tar.gz
+"
diff --git a/testing/paperkey/APKBUILD b/testing/paperkey/APKBUILD
new file mode 100644
index 00000000000..6ad403e8870
--- /dev/null
+++ b/testing/paperkey/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=paperkey
+pkgver=1.6
+pkgrel=2
+pkgdesc="Archive OpenPGP keys on paper"
+url="https://www.jabberwocky.com/software/paperkey/"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-doc"
+source="https://www.jabberwocky.com/software/paperkey/paperkey-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="a07fc22bf56cd9524ecba61d1bf00102e6e97842e219682771187a2a2327c9daa885d457417bb2ea960f5ebd66bd711fa1d86687fda159647ff47980dee21b01 paperkey-1.6.tar.gz"
diff --git a/testing/papirus-icon-theme/APKBUILD b/testing/papirus-icon-theme/APKBUILD
deleted file mode 100644
index 4211e4b175a..00000000000
--- a/testing/papirus-icon-theme/APKBUILD
+++ /dev/null
@@ -1,17 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=papirus-icon-theme
-pkgver=20200430
-pkgrel=0
-pkgdesc="papirus icon theme"
-options="!check"
-url="https://github.com/PapirusDevelopmentTeam/papirus-icon-theme"
-arch="noarch"
-license="GPL-3.0-only"
-source="$pkgname-$pkgver.tar.gz::https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/$pkgver.tar.gz"
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="5be8e68f3b0bff32c8c1c8c6fc4d4358a1fa18b9395cefbde4b6056fd38d1fb68f2cc555b5aa98e0399c24ddeb119d501b00098c459d43a734ae831b7df9624c papirus-icon-theme-20200430.tar.gz"
diff --git a/testing/paprefs/APKBUILD b/testing/paprefs/APKBUILD
index cdc28db9d0a..c3cb4cecfc9 100644
--- a/testing/paprefs/APKBUILD
+++ b/testing/paprefs/APKBUILD
@@ -1,38 +1,35 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=paprefs
-pkgver=1.1
-pkgrel=2
+pkgver=1.2
+pkgrel=1
pkgdesc="Configuration dialog for PulseAudio"
url="https://freedesktop.org/software/pulseaudio/paprefs/"
arch="all"
license="GPL-2.0-or-later"
makedepends="
- meson
- pulseaudio-dev
+ glib-dev
gtkmm3-dev
libsigc++-dev
- glib-dev
+ meson
+ pulseaudio-dev
"
subpackages="$pkgname-lang"
-source="http://freedesktop.org/software/pulseaudio/paprefs/paprefs-$pkgver.tar.xz"
+source="https://freedesktop.org/software/pulseaudio/paprefs/paprefs-$pkgver.tar.xz"
build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --libdir=/usr/lib \
- --buildtype=plain \
- . output
- ninja -C output
+ abuild-meson . output
+ meson compile -C output
}
check() {
- ninja -C output test
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="4203fcb485b40223a5c8672fdbbd2875a25d05d85366773015728f54a17020098ee9e9fd1c02180c01799e100b99389c970855fc1bd69921d32d8e43c749ce76 paprefs-1.1.tar.xz"
+
+sha512sums="
+2bc50116528c150060711899c66976179e433f6be36f6b7806f0fd3f66346ce14037875e7f119dc205d2047c3998d78105fa7d7c397dfcf02fb8d3bfec34154c paprefs-1.2.tar.xz
+"
diff --git a/testing/par/APKBUILD b/testing/par/APKBUILD
new file mode 100644
index 00000000000..7b17d291bbb
--- /dev/null
+++ b/testing/par/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=par
+pkgver=1.53.0
+pkgrel=1
+pkgdesc="paragraph reformatter, vaguely similar to fmt, but better"
+url="http://www.nicemice.net/par/"
+arch="all"
+license="custom"
+depends="!rancid" # contains 'par' executable
+subpackages="$pkgname-doc"
+source="http://www.nicemice.net/par/Par-$pkgver.tar.gz"
+
+builddir="$srcdir/Par-$pkgver"
+
+build() {
+ make -f protoMakefile
+}
+
+package() {
+ install -Dm755 -D par "$pkgdir/usr/bin/par"
+ install -Dm644 -D par.1 "$pkgdir/usr/share/man/man1/par.1"
+ install -Dm644 -D par.doc "$pkgdir/usr/share/licenses/$pkgname/par.doc"
+}
+
+sha512sums="3f8ac57fe19ebcf427b11f4d79f2c5cc9286c1439c38a53d45bd29b9219369db2798efbd0e203ac359d59ebbdd3ead1c50ae75352a1ffc568d4d3b9ad50642b1 Par-1.53.0.tar.gz"
diff --git a/testing/par2cmdline-turbo/APKBUILD b/testing/par2cmdline-turbo/APKBUILD
new file mode 100644
index 00000000000..b70d648476d
--- /dev/null
+++ b/testing/par2cmdline-turbo/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=par2cmdline-turbo
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="par2cmdline x ParPar: speed focused par2cmdline fork"
+url="https://github.com/animetosho/par2cmdline-turbo"
+arch="x86 x86_64 aarch64 armv7"
+license="GPL-2.0-or-later"
+makedepends="automake autoconf"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/animetosho/par2cmdline-turbo/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./automake.sh
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+bb919f885134a298ba14551e21cf89a91aee292e437133e6973bef09fb5dee9a9b45e76a59320bfede864438d3ac884699be7ca3f7234896a9da14cb07ffa89d par2cmdline-turbo-1.1.1.tar.gz
+"
diff --git a/testing/par2cmdline/APKBUILD b/testing/par2cmdline/APKBUILD
deleted file mode 100644
index 4e4e7ba9ca4..00000000000
--- a/testing/par2cmdline/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: Simon Rupf <simon@rupf.net>
-pkgname=par2cmdline
-pkgver=0.8.1
-pkgrel=0
-pkgdesc="PAR 2.0 compatible file verification and repair tool"
-url="https://github.com/Parchive/par2cmdline#par2cmdline"
-arch="all !s390x !mips !mips64" # tests/unit_tests fails on big endian
-license="GPL-2.0-or-later"
-subpackages="$pkgname-doc"
-source="https://github.com/Parchive/par2cmdline/releases/download/v$pkgver/par2cmdline-$pkgver.tar.bz2"
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b33ee654bd14269afb02d48175abf183281270c3e0dad9ffcaa0aa69c4271715a85e550d6d56fe5460ebfe9a37dc53b7d2210cd79a6f55d3921dc5dd5972c846 par2cmdline-0.8.1.tar.bz2"
diff --git a/testing/paraexec/APKBUILD b/testing/paraexec/APKBUILD
index dad28c5ede9..ca45a0f6ae1 100644
--- a/testing/paraexec/APKBUILD
+++ b/testing/paraexec/APKBUILD
@@ -2,9 +2,9 @@
# Contributor: Will Sinatra <wpsinatra@gmail.com>
pkgname=paraexec
pkgver=1.0
-pkgrel=0
+pkgrel=3
pkgdesc="Asychronous Execution Program"
-url="https://gitlab.com/Durrendal/Paraexec.git"
+url="https://gitlab.com/Durrendal/Paraexec"
arch="x86_64"
license="GPL-3.0-only"
depends="sbcl"
@@ -20,4 +20,6 @@ package() {
install -Dm755 "$builddir"/src/paraexec "$pkgdir"/usr/bin/paraexec
}
-sha512sums="b3d04931dbc3fd8af54b304071f4921cf4089f109f487ad0424c2b015ec2d968a34640e83104018d600a42630271c593191921377a6ab696a3d7a8af17623b6f paraexec.tar.bz2"
+sha512sums="
+b3d04931dbc3fd8af54b304071f4921cf4089f109f487ad0424c2b015ec2d968a34640e83104018d600a42630271c593191921377a6ab696a3d7a8af17623b6f paraexec.tar.bz2
+"
diff --git a/testing/parcellite/APKBUILD b/testing/parcellite/APKBUILD
new file mode 100644
index 00000000000..31fad7d7ad0
--- /dev/null
+++ b/testing/parcellite/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: RickyRockRat <gpib@rickyrockrat.net>
+# Maintainer: RickyRockRat <gpib@rickyrockrat.net>
+pkgname=parcellite
+pkgver=1.2.4.0
+pkgrel=0
+pkgdesc="A lightweight GTK+ clipboard manager."
+url="http://parcellite.sourceforge.net"
+arch="all"
+options='!check'
+license="GPL-3.0-or-later"
+makedepends="intltool gcc make pkgconf gtk+2.0-dev"
+subpackages="$pkgname-doc $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rickyrockrat/parcellite/archive/$pkgver.tar.gz"
+
+build() {
+ make -f Makefile.simple VERSION=$pkgver
+}
+
+package() {
+ make -f Makefile.simple DESTDIR="$pkgdir" install-bin
+ make -f Makefile.simple DESTDIR="$pkgdir" install-doc
+ make -f Makefile.simple DESTDIR="$pkgdir" install-lang
+}
+
+sha512sums="
+f6452b1b41bae0f6af2fea72052ee17c7d47681c921afe2f89b1ed0180bac9b9551b6d5e6b9422ae696a482fb81c57df85d11620bcc77e7fd47f2050ccfd1673 parcellite-1.2.4.0.tar.gz
+"
diff --git a/testing/pari/APKBUILD b/testing/pari/APKBUILD
new file mode 100644
index 00000000000..afe46729518
--- /dev/null
+++ b/testing/pari/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=pari
+pkgver=2.15.4
+pkgrel=0
+pkgdesc="computer algebra system designed for fast computations in number theory"
+url="https://pari.math.u-bordeaux.fr/"
+arch="all !x86 !armv7 !armhf" # x86/armv7/armhf failed test matsnf-sta and matsnf-dyn
+license="GPL-2.0-or-later"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="gmp-dev readline-dev perl"
+checkdepends="diffutils" # BusyBox diff: unrecognized option: c
+subpackages="$pkgname-dev $pkgname-libs:_lib $pkgname-doc"
+source="https://pari.math.u-bordeaux.fr/pub/pari/unix/pari-$pkgver.tar.gz"
+
+build() {
+ export CFLAGS="$CFLAGS -O2 -flto=auto"
+ export CPPFLAGS="$CPPFLAGS -O2 -flto=auto"
+ ./Configure \
+ --prefix=/usr \
+ --mt=pthread \
+ --with-readline \
+ --with-gmp \
+ --graphic=svg
+ make all
+}
+
+check() {
+ make dobench
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_lib() {
+ # symlink is backwards so it doesn't move otherwise
+ amove usr/lib/libpari*
+}
+
+doc() {
+ default_doc
+
+ amove usr/share/pari/doc \
+ usr/share/pari/examples
+}
+
+sha512sums="
+2b9f0c1fe7198406df8e6ceb3fcdc8bfb75f5c7ebfb963f023a1eebfff0bcc26e3b690941e188d6b9f8dfb6cddf4ce4c00f2cc320ebe47d42ae7596c774ed6cc pari-2.15.4.tar.gz
+"
diff --git a/testing/pash/APKBUILD b/testing/pash/APKBUILD
new file mode 100644
index 00000000000..d52ea9f62fb
--- /dev/null
+++ b/testing/pash/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Alan Diwix <alandiwix@gmail.com>
+# Maintainer: Alan Diwix <alandiwix@gmail.com>
+pkgname=pash
+pkgver=2.3.0
+pkgrel=2
+pkgdesc="simple password manager"
+url="https://github.com/dylanaraps/pash"
+arch="noarch"
+license="MIT"
+depends="gpg-agent"
+options="!check" # no testsuite
+source="$pkgname-$pkgver.tar.gz::https://github.com/dylanaraps/pash/archive/refs/tags/$pkgver.tar.gz"
+
+package() {
+ install -Dm 755 pash "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+389dace794913492ea84345e920187d33c456551b7cfaea7a71810be21fa05b33b8cee5aacbcf4b17fa84b20399c41607c49988de7ecf263569be33aea1118ea pash-2.3.0.tar.gz
+"
diff --git a/testing/pass-otp/APKBUILD b/testing/pass-otp/APKBUILD
deleted file mode 100644
index 3d398daf409..00000000000
--- a/testing/pass-otp/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=pass-otp
-pkgver=1.2.0
-pkgrel=0
-pkgdesc="A pass extension for managing one-time-password (OTP) tokens"
-url="https://github.com/tadfisher/pass-otp"
-arch="noarch"
-license="GPL-3.0-only"
-depends="pass libqrencode oath-toolkit-oathtool"
-checkdepends="git expect"
-subpackages="$pkgname-doc $pkgname-bash-completion"
-source="pass-otp-$pkgver.tar.gz::https://github.com/tadfisher/pass-otp/archive/v$pkgver.tar.gz"
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" BASHCOMPDIR="/usr/share/bash-completion/completions" install
-}
-sha512sums="3d1417462998750ef1580169ed0e4b721b5f430cd86a678d1b6bc7b2ac123879902f7d22c28dc21e8a171ec80dfc51b6465d0dcc78cb009eb731651f2cb152f5 pass-otp-1.2.0.tar.gz"
diff --git a/testing/pass2csv/APKBUILD b/testing/pass2csv/APKBUILD
new file mode 100644
index 00000000000..fe32553a758
--- /dev/null
+++ b/testing/pass2csv/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=pass2csv
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Export pass(1), \"the standard unix password manager\", to CSV"
+url="https://github.com/reinefjord/pass2csv"
+license="MIT"
+arch="noarch"
+depends="python3 py3-gnupg"
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/reinefjord/pass2csv/archive/v$pkgver/pass2csv-$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/pass2csv-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+4982f56e98a3935aeb6ef4981188bfcf2b81df3dadce5abaefdc029b30b48e49fe45b96718913d2c96849cdca1220efc0a699255f39d8f91454ce983d3fc37f9 pass2csv-1.1.1.tar.gz
+"
diff --git a/testing/passt/APKBUILD b/testing/passt/APKBUILD
new file mode 100644
index 00000000000..1bc9d9d4d46
--- /dev/null
+++ b/testing/passt/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=passt
+pkgver=2024.02.20
+_commit=1e6f92b
+_tag=${pkgver//./_}.$_commit
+pkgrel=0
+pkgdesc="Plug a simple socket transport"
+url="https://passt.top/"
+arch="all"
+license="BSD-3-Clause AND GPL-2.0-or-later"
+makedepends="coreutils-fmt linux-headers"
+subpackages="$pkgname-doc"
+source="https://passt.top/passt/snapshot/passt-$_tag.tar.gz"
+builddir="$srcdir/$pkgname-$_tag"
+# complicated test setup, requires qemu and a lot of VM images
+options="!check"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" prefix=/usr install
+ install -Dm644 LICENSES/*.txt -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+bd47321cb727a15310b9c02622e8d5f983ca52e996c1e80a58fba0212845beddd4060d7a78585b5e13a2cb02206ef16bf13c9edb325bb2be4b4fafed5a609bd7 passt-2024_02_20.1e6f92b.tar.gz
+"
diff --git a/testing/pastebinc/APKBUILD b/testing/pastebinc/APKBUILD
index de726f5db7a..3291b747ded 100644
--- a/testing/pastebinc/APKBUILD
+++ b/testing/pastebinc/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pastebinc
pkgver=0.9.1
-pkgrel=1
+pkgrel=2
pkgdesc="utility to pipe data into a paste on pastebin.com or a similar site"
url="https://github.com/jthomerson/pastebinc"
arch="all"
diff --git a/testing/pastel/APKBUILD b/testing/pastel/APKBUILD
index cf8373b9bf3..e99f83f89c1 100644
--- a/testing/pastel/APKBUILD
+++ b/testing/pastel/APKBUILD
@@ -1,23 +1,25 @@
# Contributor: Joe Searle <joe@jsearle.net>
# Maintainer: Joe Searle <joe@jsearle.net>
pkgname=pastel
-pkgver=0.8.0
-pkgrel=0
+pkgver=0.9.0
+pkgrel=2
pkgdesc="A command-line tool to generate, analyze, convert and manipulate colors"
url="https://github.com/sharkdp/pastel"
-arch="all !s390x !mips !mips64" # rust/cargo
+arch="all !s390x !riscv64" # rust/cargo
license="Apache-2.0"
-makedepends="rust cargo"
+makedepends="rust cargo cargo-auditable"
source="$pkgname-$pkgver.tar.gz::https://github.com/sharkdp/pastel/archive/v$pkgver.tar.gz"
subpackages="
$pkgname-bash-completion
$pkgname-zsh-completion
$pkgname-fish-completion
"
+options="net" # fetch crates
+
build() {
export SHELL_COMPLETIONS_DIR="$builddir/completions"
- cargo build --release
+ cargo auditable build --release
}
check() {
@@ -32,7 +34,9 @@ package() {
install -Dm644 "$builddir"/completions/_pastel \
"$pkgdir"/usr/share/zsh/site-functions/_pastel
install -Dm644 "$builddir"/completions/pastel.fish \
- "$pkgdir"/usr/share/fish/completions/pastel.fish
+ "$pkgdir"/usr/share/fish/vendor_completions.d/pastel.fish
}
-sha512sums="34deca1ff91a3e629b0cd6961157d82f959d07eaf99199e03721b9b71ff9d11b50db97bb43eca3042dcba0d9f98c9eb80c969e6c05616121d1357e4544cec563 pastel-0.8.0.tar.gz"
+sha512sums="
+b1dc85062429ca8acda14bec88dcb6057643c1e999582c7e1595ca730312fc8164c558c7459e754cb934a0a1f53ccd8fc542a4ab28dfe05f2f023d223384c464 pastel-0.9.0.tar.gz
+"
diff --git a/testing/pathvector/APKBUILD b/testing/pathvector/APKBUILD
new file mode 100644
index 00000000000..2bde84f04ef
--- /dev/null
+++ b/testing/pathvector/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Dennis Przytarski <dennis@przytarski.com>
+# Maintainer: Dennis Przytarski <dennis@przytarski.com>
+pkgname=pathvector
+pkgver=6.3.2
+pkgrel=5
+pkgdesc="Declarative edge routing platform"
+url="https://pathvector.io"
+# broken on 32-bit
+arch="all !x86 !armhf !armv7"
+license="MIT"
+depends="bird"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/natesales/pathvector/archive/refs/tags/v$pkgver.tar.gz
+ pathvector.yml
+ "
+# require full setup with host routing in place
+options="!check"
+
+build() {
+ sed -i 's/\(version = "\)devel/\1'"$pkgver"'/g' main.go
+ go build -v
+}
+
+package() {
+ install -Dm755 pathvector "$pkgdir"/usr/bin/pathvector
+ install -Dm644 "$srcdir"/pathvector.yml "$pkgdir"/etc/pathvector.yml
+}
+
+sha512sums="
+34cd31b30b4ded02cd01aeee96a6f7eddff0feb372cd9d5eda51dd77b87b50286ecb5585789851838afc0e47cbd6739e1dad9120b06ad4489470a380014757fc pathvector-6.3.2.tar.gz
+8c446535089ecfca6aaaa335dda2567a17224761f5daa6d8bea68981ad0cfb32d7e40a12691953f06d1e24b08bc131bf9ad2468389a8e5058c056202056f94cd pathvector.yml
+"
diff --git a/testing/pathvector/pathvector.yml b/testing/pathvector/pathvector.yml
new file mode 100644
index 00000000000..d9645a0deec
--- /dev/null
+++ b/testing/pathvector/pathvector.yml
@@ -0,0 +1 @@
+bird-socket: /run/bird.ctl
diff --git a/testing/pcem/APKBUILD b/testing/pcem/APKBUILD
new file mode 100644
index 00000000000..f97d6d0b9bc
--- /dev/null
+++ b/testing/pcem/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Vladimir Luzan <vluzan@disroot.org>
+# Maintainer: Vladimir Luzan <vluzan@disroot.org>
+pkgname=pcem
+pkgver=17
+pkgrel=2
+pkgdesc="Retro PC emulator"
+url="http://pcem-emulator.co.uk"
+# not supported due to pcem specifics
+arch="all !aarch64 !armv7 !armhf !ppc64le !s390x !riscv64"
+license="GPL-2.0-only"
+makedepends="wxwidgets-dev openal-soft-dev sdl2-dev alsa-lib-dev make autoconf automake"
+source="http://pcem-emulator.co.uk/files/PCemV${pkgver}Linux.tar.gz"
+
+prepare() {
+ default_prepare
+ autoreconf
+}
+
+build() {
+ CPPFLAGS="$CPPFLAGS -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-alsa \
+ --enable-release-build \
+ --enable-networking
+ make
+}
+
+package() {
+ make -C src DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6d84c8cbe9b6116f6439f542ac08139cfc5652a34b615a1ed841a6f8c227e77f1d26573ec35d57511b9a69e7472fbe51f2abb9307f8f8c1207c74fbe8107cadd PCemV17Linux.tar.gz
+"
diff --git a/testing/pcl/APKBUILD b/testing/pcl/APKBUILD
index 618750d0531..c50e4d08c56 100644
--- a/testing/pcl/APKBUILD
+++ b/testing/pcl/APKBUILD
@@ -1,74 +1,105 @@
# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
+# Maintainer: Daniel Tobon <danieltobonco@gmail.com>
pkgname=pcl
-pkgver=1.8.1
-pkgrel=6
+pkgver=1.14.0
+pkgrel=1
+_gtestver=1.12.1
pkgdesc="Point Cloud Library (PCL)"
-url="https://github.com/PointCloudLibrary/pcl"
-arch="all !x86 !s390x !mips !mips64" # tests fails on x86 and s390x, blocked by eigen on mips
+url="https://pointclouds.org"
+arch="all !x86 !s390x" # tests fails on x86 and s390x
license="BSD-3-Clause"
-makedepends="cmake eigen-dev boost-dev flann-dev"
-subpackages="$pkgname-dev"
-_gtestver=1.8.0
-source="$pkgname-$pkgver.tar.gz::https://github.com/PointCloudLibrary/$pkgname/archive/$pkgname-$pkgver.tar.gz
- release-$_gtestver.tar.gz::https://github.com/google/googletest/archive/release-$_gtestver.tar.gz
- gcc8.patch"
-builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+depends_dev="
+ boost-dev
+ eigen-dev
+ flann-dev
+ freeglut-dev
+ hdf5-dev
+ libpcap-dev
+ libusb-dev
+ mesa-dev
+ qhull-dev
+ qhull-static
+ qt5-qtbase-dev
+ vtk-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/PointCloudLibrary/pcl/releases/download/pcl-$pkgver/source.tar.gz
+ gtest-release-$_gtestver.tar.gz::https://github.com/google/googletest/archive/release-$_gtestver.tar.gz
+ fix-broken-flags.patch
+ "
+builddir="$srcdir/pcl"
build() {
- mkdir build && cd build
-
- local disable_segtests=
case "$CARCH" in
- ppc64le | aarch64) disable_segtests="-DBUILD_tests_segmentation=OFF"
+ ppc64le|aarch64)
+ local disable_segtests="-DBUILD_tests_segmentation=OFF"
+ ;;
esac
# Five tests are disabled below. This is in keeping with PCL's own
# Appveyor configuration
# (https://github.com/PointCloudLibrary/pcl/blob/master/.appveyor.yml),
# and is due to a list of test failures that are documented in issues
# #1702, #1719, #1921, and #2136.
- cmake .. \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
-DWITH_CUDA=OFF \
-DWITH_DAVIDSDK=OFF \
-DWITH_DSSDK=OFF \
-DWITH_ENSENSO=OFF \
-DWITH_FZAPI=OFF \
- -DWITH_LIBUSB=OFF \
- -DWITH_OPENGL=OFF \
- -DWITH_OPENNI=OFF \
+ -DWITH_LIBUSB=ON \
+ -DWITH_OPENGL=ON \
-DWITH_OPENNI2=OFF \
- -DWITH_PCAP=OFF \
- -DWITH_PNG=OFF \
- -DWITH_QHULL=OFF \
- -DWITH_QT=OFF \
- -DWITH_VTK=OFF \
- -DBUILD_global_tests=ON \
- -DBUILD_examples=OFF \
- -DBUILD_tools=ON \
+ -DWITH_OPENNI=OFF \
+ -DWITH_PCAP=ON \
+ -DWITH_PNG=ON \
+ -DWITH_QHULL=ON \
+ -DWITH_QT=ON \
+ -DWITH_VTK=ON \
-DBUILD_apps=OFF \
+ -DBUILD_examples=OFF \
+ -DBUILD_global_tests="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_simulation=ON \
-DBUILD_tests_common=OFF \
-DBUILD_tests_features=OFF \
-DBUILD_tests_filters=OFF \
-DBUILD_tests_io=OFF \
- $disable_segtests \
-DBUILD_tests_registration=OFF \
- -DGTEST_SRC_DIR=$srcdir/googletest-release-$_gtestver/googletest \
- -DGTEST_INCLUDE_DIR=$srcdir/googletest-release-$_gtestver/googletest/include
- make
+ -DBUILD_tools=ON \
+ -DGTEST_SRC_DIR="$srcdir"/googletest-release-$_gtestver/googletest \
+ -DGTEST_INCLUDE_DIR="$srcdir"/googletest-release-$_gtestver/googletest/include \
+ -DVTK_RENDERING_BACKEND=OpenGL2 \
+ -DPCL_ENABLE_MARCHNATIVE=OFF \
+ -DPCL_ENABLE_AVX=OFF \
+ -DPCL_ENABLE_SSE=ON \
+ $disable_segtests
+ cmake --build build
+}
+
+dev() {
+ default_dev
+
+ amove usr/share
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
check() {
- cd "$builddir"/build
- ctest -E a_octree_test # Fails on drone-ci aarch64
+ cd build
+ ctest --output-on-failure
}
-sha512sums="9e7c87fb750a176712f08d215a906012c9e8174b687bbc8c08fa65de083b4468951bd8017b10409015d5eff0fc343885d2aae5c340346118b1a251af7bdd5cd7 pcl-1.8.1.tar.gz
-1dbece324473e53a83a60601b02c92c089f5d314761351974e097b2cf4d24af4296f9eb8653b6b03b1e363d9c5f793897acae1f0c7ac40149216035c4d395d9d release-1.8.0.tar.gz
-16b3ca34fe31a3a7c9b1eefe818e963eda483b8d18a40e766306aaa653dd5d6072cd5dacb16c49e8905309ba179d0defb90c42aad1a3fb6c2d9fbde9b12e9ebc gcc8.patch"
+sha512sums="
+bbcd15cf1ae620d46163c7639238bff34a871916d36d275fededbccca2bacd8da6ffda477607c4ef0eb795c140c5e1677b8239cbe2f7576f5ff92035c9c36b3f pcl-1.14.0.tar.gz
+a9104dc6c53747e36e7dd7bb93dfce51a558bd31b487a9ef08def095518e1296da140e0db263e0644d9055dbd903c0cb69380cb2322941dbfb04780ef247df9c gtest-release-1.12.1.tar.gz
+f866bf3c5eb8cf02b3531dff527f103b2f9c2bb454df6455b66e6d2f425e37d938f86efe7ba534d09a5f10a2830178e01853dc73769775d1faa9d049a5c5cc4b fix-broken-flags.patch
+"
diff --git a/testing/pcl/fix-broken-flags.patch b/testing/pcl/fix-broken-flags.patch
new file mode 100644
index 00000000000..cfea6d81a7f
--- /dev/null
+++ b/testing/pcl/fix-broken-flags.patch
@@ -0,0 +1,30 @@
+if any cxxflags are set it skips all the checks
+--
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 51879ed..b918570 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -101,7 +101,7 @@ endif()
+
+ # check for SSE flags
+ include("${PCL_SOURCE_DIR}/cmake/pcl_find_sse.cmake")
+-if(PCL_ENABLE_SSE AND "${CMAKE_CXX_FLAGS}" STREQUAL "${CMAKE_CXX_FLAGS_DEFAULT}")
++if(PCL_ENABLE_SSE)
+ PCL_CHECK_FOR_SSE()
+ endif()
+
+@@ -113,14 +113,12 @@ endif()
+
+ # ---[ Unix/Darwin/Windows specific flags
+ if(CMAKE_COMPILER_IS_GNUCXX)
+- if("${CMAKE_CXX_FLAGS}" STREQUAL "${CMAKE_CXX_FLAGS_DEFAULT}")
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7)
+ string(APPEND CMAKE_CXX_FLAGS " -Wabi=11")
+ else()
+ string(APPEND CMAKE_CXX_FLAGS " -Wabi")
+ endif()
+ string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra -fno-strict-aliasing ${SSE_FLAGS} ${AVX_FLAGS}")
+- endif()
+
+ if(PCL_WARNINGS_ARE_ERRORS)
+ string(APPEND CMAKE_CXX_FLAGS " -Werror -fno-strict-aliasing")
diff --git a/testing/pcl/gcc8.patch b/testing/pcl/gcc8.patch
deleted file mode 100644
index aec883a804c..00000000000
--- a/testing/pcl/gcc8.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From a0b3ce9ca5c69a945695c1c83dab7937a3d99b83 Mon Sep 17 00:00:00 2001
-From: Jochen Sprickerhof <git@jochen.sprickerhof.de>
-Date: Sat, 5 May 2018 23:58:13 +0200
-Subject: [PATCH] Dereference shared_ptr, fix for GCC8
-
----
- segmentation/include/pcl/segmentation/ground_plane_comparator.h | 2 +-
- .../include/pcl/segmentation/plane_coefficient_comparator.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/segmentation/include/pcl/segmentation/ground_plane_comparator.h b/segmentation/include/pcl/segmentation/ground_plane_comparator.h
-index e39354d7fd..f96f38bfb5 100644
---- a/segmentation/include/pcl/segmentation/ground_plane_comparator.h
-+++ b/segmentation/include/pcl/segmentation/ground_plane_comparator.h
-@@ -147,7 +147,7 @@ namespace pcl
- const std::vector<float>&
- getPlaneCoeffD () const
- {
-- return (plane_coeff_d_);
-+ return (*plane_coeff_d_);
- }
-
- /** \brief Set the tolerance in radians for difference in normal direction between neighboring points, to be considered part of the same plane.
-diff --git a/segmentation/include/pcl/segmentation/plane_coefficient_comparator.h b/segmentation/include/pcl/segmentation/plane_coefficient_comparator.h
-index 9c94813727..a21725a40c 100644
---- a/segmentation/include/pcl/segmentation/plane_coefficient_comparator.h
-+++ b/segmentation/include/pcl/segmentation/plane_coefficient_comparator.h
-@@ -141,7 +141,7 @@ namespace pcl
- const std::vector<float>&
- getPlaneCoeffD () const
- {
-- return (plane_coeff_d_);
-+ return (*plane_coeff_d_);
- }
-
- /** \brief Set the tolerance in radians for difference in normal direction between neighboring points, to be considered part of the same plane.
diff --git a/testing/pcsc-perl/APKBUILD b/testing/pcsc-perl/APKBUILD
index 05bc2fee096..b83c79b9ff6 100644
--- a/testing/pcsc-perl/APKBUILD
+++ b/testing/pcsc-perl/APKBUILD
@@ -1,29 +1,28 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=pcsc-perl
-pkgver=1.4.14
-pkgrel=2
+pkgver=1.4.16
+pkgrel=0
pkgdesc="Perl library allows to communicate with a smart card using PC/SC"
-url="http://ludovic.rousseau.free.fr/softwares/pcsc-perl/"
+url="https://pcsc-perl.apdu.fr/"
arch="all"
license="GPL-2.0"
depends="perl"
makedepends="pcsc-lite-dev perl-dev"
-install=""
subpackages="$pkgname-doc"
-source="http://ludovic.rousseau.free.fr/softwares/pcsc-perl/pcsc-perl-$pkgver.tar.bz2"
-builddir="$srcdir/pcsc-perl-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/LudovicRousseau/pcsc-perl/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests available
build() {
- cd "$builddir"
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="202aca1c122c8b91340411a4930f6d0d6f3d439d1783b7ad5e2a727bb015704045d66b5b5ba51f567672a6256606ad26e8390b9f243e329d6ccd05146edc229c pcsc-perl-1.4.14.tar.bz2"
+sha512sums="
+c91a742a220e391ac5d656850751241da1cc26b35680e949ebdc22d83ee7568207567d6af5daffc378052420bbc707cbc9e970250560667630e24fe3d5d34a8a pcsc-perl-1.4.16.tar.gz
+"
diff --git a/testing/pcsc-tools/APKBUILD b/testing/pcsc-tools/APKBUILD
index b548aef587a..4d67d0b096f 100644
--- a/testing/pcsc-tools/APKBUILD
+++ b/testing/pcsc-tools/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=pcsc-tools
-pkgver=1.5.6
+pkgver=1.7.1
pkgrel=0
pkgdesc="tools to test a PC/SC driver, card or reader or send commands"
-url="http://ludovic.rousseau.free.fr/softwares/pcsc-tools/"
+url="https://pcsc-tools.apdu.fr/"
arch="all"
license="GPL-2.0-or-later"
depends="pcsc-perl"
makedepends="pcsc-lite-dev"
subpackages="$pkgname-doc"
-source="http://ludovic.rousseau.free.fr/softwares/pcsc-tools/pcsc-tools-$pkgver.tar.bz2"
+source="https://pcsc-tools.apdu.fr/pcsc-tools-$pkgver.tar.bz2"
build() {
./configure \
@@ -31,4 +31,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="94076ed5af698afcec05da9645d7108c02c110fd0ee5efecbd8e0c7eb5ed9a55ee857d23b79ab2ccb93847f8a36f996fa9d521d999395f63274d4bf1d9cf3d26 pcsc-tools-1.5.6.tar.bz2"
+sha512sums="
+fe60610122d05f97edf3462c9382b82c31ee75f1851db2d88088ebd378ea3f54b3112b1c1f59dd8315806f33b822e40f96d7bc186b8c5999ef339711f91136c0 pcsc-tools-1.7.1.tar.bz2
+"
diff --git a/testing/pcsx2/APKBUILD b/testing/pcsx2/APKBUILD
new file mode 100644
index 00000000000..ee4938ada66
--- /dev/null
+++ b/testing/pcsx2/APKBUILD
@@ -0,0 +1,164 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=pcsx2
+pkgver=1.7.4819
+pkgrel=4
+_fastfloat=v5.2.0
+_glslang=11.12.0
+_gtest=v1.13.0
+_libchdr=54bfb871ccae31903b95a8feb7f2bf7121f304be
+_rcheevos=v10.7.1
+_patches=8519fdb0b28672cc4fd6ff3cacca5133a8e310bc
+pkgdesc="Playstation 2 emulator"
+url="https://github.com/PCSX2/pcsx2"
+# upstream limits
+arch="x86_64"
+license="GPL-3.0-or-later AND LGPL-3.0-or-later"
+makedepends="
+ alsa-lib-dev
+ clang
+ cmake
+ curl-dev
+ eudev-dev
+ extra-cmake-modules
+ ffmpeg-dev
+ glslang-dev
+ libaio-dev
+ libpcap-dev
+ libpng-dev
+ libzip-dev
+ lld
+ llvm
+ pulseaudio-dev
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ rapidyaml-dev
+ samurai
+ sdl2-dev
+ vulkan-headers
+ vulkan-loader-dev
+ wayland-dev
+ zip
+ zstd-dev
+ "
+checkdepends="perl"
+source="https://github.com/PCSX2/pcsx2/archive/refs/tags/v$pkgver/pcsx2-v$pkgver.tar.gz
+ fastfloat-$_fastfloat.tar.gz::https://github.com/fastfloat/fast_float/archive/$_fastfloat.tar.gz
+ glslang-$_glslang.tar.gz::https://github.com/KhronosGroup/glslang/archive/$_glslang.tar.gz
+ gtest-$_gtest.tar.gz::https://github.com/google/googletest/archive/$_gtest.tar.gz
+ libchdr-$_libchdr.tar.gz::https://github.com/rtissera/libchdr/archive/$_libchdr.tar.gz
+ rcheevos-$_rcheevos.tar.gz::https://github.com/RetroAchievements/rcheevos/archive/$_rcheevos.tar.gz
+ pcsx2_patches-$_patches.tar.gz::https://github.com/PCSX2/pcsx2_patches/archive/$_patches.tar.gz
+ fmt-9.1.0.tar.gz::https://github.com/fmtlib/fmt/archive/refs/tags/9.1.0.tar.gz
+ fast-float.patch
+ fix-lfs64.patch
+ unbundle-vulkan.patch
+ ryml.patch
+ version.patch
+ zstd.patch
+
+ PCSX2.desktop
+ "
+
+prepare() {
+ default_prepare
+
+ rmdir 3rdparty/glslang/glslang
+ rmdir 3rdparty/gtest
+ rmdir 3rdparty/libchdr/libchdr
+ rmdir 3rdparty/rcheevos/rcheevos
+ rmdir 3rdparty/fmt/fmt
+
+ rm -r 3rdparty/ffmpeg
+
+ ln -sfv "$srcdir"/glslang-${_glslang/v/} \
+ "$builddir"/3rdparty/glslang/glslang
+ ln -sfv "$srcdir"/googletest-${_gtest/v/} \
+ "$builddir"/3rdparty/gtest
+ ln -sfv "$srcdir"/libchdr-$_libchdr \
+ "$builddir"/3rdparty/libchdr/libchdr
+ ln -sfv "$srcdir"/rcheevos-${_rcheevos/v/} \
+ "$builddir"/3rdparty/rcheevos/rcheevos
+
+ ln -sfv "$srcdir"/fast_float-${_fastfloat/v/} \
+ "$builddir"/3rdparty/fast_float
+
+ ln -sfv "$srcdir"/fmt-9.1.0 \
+ "$builddir"/3rdparty/fmt/fmt
+ sed -i \
+ -e "s|@@VERSION@@|$pkgver|g" \
+ -e "s|@@PKGREL@@|$pkgrel|g" \
+ cmake/Pcsx2Utils.cmake
+}
+
+build() {
+ export CC=clang
+ export CXX=clang++
+ export CFLAGS="$CFLAGS -flto=thin"
+ export CXXFLAGS="$CXXFLAGS -flto=thin -Wno-macro-redefined -Wno-deprecated-declarations"
+ export LDFLAGS="$LDFLAGS -fuse-ld=lld -Wl,--icf=safe,--gc-sections"
+
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DDISABLE_ADVANCE_SIMD=ON \
+ -DDISABLE_BUILD_DATE=ON \
+ -DENABLE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DCUBEB_API=ON \
+ -DUSE_ACHIEVEMENTS=ON \
+ -DUSE_DISCORD_PRESENCE=OFF \
+ -DUSE_LINKED_FFMPEG=ON \
+ -DUSE_SYSTEM_LIBS=ON \
+ -DUSE_VTUNE=OFF \
+ -DUSE_VULKAN=ON \
+ -DQT_BUILD=ON \
+ -DWAYLAND_API=ON \
+ -DX11_API=ON \
+ -DUSE_SYSTEM_FMT=OFF
+
+ cmake --build build --target all "$(want_check && echo unittests)"
+
+ cd "$srcdir"/pcsx2_patches-$_patches/patches/
+ zip -9 "$builddir"/patches.zip ./*.pnach
+}
+
+check() {
+ ctest --test-dir build/tests/ctest --output-on-failure
+}
+
+package() {
+ install -Dm644 bin/resources/icons/AppIconLarge.png \
+ "$pkgdir"/usr/share/icons/hicolor/256x256/apps/PCSX2.png
+ install -Dm644 "$srcdir"/PCSX2.desktop \
+ -t "$pkgdir"/usr/share/applications/
+
+ mkdir -p "$pkgdir"/usr/lib/
+
+ rm -f build/bin/*test*
+ cp -a build/bin "$pkgdir"/usr/lib/PCSX2
+
+ install -Dm644 patches.zip -t "$pkgdir"/usr/lib/PCSX2/resources/
+
+ install -Dm755 /dev/stdin "$pkgdir"/usr/bin/pcsx2 <<-EOF
+ #!/bin/sh
+ exec /usr/lib/PCSX2/pcsx2-qt "\$@"
+ EOF
+}
+
+sha512sums="
+2aee3f634e866561fa1c4a54e2f209df7fdc98585ba42de9d0e833fd2c261615c354dfae212b46fe99a97b3766362e43fd15ffb33d7f57e428d8e00715e35da3 pcsx2-v1.7.4819.tar.gz
+c703c7cba3c69775317c66a62ce145646fd7d3d063124501e3d6a7deebb8c62c14a2ccdffed18de2d73d9d3a8ba2061ef1d34cc780ee0b6d607935d5f1b1de81 fastfloat-v5.2.0.tar.gz
+fd955f9912551668056dfe52835eef11e5dc0bf0d25b2d961a31f684adbd63bc6380759944c1921cfd63d359a58c7cc3a4a4d5eea69fa1b050f58960e5101271 glslang-11.12.0.tar.gz
+70c0cfb1b4147bdecb467ecb22ae5b5529eec0abc085763213a796b7cdbd81d1761d12b342060539b936fa54f345d33f060601544874d6213fdde79111fa813e gtest-v1.13.0.tar.gz
+ce993e00b78e972bb1c5745594213254966ca1ae43cc11917e22355d95c056e4f6b067f201cbeadce9ba75567063e45d459ed2564acb72fec5db4c0708f751b1 libchdr-54bfb871ccae31903b95a8feb7f2bf7121f304be.tar.gz
+65c1c65328974afb21962ed0a6b73702b0eeefb93d3ca3a1d1d517864cc71f6d154578bd19df153da871791b5bd511e69f7f4db1a2178e14e9bc0df7d25b17e9 rcheevos-v10.7.1.tar.gz
+a31b379639b1db97c08034004fe1f2d1ca66b6bbce3c5688da487b2028303bb6fcbc8229f064e132cf18a711ac6248805b8ce6368305cc302a7956ca70355a38 pcsx2_patches-8519fdb0b28672cc4fd6ff3cacca5133a8e310bc.tar.gz
+a18442042722dd48e20714ec034a12fcc0576c9af7be5188586970e2edf47529825bdc99af366b1d5891630c8dbf6f63bfa9f012e77ab3d3ed80d1a118e3b2be fmt-9.1.0.tar.gz
+20624d3e46b956a5f0339b569891824b7a9321f4395c572393d42f7520d93b30b6e6bb8af90b5d6c52cbcaf2d82eb386bec3943532c5f1d8303c8b50938cd89b fast-float.patch
+e6e7964e36274372c3b9c67acd66a29b8ae7f4be1503959deb8284d427cddb5ea5bb534aad35f53073e8983bcb319d90b1127fe5dd6b8bd6bb1f3f8f306fcf0c fix-lfs64.patch
+461f184cc3b5c76539247db66fb0a364edbddc3d434869ff1641e723c6d962115cfa190be5e95205f31108ed47be0db6abf54c92d9875589ac978e73a29a379c unbundle-vulkan.patch
+151db2f789bd19937b7c78ac883388d672af0f5c38693b187311dd43d699703a8b36d9ace6d8db40e19d6cb8549a9b14a0842c4217c7eddfd547fc61f05c045c ryml.patch
+113f0e80c7975985d65c90acd2b4c9a4487d0c9f240178500feac512808b836d6ae36343895a4ef4f16d91364eeee4f0a3aa4ecc17708facdaf0cb430b5e9a71 version.patch
+8a55a976188f53d8cab18a78cecbc2d34692411801126fb9432874ba26ef0245819d2980355beed4763b8496a2497330902ad5de7c288a3acb8837b305fe4a04 zstd.patch
+bdc23c2773e1b963b06c0a51e3685b0a86db7dfe5cb2dd3e0cad4dd6f72aab2abef7eb421c8fb0f5303fae5c7ffb265eaa3a6e470998943aed54527bbb4d676c PCSX2.desktop
+"
diff --git a/testing/pcsx2/PCSX2.desktop b/testing/pcsx2/PCSX2.desktop
new file mode 100644
index 00000000000..46a90e612c9
--- /dev/null
+++ b/testing/pcsx2/PCSX2.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Version=1.0
+Terminal=false
+Type=Application
+Name=PCSX2
+StartupWMClass=PCSX2
+GenericName=PlayStation 2 Emulator
+GenericName[zh_CN]=PlayStation 2 模拟器
+Comment=Sony PlayStation 2 emulator
+Comment[ru]=ЭмулÑтор Sony PlayStation 2
+Comment[zh_CN]=索尼 PlayStation 2 模拟器
+Exec=pcsx2
+Icon=PCSX2
+Keywords=game;emulator;
+Categories=Game;Emulator;
diff --git a/testing/pcsx2/fast-float.patch b/testing/pcsx2/fast-float.patch
new file mode 100644
index 00000000000..28f1163bead
--- /dev/null
+++ b/testing/pcsx2/fast-float.patch
@@ -0,0 +1,14 @@
+we use system ryml so the checkouts are missing, just pull it directly.
+diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
+index ea84fd6..33b6250 100644
+--- a/cmake/SearchForStuff.cmake
++++ b/cmake/SearchForStuff.cmake
+@@ -177,7 +177,7 @@ add_subdirectory(3rdparty/libchdr EXCLUDE_FROM_ALL)
+ # for now.
+ #add_subdirectory(3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float EXCLUDE_FROM_ALL)
+ add_library(fast_float INTERFACE)
+-target_include_directories(fast_float INTERFACE 3rdparty/rapidyaml/rapidyaml/ext/c4core/src/c4/ext/fast_float/include)
++target_include_directories(fast_float INTERFACE 3rdparty/fast_float/include)
+
+ add_subdirectory(3rdparty/jpgd EXCLUDE_FROM_ALL)
+ add_subdirectory(3rdparty/simpleini EXCLUDE_FROM_ALL)
diff --git a/testing/pcsx2/fix-lfs64.patch b/testing/pcsx2/fix-lfs64.patch
new file mode 100644
index 00000000000..98270bbe736
--- /dev/null
+++ b/testing/pcsx2/fix-lfs64.patch
@@ -0,0 +1,118 @@
+this also needs -D_FILE_OFFSET_BITS=64,
+but for musl specifically that doesn't matter
+--
+diff --git a/common/FileSystem.cpp b/common/FileSystem.cpp
+index a700e68..c8327b9 100644
+--- a/common/FileSystem.cpp
++++ b/common/FileSystem.cpp
+@@ -1488,17 +1488,10 @@ static u32 RecursiveFindFiles(const char* OriginPath, const char* ParentPath, co
+ FILESYSTEM_FIND_DATA outData;
+ outData.Attributes = 0;
+
+-#if defined(__HAIKU__) || defined(__APPLE__) || defined(__FreeBSD__)
+ struct stat sDir;
+ if (stat(full_path.c_str(), &sDir) < 0)
+ continue;
+
+-#else
+- struct stat64 sDir;
+- if (stat64(full_path.c_str(), &sDir) < 0)
+- continue;
+-#endif
+-
+ if (S_ISDIR(sDir.st_mode))
+ {
+ if (Flags & FILESYSTEM_FIND_RECURSIVE)
+@@ -1601,13 +1594,8 @@ bool FileSystem::StatFile(const char* path, FILESYSTEM_STAT_DATA* sd)
+ return false;
+
+ // stat file
+-#if defined(__HAIKU__) || defined(__APPLE__) || defined(__FreeBSD__)
+ struct stat sysStatData;
+ if (stat(path, &sysStatData) < 0)
+-#else
+- struct stat64 sysStatData;
+- if (stat64(path, &sysStatData) < 0)
+-#endif
+ return false;
+
+ // parse attributes
+@@ -1634,13 +1622,8 @@ bool FileSystem::StatFile(std::FILE* fp, FILESYSTEM_STAT_DATA* sd)
+ return false;
+
+ // stat file
+-#if defined(__HAIKU__) || defined(__APPLE__) || defined(__FreeBSD__)
+ struct stat sysStatData;
+ if (fstat(fd, &sysStatData) < 0)
+-#else
+- struct stat64 sysStatData;
+- if (fstat64(fd, &sysStatData) < 0)
+-#endif
+ return false;
+
+ // parse attributes
+@@ -1667,13 +1650,8 @@ bool FileSystem::FileExists(const char* path)
+ return false;
+
+ // stat file
+-#if defined(__HAIKU__) || defined(__APPLE__) || defined(__FreeBSD__)
+ struct stat sysStatData;
+ if (stat(path, &sysStatData) < 0)
+-#else
+- struct stat64 sysStatData;
+- if (stat64(path, &sysStatData) < 0)
+-#endif
+ return false;
+
+ if (S_ISDIR(sysStatData.st_mode))
+@@ -1689,13 +1667,8 @@ bool FileSystem::DirectoryExists(const char* path)
+ return false;
+
+ // stat file
+-#if defined(__HAIKU__) || defined(__APPLE__) || defined(__FreeBSD__)
+ struct stat sysStatData;
+ if (stat(path, &sysStatData) < 0)
+-#else
+- struct stat64 sysStatData;
+- if (stat64(path, &sysStatData) < 0)
+-#endif
+ return false;
+
+ if (S_ISDIR(sysStatData.st_mode))
+diff --git a/common/Linux/LnxHostSys.cpp b/common/Linux/LnxHostSys.cpp
+index 5b63cda..2ed3d81 100644
+--- a/common/Linux/LnxHostSys.cpp
++++ b/common/Linux/LnxHostSys.cpp
+@@ -243,12 +243,7 @@ void* HostSys::CreateSharedMemory(const char* name, size_t size)
+ // we're not going to be opening this mapping in other processes, so remove the file
+ shm_unlink(name);
+
+- // ensure it's the correct size
+-#if !defined(__APPLE__) && !defined(__FreeBSD__)
+- if (ftruncate64(fd, static_cast<off64_t>(size)) < 0)
+-#else
+ if (ftruncate(fd, static_cast<off_t>(size)) < 0)
+-#endif
+ {
+ std::fprintf(stderr, "ftruncate64(%zu) failed: %d\n", size, errno);
+ return nullptr;
+diff --git a/pcsx2/Linux/LnxFlatFileReader.cpp b/pcsx2/Linux/LnxFlatFileReader.cpp
+index 2ecc9f2..dd1f045 100644
+--- a/pcsx2/Linux/LnxFlatFileReader.cpp
++++ b/pcsx2/Linux/LnxFlatFileReader.cpp
+@@ -100,15 +100,9 @@ void FlatFileReader::Close(void)
+
+ uint FlatFileReader::GetBlockCount(void) const
+ {
+-#if defined(__HAIKU__) || defined(__APPLE__) || defined(__FreeBSD__)
+ struct stat sysStatData;
+ if (fstat(m_fd, &sysStatData) < 0)
+ return 0;
+-#else
+- struct stat64 sysStatData;
+- if (fstat64(m_fd, &sysStatData) < 0)
+- return 0;
+-#endif
+
+ return (int)(sysStatData.st_size / m_blocksize);
+ }
diff --git a/testing/pcsx2/ryml.patch b/testing/pcsx2/ryml.patch
new file mode 100644
index 00000000000..881c545b298
--- /dev/null
+++ b/testing/pcsx2/ryml.patch
@@ -0,0 +1,13 @@
+diff --git a/pcsx2/GameDatabase.cpp b/pcsx2/GameDatabase.cpp
+index ad6a69f..542f95b 100644
+--- a/pcsx2/GameDatabase.cpp
++++ b/pcsx2/GameDatabase.cpp
+@@ -1038,7 +1038,7 @@ static bool parseHashDatabaseEntry(const c4::yml::NodeRef& node)
+ node["serial"] >> entry.serial;
+
+ const u32 index = static_cast<u32>(s_hash_database.size());
+- for (const ryml::NodeRef& n : node["hashes"].children())
++ for (const auto& n : node["hashes"].children())
+ {
+ if (!n.is_map() || !n.has_child("size") || !n.has_child("md5"))
+ {
diff --git a/testing/pcsx2/unbundle-vulkan.patch b/testing/pcsx2/unbundle-vulkan.patch
new file mode 100644
index 00000000000..46b800b9274
--- /dev/null
+++ b/testing/pcsx2/unbundle-vulkan.patch
@@ -0,0 +1,25 @@
+diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
+index 5c81d98..746ed49 100644
+--- a/cmake/SearchForStuff.cmake
++++ b/cmake/SearchForStuff.cmake
+@@ -187,7 +187,6 @@ endif()
+
+ if(USE_VULKAN)
+ add_subdirectory(3rdparty/glslang EXCLUDE_FROM_ALL)
+- add_subdirectory(3rdparty/vulkan-headers EXCLUDE_FROM_ALL)
+ endif()
+
+ if(CUBEB_API)
+diff --git a/pcsx2/CMakeLists.txt b/pcsx2/CMakeLists.txt
+index 2fe9606..9b9fc3f 100644
+--- a/pcsx2/CMakeLists.txt
++++ b/pcsx2/CMakeLists.txt
+@@ -664,7 +664,7 @@ if(USE_VULKAN)
+ GS/Renderers/Vulkan/VKTexture.h
+ GS/Renderers/Vulkan/VKUtil.h
+ )
+- target_link_libraries(PCSX2_FLAGS INTERFACE Vulkan-Headers glslang)
++ target_link_libraries(PCSX2_FLAGS INTERFACE glslang)
+ endif()
+
+ set(pcsx2GSMetalShaders
diff --git a/testing/pcsx2/version.patch b/testing/pcsx2/version.patch
new file mode 100644
index 00000000000..d131825e7b6
--- /dev/null
+++ b/testing/pcsx2/version.patch
@@ -0,0 +1,23 @@
+diff --git a/cmake/Pcsx2Utils.cmake b/cmake/Pcsx2Utils.cmake
+index 78a5ba4..eccd6d9 100644
+--- a/cmake/Pcsx2Utils.cmake
++++ b/cmake/Pcsx2Utils.cmake
+@@ -36,10 +36,14 @@ function(detectOperatingSystem)
+ endfunction()
+
+ function(get_git_version_info)
+- set(PCSX2_WC_TIME 0)
+- set(PCSX2_GIT_REV "")
+- set(PCSX2_GIT_TAG "")
+- set(PCSX2_GIT_HASH "")
++ set(PCSX2_WC_TIME 0 PARENT_SCOPE)
++ set(PCSX2_GIT_REV "" PARENT_SCOPE)
++ set(PCSX2_GIT_TAG "" PARENT_SCOPE)
++ set(PCSX2_GIT_HASH "" PARENT_SCOPE)
++ set(PCSX2_VERSION_LONG "@@VERSION@@-alpine-r@@PKGREL@@" PARENT_SCOPE)
++ set(PCSX2_VERSION_SHORT "@@VERSION@@" PARENT_SCOPE)
++ return()
++
+ if (GIT_FOUND AND EXISTS ${PROJECT_SOURCE_DIR}/.git)
+ EXECUTE_PROCESS(WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} show -s --format=%ci HEAD
+ OUTPUT_VARIABLE PCSX2_WC_TIME
diff --git a/testing/pcsx2/zstd.patch b/testing/pcsx2/zstd.patch
new file mode 100644
index 00000000000..e4977c7e022
--- /dev/null
+++ b/testing/pcsx2/zstd.patch
@@ -0,0 +1,10 @@
+--- a/cmake/SearchForStuff.cmake
++++ b/cmake/SearchForStuff.cmake
+@@ -114,5 +114,2 @@
+-find_optional_system_library(zstd 3rdparty/zstd 1.4.5)
+-if (${zstd_TYPE} STREQUAL System)
+- alias_library(Zstd::Zstd zstd::libzstd_shared)
+- alias_library(pcsx2-zstd zstd::libzstd_shared)
+-endif()
++pkg_check_modules(zstd REQUIRED IMPORTED_TARGET libzstd)
++alias_library(Zstd::Zstd PkgConfig::zstd)
diff --git a/testing/pcsxr/APKBUILD b/testing/pcsxr/APKBUILD
deleted file mode 100644
index b9e5e302e6c..00000000000
--- a/testing/pcsxr/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Cág <ca6c@bitmessage.ch>
-# Maintainer
-pkgname=pcsxr
-pkgver=1.9.95
-pkgrel=1
-pkgdesc="Sony PlayStation emulator"
-url="https://pcsxr.codeplex.com/"
-arch="all !ppc64le !mips !mips64" # blocked by libglade-dev on mips
-license="GPL-3.0-or-later"
-depends="libtxc_dxtn"
-makedepends="autoconf automake libglade-dev libtool gtk+3.0-dev sdl-dev mesa-dev
- libxv-dev libxtst-dev nasm libxxf86vm-dev libcdio-dev"
-subpackages="$pkgname-doc $pkgname-lang"
-source="
- ${pkgname}-${pkgver}.tar.gz::https://github.com/frealgagu/PCSX-Reloaded/archive/${pkgver}.tar.gz
- fix-assert-64bit.patch
- fix-undefined-operations.patch
- fix-uncompress2.patch
- fix-musl.patch
- "
-builddir="$srcdir/PCSX-Reloaded-$pkgver/pcsxr"
-
-prepare() {
- default_prepare
- mkdir include
- autoreconf -fi
-}
-
-build() {
- export CFLAGS="$CFLAGS -O2"
- ./configure \
- --prefix=/usr \
- --enable-opengl \
- --enable-libcdio
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="950f5776f1cf11d31c44cb5f47ab2480a4302ee01af5fa6a3bac0a96936ac280649c9456d78ddf75c038a43977114a780b259467cee5da7f84b8802ca1ec86a1 pcsxr-1.9.95.tar.gz
-ddd349a5e7ad5fea809596ccf44e4963992a4a9f96316db4d3c8211bc9d22ef3830115cd7b3b09d1c4c05e6419d21b2e81695d876352ea00128728709f66d58e fix-assert-64bit.patch
-1918231c3411eb2cedc3d3766d48bd766ee7aaaae34b964aec791f1e50851c7b367eb823cf0434e26e7ea8928becb30f7fcc88d27bf990072e9f651637d1f44e fix-undefined-operations.patch
-62593bc0c9422b025fdbcf04bbeff49fa195c8807cc44bc74555ad4d970e07054427299aed65bed0f75487c98e3a68ae78be86eb77822b1cf54ba26ba0e3e5ba fix-uncompress2.patch
-af69e67b12d3398248dab36f79552bff59a8246ea4aecd66f8e0621b7a1c3f5c5f03a16dc9f91b6b520290b5f688cbf7a3d9f3dbd4819f5f89dd1a5c20ccfb78 fix-musl.patch"
diff --git a/testing/pcsxr/fix-assert-64bit.patch b/testing/pcsxr/fix-assert-64bit.patch
deleted file mode 100644
index beb35b598da..00000000000
--- a/testing/pcsxr/fix-assert-64bit.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pcsxr/libpcsxcore/ix86_64/ix86-64.c b/pcsxr/libpcsxcore/ix86_64/ix86-64.c
-index f48b742e..c69192e0 100644
---- a/libpcsxcore/ix86_64/ix86-64.c
-+++ b/libpcsxcore/ix86_64/ix86-64.c
-@@ -231,7 +231,6 @@ void x86SetJ8( u8* j8 )
-
- if ( jump > 0x7f ) {
- SysPrintf( "j8 greater than 0x7f!!\n" );
-- assert(0);
- }
- *j8 = (u8)jump;
- }
-
diff --git a/testing/pcsxr/fix-musl.patch b/testing/pcsxr/fix-musl.patch
deleted file mode 100644
index cb5a18d7dc5..00000000000
--- a/testing/pcsxr/fix-musl.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/plugins/dfinput/pad.c b/plugins/dfinput/pad.c
-index bd3aef7..2a01910 100644
---- a/plugins/dfinput/pad.c
-+++ b/plugins/dfinput/pad.c
-@@ -16,6 +16,8 @@
- * along with this program; if not, see <http://www.gnu.org/licenses>.
- */
-
-+#include <fcntl.h>
-+
- #include "pad.h"
- #if !SDL_VERSION_ATLEAST(2,0,0) && defined(__linux__)
- #include <linux/input.h>
-
diff --git a/testing/pcsxr/fix-uncompress2.patch b/testing/pcsxr/fix-uncompress2.patch
deleted file mode 100644
index 439f2c5adf0..00000000000
--- a/testing/pcsxr/fix-uncompress2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/pcsxr/libpcsxcore/cdriso.c b/pcsxr/libpcsxcore/cdriso.c
-index b7eedea2..8ad16d15 100644
---- a/libpcsxcore/cdriso.c
-+++ b/libpcsxcore/cdriso.c
-@@ -1146,7 +1146,7 @@ static int cdread_sub_mixed(FILE *f, unsigned int base, void *dest, int sector)
- return ret;
- }
-
--static int uncompress2(void *out, unsigned long *out_size, void *in, unsigned long in_size)
-+static int uncompress2_internal(void *out, unsigned long *out_size, void *in, unsigned long in_size)
- {
- static z_stream z;
- int ret = 0;
-@@ -1225,7 +1225,7 @@ static int cdread_compressed(FILE *f, unsigned int base, void *dest, int sector)
- if (is_compressed) {
- cdbuffer_size_expect = sizeof(compr_img->buff_raw[0]) << compr_img->block_shift;
- cdbuffer_size = cdbuffer_size_expect;
-- ret = uncompress2(compr_img->buff_raw[0], &cdbuffer_size, compr_img->buff_compressed, size);
-+ ret = uncompress2_internal(compr_img->buff_raw[0], &cdbuffer_size, compr_img->buff_compressed, size);
- if (ret != 0) {
- SysPrintf("uncompress failed with %d for block %d, sector %d\n",
- ret, block, sector);
-
diff --git a/testing/pcsxr/fix-undefined-operations.patch b/testing/pcsxr/fix-undefined-operations.patch
deleted file mode 100644
index cd15906a02d..00000000000
--- a/testing/pcsxr/fix-undefined-operations.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-diff --git a/pcsxr/plugins/peopsxgl/texture.c b/pcsxr/plugins/peopsxgl/texture.c
-index 8d8fb41b..0d313b97 100644
---- a/plugins/peopsxgl/texture.c
-+++ b/plugins/peopsxgl/texture.c
-@@ -1002,7 +1002,10 @@ void LoadStretchPackedWndTexturePage(int pageid, int mode, short cx, short cy)
- if(ldy)
- {ldy--;
- for(TXU=g_x1;TXU<=g_x2;TXU++)
-- *ta++=*(ta-(g_x2-g_x1));
-+ {
-+ *ta=*(ta-(g_x2-g_x1));
-+ ta++;
-+ }
- }
- }
-
-@@ -1079,7 +1082,10 @@ void LoadStretchPackedWndTexturePage(int pageid, int mode, short cx, short cy)
- if(ldy)
- {ldy--;
- for(TXU=g_x1;TXU<=g_x2;TXU++)
-- *ta++=*(ta-(g_x2-g_x1));
-+ {
-+ *ta=*(ta-(g_x2-g_x1));
-+ ta++;
-+ }
- }
-
- }
-@@ -1204,7 +1210,10 @@ void LoadStretchWndTexturePage(int pageid, int mode, short cx, short cy)
- if(ldy)
- {ldy--;
- for(TXU=g_x1;TXU<=g_x2;TXU++)
-- *ta++=*(ta-(g_x2-g_x1));
-+ {
-+ *ta=*(ta-(g_x2-g_x1));
-+ ta++;
-+ }
- }
- }
-
-@@ -1288,7 +1297,10 @@ void LoadStretchWndTexturePage(int pageid, int mode, short cx, short cy)
- if(ldy)
- {ldy--;
- for(TXU=g_x1;TXU<=g_x2;TXU++)
-- *ta++=*(ta-(g_x2-g_x1));
-+ {
-+ *ta=*(ta-(g_x2-g_x1));
-+ ta++;
-+ }
- }
-
- }
-@@ -2247,14 +2259,19 @@ GLuint LoadTextureMovie(void)
- lu=*((uint32_t *)pD);pD+=3;
- *ta++=XMBLUE(lu)|XMGREEN(lu)|XMRED(lu)|1;
- }
-- *ta++=*(ta-1);
-+ *ta=*(ta-1);
-+ ta++;
- }
- if(b_Y)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0+1;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-- *ta++=*(ta-1);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
-+ *ta=*(ta-1);
-+ ta++;
- }
- }
- else
-@@ -2273,7 +2290,10 @@ GLuint LoadTextureMovie(void)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
- }
- }
- }
-@@ -2296,14 +2316,19 @@ GLuint LoadTextureMovie(void)
- *ta++=((c&0x1f)<<11)|((c&0x3e0)<<1)|((c&0x7c00)>>9)|1;
- }
-
-- *ta++=*(ta-1);
-+ *ta=*(ta-1);
-+ ta++;
- }
- if(b_Y)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0+1;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-- *ta++=*(ta-1);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
-+ *ta=*(ta-1);
-+ ta++;
- }
- }
- else
-@@ -2321,7 +2346,10 @@ GLuint LoadTextureMovie(void)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
- }
- }
- }
-@@ -2347,14 +2375,19 @@ GLuint LoadTextureMovie(void)
- *ta++=*((uint32_t *)pD)|0xff000000;
- pD+=3;
- }
-- *ta++=*(ta-1);
-+ *ta=*(ta-1);
-+ ta++;
- }
- if(b_Y)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0+1;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-- *ta++=*(ta-1);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
-+ *ta=*(ta-1);
-+ ta++;
- }
- }
- else
-@@ -2373,7 +2406,10 @@ GLuint LoadTextureMovie(void)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
- }
- }
- }
-@@ -2394,15 +2430,20 @@ GLuint LoadTextureMovie(void)
- startxy=((1024)*column)+xrMovieArea.x0;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
- *ta++=LTCOL(psxVuw[startxy++]|0x8000);
-- *ta++=*(ta-1);
-+ *ta=*(ta-1);
-+ ta++;
- }
-
- if(b_Y)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0+1;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-- *ta++=*(ta-1);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
-+ *ta=*(ta-1);
-+ ta++;
- }
- }
- else
-@@ -2418,7 +2459,10 @@ GLuint LoadTextureMovie(void)
- {
- dx=xrMovieArea.x1-xrMovieArea.x0;
- for(row=xrMovieArea.x0;row<xrMovieArea.x1;row++)
-- *ta++=*(ta-dx);
-+ {
-+ *ta=*(ta-dx);
-+ ta++;
-+ }
- }
- }
- }
-
diff --git a/testing/pdal-python-plugins/APKBUILD b/testing/pdal-python-plugins/APKBUILD
new file mode 100644
index 00000000000..0559605a6e3
--- /dev/null
+++ b/testing/pdal-python-plugins/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Brian Vuyk <bvuyk@sama.com>
+# Maintainer: Brian Vuyk <bvuyk@sama.com>
+pkgname=pdal-python-plugins
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="Supports embedding Python in PDAL pipelines with the readers.numpy and filters.python drivers."
+url="https://github.com/PDAL/python-plugins"
+arch="aarch64 armhf armv7 ppc64le riscv64 x86 x86_64" # Exclude s390x due to test failures.
+license="BSD-3-Clause"
+depends="python3 py3-numpy"
+checkdepends="pdal"
+makedepends="cmake pdal-dev py3-numpy-dev python3-dev py3-setuptools py3-packaging py3-scikit-build ninja"
+source="https://files.pythonhosted.org/packages/source/p/pdal-plugins/pdal-plugins-1.2.1.tar.gz"
+builddir="$srcdir/pdal-plugins-$pkgver"
+
+build() {
+ python3 setup.py build -DWITH_TESTS=ON
+}
+
+check() {
+ export PDAL_DRIVER_PATH=$(python3 -c "import os, skbuild; print(os.path.join(skbuild.constants.SKBUILD_DIR(), 'cmake-build'))")
+ pdal --drivers
+ $PDAL_DRIVER_PATH/pdal_filters_python_test
+ $PDAL_DRIVER_PATH/pdal_io_numpy_test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+328bb1960c823e442f08e3b3f7aca0e98a0755bc4fd655ad57d4efa202ecab4fc034ce85bb8015e7d0f0b13f4556b25cc9fb18d9f1b4281dbf65c23e21b2e577 pdal-plugins-1.2.1.tar.gz
+"
diff --git a/testing/pdal/APKBUILD b/testing/pdal/APKBUILD
deleted file mode 100644
index 3ede4a7b4b3..00000000000
--- a/testing/pdal/APKBUILD
+++ /dev/null
@@ -1,76 +0,0 @@
-# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
-# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
-pkgname=pdal
-pkgver=2.0.1
-pkgrel=6
-pkgdesc="PDAL is a C++ BSD library for translating and manipulating point cloud data."
-options="!check"
-url="https://pdal.io"
-# Dependencies libgeotiff-dev, proj-dev, libspatialite-dev, and pcl-dev are
-# not provided on other architectures
-arch="x86_64" # 1 test fail on the only arch that was installed before, x86_64
-license="BSD-2-Clause"
-depends="nitro python3 py3-numpy>=1.14.3-r1"
-makedepends="
- cmake
- eigen-dev
- hexer-dev
- nitro-dev
- gdal-dev
- geos-dev
- laz-perf-dev
- libgeotiff-dev
- libxml2-dev
- python3-dev
- py3-numpy-dev
- jsoncpp-dev
- hdf5-dev
- proj-dev
- cpd-dev
- fgt-dev
- sqlite-dev
- postgresql-dev
- curl-dev
- laszip-dev
- libspatialite-dev
- linux-headers
- libexecinfo-dev
- pcl-dev
- boost-dev
- "
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/PDAL/PDAL/releases/download/$pkgver/PDAL-$pkgver-src.tar.gz"
-builddir="$srcdir/PDAL-$pkgver-src"
-
-build() {
- mkdir build && cd build
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DBUILD_PLUGIN_PYTHON=ON \
- -DBUILD_PLUGIN_CPD=ON \
- -DBUILD_PLUGIN_GREYHOUND=ON \
- -DBUILD_PLUGIN_HEXBIN=ON \
- -DBUILD_PLUGIN_NITF=ON \
- -DBUILD_PLUGIN_ICEBRIDGE=ON \
- -DBUILD_PLUGIN_PGPOINTCLOUD=ON \
- -DBUILD_PGPOINTCLOUD_TESTS=OFF \
- -DBUILD_PLUGIN_SQLITE=ON \
- -DBUILD_PLUGIN_PCL=ON \
- -DWITH_LASZIP=ON \
- -DWITH_LAZPERF=ON \
- -DWITH_TESTS=ON
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-check() {
- cd "$builddir"/build
- make test
-}
-
-sha512sums="6b33d957d6948a73d0db1b3b47e6b3fa0c3d6efd89e997bfd78a1f801118c68bace4efd5f7e696c9b16d6fb3ebe01d78314c3c92543f28bbc5d46a3a7d1930b4 pdal-2.0.1.tar.gz"
diff --git a/testing/pdf2svg/APKBUILD b/testing/pdf2svg/APKBUILD
index b2586b415cf..cf985862f56 100644
--- a/testing/pdf2svg/APKBUILD
+++ b/testing/pdf2svg/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=pdf2svg
pkgver=0.2.3
-pkgrel=0
+pkgrel=1
pkgdesc="A simple PDF to SVG converter using Poppler and Cairo"
url="http://www.cityinthesky.co.uk/opensource/pdf2svg/"
arch="all"
diff --git a/testing/pdfcpu/APKBUILD b/testing/pdfcpu/APKBUILD
new file mode 100644
index 00000000000..7eadda12d22
--- /dev/null
+++ b/testing/pdfcpu/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=pdfcpu
+pkgver=0.7.0
+pkgrel=1
+pkgdesc="PDF processor written in Go"
+url="https://pdfcpu.io"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+options="!check" # test suite fails
+source="$pkgname-$pkgver.tar.gz::https://github.com/pdfcpu/pdfcpu/archive/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o bin/pdfcpu ./cmd/...
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/pdfcpu "$pkgdir"/usr/bin/pdfcpu
+}
+
+sha512sums="
+fa58580f2ee8ba128083ead7acf3653182df127304d72c15693b0e48af80b229e44a57f51dc48b59a1483a4ad5181bb4870a28a9e39dd9db652ac0c55c2654ec pdfcpu-0.7.0.tar.gz
+"
diff --git a/testing/pdfcrack/APKBUILD b/testing/pdfcrack/APKBUILD
index 3db8ef37973..c5957eba790 100644
--- a/testing/pdfcrack/APKBUILD
+++ b/testing/pdfcrack/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=pdfcrack
-pkgver=0.19
+pkgver=0.20
pkgrel=0
pkgdesc="Command line, password recovery tool for PDF-files."
-url="http://pdfcrack.sourceforge.net/"
+url="https://pdfcrack.sourceforge.net/"
arch="all"
license="GPL-2.0"
options="!check"
@@ -21,4 +21,6 @@ package() {
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
}
-sha512sums="e58819e7d90db9a66ebf9509c0b8aace7f8e7dbf5f8083edc70c3f2ca28cf16476bbdbaa77f7c563dcf824e440ca0df03e91d6aaf2a0435ec8f349f4e19ee626 pdfcrack-0.19.tar.gz"
+sha512sums="
+50298aeec8a50b929d1440ea644bacb6afad638552948112b3fb2744124188e0cb52f67a804d76b09f747040aea56eadbab88e90481be8fce8e8147ed4c00188 pdfcrack-0.20.tar.gz
+"
diff --git a/testing/pdm/APKBUILD b/testing/pdm/APKBUILD
new file mode 100644
index 00000000000..7edd267f531
--- /dev/null
+++ b/testing/pdm/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=pdm
+pkgver=2.12.4
+pkgrel=1
+pkgdesc="Modern Python package and dependency manager"
+url="https://pdm.fming.dev/"
+arch="noarch"
+license="MIT"
+depends="
+ py3-blinker
+ py3-cachecontrol
+ py3-certifi
+ py3-dep-logic
+ py3-dotenv
+ py3-findpython
+ py3-installer
+ py3-packaging
+ py3-platformdirs
+ py3-pyproject-hooks
+ py3-requests-toolbelt
+ py3-resolvelib
+ py3-rich
+ py3-shellingham
+ py3-tomlkit
+ py3-truststore
+ py3-unearth
+ py3-virtualenv
+ "
+makedepends="py3-pdm-backend py3-gpep517 py3-installer"
+checkdepends="
+ bash
+ py3-pytest
+ py3-pytest-httpserver
+ py3-pytest-mock
+ py3-pytest-rerunfailures
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/pdm-project/pdm/archive/$pkgver/pdm-$pkgver.tar.gz"
+
+build() {
+ export PDM_BUILD_SCM_VERSION=$pkgver
+ 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 -k 'not test_use_wrapper_python'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+3a73baf34adcd8a7d8fbd84340ad06d7759db8378ccbe7a61705f46ae97a31dc72fd3b98c4ae06f70eb6ed02234d46c71bb185f30a3ec8f2a5803583278bafd4 pdm-2.12.4.tar.gz
+"
diff --git a/testing/pebble-le/APKBUILD b/testing/pebble-le/APKBUILD
new file mode 100644
index 00000000000..57ccaade81d
--- /dev/null
+++ b/testing/pebble-le/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=pebble-le
+pkgver=0.3.0
+pkgrel=1
+_bluez_inc="41bdc1a5d98d929764600c14d0654c9ff5112f86"
+pkgdesc="Library to talk to Pebble Smartwatches via Bluetooth Low Energy (BLE)"
+url="https://github.com/leso-kn/pebble-le"
+arch="all"
+license="MIT"
+makedepends="
+ boost-dev
+ cmake
+ doxygen
+ fmt-dev
+ dbus-dev
+ glib-dev
+ samurai
+ simpleble-dev
+ "
+install="$pkgname.pre-install"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/leso-kn/pebble-le/archive/refs/tags/v$pkgver.tar.gz
+ bluez_inc-$_bluez_inc.tar.gz::https://github.com/weliem/bluez_inc/archive/$_bluez_inc.tar.gz
+ simpleble.patch
+ "
+options="!check" # soon pebble-le unit-tests
+
+prepare() {
+ rmdir third_party/binc third_party/SimpleBLE
+
+ mv "$srcdir"/bluez_inc-$_bluez_inc third_party/binc
+ default_prepare
+}
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_INCLUDEDIR=/usr/include \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8672d481e0dc94f648149627bdc413d0546750683d994b7b4b67c90216f14877fcaa9eba723ee0fdf9016505b3e49e58d605c3e1cd3e3bc4d4ad01400e68844b pebble-le-0.3.0.tar.gz
+2321fb7cdddbde7208c92185bc5af9083fc313b8ae2433308423b6ce5c1895b19bf27671ca6f352bd10a62b7ed830586d973268bc8ab547943180d64fdc72081 bluez_inc-41bdc1a5d98d929764600c14d0654c9ff5112f86.tar.gz
+77f49061da9dfef1e1765df2dcf5633a0d1ea95ced4e7276a5abee98b98108ec0dc53d4e3e27d58abb1f280afccc53f6724d5957e898d13f69c05470d84a8580 simpleble.patch
+"
diff --git a/testing/pebble-le/pebble-le.pre-install b/testing/pebble-le/pebble-le.pre-install
new file mode 100644
index 00000000000..0dd53b669a9
--- /dev/null
+++ b/testing/pebble-le/pebble-le.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+addgroup -S pebble-le 2>/dev/null
+
+exit 0
diff --git a/testing/pebble-le/simpleble.patch b/testing/pebble-le/simpleble.patch
new file mode 100644
index 00000000000..c1bfd9977c5
--- /dev/null
+++ b/testing/pebble-le/simpleble.patch
@@ -0,0 +1,45 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c7fa1dd..0163b8a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -21,15 +21,8 @@ set(pebble_le_SOURCES
+ src/util.cpp)
+
+ # Third-Party Dependencies
+-add_subdirectory(third_party/SimpleBLE/simpleble EXCLUDE_FROM_ALL)
+ add_subdirectory(third_party/binc/binc)
+
+-set(SimpleBLE_INCLUDE_DIRS
+- ${CMAKE_SOURCE_DIR}/third_party/SimpleBLE/simpleble/include
+- ${CMAKE_SOURCE_DIR}/third_party/SimpleBLE/simplebluez/include
+- ${CMAKE_SOURCE_DIR}/third_party/SimpleBLE/simpledbus/include
+- ${CMAKE_BINARY_DIR}/third_party/SimpleBLE/simpleble/export)
+-
+ set(Binc_INCLUDE_DIRS
+ ${CMAKE_SOURCE_DIR}/third_party/binc)
+
+@@ -37,6 +30,8 @@ find_package(PkgConfig REQUIRED)
+ pkg_search_module(GLIB REQUIRED glib-2.0)
+ pkg_search_module(GIO REQUIRED gio-2.0)
+ pkg_search_module(DBus1 REQUIRED dbus-1)
++pkg_search_module(SimpleBLE REQUIRED simpleble)
++pkg_search_module(SimpleBLUEZ REQUIRED simplebluez)
+
+ # libpebble-le
+ add_library(pebble-le_o OBJECT ${pebble_le_SOURCES})
+@@ -54,12 +49,13 @@ set_target_properties(pebble-le PROPERTIES
+ set_target_properties(pebble-le_static PROPERTIES
+ OUTPUT_NAME pebble-le)
+
+-target_include_directories(pebble-le_o PRIVATE ${Binc_INCLUDE_DIRS} ${SimpleBLE_INCLUDE_DIRS} ${DBus1_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS})
++target_include_directories(pebble-le_o PRIVATE ${Binc_INCLUDE_DIRS} ${SimpleBLE_INCLUDE_DIRS} ${SimpleBLUEZ_INCLUDE_DIRS} ${DBus1_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS})
+ target_include_directories(pebble-le_o PUBLIC include ${CMAKE_BINARY_DIR}/exports)
+
+ target_link_libraries(pebble-le_o PUBLIC
+ Binc
+- simpleble
++ ${SimpleBLE_LIBRARIES}
++ ${SimpleBLUEZ_LIBRARIES}
+ ${DBus1_LIBRARIES}
+ ${GLIB_LIBRARIES}
+ ${GIO_LIBRARIES})
diff --git a/testing/peervpn/APKBUILD b/testing/peervpn/APKBUILD
index 98874eaf42a..1983c028a9a 100644
--- a/testing/peervpn/APKBUILD
+++ b/testing/peervpn/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Markus Juenemann <markus@juenemann.net>
pkgname=peervpn
pkgver=0.044
-pkgrel=4
+pkgrel=5
pkgdesc="PeerVPN builds virtual ethernet networks between multiple computers"
options="!check" # No testsuite
url="https://peervpn.net"
arch="all"
license="GPL-3.0-or-later"
-makedepends="openssl-dev zlib-dev linux-headers"
+makedepends="openssl-dev>3 zlib-dev linux-headers"
subpackages="$pkgname-openrc"
source="
http://${pkgname}.net/files/${pkgname}-${pkgver//./-}.tar.gz
diff --git a/testing/peg/APKBUILD b/testing/peg/APKBUILD
new file mode 100644
index 00000000000..4b8e61098ed
--- /dev/null
+++ b/testing/peg/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=peg
+pkgver=0.1.18
+pkgrel=1
+pkgdesc="Recursive-descent parser generators for C"
+url="https://www.piumarta.com/software/peg/"
+arch="all"
+license="MIT"
+subpackages="$pkgname-doc"
+source="https://www.piumarta.com/software/peg/peg-$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install -j1 ROOT="$pkgdir" PREFIX=/usr MANDIR="$pkgdir/usr/share/man/man1"
+}
+
+sha512sums="
+ca2fb9088bf87955adf6f883370ddb7d5f6f3cae3605a871094317205a124cce4f7b9f83cf4662cb470e2c5a6977608b456eb1fad98022d7e40fc384d1fec0f8 peg-0.1.18.tar.gz
+"
diff --git a/testing/pegasus-frontend/APKBUILD b/testing/pegasus-frontend/APKBUILD
index edcac6ae8e3..9908c58a684 100644
--- a/testing/pegasus-frontend/APKBUILD
+++ b/testing/pegasus-frontend/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=pegasus-frontend
-pkgver=12_alpha
-_realver=alpha12
-pkgrel=0
+pkgver=13_alpha
+_realver=alpha13
+pkgrel=2
pkgdesc="A cross platform, customizable graphical frontend for launching emulators and managing your game collection."
-url="http://pegasus-frontend.org"
-arch="all !armhf !mips !mips64"
+url="https://pegasus-frontend.org"
+arch="all !armhf"
license="GPL-1.0-or-later"
depends="qt5-qtquickcontrols mesa qt5-qtgraphicaleffects qt5-qtgamepad qt5-qtmultimedia"
makedepends="qt5-qttools-dev openssl qt5-qtsvg-dev qt5-qtquickcontrols2-dev qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtgamepad-dev qt5-qtmultimedia-dev"
@@ -16,12 +16,15 @@ _translations_commit=b9eb734f8583e044b999d8c673dd5da0851ec8f5
_thirdparty_commit=a16b36d64ced67da31a3465ba6a7ad593378a0eb
_theme_commit=ccaf3152574992eacbda81ccf6624731e07e963e
source="$pkgname-$_realver.zip::https://github.com/mmatyas/pegasus-frontend/archive/$_realver.zip
- $pkgname-$_realver-translations.zip::https://github.com/mmatyas/$pkgname-translations/archive/$_translations_commit.zip
+ $pkgname-$_realver-translations.zip::https://github.com/mmatyas/pegasus-frontend-translations/archive/$_translations_commit.zip
$pkgname-$_realver-thirdparty.zip::https://github.com/mmatyas/SortFilterProxyModel/archive/$_thirdparty_commit.zip
- $pkgname-$_realver-themes.zip::https://github.com/mmatyas/pegasus-theme-grid/archive/$_theme_commit.zip"
+ $pkgname-$_realver-themes.zip::https://github.com/mmatyas/pegasus-theme-grid/archive/$_theme_commit.zip
+ qt-5-14-compatibility.patch
+ "
builddir="$srcdir/$pkgname-$_realver"
prepare() {
+ default_prepare
mv "$srcdir"/$pkgname-translations-$_translations_commit/* "$builddir"/lang
mv "$srcdir"/SortFilterProxyModel-$_thirdparty_commit/* "$builddir"/thirdparty/SortFilterProxyModel
mv "$srcdir"/pegasus-theme-grid-$_theme_commit/* "$builddir"/src/themes/pegasus-theme-grid
@@ -42,7 +45,8 @@ package() {
install -Dm644 "LICENSE.md" "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}
-sha512sums="15397c1bea8cdc52b0d5c386352cc1d28bfff9491fbf7c7e3f88baf83e98ff9e5afe6d9947ff69db65701e6837a41c40ba18865ada49521d0658cc5601c63aaf pegasus-frontend-alpha12.zip
-48265568df3f83efa372d45233b0954f0e3a48e4085e0beeed01f2601e580cb1af9713d7edb48c010afa9af9e952df256718e99402fa2363c548a939682cdd8e pegasus-frontend-alpha12-translations.zip
-545ace1a9641e988f3fbc91a5933ef05f5044fef672d50347dc890ca13efdf325d0c28eb0612040c2cf743fe8fbf80e1b16b236382fdb5bd7d495e95d0c02860 pegasus-frontend-alpha12-thirdparty.zip
-ac6addb71483e5f45f60a5815b4f1e6695f794446bacc3323a84155c03ec95e08d084ee4879c381cef428114f34596837e088de03b55679eeed2bd5bb1126bb8 pegasus-frontend-alpha12-themes.zip"
+sha512sums="b80b05c7120c2c740f49b73b248003d2f46a524ce64cdde5feb6ee791bd25c291c1b036b95ca507557b7a65bd94d5587b74b575c5bfacb6d65ac1d7803654342 pegasus-frontend-alpha13.zip
+48265568df3f83efa372d45233b0954f0e3a48e4085e0beeed01f2601e580cb1af9713d7edb48c010afa9af9e952df256718e99402fa2363c548a939682cdd8e pegasus-frontend-alpha13-translations.zip
+545ace1a9641e988f3fbc91a5933ef05f5044fef672d50347dc890ca13efdf325d0c28eb0612040c2cf743fe8fbf80e1b16b236382fdb5bd7d495e95d0c02860 pegasus-frontend-alpha13-thirdparty.zip
+ac6addb71483e5f45f60a5815b4f1e6695f794446bacc3323a84155c03ec95e08d084ee4879c381cef428114f34596837e088de03b55679eeed2bd5bb1126bb8 pegasus-frontend-alpha13-themes.zip
+a6d6ade0a963291f790f7607d53a7c33aad48bff6c3f8a49c48170af30353b2563103201c7bf1017dbc0daf9fe4ed34f00196c5f16c742d89fe2b407fe96359f qt-5-14-compatibility.patch"
diff --git a/testing/pegasus-frontend/qt-5-14-compatibility.patch b/testing/pegasus-frontend/qt-5-14-compatibility.patch
new file mode 100644
index 00000000000..354d44e0ffc
--- /dev/null
+++ b/testing/pegasus-frontend/qt-5-14-compatibility.patch
@@ -0,0 +1,32 @@
+Upstream: yes
+Url: https://github.com/mmatyas/pegasus-frontend/pull/589
+From 71c4720ef26fbdd87b43e5c31eb604a92d1ad612 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?M=C3=A1ty=C3=A1s=20Mustoha?= <matyas.mustoha@gmail.com>
+Date: Sun, 29 Dec 2019 00:46:15 +0100
+Subject: [PATCH] Fixed a compile error when using Qt 5.14, related to string
+ hashes
+
+---
+ src/backend/utils/HashMap.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/backend/utils/HashMap.h b/src/backend/utils/HashMap.h
+index 3a17305f..21f558e1 100644
+--- a/src/backend/utils/HashMap.h
++++ b/src/backend/utils/HashMap.h
+@@ -26,6 +26,7 @@
+ template <typename Key, typename Val, typename Hash = std::hash<Key>>
+ using HashMap = std::unordered_map<Key, Val, Hash>;
+
++#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
+ // hash for strings
+ namespace std {
+ template<> struct hash<QString> {
+@@ -39,6 +40,7 @@ namespace std {
+ }
+ };
+ }
++#endif
+
+ // hash for enum classes
+ struct EnumHash {
diff --git a/testing/pegtl/APKBUILD b/testing/pegtl/APKBUILD
new file mode 100644
index 00000000000..eaa8f60c95b
--- /dev/null
+++ b/testing/pegtl/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer:
+pkgname=pegtl
+_pkgname=PEGTL
+pkgver=3.2.7
+pkgrel=0
+pkgdesc="Parsing Expression Grammar Template Library"
+url="https://github.com/taocpp/PEGTL"
+license="MIT"
+arch="noarch"
+makedepends="cmake"
+subpackages="$pkgname-doc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/taocpp/PEGTL/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPEGTL_INSTALL_DOC_DIR=share/doc/$pkgname \
+ -DPEGTL_INSTALL_CMAKE_DIR=lib/cmake/$pkgname \
+ -DPEGTL_BUILD_TESTS=ON \
+ -DPEGTL_BUILD_EXAMPLES=OFF
+ cmake --build build
+}
+
+check() {
+ cd build
+ ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+e996be569e1c25377b13870c4f3e59f1935bbf24bb7c6edca0edc85b304fbe3d05db52a303839b0bd50c78769b773fc2237814787a703c58de8a79398210ee34 PEGTL-3.2.7.tar.gz
+"
diff --git a/testing/percona-toolkit/APKBUILD b/testing/percona-toolkit/APKBUILD
index 5a3b8da108f..d2fc6e1e2a9 100644
--- a/testing/percona-toolkit/APKBUILD
+++ b/testing/percona-toolkit/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Matthieu Monnier <matthieu.monnier@enalean.com>
# Maintainer: Matthieu Monnier <matthieu.monnier@enalean.com>
pkgname=percona-toolkit
-pkgver=3.1.0
+pkgver=3.5.4
pkgrel=0
pkgdesc="Toolkit for MySQL/MariaDB"
url="https://www.percona.com/software/database-tools/percona-toolkit/"
@@ -25,4 +25,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6dd2de997fe9627897dad453277544142cbdcba41bf30de21ee10c292c671bc089df0e299a8e386af082511c57ac53621b8e11f4ae43e98ea41eeca0c76f652f percona-toolkit-3.1.0.tar.gz"
+sha512sums="
+be94c047ce7507435573afaf0015970117039610fa84c818ded601f98ddd223e71b2304c2cad33d3151381238bab84bf563087aa4f4ccc5929395fda79b25d95 percona-toolkit-3.5.4.tar.gz
+"
diff --git a/testing/perl-adapter-async/APKBUILD b/testing/perl-adapter-async/APKBUILD
new file mode 100644
index 00000000000..9a8610e149a
--- /dev/null
+++ b/testing/perl-adapter-async/APKBUILD
@@ -0,0 +1,50 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-adapter-async
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Adapter-Async
+pkgver=0.019
+pkgrel=0
+pkgdesc="Common API for linking data sources and views"
+url="https://metacpan.org/release/Adapter-Async/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-check-unitcheck perl-curry perl-future
+ perl-list-binarysearch perl-log-any
+ perl-mixin-event-dispatch perl-variable-disposition
+ "
+checkdepends="perl-test-checkdeps perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Adapter-Async-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+5e002bc73943ddaa1b964a2dcd8c15db367c0acba60b87d22db2c7df7bda017dcd61bbaac6b6c63fe9ebe804ab3116a5475b0c5c791aa1000389894958777a0d Adapter-Async-0.019.tar.gz
+"
diff --git a/testing/perl-algorithm-backoff/APKBUILD b/testing/perl-algorithm-backoff/APKBUILD
new file mode 100644
index 00000000000..a6df240c866
--- /dev/null
+++ b/testing/perl-algorithm-backoff/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-algorithm-backoff
+pkgver=0.010
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Algorithm-Backoff
+pkgdesc="Various backoff strategies for retry"
+url="https://metacpan.org/release/Algorithm-Backoff/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-test-exception perl-test-number-delta"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PERLANCAR/Algorithm-Backoff-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+11849a4f27caf6bfc03bafa39b641cfa258804b93a70b607523fce215b3f143322ff7731418727264ab86f63db38844d0b3cf8d0096acda1f3815ac1504066bb Algorithm-Backoff-0.010.tar.gz
+"
diff --git a/testing/perl-algorithm-c3/APKBUILD b/testing/perl-algorithm-c3/APKBUILD
index d713b28ec16..6700c6d03f1 100644
--- a/testing/perl-algorithm-c3/APKBUILD
+++ b/testing/perl-algorithm-c3/APKBUILD
@@ -1,29 +1,29 @@
-# 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-algorithm-c3
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Algorithm-C3
-pkgver=0.10
-pkgrel=2
+pkgver=0.11
+pkgrel=1
pkgdesc="A module for merging hierarchies using the C3 algorithm"
-url="https://metacpan.org/release/Algorithm-C3"
+url="https://metacpan.org/release/Algorithm-C3/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
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/Algorithm-C3-$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 +31,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="2ace81679e8ff2f3f3fbe8028741aef0833b1415a7cde0d1b20c90557889347685d1135029cd849324b6d40c435a80b228549bf669bbf43f9a1b2ed7075b605e Algorithm-C3-0.10.tar.gz"
+sha512sums="ec2ae17090a826e013b7526e7f236e3cc9bc59488421aecb03ea876b6ed2e4b2ea4eb8e07aad57b5b645ca4a077f7064b98e790e9906496d26c1bcb36128acbe Algorithm-C3-0.11.tar.gz"
diff --git a/testing/perl-algorithm-cron/APKBUILD b/testing/perl-algorithm-cron/APKBUILD
index f8f98e43597..54781a372f0 100644
--- a/testing/perl-algorithm-cron/APKBUILD
+++ b/testing/perl-algorithm-cron/APKBUILD
@@ -4,15 +4,13 @@
pkgname=perl-algorithm-cron
_pkgreal=Algorithm-Cron
pkgver=0.10
-pkgrel=2
+pkgrel=4
pkgdesc="abstract implementation of the F<cron(8)> scheduling"
url="https://metacpan.org/release/Algorithm-Cron"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-time-timegm"
-cpanmakedepends="perl-test-fatal"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-build $cpanmakedepends"
+depends="perl perl-time-timegm"
+makedepends="perl-module-build perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-aliased/APKBUILD b/testing/perl-aliased/APKBUILD
index 3f4ecfdaf63..9a3b1535d5c 100644
--- a/testing/perl-aliased/APKBUILD
+++ b/testing/perl-aliased/APKBUILD
@@ -4,12 +4,13 @@
pkgname=perl-aliased
_pkgreal=aliased
pkgver=0.34
-pkgrel=2
+pkgrel=4
pkgdesc="Use shorter versions of class names."
url="https://metacpan.org/release/aliased"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev perl-module-build"
+depends="perl"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-anyevent-dns-etchosts/APKBUILD b/testing/perl-anyevent-dns-etchosts/APKBUILD
index ed5bd868693..841a1b0e760 100644
--- a/testing/perl-anyevent-dns-etchosts/APKBUILD
+++ b/testing/perl-anyevent-dns-etchosts/APKBUILD
@@ -3,16 +3,15 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-anyevent-dns-etchosts
_pkgreal=AnyEvent-DNS-EtcHosts
-pkgver=0.0103
-pkgrel=2
+pkgver=0.0105
+pkgrel=0
pkgdesc="Use /etc/hosts before DNS"
url="https://metacpan.org/release/AnyEvent-DNS-EtcHosts"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-anyevent"
-cpanmakedepends="perl-test-deep"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-build $cpanmakedepends"
+depends="perl perl-anyevent"
+makedepends="perl-module-build perl-module-cpanfile"
+checkdepends="perl-test-deep"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DE/DEXTER/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -38,4 +37,6 @@ check() {
./Build test
}
-sha512sums="213795e75cde1acabc73220814b1b1396fca86b964e5701e81181221501c9c5b9e3b0a43d5448bf8d9f19276320c2afab75eee56ebd7b54a64126962f60a50f8 AnyEvent-DNS-EtcHosts-0.0103.tar.gz"
+sha512sums="
+e78d1d89054b0fdc96b2f9809dbe10682b93bd9f7a0bd41c4547bc926d75b09466fe0b17488545059d2fd80b87db73f916189c2d3af2a63f7f6fad3b1c406b67 AnyEvent-DNS-EtcHosts-0.0105.tar.gz
+"
diff --git a/testing/perl-anyevent-future/APKBUILD b/testing/perl-anyevent-future/APKBUILD
new file mode 100644
index 00000000000..468b18c5e41
--- /dev/null
+++ b/testing/perl-anyevent-future/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-anyevent-future
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=AnyEvent-Future
+pkgver=0.05
+pkgrel=0
+pkgdesc="Use Future with AnyEvent"
+url="https://metacpan.org/release/AnyEvent-Future/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-anyevent perl-future"
+makedepends="perl-module-build"
+checkdepends="perl-test-timer"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/AnyEvent-Future-$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="
+9b34b43d2f1d701aeec080f09b27ece86f23dc98a282a959f1c09c432b02f9124e9916e43a840943e940a3d3b3c19c21a18208ee19c31de9ce989c25e34587d1 AnyEvent-Future-0.05.tar.gz
+"
diff --git a/testing/perl-anyevent-http/APKBUILD b/testing/perl-anyevent-http/APKBUILD
deleted file mode 100644
index 68ec573c811..00000000000
--- a/testing/perl-anyevent-http/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
-pkgname=perl-anyevent-http
-_pkgreal=AnyEvent-HTTP
-pkgver=2.25
-pkgrel=0
-pkgdesc="simple but non-blocking HTTP/HTTPS client"
-url="https://metacpan.org/release/AnyEvent-HTTP"
-arch="noarch !mips !mips64" # blocked on perl-dancer-plugin-swig
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-anyevent perl-dancer-plugin-swig"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-$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="bc189a6a37cb3c3b6f1c36bd965911e110019fec5b8f82bea60dab2e3cf0dda0117a83a5f0608f7865f457b016f94f1ccc78939e22849bceb82a096edc24de9c AnyEvent-HTTP-2.25.tar.gz"
diff --git a/testing/perl-anyevent-influxdb/APKBUILD b/testing/perl-anyevent-influxdb/APKBUILD
deleted file mode 100644
index 2c17fb56e3f..00000000000
--- a/testing/perl-anyevent-influxdb/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
-pkgname=perl-anyevent-influxdb
-_pkgreal=AnyEvent-InfluxDB
-pkgver=1.0.2.0
-pkgrel=3
-pkgdesc="An asynchronous library for InfluxDB time-series database"
-url="https://metacpan.org/release/AnyEvent-InfluxDB"
-arch="" # blocking on perl-www-curl
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-anyevent-http perl-anyevent perl-list-moreutils perl-moo
- perl-json perl-uri perl-uri-encode-xs"
-cpanmakedepends="perl-module-build"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AJ/AJGB/$_pkgreal-$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}')
- ./Build && ./Build test
-}
-
-package() {
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-
-sha512sums="1b88aa659fae9f7089547f9765048368811af26a0d090ead61a862dd00ebe175e9a2ea458dae39590268b0bb77913b630fb13e07fe3bccaff002bb5da6bc2c42 AnyEvent-InfluxDB-1.0.2.0.tar.gz"
diff --git a/testing/perl-anyevent-mocktcpserver/APKBUILD b/testing/perl-anyevent-mocktcpserver/APKBUILD
new file mode 100644
index 00000000000..ad447a5f9c1
--- /dev/null
+++ b/testing/perl-anyevent-mocktcpserver/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-anyevent-mocktcpserver
+pkgver=1.172150
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=AnyEvent-MockTCPServer
+pkgdesc="Mock TCP Server using AnyEvent"
+url="https://metacpan.org/release/AnyEvent-MockTCPServer/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-anyevent perl-sub-name"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/B/BE/BEANZ/AnyEvent-MockTCPServer-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b4c6e75c8a26502369fbcd6dd749732b668623168c736c795288592a5804eac25f41d36eb84ba4e52089b2ee787a8a5ff02ce96f2a0c85074c37121de893872a AnyEvent-MockTCPServer-1.172150.tar.gz
+"
diff --git a/testing/perl-anyevent-mqtt/APKBUILD b/testing/perl-anyevent-mqtt/APKBUILD
new file mode 100644
index 00000000000..f28bdca3995
--- /dev/null
+++ b/testing/perl-anyevent-mqtt/APKBUILD
@@ -0,0 +1,47 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-anyevent-mqtt
+pkgver=1.212810
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=AnyEvent-MQTT
+pkgdesc="AnyEvent module for an MQTT client"
+url="https://metacpan.org/release/AnyEvent-MQTT/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-anyevent perl-net-mqtt perl-sub-name"
+checkdepends="perl-anyevent-mocktcpserver"
+subpackages="$pkgname-doc $pkgname-monitor"
+source="https://cpan.metacpan.org/authors/id/B/BE/BEANZ/AnyEvent-MQTT-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+monitor() {
+ pkgdesc="$pkgdesc (graphical monitor)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-gtk2"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-gtk2"
+
+ amove usr/bin/anyevent-mqtt-monitor
+}
+
+sha512sums="
+1883fe34200365d810a250714fd78fc2fda341dc1b38c1f54e76927801e25e3fc2f21242348bbc8de30603d403b6af746c7cfc7b858e0ffea682ac90fa36a020 AnyEvent-MQTT-1.212810.tar.gz
+"
diff --git a/testing/perl-anyevent-riperedis/APKBUILD b/testing/perl-anyevent-riperedis/APKBUILD
new file mode 100644
index 00000000000..8fac4427e72
--- /dev/null
+++ b/testing/perl-anyevent-riperedis/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-anyevent-riperedis
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=AnyEvent-RipeRedis
+pkgver=0.48
+pkgrel=0
+pkgdesc="Flexible non-blocking Redis client"
+url="https://metacpan.org/release/AnyEvent-RipeRedis/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-anyevent"
+checkdepends="perl-test-fatal perl-test-leaktrace perl-test-tcp redis"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/I/IP/IPH/AnyEvent-RipeRedis-$pkgver.tar.gz
+ test-redisrunner.patch
+ "
+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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ff09f050294dbfbf01a1307fe5f94879f178b3b425d2c2eeef254b46f65ed812a4e793bfc40384acb50053db1084acbbaa9b893487754cc6e862c928fea2187d AnyEvent-RipeRedis-0.48.tar.gz
+86de64b21cf134a634cabead4365b394097e7880e60ca3b09ccc2c56c38fb0b28ab0cbce1fdda9eb5a5342f1b7f0f92454a8221adae517274d4c49046fbe6436 test-redisrunner.patch
+"
diff --git a/testing/perl-anyevent-riperedis/test-redisrunner.patch b/testing/perl-anyevent-riperedis/test-redisrunner.patch
new file mode 100644
index 00000000000..b4d002b7326
--- /dev/null
+++ b/testing/perl-anyevent-riperedis/test-redisrunner.patch
@@ -0,0 +1,18 @@
+Patch-Source: https://sources.debian.org/data/main/liba/libanyevent-riperedis-perl/0.48-1/debian/patches/01_testsuite
+
+Reference: https://github.com/iph0/AnyEvent-RipeRedis/issues/3
+--
+
+Index: libanyevent-riperedis-perl-0.48/t/tlib/Test/RedisRunner.pm
+===================================================================
+--- libanyevent-riperedis-perl-0.48.orig/t/tlib/Test/RedisRunner.pm 2021-05-24 23:54:19.000000000 +1000
++++ libanyevent-riperedis-perl-0.48/t/tlib/Test/RedisRunner.pm 2023-04-27 10:49:08.741102460 +1000
+@@ -94,7 +94,7 @@
+
+ # confirmed this message is included from v1.3.6 (older version in
+ # git repo) to current HEAD (2012-07-30)
+- if ( $log =~ /The server is now ready to accept connections/ ) {
++ if ( $log =~ /[rR]eady to accept connections/ ) {
+ $ready = 1;
+ last;
+ }
diff --git a/testing/perl-anyevent-xmpp/APKBUILD b/testing/perl-anyevent-xmpp/APKBUILD
new file mode 100644
index 00000000000..d9dd188f27f
--- /dev/null
+++ b/testing/perl-anyevent-xmpp/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-anyevent-xmpp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=AnyEvent-XMPP
+pkgver=0.55
+pkgrel=0
+pkgdesc="AnyEvent implementation of the XMPP Protocol"
+url="https://metacpan.org/release/AnyEvent-XMPP/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-anyevent perl-authen-sasl perl-net-libidn perl-net-ssleay
+ perl-object-event perl-xml-parser perl-xml-writer
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/M/MS/MSTPLBG/AnyEvent-XMPP-$pkgver.tar.gz
+ delivery-receipt-1.patch
+ delivery-receipt-2.patch
+ doc-typo-fix.patch
+ "
+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="
+a4e952e91771bd446c53f26aaf54099a53c475d2f20945f05d00f036388afc323108e9e3bbc4fa56dfde579e538538d845ba308d426d35bdc50054246e9e8d1f AnyEvent-XMPP-0.55.tar.gz
+875f0487b1a07e3a410a9f28e7206e8815f45eca8c82b37dd6d16c28126c7ea33a9c9d3382fecd3cc5f7627196ce41a86ef8546e12d5a0a05d32e6f3e567246e delivery-receipt-1.patch
+67b6c9c44c9e4f30e9351beb22135ca288acd410a6245c824b44fea3d6fad5ae358f86c436f618f3685ec94bf7b103e813329fbb92cec9c4a9d52295acda9615 delivery-receipt-2.patch
+3d4e6bad56a8a0b7e849ded903e5e9d339debcac89524783d3a6ae4a567b91ee1dfad49f97fb45433b4dbc1c7c28a548e938b9ff04503f2e4434fd421b575b32 doc-typo-fix.patch
+"
diff --git a/testing/perl-anyevent-xmpp/delivery-receipt-1.patch b/testing/perl-anyevent-xmpp/delivery-receipt-1.patch
new file mode 100644
index 00000000000..2895890d095
--- /dev/null
+++ b/testing/perl-anyevent-xmpp/delivery-receipt-1.patch
@@ -0,0 +1,45 @@
+Patch-Source: https://github.com/AnyEvent-XMPP/AnyEvent-XMPP/commit/9106dcd0a294dd6329d5e0883da757a1da176c0a.patch
+--
+From 9106dcd0a294dd6329d5e0883da757a1da176c0a Mon Sep 17 00:00:00 2001
+From: jlfranklin <franklin@sentaidigital.com>
+Date: Mon, 9 May 2016 10:28:04 -0400
+Subject: [PATCH] Always send a delivery receipt request, but only re-send the
+ message if we know they support receipts. (#7)
+
+---
+ lib/AnyEvent/XMPP/Ext/Receipts.pm | 15 ++-------------
+ 1 file changed, 2 insertions(+), 13 deletions(-)
+
+diff --git a/lib/AnyEvent/XMPP/Ext/Receipts.pm b/lib/AnyEvent/XMPP/Ext/Receipts.pm
+index 82c2cbe..ebee4fb 100644
+--- a/lib/AnyEvent/XMPP/Ext/Receipts.pm
++++ b/lib/AnyEvent/XMPP/Ext/Receipts.pm
+@@ -168,18 +168,6 @@ sub init {
+ ext_before_send_message_hook => sub {
+ my ($self, $con, $id, $to, $type, $attrs, $create_cb) = @_;
+
+- # We can only handle full jids as per XEP-0184 5.1:
+- # "If the sender knows only the recipient's bare JID, it cannot
+- # cannot determine [...] whether the intended recipient supports
+- # the Message Delivery Receipts protoocl. [...] the sender MUST NOT
+- # depend on receiving an ack message in reply."
+- # If we can’t rely on ack messages, receipts are useless.
+- return if is_bare_jid($to);
+-
+- # If we have already figured out that the recipient does not
+- # support message receipts, sending them (and especially waiting
+- # for acknowledge) is pointless.
+- return if exists($supports_receipts{$to}) && !$supports_receipts{$to};
+
+ # If this is a message receipt (sent by us), do not add a receipt
+ # request, that might lead to an endless loop.
+@@ -200,7 +188,8 @@ sub init {
+ $w->endTag;
+ };
+
+- if ($self->{auto_resend} > 0) {
++ # Only resend when we know they support delivery receipts
++ if (exists($supports_receipts{$to}) && !$supports_receipts{$to} && ($self->{auto_resend} > 0)) {
+ print "(xep0184) expecting reply within " . $self->{auto_resend} . "s\n" if $self->{debug};
+ # This timer will be deleted when the recipient acknowledges the
+ # message. Otherwise, it re-sends the message.
diff --git a/testing/perl-anyevent-xmpp/delivery-receipt-2.patch b/testing/perl-anyevent-xmpp/delivery-receipt-2.patch
new file mode 100644
index 00000000000..da1cca122bf
--- /dev/null
+++ b/testing/perl-anyevent-xmpp/delivery-receipt-2.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/AnyEvent-XMPP/AnyEvent-XMPP/commit/23648ed086730064776a325055e3ff5fa75ad3b2.patch
+--
+From 23648ed086730064776a325055e3ff5fa75ad3b2 Mon Sep 17 00:00:00 2001
+From: jlfranklin <franklin@sentaidigital.com>
+Date: Mon, 9 May 2016 10:28:25 -0400
+Subject: [PATCH] Generate an event from the XMPP Connection object when a
+ delivery receipt comes in. (#9)
+
+---
+ lib/AnyEvent/XMPP/Ext/Receipts.pm | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/AnyEvent/XMPP/Ext/Receipts.pm b/lib/AnyEvent/XMPP/Ext/Receipts.pm
+index ebee4fb..3fb1c3c 100644
+--- a/lib/AnyEvent/XMPP/Ext/Receipts.pm
++++ b/lib/AnyEvent/XMPP/Ext/Receipts.pm
+@@ -133,6 +133,7 @@ sub init {
+ # supports receipts.
+ $supports_receipts{$node->attr('from')} = 1;
+ $self->stop_event;
++ $con->event (delivery_receipt => $self, $node);
+ }
+
+ # Figure out if this is a message which requests a receipt, such as
diff --git a/testing/perl-anyevent-xmpp/doc-typo-fix.patch b/testing/perl-anyevent-xmpp/doc-typo-fix.patch
new file mode 100644
index 00000000000..74dd8957b35
--- /dev/null
+++ b/testing/perl-anyevent-xmpp/doc-typo-fix.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/AnyEvent-XMPP/AnyEvent-XMPP/commit/25f2a24da601b798397aea1469486cd55b0ca403.patch
+--
+From 25f2a24da601b798397aea1469486cd55b0ca403 Mon Sep 17 00:00:00 2001
+From: Aleksei Papulovskii <a@c17.nl>
+Date: Fri, 12 Sep 2014 12:47:14 +0200
+Subject: [PATCH] Pubsub unsubscribe doc typo fix
+
+---
+ lib/AnyEvent/XMPP/Ext/Pubsub.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/AnyEvent/XMPP/Ext/Pubsub.pm b/lib/AnyEvent/XMPP/Ext/Pubsub.pm
+index 0c2d8f2..c38a80c 100644
+--- a/lib/AnyEvent/XMPP/Ext/Pubsub.pm
++++ b/lib/AnyEvent/XMPP/Ext/Pubsub.pm
+@@ -170,7 +170,7 @@ sub subscribe_node {
+ );
+ }
+
+-=item B<unsubscribe_node>($con, $uri, $bc)>
++=item B<unsubscribe_node($con, $uri, $cb)>
+ C<$con> is the connection already established,
+ C<$uri> is the name of the node to be created
+ C<$cb> is the callback
diff --git a/testing/perl-archive-extract/APKBUILD b/testing/perl-archive-extract/APKBUILD
index 4fefc28274e..84cd9311793 100644
--- a/testing/perl-archive-extract/APKBUILD
+++ b/testing/perl-archive-extract/APKBUILD
@@ -3,13 +3,13 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-archive-extract
_pkgreal=Archive-Extract
-pkgver=0.86
-pkgrel=0
+pkgver=0.88
+pkgrel=1
pkgdesc="Generic archive extracting mechanism"
url="https://metacpan.org/release/Archive-Extract"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/Archive-Extract-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -36,4 +36,6 @@ check() {
make test
}
-sha512sums="a091b8c489275b8dd3d38e52e983bef7cab7d642e0dc8f6e95f1d8d006d769857b4e5950778bddd3044d6f11b3563c7796361e88869f60a9875529b78c9d1c76 Archive-Extract-0.86.tar.gz"
+sha512sums="
+6fcb6a49e59fac5340663e5d906978af390f4ba66da6c4f02e6b2db666da68440af59ec93a687d13316089b07237b2213df55d8ebb940c4fa9eadd09d1bacc86 Archive-Extract-0.88.tar.gz
+"
diff --git a/testing/perl-autobox/APKBUILD b/testing/perl-autobox/APKBUILD
index c7b2cacac9b..20a57d9b0e1 100644
--- a/testing/perl-autobox/APKBUILD
+++ b/testing/perl-autobox/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-autobox
_pkgreal=autobox
pkgver=3.0.1
-pkgrel=4
+pkgrel=8
pkgdesc="call methods on native types"
url="https://metacpan.org/release/autobox"
arch="all"
diff --git a/testing/perl-barcode-zbar/APKBUILD b/testing/perl-barcode-zbar/APKBUILD
new file mode 100644
index 00000000000..26fd135808f
--- /dev/null
+++ b/testing/perl-barcode-zbar/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-barcode-zbar
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Barcode-ZBar
+pkgver=0.10
+pkgrel=2
+pkgdesc="Perl module for Barcode-ZBar"
+url="https://metacpan.org/release/Barcode-ZBar/"
+arch="all"
+license="LGPL-2.1-only"
+depends="perl"
+makedepends="zbar-dev perl-dev"
+checkdepends="imagemagick imagemagick-perlmagick"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TI/TIMLEGGE/Barcode-ZBar-$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="
+3d4655133389656288e69612cfd8fbed246802aee4001802d39829b03d8802d6f693ebfd9e454d298861bd7da2f7056a4e7fd616764ac2ffc10c46c046d02182 Barcode-ZBar-0.10.tar.gz
+"
diff --git a/testing/perl-bind-config-parser/APKBUILD b/testing/perl-bind-config-parser/APKBUILD
index f64348e15c8..7376b9ddb4c 100644
--- a/testing/perl-bind-config-parser/APKBUILD
+++ b/testing/perl-bind-config-parser/APKBUILD
@@ -1,17 +1,15 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-bind-config-parser
_pkgreal=BIND-Config-Parser
pkgver=0.01
-pkgrel=3
+pkgrel=5
pkgdesc="Parse BIND Config file"
url="https://metacpan.org/release/BIND-Config-Parser"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-parse-recdescent"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-parse-recdescent"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MA/MATTD/$_pkgreal-$pkgver.tar.gz"
diff --git a/testing/perl-bsd-resource/APKBUILD b/testing/perl-bsd-resource/APKBUILD
index 855601d6b92..f511eccbcf0 100644
--- a/testing/perl-bsd-resource/APKBUILD
+++ b/testing/perl-bsd-resource/APKBUILD
@@ -1,33 +1,29 @@
-# 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>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-bsd-resource
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=BSD-Resource
pkgver=1.2911
-pkgrel=4
+pkgrel=9
pkgdesc="Perl extension implements the BSD process resource limit functions"
-url="https://metacpan.org/release/BSD-Resource"
+url="https://metacpan.org/release/BSD-Resource/"
arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+license="Artistic-2.0 OR LGPL-2.0"
+depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/J/JH/JHI/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/J/JH/JHI/BSD-Resource-$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="d0032d41c7c0468ed1c6d8f57b885f6cb97a5039d754c8cb60b2067daedaf53bd15fb6561a3d0f828df16dfa5417f663b8065ba65f4fea16dc9262728b3b6b85 BSD-Resource-1.2911.tar.gz"
+sha512sums="
+d0032d41c7c0468ed1c6d8f57b885f6cb97a5039d754c8cb60b2067daedaf53bd15fb6561a3d0f828df16dfa5417f663b8065ba65f4fea16dc9262728b3b6b85 BSD-Resource-1.2911.tar.gz
+"
diff --git a/testing/perl-bytes-random-secure/APKBUILD b/testing/perl-bytes-random-secure/APKBUILD
new file mode 100644
index 00000000000..2ebffba20b2
--- /dev/null
+++ b/testing/perl-bytes-random-secure/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-bytes-random-secure
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Bytes-Random-Secure
+pkgver=0.29
+pkgrel=0
+pkgdesc="Perl extension to generate cryptographically-secure random bytes"
+url="https://metacpan.org/release/Bytes-Random-Secure/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-crypt-random-seed perl-math-random-isaac"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+72faf9e9fff1cc9641845d47b8dd1efb39861b4015246b169167d4f6050998e91d30b53d6a3e08daf91a838fcf29a05042073064204270de05b2f2ca9990fe64 Bytes-Random-Secure-0.29.tar.gz
+"
diff --git a/testing/perl-cache-lru/APKBUILD b/testing/perl-cache-lru/APKBUILD
new file mode 100644
index 00000000000..c8643528041
--- /dev/null
+++ b/testing/perl-cache-lru/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-cache-lru
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Cache-LRU
+pkgver=0.04
+pkgrel=0
+pkgdesc="Simple, fast implementation of LRU cache in pure perl"
+url="https://metacpan.org/release/Cache-LRU/"
+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/K/KA/KAZUHO/Cache-LRU-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+9fd4f56da78e4b8e291c4291ccb2e34bc50f7294fc8ff1d942d21fb116a5613c96f8e55ef9bb95a7ae3e810e791d3edf2f9f15063fd0fb85414a8e8964e88118 Cache-LRU-0.04.tar.gz
+"
diff --git a/testing/perl-cairo-gobject/APKBUILD b/testing/perl-cairo-gobject/APKBUILD
new file mode 100644
index 00000000000..dbaed32f7f6
--- /dev/null
+++ b/testing/perl-cairo-gobject/APKBUILD
@@ -0,0 +1,35 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=perl-cairo-gobject
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Cairo-GObject
+pkgver=1.005
+pkgrel=3
+pkgdesc="Integrate Cairo into the Glib type system"
+url="https://metacpan.org/release/Cairo-GObject/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="perl perl-cairo perl-extutils-depends perl-extutils-pkgconfig perl-glib"
+makedepends="perl-dev cairo-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/Cairo-GObject-$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="45f1e3ff6f8a90347175c66e5a854acd22285cd48a9aa07344c046add283892d6188e88f69d64798dc5323cb17aa442853915ed2081b5ec4e2a735b89cd11b1e Cairo-GObject-1.005.tar.gz"
diff --git a/testing/perl-cairo/APKBUILD b/testing/perl-cairo/APKBUILD
index edd27f47038..7b47e4728b8 100644
--- a/testing/perl-cairo/APKBUILD
+++ b/testing/perl-cairo/APKBUILD
@@ -1,34 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-cairo
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Cairo
-pkgver=1.107
-pkgrel=0
-pkgdesc="Perl module for Cairo"
-url="https://metacpan.org/release/Cairo"
+pkgver=1.109
+pkgrel=3
+pkgdesc="Perl interface to the cairo 2d vector graphics library"
+url="https://metacpan.org/release/Cairo/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-extutils-depends perl-extutils-pkgconfig"
-makedepends="perl-dev cairo-dev $cpanmakedepends"
+depends="perl"
+makedepends="perl-dev cairo-dev perl-extutils-pkgconfig perl-extutils-depends"
+checkdepends="perl-test-number-delta"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/Cairo-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- if [ -e Build.PL ]; then
- perl Build.PL installdirs=vendor
- else
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- fi
-}
-
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,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="613ba59ee3bd1adc2f33be60b395148f23d1de793fde888fd417f0b0cb6631a35429ee696172e9292b7d3fecab93de8ca958c96f803b9f5a16747a6d1fc7e9cb Cairo-1.107.tar.gz"
+sha512sums="b80841bff480acf95f69659cba02ca17c79b67a2dc5c9b9302efb15bbd79bd4bc2f1801c001c220723da11081e86a08a83e07ecc8866810ebf9406e1f6fa1c53 Cairo-1.109.tar.gz"
diff --git a/testing/perl-cgi-expand/APKBUILD b/testing/perl-cgi-expand/APKBUILD
index e27511a0b0c..3dc4898216a 100644
--- a/testing/perl-cgi-expand/APKBUILD
+++ b/testing/perl-cgi-expand/APKBUILD
@@ -4,14 +4,12 @@
pkgname=perl-cgi-expand
_pkgreal=CGI-Expand
pkgver=2.05
-pkgrel=2
+pkgrel=4
pkgdesc="convert flat hash to nested data using TT2's dot convention"
url="https://metacpan.org/release/CGI-Expand"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-test-exception"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BO/BOWMANBS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-check-unitcheck/APKBUILD b/testing/perl-check-unitcheck/APKBUILD
new file mode 100644
index 00000000000..3568c23dceb
--- /dev/null
+++ b/testing/perl-check-unitcheck/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-check-unitcheck
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Check-UnitCheck
+pkgver=0.13
+pkgrel=0
+pkgdesc="Use best of CHECK or UNITCHECK"
+url="https://metacpan.org/release/Check-UnitCheck/"
+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/A/AJ/AJGOUGH/Check-UnitCheck-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ cd "$pkgdir"
+ rm -v usr/lib/perl5/vendor_perl/Check/example.pl
+}
+
+sha512sums="
+94a74766276fb37d97459bbecdfd063ab703850ad4759818da804e637f35b44cbdf6c06678ec6aaa9382e321c479d7167c3fd5d7a5e8144185e1d3764473cd6c Check-UnitCheck-0.13.tar.gz
+"
diff --git a/testing/perl-class-accessor-grouped/APKBUILD b/testing/perl-class-accessor-grouped/APKBUILD
index 8f78bd94fe2..6ef45aac101 100644
--- a/testing/perl-class-accessor-grouped/APKBUILD
+++ b/testing/perl-class-accessor-grouped/APKBUILD
@@ -4,15 +4,13 @@
pkgname=perl-class-accessor-grouped
_pkgreal=Class-Accessor-Grouped
pkgver=0.10014
-pkgrel=0
+pkgrel=2
pkgdesc="Lets you build groups of accessors"
url="https://metacpan.org/release/Class-Accessor-Grouped"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-sub-name perl-class-xsaccessor perl-module-runtime"
-cpanmakedepends="perl-test-exception"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install $cpanmakedepends"
+depends="perl perl-sub-name perl-class-xsaccessor perl-module-runtime"
+makedepends="perl-module-install perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Class-Accessor-Grouped-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-class-c3-componentised/APKBUILD b/testing/perl-class-c3-componentised/APKBUILD
index b8299a7dfeb..487eccec16e 100644
--- a/testing/perl-class-c3-componentised/APKBUILD
+++ b/testing/perl-class-c3-componentised/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-class-c3-componentised
_pkgreal=Class-C3-Componentised
pkgver=1.001002
-pkgrel=0
+pkgrel=2
pkgdesc="Load mix-ins or components to your C3-based class"
url="https://metacpan.org/release/Class-C3-Componentised"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-class-c3 perl-class-inspector perl-mro-compat perl-test-exception"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install"
+depends="perl perl-class-c3 perl-class-inspector perl-mro-compat perl-test-exception"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Class-C3-Componentised-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-class-c3/APKBUILD b/testing/perl-class-c3/APKBUILD
index 993264aa3c5..9c25abcacf0 100644
--- a/testing/perl-class-c3/APKBUILD
+++ b/testing/perl-class-c3/APKBUILD
@@ -1,31 +1,29 @@
-# 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-c3
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-C3
-pkgver=0.34
-pkgrel=0
+pkgver=0.35
+pkgrel=1
pkgdesc="A pragma to use the C3 method resolution order algorithm"
-url="https://metacpan.org/release/Class-C3"
+url="https://metacpan.org/release/Class-C3/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-algorithm-c3"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-algorithm-c3"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Class-C3-$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() {
@@ -33,9 +31,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="3400b0f827cceca47fa352f634c1a08f33f880e7899be4c44f7bf2a113f5530a7ac07269ae6a15a3c6cccc7dc6bc106c8888daa68bcf7a41bdce072e32c957f4 Class-C3-0.34.tar.gz"
+sha512sums="792dda26d6c77652ae0d1ca868284a798c631523d29f338d3b5bc771fd151a8529f6f8692a8fec7a9116ac8e40831b714bcfd205736c04e56e91fa39a4bae9a6 Class-C3-0.35.tar.gz"
diff --git a/testing/perl-class-inner/APKBUILD b/testing/perl-class-inner/APKBUILD
index 6b6d0a58c0c..24a51a49839 100644
--- a/testing/perl-class-inner/APKBUILD
+++ b/testing/perl-class-inner/APKBUILD
@@ -1,29 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-class-inner
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Inner
pkgver=0.200001
-pkgrel=2
+pkgrel=5
pkgdesc="An implementation of Java like inner classes"
url="https://metacpan.org/release/Class-Inner/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AR/ARUNBEAR/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/A/AR/ARUNBEAR/Class-Inner-$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 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="308d688577ac9eeea14bd665269d4f32f5f9c4be9ac47460c0d4be4248c3eaabb9eb51e9a840a5e8dab58e35cf10c831b55321fdc5a2c83e04eec88ba2b8f905 Class-Inner-0.200001.tar.gz"
+sha512sums="
+308d688577ac9eeea14bd665269d4f32f5f9c4be9ac47460c0d4be4248c3eaabb9eb51e9a840a5e8dab58e35cf10c831b55321fdc5a2c83e04eec88ba2b8f905 Class-Inner-0.200001.tar.gz
+"
diff --git a/testing/perl-class-xsaccessor/APKBUILD b/testing/perl-class-xsaccessor/APKBUILD
deleted file mode 100644
index 0df2ef42325..00000000000
--- a/testing/perl-class-xsaccessor/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
-pkgname=perl-class-xsaccessor
-_pkgreal=Class-XSAccessor
-pkgver=1.19
-pkgrel=8
-pkgdesc="Generate fast XS accessors without runtime compilation"
-url="https://metacpan.org/release/Class-XSAccessor"
-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/S/SM/SMUELLER/$_pkgreal-$pkgver.tar.gz"
-
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare
-
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
-build() {
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="58855bb2108b60cc90ae1d1c4d6a011da7bac2d063c7c953ff8610ae164ba60731a664f0fbddf148e1eabb60042913a17633a9c9a8936a23a59130b381bf63f8 Class-XSAccessor-1.19.tar.gz"
diff --git a/testing/perl-clone-choose/APKBUILD b/testing/perl-clone-choose/APKBUILD
index 1853482b8eb..41d66a8f8fc 100644
--- a/testing/perl-clone-choose/APKBUILD
+++ b/testing/perl-clone-choose/APKBUILD
@@ -3,14 +3,13 @@
pkgname=perl-clone-choose
_pkgreal=Clone-Choose
pkgver=0.010
-pkgrel=2
+pkgrel=4
pkgdesc="Choose appropriate clone utility"
url="https://metacpan.org/release/Clone-Choose"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpancheckdepends="perl-test-without-module"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="perl"
+checkdepends="perl-test-without-module"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HE/HERMES/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-clone-pp/APKBUILD b/testing/perl-clone-pp/APKBUILD
index 795b5c34efd..d1a60c3d6af 100644
--- a/testing/perl-clone-pp/APKBUILD
+++ b/testing/perl-clone-pp/APKBUILD
@@ -1,29 +1,29 @@
-# 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-clone-pp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Clone-PP
-pkgver=1.07
-pkgrel=3
-pkgdesc="Recursively copy Perl datatypes"
-url="https://metacpan.org/release/Clone-PP"
+pkgver=1.08
+pkgrel=1
+pkgdesc="Perl module for Clone-PP"
+url="https://metacpan.org/release/Clone-PP/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/Clone-PP-$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 +31,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="28faae5dc42ff5ae850fe9f664dca8b52ff77823c5f157c62c52254fa4f1e217d3344f6e79a2ddad169f934e7be262dc79f32e885cb1d25db182050800ac805a Clone-PP-1.07.tar.gz"
+sha512sums="912898b0617597429a08a6b2717aec75ee9c3f41e2c05512f434a9cb82dad3274b4dbbc4332725248d7c6071eec670e6977c05994cef090df6f591cdfe2f606c Clone-PP-1.08.tar.gz"
diff --git a/testing/perl-color-ansi-util/APKBUILD b/testing/perl-color-ansi-util/APKBUILD
new file mode 100644
index 00000000000..828b67e02e6
--- /dev/null
+++ b/testing/perl-color-ansi-util/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-color-ansi-util
+pkgver=0.165
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Color-ANSI-Util
+pkgdesc="Routines for dealing with ANSI colors"
+url="https://metacpan.org/release/Color-ANSI-Util/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-color-rgb-util"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PERLANCAR/Color-ANSI-Util-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+219da41d94882cf2b31e91a4c117d6520832b2410cf96669d0afadb50cbcd85902f7513df1b7908c45cfafa6122e9c75641ba2d58bfc4444da78d1899c8bc62f Color-ANSI-Util-0.165.tar.gz
+"
diff --git a/testing/perl-color-rgb-util/APKBUILD b/testing/perl-color-rgb-util/APKBUILD
new file mode 100644
index 00000000000..2207468d4e4
--- /dev/null
+++ b/testing/perl-color-rgb-util/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-color-rgb-util
+pkgver=0.607
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Color-RGB-Util
+pkgdesc="Utilities related to RGB colors"
+url="https://metacpan.org/release/Color-RGB-Util/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-test-exception perl-test-randomresult"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PERLANCAR/Color-RGB-Util-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+1c38fe352918406071b63db389ce986e88619bcaac5c1a25ec061c352db7bd9e00db7951d4031ada1d67ec119b7f4a73d761aa484bbff980c4ed7045987d3aa1 Color-RGB-Util-0.607.tar.gz
+"
diff --git a/testing/perl-conf-libconfig/APKBUILD b/testing/perl-conf-libconfig/APKBUILD
index 10a199e0b08..285d2d4884a 100644
--- a/testing/perl-conf-libconfig/APKBUILD
+++ b/testing/perl-conf-libconfig/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-conf-libconfig
#_pkgreal is used by apkbuild-(m)cpan to find modules at MetaCpan
_pkgreal=Conf-Libconfig
-pkgver=0.100
-pkgrel=4
+pkgver=1.0.0
+pkgrel=1
pkgdesc="Perl extension for libconfig"
url="https://metacpan.org/release/Conf-Libconfig/"
arch="all"
@@ -15,6 +15,7 @@ makedepends="perl-dev libconfig-dev perl-test-deep perl-test-exception perl-extu
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CN/CNANGEL/Conf-Libconfig-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # https://github.com/cnangel/Conf-Libconfig/issues/3
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
@@ -32,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="52f652bd55131b0357aae6cc8f83811a4ceb5ec005977765ed70e5cb08f828c789d8bcbe247880c1807110b5486915dc90f84d52263b2e7f60adb2ee4654d2a3 Conf-Libconfig-0.100.tar.gz"
+sha512sums="
+3ad7c3fbe82adab7816fa6b1a8445df279f4d7c58ba72e88e5afcf7a85d11fa764cb30d3aa0e6a19ae7c6e96eba2544c8289a6bb06706310e26ae6a41fd1ca84 Conf-Libconfig-1.0.0.tar.gz
+"
diff --git a/testing/perl-constant-defer/APKBUILD b/testing/perl-constant-defer/APKBUILD
index 4d91054c3fe..6d1fc45fac1 100644
--- a/testing/perl-constant-defer/APKBUILD
+++ b/testing/perl-constant-defer/APKBUILD
@@ -4,25 +4,24 @@
pkgname=perl-constant-defer
_pkgreal=constant-defer
pkgver=6
-pkgrel=2
+pkgrel=5
pkgdesc="Constant subs with deferred value calculation."
url="https://metacpan.org/release/constant-defer"
arch="noarch"
license="open_source"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KR/KRYDE/$_pkgreal-$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
+ make
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+check() {
+ make test
}
package() {
@@ -30,4 +29,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="902916d32ed11737d34f8764af171ba1731de807ffbfd62e342f83bef05ab0a34ddaeec3f2c9b41814877b0568fc3e09fbf26e7ce2cd4a3dd6eeba75e6755b5f constant-defer-6.tar.gz"
+sha512sums="
+902916d32ed11737d34f8764af171ba1731de807ffbfd62e342f83bef05ab0a34ddaeec3f2c9b41814877b0568fc3e09fbf26e7ce2cd4a3dd6eeba75e6755b5f constant-defer-6.tar.gz
+"
diff --git a/testing/perl-constant-generate/APKBUILD b/testing/perl-constant-generate/APKBUILD
index ddd607c7140..eef78c8284c 100644
--- a/testing/perl-constant-generate/APKBUILD
+++ b/testing/perl-constant-generate/APKBUILD
@@ -4,25 +4,24 @@
pkgname=perl-constant-generate
_pkgreal=Constant-Generate
pkgver=0.17
-pkgrel=2
+pkgrel=5
pkgdesc="Common tasks for symbolic constants"
url="https://metacpan.org/release/Constant-Generate"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MN/MNUNBERG/$_pkgreal-$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
+ make
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+check() {
+ make test
}
package() {
@@ -30,4 +29,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6984d101ec26e7d2c35b45124a6d0240910acd30f47b9947a574e3dcd5d9365bb2d1773daae30c61237b903da929b564272aaf505f446a5e7b24a50970335a21 Constant-Generate-0.17.tar.gz"
+sha512sums="
+6984d101ec26e7d2c35b45124a6d0240910acd30f47b9947a574e3dcd5d9365bb2d1773daae30c61237b903da929b564272aaf505f446a5e7b24a50970335a21 Constant-Generate-0.17.tar.gz
+"
diff --git a/testing/perl-context-preserve/APKBUILD b/testing/perl-context-preserve/APKBUILD
index 12e64f2c81f..bbf78a323f2 100644
--- a/testing/perl-context-preserve/APKBUILD
+++ b/testing/perl-context-preserve/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-context-preserve
_pkgreal=Context-Preserve
pkgver=0.03
-pkgrel=2
+pkgrel=4
pkgdesc="Run code after a subroutine call, preserving the context"
url="https://metacpan.org/release/Context-Preserve"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpancheckdepends="perl-test-exception"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="perl"
+checkdepends="perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-couchbase/APKBUILD b/testing/perl-couchbase/APKBUILD
deleted file mode 100644
index 6a60ed1cb9b..00000000000
--- a/testing/perl-couchbase/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Nathan Johnson <nathan@nathanjohnson.info>
-# Maintainer: Nathan Johnson <nathan@nathanjohnson.info>
-pkgname=perl-couchbase
-_pkgreal=Couchbase
-pkgver=2.0.3
-pkgrel=8
-pkgdesc="Couchbase Client Library"
-url="https://metacpan.org/release/Couchbase"
-arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-constant-generate perl-uri perl-class-xsaccessor perl-json-maybexs"
-cpanmakedepends="perl-log-fu perl-test-class perl-dir-self"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends libcouchbase-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MN/MNUNBERG/$_pkgreal-$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}')
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="5d4fd37c828f8ddfa918ac30f50570b25fa6393fbb1b44527bc10a49e02fcc2a3a3fff4f687c33245bf5504fbc7392920f43b61946212ef27ec05e6c06f4e888 Couchbase-2.0.3.tar.gz"
diff --git a/testing/perl-cpan-changes/APKBUILD b/testing/perl-cpan-changes/APKBUILD
index 284b987f788..c1ccc2f0aec 100644
--- a/testing/perl-cpan-changes/APKBUILD
+++ b/testing/perl-cpan-changes/APKBUILD
@@ -1,34 +1,45 @@
-# 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-cpan-changes
+pkgver=0.500003
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CPAN-Changes
-pkgver=0.400002
-pkgrel=2
-pkgdesc="Read and write Changes files"
-url="https://metacpan.org/release/CPAN-Changes"
+pkgdesc="Parser for CPAN style change logs"
+url="https://metacpan.org/release/CPAN-Changes/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl perl-module-runtime perl-moo perl-sub-quote perl-type-tiny"
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/CPAN-Changes-$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
+ make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="d359073d9d5ed2126835d4895c1ee5288cc09e72202ba77441bb25cf13e9cd0f16d4040b7e2cf1785efd6e8ccbe7908415fb4fefeebe9c0548d838d2ac850dfb CPAN-Changes-0.400002.tar.gz"
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+f5a9b088a76579288d69b963e344bf0d3d17d90b2600770bf2b2d74103b960ba71b16a22e0f3279c45474f62f639899611fbd5e25e3d659efa52c7995037b790 CPAN-Changes-0.500003.tar.gz
+"
diff --git a/testing/perl-crypt-cast5/APKBUILD b/testing/perl-crypt-cast5/APKBUILD
deleted file mode 100644
index 3a84f93a219..00000000000
--- a/testing/perl-crypt-cast5/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
-pkgname=perl-crypt-cast5
-_pkgreal=Crypt-CAST5
-pkgver=0.05
-pkgrel=8
-pkgdesc="CAST5 block cipher"
-url="https://metacpan.org/release/Crypt-CAST5"
-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/B/BO/BOBMATH/$_pkgreal-$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}')
- make && make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="717e88f00211f2820a8a867a65ad7b563b6b3546c6399ca45393a31b253a8c75fb9a28d2d50eb79809b93c4745812181f2a12b371f3320c6467dcad21d92c994 Crypt-CAST5-0.05.tar.gz"
diff --git a/testing/perl-crypt-openssl-aes/APKBUILD b/testing/perl-crypt-openssl-aes/APKBUILD
deleted file mode 100644
index b4cbb6d2579..00000000000
--- a/testing/perl-crypt-openssl-aes/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Maintainer: Sergey Safarov <s.safarov@gmail.com>
-pkgname=perl-crypt-openssl-aes
-_realname=Crypt-OpenSSL-AES
-pkgver=0.02
-pkgrel=4
-pkgdesc="Perl module Crypt-OpenSSL-AES"
-url="https://metacpan.org/release/TTAR/Crypt-OpenSSL-AES-0.02"
-arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev openssl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TT/TTAR/$_realname-$pkgver.tar.gz"
-
-builddir="$srcdir"/$_realname-$pkgver
-
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="cac503bfa22d82d8cb1873ce97aeee4f2d698a7c0d27bcc055d2e8984094c098b0244498ee80425e0c699d46d1b204c8894fd0538dd2dc1d3ea0f87c593fc918 Crypt-OpenSSL-AES-0.02.tar.gz"
diff --git a/testing/perl-crypt-random-seed/APKBUILD b/testing/perl-crypt-random-seed/APKBUILD
new file mode 100644
index 00000000000..0c2ac7b2e8f
--- /dev/null
+++ b/testing/perl-crypt-random-seed/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-crypt-random-seed
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Crypt-Random-Seed
+pkgver=0.03
+pkgrel=0
+pkgdesc="Provide strong randomness for seeding"
+url="https://metacpan.org/release/Crypt-Random-Seed/"
+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/DANAJ/Crypt-Random-Seed-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5ee6ea67c325aa9693c96ef650e3888a599d3d7e25316f869808dc6e06b9dd86f1c200c9097939f74511e2ed59e48df1b28cc96e5f7988076d9f7f5d840a894e Crypt-Random-Seed-0.03.tar.gz
+"
diff --git a/testing/perl-crypt-saltedhash/APKBUILD b/testing/perl-crypt-saltedhash/APKBUILD
index 78193f03247..7a5d6af64d7 100644
--- a/testing/perl-crypt-saltedhash/APKBUILD
+++ b/testing/perl-crypt-saltedhash/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-crypt-saltedhash
_pkgreal=Crypt-SaltedHash
pkgver=0.09
-pkgrel=3
+pkgrel=5
pkgdesc="Perl interface to functions that assist in working with salted hashes"
url="https://metacpan.org/release/Crypt-SaltedHash"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-test-fatal"
depends="perl"
-makedepends="perl-dev $cpanmakedepends"
+makedepends="perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GS/GSHANK/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-crypt-urandom/APKBUILD b/testing/perl-crypt-urandom/APKBUILD
deleted file mode 100644
index a19002708f9..00000000000
--- a/testing/perl-crypt-urandom/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-crypt-urandom
-_pkgreal=Crypt-URandom
-pkgver=0.36
-pkgrel=2
-pkgdesc="Provide non blocking randomness"
-url="https://metacpan.org/release/Crypt-URandom"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DD/DDICK/$_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="59e6773d808f34f242f2520ed236faeed804d623fbcf4f1b8e7b39ed215ff1cde9f76ce4a9f5f260dfac42b036229a56cdb49a7f6856d5e943ed4d50e3392adc Crypt-URandom-0.36.tar.gz"
diff --git a/testing/perl-css-object/APKBUILD b/testing/perl-css-object/APKBUILD
new file mode 100644
index 00000000000..a2d555614b5
--- /dev/null
+++ b/testing/perl-css-object/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-css-object
+pkgver=0.1.6
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=CSS-Object
+pkgdesc="Object-oriented CSS parser and manipulation interface"
+url="https://metacpan.org/release/CSS-Object/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-devel-confess perl-module-generic perl-want"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/CSS-Object-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4f7aeb5086d58a1466b4ac21fd931fdd2d8d11114a8e1b218ccb76c454a5df35e427ae64d1383564ce19aee8c933216d9e4b79303d8c0299eefd95014fd43e2e CSS-Object-v0.1.6.tar.gz
+"
diff --git a/testing/perl-curry/APKBUILD b/testing/perl-curry/APKBUILD
new file mode 100644
index 00000000000..d76ea30738f
--- /dev/null
+++ b/testing/perl-curry/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-curry
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=curry
+pkgver=2.000001
+pkgrel=0
+pkgdesc="Create automatic curried method call closures for any class or object"
+url="https://metacpan.org/release/curry/"
+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/M/MS/MSTROUT/curry-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ed86de9dd5af7a3413d0b601975b3efbbcb72fe8c02ca351afcc3af872a59cd78f5a392dea6e545211a97f9994d0655d3f1787973e9f0bf44aa01db97c9afd76 curry-2.000001.tar.gz
+"
diff --git a/testing/perl-daemon-control/APKBUILD b/testing/perl-daemon-control/APKBUILD
index 4933a2f20e5..24598d277cd 100644
--- a/testing/perl-daemon-control/APKBUILD
+++ b/testing/perl-daemon-control/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-daemon-control
_pkgreal=Daemon-Control
pkgver=0.001010
-pkgrel=0
+pkgrel=2
pkgdesc="Create init scripts in Perl"
url="https://metacpan.org/release/Daemon-Control"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SY/SYMKAT/Daemon-Control-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-dancer-plugin-auth-extensible/APKBUILD b/testing/perl-dancer-plugin-auth-extensible/APKBUILD
index f301442cf2a..7372ee361ae 100644
--- a/testing/perl-dancer-plugin-auth-extensible/APKBUILD
+++ b/testing/perl-dancer-plugin-auth-extensible/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-dancer-plugin-auth-extensible
_pkgreal=Dancer-Plugin-Auth-Extensible
pkgver=1.00
-pkgrel=2
+pkgrel=5
pkgdesc="extensible authentication framework for Dancer apps"
url="https://metacpan.org/release/Dancer-Plugin-Auth-Extensible"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-dancer perl-crypt-saltedhash"
-depends="perl-yaml $cpandepends"
-makedepends="perl-dev"
+depends="perl perl-yaml perl-dancer perl-crypt-saltedhash"
+checkdepends="perl-test-longstring"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -38,4 +37,6 @@ check() {
make test
}
-sha512sums="e9b84ed97328d4efe53d07eb7d84a82b012a56acd5dc05de025849fe7c40875d3af52a7b1e501cd15eba0fc8b930cac32007daebf4fb75a1aa431af4bbfd1418 Dancer-Plugin-Auth-Extensible-1.00.tar.gz"
+sha512sums="
+e9b84ed97328d4efe53d07eb7d84a82b012a56acd5dc05de025849fe7c40875d3af52a7b1e501cd15eba0fc8b930cac32007daebf4fb75a1aa431af4bbfd1418 Dancer-Plugin-Auth-Extensible-1.00.tar.gz
+"
diff --git a/testing/perl-dancer-plugin-dbic/APKBUILD b/testing/perl-dancer-plugin-dbic/APKBUILD
index ff8a58ca62a..c17035bb7fe 100644
--- a/testing/perl-dancer-plugin-dbic/APKBUILD
+++ b/testing/perl-dancer-plugin-dbic/APKBUILD
@@ -4,17 +4,13 @@
pkgname=perl-dancer-plugin-dbic
_pkgreal=Dancer-Plugin-DBIC
pkgver=0.2104
-pkgrel=3
+pkgrel=5
pkgdesc="DBIx::Class interface for Dancer applications"
url="https://metacpan.org/release/Dancer-Plugin-DBIC"
arch="noarch !armv7"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-dancer perl-dbicx-sugar"
-cpancheckdepends="perl-dbd-sqlite perl-dbix-class perl-test-exception
- perl-dbi perl-test-requires"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="perl perl-dancer perl-dbicx-sugar"
+checkdepends="perl-dbd-sqlite perl-dbix-class perl-test-exception perl-dbi perl-test-requires perl-test-longstring"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IR/IRONCAMEL/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -41,4 +37,6 @@ check() {
make test
}
-sha512sums="9a3fea9209aceb018a5d2f804ccfc61b3c073584ea7448a3fe44dba7cdfbbb4136705fc0b27f3db2165357940e92a0fc98c1f959a320fa9fe36326ba70dc1057 Dancer-Plugin-DBIC-0.2104.tar.gz"
+sha512sums="
+9a3fea9209aceb018a5d2f804ccfc61b3c073584ea7448a3fe44dba7cdfbbb4136705fc0b27f3db2165357940e92a0fc98c1f959a320fa9fe36326ba70dc1057 Dancer-Plugin-DBIC-0.2104.tar.gz
+"
diff --git a/testing/perl-dancer-plugin-passphrase/APKBUILD b/testing/perl-dancer-plugin-passphrase/APKBUILD
index 345458de86b..10d08f83222 100644
--- a/testing/perl-dancer-plugin-passphrase/APKBUILD
+++ b/testing/perl-dancer-plugin-passphrase/APKBUILD
@@ -4,17 +4,17 @@
pkgname=perl-dancer-plugin-passphrase
_pkgreal=Dancer-Plugin-Passphrase
pkgver=2.0.1
-pkgrel=2
+pkgrel=4
pkgdesc="Passphrases and Passwords as objects for Dancer"
url="https://metacpan.org/release/Dancer-Plugin-Passphrase"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-dancer perl-data-entropy perl-digest-bcrypt"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-dancer perl-data-entropy perl-digest-bcrypt"
+checkdepends="perl-crypt-bcrypt"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/J/JA/JAITKEN/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # fail some digit test since haven't been updated in 10 years
prepare() {
default_prepare
@@ -38,4 +38,6 @@ check() {
make test
}
-sha512sums="c9a09748f2d211c26c3ec4fe41f992a8143ffeaef215489762200eafd8576173e3838fb7e510c8dbe7b9d8395b485532e855093c2145eeaf73694d5baa07be1e Dancer-Plugin-Passphrase-2.0.1.tar.gz"
+sha512sums="
+c9a09748f2d211c26c3ec4fe41f992a8143ffeaef215489762200eafd8576173e3838fb7e510c8dbe7b9d8395b485532e855093c2145eeaf73694d5baa07be1e Dancer-Plugin-Passphrase-2.0.1.tar.gz
+"
diff --git a/testing/perl-dancer-plugin-swig/APKBUILD b/testing/perl-dancer-plugin-swig/APKBUILD
deleted file mode 100644
index 7ef2d903cb8..00000000000
--- a/testing/perl-dancer-plugin-swig/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
-# Maintainer:
-pkgname=perl-dancer-plugin-swig
-_pkgreal=Dancer-Plugin-Swig
-pkgver=0.02
-pkgrel=2
-pkgdesc="A plugin for swig client"
-url="https://metacpan.org/release/Dancer-Plugin-Swig"
-arch="" # blocked by perl-webservice-swigclient
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl perl-dancer perl-webservice-swigclient"
-cpanmakedepends="perl-test-most perl-test-easy"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LO/LOGIE/$_pkgreal-$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}')
- make && make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="81a72c1af8a2e7e9c01b0a6c7d79d54f54eda3fa1394670108d516ab1688a9bbce7e1130fba6e2d08d5feb8342dd2cf3c6c3541db4a0f69fd3b22b3595c3652f Dancer-Plugin-Swig-0.02.tar.gz"
diff --git a/testing/perl-dancer-session-cookie/APKBUILD b/testing/perl-dancer-session-cookie/APKBUILD
index 9bdcda1dba1..791479d099a 100644
--- a/testing/perl-dancer-session-cookie/APKBUILD
+++ b/testing/perl-dancer-session-cookie/APKBUILD
@@ -4,19 +4,20 @@
pkgname=perl-dancer-session-cookie
_pkgreal=Dancer-Session-Cookie
pkgver=0.30
-pkgrel=0
+pkgrel=2
pkgdesc="Encrypted cookie-based session backend for Dancer"
options="!check" # redirect-session-dancer fails
url="https://metacpan.org/release/Dancer-Session-Cookie"
-arch="noarch"
+arch="noarch !armv7 !armhf" # perl-session-storage-secure -> perl-sereal-encoder
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-dancer perl-session-storage-secure perl-string-crc32
- perl-crypt-rijndael perl-crypt-cbc perl-time-duration-parse"
-cpancheckdepends="perl-test-exception perl-test-nowarnings perl-http-message
- perl-http-cookies perl-plack perl-http-date"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="
+ perl perl-dancer perl-session-storage-secure perl-string-crc32 perl-crypt-rijndael
+ perl-crypt-cbc perl-time-duration-parse
+ "
+checkdepends="
+ perl-test-exception perl-test-nowarnings perl-http-message perl-http-cookies perl-plack
+ perl-http-date
+ "
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Dancer-Session-Cookie-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-data-dumper-concise/APKBUILD b/testing/perl-data-dumper-concise/APKBUILD
index 158a4b3c9f4..39248b1c93f 100644
--- a/testing/perl-data-dumper-concise/APKBUILD
+++ b/testing/perl-data-dumper-concise/APKBUILD
@@ -4,12 +4,12 @@
pkgname=perl-data-dumper-concise
_pkgreal=Data-Dumper-Concise
pkgver=2.023
-pkgrel=2
+pkgrel=4
pkgdesc="Less indentation and newlines plus sub deparsing"
url="https://metacpan.org/release/Data-Dumper-Concise"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-data-entropy/APKBUILD b/testing/perl-data-entropy/APKBUILD
deleted file mode 100644
index 0f064fadff6..00000000000
--- a/testing/perl-data-entropy/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-data-entropy
-_pkgreal=Data-Entropy
-pkgver=0.007
-pkgrel=3
-pkgdesc="entropy (randomness) management"
-url="https://metacpan.org/release/Data-Entropy"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-data-float perl-http-lite perl-params-classify perl-crypt-rijndael"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-build"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/$_pkgreal-$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}')
- ./Build
-}
-
-package() {
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- ./Build test
-}
-
-sha512sums="f845fabcac67ab16d44f8bbefa0fc09df171efd6cd9ae2f2ee7e189cbb707cf074705763a022941cbfdda5ab4e03b85eacdb7942a504644a40970c42b5a7e0b9 Data-Entropy-0.007.tar.gz"
diff --git a/testing/perl-data-float/APKBUILD b/testing/perl-data-float/APKBUILD
deleted file mode 100644
index a0f883688bb..00000000000
--- a/testing/perl-data-float/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-data-float
-_pkgreal=Data-Float
-pkgver=0.013
-pkgrel=2
-pkgdesc="details of the floating point data type"
-url="https://metacpan.org/release/Data-Float"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev perl-module-build"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/$_pkgreal-$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}')
- ./Build
-}
-
-package() {
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- ./Build test
-}
-
-sha512sums="7e3be7843df30e581bd8937fde226ac6f24100206a376e1dbed2d4699c95d3f39a25cd1485f5871c46adba88d2fb1899efcd326f908797cdc985ec713cd9a90f Data-Float-0.013.tar.gz"
diff --git a/testing/perl-data-printer/APKBUILD b/testing/perl-data-printer/APKBUILD
deleted file mode 100644
index e5f93ada9ee..00000000000
--- a/testing/perl-data-printer/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-data-printer
-_pkgreal=Data-Printer
-pkgver=0.40
-pkgrel=2
-pkgdesc="Colored pretty-print of Perl data structures and objects"
-url="https://metacpan.org/release/Data-Printer"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-sort-naturally perl-package-stash perl-file-homedir perl-clone-pp"
-depends="$cpandepends"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/G/GA/GARU/$_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="9aa92013c4d1f43a654f2e40f797a20f2fc5576d9496bc40bfe4b63e3f2c5893ffb4b83aaeca9c27ca09ab248e18ec44c1a0ca5a34cf140f62522f7adf15f446 Data-Printer-0.40.tar.gz"
diff --git a/testing/perl-data-validate-domain/APKBUILD b/testing/perl-data-validate-domain/APKBUILD
new file mode 100644
index 00000000000..6bcb004f10f
--- /dev/null
+++ b/testing/perl-data-validate-domain/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-data-validate-domain
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Data-Validate-Domain
+pkgver=0.15
+pkgrel=0
+pkgdesc="Domain and host name validation"
+url="https://metacpan.org/release/Data-Validate-Domain/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-net-domain-tld"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Data-Validate-Domain-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+76cfae536841e69f3694f2cf88321718ffbafa0376faec6763f295650c67e550c90c640a444616482acf7175337a646f80938255eeb32204f827a891a91d0195 Data-Validate-Domain-0.15.tar.gz
+"
diff --git a/testing/perl-data-validate-ip/APKBUILD b/testing/perl-data-validate-ip/APKBUILD
new file mode 100644
index 00000000000..455a7d2c58a
--- /dev/null
+++ b/testing/perl-data-validate-ip/APKBUILD
@@ -0,0 +1,41 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=perl-data-validate-ip
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Data-Validate-IP
+pkgver=0.31
+pkgrel=1
+pkgdesc="IPv4 and IPv6 validation methods"
+url="https://metacpan.org/release/Data-Validate-IP/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-netaddr-ip"
+checkdepends="perl-test-requires"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Data-Validate-IP-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# secfixes:
+# 0.30-r0:
+# - CVE-2021-29662
+
+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="
+22ea6a8673fa07d405cb2f8645bd019265abf4104057c73d0399951a837549cedb97737f50b2e9e605202679c85ae5a7b7a24dd8d9fd8736624551b0b41fd6d8 Data-Validate-IP-0.31.tar.gz
+"
diff --git a/testing/perl-database-async-engine-postgresql/APKBUILD b/testing/perl-database-async-engine-postgresql/APKBUILD
new file mode 100644
index 00000000000..64eaeaa72c4
--- /dev/null
+++ b/testing/perl-database-async-engine-postgresql/APKBUILD
@@ -0,0 +1,57 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-database-async-engine-postgresql
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Database-Async-Engine-PostgreSQL
+pkgver=1.004
+pkgrel=0
+pkgdesc="PostgreSQL support for Database::Async"
+url="https://metacpan.org/release/Database-Async-Engine-PostgreSQL/"
+arch="noarch !armhf !armv7 !x86" # perl-ryu
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-bytes-random-secure perl-config-tiny
+ perl-cryptx perl-curry perl-database-async
+ perl-file-homedir perl-future perl-future-asyncawait
+ perl-indirect perl-io-async-ssl perl-log-any perl-path-tiny
+ perl-protocol-database-postgresql perl-ryu perl-ryu-async
+ perl-syntax-keyword-try perl-template-toolkit
+ perl-unicode-utf8 perl-uri perl-uri-db
+ "
+checkdepends="
+ perl-log-any-adapter-tap perl-test-checkdeps perl-test-deep
+ perl-test-fatal perl-test-mockmodule perl-test-refcount
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Database-Async-Engine-PostgreSQL-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+89a0b5a2151349761ca9c517ea12e264fe5c940bd90dad726c90d10d4fc6d61f72755371023155d9758396f0aa378bb144320cb34e673f53acc3e5b83ca243ed Database-Async-Engine-PostgreSQL-1.004.tar.gz
+"
diff --git a/testing/perl-database-async/APKBUILD b/testing/perl-database-async/APKBUILD
new file mode 100644
index 00000000000..921da1f25ee
--- /dev/null
+++ b/testing/perl-database-async/APKBUILD
@@ -0,0 +1,53 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-database-async
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Database-Async
+pkgver=0.019
+pkgrel=0
+pkgdesc="Database abstraction layer for IO::Async"
+url="https://metacpan.org/release/Database-Async/"
+arch="noarch !armhf !armv7 !x86" # perl-ryu
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-method-modifiers perl-curry
+ perl-future perl-future-asyncawait perl-indirect
+ perl-io-async perl-json-maybeutf8 perl-list-utilsby
+ perl-log-any perl-path-tiny perl-ryu perl-ryu-async
+ perl-syntax-keyword-try perl-template-toolkit
+ perl-uri perl-uri-db perl-yaml-libyaml
+ "
+checkdepends="perl-test-checkdeps perl-test-fatal perl-test-refcount"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Database-Async-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+16fe6f0a300ef594ad2edd655fe8b48450caa54d37367d11c479aea391c6c03b45aacf41bc94b3ca039019c4b4aee22e588ec4b412a82a7de0963b0e6d65f2c9 Database-Async-0.019.tar.gz
+"
diff --git a/testing/perl-datetime-format-atom/APKBUILD b/testing/perl-datetime-format-atom/APKBUILD
new file mode 100644
index 00000000000..1deecc2f6b6
--- /dev/null
+++ b/testing/perl-datetime-format-atom/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-datetime-format-atom
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DateTime-Format-Atom
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="Parse and format Atom datetime strings"
+url="https://metacpan.org/release/DateTime-Format-Atom/"
+arch="noarch"
+license="CC0-1.0"
+depends="perl perl-datetime-format-rfc3339"
+checkdepends="perl-test-pod"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/I/IK/IKEGAMI/DateTime-Format-Atom-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+96a05bad744eedb5fdae950959b4d8309e4a0f56ca238ba8abf26418da102160f3f5f49813d92fbab92fc0a6971e95f6b23b3b7e4f4abfb74a8ab9669c80eac1 DateTime-Format-Atom-v1.6.0.tar.gz
+"
diff --git a/testing/perl-datetime-format-flexible/APKBUILD b/testing/perl-datetime-format-flexible/APKBUILD
new file mode 100644
index 00000000000..1f9921393d7
--- /dev/null
+++ b/testing/perl-datetime-format-flexible/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-datetime-format-flexible
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DateTime-Format-Flexible
+pkgver=0.34
+pkgrel=0
+pkgdesc="Flexibly parse strings and turn them into DateTime objects"
+url="https://metacpan.org/release/DateTime-Format-Flexible/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-datetime perl-datetime-format-builder
+ perl-datetime-timezone perl-list-moreutils
+ "
+checkdepends="perl-test-exception perl-test-mocktime perl-test-nowarnings"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TH/THINC/DateTime-Format-Flexible-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+2b2d730aaa9c8f6152f57493b8a0b2f9600b06dcdf2776bd1cb3fbf26c3b5ab31351a32fccb5072ed7410b558354fb3f9e3e8fa5af99da846fc623ae25e1f763 DateTime-Format-Flexible-0.34.tar.gz
+"
diff --git a/testing/perl-datetime-format-rfc3339/APKBUILD b/testing/perl-datetime-format-rfc3339/APKBUILD
new file mode 100644
index 00000000000..bd6000bc752
--- /dev/null
+++ b/testing/perl-datetime-format-rfc3339/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-datetime-format-rfc3339
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DateTime-Format-RFC3339
+pkgver=1.8.0
+pkgrel=0
+pkgdesc="Parse and format RFC3339 datetime strings"
+url="https://metacpan.org/release/DateTime-Format-RFC3339/"
+arch="noarch"
+license="CC0-1.0"
+depends="perl perl-datetime"
+checkdepends="perl-test-pod"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b86426c8a02fd582c45c8f73c21ac445eb4984df742decb697a8c117f6054374b6870099dc74f37260f635968017950fbd98ce80a0b25064472dd184187204ad DateTime-Format-RFC3339-v1.8.0.tar.gz
+"
diff --git a/testing/perl-datetime-format-sqlite/APKBUILD b/testing/perl-datetime-format-sqlite/APKBUILD
deleted file mode 100644
index 30a5753f2a9..00000000000
--- a/testing/perl-datetime-format-sqlite/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-datetime-format-sqlite
-_pkgreal=DateTime-Format-SQLite
-pkgver=0.11
-pkgrel=2
-pkgdesc="Parse and format SQLite dates and times"
-url="https://metacpan.org/release/DateTime-Format-SQLite"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-datetime-format-builder perl-datetime"
-depends="$cpandepends"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CF/CFAERBER/$_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="061f831c2a8d653706d315c1cff24ad887e3f8c65afdbd2140066735649c097be921f217e6e2761f8f34604066c618f296d40e9c650c3a1bb085cadbdfa7b7b9 DateTime-Format-SQLite-0.11.tar.gz"
diff --git a/testing/perl-datetime-timezone-alias/APKBUILD b/testing/perl-datetime-timezone-alias/APKBUILD
new file mode 100644
index 00000000000..0818b5a5a13
--- /dev/null
+++ b/testing/perl-datetime-timezone-alias/APKBUILD
@@ -0,0 +1,44 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-datetime-timezone-alias
+pkgver=0.06
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DateTime-TimeZone-Alias
+pkgdesc="Create aliases for DateTime timezones"
+url="https://metacpan.org/release/DateTime-TimeZone-Alias/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-datetime perl-datetime-timezone"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JH/JHOBLITT/DateTime-TimeZone-Alias-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ TZ=UTC ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+eec339b2819e002cce4d52d4dee5a07fcb653bd738d94a359be3182d0c2b846b087057491a8aa5912ebe29cd80a19b42f275869c1ba24236edb47e81ccd9e38c DateTime-TimeZone-Alias-0.06.tar.gz
+"
diff --git a/testing/perl-datetime-timezone-catalog-extend/APKBUILD b/testing/perl-datetime-timezone-catalog-extend/APKBUILD
new file mode 100644
index 00000000000..0f94d65f2ef
--- /dev/null
+++ b/testing/perl-datetime-timezone-catalog-extend/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-datetime-timezone-catalog-extend
+pkgver=0.3.1
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DateTime-TimeZone-Catalog-Extend
+pkgdesc="Extend DateTime::TimeZone catalog"
+url="https://metacpan.org/release/DateTime-TimeZone-Catalog-Extend/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-datetime-timezone-alias perl-nice-try"
+checkdepends="perl-datetime-timezone"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/DateTime-TimeZone-Catalog-Extend-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make TZ=UTC test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+26a52f76433c311ee91fc928608d533b73431b44a7243d0eb80246c38569f143727b91ac25e71295d2d770bb79be09607aa67027d3f74c1b49e016cd02acc9ca DateTime-TimeZone-Catalog-Extend-v0.3.1.tar.gz
+"
diff --git a/testing/perl-dbicx-sugar/APKBUILD b/testing/perl-dbicx-sugar/APKBUILD
index 127d0bf571d..830a9324a8f 100644
--- a/testing/perl-dbicx-sugar/APKBUILD
+++ b/testing/perl-dbicx-sugar/APKBUILD
@@ -4,16 +4,14 @@
pkgname=perl-dbicx-sugar
_pkgreal=DBICx-Sugar
pkgver=0.0200
-pkgrel=3
+pkgrel=5
pkgdesc="Just some syntax sugar for DBIx::Class"
url="https://metacpan.org/release/DBICx-Sugar"
arch="noarch !armv7" # tests fails on armv7
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-sql-translator perl-dbix-class perl-clone-choose"
-cpancheckdepends="perl-dbi perl-test-modern perl-test-requires"
-depends="$cpandepends"
-makedepends="perl-dev perl-dbd-sqlite"
-checkdepends="$cpancheckdepends perl-moose"
+depends="perl perl-sql-translator perl-dbix-class perl-clone-choose"
+makedepends="perl-dbd-sqlite"
+checkdepends="perl-dbi perl-test-modern perl-test-requires perl-moose"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IR/IRONCAMEL/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-dbix-class-candy/APKBUILD b/testing/perl-dbix-class-candy/APKBUILD
index c3406b6097e..75a5da0d203 100644
--- a/testing/perl-dbix-class-candy/APKBUILD
+++ b/testing/perl-dbix-class-candy/APKBUILD
@@ -4,17 +4,16 @@
pkgname=perl-dbix-class-candy
_pkgreal=DBIx-Class-Candy
pkgver=0.005003
-pkgrel=3
+pkgrel=5
pkgdesc="Sugar for your favorite ORM, DBIx::Class"
url="https://metacpan.org/release/DBIx-Class-Candy"
arch="noarch !armv7"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-sub-exporter perl-string-camelcase perl-mro-compat
- perl-namespace-clean perl-dbix-class perl-lingua-en-inflect perl-clone-choose"
-cpancheckdepends="perl-test-deep perl-test-fatal"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="
+ perl perl-sub-exporter perl-string-camelcase perl-mro-compat perl-namespace-clean
+ perl-dbix-class perl-lingua-en-inflect perl-clone-choose
+ "
+checkdepends="perl-test-deep perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/F/FR/FREW/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-dbix-class-helpers/APKBUILD b/testing/perl-dbix-class-helpers/APKBUILD
index f447f2bb3db..1ab965cd6a3 100644
--- a/testing/perl-dbix-class-helpers/APKBUILD
+++ b/testing/perl-dbix-class-helpers/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-dbix-class-helpers
_pkgreal=DBIx-Class-Helpers
pkgver=2.036000
-pkgrel=0
+pkgrel=3
pkgdesc="Simplify the common case stuff for DBIx::Class."
url="https://metacpan.org/release/DBIx-Class-Helpers"
arch="noarch !armv7"
diff --git a/testing/perl-dbix-class/APKBUILD b/testing/perl-dbix-class/APKBUILD
index b716f99476f..544c09a8ae3 100644
--- a/testing/perl-dbix-class/APKBUILD
+++ b/testing/perl-dbix-class/APKBUILD
@@ -1,41 +1,58 @@
-# 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-dbix-class
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DBIx-Class
-pkgver=0.082841
-pkgrel=3
+pkgver=0.082843
+pkgrel=1
pkgdesc="Extensible and flexible object <-> relational mapper."
-url="https://metacpan.org/release/DBIx-Class"
+url="https://metacpan.org/release/DBIx-Class/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-path-class perl-namespace-clean perl-context-preserve
- perl-try-tiny perl-devel-globaldestruction perl-mro-compat
- perl-sql-abstract perl-class-c3-componentised perl-sub-name
- perl-class-inspector perl-config-any perl-module-find perl-dbi
- perl-data-dumper-concise perl-class-accessor-grouped perl-scope-guard
- perl-moo perl-hash-merge perl-data-page"
-cpanmakedepends="perl-package-stash perl-test-exception perl-test-deep
- perl-dbd-sqlite perl-test-warn"
-cpancheckdepends="perl-clone-choose"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install $cpanmakedepends"
-checkdepends="$cpancheckdepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/$_pkgreal-$pkgver.tar.gz
+depends="
+ perl
+ perl-class-accessor-grouped
+ perl-class-c3-componentised
+ perl-class-inspector
+ perl-config-any
+ perl-context-preserve
+ perl-data-dumper-concise
+ perl-dbi
+ perl-devel-globaldestruction
+ perl-hash-merge
+ perl-module-find
+ perl-moo
+ perl-mro-compat
+ perl-namespace-clean
+ perl-path-class
+ perl-scope-guard
+ perl-sql-abstract-classic
+ perl-sub-name
+ perl-try-tiny
+ "
+makedepends="
+ perl-dbd-sqlite
+ perl-dev
+ perl-package-stash
+ perl-test-deep
+ perl-test-exception
+ perl-test-warn
"
+checkdepends="perl-clone-choose"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/DBIx-Class-$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() {
@@ -43,9 +60,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="a9c54c0cdb7a2dc93a4b3acb90974e6db80d5eaa95c723c0c3895c99b53be00ed182d4cdc6c5350ee7f120f29172c06494d5c647b8eb4643b91387c0ffee694b DBIx-Class-0.082841.tar.gz"
+sha512sums="
+395752fd2568580c7a35598c4e2a30210e6ee5dc382dc56338ca6e20effa083e2bb31ebe6c715f2bd421699de10570551b1c4c25772c0f8b071f64787b041d7c DBIx-Class-0.082843.tar.gz
+"
diff --git a/testing/perl-dbix-datasource/APKBUILD b/testing/perl-dbix-datasource/APKBUILD
index 91fc5b8d3d0..42ca6fa1ccc 100644
--- a/testing/perl-dbix-datasource/APKBUILD
+++ b/testing/perl-dbix-datasource/APKBUILD
@@ -1,17 +1,15 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-dbix-datasource
_pkgreal=DBIx-DataSource
pkgver=0.02
-pkgrel=3
+pkgrel=5
pkgdesc="Database-independant create and drop functions"
url="https://metacpan.org/release/DBIx-DataSource"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-dbi"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-dbi"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IV/IVAN/$_pkgreal-$pkgver.tar.gz"
diff --git a/testing/perl-dbix-introspector/APKBUILD b/testing/perl-dbix-introspector/APKBUILD
index cca6a37d8ca..1cac480325e 100644
--- a/testing/perl-dbix-introspector/APKBUILD
+++ b/testing/perl-dbix-introspector/APKBUILD
@@ -4,16 +4,13 @@
pkgname=perl-dbix-introspector
_pkgreal=DBIx-Introspector
pkgver=0.001005
-pkgrel=2
+pkgrel=4
pkgdesc="Detect what database you are connected to"
url="https://metacpan.org/release/DBIx-Introspector"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-dbi perl-moo"
-cpancheckdepends="perl-dbd-sqlite perl-test-roo"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="perl-test-fatal $cpancheckdepends"
+depends="perl perl-dbi perl-moo"
+checkdepends="perl-test-fatal perl-dbd-sqlite perl-test-roo"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/F/FR/FREW/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-devel-confess/APKBUILD b/testing/perl-devel-confess/APKBUILD
new file mode 100644
index 00000000000..df273224bfe
--- /dev/null
+++ b/testing/perl-devel-confess/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-devel-confess
+pkgver=0.009004
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Devel-Confess
+pkgdesc="Include stack traces on all warnings and errors"
+url="https://metacpan.org/release/Devel-Confess/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-universal-can perl-universal-isa"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Devel-Confess-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+29f807e378bcb286d111f82f9ad564a610ca9813ba040a137ef149179c6909859f46a4a528eed6aea12162cdb291d8f79c7f7864c64b0ce77a44d16c3d207f25 Devel-Confess-0.009004.tar.gz
+"
diff --git a/testing/perl-devel-leak/APKBUILD b/testing/perl-devel-leak/APKBUILD
index 3932aa33062..93ff0abed38 100644
--- a/testing/perl-devel-leak/APKBUILD
+++ b/testing/perl-devel-leak/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-devel-leak
_pkgreal=Devel-Leak
pkgver=0.03
-pkgrel=8
+pkgrel=12
pkgdesc="Utility for looking for perl objects that are not reclaimed"
url="https://metacpan.org/release/Devel-Leak"
arch="all"
diff --git a/testing/perl-devel-refcount/APKBUILD b/testing/perl-devel-refcount/APKBUILD
new file mode 100644
index 00000000000..e9dfea4feb5
--- /dev/null
+++ b/testing/perl-devel-refcount/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-devel-refcount
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Devel-Refcount
+pkgver=0.10
+pkgrel=0
+pkgdesc="Obtain the REFCNT value of a referent"
+url="https://metacpan.org/release/Devel-Refcount/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Devel-Refcount-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+5020df05fa8f49ac98a19b5795ee6caed20c44e6dab2cca80e2a2f6e30a5384f196175b53093d14c78b6a66555d80042540e19461b10c7dce46fa6a8f7190767 Devel-Refcount-0.10.tar.gz
+"
diff --git a/testing/perl-digest-bcrypt/APKBUILD b/testing/perl-digest-bcrypt/APKBUILD
index ad57e334458..59d9eacb750 100644
--- a/testing/perl-digest-bcrypt/APKBUILD
+++ b/testing/perl-digest-bcrypt/APKBUILD
@@ -3,17 +3,14 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-digest-bcrypt
_pkgreal=Digest-Bcrypt
-pkgver=1.209
-pkgrel=2
+pkgver=1.212
+pkgrel=1
pkgdesc="Perl interface to the bcrypt digest algorithm"
url="https://metacpan.org/release/Digest-Bcrypt"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-crypt-eksblowfish"
-cpancheckdepends="perl-try-tiny"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="perl perl-crypt-eksblowfish"
+checkdepends="perl-try-tiny perl-crypt-bcrypt"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -40,4 +37,6 @@ check() {
make test
}
-sha512sums="d7e837c2cbcf7fe8713481cb6156b9ac1b4cd5922df82de2b68f0b087ceba5155c945d05086f859524510c1281e911eb8e26e3b315ec883b0cb7c11c06400eb7 Digest-Bcrypt-1.209.tar.gz"
+sha512sums="
+d2bf23d0eefda35d152c4ec5336032e585897fd69a95766832933dada2d131778d751c65845034b028c8224bef3abbfe0df1a725f0c702d94913c029958edcd1 Digest-Bcrypt-1.212.tar.gz
+"
diff --git a/testing/perl-digest-crc/APKBUILD b/testing/perl-digest-crc/APKBUILD
new file mode 100644
index 00000000000..a4b3357e1d2
--- /dev/null
+++ b/testing/perl-digest-crc/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-digest-crc
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Digest-CRC
+pkgver=0.24
+pkgrel=0
+pkgdesc="Perl module for calculating CRC sums"
+url="https://metacpan.org/release/Digest-CRC/"
+arch="all"
+license="Public-Domain"
+depends="perl"
+makedepends="perl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/O/OL/OLIMAUL/Digest-CRC-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+c536cbcc5c4d336b8ec0e9f7737b5d06fbde8cfacd9b0247320b903ce868fefdf583c2bf4cedb306dc5885b7761bbcc58d385e17e939f6300206907d860110dd Digest-CRC-0.24.tar.gz
+"
diff --git a/testing/perl-dns-unbound/APKBUILD b/testing/perl-dns-unbound/APKBUILD
new file mode 100644
index 00000000000..5551e810f4f
--- /dev/null
+++ b/testing/perl-dns-unbound/APKBUILD
@@ -0,0 +1,108 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-dns-unbound
+pkgver=0.29
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DNS-Unbound
+pkgdesc="Query DNS recursively via libunbound"
+url="https://metacpan.org/release/DNS-Unbound/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl
+ perl-class-xsaccessor
+ perl-net-dns
+ perl-promise-es6
+ perl-x-tiny
+ "
+makedepends="
+ !pyc
+ perl-dev
+ perl-extutils-makemaker-cpanfile
+ perl-extutils-pkgconfig
+ unbound-dev
+ "
+checkdepends="
+ perl-anyevent
+ perl-io-async
+ perl-mojolicious
+ perl-promise-xs
+ perl-test-deep
+ perl-test-describeme
+ perl-test-exception
+ perl-test-failwarnings
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-anyevent::noarch
+ $pkgname-ioasync::noarch
+ $pkgname-mojo::noarch
+ $pkgname-asyncquery-promisexs::noarch
+ "
+source="https://cpan.metacpan.org/authors/id/F/FE/FELIPE/DNS-Unbound-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # We do not have AnyEvent::XSPromises packaged,
+ # and this file says "This leaks; don't use it".
+ rm -v lib/DNS/Unbound/AsyncQuery/AnyEventXSPromises.pm
+}
+
+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
+}
+
+anyevent() {
+ pkgdesc="$pkgdesc and AnyEvent"
+ depends="$pkgname=$pkgver-r$pkgrel perl-anyevent"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-anyevent"
+
+ amove usr/lib/perl5/vendor_perl/DNS/Unbound/AnyEvent.pm
+}
+
+ioasync() {
+ pkgdesc="$pkgdesc and IO::Async"
+ depends="$pkgname=$pkgver-r$pkgrel perl-io-async"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-io-async"
+
+ amove usr/lib/perl5/vendor_perl/DNS/Unbound/IOAsync.pm
+}
+
+mojo() {
+ pkgdesc="$pkgdesc and Mojolicious"
+ depends="$pkgname=$pkgver-r$pkgrel perl-mojolicious"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-mojolicious"
+
+ amove usr/lib/perl5/vendor_perl/DNS/Unbound/Mojo.pm
+ amove usr/lib/perl5/vendor_perl/DNS/Unbound/AsyncQuery/MojoPromise.pm
+}
+
+promisexs() {
+ pkgdesc="$pkgdesc (Promise::XS engine)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-promise-xs"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-promise-xs"
+
+ amove usr/lib/perl5/vendor_perl/DNS/Unbound/AsyncQuery/PromiseXS.pm
+}
+
+sha512sums="
+722582fa7f4d81dcfcdad56d482988ebe537822739ff2b6eff3d498c2203c96d46e07e603c0acf997321b99220180f1aa305c8aa914445b352513ea10572260f DNS-Unbound-0.29.tar.gz
+"
diff --git a/testing/perl-email-abstract/APKBUILD b/testing/perl-email-abstract/APKBUILD
index 76f65480f32..216b83afbf9 100644
--- a/testing/perl-email-abstract/APKBUILD
+++ b/testing/perl-email-abstract/APKBUILD
@@ -3,21 +3,21 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-email-abstract
_pkgreal=Email-Abstract
-pkgver=3.008
-pkgrel=3
+pkgver=3.010
+pkgrel=0
pkgdesc="Unified interface to mail representations"
url="https://metacpan.org/release/Email-Abstract"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-mro-compat perl-email-simple perl-module-pluggable"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-mro-compat perl-email-simple perl-module-pluggable"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_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
}
@@ -36,4 +36,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="efead64612562fb9d644fa830b2f29e0701af0f3ddeb118992badff7c7a45cb569ad4644a7b226cc625cdabfb3f5db155284eb68042928265bfc5c230f4bf40a Email-Abstract-3.008.tar.gz"
+sha512sums="
+73c7e9083f583d17c20bcda2a17e6ff7187c587e8168415692618be2ec0a10f0bce2ddb1da8d2cc929022af56da4498d44cf0cc062c1c5b83abac2ecb48a9ae6 Email-Abstract-3.010.tar.gz
+"
diff --git a/testing/perl-email-mime-attachment-stripper/APKBUILD b/testing/perl-email-mime-attachment-stripper/APKBUILD
index 8e69380f78b..b16ed26443b 100644
--- a/testing/perl-email-mime-attachment-stripper/APKBUILD
+++ b/testing/perl-email-mime-attachment-stripper/APKBUILD
@@ -1,30 +1,28 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-email-mime-attachment-stripper
_pkgreal=Email-MIME-Attachment-Stripper
pkgver=1.317
-pkgrel=2
+pkgrel=5
pkgdesc="strip the attachments from an email"
url="https://metacpan.org/release/Email-MIME-Attachment-Stripper"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-email-mime-contenttype perl-email-mime"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-email-mime-contenttype perl-email-mime"
+checkdepends="perl-capture-tiny"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$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
+ make
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+check() {
+ make test
}
package() {
@@ -32,4 +30,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="bb4dd9aa8cfbbeb1e62cb687f3d8219e0eed87acd95c31291b6ad39e870c5a344d478d7794762205a5d66ebd7ba3cd70151b791a1100d677f3a70a538c0c1063 Email-MIME-Attachment-Stripper-1.317.tar.gz"
+sha512sums="
+bb4dd9aa8cfbbeb1e62cb687f3d8219e0eed87acd95c31291b6ad39e870c5a344d478d7794762205a5d66ebd7ba3cd70151b791a1100d677f3a70a538c0c1063 Email-MIME-Attachment-Stripper-1.317.tar.gz
+"
diff --git a/testing/perl-email-reply/APKBUILD b/testing/perl-email-reply/APKBUILD
index dcfb0fb5025..fc1616615d8 100644
--- a/testing/perl-email-reply/APKBUILD
+++ b/testing/perl-email-reply/APKBUILD
@@ -1,30 +1,27 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-email-reply
_pkgreal=Email-Reply
pkgver=1.204
-pkgrel=2
+pkgrel=5
pkgdesc="Reply to a Message"
url="https://metacpan.org/release/Email-Reply"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-email-abstract perl-email-mime perl-email-address"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-email-abstract perl-email-mime perl-email-address"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$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
+ make
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+check() {
+ make test
}
package() {
@@ -32,4 +29,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="78353abe415fefbf4c70398433584221bf037eab09f4a6a20bcafec4e0a632a5ee07a880e33f806f61fe3a943b7f55c428d90bbc5ea9d5c551eb78e0ff88ac5a Email-Reply-1.204.tar.gz"
+sha512sums="
+78353abe415fefbf4c70398433584221bf037eab09f4a6a20bcafec4e0a632a5ee07a880e33f806f61fe3a943b7f55c428d90bbc5ea9d5c551eb78e0ff88ac5a Email-Reply-1.204.tar.gz
+"
diff --git a/testing/perl-env-path/APKBUILD b/testing/perl-env-path/APKBUILD
deleted file mode 100644
index f851f7703cf..00000000000
--- a/testing/perl-env-path/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-env-path
-_pkgreal=Env-Path
-pkgver=0.19
-pkgrel=2
-pkgdesc="Advanced operations on path variables"
-url="https://metacpan.org/release/Env-Path"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DS/DSB/$_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="ea75dd808bd1d1e00a70179ccf834b4395e810ae46373eb16a9ebd37ada550ce3d9996073dfbe45909c66537fbc7712920d4dbb6dbf905200501884c5acb52fa Env-Path-0.19.tar.gz"
diff --git a/testing/perl-ev-hiredis/APKBUILD b/testing/perl-ev-hiredis/APKBUILD
new file mode 100644
index 00000000000..9ef6a05e4c9
--- /dev/null
+++ b/testing/perl-ev-hiredis/APKBUILD
@@ -0,0 +1,61 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ev-hiredis
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=EV-Hiredis
+pkgver=0.07
+pkgrel=0
+pkgdesc="Asynchronous redis client using hiredis and EV"
+url="https://metacpan.org/release/EV-Hiredis/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-ev"
+makedepends="
+ hiredis-dev perl-dev perl-file-which
+ perl-module-build perl-module-build-xsutil
+ "
+checkdepends="perl-devel-refcount perl-test-deep perl-test-tcp"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SH/SHOGO/EV-Hiredis-$pkgver.tar.gz
+ use-system-hiredis.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# no perl-test-redisserver on 32-bit
+case "$CARCH" in
+armv7|armhf|x86)
+ _test_args="--test_files=t/autoload.t"
+ ;;
+*)
+ checkdepends="$checkdepends perl-test-redisserver"
+ ;;
+esac
+
+prepare() {
+ default_prepare
+
+ # disable a very flaky test
+ rm -v ./t/connect_unix.t
+}
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test $_test_args
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+58d4d6d69589155c0212cbc5169e6cc5552718daddcb713339ef84a5cd803c825ff6b10d6322d3e5c1556d018d9ef75de9261f925d3420a14efee05f0226ea87 EV-Hiredis-0.07.tar.gz
+536157501fe64d127ff2d0084c03a2e8174f0aa4bc052c666624b26c79f68d6fe12493ae05daec469b5e36d96fd9704a66d90c2f40b922ff1a0b15519c794276 use-system-hiredis.patch
+"
diff --git a/testing/perl-ev-hiredis/use-system-hiredis.patch b/testing/perl-ev-hiredis/use-system-hiredis.patch
new file mode 100644
index 00000000000..bc12f8a4596
--- /dev/null
+++ b/testing/perl-ev-hiredis/use-system-hiredis.patch
@@ -0,0 +1,21 @@
+--- a/builder/MyBuilder.pm
++++ b/builder/MyBuilder.pm
+@@ -14,8 +14,8 @@
+ generate_ppport_h => 'src/ppport.h',
+ c_source => 'src',
+ xs_files => { 'src/EV__Hiredis.xs' => 'lib/EV/Hiredis.xs' },
+- include_dirs => ['src', 'deps/hiredis', "${installsitearch}/EV", $installsitearch],
+- extra_linker_flags => ["deps/hiredis/libhiredis$Config{lib_ext}"],
++ include_dirs => ['src', '/usr/include/hiredis', "${installsitearch}/EV", $installsitearch],
++ extra_linker_flags => ["-lhiredis"],
+ );
+
+ my $make;
+@@ -30,7 +30,6 @@
+ $make = $Config{make};
+ }
+
+- $self->do_system($make, '-C', 'deps/hiredis', 'static');
+ return $self;
+ }
+
diff --git a/testing/perl-extutils-makemaker/APKBUILD b/testing/perl-extutils-makemaker/APKBUILD
index fde6b9cc02d..8a153c10ec0 100644
--- a/testing/perl-extutils-makemaker/APKBUILD
+++ b/testing/perl-extutils-makemaker/APKBUILD
@@ -1,41 +1,39 @@
-# 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-makemaker
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=ExtUtils-MakeMaker
-pkgver=7.44
-pkgrel=0
+pkgver=7.70
+pkgrel=2
pkgdesc="Create a module Makefile"
-url="https://metacpan.org/release/ExtUtils-MakeMaker"
+url="https://metacpan.org/release/ExtUtils-MakeMaker/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
+checkdepends="perl-dev"
source="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-$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
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="c83e5ea1347bc736c007978fdcda9817ecb9ae48df824b0ea02305e7fa82b929c67e1cef244efb40d050e27b1b3903581bb401056bc0b07ec6e5611c84839536 ExtUtils-MakeMaker-7.44.tar.gz"
+sha512sums="
+53eee73c5ce6aa32412e8077ae36d54c7ee10eee56baa4ba06a397c90310e21458bd6719b0f5695bb0de3eb06eddaacf6d635ff82538b0748c8ef362555bc569 ExtUtils-MakeMaker-7.70.tar.gz
+"
diff --git a/testing/perl-extutils-xsbuilder/APKBUILD b/testing/perl-extutils-xsbuilder/APKBUILD
index 1cfaa3baad6..50a11e41b69 100644
--- a/testing/perl-extutils-xsbuilder/APKBUILD
+++ b/testing/perl-extutils-xsbuilder/APKBUILD
@@ -1,28 +1,26 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-extutils-xsbuilder
_pkgreal=ExtUtils-XSBuilder
pkgver=0.28
-pkgrel=2
+pkgrel=5
pkgdesc="Automatic XS glue code generation"
url="https://metacpan.org/release/ExtUtils-XSBuilder"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-parse-recdescent perl-tie-ixhash"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-parse-recdescent perl-tie-ixhash"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GR/GRICHTER/$_pkgreal-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
+build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- make && make test
+check() {
+ make test
}
package() {
@@ -30,4 +28,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="777c6362ce1e780f8226b47b5f1a4ee4bbde3e5eda6637dde9d04d230cfb77025a0c7ec79ef40866242950ca2f052865ab0bbfe09f6315a2fda70111f67a47e3 ExtUtils-XSBuilder-0.28.tar.gz"
+sha512sums="
+777c6362ce1e780f8226b47b5f1a4ee4bbde3e5eda6637dde9d04d230cfb77025a0c7ec79ef40866242950ca2f052865ab0bbfe09f6315a2fda70111f67a47e3 ExtUtils-XSBuilder-0.28.tar.gz
+"
diff --git a/testing/perl-feed-find/APKBUILD b/testing/perl-feed-find/APKBUILD
new file mode 100644
index 00000000000..87081989f0b
--- /dev/null
+++ b/testing/perl-feed-find/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-feed-find
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Feed-Find
+pkgver=0.13
+pkgrel=0
+pkgdesc="Syndication feed auto-discovery"
+url="https://metacpan.org/release/Feed-Find/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-class-errorhandler perl-html-parser perl-libwww perl-uri"
+checkdepends="perl-test-lwp-useragent"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAVECROSS/Feed-Find-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+436438c361a7c228af8c5d31200f75b3eab8dded20040d9cd019384df28bd2348ca8c2f8f6cc3ae4b6dee90afba7c8ed911016fd4f8da46cfe8ffccf52eecd18 Feed-Find-0.13.tar.gz
+"
diff --git a/testing/perl-ffi-c/APKBUILD b/testing/perl-ffi-c/APKBUILD
new file mode 100644
index 00000000000..3043d3560fc
--- /dev/null
+++ b/testing/perl-ffi-c/APKBUILD
@@ -0,0 +1,44 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ffi-c
+pkgver=0.15
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=FFI-C
+pkgdesc="C data types for FFI"
+url="https://metacpan.org/release/FFI-C/"
+# armv7, armhf, x86: ffi_c_ffi.t and ffi_c_util.t tests fail
+arch="noarch !armv7 !armhf !x86"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-inspector perl-ffi-platypus
+ perl-ffi-platypus-type-enum perl-ref-util
+ perl-sub-identify perl-sub-install
+ "
+checkdepends="perl-capture-tiny perl-path-tiny perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-C-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4f693a44eb9d4098f877ed9354c59e382a50d91a5a46f16441d4a96a751a87bb08ebdc99a700f5b97d03d7cfc58a50cfa946ee63252fe7b51e681e990ccb40c3 FFI-C-0.15.tar.gz
+"
diff --git a/testing/perl-ffi-platypus-type-enum/APKBUILD b/testing/perl-ffi-platypus-type-enum/APKBUILD
new file mode 100644
index 00000000000..5fda2801991
--- /dev/null
+++ b/testing/perl-ffi-platypus-type-enum/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ffi-platypus-type-enum
+pkgver=0.06
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=FFI-Platypus-Type-Enum
+pkgdesc="Custom platypus type for dealing with C enumerated types"
+url="https://metacpan.org/release/FFI-Platypus-Type-Enum/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-ref-util"
+checkdepends="perl-ffi-platypus perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-Enum-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+592b609263cba5cfba578e125ebe91d1cbc2f2a4ff9cba2dad36fc0531f6f661bb13f74900489f924e191dc9e774b8e441d4a57d55f17e688e51b5c6d8ae434c FFI-Platypus-Type-Enum-0.06.tar.gz
+"
diff --git a/testing/perl-ffi-platypus/APKBUILD b/testing/perl-ffi-platypus/APKBUILD
new file mode 100644
index 00000000000..f951498e0d8
--- /dev/null
+++ b/testing/perl-ffi-platypus/APKBUILD
@@ -0,0 +1,48 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ffi-platypus
+pkgver=2.08
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=FFI-Platypus
+pkgdesc="Write Perl bindings to non-Perl libraries with FFI. No XS required"
+url="https://metacpan.org/release/FFI-Platypus/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-capture-tiny perl-ffi-checklib"
+makedepends="libffi-dev perl-dev"
+checkdepends="perl-devel-hide perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-Platypus-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# 32-bit archs require this additional
+# package to work with 64-bit values
+case "$CARCH" in
+armv7|armhf|x86)
+ depends="$depends perl-math-int64"
+ ;;
+esac
+
+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
+}
+
+sha512sums="
+3c614c78b91512352c527dfe93bc4318030df0b52d7ecdd8c445d8b074f67b965211b08cbe76b5c427ae1840fec708e2c97b528ca6adc03e6e729b8a8f65288e FFI-Platypus-2.08.tar.gz
+"
diff --git a/testing/perl-file-homedir/APKBUILD b/testing/perl-file-homedir/APKBUILD
deleted file mode 100644
index ae679fc6d77..00000000000
--- a/testing/perl-file-homedir/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-file-homedir
-_pkgreal=File-HomeDir
-pkgver=1.004
-pkgrel=0
-pkgdesc="Find your home and other directories on any platform"
-url="https://metacpan.org/release/File-HomeDir"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-file-which"
-depends="$cpandepends"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-HomeDir-$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="21671f6badb23fc7e89ef7507266a0b85b9bbf38897b24651f6a84795b5174dd4bfa43251231cbdb1566183e12b253e2504f1fe0f8e195c35d9b5e3d639aa334 File-HomeDir-1.004.tar.gz"
diff --git a/testing/perl-file-mmagic-xs/APKBUILD b/testing/perl-file-mmagic-xs/APKBUILD
new file mode 100644
index 00000000000..f6adb12b420
--- /dev/null
+++ b/testing/perl-file-mmagic-xs/APKBUILD
@@ -0,0 +1,40 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-file-mmagic-xs
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=File-MMagic-XS
+pkgver=0.09008
+pkgrel=3
+pkgdesc="guess File Type With XS (a la mod_mime_magic)"
+url="https://metacpan.org/release/File-MMagic-XS/"
+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/D/DM/DMAKI/File-MMagic-XS-$pkgver.tar.gz
+ format-security.patch
+ "
+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="
+82c322f413dabaf916b23d3d829c7ca525d454e00d8f6b7165cef06f70cd1874c45515639e913b06b415864cda3631d34e912b0bd8c85109d2950b7212f8ad05 File-MMagic-XS-0.09008.tar.gz
+31e6543989488f283a31424376a278d87aa11ec367cb0665b5d73690d409902e052fe6b6ac110743a1a2f972e6b9554b5b39287644b22b322dd265de45830a49 format-security.patch
+"
diff --git a/testing/perl-file-mmagic-xs/format-security.patch b/testing/perl-file-mmagic-xs/format-security.patch
new file mode 100644
index 00000000000..83a35431dba
--- /dev/null
+++ b/testing/perl-file-mmagic-xs/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/perl-mmagic-xs.c b/src/perl-mmagic-xs.c
+index d418d38..03d43a8 100644
+--- a/src/perl-mmagic-xs.c
++++ b/src/perl-mmagic-xs.c
+@@ -1110,7 +1110,7 @@ GetDesc:
+
+ error:
+ FMM_SET_ERROR(state, err);
+- croak(SvPV_nolen(err));
++ croak("%s", SvPV_nolen(err));
+ }
+
+ /* maps to mod_mime_magic::apprentice */
diff --git a/testing/perl-file-rename/APKBUILD b/testing/perl-file-rename/APKBUILD
new file mode 100644
index 00000000000..dd4f08e3d91
--- /dev/null
+++ b/testing/perl-file-rename/APKBUILD
@@ -0,0 +1,40 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=perl-file-rename
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=File-Rename
+pkgver=2.02
+pkgrel=0
+pkgdesc="Perl extension for renaming multiple files"
+url="https://metacpan.org/pod/File::Rename"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/R/RM/RMBARKER/File-Rename-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Makefile.PL --installdirs=vendor
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" INSTALLDIRS=vendor install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+ rm -rf $pkgdir/usr/lib
+ mv $pkgdir/usr/bin/rename $pkgdir/usr/bin/file-rename
+ mv $pkgdir/usr/share/man/man1/rename.1 $pkgdir/usr/share/man/man1/file-rename.1
+ chmod 0755 $pkgdir/usr/bin/file-rename
+}
+
+sha512sums="
+01eb399659ed34c64ca37eef425c7da56649f83c863747858006f1b86f013fa916ec8e9126ba8186cbf6d21be7d04864161d34ac3b9b57e6333ebe2450d1731a File-Rename-2.02.tar.gz
+"
diff --git a/testing/perl-font-ttf/APKBUILD b/testing/perl-font-ttf/APKBUILD
deleted file mode 100644
index 64270cd05fb..00000000000
--- a/testing/perl-font-ttf/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=perl-font-ttf
-pkgver=1.06
-pkgrel=0
-_pkgreal=Font-TTF
-pkgdesc="perl module for TrueType font hacking"
-url="https://metacpan.org/pod/Font::TTF"
-arch="all"
-license="Artistic License 2.0"
-depends="perl-io-string"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BH/BHALLISSY/$_pkgreal-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="2995544511e4cf9b1aa9a900b2272bf63a137fbbb752f2501d66c057b8272f7eb6f84326ed6121ffcbeb210f8f38b9219f59420a5a4b6664ce07aecc758ea029 Font-TTF-1.06.tar.gz"
diff --git a/testing/perl-freezethaw/APKBUILD b/testing/perl-freezethaw/APKBUILD
index b7db4c75abc..8fcebfbf66d 100644
--- a/testing/perl-freezethaw/APKBUILD
+++ b/testing/perl-freezethaw/APKBUILD
@@ -3,13 +3,12 @@
pkgname=perl-freezethaw
_pkgreal=FreezeThaw
pkgver=0.5001
-pkgrel=0
+pkgrel=2
pkgdesc="Convert arbitrary objects to/from strings"
url="https://metacpan.org/release/FreezeThaw/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-carp perl-exporter"
-makedepends="perl-dev"
+depends="perl perl-carp perl-exporter"
subpackages="$pkgname-doc"
source="https://www.cpan.org/authors/id/I/IL/ILYAZ/modules/FreezeThaw-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-future-http/APKBUILD b/testing/perl-future-http/APKBUILD
new file mode 100644
index 00000000000..a5953dbf6ba
--- /dev/null
+++ b/testing/perl-future-http/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-future-http
+pkgver=0.17
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Future-HTTP
+pkgdesc="Provide the most appropriate HTTP client with a Future API"
+url="https://metacpan.org/release/Future-HTTP/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-future perl-http-message perl-moo"
+checkdepends="
+ perl-anyevent-future perl-anyevent-http perl-future-mojo
+ perl-net-async-http perl-test-http-localserver
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/C/CO/CORION/Future-HTTP-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f7f899d7eb846e2e0f69938cf1f3bab480e63ebfc98bee2e8e25a33c007e4e2aaeb40e8af644420a4c28986bf70696d15d9793f86ac52339d5e3e40729121ac7 Future-HTTP-0.17.tar.gz
+"
diff --git a/testing/perl-future-q/APKBUILD b/testing/perl-future-q/APKBUILD
new file mode 100644
index 00000000000..3e62ecee269
--- /dev/null
+++ b/testing/perl-future-q/APKBUILD
@@ -0,0 +1,41 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-future-q
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Future-Q
+pkgver=0.120
+pkgrel=0
+pkgdesc="Future (or Promise or Deferred) with API like JavaScript's Q module"
+url="https://metacpan.org/release/Future-Q/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-devel-globaldestruction perl-future perl-try-tiny"
+makedepends="perl-module-build perl-module-build-prereqs-fromcpanfile"
+checkdepends="
+ perl-sub-identify perl-test-identity perl-test-memory-cycle
+ perl-test-mockmodule
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TO/TOSHIOITO/Future-Q-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+483951025ec6823472b49aa91540b1d6added4c87a9dc3d2021893a0858620228ae85d98a4fc9c7a6e92f5311f043e452ebb9b56fde36dc583fc7bf864e7a1a2 Future-Q-0.120.tar.gz
+"
diff --git a/testing/perl-future-queue/APKBUILD b/testing/perl-future-queue/APKBUILD
new file mode 100644
index 00000000000..eb0064bbe14
--- /dev/null
+++ b/testing/perl-future-queue/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-future-queue
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Future-Queue
+pkgver=0.52
+pkgrel=0
+pkgdesc="FIFO queue of values that uses Futures"
+url="https://metacpan.org/release/Future-Queue/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-future"
+makedepends="perl-module-build"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Future-Queue-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+d7b0f41a37367d2afc86044eda9902380ec08d82d6d7bc8cb27260325dd3e7b245207ebd1d13a944af80af595484a727839ad62e5b4cf69346c3e95e4abac859 Future-Queue-0.52.tar.gz
+"
diff --git a/testing/perl-gearman/APKBUILD b/testing/perl-gearman/APKBUILD
index f556ec4b08e..802d42d33c2 100644
--- a/testing/perl-gearman/APKBUILD
+++ b/testing/perl-gearman/APKBUILD
@@ -1,32 +1,41 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-gearman
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Gearman
pkgver=2.004.015
-pkgrel=0
-pkgdesc="Client and worker libraries for gearman job dispatch dispatch. Server is in separate package."
-url="https://metacpan.org/release/Gearman"
+pkgrel=3
+pkgdesc="Client and worker libraries for gearman job dispatch"
+url="https://metacpan.org/release/Gearman/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-list-moreutils perl-string-crc32 perl-io-socket-ssl"
-cpanmakedepends="perl-file-which perl-test-tcp perl-test-timer perl-proc-guard
- perl-test-exception"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="
+ perl
+ perl-io-socket-ssl
+ perl-list-moreutils
+ perl-string-crc32
+ "
+checkdepends="
+ perl-file-which
+ perl-proc-guard
+ perl-test-exception
+ perl-test-tcp
+ perl-test-timer
+ "
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PA/PALIK/Gearman-$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() {
@@ -34,9 +43,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="020eb3ca55f8ef33f546f60c6cb8c70d2dbbae21f11e0c165443569805040df7b2a0c89bec9de1d3c7733c3edf25bffa8faf69857c29f8b2371b5e06f5b0fd11 Gearman-2.004.015.tar.gz"
+sha512sums="
+020eb3ca55f8ef33f546f60c6cb8c70d2dbbae21f11e0c165443569805040df7b2a0c89bec9de1d3c7733c3edf25bffa8faf69857c29f8b2371b5e06f5b0fd11 Gearman-2.004.015.tar.gz
+"
diff --git a/testing/perl-getopt-long-descriptive/APKBUILD b/testing/perl-getopt-long-descriptive/APKBUILD
index 759c0709944..004b090c1dd 100644
--- a/testing/perl-getopt-long-descriptive/APKBUILD
+++ b/testing/perl-getopt-long-descriptive/APKBUILD
@@ -1,30 +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-getopt-long-descriptive
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Getopt-Long-Descriptive
-pkgver=0.105
+pkgver=0.114
pkgrel=0
pkgdesc="Getopt::Long, but simpler and more powerful"
-url="https://metacpan.org/release/Getopt-Long-Descriptive"
+url="https://metacpan.org/release/Getopt-Long-Descriptive/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-sub-exporter perl-params-validate"
-makedepends="perl-dev perl-test-warnings perl-test-fatal perl-cpan-meta-check"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
+depends="perl perl-sub-exporter perl-params-validate perl-getopt-long>=2.55"
+checkdepends="perl-test-warnings perl-cpan-meta-check perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-$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 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e7528ac509bc7fb49ee59a8ed8dec0c9a619a8f34c207e7a9185829666248797211a56576721b7fc8cdd44ae55d2d45f048958b79a6228ee76d91c3a52685236 Getopt-Long-Descriptive-0.105.tar.gz"
+sha512sums="
+f7d640f0ecfc2619036f8df3e5e6a85334a814f05156e7b056cee3add372225898701c7772e7507bcf87174d6c2bf3a699fc3f924e7fdcc8837457598e35ef7a Getopt-Long-Descriptive-0.114.tar.gz
+"
diff --git a/testing/perl-getopt-tabular/APKBUILD b/testing/perl-getopt-tabular/APKBUILD
index 42d2674f868..fbc48366226 100644
--- a/testing/perl-getopt-tabular/APKBUILD
+++ b/testing/perl-getopt-tabular/APKBUILD
@@ -4,26 +4,24 @@
pkgname=perl-getopt-tabular
_pkgreal=Getopt-Tabular
pkgver=0.3
-pkgrel=1
+pkgrel=4
pkgdesc="Table-driven argument parsing for Perl 5"
url="https://metacpan.org/release/Getopt-Tabular"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GW/GWARD/$_pkgreal-$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
+ make
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+check() {
+ make test
}
package() {
@@ -31,4 +29,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a289d4861538ae542f7549364573cadd740538f73862d89dd49eaf6bed6f787ba2848246add171aed6aef4d7d36411d00bef70b76885aa948ce0e7fc8801652b Getopt-Tabular-0.3.tar.gz"
+sha512sums="
+a289d4861538ae542f7549364573cadd740538f73862d89dd49eaf6bed6f787ba2848246add171aed6aef4d7d36411d00bef70b76885aa948ce0e7fc8801652b Getopt-Tabular-0.3.tar.gz
+"
diff --git a/testing/perl-git-raw/APKBUILD b/testing/perl-git-raw/APKBUILD
new file mode 100644
index 00000000000..640605d4c7e
--- /dev/null
+++ b/testing/perl-git-raw/APKBUILD
@@ -0,0 +1,56 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-git-raw
+pkgver=0.90
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Git-Raw
+pkgdesc="Perl bindings to the Git linkable library (libgit2)"
+url="https://metacpan.org/release/Git-Raw/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="libgit2-dev perl-dev"
+checkdepends="perl-capture-tiny perl-file-slurp-tiny perl-test-deep"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JA/JACQUESG/Git-Raw-$pkgver.tar.gz
+ libgit2-shared.mk.pl
+ libgit2-version-tests.patch
+ libgit2-1.7.1-tests.patch
+ libgit2-riscv64-tests.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cp -v ../libgit2-shared.mk.pl Makefile.PL
+}
+
+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}')
+ # setting $HOME may fix the issue on the s390x & x86* package builders
+ make test HOME="$srcdir"
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+845c775d62509c48ecdcaf6a692d03916934575d520a85bab1693f73d78416c646d0b442cb68537de778c4ba5df901e43de378792e287588d3b0e79c05ea5fd9 Git-Raw-0.90.tar.gz
+6f11abebe591a59dcdf3bb692592221af5e7a812c403cf53d68ee55b90eb3da2e4ebce82baddfe703fc6ee960a5925da85aa556016032f859139fd464759bdb0 libgit2-shared.mk.pl
+54334d2758671b62f1852c68b23b2a33ecc76f8127ace636c8cd04c2712c005bc03e075357aa7becbd3a343a342c36ba977a288826c84d69686f5c9e9dd3d341 libgit2-version-tests.patch
+b43710476f3e1ee86f382f29a198635ce0e4715840d4b6e79135f5ce3cedd17ef3a3a95adf9609ee324158e698ffa1eff2f3ad23cef2fd46f22bdb2265edcc84 libgit2-1.7.1-tests.patch
+1a11cddecaf7991fa7a4a4b37754e22c0e39645e27afc775040b6d9b9f79b1be805b08c1e5642ad1d03ce1566e0efb8d0577041a4b127dfb072ed3afa9a2635f libgit2-riscv64-tests.patch
+"
diff --git a/testing/perl-git-raw/libgit2-1.7.1-tests.patch b/testing/perl-git-raw/libgit2-1.7.1-tests.patch
new file mode 100644
index 00000000000..ae019a91912
--- /dev/null
+++ b/testing/perl-git-raw/libgit2-1.7.1-tests.patch
@@ -0,0 +1,47 @@
+Patch-Source: https://sources.debian.org/data/main/libg/libgit-raw-perl/0.90+ds-2/debian/patches/libgit2_1.7.1
+--
+Description: adjust tests to libgit2 1.7.1
+ * t/08-branch.t: relog handling changed, adjust to the new 2 entries
+ * t/19-push.t: the pack_progress callback returns all kind of values
+ (timing issue?), mark as TODO
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/1057318
+Forwarded: not-needed (upstream uses a vendored libgit2)
+Author: gregor herrmann <gregoa@debian.org>
+Last-Update: 2023-12-09
+
+--- a/t/08-branch.t
++++ b/t/08-branch.t
+@@ -51,7 +51,7 @@
+
+ my $reflog = $look -> reflog;
+ my @entries = $reflog -> entries;
+-is scalar(@entries), 1;
++is scalar(@entries), 2;
+
+ ok (!defined (Git::Raw::Branch -> lookup($repo, 'nonexistent_local', 1)));
+ ok (!defined (Git::Raw::Branch -> lookup($repo, 'nonexistent_remote', 0)));
+--- a/t/19-push.t
++++ b/t/19-push.t
+@@ -31,7 +31,10 @@
+ $stage == Git::Raw::Packbuilder->DELTAFICATION);
+ if ($stage == Git::Raw::Packbuilder->ADDING_OBJECTS)
+ {
++ TODO: {
++ local $TODO = 'flaky with libgit2 1.7.1';
+ is $current, 1;
++ }
+ is $total, 0;
+ }
+ else
+@@ -70,7 +73,10 @@
+ ok ($stage == 0 || $stage == 1);
+ if ($stage == 0)
+ {
++ TODO: {
++ local $TODO = 'flaky with libgit2 1.7.1';
+ is $current, 1;
++ }
+ is $total, 0;
+ }
+ else
diff --git a/testing/perl-git-raw/libgit2-riscv64-tests.patch b/testing/perl-git-raw/libgit2-riscv64-tests.patch
new file mode 100644
index 00000000000..0706f047049
--- /dev/null
+++ b/testing/perl-git-raw/libgit2-riscv64-tests.patch
@@ -0,0 +1,19 @@
+--- a/t/27-packbuilder.t
++++ b/t/27-packbuilder.t
+@@ -5,6 +5,7 @@
+ use File::Spec::Functions qw(catfile rel2abs);
+ use File::Path qw(make_path);
+ use Git::Raw;
++use Config;
+
+ my $path = rel2abs(catfile('t', 'test_repo'));
+ my $repo = Git::Raw::Repository -> open($path);
+@@ -55,7 +56,7 @@
+ is $pb -> written, 4;
+ is $pb -> object_count, 4;
+ is $transfer_progress_count, $pb -> written + 1;
+-is $pack_progress_count, 3;
++is $pack_progress_count, 3 if $Config{archname} !~ m/riscv64/;
+
+ is $pb -> hash, '4ec0baa806411548c1051dbd4620bd8447045d9e';
+
diff --git a/testing/perl-git-raw/libgit2-shared.mk.pl b/testing/perl-git-raw/libgit2-shared.mk.pl
new file mode 100644
index 00000000000..328e083e7ef
--- /dev/null
+++ b/testing/perl-git-raw/libgit2-shared.mk.pl
@@ -0,0 +1,213 @@
+use strict;
+use warnings;
+use ExtUtils::MakeMaker 0;
+use ExtUtils::Constant qw (WriteConstants);
+
+my %WriteMakefileArgs = (
+ "ABSTRACT" => "Perl bindings to the Git linkable library (libgit2)",
+ "AUTHOR" => "Jacques Germishuys <jacquesg\@cpan.org>, Alessandro Ghedini <alexbio\@cpan.org>",
+ "CONFIGURE_REQUIRES" => {
+ "ExtUtils::Constant" => "0.23",
+ "ExtUtils::MakeMaker" => "6.63_03",
+ "File::Basename" => "2.74",
+ "Getopt::Long" => "2.35"
+ },
+ "DEFINE" => "-DGIT_SSH",
+ "DISTNAME" => "Git-Raw",
+ "LIBS" => "-lgit2",
+ "LICENSE" => "perl",
+ "MIN_PERL_VERSION" => "5.8.8",
+ "NAME" => "Git::Raw",
+ "OBJECT" => "\$(O_FILES)",
+ "PREREQ_PM" => {
+ "Carp" => 0,
+ "XSLoader" => 0,
+ "overload" => 0,
+ "strict" => 0,
+ "warnings" => 0
+ },
+ "TEST_REQUIRES" => {
+ "Capture::Tiny" => 0,
+ "Cwd" => 0,
+ "File::Basename" => 0,
+ "File::Copy" => 0,
+ "File::Path" => 0,
+ "File::Slurp::Tiny" => "0.001",
+ "File::Spec" => 0,
+ "File::Spec::Functions" => 0,
+ "File::Spec::Unix" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Test::Deep" => 0,
+ "Test::More" => 0,
+ "Time::Local" => 0
+ },
+ "VERSION_FROM" => "lib/Git/Raw.pm",
+ "test" => {
+ "TESTS" => "t/*.t"
+ }
+);
+
+my @error_constants = (qw(
+ OK
+ ERROR
+ ENOTFOUND
+ EEXISTS
+ EAMBIGUOUS
+ EBUFS
+ EBAREREPO
+ EUNBORNBRANCH
+ EUNMERGED
+ ENONFASTFORWARD
+ EINVALIDSPEC
+ ECONFLICT
+ ELOCKED
+ EMODIFIED
+ EAUTH
+ ECERTIFICATE
+ EAPPLIED
+ EPEEL
+ EEOF
+ EINVALID
+ EUNCOMMITTED
+ EDIRECTORY
+ EMERGECONFLICT
+ PASSTHROUGH
+
+ ASSERT
+ USAGE
+ RESOLVE
+));
+
+my @category_constants = (qw(
+ NONE
+ NOMEMORY
+ OS
+ INVALID
+ REFERENCE
+ ZLIB
+ REPOSITORY
+ CONFIG
+ REGEX
+ ODB
+ INDEX
+ OBJECT
+ NET
+ TAG
+ TREE
+ INDEXER
+ SSL
+ SUBMODULE
+ THREAD
+ STASH
+ CHECKOUT
+ FETCHHEAD
+ MERGE
+ SSH
+ FILTER
+ REVERT
+ CALLBACK
+ CHERRYPICK
+ DESCRIBE
+ REBASE
+ FILESYSTEM
+
+ INTERNAL
+));
+
+my @packbuilder_constants = (qw(
+ ADDING_OBJECTS
+ DELTAFICATION
+));
+
+my @stash_progress_constants = (qw(
+ NONE
+ LOADING_STASH
+ ANALYZE_INDEX
+ ANALYZE_MODIFIED
+ ANALYZE_UNTRACKED
+ CHECKOUT_UNTRACKED
+ CHECKOUT_MODIFIED
+ DONE
+));
+
+my @rebase_operation_constants = (qw(
+ PICK
+ REWORD
+ EDIT
+ SQUASH
+ FIXUP
+ EXEC
+));
+
+my @object_constants = (qw(
+ ANY
+ BAD
+ COMMIT
+ TREE
+ BLOB
+ TAG
+));
+
+ExtUtils::Constant::WriteConstants(
+ NAME => 'Git::Raw::Error',
+ NAMES => [@error_constants],
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c-error.inc',
+ XS_FILE => 'const-xs-error.inc',
+ XS_SUBNAME => '_constant',
+ C_SUBNAME => '_error_constant',
+);
+
+ExtUtils::Constant::WriteConstants(
+ NAME => 'Git::Raw::Error::Category',
+ NAMES => [@category_constants],
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c-category.inc',
+ XS_FILE => 'const-xs-category.inc',
+ XS_SUBNAME => '_constant',
+ C_SUBNAME => '_category_constant',
+);
+
+ExtUtils::Constant::WriteConstants(
+ NAME => 'Git::Raw::Packbuilder',
+ NAMES => [@packbuilder_constants],
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c-packbuilder.inc',
+ XS_FILE => 'const-xs-packbuilder.inc',
+ XS_SUBNAME => '_constant',
+ C_SUBNAME => '_packbuilder_constant',
+);
+
+ExtUtils::Constant::WriteConstants(
+ NAME => 'Git::Raw::Stash::Progress',
+ NAMES => [@stash_progress_constants],
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c-stash-progress.inc',
+ XS_FILE => 'const-xs-stash-progress.inc',
+ XS_SUBNAME => '_constant',
+ C_SUBNAME => '_stash_progress_constant',
+);
+
+ExtUtils::Constant::WriteConstants(
+ NAME => 'Git::Raw::Rebase::Operation',
+ NAMES => [@rebase_operation_constants],
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c-rebase-operation.inc',
+ XS_FILE => 'const-xs-rebase-operation.inc',
+ XS_SUBNAME => '_constant',
+ C_SUBNAME => '_rebase_operation_constant',
+);
+
+ExtUtils::Constant::WriteConstants(
+ NAME => 'Git::Raw::Object',
+ NAMES => [@object_constants],
+ DEFAULT_TYPE => 'IV',
+ C_FILE => 'const-c-object.inc',
+ XS_FILE => 'const-xs-object.inc',
+ XS_SUBNAME => '_constant',
+ C_SUBNAME => '_object_constant',
+);
+
+WriteMakefile(%WriteMakefileArgs);
+exit(0);
diff --git a/testing/perl-git-raw/libgit2-version-tests.patch b/testing/perl-git-raw/libgit2-version-tests.patch
new file mode 100644
index 00000000000..9f778dcf301
--- /dev/null
+++ b/testing/perl-git-raw/libgit2-version-tests.patch
@@ -0,0 +1,64 @@
+Patch-Source: https://sources.debian.org/data/main/libg/libgit-raw-perl/0.90+ds-2/debian/patches/libgit2-version-tests
+--
+Description: fix failing test
+ Patch out the expected libgit2 version from the test,
+ as the system library can have a different version.
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/906482
+Forwarded: not-needed, cf. debian/patches/remove-convenience-libs
+Author: gregor herrmann <gregoa@debian.org>
+Last-Update: 2022-10-29
+
+--- a/t/02-commit.t
++++ b/t/02-commit.t
+@@ -231,6 +231,7 @@
+
+ my $commit2_id = $commit2 -> id;
+ my $patch = "\n".join("\n", grep { $_ !~ /^Date/ } split (/\n/, $commit2 -> as_email))."\n";
++$patch =~ s/(libgit2) [0-9.]+/$1/;
+ my $expected_patch = qq{
+ From $commit2_id Mon Sep 17 00:00:00 2001
+ From: Git::Raw author <git-xs\@example.com>
+@@ -250,7 +251,7 @@
+ +this is a second test
+ \\ No newline at end of file
+ --
+-libgit2 1.5.0
++libgit2
+ };
+
+ is $patch, $expected_patch;
+@@ -261,6 +262,7 @@
+ };
+
+ $patch = "\n".join("\n", grep { $_ !~ /^Date/ } split (/\n/, $commit2 -> as_email($email_opts, {})))."\n";
++$patch =~ s/(libgit2) [0-9.]+/$1/;
+ $expected_patch = qq{
+ From $commit2_id Mon Sep 17 00:00:00 2001
+ From: Git::Raw author <git-xs\@example.com>
+@@ -280,7 +282,7 @@
+ +this is a second test
+ \\ No newline at end of file
+ --
+-libgit2 1.5.0
++libgit2
+ };
+
+ is $patch, $expected_patch;
+@@ -290,6 +292,7 @@
+ };
+
+ $patch = "\n".join("\n", grep { $_ !~ /^Date/ } split (/\n/, $commit2 -> as_email($email_opts)))."\n";
++$patch =~ s/(libgit2) [0-9.]+/$1/;
+ $expected_patch = qq{
+ From $commit2_id Mon Sep 17 00:00:00 2001
+ From: Git::Raw author <git-xs\@example.com>
+@@ -309,7 +312,7 @@
+ +this is a second test
+ \\ No newline at end of file
+ --
+-libgit2 1.5.0
++libgit2
+ };
+
+ is $patch, $expected_patch;
diff --git a/testing/perl-git-repository/APKBUILD b/testing/perl-git-repository/APKBUILD
new file mode 100644
index 00000000000..430fd0ea35c
--- /dev/null
+++ b/testing/perl-git-repository/APKBUILD
@@ -0,0 +1,54 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-git-repository
+pkgver=1.325
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Git-Repository
+pkgdesc="Perl interface to Git repositories"
+url="https://metacpan.org/release/Git-Repository/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ git perl perl-git-version-compare
+ perl-namespace-clean perl-system-command
+ "
+checkdepends="perl-test-requires-git"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/B/BO/BOOK/Git-Repository-$pkgver.tar.gz
+ git-2.38.1-tests.patch
+ git-2.40.0-tests.patch
+ "
+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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+eeaf7b975d6f6f7461ec4dbefb00bcd127badc5b7978910b6bd2493a13ccc4ff818e68ee22c4c23244af9446304122aee16544537bd1170c41dd6aabbba9b56c Git-Repository-1.325.tar.gz
+58516be4cde0b9bc0ceaa18600a316fc78886adf17965ab6aecebcc8949e0e4d92f75b63083634848aaf1a752b2cccf79cc85db4e51b290bab6c2acda95b0468 git-2.38.1-tests.patch
+019d44ef924dd2dc45cc3ad17b9eaf00d8ab84003c7c84d4962bf0654dbc4232373a6d67d2903d70bd4512331e201335286028e0ec63a79d1367695f954b4a60 git-2.40.0-tests.patch
+"
diff --git a/testing/perl-git-repository/git-2.38.1-tests.patch b/testing/perl-git-repository/git-2.38.1-tests.patch
new file mode 100644
index 00000000000..13ffc2f47b2
--- /dev/null
+++ b/testing/perl-git-repository/git-2.38.1-tests.patch
@@ -0,0 +1,33 @@
+Patch-Source: https://sources.debian.org/data/main/libg/libgit-repository-perl/1.325-3/debian/patches/gh-22.patch
+--
+From 4dc8dedb97891f37b9da2220e5740c65685b0906 Mon Sep 17 00:00:00 2001
+From: Jan Pazdziora <jpazdziora@redhat.com>
+Date: Mon, 31 Oct 2022 17:26:00 +0100
+Subject: [PATCH] Workaround change of behaviour in git 2.38.1 for
+ CVE-2022-39253.
+
+By default, protocol.file.allow now defaults to user, preventing
+clones with symlinks.
+
+https://github.blog/2022-10-18-git-security-vulnerabilities-announced/#cve-2022-39253
+
+
+Bug: https://rt.cpan.org/Public/Bug/Display.html?id=144889
+Bug-Debian: https://bugs.debian.org/1023597
+
+---
+ t/21-submodule.t | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/t/21-submodule.t b/t/21-submodule.t
+index 444029c..97374f8 100644
+--- a/t/21-submodule.t
++++ b/t/21-submodule.t
+@@ -44,6 +44,7 @@ $s->run( checkout => 'master', { quiet => 1 } );
+ # now test adding a submodule
+ my $r = test_repository(@init);
+ $r->run(
++ ( Git::Repository->version_ge('2.38.1') ? ('-c', 'protocol.file.allow=always') : ()),
+ submodule => add => $s->work_tree => 'sub',
+ { env => { GIT_WORK_TREE => undef } }
+ );
diff --git a/testing/perl-git-repository/git-2.40.0-tests.patch b/testing/perl-git-repository/git-2.40.0-tests.patch
new file mode 100644
index 00000000000..510c7999e2b
--- /dev/null
+++ b/testing/perl-git-repository/git-2.40.0-tests.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://sources.debian.org/data/main/libg/libgit-repository-perl/1.325-3/debian/patches/git-2.40.0.patch
+--
+Description: Skip subtest when git version >= 2.40.0
+ 'git var GIT_EDITOR' behaviour was changed in git 2.40.0:
+ https://github.com/git/git/commit/2ad150e35e52705a97f18bee08f34e00a6557d6f
+ so skip the test which expect the old error messages if git is new enough.
+Origin: vendor
+Bug: https://github.com/book/Git-Repository/pull/23
+Forwarded: https://github.com/book/Git-Repository/pull/23
+Author: gregor herrmann <gregoa@debian.org>
+Last-Update: 2023-03-22
+
+--- a/t/20-simple.t
++++ b/t/20-simple.t
+@@ -85,6 +85,9 @@
+ skip "this test does not work with msysgit on Win32", 2
+ if $^O eq 'MSWin32';
+
++ skip "'git var GIT_EDITOR' behaviour was changed in git 2.40.0, and we have $version", 2
++ if Git::Repository->version_ge('2.40.0');
++
+ ok( !eval { $r->run( var => 'GIT_EDITOR' ); 1; }, 'git var GIT_EDITOR' );
+ like(
+ $@,
diff --git a/testing/perl-git-version-compare/APKBUILD b/testing/perl-git-version-compare/APKBUILD
new file mode 100644
index 00000000000..c53b5253043
--- /dev/null
+++ b/testing/perl-git-version-compare/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-git-version-compare
+pkgver=1.005
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Git-Version-Compare
+pkgdesc="Functions to compare Git versions"
+url="https://metacpan.org/release/Git-Version-Compare/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-test-nowarnings"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/B/BO/BOOK/Git-Version-Compare-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f58502ec282d4c36411c27143ae7a0f0abc751d508b90329a55a87d9812e43dfdba7dda372c7ae63783faa17ec61bf83ad4c99fa4be2a673fa4bc9489a13e246 Git-Version-Compare-1.005.tar.gz
+"
diff --git a/testing/perl-glib-ex-objectbits/APKBUILD b/testing/perl-glib-ex-objectbits/APKBUILD
index 4ec10f8feb5..c810081e960 100644
--- a/testing/perl-glib-ex-objectbits/APKBUILD
+++ b/testing/perl-glib-ex-objectbits/APKBUILD
@@ -4,27 +4,26 @@
pkgname=perl-glib-ex-objectbits
_pkgreal=Glib-Ex-ObjectBits
pkgver=16
-pkgrel=2
+pkgrel=5
pkgdesc="Helpers for Glib objects."
url="https://metacpan.org/release/Glib-Ex-ObjectBits"
arch="noarch"
license="GPL-3.0-or-later"
-cpandepends="perl-devel-globaldestruction perl-glib"
-depends="$cpandepends"
-makedepends="perl-dev"
+options="!check" # fixme: Failed test 'store readonly-float, g_log warning'
+depends="perl perl-devel-globaldestruction perl-glib"
+checkdepends="perl-test-weaken perl-gtk2 perl-pango"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KR/KRYDE/$_pkgreal-$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
+ make
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+check() {
+ make test
}
package() {
@@ -32,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e5820d251512121f4b44cfd67bcf44b1d94dfb756c5e646436684c45ff2d12f12cbfef4d9deb5deaaec0195ae1113448f0427dfe7f175ebd0ed878fb4ddcf671 Glib-Ex-ObjectBits-16.tar.gz"
+sha512sums="
+e5820d251512121f4b44cfd67bcf44b1d94dfb756c5e646436684c45ff2d12f12cbfef4d9deb5deaaec0195ae1113448f0427dfe7f175ebd0ed878fb4ddcf671 Glib-Ex-ObjectBits-16.tar.gz
+"
diff --git a/testing/perl-glib-object-introspection/APKBUILD b/testing/perl-glib-object-introspection/APKBUILD
new file mode 100644
index 00000000000..c7770dc5d19
--- /dev/null
+++ b/testing/perl-glib-object-introspection/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=perl-glib-object-introspection
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Glib-Object-Introspection
+pkgver=0.051
+pkgrel=0
+pkgdesc="Dynamically create Perl language bindings"
+url="https://metacpan.org/release/Glib-Object-Introspection/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="perl perl-glib perl-extutils-pkgconfig perl-extutils-depends"
+makedepends="perl-dev gobject-introspection-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/Glib-Object-Introspection-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # arrays.t and callbacks.t fails after ffi3.4 upgrade
+
+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="
+93ebe81b586270cbeca4296bfdd1d337d931b6349ca16a8e50bfc631c89a77d93f4d8076289e91bdcec0fdb732a2900b2a6c5e78e571c0c0fd4c7f5239cc0de5 Glib-Object-Introspection-0.051.tar.gz
+"
diff --git a/testing/perl-graphql-client/APKBUILD b/testing/perl-graphql-client/APKBUILD
new file mode 100644
index 00000000000..229e3f33ce2
--- /dev/null
+++ b/testing/perl-graphql-client/APKBUILD
@@ -0,0 +1,53 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-graphql-client
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=GraphQL-Client
+pkgver=0.605
+pkgrel=0
+pkgdesc="Execute GraphQL queries and mutations"
+url="https://metacpan.org/release/GraphQL-Client/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-http-anyua perl-json-maybexs perl-namespace-clean"
+checkdepends="perl-future perl-test-deep perl-test-exception"
+subpackages="$pkgname-cli $pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/C/CC/CCM/GraphQL-Client-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+cli() {
+ pkgdesc="$pkgdesc (command-line program)"
+ depends="
+ $pkgname=$pkgver-r$pkgrel
+ perl-json-path
+ perl-text-csv
+ perl-text-table-any
+ perl-yaml
+ "
+
+ amove usr/bin/graphql
+ amove usr/share/perl5/vendor_perl/GraphQL/Client/CLI.pm
+}
+
+sha512sums="
+c22b0afe26de013bca679a715359f0a6d3b40bd0e5b21cad95d25c50d785369ab309f380241438639472aa4e23ade45e2306ee507ac6ae2fbb068da9186ceba9 GraphQL-Client-0.605.tar.gz
+"
diff --git a/testing/perl-gtk2-ex-listmodelconcat/APKBUILD b/testing/perl-gtk2-ex-listmodelconcat/APKBUILD
index b169d427a1c..637cd64aeae 100644
--- a/testing/perl-gtk2-ex-listmodelconcat/APKBUILD
+++ b/testing/perl-gtk2-ex-listmodelconcat/APKBUILD
@@ -4,36 +4,31 @@
pkgname=perl-gtk2-ex-listmodelconcat
_pkgreal=Gtk2-Ex-ListModelConcat
pkgver=11
-pkgrel=1
+pkgrel=4
pkgdesc="Concatenate list models in Gtk2-Perl."
url="https://metacpan.org/release/Gtk2-Ex-ListModelConcat/"
arch="noarch"
license="open_source"
-cpandepends="perl-glib perl-gtk2 perl-glib-ex-objectbits perl-gtk2-ex-widgetbits"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="perl perl-glib perl-gtk2 perl-glib-ex-objectbits perl-gtk2-ex-widgetbits"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KR/KRYDE/$_pkgreal-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="f46fb70aaa69ae2a669b87760dea950402576f81059590ef8d227c270ac2efdacc4959a698def46aa26a3e676349eb31085290ab5fcfea9c1ce6c56f23043cc4 Gtk2-Ex-ListModelConcat-11.tar.gz"
+sha512sums="
+f46fb70aaa69ae2a669b87760dea950402576f81059590ef8d227c270ac2efdacc4959a698def46aa26a3e676349eb31085290ab5fcfea9c1ce6c56f23043cc4 Gtk2-Ex-ListModelConcat-11.tar.gz
+"
diff --git a/testing/perl-gtk2-ex-widgetbits/APKBUILD b/testing/perl-gtk2-ex-widgetbits/APKBUILD
index 0363fd706be..f0389909bf3 100644
--- a/testing/perl-gtk2-ex-widgetbits/APKBUILD
+++ b/testing/perl-gtk2-ex-widgetbits/APKBUILD
@@ -1,39 +1,34 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-gtk2-ex-widgetbits
_pkgreal=Gtk2-Ex-WidgetBits
pkgver=48
-pkgrel=1
+pkgrel=3
pkgdesc="Helpers for Gtk2 widgets."
url="https://metacpan.org/release/Gtk2-Ex-WidgetBits/"
arch="noarch"
license="open_source"
-cpandepends="perl-glib perl-glib-ex-objectbits perl-gtk2 perl-scope-guard perl-pango"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="perl perl-glib perl-glib-ex-objectbits perl-gtk2 perl-scope-guard perl-pango"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KR/KRYDE/$_pkgreal-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="d67201f574dc5d081962e16b0439a9759a2e77a72f2530b9f7b6f7dfa214f6be39f91a0a11294d3903e490f6bf1abf1f3c1d09e765f3f9ebcc951cf59aacbbe3 Gtk2-Ex-WidgetBits-48.tar.gz"
+sha512sums="
+d67201f574dc5d081962e16b0439a9759a2e77a72f2530b9f7b6f7dfa214f6be39f91a0a11294d3903e490f6bf1abf1f3c1d09e765f3f9ebcc951cf59aacbbe3 Gtk2-Ex-WidgetBits-48.tar.gz
+"
diff --git a/testing/perl-gtk2/APKBUILD b/testing/perl-gtk2/APKBUILD
index 9722f3c7e9f..84a9f572780 100644
--- a/testing/perl-gtk2/APKBUILD
+++ b/testing/perl-gtk2/APKBUILD
@@ -1,26 +1,24 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-gtk2
_pkgreal=Gtk2
pkgver=1.24993
-pkgrel=1
+pkgrel=5
pkgdesc="Perl module for Gtk2"
+# Failed test 'Don't crash on partial pixmap data'
+options="!check"
url="https://metacpan.org/release/Gtk2"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-extutils-depends perl-extutils-pkgconfig perl-glib perl-pango"
depends="perl"
-makedepends="perl-dev gtk+2.0-dev glib-dev $cpanmakedepends"
+makedepends="perl-dev gtk+2.0-dev glib-dev perl-extutils-depends
+ perl-extutils-pkgconfig perl-glib perl-pango"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/Gtk2-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-case "$CARCH" in
-mips*) options="!check";;
-esac
-
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
diff --git a/testing/perl-gtk3/APKBUILD b/testing/perl-gtk3/APKBUILD
new file mode 100644
index 00000000000..787700bcba8
--- /dev/null
+++ b/testing/perl-gtk3/APKBUILD
@@ -0,0 +1,35 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=perl-gtk3
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Gtk3
+pkgver=0.038
+pkgrel=1
+pkgdesc="Perl interface to the 3.x series of the gtk+ toolkit"
+url="https://metacpan.org/release/Gtk3/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="perl perl-glib-object-introspection perl-cairo-gobject"
+makedepends="perl-cairo gtk+3.0-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/Gtk3-$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="2289184a25deec342b9519028cc5ebb3a66137d7891366485e4b6a1ef52a4a28b5ba8083a317a56664d4ea6eb1bc0619477d1ca169baf79b868467fba27f82bf Gtk3-0.038.tar.gz"
diff --git a/testing/perl-guard/APKBUILD b/testing/perl-guard/APKBUILD
index aa480ad1663..613ae9e5fac 100644
--- a/testing/perl-guard/APKBUILD
+++ b/testing/perl-guard/APKBUILD
@@ -4,45 +4,30 @@
pkgname=perl-guard
_pkgreal=Guard
pkgver=1.023
-pkgrel=3
-pkgdesc="unknown"
+pkgrel=8
+pkgdesc="Perl module to cleanup blocks safely"
url="https://metacpan.org/release/Guard/"
arch="all"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare || return 1
-
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- 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
}
-check() {
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="a991d6f9ebfadffbcabaccc45d964c40c46c7212c6de089f0c496040e151236c59cc7dd7076464f0ef96936f2c4cd462fbedf8e729d522f1090682eda976676f Guard-1.023.tar.gz"
+sha512sums="
+a991d6f9ebfadffbcabaccc45d964c40c46c7212c6de089f0c496040e151236c59cc7dd7076464f0ef96936f2c4cd462fbedf8e729d522f1090682eda976676f Guard-1.023.tar.gz
+"
diff --git a/testing/perl-hash-merge/APKBUILD b/testing/perl-hash-merge/APKBUILD
index 37230e15ca3..9ba319b2315 100644
--- a/testing/perl-hash-merge/APKBUILD
+++ b/testing/perl-hash-merge/APKBUILD
@@ -1,43 +1,37 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-hash-merge
_pkgreal=Hash-Merge
-pkgver=0.300
-pkgrel=1
+pkgver=0.302
+pkgrel=2
pkgdesc="Merges arbitrarily deep hashes into a single hash"
url="https://metacpan.org/release/Hash-Merge/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-clone"
-makedepends="perl-dev"
+depends="perl perl-clone"
checkdepends="perl-clone-choose"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RE/REHSACK/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/H/HE/HERMES/Hash-Merge-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
-
- cd "$builddir"
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
build() {
- cd "$builddir"
make
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a7d988f64ff2487b4d1237d01d424ea49c99fd64b721b331735223b86342f54442007ee371f0a94646f835997446cc99e857b3cd23429639bf47af8fe42bad2e Hash-Merge-0.300.tar.gz"
+sha512sums="ac07e1154541b5d9a7fc2f126927a7d86d49ebb2ec4f5439c4f21178d0986d78f2f8f17ab5e6b692cfe8dec63a5c36afbe07b16492a983e13b33247c0789bc47 Hash-Merge-0.302.tar.gz"
diff --git a/testing/perl-hash-ordered/APKBUILD b/testing/perl-hash-ordered/APKBUILD
new file mode 100644
index 00000000000..3f5df4fa997
--- /dev/null
+++ b/testing/perl-hash-ordered/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-hash-ordered
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Hash-Ordered
+pkgver=0.014
+pkgrel=0
+pkgdesc="Fast, pure-Perl ordered hash class"
+url="https://metacpan.org/release/Hash-Ordered/"
+arch="noarch"
+license="Apache-2.0"
+depends="perl"
+checkdepends="perl-test-deep perl-test-failwarnings perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Hash-Ordered-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+077abdd3b536f5b31d913c2c0849e1775f91daa5ca83734671088ab06d9fe11cf80f743e32c5db1bf70a874248337c3bebeafceef1a6e38078f92966474480c3 Hash-Ordered-0.014.tar.gz
+"
diff --git a/testing/perl-html-object/APKBUILD b/testing/perl-html-object/APKBUILD
new file mode 100644
index 00000000000..67fd06c8e9f
--- /dev/null
+++ b/testing/perl-html-object/APKBUILD
@@ -0,0 +1,51 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-html-object
+pkgver=0.3.1
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTML-Object
+pkgdesc="HTML parser, modifier and query interface"
+url="https://metacpan.org/release/HTML-Object/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-css-object perl-curry perl-data-uuid
+ perl-datetime-format-strptime perl-devel-confess
+ perl-html-parser perl-html-selector-xpath perl-json
+ perl-module-generic perl-promise-me perl-uri perl-want
+ "
+checkdepends="perl-datetime"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/HTML-Object-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+f1a96523f57cf30045b44871536980ca16cf57450c14fa60a64d908d881f3822f348f19998533c1406ddf97a9f7edd3bd14c472fd68536db8b3592ca08207fa9 HTML-Object-v0.3.1.tar.gz
+"
diff --git a/testing/perl-html-selector-xpath/APKBUILD b/testing/perl-html-selector-xpath/APKBUILD
new file mode 100644
index 00000000000..f7bdf22cca7
--- /dev/null
+++ b/testing/perl-html-selector-xpath/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-html-selector-xpath
+pkgver=0.28
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTML-Selector-XPath
+pkgdesc="CSS Selector to XPath compiler"
+url="https://metacpan.org/release/HTML-Selector-XPath/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-test-base"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/C/CO/CORION/HTML-Selector-XPath-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+325c7aba8ddbf7c02be3ff6fd242ff6b936e79ca52c62c58e05b74c8a3f6e2c89e298d8b8b30751b15b4d5d2bd9dfa5e6dddf774928652641d2a54e59a2b5ac5 HTML-Selector-XPath-0.28.tar.gz
+"
diff --git a/testing/perl-html-tableextract/APKBUILD b/testing/perl-html-tableextract/APKBUILD
index 80d47581feb..3c9fb15c588 100644
--- a/testing/perl-html-tableextract/APKBUILD
+++ b/testing/perl-html-tableextract/APKBUILD
@@ -1,18 +1,15 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-html-tableextract
_pkgreal=HTML-TableExtract
pkgver=2.15
-pkgrel=2
+pkgrel=4
pkgdesc="Perl module for extracting the content contained in tables within an HTML document"
url="https://metacpan.org/release/HTML-TableExtract/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-html-parser"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="perl perl-html-parser"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MS/MSISK/$_pkgreal-$pkgver.tar.gz"
@@ -26,13 +23,13 @@ check() {
prepare() {
cd "$builddir"
default_prepare
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+ 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}'`
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make
}
diff --git a/testing/perl-http-lite/APKBUILD b/testing/perl-http-lite/APKBUILD
deleted file mode 100644
index 8a0df37ec33..00000000000
--- a/testing/perl-http-lite/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-http-lite
-_pkgreal=HTTP-Lite
-pkgver=2.44
-pkgrel=1
-pkgdesc="Lightweight HTTP implementation"
-url="https://metacpan.org/release/HTTP-Lite/"
-arch="noarch"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/$_pkgreal-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare || return 1
-
- 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}')
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="a30dbcdd3af404117f626502e3c591e073bbf9f113b137e6be0f2fca44948c04c1816064091f1a8bed4bfc1635efb02e57a1830f1f577eadc748b6b08e4e5e0f HTTP-Lite-2.44.tar.gz"
diff --git a/testing/perl-http-parser-xs/APKBUILD b/testing/perl-http-parser-xs/APKBUILD
deleted file mode 100644
index fae7432e83e..00000000000
--- a/testing/perl-http-parser-xs/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-http-parser-xs
-_pkgreal=HTTP-Parser-XS
-pkgver=0.17
-pkgrel=3
-pkgdesc="a fast, primitive HTTP request parser"
-url="https://metacpan.org/release/HTTP-Parser-XS/"
-arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install $cpanmakedepends"
-checkdepends="$cpancheckdepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/K/KA/KAZUHO/$_pkgreal-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare || return 1
-
- 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}')
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="44375b93e8aea04bedee283b1796eb6e94a2920be7ae29fe2f7d83491005b4d8f29047ddf52c6d7f62cf5a9f2575d7f6ea7d357e178536f60dd2c3cee08f495e HTTP-Parser-XS-0.17.tar.gz"
diff --git a/testing/perl-http-thin/APKBUILD b/testing/perl-http-thin/APKBUILD
new file mode 100644
index 00000000000..9ac3bb386c9
--- /dev/null
+++ b/testing/perl-http-thin/APKBUILD
@@ -0,0 +1,41 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-http-thin
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTTP-Thin
+pkgver=0.006
+pkgrel=0
+pkgdesc="Thin Wrapper around HTTP::Tiny to play nice with HTTP::Message"
+url="https://metacpan.org/release/HTTP-Thin/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-method-modifiers perl-hash-multivalue
+ perl-http-message perl-safe-isa
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/HTTP-Thin-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+634205dfc81030c0b264cc82589d50984a7d2710144a5b7fe9134ea49fa8195155e6ec99a462bfb0b37a2c8d4db9af4defa626f06a3287a1548078172b97573e HTTP-Thin-0.006.tar.gz
+"
diff --git a/testing/perl-http-xsheaders/APKBUILD b/testing/perl-http-xsheaders/APKBUILD
new file mode 100644
index 00000000000..5bcbae6c498
--- /dev/null
+++ b/testing/perl-http-xsheaders/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-http-xsheaders
+pkgver=0.400005
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTTP-XSHeaders
+pkgdesc="Fast XS Header library, replacing HTTP::Headers(::Fast)"
+url="https://metacpan.org/release/HTTP-XSHeaders/"
+arch="all"
+license="MIT"
+depends="perl perl-http-date perl-uri"
+makedepends="perl-dev"
+checkdepends="perl-http-headers-fast perl-http-message perl-test-memorygrowth"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/HTTP-XSHeaders-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dvm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+35b8a169b91d7fb17138435b704d596236079455c409ba6115a74d0bbdec189f16fef6e629f561662c4b56c737e3c169da346bf7ddae23a6f07c07c0ddde57ba HTTP-XSHeaders-0.400005.tar.gz
+"
diff --git a/testing/perl-i18n-langinfo-wide/APKBUILD b/testing/perl-i18n-langinfo-wide/APKBUILD
index d2d2425838b..650f2aa7f14 100644
--- a/testing/perl-i18n-langinfo-wide/APKBUILD
+++ b/testing/perl-i18n-langinfo-wide/APKBUILD
@@ -4,36 +4,32 @@
pkgname=perl-i18n-langinfo-wide
_pkgreal=I18N-Langinfo-Wide
pkgver=9
-pkgrel=1
+pkgrel=4
pkgdesc="Langinfo and POSIX functions with wide-char strings."
url="https://metacpan.org/release/I18N-Langinfo-Wide/"
arch="noarch"
license="open_source"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends perl-devel-stacktrace"
+depends="perl"
+makedepends="perl-devel-stacktrace"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KR/KRYDE/$_pkgreal-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="4b3349e4096217e055092651522ee89d0ff949b235c977eede002ce604204ccb057b9a1b3293480bed36e9792e11cdabf5c15eecb280afe7228b5c7030044860 I18N-Langinfo-Wide-9.tar.gz"
+sha512sums="
+4b3349e4096217e055092651522ee89d0ff949b235c977eede002ce604204ccb057b9a1b3293480bed36e9792e11cdabf5c15eecb280afe7228b5c7030044860 I18N-Langinfo-Wide-9.tar.gz
+"
diff --git a/testing/perl-indirect/APKBUILD b/testing/perl-indirect/APKBUILD
new file mode 100644
index 00000000000..2c2eaabb1d0
--- /dev/null
+++ b/testing/perl-indirect/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-indirect
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=indirect
+pkgver=0.39
+pkgrel=0
+pkgdesc="Lexically warn about using the indirect method call syntax"
+url="https://metacpan.org/release/indirect/"
+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/V/VP/VPIT/indirect-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d3275a2cab2eeceef61756e08947d3072c0ce5cea2e8b70870c5fcbd9c63e56cf70568395002b7d02060cad3482f7f56723b1ad85fcf0a4c4ee2568b5035816c indirect-0.39.tar.gz
+"
diff --git a/testing/perl-io-async-resolver-dns/APKBUILD b/testing/perl-io-async-resolver-dns/APKBUILD
new file mode 100644
index 00000000000..8805b98c294
--- /dev/null
+++ b/testing/perl-io-async-resolver-dns/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-io-async-resolver-dns
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=IO-Async-Resolver-DNS
+pkgver=0.06
+pkgrel=0
+pkgdesc="Resolve DNS queries using IO::Async"
+url="https://metacpan.org/release/IO-Async-Resolver-DNS/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-future perl-io-async perl-list-utilsby perl-net-dns"
+makedepends="perl-module-build"
+checkdepends="perl-net-libresolv"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/IO-Async-Resolver-DNS-$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="
+1b884b3f35badcfc9630b93ea2bb71020f411400a494f39a3264808fc384355ea4c029527b7b784b2440a13ad7b6c9c9fe2275506f66b2065283e9d03ea14c28 IO-Async-Resolver-DNS-0.06.tar.gz
+"
diff --git a/testing/perl-io-lambda/APKBUILD b/testing/perl-io-lambda/APKBUILD
new file mode 100644
index 00000000000..78985c9757a
--- /dev/null
+++ b/testing/perl-io-lambda/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-io-lambda
+pkgver=1.33
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=IO-Lambda
+pkgdesc="Non-blocking I/O as lambda calculus"
+url="https://metacpan.org/release/IO-Lambda/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-libwww perl-net-dns perl-sub-name perl-uri"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KA/KARASIK/IO-Lambda-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+12a805368b8750724329e281941a16ba4369e5b29b87a182b14d9f56a5ffa7477e0bd7d62cf20cc114a1b65062949ce8ef6ee83bc4c5d52643e0f4a3d8e18fbe IO-Lambda-1.33.tar.gz
+"
diff --git a/testing/perl-io-sessiondata/APKBUILD b/testing/perl-io-sessiondata/APKBUILD
index 0e5e5aa0faa..6df2af68ab6 100644
--- a/testing/perl-io-sessiondata/APKBUILD
+++ b/testing/perl-io-sessiondata/APKBUILD
@@ -4,13 +4,12 @@
pkgname=perl-io-sessiondata
_pkgreal=IO-SessionData
pkgver=1.03
-pkgrel=1
+pkgrel=3
pkgdesc="supporting module for SOAP::Lite"
url="https://metacpan.org/release/IO-SessionData"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev"
source="https://cpan.metacpan.org/authors/id/P/PH/PHRED/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-io-socket-timeout/APKBUILD b/testing/perl-io-socket-timeout/APKBUILD
deleted file mode 100644
index 9ef7a03876d..00000000000
--- a/testing/perl-io-socket-timeout/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-
-pkgname=perl-io-socket-timeout
-_pkgreal=IO-Socket-Timeout
-pkgver=0.32
-pkgrel=0
-pkgdesc="IO::Socket with read/write timeout"
-url="https://metacpan.org/release/IO-Socket-Timeout/"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-perlio-via-timeout perl-test-tcp"
-makedepends="perl-dev perl-module-build-tiny"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAMS/IO-Socket-Timeout-$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="013ad036c796880ab464b18f642260609095cf40c74f3127abaf3c8a596ba8ee85746129dc84d2d1e6f1bbfc86d75969e99c5a9b67736fa3e5e8bc7f5ddf83a6 IO-Socket-Timeout-0.32.tar.gz"
diff --git a/testing/perl-json-maybeutf8/APKBUILD b/testing/perl-json-maybeutf8/APKBUILD
new file mode 100644
index 00000000000..f42008a468a
--- /dev/null
+++ b/testing/perl-json-maybeutf8/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-json-maybeutf8
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=JSON-MaybeUTF8
+pkgver=2.000
+pkgrel=0
+pkgdesc="Simple wrapper for explicit JSON Unicode text/UTF-8 byte functions"
+url="https://metacpan.org/release/JSON-MaybeUTF8/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-json-maybexs perl-unicode-utf8"
+checkdepends="perl-test-checkdeps perl-test-deep"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/JSON-MaybeUTF8-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cef0e04695c1f5f6e7e0ba6ec43766d4a46b7457955f13c218207450836eaa06f88cf2596876090584b908c71a40cbce35a82f8cc471891027d5a42a611f2fe6 JSON-MaybeUTF8-2.000.tar.gz
+"
diff --git a/testing/perl-json-path/APKBUILD b/testing/perl-json-path/APKBUILD
new file mode 100644
index 00000000000..b98703283eb
--- /dev/null
+++ b/testing/perl-json-path/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-json-path
+pkgver=1.0.5
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=JSON-Path
+pkgdesc="Search nested hashref/arrayref structures using JSONPath"
+url="https://metacpan.org/release/JSON-Path/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-carp-assert perl-exporter-tiny perl-json-maybexs
+ perl-lv perl-readonly perl-try-tiny
+ "
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PO/POPEFELIX/JSON-Path-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+baacf6d145245ad42ef41c0b9c77d527d0cb530e1df5c998e4b8c984f8009ddd792fa80a62ace29d7906ec1368b41418d8fb7c4a13d73693b3208dbb266f904a JSON-Path-1.0.5.tar.gz
+"
diff --git a/testing/perl-json-validator/APKBUILD b/testing/perl-json-validator/APKBUILD
new file mode 100644
index 00000000000..9dfefdfacb6
--- /dev/null
+++ b/testing/perl-json-validator/APKBUILD
@@ -0,0 +1,51 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-json-validator
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=JSON-Validator
+pkgver=5.14
+pkgrel=0
+pkgdesc="Validate data against a JSON schema"
+url="https://metacpan.org/release/JSON-Validator/"
+arch="noarch"
+license="Artistic-2.0"
+depends="
+ perl perl-data-validate-domain perl-data-validate-ip
+ perl-mojolicious perl-net-idn-encode perl-yaml-libyaml
+ "
+checkdepends="perl-test-deep"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JH/JHTHORSEN/JSON-Validator-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# no perl-sereal-encoder on 32-bit ARM
+case "$CARCH" in
+armv7|armhf)
+ ;;
+*)
+ depends="$depends perl-sereal-encoder"
+ ;;
+esac
+
+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
+}
+
+sha512sums="
+411c729c8cb2363a300ba69710545a61565055c1e89f666ee830866131d8c0ad849435f5cbe2fd5e9b083e0efab3e451f51810698acb116a16f5c1c1faea608a JSON-Validator-5.14.tar.gz
+"
diff --git a/testing/perl-libapreq2/APKBUILD b/testing/perl-libapreq2/APKBUILD
index cf050fde0f1..0d79a177d91 100644
--- a/testing/perl-libapreq2/APKBUILD
+++ b/testing/perl-libapreq2/APKBUILD
@@ -1,9 +1,9 @@
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-libapreq2
_pkgreal=libapreq2
-pkgver=2.13
-pkgrel=8
+pkgver=2.17
+pkgrel=1
pkgdesc="Perl module for libapreq2"
url="https://metacpan.org/release/libapreq2/"
arch="all"
@@ -12,22 +12,18 @@ depends="apache2 perl"
subpackages="$pkgname-dev $pkgname-doc"
install="$pkgname.post-install"
makedepends="perl-extutils-xsbuilder perl-dev libtool apache2-dev apache2-mod-perl-dev expat-dev apr-util-dev"
-source="https://cpan.metacpan.org/authors/id/I/IS/ISAAC/$_pkgreal-$pkgver.tar.gz
+source="https://dlcdn.apache.org//httpd/libapreq/libapreq2-$pkgver.tar.gz
libapreq2-2.08-doc.patch
+ link-in-apr-shared-objects.patch
$pkgname.conf"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- update_config_guess
-}
-
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL \
--with-apache2-apxs=/usr/bin/apxs \
--with-apache2-httpd=/usr/sbin/httpd
- make
+ make LD_RUN_PATH="/usr/lib"
}
package() {
@@ -38,6 +34,9 @@ package() {
find "$pkgdir" -name libapreq2.la -delete
}
-sha512sums="54553cb90c0d3f6fb34ff19364c5804976c4aff1bae551ae051fdd06f41695770f1e285c40e03dbd93ae738adc332f38f1a1994167598364071feaec833fdf05 libapreq2-2.13.tar.gz
+sha512sums="
+89b139b8673145d9e2d8fd77d36f878c519c1deb7f9b853cda2a15d34cbb619d1c5e784ba21553f23c2ef07803f07c75a83d96cd770f80e1b36283a4cbb88999 libapreq2-2.17.tar.gz
dc889d7890d9059efdb3fcd4d6b1e485929b69c073ff6266b90f82e89efe5bdd633fd4dc09ccd4aac3f8816271c00dca69b39ffe4706baf7d3094404784cd766 libapreq2-2.08-doc.patch
-e7fa4f3b51cbc6417369ba171ac0fb955ec0cd6d3575e07e7451ef2a8165d24ddbbcc3143a5c8106a757ecd7d4286a11a9ff87e27c1acff8abc48110fcb02e1f perl-libapreq2.conf"
+04b41c1e0694f53c5164e92c6cd81236f8030a265d9af4f5160c051425c9fa75c6326728734c31fc3f61baa88ae40924ef78974bd3cd2af719cb3bb9bb9428d3 link-in-apr-shared-objects.patch
+e7fa4f3b51cbc6417369ba171ac0fb955ec0cd6d3575e07e7451ef2a8165d24ddbbcc3143a5c8106a757ecd7d4286a11a9ff87e27c1acff8abc48110fcb02e1f perl-libapreq2.conf
+"
diff --git a/testing/perl-libapreq2/link-in-apr-shared-objects.patch b/testing/perl-libapreq2/link-in-apr-shared-objects.patch
new file mode 100644
index 00000000000..f5cc504f2e4
--- /dev/null
+++ b/testing/perl-libapreq2/link-in-apr-shared-objects.patch
@@ -0,0 +1,29 @@
+Don't try to regenerate Makefiles at installation time, as this will forget
+to link against the internal copy of libapreq2-dev, which will cause problems
+when trying to load the module outside Apache.
+
+Index: libapreq2-2.12/glue/Makefile.am
+===================================================================
+--- libapreq2-2.12.orig/glue/Makefile.am
++++ libapreq2-2.12/glue/Makefile.am
+@@ -15,7 +15,6 @@ perl_test: perl/Makefile
+ cd perl; $(MAKE) test
+
+ perl_install:
+- cd perl; INSTALL=1 @PERL@ @PERL_OPTS@ Makefile.PL -apxs @APACHE2_APXS@ @MM_OPTS@
+ cd perl; $(MAKE) install
+
+ perl_clean:
+Index: libapreq2-2.12/glue/Makefile.in
+===================================================================
+--- libapreq2-2.12.orig/glue/Makefile.in
++++ libapreq2-2.12/glue/Makefile.in
+@@ -265,7 +265,6 @@ perl_test: perl/Makefile
+ cd perl; $(MAKE) test
+
+ perl_install:
+- cd perl; INSTALL=1 @PERL@ @PERL_OPTS@ Makefile.PL -apxs @APACHE2_APXS@ @MM_OPTS@
+ cd perl; $(MAKE) install
+
+ perl_clean:
+
diff --git a/testing/perl-libintl-perl/APKBUILD b/testing/perl-libintl-perl/APKBUILD
index 7265c9db1f9..5bfa13b8afb 100644
--- a/testing/perl-libintl-perl/APKBUILD
+++ b/testing/perl-libintl-perl/APKBUILD
@@ -1,46 +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-libintl-perl
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=libintl-perl
-pkgver=1.31
+pkgver=1.33
pkgrel=1
-pkgdesc="unknown"
+pkgdesc="High-Level Interface to Uniforum Message Translation"
url="https://metacpan.org/release/libintl-perl/"
arch="noarch"
-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/G/GU/GUIDO/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/G/GU/GUIDO/libintl-perl-$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}'`
+ 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="9e22af95ecb8ae1c115114ce5d4f80bb8b1a83e4072d274a55f5946267ac29b98e9da4c01e05d0aa0051fef34a41b6297dbb44f51b8d602f3ef3786a59a6a04a libintl-perl-1.31.tar.gz"
+sha512sums="
+494486d2e2f07fa8ee4c4b9d7b2576973772330aab7736488a692c54a6b250b0b7c06892d8cffc164346b9ebd3549141378fc84da339eaa4b34dc16c4f1a59b6 libintl-perl-1.33.tar.gz
+"
diff --git a/testing/perl-lingua-en-inflect/APKBUILD b/testing/perl-lingua-en-inflect/APKBUILD
deleted file mode 100644
index b2f70cce843..00000000000
--- a/testing/perl-lingua-en-inflect/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-lingua-en-inflect
-_pkgreal=Lingua-EN-Inflect
-pkgver=1.904
-pkgrel=0
-pkgdesc="Convert singular to plural. Select "a" or "an"."
-url="https://metacpan.org/release/Lingua-EN-Inflect"
-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/DC/DCONWAY/Lingua-EN-Inflect-$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="242417424d8ab7d52d219af838df955add337c3ef97ceb27e0fd72151988e6cce44e504d5ebf7b0c15f32b496bc0179d6659845c258dd7cbfaa5ddbb0e7ec8a5 Lingua-EN-Inflect-1.904.tar.gz"
diff --git a/testing/perl-linux-pid/APKBUILD b/testing/perl-linux-pid/APKBUILD
index 97b7582c7f3..bdb98cc1bce 100644
--- a/testing/perl-linux-pid/APKBUILD
+++ b/testing/perl-linux-pid/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-linux-pid
_pkgreal=Linux-Pid
pkgver=0.04
-pkgrel=8
+pkgrel=12
pkgdesc="Get the native PID and the PPID on Linux"
url="https://metacpan.org/release/Linux-Pid/"
arch="all"
@@ -20,13 +20,13 @@ builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
cd "$builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+ 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}'`
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make
}
diff --git a/testing/perl-list-binarysearch-xs/APKBUILD b/testing/perl-list-binarysearch-xs/APKBUILD
new file mode 100644
index 00000000000..981800a82fd
--- /dev/null
+++ b/testing/perl-list-binarysearch-xs/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-list-binarysearch-xs
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=List-BinarySearch-XS
+pkgver=0.09
+pkgrel=0
+pkgdesc="Binary Search a sorted array with XS routines"
+url="https://metacpan.org/release/List-BinarySearch-XS/"
+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/D/DA/DAVIDO/List-BinarySearch-XS-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+feb4475706e9ae93ab82b8844dab765d93d97715b0687603c0a153ef3305b62cae4d1fb1cc34326eb9ea0f4ea1cdfe0a9e4d049b3a3756b986de83d3a3fe021c List-BinarySearch-XS-0.09.tar.gz
+"
diff --git a/testing/perl-list-binarysearch/APKBUILD b/testing/perl-list-binarysearch/APKBUILD
new file mode 100644
index 00000000000..1cc0c357f90
--- /dev/null
+++ b/testing/perl-list-binarysearch/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-list-binarysearch
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=List-BinarySearch
+pkgver=0.25
+pkgrel=0
+pkgdesc="Binary Search within a sorted array"
+url="https://metacpan.org/release/List-BinarySearch/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-list-binarysearch-xs"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAVIDO/List-BinarySearch-$pkgver.tar.gz
+ documentation.patch
+ "
+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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cc2b3234fc6f14ce656f2744eb3612afea970b64b46e7288c16047c73db8095ca32aad735660a5152d1cfb8c2ee1202ec2b6a5fe151b81ccf17f4c84ced87596 List-BinarySearch-0.25.tar.gz
+1a25175b0d475830d9531afbf6f61a4fa8d256119dfc64d90d13f6c4c27228d47ea7d5a97919853d0997512697def158d1294cb45e52cb5d52ab00268fd9a20b documentation.patch
+"
diff --git a/testing/perl-list-binarysearch/documentation.patch b/testing/perl-list-binarysearch/documentation.patch
new file mode 100644
index 00000000000..d66a6fce7cb
--- /dev/null
+++ b/testing/perl-list-binarysearch/documentation.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/daoswald/List-BinarySearch/pull/4.patch
+--
+From 035981013670af1c1503684e410b2f13cd10016d Mon Sep 17 00:00:00 2001
+From: Martin Barth <ufobat@users.noreply.github.com>
+Date: Thu, 21 Sep 2017 09:25:13 +0200
+Subject: [PATCH] Fixed a little mistake in the POD
+
+---
+ lib/List/BinarySearch.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/List/BinarySearch.pm b/lib/List/BinarySearch.pm
+index a51e7f5..362c15c 100644
+--- a/lib/List/BinarySearch.pm
++++ b/lib/List/BinarySearch.pm
+@@ -324,7 +324,7 @@ As an example, consider the following data structure:
+
+ A numeric custom comparator for such a data structure would look like this:
+
+- sub{ $a <=> $b->[0] }
++ sub{ $a->[0] <=> $b->[0] }
+
+ In this regard, the callback is unlike C<sort>, because C<sort> is always
+ comparing to elements, whereas C<binsearch> is comparing a target with an
diff --git a/testing/perl-lockfile-simple/APKBUILD b/testing/perl-lockfile-simple/APKBUILD
deleted file mode 100644
index a8026fc66fe..00000000000
--- a/testing/perl-lockfile-simple/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: TBK <tbk@jjtc.eu>
-pkgname=perl-lockfile-simple
-_pkgreal=LockFile-Simple
-__pkgreal=lockfile-simple
-pkgver=0.208
-pkgrel=1
-pkgdesc="Simple file locking scheme"
-url="https://metacpan.org/release/LockFile-Simple/"
-arch="noarch"
-license="GPL PerlArtistic"
-depends="perl"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SC/SCHWIGON/$__pkgreal/$_pkgreal-$pkgver.tar.gz"
-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() {
- cd "$builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make
-}
-
-check() {
- cd "$builddir"
- make test
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="a1234d11cdb7bb98bd3d6c2504697187f2f7979c7acd7cfb0398f358f390af7b5eb7d834e83c83b0515199ac8d9a306d7fcdc96df04b0513f821887ad49fd67e LockFile-Simple-0.208.tar.gz"
diff --git a/testing/perl-log-fu/APKBUILD b/testing/perl-log-fu/APKBUILD
index c641730723e..3132f5feb46 100644
--- a/testing/perl-log-fu/APKBUILD
+++ b/testing/perl-log-fu/APKBUILD
@@ -4,36 +4,31 @@
pkgname=perl-log-fu
_pkgreal=Log-Fu
pkgver=0.31
-pkgrel=1
+pkgrel=4
pkgdesc="Simplified and developer-friendly screen logging"
url="https://metacpan.org/release/Log-Fu/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-dir-self perl-constant-generate"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="perl perl-dir-self perl-constant-generate"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MN/MNUNBERG/$_pkgreal-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="ae32b5231c44eac0e1e23a863b4d7f57a0d3018516c6b121cd19034e52adbf5875e9bbc3468a808b64829d6992e8b7303ff3d62129670befe38bc75d28e03eff Log-Fu-0.31.tar.gz"
+sha512sums="
+ae32b5231c44eac0e1e23a863b4d7f57a0d3018516c6b121cd19034e52adbf5875e9bbc3468a808b64829d6992e8b7303ff3d62129670befe38bc75d28e03eff Log-Fu-0.31.tar.gz
+"
diff --git a/testing/perl-log-message-simple/APKBUILD b/testing/perl-log-message-simple/APKBUILD
index 3ccf6babf96..37bfdca2e8c 100644
--- a/testing/perl-log-message-simple/APKBUILD
+++ b/testing/perl-log-message-simple/APKBUILD
@@ -4,17 +4,12 @@
pkgname=perl-log-message-simple
_pkgreal=Log-Message-Simple
pkgver=0.10
-pkgrel=1
+pkgrel=3
pkgdesc="Simplified interface to Log::Message"
url="https://metacpan.org/release/Log-Message-Simple/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-cpancheckdepends=""
-depends="perl-log-message $cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl perl-log-message"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-log-message/APKBUILD b/testing/perl-log-message/APKBUILD
index acb99dcaa08..e7576047336 100644
--- a/testing/perl-log-message/APKBUILD
+++ b/testing/perl-log-message/APKBUILD
@@ -4,17 +4,12 @@
pkgname=perl-log-message
_pkgreal=Log-Message
pkgver=0.08
-pkgrel=1
+pkgrel=3
pkgdesc="Powerful and flexible message logging mechanism"
url="https://metacpan.org/release/Log-Message/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-lv/APKBUILD b/testing/perl-lv/APKBUILD
new file mode 100644
index 00000000000..d540c51bb79
--- /dev/null
+++ b/testing/perl-lv/APKBUILD
@@ -0,0 +1,59 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-lv
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=LV
+pkgver=0.006
+pkgrel=0
+pkgdesc="Create lvalue subroutines"
+url="https://metacpan.org/release/LV/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-sub-name"
+checkdepends="perl-sentinel perl-variable-magic"
+subpackages="
+ $pkgname-doc
+ $pkgname-backend-magic
+ $pkgname-backend-sentinel
+ "
+source="https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/LV-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+magic() {
+ pkgdesc="$pkgdesc (Variable::Magic backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-variable-magic"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-variable-magic"
+
+ amove usr/share/perl5/vendor_perl/LV/Backend/Magic.pm
+}
+
+sentinel() {
+ pkgdesc="$pkgdesc (Sentinel backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-sentinel"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-sentinel"
+
+ amove usr/share/perl5/vendor_perl/LV/Backend/Sentinel.pm
+}
+
+sha512sums="
+24d211728845e29e3a7360251c8ef3a9d8666eff9ee08c06bf7d02b66cf599c17ac143dec3439d52256ae608e7c8c382a71270126e4724916c67c75034a44024 LV-0.006.tar.gz
+"
diff --git a/testing/perl-lwp-online/APKBUILD b/testing/perl-lwp-online/APKBUILD
new file mode 100644
index 00000000000..721febfc19e
--- /dev/null
+++ b/testing/perl-lwp-online/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-lwp-online
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=LWP-Online
+pkgver=1.08
+pkgrel=0
+pkgdesc="Does your process have access to the web"
+url="https://metacpan.org/release/LWP-Online/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-libwww perl-uri"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/A/AD/ADAMK/LWP-Online-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+2b255f60ee6521757ce3d49cc0720e3985ff17e3db7b7868ced6a9e1c5444dc067c80b7d34dbe7be9679c134f3de1dbe0e9421a1a20ff388c812aacd1d964497 LWP-Online-1.08.tar.gz
+"
diff --git a/testing/perl-lwp-useragent-cached/APKBUILD b/testing/perl-lwp-useragent-cached/APKBUILD
new file mode 100644
index 00000000000..01ab264918e
--- /dev/null
+++ b/testing/perl-lwp-useragent-cached/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=perl-lwp-useragent-cached
+pkgver=0.08
+pkgrel=1
+pkgdesc="UserAgent with simple caching mechanism"
+url="https://metacpan.org/release/LWP-UserAgent-Cache"
+arch="noarch"
+license="Artistic-1.0-Perl"
+depends="perl-libwww"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/O/OL/OLEG/LWP-UserAgent-Cached-$pkgver.tar.gz"
+builddir="$srcdir/LWP-UserAgent-Cached-$pkgver"
+
+build() {
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="5c1c18d3a54257aac6f266298d63c4cec9e6c6cbdfe6470cbf02676fc327a9c71238158b08036852c4971787fd8b7b67b85eaa4016687bc6c815a68037e15c47 LWP-UserAgent-Cached-0.08.tar.gz"
diff --git a/testing/perl-mastodon-client/APKBUILD b/testing/perl-mastodon-client/APKBUILD
new file mode 100644
index 00000000000..8b4de7f6f59
--- /dev/null
+++ b/testing/perl-mastodon-client/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mastodon-client
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mastodon-Client
+pkgver=0.017
+pkgrel=0
+pkgdesc="Talk to a Mastodon server"
+url="https://metacpan.org/release/Mastodon-Client/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-load perl-datetime perl-datetime-format-strptime
+ perl-future perl-http-message perl-http-thin perl-image-info
+ perl-io-async perl-json-maybexs perl-log-any perl-moo
+ perl-net-async-http perl-role-eventemitter perl-try-tiny
+ perl-type-tiny perl-types-path-tiny perl-uri
+ "
+checkdepends="perl-plack perl-test-tcp perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JJ/JJATRIA/Mastodon-Client-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+74cd5eaed6d6be1c28e0560e940adf4d18f6da292e49209b36849e65ffd5a6f805944414dc6d31c2169312f784b8b7dc50269840ebb594ce6dec9758813b0eb1 Mastodon-Client-0.017.tar.gz
+"
diff --git a/testing/perl-math-int64/APKBUILD b/testing/perl-math-int64/APKBUILD
new file mode 100644
index 00000000000..ae6443e46c9
--- /dev/null
+++ b/testing/perl-math-int64/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-math-int64
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Math-Int64
+pkgver=0.57
+pkgrel=0
+pkgdesc="Manipulate 64 bits integers in Perl"
+url="https://metacpan.org/release/Math-Int64/"
+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/S/SA/SALVA/Math-Int64-$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="
+2039822523dd7b960b0015e68b9caa1e3061a7434c2931f0cc49c503ee8dd17178cef5cebf69a6907af82564bc1f09946e9817fc4c4b19757b91fe2ef5423b9e Math-Int64-0.57.tar.gz
+"
diff --git a/testing/perl-math-libm/APKBUILD b/testing/perl-math-libm/APKBUILD
index 9fa117afff6..6a1a6acf68e 100644
--- a/testing/perl-math-libm/APKBUILD
+++ b/testing/perl-math-libm/APKBUILD
@@ -1,39 +1,34 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-math-libm
_pkgreal=Math-Libm
pkgver=1.00
-pkgrel=8
-pkgdesc="unknown"
+pkgrel=13
+pkgdesc="Perl extension for the C math library, libm"
url="https://metacpan.org/release/Math-Libm/"
arch="all"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DS/DSLEWART/$_pkgreal-$pkgver.tar.gz"
-_builddir="$srcdir/$_pkgreal-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="17a1f38e32a82ec9a0307033920559dfe554fdae43b9fefffd7dc0ff690b6c5018079bded8554135da8546ccaf8dc0890e7e9b9a1e3845e53d46c993cec11540 Math-Libm-1.00.tar.gz"
+sha512sums="
+17a1f38e32a82ec9a0307033920559dfe554fdae43b9fefffd7dc0ff690b6c5018079bded8554135da8546ccaf8dc0890e7e9b9a1e3845e53d46c993cec11540 Math-Libm-1.00.tar.gz
+"
diff --git a/testing/perl-math-random-isaac-xs/APKBUILD b/testing/perl-math-random-isaac-xs/APKBUILD
index 53e1cb1570d..4d27426de17 100644
--- a/testing/perl-math-random-isaac-xs/APKBUILD
+++ b/testing/perl-math-random-isaac-xs/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-math-random-isaac-xs
_pkgreal=Math-Random-ISAAC-XS
pkgver=1.004
-pkgrel=3
+pkgrel=7
pkgdesc="C implementation of the ISAAC PRNG algorithm"
url="https://metacpan.org/release/Math-Random-ISAAC-XS/"
arch="all"
diff --git a/testing/perl-mce/APKBUILD b/testing/perl-mce/APKBUILD
index 7f2cded4d56..66eb27fd0e8 100644
--- a/testing/perl-mce/APKBUILD
+++ b/testing/perl-mce/APKBUILD
@@ -3,14 +3,13 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-mce
_pkgreal=MCE
-pkgver=1.868
+pkgver=1.889
pkgrel=0
pkgdesc="Many-Core Engine for Perl providing parallel processing capabilities"
url="https://metacpan.org/release/MCE"
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/MA/MARIOROY/MCE-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -37,4 +36,6 @@ check() {
make test
}
-sha512sums="c377cfcbba7ebadea64f060b6c326fc6b598adf01d96d1980c6091c271acc3ec9684339701648fe9a6e4a163790f5fed925aa5d81329c6fa8f4b71539fb26562 MCE-1.868.tar.gz"
+sha512sums="
+47790c91cfe21e977a53c1c897802b34dc50d3a39631d991e8b95719593e82fa425c756a317d5e0f93d6a48be590b171eb88d90b7de166e264a5b7dcfadc7ebb MCE-1.889.tar.gz
+"
diff --git a/testing/perl-memory-process/APKBUILD b/testing/perl-memory-process/APKBUILD
new file mode 100644
index 00000000000..9aebe0fb730
--- /dev/null
+++ b/testing/perl-memory-process/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-memory-process
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Memory-Process
+pkgver=0.06
+pkgrel=3
+pkgdesc="Determine actual memory usage of a Perl program"
+url="https://metacpan.org/release/Memory-Process/"
+arch="noarch"
+license="BSD-2-Clause"
+depends="perl perl-memory-usage perl-readonly"
+makedepends="perl-test-nowarnings perl-capture-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SK/SKIM/Memory-Process-$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="
+13a52f12965ec0541ad0d52ac182b39de8c1fcf00d7482aa9d860fc20c7011287b48e8146e344e8a89583954d7b584010fe320458c944eeb28eac66072ceac91 Memory-Process-0.06.tar.gz
+"
diff --git a/testing/perl-memory-usage/APKBUILD b/testing/perl-memory-usage/APKBUILD
new file mode 100644
index 00000000000..7e4ce80c18f
--- /dev/null
+++ b/testing/perl-memory-usage/APKBUILD
@@ -0,0 +1,35 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-memory-usage
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Memory-Usage
+pkgver=0.201
+pkgrel=3
+pkgdesc="Tools to determine actual memory usage"
+url="https://metacpan.org/release/Memory-Usage/"
+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/DO/DONEILL/Memory-Usage-$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="
+4e34869ca1c97c39224c784e3dd6ef945174399678bfaefa5483cfd11ee0dc4b0efbde7a9ed59f146c4515c6db935261a8fb8fd7a4431c110160c28f9a2f9292 Memory-Usage-0.201.tar.gz
+"
diff --git a/testing/perl-minion-backend-redis/APKBUILD b/testing/perl-minion-backend-redis/APKBUILD
new file mode 100644
index 00000000000..d30188f5f8f
--- /dev/null
+++ b/testing/perl-minion-backend-redis/APKBUILD
@@ -0,0 +1,53 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-minion-backend-redis
+pkgver=0.003
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Minion-Backend-Redis
+pkgdesc="Redis backend for Minion job queue"
+url="https://metacpan.org/release/Minion-Backend-Redis/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-minion perl-mojo-redis perl-sort-versions"
+makedepends="perl-module-build-tiny"
+checkdepends="redis"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DF/DFUG/Minion-Backend-Redis-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ redis-server \
+ --dir "$builddir" \
+ --loglevel warning \
+ --unixsocket "$builddir"/redis.sock &
+ local _redispid=$!
+
+ # 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
+ sleep 0.1s
+ # shellcheck disable=SC3039
+ let _n="$_n - 1"
+ done
+
+ ./Build test || (kill $_redispid && false)
+ kill $_redispid
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+8dd7535559c0d9c3a36553719d51d01e58db717a92ff7e4458d2188581dc298186ad18ee7e882e2df97a79d7eabaa056417e15c21f7662a17727973cfa1c41c2 Minion-Backend-Redis-0.003.tar.gz
+"
diff --git a/testing/perl-minion-backend-sqlite/APKBUILD b/testing/perl-minion-backend-sqlite/APKBUILD
new file mode 100644
index 00000000000..6c416ac3744
--- /dev/null
+++ b/testing/perl-minion-backend-sqlite/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-minion-backend-sqlite
+pkgver=5.0.7
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Minion-Backend-SQLite
+pkgdesc="SQLite backend for Minion job queue"
+url="https://metacpan.org/release/Minion-Backend-SQLite/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-minion perl-mojo-sqlite"
+makedepends="perl-module-build-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+2f1b4d575e6b0a144f074dfaedc7fe988d95fc10acdca25fccef34d283da728fad192959d31f0c3de29bdfcefbcf3279ba15d776bb648ffd5b8e95032e52e55a Minion-Backend-SQLite-v5.0.7.tar.gz
+"
diff --git a/testing/perl-minion/APKBUILD b/testing/perl-minion/APKBUILD
new file mode 100644
index 00000000000..bbf9bb41dea
--- /dev/null
+++ b/testing/perl-minion/APKBUILD
@@ -0,0 +1,54 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-minion
+pkgver=10.29
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Minion
+pkgdesc="Job queue for Mojolicious"
+url="https://metacpan.org/release/Minion/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-mojolicious perl-yaml-libyaml"
+subpackages="$pkgname-doc $pkgname-backend-pg"
+source="https://cpan.metacpan.org/authors/id/S/SR/SRI/Minion-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+pg() {
+ pkgdesc="PostgreSQL backend for Minion job queue"
+ depends="$pkgname=$pkgver-r$pkgrel perl-mojo-pg"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-mojo-pg"
+
+ amove usr/share/perl5/vendor_perl/Minion/Backend/Pg.pm \
+ usr/share/perl5/vendor_perl/Minion/Backend/resources/migrations/pg.sql
+}
+
+sha512sums="
+ff8ef0e2aa788fa71d298fa1c88d39d853c0ceac2f4f8873b819a1578a2e435affa9aa4a66745fbfef4fa37dac6af7c36da6fc4e1ec5ada18da05a72ded08e33 Minion-10.29.tar.gz
+"
diff --git a/testing/perl-mixin-event-dispatch/APKBUILD b/testing/perl-mixin-event-dispatch/APKBUILD
new file mode 100644
index 00000000000..5d328e3de8e
--- /dev/null
+++ b/testing/perl-mixin-event-dispatch/APKBUILD
@@ -0,0 +1,47 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mixin-event-dispatch
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mixin-Event-Dispatch
+pkgver=2.000
+pkgrel=0
+pkgdesc="Mixin methods for simple event/message dispatch framework"
+url="https://metacpan.org/release/Mixin-Event-Dispatch/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-list-utilsby"
+checkdepends="
+ perl-moo perl-role-tiny perl-test-checkdeps perl-test-fatal
+ perl-test-memory-cycle perl-test-refcount
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Mixin-Event-Dispatch-$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
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+bda967ae51d7560014e60eba37f0e57f982ef6ddf848942981dfa406bb7ef2d33db0f525351ebd2d94138512951e37732c6ab1a32edd5dbae727ba7a27861c3b Mixin-Event-Dispatch-2.000.tar.gz
+"
diff --git a/testing/perl-module-build-prereqs-fromcpanfile/APKBUILD b/testing/perl-module-build-prereqs-fromcpanfile/APKBUILD
new file mode 100644
index 00000000000..ec5398e0f7e
--- /dev/null
+++ b/testing/perl-module-build-prereqs-fromcpanfile/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-module-build-prereqs-fromcpanfile
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Module-Build-Prereqs-FromCPANfile
+pkgver=0.02
+pkgrel=0
+pkgdesc="Construct prereq parameters of Module::Build from cpanfile"
+url="https://metacpan.org/release/Module-Build-Prereqs-FromCPANfile/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-module-build perl-module-cpanfile"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TO/TOSHIOITO/Module-Build-Prereqs-FromCPANfile-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+29078020fb2638c9032cc28ca37caa12b530a6302be099dce437f89536dc5aae9aaacdecf42c6c7b2d41c40443eb03a8008855068f47ff203c75024e5175c8cd Module-Build-Prereqs-FromCPANfile-0.02.tar.gz
+"
diff --git a/testing/perl-module-find/APKBUILD b/testing/perl-module-find/APKBUILD
deleted file mode 100644
index 52471432c78..00000000000
--- a/testing/perl-module-find/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
-pkgname=perl-module-find
-_pkgreal=Module-Find
-pkgver=0.15
-pkgrel=0
-pkgdesc="Find and use installed modules in a (sub)category"
-url="https://metacpan.org/release/Module-Find"
-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/CR/CRENZ/Module-Find-$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}')
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="769f1ee8836a127cb3c08edc858240c88e6481243d15b79b348c66d960213a98963bd9c453756645982c730a3c895a7dc35b06a970a0d6300690a605f4487dac Module-Find-0.15.tar.gz"
diff --git a/testing/perl-module-generic/APKBUILD b/testing/perl-module-generic/APKBUILD
new file mode 100644
index 00000000000..c703e2e37c8
--- /dev/null
+++ b/testing/perl-module-generic/APKBUILD
@@ -0,0 +1,56 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-module-generic
+pkgver=0.35.3
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Module-Generic
+pkgdesc="Generic Module to inherit from"
+url="https://metacpan.org/release/Module-Generic/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-load perl-clone perl-common-sense
+ perl-data-dump perl-data-uuid perl-datetime
+ perl-datetime-format-strptime perl-datetime-timezone
+ perl-datetime-timezone-catalog-extend perl-devel-stacktrace
+ perl-file-mmagic perl-io-stringy perl-json perl-json-xs
+ perl-regexp-common perl-storable-improved perl-uri perl-want
+ "
+checkdepends="perl-file-which perl-test-time perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/Module-Generic-v$pkgver.tar.gz
+ skip-broken-tests.patch
+ "
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ TERM=linux make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+0e329640655e9338ed57621aaebbbb0874500b5e6428d2c7fb794d33d32821857572dddfe72ab52f131f776e908f38cdcd7e2f3c1534c226156495198223b134 Module-Generic-v0.35.3.tar.gz
+af467da801c0884a5994a61c205d4c522cf40905eebc4733ea4deaa755b19bab824879f91866e7622440d9ab823eed207fbe02092559da9660081423585504b3 skip-broken-tests.patch
+"
diff --git a/testing/perl-module-generic/skip-broken-tests.patch b/testing/perl-module-generic/skip-broken-tests.patch
new file mode 100644
index 00000000000..d7f26651c18
--- /dev/null
+++ b/testing/perl-module-generic/skip-broken-tests.patch
@@ -0,0 +1,40 @@
+--- a/t/04.colour.t
++++ b/t/04.colour.t
+@@ -15,6 +15,11 @@
+ colour_open => "\{",
+ colour_close => "\}",
+ );
++my $is_tty = $m->_is_tty;
++
++SKIP: {
++skip 'Not a tty', 2 unless $is_tty;
++
+ is(
+ $m->colour_parse( "Hello {style => 'b', color => 'red'}red everyone! This is {style => 'u', color => 'rgb(255250250)'}embedded{/}{/} text..." ),
+ "Hello \e[38;5;224;1m\e[38;2;255;0;0;1mred everyone! This is \e[38;5;250;4m\e[38;2;255;250;250;4membedded\e[m\e[m\e[m\e[m text...",
+@@ -26,6 +31,7 @@
+ "And \e[38;5;224;48;5;255;3;1m\e[38;2;255;0;0;48;2;255;255;255;3;1mlight red on white\e[m\e[m \e[38;5;252;5m\e[38;2;255;255;0;5mand yellow text\e[m\e[m ?",
+ "Inline style: And \e[38;5;224;48;5;255;3;1m\e[38;2;255;0;0;48;2;255;255;255;3;1mlight red on white\e[m\e[m \e[38;5;252;5m\e[38;2;255;255;0;5mand yellow text\e[m\e[m ?",
+ );
++}
+
+ is(
+ $m->coloured( 'bold white on red', "Bold white text on red background" ),
+@@ -33,6 +39,9 @@
+ "Coloured() style: \e[38;5;255;48;5;224;1m\e[38;2;255;255;255;48;2;255;0;0;1mBold white text on red background\e[m\e[m",
+ );
+
++SKIP: {
++skip 'Not a tty', 2 unless $is_tty;
++
+ is(
+ $m->colour_parse( "And {bold light white on red}light white\non red multi line{/} {underline green}underlined green text{/}" ),
+ "And \e[38;5;255;48;5;224;1m\e[38;2;255;255;255;48;2;255;0;0;1m\e[38;5;255;48;5;224;1m\e[38;2;255;255;255;48;2;255;0;0;1mlight white\e[m
+@@ -45,6 +54,7 @@
+ "Some \e[38;5;224;48;5;255;1m\e[38;2;255;0;0;48;2;255;255;255;1mred on white. And \e[38;5;3;4m\e[38;2;0;0;255;4munderlined\e[m\e[m\e[m\e[m text...",
+ "Inline style with rgb: Some \e[38;5;224;48;5;255;1m\e[38;2;255;0;0;48;2;255;255;255;1mred on white. And \e[38;5;3;4m\e[38;2;0;0;255;4munderlined\e[m\e[m\e[m\e[m text...",
+ );
++}
+
+ is(
+ $m->coloured( 'bold rgb(255, 0, 0) on white', "Some red on white text." ),
diff --git a/testing/perl-mojo-pg/APKBUILD b/testing/perl-mojo-pg/APKBUILD
new file mode 100644
index 00000000000..32d8ac7db68
--- /dev/null
+++ b/testing/perl-mojo-pg/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mojo-pg
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mojo-Pg
+pkgver=4.27
+pkgrel=0
+pkgdesc="Use PostgreSQL with Mojolicious"
+url="https://metacpan.org/release/Mojo-Pg/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-dbd-pg perl-mojolicious perl-sql-abstract-pg"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SR/SRI/Mojo-Pg-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+bd2ce6fe3e3bb918753e9b165be095a7caca8988b43fb2e99786bbafd61cfedd5380e37a2d8a0f03b25529544de250dbdcaa7f2ecdac2ee34551cd7c572f1ff7 Mojo-Pg-4.27.tar.gz
+"
diff --git a/testing/perl-mojo-reactor-ioasync/APKBUILD b/testing/perl-mojo-reactor-ioasync/APKBUILD
new file mode 100644
index 00000000000..56cb4e25554
--- /dev/null
+++ b/testing/perl-mojo-reactor-ioasync/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mojo-reactor-ioasync
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mojo-Reactor-IOAsync
+pkgver=1.002
+pkgrel=0
+pkgdesc="IO::Async backend for Mojo::Reactor"
+url="https://metacpan.org/release/Mojo-Reactor-IOAsync/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-io-async perl-mojolicious"
+makedepends="perl-module-build-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DB/DBOOK/Mojo-Reactor-IOAsync-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+9a51b4b18b6b7a1a62a4d6340dd07bec970065d43e17d2bd800395b96ef1859a4d59198c9641ffb8b378625fbe65aa250a02feca790e4f0daf8faf21299fdc23 Mojo-Reactor-IOAsync-1.002.tar.gz
+"
diff --git a/testing/perl-mojo-redis/APKBUILD b/testing/perl-mojo-redis/APKBUILD
new file mode 100644
index 00000000000..9784d81ffa5
--- /dev/null
+++ b/testing/perl-mojo-redis/APKBUILD
@@ -0,0 +1,63 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mojo-redis
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mojo-Redis
+pkgver=3.29
+pkgrel=0
+pkgdesc="Redis driver based on Mojo::IOLoop"
+url="https://metacpan.org/release/Mojo-Redis/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-mojolicious perl-protocol-redis-faster"
+checkdepends="perl-test-deep redis"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JH/JHTHORSEN/Mojo-Redis-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # disable a very flaky test
+ rm -v ./t/pubsub.t
+}
+
+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}')
+ export TEST_ONLINE="redis://localhost"
+
+ redis-server \
+ --dir "$builddir" \
+ --loglevel warning \
+ --unixsocket "$builddir"/redis.sock &
+ local _redispid=$!
+
+ # 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
+ sleep 0.1s
+ # shellcheck disable=SC3039
+ let _n="$_n - 1"
+ done
+
+ make test || (kill $_redispid && false)
+ kill $_redispid
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+115b0ea8708fff9d4a14dc761dad0f991cf78dbfc9aa19a0a30f5c8914f6e8f153026253e8a97bd30282fdd3272a03e7a61a7c9ee1214187fb62693caffa334d Mojo-Redis-3.29.tar.gz
+"
diff --git a/testing/perl-mojo-sqlite/APKBUILD b/testing/perl-mojo-sqlite/APKBUILD
new file mode 100644
index 00000000000..20ad4594593
--- /dev/null
+++ b/testing/perl-mojo-sqlite/APKBUILD
@@ -0,0 +1,40 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mojo-sqlite
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mojo-SQLite
+pkgver=3.009
+pkgrel=0
+pkgdesc="Tiny Mojolicious wrapper for SQLite"
+url="https://metacpan.org/release/Mojo-SQLite/"
+arch="noarch"
+license="Artistic-2.0"
+depends="
+ perl perl-dbd-sqlite perl-dbi perl-mojolicious
+ perl-sql-abstract-pg perl-uri perl-uri-db
+ "
+makedepends="perl-module-build-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DB/DBOOK/Mojo-SQLite-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+acd18cf2f86c448658c7a7e612ba478799327b2a921c2bce6db8155ad0be2f432abdc0625d328f5852970bc39119ef22507a3393a719caeaa011e17aba08e9cf Mojo-SQLite-3.009.tar.gz
+"
diff --git a/testing/perl-mojolicious-plugin-openapi/APKBUILD b/testing/perl-mojolicious-plugin-openapi/APKBUILD
new file mode 100644
index 00000000000..b652965a5f2
--- /dev/null
+++ b/testing/perl-mojolicious-plugin-openapi/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-mojolicious-plugin-openapi
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mojolicious-Plugin-OpenAPI
+pkgver=5.09
+pkgrel=0
+pkgdesc="OpenAPI / Swagger plugin for Mojolicious"
+url="https://metacpan.org/release/Mojolicious-Plugin-OpenAPI/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-json-validator perl-mojolicious"
+checkdepends="perl-text-markdown"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+33eee4e23e6a6cac8d9ff6473f3aec9ed82e79ddfa3a66156d9f7423b40a33b823de2991dcd19c4f1f3c1f94588c5e74c5715e3b5234848fbeb7ba99d5468265 Mojolicious-Plugin-OpenAPI-5.09.tar.gz
+"
diff --git a/testing/perl-musicbrainz-discid/APKBUILD b/testing/perl-musicbrainz-discid/APKBUILD
new file mode 100644
index 00000000000..8b7522a1bee
--- /dev/null
+++ b/testing/perl-musicbrainz-discid/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=perl-musicbrainz-discid
+pkgver=0.06
+pkgrel=0
+pkgdesc="Perl Module: Perl interface for the MusicBrainz libdiscid library"
+url="https://metacpan.org/release/MusicBrainz-DiscID"
+arch="all"
+license="MIT"
+makedepends="perl-dev libdiscid-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/njh/perl-musicbrainz-discid/archive/$pkgver/perl-musicbrainz-discid-$pkgver.tar.gz"
+
+build() {
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+66d9b7e2e45a0a5f87fdbe0673f6886aa0818d43ba51f46973b02e8f870635a7421b3b0a7bd0fa1d6f862256e9a36340c87af3a43a5e71c2df07dcaa04bcdd87 perl-musicbrainz-discid-0.06.tar.gz
+"
diff --git a/testing/perl-net-address-ip-local/APKBUILD b/testing/perl-net-address-ip-local/APKBUILD
new file mode 100644
index 00000000000..b9c91c1956c
--- /dev/null
+++ b/testing/perl-net-address-ip-local/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-address-ip-local
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Address-IP-Local
+pkgver=0.1.2
+pkgrel=0
+pkgdesc="Discover the local system's IP address"
+url="https://metacpan.org/release/Net-Address-IP-Local/"
+arch="noarch"
+license="GPL-2.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-error perl-io-socket-inet6"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JM/JMEHNLE/net-address-ip-local/Net-Address-IP-Local-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+98f65c05467ce82ab45b6f9ded6a38f5c2ef6c42f94cb59a72f1b8c4660177494b606f8170812fcb37a9b49b0427d31454f6fbd094dab9877b331a24a324fb05 Net-Address-IP-Local-0.1.2.tar.gz
+"
diff --git a/testing/perl-net-amqp-rabbitmq/APKBUILD b/testing/perl-net-amqp-rabbitmq/APKBUILD
new file mode 100644
index 00000000000..b1a0eb11d61
--- /dev/null
+++ b/testing/perl-net-amqp-rabbitmq/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-net-amqp-rabbitmq
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-AMQP-RabbitMQ
+pkgver=2.40010
+pkgrel=2
+pkgdesc="interact with RabbitMQ over AMQP using librabbitmq"
+url="https://metacpan.org/release/Net-AMQP-RabbitMQ/"
+arch="all"
+license="mozilla_1_1"
+depends="perl perl-math-int64 openssl-dev"
+makedepends="perl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/M/MS/MSTEMLE/Net-AMQP-RabbitMQ-$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}')
+ MQSKIPSSL=1 make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+1e0256a3903379031059723ca0d11182ed4ef5a4ae4053d47f57ae1d4c5f42b3a9c48b7fd3dceb057c492c179bc01484651bb063fb5bca4542185fdca7471b06 Net-AMQP-RabbitMQ-2.40010.tar.gz
+"
diff --git a/testing/perl-net-async-redis-xs/APKBUILD b/testing/perl-net-async-redis-xs/APKBUILD
new file mode 100644
index 00000000000..e6789d4739b
--- /dev/null
+++ b/testing/perl-net-async-redis-xs/APKBUILD
@@ -0,0 +1,64 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-async-redis-xs
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Async-Redis-XS
+pkgver=1.001
+pkgrel=0
+pkgdesc="Faster version of Net::Async::Redis"
+url="https://metacpan.org/release/Net-Async-Redis-XS/"
+arch="all !armhf !armv7 !x86" # perl-net-async-redis
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-future-asyncawait perl-io-async
+ perl-net-async-redis perl-object-pad
+ "
+makedepends="perl-dev"
+checkdepends="
+ perl-sub-identify perl-test-checkdeps perl-test-deep
+ perl-test-fatal perl-test-hexstring perl-test-memorygrowth
+ perl-test-mockmodule redis
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Net-Async-Redis-XS-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ export NET_ASYNC_REDIS_HOST="127.0.0.1"
+
+ redis-server \
+ --dir "$builddir" \
+ --loglevel warning \
+ --unixsocket "$builddir"/redis.sock &
+ local _redispid=$!
+
+ # 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
+ sleep 0.1s
+ # shellcheck disable=SC3039
+ let _n="$_n - 1"
+ done
+
+ make test || (kill $_redispid && false)
+ kill $_redispid
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+79b0b319492564130fa5deeece90d34b305a6024fea16362e2fae1867db3cb941411459ca0e55a234c5a76be11b9d849891cbb3baef624be563f87f2995f61ff Net-Async-Redis-XS-1.001.tar.gz
+"
diff --git a/testing/perl-net-async-redis/APKBUILD b/testing/perl-net-async-redis/APKBUILD
new file mode 100644
index 00000000000..68ad4ad8554
--- /dev/null
+++ b/testing/perl-net-async-redis/APKBUILD
@@ -0,0 +1,77 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-async-redis
+pkgver=6.000
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Async-Redis
+pkgdesc="Redis support for IO::Async"
+url="https://metacpan.org/release/Net-Async-Redis/"
+arch="noarch !armhf !armv7 !x86" # perl-ryu
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-cache-lru perl-class-method-modifiers perl-curry
+ perl-digest-crc perl-dir-self perl-file-sharedir
+ perl-file-sharedir-install perl-future perl-future-asyncawait
+ perl-future-queue perl-io-async perl-list-binarysearch-xs
+ perl-log-any perl-math-random-secure perl-metrics-any
+ perl-object-pad perl-path-tiny perl-ryu
+ perl-ryu-async perl-syntax-keyword-dynamically
+ perl-syntax-keyword-match perl-syntax-keyword-try
+ perl-uri perl-uri-redis perl-yaml-libyaml
+ "
+checkdepends="
+ perl-sub-identify perl-test-checkdeps perl-test-deep
+ perl-test-fatal perl-test-hexstring perl-test-mockmodule
+ perl-variable-disposition redis
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Net-Async-Redis-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ export NET_ASYNC_REDIS_HOST="127.0.0.1"
+
+ redis-server \
+ --dir "$builddir" \
+ --loglevel warning \
+ --unixsocket "$builddir"/redis.sock &
+ local _redispid=$!
+
+ # 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
+ sleep 0.1s
+ # shellcheck disable=SC3039
+ let _n="$_n - 1"
+ done
+
+ make test || (kill $_redispid && false)
+ kill $_redispid
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+691329551b0be74e5f9034fe9c9aaa5ad8c93306a9e3bf46b574c311631a337ed97242b134395b24a4e774ccf78220bd33420864ae43bde473b20e6693fadf70 Net-Async-Redis-6.000.tar.gz
+"
diff --git a/testing/perl-net-async-xmpp/APKBUILD b/testing/perl-net-async-xmpp/APKBUILD
new file mode 100644
index 00000000000..170fe5bd129
--- /dev/null
+++ b/testing/perl-net-async-xmpp/APKBUILD
@@ -0,0 +1,50 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-async-xmpp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Async-XMPP
+pkgver=0.003
+pkgrel=0
+pkgdesc="Asynchronous support for the XMPP Protocol"
+url="https://metacpan.org/release/Net-Async-XMPP/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-curry perl-future perl-io-async
+ perl-io-async-resolver-dns perl-io-async-ssl
+ perl-mixin-event-dispatch perl-protocol-xmpp
+ "
+checkdepends="perl-test-checkdeps perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Net-Async-XMPP-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+6c5b187ae82fcff3ed3e2c976f8957d1b3a882c571fb291dfe0d89b0db296ffc43636d293f86a164f77fb1b43d6184b08714671497c16d8a8c35aa7ab6d4a036 Net-Async-XMPP-0.003.tar.gz
+"
diff --git a/testing/perl-net-curl-promiser/APKBUILD b/testing/perl-net-curl-promiser/APKBUILD
new file mode 100644
index 00000000000..508f7b57d84
--- /dev/null
+++ b/testing/perl-net-curl-promiser/APKBUILD
@@ -0,0 +1,75 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-curl-promiser
+pkgver=0.20
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Curl-Promiser
+pkgdesc="Asynchronous libcurl, the easy way"
+url="https://metacpan.org/release/Net-Curl-Promiser/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-net-curl perl-promise-es6"
+checkdepends="
+ perl-anyevent perl-io-async perl-mojolicious
+ perl-test-class-tiny perl-test-deep
+ perl-test-failwarnings perl-test-fatal
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-anyevent
+ $pkgname-ioasync
+ $pkgname-mojo
+ "
+source="https://cpan.metacpan.org/authors/id/F/FE/FELIPE/Net-Curl-Promiser-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+anyevent() {
+ pkgdesc="$pkgdesc (AnyEvent backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-anyevent"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-anyevent"
+
+ amove usr/share/perl5/vendor_perl/Net/Curl/Promiser/AnyEvent.pm
+ amove usr/share/perl5/vendor_perl/Net/Curl/Promiser/Backend/AnyEvent.pm
+}
+
+ioasync() {
+ pkgdesc="$pkgdesc (IO::Async backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-io-async"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-io-async"
+
+ amove usr/share/perl5/vendor_perl/Net/Curl/Promiser/IOAsync.pm
+ amove usr/share/perl5/vendor_perl/Net/Curl/Promiser/Backend/IOAsync.pm
+}
+
+mojo() {
+ pkgdesc="$pkgdesc (Mojolicious backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-mojolicious"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-mojolicious"
+
+ amove usr/share/perl5/vendor_perl/Net/Curl/Promiser/Mojo.pm
+ amove usr/share/perl5/vendor_perl/Net/Curl/Promiser/Backend/Mojo.pm
+}
+
+sha512sums="
+0fbfbd97037a26384eae5562ec9251e6bbffb6a0d4745e40111e2f1a7b1bbf196785bebb712dafcde02534d46215fbac3ca2abfecb5db1a2559011e173e3b258 Net-Curl-Promiser-0.20.tar.gz
+"
diff --git a/testing/perl-net-curl/APKBUILD b/testing/perl-net-curl/APKBUILD
new file mode 100644
index 00000000000..a23d6da9885
--- /dev/null
+++ b/testing/perl-net-curl/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-net-curl
+pkgver=0.56
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Curl
+pkgdesc="Perl interface for libcurl"
+url="https://metacpan.org/release/Net-Curl/"
+arch="all"
+license="MIT-open-group OR MPL-1.1"
+depends="perl"
+makedepends="perl-dev curl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SY/SYP/Net-Curl-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+a9facbed8c381d52c307b556b74660ee3b828f092cfbf58b6b819f6b2819cabab5622856cdbc0d47dc7cb609fa85df9007dd9d380d495d374d5e0edc46add709 Net-Curl-0.56.tar.gz
+"
diff --git a/testing/perl-net-idn-encode/APKBUILD b/testing/perl-net-idn-encode/APKBUILD
new file mode 100644
index 00000000000..4ba8ff68560
--- /dev/null
+++ b/testing/perl-net-idn-encode/APKBUILD
@@ -0,0 +1,48 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-idn-encode
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-IDN-Encode
+pkgver=2.500
+pkgrel=0
+pkgdesc="Internationalizing Domain Names in Applications (IDNA)"
+url="https://metacpan.org/release/Net-IDN-Encode/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test-nowarnings"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/C/CF/CFAERBER/Net-IDN-Encode-$pkgver.tar.gz
+ perl-5.38-compat.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+3537309ea391e4f762eb8ce43929bfa024d63ee59c94f8d2ea16179aa6ad66ecef29188551749593302f14dc5b3182dbce18ebaf5176a34b40d6fa5b7e5763fb Net-IDN-Encode-2.500.tar.gz
+485c8373199ade1ee5efb630b602e0f81ced0fdc19fcdd825334fefd12e9bcc83e71dabe2c6b0747203451d012019e2f32b1f44fee9c3479e4753df8371c645c perl-5.38-compat.patch
+"
diff --git a/testing/perl-net-idn-encode/perl-5.38-compat.patch b/testing/perl-net-idn-encode/perl-5.38-compat.patch
new file mode 100644
index 00000000000..15dc298a306
--- /dev/null
+++ b/testing/perl-net-idn-encode/perl-5.38-compat.patch
@@ -0,0 +1,38 @@
+Patch-Source: https://github.com/cfaerber/Net-IDN-Encode/pull/11.patch
+--
+From 3ebe6f2e239b470efcb64a044edc8202798188af Mon Sep 17 00:00:00 2001
+From: Shin Kojima <shin@kojima.org>
+Date: Sun, 23 Jul 2023 13:15:59 +0900
+Subject: [PATCH] use uvchr_to_utf8_flags instead of uvuni_to_utf8_flags (which
+ is removed in perl 5.38.0)
+
+https://perldoc.perl.org/5.36.0/perlintern#uvuni_to_utf8_flags
+Signed-off-by: Shin Kojima <shin@kojima.org>
+---
+ lib/Net/IDN/Punycode.xs | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/Net/IDN/Punycode.xs b/lib/Net/IDN/Punycode.xs
+index 211ef9c..36530dd 100644
+--- a/lib/Net/IDN/Punycode.xs
++++ b/lib/Net/IDN/Punycode.xs
+@@ -24,6 +24,10 @@
+ #define utf8_to_uvchr_buf(in_p,in_e,u8) utf8_to_uvchr(in_p,u8);
+ #endif
+
++#ifndef uvchr_to_utf8_flags
++#define uvchr_to_utf8_flags(d, uv, flags) uvuni_to_utf8_flags(d, uv, flags);
++#endif
++
+ static char enc_digit[BASE] = {
+ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+ 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+@@ -253,7 +257,7 @@ decode_punycode(input)
+ if(skip_p < re_p) /* move succeeding chars */
+ Move(skip_p, skip_p + u8, re_p - skip_p, char);
+ re_p += u8;
+- uvuni_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
++ uvchr_to_utf8_flags((U8*)skip_p, n, UNICODE_ALLOW_ANY);
+ }
+
+ if(!first) SvUTF8_on(RETVAL); /* UTF-8 chars have been inserted */
diff --git a/testing/perl-net-irr/APKBUILD b/testing/perl-net-irr/APKBUILD
index b83d1a33ec5..10b5c5f644f 100644
--- a/testing/perl-net-irr/APKBUILD
+++ b/testing/perl-net-irr/APKBUILD
@@ -1,41 +1,39 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-net-irr
+pkgver=0.10
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-IRR
-pkgver=0.08
-pkgrel=2
pkgdesc="Perl interface to the Internet Route Registry daemon"
url="https://metacpan.org/release/Net-IRR/"
arch="noarch"
-license="GPL PerlArtistic"
-makedepends="perl-dev cairo-dev"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="cairo-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TC/TCAINE/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/T/TC/TCAINE/Net-IRR-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_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 \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
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="1713451dd65b44c6e87bd8cc29228c898c3790be9d0b7d8adbebbf69b91c1557eb6fef47262fc40bc543f258087ceb87903fc7faf2a3d5059b8735c686fb5823 Net-IRR-0.08.tar.gz"
+sha512sums="
+819630123616034b646772db643642dad5e3c1f8eafd7b0e60e9265de30cb30f8b82df17a0ea58e763b9d2ef7861ad0a16878e669099a1736cb2107c7f369538 Net-IRR-0.10.tar.gz
+"
diff --git a/testing/perl-net-jabber-bot/APKBUILD b/testing/perl-net-jabber-bot/APKBUILD
new file mode 100644
index 00000000000..cd4df41eb44
--- /dev/null
+++ b/testing/perl-net-jabber-bot/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-jabber-bot
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Jabber-Bot
+pkgver=2.1.7
+pkgrel=0
+pkgdesc="Automated Jabber Bot creation with safeties"
+url="https://metacpan.org/release/Net-Jabber-Bot/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-log-log4perl perl-moose perl-moosex-types
+ perl-mozilla-ca perl-net-jabber
+ "
+checkdepends="perl-test-nowarnings"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/Net-Jabber-Bot-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+9d7d2edc76cbe99da87008dc5e70eb652231ba54988ef848a34ab840582e7b3fb1b23b67898f462ad9fbfce74c4aea6e8ff8f34deb21e2df336dac4dfb6bc09f Net-Jabber-Bot-2.1.7.tar.gz
+"
diff --git a/testing/perl-net-jabber/APKBUILD b/testing/perl-net-jabber/APKBUILD
new file mode 100644
index 00000000000..0b7f9df306d
--- /dev/null
+++ b/testing/perl-net-jabber/APKBUILD
@@ -0,0 +1,50 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-jabber
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Jabber
+pkgver=2.0
+pkgrel=0
+pkgdesc="Access the Jabber protocol with Perl"
+url="https://metacpan.org/release/Net-Jabber/"
+arch="noarch"
+license="LGPL-2.0-or-later"
+depends="perl perl-net-xmpp"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/R/RE/REATMON/Net-Jabber-$pkgver.tar.gz
+ builtin-digest-sha.patch
+ hash-randomization.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # bundled Test::More causes deprecation warnings
+ mv -v t/lib t/lib.old
+}
+
+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
+}
+
+sha512sums="
+2ad275fdef8a7ed17dc464f692b974e71bc3a5df5239943cceaec9509e6454945023e220ddfb42763e18813124f6b7f2d6d43faf3059e0680b753486961a1b4c Net-Jabber-2.0.tar.gz
+d418222fbb510329c1e74c934e171f13f8a23bd1c8ee0526f36ea42de3e2eae8814b04bebe0d0ddf99ac351812b16ed593fb860e17191849cb557359d3981df7 builtin-digest-sha.patch
+c9e816e4156b2b3890c8f02ac07e59f3bac0bdd56f0834694ec33afdfd1e02a20242828c2f241ef155353170c745fa2e145ebf953f246e25d62c4ea10db30260 hash-randomization.patch
+"
diff --git a/testing/perl-net-jabber/builtin-digest-sha.patch b/testing/perl-net-jabber/builtin-digest-sha.patch
new file mode 100644
index 00000000000..56aacac613a
--- /dev/null
+++ b/testing/perl-net-jabber/builtin-digest-sha.patch
@@ -0,0 +1,42 @@
+Use Digest::SHA bundled with Perl so we don't need to depend on perl-digest-sha1
+
+--- a/lib/Net/Jabber/Component.pm
++++ b/lib/Net/Jabber/Component.pm
+@@ -219,7 +219,7 @@
+
+ $self->{STREAM}->SetCallBacks(node=>undef);
+
+- $self->Send("<handshake>".Digest::SHA1::sha1_hex($self->{SESSION}->{id}.$args{secret})."</handshake>");
++ $self->Send("<handshake>".Digest::SHA::sha1_hex($self->{SESSION}->{id}.$args{secret})."</handshake>");
+ my $handshake = $self->Process();
+
+ if (!defined($handshake) ||
+--- a/lib/Net/Jabber/Key.pm
++++ b/lib/Net/Jabber/Key.pm
+@@ -103,14 +103,14 @@
+
+ $self->{CACHE} = {};
+
+- if (eval "require Digest::SHA1")
++ if (eval "require Digest::SHA")
+ {
+ $self->{DIGEST} = 1;
+- Digest::SHA1->import(qw(sha1 sha1_hex sha1_base64));
++ Digest::SHA->import(qw(sha1 sha1_hex sha1_base64));
+ }
+ else
+ {
+- print "ERROR: You cannot use Key.pm unless you have Digest::SHA1 installed.\n";
++ print "ERROR: You cannot use Key.pm unless you have Digest::SHA installed.\n";
+ exit(0);
+ }
+
+@@ -131,7 +131,7 @@
+ my $self = shift;
+
+ my $string = $$.time.rand(1000000);
+- $string = Digest::SHA1::sha1_hex($string);
++ $string = Digest::SHA::sha1_hex($string);
+ $self->{DEBUG}->Log1("Generate: key($string)");
+ return $string;
+ }
diff --git a/testing/perl-net-jabber/hash-randomization.patch b/testing/perl-net-jabber/hash-randomization.patch
new file mode 100644
index 00000000000..24ad44a2659
--- /dev/null
+++ b/testing/perl-net-jabber/hash-randomization.patch
@@ -0,0 +1,13 @@
+Fixes t/protocol_rpc.t test expecting keys to be sorted
+
+--- a/lib/Net/Jabber/Protocol.pm
++++ b/lib/Net/Jabber/Protocol.pm
+@@ -2239,7 +2239,7 @@
+ elsif (ref($value) eq "HASH")
+ {
+ my $struct = $obj->AddValue()->AddStruct();
+- foreach my $key (keys(%{$value}))
++ foreach my $key (sort keys(%{$value}))
+ {
+ $self->RPCEncode_Value($struct->AddMember(name=>$key),$value->{$key});
+ }
diff --git a/testing/perl-net-libresolv/APKBUILD b/testing/perl-net-libresolv/APKBUILD
new file mode 100644
index 00000000000..68ce0e14e4f
--- /dev/null
+++ b/testing/perl-net-libresolv/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-libresolv
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-LibResolv
+pkgver=0.03
+pkgrel=0
+pkgdesc="Perl wrapper around libresolv"
+url="https://metacpan.org/release/Net-LibResolv/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev perl-extutils-cchecker perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Net-LibResolv-$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="
+78c447eed6c3222b66627f2930e95a78bd5688d78d242e6de19a7806f94ccd5132a2537e4584a31805d2eaacae91af85ef5d6c64a6116e3a268cafe8a2e2bb2f Net-LibResolv-0.03.tar.gz
+"
diff --git a/testing/perl-net-mpd/APKBUILD b/testing/perl-net-mpd/APKBUILD
deleted file mode 100644
index 601725408fe..00000000000
--- a/testing/perl-net-mpd/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=perl-net-mpd
-_pkgreal=Net-MPD
-pkgver=0.07
-pkgrel=0
-pkgdesc="Communicate with an MPD server"
-url="https://metacpan.org/release/Net-MPD/"
-arch="noarch"
-license="MIT"
-depends="mpd"
-makedepends="perl-dev perl-module-build-tiny"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AB/ABERNDT/Net-MPD-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-build() {
- export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL="--skipdeps" \
- PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'" \
- PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
- MODULEBUILDRC=/dev/null CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
-
- perl Build.PL
- ./Build
-}
-
-check() {
- ./Build test
-}
-
-package() {
- ./Build install --destdir="$pkgdir" --prefix=/usr
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="8864cfcfa5fa22ccc32feea73644217611957aeb5fe2f3b35c389f8e8488887d589bc3f2ac794e4374bbe75134e60832d920dba22f31fbe513e688da70fec1e2 Net-MPD-0.07.tar.gz"
diff --git a/testing/perl-net-mqtt-simple/APKBUILD b/testing/perl-net-mqtt-simple/APKBUILD
new file mode 100644
index 00000000000..6b5f9db33a1
--- /dev/null
+++ b/testing/perl-net-mqtt-simple/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-mqtt-simple
+pkgver=1.29
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-MQTT-Simple
+pkgdesc="Minimal MQTT version 3 interface"
+url="https://metacpan.org/release/Net-MQTT-Simple/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+subpackages="$pkgname-doc $pkgname-ssl"
+source="https://cpan.metacpan.org/authors/id/J/JU/JUERD/Net-MQTT-Simple-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+ssl() {
+ pkgdesc="$pkgdesc with SSL support"
+ depends="$pkgname=$pkgver-r$pkgrel perl-io-socket-ssl"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-io-socket-ssl"
+
+ amove usr/share/perl5/vendor_perl/Net/MQTT/Simple/SSL.pm
+}
+
+sha512sums="
+9f0d55ed0e9b158c33f10cbb58d70abdbf02c1c9077ca9a53b9da032409ae21db5fb317c3f54033c86bbee184c736c1ab8c84e9907255d986fab72bd3975d5e0 Net-MQTT-Simple-1.29.tar.gz
+"
diff --git a/testing/perl-net-mqtt/APKBUILD b/testing/perl-net-mqtt/APKBUILD
new file mode 100644
index 00000000000..80e00fdb373
--- /dev/null
+++ b/testing/perl-net-mqtt/APKBUILD
@@ -0,0 +1,53 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-mqtt
+pkgver=1.163170
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-MQTT
+pkgdesc="Perl modules for the MQTT Protocol"
+url="https://metacpan.org/release/Net-MQTT/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-module-pluggable"
+subpackages="$pkgname-doc $pkgname-trace"
+source="https://cpan.metacpan.org/authors/id/B/BE/BEANZ/Net-MQTT-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+trace() {
+ pkgdesc="$pkgdesc (message decoder for IP packets)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-net-pcap"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-net-pcap"
+
+ amove usr/bin/net-mqtt-trace
+}
+
+sha512sums="
+9b2d412e7098b8e098e27f67ab3f26d9eb277bac7573dcff66a90752f0ffa362763e51d605a2b908fa698fb9800d83af5909b0145d5a9e8fed9a0f8c6355b874 Net-MQTT-1.163170.tar.gz
+"
diff --git a/testing/perl-net-netmask/APKBUILD b/testing/perl-net-netmask/APKBUILD
index a8b75a0b1d6..cb994023d58 100644
--- a/testing/perl-net-netmask/APKBUILD
+++ b/testing/perl-net-netmask/APKBUILD
@@ -1,28 +1,34 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-net-netmask
-_realname=Net-Netmask
-pkgver=1.9104
-pkgrel=0
-pkgdesc="Perl extension to parse, manipulate, and lookup IP network blocks"
-options="!check" # Requires perl-test-harness-switches
-url="https://metacpan.org/release/Net-Netmask"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Netmask
+pkgver=2.0002
+pkgrel=2
+pkgdesc="Understand and manipulate IP netmasks"
+url="https://metacpan.org/release/Net-Netmask/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev"
-checkdepends="perl-test2-suite perl-test-harness"
+makedepends="perl-test-useallmodules"
+checkdepends="perl-test-useallmodules perl-test2-suite"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/J/JM/JMASLAK/Net-Netmask-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-builddir="$srcdir/$_realname-$pkgver"
+# secfixes:
+# 2.0000-r0:
+# - CVE-2021-29424
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
}
@@ -31,4 +37,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="4bec48c8ba8b19baaa5cbfc6c17a539a663f3da8899f6dbdfbf455f7c6b8f00f102ff841e47656e83571cc44cec3d2665f5f29c827448b76f9424faafac8d1a3 Net-Netmask-1.9104.tar.gz"
+sha512sums="
+60cd9de1cac95516515428eb7d1c883b5260333768c363b47a87bb404b13bac713746e7512ff1f52bf3e5c8344f0d38889bba44a2c84b8ddf36e969d63ea8373 Net-Netmask-2.0002.tar.gz
+"
diff --git a/testing/perl-net-patricia/APKBUILD b/testing/perl-net-patricia/APKBUILD
index 54be7b1252f..ea49d88eaf9 100644
--- a/testing/perl-net-patricia/APKBUILD
+++ b/testing/perl-net-patricia/APKBUILD
@@ -1,39 +1,31 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-net-patricia
_pkgreal=Net-Patricia
pkgver=1.22
-pkgrel=6
-pkgdesc="unknown"
+pkgrel=11
+pkgdesc="Patricia Trie perl module for fast IP address lookups"
url="https://metacpan.org/release/Net-Patricia/"
arch="all"
license="GPL PerlArtistic"
-cpandepends="perl-net-cidr-lite perl-socket6"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+options="!check" # no testsuite
+makedepends="perl-dev perl-net-cidr-lite perl-socket6"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GR/GRUBER/$_pkgreal-$pkgver.tar.gz"
-_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
-}
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="d76702d30784f8448dcf3a5269e052bc7bd6f5fe5a16824b6e3ede1d0182deb139522e45e1fb78749a7527ddbc950c213d843e43f45b5b0ed63b5b985b329861 Net-Patricia-1.22.tar.gz"
+sha512sums="
+d76702d30784f8448dcf3a5269e052bc7bd6f5fe5a16824b6e3ede1d0182deb139522e45e1fb78749a7527ddbc950c213d843e43f45b5b0ed63b5b985b329861 Net-Patricia-1.22.tar.gz
+"
diff --git a/testing/perl-net-pcap/APKBUILD b/testing/perl-net-pcap/APKBUILD
new file mode 100644
index 00000000000..edbd5e3a2b0
--- /dev/null
+++ b/testing/perl-net-pcap/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-pcap
+pkgver=0.21
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Pcap
+pkgdesc="Interface to the pcap(3) LBL packet capture library"
+url="https://metacpan.org/release/Net-Pcap/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="libpcap-dev perl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/C/CO/CORION/Net-Pcap-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+aab50ac82283b976db6a848b54c5026edd2f1608d2119a8bea7478c1b588a6ca8111691e7b4c0d2d24820fb5036727db9780966ea7270ef82a5e85b2bf612461 Net-Pcap-0.21.tar.gz
+"
diff --git a/testing/perl-net-xmpp/APKBUILD b/testing/perl-net-xmpp/APKBUILD
new file mode 100644
index 00000000000..177d3a99f83
--- /dev/null
+++ b/testing/perl-net-xmpp/APKBUILD
@@ -0,0 +1,43 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-net-xmpp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-XMPP
+pkgver=1.05
+pkgrel=0
+pkgdesc="XMPP Support Library"
+url="https://metacpan.org/release/Net-XMPP/"
+arch="noarch"
+license="LGPL-2.1-or-later"
+depends="perl perl-authen-sasl perl-xml-stream"
+makedepends="perl-module-build"
+checkdepends="perl-lwp-online perl-test-memory-cycle perl-yaml-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAPATRICK/Net-XMPP-$pkgver.tar.gz
+ loop-var.patch
+ no-gtalk.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+cdd5474fcbdf7ff6c7d1247f9828f5dfb1828c258af366a831bab8e5faab423b73aa16c34228818526ebcc3180ef0ccc52d6e6cb61e2fe689458b87ec7fab699 Net-XMPP-1.05.tar.gz
+8d815b04233b140881ff105f64d5017dbd937ed03521516a8cd2ba60bb0e07dec7d27903d8a35eb4e23b4ef52ccb4703fa7f0ea698dcca64d1ead3a6a7f2740b loop-var.patch
+678db0127de65198b52094afc94c7d057fead39a3f70dc782c4d661ace8d199cd37f632fe29e0699f9f656ae467cd91c191803f3043e966d2db2a7c475fb48c5 no-gtalk.patch
+"
diff --git a/testing/perl-net-xmpp/loop-var.patch b/testing/perl-net-xmpp/loop-var.patch
new file mode 100644
index 00000000000..eb9312e0080
--- /dev/null
+++ b/testing/perl-net-xmpp/loop-var.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://github.com/dap/Net-XMPP/commit/a0224e2b2c4a46b53a2591c0f369d63ae580d592.patch
+
+Reference: https://rt.cpan.org/Public/Bug/Display.html?id=58949
+--
+From a0224e2b2c4a46b53a2591c0f369d63ae580d592 Mon Sep 17 00:00:00 2001
+From: Darian Anthony Patrick <dap@darianpatrick.com>
+Date: Mon, 22 Dec 2014 15:02:25 -0800
+Subject: [PATCH] RT#58949 User array member alias
+
+---
+ lib/Net/XMPP/Stanza.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Net/XMPP/Stanza.pm b/lib/Net/XMPP/Stanza.pm
+index 15d6c5b..cb1b7b2 100644
+--- a/lib/Net/XMPP/Stanza.pm
++++ b/lib/Net/XMPP/Stanza.pm
+@@ -1366,7 +1366,7 @@ sub _parse_tree
+ {
+ foreach my $xTree (@xTrees)
+ {
+- if( exists($Net::XMPP::Namespaces::NS{$xTrees[0]->get_attrib("xmlns")}))
++ if( exists($Net::XMPP::Namespaces::NS{$xTree->get_attrib("xmlns")}))
+ {
+ $self->AddChild($xTree);
+ $self->{TREE}->remove_child($xTree);
diff --git a/testing/perl-net-xmpp/no-gtalk.patch b/testing/perl-net-xmpp/no-gtalk.patch
new file mode 100644
index 00000000000..fb7042a0d69
--- /dev/null
+++ b/testing/perl-net-xmpp/no-gtalk.patch
@@ -0,0 +1,11 @@
+--- a/t/gtalk.t
++++ b/t/gtalk.t
+@@ -52,7 +52,7 @@
+ }
+
+ my $repeat = 5;
+-plan tests => 2 + 6 * $repeat;
++plan skip_all => 'Google Talk is no longer available';
+
+ # TODO ask user if it is ok to do network tests!
+ print_size('before loading Net::XMPP');
diff --git a/testing/perl-netaddr-mac/APKBUILD b/testing/perl-netaddr-mac/APKBUILD
index b6c08770d13..fed5fc28d70 100644
--- a/testing/perl-netaddr-mac/APKBUILD
+++ b/testing/perl-netaddr-mac/APKBUILD
@@ -1,42 +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-netaddr-mac
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=NetAddr-MAC
-pkgver=0.96
-pkgrel=0
-pkgdesc="MAC address functions and object"
-url="https://metacpan.org/release/NetAddr-MAC"
+pkgver=0.98
+pkgrel=1
+pkgdesc="MAC hardware address functions and object (EUI48 and EUI64)"
+url="https://metacpan.org/release/NetAddr-MAC/"
arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-test-trap"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+license="MIT"
+depends="perl"
+makedepends="perl-dev perl-module-build perl-test-trap perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DJ/DJZORT/NetAddr-MAC-$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 Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+check() {
+ ./Build test
}
package() {
- make DESTDIR="$pkgdir" install
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="c2bd45cda42c9fe354354a8a2fb7ce3a528d49d0aaf48bb67059d047e139ed84118f8766f9c0c233296670584172e9ef6f0c34f7036845dbf5ec8d2fab119512 NetAddr-MAC-0.96.tar.gz"
+sha512sums="
+88ac3c10f3a5c5c1fbf2b40299c95336c26a726bf0d7d82de512985fbc846edfe009d8a40a3b5ea48b6ad65b122e8b4631588ec1019b98b17260f9b6aea72f2f NetAddr-MAC-0.98.tar.gz
+"
diff --git a/testing/perl-nice-try/APKBUILD b/testing/perl-nice-try/APKBUILD
new file mode 100644
index 00000000000..1be59b66d2b
--- /dev/null
+++ b/testing/perl-nice-try/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-nice-try
+pkgver=1.3.10
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Nice-Try
+pkgdesc="Try-Catch block implementation using Perl filter"
+url="https://metacpan.org/release/Nice-Try/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-ppi perl-ppi-xs perl-want"
+checkdepends="perl-test-pod"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/Nice-Try-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7f63b08de6d6e07156bbe93d509e19dd7e09e68ef68305f6fceb97ea6202bc63fba321809fda711f61fdf62e77ed4acd1f290fb50e5b13d39429ef3d1257332b Nice-Try-v1.3.10.tar.gz
+"
diff --git a/testing/perl-number-format/APKBUILD b/testing/perl-number-format/APKBUILD
index 8c9812b833c..4826f5cba49 100644
--- a/testing/perl-number-format/APKBUILD
+++ b/testing/perl-number-format/APKBUILD
@@ -3,31 +3,29 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-number-format
_pkgreal=Number-Format
-pkgver=1.75
+pkgver=1.76
pkgrel=1
pkgdesc="Perl extension for formatting numbers"
url="https://metacpan.org/release/Number-Format/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends="perl-test-simple"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="perl"
+makedepends="perl-test-simple"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/W/WR/WRW/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
options="!check"
builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
cd "$builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+ 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}'`
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make
}
@@ -42,4 +40,6 @@ check() {
make test
}
-sha512sums="fa712a82b33ba062308e6bf29a4d99e73245f95495206e2c4252d8735d1851136553ec719a00683163aea0d3dddaa6bcc1261ef643439b870605df8ab17a40ef Number-Format-1.75.tar.gz"
+sha512sums="
+c7132bbd036522d35082ee18a5ca534ee8820e3d8901293621a7f573a0f44ee6c652a91a7ca9d44c8a9185e1c9306dfbd79757c9b3818dc6de3cca761883790a Number-Format-1.76.tar.gz
+"
diff --git a/testing/perl-number-misc/APKBUILD b/testing/perl-number-misc/APKBUILD
index 6f898b031b9..7d5d2e34c9d 100644
--- a/testing/perl-number-misc/APKBUILD
+++ b/testing/perl-number-misc/APKBUILD
@@ -1,35 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: TBK <tbk@jjtc.eu>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-number-misc
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Number-Misc
pkgver=1.2
-pkgrel=1
+pkgrel=5
pkgdesc="Handy utilities for numbers"
url="https://metacpan.org/release/Number-Misc/"
arch="noarch"
-license="GPL PerlArtistic"
-options="!check"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MI/MIKO/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MI/MIKO/Number-Misc-$pkgver.tar.gz"
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 Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ ./Build test
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f160de841bc895481f6d9422ed639391fd9e9b65239e3c0adf25b63e88902e7608049496ecec864cae39a046e5f1903f3e3ede1cb71018203f62da2ded67b8eb Number-Misc-1.2.tar.gz"
+sha512sums="
+f160de841bc895481f6d9422ed639391fd9e9b65239e3c0adf25b63e88902e7608049496ecec864cae39a046e5f1903f3e3ede1cb71018203f62da2ded67b8eb Number-Misc-1.2.tar.gz
+"
diff --git a/testing/perl-number-tolerant/APKBUILD b/testing/perl-number-tolerant/APKBUILD
index f732160ba82..dd35521bfd2 100644
--- a/testing/perl-number-tolerant/APKBUILD
+++ b/testing/perl-number-tolerant/APKBUILD
@@ -3,18 +3,13 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-number-tolerant
_pkgreal=Number-Tolerant
-pkgver=1.708
-pkgrel=1
+pkgver=1.710
+pkgrel=0
pkgdesc="tolerance ranges for inexact numbers"
url="https://metacpan.org/release/Number-Tolerant/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-sub-exporter"
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl perl-sub-exporter"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -45,4 +40,6 @@ check() {
make test
}
-sha512sums="9a8b878d65e5c6cb9600bd743d5b74a639e4be4c07cca5a954fe0042d5ea749ac656e9b480d8e8a2573259ad85639e110ff531d61259e83ebb66d913fe37374a Number-Tolerant-1.708.tar.gz"
+sha512sums="
+358478a1f699a231d74391219b94bd20f41298e164279bee7f0ca793442c4ab273498daa5ac247486753644c592769239070c46a03e568e435aa626fec12dc9f Number-Tolerant-1.710.tar.gz
+"
diff --git a/testing/perl-object-event/APKBUILD b/testing/perl-object-event/APKBUILD
new file mode 100644
index 00000000000..7b9f48553c6
--- /dev/null
+++ b/testing/perl-object-event/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-object-event
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Object-Event
+pkgver=1.23
+pkgrel=0
+pkgdesc="Perl event callback interface"
+url="https://metacpan.org/release/Object-Event/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-common-sense perl-anyevent"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/E/EL/ELMEX/Object-Event-$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="
+f2a877e66b00cf095c1b1ea1447b7aedb2c4c24a19b46e870894811bf707616bb2c59edc31b2d9b7157ff430cf2610facd201c9fdd8254bfb945900b70c79918 Object-Event-1.23.tar.gz
+"
diff --git a/testing/perl-openapi-client/APKBUILD b/testing/perl-openapi-client/APKBUILD
new file mode 100644
index 00000000000..7ee3bba07fc
--- /dev/null
+++ b/testing/perl-openapi-client/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-openapi-client
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=OpenAPI-Client
+pkgver=1.07
+pkgrel=0
+pkgdesc="Client for talking to an Open API powered server"
+url="https://metacpan.org/release/OpenAPI-Client/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-json-validator perl-mojolicious-plugin-openapi"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+18167fcbd239436c401d0d4f2775a4cd5032fbcb2feaf5107c2f76a6b822d8c688431265f2d434bfadca2d74592e57ff1fd5721a2194ef906faad538004b7050 OpenAPI-Client-1.07.tar.gz
+"
diff --git a/testing/perl-opentracing/APKBUILD b/testing/perl-opentracing/APKBUILD
new file mode 100644
index 00000000000..c77b613867d
--- /dev/null
+++ b/testing/perl-opentracing/APKBUILD
@@ -0,0 +1,55 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-opentracing
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=OpenTracing
+pkgver=1.006
+pkgrel=0
+pkgdesc="Application process monitoring, as defined by opentracing.io"
+url="https://metacpan.org/release/OpenTracing/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-bytes-random-secure perl-class-method-modifiers
+ perl-indirect perl-json-maybeutf8 perl-json-maybexs
+ perl-log-any perl-module-pluggable perl-net-address-ip-local
+ perl-role-tiny perl-syntax-keyword-try
+ "
+checkdepends="
+ perl-log-any-adapter-tap perl-test-checkdeps
+ perl-test-deep perl-test-fatal perl-test-files
+ perl-test-refcount perl-test-warnings
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/OpenTracing-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+ad6c5f7488bcb4fba3b5ff669baffe6de0c9d092585322b60c0fa1d9eeb5984c7dd56676efed141ac7fa53ae3df446314153a45f1a794174371d82916c12902b OpenTracing-1.006.tar.gz
+"
diff --git a/testing/perl-pango/APKBUILD b/testing/perl-pango/APKBUILD
index b3bf6e3fcf4..ea23fe6f7de 100644
--- a/testing/perl-pango/APKBUILD
+++ b/testing/perl-pango/APKBUILD
@@ -4,36 +4,33 @@
pkgname=perl-pango
_pkgreal=Pango
pkgver=1.227
-pkgrel=5
+pkgrel=10
pkgdesc="Layout and render international text"
url="https://metacpan.org/release/Pango/"
arch="all"
license="GPL PerlArtistic"
-cpandepends="perl-glib perl-extutils-depends perl-cairo perl-extutils-pkgconfig"
-cpanmakedepends=""
-depends="$cpandepends"
-makedepends="perl-dev pango-dev cairo-dev $cpanmakedepends"
+depends="perl-glib perl-extutils-depends perl-cairo perl-extutils-pkgconfig"
+makedepends="perl-dev pango-dev cairo-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/$_pkgreal-$pkgver.tar.gz"
-_builddir="$srcdir/$_pkgreal-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="df44d126d6a9aaa7b7dc2d993ca00fe9eb6abdeb6c7f75ddebc71728b0cfd2d7404c2d27e2dbcbb7acdd73f30888d4abc5c33da9ecbbc7d155f67d083960f29c Pango-1.227.tar.gz"
+sha512sums="
+df44d126d6a9aaa7b7dc2d993ca00fe9eb6abdeb6c7f75ddebc71728b0cfd2d7404c2d27e2dbcbb7acdd73f30888d4abc5c33da9ecbbc7d155f67d083960f29c Pango-1.227.tar.gz
+"
diff --git a/testing/perl-path-iter/APKBUILD b/testing/perl-path-iter/APKBUILD
index 9f7c1a55e96..8d3ee9c944f 100644
--- a/testing/perl-path-iter/APKBUILD
+++ b/testing/perl-path-iter/APKBUILD
@@ -1,32 +1,28 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=perl-path-iter
-_realname=Path-Iter
+_pkgreal=Path-Iter
pkgver=0.2
-pkgrel=1
+pkgrel=3
pkgdesc="Simple Efficient Path Iteration"
url="http://drmuey.com/cpan_contact.pl"
arch="noarch"
license="PerlArtistic"
-depends=""
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DM/DMUEY/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/D/DM/DMUEY/Path-Iter-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$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
}
diff --git a/testing/perl-perlio-locale/APKBUILD b/testing/perl-perlio-locale/APKBUILD
index 6b7d73d15d0..280db5bad67 100644
--- a/testing/perl-perlio-locale/APKBUILD
+++ b/testing/perl-perlio-locale/APKBUILD
@@ -1,39 +1,34 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-perlio-locale
_pkgreal=PerlIO-locale
pkgver=0.10
-pkgrel=6
-pkgdesc="unknown"
+pkgrel=11
+pkgdesc="PerlIO layer to use the encoding of the current locale"
url="https://metacpan.org/release/PerlIO-locale/"
arch="all"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/$_pkgreal-$pkgver.tar.gz"
-_builddir="$srcdir/$_pkgreal-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="d61a9cdf60c89cda9f39335a54878df87a112f5e4caf8d697a5173797726242ecc602a8670d2b058ad5677cc5db3100afc9742bee1498ef922e02362e5281f5c PerlIO-locale-0.10.tar.gz"
+sha512sums="
+d61a9cdf60c89cda9f39335a54878df87a112f5e4caf8d697a5173797726242ecc602a8670d2b058ad5677cc5db3100afc9742bee1498ef922e02362e5281f5c PerlIO-locale-0.10.tar.gz
+"
diff --git a/testing/perl-perlio-via-timeout/APKBUILD b/testing/perl-perlio-via-timeout/APKBUILD
deleted file mode 100644
index 4e59e77bb47..00000000000
--- a/testing/perl-perlio-via-timeout/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname=perl-perlio-via-timeout
-_pkgreal=PerlIO-via-Timeout
-pkgver=0.32
-pkgrel=0
-pkgdesc="a PerlIO layer that adds read & write timeout to a handle"
-url="https://metacpan.org/release/PerlIO-via-Timeout/"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev perl-test-tcp perl-module-build-tiny"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAMS/PerlIO-via-Timeout-$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="52200c0d19da7a19b9b328473b0e7b57a1a3102fd3ace947af8fef8f670aaebe37811daaa2e2b6cf2f6397855a4cfb2424af053322146a8acefd71e1bb30f681 PerlIO-via-Timeout-0.32.tar.gz"
diff --git a/testing/perl-plack-middleware-expires/APKBUILD b/testing/perl-plack-middleware-expires/APKBUILD
index 3ffd08229c8..d95d028528b 100644
--- a/testing/perl-plack-middleware-expires/APKBUILD
+++ b/testing/perl-plack-middleware-expires/APKBUILD
@@ -4,43 +4,34 @@
pkgname=perl-plack-middleware-expires
_pkgreal=Plack-Middleware-Expires
pkgver=0.06
-pkgrel=1
+pkgrel=3
pkgdesc="mod_expires for plack"
url="https://metacpan.org/release/Plack-Middleware-Expires/"
arch="noarch"
-license="GPL PerlArtistic"
-cpandepends="perl-http-message perl-plack perl-http-date perl-try-tiny"
-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-http-message perl-plack perl-http-date perl-try-tiny"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare || return 1
-
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
perl Build.PL installdirs=vendor || return 1
}
build() {
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
./Build
}
package() {
- cd "$builddir"
./Build install destdir="$pkgdir" || return 1
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
check() {
- cd "$builddir"
./Build test
}
diff --git a/testing/perl-plack-middleware-reverseproxy/APKBUILD b/testing/perl-plack-middleware-reverseproxy/APKBUILD
index a970d0d298d..79035a8199e 100644
--- a/testing/perl-plack-middleware-reverseproxy/APKBUILD
+++ b/testing/perl-plack-middleware-reverseproxy/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-plack-middleware-reverseproxy
_pkgreal=Plack-Middleware-ReverseProxy
pkgver=0.16
-pkgrel=0
+pkgrel=2
pkgdesc="Supports app to run as a reverse proxy backend"
url="https://metacpan.org/release/Plack-Middleware-ReverseProxy"
-arch="noarch !mips !mips64" # tests fail
+arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-plack"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install"
+depends="perl perl-plack"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-pod-cpandoc/APKBUILD b/testing/perl-pod-cpandoc/APKBUILD
index de2b7f97356..80aac3502ab 100644
--- a/testing/perl-pod-cpandoc/APKBUILD
+++ b/testing/perl-pod-cpandoc/APKBUILD
@@ -4,36 +4,32 @@
pkgname=perl-pod-cpandoc
_pkgreal=Pod-Cpandoc
pkgver=0.16
-pkgrel=2
+pkgrel=6
pkgdesc="perldoc that works for modules you don't have installed"
url="https://metacpan.org/release/Pod-Cpandoc/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install $cpanmakedepends"
+depends="perl"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SA/SARTAK/$_pkgreal-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- 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="ac9ffa4f845f213452a69e05f5f39d3cd4cf2db4c97ba2db1e7d1c6e729575b11540715abfa972ee31dad11aa334093820913a62656e2e9bbae77c910bab51bf Pod-Cpandoc-0.16.tar.gz"
+sha512sums="
+ac9ffa4f845f213452a69e05f5f39d3cd4cf2db4c97ba2db1e7d1c6e729575b11540715abfa972ee31dad11aa334093820913a62656e2e9bbae77c910bab51bf Pod-Cpandoc-0.16.tar.gz
+"
diff --git a/testing/perl-pod-tidy/APKBUILD b/testing/perl-pod-tidy/APKBUILD
new file mode 100644
index 00000000000..fd737b391ba
--- /dev/null
+++ b/testing/perl-pod-tidy/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=perl-pod-tidy
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Pod-Tidy
+pkgver=0.10
+pkgrel=1
+pkgdesc="a reformatting Pod Processor"
+url="https://metacpan.org/release/Pod-Tidy/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-encode-newlines perl-io-string perl-pod-parser perl-pod-wrap perl-test-cmd perl-text-glob"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test-distribution"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JH/JHOBLITT/Pod-Tidy-$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="
+b0ee0f03c148362a348a80b54424bb0c33876e24d90b21b921f85f55a20f29417764305ac864ecb06c3d03fe502aec9434d5aeeb97d7ae3506bd3cbf155b0875 Pod-Tidy-0.10.tar.gz
+"
diff --git a/testing/perl-ppi-xs/APKBUILD b/testing/perl-ppi-xs/APKBUILD
new file mode 100644
index 00000000000..2679d669cae
--- /dev/null
+++ b/testing/perl-ppi-xs/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ppi-xs
+pkgver=0.910
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=PPI-XS
+pkgdesc="(Minor) XS acceleration for PPI"
+url="https://metacpan.org/release/PPI-XS/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-ppi"
+makedepends="perl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/PPI-XS-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e4eb631cb6272bcb42acefe70ccb7fcf2c2fb34feabf16908de135df98b870ffc4b4d21fd705b5daeee76fe076478508391ccec9db764e9360ff523cfc1a777d PPI-XS-0.910.tar.gz
+"
diff --git a/testing/perl-proc-guard/APKBUILD b/testing/perl-proc-guard/APKBUILD
index 6377830b2a3..6ec14137da6 100644
--- a/testing/perl-proc-guard/APKBUILD
+++ b/testing/perl-proc-guard/APKBUILD
@@ -1,43 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-proc-guard
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Proc-Guard
pkgver=0.07
-pkgrel=1
+pkgrel=4
pkgdesc="process runner with RAII pattern"
url="https://metacpan.org/release/Proc-Guard/"
arch="noarch"
-license="GPL PerlArtistic"
-cpandepends="perl-class-accessor-lite"
-cpanmakedepends="perl-test-requires perl-module-build"
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-class-accessor-lite"
+makedepends="perl-module-build"
+checkdepends="perl-file-which perl-test-requires perl-test-tcp"
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/Proc-Guard-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- cd "$builddir"
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
+ 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"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="1f27f7b1ee3116f3136cc4b310751bf0ab5f04a8698ce619cf94341c26e293f8c331126c636c6dd1dcc3b85724b60b22ea553b9c9f85624c59924dc89c2b6ac4 Proc-Guard-0.07.tar.gz"
+sha512sums="
+1f27f7b1ee3116f3136cc4b310751bf0ab5f04a8698ce619cf94341c26e293f8c331126c636c6dd1dcc3b85724b60b22ea553b9c9f85624c59924dc89c2b6ac4 Proc-Guard-0.07.tar.gz
+"
diff --git a/testing/perl-promise-es6/APKBUILD b/testing/perl-promise-es6/APKBUILD
new file mode 100644
index 00000000000..7b475582e9e
--- /dev/null
+++ b/testing/perl-promise-es6/APKBUILD
@@ -0,0 +1,85 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-promise-es6
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Promise-ES6
+pkgver=0.28
+pkgrel=0
+pkgdesc="ES6-style promises in Perl"
+url="https://metacpan.org/release/Promise-ES6/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-extutils-makemaker-cpanfile"
+checkdepends="
+ perl-anyevent perl-devel-globaldestruction perl-future-asyncawait
+ perl-test-class perl-test-deep perl-test-failwarnings
+ perl-test-fatal perl-test2-suite
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-anyevent
+ $pkgname-future
+ $pkgname-io-async
+ $pkgname-mojo-ioloop
+ "
+source="https://cpan.metacpan.org/authors/id/F/FE/FELIPE/Promise-ES6-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+anyevent() {
+ pkgdesc="$pkgdesc (AnyEvent backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-anyevent"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-anyevent"
+
+ amove usr/share/perl5/vendor_perl/Promise/ES6/AnyEvent.pm
+ amove usr/share/perl5/vendor_perl/Promise/ES6/Event/AnyEvent.pm
+}
+
+future() {
+ pkgdesc="$pkgdesc (Future interface)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-future"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-future"
+
+ amove usr/share/perl5/vendor_perl/Promise/ES6/Future.pm
+}
+
+async() {
+ pkgdesc="$pkgdesc (IO::Async backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-io-async"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-io-async"
+
+ amove usr/share/perl5/vendor_perl/Promise/ES6/IOAsync.pm
+ amove usr/share/perl5/vendor_perl/Promise/ES6/Event/IOAsync.pm
+}
+
+ioloop() {
+ pkgdesc="$pkgdesc (Mojo::IOLoop backend)"
+ depends="$pkgname=$pkgver-r$pkgrel perl-mojolicious"
+ install_if="$pkgname=$pkgver-r$pkgrel perl-mojolicious"
+
+ amove usr/share/perl5/vendor_perl/Promise/ES6/Mojo.pm
+ amove usr/share/perl5/vendor_perl/Promise/ES6/Event/MojoIOLoop.pm
+}
+
+sha512sums="
+6ae5c4d1fe015c78328e778c4495199645371d35484b33a52fca2c9290a4da878d586b5929b84e4e7cb93836e7e00d2271cfcdec7268d301b3d7a20c728240a3 Promise-ES6-0.28.tar.gz
+"
diff --git a/testing/perl-promise-me/APKBUILD b/testing/perl-promise-me/APKBUILD
new file mode 100644
index 00000000000..7b24bd3f06e
--- /dev/null
+++ b/testing/perl-promise-me/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-promise-me
+pkgver=0.4.10
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Promise-Me
+pkgdesc="Implementation of Promises using fork for asynchronous tasks"
+url="https://metacpan.org/release/Promise-Me/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-clone perl-curry perl-module-generic
+ perl-nice-try perl-ppi perl-storable-improved perl-want
+ "
+checkdepends="perl-test-pod perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/Promise-Me-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+72d05a2df146e81e7eb452ac33ad99e2e399e279d610ca7d78e25875276d5d9e5298420b46024ed01aaaaa63aad98daa602a0d04cfec9ea44693c194ebc03648 Promise-Me-v0.4.10.tar.gz
+"
diff --git a/testing/perl-promise-xs/APKBUILD b/testing/perl-promise-xs/APKBUILD
new file mode 100644
index 00000000000..c48b5ce3588
--- /dev/null
+++ b/testing/perl-promise-xs/APKBUILD
@@ -0,0 +1,43 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-promise-xs
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Promise-XS
+pkgver=0.20
+pkgrel=0
+pkgdesc="Fast promises in Perl"
+url="https://metacpan.org/release/Promise-XS/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev perl-extutils-makemaker-cpanfile"
+checkdepends="
+ perl-anyevent perl-future-asyncawait perl-io-async perl-mojolicious
+ perl-test-deep perl-test-failwarnings perl-test2-suite
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/F/FE/FELIPE/Promise-XS-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+0fab3c6382e009ba612fffe69c30931380d04af79ddb01eac8a42dd56a5145e25155e956706115f5e85a9b6cb9eab881d7310f5b9bb1f296f3bcfc173fe6f10a Promise-XS-0.20.tar.gz
+"
diff --git a/testing/perl-protocol-database-postgresql/APKBUILD b/testing/perl-protocol-database-postgresql/APKBUILD
new file mode 100644
index 00000000000..a5338a16e53
--- /dev/null
+++ b/testing/perl-protocol-database-postgresql/APKBUILD
@@ -0,0 +1,53 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-protocol-database-postgresql
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Protocol-Database-PostgreSQL
+pkgver=2.001
+pkgrel=0
+pkgdesc="PostgreSQL wire protocol implementation"
+url="https://metacpan.org/release/Protocol-Database-PostgreSQL/"
+arch="noarch !armhf !armv7 !x86" # perl-ryu
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-adapter-async perl-check-unitcheck
+ perl-future perl-indirect perl-log-any perl-ryu
+ perl-sub-identify perl-unicode-utf8
+ "
+checkdepends="
+ perl-log-any-adapter-tap perl-test-checkdeps
+ perl-test-fatal perl-test-hexstring perl-test-refcount
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Protocol-Database-PostgreSQL-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+6b37a2e6b0632e87e381704f06a800cf1008a59127152f38ec2c245b988337753d922294569bceb36ad8af65b9a5002868188af133cff7403f7808d1118e6a77 Protocol-Database-PostgreSQL-2.001.tar.gz
+"
diff --git a/testing/perl-protocol-redis-faster/APKBUILD b/testing/perl-protocol-redis-faster/APKBUILD
new file mode 100644
index 00000000000..af429e71f7a
--- /dev/null
+++ b/testing/perl-protocol-redis-faster/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-protocol-redis-faster
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Protocol-Redis-Faster
+pkgver=0.003
+pkgrel=0
+pkgdesc="Optimized pure-perl Redis protocol parser/encoder"
+url="https://metacpan.org/release/Protocol-Redis-Faster/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-protocol-redis"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DB/DBOOK/Protocol-Redis-Faster-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6f67c2ee1f0cf5ba79dec2c1c188d3996fafcfc14003e91eb20cb580553bec266ded814570564bb0fad630f639ceb474d6e50666e99e3c0321ccb5559fc50dfa Protocol-Redis-Faster-0.003.tar.gz
+"
diff --git a/testing/perl-protocol-redis/APKBUILD b/testing/perl-protocol-redis/APKBUILD
new file mode 100644
index 00000000000..5432b610447
--- /dev/null
+++ b/testing/perl-protocol-redis/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-protocol-redis
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Protocol-Redis
+pkgver=1.0011
+pkgrel=0
+pkgdesc="Redis protocol parser/encoder with asynchronous capabilities"
+url="https://metacpan.org/release/Protocol-Redis/"
+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/U/UN/UNDEF/Protocol-Redis-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ cd "$pkgdir"
+ # introduces a circular dependency on perl-protocol-redis-faster
+ rm -v usr/share/perl5/vendor_perl/Protocol/benchmark.pl
+}
+
+sha512sums="
+43e4a05698fe0cc0ceff0b4b7fc81dc2320bbab1ca7933c26cad5ea7caa4b930665c135f604406d192bd2d49bb804eb2bd5e2015960e5dea73e1cbcbbc86980a Protocol-Redis-1.0011.tar.gz
+"
diff --git a/testing/perl-protocol-xmpp/APKBUILD b/testing/perl-protocol-xmpp/APKBUILD
new file mode 100644
index 00000000000..dcd183d04aa
--- /dev/null
+++ b/testing/perl-protocol-xmpp/APKBUILD
@@ -0,0 +1,49 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-protocol-xmpp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Protocol-XMPP
+pkgver=0.006
+pkgrel=0
+pkgdesc="XMPP/Jabber protocol API"
+url="https://metacpan.org/release/Protocol-XMPP/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-authen-sasl perl-curry perl-future perl-mixin-event-dispatch
+ perl-xml-libxml-sax-chunkparser perl-xml-sax
+ "
+checkdepends="perl-test-checkdeps perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Protocol-XMPP-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+caea9726918119974bef629485a6fb9c5f0c49a74ed8f0c84414a6a370fa1a1a950297c17c111fdf085512105bc6af39cf4ebe5ce329023659b3f96d0fd1060c Protocol-XMPP-0.006.tar.gz
+"
diff --git a/testing/perl-redis/APKBUILD b/testing/perl-redis/APKBUILD
deleted file mode 100644
index e84e7aa5bb1..00000000000
--- a/testing/perl-redis/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 3
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname=perl-redis
-#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
-_pkgreal=Redis
-pkgver=1.996
-pkgrel=0
-pkgdesc="Perl binding for Redis database"
-url="https://metacpan.org/release/Redis/"
-arch="noarch"
-license="Artistic-2.0"
-depends="perl perl-try-tiny perl-io-socket-timeout"
-makedepends="perl-dev perl-module-build-tiny perl-module-build"
-checkdepends="perl-test-sharedfork perl-test-deep perl-io-string perl-test-tcp perl-test-fatal"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAMS/Redis-$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="612eeb4f861412a0141ff6583839329d8dff512072a8d320b064859b5f6da30c1fca9bc474d0433f93abfb0470b021d7f834842652118929f51de9970090aca3 Redis-1.996.tar.gz"
diff --git a/testing/perl-ref-util-xs/APKBUILD b/testing/perl-ref-util-xs/APKBUILD
index 6b4b5381054..9a749490ea9 100644
--- a/testing/perl-ref-util-xs/APKBUILD
+++ b/testing/perl-ref-util-xs/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-ref-util-xs
_pkgreal=Ref-Util-XS
pkgver=0.117
-pkgrel=3
+pkgrel=7
pkgdesc="XS implementation for Ref::Util"
url="https://metacpan.org/release/Ref-Util-XS/"
arch="all"
@@ -16,7 +16,7 @@ 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 Makefile.PL INSTALLDIRS=vendor
make
}
diff --git a/testing/perl-regexp-grammars/APKBUILD b/testing/perl-regexp-grammars/APKBUILD
new file mode 100644
index 00000000000..f670c0fdfeb
--- /dev/null
+++ b/testing/perl-regexp-grammars/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-regexp-grammars
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Regexp-Grammars
+pkgver=1.058
+pkgrel=0
+pkgdesc="Add grammatical parsing features to Perl 5.10 regexes"
+url="https://metacpan.org/release/Regexp-Grammars/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-module-build"
+checkdepends="perl-moose"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DC/DCONWAY/Regexp-Grammars-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+4a5b69ca1f4ba23720a4aba0cbf69d4be87cdaacfd3cebb23a160a2649083a430d98a32f98e3c35fa0db6d15aeaa8c28c2ee9969e26999125d2ea6163584ca4e Regexp-Grammars-1.058.tar.gz
+"
diff --git a/testing/perl-role-eventemitter/APKBUILD b/testing/perl-role-eventemitter/APKBUILD
new file mode 100644
index 00000000000..10798aacd61
--- /dev/null
+++ b/testing/perl-role-eventemitter/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-role-eventemitter
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Role-EventEmitter
+pkgver=0.003
+pkgrel=0
+pkgdesc="Role::Tiny role for event emitting objects"
+url="https://metacpan.org/release/Role-EventEmitter/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-role-tiny"
+checkdepends="perl-future perl-test-needs"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DB/DBOOK/Role-EventEmitter-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+592cb5c1586a57923074a4e055c62ec29de405f37485ed0fbe6f741a87ba30860739019576717c6a9a9399631fd1b70005813a1ac8cff975e0ef9a35ad387813 Role-EventEmitter-0.003.tar.gz
+"
diff --git a/testing/perl-rxperl-anyevent/APKBUILD b/testing/perl-rxperl-anyevent/APKBUILD
new file mode 100644
index 00000000000..e1746b2eca5
--- /dev/null
+++ b/testing/perl-rxperl-anyevent/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-rxperl-anyevent
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=RxPerl-AnyEvent
+pkgver=6.8.1
+pkgrel=0
+pkgdesc="AnyEvent adapter for RxPerl"
+url="https://metacpan.org/release/RxPerl-AnyEvent/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-anyevent perl-rxperl"
+makedepends="perl-module-build-tiny"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KA/KARJALA/RxPerl-AnyEvent-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+9de7ebd142ba07dc9180acbcb7d1436d9b106f324583893c8fb4d7f09af7759006c4cba6bb6112d014fccb5f58beff56e299a8cb481051cbd27a2dbbb2bc03e2 RxPerl-AnyEvent-v6.8.1.tar.gz
+"
diff --git a/testing/perl-rxperl-ioasync/APKBUILD b/testing/perl-rxperl-ioasync/APKBUILD
new file mode 100644
index 00000000000..aa87cc77d43
--- /dev/null
+++ b/testing/perl-rxperl-ioasync/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-rxperl-ioasync
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=RxPerl-IOAsync
+pkgver=6.9.1
+pkgrel=0
+pkgdesc="IO::Async adapter for RxPerl"
+url="https://metacpan.org/release/RxPerl-IOAsync/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-io-async perl-rxperl"
+makedepends="perl-module-build-tiny"
+checkdepends="perl-future perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KA/KARJALA/RxPerl-IOAsync-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+27ea3a38481fca3901f6aa9f0f19baa3165d6d67aa541a5f0ce506a7244b72dbd0053db4539ecf1cf24e5e1dac7c789987406080713284f8c5791d7a7ec1c758 RxPerl-IOAsync-v6.9.1.tar.gz
+"
diff --git a/testing/perl-rxperl-mojo/APKBUILD b/testing/perl-rxperl-mojo/APKBUILD
new file mode 100644
index 00000000000..0ef6550bb1a
--- /dev/null
+++ b/testing/perl-rxperl-mojo/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-rxperl-mojo
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=RxPerl-Mojo
+pkgver=6.8.1
+pkgrel=0
+pkgdesc="Mojo::IOLoop adapter for RxPerl"
+url="https://metacpan.org/release/RxPerl-Mojo/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-mojolicious perl-rxperl"
+makedepends="perl-module-build-tiny"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KA/KARJALA/RxPerl-Mojo-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+c482ffd904ee2e85df8a0a5952dbe534b3a2b6458da781cffae0f5e87e92cea978f03ce0308c7de18b1570acf9b74e5f510309d2fccdeb52d6b7ac2e32894cf0 RxPerl-Mojo-v6.8.1.tar.gz
+"
diff --git a/testing/perl-rxperl/APKBUILD b/testing/perl-rxperl/APKBUILD
new file mode 100644
index 00000000000..09cde5b0416
--- /dev/null
+++ b/testing/perl-rxperl/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-rxperl
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=RxPerl
+pkgver=6.28.0
+pkgrel=0
+pkgdesc="Implementation of Reactive Extensions / rxjs for Perl"
+url="https://metacpan.org/release/RxPerl/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-hash-ordered"
+makedepends="perl-module-build-tiny"
+checkdepends="perl-promise-es6 perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KA/KARJALA/RxPerl-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+ebfe7e6fbc479d09ddc67d4f12d53e30351e48319fca149be37db27726eeeb8e87e2df0e34ddf3d1f7593b928be29850bfe729f7065e471656932ecc0e9f3a2a RxPerl-v6.28.0.tar.gz
+"
diff --git a/testing/perl-ryu-async/APKBUILD b/testing/perl-ryu-async/APKBUILD
new file mode 100644
index 00000000000..db220540642
--- /dev/null
+++ b/testing/perl-ryu-async/APKBUILD
@@ -0,0 +1,54 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ryu-async
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Ryu-Async
+pkgver=0.020
+pkgrel=0
+pkgdesc="IO::Async support for Ryu stream management"
+url="https://metacpan.org/release/Ryu-Async/"
+arch="noarch !armhf !armv7 !x86" # perl-ryu
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-curry perl-future perl-future-asyncawait
+ perl-io-async perl-log-any perl-namespace-clean
+ perl-ryu perl-syntax-keyword-try perl-uri-tcp
+ "
+checkdepends="
+ perl-indirect perl-test-checkdeps perl-test-deep
+ perl-test-fatal perl-test-refcount
+ perl-variable-disposition
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Ryu-Async-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+088bdcb3d157832cc550aeff93fbe0b30288ea7f2e74ce10c525dc09820c005572e401adcaa8b938dcecee7d30e7f49d4f88699d01cca4428f903396b246912b Ryu-Async-0.020.tar.gz
+"
diff --git a/testing/perl-ryu/APKBUILD b/testing/perl-ryu/APKBUILD
new file mode 100644
index 00000000000..d5bf597e2a5
--- /dev/null
+++ b/testing/perl-ryu/APKBUILD
@@ -0,0 +1,58 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-ryu
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Ryu
+pkgver=3.005
+pkgrel=0
+pkgdesc="Stream and data flow handling for async code"
+url="https://metacpan.org/release/Ryu/"
+# armhf, armv7, x86: Invalid type 'q' in pack at Buffer.pm line 202
+# According to https://perldoc.perl.org/functions/pack Quads are
+# probably available only if Perl is compiled with -Duse64bitint
+arch="noarch !armhf !armv7 !x86"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-curry perl-future perl-future-queue
+ perl-indirect perl-json-maybexs perl-list-utilsby
+ perl-log-any perl-ref-util perl-syntax-keyword-try
+ perl-text-csv
+ "
+checkdepends="
+ perl-log-any-adapter-tap perl-test-checkdeps perl-test-deep
+ perl-test-fatal perl-test-files perl-test-hexstring
+ perl-test-refcount perl-test-warnings perl-variable-disposition
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Ryu-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+1886ffea40bf42a228eaa5d43ef1dbcb56a4f70973fa3426a40b819dd708fab26cffc0aefb6242d724c1a323cb70f20541688fc264e777cdc99820088a2eea2f Ryu-3.005.tar.gz
+"
diff --git a/testing/perl-scalar-readonly/APKBUILD b/testing/perl-scalar-readonly/APKBUILD
new file mode 100644
index 00000000000..2302e17a8ce
--- /dev/null
+++ b/testing/perl-scalar-readonly/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-scalar-readonly
+pkgver=0.03
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Scalar-Readonly
+pkgdesc="Functions for controlling whether any scalar variable is read-only"
+url="https://metacpan.org/release/Scalar-Readonly/"
+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/G/GO/GOZER/Scalar-Readonly-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+fd56dbef82c298f3bcd295b65bc68b07c8db582a60ce4bddb9d38a47b6290402be8c67cd215319db609c32b28c0bf77d8ff36a42c0377f96cacc47972a7fef5c Scalar-Readonly-0.03.tar.gz
+"
diff --git a/testing/perl-sentinel/APKBUILD b/testing/perl-sentinel/APKBUILD
new file mode 100644
index 00000000000..34cfa9534cc
--- /dev/null
+++ b/testing/perl-sentinel/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-sentinel
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Sentinel
+pkgver=0.07
+pkgrel=0
+pkgdesc="Create lightweight SCALARs with get/set callbacks"
+url="https://metacpan.org/release/Sentinel/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-syntax-keyword-dynamically perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Sentinel-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+d8393ed6e53ebe5614f45d0ef5ee0d46f4516f9015e08fb53aa85b077ad181ca7f95d957b4be7018eede43b11bbdd98c3ea5268627fb244671626852976eff77 Sentinel-0.07.tar.gz
+"
diff --git a/testing/perl-sereal-decoder/APKBUILD b/testing/perl-sereal-decoder/APKBUILD
deleted file mode 100644
index 223808b9b71..00000000000
--- a/testing/perl-sereal-decoder/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-sereal-decoder
-_pkgreal=Sereal-Decoder
-pkgver=4.011
-pkgrel=0
-pkgdesc="Fast, compact, powerful binary deserialization"
-url="https://metacpan.org/release/Sereal-Decoder"
-arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl"
-makedepends="perl-dev zstd-dev"
-checkdepends="perl-test-longstring perl-test-warn"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Y/YV/YVES/Sereal-Decoder-$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="f80f07ae3c506be17b66b84bc65809c15d43a2039958ade2e0fed5bf8b0bef76728d62fd0d614cb84b4f079262d6f176899538e4abbba2c2499e52cad90e9207 Sereal-Decoder-4.011.tar.gz"
diff --git a/testing/perl-sereal-encoder/APKBUILD b/testing/perl-sereal-encoder/APKBUILD
deleted file mode 100644
index 5ec38ecfa2a..00000000000
--- a/testing/perl-sereal-encoder/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-sereal-encoder
-_pkgreal=Sereal-Encoder
-pkgver=4.011
-pkgrel=0
-pkgdesc="Fast, compact, powerful binary serialization"
-url="https://metacpan.org/release/Sereal-Encoder"
-arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev zstd-dev"
-checkdepends="perl-test-warn perl-test-longstring perl-sereal-decoder"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Y/YV/YVES/Sereal-Encoder-$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() {
- # Fails on builders
- # t/700_roundtrip/v4/zstd.t
- # t/700_roundtrip/v4/zstd_force.t
- [ "$CARCH" = armhf ] && return 0
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="305aeaf36e8d16c3a0d5e9210c1501bef40cb65ba956c6de1b8fe734a6f3dd7927aea57ddf5e7757a18ccefb2b75c3a7b6d1006a06176f6b4b9a82f0179e00f9 Sereal-Encoder-4.011.tar.gz"
diff --git a/testing/perl-sereal/APKBUILD b/testing/perl-sereal/APKBUILD
deleted file mode 100644
index 65865a7bb3f..00000000000
--- a/testing/perl-sereal/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Timo Teräs <timo.teras@iki.fi>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=perl-sereal
-_pkgreal=Sereal
-pkgver=4.011
-pkgrel=0
-pkgdesc="Fast, compact, powerful binary (de-)serialization"
-url="https://metacpan.org/release/Sereal"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-sereal-decoder perl-sereal-encoder"
-makedepends="perl-dev"
-checkdepends="perl-test-warn perl-test-longstring"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Y/YV/YVES/Sereal-$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() {
- # Fails on builders
- # t/700_roundtrip/v4/zstd.t
- # t/700_roundtrip/v4/zstd_force.t
- [ "$CARCH" = armhf ] && return 0
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="f8a0fddbddb73decabcfa676390d002c26e6ed71489e352ed438c58c46e5c3a65dd502cce5e5653ea6647b860548488e1df1403123b502d14c57e7f5981bb899 Sereal-4.011.tar.gz"
diff --git a/testing/perl-session-storage-secure/APKBUILD b/testing/perl-session-storage-secure/APKBUILD
index 2bdac49d757..afaaa68b83c 100644
--- a/testing/perl-session-storage-secure/APKBUILD
+++ b/testing/perl-session-storage-secure/APKBUILD
@@ -1,36 +1,35 @@
-# 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-session-storage-secure
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Session-Storage-Secure
-pkgver=0.011
-pkgrel=0
+pkgver=1.000
+pkgrel=2
pkgdesc="Encrypted, expiring, compressed, serialized session data with integrity"
-url="https://metacpan.org/release/Session-Storage-Secure"
-arch="noarch"
+url="https://metacpan.org/release/Session-Storage-Secure/"
+arch="noarch !armv7 !armhf" # perl-sereal-encoder
license="Apache-2.0"
-cpandepends="perl-moox-types-mooselike perl-crypt-rijndael
- perl-string-compare-constanttime perl-moo perl-crypt-urandom
- perl-sereal-decoder perl-namespace-clean perl-crypt-cbc
- perl-math-random-isaac-xs perl-sereal-encoder"
-cpancheckdepends="perl-number-tolerant perl-test-deep perl-test-fatal"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="
+ perl perl-moox-types-mooselike perl-crypt-rijndael perl-string-compare-constanttime perl-moo
+ perl-crypt-urandom perl-sereal-decoder perl-namespace-clean perl-crypt-cbc
+ perl-math-random-isaac-xs perl-sereal-encoder
+ "
+checkdepends="perl-number-tolerant perl-test-deep perl-test-fatal"
+
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Session-Storage-Secure-$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() {
@@ -38,9 +37,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="893a924b093d9a8acbc56dec1b7457df5fe9c52d49284435271de3c95e9a7e48082f11e1f022706b32fac8b1c3b706bd1040702cbe0d715796edc995aec5f33f Session-Storage-Secure-0.011.tar.gz"
+sha512sums="ea9cbb985f16968bb195769c9eb238a45840b32c6419e41715edae5a826b94827686d20e6525807fecd43388778f46dc7d660bd64207ed1e4f552d09514cd800 Session-Storage-Secure-1.000.tar.gz"
diff --git a/testing/perl-snmp-info/APKBUILD b/testing/perl-snmp-info/APKBUILD
index 5c29a2ae693..ed6179d24ed 100644
--- a/testing/perl-snmp-info/APKBUILD
+++ b/testing/perl-snmp-info/APKBUILD
@@ -1,40 +1,42 @@
-# 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-snmp-info
-_pkgreal=SNMP-Info
-pkgver=3.70
+pkgver=3.970001
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SNMP-Info
pkgdesc="OO Interface to Network devices and MIBs through SNMP"
-url="https://metacpan.org/release/SNMP-Info"
+url="https://metacpan.org/release/SNMP-Info/"
arch="noarch"
license="BSD-3-Clause"
-cpandepends="net-snmp-perl"
-depends="$cpandepends perl-netaddr-ip"
-makedepends="perl-dev perl-module-build"
+depends="perl net-snmp-perl perl-netaddr-ip net-snmp perl-regexp-common"
+makedepends="perl-module-build"
+checkdepends="
+ perl-module-find perl-class-inspector perl-test-mockobject perl-hook-lexwrap
+ perl-test-distribution perl-path-class perl-file-slurper perl-test-class-most
+ perl-test-exception perl-test-simple
+ "
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/O/OL/OLIVER/SNMP-Info-$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 \
+ --create_packlist=0
./Build
}
-package() {
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
check() {
./Build test
}
-sha512sums="9f306340e5af3ad8493c717af294caf515bee0a6dd94255ce7026c38fadf3da25538bae692380be7d84c3ab1ab52dc1ae7aafa36a8c56a42fc11c7307a2e45c8 SNMP-Info-3.70.tar.gz"
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+d16a5fabc08a3733a6c9a82d04f8da7f4f5d4a36a60e24e51a4e3c590d42b299a0663bffc0be79659427507c615923fd410c46a300ee56475a17999717028bfb SNMP-Info-3.970001.tar.gz
+"
diff --git a/testing/perl-snmp/APKBUILD b/testing/perl-snmp/APKBUILD
index e71c539e34e..00484c6a456 100644
--- a/testing/perl-snmp/APKBUILD
+++ b/testing/perl-snmp/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-snmp
_pkgreal=SNMP
pkgver=5.0404
-pkgrel=7
+pkgrel=12
pkgdesc="Perl module for SNMP"
url="https://metacpan.org/release/SNMP"
arch="all"
diff --git a/testing/perl-soap-lite/APKBUILD b/testing/perl-soap-lite/APKBUILD
index 5e3d09f1ae9..5fb92b8012a 100644
--- a/testing/perl-soap-lite/APKBUILD
+++ b/testing/perl-soap-lite/APKBUILD
@@ -4,17 +4,16 @@
pkgname=perl-soap-lite
_pkgreal=SOAP-Lite
pkgver=1.27
-pkgrel=2
+pkgrel=5
pkgdesc="Perl's Web Services Toolkit"
url="https://metacpan.org/release/SOAP-Lite"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-class-inspector perl-xml-parser perl-task-weaken perl-uri
- perl-http-daemon perl-libwww perl-test-warn perl-test-mockobject
- perl-mime-tools perl-io-socket-ssl perl-lwp-protocol-https
- perl-io-sessiondata perl-xml-simple"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="
+ perl perl-class-inspector perl-xml-parser perl-task-weaken perl-uri perl-http-daemon
+ perl-libwww perl-test-warn perl-test-mockobject perl-mime-tools perl-io-socket-ssl
+ perl-lwp-protocol-https perl-io-sessiondata perl-xml-simple
+ "
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PH/PHRED/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-sort-naturally/APKBUILD b/testing/perl-sort-naturally/APKBUILD
index 3aae2b9b1c1..b3025d27a90 100644
--- a/testing/perl-sort-naturally/APKBUILD
+++ b/testing/perl-sort-naturally/APKBUILD
@@ -4,12 +4,12 @@
pkgname=perl-sort-naturally
_pkgreal=Sort-Naturally
pkgver=1.03
-pkgrel=2
+pkgrel=4
pkgdesc="sort lexically, but sort numeral parts numerically"
url="https://metacpan.org/release/Sort-Naturally"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-sort-versions/APKBUILD b/testing/perl-sort-versions/APKBUILD
new file mode 100644
index 00000000000..f45e39d9a91
--- /dev/null
+++ b/testing/perl-sort-versions/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-sort-versions
+pkgver=1.62
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Sort-Versions
+pkgdesc="Module for sorting of revision-like numbers"
+url="https://metacpan.org/release/Sort-Versions/"
+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/N/NE/NEILB/Sort-Versions-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b30dab96a5a31023af3ecee1857ae7bf5abc45b266294b47abb4f03c332b27825c1139d1a56bf0cfbd538487d28b3be167d83f9f5a93f079717b40157abe4d96 Sort-Versions-1.62.tar.gz
+"
diff --git a/testing/perl-sql-abstract-classic/APKBUILD b/testing/perl-sql-abstract-classic/APKBUILD
new file mode 100644
index 00000000000..411c09b87aa
--- /dev/null
+++ b/testing/perl-sql-abstract-classic/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=perl-sql-abstract-classic
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SQL-Abstract-Classic
+pkgver=1.91
+pkgrel=1
+pkgdesc="Generate SQL from Perl data structures"
+url="https://metacpan.org/release/SQL-Abstract-Classic/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-sql-abstract perl-mro-compat"
+makedepends="perl-test-warn perl-test-exception perl-test-deep"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/SQL-Abstract-Classic-$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="
+a2389c04889ea09fc6512f955f8a383d1f51839f584a0be16aab33dec72b67214d0f22d55c666fa0ddeaa32e5c6fc91e1e50541d52e71beeb3b3d85af21a9643 SQL-Abstract-Classic-1.91.tar.gz
+"
diff --git a/testing/perl-sql-abstract-pg/APKBUILD b/testing/perl-sql-abstract-pg/APKBUILD
new file mode 100644
index 00000000000..55449f9c4f5
--- /dev/null
+++ b/testing/perl-sql-abstract-pg/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-sql-abstract-pg
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SQL-Abstract-Pg
+pkgver=1.0
+pkgrel=0
+pkgdesc="PostgreSQL features for SQL::Abstract"
+url="https://metacpan.org/release/SQL-Abstract-Pg/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-sql-abstract"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SR/SRI/SQL-Abstract-Pg-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+544fcc730ffcd3c12bb6401ec566f4183677c7b97c58692129654fac1d8e0ef76603e66236a290c88ec5fb1019626c159398eeee476646f7bb582acce8bedd23 SQL-Abstract-Pg-1.0.tar.gz
+"
diff --git a/testing/perl-sql-abstract/APKBUILD b/testing/perl-sql-abstract/APKBUILD
index 158f8105cec..6a63295b819 100644
--- a/testing/perl-sql-abstract/APKBUILD
+++ b/testing/perl-sql-abstract/APKBUILD
@@ -1,34 +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-sql-abstract
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=SQL-Abstract
-pkgver=1.86
-pkgrel=0
+pkgver=2.000001
+pkgrel=2
pkgdesc="Generate SQL from Perl data structures"
-url="https://metacpan.org/release/SQL-Abstract"
+url="https://metacpan.org/release/SQL-Abstract/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-moo perl-hash-merge perl-mro-compat perl-sub-quote"
-cpancheckdepends="perl-test-exception perl-test-warn perl-test-deep
- perl-clone-choose"
-depends="$cpandepends"
-makedepends="perl-dev"
-checkdepends="$cpancheckdepends"
+depends="perl perl-moo perl-mro-compat perl-sub-quote perl-test-deep perl-hash-merge"
+checkdepends="perl-test-exception perl-test-warn perl-data-dumper-concise perl-clone-choose"
+
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/I/IL/ILMARI/SQL-Abstract-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MS/MSTROUT/SQL-Abstract-$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() {
@@ -36,9 +33,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="248652656bebf9e3f3e2582880f78f4f8c6dd2a8e2546a750b33e9d95cd6da6d8a197d0be69b5e44a24e04c8e1262d4bf3085fa95405fa28eefc3b822a93fa42 SQL-Abstract-1.86.tar.gz"
+sha512sums="a4cae42a261b64ba7c44bf6cc196f135ab32e847352572aafccee04dfdd5fe83d8b7654702acd90908cd0e90f6730cfc4fcfa8ffa81d52de7a18e38a2d6ea5d8 SQL-Abstract-2.000001.tar.gz"
diff --git a/testing/perl-starman/APKBUILD b/testing/perl-starman/APKBUILD
index 8150fd2e2d2..d596203b3d5 100644
--- a/testing/perl-starman/APKBUILD
+++ b/testing/perl-starman/APKBUILD
@@ -3,18 +3,18 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-starman
_pkgreal=Starman
-pkgver=0.4015
+pkgver=0.4017
pkgrel=0
pkgdesc="High-performance preforking PSGI/Plack web server"
url="https://metacpan.org/release/Starman"
-arch=""
+arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-http-message perl-data-dump perl-http-parser-xs perl-test-tcp
- perl-net-server perl-http-date perl-plack"
-cpancheckdepends="perl-libwww perl-test-requires"
-depends="$cpandepends"
-makedepends="perl-dev perl-module-build-tiny"
-checkdepends="$cpancheckdepends"
+depends="
+ perl perl-http-message perl-data-dump perl-http-parser-xs perl-test-tcp perl-net-server
+ perl-http-date perl-plack
+ "
+makedepends="perl-module-build-tiny"
+checkdepends="perl-libwww perl-test-requires"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Starman-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -40,4 +40,6 @@ check() {
./Build test
}
-sha512sums="8e603dfc27ee54b577c24bd521da08ecb56ae2b6992ad2304156a23b917465b3a14d11e1f038ca809ff6359798e03d3ce6d6aa705e55637401d8391ec5086ade Starman-0.4015.tar.gz"
+sha512sums="
+04d40d5f4346cd2425516ffd414dc2eca86d241bdc75e9f6cfd3091dab38f3636aebe8e49cc2b8811d06a2332883330f0d85320668ceddd0f9d15d832d609e07 Starman-0.4017.tar.gz
+"
diff --git a/testing/perl-statistics-descriptive/APKBUILD b/testing/perl-statistics-descriptive/APKBUILD
index c4fd7a96ec3..a7b9531c961 100644
--- a/testing/perl-statistics-descriptive/APKBUILD
+++ b/testing/perl-statistics-descriptive/APKBUILD
@@ -3,21 +3,21 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-statistics-descriptive
_pkgreal=Statistics-Descriptive
-pkgver=3.0702
-pkgrel=2
+pkgver=3.0801
+pkgrel=0
pkgdesc="Module of basic descriptive statistical functions."
url="https://metacpan.org/release/Statistics-Descriptive"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-list-moreutils perl-module-build perl-test-pod perl-test-pod-coverage"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-list-moreutils"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
+ default_prepare
perl Build.PL installdirs=vendor
}
@@ -35,4 +35,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e0742ec356a38ad38f52e56a3ef58af6e539fbfa090d9a1d154560f353a3346d1c800d5d9f7bb0e2f32fb92b611fec16c939a19b7af104ec6ebe627c6c719df6 Statistics-Descriptive-3.0702.tar.gz"
+sha512sums="
+e5901ed4f53807a53779113ad9288549dcf06618d2a81009f388edce0ead9f1178ce63eea07c0a427a3f00b6216f6e211cc2ca9b1c5fa91c82e4994343a33f35 Statistics-Descriptive-3.0801.tar.gz
+"
diff --git a/testing/perl-storable-improved/APKBUILD b/testing/perl-storable-improved/APKBUILD
new file mode 100644
index 00000000000..ef37b802d50
--- /dev/null
+++ b/testing/perl-storable-improved/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-storable-improved
+pkgver=0.1.3
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Storable-Improved
+pkgdesc="Storable improved with core flaws mitigated"
+url="https://metacpan.org/release/Storable-Improved/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-http-xsheaders perl-test-leaktrace"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/Storable-Improved-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-v$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+10562ac3d7f339daa49220ec61f8b008b76501adb15da703d77e5974fd1a256688fb67e80ce7239032bd18ad8e77a40084243488f5b9f97d88a674bda5270fb8 Storable-Improved-v0.1.3.tar.gz
+"
diff --git a/testing/perl-string-camelcase/APKBUILD b/testing/perl-string-camelcase/APKBUILD
index 88196472359..61124b6cd17 100644
--- a/testing/perl-string-camelcase/APKBUILD
+++ b/testing/perl-string-camelcase/APKBUILD
@@ -4,13 +4,12 @@
pkgname=perl-string-camelcase
_pkgreal=String-CamelCase
pkgver=0.04
-pkgrel=0
+pkgrel=2
pkgdesc="camelcase, de-camelcase"
url="https://metacpan.org/release/String-CamelCase"
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/HI/HIO/String-CamelCase-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-string-compare-constanttime/APKBUILD b/testing/perl-string-compare-constanttime/APKBUILD
index a74e46b6ceb..e37ef882075 100644
--- a/testing/perl-string-compare-constanttime/APKBUILD
+++ b/testing/perl-string-compare-constanttime/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-string-compare-constanttime
_pkgreal=String-Compare-ConstantTime
pkgver=0.321
-pkgrel=1
+pkgrel=5
pkgdesc="Timing side-channel protected string compare"
url="https://metacpan.org/release/String-Compare-ConstantTime"
arch="all"
diff --git a/testing/perl-string-crc32/APKBUILD b/testing/perl-string-crc32/APKBUILD
index b7c8b06e875..6604c200eba 100644
--- a/testing/perl-string-crc32/APKBUILD
+++ b/testing/perl-string-crc32/APKBUILD
@@ -3,8 +3,8 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-string-crc32
_pkgreal=String-CRC32
-pkgver=1.8
-pkgrel=0
+pkgver=2.100
+pkgrel=3
pkgdesc="Perl interface for cyclic redundancy check generation"
url="https://metacpan.org/release/String-CRC32"
arch="all"
@@ -37,4 +37,4 @@ check() {
make test
}
-sha512sums="ea8a3150dbe72343bdd81fd7ced0e9fb167c19f5638a1d20fe6f618b64535a86053cf72706b907f2f7fca5904d5ce6a7bfadf8d17136d04aba5a5500c98c032e String-CRC32-1.8.tar.gz"
+sha512sums="24e5f69aa02b16c888fa412afd28f907756e344662d66d05759ed212d97ce3f0a05fbf5bdd1137bc31ae37e27d0778fe23d75def368e051ab1cbc4b90c96907d String-CRC32-2.100.tar.gz"
diff --git a/testing/perl-string-random/APKBUILD b/testing/perl-string-random/APKBUILD
index 67d99fa5b87..a1936fce21a 100644
--- a/testing/perl-string-random/APKBUILD
+++ b/testing/perl-string-random/APKBUILD
@@ -1,21 +1,24 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-string-random
-_realname=String-Random
-pkgver=0.30
-pkgrel=0
-pkgdesc="Perl extension to generate random strings"
-url="https://metacpan.org/release/String-Random"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=String-Random
+pkgver=0.32
+pkgrel=2
+pkgdesc="Perl module to generate random strings based on a pattern"
+url="https://metacpan.org/release/String-Random/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev perl-module-build"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/String-Random-$pkgver.tar.gz"
-builddir="$srcdir"/$_realname-$pkgver
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- perl Build.PL installdirs=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -24,8 +27,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="1c520d124f2937c86970aa29c4189ba420fb936509bf067de2bbf7fac232b94ef7d7307f3c96b3eea3ecd2a11e8da92fd0d700288c431d87c3869127a1e17b7e String-Random-0.30.tar.gz"
+sha512sums="
+1dd0e7e45e03e155b7a0d8394fb3a04324f4827fe9431e9697d07c3a0f3941981e0b3de1e9f843a43936e5423146a3e6d4da075da04297525093ceffc3b1e659 String-Random-0.32.tar.gz
+"
diff --git a/testing/perl-string-util/APKBUILD b/testing/perl-string-util/APKBUILD
deleted file mode 100644
index fac7870a03c..00000000000
--- a/testing/perl-string-util/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: TBK <tbk@jjtc.eu>
-pkgname=perl-string-util
-_pkgreal=String-Util
-pkgver=1.26
-pkgrel=1
-pkgdesc="String processing utilities"
-url="https://metacpan.org/release/String-Util/"
-arch="noarch"
-license="GPL PerlArtistic"
-depends="perl perl-number-misc perl-test-toolbox"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MI/MIKO/$_pkgreal-$pkgver.tar.gz"
-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() {
- cd "$builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make
-}
-
-check() {
- cd "$builddir"
- make test
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="27f4d9a36814695ca2123473f073577cc4ab31c0c1f9feccff8b9af0324c697df45efde981d638ed407521bb8348cf5512ebe1c9a5bfd5149df17b12014ed808 String-Util-1.26.tar.gz"
diff --git a/testing/perl-syntax-keyword-match/APKBUILD b/testing/perl-syntax-keyword-match/APKBUILD
new file mode 100644
index 00000000000..61f5e9f4525
--- /dev/null
+++ b/testing/perl-syntax-keyword-match/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-syntax-keyword-match
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Syntax-Keyword-Match
+pkgver=0.13
+pkgrel=0
+pkgdesc="a C<match/case> syntax for perl"
+url="https://metacpan.org/release/Syntax-Keyword-Match/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-xs-parse-keyword"
+makedepends="perl-dev perl-xs-parse-keyword perl-module-build"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Syntax-Keyword-Match-$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="
+472a0b25b8f19a09f0a7d51963bb76382a6273e505b4141148353f0375610e77d2d458fc7cf6e1cb02aa127f252f882559b186bc35b441af5fa1dad7e3aa4e25 Syntax-Keyword-Match-0.13.tar.gz
+"
diff --git a/testing/perl-sys-syscall/0001-restore-missing-changes-from-0.20.0.22.patch b/testing/perl-sys-syscall/0001-restore-missing-changes-from-0.20.0.22.patch
new file mode 100644
index 00000000000..3c9e4569ba3
--- /dev/null
+++ b/testing/perl-sys-syscall/0001-restore-missing-changes-from-0.20.0.22.patch
@@ -0,0 +1,125 @@
+Patch-Source: https://sources.debian.org/data/main/libs/libsys-syscall-perl/0.25-7/debian/patches/0001-restore-missing-changes-from-0.20.0.22.patch
+
+>From 5fc4d9fd90f3e894bef0f1bdad0a17beaa81f39f Mon Sep 17 00:00:00 2001
+From: Eric Wong <e@80x24.org>
+Date: Wed, 3 Sep 2014 01:24:07 +0000
+Subject: [PATCH] restore missing changes from 0.20..0.22
+
+Somehow the 0.25 release omitted all the following changes from
+the 0.20..0.22 era. This restores the relevant changes based on
+the diff between the following two tarballs:
+
+http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.23.tar.gz
+http://search.cpan.org/CPAN/authors/id/B/BR/BRADFITZ/Sys-Syscall-0.25.tar.gz
+
+0.22:
+ - don't modify non-localized $_. whoops. (we don't want to mess
+ with our caller's world)
+
+0.21:
+ - add missing EPOLLRDBAND, from Paul Visscher <paulv@canonical.org>
+
+0.20:
+ - on x86_64 detect 32-bit vs 64-bit process and use right syscall
+ numbers. previously worked only with 64-bit userland.
+---
+ CHANGES | 15 +++++++++++++++
+ lib/Sys/Syscall.pm | 19 +++++++++++++++----
+ 2 files changed, 30 insertions(+), 4 deletions(-)
+
+
+Bug: https://github.com/bradfitz/sys-syscall/issues/5
+Bug-Debian: https://bugs.debian.org/760336
+
+diff --git a/CHANGES b/CHANGES
+index cb97972..7cf0f2f 100644
+--- a/CHANGES
++++ b/CHANGES
+@@ -1,5 +1,20 @@
+ 0.25:
+ - adds ARM support
+
++0.23:
++ - test bug fix https://rt.cpan.org/Public/Bug/Display.html?id=54322
++
++0.22:
++ - don't modify non-localized $_. whoops. (we don't want to mess
++ with our caller's world)
++
++0.21:
++ - add missing EPOLLRDBAND, from Paul Visscher <paulv@canonical.org>
++
++0.20:
++
++ - on x86_64 detect 32-bit vs 64-bit process and use right syscall
++ numbers. previously worked only with 64-bit userland.
++
+ 0.1:
+ - first release. epoll and sendfile only. Linux only.
+diff --git a/lib/Sys/Syscall.pm b/lib/Sys/Syscall.pm
+index 8d7cca2..7821ff7 100644
+--- a/lib/Sys/Syscall.pm
++++ b/lib/Sys/Syscall.pm
+@@ -3,14 +3,18 @@
+ package Sys::Syscall;
+ use strict;
+ use POSIX qw(ENOSYS SEEK_CUR);
++use Config;
+
+ require Exporter;
+ use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS $VERSION);
+
+ $VERSION = "0.25";
+ @ISA = qw(Exporter);
+-@EXPORT_OK = qw(sendfile epoll_ctl epoll_create epoll_wait EPOLLIN EPOLLOUT EPOLLERR EPOLLHUP EPOLL_CTL_ADD EPOLL_CTL_DEL EPOLL_CTL_MOD);
+-%EXPORT_TAGS = (epoll => [qw(epoll_ctl epoll_create epoll_wait EPOLLIN EPOLLOUT EPOLLERR EPOLLHUP
++@EXPORT_OK = qw(sendfile epoll_ctl epoll_create epoll_wait
++ EPOLLIN EPOLLOUT EPOLLERR EPOLLHUP EPOLLRDBAND
++ EPOLL_CTL_ADD EPOLL_CTL_DEL EPOLL_CTL_MOD);
++%EXPORT_TAGS = (epoll => [qw(epoll_ctl epoll_create epoll_wait
++ EPOLLIN EPOLLOUT EPOLLERR EPOLLHUP EPOLLRDBAND
+ EPOLL_CTL_ADD EPOLL_CTL_DEL EPOLL_CTL_MOD)],
+ sendfile => [qw(sendfile)],
+ );
+@@ -19,6 +23,7 @@ use constant EPOLLIN => 1;
+ use constant EPOLLOUT => 4;
+ use constant EPOLLERR => 8;
+ use constant EPOLLHUP => 16;
++use constant EPOLLRDBAND => 128;
+ use constant EPOLL_CTL_ADD => 1;
+ use constant EPOLL_CTL_DEL => 2;
+ use constant EPOLL_CTL_MOD => 3;
+@@ -53,6 +58,12 @@ if ($^O eq "linux") {
+ # boundaries.
+ my $u64_mod_8 = 0;
+
++ # if we're running on an x86_64 kernel, but a 32-bit process,
++ # we need to use the i386 syscall numbers.
++ if ($machine eq "x86_64" && $Config{ptrsize} == 4) {
++ $machine = "i386";
++ }
++
+ if ($machine =~ m/^i[3456]86$/) {
+ $SYS_epoll_create = 254;
+ $SYS_epoll_ctl = 255;
+@@ -222,7 +233,7 @@ sub epoll_wait_mod4 {
+ $epoll_wait_events = "\0" x 12 x $epoll_wait_size;
+ }
+ my $ct = syscall($SYS_epoll_wait, $_[0]+0, $epoll_wait_events, $_[1]+0, $_[2]+0);
+- for ($_ = 0; $_ < $ct; $_++) {
++ for (0..$ct-1) {
+ @{$_[3]->[$_]}[1,0] = unpack("LL", substr($epoll_wait_events, 12*$_, 8));
+ }
+ return $ct;
+@@ -235,7 +246,7 @@ sub epoll_wait_mod8 {
+ $epoll_wait_events = "\0" x 16 x $epoll_wait_size;
+ }
+ my $ct = syscall($SYS_epoll_wait, $_[0]+0, $epoll_wait_events, $_[1]+0, $_[2]+0);
+- for ($_ = 0; $_ < $ct; $_++) {
++ for (0..$ct-1) {
+ # 16 byte epoll_event structs, with format:
+ # 4 byte mask [idx 1]
+ # 4 byte padding (we put it into idx 2, useless)
+--
+EW
+
diff --git a/testing/perl-sys-syscall/APKBUILD b/testing/perl-sys-syscall/APKBUILD
index a6455e0b32e..7e98b083680 100644
--- a/testing/perl-sys-syscall/APKBUILD
+++ b/testing/perl-sys-syscall/APKBUILD
@@ -1,31 +1,34 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-sys-syscall
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sys-Syscall
pkgver=0.25
-pkgrel=6
+pkgrel=9
pkgdesc="Invoke system calls that are otherwise difficult to do from Perl"
-url="https://metacpan.org/release/Sys-Syscall"
-arch="all !aarch64 !s390x !mips !mips64"
+url="https://metacpan.org/release/Sys-Syscall/"
+arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BR/BRADFITZ/$_pkgreal-$pkgver.tar.gz
- ppc64le_epoll.patch
+source="https://cpan.metacpan.org/authors/id/B/BR/BRADFITZ/Sys-Syscall-$pkgver.tar.gz
+ 0001-restore-missing-changes-from-0.20.0.22.patch
+ aarch64.patch
+ ppc64le.patch
+ s390x.patch
"
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() {
@@ -33,10 +36,10 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="8b0641c992865cc7a29874a2166a4f0542039958839c6305cd4c33d17cfbdecd4f4ee74dc8110bfb000e42cabd803a84c6ba39037765d61ccb2bdf60522be87f Sys-Syscall-0.25.tar.gz
-b8d9912ae7dba60dab3bbe742ab069b86ea3846454e97d3101e975cb5568a6ca161bd928f5d4b8bd305d99830da2668de496904851fa8569ca946235f54b891f ppc64le_epoll.patch"
+sha512sums="
+8b0641c992865cc7a29874a2166a4f0542039958839c6305cd4c33d17cfbdecd4f4ee74dc8110bfb000e42cabd803a84c6ba39037765d61ccb2bdf60522be87f Sys-Syscall-0.25.tar.gz
+aa40e1b6fe8b559dab6f99825e0a362668048e2c5ef0092a19b9e18a10fc061b1a234ab237040209685cc7f0e796721f4ec2e1c2b14b5d0d164c7353d7ac2822 0001-restore-missing-changes-from-0.20.0.22.patch
+121e46b05020431c7fc76b629d8661991c0503f855d8888de7985d237b244e3766dc69e2bacfdd2af47595aee9737d58dcaa7c42ab0c8de0b4730edfaa4fc84d aarch64.patch
+0a26b35e87063970d1081468b2008064cf3476764670fcd9c9123ba88a35eb22c3fa8c6c5bf44a4b8013147a7c3ddaec108aa71506b573bd8df80cc4731de2ed ppc64le.patch
+2690e438f6a0e663cf640d76d61c24013cb26a6f04a5330b96fbcc311b05315306a9534bbe17f27d86f8df191f7084912f35ce1e7cfbe1c1e92d341c4960b6f2 s390x.patch
+"
diff --git a/testing/perl-sys-syscall/aarch64.patch b/testing/perl-sys-syscall/aarch64.patch
new file mode 100644
index 00000000000..5cea6a2ff8d
--- /dev/null
+++ b/testing/perl-sys-syscall/aarch64.patch
@@ -0,0 +1,72 @@
+Patch-Source: https://sources.debian.org/data/main/libs/libsys-syscall-perl/0.25-7/debian/patches/aarch64.patch
+
+From 6c7c516edfabd2edc835d0aaad39f946164bb25d Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowi@redhat.com>
+Date: Fri, 4 Dec 2015 02:31:28 -0600
+Subject: [PATCH 3/3] Add aarch64 support
+
+This is a bit complicated because AArch64, as a completely new architecture,
+does not support the deprecated epoll_create and epoll_wait syscalls.
+Instead, these wrap the epoll_create1 and epoll_pwait syscalls, which serve
+the same purpose but with slightly different syntaxes.
+
+Origin: backport, https://github.com/bradfitz/sys-syscall/commit/6c7c516edfabd2edc835d0aaad39f946164bb25d
+Bug-Debian: https://bugs.debian.org/824843
+---
+ lib/Sys/Syscall.pm | 19 +++++++++++++++++--
+ 1 file changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/lib/Sys/Syscall.pm b/lib/Sys/Syscall.pm
+index 702e835..abd010a 100644
+--- a/lib/Sys/Syscall.pm
++++ b/lib/Sys/Syscall.pm
+@@ -53,6 +53,8 @@ our (
+ $SYS_readahead,
+ );
+
++our $no_deprecated = 0;
++
+ if ($^O eq "linux") {
+ # whether the machine requires 64-bit numbers to be on 8-byte
+ # boundaries.
+@@ -105,6 +107,14 @@ if ($^O eq "linux") {
+ $SYS_epoll_wait = 409;
+ $SYS_readahead = 379;
+ $u64_mod_8 = 1;
++ } elsif ($machine eq "aarch64") {
++ $SYS_epoll_create = 20; # (sys_epoll_create1)
++ $SYS_epoll_ctl = 21;
++ $SYS_epoll_wait = 22; # (sys_epoll_pwait)
++ $SYS_sendfile = 71; # (sys_sendfile64)
++ $SYS_readahead = 213;
++ $u64_mod_8 = 1;
++ $no_deprecated = 1;
+ } elsif ($machine =~ m/arm(v\d+)?.*l/) {
+ # ARM OABI
+ $SYS_epoll_create = 250;
+@@ -207,7 +217,7 @@ sub epoll_defined { return $SYS_epoll_create ? 1 : 0; }
+ # size doesn't even matter (radix tree now, not hash)
+ sub epoll_create {
+ return -1 unless defined $SYS_epoll_create;
+- my $epfd = eval { syscall($SYS_epoll_create, ($_[0]||100)+0) };
++ my $epfd = eval { syscall($SYS_epoll_create, $no_deprecated ? 0 : ($_[0]||100)+0) };
+ return -1 if $@;
+ return $epfd;
+ }
+@@ -245,7 +255,12 @@ sub epoll_wait_mod8 {
+ $epoll_wait_size = $_[1];
+ $epoll_wait_events = "\0" x 16 x $epoll_wait_size;
+ }
+- my $ct = syscall($SYS_epoll_wait, $_[0]+0, $epoll_wait_events, $_[1]+0, $_[2]+0);
++ my $ct;
++ if ($no_deprecated) {
++ $ct = syscall($SYS_epoll_wait, $_[0]+0, $epoll_wait_events, $_[1]+0, $_[2]+0, undef);
++ } else {
++ $ct = syscall($SYS_epoll_wait, $_[0]+0, $epoll_wait_events, $_[1]+0, $_[2]+0);
++ }
+ for (0..$ct-1) {
+ # 16 byte epoll_event structs, with format:
+ # 4 byte mask [idx 1]
+--
+2.8.1
+
diff --git a/testing/perl-sys-syscall/ppc64le.patch b/testing/perl-sys-syscall/ppc64le.patch
new file mode 100644
index 00000000000..980f4973049
--- /dev/null
+++ b/testing/perl-sys-syscall/ppc64le.patch
@@ -0,0 +1,31 @@
+Patch-Source: https://sources.debian.org/data/main/libs/libsys-syscall-perl/0.25-7/debian/patches/ppc64le.patch
+
+From b877ec33b331ba01e8fad8bed0d3cde55e1efa9e Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowi@redhat.com>
+Date: Fri, 4 Dec 2015 02:26:35 -0600
+Subject: [PATCH 1/3] Add ppc64le support
+
+Little endian uses the same syscalls as the big endian kernel.
+
+Origin: upstream, https://github.com/bradfitz/sys-syscall/commit/b877ec33b331ba01e8fad8bed0d3cde55e1efa9e
+Bug-Debian: https://bugs.debian.org/824843
+---
+ lib/Sys/Syscall.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Sys/Syscall.pm b/lib/Sys/Syscall.pm
+index 8d7cca2..ece65de 100644
+--- a/lib/Sys/Syscall.pm
++++ b/lib/Sys/Syscall.pm
+@@ -78,7 +78,7 @@ if ($^O eq "linux") {
+ $SYS_epoll_wait = 232;
+ $SYS_sendfile = 40;
+ $SYS_readahead = 187;
+- } elsif ($machine eq "ppc64") {
++ } elsif ($machine =~ m/^ppc64/) {
+ $SYS_epoll_create = 236;
+ $SYS_epoll_ctl = 237;
+ $SYS_epoll_wait = 238;
+--
+2.8.1
+
diff --git a/testing/perl-sys-syscall/ppc64le_epoll.patch b/testing/perl-sys-syscall/ppc64le_epoll.patch
deleted file mode 100644
index 4f2174c8256..00000000000
--- a/testing/perl-sys-syscall/ppc64le_epoll.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/Sys/Syscall.pm
-+++ b/lib/Sys/Syscall.pm
-@@ -65,7 +65,7 @@
- $SYS_epoll_wait = 232;
- $SYS_sendfile = 40;
- $SYS_readahead = 187;
-- } elsif ($machine eq "ppc64") {
-+ } elsif ($machine =~ m/^ppc64/) {
- $SYS_epoll_create = 236;
- $SYS_epoll_ctl = 237;
- $SYS_epoll_wait = 238;
diff --git a/testing/perl-sys-syscall/s390x.patch b/testing/perl-sys-syscall/s390x.patch
new file mode 100644
index 00000000000..6f755cc355f
--- /dev/null
+++ b/testing/perl-sys-syscall/s390x.patch
@@ -0,0 +1,34 @@
+Patch-Source: https://sources.debian.org/data/main/libs/libsys-syscall-perl/0.25-7/debian/patches/s390x.patch
+
+From 5628d9c0e299eea79e87aa8a5ed2d99a2895a4d0 Mon Sep 17 00:00:00 2001
+From: Yaakov Selkowitz <yselkowi@redhat.com>
+Date: Fri, 4 Dec 2015 02:28:00 -0600
+Subject: [PATCH 2/3] Add s390/x support
+
+Origin: upstream, https://github.com/bradfitz/sys-syscall/commit/5628d9c0e299eea79e87aa8a5ed2d99a2895a4d0
+Bug-Debian: https://bugs.debian.org/824843
+---
+ lib/Sys/Syscall.pm | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/lib/Sys/Syscall.pm b/lib/Sys/Syscall.pm
+index ece65de..702e835 100644
+--- a/lib/Sys/Syscall.pm
++++ b/lib/Sys/Syscall.pm
+@@ -92,6 +92,13 @@ if ($^O eq "linux") {
+ $SYS_sendfile = 186; # sys_sendfile64=226
+ $SYS_readahead = 191;
+ $u64_mod_8 = 1;
++ } elsif ($machine =~ m/^s390/) {
++ $SYS_epoll_create = 249;
++ $SYS_epoll_ctl = 250;
++ $SYS_epoll_wait = 251;
++ $SYS_sendfile = 187; # sys_sendfile64=223
++ $SYS_readahead = 222;
++ $u64_mod_8 = 1;
+ } elsif ($machine eq "ia64") {
+ $SYS_epoll_create = 1243;
+ $SYS_epoll_ctl = 1244;
+--
+2.8.1
+
diff --git a/testing/perl-sys-virt/APKBUILD b/testing/perl-sys-virt/APKBUILD
index 3c6bd3c7b82..a21ee1b3e0e 100644
--- a/testing/perl-sys-virt/APKBUILD
+++ b/testing/perl-sys-virt/APKBUILD
@@ -1,30 +1,34 @@
-# 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-sys-virt
-_pkgreal=Sys-Virt
-pkgver=6.3.0
+pkgver=10.2.0
pkgrel=0
-pkgdesc="Perl module for Sys-Virt"
-url="https://metacpan.org/release/Sys-Virt"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Sys-Virt
+pkgdesc="libvirt Perl API"
+url="https://metacpan.org/release/Sys-Virt/"
arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-xml-xpath perl-test-pod-coverage
- perl-test-pod perl-cpan-changes perl-module-build"
+license="GPL-2.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="$cpanmakedepends perl-dev libvirt yajl-dev libvirt-dev"
+makedepends="
+ libvirt-dev
+ perl-cpan-changes
+ perl-dev
+ perl-module-build
+ perl-test-pod
+ perl-test-pod-coverage
+ perl-xml-xpath
+ "
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DA/DANBERR/Sys-Virt-v$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-v$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 \
+ --create_packlist=0
./Build
}
@@ -34,7 +38,8 @@ check() {
package() {
./Build install --destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7f224523cd08838b00b4e06b729a0cfc9570d3be469d251c114f60832cc024f4ad61d8836d7ad0e85284961f227fe2ded1ac5a891465a1d62d4e14389ad3e8e2 Sys-Virt-v6.3.0.tar.gz"
+sha512sums="
+c362e37511aff879b08a67b6337cee6d20c197fea2bb7f6ce023eafa642f53029744d704250533772fd48448ff39ea49027b83563cd9821dcd22d3621b2372ef Sys-Virt-v10.2.0.tar.gz
+"
diff --git a/testing/perl-system-command/APKBUILD b/testing/perl-system-command/APKBUILD
new file mode 100644
index 00000000000..9a0df28180d
--- /dev/null
+++ b/testing/perl-system-command/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-system-command
+pkgver=1.122
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=System-Command
+pkgdesc="Object for running system commands"
+url="https://metacpan.org/release/System-Command/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-test-command perl-test-output"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/B/BO/BOOK/System-Command-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7b83909072509b06c580c00ef6e06d83e620fa3da84c308a3f8e301a5cec9c1d3b953d3e9e70d99123f19ac164d7156806d65f65a624f3575851481674d04378 System-Command-1.122.tar.gz
+"
diff --git a/testing/perl-template-plugin-csv/APKBUILD b/testing/perl-template-plugin-csv/APKBUILD
index 792e94e2ea6..bbe1b427dcc 100644
--- a/testing/perl-template-plugin-csv/APKBUILD
+++ b/testing/perl-template-plugin-csv/APKBUILD
@@ -4,17 +4,13 @@
pkgname=perl-template-plugin-csv
_pkgreal=Template-Plugin-CSV
pkgver=0.04
-pkgrel=1
+pkgrel=3
pkgdesc="Template plugin to generate CSV"
url="https://metacpan.org/release/Template-Plugin-CSV/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-template-toolkit perl-text-csv"
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev perl-module-install $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl perl-template-toolkit perl-text-csv"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GU/GUGOD/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-template-plugin-number-format/APKBUILD b/testing/perl-template-plugin-number-format/APKBUILD
index 9fb5e7cee99..c9c93999df5 100644
--- a/testing/perl-template-plugin-number-format/APKBUILD
+++ b/testing/perl-template-plugin-number-format/APKBUILD
@@ -4,45 +4,30 @@
pkgname=perl-template-plugin-number-format
_pkgreal=Template-Plugin-Number-Format
pkgver=1.06
-pkgrel=1
-pkgdesc="unknown"
+pkgrel=4
+pkgdesc="Plugin/filter interface to Number::Format"
url="https://metacpan.org/release/Template-Plugin-Number-Format/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-template-toolkit perl-number-format"
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl perl-template-toolkit perl-number-format"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DA/DARREN/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare || return 1
-
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- 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
}
-check() {
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="85ddc46618efc5a11a657f265ea63b09bd8df9f8e99122bcee5a22a23099ac8eb3c930d61382529b1e3c0b4dd663d32e30e77ac33b6d1b305475e740053001cb Template-Plugin-Number-Format-1.06.tar.gz"
+sha512sums="
+85ddc46618efc5a11a657f265ea63b09bd8df9f8e99122bcee5a22a23099ac8eb3c930d61382529b1e3c0b4dd663d32e30e77ac33b6d1b305475e740053001cb Template-Plugin-Number-Format-1.06.tar.gz
+"
diff --git a/testing/perl-term-size/APKBUILD b/testing/perl-term-size/APKBUILD
index 0e7f6042905..eeb05fc9dc6 100644
--- a/testing/perl-term-size/APKBUILD
+++ b/testing/perl-term-size/APKBUILD
@@ -3,9 +3,9 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-term-size
_pkgreal=Term-Size
-pkgver=0.209
-pkgrel=5
-pkgdesc="Retrieve terminal size (Unix version)"
+pkgver=0.211
+pkgrel=3
+pkgdesc="Retrieve terminal size on Unix"
url="https://metacpan.org/release/Term-Size/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
@@ -31,4 +31,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="bedd8afcbeac69ee90705c079eed734ecbff9f63a70a5507f3c06cd1b4d2e580612b563bb84b7714307ad5a15d8194d9831e09b3b2ff07f82e3c3802750e6b3c Term-Size-0.209.tar.gz"
+sha512sums="0762951a6125dace8c67548667b8ca353b34199412fbd4c05d417a49a6d3f5bb93172736fcef98e049f094f2fdc62efd334e64f9357c7778665f2aa2bb775e0f Term-Size-0.211.tar.gz"
diff --git a/testing/perl-term-ui/APKBUILD b/testing/perl-term-ui/APKBUILD
index bfb4d81b989..fe305c3d16b 100644
--- a/testing/perl-term-ui/APKBUILD
+++ b/testing/perl-term-ui/APKBUILD
@@ -3,14 +3,13 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-term-ui
_pkgreal=Term-UI
-pkgver=0.46
-pkgrel=2
+pkgver=0.50
+pkgrel=1
pkgdesc="User interfaces via Term::ReadLine made easy"
url="https://metacpan.org/release/Term-UI"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-log-message-simple"
-makedepends="perl-dev"
+depends="perl perl-log-message-simple"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BINGOS/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -37,4 +36,6 @@ check() {
make test
}
-sha512sums="7788d651e29e9c7b9c0c2b2074b39f143216a321a5a71c9c4e52fe32e44a246faade8cfdf109bcf7cfe1bac5d9d97fc920c6344a5692e8508361f1c780c41054 Term-UI-0.46.tar.gz"
+sha512sums="
+338f564a5405804d3f34840dbd26309911b0dfa6de346fc11c0fb4e33e0e2d42915a26b3f9569ccf95333a8cf20bded9830c923c69df48aa72670cdabe05fc98 Term-UI-0.50.tar.gz
+"
diff --git a/testing/perl-test-api/APKBUILD b/testing/perl-test-api/APKBUILD
index b19e0c931c1..e044644a897 100644
--- a/testing/perl-test-api/APKBUILD
+++ b/testing/perl-test-api/APKBUILD
@@ -4,13 +4,12 @@
pkgname=perl-test-api
_pkgreal=Test-API
pkgver=0.010
-pkgrel=0
+pkgrel=2
pkgdesc="Test a list of subroutines provided by a module"
url="https://metacpan.org/release/Test-API"
arch="noarch"
license="Apache-2.0"
depends="perl"
-makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Test-API-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-test-checkdeps/APKBUILD b/testing/perl-test-checkdeps/APKBUILD
new file mode 100644
index 00000000000..71df0f6e0fe
--- /dev/null
+++ b/testing/perl-test-checkdeps/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-checkdeps
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-CheckDeps
+pkgver=0.010
+pkgrel=0
+pkgdesc="Check for presence of dependencies"
+url="https://metacpan.org/release/Test-CheckDeps/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-cpan-meta-check"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/Test-CheckDeps-$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="
+9683b81aa6bce358fa1abc9b2337b9b15b274742f08a3fd71e80df0bfd20619406cdded191aafdd103db8d514bdc20d36a0b60aefbd72d3de6cb117c17461697 Test-CheckDeps-0.010.tar.gz
+"
diff --git a/testing/perl-test-class-tiny/APKBUILD b/testing/perl-test-class-tiny/APKBUILD
new file mode 100644
index 00000000000..253d201b0d6
--- /dev/null
+++ b/testing/perl-test-class-tiny/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-class-tiny
+pkgver=0.03
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-Class-Tiny
+pkgdesc="xUnit in Perl, simplified"
+url="https://metacpan.org/release/Test-Class-Tiny/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+checkdepends="perl-test-deep perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/F/FE/FELIPE/Test-Class-Tiny-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7342fcdd8cf1c283926f6e244fa2bfca9369e8fa9a10587c9d46bfba1b204ef5156a21d3a461a952d07cf8f0646995083ce5c1738561fac83c38c04fd8e895de Test-Class-Tiny-0.03.tar.gz
+"
diff --git a/testing/perl-test-describeme/APKBUILD b/testing/perl-test-describeme/APKBUILD
new file mode 100644
index 00000000000..71ba75dfaeb
--- /dev/null
+++ b/testing/perl-test-describeme/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-describeme
+pkgver=0.004
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-DescribeMe
+pkgdesc="Tell test runners what kind of test you are"
+url="https://metacpan.org/release/Test-DescribeMe/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-test-settings"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/W/WO/WOLFSAGE/Test-DescribeMe-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cfbdf4497393f49139f78699d47f9ebcafbb1021b1c8281633623c8c65bb97a77e8b21d6cb6eb2ea145fd3cfa5a1e1172b1b86f0f40f21b5cec970512347fb37 Test-DescribeMe-0.004.tar.gz
+"
diff --git a/testing/perl-test-distribution/APKBUILD b/testing/perl-test-distribution/APKBUILD
new file mode 100644
index 00000000000..122d6dbfdf3
--- /dev/null
+++ b/testing/perl-test-distribution/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-test-distribution
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-Distribution
+pkgver=2.00
+pkgrel=1
+pkgdesc="perform tests on all modules of a distribution"
+url="https://metacpan.org/release/Test-Distribution/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-test-pod perl-test-pod-coverage perl-file-find-rule perl-pod-coverage"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SR/SRSHAH/Test-Distribution-$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="
+74ad4bb228d6727f1c966e2b3311914de15ef6d191717b6c9e7fa7ab9286de737aefc889c1c3f1d587582f234e0da55e980cd7eabb7edce4bd13ff79f4333638 Test-Distribution-2.00.tar.gz
+"
diff --git a/testing/perl-test-expander/APKBUILD b/testing/perl-test-expander/APKBUILD
new file mode 100644
index 00000000000..b88da7b2a55
--- /dev/null
+++ b/testing/perl-test-expander/APKBUILD
@@ -0,0 +1,55 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-expander
+pkgver=2.5.0
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-Expander
+pkgdesc="Collection of frequently used test functionalities"
+url="https://metacpan.org/release/Test-Expander/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-const-fast perl-file-chdir perl-importer
+ perl-padwalker perl-path-tiny perl-scalar-readonly
+ perl-test2-suite perl-test2-tools-explain
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JS/JSF/Test-Expander-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ rm -v lib/.perlcriticrc
+}
+
+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
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+db46e5110ee0620fd202cb600ef119d7b7769306a51cf9c16aef825c74c504019923608a79025ba612cbcfb1996ff637fc966e4f1422dcf825d5ab9971f7a164 Test-Expander-2.5.0.tar.gz
+"
diff --git a/testing/perl-test-file/APKBUILD b/testing/perl-test-file/APKBUILD
index 4d85974358c..d38356070e0 100644
--- a/testing/perl-test-file/APKBUILD
+++ b/testing/perl-test-file/APKBUILD
@@ -1,35 +1,33 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=perl-test-file
-_realname=Test-File
-pkgver=1.443
+_pkgreal=Test-File
+pkgver=1.993
pkgrel=1
-pkgdesc="A collection of test utilities for file attributes"
+pkgdesc="test file attributes"
url="https://github.com/briandfoy/test-file"
arch="noarch"
-license="PerlArtistic"
-depends=""
-makedepends="perl-dev"
+license="Artistic-2.0"
+depends="perl"
checkdepends="perl-test-utf8"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BD/BDFOY/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/B/BD/BDFOY/Test-File-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$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="9ad66b3a9dc1c3752a4ec22934db9139ac010ac3237a3de018d4ec4a65ac047f0152ab9e7979a2615412c1af02a1f2dfa0dbfdf5eba5358628b1b443232c45b2 Test-File-1.443.tar.gz"
+sha512sums="
+0e14580a11afc2f3115d5594be226237803ad8e462c314a2b775ca96bf491cfeea84bd90ae92a70c58d3d8fc7c0f21d38b54a58d29dd01a2c082c0cbfecb0aaf Test-File-1.993.tar.gz
+"
diff --git a/testing/perl-test-files/APKBUILD b/testing/perl-test-files/APKBUILD
new file mode 100644
index 00000000000..b2cd82d57da
--- /dev/null
+++ b/testing/perl-test-files/APKBUILD
@@ -0,0 +1,57 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-files
+pkgver=0.26
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-Files
+pkgdesc="Test::Builder based module to ease testing with files and dirs"
+url="https://metacpan.org/release/Test-Files/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-xsaccessor perl-const-fast perl-data-compare
+ perl-file-chdir perl-padwalker perl-path-tiny perl-text-diff
+ "
+checkdepends="
+ perl-archive-zip perl-file-copy-recursive perl-test-expander
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JS/JSF/Test-Files-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+prepare() {
+ default_prepare
+
+ rm -v lib/.perlcriticrc
+}
+
+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
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+72bdac0290230993b5364ee674d5b8289feef5f98abb0a9595574e49642be1183fd0dace03693e63ca001ea9131d2f1e8f7625843fb00e9fcce321d5e5149aec Test-Files-0.26.tar.gz
+"
diff --git a/testing/perl-test-lwp-useragent/APKBUILD b/testing/perl-test-lwp-useragent/APKBUILD
new file mode 100644
index 00000000000..93e62a64dda
--- /dev/null
+++ b/testing/perl-test-lwp-useragent/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-lwp-useragent
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-LWP-UserAgent
+pkgver=0.036
+pkgrel=0
+pkgdesc="LWP::UserAgent subclass for simulating and testing network calls"
+url="https://metacpan.org/release/Test-LWP-UserAgent/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-http-date perl-http-message perl-libwww
+ perl-namespace-clean perl-safe-isa perl-try-tiny perl-uri
+ "
+checkdepends="
+ perl-json-maybexs perl-moose perl-path-tiny perl-plack
+ perl-test-deep perl-test-fatal perl-test-needs
+ perl-test-requiresinternet perl-test-warnings
+ "
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-LWP-UserAgent-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6cf34dbd9c6fee3ab25ee31a97694f24499c7f41cd3d08e915176235148e69729f9434d58da78645e306d966031d2807f333f9847ddcc53b33474e6e6bea9e8e Test-LWP-UserAgent-0.036.tar.gz
+"
diff --git a/testing/perl-test-memorygrowth/APKBUILD b/testing/perl-test-memorygrowth/APKBUILD
new file mode 100644
index 00000000000..40293310d75
--- /dev/null
+++ b/testing/perl-test-memorygrowth/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-memorygrowth
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-MemoryGrowth
+pkgver=0.04
+pkgrel=0
+pkgdesc="Assert that code does not cause growth in memory usage"
+url="https://metacpan.org/release/Test-MemoryGrowth/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Test-MemoryGrowth-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+538cd6646be941e2fe67640eccad5b5b5eb29ee403837e33f9b7c703209a78a699c89a03906bb85461207c99aea3b87a9f48c869ed07979a84d083fa71e5b7f5 Test-MemoryGrowth-0.04.tar.gz
+"
diff --git a/testing/perl-test-modern/APKBUILD b/testing/perl-test-modern/APKBUILD
index aacf85c44a6..8672e2b80fa 100644
--- a/testing/perl-test-modern/APKBUILD
+++ b/testing/perl-test-modern/APKBUILD
@@ -4,17 +4,15 @@
pkgname=perl-test-modern
_pkgreal=Test-Modern
pkgver=0.013
-pkgrel=1
+pkgrel=3
pkgdesc="precision testing for modern perl"
url="https://metacpan.org/release/Test-Modern/"
arch="noarch"
license="GPL PerlArtistic"
-cpandepends="perl-exporter-tiny perl-import-into perl-test-warnings perl-test-fatal perl-try-tiny perl-test-deep perl-test-api perl-module-runtime"
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="
+ perl perl-exporter-tiny perl-import-into perl-test-warnings perl-test-fatal perl-try-tiny
+ perl-test-deep perl-test-api perl-module-runtime
+ "
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-test-randomresult/APKBUILD b/testing/perl-test-randomresult/APKBUILD
new file mode 100644
index 00000000000..0580ed8a5ec
--- /dev/null
+++ b/testing/perl-test-randomresult/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-randomresult
+pkgver=0.001
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-RandomResult
+pkgdesc="Test that results of a running code look random"
+url="https://metacpan.org/release/Test-RandomResult/"
+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/P/PE/PERLANCAR/Test-RandomResult-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ce85acf051686186c44e9972e610117c821018c2d32900ce56ef6c96fbca6afb58f729bfe18a1651a27359d9fbf8f855a2b2b7969ef154befaf20adabbc6767b Test-RandomResult-0.001.tar.gz
+"
diff --git a/testing/perl-test-redisserver/APKBUILD b/testing/perl-test-redisserver/APKBUILD
new file mode 100644
index 00000000000..43077e0eddc
--- /dev/null
+++ b/testing/perl-test-redisserver/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-redisserver
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-RedisServer
+pkgver=0.23
+pkgrel=0
+pkgdesc="redis-server runner for tests"
+url="https://metacpan.org/release/Test-RedisServer/"
+arch="noarch !armv7 !x86 !armhf" # perl-redis not available
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-mouse perl-redis redis"
+makedepends="perl-module-build-tiny"
+checkdepends="perl-test-tcp"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/S/SO/SONGMU/Test-RedisServer-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+57616c36d505a2ff1c933c82b698924a0cfdbf10ae62d98836a93cf7ac093c2595c498a5a039a2b65929cec889f6f3b85cd581f1080e5a28c6d46b0e85f4aacd Test-RedisServer-0.23.tar.gz
+"
diff --git a/testing/perl-test-requires-git/APKBUILD b/testing/perl-test-requires-git/APKBUILD
new file mode 100644
index 00000000000..c86ce26ce02
--- /dev/null
+++ b/testing/perl-test-requires-git/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-requires-git
+pkgver=1.008
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-Requires-Git
+pkgdesc="Check your test requirements against the available version of Git"
+url="https://metacpan.org/release/Test-Requires-Git/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-git-version-compare"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/B/BO/BOOK/Test-Requires-Git-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+bc6d6cf8f371c8b20a139a468a57117c8d49fe1a83150a7597a1bb09c634d5ede2b4617209045ea0e2d707f7ab4aa7e16c9652d604b8ecfc3e9785457c2cb504 Test-Requires-Git-1.008.tar.gz
+"
diff --git a/testing/perl-test-roo/APKBUILD b/testing/perl-test-roo/APKBUILD
index de9130bfe7f..696d4360007 100644
--- a/testing/perl-test-roo/APKBUILD
+++ b/testing/perl-test-roo/APKBUILD
@@ -4,17 +4,13 @@
pkgname=perl-test-roo
_pkgreal=Test-Roo
pkgver=1.004
-pkgrel=1
+pkgrel=3
pkgdesc="Composable, reusable tests with roles and Moo"
url="https://metacpan.org/release/Test-Roo/"
arch="noarch"
license="Apache-2.0"
-cpandepends="perl-moox-types-mooselike perl-moo perl-sub-install perl-strictures"
-cpanmakedepends=""
-cpancheckdepends="perl-capture-tiny"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl perl-moox-types-mooselike perl-moo perl-sub-install perl-strictures"
+checkdepends="perl-capture-tiny"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-test-settings/APKBUILD b/testing/perl-test-settings/APKBUILD
new file mode 100644
index 00000000000..8aca7a2c749
--- /dev/null
+++ b/testing/perl-test-settings/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test-settings
+pkgver=0.003
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-Settings
+pkgdesc="Ask or tell when certain types of tests should be run"
+url="https://metacpan.org/release/Test-Settings/"
+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/W/WO/WOLFSAGE/Test-Settings-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+8839e6cd16c1527157e79bacb34fc6b95d09286a1974e7503b68f06cf17536d798c084d546b19c5f0720823d1486658918e93922737c949513e875a0bc76a6c2 Test-Settings-0.003.tar.gz
+"
diff --git a/testing/perl-test-timer/APKBUILD b/testing/perl-test-timer/APKBUILD
index 3c13c04a544..b0ec02f8926 100644
--- a/testing/perl-test-timer/APKBUILD
+++ b/testing/perl-test-timer/APKBUILD
@@ -1,33 +1,25 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-test-timer
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Timer
-pkgver=2.11
-pkgrel=0
+pkgver=2.12
+pkgrel=2
pkgdesc="test module to test/assert response times"
-url="https://metacpan.org/release/Test-Timer"
+url="https://metacpan.org/release/Test-Timer/"
arch="noarch"
license="Artistic-2.0"
-cpandepends="perl-error"
-cpanmakedepends="perl-module-build"
-cpancheckdepends="perl-test-fatal perl-test-simple"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+depends="perl perl-error"
+makedepends="perl-module-build"
+checkdepends="perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/J/JO/JONASBN/Test-Timer-$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
}
@@ -36,9 +28,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="cd276ee115c31fb24f5f518fcca0e09189e2da8bc009bf6e99b28799117edb93d95492e61c6b60ef1cce9be2fe040eed242bbe3acb8ef8f40778970e24444c9b Test-Timer-2.11.tar.gz"
+sha512sums="
+1a97676fccca9f8daae550942ab5dcd28bf121d781518b41bfc846ed5e63723e64608a24a001ff8462e7f9e6019e727ed4bf88ddb13e0e3428093abe42eb71ee Test-Timer-2.12.tar.gz
+"
diff --git a/testing/perl-test-toolbox/APKBUILD b/testing/perl-test-toolbox/APKBUILD
index 87a4508ae5f..b09164ad930 100644
--- a/testing/perl-test-toolbox/APKBUILD
+++ b/testing/perl-test-toolbox/APKBUILD
@@ -1,35 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: TBK <tbk@jjtc.eu>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-test-toolbox
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Toolbox
pkgver=0.4
-pkgrel=2
+pkgrel=5
pkgdesc="Tools for testing"
-url="https://metacpan.org/release/Test-Toolbox"
+url="https://metacpan.org/release/Test-Toolbox/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MI/MIKO/Test-Toolbox-$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}')
- make
+ 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="99d711a7cce4ac3a4fd37f4b7fc91cf75c5d4978ff83cd084599ed6c1818d22b30a3210a14b03da4646b53cc939b224937da3bea1c49bb13324c5583ee44bf81 Test-Toolbox-0.4.tar.gz"
+sha512sums="
+99d711a7cce4ac3a4fd37f4b7fc91cf75c5d4978ff83cd084599ed6c1818d22b30a3210a14b03da4646b53cc939b224937da3bea1c49bb13324c5583ee44bf81 Test-Toolbox-0.4.tar.gz
+"
diff --git a/testing/perl-test-trap/APKBUILD b/testing/perl-test-trap/APKBUILD
index 958453a834e..dcf900a4e24 100644
--- a/testing/perl-test-trap/APKBUILD
+++ b/testing/perl-test-trap/APKBUILD
@@ -3,14 +3,14 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-test-trap
_pkgreal=Test-Trap
-pkgver=0.3.4
-pkgrel=0
+pkgver=0.3.5
+pkgrel=1
pkgdesc="Trap exit codes, exceptions, output, etc."
url="https://metacpan.org/release/Test-Trap"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-data-dump"
-makedepends="perl-dev perl-module-build"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/EB/EBHANSSEN/Test-Trap-v$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-v$pkgver"
@@ -36,4 +36,6 @@ check() {
./Build test
}
-sha512sums="cac4412a55511c820a1813a277afa802769a64219bf306190d83fea775c53bcd1d7faa275cb7f1b435e5ae274b6c1f78dd862525a6426040e51fdaf537e720ff Test-Trap-v0.3.4.tar.gz"
+sha512sums="
+02836ed9c91448cb5aa84246c17d72d119844e072289656529d87e944ad1c26fa7e18e7b45290cdffdabaff7abdad4547233156331194ce375da0b902811313e Test-Trap-v0.3.5.tar.gz
+"
diff --git a/testing/perl-test-unit/20_fix-defined-array-warnings.patch b/testing/perl-test-unit/20_fix-defined-array-warnings.patch
new file mode 100644
index 00000000000..a6401ee6987
--- /dev/null
+++ b/testing/perl-test-unit/20_fix-defined-array-warnings.patch
@@ -0,0 +1,20 @@
+Patch-Source: https://sources.debian.org/data/main/libt/libtest-unit-perl/0.25-7/debian/patches/20_fix-defined-array-warnings.patch
+
+Description: Fix defined(@array) deprecation warning
+ Also fixes test suite failures where STDERR was checked
+Author: Axel Beckert <abe@debian.org>
+Bug: https://rt.cpan.org/Public/Bug/Display.html?id=102732
+
+Index: libtest-unit-perl/lib/Test/Unit/TestCase.pm
+===================================================================
+--- libtest-unit-perl.orig/lib/Test/Unit/TestCase.pm 2013-12-25 21:59:45.182407866 +0100
++++ libtest-unit-perl/lib/Test/Unit/TestCase.pm 2013-12-25 22:08:27.777044278 +0100
+@@ -103,7 +103,7 @@
+ my $class = ref($_[0]) || $_[0];
+ my @tests = ();
+ no strict 'refs';
+- if (defined(@{"$class\::TESTS"})) {
++ if (@{"$class\::TESTS"}) {
+ push @tests, @{"$class\::TESTS"};
+ }
+ else {
diff --git a/testing/perl-test-unit/30_fix-xism-test-suite-failures.patch b/testing/perl-test-unit/30_fix-xism-test-suite-failures.patch
new file mode 100644
index 00000000000..bce2e41c087
--- /dev/null
+++ b/testing/perl-test-unit/30_fix-xism-test-suite-failures.patch
@@ -0,0 +1,29 @@
+Patch-Source: https://sources.debian.org/data/main/libt/libtest-unit-perl/0.25-7/debian/patches/30_fix-xism-test-suite-failures.patch
+
+Description: Fix test-suite failures due to ?-xism vs ?^
+ ?^ was introduced with Perl 5.14 as abbreviation for ?d-imsx
+Author: Axel Beckert <abe@debian.org>
+Bug: https://rt.cpan.org/Public/Bug/Display.html?id=62771
+
+Index: libtest-unit-perl/t/tlib/AssertTest.pm
+===================================================================
+--- libtest-unit-perl.orig/t/tlib/AssertTest.pm 2013-12-26 01:17:02.338121179 +0100
++++ libtest-unit-perl/t/tlib/AssertTest.pm 2013-12-26 01:17:50.658363830 +0100
+@@ -70,7 +70,7 @@
+
+ 'bang' => [ __LINE__, sub { shift->assert(0, 'bang') } ],
+ 'bang' => [ __LINE__, sub { shift->assert('', 'bang') } ],
+- "'qux' did not match /(?-xism:foo)/"
++ "'qux' did not match /(?^:foo)/"
+ => [ __LINE__, sub { shift->assert(qr/foo/, 'qux') } ],
+ 'bang' => [ __LINE__, sub { shift->assert(qr/foo/, 'qux', 'bang') } ],
+ 'a ne b'=> [ __LINE__, sub { shift->assert($coderef, 'a', 'b') } ],
+@@ -253,7 +253,7 @@
+ q{expected '', got 'foo'} => [ 'foo', '' ],
+ q{expected 'foo', got ''} => [ '', 'foo' ],
+ q{expected 5, got 4} => [ $adder, 5 ],
+- q{'foo' did not match /(?-xism:x)/} => [ 'foo', qr/x/ ],
++ q{'foo' did not match /(?^:x)/} => [ 'foo', qr/x/ ],
+ );
+ my @tests = ();
+ while (@checks) {
diff --git a/testing/perl-test-unit/40_make-deep-test-less-fragile.patch b/testing/perl-test-unit/40_make-deep-test-less-fragile.patch
new file mode 100644
index 00000000000..298c35b530e
--- /dev/null
+++ b/testing/perl-test-unit/40_make-deep-test-less-fragile.patch
@@ -0,0 +1,23 @@
+Patch-Source: https://sources.debian.org/data/main/libt/libtest-unit-perl/0.25-7/debian/patches/40_make-deep-test-less-fragile.patch
+
+Description: Add more variants to fragile test
+ This test was already marked by upstream as "may be fragile due to
+ recursion ordering" and it indeed is fragile. Fixes occasional test
+ suite failures due to hash randomization.
+Author: Axel Beckert <abe@debian.org>
+Bug: https://rt.cpan.org/Public/Bug/Display.html?id=87017
+
+Index: libtest-unit-perl/t/tlib/AssertTest.pm
+===================================================================
+--- libtest-unit-perl.orig/t/tlib/AssertTest.pm 2013-12-26 02:08:38.782689704 +0100
++++ libtest-unit-perl/t/tlib/AssertTest.pm 2013-12-26 02:13:11.136010021 +0100
+@@ -479,7 +479,8 @@
+ },
+ }
+ ],
+- $differ->( 'HASH', 'not exist') => [$families{orig}, $families{bad_copy}], # test may be fragile due to recursion ordering?
++ # test is fragile due to hash randomization
++ $differ->( 'HASH|John\sDoe', 'not\sexist|Baby\sDoll') => [$families{orig}, $families{bad_copy}],
+ $differ->("'3'", "'5'") => [ [ \$H, 3 ], [ \$H2, 5 ] ],
+ $differ->("'hello'", "'goodbye'") => [ { world => \$H }, { world => \$G } ],
+ $differ->("'hello'", "'goodbye'") => [ [ \$H, "world" ], [ \$G, "world" ] ],
diff --git a/testing/perl-test-unit/APKBUILD b/testing/perl-test-unit/APKBUILD
index 248c36792c6..6310fc1eecf 100644
--- a/testing/perl-test-unit/APKBUILD
+++ b/testing/perl-test-unit/APKBUILD
@@ -1,32 +1,33 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-test-unit
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Unit
pkgver=0.25
-pkgrel=1
+pkgrel=4
pkgdesc="A unit testing framework"
-url="https://metacpan.org/release/Test-Unit"
+url="https://metacpan.org/release/Test-Unit/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-options="!check"
-depends="perl-class-inner perl-error perl-devel-symdump"
-makedepends="perl-dev"
+depends="perl perl-class-inner perl-devel-symdump perl-error"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MC/MCAST/Test-Unit-$pkgver.tar.gz
- testcase.patch"
+ 20_fix-defined-array-warnings.patch
+ 30_fix-xism-test-suite-failures.patch
+ 40_make-deep-test-less-fragile.patch
+ "
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() {
@@ -34,10 +35,9 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="8f76583c7480eec825080eb6cd94d1b1a1c7c3bc7f297607414c95777e9a9f880b5a0d927a41521389ae50c2ba1b9ec3d76149da47d5997add739970df6b154d Test-Unit-0.25.tar.gz
-d7e874a687f93347cb03b403b55a9a765caa38aed1f24c437c6e4a43d287084366aff5a97b4990487f00979288146a29d36989059c8e83b702824348c0f86bc5 testcase.patch"
+sha512sums="
+8f76583c7480eec825080eb6cd94d1b1a1c7c3bc7f297607414c95777e9a9f880b5a0d927a41521389ae50c2ba1b9ec3d76149da47d5997add739970df6b154d Test-Unit-0.25.tar.gz
+47415704a1cd0f18cd95be4f231adb69093af08735f0af81cc78a8178ebd25283311f38c41e1d155e3806ed3b545de0d3c0feedbb8fd4192c04a0b6c516d4e73 20_fix-defined-array-warnings.patch
+417b738b22cf0f31d7393528610cb3362dab93341623dd7526a3cb8abebdc26f766efa162a4960e81ecce7ad77f139f7cf212a5e97ea7d07c17c768d1530ae35 30_fix-xism-test-suite-failures.patch
+40789912e9ff8ed3abbd0bd2d59cd1c0b090277d123aea720a247d0f86debd68756b1be06ae23e22526b80730239520509fc0274f129b19ae220ea84d511d2db 40_make-deep-test-less-fragile.patch
+"
diff --git a/testing/perl-test-unit/testcase.patch b/testing/perl-test-unit/testcase.patch
deleted file mode 100644
index 9f287555915..00000000000
--- a/testing/perl-test-unit/testcase.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/Test/Unit/TestCase.pm
-+++ b/lib/Test/Unit/TestCase.pm
-@@ -103,7 +103,7 @@
- my $class = ref($_[0]) || $_[0];
- my @tests = ();
- no strict 'refs';
-- if (defined(@{"$class\::TESTS"})) {
-+ if (@{"$class\::TESTS"}) {
- push @tests, @{"$class\::TESTS"};
- }
- else {
diff --git a/testing/perl-test-useallmodules/APKBUILD b/testing/perl-test-useallmodules/APKBUILD
new file mode 100644
index 00000000000..d83b2fc64cb
--- /dev/null
+++ b/testing/perl-test-useallmodules/APKBUILD
@@ -0,0 +1,35 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-test-useallmodules
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-UseAllModules
+pkgver=0.17
+pkgrel=1
+pkgdesc="do use_ok() for all the MANIFESTed modules"
+url="https://metacpan.org/release/Test-UseAllModules/"
+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/I/IS/ISHIGAKI/Test-UseAllModules-$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="6aa768dded4b3ebe604bc616a8a1b09845c0dbd91fcdba2b10e787e5ba3604cb18d9dfcfb9f5e4fef0d3d5d44c8722d99394843e4a14e1bee4dbb1463ef4bcd8 Test-UseAllModules-0.17.tar.gz"
diff --git a/testing/perl-test-utf8/APKBUILD b/testing/perl-test-utf8/APKBUILD
index 651f328774c..de55a80e43d 100644
--- a/testing/perl-test-utf8/APKBUILD
+++ b/testing/perl-test-utf8/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=perl-test-utf8
-_realname=Test-utf8
+_pkgreal=Test-utf8
pkgver=1.02
-pkgrel=0
+pkgrel=2
pkgdesc="A collection of tests useful for dealing with utf8 strings"
url="https://github.com/2shortplanks/Test-utf8"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev perl-module-install"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MA/MARKF/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/M/MA/MARKF/Test-utf8-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/testing/perl-test2-tools-explain/APKBUILD b/testing/perl-test2-tools-explain/APKBUILD
new file mode 100644
index 00000000000..93213a5b109
--- /dev/null
+++ b/testing/perl-test2-tools-explain/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-test2-tools-explain
+pkgver=0.02
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test2-Tools-Explain
+pkgdesc="Explain tools for Perl's Test2 framework"
+url="https://metacpan.org/release/Test2-Tools-Explain/"
+arch="noarch"
+license="Artistic-2.0"
+depends="perl perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/Test2-Tools-Explain-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+4359db90fede4aa2e6d8e0ee1e006131e372636ba8ab28c12ff1ef5c30e6f7a23fcf4b63d0ad64d54b881a2b344bbcf279cc7d7777982178065c89c3fceabf04 Test2-Tools-Explain-0.02.tar.gz
+"
diff --git a/testing/perl-text-aspell/APKBUILD b/testing/perl-text-aspell/APKBUILD
deleted file mode 100644
index 4d81e009341..00000000000
--- a/testing/perl-text-aspell/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=perl-text-aspell
-_pkgreal=Text-Aspell
-pkgver=0.09
-pkgrel=4
-pkgdesc="Perl interface to the GNU Aspell library"
-url="https://metacpan.org/release/Text-Aspell"
-arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev aspell-dev"
-checkdepends="aspell-en"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/H/HA/HANK/$_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 -I. 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="6e7f2a8f48f3d735d9162333c4d30a0ffcdc4a002cffc51f284759a1e89e0a79c0bf94e2af577f381613a114f1ede134f01db36367d443a81ba8d028a4a8c65b Text-Aspell-0.09.tar.gz"
diff --git a/testing/perl-text-brew/APKBUILD b/testing/perl-text-brew/APKBUILD
index 97e47e36f3b..e83631b5e70 100644
--- a/testing/perl-text-brew/APKBUILD
+++ b/testing/perl-text-brew/APKBUILD
@@ -4,12 +4,12 @@
pkgname=perl-text-brew
_pkgreal=Text-Brew
pkgver=0.02
-pkgrel=3
+pkgrel=5
pkgdesc="An implementation of the Brew edit distance"
url="https://metacpan.org/release/Text-Brew"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KC/KCIVEY/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-text-table-any/APKBUILD b/testing/perl-text-table-any/APKBUILD
new file mode 100644
index 00000000000..872c954093b
--- /dev/null
+++ b/testing/perl-text-table-any/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-text-table-any
+pkgver=0.117
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Text-Table-Any
+pkgdesc="Generate text table using one of several backends"
+url="https://metacpan.org/release/Text-Table-Any/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-text-table-sprintf"
+checkdepends="perl-test-exception"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PERLANCAR/Text-Table-Any-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ee0e0b9a4150fc289c49cedc6da49f8757e681aa0d862cad5e67dbb43df73a9a11f98127efbde086335cb4f616943e398f79991aa42d919dd2c85d13a9b8c7d2 Text-Table-Any-0.117.tar.gz
+"
diff --git a/testing/perl-text-table-sprintf/APKBUILD b/testing/perl-text-table-sprintf/APKBUILD
new file mode 100644
index 00000000000..6bc48c20225
--- /dev/null
+++ b/testing/perl-text-table-sprintf/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-text-table-sprintf
+pkgver=0.008
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Text-Table-Sprintf
+pkgdesc="Generate simple text tables from 2D arrays using sprintf()"
+url="https://metacpan.org/release/Text-Table-Sprintf/"
+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/P/PE/PERLANCAR/Text-Table-Sprintf-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e4006c6b139f81441ffd5659da265889674a9c2a8aae1ea354d2e1d8fb61c7abe608eb9771760f4d9effb29d6aa38cab090ae0ad3e9b919bac28e188515b2bfa Text-Table-Sprintf-0.008.tar.gz
+"
diff --git a/testing/perl-throwable/APKBUILD b/testing/perl-throwable/APKBUILD
index 7197debb6bb..1ea991d4133 100644
--- a/testing/perl-throwable/APKBUILD
+++ b/testing/perl-throwable/APKBUILD
@@ -3,15 +3,13 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-throwable
_pkgreal=Throwable
-pkgver=0.200013
-pkgrel=3
+pkgver=1.001
+pkgrel=1
pkgdesc="A role for classes that can be thrown"
url="https://metacpan.org/release/Throwable"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-moo perl-class-load perl-moox-types-mooselike perl-devel-stacktrace"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-moo perl-class-load perl-moox-types-mooselike perl-devel-stacktrace"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
@@ -38,4 +36,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="81ce73709c7c6a0160da42b00ce06ddf4cce79a6801df7aa90ddcce67efed6ace17b06171ac42b2737a98515c17ab46b5a3b7fd9e5bd3079b109a977dc6c0963 Throwable-0.200013.tar.gz"
+sha512sums="
+b0b8d906c1cf7d4f5ea985b91bb2eca191056cd41b12c37560504c825bf57fe4a0cf4423ad53da04a9cd43edeba52321d407f03e556033156071b0c3ef97001a Throwable-1.001.tar.gz
+"
diff --git a/testing/perl-tickit-widget-choice/APKBUILD b/testing/perl-tickit-widget-choice/APKBUILD
new file mode 100644
index 00000000000..497b2143c5c
--- /dev/null
+++ b/testing/perl-tickit-widget-choice/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-tickit-widget-choice
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Tickit-Widget-Choice
+pkgver=0.07
+pkgrel=0
+pkgdesc="Widget giving a choice from a list"
+url="https://metacpan.org/release/Tickit-Widget-Choice/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-object-pad perl-tickit-widget-menu"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Tickit-Widget-Choice-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+4ba3418c35580a297ad993de993e6cdef375405282c58d3868e08a84513d34545b0e853b9f2fa14215d99a8b206c500bdcaf85d5515311cdb0673976968e4afa Tickit-Widget-Choice-0.07.tar.gz
+"
diff --git a/testing/perl-tickit-widget-entry-plugin-completion/APKBUILD b/testing/perl-tickit-widget-entry-plugin-completion/APKBUILD
new file mode 100644
index 00000000000..0a8e3f99436
--- /dev/null
+++ b/testing/perl-tickit-widget-entry-plugin-completion/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-tickit-widget-entry-plugin-completion
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Tickit-Widget-Entry-Plugin-Completion
+pkgver=0.02
+pkgrel=0
+pkgdesc="Add word-completion logic to a Tickit::Widget::Entry"
+url="https://metacpan.org/release/Tickit-Widget-Entry-Plugin-Completion/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-object-pad perl-tickit-widgets"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Tickit-Widget-Entry-Plugin-Completion-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+296e822b8fd1b916be9e4794527132bcb5f685280668ba50ca1add31d8fa6d3cefae9b0fb070d805c47c1e5cd527656f8f6d5fbea8ef6d5494e6d9d9be8ae382 Tickit-Widget-Entry-Plugin-Completion-0.02.tar.gz
+"
diff --git a/testing/perl-tickit-widget-floatbox/APKBUILD b/testing/perl-tickit-widget-floatbox/APKBUILD
new file mode 100644
index 00000000000..77a85f892f5
--- /dev/null
+++ b/testing/perl-tickit-widget-floatbox/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-tickit-widget-floatbox
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Tickit-Widget-FloatBox
+pkgver=0.11
+pkgrel=0
+pkgdesc="Manage a collection of floating widgets"
+url="https://metacpan.org/release/Tickit-Widget-FloatBox/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-object-pad perl-tickit-widgets"
+makedepends="perl-module-build"
+checkdepends="perl-test-identity"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Tickit-Widget-FloatBox-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+42d7f84a03ebae3583734de2ce0d6b08566461a9c25952c1d802f6cbdfe7dc814a2515fb84db46fa664ec686e35a89ae7cf3853e5e41a4393596f2428953d6c8 Tickit-Widget-FloatBox-0.11.tar.gz
+"
diff --git a/testing/perl-tickit-widget-menu/APKBUILD b/testing/perl-tickit-widget-menu/APKBUILD
new file mode 100644
index 00000000000..a0b0685b5ab
--- /dev/null
+++ b/testing/perl-tickit-widget-menu/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-tickit-widget-menu
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Tickit-Widget-Menu
+pkgver=0.16
+pkgrel=0
+pkgdesc="Display a menu of choices"
+url="https://metacpan.org/release/Tickit-Widget-Menu/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-object-pad perl-tickit-widgets"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Tickit-Widget-Menu-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+ca99764ba51c6cd79c7efc010c2d1296bd57fcb86cf3a4fa059f741831228235ec9b311292027fb260435030d2328a0cf6faee5fb3115f2bb35fb53d7f4c3c86 Tickit-Widget-Menu-0.16.tar.gz
+"
diff --git a/testing/perl-tickit-widget-scrollbox/APKBUILD b/testing/perl-tickit-widget-scrollbox/APKBUILD
new file mode 100644
index 00000000000..dd91c6d3961
--- /dev/null
+++ b/testing/perl-tickit-widget-scrollbox/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-tickit-widget-scrollbox
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Tickit-Widget-ScrollBox
+pkgver=0.12
+pkgrel=0
+pkgdesc="Allow a single child widget to be scrolled"
+url="https://metacpan.org/release/Tickit-Widget-ScrollBox/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-object-pad perl-tickit-widgets"
+makedepends="perl-module-build"
+checkdepends="perl-test-refcount"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Tickit-Widget-ScrollBox-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+88715d421196b787bbfcf4c1dea90fa5a86845aa5ce67e4dd9be754099c4ae8f38720a2325d38d20f123ae0cf0953fb53a4aeaeffe999d2c338112160c7d7cc0 Tickit-Widget-ScrollBox-0.12.tar.gz
+"
diff --git a/testing/perl-tie-ixhash/APKBUILD b/testing/perl-tie-ixhash/APKBUILD
deleted file mode 100644
index fb73b72685a..00000000000
--- a/testing/perl-tie-ixhash/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=perl-tie-ixhash
-_pkgreal=Tie-IxHash
-pkgver=1.23
-pkgrel=2
-pkgdesc="ordered associative arrays for Perl"
-url="https://metacpan.org/release/Tie-IxHash"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-module-build"
-makedepends="perl-dev $cpanmakedepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CH/CHORNY/$_pkgreal-$pkgver.tar.gz"
-
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- perl Build.PL installdirs=vendor
-}
-
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- ./Build
-}
-
-check() {
- ./Build test
-}
-
-package() {
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="13e5015cf4e11e3ba828279a5090704b8e4bed26a04e1f486a9d3a63c41eaf38d54d233b20ef5d1886b56e857208c229fd145c4c676b681e3e9c1ed3c252f195 Tie-IxHash-1.23.tar.gz"
diff --git a/testing/perl-time-timegm/APKBUILD b/testing/perl-time-timegm/APKBUILD
index f4bfa579b47..e733f6a8874 100644
--- a/testing/perl-time-timegm/APKBUILD
+++ b/testing/perl-time-timegm/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-time-timegm
_pkgreal=Time-timegm
pkgver=0.01
-pkgrel=4
+pkgrel=8
pkgdesc="a UTC version of C<mktime()>"
url="https://metacpan.org/release/Time-timegm"
arch="all"
diff --git a/testing/perl-types-path-tiny/APKBUILD b/testing/perl-types-path-tiny/APKBUILD
new file mode 100644
index 00000000000..d07ca9747d0
--- /dev/null
+++ b/testing/perl-types-path-tiny/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-types-path-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Types-Path-Tiny
+pkgver=0.006
+pkgrel=0
+pkgdesc="Path::Tiny types and coercions for Moose and Moo"
+url="https://metacpan.org/release/Types-Path-Tiny/"
+arch="noarch"
+license="Apache-2.0"
+depends="perl perl-path-tiny perl-type-tiny"
+checkdepends="perl-file-pushd"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Types-Path-Tiny-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+9820b5e23bd916895d64573273dd0ffcf8fdc1f0cf6af2db02400bcbbc3611628f03e2ca83f9297dae3b28784279689ba40256f94f0e7ef841bd08e026941b0a Types-Path-Tiny-0.006.tar.gz
+"
diff --git a/testing/perl-uri-db/APKBUILD b/testing/perl-uri-db/APKBUILD
new file mode 100644
index 00000000000..69f0099432e
--- /dev/null
+++ b/testing/perl-uri-db/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-uri-db
+pkgver=0.22
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=URI-db
+pkgdesc="Database URIs"
+url="https://metacpan.org/release/URI-db/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-uri perl-uri-nested"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DW/DWHEELER/URI-db-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+0812e692218641040e65defb1775519278eb7c21d7848e888c5202ee2ffd6ecbd2060031dd40329f2e067ebdde4a8f4da6bf5cd473fc02744a4a4847e2f1e3dc URI-db-0.22.tar.gz
+"
diff --git a/testing/perl-uri-encode-xs/APKBUILD b/testing/perl-uri-encode-xs/APKBUILD
deleted file mode 100644
index 01a345c154b..00000000000
--- a/testing/perl-uri-encode-xs/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Nick Andrew <nick@nick-andrew.net>
-# Maintainer: Nick Andrew <nick@nick-andrew.net>
-pkgname=perl-uri-encode-xs
-_pkgreal=URI-Encode-XS
-pkgver=0.11
-pkgrel=4
-pkgdesc="A Perl URI encoder/decoder using C"
-url="https://metacpan.org/release/URI-Encode-XS"
-arch="all"
-license="BSD-2-Clause"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DF/DFARRELL/$_pkgreal-$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}')
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="2035723d68e67f3dceadc6f92c95558f7d30531bd559f4de07f7f3240e4512ae35b5452213be41fa1ee3be65b1803ccbd7299587373fc2c339fdab8a42479d93 URI-Encode-XS-0.11.tar.gz"
diff --git a/testing/perl-uri-fetch/APKBUILD b/testing/perl-uri-fetch/APKBUILD
new file mode 100644
index 00000000000..6edd7f3ab22
--- /dev/null
+++ b/testing/perl-uri-fetch/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-uri-fetch
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=URI-Fetch
+pkgver=0.15
+pkgrel=0
+pkgdesc="Smart URI fetching/caching"
+url="https://metacpan.org/release/URI-Fetch/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-class-errorhandler perl-libwww perl-uri"
+checkdepends="perl-test-requiresinternet"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/URI-Fetch-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+eb630a628920cdee005a7a4be5c82da635050905a6cbb12b06721a11921f54b72d0c307306a413b95e43def7859eb5ac4e0d9d9400c4fe86750cc71210db7203 URI-Fetch-0.15.tar.gz
+"
diff --git a/testing/perl-uri-nested/APKBUILD b/testing/perl-uri-nested/APKBUILD
new file mode 100644
index 00000000000..eec01862112
--- /dev/null
+++ b/testing/perl-uri-nested/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-uri-nested
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=URI-Nested
+pkgver=0.10
+pkgrel=0
+pkgdesc="Nested URIs"
+url="https://metacpan.org/release/URI-Nested/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-uri"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DW/DWHEELER/URI-Nested-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+00f6bc5ac77e629b7bd82ba593f839dc2da394c5e8fafc03db2d816fffc149557ece6a50e0b82867c4e458d1dff108535bb3ec4768401a30450f51e5a827b9e4 URI-Nested-0.10.tar.gz
+"
diff --git a/testing/perl-uri-redis/APKBUILD b/testing/perl-uri-redis/APKBUILD
new file mode 100644
index 00000000000..a6c7db48b7e
--- /dev/null
+++ b/testing/perl-uri-redis/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-uri-redis
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=URI-redis
+pkgver=0.02
+pkgrel=0
+pkgdesc="URI for Redis connection info"
+url="https://metacpan.org/release/URI-redis/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-uri"
+makedepends="perl-test-most"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/M/ME/MENDEL/URI-redis-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7f9f62c8b6b3e00e02c45d5237fb3a4c33542be12a4f7cb31ae74711be66e7031d2daa5a18b2fe1c84554dcfee7db7901f8a9fcac4ba609e24dee33ab6253d9c URI-redis-0.02.tar.gz
+"
diff --git a/testing/perl-uri-tcp/APKBUILD b/testing/perl-uri-tcp/APKBUILD
new file mode 100644
index 00000000000..8ba3101be24
--- /dev/null
+++ b/testing/perl-uri-tcp/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-uri-tcp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=URI-tcp
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="TCP connection string"
+url="https://metacpan.org/release/URI-tcp/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-uri"
+makedepends="perl-module-build-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/J/JA/JASEI/URI-tcp-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+9efbd6f60984474bbb62a1519abbe10aa357bb4107626fbbe21f39987f11ffd800803f0d91cebfb58b1f51174a69b871d96da66481ab2d122158bea63079bb50 URI-tcp-2.0.0.tar.gz
+"
diff --git a/testing/perl-url-encode/APKBUILD b/testing/perl-url-encode/APKBUILD
index 4e90d52a729..f78b6189a52 100644
--- a/testing/perl-url-encode/APKBUILD
+++ b/testing/perl-url-encode/APKBUILD
@@ -4,12 +4,13 @@
pkgname=perl-url-encode
_pkgreal=URL-Encode
pkgver=0.03
-pkgrel=2
+pkgrel=4
pkgdesc="Encoding and decoding of C<application/x-www-form-urlencoded> encoding."
url="https://metacpan.org/release/URL-Encode"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev perl-module-install"
+depends="perl"
+makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHANSEN/$_pkgreal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
diff --git a/testing/perl-variable-disposition/APKBUILD b/testing/perl-variable-disposition/APKBUILD
new file mode 100644
index 00000000000..649fd4f48e8
--- /dev/null
+++ b/testing/perl-variable-disposition/APKBUILD
@@ -0,0 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-variable-disposition
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Variable-Disposition
+pkgver=0.005
+pkgrel=0
+pkgdesc="Dispose of variables"
+url="https://metacpan.org/release/Variable-Disposition/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-future"
+checkdepends="perl-test-checkdeps perl-test-fatal perl-test-refcount"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TE/TEAM/Variable-Disposition-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
+}
+
+sha512sums="
+4ed05d35658867cfd45c08b7b894d9efcdcf4c5465ec551fdd0ae2b497251f0e5d805de9243505a096757965b59f4d5b2d82c80ec6aeac7887d01dbf704b583a Variable-Disposition-0.005.tar.gz
+"
diff --git a/testing/perl-webservice-swigclient/APKBUILD b/testing/perl-webservice-swigclient/APKBUILD
deleted file mode 100644
index 865d8a70f00..00000000000
--- a/testing/perl-webservice-swigclient/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=perl-webservice-swigclient
-_pkgreal=WebService-SwigClient
-pkgver=0.001
-pkgrel=3
-pkgdesc="A client for connecting to a swig service"
-url="https://metacpan.org/release/WebService-SwigClient"
-arch="" # blocked by perl-www-curl
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-test-most perl-test-easy perl-moo perl-file-slurp
- perl-www-curl perl-json-xs perl-common-sense perl-types-serialiser"
-depends="$cpandepends"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LO/LOGIE/$_pkgreal-$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}')
- make && make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="0e1eb0981b1bbc8f004689be85b20e87b1806d43748039831e0bdb032243bb573e43c974725c865d8c98333a376882460fd77c7b247f245370891a42ee2262b1 WebService-SwigClient-0.001.tar.gz"
diff --git a/testing/perl-www-curl/APKBUILD b/testing/perl-www-curl/APKBUILD
deleted file mode 100644
index 5a401d3e7e0..00000000000
--- a/testing/perl-www-curl/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
-# Maintainer:
-pkgname=perl-www-curl
-_pkgreal=WWW-Curl
-pkgver=4.17
-pkgrel=7
-pkgdesc="Perl extension interface for libcurl"
-url="https://metacpan.org/release/WWW-Curl"
-arch="" # fails to build
-license="MIT"
-makedepends="perl-dev curl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SZ/SZBALINT/$_pkgreal-$pkgver.tar.gz
- WWW-Curl-4.17-RT117793.patch
- perl-5.26.patch
- fix-curl.xs.patch
- "
-
-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
- if [ "$CARCH" != "ppc64le" ]; then
- make test
- fi
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-sha512sums="bc7a75d0e23f5a77578fd7244b56a1e1b81d814993b90ac7132926f0d571232c4c95875bc615cb6239e424ae1d5481d27796efc5376bb0845d1da0ff1137c0d6 WWW-Curl-4.17.tar.gz
-d92cb37435d66867578818776f3ef64f4f6295515639d9bf860907ad28ca4109435c45174b49bdeb594a0cddafcc3f833c41d15d641eadfbbec598b77a1e90df WWW-Curl-4.17-RT117793.patch
-a0e91afecc23df532c1256255b202152597d00fd6e677d25a473fb0ce5e6d2a0be978298fee9dd73343765a1ad925afea5c73be458ace4311c733a14d0f55bae perl-5.26.patch
-5bdd2fcdc235d28b811c9197bc24f80857476a2704212b63f762aa61252665ddbfc2fb3493952426d3760c76e1f3ea23298fc040770664de87deab4945d3bb36 fix-curl.xs.patch"
diff --git a/testing/perl-www-curl/WWW-Curl-4.17-RT117793.patch b/testing/perl-www-curl/WWW-Curl-4.17-RT117793.patch
deleted file mode 100644
index e89d237ea23..00000000000
--- a/testing/perl-www-curl/WWW-Curl-4.17-RT117793.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 292c05a8aa9c18bd27d0aaff0b4ee601d9b87b92 Mon Sep 17 00:00:00 2001
-From: Slaven Rezic <cpansand@cvrsnica-freebsd-101.herceg.de>
-Date: Sun, 16 Apr 2017 22:17:00 +0200
-Subject: [PATCH] compilation fixes for curl 7.50.2 and newer (RT #117793)
-
----
- Makefile.PL | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.PL b/Makefile.PL
-index f9170bb..bb852e4 100644
---- a/Makefile.PL
-+++ b/Makefile.PL
-@@ -127,7 +127,7 @@ if (!defined($curl_h)) {
- close H;
-
- for my $e (sort @syms) {
-- if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
-+ if($e =~ /(OBSOLETE|^CURL_EXTERN|^CURL_STRICTER\z|^CURL_DID_MEMORY_FUNC_TYPEDEFS\z|_LAST\z|_LASTENTRY\z)/) {
- next;
- }
- my ($group) = $e =~ m/^([^_]+_)/;
---
-2.1.2
-
diff --git a/testing/perl-www-curl/fix-curl.xs.patch b/testing/perl-www-curl/fix-curl.xs.patch
deleted file mode 100644
index 1ae3e8b46c9..00000000000
--- a/testing/perl-www-curl/fix-curl.xs.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 893518f6ed260b67fc86e344a9c6bb7626617b3a Mon Sep 17 00:00:00 2001
-From: Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
-Date: Mon, 16 Dec 2019 10:41:59 +0200
-Subject: [PATCH 1/3] For maximum backward compability define __CURL_MULTI_H if
- it's not defined
-
----
- Curl.xs | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/Curl.xs b/Curl.xs
-index cfa282d..a98c255 100644
---- a/Curl.xs
-+++ b/Curl.xs
-@@ -68,6 +68,12 @@ typedef struct {
- struct curl_httppost * last;
- } perl_curl_form;
-
-+/* To keep backward compability define __CURL_MULTI_H if it's not defined */
-+#ifdef CURLINC_MULTI_H
-+# ifndef __CURL_MULTI_H
-+# define __CURL_MULTI_H 1
-+# endif
-+#endif
-
- typedef struct {
- #ifdef __CURL_MULTI_H
-
-From 3e94be6ae245ca29ac21745cf273c7bd0ca9b178 Mon Sep 17 00:00:00 2001
-From: Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
-Date: Mon, 16 Dec 2019 10:53:25 +0200
-Subject: [PATCH 2/3] Remove -Wunused-but-set-variable warnings
-
----
- Curl.xs | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/Curl.xs b/Curl.xs
-index a98c255..828b4ec 100644
---- a/Curl.xs
-+++ b/Curl.xs
-@@ -358,7 +358,6 @@ fwrite_wrapper2 (
-
- if (call_function) { /* We are doing a callback to perl */
- int count, status;
-- SV *sv;
-
- ENTER;
- SAVETMPS;
-@@ -608,6 +607,8 @@ curl_easy_init(...)
- char *sclass = "WWW::Curl::Easy";
-
- PPCODE:
-+ /* Prevent ununsed variable warning */
-+ (void)(ix);
- if (items>0 && !SvROK(ST(0))) {
- STRLEN dummy;
- sclass = SvPV(ST(0),dummy);
-@@ -951,6 +952,8 @@ int
- curl_easy_cleanup(self)
- WWW::Curl::Easy self
- CODE:
-+ /* Prevent unused variable warning */
-+ (void)(self);
- /* does nothing anymore - cleanup is automatic when a curl handle goes out of scope */
- RETVAL = 0;
- OUTPUT:
-@@ -968,6 +971,8 @@ curl_easy_strerror(self, errornum)
- int errornum
- CODE:
- {
-+ /* Prevent unused variable */
-+ (void)(self);
- #if (LIBCURL_VERSION_NUM>=0x070C00)
- const char * vchar = curl_easy_strerror(errornum);
- #else
-@@ -1186,6 +1191,8 @@ curl_multi_strerror(self, errornum)
- int errornum
- CODE:
- {
-+ /* Prevent unused variable warning */
-+ (void)(self);
- #if (LIBCURL_VERSION_NUM>=0x070C00)
- const char * vchar = curl_multi_strerror(errornum);
- #else
-@@ -1256,6 +1263,8 @@ curl_share_strerror(self, errornum)
- int errornum
- CODE:
- {
-+ /* Prevent unused variable */
-+ (void)(self);
- #if (LIBCURL_VERSION_NUM>=0x070C00)
- const char * vchar = curl_share_strerror(errornum);
- #else
-
-From 968e410fcd6ddc4a122d787186eac6516bf982aa Mon Sep 17 00:00:00 2001
-From: Tuukka Pasanen <tuukka.pasanen@ilmi.fi>
-Date: Mon, 16 Dec 2019 11:00:46 +0200
-Subject: [PATCH 3/3] Remove -Wattribute-warning warning messages with
- typecasting
-
----
- Curl.xs | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/Curl.xs b/Curl.xs
-index 828b4ec..05eb71a 100644
---- a/Curl.xs
-+++ b/Curl.xs
-@@ -667,7 +667,7 @@ curl_easy_duphandle(self)
- }
-
- if (self->callback[callback_index(CURLOPT_DEBUGFUNCTION)] || self->callback_ctx[callback_index(CURLOPT_DEBUGDATA)]) {
-- curl_easy_setopt(clone->curl, CURLOPT_DEBUGFUNCTION, debug_callback_func);
-+ curl_easy_setopt(clone->curl, CURLOPT_DEBUGFUNCTION, (curl_debug_callback) debug_callback_func);
- curl_easy_setopt(clone->curl, CURLOPT_DEBUGDATA, clone);
- }
-
-@@ -722,7 +722,7 @@ curl_easy_setopt(self, option, value, push=0)
- perl_curl_easy_register_callback(aTHX_ self,&(self->callback_ctx[callback_index(option)]), value);
- break;
- case CURLOPT_DEBUGDATA:
-- curl_easy_setopt(self->curl, CURLOPT_DEBUGFUNCTION, SvOK(value) ? debug_callback_func : NULL);
-+ curl_easy_setopt(self->curl, CURLOPT_DEBUGFUNCTION, (curl_debug_callback) (SvOK(value) ? debug_callback_func : NULL));
- curl_easy_setopt(self->curl, option, SvOK(value) ? self : NULL);
- perl_curl_easy_register_callback(aTHX_ self,&(self->callback_ctx[callback_index(option)]), value);
- break;
-@@ -743,7 +743,7 @@ curl_easy_setopt(self, option, value, push=0)
- perl_curl_easy_register_callback(aTHX_ self,&(self->callback[callback_index(option)]), value);
- break;
- case CURLOPT_DEBUGFUNCTION:
-- curl_easy_setopt(self->curl, option, SvOK(value) ? debug_callback_func : NULL);
-+ curl_easy_setopt(self->curl, option, (curl_debug_callback) (SvOK(value) ? debug_callback_func : NULL));
- curl_easy_setopt(self->curl, CURLOPT_DEBUGDATA, SvOK(value) ? self : NULL);
- perl_curl_easy_register_callback(aTHX_ self,&(self->callback[callback_index(option)]), value);
- break;
-@@ -796,7 +796,7 @@ curl_easy_setopt(self, option, value, push=0)
-
- /* tell curl to redirect STDERR - value should be a glob */
- case CURLOPT_STDERR:
-- RETVAL = curl_easy_setopt(self->curl, option, IoOFP(sv_2io(value)) );
-+ RETVAL = curl_easy_setopt(self->curl, option, (FILE *) IoOFP(sv_2io(value)) );
- break;
-
- /* not working yet... */
-@@ -817,7 +817,7 @@ curl_easy_setopt(self, option, value, push=0)
- WWW__Curl__Share wrapper;
- IV tmp = SvIV((SV*)SvRV(value));
- wrapper = INT2PTR(WWW__Curl__Share,tmp);
-- RETVAL = curl_easy_setopt(self->curl, option, wrapper->curlsh);
-+ RETVAL = curl_easy_setopt(self->curl, option, (CURLSH *) wrapper->curlsh);
- } else
- croak("value is not of type WWW::Curl::Share");
- break;
-@@ -1096,7 +1096,7 @@ curl_multi_info_read(self)
- };
- if (easy) {
- curl_easy_getinfo(easy, CURLINFO_PRIVATE, &stashid);
-- curl_easy_setopt(easy, CURLINFO_PRIVATE, NULL);
-+ curl_easy_setopt(easy, CURLINFO_PRIVATE, (curl_off_t) NULL);
- curl_multi_remove_handle(self->curlm, easy);
- XPUSHs(sv_2mortal(newSVpv(stashid,0)));
- XPUSHs(sv_2mortal(newSViv(res)));
diff --git a/testing/perl-www-curl/perl-5.26.patch b/testing/perl-www-curl/perl-5.26.patch
deleted file mode 100644
index 428d93c32d1..00000000000
--- a/testing/perl-www-curl/perl-5.26.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile.PL b/Makefile.PL
-index bb852e4..dd6d228 100644
---- a/Makefile.PL
-+++ b/Makefile.PL
-@@ -1,6 +1,7 @@
- # Makefile.PL for Perl module WWW::Curl
- # Check out the README file for more information.
-
-+BEGIN { push @INC, '.'; }
- use inc::Module::Install;
-
- name 'WWW-Curl';
diff --git a/testing/perl-x-tiny/APKBUILD b/testing/perl-x-tiny/APKBUILD
new file mode 100644
index 00000000000..c0cb2ae6eea
--- /dev/null
+++ b/testing/perl-x-tiny/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-x-tiny
+pkgver=0.22
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=X-Tiny
+pkgdesc="Super-lightweight exception framework"
+url="https://metacpan.org/release/X-Tiny/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-module-runtime"
+checkdepends="perl-test-failwarnings"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/F/FE/FELIPE/X-Tiny-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+86378f802c74e48ec5ed615429983b7b25d58758d95fa6dfe97aca4f27be8cf361f3218316d5057ec7f54d1e2b7aa32fad8c4046b7b862e83338215503220827 X-Tiny-0.22.tar.gz
+"
diff --git a/testing/perl-xml-atom/APKBUILD b/testing/perl-xml-atom/APKBUILD
new file mode 100644
index 00000000000..ee6a3f21c75
--- /dev/null
+++ b/testing/perl-xml-atom/APKBUILD
@@ -0,0 +1,42 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-xml-atom
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=XML-Atom
+pkgver=0.43
+pkgrel=0
+pkgdesc="Atom feed and API implementation"
+url="https://metacpan.org/release/XML-Atom/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-data-inheritable perl-datetime
+ perl-datetime-format-atom perl-datetime-timezone
+ perl-html-parser perl-libwww perl-uri
+ perl-xml-libxml perl-xml-xpath
+ "
+makedepends="perl-module-build-tiny"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/XML-Atom-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+408d0753d651da7ab4cc50d79b654e9f3680f17830a3fa36e0d1869a4e7aabb17aaf5132a91ff20f1144af09290f109fe7812baa61b23b5b89de384228649fd9 XML-Atom-0.43.tar.gz
+"
diff --git a/testing/perl-xml-bare/APKBUILD b/testing/perl-xml-bare/APKBUILD
index 19fa2100496..e4f7fdb49b8 100644
--- a/testing/perl-xml-bare/APKBUILD
+++ b/testing/perl-xml-bare/APKBUILD
@@ -1,33 +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-xml-bare
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=XML-Bare
pkgver=0.53
-pkgrel=7
-pkgdesc="A minimal XML parser / schema checker / pretty-printer using C internally."
-url="https://metacpan.org/release/XML-Bare"
+pkgrel=12
+pkgdesc="Minimal XML parser / schema checker / pretty-printer using C internally"
+url="https://metacpan.org/release/XML-Bare/"
arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+license="GPL-2.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CO/CODECHILD/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/C/CO/CODECHILD/XML-Bare-$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 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e765206e5c98ed3a0c29be3a323e25beaa712489d0461e2e7269f5f3383fa805ba3829a9ed4d31cd86f35400c321f8cf519162cc41f52f8ba6992c7016f63520 XML-Bare-0.53.tar.gz"
+sha512sums="
+e765206e5c98ed3a0c29be3a323e25beaa712489d0461e2e7269f5f3383fa805ba3829a9ed4d31cd86f35400c321f8cf519162cc41f52f8ba6992c7016f63520 XML-Bare-0.53.tar.gz
+"
diff --git a/testing/perl-xml-feed/APKBUILD b/testing/perl-xml-feed/APKBUILD
new file mode 100644
index 00000000000..823df7e6948
--- /dev/null
+++ b/testing/perl-xml-feed/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-xml-feed
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=XML-Feed
+pkgver=0.63
+pkgrel=0
+pkgdesc="XML Syndication Feed Support"
+url="https://metacpan.org/release/XML-Feed/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl perl-class-errorhandler perl-datetime
+ perl-datetime-format-flexible perl-datetime-format-iso8601
+ perl-datetime-format-mail perl-datetime-format-natural
+ perl-datetime-format-w3cdtf perl-feed-find perl-html-parser
+ perl-libwww perl-module-pluggable perl-uri-fetch
+ perl-xml-atom perl-xml-libxml perl-xml-rss
+ "
+makedepends="perl-module-build"
+checkdepends="perl-uri perl-xml-xpath"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAVECROSS/XML-Feed-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+sha512sums="
+3c624e71194ef263f0e1105407dc9a9bf5946a6e4964eb4b6ce96427a088db22a4f4821add5beb4602353a8d49883d1f6560ea50256354f3f8e2c1593b45e010 XML-Feed-0.63.tar.gz
+"
diff --git a/testing/perl-xml-libxml-sax-chunkparser/APKBUILD b/testing/perl-xml-libxml-sax-chunkparser/APKBUILD
new file mode 100644
index 00000000000..bed39eb26b1
--- /dev/null
+++ b/testing/perl-xml-libxml-sax-chunkparser/APKBUILD
@@ -0,0 +1,40 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-xml-libxml-sax-chunkparser
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=XML-LibXML-SAX-ChunkParser
+pkgver=0.00008
+pkgrel=0
+pkgdesc="Parse XML Chunks Via LibXML SAX"
+url="https://metacpan.org/release/XML-LibXML-SAX-ChunkParser/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-xml-sax perl-xml-libxml"
+makedepends="perl-module-build"
+checkdepends="perl-test-fatal"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DM/DMAKI/XML-LibXML-SAX-ChunkParser-$pkgver.tar.gz
+ fix-tests.patch
+ "
+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="
+1e6b3702982f8431868e9b8e0e27a86da17b01de297caad187c7d05c64bdd60350be3acb66d49044a456ad4e24b9de4a4a243c64e546e6d4839a65735bf4b9c6 XML-LibXML-SAX-ChunkParser-0.00008.tar.gz
+342e3219e93b5bb915de7bd356137ab26986f8c314eff8893a7ee36c9d91dcc0d3ffc2be8522ca68822057455686300ebccde7faacc03301c6624e2cf400dece fix-tests.patch
+"
diff --git a/testing/perl-xml-libxml-sax-chunkparser/fix-tests.patch b/testing/perl-xml-libxml-sax-chunkparser/fix-tests.patch
new file mode 100644
index 00000000000..83a777bc35d
--- /dev/null
+++ b/testing/perl-xml-libxml-sax-chunkparser/fix-tests.patch
@@ -0,0 +1,52 @@
+Patch-Source: https://github.com/lestrrat-p5/XML-LibXML-SAX-ChunkParser/pull/4
+
+Reference: https://github.com/lestrrat-p5/XML-LibXML-SAX-ChunkParser/issues/3
+--
+From a9423bb8536070e14f85fe9cee6d1dc84d7a7874 Mon Sep 17 00:00:00 2001
+From: Slaven Rezic <slaven@rezic.de>
+Date: Fri, 30 Mar 2018 09:42:46 +0200
+Subject: [PATCH] handle set_document_locator event (#3)
+
+---
+ t/01_basic.t | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/t/01_basic.t b/t/01_basic.t
+index 546014c..99c2bbc 100644
+--- a/t/01_basic.t
++++ b/t/01_basic.t
+@@ -3,8 +3,14 @@ use strict;
+ our $AUTOLOAD;
+ use Data::Dumper;
+ use Test::More;
++use XML::LibXML;
+
+ my @EVENTS = (
++ ($XML::LibXML::VERSION >= 2.0129 ?
++ {
++ Event => 'set_document_locator'
++ }
++ : ()),
+ {
+ Event => 'start_document'
+ },
+@@ -108,9 +114,11 @@ sub AUTOLOAD {
+
+ package main;
+ use strict;
+-use Test::More( tests => 23 );
++use Test::More;
+ use XML::SAX;
+
++plan tests => $XML::LibXML::VERSION >= 2.0129 ? 25 : 23;
++
+ XML::SAX->add_parser( q{XML::LibXML::SAX::ChunkParser} );
+
+ {
+@@ -140,4 +148,4 @@ XML::SAX->add_parser( q{XML::LibXML::SAX::ChunkParser} );
+ diag("parsing chunk '$chunk'");
+ $parser->parse_chunk($chunk);
+ }
+-}
+\ No newline at end of file
++}
diff --git a/testing/perl-xml-rpc/APKBUILD b/testing/perl-xml-rpc/APKBUILD
index cb40b4b48a2..4d73d695eff 100644
--- a/testing/perl-xml-rpc/APKBUILD
+++ b/testing/perl-xml-rpc/APKBUILD
@@ -3,18 +3,17 @@
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=perl-xml-rpc
_pkgreal=XML-RPC
-pkgver=1.1
-pkgrel=2
+pkgver=2.0
+_pkgver=${pkgver%\.0}
+pkgrel=1
pkgdesc="Pure Perl implementation for an XML-RPC client and server"
url="https://metacpan.org/release/XML-RPC"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-libwww perl-xml-treepp perl-lwp-protocol-https"
-depends="$cpandepends"
-makedepends="perl-dev"
+depends="perl perl-libwww perl-xml-treepp perl-lwp-protocol-https"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CA/CAVAC/$_pkgreal-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
+source="https://cpan.metacpan.org/authors/id/C/CA/CAVAC/$_pkgreal-$_pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$_pkgver"
prepare() {
default_prepare
@@ -38,4 +37,6 @@ check() {
make test
}
-sha512sums="163ec99c6c7dd75db5389320d6aeace56ba9313870f6c5c9633669f413ac2f0feace9c472ac35d51cef092d36e7a2ac306d19478b8257233ad5a6ddb5401c00e XML-RPC-1.1.tar.gz"
+sha512sums="
+c48f71f0b2eb2a020caa1d6ba434a236fd755235599affbe1d1c846834c688531fbc8c6b25f5c3a8031279d8ee139a7b5be7fc718f33561d11e505ecf22981b5 XML-RPC-2.tar.gz
+"
diff --git a/testing/perl-xml-stream/APKBUILD b/testing/perl-xml-stream/APKBUILD
new file mode 100644
index 00000000000..8fdf4ce7d12
--- /dev/null
+++ b/testing/perl-xml-stream/APKBUILD
@@ -0,0 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-xml-stream
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=XML-Stream
+pkgver=1.24
+pkgrel=0
+pkgdesc="XML stream support library for XMPP-like protocols"
+url="https://metacpan.org/release/XML-Stream/"
+arch="noarch"
+license="LGPL-2.1-or-later"
+depends="perl perl-authen-sasl perl-io-socket-ssl"
+makedepends="perl-module-build"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAPATRICK/XML-Stream-$pkgver.tar.gz
+ improvements.patch
+ "
+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="
+f762e09197fa7f36cee8484e30a6ce972e407d92cbe55bdf96bcc0073187aff34630c5d9dd2555a14cd297e506875dc2ff153b09001c971b020c37340886025d XML-Stream-1.24.tar.gz
+e7b165c381f80e1db2639a71fa13620b8bcdcb6098d9cb414d5a382d06ee2b28dc8834af07e0d587152ab0bed1aceb4c57b332de933262731bb0e9ec1e658180 improvements.patch
+"
diff --git a/testing/perl-xml-stream/improvements.patch b/testing/perl-xml-stream/improvements.patch
new file mode 100644
index 00000000000..0c11b449d3f
--- /dev/null
+++ b/testing/perl-xml-stream/improvements.patch
@@ -0,0 +1,34 @@
+https://github.com/dap/XML-Stream/pull/26
+https://github.com/dap/XML-Stream/issues/19
+https://github.com/dap/XML-Stream/issues/14
+
+--- a/lib/XML/Stream.pm
++++ b/lib/XML/Stream.pm
+@@ -205,8 +205,7 @@
+ XML::Stream::Tools::setup_debug($self, %args);
+
+ my $hostname = hostname();
+- my $address = gethostbyname($hostname) ||
+- die("Cannot resolve $hostname: $!");
++ my $address = gethostbyname($hostname) || "";
+ my $fullname = gethostbyaddr($address,AF_INET) || $hostname;
+
+ $self->debug(1,"new: hostname = ($fullname)");
+@@ -220,7 +219,7 @@
+ $self->{SIDS}->{default}->{ssl} = 0;
+ $self->{SIDS}->{default}->{_tls} = 0;
+ $self->{SIDS}->{default}->{ssl_verify} = 0x01; # verify peer by default
+- $self->{SIDS}->{default}->{ssl_ca_path} = '';
++ $self->{SIDS}->{default}->{ssl_ca_path} = '/etc/ssl/certs';
+ $self->{SIDS}->{default}->{namespace} = "";
+ $self->{SIDS}->{default}->{myhostname} = $fullname;
+ $self->{SIDS}->{default}->{derivedhostname} = $fullname;
+@@ -2164,7 +2163,7 @@
+ $response = $self->{SIDS}->{$sid}->{sasl}->{client}->client_step($challenge);
+ }
+
+- my $response64 = MIME::Base64::encode_base64($response,"");
++ my $response64 = defined($response) ? MIME::Base64::encode_base64($response,"") : "";
+ $self->SASLResponse($sid,$response64);
+ }
+
diff --git a/testing/persistent-cache-cpp/0001-src-core-Add-library-versioning.patch b/testing/persistent-cache-cpp/0001-src-core-Add-library-versioning.patch
new file mode 100644
index 00000000000..053e13232c4
--- /dev/null
+++ b/testing/persistent-cache-cpp/0001-src-core-Add-library-versioning.patch
@@ -0,0 +1,74 @@
+From 31fb33ab9cfed42cf28ec012049b178109cfa9fe Mon Sep 17 00:00:00 2001
+From: OPNA2608 <opna2608@protonmail.com>
+Date: Wed, 31 Jan 2024 12:01:27 +0100
+Subject: [PATCH] src/core: Add library versioning
+
+---
+ CMakeLists.txt | 9 ++-------
+ data/libpersistent-cache-cpp.pc.in | 2 +-
+ src/core/CMakeLists.txt | 8 ++++++++
+ 3 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 98b6bec..ea76225 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,11 +1,11 @@
+-cmake_minimum_required(VERSION 2.8.11)
++cmake_minimum_required(VERSION 3.0)
+
+ # Default install location. Must be set here, before setting the project.
+ if (NOT DEFINED CMAKE_INSTALL_PREFIX)
+ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "" FORCE)
+ endif()
+
+-project(persistent-cache-cpp C CXX)
++project(persistent-cache-cpp VERSION 1.0.7 LANGUAGES C CXX)
+
+ option(BUILD_SHARED_LIBS "Build library as shared" OFF)
+
+@@ -13,11 +13,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+ set(LIBNAME persistent-cache-cpp)
+
+-set(VERSION_MAJOR 1)
+-set(VERSION_MINOR 0)
+-set(VERSION_MICRO 7)
+-set(LIBVERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}")
+-
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_lower) # Build types should always be lower case
+
+ set(ACCEPTED_BUILD_TYPES "" none release debug relwithdebinfo coverage)
+diff --git a/data/libpersistent-cache-cpp.pc.in b/data/libpersistent-cache-cpp.pc.in
+index 565a209..fbe8445 100644
+--- a/data/libpersistent-cache-cpp.pc.in
++++ b/data/libpersistent-cache-cpp.pc.in
+@@ -4,6 +4,6 @@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+
+ Name: lib@LIBNAME@
+ Description: Cache of key-value pairs with persistent storage for C++
+-Version: @LIBVERSION@
++Version: @PROJECT_VERSION@
+ Libs: -L${libdir} -l@LIBNAME@ @PROPAGATED_LINK_FLAGS@
+ Cflags: -I${includedir}
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index 62b4b7a..e1fc94c 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -11,5 +11,13 @@ set(CACHE_SRC
+ add_library(${LIBNAME} ${CACHE_SRC})
+ target_link_libraries(${LIBNAME} ${LEVELDB})
+
++set_target_properties(
++ ${LIBNAME}
++
++ PROPERTIES
++ VERSION "${PROJECT_VERSION}"
++ SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}"
++)
++
+ install(TARGETS ${LIBNAME}
+ DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE})
+--
+2.43.0
+
diff --git a/testing/persistent-cache-cpp/APKBUILD b/testing/persistent-cache-cpp/APKBUILD
new file mode 100644
index 00000000000..59bdd98cc49
--- /dev/null
+++ b/testing/persistent-cache-cpp/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=persistent-cache-cpp
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="Cache of key-value pairs with persistent storage for C++ 11"
+url="https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp"
+arch="all"
+license="LGPL-3.0-only"
+depends="
+ dconf
+ "
+depends_dev="
+ boost-dev
+ leveldb-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ cmake-extras
+ gtest-dev
+ samurai
+ "
+checkdepends="
+ xvfb-run
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/archive/$pkgver/persistent-cache-cpp-$pkgver.tar.gz
+ 0001-src-core-Add-library-versioning.patch
+ remove-docs-html-from-makefile.patch
+ "
+options="!check" # 91% tests passed, 1 tests failed out of 11
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+752c758155510c2168c2a4982938867e133b8d8b2bbf3882bce8a2d83fd1547bbcee07dcd239b1732d1dda68b645f5e5fb1c02d1b316218fbb82fb8463ef8afb persistent-cache-cpp-1.0.7.tar.gz
+0bdfcdf80548fe827850f8813bf084e11cddd6bf596093d8d005528ecaa86fc0b752d07432fa588e1e95e292cc0c0df6c16e4f957aa016de7a844d20b7f65a9c 0001-src-core-Add-library-versioning.patch
+36ff4a45f203df026c595b0bdc39dd1a40a8fd43dbc30d06184bbfa9a34d26a469e2faca8574b7a18bfbdcd6da36a1f1dd7f486a01f59db4d7d1264506916f30 remove-docs-html-from-makefile.patch
+"
diff --git a/testing/persistent-cache-cpp/remove-docs-html-from-makefile.patch b/testing/persistent-cache-cpp/remove-docs-html-from-makefile.patch
new file mode 100644
index 00000000000..f5d44564ca7
--- /dev/null
+++ b/testing/persistent-cache-cpp/remove-docs-html-from-makefile.patch
@@ -0,0 +1,22 @@
+From 3c00fe8ce7eb6e7e0fbe79457e0f424da0dd01dd Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Thu, 26 Oct 2023 02:45:23 -0400
+Subject: [PATCH] remove docs/html from makefile
+
+---
+ CMakeLists.txt | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0f0d04f..7e8b0e8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -126,5 +126,3 @@ add_doxygen(
+ *::Priv
+ ALL
+ )
+-install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html
+- DESTINATION share/doc/${LIBNAME})
+--
+2.42.0
+
diff --git a/testing/pest-language-server/APKBUILD b/testing/pest-language-server/APKBUILD
new file mode 100644
index 00000000000..d4eb01ccb26
--- /dev/null
+++ b/testing/pest-language-server/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=pest-language-server
+pkgver=0.3.9
+pkgrel=0
+pkgdesc="Language Server for Pest"
+url="https://github.com/pest-parser/pest-ide-tools"
+arch="all"
+license="Apache-2.0"
+makedepends="cargo cargo-auditable openssl-dev"
+source="
+ https://github.com/pest-parser/pest-ide-tools/archive/refs/tags/v$pkgver/pest-ls-$pkgver.tar.gz
+ use-openssl.patch
+ "
+builddir="$srcdir/pest-ide-tools-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked --target="$CBUILD"
+}
+
+build() {
+ cargo auditable build -p pest-language-server --frozen --release
+}
+
+check() {
+ cargo test -p pest-language-server --frozen
+}
+
+package() {
+ install -Dm755 target/release/pest-language-server "$pkgdir"/usr/bin/pest-language-server
+}
+
+sha512sums="
+cb9eaaf7798395680af2c00415f4a8cd2a3b875c44c3304b1a605308dccf9756adc991285c26f67c73ad0f4775d1ef724e5349eecce1bd4f461c9171674d2b9d pest-ls-0.3.9.tar.gz
+37b106a44b32ba80e867d51f33499d148c3ffceb17c57482006e64b199575799dc42effcf325f7042dd3bf17ebddc59f4aaa40282663fd96b3dddc21534eb92d use-openssl.patch
+"
diff --git a/testing/pest-language-server/use-openssl.patch b/testing/pest-language-server/use-openssl.patch
new file mode 100644
index 00000000000..ddfce320b79
--- /dev/null
+++ b/testing/pest-language-server/use-openssl.patch
@@ -0,0 +1,531 @@
+--- ./language-server/Cargo.toml.orig
++++ ./language-server/Cargo.toml
+@@ -17,7 +17,7 @@
+ pest_meta = "2.7.8"
+ reqwest = { version = "0.12.2", features = [
+ "json",
+- "rustls-tls",
++ "native-tls",
+ ], default-features = false }
+ serde = { version = "1.0.197", features = ["derive"] }
+ serde_json = "1.0.115"
+--- ./Cargo.lock.orig
++++ ./Cargo.lock
+@@ -130,6 +130,12 @@
+ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+ [[package]]
++name = "bitflags"
++version = "2.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
++
++[[package]]
+ name = "block-buffer"
+ version = "0.10.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -228,6 +234,22 @@
+ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+ [[package]]
++name = "core-foundation"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
++dependencies = [
++ "core-foundation-sys",
++ "libc",
++]
++
++[[package]]
++name = "core-foundation-sys"
++version = "0.8.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
++
++[[package]]
+ name = "cpufeatures"
+ version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -305,12 +327,43 @@
+ ]
+
+ [[package]]
++name = "errno"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
++dependencies = [
++ "libc",
++ "windows-sys 0.52.0",
++]
++
++[[package]]
++name = "fastrand"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
++
++[[package]]
+ name = "fnv"
+ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+ [[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
++[[package]]
+ name = "form_urlencoded"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -422,17 +475,6 @@
+ ]
+
+ [[package]]
+-name = "getrandom"
+-version = "0.2.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+-dependencies = [
+- "cfg-if",
+- "libc",
+- "wasi",
+-]
+-
+-[[package]]
+ name = "gimli"
+ version = "0.28.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -535,19 +577,18 @@
+ ]
+
+ [[package]]
+-name = "hyper-rustls"
+-version = "0.26.0"
++name = "hyper-tls"
++version = "0.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
++checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
+ dependencies = [
+- "futures-util",
+- "http",
++ "bytes",
++ "http-body-util",
+ "hyper",
+ "hyper-util",
+- "rustls",
+- "rustls-pki-types",
++ "native-tls",
+ "tokio",
+- "tokio-rustls",
++ "tokio-native-tls",
+ "tower-service",
+ ]
+
+@@ -629,12 +670,24 @@
+ ]
+
+ [[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
+ name = "libc"
+ version = "0.2.153"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+ [[package]]
++name = "linux-raw-sys"
++version = "0.4.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
++
++[[package]]
+ name = "lock_api"
+ version = "0.4.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -656,7 +709,7 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c66bfd44a06ae10647fe3f8214762e9369fd4248df1350924b4ef9e770a85ea1"
+ dependencies = [
+- "bitflags",
++ "bitflags 1.3.2",
+ "serde",
+ "serde_json",
+ "serde_repr",
+@@ -696,6 +749,24 @@
+ ]
+
+ [[package]]
++name = "native-tls"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
++dependencies = [
++ "lazy_static",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
++]
++
++[[package]]
+ name = "nias"
+ version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -727,6 +798,50 @@
+ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+ [[package]]
++name = "openssl"
++version = "0.10.64"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
++dependencies = [
++ "bitflags 2.5.0",
++ "cfg-if",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
++
++[[package]]
++name = "openssl-sys"
++version = "0.9.101"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
+ name = "parking_lot"
+ version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -864,6 +979,12 @@
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+ [[package]]
++name = "pkg-config"
++version = "0.3.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
++
++[[package]]
+ name = "proc-macro2"
+ version = "1.0.79"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -887,7 +1008,7 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+ dependencies = [
+- "bitflags",
++ "bitflags 1.3.2",
+ ]
+
+ [[package]]
+@@ -921,66 +1042,48 @@
+ "http-body",
+ "http-body-util",
+ "hyper",
+- "hyper-rustls",
++ "hyper-tls",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
++ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+- "rustls",
+ "rustls-pemfile",
+- "rustls-pki-types",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+- "tokio-rustls",
++ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+- "webpki-roots",
+ "winreg",
+ ]
+
+ [[package]]
+-name = "ring"
+-version = "0.17.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+-dependencies = [
+- "cc",
+- "cfg-if",
+- "getrandom",
+- "libc",
+- "spin",
+- "untrusted",
+- "windows-sys 0.52.0",
+-]
+-
+-[[package]]
+ name = "rustc-demangle"
+ version = "0.1.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+ [[package]]
+-name = "rustls"
+-version = "0.22.3"
++name = "rustix"
++version = "0.38.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c"
++checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+ dependencies = [
+- "log",
+- "ring",
+- "rustls-pki-types",
+- "rustls-webpki",
+- "subtle",
+- "zeroize",
++ "bitflags 2.5.0",
++ "errno",
++ "libc",
++ "linux-raw-sys",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+@@ -993,23 +1096,6 @@
+ ]
+
+ [[package]]
+-name = "rustls-pki-types"
+-version = "1.4.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "868e20fada228fefaf6b652e00cc73623d54f8171e7352c18bb281571f2d92da"
+-
+-[[package]]
+-name = "rustls-webpki"
+-version = "0.102.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+-dependencies = [
+- "ring",
+- "rustls-pki-types",
+- "untrusted",
+-]
+-
+-[[package]]
+ name = "rusty-hook"
+ version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1037,12 +1123,44 @@
+ ]
+
+ [[package]]
++name = "schannel"
++version = "0.1.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
++dependencies = [
++ "windows-sys 0.52.0",
++]
++
++[[package]]
+ name = "scopeguard"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+ [[package]]
++name = "security-framework"
++version = "2.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
++dependencies = [
++ "bitflags 1.3.2",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
++]
++
++[[package]]
++name = "security-framework-sys"
++version = "2.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
++dependencies = [
++ "core-foundation-sys",
++ "libc",
++]
++
++[[package]]
+ name = "serde"
+ version = "1.0.197"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1142,24 +1260,12 @@
+ ]
+
+ [[package]]
+-name = "spin"
+-version = "0.9.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+-
+-[[package]]
+ name = "strsim"
+ version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+ [[package]]
+-name = "subtle"
+-version = "2.5.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+-
+-[[package]]
+ name = "syn"
+ version = "2.0.53"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1177,6 +1283,18 @@
+ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+ [[package]]
++name = "tempfile"
++version = "3.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
++dependencies = [
++ "cfg-if",
++ "fastrand",
++ "rustix",
++ "windows-sys 0.52.0",
++]
++
++[[package]]
+ name = "text-utils"
+ version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1261,13 +1379,12 @@
+ ]
+
+ [[package]]
+-name = "tokio-rustls"
+-version = "0.25.0"
++name = "tokio-native-tls"
++version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
++checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+ dependencies = [
+- "rustls",
+- "rustls-pki-types",
++ "native-tls",
+ "tokio",
+ ]
+
+@@ -1440,12 +1557,6 @@
+ checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+ [[package]]
+-name = "untrusted"
+-version = "0.9.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+-
+-[[package]]
+ name = "url"
+ version = "2.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1464,6 +1575,12 @@
+ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+ [[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
++[[package]]
+ name = "version_check"
+ version = "0.9.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1571,15 +1688,6 @@
+ ]
+
+ [[package]]
+-name = "webpki-roots"
+-version = "0.26.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+-dependencies = [
+- "rustls-pki-types",
+-]
+-
+-[[package]]
+ name = "winapi"
+ version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1751,9 +1859,3 @@
+ "cfg-if",
+ "windows-sys 0.48.0",
+ ]
+-
+-[[package]]
+-name = "zeroize"
+-version = "1.7.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/testing/pfetch/APKBUILD b/testing/pfetch/APKBUILD
new file mode 100644
index 00000000000..92799f786f3
--- /dev/null
+++ b/testing/pfetch/APKBUILD
@@ -0,0 +1,19 @@
+# Contributor: Johannes Heimansberg <git@jhe.dedyn.io>
+# Maintainer: Johannes Heimansberg <git@jhe.dedyn.io>
+pkgname=pfetch
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="System information tool written in POSIX sh"
+url="https://github.com/dylanaraps/pfetch"
+arch="noarch"
+license="MIT"
+options="!check" # There is no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/dylanaraps/pfetch/archive/$pkgver.tar.gz"
+
+package() {
+ install -Dm755 pfetch "$pkgdir"/usr/bin/pfetch
+}
+
+sha512sums="
+868901bec6ae8999ad40fcb94bdf804969a3dfd724dc554d62f59982daf48d359094764b2e45d4816983d4f46e38de30f0bcb646ecd95bf3263ba128b87a1ddf pfetch-0.6.0.tar.gz
+"
diff --git a/testing/pfqueue/APKBUILD b/testing/pfqueue/APKBUILD
new file mode 100644
index 00000000000..fb31a03e436
--- /dev/null
+++ b/testing/pfqueue/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=pfqueue
+pkgver=0.5.6
+pkgrel=1
+pkgdesc="queue scanner for postfix"
+url="https://pfqueue.sourceforge.net/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="autoconf automake libtool ncurses-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://downloads.sourceforge.net/pfqueue/$pkgver/pfqueue-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ autoreconf -iv
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+1bb622bba6d72ff98ee862d794854debcebabeff24cb6f06cecb06513f453cbb09f0cb8e5fa4c26bfde03aadbc5e803692279427021ccda10749a6c5a326bfb9 pfqueue-0.5.6.tar.gz
+"
diff --git a/testing/pgcli/APKBUILD b/testing/pgcli/APKBUILD
deleted file mode 100644
index a27f6fc9590..00000000000
--- a/testing/pgcli/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=pgcli
-pkgver=3.0.0
-pkgrel=0
-pkgdesc="Postgres CLI with autocompletion and syntax highlighting"
-options="!check" # Tests fail
-url="https://www.pgcli.com"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3
- py3-pgspecial
- py3-click
- py3-pygments
- py3-prompt_toolkit>2.0.0
- py3-psycopg2
- py3-sqlparse<0.4.0
- py3-configobj
- py3-humanize
- py3-wcwidth
- py3-cli_helpers>1.0.0"
-checkdepends="pytest py3-mock"
-makedepends="python3-dev"
-source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/p/pgcli/pgcli-$pkgver.tar.gz"
-
-check() {
- python3 -m pytest tests
-}
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="7c89f44d6054e0b6ddd2203c1447e4f66ea55872c5c35586b476c7248afdd784e257784adf995df39292527fd5d71339637780d50a703f6dca5055400c033376 pgcli-3.0.0.tar.gz"
diff --git a/testing/phabricator/APKBUILD b/testing/phabricator/APKBUILD
deleted file mode 100644
index 1f8c7f2957d..00000000000
--- a/testing/phabricator/APKBUILD
+++ /dev/null
@@ -1,82 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=phabricator
-pkgver=0_git20180717
-pkgrel=0
-pkgdesc="Open software engineering platform and fun adventure game"
-url="http://phacility.com/phabricator/"
-arch="noarch"
-license="Apache-2.0"
-pkggroups=www-data
-depends="
- php7
- php7-apcu
- php7-ctype
- php7-curl
- php7-fileinfo
- php7-fpm
- php7-gd
- php7-iconv
- php7-json
- php7-mbstring
- php7-mysqli
- php7-opcache
- php7-pcntl
- php7-posix
-
- libphutil
- arcanist
- "
-subpackages="$pkgname-openrc"
-options="!check" # no checks
-source="https://dev.alpinelinux.org/archive/phabricator/phabricator-$pkgver.tar.gz
- phd.initd
- "
-builddir="$srcdir/phabricator-stable"
-
-build() {
- :
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/usr/share/php/$pkgname \
- "$pkgdir"/usr/bin
- for i in bin conf externals resources scripts src support webroot; do
- cp -r "$builddir"/$i "$pkgdir"/usr/share/php/$pkgname/
- done
-
- install -dm775 -g www-data "$pkgdir"/var/lib/$pkgname/files \
- "$pkgdir"/var/lib/$pkgname/repos
-
- for conf in $(find "$pkgdir"/usr/share/php/$pkgname/conf/* -type d); do
- mkdir -p "$pkgdir"/etc/$pkgname
- mv "$conf" "$pkgdir"/etc/$pkgname/
- chmod 775 "$pkgdir"/etc/$pkgname
- chmod 664 "$pkgdir"/etc/$pkgname/*/*
- chgrp www-data -R "$pkgdir"/etc/$pkgname
- ln -sf /etc/$pkgname/"${conf##*/}" "$conf"
- done
-
- install -Dm755 "$srcdir"/phd.initd "$pkgdir"/etc/init.d/phd
-}
-
-snapshot() {
- local pkgver=0_git$(date +%Y%m%d)
- msg "Grabbing the latest stable snapshot"
- mkdir -p "$srcdir"
- wget -O "$srcdir"/$pkgname-$pkgver.tar.gz \
- https://github.com/phacility/phabricator/archive/stable.tar.gz
- ssh distfiles.alpinelinux.org \
- "mkdir -p archive/$pkgname/"
- scp "$srcdir"/$pkgname-$pkgver.tar.gz \
- dev.alpinelinux.org:/archive/$pkgname/
- sed -i -e "s/^pkgver=.*/pkgver=$pkgver/" \
- "$startdir"/APKBUILD
- sed -i -e "s/^pkgrel=.*/pkgrel=0/" \
- "$startdir"/APKBUILD
- abuild checksum
-}
-
-sha512sums="b749c6b0aaa759626ee753d128b802c8e8f6262a7e8bdc2261f0ab6b5873c941dfd3917eb7e53bed0fa263d2356890f74e08c1a7eebb5836ee1aa6af52c7f976 phabricator-0_git20180717.tar.gz
-aabcb6ccc660041cdf13d0c5070b205c8cc2aa09d7801b8c9d06da104cc3aca6c03597291c8f9086f8918601280377df66adf9f7b017b517e78c84cf0f92ea7b phd.initd"
diff --git a/testing/phabricator/phd.initd b/testing/phabricator/phd.initd
deleted file mode 100644
index d175e03e8c9..00000000000
--- a/testing/phabricator/phd.initd
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/share/php/phabricator/bin/phd"
-command_args="start"
-start_stop_daemon_args="--quiet"
-
-stop() {
- $command stop
-}
-
diff --git a/testing/phonon-backend-vlc/APKBUILD b/testing/phonon-backend-vlc/APKBUILD
new file mode 100644
index 00000000000..220572f0c05
--- /dev/null
+++ b/testing/phonon-backend-vlc/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: team/kde <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=kde-other
+pkgname=phonon-backend-vlc
+pkgver=0.12.0
+pkgrel=0
+pkgdesc="Phonon VLC backend"
+url="https://userbase.kde.org/Phonon"
+# armhf blocked by extra-cmake-modules
+# s390x blocked by vlc
+arch="all !armhf !s390x"
+license="LGPL-2.1-or-later"
+makedepends="
+ extra-cmake-modules
+ phonon-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ samurai
+ vlc-dev
+ "
+subpackages="$pkgname-lang $pkgname-qt5 $pkgname-qt6"
+_repo_url="https://invent.kde.org/libraries/phonon-vlc.git"
+source="https://download.kde.org/stable/phonon/phonon-backend-vlc/$pkgver/phonon-backend-vlc-$pkgver.tar.xz"
+options="!check" # No tests available
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+qt5() {
+ amove usr/lib/qt5/plugins/phonon4qt5_backend
+}
+
+qt6() {
+ amove usr/lib/qt5/plugins/phonon4qt6_backend
+}
+
+sha512sums="
+78f5ead829d5025c7cb9e01b33819514d795651d1d932c03bd8cc2ad5d427e5aaaeeb6016820d5a7bb9907f6df1142a0fbc097830d7c63b01f77d2167a0c9264 phonon-backend-vlc-0.12.0.tar.xz
+"
diff --git a/testing/phoronix-test-suite/APKBUILD b/testing/phoronix-test-suite/APKBUILD
index c0ff74cbd1b..1f86d16b1ce 100644
--- a/testing/phoronix-test-suite/APKBUILD
+++ b/testing/phoronix-test-suite/APKBUILD
@@ -1,16 +1,23 @@
# Contributor: Lucas Ramage <ramage.lucas@protonmail.com>
-# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
pkgname=phoronix-test-suite
-pkgver=9.6.1
-pkgrel=0
+pkgver=10.8.4
+pkgrel=2
pkgdesc="The most comprehensive testing and benchmarking platform available for Linux"
url="https://www.phoronix-test-suite.com/"
arch="noarch"
license="GPL-3.0-or-later"
-depends="php7 php7-dom php7-zip php7-json php7-simplexml"
-subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
-provides="phoromatic-server phoromatic-client"
-source="$pkgname-$pkgver.tar.gz::https://github.com/phoronix-test-suite/phoronix-test-suite/archive/v$pkgver.tar.gz"
+_php=php82
+depends="$_php $_php-dom $_php-zip $_php-simplexml $_php-pcntl $_php-curl"
+subpackages="$pkgname-doc $pkgname-bash-completion"
+provides="phoromatic-server=$pkgver-r$pkgrel phoromatic-client=$pkgver-r$pkgrel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/phoronix-test-suite/phoronix-test-suite/archive/v$pkgver.tar.gz
+ php82-1.patch::https://github.com/phoronix-test-suite/phoronix-test-suite/commit/f9f5ed8606299f73ef2adc7173cc52089cede6c8.diff
+ php82-2.patch::https://github.com/phoronix-test-suite/phoronix-test-suite/commit/cd59f0a38a036b969e862cd47e1dbfa1cbb484d2.diff
+ php82-3.patch::https://github.com/phoronix-test-suite/phoronix-test-suite/commit/d44c65a62ec8be2f25fb936e39d531ea28878576.diff
+ appdata.patch
+ php-discovery.patch
+ "
options="!check" # no tests
package() {
@@ -21,12 +28,11 @@ package() {
mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions
}
-bashcomp() {
- depends=""
- pkgdesk="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion/completions
-}
-
-sha512sums="145c4b2e280f2fb1ceaa4636867bfa0be5a8695903e56edec0dc6be4d5a207fc13fc8a5111f26b91ba129663a8b8e69dade1265ae5f2d925195803a4ad90f8d3 phoronix-test-suite-9.6.1.tar.gz"
+sha512sums="
+ca79369fd7752164dc5315c16c2e8dce615f4c9cf352674193ac10ad9025de5d1171dc307f2bab486da3a945bf828aa124e9896f929a0854272cee7847f3d578 phoronix-test-suite-10.8.4.tar.gz
+7b761fec331ff9a2cc95dff382c4e99df6d65433de0a6057d034ff8a1940821b292fc0f462ad0d8c23f69163a195705b34dd82708d9fd789f2113397daffc98b php82-1.patch
+effb085163a837665813d99d4be689ba4182aa43cf3f7874a34e5195e5bdd70869c8a3bb7072459f309a34864ae13ac9da4829c840bb57da3fce7368107830e0 php82-2.patch
+fb7294989654c34880365c48932725b533a726f37d00f720869265683384c24cee4a9c6fb4e629ee0521f04a017b13f1160da0cfb129aac423d02d567f92f050 php82-3.patch
+03419864bce834bf8762117a481aa79af8ab7d5a1272c085d9b8b58bfc965b00e2f479f29962b9f1fa5f5240805203cdfb652f76e477163d4eb15f35547a3176 appdata.patch
+0005e338d214f46a845a2607205f027827a3420005a2ef6ffc253fb621f22f9283ce4e4a16b6889dc72af73e868f06557acd03b2dc9a8a76b08deb42c8e8751c php-discovery.patch
+"
diff --git a/testing/phoronix-test-suite/appdata.patch b/testing/phoronix-test-suite/appdata.patch
new file mode 100644
index 00000000000..9e13a127df2
--- /dev/null
+++ b/testing/phoronix-test-suite/appdata.patch
@@ -0,0 +1,22 @@
+diff --git a/install-sh b/install-sh
+index f6228cd..c7bd0e8 100755
+--- a/install-sh
++++ b/install-sh
+@@ -50,7 +50,7 @@ rm -rf $DESTDIR$INSTALL_PREFIX/share/phoronix-test-suite/
+ rm -rf $DESTDIR$INSTALL_PREFIX/share/doc/phoronix-test-suite/
+
+ mkdir -p $DESTDIR$INSTALL_PREFIX/bin/
+-mkdir -p $DESTDIR$INSTALL_PREFIX/share/appdata/
++mkdir -p $DESTDIR$INSTALL_PREFIX/share/metainfo/
+ mkdir -p $DESTDIR$INSTALL_PREFIX/share/applications/
+ mkdir -p $DESTDIR$INSTALL_PREFIX/share/icons/hicolor/48x48/apps/
+ mkdir -p $DESTDIR$INSTALL_PREFIX/share/man/man1/
+@@ -74,7 +74,7 @@ cp pts-core/static/bash_completion $DESTDIR$INSTALL_PREFIX/../etc/bash_completio
+ cp pts-core/static/images/phoronix-test-suite.png $DESTDIR$INSTALL_PREFIX/share/icons/hicolor/48x48/apps/phoronix-test-suite.png
+ cp pts-core/static/phoronix-test-suite.desktop $DESTDIR$INSTALL_PREFIX/share/applications/
+ cp pts-core/static/phoronix-test-suite-launcher.desktop $DESTDIR$INSTALL_PREFIX/share/applications/
+-cp pts-core/static/phoronix-test-suite.appdata.xml $DESTDIR$INSTALL_PREFIX/share/appdata/
++cp pts-core/static/phoronix-test-suite.appdata.xml $DESTDIR$INSTALL_PREFIX/share/metainfo/
+
+ mkdir -p $DESTDIR$INSTALL_PREFIX/../usr/lib/systemd/system/
+ cp deploy/*-systemd/*.service $DESTDIR$INSTALL_PREFIX/../usr/lib/systemd/system/
diff --git a/testing/phoronix-test-suite/php-discovery.patch b/testing/phoronix-test-suite/php-discovery.patch
new file mode 100644
index 00000000000..9d1975ac33e
--- /dev/null
+++ b/testing/phoronix-test-suite/php-discovery.patch
@@ -0,0 +1,14 @@
+--- a/phoronix-test-suite
++++ b/phoronix-test-suite
+@@ -67,9 +67,9 @@
+ if [ ! "X$PHP_BIN" = "X" ] && [ -x $PHP_BIN ]
+ then
+ export PHP_BIN=$PHP_BIN
+-elif [ -x /usr/bin/php8 ] || [ -x /usr/local/bin/php8 ] || [ -x /usr/pkg/bin/php8 ]
++elif [ -x /usr/bin/php82 ] || [ -x /usr/local/bin/php8 ] || [ -x /usr/pkg/bin/php8 ]
+ then
+- export PHP_BIN="php8"
++ export PHP_BIN="php82"
+ elif [ -x /usr/bin/php7 ] || [ -x /usr/local/bin/php7 ] || [ -x /usr/pkg/bin/php7 ]
+ then
+ export PHP_BIN="php7"
diff --git a/testing/php7-diseval/APKBUILD b/testing/php7-diseval/APKBUILD
deleted file mode 100644
index e29917b39c5..00000000000
--- a/testing/php7-diseval/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
-# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
-pkgname=php7-diseval
-_pkgreal=diseval
-pkgver=0.1
-pkgrel=1
-pkgdesc="Disable eval in php7 (suhosin is not stable yet for php7)"
-url="https://github.com/mk-j/PHP_diseval_extension"
-arch="all"
-license="MIT"
-depends="php7-common"
-makedepends="php7-dev autoconf re2c"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mk-j/PHP_diseval_extension/archive/$pkgver.tar.gz"
-builddir="$srcdir/PHP_diseval_extension-$pkgver/source"
-
-build() {
- cd "$builddir"
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- cd "$builddir"
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- cd "$builddir"
- make INSTALL_ROOT="$pkgdir" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="14cddbebe1cb1bd114dd6f1ea122b262340ed5894178d7332f4168753c07670925fbbf9bae444a726b8d1e1cf28fc8f2e45d511e0523ac30ab37a1fb9f758c8e php7-diseval-0.1.tar.gz"
diff --git a/testing/php7-gearman/APKBUILD b/testing/php7-gearman/APKBUILD
deleted file mode 100644
index b91722a93e1..00000000000
--- a/testing/php7-gearman/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
-pkgname=php7-gearman
-_pkgreal=gearman
-_prefix=pecl-gearman
-pkgver=2.0.6
-_pkgver=${pkgver/_rc/RC}
-pkgrel=0
-pkgdesc="PHP7 wrapper to libgearman"
-url="https://github.com/wcgallego/pecl-gearman"
-arch="all"
-license="PHP"
-options="!check" # Requires server running
-depends=
-makedepends="gearman-dev autoconf libtool php7-dev php7-pcntl"
-install=
-subpackages=
-source="https://github.com/wcgallego/$_prefix/archive/$_pkgreal-$_pkgver.zip"
-builddir="$srcdir/$_prefix-$_pkgreal-$_pkgver"
-
-build() {
- cd "$builddir"
- phpize7
- ./configure \
- --prefix=/usr \
- --with-php-config=/usr/bin/php-config7
- make
-}
-
-check() {
- cd "$builddir"
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- cd "$builddir"
- make INSTALL_ROOT="$pkgdir" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > \
- "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="5c159f766bd8674d387760bbd90ec9de0e54a677917f56e148db8b15c83c7d81ce0f1c2be68120e70fe4b5b70f502d0562f6038934e03997b3f480227ea30762 gearman-2.0.6.zip"
diff --git a/testing/php7-libvirt-php/APKBUILD b/testing/php7-libvirt-php/APKBUILD
deleted file mode 100644
index fffd9f920e4..00000000000
--- a/testing/php7-libvirt-php/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Fernando Casas Schossow <casasfernando@outlook.com>
-# Maintainer: Fernando Casas Schossow <casasfernando@outlook.com>
-pkgname=php7-libvirt-php
-pkgver=0.5.5
-pkgrel=0
-pkgdesc="PHP language bindings for Libvirt API. For more details see: http://www.libvirt.org/php/"
-url="https://libvirt.org/php/"
-arch="all !x86 !armhf !armv7" # segfault on x86, armhf and armv7
-license="LGPL-2.1-only"
-makedepends="autoconf libvirt-dev libxml2-dev libxml2-utils libxslt php7-dev php7-pecl-imagick libtool linux-headers"
-subpackages="$pkgname-doc"
-source="https://libvirt.org/sources/php/libvirt-php-$pkgver.tar.gz
- offline-tests.patch
- musl-idn.patch
- musl-fixes.patch"
-builddir="$srcdir/libvirt-php-$pkgver"
-
-prepare() {
- default_prepare
- autoconf
-}
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-check() {
- make check
- php7 --define extension=src/.libs/libvirt-php.so --ri libvirt
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
- rm "$pkgdir/usr/lib/php7/modules/libvirt-php.la"
-}
-
-sha512sums="2ea263561a0bf5d155314e06dcf3c3b5c278640bc5edfa674cdd777cb6d0810bda0492c6cf77a02bc88fb6aa99b0ff1f0cbaeea87ff2e45bff9b5774a2507684 libvirt-php-0.5.5.tar.gz
-a212746438428537422716f5883f6941704137cd2cdceafb965fec8306c81c3bc4a4ce1caf65efc2a033823e8eb6f5afa1b452f9a191c50cd07d4c979e10d5fd offline-tests.patch
-cae4423b361c7735052ae1c1ec4e24090486020d4f3aaf87c16991b9fb90960d90cd8bc392bb017449525fc4567de1080e3d29337b2d756f46edac672b2bd81b musl-idn.patch
-732f22ca206187b7a0ea41fe2d63808c8afc0994f941fbbb933dbde219f597d108aa3ed10b67e074fe90ac6ab571ee0dc70ef725ce8ed746d8f6e4689e972291 musl-fixes.patch"
diff --git a/testing/php7-libvirt-php/musl-fixes.patch b/testing/php7-libvirt-php/musl-fixes.patch
deleted file mode 100644
index 92388095b40..00000000000
--- a/testing/php7-libvirt-php/musl-fixes.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/generate-api-docs.c b/tools/generate-api-docs.c
-index 3b88f16..12c0283 100644
---- a/tools/generate-api-docs.c
-+++ b/tools/generate-api-docs.c
-@@ -129,7 +129,9 @@ void free_functions(int function_number)
- free(functions[i].args[j]);
- free(functions[i].name);
- free(functions[i].desc);
-- free(functions[i].returns);
-+ //Commenting the line below as when compiled with musl libc it is creating a SIGSEGV
-+ //Moreover this program is only used to create libvirt-php html documentation at compile time
-+ //free(functions[i].returns);
- }
- free(functions);
- }
-
diff --git a/testing/php7-libvirt-php/musl-idn.patch b/testing/php7-libvirt-php/musl-idn.patch
deleted file mode 100644
index 323a5f56f1c..00000000000
--- a/testing/php7-libvirt-php/musl-idn.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/libvirt-php.c
-+++ b/src/libvirt-php.c
-@@ -1168,7 +1168,7 @@
-
- /* need to get FQDN of the local name */
- memset(&hints, 0, sizeof(hints));
-- hints.ai_flags = AI_CANONNAME|AI_CANONIDN;
-+ hints.ai_flags = AI_CANONNAME;
- hints.ai_family = AF_UNSPEC;
-
- /* could not get FQDN or got localhost, use whatever gethostname gave us */
diff --git a/testing/php7-libvirt-php/offline-tests.patch b/testing/php7-libvirt-php/offline-tests.patch
deleted file mode 100644
index 90826023f00..00000000000
--- a/testing/php7-libvirt-php/offline-tests.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/tests/runtests.sh
-+++ b/tests/runtests.sh
-@@ -8,7 +8,7 @@
- "test-domain-define-undefine"
- "test-domain-define-create-destroy"
- "test-domain-create" "test-domain-create-and-get-xpath" "test-domain-create-and-coredump"
-- "test-install" "test-get-models" "test-get-models-unsupported-hw" "test-domain-create-get-metadata"
-+ "test-install" "test-get-models-unsupported-hw" "test-domain-create-get-metadata"
- )
-
- run_test()
-@@ -41,12 +41,12 @@
- fi
- done
-
--qemu-img create -f qcow2 /tmp/example-test.qcow2 1M > /dev/null
--run_test "test-domain-snapshot" $nf; ret="$?"
--if [ "x$ret" == "x1" ]; then
-- error=1
--fi
--rm -f /tmp/example-test.qcow2
-+#qemu-img create -f qcow2 /tmp/example-test.qcow2 1M > /dev/null
-+#run_test "test-domain-snapshot" $nf; ret="$?"
-+#if [ "x$ret" == "x1" ]; then
-+# error=1
-+#fi
-+#rm -f /tmp/example-test.qcow2
-
- if [ "x$error" == "x0" ]; then
- echo "All tests passed successfully"
diff --git a/testing/php7-pdlib/APKBUILD b/testing/php7-pdlib/APKBUILD
deleted file mode 100644
index 6b5af2cffbd..00000000000
--- a/testing/php7-pdlib/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: goodspb <goodspb.luo@gmail.com>
-# Maintainer: Adriaan Groenenboom <agboom@pm.me>
-pkgname=php7-pdlib
-_pkgreal=pdlib
-pkgver=1.0
-pkgrel=0
-pkgdesc="PHP extension for Dlib"
-url="https://github.com/goodspb/pdlib"
-arch="all !ppc64le !mips !mips64" # build fails https://github.com/goodspb/pdlib/issues/19
-license="MIT"
-depends="php7-common dlib"
-makedepends="php7-dev pkgconf php7-bz2"
-source="$pkgname-$pkgver.tar.gz::https://github.com/goodspb/$_pkgreal/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- # Remove broken tests https://github.com/goodspb/pdlib/issues/14
- rm \
- tests/chinese_whispers_wrong_arg_type_error.phpt \
- tests/cnn_face_detection_ctor_error.phpt \
- tests/face_landmark_detection_ctor_error.phpt \
- tests/face_recognition_ctor_error.phpt \
- tests/integration_face_recognition.phpt # Downloads huge images
-
- # Tests require bz2 extension which is not bundled
- sed -i 's#PHP_TEST_SHARED_EXTENSIONS = `#PHP_TEST_SHARED_EXTENSIONS = -d extension=/usr/lib/php7/modules/bz2.so `#' Makefile
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="1ff8c3b55d69321e1b1bcec6f8f41240138adfe0298269f857f5ee9655d783324f16a371f61b8eb97638d7014a724faa4c80e81b67b51c34e6203a309abeacae php7-pdlib-1.0.tar.gz"
diff --git a/testing/php7-pecl-decimal/APKBUILD b/testing/php7-pecl-decimal/APKBUILD
deleted file mode 100644
index 95ca57b2195..00000000000
--- a/testing/php7-pecl-decimal/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-pecl-decimal
-_pkgreal=decimal
-pkgver=2.0.0
-pkgrel=0
-pkgdesc="Correctly-rounded arbitrary precision decimal floating-point arithmetic in PHP."
-url="https://pecl.php.net/package/decimal"
-arch="all"
-license="MIT"
-depends="php7-json"
-makedepends="php7-dev re2c mpdecimal"
-source="https://pecl.php.net/get/$_pkgreal-$pkgver.tgz
- fix-build.patch
- fix-test.patch
- fix-tests.patch"
-builddir="$srcdir/$_pkgreal-$pkgver"
-provides="php7-decimal=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-decimal" # for backward compatibility
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test PHP_TEST_SHARED_EXTENSIONS=" \
- -d extension=/usr/lib/php7/modules/json.so \
- -d extension=modules/$_pkgreal.so"
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="765a2871af38338d1020730936d70c7d493e07c4d0fe6da5b07bf1b5f6bd7ae45239351f9202ced8f579ad1e1c909fbfede1350cc1ec85e0f4cb5f1ef8617cfe decimal-2.0.0.tgz
-8db95e40c19806d2fbb88e8132a3f679f5856ce73548d0b72bb1c806fdb59bfadad0260dd89962f4ac4c41b388d98e8ec988b5bd989e582c9cffc521e832b6d7 fix-build.patch
-36d24c2c2fd310d64f6c326ac5241c4732d323608d6dfc7e76d906cd30282e94bdbc5851f1de3e4e2056f005761af52c22afc7a7b672dc4a718f46a74bb75714 fix-test.patch
-f972d727fba7bbdf827c2b5ba0cf7588b7e9234f3e5989f06dc92c1a8c34516fdca3e1089e98e3a8c092328a04f524d7d6a0a017869188e219f4bcc1e869a261 fix-tests.patch"
diff --git a/testing/php7-pecl-decimal/fix-build.patch b/testing/php7-pecl-decimal/fix-build.patch
deleted file mode 100644
index dc6b75ec02b..00000000000
--- a/testing/php7-pecl-decimal/fix-build.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From d983b8f76f59996339a434c40d1f57703fadbd42 Mon Sep 17 00:00:00 2001
-From: Remi Collet <remi@remirepo.net>
-Date: Tue, 4 Feb 2020 08:25:35 +0100
-Subject: [PATCH] fix #33 remomve unused function
-
----
- src/convert.c | 15 +--------------
- src/convert.h | 2 --
- 2 files changed, 1 insertion(+), 16 deletions(-)
-
-diff --git a/src/convert.c b/src/convert.c
-index 4136a35..77581e3 100644
---- a/src/convert.c
-+++ b/src/convert.c
-@@ -444,19 +444,6 @@ zend_string *php_decimal_rational_to_sci(const php_rational_t *obj, zend_long pr
- return str;
- }
-
--zend_string *php_decimal_rational_to_eng(const php_rational_t *obj, zend_long prec)
--{
-- zend_string *str;
--
-- PHP_DECIMAL_TEMP_MPD(tmp);
-- php_decimal_rational_evaluate(&tmp, obj, prec);
--
-- str = php_decimal_mpd_to_eng(&tmp);
-- mpd_del(&tmp);
--
-- return str;
--}
--
- zend_string *php_decimal_rational_to_fixed(const php_rational_t *obj, zend_long places, zend_bool commas, php_decimal_rounding_t mode)
- {
- PHP_DECIMAL_TEMP_MPD(tmp);
-@@ -597,4 +584,4 @@ void php_decimal_number_to_num_den(mpd_t *num, mpd_t *den, const zval *obj)
-
- assert(status == 0);
- zval_ptr_dtor(&result);
--}
-\ No newline at end of file
-+}
-diff --git a/src/convert.h b/src/convert.h
-index cb5e031..a3924e3 100644
---- a/src/convert.h
-+++ b/src/convert.h
-@@ -56,7 +56,6 @@ php_decimal_success_t php_decimal_mpd_set_string(mpd_t *mpd, const zend_string *
- php_decimal_success_t php_decimal_mpd_set_charptr(mpd_t *mpd, const char *str);
-
- zend_string *php_decimal_mpd_to_serialized(const mpd_t *mpd);
--zend_string *php_decimal_mpd_to_eng(const mpd_t *mpd);
- zend_string *php_decimal_mpd_to_sci(const mpd_t *mpd);
- zend_string *php_decimal_mpd_to_string(const mpd_t *mpd);
- zend_string *php_decimal_mpd_to_fixed(const mpd_t *mpd, zend_long places, zend_bool commas, php_decimal_rounding_t mode);
-@@ -69,7 +68,6 @@ void php_decimal_rational_set_nan(php_rational_t *obj);
- void php_decimal_rational_set_zero(php_rational_t *obj);
-
- zend_string *php_decimal_rational_to_sci(const php_rational_t *obj, zend_long prec);
--zend_string *php_decimal_rational_to_eng(const php_rational_t *obj, zend_long prec);
- zend_string *php_decimal_rational_to_string(const php_rational_t *obj);
- zend_string *php_decimal_rational_to_fixed(const php_rational_t *obj, zend_long places, zend_bool commas, php_decimal_rounding_t mode);
- zend_long php_decimal_rational_to_long(const php_rational_t *obj);
diff --git a/testing/php7-pecl-decimal/fix-test.patch b/testing/php7-pecl-decimal/fix-test.patch
deleted file mode 100644
index 8ed7831e51f..00000000000
--- a/testing/php7-pecl-decimal/fix-test.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From e71f1488b666e30e4f0121a10fee3eeab22bd327 Mon Sep 17 00:00:00 2001
-From: Remi Collet <remi@remirepo.net>
-Date: Tue, 4 Feb 2020 08:23:05 +0100
-Subject: [PATCH] fix harcoded path in test
-
----
- tests/Number/methods/pow.phpt | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/tests/Number/methods/pow.phpt b/tests/Number/methods/pow.phpt
-index 5ce6582..2c78f16 100644
---- a/tests/Number/methods/pow.phpt
-+++ b/tests/Number/methods/pow.phpt
-@@ -87,7 +87,7 @@ Number Object
- )
- Number::pow
-
--Warning: Decimal arithmetic operand truncated to integer in /Users/rtheunissen/dev/decimal/ext-decimal/tests/Number/helpers/Number.php on line 63
-+Warning: Decimal arithmetic operand truncated to integer in %sNumber.php on line 63
- Number Object
- (
- [value:protected] => Decimal\Rational Object
-@@ -99,7 +99,7 @@ Number Object
- )
- Number::pow
-
--Warning: Decimal arithmetic operand truncated to integer in /Users/rtheunissen/dev/decimal/ext-decimal/tests/Number/helpers/Number.php on line 63
-+Warning: Decimal arithmetic operand truncated to integer in %sNumber.php on line 63
- Number Object
- (
- [value:protected] => Decimal\Rational Object
-@@ -123,7 +123,7 @@ Decimal\Decimal Object
- )
- Number::toRational
-
--Warning: Decimal arithmetic operand truncated to integer in /Users/rtheunissen/dev/decimal/ext-decimal/tests/Number/methods/pow.php on line 38
-+Warning: Decimal arithmetic operand truncated to integer in %spow.php on line 38
- Decimal\Rational Object
- (
- [num] => 16
-@@ -131,7 +131,7 @@ Decimal\Rational Object
- )
- Number::toRational
-
--Warning: Decimal arithmetic operand truncated to integer in /Users/rtheunissen/dev/decimal/ext-decimal/tests/Number/methods/pow.php on line 41
-+Warning: Decimal arithmetic operand truncated to integer in %spow.php on line 41
- Decimal\Rational Object
- (
- [num] => 16
diff --git a/testing/php7-pecl-decimal/fix-tests.patch b/testing/php7-pecl-decimal/fix-tests.patch
deleted file mode 100644
index efbf27bba7b..00000000000
--- a/testing/php7-pecl-decimal/fix-tests.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff --git a/tests/Number/helpers/Number.php b/tests/Number/helpers/Number.php
-new file mode 100644
-index 0000000..07ca222
---- /dev/null
-+++ b/tests/Number/helpers/Number.php
-@@ -0,0 +1,132 @@
-+<?php
-+
-+/**
-+ *
-+ */
-+class Number extends \Decimal\Number
-+{
-+ protected $value;
-+
-+ private static function parse($number)
-+ {
-+ $value = $number instanceof self ? $number->value : $number;
-+
-+ if ($value === "INF") $value = INF;
-+ else if ($value === "-INF") $value = -INF;
-+ else if ($value === "NAN") $value = NAN;
-+
-+ return $value;
-+ }
-+
-+ protected function __construct($value)
-+ {
-+ $this->value = self::parse($value);
-+ }
-+
-+ public static function valueOf($value): \Decimal\Number
-+ {
-+ return new static($value);
-+ }
-+
-+ public function add($other): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value + $this->parse($other));
-+ }
-+
-+ public function sub($other): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value - $this->parse($other));
-+ }
-+
-+ public function mul($other): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value * $this->parse($other));
-+ }
-+
-+ public function div($other): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value / $this->parse($other));
-+ }
-+
-+ public function pow($other): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value ** $this->parse($other));
-+ }
-+
-+ public function mod($other): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value % $this->parse($other));
-+ }
-+
-+ public function shiftl($places): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value * (10 ** $places));
-+ }
-+
-+ public function shiftr($places): \Decimal\Number
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return new static($this->value / (10 ** $places));
-+ }
-+
-+ public function round(int $places = NULL, int $mode = NULL): \Decimal\Number
-+ {
-+ return new static($this->toDecimal(\Decimal\Decimal::MAX_PRECISION)->round($places, $mode)->toString());
-+ }
-+
-+ public function toFixed(int $places = NULL, bool $commas = NULL, int $mode = NULL): string
-+ {
-+ return new static($this->toDecimal(\Decimal\Decimal::MAX_PRECISION)->toFixed($places, $commas, $mode));
-+ }
-+
-+ public function toDecimal(int $precision): \Decimal\Decimal
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return parent::toDecimal($precision);
-+ }
-+
-+ public function toRational(): \Decimal\Rational
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return parent::toRational();
-+ }
-+
-+ public function toString(): string
-+ {
-+ return (string) $this->value;
-+ }
-+
-+ public function toInt(): int
-+ {
-+ return (int) $this->value;
-+ }
-+
-+ public function toFloat(): float
-+ {
-+ return (float) $this->value;
-+ }
-+
-+ public function compareTo($other): int
-+ {
-+ printf("%s\n", __METHOD__);
-+
-+ return $this->value <=> self::parse($other);
-+ }
-+}
diff --git a/testing/php7-pecl-grpc/APKBUILD b/testing/php7-pecl-grpc/APKBUILD
deleted file mode 100644
index d54588aeeb5..00000000000
--- a/testing/php7-pecl-grpc/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-pecl-grpc
-_pkgreal=grpc
-pkgver=1.29.1
-pkgrel=0
-pkgdesc="PHP extension provide a concrete implementation of the gRPC protocol, layered over HTTP/2."
-url="https://pecl.php.net/package/grpc"
-arch="all !s390x !ppc64le"
-license="Apache-2.0"
-depends="php7-common"
-makedepends="php7-dev autoconf re2c openssl-dev zlib-dev linux-headers"
-source="$pkgname-$pkgver.tgz::https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$pkgver
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- # Test suite is not a part of pecl release.
- php7 -d extension="$builddir"/modules/$_pkgreal.so --ri $_pkgreal
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/50_$_pkgreal.ini
-}
-
-sha512sums="67aa8ac8b746d2ba9f7da78238f1066391b634dcbfa89dd633b7955374e1e8b87f17f682afb11807509c963ca87504b1bbea3967bb9a44f741d4505523d2fe3a php7-pecl-grpc-1.29.1.tgz"
diff --git a/testing/php7-pecl-inotify/APKBUILD b/testing/php7-pecl-inotify/APKBUILD
deleted file mode 100644
index f626127d3ef..00000000000
--- a/testing/php7-pecl-inotify/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
-# Maintainer: Fabio Ribeiro <fabiorphp@gmail.com>
-pkgname=php7-pecl-inotify
-_pkgreal=inotify
-pkgver=2.0.0
-_pkgver=${pkgver}
-pkgrel=6
-pkgdesc="Inotify bindings for PHP"
-url="https://pecl.php.net/package/$_pkgreal"
-arch="all"
-license="PHP"
-depends=""
-makedepends="php7-dev autoconf"
-source="https://pecl.php.net/get/$_pkgreal-$_pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$_pkgver
-provides="php7-inotify=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-inotify" # for backward compatibility
-
-build() {
- cd "$builddir"
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- cd "$builddir"
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- cd "$builddir"
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/70_$_pkgreal.ini
-}
-
-sha512sums="0547fdafd8177d41c2a92251cd85f046959ec8594236dc3d14396df0119a78cc6811973b641b95d1036b4325f9e97f0f9e9b181ae1dea79fc343f01777b6966d inotify-2.0.0.tgz"
diff --git a/testing/php7-pecl-mongodb/APKBUILD b/testing/php7-pecl-mongodb/APKBUILD
deleted file mode 100644
index 8463a1ac2da..00000000000
--- a/testing/php7-pecl-mongodb/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
-# Maintainer: Fabio Ribeiro <fabiorphp@gmail.com>
-pkgname=php7-pecl-mongodb
-_pkgreal=mongodb
-pkgver=1.7.4
-_pkgver=${pkgver/_rc/RC}
-pkgrel=2
-pkgdesc="PHP7 MongoDB driver"
-url="https://pecl.php.net/package/mongodb"
-arch="all"
-license="Apache-2.0"
-depends="php7-json"
-makedepends="cyrus-sasl-dev icu-dev openssl-dev pcre-dev php7-dev re2c snappy-dev"
-source="https://pecl.php.net/get/$_pkgreal-$_pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$_pkgver
-provides="php7-mongodb=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-mongodb" # for backward compatibility
-
-build() {
- phpize7
- ./configure --prefix=/usr \
- --with-php-config=/usr/bin/php-config7
- make
-}
-
-check() {
- # tests requires additional dependencies (vagrant)
- php7 -d extension="$builddir"/modules/$_pkgreal.so --ri $_pkgreal
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir/" install
-
- local confdir="$pkgdir/etc/php7/conf.d"
- install -d $confdir
- echo "extension=$_pkgreal.so" > $confdir/$_pkgreal.ini
-}
-
-sha512sums="6805ce1d0958e24e1edf3bc9698bc1f4a9d31c26250624fd35aebf7a7d310af30050e1974cd9571f989303fce4c5522e793a8cb41388397df66e8f5fe0a648f2 mongodb-1.7.4.tgz"
diff --git a/testing/php7-pecl-mustache/APKBUILD b/testing/php7-pecl-mustache/APKBUILD
deleted file mode 100644
index 05d3505d1cb..00000000000
--- a/testing/php7-pecl-mustache/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Renoir Boulanger <hello@renoirboulanger.com>
-pkgname=php7-pecl-mustache
-_phpext=mustache
-pkgver=0.9.1
-pkgrel=1
-pkgdesc="PHP 7 PECL extension: C++ implementation of Mustache"
-url="https://pecl.php.net/package/mustache"
-arch="all"
-license="MIT"
-depends="php7-common"
-makedepends="php7-dev autoconf re2c libmustache"
-source="https://pecl.php.net/get/$_phpext-$pkgver.tgz"
-builddir="$srcdir"/$_phpext-$pkgver
-provides="php7-mustache=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-mustache" # for backward compatibility
-
-build() {
- phpize7
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-php-config=php-config7 \
- --enable-mustache
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_phpext.so" > "$pkgdir"/etc/php7/conf.d/70_$_phpext.ini
-}
-
-sha512sums="0ff16f300cec312370effd68574e289a0993f3d45b1bb26469f19f3312ff8bfa9d2b3c682a3f2e5c4e20f41cb2c668269b17f3bd70272285dd007ab6bdf5327e mustache-0.9.1.tgz"
diff --git a/testing/php7-pecl-pcov/APKBUILD b/testing/php7-pecl-pcov/APKBUILD
deleted file mode 100644
index d03dab74442..00000000000
--- a/testing/php7-pecl-pcov/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Andy Postnikov <apostnikov@gmail.com>
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-
-pkgname=php7-pecl-pcov
-_pkgreal=pcov
-pkgver=1.0.6
-pkgrel=0
-pkgdesc="Code coverage driver for PHP"
-url="https://pecl.php.net/package/pcov"
-arch="all"
-license="PHP-3.01"
-depends="php7-common"
-makedepends="php7-dev autoconf re2c"
-source="https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$pkgver
-
-build() {
- cd "$builddir"
- phpize7
- ./configure \
- --prefix=/usr \
- --with-php-config=php-config7
- make
-}
-
-check() {
- cd "$builddir"
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
- php7 -d extension="$builddir"/modules/$_pkgreal.so --ri $_pkgreal
-}
-
-package() {
- local confdir="$pkgdir/etc/php7/conf.d"
- cd "$builddir"
-
- make INSTALL_ROOT="$pkgdir" install
-
- mkdir -p "$confdir"
- echo "extension=$_pkgreal.so" > "$confdir"/$_pkgreal.ini
-}
-
-sha512sums="4e715ad52a89e2a3226b23520e8ea3410288de96c3a3a08840e94628f5e4d0716392188d72247751e4cd1327deb2a11269081c089d6a455d214adbec59d8632f pcov-1.0.6.tgz"
diff --git a/testing/php7-pecl-rdkafka/APKBUILD b/testing/php7-pecl-rdkafka/APKBUILD
deleted file mode 100644
index 07bbeab4ce2..00000000000
--- a/testing/php7-pecl-rdkafka/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Gennady Feldman <gena01@gmail.com>
-# Maintainer: Gennady Feldman <gena01@gmail.com>
-pkgname=php7-pecl-rdkafka
-_pkgreal=rdkafka
-pkgver=4.0.3
-pkgrel=0
-pkgdesc="A librdkafka bindings for PHP7 providing a working client for Kafka 0.8-0.10"
-url="https://pecl.php.net/package/$_pkgreal"
-arch="all"
-license="MIT"
-makedepends="php7-dev autoconf file librdkafka-dev pcre-dev re2c"
-# https://pecl.php.net/get/$_pkgreal-$pkgver.tgz does not include the tests
-source="$_pkgreal-$pkgver.tgz::https://github.com/arnaud-lb/php-rdkafka/archive/$pkgver.tar.gz"
-builddir="$srcdir/php-$_pkgreal-$pkgver"
-
-provides="php7-rdkafka=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-rdkafka" # for backward compatibility
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=/usr/bin/php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="f570108bc45405b2634d787324e239b39dedc1459107e13c862b66ade15e52c24ae89722ee9f3bcc76c32915c5a6f0bf8e6ad8c0b9d397ebdfb3edb79867e4af rdkafka-4.0.3.tgz"
diff --git a/testing/php7-pecl-rrd/APKBUILD b/testing/php7-pecl-rrd/APKBUILD
deleted file mode 100644
index 5f671355ecb..00000000000
--- a/testing/php7-pecl-rrd/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Pascal Hofmann <mail@pascalhofmann.de>
-# Contributor: Mickaël Remars <github@remars.com>
-# Maintainer: Mickaël Remars <github@remars.com>
-_pkgreal=rrd
-pkgname=php7-pecl-rrd
-pkgver=2.0.1
-pkgrel=0
-pkgdesc="PHP7 bindings to rrd tool system"
-url="https://pecl.php.net/package/rrd"
-arch="all"
-license="BSD-2-Clause" # just one word difference: "owner" in php-rrd's license, "holder" in bsd-2-clause
-depends="php7-common"
-makedepends="php7-dev re2c rrdtool-dev"
-checkdepends="rrdtool"
-source="$pkgname-$pkgver.tgz::http://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- local confdir="$pkgdir/etc/php7/conf.d"
-
- make INSTALL_ROOT="$pkgdir" install
-
- mkdir -p "$confdir"
- echo "extension=$_pkgreal.so" > "$confdir"/20_$_pkgreal.ini
-}
-
-sha512sums="b6f7173f54fcf49bf014cc6c78263c169cdf53dac66c12f5f88db7e01b49ea74da84a55f61deb25c866e6e2e74275ec48fc4a3d1b46719f66b5b7b7eb000b6b3 php7-pecl-rrd-2.0.1.tgz"
diff --git a/testing/php7-pecl-seaslog/APKBUILD b/testing/php7-pecl-seaslog/APKBUILD
deleted file mode 100644
index b3a718c2745..00000000000
--- a/testing/php7-pecl-seaslog/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: viest <dev@service.viest.me>
-# Maintainer: Chitao.Gao <neeke@php.net>
-pkgname=php7-pecl-seaslog
-_pkgreal=seaslog
-pkgver=2.1.0
-pkgrel=0
-pkgdesc="An effective, fast, stable log extension for PHP."
-url="https://pecl.php.net/package/SeasLog"
-arch="all"
-license="PHP-3.01"
-depends="php7-json"
-makedepends="php7-dev re2c"
-source="$pkgname-$pkgver.tar.gz::https://pecl.php.net/get/SeasLog-$pkgver.tgz"
-builddir="$srcdir"/SeasLog-$pkgver
-
-# FIXME: on s390x 10 tests broken https://github.com/SeasX/SeasLog/issues/292
-case "$CARCH" in
- mips64|s390x) options="$options !check";;
-esac
-
-build() {
- phpize7
- ./configure \
- --prefix=/usr \
- --with-php-config=/usr/bin/php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
- PHP_TEST_SHARED_EXTENSIONS=" \
- -d extension=/usr/lib/php7/modules/json.so \
- -d extension=modules/$_pkgreal.so"
- php7 -d extension="$builddir"/modules/$_pkgreal.so --ri $_pkgreal
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir/" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="f9342cda45b302f4bb8292a914f13df056ac3c6e23b54a99054df8c6387bcffa7e5787c56b32e48024720b5007af7e96a25dd7e3d842e171cef95576a674ff2e php7-pecl-seaslog-2.1.0.tar.gz"
diff --git a/testing/php7-pecl-solr/APKBUILD b/testing/php7-pecl-solr/APKBUILD
deleted file mode 100644
index 93c7c9172f8..00000000000
--- a/testing/php7-pecl-solr/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
-# Maintainer: Fabio Ribeiro <fabiorphp@gmail.com>
-pkgname=php7-pecl-solr
-_pkgreal=solr
-pkgver=2.5.0
-_pkgver=${pkgver}
-pkgrel=0
-pkgdesc="Apache SOLR extension for PHP"
-url="https://pecl.php.net/package/$_pkgreal"
-arch="all"
-license="PHP"
-depends="php7-json"
-makedepends="php7-dev curl-dev libxml2-dev autoconf pcre-dev"
-source="https://pecl.php.net/get/$_pkgreal-$_pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$_pkgver
-provides="php7-solr=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-solr" # for backward compatibility
-
-build() {
- cd "$builddir"
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- # Require Solr installed
- php7 -d extension="$builddir"/modules/$_pkgreal.so --ri $_pkgreal
-}
-
-package() {
- cd "$builddir"
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/40_$_pkgreal.ini
-}
-
-sha512sums="5b24366942aa6eb0227da9d3d95bd0a9fd23a8163859e833c248cdab8f83391dc54df9fdae490ad9bc9bc5074b0b0c2c637918bc2f1738d5028f5e23c4d060cc solr-2.5.0.tgz"
diff --git a/testing/php7-pecl-stats/APKBUILD b/testing/php7-pecl-stats/APKBUILD
deleted file mode 100644
index 212f51b5bb7..00000000000
--- a/testing/php7-pecl-stats/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
-# Maintainer: Fabio Ribeiro <fabiorphp@gmail.com>
-pkgname=php7-pecl-stats
-_pkgreal=stats
-pkgver=2.0.3
-pkgrel=8
-pkgdesc="Extension that provides few dozens routines for statistical computation."
-url="https://pecl.php.net/package/$_pkgreal"
-arch="all !s390x !mips !mips64" # too many tests fails on s390x
-license="PHP-3.01"
-depends=""
-makedepends="php7-dev autoconf"
-source="https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$pkgver
-provides="php7-stats=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-stats" # for backward compatibility
-
-build() {
- cd "$builddir"
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- cd "$builddir"
- case "$CARCH" in
- # Remove test fail https://bugs.php.net/bug.php?id=76163
- aarch64 | ppc64le) rm tests/stats_stat_correlation.phpt
- esac
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- cd "$builddir"
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/60_$_pkgreal.ini
-}
-
-sha512sums="68a21296f8892c399d961bc1bba31cb6ebf6e0533fd396fc8527a33aa0b7cc189e718bd22dddbaaaeda183488971f02e87b2d9514085cc2a3d0fc558921a584c stats-2.0.3.tgz"
diff --git a/testing/php7-pecl-swoole/APKBUILD b/testing/php7-pecl-swoole/APKBUILD
deleted file mode 100644
index 48877816856..00000000000
--- a/testing/php7-pecl-swoole/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-pecl-swoole
-_pkgreal=swoole
-pkgver=4.5.2
-pkgrel=0
-pkgdesc="Event-driven asynchronous and concurrent networking engine with high performance for PHP."
-url="https://pecl.php.net/package/swoole"
-arch="all"
-license="Apache-2.0"
-depends="php7-openssl php7-sockets"
-makedepends="php7-dev autoconf re2c openssl-dev nghttp2-dev libucontext-dev"
-source="https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir"/$_pkgreal-$pkgver
-subpackages="$pkgname-dev"
-
-build() {
- case "$CARCH" in
- ppc64le|s390x|x86) export LDFLAGS="$LDFLAGS -lucontext" ;;
- esac
- phpize7
- ./configure --prefix=/usr \
- --with-php-config=php-config7 \
- --enable-openssl \
- --enable-sockets \
- --enable-http2
- make
-}
-
-check() {
- # needs extra services to test all suite
- php7 -d extension="$builddir"/modules/swoole.so --ri swoole
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/50_$_pkgreal.ini
-}
-
-sha512sums="0761c76225e2ffc14f411f880ca59500f5493f9e1f9ab7d859254443a2158ac35ed22b68f08577cc77943dbedc7fe7e58797ac24d99eea77bf0236200f0440ab swoole-4.5.2.tgz"
diff --git a/testing/php7-pecl-varnish/APKBUILD b/testing/php7-pecl-varnish/APKBUILD
deleted file mode 100644
index 4788b4afb53..00000000000
--- a/testing/php7-pecl-varnish/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Andy Postnikov <apostnikov@gmail.com>
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-pecl-varnish
-_pkgreal=varnish
-pkgver=1.2.4
-pkgrel=3
-pkgdesc="PHP7 extension: makes it possible to interact with a running varnish instance through TCP socket or shared memory."
-url="https://pecl.php.net/package/varnish"
-arch="all"
-license="BSD-3-Clause"
-depends="php7-common"
-makedepends="php7-dev autoconf libtool varnish-dev"
-source="https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-provides="php7-varnish=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-varnish" # for backward compatibility
-
-build() {
- cd "$builddir"
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- cd "$builddir"
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- cd "$builddir"
- make INSTALL_ROOT="$pkgdir" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="23c39c432bdd7c932c8096ed7946300d08fd33b6d4445e5025dddcdd669ca707e045fad565e4201e46d14f82659ae34b8efe5178d06bf0d11d0755b14eb48fed varnish-1.2.4.tgz"
diff --git a/testing/php7-pecl-xlswriter/APKBUILD b/testing/php7-pecl-xlswriter/APKBUILD
deleted file mode 100644
index 145e606131b..00000000000
--- a/testing/php7-pecl-xlswriter/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: viest <dev@service.viest.me>
-# Maintainer: viest <dev@service.viest.me>
-pkgname=php7-pecl-xlswriter
-_pkgreal=xlswriter
-pkgver=1.3.5
-pkgrel=0
-pkgdesc="A PHP Extension for creating and reader XLSX files. "
-url="https://pecl.php.net/package/xlswriter"
-arch="all !s390x !mips !mips64" # Test failure
-license="BSD-2-Clause"
-depends="php7-common"
-makedepends="php7-dev zlib-dev re2c"
-source="$pkgname-$pkgver.tar.gz::https://pecl.php.net/get/$_pkgreal-$pkgver.tgz
- fix-musl.patch"
-builddir="$srcdir"/$_pkgreal-$pkgver
-
-build() {
- phpize7
- ./configure \
- --enable-reader \
- --prefix=/usr \
- --with-php-config=/usr/bin/php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir/" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="95a25cf90d0da6e4732c8700cad858fbeaf0ecaf1ecfd184b563aaffe784aad138490a28312b4f802c2babbf1a6deb5f8ae8f270c857df974b6924976817fc39 php7-pecl-xlswriter-1.3.5.tar.gz
-477813b2b62bf1d2d181342d8dcb72a85d6920c14993b7500bd1dd53100f8ec697efe1acf3cef1f46b252563192b03c2b37f8fa667e7db7a8273e18363fbe952 fix-musl.patch"
diff --git a/testing/php7-pecl-xlswriter/fix-musl.patch b/testing/php7-pecl-xlswriter/fix-musl.patch
deleted file mode 100644
index 1165860f3ff..00000000000
--- a/testing/php7-pecl-xlswriter/fix-musl.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 34f537554492d0a3f6fbea0e4a13a0ced5203108 Mon Sep 17 00:00:00 2001
-From: viest <dev@service.viest.me>
-Date: Tue, 26 May 2020 16:22:19 +0800
-Subject: [PATCH] Fix: musl libc
-
----
- .gitignore | 2 ++
- kernel/read.c | 5 +++--
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/read.c b/kernel/read.c
-index 17aa47a..76779f9 100644
---- a/kernel/read.c
-+++ b/kernel/read.c
-@@ -12,6 +12,7 @@
-
- #include "xlswriter.h"
- #include "ext/date/php_date.h"
-+#include "ext/standard/php_math.h"
-
- /* {{{ */
- xlsxioreader file_open(const char *directory, const char *file_name) {
-@@ -106,7 +107,7 @@ void data_to_custom_type(const char *string_value, const size_t string_value_len
- return;
- }
-
-- double value = strtod(string_value, NULL);
-+ double value = zend_strtod(string_value, NULL);
- double days, partDay, hours, minutes, seconds;
-
- days = floor(value);
-@@ -115,7 +116,7 @@ void data_to_custom_type(const char *string_value, const size_t string_value_len
- partDay = partDay * 24 - hours;
- minutes = floor(partDay * 60);
- partDay = partDay * 60 - minutes;
-- seconds = round(partDay * 60);
-+ seconds = _php_math_round(partDay * 60, 0, PHP_ROUND_HALF_UP);
-
- zval datetime;
- php_date_instantiate(php_date_get_date_ce(), &datetime);
diff --git a/testing/php7-pecl-zstd/APKBUILD b/testing/php7-pecl-zstd/APKBUILD
deleted file mode 100644
index ab69d2aa39e..00000000000
--- a/testing/php7-pecl-zstd/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-pecl-zstd
-_pkgreal=zstd
-pkgver=0.8.1
-pkgrel=0
-pkgdesc="PECL Zstandard extension."
-url="https://pecl.php.net/package/zstd"
-arch="all !armhf" # tests fails on armhf
-license="MIT"
-depends="php7-common"
-makedepends="php7-dev autoconf re2c zstd-dev"
-checkdepends="php7-openssl"
-source="https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-provides="php7-zstd=$pkgver-r$pkgrel" # for backward compatibility
-replaces="php7-zstd" # for backward compatibility
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7 --with-libzstd
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test PHP_TEST_SHARED_EXTENSIONS=" \
- -d extension=/usr/lib/php7/modules/openssl.so \
- -d extension=modules/$_pkgreal.so"
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir"/ install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgreal.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="ad18426bf09b9d15123dfa7e2ee7461e360df3784e98554e300a8719c5ef6b31466da239d6ac82bc2e24d79a6399017da26b59d4c067e24c6a58d6d9a1d678ce zstd-0.8.1.tgz"
diff --git a/testing/php7-spx/APKBUILD b/testing/php7-spx/APKBUILD
deleted file mode 100644
index 8ee4852ef40..00000000000
--- a/testing/php7-spx/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-spx
-_pkgreal=php-spx
-pkgver=0.4.7
-pkgrel=0
-pkgdesc="A simple & straight-to-the-point PHP profiling extension with its built-in web UI"
-url="https://github.com/NoiseByNorthwest/php-spx"
-arch="x86_64"
-license="GPL-3.0-or-later"
-depends="php7-common"
-makedepends="php7-dev autoconf re2c zlib-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/NoiseByNorthwest/php-spx/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-build() {
- phpize7
- ./configure --prefix=/usr --with-php-config=php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=spx.so" > "$pkgdir"/etc/php7/conf.d/$_pkgreal.ini
-}
-
-sha512sums="9e8b070bb803ba6b9de749181443de5b4eddc64260a2ad3d6f51234d24e754a6f57e135b5f53e00d0f5182a8ad163c860d82056723f49df6218259d67a5c8d3e php7-spx-0.4.7.tar.gz"
diff --git a/testing/php7-tideways_xhprof/APKBUILD b/testing/php7-tideways_xhprof/APKBUILD
deleted file mode 100644
index 256d1bc9283..00000000000
--- a/testing/php7-tideways_xhprof/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Andy Postnikov <apostnikov@gmail.com>
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=php7-tideways_xhprof
-_pkgext=tideways_xhprof
-_pkgreal=php-xhprof-extension
-pkgver=5.0.2
-_pkgver=${pkgver/_/-}
-pkgrel=0
-pkgdesc="Modern XHProf compatible Profiler for PHP 7"
-url="http://tideways.io"
-arch="all !s390x" # fails to build https://github.com/tideways/php-xhprof-extension/issues/72
-license="Apache-2.0"
-depends="php7"
-makedepends="php7-dev autoconf"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tideways/php-xhprof-extension/archive/v$_pkgver.tar.gz
- "
-builddir="$srcdir/$_pkgreal-$_pkgver"
-
-build() {
- phpize7
- ./configure --prefix=/usr \
- --with-php-config=/usr/bin/php-config7
- make
-}
-
-check() {
- make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir/" install
-
- install -d "$pkgdir"/etc/php7/conf.d
- echo "extension=$_pkgext.so" > "$pkgdir"/etc/php7/conf.d/$_pkgext.ini
-}
-
-sha512sums="a328fe3a13adaf5400a1c4d802f33b01c3b039d472a1de137950545ebc6b9c595d2056129e153c593c77a69844d5806e91ad06d897da5417ae2aadc68d74c242 php7-tideways_xhprof-5.0.2.tar.gz"
diff --git a/testing/php81-pecl-amqp/APKBUILD b/testing/php81-pecl-amqp/APKBUILD
new file mode 100644
index 00000000000..f53975c4e62
--- /dev/null
+++ b/testing/php81-pecl-amqp/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-amqp
+_extname=amqp
+pkgver=2.1.2
+pkgrel=0
+pkgdesc="PHP 8.1 extension to communicate with any AMQP spec 0-9-1 compatible server - PECL"
+url="https://pecl.php.net/package/amqp"
+arch="all"
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev rabbitmq-c-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Tests require running AMQP server, so basic check
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/40_$_extname.ini
+}
+
+sha512sums="
+27ccbf27e04d4008dfcabcf576e44ee6bfa88e6cf0161fe4dccc1af594d2d8ec01e7c1b16e39f6f1ce2fddbc29ccc19113f2f56182d78cf727b4bb2767fefb54 php-pecl-amqp-2.1.2.tgz
+"
diff --git a/testing/php81-pecl-apcu/APKBUILD b/testing/php81-pecl-apcu/APKBUILD
new file mode 100644
index 00000000000..f47ccc929fb
--- /dev/null
+++ b/testing/php81-pecl-apcu/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-apcu
+_extname=apcu
+pkgver=5.1.23
+pkgrel=0
+pkgdesc="PHP 8.1 extension APC User Cache - PECL"
+url="https://pecl.php.net/package/apcu"
+arch="all"
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+checkdepends="$_php-pcntl"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+provides="$_php-apcu=$pkgver-r$pkgrel" # for backward compatibility
+replaces="$_php-apcu" # for backward compatibility
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ local _modules=/usr/lib/$_php/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/pcntl.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ install -D -m644 apc.php "$pkgdir"/usr/share/$_php/apcu/apc.php
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+89e9f10f5d8d1a9503132e80140680be2a10d96f957f69b2f77cc1c496d15cc26dfe4c0368ebe46c72c68d1b4a794d3ddc95942b02d3ba5e8c971b09969058d8 php-pecl-apcu-5.1.23.tgz
+"
diff --git a/testing/php81-pecl-ast/APKBUILD b/testing/php81-pecl-ast/APKBUILD
new file mode 100644
index 00000000000..d2803ecdf3e
--- /dev/null
+++ b/testing/php81-pecl-ast/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Andy Blyler <andy@blyler.cc>
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-ast
+_extname=ast
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="PHP extension exposing PHP 8.1 abstract syntax tree - PECL"
+url="https://pecl.php.net/package/ast"
+arch="all"
+license="BSD-3-Clause"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a5ae79b4ad4976f2447b94ebc5d3e2d6044ade36c73695ab7f3324963c175a3288d75361e930133232191e8141009d6c0ca8cabfafa143c5dd2282102834eeab php-pecl-ast-1.1.1.tar.gz
+"
diff --git a/testing/php81-pecl-brotli/APKBUILD b/testing/php81-pecl-brotli/APKBUILD
new file mode 100644
index 00000000000..9b504fa6ae3
--- /dev/null
+++ b/testing/php81-pecl-brotli/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-brotli
+_extname=brotli
+pkgver=0.15.0
+pkgrel=0
+pkgdesc="Brotli Extension for PHP 8.1"
+url="https://github.com/kjdev/php-ext-brotli"
+arch="all"
+license="MIT"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev $_php-pecl-apcu brotli-dev"
+checkdepends="$_php-cgi"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+provides="$_php-brotli=$pkgver-r$pkgrel" # for backward compatibility
+replaces="$_php-brotli" # for backward compatibility
+install_if="php-$_extname $_php"
+
+build() {
+ phpize$_phpv
+ ./configure \
+ --prefix=/usr \
+ --with-php-config=php-config$_phpv \
+ --with-libbrotli # Use system lib
+ make
+}
+
+check() {
+ local _modules=/usr/lib/$_php/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 SKIP_ONLINE_TESTS=1 test \
+ TEST_PHP_CGI_EXECUTABLE=/usr/bin/php-cgi$_phpv \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/apcu.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/50_$_extname.ini
+}
+
+sha512sums="
+0e3be424eace7ed50f67dac780fa55c0fa6da1265676cea12588d8713ec6636936379a543bde48f7b30054aeda038200a3f650259e2da589f642447125b32e6a php-pecl-brotli-0.15.0.tgz
+"
diff --git a/testing/php81-pecl-couchbase/APKBUILD b/testing/php81-pecl-couchbase/APKBUILD
new file mode 100644
index 00000000000..0b4f4a8c2cb
--- /dev/null
+++ b/testing/php81-pecl-couchbase/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Nathan Johnson <nathan@nathanjohnson.info>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-couchbase
+_extname=couchbase
+pkgver=4.2.1
+pkgrel=0
+pkgdesc="PHP 8.1 extension for Couchbase - PECL"
+url="https://pecl.php.net/package/couchbase"
+arch="all !riscv64 !ppc64le !s390x" # ftbfs
+license="Apache-2.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-pecl-igbinary"
+makedepends="$_php-dev openssl-dev>3 linux-headers cmake"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # no tests shipped via PECL
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+92ab3170cb231a4c6663daf15d8749386a84e3fa31fb19b3bda39dfa28eaf50365df9c2eab229b69c630b511af8015598e4babea79d70ba4f9c721821727eb03 php-pecl-couchbase-4.2.1.tgz
+"
diff --git a/testing/php81-pecl-csv/APKBUILD b/testing/php81-pecl-csv/APKBUILD
new file mode 100644
index 00000000000..5fe7a6e8b7e
--- /dev/null
+++ b/testing/php81-pecl-csv/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-csv
+_extname=CSV
+pkgver=0.4.2
+pkgrel=0
+pkgdesc="CSV PHP 8.1 extension - PECL"
+url="https://pecl.php.net/package/CSV"
+arch="all"
+license="PHP-3.01"
+depends="php81-common"
+makedepends="php81-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ php81 -dextension=modules/csv.so --ri csv
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=csv" > $_confdir/csv.ini
+}
+
+sha512sums="
+43213f2df4b074631b1dcb175b5103d652d06708d1b198e3775ad9a0ac588baa27963d5ff218e67b663f8afc4dbd40574933373af44219a74278905af942d5bb php-pecl-CSV-0.4.2.tgz
+"
diff --git a/testing/php81-pecl-decimal/APKBUILD b/testing/php81-pecl-decimal/APKBUILD
new file mode 100644
index 00000000000..83f06f702cd
--- /dev/null
+++ b/testing/php81-pecl-decimal/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-decimal
+_extname=decimal
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="Correctly-rounded arbitrary precision decimal floating-point arithmetic in PHP 8.1 - PECL"
+url="https://pecl.php.net/package/decimal"
+arch="all"
+license="MIT"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev mpdecimal-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+06806cb9c5ebae3abed1d41d021be63bb6ab44878e3034c4661a13d22ffab12b9804bc9196c10bdc9416d2559719b31a7fef73e3948c1ea94d3447c6a4b6c086 php-pecl-decimal-1.5.0.tgz
+"
diff --git a/testing/php81-pecl-ds/APKBUILD b/testing/php81-pecl-ds/APKBUILD
new file mode 100644
index 00000000000..a86a8562309
--- /dev/null
+++ b/testing/php81-pecl-ds/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-ds
+_extname=ds
+pkgver=1.5.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension for efficient Data Structures - PECL"
+url="https://pecl.php.net/package/ds"
+arch="all"
+license="MIT"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+checkdepends="composer
+ $_php-curl $_php-iconv $_php-mbstring $_php-openssl $_php-phar
+ $_php-dom $_php-opcache $_php-tokenizer $_php-xml $_php-xmlwriter
+ "
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz
+ php-pecl-$_extname-$pkgver-composer.json::https://github.com/php-ds/ext-ds/raw/v$pkgver/composer.json
+ php-pecl-$_extname-$pkgver-phpunit.xml::https://github.com/php-ds/ext-ds/raw/v$pkgver/phpunit.xml
+ "
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ local _testphp="$_php -d extension=$builddir/modules/$_extname.so"
+ $_testphp --ri $_extname
+ mkdir -p tests
+ cd tests
+ cp "$srcdir"/php-pecl-$_extname-$pkgver-composer.json composer.json
+ cp "$srcdir"/php-pecl-$_extname-$pkgver-phpunit.xml phpunit.xml
+ $_testphp /usr/bin/composer.phar install --prefer-dist --no-interaction
+ $_testphp vendor/bin/phpunit
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+12c8d617c0a41df68c157a3f9304763464ab2d8d1f8ada668de53a879f78dabd08c22caa35cd893ee64a267c7bda578d6202846c3dfc237916ee326ab6f02747 php-pecl-ds-1.5.0.tgz
+eb7f2071b6b99586ecaec33f5338d730835bd152d10a56b686a092b320035506d60c0752b23e8793205822a2d1bb559f7d6fedb0de9666404dcd68818a520d17 php-pecl-ds-1.5.0-composer.json
+32fed119d6fbe0541468987cd73c6104f848e2c1616cd71b068c6d0d480a476edff24f031153d6695c4b3c0d63352c652cf61d902031e1d761a120ad8525afd0 php-pecl-ds-1.5.0-phpunit.xml
+"
diff --git a/testing/php81-pecl-event/APKBUILD b/testing/php81-pecl-event/APKBUILD
new file mode 100644
index 00000000000..a68d4f81195
--- /dev/null
+++ b/testing/php81-pecl-event/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-event
+_php=81
+_extname=event
+pkgver=3.1.3
+pkgrel=0
+pkgdesc="PHP 8.1 extension that provides interface to libevent library - PECL"
+url="https://pecl.php.net/package/event"
+arch="all"
+license="PHP-3.01"
+depends="php$_php-sockets"
+makedepends="php$_php-dev libevent-dev openssl-dev>3"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_php
+ ./configure --prefix=/usr --with-php-config=php-config$_php
+ make
+}
+
+check() {
+ local _ext="-d extension=modules/$_extname.so"
+ php$_php $_ext --ri $_extname
+ # Tests require sockets extension which is not bundled
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 SKIP_ONLINE_TESTS=1 test \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=/usr/lib/php$_php/modules/sockets.so \
+ $_ext" \
+ TESTS="--show-diff tests"
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+d234ccaa113f6138c137adabcedf39744bf07a47e4e4f59d868a8c6e687a62120e6a0ae7760dcc494587351cca196a5810898bea426ef47ca8c999dad2bf33eb php-pecl-event-3.1.3.tgz
+"
diff --git a/testing/php81-pecl-grpc/APKBUILD b/testing/php81-pecl-grpc/APKBUILD
new file mode 100644
index 00000000000..f7f095dd533
--- /dev/null
+++ b/testing/php81-pecl-grpc/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-grpc
+_extname=grpc
+pkgver=1.62.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension provide a concrete implementation of the gRPC protocol, layered over HTTP/2."
+url="https://pecl.php.net/package/grpc"
+arch="all !s390x !ppc64le !riscv64" # build failures
+license="Apache-2.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev openssl-dev>3 linux-headers"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Test suite is not a part of pecl release.
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/50_$_extname.ini
+}
+
+sha512sums="
+f6dc7ae7829bce9d2650afcaa1e609090bc59d9878a7922fbfc41ec56d8cfef6d3bc14560b9f02fa4fc150a2dd6e1b493671078a6a18c0bcec57325dbd3c4c64 php-pecl-grpc-1.62.0.tgz
+"
diff --git a/testing/php81-pecl-igbinary/APKBUILD b/testing/php81-pecl-igbinary/APKBUILD
new file mode 100644
index 00000000000..5d2f77c8e6b
--- /dev/null
+++ b/testing/php81-pecl-igbinary/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php81-pecl-igbinary
+_extname=igbinary
+pkgver=3.2.15
+pkgrel=0
+pkgdesc="Igbinary is a drop in replacement for the standard PHP 8.1 serializer - PECL"
+url="https://pecl.php.net/package/igbinary"
+arch="all"
+license="BSD-3-Clause"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev $_php-pecl-apcu"
+checkdepends="$_php-session" # sessions needs work https://github.com/igbinary/igbinary/issues/116
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ local _modules="/usr/lib/$_php/modules"
+ # Tests require extra extensions which are not bundled
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ TESTS=--show-diff \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/apcu.so \
+ -d extension=$_modules/session.so \
+ -d extension=modules/$_extname.so"
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/10_$_extname.ini
+}
+
+sha512sums="
+1901765d302624ec0e8356fde6feabb8406122357e8ba178af6e9863e78a30f779c711785b981b8871d6c59f17bccfafe1d257a05a449935013ad8b62f7121c5 php-pecl-igbinary-3.2.15.tgz
+"
diff --git a/testing/php81-pecl-imagick/APKBUILD b/testing/php81-pecl-imagick/APKBUILD
new file mode 100644
index 00000000000..295d679015b
--- /dev/null
+++ b/testing/php81-pecl-imagick/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-imagick
+_extname=imagick
+pkgver=3.7.0
+pkgrel=5
+pkgdesc="PHP 8.1 extension provides a wrapper to the ImageMagick library - PECL"
+url="https://pecl.php.net/package/imagick"
+arch="all !x86" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/12537
+license="PHP-3.01"
+depends="php81-common imagemagick"
+checkdepends="ghostscript-fonts
+ imagemagick-jpeg
+ imagemagick-svg
+ "
+makedepends="php81-dev imagemagick-dev"
+subpackages="$pkgname-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ php81 -dextension=modules/$_extname.so --ri $_extname
+
+ rm -f tests/316_Imagick_getImageKurtosis.phpt
+ # see https://gitlab.alpinelinux.org/alpine/aports/-/issues/12537
+ [ "$CARCH" = x86 ] && rm -f tests/166_Imagick_waveImage_basic.phpt
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+c84408e4e4a0c46d979240e06d58d264c6bb21f3b95e3d434c8a21cd808f6c495fd453ef9c07b5c44dac81c6f205b6697f8ecaf1a65a86ce4e9052328a389ebe php-pecl-imagick-3.7.0.tgz
+"
diff --git a/testing/php81-pecl-immutable_cache/APKBUILD b/testing/php81-pecl-immutable_cache/APKBUILD
new file mode 100644
index 00000000000..f884055b782
--- /dev/null
+++ b/testing/php81-pecl-immutable_cache/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php81-pecl-immutable_cache
+_extname=immutable_cache
+pkgver=6.1.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension shared memory cache of immutable values - PECL"
+url="https://pecl.php.net/package/immutable_cache"
+arch="all"
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -dextension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+7e3c8cc0bd5f7bbb94adf676d598cc0258d2f105cb56aeb355cb94c955d10d74520f6444f8123d9a7c579663e6e3510f0260b3450fa83d283a30972cce119aff php-pecl-immutable_cache-6.1.0.tgz
+"
diff --git a/testing/php81-pecl-jsmin/APKBUILD b/testing/php81-pecl-jsmin/APKBUILD
new file mode 100644
index 00000000000..060afad227b
--- /dev/null
+++ b/testing/php81-pecl-jsmin/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-jsmin
+_extname=jsmin
+pkgver=3.0.0
+pkgrel=0
+_jqver=2.1.3
+pkgdesc="PHP 8.1 extension for minifying JavaScript - PECL"
+url="https://pecl.php.net/package/jsmin"
+arch="all !ppc64le" # test fails on builder
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz
+ jquery-$_jqver.js::https://github.com/sqmk/pecl-jsmin/raw/v$pkgver/tests/data/jquery-$_jqver.js
+ fix-php8.patch
+ fix-tests.patch
+ "
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ mkdir -p tests/data
+ cp "$srcdir"/jquery-$_jqver.js tests/data/
+
+ case "$CARCH" in
+ aarch64|x86_64) rm tests/call-multiple-times.phpt ;;
+ esac
+ $_php -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS='--show-diff '
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a465ae024a49bb8ac20463efc6b2546021806c2c43053f42c7ebfea4924b9b647b6e7c0c673102e12ecd8b693666441dc07203edef216eee958fa62f73056ea6 php-pecl-jsmin-3.0.0.tgz
+b8eb1a740c63feaab8ac24d87f39f4cfe263694c972f4978b9f0e3092f912a722596fd094dd637d22f03816617e13210bf11fad9a545dbb0423dc821c827081e jquery-2.1.3.js
+72f4ea4aad457d1a557e05ff8457a689ea75419e414b0893c2bdf5d7216d70b7c26a4993e3c9fa97de3409d080b3cf2a5bd2f0c4b050854c02f08ac592da1f85 fix-php8.patch
+e44a2615d98d786e0188d3880b41f267dab2fa215fb17cd37b17f8cc499bee7dd9e4fe1def4707dbd6769fa40ba2dbf7895ba3544db427a7d851f69a515fa83c fix-tests.patch
+"
diff --git a/testing/php81-pecl-jsmin/fix-php8.patch b/testing/php81-pecl-jsmin/fix-php8.patch
new file mode 100644
index 00000000000..c8be3069563
--- /dev/null
+++ b/testing/php81-pecl-jsmin/fix-php8.patch
@@ -0,0 +1,87 @@
+From 3e49feb8362f14d6f13d79c9533edd900bbf1d21 Mon Sep 17 00:00:00 2001
+From: Qiangjun Ran <ranqiangjun@gmail.com>
+Date: Tue, 8 Jun 2021 14:43:34 +0800
+Subject: [PATCH] PHP 8 support
+
+Patch-Source: https://github.com/sqmk/pecl-jsmin/pull/59
+---
+ jsmin.c | 8 ++++----
+ jsmin.h | 4 ++--
+ php_jsmin.c | 6 +++---
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/jsmin.c b/jsmin.c
+index 2744aef..773dc09 100644
+--- a/jsmin.c
++++ b/jsmin.c
+@@ -34,7 +34,7 @@ SOFTWARE.
+ */
+
+ static jsmin_obj*
+-new_jsmin_obj(char *javascript TSRMLS_DC)
++new_jsmin_obj(char *javascript)
+ {
+ jsmin_obj *jmo = ecalloc(1, sizeof(jsmin_obj));
+ jmo->javascript = javascript;
+@@ -48,7 +48,7 @@ new_jsmin_obj(char *javascript TSRMLS_DC)
+ /* free_jsmin_obj -- frees up memory on struct
+ */
+ void
+-free_jsmin_obj(jsmin_obj *jmo TSRMLS_DC)
++free_jsmin_obj(jsmin_obj *jmo)
+ {
+ smart_string_free(&jmo->buffer);
+ efree(jmo);
+@@ -250,9 +250,9 @@ jsmin_action(int d, jsmin_obj *jmo)
+ */
+
+ jsmin_obj*
+-jsmin(char *javascript TSRMLS_DC)
++jsmin(char *javascript)
+ {
+- jsmin_obj *jmo = new_jsmin_obj(javascript TSRMLS_CC);
++ jsmin_obj *jmo = new_jsmin_obj(javascript);
+
+ jsmin_action(3, jmo);
+ while (jmo->theA != 0) {
+diff --git a/jsmin.h b/jsmin.h
+index 317b90b..0bda630 100644
+--- a/jsmin.h
++++ b/jsmin.h
+@@ -25,7 +25,7 @@ enum error_codes {
+ PHP_JSMIN_ERROR_UNTERMINATED_REGEX
+ };
+
+-extern jsmin_obj* jsmin(char *javascript TSRMLS_DC);
+-extern void free_jsmin_obj(jsmin_obj *jmo TSRMLS_DC);
++extern jsmin_obj* jsmin(char *javascript);
++extern void free_jsmin_obj(jsmin_obj *jmo);
+
+ #endif
+diff --git a/php_jsmin.c b/php_jsmin.c
+index a9783d4..6cc034a 100644
+--- a/php_jsmin.c
++++ b/php_jsmin.c
+@@ -105,11 +105,11 @@ PHP_FUNCTION(jsmin)
+
+ zval *ret_code = NULL;
+
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z/", &javascript, &javascript_len, &ret_code) == FAILURE) {
++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|z/", &javascript, &javascript_len, &ret_code) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+- jmo = jsmin(javascript TSRMLS_CC);
++ jmo = jsmin(javascript);
+ if (ret_code) {
+ zval_dtor(ret_code);
+ ZVAL_LONG(ret_code, jmo->errorCode);
+@@ -121,7 +121,7 @@ PHP_FUNCTION(jsmin)
+ } else {
+ ZVAL_STRINGL(return_value, jmo->buffer.c, jmo->buffer.len);
+ }
+- free_jsmin_obj(jmo TSRMLS_CC);
++ free_jsmin_obj(jmo);
+ }
+ /* }}} */
+
diff --git a/testing/php81-pecl-jsmin/fix-tests.patch b/testing/php81-pecl-jsmin/fix-tests.patch
new file mode 100644
index 00000000000..d7b9c636af6
--- /dev/null
+++ b/testing/php81-pecl-jsmin/fix-tests.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/sqmk/pecl-jsmin/pull/60
+
+diff --git a/tests/missing-argument.phpt b/tests/missing-argument.phpt
+index 57d0925..826038b 100644
+--- a/tests/missing-argument.phpt
++++ b/tests/missing-argument.phpt
+@@ -1,5 +1,9 @@
+ --TEST--
+ Missing argument throws warning
++--SKIPIF--
++<?php
++if (PHP_VERSION_ID >= 80000) die('skip Only for PHP < 8.0');
++?>
+ --FILE--
+ <?php
+
+diff --git a/tests/missing-argument8.phpt b/tests/missing-argument8.phpt
+new file mode 100644
+index 0000000..4638dc2
+--- /dev/null
++++ b/tests/missing-argument8.phpt
+@@ -0,0 +1,17 @@
++--TEST--
++Missing argument throws fatal error
++--SKIPIF--
++<?php
++if (PHP_VERSION_ID < 80000) die('skip Only for PHP >= 8.0');
++?>
++--FILE--
++<?php
++
++echo jsmin();
++
++--EXPECTF--
++Fatal error: Uncaught ArgumentCountError: jsmin() expects at least 1 argument, 0 given in %s
++Stack trace:
++#0 %s(3): jsmin()
++#1 {main}
++ thrown in %s on line 3
diff --git a/testing/php81-pecl-luasandbox/APKBUILD b/testing/php81-pecl-luasandbox/APKBUILD
new file mode 100644
index 00000000000..a259f496131
--- /dev/null
+++ b/testing/php81-pecl-luasandbox/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Contributor: MPThLee <mpthlee@gmail.com>
+# Maintainer: MPThLee <mpthlee@gmail.com>
+
+pkgname=php81-pecl-luasandbox
+_extname=LuaSandbox
+pkgver=4.1.2
+pkgrel=0
+pkgdesc="LuaSandbox PHP 8.1 extension - PECL"
+url="https://pecl.php.net/package/LuaSandbox"
+arch="all"
+license="MIT"
+_phpv=81
+_php=php$_phpv
+_luaver="5.1"
+depends="$_php-common"
+makedepends="$_php-dev lua$_luaver-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -dextension=modules/luasandbox.so --ri luasandbox
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=luasandbox" > $_confdir/luasandbox.ini
+}
+
+sha512sums="
+c1ae280d4fdb97f0bb50b3fad464d9178494f54065be901f6b0a5de5bfe7742c6ef054c94cbcec77a1d153b07bbb88fa0ed6d07b0279df45bcd5d6457fdc470d php-pecl-LuaSandbox-4.1.2.tgz
+"
diff --git a/testing/php81-pecl-lzf/APKBUILD b/testing/php81-pecl-lzf/APKBUILD
new file mode 100644
index 00000000000..fa2c45cc863
--- /dev/null
+++ b/testing/php81-pecl-lzf/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-lzf
+_pkgreal=LZF
+_extname=lzf
+pkgver=1.7.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension handles LZF de/compression - PECL"
+url="https://pecl.php.net/package/LZF"
+arch="all"
+license="PHP-3.01"
+depends="php81-common"
+makedepends="php81-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_pkgreal-$pkgver.tgz"
+builddir="$srcdir"/$_pkgreal-$pkgver
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir"/ install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/50_$_pkgreal.ini
+}
+
+sha512sums="
+76a2bce7aa44f9aae40345f37c9294626d453879c7f98099ad6c31ae32abc638233934bf22ddd9bc0d4a6d285b25aa06dedc175ad5bb1544884a272e6b031ced php-pecl-lzf-1.7.0.tgz
+"
diff --git a/testing/php81-pecl-mailparse/APKBUILD b/testing/php81-pecl-mailparse/APKBUILD
new file mode 100644
index 00000000000..d977747a1bf
--- /dev/null
+++ b/testing/php81-pecl-mailparse/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-mailparse
+_extname=mailparse
+pkgver=3.1.6
+pkgrel=0
+pkgdesc="PHP 8.1 extension for parsing and working with email messages - PECL"
+url="https://pecl.php.net/package/mailparse"
+arch="all"
+license="PHP-3.01"
+depends="php81-mbstring"
+makedepends="php81-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ # Tests require mbstring extension which is not bundled
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=/usr/lib/php81/modules/mbstring.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/60_$_extname.ini
+}
+
+sha512sums="
+4bb629c2fc2aa7e9ab74f004222b6cfca13a7f0c3cb5152b67423bea4fff8dca5b4442ac2ddfea1127dfc893141eedae3e22b3f05f1b2368c4a4d0267a090388 php-pecl-mailparse-3.1.6.tgz
+"
diff --git a/testing/php81-pecl-maxminddb/APKBUILD b/testing/php81-pecl-maxminddb/APKBUILD
new file mode 100644
index 00000000000..91f9952f645
--- /dev/null
+++ b/testing/php81-pecl-maxminddb/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-maxminddb
+_extname=maxminddb
+pkgver=1.11.1
+pkgrel=0
+pkgdesc="PHP 8.1 MaxMind DB Reader extension - PECL"
+url="https://pecl.php.net/package/maxminddb"
+arch="all"
+license="Apache-2.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-bcmath"
+makedepends="$_php-dev libmaxminddb-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver/ext"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ make test NO_INTERACTION=1 REPORT_EXIT_STATUS=1
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $confdir
+ echo "extension=maxminddb" > $confdir/maxminddb.ini
+}
+
+sha512sums="
+12193a30928308e07d8abe352e5d823ee73029179cd20ee8552ea89ca597107319f6fff38169d870b54d40ec984dcfd619aeef4e2db3091b6d2706f4d7930912 php-pecl-maxminddb-1.11.1.tar.gz
+"
diff --git a/testing/php81-pecl-mcrypt/APKBUILD b/testing/php81-pecl-mcrypt/APKBUILD
new file mode 100644
index 00000000000..6c8d070252a
--- /dev/null
+++ b/testing/php81-pecl-mcrypt/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-mcrypt
+_extname=mcrypt
+pkgver=1.0.7
+pkgrel=0
+pkgdesc="Provides PHP 8.1 bindings for the unmaintained libmcrypt - PECL"
+url="https://pecl.php.net/package/mcrypt"
+arch="all"
+license="PHP-3.01"
+depends="php81-common"
+makedepends="php81-dev libmcrypt-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+# rm -f tests/mcrypt_rijndael128_128BitKey.phpt # fails
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+1b579af868a2db073520437ad6a93513c2591bc865d982dc7926591e712614995148d13bacc1b4b207ddecda4bad219b67010a39ea17e1ec6e180d4fd69182ff php-pecl-mcrypt-1.0.7.tgz
+"
diff --git a/testing/php81-pecl-memcache/APKBUILD b/testing/php81-pecl-memcache/APKBUILD
new file mode 100644
index 00000000000..8e585f5d4c6
--- /dev/null
+++ b/testing/php81-pecl-memcache/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-memcache
+_extname=memcache
+pkgver=8.2
+pkgrel=1
+pkgdesc="PHP 8.1 memcache extension, provides handy OO and procedural interfaces, can be used as session handler - PECL"
+url="https://pecl.php.net/package/memcache"
+arch="all"
+license="PHP-3.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-session"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Tests require 3 memcached servers, basic check, see tests/memcache.sh
+ $_php -dextension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+937f6bf33cd9202751585a2817c658bb2d361b0cef013cb6ac17ee147e07a1ca7860dc73902a607a147cd7ecfaf50cc0f3cb6758338afd29e688bc85ca59a2ba php-pecl-memcache-8.2.tgz
+"
diff --git a/testing/php81-pecl-memcached/APKBUILD b/testing/php81-pecl-memcached/APKBUILD
new file mode 100644
index 00000000000..32ccc4c8ca5
--- /dev/null
+++ b/testing/php81-pecl-memcached/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-memcached
+_extname=memcached
+pkgver=3.2.0
+pkgrel=3
+pkgdesc="PHP 8.1 extension for interfacing with memcached via libmemcached library - PECL"
+url="https://pecl.php.net/package/memcached"
+arch="all !x86" # php81-pecl-msgpack
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-session $_php-pecl-igbinary $_php-pecl-msgpack"
+makedepends="$_php-dev zlib-dev libmemcached-dev cyrus-sasl-dev libevent-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure \
+ --prefix=/usr \
+ --with-php-config=php-config$_phpv \
+ --enable-memcached-json \
+ --enable-memcached-igbinary \
+ --enable-memcached-msgpack \
+ --enable-memcached-protocol \
+ --enable-memcached-sasl
+ make
+}
+
+check() {
+ # Tests require memcached server, basic check
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/20_$_extname.ini
+}
+
+sha512sums="
+ece5759a9d6d52afd46beb0821811e5d4830e75ad8564af395e2107fd349e271c6e6cf20eeacd9ad15ee2e99ccf0118ccc83c5810e2f3fa7c61f1984b0b26514 php-pecl-memcached-3.2.0.tgz
+"
diff --git a/testing/php81-pecl-memprof/APKBUILD b/testing/php81-pecl-memprof/APKBUILD
new file mode 100644
index 00000000000..0e5dffec786
--- /dev/null
+++ b/testing/php81-pecl-memprof/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-memprof
+_extname=memprof
+pkgver=3.0.2
+pkgrel=0
+pkgdesc="fast and accurate memory profiler that can be used to find the cause of memory leaks in PHP 8.1 applications - PECL"
+url="https://pecl.php.net/package/memprof"
+arch="all !x86 !armv7 !armhf" # tests fail
+license="MIT"
+depends="php81-common"
+makedepends="php81-dev judy-dev bsd-compat-headers"
+checkdepends="php81-pecl-xdebug php81-cgi"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ # Tests require xdebug extension
+ local _depsdir=/usr/lib/php81/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test PHP_TEST_SHARED_EXTENSIONS="
+ -d zend_extension=$_depsdir/xdebug.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+2d951f2fd54cf074a392e5bffb22cec0d769147951986b26e6e96efc4d7e52b199bfc7964a663b8d94bd530bad566973a56d86395dfe23a7c3aeb086db12783c php-pecl-memprof-3.0.2.tgz
+"
diff --git a/testing/php81-pecl-mongodb/APKBUILD b/testing/php81-pecl-mongodb/APKBUILD
new file mode 100644
index 00000000000..a4cb09478c6
--- /dev/null
+++ b/testing/php81-pecl-mongodb/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-mongodb
+_extname=mongodb
+pkgver=1.18.1
+pkgrel=0
+pkgdesc="PHP 8.1 MongoDB driver - PECL"
+url="https://pecl.php.net/package/mongodb"
+arch="all"
+license="Apache-2.0"
+depends="php81-common"
+makedepends="cyrus-sasl-dev icu-dev openssl-dev>3 php81-dev snappy-dev zstd-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+provides="php81-mongodb=$pkgver-r$pkgrel" # for backward compatibility
+replaces="php81-mongodb" # for backward compatibility
+
+build() {
+ phpize81
+ ./configure --prefix=/usr \
+ --with-php-config=/usr/bin/php-config81
+ make
+}
+
+check() {
+ # tests requires additional dependencies (vagrant)
+ php81 -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+3224ea4efac1063bea58c55c2defbb149982b88387917a1301e08b65c2bbb070d962a17bc84d187abeed8950a52e5e5d24e5517524d8bf0892ecd3f6c9f815f0 php-pecl-mongodb-1.18.1.tgz
+"
diff --git a/testing/php81-pecl-msgpack/APKBUILD b/testing/php81-pecl-msgpack/APKBUILD
new file mode 100644
index 00000000000..6002c26a24f
--- /dev/null
+++ b/testing/php81-pecl-msgpack/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-msgpack
+_extname=msgpack
+pkgver=2.2.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension provides API for communicating with MessagePack serialization - PECL"
+url="https://pecl.php.net/package/msgpack"
+arch="all !x86"
+license="BSD-3-Clause"
+_phpv=81
+_php=php$_phpv
+depends="$_php-session $_php-sockets"
+makedepends="$_php-dev"
+checkdepends="$_php-pecl-apcu"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+provides="php-msgpack=$pkgver-r$pkgrel" # for backward compatibility
+replaces="php-msgpack" # for backward compatibility
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ rm -f tests/034.phpt # XFAIL https://github.com/msgpack/msgpack-php/issues/136
+ rm -f tests/035.phpt # fails on ppc64le as of slow environment https://github.com/msgpack/msgpack-php/issues/123
+ # Tests require session and sockets extensions which are not bundled
+ local _depsdir=/usr/lib/$_php/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test PHP_TEST_SHARED_EXTENSIONS="
+ -d extension=$_depsdir/apcu.so \
+ -d extension=$_depsdir/session.so \
+ -d extension=$_depsdir/sockets.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/10_$_extname.ini
+}
+
+sha512sums="
+91cb45e79b78624938ddabce39327a093d668a875fad6e2ce55058e54a742a3a35ea58069446399425816613ebdf5fc503222555b9296a22879d2b7eb475b8c9 php-pecl-msgpack-2.2.0.tgz
+"
diff --git a/testing/php81-pecl-oauth/APKBUILD b/testing/php81-pecl-oauth/APKBUILD
new file mode 100644
index 00000000000..dc360ab7b30
--- /dev/null
+++ b/testing/php81-pecl-oauth/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-oauth
+_extname=oauth
+pkgver=2.0.7
+pkgrel=0
+pkgdesc="PHP 8.1 extension, OAuth is an authorization protocol built on top of HTTP - PECL"
+url="https://pecl.php.net/package/oauth"
+arch="all"
+license="BSD-3-Clause"
+depends="php81-common"
+makedepends="php81-dev curl-dev"
+checkdepends="php81-openssl php81-pcntl php81-posix"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz
+ pcre.patch"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ local _modules="/usr/lib/php81/modules"
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/openssl.so \
+ -d extension=$_modules/pcntl.so \
+ -d extension=$_modules/posix.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/60_$_extname.ini
+}
+
+sha512sums="261bbe6d1c4299f44ce40030b3959e26f2535c70d01b7a4e870d14c84b0a01e68484e61907554d720667fa08a2ec00b7d43cf2f523800c832f02b093e7b6534a php-pecl-oauth-2.0.7.tgz
+68d636032d2f3cb2822ea3121a80256b87a04cc5998c4775174366c6a3392dfe3abc00c84cc50aca5745a32ddd2246af129fe5aa17cc415652c52214a84feef9 pcre.patch"
diff --git a/testing/php81-pecl-oauth/pcre.patch b/testing/php81-pecl-oauth/pcre.patch
new file mode 100644
index 00000000000..7a47b989d37
--- /dev/null
+++ b/testing/php81-pecl-oauth/pcre.patch
@@ -0,0 +1,13 @@
+diff --git a/config.m4 b/config.m4
+index e05ed68..48e2608 100644
+--- a/config.m4
++++ b/config.m4
+@@ -14,8 +14,6 @@ if test "$PHP_OAUTH" != "no"; then
+ PHP_NEW_EXTENSION(oauth, oauth.c provider.c, $ext_shared)
+ CFLAGS="$CFLAGS -Wall -g"
+
+- AC_CHECK_HEADER(pcre.h, , [AC_MSG_ERROR([Couldn't find pcre.h, try installing the libpcre development/headers package])])
+-
+ AS_IF([test "x$with_curl" != "xno"],
+ [
+ AC_MSG_CHECKING(for cURL in default path)
diff --git a/testing/php81-pecl-opentelemetry/APKBUILD b/testing/php81-pecl-opentelemetry/APKBUILD
new file mode 100644
index 00000000000..d244c94d7fc
--- /dev/null
+++ b/testing/php81-pecl-opentelemetry/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-opentelemetry
+_extname=opentelemetry
+pkgver=1.0.2
+_pkgver=${pkgver/_/}
+pkgrel=0
+pkgdesc="PHP 8.1 extension for OpenTelemetry auto-instrumentation support - PECL"
+url="https://pecl.php.net/package/opentelemetry"
+arch="all"
+license="Apache-2.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$_pkgver.tgz"
+builddir="$srcdir/$_extname-$_pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+98f3b9ccd8296bcab79af3f1554abc6e60d89aa9fac80775496a09e7a85eae7c8be44bcfa9a35a91157675b58c02dbd1fbdfc55ab96b05852d33232b8aa44e81 php-pecl-opentelemetry-1.0.2.tgz
+"
diff --git a/testing/php81-pecl-pcov/APKBUILD b/testing/php81-pecl-pcov/APKBUILD
new file mode 100644
index 00000000000..05a57ecf84e
--- /dev/null
+++ b/testing/php81-pecl-pcov/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php81-pecl-pcov
+_extname=pcov
+pkgver=1.0.11
+pkgrel=0
+pkgdesc="Code coverage driver for PHP 8.1 - PECL"
+url="https://pecl.php.net/package/pcov"
+arch="all"
+license="PHP-3.01"
+depends="php81-common"
+makedepends="php81-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ php81 -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+9d196d92ddfdcd22a69d94543202d861e8d54355991d528e7a5f5bb5423943d6bc04b1b9a117294b7337093765595e5be0ac95ab1619149ec6dc9d6a4a330d69 php-pecl-pcov-1.0.11.tgz
+"
diff --git a/testing/php81-pecl-protobuf/APKBUILD b/testing/php81-pecl-protobuf/APKBUILD
new file mode 100644
index 00000000000..0438ecebaa2
--- /dev/null
+++ b/testing/php81-pecl-protobuf/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=php81-pecl-protobuf
+_extname=protobuf
+pkgver=4.26.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension: Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data - PECL"
+url="https://pecl.php.net/package/protobuf"
+arch="all"
+license="BSD-3-Clause"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Test suite is not a part of pecl release.
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+7e5cff2b6d2c50b0ca4fe7282bf19fbba3b66071b1e8565798cd8f024ca04f1e5174a1764db7dee07c65838551464ff9c6fa74178d4b2eda7fc66c2529540ec8 php-pecl-protobuf-4.26.0.tgz
+"
diff --git a/testing/php81-pecl-psr/APKBUILD b/testing/php81-pecl-psr/APKBUILD
new file mode 100644
index 00000000000..fb8efb68634
--- /dev/null
+++ b/testing/php81-pecl-psr/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-psr
+_extname=psr
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="PHP 8.1 extension provides the accepted PSR interfaces, so they can be used in an extension - PECL"
+url="https://pecl.php.net/package/psr"
+arch="all"
+license="BSD-2-Clause"
+depends="php81-common"
+makedepends="php81-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+90d4bc1cd2364a15775024806ec5bc1b8f60ed44569162016a0a78fca89f4ad0f0e0b1f9f09ebdcfe6a803e888bddd1d8ce73100eec52ecc21c2e505a35ee5dd php-pecl-psr-1.2.0.tgz
+"
diff --git a/testing/php81-pecl-rdkafka/APKBUILD b/testing/php81-pecl-rdkafka/APKBUILD
new file mode 100644
index 00000000000..ed7a31e9b3a
--- /dev/null
+++ b/testing/php81-pecl-rdkafka/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Gennady Feldman <gena01@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-rdkafka
+_extname=rdkafka
+pkgver=6.0.3
+pkgrel=2
+pkgdesc="A librdkafka bindings for PHP 8.1 providing a working client for Kafka - PECL"
+url="https://pecl.php.net/package/rdkafka"
+arch="all"
+license="MIT"
+depends="php81-common"
+makedepends="php81-dev file librdkafka-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config81
+ make
+}
+
+check() {
+ php81 -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+0a40cd24e68360f98c2ad941acae2ced55c13ebe6398274c7c127df18fa0181acb73be32d8eba4b0af3016ab7aead3cda516171ac388b10cd5d70fa3b22ed90d php-pecl-rdkafka-6.0.3.tgz
+"
diff --git a/testing/php81-pecl-redis/APKBUILD b/testing/php81-pecl-redis/APKBUILD
new file mode 100644
index 00000000000..452c511cc38
--- /dev/null
+++ b/testing/php81-pecl-redis/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-redis
+_extname=redis
+pkgver=6.0.2
+_pkgver=${pkgver/_rc/RC}
+pkgrel=0
+pkgdesc="PHP 8.1 extension for interfacing with Redis - PECL"
+url="https://pecl.php.net/package/redis"
+arch="all !x86" # php81-pecl-msgpack
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-pecl-igbinary $_php-pecl-msgpack $_php-session"
+makedepends="$_php-dev lz4-dev zstd-dev"
+source="php-pecl-$_extname-$_pkgver.tgz::https://pecl.php.net/get/$_extname-$_pkgver.tgz"
+builddir="$srcdir/$_extname-$_pkgver"
+provides="$_php-redis=$pkgver-r$pkgrel" # for backward compatibility
+replaces="$_php-redis" # for backward compatibility
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv \
+ --enable-redis-igbinary \
+ --enable-redis-lz4 --with-liblz4 \
+ --enable-redis-lzf \
+ --enable-redis-msgpack \
+ --enable-redis-zstd
+ make
+}
+
+check() {
+ # Need running redis server
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/20_$_extname.ini
+}
+
+sha512sums="
+1918d15433d1b4d782a9fb0364f6dfeed8d9e6c2ae70c34e235be5f890992c73a40ef19842e0aabb181da86dd2cde28b9aebab8698b387738321298a2ab94aa6 php-pecl-redis-6.0.2.tgz
+"
diff --git a/testing/php81-pecl-smbclient/APKBUILD b/testing/php81-pecl-smbclient/APKBUILD
new file mode 100644
index 00000000000..dfe3155a51c
--- /dev/null
+++ b/testing/php81-pecl-smbclient/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php81-pecl-smbclient
+_extname=smbclient
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="PHP 8.1 extension that uses Samba's libsmbclient library to provide Samba related functions and 'smb' streams to PHP programs."
+url="https://pecl.php.net/package/smbclient"
+arch="all"
+license="BSD-2-Clause"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev samba-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Test suite require smb to run.
+ $_php -d extension=modules/$_extname.so --ri smbclient
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+17df088cacb80c378dec38fd6c6b8e83e1f6d8787e96e5eccac72792f8125cadda205568466fccd21900d1854bdaf3f042992d44e1c5ef458ade61aeec483513 php-pecl-smbclient-1.1.1.tgz
+"
diff --git a/testing/php81-pecl-ssh2/APKBUILD b/testing/php81-pecl-ssh2/APKBUILD
new file mode 100644
index 00000000000..a19612ec5db
--- /dev/null
+++ b/testing/php81-pecl-ssh2/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-ssh2
+_extname=ssh2
+pkgver=1.4.1
+pkgrel=0
+pkgdesc="PHP 8.1 extension provide bindings for the libssh2 library - PECL"
+url="https://pecl.php.net/package/ssh2"
+arch="all"
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev libssh2-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
+ # Check extension loading, testsuite skips tests if extension broken
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+9ff90b95b8fabfa2a75cf8a62a55e93df19d3e952f79234fc1d7ef3a030089f8b3703412bf6e22d85c7bf5825cf8493a4d97ad51a1600185d3d16f81c72e155c php-pecl-ssh2-1.4.1.tgz
+"
diff --git a/testing/php81-pecl-swoole/APKBUILD b/testing/php81-pecl-swoole/APKBUILD
new file mode 100644
index 00000000000..fb88fcf5298
--- /dev/null
+++ b/testing/php81-pecl-swoole/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-swoole
+_extname=swoole
+pkgver=5.1.1
+pkgrel=0
+pkgdesc="Event-driven asynchronous and concurrent networking engine with high performance for PHP 8.1 - PECL"
+url="https://pecl.php.net/package/swoole"
+arch="all !x86 !armv7 !armhf" # no 32-bit support
+license="Apache-2.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-curl $_php-mysqlnd $_php-openssl $_php-pdo $_php-sockets"
+makedepends="$_php-dev
+ c-ares-dev
+ curl-dev
+ libpq-dev
+ nghttp2-dev
+ openssl-dev>3
+ sqlite-dev
+ "
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+subpackages="$pkgname-dev"
+replaces="php81-pecl-openswoole"
+
+case "$CARCH" in
+ ppc64le|s390x) makedepends="$makedepends libucontext-dev" ;;
+esac
+
+build() {
+ case "$CARCH" in
+ ppc64le|s390x) export LDFLAGS="$LDFLAGS -lucontext" ;;
+ esac
+ phpize$_phpv
+ ./configure --prefix=/usr \
+ --with-php-config=php-config$_phpv \
+ --with-nghttp2_dir=/usr \
+ --enable-mysqlnd \
+ --enable-openssl --with-openssl-dir=/usr \
+ --enable-sockets \
+ --enable-swoole-curl \
+ --enable-swoole-pgsql \
+ --enable-swoole-sqlite \
+ --enable-brotli --with-brotli-dir=/usr \
+ --enable-cares
+ make
+}
+
+check() {
+ # needs extra services to test all suite
+ $_php -d extension=modules/swoole.so --ri swoole
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/50_$_extname.ini
+}
+
+sha512sums="
+ac5f6a737a42123417de33219f56c1ce95b7217d1e66d5021cb6f0126c9fead7917aa38f577330e3391e7780e3a2117b53dff72069680c1c3d0780b52d8d1f61 php-pecl-swoole-5.1.1.tgz
+"
diff --git a/testing/php81-pecl-timezonedb/APKBUILD b/testing/php81-pecl-timezonedb/APKBUILD
new file mode 100644
index 00000000000..5409b3a746c
--- /dev/null
+++ b/testing/php81-pecl-timezonedb/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-timezonedb
+_extname=timezonedb
+pkgver=2024.1
+pkgrel=0
+pkgdesc="Timezone Database to be used with PHP's date and time functions."
+url="https://pecl.php.net/package/timezonedb"
+arch="all"
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Test suite is not a part of pecl release.
+ $_php -dextension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/40_$_extname.ini
+}
+
+sha512sums="
+09772cdb0d94f8bcf937f075dbcc385b3c5c23657c4442b2ea741bb5dcd8b9898bd23019a2e2319178ffcb62aedd11cbc222ed9d603fba608e0e185a9d5282bc php-pecl-timezonedb-2024.1.tgz
+"
diff --git a/testing/php81-pecl-uploadprogress/APKBUILD b/testing/php81-pecl-uploadprogress/APKBUILD
new file mode 100644
index 00000000000..d376d848e90
--- /dev/null
+++ b/testing/php81-pecl-uploadprogress/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php81-pecl-uploadprogress
+_extname=uploadprogress
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="PHP 8.1 extension to track progress of a file upload - PECL"
+url="https://pecl.php.net/package/uploadprogress"
+arch="all"
+license="PHP-3.01"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+subpackages="$pkgname-doc::noarch"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/uploadprogress-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS='--show-diff '
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local confdir="$pkgdir/etc/$_php/conf.d"
+ mkdir -p "$confdir"
+ echo "extension=$_extname" > "$confdir"/$_extname.ini
+
+ local docdir="$pkgdir"/usr/share/doc/$pkgname
+ install -Dm644 -t $docdir README.md
+ cp -r examples/. $docdir/examples
+}
+
+sha512sums="
+b9ee5a09c3de78d58abd34da2d25d7b0cad38416309a9a69192f07e0c3fe2259de261bb3dee571e64e042753f861738ebcd67fa7fafeb595ec32ed3034c773cd php-pecl-uploadprogress-2.0.2.tar.gz
+"
diff --git a/testing/php81-pecl-uuid/APKBUILD b/testing/php81-pecl-uuid/APKBUILD
new file mode 100644
index 00000000000..4074ebe3303
--- /dev/null
+++ b/testing/php81-pecl-uuid/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-uuid
+_extname=uuid
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="PHP 8.1 wrapper around libuuid from the ext2utils project - PECL"
+url="https://pecl.php.net/package/uuid"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="php81-common"
+makedepends="php81-dev util-linux-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/50_$_extname.ini
+}
+
+sha512sums="
+bd557823a8c2b78f74675a2554445eafc69193c6fe5af1f9435cdd90a8efdec0d3974ae8af759fe7d30b2f805876fc2ef55058dea245c9d89a792f634fdb0a10 php-pecl-uuid-1.2.0.tgz
+"
diff --git a/testing/php81-pecl-vips/APKBUILD b/testing/php81-pecl-vips/APKBUILD
new file mode 100644
index 00000000000..15027ca1a66
--- /dev/null
+++ b/testing/php81-pecl-vips/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=php81-pecl-vips
+_extname=vips
+pkgver=1.0.13
+pkgrel=0
+pkgdesc="PHP 8.1 extension for interfacing with vips - PECL"
+url="https://pecl.php.net/package/vips"
+arch="all !x86 !aarch64 !armv7 !armhf" # threads https://gitlab.alpinelinux.org/alpine/aports/-/issues/15972
+license="MIT"
+depends="php81-common"
+makedepends="php81-dev vips-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81
+ make
+}
+
+check() {
+ php81 -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 SKIP_ONLINE_TESTS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+005660e3adb834e38a57b559411f4d33ec3efc5b2bc2e9afe182826618a7670530635ca684e73af2eb2c30ac4d3360653ba53fcfbcb835c712341bd6ed98bea3 php-pecl-vips-1.0.13.tgz
+"
diff --git a/testing/php81-pecl-xdebug/APKBUILD b/testing/php81-pecl-xdebug/APKBUILD
new file mode 100644
index 00000000000..ea5986532ca
--- /dev/null
+++ b/testing/php81-pecl-xdebug/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-xdebug
+_extname=xdebug
+pkgver=3.3.2
+pkgrel=0
+pkgdesc="PHP 8.1 extension that provides functions for function traces and profiling - PECL"
+url="https://pecl.php.net/package/xdebug"
+arch="all"
+license="PHP-3.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev linux-headers"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+provides="$_php-xdebug=$pkgver-r$pkgrel" # for backward compatibility
+replaces="$_php-xdebug" # for backward compatibility
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # PECL package has no test suite.
+ $_php -d zend_extension="$builddir"/modules/xdebug.so -r 'xdebug_info();'
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ # should go after opcache
+ cat > $_confdir/50_$_extname.ini <<-EOF
+ ; Uncomment and configure mode https://xdebug.org/docs/all_settings#xdebug.mode
+ ;zend_extension=$_extname.so
+ ;xdebug.mode=off
+ EOF
+
+ install -D -m644 -t "$pkgdir"/usr/share/$_php/xdebug/ contrib/tracefile-analyser.php
+ install -D -m644 -t "$pkgdir"/usr/share/vim/vimfiles/syntax/ contrib/xt.vim
+}
+
+sha512sums="
+06096e7a8899e586af8a9a763889546274ef0b520c1b84a1153c704cfdd2f6ff5491c30510da34c0b41169c94fe1f08f27b81535f98162edbb14f1569bd55846 php-pecl-xdebug-3.3.2.tgz
+"
diff --git a/testing/php81-pecl-xhprof/APKBUILD b/testing/php81-pecl-xhprof/APKBUILD
new file mode 100644
index 00000000000..9f494e9a110
--- /dev/null
+++ b/testing/php81-pecl-xhprof/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php81-pecl-xhprof
+_extname=xhprof
+pkgver=2.3.9
+pkgrel=1
+pkgdesc="A Hierarchical Profiler for PHP 8.1 - PECL"
+url="https://pecl.php.net/package/xhprof"
+arch="all"
+license="Apache-2.0"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+_assetsdepends="$_php-ctype graphviz ghostscript-fonts"
+subpackages="$pkgname-assets::noarch"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver/extension"
+provides="$_php-xhprof=$pkgver-r$pkgrel" # for backward compatibility
+replaces="$_php-xhprof" # for backward compatibility
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ [ $CARCH = s390x ] && rm -fr tests/xhprof_005.phpt # sleeping longer in CI
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 TESTS=--show-diff test
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ cat > $_confdir/$_extname.ini <<-EOF
+ extension=$_extname
+ xhprof.output_dir=/tmp
+ EOF
+}
+
+assets() {
+ pkgdesc="A Hierarchical Profiler for PHP (UI assets)"
+ depends="$_assetsdepends"
+ provides="$_php-xhprof-assets=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="$_php-xhprof-assets" # for backward compatibility
+
+ local _assetsdir="$subpkgdir"/usr/share/$_php/xhprof
+ install -d $_assetsdir
+ cp -R "$builddir"/../xhprof_lib $_assetsdir
+ cp -R "$builddir"/../xhprof_html $_assetsdir
+ cp -R "$builddir"/../examples $_assetsdir
+}
+
+sha512sums="
+38a2609d961d908c6a4b5d1ff2085ffdad4a5f7d277705c826ae19e215660802528d606c5ee052f2e65255a7a85b2a9cb9038f4785c730ec468fc76dc7bcf5de php-pecl-xhprof-2.3.9.tgz
+"
diff --git a/testing/php81-pecl-xlswriter/APKBUILD b/testing/php81-pecl-xlswriter/APKBUILD
new file mode 100644
index 00000000000..d2cf48fb567
--- /dev/null
+++ b/testing/php81-pecl-xlswriter/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: viest <dev@service.viest.me>
+# Maintainer: viest <dev@service.viest.me>
+pkgname=php81-pecl-xlswriter
+_extname=xlswriter
+pkgver=1.5.5
+pkgrel=0
+pkgdesc="PHP 8.1 extension for creating and reader XLSX files - PECL"
+url="https://pecl.php.net/package/xlswriter"
+arch="all"
+license="BSD-2-Clause"
+depends="php81-common"
+makedepends="php81-dev zlib-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize81
+ ./configure \
+ --enable-reader \
+ --prefix=/usr \
+ --with-php-config=/usr/bin/php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+11b9799fb54ec916b2e2ffc78ec49ba7828d9486680a3c68391768b2df0623f92065a29377dea273ba55a29841e26c4618c9312dcf20ff08747b2c95ba956429 php-pecl-xlswriter-1.5.5.tar.gz
+"
diff --git a/testing/php81-pecl-xmlrpc/APKBUILD b/testing/php81-pecl-xmlrpc/APKBUILD
new file mode 100644
index 00000000000..2d6c6b09fbb
--- /dev/null
+++ b/testing/php81-pecl-xmlrpc/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-xmlrpc
+_extname=xmlrpc
+pkgver=1.0.0_rc3
+_pkgver=${pkgver/_rc/RC}
+pkgrel=1
+pkgdesc="PHP 8.1 extension to write XML-RPC servers and clients - PECL"
+url="https://pecl.php.net/package/xmlrpc"
+arch="all"
+license="PHP-3.01"
+depends="php81-xml"
+makedepends="php81-dev libxml2-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$_pkgver.tgz"
+builddir="$srcdir"/$_extname-$_pkgver
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=/usr/lib/php81/modules/xml.so \
+ -d extension=modules/$_extname.so"
+ php81 -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+aa8e24d5a732b175adb9870357991d48ead046faed89e579eb63afe06c7ef20af9de29e2d70e71e54e5a15ee37265f69a7d52b39ef2465ced93ba818c1f7e9c1 php-pecl-xmlrpc-1.0.0_rc3.tar.gz
+"
diff --git a/testing/php81-pecl-yaml/APKBUILD b/testing/php81-pecl-yaml/APKBUILD
new file mode 100644
index 00000000000..9321eb7f580
--- /dev/null
+++ b/testing/php81-pecl-yaml/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Renoir Boulanger <hello@renoirboulanger.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-yaml
+_extname=yaml
+pkgver=2.2.3
+pkgrel=1
+pkgdesc="YAML syntax bindings for PHP 8.1 - PECL"
+url="https://pecl.php.net/package/yaml"
+arch="all"
+license="MIT"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev yaml-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+install_if="php-$_extname php$_phpv"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/70_$_extname.ini
+}
+
+sha512sums="
+99d63d430dd2fa9767ecb3f70599d2ebd4c53b27770df72c00c4723816de422c581cea05e96c3cba5aaecbdc57cc482fad0f1fa300bdcf887daa7c2c034e6f4b php-pecl-yaml-2.2.3.tgz
+"
diff --git a/testing/php81-pecl-zephir_parser/APKBUILD b/testing/php81-pecl-zephir_parser/APKBUILD
new file mode 100644
index 00000000000..a52192685e9
--- /dev/null
+++ b/testing/php81-pecl-zephir_parser/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-zephir_parser
+_extname=zephir_parser
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="Zephir Parser is a code parser, delivered as a C extension for the PHP 8.1 language - PECL"
+url="https://pecl.php.net/package/zephir_parser"
+arch="all"
+license="MIT"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ echo "$pkgver" > VERSION
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS="${TESTS:- --show-diff }"
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+84195c5702a12b1c6f9f027d2d0651bc7fb762cf71f4c7b4c9bc36b35fb92db54b994f5d2b0502d21b1dd8bb03710a72e4f0790b621edd2c1c69a10043b5d2ad php-pecl-zephir_parser-1.6.0.tar.gz
+"
diff --git a/testing/php81-pecl-zstd/APKBUILD b/testing/php81-pecl-zstd/APKBUILD
new file mode 100644
index 00000000000..3c4d1e0bf7d
--- /dev/null
+++ b/testing/php81-pecl-zstd/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-pecl-zstd
+_extname=zstd
+pkgver=0.13.3
+pkgrel=0
+pkgdesc="PHP 8.1 Zstandard extension - PECL"
+url="https://pecl.php.net/package/zstd"
+arch="all"
+license="MIT"
+depends="php81-common"
+makedepends="php81-dev php81-pecl-apcu zstd-dev"
+checkdepends="php81-openssl"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=php-config81 --with-libzstd
+ make
+}
+
+check() {
+ local _modules=/usr/lib/php81/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/apcu.so \
+ -d extension=$_modules/openssl.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+c6bcffcd71a1145e60bc3c1b25fec724cf406d1eb111a892b3603566e1a31e41fbf946d5f61746cd8db733e86ae3758b174a74c17c00b2f60e23dd61e0987198 php-pecl-zstd-0.13.3.tgz
+"
diff --git a/testing/php81-spx/APKBUILD b/testing/php81-spx/APKBUILD
new file mode 100644
index 00000000000..d2f181b4194
--- /dev/null
+++ b/testing/php81-spx/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-spx
+_extname=spx
+pkgver=0.4.15
+pkgrel=0
+pkgdesc="A simple & straight-to-the-point PHP 8.1 profiling extension with its built-in web UI"
+url="https://github.com/NoiseByNorthwest/php-spx"
+arch="x86_64 aarch64"
+license="GPL-3.0-or-later"
+_phpv=81
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev zlib-dev"
+checkdepends="$_php-cgi"
+source="php-$_extname-$pkgver.tar.gz::https://github.com/NoiseByNorthwest/php-spx/archive/v$pkgver.tar.gz"
+builddir="$srcdir/php-$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ TEST_PHP_CGI_EXECUTABLE=/usr/bin/php-cgi$_phpv \
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+c12c934012e6eee2fc7d42312b61e6d61482e2277b530ab86c81427a74731157ff48ae425b17dcd4f891cb4099aaa853bc38f7b285d6eb0f07934aa831e6c21a php-spx-0.4.15.tar.gz
+"
diff --git a/testing/php81-tideways_xhprof/APKBUILD b/testing/php81-tideways_xhprof/APKBUILD
new file mode 100644
index 00000000000..3eec84ce8c4
--- /dev/null
+++ b/testing/php81-tideways_xhprof/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php81-tideways_xhprof
+_extname=tideways_xhprof
+pkgver=5.0.4
+pkgrel=1
+pkgdesc="Modern XHProf compatible Profiler for PHP 8.1"
+url="http://tideways.io"
+arch="all !s390x" # fails to build https://github.com/tideways/php-xhprof-extension/issues/72
+license="Apache-2.0"
+depends="php81-common"
+makedepends="php81-dev"
+source="php-$_extname-$pkgver.tar.gz::https://github.com/tideways/php-xhprof-extension/archive/v$pkgver.tar.gz"
+builddir="$srcdir/php-xhprof-extension-$pkgver"
+
+build() {
+ phpize81
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config81
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/php81/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+bc7689060e33100ed43ed4ec0a251f6b4d9b7fcd3420e3c1208f400fc68d302a2fced90641016e55b8ee434e4d0de91703a2253c2515f16200fc0e330e4f60c2 php-tideways_xhprof-5.0.4.tar.gz
+"
diff --git a/testing/php81/APKBUILD b/testing/php81/APKBUILD
new file mode 100644
index 00000000000..3077df1550b
--- /dev/null
+++ b/testing/php81/APKBUILD
@@ -0,0 +1,671 @@
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+# Bundled libraries
+#
+# Name | License | Location | State
+# ----------+---------------------+------------------------+---------
+# bcmath | LGPL-2.1-or-later | ext/bcmath/libbcmath | used
+# date | MIT | ext/date/lib | used
+# fileinfo | BSD-2-Clause | ext/fileinfo/libmagic | used
+# gd | BSD | ext/gd/libgd | used
+# hash | CC0-1.0 | ext/hash/sha3 | used
+# xxHash | BSD-2-Clause | ext/hash/xxhash | used
+# libmbfl | LGPL-2.1-only | ext/mbstring/libmbfl | used
+# pcre | BSD-3-Clause | ext/pcre/pcrelib | not used
+# sqlite3 | Public | ext/sqlite3/libsqlite | not used
+# libzip | BSD-3-Clause | ext/zip/lib | not used
+
+# Static extensions
+#
+# Name | Reason
+# ----------+--------------------------------------------
+# zlib | https://bugs.alpinelinux.org/issues/8299
+# json | https://wiki.php.net/rfc/always_enable_json
+
+pkgname=php81
+_pkgreal=php
+pkgver=8.1.28
+pkgrel=0
+_apiver=20210902
+_suffix=${pkgname#php}
+# Is this package the default (latest) PHP version?
+_default_php="no"
+provides="$pkgname-cli php-cli php" # for backward compatibility
+# priority of community/php82 is 100
+provider_priority=50
+pkgdesc="The PHP$_suffix language runtime engine"
+url="https://www.php.net/"
+arch="all"
+license="PHP-3.01 BSD-3-Clause LGPL-2.0-or-later MIT Zend-2.0"
+depends="$pkgname-common"
+depends_dev="$pkgname=$pkgver-r$pkgrel autoconf pcre2-dev re2c"
+# Most dependencies between extensions is auto-discovered (see _extension()).
+_depends_mysqlnd="$pkgname-openssl"
+_depends_pdo_mysql="$pkgname-pdo $pkgname-mysqlnd"
+_depends_phar="$pkgname"
+# openssl is actually transitive dependency here, but we need to because of
+# load index based on number of dependencies.
+_depends_mysqli="$pkgname-mysqlnd $pkgname-openssl"
+makedepends="
+ $depends_dev
+ acl-dev
+ apache2-dev
+ argon2-dev
+ aspell-dev
+ bison
+ bzip2-dev
+ clang
+ curl-dev
+ enchant2-dev
+ freetds-dev
+ freetype-dev
+ gdbm-dev
+ gettext-dev
+ gmp-dev
+ icu-dev
+ imap-dev
+ krb5-dev
+ libavif-dev
+ libedit-dev
+ libical-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libpq-dev
+ lmdb-dev
+ oniguruma-dev
+ libsodium-dev
+ libwebp-dev
+ libxml2-dev
+ libxpm-dev
+ libxslt-dev
+ libzip-dev
+ net-snmp-dev
+ openldap-dev
+ openssl-dev>3
+ patchelf
+ sqlite-dev
+ tidyhtml-dev
+ unixodbc-dev
+ zlib-dev
+ "
+checkdepends="icu-data-full"
+subpackages="$pkgname-dev $pkgname-doc
+ $pkgname-phpdbg $pkgname-apache2
+ $pkgname-embed $pkgname-cgi $pkgname-fpm
+ $pkgname-pear::noarch
+ "
+# sources for RC available at
+# - https://downloads.php.net/~patrickallaert/php-${pkgver}RC1.tar.xz
+# - https://downloads.php.net/~ramsey/php-${pkgver}RC1.tar.xz
+source="$_pkgreal-$pkgver.tar.xz::https://php.net/distributions/$_pkgreal-$pkgver.tar.xz
+ $pkgname-fpm.initd
+ $pkgname-fpm.logrotate
+ $pkgname-module.conf
+ disabled-tests.list
+ disabled-tests.ppc64le.list
+ disabled-tests.riscv64.list
+ disabled-tests.s390x.list
+ disabled-tests.x86.list
+ install-pear.patch
+ includedir.patch
+ sharedir.patch
+ $pkgname-fpm-version-suffix.patch
+ fix-tests-devserver.patch
+ fix-lfs64.patch
+ fix-s390x-test.patch
+ fix-icu74.patch
+ fix-curl.patch
+ fix-libxml-1.patch
+ fix-libxml-2.patch
+ "
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+_libdir="/usr/lib/$pkgname"
+_extension_dir="$_libdir/modules"
+_extension_confd="/etc/$pkgname/conf.d"
+
+_extensions="
+ bcmath
+ bz2
+ calendar
+ ctype
+ curl
+ dba
+ dom
+ enchant
+ exif
+ ffi
+ fileinfo
+ ftp
+ gd
+ gettext
+ gmp
+ iconv
+ imap
+ intl
+ ldap
+ mbstring
+ mysqli
+ mysqlnd
+ odbc
+ opcache
+ openssl
+ pcntl
+ pdo
+ pdo_dblib
+ pdo_mysql
+ pdo_odbc
+ pdo_pgsql
+ pdo_sqlite
+ pgsql
+ phar
+ posix
+ pspell
+ session
+ shmop
+ simplexml
+ snmp
+ soap
+ sodium
+ sockets
+ sqlite3
+ sysvmsg
+ sysvsem
+ sysvshm
+ tidy
+ tokenizer
+ xml
+ xmlreader
+ xmlwriter
+ xsl
+ zip
+ "
+for _ext in $_extensions; do
+ case "$_ext" in
+ phar) subpackages="$subpackages $pkgname-$_ext:$_ext";;
+ *) subpackages="$subpackages $pkgname-$_ext:_extension";;
+ esac
+done
+subpackages="$subpackages $pkgname-common::noarch"
+subpackages="$subpackages $pkgname-litespeed"
+
+# secfixes:
+# 8.1.28-r0:
+# - CVE-2024-1874
+# - CVE-2024-2756
+# - CVE-2024-3096
+# 8.1.16-r0:
+# - CVE-2023-0567
+# - CVE-2023-0568
+# - CVE-2023-0662
+# 8.1.14-r0:
+# - CVE-2022-31631
+# 8.1.12-r0:
+# - CVE-2022-31630
+# - CVE-2022-37454
+# 8.1.11-r0:
+# - CVE-2022-31628
+# - CVE-2022-31629
+# 8.1.6-r2:
+# - CVE-2022-31625
+# - CVE-2022-31626
+# 8.1.0-r0:
+# - CVE-2021-21707
+# 8.1.0_rc5-r0:
+# - CVE-2021-21703
+# 8.1.0_rc3-r0:
+# - CVE-2021-21706
+
+prepare() {
+ default_prepare
+
+ local vapi=$(sed -n '/#define PHP_API_VERSION/{s/.* //;p}' main/php.h)
+ if [ "$vapi" != "$_apiver" ]; then
+ error "Upstream API version is now $vapi. Expecting $_apiver"
+ error "After updating _apiver, all 3rd-party extensions must be rebuilt."
+ return 1
+ fi
+
+ # https://bugs.php.net/63362 - Not needed but installed headers.
+ # Drop some Windows specific headers to avoid installation,
+ # before build to ensure they are really not needed.
+ rm -f TSRM/tsrm_win32.h \
+ TSRM/tsrm_config.w32.h \
+ Zend/zend_config.w32.h \
+ ext/mysqlnd/config-win.h \
+ ext/standard/winver.h
+
+ # Fix some bogus permissions.
+ find . -name '*.[ch]' -exec chmod 644 {} \;
+
+ # Remove failing tests includng arch specific ones.
+ local tests="disabled-tests.list disabled-tests.$CARCH.list"
+ local file; for file in $tests; do [ -f "$srcdir"/$file ] && \
+ sed -n '/^[^#]/p' "$srcdir"/$file | while read -r item; do
+ rm -r $item # do it in this way to apply globbing...
+ done
+ done
+
+ autoconf
+}
+
+# Notes:
+# * gd-jis-conv breaks any non-latin font rendering (vakartel).
+# * libxml cannot be build as shared.
+# * -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php andypost)
+# * -O2 optimize for apps usage (andypost)
+_build() {
+ local _extra='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+ export CFLAGS="${CFLAGS/-Os/-O2} $_extra"
+ export CXXFLAGS="${CXXFLAGS/-Os/-O2} $_extra"
+
+ local without_pcre_jit
+ [ "$CARCH" = "s390x" ] && without_pcre_jit="--without-pcre-jit"
+
+ case "$CARCH" in
+ arm*|aarch64|riscv64)
+ export CFLAGS="${CFLAGS/-fstack-clash-protection}"
+ export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
+ ;;
+ esac
+
+ export CC=clang
+ export CXX=clang++
+ EXTENSION_DIR=$_extension_dir ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --program-suffix=$_suffix \
+ --libdir=$_libdir \
+ --datadir=/usr/share/$pkgname \
+ --sysconfdir=/etc/$pkgname \
+ --localstatedir=/var \
+ --with-layout=GNU \
+ --with-pic \
+ --with-config-file-path=/etc/$pkgname \
+ --with-config-file-scan-dir=$_extension_confd \
+ --disable-rpath \
+ --disable-short-tags \
+ \
+ --enable-bcmath=shared \
+ --with-bz2=shared \
+ --enable-calendar=shared \
+ --enable-ctype=shared \
+ --with-curl=shared \
+ --enable-dba=shared \
+ --with-dbmaker=shared \
+ --with-gdbm \
+ --with-lmdb \
+ --enable-dom=shared \
+ --with-enchant=shared \
+ --enable-exif=shared \
+ --with-ffi=shared \
+ --enable-fileinfo=shared \
+ --enable-ftp=shared \
+ --enable-gd=shared \
+ --with-avif \
+ --with-freetype \
+ --with-jpeg \
+ --with-webp \
+ --with-xpm \
+ --disable-gd-jis-conv \
+ --with-gettext=shared \
+ --with-gmp=shared \
+ --with-iconv=shared \
+ --with-imap=shared \
+ --with-imap-ssl \
+ --enable-intl=shared \
+ --with-ldap=shared \
+ --with-ldap-sasl \
+ --with-libedit \
+ --with-libxml \
+ --enable-mbstring=shared \
+ --with-mysqli=shared,mysqlnd \
+ --with-mysql-sock=/run/mysqld/mysqld.sock \
+ --enable-mysqlnd=shared \
+ --enable-opcache=shared \
+ --with-openssl=shared \
+ --with-kerberos \
+ --with-system-ciphers \
+ --with-password-argon2 \
+ --enable-pcntl=shared \
+ --with-external-pcre \
+ $without_pcre_jit \
+ --enable-pdo=shared \
+ --with-pdo-dblib=shared,/usr \
+ --with-pdo-mysql=shared,mysqlnd \
+ --with-pdo-odbc=shared,unixODBC,/usr \
+ --with-pdo-pgsql=shared \
+ --with-pdo-sqlite=shared \
+ --with-pgsql=shared \
+ --enable-phar=shared \
+ --enable-posix=shared \
+ --with-pspell=shared \
+ --without-readline \
+ --enable-session=shared \
+ --enable-shmop=shared \
+ --enable-simplexml=shared \
+ --with-snmp=shared \
+ --enable-soap=shared \
+ --with-sodium=shared \
+ --enable-sockets=shared \
+ --with-sqlite3=shared \
+ --enable-sysvmsg=shared \
+ --enable-sysvsem=shared \
+ --enable-sysvshm=shared \
+ --with-tidy=shared \
+ --enable-tokenizer=shared \
+ --with-unixODBC=shared,/usr \
+ --enable-xml=shared \
+ --enable-xmlreader=shared \
+ --enable-xmlwriter=shared \
+ --with-xsl=shared \
+ --with-zip=shared \
+ --with-zlib \
+ --enable-zend-test=shared \
+ "$@"
+ rm -f modules/* # clean-up possible previous build
+ make
+}
+
+build() {
+ # build phpcgi and apache2 SAPIs first
+ # because not fixed https://bugs.php.net/bug.php?id=52419
+ # apache2 module
+ _build --disable-phpdbg \
+ --disable-cli \
+ --with-apxs2
+ mv libs/libphp.so sapi/apache2handler/mod_php$_suffix.so
+
+ local enable_litespeed
+ [ -z ${subpackages##*-litespeed*} ] && enable_litespeed=--enable-litespeed
+ # cgi, cli, fpm, embed, phpdbg, pear/pecl, litespeed
+ _build --enable-phpdbg \
+ --with-pear=/usr/share/$pkgname \
+ --enable-fpm \
+ --with-fpm-acl \
+ $enable_litespeed \
+ --enable-embed
+}
+
+check() {
+ # PHP is so stupid that it's not able to resolve dependencies
+ # between extensions and load them in correct order, so we must
+ # help it...
+ # opcache is Zend extension, it's handled specially in Makefile
+ local php_modules=$(_extensions_by_load_order \
+ | grep -vx opcache \
+ | xargs -n 1 printf "'$builddir/modules/%s.la' ")
+ sed -i "/^PHP_TEST_SHARED_EXTENSIONS/,/extension=/ \
+ s|in \$(PHP_MODULES)\"*|in $php_modules|" Makefile
+
+ # XXX: Few tests fail on the named platforms.
+ # Ignore it for now and continue build even on test failures.
+ local allow_fail='no'
+ case "$CARCH" in
+ no ) allow_fail='yes'
+ esac
+
+ TESTS="${TESTS:- --show-diff }" NO_INTERACTION=1 REPORT_EXIT_STATUS=1 \
+ SKIP_SLOW_TESTS=1 SKIP_ONLINE_TESTS=1 TEST_TIMEOUT=10 \
+ SKIP_PERF_SENSITIVE=1 \
+ TZ='' LANG='' LC_ALL='' TEST_FPM_EXTENSION_DIR=modules \
+ TRAVIS=true SKIP_IO_CAPTURE_TESTS=1 \
+ make test || [ "$allow_fail" = yes ]
+
+ echo 'NOTE: We have skipped quite a lot tests, see disabled-tests.list.'
+}
+
+package() {
+ make -j1 INSTALL_ROOT="$pkgdir" install
+ rm "$pkgdir"/usr/lib/php$_suffix/modules/zend_test.so
+
+ install -Dm644 php.ini-production "$pkgdir"/etc/$pkgname/php.ini
+
+ local file; for file in pear peardev pecl; do
+ sed -i -e "s|/usr/bin/php|/usr/bin/php$_suffix|g" \
+ -e "s|PHP=php|PHP=php$_suffix|" \
+ "$pkgdir"/usr/bin/$file
+ done
+
+ find "$pkgdir" -name '.*' -print0 | xargs -0 rm -rf
+ rmdir "$pkgdir"/var/run
+
+ if [ "$_default_php" = yes ]; then
+ ln -s php$_suffix "$pkgdir"/usr/bin/php
+ fi
+}
+
+dev() {
+ default_dev
+ replaces="php-dev"
+
+ amove \
+ usr/bin/php-config$_suffix \
+ usr/bin/phpize$_suffix \
+ $_libdir/build
+
+ if [ "$_default_php" = yes ]; then
+ ln -s phpize$_suffix "$subpkgdir"/usr/bin/phpize
+ ln -s php-config$_suffix "$subpkgdir"/usr/bin/php-config
+ fi
+}
+
+doc() {
+ default_doc
+
+ cd "$builddir"
+
+ mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
+ cp CODING_STANDARDS.md EXTENSIONS LICENSE NEWS \
+ README* UPGRADING* \
+ "$subpkgdir"/usr/share/doc/$pkgname/
+}
+
+apache2() {
+ pkgdesc="PHP$_suffix Module for Apache2"
+ depends="$depends apache2"
+ provides="php-apache2"
+
+ install -D -m 755 "$builddir"/sapi/apache2handler/mod_php$_suffix.so \
+ "$subpkgdir"/usr/lib/apache2/mod_php$_suffix.so
+
+ install -D -m 644 "$srcdir"/php$_suffix-module.conf \
+ "$subpkgdir"/etc/apache2/conf.d/php$_suffix-module.conf
+}
+
+phpdbg() {
+ pkgdesc="Interactive PHP$_suffix debugger"
+ provides="php-phpdbg"
+
+ amove usr/bin/phpdbg$_suffix
+
+ if [ "$_default_php" = yes ]; then
+ ln -s phpdbg$_suffix "$subpkgdir"/usr/bin/phpdbg
+ fi
+}
+
+embed() {
+ pkgdesc="PHP$_suffix Embedded Library"
+ provides="php-embed"
+
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/libphp.so "$subpkgdir"/usr/lib/libphp$_suffix.so
+ # we do this so it matches the name, otherwise SONAME libphp.so conflicts
+ patchelf --set-soname libphp$_suffix.so "$subpkgdir"/usr/lib/libphp$_suffix.so
+}
+
+litespeed() {
+ pkgdesc="PHP$_suffix LiteSpeed SAPI"
+ provides="php-lightspeed"
+
+ amove usr/bin/lsphp$_suffix
+
+ if [ "$_default_php" = yes ]; then
+ ln -s lsphp$_suffix "$subpkgdir"/usr/bin/lsphp
+ fi
+}
+
+cgi() {
+ pkgdesc="PHP$_suffix Common Gateway Interface"
+ provides="php-cgi"
+
+ amove usr/bin/php-cgi$_suffix
+
+ if [ "$_default_php" = yes ]; then
+ ln -s php-cgi$_suffix "$subpkgdir"/usr/bin/php-cgi
+ fi
+}
+
+fpm() {
+ pkgdesc="PHP$_suffix FastCGI Process Manager"
+ provides="php-fpm"
+
+ amove etc/$pkgname/php-fpm* usr/sbin var
+ amove usr/share/$pkgname/fpm
+
+ local file; for file in php-fpm.conf php-fpm.d/www.conf; do
+ mv "$subpkgdir"/etc/$pkgname/$file.default \
+ "$subpkgdir"/etc/$pkgname/$file
+ done
+
+ install -D -m 755 "$srcdir"/$pkgname-fpm.initd \
+ "$subpkgdir"/etc/init.d/php-fpm$_suffix
+
+ install -D -m 644 "$srcdir"/$pkgname-fpm.logrotate \
+ "$subpkgdir"/etc/logrotate.d/php-fpm$_suffix
+
+ mkdir -p "$subpkgdir"/var/log/$pkgname
+}
+
+pear() {
+ pkgdesc="PHP$_suffix Extension and Application Repository"
+ depends="$pkgname $pkgname-xml"
+ provides="php-pear"
+
+ mkdir -p "$subpkgdir"/usr/bin
+ local file; for file in pecl pear peardev; do
+ mv "$pkgdir"/usr/bin/$file "$subpkgdir"/usr/bin/$file$_suffix
+ if [ "$_default_php" = yes ]; then
+ ln -s $file$_suffix "$subpkgdir"/usr/bin/$file
+ fi
+ done
+
+ amove etc/$pkgname/pear.conf usr/share
+}
+
+common() {
+ pkgdesc="$pkgdesc (common config)"
+ provides="php-common $pkgname-zlib php-zlib $pkgname-json php-json" # for backward compatibility
+ depends=""
+
+ amove etc
+ mkdir -p "$subpkgdir"/$_extension_confd "$subpkgdir"/$_extension_dir
+}
+
+phar() {
+ _extension
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/phar$_suffix.phar "$subpkgdir"/usr/bin/phar.phar$_suffix
+
+ rm "$pkgdir"/usr/bin/phar$_suffix
+ ln -s phar.phar$_suffix "$subpkgdir"/usr/bin/phar$_suffix
+
+ if [ "$_default_php" = yes ]; then
+ ln -s phar.phar$_suffix "$subpkgdir"/usr/bin/phar.phar
+ ln -s phar.phar$_suffix "$subpkgdir"/usr/bin/phar
+ fi
+}
+
+_extension() {
+ local extname="${subpkgname#"$pkgname"-}"
+ local extdepends="$(eval "echo \$_depends_$extname")"
+ local extdesc="$(head -n1 "$builddir"/ext/$extname/CREDITS 2>/dev/null ||:)"
+ pkgdesc="PHP$_suffix extension: ${extdesc:-$extname}"
+ provides="php-$extname"
+
+ : "${extdepends:=$(_resolve_extension_deps "$extname")}"
+ depends="$depends $extdepends"
+
+ local load_order=$(_extension_load_order "$extname")
+
+ # extension prefix
+ local prefix=
+ [ "$extname" != "opcache" ] || prefix="zend_"
+
+ amove $_extension_dir/$extname.so
+
+ mkdir -p "$subpkgdir"/$_extension_confd
+ echo "${prefix}extension=$extname" \
+ > "$subpkgdir"/$_extension_confd/"$(printf %02d $load_order)"_$extname.ini
+}
+
+# Resolves dependencies of the given extension name (without $pkgname- prefix)
+# on other extensions in $_extensions and prints them with $pkgname- prefix.
+_resolve_extension_deps() {
+ local name="$1"
+
+ # We use config.w32 just because it's more accurate than config.m4.
+ local config="$builddir/ext/$name/config.w32"
+ [ -f "$config" ] || return 0
+
+ sed -En "s/.*ADD_EXTENSION_DEP\('$name', ([^)]+)\).*/\1/p" "$config" \
+ | tr -d "'," | tr ' ' '\n' \
+ | sort -u \
+ | while read -r dep; do
+ if echo "$_extensions" | grep -qw "$dep"; then
+ echo "$pkgname-$dep"
+ fi
+ done
+}
+
+# Prints a load order (0-based integer) for the given extension name. Extension
+# with lower load order should be loaded before exts with higher load order.
+# It's based on number of dependencies of the extension (with exception for
+# "imap"), which is flawed, but simple and good enough for now.
+_extension_load_order() {
+ local name="$1"
+ local deps=$(eval "echo \$_depends_$name")
+
+ case "$name" in
+ # XXX: This must be loaded after recode, even though it does
+ # not depend on it. So we must use this hack...
+ *) echo "${deps:=$(_resolve_extension_deps $name)}" | wc -w;;
+ esac
+}
+
+# Prints $_extensions sorted by load order and name.
+_extensions_by_load_order() {
+ local deps list name
+
+ for name in $_extensions; do
+ list="$list $(_extension_load_order $name);$name"
+ done
+ printf '%s\n' $list | sort -t ';' -k 1 | sed -E 's/\d+;//'
+}
+
+sha512sums="
+d56ecac164e00e9514cd3c6c8c453598b323118dc7d7ae7cc14ba0847d50a2e455b2391f52e0d81af325b02d8f73a7d2ed66bf66d068dac4a496d777c83a398f php-8.1.28.tar.xz
+7dc9f55b12998355a6a6b5cf277285058e66928215f8d0109448d06fb696a74c674f83d18a81bf03f4f0bee06e77979e9a4ee5c81c7fdebff91447f8e697cc69 php81-fpm.initd
+98bb27864f1ece80fef18cb286885c8c18de8f9d1076507b6a24df07e33aa400623b90401375e7ebe55d9ff802069d281642ec7d3a58ef8727121aabe7643241 php81-fpm.logrotate
+2e3b22b4adbc81c6120757095c89e56642f3e8bf7724af2926f2667759ef082cdcff416334aad87f704a61fcb5b2c11830f17759ac771a3dd4e47d9bc5c7cf72 php81-module.conf
+35dd9eb6b913c7a6e236200fdee74fb168cd08cac5448090964176a70b0ee188b60a85b401bc16832821b08a765b139e3e5281aab710d5ba2bf8aa3384ee6f73 disabled-tests.list
+65676dea36ff8823dd1e8d7165e48c2719133ca8cf5287d6051f35f70e4bc57f1c93fe9b0196c9307c072187deb08409731f1eef281387ae4367655472f882d3 disabled-tests.ppc64le.list
+378db19d08cec29c4e56f2c82ee0a99b31e5ec3eaac56c40597de442da36a4d7efcc7551577e37a6ca22649d612d42714c93e16e3f7579aeb85a44090bde80fc disabled-tests.riscv64.list
+54930246f22034e6a73020aa95915d14b2a2fcfe121df57eb17fdc663aceeb94c5c4b1800347149a8fb4eaa0edda4224a11133bdb7e0cd34a2065a2de121db0d disabled-tests.s390x.list
+6d3bc15982e13ec4c065b6445e07818d589f2cc677147a57929d1739b3e6b119cc9be6a07d3a99bb5e989e47a62fa6047f967c3c962253845d4bab224b378db3 disabled-tests.x86.list
+ec206639d076ddac6c2d1db697a5428ed3be979157db39417af7fbe6ab837e8dc00315ae0e55aea4f92f45ca5827c88cc4933099fad9c962f029ca81bef779d7 install-pear.patch
+e88ad17895742b74019912ad45c90af74817d75d7e1f71bd3d4a180b5f710a25d3c73c7410394f415eee0f428a8c5a0ea3702009ef9d2bffdebdd5da748f8b9b includedir.patch
+8db38c523a8e0ed64298661d328372ea33ba0a56d23c023299ad94ee43a6db8c49393efcb679e74bbb936383dcacebdfb440bbacdf74068d78d071dd3f795101 sharedir.patch
+f43ab399c3b4a2b9a3a329acd32d9cbc690cad697dd0a0e87f3d654028b88af7dd1cd80cbf970c6fe95a44d9b24646640bb4cc9eba15f36afc171504f1060066 php81-fpm-version-suffix.patch
+1b64a7cef9e81387f955cb60ffa4e3d2277b4f6072e9328d779c0d447c202c8ee9dff0d8d8c34abc82c150311f51c4e9316a3b72a383ca6c9a6e683bc5b349a0 fix-tests-devserver.patch
+73ad23e675c336b7607ff99fc3a3ffdb381779411c5503ef5a353ad43607070d889e441800abc54080d6be42032e94c3884d05d3bfbc46e5dda93b5e10fc40f7 fix-lfs64.patch
+10c8da2e2ff24903c012b4df4f1fd7ed739429d0630260c398ed255cb45589ee170c29af09f5f57202a5fe37d4e82669196c813a5b916b7f2be2d46e9bfd1d85 fix-s390x-test.patch
+16d283ac2373442f2fbbca4968df92e0114454c7645a797f1f04af27e546293f3312d45aef049357057facd4fb62339ebfe7f59e65d4278910c4195d873955d1 fix-icu74.patch
+9154ea68ec28b83aaa25d2be9012fde5802872b0d97b6141fcddbf93ee86fddd2d1f0e14fe64942c2a5bc51089041659e8b09cce94c634cb1898f25cdf86ed61 fix-curl.patch
+6413bcd3542248974b737ecd0f01e28609b35cbc2fdb6b94b702035cb840b27d062a387c99e50abec66196beb908cacd1aa2b97feb0224266436a50dd0905d61 fix-libxml-1.patch
+d1722ee0429f9218886351f08fe728be3e2e0e65b9b886dd7bee2d7f0e08ffba97e0ba3d14f851c1c839d726916c45316681731891577f781129da0d05c75eea fix-libxml-2.patch
+"
diff --git a/testing/php81/disabled-tests.list b/testing/php81/disabled-tests.list
new file mode 100644
index 00000000000..3d6c6cbe1e2
--- /dev/null
+++ b/testing/php81/disabled-tests.list
@@ -0,0 +1,193 @@
+#
+# Tests that we don't need to run
+#
+
+# Windows tests
+ext/standard/tests/file/windows_mb_path/*
+ext/standard/tests/file/*win32*.phpt
+ext/standard/tests/dir/*win32*.phpt
+ext/standard/tests/general_functions/*win32*.phpt
+ext/standard/tests/mail/*win32.phpt
+ext/standard/tests/streams/*win32.phpt
+ext/standard/tests/strings/*win32.phpt
+ext/phar/tests/*win32.phpt
+ext/readline/tests/*win32.phpt
+ext/sockets/tests/*win32.phpt
+
+# Require database or slow as dblib
+ext/mysqli/tests/*
+ext/odbc/tests/*
+ext/pdo/tests/*.phpt
+ext/pdo_dblib/tests/*
+ext/pdo_mysql/tests/*
+ext/pdo_odbc/tests/*
+ext/pdo_pgsql/tests/*
+ext/pgsql/tests/*
+
+#
+# Tests that fail and probably should not...
+#
+
+# Too many tests fail! Some of them bogus, some not.
+# THIS SHOULD BE REALLY FIXED!
+ext/openssl/tests/bug46127.phpt
+ext/openssl/tests/bug48182.phpt
+ext/openssl/tests/bug54992.phpt
+ext/openssl/tests/bug65538_001.phpt
+ext/openssl/tests/bug65538_003.phpt
+ext/openssl/tests/bug65729.phpt
+ext/openssl/tests/bug68265.phpt
+ext/openssl/tests/bug68879.phpt
+ext/openssl/tests/bug68920.phpt
+ext/openssl/tests/bug69215.phpt
+ext/openssl/tests/bug72333.phpt
+ext/openssl/tests/bug73072.phpt
+ext/openssl/tests/bug74159.phpt
+ext/openssl/tests/bug76705.phpt
+ext/openssl/tests/bug77390.phpt
+ext/openssl/tests/capture_peer_cert_001.phpt
+ext/openssl/tests/openssl_peer_fingerprint_basic.phpt
+ext/openssl/tests/peer_verification.phpt
+ext/openssl/tests/san_peer_matching.phpt
+ext/openssl/tests/session_meta_capture.phpt
+ext/openssl/tests/session_meta_capture_tlsv13.phpt
+ext/openssl/tests/sni_server.phpt
+ext/openssl/tests/sni_server_key_cert.phpt
+ext/openssl/tests/stream_crypto_flags_001.phpt
+ext/openssl/tests/stream_crypto_flags_002.phpt
+ext/openssl/tests/stream_crypto_flags_003.phpt
+ext/openssl/tests/stream_crypto_flags_004.phpt
+ext/openssl/tests/stream_security_level.phpt
+ext/openssl/tests/stream_verify_peer_name_001.phpt
+ext/openssl/tests/stream_verify_peer_name_002.phpt
+ext/openssl/tests/stream_verify_peer_name_003.phpt
+ext/openssl/tests/streams_crypto_method.phpt
+ext/openssl/tests/tls_min_v1.0_max_v1.1_wrapper.phpt
+ext/openssl/tests/tls_wrapper.phpt
+ext/openssl/tests/tls_wrapper_with_tls_v1.3.phpt
+ext/openssl/tests/tlsv1.0_wrapper.phpt
+ext/openssl/tests/tlsv1.1_wrapper.phpt
+ext/openssl/tests/tlsv1.2_wrapper.phpt
+ext/openssl/tests/tlsv1.3_wrapper.phpt
+
+# Needs to open tls socket
+ext/openssl/tests/bug62890.phpt
+ext/openssl/tests/san_ipv6_peer_matching.phpt
+
+# Broken tests, missing config.
+sapi/fpm/tests/socket-ipv4-fallback.phpt
+
+# Error messages in different order.
+sapi/cgi/tests/005.phpt
+
+# Not stable enchant-2 library support - 15/29
+ext/enchant/tests/broker_dict_exists.phpt
+ext/enchant/tests/broker_free_02.phpt
+ext/enchant/tests/broker_free_dict.phpt
+ext/enchant/tests/broker_request_dict.phpt
+ext/enchant/tests/broker_request_dict_01.phpt
+ext/enchant/tests/broker_set_ordering.phpt
+ext/enchant/tests/dict_add_to_personal.phpt
+ext/enchant/tests/dict_add_to_session.phpt
+ext/enchant/tests/dict_check.phpt
+ext/enchant/tests/dict_describe.phpt
+ext/enchant/tests/dict_get_error.phpt
+ext/enchant/tests/dict_is_in_session.phpt
+ext/enchant/tests/dict_quick_check_01.phpt
+ext/enchant/tests/dict_store_replacement.phpt
+ext/enchant/tests/dict_suggest.phpt
+
+# Wrong charset, conversion from `UTF-8' to `ASCII//TRANSLIT' is not allowed.
+ext/iconv/tests/iconv_basic_001.phpt
+
+# Wrong charset, conversion from `UTF-8' to `UTF-8//IGNORE' is not allowed.
+ext/iconv/tests/bug48147.phpt
+
+# stream_filter_append(): unable to create or locate filter "convert.iconv.ucs-2/utf-8//IGNORE"
+ext/iconv/tests/bug76249.phpt
+
+# Class 'Phar' not found.
+ext/opcache/tests/issue0115.phpt
+ext/opcache/tests/issue0149.phpt
+
+# Fails in CI - Insufficient privileges. https://gitlab.alpinelinux.org/alpine/aports/-/issues/12692#note_169663
+ext/pcntl/tests/pcntl_unshare_01.phpt
+ext/pcntl/tests/pcntl_unshare_02.phpt
+ext/pcntl/tests/pcntl_unshare_03.phpt
+ext/pcntl/tests/pcntl_unshare_04.phpt
+
+# Randomly fails.
+ext/pcntl/tests/002.phpt
+# Randomly fails on arm7
+ext/standard/tests/file/bug60120.phpt
+
+# Call to undefined function session_start().
+ext/session/tests/session_regenerate_id_cookie.phpt
+
+# Class 'SoapServer' not found.
+ext/soap/tests/bug73037.phpt
+
+# Incorrect results.
+ext/soap/tests/server009.phpt
+
+# Failing tests related to locale and/or iconv.
+ext/date/tests/009.phpt
+ext/iconv/tests/bug52211.phpt
+ext/intl/tests/bug67052.phpt
+ext/json/tests/bug41403.phpt
+ext/pcre/tests/ctype_back_to_c.phpt
+ext/pcre/tests/locales.phpt
+ext/soap/tests/bugs/bug39815.phpt
+ext/standard/tests/array/locale_sort.phpt
+ext/standard/tests/strings/setlocale_basic1.phpt
+ext/standard/tests/strings/setlocale_basic2.phpt
+ext/standard/tests/strings/setlocale_basic3.phpt
+ext/standard/tests/strings/setlocale_error.phpt
+ext/standard/tests/strings/setlocale_variation1.phpt
+ext/standard/tests/strings/setlocale_variation2.phpt
+ext/standard/tests/strings/setlocale_variation3.phpt
+ext/standard/tests/strings/setlocale_variation4.phpt
+ext/standard/tests/strings/setlocale_variation5.phpt
+ext/standard/tests/strings/sprintf_f_3.phpt
+ext/standard/tests/strings/strtoupper.phpt
+ext/standard/tests/strings/locale_independent_float_to_string.phpt
+tests/basic/consistent_float_string_casts.phpt
+tests/lang/bug30638.phpt
+Zend/tests/lc_ctype_inheritance.phpt
+
+# setlocale() does not affect result of nl_langinfo(CODESET) always returns UTF-8
+ext/fileinfo/tests/bug74170.phpt
+ext/standard/tests/strings/bug79986.phpt
+
+# float formatting
+ext/standard/tests/strings/printf_h_H.phpt
+
+
+#
+# Tests that fail for known reason and/or we don't need to worry about them
+#
+
+# Fails due to unsupported JP charsets.
+ext/iconv/tests/eucjp2iso2022jp.phpt
+ext/iconv/tests/iconv_mime_encode.phpt
+
+# Requires running SNMP server.
+ext/snmp/tests/*
+
+# Expects permissions on /etc to be 40755 (armhf)
+ext/standard/tests/file/006_error.phpt
+
+# Fails on armhf CI
+ext/hash/tests/hash-clone.phpt
+ext/hash/tests/hash_copy_001.phpt
+
+# openssl 1 and unstable
+ext/openssl/tests/openssl_error_string_basic.phpt
+
+# openssl 3.2.1
+ext/openssl/tests/openssl_error_string_basic_openssl3.phpt
+ext/openssl/tests/openssl_private_decrypt_basic.phpt
+ext/openssl/tests/openssl_x509_parse_basic.phpt
+
+# openssl 3.3.0
+ext/openssl/tests/bug74341.phpt
diff --git a/testing/php81/disabled-tests.ppc64le.list b/testing/php81/disabled-tests.ppc64le.list
new file mode 100644
index 00000000000..e2f4f874569
--- /dev/null
+++ b/testing/php81/disabled-tests.ppc64le.list
@@ -0,0 +1,3 @@
+Zend/tests/fibers/no-switch-force-close-finally.phpt
+Zend/tests/fibers/suspend-in-force-close-fiber-after-shutdown.phpt
+Zend/tests/fibers/throw-in-multiple-destroyed-fibers-after-shutdown.phpt
diff --git a/testing/php81/disabled-tests.riscv64.list b/testing/php81/disabled-tests.riscv64.list
new file mode 100644
index 00000000000..6648fa91f32
--- /dev/null
+++ b/testing/php81/disabled-tests.riscv64.list
@@ -0,0 +1,7 @@
+ext/dba/tests/bug78808.phpt
+ext/dba/tests/dba_lmdb.phpt
+ext/sockets/tests/bug63000.phpt
+ext/sockets/tests/socket_getopt.phpt
+ext/sockets/tests/mcast_ipv4_send.phpt
+ext/sockets/tests/mcast_ipv4_send_error.phpt
+ext/sockets/tests/mcast_ipv6_send.phpt
diff --git a/testing/php81/disabled-tests.s390x.list b/testing/php81/disabled-tests.s390x.list
new file mode 100644
index 00000000000..1d5deb0bbaa
--- /dev/null
+++ b/testing/php81/disabled-tests.s390x.list
@@ -0,0 +1,2 @@
+# https://gitlab.alpinelinux.org/alpine/aports/-/issues/15319
+ext/gd/tests/avif_decode_encode.phpt
diff --git a/testing/php81/disabled-tests.x86.list b/testing/php81/disabled-tests.x86.list
new file mode 100644
index 00000000000..703bd1953bb
--- /dev/null
+++ b/testing/php81/disabled-tests.x86.list
@@ -0,0 +1,8 @@
+ext/standard/tests/math/cos_basic.phpt
+ext/standard/tests/math/cos_variation.phpt
+ext/standard/tests/math/sin_basic.phpt
+ext/standard/tests/math/sin_variation.phpt
+ext/standard/tests/math/tan_variation.phpt
+
+# https://github.com/php/php-src/issues/12076
+ext/sqlite3/tests/sqlite3_bind_bug68849.phpt
diff --git a/testing/php81/fix-curl.patch b/testing/php81/fix-curl.patch
new file mode 100644
index 00000000000..c12313a3d10
--- /dev/null
+++ b/testing/php81/fix-curl.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/php/php-src/commit/404803577db5e53209a5ae881c39c9092b7deacb
+From 404803577db5e53209a5ae881c39c9092b7deacb Mon Sep 17 00:00:00 2001
+From: Ayesh Karunaratne <ayesh@aye.sh>
+Date: Thu, 1 Feb 2024 02:03:55 +0700
+Subject: [PATCH] ext/curl: Fix failing tests due to string changes in libcurl
+ 8.6.0
+
+Upstream libcurl 8.6.0 contains a change[^1] that caused a test failure.
+This fixes it by updating the test's `EXPECTF` to use a regex to account for both string patterns.
+
+[^1]: https://github.com/curl/curl/commit/45cf4755e71f#diff-a8a54563608f8155973318f4ddb61d7328dab512b8ff2b5cc48cc76979d4204cL1683
+
+Closes GH-13293.
+---
+ NEWS | 2 ++
+ ext/curl/tests/bug77946.phpt | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ext/curl/tests/bug77946.phpt b/ext/curl/tests/bug77946.phpt
+index 8b1e70675554f..7b836187d6bfb 100644
+--- a/ext/curl/tests/bug77946.phpt
++++ b/ext/curl/tests/bug77946.phpt
+@@ -34,4 +34,4 @@ curl_multi_close($mh);
+ --EXPECTF--
+ int(1)
+ int(1)
+-string(%d) "Protocol %Sunknown%S not supported or disabled in libcurl"
++string(%d) "Protocol %Sunknown%S %rnot supported( or disabled in libcurl)?%r"
diff --git a/testing/php81/fix-icu74.patch b/testing/php81/fix-icu74.patch
new file mode 100644
index 00000000000..077aa0b9735
--- /dev/null
+++ b/testing/php81/fix-icu74.patch
@@ -0,0 +1,13 @@
+https://github.com/php/php-src/issues/12635
+
+diff --git a/ext/intl/tests/bug69398.phpt b/ext/intl/tests/bug69398.phpt
+index 02c4b7daef..d7633d54bb 100644
+--- a/ext/intl/tests/bug69398.phpt
++++ b/ext/intl/tests/bug69398.phpt
+@@ -13,5 +13,5 @@
+ echo IntlDateFormatter::formatObject ($date, array(IntlDateFormatter::SHORT, IntlDateFormatter::NONE), 'ko_KR'), "\n";
+ ?>
+ --EXPECT--
+-04/04/2015
++4/4/15
+ 15. 4. 4.
diff --git a/testing/php81/fix-lfs64.patch b/testing/php81/fix-lfs64.patch
new file mode 100644
index 00000000000..e50904ac8c9
--- /dev/null
+++ b/testing/php81/fix-lfs64.patch
@@ -0,0 +1,30 @@
+Patch-Source: https://github.com/php/php-src/issues/11678
+
+diff --git a/main/streams/cast.c b/main/streams/cast.c
+index 3bad65fbac..05cab34658 100644
+--- a/main/streams/cast.c
++++ b/main/streams/cast.c
+@@ -102,8 +102,7 @@ static ssize_t stream_cookie_writer(void *cookie, const char *buffer, size_t siz
+ return php_stream_write(((php_stream *)cookie), (char *)buffer, size);
+ }
+
+-# ifdef COOKIE_SEEKER_USES_OFF64_T
+-static int stream_cookie_seeker(void *cookie, off64_t *position, int whence)
++static int stream_cookie_seeker(void *cookie, off_t *position, int whence)
+ {
+
+ *position = php_stream_seek((php_stream *)cookie, (zend_off_t)*position, whence);
+@@ -113,13 +112,6 @@ static int stream_cookie_seeker(void *cookie, off64_t *position, int whence)
+ }
+ return 0;
+ }
+-# else
+-static int stream_cookie_seeker(void *cookie, zend_off_t position, int whence)
+-{
+-
+- return php_stream_seek((php_stream *)cookie, position, whence);
+-}
+-# endif
+
+ static int stream_cookie_closer(void *cookie)
+ {
diff --git a/testing/php81/fix-libxml-1.patch b/testing/php81/fix-libxml-1.patch
new file mode 100644
index 00000000000..e6b113e2887
--- /dev/null
+++ b/testing/php81/fix-libxml-1.patch
@@ -0,0 +1,67 @@
+Patch-Source: https://github.com/php/php-src/commit/0a39890c967aa57225bb6bdf4821aff7a3a3c082
+From 0a39890c967aa57225bb6bdf4821aff7a3a3c082 Mon Sep 17 00:00:00 2001
+From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
+Date: Fri, 1 Dec 2023 18:03:35 +0100
+Subject: [PATCH] Fix libxml2 2.12 build due to API breaks
+
+See https://github.com/php/php-src/actions/runs/7062192818/job/19225478601
+---
+ ext/libxml/libxml.c | 14 ++++++++++----
+ ext/soap/php_sdl.c | 2 +-
+ 2 files changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c
+index 22eb1901b8909..1de693892b7aa 100644
+--- a/ext/libxml/libxml.c
++++ b/ext/libxml/libxml.c
+@@ -472,7 +472,11 @@ static void _php_libxml_free_error(void *ptr)
+ xmlResetError((xmlErrorPtr) ptr);
+ }
+
+-static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
++#if LIBXML_VERSION >= 21200
++static void _php_list_set_error_structure(const xmlError *error, const char *msg)
++#else
++static void _php_list_set_error_structure(xmlError *error, const char *msg)
++#endif
+ {
+ xmlError error_copy;
+ int ret;
+@@ -725,7 +729,11 @@ PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...)
+ va_end(args);
+ }
+
++#if LIBXML_VERSION >= 21200
++PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
++#else
+ PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
++#endif
+ {
+ _php_list_set_error_structure(error, NULL);
+
+@@ -957,11 +965,9 @@ PHP_FUNCTION(libxml_use_internal_errors)
+ /* {{{ Retrieve last error from libxml */
+ PHP_FUNCTION(libxml_get_last_error)
+ {
+- xmlErrorPtr error;
+-
+ ZEND_PARSE_PARAMETERS_NONE();
+
+- error = xmlGetLastError();
++ const xmlError *error = xmlGetLastError();
+
+ if (error) {
+ object_init_ex(return_value, libxmlerror_class_entry);
+diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c
+index 749f5a5685ec2..b731114775ad7 100644
+--- a/ext/soap/php_sdl.c
++++ b/ext/soap/php_sdl.c
+@@ -332,7 +332,7 @@ static void load_wsdl_ex(zval *this_ptr, char *struri, sdlCtx *ctx, int include)
+ sdl_restore_uri_credentials(ctx);
+
+ if (!wsdl) {
+- xmlErrorPtr xmlErrorPtr = xmlGetLastError();
++ const xmlError *xmlErrorPtr = xmlGetLastError();
+
+ if (xmlErrorPtr) {
+ soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
diff --git a/testing/php81/fix-libxml-2.patch b/testing/php81/fix-libxml-2.patch
new file mode 100644
index 00000000000..ace186391f6
--- /dev/null
+++ b/testing/php81/fix-libxml-2.patch
@@ -0,0 +1,244 @@
+Patch-Source: https://github.com/php/php-src/commit/061058a9b1bbd90d27d97d79aebcf2b5029767b0
+From 061058a9b1bbd90d27d97d79aebcf2b5029767b0 Mon Sep 17 00:00:00 2001
+From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
+Date: Wed, 29 Nov 2023 20:49:29 +0100
+Subject: [PATCH] Test fixes for libxml2 2.12.0
+
+---
+ NEWS | 1 +
+ ext/dom/tests/DOMDocument_loadXML_error1.phpt | 4 +++
+ .../DOMDocument_loadXML_error1_gte2_12.phpt | 26 ++++++++++++++++
+ .../DOMDocument_loadXML_error2_gte2_11.phpt | 2 +-
+ .../DOMDocument_loadXML_error2_gte2_12.phpt | 30 +++++++++++++++++++
+ ext/dom/tests/DOMDocument_load_error1.phpt | 4 +++
+ .../DOMDocument_load_error1_gte2_12.phpt | 26 ++++++++++++++++
+ .../DOMDocument_load_error2_gte2_11.phpt | 2 +-
+ .../DOMDocument_load_error2_gte2_12.phpt | 30 +++++++++++++++++++
+ ext/xml/tests/bug81351.phpt | 4 +--
+ ext/xml/tests/xml_error_string_basic.phpt | 6 ++--
+ 11 files changed, 128 insertions(+), 7 deletions(-)
+ create mode 100644 ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt
+ create mode 100644 ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt
+ create mode 100644 ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt
+ create mode 100644 ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt
+
+diff --git a/ext/dom/tests/DOMDocument_loadXML_error1.phpt b/ext/dom/tests/DOMDocument_loadXML_error1.phpt
+index 14d99e4ed9ad9..2af3217bd6c6a 100644
+--- a/ext/dom/tests/DOMDocument_loadXML_error1.phpt
++++ b/ext/dom/tests/DOMDocument_loadXML_error1.phpt
+@@ -1,5 +1,9 @@
+ --TEST--
+ Test DOMDocument::loadXML() detects not-well formed XML
++--SKIPIF--
++<?php
++if (LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version < 2.12');
++?>
+ --DESCRIPTION--
+ This test verifies the method detects an opening and ending tag mismatch
+ Environment variables used in the test:
+diff --git a/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt b/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt
+new file mode 100644
+index 0000000000000..e1ded0ffadd7f
+--- /dev/null
++++ b/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt
+@@ -0,0 +1,26 @@
++--TEST--
++Test DOMDocument::loadXML() detects not-well formed XML
++--SKIPIF--
++<?php
++if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
++?>
++--DESCRIPTION--
++This test verifies the method detects an opening and ending tag mismatch
++Environment variables used in the test:
++- XML_FILE: the xml file to load
++- LOAD_OPTIONS: the second parameter to pass to the method
++- EXPECTED_RESULT: the expected result
++--CREDITS--
++Antonio Diaz Ruiz <dejalatele@gmail.com>
++--EXTENSIONS--
++dom
++--ENV--
++XML_FILE=/not_well_formed.xml
++LOAD_OPTIONS=0
++EXPECTED_RESULT=0
++--FILE_EXTERNAL--
++domdocumentloadxml_test_method.inc
++--EXPECTF--
++Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s
++
++Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s
+diff --git a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
+index ff5ceb3fbed53..f52d3348138c5 100644
+--- a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
++++ b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
+@@ -2,7 +2,7 @@
+ Test DOMDocument::loadXML() detects not-well formed XML
+ --SKIPIF--
+ <?php
+-if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
++if (LIBXML_VERSION < 21100 || LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version >= 2.11 && <= 2.12');
+ ?>
+ --DESCRIPTION--
+ This test verifies the method detects attributes values not closed between " or '
+diff --git a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt
+new file mode 100644
+index 0000000000000..6a3ff5841f565
+--- /dev/null
++++ b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt
+@@ -0,0 +1,30 @@
++--TEST--
++Test DOMDocument::loadXML() detects not-well formed XML
++--SKIPIF--
++<?php
++if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
++?>
++--DESCRIPTION--
++This test verifies the method detects attributes values not closed between " or '
++Environment variables used in the test:
++- XML_FILE: the xml file to load
++- LOAD_OPTIONS: the second parameter to pass to the method
++- EXPECTED_RESULT: the expected result
++--CREDITS--
++Antonio Diaz Ruiz <dejalatele@gmail.com>
++--EXTENSIONS--
++dom
++--ENV--
++XML_FILE=/not_well_formed2.xml
++LOAD_OPTIONS=0
++EXPECTED_RESULT=0
++--FILE_EXTERNAL--
++domdocumentloadxml_test_method.inc
++--EXPECTF--
++Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 4 in %s on line %d
++
++Warning: DOMDocument::loadXML(): internal error: xmlParseStartTag: problem parsing attributes in Entity, line: 4 in %s on line %d
++
++Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag book line 4 in Entity, line: 4 in %s on line %d
++
++Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: books line 3 and book in Entity, line: 7 in %s on line %d
+diff --git a/ext/dom/tests/DOMDocument_load_error1.phpt b/ext/dom/tests/DOMDocument_load_error1.phpt
+index f736b0a0e81c6..2da8c0cd18b4e 100644
+--- a/ext/dom/tests/DOMDocument_load_error1.phpt
++++ b/ext/dom/tests/DOMDocument_load_error1.phpt
+@@ -1,5 +1,9 @@
+ --TEST--
+ Test DOMDocument::load() detects not-well formed XML
++--SKIPIF--
++<?php
++if (LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version < 2.12');
++?>
+ --DESCRIPTION--
+ This test verifies the method detects an opening and ending tag mismatch
+ Environment variables used in the test:
+diff --git a/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt b/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt
+new file mode 100644
+index 0000000000000..183c8406fdfc8
+--- /dev/null
++++ b/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt
+@@ -0,0 +1,26 @@
++--TEST--
++Test DOMDocument::load() detects not-well formed XML
++--SKIPIF--
++<?php
++if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
++?>
++--DESCRIPTION--
++This test verifies the method detects an opening and ending tag mismatch
++Environment variables used in the test:
++- XML_FILE: the xml file to load
++- LOAD_OPTIONS: the second parameter to pass to the method
++- EXPECTED_RESULT: the expected result
++--CREDITS--
++Antonio Diaz Ruiz <dejalatele@gmail.com>
++--EXTENSIONS--
++dom
++--ENV--
++XML_FILE=/not_well_formed.xml
++LOAD_OPTIONS=0
++EXPECTED_RESULT=0
++--FILE_EXTERNAL--
++domdocumentload_test_method.inc
++--EXPECTF--
++Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s
++
++Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s
+diff --git a/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt b/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
+index 32b6bf161142e..4d9f992b3bafd 100644
+--- a/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
++++ b/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
+@@ -2,7 +2,7 @@
+ Test DOMDocument::load() detects not-well formed
+ --SKIPIF--
+ <?php
+-if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
++if (LIBXML_VERSION < 21100 || LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version >= 2.11 && <= 2.12');
+ ?>
+ --DESCRIPTION--
+ This test verifies the method detects attributes values not closed between " or '
+diff --git a/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt b/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt
+new file mode 100644
+index 0000000000000..4fadf41736124
+--- /dev/null
++++ b/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt
+@@ -0,0 +1,30 @@
++--TEST--
++Test DOMDocument::load() detects not-well formed
++--SKIPIF--
++<?php
++if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
++?>
++--DESCRIPTION--
++This test verifies the method detects attributes values not closed between " or '
++Environment variables used in the test:
++- XML_FILE: the xml file to load
++- LOAD_OPTIONS: the second parameter to pass to the method
++- EXPECTED_RESULT: the expected result
++--CREDITS--
++Antonio Diaz Ruiz <dejalatele@gmail.com>
++--EXTENSIONS--
++dom
++--ENV--
++XML_FILE=/not_well_formed2.xml
++LOAD_OPTIONS=0
++EXPECTED_RESULT=0
++--FILE_EXTERNAL--
++domdocumentload_test_method.inc
++--EXPECTF--
++Warning: DOMDocument::load(): AttValue: " or ' expected in %s on line %d
++
++Warning: DOMDocument::load(): internal error: xmlParseStartTag: problem parsing attributes in %s on line %d
++
++Warning: DOMDocument::load(): Couldn't find end of Start Tag book line 4 in %s on line %d
++
++Warning: DOMDocument::load(): Opening and ending tag mismatch: books line 3 and book in %s on line %d
+diff --git a/ext/xml/tests/bug81351.phpt b/ext/xml/tests/bug81351.phpt
+index 78aea041046f7..7380a9a937008 100644
+--- a/ext/xml/tests/bug81351.phpt
++++ b/ext/xml/tests/bug81351.phpt
+@@ -21,6 +21,6 @@ $code = xml_get_error_code($parser);
+ $error = xml_error_string($code);
+ echo "xml_parse returned $success, xml_get_error_code = $code, xml_error_string = $error\r\n";
+ ?>
+---EXPECT--
++--EXPECTF--
+ xml_parse returned 1, xml_get_error_code = 0, xml_error_string = No error
+-xml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end
++%rxml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end|xml_parse returned 0, xml_get_error_code = 77, xml_error_string = Tag not finished%r
+diff --git a/ext/xml/tests/xml_error_string_basic.phpt b/ext/xml/tests/xml_error_string_basic.phpt
+index 86dede1730f7e..a23ec8741d592 100644
+--- a/ext/xml/tests/xml_error_string_basic.phpt
++++ b/ext/xml/tests/xml_error_string_basic.phpt
+@@ -21,9 +21,9 @@ foreach ($xmls as $xml) {
+ xml_parser_free($xml_parser);
+ }
+ ?>
+---EXPECT--
+-int(5)
+-string(20) "Invalid document end"
++--EXPECTF--
++int(%r5|77%r)
++string(%d) %r"Invalid document end"|"Tag not finished"%r
+ int(47)
+ string(35) "Processing Instruction not finished"
+ int(57)
diff --git a/testing/php81/fix-s390x-test.patch b/testing/php81/fix-s390x-test.patch
new file mode 100644
index 00000000000..dc4b55a95d7
--- /dev/null
+++ b/testing/php81/fix-s390x-test.patch
@@ -0,0 +1,42 @@
+Patch-Source: https://github.com/php/php-src/commit/962c082a5b7b94f7a3779378e8ab83bedb4445ad
+From 962c082a5b7b94f7a3779378e8ab83bedb4445ad Mon Sep 17 00:00:00 2001
+From: Anatol Belski <ab@php.net>
+Date: Sun, 2 Oct 2022 19:54:34 +0200
+Subject: [PATCH] fileinfo: Fix expected values for test on s390x
+
+The peak memory usage increased by the blanket 1mb on s390 only.
+This is good to note but otherwise seems acceptable, so just
+adjusting the test is fine.
+
+Signed-off-by: Anatol Belski <ab@php.net>
+---
+ ext/fileinfo/tests/bug78987.phpt | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/ext/fileinfo/tests/bug78987.phpt b/ext/fileinfo/tests/bug78987.phpt
+index 617d8ca4412d..423ecb1b8517 100644
+--- a/ext/fileinfo/tests/bug78987.phpt
++++ b/ext/fileinfo/tests/bug78987.phpt
+@@ -11,14 +11,14 @@ $minSize = 128 * 1024;
+ $maxSize = 16 * 1024 * 1024;
+
+ $map = array(
+- 131072 => 9113600,
+- 262144 => 9113600,
+- 524288 => 10850304,
+- 1048576 => 11210752,
+- 2097152 => 13312000,
+- 4194304 => 17510400,
+- 8388608 => 23801856,
+- 16777216 => 36384768,
++ 131072 => 10055680,
++ 262144 => 10055680,
++ 524288 => 11898880,
++ 1048576 => 12152832,
++ 2097152 => 14254080,
++ 4194304 => 18452480,
++ 8388608 => 24743936,
++ 16777216 => 37326848,
+ );
+ for($size = $minSize; $size <= $maxSize; $size *= 2) {
+ $content = str_repeat('0', $size);
diff --git a/testing/php81/fix-tests-devserver.patch b/testing/php81/fix-tests-devserver.patch
new file mode 100644
index 00000000000..5447980b98a
--- /dev/null
+++ b/testing/php81/fix-tests-devserver.patch
@@ -0,0 +1,23 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Mon, 01 May 2017 01:33:00 +0200
+Subject: [PATCH] Fix tests failing due to extra message from built-in web server
+
+Remove messages like:
+
+ PHP 7.1.4 Development Server started at Mon May 1 00:42:39 2017
+
+from test outputs, because tests do not expect them. I have no clue what
+happens here...
+
+--- a/run-tests.php
++++ b/run-tests.php
+@@ -2563,6 +2563,9 @@
+ // Does the output match what is expected?
+ $output = preg_replace("/\r\n/", "\n", trim($out));
+
++ // Remove message from built-in development server.
++ $output = preg_replace("/^PHP [0-9.]+ Development Server started at .*\n\n?/m", "", $output);
++
+ /* when using CGI, strip the headers from the output */
+ $headers = [];
+
diff --git a/testing/php81/includedir.patch b/testing/php81/includedir.patch
new file mode 100644
index 00000000000..7c172a0b27a
--- /dev/null
+++ b/testing/php81/includedir.patch
@@ -0,0 +1,41 @@
+--- a/scripts/Makefile.frag
++++ b/scripts/Makefile.frag
+@@ -2,7 +2,7 @@
+ # Build environment install
+ #
+
+-phpincludedir = $(includedir)/php
++phpincludedir = $(includedir)/php81
+ phpbuilddir = $(libdir)/build
+
+ BUILD_FILES = \
+--- a/ext/pdo/Makefile.frag
++++ b/ext/pdo/Makefile.frag
+@@ -1,4 +1,4 @@
+-phpincludedir=$(prefix)/include/php
++phpincludedir=$(prefix)/include/php81
+
+ PDO_HEADER_FILES= \
+ php_pdo.h \
+--- a/scripts/php-config.in
++++ b/scripts/php-config.in
+@@ -6,7 +6,7 @@
+ exec_prefix="@exec_prefix@"
+ version="@PHP_VERSION@"
+ vernum="@PHP_VERSION_ID@"
+-include_dir="@includedir@/php"
++include_dir="@includedir@/php81"
+ includes="-I$include_dir -I$include_dir/main -I$include_dir/TSRM -I$include_dir/Zend -I$include_dir/ext -I$include_dir/ext/date/lib"
+ ldflags="@PHP_LDFLAGS@"
+ libs="@EXTRA_LIBS@"
+--- a/scripts/phpize.in
++++ b/scripts/phpize.in
+@@ -5,7 +5,7 @@
+ datarootdir='@datarootdir@'
+ exec_prefix="`eval echo @exec_prefix@`"
+ phpdir="`eval echo @libdir@`/build"
+-includedir="`eval echo @includedir@`/php"
++includedir="`eval echo @includedir@`/php81"
+ builddir="`pwd`"
+ SED="@SED@"
+
diff --git a/testing/php81/install-pear.patch b/testing/php81/install-pear.patch
new file mode 100644
index 00000000000..1c9f07f89d4
--- /dev/null
+++ b/testing/php81/install-pear.patch
@@ -0,0 +1,14 @@
+--- ./pear/Makefile.frag.orig 2013-04-12 07:02:27.041602514 +0000
++++ ./pear/Makefile.frag 2013-04-12 07:04:09.065836822 +0000
+@@ -1,7 +1,10 @@
+ peardir=$(PEAR_INSTALLDIR)
+
++# help the built php to find xml extension so we can install pear
++PEAR_INSTALL_XML_FLAGS = -d extension="$(top_builddir)/modules/xml.so" -d extension="$(top_builddir)/modules/phar.so"
++
+ # Skip all php.ini files altogether
+-PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0
++PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0 $(PEAR_INSTALL_XML_FLAGS)
+
+ WGET = `which wget 2>/dev/null`
+ FETCH = `which fetch 2>/dev/null`
diff --git a/testing/php81/php81-fpm-version-suffix.patch b/testing/php81/php81-fpm-version-suffix.patch
new file mode 100644
index 00000000000..b73459dc707
--- /dev/null
+++ b/testing/php81/php81-fpm-version-suffix.patch
@@ -0,0 +1,79 @@
+--- a/sapi/fpm/fpm/fpm_conf.c
++++ b/sapi/fpm/fpm/fpm_conf.c
+@@ -1262,7 +1262,7 @@
+ }
+
+ if (!fpm_global_config.error_log) {
+- fpm_global_config.error_log = strdup("log/php-fpm.log");
++ fpm_global_config.error_log = strdup("log/php81/error.log");
+ }
+
+ #ifdef HAVE_SYSTEMD
+@@ -1273,7 +1273,7 @@
+
+ #ifdef HAVE_SYSLOG_H
+ if (!fpm_global_config.syslog_ident) {
+- fpm_global_config.syslog_ident = strdup("php-fpm");
++ fpm_global_config.syslog_ident = strdup("php-fpm81");
+ }
+
+ if (fpm_global_config.syslog_facility < 0) {
+@@ -1777,7 +1777,7 @@
+ if (fpm_globals.prefix == NULL) {
+ spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR);
+ } else {
+- spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix);
++ spprintf(&tmp, 0, "%s/etc/php81/php-fpm.conf", fpm_globals.prefix);
+ }
+
+ if (!tmp) {
+
+--- a/sapi/fpm/php-fpm.conf.in
++++ b/sapi/fpm/php-fpm.conf.in
+@@ -16,3 +16,3 @@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++;pid = run/php-fpm81.pid
+
+@@ -22,4 +22,4 @@
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+-; Default Value: log/php-fpm.log
+-;error_log = log/php-fpm.log
++; Default Value: log/php81/error.log
++;error_log = log/php81/error.log
+
+@@ -35,4 +35,4 @@
+ ; which must suit common needs.
+-; Default Value: php-fpm
+-;syslog.ident = php-fpm
++; Default Value: php-fpm81
++;syslog.ident = php-fpm81
+
+--- a/sapi/fpm/www.conf.in
++++ b/sapi/fpm/www.conf.in
+@@ -273,7 +273,7 @@
+
+ ; The access log file
+ ; Default: not set
+-;access.log = log/$pool.access.log
++;access.log = log/php81/$pool.access.log
+
+ ; The access log format.
+ ; The following syntax is allowed
+@@ -337,7 +337,7 @@
+ ; The log file for slow requests
+ ; Default Value: not set
+ ; Note: slowlog is mandatory if request_slowlog_timeout is set
+-;slowlog = log/$pool.log.slow
++;slowlog = log/php81/$pool.slow.log
+
+ ; The timeout for serving a single request after which a PHP backtrace will be
+ ; dumped to the 'slowlog' file. A value of '0s' means 'off'.
+@@ -450,6 +450,6 @@
+ ; specified at startup with the -d argument
+ ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
+ ;php_flag[display_errors] = off
+-;php_admin_value[error_log] = /var/log/fpm-php.www.log
++;php_admin_value[error_log] = /var/log/php81/$pool.error.log
+ ;php_admin_flag[log_errors] = on
+ ;php_admin_value[memory_limit] = 32M
diff --git a/testing/php81/php81-fpm.initd b/testing/php81/php81-fpm.initd
new file mode 100644
index 00000000000..87a54b27f6f
--- /dev/null
+++ b/testing/php81/php81-fpm.initd
@@ -0,0 +1,93 @@
+#!/sbin/openrc-run
+
+# If you want to run separate master process per pool, then create a symlink
+# to this runscript for each pool. In that mode, the php-fpm daemon is started
+# as nobody by default. You can override the user (and group) by declaring
+# variable "user" and optionally "group" in conf.d file, or in the $fpm_config
+# file (the former has precedence).
+
+: ${name:="PHP FastCGI Process Manager"}
+
+command="/usr/sbin/php-fpm81"
+command_background="yes"
+start_stop_daemon_args="--quiet"
+pidfile="/run/$RC_SVCNAME/php-fpm.pid"
+retry="SIGTERM/20"
+
+# configtest is here only for backward compatibility
+extra_commands="checkconfig configtest"
+extra_started_commands="reload reopen"
+description_checkconfig="Run php-fpm config check"
+description_reload="Gracefully reload workers and config"
+description_reopen="Reopen log files"
+
+required_files="$fpm_config"
+
+depend() {
+ need net
+ use apache2 lighttpd nginx
+}
+
+init_vars() {
+ # Defaults for single master process with multiple pools
+ if [ "$RC_SVCNAME" = "php-fpm81" ]; then
+ : ${fpm_config:="/etc/php81/php-fpm.conf"}
+ : ${user:="root"}
+ # Defaults for master process per pool
+ else
+ : ${fpm_config="/etc/php81/php-fpm.d/${RC_SVCNAME#php-fpm81.}.conf"}
+ : ${user:="$(conf_get user)"}
+ : ${user:="nobody"}
+ : ${group:="$(conf_get group)"}
+ fi
+ command_args="--nodaemonize --fpm-config $fpm_config"
+ start_stop_daemon_args="$start_stop_daemon_args
+ --user $user ${group:+"--group $group"}"
+}
+
+start_pre() {
+ checkconfig || return 1
+
+ # If unix socket is used (instead of TCP/IP), then ensure that the
+ # directory exists and has correct privileges.
+ local listen="$(conf_get listen)"
+ if [ "${listen:0:1}" = "/" ]; then
+ checkpath -d -o $user:$group "$(dirname "$listen")"
+ fi
+
+ checkpath -d "$(dirname "$pidfile")"
+}
+
+reload() {
+ ebegin "Reloading $name"
+ start-stop-daemon --signal USR2 --pidfile "$pidfile"
+ eend $?
+}
+
+reopen() {
+ ebegin "Reopening $name log files"
+ start-stop-daemon --signal USR1 --pidfile "$pidfile"
+ eend $?
+}
+
+checkconfig() {
+ init_vars
+ ebegin "Checking $fpm_config"
+
+ local out
+ out="$(su -s /bin/sh -c "$command --test --fpm-config $fpm_config" $user 2>&1)" || {
+ printf "%s\n" "$out"
+ eend 1 "failed, please correct errors above"
+ return 1
+ }
+}
+
+configtest() {
+ ewarn "configtest is deprecated, use checkconfig instead"
+ checkconfig
+}
+
+conf_get() {
+ local key="$1"
+ sed -nE "s/^${key}\s*=\s*\"?([^\";]+).*/\1/p" "$fpm_config" | head -n 1
+}
diff --git a/testing/php81/php81-fpm.logrotate b/testing/php81/php81-fpm.logrotate
new file mode 100644
index 00000000000..29f2a7d594b
--- /dev/null
+++ b/testing/php81/php81-fpm.logrotate
@@ -0,0 +1,13 @@
+/var/log/php81/*.log {
+ rotate 7
+ daily
+ missingok
+ notifempty
+ delaycompress
+ compress
+ dateext
+ sharedscripts
+ postrotate
+ /etc/init.d/php-fpm81 --ifstarted --quiet reopen
+ endscript
+}
diff --git a/testing/php81/php81-module.conf b/testing/php81/php81-module.conf
new file mode 100644
index 00000000000..b8b782b254e
--- /dev/null
+++ b/testing/php81/php81-module.conf
@@ -0,0 +1,13 @@
+LoadModule php_module modules/mod_php81.so
+
+DirectoryIndex index.php index.html
+
+<FilesMatch \.php$>
+ SetHandler application/x-httpd-php
+</FilesMatch>
+
+# Uncomment the following to allow .phps files to be handled by the php source filter,
+# and displayed as syntax-highlighted source code
+#<FilesMatch "\.phps$">
+# SetHandler application/x-httpd-php-source
+#</FilesMatch>
diff --git a/testing/php81/sharedir.patch b/testing/php81/sharedir.patch
new file mode 100644
index 00000000000..e780ccab000
--- /dev/null
+++ b/testing/php81/sharedir.patch
@@ -0,0 +1,11 @@
+--- a/php.ini-production
++++ b/php.ini-production
+@@ -742,7 +742,7 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++include_path = ".:/usr/share/php81"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
diff --git a/testing/php82-pdlib/APKBUILD b/testing/php82-pdlib/APKBUILD
new file mode 100644
index 00000000000..62502bb7b09
--- /dev/null
+++ b/testing/php82-pdlib/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: goodspb <goodspb.luo@gmail.com>
+# Contributor: Adriaan Groenenboom <agboom@pm.me>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pdlib
+_extname=pdlib
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="PHP 8.2 extension for Dlib"
+url="https://github.com/goodspb/pdlib"
+# x86, s390x: check fails
+# ppc64le: fails to build https://github.com/goodspb/pdlib/issues/19
+arch="all !x86 !s390x !ppc64le"
+license="MIT"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common dlib"
+makedepends="dlib-dev $_php-dev $_php-bz2"
+source="php-$_extname-$pkgver.tar.gz::https://github.com/goodspb/$_extname/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ # Tests require bz2 extension which is not bundled
+ local _modules=/usr/lib/$_php/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ TESTS=--show-diff SKIP_ONLINE_TESTS=1 \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/bz2.so \
+ -d extension=modules/$_extname.so"
+ $_php -dextension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a87316495c04e5ca9b8b6980f859b1e9b4cfccc9b9ad0ab5f83320f2e9bc2f92a006fe0fe9621b21a9755efdf719e533519dfc2319d437a5475e067d5e633661 php-pdlib-1.1.0.tar.gz
+"
diff --git a/testing/php82-pecl-apfd/APKBUILD b/testing/php82-pecl-apfd/APKBUILD
new file mode 100644
index 00000000000..6bc29e80f99
--- /dev/null
+++ b/testing/php82-pecl-apfd/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-apfd
+_extname=apfd
+pkgver=1.0.3
+pkgrel=0
+pkgdesc="PHP 8.2 extension for always populate form data - PECL"
+url="https://pecl.php.net/package/apfd"
+arch="all"
+license="BSD-2-Clause"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+checkdepends="$_php-cgi"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+1290594de5d2992cb2d46308ee5c3f44d30dc478afc60ce38f1bc3215c56fa3f396e6a8a90ed9288d4c5c61e8f8bdf77c682bfa0d83494647c61e0920048ea59 php-pecl-apfd-1.0.3.tgz
+"
diff --git a/testing/php82-pecl-excimer/APKBUILD b/testing/php82-pecl-excimer/APKBUILD
new file mode 100644
index 00000000000..1657b60af61
--- /dev/null
+++ b/testing/php82-pecl-excimer/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-excimer
+_extname=excimer
+pkgver=1.2.1
+pkgrel=0
+pkgdesc="Interrupting timer and low-overhead sampling profiler PHP 8.2 - PECL"
+url="https://pecl.php.net/package/excimer"
+arch="all"
+license="Apache-2.0"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a5616fd1897342c0dc59cf8551ed498b88520e66b9c2a2e031df670c447c42243946ed1c2f0b1171bcb2be9777a8796d4caa4fb7c636f5d6fad03a62509ce3fd php-pecl-excimer-1.2.1.tar.gz
+"
diff --git a/testing/php82-pecl-immutable_cache/APKBUILD b/testing/php82-pecl-immutable_cache/APKBUILD
new file mode 100644
index 00000000000..11f85f5bfce
--- /dev/null
+++ b/testing/php82-pecl-immutable_cache/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+
+pkgname=php82-pecl-immutable_cache
+_extname=immutable_cache
+pkgver=6.1.0
+pkgrel=0
+pkgdesc="PHP 8.2 extension shared memory cache of immutable values - PECL"
+url="https://pecl.php.net/package/immutable_cache"
+arch="all"
+license="PHP-3.01"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -dextension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+7e3c8cc0bd5f7bbb94adf676d598cc0258d2f105cb56aeb355cb94c955d10d74520f6444f8123d9a7c579663e6e3510f0260b3450fa83d283a30972cce119aff php-pecl-immutable_cache-6.1.0.tgz
+"
diff --git a/testing/php82-pecl-jsmin/APKBUILD b/testing/php82-pecl-jsmin/APKBUILD
new file mode 100644
index 00000000000..1097cb17546
--- /dev/null
+++ b/testing/php82-pecl-jsmin/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-jsmin
+_extname=jsmin
+pkgver=3.0.0
+pkgrel=0
+_jqver=2.1.3
+pkgdesc="PHP 8.2 extension for minifying JavaScript - PECL"
+url="https://pecl.php.net/package/jsmin"
+arch="all !ppc64le" # test fails on builder
+license="PHP-3.01"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz
+ jquery-$_jqver.js::https://github.com/sqmk/pecl-jsmin/raw/v$pkgver/tests/data/jquery-$_jqver.js
+ fix-php8.patch
+ fix-tests.patch
+ "
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ mkdir -p tests/data
+ cp "$srcdir"/jquery-$_jqver.js tests/data/
+
+ case "$CARCH" in
+ aarch64|x86_64) rm tests/call-multiple-times.phpt ;;
+ esac
+ $_php -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS='--show-diff '
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a465ae024a49bb8ac20463efc6b2546021806c2c43053f42c7ebfea4924b9b647b6e7c0c673102e12ecd8b693666441dc07203edef216eee958fa62f73056ea6 php-pecl-jsmin-3.0.0.tgz
+b8eb1a740c63feaab8ac24d87f39f4cfe263694c972f4978b9f0e3092f912a722596fd094dd637d22f03816617e13210bf11fad9a545dbb0423dc821c827081e jquery-2.1.3.js
+72f4ea4aad457d1a557e05ff8457a689ea75419e414b0893c2bdf5d7216d70b7c26a4993e3c9fa97de3409d080b3cf2a5bd2f0c4b050854c02f08ac592da1f85 fix-php8.patch
+e44a2615d98d786e0188d3880b41f267dab2fa215fb17cd37b17f8cc499bee7dd9e4fe1def4707dbd6769fa40ba2dbf7895ba3544db427a7d851f69a515fa83c fix-tests.patch
+"
diff --git a/testing/php82-pecl-jsmin/fix-php8.patch b/testing/php82-pecl-jsmin/fix-php8.patch
new file mode 100644
index 00000000000..c8be3069563
--- /dev/null
+++ b/testing/php82-pecl-jsmin/fix-php8.patch
@@ -0,0 +1,87 @@
+From 3e49feb8362f14d6f13d79c9533edd900bbf1d21 Mon Sep 17 00:00:00 2001
+From: Qiangjun Ran <ranqiangjun@gmail.com>
+Date: Tue, 8 Jun 2021 14:43:34 +0800
+Subject: [PATCH] PHP 8 support
+
+Patch-Source: https://github.com/sqmk/pecl-jsmin/pull/59
+---
+ jsmin.c | 8 ++++----
+ jsmin.h | 4 ++--
+ php_jsmin.c | 6 +++---
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/jsmin.c b/jsmin.c
+index 2744aef..773dc09 100644
+--- a/jsmin.c
++++ b/jsmin.c
+@@ -34,7 +34,7 @@ SOFTWARE.
+ */
+
+ static jsmin_obj*
+-new_jsmin_obj(char *javascript TSRMLS_DC)
++new_jsmin_obj(char *javascript)
+ {
+ jsmin_obj *jmo = ecalloc(1, sizeof(jsmin_obj));
+ jmo->javascript = javascript;
+@@ -48,7 +48,7 @@ new_jsmin_obj(char *javascript TSRMLS_DC)
+ /* free_jsmin_obj -- frees up memory on struct
+ */
+ void
+-free_jsmin_obj(jsmin_obj *jmo TSRMLS_DC)
++free_jsmin_obj(jsmin_obj *jmo)
+ {
+ smart_string_free(&jmo->buffer);
+ efree(jmo);
+@@ -250,9 +250,9 @@ jsmin_action(int d, jsmin_obj *jmo)
+ */
+
+ jsmin_obj*
+-jsmin(char *javascript TSRMLS_DC)
++jsmin(char *javascript)
+ {
+- jsmin_obj *jmo = new_jsmin_obj(javascript TSRMLS_CC);
++ jsmin_obj *jmo = new_jsmin_obj(javascript);
+
+ jsmin_action(3, jmo);
+ while (jmo->theA != 0) {
+diff --git a/jsmin.h b/jsmin.h
+index 317b90b..0bda630 100644
+--- a/jsmin.h
++++ b/jsmin.h
+@@ -25,7 +25,7 @@ enum error_codes {
+ PHP_JSMIN_ERROR_UNTERMINATED_REGEX
+ };
+
+-extern jsmin_obj* jsmin(char *javascript TSRMLS_DC);
+-extern void free_jsmin_obj(jsmin_obj *jmo TSRMLS_DC);
++extern jsmin_obj* jsmin(char *javascript);
++extern void free_jsmin_obj(jsmin_obj *jmo);
+
+ #endif
+diff --git a/php_jsmin.c b/php_jsmin.c
+index a9783d4..6cc034a 100644
+--- a/php_jsmin.c
++++ b/php_jsmin.c
+@@ -105,11 +105,11 @@ PHP_FUNCTION(jsmin)
+
+ zval *ret_code = NULL;
+
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z/", &javascript, &javascript_len, &ret_code) == FAILURE) {
++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|z/", &javascript, &javascript_len, &ret_code) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+- jmo = jsmin(javascript TSRMLS_CC);
++ jmo = jsmin(javascript);
+ if (ret_code) {
+ zval_dtor(ret_code);
+ ZVAL_LONG(ret_code, jmo->errorCode);
+@@ -121,7 +121,7 @@ PHP_FUNCTION(jsmin)
+ } else {
+ ZVAL_STRINGL(return_value, jmo->buffer.c, jmo->buffer.len);
+ }
+- free_jsmin_obj(jmo TSRMLS_CC);
++ free_jsmin_obj(jmo);
+ }
+ /* }}} */
+
diff --git a/testing/php82-pecl-jsmin/fix-tests.patch b/testing/php82-pecl-jsmin/fix-tests.patch
new file mode 100644
index 00000000000..d7b9c636af6
--- /dev/null
+++ b/testing/php82-pecl-jsmin/fix-tests.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/sqmk/pecl-jsmin/pull/60
+
+diff --git a/tests/missing-argument.phpt b/tests/missing-argument.phpt
+index 57d0925..826038b 100644
+--- a/tests/missing-argument.phpt
++++ b/tests/missing-argument.phpt
+@@ -1,5 +1,9 @@
+ --TEST--
+ Missing argument throws warning
++--SKIPIF--
++<?php
++if (PHP_VERSION_ID >= 80000) die('skip Only for PHP < 8.0');
++?>
+ --FILE--
+ <?php
+
+diff --git a/tests/missing-argument8.phpt b/tests/missing-argument8.phpt
+new file mode 100644
+index 0000000..4638dc2
+--- /dev/null
++++ b/tests/missing-argument8.phpt
+@@ -0,0 +1,17 @@
++--TEST--
++Missing argument throws fatal error
++--SKIPIF--
++<?php
++if (PHP_VERSION_ID < 80000) die('skip Only for PHP >= 8.0');
++?>
++--FILE--
++<?php
++
++echo jsmin();
++
++--EXPECTF--
++Fatal error: Uncaught ArgumentCountError: jsmin() expects at least 1 argument, 0 given in %s
++Stack trace:
++#0 %s(3): jsmin()
++#1 {main}
++ thrown in %s on line 3
diff --git a/testing/php82-pecl-oauth/APKBUILD b/testing/php82-pecl-oauth/APKBUILD
new file mode 100644
index 00000000000..03b7835d108
--- /dev/null
+++ b/testing/php82-pecl-oauth/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-oauth
+_extname=oauth
+pkgver=2.0.8
+pkgrel=0
+pkgdesc="PHP 8.2 extension, OAuth is an authorization protocol built on top of HTTP - PECL"
+url="https://pecl.php.net/package/oauth"
+arch="all"
+license="BSD-3-Clause"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev curl-dev"
+checkdepends="$_php-openssl $_php-pcntl $_php-posix"
+#source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz
+source="php-$_extname-$pkgver.tgz::https://github.com/php/pecl-web_services-oauth/archive/refs/tags/$pkgver.tar.gz
+ fix-php-8-2.patch::https://github.com/php/pecl-web_services-oauth/commit/36a08239bf62c6fbc39ce38cf95ed42e098c022d.patch
+ fix-tests.patch
+ "
+builddir="$srcdir/pecl-web_services-$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ local _modules="/usr/lib/$_php/modules"
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/openssl.so \
+ -d extension=$_modules/pcntl.so \
+ -d extension=$_modules/posix.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+ $_php -dextension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/60_$_extname.ini
+}
+
+sha512sums="
+93ca722f70760db95c53fcf19cbc3175920785186c89bd50a7d30e952d5cc9dc4ce6758324b770a60a759a748cf44c3c9caae52e629e6f5578b4c2c1a07ee950 php-oauth-2.0.8.tgz
+db69d0e8a2e5471c5d38aec8050796913c363908d21a00d373348e88990683e63d90bdc2a0150733d7c568e077f52922f65ff62a2099d9f2285388d441494b47 fix-php-8-2.patch
+8944170fbc9e2e42a76fe9444e94cf28485ef3c2bac5e755a66eca93531f0c526acc23a30dcb5a273a598ccb377ce367cb6b673948c46f1e0e2478e71ebc5e38 fix-tests.patch
+"
diff --git a/testing/php82-pecl-oauth/fix-tests.patch b/testing/php82-pecl-oauth/fix-tests.patch
new file mode 100644
index 00000000000..ad8eb4a8c7e
--- /dev/null
+++ b/testing/php82-pecl-oauth/fix-tests.patch
@@ -0,0 +1,85 @@
+From 66e8e9cf9805c96dd9aa6a7c08ec0da5c2c6b656 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@php.net>
+Date: Fri, 9 Sep 2022 14:03:57 +0200
+Subject: [PATCH] fix for php 8.2: declare used properties
+
+---
+ oauth.c | 1 +
+ provider.c | 13 +++++++++++++
+ tests/oauthprovider_001.phpt | 12 ++++++++----
+ 3 files changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/oauth.c b/oauth.c
+index f845893..46eccda 100644
+--- a/oauth.c
++++ b/oauth.c
+@@ -2781,6 +2781,7 @@ PHP_MINIT_FUNCTION(oauth)
+ soo_exception_ce = zend_register_internal_class_ex(&soo_ex_ce, zend_exception_get_default());
+ zend_declare_property_null(soo_exception_ce, "lastResponse", sizeof("lastResponse")-1, ZEND_ACC_PUBLIC);
+ zend_declare_property_null(soo_exception_ce, "debugInfo", sizeof("debugInfo")-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(soo_exception_ce, "additionalInfo", sizeof("additionalInfo")-1, ZEND_ACC_PUBLIC);
+
+ REGISTER_STRING_CONSTANT("OAUTH_SIG_METHOD_HMACSHA1", OAUTH_SIG_METHOD_HMACSHA1, CONST_CS | CONST_PERSISTENT);
+ REGISTER_STRING_CONSTANT("OAUTH_SIG_METHOD_HMACSHA256", OAUTH_SIG_METHOD_HMACSHA256, CONST_CS | CONST_PERSISTENT);
+diff --git a/provider.c b/provider.c
+index 45880fb..43f2bc0 100644
+--- a/provider.c
++++ b/provider.c
+@@ -1184,6 +1184,19 @@ extern int oauth_provider_register_class(void) /* {{{ */
+ osce.create_object = oauth_provider_new;
+ oauthprovider = zend_register_internal_class(&osce);
+
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_CONSUMER_KEY, sizeof(OAUTH_PROVIDER_CONSUMER_KEY)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_CONSUMER_SECRET, sizeof(OAUTH_PROVIDER_CONSUMER_SECRET)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_SIGNATURE, sizeof(OAUTH_PROVIDER_SIGNATURE)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_SIGNATURE_METHOD, sizeof(OAUTH_PROVIDER_SIGNATURE_METHOD)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_TOKEN, sizeof(OAUTH_PROVIDER_TOKEN)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_TOKEN_SECRET, sizeof(OAUTH_PROVIDER_TOKEN_SECRET)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_NONCE, sizeof(OAUTH_PROVIDER_NONCE)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_TIMESTAMP, sizeof(OAUTH_PROVIDER_TIMESTAMP)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_VERSION, sizeof(OAUTH_PROVIDER_VERSION)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_CALLBACK, sizeof(OAUTH_PROVIDER_CALLBACK)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, OAUTH_PROVIDER_VERIFIER, sizeof(OAUTH_PROVIDER_VERIFIER)-1, ZEND_ACC_PUBLIC);
++ zend_declare_property_null(oauthprovider, "request_token_endpoint", sizeof("request_token_endpoint")-1, ZEND_ACC_PUBLIC);
++
+ memcpy(&oauth_provider_obj_hndlrs, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+ oauth_provider_obj_hndlrs.offset = XtOffsetOf(php_oauth_provider, zo);
+ oauth_provider_obj_hndlrs.free_obj = oauth_provider_free_storage;
+diff --git a/tests/oauthprovider_001.phpt b/tests/oauthprovider_001.phpt
+index e93af65..ab005c4 100644
+--- a/tests/oauthprovider_001.phpt
++++ b/tests/oauthprovider_001.phpt
+@@ -6,25 +6,29 @@ $provider = new OAuthProvider(['foo' => 'bar']);
+ var_dump($provider);
+
+ --EXPECT--
+-object(OAuthProvider)#1 (10) {
++object(OAuthProvider)#1 (12) {
+ ["consumer_key"]=>
+ NULL
+ ["consumer_secret"]=>
+ NULL
+- ["nonce"]=>
++ ["signature"]=>
++ NULL
++ ["signature_method"]=>
+ NULL
+ ["token"]=>
+ NULL
+ ["token_secret"]=>
+ NULL
++ ["nonce"]=>
++ NULL
+ ["timestamp"]=>
+ NULL
+ ["version"]=>
+ NULL
+- ["signature_method"]=>
+- NULL
+ ["callback"]=>
+ NULL
++ ["verifier"]=>
++ NULL
+ ["request_token_endpoint"]=>
+ bool(false)
+ }
diff --git a/testing/php82-pecl-phalcon/APKBUILD b/testing/php82-pecl-phalcon/APKBUILD
new file mode 100644
index 00000000000..2e96c17f167
--- /dev/null
+++ b/testing/php82-pecl-phalcon/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-phalcon
+_extname=phalcon
+pkgver=5.6.2
+pkgrel=0
+pkgdesc="High performance, full-stack PHP 8.2 framework delivered as a C extension"
+url="https://phalcon.io/"
+arch="all"
+license="BSD-3-Clause"
+_phpv=82
+_php=php$_phpv
+depends="
+ $_php-curl
+ $_php-fileinfo
+ $_php-gettext
+ $_php-mbstring
+ $_php-openssl
+ $_php-pdo
+ $_php-session
+ $_php-pecl-psr
+ "
+makedepends="$_php-dev"
+source="php-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ # no tests provided
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+27fb1ba24ea6444abba142acf9fa717a9d69fbfb719335358a29d2f74e8ad6c4e76c310a7144cfb34628cd228e239de1bdca6c3365111a4fe588966ab195c7e0 php-phalcon-5.6.2.tgz
+"
diff --git a/testing/php82-pecl-runkit7/APKBUILD b/testing/php82-pecl-runkit7/APKBUILD
new file mode 100644
index 00000000000..26608f9ed5c
--- /dev/null
+++ b/testing/php82-pecl-runkit7/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-runkit7
+_extname=runkit7
+pkgver=4.0.0_alpha6
+pkgrel=1
+pkgdesc="PHP 8.2 extension for replace, rename, and remove user defined functions, methods, and constants - PECL"
+url="https://pecl.php.net/package/runkit7"
+arch="all"
+license="BSD-3-Clause"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-${pkgver//_alpha/a}.tgz"
+builddir="$srcdir/$_extname-${pkgver//_alpha/a}"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ $_php -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+fd54b395ab07806035d18ba4efa4337304c345d8800063755c94b0b776b254b41ed7932ca0a9e366fe8f0a8e4e184355ed2e1b3452fbe3c45e6fa28750aa956e php-pecl-runkit7-4.0.0_alpha6.tgz
+"
diff --git a/testing/php82-pecl-teds/APKBUILD b/testing/php82-pecl-teds/APKBUILD
new file mode 100644
index 00000000000..e3a37114e77
--- /dev/null
+++ b/testing/php82-pecl-teds/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-teds
+_extname=teds
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="PHP 8.2 extra data structures and iterable/array functionality - PECL"
+url="https://pecl.php.net/package/teds"
+arch="all"
+license="BSD-3-Clause"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+24950e4a2f6b346fb83eb639ba7333d3408e549ef8b9e25a8dbd210474c5adaa35dcaf373ed96c361a09d72ae7c1fdf58c24d9a373df099b50877a41b311fe28 php-pecl-teds-1.3.0.tar.gz
+"
diff --git a/testing/php82-pecl-vld/APKBUILD b/testing/php82-pecl-vld/APKBUILD
new file mode 100644
index 00000000000..836a973671e
--- /dev/null
+++ b/testing/php82-pecl-vld/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-vld
+_extname=vld
+pkgver=0.18.0
+pkgrel=0
+pkgdesc="PHP extension to dump the internal representation of PHP 8.2 scripts - PECL"
+url="https://pecl.php.net/package/vld"
+arch="all"
+license="BSD-3-Clause"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+da4a675fc29f9d296c7d444cf6d2408e747326fb89e6c4752e4829997fd89ea40433cb183c0af49c69ded0c2a22954c951a765662243ffe0cba70684ab0a4f18 php-pecl-vld-0.18.0.tar.gz
+"
diff --git a/testing/php82-pecl-zephir_parser/APKBUILD b/testing/php82-pecl-zephir_parser/APKBUILD
new file mode 100644
index 00000000000..d42ef62d729
--- /dev/null
+++ b/testing/php82-pecl-zephir_parser/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-pecl-zephir_parser
+_extname=zephir_parser
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="Zephir Parser is a code parser, delivered as a C extension for the PHP 8.2 language - PECL"
+url="https://pecl.php.net/package/zephir_parser"
+arch="all"
+license="MIT"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ echo "$pkgver" > VERSION
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS="${TESTS:- --show-diff }"
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+84195c5702a12b1c6f9f027d2d0651bc7fb762cf71f4c7b4c9bc36b35fb92db54b994f5d2b0502d21b1dd8bb03710a72e4f0790b621edd2c1c69a10043b5d2ad php-pecl-zephir_parser-1.6.0.tar.gz
+"
diff --git a/testing/php82-snappy/APKBUILD b/testing/php82-snappy/APKBUILD
new file mode 100644
index 00000000000..a491e364ff2
--- /dev/null
+++ b/testing/php82-snappy/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php82-snappy
+_extname=snappy
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="Snappy extension for PHP 8.2"
+url="https://github.com/kjdev/php-ext-snappy"
+arch="all"
+license="PHP-3.01"
+_phpv=82
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev $_php-pecl-apcu snappy-dev"
+source="php-$_extname-$pkgver.tar.gz::https://github.com/kjdev/php-ext-snappy/archive/$pkgver.tar.gz
+ https://github.com/kjdev/php-ext-snappy/commit/c27f830dcfe6c41eb2619a374de10fd0597f4939.patch
+ "
+builddir="$srcdir/php-ext-snappy-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure \
+ --prefix=/usr \
+ --with-php-config=php-config$_phpv \
+ --with-snappy-includedir
+ make
+}
+
+check() {
+ local _modules=/usr/lib/$_php/modules
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ SKIP_ONLINE_TESTS=1 PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/apcu.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir"/ install
+ local confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $confdir
+ echo "extension=$_extname" > $confdir/50_$_extname.ini
+}
+
+sha512sums="
+51cdfe7c5d020cb954cbf555038aca8398867584a587eb838f07089612d3978a182d0bc04015608a2aaf71bf9a5b5896e5d92b56f3b2d5fe9e1116f9509acb1e php-snappy-0.2.1.tar.gz
+4f45438e6f5b8784bff45c5791628af905c70a4b1adf1f3b7248f52d7b41648b07e10e833f3f3ae60f24d421ad302a8a1ab4e464697df9bc36b8fc7a3f0cb3cc c27f830dcfe6c41eb2619a374de10fd0597f4939.patch
+"
diff --git a/testing/php83-pecl-apfd/APKBUILD b/testing/php83-pecl-apfd/APKBUILD
new file mode 100644
index 00000000000..23e79b4fa62
--- /dev/null
+++ b/testing/php83-pecl-apfd/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php83-pecl-apfd
+_extname=apfd
+pkgver=1.0.3
+pkgrel=0
+pkgdesc="PHP 8.3 extension for always populate form data - PECL"
+url="https://pecl.php.net/package/apfd"
+arch="all"
+license="BSD-2-Clause"
+_phpv=83
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+checkdepends="$_php-cgi"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ $_php -d extension="$builddir"/modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+1290594de5d2992cb2d46308ee5c3f44d30dc478afc60ce38f1bc3215c56fa3f396e6a8a90ed9288d4c5c61e8f8bdf77c682bfa0d83494647c61e0920048ea59 php-pecl-apfd-1.0.3.tgz
+"
diff --git a/testing/php83-pecl-eio/APKBUILD b/testing/php83-pecl-eio/APKBUILD
new file mode 100644
index 00000000000..8c3a3921562
--- /dev/null
+++ b/testing/php83-pecl-eio/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php83-pecl-eio
+_extname=eio
+pkgver=3.1.3
+pkgrel=0
+pkgdesc="Interface to the libeio library PHP 8.3 - PECL"
+url="https://pecl.php.net/package/eio"
+arch="all"
+license="Apache-2.0"
+_phpv=83
+_php=php$_phpv
+depends="$_php-pcntl $_php-posix $_php-sockets"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ $_php -d extension=modules/$_extname.so --ri $_extname
+ local _modules="/usr/lib/$_php/modules"
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test \
+ PHP_TEST_SHARED_EXTENSIONS=" \
+ -d extension=$_modules/pcntl.so \
+ -d extension=$_modules/posix.so \
+ -d extension=$_modules/sockets.so \
+ -d extension=modules/$_extname.so" TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+ce81a5b60f6374d291c2d09106d8a51192b21d7d122c3b93777eefd0f8e34c0929b5f3c0e25670f1c478970f6a5e14acb92d14fcb6a4914fdef91a40e273622e php-pecl-eio-3.1.3.tar.gz
+"
diff --git a/testing/php83-pecl-excimer/APKBUILD b/testing/php83-pecl-excimer/APKBUILD
new file mode 100644
index 00000000000..5378f92d681
--- /dev/null
+++ b/testing/php83-pecl-excimer/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php83-pecl-excimer
+_extname=excimer
+pkgver=1.2.1
+pkgrel=0
+pkgdesc="Interrupting timer and low-overhead sampling profiler PHP 8.3 - PECL"
+url="https://pecl.php.net/package/excimer"
+arch="all"
+license="Apache-2.0"
+_phpv=83
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tar.gz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir"/$_extname-$pkgver
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a5616fd1897342c0dc59cf8551ed498b88520e66b9c2a2e031df670c447c42243946ed1c2f0b1171bcb2be9777a8796d4caa4fb7c636f5d6fad03a62509ce3fd php-pecl-excimer-1.2.1.tar.gz
+"
diff --git a/testing/php83-pecl-jsmin/APKBUILD b/testing/php83-pecl-jsmin/APKBUILD
new file mode 100644
index 00000000000..b53eaf86bdd
--- /dev/null
+++ b/testing/php83-pecl-jsmin/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php83-pecl-jsmin
+_extname=jsmin
+pkgver=3.0.0
+pkgrel=0
+_jqver=2.1.3
+pkgdesc="PHP 8.3 extension for minifying JavaScript - PECL"
+url="https://pecl.php.net/package/jsmin"
+arch="all !ppc64le" # test fails on builder
+license="PHP-3.01"
+_phpv=83
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz
+ jquery-$_jqver.js::https://github.com/sqmk/pecl-jsmin/raw/v$pkgver/tests/data/jquery-$_jqver.js
+ fix-php8.patch
+ fix-tests.patch
+ "
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ mkdir -p tests/data
+ cp "$srcdir"/jquery-$_jqver.js tests/data/
+
+ case "$CARCH" in
+ armv7|armhf|x86) rm tests/call-multiple-times.phpt ;;
+ esac
+ $_php -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS='--show-diff '
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+a465ae024a49bb8ac20463efc6b2546021806c2c43053f42c7ebfea4924b9b647b6e7c0c673102e12ecd8b693666441dc07203edef216eee958fa62f73056ea6 php-pecl-jsmin-3.0.0.tgz
+b8eb1a740c63feaab8ac24d87f39f4cfe263694c972f4978b9f0e3092f912a722596fd094dd637d22f03816617e13210bf11fad9a545dbb0423dc821c827081e jquery-2.1.3.js
+72f4ea4aad457d1a557e05ff8457a689ea75419e414b0893c2bdf5d7216d70b7c26a4993e3c9fa97de3409d080b3cf2a5bd2f0c4b050854c02f08ac592da1f85 fix-php8.patch
+e44a2615d98d786e0188d3880b41f267dab2fa215fb17cd37b17f8cc499bee7dd9e4fe1def4707dbd6769fa40ba2dbf7895ba3544db427a7d851f69a515fa83c fix-tests.patch
+"
diff --git a/testing/php83-pecl-jsmin/fix-php8.patch b/testing/php83-pecl-jsmin/fix-php8.patch
new file mode 100644
index 00000000000..c8be3069563
--- /dev/null
+++ b/testing/php83-pecl-jsmin/fix-php8.patch
@@ -0,0 +1,87 @@
+From 3e49feb8362f14d6f13d79c9533edd900bbf1d21 Mon Sep 17 00:00:00 2001
+From: Qiangjun Ran <ranqiangjun@gmail.com>
+Date: Tue, 8 Jun 2021 14:43:34 +0800
+Subject: [PATCH] PHP 8 support
+
+Patch-Source: https://github.com/sqmk/pecl-jsmin/pull/59
+---
+ jsmin.c | 8 ++++----
+ jsmin.h | 4 ++--
+ php_jsmin.c | 6 +++---
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/jsmin.c b/jsmin.c
+index 2744aef..773dc09 100644
+--- a/jsmin.c
++++ b/jsmin.c
+@@ -34,7 +34,7 @@ SOFTWARE.
+ */
+
+ static jsmin_obj*
+-new_jsmin_obj(char *javascript TSRMLS_DC)
++new_jsmin_obj(char *javascript)
+ {
+ jsmin_obj *jmo = ecalloc(1, sizeof(jsmin_obj));
+ jmo->javascript = javascript;
+@@ -48,7 +48,7 @@ new_jsmin_obj(char *javascript TSRMLS_DC)
+ /* free_jsmin_obj -- frees up memory on struct
+ */
+ void
+-free_jsmin_obj(jsmin_obj *jmo TSRMLS_DC)
++free_jsmin_obj(jsmin_obj *jmo)
+ {
+ smart_string_free(&jmo->buffer);
+ efree(jmo);
+@@ -250,9 +250,9 @@ jsmin_action(int d, jsmin_obj *jmo)
+ */
+
+ jsmin_obj*
+-jsmin(char *javascript TSRMLS_DC)
++jsmin(char *javascript)
+ {
+- jsmin_obj *jmo = new_jsmin_obj(javascript TSRMLS_CC);
++ jsmin_obj *jmo = new_jsmin_obj(javascript);
+
+ jsmin_action(3, jmo);
+ while (jmo->theA != 0) {
+diff --git a/jsmin.h b/jsmin.h
+index 317b90b..0bda630 100644
+--- a/jsmin.h
++++ b/jsmin.h
+@@ -25,7 +25,7 @@ enum error_codes {
+ PHP_JSMIN_ERROR_UNTERMINATED_REGEX
+ };
+
+-extern jsmin_obj* jsmin(char *javascript TSRMLS_DC);
+-extern void free_jsmin_obj(jsmin_obj *jmo TSRMLS_DC);
++extern jsmin_obj* jsmin(char *javascript);
++extern void free_jsmin_obj(jsmin_obj *jmo);
+
+ #endif
+diff --git a/php_jsmin.c b/php_jsmin.c
+index a9783d4..6cc034a 100644
+--- a/php_jsmin.c
++++ b/php_jsmin.c
+@@ -105,11 +105,11 @@ PHP_FUNCTION(jsmin)
+
+ zval *ret_code = NULL;
+
+- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z/", &javascript, &javascript_len, &ret_code) == FAILURE) {
++ if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|z/", &javascript, &javascript_len, &ret_code) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+- jmo = jsmin(javascript TSRMLS_CC);
++ jmo = jsmin(javascript);
+ if (ret_code) {
+ zval_dtor(ret_code);
+ ZVAL_LONG(ret_code, jmo->errorCode);
+@@ -121,7 +121,7 @@ PHP_FUNCTION(jsmin)
+ } else {
+ ZVAL_STRINGL(return_value, jmo->buffer.c, jmo->buffer.len);
+ }
+- free_jsmin_obj(jmo TSRMLS_CC);
++ free_jsmin_obj(jmo);
+ }
+ /* }}} */
+
diff --git a/testing/php83-pecl-jsmin/fix-tests.patch b/testing/php83-pecl-jsmin/fix-tests.patch
new file mode 100644
index 00000000000..d7b9c636af6
--- /dev/null
+++ b/testing/php83-pecl-jsmin/fix-tests.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/sqmk/pecl-jsmin/pull/60
+
+diff --git a/tests/missing-argument.phpt b/tests/missing-argument.phpt
+index 57d0925..826038b 100644
+--- a/tests/missing-argument.phpt
++++ b/tests/missing-argument.phpt
+@@ -1,5 +1,9 @@
+ --TEST--
+ Missing argument throws warning
++--SKIPIF--
++<?php
++if (PHP_VERSION_ID >= 80000) die('skip Only for PHP < 8.0');
++?>
+ --FILE--
+ <?php
+
+diff --git a/tests/missing-argument8.phpt b/tests/missing-argument8.phpt
+new file mode 100644
+index 0000000..4638dc2
+--- /dev/null
++++ b/tests/missing-argument8.phpt
+@@ -0,0 +1,17 @@
++--TEST--
++Missing argument throws fatal error
++--SKIPIF--
++<?php
++if (PHP_VERSION_ID < 80000) die('skip Only for PHP >= 8.0');
++?>
++--FILE--
++<?php
++
++echo jsmin();
++
++--EXPECTF--
++Fatal error: Uncaught ArgumentCountError: jsmin() expects at least 1 argument, 0 given in %s
++Stack trace:
++#0 %s(3): jsmin()
++#1 {main}
++ thrown in %s on line 3
diff --git a/testing/php83-pecl-phalcon/APKBUILD b/testing/php83-pecl-phalcon/APKBUILD
new file mode 100644
index 00000000000..2a196bc7cc4
--- /dev/null
+++ b/testing/php83-pecl-phalcon/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php83-pecl-phalcon
+_extname=phalcon
+pkgver=5.6.2
+pkgrel=0
+pkgdesc="High performance, full-stack PHP 8.3 framework delivered as a C extension"
+url="https://phalcon.io/"
+arch="all"
+license="BSD-3-Clause"
+_phpv=83
+_php=php$_phpv
+depends="
+ $_php-curl
+ $_php-fileinfo
+ $_php-gettext
+ $_php-mbstring
+ $_php-openssl
+ $_php-pdo
+ $_php-session
+ $_php-pecl-psr
+ "
+makedepends="$_php-dev"
+source="php-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=/usr/bin/php-config$_phpv
+ make
+}
+
+check() {
+ # no tests provided
+ $_php -d extension=modules/$_extname.so --ri $_extname
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+27fb1ba24ea6444abba142acf9fa717a9d69fbfb719335358a29d2f74e8ad6c4e76c310a7144cfb34628cd228e239de1bdca6c3365111a4fe588966ab195c7e0 php-phalcon-5.6.2.tgz
+"
diff --git a/testing/php83-pecl-vld/APKBUILD b/testing/php83-pecl-vld/APKBUILD
new file mode 100644
index 00000000000..68aa787b67d
--- /dev/null
+++ b/testing/php83-pecl-vld/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=php83-pecl-vld
+_extname=vld
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="Dumps the internal representation of PHP 8.3 scripts - PECL"
+url="https://pecl.php.net/package/vld"
+arch="all"
+license="BSD-2-Clause"
+_phpv=83
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev"
+source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ $_php -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ install -d $_confdir
+ echo "extension=$_extname" > $_confdir/$_extname.ini
+}
+
+sha512sums="
+da4a675fc29f9d296c7d444cf6d2408e747326fb89e6c4752e4829997fd89ea40433cb183c0af49c69ded0c2a22954c951a765662243ffe0cba70684ab0a4f18 php-pecl-vld-0.18.0.tgz
+"
diff --git a/testing/php83-pecl-zmq/APKBUILD b/testing/php83-pecl-zmq/APKBUILD
new file mode 100644
index 00000000000..df5fc45dcb2
--- /dev/null
+++ b/testing/php83-pecl-zmq/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
+# Maintainer: Fabio Ribeiro <fabiorphp@gmail.com>
+pkgname=php83-pecl-zmq
+_extname=zmq
+pkgver=1.1.4
+pkgrel=0
+pkgdesc="PHP 8.3 extension for ZeroMQ - PECL"
+url="https://pecl.php.net/package/zmq"
+arch="all"
+license="PHP-3.01"
+_phpv=83
+_php=php$_phpv
+depends="$_php-common"
+makedepends="$_php-dev zeromq-dev"
+_commit=84f072064dd8aedaf1ff883c602c5e34f3876897
+source="php-pecl-$_extname-$_commit.tar.gz::https://github.com/zeromq/php-zmq/archive/$_commit.tar.gz"
+builddir="$srcdir/php-$_extname-$_commit"
+#source="php-pecl-$_extname-$pkgver.tgz::https://pecl.php.net/get/$_extname-$pkgver.tgz"
+#builddir="$srcdir/$_extname-$pkgver"
+
+build() {
+ phpize$_phpv
+ ./configure --prefix=/usr --with-php-config=php-config$_phpv
+ make
+}
+
+check() {
+ $_php -dextension=modules/$_extname.so --ri $_extname
+ make NO_INTERACTION=1 REPORT_EXIT_STATUS=1 test TESTS=--show-diff
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+
+ local _confdir="$pkgdir"/etc/$_php/conf.d
+ mkdir -p $_confdir
+ echo "extension=$_extname" > $_confdir/50_$_extname.ini
+}
+
+sha512sums="
+49b0d19e2884f29fb474906bbc0d3d58b518779b3ce4561805d3387a3eaa97e039dc57d941df630f6d86b1517e5f7fb3435677d5f31c275602186bb2c45cf31b php-pecl-zmq-84f072064dd8aedaf1ff883c602c5e34f3876897.tar.gz
+"
diff --git a/testing/phpspy/APKBUILD b/testing/phpspy/APKBUILD
deleted file mode 100644
index 3761c4b1a12..00000000000
--- a/testing/phpspy/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=phpspy
-pkgver=0.5.0
-pkgrel=1
-pkgdesc="Low-overhead sampling profiler for PHP 7 "
-url="https://github.com/adsr/phpspy"
-arch="all"
-license="MIT"
-depends="perl"
-makedepends="linux-headers termbox-dev"
-checkdepends="ncurses bash grep php7 procps"
-options="!check" # require ptrace capability and checkroot is not enough
-source="$pkgname-$pkgver.tar.gz::https://github.com/adsr/phpspy/archive/v$pkgver.tar.gz
- libpthread.patch
- remove-termbox-check.patch
- fix-install.patch
- "
-
-build() {
- make phpspy_dynamic
-}
-
-package() {
- make prefix="/usr" DESTDIR="$pkgdir" install
- install -D -v -m 755 stackcollapse-phpspy.pl \
- "$pkgdir"/usr/bin/stackcollapse-phpspy
- install -D -v -m 755 vendor/flamegraph.pl \
- "$pkgdir"/usr/bin/flamegraph-phpspy
-}
-
-sha512sums="7163a9f0a44a7dc94e9b722b403218154a27992ba4bfcdae936bdc197b8bc732f70f506318540f356467acdbfec1b0ebc868409010d367a51c056790ab81be1f phpspy-0.5.0.tar.gz
-e3a6a0d3943c588570406e13155671fc9e16141e202aada9178681ea2afdc98698f54120a499aab85b82f5de1d25a30afe5cea1209fc2cc7f3da6cf4486dd3b5 libpthread.patch
-c07a0e9df74dc16fc51445ddc9321314d131049ac0acc3ab7aab76907f05ab78cd3e8fd55e5db14a43e66568ca19f7006369d3f9bf8c09e122a57a58513d071c remove-termbox-check.patch
-0d7a53a77fc6b8d191eb873af29771e520b8119357ceda0a81ad710a6d365812be3d4e87c3863d34ee14059a355626ba5dce507607ec7434aed4198bafb33ac3 fix-install.patch"
diff --git a/testing/phpspy/fix-install.patch b/testing/phpspy/fix-install.patch
deleted file mode 100644
index f559b83958e..00000000000
--- a/testing/phpspy/fix-install.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-We don't want a static binary, make sure the install target respects that.
-
-diff -upr phpspy-0.5.0.orig/Makefile phpspy-0.5.0/Makefile
---- phpspy-0.5.0.orig/Makefile 2020-05-31 18:37:11.787907276 +0200
-+++ phpspy-0.5.0/Makefile 2020-05-31 18:37:18.961241194 +0200
-@@ -55,7 +55,7 @@ test: phpspy_static $(phpspy_tests)
- printf "Passed %d out of %d tests\n" $$pass $$total ; \
- [ $$pass -eq $$total ] || exit 1
-
--install: phpspy_static
-+install: phpspy_dynamic
- install -D -v -m 755 phpspy $(DESTDIR)$(prefix)/bin/phpspy
-
- clean:
diff --git a/testing/phpspy/libpthread.patch b/testing/phpspy/libpthread.patch
deleted file mode 100644
index 35366646d1e..00000000000
--- a/testing/phpspy/libpthread.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.bak
-+++ b/Makefile
-@@ -19,7 +19,7 @@
- has_termbox := $(shell $(LD) $(phpspy_ldflags) -ltermbox -o/dev/null >/dev/null 2>&1 && echo :)
- has_phpconf := $(shell command -v php-config >/dev/null 2>&1 && echo :)
-
--$(or $(has_pthread), $(error Need libpthread))
-+#$(or $(has_pthread), $(error Need libpthread))
-
- ifdef USE_ZEND
- $(or $(has_phpconf), $(error Need php-config))
diff --git a/testing/phpspy/remove-termbox-check.patch b/testing/phpspy/remove-termbox-check.patch
deleted file mode 100644
index c94fb32dae6..00000000000
--- a/testing/phpspy/remove-termbox-check.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Check fails with:
-
- ld: unrecognized option '-Wl,--as-needed'
- ld: use the --help option for usage information
-
-diff -upr phpspy-0.5.0.orig/Makefile phpspy-0.5.0/Makefile
---- phpspy-0.5.0.orig/Makefile 2020-05-31 18:34:19.931393581 +0200
-+++ phpspy-0.5.0/Makefile 2020-05-31 18:34:23.341389992 +0200
-@@ -33,7 +33,6 @@ phpspy_static: $(wildcard *.c *.h) vendo
- $(CC) $(phpspy_cflags) $(phpspy_includes) $(termbox_inlcudes) $(phpspy_defines) $(phpspy_sources) -o phpspy $(phpspy_ldflags) $(phpspy_libs) $(termbox_libs)
-
- phpspy_dynamic: $(wildcard *.c *.h)
-- @$(or $(has_termbox), $(error Need libtermbox. Hint: try `make phpspy_static`))
- $(CC) $(phpspy_cflags) $(phpspy_includes) $(phpspy_defines) $(phpspy_sources) -o phpspy $(phpspy_ldflags) $(phpspy_libs) -ltermbox
-
- vendor/termbox/build/src/libtermbox.a: vendor/termbox/waf
diff --git a/testing/physlock/APKBUILD b/testing/physlock/APKBUILD
deleted file mode 100644
index 66ab8a8c11a..00000000000
--- a/testing/physlock/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Max Rees <maxcrees@me.com>
-# Maintainer: Max Rees <maxcrees@me.com>
-pkgname=physlock
-pkgver=13
-pkgrel=0
-pkgdesc="Lightweight linux console locking tool"
-url="https://github.com/muennich/physlock"
-arch="all"
-license="GPL-2.0-or-later"
-options="!check suid" # No test suite
-makedepends="linux-headers linux-pam-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/muennich/physlock/archive/v$pkgver.tar.gz
- disable_systemd.patch
- "
-
-build() {
- make
-}
-
-package() {
- make PREFIX="/usr" DESTDIR="$pkgdir" install
-}
-
-sha512sums="85c291fb7b146fbd81aacbf94d8af07e727dd9b37b458988eaee5f7a51f9923871f9b19fd9438428635963864de67d3f2a72f938d99ffe6dc3015c3a1b99ea1c physlock-13.tar.gz
-ee5bbaefddf95fbf6756e4301f90b78c42981e873795e9f45b8c6a06d7ed0248d67228217b30a6b8d4a0893262c4892117317b267723d3ff8ed6eac2412fbac0 disable_systemd.patch"
diff --git a/testing/physlock/disable_systemd.patch b/testing/physlock/disable_systemd.patch
deleted file mode 100644
index a29393103b2..00000000000
--- a/testing/physlock/disable_systemd.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -7,7 +7,7 @@
- MANPREFIX = $(PREFIX)/share/man
-
- # enable user detection using libsystemd
--HAVE_SYSTEMD = 1
-+HAVE_SYSTEMD = 0
-
- cflags = -Wall -pedantic $(CFLAGS)
- cppflags = -I. $(CPPFLAGS) -D_XOPEN_SOURCE=500
diff --git a/testing/pick/APKBUILD b/testing/pick/APKBUILD
new file mode 100644
index 00000000000..1e0fa6ad188
--- /dev/null
+++ b/testing/pick/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=pick
+pkgver=4.0.0
+pkgrel=0
+pkgdesc="Fuzzy search tool for the command-line"
+url="https://github.com/mptre/pick"
+arch="all"
+license="MIT"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mptre/pick/archive/v$pkgver.tar.gz"
+
+build() {
+ PREFIX=/usr MANDIR=/usr/share/man ./configure
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+041f6aa13673678b9171a16debfdab11a4ce2d67b03a25677b457148aa642720803028aa6c77d56df9f022ca24f0e25d0c9a40d275ac7c93d03ed13036709fc8 pick-4.0.0.tar.gz
+"
diff --git a/testing/picotts/APKBUILD b/testing/picotts/APKBUILD
deleted file mode 100644
index 06faa84cb04..00000000000
--- a/testing/picotts/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Eric Trombly <etrombly@yahoo.com>
-# Maintainer:
-pkgname=picotts
-pkgver=0.1
-pkgrel=0
-pkgdesc="Pico TTS: text to speech voice synthesizer from SVox"
-url="https://github.com/naggety/picotts"
-arch="all"
-license="Apache-2.0"
-makedepends="popt-dev autoconf automake libtool"
-subpackages="$pkgname-dev $pkgname-libs"
-source="https://github.com/naggety/picotts/archive/e3ba46009ee868911fa0b53db672a55f9cc13b1c.zip"
-builddir="$srcdir/picotts-e3ba46009ee868911fa0b53db672a55f9cc13b1c/pico"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="e65b46aaeb65cf151e94b8740d6ac9a691613de973cb7d10e1a39b71ef7dead53525602209c99dfefbcb5abed3520321f45e9f324efae7b28af72a10e3f06ba5 e3ba46009ee868911fa0b53db672a55f9cc13b1c.zip"
diff --git a/testing/pict-rs/APKBUILD b/testing/pict-rs/APKBUILD
new file mode 100644
index 00000000000..4779dc16338
--- /dev/null
+++ b/testing/pict-rs/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=pict-rs
+pkgver=0.5.13
+pkgrel=0
+pkgdesc="Simple image hosting service written in Rust"
+url="https://git.asonix.dog/asonix/pict-rs"
+# riscv64: tests fail
+arch="all !riscv64"
+license="AGPL-3.0-or-later"
+depends="exiftool ffmpeg imagemagick"
+makedepends="cargo cargo-auditable"
+install="$pkgname.pre-install"
+pkgusers="pict-rs"
+pkggroups="pict-rs"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://git.asonix.dog/asonix/pict-rs/archive/v$pkgver.tar.gz
+ config-file.patch
+ pict-rs.initd
+ "
+builddir="$srcdir/pict-rs"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/pict-rs -t "$pkgdir"/usr/bin
+
+ install -Dm640 -g pict-rs pict-rs.toml -t "$pkgdir"/etc/pict-rs
+ install -Dm755 "$srcdir"/pict-rs.initd "$pkgdir"/etc/init.d/pict-rs
+}
+
+sha512sums="
+5ca1092b9c1a7f086b8884f3fd05fe11d431c509f72150fd115c21c04d3c8da71299067f1eae872f0bffaa26d7632270f583a5f1de0106b2d0a1ffefc4b1aa79 pict-rs-0.5.13.tar.gz
+6abcd4907bfbf8857031af947cec088841e2a249a31a530678870c0da77667f05fdaa8c301bc12bf05b91a9054aea32f25cdb41be6d52f8140dc4340743d1d4c config-file.patch
+6a9d40fc5c57d35a6601118eff551b4353f0e544045b953cc2728135bdea1e1f8945ffac889d805b988af8403e0114338cde31d8d977491a63270ce97b8cae73 pict-rs.initd
+"
diff --git a/testing/pict-rs/config-file.patch b/testing/pict-rs/config-file.patch
new file mode 100644
index 00000000000..74ecb6a58a9
--- /dev/null
+++ b/testing/pict-rs/config-file.patch
@@ -0,0 +1,247 @@
+--- a/pict-rs.toml
++++ b/pict-rs.toml
+@@ -3,7 +3,7 @@
+ ## Optional: pict-rs binding address
+ # environment variable: PICTRS__SERVER__ADDRESS
+ # default: 0.0.0.0:8080
+-address = '0.0.0.0:8080'
++address = '127.0.0.1:8080'
+
+ ## Optional: whether to reject any operations that would change the state of pict-rs.
+ # environment variable: PICTRS__SERVER__READ_ONLY
+@@ -42,14 +42,14 @@
+ # default: empty
+ #
+ # Note that both certificate and private_key must be set to enable TLS
+-certificate = "/path/to/server.crt"
++#certificate = "/path/to/server.crt"
+
+ ## Optional: path to server key to enable TLS
+ # environment variable: PICTRS__SERVER__PRIVATE_KEY
+ # default: empty
+ #
+ # Note that both private_key and certificate must be set to enable TLS
+-private_key = "/path/to/server.key"
++#private_key = "/path/to/server.key"
+
+ ## Client configuration
+ [client]
+@@ -95,7 +95,7 @@
+
+
+ ## Console configuration
+-[tracing.console]
++#[tracing.console]
+ ## Optional: console address
+ # environment variable: PICTRS__TRACING__CONSOLE__ADDRESS
+ # default: empty
+@@ -124,7 +124,7 @@
+ # ```
+ # $ tokio-console http://localhost:6669
+ # ```
+-address = '0.0.0.0:6669'
++#address = '0.0.0.0:6669'
+
+ ## Optional: console buffer capacity
+ # environment variable: PICTRS__TRACING__CONSOLE__BUFFER_CAPACITY
+@@ -132,11 +132,11 @@
+ #
+ # This is the number of _events_ to buffer, not the number of bytes. In reality, the amount of
+ # RAM used will be significatnly larger (in bytes) than the buffer capacity (in events)
+-buffer_capacity = 102400
++#buffer_capacity = 102400
+
+
+ ## OpenTelemetry configuration
+-[tracing.opentelemetry]
++#[tracing.opentelemetry]
+ ## Optional: url for exporting otlp traces
+ # environment variable: PICTRS__TRACING__OPENTELEMETRY__URL
+ # default: empty
+@@ -145,36 +145,36 @@
+ # When set, pict-rs will export OpenTelemetry traces to the provided URL. If the URL is
+ # inaccessible, this can cause performance degredation in pict-rs, so it is best left unset unless
+ # you have an OpenTelemetry collector
+-url = 'http://localhost:4317/'
++#url = 'http://localhost:4317/'
+
+ ## Optional: name to relate OpenTelemetry traces
+ # environment variable: PICTRS__TRACING__OPENTELEMETRY__SERVICE_NAME
+ # default: pict-rs
+-service_name = 'pict-rs'
++#service_name = 'pict-rs'
+
+ ## Optional: trace level to export
+ # environment variable: PICTRS__TRACING__OPENTELEMETRY__TARGETS
+ # default: info
+ #
+ # Follows the same format as RUST_LOG
+-targets = 'info'
++#targets = 'info'
+
+-[metrics]
++#[metrics]
+ ## Optional: enable a prometheus scrape endpoint for pict-rs
+ # environment variable: PICTRS__METRICS__PROMETHEUS_ADDRESS
+ # default: empty
+ #
+ # Setting this value enables pointing prometheus at pict-rs to receive metrics. It can also be
+ # queried with curl.
+-prometheus_address = "0.0.0.0:9000"
++#prometheus_address = "0.0.0.0:9000"
+
+
+ ## Configuration for migrating from pict-rs 0.4
+-[old_repo]
++#[old_repo]
+ ## Optional: path to sled repository
+ # environment variable: PICTRS__OLD_REPO__PATH
+ # default: /mnt/sled-repo
+-path = '/mnt/sled-repo'
++#path = '/mnt/sled-repo'
+
+
+ ## Media Processing Configuration
+@@ -613,7 +613,7 @@
+ ## Optional: path to sled repository
+ # environment variable: PICTRS__REPO__PATH
+ # default: /mnt/sled-repo
+-path = '/mnt/sled-repo'
++path = '/var/lib/pict-rs/sled-repo'
+
+ ## Optional: in-memory cache capacity for sled data (in bytes)
+ # environment variable: PICTRS__REPO__CACHE_CAPACITY
+@@ -626,32 +626,32 @@
+ #
+ # Used in combination with the /internal/export endpoint to dump the current sled database into a
+ # new file. This can be helpful for backing up a running pict-rs server.
+-export_path = "/mnt/exports"
++export_path = "/var/lib/pict-rs/exports"
+
+
+ ## Postgres repo configuration example
+-[repo]
++#[repo]
+ ## Optional: database backend to use
+ # environment variable: PICTRS__REPO__TYPE
+ # default: sled
+ #
+ # available options: sled, postgres
+-type = 'postgres'
++#type = 'postgres'
+
+ ## Required: URL to postgres database
+ # environment variable: PICTRS__REPO__URL
+ # default: empty
+-url = 'postgres://user:password@host:5432/db'
++#url = 'postgres://user:password@host:5432/db'
+
+ ## Optional: Whether to use TLS when connecting to postgres
+ # environment variable: PICTRS__REPO__USE_TLS
+ # default: false
+-use_tls = false
++#use_tls = false
+
+ ## Optional: The CA Certificate used to verify the postgres TLS certificate
+ # environment variable: PICTRS__REPO__CERTIFICATE_FILE
+ # default: empty
+-certificate_file = '/etc/ca-certificate.crt'
++#certificate_file = '/etc/ca-certificate.crt'
+
+
+ ### Media storage configuration
+@@ -668,17 +668,17 @@
+ ## Optional: path to uploaded media
+ # environment variable: PICTRS__STORE__PATH
+ # default: /mnt/files
+-path = '/mnt/files'
++path = '/var/lib/pict-rs/files'
+
+
+ ## Object media storage example
+-[store]
++#[store]
+ ## Optional: type of media storage to use
+ # environment variable: PICTRS__STORE__TYPE
+ # default: filesystem
+ #
+ # available options: filesystem, object_storage
+-type = 'object_storage'
++#type = 'object_storage'
+
+ ## Required: endpoint at which the object storage exists
+ # environment variable: PICTRS__STORE__ENDPOINT
+@@ -687,7 +687,7 @@
+ # examples:
+ # - `http://localhost:9000` # minio
+ # - `https://s3.dualstack.eu-west-1.amazonaws.com` # s3
+-endpoint = 'http://minio:9000'
++#endpoint = 'http://minio:9000'
+
+ ## Optional: How to format object storage requests
+ # environment variable: PICTRS__STORE__USE_PATH_STYLE
+@@ -697,34 +697,34 @@
+ # When false, objects will be fetched from http{s}://{bucket_name}.{endpoint}:{port}/{object}
+ #
+ # Set to true when using minio
+-use_path_style = false
++#use_path_style = false
+
+ ## Required: object storage bucket name
+ # environment variable: PICTRS__STORE__BUCKET_NAME
+ # default: empty
+-bucket_name = 'pict-rs'
++#bucket_name = 'pict-rs'
+
+ ## Required: object storage region
+ # environment variable: PICTRS__STORE__REGION
+ # default: empty
+ #
+ # When using minio, this can be set to `minio`
+-region = 'minio'
++#region = 'minio'
+
+ ## Required: object storage access key
+ # environment variable: PICTRS__STORE__ACCESS_KEY
+ # default: empty
+-access_key = 'ACCESS_KEY'
++#access_key = 'ACCESS_KEY'
+
+ ## Required: object storage secret key
+ # environment variable: PICTRS__STORE__SECRET_KEY
+ # default: empty
+-secret_key = 'SECRET_KEY'
++#secret_key = 'SECRET_KEY'
+
+ ## Optional: object storage session token
+ # environment variable: PICTRS__STORE__SESSION_TOKEN
+ # default: empty
+-session_token = 'SESSION_TOKEN'
++#session_token = 'SESSION_TOKEN'
+
+ ## Optional: set how long object storage signatures are valid for (in seconds)
+ # environment variable: PICTRS__STORE__SIGNATURE_EXPIRATION
+@@ -732,7 +732,7 @@
+ #
+ # This can be useful if your object storage might take a while to process requests. It should not be
+ # increased more than needed to prevent replay attacks.
+-signature_expiration = 15
++#signature_expiration = 15
+
+ ## Optional: set how long pict-rs will wait (in seconds) for a response from object storage
+ # environment variable: PICTRS__STORE__CLIENT_TIMEOUT
+@@ -740,7 +740,7 @@
+ #
+ # This value is the total wait time, and not additional wait time on top of the
+ # signature_expiration.
+-client_timeout = 30
++#client_timeout = 30
+
+ ## Optional: URL to a CDN at which pict-rs files are available for web consumption
+ # environment variable: PICTRS__STORE__PUBLIC_ENDPOINT
+@@ -753,4 +753,4 @@
+ # Note that in order for clients to fetch media from this URL directly, any server between the
+ # client and pict-rs must not be configured to follow redirects, or else that server will fetch from
+ # this public URL and serve the file itself.
+-public_endpoint = "https://pict-rs.some.cdn.example.com/subpath/"
++#public_endpoint = "https://pict-rs.some.cdn.example.com/subpath/"
diff --git a/testing/pict-rs/pict-rs.initd b/testing/pict-rs/pict-rs.initd
new file mode 100644
index 00000000000..55ee7b02642
--- /dev/null
+++ b/testing/pict-rs/pict-rs.initd
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+
+name=pict-rs
+description="pict-rs image hosting service"
+
+: ${cfgfile:="/etc/pict-rs/pict-rs.toml"}
+
+command="/usr/bin/pict-rs"
+command_args="-c $cfgfile run"
+command_background=true
+command_user="pict-rs:pict-rs"
+pidfile="/run/${RC_SVCNAME}.pid"
+directory="/var/lib/pict-rs"
+output_log="/var/log/pict-rs.log"
+error_log="/var/log/pict-rs.err"
+
+required_files="$cfgfile"
+
+depend() {
+ need localmount net
+ after firewall
+}
+
+start_pre() {
+ checkpath -f -m 0640 -o "root:pict-rs" "$cfgfile"
+ checkpath -f -m 0640 -o "$command_user" "$output_log" "$error_log"
+ checkpath -d -m 0750 -o "$command_user" "$directory"
+}
diff --git a/testing/pict-rs/pict-rs.pre-install b/testing/pict-rs/pict-rs.pre-install
new file mode 100644
index 00000000000..84d5da221ab
--- /dev/null
+++ b/testing/pict-rs/pict-rs.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S pict-rs 2>/dev/null
+adduser -S -D \
+ -h /var/lib/pict-rs \
+ -s /sbin/nologin \
+ -G pict-rs \
+ -g "Pict-rs image hosting service" \
+ pict-rs 2>/dev/null
+
+exit 0
diff --git a/testing/pidif/APKBUILD b/testing/pidif/APKBUILD
new file mode 100644
index 00000000000..420f5238c4a
--- /dev/null
+++ b/testing/pidif/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Yo'av Moshe <alpine@yoavmoshe.com>
+pkgname=pidif
+pkgver=0.1
+pkgrel=1
+pkgdesc="Simple PDF Reader"
+url="https://github.com/bjesus/pidif"
+arch="all !s390x !riscv64" # rust
+license="GPL-3.0-or-later"
+makedepends="
+ cairo-dev
+ cargo
+ cargo-auditable
+ gtk4.0-dev
+ poppler-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/bjesus/pidif/archive/refs/tags/$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 "target/release/pidif" "$pkgdir/usr/bin/pidif"
+}
+
+sha512sums="
+ba067c8c98cc5db6c3412dd7793ba901863f9ca6fa2cf828d28597c87614c3ba7f57e74d7ba85267e28c569d30e3ab12424eae96e963092d5bfb6fd720d40ca9 pidif-0.1.tar.gz
+"
diff --git a/testing/pigpio/APKBUILD b/testing/pigpio/APKBUILD
new file mode 100644
index 00000000000..47141d569e4
--- /dev/null
+++ b/testing/pigpio/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=pigpio
+pkgver=79
+pkgrel=3
+pkgdesc="C library for the Raspberry Pi which allows control of the GPIO"
+url="https://abyz.me.uk/rpi/pigpio/"
+arch="armhf armv7 aarch64" # only runs on the Raspberry Pi
+license="Unlicense"
+makedepends="cmake py3-gpep517 py3-setuptools py3-wheel samurai"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-openrc
+ py3-$pkgname:_python:noarch
+ "
+install="$pkgname.post-install"
+source="https://github.com/joan2937/pigpio/archive/refs/tags/v$pkgver/pigpio-$pkgver.tar.gz
+ pigpiod.initd"
+options="!check" # tests require GPIO access
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=Release \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
+
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ mkdir -p "$pkgdir"/usr/share
+ mv "$pkgdir"/usr/man "$pkgdir"/usr/share/man
+
+ mkdir -p "$pkgdir"/etc/init.d
+ install -Dm755 "$srcdir"/pigpiod.initd "$pkgdir"/etc/init.d/pigpiod
+
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+_python() {
+ pkgdesc="$pkgdesc (python bindings)"
+ depends="python3"
+
+ # rename
+ provides="$pkgname-python=$pkgver-r$pkgrel"
+ replaces="$pkgname-python"
+
+ amove usr/lib/python3*
+}
+
+sha512sums="
+bae24b0a28b6865bf4e0903d9e1881344ab7cf26a513f295d178402a426f90f2fdd43444cfe899c0bc25939a129ebf47ecd1ac1600683cd648902d56825a3203 pigpio-79.tar.gz
+04ebf3ef5b740e694509f134305630f87d76c1c8651df50e83083c0c74b5946e17d601df2d192c034aeaa5f11d6fc3ae3a0579ff58a2073cdb4e45475b128054 pigpiod.initd
+"
diff --git a/testing/pigpio/pigpio.post-install b/testing/pigpio/pigpio.post-install
new file mode 100644
index 00000000000..c88316867f0
--- /dev/null
+++ b/testing/pigpio/pigpio.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cat << __EOF__
+* Note that in order for pigpio to work, you will need to add "iomem=relaxed"
+* to your kernel's cmdline.
+__EOF__
+exit 0
diff --git a/testing/pigpio/pigpiod.initd b/testing/pigpio/pigpiod.initd
new file mode 100644
index 00000000000..82a506f0cbb
--- /dev/null
+++ b/testing/pigpio/pigpiod.initd
@@ -0,0 +1,9 @@
+#!/sbin/openrc-run
+
+name="pigpiod"
+
+command="/usr/bin/pigpiod"
+command_args="-g -k"
+command_background="yes"
+
+pidfile="/run/$RC_SVCNAME.pid"
diff --git a/testing/pijul/APKBUILD b/testing/pijul/APKBUILD
deleted file mode 100644
index c59b246d28d..00000000000
--- a/testing/pijul/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=pijul
-pkgver=0.12.2
-pkgrel=0
-pkgdesc="Patch-based distributed version control system"
-url="https://pijul.org/"
-arch="all !s390x !mips !mips64" # Limited by cargo
-license="GPL-2.0-or-later"
-makedepends="cargo clang libsodium-dev nettle-dev openssl-dev"
-subpackages="
- $pkgname-bash-completion
- $pkgname-fish-completion
- $pkgname-zsh-completion
- "
-source="$pkgname-$pkgver.tar.gz::https://crates.io/api/v1/crates/pijul/$pkgver/download"
-
-build() {
- cargo build --release
-}
-
-check() {
- cargo test --release
-}
-
-package() {
- cd target/release/
- install -Dm755 pijul -t "$pkgdir"/usr/bin/
-
- # Generate completion scripts
- for s in bash fish zsh
- do
- ./pijul generate-completions --$s > $pkgname.$s
- done
-
- install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
- install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/completions/$pkgname.fish
- install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
-}
-
-sha512sums="b6f6b6ba631f02b2b5bc49ed712581244a03b5062fc06cce8127ab7683e20a3736d2b94c77eef47c4552b430dca848f3ebdbb6117bee07c41e89710829738921 pijul-0.12.2.tar.gz"
diff --git a/testing/pike/APKBUILD b/testing/pike/APKBUILD
deleted file mode 100644
index 5a099b79af2..00000000000
--- a/testing/pike/APKBUILD
+++ /dev/null
@@ -1,184 +0,0 @@
-# Maintainer: Paweł Tomak <pawel@tomak.eu>
-pkgname=pike
-_pkgname=Pike
-pkgver=8.0.702
-pkgrel=0
-pkgdesc="Pike Programing language"
-url="https://pike.lysator.liu.se"
-arch="x86_64"
-license="GPL-2.0-or-later"
-options="!check" # there are no tests for those packages
-depends="readline"
-makedepends="gmp-dev
- bzip2-dev
- freeglut-dev
- gdbm-dev
- giflib-dev
- giflib-utils
- gtk+2.0
- libglade-dev
- libsm-dev
- mesa-gl
- nettle
- nettle-dev
- nettle-utils
- pcre-dev
- sdl-dev
- sdl_mixer-dev
- sqlite-dev
- sqlite-libs
- zlib-dev
- librsvg-dev"
-subpackages="$pkgname-doc $pkgname-full::noarch"
-source="http://pike.lysator.liu.se/pub/pike/all/$pkgver/$_pkgname-v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-v$pkgver"
-
-_full_deps="$pkgname=$pkgver-r$pkgrel $pkgname-doc=$pkgver-r$pkgrel"
-for _name in bzip2 gdbm gl gtk image pcre sdl svg sqlite
-do
- subpackages="$subpackages $pkgname-$_name"
- _full_deps="$_full_deps $pkgname-$_name=$pkgver-r$pkgrel"
-done
-
-build() {
- make CONFIGUREARGS=" \
- --prefix=/usr \
- --disable-make_conf \
- --disable-noopty-retry \
- --without-cdebug \
- --without-bundles \
- --without-ssleay \
- --with-gmp \
- --with-crypt \
- --with-bignums \
- --without-rtldebug \
- --with-Bz2 \
- --without-fftw \
- --without-_Ffmpeg \
- --with-gdbm \
- --without-GTK1 \
- --with-GTK2 \
- --with-jpeglib \
- --without-Kerberos \
- --without-msql \
- --without-mysql \
- --without-Odbc \
- --without-oracle \
- --with-GL \
- --with-GLUT \
- --with-_Regexp_PCRE \
- --without-libpdf \
- --without-sass \
- --with-sane \
- --with-SDL \
- --with-SDL_Mixer \
- --with-svg \
- --with-tifflib \
- --without-freetype \
- --without-vcdiff \
- --with-_Image_WebP \
- --with-zlib"
- PATH="$builddir/bin:$PATH" make doc
-}
-
-package() {
- make INSTALLARGS="--traditional" buildroot="$pkgdir" install
-}
-
-_install() {
- local _arg
- for _arg; do
- [ -e "$_arg" ] || continue
- local bn=$(basename "$_arg")
- local dn=$(dirname "$_arg")
- mkdir -p "$subpkgdir/$dn"
- mv "$_arg" "$subpkgdir/$dn/$bn"
- done
-}
-
-bzip2() {
- cd "$pkgdir"
- pkgdesc="$pkgname support"
- depends="pike"
- _install usr/lib/pike/modules/*Bz2.*
-}
-
-gdbm() {
- cd "$pkgdir"
- pkgdesc="$pkgname GDBM support"
- depends="pike"
- _install usr/lib/pike/modules/*Gdbm.*
-}
-
-gl() {
- cd "$pkgdir"
- pkgdesc="$pkgname OpenGL/GLUT support"
- depends="pike freeglut libsm"
- _install usr/lib/pike/modules/*GL*
-}
-
-gtk() {
- cd "$pkgdir"
- pkgdesc="$pkgname GTK2 support"
- depends="pike-image"
- _install usr/lib/pike/modules/*GTK2*
- _install usr/lib/pike/modules/Tools.pmod/PV.pike
-}
-
-image() {
- cd "$pkgdir"
- pkgdesc="$pkgname image handling modules"
- depends="pike libjpeg tiff libwebp"
- _install usr/lib/pike/?.?/modules/Image.pmod
- _install usr/lib/pike/modules/Image.so
- _install usr/lib/pike/modules/*Image_[!S]*.so
- _install usr/lib/pike/modules/*Image*.pmod
- _install usr/lib/pike/modules/Graphics.pmod
- _install usr/lib/pike/modules/Colors.pmod
- _install usr/lib/pike/modules/Protocols.pmod/X.pmod/XImage.pmod
-}
-
-pcre() {
- cd "$pkgdir"
- pkgdesc="$pkgname PCRE support"
- depends="pike"
- _install usr/lib/pike/modules/*Regexp_PCRE.*
-}
-
-sdl() {
- cd "$pkgdir"
- pkgdesc="$pkgname SDL support"
- depends="pike-image"
- _install usr/lib/pike/modules/*SDL.*
-}
-
-svg() {
- cd "$pkgdir"
- pkgdesc="$pkgname SVG support"
- depends="pike"
- _install usr/lib/pike/modules/_Image_SVG.so
-}
-
-sqlite() {
- cd "$pkgdir"
- pkgdesc="$pkgname SQLite support"
- depends="pike"
- _install usr/lib/pike/modules/*SQLite.*
- _install usr/lib/pike/modules/Sql.pmod/sqlite*
-}
-
-doc() {
- cd "$pkgdir"
- mkdir -p usr/share/doc/
- mv "$builddir/refdoc/traditional_manual/" usr/share/doc/pike/
- rm -rf usr/doc/
- default_doc
-}
-
-full() {
- depends="$_full_deps"
- pkgdesc="Meta package for Pike Programing Language"
- mkdir -p "$subpkgdir"
-}
-
-sha512sums="67ee5a6af9e7ab1031c63647d0f351b6f9a29a736f6b049beada577997bab199d542d39c16c328a81ea52821555f8db9bd227caad55fed9c3613ba6718124e09 Pike-v8.0.702.tar.gz"
diff --git a/testing/piknik/APKBUILD b/testing/piknik/APKBUILD
deleted file mode 100644
index 3bcaa34890c..00000000000
--- a/testing/piknik/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Kevin Daudt <ops@ikke.info>
-# Maintainer: Kevin Daudt <ops@ikke.info>
-pkgname=piknik
-pkgver=0.9.1
-pkgrel=2
-pkgdesc="Copy/paste anything over the network"
-url="https://github.com/jedisct1/piknik"
-arch="all"
-license="BSD-2-Clause"
-makedepends="go glide"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jedisct1/piknik/archive/$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/jedisct1/$pkgname"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
- cd "$builddir"
- export GOPATH="$srcdir"
- glide install
-
- default_prepare
-}
-
-build() {
- cd "$builddir"
-
- export GOPATH="$srcdir"
- go build
-}
-
-check() {
- cd "$builddir"
-
- export GOPATH="$srcdir"
- ./test.sh
-}
-
-package() {
- cd "$builddir"
-
- install -Dm0755 piknik "$pkgdir"/usr/bin/piknik
-}
-
-sha512sums="71718f1026bd5a7e18e2ab94e7d60741ba52e9f3b81db1bbf7e9b8c1a787a29d05159d60b6e8b901cdbae5cf2d05014d104f51475e3ee98168911b0756dbfd68 piknik-0.9.1.tar.gz"
diff --git a/testing/piler/0001-utf8_encode_char.patch b/testing/piler/0001-utf8_encode_char.patch
new file mode 100644
index 00000000000..c6b52188ee5
--- /dev/null
+++ b/testing/piler/0001-utf8_encode_char.patch
@@ -0,0 +1,10 @@
+diff -ruN a/src/decoder.h b/src/decoder.h
+--- a/src/decoder.h 2021-02-23 07:26:47.000000000 +0100
++++ b/src/decoder.h 2022-03-28 18:35:10.706474194 +0200
+@@ -11,5 +11,6 @@
+ void decodeHTML(char *p, int utf8);
+ void decodeURL(char *p);
+ int utf8_encode(char *inbuf, int inbuflen, char *outbuf, int outbuflen, char *encoding);
++void utf8_encode_char(unsigned char c, unsigned char *buf, int buflen, int *len);
+
+ #endif /* _DECODER_H */
diff --git a/testing/piler/0002-manticore-conf.patch b/testing/piler/0002-manticore-conf.patch
new file mode 100644
index 00000000000..8721644ffcb
--- /dev/null
+++ b/testing/piler/0002-manticore-conf.patch
@@ -0,0 +1,17 @@
+diff -ruN a/etc/manticore.conf.in b/etc/manticore.conf.in
+--- a/etc/manticore.conf.in 2024-03-13 09:38:42.847170715 +0100
++++ b/etc/manticore.conf.in 2024-03-13 09:41:24.847111111 +0100
+@@ -248,11 +248,11 @@
+ {
+ listen = 127.0.0.1:9312
+ listen = 127.0.0.1:9306:mysql41
+- log = /var/piler/manticore/manticore.log
++ log = /var/log/piler/manticore.log
+ binlog_max_log_size = 256M
+ binlog_path = /var/piler/manticore
+ binlog_flush = 2
+- query_log = /var/piler/manticore/query.log
++ query_log = /var/log/piler/query.log
+ network_timeout = 5
+ pid_file = /var/run/piler/searchd.pid
+ seamless_rotate = 1
diff --git a/testing/piler/0003-fix_pilerpurge_for_rt_index.patch b/testing/piler/0003-fix_pilerpurge_for_rt_index.patch
new file mode 100644
index 00000000000..66dd1912157
--- /dev/null
+++ b/testing/piler/0003-fix_pilerpurge_for_rt_index.patch
@@ -0,0 +1,91 @@
+From e2f6a718272585dd99737087b9c63fa7a734461c Mon Sep 17 00:00:00 2001
+From: Janos SUTO <sj@acts.hu>
+Date: Wed, 1 Nov 2023 08:25:56 +0100
+Subject: [PATCH] Updated pilerpurge to remove data from manticore in case of
+ RT index
+
+Signed-off-by: Janos SUTO <sj@acts.hu>
+---
+ util/pilerpurge.py | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/util/pilerpurge.py b/util/pilerpurge.py
+index e2e2d61f..dc87916e 100755
+--- a/util/pilerpurge.py
++++ b/util/pilerpurge.py
+@@ -9,7 +9,7 @@ import sys
+ import syslog
+ import time
+
+-SQL_PURGE_SELECT_QUERY = "SELECT piler_id, size FROM " +\
++SQL_PURGE_SELECT_QUERY = "SELECT id, piler_id, size FROM " +\
+ "metadata WHERE deleted=0 AND retained < UNIX_TIMESTAMP(NOW()) " +\
+ "AND id NOT IN (SELECT id FROM rcpt WHERE `to` IN " +\
+ "(SELECT email FROM legal_hold)) AND id NOT IN (SELECT " +\
+@@ -33,7 +33,9 @@ def read_options(filename="", opts={}):
+ opts['password'] = config.get('piler', 'mysqlpwd')
+ opts['database'] = config.get('piler', 'mysqldb')
+ opts['storedir'] = config.get('piler', 'queuedir')
+-
++ opts['rtindex'] = config.getint('piler', 'rtindex', fallback=0)
++ opts['sphxhost'] = config.get('piler', 'sphxhost', fallback='127.0.0.1')
++ opts['sphxport'] = config.getint('piler', 'sphxport', fallback=9306)
+ opts['server_id'] = "%02x" % config.getint('piler', 'server_id')
+
+
+@@ -184,6 +186,17 @@ def get_attachment_file_path(piler_id='', attachment_id=0, opts={}):
+ str(attachment_id)])
+
+
++def purge_index_data(ids=[], opts={}):
++ '''
++ Delete from index data in case of RT index
++ '''
++
++ if opts['rtindex'] == 1 and opts['dry_run'] is False:
++ cursor = opts['sphx'].cursor()
++ a = "," . join([str(x) for x in ids])
++ cursor.execute("DELETE FROM piler WHERE id IN (%s)" % (a))
++
++
+ def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-c", "--config", type=str, help="piler.conf path",
+@@ -203,6 +216,7 @@ def main():
+ opts['dry_run'] = args.dry_run
+ opts['verbose'] = args.verbose
+ opts['db'] = None
++ opts['sphx'] = None
+ opts['messages'] = 0
+ opts['files'] = 0
+ opts['size'] = 0
+@@ -217,6 +231,8 @@ def main():
+ opts['db'] = dbapi.connect(opts['dbhost'], opts['username'],
+ opts['password'], opts['database'])
+
++ opts['sphx'] = dbapi.connect(host=opts['sphxhost'], port=opts['sphxport'])
++
+ if is_purge_enabled(opts) is False:
+ syslog.syslog("Purging emails is disabled")
+ sys.exit(1)
+@@ -229,13 +245,15 @@ def main():
+ if rows == ():
+ break
+
+- piler_id = [x[0] for x in rows]
+- size = [x[1] for x in rows]
++ id = [x[0] for x in rows]
++ piler_id = [x[1] for x in rows]
++ size = [x[2] for x in rows]
+
+ opts['purged_size'] = opts['purged_size'] + sum(size)
+
+ purge_m_files(piler_id, opts)
+ purge_attachments_by_piler_id(piler_id, opts)
++ purge_index_data(id, opts)
+
+ # It's possible that there's attachment duplication, thus
+ # refcount > 0, even though after deleting the duplicates
+--
+2.42.0
+
diff --git a/testing/piler/APKBUILD b/testing/piler/APKBUILD
new file mode 100644
index 00000000000..62b95da727d
--- /dev/null
+++ b/testing/piler/APKBUILD
@@ -0,0 +1,114 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=piler
+pkgver=1.4.4
+pkgrel=0
+pkgdesc="Open source email archiving solution with all the necessary features for your enterprise"
+url="https://www.mailpiler.org/"
+arch="all !ppc64le !s390x !x86 !armhf !armv7" # exclusions because manticore is not built for these architectures
+license="GPL-3.0-only"
+depends="
+ bash
+ catdoc
+ coreutils
+ findutils
+ libzip
+ manticore
+ memcached
+ poppler-utils
+ python3
+ py3-mysqlclient
+ sysstat
+ tnef
+ tre
+ unrtf
+ xlhtml
+ "
+#optional = poppler: for reading attachments
+# catdoc: for reading attachments
+# tnef: for reading attachments
+# bash is required to execute the cron maintenance scripts
+makedepends="$depends mariadb-dev php82-dev openssl-dev tre-dev libzip-dev"
+install="$pkgname.pre-install"
+options="!check"
+subpackages="$pkgname-openrc"
+pkgusers="piler"
+pkggroups="piler"
+source="https://bitbucket.org/jsuto/piler/downloads/piler-$pkgver.tar.gz
+ 0001-utf8_encode_char.patch
+ 0002-manticore-conf.patch
+ 0003-fix_pilerpurge_for_rt_index.patch
+
+ piler.initd
+ piler-smtp.initd
+ searchd.initd
+ searchd.confd
+"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --sbindir=/usr/bin \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --with-database=mysql \
+ --with-piler-user=root \
+ --enable-memcached
+
+ #Attention! The makefile is not formulated correctly for multithreading! We need to use one thread or it breaks.
+ make -j1
+}
+
+package() {
+
+ make installdirs DESTDIR="$pkgdir"
+ make install DESTDIR="$pkgdir"
+
+ # service files
+ rm -rf "$pkgdir"/etc/init.d
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm755 "$srcdir"/$pkgname-smtp.initd "$pkgdir"/etc/init.d/$pkgname-smtp
+ install -Dm755 "$srcdir"/searchd.initd "$pkgdir"/etc/init.d/searchd
+ install -Dm644 "$srcdir"/searchd.confd "$pkgdir"/etc/conf.d/searchd
+
+ # crontab
+ install -Dm600 "$pkgdir"/usr/share/piler/piler.cron "$pkgdir"/etc/crontabs/piler
+
+ # configuration
+ install -Dm655 "$builddir"/contrib/webserver/piler-nginx.conf "$pkgdir"/etc/piler/piler-nginx.conf
+ install -Dm644 "$builddir"/etc/example.conf "$pkgdir"/etc/piler/piler.conf
+ install -Dm644 "$builddir"/etc/smtp.acl.example "$pkgdir"/etc/piler/smtp.acl.example
+ install -Dm644 "$builddir"/util/db-upgrade.sql "$pkgdir"/usr/share/piler/db-upgrade.sql
+ mv "$pkgdir"/etc/piler/manticore.conf.dist "$pkgdir"/etc/piler/manticore.conf
+ mv "$pkgdir"/etc/piler/config-site.dist.php "$pkgdir"/etc/piler/config-site.php
+ rm -f "$pkgdir"/etc/piler/sphinx.conf.dist
+ touch "$pkgdir"/etc/piler/MANTICORE
+
+ # license
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+ # Fix directory permissions
+ chmod -R a-s "$pkgdir"/usr/bin
+ chmod 644 "$pkgdir"/etc/piler/*
+ chmod 770 "$pkgdir"/var/piler/www/tmp "$pkgdir"/var/piler/www/images
+ chown piler:www-data "$pkgdir"/var/piler/www/tmp
+
+ install -d "$pkgdir"/var/log/$pkgname
+
+ # remove unnecessary files
+ rm -f "$pkgdir"/usr/lib/piler/*.service "$pkgdir"/usr/lib/piler/postinstall.sh
+}
+
+sha512sums="
+bd53fa14d01fe50c7fa6ccded4404d4ceb6b19ff4484cc2c4f8fde05cc9a66937c701a4378535afc939707d4c27955ec3f31337674506488b10672fc41ba7b4b piler-1.4.4.tar.gz
+017f3c6241a0368efb6d1b1b734c38b52af67753f5245dad42e265f44961c90bd218d947824a02e7ff02aa11edd642a2947aeff64033f4757670948f88478f4a 0001-utf8_encode_char.patch
+6bbf4c70dd51413b6568f2866a28524eb2986fee35fc4921166baa702fbf466ded7c3357ef7987403c3ad694bbd62aad9abfc90ac8313613e31b7b65784c9b08 0002-manticore-conf.patch
+aefef3ff8101c62524f3cd866e3243d4e0cfb2acfd98627db29d9e2d8c12647962bf1b7b62dbd8d0f8b8b20f7719da134dde5d903b4adcf589f5494576ee3e58 0003-fix_pilerpurge_for_rt_index.patch
+f3895913350ffb252455c50bb276cc9fff0603804507d2a3f6ab6167a1b8b357ca8039ccb8725849ffa99fe04673d510dfcdc09f099631a8f0dd148494def615 piler.initd
+3aa8e661c1c806311abecdc76dcbd12a167e64de11785d2a3c63416cd1e5a445eb021ff4882de5fe1a145fc78483b3691262a07fc0168bbfc03b88812cc1ad17 piler-smtp.initd
+c4ad4742c3bd899d8f8004f16252b4862e19683cba6d3d4a7c86d9ed90942c7b3878fc713915aa299b28852f798fedee5ae73e28844d653383d6c7a07698fde4 searchd.initd
+d6a57f4f972786898d39e94666daa36ba6265dbb577d97e4a9586d4e7b2f3f7b4e69537b316529123186df30f530dc54c03af10c88c8e205192d2b8568571bb3 searchd.confd
+"
diff --git a/testing/piler/piler-smtp.initd b/testing/piler/piler-smtp.initd
new file mode 100644
index 00000000000..8070d2d35f7
--- /dev/null
+++ b/testing/piler/piler-smtp.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+description="Piler SMTP server"
+
+command="/usr/bin/$SVCNAME"
+command_background=yes
+
+depend() {
+ need net
+ after firewall
+}
+
diff --git a/testing/piler/piler.initd b/testing/piler/piler.initd
new file mode 100644
index 00000000000..3e69b9272b3
--- /dev/null
+++ b/testing/piler/piler.initd
@@ -0,0 +1,16 @@
+#!/sbin/openrc-run
+
+description="Piler daemon"
+
+command="/usr/bin/$SVCNAME"
+command_background=yes
+
+depend() {
+ need net
+ after firewall mariadb
+}
+
+start_pre() {
+ checkpath -d -m 750 -o piler:piler /run/piler
+}
+
diff --git a/testing/piler/piler.pre-install b/testing/piler/piler.pre-install
new file mode 100644
index 00000000000..e798611b7fd
--- /dev/null
+++ b/testing/piler/piler.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S piler 2>/dev/null
+adduser -S -D -h /var/piler -s /bin/bash -G piler -g piler piler 2>/dev/null
+
+exit 0
diff --git a/testing/piler/searchd.confd b/testing/piler/searchd.confd
new file mode 100644
index 00000000000..e3c05669a0e
--- /dev/null
+++ b/testing/piler/searchd.confd
@@ -0,0 +1,8 @@
+# Configuration for /etc/init.d/searchd
+
+# Path of the configuration file
+#cfgfile="/etc/piler/manticore.conf"
+
+# Additional options to pass to the searchd command
+#command_args=""
+
diff --git a/testing/piler/searchd.initd b/testing/piler/searchd.initd
new file mode 100644
index 00000000000..dd7c0e013f0
--- /dev/null
+++ b/testing/piler/searchd.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+: ${cfgfile:="/etc/piler/manticore.conf"}
+
+Description="Searchd for piler daemon"
+command="/usr/bin/searchd"
+command_args="--config $cfgfile $command_args"
+command_user="piler:piler"
+
+piddir=${piddir:-"/run/piler"}
+pidfile="${piddir}/${SVCNAME}.pid"
+
+depend() {
+ need net
+ after firewall mariadb
+}
+
+start_pre() {
+ checkpath --directory --owner "piler:piler" "$piddir"
+}
+
diff --git a/testing/pimd-dense/APKBUILD b/testing/pimd-dense/APKBUILD
new file mode 100644
index 00000000000..056db1faa7f
--- /dev/null
+++ b/testing/pimd-dense/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Nico de Haer <nico.dehaer@gmail.com>
+# Maintainer: Nico de Haer <nico.dehaer@gmail.com>
+pkgname=pimd-dense
+pkgver=2.1.0
+pkgrel=0
+pkgdesc="PIM-DENSE Multicast Routing for UNIX"
+url="https://github.com/troglobit/pimd-dense"
+arch="all"
+license="custom"
+makedepends="linux-headers"
+subpackages="$pkgname-doc $pkgname-openrc"
+options="!spdx !check" # requires intricate setup with tshark/unshare
+source="
+ https://github.com/troglobit/pimd-dense/releases/download/$pkgver/pimd-dense-$pkgver.tar.gz
+ pimd-dense.initd
+ pimd-dense.confd
+ "
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ 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 -m644 -D "$builddir"/pimdd.conf \
+ "$pkgdir"/etc/pimdd.conf
+ install -Dm644 LICENSE \
+ "$pkgdir"/usr/share/licenses/"$pkgname"/COPYING
+ install -Dm644 doc/LICENSE.mrouted \
+ "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.mrouted
+ install -Dm644 doc/LICENSE.pimd \
+ "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE.pimd
+}
+
+sha512sums="
+1963c88f49e766b456aeb1d649c65f5209bbb901ed4fb8293ec8a347882c754d2742a6147023c3592d835df88cbedee20593ca1c52a1d350b71d69d21d5d74ec pimd-dense-2.1.0.tar.gz
+9d77336c50062dfdd553ee474a16d40ffe2a07d6141a48ef3725c0afe2b974f430adcdb9cbe2723f8a67f0b16747264094b537327acd47cc6dbaa7acdf7fff92 pimd-dense.initd
+078b78e46379c0225791a081534622493561a2ed07388d0a93c7517d5166e33c0594ebb7bf75a600aecb36635b33984fadd81c85cb06d7bd0862772131d82367 pimd-dense.confd
+"
diff --git a/testing/pimd-dense/pimd-dense.confd b/testing/pimd-dense/pimd-dense.confd
new file mode 100644
index 00000000000..6e8e4496723
--- /dev/null
+++ b/testing/pimd-dense/pimd-dense.confd
@@ -0,0 +1 @@
+pimdd_opts="-f /etc/pimdd.conf -l notice"
diff --git a/testing/pimd-dense/pimd-dense.initd b/testing/pimd-dense/pimd-dense.initd
new file mode 100644
index 00000000000..af45297f368
--- /dev/null
+++ b/testing/pimd-dense/pimd-dense.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+name=pimdd
+command="/usr/sbin/$name"
+command_args="$pimdd_opts -n"
+command_background="yes"
+
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/pimd/APKBUILD b/testing/pimd/APKBUILD
new file mode 100644
index 00000000000..b5c50f3a976
--- /dev/null
+++ b/testing/pimd/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Nico de Haer <nico.dehaer@gmail.com>
+# Maintainer: Nico de Haer <nico.dehaer@gmail.com>
+pkgname=pimd
+pkgver=3.0_git20220201
+_gitrev=facecc14c46fb0991d458664c650a7141dec035d
+pkgrel=0
+pkgdesc="PIM-SM/SSM Multicast Routing for UNIX"
+url="https://troglobit.com/pimd.html"
+arch="all"
+options="!check"
+license="BSD-3-Clause"
+makedepends="linux-headers automake autoconf"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="
+ $pkgname-$_gitrev.tar.gz::https://github.com/troglobit/pimd/archive/$_gitrev.tar.gz
+ pimd.initd
+ pimd.confd
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ 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 -m644 -D "$builddir"/pimd.conf \
+ "$pkgdir"/etc/pimd.conf
+}
+
+sha512sums="
+87124ce25e4a5d31843cf397e8f6309078dbcf2b80fdfe4dafc539e52c31e362591314ae77b57302ab616237f9e6f945eb6b72178c090d1e2a136f0633b77b21 pimd-facecc14c46fb0991d458664c650a7141dec035d.tar.gz
+e1858b511a4fea2bee743c2a9158c05844451ebb9ba3c23de257f7f25144a3671c04b32a37afdd158483ed9079427d00d25e314aabd0d83d44ba7e32da698166 pimd.initd
+a0602071a27483dd955805e1eb885896626968ba7caba8e66ecdcc03244f4346cb3bc9c06e1da81e35c560f0d6c6622cbd52c190bae9088eaedae5d7f795acfc pimd.confd
+"
diff --git a/testing/pimd/pimd.confd b/testing/pimd/pimd.confd
new file mode 100644
index 00000000000..4478a09e6de
--- /dev/null
+++ b/testing/pimd/pimd.confd
@@ -0,0 +1,3 @@
+# PIMD conf.d file for alpine linux
+
+pimd_opts="-f /etc/pimd.conf -l notice"
diff --git a/testing/pimd/pimd.initd b/testing/pimd/pimd.initd
new file mode 100644
index 00000000000..a306799a67b
--- /dev/null
+++ b/testing/pimd/pimd.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+# PIMD init.d file for alpine linux.
+
+name=pimd
+command="/usr/sbin/$name"
+command_args="$pimd_opts"
+command_background="yes"
+
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/pinentry-bemenu/APKBUILD b/testing/pinentry-bemenu/APKBUILD
new file mode 100644
index 00000000000..a9325cbced5
--- /dev/null
+++ b/testing/pinentry-bemenu/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=pinentry-bemenu
+pkgver=0.13.1
+pkgrel=0
+pkgdesc="Pinentry based on bemenu"
+url="https://github.com/t-8ch/pinentry-bemenu"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ bemenu-dev
+ libassuan-dev
+ libgpg-error-dev
+ meson
+ popt-dev
+ samurai
+ "
+source="https://github.com/t-8ch/pinentry-bemenu/archive/v$pkgver/pinentry-bemenu-$pkgver.tar.gz
+ meson-ungit.patch
+ "
+
+build() {
+ echo "$pkgver" > VERSION
+ abuild-meson . output
+ meson compile -j ${JOBS:-0} -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+9cdb4a3876c96900dc5ae31ad8520e0f5bc337a7e97e30c35fc0898c5f25dea322b9f41afa191a75eb3502455a96f2cb03f3699802ac38dcd1af67445fb8a3b2 pinentry-bemenu-0.13.1.tar.gz
+45e542b6feef5d8b61b84a93572f04bb3ec8d972eb820b9fef5f04a67e0e44adb252eeb6cbcd53b3942006f3bb2179d894050b1640f6cf4607cd912c26c934dc meson-ungit.patch
+"
diff --git a/testing/pinentry-bemenu/meson-ungit.patch b/testing/pinentry-bemenu/meson-ungit.patch
new file mode 100644
index 00000000000..477860cc8b4
--- /dev/null
+++ b/testing/pinentry-bemenu/meson-ungit.patch
@@ -0,0 +1,15 @@
+--- a/meson.build
++++ b/meson.build
+@@ -4,10 +4,10 @@
+ )
+
+
+-version_h = vcs_tag(
++version_h = configure_file(
++ configuration : { 'VCS_TAG': meson.project_version() },
+ input : 'version.h.in',
+ output : 'version.h',
+- command : ['git', 'describe', '--tag', '--dirty', '--broken'],
+ )
+
+ compiler = meson.get_compiler('c')
diff --git a/testing/pinephone-call-audio/APKBUILD b/testing/pinephone-call-audio/APKBUILD
new file mode 100644
index 00000000000..d67ece8212a
--- /dev/null
+++ b/testing/pinephone-call-audio/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Miles Alan <m@milesalan.com>
+# Maintainer: Miles Alan <m@milesalan.com>
+pkgname=pinephone-call-audio
+pkgver=0.1
+pkgrel=0
+pkgdesc="Voice call audio routing setup tool for Pinephone"
+url="https://xnux.eu/devices/feature/audio-pp.html"
+license="GPL-3.0-or-later"
+arch="aarch64"
+makedepends="linux-headers"
+source="https://xff.cz/kernels/pinephone-call-audio-$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ gcc -o pinephone-call-audio call-audio.c
+}
+
+package() {
+ install -Dm755 pinephone-call-audio "$pkgdir"/usr/bin/pinephone-call-audio
+}
+
+sha512sums="
+78470b8e74c103b4008b54eecae50b36a3c87ea9df0a3cfe3870a0815f50ff6a0cecafc05fa2810b400c5653eaf9f8a9b0cedccaae768ac7d0f0e697b8be6eae pinephone-call-audio-0.1.tar.gz
+"
diff --git a/testing/pinephone-compass/APKBUILD b/testing/pinephone-compass/APKBUILD
new file mode 100644
index 00000000000..a2e6ff56726
--- /dev/null
+++ b/testing/pinephone-compass/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Mike Banon <mikebdp2@gmail.com>
+# Maintainer: Mike Banon <mikebdp2@gmail.com>
+pkgname=pinephone-compass
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="GTK3 compass app for the Pine64 Pinephone, supports LIS3MDL and AF8133J magnetometers"
+url="https://gitlab.com/lgtrombetta/pinephone-compass"
+license="GPL-3.0-or-later"
+arch="aarch64"
+depends="
+ gtk+3.0
+ libhandy1
+ librsvg
+ py3-gobject3
+ py3-matplotlib
+ py3-numpy
+ py3-pandas
+ py3-xdg
+ python3
+ "
+makedepends="
+ gettext
+ glib-dev
+ meson
+ "
+source="https://gitlab.com/lgtrombetta/pinephone-compass/-/archive/v$pkgver/compass-v$pkgver.tar.gz
+ correct_udev_rules_path.patch
+"
+options="!check" # no test suite
+builddir="$srcdir/compass-v$pkgver"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+34cdc6abea979e363a088c53af14679c600e270002f28166d3348544ad28ca28c06328b6299ea2a074def0d1291a600ff6c2e7244487077187d029c687726aa1 compass-v0.4.0.tar.gz
+807355165b7d732bba183cfd19d89caf5fdb0041f4e30a965d19d6e39542da5cbf2bcb458519499ad052048522180585dd7317d78cdfae972da121bb3a45b11b correct_udev_rules_path.patch
+"
diff --git a/testing/pinephone-compass/correct_udev_rules_path.patch b/testing/pinephone-compass/correct_udev_rules_path.patch
new file mode 100644
index 00000000000..36be538d9e4
--- /dev/null
+++ b/testing/pinephone-compass/correct_udev_rules_path.patch
@@ -0,0 +1,13 @@
+diff --git a/data/meson.build b/data/meson.build
+index f35d456..15c54ae 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -33,7 +33,7 @@ install_data('com.gitlab.lgtrombetta.Compass.gschema.xml',
+ install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
+ )
+
+-install_data('90-magn.rules', install_dir: '/lib/udev/rules.d')
++install_data('90-magn.rules', install_dir: '/usr/lib/udev/rules.d/')
+
+ compile_schemas = find_program('glib-compile-schemas', required: false)
+ if compile_schemas.found()
diff --git a/testing/pipectl/APKBUILD b/testing/pipectl/APKBUILD
new file mode 100644
index 00000000000..1ec06bae5fc
--- /dev/null
+++ b/testing/pipectl/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=pipectl
+pkgver=0.4.1
+pkgrel=1
+pkgdesc="A simple named pipe management utility"
+url="https://github.com/Ferdi265/pipectl"
+license="GPL-3.0-or-later"
+arch="all"
+makedepends="cmake samurai scdoc"
+subpackages="$pkgname-doc"
+source="https://github.com/Ferdi265/pipectl/archive/v$pkgver/pipectl-$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINSTALL_DOCUMENTATION=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+812993da6a274dc4965d1aec93ff557a421881159be1b457621488dcc74b673a6cddfa39cd2c0f22723036d71289341f3702771de6ff47b28f02a4721dd99260 pipectl-0.4.1.tar.gz
+"
diff --git a/testing/pipeline/APKBUILD b/testing/pipeline/APKBUILD
new file mode 100644
index 00000000000..130798d722b
--- /dev/null
+++ b/testing/pipeline/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=pipeline
+pkgver=1.14.5
+pkgrel=0
+pkgdesc="Watch YouTube and PeerTube videos in one place"
+url="https://gitlab.com/schmiddi-on-mobile/pipeline"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ appstream-glib
+ cargo
+ cargo-auditable
+ desktop-file-utils
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ openssl-dev
+"
+subpackages="$pkgname-doc $pkgname-lang"
+source="
+ $pkgname-$pkgver.tar.gz::https://gitlab.com/schmiddi-on-mobile/pipeline/-/archive/v$pkgver/pipeline-v$pkgver.tar.gz
+"
+options="net !check" # no tests
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ meson setup build --prefix /usr
+ sed -i "s/cargo build/cargo auditable build --frozen/" build/build.ninja
+ CARGO_HOME="$builddir"/build/cargo-home cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ meson compile -C build
+}
+
+package() {
+ meson install -C build --no-rebuild --destdir "$pkgdir"
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+92d32d91c8e8acd3f93c71d5c7b0c13028c9e6667023a68d1b06d01e9fe576418ebdf5b2378c117d942d73f5f36be605138f02e04d587f2d801fd7b69af5c3f2 pipeline-1.14.5.tar.gz
+"
diff --git a/testing/piper-phonemize/APKBUILD b/testing/piper-phonemize/APKBUILD
new file mode 100644
index 00000000000..0292235936b
--- /dev/null
+++ b/testing/piper-phonemize/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=piper-phonemize
+_pkgver=2023.11.14-4
+pkgver=${_pkgver/-/.}
+pkgrel=1
+pkgdesc="C++ library for converting text to phonemes for piper-tts"
+url="https://github.com/rhasspy/piper-phonemize"
+# x86, s390x: not supported by onnxruntime
+arch="all !x86 !s390x"
+license="MIT AND GPL-3.0-only"
+depends_dev="$pkgname-libs"
+makedepends="
+ cmake
+ espeak-ng-dev
+ onnxruntime-dev
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-libs:_libs
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/rhasspy/piper-phonemize/archive/refs/tags/$_pkgver.tar.gz
+ no-rpath.patch
+ use-system-espeak-ng.patch
+ use-system-onnxruntime.patch
+ add-pkgconfig-support.patch
+ "
+builddir="$srcdir"/piper-phonemize-$_pkgver
+
+case "$CARCH" in
+ riscv64) options="!check";;
+esac
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+_libs() {
+ amove usr/lib
+}
+
+sha512sums="
+0a5e07c98da91fd887a9082d42b7b884277fcb02af3116c71fe0900457528dd432abe2634c837f8fe8b47c718ff9dbc4003ce36d502d6a58c7ecc61fab015776 piper-phonemize-2023.11.14.4.tar.gz
+793c4e6b2666bce8840474cc1c927d459ac9e0b8d752777aa4dd17e5b9a6aaa242ef44a9b88d18bc96886f58be4dcb3c8d885dfc26c92d9d0d1fc08626d6da77 no-rpath.patch
+7afc438cb3c2af3c1b502a5d9f2360efe26636c8ae346432bc749c20ada3d29e57cafaa92c0779ce3954353f70e9f82bf03e7010019b940f7c17695c5c0e5ed1 use-system-espeak-ng.patch
+7288e01ec021d5c14fb39769ca8f219f95d5781301504ce7cd6b0bc4cfa590f60ebfb9293a741972768ac5a6e066d462ea49ba1f141aad98276ff1a31e07ab8c use-system-onnxruntime.patch
+1cb5e8c0f6bdfc53e6de7422c89b0561586e28fd9c0692d87578e47d1f903b25387c887f23a81621f128a2cd0306a9ef2b5f9cf9d57b25d6a9402ef09e62d5ab add-pkgconfig-support.patch
+"
diff --git a/testing/piper-phonemize/add-pkgconfig-support.patch b/testing/piper-phonemize/add-pkgconfig-support.patch
new file mode 100644
index 00000000000..f7a5cfb228c
--- /dev/null
+++ b/testing/piper-phonemize/add-pkgconfig-support.patch
@@ -0,0 +1,50 @@
+commit 6f9df58efef9fd8262e37c717d25f37839f4cdc0
+Author: Shaun Ren <shaun.ren@linux.com>
+Date: Fri Sep 29 22:56:36 2023 -0400
+
+ Add piper_phonemize.pc
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a7b30a6..b7fd68c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -166,6 +166,9 @@ endif()
+
+ target_compile_features(piper_phonemize PUBLIC cxx_std_17)
+
++set(pc_requires_private "espeak-ng libonnxruntime")
++configure_file(piper_phonemize.pc.in piper_phonemize.pc @ONLY)
++
+ # ---- Declare executable ----
+
+ add_executable(piper_phonemize_exe src/main.cpp src/phoneme_ids.cpp)
+@@ -249,6 +252,10 @@ install(
+ PATTERN "*.h"
+ PATTERN "*.hpp")
+
++install(
++ FILES ${CMAKE_CURRENT_BINARY_DIR}/piper_phonemize.pc
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++
+ install(
+ TARGETS piper_phonemize_exe
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/piper_phonemize.pc.in b/piper_phonemize.pc.in
+new file mode 100644
+index 0000000..57d32db
+--- /dev/null
++++ b/piper_phonemize.pc.in
+@@ -0,0 +1,13 @@
++prefix="@CMAKE_INSTALL_PREFIX@"
++exec_prefix="${prefix}"
++libdir="${prefix}/@CMAKE_INSTALL_LIBDIR@"
++includedir="${prefix}/include"
++
++Name: @PROJECT_NAME@
++Description: @CMAKE_PROJECT_DESCRIPTION@
++URL: @CMAKE_PROJECT_HOMEPAGE_URL@
++Version: @PROJECT_VERSION@
++
++Requires.private: @pc_requires_private@
++Cflags: -I"${includedir}"
++Libs: -L"${libdir}" -l@PROJECT_NAME@
diff --git a/testing/piper-phonemize/no-rpath.patch b/testing/piper-phonemize/no-rpath.patch
new file mode 100644
index 00000000000..43266a301e1
--- /dev/null
+++ b/testing/piper-phonemize/no-rpath.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b1562a1..afb0c03 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -17,7 +17,7 @@ if(MSVC)
+
+ elseif(NOT APPLE)
+ # Linux flags
+- string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra -Wl,-rpath,'$ORIGIN'")
++ string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra")
+ string(APPEND CMAKE_C_FLAGS " -Wall -Wextra")
+ endif()
+
diff --git a/testing/piper-phonemize/use-system-espeak-ng.patch b/testing/piper-phonemize/use-system-espeak-ng.patch
new file mode 100644
index 00000000000..16e790dd0c1
--- /dev/null
+++ b/testing/piper-phonemize/use-system-espeak-ng.patch
@@ -0,0 +1,110 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b1562a1..4de504c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -97,7 +97,10 @@ endif()
+
+ # ---- espeak-ng ---
+
+-if(NOT DEFINED ESPEAK_NG_DIR)
++find_package(PkgConfig)
++pkg_check_modules(ESPEAK_NG REQUIRED espeak-ng<2)
++
++if(FALSE)
+ set(ESPEAK_NG_DIR "${CMAKE_CURRENT_BINARY_DIR}/ei")
+
+ include(ExternalProject)
+@@ -125,13 +128,11 @@ endif()
+ target_include_directories(
+ piper_phonemize PUBLIC
+ "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>"
+- ${ESPEAK_NG_DIR}/include
+ ${ONNXRUNTIME_DIR}/include
+ )
+
+ target_link_directories(
+ piper_phonemize PUBLIC
+- ${ESPEAK_NG_DIR}/lib
+ ${ONNXRUNTIME_DIR}/lib
+ )
+
+@@ -221,16 +221,3 @@ install(
+ install(
+ FILES ${CMAKE_SOURCE_DIR}/etc/libtashkeel_model.ort
+ TYPE DATA)
+-
+-# Dependencies
+-install(
+- DIRECTORY ${ESPEAK_NG_DIR}/
+- DESTINATION ${CMAKE_INSTALL_PREFIX})
+-
+-install(
+- DIRECTORY ${ONNXRUNTIME_DIR}/include/
+- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+-
+-install(
+- DIRECTORY ${ONNXRUNTIME_DIR}/lib/
+- DESTINATION ${CMAKE_INSTALL_LIBDIR})
+diff --git a/src/phonemize.cpp b/src/phonemize.cpp
+index 28b01e4..a5b748a 100644
+--- a/src/phonemize.cpp
++++ b/src/phonemize.cpp
+@@ -35,14 +35,21 @@ void phonemize_eSpeak(std::string text, eSpeakPhonemeConfig &config,
+
+ std::vector<Phoneme> *sentencePhonemes = nullptr;
+ const char *inputTextPointer = textCopy.c_str();
+- int terminator = 0;
+
+ while (inputTextPointer != NULL) {
+- // Modified espeak-ng API to get access to clause terminator
+- std::string clausePhonemes(espeak_TextToPhonemesWithTerminator(
++ int terminator = 0;
++ std::string clausePhonemes(espeak_TextToPhonemes(
+ (const void **)&inputTextPointer,
+ /*textmode*/ espeakCHARS_AUTO,
+- /*phonememode = IPA*/ 0x02, &terminator));
++ /*phonememode = IPA*/ 0x02));
++
++ const char *remainingTextPointer = inputTextPointer ? inputTextPointer : textCopy.c_str()+textCopy.length()+1;
++ for (size_t i = -2; remainingTextPointer+i > textCopy.c_str(); i--) {
++ if ((remainingTextPointer[i]) != ' ') {
++ terminator = remainingTextPointer[i];
++ break;
++ }
++ }
+
+ // Decompose, e.g. "ç" -> "c" + "̧"
+ auto phonemesNorm = una::norm::to_nfd_utf8(clausePhonemes);
+@@ -105,25 +112,24 @@ void phonemize_eSpeak(std::string text, eSpeakPhonemeConfig &config,
+ }
+
+ // Add appropriate punctuation depending on terminator type
+- int punctuation = terminator & 0x000FFFFF;
+- if (punctuation == CLAUSE_PERIOD) {
++ if (terminator == '.') {
+ sentencePhonemes->push_back(config.period);
+- } else if (punctuation == CLAUSE_QUESTION) {
++ } else if (terminator == '?') {
+ sentencePhonemes->push_back(config.question);
+- } else if (punctuation == CLAUSE_EXCLAMATION) {
++ } else if (terminator == '!') {
+ sentencePhonemes->push_back(config.exclamation);
+- } else if (punctuation == CLAUSE_COMMA) {
++ } else if (terminator == ',') {
+ sentencePhonemes->push_back(config.comma);
+ sentencePhonemes->push_back(config.space);
+- } else if (punctuation == CLAUSE_COLON) {
++ } else if (terminator == ':') {
+ sentencePhonemes->push_back(config.colon);
+ sentencePhonemes->push_back(config.space);
+- } else if (punctuation == CLAUSE_SEMICOLON) {
++ } else if (terminator == ';') {
+ sentencePhonemes->push_back(config.semicolon);
+ sentencePhonemes->push_back(config.space);
+ }
+
+- if ((terminator & CLAUSE_TYPE_SENTENCE) == CLAUSE_TYPE_SENTENCE) {
++ if (terminator == '.' || terminator == '?' || terminator == '!') {
+ // End of sentence
+ sentencePhonemes = nullptr;
+ }
diff --git a/testing/piper-phonemize/use-system-onnxruntime.patch b/testing/piper-phonemize/use-system-onnxruntime.patch
new file mode 100644
index 00000000000..96140176985
--- /dev/null
+++ b/testing/piper-phonemize/use-system-onnxruntime.patch
@@ -0,0 +1,36 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d23aa2f..edc9c09 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -37,7 +37,7 @@ set_target_properties(piper_phonemize PROPERTIES
+ # ---- onnxruntime ---
+
+ # Look for onnxruntime files in <root>/lib
+-if(NOT DEFINED ONNXRUNTIME_DIR)
++if(FALSE)
+ if(NOT DEFINED ONNXRUNTIME_VERSION)
+ set(ONNXRUNTIME_VERSION "1.14.1")
+ endif()
+@@ -99,6 +99,7 @@ endif()
+
+ find_package(PkgConfig)
+ pkg_check_modules(ESPEAK_NG REQUIRED espeak-ng<2)
++pkg_check_modules(ONNXRUNTIME REQUIRED libonnxruntime)
+
+ if(FALSE)
+ set(ESPEAK_NG_DIR "${CMAKE_CURRENT_BINARY_DIR}/ei")
+@@ -128,12 +129,12 @@ endif()
+ target_include_directories(
+ piper_phonemize PUBLIC
+ "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>"
+- ${ONNXRUNTIME_DIR}/include
++ ${ONNXRUNTIME_INCLUDE_DIRS}
+ )
+
+ target_link_directories(
+ piper_phonemize PUBLIC
+- ${ONNXRUNTIME_DIR}/lib
++ ${ONNXRUNTIME_LIBRARY_DIRS}
+ )
+
+ target_link_libraries(
diff --git a/testing/piper-tts/APKBUILD b/testing/piper-tts/APKBUILD
new file mode 100644
index 00000000000..965abc240fb
--- /dev/null
+++ b/testing/piper-tts/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: leso-kn <info@lesosoftware.com>
+pkgname=piper-tts
+_pkgver=2023.11.14-2
+pkgver=${_pkgver/-/.}
+pkgrel=3
+pkgdesc="Fast, local neural text to speech system"
+url="https://github.com/rhasspy/piper"
+provides="larynx2=$pkgver-r$pkgrel"
+replaces=larynx2
+# x86, s390x: not supported by onnxruntime
+arch="all !x86 !s390x"
+license="MIT"
+depends_dev="
+ espeak-ng-dev
+ onnxruntime-dev
+ piper-phonemize-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ pcaudiolib-dev
+ samurai
+ spdlog-dev
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rhasspy/piper/archive/refs/tags/$_pkgver.tar.gz
+ no-rpath.patch
+ use-system-libs.patch
+ "
+builddir="$srcdir"/piper-$_pkgver
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ install -Dm755 build/piper \
+ -t "$pkgdir"/usr/bin/
+
+ mkdir -p "$pkgdir"/usr/include/piper
+ cp -a src/cpp/*.h src/cpp/*.hpp src/cpp/utf8/ "$pkgdir"/usr/include/piper/
+}
+
+sha512sums="
+2156c8d384aafc977a41eea181855b5e3fddab1eca353528d919d421958e4c10dbcf6526d03433e4246ac847a2fe4a7c43a57d2cb5666993ad0f28ed9fb68fe6 piper-tts-2023.11.14.2.tar.gz
+60c3233dd281c7a73077bca2c191c095ac7447cda34018c085fb08f5866d785d13bf5099a25d3803fa78215c2e3e73b6671349a0446286a6ec808335dcaa8808 no-rpath.patch
+7d0a2df1139edea6c46d49b7440b5be76c52a1b46835c7647fcc0a400351829dc0a6e77cf9c3f77aaeea6e4ec616317e707b2ab2e94c7b9de9533d147a8155d9 use-system-libs.patch
+"
diff --git a/testing/piper-tts/no-rpath.patch b/testing/piper-tts/no-rpath.patch
new file mode 100644
index 00000000000..5f8d093ea2f
--- /dev/null
+++ b/testing/piper-tts/no-rpath.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f96ec44..df05cc2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,7 +13,7 @@ if(MSVC)
+ add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
+ elseif(NOT APPLE)
+ # Linux flags
+- string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra -Wl,-rpath,'$ORIGIN'")
++ string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra")
+ string(APPEND CMAKE_C_FLAGS " -Wall -Wextra")
+ endif()
diff --git a/testing/piper-tts/use-system-libs.patch b/testing/piper-tts/use-system-libs.patch
new file mode 100644
index 00000000000..44e180d2c8a
--- /dev/null
+++ b/testing/piper-tts/use-system-libs.patch
@@ -0,0 +1,130 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f96ec44..05a8a6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -25,7 +25,7 @@ add_executable(test_piper src/cpp/test.cpp src/cpp/piper.cpp)
+
+ # ---- fmt ---
+
+-if(NOT DEFINED FMT_DIR)
++if(FALSE)
+ set(FMT_VERSION "10.0.0")
+ set(FMT_DIR "${CMAKE_CURRENT_BINARY_DIR}/fi")
+
+@@ -43,7 +43,7 @@ endif()
+
+ # ---- spdlog ---
+
+-if(NOT DEFINED SPDLOG_DIR)
++if(FALSE)
+ set(SPDLOG_DIR "${CMAKE_CURRENT_BINARY_DIR}/si")
+ set(SPDLOG_VERSION "1.12.0")
+ ExternalProject_Add(
+@@ -58,7 +58,13 @@ endif()
+
+ # ---- piper-phonemize ---
+
+-if(NOT DEFINED PIPER_PHONEMIZE_DIR)
++find_package(PkgConfig)
++pkg_check_modules(FMT REQUIRED fmt)
++pkg_check_modules(ONNXRUNTIME REQUIRED libonnxruntime)
++pkg_check_modules(PIPER_PHONEMIZE REQUIRED piper_phonemize)
++pkg_check_modules(SPDLOG REQUIRED spdlog)
++
++if(FALSE)
+ set(PIPER_PHONEMIZE_DIR "${CMAKE_CURRENT_BINARY_DIR}/pi")
+ ExternalProject_Add(
+ piper_phonemize_external
+@@ -74,9 +80,8 @@ endif()
+
+ if((NOT MSVC) AND (NOT APPLE))
+ # Linux flags
+- string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra -Wl,-rpath,'$ORIGIN'")
++ string(APPEND CMAKE_CXX_FLAGS " -Wall -Wextra")
+ string(APPEND CMAKE_C_FLAGS " -Wall -Wextra")
+- target_link_libraries(piper -static-libgcc -static-libstdc++)
+
+ set(PIPER_EXTRA_LIBRARIES "pthread")
+ endif()
+@@ -91,18 +96,18 @@ target_link_libraries(piper
+ )
+
+ target_link_directories(piper PUBLIC
+- ${FMT_DIR}/lib
+- ${SPDLOG_DIR}/lib
+- ${PIPER_PHONEMIZE_DIR}/lib
++ ${FMT_LIBRARY_DIRS}
++ ${SPDLOG_LIBRARY_DIRS}
++ ${ONNXRUNTIME_LIBRARY_DIRS}
+ )
+
+ target_include_directories(piper PUBLIC
+- ${FMT_DIR}/include
+- ${SPDLOG_DIR}/include
+- ${PIPER_PHONEMIZE_DIR}/include
++ ${FMT_INCLUDE_DIRS}
++ ${SPDLOG_INCLUDE_DIRS}
++ ${ONNXRUNTIME_INCLUDE_DIRS}
+ )
+
+-target_compile_definitions(piper PUBLIC _PIPER_VERSION=${piper_version})
++target_compile_definitions(piper PUBLIC _PIPER_VERSION="${piper_version}")
+
+ # ---- Declare test ----
+ include(CTest)
+@@ -116,16 +121,16 @@ target_compile_features(test_piper PUBLIC cxx_std_17)
+
+ target_include_directories(
+ test_piper PUBLIC
+- ${FMT_DIR}/include
+- ${SPDLOG_DIR}/include
+- ${PIPER_PHONEMIZE_DIR}/include
++ ${FMT_INCLUDE_DIRS}
++ ${SPDLOG_INCLUDE_DIRS}
++ ${ONNXRUNTIME_INCLUDE_DIRS}
+ )
+
+ target_link_directories(
+ test_piper PUBLIC
+- ${FMT_DIR}/lib
+- ${SPDLOG_DIR}/lib
+- ${PIPER_PHONEMIZE_DIR}/lib
++ ${FMT_LIBRARY_DIRS}
++ ${SPDLOG_LIBRARY_DIRS}
++ ${ONNXRUNTIME_LIBRARY_DIRS}
+ )
+
+ target_link_libraries(test_piper PUBLIC
+@@ -141,32 +146,3 @@ target_link_libraries(test_piper PUBLIC
+ install(
+ TARGETS piper
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
+-
+-# Dependencies
+-install(
+- DIRECTORY ${PIPER_PHONEMIZE_DIR}/bin/
+- DESTINATION ${CMAKE_INSTALL_PREFIX}
+- USE_SOURCE_PERMISSIONS # keep +x
+- FILES_MATCHING
+- PATTERN "piper_phonemize"
+- PATTERN "espeak-ng"
+- PATTERN "*.dll"
+-)
+-
+-install(
+- DIRECTORY ${PIPER_PHONEMIZE_DIR}/lib/
+- DESTINATION ${CMAKE_INSTALL_PREFIX}
+- FILES_MATCHING
+- PATTERN "*.dll"
+- PATTERN "*.so*"
+-)
+-
+-install(
+- DIRECTORY ${PIPER_PHONEMIZE_DIR}/share/espeak-ng-data
+- DESTINATION ${CMAKE_INSTALL_PREFIX}
+-)
+-
+-install(
+- FILES ${PIPER_PHONEMIZE_DIR}/share/libtashkeel_model.ort
+- DESTINATION ${CMAKE_INSTALL_PREFIX}
+-)
diff --git a/testing/pipexec/APKBUILD b/testing/pipexec/APKBUILD
deleted file mode 100644
index 85c38c773bb..00000000000
--- a/testing/pipexec/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=pipexec
-pkgver=2.5.5
-pkgrel=2
-pkgdesc="Handling pipe of commands like a single command"
-url="https://github.com/flonatel/pipexec"
-arch="all"
-license="GPL-2.0"
-subpackages="$pkgname-doc"
-source="https://github.com/flonatel/pipexec/releases/download/$pkgver/$pkgname-$pkgver.tar.xz
- dont-require-bash.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
-
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --mandir=/usr/share/man
- make
-}
-
-# Note: make check actually does not run any tests.
-check() {
- local out
-
- out=$("$builddir"/bin/pipexec -- \
- [A /bin/echo 'Hello, world!' ] [B /bin/grep -o world ] '{A:1>B:0}')
- [ "$out" = world ]
-}
-
-package() {
- cd "$builddir"
-
- make DESTDIR="$pkgdir" install
-
- rm "$pkgdir"/usr/bin/ptest
-
- mkdir -p "$pkgdir"/usr/share/man/man1
- cp doc/man/*.1 "$pkgdir"/usr/share/man/man1/
-}
-
-sha512sums="5f33f42ffec1e16090491895fb7403de6c0fcdf99e0fef7a49db19684b261a355ab0e0364891d1dfdaf47ff32671f2725d5e236df29e3f3feb5484cd8ffca0ca pipexec-2.5.5.tar.xz
-9838e8c45f6ded0e3207be4f225e751cec892ff110e8d18daaae514ea88b0f7a96381b31d425c1178c78f87ee86da4ddf18483fccd5308b9d7daa85c287df3ea dont-require-bash.patch"
diff --git a/testing/pipexec/dont-require-bash.patch b/testing/pipexec/dont-require-bash.patch
deleted file mode 100644
index ce8eb8f773d..00000000000
--- a/testing/pipexec/dont-require-bash.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5aa236515f385befc3062b61d098082ab43e6f5a Mon Sep 17 00:00:00 2001
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Fri, 1 Dec 2017 01:50:44 +0100
-Subject: [PATCH] Replace /bin/bash with /bin/sh
-
-1. Not every system provides bash by default.
-2. Many systems don't install bash into /bin (but /usr/bin,
- /usr/local/bin, ...)
-3. Your shell scripts are already POSIX-sh compatible, so it's not
- needed to require one particular shell implementation.
-
-Upstream-Issue: https://github.com/flonatel/pipexec/pull/14
-
-diff --git a/build/create_tar.sh b/build/create_tar.sh
-index 7bf286f..4223014 100644
---- a/build/create_tar.sh
-+++ b/build/create_tar.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # Create release tarball
- #
-diff --git a/build/init_autotools.sh b/build/init_autotools.sh
-index 1ad160d..3a42399 100755
---- a/build/init_autotools.sh
-+++ b/build/init_autotools.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # This must be called from within the top source dir.
- #
-diff --git a/src/Makefile.inc b/src/Makefile.inc
-index 7792bd7..bc3614d 100644
---- a/src/Makefile.inc
-+++ b/src/Makefile.inc
-@@ -2,7 +2,7 @@
- if !USE_VERSION_FILE
- .FORCE: src/app_version.c
- src/app_version.c:
-- bash $(top_srcdir)/build/version-gen.sh ${top_srcdir}
-+ /bin/sh $(top_srcdir)/build/version-gen.sh ${top_srcdir}
- endif
-
- # pipexec itself
-diff --git a/version.sh b/version.sh
-index 9f5ae2a..1150c91 100755
---- a/version.sh
-+++ b/version.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- set -e
-
- TOPSRCDIR=""
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -1354,7 +1354,7 @@
-
- @USE_VERSION_FILE_FALSE@.FORCE: src/app_version.c
- @USE_VERSION_FILE_FALSE@src/app_version.c:
--@USE_VERSION_FILE_FALSE@ bash $(top_srcdir)/build/version-gen.sh ${top_srcdir}
-+@USE_VERSION_FILE_FALSE@ /bin/sh $(top_srcdir)/build/version-gen.sh ${top_srcdir}
-
- # Local Variables:
- # mode: makefile
diff --git a/testing/piping-server/APKBUILD b/testing/piping-server/APKBUILD
new file mode 100644
index 00000000000..d91533c5800
--- /dev/null
+++ b/testing/piping-server/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=piping-server
+pkgver=0.17.0
+pkgrel=0
+pkgdesc="Infinitely transfer data between devices over HTTP"
+url="https://github.com/nwtgck/piping-server-rust"
+license="MIT"
+arch="all !s390x !riscv64" # limited by cargo
+arch="$arch !ppc64le" # FTBFS
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-openrc"
+source="https://github.com/nwtgck/piping-server-rust/archive/v$pkgver/piping-server-rust-$pkgver.tar.gz
+ piping-server.initd
+ "
+builddir="$srcdir/piping-server-rust-$pkgver"
+options="net" # fetch dependencies
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ install -Dm755 target/release/piping-server "$pkgdir"/usr/bin/piping-server
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+c68a7e14a6eaadeaec3f72864a0cd1d605b7e65d09ee2f17bd424d955028a6cc616085da04fef0766ddc4a383d0c74b50267c9f967b6a02038ca9726862eff51 piping-server-rust-0.17.0.tar.gz
+88fe822b7d98f9d1d63a24e30c11a39504641b664bd26eb5ff3a834ad343bbc46140762dfcc63131d1dc6938c9e4d82131ebc7249283ac3f288cc8aebd6dbe4c piping-server.initd
+"
diff --git a/testing/piping-server/piping-server.initd b/testing/piping-server/piping-server.initd
new file mode 100644
index 00000000000..ba07f8d0499
--- /dev/null
+++ b/testing/piping-server/piping-server.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="Piping Server"
+description="Infinitely transfer data between devices over HTTP"
+
+command="/usr/bin/piping-server"
+command_user="nobody:nobody"
+directory="/var/empty"
+
+: ${error_log:="/var/log/piping-server.log"}
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -f -o $command_user "$error_log"
+}
diff --git a/testing/pithos/APKBUILD b/testing/pithos/APKBUILD
new file mode 100644
index 00000000000..bd9615b2527
--- /dev/null
+++ b/testing/pithos/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Adam Plumb <adamplumb@gmail.com>
+# Maintainer: Adam Plumb <adamplumb@gmail.com>
+pkgname=pithos
+pkgver=1.6.1
+pkgrel=0
+pkgdesc="GTK+ player for pandora web radio"
+url="https://pithos.github.io/"
+arch="noarch"
+license="GPL-3.0-only"
+depends="
+ gst-libav
+ gst-plugins-base
+ gst-plugins-good
+ gtk+3.0
+ libsecret
+ python3
+ py3-cairo
+ py3-gobject3
+ "
+makedepends="meson glib-dev help2man py3-sphinx"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://github.com/pithos/pithos/releases/download/$pkgver/pithos-$pkgver.tar.xz
+ no-optimise.patch
+ "
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install -C output
+}
+
+pyc() {
+ pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
+ install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"
+
+ cd "$pkgdir" || return 0
+ local IFS=$'\n'
+ amove $(find usr/share* -type d -name __pycache__)
+}
+
+sha512sums="
+e1a13d2c789e40bf135ed551d06dfe44bf948bfe84a8bbb3f4afcab70bbcdc4f1d3f82d25f5e8d930888dd6fa04795fa2d9d47515d4199647be854c9c4a84591 pithos-1.6.1.tar.xz
+d80de0beb0e856d5020f7d4a275abb00404bbd5875f1639a324a8f21f58208594a0962b73e7b0bda765ef74649db5e10e8a2a02e57f18d7d55212be51655c436 no-optimise.patch
+"
diff --git a/testing/pithos/no-optimise.patch b/testing/pithos/no-optimise.patch
new file mode 100644
index 00000000000..7a6c54bd837
--- /dev/null
+++ b/testing/pithos/no-optimise.patch
@@ -0,0 +1,10 @@
+diff --git a/meson_post_install.py b/meson_post_install.py
+index 17b4f2a..caf1c33 100644
+--- a/meson_post_install.py
++++ b/meson_post_install.py
+@@ -18,4 +18,4 @@ if not destdir:
+ call(['glib-compile-schemas', path.join(datadir, 'glib-2.0', 'schemas')])
+
+ print('Compiling python bytecode...')
+-compile_dir(destdir + path.join(datadir, 'pithos', 'pithos'), optimize=2)
++compile_dir(destdir + path.join(datadir, 'pithos', 'pithos'))
diff --git a/testing/pitivi/APKBUILD b/testing/pitivi/APKBUILD
new file mode 100644
index 00000000000..3b8410de127
--- /dev/null
+++ b/testing/pitivi/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Pellegrino Prevete <pellegrinoprevete@gmail.com>
+pkgname=pitivi
+pkgver=2023.03
+pkgrel=1
+pkgdesc="Editor for audio/video projects using the GStreamer framework"
+url="https://pitivi.org"
+arch="all !s390x !riscv64" # missing gst-editing-services
+license="LGPL-2.1-or-later"
+depends="
+ gsound
+ gst-editing-services
+ gst-libav
+ gst-plugins-bad
+ gst-plugins-good
+ gst-plugins-good-gtk
+ gtk+3.0
+ libnotify
+ libpeas
+ py3-cairo
+ py3-gobject3
+ py3-gst
+ py3-matplotlib
+ py3-numpy
+ "
+makedepends="
+ gstreamer-dev
+ itstool
+ meson
+ py3-cairo-dev
+ python3-dev
+ "
+checkdepends="appstream-glib"
+subpackages="$pkgname-lang $pkgname-pyc"
+source="https://download.gnome.org/sources/pitivi/${pkgver%.*}/pitivi-$pkgver.tar.xz"
+
+build() {
+ abuild-meson . build
+ meson compile -C build
+}
+
+check() {
+ meson test -C build --print-errorlogs
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install -C build
+}
+
+pyc() {
+ pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
+ install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"
+
+ cd "$pkgdir" || return 0
+ local IFS='
+'
+ amove $(find usr/lib -type d -name __pycache__)
+}
+
+sha512sums="
+505c011bb375fcce250a46c958ef06d050f83e73fa41a66f8ba3be6a41332a4a05838b8245233f481146edae9af924b618901b7ed0600f642ebe550c151f52b0 pitivi-2023.03.tar.xz
+"
diff --git a/testing/pixi/APKBUILD b/testing/pixi/APKBUILD
new file mode 100644
index 00000000000..5e402363cfc
--- /dev/null
+++ b/testing/pixi/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=pixi
+pkgver=0.20.0
+pkgrel=0
+pkgdesc="A package management and workflow tool"
+url="https://github.com/prefix-dev/pixi"
+# !s390x: nix crate fails to build
+# !armhf: openssl fails to build
+arch="all !s390x !armhf"
+license="BSD-3-Clause"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ perl
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+# https://github.com/prefix-dev/pixi/issues/821
+options="net !check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/prefix-dev/pixi/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+ mkdir -p completions/
+}
+
+build() {
+ cargo auditable build --frozen --release
+ local _completion="target/release/$pkgname completion"
+ $_completion --shell bash > "completions/$pkgname"
+ $_completion --shell fish > "completions/$pkgname.fish"
+ $_completion --shell zsh > "completions/_$pkgname"
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+ install -Dm 664 "completions/$pkgname" -t "$pkgdir/usr/share/bash-completion/completions/"
+ install -Dm 664 "completions/$pkgname.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d/"
+ install -Dm 664 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions/"
+}
+
+sha512sums="
+826d75b87e415b8a968d71c7b7f7d32854f7f13fb799ef82ea1c029367eff127722ffcd52696e9dc286554b606810cb6303c46cedd617b80063979eb64c1c377 pixi-0.20.0.tar.gz
+"
diff --git a/testing/pixiewps/APKBUILD b/testing/pixiewps/APKBUILD
index e0158ebc634..9e88cdbbb91 100644
--- a/testing/pixiewps/APKBUILD
+++ b/testing/pixiewps/APKBUILD
@@ -2,15 +2,15 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=pixiewps
pkgver=1.4.2
-pkgrel=0
+pkgrel=1
pkgdesc="An offline WPS bruteforce utility"
-url="https://github.com/wiire/pixiewps"
+url="https://github.com/wiire-a/pixiewps"
arch="all"
# upstream does not provide check
options="!check"
license="GPL-3.0"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/wiire/$pkgname/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/wiire-a/pixiewps/archive/v$pkgver.tar.gz
make-bindir.patch"
builddir="$srcdir/$pkgname-$pkgver"
diff --git a/testing/pixz/0001-use-posix-shell-for-tests.patch b/testing/pixz/0001-use-posix-shell-for-tests.patch
deleted file mode 100644
index bdeefab273f..00000000000
--- a/testing/pixz/0001-use-posix-shell-for-tests.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From e33f9a54541915639b1a777ae0aa742b0105ed52 Mon Sep 17 00:00:00 2001
-From: Carlo Landmeter <clandmeter@alpinelinux.org>
-Date: Mon, 19 Feb 2018 18:47:49 +0000
-Subject: [PATCH] use posix shell for tests
-
----
- test/Makefile.am | 2 +-
- test/compress-file-permissions.sh | 4 ++--
- test/cppcheck-src.sh | 2 +-
- test/single-file-round-trip.sh | 4 ++--
- test/xz-compatibility-c-option.sh | 6 +++---
- 5 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/test/Makefile.am b/test/Makefile.am
-index 6aebb6f..3ed2f87 100644
---- a/test/Makefile.am
-+++ b/test/Makefile.am
-@@ -7,4 +7,4 @@ TESTS = \
- EXTRA_DIST = $(TESTS)
-
- TEST_EXTENSIONS = .sh
--SH_LOG_COMPILER = bash
-+SH_LOG_COMPILER = sh
-diff --git a/test/compress-file-permissions.sh b/test/compress-file-permissions.sh
-index 28572c2..6218d90 100755
---- a/test/compress-file-permissions.sh
-+++ b/test/compress-file-permissions.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- PIXZ=../src/pixz
-
-@@ -10,4 +10,4 @@ echo foo > $INPUT
-
- $PIXZ $INPUT
-
--[[ $(stat -c "%a" $INPUT.xz) = 600 ]]
-+[ "$(stat -c "%a" $INPUT.xz)" = 600 ]
-diff --git a/test/cppcheck-src.sh b/test/cppcheck-src.sh
-index 5c77b15..1b5954c 100755
---- a/test/cppcheck-src.sh
-+++ b/test/cppcheck-src.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- if which cppcheck &> /dev/null ; then
- cppcheck --error-exitcode=1 $srcdir/../src
-diff --git a/test/single-file-round-trip.sh b/test/single-file-round-trip.sh
-index 5784138..c9bfa9a 100755
---- a/test/single-file-round-trip.sh
-+++ b/test/single-file-round-trip.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- PIXZ=../src/pixz
-
-@@ -11,4 +11,4 @@ trap "rm -f $COMPRESSED $UNCOMPRESSED" EXIT
- $PIXZ $INPUT $COMPRESSED
- $PIXZ -d $COMPRESSED $UNCOMPRESSED
-
--[[ $(cat $INPUT | md5sum) = $(cat $UNCOMPRESSED | md5sum) ]] || exit 1
-+[ "$(cat $INPUT | md5sum)" = "$(cat $UNCOMPRESSED | md5sum)" ] || exit 1
-diff --git a/test/xz-compatibility-c-option.sh b/test/xz-compatibility-c-option.sh
-index 327d7f6..64556d2 100755
---- a/test/xz-compatibility-c-option.sh
-+++ b/test/xz-compatibility-c-option.sh
-@@ -1,6 +1,6 @@
--#!/bin/bash
-+#!/bin/sh
-
- PIXZ=../src/pixz
-
--[[ "foo" = $(echo foo | xz | xz -dc) ]] || exit 1
--[[ "bar" = $(echo bar | $PIXZ | $PIXZ -dc) ]] || exit 1
-+[ "foo" = "$(echo foo | xz | xz -dc)" ] || exit 1
-+[ "bar" = "$(echo bar | $PIXZ | $PIXZ -dc)" ] || exit 1
---
-2.16.1
-
diff --git a/testing/pixz/APKBUILD b/testing/pixz/APKBUILD
deleted file mode 100644
index fad4bf35654..00000000000
--- a/testing/pixz/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=pixz
-pkgver=1.0.6
-pkgrel=0
-pkgdesc="Parallel, indexed xz compressor"
-url="https://github.com/vasi/pixz"
-arch="all"
-license="BSD-2-Clause"
-depends=""
-checkdepends="xz"
-makedepends="libarchive-dev xz-dev
- automake autoconf libtool
- "
-install=""
-subpackages="$pkgname-doc"
-source="https://github.com/vasi/pixz/releases/download/v$pkgver/pixz-$pkgver.tar.xz
- 0001-use-posix-shell-for-tests.patch
- endian.patch
- "
-builddir="$srcdir/pixz-$pkgver"
-
-build() {
- cd "$builddir"
- autoreconf -vif
- ./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
-}
-
-sha512sums="361a8d8b736c350e4e3fd19b5d36777129a087eb81439d05edc08f9378938583bef8fc70e440ffd22efb6dad1f6494c6c3e532d7dd1ab12c9350b6078aa993d7 pixz-1.0.6.tar.xz
-f9333adaefb8f6bae4bc1841185f6289b362895c46702e213392aae4954ec2fe81d169a21fcd5eec2d0f96d243ec4add1f8ae89dc6480f603231c954da47d4ed 0001-use-posix-shell-for-tests.patch
-8fc05d70837b3377ca09e0e1fc91d3a0998e49c710544e9ff0d04139a5400bb3d540375c02ebee849341981b23832a382cda85248e33d9cca9c99289c03cfa45 endian.patch"
diff --git a/testing/pixz/endian.patch b/testing/pixz/endian.patch
deleted file mode 100644
index bdc2c58c269..00000000000
--- a/testing/pixz/endian.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- pixz-1.0.6.orig/src/endian.c
-+++ pixz-1.0.6/src/endian.c
-@@ -19,19 +19,19 @@
- #include <sys/endian.h>
- #endif
-
--#if !HAVE_DECL_HTOLE64
-+#if !HAVE_DECL_HTOLE64 && !defined(htole64)
- # if __BYTE_ORDER == __LITTLE_ENDIAN
- # define htole64(x) (x)
- # else
--# define htole64(x) __bswap_64 (x)
-+# define htole64(x) __bswap64 (x)
- # endif
- #endif
-
--#if !HAVE_DECL_LE64TOH
-+#if !HAVE_DECL_LE64TOH && !defined(le64toh)
- # if __BYTE_ORDER == __LITTLE_ENDIAN
- # define le64toh(x) (x)
- # else
--# define le64toh(x) __bswap_64 (x)
-+# define le64toh(x) __bswap64 (x)
- # endif
- #endif
-
diff --git a/testing/planarity/APKBUILD b/testing/planarity/APKBUILD
new file mode 100644
index 00000000000..17d045cb811
--- /dev/null
+++ b/testing/planarity/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=planarity
+pkgver=3.0.2.0
+pkgrel=2
+pkgdesc="Library for the edge addition planar graph embedding algorithm and related algorithms"
+url="https://github.com/graph-algorithms/edge-addition-planarity-suite"
+arch="all"
+license="BSD-3-Clause"
+makedepends="autoconf automake libtool"
+source="https://github.com/graph-algorithms/edge-addition-planarity-suite/archive/Version_$pkgver/planarity-$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+builddir="$srcdir/edge-addition-planarity-suite-Version_$pkgver"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+26d003196b5300d49b126fe159f4ed219ee3cb3396ad939ceacaa53bcfa5049ea891f3e7f323e810fe43a20aeaa68fefbe43828e9e75b10792f4cf8bbf9594f3 planarity-3.0.2.0.tar.gz
+"
diff --git a/testing/planner/APKBUILD b/testing/planner/APKBUILD
new file mode 100644
index 00000000000..fd28b432bfc
--- /dev/null
+++ b/testing/planner/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=planner
+pkgver=0.14.92
+pkgrel=0
+pkgdesc="Project management application"
+url="https://wiki.gnome.org/Apps/Planner"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="meson cmake glib-dev gtk+3.0-dev libxslt-dev"
+subpackages="$pkgname-lang $pkgname-doc"
+source="https://download.gnome.org/sources/planner/${pkgver%.*}/planner-$pkgver.tar.xz"
+
+build() {
+ abuild-meson -Db_lto=true . build
+ meson compile -C build
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+35f0ea6bb04937c164c42082db717962eba6e0353a4750d3213cb7a0e93b8649c99c52060c95c4c6037b6c7019f90161b3c531d5e75eabe453d0fad50c887f27 planner-0.14.92.tar.xz
+"
diff --git a/testing/plasma-mycroft/APKBUILD b/testing/plasma-mycroft/APKBUILD
deleted file mode 100644
index d6a8c90605e..00000000000
--- a/testing/plasma-mycroft/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Bart Ribberse <bribbers@disroot.org>
-# Maintainer: Bart Ribberse <bribbers@disroot.org>
-pkgname=plasma-mycroft
-pkgver=0_git20200427
-pkgrel=1
-_commit="2b7646a18144615a84ab87c4504b3a979d4570d1"
-pkgdesc="Plasma integration of different Mycroft AI services"
-url="https://github.com/kde/plasma-mycroft"
-# ppc64le, s390x, armhf, mips and mips64 blocked by mycroft-gui
-arch="all !ppc64le !s390x !armhf !mips !mips64"
-license="Apache-2.0 AND LGPL-2.0-or-later AND LicenseRef-KDE-Accepted-GPL"
-depends="mycroft-gui mycroft-skill-mark2"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtwebsockets-dev plasma-framework-dev ki18n-dev knotifications-dev"
-source="https://github.com/KDE/plasma-mycroft/archive/$_commit/plasma-mycroft-$_commit.tar.gz"
-builddir="$srcdir/plasma-mycroft-$_commit"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- cmake --build build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-
- # Conflicts with mycroft-core and is unnecessary
- rm "$pkgdir"/etc/mycroft/mycroft.conf
-}
-
-sha512sums="2abc327e3a1d70076a05c3c2943e00a2c460947e7065bfa7f0a58e4450cc6eb68f413381114858582528a2ea8d96a831b1ddfeef46130d148de3d0c29978eb56 plasma-mycroft-2b7646a18144615a84ab87c4504b3a979d4570d1.tar.gz"
diff --git a/testing/platformio-core/APKBUILD b/testing/platformio-core/APKBUILD
index 070cfb84551..6df80f2f11a 100644
--- a/testing/platformio-core/APKBUILD
+++ b/testing/platformio-core/APKBUILD
@@ -1,26 +1,43 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
+# Contributor: Marten Ringwelski <git+alpine@maringuu.de>
+# Maintainer: Marten Ringwelski <git+alpine@maringuu.de>
pkgname=platformio-core
-pkgver=4.0.0
-pkgrel=2
+pkgver=6.1.7
+pkgrel=1
pkgdesc="An open source ecosystem for IoT development"
url="https://platformio.org"
-arch="noarch"
+arch="noarch !armhf !ppc64le" # limited by py3-starlette
license="Apache-2.0"
-depends="py3-bottle py3-click py3-colorama py3-lockfile py3-requests
- py3-semantic-version py3-serial"
+depends="
+ py3-aiofiles
+ py3-ajsonrpc
+ py3-bottle
+ py3-click
+ py3-colorama
+ py3-marshmallow
+ py3-elftools
+ py3-pyserial
+ py3-requests
+ py3-semantic-version
+ py3-starlette
+ py3-tabulate
+ py3-wsproto
+ py3-zeroconf
+ uvicorn
+ "
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/platformio/platformio-core/archive/v$pkgver.tar.gz"
build() {
python3 setup.py build
cd "$builddir"/scripts
- 2to3 -w *.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="e483850e7e1bd73522931da17b934116f44e730868ff424faa7bbb3b7853d0435ebb3fa3e6f8eab2bd57ada1d05140302b827b4724fe7981025cdc7660baff4c platformio-core-4.0.0.tar.gz"
+sha512sums="
+de38560e3bafc0ce97836a722122800e9cd31a4c8b6e97cfc9d490ee4d6c5112f87a45d81ec9b191eb4f678c330de4a797be5e176564f6e36fcb9432b47f52d8 platformio-core-6.1.7.tar.gz
+"
diff --git a/testing/please-build/APKBUILD b/testing/please-build/APKBUILD
new file mode 100644
index 00000000000..f5b57742917
--- /dev/null
+++ b/testing/please-build/APKBUILD
@@ -0,0 +1,80 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=please-build
+pkgver=17.8.0
+pkgrel=2
+pkgdesc="High-performance, extensible build system for reproducible multi-language builds"
+url="https://please.build/"
+# The only architectures supported upstream
+arch="x86_64 aarch64"
+license="Apache-2.0"
+makedepends="go bash"
+subpackages="
+ $pkgname-tools
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/thought-machine/please/archive/refs/tags/v$pkgver.tar.gz
+ fix-test.patch
+ go-1.22.patch
+ "
+builddir="$srcdir/please-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _buildargs="--plain_output --noupdate --profile=alpine"
+ go run src/please.go build $_buildargs //src:please
+
+ ./plz-out/bin/src/please build $_buildargs \
+ //tools/sandbox:please_sandbox \
+ //tools/please_shim:please_shim \
+ //tools/build_langserver:build_langserver
+
+ ./plz-out/bin/src/please --completion_script > plz.bash
+}
+
+check() {
+ # The test has an input only for x86_64 target.
+ rm -r test/config_rules
+
+ # python3: vendored 'please_pex' binary doesn't run on musl.
+ # Also, it can't be built from source due to dependency cycling.
+ # clang:
+ # - 16: hardcode -fmodules-ts in cc-rules plugin
+ # - 15: undefined reference to 'initializer for module q1'
+ ./plz-out/bin/src/please test \
+ --plain_output --noupdate --profile=alpine \
+ --exclude=python3 --exclude=clang --exclude=e2e
+}
+
+package() {
+ install -Dm755 plz-out/bin/src/please "$pkgdir"/usr/bin/plz
+
+ install -Dm755 -t "$pkgdir"/usr/bin/ \
+ plz-out/bin/tools/build_langserver/build_langserver \
+ plz-out/bin/tools/sandbox/please_sandbox \
+ plz-out/bin/tools/please_shim/please_shim
+
+ install -Dm644 plz.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/plz
+ install -Dm644 plz.bash \
+ "$pkgdir"/usr/share/zsh/site-functions/_plz
+}
+
+tools() {
+ pkgdesc="External utilities for Please build system"
+
+ amove \
+ usr/bin/build_langserver \
+ usr/bin/please_sandbox \
+ usr/bin/please_shim
+}
+
+sha512sums="
+862b9791989e6dc742b3dcab12a70a596ae149802206bdc44e0845fb41ba6655a89b2019e966082373e06b31cf5ab83f2f39935e2e2edd4fb7c87f1e3e2914ff please-build-17.8.0.tar.gz
+e628c001a45daacfa19eacb99b79b51bc2d8ba4957a1fa56da6d524c553bfef9422fe54c0551403b675c761367627312579cafdaf0944c7122d3b2ba9edc3719 fix-test.patch
+9610694cd38a93b01e9fbb2b1dde3af300bef02f47f38dbd74bd6f25b98c92019bc2c9b6d78248a4d2a4e748c6ebf592d8340f3974b7d9916a615aa8c78eb7cf go-1.22.patch
+"
diff --git a/testing/please-build/fix-test.patch b/testing/please-build/fix-test.patch
new file mode 100644
index 00000000000..a563fcb925f
--- /dev/null
+++ b/testing/please-build/fix-test.patch
@@ -0,0 +1,38 @@
+* The Complete() function fails to re-execute the current please process, so the
+ 'completions' result is always empty.
+* Remove the hardcoded emulation mode elf_$XARCH
+
+diff --git a/src/core/build_label_test.go b/src/core/build_label_test.go
+index 8ee242f..819f904 100644
+--- a/src/core/build_label_test.go
++++ b/src/core/build_label_test.go
+@@ -92,16 +92,6 @@ func TestLooksLikeABuildLabel(t *testing.T) {
+ assert.True(t, LooksLikeABuildLabel("///test_x86"))
+ }
+
+-func TestComplete(t *testing.T) {
+- label := BuildLabel{}
+- completions := label.Complete("//src/c")
+- assert.Equal(t, 4, len(completions))
+- assert.Equal(t, "//src/cache", completions[0].Item)
+- assert.Equal(t, "//src/clean", completions[1].Item)
+- assert.Equal(t, "//src/cli", completions[2].Item)
+- assert.Equal(t, "//src/core", completions[3].Item)
+-}
+-
+ func TestCompleteError(t *testing.T) {
+ label := BuildLabel{}
+ completions := label.Complete("nope")
+diff --git a/test/build_defs/cc_embed_binary.build_defs b/test/build_defs/cc_embed_binary.build_defs
+index d17aac9..cc8a4fc 100644
+--- a/test/build_defs/cc_embed_binary.build_defs
++++ b/test/build_defs/cc_embed_binary.build_defs
+@@ -64,7 +64,7 @@ def cc_embed_binary(name:str, src:str, deps:list=[], visibility:list=None,
+ ])
+ tools['asm'] = [CONFIG.ASM_TOOL]
+ else:
+- cmd = '$TOOLS_LD -r --format binary -z noexecstack -m elf_$XARCH %s -o "${OUTS/.a/.o}" $SRC && $TOOLS_ARCAT ar --srcs "${OUTS/.a/.o}" && $TOOLS_AR s "$OUTS"' % CONFIG.DEFAULT_LDFLAGS
++ cmd = '$TOOLS_LD -r --format binary -z noexecstack %s -o "${OUTS/.a/.o}" $SRC && $TOOLS_ARCAT ar --srcs "${OUTS/.a/.o}" && $TOOLS_AR s "$OUTS"' % CONFIG.DEFAULT_LDFLAGS
+ tools['ld'] = [CONFIG.LD_TOOL]
+
+ lib_rule = build_rule(
diff --git a/testing/please-build/go-1.22.patch b/testing/please-build/go-1.22.patch
new file mode 100644
index 00000000000..396e3eb48a8
--- /dev/null
+++ b/testing/please-build/go-1.22.patch
@@ -0,0 +1,564 @@
+From 744bb45cb0af9476cd1477bfa2be8be46daa21ca Mon Sep 17 00:00:00 2001
+From: Peter Ebden <peter.ebden@gmail.com>
+Date: Mon, 12 Feb 2024 11:40:15 +0000
+Subject: [PATCH] Update to Go 1.22.0 (#3070)
+
+* Update images to Go 1.22
+
+* update toolchain
+
+* update go.mod
+
+* bump this for my sanity
+
+* update plugin
+
+* revert this
+
+* update image; the base used for the old one appears to incorrectly have been an x86 image (pretty sure this must be an upstream bug)
+
+* Update test repos too
+
+* update
+
+* migrate this bastard to go_repo
+
+* Use a tagged release
+
+* Update moar
+
+* Fine, disable this for now
+
+* fine i'll do the docs thing
+---
+ .circleci/config.yml | 14 +-
+ docs/BUILD | 2 +-
+ plugins/BUILD | 2 +-
+ test/plugins/test_repo/plugins/BUILD_FILE | 2 +-
+ test/plz_exec/test_repo/plugins/BUILD_FILE | 3 +-
+ test/proto_plugin/BUILD | 1 +
+ test/proto_plugin/test_repo/.plzconfig | 6 +-
+ .../proto_plugin/test_repo/plugins/BUILD_FILE | 4 +-
+ .../test_repo/third_party/go/BUILD_FILE | 181 ++----------------
+ third_party/go/BUILD | 16 +-
+ tools/images/alpine/Dockerfile | 2 +-
+ tools/images/ubuntu/Dockerfile | 2 +-
+ tools/images/ubuntu_alt/Dockerfile | 2 +-
+ 13 files changed, 47 insertions(+), 190 deletions(-)
+
+diff --git a/.circleci/config.yml b/.circleci/config.yml
+index b751280998..c928a6e121 100644
+--- a/.circleci/config.yml
++++ b/.circleci/config.yml
+@@ -3,7 +3,7 @@ jobs:
+ build-alpine:
+ working_directory: ~/please
+ docker:
+- - image: thoughtmachine/please_alpine:20240111
++ - image: thoughtmachine/please_alpine:20240209
+ resource_class: large
+ environment:
+ PLZ_ARGS: "-p --profile ci --profile alpine --exclude no-musl"
+@@ -43,7 +43,7 @@ jobs:
+ build-linux:
+ working_directory: ~/please
+ docker:
+- - image: thoughtmachine/please_ubuntu:20240103
++ - image: thoughtmachine/please_ubuntu:20240207
+ resource_class: large
+ environment:
+ PLZ_ARGS: "-p --profile ci"
+@@ -91,7 +91,7 @@ jobs:
+ build-linux-alt:
+ working_directory: ~/please
+ docker:
+- - image: thoughtmachine/please_ubuntu_alt:20240103
++ - image: thoughtmachine/please_ubuntu_alt:20240207
+ resource_class: large
+ environment:
+ PLZ_ARGS: "-p -c cover --profile ci-alt"
+@@ -176,7 +176,7 @@ jobs:
+ build-linux-arm64:
+ working_directory: ~/please
+ docker:
+- - image: thoughtmachine/please_ubuntu:20240103
++ - image: thoughtmachine/please_ubuntu:20240207
+ resource_class: large
+ steps:
+ - checkout
+@@ -245,7 +245,7 @@ jobs:
+ test-rex:
+ working_directory: ~/please
+ docker:
+- - image: thoughtmachine/please_ubuntu:20240103
++ - image: thoughtmachine/please_ubuntu:20240207
+ resource_class: xlarge
+ steps:
+ - checkout
+@@ -262,7 +262,7 @@ jobs:
+ test-http-cache:
+ working_directory: ~/please
+ docker:
+- - image: thoughtmachine/please_ubuntu:20240103
++ - image: thoughtmachine/please_ubuntu:20240207
+ resource_class: large
+ steps:
+ - checkout
+@@ -305,7 +305,7 @@ jobs:
+ # Runs a benchmarking test and records some performance results.
+ perf-test:
+ docker:
+- - image: thoughtmachine/please_ubuntu:20240103
++ - image: thoughtmachine/please_ubuntu:20240207
+ resource_class: xlarge # Want to run these tests with a significant amount of parallelism
+ steps:
+ - checkout
+diff --git a/docs/BUILD b/docs/BUILD
+index bcc3e12b92..2c15da331d 100644
+--- a/docs/BUILD
++++ b/docs/BUILD
+@@ -59,7 +59,7 @@ genrule(
+ plugins = {
+ "python": "v1.5.0",
+ "java": "v0.4.0",
+- "go": "v1.16.3",
++ "go": "v1.16.5",
+ "cc": "v0.4.0",
+ "shell": "v0.2.0",
+ "go-proto": "v0.3.0",
+diff --git a/plugins/BUILD b/plugins/BUILD
+index 13348ef2e0..a0338de522 100644
+--- a/plugins/BUILD
++++ b/plugins/BUILD
+@@ -1,7 +1,7 @@
+ plugin_repo(
+ name = "go",
+ plugin = "go-rules",
+- revision = "v1.16.3",
++ revision = "v1.16.5",
+ )
+
+ plugin_repo(
+diff --git a/test/plugins/test_repo/plugins/BUILD_FILE b/test/plugins/test_repo/plugins/BUILD_FILE
+index c4ceaa968f..f3f451a3ab 100644
+--- a/test/plugins/test_repo/plugins/BUILD_FILE
++++ b/test/plugins/test_repo/plugins/BUILD_FILE
+@@ -5,5 +5,5 @@ plugin_repo(
+
+ plugin_repo(
+ name = "go",
+- revision = "v1.2.1",
++ revision = "v1.16.5",
+ )
+\ No newline at end of file
+diff --git a/test/plz_exec/test_repo/plugins/BUILD_FILE b/test/plz_exec/test_repo/plugins/BUILD_FILE
+index 08f8bf9927..8b6aa87432 100644
+--- a/test/plz_exec/test_repo/plugins/BUILD_FILE
++++ b/test/plz_exec/test_repo/plugins/BUILD_FILE
+@@ -3,8 +3,7 @@ plugin_repo(
+ revision = "v0.1.1",
+ )
+
+-
+ plugin_repo(
+ name = "go",
+- revision = "v1.2.0",
++ revision = "v1.16.5",
+ )
+diff --git a/test/proto_plugin/BUILD b/test/proto_plugin/BUILD
+index 08f4ad4581..c1ee32d020 100644
+--- a/test/proto_plugin/BUILD
++++ b/test/proto_plugin/BUILD
+@@ -6,6 +6,7 @@ please_repo_e2e_test(
+ labels = [
+ "no_cirrus",
+ "no-musl",
++ "manual",
+ ],
+ plz_command = "plz -o plugin.go.gotool:$TOOLS_GO test",
+ repo = "test_repo",
+diff --git a/test/proto_plugin/test_repo/.plzconfig b/test/proto_plugin/test_repo/.plzconfig
+index b2cb9b90f9..883d4272cd 100644
+--- a/test/proto_plugin/test_repo/.plzconfig
++++ b/test/proto_plugin/test_repo/.plzconfig
+@@ -6,7 +6,7 @@ ImportPath = github.com/thought-machine/please/test/proto_plugin
+
+ [Plugin "proto"]
+ Target = //plugins:proto
+-LanguageDef = ///go_proto//build_defs:go
++LanguageDef = ///go_proto//build_defs:go_proto
+ ProtocTool = ///proto//third_party/proto:protoc
+
+ [Plugin "go"]
+@@ -15,5 +15,5 @@ ImportPath = github.com/thought-machine/please/test/proto_plugin
+
+ [Plugin "go_proto"]
+ Target = //plugins:go-proto
+-GrpcPlugin = //third_party/go:protoc-gen-go-grpc
+-ProtoPlugin = //third_party/go:protoc-gen-go
++GrpcPlugin = ///third_party/go/google.golang.org_grpc_cmd_protoc-gen-go-grpc//:protoc-gen-go-grpc
++ProtoPlugin = ///third_party/go/google.golang.org_protobuf//cmd/protoc-gen-go
+diff --git a/test/proto_plugin/test_repo/plugins/BUILD_FILE b/test/proto_plugin/test_repo/plugins/BUILD_FILE
+index 00be4f8494..793049b4b9 100644
+--- a/test/proto_plugin/test_repo/plugins/BUILD_FILE
++++ b/test/proto_plugin/test_repo/plugins/BUILD_FILE
+@@ -5,10 +5,10 @@ plugin_repo(
+
+ plugin_repo(
+ name = "go",
+- revision = "v1.4.1",
++ revision = "v1.16.5",
+ )
+
+ plugin_repo(
+ name = "go-proto",
+- revision = "v0.2.0",
++ revision = "v0.3.0",
+ )
+diff --git a/test/proto_plugin/test_repo/third_party/go/BUILD_FILE b/test/proto_plugin/test_repo/third_party/go/BUILD_FILE
+index 4fa9134750..c9d1def735 100644
+--- a/test/proto_plugin/test_repo/third_party/go/BUILD_FILE
++++ b/test/proto_plugin/test_repo/third_party/go/BUILD_FILE
+@@ -1,6 +1,6 @@
+ subinclude("///go//build_defs:go")
+
+-go_module(
++go_repo(
+ name = "go-spew",
+ install = ["spew"],
+ module = "github.com/davecgh/go-spew",
+@@ -8,7 +8,7 @@ go_module(
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "go-difflib",
+ install = ["difflib"],
+ module = "github.com/pmezard/go-difflib",
+@@ -16,229 +16,86 @@ go_module(
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "yaml.v3",
+ module = "gopkg.in/yaml.v3",
+ version = "v3.0.0-20200313102051-9f266ea9e77c",
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "testify",
+- install = [
+- ".",
+- "assert",
+- "http",
+- "mock",
+- "require",
+- "suite",
+- ],
+ module = "github.com/stretchr/testify",
+ version = "v1.7.0",
+ visibility = ["PUBLIC"],
+- deps = [
+- ":go-difflib",
+- ":go-spew",
+- ":objx",
+- ":yaml.v3",
+- ],
+ )
+
+-go_module(
++go_repo(
+ name = "objx",
+ module = "github.com/stretchr/objx",
+ version = "v0.1.0",
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "text",
+- install = [
+- "secure/bidirule",
+- "transform",
+- "unicode/bidi",
+- "unicode/norm",
+- ],
+ module = "golang.org/x/text",
+ version = "v0.3.0",
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "protobuf",
+- exported_deps = [":google.golang.org.protobuf"],
+- install = [
+- "proto",
+- "ptypes",
+- "ptypes/any",
+- "ptypes/duration",
+- "ptypes/timestamp",
+- ],
+ module = "github.com/golang/protobuf",
+ version = "v1.4.3",
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "grpc",
+- install = [
+- ".",
+- "attributes",
+- "backoff",
+- "balancer",
+- "balancer/base",
+- "balancer/grpclb/state",
+- "balancer/roundrobin",
+- "binarylog/grpc_binarylog_v1",
+- "codes",
+- "connectivity",
+- "credentials",
+- "encoding",
+- "encoding/proto",
+- "grpclog",
+- "internal",
+- "internal/backoff",
+- "internal/balancerload",
+- "internal/binarylog",
+- "internal/buffer",
+- "internal/channelz",
+- "internal/credentials",
+- "internal/envconfig",
+- "internal/grpclog",
+- "internal/grpcrand",
+- "internal/grpcsync",
+- "internal/grpcutil",
+- "internal/metadata",
+- "internal/resolver",
+- "internal/resolver/dns",
+- "internal/resolver/passthrough",
+- "internal/resolver/unix",
+- "internal/serviceconfig",
+- "internal/status",
+- "internal/syscall",
+- "internal/transport",
+- "internal/transport/networktype",
+- "internal/xds/env",
+- "keepalive",
+- "metadata",
+- "peer",
+- "resolver",
+- "serviceconfig",
+- "stats",
+- "status",
+- "tap",
+- ],
+ module = "google.golang.org/grpc",
+ version = "v1.42.0",
+ visibility = ["PUBLIC"],
+- deps = [
+- ":genproto",
+- ":google.golang.org.protobuf",
+- ":net",
+- ":protobuf",
+- ":sys",
+- ],
+ )
+
+-go_mod_download(
+- name = "protobuf_dl",
+- module = "google.golang.org/protobuf",
+- version = "v1.27.1",
+-)
+-
+-go_module(
+- name = "google.golang.org.protobuf",
+- download = ":protobuf_dl",
+- install = [
+- "cmd/protoc-gen-go/internal_gengo",
+- "compiler/protogen",
+- "encoding/prototext",
+- "encoding/protowire",
+- "internal/...",
+- "proto",
+- "reflect/protodesc",
+- "reflect/protoreflect",
+- "reflect/protoregistry",
+- "runtime/protoiface",
+- "runtime/protoimpl",
+- "types/descriptorpb",
+- "types/known/anypb",
+- "types/known/durationpb",
+- "types/known/timestamppb",
+- "types/pluginpb",
+- ],
+- module = "google.golang.org/protobuf",
+-)
+-
+-go_module(
++go_repo(
+ name = "protoc-gen-go-grpc",
+- binary = True,
+ module = "google.golang.org/grpc/cmd/protoc-gen-go-grpc",
+- version = "v1.1.0",
++ version = "v1.3.0",
+ visibility = ["PUBLIC"],
+- deps = [":google.golang.org.protobuf"],
+ )
+
+-go_module(
+- name = "protoc-gen-go",
+- binary = True,
+- download = ":protobuf_dl",
+- install = ["cmd/protoc-gen-go"],
++go_repo(
++ name = "google.golang.org.protobuf",
+ module = "google.golang.org/protobuf",
++ version = "v1.27.1",
+ visibility = ["PUBLIC"],
+- deps = [":google.golang.org.protobuf"],
+ )
+
+-go_module(
++go_repo(
+ name = "net",
+- install = [
+- "http/httpguts",
+- "http2",
+- "http2/hpack",
+- "idna",
+- "internal/timeseries",
+- "trace",
+- ],
+ module = "golang.org/x/net",
+- version = "v0.0.0-20200822124328-c89045814202",
++ version = "v0.21.0",
+ visibility = ["PUBLIC"],
+ deps = [":text"],
+ )
+
+-go_module(
++go_repo(
+ name = "sys",
+- install = ["unix"],
+ module = "golang.org/x/sys",
+- version = "v0.0.0-20220315194320-039c03cc5b86",
++ version = "v0.17.0",
+ visibility = ["PUBLIC"],
+ )
+
+-go_module(
++go_repo(
+ name = "genproto",
+- install = ["googleapis/rpc/status"],
+ module = "google.golang.org/genproto",
+ version = "v0.0.0-20200526211855-cb27e3aa2013",
+ visibility = ["PUBLIC"],
+- deps = [
+- ":google.golang.org.protobuf",
+- ":protobuf",
+- ],
+ )
+
+-go_module(
++go_repo(
+ name = "go-cmp",
+- install = [
+- "cmp",
+- "cmp/cmpopts",
+- "cmp/internal/diff",
+- "cmp/internal/flags",
+- "cmp/internal/function",
+- "cmp/internal/testprotos",
+- "cmp/internal/teststructs",
+- "cmp/internal/teststructs/foo1",
+- "cmp/internal/teststructs/foo2",
+- "cmp/internal/value",
+- ],
+ module = "github.com/google/go-cmp",
+ version = "v0.5.6",
+ visibility = ["PUBLIC"],
+diff --git a/third_party/go/BUILD b/third_party/go/BUILD
+index 6ba84d0441..28a754d342 100644
+--- a/third_party/go/BUILD
++++ b/third_party/go/BUILD
+@@ -5,14 +5,14 @@ package(default_visibility = ["PUBLIC"])
+ go_toolchain(
+ name = "toolchain",
+ hashes = [
+- "27014fc69e301d7588a169ca239b3cc609f0aa1abf38528bf0d20d3b259211eb", # darwin-amd64
+- "65302a7a9f7a4834932b3a7a14cb8be51beddda757b567a2f9e0cbd0d7b5a6ab", # darwin-arm64
+- "6e74f65f586e93d1f3947894766f69e9b2ebda488592a09df61f36f06bfe58a8", # freebsd-amd64
+- "1241381b2843fae5a9707eec1f8fb2ef94d827990582c7c7c32f5bdfbfd420c8", # linux-amd64
+- "fc90fa48ae97ba6368eecb914343590bbb61b388089510d0c56c2dde52987ef3", # linux-arm64
++ "ebca81df938d2d1047cc992be6c6c759543cf309d401b86af38a6aed3d4090f4", # darwin-amd64
++ "bf8e388b09134164717cd52d3285a4ab3b68691b80515212da0e9f56f518fb1e", # darwin-arm64
++ "50f421c7f217083ac94aab1e09400cb9c2fea7d337679ec11f1638a11460da30", # freebsd-amd64
++ "f6c8a87aa03b92c4b0bf3d558e28ea03006eb29db78917daec5cfb6ec1046265", # linux-amd64
++ "6a63fef0e050146f275bf02a0896badfe77c11b6f05499bb647e7bd613a45a10", # linux-arm64
+ ],
+ install_std = True,
+- version = "1.21.3",
++ version = "1.22.0",
+ )
+
+ go_stdlib(
+@@ -352,7 +352,7 @@ go_repo(
+
+ go_repo(
+ module = "golang.org/x/sys",
+- version = "v0.0.0-20220315194320-039c03cc5b86",
++ version = "v0.17.0",
+ )
+
+ go_repo(
+@@ -387,7 +387,7 @@ go_repo(
+
+ go_repo(
+ module = "github.com/cespare/xxhash/v2",
+- version = "v2.1.2",
++ version = "v2.2.0",
+ )
+
+ go_repo(
+diff --git a/tools/images/alpine/Dockerfile b/tools/images/alpine/Dockerfile
+index 74ad14b32b..48b84506ef 100644
+--- a/tools/images/alpine/Dockerfile
++++ b/tools/images/alpine/Dockerfile
+@@ -1,4 +1,4 @@
+-FROM golang:1.21-alpine
++FROM golang:1.22-alpine
+ MAINTAINER peter.ebden@gmail.com
+
+ RUN apk update && apk add --no-cache git patch gcc g++ libc-dev bash libgcc xz protoc protobuf-dev perl-utils
+diff --git a/tools/images/ubuntu/Dockerfile b/tools/images/ubuntu/Dockerfile
+index a37cafb84a..9da3df1c0e 100644
+--- a/tools/images/ubuntu/Dockerfile
++++ b/tools/images/ubuntu/Dockerfile
+@@ -15,7 +15,7 @@ RUN truncate -s0 /tmp/preseed.cfg; \
+ apt-get clean
+
+ # Go - we want a specific package version here.
+-RUN curl -fsSL https://dl.google.com/go/go1.21.5.linux-amd64.tar.gz | tar -xzC /usr/local
++RUN curl -fsSL https://dl.google.com/go/go1.22.0.linux-amd64.tar.gz | tar -xzC /usr/local
+ RUN ln -s /usr/local/go/bin/go /usr/local/bin/go && ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt
+
+ # Locale
+diff --git a/tools/images/ubuntu_alt/Dockerfile b/tools/images/ubuntu_alt/Dockerfile
+index 15d4ae8207..7d80e363a1 100644
+--- a/tools/images/ubuntu_alt/Dockerfile
++++ b/tools/images/ubuntu_alt/Dockerfile
+@@ -10,7 +10,7 @@ RUN apt-get update && \
+ apt-get clean
+
+ # Go
+-RUN curl -fsSL https://dl.google.com/go/go1.21.5.linux-amd64.tar.gz | tar -xzC /usr/local
++RUN curl -fsSL https://dl.google.com/go/go1.21.7.linux-amd64.tar.gz | tar -xzC /usr/local
+ RUN ln -s /usr/local/go/bin/go /usr/local/bin/go && ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt
+
+ # Locale
diff --git a/testing/please/APKBUILD b/testing/please/APKBUILD
new file mode 100644
index 00000000000..6641b2e19ad
--- /dev/null
+++ b/testing/please/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Ed Neville <ed@s5h.net>
+# Maintainer: Ed Neville <ed@s5h.net>
+pkgname=please
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="sudo alternative with regex support"
+url="https://gitlab.com/edneville/please"
+arch="all !s390x !riscv64" # limited by rust/cargo
+license="GPL-3.0-or-later"
+makedepends="cargo linux-pam-dev chrpath cargo-auditable"
+source="https://gitlab.com/edneville/please/-/archive/v$pkgver/please-v$pkgver.tar.gz
+ please.pam
+ "
+options="suid" # Required to call setuid with target uids
+builddir="$srcdir/$pkgname-v$pkgver"
+subpackages="$pkgname-doc"
+
+
+build() {
+ cargo auditable build --release --locked
+}
+
+check() {
+ cargo test --locked
+}
+
+doc() {
+ default_doc
+}
+
+package() {
+ install -Dm4755 target/release/please "$pkgdir/usr/bin/please"
+ install -Dm4755 target/release/pleaseedit "$pkgdir/usr/bin/pleaseedit"
+ chrpath -d "$pkgdir"/usr/bin/please*
+
+ cp "$builddir/man/please.1" "$builddir/man/pleaseedit.1"
+ install -Dm644 "$builddir/man/please.1" "$pkgdir/usr/share/man/man1/please.1"
+ install -Dm644 "$builddir/man/pleaseedit.1" "$pkgdir/usr/share/man/man1/pleaseedit.1"
+ install -Dm644 "$builddir/man/please.ini.5" "$pkgdir/usr/share/man/man5/please.ini.5"
+ install -Dm644 "$builddir/examples/please.ini" "$pkgdir/usr/share/doc/$pkgname/please.ini"
+ install -Dm644 "$builddir/README.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
+
+ mkdir -p "$pkgdir/etc/pam.d"
+ for pamf in please pleaseedit; do
+ install -Dm0644 "$srcdir/please.pam" "$pkgdir/etc/pam.d/$pamf"
+ done
+}
+
+sha512sums="
+38958b3a1a249124d0bc9d49cec96c252091a1adb96082a2af8784ee418efce368e0c8892eefb256ecc9b701e76f26aa5d94f1c504345d8a48721a3f254c172b please-v0.4.2.tar.gz
+23a3da8a8d896cbbaa6100c045b8ec07e0808f5244187b6b448d0d9b48d933645fd305fd085ea3e241cc4a4b634d988b40c534e9408196710ce416771f4b5fa7 please.pam
+"
diff --git a/testing/please/please.pam b/testing/please/please.pam
new file mode 100644
index 00000000000..6c8fac30ae9
--- /dev/null
+++ b/testing/please/please.pam
@@ -0,0 +1,4 @@
+auth include base-auth
+account include base-account
+password include base-password
+session include base-session
diff --git a/testing/plfit/APKBUILD b/testing/plfit/APKBUILD
new file mode 100644
index 00000000000..85e101a2a9d
--- /dev/null
+++ b/testing/plfit/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=plfit
+pkgver=0.9.4
+pkgrel=2
+pkgdesc="Tool for fitting power-law distributions to empirical data"
+url="https://github.com/ntamas/plfit"
+arch="all"
+license="GPL-2.0-only"
+makedepends="cmake samurai"
+subpackages="$pkgname-static $pkgname-libs $pkgname-dev"
+source="https://github.com/ntamas/plfit/archive/$pkgver/plfit-$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
+}
+
+check() {
+ ctest --output-on-failure --test-dir builddir
+}
+
+package() {
+ # Install static build first because we want the utilities to be linked dynamically.
+ DESTDIR="$pkgdir" cmake --install builddir-static
+ DESTDIR="$pkgdir" cmake --install builddir
+}
+
+sha512sums="
+39cb644de20645b35b8ce6f95bb074276314f5fdc755e0d7eba8e69d1f0d65b784cd755b7a4481e933f8863c30f6b2957e7dba45fc9a695cef14ad4fef729885 plfit-0.9.4.tar.gz
+"
diff --git a/testing/plib/APKBUILD b/testing/plib/APKBUILD
index 1ee1695a95a..55f22c2abe4 100644
--- a/testing/plib/APKBUILD
+++ b/testing/plib/APKBUILD
@@ -1,45 +1,48 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=plib
pkgver=1.8.5
-pkgrel=0
+pkgrel=3
pkgdesc="Portable Game Library"
-url="http://plib.sourceforge.net"
+url="https://plib.sourceforge.net/"
arch="all"
-license="LGPL"
-depends=
-depends_dev=
+license="LGPL-2.0-or-later"
makedepends="$depends_dev libxi-dev libxmu-dev mesa-dev"
-install=
-subpackages=
-source="http://plib.sourceforge.net/dist/$pkgname-$pkgver.tar.gz
- includes-fix.patch"
-builddir="$srcdir"/$pkgname-$pkgver
+source="https://plib.sourceforge.net/dist/plib-$pkgver.tar.gz
+ includes-fix.patch
+ CVE-2011-4620.patch
+ CVE-2012-4552.patch
+ "
-prepare() {
- default_prepare || return 1
+# secfixes:
+# 1.8.5-r1:
+# - CVE-2012-4552
+# - CVE-2011-4620
- cd "$builddir"
- update_config_guess && update_config_sub
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
}
build() {
- cd "$builddir"
- ./configure --prefix=/usr \
+ ./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
-
- # remove the 2 lines below (and this) if there is no init.d script
- # install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- # install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ make DESTDIR="$pkgdir" install
}
-sha512sums="17154cc77243fe576c2bcbcb0285b98aef1a0634658f5473e95fe0ac8fa3ed477dbe5620e44ccf0b7cc616f812af0cd44d6fcbba0c563180d3b61c9d6f158e1d plib-1.8.5.tar.gz
-a7a3f0514c698945b47cbf5242b3213df9ac9265b52268b6dfea50e51597dadf0f4e83608bc6b25d6deb22b42505162e25192de082590effbdda8f38d0860dc8 includes-fix.patch"
+sha512sums="
+17154cc77243fe576c2bcbcb0285b98aef1a0634658f5473e95fe0ac8fa3ed477dbe5620e44ccf0b7cc616f812af0cd44d6fcbba0c563180d3b61c9d6f158e1d plib-1.8.5.tar.gz
+a7a3f0514c698945b47cbf5242b3213df9ac9265b52268b6dfea50e51597dadf0f4e83608bc6b25d6deb22b42505162e25192de082590effbdda8f38d0860dc8 includes-fix.patch
+5d2312dcc03ffe28c3abe17f3a9aac2dcaf7986b22caa3e07f21e4499ab4fc99e3900164a5a350315b06d2378bcd0ee7fda3cf361faa36f05bcc52078db0e9ac CVE-2011-4620.patch
+fe8fa3b7dae8bce3fbc85ceb8dd9cd1b65b8baa35714884890cac1012d3a0fdb55c04b52d2af67666436be75f9a512aa5ab9d9455db19dfe06d75dee5f581719 CVE-2012-4552.patch
+"
diff --git a/testing/plib/CVE-2011-4620.patch b/testing/plib/CVE-2011-4620.patch
new file mode 100644
index 00000000000..b41b22bd9ac
--- /dev/null
+++ b/testing/plib/CVE-2011-4620.patch
@@ -0,0 +1,11 @@
+--- a/src/util/ulError.cxx
++++ b/src/util/ulError.cxx
+@@ -39,7 +39,7 @@
+ {
+ va_list argp;
+ va_start ( argp, fmt ) ;
+- vsprintf ( _ulErrorBuffer, fmt, argp ) ;
++ vsnprintf ( _ulErrorBuffer, sizeof(_ulErrorBuffer), fmt, argp ) ;
+ va_end ( argp ) ;
+
+ if ( _ulErrorCB )
diff --git a/testing/plib/CVE-2012-4552.patch b/testing/plib/CVE-2012-4552.patch
new file mode 100644
index 00000000000..556d95f225b
--- /dev/null
+++ b/testing/plib/CVE-2012-4552.patch
@@ -0,0 +1,55 @@
+diff -up plib-1.8.5/src/ssg/ssgParser.cxx~ plib-1.8.5/src/ssg/ssgParser.cxx
+--- plib-1.8.5/src/ssg/ssgParser.cxx~ 2008-03-11 03:06:23.000000000 +0100
++++ plib-1.8.5/src/ssg/ssgParser.cxx 2012-11-01 15:33:12.424483374 +0100
+@@ -57,18 +57,16 @@ void _ssgParser::error( const char *form
+ char msgbuff[ 255 ];
+ va_list argp;
+
+- char* msgptr = msgbuff;
+- if (linenum)
+- {
+- msgptr += sprintf ( msgptr,"%s, line %d: ",
+- path, linenum );
+- }
+-
+ va_start( argp, format );
+- vsprintf( msgptr, format, argp );
++ vsnprintf( msgbuff, sizeof(msgbuff), format, argp );
+ va_end( argp );
+
+- ulSetError ( UL_WARNING, "%s", msgbuff ) ;
++ if (linenum)
++ {
++ ulSetError ( UL_WARNING, "%s, line %d: %s", path, linenum, msgbuff ) ;
++ } else {
++ ulSetError ( UL_WARNING, "%s", msgbuff ) ;
++ }
+ }
+
+
+@@ -78,18 +76,16 @@ void _ssgParser::message( const char *fo
+ char msgbuff[ 255 ];
+ va_list argp;
+
+- char* msgptr = msgbuff;
+- if (linenum)
+- {
+- msgptr += sprintf ( msgptr,"%s, line %d: ",
+- path, linenum );
+- }
+-
+ va_start( argp, format );
+- vsprintf( msgptr, format, argp );
++ vsnprintf( msgbuff, sizeof(msgbuff), format, argp );
+ va_end( argp );
+
+- ulSetError ( UL_DEBUG, "%s", msgbuff ) ;
++ if (linenum)
++ {
++ ulSetError ( UL_DEBUG, "%s, line %d: %s", path, linenum, msgbuff ) ;
++ } else {
++ ulSetError ( UL_DEBUG, "%s", msgbuff ) ;
++ }
+ }
+
+ // Opens the file and does a few internal calculations based on the spec.
diff --git a/testing/plots/APKBUILD b/testing/plots/APKBUILD
new file mode 100644
index 00000000000..dcdd43cbf72
--- /dev/null
+++ b/testing/plots/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Thomas Aldrian <aldrian.thom@proton.me>
+pkgname=plots
+pkgver=0.7.0
+pkgrel=0
+pkgdesc="A graph plotting app for GNOME"
+url="https://github.com/alexhuntley/Plots"
+arch="noarch"
+license="GPL-3.0-or-later"
+# >=0.8.0 requires adwaita & gtk4 instead of libhandy & gtk3
+depends="
+ freeglut
+ gtk+3.0
+ libhandy1
+ py3-freetype-py
+ py3-gobject3
+ py3-jinja2
+ py3-lark-parser
+ py3-numpy
+ py3-opengl
+ py3-pyglm
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest mesa-osmesa"
+source="$pkgname-$pkgver.tar.gz::https://github.com/alexhuntley/Plots/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/Plots-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ # Required for headless
+ export PYOPENGL_PLATFORM="osmesa"
+ pytest
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+d72576873b728ab4d02375462912c970f1c52524e80bd0690d79c04b117af7d9d60f150dc29f70ac198074aa338e21eef94cf8d28e9062540401564de3a4b88b plots-0.7.0.tar.gz
+"
diff --git a/testing/plplot/APKBUILD b/testing/plplot/APKBUILD
new file mode 100644
index 00000000000..232b5c06a9b
--- /dev/null
+++ b/testing/plplot/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: River Dillon <oss@outerpassage.net>
+# Maintainer: River Dillon <oss@outerpassage.net>
+pkgname=plplot
+pkgver=5.15.0
+pkgrel=2
+pkgdesc="scientific graphics plotting library"
+url="http://plplot.org/"
+license="LGPL-2.0-or-later"
+arch="all"
+makedepends="cmake gfortran pango-dev"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+source="https://downloads.sourceforge.net/project/plplot/plplot/$pkgver%20Source/plplot-$pkgver.tar.gz"
+options="!check" # XXX: no working check function yet
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DDEFAULT_NO_BINDINGS=True \
+ -DPLD_xwin=False \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -r "$pkgdir"/usr/share/plplot$pkgver/examples
+}
+
+sha512sums="
+54533245569b724a7ef90392cc6e9ae65873e6cbab923df0f841c8b43def5e4307690894c7681802209bd3c8df97f54285310a706428f79b3340cce3207087c8 plplot-5.15.0.tar.gz
+"
diff --git a/testing/ply/APKBUILD b/testing/ply/APKBUILD
deleted file mode 100644
index 7d9edfe1a38..00000000000
--- a/testing/ply/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Adam Jensen <acjensen@gmail.com>
-pkgname=ply
-pkgver=2.1.1
-pkgrel=0
-pkgdesc="A light-weight, dynamic tracer based on BPF"
-url="https://wkz.github.io/ply"
-arch="x86_64 aarch64"
-license="GPL-2.0-only"
-# ply's test suite requires privileged access to run BPF programs
-options="!check"
-subpackages="$pkgname-doc"
-makedepends="automake autoconf libtool bison linux-headers libbsd-dev flex ronn"
-source="$pkgname-$pkgver.tar.gz::https://github.com/iovisor/ply/archive/$pkgver.tar.gz"
-
-prepare() {
- default_prepare
-
- # Use commit ref as version instead of invoking git
- sed -i -e "s/AC_INIT(.*,/AC_INIT(ply, $pkgver,/" configure.ac
-
- autoreconf -fi
-}
-
-build() {
- ./configure --prefix="/usr"
- make
-}
-
-package() {
- make install DESTDIR="$pkgdir"
- make -C man install DESTDIR="$pkgdir"
-}
-
-sha512sums="fdc66d752989a239e01d2746e6c56610c2c945fbeeff8f2a79be1db487a6cbba365d1bd1b553d25c43a3fdc3634ab96bf4a37ab4f694c6eb6eba82c35b37231e $pkgname-$pkgver.tar.gz"
diff --git a/testing/plzip/APKBUILD b/testing/plzip/APKBUILD
index 6f8c4d6e13e..a7f6ed391ce 100644
--- a/testing/plzip/APKBUILD
+++ b/testing/plzip/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: Klemens Nanni <kl3@posteo.org>
-# Maintainer: Klemens Nanni <kl3@posteo.org>
+# Maintainer:
pkgname=plzip
-pkgver=1.8
+pkgver=1.11
pkgrel=0
pkgdesc="Massively parallel lossless data compressor"
url="http://www.nongnu.org/lzip/plzip.html"
arch="all"
license="GPL-2.0-or-later"
makedepends="lzlib-dev"
-subpackages="${pkgname}-doc"
-source="https://download.savannah.gnu.org/releases/lzip/$pkgname/$pkgname-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+source="https://download.savannah.gnu.org/releases/lzip/plzip/plzip-$pkgver.tar.gz"
build() {
./configure \
@@ -26,4 +26,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="e8e822f8ae77e06178538b62075fa1c5d9cbc76c78bee7ad595a4637cd4077f53fd9e3fe61ca3fbddaa8b950e739d97527dc8fbecae04de1ac3ef83d0d5f13b4 plzip-1.8.tar.gz"
+sha512sums="
+3a0f0443e68a6b776d85b69ed24d21e03d7bad1b788d6e8f741cc0ebb2537aebde2d68aa6765bcb4d61df6521779af27d176f5ef348014fa3088aa219d5ec691 plzip-1.11.tar.gz
+"
diff --git a/testing/pmbootstrap/APKBUILD b/testing/pmbootstrap/APKBUILD
deleted file mode 100644
index 69f8bc57b5d..00000000000
--- a/testing/pmbootstrap/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Oliver Smith <ollieparanoid@postmarketos.org>
-pkgname=pmbootstrap
-pkgver=1.20.0
-pkgrel=0
-pkgdesc="Sophisticated chroot/build/flash tool to develop and install postmarketOS"
-url="https://gitlab.com/postmarketOS/pmbootstrap"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="python3 coreutils procps openssl py3-setuptools git"
-checkdepends="pytest"
-source="$pkgname-$pkgver.tar.gz::https://gitlab.com/postmarketos/pmbootstrap/-/archive/$pkgver/pmbootstrap-$pkgver.tar.gz
- modules-load.conf"
-install="$pkgname.post-install"
-options="!check" # Tests require chroot etc.
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- install -Dm644 "$srcdir"/modules-load.conf "$pkgdir"/usr/lib/modules-load.d/pmbootstrap.conf
-}
-
-sha512sums="083140803c448e2fa5f4159f5d912d0b6d1bc8dd7d87eeadba5fd657fb022233bd350a83cf2baed6f7883b649707a752c14323138c65a355b0c8b45dfdc52a19 pmbootstrap-1.20.0.tar.gz
-f8026ab32234b885e69252459047f70160c54319113bc449000aa7c05bd016f00a46cee05c8f5251682f967ab44a12c06fbbb3c02d0a57ccb836cff810ce1a40 modules-load.conf"
diff --git a/testing/pmbootstrap/modules-load.conf b/testing/pmbootstrap/modules-load.conf
deleted file mode 100644
index 21cebba6e9c..00000000000
--- a/testing/pmbootstrap/modules-load.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-binfmt_misc
-loop
diff --git a/testing/pmbootstrap/pmbootstrap.post-install b/testing/pmbootstrap/pmbootstrap.post-install
deleted file mode 100644
index 8c2a70b63d2..00000000000
--- a/testing/pmbootstrap/pmbootstrap.post-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-modprobe binfmt_misc
-modprobe loop
-
-exit 0
diff --git a/testing/pmccabe/APKBUILD b/testing/pmccabe/APKBUILD
new file mode 100644
index 00000000000..f80fa0e36f3
--- /dev/null
+++ b/testing/pmccabe/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Olliver Schinagl <oliver@schinagl.nl>
+# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
+pkgname="pmccabe"
+pkgver="2.8"
+pkgrel=1
+pkgdesc="McCabe-style complexity and line counting for C and C++"
+url="https://gitlab.com/pmccabe/pmccabe"
+arch="all"
+license="GPL-2.0-or-later"
+subpackages="${pkgname}-doc"
+source="https://gitlab.com/pmccabe/pmccabe/-/archive/v${pkgver}/pmccabe-v${pkgver}.tar.bz2"
+builddir="${srcdir}/pmccabe-v${pkgver}"
+
+build() {
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="${pkgdir}" install
+}
+
+sha512sums="0f3b4287b59eafd7011192cbec1b69c3216bdcb73eb6231a5c965dca12f710e204a55cd029b69169a42b2dd575c629905f0700e0272b2e7594239a0f75660a52 pmccabe-v2.8.tar.bz2"
diff --git a/testing/pnmixer/APKBUILD b/testing/pnmixer/APKBUILD
index 300a3ea3219..b137220fb98 100644
--- a/testing/pnmixer/APKBUILD
+++ b/testing/pnmixer/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=pnmixer
pkgver=0.7.2
-pkgrel=1
+pkgrel=3
pkgdesc="PNMixer is a simple mixer application designed to run in system tray."
url="https://github.com/nicklan/pnmixer"
arch="all"
-license="GPL"
+license="GPL-3.0-only"
makedepends="cmake gettext gtk+2.0-dev alsa-lib-dev libnotify-dev"
install=""
subpackages="$pkgname-doc $pkgname-lang"
diff --git a/testing/pnpm/APKBUILD b/testing/pnpm/APKBUILD
new file mode 100644
index 00000000000..92f9089a4ea
--- /dev/null
+++ b/testing/pnpm/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Hygna <hygna@proton.me>
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=pnpm
+pkgver=9.0.6
+pkgrel=0
+pkgdesc="Fast, disk space efficient package manager"
+url="https://pnpm.io"
+arch="noarch"
+license="MIT"
+depends="nodejs"
+source="https://registry.npmjs.org/pnpm/-/pnpm-$pkgver.tgz"
+options="!check" # not implemented
+builddir="$srcdir/package"
+
+prepare() {
+ default_prepare
+
+ # remove node-gyp
+ rm -rf dist/node-gyp-bin dist/node_modules/node-gyp
+ # remove windows files
+ rm -rf dist/vendor/*.exe
+
+ # remove other unnecessary files
+ find . -type f \( \
+ -name '.*' -o \
+ -name '*.cmd' -o \
+ -name '*.bat' -o \
+ -name '*.map' -o \
+ -name '*.md' -o \
+ -name '*.darwin*' -o \
+ -name '*.win*' -o \
+ -iname 'README*' \) -delete
+}
+
+package() {
+ local destdir="$pkgdir"/usr/share/node_modules/pnpm
+
+ mkdir -p "$destdir"
+ cp -R "$builddir"/* "$destdir"/
+
+ mkdir -p "$pkgdir"/usr/bin
+ ln -sf ../share/node_modules/pnpm/bin/pnpm.cjs "$pkgdir"/usr/bin/pnpm
+ ln -sf ../share/node_modules/pnpm/bin/pnpx.cjs "$pkgdir"/usr/bin/pnpx
+}
+
+sha512sums="
+f6d863130973207cb7a336d6b439a242a26ac8068077df530d6a86069419853dc1ffe64029ec594a9c505a3a410d19643c870aba6776330f5cfddcf10a9c1617 pnpm-9.0.6.tgz
+"
diff --git a/testing/poco/APKBUILD b/testing/poco/APKBUILD
deleted file mode 100644
index 401284f2dec..00000000000
--- a/testing/poco/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=poco
-pkgver=1.10.1
-pkgrel=1
-pkgdesc="C++ class libraries for building network- and internet-based applications"
-url="https://pocoproject.org/"
-arch="all !mips !mips64" # fails to build on soft-float
-license="BSL-1.0"
-makedepends="cmake chrpath openssl-dev linux-headers zlib-dev pcre-dev expat-dev sqlite-dev mariadb-connector-c-dev unixodbc-dev postgresql-dev"
-source="https://pocoproject.org/releases/poco-$pkgver/poco-$pkgver-all.tar.gz
- cxxflags.patch
- "
-subpackages="$pkgname-dev"
-options="!check" # No testsuite
-
-builddir="$srcdir/$pkgname-$pkgver-all"
-
-build() {
- cmake -B "$builddir"/build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr
- make -C build
-}
-
-package() {
- DESTDIR="$pkgdir" make -C build install
-}
-
-sha512sums="858a37c49563fa602a5e4783438154a3e1e6c91f8a3adcae62c3d922eccd30b8ba273b2c2b16b5f80c1deb80eb350056e6923a2788ec2e17a595a44d4f97f30d poco-1.10.1-all.tar.gz
-5f72e487074ea26e29e81d6fc244d03989d780d71b33a064456fa19b241aca278fbfd9b303733940b837921ea25781ee62905d70a5f1c57f1b24cd38a2a7d720 cxxflags.patch"
diff --git a/testing/poco/cxxflags.patch b/testing/poco/cxxflags.patch
deleted file mode 100644
index 0ba6f7b789f..00000000000
--- a/testing/poco/cxxflags.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/build/config/Linux
-+++ b/build/config/Linux
-@@ -41,7 +41,7 @@
- CFLAGS =
- CFLAGS32 =
- CFLAGS64 =
--CXXFLAGS = -Wall -Wno-sign-compare
-+CXXFLAGS = -Wall -Wno-sign-compare -fomit-frame-pointer
- CXXFLAGS32 =
- CXXFLAGS64 =
- LINKFLAGS =
-@@ -56,9 +56,9 @@
- DEBUGOPT_CC = -g -D_DEBUG
- DEBUGOPT_CXX = -g -D_DEBUG
- DEBUGOPT_LINK = -g
--RELEASEOPT_CC = -O2 -DNDEBUG
--RELEASEOPT_CXX = -O2 -DNDEBUG
--RELEASEOPT_LINK = -O2
-+RELEASEOPT_CC = -Os -DNDEBUG
-+RELEASEOPT_CXX = -Os -DNDEBUG
-+RELEASEOPT_LINK = -Os
-
- #
- # System Specific Flags
diff --git a/testing/podman-compose/APKBUILD b/testing/podman-compose/APKBUILD
deleted file mode 100644
index 69586db4716..00000000000
--- a/testing/podman-compose/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=podman-compose
-pkgver=0.1.5
-pkgrel=0
-pkgdesc="A script to run docker-compose.yml using podman"
-url="https://github.com/containers/podman-compose"
-arch="noarch !mips !mips64" # blocked by podman
-license="GPL-2.0-or-later"
-options="!check" # Requires running docker env
-depends="podman python3 py3-yaml"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/containers/podman-compose/archive/v$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3a5fd56b5394ada0ca465d2cac2249601bb72b20793106d625953e94f55ac19e65d7cd181bbc685fe5de0ac2a7169f0e5f4726e04ff927073eb656c9462c8606 podman-compose-0.1.5.tar.gz"
diff --git a/testing/podman/APKBUILD b/testing/podman/APKBUILD
deleted file mode 100644
index da2a7c97052..00000000000
--- a/testing/podman/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=podman
-pkgver=1.9.3
-pkgrel=0
-pkgdesc="Simple management tool for pods, containers, and images"
-url="https://podman.io/"
-options="!check" # TODO: enable tests
-arch="all !mips !mips64" # fails to build on mips
-license="Apache-2.0"
-depends="conmon cni-plugins crun iptables ip6tables slirp4netns shadow-uidmap skopeo"
-makedepends="go gpgme-dev libseccomp-dev libassuan-dev go-md2man btrfs-progs-dev bash"
-subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-zsh-completion"
-source="$pkgname-$pkgver.tar.gz::https://github.com/containers/libpod/archive/v$pkgver.tar.gz
- libpod-config.patch"
-builddir="$srcdir/libpod-$pkgver"
-
-# secfixes:
-# 1.8.1-r0:
-# - CVE-2020-1726
-
-build() {
- export BUILDTAGS="exclude_graphdriver_devicemapper seccomp"
- make podman PREFIX=/usr
-}
-
-package() {
- make install.bin install.man install.cni install.config \
- PREFIX=/usr DESTDIR="$pkgdir"
- install -Dm644 "$builddir"/completions/bash/$pkgname \
- "$pkgdir"/usr/share/bash-completion/completions/$pkgname
- install -Dm644 "$builddir"/completions/zsh/_$pkgname \
- "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
-}
-
-sha512sums="d85cdf49b740f47a341b7717a4bc22ff326d22234e224bd572a3d879b75eaa33139bebdc293c2e7bc41a9902289d89380b9b56975a0826172324e9a54f8f5e03 podman-1.9.3.tar.gz
-5b21c99940ed1d81ef0ae1bb0e192b92158d84d0f227d1170e03b63e6062806a1093bd345c26279bfb66a01c721ac589f17ef095e35c89f052405d2af09a6032 libpod-config.patch"
diff --git a/testing/podman/libpod-config.patch b/testing/podman/libpod-config.patch
deleted file mode 100644
index 784241f4503..00000000000
--- a/testing/podman/libpod-config.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/libpod.conf b/libpod.conf
-index 1bc31eb4c..278551726 100644
---- a/libpod.conf
-+++ b/libpod.conf
-@@ -24,10 +24,10 @@ conmon_env_vars = [
- ]
-
- # CGroup Manager - valid values are "systemd" and "cgroupfs"
--cgroup_manager = "systemd"
-+cgroup_manager = "cgroupfs"
-
- # Container init binary
--#init_path = "/usr/libexec/podman/catatonit"
-+#init_path = "/usr/bin/catatonit"
-
- # Directory for persistent libpod files (database, etc)
- # By default, this will be configured relative to where containers/storage
-@@ -50,6 +50,7 @@ cni_config_dir = "/etc/cni/net.d/"
-
- # Directories where the CNI plugin binaries may be located
- cni_plugin_dir = [
-+ "/usr/share/cni-plugins/bin",
- "/usr/libexec/cni",
- "/usr/lib/cni",
- "/usr/local/lib/cni",
-@@ -116,7 +117,7 @@ num_locks = 2048
- # detach_keys = "ctrl-p,ctrl-q"
-
- # Default OCI runtime
--runtime = "runc"
-+runtime = "crun"
-
- # List of the OCI runtimes that support --format=json. When json is supported
- # libpod will use it for reporting nicer errors.
diff --git a/testing/poetry/APKBUILD b/testing/poetry/APKBUILD
deleted file mode 100644
index 74a6d76a166..00000000000
--- a/testing/poetry/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=poetry
-pkgver=1.0.5
-pkgrel=0
-pkgdesc="Python3 dependency management and packaging system"
-url="https://python-poetry.org"
-arch="noarch"
-license="MIT"
-options="!check" # TODO: add tests
-depends="
- python3
- py3-cleo
- py3-clikit
- py3-requests
- py3-cachy
- py3-requests-toolbelt
- py3-jsonschema
- py3-pyrsistent
- py3-parsing
- py3-cachecontrol
- py3-pkginfo
- py3-html5lib
- py3-shellingham
- py3-tomlkit
- py3-pexpect
- py3-keyring
- "
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/sdispater/poetry/archive/$pkgver.tar.gz
- poetry.py
- "
-
-package() {
- rm -rf "$pkgdir"/usr/lib/poetry/poetry
-
- install -d "$pkgdir"/usr/lib/poetry
- cp -r poetry "$pkgdir"/usr/lib/poetry/poetry
-
- install -Dm0755 "$srcdir"/poetry.py "$pkgdir"/usr/bin/poetry
-}
-
-sha512sums="4a1d5bda510aa5bdbb8655635c22b7358fd3278e2cd9cc170546510df7de039ec300388faafaa3a463b757a155c3a3324143d06a226a61348a509042c8da6a56 poetry-1.0.5.tar.gz
-fca6cad49967e7fae7fcdd12e6d15da649f11dd0acfc6e0904eb75ec1f3b477a28328553a4b356422087a3f375d5a4851cf9c793eb041f7ae427352b4747a6fc poetry.py"
diff --git a/testing/poetry/poetry.py b/testing/poetry/poetry.py
deleted file mode 100644
index 5e866e29af9..00000000000
--- a/testing/poetry/poetry.py
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env python3
-import sys
-
-POETRY_DIR = '/usr/lib/poetry'
-sys.path.insert(0, POETRY_DIR)
-
-if __name__ == '__main__':
- from poetry.console import main
- sys.exit(main())
-
diff --git a/testing/poke/APKBUILD b/testing/poke/APKBUILD
new file mode 100644
index 00000000000..26a6b7fe189
--- /dev/null
+++ b/testing/poke/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=poke
+pkgver=3.3
+pkgrel=0
+pkgdesc="extensible editor for binary data"
+url="https://www.jemarch.net/poke.html"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="automake autoconf help2man gc-dev readline-dev gettext-dev json-c-dev dejagnu-dev"
+checkdepends="dejagnu"
+subpackages="$pkgname-doc"
+source="https://ftp.gnu.org/gnu/poke/poke-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make -k check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+b00dca38d27bddee6ea131d45988aaead1d11d29b757c048f3b2be8013575cedc591844d4d99870f90964fd4f517d500cbb42aae5aff57e9fe07aac8273aa236 poke-3.3.tar.gz
+"
diff --git a/testing/pokoy/APKBUILD b/testing/pokoy/APKBUILD
new file mode 100644
index 00000000000..1dff8b359f5
--- /dev/null
+++ b/testing/pokoy/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=pokoy
+pkgver=0.2.5
+pkgrel=0
+pkgdesc="Lightweight daemon that helps prevent RSI and other computer related stress"
+url="https://github.com/ttygde/pokoy"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libxcb-dev xcb-util-wm-dev xcb-util-keysyms-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ttygde/pokoy/archive/v$pkgver.tar.gz
+ broken-makefile.patch
+ "
+options="!check" # No tests
+
+build() {
+ make PREFIX=/usr STRIP=
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cd7505f0fc88c51f9a74e19aae3aed0e20a408b70ead93f04043a886c448099b4d56443c8a0404746b3b4ee4ba6b4c7d442793a7f24b93b1f3b06d8c149692ca pokoy-0.2.5.tar.gz
+c0973a7300fb77b45b597272bec9d182573a3b8a3eb16f1b4e70c838a1b59bbdc7041a10742bfee03d6191f068dd7bc16fbc046d94b7cce2e62c9736f760d039 broken-makefile.patch
+"
diff --git a/testing/pokoy/broken-makefile.patch b/testing/pokoy/broken-makefile.patch
new file mode 100644
index 00000000000..8eade4450cf
--- /dev/null
+++ b/testing/pokoy/broken-makefile.patch
@@ -0,0 +1,15 @@
+diff --git a/Makefile b/Makefile
+index 60f6519..b0c0793 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,8 @@
+ VERSION = 0.2.5
+ CC ?= gcc
+ STRIP ?= strip
+-CFLAGS = -std=c99 -D_DEFAULT_SOURCE -O2
+-LDFLAGS = -lxcb -lxcb-keysyms -lxcb-icccm -lxcb-screensaver
++CFLAGS := -std=c99 -D_DEFAULT_SOURCE -O2 $(CFLAGS)
++LDFLAGS := -lxcb -lxcb-keysyms -lxcb-icccm -lxcb-screensaver $(LDFLAGS)
+
+ SRCR = pokoy.c
+ OBJS = ${SRCR:.c=.o}
diff --git a/testing/policycoreutils/0003-fix-pam-rules.patch b/testing/policycoreutils/0003-fix-pam-rules.patch
new file mode 100644
index 00000000000..d2d69d09f6b
--- /dev/null
+++ b/testing/policycoreutils/0003-fix-pam-rules.patch
@@ -0,0 +1,34 @@
+diff --git a/newrole/newrole.pamd b/newrole/newrole.pamd
+index 683c544..dc947b7 100644
+--- a/newrole/newrole.pamd
++++ b/newrole/newrole.pamd
+@@ -1,8 +1,8 @@
+ #%PAM-1.0
+ # Uncomment the next line if you do not want to enter your passwd every time
+ # auth sufficient pam_rootok.so
+-auth include system-auth
+-account include system-auth
+-password include system-auth
+-session include system-auth
++auth include base-auth
++account include base-account
++password include base-password
++session include base-session
+ session optional pam_xauth.so
+diff --git a/run_init/run_init.pamd b/run_init/run_init.pamd
+index ef46013..74cb988 100644
+--- a/run_init/run_init.pamd
++++ b/run_init/run_init.pamd
+@@ -1,8 +1,8 @@
+ #%PAM-1.0
+ # Uncomment the next line if you do not want to enter your passwd every time
+ #auth sufficient pam_rootok.so
+-auth include system-auth
+-account include system-auth
+-password include system-auth
+-session include system-auth
++auth include base-auth
++account include base-account
++password include base-password
++session include base-session
+ session optional pam_xauth.so
diff --git a/testing/policycoreutils/APKBUILD b/testing/policycoreutils/APKBUILD
index 603069432bd..0d11a36c88b 100644
--- a/testing/policycoreutils/APKBUILD
+++ b/testing/policycoreutils/APKBUILD
@@ -1,43 +1,42 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
# Maintainer: Tycho Andersen <tycho@docker.com>
pkgname=policycoreutils
-pkgver=2.8
+pkgver=3.6
pkgrel=0
pkgdesc="SELinux policy core utilities"
url="https://selinuxproject.org/"
arch="all"
-license="GPL-2.0"
-depends=""
+license="GPL-2.0-only"
makedepends="
gettext-dev
libsepol-dev
- libselinux-dev
+ libselinux-dev
libsemanage-dev
- fts-dev
+ musl-fts-dev
linux-pam-dev
libcap-ng-dev
audit-dev
-
gawk
"
-install=""
-subpackages="$pkgname-doc $pkgname-lang"
-source="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20180524/policycoreutils-2.8.tar.gz
+subpackages="$pkgname-doc $pkgname-lang $pkgname-bash-completion"
+source="https://github.com/SELinuxProject/selinux/releases/download/$pkgver/policycoreutils-$pkgver.tar.gz
0002-hack-around-GLOB-BRACE-TILDE.patch
+ 0003-fix-pam-rules.patch
busybox-install-compat.patch
"
-builddir="$srcdir/policycoreutils-$pkgver"
options="suid"
build() {
- cd "$builddir"
make LDLIBS="$LDLIBS -lintl" LSPP_PRIV=y
}
package() {
- cd "$builddir"
make LSPP_PRIV=y DESTDIR="$pkgdir" install
}
-sha512sums="2b4a70836fd8727a16b8f8d4afcc39c9461ab6f5bc1ba5ce5833d41150da921ebb3c9bdbd1cfa7dd31fd382ba18b5433ca9b63bce58bd290db81fa9bedfe29f3 policycoreutils-2.8.tar.gz
+sha512sums="
+e1f32e6e0310b879a5aadab157b103314a61bf3b8fd59c1212d701fbf39900e3b9a0b727338988103d784a7e505355a871ba519dd91520b135a3b9dae40bf1b0 policycoreutils-3.6.tar.gz
d611ca3107439fbdb9618a72f55cb66e299fa71392821b223343aa314c65af3e67d6e79ff40e93eca9a20dd0e90c660393c604a18048fcf293374cf2bc61e918 0002-hack-around-GLOB-BRACE-TILDE.patch
-cc0244d19b0ef4c0453d5ba02144f9a47c61164b55e8ed946c25075e1fac6401edbd46b2efc8ac0e733e1989ec6755409512b8a5c3e6ff31d59ad43b3ba41783 busybox-install-compat.patch"
+e3d1a658c76b80e694188049bde153a525a227c5e94cfc008537c15a7a7758ddf23b3cf64dd8c5aaa6d32ddeb5b468c6f95c17a82131fe8d8779695e96b56704 0003-fix-pam-rules.patch
+4f6ccc3ce6d88a85c5550d55fb6b8bb3ca601bb3996b68964e31b790273a3a27f33e1ae420c4bd64964270a6cf97501344a27c3d5f0210c825e88378be07bd49 busybox-install-compat.patch
+"
diff --git a/testing/policycoreutils/busybox-install-compat.patch b/testing/policycoreutils/busybox-install-compat.patch
index aba281d57ac..bb3369b7abf 100644
--- a/testing/policycoreutils/busybox-install-compat.patch
+++ b/testing/policycoreutils/busybox-install-compat.patch
@@ -9,3 +9,14 @@
done
%.mo: %.po
+--- a/sestatus/Makefile
++++ b/sestatus/Makefile
+@@ -22,7 +22,7 @@
+ # Some tools hard code /usr/sbin/sestatus ; add a compatibility symlink
+ # install will overwrite a symlink, so create the symlink before calling
+ # install to allow distributions with BINDIR == SBINDIR
+- ln -sf --relative $(DESTDIR)$(BINDIR)/sestatus $(DESTDIR)$(SBINDIR)
++ ln -sf $(DESTDIR)$(BINDIR)/sestatus $(DESTDIR)$(SBINDIR)
+ install -m 755 sestatus $(DESTDIR)$(BINDIR)
+ install -m 644 sestatus.8 $(DESTDIR)$(MANDIR)/man8
+ install -m 644 sestatus.conf.5 $(DESTDIR)$(MANDIR)/man5
diff --git a/testing/polipo/APKBUILD b/testing/polipo/APKBUILD
deleted file mode 100644
index b2461d517b0..00000000000
--- a/testing/polipo/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Alexander Georgievskiy <galeksandrp@gmail.com>
-# Maintainer:
-pkgname=polipo
-pkgver=1.1.1
-pkgrel=0
-pkgdesc="The Polipo caching HTTP proxy"
-url="https://github.com/jech/$pkgname"
-arch="all"
-license="MIT"
-depends=""
-makedepends="texinfo"
-install=""
-subpackages="$pkgname-doc"
-source="https://github.com/jech/$pkgname/archive/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgname-$pkgver"
-options="!check"
-
-build() {
- cd "$builddir"
-
- make
-}
-
-package() {
- cd "$builddir"
-
- make PREFIX="$pkgdir/usr" MANDIR="$pkgdir/usr/share/man" INFODIR="$pkgdir/usr/share/info" LOCAL_ROOT="$pkgdir/usr/share/polipo/www" install
-}
-
-sha512sums="f99f4f7bbd39f2651a1df12e1c88d45938ddbc85ef10e2ce0e8a40e25019986a17e7cd449efcc0a268367297bc9597d935df2d1e4f48661cc8f28310a17b6327 polipo-1.1.1.tar.gz"
diff --git a/testing/polyglot/APKBUILD b/testing/polyglot/APKBUILD
new file mode 100644
index 00000000000..1a08f577e77
--- /dev/null
+++ b/testing/polyglot/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=polyglot
+pkgver=2.0.4
+pkgrel=1
+pkgdesc="Protocol adapter to run UCI chess engines under XBoard"
+url="https://www.chessprogramming.org/PolyGlot"
+arch="all"
+license="GPL-2.0-or-later"
+options="!check" # no test suite
+source="http://hgm.nubati.net/releases/polyglot-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e0ab6b5d7f01b7a877808e7411b510acd6b85f307c86f317bb0f8a11059f40234e75853d0524c08518b0dc4e4a17e0fa483c464c246950a6af8e4cc1a22c35d7 polyglot-2.0.4.tar.gz
+"
diff --git a/testing/polyml/APKBUILD b/testing/polyml/APKBUILD
deleted file mode 100644
index 5bd1708a8c7..00000000000
--- a/testing/polyml/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=polyml
-pkgver=5.8
-pkgrel=1
-pkgdesc="ML97 compatible Standard ML implementation"
-url="https://www.polyml.org/"
-arch="all !aarch64 !ppc64le !s390x !mips !mips64"
-license="LGPL-2.1-only"
-makedepends="gmp-dev libffi-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/polyml/polyml/archive/v$pkgver.tar.gz
- fix-build-libffi-3.3.patch
- "
-
-# FIXME: https://github.com/polyml/polyml/issues/110
-case "$CARCH" in
-armhf|armv7) options="!check" ;;
-esac
-
-build() {
- # Compiling poly as a dynamically linked position independent
- # executable causes it to segfault. Since Alpine's GCC enables
- # PIE by default we need to explicitly disable it.
- CFLAGS="$CFLAGS -no-pie" ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --with-system-libffi \
- --with-gmp
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="50baed79b50b14bd87acc637de93fd6d0f05e61fe0f03682a12a1d2c5f382313488d48f84b49ad915b01acc5a3a5769fb05fcaa7b24499c56402ddd3ba393930 polyml-5.8.tar.gz
-cbd4d2ac5ec9bcbd5e68a5d73370f9ae539f185a1f62bfee54f43c062c77bece16f8f60758c72eb25a51be569bd800af230fd45a5ba5640abf79f7814b12d36e fix-build-libffi-3.3.patch"
diff --git a/testing/polyml/fix-build-libffi-3.3.patch b/testing/polyml/fix-build-libffi-3.3.patch
deleted file mode 100644
index c0d1a990ef4..00000000000
--- a/testing/polyml/fix-build-libffi-3.3.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/libpolyml/polyffi.cpp b/libpolyml/polyffi.cpp
-index 5424dd8..a11987f 100644
---- a/libpolyml/polyffi.cpp
-+++ b/libpolyml/polyffi.cpp
-@@ -110,9 +110,10 @@ static struct _abiTable { const char *abiName; ffi_abi abiCode; } abiTable[] =
- {"ms_cdecl", FFI_MS_CDECL},
- #elif defined(X86_WIN64)
- {"win64", FFI_WIN64},
-+#elif defined(X86_64)
-+ {"unix64", FFI_UNIX64},
- #elif defined(X86_ANY)
- {"sysv", FFI_SYSV},
-- {"unix64", FFI_UNIX64},
- #endif
- { "default", FFI_DEFAULT_ABI}
- };
diff --git a/testing/pomo/APKBUILD b/testing/pomo/APKBUILD
new file mode 100644
index 00000000000..b7376a9ff62
--- /dev/null
+++ b/testing/pomo/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=pomo
+pkgver=0.8.1
+pkgrel=15
+pkgdesc="Pomodoro CLI"
+url="https://kevinschoon.github.io/pomo/"
+license="MIT"
+arch="all"
+makedepends="go scdoc sqlite-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/kevinschoon/pomo/archive/$pkgver/pomo-$pkgver.tar.gz"
+
+export GOFLAGS="$GOFLAGS -trimpath -mod=readonly -modcacherw -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags "-X github.com/kevinschoon/pomo/pkg/internal.Version=$pkgver" \
+ ./cmd/pomo
+ scdoc <man/pomo.1.scd >pomo.1
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 pomo -t "$pkgdir"/usr/bin/
+ install -Dm644 pomo.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+53b9608efce6a0820fc9fa3bfb9af406c23f1457bba2113c83b2fe714bff6e6e4d956533691ba7de8ada4db38a37527bed47692524128d275be3ec9a8b9bf758 pomo-0.8.1.tar.gz
+"
diff --git a/testing/pongoos-loader/APKBUILD b/testing/pongoos-loader/APKBUILD
new file mode 100644
index 00000000000..a5c28cdc405
--- /dev/null
+++ b/testing/pongoos-loader/APKBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Jonas Heinrich <onny@project-insanity.org>
+pkgname=pongoos-loader
+pkgver=0_git20210704
+pkgrel=1
+pkgdesc="Loader for Android on iPhone"
+url="https://github.com/checkra1n/pongoOS"
+arch="all"
+license="MIT"
+depends="python3 py3-usb"
+options="!check" # upstream does not provide tests
+_commit="217eae6f2c540e4b6950c70a2c0d3dcf574d95b2"
+
+source="pongoOS-$_commit.tar.gz::https://github.com/checkra1n/pongoOS/archive/$_commit.tar.gz"
+builddir="$srcdir"/pongoOS-$_commit/scripts
+
+package() {
+ install -Dm755 load_linux.py "$pkgdir"/usr/bin/pongoos-loader
+}
+
+sha512sums="9c3691ca5cba94019408e07debf0acbe7fe914022741b5fe40dbe5481c191da87a0fdb811f760582e37422504528b185adb8a5b31ba1d63225e0bb1ca9132d3e pongoOS-217eae6f2c540e4b6950c70a2c0d3dcf574d95b2.tar.gz"
diff --git a/testing/popeye/APKBUILD b/testing/popeye/APKBUILD
new file mode 100644
index 00000000000..7ff54a325ce
--- /dev/null
+++ b/testing/popeye/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=popeye
+pkgver=0.20.4
+pkgrel=2
+pkgdesc="Kubernetes cluster resource sanitizer"
+url="https://popeyecli.io/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/derailed/popeye/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ GOLDFLAGS="
+ -X github.com/derailed/popeye/cmd.version=v$pkgver
+ -X github.com/derailed/popeye/cmd.commit=AlpineLinux
+ -X github.com/derailed/popeye/cmd.date=$(date +%FT%T%Z)
+ "
+ go build -v -tags netgo -o $pkgname -ldflags "$GOLDFLAGS"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+3f5ba8875dd2b7e005472ade518ae8f14550c6f292619550fbd0b2065ef635586d75910517a9a6efb066232297756a0fa239e6ca163532a9d413458833f2cbd8 popeye-0.20.4.tar.gz
+"
diff --git a/testing/portmidi/00_cmake.patch b/testing/portmidi/00_cmake.patch
deleted file mode 100644
index af8062c0ef9..00000000000
--- a/testing/portmidi/00_cmake.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/pm_dylib/CMakeLists.txt
-+++ b/pm_dylib/CMakeLists.txt
-@@ -115,13 +115,14 @@
-
- add_library(portmidi-dynamic SHARED ${LIBSRC})
- set_target_properties(portmidi-dynamic PROPERTIES OUTPUT_NAME "portmidi")
-+set_target_properties(portmidi-dynamic PROPERTIES VERSION "0.0.0" SOVERSION "0")
- target_link_libraries(portmidi-dynamic ${PM_NEEDED_LIBS})
-
- # install the libraries (Linux and Mac OS X command line)
- if(UNIX)
- INSTALL(TARGETS portmidi-dynamic
-- LIBRARY DESTINATION /usr/local/lib
-- ARCHIVE DESTINATION /usr/local/lib)
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
- INSTALL(FILES ../pm_common/portmidi.h ../porttime/porttime.h
-- DESTINATION /usr/local/include)
-+ DESTINATION include)
- endif(UNIX)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4919b78..4067a5a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -4,6 +4,8 @@
-
- cmake_minimum_required(VERSION 2.6)
-
-+include(GNUInstallDirs)
-+
- if(UNIX)
- # allow user to set Release or Debug
- set(CMAKE_BUILD_TYPE Release CACHE STRING
diff --git a/testing/portmidi/01_pmlinux.patch b/testing/portmidi/01_pmlinux.patch
deleted file mode 100644
index e37be1af943..00000000000
--- a/testing/portmidi/01_pmlinux.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: portmidi-200/pm_linux/pmlinux.c
-===================================================================
---- portmidi-200.orig/pm_linux/pmlinux.c 2010-02-14 17:35:40.000000000 -0500
-+++ portmidi-200/pm_linux/pmlinux.c 2010-02-14 17:36:17.000000000 -0500
-@@ -34,10 +34,10 @@
- * devices.
- */
- #ifdef PMALSA
-- pm_linuxalsa_init();
-+ return pm_linuxalsa_init();
- #endif
- #ifdef PMNULL
-- pm_linuxnull_init();
-+ return pm_linuxnull_init();
- #endif
- // this is set when we return to Pm_Initialize, but we need it
- // now in order to (successfully) call Pm_CountDevices()
diff --git a/testing/portmidi/02_pmlinuxalsa.patch b/testing/portmidi/02_pmlinuxalsa.patch
deleted file mode 100644
index 2464475180c..00000000000
--- a/testing/portmidi/02_pmlinuxalsa.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- portmidi~/pm_linux/pmlinuxalsa.c 2009-09-16 05:41:04.000000000 +0200
-+++ portmidi/pm_linux/pmlinuxalsa.c 2009-09-16 05:45:29.000000000 +0200
-@@ -242,8 +242,8 @@
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
- if (!desc) return pmBadPtr;
-
-- if (pm_hosterror = snd_seq_disconnect_to(seq, desc->this_port,
-- desc->client, desc->port)) {
-+ if ((pm_hosterror = snd_seq_disconnect_to(seq, desc->this_port,
-+ desc->client, desc->port))) {
- // if there's an error, try to delete the port anyway, but don't
- // change the pm_hosterror value so we retain the first error
- snd_seq_delete_port(seq, desc->this_port);
-@@ -332,8 +332,8 @@
- {
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
- if (!desc) return pmBadPtr;
-- if (pm_hosterror = snd_seq_disconnect_from(seq, desc->this_port,
-- desc->client, desc->port)) {
-+ if ((pm_hosterror = snd_seq_disconnect_from(seq, desc->this_port,
-+ desc->client, desc->port))) {
- snd_seq_delete_port(seq, desc->this_port); /* try to close port */
- } else {
- pm_hosterror = snd_seq_delete_port(seq, desc->this_port);
-@@ -606,7 +606,7 @@
- case SND_SEQ_EVENT_SYSEX: {
- const BYTE *ptr = (const BYTE *) ev->data.ext.ptr;
- /* assume there is one sysex byte to process */
-- pm_read_bytes(midi, ptr, ev->data.ext.len, timestamp);
-+ pm_read_bytes(midi, (unsigned char*)ptr, ev->data.ext.len, timestamp);
- break;
- }
- }
diff --git a/testing/portmidi/03_pm_test_Makefile.patch b/testing/portmidi/03_pm_test_Makefile.patch
deleted file mode 100644
index b1a2c380ba6..00000000000
--- a/testing/portmidi/03_pm_test_Makefile.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- portmidi-20041117.orig/pm_test/debian/Makefile
-+++ portmidi-20041117/pm_test/debian/Makefile
-@@ -0,0 +1,36 @@
-+# For debugging, define PM_CHECK_ERRORS
-+PMFLAGS = -DPM_CHECK_ERRORS
-+# Use this for linux alsa (0.9x) version
-+ALSALIB = -lasound
-+pmlib = -lportmidi
-+ptlib = -lporttime
-+VFLAGS = -DPMALSA
-+
-+CC = gcc $(CFLAGS) $(VFLAGS) $(PMFLAGS) -g
-+
-+all: simple_test sysex midithread latency midithru mm
-+
-+simple_test: simple_test.o
-+ $(CC) simple_test.c -o simple_test $(pmlib) $(ptlib) $(ALSALIB)
-+
-+sysex: sysex.o
-+ $(CC) sysex.c -o sysex $(pmlib) $(ptlib) $(ALSALIB)
-+
-+midithread: midithread.o
-+ $(CC) midithread.c -o midithread \
-+ $(pmlib) $(ptlib) $(ALSALIB)
-+
-+latency: latency.o
-+ $(CC) latency.c -o latency $(pmlib) $(ptlib) \
-+ $(ALSALIB) -lpthread -lm
-+
-+midithru: midithru.o
-+ $(CC) midithru.c -o midithru $(pmlib) $(ptlib) \
-+ $(ALSALIB) -lpthread -lm
-+
-+mm: mm.o
-+ $(CC) mm.c -o mm $(pmlib) $(ptlib) \
-+ $(ALSALIB) -lpthread -lm
-+
-+clean:
-+ rm -f *.o mm midithru latency midithread sysex simple_test
diff --git a/testing/portmidi/11-pmlinuxalsa.patch b/testing/portmidi/11-pmlinuxalsa.patch
deleted file mode 100644
index eb98a79df07..00000000000
--- a/testing/portmidi/11-pmlinuxalsa.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Subject: Prevent SIGSEGV on handling events for already closed devices.
-Bug: http://sourceforge.net/apps/trac/portmedia/ticket/3
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=695842
-Bug-Ubuntu: https://launchpad.net/bugs/1073484
-Applied-Upstream: yes
----
- pm_linux/pmlinuxalsa.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
---- portmidi-200.orig/pm_linux/pmlinuxalsa.c
-+++ portmidi-200/pm_linux/pmlinuxalsa.c
-@@ -193,6 +193,7 @@ static PmError alsa_write_byte(PmInterna
- snd_seq_event_t ev;
- int err;
-
-+ if (!desc) return pmBadPtr;
- snd_seq_ev_clear(&ev);
- if (snd_midi_event_encode_byte(desc->parser, byte, &ev) == 1) {
- snd_seq_ev_set_dest(&ev, desc->client, desc->port);
-@@ -339,6 +340,7 @@ static PmError alsa_in_close(PmInternal
- pm_hosterror = snd_seq_delete_port(seq, desc->this_port);
- }
- alsa_unuse_queue();
-+ midi->descriptor = NULL;
- pm_free(desc);
- if (pm_hosterror) {
- get_alsa_error_text(pm_hosterror_text, PM_HOST_ERROR_MSG_LEN,
-@@ -433,6 +435,7 @@ static PmError alsa_write(PmInternal *mi
- static PmError alsa_write_flush(PmInternal *midi, PmTimestamp timestamp)
- {
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
-+ if (!desc) return pmBadPtr;
- VERBOSE printf("snd_seq_drain_output: 0x%x\n", (unsigned int) seq);
- desc->error = snd_seq_drain_output(seq);
- if (desc->error < 0) return pmHostError;
-@@ -448,6 +451,7 @@ static PmError alsa_write_short(PmIntern
- PmMessage msg = event->message;
- int i;
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
-+ if (!desc) return pmBadPtr;
- for (i = 0; i < bytes; i++) {
- unsigned char byte = msg;
- VERBOSE printf("sending 0x%x\n", byte);
-@@ -481,6 +485,10 @@ static void handle_event(snd_seq_event_t
- {
- int device_id = ev->dest.port;
- PmInternal *midi = descriptors[device_id].internalDescriptor;
-+ /* The device we received events for might have been closed before we
-+ processed them. */
-+ if (!midi)
-+ return;
- PmEvent pm_ev;
- PmTimeProcPtr time_proc = midi->time_proc;
- PmTimestamp timestamp;
-@@ -650,6 +658,7 @@ static PmError alsa_poll(PmInternal *mid
- static unsigned int alsa_has_host_error(PmInternal *midi)
- {
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
-+ if (!desc) return 0;
- return desc->error;
- }
-
-@@ -657,6 +666,7 @@ static unsigned int alsa_has_host_error(
- static void alsa_get_host_error(PmInternal *midi, char *msg, unsigned int len)
- {
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
-+ if (!desc) return;
- int err = (pm_hosterror || desc->error);
- get_alsa_error_text(msg, len, err);
- }
diff --git a/testing/portmidi/13-disablejni.patch b/testing/portmidi/13-disablejni.patch
deleted file mode 100644
index cddabe14e06..00000000000
--- a/testing/portmidi/13-disablejni.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-diff --git a/pm_java/CMakeLists.txt b/pm_java/CMakeLists.txt
-index a350620..b491bbd 100644
---- a/pm_java/CMakeLists.txt
-+++ b/pm_java/CMakeLists.txt
-@@ -1,6 +1,7 @@
- # pm_java
-
- if(UNIX)
-+else (UNIX)
- if(APPLE)
- # java not dealt with in CMake -- see pm_mac/pm_mac.xcodeproj
- else(APPLE)
-diff --git a/pm_common/CMakeLists.txt b/pm_common/CMakeLists.txt
-index e171047..68ac212 100644
---- a/pm_common/CMakeLists.txt
-+++ b/pm_common/CMakeLists.txt
-@@ -66,19 +66,19 @@ if(UNIX)
- set(JAVA_INCLUDE_PATHS ${JAVAVM_LIB}/Headers)
- message(STATUS "SYSROOT: " ${CMAKE_OSX_SYSROOT})
- else(APPLE)
-- # LINUX settings...
-- include(FindJNI)
-- message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
-- message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
-- message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
-- message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
-- set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
-- # libjvm.so is found relative to JAVA_INCLUDE_PATH:
-- set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
-+# # LINUX settings...
-+# include(FindJNI)
-+# message(STATUS "JAVA_JVM_LIB_PATH is " ${JAVA_JVM_LIB_PATH})
-+# message(STATUS "JAVA_INCLUDE_PATH is " ${JAVA_INCLUDE_PATH})
-+# message(STATUS "JAVA_INCLUDE_PATH2 is " ${JAVA_INCLUDE_PATH2})
-+# message(STATUS "JAVA_JVM_LIBRARY is " ${JAVA_JVM_LIBRARY})
-+# set(JAVA_INCLUDE_PATHS ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
-+# # libjvm.so is found relative to JAVA_INCLUDE_PATH:
-+# set(JAVAVM_LIB ${JAVA_JVM_LIBRARY}/libjvm.so)
-
- set(LINUXSRC pmlinuxalsa pmlinux finddefault)
- prepend_path(LIBSRC ../pm_linux/ ${LINUXSRC})
-- list(APPEND LIBSRC ../porttime/ptlinux)
-+ #list(APPEND LIBSRC ../porttime/ptlinux)
-
- set(PM_NEEDED_LIBS pthread asound)
- endif(APPLE)
-@@ -104,24 +104,24 @@ set(JNI_EXTRA_LIBS ${PM_NEEDED_LIBS} ${JAVA_JVM_LIBRARY})
- # this completes the list of library sources by adding shared code
- list(APPEND LIBSRC pmutil portmidi)
-
--# now add the shared files to make the complete list of library sources
--add_library(portmidi-static ${LIBSRC})
--set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi_s")
-+## now add the shared files to make the complete list of library sources
-+add_library(portmidi-static STATIC ${LIBSRC})
-+set_target_properties(portmidi-static PROPERTIES OUTPUT_NAME "portmidi")
- target_link_libraries(portmidi-static ${PM_NEEDED_LIBS})
--
--# define the jni library
--include_directories(${JAVA_INCLUDE_PATHS})
--
--set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
--add_library(pmjni SHARED ${JNISRC})
--target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
--set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
--
-+#
-+## define the jni library
-+#include_directories(${JAVA_INCLUDE_PATHS})
-+#
-+#set(JNISRC ${LIBSRC} ../pm_java/pmjni/pmjni.c)
-+#add_library(pmjni SHARED ${JNISRC})
-+#target_link_libraries(pmjni ${JNI_EXTRA_LIBS})
-+#set_target_properties(pmjni PROPERTIES EXECUTABLE_EXTENSION "jnilib")
-+#
- # install the libraries (Linux and Mac OS X command line)
- if(UNIX)
-- INSTALL(TARGETS portmidi-static pmjni
-- LIBRARY DESTINATION /usr/local/lib
-- ARCHIVE DESTINATION /usr/local/lib)
-+ INSTALL(TARGETS portmidi-static
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
- # .h files installed by pm_dylib/CMakeLists.txt, so don't need them here
- # INSTALL(FILES portmidi.h ../porttime/porttime.h
- # DESTINATION /usr/local/include)
diff --git a/testing/portmidi/20-movetest.patch b/testing/portmidi/20-movetest.patch
deleted file mode 100644
index 69d65b26157..00000000000
--- a/testing/portmidi/20-movetest.patch
+++ /dev/null
@@ -1,1001 +0,0 @@
---- a/pm_test/CMakeLists.txt
-+++ b/pm_test/CMakeLists.txt
-@@ -12,11 +12,11 @@
-
- macro(make_a_test name)
- add_executable(${name} ${name}.c)
-- target_link_libraries(${name} portmidi-static ${PM_NEEDED_LIBS})
-- add_dependencies(${name} portmidi-static)
-+ target_link_libraries(${name} portmidi-dynamic ${PM_NEEDED_LIBS})
-+ add_dependencies(${name} portmidi-dynamic)
- endmacro(make_a_test)
-
--make_a_test(test)
-+make_a_test(simple_test)
- make_a_test(midithread)
- make_a_test(midithru)
- make_a_test(sysex)
---- /dev/null
-+++ b/pm_test/simple_test.c
-@@ -0,0 +1,489 @@
-+#include "portmidi.h"
-+#include "porttime.h"
-+#include "stdlib.h"
-+#include "stdio.h"
-+#include "string.h"
-+#include "assert.h"
-+
-+#define INPUT_BUFFER_SIZE 100
-+#define OUTPUT_BUFFER_SIZE 0
-+#define DRIVER_INFO NULL
-+#define TIME_PROC ((int32_t (*)(void *)) Pt_Time)
-+#define TIME_INFO NULL
-+#define TIME_START Pt_Start(1, 0, 0) /* timer started w/millisecond accuracy */
-+
-+#define STRING_MAX 80 /* used for console input */
-+
-+int32_t latency = 0;
-+
-+/* crash the program to test whether midi ports are closed */
-+/**/
-+void doSomethingReallyStupid() {
-+ int * tmp = NULL;
-+ *tmp = 5;
-+}
-+
-+
-+/* exit the program without any explicit cleanup */
-+/**/
-+void doSomethingStupid() {
-+ assert(0);
-+}
-+
-+
-+/* read a number from console */
-+/**/
-+int get_number(char *prompt)
-+{
-+ char line[STRING_MAX];
-+ int n = 0, i;
-+ printf("%s\n", prompt);
-+ while (n != 1) {
-+ n = scanf("%d", &i);
-+ fgets(line, STRING_MAX, stdin);
-+
-+ }
-+ return i;
-+}
-+
-+
-+/*
-+ * the somethingStupid parameter can be set to simulate a program crash.
-+ * We want PortMidi to close Midi ports automatically in the event of a
-+ * crash because Windows does not (and this may cause an OS crash)
-+ */
-+void main_test_input(unsigned int somethingStupid) {
-+ PmStream * midi;
-+ PmError status, length;
-+ PmEvent buffer[1];
-+ int num = 10;
-+ int i = get_number("Type input number: ");
-+ /* It is recommended to start timer before Midi; otherwise, PortMidi may
-+ start the timer with its (default) parameters
-+ */
-+ TIME_START;
-+
-+ /* open input device */
-+ Pm_OpenInput(&midi,
-+ i,
-+ DRIVER_INFO,
-+ INPUT_BUFFER_SIZE,
-+ TIME_PROC,
-+ TIME_INFO);
-+
-+ printf("Midi Input opened. Reading %d Midi messages...\n", num);
-+ Pm_SetFilter(midi, PM_FILT_ACTIVE | PM_FILT_CLOCK | PM_FILT_SYSEX);
-+ /* empty the buffer after setting filter, just in case anything
-+ got through */
-+ while (Pm_Poll(midi)) {
-+ Pm_Read(midi, buffer, 1);
-+ }
-+ /* now start paying attention to messages */
-+ i = 0; /* count messages as they arrive */
-+ while (i < num) {
-+ status = Pm_Poll(midi);
-+ if (status == TRUE) {
-+ length = Pm_Read(midi,buffer, 1);
-+ if (length > 0) {
-+ printf("Got message %d: time %ld, %2lx %2lx %2lx\n",
-+ i,
-+ (long) buffer[0].timestamp,
-+ (long) Pm_MessageStatus(buffer[0].message),
-+ (long) Pm_MessageData1(buffer[0].message),
-+ (long) Pm_MessageData2(buffer[0].message));
-+ i++;
-+ } else {
-+ assert(0);
-+ }
-+ }
-+ /* simulate crash if somethingStupid is 1 or 2 */
-+ if ((i > (num/2)) && (somethingStupid == 1)) {
-+ doSomethingStupid();
-+ } else if ((i > (num/2)) && (somethingStupid == 2)) {
-+ doSomethingReallyStupid();
-+ }
-+ }
-+
-+ /* close device (this not explicitly needed in most implementations) */
-+ printf("ready to close...");
-+
-+ Pm_Close(midi);
-+ printf("done closing...");
-+}
-+
-+
-+
-+void main_test_output() {
-+ PmStream * midi;
-+ char line[80];
-+ int32_t off_time;
-+ int chord[] = { 60, 67, 76, 83, 90 };
-+ #define chord_size 5
-+ PmEvent buffer[chord_size];
-+ PmTimestamp timestamp;
-+
-+ /* determine which output device to use */
-+ int i = get_number("Type output number: ");
-+
-+ /* It is recommended to start timer before PortMidi */
-+ TIME_START;
-+
-+ /* open output device -- since PortMidi avoids opening a timer
-+ when latency is zero, we will pass in a NULL timer pointer
-+ for that case. If PortMidi tries to access the time_proc,
-+ we will crash, so this test will tell us something. */
-+ Pm_OpenOutput(&midi,
-+ i,
-+ DRIVER_INFO,
-+ OUTPUT_BUFFER_SIZE,
-+ (latency == 0 ? NULL : TIME_PROC),
-+ (latency == 0 ? NULL : TIME_INFO),
-+ latency);
-+ printf("Midi Output opened with %ld ms latency.\n", (long) latency);
-+
-+ /* output note on/off w/latency offset; hold until user prompts */
-+ printf("ready to send program 1 change... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+ /* if we were writing midi for immediate output, we could always use
-+ timestamps of zero, but since we may be writing with latency, we
-+ will explicitly set the timestamp to "now" by getting the time.
-+ The source of timestamps should always correspond to the TIME_PROC
-+ and TIME_INFO parameters used in Pm_OpenOutput(). */
-+ buffer[0].timestamp = TIME_PROC(TIME_INFO);
-+ /* Send a program change to increase the chances we will hear notes */
-+ /* Program 0 is usually a piano, but you can change it here: */
-+#define PROGRAM 0
-+ buffer[0].message = Pm_Message(0xC0, PROGRAM, 0);
-+ Pm_Write(midi, buffer, 1);
-+
-+ printf("ready to note-on... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+ buffer[0].timestamp = TIME_PROC(TIME_INFO);
-+ buffer[0].message = Pm_Message(0x90, 60, 100);
-+ Pm_Write(midi, buffer, 1);
-+ printf("ready to note-off... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+ buffer[0].timestamp = TIME_PROC(TIME_INFO);
-+ buffer[0].message = Pm_Message(0x90, 60, 0);
-+ Pm_Write(midi, buffer, 1);
-+
-+ /* output short note on/off w/latency offset; hold until user prompts */
-+ printf("ready to note-on (short form)... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+ Pm_WriteShort(midi, TIME_PROC(TIME_INFO),
-+ Pm_Message(0x90, 60, 100));
-+ printf("ready to note-off (short form)... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+ Pm_WriteShort(midi, TIME_PROC(TIME_INFO),
-+ Pm_Message(0x90, 60, 0));
-+
-+ /* output several note on/offs to test timing.
-+ Should be 1s between notes */
-+ printf("chord will arpeggiate if latency > 0\n");
-+ printf("ready to chord-on/chord-off... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+ timestamp = TIME_PROC(TIME_INFO);
-+ for (i = 0; i < chord_size; i++) {
-+ buffer[i].timestamp = timestamp + 1000 * i;
-+ buffer[i].message = Pm_Message(0x90, chord[i], 100);
-+ }
-+ Pm_Write(midi, buffer, chord_size);
-+
-+ off_time = timestamp + 1000 + chord_size * 1000;
-+ while (TIME_PROC(TIME_INFO) < off_time)
-+ /* busy wait */;
-+ for (i = 0; i < chord_size; i++) {
-+ buffer[i].timestamp = timestamp + 1000 * i;
-+ buffer[i].message = Pm_Message(0x90, chord[i], 0);
-+ }
-+ Pm_Write(midi, buffer, chord_size);
-+
-+ /* close device (this not explicitly needed in most implementations) */
-+ printf("ready to close and terminate... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+
-+ Pm_Close(midi);
-+ Pm_Terminate();
-+ printf("done closing and terminating...\n");
-+}
-+
-+
-+void main_test_both()
-+{
-+ int i = 0;
-+ int in, out;
-+ PmStream * midi, * midiOut;
-+ PmEvent buffer[1];
-+ PmError status, length;
-+ int num = 10;
-+
-+ in = get_number("Type input number: ");
-+ out = get_number("Type output number: ");
-+
-+ /* In is recommended to start timer before PortMidi */
-+ TIME_START;
-+
-+ Pm_OpenOutput(&midiOut,
-+ out,
-+ DRIVER_INFO,
-+ OUTPUT_BUFFER_SIZE,
-+ TIME_PROC,
-+ TIME_INFO,
-+ latency);
-+ printf("Midi Output opened with %ld ms latency.\n", (long) latency);
-+ /* open input device */
-+ Pm_OpenInput(&midi,
-+ in,
-+ DRIVER_INFO,
-+ INPUT_BUFFER_SIZE,
-+ TIME_PROC,
-+ TIME_INFO);
-+ printf("Midi Input opened. Reading %d Midi messages...\n",num);
-+ Pm_SetFilter(midi, PM_FILT_ACTIVE | PM_FILT_CLOCK);
-+ /* empty the buffer after setting filter, just in case anything
-+ got through */
-+ while (Pm_Poll(midi)) {
-+ Pm_Read(midi, buffer, 1);
-+ }
-+ i = 0;
-+ while (i < num) {
-+ status = Pm_Poll(midi);
-+ if (status == TRUE) {
-+ length = Pm_Read(midi,buffer,1);
-+ if (length > 0) {
-+ Pm_Write(midiOut, buffer, 1);
-+ printf("Got message %d: time %ld, %2lx %2lx %2lx\n",
-+ i,
-+ (long) buffer[0].timestamp,
-+ (long) Pm_MessageStatus(buffer[0].message),
-+ (long) Pm_MessageData1(buffer[0].message),
-+ (long) Pm_MessageData2(buffer[0].message));
-+ i++;
-+ } else {
-+ assert(0);
-+ }
-+ }
-+ }
-+
-+ /* close midi devices */
-+ Pm_Close(midi);
-+ Pm_Close(midiOut);
-+ Pm_Terminate();
-+}
-+
-+
-+/* main_test_stream exercises windows winmm API's stream mode */
-+/* The winmm stream mode is used for latency>0, and sends
-+ timestamped messages. The timestamps are relative (delta)
-+ times, whereas PortMidi times are absolute. Since peculiar
-+ things happen when messages are not always sent in advance,
-+ this function allows us to exercise the system and test it.
-+ */
-+void main_test_stream() {
-+ PmStream * midi;
-+ char line[80];
-+ PmEvent buffer[16];
-+
-+ /* determine which output device to use */
-+ int i = get_number("Type output number: ");
-+
-+ latency = 500; /* ignore LATENCY for this test and
-+ fix the latency at 500ms */
-+
-+ /* It is recommended to start timer before PortMidi */
-+ TIME_START;
-+
-+ /* open output device */
-+ Pm_OpenOutput(&midi,
-+ i,
-+ DRIVER_INFO,
-+ OUTPUT_BUFFER_SIZE,
-+ TIME_PROC,
-+ TIME_INFO,
-+ latency);
-+ printf("Midi Output opened with %ld ms latency.\n", (long) latency);
-+
-+ /* output note on/off w/latency offset; hold until user prompts */
-+ printf("ready to send output... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+
-+ /* if we were writing midi for immediate output, we could always use
-+ timestamps of zero, but since we may be writing with latency, we
-+ will explicitly set the timestamp to "now" by getting the time.
-+ The source of timestamps should always correspond to the TIME_PROC
-+ and TIME_INFO parameters used in Pm_OpenOutput(). */
-+ buffer[0].timestamp = TIME_PROC(TIME_INFO);
-+ buffer[0].message = Pm_Message(0xC0, 0, 0);
-+ buffer[1].timestamp = buffer[0].timestamp;
-+ buffer[1].message = Pm_Message(0x90, 60, 100);
-+ buffer[2].timestamp = buffer[0].timestamp + 1000;
-+ buffer[2].message = Pm_Message(0x90, 62, 100);
-+ buffer[3].timestamp = buffer[0].timestamp + 2000;
-+ buffer[3].message = Pm_Message(0x90, 64, 100);
-+ buffer[4].timestamp = buffer[0].timestamp + 3000;
-+ buffer[4].message = Pm_Message(0x90, 66, 100);
-+ buffer[5].timestamp = buffer[0].timestamp + 4000;
-+ buffer[5].message = Pm_Message(0x90, 60, 0);
-+ buffer[6].timestamp = buffer[0].timestamp + 4000;
-+ buffer[6].message = Pm_Message(0x90, 62, 0);
-+ buffer[7].timestamp = buffer[0].timestamp + 4000;
-+ buffer[7].message = Pm_Message(0x90, 64, 0);
-+ buffer[8].timestamp = buffer[0].timestamp + 4000;
-+ buffer[8].message = Pm_Message(0x90, 66, 0);
-+
-+ Pm_Write(midi, buffer, 9);
-+#ifdef SEND8
-+ /* Now, we're ready for the real test.
-+ Play 4 notes at now, now+500, now+1000, and now+1500
-+ Then wait until now+2000.
-+ Play 4 more notes as before.
-+ We should hear 8 evenly spaced notes. */
-+ now = TIME_PROC(TIME_INFO);
-+ for (i = 0; i < 4; i++) {
-+ buffer[i * 2].timestamp = now + (i * 500);
-+ buffer[i * 2].message = Pm_Message(0x90, 60, 100);
-+ buffer[i * 2 + 1].timestamp = now + 250 + (i * 500);
-+ buffer[i * 2 + 1].message = Pm_Message(0x90, 60, 0);
-+ }
-+ Pm_Write(midi, buffer, 8);
-+
-+ while (Pt_Time() < now + 2500)
-+ /* busy wait */;
-+ /* now we are 500 ms behind schedule, but since the latency
-+ is 500, the delay should not be audible */
-+ now += 2000;
-+ for (i = 0; i < 4; i++) {
-+ buffer[i * 2].timestamp = now + (i * 500);
-+ buffer[i * 2].message = Pm_Message(0x90, 60, 100);
-+ buffer[i * 2 + 1].timestamp = now + 250 + (i * 500);
-+ buffer[i * 2 + 1].message = Pm_Message(0x90, 60, 0);
-+ }
-+ Pm_Write(midi, buffer, 8);
-+#endif
-+ /* close device (this not explicitly needed in most implementations) */
-+ printf("ready to close and terminate... (type RETURN):");
-+ fgets(line, STRING_MAX, stdin);
-+
-+ Pm_Close(midi);
-+ Pm_Terminate();
-+ printf("done closing and terminating...\n");
-+}
-+
-+
-+void show_usage()
-+{
-+ printf("Usage: test [-h] [-l latency-in-ms]\n");
-+ exit(0);
-+}
-+
-+int main(int argc, char *argv[])
-+{
-+ int default_in;
-+ int default_out;
-+ int i = 0, n = 0;
-+ char line[STRING_MAX];
-+ int test_input = 0, test_output = 0, test_both = 0, somethingStupid = 0;
-+ int stream_test = 0;
-+ int latency_valid = FALSE;
-+
-+ if (sizeof(void *) == 8)
-+ printf("Apparently this is a 64-bit machine.\n");
-+ else if (sizeof(void *) == 4)
-+ printf ("Apparently this is a 32-bit machine.\n");
-+
-+ for (i = 1; i < argc; i++) {
-+ if (strcmp(argv[i], "-h") == 0) {
-+ show_usage();
-+ } else if (strcmp(argv[i], "-l") == 0 && (i + 1 < argc)) {
-+ i = i + 1;
-+ latency = atoi(argv[i]);
-+ printf("Latency will be %ld\n", (long) latency);
-+ latency_valid = TRUE;
-+ } else {
-+ show_usage();
-+ }
-+ }
-+
-+ while (!latency_valid) {
-+ int lat; // declared int to match "%d"
-+ printf("Latency in ms: ");
-+ if (scanf("%d", &lat) == 1) {
-+ latency = (int32_t) lat; // coerce from "%d" to known size
-+ latency_valid = TRUE;
-+ }
-+ }
-+
-+ /* determine what type of test to run */
-+ printf("begin portMidi test...\n");
-+ printf("%s%s%s%s%s",
-+ "enter your choice...\n 1: test input\n",
-+ " 2: test input (fail w/assert)\n",
-+ " 3: test input (fail w/NULL assign)\n",
-+ " 4: test output\n 5: test both\n",
-+ " 6: stream test\n");
-+ while (n != 1) {
-+ n = scanf("%d", &i);
-+ fgets(line, STRING_MAX, stdin);
-+ switch(i) {
-+ case 1:
-+ test_input = 1;
-+ break;
-+ case 2:
-+ test_input = 1;
-+ somethingStupid = 1;
-+ break;
-+ case 3:
-+ test_input = 1;
-+ somethingStupid = 2;
-+ break;
-+ case 4:
-+ test_output = 1;
-+ break;
-+ case 5:
-+ test_both = 1;
-+ break;
-+ case 6:
-+ stream_test = 1;
-+ break;
-+ default:
-+ printf("got %d (invalid input)\n", n);
-+ break;
-+ }
-+ }
-+
-+ /* list device information */
-+ default_in = Pm_GetDefaultInputDeviceID();
-+ default_out = Pm_GetDefaultOutputDeviceID();
-+ for (i = 0; i < Pm_CountDevices(); i++) {
-+ char *deflt;
-+ const PmDeviceInfo *info = Pm_GetDeviceInfo(i);
-+ if (((test_input | test_both) & info->input) |
-+ ((test_output | test_both | stream_test) & info->output)) {
-+ printf("%d: %s, %s", i, info->interf, info->name);
-+ if (info->input) {
-+ deflt = (i == default_in ? "default " : "");
-+ printf(" (%sinput)", deflt);
-+ }
-+ if (info->output) {
-+ deflt = (i == default_out ? "default " : "");
-+ printf(" (%soutput)", deflt);
-+ }
-+ printf("\n");
-+ }
-+ }
-+
-+ /* run test */
-+ if (stream_test) {
-+ main_test_stream();
-+ } else if (test_input) {
-+ main_test_input(somethingStupid);
-+ } else if (test_output) {
-+ main_test_output();
-+ } else if (test_both) {
-+ main_test_both();
-+ }
-+
-+ printf("finished portMidi test...type ENTER to quit...");
-+ fgets(line, STRING_MAX, stdin);
-+ return 0;
-+}
---- a/pm_test/test.c
-+++ /dev/null
-@@ -1,489 +0,0 @@
--#include "portmidi.h"
--#include "porttime.h"
--#include "stdlib.h"
--#include "stdio.h"
--#include "string.h"
--#include "assert.h"
--
--#define INPUT_BUFFER_SIZE 100
--#define OUTPUT_BUFFER_SIZE 0
--#define DRIVER_INFO NULL
--#define TIME_PROC ((int32_t (*)(void *)) Pt_Time)
--#define TIME_INFO NULL
--#define TIME_START Pt_Start(1, 0, 0) /* timer started w/millisecond accuracy */
--
--#define STRING_MAX 80 /* used for console input */
--
--int32_t latency = 0;
--
--/* crash the program to test whether midi ports are closed */
--/**/
--void doSomethingReallyStupid() {
-- int * tmp = NULL;
-- *tmp = 5;
--}
--
--
--/* exit the program without any explicit cleanup */
--/**/
--void doSomethingStupid() {
-- assert(0);
--}
--
--
--/* read a number from console */
--/**/
--int get_number(char *prompt)
--{
-- char line[STRING_MAX];
-- int n = 0, i;
-- printf(prompt);
-- while (n != 1) {
-- n = scanf("%d", &i);
-- fgets(line, STRING_MAX, stdin);
--
-- }
-- return i;
--}
--
--
--/*
-- * the somethingStupid parameter can be set to simulate a program crash.
-- * We want PortMidi to close Midi ports automatically in the event of a
-- * crash because Windows does not (and this may cause an OS crash)
-- */
--void main_test_input(unsigned int somethingStupid) {
-- PmStream * midi;
-- PmError status, length;
-- PmEvent buffer[1];
-- int num = 10;
-- int i = get_number("Type input number: ");
-- /* It is recommended to start timer before Midi; otherwise, PortMidi may
-- start the timer with its (default) parameters
-- */
-- TIME_START;
--
-- /* open input device */
-- Pm_OpenInput(&midi,
-- i,
-- DRIVER_INFO,
-- INPUT_BUFFER_SIZE,
-- TIME_PROC,
-- TIME_INFO);
--
-- printf("Midi Input opened. Reading %d Midi messages...\n", num);
-- Pm_SetFilter(midi, PM_FILT_ACTIVE | PM_FILT_CLOCK | PM_FILT_SYSEX);
-- /* empty the buffer after setting filter, just in case anything
-- got through */
-- while (Pm_Poll(midi)) {
-- Pm_Read(midi, buffer, 1);
-- }
-- /* now start paying attention to messages */
-- i = 0; /* count messages as they arrive */
-- while (i < num) {
-- status = Pm_Poll(midi);
-- if (status == TRUE) {
-- length = Pm_Read(midi,buffer, 1);
-- if (length > 0) {
-- printf("Got message %d: time %ld, %2lx %2lx %2lx\n",
-- i,
-- (long) buffer[0].timestamp,
-- (long) Pm_MessageStatus(buffer[0].message),
-- (long) Pm_MessageData1(buffer[0].message),
-- (long) Pm_MessageData2(buffer[0].message));
-- i++;
-- } else {
-- assert(0);
-- }
-- }
-- /* simulate crash if somethingStupid is 1 or 2 */
-- if ((i > (num/2)) && (somethingStupid == 1)) {
-- doSomethingStupid();
-- } else if ((i > (num/2)) && (somethingStupid == 2)) {
-- doSomethingReallyStupid();
-- }
-- }
--
-- /* close device (this not explicitly needed in most implementations) */
-- printf("ready to close...");
--
-- Pm_Close(midi);
-- printf("done closing...");
--}
--
--
--
--void main_test_output() {
-- PmStream * midi;
-- char line[80];
-- int32_t off_time;
-- int chord[] = { 60, 67, 76, 83, 90 };
-- #define chord_size 5
-- PmEvent buffer[chord_size];
-- PmTimestamp timestamp;
--
-- /* determine which output device to use */
-- int i = get_number("Type output number: ");
--
-- /* It is recommended to start timer before PortMidi */
-- TIME_START;
--
-- /* open output device -- since PortMidi avoids opening a timer
-- when latency is zero, we will pass in a NULL timer pointer
-- for that case. If PortMidi tries to access the time_proc,
-- we will crash, so this test will tell us something. */
-- Pm_OpenOutput(&midi,
-- i,
-- DRIVER_INFO,
-- OUTPUT_BUFFER_SIZE,
-- (latency == 0 ? NULL : TIME_PROC),
-- (latency == 0 ? NULL : TIME_INFO),
-- latency);
-- printf("Midi Output opened with %ld ms latency.\n", (long) latency);
--
-- /* output note on/off w/latency offset; hold until user prompts */
-- printf("ready to send program 1 change... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
-- /* if we were writing midi for immediate output, we could always use
-- timestamps of zero, but since we may be writing with latency, we
-- will explicitly set the timestamp to "now" by getting the time.
-- The source of timestamps should always correspond to the TIME_PROC
-- and TIME_INFO parameters used in Pm_OpenOutput(). */
-- buffer[0].timestamp = TIME_PROC(TIME_INFO);
-- /* Send a program change to increase the chances we will hear notes */
-- /* Program 0 is usually a piano, but you can change it here: */
--#define PROGRAM 0
-- buffer[0].message = Pm_Message(0xC0, PROGRAM, 0);
-- Pm_Write(midi, buffer, 1);
--
-- printf("ready to note-on... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
-- buffer[0].timestamp = TIME_PROC(TIME_INFO);
-- buffer[0].message = Pm_Message(0x90, 60, 100);
-- Pm_Write(midi, buffer, 1);
-- printf("ready to note-off... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
-- buffer[0].timestamp = TIME_PROC(TIME_INFO);
-- buffer[0].message = Pm_Message(0x90, 60, 0);
-- Pm_Write(midi, buffer, 1);
--
-- /* output short note on/off w/latency offset; hold until user prompts */
-- printf("ready to note-on (short form)... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
-- Pm_WriteShort(midi, TIME_PROC(TIME_INFO),
-- Pm_Message(0x90, 60, 100));
-- printf("ready to note-off (short form)... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
-- Pm_WriteShort(midi, TIME_PROC(TIME_INFO),
-- Pm_Message(0x90, 60, 0));
--
-- /* output several note on/offs to test timing.
-- Should be 1s between notes */
-- printf("chord will arpeggiate if latency > 0\n");
-- printf("ready to chord-on/chord-off... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
-- timestamp = TIME_PROC(TIME_INFO);
-- for (i = 0; i < chord_size; i++) {
-- buffer[i].timestamp = timestamp + 1000 * i;
-- buffer[i].message = Pm_Message(0x90, chord[i], 100);
-- }
-- Pm_Write(midi, buffer, chord_size);
--
-- off_time = timestamp + 1000 + chord_size * 1000;
-- while (TIME_PROC(TIME_INFO) < off_time)
-- /* busy wait */;
-- for (i = 0; i < chord_size; i++) {
-- buffer[i].timestamp = timestamp + 1000 * i;
-- buffer[i].message = Pm_Message(0x90, chord[i], 0);
-- }
-- Pm_Write(midi, buffer, chord_size);
--
-- /* close device (this not explicitly needed in most implementations) */
-- printf("ready to close and terminate... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
--
-- Pm_Close(midi);
-- Pm_Terminate();
-- printf("done closing and terminating...\n");
--}
--
--
--void main_test_both()
--{
-- int i = 0;
-- int in, out;
-- PmStream * midi, * midiOut;
-- PmEvent buffer[1];
-- PmError status, length;
-- int num = 10;
--
-- in = get_number("Type input number: ");
-- out = get_number("Type output number: ");
--
-- /* In is recommended to start timer before PortMidi */
-- TIME_START;
--
-- Pm_OpenOutput(&midiOut,
-- out,
-- DRIVER_INFO,
-- OUTPUT_BUFFER_SIZE,
-- TIME_PROC,
-- TIME_INFO,
-- latency);
-- printf("Midi Output opened with %ld ms latency.\n", (long) latency);
-- /* open input device */
-- Pm_OpenInput(&midi,
-- in,
-- DRIVER_INFO,
-- INPUT_BUFFER_SIZE,
-- TIME_PROC,
-- TIME_INFO);
-- printf("Midi Input opened. Reading %d Midi messages...\n",num);
-- Pm_SetFilter(midi, PM_FILT_ACTIVE | PM_FILT_CLOCK);
-- /* empty the buffer after setting filter, just in case anything
-- got through */
-- while (Pm_Poll(midi)) {
-- Pm_Read(midi, buffer, 1);
-- }
-- i = 0;
-- while (i < num) {
-- status = Pm_Poll(midi);
-- if (status == TRUE) {
-- length = Pm_Read(midi,buffer,1);
-- if (length > 0) {
-- Pm_Write(midiOut, buffer, 1);
-- printf("Got message %d: time %ld, %2lx %2lx %2lx\n",
-- i,
-- (long) buffer[0].timestamp,
-- (long) Pm_MessageStatus(buffer[0].message),
-- (long) Pm_MessageData1(buffer[0].message),
-- (long) Pm_MessageData2(buffer[0].message));
-- i++;
-- } else {
-- assert(0);
-- }
-- }
-- }
--
-- /* close midi devices */
-- Pm_Close(midi);
-- Pm_Close(midiOut);
-- Pm_Terminate();
--}
--
--
--/* main_test_stream exercises windows winmm API's stream mode */
--/* The winmm stream mode is used for latency>0, and sends
-- timestamped messages. The timestamps are relative (delta)
-- times, whereas PortMidi times are absolute. Since peculiar
-- things happen when messages are not always sent in advance,
-- this function allows us to exercise the system and test it.
-- */
--void main_test_stream() {
-- PmStream * midi;
-- char line[80];
-- PmEvent buffer[16];
--
-- /* determine which output device to use */
-- int i = get_number("Type output number: ");
--
-- latency = 500; /* ignore LATENCY for this test and
-- fix the latency at 500ms */
--
-- /* It is recommended to start timer before PortMidi */
-- TIME_START;
--
-- /* open output device */
-- Pm_OpenOutput(&midi,
-- i,
-- DRIVER_INFO,
-- OUTPUT_BUFFER_SIZE,
-- TIME_PROC,
-- TIME_INFO,
-- latency);
-- printf("Midi Output opened with %ld ms latency.\n", (long) latency);
--
-- /* output note on/off w/latency offset; hold until user prompts */
-- printf("ready to send output... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
--
-- /* if we were writing midi for immediate output, we could always use
-- timestamps of zero, but since we may be writing with latency, we
-- will explicitly set the timestamp to "now" by getting the time.
-- The source of timestamps should always correspond to the TIME_PROC
-- and TIME_INFO parameters used in Pm_OpenOutput(). */
-- buffer[0].timestamp = TIME_PROC(TIME_INFO);
-- buffer[0].message = Pm_Message(0xC0, 0, 0);
-- buffer[1].timestamp = buffer[0].timestamp;
-- buffer[1].message = Pm_Message(0x90, 60, 100);
-- buffer[2].timestamp = buffer[0].timestamp + 1000;
-- buffer[2].message = Pm_Message(0x90, 62, 100);
-- buffer[3].timestamp = buffer[0].timestamp + 2000;
-- buffer[3].message = Pm_Message(0x90, 64, 100);
-- buffer[4].timestamp = buffer[0].timestamp + 3000;
-- buffer[4].message = Pm_Message(0x90, 66, 100);
-- buffer[5].timestamp = buffer[0].timestamp + 4000;
-- buffer[5].message = Pm_Message(0x90, 60, 0);
-- buffer[6].timestamp = buffer[0].timestamp + 4000;
-- buffer[6].message = Pm_Message(0x90, 62, 0);
-- buffer[7].timestamp = buffer[0].timestamp + 4000;
-- buffer[7].message = Pm_Message(0x90, 64, 0);
-- buffer[8].timestamp = buffer[0].timestamp + 4000;
-- buffer[8].message = Pm_Message(0x90, 66, 0);
--
-- Pm_Write(midi, buffer, 9);
--#ifdef SEND8
-- /* Now, we're ready for the real test.
-- Play 4 notes at now, now+500, now+1000, and now+1500
-- Then wait until now+2000.
-- Play 4 more notes as before.
-- We should hear 8 evenly spaced notes. */
-- now = TIME_PROC(TIME_INFO);
-- for (i = 0; i < 4; i++) {
-- buffer[i * 2].timestamp = now + (i * 500);
-- buffer[i * 2].message = Pm_Message(0x90, 60, 100);
-- buffer[i * 2 + 1].timestamp = now + 250 + (i * 500);
-- buffer[i * 2 + 1].message = Pm_Message(0x90, 60, 0);
-- }
-- Pm_Write(midi, buffer, 8);
--
-- while (Pt_Time() < now + 2500)
-- /* busy wait */;
-- /* now we are 500 ms behind schedule, but since the latency
-- is 500, the delay should not be audible */
-- now += 2000;
-- for (i = 0; i < 4; i++) {
-- buffer[i * 2].timestamp = now + (i * 500);
-- buffer[i * 2].message = Pm_Message(0x90, 60, 100);
-- buffer[i * 2 + 1].timestamp = now + 250 + (i * 500);
-- buffer[i * 2 + 1].message = Pm_Message(0x90, 60, 0);
-- }
-- Pm_Write(midi, buffer, 8);
--#endif
-- /* close device (this not explicitly needed in most implementations) */
-- printf("ready to close and terminate... (type RETURN):");
-- fgets(line, STRING_MAX, stdin);
--
-- Pm_Close(midi);
-- Pm_Terminate();
-- printf("done closing and terminating...\n");
--}
--
--
--void show_usage()
--{
-- printf("Usage: test [-h] [-l latency-in-ms]\n");
-- exit(0);
--}
--
--int main(int argc, char *argv[])
--{
-- int default_in;
-- int default_out;
-- int i = 0, n = 0;
-- char line[STRING_MAX];
-- int test_input = 0, test_output = 0, test_both = 0, somethingStupid = 0;
-- int stream_test = 0;
-- int latency_valid = FALSE;
--
-- if (sizeof(void *) == 8)
-- printf("Apparently this is a 64-bit machine.\n");
-- else if (sizeof(void *) == 4)
-- printf ("Apparently this is a 32-bit machine.\n");
--
-- for (i = 1; i < argc; i++) {
-- if (strcmp(argv[i], "-h") == 0) {
-- show_usage();
-- } else if (strcmp(argv[i], "-l") == 0 && (i + 1 < argc)) {
-- i = i + 1;
-- latency = atoi(argv[i]);
-- printf("Latency will be %ld\n", (long) latency);
-- latency_valid = TRUE;
-- } else {
-- show_usage();
-- }
-- }
--
-- while (!latency_valid) {
-- int lat; // declared int to match "%d"
-- printf("Latency in ms: ");
-- if (scanf("%d", &lat) == 1) {
-- latency = (int32_t) lat; // coerce from "%d" to known size
-- latency_valid = TRUE;
-- }
-- }
--
-- /* determine what type of test to run */
-- printf("begin portMidi test...\n");
-- printf("%s%s%s%s%s",
-- "enter your choice...\n 1: test input\n",
-- " 2: test input (fail w/assert)\n",
-- " 3: test input (fail w/NULL assign)\n",
-- " 4: test output\n 5: test both\n",
-- " 6: stream test\n");
-- while (n != 1) {
-- n = scanf("%d", &i);
-- fgets(line, STRING_MAX, stdin);
-- switch(i) {
-- case 1:
-- test_input = 1;
-- break;
-- case 2:
-- test_input = 1;
-- somethingStupid = 1;
-- break;
-- case 3:
-- test_input = 1;
-- somethingStupid = 2;
-- break;
-- case 4:
-- test_output = 1;
-- break;
-- case 5:
-- test_both = 1;
-- break;
-- case 6:
-- stream_test = 1;
-- break;
-- default:
-- printf("got %d (invalid input)\n", n);
-- break;
-- }
-- }
--
-- /* list device information */
-- default_in = Pm_GetDefaultInputDeviceID();
-- default_out = Pm_GetDefaultOutputDeviceID();
-- for (i = 0; i < Pm_CountDevices(); i++) {
-- char *deflt;
-- const PmDeviceInfo *info = Pm_GetDeviceInfo(i);
-- if (((test_input | test_both) & info->input) |
-- ((test_output | test_both | stream_test) & info->output)) {
-- printf("%d: %s, %s", i, info->interf, info->name);
-- if (info->input) {
-- deflt = (i == default_in ? "default " : "");
-- printf(" (%sinput)", deflt);
-- }
-- if (info->output) {
-- deflt = (i == default_out ? "default " : "");
-- printf(" (%soutput)", deflt);
-- }
-- printf("\n");
-- }
-- }
--
-- /* run test */
-- if (stream_test) {
-- main_test_stream();
-- } else if (test_input) {
-- main_test_input(somethingStupid);
-- } else if (test_output) {
-- main_test_output();
-- } else if (test_both) {
-- main_test_both();
-- }
--
-- printf("finished portMidi test...type ENTER to quit...");
-- fgets(line, STRING_MAX, stdin);
-- return 0;
--}
diff --git a/testing/portmidi/21-hardentests.patch b/testing/portmidi/21-hardentests.patch
deleted file mode 100644
index 9097003fd81..00000000000
--- a/testing/portmidi/21-hardentests.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-diff --git a/pm_test/latency.c b/pm_test/latency.c
-old mode 100755
-new mode 100644
-index bfcdc0c..87f6a5e
---- a/pm_test/latency.c
-+++ b/pm_test/latency.c
-@@ -280,7 +280,7 @@ int get_number(char *prompt)
- {
- char line[STRING_MAX];
- int n = 0, i;
-- printf(prompt);
-+ printf("%s\n", prompt);
- while (n != 1) {
- n = scanf("%d", &i);
- fgets(line, STRING_MAX, stdin);
-diff --git a/pm_test/mm.c b/pm_test/mm.c
-old mode 100755
-new mode 100644
-index 0f2a52e..3f04a30
---- a/pm_test/mm.c
-+++ b/pm_test/mm.c
-@@ -119,7 +119,7 @@ int get_number(char *prompt)
- {
- char line[STRING_MAX];
- int n = 0, i;
-- printf(prompt);
-+ printf("%s", prompt);
- while (n != 1) {
- n = scanf("%d", &i);
- fgets(line, STRING_MAX, stdin);
-@@ -136,7 +136,7 @@ void receive_poll(PtTimestamp timestamp, void *userData)
- if (!active) return;
- while ((count = Pm_Read(midi_in, &event, 1))) {
- if (count == 1) output(event.message);
-- else printf(Pm_GetErrorText(count));
-+ else printf("%s", Pm_GetErrorText(count));
- }
- }
-
-@@ -168,7 +168,7 @@ int main(int argc, char **argv)
- inp = get_number("Type input device number: ");
- err = Pm_OpenInput(&midi_in, inp, NULL, 512, NULL, NULL);
- if (err) {
-- printf(Pm_GetErrorText(err));
-+ printf("%s", Pm_GetErrorText(err));
- Pt_Stop();
- mmexit(1);
- }
-@@ -484,7 +484,7 @@ private int put_pitch(int p)
- "gs", "a", "bf", "b" };
- /* note octave correction below */
- sprintf(result, "%s%d", ptos[p % 12], (p / 12) - 1);
-- printf(result);
-+ printf("%s\n", result);
- return strlen(result);
- }
-
-diff --git a/pm_test/midiclock.c b/pm_test/midiclock.c
-index 60fcf7a..def511a 100644
---- a/pm_test/midiclock.c
-+++ b/pm_test/midiclock.c
-@@ -167,7 +167,7 @@ int get_number(char *prompt)
- {
- char line[STRING_MAX];
- int n = 0, i;
-- printf(prompt);
-+ printf("%s", prompt);
- while (n != 1) {
- n = scanf("%d", &i);
- fgets(line, STRING_MAX, stdin);
-@@ -256,7 +256,7 @@ int main(int argc, char **argv)
- err = Pm_OpenOutput(&midi, outp, DRIVER_INFO, OUTPUT_BUFFER_SIZE,
- TIME_PROC, TIME_INFO, LATENCY);
- if (err) {
-- printf(Pm_GetErrorText(err));
-+ printf("%s", Pm_GetErrorText(err));
- goto error_exit_no_device;
- }
- active = true;
-diff --git a/pm_test/sysex.c b/pm_test/sysex.c
-index 7bbcf0e..812d979 100755
---- a/pm_test/sysex.c
-+++ b/pm_test/sysex.c
-@@ -39,7 +39,7 @@ int get_number(char *prompt)
- {
- char line[STRING_MAX];
- int n = 0, i;
-- printf(prompt);
-+ printf("%s", prompt);
- while (n != 1) {
- n = scanf("%d", &i);
- fgets(line, STRING_MAX, stdin);
-
diff --git a/testing/portmidi/30-porttime_cmake.patch b/testing/portmidi/30-porttime_cmake.patch
deleted file mode 100644
index f03e33fcaeb..00000000000
--- a/testing/portmidi/30-porttime_cmake.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/porttime/CMakeLists.txt b/porttime/CMakeLists.txt
-new file mode 100644
-index 0000000..7c4da89
---- /dev/null
-+++ b/porttime/CMakeLists.txt
-@@ -0,0 +1,13 @@
-+if(UNIX)
-+ list(APPEND LIBSRC ptlinux)
-+ set(PM_NEEDED_LIBS pthread asound)
-+ add_library(porttime SHARED ${LIBSRC})
-+ set_target_properties(porttime PROPERTIES VERSION "0.0.0" SOVERSION "0")
-+ target_link_libraries(porttime ${PM_NEEDED_LIBS})
-+ add_library(porttime-static ${LIBSRC})
-+ set_target_properties(porttime-static PROPERTIES OUTPUT_NAME "porttime")
-+ target_link_libraries(porttime-static ${PM_NEEDED_LIBS})
-+ INSTALL(TARGETS porttime porttime-static
-+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
-+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
-+endif(UNIX)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4919b78..08301a0 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -74,6 +74,8 @@
-
- add_subdirectory(pm_dylib)
-
-+add_subdirectory(porttime)
-+
- # Cannot figure out how to make an xcode Java application with CMake
- add_subdirectory(pm_java)
-
diff --git a/testing/portmidi/40-test_sysex.patch b/testing/portmidi/40-test_sysex.patch
deleted file mode 100644
index 66ca01d1f23..00000000000
--- a/testing/portmidi/40-test_sysex.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/pm_test/sysex.c
-+++ b/pm_test/sysex.c
-@@ -171,7 +171,7 @@
- if (seconds == 0) seconds = 1;
- printf("Correctly received %d byte sysex message.\n", i);
- total_bytes += i;
-- printf("Cummulative bytes/sec: %d\n", total_bytes / seconds);
-+ printf("Cummulative bytes/sec: %ld\n", total_bytes / seconds);
- }
- }
- cleanup:
-@@ -231,6 +231,7 @@
- Pm_WriteSysEx(midi_out, 0, msg);
- }
- stop_time = Pt_Time();
-+ printf("Delay was: %x\n", start_time - stop_time);
- Pm_Close(midi_out);
- return;
- }
diff --git a/testing/portmidi/41-pm_linux.patch b/testing/portmidi/41-pm_linux.patch
deleted file mode 100644
index 5404bddc673..00000000000
--- a/testing/portmidi/41-pm_linux.patch
+++ /dev/null
@@ -1,77 +0,0 @@
---- a/pm_linux/finddefault.c
-+++ b/pm_linux/finddefault.c
-@@ -5,10 +5,13 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-+#include <ctype.h>
- #include "portmidi.h"
-
- #define STRING_MAX 256
-
-+extern int pm_find_default_device(char *pattern, int is_input);
-+
- /* skip over spaces, return first non-space */
- void skip_spaces(FILE *inf)
- {
-@@ -26,7 +29,6 @@
- }
-
-
--/*
- /* Parse preference files, find default device, search devices --
- */
- PmDeviceID find_default_device(char *path, int input, PmDeviceID id)
-@@ -80,7 +82,7 @@
- pref_str[i] = c;
- }
- if (i == STRING_MAX) continue; // value too long, ignore
-- pref_str[i] == 0;
-+ //pref_str[i] == 0;
- i = pm_find_default_device(pref_str, input);
- if (i != pmNoDevice) {
- id = i;
---- a/pm_linux/pmlinux.c
-+++ b/pm_linux/pmlinux.c
-@@ -26,6 +26,8 @@
- PmDeviceID pm_default_input_device_id = -1;
- PmDeviceID pm_default_output_device_id = -1;
-
-+extern int find_default_device(char *path, int input, PmDeviceID id);
-+
- void pm_init()
- {
- /* Note: it is not an error for PMALSA to fail to initialize.
---- a/pm_linux/pmlinuxalsa.c
-+++ b/pm_linux/pmlinuxalsa.c
-@@ -32,9 +32,9 @@
- #endif
-
- /* to store client/port in the device descriptor */
--#define MAKE_DESCRIPTOR(client, port) ((void*)(((client) << 8) | (port)))
--#define GET_DESCRIPTOR_CLIENT(info) ((((int)(info)) >> 8) & 0xff)
--#define GET_DESCRIPTOR_PORT(info) (((int)(info)) & 0xff)
-+#define MAKE_DESCRIPTOR(client, port) ((void*)((((size_t)client) << 8) | (port)))
-+#define GET_DESCRIPTOR_CLIENT(info) ((((size_t)(info)) >> 8) & 0xff)
-+#define GET_DESCRIPTOR_PORT(info) (((size_t)(info)) & 0xff)
-
- #define BYTE unsigned char
-
-@@ -422,7 +422,7 @@
- }
- if (desc->error < 0) return pmHostError;
-
-- VERBOSE printf("snd_seq_drain_output: 0x%x\n", (unsigned int) seq);
-+ VERBOSE printf("snd_seq_drain_output: 0x%zx\n", (size_t) seq);
- desc->error = snd_seq_drain_output(seq);
- if (desc->error < 0) return pmHostError;
-
-@@ -436,7 +436,7 @@
- {
- alsa_descriptor_type desc = (alsa_descriptor_type) midi->descriptor;
- if (!desc) return pmBadPtr;
-- VERBOSE printf("snd_seq_drain_output: 0x%x\n", (unsigned int) seq);
-+ VERBOSE printf("snd_seq_drain_output: 0x%zx\n", (size_t) seq);
- desc->error = snd_seq_drain_output(seq);
- if (desc->error < 0) return pmHostError;
-
diff --git a/testing/portmidi/50-change_assert.patch b/testing/portmidi/50-change_assert.patch
deleted file mode 100644
index 05a2bf709cb..00000000000
--- a/testing/portmidi/50-change_assert.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/pm_common/portmidi.c b/pm_common/portmidi.c
-index b716170..9a469b1 100755
---- a/pm_common/portmidi.c
-+++ b/pm_common/portmidi.c
-@@ -9,7 +9,6 @@
- #include "porttime.h"
- #include "pmutil.h"
- #include "pminternal.h"
--#include <assert.h>
-
- #define MIDI_CLOCK 0xf8
- #define MIDI_ACTIVE 0xfe
-@@ -293,8 +292,8 @@ PMEXPORT const char *Pm_GetErrorText( PmError errnum ) {
- * The error will always be in the global pm_hosterror_text.
- */
- PMEXPORT void Pm_GetHostErrorText(char * msg, unsigned int len) {
-- assert(msg);
-- assert(len > 0);
-+ if (!msg) return;
-+ if (len <= 0) return;
- if (pm_hosterror) {
- strncpy(msg, (char *) pm_hosterror_text, len);
- pm_hosterror = FALSE;
-@@ -1016,7 +1015,7 @@ void pm_read_short(PmInternal *midi, PmEvent *event)
- {
- int status;
- /* arg checking */
-- assert(midi != NULL);
-+ if (!midi) return;
- /* midi filtering is applied here */
- status = Pm_MessageStatus(event->message);
- if (!pm_status_filtered(status, midi->filters)
-@@ -1058,7 +1057,7 @@ unsigned int pm_read_bytes(PmInternal *midi, const unsigned char *data,
- int i = 0; /* index into data, must not be unsigned (!) */
- PmEvent event;
- event.timestamp = timestamp;
-- assert(midi);
-+ if (!midi) return 0;
- /* note that since buffers may not have multiples of 4 bytes,
- * pm_read_bytes may be called in the middle of an outgoing
- * 4-byte PortMidi message. sysex_in_progress indicates that
diff --git a/testing/portmidi/51-remove_assert.patch b/testing/portmidi/51-remove_assert.patch
deleted file mode 100644
index fd29501fddf..00000000000
--- a/testing/portmidi/51-remove_assert.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pm_linux/pmlinuxalsa.c b/pm_linux/pmlinuxalsa.c
-index 8e85cfe..1ec3e56 100755
---- a/pm_linux/pmlinuxalsa.c
-+++ b/pm_linux/pmlinuxalsa.c
-@@ -494,7 +494,7 @@ static void handle_event(snd_seq_event_t *ev)
- PmTimestamp timestamp;
-
- /* time stamp should be in ticks, using our queue where 1 tick = 1ms */
-- assert((ev->flags & SND_SEQ_TIME_STAMP_MASK) == SND_SEQ_TIME_STAMP_TICK);
-+ if ((ev->flags & SND_SEQ_TIME_STAMP_MASK) != SND_SEQ_TIME_STAMP_TICK) return;
-
- /* if no time_proc, just return "native" ticks (ms) */
- if (time_proc == NULL) {
diff --git a/testing/portmidi/APKBUILD b/testing/portmidi/APKBUILD
deleted file mode 100644
index da3ed279aaf..00000000000
--- a/testing/portmidi/APKBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=portmidi
-pkgver=217
-pkgrel=0
-pkgdesc="PortMidi is a platform independent library for MIDI input/output."
-url="http://portmedia.sourceforge.net/"
-arch="all"
-license="MIT"
-makedepends="dos2unix cmake alsa-lib-dev"
-subpackages="$pkgname-dev"
-options="!check" # no testsuite
-source="https://downloads.sourceforge.net/portmedia/$pkgname-src-$pkgver.zip
- 00_cmake.patch
- 01_pmlinux.patch
- 02_pmlinuxalsa.patch
- 03_pm_test_Makefile.patch
- 11-pmlinuxalsa.patch
- 13-disablejni.patch
- 20-movetest.patch
- 21-hardentests.patch
- 30-porttime_cmake.patch
- 40-test_sysex.patch
- 41-pm_linux.patch
- 50-change_assert.patch
- 51-remove_assert.patch"
-builddir="$srcdir"/$pkgname
-
-prepare() {
- cd "$builddir"
- find . -type f -exec dos2unix -s -q {} \;
- default_prepare
-}
-build() {
- cd "$builddir"
- cmake . \
- -DCMAKE_BUILD_TYPE="Release" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DCMAKE_CACHEFILE_DIR="$builddir"/build
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="d08d4d57429d26d292b5fe6868b7c7a32f2f1d2428f6695cd403a697e2d91629bd4380242ab2720e8f21c895bb75cb56b709fb663a20e8e623120e50bfc5d90b portmidi-src-217.zip
-39a7c30a58f71be517d57d11c1fedfdd7c56cfdf71593f35027323e64c41dd29065791bcce6ce0f373679c9e26caba390867c93904f5efc47605ac05feaccc45 00_cmake.patch
-39ce54128b3f9712d47064557d6331bb9a44e65c2b13e2dd36bc474dfa073b391b0f3a8b01da54b0f56a14379ced2967f22b8822da46afaec62972b732b17442 01_pmlinux.patch
-032c8777dbda6af1b17fdd7664300c41b6a9ccb06ad2a68595fd8d0216fdbef7452f3c407b2be2eb0445d08243adb8929096df1f3f1ee4d032a2928495acda81 02_pmlinuxalsa.patch
-baf8231d0288079b5734e886e8cfe27d48ac5bf4bf181e956f6f0161235d21f3794ef4fcc77e8d6d3a3cf51461fa0c6f065c3b80d711ddfe736f4e6592d65400 03_pm_test_Makefile.patch
-fcfc350e37940fd9ebb070f1efc727f1903a8cf23e21866c56b09766a31479a98676327a981f50905c11e93e32119ef56fef9d3a0de51182a85f175b1dfd3155 11-pmlinuxalsa.patch
-58c638793f5e4eff7782f9844a7d19cb98e7a763497a03f77dbdc15e60a2d3dcfb2ae94cc3bc7a7ddfd880db8d5dd552dff659f1f300f7635b3a484bec35fb60 13-disablejni.patch
-186358ec42a003b943672820ceb71c421b397bb47bb20cdbe92080755bbba3a5238c06632154c72878a92b10e32364d7f8c059fd8f6c864a87a9b9ebe546d15e 20-movetest.patch
-8fa0944be2a70b4aede2a1967e1b38c863812245db6d725c0c253457f3443864a9cfba582d96ff0cc9d8fd1dd38fbb2e04e9447d2bd1abb5d2a933728135e8e4 21-hardentests.patch
-15e529aa8757c4f74a372bcb43748fb0f88d7fc4c858d00199989ad92d0eb0b2edc72d591ba471ee534b38e5756e1c72255ef93c3eb670a64a7b35a973d8368c 30-porttime_cmake.patch
-e52396df909b9ed1f8d58fad929c551a1124a2e5137f635087ac078bdf133162c618a17a9ecc4159acdfc48a640aaae06a4e392aacb1bc69a2389d9cfa18519d 40-test_sysex.patch
-4c56ebc01ed51acec3fe4a0b9fe54a6f61cdcb9640f24a076d94788174c4ebd1fd958adcedb355dc78d9a11a22d79cb276eaa2f5248d5790142bd5ced178172e 41-pm_linux.patch
-e4ffd1d49569b8279baeec45dd22b58a9724b396b927aa6c10198ab135290fbfb570d373b59317dae1d0a26ce71dcaf568325c728bc9302677d6fd28a74f4749 50-change_assert.patch
-a40e268719f949d519285fbed477b587e47434eb9b8d97de5aa4f0e6209e2a24afb8a373d4f7616c88d141525a812e23105f10a0fd457be80c93989286963c56 51-remove_assert.patch"
diff --git a/testing/portsmf/APKBUILD b/testing/portsmf/APKBUILD
new file mode 100644
index 00000000000..51b6d0e7d41
--- /dev/null
+++ b/testing/portsmf/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Sol Fisher Romanoff <sol@solfisher.com>
+# Maintainer: Sol Fisher Romanoff <sol@solfisher.com>
+pkgname=portsmf
+pkgver=239
+pkgrel=1
+pkgdesc="C++ library for reading and writing Standard MIDI Files"
+url="https://codeberg.org/tenacityteam/portsmf"
+arch="all"
+license="MIT"
+makedepends="cmake"
+subpackages="$pkgname-dev"
+options="!check" # No testsuite
+source="$pkgname-$pkgver-1.tar.gz::https://codeberg.org/tenacityteam/portsmf/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+
+build() {
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -S . -B build
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+522ef6e92de6497c66d6b9adf2b6b4e419024d26fac421096718b024ea0e183d322d3f0cd9fc357e0ba983371cf313d7a0b93b8b24aff5c9cb1ab61c915725ff portsmf-239-1.tar.gz
+"
diff --git a/testing/postfwd/APKBUILD b/testing/postfwd/APKBUILD
deleted file mode 100644
index 510c67030b9..00000000000
--- a/testing/postfwd/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=postfwd
-pkgver=2.02
-pkgrel=0
-pkgdesc="Combines complex postfix restrictions in a ruleset similar to those of the most firewalls"
-url="https://postfwd.org/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="perl-net-server perl-net-dns perl-io-multiplex"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd
- "
-options="!check" # package has no tests
-pkgusers="postfwd"
-pkggroups="postfwd"
-install="$pkgname.pre-install"
-provides="postfwd2=$pkgver-r$pkgrel" # for backward compatibility
-replaces="postfwd2" # for backward compatibility
-
-build() {
- # just print out version to check if all dependencies are met
- sbin/postfwd -V
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/sbin \
- "$pkgdir"/usr/share/doc/$pkgname \
- "$pkgdir"/usr/share/man/man8 \
- "$pkgdir"/etc/$pkgname \
- "$pkgdir"/etc/init.d
- install -m0755 sbin/postfwd3 "$pkgdir"/usr/sbin
- ln -s postfwd3 "$pkgdir"/usr/sbin/postfwd
- ln -s postfwd3 "$pkgdir"/usr/sbin/postfwd2
- cp -r doc/* "$pkgdir"/usr/share/doc/$pkgname
- install -m0644 man/man8/* "$pkgdir"/usr/share/man/man8
- install -m0644 etc/postfwd.cf.sample "$pkgdir"/etc/$pkgname
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
- install -dm750 -o postfwd -g postfwd "$pkgdir"/var/lib/postfw
-}
-
-sha512sums="1092a3075c3893c39723ec7fe96942effcaa30c97192be8dd9adc6c771849a8a27bc9ea86e0a6ca2ef77812152c158be358c08a2a42cef8116fdacf317d56119 postfwd-2.02.tar.gz
-5c60f1741c174a6b19b00d19edc6f27449e3316844a6ab5c8a46b61f7d52dae0dbdeb495faacb71e2c92cae8c2d82edc89d0c1a79e082b207ee443b9ac976a93 postfwd.initd
-3fdd6558eb3d87b8ef05c4e650ea33fcfe5bde412590ab7cb745bc1fdbf62f4f4630da271de59e6300ddd1a77287e084f7f2766c312bc2f82eb98a5623dedac2 postfwd.confd"
diff --git a/testing/postfwd/postfwd.confd b/testing/postfwd/postfwd.confd
deleted file mode 100644
index 6aab8788cb6..00000000000
--- a/testing/postfwd/postfwd.confd
+++ /dev/null
@@ -1,19 +0,0 @@
-# /etc/conf.d/postfwd.conf
-
-# User and group to execute postfwd as
-POSTFWD_USER="postfwd"
-POSTFWD_GROUP="postfwd"
-
-# Configuration file to use
-POSTFWD_CONFIG="/etc/postfwd/postfwd.cf"
-
-# The IP address postfwd will listen on
-# WARNING: You _really_ want this to be localhost for security!
-POSTFWD_LISTEN="127.0.0.1"
-
-# The port postfwd will listen on
-POSTFWD_PORT="10040"
-
-# Additional options to pass to postfwd
-POSTFWD_OPTS=""
-
diff --git a/testing/postfwd/postfwd.initd b/testing/postfwd/postfwd.initd
deleted file mode 100644
index 80721b81aba..00000000000
--- a/testing/postfwd/postfwd.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name=postfwd
-description="Postfix firewall daemon"
-
-command=/usr/sbin/postfwd
-command_args="--file ${POSTFWD_CONFIG}
- --interface=${POSTFWD_LISTEN}
- --port=${POSTFWD_PORT}
- --user=${POSTFWD_USER}
- --group=${POSTFWD_GROUP}
- ${POSTFWD_OPTS}
- "
-command_args_foreground="--nodaemon"
-
-depend() {
- need net
-}
diff --git a/testing/postfwd/postfwd.pre-install b/testing/postfwd/postfwd.pre-install
deleted file mode 100755
index 62c8ba5d716..00000000000
--- a/testing/postfwd/postfwd.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S postfwd 2>/dev/null
-adduser -SD -h /var/lib/postfwd -G postfwd postfwd 2>/dev/null
-
-exit 0
diff --git a/testing/postgresql-citus/APKBUILD b/testing/postgresql-citus/APKBUILD
deleted file mode 100644
index f51515ebf3c..00000000000
--- a/testing/postgresql-citus/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname=postgresql-citus
-_projname=citus
-pkgver=9.3.0
-pkgrel=0
-pkgdesc="Scalable PostgreSQL for multi-tenant and real-time analytics workloads"
-url="https://github.com/citusdata/citus"
-arch="all"
-license="AGPL-3.0-only"
-makedepends="autoconf postgresql-dev icu-dev"
-provides="pg_cron=$pkgver-r$pkgrel"
-install="$pkgname.post-install"
-source="https://github.com/citusdata/citus/archive/v$pkgver/$_projname-$pkgver.tar.gz"
-builddir="$srcdir/$_projname-$pkgver"
-options="!check" # tests requires running postgresql cluster
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --without-libcurl
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
-}
-
-sha512sums="2a677b164c98c935f3eb6fcbf1742d1717c1153057308d1041c79911fb2ece8b93e961eb71861139d90cc17bcd4e9e4ee855af2504b35da01cc52817f6f596c4 citus-9.3.0.tar.gz"
diff --git a/testing/postgresql-citus/postgresql-citus.post-install b/testing/postgresql-citus/postgresql-citus.post-install
deleted file mode 100644
index efc77d8157c..00000000000
--- a/testing/postgresql-citus/postgresql-citus.post-install
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-cat <<EOF
-*
-* Add the following line to postgresql.conf and restart PostgreSQL:
-* shared_preload_libraries = 'citus'
-*
-EOF
-
-exit 0
diff --git a/testing/postgresql-hll/APKBUILD b/testing/postgresql-hll/APKBUILD
new file mode 100644
index 00000000000..f2a6bccc806
--- /dev/null
+++ b/testing/postgresql-hll/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=postgresql-hll
+pkgver=2.18
+pkgrel=0
+pkgdesc="PostgreSQL extension adding HyperLogLog data structures as a native data type"
+url="https://github.com/citusdata/postgresql-hll"
+# armhf,armv7,x86: 32-bit is not supported (error=format)
+arch="all !armhf !armv7 !x86"
+license="Apache-2.0"
+makedepends="postgresql-dev"
+subpackages="$pkgname-bitcode"
+source="https://github.com/citusdata/postgresql-hll/archive/v$pkgver/postgresql-hll-$pkgver.tar.gz"
+options="!check" # requires running PostgreSQL
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+bitcode() {
+ pkgdesc="$pkgdesc (bitcode for JIT)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="postgresql$(pg_config --major-version)-jit $pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/postgresql*/bitcode
+}
+
+sha512sums="
+0c9aa39ab3abe2e8eba77d2fe190689858d2c49d9b87b25b763c864892a4f1fecab8758ea72616c4bb7446e477850cd95c06e8e8bb5c3a346fa009d26a7f3d44 postgresql-hll-2.18.tar.gz
+"
diff --git a/testing/postgresql-pg_cron/APKBUILD b/testing/postgresql-pg_cron/APKBUILD
deleted file mode 100644
index 4bb08da52b0..00000000000
--- a/testing/postgresql-pg_cron/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: G.J.R. Timmer <gjr.timmer@gmail.com>
-# Maintainer: G.J.R. Timmer <gjr.timmer@gmail.com>
-pkgname=postgresql-pg_cron
-_projname=pg_cron
-pkgver=1.2.0
-pkgrel=1
-pkgdesc="Cron-based scheduler for PostgreSQL 9.5+"
-url="https://github.com/citusdata/pg_cron"
-arch="all"
-license="PostgreSQL"
-depends="postgresql"
-makedepends="postgresql-dev"
-provides="pg_cron=$pkgver-r$pkgrel"
-install="$pkgname.post-install"
-source="https://github.com/citusdata/pg_cron/archive/v$pkgver/$_projname-$pkgver.tar.gz"
-builddir="$srcdir/$_projname-$pkgver"
-options="!check" # no tests provided
-
-prepare() {
- default_prepare
- # Remove -Werror from Makefile
- # Required to compile on alpine, to ignore compilation warnings
- sed "s/-Werror //" -i Makefile
-}
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
-}
-
-sha512sums="fe11fc42fa8d3de4ff08440f96bcc5c228408ae01f7c1cf676d8dbab6ebef9aa0496aa3d5e785ec850eee3b484dc7ec0bf930a9c09e4267d10375adb9027f0b1 pg_cron-1.2.0.tar.gz"
diff --git a/testing/postgresql-pg_cron/postgresql-pg_cron.post-install b/testing/postgresql-pg_cron/postgresql-pg_cron.post-install
deleted file mode 100644
index b8e13ba49ff..00000000000
--- a/testing/postgresql-pg_cron/postgresql-pg_cron.post-install
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-cat <<EOF
-*
-* Add the following line to postgresql.conf and restart PostgreSQL:
-* shared_preload_libraries = 'pg_cron'
-*
-EOF
-
-exit 0
diff --git a/testing/postgresql-pg_graphql/APKBUILD b/testing/postgresql-pg_graphql/APKBUILD
new file mode 100644
index 00000000000..5882f4fbfc8
--- /dev/null
+++ b/testing/postgresql-pg_graphql/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=postgresql-pg_graphql
+_projname=pg_graphql
+pkgver=1.4.2
+pkgrel=0
+pkgdesc="GraphQL support for PostgreSQL"
+url="https://supabase.github.io/pg_graphql/"
+# ppc64le,riscv64,s390x: fails to build due to ring crate (https://github.com/pgcentralfoundation/pgrx/pull/1442)
+arch="all !ppc64le !riscv64 !s390x"
+license="Apache-2.0"
+makedepends="
+ cargo
+ chrpath
+ jq
+ openssl-dev
+ postgresql
+ postgresql-dev
+ rustfmt
+ "
+source="https://github.com/supabase/pg_graphql/archive/v$pkgver/$_projname-$pkgver.tar.gz
+ remove-regex.patch
+ "
+builddir="$srcdir/$_projname-$pkgver"
+# check: tests tries to write to /usr/lib/...
+# net: fetches crates in build phase
+options="!check net"
+
+export PGRX_HOME="$srcdir/.pgrx"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ local pgver="$(pg_config --major-version)"
+
+ # We must install it this way because cargo-pgrx and pgrx dependency
+ # versions in the project must be identical. :(
+ local pgrx_ver; pgrx_ver="$(cargo metadata --locked --format-version 1 \
+ | jq -r '.packages[] | select(.name == "pgrx") | .version')"
+ # Use dev profile to speed-up compilation.
+ cargo install --locked --profile dev --bins --root target/tools "cargo-pgrx@$pgrx_ver"
+
+ export PATH="$PWD/target/tools/bin:$PATH"
+
+ cargo pgrx init --pg$pgver="$(which pg_config)"
+
+ # TODO: Remove after >0.11.2 is released (https://github.com/pgcentralfoundation/pgrx/pull/1441).
+ [ -n "$RUSTFLAGS" ] && export RUSTFLAGS="$(echo $RUSTFLAGS)" || unset RUSTFLAGS
+
+ cargo pgrx package --verbose --out-dir="target/release/dist"
+
+ # Remove RPATH.
+ # NOTE: CARGO_PROFILE_RELEASE_RPATH=false doesn't work here.
+ chrpath -d target/release/dist/usr/lib/postgresql*/*.so
+}
+
+package() {
+ depends="postgresql$(pg_config --major-version)"
+
+ mkdir -p "$pkgdir"
+ cp -r target/release/dist/* "$pkgdir"/
+}
+
+sha512sums="
+d1d0612b39916062b85b855975948376aae47066028532c118ee404808c245fc7617fd0a39a410397572601194f38f7a04a69a99b8aa71f43a79cc8710223cb4 pg_graphql-1.4.2.tar.gz
+dc517bfb9813a1c807c01146d7f81dbfc14b004fb5be915794092bf7a2cdfa84edcdfe221094f8e196cf169980c02cdfcf339d80fd16114c040a03a3d765b416 remove-regex.patch
+"
diff --git a/testing/postgresql-pg_graphql/remove-regex.patch b/testing/postgresql-pg_graphql/remove-regex.patch
new file mode 100644
index 00000000000..4662f4be780
--- /dev/null
+++ b/testing/postgresql-pg_graphql/remove-regex.patch
@@ -0,0 +1,66 @@
+Patch-Source: https://github.com/supabase/pg_graphql/pull/473
+--
+From bd6d3c4af27e7961e0c3d4632289d155336e399e Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Mon, 18 Dec 2023 19:20:43 +0100
+Subject: [PATCH] replace regex with std alternative
+
+regex is a big dependency (adds over 1 MiB to the binary size) and it's
+unnecessary for such a simple check.
+---
+ Cargo.lock | 1 -
+ Cargo.toml | 1 -
+ src/graphql.rs | 10 +++-------
+ 3 files changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index bcd2ab8d..16ef67c8 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1105,7 +1105,6 @@ dependencies = [
+ "pgrx",
+ "pgrx-tests",
+ "rand",
+- "regex",
+ "serde",
+ "serde_json",
+ "uuid",
+diff --git a/Cargo.toml b/Cargo.toml
+index 88d0995d..610767b3 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -22,7 +22,6 @@ itertools = "0.10.3"
+ cached = "0.34.0"
+ rand = "0.8"
+ uuid = "1"
+-regex = "1"
+ base64 = "0.13"
+ lazy_static = "1"
+ bimap = { version = "0.6.3", features = ["serde"] }
+diff --git a/src/graphql.rs b/src/graphql.rs
+index 602153b3..f2a4e394 100644
+--- a/src/graphql.rs
++++ b/src/graphql.rs
+@@ -2,19 +2,15 @@ use crate::sql_types::*;
+ use cached::proc_macro::cached;
+ use cached::SizedCache;
+ use itertools::Itertools;
+-use lazy_static::lazy_static;
+-use regex::Regex;
+ use serde::Serialize;
+ use std::collections::{HashMap, HashSet};
+ use std::ops::Deref;
+ use std::sync::Arc;
+
+-lazy_static! {
+- static ref GRAPHQL_NAME_RE: Regex = Regex::new("^[_A-Za-z][_0-9A-Za-z]*$").unwrap();
+-}
+-
+ fn is_valid_graphql_name(name: &str) -> bool {
+- GRAPHQL_NAME_RE.is_match(name)
++ !name.is_empty()
++ && name.starts_with(|c: char| c == '_' || c.is_ascii_alphabetic())
++ && name.chars().all(|c| c == '_' || c.is_ascii_alphanumeric())
+ }
+
+ fn to_base_type_name(name: &str, name_override: &Option<String>, inflect_names: bool) -> String {
diff --git a/testing/postgresql-pg_later/APKBUILD b/testing/postgresql-pg_later/APKBUILD
new file mode 100644
index 00000000000..bc6773ff21e
--- /dev/null
+++ b/testing/postgresql-pg_later/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=postgresql-pg_later
+_projname=pg_later
+pkgver=0.0.14
+pkgrel=0
+pkgdesc="PostgreSQL extension to execute SQL now and get the results later"
+url="https://github.com/tembo-io/pg_later"
+# s390x: fails to build nix crate
+arch="all !s390x"
+license="PostgreSQL"
+makedepends="
+ cargo
+ chrpath
+ jq
+ openssl-dev
+ postgresql
+ postgresql-dev
+ rustfmt
+ "
+source="https://github.com/tembo-io/pg_later/archive/v$pkgver/postgresql-pg_later-$pkgver.tar.gz
+ remove-tls.patch
+ "
+builddir="$srcdir/$_projname-$pkgver"
+# check: tests tries to write to /usr/lib/...
+# net: fetches crates in build phase
+options="!check net"
+
+export PGRX_HOME="$srcdir/.pgrx"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ local pgver="$(pg_config --major-version)"
+
+ # We must install it this way because cargo-pgrx and pgrx dependency
+ # versions in the project must be identical. :(
+ local pgrx_ver; pgrx_ver="$(cargo metadata --locked --format-version 1 \
+ | jq -r '.packages[] | select(.name == "pgrx") | .version')"
+ # Use dev profile to speed-up compilation.
+ cargo install --locked --profile dev --bins --root target/tools "cargo-pgrx@$pgrx_ver"
+
+ export PATH="$PWD/target/tools/bin:$PATH"
+
+ cargo pgrx init --pg$pgver="$(which pg_config)"
+
+ # TODO: Remove after >0.11.2 is released (https://github.com/pgcentralfoundation/pgrx/pull/1441).
+ [ -n "$RUSTFLAGS" ] && export RUSTFLAGS="$(echo $RUSTFLAGS)" || unset RUSTFLAGS
+
+ cargo pgrx package --verbose --out-dir="target/release/dist"
+
+ # Remove RPATH.
+ # NOTE: CARGO_PROFILE_RELEASE_RPATH=false doesn't work here.
+ chrpath -d target/release/dist/usr/lib/postgresql*/*.so
+}
+
+package() {
+ depends="postgresql$(pg_config --major-version)"
+
+ mkdir -p "$pkgdir"
+ cp -r target/release/dist/* "$pkgdir"/
+}
+
+sha512sums="
+6685d49411e2c441d53994f7b98e2a0bab84d9d9f047a7d75ee7ff1b2c266f44e4b89ec8b2b4553877e72eceee448fd4dadd37ad8cd15f6e924864aa8b8c9606 postgresql-pg_later-0.0.14.tar.gz
+94b8e7e944bb6233d74084b44e5f7c7a2024782a16f5be52718b2ec11cb47b66363d9abf1321879b3cd0c7652ccbfcae83014c34bfb31c77977097b561f7c49c remove-tls.patch
+"
diff --git a/testing/postgresql-pg_later/remove-tls.patch b/testing/postgresql-pg_later/remove-tls.patch
new file mode 100644
index 00000000000..409a10e4f45
--- /dev/null
+++ b/testing/postgresql-pg_later/remove-tls.patch
@@ -0,0 +1,646 @@
+Patch-Source: https://github.com/tembo-io/pg_later/pull/45
+--
+From 202519fbee9d740661480bc4b190dd3a4f63d575 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 30 Jan 2024 04:21:11 +0100
+Subject: [PATCH] Bump dependencies and remove sqlx runtime-tokio-native-tls
+ feature (#45)
+
+* Bump pgrx from 0.11.2 to 0.11.3
+
+* Bump pgmq-core from 0.8.2 to 0.8.4
+
+* Bump pgmq from 0.25.0 to 0.26.0
+
+* Bump sqlx from 0.7.2 to 0.7.3
+
+* Remove sqlx feature runtime-tokio-native-tls
+
+pg_later doesn't connect to a remote PostgreSQL, so TLS is unnecessary.
+This change will reduce the number of dependencies and the binary size.
+---
+ Cargo.lock | 260 ++++++++++++++++++++---------------------------------
+ Cargo.toml | 11 ++-
+ 2 files changed, 100 insertions(+), 171 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index a0241f7..f538486 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -19,14 +19,15 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+ [[package]]
+ name = "ahash"
+-version = "0.8.3"
++version = "0.8.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
++checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+ dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
++ "zerocopy",
+ ]
+
+ [[package]]
+@@ -79,7 +80,7 @@ checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -110,6 +111,16 @@ dependencies = [
+ "rustc_version 0.3.3",
+ ]
+
++[[package]]
++name = "atomic-write-file"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436"
++dependencies = [
++ "nix",
++ "rand",
++]
++
+ [[package]]
+ name = "autocfg"
+ version = "1.1.0"
+@@ -145,9 +156,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+ [[package]]
+ name = "bindgen"
+-version = "0.68.1"
++version = "0.69.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
++checksum = "a4c69fae65a523209d34240b60abe0c42d33d1045d445c0839d8a4894a736e2d"
+ dependencies = [
+ "bitflags 2.4.0",
+ "cexpr",
+@@ -160,7 +171,7 @@ dependencies = [
+ "regex",
+ "rustc-hash",
+ "shlex",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -333,7 +344,7 @@ dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -357,16 +368,6 @@ dependencies = [
+ "unicode-segmentation",
+ ]
+
+-[[package]]
+-name = "core-foundation"
+-version = "0.9.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+-dependencies = [
+- "core-foundation-sys",
+- "libc",
+-]
+-
+ [[package]]
+ name = "core-foundation-sys"
+ version = "0.8.4"
+@@ -548,7 +549,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -640,21 +641,6 @@ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+-[[package]]
+-name = "foreign-types"
+-version = "0.3.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+-dependencies = [
+- "foreign-types-shared",
+-]
+-
+-[[package]]
+-name = "foreign-types-shared"
+-version = "0.1.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+-
+ [[package]]
+ name = "form_urlencoded"
+ version = "1.2.1"
+@@ -722,7 +708,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -994,9 +980,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+ [[package]]
+ name = "libsqlite3-sys"
+-version = "0.26.0"
++version = "0.27.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
++checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
+ dependencies = [
+ "cc",
+ "pkg-config",
+@@ -1076,21 +1062,14 @@ dependencies = [
+ ]
+
+ [[package]]
+-name = "native-tls"
+-version = "0.2.11"
++name = "nix"
++version = "0.27.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
++checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+ dependencies = [
+- "lazy_static",
++ "bitflags 2.4.0",
++ "cfg-if",
+ "libc",
+- "log",
+- "openssl",
+- "openssl-probe",
+- "openssl-sys",
+- "schannel",
+- "security-framework",
+- "security-framework-sys",
+- "tempfile",
+ ]
+
+ [[package]]
+@@ -1185,50 +1164,6 @@ version = "1.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+
+-[[package]]
+-name = "openssl"
+-version = "0.10.56"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
+-dependencies = [
+- "bitflags 1.3.2",
+- "cfg-if",
+- "foreign-types",
+- "libc",
+- "once_cell",
+- "openssl-macros",
+- "openssl-sys",
+-]
+-
+-[[package]]
+-name = "openssl-macros"
+-version = "0.1.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+-dependencies = [
+- "proc-macro2",
+- "quote",
+- "syn 2.0.28",
+-]
+-
+-[[package]]
+-name = "openssl-probe"
+-version = "0.1.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+-
+-[[package]]
+-name = "openssl-sys"
+-version = "0.9.91"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
+-dependencies = [
+- "cc",
+- "libc",
+- "pkg-config",
+- "vcpkg",
+-]
+-
+ [[package]]
+ name = "option-ext"
+ version = "0.2.0"
+@@ -1344,9 +1279,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgmq"
+-version = "0.25.0"
++version = "0.26.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c78e66be0f79f0b4232c5cd704a1c7b5a141c214a6cf35544bf5837a149f3606"
++checksum = "1c0159d414341a3badb16cc9b7282cad40ee8c461d30c1a1a32f3be17d4039d6"
+ dependencies = [
+ "chrono",
+ "log",
+@@ -1361,9 +1296,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgmq-core"
+-version = "0.8.2"
++version = "0.8.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6feb214f7d3489151fc4baef4a565ec31437f280dd7e22eb8a5be6eb282a37a9"
++checksum = "cd282003c4cbcfdf5190e259f940231f91a8b04fbda4588e45d51b7f1bf8177d"
+ dependencies = [
+ "chrono",
+ "log",
+@@ -1377,9 +1312,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx"
+-version = "0.11.2"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cb44171122605250e719ca2ae49afb357bdb2fce4b3c876fcf2225165237328a"
++checksum = "2102faa5ef4a7bf096fefcf67692b293583efd18f9236340ad3169807dfc2b73"
+ dependencies = [
+ "atomic-traits",
+ "bitflags 2.4.0",
+@@ -1402,9 +1337,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-macros"
+-version = "0.11.2"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a18ac8628b7de2f29a93d0abdbdcaee95a0e0ef4b59fd4de99cc117e166e843b"
++checksum = "c26810d09910ec987a6708d48d243efb5f879331e01c6fec0893714d0eb12bae"
+ dependencies = [
+ "pgrx-sql-entity-graph",
+ "proc-macro2",
+@@ -1414,9 +1349,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-pg-config"
+-version = "0.11.2"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "acd45ac6eb1142c5690df63c4e0bdfb74f27c9f93a7af84f064dc2c0a2c2d6f7"
++checksum = "0b0099ba4b635dfe1e34afc8bca8be43e9577c5d726aaf1dc7dd23a78f6c8a60"
+ dependencies = [
+ "cargo_toml",
+ "dirs",
+@@ -1432,9 +1367,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-pg-sys"
+-version = "0.11.2"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "81c6207939582934fc26fceb651cb5338e363c06ddc6b2d50ca71867f7c70ffe"
++checksum = "3f40315259c41fede51eb23b791b48d0a112b0f47d0dcb6862b798d1fa1db6ea"
+ dependencies = [
+ "bindgen",
+ "clang-sys",
+@@ -1456,9 +1391,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-sql-entity-graph"
+-version = "0.11.2"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a50083de83b1fac2484e8f2c2a7da5fed0193904e2578fa6c4ce02262c455c2b"
++checksum = "7d47a4e991c8c66162c5d6b0fc2bd382e43a58fc893ce05a6a15ddcb1bf7eee4"
+ dependencies = [
+ "convert_case",
+ "eyre",
+@@ -1471,9 +1406,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-tests"
+-version = "0.11.2"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6ba0115cd80d9e3ca1d5d2a8ab8b7320d6ed614a53d025b86152696a8b3caa75"
++checksum = "ab3abc01e2bb930b072bd660d04c8eaa69a29d4727d5b2a641f946c603c1605e"
+ dependencies = [
+ "clap-cargo",
+ "eyre",
+@@ -1858,15 +1793,6 @@ dependencies = [
+ "winapi-util",
+ ]
+
+-[[package]]
+-name = "schannel"
+-version = "0.1.22"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+-dependencies = [
+- "windows-sys",
+-]
+-
+ [[package]]
+ name = "scopeguard"
+ version = "1.2.0"
+@@ -1879,29 +1805,6 @@ version = "4.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+-[[package]]
+-name = "security-framework"
+-version = "2.9.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+-dependencies = [
+- "bitflags 1.3.2",
+- "core-foundation",
+- "core-foundation-sys",
+- "libc",
+- "security-framework-sys",
+-]
+-
+-[[package]]
+-name = "security-framework-sys"
+-version = "2.9.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+-dependencies = [
+- "core-foundation-sys",
+- "libc",
+-]
+-
+ [[package]]
+ name = "semver"
+ version = "0.11.0"
+@@ -1959,7 +1862,7 @@ checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -2006,9 +1909,9 @@ dependencies = [
+
+ [[package]]
+ name = "shlex"
+-version = "1.2.0"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
++checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+ [[package]]
+ name = "signature"
+@@ -2095,9 +1998,9 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0e50c216e3624ec8e7ecd14c6a6a6370aad6ee5d8cfc3ab30b5162eeeef2ed33"
++checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
+ dependencies = [
+ "sqlx-core",
+ "sqlx-macros",
+@@ -2108,9 +2011,9 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx-core"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8d6753e460c998bbd4cd8c6f0ed9a64346fcca0723d6e75e52fdc351c5d2169d"
++checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
+ dependencies = [
+ "ahash",
+ "atoi",
+@@ -2132,7 +2035,6 @@ dependencies = [
+ "indexmap",
+ "log",
+ "memchr",
+- "native-tls",
+ "once_cell",
+ "paste",
+ "percent-encoding",
+@@ -2150,9 +2052,9 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx-macros"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9a793bb3ba331ec8359c1853bd39eed32cdd7baaf22c35ccf5c92a7e8d1189ec"
++checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -2163,10 +2065,11 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx-macros-core"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0a4ee1e104e00dedb6aa5ffdd1343107b0a4702e862a84320ee7cc74782d96fc"
++checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841"
+ dependencies = [
++ "atomic-write-file",
+ "dotenvy",
+ "either",
+ "heck",
+@@ -2189,9 +2092,9 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx-mysql"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db"
++checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4"
+ dependencies = [
+ "atoi",
+ "base64",
+@@ -2232,9 +2135,9 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx-postgres"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624"
++checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24"
+ dependencies = [
+ "atoi",
+ "base64",
+@@ -2272,9 +2175,9 @@ dependencies = [
+
+ [[package]]
+ name = "sqlx-sqlite"
+-version = "0.7.2"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d59dc83cf45d89c555a577694534fcd1b55c545a816c816ce51f20bbe56a4f3f"
++checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490"
+ dependencies = [
+ "atoi",
+ "chrono",
+@@ -2291,6 +2194,7 @@ dependencies = [
+ "sqlx-core",
+ "tracing",
+ "url",
++ "urlencoding",
+ ]
+
+ [[package]]
+@@ -2328,9 +2232,9 @@ dependencies = [
+
+ [[package]]
+ name = "syn"
+-version = "2.0.28"
++version = "2.0.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
++checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -2388,7 +2292,7 @@ checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -2441,7 +2345,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -2550,7 +2454,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ ]
+
+ [[package]]
+@@ -2630,6 +2534,12 @@ dependencies = [
+ "percent-encoding",
+ ]
+
++[[package]]
++name = "urlencoding"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
++
+ [[package]]
+ name = "uuid"
+ version = "1.4.1"
+@@ -2703,7 +2613,7 @@ dependencies = [
+ "once_cell",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ "wasm-bindgen-shared",
+ ]
+
+@@ -2725,7 +2635,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.28",
++ "syn 2.0.43",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+ ]
+@@ -2880,6 +2790,26 @@ dependencies = [
+ "tap",
+ ]
+
++[[package]]
++name = "zerocopy"
++version = "0.7.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
++dependencies = [
++ "zerocopy-derive",
++]
++
++[[package]]
++name = "zerocopy-derive"
++version = "0.7.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.43",
++]
++
+ [[package]]
+ name = "zeroize"
+ version = "1.6.0"
+diff --git a/Cargo.toml b/Cargo.toml
+index 8df9cf8..1d13b44 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -19,12 +19,11 @@ pg_test = []
+ anyhow = "1.0.72"
+ chrono = {version = "0.4.26", features = ["serde"] }
+ log = "0.4.19"
+-pgmq = "0.25.0"
+-pgrx = "0.11.2"
++pgmq = "0.26.0"
++pgrx = "0.11.3"
+ serde = "1.0.164"
+ serde_json = "1.0.99"
+-sqlx = { version = "0.7.2", features = [
+- "runtime-tokio-native-tls",
++sqlx = { version = "0.7.3", features = [
+ "postgres",
+ "chrono",
+ "postgres",
+@@ -36,11 +35,11 @@ postgres-types = "0.2.5"
+
+
+ [dev-dependencies]
+-pgrx-tests = "0.11.2"
++pgrx-tests = "0.11.3"
+ rand = "0.8.5"
+ tokio = { version = "1", features = ["macros"] }
+ whoami = "1.4.0"
+-pgmq-core = "0.8.2"
++pgmq-core = "0.8.4"
+
+ [profile.dev]
+ panic = "unwind"
diff --git a/testing/postgresql-pg_partman/APKBUILD b/testing/postgresql-pg_partman/APKBUILD
new file mode 100644
index 00000000000..63099326aae
--- /dev/null
+++ b/testing/postgresql-pg_partman/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=postgresql-pg_partman
+_projname=pg_partman
+pkgver=5.0.0
+pkgrel=0
+pkgdesc="Partition management extension for PostgreSQL"
+url="https://github.com/pgpartman/pg_partman"
+arch="all"
+license="PostgreSQL"
+_depends_scripts="
+ py3-psycopg2
+ python3
+ "
+makedepends="
+ $_depends_scripts
+ postgresql-dev
+ "
+subpackages="
+ $pkgname-scripts:_scripts:noarch
+ $pkgname-bitcode
+ $pkgname-doc
+ "
+source="https://github.com/pgpartman/pg_partman/archive/v$pkgver/$_projname-$pkgver.tar.gz
+ fix-python-shebang.patch
+ "
+builddir="$srcdir/$_projname-$pkgver"
+options="!check" # tests require running PostgreSQL
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_scripts() {
+ pkgdesc="$pkgdesc - Python scripts"
+ depends="$pkgname=$pkgver-r$pkgrel $_depends_scripts"
+ # Declare it as a "soft dependency", so the user can opt-out from installing.
+ install_if="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/libexec/postgresql*/*.py
+}
+
+bitcode() {
+ pkgdesc="$pkgdesc (bitcode for JIT)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="postgresql$(pg_config --major-version)-jit $pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/postgresql*/bitcode
+}
+
+sha512sums="
+7a1b41732eb063a94cee7a589a252055e3a33ccf0ddfe5cddba22978ffd306cf263312b172355c930d355aea0f5f5530fd2344520791df9cb05a38614c521f9f pg_partman-5.0.0.tar.gz
+e3cdd19267b6fc73173c05b0bcc33038f9c7dc8d53ec348ec2a641de03695c247522a503867cd93a750964c05b4fa17d6dc5f4f21e9673925d0656a90a4afb79 fix-python-shebang.patch
+"
diff --git a/testing/postgresql-pg_partman/fix-python-shebang.patch b/testing/postgresql-pg_partman/fix-python-shebang.patch
new file mode 100644
index 00000000000..5f18ffda57a
--- /dev/null
+++ b/testing/postgresql-pg_partman/fix-python-shebang.patch
@@ -0,0 +1,24 @@
+--- a/bin/common/check_unique_constraint.py
++++ b/bin/common/check_unique_constraint.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ import argparse, collections, psycopg2, sys, tempfile
+
+--- a/bin/common/dump_partition.py
++++ b/bin/common/dump_partition.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ import argparse, hashlib, os, os.path, psycopg2, subprocess, sys
+
+--- a/bin/common/vacuum_maintenance.py
++++ b/bin/common/vacuum_maintenance.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/python3
+
+ import argparse, psycopg2, sys
+
diff --git a/testing/postgresql-pg_variables/APKBUILD b/testing/postgresql-pg_variables/APKBUILD
new file mode 100644
index 00000000000..cb9d80d651c
--- /dev/null
+++ b/testing/postgresql-pg_variables/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=postgresql-pg_variables
+pkgver=1.2.4_git20220909
+_gitrev=9f9466c2b9193133446851b1f4b2b5b192d8f0e0
+pkgrel=2
+pkgdesc="Session wide variables for PostgreSQL"
+url="https://github.com/postgrespro/pg_variables"
+arch="all"
+license="PostgreSQL"
+makedepends="postgresql-dev"
+subpackages="$pkgname-bitcode"
+source="https://github.com/postgrespro/pg_variables/archive/$_gitrev/$pkgname-$_gitrev.tar.gz"
+builddir="$srcdir/pg_variables-$_gitrev"
+options="!check" # tests require running PostgreSQL
+
+build() {
+ make USE_PGXS=1
+}
+
+package() {
+ _pgver=$(pg_config --major-version)
+ depends="postgresql$_pgver"
+
+ make USE_PGXS=1 DESTDIR="$pkgdir" install
+}
+
+bitcode() {
+ _pgver=$(pg_config --major-version)
+ pkgdesc="$pkgdesc (bitcode for JIT)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="postgresql$_pgver-jit $pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/postgresql*/bitcode
+}
+
+sha512sums="
+277d76665e0be5dffd99cee8290ccf2be72246e7756ae456674633bbbd2ebfe79bf3d5f0a67b69dede460cdfb3fb43c000b6ca472ef5176138877628070e7539 postgresql-pg_variables-9f9466c2b9193133446851b1f4b2b5b192d8f0e0.tar.gz
+"
diff --git a/testing/postgresql-pgmq/APKBUILD b/testing/postgresql-pgmq/APKBUILD
new file mode 100644
index 00000000000..765f12aa8b6
--- /dev/null
+++ b/testing/postgresql-pgmq/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=postgresql-pgmq
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="A lightweight message queue, like AWS SQS and RSMQ, but on PostgreSQL"
+url="https://github.com/tembo-io/pgmq"
+arch="all"
+license="PostgreSQL"
+makedepends="
+ cargo
+ chrpath
+ jq
+ openssl-dev
+ postgresql
+ postgresql-dev
+ rustfmt
+ "
+source="https://github.com/tembo-io/pgmq/archive/v$pkgver/postgresql-pgmq-$pkgver.tar.gz
+ bump-pgrx.patch
+ "
+builddir="$srcdir/pgmq-$pkgver"
+# check: tests tries to write to /usr/lib/...
+# net: fetches crates in build phase
+options="!check net"
+
+export PGRX_HOME="$srcdir/.pgrx"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ local pgver="$(pg_config --major-version)"
+
+ # We must install it this way because cargo-pgrx and pgrx dependency
+ # versions in the project must be identical. :(
+ local pgrx_ver; pgrx_ver="$(cargo metadata --locked --format-version 1 \
+ | jq -r '.packages[] | select(.name == "pgrx") | .version')"
+ # Use dev profile to speed-up compilation.
+ cargo install --locked --profile dev --bins --root target/tools "cargo-pgrx@$pgrx_ver"
+
+ export PATH="$PWD/target/tools/bin:$PATH"
+
+ cargo pgrx init --pg$pgver="$(which pg_config)"
+
+ # TODO: Remove after https://github.com/pgcentralfoundation/pgrx/issues/1455 is resolved.
+ [ -n "$RUSTFLAGS" ] && export RUSTFLAGS="$(echo $RUSTFLAGS)" || unset RUSTFLAGS
+ cargo pgrx package --verbose --out-dir="target/release/dist"
+
+ # Remove RPATH.
+ # NOTE: CARGO_PROFILE_RELEASE_RPATH=false doesn't work here.
+ chrpath -d target/release/dist/usr/lib/postgresql*/*.so
+}
+
+package() {
+ depends="postgresql$(pg_config --major-version)"
+
+ mkdir -p "$pkgdir"
+ cp -r target/release/dist/* "$pkgdir"/
+}
+
+sha512sums="
+75e9472f0b5ef3d3b29f0ff04571acae9fa00a1210e49b3cd36710099607f9b4827d34764424f42cbb169351b88bb4d04afba53993e8c8862e83755d1ab1d304 postgresql-pgmq-1.1.1.tar.gz
+ce5161c08645cad6f5ef2623786654e7916eb14190b453affeb10c940aff7b98178a1b4d7ac99b2cff22fe589ced108f3261acc0fe8a9da160f18a7128b20775 bump-pgrx.patch
+"
diff --git a/testing/postgresql-pgmq/bump-pgrx.patch b/testing/postgresql-pgmq/bump-pgrx.patch
new file mode 100644
index 00000000000..8e8cef3627d
--- /dev/null
+++ b/testing/postgresql-pgmq/bump-pgrx.patch
@@ -0,0 +1,168 @@
+Patch-Source: https://github.com/tembo-io/pgmq/pull/188
+--
+From 0d7197eed345259336ff60fde9006533d8534c65 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 27 Jan 2024 23:25:26 +0100
+Subject: [PATCH] Bump pgrx from 0.11.0 to 0.11.3
+
+---
+ Cargo.lock | 62 ++++++++++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 46 insertions(+), 16 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index bc00ead..7839bd4 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -145,9 +145,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+ [[package]]
+ name = "bindgen"
+-version = "0.68.1"
++version = "0.69.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
++checksum = "a4c69fae65a523209d34240b60abe0c42d33d1045d445c0839d8a4894a736e2d"
+ dependencies = [
+ "bitflags 2.4.0",
+ "cexpr",
+@@ -1354,9 +1354,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx"
+-version = "0.11.0"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bd3c4b36fbe84329b86c83bfd33b9514a50606f00074f47085f99062a7dd8c9c"
++checksum = "2102faa5ef4a7bf096fefcf67692b293583efd18f9236340ad3169807dfc2b73"
+ dependencies = [
+ "atomic-traits",
+ "bitflags 2.4.0",
+@@ -1379,9 +1379,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-macros"
+-version = "0.11.0"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9c6a41e021321a814fac1aa27bd4266208b4507709ecbc28fc99693adfbd0c41"
++checksum = "c26810d09910ec987a6708d48d243efb5f879331e01c6fec0893714d0eb12bae"
+ dependencies = [
+ "pgrx-sql-entity-graph",
+ "proc-macro2",
+@@ -1391,9 +1391,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-pg-config"
+-version = "0.11.0"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "17da1e26800e747d501b8d8bb8aeee4530a07d93a39c3fb2c4229a8feff213b2"
++checksum = "0b0099ba4b635dfe1e34afc8bca8be43e9577c5d726aaf1dc7dd23a78f6c8a60"
+ dependencies = [
+ "cargo_toml",
+ "dirs",
+@@ -1409,11 +1409,12 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-pg-sys"
+-version = "0.11.0"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f9032b517525ec71579cc68e92905b5f5f63e892c094834202313c42f2f1a669"
++checksum = "3f40315259c41fede51eb23b791b48d0a112b0f47d0dcb6862b798d1fa1db6ea"
+ dependencies = [
+ "bindgen",
++ "clang-sys",
+ "eyre",
+ "libc",
+ "memoffset",
+@@ -1427,13 +1428,14 @@ dependencies = [
+ "shlex",
+ "sptr",
+ "syn 1.0.109",
++ "walkdir",
+ ]
+
+ [[package]]
+ name = "pgrx-sql-entity-graph"
+-version = "0.11.0"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2e4a88203974b887bca8bfdea17ab9936411fb7e84957763dc0124df78d07907"
++checksum = "7d47a4e991c8c66162c5d6b0fc2bd382e43a58fc893ce05a6a15ddcb1bf7eee4"
+ dependencies = [
+ "convert_case",
+ "eyre",
+@@ -1446,9 +1448,9 @@ dependencies = [
+
+ [[package]]
+ name = "pgrx-tests"
+-version = "0.11.0"
++version = "0.11.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c80deb4310538e6ef14f4cbb30b56eb24b6d7aae66bfd4e516f153987159e65e"
++checksum = "ab3abc01e2bb930b072bd660d04c8eaa69a29d4727d5b2a641f946c603c1605e"
+ dependencies = [
+ "clap-cargo",
+ "eyre",
+@@ -1832,6 +1834,15 @@ version = "1.0.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
+ [[package]]
+ name = "schannel"
+ version = "0.1.22"
+@@ -1980,9 +1991,9 @@ dependencies = [
+
+ [[package]]
+ name = "shlex"
+-version = "1.2.0"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
++checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+ [[package]]
+ name = "signature"
+@@ -2645,6 +2656,16 @@ dependencies = [
+ "libc",
+ ]
+
++[[package]]
++name = "walkdir"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
++dependencies = [
++ "same-file",
++ "winapi-util",
++]
++
+ [[package]]
+ name = "wasi"
+ version = "0.10.0+wasi-snapshot-preview1"
+@@ -2747,6 +2768,15 @@ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
++[[package]]
++name = "winapi-util"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
++dependencies = [
++ "winapi",
++]
++
+ [[package]]
+ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
diff --git a/testing/pounce/APKBUILD b/testing/pounce/APKBUILD
new file mode 100644
index 00000000000..76069dc5e4e
--- /dev/null
+++ b/testing/pounce/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: ayushnix <ayush@ayushnix.com>
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=pounce
+pkgver=3.1
+pkgrel=3
+pkgdesc="Multi-client, TLS-only IRC bouncer"
+arch="all"
+url="https://git.causal.agency/pounce/"
+license="GPL-3.0-or-later"
+options="!check" # No test suite
+makedepends="libretls-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://git.causal.agency/pounce/snapshot/pounce-$pkgver.tar.gz
+ pounce.confd
+ pounce.initd
+ calico.confd
+ calico.initd
+ pounce.pre-install"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make all
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 "$srcdir"/pounce.confd "$pkgdir"/etc/conf.d/pounce
+ install -Dm644 "$srcdir"/calico.confd "$pkgdir"/etc/conf.d/calico
+ install -Dm755 "$srcdir"/pounce.initd "$pkgdir"/etc/init.d/pounce
+ install -Dm755 "$srcdir"/calico.initd "$pkgdir"/etc/init.d/calico
+}
+
+sha512sums="
+b2c2481e152368080e6ce9b3be2d7920eb4cac630dabb994e31170fb44977e2235c0ff30a7f08e826a329da69371a3ff2dae33831cb93b18655f98fc6569da7d pounce-3.1.tar.gz
+9f265d407b492a8cbc21455382ad0437605a2008a896f22a39c1d7606f437b5cc06b42a25f0115dc4142a1f43012a573a943ae120a124783b8f570967a7ae748 pounce.confd
+c341fd11cb59766f6a41bfdc0ce69d9c771ad26291ccdd6bace5225e2ced092fc9ecf9e1f533fe7901ab3be84edd8356a523c4736beb088325f99f7105ca9ba0 pounce.initd
+388f3a064705eb1e4d978e4e75e43c65342c6e3fdbc872cea0da120ea5d443598a2e5c5b574a17a2214056fdf00b3c3d103212650a958156db263d0c2830408f calico.confd
+9ad4d2b314e7ec33f353636cc57de0d609b472870cf500ddd6e222e458cbc3b93b221cc805df04b51ec41f80576e19c30b296671cea3eeab388af9a8ae6e5c5d calico.initd
+c4082bd08ee0124a10ddce240de62b8ef6e5ae85e939e856af7758ac43ef8edca3fd6e219823d6259848b59589f3db51de6d73735e4d5fcadf8c7be05d49a7bf pounce.pre-install
+"
diff --git a/testing/pounce/calico.confd b/testing/pounce/calico.confd
new file mode 100644
index 00000000000..0c25fcfd1c2
--- /dev/null
+++ b/testing/pounce/calico.confd
@@ -0,0 +1,22 @@
+calico_user=pounce
+calico_group=pounce
+
+# the $calico_dir directory should be accessible to the $calico_user and the
+# $pounce_user in the respective pounce config file in /etc/conf.d/
+# the value of this variable should be equal to the value of the 'local-path'
+# configuration option in pounce configuration file(s)
+calico_dir=/run/pounce
+
+# the '-H' argument for calico
+# the hostname on which calico will listen on
+# calico_hostname=hostname.example.org
+
+# the '-P' argument for calico
+# read calico(1) for more details
+# calico_port=
+
+# the '-t' argument for calico
+# read calico(1) for more details
+# calico_timeout=
+
+supervisor=supervise-daemon
diff --git a/testing/pounce/calico.initd b/testing/pounce/calico.initd
new file mode 100644
index 00000000000..c2728cdc7fd
--- /dev/null
+++ b/testing/pounce/calico.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+: "${calico_user:=pounce}"
+: "${calico_group:=pounce}"
+: "${calico_hostname:=localhost}"
+: "${calico_dir:=/run/$calico_user}"
+
+name="calico"
+description="dispatch incoming TLS connections to pounce by SNI"
+command=/usr/bin/calico
+command_args="-H $calico_hostname $calico_dir"
+[ -n "$calico_port" ] && command_args="$command_args -P $calico_port"
+[ -n "$calico_timeout" ] && command_args="$command_args -t $calico_timeout"
+command_background=true
+command_user="${calico_user}:${calico_group}"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need localmount net
+ use dns
+}
diff --git a/testing/pounce/pounce.confd b/testing/pounce/pounce.confd
new file mode 100644
index 00000000000..cdb61e01ad4
--- /dev/null
+++ b/testing/pounce/pounce.confd
@@ -0,0 +1,13 @@
+pounce_user=pounce
+pounce_group=pounce
+pounce_verbose=true
+
+# specify the location of the configuration file for an IRC network
+# pounce_config="/var/lib/pounce/.config/pounce/libera.conf"
+
+# if an initscript called pounce.libera is symlinked to the pounce initscript,
+# the default log file will be /var/log/pounce.libera.log
+# output_log=/var/log/pounce.log"
+# error_log=/var/log/pounce.log"
+
+supervisor=supervise-daemon
diff --git a/testing/pounce/pounce.initd b/testing/pounce/pounce.initd
new file mode 100644
index 00000000000..ca87a621f82
--- /dev/null
+++ b/testing/pounce/pounce.initd
@@ -0,0 +1,41 @@
+#!/sbin/openrc-run
+
+description="A multi-client, TLS-only IRC bouncer"
+
+: "${pounce_user:=pounce}"
+: "${pounce_group:=pounce}"
+: "${pounce_verbose:=false}"
+: "${output_log:=/var/log/${RC_SVCNAME}.log}"
+: "${error_log:=/var/log/${RC_SVCNAME}.log}"
+
+instance_name="${RC_SVCNAME#*.}"
+[ "$instance_name" != "pounce" ] \
+ && name="pounce ($instance_name)" \
+ || name="pounce"
+
+command=/usr/bin/pounce
+command_background="true"
+pidfile="/run/${RC_SVCNAME}.pid"
+command_user="${pounce_user}:${pounce_group}"
+
+if yesno "${pounce_verbose}"; then
+ command_args="-v $pounce_config"
+else
+ command_args="$pounce_config"
+fi
+
+depend() {
+ need localmount net
+ use dns
+}
+
+start_pre() {
+ [ -n "$output_log" ] && checkpath -q -f -m 0640 \
+ -o "$command_user" "$output_log"
+
+ [ -n "$error_log" ] && checkpath -q -f -m 0640 \
+ -o "$command_user" "$error_log"
+
+ [ -n "$pounce_config" ] && checkpath -q -f -m 0640 \
+ -o "$command_user" "$pounce_config"
+}
diff --git a/testing/pounce/pounce.pre-install b/testing/pounce/pounce.pre-install
new file mode 100644
index 00000000000..99dfa6c47a4
--- /dev/null
+++ b/testing/pounce/pounce.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+addgroup -S pounce 2> /dev/null
+adduser -S -D -H -h /var/lib/pounce -s /sbin/nologin -G pounce -g 'pounce irc bouncer' pounce 2> /dev/null
+exit 0
diff --git a/testing/powder-toy/APKBUILD b/testing/powder-toy/APKBUILD
new file mode 100644
index 00000000000..5ded4fd3f74
--- /dev/null
+++ b/testing/powder-toy/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+pkgname=powder-toy
+pkgver=97.0.352
+pkgrel=0
+pkgdesc="Desktop version of the classic falling sand physics sandbox, simulates air pressure, velocity & heat!"
+url="http://powdertoy.co.uk/"
+# riscv64: textrels
+# ppc64le: luajit
+arch="all !ppc64le !riscv64"
+license="GPL-3.0-only"
+makedepends="
+ bzip2-dev
+ curl-dev
+ fftw-dev
+ jsoncpp-dev
+ libpng-dev
+ luajit-dev
+ meson
+ sdl2-dev
+ zlib-dev
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/The-Powder-Toy/The-Powder-Toy/archive/refs/tags/v$pkgver.tar.gz
+"
+options="!check" # no test suite
+builddir="$srcdir/The-Powder-Toy-$pkgver"
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ . build
+ meson compile -v -C build
+}
+
+package() {
+ cd "$builddir/build"
+ install -Dm755 "powder" "$pkgdir/usr/bin/powder"
+}
+
+sha512sums="
+001905b659efc4b4563f1918a3ae83ccc6f3727b26156a189191573e78548b8b7966b73423cf98f0fc8ddf5e77b32364bddc6566196b7bf7e9f88f2189947ed4 powder-toy-97.0.352.tar.gz
+"
diff --git a/testing/power-profiles-daemon/0001-dbus-no-systemd.patch b/testing/power-profiles-daemon/0001-dbus-no-systemd.patch
new file mode 100644
index 00000000000..6e63d4b54f3
--- /dev/null
+++ b/testing/power-profiles-daemon/0001-dbus-no-systemd.patch
@@ -0,0 +1,13 @@
+diff --git a/data/power-profiles-daemon.dbus.service.in b/data/power-profiles-daemon.dbus.service.in
+index 5baefa1..9d0043d 100644
+--- a/data/power-profiles-daemon.dbus.service.in
++++ b/data/power-profiles-daemon.dbus.service.in
+@@ -6,6 +6,6 @@
+
+ [D-BUS Service]
+ Name=@dbus_name@
+-Exec=/bin/false
++Exec=/usr/libexec/power-profiles-daemon
+ User=root
+ SystemdService=power-profiles-daemon.service
+
diff --git a/testing/power-profiles-daemon/APKBUILD b/testing/power-profiles-daemon/APKBUILD
new file mode 100644
index 00000000000..88a2a6f4a7b
--- /dev/null
+++ b/testing/power-profiles-daemon/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Cedric Bellegarde <cedric.bellegarde@adishatz.org>
+pkgname=power-profiles-daemon
+pkgver=0.20
+pkgrel=1
+pkgdesc="Makes power profiles handling available over D-Bus"
+url="https://gitlab.freedesktop.org/upower/power-profiles-daemon"
+arch="all"
+license="GPL-3.0-or-later"
+depends="
+ glib
+ py3-gobject3
+ "
+makedepends="
+ glib-dev
+ libgudev-dev
+ meson
+ polkit-dev
+ upower-dev
+ "
+checkdepends="
+ py3-dbusmock
+ umockdev
+ "
+source="https://gitlab.freedesktop.org/upower/power-profiles-daemon/-/archive/$pkgver/power-profiles-daemon-$pkgver.tar.gz
+ 0001-dbus-no-systemd.patch
+ "
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dsystemdsystemunitdir="" \
+ -Dtests="$(want_check && echo true || echo false)" \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+b3e7f91aa68feec3c38b32b301401a9c9afe46badaf83e59cc73fe5d2aa5ea87a66d4584977b1f0de94b0283381183a6b755096be2156169c6b4a09149295d68 power-profiles-daemon-0.20.tar.gz
+62dcec5d54b9014d16ec74448782beee656d4736c24e69c6a2111c92f895ee6869311e4f7e72a679226485374db14274d6e2ad54e62103b29c3301d6840d8891 0001-dbus-no-systemd.patch
+"
diff --git a/testing/powerctl/APKBUILD b/testing/powerctl/APKBUILD
new file mode 100644
index 00000000000..2a27e9aa7db
--- /dev/null
+++ b/testing/powerctl/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+pkgname=powerctl
+pkgver=1.1
+pkgrel=5
+pkgdesc="CLI tool to manage Linux power management states"
+url="https://sr.ht/~sircmpwn/powerctl/"
+arch="x86_64 aarch64 riscv64" # Hare
+license="GPL-3.0-only"
+makedepends="hare scdoc"
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/powerctl/archive/$pkgver.tar.gz
+ new-hare-strings.patch
+ getopts-fs-flags.patch
+"
+install="$pkgname.post-install"
+# Hare does not support PIE
+options="$options !check suid"
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+02fec6e8bab802cbb7436cb1ea378cba2ddf84ac1dc129f10ccb5ccad91f5d44d56373871ff14b23cc81eddf22abfdc2f92c87baece94fbba7aaf91f1654dc1a powerctl-1.1.tar.gz
+123c185190a1b8cd96d4d4edb6d3e5101f4884cbf2f83fc00bc3218bccc101733c1068e77579c942f5acb3e5573071257b76d38b1594d066def3c1c2febb9b2d new-hare-strings.patch
+db6c2331256aca10908cc43cc08f17ca45c3a6f4966315a95ba99652ff09d8d62f632312e8c3b985fd95eb96509efbce45e89fe10a8f9f279bde509c4d9bc31d getopts-fs-flags.patch
+"
diff --git a/testing/powerctl/getopts-fs-flags.patch b/testing/powerctl/getopts-fs-flags.patch
new file mode 100644
index 00000000000..847c39314cd
--- /dev/null
+++ b/testing/powerctl/getopts-fs-flags.patch
@@ -0,0 +1,79 @@
+From: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+Subject: [PATCH] Fix getopts and fs::flag to match latest Hare changes
+Date: Fri, 15 Sep 2023 15:36:19 -0300
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+
+---
+It would be nice if you could release a new version containing
+these fixes, so I could package downstream.
+
+ main.ha | 10 +++++-----
+ sysfs.ha | 2 +-
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/main.ha b/main.ha
+index 9e80e9a..0a59752 100644
+--- a/main.ha
++++ b/main.ha
+@@ -44,7 +44,7 @@ export fn main() void = {
+
+ if (op == operation::QUERY) {
+ if (len(cmd.args) != 0) {
+- getopt::printhelp(os::stderr, "powerctl", help...);
++ getopt::printhelp(os::stderr, "powerctl", help...)!;
+ os::exit(1);
+ };
+
+@@ -64,7 +64,7 @@ export fn main() void = {
+ };
+
+ if (len(cmd.args) != 1) {
+- getopt::printhelp(os::stderr, "powerctl", help...);
++ getopt::printhelp(os::stderr, "powerctl", help...)!;
+ os::exit(1);
+ };
+
+@@ -76,7 +76,7 @@ export fn main() void = {
+ case let state: disk_state =>
+ yield state;
+ case errors::invalid =>
+- getopt::printhelp(os::stderr, "powerctl", help...);
++ getopt::printhelp(os::stderr, "powerctl", help...)!;
+ os::exit(1);
+ };
+ const result = set_disk_state(state);
+@@ -95,7 +95,7 @@ export fn main() void = {
+ case let state: mem_state =>
+ yield state;
+ case errors::invalid =>
+- getopt::printhelp(os::stderr, "powerctl", help...);
++ getopt::printhelp(os::stderr, "powerctl", help...)!;
+ os::exit(1);
+ };
+ const result = set_mem_state(state);
+@@ -105,7 +105,7 @@ export fn main() void = {
+ case let state: sleep_state =>
+ yield state;
+ case errors::invalid =>
+- getopt::printhelp(os::stderr, "powerctl", help...);
++ getopt::printhelp(os::stderr, "powerctl", help...)!;
+ os::exit(1);
+ };
+ const result = set_sleep_state(state);
+diff --git a/sysfs.ha b/sysfs.ha
+index 3473086..df7f373 100644
+--- a/sysfs.ha
++++ b/sysfs.ha
+@@ -46,7 +46,7 @@ fn read_states(path: str) (strings::tokenizer | fs::error | io::error) = {
+ };
+
+ fn write_sysfs_file(path: str, content: str) (void | fs::error | io::error) = {
+- const file = os::open(path, fs::flags::WRONLY | fs::flags::TRUNC)?;
++ const file = os::open(path, fs::flag::WRONLY | fs::flag::TRUNC)?;
+ defer io::close(file)!;
+ io::write(file, strings::toutf8(content))?;
+ };
+--
+2.42.0
+
diff --git a/testing/powerctl/new-hare-strings.patch b/testing/powerctl/new-hare-strings.patch
new file mode 100644
index 00000000000..9fdcb4dd919
--- /dev/null
+++ b/testing/powerctl/new-hare-strings.patch
@@ -0,0 +1,37 @@
+Patch-Source: https://git.sr.ht/~sircmpwn/powerctl/commit/1c30fc759f5999718e810e69e7d05658030c1373
+--
+From 1c30fc759f5999718e810e69e7d05658030c1373 Mon Sep 17 00:00:00 2001
+From: Carlos Une <une@fastmail.fm>
+Date: Sun, 16 Oct 2022 00:12:02 -0300
+Subject: [PATCH] Fix build with Hare ^HEAD
+
+Signed-off-by: Carlos Une <une@fastmail.fm>
+---
+ sysfs.ha | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sysfs.ha b/sysfs.ha
+index 5cf9591..3473086 100644
+--- a/sysfs.ha
++++ b/sysfs.ha
+@@ -41,7 +41,7 @@ fn read_states(path: str) (strings::tokenizer | fs::error | io::error) = {
+ case =>
+ abort("Unexpected EOF from sysfs");
+ };
+- const string = strings::rtrim(strings::fromutf8(buf[..z]), '\n');
++ const string = strings::rtrim(strings::fromutf8(buf[..z])!, '\n');
+ return strings::tokenize(string, " ");
+ };
+
+@@ -255,7 +255,7 @@ fn read_image_size() (size | fs::error | io::error) = {
+ abort("Unexpected EOF from /sys/power/image_size");
+ };
+
+- const val = strings::rtrim(strings::fromutf8(buf[..z]), '\n');
++ const val = strings::rtrim(strings::fromutf8(buf[..z])!, '\n');
+ match (strconv::stoz(val)) {
+ case let z: size =>
+ return z;
+--
+2.38.4
+
diff --git a/testing/powerctl/powerctl.post-install b/testing/powerctl/powerctl.post-install
new file mode 100644
index 00000000000..81f75c5d6a8
--- /dev/null
+++ b/testing/powerctl/powerctl.post-install
@@ -0,0 +1,2 @@
+#!/bin/sh
+addgroup -S power || true
diff --git a/testing/powerline-extra-symbols/APKBUILD b/testing/powerline-extra-symbols/APKBUILD
index 39c8d3376b9..1124f2ca8d9 100644
--- a/testing/powerline-extra-symbols/APKBUILD
+++ b/testing/powerline-extra-symbols/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Orson Teodoro <orsonteodoro@hotmail.com>
-# Maintainer: Orson Teodoro <orsonteodoro@hotmail.com>
+# Maintainer: Jacek Pruciak <alpine@juniorjpdj.pl>
pkgname=powerline-extra-symbols
-pkgver=0_git20171017
+pkgver=0_git20191017
pkgrel=0
pkgdesc="Extra glyphs for your powerline separators"
url="https://github.com/ryanoasis/powerline-extra-symbols"
@@ -11,12 +11,11 @@ license="MIT"
depends="fontconfig"
subpackages="$pkgname-doc"
options="!check" # upstream has no unit test
-_gitrev="7fa9262caf89c500d6024313d35f0571c90aae79"
-source="$pkgname-$pkgver.zip::https://github.com/ryanoasis/$pkgname/archive/$_gitrev.zip"
+_gitrev="ae05de7c51f6609479f4f1a4a0f6f65631731c1b"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ryanoasis/powerline-extra-symbols/archive/$_gitrev.tar.gz"
builddir="$srcdir/"$pkgname-$_gitrev
package() {
- cd "$builddir"
install -d "$pkgdir"/usr/share/fonts/$pkgname \
"$pkgdir"/usr/share/doc/$pkgname/
install -t "$pkgdir"/usr/share/fonts/$pkgname/ \
@@ -24,4 +23,4 @@ package() {
install -t "$pkgdir"/usr/share/doc/$pkgname/ "$builddir"/README.md
}
-sha512sums="8d0205a843ca2fbe9ba3ab174be2e3d94b132caa60df9b19de49dd23a2d715dccb60198272a55ceb4333fc4441649f5d12426c7aa381254b34149528396fddec powerline-extra-symbols-0_git20171017.zip"
+sha512sums="74da67b2b7eed1549aa1c2107839d1e8d790813d40cbf0588390ee625b94cc27cc33dbcb4f15e915da5db964618cf3bc830057a8983ca654e41f8dec93fac392 powerline-extra-symbols-0_git20191017.tar.gz"
diff --git a/testing/powerstat/APKBUILD b/testing/powerstat/APKBUILD
new file mode 100644
index 00000000000..a8c4e6d4bbc
--- /dev/null
+++ b/testing/powerstat/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Niklas Cathor <niklas.cathor@gmx.de>
+# Maintainer: Niklas Cathor <niklas.cathor@gmx.de>
+pkgname=powerstat
+pkgver=0.04.01
+pkgrel=0
+pkgdesc="Measures power consumption via ACPI battery data"
+url="https://github.com/ColinIanKing/powerstat"
+arch="all"
+license="GPL-2.0-only"
+depends="linux-headers"
+subpackages="$pkgname-doc $pkgname-bash-completion"
+source="https://github.com/ColinIanKing/powerstat/archive/V$pkgver/powerstat-$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ make PEDANTIC=1
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+83d6381fc311968466a02bf578c279e48796bf53120c2583dfcbed2f3ee3deef21771a1d0ecfcc6774b7cc068a9657d624bc5f23ba2eaf7dbfd539b1c60cf201 powerstat-0.04.01.tar.gz
+"
diff --git a/testing/powersupply/APKBUILD b/testing/powersupply/APKBUILD
new file mode 100644
index 00000000000..0707d54f41b
--- /dev/null
+++ b/testing/powersupply/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=powersupply
+pkgver=0.9.0
+pkgrel=0
+pkgdesc="GTK3 app to display power status of phones"
+url="https://gitlab.com/MartijnBraam/powersupply"
+arch="noarch"
+license="MIT"
+source="https://gitlab.com/MartijnBraam/powersupply/-/archive/$pkgver/powersupply-$pkgver.tar.gz"
+depends="
+ gtk+3.0
+ libhandy1
+ py3-gobject3
+ python3
+ "
+makedepends="
+ libhandy1-dev
+ meson
+ "
+options="!check" # There's no testsuite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+0fc4d71a8d3be0208b6a9e08472bf154ab1ef7d832f7e4ffb093ad20744f2cf1fcdf06c26a627618867839d67480d21254df216229fc8eca65845b415bac85ec powersupply-0.9.0.tar.gz
+"
diff --git a/testing/ppl/APKBUILD b/testing/ppl/APKBUILD
new file mode 100644
index 00000000000..ad6ea7c4a1f
--- /dev/null
+++ b/testing/ppl/APKBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Cormac Stephenson <c7s@kasku.net>
+pkgname=ppl
+pkgver=1.2
+pkgrel=1
+pkgdesc="Parma Polyhedra Library"
+url="https://www.bugseng.com/ppl"
+# ppc64le: fails tests
+arch="all !ppc64le"
+license="GPL-3.0-or-later"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ libppl
+ libppl_c
+ "
+makedepends="gmp-dev m4"
+source="https://bugseng.com/products/ppl/download/ftp/releases/$pkgver/ppl-$pkgver.tar.xz
+ gcc13.patch
+ "
+
+build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ ./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --disable-static \
+ --enable-interfaces="c,cxx"
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+libppl() {
+ amove usr/lib/libppl.so.*
+}
+
+libppl_c() {
+ amove usr/lib/libppl_c.so.*
+}
+
+doc() {
+ default_doc
+ license="GFDL-1.2-only"
+}
+
+sha512sums="
+b509ed85fa6aedd40119bd4c980b17f33072c56c2acd923da3445b6bc80d48051cfa4c04cce96f6974711f5279c24b31cb3869f87b2eb6a2a1b30a058c809350 ppl-1.2.tar.xz
+e9ca1b4217257c58e7a23055ffbd683ff5572112f551fedf6f81104469aedb67198c5fe03fe50f01ec9a30d737effe07e034c46282677fd824c02fb3b88c4206 gcc13.patch
+"
diff --git a/testing/ppl/gcc13.patch b/testing/ppl/gcc13.patch
new file mode 100644
index 00000000000..6309124477d
--- /dev/null
+++ b/testing/ppl/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/src/ppl-config.cc.in b/src/ppl-config.cc.in
+index ffaf352..954a5fe 100644
+--- a/src/ppl-config.cc.in
++++ b/src/ppl-config.cc.in
+@@ -33,6 +33,7 @@ namespace PPL = Parma_Polyhedra_Library;
+ #error "PPL version 0.8 or following is required"
+ #endif
+
++#include <cassert>
+ #include <cstdarg>
+ #include <cstring>
+ #include <cctype>
diff --git a/testing/ppsspp/APKBUILD b/testing/ppsspp/APKBUILD
deleted file mode 100644
index 32e9922a454..00000000000
--- a/testing/ppsspp/APKBUILD
+++ /dev/null
@@ -1,80 +0,0 @@
-# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
-# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
-pkgname=ppsspp
-pkgver=1.9
-pkgrel=2
-pkgdesc="PPSSPP - a fast and portable PSP emulator"
-url="https://www.ppsspp.org/"
-arch="x86_64" # only available on x86_64 due to compiling problems
-_armips_commit="7885552b208493a6a0f21663770c446c3ba65576"
-_discord_commit="3d3ae7129d17643bc706da0a2eea85aafd10ab3a"
-_glslang_commit="f9d08a25fbe17e0677a89d398f4d7f232339c3f9"
-_spirv_cross_commit="a1f7c8dc8ea2f94443951ee27003bffa562c1f13"
-_rapidjson_commit="73063f5002612c6bf64fe24f851cd5cc0d83eef9"
-_lang_commit="bfc3a511f60e84de4d49170e2c442ac36b09cdfd"
-_ffmpeg_commit="90701640c7f458461310b54e7d4041230e2d5d5a"
-license="GPL-2.0-only"
-makedepends="make glew-dev libzip-dev snappy-dev mesa-dev qt5-qtbase-dev zlib-dev sdl2-dev cmake coreutils"
-options="!check" # make check not implemented
-source="ppsspp-$pkgver.tar.gz::https://github.com/hrydgard/ppsspp/archive/v$pkgver.tar.gz
- ppsspp-$pkgver-armips.tar.gz::https://github.com/Kingcom/armips/archive/$_armips_commit.tar.gz
- ppsspp-$pkgver-discord-rpc.tar.gz::https://github.com/discordapp/discord-rpc/archive/$_discord_commit.tar.gz
- ppsspp-$pkgver-glslang.tar.gz::https://github.com/hrydgard/glslang/archive/$_glslang_commit.tar.gz
- ppsspp-$pkgver-SPIRV-Cross.tar.gz::https://github.com/KhronosGroup/SPIRV-Cross/archive/$_spirv_cross_commit.tar.gz
- ppsspp-$pkgver-rapidjson.tar.gz::https://github.com/Tencent/rapidjson/archive/$_rapidjson_commit.tar.gz
- ppsspp-$pkgver-lang.tar.gz::https://github.com/hrydgard/ppsspp-lang/archive/$_lang_commit.tar.gz
- ppsspp-$pkgver-ffmpeg.tar.gz::https://github.com/hrydgard/ppsspp-ffmpeg/archive/$_ffmpeg_commit.tar.gz
- ppsspp.desktop
- ppsspp
- ppsspp-version.patch
- ppsspp-headless"
-
-prepare() {
- default_prepare
- # adding submodules needed by ppsspp
- mv "$srcdir/"armips-$_armips_commit/* "$builddir"/ext/armips/
- mv "$srcdir/"discord-rpc-$_discord_commit/* "$builddir"/ext/discord-rpc/
- mv "$srcdir/"glslang-$_glslang_commit/* "$builddir"/ext/glslang/
- mv "$srcdir/"rapidjson-$_rapidjson_commit/* "$builddir"/ext/rapidjson/
- mv "$srcdir/"SPIRV-Cross-$_spirv_cross_commit/* "$builddir"/ext/SPIRV-Cross/
- mv "$srcdir/"$pkgname-lang-$_lang_commit/* "$builddir"/assets/lang/
- mv "$srcdir/"$pkgname-ffmpeg-$_ffmpeg_commit/* "$builddir"/ffmpeg
- cd "$builddir"/ffmpeg
- ./linux_x86-64.sh
-}
-
-build() {
- mkdir build-qt
- cd build-qt
- cmake .. \
- -DUSING_QT_UI=ON \
- -DHEADLESS=ON
- make
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin
- install -m 755 $srcdir/ppsspp "$pkgdir"/usr/bin/ppsspp
- install -m 755 $srcdir/ppsspp-headless "$pkgdir"/usr/bin/ppsspp-headless
- mkdir -p "$pkgdir"/usr/share/ppsspp
- mv build-qt/assets "$pkgdir"/usr/share/ppsspp
- cp -Rp build-qt/PPSSPPQt "$pkgdir"/usr/share/ppsspp
- cp -Rp build-qt/PPSSPPHeadless "$pkgdir"/usr/share/ppsspp
- mkdir -p "$pkgdir"/usr/share/applications
- install -m 644 $srcdir/ppsspp.desktop "$pkgdir"/usr/share/applications/ppsspp.desktop
- mkdir -p "$pkgdir"/usr/share/pixmaps
- install -m 644 icons/icon-512.svg "$pkgdir"/usr/share/pixmaps/ppsspp.svg
-}
-
-sha512sums="10114014cb9df93326b6dcbe754b0fa7c80afcf201dbc50a40613e73ad1daf713b285629fbd63ed9c250d6f5ac4cb47331ca5167d65f49ad69d3c1af42daf258 ppsspp-1.9.tar.gz
-2a94e2c7b7280c00a39c8fc92d81ed15fc4b3270a124ef882e3cd8878db6ec827aefa06b0e646a60916636a95e4ebfa886e9878ba70c6bcfcd048def457368be ppsspp-1.9-armips.tar.gz
-17fb5de5d5afea9b7e0cdc116d5e3611b147eb2cde3a295a1a4ceb688bceb93d54feb2e479d511ce39d53a1380462a75dcdf6be9ddc2cece9d44b7f8ff7504af ppsspp-1.9-discord-rpc.tar.gz
-6360a09a7fd69652f84c4b85e1705baf9fecfe53c862625e22e5da1574fa4c2d4d14054bdfd49c5096ce93b371db286cefa28981550b6732ddaac64a7ed09c34 ppsspp-1.9-glslang.tar.gz
-b3faff10e2578a27740a013e463750c5244796e651b9586f900a3c97adba060f5e978d47a411f9fb255dd8314e21ea54cccbf90f726d1779448d5dc030f64b65 ppsspp-1.9-SPIRV-Cross.tar.gz
-3472e129e710bf5343b8b27a61581a1480c8096493e466440b62702d8b5353745d561931f72b5405a736ad92525be3843ea1cf4b5ea5839721cc6d6b358f19bc ppsspp-1.9-rapidjson.tar.gz
-8f0fa9b117e6637911985a6b6a642f94c3d98ad75b1f557dc6511989c695f1e6641ad5ca0f08c6852e514ebe514d3eaae27526cd744179421a39ab0cc48b40c0 ppsspp-1.9-lang.tar.gz
-e7ce75109dc74cf353e89805059c9b08b07b6f0c14504ea437712904f8980c9526b8b2844573b610d7775b9eafc6f7184b6c4496ba088fc689e580b5c62d5016 ppsspp-1.9-ffmpeg.tar.gz
-fb8c6c4a48003dac866b094f4d9d750bf7d1def14c9d3bf7a70f584ba187dacd5e57b29313e302740f5a0ec4bf27b6fea3d5cf27ae12bf6fac06f5a8ab23195b ppsspp.desktop
-c22214c15b6e9305f688c25c5997248a6a04c2dc229ea8c2126f0d288be7386134d15fc210e07f70f7eee13b0ab7ff05befd5657de0fc897d947f23c94711cd0 ppsspp
-3a4360b433149e5a9e6eed7d6330f2ecf4911bac76f23570596d413147e2aed44cf168290fac5c807d260fa6540672ac5d53ce95120bd5d348e95243fa53ffd3 ppsspp-version.patch
-6bf0dbe793cadbaa59199d0c0c169609db619ac4bb4bf33f226e5503765a9fb090c919a757b990396d3a744dfa217bc34c3a47e5e601a94da47b351035639113 ppsspp-headless"
diff --git a/testing/ppsspp/ppsspp b/testing/ppsspp/ppsspp
deleted file mode 100755
index f15c033b96e..00000000000
--- a/testing/ppsspp/ppsspp
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-cd /usr/share/ppsspp
-exec ./PPSSPPQt "$@"
diff --git a/testing/ppsspp/ppsspp-headless b/testing/ppsspp/ppsspp-headless
deleted file mode 100755
index 21175735fac..00000000000
--- a/testing/ppsspp/ppsspp-headless
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-cd /usr/share/ppsspp
-exec ./PPSSPPHeadless "$@"
diff --git a/testing/ppsspp/ppsspp-version.patch b/testing/ppsspp/ppsspp-version.patch
deleted file mode 100644
index b6247d2d879..00000000000
--- a/testing/ppsspp/ppsspp-version.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/git-version.cmake
-+++ b/git-version.cmake
-@@ -1,5 +1,5 @@
- set(GIT_VERSION_FILE "${SOURCE_DIR}/git-version.cpp")
--set(GIT_VERSION "unknown")
-+set(GIT_VERSION "1.9")
- set(GIT_VERSION_UPDATE "1")
-
- find_package(Git)
diff --git a/testing/ppsspp/ppsspp.desktop b/testing/ppsspp/ppsspp.desktop
deleted file mode 100644
index c3309ed01cc..00000000000
--- a/testing/ppsspp/ppsspp.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Type=Application
-Name=PPSSPP
-GenericName=PSP Emulator
-Comment=PlayStation Portable Simulator Suitable for Playing Portably (PPSSPP)
-Exec=/usr/bin/ppsspp
-Icon=ppsspp.svg
-Type=Application
-Terminal=false
-Categories=Game;Emulator;QT;
diff --git a/testing/pptpclient/APKBUILD b/testing/pptpclient/APKBUILD
index 5b58075997c..c39b38e2a1f 100644
--- a/testing/pptpclient/APKBUILD
+++ b/testing/pptpclient/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pptpclient
pkgver=1.10.0
-pkgrel=1
+pkgrel=4
pkgdesc="Client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP."
-url="http://pptpclient.sourceforge.net/"
+url="https://pptpclient.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
depends="ppp-daemon iproute2"
diff --git a/testing/pqiv/APKBUILD b/testing/pqiv/APKBUILD
index eae0b01305e..caeda49a44c 100644
--- a/testing/pqiv/APKBUILD
+++ b/testing/pqiv/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Sascha Paunovic <azarus@posteo.net>
# Maintainer: Sascha Paunovic <azarus@posteo.net>
pkgname=pqiv
-pkgver=2.11
-pkgrel=0
+pkgver=2.12
+pkgrel=1
pkgdesc="powerful image viewer with minimal UI"
url="http://www.pberndt.com/Programme/Linux/pqiv/index.html"
arch="all"
@@ -10,7 +10,7 @@ license="GPL-3.0-only"
makedepends="autoconf gtk+3.0-dev glib-dev cairo-dev libwebp-dev libspectre-dev
bash"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/phillipberndt/$pkgname/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/phillipberndt/pqiv/archive/$pkgver.tar.gz"
options="!check" # no testsuites
build() {
@@ -28,4 +28,4 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="6017a9d7ed332915a9f6fa788bb02c3b9d4d83c2ae2f9a8ab7d7738caa14ba3e9d253906f2e73fdfd368bb5e7bc51380ee9906fd9921e5f7f113811fd3da66f7 pqiv-2.11.tar.gz"
+sha512sums="f921d7949c9d229536188e9652cc687dcc55127875f329d0a64e6e2a55ea1a6827c0df6925685ae923ba1a000fbf2d2dc1dd825e67a12815a49b2cb703ea2e2f pqiv-2.12.tar.gz"
diff --git a/testing/prettier/APKBUILD b/testing/prettier/APKBUILD
new file mode 100644
index 00000000000..8956f59cd91
--- /dev/null
+++ b/testing/prettier/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=prettier
+pkgver=3.2.5
+pkgrel=0
+pkgdesc="Opinionated code formatter"
+url="https://prettier.io/"
+license="MIT"
+# armhf, armv7, x86, riscv64: fails to build
+# s390x: hangs at yarn "fetch step"
+arch="noarch !armhf !armv7 !x86 !riscv64 !s390x"
+depends="nodejs"
+makedepends="yarn"
+checkdepends="npm"
+subpackages="$pkgname-doc"
+source="https://github.com/prettier/prettier/archive/$pkgver/prettier-$pkgver.tar.gz"
+
+build() {
+ yarn install --frozen-lockfile
+ yarn build
+}
+
+check() {
+ yarn test:dist
+}
+
+package() {
+ local destdir=/usr/lib/node_modules/prettier
+
+ install -d \
+ "$pkgdir"/usr/bin \
+ "$pkgdir"/$destdir \
+ "$pkgdir"/usr/share/licenses/prettier
+
+ cp -r dist/* "$pkgdir"/$destdir
+ ln -s $destdir/bin/prettier.cjs "$pkgdir"/usr/bin/prettier
+
+ cd "$pkgdir"/$destdir
+ rm README.md # more links to various badges than actual content
+ mv LICENSE "$pkgdir"/usr/share/licenses/prettier/LICENSE
+}
+
+sha512sums="
+b74a06131f5d531096180224ccece2eed2c3eef79cc51c9c826325775c82c4c2aa9082b14e07beffcfda7fcb6213f3058c2c543be8a82af4b3ed298189e9399c prettier-3.2.5.tar.gz
+"
diff --git a/testing/primecount/APKBUILD b/testing/primecount/APKBUILD
new file mode 100644
index 00000000000..128c1c30c9c
--- /dev/null
+++ b/testing/primecount/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=primecount
+pkgver=7.11
+pkgrel=0
+pkgdesc="Fast prime counting C/C++ library"
+url="https://github.com/kimwalisch/primecount"
+arch="all !aarch64 !s390x" # iroot test failed
+license="BSD-2-Clause"
+makedepends="
+ cmake
+ samurai
+ primesieve-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kimwalisch/primecount/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_TESTS=ON \
+ -DBUILD_LIBPRIMESIEVE=OFF \
+ -DWITH_POPCNT=OFF
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+2e58bc7214b0ff506086ab36b8840fbcd2a1f27e61dc134787bb5ce084d3f81e2c5190f69b47ad8ee970bb364fdc30354826b70db6c418f533d0bd521515717c primecount-7.11.tar.gz
+"
diff --git a/testing/primesieve/APKBUILD b/testing/primesieve/APKBUILD
new file mode 100644
index 00000000000..432dc9255d6
--- /dev/null
+++ b/testing/primesieve/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Curt Tilmes <Curt.Tilmes@nasa.gov>
+# Maintainer: Curt Tilmes <Curt.Tilmes@nasa.gov>
+pkgname=primesieve
+pkgver=12.1
+pkgrel=0
+pkgdesc="Program and library for generating prime numbers"
+url="http://primesieve.org"
+arch="all"
+license="BSD-2-Clause"
+makedepends="cmake samurai"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kimwalisch/primesieve/archive/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DBUILD_TESTS=ON
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+8a78b0db6750a2f00b78aa2e525d3061f2e287514469c14b3e2232874cc120242272ebc33070b91d74ce7fc98273bf08a192b38cf5078c8c9f95981a1187a1b3 primesieve-12.1.tar.gz
+"
diff --git a/testing/prjtrellis-db/APKBUILD b/testing/prjtrellis-db/APKBUILD
new file mode 100644
index 00000000000..eb2f7b2c816
--- /dev/null
+++ b/testing/prjtrellis-db/APKBUILD
@@ -0,0 +1,66 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=prjtrellis-db
+pkgver=0_git20230929
+_commit=4dda149b9e4f1753ebc8b011ece2fe794be1281a
+pkgrel=0
+pkgdesc="Project Trellis database"
+url="https://github.com/YosysHQ/prjtrellis-db"
+arch="noarch"
+license="CC0-1.0"
+source="
+ $pkgname-$_commit.tar.gz::https://github.com/YosysHQ/prjtrellis-db/archive/$_commit.tar.gz
+ "
+subpackages="
+ $pkgname-ecp5
+ $pkgname-machxo
+ $pkgname-machxo2
+ $pkgname-machxo3
+ $pkgname-machxo3d
+ "
+options="!check" # no unit tests provided
+builddir="$srcdir/prjtrellis-db-$_commit"
+
+package() {
+ local _destdir="$pkgdir"/usr/share/trellis/database
+ install -dm 755 "$_destdir"
+ cp -r \
+ devices.json \
+ ECP5 \
+ MachXO \
+ MachXO2 \
+ MachXO3 \
+ MachXO3D \
+ "$_destdir"
+}
+
+_subpkg() {
+ local _platform="$1"
+ pkgdesc="Project Trellis database for $_platform"
+ depends="$pkgname"
+ amove usr/share/trellis/database/"$_platform"
+
+}
+
+ecp5() {
+ _subpkg ECP5
+}
+
+machxo() {
+ _subpkg MachXO
+}
+
+machxo2() {
+ _subpkg MachXO2
+}
+
+machxo3() {
+ _subpkg MachXO3
+}
+
+machxo3d() {
+ _subpkg MachXO3D
+}
+
+sha512sums="
+e2e6d37ad93c082f97033288299c045138aebe3bb0ab0169545c0a7ee64a8b408007475ebb94b756378b1e51c3621c89f94b857d2bb9eec0d77bfea5ac7ebe4c prjtrellis-db-4dda149b9e4f1753ebc8b011ece2fe794be1281a.tar.gz
+"
diff --git a/testing/prjtrellis/0001-library-install-path.patch b/testing/prjtrellis/0001-library-install-path.patch
new file mode 100644
index 00000000000..47df3d1305c
--- /dev/null
+++ b/testing/prjtrellis/0001-library-install-path.patch
@@ -0,0 +1,86 @@
+Install libraries to /usr/lib, not to /usr/lib/trellis/.
+
+This fixes tracing dependencies:
+
+ >>> prjtrellis*: Tracing dependencies...
+ >>> ERROR: prjtrellis*: libtrellis.so: path not found
+ so:libboost_filesystem.so.1.82.0
+ so:libboost_program_options.so.1.82.0
+ so:libboost_thread.so.1.82.0
+ so:libc.musl-x86_64.so.1
+ so:libgcc_s.so.1
+ so:libpython3.11.so.1.0
+ so:libstdc++.so.6
+
+--- a/libtrellis/CMakeLists.txt 2023-05-08 09:55:05.000000000 +0200
++++ b/libtrellis/CMakeLists.txt 2024-01-10 10:31:42.455914809 +0100
+@@ -100,20 +100,6 @@ include(GNUInstallDirs)
+ file(RELATIVE_PATH TRELLIS_RPATH_LIBDIR /${CMAKE_INSTALL_BINDIR} /${CMAKE_INSTALL_LIBDIR})
+ file(RELATIVE_PATH TRELLIS_RPATH_DATADIR /${CMAKE_INSTALL_BINDIR} /${CMAKE_INSTALL_DATADIR})
+
+-function(setup_rpath name)
+- if(APPLE)
+- set_target_properties(${name} PROPERTIES
+- BUILD_WITH_INSTALL_RPATH ON
+- INSTALL_RPATH "@loader_path/${TRELLIS_RPATH_LIBDIR}/${PROGRAM_PREFIX}trellis"
+- INSTALL_NAME_DIR "@rpath")
+- elseif(UNIX)
+- set_target_properties(${name} PROPERTIES
+- BUILD_WITH_INSTALL_RPATH ON
+- INSTALL_RPATH "\$ORIGIN/${TRELLIS_RPATH_LIBDIR}/${PROGRAM_PREFIX}trellis")
+- endif()
+-endfunction()
+-
+-
+ # Avoid perturbing build if git version hasn't changed
+ file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/generated")
+ set(LAST_GIT_VERSION "")
+@@ -137,7 +123,6 @@ if (BUILD_ECPBRAM)
+ target_include_directories(${PROGRAM_PREFIX}ecpbram PRIVATE tools)
+ target_compile_definitions(${PROGRAM_PREFIX}ecpbram PRIVATE TRELLIS_RPATH_DATADIR="${TRELLIS_RPATH_DATADIR}" TRELLIS_PREFIX="${CMAKE_INSTALL_PREFIX}" TRELLIS_PROGRAM_PREFIX="${PROGRAM_PREFIX}")
+ target_link_libraries(${PROGRAM_PREFIX}ecpbram trellis ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${link_param})
+- setup_rpath(${PROGRAM_PREFIX}ecpbram)
+ if (WASI)
+ set_property(TARGET ${PROGRAM_PREFIX}ecpbram PROPERTY SUFFIX ".wasm")
+ endif()
+@@ -149,7 +134,6 @@ if (BUILD_ECPPACK)
+ target_include_directories(${PROGRAM_PREFIX}ecppack PRIVATE tools)
+ target_compile_definitions(${PROGRAM_PREFIX}ecppack PRIVATE TRELLIS_RPATH_DATADIR="${TRELLIS_RPATH_DATADIR}" TRELLIS_PREFIX="${CMAKE_INSTALL_PREFIX}" TRELLIS_PROGRAM_PREFIX="${PROGRAM_PREFIX}")
+ target_link_libraries(${PROGRAM_PREFIX}ecppack trellis ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${link_param})
+- setup_rpath(${PROGRAM_PREFIX}ecppack)
+ if (WASI)
+ set_property(TARGET ${PROGRAM_PREFIX}ecppack PROPERTY SUFFIX ".wasm")
+ endif()
+@@ -161,7 +145,6 @@ if (BUILD_ECPUNPACK)
+ target_include_directories(${PROGRAM_PREFIX}ecpunpack PRIVATE tools)
+ target_compile_definitions(${PROGRAM_PREFIX}ecpunpack PRIVATE TRELLIS_RPATH_DATADIR="${TRELLIS_RPATH_DATADIR}" TRELLIS_PREFIX="${CMAKE_INSTALL_PREFIX}" TRELLIS_PROGRAM_PREFIX="${PROGRAM_PREFIX}")
+ target_link_libraries(${PROGRAM_PREFIX}ecpunpack trellis ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${link_param})
+- setup_rpath(${PROGRAM_PREFIX}ecpunpack)
+ if (WASI)
+ set_property(TARGET ${PROGRAM_PREFIX}ecpunpack PROPERTY SUFFIX ".wasm")
+ endif()
+@@ -173,7 +156,6 @@ if (BUILD_ECPPLL)
+ target_include_directories(${PROGRAM_PREFIX}ecppll PRIVATE tools)
+ target_compile_definitions(${PROGRAM_PREFIX}ecppll PRIVATE TRELLIS_RPATH_DATADIR="${TRELLIS_RPATH_DATADIR}" TRELLIS_PREFIX="${CMAKE_INSTALL_PREFIX}" TRELLIS_PROGRAM_PREFIX="${PROGRAM_PREFIX}")
+ target_link_libraries(${PROGRAM_PREFIX}ecppll trellis ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${link_param})
+- setup_rpath(${PROGRAM_PREFIX}ecppll)
+ if (WASI)
+ set_property(TARGET ${PROGRAM_PREFIX}ecppll PROPERTY SUFFIX ".wasm")
+ endif()
+@@ -185,7 +167,6 @@ if (BUILD_ECPMULTI)
+ target_include_directories(${PROGRAM_PREFIX}ecpmulti PRIVATE tools)
+ target_compile_definitions(${PROGRAM_PREFIX}ecpmulti PRIVATE TRELLIS_RPATH_DATADIR="${TRELLIS_RPATH_DATADIR}" TRELLIS_PREFIX="${CMAKE_INSTALL_PREFIX}" TRELLIS_PROGRAM_PREFIX="${PROGRAM_PREFIX}")
+ target_link_libraries(${PROGRAM_PREFIX}ecpmulti trellis ${Boost_LIBRARIES} ${CMAKE_DL_LIBS} ${link_param})
+- setup_rpath(${PROGRAM_PREFIX}ecpmulti)
+ if (WASI)
+ set_property(TARGET ${PROGRAM_PREFIX}ecpmulti PROPERTY SUFFIX ".wasm")
+ endif()
+@@ -194,7 +175,7 @@ endif()
+
+
+ if (BUILD_SHARED)
+- install(TARGETS trellis ${PythonInstallTarget} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/${PROGRAM_PREFIX}trellis)
++ install(TARGETS trellis ${PythonInstallTarget} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
+
+ install(DIRECTORY ../database DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROGRAM_PREFIX}trellis PATTERN ".git" EXCLUDE)
diff --git a/testing/prjtrellis/APKBUILD b/testing/prjtrellis/APKBUILD
new file mode 100644
index 00000000000..db80d2feb31
--- /dev/null
+++ b/testing/prjtrellis/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=prjtrellis
+pkgver=1.4
+pkgrel=2
+pkgdesc="Documentation of the Lattice ECP5 bit-stream format"
+url="https://github.com/YosysHQ/prjtrellis"
+arch="all"
+license="ISC AND MIT"
+makedepends="
+ cmake
+ ninja
+ python3
+ python3-dev
+ boost-dev
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/YosysHQ/prjtrellis/archive/refs/tags/$pkgver.tar.gz
+
+ 0001-library-install-path.patch
+ "
+options="!check" # no unit tests provided
+
+build() {
+ cmake -B build -G Ninja -S libtrellis \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCURRENT_GIT_VERSION=$pkgver \
+ #
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+3fd8bf533da98f3cdf6a0fe92ee4b2cb5d58fcc568e3365a1927fae392a4aaeec80b1f53e26ccd6c7afd7efb17b749cd8bac6d3ec2d17f9ad2c33da592a213d9 prjtrellis-1.4.tar.gz
+f6cee3e14a05a5ad8845f11ad3b6102cdbacb43b906eaa3f3892b7418193a4652bf3ff1a3ce42496a39adeecea5fe55bf32a470cf7b3a23b653e052b22c68a3f 0001-library-install-path.patch
+"
diff --git a/testing/procs/APKBUILD b/testing/procs/APKBUILD
deleted file mode 100644
index 392cd3ba55c..00000000000
--- a/testing/procs/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Chloe Kudryavtsev <toast@toastin.space>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=procs
-pkgver=0.10.3
-pkgrel=0
-pkgdesc="Modern replacement for ps written in Rust"
-url="https://github.com/dalance/procs"
-arch="x86_64 armv7 armhf !aarch64 x86 ppc64le" # limited by rust/cargo (aarch64 due to MAP_32BIT in nix package)
-arch="$arch !armhf !armv7 !x86" # test_run test_run_insert and test_run_tree fail, x86 fails to build
-license="MIT"
-options="net"
-makedepends="cargo"
-source="procs-$pkgver.tar.gz::https://github.com/dalance/procs/archive/v$pkgver.tar.gz"
-
-export CARGO_HOME="$srcdir"/cargo
-
-build() {
- cargo build \
- --release \
- --verbose \
- --locked
-}
-
-check() {
- cargo test --all \
- --release \
- --verbose \
- --locked
-}
-
-package() {
- install -Dm755 target/release/"$pkgname" "$pkgdir"/usr/bin/"$pkgname"
-}
-
-sha512sums="c07cf92b4ae576fb7e07f335e854075c123a5c9df1b03f91cec86fc06a060cbfb2dde6dc6ffbd4abcce01f8ceb1ee51d0395194f5174947bb4fc43f926f2982d procs-0.10.3.tar.gz"
diff --git a/testing/profanity/APKBUILD b/testing/profanity/APKBUILD
deleted file mode 100644
index fe4453e9572..00000000000
--- a/testing/profanity/APKBUILD
+++ /dev/null
@@ -1,58 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="profanity"
-pkgver="0.8.1"
-pkgrel=0
-pkgdesc="Ncurses based XMPP client"
-url="https://github.com/profanity-im/profanity"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="
- autoconf
- autoconf-archive
- automake
- libtool
- pkgconf
- libmesode-dev
- ncurses-dev
- glib-dev
- curl-dev
- readline-dev
- libnotify-dev
- libxscrnsaver
- libotr-dev
- gpgme-dev
- libsignal-protocol-c-dev
- libgcrypt-dev
- gtk+2.0-dev
- python3-dev
- cmocka-dev
-"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/profanity-im/profanity/archive/$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- ./bootstrap.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- libtool --finish /usr/lib
-}
-sha512sums="2062d7400056c44327470d11ec55cdb73948bdfea90fcbd33866e0a6d77b387f0eac56f4dfd158a8cff90f29893bd087b0ab954d2ef47da9f575c176bcdeb9ee profanity-0.8.1.tar.gz"
diff --git a/testing/profiled/APKBUILD b/testing/profiled/APKBUILD
deleted file mode 100644
index db1eccdead4..00000000000
--- a/testing/profiled/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=profiled
-pkgver=1.0.10
-pkgrel=0
-pkgdesc="Gets default set of settings from profile data packages that are installed on the device"
-url="https://git.sailfishos.org/mer-core/profiled"
-arch="all"
-license="BSD-2-Clause"
-makedepends="doxygen dbus-glib-dev glib-dev dbus-dev"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://git.sailfishos.org/mer-core/profiled/-/archive/$pkgver/profiled-$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- ROOT="$pkgdir" make install
-}
-
-sha512sums="b37bf4b54ee3f4dde0429d09977354c792bc5f07300a54b26a209fa1b386093420e846ad19caa7a9208fc53fd233e6679dfd06ec50257c803fde8288b7039ea7 profiled-1.0.10.tar.gz"
diff --git a/testing/proftpd/APKBUILD b/testing/proftpd/APKBUILD
deleted file mode 100644
index 0d7425c1324..00000000000
--- a/testing/proftpd/APKBUILD
+++ /dev/null
@@ -1,194 +0,0 @@
-# Contributor: Pedro Filipe <pedrofilipe64@gmail.com>
-# Contributor: Elizabeth Jennifer Myers <elizabeth@sporksirc.net>
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
-pkgname=proftpd
-pkgver=1.3.7_rc4
-_pkgver=${pkgver/_/}
-pkgrel=0
-pkgdesc="Highly configurable FTP server software"
-url="https://github.com/proftpd/proftpd"
-pkgusers=$pkgname
-pkggroups=$pkgname
-arch="all"
-license="GPL-2.0-or-later"
-options="!check" # almost all checks fail, disbled for now
-makedepends="autoconf
- automake
- pcre-dev
- libmemcached-dev
- openssl-dev
- sqlite-dev
- mariadb-connector-c-dev
- hiredis-dev
- unixodbc-dev
- postgresql-dev
- openldap-dev
- geoip-dev
- net-snmp-dev"
-install="$pkgname.pre-install"
-
-_modules=
-_modules="$_modules:mod_unique_id:mod_site_misc:mod_load:mod_ban:mod_quotatab:mod_sql:mod_sql_mysql:mod_sql_postgres:mod_sql_sqlite:mod_sql_odbc:mod_dynmasq"
-_modules="$_modules:mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap2:mod_wrap2_file"
-_modules="$_modules:mod_wrap2_sql:mod_quotatab_file:mod_quotatab_radius:mod_facl:mod_ctrls_admin:mod_copy:mod_deflate:mod_ifversion"
-_modules="$_modules:mod_geoip:mod_exec:mod_sftp:mod_sftp_sql:mod_shaper:mod_sql_passwd:mod_ifsession:mod_auth_otp:mod_tls_redis"
-_modules="$_modules:mod_wrap2_redis:mod_redis:mod_memcache:mod_tls_memcache:mod_readme:mod_snmp:mod_tls_shmcache"
-
-subpackages="$pkgname-doc
- $pkgname-utils
- $pkgname-openrc"
-
-for _module in ${_modules//:/ }; do
- subpackages="$subpackages $pkgname-$_module:_module"
-done
-
-source="$pkgname-$_pkgver.tar.gz::https://github.com/proftpd/proftpd/archive/v$_pkgver.tar.gz
- fix-autoconf.patch
- fix-ar-dir.patch
-
- $pkgname.logrotate
- $pkgname.initd
- $pkgname.conf
- mod_sftp.conf
- mod_tls_shmcache.conf"
-
-builddir="$srcdir/$pkgname-$_pkgver/"
-
-prepare() {
- default_prepare
- autoreconf -f
-}
-
-check() {
- make check
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc/$pkgname \
- --localstatedir=/run/$pkgname \
- --libexecdir=/usr/lib/$pkgname \
- --disable-static \
- --enable-sendfile \
- --enable-facl \
- --enable-dso \
- --enable-autoshadow \
- --enable-ctrls \
- --enable-ipv6 \
- --enable-pcre \
- --disable-strip \
- --disable-wtmp \
- --disable-auth-pam \
- --enable-openssl \
- --with-shared=$_modules
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/var/log/$pkgname \
- "$pkgdir"/etc/$pkgname/conf.d \
- "$pkgdir"/etc/$pkgname/modules.d
-
- install -Dm644 "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname/$pkgname.conf
- install -dm750 -o ftp -g ftp "$pkgdir"/var/lib/ftp
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
-
- rm -fr "$pkgdir"/run "$pkgdir"/usr/share/locale \
- "$pkgdir"/usr/sbin/in.$pkgname \
- "$pkgdir"/usr/lib/pkgconfig \
- "$pkgdir"/usr/include
-}
-
-dev() {
- default_dev
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/prxs "$subpkgdir"/usr/bin
-}
-
-doc() {
- default_doc
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname
- cd "$builddir"
- cp -r RELEASE_NOTES doc/* contrib/README* \
- contrib/mod_quotatab_ldap.ldif \
- contrib/mod_quotatab_ldap.schema \
- "$subpkgdir"/usr/share/doc/$pkgname
-}
-
-utils() {
- pkgdesc="$pkgdesc (utilities)"
- depends="$pkgname perl-mail-sendmail"
- mkdir -p "$subpkgdir"/usr/sbin
- mv "$pkgdir"/usr/sbin/ftpscrub \
- "$pkgdir"/usr/sbin/ftpshut \
- "$subpkgdir"/usr/sbin
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr
-}
-
-_module() {
- local name=${subpkgname#$pkgname-}
- local module_name=${name#mod_}
- local module_dep=${module_name%%_*}
-
- pkgdesc="ProFTPd module: $name"
- depends="$pkgname"
- mkdir -p "$subpkgdir"/usr/lib/$pkgname
- mv "$pkgdir"/usr/lib/$pkgname/$name.so "$subpkgdir"/usr/lib/$pkgname
- if [ -f "$srcdir"/$name.conf ]; then
- install -Dm644 "$srcdir"/$name.conf \
- "$subpkgdir"/etc/$pkgname/conf.d/$module_name.conf
- fi
-
- local file="$subpkgdir"/etc/$pkgname/modules.d/$module_name.conf
- mkdir -p ${file%/*}
- {
- echo "<IfModule !$name.c>"
- if [ "$module_name" != "$module_dep" ]; then
- depends="$depends $pkgname-mod_$module_dep"
- echo " <IfModule !mod_$module_dep.c>"
- echo " LoadModule mod_$module_dep.c"
- echo " </IfModule>"
- fi
- echo " LoadModule $name.c"
- echo "</IfModule>"
- } >$file
-
- # thats fine
- # shellcheck disable=2015
- type -q _post_$name && eval _post_$name || true
-}
-
-_post_mod_snmp() {
- mkdir -p "$subpkgdir"/usr/share/snmp/mibs
- mv "$pkgdir"/etc/$pkgname/PROFTPD-MIB.txt \
- "$subpkgdir"/usr/share/snmp/mibs
-}
-
-_post_mod_ldap() {
- mkdir -p "$subpkgdir"/etc/$pkgname
- cp "$builddir"/contrib/mod_quotatab_ldap.ldif \
- "$builddir"/contrib/mod_quotatab_ldap.schema \
- "$subpkgdir"/etc/$pkgname
-}
-
-_post_mod_sftp() {
- mkdir -p "$subpkgdir"/etc/$pkgname/authorized_keys
- mv "$pkgdir"/etc/$pkgname/dhparams.pem \
- "$pkgdir"/etc/$pkgname/blacklist.dat \
- "$subpkgdir"/etc/$pkgname/
-}
-
-sha512sums="8a782c27fae757b940396a9dd74a7336cac982f0fb3b28afd6a0b3837c8e93fc74c329ac520dd69f051740303ab776da2d9368d0b46814d264cad5ac0ac7003b proftpd-1.3.7rc4.tar.gz
-d127ffe52df1d0130cc838eaf8aaf2e2980704cd840afd7e2ee30b1c0cd40440a1552b652c7e47b13306accd0cabdf35b8ab78e04141f2a83d60c310bcfbf311 fix-autoconf.patch
-00cceed4c7fb98a109e1f7059e352d02cdbe9805df6e9de052fd44a9562f31234fbd72a57f92f6612b69c8ed6b946b7b9a5dd75ff98ce43b9eaf74ac48fabeda fix-ar-dir.patch
-142f8ba096844eb48883cdd3890fa3c0c4c8f73f7ce4f2acd5fb742053f8a3605b3f6ca5d5ab6c62c673d76eb60885d796af55bd7b53950794c4e7e2837973b8 proftpd.logrotate
-a03124a88c0c9f3981762804c62aa479f36227f24408a60437bf737c1e783c539a2d2c0aed0b1d95e56a587bdb5c372f6d670c298cdb7433ecd1f64d4bef7c42 proftpd.initd
-c6c6b6c32dd00d31fc1e328e989c77944aac993818747da05794c9560a270630e9bc7e09ac29215b57bcc709299d3720ae9009d3e2a94a0aef8cc5729fae1d0b proftpd.conf
-8c810838219dd0663d3a7390c4e3a31739c1389238f92f856a4c74cd5a71317e1cae0dcfecc4e43cc3057f8c4132539e87511e06620debb2f166694a15adc13e mod_sftp.conf
-2b5beaa4e01588b6d936b7ffda790e270fcba1e337eb43af11a1ad9c615d443d627c4bf66fe2b7946e57c65f5b1075568ab32df3c982e7e7d263b39d422693cd mod_tls_shmcache.conf"
diff --git a/testing/proftpd/fix-ar-dir.patch b/testing/proftpd/fix-ar-dir.patch
deleted file mode 100644
index 044c097778b..00000000000
--- a/testing/proftpd/fix-ar-dir.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Don't know why, but ar is running in the wrong directory on alpine.
-
---- old/lib/Makefile.in
-+++ new/lib/Makefile.in
-@@ -28,7 +28,7 @@
- cd libltdl/ && $(MAKE)
-
- libsupp.a: $(LIB_OBJS)
-- $(AR) rc libsupp.a $(LIB_OBJS)
-+ cd .libs && $(AR) rc ../libsupp.a $(LIB_OBJS)
- $(RANLIB) libsupp.a
-
- lib: libsupp.a $(LIB_DEPS)
diff --git a/testing/proftpd/fix-autoconf.patch b/testing/proftpd/fix-autoconf.patch
deleted file mode 100644
index cd4782f6668..00000000000
--- a/testing/proftpd/fix-autoconf.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- old/lib/libltdl/Makefile.am
-+++ new/lib/libltdl/Makefile.am
-@@ -50,19 +50,7 @@
- LTDL_VERSION_INFO = -version-info 9:0:2
-
- noinst_LTLIBRARIES += $(LT_DLLOADERS)
--
--if INSTALL_LTDL
--ltdlincludedir = $(includedir)/libltdl
--ltdlinclude_HEADERS = libltdl/lt_system.h \
-- libltdl/lt_error.h \
-- libltdl/lt_dlloader.h
--include_HEADERS += ltdl.h
--lib_LTLIBRARIES += libltdl.la
--endif
--
--if CONVENIENCE_LTDL
- noinst_LTLIBRARIES += libltdlc.la
--endif
-
- libltdl_la_SOURCES = libltdl/lt__alloc.h \
- libltdl/lt__dirent.h \
diff --git a/testing/proftpd/mod_sftp.conf b/testing/proftpd/mod_sftp.conf
deleted file mode 100644
index e4329cd09bb..00000000000
--- a/testing/proftpd/mod_sftp.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-<IfModule mod_sftp.c>
-# SFTPEngine on
-# Port 2222
-# SFTPLog /var/log/proftpd/sftp.log
-# SFTPHostKey /etc/ssh/ssh_host_rsa_key
-# SFTPHostKey /etc/ssh/ssh_host_dsa_key
-# SFTPAuthMethods publickey
-# SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u
-# SFTPCompression delayed
-</IfModule>
diff --git a/testing/proftpd/mod_tls_shmcache.conf b/testing/proftpd/mod_tls_shmcache.conf
deleted file mode 100644
index 25de2abf114..00000000000
--- a/testing/proftpd/mod_tls_shmcache.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-<IfModule mod_tls_shmcache.c>
-# TLSSessionCache shm:/file=/run/proftpd/sesscache
-</IfModule>
diff --git a/testing/proftpd/proftpd.conf b/testing/proftpd/proftpd.conf
deleted file mode 100644
index a7d91ca6d0d..00000000000
--- a/testing/proftpd/proftpd.conf
+++ /dev/null
@@ -1,87 +0,0 @@
-# This is a basic ProFTPD configuration file (rename it to
-# 'proftpd.conf' for actual use. It establishes a single server
-# and a single anonymous login. It assumes that you have a user/group
-# "proftpd" and "ftp" for normal operation and anon.
-
-# This is the directory where DSO modules reside
-ModulePath /usr/lib/proftpd
-
-# Allow only user root to load and unload modules, but allow everyone
-# to see which modules have been loaded
-ModuleControlsACLs insmod,rmmod allow user root
-ModuleControlsACLs lsmod allow user *
-
-Include /etc/proftpd/modules.d/
-
-ServerName "ProFTPD Default Installation"
-ServerType standalone
-#DefaultServer on
-
-# Port 21 is the standard FTP port.
-Port 21
-
-# Don't use IPv6 support by default.
-UseIPv6 off
-
-# Umask 022 is a good standard umask to prevent new dirs and files
-# from being group and world writable.
-Umask 022
-
-# To prevent DoS attacks, set the maximum number of child processes
-# to 30. If you need to allow more than 30 concurrent connections
-# at once, simply increase this value. Note that this ONLY works
-# in standalone mode, in inetd mode you should use an inetd server
-# that allows you to limit maximum number of processes per service
-# (such as xinetd).
-MaxInstances 30
-
-# Set the user and group under which the server will run.
-User proftpd
-Group proftpd
-
-# To cause every FTP user to be "jailed" (chrooted) into their home
-# directory, uncomment this line.
-#DefaultRoot ~
-
-# Normally, we want files to be overwriteable.
-AllowOverwrite on
-
-MultilineRFC2228 on
-DefaultServer on
-ShowSymlinks on
-
-TimeoutNoTransfer 600
-TimeoutStalled 600
-TimeoutIdle 1200
-
-DisplayLogin welcome.msg
-DisplayChdir .message true
-ListOptions "-l"
-
-DenyFilter \*.*/
-
-# A basic anonymous configuration, no upload directories. If you do not
-# want anonymous users, simply delete this entire <Anonymous> section.
-#<Anonymous ~ftp>
-# User ftp
-# Group ftp
-#
-# # We want clients to be able to login with "anonymous" as well as "ftp"
-# UserAlias anonymous ftp
-#
-# # Limit the maximum number of anonymous logins
-# MaxClients 10
-#
-# # We want 'welcome.msg' displayed at login, and '.message' displayed
-# # in each newly chdired directory.
-# DisplayLogin welcome.msg
-# DisplayChdir .message
-#
-# # Limit WRITE everywhere in the anonymous chroot
-# <Limit WRITE>
-# DenyAll
-# </Limit>
-#</Anonymous>
-
-Include /etc/proftpd/conf.d/
-
diff --git a/testing/proftpd/proftpd.initd b/testing/proftpd/proftpd.initd
deleted file mode 100644
index 05670abc715..00000000000
--- a/testing/proftpd/proftpd.initd
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/sbin/openrc-run
-
-name="ProFTPD"
-description="ProFTPD FTP Server"
-
-pidfile="/run/proftpd/proftpd.pid"
-command="/usr/sbin/proftpd"
-command_args="-n"
-command_background="yes"
-required_files="/etc/proftpd/proftpd.conf"
-extra_commands="checkconfig"
-extra_started_commands="reload"
-description_checkconfig="Check configuration"
-description_reload="Reload configuration"
-
-depend() {
- need net
- use logger dns
- after firewall
-}
-
-checkconfig() {
- $command -t
-}
-
-start_pre() {
- checkpath --directory ${pidfile%/*}
- checkconfig >/dev/null 2>&1
-}
-
-reload() {
- ebegin "Reloading ${name:-$RC_SVCNAME}"
- checkconfig >/dev/null 2>&1 && start-stop-daemon --signal HUP --pidfile $pidfile
- eend $?
-}
diff --git a/testing/proftpd/proftpd.logrotate b/testing/proftpd/proftpd.logrotate
deleted file mode 100644
index 6bc5056009c..00000000000
--- a/testing/proftpd/proftpd.logrotate
+++ /dev/null
@@ -1,9 +0,0 @@
-/var/log/proftpd/*.log /var/log/xferlog {
- compress
- missingok
- notifempty
- sharedscripts
- postrotate
- /etc/init.d/proftpd --ifstarted --quiet reload
- endscript
-}
diff --git a/testing/proftpd/proftpd.pre-install b/testing/proftpd/proftpd.pre-install
deleted file mode 100644
index 53c0d9c6df0..00000000000
--- a/testing/proftpd/proftpd.pre-install
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-addgroup -S proftpd 2>/dev/null
-adduser -S -D -h /var/lib/ftp -s /sbin/nologin -G proftpd -g proftpd proftpd 2>/dev/null
-adduser proftpd ftp 2>/dev/null
-
-exit 0
diff --git a/testing/projectm/APKBUILD b/testing/projectm/APKBUILD
new file mode 100644
index 00000000000..5a780da4eb2
--- /dev/null
+++ b/testing/projectm/APKBUILD
@@ -0,0 +1,100 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=projectm
+pkgver=3.1.12
+pkgrel=1
+pkgdesc="Music visualizer which uses 3D accelerated iterative image based rendering"
+url="https://github.com/projectM-visualizer/projectm"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="mesa-gl glm-dev mesa-dev musl-fts-dev qt5-qtbase-dev sdl2-dev pulseaudio-dev"
+subpackages="$pkgname-dev $pkgname-presets $pkgname-sdl $pkgname-pulseaudio
+ $pkgname-pulseaudio-doc:pulseaudio_doc"
+source="https://github.com/projectM-visualizer/projectm/releases/download/v$pkgver/projectM-$pkgver.tar.gz
+ fix-missing-gl-symbols-on-arm.patch"
+builddir="$srcdir/projectM-$pkgver"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ export LDFLAGS="$LDFLAGS -lfts"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-gles \
+ --enable-sdl \
+ --enable-threading \
+ --enable-pulseaudio \
+ --enable-qt
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install-data-am
+ cd "$builddir/src"
+ make DESTDIR="$pkgdir" install-am
+ cd "$builddir/src/libprojectM"
+ make DESTDIR="$pkgdir" install
+ # Presets
+ cd "$builddir/src/NativePresets"
+ make DESTDIR="$pkgdir" install
+ # SDL
+ cd "$builddir/src/projectM-sdl"
+ make DESTDIR="$pkgdir" install
+ # Pulseaudio
+ cd "$builddir/src/projectM-pulseaudio"
+ make DESTDIR="$pkgdir" install
+ # Running the make commands in separate functions for these three fails,
+ # so we run them here and move the files out in the subpackage-specific
+ # functions instead.
+}
+
+presets() {
+ pkgdesc="Music visualizer which uses 3D accelerated iterative image based rendering (presets)"
+ mkdir -p "$subpkgdir"/usr/share/projectM
+ mv "$pkgdir"/usr/share/projectM/presets \
+ "$subpkgdir"/usr/share/projectM
+}
+
+sdl() {
+ pkgdesc="Music visualizer which uses 3D accelerated iterative image based rendering (sdl)"
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/projectMSDL "$subpkgdir"/usr/bin/projectMSDL
+}
+
+pulseaudio() {
+ pkgdesc="Music visualizer which uses 3D accelerated iterative image based rendering (pulseaudio)"
+ mkdir -p "$subpkgdir"/usr/share/icons/hicolor/scalable/apps
+ mv "$pkgdir"/usr/share/icons/hicolor/scalable/apps/projectM.svg \
+ "$subpkgdir"/usr/share/icons/hicolor/scalable/apps/projectM.svg
+ mkdir -p "$subpkgdir"/usr/share/applications
+ mv "$pkgdir"/usr/share/applications/projectM-pulseaudio.desktop \
+ "$subpkgdir"/usr/share/applications/projectM-pulseaudio.desktop
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/projectM-pulseaudio "$subpkgdir"/usr/bin/projectM-pulseaudio
+}
+
+pulseaudio_doc() {
+ pkgdesc="Music visualizer which uses 3D accelerated iterative image based rendering (pulseaudio documentation)"
+ mkdir -p "$subpkgdir"/usr/share/man/man1
+ mv "$pkgdir"/usr/share/man/man1/projectM-pulseaudio.1 \
+ "$subpkgdir"/usr/share/man/man1/projectM-pulseaudio.1
+ rm -r "$pkgdir"/usr/share/man
+ default_doc
+}
+
+sha512sums="
+13aafc2ebd5eb4aa59b54d7c1d2933ed9a5c014899560a241079b725ffaed2e37f9ac451bb74a7fce235184ac795c55cb54c1d0f0c9e8c571e5cbda9cd3c4058 projectM-3.1.12.tar.gz
+8250250f5b409b4806869da1a5692d441c6928bf0ababdcce8072df74d8f93b314bbfe2c60a4d2c25a6a4d0d8722e3bf62106c63694933a05022970a3cbf02d1 fix-missing-gl-symbols-on-arm.patch
+"
diff --git a/testing/projectm/fix-missing-gl-symbols-on-arm.patch b/testing/projectm/fix-missing-gl-symbols-on-arm.patch
new file mode 100644
index 00000000000..6977b282af8
--- /dev/null
+++ b/testing/projectm/fix-missing-gl-symbols-on-arm.patch
@@ -0,0 +1,23 @@
+Fix missing GL symbols on ARM
+
+Fix taken from https://github.com/projectM-visualizer/projectm/issues/356
+
+---
+ src/projectM-qt/qprojectmwidget.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/projectM-qt/qprojectmwidget.hpp b/src/projectM-qt/qprojectmwidget.hpp
+index f51e2cf..7e03820 100644
+--- a/src/projectM-qt/qprojectmwidget.hpp
++++ b/src/projectM-qt/qprojectmwidget.hpp
+@@ -22,6 +22,7 @@
+ #ifndef QPROJECTM_WIDGET_HPP
+ #define QPROJECTM_WIDGET_HPP
+
++#include <GL/gl.h>
+ #include <iostream>
+ #include "qprojectm.hpp"
+ #include <QGLWidget>
+--
+2.32.0
+
diff --git a/testing/projectsandcastle-loader/APKBUILD b/testing/projectsandcastle-loader/APKBUILD
new file mode 100644
index 00000000000..c1f88b56848
--- /dev/null
+++ b/testing/projectsandcastle-loader/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Jonas Heinrich <onny@project-insanity.org>
+pkgname=projectsandcastle-loader
+pkgver=0_git20200307
+pkgrel=1
+pkgdesc="Loader for Android on iPhone"
+url="https://github.com/corellium/projectsandcastle"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libusb-dev"
+options="!check" # upstream does not provide tests
+_commit="03db9c6ae04141eb940f3b9f56d446f50d57fadf"
+
+source="projectsandcastle-$_commit.tar.gz::https://github.com/corellium/projectsandcastle/archive/$_commit.tar.gz"
+builddir="$srcdir"/projectsandcastle-$_commit/loader
+
+build() {
+ gcc -o load-linux load-linux.c -lusb-1.0
+}
+
+package() {
+ install -Dm755 load-linux "$pkgdir"/usr/bin/projectsandcastle-loader
+}
+
+sha512sums="
+2700611585d9949d5ec58e2d802eacc37934e05fb3c9a56b05ee720b954ba5b6be73d9b49fedc1365cb9c4dc2ae4d48b139001e5a5ae9ed80cb154e739b33a0d projectsandcastle-03db9c6ae04141eb940f3b9f56d446f50d57fadf.tar.gz
+"
diff --git a/testing/prometheus-bind-exporter/APKBUILD b/testing/prometheus-bind-exporter/APKBUILD
new file mode 100644
index 00000000000..f992cd6ffe2
--- /dev/null
+++ b/testing/prometheus-bind-exporter/APKBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Mike Crute <mike@crute.us>
+# Contributor: Mike Crute <mike@crute.us>
+pkgname=prometheus-bind-exporter
+_pkgname=bind_exporter
+pkgver=0.7.0
+pkgrel=3
+pkgdesc="Prometheus Bind Exporter"
+url="https://github.com/prometheus-community/bind_exporter"
+license="Apache-2.0"
+arch="all"
+install="$pkgname.pre-install"
+makedepends="go promu"
+provides="bind_exporter=$pkgver-r$pkgrel"
+replaces="bind_exporter"
+source="
+ $_pkgname-$pkgver.tar.gz::https://github.com/prometheus-community/bind_exporter/archive/v$pkgver.tar.gz
+ bind-exporter.confd
+ bind-exporter.initd
+"
+builddir="$srcdir/$_pkgname-$pkgver"
+subpackages="$pkgname-openrc"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make PROMU=/usr/bin/promu build
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -dm755 "$pkgdir"/etc/prometheus
+
+ install -Dm755 bind_exporter \
+ "$pkgdir"/usr/bin/bind_exporter
+ install -Dm755 "$srcdir"/bind-exporter.initd \
+ "$pkgdir"/etc/init.d/bind-exporter
+ install -Dm644 "$srcdir"/bind-exporter.confd \
+ "$pkgdir"/etc/conf.d/bind-exporter
+}
+
+sha512sums="
+98e9bdd78605ded8ebc38351700c082c7e018e9ad06ccfce07d8b1116986f44bda10cb9f85c13faeee34449205a16f44e397604251cbbc835eca0e1ad93840ab bind_exporter-0.7.0.tar.gz
+b9c08a14f318c6127d44f9f1055cbd228acbe2fae043dbd719a6654128680e2dd7811611e48114154753e70d66f49d6e5fee590c37792d23b9189ee62b6fbb7f bind-exporter.confd
+a29b23cbc391c5703f78085ae23ef24a341e0f6e02818d36dca481fbcb217f55ea1e43ed6307a18386e1d3247d899319f6cc7bdb766272a4dd89cbf52d30c0cf bind-exporter.initd
+"
diff --git a/testing/prometheus-bind-exporter/bind-exporter.confd b/testing/prometheus-bind-exporter/bind-exporter.confd
new file mode 100644
index 00000000000..af78f8dba4c
--- /dev/null
+++ b/testing/prometheus-bind-exporter/bind-exporter.confd
@@ -0,0 +1,4 @@
+bind_exporter_args=
+
+output_log=/var/log/bind_exporter.log
+error_log=/var/log/bind_exporter.log
diff --git a/testing/prometheus-bind-exporter/bind-exporter.initd b/testing/prometheus-bind-exporter/bind-exporter.initd
new file mode 100644
index 00000000000..7f4235bcc03
--- /dev/null
+++ b/testing/prometheus-bind-exporter/bind-exporter.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+name="bind_exporter"
+description="bind exporter for the prometheus monitoring system"
+supervisor=supervise-daemon
+command=/usr/bin/bind_exporter
+command_args="$bind_exporter_args"
+command_user="prometheus:prometheus"
+
+start_pre() {
+ [ -n "$output_log" ] && checkpath -f "$output_log" \
+ -m 644 -o prometheus:prometheus
+ [ -n "$error_log" ] && checkpath -f "$error_log" \
+ -m 644 -o prometheus:prometheus
+}
diff --git a/testing/prometheus-bind-exporter/prometheus-bind-exporter.pre-install b/testing/prometheus-bind-exporter/prometheus-bind-exporter.pre-install
new file mode 100644
index 00000000000..1dd28103b83
--- /dev/null
+++ b/testing/prometheus-bind-exporter/prometheus-bind-exporter.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+addgroup -S prometheus 2>/dev/null
+adduser -SDh/var/lib/prometheus \
+ -s/sbin/nologin -Gprometheus -gprometheus prometheus prometheus 2>/dev/null
+exit 0
diff --git a/testing/prometheus-ceph-exporter/APKBUILD b/testing/prometheus-ceph-exporter/APKBUILD
new file mode 100644
index 00000000000..d2efde862da
--- /dev/null
+++ b/testing/prometheus-ceph-exporter/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+pkgname=prometheus-ceph-exporter
+pkgver=4.2.3
+pkgrel=1
+pkgdesc="Prometheus exporter that scrapes meta information about a ceph cluster"
+url="https://github.com/digitalocean/ceph_exporter"
+license="Apache-2.0"
+# riscv64, 32bit: doesn't build
+arch="all !x86 !armhf !armv7"
+makedepends="
+ ceph-dev
+ linux-headers
+ go
+ "
+install="$pkgname.pre-install $pkgname.pre-upgrade"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/digitalocean/ceph_exporter/archive/refs/tags/$pkgver.tar.gz
+ ceph-exporter.initd
+ ceph-exporter.confd
+ "
+builddir="$srcdir/ceph_exporter-$pkgver"
+options="net"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o ceph-exporter -tags "quincy reef" # support ceph 16 and 18
+}
+
+check() {
+ go test -tags "quincy reef" ./...
+}
+
+package() {
+ install -Dm755 ceph-exporter -t "$pkgdir"/usr/bin/
+
+ install -Dm755 "$srcdir"/ceph-exporter.initd "$pkgdir"/etc/init.d/ceph-exporter
+ install -Dm644 "$srcdir"/ceph-exporter.confd "$pkgdir"/etc/conf.d/ceph-exporter
+}
+
+sha512sums="
+2106cb2bcc99b5108dc20a60013075be7718b5f156be6f917210d77659d2b4a5d2e49d810fc8275e33a5ddd2afb6e86ec007132ef3851efa8f72afd907143733 prometheus-ceph-exporter-4.2.3.tar.gz
+392448b600c3dab44718ccf3133fdc349ebc840f9fe4f8445be10bcc3c4c65cd7db96babe52ae9cec8cbf22d72865bd6794da1b4ee990c279d586b08c8dd8b3e ceph-exporter.initd
+2278273061c1f8e216193f1b0a00dbe0d791c460b803ff14408f1519bf2ee7daf402162741057a648747be9647510215d262f1e1672cd1cab0224a7e9175af53 ceph-exporter.confd
+"
diff --git a/testing/prometheus-ceph-exporter/ceph-exporter.confd b/testing/prometheus-ceph-exporter/ceph-exporter.confd
new file mode 100644
index 00000000000..ab4744400d5
--- /dev/null
+++ b/testing/prometheus-ceph-exporter/ceph-exporter.confd
@@ -0,0 +1,3 @@
+command_args=""
+
+supervisor=supervise-daemon
diff --git a/testing/prometheus-ceph-exporter/ceph-exporter.initd b/testing/prometheus-ceph-exporter/ceph-exporter.initd
new file mode 100755
index 00000000000..ea5427394e7
--- /dev/null
+++ b/testing/prometheus-ceph-exporter/ceph-exporter.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+command="/usr/bin/ceph_exporter"
+command_background=true
+command_user="prometheus:prometheus"
+
+logdir="/var/log/prometheus"
+error_log="$logdir/${SVCNAME}.log"
+pidfile="/run/${SVCNAME}.pid"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user -m755 $logdir
+ checkpath -f -o $command_user -m644 $error_log
+}
diff --git a/testing/prometheus-node-exporter/prometheus-node-exporter.pre-install b/testing/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-install
index 120995cf353..120995cf353 100755
--- a/testing/prometheus-node-exporter/prometheus-node-exporter.pre-install
+++ b/testing/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-install
diff --git a/testing/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-upgrade b/testing/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-upgrade
new file mode 120000
index 00000000000..6374c299e7f
--- /dev/null
+++ b/testing/prometheus-ceph-exporter/prometheus-ceph-exporter.pre-upgrade
@@ -0,0 +1 @@
+prometheus-ceph-exporter.pre-install \ No newline at end of file
diff --git a/testing/prometheus-node-exporter/APKBUILD b/testing/prometheus-node-exporter/APKBUILD
deleted file mode 100644
index 506816418dd..00000000000
--- a/testing/prometheus-node-exporter/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Tiago Ilieve <tiago.myhro@gmail.com>
-# Maintainer: Tiago Ilieve <tiago.myhro@gmail.com>
-pkgname=prometheus-node-exporter
-_pkgname=node_exporter
-pkgver=0.18.1
-pkgrel=3
-pkgdesc="Prometheus exporter for machine metrics"
-url="https://github.com/prometheus/node_exporter"
-arch="all"
-license="Apache-2.0"
-makedepends="go>=1.11 bash sed"
-install="$pkgname.pre-install $pkgname.pre-upgrade"
-subpackages="$pkgname-openrc"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/prometheus/node_exporter/archive/v$pkgver.tar.gz
- disable-go-race-detector.patch
- node-exporter.confd
- node-exporter.initd"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- cd "$builddir"
-
- go build -v -ldflags "-s -w -X github.com/prometheus/common/version.Version=$pkgver" -o node_exporter
-}
-
-check() {
- cd "$builddir"
-
- make test
- ./node_exporter --version
-}
-
-package() {
- cd "$builddir"
-
- install -Dm644 "$srcdir/node-exporter.confd" "$pkgdir"/etc/conf.d/node-exporter
- install -Dm755 "$srcdir/node-exporter.initd" "$pkgdir"/etc/init.d/node-exporter
- install -Dm755 ./node_exporter "$pkgdir"/usr/bin/node_exporter
-}
-
-sha512sums="cf2b854fbec1ba39b18432cdc11ab507ebc5b2828e6b34b4f49af9b949fcd365cb3e5eb1e265d0825783810c6b1572a8b3512ec27a46e5c83f89a505590159c0 node_exporter-0.18.1.tar.gz
-36952039e5db39aa06a2ca16fa5d318f22eb967e3e9b1363508b2f3d3d0b14e5df111c77ce951bea2f65dd2be0a0a1582be245acfe4641623381a940204e53d9 disable-go-race-detector.patch
-592d3f17a3cf487d97a14c803dded07d2dfb112b159ab1a3575310fc0176fc3255ddad6657f16a8d6d3c161bfb03c203a6271ec6e6395b75716a14b0de8baced node-exporter.confd
-df006b184c3b2d5e773044838db7143dc3a64e621f4da6b106f41915a07d5cef32933ab9bb44464f10c132f86997ae7753ae19627afd4ba6cfb125161786dfe0 node-exporter.initd"
diff --git a/testing/prometheus-node-exporter/disable-go-race-detector.patch b/testing/prometheus-node-exporter/disable-go-race-detector.patch
deleted file mode 100644
index ba3c4cf5714..00000000000
--- a/testing/prometheus-node-exporter/disable-go-race-detector.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5136eb5266b2ff022a44a3316a07d02b4dcc9e08 Mon Sep 17 00:00:00 2001
-From: Tiago Ilieve <tiago.myhro@gmail.com>
-Date: Sun, 12 May 2019 11:21:01 +0200
-Subject: [PATCH] Disable Go race detector
-
-Go race detector is not supported on musl[1].
-
-[1]: https://github.com/golang/go/issues/14481
----
- Makefile.common | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/Makefile.common b/Makefile.common
-index 4f18ea5..18085e4 100644
---- a/Makefile.common
-+++ b/Makefile.common
-@@ -94,13 +94,6 @@ BUILD_DOCKER_ARCHS = $(addprefix common-docker-,$(DOCKER_ARCHS))
- PUBLISH_DOCKER_ARCHS = $(addprefix common-docker-publish-,$(DOCKER_ARCHS))
- TAG_DOCKER_ARCHS = $(addprefix common-docker-tag-latest-,$(DOCKER_ARCHS))
-
--ifeq ($(GOHOSTARCH),amd64)
-- ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux freebsd darwin windows))
-- # Only supported on amd64
-- test-flags := -race
-- endif
--endif
--
- # This rule is used to forward a target like "build" to "common-build". This
- # allows a new "build" target to be defined in a Makefile which includes this
- # one and override "common-build" without override warnings.
---
-2.17.1
-
diff --git a/testing/prometheus-node-exporter/node-exporter.confd b/testing/prometheus-node-exporter/node-exporter.confd
deleted file mode 100644
index 39c80a46be6..00000000000
--- a/testing/prometheus-node-exporter/node-exporter.confd
+++ /dev/null
@@ -1,7 +0,0 @@
-# /etc/conf.d/node-exporter
-
-# Custom arguments can be specified like:
-#
-# ARGS="--web.listen-address=':9100'"
-
-ARGS=""
diff --git a/testing/prometheus-node-exporter/node-exporter.initd b/testing/prometheus-node-exporter/node-exporter.initd
deleted file mode 100755
index 5bd9839fe8b..00000000000
--- a/testing/prometheus-node-exporter/node-exporter.initd
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/bin/node_exporter"
-command_args="$ARGS"
-command_background="yes"
-group="prometheus"
-user="prometheus"
-
-logdir="/var/log/prometheus"
-logfile="$logdir/${SVCNAME}.log"
-pidfile="/var/run/${SVCNAME}.pid"
-start_stop_daemon_args="--stderr $logfile --user $user --group $group"
-
-depend() {
- need net
- after firewall
-}
-
-start_pre() {
- checkpath -d -o $user:$group -m755 $logdir
- checkpath -f -o $user:$group -m644 $logfile
-}
diff --git a/testing/prometheus-node-exporter/prometheus-node-exporter.pre-upgrade b/testing/prometheus-node-exporter/prometheus-node-exporter.pre-upgrade
deleted file mode 120000
index b87af953340..00000000000
--- a/testing/prometheus-node-exporter/prometheus-node-exporter.pre-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-prometheus-node-exporter.pre-install \ No newline at end of file
diff --git a/testing/prometheus-rethinkdb-exporter/APKBUILD b/testing/prometheus-rethinkdb-exporter/APKBUILD
index 7c8915f0c02..8887ad10dff 100644
--- a/testing/prometheus-rethinkdb-exporter/APKBUILD
+++ b/testing/prometheus-rethinkdb-exporter/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=prometheus-rethinkdb-exporter
-pkgver=1.0
-pkgrel=1
+pkgver=1.0.1
+pkgrel=20
pkgdesc="Prometheus exporter for RethinkDB"
url="https://github.com/rethinkdb/prometheus-exporter"
-arch="all"
license="Apache-2.0"
-options="!check" # No test suite
+arch="all !riscv64" # FTBFS
+options="!check" # no test suite
makedepends="go"
subpackages="$pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/rethinkdb/prometheus-exporter/archive/v$pkgver.tar.gz
@@ -15,6 +15,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/rethinkdb/prometheus-exporte
"
builddir="$srcdir/prometheus-exporter-$pkgver"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
build() {
make
}
@@ -25,5 +29,5 @@ package() {
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
}
-sha512sums="0b01a87bdd3432ff26d4c3befa616c889302903a9c1a0ef978d5c801a2fa69f274a242155bef9fac488e8c8a811b11d9429c1834df38afeffa227dc451ab874e prometheus-rethinkdb-exporter-1.0.tar.gz
+sha512sums="b3a184f2df30c3f8b23e958fd304c438f9612d55a587927ce22621b9e6982323f850969089de6fb5a90499f7ff0d3b1d63e98620020fd7103ea175452ec33731 prometheus-rethinkdb-exporter-1.0.1.tar.gz
478eb2d38c97f30f32eae814221a477fb094bdf19e48748b731a67cd9359f4009ab4e47369b02b8744c52be209c941d80c564c9c92d714ad15592e1193f19aa0 prometheus-rethinkdb-exporter.initd"
diff --git a/testing/prometheus-smartctl-exporter/APKBUILD b/testing/prometheus-smartctl-exporter/APKBUILD
new file mode 100644
index 00000000000..5004566f1bc
--- /dev/null
+++ b/testing/prometheus-smartctl-exporter/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=prometheus-smartctl-exporter
+_pkgname=smartctl_exporter
+pkgver=0.12.0
+pkgrel=2
+pkgdesc="Prometheus smartctl exporter"
+url="https://github.com/prometheus-community/smartctl_exporter"
+arch="all"
+license="LGPL-3.0-or-later"
+depends="smartmontools jq"
+makedepends="go"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$_pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz
+ smartctl-exporter.initd
+ smartctl-exporter.confd
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+options="net"
+
+build() {
+ GOLDFLAGS="-X main.Version=$pkgver"
+ go build \
+ -tags netgo \
+ -ldflags "$GOLDFLAGS" \
+ -o smartctl-exporter
+}
+
+check() {
+ go test -cover ./...
+}
+
+package() {
+ install -Dm755 smartctl-exporter "$pkgdir"/usr/bin/smartctl-exporter
+ install -Dm755 "$srcdir"/smartctl-exporter.initd "$pkgdir"/etc/init.d/smartctl-exporter
+ install -Dm644 "$srcdir"/smartctl-exporter.confd "$pkgdir"/etc/conf.d/smartctl-exporter
+}
+
+sha512sums="
+8f2cc973fd967c9ab737dcaa7456f019cb574ac3297bd5d15559167cde51f8076bcb48c7befb7efb869e056c1c5e404f4bb2774e8fe020736354ede4ae3e77f3 smartctl_exporter-0.12.0.tar.gz
+605e753b3f90bf20c035798af9702f60d7f39d600e96a5d5b6cc8909334c2e6adb8fae6f6f3a7cfb4b097e2ceeb90257d9041d41aefa891e25aabf7cc2cac9e2 smartctl-exporter.initd
+cd46f20e8b479331e4e831da1dd36fcd93990904560555b5ba67d2344dc50405d8d8e4a3b03c32b1aaf969fed0a2a176c5248e671495604112fafb6dc325b999 smartctl-exporter.confd
+"
diff --git a/testing/prometheus-smartctl-exporter/prometheus-smartctl-exporter.pre-install b/testing/prometheus-smartctl-exporter/prometheus-smartctl-exporter.pre-install
new file mode 100644
index 00000000000..17964b0cd38
--- /dev/null
+++ b/testing/prometheus-smartctl-exporter/prometheus-smartctl-exporter.pre-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+addgroup -S prometheus 2>/dev/null
+adduser -S -D -h /var/lib/prometheus \
+ -s /sbin/nologin -G prometheus -g prometheus prometheus prometheus 2>/dev/null
+adduser prometheus disk
+
+exit 0
diff --git a/testing/prometheus-smartctl-exporter/smartctl-exporter.confd b/testing/prometheus-smartctl-exporter/smartctl-exporter.confd
new file mode 100644
index 00000000000..0044540675d
--- /dev/null
+++ b/testing/prometheus-smartctl-exporter/smartctl-exporter.confd
@@ -0,0 +1,10 @@
+# /etc/conf.d/nextcloud-exporter
+
+# Custom arguments can be specified like:
+#
+# ARGS="--web.listen-address=:9633"
+
+ARGS=""
+
+# comment out to use traditional service management
+supervisor="supervise-daemon"
diff --git a/testing/prometheus-smartctl-exporter/smartctl-exporter.initd b/testing/prometheus-smartctl-exporter/smartctl-exporter.initd
new file mode 100755
index 00000000000..a90a0671ce6
--- /dev/null
+++ b/testing/prometheus-smartctl-exporter/smartctl-exporter.initd
@@ -0,0 +1,7 @@
+#!/sbin/openrc-run
+name="prometheus-smartctl-exporter"
+command="/usr/bin/smartctl-exporter"
+command_args="$ARGS"
+command_background="yes"
+command_user="prometheus:prometheus"
+pidfile="/run/${RC_SVCNAME}.pid"
diff --git a/testing/prometheus-smokeping-prober/APKBUILD b/testing/prometheus-smokeping-prober/APKBUILD
new file mode 100644
index 00000000000..b9c50c6c096
--- /dev/null
+++ b/testing/prometheus-smokeping-prober/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=prometheus-smokeping-prober
+_pkgname=smokeping_prober
+pkgver=0.7.1
+pkgrel=4
+pkgdesc="Prometheus style smokeping prober"
+url="https://github.com/SuperQ/smokeping_prober"
+license="Apache-2.0"
+arch="all"
+options="!check" # no testsuite
+makedepends="go"
+pkgusers="prometheus"
+pkggroups="prometheus"
+install="$pkgname.pre-install $pkgname.pre-upgrade"
+subpackages="$pkgname-openrc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/SuperQ/smokeping_prober/archive/v$pkgver.tar.gz
+ smokeping-prober.initd
+ smokeping-prober.confd
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags "-X github.com/prometheus/common/version.Version=$pkgver" \
+ -v -o smokeping_prober
+}
+
+package() {
+ install -Dm755 smokeping_prober "$pkgdir"/usr/bin/smokeping_prober
+
+ install -Dm755 "$srcdir"/smokeping-prober.initd "$pkgdir"/etc/init.d/smokeping-prober
+ install -Dm644 "$srcdir"/smokeping-prober.confd "$pkgdir"/etc/conf.d/smokeping-prober
+}
+
+sha512sums="
+074a38e29b93687498e6a796257e625b0b15ec6fa2181eec0a82b9d5e4c9efc78a5de567525c8b78dec6d1adde0b34b2bd6e96b450eeb05e3d68d8fc1c6c5716 smokeping_prober-0.7.1.tar.gz
+6a551247df6dfa2b5bfbb9a36e181ea685679208dc44401eb24cf3904dac7f7974c974d45878c3ee88e1b9e562f6355d942d28b1ec8513439e603e06f7f07352 smokeping-prober.initd
+a29cb9e49fc3a0be67368b9f8764a88563f600a29ebc5ee40629d1da96ca28034e73af18d9d1f0c9c77b9c75fa67c3d2dd5af3d233ee0dc9e9bfd89bcf60b60a smokeping-prober.confd
+"
diff --git a/testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-install b/testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-install
new file mode 100755
index 00000000000..120995cf353
--- /dev/null
+++ b/testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S prometheus 2>/dev/null
+adduser -S -D -h /var/lib/prometheus -s /sbin/nologin -G prometheus -g prometheus prometheus 2>/dev/null
+
+exit 0
diff --git a/testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-upgrade b/testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-upgrade
new file mode 120000
index 00000000000..4b1792b9864
--- /dev/null
+++ b/testing/prometheus-smokeping-prober/prometheus-smokeping-prober.pre-upgrade
@@ -0,0 +1 @@
+prometheus-smokeping-prober.pre-install \ No newline at end of file
diff --git a/testing/prometheus-smokeping-prober/smokeping-prober.confd b/testing/prometheus-smokeping-prober/smokeping-prober.confd
new file mode 100644
index 00000000000..37c310bfbec
--- /dev/null
+++ b/testing/prometheus-smokeping-prober/smokeping-prober.confd
@@ -0,0 +1,7 @@
+# /etc/conf.d/prometheus-smokeping-prober
+
+# Custom arguments can be specified like:
+#
+# ARGS="--web.listen-address=':9100'"
+
+ARGS=""
diff --git a/testing/prometheus-smokeping-prober/smokeping-prober.initd b/testing/prometheus-smokeping-prober/smokeping-prober.initd
new file mode 100755
index 00000000000..418ef0732d3
--- /dev/null
+++ b/testing/prometheus-smokeping-prober/smokeping-prober.initd
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+command="/usr/bin/smokeping_prober"
+command_args="$ARGS"
+command_background="yes"
+group="prometheus"
+user="prometheus"
+
+logdir="/var/log/prometheus"
+logfile="$logdir/${SVCNAME}.log"
+pidfile="/var/run/${SVCNAME}.pid"
+start_stop_daemon_args="--stderr $logfile --user $user --group $group"
+capabilities="^cap_net_raw"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $user:$group -m755 $logdir
+ checkpath -f -o $user:$group -m644 $logfile
+}
diff --git a/testing/prometheus-snmp-exporter/APKBUILD b/testing/prometheus-snmp-exporter/APKBUILD
deleted file mode 100644
index 8151a6b8484..00000000000
--- a/testing/prometheus-snmp-exporter/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Maintainer: nixfloyd <nixfloyd@gmail.com>
-pkgname="prometheus-snmp-exporter"
-_pkgname="snmp_exporter"
-pkgver="0.16.1"
-pkgrel=1
-pkgdesc="Description"
-url="https://github.com/prometheus/snmp_exporter"
-arch="all"
-license="Apache-2.0"
-makedepends="go net-snmp-dev"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/prometheus/snmp_exporter/archive/v$pkgver.tar.gz
- prometheus-snmp-exporter.initd
- prometheus-snmp-exporter.confd
- "
-builddir="$srcdir/$_pkgname-$pkgver"
-
-
-build() {
- go build
- cd generator
- go build
- cd ..
-}
-
-check() {
- go test
-}
-
-package() {
- # Replace with proper package command(s)
- install -Dm755 snmp_exporter \
- "$pkgdir"/usr/bin/prometheus-snmp-exporter
- install -Dm755 generator/generator \
- "$pkgdir"/usr/bin/prometheus-snmp-generator
- install -Dm644 snmp.yml \
- "$pkgdir"/etc/prometheus/snmp.yml
- install -Dm644 -t "$pkgdir"/usr/share/doc/prometheus-snmp-exporter/ \
- README.md
- install -Dm644 -t "$pkgdir"/usr/share/doc/prometheus-snmp-exporter/examples/ \
- generator/generator.yml
- install -Dm644 -t "$pkgdir"/usr/share/doc/prometheus-snmp-exporter/generator/ \
- generator/README.md
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
-}
-
-sha512sums="ca82464e66c5ac44b46b790582508066e369bcdc1ec9fd06e6576762a8d7afd41bad279717b50f43e3eb7dad156e820432357e52cbbe17e2d87f1621b51e0df5 prometheus-snmp-exporter-0.16.1.tar.gz
-42fadcab29b0bac956dd547ca70bb0d3b92b151ba739b5fb94519157ef54f180e13e50a22cb11c701657631bc1c48f3bf5448459ec24bca98fee4f735b07397c prometheus-snmp-exporter.initd
-489cb298e215bd9647aa5293d456106eb26a73f5fbd9d42fab68de26d273ebb612dba01ba113ce58521b543a2f82a10ad86dc35056ef8d0438b39e77be61f67e prometheus-snmp-exporter.confd"
diff --git a/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.confd b/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.confd
deleted file mode 100644
index 0aa409934f6..00000000000
--- a/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.confd
+++ /dev/null
@@ -1 +0,0 @@
-command_args="--config.file=/etc/prometheus/snmp.yml --web.listen-address=':9116'"
diff --git a/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.initd b/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.initd
deleted file mode 100644
index 969e149f404..00000000000
--- a/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.initd
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/sbin/openrc-run
-name="prometheus-snmp-exporter"
-description="prometheus monitoring system & time series database"
-supervisor=supervise-daemon
-command=/usr/bin/prometheus-snmp-exporter
-command_args="$command_args"
-command_user="prometheus:prometheus"
-
diff --git a/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.pre-install b/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.pre-install
deleted file mode 100644
index 9a820759b82..00000000000
--- a/testing/prometheus-snmp-exporter/prometheus-snmp-exporter.pre-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-grep '^prometheus:' /etc/group >/dev/null || addgroup -S prometheus 2>/dev/null
-grep '^prometheus:' /etc/passwd >/dev/null || adduser -SDh/var/lib/prometheus \
- -s/sbin/nologin -Gprometheus -gprometheus prometheus prometheus 2>/dev/null
-
diff --git a/testing/prometheus-unbound-exporter/0001-dont-authenticate-by-default.patch b/testing/prometheus-unbound-exporter/0001-dont-authenticate-by-default.patch
new file mode 100644
index 00000000000..1d6b58946fb
--- /dev/null
+++ b/testing/prometheus-unbound-exporter/0001-dont-authenticate-by-default.patch
@@ -0,0 +1,15 @@
+--- a/unbound_exporter.go
++++ b/unbound_exporter.go
+@@ -469,9 +469,9 @@
+ listenAddress = flag.String("web.listen-address", ":9167", "Address to listen on for web interface and telemetry.")
+ metricsPath = flag.String("web.telemetry-path", "/metrics", "Path under which to expose metrics.")
+ unboundHost = flag.String("unbound.host", "tcp://localhost:8953", "Unix or TCP address of Unbound control socket.")
+- unboundCa = flag.String("unbound.ca", "/etc/unbound/unbound_server.pem", "Unbound server certificate.")
+- unboundCert = flag.String("unbound.cert", "/etc/unbound/unbound_control.pem", "Unbound client certificate.")
+- unboundKey = flag.String("unbound.key", "/etc/unbound/unbound_control.key", "Unbound client key.")
++ unboundCa = flag.String("unbound.ca", "", "Unbound server certificate.")
++ unboundCert = flag.String("unbound.cert", "", "Unbound client certificate.")
++ unboundKey = flag.String("unbound.key", "", "Unbound client key.")
+ )
+ flag.Parse()
+
diff --git a/testing/prometheus-unbound-exporter/APKBUILD b/testing/prometheus-unbound-exporter/APKBUILD
new file mode 100644
index 00000000000..65a05d01f97
--- /dev/null
+++ b/testing/prometheus-unbound-exporter/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+pkgname=prometheus-unbound-exporter
+_pkgname=unbound_exporter
+pkgver=0.4.1
+pkgrel=5
+pkgdesc="Prometheus exporter for Unbound statistics"
+url="https://github.com/letsencrypt/unbound_exporter"
+license="Apache-2.0"
+arch="all"
+makedepends="go>=1.14"
+install="$pkgname.pre-install $pkgname.pre-upgrade"
+subpackages="$pkgname-openrc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/letsencrypt/unbound_exporter/archive/v$pkgver.tar.gz
+ unbound-exporter.initd
+ unbound-exporter.confd
+ 0001-dont-authenticate-by-default.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no test suite available
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags "-X github.com/prometheus/common/version.Version=$pkgver" \
+ -v -o unbound_exporter
+}
+
+package() {
+ install -Dm755 unbound_exporter "$pkgdir"/usr/bin/unbound_exporter
+
+ install -Dm755 "$srcdir"/unbound-exporter.initd "$pkgdir"/etc/init.d/unbound-exporter
+ install -Dm644 "$srcdir"/unbound-exporter.confd "$pkgdir"/etc/conf.d/unbound-exporter
+}
+
+sha512sums="
+752a3d4903dc19c91484bad535df951ad8c8ab38ca3741493afe32472b9e873d6255039616974b36eae43b886f02b947b3418129af20eea01edb7f9ab05a7be9 unbound_exporter-0.4.1.tar.gz
+99acbb1af5ea1d0f37ec282f8c5dfb884e1d184baa7d5cd0132e63da88defd170fb0db44c762b02a169d93677333231bfb1f7740a401b4e0d64217e8d38927a4 unbound-exporter.initd
+2fecc0fdf9da9179ad24c14651efec341fccf3747d4570fe0ca5e1f5db1eb7ec49ce84add28d2804c03c95acd9762a660dfe5577fe26265ef35a82fa9c455aad unbound-exporter.confd
+7f806a9a19da38e790c978c411f9f37e1ddda7e74b37b3c691111fe86c79957d9704f1b4ee15d25da54b749e2c7322c6833087618455d05be7768452f4522d50 0001-dont-authenticate-by-default.patch
+"
diff --git a/testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-install b/testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-install
new file mode 100755
index 00000000000..120995cf353
--- /dev/null
+++ b/testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S prometheus 2>/dev/null
+adduser -S -D -h /var/lib/prometheus -s /sbin/nologin -G prometheus -g prometheus prometheus 2>/dev/null
+
+exit 0
diff --git a/testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-upgrade b/testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-upgrade
new file mode 120000
index 00000000000..c39c22470fd
--- /dev/null
+++ b/testing/prometheus-unbound-exporter/prometheus-unbound-exporter.pre-upgrade
@@ -0,0 +1 @@
+prometheus-unbound-exporter.pre-install \ No newline at end of file
diff --git a/testing/prometheus-unbound-exporter/unbound-exporter.confd b/testing/prometheus-unbound-exporter/unbound-exporter.confd
new file mode 100644
index 00000000000..a7b394a3443
--- /dev/null
+++ b/testing/prometheus-unbound-exporter/unbound-exporter.confd
@@ -0,0 +1,7 @@
+# /etc/conf.d/unbound-exporter
+
+# Custom arguments can be specified like:
+#
+# ARGS="--web.listen-address=':9100'"
+
+ARGS=""
diff --git a/testing/prometheus-unbound-exporter/unbound-exporter.initd b/testing/prometheus-unbound-exporter/unbound-exporter.initd
new file mode 100755
index 00000000000..4c7364969d3
--- /dev/null
+++ b/testing/prometheus-unbound-exporter/unbound-exporter.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+command="/usr/bin/unbound_exporter"
+command_args="$ARGS"
+command_background="yes"
+command_user="prometheus:prometheus"
+
+logdir="/var/log/prometheus"
+error_log="$logdir/${SVCNAME}.log"
+pidfile="/var/run/${SVCNAME}.pid"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user -m755 $logdir
+ checkpath -f -o $command_user -m644 $error_log
+}
diff --git a/testing/prometheus-wireguard-exporter/APKBUILD b/testing/prometheus-wireguard-exporter/APKBUILD
deleted file mode 100644
index 1f76805bb56..00000000000
--- a/testing/prometheus-wireguard-exporter/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Michael Aldridge <aldridge.mac@gmail.com>
-pkgname=prometheus-wireguard-exporter
-pkgver=3.2.1
-pkgrel=0
-pkgdesc="A Prometheus exporter for WireGuard, written in Rust"
-url="https://github.com/MindFlavor/prometheus_wireguard_exporter"
-arch="all !s390x !ppc64le !mips !mips64" #Crypto is broken (https://github.com/briansmith/ring/issues/389)
-license="MIT"
-makedepends="cargo"
-subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/MindFlavor/prometheus_wireguard_exporter/archive/$pkgver.tar.gz
- prometheus-wireguard-exporter.initd
- prometheus-wireguard-exporter.confd"
-
-builddir="$srcdir"/prometheus_wireguard_exporter-"$pkgver"
-
-build() {
- cargo build --release
-}
-
-check() {
- cargo test --release
-}
-
-package() {
- cargo install --path . --root="$pkgdir"/usr
- rm -f "$pkgdir"/usr/.crates2.json
- rm -f "$pkgdir"/usr/.crates.toml
-
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
-
- install -m755 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
-}
-sha512sums="45de52b3bd30719407093fe562f44302dd34184b23ce63c1855ac6df064fd73dcac982aef3dfb03aa749fe9f207fa26f262583f76741081b8600d0298cda6101 prometheus-wireguard-exporter-3.2.1.tar.gz
-f611bb81839735075f19e80155e9eb9e18da284ef2bada06eb6c5b9b06fc706a6b21d463f52027ba7dbe81b76e3f4771401265fe8a20d512082ec35358f091a3 prometheus-wireguard-exporter.initd
-876f7f5a8c5092980783aa9f60eb7b3497d93ab66c1aa6780bf4988f720187d437c8b951f938f012956ed1ac1971eab85e972521750d1a25d41fc7fcf0357188 prometheus-wireguard-exporter.confd"
diff --git a/testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.confd b/testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.confd
deleted file mode 100644
index 68d8b23e5da..00000000000
--- a/testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.confd
+++ /dev/null
@@ -1 +0,0 @@
-export INTERFACE=wg0
diff --git a/testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.initd b/testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.initd
deleted file mode 100644
index 9b2efd98dc5..00000000000
--- a/testing/prometheus-wireguard-exporter/prometheus-wireguard-exporter.initd
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/sbin/openrc-run
-
-description="Prometheus Wireguard Exporter"
-supervisor=supervise-daemon
-command=/usr/bin/prometheus_wireguard_exporter
-command_args="-n /etc/wireguard/${INTERFACE}.conf"
-pidfile="/run/${RC_SVCNAME}.pid"
-
-depend() {
- need net
-}
diff --git a/testing/proot/APKBUILD b/testing/proot/APKBUILD
index 168fba91faf..11a52e1ad80 100644
--- a/testing/proot/APKBUILD
+++ b/testing/proot/APKBUILD
@@ -1,32 +1,56 @@
# Contributor: Daniel Santana <daniel@santana.tech>
# Maintainer: Daniel Santana <daniel@santana.tech>
pkgname=proot
-_pkgname=PRoot
-pkgver=5.1.0_git20190306
-_sha=a6db8746f21a2e68a8d0290a0aa9b3ad36d78f56 # contain musl fixes
-pkgrel=1
+pkgver=5.4.0
+pkgrel=0
pkgdesc="User-space implementation of chroot, mount --bind, and binfmt_misc"
url="https://proot-me.github.io"
arch="aarch64 armhf armv7 x86 x86_64"
-license="GPL-2-or-later"
-makedepends="bsd-compat-headers linux-headers libarchive-dev talloc-dev"
+license="GPL-2.0-or-later"
+checkdepends="bash coreutils grep lzop mcookie python3 strace"
+makedepends="
+ bsd-compat-headers
+ libarchive-dev
+ linux-headers
+ py3-docutils
+ talloc-dev
+ talloc-static
+ uthash-dev
+ "
subpackages="$pkgname-doc $pkgname-static"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/proot-me/PRoot/archive/$_sha.tar.gz"
-builddir="$srcdir/$_pkgname-$_sha"
-options="!check" # several tests are failing
+source="https://github.com/proot-me/proot/archive/v$pkgver/proot-$pkgver.tar.gz
+ tests-musl-compat.patch
+ "
+options="!check" # FIXME: several tests are failing
+
+prepare() {
+ default_prepare
+ cp -r src src-static
+}
build() {
- cd "$builddir"/src
- make proot proot.static
+ make -C src proot VERSION=$pkgver
+ make -C src-static proot VERSION=$pkgver LDFLAGS="$LDFLAGS -static -ltalloc"
+ make -C doc proot/man.1
+}
+
+check() {
+ ln -sfv /usr/bin/python3 python
+ PATH="$PATH:$PWD" make -C test
}
package() {
- install -Dm 0755 "$builddir"/src/proot "$pkgdir"/usr/bin/proot
- install -Dm 0644 "$builddir"/doc/proot/man.1 "$pkgdir"/usr/share/man/man1/proot.1
+ install -Dm 0755 ./src/proot "$pkgdir"/usr/bin/proot
+ install -Dm 0644 ./doc/proot/man.1 "$pkgdir"/usr/share/man/man1/proot.1
}
static() {
- install -Dm 0755 "$builddir"/src/proot.static "$subpkgdir"/usr/bin/proot.static
+ pkgdesc="$pkgdesc (built as static binary)"
+
+ install -Dm 0755 "$builddir"/src-static/proot "$subpkgdir"/usr/bin/proot.static
}
-sha512sums="956a4213cf6915a925fd1715bf26f7b531e0c45b70893db39aa760979952d7a8777d67a9976732884939e04c61975a913a1989afa9246c4c0d01a4ec9d825c55 PRoot-5.1.0_git20190306.tar.gz"
+sha512sums="
+c4d7b7428758c0d8f6a89ecaa01d1d7d5d9663a84b7e730e8160bc2a2385a7e278589f5dd86f5cd4f8e0736f09b3097b9efea7814096fd2d28e6032435b9ee63 proot-5.4.0.tar.gz
+d09de6d776072e9991abd04e294e6d36bd1634b9e972294a112526ebf3f63e919d01755de1ecd7253d614b41b07fe6882df8787c638b8576bcf2555abcafa466 tests-musl-compat.patch
+"
diff --git a/testing/proot/tests-musl-compat.patch b/testing/proot/tests-musl-compat.patch
new file mode 100644
index 00000000000..8a92c3fa52a
--- /dev/null
+++ b/testing/proot/tests-musl-compat.patch
@@ -0,0 +1,26 @@
+The same change was made in src/.
+
+--- a/test/ptrace-2.c
++++ b/test/ptrace-2.c
+@@ -52,6 +52,12 @@
+ # endif
+ #endif
+
++#if defined(__GLIBC__)
++# define PTRACE_REQUEST_TYPE enum __ptrace_request
++#else
++# define PTRACE_REQUEST_TYPE int
++#endif
++
+ /**
+ * Compute the offset of the register @reg_name in the USER area.
+ */
+@@ -200,7 +206,7 @@
+
+ int main(int argc, char *argv[])
+ {
+- enum __ptrace_request restart_how;
++ PTRACE_REQUEST_TYPE restart_how;
+ int last_exit_status = -1;
+ pid_t *pids = NULL;
+ long status;
diff --git a/testing/properties-cpp/APKBUILD b/testing/properties-cpp/APKBUILD
deleted file mode 100644
index 080a9973000..00000000000
--- a/testing/properties-cpp/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Luca Weiss <luca@z3ntu.xyz>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=properties-cpp
-pkgver=0.0.2_git20180409
-_commit="45863e849b39c4921d6553e6d27e267a96ac7d77"
-pkgrel=1
-pkgdesc="A very simple convenience library for handling properties and signals in C++11"
-url="https://launchpad.net/properties-cpp"
-arch="all"
-license="LGPL-3.0-only"
-makedepends="cmake-extras"
-checkdepends="gtest-dev gtest"
-subpackages="$pkgname-dev"
-source="$pkgname-$_commit.tar.gz::https://github.com/lib-cpp/properties-cpp/archive/$_commit.tar.gz
- cmake-cleanup.patch" # https://github.com/lib-cpp/properties-cpp/pull/1
-builddir="$srcdir/$pkgname-$_commit"
-
-prepare() {
- default_prepare
-
- mkdir -p "$builddir"/build
-}
-
-build() {
- cd "$builddir"/build
- cmake "$builddir" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_BUILD_TYPE=None
- make
-}
-
-check() {
- cd "$builddir"/build
- make test
-}
-
-package() {
- cd "$builddir"/build
- DESTDIR="$pkgdir/" make install
-}
-
-sha512sums="5697b9acacb63b801ef531a3741655e67896604c5150a754d9e11f87898ee564a2707fcb8346119b7081ae725e8bbfa671e537e4985a061da7161ff7b12d5985 properties-cpp-45863e849b39c4921d6553e6d27e267a96ac7d77.tar.gz
-73397c1a3b506065de1b320af49c6e4be8e0c9f1b9b2409c7c55c2e98c9f5b6decdfe52314b6ffc882e2f87ba2e41c2b4b1981f21da0e31970c0ac8f8c1abda9 cmake-cleanup.patch"
diff --git a/testing/properties-cpp/cmake-cleanup.patch b/testing/properties-cpp/cmake-cleanup.patch
deleted file mode 100644
index 570b6899a8a..00000000000
--- a/testing/properties-cpp/cmake-cleanup.patch
+++ /dev/null
@@ -1,399 +0,0 @@
-From a1f1536a20b698772adbae8d22aeacf5dc571854 Mon Sep 17 00:00:00 2001
-From: Luca Weiss <luca@z3ntu.xyz>
-Date: Sun, 30 Dec 2018 18:39:42 +0100
-Subject: [PATCH] CMake cleanup
-
----
- CMakeLists.txt | 2 +-
- cmake/EnableCoverageReport.cmake | 153 -------------------------------
- cmake/FindGtest.cmake | 53 -----------
- cmake/FindLcov.cmake | 29 ------
- cmake/Findgcovr.cmake | 31 -------
- cmake/ParseArguments.cmake | 52 -----------
- tests/CMakeLists.txt | 2 +-
- 7 files changed, 2 insertions(+), 320 deletions(-)
- delete mode 100644 cmake/EnableCoverageReport.cmake
- delete mode 100644 cmake/FindGtest.cmake
- delete mode 100644 cmake/FindLcov.cmake
- delete mode 100644 cmake/Findgcovr.cmake
- delete mode 100644 cmake/ParseArguments.cmake
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0c7394e..728b40a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -4,7 +4,6 @@ project(properties-cpp)
-
- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-
--include(cmake/EnableCoverageReport.cmake)
- include(cmake/PrePush.cmake)
- include(GNUInstallDirs)
-
-@@ -42,4 +41,5 @@ add_subdirectory(data)
- add_subdirectory(include)
- add_subdirectory(tests)
-
-+# find_package(CoverageReport)
- # enable_coverage_report(posix_process_test linux_process_test)
-diff --git a/cmake/EnableCoverageReport.cmake b/cmake/EnableCoverageReport.cmake
-deleted file mode 100644
-index b109ad4..0000000
---- a/cmake/EnableCoverageReport.cmake
-+++ /dev/null
-@@ -1,153 +0,0 @@
--# - Creates a special coverage build type and target on GCC.
--#
--# Defines a function ENABLE_COVERAGE_REPORT which generates the coverage target
--# for selected targets. Optional arguments to this function are used to filter
--# unwanted results using globbing expressions. Moreover targets with tests for
--# the source code can be specified to trigger regenerating the report if the
--# test has changed
--#
--# ENABLE_COVERAGE_REPORT(TARGETS target... [FILTER filter...] [TESTS test targets...])
--#
--# To generate a coverage report first build the project with
--# CMAKE_BUILD_TYPE=coverage, then call make test and afterwards make coverage.
--#
--# The coverage report is based on gcov. Depending on the availability of lcov
--# a HTML report will be generated and/or an XML report of gcovr is found.
--# The generated coverage target executes all found solutions. Special targets
--# exist to create e.g. only the xml report: coverage-xml.
--#
--# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot 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, 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(ParseArguments)
--
--FIND_PACKAGE(Lcov)
--FIND_PACKAGE(gcovr)
--
--FUNCTION(ENABLE_COVERAGE_REPORT)
--
-- # argument parsing
-- PARSE_ARGUMENTS(ARG "FILTER;TARGETS;TESTS" "" ${ARGN})
--
-- SET(COVERAGE_RAW_FILE "${CMAKE_BINARY_DIR}/coverage.raw.info")
-- SET(COVERAGE_FILTERED_FILE "${CMAKE_BINARY_DIR}/coverage.info")
-- SET(COVERAGE_REPORT_DIR "${CMAKE_BINARY_DIR}/coveragereport")
-- SET(COVERAGE_XML_FILE "${CMAKE_BINARY_DIR}/coverage.xml")
-- SET(COVERAGE_XML_COMMAND_FILE "${CMAKE_BINARY_DIR}/coverage-xml.cmake")
--
-- # decide if there is any tool to create coverage data
-- SET(TOOL_FOUND FALSE)
-- IF(LCOV_FOUND OR GCOVR_FOUND)
-- SET(TOOL_FOUND TRUE)
-- ENDIF()
-- IF(NOT TOOL_FOUND)
-- MESSAGE(STATUS "Cannot enable coverage targets because neither lcov nor gcovr are found.")
-- ENDIF()
--
-- STRING(TOLOWER "${CMAKE_BUILD_TYPE}" COVERAGE_BUILD_TYPE)
-- IF(CMAKE_COMPILER_IS_GNUCXX AND TOOL_FOUND AND "${COVERAGE_BUILD_TYPE}" MATCHES "coverage")
--
-- MESSAGE(STATUS "Coverage support enabled for targets: ${ARG_TARGETS}")
--
-- # create coverage build type
-- SET(CMAKE_CXX_FLAGS_COVERAGE ${CMAKE_CXX_FLAGS_DEBUG} PARENT_SCOPE)
-- SET(CMAKE_C_FLAGS_COVERAGE ${CMAKE_C_FLAGS_DEBUG} PARENT_SCOPE)
-- SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_CONFIGURATION_TYPES} coverage PARENT_SCOPE)
--
-- # instrument targets
-- SET_TARGET_PROPERTIES(${ARG_TARGETS} PROPERTIES COMPILE_FLAGS --coverage
-- LINK_FLAGS --coverage)
--
-- # html report
-- IF (LCOV_FOUND)
--
-- MESSAGE(STATUS "Enabling HTML coverage report")
--
-- # set up coverage target
--
-- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_RAW_FILE}
-- COMMAND ${LCOV_EXECUTABLE} -c -d ${CMAKE_BINARY_DIR} -o ${COVERAGE_RAW_FILE}
-- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-- COMMENT "Collecting coverage data"
-- DEPENDS ${ARG_TARGETS} ${ARG_TESTS}
-- VERBATIM)
--
-- # filter unwanted stuff
-- LIST(LENGTH ARG_FILTER FILTER_LENGTH)
-- IF(${FILTER_LENGTH} GREATER 0)
-- SET(FILTER COMMAND ${LCOV_EXECUTABLE})
-- FOREACH(F ${ARG_FILTER})
-- SET(FILTER ${FILTER} -r ${COVERAGE_FILTERED_FILE} ${F})
-- ENDFOREACH()
-- SET(FILTER ${FILTER} -o ${COVERAGE_FILTERED_FILE})
-- ELSE()
-- SET(FILTER "")
-- ENDIF()
--
-- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_FILTERED_FILE}
-- COMMAND ${LCOV_EXECUTABLE} -e ${COVERAGE_RAW_FILE} "${CMAKE_SOURCE_DIR}*" -o ${COVERAGE_FILTERED_FILE}
-- ${FILTER}
-- DEPENDS ${COVERAGE_RAW_FILE}
-- COMMENT "Filtering recorded coverage data for project-relevant entries"
-- VERBATIM)
-- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_REPORT_DIR}
-- COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_REPORT_DIR}
-- COMMAND ${GENHTML_EXECUTABLE} --legend --show-details -t "${PROJECT_NAME} test coverage" -o ${COVERAGE_REPORT_DIR} ${COVERAGE_FILTERED_FILE}
-- DEPENDS ${COVERAGE_FILTERED_FILE}
-- COMMENT "Generating HTML coverage report in ${COVERAGE_REPORT_DIR}"
-- VERBATIM)
--
-- ADD_CUSTOM_TARGET(coverage-html
-- DEPENDS ${COVERAGE_REPORT_DIR})
--
-- ENDIF()
--
-- # xml coverage report
-- IF(GCOVR_FOUND)
--
-- MESSAGE(STATUS "Enabling XML coverage report")
--
-- # gcovr cannot write directly to a file so the execution needs to
-- # be wrapped in a cmake file that generates the file output
-- FILE(WRITE ${COVERAGE_XML_COMMAND_FILE}
-- "SET(ENV{LANG} en)\n")
-- FILE(APPEND ${COVERAGE_XML_COMMAND_FILE}
-- "EXECUTE_PROCESS(COMMAND \"${GCOVR_EXECUTABLE}\" --exclude=tests.* --exclude=obj-.* --exclude=cmake.* -x -r \"${CMAKE_SOURCE_DIR}\" OUTPUT_FILE \"${COVERAGE_XML_FILE}\" WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\")\n")
--
-- ADD_CUSTOM_COMMAND(OUTPUT ${COVERAGE_XML_FILE}
-- COMMAND ${CMAKE_COMMAND} ARGS -P ${COVERAGE_XML_COMMAND_FILE}
-- COMMENT "Generating coverage XML report"
-- VERBATIM)
--
-- ADD_CUSTOM_TARGET(coverage-xml
-- DEPENDS ${COVERAGE_XML_FILE})
--
-- ENDIF()
--
-- # provide a global coverage target executing both steps if available
-- SET(GLOBAL_DEPENDS "")
-- IF(LCOV_FOUND)
-- LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_REPORT_DIR})
-- ENDIF()
-- IF(GCOVR_FOUND)
-- LIST(APPEND GLOBAL_DEPENDS ${COVERAGE_XML_FILE})
-- ENDIF()
-- IF(LCOV_FOUND OR GCOVR_FOUND)
-- ADD_CUSTOM_TARGET(coverage
-- DEPENDS ${GLOBAL_DEPENDS})
-- ENDIF()
--
-- ENDIF()
--
--ENDFUNCTION()
-diff --git a/cmake/FindGtest.cmake b/cmake/FindGtest.cmake
-deleted file mode 100644
-index 1283174..0000000
---- a/cmake/FindGtest.cmake
-+++ /dev/null
-@@ -1,53 +0,0 @@
--include(ExternalProject)
--include(FindPackageHandleStandardArgs)
--
--#gtest
--set(GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)
--find_path(GTEST_INCLUDE_DIR gtest/gtest.h
-- HINTS ${GTEST_INSTALL_DIR})
--
--#gmock
--find_path(GMOCK_INSTALL_DIR gmock/CMakeLists.txt
-- HINTS /usr/src)
--if(${GMOCK_INSTALL_DIR} STREQUAL "GMOCK_INSTALL_DIR-NOTFOUND")
-- message(FATAL_ERROR "google-mock package not found")
--endif()
--
--set(GMOCK_INSTALL_DIR ${GMOCK_INSTALL_DIR}/gmock)
--find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
--
--set(GMOCK_PREFIX gmock)
--set(GMOCK_BINARY_DIR ${CMAKE_BINARY_DIR}/${GMOCK_PREFIX}/libs)
--set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
--
--set(GTEST_CMAKE_ARGS "")
--if (${MIR_IS_CROSS_COMPILING})
-- set(GTEST_CMAKE_ARGS
-- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_MODULE_PATH}/LinuxCrossCompile.cmake)
--endif()
--
--ExternalProject_Add(
-- GMock
-- #where to build in source tree
-- PREFIX ${GMOCK_PREFIX}
-- #where the source is external to the project
-- SOURCE_DIR ${GMOCK_INSTALL_DIR}
-- #forward the compilers to the subproject so cross-arch builds work
-- CMAKE_ARGS ${GTEST_CMAKE_ARGS}
-- BINARY_DIR ${GMOCK_BINARY_DIR}
--
-- #we don't need to install, so skip
-- INSTALL_COMMAND ""
--)
--
--set(GMOCK_LIBRARY ${GMOCK_BINARY_DIR}/libgmock.a)
--set(GMOCK_MAIN_LIBRARY ${GMOCK_BINARY_DIR}/libgmock_main.a)
--set(GMOCK_BOTH_LIBRARIES ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY})
--set(GTEST_LIBRARY ${GTEST_BINARY_DIR}/libgtest.a)
--set(GTEST_MAIN_LIBRARY ${GTEST_BINARY_DIR}/libgtest_main.a)
--set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
--set(GTEST_ALL_LIBRARIES ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
--
--find_package_handle_standard_args(GTest DEFAULT_MSG
-- GMOCK_INCLUDE_DIR
-- GTEST_INCLUDE_DIR)
-diff --git a/cmake/FindLcov.cmake b/cmake/FindLcov.cmake
-deleted file mode 100644
-index 70628f4..0000000
---- a/cmake/FindLcov.cmake
-+++ /dev/null
-@@ -1,29 +0,0 @@
--# - Find lcov
--# Will define:
--#
--# LCOV_EXECUTABLE - the lcov binary
--# GENHTML_EXECUTABLE - the genhtml executable
--#
--# Copyright (C) 2010 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot 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, 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(FindPackageHandleStandardArgs)
--
--FIND_PROGRAM(LCOV_EXECUTABLE lcov)
--FIND_PROGRAM(GENHTML_EXECUTABLE genhtml)
--
--FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lcov DEFAULT_MSG LCOV_EXECUTABLE GENHTML_EXECUTABLE)
--
--# only visible in advanced view
--MARK_AS_ADVANCED(LCOV_EXECUTABLE GENHTML_EXECUTABLE)
-diff --git a/cmake/Findgcovr.cmake b/cmake/Findgcovr.cmake
-deleted file mode 100644
-index e4c43fe..0000000
---- a/cmake/Findgcovr.cmake
-+++ /dev/null
-@@ -1,31 +0,0 @@
--# - Find gcovr scrip
--# Will define:
--#
--# GCOVR_EXECUTABLE - the gcovr script
--#
--# Uses:
--#
--# GCOVR_ROOT - root to search for the script
--#
--# Copyright (C) 2011 by Johannes Wienke <jwienke at techfak dot uni-bielefeld dot 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, 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(FindPackageHandleStandardArgs)
--
--FIND_PROGRAM(GCOVR_EXECUTABLE gcovr HINTS ${GCOVR_ROOT} "${GCOVR_ROOT}/bin")
--
--FIND_PACKAGE_HANDLE_STANDARD_ARGS(gcovr DEFAULT_MSG GCOVR_EXECUTABLE)
--
--# only visible in advanced view
--MARK_AS_ADVANCED(GCOVR_EXECUTABLE)
-diff --git a/cmake/ParseArguments.cmake b/cmake/ParseArguments.cmake
-deleted file mode 100644
-index e13f671..0000000
---- a/cmake/ParseArguments.cmake
-+++ /dev/null
-@@ -1,52 +0,0 @@
--# Parse arguments passed to a function into several lists separated by
--# upper-case identifiers and options that do not have an associated list e.g.:
--#
--# SET(arguments
--# hello OPTION3 world
--# LIST3 foo bar
--# OPTION2
--# LIST1 fuz baz
--# )
--# PARSE_ARGUMENTS(ARG "LIST1;LIST2;LIST3" "OPTION1;OPTION2;OPTION3" ${arguments})
--#
--# results in 7 distinct variables:
--# * ARG_DEFAULT_ARGS: hello;world
--# * ARG_LIST1: fuz;baz
--# * ARG_LIST2:
--# * ARG_LIST3: foo;bar
--# * ARG_OPTION1: FALSE
--# * ARG_OPTION2: TRUE
--# * ARG_OPTION3: TRUE
--#
--# taken from http://www.cmake.org/Wiki/CMakeMacroParseArguments
--
--MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
-- SET(DEFAULT_ARGS)
-- FOREACH(arg_name ${arg_names})
-- SET(${prefix}_${arg_name})
-- ENDFOREACH(arg_name)
-- FOREACH(option ${option_names})
-- SET(${prefix}_${option} FALSE)
-- ENDFOREACH(option)
--
-- SET(current_arg_name DEFAULT_ARGS)
-- SET(current_arg_list)
-- FOREACH(arg ${ARGN})
-- SET(larg_names ${arg_names})
-- LIST(FIND larg_names "${arg}" is_arg_name)
-- IF (is_arg_name GREATER -1)
-- SET(${prefix}_${current_arg_name} ${current_arg_list})
-- SET(current_arg_name ${arg})
-- SET(current_arg_list)
-- ELSE (is_arg_name GREATER -1)
-- SET(loption_names ${option_names})
-- LIST(FIND loption_names "${arg}" is_option)
-- IF (is_option GREATER -1)
-- SET(${prefix}_${arg} TRUE)
-- ELSE (is_option GREATER -1)
-- SET(current_arg_list ${current_arg_list} ${arg})
-- ENDIF (is_option GREATER -1)
-- ENDIF (is_arg_name GREATER -1)
-- ENDFOREACH(arg)
-- SET(${prefix}_${current_arg_name} ${current_arg_list})
--ENDMACRO(PARSE_ARGUMENTS)
-diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
-index 180498f..cb05b48 100644
---- a/tests/CMakeLists.txt
-+++ b/tests/CMakeLists.txt
-@@ -1,7 +1,7 @@
- set (OLD_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
- # Don't treat warnings as errors in 3rd_party/{gmock,cucumber-cpp}
- string (REPLACE " -Werror " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
--find_package(Gtest REQUIRED)
-+find_package(GTest REQUIRED)
- include_directories(${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR})
- set (CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS})
-
diff --git a/testing/prosody-filer/APKBUILD b/testing/prosody-filer/APKBUILD
deleted file mode 100644
index 7fe12676212..00000000000
--- a/testing/prosody-filer/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=prosody-filer
-pkgver=1.0.2
-pkgrel=1
-pkgdesc="Golang mod_http_upload_external server for Prosody and Ejabberd"
-url="https://github.com/ThomasLeister/prosody-filer"
-arch="all"
-license="MIT"
-makedepends="go"
-options="!check" # tests are broken
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc"
-source="
- $pkgname-$pkgver.tar.gz::https://github.com/ThomasLeister/prosody-filer/archive/v$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd
-"
-builddir="$srcdir/src/github.com/ThomasLeister/$pkgname"
-
-prepare() {
- mkdir -p ${builddir%/*}
- mv $srcdir/$pkgname-$pkgver "$builddir"/
-
- # fetch dependencies
- GOPATH="$srcdir" go get github.com/BurntSushi/toml
-
- default_prepare
-}
-
-build() {
- GO111MODULE=off GOPATH="$srcdir" go build -v -o $pkgname prosody-filer.go
-}
-
-package() {
- install -Dm755 "$builddir"/$pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="8bf3d3d2c8add7cfdfbe4dd1294ac6e1a14e48ad5927e700bbbbe1e06a16a754ecd4a2228dff1fd8be57ef29602631d8c1e9085073625ee9734e5eaf0324ba28 prosody-filer-1.0.2.tar.gz
-1460dd00df99fe8dc04f42c65731c6b002ac5a2c5dcd73af598f2a3c6d8befa5ff1d910b5417477a3c79efc5065e609621eab6919f93c3bef34169264939929f prosody-filer.initd
-d2ca3f7801bbf6252b3ee739aff79460ec76dbc0798ea8995d0f2b684d85347685ae3b7f2cc4cf186ad1c889fd79bc267f57f9c6c120f491afe943bf725e4abd prosody-filer.confd"
diff --git a/testing/prosody-filer/prosody-filer.confd b/testing/prosody-filer/prosody-filer.confd
deleted file mode 100644
index 1bc03310740..00000000000
--- a/testing/prosody-filer/prosody-filer.confd
+++ /dev/null
@@ -1,19 +0,0 @@
-# conf.d file for prosody-filer
-
-#
-# Specify the path to the configuration file.
-#
-
-PROSODY_FILER_CONF="/etc/prosody-filer/config.toml"
-
-#
-# Specify the user the daemon should run under.
-#
-
-PROSODY_FILER_USER="prosody-filer"
-
-#
-# Specify the group the daemon should run under.
-#
-
-PROSODY_FILER_GROUP="prosody-filer"
diff --git a/testing/prosody-filer/prosody-filer.initd b/testing/prosody-filer/prosody-filer.initd
deleted file mode 100644
index 5da0208f3b8..00000000000
--- a/testing/prosody-filer/prosody-filer.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-
-name=$RC_SVCNAME
-command="/usr/bin/prosody-filer"
-command_args="-config ${PROSODY_FILER_CONF}"
-command_user="${PROSODY_FILER_USER}:${PROSODY_FILER_GROUP}"
-pidfile="/run/$RC_SVCNAME.pid"
-command_background=yes
-
-depend() {
- need net
-}
-
-start_pre() {
- if [ ! -e "${PROSODY_FILER_CONF}" ]; then
- eerror "You must create a config file to run prosody-filer"
- return 1
- fi
-}
diff --git a/testing/prosody-filer/prosody-filer.pre-install b/testing/prosody-filer/prosody-filer.pre-install
deleted file mode 100644
index 4d969c56c5c..00000000000
--- a/testing/prosody-filer/prosody-filer.pre-install
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-addgroup -S prosody-filer 2>/dev/null
-adduser -S -D \
- -h /var/lib/prosody-filer \
- -s /sbin/nologin \
- -G prosody-filer \
- -g "Prosody Filer Server" \
- prosody-filer 2>/dev/null
-
-exit 0
diff --git a/testing/prosody-modules/APKBUILD b/testing/prosody-modules/APKBUILD
index ce9554385b4..e8bcf4cedfb 100644
--- a/testing/prosody-modules/APKBUILD
+++ b/testing/prosody-modules/APKBUILD
@@ -2,16 +2,16 @@
# Contributor: Galen Abell <galen@galenabell.com>
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=prosody-modules
-pkgver=0.11_hg20200329
-_commit=fd582067c732
+pkgver=0.11_hg20201208
+_commit=2ae71126e379
pkgrel=0
pkgdesc="modules for the prosody XMPP server"
url="https://modules.prosody.im/"
arch="noarch"
license="MIT"
# Create one subpackage for every modules considered stable [1]. In addition
-# the modules mod-auth-ldap, mod-auth-pam, mod-conversejs mod-mam, and
-# mod-smacks are included.
+# the modules mod-auth-ldap, mod-auth-pam, mod-conversejs, mod-mam, mod-mam_muc
+# and mod-smacks are included.
# [1]: https://modules.prosody.im/stage_stable.html
subpackages="
prosody-mod-auth_ldap
@@ -29,6 +29,7 @@ subpackages="
prosody-mod-log_auth
prosody-mod-log_slow_events
prosody-mod-mam
+ prosody-mod-mam_muc
prosody-mod-muc_cloud_notify
prosody-mod-pastebin
prosody-mod-register_json
@@ -170,6 +171,13 @@ mam() {
_package_mod
}
+mam_muc() {
+ depends="prosody"
+ pkgdesc="prosody module implementing XEP-0313: Message Archive Management for group chats"
+ url="https://modules.prosody.im/mod_${subpkgname#prosody-mod-}.html"
+ _package_mod
+}
+
muc_cloud_notify() {
depends="prosody"
pkgdesc="prosody module cloud push notifications for muc"
@@ -272,4 +280,4 @@ webpresence() {
_package_mod
}
-sha512sums="453cf9e9f7de30355abad35649232263259723c60941020f677d1994f8e118e70b872e737435a0a706c8e0138e2500d75ec8d0755974dbadcc5f16e4c8079f14 prosody-modules-fd582067c732.tar.gz"
+sha512sums="66c4623252f0c29b1fcc11b04893c339716d27a8ca92f63d6f913e7418ac5b1cf3feadbf4ac0038ebe38a6c82a49ba82c0c8bf6ae1ff15cdc60a62aba3a0c1bc prosody-modules-2ae71126e379.tar.gz"
diff --git a/testing/protoc-gen-go/APKBUILD b/testing/protoc-gen-go/APKBUILD
new file mode 100644
index 00000000000..bc728f74b75
--- /dev/null
+++ b/testing/protoc-gen-go/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=protoc-gen-go
+pkgver=1.32.0
+pkgrel=2
+pkgdesc="Protocol Buffers Go generator"
+url="https://github.com/protocolbuffers/protobuf-go"
+arch="all"
+license="BSD-3-Clause"
+depends="protoc"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/protocolbuffers/protobuf-go/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/protobuf-go-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v \
+ -ldflags "-X google.golang.org/protobuf/internal/version.PreRelease=" \
+ ./cmd/protoc-gen-go/
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 protoc-gen-go -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+dffb159952282db426af8759346441003b461c6c1dde3a84671f644892a8bce6d0a57bfd6f19ad9d48852bdd4bf52544aae3f8cce66d498eb15be0a3acb276ae protoc-gen-go-1.32.0.tar.gz
+"
diff --git a/testing/protoc-gen-js/APKBUILD b/testing/protoc-gen-js/APKBUILD
new file mode 100644
index 00000000000..c4c930e01a0
--- /dev/null
+++ b/testing/protoc-gen-js/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer:
+pkgname=protoc-gen-js
+pkgver=3.21.2
+pkgrel=1
+pkgdesc="protoc-gen-js javascript protobuf generator"
+url="https://github.com/protocolbuffers/protobuf-javascript"
+# bazel
+arch="x86_64"
+license="BSD-3-Clause AND Apache-2.0"
+depends="protoc"
+makedepends="bazel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/protocolbuffers/protobuf-javascript/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/protobuf-javascript-$pkgver"
+# bazel stuff, no tests
+options="net !check"
+
+build() {
+ # prevent broken ccache use
+ JAVA_HOME=/usr/lib/jvm/java-11-openjdk \
+ PATH=/bin:/usr/bin \
+ bazel build plugin_files
+}
+
+package() {
+ install -Dm755 bazel-bin/generator/protoc-gen-js -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+afe5b16d1161a6a5e981976bfbdeaacdfcf6909126e55ee35f2513c3267c27870bde9fcd34fbd6aec22c79c41c975b643e26e24ce00b46c1814dfff24f542d48 protoc-gen-js-3.21.2.tar.gz
+"
diff --git a/testing/protoconf/APKBUILD b/testing/protoconf/APKBUILD
new file mode 100644
index 00000000000..6589ffe7175
--- /dev/null
+++ b/testing/protoconf/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=protoconf
+pkgver=0.1.7
+pkgrel=5
+pkgdesc="Configuration as Code framework based on protobuf and Starlark"
+url="https://docs.protoconf.sh/"
+arch="all"
+license="MIT"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/protoconf/protoconf/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v \
+ -ldflags "-X github.com/protoconf/protoconf/consts.Version=$pkgver" \
+ ./cmd/protoconf/
+}
+
+check() {
+ # /importers/golang_importer: failed to load packages: err: chdir src/html/template
+ # /importers/terraform_importer: flaky network call to https://releases.hashicorp.com/terraform-provider-tfe
+ go test $(go list ./... | grep -v \
+ -e '/importers/golang_importer$' \
+ -e '/importers/terraform_importer$' \
+ )
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+0652958a9a93b27959626da4a9b0feadbb97737a1d97f5dd2165609627626108af5c87304e3d5b5169a3008daf7cf644c1fdccce15406281766615bc4d17c35d protoconf-0.1.7.tar.gz
+"
diff --git a/testing/prowlarr/0001-disable-restart.patch b/testing/prowlarr/0001-disable-restart.patch
new file mode 100644
index 00000000000..8dc5aebe628
--- /dev/null
+++ b/testing/prowlarr/0001-disable-restart.patch
@@ -0,0 +1,20 @@
+Disable the restart functionality so the daemon can manage it.
+
+---
+ src/NzbDrone.Core/Lifecycle/LifecycleService.cs | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+index 9ed36a42e..565641284 100644
+--- a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
++++ b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+@@ -46,8 +46,7 @@ public void Shutdown()
+ public void Restart()
+ {
+ _logger.Info("Restart requested.");
+-
+- _eventAggregator.PublishEvent(new ApplicationShutdownRequested(true));
++ _eventAggregator.PublishEvent(new ApplicationShutdownRequested());
+
+ if (_runtimeInfo.IsWindowsService)
+ {
diff --git a/testing/prowlarr/APKBUILD b/testing/prowlarr/APKBUILD
new file mode 100644
index 00000000000..211c0359b2e
--- /dev/null
+++ b/testing/prowlarr/APKBUILD
@@ -0,0 +1,98 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=prowlarr
+pkgver=1.16.2.4435
+pkgrel=0
+pkgdesc="Aggregator for usenet index and torrent tracker"
+url="https://github.com/Prowlarr/Prowlarr"
+arch="x86_64 aarch64 armv7"
+license="GPL-3.0-only"
+options="net !check" # no tests
+depends="
+ aspnetcore6-runtime
+ sqlite-libs
+ "
+makedepends="
+ dotnet6-sdk
+ yarn
+ "
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Prowlarr/Prowlarr/archive/refs/tags/v$pkgver.tar.gz
+ 0001-disable-restart.patch
+ prowlarr.initd
+ prowlarr.confd
+ package_info
+ "
+builddir="$srcdir/Prowlarr-$pkgver"
+pkgusers="prowlarr"
+pkggroups="prowlarr"
+
+# map arch to dotnet
+case $CARCH in
+ x86_64) _dotnet_arch="x64" ;;
+ aarch64) _dotnet_arch="arm64" ;;
+ armv7) _dotnet_arch="arm" ;;
+ *) _dotnet_arch="$CARCH" ;;
+esac
+
+# custom variables
+_runtime="linux-musl-$_dotnet_arch"
+_framework="net6.0"
+_output="_output"
+_artifacts="$_output/$_framework/$_runtime/publish"
+
+prepare() {
+ default_prepare
+
+ # increase max opened files
+ ulimit -n 4096
+
+ # replace version info
+ local buildprops=src/Directory.Build.props
+ sed -i "/<AssemblyVersion>/s/>.*<\//>$pkgver<\//" "$buildprops"
+ sed -i "/<AssemblyConfiguration>/s/>.*<\//>master<\//" "$buildprops"
+
+ export BROWSERSLIST_IGNORE_OLD_DATA=true
+ yarn install --frozen-lockfile --network-timeout 120000
+}
+
+build() {
+ dotnet build src \
+ -p:RuntimeIdentifiers="$_runtime" \
+ -p:Configuration=Release \
+ -p:SelfContained=false \
+ -t:PublishAllRids
+ yarn build --env production --no-stats
+
+ # cleanup
+ find "$_artifacts" \( \
+ -name "ServiceUninstall.*" -o \
+ -name "ServiceInstall.*" -o \
+ -name "Prowlarr.Windows.*" \) -delete
+
+ mv "$_output"/UI "$_artifacts"
+}
+
+package() {
+ local destdir="$pkgdir"/usr/lib/prowlarr
+
+ # use package_info to disable update feature
+ install -Dm644 "$srcdir"/package_info "$destdir"/package_info
+ echo "PackageVersion=$pkgver-r$pkgrel" >>"$destdir"/package_info
+
+ cp -af "$_artifacts" "$destdir"/bin
+ chown -R "$pkgusers:$pkggroups" "$destdir"
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+1509ce9634e6213eb6323f87276635a44ab83ebe55b20ae6285922dd2e69b1c8519422eac9ada5fc27c42424b477e9677fbf3b9f982cbae43b4614fb65116d80 prowlarr-1.16.2.4435.tar.gz
+753520379a6c5f2899b4ddfd820d5573598a32cb105f74c6fd978a3f2c98895cf709ef2d9afe2bae8c4856da86cb6a1364f5713ea7ef6a36bb21b5a5840c1471 0001-disable-restart.patch
+33de66749dc613a430ce00abcff070b646c80f158de2bf70c7078e5526f93348f24bb5d45ff55e3e06123aa4c849a8eebfebf941c8f9c54db87fa614bda679c7 prowlarr.initd
+1f073dd820a890e7d24d84e18763b04f07abd86a0370f56f7319c3e7c9da9d3e2be484e0cef2fb5fc4050be1cbb1e0445080d702d217393633256ed3758fc593 prowlarr.confd
+67c4dd1cf8259296d994c350dfd3962d23333071889ce0b4ef6b2f4cbb4349490c5dbe4dcc202c99bab7a5c4b7611be56d7c8835b2b13924526c45311db1c3fb package_info
+"
diff --git a/testing/prowlarr/package_info b/testing/prowlarr/package_info
new file mode 100644
index 00000000000..c2e444817cd
--- /dev/null
+++ b/testing/prowlarr/package_info
@@ -0,0 +1,4 @@
+# PackageVersion is added by APKBUILD
+PackageAuthor=[alpine](https://pkgs.alpinelinux.org/packages)
+UpdateMethod=External
+Branch=master
diff --git a/testing/prowlarr/prowlarr.confd b/testing/prowlarr/prowlarr.confd
new file mode 100644
index 00000000000..387687d5c99
--- /dev/null
+++ b/testing/prowlarr/prowlarr.confd
@@ -0,0 +1,9 @@
+# Prowlarr configuration options
+
+command_user="prowlarr:prowlarr" # user:group
+directory="/var/lib/prowlarr"
+supervisor="supervise-daemon"
+
+#logdir="/var/log/prowlarr"
+#error_log="$logdir/error.log"
+#output_log="$logdir/output.log"
diff --git a/testing/prowlarr/prowlarr.initd b/testing/prowlarr/prowlarr.initd
new file mode 100644
index 00000000000..14e5f07c67d
--- /dev/null
+++ b/testing/prowlarr/prowlarr.initd
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/prowlarr
+: ${command_user:=prowlarr:prowlarr}
+: ${directory:=/var/lib/prowlarr}
+
+name=prowlarr
+description="Prowlarr daemon"
+command="/usr/lib/prowlarr/bin/Prowlarr"
+command_args="-nobrowser -data=$directory"
+command_background=true
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory"
+
+ if [ -n "$logdir" ]; then
+ checkpath -d -o "$command_user" "$logdir"
+ fi
+
+ if [ -n "$output_log" ]; then
+ checkpath -f -o "$command_user" "$output_log"
+ fi
+
+ if [ -n "$error_log" ]; then
+ checkpath -f -o "$command_user" "$error_log"
+ fi
+}
diff --git a/testing/prowlarr/prowlarr.pre-install b/testing/prowlarr/prowlarr.pre-install
new file mode 100644
index 00000000000..79d527ee989
--- /dev/null
+++ b/testing/prowlarr/prowlarr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S prowlarr 2>/dev/null
+adduser -S -D -h /var/lib/prowlarr -s /sbin/nologin -G prowlarr -g prowlarr prowlarr 2>/dev/null
+
+exit 0
diff --git a/testing/psftools/APKBUILD b/testing/psftools/APKBUILD
new file mode 100644
index 00000000000..e0481e456e6
--- /dev/null
+++ b/testing/psftools/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=psftools
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="tools to manipulate fixed-width bitmap fonts"
+url="http://www.seasip.info/Unix/PSF/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="autoconf automake libtool"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://www.seasip.info/Unix/PSF/psftools-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6decda6a690e3e1959ebd9ab1f62aa171d8c5b52fb8a014af785121a59e4fa1af2bbbf7621413bbfcb6f84f64acb5fbff02a6f8c4ac9f60a0fa85beca8ad3030 psftools-1.1.1.tar.gz
+"
diff --git a/testing/psi-notify/APKBUILD b/testing/psi-notify/APKBUILD
new file mode 100644
index 00000000000..7545f48756d
--- /dev/null
+++ b/testing/psi-notify/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=psi-notify
+pkgver=1.3.1
+pkgrel=0
+pkgdesc="Notifier for system-wide resource pressure using PSI"
+url="https://github.com/cdown/psi-notify"
+license="MIT"
+arch="all"
+makedepends="libnotify-dev"
+source="https://github.com/cdown/psi-notify/archive/$pkgver/psi-notify-$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+check() {
+ if [ -d /proc/pressure ]; then
+ make test
+ else
+ echo "Skipping tests: no pressure directory found"
+ fi
+}
+
+package() {
+ install -Dm755 psi-notify "$pkgdir"/usr/bin/psi-notify
+}
+
+sha512sums="
+bfc61e212097af53e6afdb916996418c7d05550a6bdf799f461da8d44bd2215e4a6a8d91b421b9c24326cf0d64e3a9e00fb8de87fb3aed4d1aa6018f289f62e8 psi-notify-1.3.1.tar.gz
+"
diff --git a/testing/psi-plus/APKBUILD b/testing/psi-plus/APKBUILD
new file mode 100644
index 00000000000..e1eae3171a7
--- /dev/null
+++ b/testing/psi-plus/APKBUILD
@@ -0,0 +1,59 @@
+# Maintainer: Cowington Post <cowingotnpost@gmail.com>
+pkgname=psi-plus
+pkgver=1.5.1653
+pkgrel=0
+pkgdesc="Powerful XMPP (Jabber) client (Qt, C++) designed for power users"
+url="https://psi-plus.com/"
+# ppc64le, s390x, riscv64: qt5-qtwebengine missing
+arch="all !ppc64le !s390x !riscv64"
+license="GPL-2.0"
+makedepends="
+ cmake
+ hunspell-dev
+ libidn-dev
+ libotr-dev
+ libsignal-protocol-c-dev
+ libusrsctp-dev
+ qca-dev
+ qt5-qtbase-dev
+ qt5-qtmultimedia-dev
+ qt5-qtsvg-dev
+ qt5-qtwebengine-dev
+ qt5-qtx11extras-dev
+ samurai
+ tidyhtml-dev
+ "
+subpackages="$pkgname-plugins"
+source="https://github.com/psi-plus/psi-plus-snapshots/archive/$pkgver/psi-plus-$pkgver.tar.gz"
+builddir="$srcdir/psi-plus-snapshots-$pkgver"
+options="!check" # no tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCHAT_TYPE=webengine\
+ -DUSE_XSS=0 \
+ -DPSI_PLUS=1 \
+ -DENABLE_PLUGINS=ON \
+ -DBUILD_DEV_PLUGINS=ON \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+plugins() {
+ amove usr/lib/psi-plus/plugins
+}
+
+sha512sums="
+c86f6701717ea2208c8ed95fd1b558d4848880fd479e18d09f97ab05e14c9854972369dfcd8d28ef20b5fb02d12fa812a0a5acd54281a80b2f5c3134e54ab8c5 psi-plus-1.5.1653.tar.gz
+"
diff --git a/testing/pspp/APKBUILD b/testing/pspp/APKBUILD
new file mode 100644
index 00000000000..98c0eecb9b9
--- /dev/null
+++ b/testing/pspp/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=pspp
+pkgver=1.4.1
+pkgrel=3
+pkgdesc="GNU PSPP is a program for statistical analysis of sampled data"
+url="https://www.gnu.org/software/pspp/"
+arch="all"
+license="GPL-3.0-only"
+subpackages="$pkgname-dbg $pkgname-doc"
+source="https://ftpmirror.gnu.org/pspp/pspp-$pkgver.tar.gz"
+makedepends="
+ cairo-dev
+ gettext-dev
+ gnu-libiconv-dev
+ gsl-dev
+ gtk+3.0-dev
+ gtksourceview-dev
+ libxml2-dev
+ pango-dev
+ pango-dev
+ perl-dev
+ python3
+ readline-dev
+ spread-sheet-widget-dev
+ zlib-dev
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-stripping
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+c664a6c6f4f1826db396ad776d81cadc791e4f661c603a7f164f70f9571a84cfae6fec116356b3f950991245b2b0dc9805e75193a055a242558cda1209e7830f pspp-1.4.1.tar.gz
+"
diff --git a/testing/ptpd/APKBUILD b/testing/ptpd/APKBUILD
new file mode 100644
index 00000000000..3429949671f
--- /dev/null
+++ b/testing/ptpd/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Denis Tolstov <tolstov_den@mail.ru>
+# Maintainer: Denis Tolstov <tolstov_den@mail.ru>
+pkgname=ptpd
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="Precision Time Protocol daemon"
+options="!check" # No testsuite
+url="https://github.com/ptpd/ptpd"
+arch="all"
+license="BSD-2-Clause"
+makedepends="autoconf automake libtool
+ libpcap-dev net-snmp-dev linux-headers"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/ptpd/ptpd/archive/ptpd-$pkgver.tar.gz
+ ptpd-2.3.1-fix-libressl-compatibility.patch
+ ptpd-2.3.1-fix-snmp.patch
+
+ ptpd2.rc
+ ptpd2.confd"
+builddir="$srcdir/ptpd-$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-daemon
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dm755 src/ptpd2.conf.minimal "$pkgdir"/etc/ptpd2.conf
+ install -Dm755 "$srcdir"/ptpd2.rc "$pkgdir"/etc/init.d/ptpd2
+ install -Dm755 "$srcdir"/ptpd2.confd "$pkgdir"/etc/conf.d/ptpd2
+}
+
+sha512sums="25c128ce1920ae2c1469e986bfa5d5b8ebca04ec14b838fb8232b36e0a1ef94646507e1b25034846d11cf0f71d7e2da983b9f6408f8fcfc608904ecfec2a15c4 ptpd-2.3.1.tar.gz
+19b6c3b3e248514d3374ac17f37070f60b43b5ba8d38b7564abd00896e2aecc29813f9a36bba2da7be33d6ff47aa029644d735f4325e948fe73ba81b466abc1d ptpd-2.3.1-fix-libressl-compatibility.patch
+40e6f89dc922da9b3a68f7513a4d08f8708a1f4ebb87147c6ab3e6a75d8aaa5a627045e967c5256445897175205c7b95e77f0ca7322062fa6265b7e909097978 ptpd-2.3.1-fix-snmp.patch
+37af776a265fbabdabed381d98cf50d78a512634fd84ce07466a47a0e96a6b2cccfb762732a043139b6c136eefdc6443ab9a5cba1c30234b6c66acc23e98a5b2 ptpd2.rc
+40ea56a92222eb10dc429343a23bdcc0e75f626e34fea139a09ca545a50aee0550253965de036218889554a2c0c7928c0051e3e71d9b9cd0a9d44d334e0bac47 ptpd2.confd"
diff --git a/testing/ptpd/ptpd-2.3.1-fix-libressl-compatibility.patch b/testing/ptpd/ptpd-2.3.1-fix-libressl-compatibility.patch
new file mode 100644
index 00000000000..4fa25797ff0
--- /dev/null
+++ b/testing/ptpd/ptpd-2.3.1-fix-libressl-compatibility.patch
@@ -0,0 +1,24 @@
+diff -urN old/src/dep/ntpengine/ntp_isc_md5.c new/src/dep/ntpengine/ntp_isc_md5.c
+--- old/src/dep/ntpengine/ntp_isc_md5.c 2015-06-29 17:13:29.000000000 +0200
++++ new/src/dep/ntpengine/ntp_isc_md5.c 2018-09-15 22:56:18.469044902 +0200
+@@ -262,7 +262,7 @@
+ {
+ u_char digest[64];
+ u_int len;
+- EVP_MD_CTX ctx;
++ PTPD_EVP_MD_CTX ctx;
+ pkt[length / 4] = htonl(keyid);
+ EVP_DigestInit(&ctx);
+ EVP_DigestUpdate(&ctx, (u_char *)key, (u_int)strlen(key));
+diff -urN old/src/dep/ntpengine/ntp_isc_md5.h new/src/dep/ntpengine/ntp_isc_md5.h
+--- old/src/dep/ntpengine/ntp_isc_md5.h 2015-06-29 17:13:29.000000000 +0200
++++ new/src/dep/ntpengine/ntp_isc_md5.h 2018-09-15 22:56:11.852020732 +0200
+@@ -80,7 +80,7 @@
+ # define MD5Init(c) isc_md5_init(c)
+ # define MD5Update(c, p, s) isc_md5_update(c, p, s)
+ # define MD5Final(d, c) isc_md5_final((c), (d)) /* swapped */
+- typedef MD5_CTX EVP_MD_CTX;
++ typedef MD5_CTX PTPD_EVP_MD_CTX;
+ # define EVP_DigestInit(c) MD5Init(c)
+ # define EVP_DigestUpdate(c, p, s) MD5Update(c, p, s)
+ # define EVP_DigestFinal(c, d, pdl) \
diff --git a/testing/ptpd/ptpd-2.3.1-fix-snmp.patch b/testing/ptpd/ptpd-2.3.1-fix-snmp.patch
new file mode 100644
index 00000000000..31b466d1468
--- /dev/null
+++ b/testing/ptpd/ptpd-2.3.1-fix-snmp.patch
@@ -0,0 +1,12 @@
+diff -urN old/src/dep/snmp.c new/src/dep/snmp.c
+--- old/src/dep/snmp.c 2015-06-29 17:13:29.000000000 +0200
++++ new/src/dep/snmp.c 2018-09-15 22:54:11.818589001 +0200
+@@ -221,7 +221,7 @@
+
+ #define SNMP_LOCAL_VARIABLES \
+ static unsigned long long_ret; \
+- static U64 counter64_ret; \
++ static struct counter64 counter64_ret; \
+ static uint32_t ipaddr; \
+ Integer64 bigint; \
+ struct snmpHeaderIndex idx; \
diff --git a/testing/ptpd/ptpd2.confd b/testing/ptpd/ptpd2.confd
new file mode 100644
index 00000000000..22fe2d49285
--- /dev/null
+++ b/testing/ptpd/ptpd2.confd
@@ -0,0 +1,4 @@
+# /etc/conf.d/ptpd2
+
+# Options to pass to ptpd2
+PTPD_OPTS=""
diff --git a/testing/ptpd/ptpd2.rc b/testing/ptpd/ptpd2.rc
new file mode 100644
index 00000000000..bf8e1433229
--- /dev/null
+++ b/testing/ptpd/ptpd2.rc
@@ -0,0 +1,56 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+PTPD_CONFIGFILE=${PTPD_CONFIGFILE:-/etc/${RC_SVCNAME}.conf}
+PTPD_STATEFILE_DIR=${PTPD_STATEFILE_DIR:-/var/run}
+PTPD_STATEFILE=${PTPD_STATEFILE:-${PTPD_STATEFILE_DIR}/${RC_SVCNAME}.status}
+PTPD_PIDFILE_DIR=${PTPD_PIDFILE_DIR:-/var/run}
+PTPD_PIDFILE=${PTPD_PIDFILE:-${PTPD_PIDFILE_DIR}/${RC_SVCNAME}.pid}
+
+extra_commands="checkconfig"
+extra_started_commands="reload"
+command="/usr/sbin/ptpd2"
+command_args="--global:lock_file=$PTPD_PIDFILE --global:status_file=$PTPD_STATEFILE -c $PTPD_CONFIGFILE $PTPD_OPTS"
+pidfile="${PTPD_PIDFILE}"
+description="Precise Time Protocol daemon"
+
+
+depend() {
+ use net dns logger
+}
+
+checkconfig() {
+ ebegin "Checking ${SVCNAME} configuration"
+ msgout="$($command -k $command_args 2>&1)"
+ RETVAL=$?
+
+ # colorize output
+ echo "$msgout" | while read ln; do
+ if [[ "$ln" == *ignored* ]]; then
+ ewarn "$ln"
+ elif [[ "$ln" != "Configuration OK" ]]; then
+ eerror "$ln"
+ fi
+ done
+
+ eend $RETVAL
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --exec ${command} \
+ --pidfile ${pidfile} \
+ -- ${command_args}
+ eend $?
+}
+
+reload() {
+ checkconfig || return 1
+
+ ebegin "Reloading ${SVCNAME} configuration"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/testing/ptylie/APKBUILD b/testing/ptylie/APKBUILD
index 878cd14d64a..26dcb175d10 100644
--- a/testing/ptylie/APKBUILD
+++ b/testing/ptylie/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ptylie
pkgver=0.2
-pkgrel=0
+pkgrel=1
pkgdesc="Record a terminal session with automatic keyboard entry"
url="https://github.com/p-gen/ptylie"
arch="all"
diff --git a/testing/pully/APKBUILD b/testing/pully/APKBUILD
new file mode 100644
index 00000000000..94aa81fb4b9
--- /dev/null
+++ b/testing/pully/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+# Contributor: Martijn Braam <martijn@brixit.nl>
+pkgname=pully
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Gitlab webhook receiver daemon"
+url="https://git.sr.ht/~martijnbraam/pully"
+arch="all"
+license="GPL-3.0-only"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/pully/archive/$pkgver.tar.gz
+ pully.confd
+ pully.initd
+ "
+depends="python3"
+subpackages="$pkgname-openrc"
+
+package() {
+ install -D -m755 "$builddir"/pully.py \
+ "$pkgdir"/usr/bin/pully
+
+ install -D -m644 "$srcdir"/pully.confd \
+ "$pkgdir"/etc/conf.d/pully
+ install -D -m755 "$srcdir"/pully.initd \
+ "$pkgdir"/etc/init.d/pully
+}
+
+sha512sums="
+dd59b23375a969bd1e76d9f024abd63d9c64993e536d879bb37b33ab8963772b6f6e067fb10a5008b84ef00ab633668f7ce6bbc881d8bd49748855f6dc7d7921 pully-1.0.0.tar.gz
+5bea58d6a7359342238ae2b6e1a2c220c2e95ba860fd69460f8053c804fac3f1600bb1b02e2d9464f14d22d095159781a666070a82618191b19b590fd7844274 pully.confd
+d668da01a75793d0d0f4fb68aa0b750fcbf022060d0d5b76291e50f11c222b2c7a616de015dba4b43b6537621445519ee239edc5851b23f1da67649a43499f79 pully.initd
+"
diff --git a/testing/pully/pully.confd b/testing/pully/pully.confd
new file mode 100644
index 00000000000..b87a3e1c74b
--- /dev/null
+++ b/testing/pully/pully.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/pully
+
+# Path to the config file to use.
+#cfgfile="/etc/pully.conf"
+
+output_log="/var/log/pully.log"
+error_log="/var/log/pully.log"
+
+supervisor=supervise-daemon
+
diff --git a/testing/pully/pully.initd b/testing/pully/pully.initd
new file mode 100644
index 00000000000..4602d705692
--- /dev/null
+++ b/testing/pully/pully.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+name="Pully"
+description="Gitlab Webhook receiver"
+
+: ${cfgfile:="/etc/pully.conf"}
+: ${command_user:="root:root"}
+
+command="/usr/bin/pully"
+command_args="$cfgfile"
+
+required_files="$cfgfile"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -f --owner "$command_user" --mode "0644" $logfile
+}
diff --git a/testing/pulsar-client-cpp/APKBUILD b/testing/pulsar-client-cpp/APKBUILD
new file mode 100644
index 00000000000..1db10661f1f
--- /dev/null
+++ b/testing/pulsar-client-cpp/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=pulsar-client-cpp
+pkgver=3.1.2
+pkgrel=4
+pkgdesc="Apache Pulsar C++ client"
+url="https://github.com/apache/pulsar-client-cpp"
+arch="all"
+# Apache-2.0 : pulsar
+# BSD-2-Clause : pulsar-client-cpp/lib/lz4/lz4.{h,c}
+# Zlib : pulsar-client-cpp/lib/checksum/crc32c_sw.cc
+license="Apache-2.0 AND BSD-2-Clause AND Zlib"
+subpackages="$pkgname-dev"
+options="!check" # test requires docker/java/pulsar-server
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ boost-dev
+ cmake
+ curl-dev
+ openssl-dev>3
+ protobuf-dev
+ samurai
+ snappy-dev
+ zstd-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/apache/pulsar-client-cpp/archive/refs/tags/v$pkgver.tar.gz
+ cxx17.patch
+ no-werror.patch
+ "
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_BUILD_RPATH=ON \
+ -DBUILD_DYNAMIC_LIB=ON \
+ -DBUILD_PERF_TOOLS=OFF \
+ -DBUILD_STATIC_LIB=OFF \
+ -DBUILD_TESTS=OFF \
+ -DLIBRARY_VERSION=$pkgver \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+9339eab337ab08a7ba3c52d96e017bc11fbfd604e65a9820d78348ed4adba285d3380738a063311b0cb542d17299b2770936f8a2be6d5cb8fa85b0e339bd6f0b pulsar-client-cpp-3.1.2.tar.gz
+20591a050403d9e49a75c52cba1555a3568d7ec85212d051808ac6e308d8adcc846df25e2f0d14dda0a75ccadace346e9b95a13508b31c31be661a96cbf9e2f4 cxx17.patch
+6a757a63ae380de1d9b068a8567aad34a90cf8caa01dee48091d1cfa6c5584cd619392896c4bbfa4695e3def5934e87b5cdcf363217a0020f1784e36a976f08d no-werror.patch
+"
diff --git a/testing/pulsar-client-cpp/cxx17.patch b/testing/pulsar-client-cpp/cxx17.patch
new file mode 100644
index 00000000000..d1c07ec727c
--- /dev/null
+++ b/testing/pulsar-client-cpp/cxx17.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0e346e5..ed267a9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -88,7 +88,7 @@ find_package(Threads REQUIRED)
+ MESSAGE(STATUS "Threads library: " ${CMAKE_THREAD_LIBS_INIT})
+
+ set(Boost_NO_BOOST_CMAKE ON)
+-set(CMAKE_CXX_STANDARD 11)
++set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_C_STANDARD 11)
+
+ # Compiler specific configuration:
diff --git a/testing/pulsar-client-cpp/no-werror.patch b/testing/pulsar-client-cpp/no-werror.patch
new file mode 100644
index 00000000000..c7b7c8836c9
--- /dev/null
+++ b/testing/pulsar-client-cpp/no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7db05c4..0e346e5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -100,7 +100,7 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
+ # ?? Don't have this to test with
+ else() # GCC or Clang are mostly compatible:
+ # Turn on warnings and enable warnings-as-errors:
+- add_compile_options(-Wall -Wformat-security -Wvla -Werror)
++ add_compile_options(-Wall -Wformat-security -Wvla)
+ # Turn off certain warnings that are too much pain for too little gain:
+ add_compile_options(-Wno-sign-compare -Wno-deprecated-declarations -Wno-error=cpp)
+ if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR APPLE)
diff --git a/testing/pulseview/APKBUILD b/testing/pulseview/APKBUILD
index f59d944cb5f..036ab062479 100644
--- a/testing/pulseview/APKBUILD
+++ b/testing/pulseview/APKBUILD
@@ -1,20 +1,35 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=pulseview
pkgver=0.4.2
-pkgrel=0
+pkgrel=8
pkgdesc="QT-based GUI frontend for sigrok"
url="https://sigrok.org/wiki/PulseView"
-makedepends="libserialport-dev libsigrok-dev libsigrokdecode-dev glibmm-dev
- qt5-qtbase-dev qt5-qtsvg-dev boost-dev cmake qt5-qttools-dev"
+makedepends="
+ boost-dev
+ cmake
+ glibmm-dev
+ libserialport-dev
+ libsigrok-dev
+ libsigrokdecode-dev
+ qt5-qtbase-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ samurai
+ "
# Without qt5-qtsvg some icons in the GUI are missing
depends="qt5-qtsvg"
-arch="all"
+arch="all !riscv64" # fails to build on riscv64
license="GPL-3.0-only"
-source="http://sigrok.org/download/source/pulseview/pulseview-$pkgver.tar.gz"
+source="http://sigrok.org/download/source/pulseview/pulseview-$pkgver.tar.gz
+ https://github.com/sigrokproject/pulseview/commit/ae726b70a7ada9a4be5808e00f0c951318479684.patch
+ fix-build-template.patch
+ remove-broken-testcases.patch
+ "
subpackages="$pkgname-doc"
build() {
- cmake . -DCMAKE_INSTALL_PREFIX=/usr \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_BINDIR=/usr/bin \
-DCMAKE_INSTALL_SBINDIR=/usr/sbin \
-DCMAKE_INSTALL_SYSCONFDIR=/etc/hiawatha \
@@ -22,15 +37,20 @@ build() {
-DCMAKE_INSTALL_MANDIR=/usr/share/man \
-DENABLE_TESTS=y \
-DENABLE_DECODE=y
- make
+ cmake --build build
}
check() {
- make test
+ ctest --output-on-failure --test-dir build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="79f653c9faad021c03b59b4a519b594190d5558dfb9be60cabcc2a35e991e66b733b337fec58a9248699e7aef0df3be1472c81f93274b25cec1fc6b73f8f033b pulseview-0.4.2.tar.gz"
+sha512sums="
+79f653c9faad021c03b59b4a519b594190d5558dfb9be60cabcc2a35e991e66b733b337fec58a9248699e7aef0df3be1472c81f93274b25cec1fc6b73f8f033b pulseview-0.4.2.tar.gz
+e115c29151474d5dc905042ee699542abdcc9db523d45595cf0386f0efb9523b292536972074536cb330ede90b41e1edd591888bceb5155b49657937f87e9087 ae726b70a7ada9a4be5808e00f0c951318479684.patch
+5af1ba2eb5de6b899d58fc87ee4f69a1ffd580ca81ad6be4fc0078692f688ebb17986bb860b03336d3caba0ba312cf1252194eacd464a697f70cc16910a3f177 fix-build-template.patch
+f96d8ad1f80d068aa367282656f654313261ae5918c00347d14d3290798d48361d452d3b6bd1f67ebfa516e04fc5b3cbea0cdec0995e691045cc0d025b9f875b remove-broken-testcases.patch
+"
diff --git a/testing/pulseview/fix-build-template.patch b/testing/pulseview/fix-build-template.patch
new file mode 100644
index 00000000000..dea3c62bbd6
--- /dev/null
+++ b/testing/pulseview/fix-build-template.patch
@@ -0,0 +1,51 @@
+From ed643f0b4ac587204a5243451cda181ee1405d62 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
+Date: Wed, 28 Apr 2021 02:14:47 +0200
+Subject: [PATCH] Fix broken build due to C++ template behind C linkage
+
+glib/gatomic.h since 2.68 includes type_traits, which causes a compilation
+error:
+In file included from /usr/include/glib-2.0/glib/gatomic.h:31,
+ from /usr/include/glib-2.0/glib/gthread.h:32,
+ from /usr/include/glib-2.0/glib/gasyncqueue.h:32,
+ from /usr/include/glib-2.0/glib.h:32,
+ from /usr/include/libsigrokdecode/libsigrokdecode.h:25,
+ from /home/abuild/rpmbuild/BUILD/pulseview-0.4.2/pv/data/decode/annotation.cpp:21:
+/usr/include/c++/10/type_traits:2308:3: error: template with C linkage
+2308 | template<typename _CTp, typename _Rp>
+
+As libsigrokdecode.h declares extern C linkage itself where necessary,
+remove it from pulseviews include statements from the last two occasions.
+---
+ pv/data/decode/annotation.cpp | 2 --
+ pv/views/trace/decodetrace.cpp | 2 --
+ 2 files changed, 4 deletions(-)
+
+diff --git a/pv/data/decode/annotation.cpp b/pv/data/decode/annotation.cpp
+index 7f233478..f8a5c47b 100644
+--- a/pv/data/decode/annotation.cpp
++++ b/pv/data/decode/annotation.cpp
+@@ -17,9 +17,7 @@
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+-extern "C" {
+ #include <libsigrokdecode/libsigrokdecode.h>
+-}
+
+ #include <cassert>
+ #include <vector>
+diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp
+index 409f1d28..888064d0 100644
+--- a/pv/views/trace/decodetrace.cpp
++++ b/pv/views/trace/decodetrace.cpp
+@@ -17,9 +17,7 @@
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+-extern "C" {
+ #include <libsigrokdecode/libsigrokdecode.h>
+-}
+
+ #include <limits>
+ #include <mutex>
diff --git a/testing/pulseview/remove-broken-testcases.patch b/testing/pulseview/remove-broken-testcases.patch
new file mode 100644
index 00000000000..1f696e7785d
--- /dev/null
+++ b/testing/pulseview/remove-broken-testcases.patch
@@ -0,0 +1,11 @@
+--- a/test/util.cpp
++++ b/test/util.cpp
+@@ -217,8 +217,6 @@
+ BOOST_CHECK_EQUAL(fmt(ts( -100), 0), "-1:40");
+ BOOST_CHECK_EQUAL(fmt(ts( 4000), 0), "+1:06:40");
+ BOOST_CHECK_EQUAL(fmt(ts(-4000), 0), "-1:06:40");
+- BOOST_CHECK_EQUAL(fmt(ts(12000), 0), "+3:20:00");
+- BOOST_CHECK_EQUAL(fmt(ts(15000), 0), "+4:10:00");
+ BOOST_CHECK_EQUAL(fmt(ts(20000), 0), "+5:33:20");
+ BOOST_CHECK_EQUAL(fmt(ts(25000), 0), "+6:56:40");
+
diff --git a/testing/pulumi-watch/APKBUILD b/testing/pulumi-watch/APKBUILD
new file mode 100644
index 00000000000..8729efed3fc
--- /dev/null
+++ b/testing/pulumi-watch/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=pulumi-watch
+pkgver=0.1.5
+pkgrel=2
+pkgdesc="Helper utility for pulumi watch command"
+url="https://github.com/pulumi/watchutil-rs"
+# blocked by pulumi
+arch="x86_64 aarch64"
+license="Apache-2.0"
+makedepends="cargo cargo-auditable"
+depends="pulumi"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pulumi/watchutil-rs/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/watchutil-rs-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/pulumi-watch -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+61ddd07f533811badc269332e97f3e9f6337bb3c22e4c5d237bec03596791ca900b408edc7cd57b4474ac7256a283865936d99ad70d4690667e4f481aa62865b pulumi-watch-0.1.5.tar.gz
+"
diff --git a/testing/pup/APKBUILD b/testing/pup/APKBUILD
deleted file mode 100644
index d16bba9db05..00000000000
--- a/testing/pup/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=pup
-pkgver=0.4.0
-pkgrel=1
-pkgdesc="HTML parser for the command line"
-url="https://github.com/ericchiang/pup"
-arch="all"
-license="MIT"
-makedepends="go"
-subpackages="$pkgname-doc"
-source="https://github.com/ericchiang/pup/archive/v$pkgver/pup-$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/ericchiang/pup"
-
-export GOPATH="$srcdir"
-
-prepare() {
- default_prepare
- cd "$srcdir"
- mkdir -p "$(dirname "$builddir")"
- ln -s "$srcdir/$pkgname-$pkgver" "$builddir"
-}
-
-build() {
- go build
-}
-
-check() {
- go test ./...
-}
-
-package() {
- install -Dm755 $pkgname \
- "$pkgdir"/usr/bin/$pkgname
- install -Dm644 README.md \
- "$pkgdir"/usr/share/doc/$pkgname/README.md
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="5228a283cdbc6425888b08154873e059f5808efd68eb86880d15572398e50b0a431922e6ef5e6acf04bc18c95bfd793590d5df2eccb9a041a64dc03731ec1874 pup-0.4.0.tar.gz"
diff --git a/testing/pure-data/APKBUILD b/testing/pure-data/APKBUILD
new file mode 100644
index 00000000000..67784a4a16f
--- /dev/null
+++ b/testing/pure-data/APKBUILD
@@ -0,0 +1,80 @@
+# Maintainer:
+pkgname=pure-data
+pkgver=0.54.1
+_pkgver=0.54-1
+_icon=9e4f117ade0bc1da951981128998ad82fff83b0c
+pkgrel=0
+pkgdesc="Pure Data real-time music and multimedia environment"
+url="https://puredata.info"
+arch="aarch64 x86_64"
+license="BSD-3-Clause"
+makedepends="
+ alsa-lib-dev
+ autoconf
+ automake
+ fftw-dev
+ jack-dev
+ libtool
+ portaudio-dev
+ portmidi-dev
+ tk-dev
+ "
+subpackages="$pkgname-doc $pkgname-libs $pkgname-dev"
+source="https://msp.puredata.info/Software/pd-$_pkgver.src.tar.gz
+ pd-$_icon.svg::https://raw.githubusercontent.com/pure-data/pd-icon/$_icon/masters/icon.svg
+ system-portmidi.patch
+ implicit.patch
+ "
+builddir="$srcdir/pd-$_pkgver"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ EXTERNAL_LDFLAGS="$LDFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --enable-fftw \
+ --enable-alsa \
+ --enable-jack \
+ --enable-libpd \
+ --enable-libpd-utils \
+ --enable-libpd-instance \
+ --enable-libpd-extras \
+ --disable-oss \
+ --disable-static \
+ --without-local-portaudio \
+ --without-local-portmidi
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ ln -sfv ../../../bin/pd "$pkgdir"/usr/lib/pd/bin/pd
+
+ install -Dm644 "$srcdir"/pd-$_icon.svg \
+ "$pkgdir"/usr/share/icons/hicolor/scalable/apps/pd.svg
+
+ rm -r "$pkgdir"/usr/share/pixmaps
+}
+
+doc() {
+ default_doc
+
+ amove usr/lib/pd/doc
+}
+
+sha512sums="
+619a4bb9ddb13fdc278e868c98c8715e1251936f34d5d43da275cf4c9fdd18aa4a140c7def7e6201b6aa0ea3193afc65afe85efd44139a4534b332187b675a55 pd-0.54-1.src.tar.gz
+8d8b274e159bd4cc6a83d5d9d5019b106a74fa61943b36e2a56336b9c3c2c1b1092ce7f79f5264eb69ca43a9360404b800df338b2ad738ca3c237a8ae3c9c41d pd-9e4f117ade0bc1da951981128998ad82fff83b0c.svg
+8a346e9ecfe31de92639ca546bbdf7f9c55d3123bf71dcaeea77b55fdf0b9ec5850b23c2b25396b9b7bec46c0b0bdcae9eaf4c5d35d0425a4ae5f592401ceccf system-portmidi.patch
+ac563547cc677cda793badb7994548867e7f55c1a59167de7e92f871f711b6f1fa188e9fa30413a27e8d76adbd01e7a795a577bfc3599f91a60b055ea25d21a0 implicit.patch
+"
diff --git a/testing/pure-data/implicit.patch b/testing/pure-data/implicit.patch
new file mode 100644
index 00000000000..999a4d5ced0
--- /dev/null
+++ b/testing/pure-data/implicit.patch
@@ -0,0 +1,12 @@
+diff --git a/src/d_fft_fftw.c b/src/d_fft_fftw.c
+index 10d1ce4..200eaf5 100644
+--- a/src/d_fft_fftw.c
++++ b/src/d_fft_fftw.c
+@@ -7,6 +7,7 @@
+ /* changes and additions for FFTW3 by Thomas Grill */
+
+ #include "m_pd.h"
++#include "m_imp.h"
+ #include <fftw3.h>
+
+ int ilog2(int n);
diff --git a/testing/pure-data/system-portmidi.patch b/testing/pure-data/system-portmidi.patch
new file mode 100644
index 00000000000..7e6322ff7d6
--- /dev/null
+++ b/testing/pure-data/system-portmidi.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/archlinux/svntogit-community/blob/9d9b3d8f2b48a61848634ef48812a72b574ddd2c/trunk/pd-0.52.1-system_portmidi.patch
+--
+diff -ruN a/configure.ac b/configure.ac
+--- a/configure.ac 2021-12-20 00:21:34.000000000 +0100
++++ b/configure.ac 2021-12-20 18:37:26.445665793 +0100
+@@ -422,9 +422,7 @@
+ portmidi=no])
+ AS_IF([test x$portmidi = xyes],[
+ AS_IF([test x$local_portmidi = xno],[
+- # fall back to local portmidi if not foud
+- AC_CHECK_LIB([portmidi], [Pm_Initialize],
+- [AC_MSG_NOTICE([Using system PortMidi])], [local_portmidi=yes])
++ PKG_CHECK_MODULES([LIBPORTMIDI], [portmidi])
+ ])
+ AS_IF([test x$local_portmidi = xyes],[
+ AS_IF([test -d "$srcdir/portmidi"],[
+diff -ruN a/src/Makefile.am b/src/Makefile.am
+--- a/src/Makefile.am 2021-12-20 00:21:34.000000000 +0100
++++ b/src/Makefile.am 2021-12-20 18:37:51.975761871 +0100
+@@ -292,7 +292,7 @@
+ pd_LDADD_standalone += $(top_builddir)/portmidi/libportmidi.a
+ else
+ # link the system's portmidi
+-pd_LDADD_standalone += -lportmidi
++pd_LDADD_standalone += @LIBPORTMIDI_LIBS@
+ endif
+
+ # need Carbon framework for PM on Mac
diff --git a/testing/pure-ftpd/APKBUILD b/testing/pure-ftpd/APKBUILD
deleted file mode 100644
index 8e9561e6b30..00000000000
--- a/testing/pure-ftpd/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Douglas Haber <me@douglashaber.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=pure-ftpd
-pkgver=1.0.49
-pkgrel=1
-pkgdesc="Pure FTPD FTP daemon"
-url="https://pureftpd.org/"
-arch="all"
-license="ISC"
-makedepends="openssl-dev"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-$pkgver.tar.gz
- pure-ftpd.initd
- pure-ftpd.confd
- minimal.patch
- https://github.com/jedisct1/pure-ftpd/commit/8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa.patch
- https://github.com/jedisct1/pure-ftpd/commit/36c6d268cb190282a2c17106acfd31863121b58e.patch
- "
-
-# secfixes:
-# 1.0.49-r1:
-# - CVE-2020-9274
-# - CVE-2020-9365
-
-build() {
- ./configure \
- --prefix=/usr \
- --without-unicode \
- --with-minimal \
- --with-throttling \
- --with-puredb \
- --with-tls
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm755 ../$pkgname.initd \
- "$pkgdir/etc/init.d/$pkgname"
-
- install -Dm644 ../$pkgname.confd \
- "$pkgdir/etc/conf.d/$pkgname"
-}
-
-sha512sums="7e7d4c81c5237624051bde53db6d9abcbae565a4e8a88627d81d369064b475f4b56305c105ed275264cce068844caad25b2014f41e2540058553222151fe3af8 pure-ftpd-1.0.49.tar.gz
-fde2e979410779cc0044e1190b88fe2f0956166b68e2d7fb94520bc0803a3ec85814f66e09a7fdae4ebead872c9a48d973cf7ef3d2818f2298b22ac629cfcf25 pure-ftpd.initd
-a5cc8e59178a5d0f7b5909d09009ef6ace1f8e6874bd733e21bc30f4899447e70b020a0369077132751ceb28afa971588efedcce3dea83e9b043b1545caf3393 pure-ftpd.confd
-8d05f6e61f5849d59843b6117d2f0dac25a543298f78e982296177ef464f1c7db12b9450a0b31553906600e03b38218f75c0e690cb370e91a562b38fb4f1adbe minimal.patch
-7930dddc7e58bd00fdeb4cd0da49491d59907334f47f23d12433f71a9a2103a8b5cc503c5d4d461b110cdea61f2f6ef974bf123d96394334f668aacdb747f830 8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa.patch
-ff4aefeffd92f9e01e7c57779cc9ed59c0972a40a02431fa4e63696071ebbf28e4a0f83b6b6c878d4b62fed7efa05ff90e9d604e8c7e6a9358bc8853105731f1 36c6d268cb190282a2c17106acfd31863121b58e.patch"
diff --git a/testing/pure-ftpd/minimal.patch b/testing/pure-ftpd/minimal.patch
deleted file mode 100644
index 89152034a72..00000000000
--- a/testing/pure-ftpd/minimal.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/src/ftpd.c b/src/ftpd.c
-index 60b95b6..6aee9bc 100644
---- a/src/ftpd.c
-+++ b/src/ftpd.c
-@@ -1080,8 +1080,6 @@ void dobanner(const int type)
-
- #endif
-
--#ifndef MINIMAL
--
- int modernformat(const char *file, char *target, size_t target_size,
- const char * const prefix)
- {
-@@ -1228,8 +1226,6 @@ void doallo(const off_t size)
- }
- }
-
--#endif
--
- void dositetime(void)
- {
- char tmp[64];
-
diff --git a/testing/pure-ftpd/pure-ftpd.confd b/testing/pure-ftpd/pure-ftpd.confd
deleted file mode 100644
index 29b15a5a892..00000000000
--- a/testing/pure-ftpd/pure-ftpd.confd
+++ /dev/null
@@ -1,90 +0,0 @@
-# Config file for /etc/init.d/pure-ftpd
-##Comment variables out to disable its features, or change the values in it... ##
-
-## This variable must be uncommented in order for the server to start ##
-#IS_CONFIGURED="yes"
-
-## FTP Server,Port (separated by comma) ##
-## If you prefer host names over IP addresses, it's your choice:
-## SERVER="-S ftp.rtchat.com,21"
-## IPv6 addresses are supported.
-## !!! WARNING !!!
-## Using an invalid IP will result in the server not starting,
-## but reporting a correct start!
-## SERVER="-S 192.168.0.1,21"
-## By default binds to all available IPs.
-SERVER="-S 21"
-
-## Number of simultaneous connections in total, and per IP ##
-MAX_CONN="-c 30"
-MAX_CONN_IP="-C 10"
-
-## Don't allow uploads if the partition is more full then this var ##
-DISK_FULL="-k 90%"
-
-## If your FTP server is behind a NAT box, uncomment this ##
-#USE_NAT="-N"
-
-## Authentication mechanisms (others are 'pam', ...) ##
-## Further infos can be found in the README file.
-AUTH="-l unix"
-
-## Change the maximum idle time (in minutes) ##
-## If this variable is not defined, it will default to 15 minutes.
-#TIMEOUT="-I <timeout>'"
-
-## Facility used for syslog logging ##
-## If this variable is not defined, it will default to the 'ftp' facility.
-## Logging can be disabled with '-f none'.
-#LOG="-f <facility>"
-
-## Charset conversion support *experimental* ##
-## Only works if USE "charconv" is enabled (only Pure-FTPd >=1.0.21).
-## Set the charset of the filesystem.
-# CHARCONV="--fscharset <charset>"
-
-## If you want to process each file uploaded through Pure-FTPd, enter the name
-## of the script that should process the files below.
-## man pure-uploadscript to learn more about how to write this script.
-# UPLOADSCRIPT="/path/to/uploadscript"
-
-## Misc. Others ##
-MISC_OTHER="-A -x -j -R -Z"
-
-#
-# Use these inside $MISC_OTHER
-# More can be found on "http://download.pureftpd.org/pub/pure-ftpd/doc/README"
-#
-# -A [ chroot() everyone, but root ]
-# -e [ Only allow anonymous users ]
-# -E [ Only allow authenticated users. Anonymous logins are prohibited. ]
-# -i [ Disallow upload for anonymous users, whatever directory perms are ]
-# -j [ If the home directory of a user doesn't exist, auto-create it ]
-# -M [ Allow anonymous users to create directories. ]
-# -R [ Disallow users (even non-anonymous ones) usage of the CHMOD command ]
-# -x [ In normal operation mode, authenticated users can read/write
-# files beginning with a dot ('.'). Anonymous users can't, for security reasons
-# (like changing banners or a forgotten .rhosts). When '-x' is used, authenticated
-# users can download dot-files, but not overwrite/create them, even if they own
-# them. ]
-# -X [ This flag is identical to the previous one (writing
-# dot-files is prohibited), but in addition, users can't even *read* files and
-# directories beginning with a dot (like "cd .ssh"). ]
-# -D [ List files beginning with a dot ('.') even when the client doesn't
-# append the '-a' option to the list command. A workaround for badly
-# configured FTP clients. ]
-# -G [ Disallow renaming. ]
-# -d [ Send various debugging messages to the syslog. ONLY for DEBUG ]
-# -F <fortune file> [ Display a fortune cookie on login. Check the README file ]
-# -H [ By default, fully-qualified host names are logged. The '-H' flag avoids host names resolution. ]
-
-
-# Some filesystems don't like accesses being memory mapped. This happens for
-# example with ftpwho on JFFS2 filesystems (bug #330563). If you happen to
-# have such a filesystem on /var set TMPFS_MOUNT to "true".
-TMPFS_MOUNT="false"
-
-# Special mount options (like nosuid or nodev) for the tmpfs mount can be added
-# here. Several options must be separated by comma: "nodev,nosuid"
-#TMPFS_OPTS=""
-
diff --git a/testing/pure-ftpd/pure-ftpd.initd b/testing/pure-ftpd/pure-ftpd.initd
deleted file mode 100644
index 9ef0ea2ece1..00000000000
--- a/testing/pure-ftpd/pure-ftpd.initd
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-ftp/pure-ftpd/files/pure-ftpd.rc11,v 1.4 2012/03/29 11:33:22 polynomial-c Exp $
-
-ftpd_pidfile="/var/run/pure-ftpd.pid"
-script_pidfile="/var/run/pure-uploadscript.pid"
-ftpd_rundir="/var/lib/run/pure-ftpd"
-daemon="/usr/sbin/pure-ftpd"
-script_daemon="/usr/sbin/pure-uploadscript"
-
-depend() {
- need net
-}
-
-checkconfig() {
- if [ -z "$IS_CONFIGURED" ] ; then
- eerror "You need to setup /etc/conf.d/pure-ftpd first!"
- return 1
- fi
-}
-
-start() {
- checkconfig || return 1
-
- UPSCRIPT=""
- if [ -n "$UPLOADSCRIPT" ] ; then
- UPSCRIPT="--uploadscript"
- fi
-
- FTPD_CONFIG="$SERVER $MAX_CONN $MAX_CONN_IP $DISK_FULL $USE_NAT $AUTH
- $LOG $TIMEOUT $CHARCONV $MISC_OTHER $UPSCRIPT"
-
- WAIT="--wait 100"
-
- if ${TMPFS_MOUNT:-false} && grep -q tmpfs /proc/filesystems ; then
- [ -n "${TMPFS_OPTS}" ] && MOUNT_OPTS="-o ${TMPFS_OPTS}"
- einfo "Mounting tmpfs on ${ftpd_rundir}"
- mount ${MOUNT_OPTS} -t tmpfs tmpfs ${ftpd_rundir} \
- || eerror "Unable to mount tmpfs"
- fi
-
- ebegin "Starting Pure-FTPd"
- start-stop-daemon --start --quiet --pidfile ${ftpd_pidfile} \
- --make-pidfile --background --exec /usr/sbin/pure-ftpd ${WAIT} \
- -- $(echo ${FTPD_CONFIG} | sed 's@\([[:space:]]\+\|^\)-B\([[:space:]]\+\|$\)@\1@g')
- result=$?
- if [ $result -ne 0 ] ; then
- eend 1 "Could not launch Pure-FTPd"
- else
- eend $result
- if [ -n "$UPLOADSCRIPT" ] ; then
- ebegin "Starting Pure-FTPd upload script"
- start-stop-daemon --start --quiet --make-pidfile \
- --pidfile ${script_pidfile} \
- --exec ${script_daemon} --background ${WAIT} \
- -- -r $UPLOADSCRIPT
- eend $?
- fi
- fi
-}
-
-stop() {
- if [ -n "$UPLOADSCRIPT" ] ; then
- ebegin "Stopping Pure-FTPd upload script"
- start-stop-daemon --stop --retry 20 --quiet \
- --pidfile ${script_pidfile}
- eend $?
- fi
- ebegin "Stopping Pure-FTPd"
- start-stop-daemon --stop --retry 20 --quiet --pidfile ${ftpd_pidfile}
- eend $?
-
- if ${TMPFS_MOUNT:-false} && mount | grep -q ${ftpd_rundir} ; then
- umount ${ftpd_rundir} >/dev/null 2>&1
- fi
-}
diff --git a/testing/purple-facebook/APKBUILD b/testing/purple-facebook/APKBUILD
new file mode 100644
index 00000000000..63cc1583b4f
--- /dev/null
+++ b/testing/purple-facebook/APKBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Pedro Filipe <xpecex@outlook.com>
+pkgname=purple-facebook
+pkgver=0.9.6
+pkgrel=0
+pkgdesc="Facebook protocol plugin for libpurple"
+arch="all"
+url="https://github.com/dequis/purple-facebook"
+license="GPL-2.0-only"
+makedepends="glib-dev json-glib-dev zlib-dev pidgin-dev"
+source="https://github.com/dequis/purple-facebook/releases/download/v$pkgver/purple-facebook-$pkgver.tar.gz"
+options="!check" # No test suite
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="bf2284169f6765986279421ad9946610de6f58a79d0b70e7dbd43445f59dc518aabdb8a9b41c9f1c8441c12edce79ecfaf7e98bdc56abdc59bb2c46951ee50ce purple-facebook-0.9.6.tar.gz"
diff --git a/testing/purple-hangouts/APKBUILD b/testing/purple-hangouts/APKBUILD
new file mode 100644
index 00000000000..0b1e837c479
--- /dev/null
+++ b/testing/purple-hangouts/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=purple-hangouts
+pkgver=0_git20200422
+# !!! should be rebuilt with every pidgin rebuild/upgrade !!!
+pkgrel=0
+pkgdesc="pidgin plugin for proprietary google protocol for the hangouts service"
+url="https://github.com/EionRobb/purple-hangouts"
+arch="all"
+license="GPL-3.0-or-later"
+_commit=5db1007d9ae740c59c363a8918d658289069e675
+makedepends="pidgin-dev glib-dev json-glib-dev protobuf-c-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/EionRobb/purple-hangouts/archive/$_commit.tar.gz"
+builddir="$srcdir/purple-hangouts-$_commit"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR=$pkgdir install
+}
+
+sha512sums="c3a116954915f5b9937efed8f89505fc1ac2f7e370e9d9fdccbeae81614388ea0cc571a488210d54ba1628adc79e5413e8a743b68102638f01d1f3523d95b71e purple-hangouts-0_git20200422.tar.gz"
diff --git a/testing/pw-volume/APKBUILD b/testing/pw-volume/APKBUILD
new file mode 100644
index 00000000000..864217211a6
--- /dev/null
+++ b/testing/pw-volume/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=pw-volume
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="Basic interface to PipeWire volume controls"
+url="https://github.com/smasher164/pw-volume"
+arch="all !s390x" # blocked by pipewire -> libcamera -> libcamera-ipa
+license="MIT"
+depends="cmd:pw-cli cmd:pw-dump"
+makedepends="cargo cargo-auditable"
+source="https://github.com/smasher164/pw-volume/archive/v$pkgver/pw-volume-$pkgver.tar.gz
+ update-lockfile.patch
+ "
+# !check: no tests provided
+# net: fetch dependencies
+options="!check net"
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL="z"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m755 target/release/pw-volume -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+05de82e615dee4e599a786d7b384534462042547b3a26b910b475e7d2c77fa4926325a0e21cd78610aa37e11d523aac996a351a2127b74f15ac0469144a1e337 pw-volume-0.5.0.tar.gz
+4cedcb45535611376e75439a279d9f17dff4e15d62864c630c00ea36df4b939d1f2e8b15200181f3c83500ef8197367777558f4e0c5c7d3d48888dfa812b73ce update-lockfile.patch
+"
diff --git a/testing/pw-volume/update-lockfile.patch b/testing/pw-volume/update-lockfile.patch
new file mode 100644
index 00000000000..ff43687bffb
--- /dev/null
+++ b/testing/pw-volume/update-lockfile.patch
@@ -0,0 +1,180 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index d9447ab..a57dfca 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,18 +4,18 @@ version = 3
+
+ [[package]]
+ name = "ansi_term"
+-version = "0.11.0"
++version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+ dependencies = [
+ "winapi",
+ ]
+
+ [[package]]
+ name = "anyhow"
+-version = "1.0.56"
++version = "1.0.69"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
++checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
+
+ [[package]]
+ name = "atty"
+@@ -42,9 +42,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "clap"
+-version = "2.33.3"
++version = "2.34.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+ dependencies = [
+ "ansi_term",
+ "atty",
+@@ -72,9 +72,9 @@ checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.107"
++version = "0.2.139"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
++checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+ [[package]]
+ name = "proc-macro-error"
+@@ -102,11 +102,11 @@ dependencies = [
+
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.32"
++version = "1.0.51"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
++checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
+ dependencies = [
+- "unicode-xid",
++ "unicode-ident",
+ ]
+
+ [[package]]
+@@ -122,33 +122,33 @@ dependencies = [
+
+ [[package]]
+ name = "quote"
+-version = "1.0.10"
++version = "1.0.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
++checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+ dependencies = [
+ "proc-macro2",
+ ]
+
+ [[package]]
+ name = "ryu"
+-version = "1.0.5"
++version = "1.0.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+ [[package]]
+ name = "serde"
+-version = "1.0.130"
++version = "1.0.152"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
++checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+ dependencies = [
+ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.130"
++version = "1.0.152"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
++checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -157,9 +157,9 @@ dependencies = [
+
+ [[package]]
+ name = "serde_json"
+-version = "1.0.92"
++version = "1.0.93"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7434af0dc1cbd59268aa98b4c22c131c0584d2232f6fb166efb993e2832e896a"
++checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
+ dependencies = [
+ "itoa",
+ "ryu",
+@@ -174,29 +174,29 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+ [[package]]
+ name = "syn"
+-version = "1.0.81"
++version = "1.0.107"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
++checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "unicode-xid",
++ "unicode-ident",
+ ]
+
+ [[package]]
+ name = "test-case"
+-version = "2.1.0"
++version = "2.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "196e8a70562e252cc51eaaaee3ecddc39803d9b7fd4a772b7c7dae7cdf42a859"
++checksum = "21d6cf5a7dffb3f9dceec8e6b8ca528d9bd71d36c9f074defb548ce161f598c0"
+ dependencies = [
+ "test-case-macros",
+ ]
+
+ [[package]]
+ name = "test-case-macros"
+-version = "2.1.0"
++version = "2.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8dd461f47ade621665c9f4e44b20449341769911c253275dc5cb03726cbb852c"
++checksum = "e45b7bf6e19353ddd832745c8fcf77a17a93171df7151187f26623f2b75b5b26"
+ dependencies = [
+ "cfg-if",
+ "proc-macro-error",
+@@ -215,16 +215,16 @@ dependencies = [
+ ]
+
+ [[package]]
+-name = "unicode-width"
+-version = "0.1.9"
++name = "unicode-ident"
++version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
++checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+ [[package]]
+-name = "unicode-xid"
+-version = "0.2.2"
++name = "unicode-width"
++version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
++checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+ [[package]]
+ name = "vec_map"
diff --git a/testing/pwauth/APKBUILD b/testing/pwauth/APKBUILD
index 638498045bf..55242a9a341 100644
--- a/testing/pwauth/APKBUILD
+++ b/testing/pwauth/APKBUILD
@@ -2,35 +2,28 @@
# Maintainer: Nathan Rennie-Waldock <nathan.renniewaldock@gmail.com>
pkgname=pwauth
pkgver=2.3.11
-pkgrel=0
+pkgrel=2
pkgdesc="Authenticator for mod_authnz_external and Apache"
-url="https://code.google.com/p/pwauth/"
+url="https://github.com/phokz/pwauth"
arch="all"
license="BSD-3-Clause"
-depends=""
-makedepends=""
-install=""
subpackages="$pkgname-doc"
-source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pwauth/$pkgname-$pkgver.tar.gz
+source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pwauth/pwauth-$pkgver.tar.gz
10-config.patch
- 20-fix-warnings.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+ 20-fix-warnings.patch
+ "
options="suid"
build() {
- cd "$builddir"
- make || return 1
-
+ make
}
package() {
- cd "$builddir"
- install -Dm4755 pwauth "$pkgdir/usr/sbin/pwauth" || return 1
+ install -Dm4755 pwauth "$pkgdir/usr/sbin/pwauth"
- local f
- for f in unixgroup INSTALL FORM_AUTH; do
+ local f; for f in unixgroup INSTALL FORM_AUTH; do
install -Dm644 "$f" \
- "$pkgdir/usr/share/doc/$pkgname/$f" || return 1
+ "$pkgdir/usr/share/doc/$pkgname/$f"
done
}
diff --git a/testing/pwru/APKBUILD b/testing/pwru/APKBUILD
new file mode 100644
index 00000000000..160e3086b7c
--- /dev/null
+++ b/testing/pwru/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=pwru
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="eBPF-based Linux kernel networking debugger"
+url="https://github.com/cilium/pwru"
+arch="x86_64 aarch64" # the only platforms supported upstream
+license="GPL-2.0-or-later"
+makedepends="go clang llvm libpcap-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cilium/pwru/archive/refs/tags/v$pkgver.tar.gz"
+
+export CGO_ENABLED=1
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS -L/usr/lib -lpcap"
+
+ TARGET_GOARCH=$(go env GOARCH) go generate
+ go build -v -ldflags "-X github.com/cilium/pwru/internal/pwru.Version=v$pkgver"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+17ea7f106498735804947feeac94458551a847a2b8b409421c68c9d7035b13124a0382812f7b6ff5e8f0567fb013d4b68b9924613c0a3c60577a8cacb05f3de1 pwru-1.0.5.tar.gz
+"
diff --git a/testing/pwsafe/APKBUILD b/testing/pwsafe/APKBUILD
deleted file mode 100644
index 62dcd8b3cc4..00000000000
--- a/testing/pwsafe/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-# Maintainer:
-pkgname=pwsafe
-pkgver=0.2.0
-pkgrel=10
-pkgdesc="Password database"
-url="http://nsd.dyndns.org/pwsafe/"
-#arch="all !aarch64"
-license="GPL-2.0"
-makedepends="ncurses-dev openssl-dev libxmu-dev readline-dev"
-subpackages="$pkgname-doc"
-source="http://nsd.dyndns.org/pwsafe/releases/pwsafe-$pkgver.tar.gz"
-options="suid"
-
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare || return 1
- update_config_guess || return 1
-}
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr --mandir=/usr/share/man && make && make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install && chmod u+s "$pkgdir"/usr/bin/pwsafe
-}
-
-sha512sums="e8d3684f523f83def6317ef5561a02d1493685cfbda18707644bf335b7f45b1a548aae17a735838d9f6df345ddb17934607162a6e99348df625b34a9ad5f4cf3 pwsafe-0.2.0.tar.gz"
diff --git a/testing/pxalarm/APKBUILD b/testing/pxalarm/APKBUILD
new file mode 100644
index 00000000000..5bcfae1c68d
--- /dev/null
+++ b/testing/pxalarm/APKBUILD
@@ -0,0 +1,19 @@
+# Contributor: Sam Nystrom <sam@samnystrom.dev>
+# Maintainer: Sam Nystrom <sam@samnystrom.dev>
+pkgname=pxalarm
+pkgver=2.0.0a
+pkgrel=0
+pkgdesc="POSIX sh simple alarm"
+url="https://github.com/iruzo/pxalarm"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/iruzo/pxalarm/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+package() {
+ install -Dm755 "$builddir"/pxalarm "$pkgdir"/usr/bin/pxalarm
+}
+
+sha512sums="
+bbdabb3a71371703b0d92281727997e2889f90437b2d7a4d59b4da263f6d7dca1e8e0f0ce0c2cf080f4a7558a34fd760e4b2d2c631ae053bc3ed6b6397ec330b pxalarm-2.0.0a.tar.gz
+"
diff --git a/testing/pxmenu/APKBUILD b/testing/pxmenu/APKBUILD
new file mode 100644
index 00000000000..1f6cbaeca5b
--- /dev/null
+++ b/testing/pxmenu/APKBUILD
@@ -0,0 +1,20 @@
+# Contributor: Sam Nystrom <sam@samnystrom.dev>
+# Maintainer: Sam Nystrom <sam@samnystrom.dev>
+pkgname=pxmenu
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="POSIX sh simple menu"
+url="https://github.com/iruzo/pxmenu"
+arch="noarch"
+license="MIT"
+depends="ncurses"
+source="$pkgname-$pkgver.tar.gz::https://github.com/iruzo/pxmenu/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+package() {
+ install -Dm755 ./pxmenu "$pkgdir"/usr/bin/pxmenu
+}
+
+sha512sums="
+8126cbf96204a010e8bf8da241a52f11fe902856df4c3c9969ad1a59b392d922cc563166fe7799980a9abe75c65c368e591ee1ae4ed0dc4ff380b581ded1e61a pxmenu-1.0.0.tar.gz
+"
diff --git a/testing/py-spy/APKBUILD b/testing/py-spy/APKBUILD
new file mode 100644
index 00000000000..d0ace8e67b4
--- /dev/null
+++ b/testing/py-spy/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: messense <messense@icloud.com>
+# Maintainer: messense <messense@icloud.com>
+pkgname=py-spy
+pkgver=0.3.14
+pkgrel=3
+pkgdesc="Sampling profiler for Python programs"
+url="https://github.com/benfred/py-spy"
+arch="aarch64 x86_64 ppc64le" # limited by rust
+license="MIT"
+makedepends="cargo zlib-dev libunwind-dev xz-dev cargo-auditable"
+checkdepends="python3 bash"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/benfred/py-spy/archive/v$pkgver.tar.gz
+ $pkgname-fix-check.patch::https://github.com/benfred/py-spy/commit/e6053b5f6f7440451ed0c7607ec1431fa17d972a.diff
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+
+ ./target/release/py-spy completions bash > $pkgname.bash
+ ./target/release/py-spy completions fish > $pkgname.fish
+ ./target/release/py-spy completions zsh > $pkgname.zsh
+}
+
+check() {
+ # Some tests need additional privileges
+ cargo test --frozen -- \
+ --skip test_busy_loop \
+ --skip test_delayed_subprocess \
+ --skip test_local_vars \
+ --skip test_long_sleep \
+ --skip test_negative_linenumber_increment \
+ --skip test_recursive \
+ --skip test_subprocesses \
+ --skip test_subprocesses_zombiechild \
+ --skip test_thread_names \
+ --skip test_thread_reuse \
+ --skip test_unicode
+}
+
+package() {
+ install -Dm0755 target/release/$pkgname -t "$pkgdir"/usr/bin
+ install -Dm0644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+f079b002248a033eac3b93723fd267e6cbdb415ac3172ace0d14eb9cd87a1e4adf471eeec641f9644abe8a4fab43b48db7440b4b1242ea18e02bcc574104d303 py-spy-0.3.14.tar.gz
+2b927080cd953facc47994b665bfa3d1c47552b549673b11b047db21bc773a53d10faffd26482c3f9825fae8f0f87d387cb9e602898288cf88b7d5a0a8589eb3 py-spy-fix-check.patch
+"
diff --git a/testing/py3-actdiag/APKBUILD b/testing/py3-actdiag/APKBUILD
index f4b7e3466e3..32a72715060 100644
--- a/testing/py3-actdiag/APKBUILD
+++ b/testing/py3-actdiag/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-actdiag
_pkgname=actdiag
-pkgver=2.0.0
-pkgrel=0
+pkgver=3.0.0
+pkgrel=3
pkgdesc="Generate activity-diagram image file from spec-text file"
-url="https://pypi.python.org/pypi/actdiag"
+url="https://pypi.org/project/actdiag"
arch="noarch"
license="Apache-2.0"
-depends="py3-funcparserlib py3-blockdiag py3-pillow"
+depends="py3-funcparserlib py3-blockdiag python3"
makedepends="py3-setuptools"
+checkdepends="py3-docutils py3-nose py3-blockdiag-tests"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-actdiag" # for backwards compatibility
-provides="py-actdiag=$pkgver-r$pkgrel" # for backwards compatibility
-
build() {
python3 setup.py build
}
+check() {
+ nosetests
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/actdiag/tests/
}
-sha512sums="e955b9b919e137f10ff128d5d8817b2da660b121937cab3386a866a0bff08218b6e777e302a9130616228af6c357c463ceeb12cb95b8734928001d8ad6a90250 actdiag-2.0.0.tar.gz"
+sha512sums="
+240a687fd0c9f8ee10e66fed9ce8ca3359f3336c1623a05b1394f1444e518c1c325922eb5cd2d6d1a867876ff820b2b1b6f5eb518a6af5d688bd8116b97c9dca actdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-adapt-parser/APKBUILD b/testing/py3-adapt-parser/APKBUILD
deleted file mode 100644
index 4bab5459db3..00000000000
--- a/testing/py3-adapt-parser/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-adapt-parser
-pkgver=0.3.5
-pkgrel=0
-pkgdesc="A text-to-intent parsing framework"
-url="https://github.com/MycroftAI/adapt"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-pyee"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/a/adapt-parser/adapt-parser-$pkgver.tar.gz
- relax-dep-requirements.patch
- "
-options="!check" # No tests
-builddir="$srcdir/adapt-parser-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="44342b67a6e1960b67f0521a63ee4ba8c4723877e18e929acf9636557c572782f512f78f84089db74694359a3216d6c705fb12192cbeaf11d1f6735c95bd57ea adapt-parser-0.3.5.tar.gz
-6055bd60ad91d06645f45f7a4a4cabc74b514fc5f77ecb90e3d4b3fe265a4ea33cddd4cf3d6e0429ffb79d0f947ef42134d7bd954af146d402e47a084abea609 relax-dep-requirements.patch"
diff --git a/testing/py3-adapt-parser/relax-dep-requirements.patch b/testing/py3-adapt-parser/relax-dep-requirements.patch
deleted file mode 100644
index 0f58c393a32..00000000000
--- a/testing/py3-adapt-parser/relax-dep-requirements.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 46ad9ee..bbad058 100644
---- a/setup.py
-+++ b/setup.py
-@@ -29,7 +29,7 @@ setup(
- packages = ["adapt", "adapt.tools", "adapt.tools.text"],
-
- install_requires = [
-- "pyee==5.0.0",
-+ "pyee>=5.0.0",
- "six>=1.10.0"
- ]
- )
diff --git a/testing/py3-aesedb/APKBUILD b/testing/py3-aesedb/APKBUILD
new file mode 100644
index 00000000000..6e18a91d638
--- /dev/null
+++ b/testing/py3-aesedb/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-aesedb
+_pyname=aesedb
+pkgver=0.1.6
+pkgrel=2
+pkgdesc="NTDS parser toolkit"
+url="https://github.com/skelsec/aesedb"
+arch="noarch"
+license="Apache-1.1"
+depends="
+ py3-aiowinreg
+ py3-colorama
+ py3-tqdm
+ py3-unicrypto
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-asyncio
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/aesedb/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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
+ rm -rf "$pkgdir"/usr/lib/python3.*/site-packages/tests/ # remove tests
+}
+
+sha512sums="
+73513510909da98ab27f21d4a4b630294212132ba6d583dba99578764c20c887cf56b6456709b1c161c2b46958bd4318abccddade80f3b3d98478114d3a98520 py3-aesedb-0.1.6.tar.gz
+"
diff --git a/testing/py3-agithub/APKBUILD b/testing/py3-agithub/APKBUILD
new file mode 100644
index 00000000000..0cbad2cfac2
--- /dev/null
+++ b/testing/py3-agithub/APKBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-agithub
+pkgver=2.2.2
+pkgrel=5
+pkgdesc="The Agnostic GitHub API"
+url="https://github.com/mozilla/agithub"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://github.com/mozilla/agithub/archive/v$pkgver/mautrix-python-v$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/agithub-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="8b9761bd31f30965bf9904a017dac3f97a7539987b6aa76a287dab16a698a98972b44e4781f67e312bb1ca4e77d4d15d575e567f08ac791789bd7114e8f430a0 mautrix-python-v2.2.2.tar.gz"
diff --git a/testing/py3-aiodocker/APKBUILD b/testing/py3-aiodocker/APKBUILD
new file mode 100644
index 00000000000..99720571e55
--- /dev/null
+++ b/testing/py3-aiodocker/APKBUILD
@@ -0,0 +1,40 @@
+# Automatically generated by apkbuild-pypi, template 4
+# Contributor: Niklas Meyer <derlinkman@gmail.com>
+# Maintainer: Niklas Meyer <derlinkman@gmail.com>
+pkgname=py3-aiodocker
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=aiodocker
+pkgver=0.21.0
+pkgrel=1
+pkgdesc="Docker API client for asyncio"
+url="https://pypi.org/project/aiodocker/"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-aiohttp py3-typing-extensions"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/a/aiodocker/aiodocker-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" #check needs docker
+
+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="
+55fc5015edea5ffe17798aa5a3e1b85b68f7ee011ac7fd94adbecf659a55f537b75f5c5d768e70d364c1337e4bcbe5cabed4dd5cdb3f35ff140d641411038562 aiodocker-0.21.0.tar.gz
+"
diff --git a/testing/py3-aiohttp-debugtoolbar/APKBUILD b/testing/py3-aiohttp-debugtoolbar/APKBUILD
index c45abedc730..503ee642069 100644
--- a/testing/py3-aiohttp-debugtoolbar/APKBUILD
+++ b/testing/py3-aiohttp-debugtoolbar/APKBUILD
@@ -2,24 +2,36 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-aiohttp-debugtoolbar
_pkgname=aiohttp-debugtoolbar
-pkgver=0.5.0
+pkgver=0.6.1
pkgrel=1
-pkgdesc="A ibrary for debugtoolbar support for aiohttp"
-options="!check" # Requires unpackaged pytest-aiohttp
+pkgdesc="A library for debugtoolbar support for aiohttp"
url="https://github.com/aio-libs/aiohttp-debugtoolbar"
arch="noarch"
license="Apache-2.0"
-depends="py3-aiohttp py3-aiohttp-jinja2"
+depends="py3-aiohttp py3-aiohttp-jinja2 python3"
makedepends="py3-setuptools"
+checkdepends="
+ py3-pytest
+ py3-pytest-aiohttp
+ py3-pytest-asyncio
+ "
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/aio-libs/aiohttp-debugtoolbar/archive/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # deprecation warnings
build() {
python3 setup.py build
}
+check() {
+ PYTHONPATH=build/lib pytest
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="31af4d947c2392c0a61718f545e642ef9d10dcf0ae433244dc9df77f823dbf26216ab0b7fd73dd44696e9ab0a68a0d63c6b5d83b870d90375b06adf5963e69b5 py3-aiohttp-debugtoolbar-0.5.0.tar.gz"
+sha512sums="
+0c46fbe35f8d7d49130ca6f7e2378fc486a821fd08b99c71c37dbc70d83b0c891cedaa7a6022726a74e02be398b669f8b50896d0a868b0915a4384648d03e8eb py3-aiohttp-debugtoolbar-0.6.1.tar.gz
+"
diff --git a/testing/py3-aiohttp-jinja2/APKBUILD b/testing/py3-aiohttp-jinja2/APKBUILD
index 22e7bea2e46..00d22a6c7e8 100644
--- a/testing/py3-aiohttp-jinja2/APKBUILD
+++ b/testing/py3-aiohttp-jinja2/APKBUILD
@@ -2,24 +2,30 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-aiohttp-jinja2
_pkgname=aiohttp_jinja2
-pkgver=1.2.0
-pkgrel=1
+pkgver=1.6
+pkgrel=2
pkgdesc="Jinja2 template renderer for aiohttp"
options="!check" # Requires unpackaged pytest-aiohttp
url="https://github.com/aio-libs/aiohttp-jinja2"
arch="noarch"
license="Apache-2.0"
depends="py3-aiohttp py3-jinja2"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="$_pkgname-$pkgver.tar.gz::https://github.com/aio-libs/aiohttp-jinja2/archive/v$pkgver.tar.gz"
builddir="$srcdir"/aiohttp-jinja2-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="f2f2ef3f8ec0424fd978877f27e243dcd57b741456a321c3917e824d4b6d7e6102fb4c4960cb4d037e2eb5b71874f505e3e54ea30db2c2750556309a344cf5af aiohttp_jinja2-1.2.0.tar.gz"
+sha512sums="
+a434443580b050ac849f80ec3fc1815bce7b682febadb827e473e6b8b88d79017335cf2cd93bfc37d8ab79552afedaf5a67cb961341407d768bce0c15fa20b3c aiohttp_jinja2-1.6.tar.gz
+"
diff --git a/testing/py3-aiohttp-remotes/APKBUILD b/testing/py3-aiohttp-remotes/APKBUILD
new file mode 100644
index 00000000000..6767f45e17d
--- /dev/null
+++ b/testing/py3-aiohttp-remotes/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
+pkgname=py3-aiohttp-remotes
+_pkgname=aiohttp-remotes
+pkgver=1.2.0
+pkgrel=3
+pkgdesc="A set of useful tools for aiohttp.web server"
+url="https://github.com/aio-libs/aiohttp-remotes"
+arch="noarch"
+license="MIT"
+checkdepends="
+ py3-pytest
+ py3-pytest-aiohttp
+ py3-pytest-asyncio
+ py3-pytest-cov
+ py3-trustme
+ "
+makedepends="
+ py3-flit
+ py3-installer
+ py3-setuptools
+ "
+depends="
+ py3-aiohttp
+ py3-yarl
+ python3
+ "
+subpackages="$pkgname-pyc"
+source="
+ https://github.com/aio-libs/aiohttp-remotes/archive/v$pkgver/$_pkgname-$pkgver.tar.gz
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ flit build --format wheel
+}
+
+check() {
+ # do test installation
+ python3 -m installer -d "$builddir"/test_install dist/aiohttp_remotes-$pkgver-py3-none-any.whl
+ PYTHONPATH="$(echo "$builddir"/test_install/usr/lib/python3*/site-packages)"
+ export PYTHONPATH
+
+ # run tests (skip async tests for now)
+ pytest-3 tests/test_utils.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" dist/aiohttp_remotes-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+b625b136a071c67a7a8e28ce63f56cc84712cce9193d2573a6dd58ef89ae30b0d817217ce9e5eb6531285449108c3b282c0dbf6c4f1a049ee027f0fb59dbc1ec aiohttp-remotes-1.2.0.tar.gz
+"
diff --git a/testing/py3-aiohttp-session/APKBUILD b/testing/py3-aiohttp-session/APKBUILD
index 65ec3de74b4..1a111df28eb 100644
--- a/testing/py3-aiohttp-session/APKBUILD
+++ b/testing/py3-aiohttp-session/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-aiohttp-session
_pkgname=aiohttp_session
-pkgver=2.9.0
-pkgrel=0
+pkgver=2.12.0
+pkgrel=3
pkgdesc="Sessions support for aiohttp"
url="https://aiohttp-session.readthedocs.io/"
arch="noarch"
@@ -12,6 +12,7 @@ license="Apache-2.0"
options="!check"
depends="py3-aiohttp"
makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
source="aiohttp-session-$pkgver.tar.gz::https://github.com/aio-libs/aiohttp-session/archive/v$pkgver.tar.gz"
builddir="$srcdir"/aiohttp-session-$pkgver
@@ -24,7 +25,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="27c1c1553bfb65e8d277ada226917835ea92dd0593c28988a8800a275fd7ec7c304f10ebb18320fe582e92440ac6b2621ca5eb2f3a3cd5ef1b068fe41ae178fa aiohttp-session-2.9.0.tar.gz"
+sha512sums="
+42bd608abda7aa09351c30b683310940a01d4f4c0bec20db162720680a608715820c27961cb0814f1e5078965695befaa06136440b2a009eae951a1ab3f339e0 aiohttp-session-2.12.0.tar.gz
+"
diff --git a/testing/py3-aioopenssl/APKBUILD b/testing/py3-aioopenssl/APKBUILD
new file mode 100644
index 00000000000..3ad7a73dac4
--- /dev/null
+++ b/testing/py3-aioopenssl/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Sam Whited <sam@samwhited.com>
+# Maintainer: Sam Whited <sam@samwhited.com>
+pkgname=py3-aioopenssl
+_pkgname=aioopenssl
+pkgver=0.6.0
+pkgrel=3
+pkgdesc="An asyncio Transport which uses PyOpenSSL instead of the built-in ssl module."
+url="https://pypi.org/project/aioopenssl/"
+arch="all"
+license="Apache-2.0"
+depends="python3 py3-openssl"
+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"
+options="!check" # tests not included in source package.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+ install -Dm644 README.rst "$pkgdir"/usr/share/licenses/$pkgname/README.rst
+}
+
+sha512sums="
+fee9fa34dd79a40b06bdbfa87dd7feba100c7a9e906f06e46fde63faa1e73fbe0f3085c5b05bd308cf73f73155eb1db07f3250f159c9fb0b9142a26a1ce747b3 aioopenssl-0.6.0.tar.gz
+"
diff --git a/testing/py3-aiosasl/APKBUILD b/testing/py3-aiosasl/APKBUILD
new file mode 100644
index 00000000000..d7ccb6499df
--- /dev/null
+++ b/testing/py3-aiosasl/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Sam Whited <sam@samwhited.com>
+# Maintainer: Sam Whited <sam@samwhited.com>
+pkgname=py3-aiosasl
+_pkgname=aiosasl
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="A generic asyncio-based SASL authentication library."
+url="https://pypi.org/project/aiosasl/"
+arch="all"
+license="LGPL-3.0-only"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # tests not included in source package.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 COPYING.LESSER COPYING.gpl3 LICENSES README.rst \
+ -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+bde4bf6ac82a385be60593305ac83927aa44312393850c8f6489e885392d033e90ab6cdbd3ccadec1ca45aa3bd9907f7f586293d54e8180c71706e3b53c36ed8 aiosasl-0.5.0.tar.gz
+"
diff --git a/testing/py3-aiosmb/APKBUILD b/testing/py3-aiosmb/APKBUILD
new file mode 100644
index 00000000000..57ab7833292
--- /dev/null
+++ b/testing/py3-aiosmb/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-aiosmb
+_pyname=aiosmb
+pkgver=0.4.10
+pkgrel=1
+pkgdesc="Asynchronous SMB protocol implementation"
+url="https://github.com/skelsec/aiosmb"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asn1crypto
+ py3-asyauth
+ py3-asysocks
+ py3-colorama
+ py3-minikerberos
+ py3-prompt_toolkit
+ py3-six
+ py3-tqdm
+ py3-unicrypto
+ py3-wcwidth
+ py3-winacl
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/aiosmb/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ rm -rf "$pkgdir"/usr/lib/python3.*/site-packages/tests/ # remove tests
+}
+
+sha512sums="
+ca0db6eab06ee452841ac4767ece5ab15607912ceb221fde6d77d8d01bcd8db84e62ed4331f943cb8b718a5c33a2ecdd7fc399d92fadc9c5b7bc5e938f5d7d6a py3-aiosmb-0.4.10.tar.gz
+"
diff --git a/testing/py3-aiowinreg/APKBUILD b/testing/py3-aiowinreg/APKBUILD
new file mode 100644
index 00000000000..2cabdce6829
--- /dev/null
+++ b/testing/py3-aiowinreg/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-aiowinreg
+_pyname=aiowinreg
+pkgver=0.0.10
+pkgrel=1
+pkgdesc="Windows registry file reader"
+url="https://github.com/skelsec/aiowinreg"
+arch="noarch"
+license="MIT"
+depends="
+ py3-prompt_toolkit
+ py3-winacl
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-asyncio
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/aiowinreg/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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
+ rm -rf "$pkgdir"/usr/lib/python3.*/site-packages/tests/ # remove tests
+}
+
+sha512sums="
+7842812dbe7455b8c560e8062bd4371cf89e9600f037caadf7a65c049be38f4263c5bf5923f57c49cdb19ea34f394d203ee9db029ac6d6b6d114a45ba7c93ea2 py3-aiowinreg-0.0.10.tar.gz
+"
diff --git a/testing/py3-aioxmpp/APKBUILD b/testing/py3-aioxmpp/APKBUILD
new file mode 100644
index 00000000000..cdde72431aa
--- /dev/null
+++ b/testing/py3-aioxmpp/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Sam Whited <sam@samwhited.com>
+# Maintainer: Sam Whited <sam@samwhited.com>
+pkgname=py3-aioxmpp
+_pkgname=aioxmpp
+pkgver=0.13.3
+pkgrel=2
+pkgdesc="An XMPP library in pure Python and using asyncio."
+url="https://pypi.org/project/aioxmpp/"
+arch="noarch"
+license="LGPL-3.0-only"
+depends="
+py3-aioopenssl
+py3-aiosasl
+py3-asn1
+py3-asn1-modules
+py3-babel
+py3-dnspython
+py3-lxml
+py3-multidict
+py3-openssl
+py3-sortedcollections
+py3-sortedcontainers
+py3-tzlocal
+python3
+"
+makedepends="py3-setuptools"
+source="https://files.pythonhosted.org/packages/source/a/aioxmpp/aioxmpp-$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-pyc"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # tests not included in source package.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 COPYING.LESSER COPYING.gpl3 LICENSES README.rst \
+ -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+1f3b9b086c083b6c613f71e56e85e35d844c5917c24de952233e65521dc4863da770e6b5b0cf2af4132971e78fa9c847c55b657f7f7d9c7eb15f0dad1285d85f aioxmpp-0.13.3.tar.gz
+"
diff --git a/testing/py3-ajsonrpc/APKBUILD b/testing/py3-ajsonrpc/APKBUILD
new file mode 100644
index 00000000000..05caf58f471
--- /dev/null
+++ b/testing/py3-ajsonrpc/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Marten Ringwelski <git+alpine@maringuu.de>
+# Maintainer: Marten Ringwelski <git+alpine@maringuu.de>
+pkgname=py3-ajsonrpc
+pkgver=1.2.0
+pkgrel=3
+pkgdesc="Lightweight JSON-RPC 2.0 protocol implementation and asynchronous server powered by asyncio"
+url="https://github.com/pavlov99/ajsonrpc"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pavlov99/ajsonrpc/archive/refs/tags/$pkgver.tar.gz
+ no-test-install.patch
+ "
+builddir="$srcdir/ajsonrpc-$pkgver"
+
+build() {
+ # See ajsonrpcs github actions
+ echo "__version__ = \"$pkgver\"" >> ajsonrpc/__init__.py
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+af307f13c4e3a2b3004dc03629a3d0216c9c72014d290e66ad73b60925548fb3c1cf18d6b7ef6b270fca98b3b8efe9cc2741796f9b6f360267ab2df0a7eee9d3 py3-ajsonrpc-1.2.0.tar.gz
+414a0b53b5c6eb1a5b0927d818c9223d76c75bc5f00f30a88b26166b50f47784c8e30e0605bf48a277ff25b914e25d4fa15bfe1083610778b2c2db39eb0be0eb no-test-install.patch
+"
diff --git a/testing/py3-ajsonrpc/no-test-install.patch b/testing/py3-ajsonrpc/no-test-install.patch
new file mode 100644
index 00000000000..586a47bf666
--- /dev/null
+++ b/testing/py3-ajsonrpc/no-test-install.patch
@@ -0,0 +1,8 @@
+--- a/MANIFEST.in
++++ b/MANIFEST.in
+@@ -3,3 +3,5 @@
+ graft ajsonrpc
+
+ global-exclude *.py[co]
++
++prune ajsonrpc/tests/
diff --git a/testing/py3-alembic/APKBUILD b/testing/py3-alembic/APKBUILD
deleted file mode 100644
index acc60435863..00000000000
--- a/testing/py3-alembic/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor:
-# Maintainer: Philipp Glaum <p@pglaum.de>
-pkgname=py3-alembic
-_pkgname=alembic
-pkgver=1.4.2
-pkgrel=0
-pkgdesc="A database migration tool for SQLAlchemy."
-url="https://pypi.org/project/alembic/"
-arch="noarch"
-license="MIT"
-depends="python3 py3-sqlalchemy py3-mako py3-python-editor py3-dateutil"
-checkdepends="py3-tox"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="82bdfe442c19033aa2b802ec49edd13ed265c00a2b5a048490a83ffa8e53587c56a90b64d554e746a9189923419c528482cb7a7c950c210e0de47b32fa7c270e alembic-1.4.2.tar.gz"
diff --git a/testing/py3-allfiles/APKBUILD b/testing/py3-allfiles/APKBUILD
index 47c01e99e68..f5956b87a01 100644
--- a/testing/py3-allfiles/APKBUILD
+++ b/testing/py3-allfiles/APKBUILD
@@ -3,26 +3,28 @@
pkgname=py3-allfiles
_pkgname=allfiles
pkgver=1.0
-pkgrel=1
+pkgrel=8
pkgdesc="Iterator for matching files in directory trees"
-url="https://pypi.python.org/pypi/allfiles"
+url="https://pypi.org/project/allfiles"
arch="noarch"
license="MIT"
-replaces="py-allfiles" # for backwards compatibility
+replaces="py-allfiles" # for backwards compatibility
provides="py-allfiles=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.zip"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
- cd "$builddir"
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="698f1131950eba7cc12af727e2c27c5018c1d81ab1cca7f94f308061220003b5b412ef4720ba1bbebc50e7fee4f5549c43868d2cfe81e99df1f78e6bf7c38d0f allfiles-1.0.zip"
diff --git a/testing/py3-altgraph/APKBUILD b/testing/py3-altgraph/APKBUILD
new file mode 100644
index 00000000000..1723f78a36f
--- /dev/null
+++ b/testing/py3-altgraph/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-altgraph
+pkgver=0.17.4
+pkgrel=1
+pkgdesc="Python graph (network) package"
+url="https://github.com/ronaldoussoren/altgraph"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/a/altgraph/altgraph-$pkgver.tar.gz"
+builddir="$srcdir/altgraph-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+c931e8c185269a036c7f0665ac92ad79ecbd1e93682880618502a52cec6bdd745cc664afd4b8b5f2b656119dcfcc6b5c11c3e82d903d7f5f6d362974e0a93259 altgraph-0.17.4.tar.gz
+"
diff --git a/testing/py3-amqp/APKBUILD b/testing/py3-amqp/APKBUILD
deleted file mode 100644
index a3a66b2e2a3..00000000000
--- a/testing/py3-amqp/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-amqp
-_pyname=amqp
-pkgver=2.5.2
-pkgrel=1
-pkgdesc="an AMQP implementation"
-url="https://pypi.python.org/pypi/amqp/"
-arch="noarch"
-license="BSD-3-Clause"
-makedepends="py3-setuptools"
-checkdepends="py3-vine py3-case py3-nose py2py3-mock"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir=$srcdir/$_pyname-$pkgver
-# requires a running rabbitmq sever, which is more complicated than it sounds
-options="!check"
-
-replaces="py-amqp" # Backwards compatibility
-provides="py-amqp=$pkgver-r$pkgrel" # Backwards compatibility
-
-prepare() {
- sed -i requirements/test.txt -e 's/pytest-sugar.*//g'
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c540ce39c06bb947e55b4afc56567d5fc5a82b65a2f7e2cc1f769f96da74f788d14e1e9c02852a259a4980c36a4524f07166686c0357f96219fd9f8612a6159a amqp-2.5.2.tar.gz"
diff --git a/testing/py3-ansi2html/APKBUILD b/testing/py3-ansi2html/APKBUILD
index 549d4cbccc9..81ce7eb5359 100644
--- a/testing/py3-ansi2html/APKBUILD
+++ b/testing/py3-ansi2html/APKBUILD
@@ -2,26 +2,46 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-ansi2html
_pkgname=ansi2html
-pkgver=1.5.2
-pkgrel=4
+pkgver=1.9.1
+pkgrel=1
pkgdesc="Convert text with ANSI color codes to HTML"
-url="https://github.com/ralphbean/ansi2html"
+url="https://github.com/pycontribs/ansi2html"
arch="noarch"
license="LGPL-3.0-or-later"
-depends="python3 py3-six py3-setuptools"
-makedepends="python3-dev"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-installer
+ 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
replaces="py-ansi2html" # for backwards compatibility
provides="py-ansi2html=$pkgver-r$pkgrel" # for backwards compatibility
+export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+
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/ansi2html-$pkgver-py3-none-any.whl
+ PATH="$PATH:$PWD/.testenv/bin" .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer --destdir "$pkgdir" \
+ .dist/ansi2html-$pkgver-py3-none-any.whl
}
-sha512sums="163d5784d04e6eea0847676b967051382fa74a354c19462d1b73980fd1b0a7eb45ce1f1bd88cca803356e7767ccab1bbce6de4152c98aec98534f4ed7d65a83f ansi2html-1.5.2.tar.gz"
+sha512sums="
+1ffeffdd4f861b809c424b5b9e7d07212aaf1b5ef483a2820f128f815002628c823b5701652b0770ed182f0585052f040b55fca5db31e4690be86c49553105b3 ansi2html-1.9.1.tar.gz
+"
diff --git a/testing/py3-anyascii/APKBUILD b/testing/py3-anyascii/APKBUILD
new file mode 100644
index 00000000000..965fc2d08bd
--- /dev/null
+++ b/testing/py3-anyascii/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-anyascii
+_pyname=anyascii
+pkgver=0.3.2
+pkgrel=1
+pkgdesc="Unicode to ASCII transliteration"
+url="https://anyascii.com"
+arch="noarch"
+license="ISC"
+makedepends="py3-gpep517 py3-flit-core"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/anyascii/anyascii/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver/impl/python"
+
+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="
+2d1231822a051943cc2c958f94c62d2bebe4314d73a598d92cc1c20e8cacd548f7eb2283633ca44359c44d2d2a0d62fad11e2adf1a066f2e100e83294b2e9617 anyascii-0.3.2.tar.gz
+"
diff --git a/testing/py3-anyjson/APKBUILD b/testing/py3-anyjson/APKBUILD
deleted file mode 100644
index a40f55471bc..00000000000
--- a/testing/py3-anyjson/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-anyjson
-_pkgname=anyjson
-pkgver=0.3.3
-pkgrel=5
-pkgdesc="Wraps the best available JSON implementation available in a common interface"
-url="https://bitbucket.org/runeh/anyjson/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-future py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
- python3.patch"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-anyjson" # Backwards compatibility
-provides="py-anyjson=$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="9e70df3cb8bfe2348fdb0eb03cf3c33ca5a1171aca6467787fc28c161354b5ebe89b2f73badfa00708774d6825799860493ddcac7f5da8cc9c251b92b5a343bc anyjson-0.3.3.tar.gz
-d8e70ed13971e78a6f225df7fec74813a3c565446c1c538ac35f91a1e752a4381d895c87994d848c3661c736811b05b70084e3b8c5e3d6531e8424979b48cfb6 python3.patch"
diff --git a/testing/py3-anyjson/python3.patch b/testing/py3-anyjson/python3.patch
deleted file mode 100644
index ce84c05eed3..00000000000
--- a/testing/py3-anyjson/python3.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -ur a/anyjson/__init__.py b/anyjson/__init__.py
---- a/anyjson/__init__.py 2018-11-03 12:48:31.808085115 +0100
-+++ b/anyjson/__init__.py 2018-11-03 12:48:39.784931829 +0100
-@@ -1,7 +1,10 @@
- """Wraps the best available JSON implementation available in a common
- interface"""
-
-+from __future__ import print_function
- import sys
-+from future.utils import raise_with_traceback
-+from past.builtins import basestring
-
- VERSION = (0, 3, 3)
- __version__ = ".".join(map(str, VERSION[0:3])) + "".join(VERSION[3:])
-@@ -85,8 +88,8 @@
- TypeError if the object could not be serialized."""
- try:
- return self._encode(data)
-- except self._encode_error, exc:
-- raise TypeError, TypeError(*exc.args), sys.exc_info()[2]
-+ except self._encode_error as exc:
-+ raise_with_traceback(TypeError(*exc.args))
- serialize = dumps
-
- def loads(self, s):
-@@ -97,8 +100,8 @@
- if self._filedecode and not isinstance(s, basestring):
- return self._filedecode(StringIO(s))
- return self._decode(s)
-- except self._decode_error, exc:
-- raise ValueError, ValueError(*exc.args), sys.exc_info()[2]
-+ except self._decode_error as exc:
-+ raise_with_traceback(ValueError(*exc.args))
- deserialize = loads
-
-
-@@ -117,7 +120,7 @@
- # We do NOT try to load a compatible module because that may throw an
- # exception, which renders the package uninstallable with easy_install
- # (It trys to execfile the script when installing, to make sure it works)
-- print "Running anyjson as a stand alone script is not supported"
-+ print("Running anyjson as a stand alone script is not supported")
- sys.exit(1)
- else:
- for modspec in _modules:
-diff -ur a/setup.py b/setup.py
---- a/setup.py 2018-11-03 12:48:31.808085115 +0100
-+++ b/setup.py 2018-11-03 12:48:47.935115786 +0100
-@@ -87,6 +87,9 @@
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.1',
-+ 'Programming Language :: Python :: 3.4',
-+ 'Programming Language :: Python :: 3.5',
-+ 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: Implementation :: CPython',
- 'Programming Language :: Python :: Implementation :: PyPy',
- 'Programming Language :: Python :: Implementation :: Jython',
diff --git a/testing/py3-apicula/APKBUILD b/testing/py3-apicula/APKBUILD
new file mode 100644
index 00000000000..c4281901ee2
--- /dev/null
+++ b/testing/py3-apicula/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=py3-apicula
+_pkgname=Apycula
+pkgver=0.11.1
+pkgrel=1
+pkgdesc="Project Apicula: bitstream documentation for Gowin FPGAs"
+url="https://github.com/YosysHQ/apicula"
+arch="noarch"
+license="MIT"
+depends="
+ py3-crcmod
+ py3-numpy
+ py3-openpyxl
+ py3-pandas
+ py3-pillow
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+# Note: The GitHub repo contains only the source of the tools used to extract
+# the bitstream info from the binary only Gowin tools via fuzzing. The
+# source package form pypi also contains the extracted databases. Since
+# the fuzzing takes ages and only works on x86_64 glibc systems (the
+# binary only Gowin tools are built for that), we really want to use
+# the pypi source.
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no unit tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+e3a86adf1ba571d155c0f151595ea303f5d19f24d2eacd882a4967ad1f5ae3eff77e000ac1f88748624ee37a6839f6c806e403cd443912abb7b48f31f37c6be5 Apycula-0.11.1.tar.gz
+"
diff --git a/testing/py3-apsw/APKBUILD b/testing/py3-apsw/APKBUILD
index 8882f94751e..1259ba3d7e9 100644
--- a/testing/py3-apsw/APKBUILD
+++ b/testing/py3-apsw/APKBUILD
@@ -2,31 +2,45 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-apsw
_pkgname=apsw
-pkgver=3.31.1
-_pkgrel=r1
-pkgrel=0
+pkgver=3.45.2.0
+pkgrel=1
pkgdesc="Another Python SQLite Wrapper"
url="https://github.com/rogerbinns/apsw"
arch="all"
license="Zlib"
depends="python3"
-makedepends="python3-dev py3-setuptools sqlite-dev"
-source="$pkgname-$pkgver-$_pkgrel.tar.gz::https://github.com/rogerbinns/apsw/archive/$pkgver-$_pkgrel.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver-$_pkgrel"
+makedepends="
+ python3-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ sqlite-dev
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.zip::https://github.com/rogerbinns/apsw/releases/download/$pkgver/apsw-$pkgver.zip
+ detect-sqlite-config.patch
+ "
-replaces=py-apsw # Backwards compatibility
-provides=py-apsw=$pkgver-r$pkgrel # Backwards compatibility
+builddir="$srcdir/$_pkgname-$pkgver"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py check
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 setup.py build_test_extension test
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="5dbf770f33d35402e36ab79e167c48742b257cd14c95df5d22f1fe172b07ddf2419cf02fb4e0700732c4dd6a90d145415f2baed92063fd9d80f77db8a28ef83f py3-apsw-3.31.1-r1.tar.gz"
+sha512sums="
+0260f6479d5f1188ad172dfc0dd7e4a03c9d809d2f80c2296e587a19286681bb2ce759b0bd19ec6957e2902f18729b7e79410e4db79dff9918089f57dd510828 py3-apsw-3.45.2.0.zip
+8f3957bd6fecb5660a7cab367043e4ccdacd87d8963bbe41cc3d525265de28f08aa207099658d785be29c5c90b818c1418f766995cd780d02b8e36252a389758 detect-sqlite-config.patch
+"
diff --git a/testing/py3-apsw/detect-sqlite-config.patch b/testing/py3-apsw/detect-sqlite-config.patch
new file mode 100644
index 00000000000..4750250a09e
--- /dev/null
+++ b/testing/py3-apsw/detect-sqlite-config.patch
@@ -0,0 +1,8 @@
+diff --git a/setup.apsw b/setup.apsw
+index 68dedb9..3ceb10b 100644
+--- a/setup.apsw
++++ b/setup.apsw
+@@ -1 +1,3 @@
+ # You can put ini format directives here in addition to command line flags
++[build_ext]
++use_system_sqlite_config = True
diff --git a/testing/py3-arcus/APKBUILD b/testing/py3-arcus/APKBUILD
new file mode 100644
index 00000000000..0a045359e59
--- /dev/null
+++ b/testing/py3-arcus/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-arcus
+# Needs to be upgraded in sync with libarcus
+pkgver=5.3.0
+pkgrel=0
+pkgdesc="Python bindings for libarcus"
+url="https://github.com/Ultimaker/pyArcus"
+arch="all"
+license="LGPL-3.0-only"
+makedepends="
+ cmake
+ libarcus-dev
+ protobuf-dev
+ py3-sip
+ python3-dev
+ samurai
+ "
+options="!check" # package doesn't provide any tests
+source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/pyArcus/archive/refs/tags/$pkgver.tar.gz
+ cmake.patch
+ cmake-helpers.patch
+ pyproject.patch"
+builddir="$srcdir/pyArcus-$pkgver"
+
+build() {
+ cmake -G Ninja -B build \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d4a114994fa3e3156eae95dde58df13237b8bb0571a1219d6dee6b6338fd65f911f27887d6ab32b7a3cb32bc45ca6c25147e7c2d246cb0707326b88246abfbcd py3-arcus-5.3.0.tar.gz
+f14e55cd31c13051981f26364e34da8c94e8eb5227b1cfd6fe44b9f97b5a4dcf6142a1751fa62eb0514a47583e6ec2d51dc253f23cf72c3fe6a1cb5dca136f21 cmake.patch
+de75b985607feae0a9c511742915814e9c3d4bc467183f010ccc334ce4d0d952b6ff86020360b78558c4738cc03cf62c386b44ed76bcec12075c4a93dd03eeb7 cmake-helpers.patch
+ef593230d5c78da8ba0fc6ea83225c4543857de1837d3151c45e59ffd7c98063b8f97f25d01c15b6a8f90c26c919206f9f7fa26c9650117f4ce7be49ebca876f pyproject.patch
+"
diff --git a/testing/py3-arcus/cmake-helpers.patch b/testing/py3-arcus/cmake-helpers.patch
new file mode 100644
index 00000000000..c556985b9ff
--- /dev/null
+++ b/testing/py3-arcus/cmake-helpers.patch
@@ -0,0 +1,254 @@
+--- /dev/null
++++ ./cmake/CMakeBuilder.py
+@@ -0,0 +1,13 @@
++from sipbuild import SetuptoolsBuilder
++
++
++class CMakeBuilder(SetuptoolsBuilder):
++ def __init__(self, project, **kwargs):
++ print("Using the CMake builder")
++ super().__init__(project, **kwargs)
++
++ def build(self):
++ """ Only Generate the source files """
++ print("Generating the source files")
++ self._generate_bindings()
++ self._generate_scripts()
+--- /dev/null
++++ ./cmake/FindSIP.cmake
+@@ -0,0 +1,65 @@
++# Find SIP
++# ~~~~~~~~
++#
++# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php
++#
++# Find the installed version of SIP. FindSIP should be called after Python
++# has been found.
++#
++# This file defines the following variables:
++#
++# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number
++# suitable for comparison as a string.
++#
++# SIP_VERSION_STR - The version of SIP found as a human readable string.
++#
++# SIP_BINARY_PATH - Path and filename of the SIP command line executable.
++#
++# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file.
++#
++# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed
++# into.
++
++# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
++# Redistribution and use is allowed according to the terms of the BSD license.
++# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
++
++
++
++IF(SIP_VERSION OR SIP_BUILD_EXECUTABLE)
++ # Already in cache, be silent
++ SET(SIP_FOUND TRUE)
++ELSE()
++
++ FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH)
++
++ EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config)
++ IF(sip_config)
++ STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config})
++ STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
++ IF(${SIP_VERSION_STR} VERSION_LESS 5)
++ STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config})
++ ELSE(${SIP_VERSION_STR} VERSION_LESS 5)
++ FIND_PROGRAM(SIP_BUILD_EXECUTABLE sip-build)
++ ENDIF(${SIP_VERSION_STR} VERSION_LESS 5)
++ SET(SIP_FOUND TRUE)
++ ENDIF(sip_config)
++
++ IF(SIP_FOUND)
++ IF(NOT SIP_FIND_QUIETLY)
++ MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}")
++ ENDIF(NOT SIP_FIND_QUIETLY)
++ ELSE(SIP_FOUND)
++ IF(SIP_FIND_REQUIRED)
++ MESSAGE(FATAL_ERROR "Could not find SIP")
++ ENDIF(SIP_FIND_REQUIRED)
++ ENDIF(SIP_FOUND)
++
++ENDIF()
++
++include(${CMAKE_SOURCE_DIR}/cmake/SIPMacros.cmake)
++ADD_DEFINITIONS(-DSIP_VERSION=0x${SIP_VERSION})
+--- /dev/null
++++ ./cmake/FindSIP.py
+@@ -0,0 +1,57 @@
++# -*- coding: utf-8 -*-
++#
++# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
++# All rights reserved.
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are met:
++# * Redistributions of source code must retain the above copyright
++# notice, this list of conditions and the following disclaimer.
++# * Redistributions in 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.
++# * Neither the name of the Simon Edwards <simon@simonzone.com> 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 Simon Edwards <simon@simonzone.com> ''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 Simon Edwards <simon@simonzone.com> 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.
++#
++# FindSIP.py
++# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
++# Redistribution and use is allowed according to the terms of the BSD license.
++# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
++
++try:
++ import sipbuild
++
++ print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION)
++ print("sip_version_num:%d" % sipbuild.version.SIP_VERSION)
++ print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR)
++
++ from distutils.sysconfig import get_python_lib
++ python_modules_dir = get_python_lib(plat_specific=1)
++ print("default_sip_dir:%s" % python_modules_dir)
++except ImportError: # Code for SIP v4
++ import sipconfig
++
++ sipcfg = sipconfig.Configuration()
++ print("sip_version:%06.0x" % sipcfg.sip_version)
++ print("sip_version_num:%d" % sipcfg.sip_version)
++ print("sip_version_str:%s" % sipcfg.sip_version_str)
++ print("sip_bin:%s" % sipcfg.sip_bin)
++ print("default_sip_dir:%s" % sipcfg.default_sip_dir)
++ print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
++ # SIP 4.19.10+ has new sipcfg.sip_module_dir
++ if hasattr(sipcfg, "sip_module_dir"):
++ print("sip_module_dir:%s" % sipcfg.sip_module_dir)
++ else:
++ print("sip_module_dir:%s" % sipcfg.sip_mod_dir)
+--- /dev/null
++++ ./cmake/SIPMacros.cmake
+@@ -0,0 +1,107 @@
++
++
++# Macros for SIP
++# ~~~~~~~~~~~~~~
++
++set(SIP_ARGS --pep484-pyi --no-protected-is-public)
++
++function(add_sip_module MODULE_TARGET)
++ if(NOT SIP_BUILD_EXECUTABLE)
++ set(SIP_BUILD_EXECUTABLE ${CMAKE_PREFIX_PATH}/Scripts/sip-build)
++ endif()
++
++ message(STATUS "SIP: Generating pyproject.toml")
++ configure_file(${CMAKE_SOURCE_DIR}/pyproject.toml.in ${CMAKE_CURRENT_BINARY_DIR}/pyproject.toml)
++ configure_file(${CMAKE_SOURCE_DIR}/cmake/CMakeBuilder.py ${CMAKE_CURRENT_BINARY_DIR}/CMakeBuilder.py)
++ if(WIN32)
++ set(ext .pyd)
++ set(env_path_sep ";")
++ else()
++ set(ext .so)
++ set(env_path_sep ":")
++ endif()
++
++ message(STATUS "SIP: Generating source files")
++ execute_process(
++ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS}
++ COMMAND_ECHO STDOUT
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
++ )
++ # This will generate the source-files during the configuration step in CMake. Needed to obtain the sources
++
++ # Touch the generated files (8 in total) to make them dirty and force them to rebuild
++ message(STATUS "SIP: Touching the source files")
++ set(_sip_output_files)
++ list(LENGTH SIP_FILES _no_outputfiles)
++ foreach(_concat_file_nr RANGE 0 ${_no_outputfiles})
++ if(${_concat_file_nr} LESS 8)
++ list(APPEND _sip_output_files "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/sip${MODULE_TARGET}part${_concat_file_nr}.cpp")
++ endif()
++ endforeach()
++
++ # Find the generated source files
++ message(STATUS "SIP: Collecting the generated source files")
++ file(GLOB sip_c "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.c")
++ file(GLOB sip_cpp "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.cpp")
++ file(GLOB sip_hdr "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.h")
++
++ # Add the user specified source files
++ message(STATUS "SIP: Collecting the user specified source files")
++ get_target_property(usr_src ${MODULE_TARGET} SOURCES)
++
++ # create the target library and link all the files (generated and user specified
++ message(STATUS "SIP: Linking the interface target against the shared library")
++ set(sip_sources "${sip_c}" "${sip_cpp}" "${usr_src}")
++
++ if (BUILD_SHARED_LIBS)
++ add_library("sip_${MODULE_TARGET}" SHARED ${sip_sources})
++ else()
++ add_library("sip_${MODULE_TARGET}" STATIC ${sip_sources})
++ endif()
++
++ # Make sure that the library name of the target is the same as the MODULE_TARGET with the appropriate extension
++ target_link_libraries("sip_${MODULE_TARGET}" PRIVATE "${MODULE_TARGET}")
++ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES PREFIX "")
++ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES SUFFIX ${ext})
++ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES OUTPUT_NAME "${MODULE_TARGET}")
++
++ # Add the custom command to (re-)generate the files and mark them as dirty. This allows the user to actually work
++ # on the sip definition files without having to reconfigure the complete project.
++ if (NOT DEFINED PYTHONPATH)
++ set(PYTHONPATH "")
++ endif ()
++ add_custom_command(
++ TARGET "sip_${MODULE_TARGET}"
++ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS}
++ COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files}
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
++ MAIN_DEPENDENCY ${MODULE_SIP}
++ DEPENDS ${sip_sources}
++ VERBATIM
++ )
++
++ set_target_properties("sip_${MODULE_TARGET}"
++ PROPERTIES
++ RESOURCE "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/${MODULE_TARGET}.pyi")
++endfunction()
++
++function(install_sip_module MODULE_TARGET)
++ if(DEFINED ARGV1)
++ set(_install_path ${ARGV1})
++ else()
++ if(DEFINED Python_SITEARCH)
++ set(_install_path ${Python_SITEARCH})
++ elseif(DEFINED Python_SITELIB)
++ set(_install_path ${Python_SITELIB})
++ else()
++ message(FATAL_ERROR "SIP: Specify the site-packages location")
++ endif()
++ endif()
++ message(STATUS "SIP: Installing Python module and PEP 484 file in ${_install_path}")
++ install(TARGETS "sip_${MODULE_TARGET}"
++ ARCHIVE DESTINATION ${_install_path}
++ LIBRARY DESTINATION ${_install_path}
++ RUNTIME DESTINATION ${_install_path}
++ RESOURCE DESTINATION ${_install_path}
++ )
++endfunction()
diff --git a/testing/py3-arcus/cmake.patch b/testing/py3-arcus/cmake.patch
new file mode 100644
index 00000000000..e7390e0fe00
--- /dev/null
+++ b/testing/py3-arcus/cmake.patch
@@ -0,0 +1,32 @@
+--- ./CMakeLists.txt.orig
++++ ./CMakeLists.txt
+@@ -2,22 +2,22 @@
+ project(pyarcus)
+ cmake_minimum_required(VERSION 3.20)
+
+-find_package(protobuf REQUIRED)
+-find_package(cpython REQUIRED)
+-find_package(arcus REQUIRED)
++list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+
+-find_package(standardprojectsettings REQUIRED)
+-find_package(sipbuildtool REQUIRED)
++find_package(Protobuf REQUIRED)
++find_package(Python REQUIRED COMPONENTS Interpreter Development)
++find_package(Arcus REQUIRED)
+
++find_package(SIP 6.5.0 REQUIRED)
++
+ add_library(pyArcus INTERFACE src/PythonMessage.cpp)
+-use_threads(pyArcus)
+
+ target_include_directories(pyArcus
+ INTERFACE
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>
+ )
+-target_link_libraries(pyArcus INTERFACE arcus::arcus protobuf::libprotobuf cpython::cpython)
++target_link_libraries(pyArcus INTERFACE Arcus protobuf::libprotobuf Python::Python)
+ add_sip_module(pyArcus)
+ install_sip_module(pyArcus)
+
diff --git a/testing/py3-arcus/pyproject.patch b/testing/py3-arcus/pyproject.patch
new file mode 100644
index 00000000000..3dd7f3a6e7b
--- /dev/null
+++ b/testing/py3-arcus/pyproject.patch
@@ -0,0 +1,20 @@
+--- /dev/null
++++ ./pyproject.toml.in
+@@ -0,0 +1,17 @@
++[build-system]
++requires = ["sip >=6, <7"]
++build-backend = "sipbuild.api"
++
++[tool.sip.metadata]
++name = "pyArcus"
++
++[tool.sip.project]
++builder-factory = "CMakeBuilder"
++sip-files-dir = "${CMAKE_CURRENT_SOURCE_DIR}/python/"
++sip-include-dirs = ["CMAKE_CURRENT_SOURCE_DIR/python/"]
++build-dir = "${CMAKE_CURRENT_BINARY_DIR}/pyArcus/"
++
++[tool.sip.bindings.pyArcus]
++exceptions = true
++release-gil = true
++concatenate = 8
diff --git a/testing/py3-argcomplete/APKBUILD b/testing/py3-argcomplete/APKBUILD
deleted file mode 100644
index 4fa96876eff..00000000000
--- a/testing/py3-argcomplete/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=py3-argcomplete
-_pkgname=${pkgname#py3-}
-pkgver=1.11.1
-pkgrel=0
-pkgdesc="Easy, extensible command line tab completion of arguments for your Python script"
-options="!check" # Tests are py2 dependent
-url="https://github.com/kislyuk/argcomplete"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-coverage py3-flake8 py3-pexpect bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kislyuk/$_pkgname/archive/v$pkgver.tar.gz
- "
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-argcomplete" # Backwards compatibility
-provides="py-argcomplete=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
-}
-
-sha512sums="de1bc9450d735392d043e530d33827622bd1b5253b3cfe2df5340ec885197b0e1394bb19a3790d191c469e3279648c802d8bbcc20f87729fca0fae887866e188 py3-argcomplete-1.11.1.tar.gz"
diff --git a/testing/py3-arpeggio/APKBUILD b/testing/py3-arpeggio/APKBUILD
new file mode 100644
index 00000000000..df811b77cf5
--- /dev/null
+++ b/testing/py3-arpeggio/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-arpeggio
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="Recursive descent parser based on PEG grammars"
+url="https://github.com/textX/Arpeggio"
+license="MIT"
+arch="noarch"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/textX/Arpeggio/archive/$pkgver/py3-arpeggio-$pkgver.tar.gz"
+builddir="$srcdir/Arpeggio-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+
+ rm -r "$pkgdir"/usr/lib/python3.*/site-packages/arpeggio/tests
+}
+
+sha512sums="
+53628b94c5181a5768be686d7c27178f77823065164dcaa421125aa3c5f2fedf2bf9e54761b92a73832dd9ae667a23eaa4ca3b00155d1acd800c00acf0f449a4 py3-arpeggio-2.0.2.tar.gz
+"
diff --git a/testing/py3-arrow/APKBUILD b/testing/py3-arrow/APKBUILD
deleted file mode 100644
index f5431a4c991..00000000000
--- a/testing/py3-arrow/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-arrow
-_pkgname=arrow
-pkgver=0.15.6
-pkgrel=0
-pkgdesc="Python3 library to create and manipulate dates, times, and timestamps"
-options="!check" # Requires unpackaged 'chai'
-url="https://arrow.readthedocs.io/"
-arch="noarch"
-license="Apache-2.0"
-depends="py3-dateutil"
-makedepends="py3-setuptools"
-checkdepends="py3-tz py3-simplejson py3-mock"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-arrow" # for backwards compatibility
-provides="py-arrow=$pkgver-r$pkgrel" # for backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # Requires unpackaged 'dateparser' module
- rm -f tests/factory_tests.py
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c56316f8c535c6f14ccaab32e2559b45309170fd47e8728cdd8c0e2af9398264f90fbdd0ece82d14e3f959d24b186fac3e8bb52cf7a64fe0dcd4c247650c73b5 arrow-0.15.6.tar.gz"
diff --git a/testing/py3-asif/APKBUILD b/testing/py3-asif/APKBUILD
new file mode 100644
index 00000000000..79142ba4d45
--- /dev/null
+++ b/testing/py3-asif/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+pkgname=py3-asif
+_pkgname=asif
+pkgver=0.3.2
+pkgrel=2
+pkgdesc="asyncio-powered IRC bot framework"
+url="https://github.com/minus7/asif"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/minus7/asif/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no testsuite
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+7bc8a1a3ed2992a0e30e6f2595564706335139513ef25ec4e632afe246f446029dbb0ff3abfa942b65b0adb91e6c1d7089f36157003fd41a84cf52ae8cc72928 py3-asif-0.3.2.tar.gz
+"
diff --git a/testing/py3-ask/APKBUILD b/testing/py3-ask/APKBUILD
index 1712a90d757..0cc7e1c1842 100644
--- a/testing/py3-ask/APKBUILD
+++ b/testing/py3-ask/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-ask
_pkgname=ask
pkgver=0.0.8
-pkgrel=2
+pkgrel=8
pkgdesc="An easy input validation for Python"
options="!check" # No testsuite
url="https://github.com/chive/ask"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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"
-replaces="py-ask" # Backwards compatibility
+replaces="py-ask" # Backwards compatibility
provides="py-ask=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="8258349066a4f57d1a5e7a136cca8330e662e135ac366b905327e9c3535ec1a949865cf20e1332d9f8a22d06c76474f86cdbd11e52bf7c002e87a3f3654ded60 ask-0.0.8.tar.gz"
diff --git a/testing/py3-astor/APKBUILD b/testing/py3-astor/APKBUILD
deleted file mode 100644
index 527d8c193ad..00000000000
--- a/testing/py3-astor/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=py3-astor
-pkgver=0.8.1
-pkgrel=0
-pkgdesc="Easy manipulation of Python source via the AST"
-url="https://github.com/berkerpeksag/astor"
-arch="noarch"
-license="BSD-3-Clause-Clear"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose"
-source="$pkgname-$pkgver.tar.gz::https://github.com/berkerpeksag/astor/archive/$pkgver.tar.gz
- "
-builddir="$srcdir/astor-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests -v
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="8917898e284fb5e5855a05f8e3f1c8925c4128d2a87f67f0334914d4d3c54b53c4f0cadd04d632a7bcaf3438db7edf2d989b07a9576637c0dce6c16e85c60f83 py3-astor-0.8.1.tar.gz"
diff --git a/testing/py3-astral/APKBUILD b/testing/py3-astral/APKBUILD
index e601b4d7376..44c3a5ab39b 100644
--- a/testing/py3-astral/APKBUILD
+++ b/testing/py3-astral/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-astral
_pkgname=astral
-pkgver=2.2
-pkgrel=0
+pkgver=3.2
+pkgrel=3
pkgdesc="Calculations for the position of the sun and moon"
-url="https://pypi.python.org/pypi/astral"
+url="https://pypi.org/project/astral"
arch="noarch"
license="Apache-2.0"
-depends="py3-requests py3-tz python3"
-makedepends="py3-setuptools"
+depends="python3 tzdata"
+makedepends="py3-poetry-core py3-gpep517 py3-installer"
checkdepends="py3-pytest py3-freezegun"
+subpackages="$pkgname-pyc"
source="$_pkgname-$pkgver.tar.gz::https://github.com/sffjunkie/astral/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -18,16 +19,21 @@ replaces=py-astral # Backwards compatibility
provides=py-astral=$pkgver-r$pkgrel # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
# skip the webtest since we lack an API key
- PYTHONPATH="$PWD/build/lib" py.test-3 -v -m "not webtest"
+ pytest -v -m "not webtest"
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/astral-*.whl
}
-sha512sums="2b2f2c6f6f5960f747542e6410800bfab1125aa6ebe2d77d9fb4ef9e99458e808449c96855ef4d1cb8eac07f8e400e2cdbe71420391f6ee81efab31ce7693b90 astral-2.2.tar.gz"
+sha512sums="
+f463d58ecd2d251a5c9bbcc18a65d7234e596a6c4f8fdd29574049e5d6942cc3881da8e3851a052050b1e40db5db55fdd4967468b5f6bea2fa8ea597b0d65251 astral-3.2.tar.gz
+"
diff --git a/testing/py3-astroid/APKBUILD b/testing/py3-astroid/APKBUILD
deleted file mode 100644
index 14a784cf604..00000000000
--- a/testing/py3-astroid/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-astroid
-pkgver=2.4.1
-pkgrel=0
-pkgdesc="A new abstract syntax tree from Python's ast"
-url="https://www.astroid.org"
-arch="noarch"
-license="LGPL-2.1-or-later"
-depends="py3-lazy-object-proxy py3-six py3-typed-ast py3-wrapt"
-replaces="py-logilab-astng"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-runner"
-source="https://files.pythonhosted.org/packages/source/a/astroid/astroid-$pkgver.tar.gz"
-builddir="$srcdir"/astroid-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m pytest -v
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="10723236306c8a181d536acc047a18436851c7c8b9c532303f39ca1eae9ca9eba3e3e0c135aea7596642528d39e0115b38ad705bef9140cd0f5fa8b170569738 astroid-2.4.1.tar.gz"
diff --git a/testing/py3-asttokens/APKBUILD b/testing/py3-asttokens/APKBUILD
deleted file mode 100644
index cc06d82752c..00000000000
--- a/testing/py3-asttokens/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-asttokens
-pkgver=2.0.4
-pkgrel=0
-pkgdesc="Annotate AST trees with source code positions"
-url="https://github.com/gristlabs/asttokens"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-six"
-makedepends="py3-setuptools"
-checkdepends="py3-astroid py3-pytest"
-source="https://files.pythonhosted.org/packages/source/a/asttokens/asttokens-$pkgver.tar.gz"
-builddir="$srcdir/"asttokens-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- env PYTHONPATH="$PWD/build/lib" py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2be6a2ddef35c45ed8b6576a35618b6bc1a4d8c50ab7ac2970d549e7310d46fc8a29fff514d58d6e01c984e04389ca8aee6efed510f349013ab8e2c867c98669 asttokens-2.0.4.tar.gz"
diff --git a/testing/py3-asyauth/APKBUILD b/testing/py3-asyauth/APKBUILD
new file mode 100644
index 00000000000..702bc9a62dc
--- /dev/null
+++ b/testing/py3-asyauth/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-asyauth
+_pyname=asyauth
+pkgver=0.0.20
+pkgrel=1
+pkgdesc="Unified authentication library"
+url="https://github.com/skelsec/asyauth"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asn1crypto
+ py3-asysocks
+ py3-minikerberos
+ py3-unicrypto
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/asyauth/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+1d34ea4114f7df70f3b180ab5effc00db9d48ef8450173fc7ea8b0e7129f7e1b95569b1db8e3c5fd196acf3db0046a6dbf75c0480ac3ff9bbeb9f4770994d432 py3-asyauth-0.0.20.tar.gz
+"
diff --git a/testing/py3-async-lru/APKBUILD b/testing/py3-async-lru/APKBUILD
new file mode 100644
index 00000000000..fb9e5e189ac
--- /dev/null
+++ b/testing/py3-async-lru/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-pypi, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=py3-async-lru
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=async-lru
+pkgver=2.0.4
+pkgrel=1
+pkgdesc="Simple LRU cache for asyncio"
+url="https://pypi.org/project/async-lru/"
+arch="noarch"
+license="MIT"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest-asyncio py3-pytest-cov py3-pytest-timeout"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/a/async-lru/async-lru-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+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="
+f659fe8fdcec310f0070ffee5eabbc92c50b9d987d0b221e119a6cc67710f4c704ba3447518170e408f32b598abcf8e94fcaec9c9111120947126f26d5f021c6 async-lru-2.0.4.tar.gz
+"
diff --git a/testing/py3-asysocks/APKBUILD b/testing/py3-asysocks/APKBUILD
new file mode 100644
index 00000000000..4b420bd2a59
--- /dev/null
+++ b/testing/py3-asysocks/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-asysocks
+_pyname="asysocks"
+pkgver=0.2.12
+pkgrel=1
+pkgdesc="Socks5 / Socks4 client and server library"
+url="https://github.com/skelsec/asysocks"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asn1crypto
+ py3-cryptography
+ py3-h11
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/asysocks/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+9aa67b2d8548737e0bddecd54a0d01bbfe2dedac40f90dc3be08d26b259a8994b8f4f1ab1bacf783e7a87271d8c568fc71eeb46bcbced829cc7ae0b1b4f7e53f py3-asysocks-0.2.12.tar.gz
+"
diff --git a/testing/py3-audioread/APKBUILD b/testing/py3-audioread/APKBUILD
deleted file mode 100644
index 5fe909ed1f5..00000000000
--- a/testing/py3-audioread/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=py3-audioread
-_pkgname=audioread
-pkgver=2.1.8
-pkgrel=1
-pkgdesc="Multi-library, cross-platform audio decoding"
-url="https://github.com/sampsyo/audioread"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-options="!check" # upstream provides no testsuite
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-audioread" # Backwards compatibility
-provides="py-audioread=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9db5ad1f8b2047256b5f6b4bbee2366043ed19d35ffd2766ae3ab66bdc5b9f63910bcf449fd42aab074fd8132642bf730c432aa0c8f3c5368cd6ef36d7f4f5a5 audioread-2.1.8.tar.gz"
diff --git a/testing/py3-authres/APKBUILD b/testing/py3-authres/APKBUILD
new file mode 100644
index 00000000000..a413a79e6b7
--- /dev/null
+++ b/testing/py3-authres/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=py3-authres
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="RFC 5451/7001/7601 Authentication-Results Headers generation and parsing for Python"
+url="https://launchpad.net/authentication-results-python"
+arch="noarch"
+license="Apache-2.0"
+depends="python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://launchpad.net/authentication-results-python/1.2/$pkgver/+download/authres-$pkgver.tar.gz"
+builddir="$srcdir/authres-$pkgver"
+options="!check" # no test suite
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+b801b24127f90608c4e7870a3a15bfb6e350f7d8bbe7b7cd9e1c6d541fd360afb9bdd15f35e864f01f8ff2d33d65650e712c932c9402ab2affb86bc7536b63e1 authres-1.2.0.tar.gz
+"
diff --git a/testing/py3-autopep8/APKBUILD b/testing/py3-autopep8/APKBUILD
deleted file mode 100644
index 25a1db84af7..00000000000
--- a/testing/py3-autopep8/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-autopep8
-pkgver=1.5.2
-pkgrel=1
-pkgdesc="A tool that automatically formats Python code to conform to the PEP 8 style guide"
-url="https://pypi.python.org/pypi/autopep8/"
-arch="noarch"
-license="MIT"
-depends="python3 py3-setuptools py3-pycodestyle"
-source="https://github.com/hhatto/autopep8/archive/v$pkgver/autopep8-$pkgver.tar.gz"
-builddir="$srcdir/autopep8-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="6b1a41e5769b9f1f85f6e53fcc6c78239cbbbb5065e0abcf4cd110e013b8098dfee60f397d60ea89705b7b40b987c08e2625428946fd43c2078f33b993cec591 autopep8-1.5.2.tar.gz"
diff --git a/testing/py3-avro/APKBUILD b/testing/py3-avro/APKBUILD
index 221fc2c065c..ba4e252600c 100644
--- a/testing/py3-avro/APKBUILD
+++ b/testing/py3-avro/APKBUILD
@@ -2,27 +2,41 @@
# Contributor: Gennady Feldman <gena01@gmail.com>
pkgname=py3-avro
_pkgname=avro
-pkgver=1.9.2
-pkgrel=0
-pkgdesc="Avro is a serialization and RPC framework."
+pkgver=1.11.3
+pkgrel=1
+pkgdesc="Serialization and RPC framework"
url="https://avro.apache.org/"
arch="noarch"
license="Apache-2.0"
-depends="py3-six"
-makedepends="py3-setuptools py3-pycodestyle"
-source="$pkgname-$pkgver.tar.gz::http://github.com/apache/$_pkgname/archive/release-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-release-$pkgver/lang/py3"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-isort
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/apache/$_pkgname/archive/release-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-release-$pkgver/lang/py"
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="6a6980901eea964c050eb3d61fadf28712e2f02c36985bf8e5176b668bba48985f6a666554a1964435448de29b18d790ab86b787d0288a22fd9cba00746a7846 py3-avro-1.9.2.tar.gz"
+sha512sums="
+728609f562460e1115366663ede2c5d4acbdd6950c1ee3e434ffc65d28b72e3a43c3ebce93d0a8459f0c4f6c492ebb9444e2127a0385f38eb7cdf74b28f0c3ed py3-avro-1.11.3.tar.gz
+"
diff --git a/testing/py3-axolotl-curve25519/APKBUILD b/testing/py3-axolotl-curve25519/APKBUILD
deleted file mode 100644
index 22b09cbff2d..00000000000
--- a/testing/py3-axolotl-curve25519/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=py3-axolotl-curve25519
-_pkgname="python-${pkgname#py3-}"
-pkgver=0.4.1b
-_pkgver=0.4.1-2
-pkgrel=3
-pkgdesc="A python wrapper for curve25519 library with ed25519 signatures"
-options="!check" # No testsuite
-url="https://github.com/tgalal/python-axolotl-curve25519"
-arch="all"
-license="GPL-3.0-only"
-makedepends="py3-setuptools python3-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tgalal/$_pkgname/archive/$_pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$_pkgver
-
-replaces="py-axolotl-cuve25519" # Backwards compatibility
-provides="py-axolotl-cuve25519=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="cbc7c6caa47a9a811640c247a1be727d7b1b68bcdb4c5336e02b4d1eaf9fd2c57b7438b0da466a379a1c0f3f146756b9b7eea3c9b7945ce88478d4bf0b8a1e0d py3-axolotl-curve25519-0.4.1b.tar.gz"
diff --git a/testing/py3-axolotl/APKBUILD b/testing/py3-axolotl/APKBUILD
deleted file mode 100644
index 6e1bd67c66a..00000000000
--- a/testing/py3-axolotl/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=py3-axolotl
-_pkgname="python-${pkgname#py3-}"
-pkgver=0.2.3
-pkgrel=1
-pkgdesc="Python3 port of libsignal-protocol-java"
-url="https://github.com/tgalal/python-axolotl"
-arch="noarch"
-license="GPL-3.0-only"
-depends="py3-cryptography py3-protobuf py3-axolotl-curve25519"
-makedepends="py3-setuptools"
-checkdepends="py3-cparser"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tgalal/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-axolotl" # Backwards compatibility
-provides="py-axolotl=$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="1a10dc9df2f95d19b49909d4d136b5266aae19e24ac84f8b263ae7d4de18f77353c737616ac0648b600e05699a90d348f95c6c1659849986becefb4a0277fc80 py3-axolotl-0.2.3.tar.gz"
diff --git a/testing/py3-banal/APKBUILD b/testing/py3-banal/APKBUILD
new file mode 100644
index 00000000000..07a0e3e446b
--- /dev/null
+++ b/testing/py3-banal/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Daniele Parisi <danieleparisi@mailfence.com>
+pkgname=py3-banal
+_pkgname=banal
+pkgver=1.0.6
+pkgrel=3
+pkgdesc="Commons of banal micro-functions for Python."
+url="https://pypi.org/project/banal/"
+arch="noarch"
+license="MIT"
+depends="python3"
+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"
+options="!check" # no test suite available
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+da35a9e5f6e9d905b9b3244a8bc398f1106116e4d5842a90e052bbdb95a17e51a08d2771f4438067d69cfc8834febe4718555d3c00e4e24f8b6e6d6a282682cb banal-1.0.6.tar.gz
+"
diff --git a/testing/py3-bandwidth-sdk/APKBUILD b/testing/py3-bandwidth-sdk/APKBUILD
index f8afba3826a..384987772e0 100644
--- a/testing/py3-bandwidth-sdk/APKBUILD
+++ b/testing/py3-bandwidth-sdk/APKBUILD
@@ -1,13 +1,14 @@
# Maintainer:
pkgname=py3-bandwidth-sdk
pkgver=3.1.0
-pkgrel=1
+pkgrel=7
pkgdesc="python helpers for using bandwidth.com API"
-url="https://pypi.python.org/pypi/bandwidth-sdk/"
+url="https://pypi.org/project/bandwidth-sdk/"
arch="noarch"
license="MIT"
depends="py3-requests py3-dateutil py3-lxml py3-six"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="bandwidth-sdk-$pkgver.tar.gz::https://github.com/Bandwidth/python-bandwidth/archive/v$pkgver.tar.gz"
builddir="$srcdir/python-bandwidth-$pkgver"
@@ -20,7 +21,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="31c09c709b4f61741f9eabf5a4ec56d3577996b5b3933c51264442cac1bbf95da5f3e5d9e98b914eb06d8897e273ea0863406fb6bf9c65af0ac1cd71f2f06ac1 bandwidth-sdk-3.1.0.tar.gz"
diff --git a/testing/py3-banknumber/APKBUILD b/testing/py3-banknumber/APKBUILD
deleted file mode 100644
index 2f0bc1da72e..00000000000
--- a/testing/py3-banknumber/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-banknumber
-_pkgname=banknumber
-pkgver=2.0
-pkgrel=4
-pkgdesc="Python3 module to validate Bank codes"
-url="https://bitbucket.org/zikzakmedia/python-banknumber"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-banknumber" # Backwards compatibility
-provides="py-banknumber=$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="78eb4911483a2cf54f5f2c5dd0b023483b9b14fc630c1a93238145491f79de31d3213dbee2838dd36643f4adca89136bda1a104b89710a7292aa497f511bb25d banknumber-2.0.tar.gz"
diff --git a/testing/py3-barcodenumber/APKBUILD b/testing/py3-barcodenumber/APKBUILD
index 4839d31cf3b..3b8354daaa3 100644
--- a/testing/py3-barcodenumber/APKBUILD
+++ b/testing/py3-barcodenumber/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-barcodenumber
_pkgname=barcodenumber
pkgver=0.2.1
-pkgrel=4
+pkgrel=10
pkgdesc="A Python module to validate product codes"
url="https://bitbucket.org/zikzakmedia/python-barcodenumber"
arch="noarch"
license="GPL-3.0-or-later"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces=py-barcodenumber # Backwards compatibility
+replaces=py-barcodenumber # Backwards compatibility
provides=py-barcodenumber=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="5a2f517cf3ea4d0ff9cbcf7b6b81e44cd4cd3a2ac38bc5b2a087a5e84f0917daa560f6bd7eeb33b3a3695f833fcc321b8fee114f28b89eed7bdb4efaf7de4412 barcodenumber-0.2.1.tar.gz"
diff --git a/testing/py3-base58/APKBUILD b/testing/py3-base58/APKBUILD
new file mode 100644
index 00000000000..055f9dd1397
--- /dev/null
+++ b/testing/py3-base58/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Eloi Torrents <eloitor@duck.com>
+# Maintainer: Eloi Torrents <eloitor@duck.com>
+pkgname=py3-base58
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="Bitcoin-compatible Base58 and Base58Check implementation"
+url="https://github.com/keis/base58"
+arch="all"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-pyhamcrest py3-pytest-benchmark"
+source="$pkgname-$pkgver.tar.gz::https://github.com/keis/base58/archive/v$pkgver.tar.gz"
+builddir="$srcdir/${pkgname/py3-/}-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+e39131ffbcc4f2d64d576fc6a6e7052b4f0ac0e9895819cc3086fec686c276bdfc031e8a3756197a18da576cf165b6d8c8d5e72bed9820e7e4dd4053aa9b8068 py3-base58-2.1.1.tar.gz
+"
diff --git a/testing/py3-bbopt/APKBUILD b/testing/py3-bbopt/APKBUILD
deleted file mode 100644
index 7a2a38e35ff..00000000000
--- a/testing/py3-bbopt/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-bbopt
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="Black box hyperparameter optimization made easy"
-url="https://github.com/evhub/bbopt"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-scikit-optimize
-license="Apache-2.0"
-depends="python3 py3-numpy py3-matplotlib py3-portalocker py3-scikit-optimize"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/b/bbopt/bbopt-$pkgver.tar.gz"
-options="!check" # Requires old version of py3-networkx
-builddir="$srcdir/bbopt-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3390c8abbac7ddf0ffc45962acecf7eedb5caff899edb500906447b05cb5bcf4c74341e2932b7ad3282c35698e51cc5429882cffff4106e932d8c78bec4a4f0b bbopt-1.1.0.tar.gz"
diff --git a/testing/py3-beartype/APKBUILD b/testing/py3-beartype/APKBUILD
new file mode 100644
index 00000000000..30f10a0cdbf
--- /dev/null
+++ b/testing/py3-beartype/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-beartype
+_pyname=beartype
+pkgver=0.18.5
+pkgrel=0
+pkgdesc="Fast, pure-Python type checker"
+url="https://github.com/beartype/beartype"
+arch="noarch"
+license="MIT"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-numpy py3-mypy py3-docutils py3-sphinx"
+subpackages="$pkgname-pyc"
+source="
+ $_pyname-$pkgver.tar.gz::https://github.com/beartype/beartype/archive/refs/tags/v$pkgver.tar.gz
+ "
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # nuitka isn't packaged for alpine yet
+ # pyright isn't packaged anymore
+ # long type-check test fails on some architectures
+ python3 -m venv --clear --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest \
+ --deselect beartype_test/a90_func/z90_lib/a90_nuitka/test_nuitka.py \
+ --deselect beartype_test/a90_func/pep/test_pep561_static.py::test_pep561_pyright \
+ --deselect beartype_test/a00_unit/a70_decor/test_decorwrapper.py::test_wrapper_fail_obj_large
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4805ccc618795f100d018e5fd5d1234254ea182d1e43aa1559655b73bf259c5b93f6804fd803e5e281942235019469c252f02ddf8136674b9399efe61ef98d71 beartype-0.18.5.tar.gz
+"
diff --git a/testing/py3-bencode/APKBUILD b/testing/py3-bencode/APKBUILD
new file mode 100644
index 00000000000..afa1e8c0b10
--- /dev/null
+++ b/testing/py3-bencode/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=py3-bencode
+_pkgname=bencode.py
+pkgver=4.0.0
+pkgrel=1
+pkgdesc="Simple bencode parser"
+url="https://github.com/fuzeman/bencode.py"
+arch="noarch"
+license="BitTorrent-1.1"
+makedepends="
+ py3-setuptools
+ py3-pbr
+ py3-gpep517
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fuzeman/bencode.py/archive/$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ export PBR_VERSION=$pkgver
+ 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="
+30d6e9c61fbe91d274b10e9a8bd01cee77111e164a41975433a3a6d9d225a3148887fbb46153c6800f1a0846c8dd1e9852d4d4bed67a1964aac7bdb6837e6072 py3-bencode-4.0.0.tar.gz
+"
diff --git a/testing/py3-betamax/APKBUILD b/testing/py3-betamax/APKBUILD
deleted file mode 100644
index 25431b841d3..00000000000
--- a/testing/py3-betamax/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=py3-betamax
-pkgver=0.8.1
-pkgrel=0
-pkgdesc="A VCR imitation designed only for python-requests."
-url="https://github.com/betamaxpy/betamax"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools py3-pytest"
-source="$pkgname-$pkgver.tar.gz::https://github.com/betamaxpy/betamax/archive/$pkgver.tar.gz
- tests-disable-broken-assertion.patch
- "
-builddir="$srcdir/betamax-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3888aa5f1e249faf496a32c03fb7d37096d7bbde573048c2ff3d1ba0fa03ebaeb4ff4e72191478da5f1a04d813204e31d3897469bd5f5eea4c5db2c72aae1374 py3-betamax-0.8.1.tar.gz
-d7039add209472045f2b7c4326c0d1234ae86b3e28a7ae3705ba695fd54783b1639b6c59781df1034dc777c3bc2cd0615a2227b0e7eafec890b707cabe0fa617 tests-disable-broken-assertion.patch"
diff --git a/testing/py3-betamax/tests-disable-broken-assertion.patch b/testing/py3-betamax/tests-disable-broken-assertion.patch
deleted file mode 100644
index c8df7d36be5..00000000000
--- a/testing/py3-betamax/tests-disable-broken-assertion.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream: yes
-Reason: The test is broken because the content includes changing data
-Url: https://github.com/betamaxpy/betamax/issues/184
-diff --git a/tests/integration/test_record_modes.py b/tests/integration/test_record_modes.py
-index 58c8846..7f206cd 100644
---- a/tests/integration/test_record_modes.py
-+++ b/tests/integration/test_record_modes.py
-@@ -40,7 +40,8 @@ class TestRecordOnce(IntegrationHelper):
- # NOTE(hroncok): httpbin.org added X-Processed-Time header that
- # can possibly differ (and often does)
- assert r0_headers == r1_headers
-- assert r0.content == r1.content
-+ # Fails due to X-Amzn-Trace-Id being different on every request
-+ # assert r0.content == r1.content
-
-
- class TestRecordNone(IntegrationHelper):
diff --git a/testing/py3-betamax_matchers/APKBUILD b/testing/py3-betamax_matchers/APKBUILD
deleted file mode 100644
index 8a5206d1568..00000000000
--- a/testing/py3-betamax_matchers/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=py3-betamax_matchers
-pkgver=0.4.0
-pkgrel=0
-pkgdesc="A group of experimental matchers for Betamax"
-url="https://github.com/betamaxpy/betamax_matchers"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/betamaxpy/betamax_matchers/archive/$pkgver.tar.gz"
-builddir="$srcdir/betamax_matchers-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="202255d9895b118d03efa20aa64f5b099045750dcb9a1ad3eda164d3da372207f1bee8a40f63cdf179da90cfc4380e5a004e5f9c94f006a6f3dbc64e29766c86 py3-betamax_matchers-0.4.0.tar.gz"
diff --git a/testing/py3-betamax_serializers/APKBUILD b/testing/py3-betamax_serializers/APKBUILD
deleted file mode 100644
index 8fe7f183520..00000000000
--- a/testing/py3-betamax_serializers/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=py3-betamax_serializers
-pkgver=0.2.1
-pkgrel=0
-pkgdesc="A collection of serializers that may eventually be included in betamax"
-url="https://github.com/betamaxpy/betamax_serializers"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-yaml"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://gitlab.com/betamax/serializers/-/archive/$pkgver/serializers-$pkgver.tar.gz"
-builddir="$srcdir/serializers-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="64821be8a3166fdb7c452d9586bddd044accc94d7480fca48d45897f56cac1cc26f8c6bb0e2a7790141a761be8b0d82d042bdee437094413dcec6a9876a7ebc2 py3-betamax_serializers-0.2.1.tar.gz"
diff --git a/testing/py3-bidict/APKBUILD b/testing/py3-bidict/APKBUILD
new file mode 100644
index 00000000000..b54b9cd920e
--- /dev/null
+++ b/testing/py3-bidict/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-bidict
+pkgver=0.23.1
+pkgrel=1
+pkgdesc="The bidirectional mapping library for Python"
+url="https://bidict.readthedocs.io/"
+arch="noarch"
+license="MPL-2.0"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-hypothesis
+ py3-pytest
+ py3-pytest-benchmark
+ py3-pytest-xdist
+ py3-sortedcollections
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jab/bidict/archive/refs/tags/v$pkgver.tar.gz
+ no-typing-ext.patch
+ "
+builddir="$srcdir/bidict-$pkgver"
+
+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="
+795e29b61c1717dd34807c60ce598fc6a142decebd0545378bdc728f397e2050f52cf11212075ba60e22553031e9727fcbaae26891f531219075f6f58e457d05 py3-bidict-0.23.1.tar.gz
+eaef2f16cdf89e4f206d8595167286da672054c68715686eb412f3d5e1be4b55537c300248034c2679cda5c1d12fba961f23917648e8fe805949cb5cad70e10b no-typing-ext.patch
+"
diff --git a/testing/py3-bidict/no-typing-ext.patch b/testing/py3-bidict/no-typing-ext.patch
new file mode 100644
index 00000000000..05ad5905704
--- /dev/null
+++ b/testing/py3-bidict/no-typing-ext.patch
@@ -0,0 +1,9 @@
+diff --git a/tests/test_bidict.py b/tests/test_bidict.py
+index 461d08b..d48ffe8 100644
+--- a/tests/test_bidict.py
++++ b/tests/test_bidict.py
+@@ -59,3 +59,3 @@ from hypothesis.strategies import sampled_from
+ from hypothesis.strategies import tuples
+-from typing_extensions import assert_type
++from typing import assert_type
+
diff --git a/testing/py3-billiard/APKBUILD b/testing/py3-billiard/APKBUILD
deleted file mode 100644
index 24c9d3d5ec4..00000000000
--- a/testing/py3-billiard/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-billiard
-pkgver=3.6.3.0
-pkgrel=0
-pkgdesc="a message queue abstraction layer"
-url="https://pypi.python.org/pypi/billiard/"
-arch="noarch"
-license="BSD-3-Clause"
-makedepends="py3-setuptools"
-checkdepends="py3-psutil py3-pytest py3-nose py3-case"
-source="https://files.pythonhosted.org/packages/source/b/billiard/billiard-$pkgver.tar.gz"
-builddir="$srcdir/billiard-$pkgver"
-
-replaces="py-billiard" # Backwards compatibility
-provides="py-billiard=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # Uses wrong name for 'queue' module.
- # Uses internal 'test' and 'test.support' modules.
- rm -f t/integration/tests/test_multiprocessing.py
-
- # Windows only
- rm -f t/unit/test_win32.py
-
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="8fde933c7f605aa4958a6f9da7aa876f42ef7250845b113fc175f8e8af1760063ac6b2a7a222d2c0bac4715f18986a2ee1a5528cc14925b2060dca8a5bd2333c billiard-3.6.3.0.tar.gz"
diff --git a/testing/py3-biopython/APKBUILD b/testing/py3-biopython/APKBUILD
deleted file mode 100644
index 84b5dcd9e27..00000000000
--- a/testing/py3-biopython/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Charles Pritchard <chuck@jumis.com>
-# Maintainer: Charles Pritchard <chuck@jumis.com>
-pkgname=py3-biopython
-pkgver=1.77
-pkgrel=0
-pkgdesc="Python tools for computational molecular biology."
-options="!check" # test_NCBI_qblast hangs
-url="https://biopython.org/"
-arch="all !mips !mips64" # blocked by py3-numpy
-license="BSD-3-Clause"
-depends="py3-numpy python3"
-makedepends="py3-setuptools py3-numpy-dev python3-dev"
-source="https://files.pythonhosted.org/packages/source/b/biopython/biopython-$pkgver.tar.gz"
-builddir="$srcdir/biopython-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="6f4b03d46c591e1f49dd1e76bcc4ac5c9aaa2bf748c9dd37ffc5de5a613fbeed38f89b418c01601dd99c65b13b2e294bc8d81ffafc42a9ff1b309c84f840d0d5 biopython-1.77.tar.gz"
diff --git a/testing/py3-bite-parser/APKBUILD b/testing/py3-bite-parser/APKBUILD
new file mode 100644
index 00000000000..e717ee03a7f
--- /dev/null
+++ b/testing/py3-bite-parser/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=py3-bite-parser
+pkgver=0.2.4
+pkgrel=1
+pkgdesc="Asynchronous parser taking incremental bites out of your byte input stream"
+url="https://github.com/jgosmann/bite-parser"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest-asyncio
+ py3-pytest-forked
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jgosmann/bite-parser/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/bite-parser-$pkgver"
+
+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 -n auto --forked
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ rm -r "$pkgdir"/usr/lib/python*/site-packages/bite/tests
+}
+
+sha512sums="
+57edf56b27c07e3b113481b63d7db95053822c28c03111950e86eaeb15efd7be98e11652019e81a24d928d7dd7fe1781cedaa43d844c3a618377c1c8beb82e1a py3-bite-parser-0.2.4.tar.gz
+"
diff --git a/testing/py3-bitstruct/APKBUILD b/testing/py3-bitstruct/APKBUILD
new file mode 100644
index 00000000000..d3d4f661938
--- /dev/null
+++ b/testing/py3-bitstruct/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-bitstruct
+pkgver=8.19.0
+pkgrel=1
+pkgdesc="Python bit pack/unpack package"
+url="https://github.com/eerimoq/bitstruct"
+arch="all"
+license="MIT"
+depends="py3-codespell"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/eerimoq/bitstruct/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # Fails to import bitstruct.c
+builddir="$srcdir/bitstruct-$pkgver"
+
+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="
+9a3f7068664d70b86db1da4df4d3e650b774e89d69d71d9e6d73cc26ff98d5e606618301fa817ca5021d77a16b75c7b4c4f5d386a6b346104786de50ce9b02aa py3-bitstruct-8.19.0.tar.gz
+"
diff --git a/testing/py3-blessings/APKBUILD b/testing/py3-blessings/APKBUILD
deleted file mode 100644
index e8d602b2806..00000000000
--- a/testing/py3-blessings/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-blessings
-_pkgname=blessings
-pkgver=1.7
-pkgrel=5
-pkgdesc="Python library for terminal coloring, styling and positioning"
-url="https://github.com/erikrose/blessings"
-arch="noarch"
-license="MIT"
-depends="py3-six"
-makedepends="py3-setuptools"
-options="!check" # tests require a real terminal
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="66a8e7af6a8807c8be68f4d71db25ca6c26f46ddfa9a7e4792a2f73033df81d8392633ff75e6fa131039d9136030844ed93b11316b9f7e2e6ea77675f2f3e528 blessings-1.7.tar.gz"
diff --git a/testing/py3-blinker/APKBUILD b/testing/py3-blinker/APKBUILD
deleted file mode 100644
index 0c98246fdee..00000000000
--- a/testing/py3-blinker/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-blinker
-_pkgname=blinker
-pkgver=1.4
-pkgrel=5
-pkgdesc="Fast, simple object-to-object and broadcast signalling"
-url="https://pypi.python.org/pypi/blinker"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$builddir/build/lib" nosetests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2f5f71b05c7cc27f5761ba698b05c78c8a491f5285c120e532d24be0c8256daa14e075f3f30e15fb18e7c3f16579af9378a155d058f170e3af9ffdb89e49f56e blinker-1.4.tar.gz"
diff --git a/testing/py3-blis/APKBUILD b/testing/py3-blis/APKBUILD
deleted file mode 100644
index 0c3a0f2b7d0..00000000000
--- a/testing/py3-blis/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-blis
-pkgver=0.4.1
-pkgrel=1
-pkgdesc="Fast matrix-multiplication as a self-contained Python library"
-url="https://github.com/explosion/cython-blis"
-arch="x86_64 x86"
-license="MIT"
-depends="python3"
-makedepends="python3-dev py3-setuptools cython"
-checkdepends="py3-pytest py3-hypothesis py3-numpy"
-subpackages="$pkgname-doc"
-source="blis-$pkgver.tar.gz::https://github.com/explosion/cython-blis/archive/v$pkgver.tar.gz"
-builddir="$srcdir/cython-blis-$pkgver"
-
-prepare() {
- case "$CARCH" in
- x86_64) BLIS_ARCH=x86_64 ;;
- x86) BLIS_ARCH=generic ;;
- aarch64) BLIS_ARCH=cortexa53 ;;
- esac
- export BLIS_ARCH
-}
-
-build() {
- python3 setup.py build_ext --inplace
-}
-
-check() {
- python3 setup.py install --root="$PWD/tmp_install"
-
- cd tmp_install/usr/lib/python3.8/site-packages
-
- PYTHONPATH="$PWD/build/lib" pytest-3 blis
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="7085183f477d9da383b8ff4e6cb2d067c4dcde41481b4a634258ec637fe9c7b75dd0f0bbb59a4da75b31a84795d1a053b7fcc8bcf5be6174b529f8e047067e2f blis-0.4.1.tar.gz"
diff --git a/testing/py3-blist/APKBUILD b/testing/py3-blist/APKBUILD
deleted file mode 100644
index a8ed2d2b84a..00000000000
--- a/testing/py3-blist/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Sebastian Hugentobler <sebastian@vanwa.ch>
-# Maintainer: Sebastian Hugentobler <sebastian@vanwa.ch>
-pkgname=py3-blist
-_pkgname=blist
-pkgver=1.3.6
-pkgrel=3
-pkgdesc="A list-like type with better asymptotic performance and similar performance on small lists"
-url="https://github.com/DanielStutzbach/blist"
-arch="all"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="python3-dev py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/DanielStutzbach/blist/archive/v$pkgver.tar.gz
- fix-python3.7.patch"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces=py-blist # Backwards compatibility
-provides=py-blist=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f46ded57aeb2a33fc5450420210d015aa37c2fc91034a771dfb1a184ef2655d8e5dc97bee61139059e6211569fcb7358f972071d3830733e9dbb8908e1b0e14c py3-blist-1.3.6.tar.gz
-b885080992a565d3c08c07dd0311ab7656fc2aba5711fc86491d702f71b732aef23c18151b048f7bfc59d3c7bc72ca872367cb1aeaee3f44702f79c96d306fc8 fix-python3.7.patch"
diff --git a/testing/py3-blist/fix-python3.7.patch b/testing/py3-blist/fix-python3.7.patch
deleted file mode 100644
index 79fdc158838..00000000000
--- a/testing/py3-blist/fix-python3.7.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/blist/_sortedlist.py
-+++ b/blist/_sortedlist.py
-@@ -419,8 +419,7 @@ def add(self, value):
-
- def __iter__(self):
- it = super(_setmixin, self).__iter__()
-- while True:
-- item = next(it)
-+ for item in it:
- n = len(self)
- yield item
- if n != len(self):
diff --git a/testing/py3-blockchain/APKBUILD b/testing/py3-blockchain/APKBUILD
index 017aac48012..8ec3947a0a5 100644
--- a/testing/py3-blockchain/APKBUILD
+++ b/testing/py3-blockchain/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-blockchain
_pkgname=blockchain
pkgver=1.4.4
-pkgrel=1
+pkgrel=6
pkgdesc="Blockchain API library (v1)"
url="https://github.com/blockchain/api-v1-client-python"
arch="noarch"
license="MIT"
depends="py3-future"
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
@@ -25,7 +26,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="46e9d83f3a8220aef67f90a5b1d0f29df709f48c69392eef3fa38eb22c5b346296e3f15cf61dcc612c57d0f94a838af6d74ae906c8ffffefec86e471bc036a8f blockchain-1.4.4.tar.gz"
diff --git a/testing/py3-blockdiag/APKBUILD b/testing/py3-blockdiag/APKBUILD
index e1138178c78..cb3e6bb52cc 100644
--- a/testing/py3-blockdiag/APKBUILD
+++ b/testing/py3-blockdiag/APKBUILD
@@ -2,26 +2,36 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-blockdiag
_pkgname=blockdiag
-pkgver=2.0.1
-pkgrel=0
+pkgver=3.0.0
+pkgrel=4
pkgdesc="Generate block-diagram image file from spec-text file"
url="http://blockdiag.com"
arch="noarch"
license="Apache-2.0"
depends="py3-funcparserlib py3-pillow py3-webcolors"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-tests $pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-blockdiag" # for backwards compatibility
+replaces="py-blockdiag" # for backwards compatibility
provides="py-blockdiag=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="07690882b05d4cf7be04245e183a7c54d9cd4acab3bb4b5e170b7b0f9229d6ea42eba4dc9fab47604c1572d3c4b09de96cffb610c0c31882b9c0b150f0e76d89 blockdiag-2.0.1.tar.gz"
+tests() {
+ amove usr/lib/python3*/site-packages/blockdiag/tests
+}
+
+sha512sums="
+e0e588941c5212a924068cc0b3953b670089e33c385ea8ce52fc54f5ca79414fb12217eba1052c5384c9f2fd81e79304639c9604cdc4a6464f7c221bb67ef267 blockdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-bookkeeper/APKBUILD b/testing/py3-bookkeeper/APKBUILD
new file mode 100644
index 00000000000..c419c120be0
--- /dev/null
+++ b/testing/py3-bookkeeper/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=py3-bookkeeper
+pkgver=4.16.2
+pkgrel=1
+pkgdesc="Python client for Apache Bookkeeper"
+url="https://github.com/apache/bookkeeper"
+arch="noarch"
+license="Apache-2.0"
+depends="python3"
+makedepends="py3-setuptools"
+options="!check" # test requires bookkeeper server
+subpackages="$pkgname-pyc"
+source="bookkeeper-release-$pkgver.tar.gz::https://github.com/apache/bookkeeper/archive/refs/tags/release-$pkgver.tar.gz"
+builddir="$srcdir/bookkeeper-release-$pkgver/stream/clients/python"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir"
+}
+
+sha512sums="
+2826cbd9c8769a8d6f9d0c6102999684bccf9f667ca693e5f6fabb1e4c99ce096a9f99b51d87e5eae311bd5a8f3b8557e93edaaa8a00fd0e21be68aad44811eb bookkeeper-release-4.16.2.tar.gz
+"
diff --git a/testing/py3-bottle-api/APKBUILD b/testing/py3-bottle-api/APKBUILD
index 2c294ae794d..da1ad3586af 100644
--- a/testing/py3-bottle-api/APKBUILD
+++ b/testing/py3-bottle-api/APKBUILD
@@ -3,27 +3,31 @@
pkgname=py3-bottle-api
_pkgname=bottle-api
pkgver=0.0.4
-pkgrel=1
+pkgrel=7
pkgdesc="Bottle JSON Web API"
options="!check" # tests not present in pypi tarballs, only github which has no tags
url="https://github.com/tomotaka/bottle-api"
arch="noarch"
license="MIT"
depends="python3 py3-bottle"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-replaces="py-bottle-api" # Backwards compat
+replaces="py-bottle-api" # Backwards compat
provides="py-bottle-api=$pkgver-r$pkgrel" # Backwards compat
builddir="$srcdir"/$_pkgname-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="538f0a12941a333fcae5694edba3930d449ed5464f05e760fb174481acf2bb95c413f1fa3cf67b09f7fd647c60bcbbad05a51f020d64dc41b39b25b7744308c6 bottle-api-0.0.4.tar.gz"
diff --git a/testing/py3-bottle-hotqueue/APKBUILD b/testing/py3-bottle-hotqueue/APKBUILD
deleted file mode 100644
index 68083d1b7cb..00000000000
--- a/testing/py3-bottle-hotqueue/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-bottle-hotqueue
-_pkgname=bottle-hotqueue
-pkgver=0.2.5
-pkgrel=3
-pkgdesc="Bottle HotQueue plugin"
-options="!check" # No testsuite
-url="https://github.com/waawal/bottle_hotqueue"
-arch="noarch !armv7"
-license="MIT"
-depends="py3-bottle py3-hotqueue"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-bottle-hotqueue" # Backwards compatibility
-provides="py-bottle-hotqueue=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0ee8a1254d3997b7066443100a27de5ca22b31f4c24bd2bc92bb41fa296516a9096d170e1d48b30dea192fe424b3d9b487b851c6a4c272c0c4a55681a1afc2dc bottle-hotqueue-0.2.5.tar.gz"
diff --git a/testing/py3-bottle-pgsql/APKBUILD b/testing/py3-bottle-pgsql/APKBUILD
index 2f93d841d1a..09b34294b07 100644
--- a/testing/py3-bottle-pgsql/APKBUILD
+++ b/testing/py3-bottle-pgsql/APKBUILD
@@ -2,27 +2,30 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-bottle-pgsql
_pkgname=bottle-pgsql
-pkgver=0.1
-pkgrel=2
+pkgver=0.2
+pkgrel=5
pkgdesc="Bottle PgSQL integration plugin"
options="!check" # No testsuite
url="https://github.com/raisoblast/bottle-pgsql"
arch="noarch"
license="MIT"
depends="python3 py3-bottle"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-bottle-pgsql" # Backwards compatibility
+replaces="py-bottle-pgsql" # Backwards compatibility
provides="py-bottle-pgsql=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="a14d7cae86d7efa4cb7734886d34b8922fb06cbb47e46ecabf6cc993f9e266e2e072b1c0e6849689e6c11c3f20ce638753f2b6fcb4c2f68a3d5f90f1533292cb bottle-pgsql-0.1.tar.gz"
+sha512sums="d45624d5b330be4624cac45a2a631f403679b1fa3799efd2db282ebc89cbc7f89b12c3c128a8be860d700904e420f6a2327a2bb3a18f4b0d490d423c131ef2a3 bottle-pgsql-0.2.tar.gz"
diff --git a/testing/py3-bottle-redis/APKBUILD b/testing/py3-bottle-redis/APKBUILD
index e08d326bc46..2ad116e8ef3 100644
--- a/testing/py3-bottle-redis/APKBUILD
+++ b/testing/py3-bottle-redis/APKBUILD
@@ -2,27 +2,31 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-bottle-redis
_pkgname=bottle-redis
-pkgver=0.2.1
-pkgrel=2
+pkgver=0.2.3
+pkgrel=6
pkgdesc="Bottle redis plugin"
options="!check" # No testsuite
url="https://github.com/bottlepy/bottle-redis"
arch="noarch"
license="MIT"
depends="python3 py3-bottle py3-redis"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-bottle-redis" # Backwards compatibility
+replaces="py-bottle-redis" # Backwards compatibility
provides="py-bottle-redis=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="2db020bb786113e32d7f9dcf6fceb80426f7bd154eb3e5403372c7ebb82c55a8df0aad7a5fca6e47b1329eee1c14d1bfb833734951597083717da742a6461b91 bottle-redis-0.2.1.tar.gz"
+sha512sums="7cfff9f20379be42186ed88c5de854302fb67bbb306a3ff81d41f4332e29a335e7b3ca69b89f6785d54cd9c2a0d312f3e3ac9537b1c28d70afad032ab4746008 bottle-redis-0.2.3.tar.gz"
diff --git a/testing/py3-bottle-renderer/APKBUILD b/testing/py3-bottle-renderer/APKBUILD
index 8997509f7cc..e390f483eb0 100644
--- a/testing/py3-bottle-renderer/APKBUILD
+++ b/testing/py3-bottle-renderer/APKBUILD
@@ -3,27 +3,31 @@
pkgname=py3-bottle-renderer
_pkgname=bottle-renderer
pkgver=0.1.1
-pkgrel=2
+pkgrel=9
pkgdesc="Bottle renderer plugin"
options="!check" # No testsuite upstream
-url="https://pypi.python.org/pypi/bottle-renderer"
+url="https://pypi.org/project/bottle-renderer"
arch="noarch"
license="MIT"
depends="python3 py3-bottle"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-replaces="py-bottle-renderer" # Backwards compat
+replaces="py-bottle-renderer" # Backwards compat
provides="py-bottle-renderer=$pkgver-r$pkgrel" # Backwards compat
builddir="$srcdir"/$_pkgname-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="1bbf5750de425afa201b525d4207d542512288fa2506053b460db9d6ffd2d5040cefe29ed663abb85e337b66025cd594d401c25181bdcdfbbe4c0cbd709f8311 bottle-renderer-0.1.1.tar.gz"
diff --git a/testing/py3-bottle-request/APKBUILD b/testing/py3-bottle-request/APKBUILD
index 11a3aea7be0..00116f00917 100644
--- a/testing/py3-bottle-request/APKBUILD
+++ b/testing/py3-bottle-request/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-bottle-request
_pkgname=bottle-request
pkgver=0.2.0
-pkgrel=2
+pkgrel=9
pkgdesc="Bottle 'stateless' request object plugin"
options="!check" # No testsuite
-url="http://github.com/turtlebender/bottle-request/"
+url="https://github.com/turtlebender/bottle-request/"
arch="noarch"
license="MIT"
depends="python3 py3-bottle"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-bottle-request" # Backwards compatibility
+replaces="py-bottle-request" # Backwards compatibility
provides="py-bottle-request=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="bd12268d703996e200dea5817f939ecf80e572e97d3686bcaf988ec048cda4e3b950122588b91ce78a06712a321e155e2e365bc75bbd2a720228a65441a67e21 bottle-request-0.2.0.tar.gz"
diff --git a/testing/py3-bottle-rest/APKBUILD b/testing/py3-bottle-rest/APKBUILD
index 4d71f43dea7..ea48ab96bf0 100644
--- a/testing/py3-bottle-rest/APKBUILD
+++ b/testing/py3-bottle-rest/APKBUILD
@@ -2,16 +2,17 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-bottle-rest
_pkgname=bottle-rest
-pkgver=0.5.0
+pkgver=0.6.0
pkgrel=1
pkgdesc="A decorator for REST in Bottle"
-options="!check" # Has no github tarballs with tests
-url="https://pypi.python.org/pypi/bottle-rest/"
+url="https://pypi.org/project/bottle-rest/"
arch="noarch"
license="MIT"
depends="python3 py3-bottle"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-installer"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Bystroushaak/bottle-rest/archive/refs/tags/$pkgver.tar.gz"
replaces="py-bottle-rest" # Backwards compat
provides="py-bottle-rest=$pkgver-r$pkgrel" # Backwards compat
@@ -19,11 +20,22 @@ provides="py-bottle-rest=$pkgver-r$pkgrel" # Backwards compat
builddir="$srcdir"/$_pkgname-$pkgver
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="a4cd4717417109dad42b2f5da2a0bdb54c07e54920113c07d1fb00338e5927bd793997a8eea960d718a43d15aa3083c9ef4fb1e8e271a34900acfc59d63c6cf9 bottle-rest-0.5.0.tar.gz"
+sha512sums="
+abc34f287866188e84d3636df5d279061bbe9bc2dbc56bf1a6bafb39b255b5b04ae03fc0a2357e3d9a63ef100dfd3e630a408f84c05f8cbfe685e68a87a2ea93 py3-bottle-rest-0.6.0.tar.gz
+"
diff --git a/testing/py3-bottle-session/APKBUILD b/testing/py3-bottle-session/APKBUILD
index 8bbf5e70d38..e1807e23717 100644
--- a/testing/py3-bottle-session/APKBUILD
+++ b/testing/py3-bottle-session/APKBUILD
@@ -2,28 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-bottle-session
_pkgname=bottle-session
-pkgver=0.9
-pkgrel=1
+pkgver=1.0
+pkgrel=6
pkgdesc="Bottle session plugin"
options="!check" # No testsuite on tarball
url="https://bitbucket.org/devries/bottle-session"
arch="noarch"
license="Artistic-2.0"
depends="python3 py3-bottle py3-redis"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-replaces="py-bottle-session" # Backwards compat
+replaces="py-bottle-session" # Backwards compat
provides="py-bottle-session=$pkgver-r$pkgrel" # Backwards compat
builddir="$srcdir"/$_pkgname-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="8299d0b0db0cedc22da61e6d5622ad754f4e8012b84e951b79b9e744a4db0953e8bdc67cdb6f053540ca090ffcac37c4f8b323e4c60f50cb3bf36f5d1fc605c8 bottle-session-0.9.tar.gz"
+sha512sums="fe1888d26d20e1a759f31276737b5091f5ba7fc324b07ab778fc3e5b9083b5956bc215824c8fa297ebac7730de22cc6b034efa5b2eafdbfab9bf4019b696c7f2 bottle-session-1.0.tar.gz"
diff --git a/testing/py3-bottle-sqlalchemy/APKBUILD b/testing/py3-bottle-sqlalchemy/APKBUILD
index 82bd2d7419a..229ede394b3 100644
--- a/testing/py3-bottle-sqlalchemy/APKBUILD
+++ b/testing/py3-bottle-sqlalchemy/APKBUILD
@@ -3,27 +3,31 @@
pkgname=py3-bottle-sqlalchemy
_pkgname=bottle-sqlalchemy
pkgver=0.4.3
-pkgrel=1
+pkgrel=8
pkgdesc="Bottle SQLAlchemy integration plugin"
options="!check" # No testsuite in tarballs or usable github tarballs
-url="http://www.github.com/iurisilvio/bottle-sqlalchemy"
+url="https://github.com/iurisilvio/bottle-sqlalchemy"
arch="noarch"
license="MIT"
depends="python3 py3-bottle py3-sqlalchemy"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-replaces="py-bottle-sqlalchemy" # Backwards compat
+replaces="py-bottle-sqlalchemy" # Backwards compat
provides="py-bottle-sqlalchemy=$pkgver-r$pkgrel" # Backwards compat
builddir="$srcdir"/$_pkgname-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="3b7eeafa1d8dcd5864b2a132ccf68eb0dfa738c090101615d0cef68f5b0f1efc2cecd66d34be59ac46aaa14c939e2bf7eeb0b6a8932921fa2bd11dc2dcf3a3aa bottle-sqlalchemy-0.4.3.tar.gz"
diff --git a/testing/py3-bottle-sqlite/APKBUILD b/testing/py3-bottle-sqlite/APKBUILD
index c0ccf6379b0..608314f0492 100644
--- a/testing/py3-bottle-sqlite/APKBUILD
+++ b/testing/py3-bottle-sqlite/APKBUILD
@@ -2,27 +2,31 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-bottle-sqlite
_pkgname=bottle-sqlite
-pkgver=0.1.3
-pkgrel=2
+pkgver=0.2.0
+pkgrel=7
pkgdesc="Bottle sqlite plugin"
options="!check" # No testsuite
-url="https://pypi.python.org/pypi/bottle-sqlite"
+url="https://pypi.org/project/bottle-sqlite"
arch="noarch"
license="MIT"
depends="python3 py3-bottle"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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"
-replaces="py-bottle-sqlite" # Backwards compatibility
+replaces="py-bottle-sqlite" # Backwards compatibility
provides="py-bottle-sqlite=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="670f44bdb8d6c62205b264abcc03c8bbbd7ae34c85dbaaa0ad2c6f6902ea590035190f86ba24366ca2b4befe5488592278d31074dfdc2c897d9ad1bfc7e0a9e9 bottle-sqlite-0.1.3.tar.gz"
+sha512sums="5110adc5b1e7196aec28f96495db805bb16cace3ec2b4e4ccd40ad10f5cf8bea811568c3a8c876507ee76d146da0b576c7d0e7d34ca8d7f28ee64d858cedf3e4 bottle-sqlite-0.2.0.tar.gz"
diff --git a/testing/py3-bottle-websocket/APKBUILD b/testing/py3-bottle-websocket/APKBUILD
index 5ea3ee76f4d..30230bbab26 100644
--- a/testing/py3-bottle-websocket/APKBUILD
+++ b/testing/py3-bottle-websocket/APKBUILD
@@ -3,27 +3,31 @@
pkgname=py3-bottle-websocket
_pkgname=bottle-websocket
pkgver=0.2.9
-pkgrel=1
+pkgrel=8
pkgdesc="Bottle websocket plugin"
options="!check" # No upstream testsuite
-url="https://pypi.python.org/pypi/bottle-websocket"
+url="https://pypi.org/project/bottle-websocket"
arch="noarch"
license="MIT"
depends="python3 py3-bottle py3-gevent-websocket"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/zeekay/bottle-websocket/archive/v$pkgver.tar.gz"
-replaces="py-bottle-websocket" # Backwards compat
+replaces="py-bottle-websocket" # Backwards compat
provides="py-bottle-websocket=$pkgver-r$pkgrel" # Backwards compat
builddir="$srcdir"/$_pkgname-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="e57ffcee8d1bf0f75ebe9e5c4679ebe63d4ab3da31556f217e3849084ae3a69fb5bc05a978484dee7dd8d6822c0d4cff2c68b494d7ad7b075bd0accde2aa4c1a py3-bottle-websocket-0.2.9.tar.gz"
diff --git a/testing/py3-bottle-werkzeug/APKBUILD b/testing/py3-bottle-werkzeug/APKBUILD
index 5a3bdf277d0..b15200c3e5e 100644
--- a/testing/py3-bottle-werkzeug/APKBUILD
+++ b/testing/py3-bottle-werkzeug/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-bottle-werkzeug
_pkgname=bottle-werkzeug
pkgver=0.1.1
-pkgrel=2
+pkgrel=9
pkgdesc="Bottle werkzeug plugin"
-url="https://pypi.python.org/pypi/bottle-werkzeug"
+url="https://pypi.org/project/bottle-werkzeug"
arch="noarch"
license="MIT"
depends="python3 py3-bottle py3-werkzeug"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
options="!check"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
-replaces="py-bottle-werkzeug" # Backwards compatibility
+replaces="py-bottle-werkzeug" # Backwards compatibility
provides="py-bottle-werkzeug=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="13fce3be73caa42c8cbdf437799c1fdb32a6e1ea513055ce9cd53788cea318a6d990b0975b39bcbad3b6fb2994d17d29651603687f59604e81508e61b3b0319a bottle-werkzeug-0.1.1.tar.gz"
diff --git a/testing/py3-bson/APKBUILD b/testing/py3-bson/APKBUILD
index 0497f858569..d57dc3c4169 100644
--- a/testing/py3-bson/APKBUILD
+++ b/testing/py3-bson/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-bson
_pkgname=bson
pkgver=0.5.10
-pkgrel=0
+pkgrel=5
pkgdesc="Independent BSON codec for Python that doesn’t depend on MongoDB"
options="!check" # No testsuite
url="https://github.com/py-bson/bson"
@@ -11,6 +11,7 @@ arch="noarch"
license="BSD-3-Clause"
depends="py3-dateutil py3-six"
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
@@ -19,7 +20,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
check() {
diff --git a/testing/py3-businesstime/APKBUILD b/testing/py3-businesstime/APKBUILD
index 0dbec44a4b0..8df46741200 100644
--- a/testing/py3-businesstime/APKBUILD
+++ b/testing/py3-businesstime/APKBUILD
@@ -3,26 +3,28 @@
pkgname=py3-businesstime
_pkgname=businesstime
pkgver=0.3.0
-pkgrel=3
+pkgrel=9
pkgdesc="Python utility for calculating business time between two datetimes"
url="https://github.com/seatgeek/businesstime"
arch="noarch"
license="BSD-2-Clause"
-replaces="py-businesstime" # for backwards compatibility
+replaces="py-businesstime" # for backwards compatibility
provides="py-businesstime=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-setuptools 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
build() {
- cd "$builddir"
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="20e44a0057c66c15cf79452f2a602c8e1719f866c608bfffe25ec14fb5c3ec06fcd6f7ac93e2328ee38ea862464c128d8b3a66a544f13fd0f989fc3d6a3d10a7 businesstime-0.3.0.tar.gz"
diff --git a/testing/py3-c3d/APKBUILD b/testing/py3-c3d/APKBUILD
new file mode 100644
index 00000000000..b4f723dcf94
--- /dev/null
+++ b/testing/py3-c3d/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Sam Nystrom <sam@samnystrom.dev>
+# Maintainer: Sam Nystrom <sam@samnystrom.dev>
+pkgname=py3-c3d
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="Read and write C3D mocap files"
+url="https://github.com/EmbodiedCognition/py-c3d"
+arch="noarch"
+license="MIT"
+depends="py3-numpy"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-poetry-core"
+options="!check" # downloads many, large C3D files for tests
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/EmbodiedCognition/py-c3d/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/py-c3d-$pkgver"
+
+build() {
+ # poetry build
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" dist/*.whl
+}
+
+sha512sums="
+acdf48098257a29e9dc7a29efc328af81df00d93baf4f36f3f3364fbb19b91caf74c6aed6c05343304d34d1d159b79d685366ca126b8cb56fbefc518ec1879c9 py3-c3d-0.5.2.tar.gz
+"
diff --git a/testing/py3-cachy/APKBUILD b/testing/py3-cachy/APKBUILD
deleted file mode 100644
index 4440f0884d8..00000000000
--- a/testing/py3-cachy/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-cachy
-_realname=cachy
-pkgver=0.3.0
-pkgrel=1
-pkgdesc="Simple yet effective caching library"
-options="!check" # No tests on pypi tarball, github uses pyproject.toml
-url="https://github.com/sdispater/cachy"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
-}
-
-sha512sums="0b69bd45ce81fc57710b44011965b8c4a313808f7c464a409b839d9206158f91b1e39a760d08d62bb5eb15e455ba9b89683f0eb42d2bfcc2e99b0b8f267e3ead cachy-0.3.0.tar.gz"
diff --git a/testing/py3-cairocffi/APKBUILD b/testing/py3-cairocffi/APKBUILD
deleted file mode 100644
index d583c0bdf55..00000000000
--- a/testing/py3-cairocffi/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
-pkgname=py3-cairocffi
-_pkgname=cairocffi
-pkgver=1.1.0
-pkgrel=1
-pkgdesc="Python CFFI-based binding to Cairo and GDK-PixBuf"
-url="https://pythonhosted.org/cairocffi/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-cffi cairo gdk-pixbuf"
-checkdepends="
- py3-pytest py3-pytest-cov py3-pytest-isort py3-pytest-flake8 ttf-dejavu
-"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-options="!check" # tests broken
-
-replaces="py-cairocffi" # For backwards compatibiltiy
-provides="py-cairocffi=$pkgver-r$pkgrel" # For backwards compatibility
-
-prepare() {
- # import ordering is broken upstream; remove in next version
- sed -i setup.cfg -e 's/addopts = --flake8 --isort/addopts = --flake8/'
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-
-sha512sums="a9bc9ec5be767388aad9d06cc3b386b474dbacf097d3558b4033834cfb2f5418eede2f4b4080bec7e4725c6821f6e54d6c3366e8c4ee73bd3fa1cf444b395197 cairocffi-1.1.0.tar.gz"
diff --git a/testing/py3-cairosvg/APKBUILD b/testing/py3-cairosvg/APKBUILD
deleted file mode 100644
index cef8d34847d..00000000000
--- a/testing/py3-cairosvg/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-cairosvg
-_pyname=CairoSVG
-pkgver=2.4.2
-pkgrel=2
-pkgdesc="Cairo-based SVG renderer for python"
-url="https://cairosvg.org"
-arch="noarch"
-license="LGPL-3.0-or-later"
-depends="python3 py3-tinycss2 py3-cssselect2 py3-defusedxml py3-cairocffi py3-pillow"
-checkdepends="py3-pytest py3-pillow py3-pytest-flake8 py3-pytest-isort"
-makedepends="python3-dev py3-setuptools cairo-dev"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="
- https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
-"
-builddir="$srcdir"/CairoSVG-$pkgver
-replaces="py-cairosvg" # Backwards compat
-provides="py-cairosvg=$pkgver-r$pkgrel" # Backwards compat
-options="!check"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0d6dd22d9569fd3849cf7f6594c86bed719169dac1f0f3219e88d82f9d245bf29d51715159085cb26c0340c8f0dcb88412d141ec0ee3710b1477626f5a578441 CairoSVG-2.4.2.tar.gz"
diff --git a/testing/py3-caldav/APKBUILD b/testing/py3-caldav/APKBUILD
new file mode 100644
index 00000000000..78addb19d5c
--- /dev/null
+++ b/testing/py3-caldav/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-caldav
+pkgver=1.3.9
+pkgrel=1
+pkgdesc="caldav client library for Python"
+url="https://github.com/python-caldav/caldav"
+arch="noarch"
+license="GPL-3.0-only AND Apache-2.0"
+depends="
+ py3-icalendar
+ py3-lxml
+ py3-recurring-ical-events
+ py3-requests
+ py3-tz
+ py3-tzlocal
+ py3-vobject
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/python-caldav/caldav/archive/v$pkgver.tar.gz"
+builddir="$srcdir/caldav-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --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="
+f1912b26ce989ef8c7bd6278de20e26f265a5e9477fc168dc63c152b50a38faacf031cfb06f1d5f5e2333908c31cb75804c29d952227f5d58cd02a775956af77 py3-caldav-1.3.9.tar.gz
+"
diff --git a/testing/py3-case/APKBUILD b/testing/py3-case/APKBUILD
deleted file mode 100644
index 4eb31353b8d..00000000000
--- a/testing/py3-case/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-case
-_pyname=case
-pkgver=1.5.3
-pkgrel=1
-pkgdesc="Python unittest utilities"
-url="https://github.com/celery/case/"
-arch="noarch"
-license="BSD-3-Clause"
-makedepends="py3-setuptools"
-checkdepends="py3-coverage py3-mock py3-nose"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-replaces="py-case" # Backwards compatibility
-provides="py-case=$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="ae98a571c282f80c685c42ab1dc578847fe88cf8cd07faff505a8df8e3282a602908a8780ab88b36851e3ee6f3c178405e5c50776fd0f49fcc990087575f2958 case-1.5.3.tar.gz"
diff --git a/testing/py3-cassandra-driver/APKBUILD b/testing/py3-cassandra-driver/APKBUILD
index f147f47d846..3be35f01b78 100644
--- a/testing/py3-cassandra-driver/APKBUILD
+++ b/testing/py3-cassandra-driver/APKBUILD
@@ -1,23 +1,35 @@
-# Maintainer: Austin Page <jaustinpage@gmail.com>
# Contributor: Austin Page <jaustinpage@gmail.com>
+# Maintainer: Austin Page <jaustinpage@gmail.com>
pkgname=py3-cassandra-driver
_pkgname="${pkgname/py3-/}"
-pkgver=3.20.2
+pkgver=3.29.1
pkgrel=0
pkgdesc="Python driver for Apache Cassandra"
url="https://github.com/datastax/python-driver"
-arch="all"
+arch="noarch"
license="Apache-2.0"
-makedepends="cython libev-dev py3-setuptools python3-dev"
+makedepends="libev-dev 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"
+options="!check" # requires cython>=0.20,<0.30
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="f04359887af276682e996f3262b5cb7f91255fc538b9d2bfd34a7a2f451d43ea663d61f35328f43e0f6b5410f3a8ef9f466a5827c2b91b2505c07246307a8af3 cassandra-driver-3.20.2.tar.gz"
+sha512sums="
+8a1be4490a7ee22a446d2ae3aef2bab9071934d2499bf2f43e63c0efea923eacede217814ab947879eb4c92eaf1375cd26f39fa879dfc5c9532f7c1d9a58cf0b cassandra-driver-3.29.1.tar.gz
+"
diff --git a/testing/py3-casttube/APKBUILD b/testing/py3-casttube/APKBUILD
deleted file mode 100644
index d5433e07152..00000000000
--- a/testing/py3-casttube/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-casttube
-pkgver=0.2.1
-pkgrel=0
-pkgdesc="YouTube Chromecast API"
-url="https://github.com/ur1katz/casttube"
-arch="noarch"
-license="MIT"
-depends="python3 py3-requests"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/c/casttube/casttube-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/casttube-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0b077b1f622c1029e9cff949a1d1cd4f380d9110324ca6211eb4d6bc97fbf3aa4d7be47cb692c2a7628ab62b309fd9957ee6392060f27e06d030691ad8cde00f casttube-0.2.1.tar.gz"
diff --git a/testing/py3-catalogue/APKBUILD b/testing/py3-catalogue/APKBUILD
deleted file mode 100644
index d6028dbac19..00000000000
--- a/testing/py3-catalogue/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-catalogue
-pkgver=2.0.0
-pkgrel=0
-pkgdesc="Super lightweight function registries for your library"
-url="https://github.com/explosion/catalogue"
-arch="noarch"
-license="MIT"
-depends="py3-importlib-metadata"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/explosion/catalogue/archive/v$pkgver.tar.gz"
-
-builddir=$srcdir/catalogue-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest-3 test_catalogue.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="126d6f6469d88245b118247b3a6c7c1108a4bc6f0f5628acc3e4b82dfab51da9321a4684eda97c75338bede2d8ebdcba656a8045ed033f489e2a5b28a9d11f6d py3-catalogue-2.0.0.tar.gz"
diff --git a/testing/py3-catkin-pkg/APKBUILD b/testing/py3-catkin-pkg/APKBUILD
index 059dcbe2f0b..1456eee9f0a 100644
--- a/testing/py3-catkin-pkg/APKBUILD
+++ b/testing/py3-catkin-pkg/APKBUILD
@@ -2,26 +2,40 @@
# Maintainer: Russ Webber <russ@rw.id.au>
pkgname=py3-catkin-pkg
_pkgname=catkin_pkg
-pkgver=0.4.20
-pkgrel=0
+pkgver=0.5.2
+pkgrel=3
pkgdesc="Standalone Python library for the catkin build system."
url="http://wiki.ros.org/catkin_pkg"
arch="noarch"
license="BSD-3-Clause"
-options="!check" # python deps not packaged: # flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings
depends="python3 py3-docutils py3-dateutil py3-parsing"
makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+checkdepends="py3-pytest py3-mock"
+subpackages="$pkgname-pyc"
+source="https://github.com/ros-infrastructure/catkin_pkg/archive/refs/tags/$pkgver/catkin-pkg-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py3-catkin-pkg-modules" # module was renamed in pypi
provides="py3-catkin-pkg-modules=$pkgver-r$pkgrel"
+prepare() {
+ default_prepare
+ # skip lint checks
+ rm test/test_flake8.py
+}
+
build() {
python3 setup.py build
}
+check() {
+ PYTHONPATH=build/lib python3 -m unittest test/test_*.py
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="ea6b88e8af7e1a3d16c7a5a9c63dc88f155dd77a6bc72d6edb1ea64906d456f07969efde434ff2a7ecf9ad0c9225d8a93462d0b8292dae68309066c7acb090a8 catkin_pkg-0.4.20.tar.gz"
+
+sha512sums="
+40e7e3839017ad430ee36dccf87a90727e5efd92e6c605cdba3e9f8850b71a6a80da79bd8760d94e356dadebdd842c8a3f8b530782fb75503d3e620add79be4a catkin-pkg-0.5.2.tar.gz
+"
diff --git a/testing/py3-cbor2/APKBUILD b/testing/py3-cbor2/APKBUILD
new file mode 100644
index 00000000000..6ad2f3fb299
--- /dev/null
+++ b/testing/py3-cbor2/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-cbor2
+pkgver=5.6.1
+pkgrel=1
+pkgdesc="encoding and decoding for CBOR (RFC 8949)"
+url="https://github.com/agronholm/cbor2"
+arch="all"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ py3-hypothesis
+ py3-pytest
+ py3-pytest-cov
+ py3-tomli
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/c/cbor2/cbor2-$pkgver.tar.gz
+ fix-32bit-tests.patch
+ "
+builddir="$srcdir/cbor2-$pkgver"
+
+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="
+9ddf2c3690780816ff50ff4ed371435ca45b597b706254c37c9f01d1f1a699892e2c945a72e69b5506a803c41692f399b58b4e32d9409a0197c677e537e656b2 py3-cbor2-5.6.1.tar.gz
+ba8a19a73fe2dc747846b77fde6cd621ccb500a514ba61192dfa28c875720003666165ad12c767260b31148b0dd25454e36e4f43dd8bb1d11928944c6a5b61dd fix-32bit-tests.patch
+"
diff --git a/testing/py3-cbor2/fix-32bit-tests.patch b/testing/py3-cbor2/fix-32bit-tests.patch
new file mode 100644
index 00000000000..de8fdbb0823
--- /dev/null
+++ b/testing/py3-cbor2/fix-32bit-tests.patch
@@ -0,0 +1,29 @@
+Patch-Source: https://github.com/agronholm/cbor2/commit/75279162a019d20db3bff8d64d41c7e97b555b53
+From 75279162a019d20db3bff8d64d41c7e97b555b53 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi>
+Date: Tue, 6 Feb 2024 15:43:23 +0200
+Subject: [PATCH] Fixed test_oversized_read failing on 32-bit platforms
+
+Fixes #215.
+---
+ tests/test_decoder.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test_decoder.py b/tests/test_decoder.py
+index cd0b45a..d11be6e 100644
+--- a/tests/test_decoder.py
++++ b/tests/test_decoder.py
+@@ -939,11 +939,11 @@ def test_decimal_payload_unpacking(impl, data, expected):
+ "payload",
+ [
+ pytest.param(
+- unhexlify("5b7fffffffffffff00"),
++ unhexlify("41"),
+ id="bytestring",
+ ),
+ pytest.param(
+- unhexlify("7b7fffffffffffff00"),
++ unhexlify("61"),
+ id="unicode",
+ ),
+ ],
diff --git a/testing/py3-cchardet/APKBUILD b/testing/py3-cchardet/APKBUILD
new file mode 100644
index 00000000000..7546b3fd7e1
--- /dev/null
+++ b/testing/py3-cchardet/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Michał Adamski <michal@ert.pl>
+pkgname=py3-cchardet
+pkgver=2.1.7
+pkgrel=4
+pkgdesc="High speed universal character encoding detector"
+url="https://github.com/PyYoshi/cChardet"
+arch="all"
+license="MPL-1.1"
+makedepends="cython py3-setuptools python3-dev"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/c/cchardet/cchardet-$pkgver.tar.gz"
+builddir="$srcdir/cchardet-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py check
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="
+43e663e30ec079b2a954862de5e8136a2e40f69e300d65eb4ce9d7ffa5d8c496dc7c0937b3306b4096cfad12a1d0617628f8f0115534ab6faf9eb39d2b3935a2 cchardet-2.1.7.tar.gz
+"
diff --git a/testing/py3-cdio/APKBUILD b/testing/py3-cdio/APKBUILD
index 23f38df093c..bf3ad7308d7 100644
--- a/testing/py3-cdio/APKBUILD
+++ b/testing/py3-cdio/APKBUILD
@@ -2,15 +2,18 @@
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=py3-cdio
_pyname=pycdio
-pkgver=2.1.0
-pkgrel=0
+pkgver=2.1.1
+pkgrel=4
pkgdesc="python interface to libcdio"
url="https://www.gnu.org/software/libcdio"
arch="all"
license="GPL-3.0-only"
depends="python3"
makedepends="python3-dev py3-setuptools libcdio-dev swig py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz
+ assertEquals.patch
+ "
builddir="$srcdir/$_pyname-$pkgver"
build() {
@@ -22,6 +25,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="dc18fbd212f7040b8b06efaf263b17568e9c2d089cff7dfc4dda50a7225059e44c9c86e2d81ade92cf09c823f7189b5723fb601cb12f0884dc04e9f5418c5927 pycdio-2.1.0.tar.gz"
+sha512sums="
+4c756b1c2f39332add86e01af129ccb608178306be42c9719c163b6bad0ba4de3916ac477c6866450890e094b14a2689a24e7d19bcf13846330555c2bb1feaa7 pycdio-2.1.1.tar.gz
+8e64bbe0df39f42fa026423b113e3d26067d7c8a2169fafbb3e0d8fff1933cfb073ece116b243a39ed6b900ee0dcab5c44b257d9c464ce485f562c33c58beb14 assertEquals.patch
+"
diff --git a/testing/py3-cdio/assertEquals.patch b/testing/py3-cdio/assertEquals.patch
new file mode 100644
index 00000000000..611d2d01917
--- /dev/null
+++ b/testing/py3-cdio/assertEquals.patch
@@ -0,0 +1,23 @@
+diff --git a/test/test-cdtext.py b/test/test-cdtext.py
+index d635c7c..424f9c3 100644
+--- a/test/test-cdtext.py
++++ b/test/test-cdtext.py
+@@ -31,3 +31,3 @@ class CDTextTests(unittest.TestCase):
+ """Test keywords"""
+- self.assertEquals(
++ self.assertEqual(
+ pycdio.cdtext_field2str(pycdio.CDTEXT_FIELD_PERFORMER), "PERFORMER"
+@@ -41,8 +41,8 @@ class CDTextTests(unittest.TestCase):
+ text = device.get_cdtext()
+- self.assertEquals(text.get(pycdio.CDTEXT_FIELD_PERFORMER, 0), "Performer")
+- self.assertEquals(text.get(pycdio.CDTEXT_FIELD_TITLE, 0), "CD Title")
+- self.assertEquals(text.get(pycdio.CDTEXT_FIELD_DISCID, 0), "XY12345")
++ self.assertEqual(text.get(pycdio.CDTEXT_FIELD_PERFORMER, 0), "Performer")
++ self.assertEqual(text.get(pycdio.CDTEXT_FIELD_TITLE, 0), "CD Title")
++ self.assertEqual(text.get(pycdio.CDTEXT_FIELD_DISCID, 0), "XY12345")
+
+- self.assertEquals(text.get(pycdio.CDTEXT_FIELD_PERFORMER, 1), "Performer")
+- self.assertEquals(text.get(pycdio.CDTEXT_FIELD_TITLE, 1), "Track Title")
++ self.assertEqual(text.get(pycdio.CDTEXT_FIELD_PERFORMER, 1), "Performer")
++ self.assertEqual(text.get(pycdio.CDTEXT_FIELD_TITLE, 1), "Track Title")
+
diff --git a/testing/py3-certauth/APKBUILD b/testing/py3-certauth/APKBUILD
new file mode 100644
index 00000000000..21e55b93548
--- /dev/null
+++ b/testing/py3-certauth/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-certauth
+pkgver=1.3.0
+pkgrel=0
+pkgdesc="Simple CertificateAuthority and host certificate creation, useful for man-in-the-middle HTTPS proxy"
+url="https://github.com/ikreymer/certauth"
+arch="noarch"
+license="MIT"
+depends="python3 py3-openssl py3-tldextract"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="py3-certauth-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/c/certauth/certauth-$pkgver.tar.gz"
+builddir="$srcdir/certauth-$pkgver"
+
+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
+
+ # testfile is good on github, but has unnesesary '\n' on pypi.org
+ .testenv/bin/python3 -m pytest --cov certauth -v test/ \
+ -k 'not test_file_ipv6_wildcard_ignore'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+03a483461c90ae4b91ca60e0240a67f5b9ea50642c589d83c762b168095b137a0d9726ce24e0c1fe4eb91d7dd064e42755107b5fdf60be1addaa4b7e166dc01e py3-certauth-1.3.0.tar.gz
+"
diff --git a/testing/py3-chameleon/APKBUILD b/testing/py3-chameleon/APKBUILD
index 321b3c482c3..4bcfa58f158 100644
--- a/testing/py3-chameleon/APKBUILD
+++ b/testing/py3-chameleon/APKBUILD
@@ -1,13 +1,19 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-chameleon
-pkgver=3.7.2
+pkgver=4.5.4
pkgrel=0
pkgdesc="Fast Python HTML/XML Template Compiler"
url="https://chameleon.readthedocs.org"
arch="noarch"
license="BSD-3-Clause AND BSD-4-Clause AND Python-2.0 AND ZPL-2.1"
-depends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/malthe/chameleon/archive/$pkgver.tar.gz"
builddir="$srcdir"/chameleon-$pkgver
@@ -15,15 +21,24 @@ replaces="py-chameleon" # Backwards compatibility
provides="py-chameleon=$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
+
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/chameleon/tests
}
-sha512sums="3025fa92bdff3279fc404ad08d73d46bee82afd421f1d81982bd5cd2ea3fdffadf22efdb8b66157dbdf4d0cd793ac06b1a0daac4eb17a2a1ce9f14a65d4a6f8d py3-chameleon-3.7.2.tar.gz"
+sha512sums="
+2820282d54a7a727a8765c2d8fe29281faa86ff2ef3c55ce0f2f107d03abc900588abe9884a371e15f00f24a3d97cd010bd9448264a28acdc627338f1a86096e py3-chameleon-4.5.4.tar.gz
+"
diff --git a/testing/py3-cherrypy/APKBUILD b/testing/py3-cherrypy/APKBUILD
deleted file mode 100644
index 4273dae516f..00000000000
--- a/testing/py3-cherrypy/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-cherrypy
-pkgver=18.6.0
-pkgrel=0
-pkgdesc="A pythonic, object-oriented web development framework"
-url="http://www.cherrypy.org"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-six"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/C/CherryPy/CherryPy-$pkgver.tar.gz"
-builddir="$srcdir"/CherryPy-$pkgver
-replaces="py-cherrypy" # Backwards compatibility
-provides="py-cherrypy=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="cd33303fa9b9704ef427553091a6a6c2bbfea20e7d81acd2bcdc2855f8a36a084a0781bb19f3a084b24f0664bd7b318a667c8c79b5073381901acce4602de9d7 CherryPy-18.6.0.tar.gz"
diff --git a/testing/py3-chromecast/APKBUILD b/testing/py3-chromecast/APKBUILD
deleted file mode 100644
index 342a5e29dcb..00000000000
--- a/testing/py3-chromecast/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-chromecast
-pkgver=5.2.0
-pkgrel=0
-pkgdesc="Python module to talk to Google Chromecast"
-url="https://github.com/balloob/pychromecast"
-arch="noarch"
-license="MIT"
-depends="python3 py3-casttube py3-zeroconf py3-protobuf"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/P/PyChromecast/PyChromecast-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/PyChromecast-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="8bee0381286c8e4358351d793ecaed82c5118939afd36c30b1aeff897b04f963a67dc053b9a67251c04f74c4f63479ff2ec5bdf4c0c89481f8168244ab273b0a PyChromecast-5.2.0.tar.gz"
diff --git a/testing/py3-ciso8601/APKBUILD b/testing/py3-ciso8601/APKBUILD
new file mode 100644
index 00000000000..28a4055c209
--- /dev/null
+++ b/testing/py3-ciso8601/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-ciso8601
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="Fast ISO8601 date time parser for Python written in C"
+url="https://github.com/closeio/ciso8601"
+license="MIT"
+arch="all"
+makedepends="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-tz"
+source="https://github.com/closeio/ciso8601/archive/v$pkgver/py3-ciso8601-$pkgver.tar.gz"
+builddir="$srcdir/ciso8601-$pkgver"
+
+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="
+cf01355ffb197d8fe10c336d78e370bdf508f9a58cf2b9e912ae4d7da80910387eaf8809e3c6ccf12891b915708111bb155a0e2bb3de8a7e95f74284be9256a8 py3-ciso8601-2.3.1.tar.gz
+"
diff --git a/testing/py3-cjkwrap/APKBUILD b/testing/py3-cjkwrap/APKBUILD
new file mode 100644
index 00000000000..e5a0a7aa6ba
--- /dev/null
+++ b/testing/py3-cjkwrap/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-cjkwrap
+_pkgname=cjkwrap
+pkgver=2.2
+pkgrel=3
+pkgdesc="Library for wrapping and filling UTF-8 CJK text"
+url="https://gitlab.com/fgallaire/cjkwrap"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="python3"
+makedepends="py3-setuptools"
+options="!check" # no test suite
+subpackages="$pkgname-pyc"
+source="https://gitlab.com/fgallaire/cjkwrap/-/archive/v$pkgver/cjkwrap-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-v$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+9f744c672d5b045aa3bd80c9f13817706d459ffdbd4478a25c528a7fd85354934d938023eeaf14cfcca12f49654612f344c0f659305c0c493a664c9a684579e1 cjkwrap-v2.2.tar.gz
+"
diff --git a/testing/py3-class-doc/APKBUILD b/testing/py3-class-doc/APKBUILD
new file mode 100644
index 00000000000..9a0fa4f0a83
--- /dev/null
+++ b/testing/py3-class-doc/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=py3-class-doc
+pkgver=1.25
+pkgrel=1
+pkgdesc="Extract attributes docstrings defined in various ways"
+url="https://github.com/danields761/class-doc"
+arch="noarch"
+license="MIT"
+depends="py3-more-itertools"
+makedepends="py3-gpep517 py3-poetry-core"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/danields761/class-doc/archive/refs/tags/$pkgver/class-doc-$pkgver.tar.gz
+ masonry.patch
+ "
+builddir="$srcdir/class-doc-$pkgver"
+
+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="
+ee90100b8be199873c411ecb97915bc835c744d30e539eb661193224a200e66d66189857dc5043bd32f2f01c9ea852b9624d3b01d4236e2e3f93fe278d0da26a class-doc-1.25.tar.gz
+f063b339531531a47a9a72f84a49374f6e8178d8901c207bcb7713a19c49ed72f54260937b5d5d106bc48c8d54e43eeef818c0d6a6a32f4edc06ce9f71962050 masonry.patch
+"
diff --git a/testing/py3-class-doc/masonry.patch b/testing/py3-class-doc/masonry.patch
new file mode 100644
index 00000000000..749e4c10b7f
--- /dev/null
+++ b/testing/py3-class-doc/masonry.patch
@@ -0,0 +1,11 @@
+--- ./pyproject.toml.orig
++++ ./pyproject.toml
+@@ -31,7 +31,7 @@
+
+ [build-system]
+ requires = ["poetry>=0.12"]
+-build-backend = "poetry.masonry.api"
++build-backend = "poetry.core.masonry.api"
+
+ [tool.black]
+ skip_string_normalization = true
diff --git a/testing/py3-cleo/APKBUILD b/testing/py3-cleo/APKBUILD
deleted file mode 100644
index 626bacc32d9..00000000000
--- a/testing/py3-cleo/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-cleo
-_realname=cleo
-pkgver=0.8.1
-pkgrel=0
-pkgdesc="Python3 library to create beautiful and testable command-line interfaces"
-options="!check" # No tests on pypi tarball, github uses pyproject.toml
-url="https://github.com/sdispater/cleo"
-arch="noarch"
-license="MIT"
-depends="python3 py3-pastel py3-pylev"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="dd7b7e4a6574f3ff47089d42aab7ca5ea0d04fe1affb7015a6c9edadc655fe9a76afcef2a3fd776d9745216581d4f7d7a330e366748bac2fa831840eceee44d3 cleo-0.8.1.tar.gz"
diff --git a/testing/py3-cli_helpers/APKBUILD b/testing/py3-cli_helpers/APKBUILD
deleted file mode 100644
index bdeb09124c6..00000000000
--- a/testing/py3-cli_helpers/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=py3-cli_helpers
-_pkgname=cli_helpers
-pkgver=1.2.1
-pkgrel=1
-pkgdesc="A helper library for command-line interfaces"
-url="https://pypi.python.org/pypi/cli-helpers"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-terminaltables py3-tabulate py3-configobj"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-wcwidth py3-mock"
-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-cli_helpers" # Backwards compatibility
-provides="py-cli_helpers=$pkgver-r$pkgrel" # Backwards compatiblity
-
-check() {
- py.test-3
-}
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="46f83382800da7e6ba9116df5cd77bf012e14af821a842e73a7f0ddae64e032dd2d00c124b0f0ed18a07226058dbc41185e99ccd7616e971116a57a22ceace51 py3-cli_helpers-1.2.1.tar.gz"
diff --git a/testing/py3-click-completion/APKBUILD b/testing/py3-click-completion/APKBUILD
new file mode 100644
index 00000000000..bf7cae6a93a
--- /dev/null
+++ b/testing/py3-click-completion/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-click-completion
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="Fish, Bash, Zsh and PowerShell completion for Click"
+url="https://github.com/click-contrib/click-completion"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/click-contrib/click-completion/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/click-completion-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+e3298cd69b4486f0626fe286cff3b31ac62381a205f04248150e543a87f1eaebb6d650a7579fd8e9fd3be6adbdc39eb829cbccf0113650f58146757f781f1f50 py3-click-completion-0.5.2.tar.gz
+"
diff --git a/testing/py3-click-default-group/APKBUILD b/testing/py3-click-default-group/APKBUILD
new file mode 100644
index 00000000000..19d29efc2f7
--- /dev/null
+++ b/testing/py3-click-default-group/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-click-default-group
+pkgver=1.2.4
+pkgrel=1
+pkgdesc="Extends click.Group to invoke a command without explicit subcommand name"
+url="https://github.com/click-contrib/click-default-group"
+arch="noarch"
+license="BSD-3-Clause"
+depends="py3-click"
+makedepends="
+ py3-flit-core
+ py3-gpep517
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/click-contrib/click-default-group/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/click-default-group-$pkgver"
+
+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 -k 'not test_default_command_with_arguments'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+0239e703421e693399e8e54e4a6bdc4a74e6f16307f008ee742788ce3e8040f633de2b1bf12997a5c448b70cb55f77ccd4f42c5b4abe3b6a05df18908daf61da py3-click-default-group-1.2.4.tar.gz
+"
diff --git a/testing/py3-click-threading/APKBUILD b/testing/py3-click-threading/APKBUILD
new file mode 100644
index 00000000000..cf88e3276b7
--- /dev/null
+++ b/testing/py3-click-threading/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-click-threading
+_pyname=click-threading
+pkgver=0.5.0
+pkgrel=4
+pkgdesc="Utilities for multithreading in click"
+url="https://github.com/click-contrib/click-threading"
+arch="noarch"
+license="MIT"
+depends="python3 py3-click"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+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
+}
+
+check() {
+ PYTHONPATH="$PWD/build/lib" pytest -v
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0f3cfe6951488dfa9cb5b6a9356bef99cadc56556640e76f68deb7ca2748f578a8ad77fa063e3ca116b17546199a1b3c7982c58a5a6a7b028704692ce1f9e93f click-threading-0.5.0.tar.gz
+"
diff --git a/testing/py3-clickclick/APKBUILD b/testing/py3-clickclick/APKBUILD
new file mode 100644
index 00000000000..a6c58812bec
--- /dev/null
+++ b/testing/py3-clickclick/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
+pkgname=py3-clickclick
+_pkgname=python-clickclick
+pkgver=20.10.2
+pkgrel=2
+pkgdesc="Click command line utilities"
+url="https://codeberg.org/hjacobs/python-clickclick"
+arch="noarch"
+license="Apache-2.0"
+#options="!check" # one failing test
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+ py3-toml
+ "
+makedepends="
+ py3-flake8
+ py3-setuptools
+ "
+depends="
+ py3-click
+ py3-yaml
+ python3
+ "
+subpackages="$pkgname-pyc"
+source="
+ $pkgname-$pkgver.tar.gz::https://codeberg.org/hjacobs/$_pkgname/archive/$pkgver.tar.gz
+ Remove-unused-six-from-setup_requires-1.patch
+ fix-quoting-style-in-assert.patch
+ "
+builddir="$srcdir/$_pkgname"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+d8954d231bff6945ac0e8350be05775a8a0b852dd0284e3446b3f9c8bc5861870ed1bc058e132c144fe8d543aee87d7a7a54894abdb4006664e5994c8cfb507f py3-clickclick-20.10.2.tar.gz
+b2a6c1517f0fe8c35d89c886340afb20f18f107328fd34271b1d56743fd194b0d2fce277036b689498173e65b13b51620d9ed8809d41c8b98004440af8c8fd73 Remove-unused-six-from-setup_requires-1.patch
+977a63eb6210b3d9d65eabe11c0ef7ed68947147e4704909027547efda512472240affcc1ce0ebb381433bcecfbb325af91903093ca7add0496a9a63f9592f82 fix-quoting-style-in-assert.patch
+"
diff --git a/testing/py3-clickclick/Remove-unused-six-from-setup_requires-1.patch b/testing/py3-clickclick/Remove-unused-six-from-setup_requires-1.patch
new file mode 100644
index 00000000000..fb2088ca4f8
--- /dev/null
+++ b/testing/py3-clickclick/Remove-unused-six-from-setup_requires-1.patch
@@ -0,0 +1,30 @@
+From 119b22ada558837a567cdf7dee8d85100429bdf8 Mon Sep 17 00:00:00 2001
+From: felixonmars <felixonmars@archlinux.org>
+Date: Mon, 7 Feb 2022 10:14:46 +0100
+Subject: [PATCH] Remove unused 'six' from setup_requires (#1)
+
+Signed-off-by: felixonmars <felixonmars@noreply.codeberg.org>
+Co-authored-by: felixonmars <felixonmars@noreply.codeberg.org>
+Reviewed-on: https://codeberg.org/hjacobs/python-clickclick/pulls/1
+Co-authored-by: felixonmars <felixonmars@archlinux.org>
+Co-committed-by: felixonmars <felixonmars@archlinux.org>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 803852f..46fb595 100755
+--- a/setup.py
++++ b/setup.py
+@@ -145,7 +145,7 @@ def setup_package():
+ packages=setuptools.find_packages(exclude=['tests', 'tests.*']),
+ package_data={MAIN_PACKAGE: ["*.json"]},
+ install_requires=install_reqs,
+- setup_requires=['six', 'flake8'],
++ setup_requires=['flake8'],
+ cmdclass=cmdclass,
+ tests_require=['pytest-cov', 'pytest'],
+ command_options=command_options,
+--
+2.38.0
+
diff --git a/testing/py3-clickclick/fix-quoting-style-in-assert.patch b/testing/py3-clickclick/fix-quoting-style-in-assert.patch
new file mode 100644
index 00000000000..efe557f2521
--- /dev/null
+++ b/testing/py3-clickclick/fix-quoting-style-in-assert.patch
@@ -0,0 +1,25 @@
+From 78992219065dc4762987883c39e75dbb2921e187 Mon Sep 17 00:00:00 2001
+From: Henrik Riomar <henrik.riomar@gmail.com>
+Date: Thu, 6 Oct 2022 12:11:49 +0200
+Subject: [PATCH] fix quoting style in assert
+
+---
+ tests/test_console.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_console.py b/tests/test_console.py
+index 782fb83..62d16ae 100644
+--- a/tests/test_console.py
++++ b/tests/test_console.py
+@@ -204,7 +204,7 @@ def test_cli(monkeypatch):
+
+ runner = CliRunner()
+ result = runner.invoke(cli, ['notexists'])
+- assert 'Error: No such command "notexists"' in result.output
++ assert 'Error: No such command \'notexists\'' in result.output
+
+
+ def test_choice_default(monkeypatch):
+--
+2.38.0
+
diff --git a/testing/py3-clikit/APKBUILD b/testing/py3-clikit/APKBUILD
deleted file mode 100644
index ed605507db4..00000000000
--- a/testing/py3-clikit/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-clikit
-_realname=clikit
-pkgver=0.4.3
-pkgrel=0
-pkgdesc="Python3 library to create beautiful and testable command-line interfaces"
-options="!check" # No tests on pypi tarball, github uses pyproject.toml
-url="https://github.com/sdispater/clikit"
-arch="noarch"
-license="MIT"
-depends="python3 py3-pastel py3-pylev"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a3d7045f20d071cdc4251167b6bfd98b82a36e7003ccc02d5139df2914890309053fec43e9b3284121c68f0cdd3b3f8faa507d9a7b7fb8b26cedba35ae89c4e9 clikit-0.4.3.tar.gz"
diff --git a/testing/py3-cloudpickle/APKBUILD b/testing/py3-cloudpickle/APKBUILD
deleted file mode 100644
index 63bbf9e5b8b..00000000000
--- a/testing/py3-cloudpickle/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-cloudpickle
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="Extended pickling support for Python objects"
-url="https://pypi.org/project/cloudpickle/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-psutil"
-source="https://files.pythonhosted.org/packages/source/c/cloudpickle/cloudpickle-$pkgver.tar.gz"
-builddir=$srcdir/cloudpickle-$pkgver
-options="!check" # upstream test suite is badly broken
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3232dfdf91141179be510282a1fc60fa5891fffd1f012998c6a622957eabdf9deecc7431196ae70de01b2e498c97981c83ed22ac1ed6f3db8ba68ee0a9a26bd9 cloudpickle-1.4.1.tar.gz"
diff --git a/testing/py3-cmd2/APKBUILD b/testing/py3-cmd2/APKBUILD
new file mode 100644
index 00000000000..9f58062ee59
--- /dev/null
+++ b/testing/py3-cmd2/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: prspkt <prspkt@protonmail.com>
+# Maintainer: prspkt <prspkt@protonmail.com>
+pkgname=py3-cmd2
+pkgver=2.4.3
+pkgrel=2
+pkgdesc="Tool for building interactive command line applications in Python"
+url="https://github.com/python-cmd2/cmd2"
+arch="noarch"
+license="MIT"
+depends="python3 py3-attrs py3-pyperclip py3-wcwidth"
+makedepends="py3-gpep517 py3-setuptools py3-setuptools_scm py3-wheel"
+checkdepends="py3-pytest py3-pytest-mock py3-pytest-xdist py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/c/cmd2/cmd2-$pkgver.tar.gz"
+builddir="$srcdir/cmd2-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest -k 'not test_send_to_paste_buffer'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/cmd2*.whl
+}
+
+sha512sums="
+1d440752262f38a742069e636373884edcc49c17ba17b21b24015cfe559b4df36b45ac9489f2f643897fbd38f54b8e6120daf07ef25d2f209af8a4ac8e4c0085 cmd2-2.4.3.tar.gz
+"
diff --git a/testing/py3-cobs/APKBUILD b/testing/py3-cobs/APKBUILD
index 73c0757ec11..9ab39843295 100644
--- a/testing/py3-cobs/APKBUILD
+++ b/testing/py3-cobs/APKBUILD
@@ -1,15 +1,17 @@
# Maintainer: Martijn Braam <martijn@brixit.nl>
pkgname=py3-cobs
_pyname=cobs
-pkgver=1.1.3
-pkgrel=1
+pkgver=1.2.0
+pkgrel=3
pkgdesc="Consistent Overhead Byte Stuffing"
+options="!check" # Testsuite runs 0 tests
url="https://pypi.org/project/cobs/"
arch="all"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools python3-dev"
_pypiprefix="${_pyname%${_pyname#?}}"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
builddir=$srcdir/$_pyname-$pkgver
@@ -17,11 +19,9 @@ build() {
python3 setup.py build
}
-check() {
- python3 setup.py test
-}
-
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="e3169d0c4e62cd9427c9ccefad780aebf197365e3cc78b011fc065846978caa445eb183ec8df0f3b8129329168c298a1fa10c7435f75b606f747c33237c1e255 cobs-1.1.3.tar.gz"
+sha512sums="
+92a3324fd07dd75ce84049f412bd3f1e9cfc42864672eea09f2d106a942dc0dab8bef1812a1288b92a70897f73171919d4b4b917d9155eb193606f8159d34405 cobs-1.2.0.tar.gz
+"
diff --git a/testing/py3-codecov/APKBUILD b/testing/py3-codecov/APKBUILD
index 82e8bc44eea..5c391d850f1 100644
--- a/testing/py3-codecov/APKBUILD
+++ b/testing/py3-codecov/APKBUILD
@@ -1,15 +1,17 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-codecov
-pkgver=2.0.22
-pkgrel=0
+pkgver=2.1.13
+pkgrel=2
pkgdesc="Report uploader for Codecov"
options="!check" # Requires unpackaged 'ddt'
url="https://github.com/codecov/codecov-python"
arch="noarch"
license="Apache-2.0"
-depends="python3 py3-coverage py3-requests py3-setuptools"
+depends="python3 py3-coverage py3-requests"
+makedepends="py3-setuptools"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/codecov/codecov-python/archive/v$pkgver.tar.gz"
builddir="$srcdir"/codecov-python-$pkgver
@@ -25,7 +27,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
local file; for file in "$pkgdir"/usr/bin/*; do
mv $file $file-3
@@ -33,4 +35,6 @@ package() {
done
}
-sha512sums="85450944e99dbcf22eb340842690b67bdd68ca6cb59dfb639f8b08aad728cf045c07a124ab16ec6bf38d6d0a30c28c75bdfa8194b57eb330a2d581f3e71b7b8a py3-codecov-2.0.22.tar.gz"
+sha512sums="
+beddc2d19c6d2b535340e10084fc197ba4a86878d0c1c3da50d93ee4e7ed90cfa1f5456e1e8b6d1bee781c653b296e291b2257761f9b0339408a9f3d7844646e py3-codecov-2.1.13.tar.gz
+"
diff --git a/testing/py3-colander/APKBUILD b/testing/py3-colander/APKBUILD
index 53ff74e74b8..08a70377bfd 100644
--- a/testing/py3-colander/APKBUILD
+++ b/testing/py3-colander/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-colander
_pkgname=colander
-pkgver=1.7.0
+pkgver=2.0
pkgrel=1
-pkgdesc="A simple schema-based Python serialization and deserialization library"
-url="http://docs.pylonsproject.org/projects/colander/en/latest/"
+pkgdesc="simple schema-based Python serialization and deserialization library"
+url="https://docs.pylonsproject.org/projects/colander/en/latest/"
arch="noarch"
license="ZPL-2.1"
-depends="python3 py3-iso8601 py3-translationstring"
+depends="python3 py3-iso8601 py3-translationstring py3-babel"
checkdepends="py3-nose py3-coverage"
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
@@ -24,7 +25,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="135fe3d5d8a3fc613a30fb2a6a722ad7da2bedb32259d9cb955dcf38dd8cd9353f7b447b27fb1f16df94b3899e6ffa03514bab4a2e2b31dadb496dcfee4b082a colander-1.7.0.tar.gz"
+sha512sums="
+16e9f55442899bef03f15802dd87b051aa3932d88273a141fcc1300f7e7f5457de263ec6d1ed8b8025660e0d99aefa8390eb2349b6ccd5339faaafce1321de56 colander-2.0.tar.gz
+"
diff --git a/testing/py3-colored/APKBUILD b/testing/py3-colored/APKBUILD
new file mode 100644
index 00000000000..d11a5541e37
--- /dev/null
+++ b/testing/py3-colored/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-colored
+_pyname=${pkgname/py3-/}
+pkgver=1.4.4
+pkgrel=2
+pkgdesc="Simple Python library for color and formatting in terminal"
+url="https://gitlab.com/dslackw/colored"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://gitlab.com/dslackw/colored/-/archive/$pkgver/colored-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # No testsuite
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+d49075f97bcc220802a8a64780b4c3910acd420e7e0e82ee71659132e7a294a638b098e4e46ae54f531739f8a43cd35979e521c02bb359205a13d96e37cfe8ed colored-1.4.4.tar.gz
+"
diff --git a/testing/py3-colorlog/APKBUILD b/testing/py3-colorlog/APKBUILD
deleted file mode 100644
index e04b5010a02..00000000000
--- a/testing/py3-colorlog/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-colorlog
-_pkgname=colorlog
-pkgver=4.1.0
-pkgrel=0
-pkgdesc="A formatter for use with Python's logging module"
-url="https://github.com/borntyping/python-colorlog"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-colorlog" # Backwards compatibility
-provides="py-colorlog=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"/colorlog/tests
- PYTHONPATH="$builddir"/build/lib py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="af9a84355e6122a59e9176b0d30bb444bdebf3a54d25e71ae61698f83ef24f42594220ee1fae9c3cfeca1fc442871b4f1a62dcedb5bff5ce9f528e3433f80500 colorlog-4.1.0.tar.gz"
diff --git a/testing/py3-colorthief/APKBUILD b/testing/py3-colorthief/APKBUILD
new file mode 100644
index 00000000000..0e3c0250346
--- /dev/null
+++ b/testing/py3-colorthief/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=py3-colorthief
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="Grabs the dominant color or a representative color palette from an image."
+url="http://lokeshdhakar.com/projects/color-thief/"
+arch="noarch"
+license="BSD-3-Clause"
+subpackages="$pkgname-pyc"
+depends="py3-pillow"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+source="https://github.com/fengsp/color-thief-py/archive/$pkgver/color-thief-py-$pkgver.tar.gz"
+builddir="$srcdir/color-thief-py-$pkgver"
+options="!check"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+406c2eaf5e405ff7878444908161ca47628aef592c8e7c473a606f0eeb87957cf3ba6c146f7ba66a6fcd39cf6cd716ff7544be3832bbe0060b7abe8970b0c2d2 color-thief-py-0.2.1.tar.gz
+"
diff --git a/testing/py3-colour/APKBUILD b/testing/py3-colour/APKBUILD
deleted file mode 100644
index cd962763f20..00000000000
--- a/testing/py3-colour/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-colour
-_pkgname=colour
-pkgver=0.1.5
-pkgrel=1
-pkgdesc="Python module to convert and manipulate color representations"
-url="https://github.com/vaab/colour"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools py3-d2to1"
-checkdepends="py3-coverage py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-colour" # Backwards compatibility
-replaces="py-colour=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="09a5160862bf10cd5f4a94e43c63d6f2a5db43bcaae0e9d8f66900113ec04471e22d0bec7412f0289c6f1e6871c1a544f5be36266aa8d6fd5ec274bd461d9df8 colour-0.1.5.tar.gz"
diff --git a/testing/py3-columnize/APKBUILD b/testing/py3-columnize/APKBUILD
index d1a9dbebac2..edc07d8bd63 100644
--- a/testing/py3-columnize/APKBUILD
+++ b/testing/py3-columnize/APKBUILD
@@ -1,9 +1,8 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-columnize
-_pkgname=columnize
-pkgver=0.3.9
-pkgrel=4
+pkgver=0.3.11
+pkgrel=3
pkgdesc="Python module to align in columns a simple list"
url="https://github.com/rocky/pycolumnize"
arch="noarch"
@@ -11,21 +10,24 @@ license="MIT"
replaces="py-columnize" # for backwards compatibility
provides="py-columnize=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-nose"
checkdepends="py3-pytest py3-mock py3-pytest-mock"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rocky/pycolumnize/archive/release-${pkgver}.tar.gz"
-builddir="$srcdir"/py$_pkgname-release-$pkgver
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/c/columnize/columnize-$pkgver.tar.gz"
+builddir="$srcdir"/columnize-$pkgver
build() {
python3 setup.py build
}
check() {
- python3 setup.py test
+ PYTHONPATH=build/lib pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="4bf85218ace4e8729626c3953132ef7eef9f6b111446e685119f329d6367c265331d345c6928c98c76b78dbed646e9feddba0679f8af95172cc8657287fbb8b4 py3-columnize-0.3.9.tar.gz"
+sha512sums="
+aba1b911c57ac6f237460889d3da6dcfbedac3d42165dd99dc1798f3e2e767a3b895c4266fe82e5b35dfe43af7bff8e778f85bf9c71b10e8b13417e015779432 columnize-0.3.11.tar.gz
+"
diff --git a/testing/py3-commonmark/APKBUILD b/testing/py3-commonmark/APKBUILD
deleted file mode 100644
index 6d2986e4891..00000000000
--- a/testing/py3-commonmark/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Robert Sacks <robert@sacks.email>
-# Maintainer: Robert Sacks <robert@sacks.email>
-pkgname=py3-commonmark
-_pyname=commonmark
-pkgver=0.9.1
-pkgrel=0
-pkgdesc="Python3 parser for the CommonMark Markdown specification"
-url="https://pypi.org/project/commonmark/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-hypothesis py3-flake8"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" python3 commonmark/tests/unit_tests.py
- PYTHONPATH="$PWD/build/lib" python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- rm -rf "$pkgdir"/usr/lib/python3*/site-packages/commonmark/tests
-}
-
-sha512sums="bacf5ef387a0c330a2128f42c42c29c1a48ae623683e6e56ad28a1621aabd72e29cd3e2d661e8207b8cc0c347d267f262a55f2145fc58f8c8aeff91e7a283324 commonmark-0.9.1.tar.gz"
diff --git a/testing/py3-compdb/APKBUILD b/testing/py3-compdb/APKBUILD
index 50db55a3003..5ab993f1ee7 100644
--- a/testing/py3-compdb/APKBUILD
+++ b/testing/py3-compdb/APKBUILD
@@ -4,13 +4,14 @@
pkgname=py3-compdb
_pkgname=${pkgname#py3-*}
pkgver=0.2.0
-pkgrel=1
+pkgrel=7
pkgdesc="The compilation database Swiss army knife"
url="https://github.com/Sarcasm/compdb"
arch="noarch"
license="MIT"
-depends="py3-setuptools"
-subpackages="$pkgname-doc"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Sarcasm/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/"$_pkgname-$pkgver
replaces="py-compdb" # Backwards compat
@@ -24,7 +25,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
install -d "$pkgdir"/usr/share/doc/$_pkgname/
install -t "$pkgdir"/usr/share/doc/$_pkgname/ README.rst
}
diff --git a/testing/py3-confluent-kafka/APKBUILD b/testing/py3-confluent-kafka/APKBUILD
index 369fc87e731..8250513ed02 100644
--- a/testing/py3-confluent-kafka/APKBUILD
+++ b/testing/py3-confluent-kafka/APKBUILD
@@ -2,15 +2,17 @@
# Contributor: Gennady Feldman <gena01@gmail.com>
pkgname=py3-confluent-kafka
_pkgname=confluent-kafka-python
-pkgver=1.3.0
-pkgrel=0
+pkgver=1.8.2
+pkgrel=4
pkgdesc="Confluent's Apache Kafka Python clien"
url="https://github.com/confluentinc/confluent-kafka-python"
-arch="all !x86 !mips !mips64" # Restricted by py3-fastavro
+arch="all !x86" # Restricted by py3-fastavro
license="Apache-2.0"
-depends="py3-six py3-avro py3-fastavro py3-requests"
+depends="py3-avro py3-fastavro py3-jsonschema py3-protobuf py3-requests"
makedepends="py3-setuptools python3-dev librdkafka-dev>=1.0.1"
-checkdepends="py3-pytest"
+checkdepends="py3-pytest py3-trivup"
+options="!check" # missing deps
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/confluentinc/confluent-kafka-python/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -20,10 +22,13 @@ build() {
check() {
python3 setup.py build_ext --inplace
- PYTHONPATH=${PWD} python3 -m pytest -v tests
+ PYTHONPATH=. python3 -m pytest -v tests
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm "$pkgdir"/usr/LICENSE.txt
}
-sha512sums="7b58dd5d96ebed5f72e2cea17338fad61154bd1917a9254fb6e617e66bb382824102275459deb9048fbf74927cf79eea6cc8c9a27b6b8c1311c62f23c2e809bb py3-confluent-kafka-1.3.0.tar.gz"
+sha512sums="
+6db66371b7cac822aafeaa4acb491556d9a866f8502d76e2acfe52d18b282caab338cd3f51f84845eab2ec5b2c44ed80426a7ad8afd0314a8a5ddc1a9299d693 py3-confluent-kafka-1.8.2.tar.gz
+"
diff --git a/testing/py3-convertdate/APKBUILD b/testing/py3-convertdate/APKBUILD
deleted file mode 100644
index 9f773dc72b8..00000000000
--- a/testing/py3-convertdate/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-convertdate
-pkgver=2.2.1
-pkgrel=1
-pkgdesc="Converts between Gregorian dates and other calendar systems"
-url="https://github.com/fitnr/convertdate"
-arch="noarch"
-license="MIT"
-depends="python3 py3-tz py3-pymeeus"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/c/convertdate/convertdate-$pkgver.tar.gz"
-options="!check" # No tests in pypi package
-builddir="$srcdir/convertdate-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="bf6e5db3d860fb5118b19a1f6a6380eff9b05cbf0a754ed8bb9a360b0cd09547ca03df6e6dd834397d2c02c8a2de969402c5052e31093b65315427c8428d148b convertdate-2.2.1.tar.gz"
diff --git a/testing/py3-cookiecutter/APKBUILD b/testing/py3-cookiecutter/APKBUILD
new file mode 100644
index 00000000000..44274f3317a
--- /dev/null
+++ b/testing/py3-cookiecutter/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-cookiecutter
+pkgver=2.6.0
+pkgrel=1
+pkgdesc="A command-line utility that creates projects from project templates"
+url="https://github.com/cookiecutter/cookiecutter"
+arch="noarch"
+license="BSD-3-Clause"
+depends="
+ bash
+ py3-arrow
+ py3-binaryornot
+ py3-click
+ py3-freezegun
+ py3-jinja2
+ py3-pyaml
+ py3-requests
+ py3-rich
+ py3-slugify
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+ py3-pytest-mock
+ "
+subpackages="$pkgname-doc $pkgname-pyc"
+source="py3-cookiecutter-$pkgver.tar.gz::https://github.com/cookiecutter/cookiecutter/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/cookiecutter-$pkgver"
+
+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
+
+ install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+619be103bb831cbe9c50c4fa5114d6151a462a29a233f8999305403dda449f90a5900940a2b9d98433a8cdd3dbad421afe6feded42f4bcb6ee83523570ed2c1e py3-cookiecutter-2.6.0.tar.gz
+"
diff --git a/testing/py3-cookies/APKBUILD b/testing/py3-cookies/APKBUILD
deleted file mode 100644
index 1ff4fe78d4c..00000000000
--- a/testing/py3-cookies/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer:
-pkgname=py3-cookies
-pkgver=2.2.1
-pkgrel=3
-pkgdesc="generate and validate cookies check digits"
-options="!check" # test_encoding_assumptions fails
-url="https://pypi.python.org/pypi/cookies/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-amqp"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/c/cookies/cookies-$pkgver.tar.gz"
-builddir="$srcdir/cookies-$pkgver"
-
-replaces="py-cookies" # Backwards compatibility
-provides="py-cookies=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="76f362a9a1d74b87c90c5b91ad806d872612d31f487e4067a627409316f6099602c9e5a429f85ce20adcb0a7b63dd131b9e1ecc5c0c6444d1569367432a719de cookies-2.2.1.tar.gz"
diff --git a/testing/py3-coreapi/APKBUILD b/testing/py3-coreapi/APKBUILD
index 9d0a45bb0d5..d1afe2e66e8 100644
--- a/testing/py3-coreapi/APKBUILD
+++ b/testing/py3-coreapi/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-coreapi
_pkgname=python-client
pkgver=2.3.3
-pkgrel=1
-pkgdesc="Python3 client library for Core API"
+pkgrel=8
+pkgdesc="client library for Core API"
url="https://github.com/core-api/python-client"
arch="noarch"
license="BSD-3-Clause"
-depends="py3-setuptools py3-coreschema py3-requests py3-itypes py3-uritemplate"
+depends="py3-coreschema py3-requests py3-itypes py3-uritemplate py3-setuptools"
checkdepends="py3-pytest py3-coverage"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/core-api/python-client/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -22,7 +23,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="aeae3ace84c0ce61552236b83db28e47492f5ac17a0e216e1a8eeddaf67270b94127f7a40f8a37cc5051abe097555adfd690a7e6c8801524ca77c916bd451ab8 py3-coreapi-2.3.3.tar.gz"
diff --git a/testing/py3-crc16/APKBUILD b/testing/py3-crc16/APKBUILD
index 16d82f978ff..e7d65953671 100644
--- a/testing/py3-crc16/APKBUILD
+++ b/testing/py3-crc16/APKBUILD
@@ -3,26 +3,28 @@
pkgname=py3-crc16
_pkgname=crc16
pkgver=0.1.1
-pkgrel=3
-pkgdesc="A Python library for calculating CRC16"
-url="https://code.google.com/p/pycrc16/"
+pkgrel=10
+pkgdesc="Python library for calculating CRC16"
+url="https://github.com/gtrafimenkov/pycrc16"
arch="all"
license="LGPL-3.0-or-later"
-replaces="py-crc16" # for backwards compatibility
+replaces="py-crc16" # for backwards compatibility
provides="py-crc16=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-setuptools 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
build() {
- cd "$builddir"
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="45d5e8e13b1ac5f885b40516872a9233514f09aa8990915904b214eec2ef6084016f8f0c15bb411aaa1ffc32e8207020916f723e48eee726a7e6989901c9e65d crc16-0.1.1.tar.gz"
diff --git a/testing/py3-cssselect/APKBUILD b/testing/py3-cssselect/APKBUILD
deleted file mode 100644
index 36cdc32cd76..00000000000
--- a/testing/py3-cssselect/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-cssselect
-_pkgname=cssselect
-pkgver=1.1.0
-pkgrel=1
-pkgdesc="Library for parsing CSS3 selectors and translating them to XPath 1.0"
-url="https://github.com/scrapy/cssselect"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-lxml"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/scrapy/cssselect/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b33bca6a026f4de37b75606fd238dbd170b57d06288fbff3ea97ce79685a99af275fb8522b04ea9d6693aba5a18541d70b657191fdad881be79718bcf2e7655c cssselect-1.1.0.tar.gz"
diff --git a/testing/py3-cssselect2/APKBUILD b/testing/py3-cssselect2/APKBUILD
deleted file mode 100644
index 74237f8fc6e..00000000000
--- a/testing/py3-cssselect2/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Drew DeVault <sir@cmpwn.com>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-cssselect2
-_pyname=cssselect2
-pkgver=0.3.0
-pkgrel=0
-pkgdesc="CSS selectors for Python ElementTree"
-url="https://pypi.org/projects/cssselect2/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-tinycss2"
-makedepends="py3-setuptools py3-pytest"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="
- https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
- tests.patch
-"
-builddir="$srcdir"/$_pyname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ae59314654d1c1ddf982b77521de7743d1496145a1367f51e02b6067d6757940e7ccb50b67959630f472972473a1e87cec8dfbc8eeb68ad5f16465a36b1447be cssselect2-0.3.0.tar.gz
-81fe8c58ca2a872a3bbb56be067f6140e6c43bdbab10957d66f6f79c3350b133be08a2a813f62ad64361f2475712bd06837e43e5002cf48f672c7027dbab2028 tests.patch"
diff --git a/testing/py3-cssselect2/tests.patch b/testing/py3-cssselect2/tests.patch
deleted file mode 100644
index 1f16fd14c12..00000000000
--- a/testing/py3-cssselect2/tests.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index f7abbc2..acbe7b3 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -42,9 +42,6 @@ install_requires =
- webencodings
- tests_require =
- pytest-runner
-- pytest-cov
-- pytest-flake8
-- pytest-isort
- python_requires = >= 3.5
-
- [options.package_data]
-@@ -57,9 +54,6 @@ doc =
- sphinx_rtd_theme
- test =
- pytest-runner
-- pytest-cov
-- pytest-flake8
-- pytest-isort
-
- [bdist_wheel]
- python-tag = py3
-@@ -72,7 +66,7 @@ build-dir = docs/_build
- test = pytest
-
- [tool:pytest]
--addopts = --flake8 --isort cssselect2
-+addopts = cssselect2
- norecursedirs = build dist .cache .eggs .git
-
- [coverage:run]
diff --git a/testing/py3-cssutils/APKBUILD b/testing/py3-cssutils/APKBUILD
index f1243fff333..3f8e0fe3dd7 100644
--- a/testing/py3-cssutils/APKBUILD
+++ b/testing/py3-cssutils/APKBUILD
@@ -1,23 +1,39 @@
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-cssutils
_pkgname=cssutils
-pkgver=1.0.2
-pkgrel=2
-pkgdesc="A CSS Cascading Style Sheets library for Python"
+pkgver=2.9.0
+pkgrel=0
+pkgdesc="CSS Cascading Style Sheets library for Python"
url="http://cthedot.de/cssutils/"
arch="noarch"
license="LGPL-3.0-or-later"
-depends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-setuptools py3-setuptools_scm py3-wheel"
+checkdepends="py3-pytest py3-jaraco.test"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/c/cssutils/cssutils-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
- python3 setup.py build
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ 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 cssutils/tests
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/cssutils*.whl
+
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/cssutils/tests
}
-sha512sums="4988893875a03923d3127e334654799e5c2ebcdc0a7f5b3fb5c9ab27d1b331caa5bf197161312a298531e0757843aa3259ceba5fa19947353eea24a5da53ceda cssutils-1.0.2.tar.gz"
+sha512sums="
+d13d53b3e4f133afb5b72faba1e41a95cf2b146efb075dd3b328fc424eccd371194e1e14fd9e607b207b5c7d473e64f1e4c63975173d8491fa8036a16dc94d38 cssutils-2.9.0.tar.gz
+"
diff --git a/testing/py3-cstruct/APKBUILD b/testing/py3-cstruct/APKBUILD
new file mode 100644
index 00000000000..960cf56f598
--- /dev/null
+++ b/testing/py3-cstruct/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-cstruct
+pkgver=5.3
+pkgrel=1
+pkgdesc="C-style structs for Python"
+url="https://github.com/andreax79/python-cstruct"
+license="MIT"
+arch="noarch !s390x" # test_union_unpack test fails on s390x
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/andreax79/python-cstruct/archive/v$pkgver/py3-cstruct-$pkgver.tar.gz"
+builddir="$srcdir/python-cstruct-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/cstruct-$pkgver-py2.py3-none-any.whl
+}
+
+sha512sums="
+71ad411c6733676c165c9724554a7c1b5f56921ac925020817d812b53b1dfcc9a30d794e8aa8da75bae144e3d659a7426034b5cced4262a699e4626e287b3790 py3-cstruct-5.3.tar.gz
+"
diff --git a/testing/py3-cucumber-tag-expressions/APKBUILD b/testing/py3-cucumber-tag-expressions/APKBUILD
new file mode 100644
index 00000000000..4d71d0a74f6
--- /dev/null
+++ b/testing/py3-cucumber-tag-expressions/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-cucumber-tag-expressions
+pkgver=6.0.0
+pkgrel=1
+pkgdesc="Cucumber tag expression parser"
+url="https://github.com/cucumber/tag-expressions"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-html
+ py3-yaml
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cucumber/tag-expressions/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/tag-expressions-$pkgver/python"
+
+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="
+9b976cab730420921cd7344c764ae5af0b594099e49b25416632d8e97a9ff551d9e3f042f99d47335807fe2fa3713e32ebfbf14a03b110bedc1b520db2e4fe2f py3-cucumber-tag-expressions-6.0.0.tar.gz
+"
diff --git a/testing/py3-curio/APKBUILD b/testing/py3-curio/APKBUILD
deleted file mode 100644
index 76d16e19777..00000000000
--- a/testing/py3-curio/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-curio
-pkgver=1.2
-pkgrel=0
-pkgdesc="Curio is a coroutine-based library for concurrent systems programming"
-url="https://github.com/dabeaz/curio"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools py3-sphinx"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/c/curio/curio-$pkgver.tar.gz"
-#options="!check" # No tests
-builddir="$srcdir/curio-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest -m "not internet"
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="8a155f3d0c5512184ed4019edf5f33bfe7597ffdef1a6b19d82b42fe0317b80006d57658d69b422a320f49f9f1b6294faba6c042b7c4258538f001a9792acb8a curio-1.2.tar.gz"
diff --git a/testing/py3-cvxpy/APKBUILD b/testing/py3-cvxpy/APKBUILD
new file mode 100644
index 00000000000..27405ee8c75
--- /dev/null
+++ b/testing/py3-cvxpy/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=py3-cvxpy
+pkgver=1.2.1
+pkgrel=4
+pkgdesc="a Python-embedded modeling language for convex optimization problems"
+url="https://github.com/cvxpy/cvxpy"
+arch="all"
+license="Apache-2.0"
+depends="python3 py3-numpy py3-scipy py3-toolz py3-ecos py3-scs"
+makedepends="py3-setuptools py3-numpy-dev python3-dev"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="cvxpy-$pkgver.tar.gz::https://github.com/cvxpy/cvxpy/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/cvxpy-$pkgver"
+options="!check"
+
+case "$CARCH" in
+ x86|armv7|armhf);;
+ *) depends="$depends py3-osqp";;
+esac
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+faf07c94cb3361eb196ba05d77733b1be3086046252097e272d4f0b4694907974b026328f9d6e82884fbd81917cd0535f1c466de1d325c5bb6026694c9ff7ee4 cvxpy-1.2.1.tar.gz
+"
diff --git a/testing/py3-cymem/APKBUILD b/testing/py3-cymem/APKBUILD
deleted file mode 100644
index 92472301c94..00000000000
--- a/testing/py3-cymem/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-cymem
-pkgver=2.0.3
-pkgrel=0
-pkgdesc="Cython memory pool for RAll-style memory management"
-url="https://github.com/explosion/cymem"
-arch="all"
-license="MIT"
-depends="python3"
-makedepends="python3-dev py3-setuptools cython"
-checkdepends="py3-pytest"
-subpackages="$pkgname-doc"
-source="cymem-$pkgver.tar.gz::https://github.com/explosion/cymem/archive/v$pkgver.tar.gz"
-builddir="$srcdir/cymem-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$(echo $PWD/build/lib.*)" pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="e80f1af0be0399c93e9dbddb9c132513ca3e17b14337662097cb36edf606fb7fd0a490d348d44d3f905aa274a9c8f6a5a8008099d0814c0a462775d357bdae26 cymem-2.0.3.tar.gz"
diff --git a/testing/py3-d2to1/APKBUILD b/testing/py3-d2to1/APKBUILD
deleted file mode 100644
index dffad98ab4c..00000000000
--- a/testing/py3-d2to1/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-d2to1
-_pkgname=d2to1
-pkgver=0.2.12
-pkgrel=1
-pkgdesc="Allows using distutils2-like setup.cfg files with setup.py"
-url="https://pypi.org/project/d2to1"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools python3-dev"
-checkdepends="py3-nose"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/embray/d2to1/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3f5376c1a6c9459e8aa062ff92ed4ee5e840ca48cffb92bd9373bc4e2bc61c423e8b9b9cdb11f848446a84bed9010b99f28b105a28c39a6a74afb918049fa9c6 d2to1-0.2.12.tar.gz"
diff --git a/testing/py3-daemon/APKBUILD b/testing/py3-daemon/APKBUILD
new file mode 100644
index 00000000000..194bf31f278
--- /dev/null
+++ b/testing/py3-daemon/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=py3-daemon
+pkgver=2.3.2
+pkgrel=3
+pkgdesc="Library to implement a well-behaved Unix daemon process"
+url="https://pagure.io/python-daemon"
+options="!check" # Has lots of dependencies
+arch="noarch"
+license="Apache-2.0 AND GPL-3.0-or-later"
+depends="py3-setuptools py3-lockfile"
+makedepends="py3-docutils"
+subpackages="$pkgname-pyc"
+source="https://pypi.io/packages/source/p/python-daemon/python-daemon-$pkgver.tar.gz"
+builddir="$srcdir/python-daemon-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # Remove unnecessary dependency for building, twine is
+ # required for uploading the package to pypi which we don't
+ # do
+ sed -e '/twine/d' -i setup.py
+}
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir"
+}
+
+sha512sums="
+d9f6e6c376a496fae96bd9efed0a56d00a137617a3d1d5ef74802ef176bc813bb1d49bbb9164cdbec03213529f944b32b257bcc64283abfa4a3522ff00826bfd python-daemon-2.3.2.tar.gz
+"
diff --git a/testing/py3-daiquiri/APKBUILD b/testing/py3-daiquiri/APKBUILD
index 04ce03f800d..4283fc38cdf 100644
--- a/testing/py3-daiquiri/APKBUILD
+++ b/testing/py3-daiquiri/APKBUILD
@@ -1,28 +1,44 @@
# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-daiquiri
-pkgver=2.1.1
-pkgrel=0
+pkgver=3.2.5.1
+pkgrel=1
pkgdesc="Library to configure Python logging easily"
-url="https://github.com/jd/daiquiri"
+url="https://github.com/Mergifyio/daiquiri"
arch="noarch"
license="Apache-2.0"
depends="py3-json-logger"
-makedepends="py3-setuptools_scm"
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ "
checkdepends="py3-mock py3-pytest"
-source="https://files.pythonhosted.org/packages/source/d/daiquiri/daiquiri-$pkgver.tar.gz"
-builddir="$srcdir/"daiquiri-$pkgver
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Mergifyio/daiquiri/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/daiquiri-$pkgver"
build() {
- python3 setup.py build
+ export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
+ 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
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/daiquiri/tests
}
-sha512sums="e36b9cd0c95b3e3c5e6f3c075a613ab618ef373698311c9cd0f78607fc9fec825b27f78f303c5ec1f858a056794497a454b14849b6a463f8584d200924177d44 daiquiri-2.1.1.tar.gz"
+sha512sums="
+7cb085ed5a27a8e13878413a2ec99e93a5cb984be2e702cf1516276f6418c15c62868ddf1bd8c1e634836f6377abc5ad9f775e268b72e0309f5ed52ad0001f56 py3-daiquiri-3.2.5.1.tar.gz
+"
diff --git a/testing/py3-dask/APKBUILD b/testing/py3-dask/APKBUILD
deleted file mode 100644
index 7a022a7f005..00000000000
--- a/testing/py3-dask/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-dask
-pkgver=2.17.2
-pkgrel=0
-pkgdesc="Parallel computing with task scheduling"
-url="https://dask.org/"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-partd
-license="BSD-3-Clause"
-depends="python3 py3-toolz py3-numpy py3-pandas py3-fsspec py3-partd py3-yaml"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-runner"
-source="https://pypi.python.org/packages/source/d/dask/dask-$pkgver.tar.gz"
-builddir="$srcdir/dask-$pkgver"
-
-case "$CARCH" in
- # Python segfaults while running the tests
- ppc64le) options="$options !check" ;;
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # test_parquet.py requires not available packages
- pytest --ignore=dask/dataframe/io/tests/test_parquet.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="6e94179f417b833283b9eb9b619a7a4ed340cb32e767158a5cf6b8f413de77093fbd8f1a53face30e09538fd0809f3fea5d534d5c1da5711ab8b461a2a2157ca dask-2.17.2.tar.gz"
diff --git a/testing/py3-dataclasses-json/APKBUILD b/testing/py3-dataclasses-json/APKBUILD
new file mode 100644
index 00000000000..59e5b533f7f
--- /dev/null
+++ b/testing/py3-dataclasses-json/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-dataclasses-json
+_pkgname=dataclasses-json
+pkgver=0.6.4
+pkgrel=1
+pkgdesc="Provides a simple API for encoding and decoding dataclasses to and from JSON."
+url="https://github.com/lidatong/dataclasses-json"
+arch="all"
+license="MIT"
+depends="python3 py3-marshmallow py3-marshmallow-enum py3-typing_inspect py3-stringcase"
+makedepends="py3-gpep517 py3-poetry-core py3-installer py3-poetry-dynamic-versioning"
+checkdepends="py3-pytest py3-hypothesis py3-mypy"
+subpackages="$pkgname-pyc"
+source="dataclasses-json-$pkgver.tar.gz::https://github.com/lidatong/dataclasses-json/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ export POETRY_DYNAMIC_VERSIONING_BYPASS="$pkgver"
+ 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="
+78c94055e55703266de19fe0f712ca4945443f124cc75469e7b68b32cd13d0e1effcc5450f7539d9cde42698b38f4e749a912ef7bf39af4c13981a36b4234746 dataclasses-json-0.6.4.tar.gz
+"
diff --git a/testing/py3-dataclasses-serialization/APKBUILD b/testing/py3-dataclasses-serialization/APKBUILD
new file mode 100644
index 00000000000..4d4ee4ac1ae
--- /dev/null
+++ b/testing/py3-dataclasses-serialization/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=py3-dataclasses-serialization
+pkgver=1.3.1
+pkgrel=3
+pkgdesc="Serialize/deserialize Python dataclasses"
+url="https://github.com/madman-bob/python-dataclasses-serialization"
+arch="noarch"
+license="MIT"
+depends="
+ py3-more-properties
+ py3-toolz
+ py3-toposort
+ py3-typing_inspect
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest-forked
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/madman-bob/python-dataclasses-serialization/archive/refs/tags/$pkgver.tar.gz
+ $pkgname-fix-deserialize.patch::https://github.com/madman-bob/python-dataclasses-serialization/commit/00fbd280034abeff277523a6579f14d10e8427a2.diff
+ root.patch
+ "
+builddir="$srcdir/python-dataclasses-serialization-$pkgver/"
+
+prepare() {
+ default_prepare
+
+ # fixup location
+ mv pypi_upload/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
+ # https://github.com/madman-bob/python-dataclasses-serialization/issues/16
+ .testenv/bin/python3 -m pytest -n auto --forked \
+ -k 'not test_json_serialization_types'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+5dc3569675749c82aaf1d9a8e2507fa9a2ee2bb14d6cb082fde15a108e4651afbdb0b1d6c8ca60dca839206abfca2c10b0fc9efe4867e521c1522a7a68b8a7c1 py3-dataclasses-serialization-1.3.1.tar.gz
+4febeff6f08f12267fdceb1243449099c16002c3731cdde80a841a3d63fcb27333ae871fd8d05f45ee8881eccc77b69e8bc6b737ccb49d3c55cb008b49e32762 py3-dataclasses-serialization-fix-deserialize.patch
+78c1714b7373586fcf67adc5dd3ec39b42f9f4cd03cad705d568cbc45de10f506e04a76d112b5cc6ea9b3e0e110f32dd4b9163a3eddeecc1fc94237887b4ed45 root.patch
+"
diff --git a/testing/py3-dataclasses-serialization/root.patch b/testing/py3-dataclasses-serialization/root.patch
new file mode 100644
index 00000000000..19200dbd54e
--- /dev/null
+++ b/testing/py3-dataclasses-serialization/root.patch
@@ -0,0 +1,15 @@
+diff --git a/pypi_upload/setup.py b/pypi_upload/setup.py
+index cd56011..427bcc9 100644
+--- a/pypi_upload/setup.py
++++ b/pypi_upload/setup.py
+@@ -6,8 +6,8 @@ from pathlib import Path
+ from setuptools import find_packages, setup
+ from setuptools.command.install import install
+
+-project_root = Path(__file__).parents[1]
+-
++import pathlib
++project_root = pathlib.Path().resolve()
+
+ class VerifyCommand(install):
+ """Custom command to verify module integrity"""
diff --git a/testing/py3-dateparser/APKBUILD b/testing/py3-dateparser/APKBUILD
new file mode 100644
index 00000000000..6a342fb24f3
--- /dev/null
+++ b/testing/py3-dateparser/APKBUILD
@@ -0,0 +1,68 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-dateparser
+_pyname=${pkgname#py3-}
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Python parser for human readable dates"
+url="https://github.com/scrapinghub/dateparser"
+arch="noarch"
+license="BSD-3-Clause"
+depends="
+ python3
+ py3-dateutil
+ py3-regex
+ py3-tz
+ py3-tzlocal
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-fasttext
+ py3-gitpython
+ py3-langdetect
+ py3-parameterized
+ py3-parsel
+ py3-pytest
+ py3-requests
+ py3-ruamel.yaml
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/scrapinghub/dateparser/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ _test_filter='not test_parsing_date_should_fail_using_datetime_strptime_if_locale_is_non_english'
+ # test_custom_language_detect_fast_text fails due to wrong file format
+ case "$CARCH" in
+ s390x)
+ _test_filter="$_test_filter and not test_custom_language_detect_fast_text"
+ ;;
+ esac
+
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+
+ # test_hijri.py: needs hijri_converter, test_jalali.py: convertdate
+ .testenv/bin/python3 -m pytest tests \
+ -k "$_test_filter" \
+ --ignore tests/test_hijri.py \
+ --ignore tests/test_jalali.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+2d37115f25c2076c4521b77b89ef1cff3cd0a5233c45beb00d78a5c9b1a384dcd993ff7cdd1f77db95a53ce566cf7d709d46ffa2e63eb468ac954fda178a5b6e py3-dateparser-1.2.0.tar.gz
+"
diff --git a/testing/py3-daterangestr/APKBUILD b/testing/py3-daterangestr/APKBUILD
index b4be55662bd..7594fbaa423 100644
--- a/testing/py3-daterangestr/APKBUILD
+++ b/testing/py3-daterangestr/APKBUILD
@@ -3,24 +3,28 @@
pkgname=py3-daterangestr
_pkgname=daterangestr
pkgver=0.0.3
-pkgrel=2
+pkgrel=8
pkgdesc="Utility to convert strings to start and end datetime tuples"
url="https://github.com/marians/py-daterangestr"
arch="noarch"
license="MIT"
-depends="python3"
+makedepends="py3-setuptools 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
-replaces="py-daterangestr" # for backwards compatibility
+replaces="py-daterangestr" # for backwards compatibility
provides="py-daterangestr=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="eeba3792cb7e9ad4e308821866d4f555829267a7790d6bedc8ad95b2dbcf6235f4181947a63d55d052dcdfac1f1c0e550e8f4e41ec5a851d75b47040246c05a6 daterangestr-0.0.3.tar.gz"
diff --git a/testing/py3-ddt/APKBUILD b/testing/py3-ddt/APKBUILD
deleted file mode 100644
index 17f2287b593..00000000000
--- a/testing/py3-ddt/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Maintainer: prspkt <prspkt@protonmail.com>
-# Contributor: prspkt <prspkt@protonmail.com>
-pkgname=py3-ddt
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="Python library to multiply test cases"
-url="https://github.com/txels/ddt"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="
- py3-mock
- py3-nose
- py3-pytest
- py3-yaml
- "
-source="https://files.pythonhosted.org/packages/source/d/ddt/ddt-$pkgver.tar.gz"
-builddir="$srcdir/ddt-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b1ccbd3588c40d5ceb304b3a5e38c55cc6dbda690d1e9a93d1b7644f9aef155156020bcee2534df436fbea22b59e99d9bfcebe4e7a8fd6098a9d25a7a26dc9b1 ddt-1.4.1.tar.gz"
diff --git a/testing/py3-delegator/APKBUILD b/testing/py3-delegator/APKBUILD
deleted file mode 100644
index 9f6d9dea553..00000000000
--- a/testing/py3-delegator/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-delegator
-pkgver=0.1.1
-pkgrel=1
-pkgdesc="Subprocesses for Humans 2.0"
-url="https://github.com/amitt001/delegator.py"
-arch="noarch"
-license="MIT"
-depends="python3 py3-pexpect"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/d/delegator.py/delegator.py-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/delegator.py-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="7af16f553fafc272056b1bd715ff41c821e0eeccfd6c5e5dcec819333373c9f7daaa95afe9b9aa796244f280869ccb1ddacb075b9fa196ed47a6699096abc143 delegator.py-0.1.1.tar.gz"
diff --git a/testing/py3-dep-logic/APKBUILD b/testing/py3-dep-logic/APKBUILD
new file mode 100644
index 00000000000..5e283fd71bd
--- /dev/null
+++ b/testing/py3-dep-logic/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-dep-logic
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Python dependency specifications supporting logical operations"
+url="https://github.com/pdm-project/dep-logic"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-packaging"
+makedepends="py3-gpep517 py3-pdm-backend py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/pdm-project/dep-logic/archive/$pkgver/py3-dep-logic-$pkgver.tar.gz"
+builddir="$srcdir/dep-logic-$pkgver"
+
+build() {
+ export PDM_BUILD_SCM_VERSION=$pkgver
+ 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="
+a58cd7b6a08de8e56fcb03aad13ac4ce864a650066de802268b1bb6f1c97835d3197feed982666cbc6113104a6b5aa0782adc8bd6fed9ed8723eb040206442f9 py3-dep-logic-0.2.0.tar.gz
+"
diff --git a/testing/py3-dexml/APKBUILD b/testing/py3-dexml/APKBUILD
index d945a7dabed..127f8f7fca7 100644
--- a/testing/py3-dexml/APKBUILD
+++ b/testing/py3-dexml/APKBUILD
@@ -3,26 +3,33 @@
pkgname=py3-dexml
_pkgname=dexml
pkgver=0.5.1
-pkgrel=3
+pkgrel=9
pkgdesc="A simple Object-XML mapper for Python"
url="https://pypi.org/project/dexml"
arch="noarch"
license="MIT"
-replaces="py-dexml" # for backwards compatibility
+replaces="py-dexml" # for backwards compatibility
provides="py-dexml=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
-makedepends="python3-dev py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="python3-dev py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ py3.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
build() {
- cd "$builddir"
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="b8ac2b9f875ac7cf699eb9ee17adb8678ed8d4a796130bbb60f05431207adb68f490b7a7a41600acbc16a3cc08d55f22d91a13e53fe3d835a322709ee3446c9f dexml-0.5.1.tar.gz"
+sha512sums="
+b8ac2b9f875ac7cf699eb9ee17adb8678ed8d4a796130bbb60f05431207adb68f490b7a7a41600acbc16a3cc08d55f22d91a13e53fe3d835a322709ee3446c9f dexml-0.5.1.tar.gz
+de2ea4ce179d64c0bb3bf66a40739b4f1b01504b43e74666f60882d86da83d22edbe4606bd24c9605947ac677cc69169e5270df8574b8c9737830959bb16300f py3.patch
+"
diff --git a/testing/py3-dexml/py3.patch b/testing/py3-dexml/py3.patch
new file mode 100644
index 00000000000..bc7394c01d0
--- /dev/null
+++ b/testing/py3-dexml/py3.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 285a258..2521bb6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -20,8 +20,6 @@ except ImportError:
+ from distutils.core import setup
+ else:
+ setup_kwds["test_suite"] = "dexml.test"
+- if sys.version_info > (3,):
+- setup_kwds["use_2to3"] = True
+
+
+ # Extract the docstring and version declaration from the module.
diff --git a/testing/py3-dict2xml/APKBUILD b/testing/py3-dict2xml/APKBUILD
new file mode 100644
index 00000000000..df7e66e5fe5
--- /dev/null
+++ b/testing/py3-dict2xml/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-dict2xml
+_pyname=dict2xml
+pkgver=1.7.5
+pkgrel=2
+pkgdesc="Small utility to convert a python dictionary into an XML string"
+url="https://github.com/delfick/python-dict2xml"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-hatchling py3-gpep517 py3-installer"
+checkdepends="py3-pytest py3-nose-of-yeti"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/d/dict2xml/dict2xml-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/dict2xml*.whl
+}
+
+sha512sums="
+88a77fcdc2ec320ba1668b27da4aacfcfc817090aebabc01fce76bff51b316166a0cc1f053884e8012a28e7118449f901465703869245dc662f29cee9665157e dict2xml-1.7.5.tar.gz
+"
diff --git a/testing/py3-dill/APKBUILD b/testing/py3-dill/APKBUILD
deleted file mode 100644
index 82c1f4c5d9d..00000000000
--- a/testing/py3-dill/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-dill
-_pyname=dill
-pkgver=0.3.1.1
-pkgrel=1
-pkgdesc="Python serializer supporting a broader range of types than pickle"
-url="https://pypi.org/projects/dill/"
-arch="noarch !s390x !mips !mips64" # broken on big-endian
-license="BSD-3-Clause"
-makedepends="python3 py3-setuptools"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir=$srcdir/$_pyname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- export PYTHONPATH="$(pwd):$PYTHONPATH"
- for t in tests/*.py
- do
- echo "$t"
- python3 "$t"
- done
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e61610451972522316d7ed6bc8287e38521fcd2e6736b43200ae498f24596994caec92313be1da71cf1b536fbbe01505673fc8018bfcbaf7705147a294565ab9 dill-0.3.1.1.tar.gz"
diff --git a/testing/py3-discid/APKBUILD b/testing/py3-discid/APKBUILD
index 08f749ed299..90cd8f86ee2 100644
--- a/testing/py3-discid/APKBUILD
+++ b/testing/py3-discid/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-discid
_pyname=discid
pkgver=1.2.0
-pkgrel=0
+pkgrel=5
pkgdesc="python bindings for libdiscid"
url="https://python-discid.readthedocs.io/en/latest/"
arch="noarch"
license="LGPL-3.0-or-later"
depends="python3 libdiscid"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
@@ -22,6 +23,6 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="d004b7e4b5416310c8fb21bb9e686b5e5f5651366fb78785e299dcd17aaa99e7c2e115cc1c5175d8fbf853d3f7b8813555be32bf387d7ce82271b5e57bdff0dd discid-1.2.0.tar.gz"
diff --git a/testing/py3-discogs-client/APKBUILD b/testing/py3-discogs-client/APKBUILD
index 12eba84453d..488d3d40218 100644
--- a/testing/py3-discogs-client/APKBUILD
+++ b/testing/py3-discogs-client/APKBUILD
@@ -1,17 +1,18 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-discogs-client
-_pkgname=discogs-client
-pkgver=2.2.2
-pkgrel=3
-pkgdesc="Official Python API client for Discogs"
-url="https://github.com/discogs/discogs_client"
+_pyname=python3-discogs-client
+pkgver=2.7
+pkgrel=2
+pkgdesc="Joalla Python Discogs API Client"
+url="https://github.com/joalla/discogs_client"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-oauthlib py3-requests py3-six"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+depends="py3-oauthlib py3-requests python3 py3-dateutil"
+makedepends="py3-dateutil py3-setuptools py3-yaml"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/python3-discogs-client/python3-discogs-client-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
replaces="py-discogs-client" # for backwards compatibility
provides="py-discogs-client=$pkgver-r$pkgrel" # for backwards compatibility
@@ -25,7 +26,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="cf08526f739216efa9ef628f28650c8074cd6ddb21e0ab5431a8c8864c1f2707f612b065baf6b2f907b7fa7cdf2cfe5905cbefddb02c6f8f1c7796b0631a2ba7 discogs-client-2.2.2.tar.gz"
+sha512sums="
+7bb43429d6ceb3bbf892b6a65d4d93f0a9ec1bb3535b62169d7e1e4ff0e5032963b2ad5753e381745559efd21ed9e875bfbe3f5260e26f7df5f4a344bedded4a python3-discogs-client-2.7.tar.gz
+"
diff --git a/testing/py3-diskcache/APKBUILD b/testing/py3-diskcache/APKBUILD
index f1298d7d8f6..489341364a3 100644
--- a/testing/py3-diskcache/APKBUILD
+++ b/testing/py3-diskcache/APKBUILD
@@ -1,16 +1,17 @@
# Contributor:
# Maintainer:
pkgname=py3-diskcache
-pkgver=4.1.0
+pkgver=5.6.3
pkgrel=1
pkgdesc="disk caching implementation"
options="!check" # test_incr_update_keyerror fails
-url="http://www.grantjenks.com/docs/diskcache/"
+url="https://grantjenks.com/docs/diskcache/"
arch="noarch"
license="MIT"
depends="python3"
makedepends="py3-setuptools"
checkdepends="py3-pytest py3-pytest-xdist py3-mock py3-django"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/grantjenks/python-diskcache/archive/v$pkgver.tar.gz"
builddir="$srcdir"/python-diskcache-$pkgver
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="3871e56fa9a50942e29e200df74d7f4312d21a0f51d6be2041ce71efd3c1d0c204cc1df5ac1f92825314c742bb48bf8b0a3929cee225055903953e095701c8e3 py3-diskcache-4.1.0.tar.gz"
+sha512sums="
+476d677d88212aa3f9a6e8d12c3e7076cc6a06973d703ed0b2c550b4b4e916b24fb7d8f33c7174854015886fab26e2707b134328d2bc3e144aef5510e7bc0f7c py3-diskcache-5.6.3.tar.gz
+"
diff --git a/testing/py3-distorm3/APKBUILD b/testing/py3-distorm3/APKBUILD
index f8a00f39aa0..8712395a4e5 100644
--- a/testing/py3-distorm3/APKBUILD
+++ b/testing/py3-distorm3/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=py3-distorm3
_pkgname=distorm3
-pkgver=3.4.1
-pkgrel=1
+pkgver=3.5.2
+pkgrel=5
pkgdesc="Disassembler Library For x86/AMD64"
-url="https://pypi.python.org/pypi/distorm3"
+url="https://pypi.org/project/distorm3"
arch="all"
license="BSD-3-Clause"
depends="python3"
-makedepends="py3-setuptools"
-source="https://github.com/gdabah/distorm/releases/download/v$pkgver/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-setuptools python3-dev"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/d/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-distorm3" # Backwards compatibility
@@ -24,4 +25,6 @@ package() {
python3 setup.py install --skip-build --prefix=/usr --root="$pkgdir"
}
-sha512sums="798c50616112e84cc4f04f67f799cb751970b792c8370528424aa437330dc3a77239c275f145215e31ca5370256ac2cb926f7cd98bb0fc4e48f97f12f873f1d9 distorm3-3.4.1.tar.gz"
+sha512sums="
+bc08a12f87e6bf22ff9bbba8a34b88b0988b80ddec405c669ba5cd863545128f8b3df4b122a69f4849af3d08818c836b368332e6546871bdfee99e611b3f8d19 distorm3-3.5.2.tar.gz
+"
diff --git a/testing/py3-distributed/APKBUILD b/testing/py3-distributed/APKBUILD
deleted file mode 100644
index e3103691a29..00000000000
--- a/testing/py3-distributed/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-distributed
-pkgver=2.17.0
-pkgrel=0
-pkgdesc="A library for distributed computation"
-url="https://distributed.dask.org/"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-dask
-license="BSD-3-Clause"
-depends="python3"
-depends="py3-dask py3-yaml py3-tornado py3-tblib py3-click py3-cloudpickle py3-msgpack py3-psutil py3-sortedcontainers py3-zict"
-makedepends="py3-setuptools python3-dev linux-headers yaml-dev"
-checkdepends="py3-pytest py3-pytest-asyncio py3-requests py3-paramiko py3-arrow py3-h5py py3-scipy py3-lz4 py3-jsonschema"
-source="https://pypi.python.org/packages/source/d/distributed/distributed-$pkgver.tar.gz"
-# Tests require ipv6 stack which might not always be available yet
-# Net required for tests
-options="!check"
-builddir="$srcdir/distributed-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a46e8eca58f8c2e5f412188ad096f13a59333e64545830465d5d579c644209a2cc033a020613bf1d17ebb72ce504680f38bddaaae2f7708e2c83697a6a2b9f5c distributed-2.17.0.tar.gz"
diff --git a/testing/py3-django-auth-ldap/APKBUILD b/testing/py3-django-auth-ldap/APKBUILD
new file mode 100644
index 00000000000..f3c10d9e0d5
--- /dev/null
+++ b/testing/py3-django-auth-ldap/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
+# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
+pkgname=py3-django-auth-ldap
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=django-auth-ldap
+pkgver=4.8.0
+pkgrel=1
+pkgdesc="Django LDAP authentication backend"
+url="https://pypi.python.org/project/django-auth-ldap"
+# s390x | riscv64: test failure
+arch="noarch !s390x !riscv64"
+license="BSD"
+depends="py3-django py3-ldap"
+checkdepends="
+ py3-pytest
+ py3-pytest-django
+ py3-pytest-black
+ py3-isort
+ py3-flake8
+ openldap
+ openldap-back-mdb
+ openldap-clients
+ openldap-overlay-syncprov
+ "
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/django-auth-ldap/django-auth-ldap/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+subpackages="$pkgname-pyc"
+
+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 -Wa -b -m django test --settings tests.settings
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+559d6c0a556ccab2a0440866db9e1260b236e0bd4de92d07082660118b99886e7d362824cf0453de1f1d87ce1d5b5ab23d5181b8c970086d3a100ae32a29c482 py3-django-auth-ldap-4.8.0.tar.gz
+"
diff --git a/testing/py3-django-compress-staticfiles/APKBUILD b/testing/py3-django-compress-staticfiles/APKBUILD
new file mode 100644
index 00000000000..92e9c84d5d0
--- /dev/null
+++ b/testing/py3-django-compress-staticfiles/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+_pkgname=django-compress-staticfiles
+pkgname="py3-$_pkgname"
+pkgver=1.0.1_beta0
+pkgrel=4
+pkgdesc="Django static files storage backend inheriting from ManifestFilesMixin and StaticFilesStorage"
+url="https://github.com/armandtvz/django-compress-staticfiles"
+arch="noarch"
+license="GPL-3.0-only"
+depends="
+ py3-django
+ py3-brotli
+ py3-csscompressor
+"
+makedepends="py3-setuptools_scm"
+checkdepends="py3-django-utils-six"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-${pkgver//_beta/b}.tar.gz"
+builddir="$srcdir/$_pkgname-${pkgver//_beta/b}"
+options="!check" # requires py3-django-utils-six
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --root "$pkgdir"
+
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
+}
+
+sha512sums="
+f877e7cf6e1406743a5940f47cc5de8376fefb182e92864c1176cd94c2a88d135bcefbb8189a3d54ca51c30e8854b44fde43f47c5906eb9e50a04176332e26cc django-compress-staticfiles-1.0.1b0.tar.gz
+"
diff --git a/testing/py3-django-cors-headers/APKBUILD b/testing/py3-django-cors-headers/APKBUILD
deleted file mode 100644
index 4ab7756f88b..00000000000
--- a/testing/py3-django-cors-headers/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-django-cors-headers
-pkgver=3.3.0
-pkgrel=0
-pkgdesc="Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS)"
-options="!check" # Requires running django instance
-url="https://github.com/OttoYiu/django-cors-headers"
-arch="noarch"
-license="MIT"
-depends="py3-django"
-makedepends="py3-setuptools"
-checkdepends="py3-tz py3-mock py3-pytest py3-coverage py3-pytest-cov"
-source="https://files.pythonhosted.org/packages/source/d/django-cors-headers/django-cors-headers-$pkgver.tar.gz"
-builddir="$srcdir"/django-cors-headers-$pkgver
-
-build() {
- python3 setup.py --quiet build
-}
-
-check() {
- python3 runtests.py ./tests
-}
-
-package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d37016400a73d5130deabbedc9a185018d332a006c5a2f8238e7924fab493c0b3b5282e124a061b2d2b90dddd638554e4e277b4c8e8d9ad31168eeac523fe69e django-cors-headers-3.3.0.tar.gz"
diff --git a/testing/py3-django-debug-toolbar/APKBUILD b/testing/py3-django-debug-toolbar/APKBUILD
index 21f52c92cc9..b0974d344e1 100644
--- a/testing/py3-django-debug-toolbar/APKBUILD
+++ b/testing/py3-django-debug-toolbar/APKBUILD
@@ -1,17 +1,21 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-django-debug-toolbar
_pkgname=django-debug-toolbar
-pkgver=2.2
-pkgrel=0
+pkgver=4.3
+pkgrel=1
pkgdesc="Configurable set of panels that display various debug information about the current request/response"
options="!check" # Requires unpackaged Selenium python3 module
url="https://github.com/jazzband/django-debug-toolbar"
arch="noarch"
license="BSD-3-Clause"
depends="py3-django py3-sqlparse"
-makedepends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-hatchling
+ "
# options="!check" #no testsuite
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/jazzband/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -19,11 +23,16 @@ replaces="py-django-debug-toolbar" # Backwards compatibility
provides="py-django-debug-toolbar=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py --quiet build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="5cd9e50852bd7efeb83879c5e9fe10fe6df5087b746e9cb2a0e13e66b3fe0a815a6eaea4b273258e7e682149bc29ad8979268d2be263539c522624e3f16aa5f5 py3-django-debug-toolbar-2.2.tar.gz"
+sha512sums="
+caa8563d38e8c96305828b7a07006ce2ee0afae099d70d75d332f2196fc3ffcf7f3848440ea22c00f2b918029477672a172e30714f6f73a630404175aef3b925 py3-django-debug-toolbar-4.3.tar.gz
+"
diff --git a/testing/py3-django-js-asset/APKBUILD b/testing/py3-django-js-asset/APKBUILD
index 08865eff8bb..bf98b4809ef 100644
--- a/testing/py3-django-js-asset/APKBUILD
+++ b/testing/py3-django-js-asset/APKBUILD
@@ -1,32 +1,45 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-django-js-asset
_pkgname=django-js-asset
-pkgver=1.2.2
-pkgrel=1
+pkgver=2.2
+pkgrel=2
pkgdesc="script tag with additional attributes for django.forms.Media"
url="https://github.com/matthiask/django-js-asset"
arch="noarch"
license="BSD-3-Clause"
depends="py3-django"
-makedepends="py3-setuptools"
-checkdepends="py3-coverage"
+makedepends="
+ py3-gpep517
+ py3-hatchling
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-coverage"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/matthiask/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # need more setup
replaces="py-django-js-asset" # Backwards compatibility
provides="py-django-js-asset=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py --quiet build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 tests/manage.py test -v 2 testapp
+ 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 --quiet install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="ad2c51399da9b5d75305c0fa257cc75496df3f6704a827a0d297a4d762712039c3ebd921afbe6e10672626f1badd8637728292dd700ba41c4192c95ec73095a9 py3-django-js-asset-1.2.2.tar.gz"
+sha512sums="
+d35f8f1b83726826e9092e7d33dc22d5b53df9f6c1a6a141d7928dfa9eaada3d13a5879b2ee65825b73a2b048e4d21528d462c6449a87d4c0b599501811a40fe py3-django-js-asset-2.2.tar.gz
+"
diff --git a/testing/py3-django-mptt/APKBUILD b/testing/py3-django-mptt/APKBUILD
index f09974d4eb6..ed15b7a845c 100644
--- a/testing/py3-django-mptt/APKBUILD
+++ b/testing/py3-django-mptt/APKBUILD
@@ -1,16 +1,17 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-django-mptt
_pkgname=django-mptt
-pkgver=0.11.0
-pkgrel=0
+pkgver=0.16
+pkgrel=2
pkgdesc="Utilities for implementing a modified pre-order traversal tree in django"
options="!check" # Requires running django instance
url="https://github.com/django-mptt/django-mptt"
arch="noarch"
license="MIT"
depends="py3-django py3-django-js-asset"
-makedepends="py3-setuptools"
+makedepends="py3-hatchling py3-gpep517"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/django-mptt/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -18,11 +19,16 @@ replaces="py-django-mptt" # Backwards compatibiity
provides="py-django-mptt=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py --quiet build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="0302fbdc759fe3e69c7adc3e785025c4c28931904c2b8904d43a3fdf1471ef1a83f18170f1db05dc3d4360e946c35db06900cf9c40b87562fba03240f9608da7 py3-django-mptt-0.11.0.tar.gz"
+sha512sums="
+98f40f2b51e8d48f6b872d6775968282d135ca60d13e9a36a811ef54506f957fa5abe3098e1f68476709d80966558db69809f3d2ff5f5a4a1a69c43931e4c141 py3-django-mptt-0.16.tar.gz
+"
diff --git a/testing/py3-django-rest-swagger/APKBUILD b/testing/py3-django-rest-swagger/APKBUILD
deleted file mode 100644
index 818d8ad69d4..00000000000
--- a/testing/py3-django-rest-swagger/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
-pkgname=py3-django-rest-swagger
-_pkgname=django-rest-swagger
-pkgver=2.2.0
-pkgrel=3
-pkgdesc="Swagger Documentation Generator for Django REST Framework"
-url="https://github.com/marcgibbons/django-rest-swagger"
-arch="noarch"
-license="BSD-2-Clause"
-depends="py3-django py3-django-rest-framework py3-core-api py3-openapi-codec
- py3-simplejson"
-makedepends="py3-setuptools"
-checkdepends="py3-tz py3-jinja2 py3-uritemplate"
-source="$pkgname-$pkgver.tar.gz::https://github.com/marcgibbons/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-django-rest-swagger" # Backwards compatibility
-provides="py-django-rest-swagger=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py --quiet build
-}
-
-package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- python3 runtests.py
-}
-
-sha512sums="1838f5cc3206a9c69e787497da780ec75e422348b8e6c146d478d25c13a066c623e732dd3ff7ad0f33ed47742d12f3636f4cefafa54ecb6eeb81cfc3e11f2d23 py3-django-rest-swagger-2.2.0.tar.gz"
diff --git a/testing/py3-django-suit/APKBUILD b/testing/py3-django-suit/APKBUILD
index 71321d9c42f..74ea59a82a9 100644
--- a/testing/py3-django-suit/APKBUILD
+++ b/testing/py3-django-suit/APKBUILD
@@ -1,16 +1,17 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=py3-django-suit
_realname=django-suit
pkgver=0.2.28
-pkgrel=1
+pkgrel=7
pkgdesc="Modern theme for Django admin interface"
options="!check" # No testsuite
-url="http://djangosuit.com/"
+url="https://djangosuit.com/"
arch="noarch"
license="CC-BY-NC-3.0"
depends="python3"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/d/$_realname/$_realname-$pkgver.tar.gz"
builddir="$srcdir"/$_realname-$pkgver
@@ -22,7 +23,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="5ed7c6fdc0c3a14c4b525338b9f0c6e2bc296bd06f20cc5b262dcef23711212a5d84d9f3bee610895ca31ac7b547c793177871023a254f0ccbb8ec3bca22b933 django-suit-0.2.28.tar.gz"
diff --git a/testing/py3-django-taggit-serializer/APKBUILD b/testing/py3-django-taggit-serializer/APKBUILD
index bc4626d8fa7..81ba6cc5a43 100644
--- a/testing/py3-django-taggit-serializer/APKBUILD
+++ b/testing/py3-django-taggit-serializer/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer:
pkgname=py3-django-taggit-serializer
pkgver=0.1.7
-pkgrel=3
+pkgrel=8
pkgdesc="The Django Taggit Serializer Created for the Django REST Framework"
options="!check" # Missing py-django-nose
url="https://github.com/glemmaPaul/django-taggit-serializer"
@@ -11,6 +11,7 @@ license="BSD-3-Clause"
depends="py3-django"
makedepends="py3-setuptools"
checkdepends="py3-django-rest-framework py3-django-taggit py3-nose py3-django-nose"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/glemmaPaul/django-taggit-serializer/archive/$pkgver.tar.gz"
builddir="$srcdir"/django-taggit-serializer-$pkgver
@@ -23,8 +24,7 @@ check() {
}
package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
+ python3 setup.py --quiet install --skip-build --root="$pkgdir"
}
-
sha512sums="e4f2dcabac8e4afa9b6969bbb8718e2e5047ec97dab80f800ad73c3f59da438b8e9becbcce1af0c986a4a903a9846ca85db58d2135658d7103caee69431b59a5 py3-django-taggit-serializer-0.1.7.tar.gz"
diff --git a/testing/py3-django-taggit/APKBUILD b/testing/py3-django-taggit/APKBUILD
deleted file mode 100644
index 082f3e28562..00000000000
--- a/testing/py3-django-taggit/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
-pkgname=py3-django-taggit
-_pkgname=django-taggit
-pkgver=1.2.0
-pkgrel=0
-pkgdesc="Simple tagging for django"
-options="!check" # Testsuite for coverage and flake8
-url="https://github.com/alex/django-taggit"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-django"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/alex/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-djanog-taggit" # Backwards compatibility
-provides="py-djanog-taggit=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
-}
-
-
-sha512sums="7d47d5ea72cb785e4687e99f08ff558b89d41d20453c959c117c065641c2d23afe67b3d5a14542db810851b8f86b9dbfa43a98ce4954e68c2bef9d2a7345ca03 py3-django-taggit-1.2.0.tar.gz"
diff --git a/testing/py3-django-timezone-field/APKBUILD b/testing/py3-django-timezone-field/APKBUILD
index daf6554a83a..3b29ace2a2b 100644
--- a/testing/py3-django-timezone-field/APKBUILD
+++ b/testing/py3-django-timezone-field/APKBUILD
@@ -1,33 +1,50 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-django-timezone-field
_pkgname=django-timezone-field
-pkgver=4.0
-pkgrel=0
-pkgdesc="A Django app providing database and form fields for pytz timezone objects"
-options="!check" # Testsuite is only coverage and flake8 tests
-url="https://pypi.python.org/pypi/django-timezone-field"
+pkgver=6.1.0
+pkgrel=2
+pkgdesc="Django app providing database and form fields for pytz timezone objects"
+url="https://pypi.org/project/django-timezone-field"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-django py3-tz"
-makedepends="py3-setuptools"
+depends="py3-django"
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+checkdepends="
+ py3-django-rest-framework
+ py3-pytest
+ py3-pytest-django
+ py3-tz
+ tzdata
+ "
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/mfogel/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" #fails with funcargs error, likely lazy_fixture incompatibility in test suite
replaces="py-django-timezone-field" # Backwards compatibility
provides="py-django-timezone-field=$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.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 --quiet install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="177a13489d8ef990c1c58ce22f4fd989f763ee7d63473898e3e46cfe27d2d2e09e2e777a24bf09ad7a115a50ba35e93021914dfaeafc482cb09c03e319e8279c py3-django-timezone-field-4.0.tar.gz"
+sha512sums="
+b070e55a2a5196de1fcae4bd19979caf9d84c234a4e379d82dab843541cf99a0acced9a6996e35afe6b40d1bf737d522d34b91df10596e7365f85cfbe0597015 py3-django-timezone-field-6.1.0.tar.gz
+"
diff --git a/testing/py3-dkimpy/APKBUILD b/testing/py3-dkimpy/APKBUILD
new file mode 100644
index 00000000000..099d2b68a23
--- /dev/null
+++ b/testing/py3-dkimpy/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=py3-dkimpy
+pkgver=1.1.6
+pkgrel=0
+pkgdesc="DKIM, ARC, and TLSRPT email signing and verification"
+url="https://launchpad.net/dkimpy/"
+arch="noarch"
+license="Zlib"
+depends="python3 py3-aiodns py3-dnspython py3-authres py3-pynacl"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="https://launchpad.net/dkimpy/1.1/$pkgver/+download/dkimpy-$pkgver.tar.gz"
+builddir="$srcdir/dkimpy-$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/*.whl
+}
+
+sha512sums="
+d61331cc7baa3bd5156d919a4a88ad792ac3c3077381585f8b5aa1a35dc50761b86286312e13f3514496ab50bdc6f2dac469f4b5419b49053c1c9204d569d317 dkimpy-1.1.6.tar.gz
+"
diff --git a/testing/py3-dnslib/APKBUILD b/testing/py3-dnslib/APKBUILD
index ee63baad1ed..e4d86d7e7bf 100644
--- a/testing/py3-dnslib/APKBUILD
+++ b/testing/py3-dnslib/APKBUILD
@@ -1,27 +1,41 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-dnslib
-_pkgname=dnslib
-pkgver=0.9.12
-pkgrel=0
-pkgdesc="A simple library to encode/decode DNS wire-format packets"
-url="https://bitbucket.org/paulc/dnslib/"
+pkgver=0.9.24
+pkgrel=1
+pkgdesc="simple library to encode/decode DNS wire-format packets"
+url="https://github.com/paulc/dnslib"
arch="noarch"
license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/d/dnslib/dnslib-$pkgver.tar.gz"
+builddir="$srcdir/dnslib-$pkgver"
replaces=py-dnslib # Backwards compatibility
provides=py-dnslib=$pkgver-r$pkgrel # Backwards compatibility
+# secfixes:
+# 0.9.19-r0:
+# - CVE-2022-22846
+
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 dnslib/test_decode.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="399d7e5ecfef6805e383a96f3c166eaed21fc82af77c4683fbfaef6fb34031633d6c25df63fab7751e598d6e2a155bd7bfae473a99da642d949512178bc842ce dnslib-0.9.12.tar.gz"
+sha512sums="
+95163676394f417b7d41f572c9a933728061b430ffbe670cdd44486a6447615273d2ac2805daf839721c247d902713e70ad183c580c8515f4e5e3d740986e633 dnslib-0.9.24.tar.gz
+"
diff --git a/testing/py3-docformatter/APKBUILD b/testing/py3-docformatter/APKBUILD
new file mode 100644
index 00000000000..4007d641a8f
--- /dev/null
+++ b/testing/py3-docformatter/APKBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-docformatter
+pkgver=1.7.5
+pkgrel=3
+pkgdesc="Formats docstrings to follow PEP 257"
+url="https://github.com/PyCQA/docformatter"
+arch="noarch"
+license="MIT"
+depends="
+ py3-charset-normalizer
+ py3-untokenize
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+checkdepends="
+ black
+ py3-mock
+ py3-pytest-forked
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/PyCQA/docformatter/archive/refs/tags/v$pkgver.tar.gz
+ fix-tests.patch
+ "
+builddir="$srcdir/docformatter-$pkgver"
+
+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
+ (
+ # shellcheck disable=1091
+ . .testenv/bin/activate
+ # dumb checks that seems to fail to add a space or whatever
+ .testenv/bin/python3 -m pytest -n auto --forked \
+ --deselect=tests/test_docformatter.py \
+ --deselect=tests/test_configuration_functions.py
+ )
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+bb3e7674845632be7b75151a874987582f7cba2682905b0527a1bb8cda37156931ade35cb712ffba91d510e89a45474d5df8f41bea6979cc933f7ec999cf01f4 py3-docformatter-1.7.5.tar.gz
+a9f9a970b74c8a353df99ba3b005197562f4a320a5f38913cfafb1d13c2f45a6ce1aa5899ed219e72cc52a5c3ca3b690cee029a7b13f13768952c239ca2a0d87 fix-tests.patch
+"
diff --git a/testing/py3-docformatter/fix-tests.patch b/testing/py3-docformatter/fix-tests.patch
new file mode 100644
index 00000000000..100a04d4ea0
--- /dev/null
+++ b/testing/py3-docformatter/fix-tests.patch
@@ -0,0 +1,19 @@
+diff --git a/tests/_data/string_files/do_format_code.toml b/tests/_data/string_files/do_format_code.toml
+index 5d886f3..794431e 100644
+--- a/tests/_data/string_files/do_format_code.toml
++++ b/tests/_data/string_files/do_format_code.toml
+@@ -43,3 +43,3 @@ outstring='''
+ """docstring for CONST."""
+-'''
++ '''
+
+@@ -60,3 +60,3 @@ outstring='''
+ """
+-'''
++ '''
+
+@@ -86,3 +86,3 @@ outstring='''
+ """This is a second class variable docstring."""
+-'''
++ '''
+
diff --git a/testing/py3-dogpile.cache/APKBUILD b/testing/py3-dogpile.cache/APKBUILD
new file mode 100644
index 00000000000..dc159859934
--- /dev/null
+++ b/testing/py3-dogpile.cache/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-dogpile.cache
+_pkgname=dogpile.cache
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="Caching front-end based on the Dogpile lock"
+url="https://github.com/sqlalchemy/dogpile.cache"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 py3-decorator"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-pbr py3-mako py3-redis py3-stevedore"
+subpackages="$pkgname-pyc"
+source="https://pypi.io/packages/source/d/dogpile.cache/dogpile.cache-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+23b078b79e4b1f87c8d397d35b772f0b5fee66a0e452de06e7644ecb1ef577ae1629307a0e32fa62f49d536f95fb62fe70ededeb43647fa0c2e0baf896261931 dogpile.cache-1.2.2.tar.gz
+"
diff --git a/testing/py3-doit/APKBUILD b/testing/py3-doit/APKBUILD
index 91f79053bdf..bdaff8f2498 100644
--- a/testing/py3-doit/APKBUILD
+++ b/testing/py3-doit/APKBUILD
@@ -2,15 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-doit
_pkgname=doit
-pkgver=0.32.0
-pkgrel=0
+pkgver=0.36.0
+pkgrel=4
pkgdesc="A Python Automation Tool"
url="https://pydoit.org/"
-# aarch64: Fails to find py3-inotify
-arch="noarch !aarch64"
+arch="noarch"
license="MIT"
-depends="py3-cloudpickle py3-inotify py3-six"
+depends="py3-importlib-metadata py3-cloudpickle python3"
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
@@ -21,8 +21,14 @@ build() {
python3 setup.py build
}
+check() {
+ PYTHONPATH=build/lib python3 -m doit --version
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="d5c28a0c6a38648aeef58027b2246fc26360e133e91933f2244bd484f70d6d26110acbfec19c74d53c796e0bbae07a4bf6d76542d45e8b1a6b503c186bf2a68a doit-0.32.0.tar.gz"
+sha512sums="
+d4caa31701755c7f59213dde0f89fd3616c0c01b7f06245cbfd9f1a315d503e62f3556c3b86685cd0ebfcffcc9cae0987ca150f037aa7b3cd960439a1191be42 doit-0.36.0.tar.gz
+"
diff --git a/testing/py3-dominate/APKBUILD b/testing/py3-dominate/APKBUILD
index d9e0f8d675f..55c11929134 100644
--- a/testing/py3-dominate/APKBUILD
+++ b/testing/py3-dominate/APKBUILD
@@ -1,24 +1,36 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=py3-dominate
-pkgver=2.5.1
-pkgrel=0
+pkgver=2.9.1
+pkgrel=1
pkgdesc="Library for creating and manipulating HTML documents using an elegant DOM API"
-options="!check" # Tests are broken
url="https://github.com/Knio/dominate/"
arch="noarch"
license="LGPL-3.0-only"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-installer py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Knio/dominate/archive/$pkgver.tar.gz"
builddir="$srcdir/dominate-$pkgver"
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="431209e6431ab00c9352be6eeab7d25d05ae923670f1ade1398f5af247047b3be458c06bf0d68ab90fb4c93b59acb47a10e6a1f020b5c6234bdb1d2cac50ef71 py3-dominate-2.5.1.tar.gz"
+sha512sums="
+d13b3fcc22176b2ad0c393887b6b3fa896252f9c4126a017eb696a973c05090cbbf0b0437495761987e1f08b76d0e2901d06c61b02b6b20a4aac652ec2867297 py3-dominate-2.9.1.tar.gz
+"
diff --git a/testing/py3-dotty-dict/APKBUILD b/testing/py3-dotty-dict/APKBUILD
new file mode 100644
index 00000000000..7e3f260af12
--- /dev/null
+++ b/testing/py3-dotty-dict/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-dotty-dict
+pkgver=1.3.1
+pkgrel=3
+pkgdesc="Dictionary wrapper for quick access to deeply nested keys"
+url="https://github.com/pawelzny/dotty_dict"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools py3-setuptools_scm"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pawelzny/dotty_dict/archive/v$pkgver.tar.gz"
+builddir="$srcdir/dotty_dict-$pkgver"
+
+export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="." pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+a70cc8a7d8d60c918dc735d7ae2675f20f9558be75c7ae2b124597e35eac1dad47f3733774ce782854bc98665f515d5d8d1e0b26d8f0ba4e4a107ab95933d59f py3-dotty-dict-1.3.1.tar.gz
+"
diff --git a/testing/py3-dpath/APKBUILD b/testing/py3-dpath/APKBUILD
index b46872ac6f6..2cc9ce281dd 100644
--- a/testing/py3-dpath/APKBUILD
+++ b/testing/py3-dpath/APKBUILD
@@ -2,28 +2,34 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-dpath
_pkgname=dpath
-pkgver=1.4.2
-pkgrel=3
+pkgver=2.1.6
+pkgrel=1
pkgdesc="Filesystem-like pathing and searching for dictionaries"
-url="https://www.github.com/akesterson/dpath-python"
+url="https://github.com/dpath-maintainers/dpath-python"
arch="noarch"
license="MIT"
replaces="py-dpath" # for backwards compatibility
provides="py-dpath=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
-makedepends="python3-dev py3-setuptools"
+makedepends="py3-setuptools"
+checkdepends="py3-hypothesis py3-mock py3-nose2 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() {
- cd "$builddir"
python3 setup.py build
}
+check() {
+ PYTHONPATH="$builddir"/build/lib pytest-3
+}
+
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="8b868ba63a810ef18a58a6452cf6f30eeeee44ea4bd27dbc7d0efcce116adcbb3e2793e89bf94a5aa2d8ec893f96c32dd523f102e5a0da5124a88c7d1dff00d2 dpath-1.4.2.tar.gz"
+sha512sums="
+2f2dac39b6e1ad2effd8d61ac4acf6619205423389ecebc54061aa10ec11ce3236ea666b632a7dca349e9b7a6579815c97e01c930eaa1a99d965e37b9825b82c dpath-2.1.6.tar.gz
+"
diff --git a/testing/py3-drf-yasg/APKBUILD b/testing/py3-drf-yasg/APKBUILD
index 970a5759c20..67d2e2e438a 100644
--- a/testing/py3-drf-yasg/APKBUILD
+++ b/testing/py3-drf-yasg/APKBUILD
@@ -1,19 +1,19 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer:
pkgname=py3-drf-yasg
-pkgver=1.12.1
-pkgrel=3
+pkgver=1.21.7
+pkgrel=1
pkgdesc="Automated generation of real Swagger/OpenAPI 2.0 schemas from Django Rest Framework code"
options="!check" # Missing dependencies
url="https://pypi.org/project/drf-yasg/"
arch="noarch"
license="BSD-3-Clause"
depends="py3-django py3-coreschema py3-ruamel.yaml py3-inflection
- py3-six py3-uritemplate py3-coreapi"
+ py3-uritemplate"
makedepends="py3-setuptools py3-setuptools_scm py3-pbr"
# Requires unpackaged datadiff pytest-pythonpath pytest-django
checkdepends="py3-pytest py3-pytest-cov py3-pytest-xdist"
-options="!check" # no test suite
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/axnsan12/drf-yasg/archive/$pkgver.tar.gz"
builddir="$srcdir"/drf-yasg-$pkgver
@@ -26,8 +26,9 @@ build() {
}
package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
+ python3 setup.py --quiet install --skip-build --root="$pkgdir"
}
-
-sha512sums="096bda87ab8fae3ed2ccd1449ded37b06ebd368154fef834467ee21b7c3612e70712e4c6f1a970ff1fee89e8ae9afc46215437e1095778cced88de1b9062319d py3-drf-yasg-1.12.1.tar.gz"
+sha512sums="
+4db6daea8e5c0b3179c1a0146f65ad16feb82d5bbd4220108f1cf6256d160a65e0a4a6831d88aba6991fa4558bea62c7f1cd911cf51ca1f91a940e4fe5202727 py3-drf-yasg-1.21.7.tar.gz
+"
diff --git a/testing/py3-dt-schema/APKBUILD b/testing/py3-dt-schema/APKBUILD
index deeff43c5ca..9627fea3ac8 100644
--- a/testing/py3-dt-schema/APKBUILD
+++ b/testing/py3-dt-schema/APKBUILD
@@ -1,24 +1,61 @@
-# Contributor: Iskren Chernev <iskren.chernev@gmail.com>
-# Maintainer: Iskren Chernev <iskren.chernev@gmail.com>
+# Contributor: Iskren Chernev <me@iskren.info>
+# Maintainer: Iskren Chernev <me@iskren.info>
pkgname=py3-dt-schema
-pkgver=2020.05
+pkgver=2024.04
pkgrel=0
pkgdesc="Devicetree schema tools"
url="https://github.com/devicetree-org/dt-schema"
arch="noarch"
license="BSD-2-Clause"
-depends="python3 py3-ruamel.yaml py3-jsonschema py3-rfc3987"
-makedepends="py3-setuptools py3-pip"
+depends="python3 py3-ruamel.yaml py3-jsonschema417 py3-rfc3987 py3-libfdt"
+makedepends="py3-setuptools py3-setuptools_scm py3-wheel py3-gpep517 py3-installer"
+checkdepends="dtc"
+subpackages="$pkgname-pyc"
source="dt-schema-$pkgver.tar.gz::https://github.com/devicetree-org/dt-schema/archive/v$pkgver.tar.gz"
builddir="$srcdir/dt-schema-$pkgver"
+options="net"
-options="!check" # No tests
+prepare() {
+ default_prepare
+ {
+ find dtschema -name '*.py'
+ find test -name '*.py'
+ find tools -type f
+ } | while read -r file; do
+ sed -i \
+ -e 's/import jsonschema$/import jsonschema417 as jsonschema/' \
+ -e 's/from jsonschema/from jsonschema417/' \
+ "$file"
+ done
+ sed -i 's/jsonschema/jsonschema417/' pyproject.toml
+ # The project uses setuptools_scm, which handles adding the schema
+ # files to the package, but there is no SCM here..
+ {
+ echo '[tools.setuptools.package.find]'
+ echo 'where=["."]'
+ } >> pyproject.toml
+ echo "recursive-include dtschema/*schemas *.yaml" > MANIFEST.in
+}
build() {
- SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" python3 setup.py build
+ SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" \
+ 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 test/test-dt-validate.py
}
package() {
- SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" python3 setup.py install --prefix=/usr --root="$pkgdir"
+ SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" \
+ python3 -m installer -d "$pkgdir" \
+ .dist/dtschema-*-py3-none-any.whl
}
-sha512sums="85b2a614e5424da4b20002935c0973f66febc12dd96c1497d548cb7fca67a5f2a1b48d5ef297e0dab33a95682aa08626a8304f5ea6f18b875d689f7f964ae089 dt-schema-2020.05.tar.gz"
+
+sha512sums="
+10d3e997bff72caff4bfe7b5af148eec9628a159f7e133dc6cba3f8e2413d6d4b268492c8d412a9e26c7454bbf8fdac99a326cffcddd747605f68bd72c764a4b dt-schema-2024.04.tar.gz
+"
diff --git a/testing/py3-dulwich/APKBUILD b/testing/py3-dulwich/APKBUILD
deleted file mode 100644
index d713b10fcc1..00000000000
--- a/testing/py3-dulwich/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-dulwich
-_pkgname=dulwich
-pkgver=0.19.16
-pkgrel=0
-pkgdesc="A python implementation of the Git file formats and protocols"
-url="https://www.dulwich.io"
-arch="all"
-license="GPL-2.0-or-later OR Apache-2.0"
-options="!check" # Tests are failing (http-backend)
-depends="py3-certifi py3-urllib3"
-makedepends="py3-setuptools python3-dev"
-checkdepends="py3-mock"
-source="https://github.com/dulwich/dulwich/archive/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-dulwich-$pkgver
-
-replaces="py-dulwich" # Backwards compatibility
-provides="py-dulwich=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m unittest dulwich.tests.test_suite
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a1452fb25943f4e71f338763e08babe40c61b6bb6be6a076c9d0f7781b429a40eb574635e9146d2b8d245cf7010a99428103dd7d910eeb7b296b1b91a0869425 dulwich-0.19.16.tar.gz"
diff --git a/testing/py3-dunamai/APKBUILD b/testing/py3-dunamai/APKBUILD
new file mode 100644
index 00000000000..6ecc5942e75
--- /dev/null
+++ b/testing/py3-dunamai/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-dunamai
+pkgver=1.20.0
+pkgrel=0
+pkgdesc="Dynamic versioning library and CLI"
+url="https://github.com/mtkennerly/dunamai"
+arch="noarch"
+license="MIT"
+depends="py3-packaging"
+makedepends="py3-gpep517 py3-poetry-core py3-wheel py3-installer"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/mtkennerly/dunamai/releases/download/v$pkgver/dunamai-$pkgver.tar.gz"
+builddir="$srcdir/dunamai-$pkgver"
+options="!check" # tests require a git repo
+
+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="
+ec29e737203034178387a8b11cb82f331cf5094d43e3d5934cef8551b8a979df7774613271312d2a8db6a721e37b004d493aa466aa414748e5fd0a1dd71e733b dunamai-1.20.0.tar.gz
+"
diff --git a/testing/py3-duniterpy/APKBUILD b/testing/py3-duniterpy/APKBUILD
new file mode 100644
index 00000000000..ee61634bd9a
--- /dev/null
+++ b/testing/py3-duniterpy/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Eloi Torrents <eloitor@duck.com>
+# Maintainer: Eloi Torrents <eloitor@duck.com>
+pkgname=py3-duniterpy
+_pkgname=duniterpy
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="Python APIs library to implement Duniter clients software"
+url="https://git.duniter.org/clients/python/duniterpy"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ attr
+ python3
+ py3-aiohttp
+ py3-attrs
+ py3-base58
+ py3-jsonschema
+ py3-libnacl
+ py3-pyaes
+ py3-pypeg2
+ py3-scrypt
+ py3-websocket-client
+ "
+makedepends="py3-build py3-wheel py3-installer poetry libsodium-dev"
+checkdepends="py3-pytest"
+source="https://git.duniter.org/clients/python/$_pkgname/-/archive/$pkgver/$_pkgname-$pkgver.tar.gz
+ Remove_empty_homepage_field_from_pyproject.patch
+ Support_py3-libnacl_1.9.0.patch
+ "
+builddir="$srcdir/"$_pkgname-$pkgver
+
+build() {
+ python -m build --wheel --no-isolation
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer --destdir="$pkgdir" dist/*.whl
+}
+
+sha512sums="
+4fd702f37d65c83ce907c90dde8fe2d55a47c9b19624f9f48a5bb988bf11c62cf56092a0fd61cae91225b42afb7784739ab2a9c14577e0fa275b97c21f312608 duniterpy-1.1.1.tar.gz
+b85743c269fff452d71016059c287a4b12f6442d29c06481ac5c9604b20a88887d5d7806058fc99c6471bc57dc866102ee8d5319e7aa89bd24fe2ada873cc0f2 Remove_empty_homepage_field_from_pyproject.patch
+b0b71d291898be989e6a74ea0ec75942fdea5e089c022b42f7a6751de2911699998cc84fc48bca80ce5829caae9dc137266e43f19be573e239fa3ce7d7dc8066 Support_py3-libnacl_1.9.0.patch
+"
diff --git a/testing/py3-duniterpy/Remove_empty_homepage_field_from_pyproject.patch b/testing/py3-duniterpy/Remove_empty_homepage_field_from_pyproject.patch
new file mode 100644
index 00000000000..a89205ec332
--- /dev/null
+++ b/testing/py3-duniterpy/Remove_empty_homepage_field_from_pyproject.patch
@@ -0,0 +1,12 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index c2a9b4d190c7c92caba8784d3fa5975646e7260e..5b2d3789f76e857846455cdcf64518d067d913a0 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -7,7 +7,6 @@ authors = ["inso <insomniak.fr@gmail.com>", "canercandan", "s_b"]
+ maintainers = ["vit <vit@free.fr>", "Moul <moul@moul.re>"]
+ readme = "README.md"
+ license = "GPL-3.0-or-later"
+-homepage = ""
+ repository = "https://git.duniter.org/clients/python/duniterpy"
+ documentation = "https://clients.pages.duniter.org/python/duniterpy/index.html"
+ urls = { Changelog = "https://git.duniter.org/clients/python/duniterpy/-/blob/main/CHANGELOG.md" }
diff --git a/testing/py3-duniterpy/Support_py3-libnacl_1.9.0.patch b/testing/py3-duniterpy/Support_py3-libnacl_1.9.0.patch
new file mode 100644
index 00000000000..c2a9b8841d4
--- /dev/null
+++ b/testing/py3-duniterpy/Support_py3-libnacl_1.9.0.patch
@@ -0,0 +1,25 @@
+diff --git a/duniterpy/key/ascii_armor.py b/duniterpy/key/ascii_armor.py
+index 9ab3efe47b0224179926f04bc3c2be03674fbccd..84b8c68335d83dad70d8e61a7b013d6a830c6047 100644
+--- a/duniterpy/key/ascii_armor.py
++++ b/duniterpy/key/ascii_armor.py
+@@ -14,11 +14,11 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ import base64
++import importlib.metadata
+ import re
+ from typing import Any, Dict, List, Optional
+
+ import libnacl
+-from libnacl.version import version as libnacl_version
+
+ from .encryption_key import PublicKey
+ from .signing_key import SigningKey
+@@ -33,6 +33,7 @@ HEADER_PREFIX = "-----"
+ DASH_ESCAPE_PREFIX = "\x2D\x20"
+
+ # Version field value
++libnacl_version = importlib.metadata.version("libnacl")
+ VERSION_FIELD_VALUE = f"Python Libnacl {libnacl_version}"
+
+ # Parser cursor status
diff --git a/testing/py3-dweepy/APKBUILD b/testing/py3-dweepy/APKBUILD
index 4cd6905008f..a6dc125ce22 100644
--- a/testing/py3-dweepy/APKBUILD
+++ b/testing/py3-dweepy/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-dweepy
_pkgname=dweepy
pkgver=0.3.0
-pkgrel=1
+pkgrel=7
pkgdesc="A Python client for Dweet.io"
url="https://github.com/paddycarey/dweepy"
arch="noarch"
license="MIT"
depends="py3-requests"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-dweepy" # Backwards compatibility
+replaces="py-dweepy" # Backwards compatibility
provides="py-dweepy=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="f190c40bbcfdbaa516fff3d2f91dc58bf8ed71096385a74476c2e1c13cfafc32c0c24645801b3fdb5116a80807b0150a4a4b0976ebf499b4fa51ebf9a5ac797e dweepy-0.3.0.tar.gz"
diff --git a/testing/py3-ecos/APKBUILD b/testing/py3-ecos/APKBUILD
new file mode 100644
index 00000000000..b99ad2306aa
--- /dev/null
+++ b/testing/py3-ecos/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=py3-ecos
+pkgver=2.0.11
+pkgrel=3
+pkgdesc="python interface for ECOS"
+url="https://github.com/embotech/ecos-python"
+arch="all"
+license="GPL-3.0-only"
+depends="py3-numpy py3-scipy ecos"
+makedepends="py3-setuptools ecos-dev py3-numpy-dev python3-dev"
+checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
+source="ecos-python-$pkgver.tar.gz::https://github.com/embotech/ecos-python/archive/refs/tags/v$pkgver.tar.gz
+ use_external_ecos.patch
+ "
+builddir="$srcdir/ecos-python-$pkgver"
+options="!check" # cannot get checks to pass
+
+build() {
+ make version
+ python3 setup.py build
+}
+
+check() {
+ python setup.py build_ext --inplace
+ nosetests
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+30ee09ca02f8b2c4b308917f766bd82df62e78737f3a4f7490c89add45473606c1aad431073445d47e488553a8f34642e680c5c98b034c56df15033d3a298180 ecos-python-2.0.11.tar.gz
+671bea0c1eadf6fe67a632af6598bc1bc48fbe2ddbdc4439f6bcc52636a9a5b43e7f1c5b7a384a737088a16f69ca3835048b562eeb4c6894a52f381d759ec6c9 use_external_ecos.patch
+"
diff --git a/testing/py3-ecos/use_external_ecos.patch b/testing/py3-ecos/use_external_ecos.patch
new file mode 100644
index 00000000000..eee5fcc2e56
--- /dev/null
+++ b/testing/py3-ecos/use_external_ecos.patch
@@ -0,0 +1,44 @@
+Author: Guillaume Horel <guillaume.horel@gmail.com>
+URL: https://aur.archlinux.org/packages/python-ecos/
+Summary: Allows us to compile ecos as a seperate package and install.
+----
+diff -urN ecos-python-2.0.7rc2-orig/setup.py ecos-python-2.0.7rc2/setup.py
+--- ecos-python-2.0.7rc2-orig/setup.py 2018-05-23 22:16:42.967677526 -0400
++++ ecos-python-2.0.7rc2/setup.py 2018-05-23 22:17:41.981221901 -0400
+@@ -9,7 +9,7 @@
+ from glob import glob
+ from platform import system
+
+-lib = []
++lib = ['ecos']
+ if system() == 'Linux':
+ lib += ['rt']
+
+@@ -21,25 +21,8 @@
+ ('DLONG', None),
+ ('LDL_LONG', None),
+ ('CTRLC', 1)],
+- include_dirs = ['ecos/include',
+- 'ecos/external/amd/include',
+- 'ecos/external/ldl/include',
+- 'ecos/external/SuiteSparse_config'],
+- sources = ['src/ecosmodule.c',
+- 'ecos/external/ldl/src/ldl.c',
+- 'ecos/src/cone.c',
+- 'ecos/src/ctrlc.c',
+- 'ecos/src/ecos.c',
+- 'ecos/src/equil.c',
+- 'ecos/src/expcone.c',
+- 'ecos/src/kkt.c',
+- 'ecos/src/preproc.c',
+- 'ecos/src/spla.c',
+- 'ecos/src/splamm.c',
+- 'ecos/src/timer.c',
+- 'ecos/src/wright_omega.c'
+- ] + glob('ecos/external/amd/src/*.c')
+- + glob('ecos/ecos_bb/*.c')) # glob bb source files
++ include_dirs = ['/usr/include/ecos'],
++ sources = ['src/ecosmodule.c'])
+
+ def set_builtin(name, value):
+ if isinstance(__builtins__, dict):
diff --git a/testing/py3-editdistance-s/APKBUILD b/testing/py3-editdistance-s/APKBUILD
new file mode 100644
index 00000000000..1296732ca68
--- /dev/null
+++ b/testing/py3-editdistance-s/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-editdistance-s
+_pyname=editdistance-s
+pkgver=1.0.0
+pkgrel=5
+pkgdesc="Fast implementation of the edit distance"
+url="https://github.com/asottile-archive/editdistance-s"
+arch="all"
+license="MIT"
+depends="python3 py3-cffi"
+makedepends="py3-setuptools python3-dev"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/asottile-archive/editdistance-s/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$(echo "$PWD"/build/lib.*)" pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+148234a38f54f70a2d6bc64f6a166a8954c79fb89d5f5c0bf3f041fe60056332901484a0626e218a72ae992f476305cbb662dfa0acdda794727fc682c569d718 editdistance-s-1.0.0.tar.gz
+"
diff --git a/testing/py3-empy/APKBUILD b/testing/py3-empy/APKBUILD
index 7178491f425..95ffded5fd5 100644
--- a/testing/py3-empy/APKBUILD
+++ b/testing/py3-empy/APKBUILD
@@ -3,12 +3,14 @@
pkgname=py3-empy
_pkgname=empy
pkgver=3.3.4
-pkgrel=1
+pkgrel=6
pkgdesc="A powerful and robust templating system for Python."
url="http://www.alcyone.com/software/empy/"
arch="noarch"
license="LGPL-2.1-or-later"
depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="http://www.alcyone.com/software/empy/empy-$pkgver.tar.gz
10-fix-test-case.patch
20-fix-setuppy.patch
@@ -24,7 +26,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="5de8de26484468d180a2575bfc8302cb3d32004ed4d70768310b7564a9ed1bb880b8c1d862f419588b2b5baa8c3da8bc707eac41f3921e6136cc5bc3f47f1a3d empy-3.3.4.tar.gz
diff --git a/testing/py3-enzyme/APKBUILD b/testing/py3-enzyme/APKBUILD
new file mode 100644
index 00000000000..a19ddcfc65b
--- /dev/null
+++ b/testing/py3-enzyme/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-enzyme
+_pkgname=enzyme
+pkgver=0.4.1
+pkgrel=4
+pkgdesc="Python module to parse video metadata"
+url="https://github.com/Diaoul/enzyme"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-setuptools"
+checkdepends="py3-pytest py3-requests py3-yaml"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Diaoul/enzyme/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="
+456f3ee8b9f0b218451dc455acba7365c0ab12ae0e43df72cb4f748a29ac8fe12c14a48913681e29de355d297ec219bc9288d09acdec228fee9bbab85b5e048b py3-enzyme-0.4.1.tar.gz
+"
diff --git a/testing/py3-eradicate/APKBUILD b/testing/py3-eradicate/APKBUILD
new file mode 100644
index 00000000000..3003a9ed866
--- /dev/null
+++ b/testing/py3-eradicate/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-eradicate
+_pkgname=eradicate
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="Removes commented-out code"
+options="!check" # no test suite
+url="https://github.com/myint/eradicate"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/e/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 README.rst -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+3b2498277e8aa6e36f1dbab0731b28d22034b95564c300e067151fe5a6c8f124661f169e43290a57950588fcd8c8f27b990755bdba7e28afcc0fee6b82c1c07f eradicate-2.3.0.tar.gz
+"
diff --git a/testing/py3-euclid3/APKBUILD b/testing/py3-euclid3/APKBUILD
new file mode 100644
index 00000000000..2fe23088eb5
--- /dev/null
+++ b/testing/py3-euclid3/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Contributor: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+pkgname=py3-euclid3
+pkgver=0.01
+pkgrel=7
+pkgdesc="Vector, matrix, quaternion and some geometry in 2D and 3D for Python 3"
+url="https://github.com/euclid3/euclid3"
+arch="noarch"
+license="LGPL-2.1-or-later"
+depends="python3"
+makedepends="
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/e/euclid3/euclid3-$pkgver.tar.gz"
+builddir="$srcdir/euclid3-$pkgver"
+options="!check" # no tests
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 test_euclid.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+c4e5e2770ab4ede08904fc3b76e50d6812944ed226c9db52f2da8d100370e20ea6031ca554ae44d72d53e96727d163bd3cc8da7bf175539de10749da77877b0b euclid3-0.01.tar.gz
+"
diff --git a/testing/py3-eventlet/APKBUILD b/testing/py3-eventlet/APKBUILD
index d3bbd2d31af..f12f4a5f38c 100644
--- a/testing/py3-eventlet/APKBUILD
+++ b/testing/py3-eventlet/APKBUILD
@@ -1,28 +1,50 @@
-# Maintainer: Elizabeth Jennifer Myers <elizabeth@sporksirc.net>
# Contributor: Elizabeth Jennifer Myers <elizabeth@sporksirc.net>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=py3-eventlet
-pkgver=0.25.2
+pkgver=0.36.1
pkgrel=0
pkgdesc="Python library for seamless coroutine-based concurrency"
-options="!check" # Some tests fail
-url="http://eventlet.net/"
+url="https://eventlet.net/"
arch="noarch"
license="MIT"
-depends="python3 py3-greenlet py3-openssl"
-makedepends="py3-setuptools"
-checkdepends="py3-nose"
+depends="
+ py3-dnspython
+ py3-greenlet
+ py3-httplib2
+ py3-openssl
+ py3-psycopg2
+ py3-six
+ python3
+ "
+makedepends="py3-hatchling py3-gpep517 py3-wheel py3-hatch-vcs"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/e/eventlet/eventlet-$pkgver.tar.gz"
builddir="$srcdir"/eventlet-$pkgver
+
+# secfixes:
+# 0.32.0-r0:
+# - CVE-2021-21419
+
build() {
- python3 setup.py build
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ 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
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --root "$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="4c641e6d01845066b45c0aa022a5077314774905b22447a2a6bfd7526dd2fe16df6f27f480db68ac40297b07652a60bb89533fbeb9ac618c44b01ec5f70c1999 eventlet-0.25.2.tar.gz"
+
+sha512sums="
+a13565588c570b8d57b7a8dc3c496e9d95fb3c5a8ce2c60560e532370522b852297cc5bfc7cb3ed80de7a6dca39f15effaf6b1b5498bd910ef278788cb7bc7bd eventlet-0.36.1.tar.gz
+"
diff --git a/testing/py3-evohome-client/APKBUILD b/testing/py3-evohome-client/APKBUILD
index 53d228ed033..8ad1762efff 100644
--- a/testing/py3-evohome-client/APKBUILD
+++ b/testing/py3-evohome-client/APKBUILD
@@ -1,8 +1,8 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=py3-evohome-client
-pkgver=0.3.3
-pkgrel=1
+pkgver=0.3.7
+pkgrel=3
pkgdesc="Python client to access the Evohome web service"
url="https://github.com/watchforstock/evohome-client"
arch="noarch"
@@ -10,6 +10,7 @@ license="Apache-2.0"
depends="python3 py3-requests"
makedepends="py3-setuptools"
checkdepends="py3-nose py3-requests-mock"
+subpackages="$pkgname-pyc"
source="evohome-client-$pkgver.tar.gz::https://github.com/watchforstock/evohome-client/archive/$pkgver.tar.gz"
builddir="$srcdir"/evohome-client-$pkgver
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="2f140f52c5b1236aeaecd27b16c0f490e0bbb361a07ef1e9e4ca14e856f840aa62f110c14f65bacf6f7eecb9282506aabf2c88378810c0db32557effe291e66c evohome-client-0.3.3.tar.gz"
+sha512sums="
+0ba4ea1c952425f453b8189759be6037be91af73bd2b8da91bb532745fc73a43b93fb2237ac8b39b86da9c2d196c0d9567f857aecb9984327d67e1b9f62d923e evohome-client-0.3.7.tar.gz
+"
diff --git a/testing/py3-fann2/APKBUILD b/testing/py3-fann2/APKBUILD
deleted file mode 100644
index 815d3c99d39..00000000000
--- a/testing/py3-fann2/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-fann2
-pkgver=1.1.2
-pkgrel=0
-pkgdesc="Python bindings for Fast Artificial Neural Networks 2.2.0"
-url="https://github.com/FutureLinkCorporation/fann2"
-arch="all"
-license="LGPL-2.1-only"
-depends="python3"
-makedepends="py3-setuptools fann-dev swig python3-dev"
-subpackages="$pkgname-dev"
-source="https://pypi.python.org/packages/source/f/fann2/fann2-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/fann2-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="78cffa7a6a91d9c500852f398aad173c8b9718545070e6b780d71bc94f891161e2211e0683548dee944f931a8cdb2695ca28f4eae994b4009ae5c12efbc6259c fann2-1.1.2.tar.gz"
diff --git a/testing/py3-fastapi/APKBUILD b/testing/py3-fastapi/APKBUILD
new file mode 100644
index 00000000000..e7f882347e0
--- /dev/null
+++ b/testing/py3-fastapi/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Steven Guikal <void@fluix.one>
+# Maintainer: Steven Guikal <void@fluix.one>
+pkgname=py3-fastapi
+pkgver=0.108.0
+pkgrel=0
+pkgdesc="Modern, high-performance, web framework for building APIs based on standard Python type hints"
+url="https://github.com/tiangolo/fastapi"
+arch="noarch !armhf !ppc64le" # limited by py3-starlette
+license="MIT"
+depends="
+ py3-pydantic
+ py3-starlette
+ "
+makedepends="
+ py3-gpep517
+ py3-hatchling
+ py3-installer
+ "
+checkdepends="
+ py3-dirty-equals
+ py3-email-validator
+ py3-flask
+ py3-httpx
+ py3-orjson
+ py3-passlib
+ py3-peewee
+ py3-pytest
+ py3-pytest-xdist
+ py3-python-jose
+ py3-python-multipart
+ py3-sqlalchemy
+ py3-trio
+ py3-ujson
+ py3-yaml
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tiangolo/fastapi/archive/refs/tags/$pkgver.tar.gz
+ pytest-markers.patch
+ "
+builddir="$srcdir/fastapi-$pkgver"
+
+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
+ # Depends on older SQLAlchemy and slated for removal:
+ # https://github.com/tiangolo/fastapi/blob/dd4e78ca7b09abdf0d4646fe4697316c021a8b2e/requirements-tests.txt#L9
+ .testenv/bin/python3 -m pytest -p no:warnings \
+ --ignore-glob "tests/test_tutorial/*sql_databases" \
+ --ignore tests/test_dependency_normal_exceptions.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+c7f1b265c680e75e2654623e14c94d06fa880e219346d577c70bb070dbf15f424ebd4fa4450ce0e364dc4d794ba496dee8e24f20ff292ef6ee7f0eed2aee05a4 py3-fastapi-0.108.0.tar.gz
+854946e3e52460edfd84cd44e254659354171e88245f4134c7f943a07bf3b08455ad81c54f4c58c50f639aa7288e25d81711f3d7867bbe2d6c83844e2fdd9921 pytest-markers.patch
+"
diff --git a/testing/py3-fastapi/pytest-markers.patch b/testing/py3-fastapi/pytest-markers.patch
new file mode 100644
index 00000000000..58792ca7c8d
--- /dev/null
+++ b/testing/py3-fastapi/pytest-markers.patch
@@ -0,0 +1,12 @@
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -90,6 +90,9 @@
+ "--strict-markers",
+ "--ignore=docs_src",
+ ]
++markers = [
++ "filterwarnings",
++]
+ xfail_strict = true
+ junit_family = "xunit2"
+ filterwarnings = [
diff --git a/testing/py3-fastavro/APKBUILD b/testing/py3-fastavro/APKBUILD
index 5b427f81e1c..b9b0c4f3da1 100644
--- a/testing/py3-fastavro/APKBUILD
+++ b/testing/py3-fastavro/APKBUILD
@@ -1,24 +1,29 @@
-# Maintainer: Gennady Feldman <gena01@gmail.com>
+# Maintainer: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
# Contributor: Gennady Feldman <gena01@gmail.com>
+# Contributor: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
pkgname=py3-fastavro
_pkgname=fastavro
-pkgver=0.23.4
-pkgrel=0
+pkgver=1.9.4
+pkgrel=1
pkgdesc="Fast Avro for Python"
# Tests for optional zstd and snappy codecs require
# unpackaged python modules 'zstandard' and 'python-snappy'
options="!check"
url="https://github.com/fastavro/fastavro"
-arch="all !x86 !mips !mips64" # _tz_ tests fail, blocked by numpy on mips
+arch="all !x86" # _tz_ tests fail
license="MIT"
-depends="py3-six"
-makedepends="py3-setuptools python3-dev cython"
-checkdepends="py3-pytest py3-numpy"
+depends="python3"
+makedepends="py3-gpep517 py3-setuptools python3-dev cython py3-wheel"
+checkdepends="py3-pytest-xdist py3-numpy"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/fastavro/fastavro/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
build() {
- FASTAVRO_USE_CYTHON=1 python3 setup.py build
+ FASTAVRO_USE_CYTHON=1 \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -26,7 +31,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="3afa3a5cf47089271ea3bbef029cf9fea60bf8d9fc8d2f7835c7bc08433d01f53f9e4b6db2e69950bd61875798ef05e604f2caa4e9001eb451be2a048c178acc py3-fastavro-0.23.4.tar.gz"
+sha512sums="
+88a9d7dbf4c8870dda4c7c8265649c6c4e405d6cf5e10b39029e4ec1cd762237daae6d5b9a317886f21b71625fd73c401c7518168282b1f2d7b9c02fbb825931 py3-fastavro-1.9.4.tar.gz
+"
diff --git a/testing/py3-fastdiff/APKBUILD b/testing/py3-fastdiff/APKBUILD
new file mode 100644
index 00000000000..1a3135b84df
--- /dev/null
+++ b/testing/py3-fastdiff/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-fastdiff
+pkgver=0.3.0
+pkgrel=4
+pkgdesc="A fast native implementation of diff algorithm with a pure Python fallback"
+url="https://github.com/syrusakbary/fastdiff"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-pytest-runner
+ py3-setuptools
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/f/fastdiff/fastdiff-$pkgver.tar.gz"
+options="!check" # Requires unpackaged native modules
+builddir="$srcdir/fastdiff-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD/build/lib" pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+dae82cb779dd869cef4e4e258e69f1d0cc2e4b177514fb4136f42f78273f20be45e71fad987c5b5632e95fa3a3bf61f5983f53c17d00b67cb079b403327e63ce fastdiff-0.3.0.tar.gz
+"
diff --git a/testing/py3-feedgen/APKBUILD b/testing/py3-feedgen/APKBUILD
new file mode 100644
index 00000000000..4b2e8b9af93
--- /dev/null
+++ b/testing/py3-feedgen/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Thomas Faughnan <thomas@faughnan.net>
+pkgname=py3-feedgen
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Python module to generate ATOM feeds, RSS feeds and Podcasts"
+url="https://github.com/lkiesow/python-feedgen"
+arch="noarch"
+license="BSD-2-Clause AND LGPL-3.0-or-later"
+depends="
+ py3-dateutil
+ py3-lxml
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/lkiesow/python-feedgen/archive/v$pkgver/python-feedgen-$pkgver.tar.gz"
+builddir="$srcdir/python-feedgen-$pkgver"
+
+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 discover tests
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f21704f7f4714e51c9b7b1d98f71db041426e01039f4d85439ee0623b77575293f3efd6fdb7b6609f67e0a868863b15169f91cef3a3c16542182ecf9409eb524 python-feedgen-1.0.0.tar.gz
+"
diff --git a/testing/py3-feedgenerator/APKBUILD b/testing/py3-feedgenerator/APKBUILD
index 8593ad7b3d9..193885b59e8 100644
--- a/testing/py3-feedgenerator/APKBUILD
+++ b/testing/py3-feedgenerator/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-feedgenerator
_pkgname=feedgenerator
-pkgver=1.9.1
-pkgrel=0
+pkgver=2.1.0
+pkgrel=1
pkgdesc="A Python feed generator"
url="https://github.com/getpelican/feedgenerator"
arch="noarch"
license="BSD-3-Clause"
-depends="py3-six py3-tz"
+depends="python3 py3-tz"
makedepends="py3-setuptools"
+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
@@ -25,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="db3642acb8f0c9fd692f37a79cf5862e60687a1745afbc6593d37a0372adb994de603238a17a8eae95ffcc993195f63037f16122a3cf8771e6922dea492fb5d5 feedgenerator-1.9.1.tar.gz"
+sha512sums="
+b8b41f5b256130166c8dba34dd950782f9acb506e3e37a2fe13b5e1f9d33f7d39b7f862e446f4f6f2f480973617feb70303f78a4fb6741f110166e61b92f0075 feedgenerator-2.1.0.tar.gz
+"
diff --git a/testing/py3-ffmpeg/APKBUILD b/testing/py3-ffmpeg/APKBUILD
new file mode 100644
index 00000000000..d83a41b975f
--- /dev/null
+++ b/testing/py3-ffmpeg/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-ffmpeg
+_pkgname=ffmpeg-python
+pkgver=0.2.0
+pkgrel=3
+pkgdesc="Python bindings for FFmpeg"
+url="https://github.com/kkroening/ffmpeg-python"
+arch="noarch"
+license="Apache-2.0"
+depends="ffmpeg py3-future"
+makedepends="py3-setuptools"
+options="!check" # test fails
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kkroening/ffmpeg-python/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+ sed -e '/pytest-runner/d' -i setup.py
+}
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+933ed958d61536bbbc0e0b08e19521c4b1f7df1cfe97de0b3d149a2748c5bd74915a3134861e8ecb1f92d5860315228b76aefcd087fcf07e188a56c651f5e301 py3-ffmpeg-0.2.0.tar.gz
+"
diff --git a/testing/py3-findpython/APKBUILD b/testing/py3-findpython/APKBUILD
new file mode 100644
index 00000000000..d941dbda3a2
--- /dev/null
+++ b/testing/py3-findpython/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-findpython
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="Utility to find python versions on your system"
+url="https://github.com/frostming/findpython"
+arch="noarch"
+license="MIT"
+depends="py3-packaging"
+makedepends="py3-gpep517 py3-installer py3-pdm-backend"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/frostming/findpython/archive/$pkgver/py3-findpython-$pkgver.tar.gz"
+builddir="$srcdir/findpython-$pkgver"
+
+build() {
+ export PDM_BUILD_SCM_VERSION=$pkgver
+ 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="
+e6651fe040042ca1f7b75fd8fed899be91fa5d3e51b898ff6e9cb59a0d0155a9cdc2af26321681d51326b7f7900c1048bc813aad7ad201269b8bb5a2775427c2 py3-findpython-0.6.0.tar.gz
+"
diff --git a/testing/py3-firmata/APKBUILD b/testing/py3-firmata/APKBUILD
index 57ca90191bd..4f6f265de38 100644
--- a/testing/py3-firmata/APKBUILD
+++ b/testing/py3-firmata/APKBUILD
@@ -3,14 +3,17 @@
pkgname=py3-firmata
_pkgname=pyFirmata
pkgver=1.0.3
-pkgrel=3
+pkgrel=9
pkgdesc="Python interface for the Firmata procotol"
url="https://github.com/tino/pyFirmata"
arch="noarch"
license="MIT"
-depends="python3 py3-serial"
+depends="python3 py3-pyserial"
makedepends="py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/tino/pyFirmata/archive/$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/tino/pyFirmata/archive/$pkgver.tar.gz
+ py311.patch
+ "
builddir="$srcdir/$_pkgname-$pkgver"
replaces=py-firmata # Backwards compatibility
@@ -25,7 +28,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="626da09ea543dd722129dd7156bb1ba185d40480689d3b0108d89a1a2c9361105822c57e50c39413d1a6ded08f20211b4606b2cb18f5a578c399fda6b00e6abb pyFirmata-1.0.3.tar.gz"
+sha512sums="
+626da09ea543dd722129dd7156bb1ba185d40480689d3b0108d89a1a2c9361105822c57e50c39413d1a6ded08f20211b4606b2cb18f5a578c399fda6b00e6abb pyFirmata-1.0.3.tar.gz
+95d990613c3338d1e7e81d846bd0a1343fbaae58b02fd641f8cc05ac25f0fac25a232ca18e8abda075f99ff83564174c09347f83aec0f14338f58b2feb0de6de py311.patch
+"
diff --git a/testing/py3-firmata/py311.patch b/testing/py3-firmata/py311.patch
new file mode 100644
index 00000000000..eba213aacbd
--- /dev/null
+++ b/testing/py3-firmata/py311.patch
@@ -0,0 +1,13 @@
+diff --git a/pyfirmata/pyfirmata.py b/pyfirmata/pyfirmata.py
+index 045efc4..06b0c9d 100755
+--- a/pyfirmata/pyfirmata.py
++++ b/pyfirmata/pyfirmata.py
+@@ -182,7 +182,7 @@ class Board(object):
+
+ def add_cmd_handler(self, cmd, func):
+ """Adds a command handler for a command."""
+- len_args = len(inspect.getargspec(func)[0])
++ len_args = len(inspect.getfullargspec(func)[0])
+
+ def add_meta(f):
+ def decorator(*args, **kwargs):
diff --git a/testing/py3-fitipy/APKBUILD b/testing/py3-fitipy/APKBUILD
deleted file mode 100644
index 9cc1712835e..00000000000
--- a/testing/py3-fitipy/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-fitipy
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="A simple filesystem interface"
-url="https://github.com/MatthewScholefield/fitipy"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/f/fitipy/fitipy-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/fitipy-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f86d14e1bd50aad0a6037609fc1c7b16aaafc61d4f2610e6180378e6e8f95fd2b189547a6abcc8af1a096b8d69aec5536cbc54f830151ac7fcb62a5e8198ef5b fitipy-1.0.0.tar.gz"
diff --git a/testing/py3-flake8-blind-except/APKBUILD b/testing/py3-flake8-blind-except/APKBUILD
index f264be5024f..9f4b4e3962b 100644
--- a/testing/py3-flake8-blind-except/APKBUILD
+++ b/testing/py3-flake8-blind-except/APKBUILD
@@ -2,26 +2,33 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-blind-except
_pkgname=flake8-blind-except
-pkgver=0.1.1
-pkgrel=1
+pkgver=0.2.1
+pkgrel=4
pkgdesc="Extension for flake8 which checks for blind except: statements"
options="!check" # No testsuite
url="https://github.com/elijahandrews/flake8-blind-except"
arch="noarch"
license="MIT"
depends="py3-flake8 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
-replaces="py-flake8-blind-except" # Backwards compatibility
+replaces="py-flake8-blind-except" # Backwards compatibility
provides="py-flake8-blind-except=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="3a74e626b87e570a079dd54ac4abbdabf2daa0b5bc64b8205f54747ddb8ce8dd4ded9dd3222307f879dcda8fc9aa47dcfacf401da27d7717888cd3d9691a0513 flake8-blind-except-0.1.1.tar.gz"
+sha512sums="
+0917df4610c6c25319f6382b92f8a2a67519b2a6266f43ae23ea2e44f0416f93cacdd7cc39bb69c817f608becf726839c81c93425ecf66ffb95b49eeb2e0145b flake8-blind-except-0.2.1.tar.gz
+"
diff --git a/testing/py3-flake8-builtins/APKBUILD b/testing/py3-flake8-builtins/APKBUILD
index 21b9c9fb209..f9a5e0bc0d4 100644
--- a/testing/py3-flake8-builtins/APKBUILD
+++ b/testing/py3-flake8-builtins/APKBUILD
@@ -1,27 +1,33 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-builtins
-pkgver=1.5.3
-pkgrel=0
+pkgver=2.1.0
+pkgrel=3
pkgdesc="Extension for flake8 to check for builtins"
options="!check" # No testsuite
url="https://github.com/gforcada/flake8-builtins"
arch="noarch"
license="MIT"
depends="py3-flake8"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/f/flake8-builtins/flake8-builtins-$pkgver.tar.gz"
builddir="$srcdir"/flake8-builtins-$pkgver
-replaces="py-flake8-builtins" # Backwards compatibility
+replaces="py-flake8-builtins" # Backwards compatibility
provides="py-flake8-builtins=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="78f71bac92c8090e54b682684649a98101de6bfdb7d07717fb26c827cead7417ef27f23ed39afc086a19e9f587a0d7c6e86d95f0686d528af5c6594e863c111a flake8-builtins-1.5.3.tar.gz"
+sha512sums="
+66fc3c0740642a02a5b0e8cc4d65eb0e7469a66ccdd725a7f593de10f45f503f336e346fdaa6e8a557340724f5b8f47f18f5a381bd20d65cbadbbe4934a625a2 flake8-builtins-2.1.0.tar.gz
+"
diff --git a/testing/py3-flake8-commas/APKBUILD b/testing/py3-flake8-commas/APKBUILD
deleted file mode 100644
index 56bb41537a9..00000000000
--- a/testing/py3-flake8-commas/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-flake8-commas
-_pkgname=flake8-commas
-pkgver=2.0.0
-pkgrel=1
-pkgdesc="Extension for flake8 to enforce trailing commas"
-options="!check" # Uses flake8 not flake8-3 to run tests
-url="https://github.com/trevorcreech/flake8-commas"
-arch="noarch"
-license="MIT"
-depends="py3-flake8"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-flake8-commas" # Bacwards compatibility
-provides="py-flake8-commas=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="${PWD}/build/lib" py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="454190df8b8068731a8310db69a3b01944600a95d456b133d3746a7d9712cccd4c599b88ccd9b24d74f46843a14752b44c60084f6195e800c5b89891073823d7 flake8-commas-2.0.0.tar.gz"
diff --git a/testing/py3-flake8-copyright/APKBUILD b/testing/py3-flake8-copyright/APKBUILD
index 70273e87229..73c3bbcba2d 100644
--- a/testing/py3-flake8-copyright/APKBUILD
+++ b/testing/py3-flake8-copyright/APKBUILD
@@ -2,26 +2,33 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-copyright
_pkgname=flake8-copyright
-pkgver=0.2.2
-pkgrel=1
+pkgver=0.2.4
+pkgrel=3
pkgdesc="Extension for flake8 which checks for copyrights"
options="!check" # No testsuite
url="https://github.com/savoirfairelinux/flake8-copyright"
arch="noarch"
license="MIT"
depends="py3-flake8 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
-replaces="py-flake8-copyright" # Backwards compatibility
+replaces="py-flake8-copyright" # Backwards compatibility
provides="py-flake8-copyright=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="8ade49f386e67d14e4b826946b947454cf2502ff249a9ab1d359f61fa42ebc2b17dd465708894cf82ffd153f0be1bed746464220d40d9d4dc1b07940ec280f28 flake8-copyright-0.2.2.tar.gz"
+sha512sums="
+a6ab47e1bb715618f075c51f398e18180404871b3b0faf1c2d30701d5203db6bc23771bf22ffb5bafcd8ee856b9b64237b316bd503ae7dceed6ca284ccd5a74d flake8-copyright-0.2.4.tar.gz
+"
diff --git a/testing/py3-flake8-debugger/APKBUILD b/testing/py3-flake8-debugger/APKBUILD
index db4d33b865a..99f37252913 100644
--- a/testing/py3-flake8-debugger/APKBUILD
+++ b/testing/py3-flake8-debugger/APKBUILD
@@ -2,27 +2,38 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-debugger
_pkgname=flake8-debugger
-pkgver=3.2.1
-pkgrel=1
+pkgver=4.1.2
+pkgrel=4
pkgdesc="Extension for flake8 which lint for ipdb/pdb statements"
options="!check" # No tests on PyPi, GitHub uses pyproject.toml
url="https://github.com/jbkahn/flake8-debugger"
arch="noarch"
license="MIT"
depends="py3-flake8"
-makedepends="py3-setuptools"
+makedepends="py3-poetry-core py3-pytest-runner py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/f/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-flake8-debugger" # Backwards compatibility
+replaces="py-flake8-debugger" # Backwards compatibility
provides="py-flake8-debugger=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+
+ # https://github.com/JBKahn/flake8-debugger/issues/30
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/pyproject.toml \
+ "$pkgdir"/usr/lib/python3*/site-packages/test_linter.py \
+ "$pkgdir"/usr/lib/python3*/site-packages/__pycache__/test_linter*
}
-sha512sums="0c67007e05f5ec7177bb27869ac4f05def04ecb4c5763b2d6860358f796333e833a5c87a5b6dc357000c9216850be9929de5f1d56297088b8e41039bb4ece18d flake8-debugger-3.2.1.tar.gz"
+sha512sums="
+2f65ebe2c97d144e2104142f5739998e7b09937c27c1710e4a5e26c1837895b834293543f574ac4872229533213d26436cc8598afabf283ede8b4fdc6fdbb1ed flake8-debugger-4.1.2.tar.gz
+"
diff --git a/testing/py3-flake8-import-order/APKBUILD b/testing/py3-flake8-import-order/APKBUILD
index 26db968bc30..647aa2498ed 100644
--- a/testing/py3-flake8-import-order/APKBUILD
+++ b/testing/py3-flake8-import-order/APKBUILD
@@ -2,27 +2,33 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-import-order
_pkgname=flake8-import-order
-pkgver=0.18.1
-pkgrel=1
+pkgver=0.18.2
+pkgrel=4
pkgdesc="Extension for flake8 which checks for the ordering of import statements"
options="!check" # Requires unpackaged pylama
-url="https://github.com/public/flake8-import-order"
+url="https://github.com/PyCQA/flake8-import-order"
arch="noarch"
license="MIT"
-depends="py3-flake8"
-makedepends="py3-setuptools"
+depends="py3-flake8 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
-replaces="py-flake8-import-order" # Backwards compatibility
+replaces="py-flake8-import-order" # Backwards compatibility
provides="py-flake8-import-order=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="f7c6e53d1033214f774b6b169deff2872e6eb36a3656cdd723449561611ad90c0be5fbbd822e1bba9e93f64f83f40fa3823aa5a21c22b9df0b3426f8182239f2 flake8-import-order-0.18.1.tar.gz"
+sha512sums="
+a0367a5ae834fc0d0ee8d65bfec4eb4bdf1039806a69e0be2fc9e9d37b6b413ecc81275f8ecf6bb33b42e31603b02ff0c3c7baefe812dd5c443df54d8fc0d1cd flake8-import-order-0.18.2.tar.gz
+"
diff --git a/testing/py3-flake8-isort/APKBUILD b/testing/py3-flake8-isort/APKBUILD
index 1e3740127fe..aff17ae7197 100644
--- a/testing/py3-flake8-isort/APKBUILD
+++ b/testing/py3-flake8-isort/APKBUILD
@@ -1,28 +1,38 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-isort
-_pkgname=flake8-isort
-pkgver=2.7.0
+pkgver=6.1.1
pkgrel=1
pkgdesc="Extension for flake8 which integrates isort"
-options="!check" # No testsuite
url="https://github.com/gforcada/flake8-isort"
arch="noarch"
license="GPL-2.0-only"
depends="py3-flake8 py3-isort"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+makedepends="py3-gpep517 py3-hatchling"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/f/flake8-isort/flake8_isort-$pkgver.tar.gz"
+builddir="$srcdir/flake8_isort-$pkgver"
replaces="py-flake8-isort" # Backwards compatibility
provides="py-flake8-isort=$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 run_tests
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="9f2065ae9b0ed6f630eafdff73c3e35bdd5ef7dd0110b34222d4d695abc32070224d04855d401c8af8f21dda6f89530f527a5f6937adf110e5b8a52ff39ddfed flake8-isort-2.7.0.tar.gz"
+sha512sums="
+72840b133396524a4a4b514cc72a4ce96007144d3f1950671d7cbfedb27be1bb0d03bebe1281addc3acd70bb08ea269cea1626f17f174fa937d37ebd8e07cfc3 flake8_isort-6.1.1.tar.gz
+"
diff --git a/testing/py3-flake8-polyfill/APKBUILD b/testing/py3-flake8-polyfill/APKBUILD
new file mode 100644
index 00000000000..f3066a8500a
--- /dev/null
+++ b/testing/py3-flake8-polyfill/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py3-flake8-polyfill
+pkgver=1.0.2
+pkgrel=4
+pkgdesc="compatibility helpers for Flake8 plugins that intend to support Flake8 2.x and 3.x simultaneously"
+url="https://gitlab.com/pycqa/flake8-polyfill"
+arch="all"
+license="MIT"
+depends="py3-flake8"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/f/flake8-polyfill/flake8-polyfill-$pkgver.tar.gz"
+builddir="$srcdir/flake8-polyfill-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="767a599aacbe87328b3e36bd85e0841870760ed9bd95dd3a4a9084edc6f0ae89f8203d565c2b075f16f1db21b647c17b2aa59b08e4702109d7e5f79f36d9f3fa flake8-polyfill-1.0.2.tar.gz"
diff --git a/testing/py3-flake8-print/APKBUILD b/testing/py3-flake8-print/APKBUILD
index 07addb64ee5..303d08ecc45 100644
--- a/testing/py3-flake8-print/APKBUILD
+++ b/testing/py3-flake8-print/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flake8-print
_pkgname=flake8-print
-pkgver=3.1.0
-pkgrel=1
+pkgver=5.0.0
+pkgrel=5
pkgdesc="Extension for flake8 which lint for print statements"
url="https://github.com/jbkahn/flake8-print"
arch="noarch"
license="MIT"
-depends="py3-flake8 py3-six"
-makedepends="py3-setuptools"
+depends="py3-flake8 python3"
+makedepends="py3-poetry-core py3-pytest-runner 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
-replaces="py-flake8-print" # Backwards compatiblity
+replaces="py-flake8-print" # Backwards compatiblity
provides="py-flake8-print=$pkgver-r$pkgrel" # Backwards compatiblity
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="9d8ea7017eebedf365a45cc3f1bcca2aec73c5257a935cd5d5bc927d5d1f06866b7e072f70e2a8a13e61c3416af6afbaa1fa6225dad087bbdc796656f0eda1f0 flake8-print-3.1.0.tar.gz"
+sha512sums="
+69fd20fa92b795c8efa5971f9e17e6ac579fb642b3c07fafc4143b4d01acc2c577dbba6fd818c8ad92ad60709986777da59b804f2fec768f210a64b88252a987 flake8-print-5.0.0.tar.gz
+"
diff --git a/testing/py3-flake8-quotes/APKBUILD b/testing/py3-flake8-quotes/APKBUILD
deleted file mode 100644
index 68a6b089ca5..00000000000
--- a/testing/py3-flake8-quotes/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-flake8-quotes
-pkgver=3.2.0
-pkgrel=0
-pkgdesc="Extension for flake8 which lint for double quotes"
-url="http://github.com/zheller/flake8-quotes/"
-arch="noarch"
-license="MIT"
-depends="py3-flake8"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/f/flake8-quotes/flake8-quotes-$pkgver.tar.gz"
-builddir="$srcdir"/flake8-quotes-$pkgver
-
-replaces="py-flake8-quotes" # Backwards compatiblity
-provides="py-flake8-quotes=$pkgver-r$pkgrel" # Backwards compatiblity
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="29e3d73ab8710ae39c5dd610cef60dabcc72312b23a6ae44ff2969426fde8cf3f35b0b5d1445688374fc1236c9eef73a394cf987b7738835a877e6a78d86fdb8 flake8-quotes-3.2.0.tar.gz"
diff --git a/testing/py3-flake8-snippets/APKBUILD b/testing/py3-flake8-snippets/APKBUILD
index 4c6da353223..c667f7c6e65 100644
--- a/testing/py3-flake8-snippets/APKBUILD
+++ b/testing/py3-flake8-snippets/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-flake8-snippets
_pkgname=flake8-snippets
pkgver=0.2
-pkgrel=1
+pkgrel=8
pkgdesc="Extension for flake8 which lint for code snippets"
-url="https://github.com/bitmazk/flake8-snippets"
+url="https://github.com/bitlabstudio/flake8-snippets"
arch="noarch"
license="MIT"
depends="py3-flake8"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flake8-snippets" # Backwards compatibility
+replaces="py-flake8-snippets" # Backwards compatibility
provides="py-flake8-snippets=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="b7a3a335770912da9c162cb002550c299034e08c40b9b64d352b048650d1fe772508b1a226b873e65b8f6fea856fd2a2099e6bb84bc1e121730d19d32eae5e21 flake8-snippets-0.2.tar.gz"
diff --git a/testing/py3-flake8-todo/APKBUILD b/testing/py3-flake8-todo/APKBUILD
index c66a4eedfb6..d6a1034237c 100644
--- a/testing/py3-flake8-todo/APKBUILD
+++ b/testing/py3-flake8-todo/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-flake8-todo
_pkgname=flake8-todo
pkgver=0.7
-pkgrel=1
+pkgrel=7
pkgdesc="TODO notes checker plugin for flake8"
url="https://github.com/schlamar/flake8-todo"
arch="noarch"
license="MIT"
depends="py3-flake8"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flake8-todo" # Backwards compatibility
+replaces="py-flake8-todo" # Backwards compatibility
provides="py-flake8-todo=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="d7a2259b531627c8866f1d7c29664f61dcd01a523f55efc851052f8ed5e1bc13108d7011093a1aedda2c343e1b127999aa91f65a5f29b218efc2bfc7064fdd96 flake8-todo-0.7.tar.gz"
diff --git a/testing/py3-flask-accept/APKBUILD b/testing/py3-flask-accept/APKBUILD
new file mode 100644
index 00000000000..b25de7bd78e
--- /dev/null
+++ b/testing/py3-flask-accept/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py3-flask-accept
+_pkgname=flask_accept
+pkgver=0.0.6
+pkgrel=1
+pkgdesc="Custom Accept header routing support for Flask"
+url="https://github.com/di/flask-accept"
+arch="noarch"
+license="MIT"
+depends="
+ py3-flask
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-flake8
+ "
+options="!check"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/f/flask_accept/flask_accept-$pkgver.tar.gz"
+
+builddir="$srcdir"/$_pkgname-$pkgver
+
+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 -W ignore::DeprecationWarning
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1f3eff090ee847e27323b62c0c9fffc34c74fc120c4828550caa93403d0462227554a470b565e6d9be045d923682995df1faa342a3df6cc1defdaafaf52b9af0 flask_accept-0.0.6.tar.gz
+"
diff --git a/testing/py3-flask-admin/APKBUILD b/testing/py3-flask-admin/APKBUILD
index 1dc02e1b22d..a00c403c501 100644
--- a/testing/py3-flask-admin/APKBUILD
+++ b/testing/py3-flask-admin/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-admin
-pkgver=1.5.6
-pkgrel=0
+pkgver=1.6.1
+pkgrel=3
pkgdesc="Flask admin interface"
-url="https://pypi.python.org/pypi/Flask-Admin"
+url="https://pypi.org/project/Flask-Admin"
arch="noarch"
license="BSD-3-Clause"
depends="
@@ -12,19 +12,25 @@ depends="
py3-flask
py3-wtforms
"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/F/Flask-Admin/Flask-Admin-$pkgver.tar.gz"
builddir="$srcdir"/Flask-Admin-$pkgver
-replaces="py-flask-admin" # Backwards compatibility
+replaces="py-flask-admin" # Backwards compatibility
provides="py-flask-admin=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="4b32d218fe806792cb8f1bd104d9e9ca4a0fdfce1d9c18efed3cebbdbf5d9317ffa5032bc128b40d67066160dbf8265184f1bee013b8ddaac2c515fd9e60a516 Flask-Admin-1.5.6.tar.gz"
+sha512sums="
+3defe8eecaf96a775b93de761ffc51c80950f3dc71d005830aabfb24e019d9c4fc3fe9a69805b7b227b13693708f3aa381206cf1240b9fe5efb28c1bee44503d Flask-Admin-1.6.1.tar.gz
+"
diff --git a/testing/py3-flask-autorouter/APKBUILD b/testing/py3-flask-autorouter/APKBUILD
index f4b52b8eb74..0571025ccfa 100644
--- a/testing/py3-flask-autorouter/APKBUILD
+++ b/testing/py3-flask-autorouter/APKBUILD
@@ -1,27 +1,32 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-autorouter
-_pkgname=flask-autorouter
-pkgver=0.2.1
-pkgrel=2
+pkgver=0.2.2
+pkgrel=3
pkgdesc="Flask generating URL routing"
-url="https://pypi.python.org/pypi/flask-autorouter"
+url="https://pypi.org/project/flask-autorouter"
arch="noarch"
license="MIT"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dpep/flask_autorouter/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/flask_autorouter-$pkgver"
-replaces="py-flask-autorouter" # Backwards compatibility
+replaces="py-flask-autorouter" # Backwards compatibility
provides="py-flask-autorouter=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="d588377c2dafee3e478de2a03b7e5819df4f63e976d12b758e5da52fdeda4ec662538c174a7c0411195f0abaf9e3e7a942d1f571360344fcc296b8e18a682ead flask-autorouter-0.2.1.tar.gz"
+sha512sums="
+b16441cfcd1f25df9f365fbd4db8f57fcc40e16932ba8e27f95b054ed535afbc238685831e5a7086c94a2c2a0c51ee9d996277bf1384089921ebf6d71e32bd3f py3-flask-autorouter-0.2.2.tar.gz
+"
diff --git a/testing/py3-flask-basicauth/APKBUILD b/testing/py3-flask-basicauth/APKBUILD
index e0f5543b248..a939ce12048 100644
--- a/testing/py3-flask-basicauth/APKBUILD
+++ b/testing/py3-flask-basicauth/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-flask-basicauth
_pkgname=Flask-BasicAuth
pkgver=0.2.0
-pkgrel=2
+pkgrel=9
pkgdesc="Flask HTTP basic access authentication"
options="!check" # Broken testsuite
-url="https://pypi.python.org/pypi/Flask-BasicAuth"
+url="https://pypi.org/project/Flask-BasicAuth"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-basicauth" # Backwards compatibility
+replaces="py-flask-basicauth" # Backwards compatibility
provides="py-flask-basicauth=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="921b05e273e9a4b06f00cb68b68ddca20328f1a3afd1dd779d973792f1382a2bf2c6a8f70719e097dfa3d00d8e511fc35fba218de3fbb8ed6197ddbaa8027f93 Flask-BasicAuth-0.2.0.tar.gz"
diff --git a/testing/py3-flask-bcrypt/APKBUILD b/testing/py3-flask-bcrypt/APKBUILD
index bbdaab1fe9f..797d9e10b75 100644
--- a/testing/py3-flask-bcrypt/APKBUILD
+++ b/testing/py3-flask-bcrypt/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-bcrypt
_pkgname=Flask-Bcrypt
-pkgver=0.7.1
-pkgrel=1
+pkgver=1.0.1
+pkgrel=5
pkgdesc="Flask Bcrypt hashing extension"
-url="https://pypi.python.org/pypi/Flask-Bcrypt"
+url="https://pypi.org/project/Flask-Bcrypt"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-flask py3-bcrypt"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-bcrypt" # Backwards compatibility
+replaces="py-flask-bcrypt" # Backwards compatibility
provides="py-flask-bcrypt=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="05184a6a29f0a45943c435bf025f3f9522a357e88fcf7949f72083f0696b4ca16cb2c8cdb54e7cb266068bb04b1b41b44456ae97641bda930e00d20f3a60e5f3 Flask-Bcrypt-0.7.1.tar.gz"
+sha512sums="
+e7df01d5e2e193e80e12c8cf07fe01a487ab1b3a2f9175533e653636c2a4aa7a4175cbfc456b3251b7c536ab72f9b88c6d407163741807c9965c2b6d842c8203 Flask-Bcrypt-1.0.1.tar.gz
+"
diff --git a/testing/py3-flask-bootstrap/APKBUILD b/testing/py3-flask-bootstrap/APKBUILD
index df9baa15188..b5129a1361b 100644
--- a/testing/py3-flask-bootstrap/APKBUILD
+++ b/testing/py3-flask-bootstrap/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-flask-bootstrap
_pkgname=Flask-Bootstrap
pkgver=3.3.7.1
-pkgrel=1
+pkgrel=8
pkgdesc="Flask bootstrap extension"
-url="https://pypi.python.org/pypi/Flask-Bootstrap"
+url="https://pypi.org/project/Flask-Bootstrap"
arch="noarch"
license="BSD-3-Clause and Apache-2.0"
depends="python3 py3-flask py3-dominate py3-visitor"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-bootstrap" # Backwards compatibility
+replaces="py-flask-bootstrap" # Backwards compatibility
provides="py-flask-bootstrap=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="23500d9575de5c52fcfd8a41bb7d5680440a0f1bae25e7a089b7f0e3885304a4c7d5b916f98adbfe80b98c8d107feef0c5c282e7a4bec7038310e778da4ca2e7 Flask-Bootstrap-3.3.7.1.tar.gz"
diff --git a/testing/py3-flask-cache/APKBUILD b/testing/py3-flask-cache/APKBUILD
index 74123c17d23..3a8c355b4b8 100644
--- a/testing/py3-flask-cache/APKBUILD
+++ b/testing/py3-flask-cache/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-flask-cache
_pkgname=Flask-Cache
pkgver=0.13.1
-pkgrel=1
+pkgrel=9
pkgdesc="Flask cache support"
options="!check" # Testsuite broken
-url="https://pypi.python.org/pypi/Flask-Cache"
+url="https://pypi.org/project/Flask-Cache"
arch="noarch"
-license="BSD"
+license="BSD-3-Clause"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-cache" # Backwards compatibility
+replaces="py-flask-cache" # Backwards compatibility
provides="py-flask-cache=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="1ef8e1ad7cef40cd75579c17c106cc30f32d3a0f442b11b2aaf350e6045c4483fd885e65d79040f871eaeb9bf6b1a6fc320245172d7199ae0bbfd2f0343d4f56 Flask-Cache-0.13.1.tar.gz"
diff --git a/testing/py3-flask-cdn/APKBUILD b/testing/py3-flask-cdn/APKBUILD
index 76016a56407..d0a7154fc5e 100644
--- a/testing/py3-flask-cdn/APKBUILD
+++ b/testing/py3-flask-cdn/APKBUILD
@@ -3,14 +3,17 @@
pkgname=py3-flask-cdn
_pkgname=Flask-CDN
pkgver=1.5.3
-pkgrel=1
+pkgrel=7
pkgdesc="Flask CDN static files extension"
-url="https://pypi.python.org/pypi/Flask-CDN"
+url="https://pypi.org/project/Flask-CDN"
arch="noarch"
license="MIT"
depends="python3 py3-flask"
makedepends="py3-setuptools"
-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
+ assertEquals.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
replaces="py-flask-cdn" # Backwards compatibility
@@ -25,7 +28,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="dbec6798506876ea098f11236f960c7b557a0174a38330845e7fe8312cd359b104c025aabfc2b8d1d22a095106c9f7c1af6b4cd55a83039b94ed177f1045e3e4 Flask-CDN-1.5.3.tar.gz"
+sha512sums="
+dbec6798506876ea098f11236f960c7b557a0174a38330845e7fe8312cd359b104c025aabfc2b8d1d22a095106c9f7c1af6b4cd55a83039b94ed177f1045e3e4 Flask-CDN-1.5.3.tar.gz
+8afbf6584f0fd64f0c242d112d3e6c97496278c33c5bd70fe722983032957cf5471783a54fea2fedb7674aaf1f843d4e7eb9ca5aff95b90c3122950826e23172 assertEquals.patch
+"
diff --git a/testing/py3-flask-cdn/assertEquals.patch b/testing/py3-flask-cdn/assertEquals.patch
new file mode 100644
index 00000000000..22d0a74598b
--- /dev/null
+++ b/testing/py3-flask-cdn/assertEquals.patch
@@ -0,0 +1,96 @@
+diff --git a/tests/test_flask_cdn.py b/tests/test_flask_cdn.py
+index adc72c5..5640852 100644
+--- a/tests/test_flask_cdn.py
++++ b/tests/test_flask_cdn.py
+@@ -19,3 +19,3 @@ class DefaultsTest(unittest.TestCase):
+ """ Tests CDN_DEBUG default value is correctly set. """
+- self.assertEquals(self.app.config['CDN_DEBUG'], False)
++ self.assertEqual(self.app.config['CDN_DEBUG'], False)
+
+@@ -23,3 +23,3 @@ class DefaultsTest(unittest.TestCase):
+ """ Tests CDN_DOMAIN default value is correctly set. """
+- self.assertEquals(self.app.config['CDN_DOMAIN'], None)
++ self.assertEqual(self.app.config['CDN_DOMAIN'], None)
+
+@@ -27,3 +27,3 @@ class DefaultsTest(unittest.TestCase):
+ """ Tests CDN_HTTPS default value is correctly set. """
+- self.assertEquals(self.app.config['CDN_HTTPS'], None)
++ self.assertEqual(self.app.config['CDN_HTTPS'], None)
+
+@@ -31,3 +31,3 @@ class DefaultsTest(unittest.TestCase):
+ """ Tests CDN_TIMESTAMP default value is correctly set. """
+- self.assertEquals(self.app.config['CDN_TIMESTAMP'], True)
++ self.assertEqual(self.app.config['CDN_TIMESTAMP'], True)
+
+@@ -61,3 +61,3 @@ class UrlTests(unittest.TestCase):
+ # non static endpoint url_for in template
+- self.assertEquals(self.client_get('').get_data(True), '/')
++ self.assertEqual(self.client_get('').get_data(True), '/')
+
+@@ -66,3 +66,3 @@ class UrlTests(unittest.TestCase):
+ exp = 'http://mycdnname.cloudfront.net/static/bah.js'
+- self.assertEquals(self.client_get(ufs).get_data(True), exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), exp)
+
+@@ -74,3 +74,3 @@ class UrlTests(unittest.TestCase):
+ exp = '/static/bah.js'
+- self.assertEquals(self.client_get(ufs).get_data(True), exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), exp)
+
+@@ -84,15 +84,15 @@ class UrlTests(unittest.TestCase):
+ self.app.config['CDN_HTTPS'] = True
+- self.assertEquals(self.client_get(ufs, secure=True).get_data(True),
++ self.assertEqual(self.client_get(ufs, secure=True).get_data(True),
+ https_exp)
+- self.assertEquals(self.client_get(ufs).get_data(True), https_exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), https_exp)
+
+ self.app.config['CDN_HTTPS'] = False
+- self.assertEquals(self.client_get(ufs, secure=True).get_data(True),
++ self.assertEqual(self.client_get(ufs, secure=True).get_data(True),
+ http_exp)
+- self.assertEquals(self.client_get(ufs).get_data(True), http_exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), http_exp)
+
+ self.app.config['CDN_HTTPS'] = None
+- self.assertEquals(self.client_get(ufs, secure=True).get_data(True),
++ self.assertEqual(self.client_get(ufs, secure=True).get_data(True),
+ https_exp)
+- self.assertEquals(self.client_get(ufs).get_data(True), http_exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), http_exp)
+
+@@ -106,3 +106,3 @@ class UrlTests(unittest.TestCase):
+ exp = 'http://mycdnname.cloudfront.net/static/bah.js?t={0}'.format(ts)
+- self.assertEquals(self.client_get(ufs).get_data(True), exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), exp)
+
+@@ -110,3 +110,3 @@ class UrlTests(unittest.TestCase):
+ exp = 'http://mycdnname.cloudfront.net/static/bah.js'
+- self.assertEquals(self.client_get(ufs).get_data(True), exp)
++ self.assertEqual(self.client_get(ufs).get_data(True), exp)
+
+@@ -117,3 +117,3 @@ class UrlTests(unittest.TestCase):
+ exp = 'https://mycdnname.cloudfront.net/static/bah.js'
+- self.assertEquals(self.client_get(ufs, secure=False).get_data(True),
++ self.assertEqual(self.client_get(ufs, secure=False).get_data(True),
+ exp)
+@@ -123,3 +123,3 @@ class UrlTests(unittest.TestCase):
+ exp = 'http://mycdnname.cloudfront.net/static/bah.js'
+- self.assertEquals(self.client_get(ufs, secure=True).get_data(True),
++ self.assertEqual(self.client_get(ufs, secure=True).get_data(True),
+ exp)
+@@ -129,3 +129,3 @@ class UrlTests(unittest.TestCase):
+ exp = '//mycdnname.cloudfront.net/static/bah.js'
+- self.assertEquals(self.client_get(ufs, secure=True).get_data(True),
++ self.assertEqual(self.client_get(ufs, secure=True).get_data(True),
+ exp)
+@@ -161,3 +161,3 @@ class BlueprintTest(unittest.TestCase):
+ exp = 'http://mycdnname.cloudfront.net/static/bah.js?t={0}'.format(ts)
+- self.assertEquals(response.get_data(True), exp)
++ self.assertEqual(response.get_data(True), exp)
+
+@@ -171,3 +171,3 @@ class BlueprintTest(unittest.TestCase):
+ exp = 'http://mycdnname.cloudfront.net/static/bah_bp.js?t={0}'.format(ts)
+- self.assertEquals(response.get_data(True), exp)
++ self.assertEqual(response.get_data(True), exp)
+
diff --git a/testing/py3-flask-components/APKBUILD b/testing/py3-flask-components/APKBUILD
index 748d4110efd..3f67bb35ed2 100644
--- a/testing/py3-flask-components/APKBUILD
+++ b/testing/py3-flask-components/APKBUILD
@@ -3,25 +3,35 @@
pkgname=py3-flask-components
_pkgname=Flask-Components
pkgver=0.1.1
-pkgrel=2
+pkgrel=9
pkgdesc="Flask files discovery extension"
-url="https://pypi.python.org/pypi/Flask-Components"
+url="https://pypi.org/project/Flask-Components"
arch="noarch"
license="MIT"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ importlib.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check"
-replaces="py-flask-components" # Backwards compatibility
+replaces="py-flask-components" # Backwards compatibility
provides="py-flask-components=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="ba93d8080939c9e754c801e9860940b029a853a2f591772be497e6884d9fb443c67b945cf452f530a74e1b3cc7123e7d18432df7002bf60284d58a0f9d036657 Flask-Components-0.1.1.tar.gz"
+sha512sums="
+ba93d8080939c9e754c801e9860940b029a853a2f591772be497e6884d9fb443c67b945cf452f530a74e1b3cc7123e7d18432df7002bf60284d58a0f9d036657 Flask-Components-0.1.1.tar.gz
+67e9958191c8528a5d9294619bafa0366804f0515901dc9167b685bc892bca48b9aa05fa680d1b142e19169212206c0aa2ed0ecd771d7371132fd769a672169b importlib.patch
+"
diff --git a/testing/py3-flask-components/importlib.patch b/testing/py3-flask-components/importlib.patch
new file mode 100644
index 00000000000..f2bb0d8e683
--- /dev/null
+++ b/testing/py3-flask-components/importlib.patch
@@ -0,0 +1,15 @@
+diff --git a/setup.py b/setup.py
+index 051e9f6..0421483 100644
+--- a/setup.py
++++ b/setup.py
+@@ -3,4 +3,3 @@
+ from setuptools import setup, find_packages
+-from imp import load_source
+-
++from importlib.machinery import SourceFileLoader
+
+@@ -8,3 +7,3 @@ setup(
+ name='Flask-Components',
+- version=load_source('', 'src/flask_components/_version.py').__version__,
++ version=SourceFileLoader('', 'src/flask_components/_version.py').load_module().__version__,
+ description='A simple flask extension to discover files in a declared '
diff --git a/testing/py3-flask-dbconfig/APKBUILD b/testing/py3-flask-dbconfig/APKBUILD
index 0a7704df8bc..500a0284797 100644
--- a/testing/py3-flask-dbconfig/APKBUILD
+++ b/testing/py3-flask-dbconfig/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-flask-dbconfig
_pkgname=Flask-DBConfig
pkgver=0.3.12
-pkgrel=2
+pkgrel=8
pkgdesc="Flask local DB extension"
options="!check" # No testsuite
url="https://github.com/tedw4rd/flask-db-configuration/"
arch="noarch"
license="MIT"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-dbconfig" # Backwards compatibility
+replaces="py-flask-dbconfig" # Backwards compatibility
provides="py-flask-dbconfig=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="3fd006e4dde523fc12a446aa8c42fb0e69e22d43b303ecd0556433cf6ddbcbbefdbac9a0f2a87236901baab14b42df9a146ee4d44c0ae7014ad24d7b8722b6f4 Flask-DBConfig-0.3.12.tar.gz"
diff --git a/testing/py3-flask-flatpages/APKBUILD b/testing/py3-flask-flatpages/APKBUILD
index 95be4cec22d..c0fded4cbe1 100644
--- a/testing/py3-flask-flatpages/APKBUILD
+++ b/testing/py3-flask-flatpages/APKBUILD
@@ -1,28 +1,33 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-flatpages
-_pkgname=Flask-FlatPages
-pkgver=0.7.1
-pkgrel=1
+pkgver=0.8.2
+pkgrel=2
pkgdesc="Flask static pages extension"
-url="https://pypi.python.org/pypi/Flask-FlatPages"
+url="https://pypi.org/project/Flask-FlatPages"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-flask py3-jinja2 py3-markdown py3-yaml"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-pytest-runner py3-gpep517 py3-wheel"
checkdepends="py3-pygments"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/F/Flask-FlatPages/Flask-FlatPages-$pkgver.tar.gz"
+builddir="$srcdir"/Flask-FlatPages-$pkgver
-replaces="py-flask-flatpages" # Backwards compatibility
+replaces="py-flask-flatpages" # Backwards compatibility
provides="py-flask-flatpages=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="8205de10a5048c53865b7dab0da0e3e4dae7f37da469cd8ac4f0fa7510ec78a6617a1cefa1b196bcb1fc919df6a178f20814c84e9660b8f76fb42e3fd624a363 Flask-FlatPages-0.7.1.tar.gz"
+sha512sums="
+b46d32df54b08a91a5f0a8f9c311bb1d86a6f88270125f251c6b22d2c5c59ecf72c2cb52e9257d9ed2a3f64c324d087b7d2f93154ced832ff28837bc6c22a919 Flask-FlatPages-0.8.2.tar.gz
+"
diff --git a/testing/py3-flask-gzip/APKBUILD b/testing/py3-flask-gzip/APKBUILD
index 8568a79652e..f2b0c76a52d 100644
--- a/testing/py3-flask-gzip/APKBUILD
+++ b/testing/py3-flask-gzip/APKBUILD
@@ -3,22 +3,26 @@
pkgname=py3-flask-gzip
_pkgname=Flask-gzip
pkgver=0.2
-pkgrel=1
+pkgrel=8
pkgdesc="Compress responses in your Flask app with gzip"
-url="https://pypi.python.org/pypi/Flask-gzip"
+url="https://pypi.org/project/Flask-gzip"
arch="noarch"
license="BSD-3-Clause"
depends="py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="0625fcab11c607209a8b95455621e347bd71d5be47ae1af09f11f284d495f29d0e23b7f228eeca9bed1615fffa48f036eddfdf2abab78b81b0d693a9b0b94fd8 Flask-gzip-0.2.tar.gz"
diff --git a/testing/py3-flask-headers/APKBUILD b/testing/py3-flask-headers/APKBUILD
index 35e1ab2a061..e85f50fb931 100644
--- a/testing/py3-flask-headers/APKBUILD
+++ b/testing/py3-flask-headers/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-flask-headers
_pkgname=Flask-Headers
pkgver=1.0
-pkgrel=2
+pkgrel=9
pkgdesc="Flask headers extension"
options="!check" # No testsuite on PYPI, no GitHub tarballs
-url="https://pypi.python.org/pypi/Flask-Headers"
+url="https://pypi.org/project/Flask-Headers"
arch="noarch"
license="MIT"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-headers" # Backwards compatibility
+replaces="py-flask-headers" # Backwards compatibility
provides="py-flask-headers=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="aae3088745970575464dc93bb0198a461ac218f4b9d2396a9ff7b950610f191453341f6d434ba7636d44f54a6d8fd0b3e000dba36c272d80c3d85242e029a48b Flask-Headers-1.0.tar.gz"
diff --git a/testing/py3-flask-httpauth/APKBUILD b/testing/py3-flask-httpauth/APKBUILD
index f736275847d..c7dc061fd8f 100644
--- a/testing/py3-flask-httpauth/APKBUILD
+++ b/testing/py3-flask-httpauth/APKBUILD
@@ -1,17 +1,16 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-httpauth
-pkgver=4.0.0
-pkgrel=0
+pkgver=4.8.0
+pkgrel=2
pkgdesc="Basic and Digest HTTP authentication for Flask routes"
-url="https://pypi.python.org/pypi/Flask-HTTPAuth"
+url="https://pypi.org/project/Flask-HTTPAuth"
arch="noarch"
license="MIT"
-depends="
- py3-flask
- python3
- "
-makedepends="py3-setuptools"
+depends="py3-flask python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-asyncio py3-asgiref"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/F/Flask-HTTPAuth/Flask-HTTPAuth-$pkgver.tar.gz"
builddir="$srcdir"/Flask-HTTPAuth-$pkgver
@@ -19,15 +18,22 @@ replaces="py-flask-httpauth" # Backwards compatibility
provides="py-flask-httpauth=$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/Flask_HTTPAuth*.whl
}
-sha512sums="cdf37ebca72d9cf290cd2ff1fcf1bc5196af94d83310d6b267a9e7cd0db7be807ec775c8d5abf79c00373a119a9a922c8ace62253677562fd482390b5c01cc3a Flask-HTTPAuth-4.0.0.tar.gz"
+sha512sums="
+15878f45faf6bdde43d7b588539b044d621ba1ba590880e3d0a3bccf4e9bd04b898b3372775e99577b7e7955c4b6d2d7cc80df19ba30415c6b7c1d3183b7e5f4 Flask-HTTPAuth-4.8.0.tar.gz
+"
diff --git a/testing/py3-flask-json-schema/APKBUILD b/testing/py3-flask-json-schema/APKBUILD
new file mode 100644
index 00000000000..92ce2df61c5
--- /dev/null
+++ b/testing/py3-flask-json-schema/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-flask-json-schema
+pkgver=0.0.5
+pkgrel=4
+pkgdesc="Flask extension to validate JSON requests"
+url="https://pypi.org/project/flask-json-schema/"
+arch="noarch"
+license="MIT"
+depends="py3-flask py3-jsonschema"
+makedepends="py3-setuptools py3-wheel py3-gpep517"
+subpackages="$pkgname-pyc"
+source="https://pypi.org/packages/source/f/flask-json-schema/Flask-json-schema-$pkgver.tar.gz"
+builddir="$srcdir/Flask-json-schema-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+43564624775972d90ff38a8f1f81385975bf201e1915f4e9e01ba1efbd2f09a61669748d74d508861ecb346e37bdbc065b330da9a493cfe397eb58ed9215590c Flask-json-schema-0.0.5.tar.gz
+"
diff --git a/testing/py3-flask-limiter/APKBUILD b/testing/py3-flask-limiter/APKBUILD
new file mode 100644
index 00000000000..800380743c3
--- /dev/null
+++ b/testing/py3-flask-limiter/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=py3-flask-limiter
+pkgver=3.6.0
+pkgrel=0
+pkgdesc="Rate Limiting extension for Flask"
+url="https://github.com/alisaifee/flask-limiter"
+arch="noarch"
+license="MIT"
+depends="
+ py3-flask
+ py3-limits
+ py3-ordered-set
+ py3-rich
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="
+ py3-flask-restful
+ py3-flask-restx
+ py3-limits-mongodb
+ py3-limits-redis
+ py3-pytest
+ py3-pytest-cov
+ "
+options="!check" # tests depend on unpackaged modules
+subpackages="$pkgname-pyc"
+source="
+ https://github.com/alisaifee/flask-limiter/archive/refs/tags/$pkgver/flask-limiter-$pkgver.tar.gz
+
+ our-std-is-good-enough.patch
+ "
+builddir="$srcdir/flask-limiter-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+95bb2af7ff9d317821235212818718f7e5a13cf18f9991fa4e392a99bdc7b4aafbe510e67dd9d56860c987f954c7c4f3f0a6d29cab51bfb55606319b549e839f flask-limiter-3.6.0.tar.gz
+1b90e9134076cda249695d5ea741db9d205a2ae452c7d6edfe01eb37a221ce6f64b0e8ddcdbbee9b0e0fb16a28e5eabf14f1c1e41e965c7e3b93ea4f42caf553 our-std-is-good-enough.patch
+"
diff --git a/testing/py3-flask-limiter/our-std-is-good-enough.patch b/testing/py3-flask-limiter/our-std-is-good-enough.patch
new file mode 100644
index 00000000000..664143fae57
--- /dev/null
+++ b/testing/py3-flask-limiter/our-std-is-good-enough.patch
@@ -0,0 +1,22 @@
+--- ./flask_limiter/typing.py.orig
++++ ./flask_limiter/typing.py
+@@ -11,7 +11,7 @@
+ cast,
+ )
+
+-from typing_extensions import ParamSpec
++from typing import ParamSpec
+
+ R = TypeVar("R")
+ P = ParamSpec("P")
+--- ./flask_limiter/commands.py.orig
++++ ./flask_limiter/commands.py
+@@ -14,7 +14,7 @@
+ from rich.table import Table
+ from rich.theme import Theme
+ from rich.tree import Tree
+-from typing_extensions import TypedDict
++from typing import TypedDict
+ from werkzeug.exceptions import MethodNotAllowed, NotFound
+ from werkzeug.routing import Rule
+
diff --git a/testing/py3-flask-loopback/APKBUILD b/testing/py3-flask-loopback/APKBUILD
index 030a81ece80..5848d8795a4 100644
--- a/testing/py3-flask-loopback/APKBUILD
+++ b/testing/py3-flask-loopback/APKBUILD
@@ -2,26 +2,30 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-loopback
_pkgname=Flask-Loopback
-pkgver=1.2.3
-pkgrel=2
+pkgver=1.4.7
+pkgrel=7
pkgdesc="A library to create requests without network connection"
-url="https://pypi.python.org/pypi/Flask-Loopback"
+url="https://pypi.org/project/Flask-Loopback"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-flask py3-requests py3-urlobject"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-loopback" # Backwards compatibility
+replaces="py-flask-loopback" # Backwards compatibility
provides="py-flask-loopback=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="a206c53026645d7e7bfd168b05cce375780c4568292381269eb7bd05a2486a0c12353554509b54ec2fd46339cb9882194992bea26165eca691f5e58dedc96954 Flask-Loopback-1.2.3.tar.gz"
+sha512sums="556f6182fabeabff3b173ee030f1986c4a791760e388ae5352b883a3ad79e3495ae9a3a7e3ee3826de149665609ba01f25fb993cebe4ea8d63ef5c14c18f57df Flask-Loopback-1.4.7.tar.gz"
diff --git a/testing/py3-flask-mailman/APKBUILD b/testing/py3-flask-mailman/APKBUILD
new file mode 100644
index 00000000000..c064333081b
--- /dev/null
+++ b/testing/py3-flask-mailman/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=py3-flask-mailman
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Porting Django's email implementation to your Flask applications"
+url="https://waynerv.github.io/flask-mailman/"
+arch="noarch"
+license="BSD-3-Clause"
+depends="py3-flask"
+makedepends="py3-gpep517 py3-poetry-core py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/waynerv/flask-mailman/archive/v$pkgver/py3-flask-mailman-$pkgver.tar.gz"
+builddir="$srcdir/flask-mailman-$pkgver"
+
+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="
+4ce9e4d6075c90d9e9dca19942c829bcaf74079f866d62799e659a3f593152412f7c8c847aafb6d09a7c1e9f1ab290a77878bcecd75e8e6270037dd60c1c76f5 py3-flask-mailman-1.0.0.tar.gz
+"
diff --git a/testing/py3-flask-markdown/APKBUILD b/testing/py3-flask-markdown/APKBUILD
index b6fe377fed9..8c8ee78d854 100644
--- a/testing/py3-flask-markdown/APKBUILD
+++ b/testing/py3-flask-markdown/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-flask-markdown
_pkgname=Flask-Markdown
pkgver=0.3
-pkgrel=1
+pkgrel=8
pkgdesc="Flask markdown extension"
-url="https://pypi.python.org/pypi/Flask-Markdown"
+url="https://pypi.org/project/Flask-Markdown"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-flask py3-markdown"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-markdown" # Backwards compatibility
+replaces="py-flask-markdown" # Backwards compatibility
provides="py-flask-markdown=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="0d95217bbbf34aca2027b51cbf5114fbd6a5a695fd7caaf4427ea9244ddd188b5a509bf86cfb98479068691fcc04d0b5747a2b2ac7059b13d868237a168f398a Flask-Markdown-0.3.tar.gz"
diff --git a/testing/py3-flask-migrate/APKBUILD b/testing/py3-flask-migrate/APKBUILD
index c4ab4f6968b..50bae4cc8dc 100644
--- a/testing/py3-flask-migrate/APKBUILD
+++ b/testing/py3-flask-migrate/APKBUILD
@@ -1,29 +1,46 @@
-# Contributor:
+# Contributor: Steven Guikal <void@fluix.one>
# Maintainer: Philipp Glaum <p@pglaum.de>
pkgname=py3-flask-migrate
_pkgname=Flask-Migrate
-pkgver=2.5.3
-pkgrel=0
+pkgver=4.0.5
+pkgrel=1
pkgdesc="SQLAlchemy database migrations for Flask applications using Alembic"
url="https://pypi.org/project/Flask-Migrate/"
arch="noarch"
license="MIT"
-depends="python3 py3-flask py3-flask-sqlalchemy py3-alembic"
-makedepends="py3-setuptools"
-checkdepends="py3-flask-script"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+depends="
+ py3-alembic
+ py3-flask
+ py3-flask-sqlalchemy
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/miguelgrinberg/Flask-Migrate/archive/refs/tags/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 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ PYTHONPATH="$PWD/src" .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="f26db1c6ceddceb635cce4259b4508ecc8dc26dbfa67397205668883129835840050d909337a73712d3b1ff3e0bbfab74f5ac94c2ac472ec64f86e64789107ac Flask-Migrate-2.5.3.tar.gz"
+sha512sums="
+cdc02e3f567119604e56e9cafed3e7b40e7335d4c3f42cffb26515a4cec12ff34c16f8d5ae036d841cf846985973980d820cdc5d87a99ebf634b3b17becaeb69 Flask-Migrate-4.0.5.tar.gz
+"
diff --git a/testing/py3-flask-paginate/APKBUILD b/testing/py3-flask-paginate/APKBUILD
index c8199fe9118..5f2a692fbbf 100644
--- a/testing/py3-flask-paginate/APKBUILD
+++ b/testing/py3-flask-paginate/APKBUILD
@@ -1,29 +1,32 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-paginate
-pkgver=0.6.0
-pkgrel=0
+pkgver=0.8.1
+pkgrel=6
pkgdesc="Simple paginate support for Flask"
-url="https://pypi.python.org/pypi/Flask-paginate"
+url="https://pypi.org/project/Flask-paginate"
arch="noarch"
-license="BSD"
-depends="
- python3
- py3-flask
- "
-makedepends="py3-setuptools"
+license="BSD-3-Clause"
+depends="python3 py3-flask"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/lixxu/flask-paginate/archive/$pkgver.tar.gz"
builddir="$srcdir"/flask-paginate-$pkgver
-replaces="py-flask-paginate" # Backwards compatibility
+replaces="py-flask-paginate" # Backwards compatibility
provides="py-flask-paginate=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="e3055998bf1706b2474c4e3b1d7075dbbb672d6ac05f5006002ba73766ec01ac35ec910bb91e1ac0f005ee81d9eeb88e1f086f46690a1e36a255a54cc8a6ec18 py3-flask-paginate-0.6.0.tar.gz"
+sha512sums="
+ca226c79bd944a19760048c1289b554ee048f4f8d1f231f5545423843b7c0616d52ee8024cc68628e11c5f528972897d7fdb1630f87063bbd0e40c4dacf91224 py3-flask-paginate-0.8.1.tar.gz
+"
diff --git a/testing/py3-flask-peewee/APKBUILD b/testing/py3-flask-peewee/APKBUILD
index 1a4a33f33a4..cd2fccefb3a 100644
--- a/testing/py3-flask-peewee/APKBUILD
+++ b/testing/py3-flask-peewee/APKBUILD
@@ -2,25 +2,31 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-peewee
_pkgname=flask-peewee
-pkgver=3.0.3
-pkgrel=1
+pkgver=3.0.4
+pkgrel=6
pkgdesc="Flask integration for peewee"
-url="http://pypi.python.org/pypi/flask-peewee"
+url="https://pypi.org/project/flask-peewee"
arch="noarch"
license="MIT"
depends="py3-flask py3-jinja2 py3-peewee py3-werkzeug py3-wtf-peewee
py3-wtforms"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="c0ca7a8dc0fbfae7df72c56b5b905efb87c0432d39dfc2b34bd33debe03a21fa49c7a21d37306b1bdafb066d4ebdbd65fa0a387bedbe161886d02b559af3c718 flask-peewee-3.0.3.tar.gz"
+sha512sums="
+84d6158d3e7e1868eaea951bb0a18ab98238295b0d00558a5ed0d47af5d5df88420cfa843422bd88abc2ffa2de0177e3d4048806ffd162286a4403c3e7645100 flask-peewee-3.0.4.tar.gz
+"
diff --git a/testing/py3-flask-principal/APKBUILD b/testing/py3-flask-principal/APKBUILD
index 523dbd8e161..bd64616063d 100644
--- a/testing/py3-flask-principal/APKBUILD
+++ b/testing/py3-flask-principal/APKBUILD
@@ -3,30 +3,36 @@
pkgname=py3-flask-principal
_pkgname=flask-principal
pkgver=0.4.0
-pkgrel=2
+pkgrel=8
pkgdesc="Flask Identity management"
url="https://pythonhosted.org/Flask-Principal/"
arch="noarch"
license="MIT"
depends="python3 py3-blinker py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/mattupstate/flask-principal/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-flask-principal" # Backwards compatibility
+replaces="py-flask-principal" # Backwards compatibility
provides="py-flask-principal=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- nosetests
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m nose
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="ed8cb28c4e8d936de96db0bf9f7cb45b253dc204c4b8f8dd8022ef1552592ff6324b4a33d3ee862794a6e20eb8c32a0365e7b9397d427da5022c5ded3dfa308a py3-flask-principal-0.4.0.tar.gz"
diff --git a/testing/py3-flask-qrcode/APKBUILD b/testing/py3-flask-qrcode/APKBUILD
index fb719045a3c..14fe6e39087 100644
--- a/testing/py3-flask-qrcode/APKBUILD
+++ b/testing/py3-flask-qrcode/APKBUILD
@@ -2,27 +2,35 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-flask-qrcode
_pkgname=Flask-QRcode
-pkgver=2.0.2
-pkgrel=3
+pkgver=3.1.0
+pkgrel=4
pkgdesc="Simple flask extension to render QR codes on template"
url="https://github.com/marcoagner/Flask-QRcode"
arch="noarch"
license="GPL-3.0-or-later"
depends="py3-flask py3-qrcode"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-qrcode" # Backwards compatibility
+replaces="py-flask-qrcode" # Backwards compatibility
provides="py-flask-qrcode=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
}
-sha512sums="c70cdb75648e74697793fc9b34a54f87adab68efdffb7f00e759ebeb7bc9c20d20a90b50dc70a19661ea5e2c98d14d9825eb483a0e1aec05504b5958638307e5 Flask-QRcode-2.0.2.tar.gz"
+sha512sums="
+399555827132ff08911691cafaf33feb4ed4c66eba1d880f56b1a91d4ffbcdbe5f7ed0abe4a4c7972eff8103d410455bb333232ac596f6bc25cd51df0c0d7a79 Flask-QRcode-3.1.0.tar.gz
+"
diff --git a/testing/py3-flask-restaction/APKBUILD b/testing/py3-flask-restaction/APKBUILD
index 7706ace5cc8..9cf60085f99 100644
--- a/testing/py3-flask-restaction/APKBUILD
+++ b/testing/py3-flask-restaction/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-flask-restaction
_pkgname=flask-restaction
pkgver=0.25.3
-pkgrel=1
+pkgrel=8
pkgdesc="Flask RESTful API extension"
-url="https://pypi.python.org/pypi/flask-restaction"
+url="https://pypi.org/project/flask-restaction"
arch="noarch"
license="MIT"
# Has missing dependencies
depends="python3 py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-restaction" # Backwards compatibility
+replaces="py-flask-restaction" # Backwards compatibility
provides="py-flask-restaction=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="ac49d7547b036be9d0f40a632afce4df8718e2cb2cd205f93fd8ee6f560b894f8bc07fa00907ac92824d97001c4d8b9c99f92414ba69f4dbfe6a4e5955251c4e flask-restaction-0.25.3.tar.gz"
diff --git a/testing/py3-flask-restful/APKBUILD b/testing/py3-flask-restful/APKBUILD
deleted file mode 100644
index f047e41a996..00000000000
--- a/testing/py3-flask-restful/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-flask-restful
-_pkgname=Flask-RESTful
-pkgver=0.3.8
-pkgrel=0
-pkgdesc="Flask RESTful API extension"
-url="https://pypi.python.org/pypi/Flask-RESTful"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-flask"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-flask-restful" # Backwards compatibility
-provides="py-flask-restful=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3d60feb7a8e4ab84d86d1eba5328bfc0034c4369d4e049c98ffe8bb1e26166bbc4b5f3fb994930b336d13dd8a02d2149c3a8e0d3f12afdb60765b571e47dfbfd Flask-RESTful-0.3.8.tar.gz"
diff --git a/testing/py3-flask-restless/APKBUILD b/testing/py3-flask-restless/APKBUILD
index b7fa945ece5..b37b23d04c1 100644
--- a/testing/py3-flask-restless/APKBUILD
+++ b/testing/py3-flask-restless/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-flask-restless
_pkgname=Flask-Restless
pkgver=0.17.0
-pkgrel=1
+pkgrel=9
pkgdesc="Flask ReSTful API generation extension"
-url="https://pypi.python.org/pypi/Flask-Restless"
+url="https://pypi.org/project/Flask-Restless"
arch="noarch"
-license="BSD"
+license="AGPL-3.0-or-later OR BSD-3-Clause"
depends="python3 py3-flask"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-flask-restless" # Backwards compatibility
+replaces="py-flask-restless" # Backwards compatibility
provides="py-flask-restless=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="c7fc7ee0626f010af528fce02dcfb896673c5ba81e9815acc50f5060a826a95a7f5c5af966a3bc6f222416d161dad70cad25acb43e9575621d036f0315d526d3 Flask-Restless-0.17.0.tar.gz"
diff --git a/testing/py3-flask-security/APKBUILD b/testing/py3-flask-security/APKBUILD
new file mode 100644
index 00000000000..0c75cb9c8f0
--- /dev/null
+++ b/testing/py3-flask-security/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=py3-flask-security
+pkgver=5.4.3
+pkgrel=1
+pkgdesc="Quick and simple security for Flask applications"
+url="https://github.com/Flask-Middleware/flask-security"
+arch="noarch"
+license="MIT"
+depends="
+ py3-email-validator
+ py3-flask
+ py3-flask-babel
+ py3-flask-login
+ py3-flask-mailman
+ py3-flask-principal
+ py3-flask-sqlalchemy
+ py3-flask-wtf
+ py3-itsdangerous
+ py3-passlib
+ py3-phonenumbers
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-dateutil
+ py3-pytest
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/Flask-Middleware/flask-security/archive/$pkgver/py3-flask-security-$pkgver.tar.gz
+ nowarnings.patch
+ remove_importlib_resources.patch
+ "
+builddir="$srcdir/flask-security-$pkgver"
+options="!check" # tests broken
+
+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 -n auto
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+9fdce3dfbfd622ae417166da383bb8bf744648b92026b4f28640e6658d355d25f7267382636bc1a5cc47969a7c0ebdd43d66b29aaafdd0cf7a6cafb248aff7a6 py3-flask-security-5.4.3.tar.gz
+5d0367c29f69362b1df536f26a7f399c25a351c46572cc37ffc5526c124a860a8fc0a0b01b19483daded64990247a0e48761c25e6b2a9316fbd293088315d016 nowarnings.patch
+1d77cf6d7a57100a072a788cd1e4b362f3ff8fe6e4cce8fdf777f1891ce365d9d7958e956f8c7b6ff9c1079234e21b095a6cb99ed687cd907ad8cc86030da36d remove_importlib_resources.patch
+"
diff --git a/testing/py3-flask-security/nowarnings.patch b/testing/py3-flask-security/nowarnings.patch
new file mode 100644
index 00000000000..36d0daae88a
--- /dev/null
+++ b/testing/py3-flask-security/nowarnings.patch
@@ -0,0 +1,12 @@
+diff --git a/pytest.ini b/pytest.ini
+index 6272c1f..3511a1d 100644
+--- a/pytest.ini
++++ b/pytest.ini
+@@ -16,7 +16,6 @@ markers =
+ webauthn
+
+ filterwarnings =
+- error
+ ignore::DeprecationWarning:mongoengine:
+ ignore::DeprecationWarning:flask_login:0
+ ignore::DeprecationWarning:pydantic_core:0
diff --git a/testing/py3-flask-security/remove_importlib_resources.patch b/testing/py3-flask-security/remove_importlib_resources.patch
new file mode 100644
index 00000000000..f563d8f8b32
--- /dev/null
+++ b/testing/py3-flask-security/remove_importlib_resources.patch
@@ -0,0 +1,13 @@
+diff --git a/flask_security/babel.py b/flask_security/babel.py
+index 44c6d2f..c4a29bf 100644
+--- a/flask_security/babel.py
++++ b/flask_security/babel.py
+@@ -18,7 +18,7 @@
+ from collections.abc import Iterable
+ import atexit
+ from contextlib import ExitStack
+-from importlib_resources import files, as_file
++from importlib.resources import files, as_file
+
+ import typing as t
+
diff --git a/testing/py3-flask-sqlalchemy/APKBUILD b/testing/py3-flask-sqlalchemy/APKBUILD
deleted file mode 100644
index 5cbdfc9a078..00000000000
--- a/testing/py3-flask-sqlalchemy/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor:
-# Maintainer: Philipp Glaum <p@pglaum.de>
-pkgname=py3-flask-sqlalchemy
-_pkgname=Flask-SQLAlchemy
-pkgver=2.4.3
-pkgrel=0
-pkgdesc="Adds SQLAlchemy support to your Flask application."
-url="https://pypi.org/project/Flask-SQLAlchemy/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-flask py3-sqlalchemy"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$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="231593d53b02c4560eeb74dca7075495eb6fb4a75a4d25257aa281401dac39ac3ab2ef0edfd76ce762332c599b9bf2d903743142056a827a3170709516e94445 Flask-SQLAlchemy-2.4.3.tar.gz"
diff --git a/testing/py3-flask-themer/APKBUILD b/testing/py3-flask-themer/APKBUILD
new file mode 100644
index 00000000000..d8664fee0e2
--- /dev/null
+++ b/testing/py3-flask-themer/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Éloi Rivard <eloi.rivard@aquilenet.fr>
+# Maintainer: Éloi Rivard <eloi.rivard@aquilenet.fr>
+pkgname=py3-flask-themer
+_pyname=flask-themer
+pkgver=2.0.0
+pkgrel=1
+pkgdesc="Simple theme mechanism for Flask"
+url="https://pypi.org/project/flask-themer"
+arch="noarch"
+license="MIT"
+depends="py3-flask"
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/TkTech/flask-themer/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/flask-themer-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="." pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+334f72e5f8fb888c1cf1067e5b29b587e9c67708845d1efb00a8c4dbe30f3e7c684734b584d4c64b3516b75fdebd92b7c14355a3aa0d68f7c60fd7a983c29a14 py3-flask-themer-2.0.0.tar.gz
+"
diff --git a/testing/py3-flexmock/APKBUILD b/testing/py3-flexmock/APKBUILD
deleted file mode 100644
index 1b5678064d8..00000000000
--- a/testing/py3-flexmock/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-flexmock
-_pkgname=flexmock
-pkgver=0.10.4
-pkgrel=0
-pkgdesc="A collection of helpers and mock objects for Python"
-url="https://github.com/bkabrda/flexmock"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/bkabrda/flexmock/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$builddir"/build/lib pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
-}
-
-sha512sums="96d3af9625b1dbd987b291c7ed26a77476f54fe4548d16ad70adeefc0093f51a3b47d8b3fb4339611dfadd8b2d55a1bc734e70bc093683192f1f351badf08553 flexmock-0.10.4.tar.gz"
diff --git a/testing/py3-forbiddenfruit/APKBUILD b/testing/py3-forbiddenfruit/APKBUILD
index cccc5d814e6..976ec243c05 100644
--- a/testing/py3-forbiddenfruit/APKBUILD
+++ b/testing/py3-forbiddenfruit/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Dmitry Romanenko <dmitry@romanenko.in>
pkgname=py3-forbiddenfruit
_pkgname=forbiddenfruit
-pkgver=0.1.3
-pkgrel=1
+pkgver=0.1.4
+pkgrel=2
pkgdesc="Patch built-in python objects"
url="https://github.com/clarete/forbiddenfruit"
arch="all"
@@ -11,8 +11,10 @@ license="GPL-3.0-or-later OR MIT"
depends="python3"
checkdepends="py3-nose py3-coverage"
makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/f/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # fail with 3.11
build() {
python3 setup.py build
@@ -24,7 +26,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="abd3e95a03f60bbe2c522cc77487fcbafce1325e1537bcfdaaa347db0eb283adf3c97c08b5cb05e37a3ee10f5bff160bc8c96e61f1b5aa64a55f58dd1563d25b forbiddenfruit-0.1.3.tar.gz"
+sha512sums="
+88f8751a9ca1d475eb74114787a7aeda02973e9bc2c4bbb08de8a4d6fe05c6fb82db093aace8f718caaaeb8b06c89112e5f418b8ee4d903cc6183ddfa2cdb087 forbiddenfruit-0.1.4.tar.gz
+"
diff --git a/testing/py3-fpdf/APKBUILD b/testing/py3-fpdf/APKBUILD
new file mode 100644
index 00000000000..98e6a039fa3
--- /dev/null
+++ b/testing/py3-fpdf/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Michał Adamski <michal@ert.pl>
+pkgname=py3-fpdf
+pkgver=1.7.2
+pkgrel=5
+pkgdesc="Simple PDF generation for Python"
+url="https://pyfpdf.readthedocs.io/en/latest/"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/f/fpdf/fpdf-$pkgver.tar.gz"
+builddir="$srcdir/fpdf-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py check
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="3a4b4f363f36f821b5626b656b0ad199379aca171c7dd2a019e94f3bc39570b5624111d9fb3f8e0a7662e8f31184158e67263a475101378e84c200ebbbbcdd63 fpdf-1.7.2.tar.gz"
diff --git a/testing/py3-freetype-py/APKBUILD b/testing/py3-freetype-py/APKBUILD
new file mode 100644
index 00000000000..f62d4957823
--- /dev/null
+++ b/testing/py3-freetype-py/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Thomas Aldrian <aldrian.thom@proton.me>
+pkgname=py3-freetype-py
+pkgver=2.4.0
+pkgrel=1
+pkgdesc="FreeType Python bindings"
+url="https://github.com/rougier/freetype-py"
+arch="all"
+license="BSD-3-Clause"
+depends="freetype"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rougier/freetype-py/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/freetype-py-$pkgver/"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+
+ 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 tests
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+82cdb06cfae90bb94b5a2c91235ebc39e03ed85da92db139f6edddc09e219b07a9b6983b0990998fb0baaab2e92c628cf08d9b90a635a91636e17d2b228109e7 py3-freetype-py-2.4.0.tar.gz
+"
diff --git a/testing/py3-fsspec/APKBUILD b/testing/py3-fsspec/APKBUILD
deleted file mode 100644
index 5adc357345e..00000000000
--- a/testing/py3-fsspec/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-fsspec
-pkgver=0.7.4
-pkgrel=0
-pkgdesc="A specification for pythonic filesystems"
-url="https://github.com/intake/filesystem_spec"
-arch="noarch !mips !mips64" # Blocked by py3-numpy
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-numpy"
-source="https://github.com/intake/filesystem_spec/archive/$pkgver/filesystem_spec-$pkgver.tar.gz"
-builddir="$srcdir/filesystem_spec-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest -vra
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="086e7e7905ff4a55b7027d2b005fd875200bf40469ea4b36effb9805a3416145ba4c709c4a6c8a3ac24a033cbd2104e7ebe401e2610db6c2d8548a63587b343a filesystem_spec-0.7.4.tar.gz"
diff --git a/testing/py3-funcparserlib/APKBUILD b/testing/py3-funcparserlib/APKBUILD
index 0c7362dd7b5..b724d32627a 100644
--- a/testing/py3-funcparserlib/APKBUILD
+++ b/testing/py3-funcparserlib/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-funcparserlib
_pkgname=funcparserlib
-pkgver=0.3.6
-pkgrel=5
+pkgver=1.0.1
+pkgrel=4
pkgdesc="Recursive descent parsing library based on functional combinators"
url="https://github.com/vlasovskikh/funcparserlib"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-poetry-core 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
-replaces="py-funcparserlib" # for backwards compatibility
+replaces="py-funcparserlib" # for backwards compatibility
provides="py-funcparserlib=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="efa52f788aa902b099660cb8bc60a025085a8c383e52bd0824a0c3ae28a6c13804a0659de0c80b4dcd839ee70491805d4eecda6cea221e35c3750ec569098c24 funcparserlib-0.3.6.tar.gz"
+sha512sums="
+721673b7d79c19cd3cbad8387297644790581057d077139fe6efbaa14bc5ad28dc9074b34728bdd9ea1c00c56c402ce329d9f53728e59030408fd87059339f79 funcparserlib-1.0.1.tar.gz
+"
diff --git a/testing/py3-furl/APKBUILD b/testing/py3-furl/APKBUILD
index 8287343453c..828c12059e4 100644
--- a/testing/py3-furl/APKBUILD
+++ b/testing/py3-furl/APKBUILD
@@ -2,16 +2,17 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-furl
_pkgname=furl
-pkgver=2.1.0
-pkgrel=1
+pkgver=2.1.3
+pkgrel=2
pkgdesc="Python3 URL manipulator"
url="https://github.com/gruns/furl"
arch="noarch"
license="Unlicense"
depends="py3-orderedmultidict py3-six"
makedepends="py3-setuptools"
-checkdepends="py3-flake8 py3-pycodestyle py3-pyflakes"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+checkdepends="py3-pytest py3-flake8 py3-pycodestyle py3-pyflakes"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/f/furl/furl-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
@@ -19,11 +20,13 @@ build() {
}
check() {
- python3 setup.py test
+ PYTHONPATH="build:$PYTHONPATH" pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="c7de9c87e5368a3ccb7c0639b9c679b3c71ac75144f275b2491e88d361bfca8612b3b23e76e538a98b02c1666e2dac000cb9f5add2e97d240cead7f40a1411ca furl-2.1.0.tar.gz"
+sha512sums="
+ce7455bd1a352243efd9715e80e9f9979631cc058927edcd8c52ccb85d27fd8f32079611bb29c487d2add2d1d941d56e4db75520339dc371b1539811ccefda02 furl-2.1.3.tar.gz
+"
diff --git a/testing/py3-fuzzyfinder/APKBUILD b/testing/py3-fuzzyfinder/APKBUILD
deleted file mode 100644
index 460fc47a125..00000000000
--- a/testing/py3-fuzzyfinder/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Anjandev Momi <anjan@momi.ca>
-# Maintainer: Anjandev Momi <anjan@momi.ca>
-pkgname=py3-fuzzyfinder
-pkgver=2.1.0
-pkgrel=0
-pkgdesc="Fuzzy Finder implemented in Python"
-url="https://github.com/amjith/fuzzyfinder/"
-arch="all"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools py3-pytest"
-source="$pkgname-$pkgver.tar.gz::https://github.com/amjith/fuzzyfinder/archive/$pkgver.tar.gz"
-builddir="$srcdir"/fuzzyfinder-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d205ee8e50f38276f4b0928fb115024bf11e742b6cfe85ace47919098a6f5e4912224db2b466a71a38f7cf3e3a96dc357baa9a8f76aabbc10b4eed76fed9f971 py3-fuzzyfinder-2.1.0.tar.gz"
diff --git a/testing/py3-fuzzywuzzy/APKBUILD b/testing/py3-fuzzywuzzy/APKBUILD
new file mode 100644
index 00000000000..ad0fce208a4
--- /dev/null
+++ b/testing/py3-fuzzywuzzy/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-fuzzywuzzy
+_pyname=fuzzywuzzy
+pkgver=0.18.0
+pkgrel=6
+pkgdesc="Fuzzy string matching in python"
+url="https://github.com/seatgeek/fuzzywuzzy"
+arch="noarch"
+license="GPL-2.0-only"
+depends="python3 py3-levenshtein"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-pycodestyle py3-hypothesis"
+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
+}
+
+check() {
+ PYTHONPATH="$PWD/build/lib" pytest -v
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+4a21ea67278fa525842d48fed8db666d00eae6d13254e8844d11f63b47c3a305b3cac760f28c24c6347aebcf73e96180e0a7cfba29c75f01ece2f7751e0398c5 fuzzywuzzy-0.18.0.tar.gz
+"
diff --git a/testing/py3-geoip/APKBUILD b/testing/py3-geoip/APKBUILD
new file mode 100644
index 00000000000..18e136b703f
--- /dev/null
+++ b/testing/py3-geoip/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Weilu Jia <optix2000@gmail.com>
+# Maintainer: Weilu Jia <optix2000@gmail.com>
+pkgname=py3-geoip
+pkgver=1.3.2
+pkgrel=3
+pkgdesc="MaxMind GeoIP Legacy Database - Python API"
+url="https://github.com/maxmind/geoip-api-python"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="python3 geoip"
+makedepends="py3-setuptools python3-dev geoip-dev"
+checkdepends="py3-nose"
+options="!check" # Until there's an easy way to download legacy GeoIP DBs
+source="https://pypi.python.org/packages/source/G/GeoIP/GeoIP-$pkgver.tar.gz"
+builddir="$srcdir/GeoIP-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+313af794d839e83408b40573566fb55483c1ddd663a7919b54751bc9da85cf855f9eb17d8fdb641702740da5c5d79d79d3d7f15b82fa88092f780d0c667c4e7a GeoIP-1.3.2.tar.gz
+"
diff --git a/testing/py3-geoip2/APKBUILD b/testing/py3-geoip2/APKBUILD
deleted file mode 100644
index fa3f440ce20..00000000000
--- a/testing/py3-geoip2/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=py3-geoip2
-pkgver=3.0.0
-pkgrel=0
-pkgdesc="An API for the GeoIP2 web services and databases"
-url="https://www.maxmind.com/en/home"
-arch="noarch"
-license="Apache-2.0"
-depends="py3-requests py3-maxminddb"
-makedepends="python3 py3-setuptools"
-checkdepends="py3-nose py3-mock"
-_test_data_commit=f6ed981c23b0eb33d7c07568e2177236252afda6
-source="$pkgname-$pkgver.tar.gz::https://github.com/maxmind/GeoIP2-python/archive/v${pkgver}.tar.gz
- MaxMind-DB-test-data-$_test_data_commit.tar.gz::https://github.com/maxmind/MaxMind-DB/archive/$_test_data_commit.tar.gz"
-builddir="$srcdir/GeoIP2-python-$pkgver"
-
-prepare() {
- cd "$srcdir"
-
- # Submodule required for tests
- cp -r "MaxMind-DB-$_test_data_commit/"* "$builddir/tests/data"
-
- default_prepare
-}
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
-
- python3 setup.py test
-}
-
-package() {
- cd "$builddir"
-
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="685cfaca15abac73ceafa5795d8740a9d1e95f255c516623c80981bb78a5c6ad357829b154c382a4928295f311c6922b621aee1c794cac962da857507bfcfbdb py3-geoip2-3.0.0.tar.gz
-f7b9d370c330980d9419c7bea486b258aef3fa8ab49f83b860ef73036fc577c402e2f631090c5d1d23f2a8e34f927030a8fc6dc15edcd8002136673685aecb12 MaxMind-DB-test-data-f6ed981c23b0eb33d7c07568e2177236252afda6.tar.gz"
diff --git a/testing/py3-geojson/APKBUILD b/testing/py3-geojson/APKBUILD
deleted file mode 100644
index e8f3e1bbf73..00000000000
--- a/testing/py3-geojson/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-geojson
-pkgver=2.5.0
-pkgrel=1
-pkgdesc="Python bindings and utilities for GeoJSON"
-url="https://github.com/jazzband/geojson"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/g/geojson/geojson-$pkgver.tar.gz"
-builddir="$srcdir/geojson-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="68d59a6c7d796549dba4e4e71219901c2d939c7f8f5794c1e6be7cadffb006ad99ac658e0159977b3ecc88cf5ef4f908d3837dddc54c70261291f8fa7b8ffbae geojson-2.5.0.tar.gz"
diff --git a/testing/py3-gettext/APKBUILD b/testing/py3-gettext/APKBUILD
deleted file mode 100644
index 97b2475969e..00000000000
--- a/testing/py3-gettext/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=py3-gettext
-_pkgname=gettext
-pkgver=4.0
-pkgrel=2
-pkgdesc="Python implementation of Gettext"
-url="https://github.com/hannosch/python-gettext"
-arch="noarch"
-license="GPL-3.0-or-later"
-makedepends="py3-setuptools"
-checkdepends="py3-tox py3-six"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hannosch/python-gettext/archive/$pkgver.tar.gz"
-builddir="$srcdir/python-$_pkgname-$pkgver"
-
-replaces="py-gettext" # Backwards compatibility
-provides="py-gettext=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b33786ddd32d5e6c31b062ea88131788f8ba68fcd40e2a519e433584b662f766fd866fc249bc77ae06174d133fbae63b0ef9acf45161ff7d79ceab893afde873 py3-gettext-4.0.tar.gz"
diff --git a/testing/py3-gevent-websocket/APKBUILD b/testing/py3-gevent-websocket/APKBUILD
index a91ca422e7b..26cfadf5f23 100644
--- a/testing/py3-gevent-websocket/APKBUILD
+++ b/testing/py3-gevent-websocket/APKBUILD
@@ -3,14 +3,15 @@
pkgname=py3-gevent-websocket
_realname=gevent-websocket
pkgver=0.10.1
-pkgrel=1
+pkgrel=7
pkgdesc="gevent websockets library"
options="!check" # Requires unpackaged autobahntestsuite
-url="https://pypi.python.org/pypi/gevent-websocket/"
+url="https://pypi.org/project/gevent-websocket/"
arch="noarch"
license="Apache-2.0"
depends="python3 py3-gevent"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/g/$_realname/$_realname-$pkgver.tar.gz"
replaces="py-geventwebsocket" # Backwards compat
@@ -23,7 +24,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="4f25ec1646c223b89ddbb7cf4decae72cc4baa6e872443dc05994987f509068a806c8b5e135c433d631e35b3902227f0e4c89d8071aa74e24c06b0e543e8df93 gevent-websocket-0.10.1.tar.gz"
diff --git a/testing/py3-git-versioner/APKBUILD b/testing/py3-git-versioner/APKBUILD
new file mode 100644
index 00000000000..398c12b2d8d
--- /dev/null
+++ b/testing/py3-git-versioner/APKBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Frank Oltmanns <alpine@oltmanns.dev>
+pkgname=py3-git-versioner
+pkgver=7.1
+pkgrel=1
+pkgdesc="Manage current / next version for project"
+url="https://gitlab.com/alelec/__version__"
+arch="noarch"
+license="MIT"
+depends="py3-setuptools"
+makedepends="
+ py3-wheel
+ py3-gpep517"
+source="https://gitlab.com/alelec/__version__/-/archive/v$pkgver/__version__-v$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+builddir="$srcdir/__version__-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ # The wheel needs to be built twice for bootstrapping.
+ # The first build creates a wheel with version number 0.0.0
+ msg "Bootstrapping ..."
+ GIT_VERSIONER_VERSION_PY=$pkgver \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ # Remove the first build
+ rm -r .dist
+}
+
+build() {
+ # Now build again to build the wheel with the correct version number
+ GIT_VERSIONER_VERSION_PY=$pkgver \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python test.py
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" .dist/*.whl
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/"$pkgname"
+}
+
+sha512sums="
+34b6fb4ad5bcec3c3ba78451c6c9716b330aca11e4752daa8ddaad6c1fbd1ddc9f263e24263bb02e96e28df656cf9c04f31cc67ac6edd8d025f82a7a77b54f46 __version__-v7.1.tar.gz
+"
diff --git a/testing/py3-gitdb2/APKBUILD b/testing/py3-gitdb2/APKBUILD
deleted file mode 100644
index 038bd5c54c8..00000000000
--- a/testing/py3-gitdb2/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-gitdb2
-pkgver=4.0.2
-pkgrel=0
-pkgdesc="Git Object Database"
-options="!check" # (failures=1,errors=9)
-url="https://github.com/gitpython-developers/gitdb"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-smmap2"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/gitpython-developers/gitdb/archive/$pkgver.tar.gz"
-builddir="$srcdir/gitdb-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m unittest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d84c7ae598d9b3cca9899b324dcae969f4a3f2463df89f78411e1038a15cbaf67d8ae568bc2ab5e314a7807b5eceeefae30fb59c29b10f8a6c1eb9725eaf63bd py3-gitdb2-4.0.2.tar.gz"
diff --git a/testing/py3-github3/APKBUILD b/testing/py3-github3/APKBUILD
index eafd85e5f4c..c9e68679b1c 100644
--- a/testing/py3-github3/APKBUILD
+++ b/testing/py3-github3/APKBUILD
@@ -2,26 +2,53 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-github3
_pkgname=github3.py
-pkgver=1.3.0
-pkgrel=2
+pkgver=4.0.1
+pkgrel=1
pkgdesc="Python wrapper for the GitHub API"
url="https://github3py.readthedocs.org/"
arch="noarch"
license="BSD-3-Clause"
-depends="py3-dateutil py3-jwcrypto py3-requests py3-uritemplate py3-six"
-makedepends="py3-setuptools"
+depends="
+ py3-cryptography
+ py3-dateutil
+ py3-jwt
+ py3-requests
+ py3-uritemplate
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-hatchling
+ "
+checkdepends="
+ py3-betamax
+ py3-betamax_matchers
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+builddir="$srcdir/github3.py-$pkgver"
replaces="py-github3" # Backwards compatibility
provides="py-github3=$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 pytest -n auto -k 'not test_delete_key'
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="b57526f9ac2ce70569abbe8e8efcdc77376885b8f81a48d10ed255c9cdb530d0b9e544612781ffeadbedef08e04fe63cec3dbe029b6d86d15aeff143ce620366 github3.py-1.3.0.tar.gz"
+sha512sums="
+a79f7e4c48405318bd61d03c7a8b2dc3629f6e2d8e954e316fba319115dd12c6e5e2fd69a00743e86078367b083841dbc494704e66ffda8582fb48c614ecf5b2 github3.py-4.0.1.tar.gz
+"
diff --git a/testing/py3-gitlab/APKBUILD b/testing/py3-gitlab/APKBUILD
new file mode 100644
index 00000000000..28fac140ffc
--- /dev/null
+++ b/testing/py3-gitlab/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-gitlab
+_pyname=${pkgname/py3/python}
+pkgver=4.4.0
+pkgrel=1
+pkgdesc="Python wrapper for Gitlab's API"
+url="https://github.com/python-gitlab/python-gitlab"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="python3 py3-requests py3-requests-toolbelt"
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-installer
+ py3-wheel
+ py3-sphinx
+ py3-sphinxcontrib-autoprogram
+ py3-myst-parser
+ "
+checkdepends="py3-pytest py3-responses py3-build"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/python-gitlab/python-gitlab/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ sphinx-build -W -b man docs/ man/
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest --ignore=tests/functional/ \
+ --deselect tests/smoke/test_dists.py::test_sdist_includes_correct_files
+# FAILED tests/smoke/test_dists.py::test_sdist_includes_correct_files - FileNot...
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ install -Dm644 man/$_pyname.1 \
+ "$pkgdir"/usr/share/man/man1/$_pyname.1
+}
+
+sha512sums="
+cb572d169d948dcd74b1d85fb4e8fc2b2593ad167dd708f38bcaf5cccacc8a8b32231b2231d9cb69909e63ba0ce2c6f1cf522f21df56659343314ea2c0d39645 py3-gitlab-4.4.0.tar.gz
+"
diff --git a/testing/py3-gitpython/APKBUILD b/testing/py3-gitpython/APKBUILD
deleted file mode 100644
index 3f14116ac29..00000000000
--- a/testing/py3-gitpython/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-gitpython
-pkgver=3.1.2
-pkgrel=1
-pkgdesc="Python3 Git Library"
-url="https://github.com/gitpython-developers/GitPython"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-gitdb2"
-makedepends="py3-setuptools"
-checkdepends="py3-ddt py3-nose"
-source="https://pypi.python.org/packages/source/G/GitPython/GitPython-$pkgver.tar.gz"
-options="!check" # Tests require a specific git configuration
-builddir="$srcdir/GitPython-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="051b59b56a163839bf7754860bfc8e21cfde08b8e7d0fd66239c234b89ba5a83fa7e8540a12c5df3563e5353d1e01119dd1b0a5ea1c22daf7e071fb963cbc3a4 GitPython-3.1.2.tar.gz"
diff --git a/testing/py3-glob2/APKBUILD b/testing/py3-glob2/APKBUILD
index e383f628525..8b29fc9de58 100644
--- a/testing/py3-glob2/APKBUILD
+++ b/testing/py3-glob2/APKBUILD
@@ -3,13 +3,15 @@
pkgname=py3-glob2
_pkgname=glob2
pkgver=0.7
-pkgrel=1
+pkgrel=5
pkgdesc="Version of the glob module that supports recursion via **, and can capture patterns"
url="https://github.com/miracle2k/python-glob2"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
+makedepends="py3-setuptools"
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"
@@ -22,7 +24,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="6707c33782373cd71b1794ef3a143f6c0ceb5733bec944d16596eb4662df4c788328078b621bdda6096da95ec2f267256fca620dd7691eb02bf0ce940dd4150e glob2-0.7.tar.gz"
diff --git a/testing/py3-gls/APKBUILD b/testing/py3-gls/APKBUILD
new file mode 100644
index 00000000000..ec7e8f6644c
--- /dev/null
+++ b/testing/py3-gls/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-gls
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="pythonic generic language server"
+url="https://github.com/openlawlibrary/pygls"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-lsprotocol py3-cattrs"
+makedepends="py3-gpep517 py3-wheel py3-poetry-core"
+checkdepends="py3-pytest py3-pytest-asyncio"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/openlawlibrary/pygls/archive/refs/tags/v$pkgver.tar.gz
+ "
+builddir="$srcdir/pygls-$pkgver"
+
+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="
+ef5d516d2da7e747fafd0a333157a964efcc7bcb424b2171451eb4f4084ada40ea2294cfa2322201b052a10f2958cbf2ea05748fbf7890bc4fbf6d82e154f9d4 py3-gls-1.3.1.tar.gz
+"
diff --git a/testing/py3-gnupg/APKBUILD b/testing/py3-gnupg/APKBUILD
deleted file mode 100644
index b0b06b4e09b..00000000000
--- a/testing/py3-gnupg/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=py3-gnupg
-pkgver=0.4.6
-pkgrel=0
-pkgdesc="A Python3 wrapper for the Gnu Privacy Guard (GPG or GnuPG)"
-url="https://gnupg.readthedocs.io/en/latest/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 gnupg"
-makedepends="py3-setuptools"
-source="https://pypi.io/packages/source/p/python-gnupg/python-gnupg-$pkgver.tar.gz"
-builddir="$srcdir/python-gnupg-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- NO_EXTERNAL_TESTS=no python3 test_gnupg.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="33b98bdd1c7d211d31173bbea2358fdfd2dabdbd5e70d4b33035a0edbf666bdba7319ffc847c8617f2626d1bf5a91102f1103c0bfe651fcd709d51ee821be104 python-gnupg-0.4.6.tar.gz"
diff --git a/testing/py3-google-trans-new/APKBUILD b/testing/py3-google-trans-new/APKBUILD
new file mode 100644
index 00000000000..09b4980e984
--- /dev/null
+++ b/testing/py3-google-trans-new/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer:
+pkgname=py3-google-trans-new
+pkgver=1.1.9
+pkgrel=2
+pkgdesc="Free and unlimited python API for google translate"
+url="https://github.com/lushan88a/google_trans_new"
+arch="noarch"
+license="MIT"
+depends="
+ py3-requests
+ py3-urllib3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/g/google_trans_new/google_trans_new-$pkgver.tar.gz"
+builddir="$srcdir/google_trans_new-$pkgver"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+c9d00b62b5ae3169d11b5f07aed0f0a71950e67fb875eaa32ecb5a1bd26388ac954abb7c124e01b278850bef887e507e468d39d2df891a6018abf436d2850278 google_trans_new-1.1.9.tar.gz
+"
diff --git a/testing/py3-googletrans/APKBUILD b/testing/py3-googletrans/APKBUILD
new file mode 100644
index 00000000000..7c78a51683f
--- /dev/null
+++ b/testing/py3-googletrans/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Eloi Torrents <eloitor@disroot.org>
+# Maintainer: Eloi Torrents <eloitor@disroot.org>
+pkgname=py3-googletrans
+pkgver=3.0.0
+pkgrel=4
+pkgdesc="Free Google Translate API for Python"
+url="https://py-googletrans.readthedocs.io/en/latest/"
+arch="noarch !armhf !ppc64le" # missing py3-httpx
+license="MIT"
+depends="
+ py3-httpx
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="
+ https://pypi.io/packages/source/g/googletrans/googletrans-$pkgver.tar.gz
+ client.patch
+ "
+builddir="$srcdir/googletrans-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+1a31c52e1fc72ab45131c95ff3649d1d679e3c082adc2b43ba1e5d9bbc57bf740c9e14575c6416e406e6e6e1796cac57330fbb1a639ad96841464e042ef70981 googletrans-3.0.0.tar.gz
+00eaccaa3da8ebc7d18cde5970683667871fe849b510ce7609ee2b7a3c84d4fa60e89a51104be3b90f6fcff79580e6c438a5411a94fa7e846fcab6061409a062 client.patch
+"
diff --git a/testing/py3-googletrans/client.patch b/testing/py3-googletrans/client.patch
new file mode 100644
index 00000000000..5f1c1256277
--- /dev/null
+++ b/testing/py3-googletrans/client.patch
@@ -0,0 +1,12 @@
+--- a/googletrans/client.py
++++ b/googletrans/client.py
+@@ -52,7 +52,7 @@
+
+ def __init__(self, service_urls=None, user_agent=DEFAULT_USER_AGENT,
+ raise_exception=DEFAULT_RAISE_EXCEPTION,
+- proxies: typing.Dict[str, httpcore.SyncHTTPTransport] = None, timeout: Timeout = None):
++ proxies: typing.Dict[str, httpcore.HTTPProxy] = None, timeout: Timeout = None):
+
+ self.client = httpx.Client()
+ if proxies is not None: # pragma: nocover
+
diff --git a/testing/py3-gpxpy/APKBUILD b/testing/py3-gpxpy/APKBUILD
deleted file mode 100644
index 0cf46adddd0..00000000000
--- a/testing/py3-gpxpy/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-gpxpy
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="Python3 GPX parser"
-url="https://github.com/tkrajina/gpxpy"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/g/gpxpy/gpxpy-$pkgver.tar.gz"
-builddir="$srcdir/gpxpy-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m unittest test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5a9530b86a83822774d475466b31afad4353d2e50937206111197e8e924fac9aa40bcf29f1500294c3472b2b209eba92f1f5bbfaf188b3adff11ca452a284de8 gpxpy-1.4.1.tar.gz"
diff --git a/testing/py3-grequests/APKBUILD b/testing/py3-grequests/APKBUILD
new file mode 100644
index 00000000000..7a3f27cf1d5
--- /dev/null
+++ b/testing/py3-grequests/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-grequests
+_pkgname=grequests
+pkgver=0.7.0
+pkgrel=1
+pkgdesc="Asynchronus HTTP requests with gevent"
+url="https://github.com/spyoungtech/grequests"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3 py3-gevent py3-requests"
+makedepends="py3-setuptools"
+checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/spyoungtech/grequests/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # need net to httpbin and timeout quickly
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ nosetests
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+ff3e57c7ed8ea643ad0b7a1987216e98de77d650807037a3c953f8fdb8e9a0090d79debb54205a13934c10043e4d3693336b9d9c1b5342fef383221bfefd5330 grequests-0.7.0.tar.gz
+"
diff --git a/testing/py3-gtts-token/APKBUILD b/testing/py3-gtts-token/APKBUILD
deleted file mode 100644
index 72a5e2d9e60..00000000000
--- a/testing/py3-gtts-token/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-gtts-token
-pkgver=1.1.3
-pkgrel=0
-pkgdesc="Calculates a token to run the Google Translate text to speech"
-url="https://github.com/Boudewijn26/gTTS-token"
-arch="noarch"
-license="MIT"
-depends="python3 py3-requests"
-makedepends="py3-setuptools"
-source="https://github.com/Boudewijn26/gTTS-token/archive/v$pkgver/gTTS-token-v$pkgver.tar.gz"
-options="net" # Net required for tests
-builddir="$srcdir/gTTS-token-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f711707d975801c0026ed88c87f2f79e94a390c15cc179c06aa8c4f02db026f614f3698f599e3acbc4eee606846210a8ec3690ead799c23eab643bdf30dfb00f gTTS-token-v1.1.3.tar.gz"
diff --git a/testing/py3-gtts/APKBUILD b/testing/py3-gtts/APKBUILD
deleted file mode 100644
index da9da93f5e2..00000000000
--- a/testing/py3-gtts/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-gtts
-pkgver=2.1.1
-pkgrel=0
-pkgdesc="A Python library and CLI tool to interface with Google Translate text-to-speech API"
-url="https://github.com/pndurette/gTTS"
-arch="noarch"
-license="MIT"
-depends="python3 py3-twine py3-gtts-token py3-click py3-beautifulsoup4"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-mock py3-testfixtures"
-source="https://pypi.python.org/packages/source/g/gTTS/gTTS-$pkgver.tar.gz"
-# Net required for tests
-# Tests fail currently https://github.com/pndurette/gTTS/issues/220
-options="!check"
-builddir="$srcdir/gTTS-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="bbffe64ce8821a6fcc2f8146a07d1e06cda95b791544f1dcdf7cf687e9c39818fc299baca52e5c14306a1954ec7a9906638aea238334e7be9af45c96e9aebd7e gTTS-2.1.1.tar.gz"
diff --git a/testing/py3-h2/APKBUILD b/testing/py3-h2/APKBUILD
deleted file mode 100644
index 872e7d50a14..00000000000
--- a/testing/py3-h2/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: André Klitzing <aklitzing@gmail.com>
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=py3-h2
-_pkgname=hyper-h2
-pkgver=3.2.0
-pkgrel=0
-pkgdesc="HTTP/2 State-Machine based protocol implementation"
-options="!check" # Requires unpackaged hyperframe
-url="https://python-hyper.org/h2/"
-arch="noarch"
-license="MIT"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-hypothesis"
-source="$pkgname-$pkgver.tar.gz::https://github.com/python-hyper/hyper-h2/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-h2" # Backwards compatibility
-provides="py-h2=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="103a4ea2cd29037ce03ae676864125b4111c7d31a82bbbe7028557da886d88fb5363d885f08d5d3f68dfa29013b7b03350cc0cb4d9dddf32735e98dae5d7fc7c py3-h2-3.2.0.tar.gz"
diff --git a/testing/py3-h5py/APKBUILD b/testing/py3-h5py/APKBUILD
deleted file mode 100644
index c72c8211273..00000000000
--- a/testing/py3-h5py/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: James White <stegoxorus@gmail.com>
-# Maintainer: James White <stegoxorus@gmail.com>
-pkgname=py3-h5py
-_pkgname=h5py
-pkgver=2.10.0
-pkgrel=1
-pkgdesc="Read and write HDF5 files from Python"
-url="https://www.h5py.org"
-arch="all !s390x !x86 !ppc64le !mips !mips64" # x86|ppc64le -> numpy has no 128float support
-license="BSD-3-Clause"
-depends="py3-six py3-numpy hdf5"
-makedepends="cython python3-dev hdf5-dev py3-setuptools py3-numpy-dev"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
- "
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-h5py" # Backwards compatibility
-provides="py-h5py=$pkgver-r$pkgrel" # Backwards compatibility
-
-prepare() {
- default_prepare
- sed -i "s/settings\\['runtime_library_dirs'\\] = settings\\['library_dirs'\\]/pass/" setup_build.py
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c49b04f7dcddf03f36d4f063d79ecbe544e0b1daee432d4a76cfa83dac3a1f2cb144f40a74fb85ea17cb5b778f57f709969ea5d1a2afc5bdd5aecbc9d732898d h5py-2.10.0.tar.gz"
diff --git a/testing/py3-halo/APKBUILD b/testing/py3-halo/APKBUILD
new file mode 100644
index 00000000000..2ce74e0d31a
--- /dev/null
+++ b/testing/py3-halo/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-halo
+_pyname=halo
+pkgver=0.0.31
+pkgrel=4
+pkgdesc="Python library for terminal spinners"
+url="https://github.com/manrajgrover/halo"
+arch="noarch"
+license="MIT"
+depends="python3 py3-log-symbols py3-spinners py3-termcolor py3-colorama py3-six"
+makedepends="py3-setuptools"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://pypi.python.org/packages/source/h/halo/halo-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0c8f97d0153f46691f57f31755c3b8f69634c565cdfb42b91423b305b9e5a523b511f33fd44bb7206f6b1a90d34c8a9baf19e83874acb2504b476f8e8e5ad6a8 halo-0.0.31.tar.gz
+"
diff --git a/testing/py3-hatch-openzim-bootstrap/APKBUILD b/testing/py3-hatch-openzim-bootstrap/APKBUILD
new file mode 100644
index 00000000000..363cf9c4aff
--- /dev/null
+++ b/testing/py3-hatch-openzim-bootstrap/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-hatch-openzim-bootstrap
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Bootstrap for py3-hatch-plugin"
+url="https://github.com/openzim/hatch-openzim/"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="py3-gpep517 py3-hatchling py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="py3-hatch-openzim-$pkgver.tar.gz::https://github.com/openzim/hatch-openzim/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/hatch-openzim-$pkgver"
+
+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
+
+ # it is expected that test_metadata_nominal will fail
+ # (git tarball in use),
+ # reported upstream:
+ # https://github.com/openzim/hatch-openzim/issues/13
+ .testenv/bin/python3 -m pytest \
+ -k "not test_metadata_nominal"
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+5d7a0c75de7517c2e1f9649fd04d43577373f28dfcaa12dc15788e045226ef93f1cb7346a806169c5131749970fbe45a582006189c47daa60d9769cb2fab15db py3-hatch-openzim-0.1.0.tar.gz
+"
diff --git a/testing/py3-hatch-openzim/APKBUILD b/testing/py3-hatch-openzim/APKBUILD
new file mode 100644
index 00000000000..f753a39fd6e
--- /dev/null
+++ b/testing/py3-hatch-openzim/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-hatch-openzim
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Hhatch(ling) plugin for generic openZIM operations"
+url="https://github.com/openzim/hatch-openzim/"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="
+ py3-gpep517
+ py3-hatch-openzim-bootstrap
+ py3-hatchling
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="py3-hatch-openzim-$pkgver.tar.gz::https://github.com/openzim/hatch-openzim/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/hatch-openzim-$pkgver"
+
+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="
+f14dc236a482495b9d96f9c2a8d9b56c3c39d019caec37304129fab118bdaf7a5f2fa0ed545e874c44515345715049c1ba981abfebb6b57dae995c4d840fdc20 py3-hatch-openzim-0.2.0.tar.gz
+"
diff --git a/testing/py3-hbmqtt/APKBUILD b/testing/py3-hbmqtt/APKBUILD
deleted file mode 100644
index ae815ef236b..00000000000
--- a/testing/py3-hbmqtt/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-hbmqtt
-_pkgname=hbmqtt
-pkgver=0.9.6
-pkgrel=0
-pkgdesc="MQTT client/broker using Python asynchronous I/O"
-url="https://hbmqtt.readthedocs.io/"
-arch="noarch"
-license="MIT"
-depends="py3-passlib py3-websockets py3-transitions py3-docopt py3-yaml"
-makedepends="python3-dev py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/beerfactory/hbmqtt/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-options="!check" # FIXME: disable tests to unblock builders
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py test
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --root="$pkgdir" --optimize=1
-}
-
-sha512sums="dbbdd328296cb9545f4ea8843fdc951c72c53b54f87a6c589c8d19fa34d2f48a2fb902a918f34196009740b4b6574dc8aabd5c408dcea2905cbb7094238be834 hbmqtt-0.9.6.tar.gz"
diff --git a/testing/py3-heapdict/APKBUILD b/testing/py3-heapdict/APKBUILD
deleted file mode 100644
index 44b522aed2a..00000000000
--- a/testing/py3-heapdict/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-heapdict
-pkgver=1.0.1
-pkgrel=0
-pkgdesc="A heap with decrease-key and increase-key operations"
-url="https://stutzbachenterprises.com"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/H/HeapDict/HeapDict-$pkgver.tar.gz"
-options="!check" # Uses internal private API python module
-builddir="$srcdir/HeapDict-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d82e1eaca4b51da1cfd7a43689796523863d4173b4c23aec4c259025dca7775e5aeb58abef66ae8374e996d00aa07e6728d0f2293304202ea0bd3369fb6010be HeapDict-1.0.1.tar.gz"
diff --git a/testing/py3-helper/APKBUILD b/testing/py3-helper/APKBUILD
index 2a9845a0955..754e77723e8 100644
--- a/testing/py3-helper/APKBUILD
+++ b/testing/py3-helper/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-helper
_pkgname=helper
-pkgver=2.4.2
-pkgrel=3
+pkgver=2.5.0
+pkgrel=4
pkgdesc="A Python library for quickly writing configurable applications and daemons"
url="https://helper.readthedocs.org/"
arch="noarch"
@@ -12,17 +12,18 @@ replaces="py-helper" # for backwards compatibility
provides="py-helper=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3 py3-yaml"
makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
- cd "$builddir"
python3 setup.py build
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="f25836eefda71b08c9d38569e1111220f8cde729de9cb5a99c2b8900ff99555066df9a47f19d9d5a9d070e1efa6b187f34b6a0d22fc1f571f5ab4ce87de23f14 helper-2.4.2.tar.gz"
+sha512sums="
+5166f25d40e860af598bc54c81033546850a22245ea0d7a24c2b12f76da922008ac6f096fafdc714099dc2fe70ef345529235b3b8d225a6b7f74fa6f168b32a3 helper-2.5.0.tar.gz
+"
diff --git a/testing/py3-hg-git/APKBUILD b/testing/py3-hg-git/APKBUILD
new file mode 100644
index 00000000000..14937fd2496
--- /dev/null
+++ b/testing/py3-hg-git/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=py3-hg-git
+_pkgname="hg-git"
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Mercurial plugin to pull and push from Git"
+url="https://hg-git.github.io"
+arch="noarch"
+license="GPL-2.0-only"
+depends="py3-dulwich"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ 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" # No tests.
+
+build() {
+ SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+eeee47258ac4e9ef8a2dbaa75a660f4d9732adf37d701e8f13e60cca699705a7a1a9aa1ab50b48132ddfd2239f379a8501a8ecd2a85659f14690d713cc7d28c3 hg-git-1.1.1.tar.gz
+"
diff --git a/testing/py3-hijri-converter/APKBUILD b/testing/py3-hijri-converter/APKBUILD
deleted file mode 100644
index 8a8bdc72890..00000000000
--- a/testing/py3-hijri-converter/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-hijri-converter
-pkgver=2.1.0
-pkgrel=1
-pkgdesc="Accurate Hijri-Gregorian date converter based on the Umm al-Qura calendar"
-url="https://github.com/dralshehri/hijri-converter"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://github.com/dralshehri/hijri-converter/archive/v$pkgver/hijri-converter-v$pkgver.tar.gz"
-builddir="$srcdir/hijri-converter-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ced1ad7ac6e552ef59bad3bea5a5f83b81d2b18138f9f5ebb1b5b2a54ab3a3eaf6827c32c7ffe97eed455b927315b093c8c78b6a8ec08bbfda4a6f5fee7b530b hijri-converter-v2.1.0.tar.gz"
diff --git a/testing/py3-hiplot/APKBUILD b/testing/py3-hiplot/APKBUILD
new file mode 100644
index 00000000000..34b3d22dac8
--- /dev/null
+++ b/testing/py3-hiplot/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+# Maintainer: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+pkgname=py3-hiplot
+pkgver=0.1.33
+pkgrel=1
+pkgdesc="HiPlot makes understanding high dimensional data easy"
+url="https://github.com/facebookresearch/hiplot"
+arch="noarch"
+license="MIT"
+depends="
+ python3
+ ipython
+ py3-beautifulsoup4
+ py3-flask
+ py3-flask-compress
+ py3-pandas
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest-xdist py3-pytest-cov py3-ipykernel py3-optuna"
+subpackages="$pkgname-pyc"
+source="https://github.com/facebookresearch/hiplot/archive/$pkgver/hiplot-$pkgver.tar.gz"
+builddir="$srcdir/hiplot-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+
+ # assertion errors or missing dependencies
+ local _skipped_tests="
+ test_to_filename
+ and not test_to_html
+ and not test_demos_streamlit
+ and not test_demos_ipython
+ "
+
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -n auto -k "not $(echo $_skipped_tests)"
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+a21d564333e52797956cf17a0eb12827272718e2f98e9a793867f7b5a556f8f3edd38a724968b99894a299e05f90b350a1b65ca14061508f21395165081ec60a hiplot-0.1.33.tar.gz
+"
diff --git a/testing/py3-holidays/APKBUILD b/testing/py3-holidays/APKBUILD
deleted file mode 100644
index e29b003368b..00000000000
--- a/testing/py3-holidays/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-holidays
-pkgver=0.10.2
-pkgrel=1
-pkgdesc="Generate and work with holidays in Python"
-url="https://github.com/dr-prodigy/python-holidays"
-arch="noarch"
-license="MIT"
-depends="python3 py3-dateutil py3-six py3-convertdate py3-convertdate py3-korean-lunar-calendar py3-hijri-converter"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/h/holidays/holidays-$pkgver.tar.gz"
-builddir="$srcdir/holidays-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="97f04c34d6d2e04eb3bcc892189cf42c4eff862a73f6e14aead065f4b8d3783659097b21b96b3aac7bf294a5388e9add361276f97348b6fc9fb6135888f87490 holidays-0.10.2.tar.gz"
diff --git a/testing/py3-hotqueue/APKBUILD b/testing/py3-hotqueue/APKBUILD
deleted file mode 100644
index 214818996a5..00000000000
--- a/testing/py3-hotqueue/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-hotqueue
-_pkgname=hotqueue
-pkgver=0.2.8
-pkgrel=3
-pkgdesc="A Python library that allows to use Redis as a message queue"
-options="!check" # Require running instance of redis server
-url="http://github.com/richardhenry/hotqueue"
-arch="noarch !armv7" # urllib2.HTTPError: HTTP Error 403: SSL is required
-license="MIT"
-depends="py3-redis"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-hotqueue" # Backwards compatibility
-provides="py-hotqueue=$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="89a726aa970de5f0a3c3551e69b3efad00d6b795b59cfe219a35080be4be52b894637899cd1677572419180d8aa918a64b3d227371d2c409aa8da0e15876accf hotqueue-0.2.8.tar.gz"
diff --git a/testing/py3-html2text/APKBUILD b/testing/py3-html2text/APKBUILD
deleted file mode 100644
index 46f1b444c6c..00000000000
--- a/testing/py3-html2text/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="py3-html2text"
-_pyname="html2text"
-pkgver="2020.1.16"
-pkgrel=0
-pkgdesc="Convert HTML to Markdown-formatted text"
-url="https://github.com/Alir3z4/html2text"
-arch="noarch"
-license="GPL-3.0-only"
-depends="python3 py3-setuptools"
-options="!check" # TODO tests fail for some reason
-subpackages="$pkgname-doc"
-source="$_pyname-$pkgver.tar.gz::https://github.com/Alir3z4/html2text/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir/usr/share/doc/$_pyname"
- mv docs/* "$subpkgdir/usr/share/doc/$_pyname"
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="95d3f560932a68e5cfe4f7d1f87cb7e4235efe57251813d148c7a19a5202ff3dc3ea5c047884803e10b64e7b7e1e2ef70aec87e5eb5f15ea89aeb542eaa9e053 html2text-2020.1.16.tar.gz"
diff --git a/testing/py3-html5-parser/APKBUILD b/testing/py3-html5-parser/APKBUILD
new file mode 100644
index 00000000000..45e141599ba
--- /dev/null
+++ b/testing/py3-html5-parser/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=py3-html5-parser
+pkgver=0.4.12
+pkgrel=1
+pkgdesc="Fast C based HTML 5 parsing for python"
+url="https://github.com/kovidgoyal/html5-parser"
+arch="all"
+license="Apache-2.0"
+depends="py3-lxml py3-chardet"
+makedepends="
+ libxml2-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="py3-beautifulsoup4"
+subpackages="$pkgname-pyc"
+source="https://github.com/kovidgoyal/html5-parser/archive/v$pkgver/py3-html5-parser-$pkgver.tar.gz"
+builddir="$srcdir/html5-parser-$pkgver"
+
+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 setup.py test
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+d2c031225b74d01a1ae3455837ac09e9afad8a4ec6ab1b8f66cbea8a86188db271a72570ef06e05ac56d369b41d97fc6f382455e25ca346a1897f62a3696a252 py3-html5-parser-0.4.12.tar.gz
+"
diff --git a/testing/py3-httpbin/0001-Use-Brotli-instead-of-brotlipy.patch b/testing/py3-httpbin/0001-Use-Brotli-instead-of-brotlipy.patch
deleted file mode 100644
index a434026109c..00000000000
--- a/testing/py3-httpbin/0001-Use-Brotli-instead-of-brotlipy.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 7f1583ac861b74234f86a4098768ed6b04e2b99d Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Mon, 27 May 2019 16:02:01 +0800
-Subject: [PATCH] Use Brotli instead of brotlipy
-
-brotlipy is stuck at brotli 0.6 and upstream is inactive. Let's switch
-to the official binding which is up-to-date and has same interfaces.
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index afbef58..a25ce45 100644
---- a/setup.py
-+++ b/setup.py
-@@ -35,7 +35,7 @@ setup(
- packages=find_packages(),
- include_package_data = True, # include files listed in MANIFEST.in
- install_requires=[
-- 'Flask', 'MarkupSafe', 'decorator', 'itsdangerous', 'six', 'brotlipy',
-+ 'Flask', 'MarkupSafe', 'decorator', 'itsdangerous', 'six', 'Brotli',
- 'raven[flask]', 'werkzeug>=0.14.1'
- ],
- )
---
-2.23.0
-
diff --git a/testing/py3-httpbin/APKBUILD b/testing/py3-httpbin/APKBUILD
deleted file mode 100644
index 0ae74263219..00000000000
--- a/testing/py3-httpbin/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=py3-httpbin
-_pyname=httpbin
-pkgver=0.7.0
-pkgrel=1
-pkgdesc="HTTP Request and Response Service"
-url=https://github.com/postmanlabs/httpbin
-arch="noarch"
-license="ISC"
-depends="py3-flask py3-six py3-raven py3-blinker py3-brotli py3-decorator"
-makedepends="py3-setuptools"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
- 0001-Use-Brotli-instead-of-brotlipy.patch"
-builddir="$srcdir/$_pyname-$pkgver"
-options="!check" # tests broken
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="82e80058b58943637e9f8191764cea79bf7a6e40f36069f9b5d3f908585dbef20a03ef070d1f865d350920b6e874a93a48a544b05c14ff4911038ec2c20f6f63 httpbin-0.7.0.tar.gz
-b39fdb02b642afab12aca14fe45e34af32cafb04c612e0be9b72ea5f4451c7d1ed412199dcbefcfc08cdf6699f61f177a49e9352965cadf2f65771922d73e61a 0001-Use-Brotli-instead-of-brotlipy.patch"
diff --git a/testing/py3-httpretty/APKBUILD b/testing/py3-httpretty/APKBUILD
deleted file mode 100644
index 32e56df2b77..00000000000
--- a/testing/py3-httpretty/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-pkgname=py3-httpretty
-pkgver=1.0.2
-pkgrel=0
-pkgdesc="HTTP client mocking tool for Python"
-url="https://github.com/gabrielfalcao/HTTPretty"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="python3-dev py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/h/httpretty/httpretty-$pkgver.tar.gz"
-replaces="py-httpretty"
-provides="py-httpretty=$pkgver-r$pkgrel"
-builddir="$srcdir"/httpretty-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- # Fix permissions on .EGG-INFO
- chmod 644 "$pkgdir"/usr/lib/python3*/site-packages/*.egg-info/*
-}
-
-sha512sums="f9ef1c82f4fe3a31696e06228cea512664c5118b3c32910d7810d1fcf16b05d31b9b55db7bb6bd64967aadb162a2952757627439769db9117164b8248de9049c httpretty-1.0.2.tar.gz"
diff --git a/testing/py3-humanhash3/APKBUILD b/testing/py3-humanhash3/APKBUILD
deleted file mode 100644
index 941b7972ced..00000000000
--- a/testing/py3-humanhash3/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-humanhash3
-pkgver=0.0.6
-pkgrel=1
-pkgdesc="Human-readable representations of digests"
-url="https://github.com/blag/humanhash"
-arch="noarch"
-license="Unlicense"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/h/humanhash3/humanhash3-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/humanhash3-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2eca066915756d60df48f0b5ee7c7fce508d7b5f5e04c94ed46c4ac2e30eb2dccdc1f6eec183512bdd557401c8e4c68110d39db4ef30a61884f45cb0e663579f humanhash3-0.0.6.tar.gz"
diff --git a/testing/py3-humanize/APKBUILD b/testing/py3-humanize/APKBUILD
deleted file mode 100644
index 69bcb14c95d..00000000000
--- a/testing/py3-humanize/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=py3-humanize
-_pkgname=humanize
-pkgver=2.4.0
-pkgrel=0
-pkgdesc="Python humanize functions"
-url="https://pypi.python.org/pypi/humanize"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools py3-setuptools_scm"
-checkdepends="py3-mock py3-freezegun py3-pytest"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/jmoiron/humanize/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces=py-humanize # Backwards compatibility
-provides=py-humanize=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- git init
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e606fde4157b47c010545207d4c915104e9233f675aacdc5ecaecdf443eb30525799279004c6e398c5506d3eeca2b816ffee95a5255ee894215cf462bdf488b3 humanize-2.4.0.tar.gz"
diff --git a/testing/py3-hurry.filesize/APKBUILD b/testing/py3-hurry.filesize/APKBUILD
index 30bd815be3a..f6e26129025 100644
--- a/testing/py3-hurry.filesize/APKBUILD
+++ b/testing/py3-hurry.filesize/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-hurry.filesize
_pkgname=hurry.filesize
pkgver=0.9
-pkgrel=1
+pkgrel=7
pkgdesc="A Python library for human readable file sizes"
-url="https://pypi.python.org/pypi/hurry.filesize"
+url="https://pypi.org/project/hurry.filesize"
arch="noarch"
license="ZPL-2.1"
depends="python3"
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
@@ -18,7 +19,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="24b7ebf5a6e833cec01d1904e5202ab5bde238fbeabb92d893866118e152c0f861f853e11bb71c58d84060bffaf0b7bc88221e37aaacc0b07751febf8a2b1606 hurry.filesize-0.9.tar.gz"
diff --git a/testing/py3-hyperopt/APKBUILD b/testing/py3-hyperopt/APKBUILD
deleted file mode 100644
index 9435ac68632..00000000000
--- a/testing/py3-hyperopt/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-hyperopt
-pkgver=0.2.4
-pkgrel=0
-pkgdesc="Distributed Asynchronous Hyperparameter Optimization in Python"
-url="https://hyperopt.github.io/hyperopt/"
-arch="noarch !mips !mips64" # py3-numpy missing
-license="BSD-3-Clause"
-depends="python3 py3-future py3-numpy py3-networkx py3-tqdm py3-scipy py3-cloudpickle py3-decorator py3-nose py3-matplotlib"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/h/hyperopt/hyperopt-$pkgver.tar.gz"
-options="!check" # Broken on ipython
-builddir="$srcdir/hyperopt-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1b82d8d7e43d2d6ed88c69900943b99d0dee534cd68db96d1c7cbabfdaccf5c412f422cd44b714b8ec64338a6f4a270c556626118ea1c4aebb487f80b5ed4112 hyperopt-0.2.4.tar.gz"
diff --git a/testing/py3-i18naddress/APKBUILD b/testing/py3-i18naddress/APKBUILD
new file mode 100644
index 00000000000..8b9ce680505
--- /dev/null
+++ b/testing/py3-i18naddress/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-i18naddress
+_pyname=google-i18n-address
+pkgver=3.1.0
+pkgrel=2
+pkgdesc="Address validation helpers for Google's i18n address database"
+url="https://github.com/mirumee/google-i18n-address"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 py3-requests"
+makedepends="py3-gpep517 py3-hatchling py3-installer py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mirumee/google-i18n-address/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ 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="
+b47b5eeaf214a04614ed0976055d25fbce2d298c45db4bfe31b369cd27dc1e097b14d4fae62b5f8dd95be5693d2fda12d0b618029dc1f3ed2784e28b60c43ef9 py3-i18naddress-3.1.0.tar.gz
+"
diff --git a/testing/py3-ifaddr/APKBUILD b/testing/py3-ifaddr/APKBUILD
deleted file mode 100644
index 5afecf3ab99..00000000000
--- a/testing/py3-ifaddr/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: David Florness <david@florness.com>
-# Maintainer: David Florness <david@florness.com>
-pkgname="py3-ifaddr"
-_pkgname="ifaddr"
-pkgver="0.1.6"
-pkgrel=0
-pkgdesc="Enumerates all IP addresses on all network adapters of the system"
-url="https://github.com/pydron/$_pkgname"
-arch="all"
-license="MIT"
-options="!check"
-depends="python3"
-makedepends="py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/pydron/$_pkgname/archive/${pkgver}.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --root="$pkgdir" --prefix="/usr" --optimize=1
-}
-
-sha512sums="f8bfe0141f0c4e83404c8feead15a144e3f81fdfd9aeb5c9ca490789dfc7f74fa8cf36c895d048b595c340e17f7d82d96e3cdc25174ff67f3bb06a306094d59a ifaddr-0.1.6.tar.gz"
diff --git a/testing/py3-igraph/APKBUILD b/testing/py3-igraph/APKBUILD
new file mode 100644
index 00000000000..9683d3e2424
--- /dev/null
+++ b/testing/py3-igraph/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-igraph
+_pyname=python-igraph
+pkgver=0.11.4
+pkgrel=1
+pkgdesc="Python interface for igraph"
+url="https://github.com/igraph/python-igraph"
+# s390x: libigraph-dev
+arch="all !s390x"
+license="GPL-2.0-only"
+depends="py3-texttable"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ libigraph-dev
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ python3-dev
+ "
+checkdepends="
+ py3-pillow
+ py3-pytest
+ "
+subpackages="$pkgname-dev $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/igraph/python-igraph/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ IGRAPH_USE_PKG_CONFIG=yes \
+ 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="
+aca2482967fd440da52299c82a949961ccfed20a347d08b74a19eb223a516ed76aaca47f587960ec42a15828038ce180d810d83d48367a08a858879f54d072ab py3-igraph-0.11.4.tar.gz
+"
diff --git a/testing/py3-imageio-ffmpeg/APKBUILD b/testing/py3-imageio-ffmpeg/APKBUILD
new file mode 100644
index 00000000000..9546859a525
--- /dev/null
+++ b/testing/py3-imageio-ffmpeg/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=py3-imageio-ffmpeg
+pkgver=0.4.9
+pkgrel=0
+pkgdesc="FFMPEG wrapper for Python"
+url="https://github.com/imageio/imageio-ffmpeg"
+arch="noarch"
+license="BSD-2-Clause"
+depends="ffmpeg python3 py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-psutil py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/imageio/imageio-ffmpeg/archive/v$pkgver.tar.gz"
+builddir="$srcdir/imageio-ffmpeg-$pkgver"
+
+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
+
+ # ppc64le fails test_write_pix_fmt_in with assert error
+ case "$CARCH" in
+ ppc64le)
+ .testenv/bin/python3 -m pytest \
+ --deselect tests/test_io.py::test_write_pix_fmt_in
+ ;;
+ *)
+ .testenv/bin/python3 -m pytest
+ ;;
+ esac
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+ebf63b9ac9c733d4c12d3aa4c6a9e81dd0128795a040e65df03bfae00e3562a3976eaa2f4058562bbddc3f8d63d6bf2a38133de4d2ddb0d2dc62ffab2449e143 py3-imageio-ffmpeg-0.4.9.tar.gz
+"
diff --git a/testing/py3-imageio/APKBUILD b/testing/py3-imageio/APKBUILD
new file mode 100644
index 00000000000..e8629a361ac
--- /dev/null
+++ b/testing/py3-imageio/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=py3-imageio
+pkgver=2.34.0
+pkgrel=1
+pkgdesc="Python library that provides an easy interface to read and write a wide range of image data"
+url="https://github.com/imageio/imageio"
+license="BSD-2-Clause"
+# ppc64le: test failures
+# s390x: freeimage
+arch="noarch !ppc64le !s390x"
+depends="py3-numpy py3-pillow freeimage"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-psutil py3-imageio-ffmpeg py3-fsspec"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/i/imageio/imageio-$pkgver.tar.gz"
+builddir="$srcdir/imageio-$pkgver"
+options="!check" # intentionally fail without internet(?), todo
+
+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
+ IMAGEIO_NO_INTERNET=1 .testenv/bin/python3 -m pytest -v
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ # remove unneeded binaries
+ # shellcheck disable=2115
+ rm -r "$pkgdir"/usr/bin
+}
+
+sha512sums="
+ecbe0a85cf8ade6555aa49132678a13cdc44053884580f7bd8e6b7a8858473e8d0822e84c59e07546a8dde202d2f699e1c5a057b2dadc325b0517816730744a4 py3-imageio-2.34.0.tar.gz
+"
diff --git a/testing/py3-imdbpy/APKBUILD b/testing/py3-imdbpy/APKBUILD
new file mode 100644
index 00000000000..915051a603a
--- /dev/null
+++ b/testing/py3-imdbpy/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=py3-imdbpy
+pkgver=2021.4.18
+pkgrel=4
+pkgdesc="Python bindings for the Internet Movie Database (IMDb)"
+url="https://imdbpy.sourceforge.io/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="py3-lxml py3-sqlalchemy"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/I/IMDbPY/IMDbPY-$pkgver.tar.gz"
+options="!check" # Disable tests for now: https://github.com/alberanid/imdbpy/issues/240
+builddir="$srcdir/IMDbPY-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+512e459f18018b0439ba7162a85b9492d9bb58e7d360258c228e7437ac971c6957b22017561437c7922dbe3251a9150e99d9590b099e72db8034b0cfe13841fa IMDbPY-2021.4.18.tar.gz
+"
diff --git a/testing/py3-incoming/APKBUILD b/testing/py3-incoming/APKBUILD
index c1e3add2deb..3df471d6bae 100644
--- a/testing/py3-incoming/APKBUILD
+++ b/testing/py3-incoming/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-incoming
_pkgname=incoming
pkgver=0.3.1
-pkgrel=1
+pkgrel=7
pkgdesc="A Python JSON validation framework"
url="https://github.com/vaidik/incoming"
arch="noarch"
@@ -11,7 +11,10 @@ license="MIT"
depends="python3"
makedepends="py3-setuptools"
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
+ assertEquals.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
replaces="py-incoming" # Backwards compatibility
@@ -26,7 +29,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="5018e919485450fd8e361d8d505ead8c5fd0c99e0349feecf372697e866eb53f6dca6186a49244b20b61ddb65f754d58b6c0e11aa0ae95e8c98f35983a691cb8 incoming-0.3.1.tar.gz"
+sha512sums="
+5018e919485450fd8e361d8d505ead8c5fd0c99e0349feecf372697e866eb53f6dca6186a49244b20b61ddb65f754d58b6c0e11aa0ae95e8c98f35983a691cb8 incoming-0.3.1.tar.gz
+7adbe0a1830818ad4bf5d3a424595b8dedeb33be80c40e8e957760fa293054ed6f655780d1cec418d1d393633a088a5fc2afab51e59775e63d0319d2e8106170 assertEquals.patch
+"
diff --git a/testing/py3-incoming/assertEquals.patch b/testing/py3-incoming/assertEquals.patch
new file mode 100644
index 00000000000..a05977d7321
--- /dev/null
+++ b/testing/py3-incoming/assertEquals.patch
@@ -0,0 +1,31 @@
+diff --git a/incoming/tests/test_datatypes.py b/incoming/tests/test_datatypes.py
+index c1e7586..6d8a6dc 100644
+--- a/incoming/tests/test_datatypes.py
++++ b/incoming/tests/test_datatypes.py
+@@ -136,3 +136,3 @@ class TestJSON(TestCase):
+ validator = datatypes.JSON(CustomJSONValidator)
+- self.assertEquals(
++ self.assertEqual(
+ validator.cls.inner.cls.__name__,
+diff --git a/incoming/tests/test_incoming.py b/incoming/tests/test_incoming.py
+index 7f0321b..1ac82e7 100644
+--- a/incoming/tests/test_incoming.py
++++ b/incoming/tests/test_incoming.py
+@@ -70,3 +70,3 @@ class TestPayloadValidator(TestCase):
+ self.assertTrue(result[0])
+- self.assertEquals(result[1], None)
++ self.assertEqual(result[1], None)
+
+@@ -205,5 +205,5 @@ class TestPayloadValidator(TestCase):
+ self.assertItemsEqual(errors.keys(), ['missing1', 'missing2'])
+- self.assertEquals(errors['missing1'][0],
++ self.assertEqual(errors['missing1'][0],
+ AnotherDummyValidator.strict_error)
+- self.assertEquals(errors['missing2'][0],
++ self.assertEqual(errors['missing2'][0],
+ AnotherDummyValidator.strict_error)
+@@ -222,3 +222,3 @@ class TestPayloadValidator(TestCase):
+ self.assertTrue(result)
+- self.assertEquals(errors, None)
++ self.assertEqual(errors, None)
+
diff --git a/testing/py3-infinity/APKBUILD b/testing/py3-infinity/APKBUILD
index 33784388b47..7331ac65efc 100644
--- a/testing/py3-infinity/APKBUILD
+++ b/testing/py3-infinity/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-infinity
_pkgname=infinity
-pkgver=1.4
-pkgrel=4
+pkgver=1.5
+pkgrel=5
pkgdesc="All-in-one infinity value for Python"
url="https://github.com/kvesteri/infinity"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
makedepends="py3-setuptools"
-checkdepends="py3-pytest"
+checkdepends="py3-pytest py3-six"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="57ce539d861a47d02b570f997a0b1ee6c631a1d9825b68692e9edfac789ec3069b754abb64bb4128dbfcf2eea231067c61a287315ec130a301f18c0e65387acb infinity-1.4.tar.gz"
+sha512sums="
+d61c16fe08749dab050ffb17f8cb392b22ef0c409d736625820419859a0533e067d04a3244e937cf968b40eb02d6bcecb0f80525797dc372eba7205836bad9cb infinity-1.5.tar.gz
+"
diff --git a/testing/py3-inflect/APKBUILD b/testing/py3-inflect/APKBUILD
deleted file mode 100644
index 2ec64d6570d..00000000000
--- a/testing/py3-inflect/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-inflect
-pkgver=4.1.0
-pkgrel=1
-pkgdesc="Correctly generate plurals, singular nouns, ordinals, indefinite articles; convert numbers to words"
-url="https://github.com/jazzband/inflect"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools py3-setuptools_scm py3-toml"
-checkdepends="py3-pytest py3-pytest-flake8 py3-pytest-cov py3-pytest-black"
-source="https://pypi.python.org/packages/source/i/inflect/inflect-$pkgver.tar.gz"
-options="!check" # Flake8 fails https://github.com/jazzband/inflect/issues/109
-builddir="$srcdir/inflect-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest --ignore setup.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9a2ba4777f01475390976f3ac28f046d39d1f86cfdafd161cc7c8d33526aca35d44e6598ccf2a0b68d3511a64b67ed0991b51c78bda8f279cd706fd29a3fa514 inflect-4.1.0.tar.gz"
diff --git a/testing/py3-inflection/APKBUILD b/testing/py3-inflection/APKBUILD
deleted file mode 100644
index d72b200f095..00000000000
--- a/testing/py3-inflection/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
-pkgname=py3-inflection
-_pkgname=inflection
-pkgver=0.4.0
-pkgrel=0
-pkgdesc="Port of Ruby on Rails' inflector to Python"
-url="https://github.com/jpvanhal/inflection"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/jpvanhal/inflection/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-inflection" # Backkwards compatibility
-provides="py-inflection=$pkgver-r$pkgrel" # Backkwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="071b21bdc24f05f7be1e8c51c0cc422d4835b4b6e03cdd2b51717356d4d1bb714ebcd875091e331b7e9be85cfb577a8f80f999ca2bf0c7dd8496bf057ddb144c inflection-0.4.0.tar.gz"
diff --git a/testing/py3-influxdb/APKBUILD b/testing/py3-influxdb/APKBUILD
deleted file mode 100644
index 6050dc1f7f6..00000000000
--- a/testing/py3-influxdb/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Olivier Mauras <olivier@mauras.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-influxdb
-_pkgname=influxdb-python
-pkgver=5.2.3
-pkgrel=1
-pkgdesc="Python bindings for InfluxDB"
-options="!check" # Requires unpackaged nose-cov
-url="https://github.com/influxdata/influxdb-python"
-arch="noarch"
-license="MIT"
-depends="python3 py3-tz py3-six py3-requests py3-dateutil"
-makedepends="py3-setuptools"
-checkdepends="py3-nose"
-source="$pkgname-$pkgver.tar.gz::https://github.com/influxdata/influxdb-python/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-influxdb" # Backwards compatibility
-provides="py-influxdb=$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="49d70e6293883bad16db5d7d72e02988562311a070f8aca6c82880dea7f40b1c411d5882bc9e224934341a5180bc1fcb0987363cdf0e2ffe9e7f1c615e9588f8 py3-influxdb-5.2.3.tar.gz"
diff --git a/testing/py3-iniparse/APKBUILD b/testing/py3-iniparse/APKBUILD
index e384f68e690..b09ac85a984 100644
--- a/testing/py3-iniparse/APKBUILD
+++ b/testing/py3-iniparse/APKBUILD
@@ -3,14 +3,14 @@
pkgname=py3-iniparse
_pkgname=iniparse
pkgver=0.5
-pkgrel=0
+pkgrel=6
pkgdesc="INI parser library for Python"
options="!check" # Testsuite loader broken
-url="https://code.google.com/p/iniparse/"
+url="https://github.com/candlepin/python-iniparse"
arch="noarch"
license="MIT"
makedepends="py3-setuptools"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -22,7 +22,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="b3f10d1b36497c3c5c71cb0a1ac73d74d8944f4ad3b7acc4a4b0246c2f1a20c184d9af20bbb3cb8ec4f57fddfb5e103b92688847debb4200ef0583353d7f9556 iniparse-0.5.tar.gz"
diff --git a/testing/py3-inotify/APKBUILD b/testing/py3-inotify/APKBUILD
deleted file mode 100644
index 940fc15abd2..00000000000
--- a/testing/py3-inotify/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=py3-inotify
-_pkgname=pyinotify
-pkgver=0.9.6
-pkgrel=6
-pkgdesc="Linux filesystem events monitoring"
-options="!check" # No testsuite
-url="http://pypi.python.org/pypi/pyinotify"
-arch="all !aarch64" # Unsupported architecture
-license="MIT"
-makedepends="py3-setuptools python3-dev"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
- force-c-ext.patch
- "
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-inotify" # Backwards compatibility
-provides="py-inotify=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b52de43293b06b32236e90b7c33fac061f3095cd7d4aecec89a099d56020db1a85440ab9dcc8b521238c001fc49a1f37d1b16d621bc1acab4d7273aebcaadbc5 pyinotify-0.9.6.tar.gz
-28fe821c7fd4edf5f359c2d6026bfe95477ed167ea6948b3785d3c1708513c0e038dd4d9f3988a26c02c43bfaac9acb0357ee7edd6d5b0b7ae6c40000e31c485 force-c-ext.patch"
diff --git a/testing/py3-inotify/force-c-ext.patch b/testing/py3-inotify/force-c-ext.patch
deleted file mode 100644
index 4c86ca7535b..00000000000
--- a/testing/py3-inotify/force-c-ext.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 15d68ab..5f6d7a6 100755
---- a/setup.py
-+++ b/setup.py
-@@ -3,7 +3,7 @@
- # Set True to force compile native C-coded extension providing direct access
- # to inotify's syscalls. If set to False this extension will only be compiled
- # if no inotify interface from ctypes is found.
--compile_ext_mod = False
-+compile_ext_mod = True
-
- # import statements
- import os
-
diff --git a/testing/py3-inquirer/APKBUILD b/testing/py3-inquirer/APKBUILD
deleted file mode 100644
index c2096ef7c84..00000000000
--- a/testing/py3-inquirer/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=py3-inquirer
-pkgver=2.6.3
-pkgrel=0
-pkgdesc="A collection of common interactive command line user interfaces"
-url="https://github.com/magmax/python-inquirer"
-arch="noarch"
-license="MIT"
-depends="python3 py3-blessings py3-readchar py3-python-editor"
-makedepends="py3-setuptools"
-checkdepends="py3-flake8 py3-pexpect py3-pytest py3-pytest-cov py3-pytest-xdist
- py3-mock py3-nosexcover py3-coveralls py3-wheel ncurses-terminfo"
-# GH tarballs required for tests!
-source="$pkgname-$pkgver.tar.gz::https://github.com/magmax/python-inquirer/archive/$pkgver.tar.gz
- loosen-deps.patch
- use-py3-in-tests.patch
- disable-failing-tests.patch"
-builddir="$srcdir/python-inquirer-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- TERM=xterm-256color python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- # Remove installed tests
- rm -r "$pkgdir"/usr/lib/python*/site-packages/tests
-}
-
-sha512sums="8f1fd76a1e109040ef12ab519224f100f966515af7306dd61b8fa6579b9cbc6f835d741390ef1daa4a18f755a25599579d7bfd1b6f532b4cdba99a65058dcc12 py3-inquirer-2.6.3.tar.gz
-eea162938426f59d488422b956df611d5b074926c14ff024abffb905fb1af7a80ce705c981d4ad51c33890e00b64c935234bdaa65c2daa07b46a914526d11e8e loosen-deps.patch
-08cb9047bdbb04f27162eb58c3ad6dbf0905b7a320e02be07c117f351967aa0059b14923cbbd5e73192b5009e58b70555550d010e0a857dbb9c69277488111ba use-py3-in-tests.patch
-cbc376ae4f3200fbaa9b008a8c00ad264808421be2cccea08fb903f3dcf00a773a00ac0b928b71fc1e884b7341e73be38e79d32e4693fe263b635b0d4a6b6a7b disable-failing-tests.patch"
diff --git a/testing/py3-inquirer/disable-failing-tests.patch b/testing/py3-inquirer/disable-failing-tests.patch
deleted file mode 100644
index e8f42b7d951..00000000000
--- a/testing/py3-inquirer/disable-failing-tests.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-https://github.com/magmax/python-inquirer/issues/84
-diff --git a/tests/acceptance/test_list.py b/tests/acceptance/test_list.py
-index 82886e8..f6fa7e4 100644
---- a/tests/acceptance/test_list.py
-+++ b/tests/acceptance/test_list.py
-@@ -39,21 +39,6 @@ class ListCarouselTest(unittest.TestCase):
- import sys
- self.sut.logfile = sys.stdout
-
-- def test_out_of_bounds_up(self):
-- self.sut.send(key.UP)
-- self.sut.expect('Standard.*', timeout=1)
-- self.sut.send(key.ENTER)
-- self.sut.expect("{'size': 'Standard'}.*", timeout=1)
--
-- def test_out_of_bounds_down(self):
-- for i in range(3):
-- self.sut.send(key.DOWN)
-- # Not looking at what we expect along the way,
-- # let the last "expect" check that we got the right result
-- self.sut.expect('>.*', timeout=1)
-- self.sut.send(key.ENTER)
-- self.sut.expect("{'size': 'Jumbo'}.*", timeout=1)
--
-
- class ListTaggedTest(unittest.TestCase):
- def setUp(self):
diff --git a/testing/py3-inquirer/loosen-deps.patch b/testing/py3-inquirer/loosen-deps.patch
deleted file mode 100644
index 528d8741a18..00000000000
--- a/testing/py3-inquirer/loosen-deps.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 43c4cab..d79ca61 100644
---- a/setup.py
-+++ b/setup.py
-@@ -68,8 +68,8 @@ setup(name='inquirer',
- include_package_data=True,
- zip_safe=False,
- install_requires=[
-- 'blessings == 1.7',
-- 'readchar == 2.0.1',
-- 'python-editor==1.0.4'
-+ 'blessings >=1.7<2',
-+ 'readchar >=2<3',
-+ 'python-editor >=1<2'
- ],
- )
diff --git a/testing/py3-inquirer/use-py3-in-tests.patch b/testing/py3-inquirer/use-py3-in-tests.patch
deleted file mode 100644
index cc984badcd2..00000000000
--- a/testing/py3-inquirer/use-py3-in-tests.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-diff --git a/tests/acceptance/test_checkbox.py b/tests/acceptance/test_checkbox.py
-index fd84a7b..c0b1ad4 100644
---- a/tests/acceptance/test_checkbox.py
-+++ b/tests/acceptance/test_checkbox.py
-@@ -5,7 +5,7 @@ from readchar import key
-
- class CheckTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/checkbox.py')
-+ self.sut = pexpect.spawn('python3 examples/checkbox.py')
- self.sut.expect('History.*', timeout=1)
-
- def test_default_input(self):
-@@ -67,7 +67,7 @@ class CheckTest(unittest.TestCase):
-
- class CheckWithTaggedValuesTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/checkbox_tagged.py')
-+ self.sut = pexpect.spawn('python3 examples/checkbox_tagged.py')
- self.sut.expect('History.*', timeout=1)
-
- def test_default_selection(self):
-diff --git a/tests/acceptance/test_list.py b/tests/acceptance/test_list.py
-index 2aca650..82886e8 100644
---- a/tests/acceptance/test_list.py
-+++ b/tests/acceptance/test_list.py
-@@ -5,7 +5,7 @@ from readchar import key
-
- class ListTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/list.py')
-+ self.sut = pexpect.spawn('python3 examples/list.py')
- self.sut.expect('Micro.*', timeout=1)
-
- def test_default_input(self):
-@@ -34,7 +34,7 @@ class ListTest(unittest.TestCase):
-
- class ListCarouselTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/list_carousel.py')
-+ self.sut = pexpect.spawn('python3 examples/list_carousel.py')
- self.sut.expect('Standard.*', timeout=1)
- import sys
- self.sut.logfile = sys.stdout
-@@ -57,7 +57,7 @@ class ListCarouselTest(unittest.TestCase):
-
- class ListTaggedTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/list_tagged.py')
-+ self.sut = pexpect.spawn('python3 examples/list_tagged.py')
- self.sut.expect('Micro.*', timeout=1)
-
- def test_default_input(self):
-diff --git a/tests/acceptance/test_password.py b/tests/acceptance/test_password.py
-index 6f9c102..0717222 100644
---- a/tests/acceptance/test_password.py
-+++ b/tests/acceptance/test_password.py
-@@ -5,7 +5,7 @@ from readchar import key
-
- class PasswordTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/password.py')
-+ self.sut = pexpect.spawn('python3 examples/password.py')
-
- def test_default_input(self):
- self.sut.expect(".*What's.*", timeout=1)
-diff --git a/tests/acceptance/test_pre_answers.py b/tests/acceptance/test_pre_answers.py
-index c9d84bc..5b4562a 100644
---- a/tests/acceptance/test_pre_answers.py
-+++ b/tests/acceptance/test_pre_answers.py
-@@ -14,7 +14,7 @@ expected_result = r"""\
-
- class PreAnswersTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/pre_answers.py')
-+ self.sut = pexpect.spawn('python3 examples/pre_answers.py')
-
- def test_minimal_input(self):
- # user
-diff --git a/tests/acceptance/test_shortcuts.py b/tests/acceptance/test_shortcuts.py
-index e6bf784..f4512de 100644
---- a/tests/acceptance/test_shortcuts.py
-+++ b/tests/acceptance/test_shortcuts.py
-@@ -5,7 +5,7 @@ from readchar import key
-
- class ShortcutsTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/shortcuts.py')
-+ self.sut = pexpect.spawn('python3 examples/shortcuts.py')
-
- def set_username(self, name='foo'):
- self.sut.expect("Enter your username", timeout=1)
-diff --git a/tests/acceptance/test_text.py b/tests/acceptance/test_text.py
-index 1eb3def..9eb47a7 100644
---- a/tests/acceptance/test_text.py
-+++ b/tests/acceptance/test_text.py
-@@ -6,7 +6,7 @@ from readchar import key
-
- class TextTest(unittest.TestCase):
- def setUp(self):
-- self.sut = pexpect.spawn('python examples/text.py')
-+ self.sut = pexpect.spawn('python3 examples/text.py')
-
- def set_name(self, name='foo'):
- self.sut.expect("What's", timeout=1)
diff --git a/testing/py3-intervals/APKBUILD b/testing/py3-intervals/APKBUILD
index f6b70c9ca00..6321ad2cc60 100644
--- a/testing/py3-intervals/APKBUILD
+++ b/testing/py3-intervals/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-intervals
_pkgname=intervals
-pkgver=0.8.1
-pkgrel=2
-pkgdesc="A Python module for handling intervals (ranges of comparable objects)"
+pkgver=0.9.2
+pkgrel=4
+pkgdesc="Python module for handling intervals (ranges of comparable objects)"
url="https://github.com/kvesteri/intervals"
arch="noarch"
license="BSD-3-Clause"
depends="py3-infinity"
makedepends="py3-setuptools"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
pytest5.patch"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -27,8 +28,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="f97142d5f1c8d4da21692b856803481878ac2b2afc3b81937de456bacbf66ebb129b1fe9a070ac442cbc6bbe26fdaf2ed839f8fc8b26392b4bd1ce032d054e65 intervals-0.8.1.tar.gz
-af545bec7d8157259197e045396d69ac1791b5e0420056fca69bea444cceacaa208ae568fd80792f614e1c775611ea22c48521bdd47dbdd976a699c150835f96 pytest5.patch"
+sha512sums="
+40da5f7630bc84dbd47196e7e84f94701730b4f2ee71294edfaecfc9187f5c05333fc79502c315d5962c29c9c2a50c8e471980c98764d7c0581d33383a487e4a intervals-0.9.2.tar.gz
+af545bec7d8157259197e045396d69ac1791b5e0420056fca69bea444cceacaa208ae568fd80792f614e1c775611ea22c48521bdd47dbdd976a699c150835f96 pytest5.patch
+"
diff --git a/testing/py3-invoke/APKBUILD b/testing/py3-invoke/APKBUILD
index 1775db09dc2..f48abf397f5 100644
--- a/testing/py3-invoke/APKBUILD
+++ b/testing/py3-invoke/APKBUILD
@@ -1,24 +1,34 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=py3-invoke
-_pkgname=invoke
-pkgver=1.4.1
-pkgrel=0
+pkgver=2.2.0
+pkgrel=2
pkgdesc="Pythonic task execution"
options="!check" # Can't find invoke.vendor.six
-url="http://docs.pyinvoke.org/en/1.3/"
+url="https://www.pyinvoke.org/"
arch="noarch"
license="BSD-2-Clause"
-depends="python3 py3-setuptools py3-yaml"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+depends="py3-yaml"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pyinvoke/invoke/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/invoke-$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="9076a1e643e3496b180d486de48efe599eddafc3e8ac32ab5cfcb27c5aabfd4ea360c0e2e59f96aceb65f3453b5ff2c228bf7d76635fe62854fe092b1ebdf3b2 invoke-1.4.1.tar.gz"
+sha512sums="
+3d0adabec4825fb45524d3ab4f2a790d31245a89e038c08c770fc9f33c81ed182769e8f17d3d6f33a913b431cba475b975826ddfd533a945d481b52deba759a2 py3-invoke-2.2.0.tar.gz
+"
diff --git a/testing/py3-ioflo/APKBUILD b/testing/py3-ioflo/APKBUILD
deleted file mode 100644
index eabab34c50c..00000000000
--- a/testing/py3-ioflo/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-ioflo
-_pkgname=ioflo
-pkgver=2.0.0
-pkgrel=2
-pkgdesc="Automated Reasoning Engine and Flow Based Programming Framework"
-url="https://github.com/ioflo/ioflo"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools-git"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-ioflo" # Backwards compatibility
-provides="py-ioflo=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- # keep ioflo and remove ioflo3
- rm -f "$pkgdir"/usr/bin/ioflo3
-}
-
-sha512sums="4079928c564bb983457939ca477a92cfab220816addf2c6fec70b8e4c80cd41ac3dac86507e2ddfba2e47d63b4e752cfd20f6a81f6e86611ea0a9c2da48631de ioflo-2.0.0.tar.gz"
diff --git a/testing/py3-iso639-lang/APKBUILD b/testing/py3-iso639-lang/APKBUILD
new file mode 100644
index 00000000000..f01efd82b13
--- /dev/null
+++ b/testing/py3-iso639-lang/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-iso639-lang
+pkgver=2.2.3
+pkgrel=0
+pkgdesc="Easy-to-use library for the ISO 639 language representation standards"
+url="https://github.com/LBeaudoux/iso639"
+arch="noarch"
+license="MIT"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="py3-iso639-lang-$pkgver.tar.gz::https://github.com/LBeaudoux/iso639/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/iso639-$pkgver"
+
+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 test.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4846c73b9a8f7e6e5d258c7408f6c4a7eb64ed0b64733f813cbf4e4945acaac55075a5030541629dafce0bc20c98eb1a7fac82c39f96c12309d096e9ef42e629 py3-iso639-lang-2.2.3.tar.gz
+"
diff --git a/testing/py3-iso8601/APKBUILD b/testing/py3-iso8601/APKBUILD
deleted file mode 100644
index a59a8bb76a0..00000000000
--- a/testing/py3-iso8601/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-iso8601
-pkgver=0.1.12
-pkgrel=1
-pkgdesc="Simple module to parse ISO 8601 dates"
-url="https://bitbucket.org/micktwomey/pyiso8601"
-arch="all"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/i/iso8601/iso8601-$pkgver.tar.gz"
-
-builddir="$srcdir/iso8601-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3 --verbose iso8601
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d64f3a83fd3a678446e17fb35265c0487491a53a2ec306fe2332c59e9e471bfe8580b3280da7ae13664f07f7f29edb0347196351ab698849ccaefb52d6ce6613 iso8601-0.1.12.tar.gz"
diff --git a/testing/py3-isodate/APKBUILD b/testing/py3-isodate/APKBUILD
deleted file mode 100644
index b4870bbe574..00000000000
--- a/testing/py3-isodate/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=py3-isodate
-_pyname=isodate
-pkgver=0.6.0
-pkgrel=1
-pkgdesc="An ISO 8601 date/time/duration parser and formatter"
-url="http://pypi.python.org/pypi/isodate"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e977748e13ee2c94ab47bfc47113d152280e9acff6f70e773de73717392148dd2c111a7db2d9fa3679d37936c6ed9a23dc526cb00bd601df45459b6a244f9f7d isodate-0.6.0.tar.gz"
diff --git a/testing/py3-itemadapter/APKBUILD b/testing/py3-itemadapter/APKBUILD
new file mode 100644
index 00000000000..7570362f92c
--- /dev/null
+++ b/testing/py3-itemadapter/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: prspkt <prspkt@protonmail.com>
+# Maintainer: prspkt <prspkt@protonmail.com>
+pkgname=py3-itemadapter
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="Common interface for data container classes"
+options="!check" # Introduces circular dependency with py3-scrapy
+url="https://github.com/scrapy/itemadapter"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-scrapy"
+subpackages="$pkgname-pyc"
+source="https://github.com/scrapy/itemadapter/archive/v$pkgver/itemadapter-$pkgver.tar.gz"
+builddir="$srcdir/itemadapter-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$builddir/build/lib/:$PYTHONPATH" python3 -m pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+86c688bef2d0add3f5ea2bd119689b076c5bc9f92edefb6f5d8faaf88023355e7d2ba5d683ce8f6acd24a2954c5a798902b30d0a70ca31dc32eb5245ad57953f itemadapter-0.8.0.tar.gz
+"
diff --git a/testing/py3-itemloaders/APKBUILD b/testing/py3-itemloaders/APKBUILD
new file mode 100644
index 00000000000..57f5218232a
--- /dev/null
+++ b/testing/py3-itemloaders/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=py3-itemloaders
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="Library to populate items using XPath and CSS with a convenient API"
+url="https://github.com/scrapy/itemloaders"
+arch="noarch"
+license="BSD-3-Clause"
+depends="
+ py3-itemadapter
+ py3-jmespath
+ py3-parsel
+ py3-w3lib
+ python3
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/scrapy/itemloaders/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/itemloaders-$pkgver"
+
+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="
+2e15053b20e01500a496133257200f34c430ed27ae3c5f8c49fe226cffe357fbd35d561d78c2478a621d5cdb3c08631d39ceeb91d114626ffe8fdc6ef4a664ff py3-itemloaders-1.2.0.tar.gz
+"
diff --git a/testing/py3-itunespy/APKBUILD b/testing/py3-itunespy/APKBUILD
new file mode 100644
index 00000000000..eb3a503a632
--- /dev/null
+++ b/testing/py3-itunespy/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-itunespy
+_pkgname=itunespy
+pkgver=1.6
+pkgrel=3
+pkgdesc="Library to fetch data from the iTunes Store API"
+url="https://github.com/sleepyfran/itunespy"
+arch="noarch"
+license="MIT"
+depends="py3-requests py3-pycountry"
+makedepends="py3-setuptools"
+options="!check" # no test suite
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sleepyfran/itunespy/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+d91428e23a71bdbc62e6b8126b379aa48f06a365056147cf30eb4fa6132243d35c8a8d6dc536174a53f206bf7bcb4dcebb5a3697fac0fd88cbcb38205202ad81 py3-itunespy-1.6.tar.gz
+"
diff --git a/testing/py3-janus/APKBUILD b/testing/py3-janus/APKBUILD
new file mode 100644
index 00000000000..bc7bfa2ca60
--- /dev/null
+++ b/testing/py3-janus/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=py3-janus
+pkgver=1.0.0
+pkgrel=3
+pkgdesc="Mixed sync-async queue to interoperate between asyncio tasks and classic threads"
+url="https://github.com/aio-libs/janus/"
+arch="noarch"
+license="Apache-2.0"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-asyncio"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/j/janus/janus-$pkgver.tar.gz
+ no-typing-extensions.patch
+ "
+builddir="$srcdir/janus-$pkgver"
+
+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="
+d66899adad12cc1100a20cb75d8e146321ef947bde996a07490158a5f34c39421bb1a5b08ac87679264a6bee1d3dc9f425fa29d52199626d322fe4462ed8f1f3 janus-1.0.0.tar.gz
+53723d86b73fe8dc135aa5e462fb00c1824ce0dbeacef449a38891860e5fb2058bbe31f5d7f1c1534b51fe6d08498d418a549e30508fffa0418be78c6910e547 no-typing-extensions.patch
+"
diff --git a/testing/py3-janus/no-typing-extensions.patch b/testing/py3-janus/no-typing-extensions.patch
new file mode 100644
index 00000000000..948039cf501
--- /dev/null
+++ b/testing/py3-janus/no-typing-extensions.patch
@@ -0,0 +1,42 @@
+Patch-Source: https://github.com/aio-libs/janus/pull/504
+From 78632be4f75181432dc2ccffe912e063a8258a65 Mon Sep 17 00:00:00 2001
+From: ptrcnull <git@ptrcnull.me>
+Date: Sun, 12 Feb 2023 22:33:15 +0100
+Subject: [PATCH] Use typing_extensions only on Python 3.7 and lower
+
+Protocol was added with PEP 544 to Python 3.8+
+---
+ janus/__init__.py | 6 +++++-
+ setup.cfg | 2 +-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/janus/__init__.py b/janus/__init__.py
+index a2887aa..8b2a9fe 100644
+--- a/janus/__init__.py
++++ b/janus/__init__.py
+@@ -9,7 +9,11 @@ from queue import Empty as SyncQueueEmpty
+ from queue import Full as SyncQueueFull
+ from typing import Any, Callable, Deque, Generic, List, Optional, Set, TypeVar
+
+-from typing_extensions import Protocol
++try:
++ # Python 3.8+
++ from typing import Protocol
++except ImportError:
++ from typing_extensions import Protocol
+
+ __version__ = "1.0.0"
+ __all__ = (
+diff --git a/setup.cfg b/setup.cfg
+index e0032f3..44a6efe 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -44,7 +44,7 @@ packages = find:
+ zip_safe = True
+ include_package_data = True
+ install_requires =
+- typing-extensions>=3.7.4.3
++ typing-extensions>=3.7.4.3;python_version<"3.8"
+
+ [flake8]
+ exclude = .git,.env,__pycache__,.eggs
diff --git a/testing/py3-jaraco-itertools/APKBUILD b/testing/py3-jaraco-itertools/APKBUILD
deleted file mode 100644
index 84a00982b2c..00000000000
--- a/testing/py3-jaraco-itertools/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-jaraco-itertools
-pkgver=5.0.0
-pkgrel=1
-pkgdesc="jaraco.itertools"
-url="https://github.com/jaraco/jaraco.itertools"
-arch="noarch"
-license="MIT"
-depends="python3 py3-more-itertools py3-inflect"
-makedepends="py3-setuptools py3-setuptools_scm py3-toml"
-checkdepends="py3-pytest py3-pytest-black py3-pytest-flake8 py3-pytest-cov"
-source="https://pypi.python.org/packages/source/j/jaraco.itertools/jaraco.itertools-$pkgver.tar.gz"
-options="!check" # Black failure https://github.com/jaraco/jaraco.itertools/issues/11
-builddir="$srcdir/jaraco.itertools-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="38ae2cbdd436b277e3d3c252fadeb5239e2d32b2291686b2a3dbaca69328392eb1db4318b2144954b17302e5b15b94ad89f1ea8a1b2e354deec7d4516bd7ec85 jaraco.itertools-5.0.0.tar.gz"
diff --git a/testing/py3-jeepney/APKBUILD b/testing/py3-jeepney/APKBUILD
deleted file mode 100644
index fa2f2f88562..00000000000
--- a/testing/py3-jeepney/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Leo <thinkabit.ukim@gmail.com>
-pkgname=py3-jeepney
-pkgver=0.4.3
-pkgrel=0
-pkgdesc="Low-level, pure Python DBus protocol wrapper."
-options="!check" # Requires unpackaged testpath
-url="https://gitlab.com/takluyver/jeepney"
-arch="noarch"
-license="MIT"
-depends="python3"
-source="https://pypi.io/packages/source/j/jeepney/jeepney-$pkgver.tar.gz"
-builddir="$srcdir"/jeepney-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="bfb12c9259a57324759f8be44d1faf2c0535762e72db5f1370e64cb144c0fc537c9bc9cfb9b075932fb3a20e3ef4e0c990c10905cc5a69e3fb088e8de4193689 jeepney-0.4.3.tar.gz"
diff --git a/testing/py3-joblib/APKBUILD b/testing/py3-joblib/APKBUILD
deleted file mode 100644
index c2989323ab8..00000000000
--- a/testing/py3-joblib/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-joblib
-pkgver=0.15.1
-pkgrel=0
-pkgdesc="Computing with Python functions"
-url="http://joblib.readthedocs.org/"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-distributed
-license="BSD-3-Clause"
-depends="python3 py3-distributed"
-makedepends="py3-setuptools cython"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/j/joblib/joblib-$pkgver.tar.gz"
-options="!check " # Tests broken
-builddir="$srcdir/joblib-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="6e64f9ab2db87b3d41873481f16c85ce2c7507a478a7e8700283ce445d876dd4b3493669afd574dc30ff951bad940f6c522ab4b36536a496bd54b326e942efe1 joblib-0.15.1.tar.gz"
diff --git a/testing/py3-json-logger/APKBUILD b/testing/py3-json-logger/APKBUILD
deleted file mode 100644
index 7459a5938e5..00000000000
--- a/testing/py3-json-logger/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-json-logger
-pkgver=0.1.11
-pkgrel=0
-pkgdesc="A python library adding a json log formatter"
-url="https://github.com/madzak/python-json-logger"
-arch="noarch"
-license="BSD-2-Clause"
-depends="py3-setuptools"
-source="$pkgname-v$pkgver.tar.gz::https://github.com/madzak/python-json-logger/archive/v$pkgver.tar.gz"
-builddir="$srcdir/"python-json-logger-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="de0e66fd99d5b763c1fe2574e0e2cfc8c1053b88adbbc9b7bf8a48027c1c14c141c1389a303f9dcc43a18671085abaef8650150ecd4a7c281a2a966de5f0f136 py3-json-logger-v0.1.11.tar.gz"
diff --git a/testing/py3-jsonpatch/APKBUILD b/testing/py3-jsonpatch/APKBUILD
deleted file mode 100644
index 16172eb6d7b..00000000000
--- a/testing/py3-jsonpatch/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Matt Dainty <matt+alpine@bodgit-n-scarper.com>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=py3-jsonpatch
-_pkgname=jsonpatch
-pkgver=1.25
-pkgrel=0
-pkgdesc="Apply JSON-Patches (RFC 6902)"
-url="https://github.com/stefankoegl/python-json-patch"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-jsonpointer"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-jsonpatch" # Backwards compatibility
-provides="py-jsonpatch=$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="d50c459d0a3d8e02dedeef4e9e4a7429913bf03d8c17f06864519be611c6528889fd96c4d6fec0d0591b9569626e11db01015c31078fa2877d1653f3a640dbbf jsonpatch-1.25.tar.gz"
diff --git a/testing/py3-jsonpickle/APKBUILD b/testing/py3-jsonpickle/APKBUILD
deleted file mode 100644
index 1f7aa1ead2a..00000000000
--- a/testing/py3-jsonpickle/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer:
-pkgname=py3-jsonpickle
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="Serializing any arbitrary object graph into JSON"
-url="https://pypi.python.org/pypi/jsonpickle/"
-arch="noarch !mips !mips64"
-license="BSD-3-Clause"
-depends="python3 py3-numpy py3-pandas"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/j/jsonpickle/jsonpickle-$pkgver.tar.gz
- tests.patch
- test-opts.patch
- "
-builddir="$srcdir/jsonpickle-$pkgver"
-
-replaces="py-jsonpickle" # Backwards compatibility
-provides="py-jsonpickle=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH=$PWD/build/lib pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ed6bf3472c59ba907a973c5c6f05de13dbfc75eef103796b8f8a63d388f769527f22667ca8761092d1649ff2caf5a73de0593e370df3e7fcabe06e73b265da35 jsonpickle-1.4.1.tar.gz
-8df533695556bc7b329211dfbb5ad667fbd8f9b569721a054f9dead9402ac365666f50ff4343feda536e679a58f1244708ab10fa2f6f8b33b2469dfdc57c576c tests.patch
-3cfa2793f5d51b32aea0453adc677766f8545963cf6cc0d8726dfd43c1038673e3b232a232d18bfb5feb9032ff778677243e0451688ed503a2865f761fdaf655 test-opts.patch"
diff --git a/testing/py3-jsonpickle/test-opts.patch b/testing/py3-jsonpickle/test-opts.patch
deleted file mode 100644
index 1767357bf49..00000000000
--- a/testing/py3-jsonpickle/test-opts.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/pytest.ini b/pytest.ini
-index baef2a8..95365d2 100644
---- a/pytest.ini
-+++ b/pytest.ini
-@@ -1,6 +1,5 @@
- [pytest]
- norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8 --black --cov --cov-append
- doctest_optionflags=ALLOW_UNICODE ELLIPSIS
- filterwarnings=
- # https://github.com/pytest-dev/pytest/issues/6928
-
diff --git a/testing/py3-jsonpickle/tests.patch b/testing/py3-jsonpickle/tests.patch
deleted file mode 100644
index 99d78af9620..00000000000
--- a/testing/py3-jsonpickle/tests.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/jsonpickle/pickler.py b/jsonpickle/pickler.py
-index ce64592..62ba575 100644
---- a/jsonpickle/pickler.py
-+++ b/jsonpickle/pickler.py
-@@ -462,6 +462,9 @@ class Pickler(object):
- if has_getinitargs:
- data[tags.INITARGS] = self._flatten(obj.__getinitargs__())
-
-+ if type(obj).__name__ == 'TextIOWrapper':
-+ return None
-+
- if has_getstate:
- try:
- state = obj.__getstate__()
-
diff --git a/testing/py3-jsonpointer/APKBUILD b/testing/py3-jsonpointer/APKBUILD
deleted file mode 100644
index 0aa4ba843a3..00000000000
--- a/testing/py3-jsonpointer/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Matt Dainty <matt+alpine@bodgit-n-scarper.com>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=py3-jsonpointer
-_pkgname=jsonpointer
-pkgver=2.0
-pkgrel=3
-pkgdesc="Identify specific nodes in a JSON document (RFC 6901)"
-url="https://github.com/stefankoegl/python-json-pointer"
-arch="noarch"
-license="BSD-3-Clause"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-jsonpointer" # Backwards compatibility
-provides="py-jsonpointer=$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="e8e2b03c12c3fc5f65816fc71d1c07135ef74a0c912286f5b8bef2d9e21b8ae6e766d1aa2104b3eeb0e53928034321f25b203386ac3f5641b54b0641f6a08137 jsonpointer-2.0.tar.gz"
diff --git a/testing/py3-jsonrpc-server/APKBUILD b/testing/py3-jsonrpc-server/APKBUILD
deleted file mode 100644
index 3a0e1b25b65..00000000000
--- a/testing/py3-jsonrpc-server/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname="py3-jsonrpc-server"
-pkgver="0.3.4"
-pkgrel=0
-pkgdesc="A asynchronous JSON RPC server"
-url="https://github.com/palantir/python-jsonrpc-server"
-arch="noarch"
-license="MIT"
-depends="python3"
-checkdepends="py3-pytest py3-mock"
-makedepends="py3-setuptools python3-dev py3-wheel"
-source="https://github.com/palantir/python-jsonrpc-server/archive/$pkgver/python-jsonrpc-server-$pkgver.tar.gz"
-builddir="$srcdir/python-jsonrpc-server-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="bc19d6d5bab927d5c5e1b1b9cd8dfd46f479c95b7ed05596cd0e0033731699c8b0dc0f7df61608c1e829225470b49e2eadc222db7171d9ae3c2fea11d75de6ec python-jsonrpc-server-0.3.4.tar.gz"
diff --git a/testing/py3-jsonschema417/APKBUILD b/testing/py3-jsonschema417/APKBUILD
new file mode 100644
index 00000000000..86980990210
--- /dev/null
+++ b/testing/py3-jsonschema417/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Iskren Chernev <me@iskren.info>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Iskren Chernev <me@iskren.info>
+pkgname=py3-jsonschema417
+pkgver=4.17.3
+pkgrel=1
+pkgdesc="An implementation of JSON Schema validation for Python"
+url="https://github.com/python-jsonschema/jsonschema"
+arch="noarch"
+license="MIT"
+depends="python3 py3-pyrsistent py3-attrs"
+makedepends="
+ py3-gpep517
+ py3-hatch-fancy-pypi-readme
+ py3-hatch-vcs
+ py3-hatchling
+ py3-installer
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="py3-twisted py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/j/jsonschema/jsonschema-$pkgver.tar.gz
+ "
+builddir="$srcdir/jsonschema-$pkgver"
+
+prepare() {
+ default_prepare
+ find . -name '*.py' -exec \
+ sed -i \
+ -e 's/import jsonschema$/import jsonschema417 as jsonschema/' \
+ -e 's/import jsonschema[.]/import jsonschema417./' \
+ -e 's/from jsonschema/from jsonschema417/' '{}' \;
+ mv jsonschema jsonschema417
+ sed -i 's/name = "jsonschema"/name = "jsonschema417"/' pyproject.toml
+ # cli doesn't work as of now, it's also deprecated
+ rm jsonschema417/tests/test_cli.py
+ rm jsonschema417/tests/test_deprecations.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 twisted.trial jsonschema417
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/jsonschema417-$pkgver-py3-none-any.whl
+
+ # Add version suffix to executable files.
+ local path; for path in "$pkgdir"/usr/bin/*; do
+ mv "$path" "$path"-3
+ done
+
+ ln -s $pkgname-3 "$pkgdir"/usr/bin/jsonschema
+}
+
+sha512sums="
+626fc913c37d2e49e4b47c9e058aab4a96c1dc50c35d8def0b2ea0ca464dc25e3318d4fde4927c11ca38068743cd81779d5189464b821407ac1de1788bad30e2 jsonschema-4.17.3.tar.gz
+"
diff --git a/testing/py3-junit-xml/APKBUILD b/testing/py3-junit-xml/APKBUILD
index 37ebce8aa23..4136d13b9de 100644
--- a/testing/py3-junit-xml/APKBUILD
+++ b/testing/py3-junit-xml/APKBUILD
@@ -1,16 +1,17 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinx.org>
pkgname=py3-junit-xml
_pkgname=junit-xml
-pkgver=1.8
-pkgrel=4
+pkgver=1.9
+pkgrel=2
pkgdesc="Creates JUnit XML test result documents that can be read by tools such as Jenkins"
options="!check" # 1 test fail
-url="https://pypi.python.org/pypi/junit-xml"
+url="https://pypi.org/project/junit-xml"
arch="noarch"
license="MIT"
depends="py3-six"
makedepends="py3-setuptools"
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
@@ -23,7 +24,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="8fcef94ea73a77ad597bb3280578f0fea86573b779eb4aea1e458e55f1866637a7b43aa04502a65ecb1f2a7403cc61a76ccd35feb4b69eeb6fdc8352914d61a4 junit-xml-1.8.tar.gz"
+sha512sums="
+2a8135255f649cf1ffe0fb580ea80cec1f00e6276ebb0cbc28feda64a8c788102f5b4b65a555b451b0e9b137118baaccb014ab86be0fa30fb6829d0734226619 junit-xml-1.9.tar.gz
+"
diff --git a/testing/py3-jwcrypto/APKBUILD b/testing/py3-jwcrypto/APKBUILD
deleted file mode 100644
index 6af83b7e01c..00000000000
--- a/testing/py3-jwcrypto/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-jwcrypto
-_pkgname=jwcrypto
-pkgver=0.7
-pkgrel=0
-pkgdesc="Python module implementing JOSE Web standards"
-url="https://github.com/latchset/jwcrypto"
-arch="noarch"
-license="LGPL-3.0-only"
-depends="py3-cryptography"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-subpackages="$pkgname-doc"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"/$_pkgname
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5370c95fe84511256e3746d1fa3fdd4d8522803fac595920f3b041fce27cf5bf7f998eb558bad3bf4ef913936fda7a4a4f70fdeaed4617fadc0c2fd3e01833bb jwcrypto-0.7.tar.gz"
diff --git a/testing/py3-k5test/APKBUILD b/testing/py3-k5test/APKBUILD
deleted file mode 100644
index 2d4755a0cfe..00000000000
--- a/testing/py3-k5test/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Dmitry Romanenko <dmitry@romanenko.in>
-# Maintainer: Dmitry Romanenko <dmitry@romanenko.in>
-pkgname=py3-k5test
-_pkgname=k5test
-pkgver=0.9.2
-pkgrel=3
-pkgdesc="A library for testing Python applications in self-contained Kerberos 5 environments"
-url="https://github.com/pythongssapi/k5test"
-arch="noarch"
-license="MIT"
-depends="python3 py3-six krb5-dev"
-makedepends="py3-setuptools"
-options="!check" # Package doesn't have tests
-source="https://files.pythonhosted.org/packages/source/k/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="fa32d5baf36cf76dd8cef09b7bb8d5c7ce363f80a4112aaf76b2196c7e1c3b8318d8f7f1fa5a1968f670611ea331366c7cae948c1695a2de9c0fbc25248eab16 k5test-0.9.2.tar.gz"
diff --git a/testing/py3-kazoo/APKBUILD b/testing/py3-kazoo/APKBUILD
new file mode 100644
index 00000000000..eecdfaa344d
--- /dev/null
+++ b/testing/py3-kazoo/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=py3-kazoo
+pkgver=0_git20211202
+_gitrev=f585d605eea0a37a08aae95a8cc259b80da2ecf0 # tag/rel is 16 months behind
+pkgrel=3
+pkgdesc="Python library for Apache Zookeeper"
+url="https://github.com/python-zk/kazoo"
+arch="noarch"
+license="Apache-2.0"
+depends="python3"
+makedepends="py3-setuptools"
+options="!check" # test requires zookeeper server
+subpackages="$pkgname-pyc"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/python-zk/kazoo/archive/$_gitrev.tar.gz"
+builddir="$srcdir/kazoo-$_gitrev"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir"
+}
+
+sha512sums="
+70b3065ff5b1d119fa32937843c20dce3a355db53980c85168b2b654edb846b917ab3a612e22c0ce99e1f2d79579d90dc6252889323255b16c2ce0a6b8b1f2a1 py3-kazoo-f585d605eea0a37a08aae95a8cc259b80da2ecf0.tar.gz
+"
diff --git a/testing/py3-keepalive/APKBUILD b/testing/py3-keepalive/APKBUILD
new file mode 100644
index 00000000000..63c8ebc2599
--- /dev/null
+++ b/testing/py3-keepalive/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Anees PK <anees6478@gmail.com>
+# Maintainer: Anees PK <anees6478@gmail.com>
+pkgname=py3-keepalive
+pkgver=0.5
+_pkgname=keepalive
+pkgrel=5
+pkgdesc="urllib keepalive support for python"
+url="https://github.com/wikier/keepalive"
+arch="noarch"
+license="LGPL-2.1-or-later"
+depends="python3"
+makedepends="py3-setuptools py3-gpep517 py3-wheel py3-installer"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/k/$_pkgname/$_pkgname-$pkgver.tar.gz
+https://raw.githubusercontent.com/wikier/$_pkgname/master/README.md
+ py3.patch
+ fix-import.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # no proper testsuite
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -c 'from keepalive import HTTPHandler'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ install -Dm0644 "$srcdir"/README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+f5a7a2113d87aafda42fbbefe0ca6af27986dbac59cdd76f6f66b858b8a66c7b792d93324e3c77009fac80b10996f74bad631935118617a49703e111db3e68a8 keepalive-0.5.tar.gz
+1cc046e36aa7697a5a96755bdd5f55916f0a3b97508ce51105affc694e3935910bfb88d6065808e3bc489b0aae01d77c6f7c60f193b551fe760949dd3bb78582 README.md
+174795226911e8a7b55c02c0d5aa608ff4d6fac83a6a1632d69c252f280be26c205ddb03ec37c5f9cc55fa38ae536a54812f4d61bbabaa9a1be1314ac1d8c299 py3.patch
+25d0cd481908ac39cdfe699bf1ba1a920b51ef620ebbb47b9dabb8fb4a6d446c7028edd26494c4067590fac4464b6e92aac0b92be4a3c0c7fb227b99768d0a3b fix-import.patch
+"
diff --git a/testing/py3-keepalive/fix-import.patch b/testing/py3-keepalive/fix-import.patch
new file mode 100644
index 00000000000..1b439511c15
--- /dev/null
+++ b/testing/py3-keepalive/fix-import.patch
@@ -0,0 +1,18 @@
+From: Patrycja Rosa <alpine@ptrcnull.me>
+Date: Wed, 06 Sep 2023 23:09:21 +0200
+Subject: [PATCH] make import relative
+
+otherwise, the package wants to import itself and imports nothing
+
+diff --git a/keepalive/__init__.py b/keepalive/__init__.py
+index 65dd57b..e04f96a 100644
+--- a/keepalive/__init__.py
++++ b/keepalive/__init__.py
+@@ -20,6 +20,6 @@
+ # Copyright 2002-2004 Michael D. Stenner, Ryan Tomayko
+ # Copyright 2015 Sergio Fernández
+
+-from keepalive import *
++from .keepalive import *
+
+ __version__ = "0.5"
diff --git a/testing/py3-keepalive/py3.patch b/testing/py3-keepalive/py3.patch
new file mode 100644
index 00000000000..3042af31b01
--- /dev/null
+++ b/testing/py3-keepalive/py3.patch
@@ -0,0 +1,553 @@
+Patch-Source: https://github.com/wikier/keepalive/pull/11
+From 64393f6c5bf9c69d946b584fd664dd4df72604e6 Mon Sep 17 00:00:00 2001
+From: Theodore Ni <3806110+tjni@users.noreply.github.com>
+Date: Tue, 6 Jun 2023 21:51:59 -0700
+Subject: [PATCH] Convert to Python 3 and drop support for Python 2.
+
+---
+ README.md | 2 +-
+ keepalive/keepalive.py | 226 +++++++++++++++++------------------------
+ setup.py | 28 ++---
+ 3 files changed, 103 insertions(+), 153 deletions(-)
+
+diff --git a/keepalive/keepalive.py b/keepalive/keepalive.py
+index c07ef81..43787c7 100644
+--- a/keepalive/keepalive.py
++++ b/keepalive/keepalive.py
+@@ -20,15 +20,15 @@
+ # Copyright 2002-2004 Michael D. Stenner, Ryan Tomayko
+ # Copyright 2015 Sergio Fernández
+
+-"""An HTTP handler for urllib2 that supports HTTP 1.1 and keepalive.
++"""An HTTP handler for urllib that supports HTTP 1.1 and keepalive.
+
+->>> import urllib2
++>>> import urllib.request
+ >>> from keepalive import HTTPHandler
+ >>> keepalive_handler = HTTPHandler()
+->>> opener = urllib2.build_opener(keepalive_handler)
+->>> urllib2.install_opener(opener)
++>>> opener = urllib.request.build_opener(keepalive_handler)
++>>> urllib.request.install_opener(opener)
+ >>>
+->>> fo = urllib2.urlopen('http://www.python.org')
++>>> fo = urllib.request.urlopen('http://www.python.org')
+
+ If a connection to a given host is requested, and all of the existing
+ connections are still in use, another connection will be opened. If
+@@ -58,7 +58,7 @@
+
+ Upon a status of 200, the object returned has a few additional
+ attributes and methods, which should not be used if you want to
+- remain consistent with the normal urllib2-returned objects:
++ remain consistent with the normal urllib-returned objects:
+
+ close_connection() - close the connection to the host
+ readlines() - you know, readlines()
+@@ -73,55 +73,30 @@
+
+ Unfortunately, these are ONLY there if status == 200, so it's not
+ easy to distinguish between non-200 responses. The reason is that
+- urllib2 tries to do clever things with error codes 301, 302, 401,
++ urllib tries to do clever things with error codes 301, 302, 401,
+ and 407, and it wraps the object upon return.
+
+- For python versions earlier than 2.4, you can avoid this fancy error
+- handling by setting the module-level global HANDLE_ERRORS to zero.
+- You see, prior to 2.4, it's the HTTP Handler's job to determine what
+- to handle specially, and what to just pass up. HANDLE_ERRORS == 0
+- means "pass everything up". In python 2.4, however, this job no
+- longer belongs to the HTTP Handler and is now done by a NEW handler,
+- HTTPErrorProcessor. Here's the bottom line:
+-
+- python version < 2.4
+- HANDLE_ERRORS == 1 (default) pass up 200, treat the rest as
+- errors
+- HANDLE_ERRORS == 0 pass everything up, error processing is
+- left to the calling code
+- python version >= 2.4
+- HANDLE_ERRORS == 1 pass up 200, treat the rest as errors
+- HANDLE_ERRORS == 0 (default) pass everything up, let the
+- other handlers (specifically,
+- HTTPErrorProcessor) decide what to do
+-
+- In practice, setting the variable either way makes little difference
+- in python 2.4, so for the most consistent behavior across versions,
+- you probably just want to use the defaults, which will give you
+- exceptions on errors.
+-
+ """
+
+ # $Id: keepalive.py,v 1.17 2006/12/08 00:14:16 mstenner Exp $
+
+-import urllib2
+-import httplib
++import urllib.error
++import urllib.request
++import http.client
+ import socket
+-import thread
++import _thread
+
+ DEBUG = None
+
+ import sys
+-if sys.version_info < (2, 4): HANDLE_ERRORS = 1
+-else: HANDLE_ERRORS = 0
+-
++
+ class ConnectionManager:
+ """
+ The connection manager must be able to:
+ * keep track of all existing
+ """
+ def __init__(self):
+- self._lock = thread.allocate_lock()
++ self._lock = _thread.allocate_lock()
+ self._hostmap = {} # map hosts to a list of connections
+ self._connmap = {} # map connections to host
+ self._readymap = {} # map connection to ready state
+@@ -129,7 +104,7 @@ def __init__(self):
+ def add(self, host, connection, ready):
+ self._lock.acquire()
+ try:
+- if not self._hostmap.has_key(host): self._hostmap[host] = []
++ if host not in self._hostmap: self._hostmap[host] = []
+ self._hostmap[host].append(connection)
+ self._connmap[connection] = host
+ self._readymap[connection] = ready
+@@ -159,7 +134,7 @@ def get_ready_conn(self, host):
+ conn = None
+ self._lock.acquire()
+ try:
+- if self._hostmap.has_key(host):
++ if host in self._hostmap:
+ for c in self._hostmap[host]:
+ if self._readymap[c]:
+ self._readymap[c] = 0
+@@ -183,7 +158,7 @@ def __init__(self):
+ def open_connections(self):
+ """return a list of connected hosts and the number of connections
+ to each. [('foo.com:80', 2), ('bar.org', 1)]"""
+- return [(host, len(li)) for (host, li) in self._cm.get_all().items()]
++ return [(host, len(li)) for (host, li) in list(self._cm.get_all().items())]
+
+ def close_connection(self, host):
+ """close connection(s) to <host>
+@@ -195,7 +170,7 @@ def close_connection(self, host):
+
+ def close_all(self):
+ """close all open connections"""
+- for host, conns in self._cm.get_all().items():
++ for host, conns in list(self._cm.get_all().items()):
+ for h in conns:
+ self._cm.remove(h)
+ h.close()
+@@ -213,7 +188,7 @@ def _remove_connection(self, host, connection, close=0):
+ def do_open(self, req):
+ host = req.host
+ if not host:
+- raise urllib2.URLError('no host given')
++ raise urllib.error.URLError('no host given')
+
+ try:
+ h = self._cm.get_ready_conn(host)
+@@ -237,8 +212,8 @@ def do_open(self, req):
+ self._cm.add(host, h, 0)
+ self._start_transaction(h, req)
+ r = h.getresponse()
+- except (socket.error, httplib.HTTPException), err:
+- raise urllib2.URLError(err)
++ except (socket.error, http.client.HTTPException) as err:
++ raise urllib.error.URLError(err)
+
+ if DEBUG: DEBUG.info("STATUS: %s, %s", r.status, r.reason)
+
+@@ -255,11 +230,7 @@ def do_open(self, req):
+ r.headers = r.msg
+ r.msg = r.reason
+
+- if r.status == 200 or not HANDLE_ERRORS:
+- return r
+- else:
+- return self.parent.error('http', req, r,
+- r.status, r.msg, r.headers)
++ return r
+
+ def _reuse_connection(self, h, req, host):
+ """start the transaction with a re-used connection
+@@ -273,7 +244,7 @@ def _reuse_connection(self, h, req, host):
+ r = h.getresponse()
+ # note: just because we got something back doesn't mean it
+ # worked. We'll check the version below, too.
+- except (socket.error, httplib.HTTPException):
++ except (socket.error, http.client.HTTPException):
+ r = None
+ except:
+ # adding this block just in case we've missed
+@@ -292,7 +263,7 @@ def _reuse_connection(self, h, req, host):
+ raise
+
+ if r is None or r.version == 9:
+- # httplib falls back to assuming HTTP 0.9 if it gets a
++ # http.client falls back to assuming HTTP 0.9 if it gets a
+ # bad header back. This is most likely to happen if
+ # the socket has been closed by the server since we
+ # last used the connection.
+@@ -312,22 +283,22 @@ def _start_transaction(self, h, req):
+ h.putrequest('POST', req.selector)
+ else:
+ h.putrequest('POST', req.get_selector())
+- if not req.headers.has_key('Content-type'):
++ if 'Content-type' not in req.headers:
+ h.putheader('Content-type',
+ 'application/x-www-form-urlencoded')
+- if not req.headers.has_key('Content-length'):
++ if 'Content-length' not in req.headers:
+ h.putheader('Content-length', '%d' % len(data))
+ else:
+ if hasattr(req, 'selector'):
+ h.putrequest('GET', req.selector)
+ else:
+ h.putrequest('GET', req.get_selector())
+- except (socket.error, httplib.HTTPException), err:
+- raise urllib2.URLError(err)
++ except (socket.error, http.client.HTTPException) as err:
++ raise urllib.error.URLError(err)
+
+ for args in self.parent.addheaders:
+ h.putheader(*args)
+- for k, v in req.headers.items():
++ for k, v in list(req.headers.items()):
+ h.putheader(k, v)
+ h.endheaders()
+ if req.data:
+@@ -336,7 +307,7 @@ def _start_transaction(self, h, req):
+ def _get_connection(self, host):
+ return NotImplementedError
+
+-class HTTPHandler(KeepAliveHandler, urllib2.HTTPHandler):
++class HTTPHandler(KeepAliveHandler, urllib.request.HTTPHandler):
+ def __init__(self):
+ KeepAliveHandler.__init__(self)
+
+@@ -346,7 +317,7 @@ def http_open(self, req):
+ def _get_connection(self, host):
+ return HTTPConnection(host)
+
+-class HTTPSHandler(KeepAliveHandler, urllib2.HTTPSHandler):
++class HTTPSHandler(KeepAliveHandler, urllib.request.HTTPSHandler):
+ def __init__(self, ssl_factory=None):
+ KeepAliveHandler.__init__(self)
+ if not ssl_factory:
+@@ -364,7 +335,7 @@ def _get_connection(self, host):
+ try: return self._ssl_factory.get_https_connection(host)
+ except AttributeError: return HTTPSConnection(host)
+
+-class HTTPResponse(httplib.HTTPResponse):
++class HTTPResponse(http.client.HTTPResponse):
+ # we need to subclass HTTPResponse in order to
+ # 1) add readline() and readlines() methods
+ # 2) add close_connection() methods
+@@ -385,10 +356,7 @@ class HTTPResponse(httplib.HTTPResponse):
+
+
+ def __init__(self, sock, debuglevel=0, strict=0, method=None):
+- if method: # the httplib in python 2.3 uses the method arg
+- httplib.HTTPResponse.__init__(self, sock, debuglevel, method)
+- else: # 2.2 doesn't
+- httplib.HTTPResponse.__init__(self, sock, debuglevel)
++ http.client.HTTPResponse.__init__(self, sock, debuglevel, method)
+ self.fileno = sock.fileno
+ self.code = None
+ self._rbuf = b""
+@@ -398,7 +366,7 @@ def __init__(self, sock, debuglevel=0, strict=0, method=None):
+ self._url = None # (same)
+ self._connection = None # (same)
+
+- _raw_read = httplib.HTTPResponse.read
++ _raw_read = http.client.HTTPResponse.read
+
+ def close(self):
+ if self.fp:
+@@ -462,11 +430,11 @@ def readlines(self, sizehint = 0):
+ return list
+
+
+-class HTTPConnection(httplib.HTTPConnection):
++class HTTPConnection(http.client.HTTPConnection):
+ # use the modified response class
+ response_class = HTTPResponse
+
+-class HTTPSConnection(httplib.HTTPSConnection):
++class HTTPSConnection(http.client.HTTPSConnection):
+ response_class = HTTPResponse
+
+ #########################################################################
+@@ -474,81 +442,77 @@ class HTTPSConnection(httplib.HTTPSConnection):
+ #########################################################################
+
+ def error_handler(url):
+- global HANDLE_ERRORS
+- orig = HANDLE_ERRORS
+ keepalive_handler = HTTPHandler()
+- opener = urllib2.build_opener(keepalive_handler)
+- urllib2.install_opener(opener)
+- pos = {0: 'off', 1: 'on'}
+- for i in (0, 1):
+- print " fancy error handling %s (HANDLE_ERRORS = %i)" % (pos[i], i)
+- HANDLE_ERRORS = i
+- try:
+- fo = urllib2.urlopen(url)
+- foo = fo.read()
+- fo.close()
+- try: status, reason = fo.status, fo.reason
+- except AttributeError: status, reason = None, None
+- except IOError, e:
+- print " EXCEPTION: %s" % e
+- raise
+- else:
+- print " status = %s, reason = %s" % (status, reason)
+- HANDLE_ERRORS = orig
++ opener = urllib.request.build_opener(keepalive_handler)
++ urllib.request.install_opener(opener)
++ try:
++ fo = urllib.request.urlopen(url)
++ foo = fo.read()
++ fo.close()
++ try: status, reason = fo.status, fo.reason
++ except AttributeError: status, reason = None, None
++ except IOError as e:
++ print(" EXCEPTION: %s" % e)
++ raise
++ else:
++ print(" status = %s, reason = %s" % (status, reason))
+ hosts = keepalive_handler.open_connections()
+- print "open connections:", hosts
++ print("open connections:", hosts)
+ keepalive_handler.close_all()
+
+ def continuity(url):
+- import md5
++ import hashlib
+ format = '%25s: %s'
+
+ # first fetch the file with the normal http handler
+- opener = urllib2.build_opener()
+- urllib2.install_opener(opener)
+- fo = urllib2.urlopen(url)
++ opener = urllib.request.build_opener()
++ urllib.request.install_opener(opener)
++ fo = urllib.request.urlopen(url)
+ foo = fo.read()
+ fo.close()
+- m = md5.new(foo)
+- print format % ('normal urllib', m.hexdigest())
++ m = hashlib.md5()
++ m.update(foo)
++ print(format % ('normal urllib', m.hexdigest()))
+
+ # now install the keepalive handler and try again
+- opener = urllib2.build_opener(HTTPHandler())
+- urllib2.install_opener(opener)
++ opener = urllib.request.build_opener(HTTPHandler())
++ urllib.request.install_opener(opener)
+
+- fo = urllib2.urlopen(url)
++ fo = urllib.request.urlopen(url)
+ foo = fo.read()
+ fo.close()
+- m = md5.new(foo)
+- print format % ('keepalive read', m.hexdigest())
++ m = hashlib.md5()
++ m.update(foo)
++ print(format % ('keepalive read', m.hexdigest()))
+
+- fo = urllib2.urlopen(url)
+- foo = ''
++ fo = urllib.request.urlopen(url)
++ foo = b''
+ while 1:
+ f = fo.readline()
+ if f: foo = foo + f
+ else: break
+ fo.close()
+- m = md5.new(foo)
+- print format % ('keepalive readline', m.hexdigest())
++ m = hashlib.md5()
++ m.update(foo)
++ print(format % ('keepalive readline', m.hexdigest()))
+
+ def comp(N, url):
+- print ' making %i connections to:\n %s' % (N, url)
++ print(' making %i connections to:\n %s' % (N, url))
+
+ sys.stdout.write(' first using the normal urllib handlers')
+ # first use normal opener
+- opener = urllib2.build_opener()
+- urllib2.install_opener(opener)
++ opener = urllib.request.build_opener()
++ urllib.request.install_opener(opener)
+ t1 = fetch(N, url)
+- print ' TIME: %.3f s' % t1
++ print(' TIME: %.3f s' % t1)
+
+ sys.stdout.write(' now using the keepalive handler ')
+ # now install the keepalive handler and try again
+- opener = urllib2.build_opener(HTTPHandler())
+- urllib2.install_opener(opener)
++ opener = urllib.request.build_opener(HTTPHandler())
++ urllib.request.install_opener(opener)
+ t2 = fetch(N, url)
+- print ' TIME: %.3f s' % t2
+- print ' improvement factor: %.2f' % (t1/t2, )
++ print(' TIME: %.3f s' % t2)
++ print(' improvement factor: %.2f' % (t1/t2, ))
+
+ def fetch(N, url, delay=0):
+ import time
+@@ -556,7 +520,7 @@ def fetch(N, url, delay=0):
+ starttime = time.time()
+ for i in range(N):
+ if delay and i > 0: time.sleep(delay)
+- fo = urllib2.urlopen(url)
++ fo = urllib.request.urlopen(url)
+ foo = fo.read()
+ fo.close()
+ lens.append(len(foo))
+@@ -566,7 +530,7 @@ def fetch(N, url, delay=0):
+ for i in lens[1:]:
+ j = j + 1
+ if not i == lens[0]:
+- print "WARNING: inconsistent length on read %i: %i" % (j, i)
++ print("WARNING: inconsistent length on read %i: %i" % (j, i))
+
+ return diff
+
+@@ -574,16 +538,16 @@ def test_timeout(url):
+ global DEBUG
+ dbbackup = DEBUG
+ class FakeLogger:
+- def debug(self, msg, *args): print msg % args
++ def debug(self, msg, *args): print(msg % args)
+ info = warning = error = debug
+ DEBUG = FakeLogger()
+- print " fetching the file to establish a connection"
+- fo = urllib2.urlopen(url)
++ print(" fetching the file to establish a connection")
++ fo = urllib.request.urlopen(url)
+ data1 = fo.read()
+ fo.close()
+
+ i = 20
+- print " waiting %i seconds for the server to close the connection" % i
++ print(" waiting %i seconds for the server to close the connection" % i)
+ while i > 0:
+ sys.stdout.write('\r %2i' % i)
+ sys.stdout.flush()
+@@ -591,33 +555,33 @@ def debug(self, msg, *args): print msg % args
+ i -= 1
+ sys.stderr.write('\r')
+
+- print " fetching the file a second time"
+- fo = urllib2.urlopen(url)
++ print(" fetching the file a second time")
++ fo = urllib.request.urlopen(url)
+ data2 = fo.read()
+ fo.close()
+
+ if data1 == data2:
+- print ' data are identical'
++ print(' data are identical')
+ else:
+- print ' ERROR: DATA DIFFER'
++ print(' ERROR: DATA DIFFER')
+
+ DEBUG = dbbackup
+
+
+ def test(url, N=10):
+- print "checking error hander (do this on a non-200)"
++ print("checking error hander (do this on a non-200)")
+ try: error_handler(url)
+- except IOError, e:
+- print "exiting - exception will prevent further tests"
++ except IOError as e:
++ print("exiting - exception will prevent further tests")
+ sys.exit()
+- print
+- print "performing continuity test (making sure stuff isn't corrupted)"
++ print()
++ print("performing continuity test (making sure stuff isn't corrupted)")
+ continuity(url)
+- print
+- print "performing speed comparison"
++ print()
++ print("performing speed comparison")
+ comp(N, url)
+- print
+- print "performing dropped-connection check"
++ print()
++ print("performing dropped-connection check")
+ test_timeout(url)
+
+ if __name__ == '__main__':
+@@ -627,7 +591,7 @@ def test(url, N=10):
+ N = int(sys.argv[1])
+ url = sys.argv[2]
+ except:
+- print "%s <integer> <url>" % sys.argv[0]
++ print("%s <integer> <url>" % sys.argv[0])
+ else:
+ test(url, N)
+
+diff --git a/setup.py b/setup.py
+index 4f06360..0f963c1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -23,23 +23,13 @@
+ from setuptools import setup
+ import sys
+
+-try:
+- import six
+- py3 = six.PY3
+-except:
+- py3 = sys.version_info[0] >= 3
+-
+ # metadata
+-if py3:
+- import re
+- _version_re = re.compile(r'__version__\s*=\s*"(.*)"')
+- for line in open('keepalive/__init__.py', encoding='utf-8'):
+- version_match = _version_re.match(line)
+- if version_match:
+- _version = version_match.group(1)
+-else:
+- import keepalive
+- _version = keepalive.__version__
++import re
++_version_re = re.compile(r'__version__\s*=\s*"(.*)"')
++for line in open('keepalive/__init__.py', encoding='utf-8'):
++ version_match = _version_re.match(line)
++ if version_match:
++ _version = version_match.group(1)
+
+ setup(
+ name = 'keepalive',
+@@ -62,14 +52,10 @@
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ 'License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)',
+ 'Operating System :: OS Independent',
+- 'Programming Language :: Python :: 2',
+- 'Programming Language :: Python :: 2.6',
+- 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ ],
+- keywords = 'python http urllib keepalive',
+- use_2to3 = True
++ keywords = 'python http urllib keepalive'
+ )
diff --git a/testing/py3-kerberos/APKBUILD b/testing/py3-kerberos/APKBUILD
index 4f7015af7c4..4993ada1bf1 100644
--- a/testing/py3-kerberos/APKBUILD
+++ b/testing/py3-kerberos/APKBUILD
@@ -2,10 +2,10 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-kerberos
_pkgname=kerberos
-pkgver=1.3.0
-pkgrel=2
-pkgdesc="A Python Kerberos high-level interface"
-url="https://pypi.python.org/pypi/kerberos"
+pkgver=1.3.1
+pkgrel=4
+pkgdesc="Python Kerberos high-level interface"
+url="https://pypi.org/project/kerberos"
arch="all"
license="Apache-2.0"
depends="python3"
@@ -25,7 +25,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="3f861dcb7ed8a1317b9c792c5b3fd00161d6f6539d3f42603ca765d75e105bbcc11d9dcbfdbf90949e0357fcd75a0c4da44ff755f1b26148a86d35e3ed142a1b kerberos-1.3.0.tar.gz"
+sha512sums="63608c6ee94bcade567de19bea5e139039b336e181a319184666a0d1a11b1b6cd10cebf7bab52adc67502788c1632ff36a2534de37b4d01a5a32d9003aa74c6e kerberos-1.3.1.tar.gz"
diff --git a/testing/py3-keyring/APKBUILD b/testing/py3-keyring/APKBUILD
deleted file mode 100644
index 1c2a9529b68..00000000000
--- a/testing/py3-keyring/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: opal hart <opal@wowana.me>
-pkgname=py3-keyring
-pkgver=21.2.1
-pkgrel=0
-pkgdesc="Access the system keyring service from Python"
-url="https://github.com/jaraco/keyring"
-arch="noarch"
-license="GPL-3.0-only"
-depends="python3 py3-setuptools py3-entrypoints py3-secretstorage py3-jeepney"
-source="https://files.pythonhosted.org/packages/source/k/keyring/keyring-$pkgver.tar.gz"
-builddir="$srcdir"/keyring-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e9fdf88a638e1a299dae7ce77c65356cd39f95db973ba399497f2d1e1e7af7595b3071e6df33a4aaa0cc9899a96ae3eae3b02d2ece604f3ff844ac82d3192617 keyring-21.2.1.tar.gz"
diff --git a/testing/py3-kikit/APKBUILD b/testing/py3-kikit/APKBUILD
new file mode 100644
index 00000000000..d7330d690ca
--- /dev/null
+++ b/testing/py3-kikit/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-kikit
+pkgver=1.5.1
+pkgrel=0
+pkgdesc="Python library and CLI tool to automate several tasks in KiCAD"
+url="https://github.com/yaqwsx/KiKit"
+# riscv64: py3-shapely
+# aarch64, armv7, armhf, mips64: py3-solidpython
+# s390x: kicad
+arch="noarch !riscv64 !aarch64 !armv7 !armhf !s390x"
+license="MIT"
+depends="
+ kicad
+ py3-click
+ py3-commentjson
+ py3-markdown2
+ py3-pcbnewtransition
+ py3-pybars3
+ py3-shapely
+ py3-solidpython
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-python-versioneer
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/yaqwsx/KiKit/archive/v$pkgver.tar.gz
+ "
+builddir="$srcdir/KiKit-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # unvendor old versioneer
+ rm -f versioneer.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 test/units
+ ../../.testenv/bin/python3 -m pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1090211f1840ebb6f2f0533b3f588405b5eb007cca6d391183e0450361f55631912891c2e25768431dc4ae0e79025313752d72e00fd049ee9e48b10cf470fcac py3-kikit-1.5.1.tar.gz
+"
diff --git a/testing/py3-kitchen/APKBUILD b/testing/py3-kitchen/APKBUILD
deleted file mode 100644
index c066bcae8b2..00000000000
--- a/testing/py3-kitchen/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=py3-kitchen
-_pyname=kitchen
-pkgver=1.2.6
-pkgrel=0
-pkgdesc="Useful snippets of python code"
-url="https://github.com/fedora-infra/kitchen"
-arch="noarch"
-license="LGPL-2.1-only"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/k/kitchen/kitchen-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="215d9e1f64b2f10362ecc434999b27607ecf091c8abe317f47b8607d82a45a63ba2cdfaef8b560e38c82a5e4ab270bb9b5283f957e8a66423fd93e9b83ed0123 kitchen-1.2.6.tar.gz"
diff --git a/testing/py3-kombu/APKBUILD b/testing/py3-kombu/APKBUILD
deleted file mode 100644
index 7ee3d8285f8..00000000000
--- a/testing/py3-kombu/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-kombu
-_pyname=kombu
-pkgver=4.6.8
-pkgrel=0
-pkgdesc="a message queue abstraction layer"
-options="!check" # 3 Redis tests fail
-url="https://pypi.python.org/pypi/kombu/"
-arch="noarch !s390x" # Limited by py3-dill
-license="BSD-3-Clause"
-depends="py3-amqp py3-vine py3-importlib-metadata"
-makedepends="py3-setuptools"
-checkdepends="py3-pyro4 py3-case py3-nose py3-mock py3-tz py3-pytest py3-sqlalchemy
- py3-fakeredis"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-replaces="py-kombu" # Backwards compatibility
-provides="py-kombu=$pkgver-r$pkgrel" # Backwards compatibility
-
-prepare() {
- sed -i requirements/test.txt -e 's/pytest-sugar//g'
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="65b4ebb283ae380388de5d9f8fdc1ec0f41a9910744906b23eb150bc62ecb55ae6d65bb96ad31d8a033f26c2a8dc386939fced393866b6467e77a9760dfa17cc kombu-4.6.8.tar.gz"
diff --git a/testing/py3-korean-lunar-calendar/APKBUILD b/testing/py3-korean-lunar-calendar/APKBUILD
deleted file mode 100644
index fef762884e7..00000000000
--- a/testing/py3-korean-lunar-calendar/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-korean-lunar-calendar
-pkgver=0.2.1
-pkgrel=1
-pkgdesc="Libraries to convert Korean lunar-calendar to Gregorian calendar"
-url="https://github.com/usingsky/korean_lunar_calendar_py"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/k/korean_lunar_calendar/korean_lunar_calendar-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/korean_lunar_calendar-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5d2a757696b86866cb869c4fdecc8257dafe99d78ae6ff33939f0f7d0f15509506c33fab9e520c79c6da30be1489d56b7f31b3128c215591c5f816d8091e8449 korean_lunar_calendar-0.2.1.tar.gz"
diff --git a/testing/py3-landlock/APKBUILD b/testing/py3-landlock/APKBUILD
new file mode 100644
index 00000000000..c82d3a7b632
--- /dev/null
+++ b/testing/py3-landlock/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer:
+pkgname=py3-landlock
+pkgver=1.0.0_pre4
+_pkgver="${pkgver//_pre/.dev}"
+pkgrel=2
+pkgdesc="Python interface to the Landlock Linux Security Module"
+url="https://github.com/Edward-Knight/landlock"
+arch="all"
+license="MIT"
+makedepends="
+ py3-flit-core
+ py3-gpep517
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+ py3-pytest-forked
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$_pkgver.tar.gz::https://github.com/Edward-Knight/landlock/archive/refs/tags/v$_pkgver.tar.gz"
+builddir="$srcdir/landlock-$_pkgver"
+options="!check" # needs landlock LSM loaded by kernel
+
+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="
+40254d8c4bdac02daa7883705a55705087b9171ad2ed269bb29de8082ef7288755ac3a7f4f6a184b76b0c2786903057d08dc06244b0d126ee0bf57f9d90c0795 py3-landlock-1.0.0.dev4.tar.gz
+"
diff --git a/testing/py3-langcodes/APKBUILD b/testing/py3-langcodes/APKBUILD
new file mode 100644
index 00000000000..3569fcce1f2
--- /dev/null
+++ b/testing/py3-langcodes/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-langcodes
+pkgver=3.3.0
+pkgrel=2
+pkgdesc="Tools for labeling human languages with IETF language tags"
+url="https://github.com/rspeer/langcodes"
+arch="noarch"
+license="MIT"
+depends="py3-language-data py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/l/langcodes/langcodes-$pkgver.tar.gz"
+builddir="$srcdir/langcodes-$pkgver"
+
+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="
+b728d951dda28cdbc20e1bb7d3ad55281c04dee09f4451ea2820d3d5ad29eb4957c7fc5b0ad5e2a6828f28284d6a4785c780931396230401c2960bbf8d7f444a langcodes-3.3.0.tar.gz
+"
diff --git a/testing/py3-language-data/APKBUILD b/testing/py3-language-data/APKBUILD
new file mode 100644
index 00000000000..910a7978726
--- /dev/null
+++ b/testing/py3-language-data/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-language-data
+pkgver=1.1
+pkgrel=1
+pkgdesc="Supplementary data about languages used by the langcodes module"
+url="https://github.com/rspeer/language_data"
+arch="noarch"
+license="MIT"
+depends="
+ py3-marisa-trie
+ py3-setuptools
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/l/language_data/language_data-$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/language_data-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4c9fcbf98a06bc5eb9eb3b004e6254d56cba6eaf3c8ae45f7b30d6d9ac13480344bd03ff234edc2086fea36267644d59aaa4b0db4920c04c83f831db9fc05cf3 language_data-1.1.tar.gz
+"
diff --git a/testing/py3-language-server/APKBUILD b/testing/py3-language-server/APKBUILD
deleted file mode 100644
index 171e0a9e14c..00000000000
--- a/testing/py3-language-server/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname="py3-language-server"
-pkgver="0.31.9"
-pkgrel=0
-pkgdesc="An implementation of the Language Server Protocol for Python"
-url="https://github.com/palantir/python-language-server"
-arch="noarch"
-license="MIT"
-depends="python3 py3-wheel py3-ujson py3-pydocstyle py3-jsonrpc-server py3-jedi py3-parso py3-setuptools py3-pluggy"
-checkdepends="py3-pytest py3-mock py3-pycodestyle py3-pyflakes py3-mccabe
- py3-autopep8 py3-pylint py3-python-versioneer py3-pytest-cov py3-coverage
- py3-numpy py3-pandas py3-matplotlib py3-qt5 py3-yapf py3-rope"
-source="https://github.com/palantir/python-language-server/archive/$pkgver/python-language-server-$pkgver.tar.gz"
-builddir="$srcdir/python-language-server-$pkgver"
-
-case "$CARCH" in
- # Missing checkdepends: py3-qt5
- armhf) options="$options !check" ;;
-
- # Missing checkdepends: py3-numpy
- mips*) options="$options !check" ;;
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b63be132a5eca3e5e59745f64edf56b8451c71f9f019b0760adb989180e11ba91bee574d62d980d8d25fc61e2eaac44beddb93e1e0fb221c90dd6fe789e52633 python-language-server-0.31.9.tar.gz"
diff --git a/testing/py3-lark-parser/APKBUILD b/testing/py3-lark-parser/APKBUILD
deleted file mode 100644
index 4be9c889db7..00000000000
--- a/testing/py3-lark-parser/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Russ Webber <russ@rw.id.au>
-# Maintainer: Russ Webber <russ@rw.id.au>
-pkgname=py3-lark-parser
-pkgver=0.8.5
-pkgrel=0
-pkgdesc="A modern parsing library for Python, implementing Earley & LALR(1) and an easy interface "
-url="https://github.com/lark-parser/lark"
-arch="noarch"
-license="MIT"
-options="!check" # requires python dependency js2py
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/l/lark-parser/lark-parser-$pkgver.tar.gz"
-builddir="$srcdir/lark-parser-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d3af0c7f25f2c6fb59eee83c36d31fb99b86956900a78c644ac0043810775b4497f5e0296f85a232040569baa08c6740f583cd3fbaa2cb10f04bc9fb063ad761 lark-parser-0.8.5.tar.gz"
diff --git a/testing/py3-latex2mathml/APKBUILD b/testing/py3-latex2mathml/APKBUILD
new file mode 100644
index 00000000000..0f8750cd9be
--- /dev/null
+++ b/testing/py3-latex2mathml/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=py3-latex2mathml
+pkgver=3.77.0
+pkgrel=1
+pkgdesc="Pure Python library for LaTeX to MathML conversion"
+url="https://pypi.org/project/latex2mathml/"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/roniemartinez/latex2mathml/archive/$pkgver/latex2mathml-$pkgver.tar.gz"
+builddir="$srcdir/latex2mathml-$pkgver"
+options="!check"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+}
+
+sha512sums="
+1f7b7f383e75017720d07518b665ffba0b9a6803f771ece64245b6cc12803f0b2ec5aa9a79c030a1735aa09225825edd14a522d90e65bc52c28c8bd4b7066e31 latex2mathml-3.77.0.tar.gz
+"
diff --git a/testing/py3-lazy-object-proxy/APKBUILD b/testing/py3-lazy-object-proxy/APKBUILD
deleted file mode 100644
index 66db0a8475e..00000000000
--- a/testing/py3-lazy-object-proxy/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-lazy-object-proxy
-_pkgname=lazy-object-proxy
-pkgver=1.4.3
-pkgrel=1
-pkgdesc="Fast and thorough lazy object proxy"
-options="!check" # Requires unpackaged pytest-benchmark
-url="https://github.com/ionelmc/python-lazy-object-proxy"
-arch="all"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools python3-dev"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/"$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c2c8ad8286776d61def222b394cab27647b7a1bf4b3915e169b65c6022cb26d5ef286f1041adfddaf8a78a2410c11424983b3580a019561eda5f2e4c3a88620f lazy-object-proxy-1.4.3.tar.gz"
diff --git a/testing/py3-lazy/APKBUILD b/testing/py3-lazy/APKBUILD
deleted file mode 100644
index ebb06345e73..00000000000
--- a/testing/py3-lazy/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-lazy
-pkgver=1.4
-pkgrel=0
-pkgdesc="Lazy attributes for Python objects"
-url="https://github.com/stefanholek/lazy"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://github.com/stefanholek/lazy/archive/$pkgver/lazy-$pkgver.tar.gz"
-builddir="$srcdir/lazy-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2a735b1436d3ebc76791645631cfcf54f1e332fd365c317bee92498b10397ec8206b271ae74427cae02985808a843eb98720c91e62dce93bb75702205da161bc lazy-1.4.tar.gz"
diff --git a/testing/py3-levenshtein/APKBUILD b/testing/py3-levenshtein/APKBUILD
new file mode 100644
index 00000000000..c14686726f6
--- /dev/null
+++ b/testing/py3-levenshtein/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-levenshtein
+pkgver=0.25.1
+pkgrel=2
+pkgdesc="Python extension for computing string edit distances and similarities"
+url="https://github.com/maxbachmann/Levenshtein"
+arch="all"
+license="GPL-2.0-only"
+depends="py3-rapidfuzz"
+makedepends="
+ cmake
+ cython
+ py3-gpep517
+ py3-scikit-build
+ python3-dev
+ rapidfuzz
+ samurai
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/maxbachmann/Levenshtein/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/Levenshtein-$pkgver"
+
+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/Levenshtein*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/Levenshtein*.whl
+}
+
+sha512sums="
+936dab36b15df6f2ee5425efb1fdb1490fb8f618ba453f464a6dd615bcc427e55ceee7474f06b34392871d9f38470b853602a11d8f9776eee66ec34156511ca4 py3-levenshtein-0.25.1.tar.gz
+"
diff --git a/testing/py3-lib_users/APKBUILD b/testing/py3-lib_users/APKBUILD
index f4e85350a08..5cc2e422133 100644
--- a/testing/py3-lib_users/APKBUILD
+++ b/testing/py3-lib_users/APKBUILD
@@ -2,15 +2,18 @@
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=py3-lib_users
_pkgname=lib_users
-pkgver=0.13
-pkgrel=1
+pkgver=0.15
+pkgrel=3
pkgdesc="Checks /proc for libraries being mapped but marked as deleted"
url="https://github.com/klausman/lib_users"
arch="noarch"
license="GPL-2.0-or-later"
depends="python3"
makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/klausman/lib_users/archive/v$pkgver.tar.gz"
+options="!check" # https://bugs.python.org/issue29130
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/klausman/lib_users/archive/v$pkgver.tar.gz
+ setuptools.patch"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
@@ -22,7 +25,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="588af7068728810832bcf4d1526f271e255d07c75d152fb41844c66f3598a71e9a96bee3426b31b58cd26af889bc42c0a7248731fdfe3623fd4567d2b6b7275e py3-lib_users-0.13.tar.gz"
+sha512sums="
+f9eab0d7c634602c496154dc20bd8374842df77c6abfaf69a0c34013f01c3a7541a006cb2b027539f6c088a55bea78682bf156723899d614f39ee48773fb9ea8 py3-lib_users-0.15.tar.gz
+c1b18709799af0f6ae5a0644beb0a95c709d07e28033fd68801cabe042ed0dbbaa3b7f1efe88a078f53a200f074e198404dc11fc149a85832035e8389577921d setuptools.patch
+"
diff --git a/testing/py3-lib_users/setuptools.patch b/testing/py3-lib_users/setuptools.patch
new file mode 100644
index 00000000000..d82ba1443e0
--- /dev/null
+++ b/testing/py3-lib_users/setuptools.patch
@@ -0,0 +1,11 @@
+--- a/setup.py.orig 2021-12-18 22:45:02.302702503 +0300
++++ b/setup.py 2021-12-18 22:45:10.642687111 +0300
+@@ -1,6 +1,6 @@
+ #!/usr/bin/env python
+
+-from distutils.core import setup
++from setuptools import setup
+
+
+ setup(name='lib_users',
+ version='0.15',
diff --git a/testing/py3-libacl/APKBUILD b/testing/py3-libacl/APKBUILD
index 1bc15fa7645..37fd6fd97a5 100644
--- a/testing/py3-libacl/APKBUILD
+++ b/testing/py3-libacl/APKBUILD
@@ -2,10 +2,10 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-libacl
_pkgname=pylibacl
-pkgver=0.5.3
-pkgrel=2
+pkgver=0.7.0
+pkgrel=1
pkgdesc="A python module for manipulating ACLs"
-url="http://pylibacl.k1024.org/"
+url="https://pylibacl.k1024.org/"
arch="all"
license="LGPL-2.0-or-later"
makedepends="py3-setuptools python3-dev acl-dev"
@@ -27,4 +27,6 @@ package() {
python3 setup.py install --root="$pkgdir"
}
-sha512sums="7d58a3a64e939a8891333a0fb8aa6e12dcbbf09e4e829f86fd1bb41693dd4f734a4ab907770e8e341476594aa495b5308a26d495ebf251dcda308ee46e5392ad pylibacl-0.5.3.tar.gz"
+sha512sums="
+077515a00c7a048faf7792acd9c3e768d35674c0b3f4ec72fdf37561c90ed12bb392582a4fb9a23b7916db3375278c2636f2844f362a8335e7ad68e1e9b9c3bd pylibacl-0.7.0.tar.gz
+"
diff --git a/testing/py3-libarchive-c/APKBUILD b/testing/py3-libarchive-c/APKBUILD
deleted file mode 100644
index b1512864d3e..00000000000
--- a/testing/py3-libarchive-c/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=py3-libarchive-c
-pkgver=2.9
-pkgrel=1
-pkgdesc="Python interface to libarchive"
-url="https://github.com/Changaco/python-libarchive-c"
-arch="noarch !mips !mips64" # essential tests fail on mips
-license="CC0-1.0"
-depends="libarchive python3" # uses ffi
-makedepends="python3-dev libarchive-dev py3-setuptools"
-checkdepends="py3-pytest py3-mock"
-source="python-libarchive-c-$pkgver.tar.gz::https://github.com/Changaco/python-libarchive-c/archive/$pkgver.tar.gz"
-builddir="$srcdir/python-libarchive-c-$pkgver"
-
-prepare() {
- soname=$(scanelf --quiet --soname /usr/lib/libarchive.so | awk '{print $1}')
- sed -i -e "s/find_library('libarchive')/find_library('$soname')/" libarchive/ffi.py
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="282791cef6ff67aefc238ce1b40783e3952b366fc5c464fe99557e81d91e8057b9ec339c52535917c251f9a9bffdd3ec2773c91cbb6c9881d9ecb8572cf0fc5b python-libarchive-c-2.9.tar.gz"
diff --git a/testing/py3-libevdev/APKBUILD b/testing/py3-libevdev/APKBUILD
deleted file mode 100644
index 49771e8538e..00000000000
--- a/testing/py3-libevdev/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-libevdev
-_pkgname=python-libevdev
-pkgver=0.8
-pkgrel=1
-pkgdesc="Python3 wrapper around the evdev library"
-url="https://python-libevdev.readthedocs.io/en/latest"
-arch="noarch"
-license="MIT"
-depends="libevdev python3"
-checkdepends="py3-pytest"
-source="$pkgname-$pkgver.tar.gz::https://gitlab.freedesktop.org/libevdev/$_pkgname/-/archive/$pkgver/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH=. pytest-3 test/*.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="dbade600f2f0887c6702e5569b5b8132d636411c589395bb9770efd261c5a44479d43faecb683df45c03233e715c713daa9e70400c03ba4e7e1e2ada11128d61 py3-libevdev-0.8.tar.gz"
diff --git a/testing/py3-liblarch/APKBUILD b/testing/py3-liblarch/APKBUILD
index 9cc7e2ff3aa..8827ce2b664 100644
--- a/testing/py3-liblarch/APKBUILD
+++ b/testing/py3-liblarch/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-liblarch
-pkgver=3.0
-pkgrel=0
+pkgver=3.2.0
+pkgrel=4
pkgdesc="A Python library to easily handle complex data structures, with a GTK binding"
url="https://wiki.gnome.org/Projects/liblarch"
arch="noarch"
@@ -10,6 +10,7 @@ license="LGPL-3.0-or-later"
depends="python3 py3-gobject3 gtk+3.0"
makedepends="py3-setuptools"
checkdepends="py3-nose py3-pyflakes xvfb-run"
+subpackages="$pkgname-pyc"
source="https://github.com/getting-things-gnome/liblarch/archive/v$pkgver/liblarch-$pkgver.tar.gz"
builddir="$srcdir/liblarch-$pkgver"
@@ -22,7 +23,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="bf50880402ae8b490c5d98b158c5123d00340d981b26a5dec4538f1f4a1008efd5cfe024251728f90f1ebaade4ee18601fa30432d64921c3986b53efc531c68a liblarch-3.0.tar.gz"
+sha512sums="
+d356535f2e60885249be009f7e671fcb1ee02b7d32b7abecc3805c5f6b6e231fc34be0d7a73cd9f9a68dfaae0b1cf0a5bdc54ed3075901a149d58ad6577d92ab liblarch-3.2.0.tar.gz
+"
diff --git a/testing/py3-libmdbx/APKBUILD b/testing/py3-libmdbx/APKBUILD
new file mode 100644
index 00000000000..194fd298a00
--- /dev/null
+++ b/testing/py3-libmdbx/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=py3-libmdbx
+pkgver=0.10.2
+pkgrel=6
+pkgdesc="Python bindings for libmdbx"
+url="https://gitlab.com/thermi/py3-libmdbx/"
+arch="noarch !ppc64le" # test case segfaults in ppc64le
+license="OLDAP-2.8"
+depends="libmdbx"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="py3-libmdbx-$pkgver.tar.gz::https://gitlab.com/Thermi/py3-libmdbx/-/archive/v$pkgver/py3-libmdbx-v$pkgver.tar.gz"
+
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD" python3 -m pytest .
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="3014aa59b7b00c53442b9d2ad2a4ca55f61381c754ea8df1d38d6e26b5ab9109564026efc533a13f4d15fe7a45dbe507a75928a6b47932c89fe7a1d977dc38c4 py3-libmdbx-0.10.2.tar.gz"
diff --git a/testing/py3-libnacl/APKBUILD b/testing/py3-libnacl/APKBUILD
index 84f0200d6b8..09f7740fabb 100644
--- a/testing/py3-libnacl/APKBUILD
+++ b/testing/py3-libnacl/APKBUILD
@@ -1,30 +1,43 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-libnacl
-_pkgname=libnacl
-pkgver=1.7.1
-pkgrel=0
+pkgver=2.1.0
+pkgrel=1
pkgdesc="Python bindings for libsodium/tweetnacl"
url="https://libnacl.readthedocs.org/"
-arch="noarch !armhf !armv7 !x86" # Tests fail on the builder but pass on CI
+arch="noarch"
license="Apache-2.0"
-makedepends="py3-setuptools libsodium-dev"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/saltstack/libnacl/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+depends="libsodium"
+makedepends="
+ libsodium-dev
+ py3-gpep517
+ py3-poetry-core
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/saltstack/libnacl/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir"/libnacl-$pkgver
replaces="py-libnacl" # Backwards compatibility
provides="py-libnacl=$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 --start-directory tests -v
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -v
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="4beb6a5f30688ea72836512f771c566f2c0c03bbdeade4f4135b3068945a3b3e0da826f97a78f495887e852c36629ddb33e876696263404e74fac11e3b7bc9e9 libnacl-1.7.1.tar.gz"
+sha512sums="
+717aec5fcc9ffbb7fef5f265861f86a087cc1ad1a122d752b1d8447bf495b98106056f19ff2ad1001ca81b84085ae6167ec96db2c2f3823f0f9a72a2a54788df py3-libnacl-2.1.0.tar.gz
+"
diff --git a/testing/py3-librtmp/APKBUILD b/testing/py3-librtmp/APKBUILD
index 319fb78f9cb..d41fa5cb8ee 100644
--- a/testing/py3-librtmp/APKBUILD
+++ b/testing/py3-librtmp/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-librtmp
_pkgname=python-librtmp
pkgver=0.3.0
-pkgrel=1
+pkgrel=6
pkgdesc="Python bindings for librtmp, built with cffi"
url="https://github.com/chrippa/python-librtmp"
arch="all"
@@ -11,6 +11,7 @@ license="BSD-2-Clause"
depends="py3-cffi"
makedepends="python3-dev py3-setuptools rtmpdump-dev"
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
@@ -26,7 +27,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="1fa529f5c68341f225849061cbcf6883f80e48a492fae8319336ea1e17c22070d5bd204f768b2561b0ef8dfdf29b38789673fab3d3386290143eb94d2b51b8fe python-librtmp-0.3.0.tar.gz"
diff --git a/testing/py3-limits/APKBUILD b/testing/py3-limits/APKBUILD
new file mode 100644
index 00000000000..68ff82c12ae
--- /dev/null
+++ b/testing/py3-limits/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=py3-limits
+pkgver=3.11.0
+pkgrel=0
+pkgdesc="Rate limiting using various strategies and storage backends such as redis & memcached"
+url="https://github.com/alisaifee/limits"
+arch="noarch"
+license="MIT"
+depends="
+ py3-deprecated
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="
+ py3-flaky
+ py3-mongo
+ py3-pytest
+ py3-pytest-asyncio
+ py3-pytest-benchmark
+ py3-pytest-cov
+ py3-redis
+ "
+subpackages="$pkgname-pyc"
+options="!check" # most tests are integration with db connections, assume all connectors installed
+source="
+ https://github.com/alisaifee/limits/archive/refs/tags/$pkgver/limits-$pkgver.tar.gz
+
+ our-std-is-good-enough.patch
+ "
+builddir="$srcdir/limits-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest \
+ -m 'not benchmark and not etcd and not integration and not memcached' \
+ -k 'not aio and not Storage and not strategy' -v
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+04db3e7ac67d4e3b23379e1c7271dbf112d9d3e7409148c8656564dfc4f584223127645d3eece81fc6a9e19d1a5d0bf48b5571e9c511701321f11079e9419967 limits-3.11.0.tar.gz
+8db0d96f860a07bbc554504a6e94b61546a6be22c0b9736c6b5aca628db9b618efc30609fce3702ee8e3812e1e34329c04d2f34bd69fdaecaa7c7fa0a2bde8a7 our-std-is-good-enough.patch
+"
diff --git a/testing/py3-limits/our-std-is-good-enough.patch b/testing/py3-limits/our-std-is-good-enough.patch
new file mode 100644
index 00000000000..f2247e70e6e
--- /dev/null
+++ b/testing/py3-limits/our-std-is-good-enough.patch
@@ -0,0 +1,22 @@
+--- ./limits/util.py.orig
++++ ./limits/util.py
+@@ -8,7 +8,7 @@
+ from types import ModuleType
+ from typing import TYPE_CHECKING, cast
+
+-import importlib_resources
++from importlib import resources as importlib_resources
+ from packaging.version import Version
+
+ from limits.typing import Dict, List, NamedTuple, Optional, Tuple, Type, Union
+--- ./limits/typing.py.orig
++++ ./limits/typing.py
+@@ -11,7 +11,7 @@
+ Union,
+ )
+
+-from typing_extensions import ClassVar, Counter, ParamSpec, Protocol
++from typing import ClassVar, Counter, ParamSpec, Protocol
+
+ Serializable = Union[int, str, float]
+
diff --git a/testing/py3-lingua-franca/APKBUILD b/testing/py3-lingua-franca/APKBUILD
index 853bb4e9c65..c918237f30c 100644
--- a/testing/py3-lingua-franca/APKBUILD
+++ b/testing/py3-lingua-franca/APKBUILD
@@ -1,30 +1,46 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=py3-lingua-franca
-pkgver=0.2.1
-pkgrel=0
+pkgver=0.4.8_alpha3
+pkgrel=1
pkgdesc="Mycroft's multilingual text parsing and formatting library"
-url="https://github.com/MycroftAI/lingua-franca"
+url="https://github.com/OpenVoiceOS/ovos-lingua-franca"
arch="noarch"
license="Apache-2.0"
-depends="python3 py3-dateutil"
-makedepends="py3-setuptools"
-source="https://github.com/MycroftAI/lingua-franca/archive/$pkgver/lingua-franca-$pkgver.tar.gz
- relax-dep-requirements.patch
+depends="
+ py3-colour
+ py3-dateutil
+ py3-quebra-frases
+ py3-rapidfuzz
+ py3-webcolors
"
-builddir="$srcdir/lingua-franca-$pkgver"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-lingua-franca/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+builddir="$srcdir/ovos-lingua-franca-${pkgver//_alpha/a}"
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="f4e7a4345330463d19ab7dc547d70cead7ae30f1dd4e9f4ef63d7b62b144e0f2eb17a3a6127ba8a2a07cf01552319ca977510ea5d567bc8469908883cd26d538 lingua-franca-0.2.1.tar.gz
-09ccfb7e18c32e8049f9da101a18d0e69918656c9bba1160794bd1196315fd1fdf1b2603212ec52f0f7604e232c5272aa93e04ca5b7ef1ab27016d8626fbcc9f relax-dep-requirements.patch"
+sha512sums="
+fce6e1aa17215110cc18c8d8a620aab63549492813dfdbe263ba7bc60748108476af7fb28d9b65dfcea46e009c469bb1410ffe752651649966fc3d4909d15d46 py3-lingua-franca-0.4.8_alpha3.tar.gz
+"
diff --git a/testing/py3-lingua-franca/relax-dep-requirements.patch b/testing/py3-lingua-franca/relax-dep-requirements.patch
deleted file mode 100644
index 80239b6b63c..00000000000
--- a/testing/py3-lingua-franca/relax-dep-requirements.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-We can't ship such strict versions of dependencies as other packages will need newer versions
-
-diff --git a/requirements.txt b/requirements.txt
-index d431540..1f1bb30 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -1 +1 @@
--python-dateutil==2.6.0
-\ No newline at end of file
-+python-dateutil>=2.6.0<3
diff --git a/testing/py3-linkify-it-py/APKBUILD b/testing/py3-linkify-it-py/APKBUILD
new file mode 100644
index 00000000000..c9a6931b5b3
--- /dev/null
+++ b/testing/py3-linkify-it-py/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-linkify-it-py
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="Links recognition library with full unicode support"
+url="https://github.com/tsutsu3/linkify-it-py"
+arch="noarch"
+license="MIT"
+depends="python3 py3-uc-micro-py"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tsutsu3/linkify-it-py/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/linkify-it-py-$pkgver"
+
+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="
+6621533246a42f3b13fb7dd9f1366cadb0e3c291bcb92fd899bc6389cb9f7904ababf4b5dbae51a561a4f50f8a20597badf03c82653ae8db75d9a5a484bc1229 py3-linkify-it-py-2.0.3.tar.gz
+"
diff --git a/testing/py3-litex-hub-modules/0001-fix-pythondata_software_compiler_rt-python3.patch b/testing/py3-litex-hub-modules/0001-fix-pythondata_software_compiler_rt-python3.patch
new file mode 100644
index 00000000000..9f17f2853d1
--- /dev/null
+++ b/testing/py3-litex-hub-modules/0001-fix-pythondata_software_compiler_rt-python3.patch
@@ -0,0 +1,405 @@
+Ran 2to3 to run python code on python3
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/asan/scripts/asan_symbolize.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/asan/scripts/asan_symbolize.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/asan/scripts/asan_symbolize.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/asan/scripts/asan_symbolize.py 2024-01-11 13:21:54.089653123 +0100
+@@ -84,7 +84,7 @@ class LLVMSymbolizer(Symbolizer):
+ for hint in self.dsym_hints:
+ cmd.append('--dsym-hint=%s' % hint)
+ if DEBUG:
+- print ' '.join(cmd)
++ print(' '.join(cmd))
+ try:
+ result = subprocess.Popen(cmd, stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE)
+@@ -100,8 +100,8 @@ class LLVMSymbolizer(Symbolizer):
+ try:
+ symbolizer_input = '"%s" %s' % (binary, offset)
+ if DEBUG:
+- print symbolizer_input
+- print >> self.pipe.stdin, symbolizer_input
++ print(symbolizer_input)
++ print(symbolizer_input, file=self.pipe.stdin)
+ while True:
+ function_name = self.pipe.stdout.readline().rstrip()
+ if not function_name:
+@@ -146,7 +146,7 @@ class Addr2LineSymbolizer(Symbolizer):
+ cmd += ['--demangle']
+ cmd += ['-e', self.binary]
+ if DEBUG:
+- print ' '.join(cmd)
++ print(' '.join(cmd))
+ return subprocess.Popen(cmd,
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+
+@@ -156,8 +156,8 @@ class Addr2LineSymbolizer(Symbolizer):
+ return None
+ lines = []
+ try:
+- print >> self.pipe.stdin, offset
+- print >> self.pipe.stdin, self.output_terminator
++ print(offset, file=self.pipe.stdin)
++ print(self.output_terminator, file=self.pipe.stdin)
+ is_first_frame = True
+ while True:
+ function_name = self.pipe.stdout.readline().rstrip()
+@@ -214,7 +214,7 @@ class DarwinSymbolizer(Symbolizer):
+
+ def open_atos(self):
+ if DEBUG:
+- print 'atos -o %s -arch %s' % (self.binary, self.arch)
++ print('atos -o %s -arch %s' % (self.binary, self.arch))
+ cmdline = ['atos', '-o', self.binary, '-arch', self.arch]
+ self.atos = UnbufferedLineConverter(cmdline, close_stderr=True)
+
+@@ -229,7 +229,7 @@ class DarwinSymbolizer(Symbolizer):
+ # foo(type1, type2) (in object.name) (filename.cc:80)
+ match = re.match('^(.*) \(in (.*)\) \((.*:\d*)\)$', atos_line)
+ if DEBUG:
+- print 'atos_line: ', atos_line
++ print('atos_line: ', atos_line)
+ if match:
+ function_name = match.group(1)
+ function_name = re.sub('\(.*?\)', '', function_name)
+@@ -304,7 +304,7 @@ class BreakpadSymbolizer(Symbolizer):
+ pass
+ elif fragments[0] == 'FUNC':
+ cur_function_addr = int(fragments[1], 16)
+- if not cur_function_addr in self.symbols.keys():
++ if not cur_function_addr in list(self.symbols.keys()):
+ self.symbols[cur_function_addr] = ' '.join(fragments[4:])
+ else:
+ # Line starting with an address.
+@@ -319,7 +319,7 @@ class BreakpadSymbolizer(Symbolizer):
+
+ def get_sym_file_line(self, addr):
+ key = None
+- if addr in self.addresses.keys():
++ if addr in list(self.addresses.keys()):
+ key = addr
+ else:
+ index = bisect.bisect_left(self.address_list, addr)
+@@ -343,7 +343,7 @@ class BreakpadSymbolizer(Symbolizer):
+ function_name, file_name, line_no = res
+ result = ['%s in %s %s:%d' % (
+ addr, function_name, file_name, line_no)]
+- print result
++ print(result)
+ return result
+ else:
+ return None
+@@ -425,7 +425,7 @@ class SymbolizationLoop(object):
+ self.frame_no = 0
+ for line in logfile:
+ processed = self.process_line(line)
+- print '\n'.join(processed)
++ print('\n'.join(processed))
+
+ def process_line_echo(self, line):
+ return [line.rstrip()]
+@@ -439,7 +439,7 @@ class SymbolizationLoop(object):
+ if not match:
+ return [self.current_line]
+ if DEBUG:
+- print line
++ print(line)
+ _, frameno_str, addr, binary, offset = match.groups()
+ if frameno_str == '0':
+ # Assume that frame #0 is the first frame of new stack trace.
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/dfsan/scripts/build-libc-list.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/dfsan/scripts/build-libc-list.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/dfsan/scripts/build-libc-list.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/dfsan/scripts/build-libc-list.py 2024-01-11 13:21:54.209651423 +0100
+@@ -87,10 +87,10 @@ for l in libs:
+ if os.path.exists(l):
+ functions += defined_function_list(l)
+ else:
+- print >> sys.stderr, 'warning: library %s not found' % l
++ print('warning: library %s not found' % l, file=sys.stderr)
+
+ functions = list(set(functions))
+ functions.sort()
+
+ for f in functions:
+- print 'fun:%s=uninstrumented' % f
++ print('fun:%s=uninstrumented' % f)
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/cpplint.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/cpplint.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/cpplint.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/cpplint.py 2024-01-11 13:21:54.762976917 +0100
+@@ -321,7 +321,7 @@ _ALT_TOKEN_REPLACEMENT = {
+ # and multi-line strings (http://go/beujw ), but those have always been
+ # troublesome for cpplint.
+ _ALT_TOKEN_REPLACEMENT_PATTERN = re.compile(
+- r'[ =()](' + ('|'.join(_ALT_TOKEN_REPLACEMENT.keys())) + r')(?=[ (]|$)')
++ r'[ =()](' + ('|'.join(list(_ALT_TOKEN_REPLACEMENT.keys()))) + r')(?=[ (]|$)')
+
+
+ # These constants define types of headers for use with
+@@ -620,7 +620,7 @@ class _CppLintState(object):
+
+ def PrintErrorCounts(self):
+ """Print a summary of errors by category, and the total."""
+- for category, count in self.errors_by_category.iteritems():
++ for category, count in self.errors_by_category.items():
+ sys.stderr.write('Category \'%s\' errors found: %d\n' %
+ (category, count))
+ sys.stderr.write('Total errors found: %d\n' % self.error_count)
+@@ -1041,7 +1041,7 @@ def FindEndOfExpressionInLine(line, star
+ Returns:
+ Index just after endchar.
+ """
+- for i in xrange(startpos, len(line)):
++ for i in range(startpos, len(line)):
+ if line[i] == startchar:
+ depth += 1
+ elif line[i] == endchar:
+@@ -1100,7 +1100,7 @@ def CheckForCopyright(filename, lines, e
+
+ # We'll say it should occur by line 10. Don't forget there's a
+ # dummy line at the front.
+- for line in xrange(1, min(len(lines), 11)):
++ for line in range(1, min(len(lines), 11)):
+ if re.search(r'Copyright', lines[line], re.I): break
+ else: # means no copyright line was found
+ error(filename, 0, 'legal/copyright', 5,
+@@ -1221,7 +1221,7 @@ def CheckForUnicodeReplacementCharacters
+ error: The function to call with any errors found.
+ """
+ for linenum, line in enumerate(lines):
+- if u'\ufffd' in line:
++ if '\ufffd' in line:
+ error(filename, linenum, 'readability/utf8', 5,
+ 'Line contains invalid UTF-8 (or Unicode replacement character).')
+
+@@ -1978,7 +1978,7 @@ def CheckForFunctionLengths(filename, cl
+
+ if starting_func:
+ body_found = False
+- for start_linenum in xrange(linenum, clean_lines.NumLines()):
++ for start_linenum in range(linenum, clean_lines.NumLines()):
+ start_line = lines[start_linenum]
+ joined_line += ' ' + start_line.lstrip()
+ if Search(r'(;|})', start_line): # Declarations and trivial functions
+@@ -2777,7 +2777,7 @@ def GetLineWidth(line):
+ The width of the line in column positions, accounting for Unicode
+ combining characters and wide characters.
+ """
+- if isinstance(line, unicode):
++ if isinstance(line, str):
+ width = 0
+ for uc in unicodedata.normalize('NFC', line):
+ if unicodedata.east_asian_width(uc) in ('W', 'F'):
+@@ -3109,7 +3109,7 @@ def _GetTextInside(text, start_pattern):
+
+ # Give opening punctuations to get the matching close-punctuations.
+ matching_punctuation = {'(': ')', '{': '}', '[': ']'}
+- closing_punctuation = set(matching_punctuation.itervalues())
++ closing_punctuation = set(matching_punctuation.values())
+
+ # Find the position to start extracting text.
+ match = re.search(start_pattern, text, re.M)
+@@ -3675,7 +3675,7 @@ def CheckForIncludeWhatYouUse(filename,
+ required = {} # A map of header name to linenumber and the template entity.
+ # Example of required: { '<functional>': (1219, 'less<>') }
+
+- for linenum in xrange(clean_lines.NumLines()):
++ for linenum in range(clean_lines.NumLines()):
+ line = clean_lines.elided[linenum]
+ if not line or line[0] == '#':
+ continue
+@@ -3723,7 +3723,7 @@ def CheckForIncludeWhatYouUse(filename,
+
+ # include_state is modified during iteration, so we iterate over a copy of
+ # the keys.
+- header_keys = include_state.keys()
++ header_keys = list(include_state.keys())
+ for header in header_keys:
+ (same_module, common_path) = FilesBelongToSameModule(abs_filename, header)
+ fullpath = common_path + header
+@@ -3842,7 +3842,7 @@ def ProcessFileData(filename, file_exten
+
+ RemoveMultiLineComments(filename, lines, error)
+ clean_lines = CleansedLines(lines)
+- for line in xrange(clean_lines.NumLines()):
++ for line in range(clean_lines.NumLines()):
+ ProcessLine(filename, file_extension, clean_lines, line,
+ include_state, function_state, nesting_state, error,
+ extra_check_functions)
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/gen_dynamic_list.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/gen_dynamic_list.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/gen_dynamic_list.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/gen_dynamic_list.py 2024-01-11 13:21:54.896308362 +0100
+@@ -100,7 +100,7 @@ def main(argv):
+ print('global:')
+ result.sort()
+ for f in result:
+- print(u' %s;' % f)
++ print((' %s;' % f))
+ if args.version_list:
+ print('local:')
+ print(' *;')
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/sancov.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/sancov.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/sancov.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/lib/sanitizer_common/scripts/sancov.py 2024-01-11 13:21:55.032973093 +0100
+@@ -14,12 +14,12 @@ import sys
+ prog_name = ""
+
+ def Usage():
+- print >> sys.stderr, "Usage: \n" + \
++ print("Usage: \n" + \
+ " " + prog_name + " merge FILE [FILE...] > OUTPUT\n" \
+ " " + prog_name + " print FILE [FILE...]\n" \
+ " " + prog_name + " unpack FILE [FILE...]\n" \
+ " " + prog_name + " rawunpack FILE [FILE ...]\n" \
+- " " + prog_name + " missing BINARY < LIST_OF_PCS\n"
++ " " + prog_name + " missing BINARY < LIST_OF_PCS\n", file=sys.stderr)
+ exit(1)
+
+ def CheckBits(bits):
+@@ -65,15 +65,15 @@ def ReadOneFile(path):
+ bits = ReadMagicAndReturnBitness(f, path)
+ size -= 8
+ s = array.array(TypeCodeForBits(bits), f.read(size))
+- print >>sys.stderr, "%s: read %d %d-bit PCs from %s" % (prog_name, size * 8 / bits, bits, path)
++ print("%s: read %d %d-bit PCs from %s" % (prog_name, size * 8 / bits, bits, path), file=sys.stderr)
+ return s
+
+ def Merge(files):
+ s = set()
+ for f in files:
+ s = s.union(set(ReadOneFile(f)))
+- print >> sys.stderr, "%s: %d files merged; %d PCs total" % \
+- (prog_name, len(files), len(s))
++ print("%s: %d files merged; %d PCs total" % \
++ (prog_name, len(files), len(s)), file=sys.stderr)
+ return sorted(s)
+
+ def PrintFiles(files):
+@@ -81,10 +81,10 @@ def PrintFiles(files):
+ s = Merge(files)
+ else: # If there is just on file, print the PCs in order.
+ s = ReadOneFile(files[0])
+- print >> sys.stderr, "%s: 1 file merged; %d PCs total" % \
+- (prog_name, len(s))
++ print("%s: 1 file merged; %d PCs total" % \
++ (prog_name, len(s)), file=sys.stderr)
+ for i in s:
+- print "0x%x" % i
++ print("0x%x" % i)
+
+ def MergeAndPrint(files):
+ if sys.stdout.isatty():
+@@ -100,7 +100,7 @@ def MergeAndPrint(files):
+
+ def UnpackOneFile(path):
+ with open(path, mode="rb") as f:
+- print >> sys.stderr, "%s: unpacking %s" % (prog_name, path)
++ print("%s: unpacking %s" % (prog_name, path), file=sys.stderr)
+ while True:
+ header = f.read(12)
+ if not header: return
+@@ -112,8 +112,8 @@ def UnpackOneFile(path):
+ assert(len(module) == module_length)
+ assert(len(blob) == blob_size)
+ extracted_file = "%s.%d.sancov" % (module, pid)
+- print >> sys.stderr, "%s: extracting %s" % \
+- (prog_name, extracted_file)
++ print("%s: extracting %s" % \
++ (prog_name, extracted_file), file=sys.stderr)
+ # The packed file may contain multiple blobs for the same pid/module
+ # pair. Append to the end of the file instead of overwriting.
+ with open(extracted_file, 'ab') as f2:
+@@ -129,7 +129,7 @@ def Unpack(files):
+ def UnpackOneRawFile(path, map_path):
+ mem_map = []
+ with open(map_path, mode="rt") as f_map:
+- print >> sys.stderr, "%s: reading map %s" % (prog_name, map_path)
++ print("%s: reading map %s" % (prog_name, map_path), file=sys.stderr)
+ bits = int(f_map.readline())
+ if bits != 32 and bits != 64:
+ raise Exception('Wrong bits size in the map')
+@@ -143,7 +143,7 @@ def UnpackOneRawFile(path, map_path):
+ mem_map_keys = [m[0] for m in mem_map]
+
+ with open(path, mode="rb") as f:
+- print >> sys.stderr, "%s: unpacking %s" % (prog_name, path)
++ print("%s: unpacking %s" % (prog_name, path), file=sys.stderr)
+
+ f.seek(0, 2)
+ size = f.tell()
+@@ -157,7 +157,7 @@ def UnpackOneRawFile(path, map_path):
+ (start, end, base, module_path) = mem_map[map_idx]
+ assert pc >= start
+ if pc >= end:
+- print >> sys.stderr, "warning: %s: pc %x outside of any known mapping" % (prog_name, pc)
++ print("warning: %s: pc %x outside of any known mapping" % (prog_name, pc), file=sys.stderr)
+ continue
+ mem_map_pcs[map_idx].append(pc - base)
+
+@@ -165,7 +165,7 @@ def UnpackOneRawFile(path, map_path):
+ if len(pc_list) == 0: continue
+ assert path.endswith('.sancov.raw')
+ dst_path = module_path + '.' + os.path.basename(path)[:-4]
+- print >> sys.stderr, "%s: writing %d PCs to %s" % (prog_name, len(pc_list), dst_path)
++ print("%s: writing %d PCs to %s" % (prog_name, len(pc_list), dst_path), file=sys.stderr)
+ arr = array.array(TypeCodeForBits(bits))
+ arr.fromlist(sorted(pc_list))
+ with open(dst_path, 'ab') as f2:
+@@ -199,18 +199,17 @@ def PrintMissing(binary):
+ if not os.path.isfile(binary):
+ raise Exception('File not found: %s' % binary)
+ instrumented = GetInstrumentedPCs(binary)
+- print >> sys.stderr, "%s: found %d instrumented PCs in %s" % (prog_name,
++ print("%s: found %d instrumented PCs in %s" % (prog_name,
+ len(instrumented),
+- binary)
++ binary), file=sys.stderr)
+ covered = set(int(line, 16) for line in sys.stdin)
+- print >> sys.stderr, "%s: read %d PCs from stdin" % (prog_name, len(covered))
++ print("%s: read %d PCs from stdin" % (prog_name, len(covered)), file=sys.stderr)
+ missing = instrumented - covered
+- print >> sys.stderr, "%s: %d PCs missing from coverage" % (prog_name, len(missing))
++ print("%s: %d PCs missing from coverage" % (prog_name, len(missing)), file=sys.stderr)
+ if (len(missing) > len(instrumented) - len(covered)):
+- print >> sys.stderr, \
+- "%s: WARNING: stdin contains PCs not found in binary" % prog_name
++ print("%s: WARNING: stdin contains PCs not found in binary" % prog_name, file=sys.stderr)
+ for pc in sorted(missing):
+- print "0x%x" % pc
++ print("0x%x" % pc)
+
+ if __name__ == '__main__':
+ prog_name = sys.argv[0]
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_common.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_common.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_common.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_common.py 2024-01-11 13:21:55.146304820 +0100
+@@ -10,7 +10,7 @@ if os.environ.get('ANDROID_RUN_VERBOSE')
+
+ def adb(args):
+ if verbose:
+- print args
++ print(args)
+ devnull = open(os.devnull, 'w')
+ return subprocess.call([ADB] + args, stdout=devnull, stderr=subprocess.STDOUT)
+
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_compile.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_compile.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_compile.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_compile.py 2024-01-11 13:21:55.259636548 +0100
+@@ -21,7 +21,7 @@ while args:
+ output = args.pop(0)
+
+ if output == None:
+- print "No output file name!"
++ print("No output file name!")
+ sys.exit(1)
+
+ ret = subprocess.call(sys.argv[1:])
+diff --color -rupN a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_run.py b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_run.py
+--- a/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_run.py 2020-04-09 07:33:54.000000000 +0200
++++ b/pythondata-software-compiler_rt-2020.04/pythondata_software_compiler_rt/data/test/asan/android_commands/android_run.py 2024-01-11 13:21:55.372968276 +0100
+@@ -13,7 +13,7 @@ def build_env():
+ # Android linker ignores RPATH. Set LD_LIBRARY_PATH to Output dir.
+ args.append('LD_LIBRARY_PATH=%s:%s' %
+ (ANDROID_TMPDIR, os.environ.get('LD_LIBRARY_PATH', '')))
+- for (key, value) in os.environ.items():
++ for (key, value) in list(os.environ.items()):
+ if key in ['ASAN_OPTIONS', 'ASAN_ACTIVATION_OPTIONS']:
+ args.append('%s="%s"' % (key, value))
+ return ' '.join(args)
diff --git a/testing/py3-litex-hub-modules/0002-fix-pythondata-cpu-blackparrot-python3.patch b/testing/py3-litex-hub-modules/0002-fix-pythondata-cpu-blackparrot-python3.patch
new file mode 100644
index 00000000000..38a3b827092
--- /dev/null
+++ b/testing/py3-litex-hub-modules/0002-fix-pythondata-cpu-blackparrot-python3.patch
@@ -0,0 +1,2824 @@
+Ran 2to3 to run python code on python3
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_me/software/py/checker.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_me/software/py/checker.py 2024-01-11 13:10:59.751756535 +0100
+@@ -16,5 +16,5 @@ for root, dirs, files in os.walk(os.path
+ for line in fread:
+ l = line.strip()
+ if len(l) > args.len:
+- print "{0}: {1}".format(i, l)
++ print("{0}: {1}".format(i, l))
+ i = i+1
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_me/software/py/trace_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_me/software/py/trace_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_me/software/py/trace_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_me/software/py/trace_gen.py 2024-01-11 13:10:59.638424702 +0100
+@@ -19,7 +19,7 @@ class TraceGen:
+ # print header
+ def print_header(self):
+ print("#### generated by trace_gen.py ####")
+- print("#### packet_len = " + str(self.packet_len) + " ####")
++ print(("#### packet_len = " + str(self.packet_len) + " ####"))
+
+ # send load
+ # signed: sign extend or not
+@@ -88,20 +88,20 @@ class TraceGen:
+ # wait for a number of cycles
+ # num_cycles: number of cycles to wait.
+ def wait(self, num_cycles):
+- print("0110_" + format(num_cycles, "0" + str(self.packet_len-4) + "b"))
+- print("0101_" + (self.packet_len-4)*"0")
++ print(("0110_" + format(num_cycles, "0" + str(self.packet_len-4) + "b")))
++ print(("0101_" + (self.packet_len-4)*"0"))
+
+ # finish trace
+ def test_finish(self):
+ print("#### FINISH ####")
+ self.wait(8)
+- print("0100_" + (self.packet_len-4)*"0")
++ print(("0100_" + (self.packet_len-4)*"0"))
+
+ def test_done(self):
+ print("#### DONE ####")
+ self.wait(8)
+- print("0011_" + (self.packet_len-4)*"0")
++ print(("0011_" + (self.packet_len-4)*"0"))
+
+ # wait for a single cycle
+ def nop(self):
+- print("0000_" + "0"*(self.packet_len-4))
++ print(("0000_" + "0"*(self.packet_len-4)))
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_top/software/py/ptgen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_top/software/py/ptgen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_top/software/py/ptgen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/bp_top/software/py/ptgen.py 2024-01-11 13:11:00.115085056 +0100
+@@ -3,14 +3,14 @@ import sys
+ import math
+
+ def help():
+- print "Usage: ptgen.py <outfile> <root table address> <data sections roots> <data sections size(in pages)>"
+- print "Example: python ptgen.py pt.S 0x80008000 0x80000000,0x8fffc000 4,1"
++ print("Usage: ptgen.py <outfile> <root table address> <data sections roots> <data sections size(in pages)>")
++ print("Example: python ptgen.py pt.S 0x80008000 0x80000000,0x8fffc000 4,1")
+
+ def int2hex(num, width):
+ return "{0:#0{1}x}".format(num,width/4 + 2)
+
+ def checkAddr(vpn, as_start_vpn, as_size, page_pte_num, level, pt_depth):
+- for i in xrange(len(as_start_vpn)):
++ for i in range(len(as_start_vpn)):
+ as_start = as_start_vpn[i]
+ as_end = as_start_vpn[i] + as_size[i] - 1
+
+@@ -26,7 +26,7 @@ try:
+ fileName = str(sys.argv[1])
+ root_table_addr = sys.argv[2]
+ as_start = sys.argv[3].split(',')
+- as_size = map(int, sys.argv[4].split(','))
++ as_size = list(map(int, sys.argv[4].split(',')))
+ except:
+ help()
+ quit()
+@@ -45,7 +45,7 @@ page_size = 2**page_offset_width
+ root_table_ppn = int(root_table_addr, 16)/page_size
+
+ as_start_vpn = [0]*len(as_start)
+-for i in xrange(len(as_start)):
++for i in range(len(as_start)):
+ as_start_vpn[i] = int(as_start[i], 16)/page_size
+
+ vpn_width = vaddr_width - page_offset_width
+@@ -65,10 +65,10 @@ page_table = []
+
+ pt_table_num[0] = 1
+ table_vpns = [[0], [], []]
+-for level in xrange(1, pt_depth):
++for level in range(1, pt_depth):
+ last_vpn = -1
+ #print "#######"
+- for j in xrange(len(as_start_vpn)):
++ for j in range(len(as_start_vpn)):
+ masked_vpn = as_start_vpn[j] >> ((pt_depth-level)*lg_page_pte_num)
+ masked_vpn = masked_vpn << ((pt_depth-level)*lg_page_pte_num)
+ if(last_vpn != masked_vpn):
+@@ -78,9 +78,9 @@ for level in xrange(1, pt_depth):
+ pt_table_num[level] += 1
+
+ last_ppn = root_table_ppn
+-for level in xrange(pt_depth):
++for level in range(pt_depth):
+ pt_roots.append([])
+- for tableNum in xrange(pt_table_num[level]):
++ for tableNum in range(pt_table_num[level]):
+ pt_roots[level].append(last_ppn)
+ last_ppn += 1
+
+@@ -88,13 +88,13 @@ for level in xrange(pt_depth):
+ #print pt_roots
+ #print table_vpns
+
+-for level in xrange(pt_depth):
++for level in range(pt_depth):
+ page_table.append([])
+ #print "---------"
+- for tableNum in xrange(pt_table_num[level]):
++ for tableNum in range(pt_table_num[level]):
+ page_table[level].append([])
+ target_tableNum = 0
+- for offset in xrange(page_pte_num):
++ for offset in range(page_pte_num):
+
+ vpn = table_vpns[level][tableNum] + (offset << ((pt_depth-level-1)*lg_page_pte_num))
+
+@@ -134,8 +134,8 @@ outfile.write("/* address space size in
+ outfile.write(".section \".data.pt\"\n")
+ outfile.write(".globl _pt\n\n")
+ outfile.write("_pt:\n")
+-for i in xrange(len(page_table)):
+- for j in xrange(len(page_table[i])):
+- for k in xrange(len(page_table[i][j])):
++for i in range(len(page_table)):
++ for j in range(len(page_table[i])):
++ for k in range(len(page_table[i][j])):
+ outfile.write(" .dword " + int2hex(page_table[i][j][k], 64) + "\n")
+ outfile.close()
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_dataflow/bsg_scatter_gather.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_dataflow/bsg_scatter_gather.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_dataflow/bsg_scatter_gather.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_dataflow/bsg_scatter_gather.py 2024-01-11 13:11:00.898408014 +0100
+@@ -39,13 +39,13 @@ def bits_to_rep(x) :
+ return len(bin(x-1))-2;
+
+ def print_case_line(a,result,var_name,result_x):
+- print " ",str(len(a))+"'b",
++ print(" ",str(len(a))+"'b", end=' ')
+ print_bit_list(a)
+- print ": "+var_name+" = ",str(bits_to_rep(len(a))*len(a))+"'b",
++ print(": "+var_name+" = ",str(bits_to_rep(len(a))*len(a))+"'b", end=' ')
+ for x in reversed(result) :
+ print_bit_list(int_to_bit_list(x,bits_to_rep(len(a))));
+ #sys.stdout.write("_")
+- print "; // ", ' '.join([str(y) for y in reversed(result_x)]);
++ print("; // ", ' '.join([str(y) for y in reversed(result_x)]));
+
+ def gen_vec(channels, fn) :
+
+@@ -55,7 +55,7 @@ def gen_vec(channels, fn) :
+ for j in range(0,2**channels) :
+ q = fn(int_to_bit_list(j,channels))
+
+- print (" default: "+q+"= 'X;");
++ print((" default: "+q+"= 'X;"));
+ print (" endcase");
+
+ def gen_fwd_vec_line_helper(a,dpath) :
+@@ -134,23 +134,23 @@ def gen_back_vec_line(a) :
+
+ def generate_code_for_channel(chan) :
+
+- print "\nif (vec_size_lp == "+str(chan)+")"
+- print " begin"
++ print("\nif (vec_size_lp == "+str(chan)+")")
++ print(" begin")
+
+- print " // backward vec";
++ print(" // backward vec");
+
+ gen_vec(chan,gen_back_vec_line)
+
+- print "\n // backward vec datapath";
++ print("\n // backward vec datapath");
+
+ gen_vec(chan,gen_back_vec_line_dpath)
+
+
+- print "\n // fwd vec";
++ print("\n // fwd vec");
+
+ gen_vec(chan,gen_fwd_vec_line)
+
+- print "\n // fwd datapath vec";
++ print("\n // fwd datapath vec");
+
+ gen_vec(chan,gen_fwd_vec_line_dpath)
+
+@@ -161,7 +161,7 @@ def generate_code_for_channel(chan) :
+
+
+
+-print """
++print("""
+ // MBT 8-18-2014
+ // bsg_scatter_gather
+ // generated by bsg_scatter_gather.py;
+@@ -196,19 +196,19 @@ module bsg_scatter_gather #(`BSG_INV_PAR
+ ,output reg [vec_size_lp*`BSG_SAFE_CLOG2(vec_size_lp)-1:0] bk_o
+ ,output reg [vec_size_lp*`BSG_SAFE_CLOG2(vec_size_lp)-1:0] bk_datapath_o
+ );
+-"""
++""")
+
+
+ for x in channels :
+ generate_code_for_channel(x)
+
+-print "// synopsys translate_off";
+-print "initial assert (vec_size_lp < ",max_channel,") else $error(\"bsg_scatter_gather: vec_size_lp too large %d\", vec_size_lp);";
+-print "// synopsys translate_on";
++print("// synopsys translate_off");
++print("initial assert (vec_size_lp < ",max_channel,") else $error(\"bsg_scatter_gather: vec_size_lp too large %d\", vec_size_lp);");
++print("// synopsys translate_on");
+
+-print "endmodule";
++print("endmodule");
+
+-print "`BSG_ABSTRACT_MODULE(bsg_scatter_gather)"
++print("`BSG_ABSTRACT_MODULE(bsg_scatter_gather)")
+
+ #for i in range(1,10) :
+ # print i,bits_to_rep(i)
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_mem/bsg_ascii_to_rom.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_mem/bsg_ascii_to_rom.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_mem/bsg_ascii_to_rom.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_mem/bsg_ascii_to_rom.py 2024-01-11 13:11:01.358401921 +0100
+@@ -27,37 +27,37 @@ if ((len(sys.argv)==4) and sys.argv[3]==
+ zero = 1;
+
+ if ((len(sys.argv)!=3) and (len(sys.argv)!=4)) :
+- print "Usage ascii_to_rom.py <filename> <modulename>";
++ print("Usage ascii_to_rom.py <filename> <modulename>");
+ exit -1
+
+ myFile = open(sys.argv[1],"r");
+
+ i = 0;
+-print "// auto-generated by bsg_ascii_to_rom.py from " + os.path.abspath(sys.argv[1]) + "; do not modify";
+-print "module " + sys.argv[2] + " #(`BSG_INV_PARAM(width_p), `BSG_INV_PARAM(addr_width_p))";
+-print "(input [addr_width_p-1:0] addr_i";
+-print ",output logic [width_p-1:0] data_o";
+-print ");";
+-print "always_comb case(addr_i)"
++print("// auto-generated by bsg_ascii_to_rom.py from " + os.path.abspath(sys.argv[1]) + "; do not modify");
++print("module " + sys.argv[2] + " #(`BSG_INV_PARAM(width_p), `BSG_INV_PARAM(addr_width_p))");
++print("(input [addr_width_p-1:0] addr_i");
++print(",output logic [width_p-1:0] data_o");
++print(");");
++print("always_comb case(addr_i)")
+ all_zero = set("0_");
+ for line in myFile.readlines() :
+ line = line.strip();
+ if (len(line)!=0):
+ if (line[0] != "#") :
+ if (not zero or not (set(line) <= all_zero)) :
+- digits_only = filter(lambda m:m.isdigit(), str(line));
++ digits_only = [m for m in str(line) if m.isdigit()];
+
+ # http://stackoverflow.com/questions/2072351/python-conversion-from-binary-string-to-hexadecimal
+ hstr = '%0*X' % ((len(digits_only) + 3) // 4, int(digits_only, 2))
+
+- print str(i).rjust(10)+": data_o = width_p ' (" + str(len(digits_only))+ "'b"+line+");"+" // 0x"+hstr;
++ print(str(i).rjust(10)+": data_o = width_p ' (" + str(len(digits_only))+ "'b"+line+");"+" // 0x"+hstr);
+ i = i + 1;
+ else :
+- print " // " + line;
++ print(" // " + line);
+ if (zero) :
+- print "default".rjust(10) + ": data_o = { width_p { 1'b0 } };"
++ print("default".rjust(10) + ": data_o = { width_p { 1'b0 } };")
+ else :
+- print "default".rjust(10) + ": data_o = 'X;"
+-print "endcase"
+-print "endmodule"
+-print "`BSG_ABSTRACT_MODULE(" + sys.argv[2] + ")"
++ print("default".rjust(10) + ": data_o = 'X;")
++print("endcase")
++print("endmodule")
++print("`BSG_ABSTRACT_MODULE(" + sys.argv[2] + ")")
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_misc/bsg_round_robin_arb.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_misc/bsg_round_robin_arb.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_misc/bsg_round_robin_arb.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_misc/bsg_round_robin_arb.py 2024-01-11 13:10:59.991753356 +0100
+@@ -46,31 +46,31 @@ def print_hold_on_logic(last_w, reqs_w):
+ """
+ Print the logic of the hold on logic
+ """
+- print """
+-if ( hold_on_sr_p ) begin """
+- print """
++ print("""
++if ( hold_on_sr_p ) begin """)
++ print("""
+ always_comb begin
+- unique casez( last_r )"""
++ unique casez( last_r )""")
+ for last_r in range(reqs_w ):
+ last_r_str = bin(last_r)[2:].zfill(last_w);
+ req_str = get_single_request_str(last_r, reqs_w)
+ #Full cases
+ if( (last_r == ( (1<< last_w) -1 ) ) & (last_r == (reqs_w-1) ) ):
+- print """ default: hold_on_sr = ( reqs_i == %d'b%s );"""%( reqs_w, req_str)
++ print(""" default: hold_on_sr = ( reqs_i == %d'b%s );"""%( reqs_w, req_str))
+ #Not Full cases
+ else :
+- print """ %d'b%s : hold_on_sr = ( reqs_i == %d'b%s );"""%( last_w, last_r_str, reqs_w, req_str)
++ print(""" %d'b%s : hold_on_sr = ( reqs_i == %d'b%s );"""%( last_w, last_r_str, reqs_w, req_str))
+
+ #Not full cases
+ if( (1<< last_w ) != reqs_w ):
+- print """ default : hold_on_sr = 1'b0;"""
++ print(""" default : hold_on_sr = 1'b0;""")
+
+- print """ endcase
++ print(""" endcase
+ end //end of always_comb
+
+ end else begin:not_hold_on_sr_p
+ assign hold_on_sr = '0;
+-end //end of hold_on_sr_p """
++end //end of hold_on_sr_p """)
+
+ ################################################################################
+ # Logic for priority reset logic
+@@ -83,28 +83,28 @@ def print_reset_on_logic(reqs_w):
+
+ req_str= get_single_request_str(0, reqs_w)
+
+- print """
++ print("""
+ if ( reset_on_sr_p ) begin:reset_on_%d
+- assign reset_on_sr = ( reqs_i == %d'b%s ) """%( reqs_w,reqs_w, req_str)
++ assign reset_on_sr = ( reqs_i == %d'b%s ) """%( reqs_w,reqs_w, req_str))
+
+ for curr_r in range(1, reqs_w):
+ req_str= get_single_request_str(curr_r, reqs_w)
+- print """ | ( reqs_i == %d'b%s ) """ %(reqs_w, req_str )
++ print(""" | ( reqs_i == %d'b%s ) """ %(reqs_w, req_str ))
+
+- print " ;"
+- print """
++ print(" ;")
++ print("""
+ end else begin:not_reset_on_sr_p
+ assign reset_on_sr = '0;
+-end //end of reset_on_sr_p """
++end //end of reset_on_sr_p """)
+ max_reqs = 0 # no. of inputs
+ try:
+ assert len(sys.argv) == 2
+ max_reqs = int(sys.argv[1])
+ except:
+- print "UsageError: bsg_round_robin_arb.py <max no. of channels>"
++ print("UsageError: bsg_round_robin_arb.py <max no. of channels>")
+ sys.exit()
+
+-print """// Round robin arbitration unit
++print("""// Round robin arbitration unit
+
+ // Automatically generated using bsg_round_robin_arb.py
+ // NOTE: generally prefer https://github.com/bespoke-silicon-group/basejump_stl/blob/master/bsg_misc/bsg_arb_round_robin.v to this module
+@@ -122,9 +122,9 @@ print """// Round robin arbitration unit
+
+ `include "bsg_defines.v"
+
+-"""
++""")
+
+-print """module bsg_round_robin_arb #(`BSG_INV_PARAM(inputs_p)
++print("""module bsg_round_robin_arb #(`BSG_INV_PARAM(inputs_p)
+ ,lg_inputs_p =`BSG_SAFE_CLOG2(inputs_p)
+ ,reset_on_sr_p = 1'b0
+ ,hold_on_sr_p = 1'b0
+@@ -135,9 +135,9 @@ print """module bsg_round_robin_arb #(`B
+ // with bsg_parallel_in_serial_out_passthrough. This policy
+ // has a slight throughput degradation but effectively
+ // arbitrates based on age, so minimizes worst case latency.
+- ,hold_on_valid_p = 1'b0)""" % '''-1'''
++ ,hold_on_valid_p = 1'b0)""" % '''-1''')
+
+-print """ (input clk_i
++print(""" (input clk_i
+ , input reset_i
+ , input grants_en_i // whether to suppress grants_o
+
+@@ -158,10 +158,10 @@ print """ (input clk_i
+ logic [lg_inputs_p-1:0] last, last_n, last_r;
+ logic hold_on_sr, reset_on_sr;
+
+-"""
++""")
+
+ for reqs_w in range(1, max_reqs+1):
+- print """
++ print("""
+ if(inputs_p == %d)
+ begin: inputs_%d
+
+@@ -169,15 +169,15 @@ logic [%d-1: 0 ] sel_one_hot_n;
+
+ always_comb
+ begin
+- unique casez({last_r, reqs_i})""" % (reqs_w, reqs_w, reqs_w)
++ unique casez({last_r, reqs_i})""" % (reqs_w, reqs_w, reqs_w))
+
+ last_w = int(math.ceil(math.log(reqs_w)/math.log(2))) if (reqs_w!=1) else 1
+ # print " %d'b"%(1+last_w+reqs_w) + "0" + "_" + "?"*last_w + "_" + "?"*reqs_w + ":"\
+ # , "begin sel_one_hot_n="\
+ # , "%d'b"%reqs_w + "0"*reqs_w + "; tag_o = (lg_inputs_p) ' (0); end // X"
+- print " %d'b"%(last_w+reqs_w) + "?"*last_w + "_" + "0"*reqs_w + ":"\
++ print(" %d'b"%(last_w+reqs_w) + "?"*last_w + "_" + "0"*reqs_w + ":"\
+ , "begin sel_one_hot_n ="\
+- , "%d'b"%reqs_w + "0"*reqs_w + "; tag_o = (lg_inputs_p) ' (0); end // X"
++ , "%d'b"%reqs_w + "0"*reqs_w + "; tag_o = (lg_inputs_p) ' (0); end // X")
+
+ grants = {}
+ for i in range(reqs_w):
+@@ -185,29 +185,29 @@ begin
+
+ for key in grants:
+ for req in grants[key]:
+- print " %d'b"%(last_w+reqs_w) + bin(key)[2:].zfill(last_w)\
++ print(" %d'b"%(last_w+reqs_w) + bin(key)[2:].zfill(last_w)\
+ + "_" + req[0] + ":"\
+ , "begin sel_one_hot_n="\
+- , "%d'b"%reqs_w + req[1] + "; tag_o = (lg_inputs_p) ' ("+str(req[1][::-1].index('1'))+"); end"
++ , "%d'b"%reqs_w + req[1] + "; tag_o = (lg_inputs_p) ' ("+str(req[1][::-1].index('1'))+"); end")
+
+- print """ default: begin sel_one_hot_n= {%d{1'bx}}; tag_o = (lg_inputs_p) ' (0); end // X
++ print(""" default: begin sel_one_hot_n= {%d{1'bx}}; tag_o = (lg_inputs_p) ' (0); end // X
+ endcase
+-end """% (reqs_w)
++end """% (reqs_w))
+
+- print """
++ print("""
+ assign sel_one_hot_o = sel_one_hot_n;
+ assign grants_o = sel_one_hot_n & {%d{grants_en_i}} ;
+- """% (reqs_w)
++ """% (reqs_w))
+
+ print_hold_on_logic(last_w, reqs_w)
+
+ print_reset_on_logic(reqs_w)
+
+
+- print """
+-end: inputs_%d""" % (reqs_w)
++ print("""
++end: inputs_%d""" % (reqs_w))
+
+-print """
++print("""
+
+ assign v_o = | reqs_i ;
+
+@@ -238,4 +238,4 @@ endmodule
+
+ `BSG_ABSTRACT_MODULE(bsg_round_robin_arb)
+
+-"""
++""")
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_noc/bsg_mesh_to_ring_stitch.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_noc/bsg_mesh_to_ring_stitch.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_noc/bsg_mesh_to_ring_stitch.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_noc/bsg_mesh_to_ring_stitch.py 2024-01-11 13:11:01.135071546 +0100
+@@ -16,22 +16,22 @@
+ topX = 8
+ topY = 8
+
+-print "// AUTOGENERATED FILE; DO NOT MODIFY."
+-print "// run with topX=",topX," and topY=",topY
+-print "// ";
+-print '`include "bsg_defines.v"'
+-
+-print "module bsg_mesh_to_ring_stitch #(`BSG_INV_PARAM(y_max_p)"
+-print " ,`BSG_INV_PARAM(x_max_p)"
+-print " ,`BSG_INV_PARAM(width_back_p)"
+-print " ,`BSG_INV_PARAM(width_fwd_p)"
+-print " ,parameter b_lp = $clog2(x_max_p*y_max_p)"
+-print " ) (output [x_max_p-1:0][y_max_p-1:0][b_lp-1:0] id_o"
+-print " ,output [x_max_p-1:0][y_max_p-1:0][width_back_p-1:0] back_data_in_o"
+-print " ,input [x_max_p-1:0][y_max_p-1:0][width_back_p-1:0] back_data_out_i"
+-print " ,output [x_max_p-1:0][y_max_p-1:0][width_fwd_p-1:0] fwd_data_in_o"
+-print " ,input [x_max_p-1:0][y_max_p-1:0][width_fwd_p-1:0] fwd_data_out_i"
+-print " );\n\n"
++print("// AUTOGENERATED FILE; DO NOT MODIFY.")
++print("// run with topX=",topX," and topY=",topY)
++print("// ");
++print('`include "bsg_defines.v"')
++
++print("module bsg_mesh_to_ring_stitch #(`BSG_INV_PARAM(y_max_p)")
++print(" ,`BSG_INV_PARAM(x_max_p)")
++print(" ,`BSG_INV_PARAM(width_back_p)")
++print(" ,`BSG_INV_PARAM(width_fwd_p)")
++print(" ,parameter b_lp = $clog2(x_max_p*y_max_p)")
++print(" ) (output [x_max_p-1:0][y_max_p-1:0][b_lp-1:0] id_o")
++print(" ,output [x_max_p-1:0][y_max_p-1:0][width_back_p-1:0] back_data_in_o")
++print(" ,input [x_max_p-1:0][y_max_p-1:0][width_back_p-1:0] back_data_out_i")
++print(" ,output [x_max_p-1:0][y_max_p-1:0][width_fwd_p-1:0] fwd_data_in_o")
++print(" ,input [x_max_p-1:0][y_max_p-1:0][width_fwd_p-1:0] fwd_data_out_i")
++print(" );\n\n")
+
+
+ def print_config (maxX,maxY,order) :
+@@ -41,7 +41,7 @@ def print_config (maxX,maxY,order) :
+ my_dict[position] = (x,y);
+ matrix[x][y] = position;
+
+- print "if (x_max_p ==",maxX," && y_max_p ==",maxY,")\nbegin\n"
++ print("if (x_max_p ==",maxX," && y_max_p ==",maxY,")\nbegin\n")
+ for y in range(maxY-1,-1,-1) :
+ for x in range(maxX-1,-1,-1) :
+ position=matrix[x][y];
+@@ -49,25 +49,25 @@ def print_config (maxX,maxY,order) :
+ above = 0 if ((position + 1) == maxX*maxY) else position + 1;
+ (below_x,below_y)=my_dict[below];
+ (above_x,above_y)=my_dict[above];
+- print "assign back_data_in_o[",below_x,"][",below_y,"] = back_data_out_i[",x,"][",y,"]; // ",below,"<-",position
+- print "assign fwd_data_in_o [",above_x,"][",above_y,"] = fwd_data_out_i [",x,"][",y,"]; // ",position,"->",above
+- print "\n"
+- print " assign id_o = \n {"
+- print "// y = ",
++ print("assign back_data_in_o[",below_x,"][",below_y,"] = back_data_out_i[",x,"][",y,"]; // ",below,"<-",position)
++ print("assign fwd_data_in_o [",above_x,"][",above_y,"] = fwd_data_out_i [",x,"][",y,"]; // ",position,"->",above)
++ print("\n")
++ print(" assign id_o = \n {")
++ print("// y = ", end=' ')
+ for y in range(0,maxY) :
+- print str(y)+", ",
+- print "";
++ print(str(y)+", ", end=' ')
++ print("");
+ for x in range(0,maxX) :
+- print " {",
++ print(" {", end=' ')
+ for y in range(0,maxY) :
+ if (y != 0) :
+- print ",",
+- print "b_lp ' (" + str(matrix[x][y]) +")",
++ print(",", end=' ')
++ print("b_lp ' (" + str(matrix[x][y]) +")", end=' ')
+ if (x != maxX-1) :
+- print " }, // x = ",x
++ print(" }, // x = ",x)
+ else:
+- print " } // x = ",x
+- print " };\nend\n"
++ print(" } // x = ",x)
++ print(" };\nend\n")
+
+ # even X, odd/even Y
+ for maxX in range(2,topX+1,2) :
+@@ -103,9 +103,9 @@ for maxX in range(3,topX+1,2) :
+ print_config(1,2,[(0,0), (0,1)]);
+ print_config(2,1,[(0,0), (1,0)]);
+
+-print "initial assert ((x_max_p <= " + str(topX) + ") && (y_max_p <= " + str(topY) +")) else begin $error(\"%m x_max_p %d or y_max_p %d too large; rerun generator with larger size than %d/%d\",x_max_p,y_max_p,"+str(topX)+","+str(topY)+"); $finish(); end "
++print("initial assert ((x_max_p <= " + str(topX) + ") && (y_max_p <= " + str(topY) +")) else begin $error(\"%m x_max_p %d or y_max_p %d too large; rerun generator with larger size than %d/%d\",x_max_p,y_max_p,"+str(topX)+","+str(topY)+"); $finish(); end ")
+
+
+-print "endmodule"
++print("endmodule")
+
+-print "`BSG_ABSTRACT_MODULE(bsg_mesh_to_ring_stitch)"
++print("`BSG_ABSTRACT_MODULE(bsg_mesh_to_ring_stitch)")
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_tag/legacy/config_net/sim/generate_tb.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_tag/legacy/config_net/sim/generate_tb.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_tag/legacy/config_net/sim/generate_tb.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/bsg_tag/legacy/config_net/sim/generate_tb.py 2024-01-11 13:11:02.871715210 +0100
+@@ -53,7 +53,7 @@ sim_time = 500 # time units
+
+ # ========== Functions ==========
+ def readme():
+- print " \n\
++ print(" \n\
+ Name:\n\
+ generate_tb.py - python script to generate testbench for chained config_node instances\n\
+ \n\
+@@ -77,7 +77,7 @@ def readme():
+ \n\
+ You can extend the generated testfile to contain your specific test cases;\n\
+ then use command ./generate_tb.py -r <testfile> -o <tb file name> to read the\n\
+- modified file, and create testbench accordingly."
++ modified file, and create testbench accordingly.")
+
+ def dec2bin(dec, n): # Only works on non-negative number
+ bin = ""
+@@ -186,7 +186,7 @@ argparser.add_argument("--create-probe-f
+
+ try:
+ args = argparser.parse_args()
+-except IOError, msg:
++except IOError as msg:
+ argparser.error(str(msg))
+
+ # ========== ==========
+@@ -201,8 +201,8 @@ for line in spec_file:
+ if (l_words[0] == 'r'): # type 'r' indicates a relay node
+ relay_id = int(l_words[1]) # l_words[1] must be consecutive integers starting from 0
+ if (relay_id != relay_nodes):
+- print "ERROR spec file format: relay_id must be consecutive integers starting from 0!"
+- print ">>> " + line
++ print("ERROR spec file format: relay_id must be consecutive integers starting from 0!")
++ print(">>> " + line)
+ sys.exit(1)
+ else: # relay_nodes != 0
+ if (l_words[1] != '0'): # no need to process relay node 0
+@@ -210,7 +210,7 @@ for line in spec_file:
+ branch_id = random.randint(0, relay_nodes - 1) # to which the new relay node is connected
+ else:
+ branch_id = int(l_words[2]) # l_words[2] must be an integer if not an 'x'
+- if d_relay_tree.has_key(branch_id):
++ if branch_id in d_relay_tree:
+ d_relay_tree[branch_id].append(relay_id)
+ else:
+ d_relay_tree[branch_id] = [relay_id]
+@@ -222,8 +222,8 @@ for line in spec_file:
+ d_inst_data_bits[inst_id] = int(l_words[4])
+ d_inst_default[inst_id] = l_words[5]
+ else:
+- print "ERROR spec file format: type " + l_words[0] + " is not recognized!"
+- print ">>> " + line
++ print("ERROR spec file format: type " + l_words[0] + " is not recognized!")
++ print(">>> " + line)
+ sys.exit(1)
+
+ # randomize d_relay_tree if relay_nodes are not provided in spec file
+@@ -232,7 +232,7 @@ if (relay_nodes == 0):
+ for relay_id in range(1, relay_nodes): # relay_id 0 is the root
+ # because relay node id are consecutive integers, randint(0, relay_id - 1) makes all nodes are connected
+ branch_id = random.randint(0, relay_id - 1) # to which the new relay is connected
+- if d_relay_tree.has_key(branch_id):
++ if branch_id in d_relay_tree:
+ d_relay_tree[branch_id].append(relay_id)
+ else:
+ d_relay_tree[branch_id] = [relay_id]
+@@ -249,8 +249,8 @@ for line in spec_file:
+ if (l_words[2] == 'x'): # position 'x' indicates a random branch
+ d_inst_pos[inst_id] = random.randint(0, relay_nodes - 1) # inclusive of 0 and (relay_nodes - 1)
+ elif (int(l_words[2]) >= relay_nodes): # l_words[2] must be an integer if not an 'x'
+- print "ERROR spec file format: config node branch id doesn't exist, " + l_words[2] + " >= number of relay nodes = " + str(relay_nodes) + "!"
+- print ">>> " + line
++ print("ERROR spec file format: config node branch id doesn't exist, " + l_words[2] + " >= number of relay nodes = " + str(relay_nodes) + "!")
++ print(">>> " + line)
+ sys.exit(1)
+ else:
+ d_inst_pos[inst_id] = int(l_words[2])
+@@ -281,8 +281,8 @@ if (args.generate_tests != None):
+ test_file.write(str(l_test_id[test]) + "\t\t" + l_test_data[test] + "\n")
+ test_file.close()
+ os.system("cat " + test_file.name)
+- print " "
+- print str(number_of_tests) + " sets of random test id and data are generated and written into " + test_file.name
++ print(" ")
++ print(str(number_of_tests) + " sets of random test id and data are generated and written into " + test_file.name)
+ sys.exit(0) # exit after making the test file
+ elif (args.read_tests != None):
+ # read existing test file and parse
+@@ -327,7 +327,7 @@ for inst_id in l_inst_id: # initialize d
+ test_idx = 0
+ for test_id in l_test_id:
+ test_data = l_test_data[test_idx]
+- if d_reference.has_key(test_id): # extend an existing test sequence for a node having test_id
++ if test_id in d_reference: # extend an existing test sequence for a node having test_id
+ last_index = len(d_reference[test_id]) - 1
+ # if a new data item for an id is the same as its previous one, the new data is not appended.
+ if(d_reference[test_id][last_index] != test_data):
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_mem/bsg_rf_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_mem/bsg_rf_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_mem/bsg_rf_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_mem/bsg_rf_gen.py 2024-01-11 13:11:01.505066645 +0100
+@@ -18,27 +18,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -69,13 +69,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -134,7 +134,7 @@ def generate_2_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+
+ emit_gate_instance(dffe
+@@ -148,7 +148,7 @@ def generate_2_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_bit_port("qaoi",b,0) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_bit_port("qaoi",b,0) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(aoi22,
+@@ -197,7 +197,7 @@ def generate_4_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+
+ emit_gate_instance(dffe
+@@ -211,7 +211,7 @@ def generate_4_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("qaoi",bank,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("qaoi",bank,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(aoi22,
+@@ -271,7 +271,7 @@ def generate_Nr1w_array ( words, bits, r
+ emit_wire_definition(ident_name_bit("data_i_inv",b));
+ emit_rp_fill(str(column) +" 0 UX")
+ # we generate the state first
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for w in range(words)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for w in range(words)]) + ";");
+ for w in range (0,words) :
+ emit_gate_instance(dffe
+ ,[ ident_name_word_bit("reg",w,b)
+@@ -301,7 +301,7 @@ def generate_Nr1w_array ( words, bits, r
+ # AOI22 every pair of words
+
+ # we generate the state first
+- print "wire " + ",".join([ident_name_word_bit_port("qaoi",w,b,p) for w in range(0,words,2)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit_port("qaoi",w,b,p) for w in range(0,words,2)]) + ";");
+
+ for w in range (0,words,2) :
+ queue_gate_instance(gate_dict, aoi22
+@@ -357,7 +357,7 @@ def generate_Nr1w_array ( words, bits, r
+ , w+(15 if (words > 16) else 13)
+ );
+
+- print "\n";
++ print("\n");
+ # add inverters to data in, and data out.
+ # these are on opposite sides of the array
+ # we may potentially pay in delay, but we get
+@@ -381,9 +381,9 @@ def generate_Nr1w_array ( words, bits, r
+ # since we are using rp_fill commands
+ # but it makes things more readable
+
+- for x in sorted(gate_dict.items(), key=lambda x: x[1]) :
++ for x in sorted(list(gate_dict.items()), key=lambda x: x[1]) :
+ emit_rp_fill( str(column) +" "+str(x[1])+" UX")
+- print x[0], "// ",x[1];
++ print(x[0], "// ",x[1]);
+ column=column+1
+
+
+@@ -393,5 +393,5 @@ def generate_Nr1w_array ( words, bits, r
+ if len(sys.argv) == 4 :
+ generate_Nr1w_array (int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]));
+ else :
+- print "Usage: " + sys.argv[0] + " words bits readports";
++ print("Usage: " + sys.argv[0] + " words bits readports");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_dff_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_dff_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_dff_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_dff_gen.py 2024-01-11 13:11:02.081725673 +0100
+@@ -6,27 +6,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -57,16 +57,16 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def rp_fill_string (params) :
+ return "// synopsys rp_fill (" + params + ")"
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -166,6 +166,6 @@ else :
+ for b in range (1,int(sys.argv[2])+1) :
+ generate_dff_nreset_en( sys.argv[1], b, sys.argv[3] );
+ else:
+- print "Usage: " + sys.argv[0] + " type " + " bits " + " strength";
+- print "Usage: " + sys.argv[0] + " type " + " bits " + " strength " + "SWEEP (to go from 1..bits)";
++ print("Usage: " + sys.argv[0] + " type " + " bits " + " strength");
++ print("Usage: " + sys.argv[0] + " type " + " bits " + " strength " + "SWEEP (to go from 1..bits)");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_gate_stack_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_gate_stack_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_gate_stack_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_gate_stack_gen.py 2024-01-11 13:11:01.848395430 +0100
+@@ -16,27 +16,27 @@ import sys;
+ fab = "gf_14"
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -87,13 +87,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+ def generate_gate_stack ( gatename, rows,signature, vert) :
+ if (vert) :
+@@ -135,38 +135,38 @@ def generate_gate_stack ( gatename, rows
+ if len(sys.argv) == 4 :
+ if sys.argv[2].isdigit() :
+ for x in range(1,int(sys.argv[2])+1) :
+- print "\n// ****************************************************** \n"
++ print("\n// ****************************************************** \n")
+ generate_gate_stack(sys.argv[1],x,sys.argv[3],1);
+ elif (sys.argv[2][0]=="-") :
+ for x in range(1,-(int(sys.argv[2]))+1) :
+- print "\n// ****************************************************** \n"
++ print("\n// ****************************************************** \n")
+ generate_gate_stack(sys.argv[1],x,sys.argv[3],0);
+
+ elif len(sys.argv) == 5 :
+ signature=sys.argv[3]
+ num_inputs = signature.count('#') - 2;
+ input_params = ["input [width_p-1:0] i"+str(x) for x in range(0,num_inputs)]
+- print '''
++ print('''
+
+ module bsg_'''+sys.argv[4],'''#(width_p="inv",harden_p=1)
+ ('''+"\n ,".join(input_params)+'''
+ , output [width_p-1:0] o
+ );
+-'''
++''')
+
+ for x in range(1,int(sys.argv[2])+1) :
+- print ''' if (harden_p && (width_p=='''+str(x)+'''))
++ print(''' if (harden_p && (width_p=='''+str(x)+'''))
+ begin:macro
+ bsg_rp_gf_14_'''+sys.argv[1]+'''_b'''+str(x)+''' gate(.*);
+ end
+- else ''';
+- print '''
++ else ''');
++ print('''
+ begin: notmacro
+ initial assert(0!=1) else $error("%m unsupported gatestack size",width_p);
+ end
+
+ endmodule
+-'''
++''')
+ else :
+- print "Usage: bsg_gate_stack_gen.py AND2X1 32 > bsg_and_stacks.v # generate each individual netlist of each size"
+- print " bsg_gate_stack_gen.py AND2X1 32 and > bsg_and.v # generate the verilog function that thunks to the right netlist"
++ print("Usage: bsg_gate_stack_gen.py AND2X1 32 > bsg_and_stacks.v # generate each individual netlist of each size")
++ print(" bsg_gate_stack_gen.py AND2X1 32 and > bsg_and.v # generate the verilog function that thunks to the right netlist")
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_mux_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_mux_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_mux_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_mux_gen.py 2024-01-11 13:11:02.315055915 +0100
+@@ -23,27 +23,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -74,13 +74,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -131,7 +131,7 @@ def generate_mux_shift ( inputs, bits):
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";");
+
+ for b in range (0,bits) :
+
+@@ -149,7 +149,7 @@ def generate_mux_shift ( inputs, bits):
+ column=column+1;
+
+ for g in range(left,left+right) :
+- print "wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(joiner
+@@ -184,5 +184,5 @@ def generate_mux_shift ( inputs, bits):
+ if len(sys.argv) == 3 :
+ generate_mux_shift (int(sys.argv[1]), int(sys.argv[2]));
+ else :
+- print "Usage: " + sys.argv[0] + " inputs bits";
++ print("Usage: " + sys.argv[0] + " inputs bits");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_reduce_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_reduce_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_reduce_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/gf_14/bsg_misc/bsg_reduce_gen.py 2024-01-11 13:11:01.725063730 +0100
+@@ -2,7 +2,7 @@
+
+ import sys;
+
+-print '''
++print('''
+
+ module bsg_rp_gf_14_reduce_and_b4 (input [3:0] i, output o);
+ wire [1:0] lo;
+@@ -91,4 +91,4 @@ SC7P5T_ND4X2_SSC14SL bCDEF (.A(i[12]),
+ endmodule
+
+
+-''';
++''');
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_dataflow/bsg_fifo_shift_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_dataflow/bsg_fifo_shift_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_dataflow/bsg_fifo_shift_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_dataflow/bsg_fifo_shift_gen.py 2024-01-11 13:11:02.441720904 +0100
+@@ -24,27 +24,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -75,13 +75,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -113,19 +113,19 @@ def generate_fifo_shift_array ( words, b
+ emit_rp_group_begin("fifo_shift")
+
+ for w in range (0,words+1) :
+- print "wire " + ",".join([ident_name_word_bit("reg",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("reg",w,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+- print "assign " + access_bit("data_o",b)+ " = ", ident_name_word_bit("reg",0,b) + ";";
++ print("assign " + access_bit("data_o",b)+ " = ", ident_name_word_bit("reg",0,b) + ";");
+
+- for w in reversed(range (0,words)) :
++ for w in reversed(list(range(0,words))) :
+
+ for g in [1, 2, 0] :
+ if (g != 1 or w < words-1) :
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit_port("a2",w,b,g) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit_port("a2",w,b,g) for b in range(0,bits)]) + ";");
+
+ for b in range (0,bits) :
+ # we put the selects first on these gates because
+@@ -160,7 +160,7 @@ def generate_fifo_shift_array ( words, b
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("a3",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a3",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+ if (w < words - 1) :
+ emit_gate_instance(nand3
+@@ -201,5 +201,5 @@ def generate_fifo_shift_array ( words, b
+ if len(sys.argv) == 3 :
+ generate_fifo_shift_array (int(sys.argv[1]), int(sys.argv[2]));
+ else :
+- print "Usage: " + sys.argv[0] + " words bits";
++ print("Usage: " + sys.argv[0] + " words bits");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_mem/bsg_rf_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_mem/bsg_rf_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_mem/bsg_rf_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_mem/bsg_rf_gen.py 2024-01-11 13:11:03.415041346 +0100
+@@ -17,27 +17,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -68,13 +68,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -125,7 +125,7 @@ def generate_2_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+
+ emit_gate_instance(dffe
+@@ -139,7 +139,7 @@ def generate_2_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_bit_port("qaoi",b,0) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_bit_port("qaoi",b,0) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(aoi22,
+@@ -188,7 +188,7 @@ def generate_4_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+
+ emit_gate_instance(dffe
+@@ -202,7 +202,7 @@ def generate_4_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("qaoi",bank,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("qaoi",bank,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(aoi22,
+@@ -262,7 +262,7 @@ def generate_Nr1w_array ( words, bits, r
+ emit_wire_definition(ident_name_bit("data_i_inv",b));
+ emit_rp_fill(str(column) +" 0 UX")
+ # we generate the state first
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for w in range(words)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for w in range(words)]) + ";");
+ for w in range (0,words) :
+ emit_gate_instance(dffe
+ ,[ ident_name_word_bit("reg",w,b)
+@@ -292,7 +292,7 @@ def generate_Nr1w_array ( words, bits, r
+ # AOI22 every pair of words
+
+ # we generate the state first
+- print "wire " + ",".join([ident_name_word_bit_port("qaoi",w,b,p) for w in range(0,words,2)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit_port("qaoi",w,b,p) for w in range(0,words,2)]) + ";");
+
+ for w in range (0,words,2) :
+ queue_gate_instance(gate_dict, aoi22
+@@ -348,7 +348,7 @@ def generate_Nr1w_array ( words, bits, r
+ , w+(15 if (words > 16) else 13)
+ );
+
+- print "\n";
++ print("\n");
+ # add inverters to data in, and data out.
+ # these are on opposite sides of the array
+ # we may potentially pay in delay, but we get
+@@ -372,9 +372,9 @@ def generate_Nr1w_array ( words, bits, r
+ # since we are using rp_fill commands
+ # but it makes things more readable
+
+- for x in sorted(gate_dict.items(), key=lambda x: x[1]) :
++ for x in sorted(list(gate_dict.items()), key=lambda x: x[1]) :
+ emit_rp_fill( str(column) +" "+str(x[1])+" UX")
+- print x[0], "// ",x[1];
++ print(x[0], "// ",x[1]);
+ column=column+1
+
+
+@@ -384,5 +384,5 @@ def generate_Nr1w_array ( words, bits, r
+ if len(sys.argv) == 4 :
+ generate_Nr1w_array (int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]));
+ else :
+- print "Usage: " + sys.argv[0] + " words bits readports";
++ print("Usage: " + sys.argv[0] + " words bits readports");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_dff_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_dff_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_dff_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_dff_gen.py 2024-01-11 13:11:04.155031544 +0100
+@@ -6,27 +6,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -57,16 +57,16 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def rp_fill_string (params) :
+ return "// synopsys rp_fill (" + params + ")"
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -153,6 +153,6 @@ else :
+ for b in range (1,int(sys.argv[2])+1) :
+ generate_dff_nreset_en( sys.argv[1], b, sys.argv[3] );
+ else:
+- print "Usage: " + sys.argv[0] + " type " + " bits " + " strength";
+- print "Usage: " + sys.argv[0] + " type " + " bits " + " strength " + "SWEEP (to go from 1..bits)";
++ print("Usage: " + sys.argv[0] + " type " + " bits " + " strength");
++ print("Usage: " + sys.argv[0] + " type " + " bits " + " strength " + "SWEEP (to go from 1..bits)");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_gate_stack_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_gate_stack_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_gate_stack_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_gate_stack_gen.py 2024-01-11 13:11:04.521693353 +0100
+@@ -16,27 +16,27 @@ import sys;
+ fab = "tsmc_250"
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -87,13 +87,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+ def generate_gate_stack ( gatename, rows,signature, vert) :
+ if (vert) :
+@@ -135,38 +135,38 @@ def generate_gate_stack ( gatename, rows
+ if len(sys.argv) == 4 :
+ if sys.argv[2].isdigit() :
+ for x in range(1,int(sys.argv[2])+1) :
+- print "\n// ****************************************************** \n"
++ print("\n// ****************************************************** \n")
+ generate_gate_stack(sys.argv[1],x,sys.argv[3],1);
+ elif (sys.argv[2][0]=="-") :
+ for x in range(1,-(int(sys.argv[2]))+1) :
+- print "\n// ****************************************************** \n"
++ print("\n// ****************************************************** \n")
+ generate_gate_stack(sys.argv[1],x,sys.argv[3],0);
+
+ elif len(sys.argv) == 5 :
+ signature=sys.argv[3]
+ num_inputs = signature.count('#') - 2;
+ input_params = ["input [width_p-1:0] i"+str(x) for x in range(0,num_inputs)]
+- print '''
++ print('''
+
+ module bsg_'''+sys.argv[4],'''#(width_p="inv",harden_p=1)
+ ('''+"\n ,".join(input_params)+'''
+ , output [width_p-1:0] o
+ );
+-'''
++''')
+
+ for x in range(1,int(sys.argv[2])+1) :
+- print ''' if (harden_p && (width_p=='''+str(x)+'''))
++ print(''' if (harden_p && (width_p=='''+str(x)+'''))
+ begin:macro
+ bsg_rp_tsmc_250_'''+sys.argv[1]+'''_b'''+str(x)+''' gate(.*);
+ end
+- else ''';
+- print '''
++ else ''');
++ print('''
+ begin: notmacro
+ initial assert(0!=1) else $error("%m unsupported gatestack size",width_p);
+ end
+
+ endmodule
+-'''
++''')
+ else :
+- print "Usage: bsg_gate_stack_gen.py AND2X1 32 > bsg_and_stacks.v # generate each individual netlist of each size"
+- print " bsg_gate_stack_gen.py AND2X1 32 and > bsg_and.v # generate the verilog function that thunks to the right netlist"
++ print("Usage: bsg_gate_stack_gen.py AND2X1 32 > bsg_and_stacks.v # generate each individual netlist of each size")
++ print(" bsg_gate_stack_gen.py AND2X1 32 and > bsg_and.v # generate the verilog function that thunks to the right netlist")
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_and_csa_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_and_csa_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_and_csa_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_and_csa_gen.py 2024-01-11 13:11:04.645025053 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -129,7 +129,7 @@ def generate_and_csa_block ( rows ) :
+ for pos in range (0,rows) :
+
+ emit_rp_fill("0 " + str(pos*2) + " UX");
+- print "wire " + ident_name_bit("and_int",pos) + ";";
++ print("wire " + ident_name_bit("and_int",pos) + ";");
+
+ emit_gate_instance(addf
+ , [ ident_name_word_bit("csa", pos, 0)
+@@ -155,5 +155,5 @@ def generate_and_csa_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_and_csa_block(int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0] + " rows";
++ print("Usage: " + sys.argv[0] + " rows");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py 2024-01-11 13:11:05.051686334 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+ # NOTE: for symmetric pins, assume that earlier ones are always faster.
+@@ -130,11 +130,11 @@ def generate_booth_4_block ( rows ) :
+ emit_rp_group_begin("b4b")
+
+ for pos in range (0,rows) :
+- print ""
+- print "wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";"
+- print "wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";"
++ print("")
++ print("wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";")
++ print("wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";")
+
+ emit_rp_fill("0 " + str(pos*2) + " RX");
+
+@@ -242,5 +242,5 @@ def generate_booth_4_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_booth_4_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0] + " rows";
++ print("Usage: " + sys.argv[0] + " rows");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py 2024-01-11 13:11:04.778356621 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -138,11 +138,11 @@ def generate_booth_4_block ( rows ) :
+ for pos in range (0,rows) :
+ adj_pos = start_row + pos;
+
+- print ""
+- print "wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";"
+- print "wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";"
++ print("")
++ print("wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";")
++ print("wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";")
+
+
+ # irritatingly, we need to place at least one cell at X position 0 for it to shift everything over.
+@@ -242,13 +242,13 @@ def generate_booth_4_block ( rows ) :
+
+
+ if (adj_pos == 0) :
+- print "assign s_o[0] = SDN_i[0]; /* SDN_i[0][0] */ assign c_o[0] = 1'b0;"
++ print("assign s_o[0] = SDN_i[0]; /* SDN_i[0][0] */ assign c_o[0] = 1'b0;")
+
+ if (adj_pos == 1) :
+- print "assign s_o[1] = 1'b0; assign c_o[1] = 1'b0;"
++ print("assign s_o[1] = 1'b0; assign c_o[1] = 1'b0;")
+
+ if (adj_pos == 3) :
+- print "assign s_o[" + str(pos) + "] = pp_w" + str(pos) + "_b0; assign c_o[" + str(pos) + "] = 1'b0;"
++ print("assign s_o[" + str(pos) + "] = pp_w" + str(pos) + "_b0; assign c_o[" + str(pos) + "] = 1'b0;")
+
+
+ emit_rp_group_end("b4b")
+@@ -257,5 +257,5 @@ def generate_booth_4_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_booth_4_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0]
++ print("Usage: " + sys.argv[0])
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py 2024-01-11 13:11:04.915021478 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -138,24 +138,24 @@ def generate_booth_4_block ( rows ) :
+
+ for pos in range (0,rows) :
+
+- print ""
+- print "wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";"
+- print "wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";"
++ print("")
++ print("wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";")
++ print("wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";")
+
+
+ emit_rp_fill("0 " + str(pos*2) + " RX");
+
+ if (pos == 0) :
+- print "assign cl_o = 1'b0;"
++ print("assign cl_o = 1'b0;")
+
+ if (pos == 7) :
+- print "assign c_o[" + str(pos) + "] = 1'b0;"
+- print "assign s_o[" + str(pos) + "] = 1'b1;"
++ print("assign c_o[" + str(pos) + "] = 1'b0;")
++ print("assign s_o[" + str(pos) + "] = 1'b1;")
+
+ if (pos == 6) :
+- print "assign c_o[" + str(pos) + "] = 1'b0;"
++ print("assign c_o[" + str(pos) + "] = 1'b0;")
+
+ #3
+ if (pos < 7) :
+@@ -267,5 +267,5 @@ def generate_booth_4_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_booth_4_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0]
++ print("Usage: " + sys.argv[0])
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_comp42_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_comp42_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_comp42_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mul/bsg_comp42_gen.py 2024-01-11 13:11:05.175018033 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -126,9 +126,9 @@ def generate_c42_block ( rows ) :
+ emit_rp_group_begin("c42")
+
+ for pos in range (0,rows) :
+- print ""
+- print "wire " + ident_name_bit("s_int",pos) +";";
+- print "wire " + ident_name_bit("cl_int",pos)+";";
++ print("")
++ print("wire " + ident_name_bit("s_int",pos) +";");
++ print("wire " + ident_name_bit("cl_int",pos)+";");
+
+ emit_rp_fill("0 " + str(pos*2) + " UX");
+
+@@ -157,5 +157,5 @@ def generate_c42_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_c42_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0] + " rows";
++ print("Usage: " + sys.argv[0] + " rows");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mux_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mux_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mux_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_mux_gen.py 2024-01-11 13:11:04.278363243 +0100
+@@ -23,27 +23,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -74,13 +74,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -127,7 +127,7 @@ def generate_mux_shift ( inputs, bits):
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";");
+
+ for b in range (0,bits) :
+
+@@ -145,7 +145,7 @@ def generate_mux_shift ( inputs, bits):
+ column=column+1;
+
+ for g in range(left,left+right) :
+- print "wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(joiner
+@@ -180,5 +180,5 @@ def generate_mux_shift ( inputs, bits):
+ if len(sys.argv) == 3 :
+ generate_mux_shift (int(sys.argv[1]), int(sys.argv[2]));
+ else :
+- print "Usage: " + sys.argv[0] + " inputs bits";
++ print("Usage: " + sys.argv[0] + " inputs bits");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_reduce_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_reduce_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_reduce_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_180_250/bsg_misc/bsg_reduce_gen.py 2024-01-11 13:11:04.391695076 +0100
+@@ -2,7 +2,7 @@
+
+ import sys;
+
+-print '''
++print('''
+
+ module bsg_rp_tsmc_250_reduce_and_b4 (input [3:0] i, output o);
+ wire [1:0] lo;
+@@ -91,4 +91,4 @@ NAND4X2 bCDEF (.A(i[12]),.B(i[13]),.C(
+ endmodule
+
+
+-''';
++''');
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_mem/bsg_rf_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_mem/bsg_rf_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_mem/bsg_rf_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_mem/bsg_rf_gen.py 2024-01-11 13:11:02.715050617 +0100
+@@ -17,27 +17,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -68,13 +68,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -132,7 +132,7 @@ def generate_2_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+
+ emit_gate_instance(dffe
+@@ -146,7 +146,7 @@ def generate_2_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_bit_port("qaoi",b,0) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_bit_port("qaoi",b,0) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(aoi22,
+@@ -195,7 +195,7 @@ def generate_4_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for b in range(0,bits)]) + ";");
+ for b in range (0,bits) :
+
+ emit_gate_instance(dffe
+@@ -209,7 +209,7 @@ def generate_4_word_1r1w_array ( words,
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("qaoi",bank,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("qaoi",bank,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(aoi22,
+@@ -269,7 +269,7 @@ def generate_Nr1w_array ( words, bits, r
+ emit_wire_definition(ident_name_bit("data_i_inv",b));
+ emit_rp_fill(str(column) +" 0 UX")
+ # we generate the state first
+- print "wire " + ",".join([ident_name_word_bit("q",w,b) for w in range(words)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("q",w,b) for w in range(words)]) + ";");
+ for w in range (0,words) :
+ emit_gate_instance(dffe
+ ,[ ident_name_word_bit("reg",w,b)
+@@ -299,7 +299,7 @@ def generate_Nr1w_array ( words, bits, r
+ # AOI22 every pair of words
+
+ # we generate the state first
+- print "wire " + ",".join([ident_name_word_bit_port("qaoi",w,b,p) for w in range(0,words,2)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit_port("qaoi",w,b,p) for w in range(0,words,2)]) + ";");
+
+ for w in range (0,words,2) :
+ queue_gate_instance(gate_dict, aoi22
+@@ -355,7 +355,7 @@ def generate_Nr1w_array ( words, bits, r
+ , w+(15 if (words > 16) else 13)
+ );
+
+- print "\n";
++ print("\n");
+ # add inverters to data in, and data out.
+ # these are on opposite sides of the array
+ # we may potentially pay in delay, but we get
+@@ -379,9 +379,9 @@ def generate_Nr1w_array ( words, bits, r
+ # since we are using rp_fill commands
+ # but it makes things more readable
+
+- for x in sorted(gate_dict.items(), key=lambda x: x[1]) :
++ for x in sorted(list(gate_dict.items()), key=lambda x: x[1]) :
+ emit_rp_fill( str(column) +" "+str(x[1])+" UX")
+- print x[0], "// ",x[1];
++ print(x[0], "// ",x[1]);
+ column=column+1
+
+
+@@ -391,5 +391,5 @@ def generate_Nr1w_array ( words, bits, r
+ if len(sys.argv) == 4 :
+ generate_Nr1w_array (int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]));
+ else :
+- print "Usage: " + sys.argv[0] + " words bits readports";
++ print("Usage: " + sys.argv[0] + " words bits readports");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_dff_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_dff_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_dff_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_dff_gen.py 2024-01-11 13:11:03.925034590 +0100
+@@ -6,27 +6,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -57,16 +57,16 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def rp_fill_string (params) :
+ return "// synopsys rp_fill (" + params + ")"
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -161,6 +161,6 @@ else :
+ for b in range (1,int(sys.argv[2])+1) :
+ generate_dff_nreset_en( sys.argv[1], b, sys.argv[3] );
+ else:
+- print "Usage: " + sys.argv[0] + " type " + " bits " + " strength";
+- print "Usage: " + sys.argv[0] + " type " + " bits " + " strength " + "SWEEP (to go from 1..bits)";
++ print("Usage: " + sys.argv[0] + " type " + " bits " + " strength");
++ print("Usage: " + sys.argv[0] + " type " + " bits " + " strength " + "SWEEP (to go from 1..bits)");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_gate_stack_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_gate_stack_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_gate_stack_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_gate_stack_gen.py 2024-01-11 13:11:02.568385894 +0100
+@@ -16,27 +16,27 @@ import sys;
+ fab = "tsmc_40"
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -87,13 +87,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+ def generate_gate_stack ( gatename, rows,signature, vert) :
+ if (vert) :
+@@ -135,38 +135,38 @@ def generate_gate_stack ( gatename, rows
+ if len(sys.argv) == 4 :
+ if sys.argv[2].isdigit() :
+ for x in range(1,int(sys.argv[2])+1) :
+- print "\n// ****************************************************** \n"
++ print("\n// ****************************************************** \n")
+ generate_gate_stack(sys.argv[1],x,sys.argv[3],1);
+ elif (sys.argv[2][0]=="-") :
+ for x in range(1,-(int(sys.argv[2]))+1) :
+- print "\n// ****************************************************** \n"
++ print("\n// ****************************************************** \n")
+ generate_gate_stack(sys.argv[1],x,sys.argv[3],0);
+
+ elif len(sys.argv) == 5 :
+ signature=sys.argv[3]
+ num_inputs = signature.count('#') - 2;
+ input_params = ["input [width_p-1:0] i"+str(x) for x in range(0,num_inputs)]
+- print '''
++ print('''
+
+ module bsg_'''+sys.argv[4],'''#(width_p="inv",harden_p=1)
+ ('''+"\n ,".join(input_params)+'''
+ , output [width_p-1:0] o
+ );
+-'''
++''')
+
+ for x in range(1,int(sys.argv[2])+1) :
+- print ''' if (harden_p && (width_p=='''+str(x)+'''))
++ print(''' if (harden_p && (width_p=='''+str(x)+'''))
+ begin:macro
+ bsg_rp_tsmc_40_'''+sys.argv[1]+'''_b'''+str(x)+''' gate(.*);
+ end
+- else ''';
+- print '''
++ else ''');
++ print('''
+ begin: notmacro
+ initial assert(0!=1) else $error("%m unsupported gatestack size",width_p);
+ end
+
+ endmodule
+-'''
++''')
+ else :
+- print "Usage: bsg_gate_stack_gen.py AND2X1 32 > bsg_and_stacks.v # generate each individual netlist of each size"
+- print " bsg_gate_stack_gen.py AND2X1 32 and > bsg_and.v # generate the verilog function that thunks to the right netlist"
++ print("Usage: bsg_gate_stack_gen.py AND2X1 32 > bsg_and_stacks.v # generate each individual netlist of each size")
++ print(" bsg_gate_stack_gen.py AND2X1 32 and > bsg_and.v # generate the verilog function that thunks to the right netlist")
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_and_csa_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_and_csa_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_and_csa_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_and_csa_gen.py 2024-01-11 13:11:03.801702891 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -129,7 +129,7 @@ def generate_and_csa_block ( rows ) :
+ for pos in range (0,rows) :
+
+ emit_rp_fill("0 " + str(pos*2) + " UX");
+- print "wire " + ident_name_bit("and_int",pos) + ";";
++ print("wire " + ident_name_bit("and_int",pos) + ";");
+
+ emit_gate_instance(addf
+ , [ ident_name_word_bit("csa", pos, 0)
+@@ -155,5 +155,5 @@ def generate_and_csa_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_and_csa_block(int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0] + " rows";
++ print("Usage: " + sys.argv[0] + " rows");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen.py 2024-01-11 13:11:03.268376621 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+ # NOTE: for symmetric pins, assume that earlier ones are always faster.
+@@ -130,11 +130,11 @@ def generate_booth_4_block ( rows ) :
+ emit_rp_group_begin("b4b")
+
+ for pos in range (0,rows) :
+- print ""
+- print "wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";"
+- print "wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";"
++ print("")
++ print("wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";")
++ print("wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";")
+
+ emit_rp_fill("0 " + str(pos*2) + " RX");
+
+@@ -242,5 +242,5 @@ def generate_booth_4_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_booth_4_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0] + " rows";
++ print("Usage: " + sys.argv[0] + " rows");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_cornice.py 2024-01-11 13:11:03.135045055 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -138,11 +138,11 @@ def generate_booth_4_block ( rows ) :
+ for pos in range (0,rows) :
+ adj_pos = start_row + pos;
+
+- print ""
+- print "wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";"
+- print "wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";"
++ print("")
++ print("wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";")
++ print("wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";")
+
+
+ # irritatingly, we need to place at least one cell at X position 0 for it to shift everything over.
+@@ -242,13 +242,13 @@ def generate_booth_4_block ( rows ) :
+
+
+ if (adj_pos == 0) :
+- print "assign s_o[0] = SDN_i[0]; /* SDN_i[0][0] */ assign c_o[0] = 1'b0;"
++ print("assign s_o[0] = SDN_i[0]; /* SDN_i[0][0] */ assign c_o[0] = 1'b0;")
+
+ if (adj_pos == 1) :
+- print "assign s_o[1] = 1'b0; assign c_o[1] = 1'b0;"
++ print("assign s_o[1] = 1'b0; assign c_o[1] = 1'b0;")
+
+ if (adj_pos == 3) :
+- print "assign s_o[" + str(pos) + "] = pp_w" + str(pos) + "_b0; assign c_o[" + str(pos) + "] = 1'b0;"
++ print("assign s_o[" + str(pos) + "] = pp_w" + str(pos) + "_b0; assign c_o[" + str(pos) + "] = 1'b0;")
+
+
+ emit_rp_group_end("b4b")
+@@ -257,5 +257,5 @@ def generate_booth_4_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_booth_4_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0]
++ print("Usage: " + sys.argv[0])
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_booth_4_block_gen_end_cornice.py 2024-01-11 13:11:03.551706202 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -138,24 +138,24 @@ def generate_booth_4_block ( rows ) :
+
+ for pos in range (0,rows) :
+
+- print ""
+- print "wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";"
+- print "wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";"
+- print "wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";"
++ print("")
++ print("wire " + ",".join([ident_name_word_bit("pp",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("aoi",pos,b) for b in range(0,4)])+";")
++ print("wire " + ",".join([ident_name_word_bit("cl",pos,b) for b in range(0,1)])+";")
++ print("wire " + ",".join([ident_name_word_bit("s0",pos,b) for b in range(0,1)])+";")
+
+
+ emit_rp_fill("0 " + str(pos*2) + " RX");
+
+ if (pos == 0) :
+- print "assign cl_o = 1'b0;"
++ print("assign cl_o = 1'b0;")
+
+ if (pos == 7) :
+- print "assign c_o[" + str(pos) + "] = 1'b0;"
+- print "assign s_o[" + str(pos) + "] = 1'b1;"
++ print("assign c_o[" + str(pos) + "] = 1'b0;")
++ print("assign s_o[" + str(pos) + "] = 1'b1;")
+
+ if (pos == 6) :
+- print "assign c_o[" + str(pos) + "] = 1'b0;"
++ print("assign c_o[" + str(pos) + "] = 1'b0;")
+
+ #3
+ if (pos < 7) :
+@@ -267,5 +267,5 @@ def generate_booth_4_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_booth_4_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0]
++ print("Usage: " + sys.argv[0])
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_comp42_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_comp42_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_comp42_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mul/bsg_comp42_gen.py 2024-01-11 13:11:03.678371190 +0100
+@@ -14,27 +14,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + " (",
++ print("module " + name + " (", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -86,13 +86,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -126,9 +126,9 @@ def generate_c42_block ( rows ) :
+ emit_rp_group_begin("c42")
+
+ for pos in range (0,rows) :
+- print ""
+- print "wire " + ident_name_bit("s_int",pos) +";";
+- print "wire " + ident_name_bit("cl_int",pos)+";";
++ print("")
++ print("wire " + ident_name_bit("s_int",pos) +";");
++ print("wire " + ident_name_bit("cl_int",pos)+";");
+
+ emit_rp_fill("0 " + str(pos*2) + " UX");
+
+@@ -157,5 +157,5 @@ def generate_c42_block ( rows ) :
+ if len(sys.argv) == 2 :
+ generate_c42_block (int(sys.argv[1]));
+ else :
+- print "Usage: " + sys.argv[0] + " rows";
++ print("Usage: " + sys.argv[0] + " rows");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mux_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mux_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mux_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_mux_gen.py 2024-01-11 13:11:02.998380198 +0100
+@@ -23,27 +23,27 @@
+ import sys;
+
+ def emit_module_header (name, input_args, output_args) :
+- print "module " + name + "(",
++ print("module " + name + "(", end=' ')
+ my_list = []
+ for x in input_args :
+ my_list.append("input "+x+"\n");
+ for x in output_args :
+ my_list.append("output "+x+"\n");
+- print (" "*(len(name)+8)+",").join(my_list);
++ print((" "*(len(name)+8)+",").join(my_list));
+
+- print ");";
++ print(");");
+
+ def emit_module_footer( ) :
+- print "endmodule";
++ print("endmodule");
+
+ def emit_wire_definition (name) :
+- print "wire " + name + "; "
++ print("wire " + name + "; ")
+
+ def emit_wire_definition_nocr (name) :
+- print "wire " + name + "; ",
++ print("wire " + name + "; ", end=' ')
+
+ def emit_gate_instance (gate_str, arg_list ) :
+- print gate_instance(gate_str,arg_list);
++ print(gate_instance(gate_str,arg_list));
+
+ def queue_gate_instance (out_dict, gate_str, arg_list, order) :
+ the_string = gate_instance(gate_str,arg_list)
+@@ -74,13 +74,13 @@ def ident_name_bit (name,bit) :
+
+
+ def emit_rp_group_begin (name) :
+- print "// synopsys rp_group (" + name + ")"
++ print("// synopsys rp_group (" + name + ")")
+
+ def emit_rp_group_end (name) :
+- print "// synopsys rp_endgroup (" + name +")"
++ print("// synopsys rp_endgroup (" + name +")")
+
+ def emit_rp_fill (params):
+- print "// synopsys rp_fill (" + params +")"
++ print("// synopsys rp_fill (" + params +")")
+
+
+
+@@ -130,7 +130,7 @@ def generate_mux_shift ( inputs, bits):
+ emit_rp_fill(str(column) + " 0 UX");
+ column=column+1;
+
+- print "wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";");
+
+ for b in range (0,bits) :
+
+@@ -148,7 +148,7 @@ def generate_mux_shift ( inputs, bits):
+ column=column+1;
+
+ for g in range(left,left+right) :
+- print "wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";";
++ print("wire " + ",".join([ident_name_word_bit("a2",g,b) for b in range(0,bits)]) + ";");
+
+ for b in range(0,bits) :
+ emit_gate_instance(joiner
+@@ -183,5 +183,5 @@ def generate_mux_shift ( inputs, bits):
+ if len(sys.argv) == 3 :
+ generate_mux_shift (int(sys.argv[1]), int(sys.argv[2]));
+ else :
+- print "Usage: " + sys.argv[0] + " inputs bits";
++ print("Usage: " + sys.argv[0] + " inputs bits");
+
+diff --color -rupN a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_reduce_gen.py b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_reduce_gen.py
+--- a/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_reduce_gen.py 2021-09-26 19:02:04.000000000 +0200
++++ b/pythondata-cpu-blackparrot-2023.12/pythondata_cpu_blackparrot/system_verilog/black-parrot/external/basejump_stl/hard/tsmc_40/bsg_misc/bsg_reduce_gen.py 2024-01-11 13:11:02.191724216 +0100
+@@ -2,7 +2,7 @@
+
+ import sys;
+
+-print '''
++print('''
+
+ module bsg_rp_tsmc_40_reduce_and_b4 (input [3:0] i, output o);
+ wire [1:0] lo;
+@@ -91,4 +91,4 @@ ND4D2BWP bCDEF (.A1(i[12]),.A2(i[13]),
+ endmodule
+
+
+-''';
++''');
diff --git a/testing/py3-litex-hub-modules/APKBUILD b/testing/py3-litex-hub-modules/APKBUILD
new file mode 100644
index 00000000000..337820c242d
--- /dev/null
+++ b/testing/py3-litex-hub-modules/APKBUILD
@@ -0,0 +1,235 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=py3-litex-hub-modules
+_pkgname=litex
+pkgver=2023.12
+pkgrel=4
+pkgdesc="Python modules containing verilog and/or data files for use with LiteX"
+url="https://github.com/litex-hub"
+license="BSD-2-Clause"
+arch="all"
+# match this commit against https://github.com/litex-hub/pythondata-software-picolibc/tree/master/pythondata_software_picolibc
+_picolibc_commit="f165dc22f1f67e3e8bdc8edf750ff7dc596de2ff"
+_fpnew_commit="855bb82b6e85772fc290fa8b9c14fdd8f1b16be7"
+_riscv_dbg_commit="6d38d957b036231db668666255e938c91b7ce424"
+_trace_debugger_commit="0aafa398e208ad79826407e3805642987287cfae"
+_common_cells_commit="790f2385c01c83022474eede55809666209216e3"
+_fpu_div_sqrt_mvp_commit="83a601f97934ed5e06d737b9c80d98b08867c5fa"
+_modules="
+ pythondata-cpu-blackparrot:2023.12:BSD-3-Clause
+ pythondata-cpu-cv32e40p:2023.12:Apache-2.0
+ pythondata-cpu-cv32e41p:2023.12:Apache-2.0
+ pythondata-cpu-cva5:2023.12:Apache-2.0
+ pythondata-cpu-cva6:2023.12:Apache-2.0
+ pythondata-cpu-ibex:2023.12:Apache-2.0
+ pythondata-cpu-lm32:2020.04:EPL-1.0
+ pythondata-cpu-marocchino:2023.12:MPL-2.0
+ pythondata-cpu-microwatt:2023.12:CC-BY-SA-4.0
+ pythondata-cpu-minerva:2023.12:BSD-2-Clause
+ pythondata-cpu-mor1kx:2020.04:MPL-2.0
+ pythondata-cpu-naxriscv:2023.12:MIT
+ pythondata-cpu-picorv32:2020.04:ISC
+ pythondata-cpu-rocket:2020.04:Apache-2.0
+ pythondata-cpu-serv:2020.04:ISC
+ pythondata-cpu-vexriscv:2020.04:MIT
+ pythondata-cpu-vexriscv_smp:2023.12:MIT
+ pythondata-misc-tapcfg:2020.04:LGPL-2.1-only
+ pythondata-software-compiler_rt:2020.04:Apache-2.0
+ pythondata-software-picolibc:2023.12:BSD-3-Clause
+ valentyusb:2023.12:BSD-3-Clause
+ "
+depends="
+ python3
+ "
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-wheel
+ py3-installer
+ "
+subpackages="$pkgname-pyc"
+source="
+ picolibc-$_picolibc_commit.tar.gz::https://github.com/picolibc/picolibc/archive/$_picolibc_commit.tar.gz
+ fpnew-$_fpnew_commit.tar.gz::https://github.com/antmicro/fpnew/archive/$_fpnew_commit.tar.gz
+ riscv-dbg-$_riscv_dbg_commit.tar.gz::https://github.com/antmicro/riscv-dbg/archive/$_riscv_dbg_commit.tar.gz
+ trace_debugger-$_trace_debugger_commit.tar.gz::https://github.com/antmicro/trace_debugger/archive/$_trace_debugger_commit.tar.gz
+ common_cells-$_common_cells_commit.tar.gz::https://github.com/pulp-platform/common_cells/archive/$_common_cells_commit.tar.gz
+ fpu_div_sqrt_mvp-$_fpu_div_sqrt_mvp_commit.tar.gz::https://github.com/pulp-platform/fpu_div_sqrt_mvp/archive/$_fpu_div_sqrt_mvp_commit.tar.gz
+
+ 0001-fix-pythondata_software_compiler_rt-python3.patch
+ 0002-fix-pythondata-cpu-blackparrot-python3.patch
+ "
+builddir="$srcdir"
+# most LiteX-Hub repos contain no unit tests. The basically wrap upstream
+# repos in a fashion suitable for use with LiteX, so they can rely on unit
+# tests of the upstream repos. Those LiteX-Hub repos that do have tests
+# depend on LiteX to be installed, but LiteX depends on these for its unit
+# tests (circular dependency). The unit tests in LiteX are more important, so
+# we disable tests here.
+options="!check"
+
+# The data contains ELF files intended for the softcore CPUs, which cannot
+# be stripped with the native toolchain due to mismatching target architecture.
+options="$options !strip"
+
+_repo_name() {
+ echo ${1%%:*}
+}
+
+_pkgver() {
+ a=${1%:*}
+ echo ${a#*:}
+}
+
+_version_by_name() {
+ for _name_ver_license in $_modules; do
+ if [ "$1" = "$(_repo_name "$_name_ver_license")" ]; then
+ _pkgver "$_name_ver_license"
+ fi
+ done
+}
+
+_supply_git_submodule() {
+ rmdir "$1" || rm "$1"
+ ln -s "$2" "$1"
+}
+
+_license() {
+ echo $1 | cut -d : -f 3
+}
+
+for _name_ver_license in $_modules; do
+ _name="$(_repo_name "$_name_ver_license")"
+ _ver="$(_pkgver "$_name_ver_license")"
+ source="$source $_name-$_ver.tar.gz::https://github.com/litex-hub/$_name/archive/refs/tags/$_ver.tar.gz"
+ subpackages="$subpackages py3-litex-hub-$_name:_subpkg"
+done
+
+prepare() {
+ local _name
+ local _ver
+ default_prepare
+
+ # remove drivers for OSX, Solaris and Windows as well as tools for mingw.
+ # We don't need them and they cause lots of warnings
+ rm -rf "$srcdir"/pythondata-misc-tapcfg-2020.04/pythondata_misc_tapcfg/data/drivers
+ rm -rf "$srcdir"/pythondata-misc-tapcfg-2020.04/pythondata_misc_tapcfg/data/scons-tools
+
+ # setuptools.find_packages() doesn't work here and many instance of
+ # Warning: Package '<data_pkg_name>' is absent from the packages configuration.
+ # are triggered. Using setuptools.find_namespace_packages() instead does
+ # the trick.
+ find "$srcdir" -maxdepth 2 -name setup.py -exec \
+ sed \
+ -e 's/packages=setuptools\.find_packages/packages=setuptools\.find_namespace_packages/g' \
+ -i {} \;
+
+ # manually supply pythondata-software-picolibc git submodule from downloaded source
+ _name=pythondata-software-picolibc
+ _ver="$(_version_by_name "$_name")"
+ _supply_git_submodule \
+ "$srcdir/$_name-$_ver/pythondata_software_picolibc/data" \
+ "$srcdir/picolibc-$_picolibc_commit"
+
+ # manually supply pythondata-cpu-cv32e40p git submodule from downloaded source
+ _name=pythondata-cpu-cv32e40p
+ _ver="$(_version_by_name "$_name")"
+ _supply_git_submodule \
+ "$srcdir/$_name-$_ver/pythondata_cpu_cv32e40p/system_verilog/rtl/fpnew" \
+ "$srcdir/fpnew-$_fpnew_commit"
+ _supply_git_submodule \
+ "$srcdir/$_name-$_ver/pythondata_cpu_cv32e40p/system_verilog/rtl/riscv-dbg" \
+ "$srcdir/riscv-dbg-$_riscv_dbg_commit"
+ _supply_git_submodule \
+ "$srcdir/$_name-$_ver/pythondata_cpu_cv32e40p/system_verilog/rtl/trace_debugger" \
+ "$srcdir/trace_debugger-$_trace_debugger_commit"
+
+ # manually supply git submodules for fpnew
+ _supply_git_submodule \
+ "$srcdir/fpnew-$_fpnew_commit/src/common_cells" \
+ "$srcdir/common_cells-$_common_cells_commit"
+ _supply_git_submodule \
+ "$srcdir/fpnew-$_fpnew_commit/src/fpu_div_sqrt_mvp" \
+ "$srcdir/fpu_div_sqrt_mvp-$_fpu_div_sqrt_mvp_commit"
+}
+
+build() {
+ local _name
+ local _version
+ for _name_ver_license in $_modules; do
+ _name="$(_repo_name "$_name_ver_license")"
+ _version="$(_pkgver "$_name_ver_license")"
+ echo "--> Building LiteX Hub module $_name"
+
+ cd "$srcdir/$_name-$_version"
+ gpep517 build-wheel \
+ --wheel-dir "$srcdir/.dist" \
+ --output-fd 3 3>&1 >&2
+ done
+}
+
+package() {
+ # This package will be empty after all the subpackage split functions are
+ # executed. We use it as a meta-package to pull in all the subpackage for
+ # anyone interested in a full LiteX installation.
+ for _name_ver_license in $_modules; do
+ _name="$(_repo_name "$_name_ver_license")"
+ depends="$depends py3-litex-hub-$_name=$pkgver-r$pkgrel"
+ done
+
+ local wheel
+ mkdir -p "$pkgdir"
+
+ for wheel in "$srcdir/.dist"/*.whl; do
+ python3 -m installer -d "$pkgdir" \
+ "$wheel"
+ done
+}
+
+_subpkg() {
+ local _name
+ local _pyname
+ _name="${subpkgname#py3-litex-hub-}"
+ _pyname="${_name//-/_}"
+ amove usr/lib/python3*/site-packages/"$_pyname"
+ amove usr/lib/python3*/site-packages/"$_pyname"-*.dist-info
+
+ for _name_ver_license in $_modules; do
+ if [ "$_name" = "$(_repo_name "$_name_ver_license")" ]; then
+ license="$(_license "$_name_ver_license")"
+ pkgdesc="Python module containing verilog/data files \"$_name\" for use with LiteX"
+ fi
+ done
+}
+
+sha512sums="
+795a9983d1bc0f851d8f1116e0c580a893aefa82d2034796d14868a1ec14f2ec6d2a4f5bf649b073b8e59f903bd65642766580c52573c7064ba3fb6b972e6e07 picolibc-f165dc22f1f67e3e8bdc8edf750ff7dc596de2ff.tar.gz
+66b088bda0a629af97ad109ba06a7d0f9da7f2fb515c6de9752862c9ff77db9c23e520c5bffbb98c3ecc6fb2f800ea266f8b8359d3ad3c3ea2c970490877d2e1 fpnew-855bb82b6e85772fc290fa8b9c14fdd8f1b16be7.tar.gz
+534a1c2358c85ed7464971b6cd2f06d949ec1db918ed531a75e0b5fe6da9a1b86f9cb675f1fb400cec9c5d607ef40bc0320a6e38b71650f1d0f4111d1c41dd02 riscv-dbg-6d38d957b036231db668666255e938c91b7ce424.tar.gz
+3979457f51be8d1b079feaa07e04b02b3db425e1e02a52ae46c1fd4d304c2b513cf49d180c6018fe01e85908523712ce069de2893f3d180019264de42f6c619d trace_debugger-0aafa398e208ad79826407e3805642987287cfae.tar.gz
+926856d4ba701a14c29bf4fe7d9cec774b95fe8778bb0029e1aa361e144a99f328cf4f0d5806a7dee21a2e152a662b9aa7e9bb45b84c816280e0b6ac943979fc common_cells-790f2385c01c83022474eede55809666209216e3.tar.gz
+d7bf78ddbb00239a37e6410994bfc75c07a295f44aa0ecf968949448433a05282c7279f5d46b77a12faa77bba2cac92251cb56f972a95b22443c6045feba49db fpu_div_sqrt_mvp-83a601f97934ed5e06d737b9c80d98b08867c5fa.tar.gz
+3e1f7e96fc144b1f819ffad5262d669e3abf214c89d547344f66b325a6c60b523f03b19a68ea2166fe98733cb310255a36ef7c843b30a3227517a46ac37d7c33 0001-fix-pythondata_software_compiler_rt-python3.patch
+1df7abd5c382d8b42292c1cb6ebb09213a2fc82e408ccdcff0207d32dc99257d553ffac95b918b028a79c08a7fa7fc7bfbc396f7aa9a0b2b770abc3a93f19ed5 0002-fix-pythondata-cpu-blackparrot-python3.patch
+19e48ff191e6755eca198486b516195128b26317146fbd2e854c0f513e49341c014a8d06284a2fda31e04e03946afe135059beb7d3fa358d123e397578336851 pythondata-cpu-blackparrot-2023.12.tar.gz
+a8bc38152811f62511389e77b131cb3aa2c6b9c518bfe40406e682682489d91964099dbc50bcff546d530bafed5c8f74130c70428d4db5d1b80ee7494d8b6863 pythondata-cpu-cv32e40p-2023.12.tar.gz
+7514804727aabb8a68a3dc9950e0893ccdadeed8d49a7f2b315b737ebcac74bee594b2c1eec06256f70db980f08de930ed0bd4c4c04e030dc64e3141e2399125 pythondata-cpu-cv32e41p-2023.12.tar.gz
+b594c60b6ff761f716878eb8652db35e54bee0b2c49424fd06fd0df029a2b3a51f544b4508252b2ac3f7f0e8b10e12f6d270e8d77529f3667d3988305bc94f51 pythondata-cpu-cva5-2023.12.tar.gz
+fdc11249059857edd72a321c274a167e8b70848916c8ba54d271a564eb8af507671cee1dd37aa25534c437cbf09c41c5667c82f9440cc74c3a193dea987fe7ed pythondata-cpu-cva6-2023.12.tar.gz
+90254ba5506663d37d18fb099cbd9de91703be7db4972346c39bd828ede109b745904d748a47717a022a2d5a86b71400b0741d9acd7d30dc569736b3976833c7 pythondata-cpu-ibex-2023.12.tar.gz
+e37da7c510485160f9686867a301ea182145ce1d6c3f53c4b69fa47ccf040c8bf6696012672d1237a469280010f1f11d73eb5dbe1d6a0adf6318d6c98fc93e69 pythondata-cpu-lm32-2020.04.tar.gz
+61b4576f0de33c2a86ff7ade4e10d7c2e2b65771148468710448206d2f022ea3a89a467e99dfd467843fb15d577b0e2e792c4557120d41a9a71e3f1e313b54f3 pythondata-cpu-marocchino-2023.12.tar.gz
+c576b9582d9f51de90f398a0ec9011e9423524f401ddad3c54a658adc0b1f19899187586ca6d77c17a62cfbb5cb632a3ff41b8f5ce89868e19b9f17740d6a368 pythondata-cpu-microwatt-2023.12.tar.gz
+b19fd16fc2d24579d08b854b9d4a9dbadf5fcee7725f5ba4cc705bbf1ddc8b2951ee6dc2b041cb4550a9ab1618198f2a6e29b932543d380a281aa9faf3c93477 pythondata-cpu-minerva-2023.12.tar.gz
+fc7e4fdba394831bd1dce9a47a33cf91f051b04108af9dca8dc57f1a9221d53c16692ef4117a7cca485fdc9684848e31ca9311be73088b8c1108e25fed6e9df4 pythondata-cpu-mor1kx-2020.04.tar.gz
+0595dcb4d66ba5f7b865643660cd128efc12b966d4cc336e879239ae73096542063c0886982fcd6afc3df7d0ac6cf9e9bf0b51dae848abe0544093a086ca5157 pythondata-cpu-naxriscv-2023.12.tar.gz
+2087236196f9797d4b5746a30634e5d4a535b065c780b85102d7d97b858e30d615d5c2868b61ac8fbb71e671bf2b414eabf2ad6b8a39b34f64f4bde0c907cfb1 pythondata-cpu-picorv32-2020.04.tar.gz
+7ae6d8b2cb42f0c5c0093dbb35e8f1eb863b1fd49a4cdaa6ed3ff1b1a2e3ae1ac14a8fe13ed6826f9ada72740b2151075a14eb40df4756c2dd6f02712de91e23 pythondata-cpu-rocket-2020.04.tar.gz
+187a78c150a63399131ac4815d2670773917ca8e1de6adec9c7fdbdbb2d78900cc72bd1a103349ed318b1fb7ee17a9e6580db31dc03acd31d68e0aa5e56f378b pythondata-cpu-serv-2020.04.tar.gz
+9f4a0ca2cabfe7cefd5b1be1e40b6f02f2fb5edb9d70099d6d95530f5e4476574a3901340dcac606f7a1a31a2ac29764227f01b93f3e912b299718751746078b pythondata-cpu-vexriscv-2020.04.tar.gz
+e01d0593e4d515f6b38a4373f57f03290bcbd70e8e9117b995055461869db03a277d0ad4faffef0f7775acff48e7ee40666968d6aabf2d926cdeff3a190b5a29 pythondata-cpu-vexriscv_smp-2023.12.tar.gz
+66ff1bd80665c6beaf2b8b069698461cf836317a3de1fd06f5959b660e9b2ffefe057c86813c9ca2749ff381ab50a6519f9717eece117b569fb29b84d07163ff pythondata-misc-tapcfg-2020.04.tar.gz
+3e70d5e5941654588a353b866224b4e8b14324d4e771c2d43918ed4749e9c14d1e9229d6fa2f62fb7b58b2964f5d3f5d2f0fee6b14fd3862cfa211a3b93b89bb pythondata-software-compiler_rt-2020.04.tar.gz
+953968a0ba0df4207c04bec43de3ad4b599b0d63182c8ae8da4f254768aacf4a8a8e0a935cdc2aebc23c99494e1d3736b78f1d7413c1f94da3b016036a7f4b0a pythondata-software-picolibc-2023.12.tar.gz
+b9cb43acd169e8e05560ee5d90326a95426e26f8f837c21d3965770f8ed5fdb4352729d4f8320d8070e57fe36e3276d3b04df90498e874d6a6c3fab61fa85829 valentyusb-2023.12.tar.gz
+"
diff --git a/testing/py3-litex/0001-litedram-phy-lpddr-fix-use-of-invalid-escape-sequenc.patch b/testing/py3-litex/0001-litedram-phy-lpddr-fix-use-of-invalid-escape-sequenc.patch
new file mode 100644
index 00000000000..aeba3b5e9b9
--- /dev/null
+++ b/testing/py3-litex/0001-litedram-phy-lpddr-fix-use-of-invalid-escape-sequenc.patch
@@ -0,0 +1,105 @@
+From 37e1f346e5a47dff74c0535c3b3cacd8f7b144dd Mon Sep 17 00:00:00 2001
+From: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+Date: Thu, 11 Jan 2024 09:46:43 +0100
+Subject: [PATCH] litedram/phy/lpddr*: fix use of invalid escape sequence
+
+This fixes multiple instances of:
+
+litedram/phy/lpddr4/commands.py:209
+ litedram-2023.12/litedram/phy/lpddr4/commands.py:209: DeprecationWarning: invalid escape sequence '\d'
+ "BA(\d+)": lambda i: self.dfi.bank[i],
+---
+ litedram/phy/lpddr4/commands.py | 24 ++++++++++----------
+ litedram/phy/lpddr5/commands.py | 40 ++++++++++++++++-----------------
+ 2 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/litedram/phy/lpddr4/commands.py b/litedram/phy/lpddr4/commands.py
+index 737e318..90ade80 100644
+--- a/litedram-2023.12/litedram/phy/lpddr4/commands.py
++++ b/litedram-2023.12/litedram/phy/lpddr4/commands.py
+@@ -199,18 +199,18 @@ class Command(Module):
+ assert len(self.dfi.address) >= 17, "At least 17 DFI addressbits needed for row address"
+ mr_address = self.dfi.bank if is_mrw else self.dfi.address
+ rules = {
+- "H": lambda: 1, # high
+- "L": lambda: 0, # low
+- "V": lambda: 0, # defined logic
+- "X": lambda: 0, # don't care
+- "BL": lambda: 0, # on-the-fly burst length, not using
+- "AP": lambda: self.dfi.address[10], # auto precharge
+- "AB": lambda: self.dfi.address[10], # all banks
+- "BA(\d+)": lambda i: self.dfi.bank[i],
+- "R(\d+)": lambda i: self.dfi.address[i], # row
+- "C(\d+)": lambda i: self.dfi.address[i], # column
+- "MA(\d+)": lambda i: mr_address[i], # mode register address
+- "OP(\d+)": lambda i: self.dfi.address[i], # mode register value, or operand for MPC
++ "H": lambda: 1, # high
++ "L": lambda: 0, # low
++ "V": lambda: 0, # defined logic
++ "X": lambda: 0, # don't care
++ "BL": lambda: 0, # on-the-fly burst length, not using
++ "AP": lambda: self.dfi.address[10], # auto precharge
++ "AB": lambda: self.dfi.address[10], # all banks
++ "BA(\\d+)": lambda i: self.dfi.bank[i],
++ "R(\\d+)": lambda i: self.dfi.address[i], # row
++ "C(\\d+)": lambda i: self.dfi.address[i], # column
++ "MA(\\d+)": lambda i: mr_address[i], # mode register address
++ "OP(\\d+)": lambda i: self.dfi.address[i], # mode register value, or operand for MPC
+ }
+ for pattern, value in rules.items():
+ m = re.match(pattern, bit)
+diff --git a/litedram/phy/lpddr5/commands.py b/litedram/phy/lpddr5/commands.py
+index 9fd13ee..52733ec 100644
+--- a/litedram-2023.12/litedram/phy/lpddr5/commands.py
++++ b/litedram-2023.12/litedram/phy/lpddr5/commands.py
+@@ -275,27 +275,27 @@ class Command(Module):
+ op = mpc_op if is_mpc else self.dfi.address
+
+ rules = {
+- "H": lambda: 1, # high
+- "L": lambda: 0, # low
+- "V": lambda: 0, # defined logic
+- "X": lambda: 0, # don't care
+- "AB": lambda: self.dfi.address[10], # all banks
+- "AP": lambda: self.dfi.address[10], # auto precharge
+- "RFM": lambda: 0, # TODO: 1=RFM, 0=REF (Refresh Managemenent, only if r/o MR[27][0]=1, else always REF)
+- "SB(\d+)": lambda i: 0, # sub-bank selection related to RFM
+- "WS_WR": lambda: self.wck_sync == WCKSyncType.WR, # Write WCK2CK SYNC
+- "WS_RD": lambda: self.wck_sync == WCKSyncType.RD, # Read WCK2CK SYNC
+- "WS_FS": lambda: self.wck_sync == WCKSyncType.FS, # FAST SYNC
+- "DC(\d+)": lambda i: 0, # Data Copy, unimplemented
+- "WRX": lambda: 0, # Write X function, unimplemented
+- "WXSA": lambda: 0, # Write X function, unimplemented
+- "WXSB": lambda: 0, # Write X function, unimplemented
+- "BA(\d+)": lambda i: self.dfi.bank[i], # only BA0-2 is used, in BG/B16 modes we always refresh banks (x, x+8)
+- "R(\d+)": lambda i: self.dfi.address[i], # row
++ "H": lambda: 1, # high
++ "L": lambda: 0, # low
++ "V": lambda: 0, # defined logic
++ "X": lambda: 0, # don't care
++ "AB": lambda: self.dfi.address[10], # all banks
++ "AP": lambda: self.dfi.address[10], # auto precharge
++ "RFM": lambda: 0, # TODO: 1=RFM, 0=REF (Refresh Managemenent, only if r/o MR[27][0]=1, else always REF)
++ "SB(\\d+)": lambda i: 0, # sub-bank selection related to RFM
++ "WS_WR": lambda: self.wck_sync == WCKSyncType.WR, # Write WCK2CK SYNC
++ "WS_RD": lambda: self.wck_sync == WCKSyncType.RD, # Read WCK2CK SYNC
++ "WS_FS": lambda: self.wck_sync == WCKSyncType.FS, # FAST SYNC
++ "DC(\\d+)": lambda i: 0, # Data Copy, unimplemented
++ "WRX": lambda: 0, # Write X function, unimplemented
++ "WXSA": lambda: 0, # Write X function, unimplemented
++ "WXSB": lambda: 0, # Write X function, unimplemented
++ "BA(\\d+)": lambda i: self.dfi.bank[i], # only BA0-2 is used, in BG/B16 modes we always refresh banks (x, x+8)
++ "R(\\d+)": lambda i: self.dfi.address[i], # row
+ # LPDDR5 specs split the regular column address into C[5:0] "column address" and B[3:0] "burst address"
+- "C(\d+)": lambda i: self.dfi.address[i + 4],
+- "MA(\d+)": lambda i: mr_address[i], # mode register address
+- "OP(\d+)": lambda i: op[i], # mode register value, or operand for MPC
++ "C(\\d+)": lambda i: self.dfi.address[i + 4],
++ "MA(\\d+)": lambda i: mr_address[i], # mode register address
++ "OP(\\d+)": lambda i: op[i], # mode register value, or operand for MPC
+ }
+
+ for pattern, value in rules.items():
+--
+2.43.0
+
diff --git a/testing/py3-litex/0002-litex-fix-invalid-escape-sequence.patch b/testing/py3-litex/0002-litex-fix-invalid-escape-sequence.patch
new file mode 100644
index 00000000000..aa6c4f7121b
--- /dev/null
+++ b/testing/py3-litex/0002-litex-fix-invalid-escape-sequence.patch
@@ -0,0 +1,16 @@
+This fixes:
+
+ test/test_cpu.py:15
+ /home/maribu/Repos/software/aports/testing/py3-litex/src/litex-2023.12/test/test_cpu.py:15: DeprecationWarning: invalid escape sequence '\['
+ litex_prompt = [b'\033\[[0-9;]+mlitex\033\[[0-9;]+m>']
+--- a/litex-2023.12/test/test_cpu.py 2024-01-11 15:12:24.107360027 +0100
++++ b/litex-2023.12/test/test_cpu.py 2024-01-11 15:13:21.403348076 +0100
+@@ -12,7 +12,7 @@ import os
+ class TestCPU(unittest.TestCase):
+ def boot_test(self, cpu_type, jobs, cpu_variant="standard"):
+ cmd = f'litex_sim --cpu-type={cpu_type} --cpu-variant={cpu_variant} --opt-level=O0 --jobs {jobs}'
+- litex_prompt = [b'\033\[[0-9;]+mlitex\033\[[0-9;]+m>']
++ litex_prompt = [b'\033\\[[0-9;]+mlitex\033\\[[0-9;]+m>']
+ is_success = True
+ with open("/tmp/test_boot_log", "wb") as result_file:
+ p = pexpect.spawn(cmd, timeout=None, logfile=result_file)
diff --git a/testing/py3-litex/0003-litepcie-fix-package-absent-from-packages-configuration.patch b/testing/py3-litex/0003-litepcie-fix-package-absent-from-packages-configuration.patch
new file mode 100644
index 00000000000..ea889c69412
--- /dev/null
+++ b/testing/py3-litex/0003-litepcie-fix-package-absent-from-packages-configuration.patch
@@ -0,0 +1,23 @@
+This fixes multiple instances of:
+
+ _Warning: Package '<data_pkg_name>' is absent from the packages configuration.
+--- a/litepcie-2023.12/setup.py 2024-04-16 22:43:46.834348505 +0200
++++ b/litepcie-2023.12/setup.py 2024-04-16 22:44:09.857501663 +0200
+@@ -1,7 +1,7 @@
+ #!/usr/bin/env python3
+
+ from setuptools import setup
+-from setuptools import find_packages
++from setuptools import find_namespace_packages
+
+
+ with open("README.md", "r", encoding="utf-8") as fp:
+@@ -30,7 +30,7 @@ setup(
+ "requests"
+ ]
+ },
+- packages = find_packages(exclude=("test*", "sim*", "doc*", "examples*")),
++ packages = find_namespace_packages(exclude=("test*", "sim*", "doc*", "examples*")),
+ include_package_data = True,
+ keywords = "HDL ASIC FPGA hardware design",
+ classifiers = [
diff --git a/testing/py3-litex/APKBUILD b/testing/py3-litex/APKBUILD
new file mode 100644
index 00000000000..fab2cce1e38
--- /dev/null
+++ b/testing/py3-litex/APKBUILD
@@ -0,0 +1,249 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=py3-litex
+_pkgname=litex
+pkgver=2023.12
+pkgrel=1
+pkgdesc="infrastructure to create FPGA Cores/SoCs and full FPGA based systems"
+url="https://github.com/enjoy-digital/litex"
+license="BSD-2-Clause"
+# ppc64le: verilator verilator-dev
+# s390x: verilator verilator-dev, picolibc-riscv-none-elf
+# armv7: verilator verilator-dev, picolibc-riscv-none-elf
+# armhf: verilator verilator-dev, picolibc-riscv-none-elf
+# riscv64: verilator verilator-dev, picolibc-riscv-none-elf
+# aarch64: verilator verilator-dev
+# x86: unit test failures
+arch="all !ppc64le !s390x !armv7 !armhf !riscv64 !aarch64 !x86"
+depends="
+ py3-migen
+ py3-packaging
+ py3-pyserial
+ py3-requests
+ py3-yaml
+ python3
+ "
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-wheel
+ py3-installer
+ "
+checkdepends="
+ bash
+ json-c-dev
+ libevent-dev
+ linux-headers
+ meson
+ picolibc-riscv-none-elf
+ py3-litex-hub-modules
+ py3-pexpect
+ py3-pytest
+ verilator
+ verilator-dev
+ zlib-dev
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/enjoy-digital/litex/archive/refs/tags/$pkgver.tar.gz
+ litescope-$pkgver.tar.gz::https://github.com/enjoy-digital/litescope/archive/refs/tags/$pkgver.tar.gz
+ litex-boards-$pkgver.tar.gz::https://github.com/litex-hub/litex-boards/archive/refs/tags/$pkgver.tar.gz
+
+ 0001-litedram-phy-lpddr-fix-use-of-invalid-escape-sequenc.patch
+ 0002-litex-fix-invalid-escape-sequence.patch
+ 0003-litepcie-fix-package-absent-from-packages-configuration.patch
+ "
+builddir="$srcdir"
+subpackages="
+ $pkgname-pyc
+ $pkgname-full
+ py3-litescope
+ py3-litex-boards
+ "
+
+_cores_enjoy_digital="
+ dram:DRAM
+ eth:Ethernet
+ iclink:Inter-Chip-Communication
+ jesd204b:JESD204B
+ pcie:PCIe
+ sata:SATA
+ sdcard:SDCard
+ "
+_cores_litex_hub="
+ spi:SPI
+ "
+_cores="$_cores_enjoy_digital $_cores_litex_hub"
+
+for _core_name in $_cores_enjoy_digital; do
+ _core=${_core_name%:*}
+ subpackages="$subpackages py3-lite$_core:_subpkg_core"
+ source="$source py3-lite$_core-$pkgver.tar.gz::https://github.com/enjoy-digital/lite$_core/archive/refs/tags/$pkgver.tar.gz"
+done
+
+for _core_name in $_cores_litex_hub; do
+ _core=${_core_name%:*}
+ subpackages="$subpackages py3-lite$_core:_subpkg_core"
+ source="$source py3-lite$_core-$pkgver.tar.gz::https://github.com/litex-hub/lite$_core/archive/refs/tags/$pkgver.tar.gz"
+done
+
+prepare() {
+ default_prepare
+
+ # remove and rebuild x86_64 glibc binaries used in litesata test
+ cd "$srcdir/litesata-$pkgver/test/model"
+ rm crc scrambler
+ gcc -Os -o scrambler scrambler.c
+ gcc -Os -o crc crc.c
+}
+
+build() {
+ echo "--> Building LiteX"
+ cd "$srcdir/litex-$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+
+ echo "--> Building LiteX-Boards"
+ cd "$srcdir/litex-boards-$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+
+ echo "--> Building LiteScope"
+ cd "$srcdir/litescope-$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+
+ for _core_name in $_cores; do
+ _core=$(echo "$_core_name" | cut -d : -f 1)
+ _name=$(echo "$_core_name" | cut -d : -f 2)
+ echo "--> Building LiteX core $_name"
+
+ cd "$srcdir/lite$_core-$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+ done
+}
+
+check() {
+ cd "$srcdir/litex-$pkgver"
+ python3 -m venv --clear --without-pip --system-site-packages "$srcdir"/testenv
+ "$srcdir"/testenv/bin/python3 -m installer dist/*.whl
+ "$srcdir"/testenv/bin/python3 -m installer "$srcdir/litex-boards-$pkgver"/dist/*.whl
+ "$srcdir"/testenv/bin/python3 -m installer "$srcdir/litescope-$pkgver"/dist/*.whl
+
+ for _core_name in $_cores; do
+ _core=$(echo "$_core_name" | cut -d : -f 1)
+ "$srcdir"/testenv/bin/python3 -m installer "$srcdir/lite$_core-$pkgver"/dist/*.whl
+ done
+
+ echo "--> Testing LiteX"
+ # CPU test fails with "%Error: Verilator internal fault, sorry. Suggest trying --debug --gdbbt"
+ env PATH="$srcdir/testenv/bin:$PATH" "$srcdir"/testenv/bin/python3 -m pytest -v \
+ --deselect test/test_cpu.py::TestCPU::test_cpu
+
+ for _core_name in $_cores; do
+ _core=$(echo "$_core_name" | cut -d : -f 1)
+ _name=$(echo "$_core_name" | cut -d : -f 2)
+ echo "--> Testing LiteX core $_name"
+ cd "$srcdir/lite$_core-$pkgver"
+
+ # running tests now, but deselecting two of the slowest tests
+ # (when unlucky, the run for longer than the 12 minute timeout and
+ # fail on the builder).
+ env PATH="$srcdir/testenv/bin:$PATH" "$srcdir/testenv/bin/python3" -m pytest -v \
+ --deselect test/test_lpddr4.py::VerilatorLPDDR4Tests::test_lpddr4_sim_fast \
+ --deselect test/test_lpddr4.py::VerilatorLPDDR4Tests::test_lpddr4_sim_x2rate_no_cache \
+ #
+
+ done
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ "$srcdir/litex-$pkgver"/dist/*.whl
+
+ for _core_name in $_cores; do
+ _core=$(echo "$_core_name" | cut -d : -f 1)
+ python3 -m installer -d "$pkgdir" \
+ "$srcdir/lite$_core-$pkgver"/dist/*.whl
+ done
+
+ python3 -m installer -d "$pkgdir" \
+ "$srcdir/litescope-$pkgver"/dist/*.whl
+
+ python3 -m installer -d "$pkgdir" \
+ "$srcdir/litex-boards-$pkgver"/dist/*.whl
+}
+
+_subpkg_core() {
+ _core="${subpkgname#py3-lite}"
+ for _core_name in $_cores; do
+ if [ "$_core" = "$(echo "$_core_name" | cut -d : -f 1)" ]; then
+ _name=$(echo "$_core_name" | cut -d : -f 2)
+ fi
+ done
+ pkgdesc="Small footprint and configurable $_name core"
+ depends="$depends py3-litex"
+
+ amove usr/lib/python3*/site-packages/"lite$_core"
+ amove usr/lib/python3*/site-packages/"lite$_core"-*.dist-info
+}
+
+litescope() {
+ pkgdesc="Small footprint and configurable embedded FPGA logic analyzer"
+ depends="$depends py3-litex"
+ amove usr/lib/python3*/site-packages/litescope
+ amove usr/lib/python3*/site-packages/litescope-*.dist-info
+}
+
+boards() {
+ pkgdesc="LiteX boards files"
+ depends="$depends py3-litex"
+ amove usr/lib/python3*/site-packages/litex_boards
+ amove usr/lib/python3*/site-packages/litex_boards-*.dist-info
+}
+
+full() {
+ pkgdesc="Meta package to install full LiteX framework"
+ depends="
+ bash
+ json-c-dev
+ libevent-dev
+ linux-headers
+ meson
+ picolibc-riscv-none-elf
+ py3-litescope
+ py3-litex
+ py3-litex-boards
+ py3-litex-hub-modules
+ verilator
+ verilator-dev
+ zlib-dev
+ "
+ for _core_name in $_cores; do
+ _core=$(echo "$_core_name" | cut -d : -f 1)
+ depends="$depends py3-lite$_core"
+ done
+
+ mkdir -p "$subpkgdir"
+}
+
+sha512sums="
+6fa3888d6f80214ef8a2e1af439ac652794deba8a0da97cc7d7bc0f6fd5e45898966be22c117629d91e8df6ad7dbd383d7a3ae50567f0eeb7f1cc98d36b31e08 py3-litex-2023.12.tar.gz
+4aaa452fc6dbb2edbc9c61c7a9c66d70763dd2a6a3b12eac1a9185b117f31e94d6d532462971cb2082002dc8f4d95c6f4bb1f07d6e692fa967ebdfa3aaf1a1d3 litescope-2023.12.tar.gz
+f41ac30e1b76bc06341827c1600c1e072ce457c03b9170fe34d4d1c5b9c2e7c8851615139b9d0f4107b33aee26bb20b3918ec8111115b35b0d451757e11234b4 litex-boards-2023.12.tar.gz
+b975f8d3e38f4b64e775dd026e173002007f789d9ec959442b3ed9fc00d37ba3a4891af15c219e806deda272edda37e05aa4a241e7db0fe8c36297dafa55b64e 0001-litedram-phy-lpddr-fix-use-of-invalid-escape-sequenc.patch
+faae763691fa50db3f9358b5abd64e23bc2e8974b125b2df82c58aca778900253bbab20673412c57174bf7767368fa1e706fde5b54c281ff212d821859e6a076 0002-litex-fix-invalid-escape-sequence.patch
+63ccc3ad64702325060a91e6df620a68d76b418d03dce7d357607fa479651ff1bc70b0219f8c61185ebf91102bb2b3a7eac110bd260b76a07a093f3dbfd15f87 0003-litepcie-fix-package-absent-from-packages-configuration.patch
+5137b7db6db5c33223c0cf0c51dd3eb724f83a7050dfba8e68d4aeb9514095ac1afd0105645a9381b2f68751d17e95276ffe464cf01e1fa44e078a7092e2ea07 py3-litedram-2023.12.tar.gz
+454b51651ffe863f6f81b8a010805550c197845f719ad5d7e67454c4ce9a42b290adb92c9aab355dbdbc53484bf436baf2a9d5921c3d7053ac6cbe0ce8c56161 py3-liteeth-2023.12.tar.gz
+fc019f3def7790aa9822762c63d5578555af30a731da56976e7ec1b91591d833dadca91f9cc4ffd3a457ad76484b13a0e4f67b9f66a90d78b6f3106b34617720 py3-liteiclink-2023.12.tar.gz
+f6e4bf357e24b898e08079a119912ff58b48e754544313611914dba1e13dd921e5ee919a5559c4b8f77c9768203b396fbc49ac5019a488a797ebcedc24754409 py3-litejesd204b-2023.12.tar.gz
+8155a87e320345741b4a7f187651c15a704d65ed0c4e95fe5994c913632b20ae56ab8f36968a606658e361c9a8968447e31b3c00ff34f2bd66bd89dc2001c09f py3-litepcie-2023.12.tar.gz
+ab62eb5c183e4559ea352c561b4c9b985ffc917c686f6dac121ec64558a873a5225e591c44daf473cbb56fab719703e89bbcd8710ae94b9e5522f7500a495ee1 py3-litesata-2023.12.tar.gz
+755f253a0c0e720c16970f515c1b4aa82f3f4401f9cf2301803a514942cf1b4211c43aa602910beb7181bb53f435cb9c41cb96d54423e110e3914f4512b559c1 py3-litesdcard-2023.12.tar.gz
+19946e9e4a8f8085f5644e8b51fb588332598fdede7e5f9acb30160a794fa8768f4b9a4ba0cc4532e995debbe3059e32f72029722ce9624ee3531bd65543e58b py3-litespi-2023.12.tar.gz
+"
diff --git a/testing/py3-livestream/APKBUILD b/testing/py3-livestream/APKBUILD
index a7f1bab4b35..2347c103842 100644
--- a/testing/py3-livestream/APKBUILD
+++ b/testing/py3-livestream/APKBUILD
@@ -2,31 +2,34 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-livestream
_pkgname=PyLivestream
-pkgver=1.5.1
+pkgver=2.0.0
pkgrel=2
pkgdesc="Simple cross-platform FFmpeg-based live streaming to YouTube, Periscope, Facebook Live and more"
url="https://github.com/scivision/PyLivestream"
arch="noarch"
license="AGPL-3.0-or-later"
-depends="ffmpeg"
-makedepends="python3-dev py3-setuptools"
+depends="ffmpeg ffplay"
+makedepends="python3-dev py3-gpep517 py3-installer py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-timeout xvfb-run"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/scivision/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
build() {
- cd "$builddir"
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 1
}
check() {
- cd "$builddir"
- python3 setup.py check
+ PYTHONPATH=src xvfb-run -a python3 -m pytest
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- install -D -m0644 stream.ini "$pkgdir"/etc/$_pkgname/stream.ini
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="e31f3e66f233935a4843ccaf3569d6b0439f5be21b4e9ddf94b5e87315503ce6b00d64739dd3fa86a8e8bcb011f1523e62ac0aec2ac9dc8628502f14c09e39db py3-livestream-1.5.1.tar.gz"
+sha512sums="
+98d6343b41354625d618b9e3c91da180c72c44526e1c62e8eb30f3a7cfa902849f33f7eca3d80ccb9f8eca7f1675e5397fefa4239310100c5f21b933e80a0825 py3-livestream-2.0.0.tar.gz
+"
diff --git a/testing/py3-lmdb/APKBUILD b/testing/py3-lmdb/APKBUILD
deleted file mode 100644
index 1d94b1e996b..00000000000
--- a/testing/py3-lmdb/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-lmdb
-pkgver=0.98
-pkgrel=0
-pkgdesc="Universal Python binding for the LMDB 'Lightning' Database"
-url="https://github.com/jnwatson/py-lmdb/"
-arch="all"
-license="OLDAP-2.8"
-depends="python3"
-makedepends="py3-setuptools python3-dev lmdb-dev"
-checkdepends="py3-pytest"
-source="https://github.com/jnwatson/py-lmdb/archive/py-lmdb_$pkgver.tar.gz"
-builddir="$srcdir/py-lmdb-py-lmdb_$pkgver"
-
-case "$CARCH" in
- x86) _arch="i686" ;;
- arm*) _arch="armv8l" ;;
- *) _arch="$CARCH" ;;
-esac
-
-build() {
- LMDB_FORCE_SYSTEM=1 python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib.linux-$_arch-3.8" pytest
-}
-
-package() {
- LMDB_FORCE_SYSTEM=1 python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b3e8ac589d402a14f1ddbd45c51c888660d00336d9a3ae1cee022f45441c2a79311f5e51c4c12aa2f78c3ae00b3ee200a131950e18d15a782bb50ca34dd62c65 py-lmdb_0.98.tar.gz"
diff --git a/testing/py3-locket/APKBUILD b/testing/py3-locket/APKBUILD
deleted file mode 100644
index 62694c5207f..00000000000
--- a/testing/py3-locket/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-locket
-pkgver=0.2.0
-pkgrel=0
-pkgdesc="File-based locks for Python"
-url="https://github.com/mwilliamson/locket.py"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/l/locket/locket-$pkgver.tar.gz"
-options="!check" # Release tarball doesn't contain the tests
-builddir="$srcdir/locket-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ed9bb25f3fcaa70386217716db5612bf31a923c669cbdb8e871de6df4c0c42bf3309604a1aac804c0f334aed8c88b0ba113d8d265054c0e87793c7b53f729ff9 locket-0.2.0.tar.gz"
diff --git a/testing/py3-log-symbols/APKBUILD b/testing/py3-log-symbols/APKBUILD
new file mode 100644
index 00000000000..4e254002550
--- /dev/null
+++ b/testing/py3-log-symbols/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-log-symbols
+_pyname=log_symbols
+pkgver=0.0.14
+pkgrel=4
+pkgdesc="Colored symbols for Python log levels"
+url="https://github.com/manrajgrover/py-log-symbols"
+arch="noarch"
+license="MIT"
+depends="python3 py3-colorama"
+makedepends="py3-setuptools"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://pypi.python.org/packages/source/l/log-symbols/log_symbols-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0e66e3c13da6de5e9f306c23885e49e0d68e252dec7834020a4bb4a367ab03b295b2b23c102fc3378ed7128ed97623649050821dacc6692992892c5f79b96d8a log_symbols-0.0.14.tar.gz
+"
diff --git a/testing/py3-logbook/APKBUILD b/testing/py3-logbook/APKBUILD
deleted file mode 100644
index d2819d5ff35..00000000000
--- a/testing/py3-logbook/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=py3-logbook
-pkgver=1.5.3
-pkgrel=1
-pkgdesc="Logging replacement for Python"
-url="https://logbook.readthedocs.io/en/stable/"
-arch="all"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools python3-dev cython"
-checkdepends="py3-pytest"
-source="$pkgname-$pkgver.tar.gz::https://github.com/getlogbook/logbook/archive/$pkgver.tar.gz"
-
-builddir="$srcdir"/logbook-$pkgver
-
-build() {
- cython logbook/_speedups.pyx
- python3 setup.py build
-}
-
-check() {
- rm -f tests/test_file_handler.py
- py.test-3 tests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c9068324f12a189ced98e2c02753489847fa533ce3a3af07b62c73e9959c2e014d47515d47e756d031639cb220a2c4a9a380cba4cb3ea1b190c50106decba686 py3-logbook-1.5.3.tar.gz"
diff --git a/testing/py3-lsp-black/APKBUILD b/testing/py3-lsp-black/APKBUILD
new file mode 100644
index 00000000000..a77e9af3dfb
--- /dev/null
+++ b/testing/py3-lsp-black/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=py3-lsp-black
+_pypi_name=python-lsp-black
+pkgver=2.0.0
+pkgrel=1
+pkgdesc="Plugin for black support in py3-lsp-server"
+url="https://github.com/python-lsp/python-lsp-black"
+arch="noarch !armhf !s390x" # armhf, s390x: no py3-lsp-server
+license="MIT"
+depends="py3-lsp-server black"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pypi_name:0:1}/$_pypi_name/$_pypi_name-$pkgver.tar.gz"
+builddir="$srcdir"/$_pypi_name-$pkgver
+
+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
+ # See: https://github.com/python-lsp/python-lsp-black/issues/55
+ .testenv/bin/python3 -m pytest -k "not (test_pylsp_format or syntax_error or test_load_config_defaults or test_load_config_with_skip_options)"
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+595ccb0e5b99a827c3961d63f0c9ee511e5c156372d19760b048f0e1f3af45e889724397109722174a75ef46f71a1b200a8849b6939c517ec2003aaab87f032f python-lsp-black-2.0.0.tar.gz
+"
diff --git a/testing/py3-lsp-mypy/APKBUILD b/testing/py3-lsp-mypy/APKBUILD
new file mode 100644
index 00000000000..84e73cf58b0
--- /dev/null
+++ b/testing/py3-lsp-mypy/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=py3-lsp-mypy
+_pypi_name=pylsp-mypy
+pkgver=0.6.8
+pkgrel=1
+pkgdesc="MyPy plugin for the Python LSP Server"
+url="https://github.com/python-lsp/pylsp-mypy"
+# armhf, s390x: no py3-lsp-server
+arch="noarch !armhf !s390x"
+license="MIT"
+depends="
+ py3-lsp-server
+ py3-mypy
+ "
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pypi_name:0:1}/$_pypi_name/$_pypi_name-$pkgver.tar.gz"
+builddir="$srcdir"/$_pypi_name-$pkgver
+
+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="
+c270ff6871c5e5d5dfb2d0b3e0f3ee22133ff0ef90c0668f2585cecdfc83664eb47b08c6169e0e05ea7f38e61de895fad6c06d435d9bd0323b4a3ea74dd5bc7c pylsp-mypy-0.6.8.tar.gz
+"
diff --git a/testing/py3-lsprotocol/APKBUILD b/testing/py3-lsprotocol/APKBUILD
new file mode 100644
index 00000000000..65b9c22051b
--- /dev/null
+++ b/testing/py3-lsprotocol/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer:
+pkgname=py3-lsprotocol
+pkgver=2023.0.1
+pkgrel=1
+pkgdesc="Python implementation of the Language Server Protocol"
+url="https://github.com/microsoft/lsprotocol"
+arch="noarch"
+license="MIT"
+depends="
+ py3-attrs
+ py3-cattrs
+ "
+makedepends="
+ py3-flit-core
+ py3-gpep517
+ "
+checkdepends="
+ py3-jsonschema
+ py3-pyhamcrest
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/microsoft/lsprotocol/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/lsprotocol-$pkgver"
+
+build() {
+ cd packages/python
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest tests/python
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ packages/python/.dist/*.whl
+}
+
+sha512sums="
+e929125f259240feb757c55a62ca4ee021e9727884dc5b7465894aa5d5a3cf13235f9b863af862ae1f1c04f1eaa3de6356cf7abecc6efa1979facaecbfb45e64 py3-lsprotocol-2023.0.1.tar.gz
+"
diff --git a/testing/py3-luhn/APKBUILD b/testing/py3-luhn/APKBUILD
index 0189b3f086d..c1aa3837cf5 100644
--- a/testing/py3-luhn/APKBUILD
+++ b/testing/py3-luhn/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-luhn
_pkgname=luhn
pkgver=0.2.0
-pkgrel=3
+pkgrel=8
pkgdesc="Generate and verify Luhn check digits"
url="https://github.com/mmcloughlin/luhn"
arch="noarch"
@@ -11,6 +11,7 @@ license="MIT"
depends="py3-amqp"
makedepends="py3-setuptools"
checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
source="$_pkgname-$pkgver.tar.gz::https://github.com/mmcloughlin/luhn/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -26,7 +27,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="43732155358352fa25ca4c25e59a40efd98250e4296f75cdd1d2050a79a1ac26110f024a585159a626784dbfd4b6def3c85b2594c6ecf4e8b74a9cd165870c78 luhn-0.2.0.tar.gz"
diff --git a/testing/py3-lunr/APKBUILD b/testing/py3-lunr/APKBUILD
new file mode 100644
index 00000000000..3a7fdf85c34
--- /dev/null
+++ b/testing/py3-lunr/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=py3-lunr
+pkgver=0.6.2
+pkgrel=3
+pkgdesc="python implementation of Lunr.js"
+url="https://github.com/yeraydiazdiaz/lunr.py"
+arch="noarch"
+license="MIT"
+depends="python3 py3-future"
+makedepends="py3-setuptools"
+checkdepends="py3-coverage py3-mock py3-pytest py3-pytest-timeout py3-tox"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/l/lunr/lunr-$pkgver.tar.gz"
+builddir="$srcdir/lunr-$pkgver"
+options="!check" # No tests yet.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+6b7c29d30a8a64b71246ff884e473cceeef5e00e382ad54474e7855dcafcf3817dcc14c29c1bb2eb3371f1cb5ab1485a7840dbe41d345a4503294052aa9cd644 lunr-0.6.2.tar.gz
+"
diff --git a/testing/py3-ly/APKBUILD b/testing/py3-ly/APKBUILD
new file mode 100644
index 00000000000..08f3f7cb48b
--- /dev/null
+++ b/testing/py3-ly/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Krystian Chachuła <krystian@krystianch.com>
+pkgname=py3-ly
+_pkgname=python-ly
+pkgver=0.9.8
+pkgrel=1
+pkgdesc="Tool and library for manipulating LilyPond files"
+url="https://github.com/frescobaldi/python-ly"
+arch="noarch"
+license="GPL-2.0-or-later"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-sphinx"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/frescobaldi/python-ly/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # tests are broken
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+
+ sphinx-build -b man doc doc/build/man/
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+
+ mkdir -p "$pkgdir"/usr/share/man/man1/
+
+ install -m 644 doc/build/man/ly-server.1 doc/build/man/ly.1 \
+ "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+28cf9a828a79ad473cb0429c3dd186d9028036bb6ab750aaf1d1299d1e4ac476262a4fcbcce0846fa4c851966d0e2dc9f263a7667613a5a2841ce0dd4c5b729a python-ly-0.9.8.tar.gz
+"
diff --git a/testing/py3-lzo/APKBUILD b/testing/py3-lzo/APKBUILD
new file mode 100644
index 00000000000..1f2f4cdd5ef
--- /dev/null
+++ b/testing/py3-lzo/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-lzo
+pkgver=1.16
+pkgrel=1
+pkgdesc="Python bindings for the LZO data compression library"
+url="https://github.com/jd-boyd/python-lzo"
+arch="all"
+license="GPL-2.0-or-later"
+depends="python3"
+makedepends="
+ lzo-dev
+ py3-gpep517
+ py3-installer
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/jd-boyd/python-lzo/archive/v$pkgver/py3-lzo-$pkgver.tar.gz"
+builddir="$srcdir/python-lzo-$pkgver"
+
+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/python_lzo-$pkgver-*.whl
+}
+
+sha512sums="
+19a96a3b545d7f7addc549e1b928f39df57ec63acc35bedb2d625bd513fcaf4e1efebcaefc3e9ce45b56ee8ecd481027ceee38b4515532e6800ccf45e74e8faf py3-lzo-1.16.tar.gz
+"
diff --git a/testing/py3-m2crypto/APKBUILD b/testing/py3-m2crypto/APKBUILD
index adc4c0523a1..5c5ec204cb5 100644
--- a/testing/py3-m2crypto/APKBUILD
+++ b/testing/py3-m2crypto/APKBUILD
@@ -1,18 +1,19 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-m2crypto
-_pkgname=M2Crypto
-pkgver=0.35.2
-pkgrel=0
+_pyname=M2Crypto
+pkgver=0.41.0
+pkgrel=1
pkgdesc="A crypto and SSL toolkit for Python3"
options="!check" # test_public_encrypt and test_server_simple_timeouts fail
-url="https://pypi.python.org/pypi/M2Crypto/"
+url="https://pypi.org/project/M2Crypto/"
arch="all"
license="MIT"
depends="python3"
makedepends="python3-dev py3-setuptools openssl-dev swig"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pyname:0:1}/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
replaces="py-m2crypto" # Backwards compatibility
provides="py-m2crypto=$pkgver-r$pkgrel" # Backwards compatibility
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="3608b29a8e7d0732a2359e35fcaae191447aa7c0211ca3d057eed6cee7f0819f5c1121e7d41caca8cdea3c7911f8c447ee475b1b3d125e8dc3adde2718a59f36 M2Crypto-0.35.2.tar.gz"
+sha512sums="
+50ca5e32ae999b9ecdc7f3bbd35221b4a7523ef29e54eb4bc266457723117718955f99b9e7ac42a4cb982f0e22a94e5c852d6886d7dfb157d040ad86c17660fb M2Crypto-0.41.0.tar.gz
+"
diff --git a/testing/py3-mando/APKBUILD b/testing/py3-mando/APKBUILD
new file mode 100644
index 00000000000..4007eedb7ab
--- /dev/null
+++ b/testing/py3-mando/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-mando
+_pkgname=mando
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="Python CLI apps with little to no effort at all!"
+options="!check" # no test suite
+url="https://mando.readthedocs.org/"
+arch="noarch"
+license="MIT"
+depends="python3 py3-six"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 README.rst -t "$pkgdir"/usr/share/doc/"$pkgname"
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/"$pkgname"
+
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/mando/tests
+}
+
+sha512sums="
+469ff797d70a2426042ac0a289bbdb04d53ad8f18c6ea58bf361d4aa13611beb77f845fe73f67b459717e1c886fde627f5f039488826b1ca75ca71665fc55772 mando-0.7.1.tar.gz
+"
diff --git a/testing/py3-manuel/APKBUILD b/testing/py3-manuel/APKBUILD
new file mode 100644
index 00000000000..60075d12b1f
--- /dev/null
+++ b/testing/py3-manuel/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer:
+pkgname=py3-manuel
+pkgver=1.12.4
+pkgrel=2
+pkgdesc="mix and match traditional doctests with custom test syntax"
+url="https://github.com/benji-york/manuel"
+arch="noarch"
+license="Apache-2.0"
+depends="python3 py3-six"
+makedepends="py3-setuptools"
+checkdepends="py3-zope-testing"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/benji-york/manuel/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/manuel-$pkgver"
+options="!check" # fail matching exact string against newer dep versions
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+e39c93a6be92b2a5c09c461e2341690f670919b9bcb7665771cba0a0a4f6d695e4ad1ae53641f73f8e54b5ad8b4485831b480874936dc2ad17cbc88abfe2935c py3-manuel-1.12.4.tar.gz
+"
diff --git a/testing/py3-mapbox-earcut/APKBUILD b/testing/py3-mapbox-earcut/APKBUILD
new file mode 100644
index 00000000000..99db5b5f731
--- /dev/null
+++ b/testing/py3-mapbox-earcut/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-mapbox-earcut
+pkgver=1.0.1
+pkgrel=0
+pkgdesc="Python bindings for the mapbox earcut c++ library"
+url="https://github.com/skogler/mapbox_earcut_python"
+arch="all"
+license="ISC"
+depends="py3-numpy"
+makedepends="py3-setuptools py3-pybind11-dev python3-dev"
+checkdepends="pytest"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skogler/mapbox_earcut_python/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/mapbox_earcut_python-$pkgver"
+
+build() {
+ 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 --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+cdb32585cbaf74c15e59af0ae70d983dd2f9bc9cfe1b59b3eadc4d442f7d962241854b589a035deae67cacd9334833b911d0981f0d417fe587348fc7d24f0c0a py3-mapbox-earcut-1.0.1.tar.gz
+"
diff --git a/testing/py3-marisa-trie/APKBUILD b/testing/py3-marisa-trie/APKBUILD
new file mode 100644
index 00000000000..a594c5a0356
--- /dev/null
+++ b/testing/py3-marisa-trie/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-marisa-trie
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Static memory-efficient and fast Trie-like structures for Python"
+url="https://github.com/kmike/marisa-trie"
+arch="all"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ py3-hypothesis
+ py3-pytest
+ py3-readme_renderer
+ "
+source="https://pypi.python.org/packages/source/m/marisa-trie/marisa-trie-$pkgver.tar.gz"
+builddir="$srcdir/marisa-trie-$pkgver"
+
+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
+ case "$CARCH" in
+ arm*)
+ .testenv/bin/python3 -m pytest \
+ --ignore tests/test_trie.py
+ # https://github.com/pytries/marisa-trie/issues/96
+ ;;
+ *)
+ .testenv/bin/python3 -m pytest
+ ;;
+ esac
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+a49759bc3b1148766c80f99dd450b48cbc4cf8d954de7d3a3caf6fd7d9b6536896aca185ae085fc8d534da182a846ef69adb8ef4bd1c12709efeb853ea607800 marisa-trie-1.1.0.tar.gz
+"
diff --git a/testing/py3-markdown2/APKBUILD b/testing/py3-markdown2/APKBUILD
new file mode 100644
index 00000000000..7a75ead81ff
--- /dev/null
+++ b/testing/py3-markdown2/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-markdown2
+pkgver=2.4.13
+pkgrel=1
+pkgdesc="fast and complete implementation of Markdown in Python"
+url="https://github.com/trentm/python-markdown2"
+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/m/markdown2/markdown2-$pkgver.tar.gz"
+builddir="$srcdir/markdown2-$pkgver"
+
+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="
+df015b53a87138b55fb6ab28c5b4cc8b1a36867a9a1b0fab962399c467e9847b249bff6a8ad920d56c4b72a02b46ffc536e61fa3168794403602926e65091748 markdown2-2.4.13.tar.gz
+"
diff --git a/testing/py3-marshmallow-enum/APKBUILD b/testing/py3-marshmallow-enum/APKBUILD
new file mode 100644
index 00000000000..4e28559acc6
--- /dev/null
+++ b/testing/py3-marshmallow-enum/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-marshmallow-enum
+_pkgname=marshmallow_enum
+pkgver=1.5.1
+pkgrel=7
+pkgdesc="Enum field for use with Marshmallow."
+url="https://github.com/justanr/marshmallow_enum"
+arch="noarch"
+license="MIT"
+depends="py3-marshmallow"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="marshmallow-enum-$pkgver.tar.gz::https://github.com/justanr/marshmallow_enum/archive/v1.5.1.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+989fe58613dc28f242b1990a727a87c453809ad2de9355595e53e2c569de6434c76c150522c31189282edca74740dc0aabfafa57e2f78397644adae1b6d99f7d marshmallow-enum-1.5.1.tar.gz
+"
diff --git a/testing/py3-marshmallow/APKBUILD b/testing/py3-marshmallow/APKBUILD
new file mode 100644
index 00000000000..5dc185bec5d
--- /dev/null
+++ b/testing/py3-marshmallow/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-marshmallow
+_pkgname=marshmallow
+pkgver=3.21.1
+pkgrel=1
+pkgdesc="A lightweight library for converting complex objects to and from simple Python datatypes"
+url="https://github.com/marshmallow-code/marshmallow"
+arch="noarch"
+license="MIT"
+makedepends="py3-flit-core py3-gpep517 py3-wheel"
+checkdepends="py3-pytest py3-tz py3-simplejson"
+subpackages="$pkgname-pyc"
+source="py3-marshmallow-$pkgver.tar.gz::https://github.com/marshmallow-code/marshmallow/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest -k 'not test_unknown_parameter_value_is_validated'
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+6de06ced6a58ef0c312ee4c1edfbe011401bba08c27fcf2dd2c3e44cb072cded1cf5f16a4d4945344d56f0d26b5eb165f6d031b50c215f122c7cc6fe25389318 py3-marshmallow-3.21.1.tar.gz
+"
diff --git a/testing/py3-mautrix/APKBUILD b/testing/py3-mautrix/APKBUILD
deleted file mode 100644
index c140be14846..00000000000
--- a/testing/py3-mautrix/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-mautrix
-pkgver=0.5.0_rc1
-pkgrel=0
-pkgdesc="A Python 3 asyncio Matrix framework"
-url="https://github.com/tulir/mautrix-python"
-arch="noarch"
-license="MPL-2.0"
-depends="python3 py3-aiohttp py3-attrs py3-lxml py3-sqlalchemy py3-ruamel.yaml py3-commonmark"
-makedepends="py3-setuptools"
-source="https://github.com/tulir/mautrix-python/archive/v${pkgver/_/-}/mautrix-python-v${pkgver/_/-}.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/mautrix-python-${pkgver/_/-}"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9f90dd2c225f40123f3e098d8ddcc30104daf8c859e98759fe752ba25a65672dc2c14c202b89994531af2dd518d65eebb11f1548b8d0540bdf867f062e4b0701 mautrix-python-v0.5.0-rc1.tar.gz"
diff --git a/testing/py3-maxminddb/APKBUILD b/testing/py3-maxminddb/APKBUILD
deleted file mode 100644
index 28e09f4b563..00000000000
--- a/testing/py3-maxminddb/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=py3-maxminddb
-pkgver=1.5.4
-pkgrel=0
-pkgdesc="Python MaxMind DB reader extension"
-url="http://maxminddb.readthedocs.org/"
-arch="all"
-license="Apache-2.0"
-depends="python3"
-makedepends="libmaxminddb-dev python3-dev py3-setuptools"
-checkdepends="py3-nose py3-mock"
-_test_data_commit=e3764a229ff98541884a3cd4bd7dc95f4ae5d466
-source="$pkgname-$pkgver.tar.gz::https://github.com/maxmind/MaxMind-DB-Reader-python/archive/v$pkgver.tar.gz
- MaxMind-DB-test-data-$_test_data_commit.tar.gz::https://github.com/maxmind/MaxMind-DB/archive/$_test_data_commit.tar.gz"
-
-builddir="$srcdir/MaxMind-DB-Reader-python-$pkgver"
-
-prepare() {
- cd "$srcdir"
-
- # Submodule required for tests
- cp -r "MaxMind-DB-$_test_data_commit/"* "$builddir/tests/data"
-
- default_prepare
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a4a913ff288355f4efa56f6075b299f8d76f9ec76dc87d9e048aad13d9443aacb729ed1e6f1759c1f76605e7c74232f163d7eaacb3f94ba43b183e745216e1d7 py3-maxminddb-1.5.4.tar.gz
-618bef60b69492aecd06467428e36d7a10f2aa846e7afd507b6eac1f3a6ceceeb14ed95654b629c9d2638634a5184658236b644edccc99ae2d24e35d9d1f6db9 MaxMind-DB-test-data-e3764a229ff98541884a3cd4bd7dc95f4ae5d466.tar.gz"
diff --git a/testing/py3-mbedtls/APKBUILD b/testing/py3-mbedtls/APKBUILD
new file mode 100644
index 00000000000..def90e568d2
--- /dev/null
+++ b/testing/py3-mbedtls/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-mbedtls
+_pyname=python-mbedtls
+pkgver=2.9.2
+pkgrel=1
+pkgdesc="hash, hmac, RSA, ECC, X.509, TLS, DTLS, handshakes, and secrets with an mbed TLS back end"
+url="https://github.com/Synss/python-mbedtls"
+arch="all"
+license="MIT"
+depends="
+ mbedtls2
+ py3-certifi
+ py3-typing-extensions
+ "
+makedepends="
+ cython
+ mbedtls2-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ py3-pytest-repeat
+ py3-pytest-timeout
+ py3-readme_renderer
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Synss/python-mbedtls/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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
+ rm -rf "$pkgdir"/usr/lib/python3.*/site-packages/tests/ # remove tests
+}
+
+sha512sums="
+3b71f3e2c898d9fec01bf5b2a3e97bc2fa3688efc80e096bd57b902bf8e34ea5ba0cb221ea46c0fa844d01610918da61bf6ac118b5262b4c11f22bef80a5ce04 py3-mbedtls-2.9.2.tar.gz
+"
diff --git a/testing/py3-memory-profiler/APKBUILD b/testing/py3-memory-profiler/APKBUILD
new file mode 100644
index 00000000000..df9b2980827
--- /dev/null
+++ b/testing/py3-memory-profiler/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-memory-profiler
+pkgver=0.61
+pkgrel=1
+pkgdesc="A module for monitoring memory usage of a python program"
+url="https://github.com/pythonprofilers/memory_profiler"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-psutil"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pythonprofilers/memory_profiler/archive/refs/tags/v$pkgver.tar.gz
+ assertRaisesRegexp.patch
+ "
+builddir="$srcdir/memory_profiler-$pkgver"
+
+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 memory_profiler test/test_func.py
+ .testenv/bin/python3 -m memory_profiler test/test_loop.py
+ .testenv/bin/python3 -m memory_profiler test/test_mprofile.py
+ .testenv/bin/python3 -m memory_profiler test/test_as.py
+ .testenv/bin/python3 -m memory_profiler test/test_global.py
+ .testenv/bin/python3 -m memory_profiler test/test_precision_command_line.py
+ .testenv/bin/python3 -m memory_profiler test/test_gen.py
+ .testenv/bin/python3 -m memory_profiler test/test_unicode.py
+ .testenv/bin/python3 test/test_tracemalloc.py
+ .testenv/bin/python3 test/test_import.py
+ .testenv/bin/python3 test/test_memory_usage.py
+ .testenv/bin/python3 test/test_precision_import.py
+ .testenv/bin/python3 test/test_exception.py
+ .testenv/bin/python3 test/test_exit_code.py
+ .testenv/bin/python3 test/test_mprof.py
+ .testenv/bin/python3 test/test_async.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+02c70a049107ad4df635e20e22eaaa91fd4e4fd29690b0a7c314e08ed6e076bbb81f85dd97924ed35f7f0133cfd3c7e55b35400449489733beb172debe592c4e py3-memory-profiler-0.61.tar.gz
+a15ff3b422fd0c7c32376e845612d163b587542fed292fe6fc931b1010785574bf255f724feac64911b1d89e4ddf04c5515084da908eb94674ae2490c290989d assertRaisesRegexp.patch
+"
diff --git a/testing/py3-memory-profiler/assertRaisesRegexp.patch b/testing/py3-memory-profiler/assertRaisesRegexp.patch
new file mode 100644
index 00000000000..df0da779ae4
--- /dev/null
+++ b/testing/py3-memory-profiler/assertRaisesRegexp.patch
@@ -0,0 +1,14 @@
+diff --git a/test/test_exit_code.py b/test/test_exit_code.py
+index bae2be9..3a37063 100644
+--- a/test/test_exit_code.py
++++ b/test/test_exit_code.py
+@@ -20,3 +20,3 @@ class TestExitCode(unittest.TestCase):
+ sys.argv = ['<ignored>', '--exit-code', tmpfile.name]
+- self.assertRaisesRegexp(SystemExit, '0', self.run_action)
++ self.assertRaisesRegex(SystemExit, '0', self.run_action)
+
+@@ -29,3 +29,3 @@ class TestExitCode(unittest.TestCase):
+ sys.argv = ['<ignored>', '--exit-code', tmpfile.name]
+- self.assertRaisesRegexp(SystemExit, '1', self.run_action)
++ self.assertRaisesRegex(SystemExit, '1', self.run_action)
+
diff --git a/testing/py3-migen/0001-fix-get_var_name.patch b/testing/py3-migen/0001-fix-get_var_name.patch
new file mode 100644
index 00000000000..7a241d7fb61
--- /dev/null
+++ b/testing/py3-migen/0001-fix-get_var_name.patch
@@ -0,0 +1,113 @@
+Take get_var_name() from amaranth with minor impedance matching. This
+fixes:
+
+ test/test_phy_utils.py:54: in serializer_test
+ dut = Serializer(clk=clk, clkdiv=clkdiv, i_dw=data_width, o_dw=1)
+ litedram/phy/utils.py:240: in __init__
+ if i is None: i = Signal(i_dw)
+ /usr/lib/python3.11/site-packages/migen/fhdl/structure.py:395: in __init__
+ self.backtrace = _tracer.trace_back(name)
+ /usr/lib/python3.11/site-packages/migen/fhdl/tracer.py:111: in trace_back
+ varname = get_var_name(frame)
+
+See https://github.com/amaranth-lang/amaranth/blob/main/amaranth/tracer.py for
+original source.
+
+See https://github.com/m-labs/migen/pull/283 for an effort to upstream the fix.
+--- a/migen/fhdl/tracer.py 2024-01-11 10:35:38.211748883 +0100
++++ b/migen/fhdl/tracer.py 2024-01-11 10:36:04.864735268 +0100
+@@ -1,56 +1,55 @@
+ import inspect
++import sys
+ from sys import version_info
+ from opcode import opname
+ from collections import defaultdict
+
+-# All opcodes are 2 bytes in length in Python 3.6
+-def _bytecode_length_version_guard(old_len):
+- return old_len if version_info[1] < 6 else 2
+-
+-_call_opcodes = {
+- "CALL_FUNCTION" : _bytecode_length_version_guard(3),
+- "CALL_FUNCTION_KW" : _bytecode_length_version_guard(3),
+-}
+-
+-if version_info[1] < 6:
+- _call_opcodes["CALL_FUNCTION_VAR"] = 3
+- _call_opcodes["CALL_FUNCTION_VAR_KW"] = 3
+-elif version_info[1] < 7:
+- _call_opcodes["CALL_FUNCTION_EX"] = 2
+-else:
+- _call_opcodes["CALL_FUNCTION_EX"] = 2
+- _call_opcodes["CALL_METHOD"] = 2
+-
+-_load_build_opcodes = {
+- "LOAD_GLOBAL" : _bytecode_length_version_guard(3),
+- "LOAD_ATTR" : _bytecode_length_version_guard(3),
+- "LOAD_FAST" : _bytecode_length_version_guard(3),
+- "LOAD_DEREF" : _bytecode_length_version_guard(3),
+- "DUP_TOP" : _bytecode_length_version_guard(1),
+- "BUILD_LIST" : _bytecode_length_version_guard(3),
+-}
+-
+
+ def get_var_name(frame):
+ code = frame.f_code
+ call_index = frame.f_lasti
+- call_opc = opname[code.co_code[call_index]]
+- if call_opc not in _call_opcodes:
++ while call_index > 0 and opname[code.co_code[call_index]] == "CACHE":
++ call_index -= 2
++ while True:
++ call_opc = opname[code.co_code[call_index]]
++ if call_opc in ("EXTENDED_ARG",):
++ call_index += 2
++ else:
++ break
++ if call_opc not in ("CALL_FUNCTION", "CALL_FUNCTION_KW", "CALL_FUNCTION_EX",
++ "CALL_METHOD", "CALL", "CALL_KW"):
+ return None
+- index = call_index+_call_opcodes[call_opc]
++
++ index = call_index + 2
++ imm = 0
+ while True:
+ opc = opname[code.co_code[index]]
+- if opc == "STORE_NAME" or opc == "STORE_ATTR":
+- name_index = int(code.co_code[index+1])
+- return code.co_names[name_index]
++ if opc == 'EXTENDED_ARG':
++ imm |= int(code.co_code[index + 1])
++ imm <<= 8
++ index += 2
++ elif opc in ("STORE_NAME", "STORE_ATTR"):
++ imm |= int(code.co_code[index + 1])
++ return code.co_names[imm]
+ elif opc == "STORE_FAST":
+- name_index = int(code.co_code[index+1])
+- return code.co_varnames[name_index]
++ imm |= int(code.co_code[index + 1])
++ if sys.version_info >= (3, 11):
++ return code._varname_from_oparg(imm)
++ else:
++ return code.co_varnames[imm]
+ elif opc == "STORE_DEREF":
+- name_index = int(code.co_code[index+1])
+- return code.co_cellvars[name_index]
+- elif opc in _load_build_opcodes:
+- index += _load_build_opcodes[opc]
++ imm |= int(code.co_code[index + 1])
++ if sys.version_info >= (3, 11):
++ return code._varname_from_oparg(imm)
++ else:
++ if imm < len(code.co_cellvars):
++ return code.co_cellvars[imm]
++ else:
++ return code.co_freevars[imm - len(code.co_cellvars)]
++ elif opc in ("LOAD_GLOBAL", "LOAD_NAME", "LOAD_ATTR", "LOAD_FAST", "LOAD_DEREF",
++ "DUP_TOP", "BUILD_LIST", "CACHE", "COPY"):
++ imm = 0
++ index += 2
+ else:
+ return None
+
diff --git a/testing/py3-migen/0002-fix-incorrect-use-of-is.patch b/testing/py3-migen/0002-fix-incorrect-use-of-is.patch
new file mode 100644
index 00000000000..08f106fd0d4
--- /dev/null
+++ b/testing/py3-migen/0002-fix-incorrect-use-of-is.patch
@@ -0,0 +1,29 @@
+Fix:
+
+ migen/fhdl/visit.py:86
+ /builds/maribu/aports/testing/py3-migen/src/migen-0.9.2/migen/fhdl/visit.py:86: SyntaxWarning: "is" with a literal. Did you mean "=="?
+ key=lambda x: -1 if x[0] is "default" else x[0].duid):
+ migen/fhdl/visit.py:191
+ /builds/maribu/aports/testing/py3-migen/src/migen-0.9.2/migen/fhdl/visit.py:191: SyntaxWarning: "is" with a literal. Did you mean "=="?
+ key=lambda x: -1 if x[0] is "default" else x[0].duid)}
+ migen/test/test_platform.py:47
+--- a/migen/fhdl/visit.py 2024-01-11 16:52:08.195971473 +0100
++++ b/migen/fhdl/visit.py 2024-01-11 16:52:44.862281145 +0100
+@@ -83,7 +83,7 @@ class NodeVisitor:
+ def visit_Case(self, node):
+ self.visit(node.test)
+ for v, statements in sorted(node.cases.items(),
+- key=lambda x: -1 if x[0] is "default" else x[0].duid):
++ key=lambda x: -1 if isinstance(x[0], str) and x[0] == "default" else x[0].duid):
+ self.visit(statements)
+
+ def visit_Fragment(self, node):
+@@ -188,7 +188,7 @@ class NodeTransformer:
+ def visit_Case(self, node):
+ cases = {v: self.visit(statements)
+ for v, statements in sorted(node.cases.items(),
+- key=lambda x: -1 if x[0] is "default" else x[0].duid)}
++ key=lambda x: -1 if isinstance(x[0], str) and x[0] == "default" else x[0].duid)}
+ r = Case(self.visit(node.test), cases)
+ return r
+
diff --git a/testing/py3-migen/APKBUILD b/testing/py3-migen/APKBUILD
new file mode 100644
index 00000000000..7d9581ee831
--- /dev/null
+++ b/testing/py3-migen/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=py3-migen
+_pkgname=migen
+pkgver=0.9.2
+pkgrel=2
+pkgdesc="Python-based tool that aims at automating further the VLSI design process"
+url="https://m-labs.hk/gateware/migen/"
+license="BSD-2-Clause"
+arch="noarch"
+depends="python3"
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-wheel
+ py3-installer
+ "
+checkdepends="
+ py3-pytest
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/m-labs/migen/archive/refs/tags/$pkgver.tar.gz
+
+ 0001-fix-get_var_name.patch
+ 0002-fix-incorrect-use-of-is.patch
+ "
+builddir="$srcdir"/$_pkgname-$pkgver
+subpackages="$pkgname-pyc"
+
+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 -v
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+}
+
+sha512sums="
+9ff39f9f9b7e99b7d933e39091eb7e98c413ec3e60b98722d813df30fe95484470a1a027ac08bdf065bf688f4bb53af2c4618d3bbc0f1086adab33e149dca98f py3-migen-0.9.2.tar.gz
+6287fc34278e84b942a5aaefafa86d1078f393a60f34393c39a4f8226c4ee7913b4f156a517d7deb26a92f90331fed84ac529bbb4dd36ca2d052492e72cf6402 0001-fix-get_var_name.patch
+9ad29c4d5f95c31073d34b08dcd7de243330a5eb90f001f73fc4c7a2af17ebbb9855c431ae243ce4df0908f92155e38b60282779670c79e8b04dd44e110d75b9 0002-fix-incorrect-use-of-is.patch
+"
diff --git a/testing/py3-milc/APKBUILD b/testing/py3-milc/APKBUILD
new file mode 100644
index 00000000000..e7bf769f0f4
--- /dev/null
+++ b/testing/py3-milc/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-milc
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="Opinionated Batteries-Included Python 3 CLI Framework"
+url="https://milc.clueboard.co"
+arch="noarch"
+license="MIT"
+depends="python3 py3-appdirs py3-argcomplete py3-colorama py3-halo"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-semver"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/clueboard/milc/archive/$pkgver.tar.gz"
+builddir="$srcdir/milc-$pkgver"
+
+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="
+2789b7f8f4c639fb53ec223bac935de6da5d6c4ac8fda6a070fe1a9546d138323041d53b37d6a1478b0883d9945b9ec62386825109cd9816ec5d7371cc52c64b py3-milc-1.8.0.tar.gz
+"
diff --git a/testing/py3-minidb/APKBUILD b/testing/py3-minidb/APKBUILD
new file mode 100644
index 00000000000..c773a7f2263
--- /dev/null
+++ b/testing/py3-minidb/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Thiago Perrotta <tbperrotta@gmail.com>
+# Maintainer: Thiago Perrotta <tbperrotta@gmail.com>
+pkgname=py3-minidb
+pkgver=2.0.7
+pkgrel=3
+pkgdesc="Simple SQLite3 store for Python objects"
+url="https://thp.io/2010/minidb"
+arch="noarch"
+license="ISC"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/m/minidb/minidb-$pkgver.tar.gz"
+builddir="$srcdir/minidb-$pkgver/"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH=. pytest
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir" --skip-build
+}
+
+sha512sums="
+dc04d2d51fdc4ecf30e234cb25e17bf0cd5c320dfca6bdd306b61eced89fe8f1fb5df93111ec0c04f1b258ecde467203a968e61b913feee87301dec7e93d9412 minidb-2.0.7.tar.gz
+"
diff --git a/testing/py3-minidump/APKBUILD b/testing/py3-minidump/APKBUILD
new file mode 100644
index 00000000000..164c3a73605
--- /dev/null
+++ b/testing/py3-minidump/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-minidump
+_pyname=minidump
+pkgver=0.0.23
+pkgrel=1
+pkgdesc="Python library to parse and read Microsoft minidump file format"
+url="https://github.com/skelsec/minidump"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/minidump/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+df938d85196726db78f5c5a3809963fef8a1a473a4afb0869c271226166edf2e8c6329d1b0946fe297a2d7e01d4e1da55baa4b3ce59a74429b17434521bf4d6d py3-minidump-0.0.23.tar.gz
+"
diff --git a/testing/py3-minikerberos/APKBUILD b/testing/py3-minikerberos/APKBUILD
new file mode 100644
index 00000000000..07f1a845853
--- /dev/null
+++ b/testing/py3-minikerberos/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-minikerberos
+_pyname=minikerberos
+pkgver=0.4.4
+pkgrel=1
+pkgdesc="Kerberos manipulation library in pure Python"
+url="https://github.com/skelsec/minikerberos"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asn1crypto
+ py3-asysocks
+ py3-oscrypto
+ py3-six
+ py3-tqdm
+ py3-unicrypto
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/minikerberos/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # test suite requires connection to a KDC service (see /tests/config.py)
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ rm -rf "$pkgdir"/usr/lib/python3.*/site-packages/tests/ # remove tests
+}
+
+sha512sums="
+3e7e5e464eaf2c0b94e11ead13a1d2fd56e45a36fb9592aaa5d6de4beeecb8960df523ab647b1e9ab0e8104cec557803bd3dbfa1ae1dbf3333f4ecbd4d6fa198 py3-minikerberos-0.4.4.tar.gz
+"
diff --git a/testing/py3-minio/APKBUILD b/testing/py3-minio/APKBUILD
new file mode 100644
index 00000000000..6080669f60d
--- /dev/null
+++ b/testing/py3-minio/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=py3-minio
+pkgver=7.2.0
+pkgrel=1
+pkgdesc="MinIO client SDK for Python"
+url="https://docs.min.io/docs/python-client-quickstart-guide.html"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-certifi py3-urllib3 py3-argon2-cffi py3-pycryptodome"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/minio/minio-py/archive/$pkgver/py3-minio-$pkgver.tar.gz
+ assertEquals.patch
+ "
+builddir="$srcdir/minio-py-$pkgver"
+
+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="
+13d6771043538a5eb4108e693e8135ecaae0aea23492fab735b0de921ac575528a72520356281da0bbaf0b56cfef0026d7d51b64ad30881d8cdb67f9723be424 py3-minio-7.2.0.tar.gz
+31b52c6250fa31347aeae234e62978312163f8c5a7b407521000c966a908260b3578108473f26170238b8fd0d88690df7ed861012933dc96f0948d9d16899298 assertEquals.patch
+"
diff --git a/testing/py3-minio/assertEquals.patch b/testing/py3-minio/assertEquals.patch
new file mode 100644
index 00000000000..ab1abf1e678
--- /dev/null
+++ b/testing/py3-minio/assertEquals.patch
@@ -0,0 +1,9 @@
+diff --git a/tests/unit/crypto_test.py b/tests/unit/crypto_test.py
+index 367399a..ae7846c 100644
+--- a/tests/unit/crypto_test.py
++++ b/tests/unit/crypto_test.py
+@@ -27,3 +27,3 @@ class CryptoTest(TestCase):
+ decrypted = decrypt(encrypted, secret).decode()
+- self.assertEquals(plaintext, decrypted)
++ self.assertEqual(plaintext, decrypted)
+
diff --git a/testing/py3-mistletoe/APKBUILD b/testing/py3-mistletoe/APKBUILD
new file mode 100644
index 00000000000..337f38d6e19
--- /dev/null
+++ b/testing/py3-mistletoe/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-mistletoe
+_pkgname="${pkgname#py3-}"
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="markdown parser in pure Python, designed to be fast, spec-compliant and fully customizable"
+url="https://github.com/miyuchina/mistletoe"
+arch="noarch"
+license="MIT"
+depends="py3-pygments"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-requests py3-yaml py3-parameterized"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/miyuchina/mistletoe/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+a6dc5dc021d001a0b34a4d6cb5007ef55958b93d143937ecde07602aaf25e3a9c3116be2ed8f8cd90353524cf8d4058239f4018b726bec007b13d917e6deefac py3-mistletoe-1.2.1.tar.gz
+"
diff --git a/testing/py3-mitmproxy-rs/APKBUILD b/testing/py3-mitmproxy-rs/APKBUILD
new file mode 100644
index 00000000000..5d80b743efa
--- /dev/null
+++ b/testing/py3-mitmproxy-rs/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-mitmproxy-rs
+pkgver=0.5.1
+pkgrel=0
+pkgdesc="mitmproxy modules written in Rust"
+url="https://github.com/mitmproxy/mitmproxy_rs"
+license="MIT"
+arch="all !ppc64le !riscv64 !s390x" # fails to build ring crate
+makedepends="
+ cargo
+ py3-gpep517
+ py3-installer
+ py3-maturin
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/mitmproxy/mitmproxy_rs/archive/$pkgver/py3-mitmproxy-rs-$pkgver.tar.gz"
+builddir="$srcdir/mitmproxy_rs-$pkgver"
+options="net" # cargo
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cd mitmproxy-rs
+ gpep517 build-wheel \
+ --wheel-dir "$builddir"/.dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+e08f632f7acbff0c99cbac479ff2a6fee5f1343c3fe8f1ed0d749d13f159385eee1cdd28bb182e6ef9145957dbc66cd74ae8535c1551917062881aff22676969 py3-mitmproxy-rs-0.5.1.tar.gz
+"
diff --git a/testing/py3-mmh3/APKBUILD b/testing/py3-mmh3/APKBUILD
deleted file mode 100644
index f021201f8f7..00000000000
--- a/testing/py3-mmh3/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-mmh3
-pkgver=2.5.1
-pkgrel=0
-pkgdesc="Python wrapper for MurmurHash (MurmurHash3), a set of fast and robust hash functions"
-url="https://github.com/hajimes/mmh3"
-arch="all"
-license="CC0-1.0"
-depends="python3"
-makedepends="python3-dev py3-setuptools"
-checkdepends="py3-numpy"
-subpackages="$pkgname-doc"
-source="mmh3-$pkgver.tar.gz::https://github.com/hajimes/mmh3/archive/v$pkgver.tar.gz"
-builddir="$srcdir/mmh3-$pkgver"
-
-case "$CARCH" in
-# tests blocked by py3-numpy
-mips*) options="!check";;
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$(echo $PWD/build/lib.*)" python3 test_mmh3.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
- install -Dm644 README.rst "$pkgdir/usr/share/doc/$pkgname/README.rst"
-}
-
-sha512sums="1573e5d5dd0f0af331e2e69bc61b9fdbbe19d136c3338bfcc142bedfdedcfc85dbfc1b572d031c131266bb5b9efa56e3d91d0782ae13335eecdc205be0f23945 mmh3-2.5.1.tar.gz"
diff --git a/testing/py3-modbus-tk/APKBUILD b/testing/py3-modbus-tk/APKBUILD
new file mode 100644
index 00000000000..1d8408dfec1
--- /dev/null
+++ b/testing/py3-modbus-tk/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
+# Maintainer: Guilherme Felipe da Silva <gfsilva.eng@gmail.com>
+pkgname=py3-modbus-tk
+_pkgname="${pkgname#py3-}"
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="Create Modbus app easily with Python"
+url="https://github.com/ljean/modbus-tk"
+arch="noarch"
+license="LGPL-2.1-or-later"
+depends="python3 py3-pyserial"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/ljean/modbus-tk/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 -m unittest tests/unittest_*
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="
+9868a6720434a86da2f87dc53719bbd21595e0c2e20fe1acb5baf7dca18c7da2afd83a6f02d15947725967755f6f43eb60fa66deef7e3c907dfbfd6e22a48f84 modbus-tk-1.1.1.tar.gz
+"
diff --git a/testing/py3-mongo/APKBUILD b/testing/py3-mongo/APKBUILD
deleted file mode 100644
index 87d9fc2928a..00000000000
--- a/testing/py3-mongo/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Danilo Falcão <danilo@falcao.org>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-mongo
-_pkgname=pymongo
-pkgver=3.7.2
-pkgrel=2
-pkgdesc="Python3 driver for MongoDB"
-url="https://github.com/mongodb/mongo-python-driver"
-arch="all"
-license="Apache-2.0"
-makedepends="python3-dev py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-mongo" # Backwards compatibility
-provides="py-mongo=$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="4d1dfe03d94f381f27cfb5c8dd4f75ecbab90567fdc4dd594b880031e68825eda6285c8b261a4c9d76fb7ccc92c91e27ae2f696525f7732b1f0084794042a33d pymongo-3.7.2.tar.gz"
diff --git a/testing/py3-mopidy-jellyfin/APKBUILD b/testing/py3-mopidy-jellyfin/APKBUILD
new file mode 100644
index 00000000000..5a48f9fa6e8
--- /dev/null
+++ b/testing/py3-mopidy-jellyfin/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-mopidy-jellyfin
+_pyname=${pkgname#py3-}
+pkgver=1.0.4
+pkgrel=3
+pkgdesc="Mopidy extension for Jellyfin"
+url="https://github.com/jellyfin/mopidy-jellyfin"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ python3
+ mopidy
+ py3-pykka
+ py3-requests
+ py3-unidecode
+ py3-websocket-client
+ "
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/jellyfin/mopidy-jellyfin/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+# AttributeError: <class 'mopidy_jellyfin.remote.JellyfinHandler'> does not have the attribute '_get_token'
+options="!check"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+e78d61ab1c4029fcc472a55c30eb4f75d18427d5ca5759ea03bb1dcb6bf9626570c5e2a84f7727ec59be07dd5ce78c63228c08524e703042950f087ae3878823 mopidy-jellyfin-1.0.4.tar.gz
+"
diff --git a/testing/py3-mopidy-local/APKBUILD b/testing/py3-mopidy-local/APKBUILD
new file mode 100644
index 00000000000..dd380d6b5cc
--- /dev/null
+++ b/testing/py3-mopidy-local/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-mopidy-local
+_pyname=${pkgname#py3-}
+pkgver=3.2.1
+pkgrel=3
+pkgdesc="Mopidy extension for playing music from local music archive"
+url="https://github.com/mopidy/mopidy-local"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ mopidy
+ python3
+ py3-pykka
+ py3-uritools
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/mopidy/mopidy-local/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # tests fail on CI
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 -m pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+2a34018306f9ca7b94e55c40f41e728329d10d6c530c58a7c5f58f6783b280069db27a1249e1d021126cda35be5f7cb1bc02affdd7b3eb7c77a4627fe588005f mopidy-local-3.2.1.tar.gz
+"
diff --git a/testing/py3-mopidy-mpd/APKBUILD b/testing/py3-mopidy-mpd/APKBUILD
index f10625dcef7..c7efe1c3922 100644
--- a/testing/py3-mopidy-mpd/APKBUILD
+++ b/testing/py3-mopidy-mpd/APKBUILD
@@ -2,28 +2,37 @@
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=py3-mopidy-mpd
_pyname=Mopidy-MPD
-pkgver=3.0.0
-pkgrel=0
+pkgver=3.3.0
+pkgrel=4
pkgdesc="Mopidy extension for controlling playback from MPD clients"
url="https://github.com/mopidy/mopidy-mpd"
arch="noarch"
license="Apache-2.0"
depends="python3 mopidy py3-pykka"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel py3-installer"
checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pyname%"${_pyname#?}"}/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # response verification fails
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="c7b1c2b30f0d052b9cdcfc1f33a1ee2bb50302538087eee3f6bd5aa79711afd58986dd5d9ce901754b78fd2e78f6d5c353444ef6307408870d5930037d6d2b36 Mopidy-MPD-3.0.0.tar.gz"
+sha512sums="
+a8d59e3c8908390603a275af6d8b6e5bd48fcb2dd35e97d3313d0384bb31f97e832513432a95b1dec8bafba67c7a54170c55caef5f3db8fc5256d0814fda3121 Mopidy-MPD-3.3.0.tar.gz
+"
diff --git a/testing/py3-mopidy-spotify/APKBUILD b/testing/py3-mopidy-spotify/APKBUILD
new file mode 100644
index 00000000000..43fd8dac5d9
--- /dev/null
+++ b/testing/py3-mopidy-spotify/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-mopidy-spotify
+pkgver=5.0.0_alpha2
+pkgrel=0
+pkgdesc="Mopidy extension for playing music from Spotify"
+url="https://mopidy.com/ext/spotify/"
+# armhf armv7 ppc64le riscv64 s390x x86 blocked by gst-plugins-rs
+arch="noarch !armhf !armv7 !ppc64le !riscv64 !s390x !x86"
+license="Apache-2.0"
+depends="
+ gst-plugins-rs
+ mopidy
+ py3-responses
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mopidy/mopidy-spotify/archive/refs/tags/v${pkgver//_alpha/a}.tar.gz"
+builddir="$srcdir/mopidy-spotify-${pkgver//_alpha/a}"
+
+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="
+6321a908bb5b5b8d4c7938cdcaa9110fef7b2f42e295f93788640fdca238448adc8aacdd4a8a926e5387f91b8b2b9f1de4d7b0ca4482e7fd87811fbb5a72e5b5 py3-mopidy-spotify-5.0.0_alpha2.tar.gz
+"
diff --git a/testing/py3-mopidy-subidy/APKBUILD b/testing/py3-mopidy-subidy/APKBUILD
deleted file mode 100644
index d668efc6fc5..00000000000
--- a/testing/py3-mopidy-subidy/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=py3-mopidy-subidy
-_pyname=Mopidy-Subidy
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="Mopidy extension for playing music from Subsonic servers"
-url="https://github.com/Prior99/mopidy-subidy"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 mopidy py3-pykka py3-pysonic"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="eb0068646c8865d7be62f0c4075cc97dedd8dd52d96f5fa55f9626ca90e00b89211fac48d470f615066584c19dcbe8f4ef18a9dbfe3e2f3a57c96349272cfb36 Mopidy-Subidy-1.0.0.tar.gz"
diff --git a/testing/py3-mopidy-tidal/APKBUILD b/testing/py3-mopidy-tidal/APKBUILD
new file mode 100644
index 00000000000..adb71bf4d29
--- /dev/null
+++ b/testing/py3-mopidy-tidal/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=py3-mopidy-tidal
+_pyname=Mopidy-Tidal
+pkgver=0.3.2
+pkgrel=5
+pkgdesc="Mopidy extension for Tidal music service integration"
+url="https://github.com/tehkillerbee/mopidy-tidal"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ gst-plugins-bad
+ mopidy
+ py3-pykka
+ py3-requests
+ py3-tidalapi
+ py3-typing-extensions
+ python3
+ "
+makedepends="py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-mock py3-dateutil"
+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
+}
+
+check() {
+ pytest tests
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+8ef77615cb33889c3743ef024a383466c64e7e8e88924c5a31e93918e1fe599e72bb409e6c1aa4a1f8b35342e3ca7a73aab32deb8a25a0ec8790348ccc7ccb23 Mopidy-Tidal-0.3.2.tar.gz
+"
diff --git a/testing/py3-more-properties/APKBUILD b/testing/py3-more-properties/APKBUILD
new file mode 100644
index 00000000000..852d80564c7
--- /dev/null
+++ b/testing/py3-more-properties/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=py3-more-properties
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="Collection of property variants"
+url="https://github.com/madman-bob/python-more-properties"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest-forked
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/madman-bob/python-more-properties/archive/refs/tags/$pkgver.tar.gz
+ root.patch
+ "
+builddir="$srcdir/python-more-properties-$pkgver/"
+
+prepare() {
+ default_prepare
+
+ # fixup location
+ mv pypi_upload/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 -n auto --forked
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+fed395bccc4aacb38c976e6a7d15079e37850d134d8e1864d625aa120c857ace71deaf159b4a2c6d559121fcbff7e9d8be905de0dfa93425bc547f8cd8349fc6 py3-more-properties-1.1.1.tar.gz
+99ca365084b2c0f1e0e1bf8b2fea1b8b4a3f86263112b0acc37abb15cefef4c23cd98fb6f13c33fcad603dc9c90c5a04ac8f467eba3b74572d742f15508d2d88 root.patch
+"
diff --git a/testing/py3-more-properties/root.patch b/testing/py3-more-properties/root.patch
new file mode 100644
index 00000000000..a9993d8825e
--- /dev/null
+++ b/testing/py3-more-properties/root.patch
@@ -0,0 +1,15 @@
+diff --git a/pypi_upload/setup.py b/pypi_upload/setup.py
+index 9de24a4..44b8064 100644
+--- a/pypi_upload/setup.py
++++ b/pypi_upload/setup.py
+@@ -6,8 +6,8 @@ from pathlib import Path
+ from setuptools import find_packages, setup
+ from setuptools.command.install import install
+
+-project_root = Path(__file__).parents[1]
+-
++import pathlib
++project_root = pathlib.Path().resolve()
+
+ class VerifyCommand(install):
+ """Custom command to verify module integrity"""
diff --git a/testing/py3-moviepy/APKBUILD b/testing/py3-moviepy/APKBUILD
new file mode 100644
index 00000000000..b54a1f3b326
--- /dev/null
+++ b/testing/py3-moviepy/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=py3-moviepy
+pkgver=1.0.3
+pkgrel=4
+pkgdesc="Video editing with Python"
+url="https://zulko.github.io/moviepy/"
+arch="noarch !s390x !ppc64le" # blocked by py3-imageio
+license="MIT"
+depends="py3-requests py3-proglog py3-imageio py3-imageio-ffmpeg py3-decorator py3-tqdm"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Zulko/moviepy/archive/v$pkgver.tar.gz
+ decorators.patch"
+builddir="$srcdir/moviepy-$pkgver"
+options="!check" # No tests, require network connection
+
+build() {
+ # Remove tests
+ rm -rfv "tests/"
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+24490b41fde6aacc202256254032e9993ef35cb2a5d09844509107ed31959bfed6105285a6c21196cdd63a3270d6f538d32305c1525dc769d07504a8178f66f9 py3-moviepy-1.0.3.tar.gz
+d79b0a461e47d29af319b53601493466e82321121d30a951ad31d8d0431499e360b5ad33a903908555ad75dce3734a4cef9c2aed64c5769b484302d50bbd886e decorators.patch
+"
diff --git a/testing/py3-moviepy/decorators.patch b/testing/py3-moviepy/decorators.patch
new file mode 100644
index 00000000000..80732fe8ef5
--- /dev/null
+++ b/testing/py3-moviepy/decorators.patch
@@ -0,0 +1,47 @@
+commit 2ea1de64553d610a2fdd1abe54dba6797a49a5e4
+Author: Daniel Mizyrycki <mzdaniel@glidelink.net>
+Date: Sat Sep 24 16:33:28 2022 -0700
+
+ Update code introspection logic in decorators
+
+diff --git a/moviepy/decorators.py b/moviepy/decorators.py
+index 277276c..3bce1ac 100644
+--- a/moviepy/decorators.py
++++ b/moviepy/decorators.py
+@@ -2,6 +2,7 @@
+ all decorators used in moviepy go there
+ """
+
++import inspect
+ import decorator
+
+ from moviepy.tools import cvsecs
+@@ -76,12 +77,7 @@ def preprocess_args(fun,varnames):
+ """ Applies fun to variables in varnames before launching the function """
+
+ def wrapper(f, *a, **kw):
+- if hasattr(f, "func_code"):
+- func_code = f.func_code # Python 2
+- else:
+- func_code = f.__code__ # Python 3
+-
+- names = func_code.co_varnames
++ names = inspect.getfullargspec(f).args
+ new_a = [fun(arg) if (name in varnames) else arg
+ for (arg, name) in zip(a, names)]
+ new_kw = {k: fun(v) if k in varnames else v
+@@ -120,12 +116,7 @@ def use_clip_fps_by_default(f, clip, *a, **k):
+ " the clip's fps with `clip.fps=24`" % f.__name__)
+
+
+- if hasattr(f, "func_code"):
+- func_code = f.func_code # Python 2
+- else:
+- func_code = f.__code__ # Python 3
+-
+- names = func_code.co_varnames[1:]
++ names = inspect.getfullargspec(f).args[1:]
+
+ new_a = [fun(arg) if (name=='fps') else arg
+ for (arg, name) in zip(a, names)]
+
diff --git a/testing/py3-mpd2/APKBUILD b/testing/py3-mpd2/APKBUILD
index bb7a127acab..1e88c4e31f3 100644
--- a/testing/py3-mpd2/APKBUILD
+++ b/testing/py3-mpd2/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=py3-mpd2
_pyname=python-mpd2
-pkgver=1.1.0
-pkgrel=0
+pkgver=3.1.1
+pkgrel=1
pkgdesc="python client interface for MPD"
url="https://github.com/Mic92/python-mpd2"
arch="noarch"
@@ -11,6 +11,7 @@ license="LGPL-3.0-only"
depends="python3"
makedepends="py3-setuptools"
checkdepends="py3-mock py3-twisted"
+subpackages="$pkgname-pyc"
source="$_pyname-$pkgver.tar.gz::https://github.com/Mic92/python-mpd2/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
@@ -23,6 +24,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="65b17ae34b2c731b7d45801211e49eacfc18239d5575075be0c11ace350da19b82dd151fefc42077454a988d3deb1b489471f739ddea2d915cb3c241669dbe32 python-mpd2-1.1.0.tar.gz"
+
+sha512sums="
+abd882bc0652ed4a8ee2f4abf0a039e7c62e77b35d278c5fc99bb032c220caac831cc483445516044964f2ea078d2134af61c64d55cb20770b4d32a5aa1ce5e2 python-mpd2-3.1.1.tar.gz
+"
diff --git a/testing/py3-msldap/APKBUILD b/testing/py3-msldap/APKBUILD
new file mode 100644
index 00000000000..77367ddefc4
--- /dev/null
+++ b/testing/py3-msldap/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-msldap
+_pyname=msldap
+pkgver=0.5.10
+pkgrel=1
+pkgdesc="Python library to play with MS LDAP"
+url="https://github.com/skelsec/msldap"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asn1crypto
+ py3-asyauth
+ py3-asysocks
+ py3-minikerberos
+ py3-prompt_toolkit
+ py3-tqdm
+ py3-unicrypto
+ py3-wcwidth
+ py3-winacl
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/msldap/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+8b96a46d2b685dc30078c476bab75bcb925668784a2e7bf8980d174d7b0bffb0ff5bd7044bccd5f0b1f4a621d33d6f0cf41027f49979f4f13b466ba2012b82e5 py3-msldap-0.5.10.tar.gz
+"
diff --git a/testing/py3-mtranslate/APKBUILD b/testing/py3-mtranslate/APKBUILD
deleted file mode 100644
index 807628b345f..00000000000
--- a/testing/py3-mtranslate/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-mtranslate
-pkgver=1.6
-pkgrel=1
-pkgdesc="Google translate console script with easy to use API"
-url="https://github.com/mouuff/mtranslate"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/m/mtranslate/mtranslate-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/mtranslate-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="4c822292229e23ee24a4c17bf3a9d4f728716f6757af2cac4c043abfa8e181acf7a601a377c4190221acc6a90be81bb07d51702cce3e14f6776816eff61ac138 mtranslate-1.6.tar.gz"
diff --git a/testing/py3-multi-key-dict/APKBUILD b/testing/py3-multi-key-dict/APKBUILD
deleted file mode 100644
index 988ce17cb89..00000000000
--- a/testing/py3-multi-key-dict/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-multi-key-dict
-pkgver=2.0.3
-pkgrel=1
-pkgdesc="Multi key dictionary implementation"
-url="https://github.com/formiaczek/multi_key_dict"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/m/multi_key_dict/multi_key_dict-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/multi_key_dict-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f6d0d01f663e89f1767b3dae7b112fe6d2775c2a10680dc44023b592c5dc36dc85d9bf705617033bbe23c1d7cc1edfbcbb814742c8f62dd78a2534feacad6fdf multi_key_dict-2.0.3.tar.gz"
diff --git a/testing/py3-murmurhash/APKBUILD b/testing/py3-murmurhash/APKBUILD
deleted file mode 100644
index 9b31a66e9b6..00000000000
--- a/testing/py3-murmurhash/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-murmurhash
-pkgver=1.0.2
-pkgrel=0
-pkgdesc="Cython bindings for MurmurHash2"
-options="!check" # Requires older version of pytest
-url="https://github.com/explosion/murmurhash"
-arch="all"
-license="MIT"
-depends="python3"
-makedepends="python3-dev py3-setuptools cython"
-checkdepends="py3-pytest py3-mmh3"
-subpackages="$pkgname-doc"
-source="murmurhash-$pkgver.tar.gz::https://github.com/explosion/murmurhash/archive/v$pkgver.tar.gz"
-builddir="$srcdir/murmurhash-$pkgver"
-
-prepare() {
- default_prepare
- sed -i 's|^#!/usr/bin/env|#!/usr/bin/env python3|g' bin/cythonize.py
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$(echo $PWD/build/lib.*)" pytest-3 murmurhash
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.rst "$pkgdir/usr/share/doc/$pkgname/README.rst"
-}
-
-sha512sums="b835b5c9f9439f5e335bcc6921732d22c93ac304b7dd02d7060942ad00e8511d63a85faa5d74541324ca2e130a6ba18d67e905ca715e050086d0d986ac82f582 murmurhash-1.0.2.tar.gz"
diff --git a/testing/py3-mypy-extensions/APKBUILD b/testing/py3-mypy-extensions/APKBUILD
deleted file mode 100644
index 1462f6735d9..00000000000
--- a/testing/py3-mypy-extensions/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-mypy-extensions
-pkgver=0.4.3
-pkgrel=0
-pkgdesc="Experimental type system ectensions for mypy typechecker"
-url="https://www.mymy-lang.org/"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-tox"
-source="https://files.pythonhosted.org/packages/source/m/mypy_extensions/mypy_extensions-$pkgver.tar.gz"
-builddir="$srcdir/"mypy_extensions-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- tox
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b64dab28519f9e67b7b6bcb0445451eec07cc699ce1bbc65d56c28bd5dbcd72e9b324c9aed3f134df5645ee4bba6aa5f607fec133b3bfd5a1706186a0112ce6f mypy_extensions-0.4.3.tar.gz"
diff --git a/testing/py3-mypy/APKBUILD b/testing/py3-mypy/APKBUILD
deleted file mode 100644
index 85dc6948766..00000000000
--- a/testing/py3-mypy/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-mypy
-pkgver=0.770
-pkgrel=0
-pkgdesc="Optional static typing for Python (PEP484)"
-url="https://www.mypy-lang.org/"
-arch="noarch"
-license="MIT"
-depends="py3-mypy-extensions py3-typing-extensions py3-typed-ast"
-makedepends="python3-dev py3-setuptools"
-checkdepends="py3-tox"
-source="https://files.pythonhosted.org/packages/source/m/mypy/mypy-$pkgver.tar.gz"
-builddir="$srcdir/"mypy-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- tox
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0137a2a68f89a05b27afd3e579f54bf7607494ffe6870aec7711c16f4d8737fffea5b2eb617ca6077906dcfdea557cc1407442f5da811974098b3fb934e59bd7 mypy-0.770.tar.gz"
diff --git a/testing/py3-nanoid/APKBUILD b/testing/py3-nanoid/APKBUILD
new file mode 100644
index 00000000000..b4aa4e19618
--- /dev/null
+++ b/testing/py3-nanoid/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-nanoid
+_pyname=${pkgname/py3-/}
+pkgver=2.0.0
+pkgrel=2
+pkgdesc="Tiny, secure, URL-friendly, unique string ID generator for Python"
+url="https://github.com/puyuan/py-nanoid"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/n/nanoid/nanoid-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # No test included in the source tarball
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+7db65075357feb19c4747be9abca1a19a2b8583f82cdcae87f06846141d798a725128ee784ce33cd3b14b272c0beb2dcac0faf4536e8d5183eaa06eab79fff87 nanoid-2.0.0.tar.gz
+"
diff --git a/testing/py3-natpmp/APKBUILD b/testing/py3-natpmp/APKBUILD
new file mode 100644
index 00000000000..2623abab977
--- /dev/null
+++ b/testing/py3-natpmp/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=py3-natpmp
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="NAT-PMP client library for Python"
+url="https://github.com/jaraco/nat-pmp"
+arch="noarch"
+license="MIT"
+depends="py3-netifaces"
+makedepends="
+ py3-gpep517
+ py3-setuptools_scm
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jaraco/nat-pmp/archive/v$pkgver.tar.gz"
+builddir="$srcdir"/nat-pmp-$pkgver
+options="!check" # no tests
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+92e211038042c0d8ea07b4d69c4e9c40abdcd7bcb3b21d14ba6cb98104d13606acf14a227af1754d4378791a22e6651e2333f97036bab41c36f688ce7935a8af py3-natpmp-1.3.2.tar.gz
+"
diff --git a/testing/py3-ncclient/APKBUILD b/testing/py3-ncclient/APKBUILD
index 70770a9cbc1..134e942a444 100644
--- a/testing/py3-ncclient/APKBUILD
+++ b/testing/py3-ncclient/APKBUILD
@@ -1,22 +1,29 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer:
pkgname=py3-ncclient
-_pkgname=ncclient
-pkgver=0.6.7
-pkgrel=0
+pkgver=0.6.13
+pkgrel=4
pkgdesc="Library for NETCONF clients"
url="https://github.com/ncclient/ncclient"
-# NOTE(maxice8): All builders fail to fetch it
-# arch="noarch"
+arch="noarch"
license="Apache-2.0"
-depends="py3-lxml py3-paramiko py3-setuptools py3-six"
+depends="py3-lxml py3-paramiko py3-six py3-setuptools"
+makedepends="py3-python-versioneer"
checkdepends="py3-mock py3-nose"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/ncclient/ncclient/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ncclient/ncclient/archive/v$pkgver.tar.gz"
builddir="$srcdir"/ncclient-$pkgver
replaces="py-ncclient" # Backwards compatibility
provides="py-ncclient=$pkgver-r$pkgrel" # Backwards compatibility
+prepare() {
+ default_prepare
+
+ # unvendor
+ rm versioneer.py
+}
+
build() {
python3 setup.py build
}
@@ -26,7 +33,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="d4b9996d849d2ae815d40507cfefe74b6184ca23924773a4340f1be85a3751b0976c38f5091aeb20531037d1274ca35c1d1640c02222842b8197d800a938b71b ncclient-0.6.7.tar.gz"
+sha512sums="
+650d07477d48cd209ef758ebd1716e48c4021c3d681f0ce2e9065ca5f34ace82079f5577884d26fc99e552c6f4cd7b59a9bf8866008e7b2985f1d8b23cc8d61f py3-ncclient-0.6.13.tar.gz
+"
diff --git a/testing/py3-netifaces2/APKBUILD b/testing/py3-netifaces2/APKBUILD
new file mode 100644
index 00000000000..610b1a80f3a
--- /dev/null
+++ b/testing/py3-netifaces2/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=py3-netifaces2
+pkgver=0.0.22
+pkgrel=0
+pkgdesc="network interface information 2: oxidized"
+url="https://github.com/SamuelYvon/netifaces-2"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ py3-gpep517
+ py3-maturin
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+options="net"
+subpackages="$pkgname-pyc"
+source="
+ https://github.com/SamuelYvon/netifaces-2/archive/V$pkgver/py3-netifaces2-V$pkgver.tar.gz
+ "
+builddir="$srcdir/netifaces-2-$pkgver"
+provides="py3-netifaces"
+replaces="py3-netifaces"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --config-json '{"build-args": "--frozen"}' \
+ --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="
+eb188ef1ac16a59ca05b8c94aee380a6e55d2dc78271967a29db5b3528b55057ce4d19ed2ac64dba9a731a64ddaebb627654773012105bcf7a9e5440936aefea py3-netifaces2-V0.0.22.tar.gz
+"
diff --git a/testing/py3-netmiko/APKBUILD b/testing/py3-netmiko/APKBUILD
index 0854462c35d..7b938873710 100644
--- a/testing/py3-netmiko/APKBUILD
+++ b/testing/py3-netmiko/APKBUILD
@@ -2,30 +2,31 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-netmiko
_pkgname=netmiko
-pkgver=3.1.1
-pkgrel=0
+pkgver=4.3.0
+pkgrel=1
pkgdesc="Multi-vendor library to simplify Paramiko SSH connections to network devices"
url="https://github.com/ktbyers/netmiko"
arch="noarch"
license="MIT"
depends="openssh-client py3-yaml py3-paramiko py3-scp python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ktbyers/$_pkgname/archive/v$pkgver.tar.gz"
+options="!check" # no textfsm package available
+makedepends="py3-gpep517 py3-setuptools py3-wheel poetry"
+checkdepends="py3-pytest py3-pyserial"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ktbyers/netmiko/archive/refs/tags/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-netmiko" # Backwawrds compatibility
-provides="py-netmiko=$pkgver-r$pkgrel" # Backwards compatibility
-
-check() {
- python3 setup.py 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="08d7640c348b939f2628afde9d1a4b45448f7322cd1b73de56cdf21e657fa4e136353c5892656c1ba85782521849de6da36f0cc2fdbf5d4023d30b980fc6f4b2 py3-netmiko-3.1.1.tar.gz"
+sha512sums="
+e3f1ad4cee212687247687ac17e413f4f738a20eac34cfe0ca538ec3c8152d0dbc27441dd0fbb7325eb61cef56ab44ffeb2e4604475464758690b0909ee1d3b8 py3-netmiko-4.3.0.tar.gz
+"
diff --git a/testing/py3-networkx/APKBUILD b/testing/py3-networkx/APKBUILD
deleted file mode 100644
index 600201de4c9..00000000000
--- a/testing/py3-networkx/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-networkx
-pkgver=2.4
-pkgrel=0
-pkgdesc="Software for complex networks"
-url="https://networkx.github.io/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-decorator"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc"
-checkdepends="py3-pytest py3-pygraphviz py3-pydot py3-numpy py3-scipy py3-yaml py3-pandas py3-matplotlib py3-lxml"
-source="https://pypi.python.org/packages/source/n/networkx/networkx-$pkgver.tar.gz
- fix-test_numpy_type-under-python3.8.patch
- "
-options="!check" # Broken https://github.com/networkx/networkx/issues/3942
-builddir="$srcdir/networkx-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="38eabef56e3667b7fa85206ae01a0a8f5c71bfa2f324bc2490c433cb973508a03955183a0c58ae40390f86d6a4741135cdb426c4c15e53e2f123072f0cac1b89 networkx-2.4.tar.gz
-8b673817a43aa194653cbfaa1754c81ddf4d9c1918e540db38133ed9c74e573d8dd7b2e0e3d626bb93b1ccf5a9d8f3c237c102e1b3302c4199c2bd0123905e77 fix-test_numpy_type-under-python3.8.patch"
diff --git a/testing/py3-networkx/fix-test_numpy_type-under-python3.8.patch b/testing/py3-networkx/fix-test_numpy_type-under-python3.8.patch
deleted file mode 100644
index 49a803c3295..00000000000
--- a/testing/py3-networkx/fix-test_numpy_type-under-python3.8.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-Upstream pull-request: https://github.com/networkx/networkx/pull/3724
-
-Modified from upstream to not touch not-in-release-package-existing travis.yml
-
-From 488e824439124f4dd52f8230c452a3df681b1bab Mon Sep 17 00:00:00 2001
-From: Steve Kowalik <steven@wedontsleep.org>
-Date: Fri, 15 Nov 2019 13:48:33 +1100
-Subject: [PATCH] Fix test_numpy_type to pass under Python 3.8
-
-readwrite.tests.test_gexf.TestGEXF.test_numpy_type failed under Python
-3.8 due to ordering of XML attributes, handle it as per f75dbe8. Also
-change travis to no longer allow failures under 3.8.
-
-Fixes #3720
----
- .travis.yml | 2 --
- networkx/readwrite/tests/test_gexf.py | 51 ++++++++++++++++++++++++++-
- 2 files changed, 50 insertions(+), 3 deletions(-)
-
-diff --git a/networkx/readwrite/tests/test_gexf.py b/networkx/readwrite/tests/test_gexf.py
-index afc40111c..f16504c04 100644
---- a/networkx/readwrite/tests/test_gexf.py
-+++ b/networkx/readwrite/tests/test_gexf.py
-@@ -404,7 +404,8 @@ def test_numpy_type(self):
- nx.set_node_attributes(G, {n: n for n in numpy.arange(4)}, 'number')
- G[0][1]['edge-number'] = numpy.float64(1.1)
-
-- expected = """<gexf version="1.2" xmlns="http://www.gexf.net/1.2draft"\
-+ if sys.version_info < (3, 8):
-+ expected = """<gexf version="1.2" xmlns="http://www.gexf.net/1.2draft"\
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation\
- ="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd">
- <meta lastmodifieddate="{}">
-@@ -449,6 +450,54 @@ def test_numpy_type(self):
- <edge id="2" source="2" target="3" />
- </edges>
- </graph>
-+</gexf>""".format(time.strftime('%Y-%m-%d'), nx.__version__)
-+ else:
-+ expected = """<gexf xmlns="http://www.gexf.net/1.2draft"\
-+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation\
-+="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd"\
-+ version="1.2">
-+ <meta lastmodifieddate="{}">
-+ <creator>NetworkX {}</creator>
-+ </meta>
-+ <graph defaultedgetype="undirected" mode="static" name="">
-+ <attributes mode="static" class="edge">
-+ <attribute id="1" title="edge-number" type="float" />
-+ </attributes>
-+ <attributes mode="static" class="node">
-+ <attribute id="0" title="number" type="int" />
-+ </attributes>
-+ <nodes>
-+ <node id="0" label="0">
-+ <attvalues>
-+ <attvalue for="0" value="0" />
-+ </attvalues>
-+ </node>
-+ <node id="1" label="1">
-+ <attvalues>
-+ <attvalue for="0" value="1" />
-+ </attvalues>
-+ </node>
-+ <node id="2" label="2">
-+ <attvalues>
-+ <attvalue for="0" value="2" />
-+ </attvalues>
-+ </node>
-+ <node id="3" label="3">
-+ <attvalues>
-+ <attvalue for="0" value="3" />
-+ </attvalues>
-+ </node>
-+ </nodes>
-+ <edges>
-+ <edge source="0" target="1" id="0">
-+ <attvalues>
-+ <attvalue for="1" value="1.1" />
-+ </attvalues>
-+ </edge>
-+ <edge source="1" target="2" id="1" />
-+ <edge source="2" target="3" id="2" />
-+ </edges>
-+ </graph>
- </gexf>""".format(time.strftime('%Y-%m-%d'), nx.__version__)
- obtained = '\n'.join(nx.generate_gexf(G))
- assert expected == obtained
diff --git a/testing/py3-nikola/APKBUILD b/testing/py3-nikola/APKBUILD
index f07430022eb..3d35c003db3 100644
--- a/testing/py3-nikola/APKBUILD
+++ b/testing/py3-nikola/APKBUILD
@@ -1,33 +1,45 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-nikola
-_pkgname=Nikola
-pkgver=8.0.4
-pkgrel=0
+_pyname=Nikola
+pkgver=8.3.0
+pkgrel=2
pkgdesc="Modular, fast, simple, static python website generator"
+options="!check" # Tests require more packages
url="https://getnikola.com"
-# s390x: py3-piexif
-# aarch64: py3-inotify
-arch="noarch !s390x !aarch64"
+# armv7, armhf, s390x, x86: py3-piexif
+arch="noarch !armv7 !armhf !s390x !x86"
license="MIT"
depends="py3-babel py3-blinker py3-doit py3-dateutil py3-docutils py3-logbook
py3-lxml py3-mako py3-markdown py3-natsort py3-piexif py3-pillow
- py3-pygments py3-pyphen py3-pyrss2gen py3-requests py3-setuptools
- py3-unidecode py3-yapsy"
-subpackages="$pkgname-doc"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+ py3-pygments py3-pyphen py3-pyrss2gen py3-requests py3-unidecode py3-yapsy
+ "
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+source="https://files.pythonhosted.org/packages/source/N/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pyname-$pkgver
-replaces="py-nikola" # Backwards compatibility
+replaces="py-nikola" # Backwards compatibility
provides="py-nikola=$pkgver-r$pkgrel" # Backwards compatibility
+subpackages="$pkgname-doc $pkgname-pyc"
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
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
}
-sha512sums="eb6774d11be4eab81fbe41115d80e5d0d38694b734431d5d6355fcd3e3d8ae5ff4a02114c5dd0dbbc9e1ea5a625e9ac2b6b91e82f6e017b4376e4ca8d56cfec7 Nikola-8.0.4.tar.gz"
+sha512sums="
+9b25eb90fa560b45e8cd0b03f24523859548353f2a4d2ac91b23b05bfb614d20456bb71f1aaa5702b6d6ab7980696aeb2f5ccc3c00ebc648cfcad49619481247 Nikola-8.3.0.tar.gz
+"
diff --git a/testing/py3-nmap/APKBUILD b/testing/py3-nmap/APKBUILD
index 04a3ee2d1b8..eee0a019203 100644
--- a/testing/py3-nmap/APKBUILD
+++ b/testing/py3-nmap/APKBUILD
@@ -2,16 +2,17 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-nmap
_pkgname=nmap
-pkgver=0.6.1
-pkgrel=4
+pkgver=0.7.1
+pkgrel=3
pkgdesc="Python3 class to use nmap and access scan results"
-options="!check" # Some tests fail due to missing file
+options="!check" # tests prompt for doas password (wtf)
url="http://xael.org/pages/python-nmap-en.html"
arch="noarch"
license="GPL-3.0-or-later"
depends="nmap"
makedepends="py3-setuptools"
checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
source="http://xael.org/pages/python-$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/python-$_pkgname-$pkgver
@@ -27,7 +28,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="8de9ba6d0a4cecce09e82765b8a9ac77fb4368298d5a5f9ce07b7737a90def795f1ad00885fc73ec720bea2a592230e86aaca8cacd884c9299f64ad934bcee18 python-nmap-0.6.1.tar.gz"
+sha512sums="
+3a1d3b7120527d56148ddf3589bf8c4b749bb549e93c65a973d3edacb492656d0060d82606f88c5d1342dabdce00b8957bf09e01a5ce42f3a670ff3778d9e0ea python-nmap-0.7.1.tar.gz
+"
diff --git a/testing/py3-nose-of-yeti/APKBUILD b/testing/py3-nose-of-yeti/APKBUILD
new file mode 100644
index 00000000000..17d95747933
--- /dev/null
+++ b/testing/py3-nose-of-yeti/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-nose-of-yeti
+pkgver=2.4.8
+pkgrel=1
+pkgdesc="Nose plugin that provides an RSpec inspired dsl for python"
+url="https://noseofyeti.readthedocs.io/"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-gpep517 py3-hatchling py3-installer"
+checkdepends="py3-pytest py3-pytest-helpers-namespace py3-pytest-asyncio"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/delfick/nose-of-yeti/archive/refs/tags/release-$pkgver.tar.gz
+ use-pytest-asyncio.patch
+ "
+builddir="$srcdir/nose-of-yeti-release-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+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 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+b0fd267e90ec73713f4f3ce9482b93e1cc4f36dfae3bbce12dac4e9fb2851b620f8d996f0567327f1517bc4cbe5a3c634edc2341ac6ba73e785e89aa94c43dde py3-nose-of-yeti-2.4.8.tar.gz
+8c834594f02b5a98645c717b4de21ccd33f7f9d70be7f38b1745a405c2078ebc168cc72309698457811631e72f96e1e8a6ebd063d7e697390bfbed6cb850e55c use-pytest-asyncio.patch
+"
diff --git a/testing/py3-nose-of-yeti/use-pytest-asyncio.patch b/testing/py3-nose-of-yeti/use-pytest-asyncio.patch
new file mode 100644
index 00000000000..739a20e26ad
--- /dev/null
+++ b/testing/py3-nose-of-yeti/use-pytest-asyncio.patch
@@ -0,0 +1,20 @@
+diff --git a/tests/for_pytest_plugin/test_two.py b/tests/for_pytest_plugin/test_two.py
+index 4f24a43..acd1668 100644
+--- a/tests/for_pytest_plugin/test_two.py
++++ b/tests/for_pytest_plugin/test_two.py
+@@ -27,6 +27,7 @@ describe "one":
+ def collector(self):
+ return 3
+
++ @pytest.mark.asyncio
+ async it "seven", register, collector:
+ assert register == 2
+ assert collector == 3
+@@ -37,6 +38,7 @@ describe "one":
+ def collector(self):
+ return 4
+
++ @pytest.mark.asyncio
+ async it "nine", register, collector:
+ assert register == 2
+ assert collector == 4
diff --git a/testing/py3-nose-timer/APKBUILD b/testing/py3-nose-timer/APKBUILD
index feb8fe14115..39828cbbc3b 100644
--- a/testing/py3-nose-timer/APKBUILD
+++ b/testing/py3-nose-timer/APKBUILD
@@ -2,16 +2,19 @@
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=py3-nose-timer
_pkgname=nose-timer
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="A timer plugin for nosetests that answers the question: how much time does every test take?"
+pkgver=1.0.1
+pkgrel=5
+pkgdesc="timer plugin for nosetests that answers the question: how much time does every test take?"
url="https://github.com/mahmoudimus/nose-timer/"
-arch="noarch !mips !mips64" # blocked by py3-parameterized
+arch="noarch"
license="MIT"
depends="py3-nose"
makedepends="py3-setuptools"
-checkdepends="py3-coverage py3-mock py3-parameterized py3-termcolor"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mahmoudimus/nose-timer/archive/v$pkgver.tar.gz"
+checkdepends="py3-coverage py3-mock py3-parameterized py3-termcolor py3-colorama"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mahmoudimus/nose-timer/archive/v$pkgver.tar.gz
+ assertEquals.patch
+ "
builddir="$srcdir/"$_pkgname-$pkgver
build() {
@@ -19,11 +22,14 @@ build() {
}
check() {
- python3 setup.py test
+ FORCE_COLOR=1 python3 setup.py test
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="1afca31d422fc0306721cdcf4e6f23a88dffdbd85e3ec83d6a72c59c584f3919f17f0042129993d857bbf6f4105f58e989a7ee71835a7debf2844d674e587344 py3-nose-timer-1.0.0.tar.gz"
+sha512sums="
+ee6b6378998db06892959056916750b094546cc2fbef32cfbdad9dd7b941c21d20eb31eab3f4a32de29b66ba5a33312dd97423778057eee24c861488c110afc7 py3-nose-timer-1.0.1.tar.gz
+822f06d74be76170980076a2fca0336dea76b5988acc55528f688a1587f2fc454018bc7ae39098fd9f7da7348f69d91274d84c7d6e48235c171b50787b081bb4 assertEquals.patch
+"
diff --git a/testing/py3-nose-timer/assertEquals.patch b/testing/py3-nose-timer/assertEquals.patch
new file mode 100644
index 00000000000..35fb93ab0f8
--- /dev/null
+++ b/testing/py3-nose-timer/assertEquals.patch
@@ -0,0 +1,9 @@
+diff --git a/tests/test_plugin.py b/tests/test_plugin.py
+index 20cbcf2..da82e01 100644
+--- a/tests/test_plugin.py
++++ b/tests/test_plugin.py
+@@ -105,3 +105,3 @@ class TestTimerPlugin(unittest.TestCase):
+ self.assertTrue(hasattr(self.plugin, '_timer'))
+- self.assertNotEquals(self.plugin._time_taken(), 0.0)
++ self.assertNotEqual(self.plugin._time_taken(), 0.0)
+
diff --git a/testing/py3-notifymail/APKBUILD b/testing/py3-notifymail/APKBUILD
index 8b682d4becd..1da42226907 100644
--- a/testing/py3-notifymail/APKBUILD
+++ b/testing/py3-notifymail/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-notifymail
_pkgname=notifymail
pkgver=1.1
-pkgrel=2
+pkgrel=7
pkgdesc="A Python module to send emails"
url="https://github.com/davidfstr/notifymail/"
arch="noarch"
@@ -12,6 +12,7 @@ replaces="py-notifymail" # for backwards compatibility
provides="py-notifymail=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -22,7 +23,7 @@ build() {
package() {
cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="f06bf000c0855c852bc4fccfb5da5c625bbabe334640dc6557e6518a5657b61ec2fd546cb92ef63cb66b64c6ce469cfb94da21f844e1c6934cc1339a08fe3f1a notifymail-1.1.tar.gz"
diff --git a/testing/py3-nptyping/APKBUILD b/testing/py3-nptyping/APKBUILD
new file mode 100644
index 00000000000..cd484758d90
--- /dev/null
+++ b/testing/py3-nptyping/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-nptyping
+_pyname=nptyping
+pkgver=2.5.0
+pkgrel=2
+pkgdesc="Type hints for Numpy"
+url="https://github.com/ramonhagenaars/nptyping"
+arch="noarch"
+license="MIT"
+depends="python3 py3-numpy"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-typeguard py3-beartype py3-mypy py3-wheel py3-pandas"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/ramonhagenaars/nptyping/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # FIXME! also look into the ignored tests below
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ # disable tests which require network or pyright (python wrapper for the type
+ # checker implemented in js, which just downloads it using npx)
+ #
+ # mypy tests are currently broken as pandas doesn't package type hints
+ pytest \
+ --ignore tests/test_wheel.py \
+ --ignore tests/test_package_info.py \
+ --ignore tests/test_pyright.py \
+ --ignore tests/pandas_/test_fork_sync.py \
+ --ignore tests/test_mypy.py \
+ --ignore tests/pandas_/test_mypy_dataframe.py \
+ --ignore tests/test_beartype.py
+
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="
+2cde9c5f7694d4f916b85c93b86df7f72709a70b2ffa91b7bbc98c5884236f5b36bb545a89c37e8c02a9b460065c97151d77c64f8d93b92fd93bcff406f039d9 nptyping-2.5.0.tar.gz
+"
diff --git a/testing/py3-ntplib/APKBUILD b/testing/py3-ntplib/APKBUILD
index e336d3420b0..55581b71675 100644
--- a/testing/py3-ntplib/APKBUILD
+++ b/testing/py3-ntplib/APKBUILD
@@ -2,27 +2,33 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-ntplib
_pkgname=ntplib
-pkgver=0.3.3
-pkgrel=3
+pkgver=0.4.0
+pkgrel=4
pkgdesc="Python module that offers a simple interface to query NTP servers"
-url="https://pypi.python.org/pypi/ntplib"
+options="net" # Requires connecting to pool.ntp.org
+url="https://pypi.org/project/ntplib"
arch="noarch"
license="MIT"
replaces="py-ntplib" # for backwards compatibility
provides="py-ntplib=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
makedepends="python3-dev py3-setuptools"
-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/cf-natali/ntplib/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
- cd "$builddir"
python3 setup.py build
}
+check() {
+ python3 -m unittest
+}
+
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="4175ebb78228475b32744a59ad4c404f7b88344859c19874606967c7d83a4680bbc78ff42d13b866b8e6ef939d2f1948b0a0b42819c78a8520856bae48ec907f ntplib-0.3.3.tar.gz"
+sha512sums="
+ad735b1bccc4dc149622423b2877dc1d4b461f245dd0bd5b0cf963918ea63806772783e03eb8a66c75934746981fbd28789f19efa339c87b2f83e8218ee4a4c3 py3-ntplib-0.4.0.tar.gz
+"
diff --git a/testing/py3-num2words/APKBUILD b/testing/py3-num2words/APKBUILD
deleted file mode 100644
index e6f68006175..00000000000
--- a/testing/py3-num2words/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-num2words
-pkgver=0.5.10
-pkgrel=1
-pkgdesc="Modules to convert numbers to words"
-url="https://github.com/savoirfairelinux/num2words"
-arch="noarch"
-license="LGPL-2.1-or-later"
-depends="python3 py3-docopt py3-delegator"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/n/num2words/num2words-$pkgver.tar.gz"
-options="!check" # Broken tests
-builddir="$srcdir/num2words-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="16938cc3af36719975986b2d9caeb3853ca5a11fa7d982531420296f4c3730b096efb16d24d84a5260a2510914ab86436083dc9c63a372728cf745f3a1a5ba77 num2words-0.5.10.tar.gz"
diff --git a/testing/py3-numpy-stl/APKBUILD b/testing/py3-numpy-stl/APKBUILD
new file mode 100644
index 00000000000..6ef430bd527
--- /dev/null
+++ b/testing/py3-numpy-stl/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-numpy-stl
+pkgver=3.0.1
+pkgrel=2
+pkgdesc="Library for working with STLs"
+url="https://github.com/WoLpH/numpy-stl"
+# s390x: no py3-utils
+arch="noarch !s390x"
+license="BSD-3-Clause"
+depends="python3 py3-utils py3-numpy"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wolph/numpy-stl/releases/download/v$pkgver/numpy-stl-$pkgver.tar.gz"
+builddir="$srcdir/numpy-stl-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ # deselected test needs xvfb-run and fails
+ pytest \
+ --deselect tests/test_ascii.py::test_use_with_qt_with_custom_locale_decimal_delimeter
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+d01abb8f54738600ce36c8c44e1392957061030e7accbbfa0352aea4a904323a96712099146b311ce9518f243317c25c47cfb30930469602c0ad439de9f43c5f py3-numpy-stl-3.0.1.tar.gz
+"
diff --git a/testing/py3-nwdiag/APKBUILD b/testing/py3-nwdiag/APKBUILD
index 20aa725bcba..d70f968885c 100644
--- a/testing/py3-nwdiag/APKBUILD
+++ b/testing/py3-nwdiag/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-nwdiag
_pkgname=nwdiag
-pkgver=2.0.0
-pkgrel=0
+pkgver=3.0.0
+pkgrel=2
pkgdesc="Generate network-diagram image file from spec-text file"
-url="https://pypi.python.org/pypi/nwdiag"
+url="https://pypi.org/project/nwdiag"
arch="noarch"
license="Apache-2.0"
depends="py3-funcparserlib py3-blockdiag py3-pillow"
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
@@ -21,7 +22,10 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/rackdiag/tests
}
-sha512sums="b9064c56955c68074e6c9e262f90fadde5b0c9412d86e6fe3c7f76745638fb02a62ab720b515d3b81d1b896cac18df55622893d73380dfe003a4004b0b8b50e5 nwdiag-2.0.0.tar.gz"
+sha512sums="
+3443d2599c91c2e1a267172fe1c35ead18f733d4eebb7313597fdae3b8cac9cd8e0c2700750aef5b2a332851cc3e6a1942d3ffe165f55cdd68dc54430f0dd86f nwdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-onelogin/APKBUILD b/testing/py3-onelogin/APKBUILD
new file mode 100644
index 00000000000..db6bdbab51f
--- /dev/null
+++ b/testing/py3-onelogin/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
+# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
+pkgname=py3-onelogin
+_pkgname=onelogin-python-sdk
+pkgver=3.1.6
+pkgrel=1
+pkgdesc="OpenAPI Specification for OneLogin"
+url="https://github.com/onelogin/onelogin-python-sdk"
+license="MIT"
+arch="noarch"
+depends="
+ py3-dateutil
+ py3-urllib3
+ py3-frozendict
+ py3-typing-extensions
+ py3-certifi
+ "
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+ py3-pytest-randomly
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/onelogin/onelogin-python-sdk/archive/$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+subpackages="$pkgname-pyc"
+options="!check" # Failure due to factory-boy issues
+
+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 "$builddir"/.dist/*.whl
+ .testenv/bin/python3 -m pytest --cov=onelogin -v
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+44fccb05e82c55db82617c33cc0e2287699969d9a7f12a4992c0cd35c28b2215c66bef37849e45b5506df11524d1b143a2ab3ae16f001af51f0135c92d0801a4 py3-onelogin-3.1.6.tar.gz
+"
+
diff --git a/testing/py3-openapi-codec/APKBUILD b/testing/py3-openapi-codec/APKBUILD
index 293aedc36d0..2fb77ee4b43 100644
--- a/testing/py3-openapi-codec/APKBUILD
+++ b/testing/py3-openapi-codec/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-openapi-codec
_pkgname=python-openapi-codec
pkgver=1.3.2
-pkgrel=4
+pkgrel=9
pkgdesc="OpenAPI codec for Core API"
url="https://github.com/core-api/python-openapi-codec"
arch="noarch"
@@ -11,8 +11,10 @@ license="BSD-2-Clause"
depends="py3-core-api"
makedepends="py3-setuptools"
checkdepends="py3-coverage py3-pytest py3-jinja2 py3-pycodestyle py3-pyflakes"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/core-api/$_pkgname/archive/$pkgver.tar.gz
disable-flake8-tests-that-requires-pyflake15.patch
+ assertEquals.patch
"
replaces="py-openapi-codec" # Backwards compatibility
@@ -25,12 +27,15 @@ build() {
}
package() {
- python3 setup.py --quiet install --prefix=/usr --root="$pkgdir"
+ python3 setup.py --quiet install --skip-build --root="$pkgdir"
}
check() {
python3 runtests
}
-sha512sums="566c82643bd6ad3e9bc444ceb9a518cb8bdddc9239f43e8bcce69d3b425a9d62b5d56d56cbe685fb0d054c1c3e33a19b010d5f8b4469d1c98fd092742b17bb22 py3-openapi-codec-1.3.2.tar.gz
-6807f1d48f17bcec58642037e262246b818fb0e5d522606c46fbe343fd2c7d5388a40d29e6d361ad34d92611a1eb24e29cc78377472bd608503a71c8e8017363 disable-flake8-tests-that-requires-pyflake15.patch"
+sha512sums="
+566c82643bd6ad3e9bc444ceb9a518cb8bdddc9239f43e8bcce69d3b425a9d62b5d56d56cbe685fb0d054c1c3e33a19b010d5f8b4469d1c98fd092742b17bb22 py3-openapi-codec-1.3.2.tar.gz
+6807f1d48f17bcec58642037e262246b818fb0e5d522606c46fbe343fd2c7d5388a40d29e6d361ad34d92611a1eb24e29cc78377472bd608503a71c8e8017363 disable-flake8-tests-that-requires-pyflake15.patch
+187935b5c43b30089da2c467c5e0cf17a717f02ec78b9cea05ac5b0369086233ed6dc125d3eb4bf4011b9baa069e276a9bc77e965712f72e7884e995cdc00c8e assertEquals.patch
+"
diff --git a/testing/py3-openapi-codec/assertEquals.patch b/testing/py3-openapi-codec/assertEquals.patch
new file mode 100644
index 00000000000..3caba7c0518
--- /dev/null
+++ b/testing/py3-openapi-codec/assertEquals.patch
@@ -0,0 +1,43 @@
+diff --git a/tests/test_encode.py b/tests/test_encode.py
+index 429a9f0..b6ecf2a 100644
+--- a/tests/test_encode.py
++++ b/tests/test_encode.py
+@@ -22,3 +22,3 @@ class TestBasicInfo(TestCase):
+ }
+- self.assertEquals(self.swagger['info'], expected)
++ self.assertEqual(self.swagger['info'], expected)
+
+@@ -27,3 +27,3 @@ class TestBasicInfo(TestCase):
+ expected = '2.0'
+- self.assertEquals(self.swagger['swagger'], expected)
++ self.assertEqual(self.swagger['swagger'], expected)
+
+@@ -32,3 +32,3 @@ class TestBasicInfo(TestCase):
+ expected = 'www.example.com'
+- self.assertEquals(self.swagger['host'], expected)
++ self.assertEqual(self.swagger['host'], expected)
+
+@@ -37,3 +37,3 @@ class TestBasicInfo(TestCase):
+ expected = ['https']
+- self.assertEquals(self.swagger['schemes'], expected)
++ self.assertEqual(self.swagger['schemes'], expected)
+
+@@ -74,3 +74,3 @@ class TestPaths(TestCase):
+ }
+- self.assertEquals(self.swagger['paths'][self.path]['get'], expected)
++ self.assertEqual(self.swagger['paths'][self.path]['get'], expected)
+ expected = {
+@@ -85,3 +85,3 @@ class TestPaths(TestCase):
+ }
+- self.assertEquals(self.swagger['paths'][self.path]['post'], expected)
++ self.assertEqual(self.swagger['paths'][self.path]['post'], expected)
+
+@@ -99,3 +99,3 @@ class TestParameters(TestCase):
+ def test_expected_fields(self):
+- self.assertEquals(len(self.swagger), 1)
++ self.assertEqual(len(self.swagger), 1)
+ expected = {
+@@ -107,2 +107,2 @@ class TestParameters(TestCase):
+ }
+- self.assertEquals(self.swagger[0], expected)
++ self.assertEqual(self.swagger[0], expected)
diff --git a/testing/py3-openssh-wrapper/APKBUILD b/testing/py3-openssh-wrapper/APKBUILD
new file mode 100644
index 00000000000..81a767f3471
--- /dev/null
+++ b/testing/py3-openssh-wrapper/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-openssh-wrapper
+pkgver=0.5_git20130425
+_commit=bbae8f9085ee341ea9f34231c8b716aa0d9b3a49
+pkgrel=4
+pkgdesc="Python wrapper around OpenSSH client"
+url="https://github.com/NetAngels/openssh-wrapper"
+arch="noarch"
+license="BSD"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/NetAngels/openssh-wrapper/archive/$_commit/py3-openssh-wrapper-$pkgver.tar.gz"
+builddir="$srcdir/openssh-wrapper-$_commit"
+options="!check" # requires ssh daemon on localhost
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+7b41f37aa4051e62efda1014543e395e396b9ce5e5b4a291cc4af6b31331b634818ff040bc385834ac26432b5d83cd6ac1767ecfd89c8902fe1d07a0b725a3e5 py3-openssh-wrapper-0.5_git20130425.tar.gz
+"
diff --git a/testing/py3-openwisp-utils/APKBUILD b/testing/py3-openwisp-utils/APKBUILD
new file mode 100644
index 00000000000..8e992c52431
--- /dev/null
+++ b/testing/py3-openwisp-utils/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Alex Denes <caskd@redxen.eu>
+# Maintainer: Alex Denes <caskd@redxen.eu>
+_pkgname=openwisp-utils
+pkgname="py3-$_pkgname"
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Python and Django utilities shared between different openwisp modules"
+url="https://github.com/openwisp/openwisp-utils"
+arch="noarch"
+license="BSD-3-Clause"
+depends="
+ py3-django-compress-staticfiles
+ py3-django-filter
+ py3-django-model-utils
+ py3-django-rest-framework
+ py3-drf-yasg
+ py3-swapper
+ python3
+"
+checkdepends="
+ py3-openwisp-controller
+"
+makedepends="py3-setuptools_scm"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/openwisp/openwisp-utils/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # circular dependency caused by testing suite (controller <=> utils)
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 runtests.py
+}
+
+package() {
+ python3 setup.py install --root "$pkgdir"
+}
+
+sha512sums="
+3ea32fc87f789a94221154ab17893b04d59f58cc542b6315117895195c019356a8a41495a77f28c382425e246c536c78ad2e5196fd01ed3b5e4d6923879be1ab py3-openwisp-utils-1.0.4.tar.gz
+"
diff --git a/testing/py3-optuna/APKBUILD b/testing/py3-optuna/APKBUILD
new file mode 100644
index 00000000000..69c05fd357f
--- /dev/null
+++ b/testing/py3-optuna/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+# Maintainer: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+pkgname=py3-optuna
+_pkgorig=optuna
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Hyperparameter optimization framework"
+url="https://optuna.org"
+arch="noarch"
+license="MIT"
+depends="
+ python3
+ py3-alembic
+ py3-colorlog
+ py3-cmaes
+ py3-numpy
+ py3-packaging
+ py3-scipy
+ py3-sqlalchemy
+ py3-tqdm
+ py3-yaml
+ "
+checkdepends="
+ python3-dev
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/optuna/optuna/archive/v$pkgver/$_pkgorig-$pkgver.tar.gz"
+builddir="$srcdir/optuna-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+# several test dependencies are missing | use smoke tests now
+check() {
+ PYTHONPATH=build/lib python3 -c "import optuna"
+}
+
+package() {
+ python3 -m installer --destdir="$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+f8c04157c9dd8a82ecd2034ef818ead99580724c3c06c16e93bf996441432051a6fecd31ca11de9e75586f81fe566892dcbc32148b57e2801b02c9fa28c79bf7 optuna-3.6.1.tar.gz
+"
diff --git a/testing/py3-orderedmultidict/APKBUILD b/testing/py3-orderedmultidict/APKBUILD
index d18ee6a1691..30d47964db8 100644
--- a/testing/py3-orderedmultidict/APKBUILD
+++ b/testing/py3-orderedmultidict/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-orderedmultidict
_pkgname=orderedmultidict
pkgver=1.0.1
-pkgrel=1
+pkgrel=6
pkgdesc="Ordered Multivalue Dictionary"
url="https://github.com/gruns/orderedmultidict"
arch="noarch"
@@ -11,6 +11,7 @@ license="Unlicense"
depends="py3-six"
makedepends="py3-setuptools"
checkdepends="py3-pycodestyle py3-flake8"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/"$_pkgname-$pkgver
@@ -23,7 +24,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="5a826bb46dfe9d7e6e2159bf545612a35dd0f1bb5817c1fd78e0f3f4019f9144b36be94af08f87e881a310f593091df09702d001624c377f559a30f64b219c24 orderedmultidict-1.0.1.tar.gz"
diff --git a/testing/py3-osqp/APKBUILD b/testing/py3-osqp/APKBUILD
new file mode 100644
index 00000000000..b383039a5d1
--- /dev/null
+++ b/testing/py3-osqp/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=py3-osqp
+pkgver=0.6.2
+pkgrel=5
+pkgdesc="python interface for OSQP"
+url="https://osqp.org/"
+arch="all !x86 !armv7 !armhf" # py3-qdldl doesnt compile on these arches
+license="Apache-2.0"
+depends="python3 py3-qdldl"
+makedepends="py3-setuptools py3-wheel cmake py3-numpy-dev python3-dev"
+checkdepends="py3-pytest"
+subpackages="$pkgname-dev $pkgname-pyc"
+source="osqp-python-$pkgver.tar.gz::https://github.com/osqp/osqp-python/archive/refs/tags/v$pkgver.post0.tar.gz
+ osqp-$pkgver.tar.gz::https://github.com/osqp/osqp/releases/download/v$pkgver/complete_sources.tar.gz"
+builddir="$srcdir/osqp-python-$pkgver.post0"
+options="!check" # cant get checks to work
+
+prepare() {
+ default_prepare
+ rmdir osqp_sources
+ mv ../osqp osqp_sources
+}
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+05f725069ff94b81f3fe7da4fa7b552d749bdfa5adb97f780781c27f7f2f51dd16b64d8f830cfa16bd77d2613f4e0c3f5e01dd97bf42a4d9b6a483fcd986134d osqp-python-0.6.2.tar.gz
+10145d4ce9d4eb692a482e27f1bcea6cc871d1a518b0558f658d4764ebac09f633bc69598446647b775094d748fd465cfc39c09ac4525ae3f5dc65e51bf58b12 osqp-0.6.2.tar.gz
+"
diff --git a/testing/py3-outcome/APKBUILD b/testing/py3-outcome/APKBUILD
deleted file mode 100644
index bdc6cbec076..00000000000
--- a/testing/py3-outcome/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-outcome
-pkgver=1.0.1
-pkgrel=0
-pkgdesc="Capture the outcome of Python function calls"
-url="https://github.com/python-trio/outcome"
-arch="noarch"
-license="MIT OR Apache-2.0"
-depends="python3 py3-attrs py3-async_generator"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/o/outcome/outcome-$pkgver.tar.gz"
-builddir="$srcdir/outcome-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="891ce0a3154972e36eaaf4954866b6869f961d05d22bbecdfcbb8cf8b5352db22ee994cd67f6074e425c3a4f452c73013f421f67cd593ca831e8fe04c730b9d2 outcome-1.0.1.tar.gz"
diff --git a/testing/py3-ovos-backend-client/APKBUILD b/testing/py3-ovos-backend-client/APKBUILD
new file mode 100644
index 00000000000..6d329352f1f
--- /dev/null
+++ b/testing/py3-ovos-backend-client/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-backend-client
+pkgver=0.1.0_alpha13
+pkgrel=1
+pkgdesc="Unofficial python api for interaction with https://api.mycroft.ai"
+url="https://github.com/OpenVoiceOS/ovos-backend-client"
+# s390x blocked by py3-speechrecognition
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-json-database
+ py3-ovos-bus-client
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-speechrecognition
+ py3-timezonefinder
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/OpenVoiceOS/ovos-backend-client/archive/V${pkgver//_alpha/a}/ovos-backend-client-${pkgver//_alpha/a}.tar.gz"
+builddir="$srcdir/ovos-backend-client-${pkgver//_alpha/a}"
+
+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="
+8da8176974b3341bbaa49e3149061dfede0e0748151e7194b75a64070251de1d453b5d010325aaa544e6ae2808aaed54308b626e8df213939348d5b5e4473196 ovos-backend-client-0.1.0a13.tar.gz
+"
diff --git a/testing/py3-ovos-bus-client/APKBUILD b/testing/py3-ovos-bus-client/APKBUILD
new file mode 100644
index 00000000000..da241940c27
--- /dev/null
+++ b/testing/py3-ovos-bus-client/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-bus-client
+pkgver=0.0.5
+pkgrel=1
+pkgdesc="A simple interface for the mycroft messagebus and can be used to connect to ovos"
+url="https://github.com/OpenVoiceOS/ovos-bus-client"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-config
+ py3-ovos-utils
+ py3-pyee
+ py3-websocket-client
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-bus-client/archive/refs/tags/V$pkgver.tar.gz"
+builddir="$srcdir/ovos-bus-client-$pkgver"
+
+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
+ # Disabled tests have broken imports
+ .testenv/bin/python3 -m pytest -k 'not test_class_patching and not test_inheritance' \
+ --ignore test/unittests/test_compat.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+5e61190fb8774174ba8594ceb2db170a0ca29afb0b941c6081f8ebc3ae3ca5813f325155016d2255d0d674b6ccc7ff02d74f9a458aca716b98dafeaa647cd62b py3-ovos-bus-client-0.0.5.tar.gz
+"
diff --git a/testing/py3-ovos-classifiers/APKBUILD b/testing/py3-ovos-classifiers/APKBUILD
new file mode 100644
index 00000000000..5c046a1f1a5
--- /dev/null
+++ b/testing/py3-ovos-classifiers/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-classifiers
+pkgver=0.0.0_alpha37
+pkgrel=1
+pkgdesc="Open during construction"
+url="https://github.com/OpenVoiceOS/ovos-classifiers"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-dateutil
+ py3-joblib
+ py3-nltk
+ py3-ovos-utils
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-ovos-plugin-manager
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-classifiers/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz
+ assertEquals.patch
+ "
+builddir="$srcdir/ovos-classifiers-${pkgver//_alpha/a}"
+
+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
+ # test/unittests/test_opm.py is broken
+ .testenv/bin/python3 -m pytest \
+ --ignore test/unittests/test_opm.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f81a49f0711cb1f033300beefea7c211b147e095b8a0d00b18b4ea54a6e7cf2dcc586414a3b3e737189f058d72218f354e5e618f7af2e0539ab5f4fdf4fe84b5 py3-ovos-classifiers-0.0.0_alpha37.tar.gz
+6ed6be4095a9bcf07196c5ee867fcb6c53114dc7f5c4a58eac52371ab63e629e39b3f9cf15f80e2bf74be7f5439072c02beedcecd3e4f2e8db839eead0a308bb assertEquals.patch
+"
diff --git a/testing/py3-ovos-classifiers/assertEquals.patch b/testing/py3-ovos-classifiers/assertEquals.patch
new file mode 100644
index 00000000000..0c7769cbe0f
--- /dev/null
+++ b/testing/py3-ovos-classifiers/assertEquals.patch
@@ -0,0 +1,18 @@
+diff --git a/test/unittests/test_numeric.py b/test/unittests/test_numeric.py
+index a32fe5e..cd1e781 100644
+--- a/test/unittests/test_numeric.py
++++ b/test/unittests/test_numeric.py
+@@ -11,9 +11,9 @@ class TestEnglish(unittest.TestCase):
+
+- self.assertEquals(parser.convert_words_to_numbers("this is test number two"),
++ self.assertEqual(parser.convert_words_to_numbers("this is test number two"),
+ "this is test number 2")
+- self.assertEquals(parser.convert_words_to_numbers("this is test number two and a half"),
++ self.assertEqual(parser.convert_words_to_numbers("this is test number two and a half"),
+ "this is test number 2.5")
+- self.assertEquals(parser.convert_words_to_numbers("this is the first test"),
++ self.assertEqual(parser.convert_words_to_numbers("this is the first test"),
+ "this is the first test")
+- self.assertEquals(parser.convert_words_to_numbers("this is the first test", ordinals=True),
++ self.assertEqual(parser.convert_words_to_numbers("this is the first test", ordinals=True),
+ "this is the 1 test")
diff --git a/testing/py3-ovos-config/APKBUILD b/testing/py3-ovos-config/APKBUILD
new file mode 100644
index 00000000000..79a6596e564
--- /dev/null
+++ b/testing/py3-ovos-config/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-config
+pkgver=0.0.11
+pkgrel=1
+pkgdesc="OVOS configuration manager library"
+url="https://github.com/OpenVoiceOS/ovos-config"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-combo-lock
+ py3-dateutil
+ py3-ovos-utils
+ py3-ovos-utils
+ py3-rich-click
+ py3-watchdog
+ py3-yaml
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/OpenVoiceOS/ovos-config/archive/V$pkgver/ovos-config-$pkgver.tar.gz"
+builddir="$srcdir/ovos-config-$pkgver"
+
+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="
+a82e9d70c1776331c8531e16a5941f2a975a0fc89f1c17e7ca2de094ff38b848adfde522e2310b65ccda8d74900f3031445cdcb5650e50adaf240bb6fd7a7e26 ovos-config-0.0.11.tar.gz
+"
diff --git a/testing/py3-ovos-media-plugin-simple/APKBUILD b/testing/py3-ovos-media-plugin-simple/APKBUILD
new file mode 100644
index 00000000000..263c178ef0b
--- /dev/null
+++ b/testing/py3-ovos-media-plugin-simple/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-media-plugin-simple
+pkgver=0.0.1
+pkgrel=1
+pkgdesc="OVOS simple audio plugin"
+url="https://github.com/OpenVoiceOS/ovos-media-plugin-simple"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-ovos-plugin-manager"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-media-plugin-simple/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-media-plugin-simple-$pkgver"
+
+replaces="py3-ovos-audio-plugin-simple"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+7b4ab41f1d549a18bdb8e3b0395bd6b849a53daf63c111ac9cdb538c7969a93689bf12c5f40c1a14497e69d5f9b137a6020b27f454870d50758ff95ce75e654e py3-ovos-media-plugin-simple-0.0.1.tar.gz
+"
diff --git a/testing/py3-ovos-microphone-plugin-alsa/APKBUILD b/testing/py3-ovos-microphone-plugin-alsa/APKBUILD
new file mode 100644
index 00000000000..9cf57f24162
--- /dev/null
+++ b/testing/py3-ovos-microphone-plugin-alsa/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-microphone-plugin-alsa
+pkgver=0.0.0
+pkgrel=1
+pkgdesc="OpenVoiceOS Microphone plugin"
+url="https://github.com/OpenVoiceOS/ovos-microphone-plugin-alsa"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-plugin-manager
+ py3-pyalsaaudio
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-microphone-plugin-alsa/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-microphone-plugin-alsa-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+a70124794bdf16b6aae84a47e7c454c7670f01679e48d58bb3796434de3f2c07222ce69880de21c3ede691c886a9aa1b7403580fa42bced263b5bcafd45ed3c3 py3-ovos-microphone-plugin-alsa-0.0.0.tar.gz
+"
diff --git a/testing/py3-ovos-ocp-audio-plugin/APKBUILD b/testing/py3-ovos-ocp-audio-plugin/APKBUILD
new file mode 100644
index 00000000000..295e876391c
--- /dev/null
+++ b/testing/py3-ovos-ocp-audio-plugin/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-ocp-audio-plugin
+pkgver=0.0.6_alpha2
+pkgrel=2
+pkgdesc="A full-fledged voice media player packaged as a Mycroft audio plugin"
+url="https://github.com/OpenVoiceOS/ovos-ocp-audio-plugin"
+# s390x blocked by py3-speechrecognition -> py3-ovos-backend-client
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-dbus-next
+ py3-lingua-franca
+ py3-ovos-media-plugin-simple
+ py3-ovos-backend-client
+ py3-ovos-bus-client
+ py3-ovos-ocp-files-plugin
+ py3-ovos-plugin-manager
+ py3-ovos-workshop
+ py3-padacioso
+ "
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-ocp-audio-plugin/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+# Hangs on collecting tests
+options="!check"
+builddir="$srcdir/ovos-ocp-audio-plugin-${pkgver//_alpha/a}"
+
+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
+
+ # test/unittests/test_media_intents.py is failing
+ # Ignored test have a dependency on mycroft (provided by ovos-core), causing a circular dependency
+ .testenv/bin/python3 -m pytest \
+ --ignore test/unittests/test_audio_backends.py \
+ --ignore test/unittests/test_external_ocp.py \
+ --ignore test/unittests/test_mycroft.py \
+ --ignore test/unittests/test_mycroft_bus_api.py \
+ --ignore test/unittests/test_media_intents.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+90eb290c4c16cd471e12fc3431ea5229e4a0db909b782cc855cca223e47a3ba44ca90e0a86cc03f3b978803b3b3546bb370bdb9667ab91b5e3e5bc82f6b11998 py3-ovos-ocp-audio-plugin-0.0.6_alpha2.tar.gz
+"
diff --git a/testing/py3-ovos-ocp-files-plugin/APKBUILD b/testing/py3-ovos-ocp-files-plugin/APKBUILD
new file mode 100644
index 00000000000..4c032f8a11e
--- /dev/null
+++ b/testing/py3-ovos-ocp-files-plugin/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-ocp-files-plugin
+pkgver=0.13.0
+pkgrel=1
+pkgdesc="A library for reading and, in the future, writing audio metadata"
+url="https://github.com/OpenVoiceOS/ovos-ocp-files-plugin"
+arch="noarch"
+license="MIT"
+depends="
+ py3-attrs
+ py3-bidict
+ py3-bitstruct
+ py3-more-itertools
+ py3-pprintpp
+ py3-wrapt
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ py3-ward
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-ocp-files-plugin/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # Pytest fails to find fixture "description"
+builddir="$srcdir/ovos-ocp-files-plugin-$pkgver"
+
+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="
+737c8e319e86f58e6523597ceba2b142ef7adb956c169c2c68194b1bea5ebcd5ce22221ca158c6db97b3fc0c54afe968356268e25b84cac68b10133d98f152ed py3-ovos-ocp-files-plugin-0.13.0.tar.gz
+"
diff --git a/testing/py3-ovos-ocp-m3u-plugin/APKBUILD b/testing/py3-ovos-ocp-m3u-plugin/APKBUILD
new file mode 100644
index 00000000000..51321838fe9
--- /dev/null
+++ b/testing/py3-ovos-ocp-m3u-plugin/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-ocp-m3u-plugin
+pkgver=0.0.2_alpha1
+pkgrel=1
+pkgdesc="ovos-core m3u plugin"
+url="https://github.com/OpenVoiceOS/ovos-ocp-m3u-plugin"
+arch="noarch !s390x" # blocked by py3-ovos-ocp-audio-plugin
+license="Apache-2.0"
+depends="py3-ovos-ocp-audio-plugin"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-ocp-m3u-plugin/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-ocp-m3u-plugin-${pkgver//_alpha/a}"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+abb92e3cf319a22eb803d8789277b317d65492419993ab6e2486abbd91587404b8d5230c4125dd0554730644a3e5be1be49de127b7fc57b3ca8cd9833ea274fa py3-ovos-ocp-m3u-plugin-0.0.2_alpha1.tar.gz
+"
diff --git a/testing/py3-ovos-ocp-news-plugin/APKBUILD b/testing/py3-ovos-ocp-news-plugin/APKBUILD
new file mode 100644
index 00000000000..b19d0bcda93
--- /dev/null
+++ b/testing/py3-ovos-ocp-news-plugin/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-ocp-news-plugin
+pkgver=0.0.3
+pkgrel=1
+pkgdesc="ovos-core news plugin"
+url="https://github.com/OpenVoiceOS/ovos-ocp-news-plugin"
+arch="noarch !s390x" # blocked by py3-ovos-ocp-audio-plugin
+license="Apache-2.0"
+depends="
+ py3-beautifulsoup4
+ py3-ovos-ocp-audio-plugin
+ py3-ovos-ocp-m3u-plugin
+ py3-ovos-ocp-rss-plugin
+ py3-tz
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-ocp-news-plugin/archive/refs/tags/V$pkgver.tar.gz"
+builddir="$srcdir/ovos-ocp-news-plugin-$pkgver"
+
+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="
+36f0c6fa081e6aec492e324032f0f3fb372e556c074c4241dd4c36a8acd133641f9f33d44f54ad12fb5e595c749989969cc129ccbffd81690a69e6319e026fbe py3-ovos-ocp-news-plugin-0.0.3.tar.gz
+"
diff --git a/testing/py3-ovos-ocp-rss-plugin/APKBUILD b/testing/py3-ovos-ocp-rss-plugin/APKBUILD
new file mode 100644
index 00000000000..a7e79c69c17
--- /dev/null
+++ b/testing/py3-ovos-ocp-rss-plugin/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-ocp-rss-plugin
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="ovos-core rss plugin"
+url="https://github.com/OpenVoiceOS/ovos-ocp-rss-plugin"
+arch="noarch !s390x" # blocked by py3-ovos-ocp-audio-plugin
+license="Apache-2.0"
+depends="
+ py3-feedparser
+ py3-ovos-ocp-audio-plugin
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-ocp-rss-plugin/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-ocp-rss-plugin-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+ee05a725efab1b75a746033f57583a5608d38133102a9c651c882a5042bb721a11ddeda476a19487ffada193ec9b7890bd6d348b33422ab19f0ceeb818150e39 py3-ovos-ocp-rss-plugin-0.0.2.tar.gz
+"
diff --git a/testing/py3-ovos-phal-plugin-connectivity-events/APKBUILD b/testing/py3-ovos-phal-plugin-connectivity-events/APKBUILD
new file mode 100644
index 00000000000..09f2a81df64
--- /dev/null
+++ b/testing/py3-ovos-phal-plugin-connectivity-events/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-phal-plugin-connectivity-events
+pkgver=0.0.3
+pkgrel=1
+pkgdesc="Monitors network state and exposes it via messagebus"
+url="https://github.com/OpenVoiceOS/ovos-PHAL-plugin-connectivity-events"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-bus-client
+ py3-ovos-plugin-manager
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-PHAL-plugin-connectivity-events/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/ovos-PHAL-plugin-connectivity-events-$pkgver"
+
+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="
+7ba4a960fcc8b48cc793d266b64cb326d9a7a310d45056c4fb777df34e0473aa3bab375bef268d399d83278dc31ab96fd1a3f3b20a80febf3a6e94d97c0362ef py3-ovos-phal-plugin-connectivity-events-0.0.3.tar.gz
+"
diff --git a/testing/py3-ovos-phal-plugin-ipgeo/APKBUILD b/testing/py3-ovos-phal-plugin-ipgeo/APKBUILD
new file mode 100644
index 00000000000..cf1de2cd16f
--- /dev/null
+++ b/testing/py3-ovos-phal-plugin-ipgeo/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-phal-plugin-ipgeo
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="Provides geolocation information via the OVOS Messagebus"
+url="https://github.com/OpenVoiceOS/ovos-PHAL-plugin-ipgeo"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-config
+ py3-ovos-plugin-manager
+ py3-requests
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-PHAL-plugin-ipgeo/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-PHAL-plugin-ipgeo-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+6ba8c42e4bbcc33f66cf80d7ce6eee5d36f83f8d130cc406625786734a9a0f5c296b3b3ec1ca56cfafd8a3f2fa066d179814706fb9830ddc6e67701488e72d23 py3-ovos-phal-plugin-ipgeo-0.0.2.tar.gz
+"
diff --git a/testing/py3-ovos-phal-plugin-network-manager/APKBUILD b/testing/py3-ovos-phal-plugin-network-manager/APKBUILD
new file mode 100644
index 00000000000..a16a277cd17
--- /dev/null
+++ b/testing/py3-ovos-phal-plugin-network-manager/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-phal-plugin-network-manager
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="NetworkManager plugin for PHAL"
+url="https://github.com/OpenVoiceOS/ovos-PHAL-plugin-network-manager"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ networkmanager-cli
+ py3-dbus-next
+ py3-ovos-bus-client
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-PHAL-plugin-network-manager/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-PHAL-plugin-network-manager-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+b2e19a740749c91d617a007de8000bab89197260e6ffc1d649bc182dc79f989eef8c9eb5fb1dccc4e5d31c6420f85ee3280f9707e70ada637fbfeea83efe77da py3-ovos-phal-plugin-network-manager-1.1.0.tar.gz
+"
diff --git a/testing/py3-ovos-phal-plugin-oauth/APKBUILD b/testing/py3-ovos-phal-plugin-oauth/APKBUILD
new file mode 100644
index 00000000000..bfe23a3597d
--- /dev/null
+++ b/testing/py3-ovos-phal-plugin-oauth/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-phal-plugin-oauth
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="OAuth plugin for OVOS"
+url="https://github.com/OpenVoiceOS/ovos-PHAL-plugin-oauth"
+# s390x blocked by py3-speechrecognition -> py3-ovos-backend-client
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-flask
+ py3-oauthlib
+ py3-ovos-backend-client
+ py3-ovos-bus-client
+ py3-ovos-utils
+ py3-pillow
+ py3-qrcode
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-PHAL-plugin-oauth/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-PHAL-plugin-oauth-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+b1f374a6df7446897efce7960c1cea6b0ff22a5076c766fb116daf2d52c6e63677df9aba702ae33e2bc0cdbf827c212d181291ddaacf303be30ca9e8462f6528 py3-ovos-phal-plugin-oauth-0.0.2.tar.gz
+"
diff --git a/testing/py3-ovos-phal-plugin-system/APKBUILD b/testing/py3-ovos-phal-plugin-system/APKBUILD
new file mode 100644
index 00000000000..ac027ef404a
--- /dev/null
+++ b/testing/py3-ovos-phal-plugin-system/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-phal-plugin-system
+pkgver=0.0.4
+pkgrel=1
+pkgdesc="handle bus events to interact with the OS"
+url="https://github.com/OpenVoiceOS/ovos-PHAL-plugin-system"
+arch="noarch"
+license="Apache-2.0"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-PHAL-plugin-system/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-PHAL-plugin-system-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+6d0d689be51add4cb97e421159be26dd23fa9f67abce7a39a66da0bdc9f36e56f32fa025aff2e1cd1ed22988a4b2d4d9ce51d44f76ac97ffc19ce9145507ceeb py3-ovos-phal-plugin-system-0.0.4.tar.gz
+"
diff --git a/testing/py3-ovos-plugin-manager/APKBUILD b/testing/py3-ovos-plugin-manager/APKBUILD
new file mode 100644
index 00000000000..9753b5c897f
--- /dev/null
+++ b/testing/py3-ovos-plugin-manager/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-plugin-manager
+pkgver=0.0.24
+pkgrel=1
+pkgdesc="Plugin manager for OpenVoiceOS, STT/TTS/Wakewords that can be used anywhere"
+url="https://github.com/OpenVoiceOS/OVOS-plugin-manager"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-combo-lock
+ py3-langcodes
+ py3-ovos-bus-client
+ py3-ovos-utils
+ py3-quebra-frases
+ py3-requests
+ "
+makedepends="
+ py3-setuptools
+ py3-gpep517
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/OpenVoiceOS/OVOS-plugin-manager/archive/V$pkgver/ovos-plugin-manager-V$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-plugin-manager-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+e8c5605311cb42fa964b1e1024926f079aa09c9da56d313f5e63044db065e426b1f7b4b447f0ffeefad83b301fa78f1e0c036bb651dcfec0d14816884d8a887a ovos-plugin-manager-V0.0.24.tar.gz
+"
diff --git a/testing/py3-ovos-stt-plugin-server/APKBUILD b/testing/py3-ovos-stt-plugin-server/APKBUILD
new file mode 100644
index 00000000000..2af47c77058
--- /dev/null
+++ b/testing/py3-ovos-stt-plugin-server/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-stt-plugin-server
+pkgver=0.0.4_alpha4
+pkgrel=1
+pkgdesc="OpenVoiceOS companion plugin for OpenVoiceOS STT Server"
+url="https://github.com/OpenVoiceOS/ovos-stt-plugin-server"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-ovos-plugin-manager"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-stt-plugin-server/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-stt-plugin-server-${pkgver//_alpha/a}"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+92794b6dc46f651dea89f67379609f6e1f793e13c6aa08ac50318b3c6d40f8a17a4d1c0eb584c71811aef5bacb9d7449c25043faf9d03cd27b1afdfd280eb8b2 py3-ovos-stt-plugin-server-0.0.4_alpha4.tar.gz
+"
diff --git a/testing/py3-ovos-tts-plugin-mimic3-server/APKBUILD b/testing/py3-ovos-tts-plugin-mimic3-server/APKBUILD
new file mode 100644
index 00000000000..5e48b259f21
--- /dev/null
+++ b/testing/py3-ovos-tts-plugin-mimic3-server/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-tts-plugin-mimic3-server
+pkgver=0.0.2_alpha4
+pkgrel=1
+pkgdesc="OVOS Server TTS plugin for Mimic3"
+url="https://github.com/OpenVoiceOS/ovos-tts-plugin-mimic3-server"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-requests
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-tts-plugin-mimic3-server/archive/refs/tags/V${pkgver//_alpha/a}.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-tts-plugin-mimic3-server-${pkgver//_alpha/a}"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+d6f3b3606f438c1b9b438e1b252bf2e61de751cf8d39192554c2cbfa6d77672d718e54746d2d04265045a084cb0a7718623e78cae07cd0b93492e1c80aaac3c7 py3-ovos-tts-plugin-mimic3-server-0.0.2_alpha4.tar.gz
+"
diff --git a/testing/py3-ovos-utils/APKBUILD b/testing/py3-ovos-utils/APKBUILD
new file mode 100644
index 00000000000..bd1f3117047
--- /dev/null
+++ b/testing/py3-ovos-utils/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-utils
+pkgver=0.0.36
+pkgrel=1
+pkgdesc="Collection of simple utilities for use across the MyCroft ecosystem"
+url="https://github.com/OpenVoiceOS/ovos_utils"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-json-database
+ py3-kthread
+ py3-pexpect
+ py3-pyee
+ py3-rapidfuzz
+ py3-requests
+ py3-watchdog
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-dateutil
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/OpenVoiceOS/ovos_utils/archive/V$pkgver/ovos_utils-V$pkgver.tar.gz"
+builddir="$srcdir/ovos-utils-$pkgver"
+
+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
+ # Ignored tests cause circular dependencies on py3-ovos-config and ovos-messagebus
+ .testenv/bin/python3 -m pytest -k 'not test_event_scheduler_interface and not test_get_source_message' \
+ --ignore test/unittests/test_gui.py \
+ --ignore test/unittests/test_skills.py \
+ --ignore test/unittests/test_time.py \
+ --ignore test/unittests/test_events.py \
+ --deselect test/unittests/test_audio_utils.py::TestPlaySounds
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+90adcd7c548b97d53859d638fb566a836ed394e229b190491e72f2844d830c30ac29510c4e06dfbf8dda951a3e61416b754db0a19347960d0d136909a4a78080 ovos_utils-V0.0.36.tar.gz
+"
diff --git a/testing/py3-ovos-vad-plugin-webrtcvad/APKBUILD b/testing/py3-ovos-vad-plugin-webrtcvad/APKBUILD
new file mode 100644
index 00000000000..bb4f581644e
--- /dev/null
+++ b/testing/py3-ovos-vad-plugin-webrtcvad/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-vad-plugin-webrtcvad
+pkgver=0.0.1
+pkgrel=0
+pkgdesc="ovos plugin for voice activity detection using webrtcvad"
+url="https://github.com/OpenVoiceOS/ovos-vad-plugin-webrtcvad"
+# 32-bit arches blocked by py3-webrtcvad
+# s390x, ppc64le and riscv64 blocked by py3-webrtcvad
+arch="noarch !x86 !armhf !armv7 !s390x !ppc64le !riscv64"
+license="Apache-2.0"
+depends="
+ py3-webrtcvad
+ py3-ovos-plugin-manager
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-vad-plugin-webrtcvad/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-vad-plugin-webrtcvad-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+516d565498d65fdb1dec1cc22be242fd401943164e85dc3c01861348640a6aa40a0175d7e6bc3a913750a91ef9ae804fe71e185a9efd2c25112e9ee698150f1e py3-ovos-vad-plugin-webrtcvad-0.0.1.tar.gz
+"
diff --git a/testing/py3-ovos-workshop/APKBUILD b/testing/py3-ovos-workshop/APKBUILD
new file mode 100644
index 00000000000..b7f9dcef8c4
--- /dev/null
+++ b/testing/py3-ovos-workshop/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-workshop
+pkgver=0.0.13_alpha17
+pkgrel=1
+pkgdesc="Frameworks, templates and patches for the mycroft universe "
+url="https://github.com/OpenVoiceOS/OVOS-workshop"
+# s390x blocked by py3-speechrecognition -> py3-ovos-backend-client
+arch="noarch !s390x"
+license="Apache-2.0"
+depends="
+ py3-lingua-franca
+ py3-ovos-backend-client
+ py3-ovos-config
+ py3-ovos-config
+ py3-ovos-utils
+ py3-rapidfuzz
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-adapt-parser
+ py3-lingua-franca
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-workshop/archive/refs/tags/${pkgver//_alpha/a}.tar.gz"
+options="!check" # OVOS-utils
+builddir="$srcdir/OVOS-workshop-${pkgver//_alpha/a}"
+
+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="
+692c65a6d4b7d7a110949bbd5d76f3403d7c17179faabce922d4af4126e9fc0494a2bb80de397351089f31dc9ec66949ceee0276ef30abf9385d2e8dd6882ad1 py3-ovos-workshop-0.0.13_alpha17.tar.gz
+"
diff --git a/testing/py3-ovos-ww-plugin-vosk/APKBUILD b/testing/py3-ovos-ww-plugin-vosk/APKBUILD
new file mode 100644
index 00000000000..cb431485c68
--- /dev/null
+++ b/testing/py3-ovos-ww-plugin-vosk/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ovos-ww-plugin-vosk
+pkgver=0.1.1
+pkgrel=1
+pkgdesc="Vosk wake word plugin for OVOS"
+url="https://github.com/OpenVoiceOS/ovos-ww-plugin-vosk"
+# only x86_64 and aarch64 supported by vosk-api
+arch="noarch !x86 !armhf !armv7 !s390x !ppc64le !riscv64"
+license="Apache-2.0"
+depends="
+ ovos-skill-installer
+ py3-numpy
+ py3-ovos-plugin-manager
+ py3-ovos-utils
+ py3-speechrecognition
+ py3-vosk-api
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVoiceOS/ovos-ww-plugin-vosk/archive/refs/tags/V$pkgver.tar.gz"
+options="!check" # No tests
+builddir="$srcdir/ovos-ww-plugin-vosk-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+47b8e6ab431b8d9137f79a7941a4f74bd0ca59bbe362ca25f16bd6db63c8f7c652f43d9ef798b48582238b6170bb21c66009992f2bfc9ada23adde6812815621 py3-ovos-ww-plugin-vosk-0.1.1.tar.gz
+"
diff --git a/testing/py3-owslib/APKBUILD b/testing/py3-owslib/APKBUILD
new file mode 100644
index 00000000000..e5af59275bf
--- /dev/null
+++ b/testing/py3-owslib/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=py3-owslib
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=OWSLib
+pkgver=0.29.3
+pkgrel=1
+pkgdesc="OGC Web Service utility library"
+url="http://packages.python.org/pypi/OWSLib"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 py3-dateutil py3-tz py3-requests py3-lxml"
+checkdepends="python3-dev py3-pytest py3-tox py3-lxml"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/O/OWSLib/OWSLib-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ tox --sitepackages
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+fc503be2b2e7d7f539283c7602831097bda680a74133debacb0a51116a25c261b972e3497e69ccea27329672183b447e6e299e7e8cc3853be1341db2cef427e2 OWSLib-0.29.3.tar.gz
+"
diff --git a/testing/py3-padacioso/APKBUILD b/testing/py3-padacioso/APKBUILD
new file mode 100644
index 00000000000..966abf9e254
--- /dev/null
+++ b/testing/py3-padacioso/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-padacioso
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Dead simple regex based intent parser"
+url="https://github.com/OpenJarbas/padacioso"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-simplematch"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenJarbas/padacioso/archive/refs/tags/V$pkgver.tar.gz"
+builddir="$srcdir/padacioso-$pkgver"
+
+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="
+bfb8758a1835c19e6d625d98f140bde2beacab4c5098d3ec5946d66f950582f2ab3fff90d4953bd0b13dd5f53fa12857b020b9da033f45b15cf6d59c256f5149 py3-padacioso-0.2.0.tar.gz
+"
diff --git a/testing/py3-padaos/APKBUILD b/testing/py3-padaos/APKBUILD
deleted file mode 100644
index 23818a18864..00000000000
--- a/testing/py3-padaos/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-padaos
-pkgver=0.1.10
-pkgrel=0
-pkgdesc="A rigid, lightweight, dead-simple intent parser"
-url="github.com/MatthewScholefield/padaos"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/padaos/padaos-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/padaos-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="8458dd829b40015650ae903bba8b2863470af58503ed2dd73e573551c7a796a0f88a9544e0555d08d794217e4c0dad94288aad39ef65723cb7a1161f2f9fd199 padaos-0.1.10.tar.gz"
diff --git a/testing/py3-padatious/APKBUILD b/testing/py3-padatious/APKBUILD
deleted file mode 100644
index 8fa4e248a9c..00000000000
--- a/testing/py3-padatious/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-padatious
-pkgver=0.4.8
-pkgrel=0
-pkgdesc="A neural network intent parser"
-url="http://padatious.readthedocs.io/"
-arch= #"noarch" Disable to unblock the builders
-license="Apache-2.0"
-depends="python3 py3-padaos py3-xxhash py3-fann2"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://github.com/MycroftAI/padatious/archive/v$pkgver/padatious-v$pkgver.tar.gz"
-builddir="$srcdir/padatious-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a711cb2f6ae57cf43786e4afa22913c78f8f550c3fe0580b45208e04968a55b113f7e5bc228ab172556043c6e9f29b1161f6376b98d995e35ab352e949639452 padatious-v0.4.8.tar.gz"
diff --git a/testing/py3-pako/APKBUILD b/testing/py3-pako/APKBUILD
deleted file mode 100644
index f10d44ef002..00000000000
--- a/testing/py3-pako/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pako
-pkgver=0.2.3
-pkgrel=0
-pkgdesc="The universal package manager librar"
-url="https://github.com/MycroftAI/pako"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/pako/pako-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/pako-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="565e77d75a9d0217025a0fc554aab80cff1b679a8b3907c1cd8d130e794b8ea5a897614713fb2d0979eea7b0b1e017934b451a3e67f92031024d241c1db6dbf1 pako-0.2.3.tar.gz"
diff --git a/testing/py3-pam/APKBUILD b/testing/py3-pam/APKBUILD
index a31b40b2310..848e549e245 100644
--- a/testing/py3-pam/APKBUILD
+++ b/testing/py3-pam/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-pam
_pkgname=python-pam
-pkgver=1.8.4
+pkgver=2.0.2
pkgrel=2
pkgdesc="A Python interface to the PAM library"
url="https://github.com/FirefighterBlu3/python-pam"
arch="noarch"
license="MIT"
-depends="linux-pam python3"
-makedepends="py3-setuptools"
+depends="linux-pam python3 py3-six"
+makedepends="py3-setuptools py3-wheel py3-gpep517 py3-installer"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/FirefighterBlu3/python-pam/archive/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -17,15 +19,40 @@ replaces="py-pam" # Backwards compatibility
provides="py-pam=$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 check
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ case "$CARCH" in
+ aarch64)
+ .testenv/bin/python3 -m pytest \
+ --deselect tests/test_internals.py::test_PamAuthenticator__normal_success \
+ --deselect tests/test_internals.py::test_PamAuthenticator__unset_DISPLAY \
+ --deselect tests/test_internals.py::test_PamAuthenticator__env_set \
+ --deselect tests/test_internals.py::test_PamAuthenticator__open_session_unauthenticated \
+ --deselect tests/test_internals.py::test_PamAuthenticator__close_session_unauthenticated
+ ;;
+# FAILED tests/test_internals.py::test_PamAuthenticator__normal_success - asser...
+# FAILED tests/test_internals.py::test_PamAuthenticator__unset_DISPLAY - assert...
+# FAILED tests/test_internals.py::test_PamAuthenticator__env_set - assert True ...
+# FAILED tests/test_internals.py::test_PamAuthenticator__close_session_unauthenticated
+ *)
+ .testenv/bin/python3 -m pytest \
+ --deselect tests/test_internals.py::test_PamAuthenticator__open_session_unauthenticated
+ ;;
+#FAILED tests/test_internals.py::test_PamAuthenticator__open_session_unauthenticated - assert 14 == 10
+ esac
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="8228df0136df890746579f66ff181fd4fd269536db3ecf3d5e0410501e8d67a906ac5cedb0ed29b6cde5eb824727d644e60be20b22b0a8ba6da0523854f023d7 py3-pam-1.8.4.tar.gz"
+sha512sums="
+eafeb753b22ffccc1c5729516ea1ae26799d3749140fe91849ddb804066cabd4b5493e9b059172977dd5b3c5d48c8b5ced6c5c944931fcf23225dda09db026f6 py3-pam-2.0.2.tar.gz
+"
diff --git a/testing/py3-pandas/APKBUILD b/testing/py3-pandas/APKBUILD
deleted file mode 100644
index 1a66ad71cc0..00000000000
--- a/testing/py3-pandas/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Carlos Giraldo <cgiraldo@gradiant.org>
-# Maintainer: Carlos Giraldo <cgiraldo@gradiant.org>
-pkgname=py3-pandas
-_pkgname=pandas
-pkgver=1.0.4
-pkgrel=0
-pkgdesc="Powerful data structures for data analysis, time series, and statistics"
-url="https://pandas.pydata.org/"
-arch="all !mips !mips64" # blocked by py3-numpy
-license="BSD-3-Clause"
-depends="py3-dateutil py3-numpy py3-tz"
-makedepends="linux-headers py3-numpy-dev python3-dev py3-setuptools cython"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-pandas" # Backwards compatibility
-provides="py-pandas=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="01ef73cab3db067ca4a29992d71aa637425b8d70473fde6ccfb359dfedc9546315c6d37d74f3825c924cab789c2536ec69db071a303cfc5e1a7897b253dd9467 pandas-1.0.4.tar.gz"
diff --git a/testing/py3-parameterized/APKBUILD b/testing/py3-parameterized/APKBUILD
deleted file mode 100644
index dff232b6a01..00000000000
--- a/testing/py3-parameterized/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
-# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
-pkgname=py3-parameterized
-_pkgname=parameterized
-pkgver=0.7.4
-pkgrel=0
-pkgdesc="Parameterized testing with any Python test framework"
-url="https://github.com/wolever/parameterized"
-arch="noarch !mips !mips64"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose py3-mock py3-pytest"
-source="https://files.pythonhosted.org/packages/source/p/parameterized/parameterized-$pkgver.tar.gz"
-builddir="$srcdir/"$_pkgname-$pkgver
-
-replaces="py-parameterized" # Backwards compatibility
-provides="py-parameterized=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests
- py.test-3 parameterized/test.py
- python3 -m unittest parameterized.test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="71c51ad57900f5b1b6f4866c60ba4d23649df7740e7f7e735a2e0faf4810bc8dc552a1647da8c174f8a0b80db7de5727ce24dabc9fee6b4cfe12ee98c18945d7 parameterized-0.7.4.tar.gz"
diff --git a/testing/py3-parse/APKBUILD b/testing/py3-parse/APKBUILD
new file mode 100644
index 00000000000..1ac233b8a4e
--- /dev/null
+++ b/testing/py3-parse/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Ado <ado@expedio.it>
+# Maintainer: Ado <ado@expedio.it>
+pkgname=py3-parse
+_pkgname=parse
+pkgver=1.20.0
+pkgrel=1
+pkgdesc="Parse strings using a specification based on the Python format() syntax"
+url="https://github.com/r1chardj0n3s/parse"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/r1chardj0n3s/parse/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # todo
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/$_pkgname-$pkgver-*.whl
+}
+
+
+sha512sums="
+690152d1c459cb52860a948094b2d3f0e5f7a391162ed8fabb8fba032ef5a0741cd04d13090d791299b970497a7a2e8578f483d3c286a6a74d03940b9b6e9fba parse-1.20.0.tar.gz
+"
diff --git a/testing/py3-parsel/APKBUILD b/testing/py3-parsel/APKBUILD
deleted file mode 100644
index 388a8fcda8b..00000000000
--- a/testing/py3-parsel/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-parsel
-_pkgname=parsel
-pkgver=1.6.0
-pkgrel=0
-pkgdesc="Library to extract data from HTML and XML using XPath and CSS selectors"
-url="https://github.com/scrapy/parsel"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-cssselect py3-lxml py3-six py3-w3lib"
-checkdepends="py3-pytest py3-sybil"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/scrapy/parsel/archive/v$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="d3161522e1102cceeb1f29ab020b33019d4ac7f096cfab8fbe40f54073e49afc24f02aa54206d86f56c8f92e3db2d0d2f8a3dbdfa6417492cf299201f2ae6604 parsel-1.6.0.tar.gz"
diff --git a/testing/py3-partd/APKBUILD b/testing/py3-partd/APKBUILD
deleted file mode 100644
index fa5aaa532ba..00000000000
--- a/testing/py3-partd/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-partd
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="Concurrent appendable key-value storage"
-url="https://github.com/dask/partd/"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-pyzmq
-license="BSD-3-Clause"
-depends="python3 py3-toolz py3-numpy py3-pyzmq py3-pandas py3-locket"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/partd/partd-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/partd-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5e26c4a63fc2f9a290b211c1fce291da6b3354b4d0fdf941d29ddad1252629c94275ac360d33c88d11ff4e36a4f4d6bee42edd867c92eb7ef0d2697472c9a338 partd-1.1.0.tar.gz"
diff --git a/testing/py3-parver/APKBUILD b/testing/py3-parver/APKBUILD
new file mode 100644
index 00000000000..640256dd7e2
--- /dev/null
+++ b/testing/py3-parver/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-parver
+pkgver=0.5
+pkgrel=1
+pkgdesc="Parse and manipulate PEP 440 version numbers"
+url="https://github.com/RazerM/parver"
+license="MIT"
+arch="noarch"
+depends="py3-arpeggio py3-attrs"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-hypothesis py3-pretend"
+subpackages="$pkgname-pyc"
+source="https://github.com/RazerM/parver/archive/$pkgver/py3-parver-$pkgver.tar.gz"
+builddir="$srcdir/parver-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ PYTHONPATH="$PWD"/build/lib pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/parver-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+55fd52cb229c8358e89053f4c44d8cdb4bfbc8fd79ec40f4b7c6f18f2c848fb025e2be4e907b5cfbeb598e535fed67be4e10cea71d529a21e6d0712679c665d3 py3-parver-0.5.tar.gz
+"
diff --git a/testing/py3-pass-git-helper/APKBUILD b/testing/py3-pass-git-helper/APKBUILD
deleted file mode 100644
index af6953220ff..00000000000
--- a/testing/py3-pass-git-helper/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="py3-pass-git-helper"
-_pyname="pass-git-helper"
-pkgver="1.1.0"
-pkgrel=0
-pkgdesc="A git credential helper interfacing with pass, the standard unix password manager."
-url="https://github.com/languitar/pass-git-helper"
-arch="noarch"
-license="LGPL-3.0-only"
-depends="python3 pass py3-xdg py3-setuptools"
-checkdepends="py3-pytest py3-pytest-cov py3-pytest-mock"
-source="$_pyname-$pkgver.tar.gz::https://github.com/languitar/$_pyname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="d636f27d09619d077f64d62200353143499209c6c405848396d2e39f54f16fdf3e0fb9471d231fd8bd52eb8b30df42e2c448a9677028badf812de986b4cda86b pass-git-helper-1.1.0.tar.gz"
diff --git a/testing/py3-passlib/APKBUILD b/testing/py3-passlib/APKBUILD
deleted file mode 100644
index aaae1f98dc8..00000000000
--- a/testing/py3-passlib/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=py3-passlib
-_pkgname=passlib
-pkgver=1.7.2
-pkgrel=0
-pkgdesc="A python hashing library for over 30 schemes"
-url="https://pypi.python.org/pypi/passlib"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
- skip-bsdi_crypt-test.patch
- "
-builddir="$srcdir"/passlib-$pkgver
-
-replaces="py-passlib" # Backwards compatibility
-provides="py-passlib=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- nosetests --tests passlib.tests
-}
-
-sha512sums="1ea0654b177b5ab2e1a7e5c3949642c34805ace6e4e4a0f82fafdb3f374edd99c667906ce598c335b668da049860648d5cbebb3e62d775898d5b0cb8cfc7bf53 passlib-1.7.2.tar.gz
-cdf085a94be88140dff421128bbeb9f4c05d13ae8c14ad80e7ab6d9edf2be19b0ad010eb18a5eccd3eefa679c4f634c6f98753571df72a1fc387343331fa8bae skip-bsdi_crypt-test.patch"
diff --git a/testing/py3-passlib/skip-bsdi_crypt-test.patch b/testing/py3-passlib/skip-bsdi_crypt-test.patch
deleted file mode 100644
index 094ccd14122..00000000000
--- a/testing/py3-passlib/skip-bsdi_crypt-test.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- passlib-1.7.1/passlib/tests/utils.py
-+++ passlib-1.7.1/passlib/tests/utils.py.new
-@@ -3171,8 +3171,7 @@
- self.fail("expected %r platform would have native support "
- "for %r" % (platform, self.handler.name))
- else:
-- self.fail("did not expect %r platform would have native support "
-- "for %r" % (platform, self.handler.name))
-+ raise self.skipTest("varied support on %r platform" % platform)
-
- #===================================================================
- # fuzzy verified support -- add new verified that uses os crypt()
diff --git a/testing/py3-pastel/APKBUILD b/testing/py3-pastel/APKBUILD
deleted file mode 100644
index c315cd6a3a6..00000000000
--- a/testing/py3-pastel/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-pastel
-_realname=pastel
-pkgver=0.2.0
-pkgrel=0
-pkgdesc="Python3 library to bring colors to your terminal"
-options="!check" # No testsuite on tarball with setup.py
-url="https://github.com/sdispater/pastel"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://pypi.io/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1a65e1ec919ce4a216310c9c2c7529b00c6b49d37eda082b1269c3d6298f2f14a1ecca8c427c7487f73478add171abb34359c0fa7a20a956d475ab17070bf697 py3-pastel-0.2.0.tar.gz"
diff --git a/testing/py3-patatt/APKBUILD b/testing/py3-patatt/APKBUILD
new file mode 100644
index 00000000000..6583a2e3975
--- /dev/null
+++ b/testing/py3-patatt/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=py3-patatt
+pkgver=0.6.3
+pkgrel=1
+pkgdesc="A simple library to add cryptographic attestation to patches sent via email"
+url="https://git.kernel.org/pub/scm/utils/patatt/patatt.git/about/"
+arch="noarch"
+license="MIT-0"
+depends="py3-pynacl"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="https://git.kernel.org/pub/scm/utils/patatt/patatt.git/snapshot/patatt-$pkgver.tar.gz"
+builddir="$srcdir/patatt-$pkgver"
+options="!check" # no test suite
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+bbbf38fcf62b3f811b141147df2a167d4cfcf7f3f0484a5380c80213edb00aad20f578ae27c560c1266cbce48878072176a0460f09b7bcc5142b9009d8e99e17 patatt-0.6.3.tar.gz
+"
diff --git a/testing/py3-path/APKBUILD b/testing/py3-path/APKBUILD
deleted file mode 100644
index 19a8ce009fd..00000000000
--- a/testing/py3-path/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-path
-pkgver=14.0.1
-pkgrel=0
-pkgdesc="Module wrapper for os.path"
-options="!check" # Requires unpackaged 'pytest-checkdocs'
-url="https://github.com/jaraco/path"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools py3-setuptools_scm"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jaraco/path/archive/v$pkgver.tar.gz"
-builddir="$srcdir/path-$pkgver"
-
-build() {
- git init # WORKAROUND
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2ea45186ea4a067734aad4bce6127c324eaa4b5fdad003f0ea9ebcaf244d3ccd6327e981ebfdc6d19a240d7821700bc4fcf28cc8c8e618e3d6485c605f973a09 py3-path-14.0.1.tar.gz"
diff --git a/testing/py3-pathvalidate/APKBUILD b/testing/py3-pathvalidate/APKBUILD
new file mode 100644
index 00000000000..6ea6d42884b
--- /dev/null
+++ b/testing/py3-pathvalidate/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=py3-pathvalidate
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Python library to sanitize/validate a string such as filenames/file-paths/etc"
+url="https://github.com/thombashi/pathvalidate"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-click py3-faker"
+options="!check" # tests require unpackaged unmaintained dependencies
+subpackages="$pkgname-pyc"
+source="https://github.com/thombashi/pathvalidate/archive/refs/tags/v$pkgver/pathvalidate-$pkgver.tar.gz"
+builddir="$srcdir/pathvalidate-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+d1b0e49028bc5497558d9a0c15b4e3c301cacb439bebccffc467fc23001854877dbc81a214cc6eb34c5a905a88c4f9394f5865a4de42f354b2450a3bfe10bb9e pathvalidate-3.2.0.tar.gz
+"
diff --git a/testing/py3-pbkdf2/APKBUILD b/testing/py3-pbkdf2/APKBUILD
index 5b51e301dba..fd46e6ac429 100644
--- a/testing/py3-pbkdf2/APKBUILD
+++ b/testing/py3-pbkdf2/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-pbkdf2
_pkgname=python-pbkdf2
pkgver=1.3
-pkgrel=1
+pkgrel=6
pkgdesc="Password-based key derivation function"
url="http://www.dlitz.net/software/python-pbkdf2"
arch="noarch"
license="MIT"
depends="python3"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/dlitz/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -22,6 +23,6 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="642372615a2ffc9cf352805789f836c42763c49cbf113d64524a55c6ff8a09f0fda36c92713387f27c2f6a2950ce89ae04dc9f92495cba904400685b148f947e py3-pbkdf2-1.3.tar.gz"
diff --git a/testing/py3-pcbnewtransition/APKBUILD b/testing/py3-pcbnewtransition/APKBUILD
new file mode 100644
index 00000000000..f9d39cd603f
--- /dev/null
+++ b/testing/py3-pcbnewtransition/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-pcbnewtransition
+pkgver=0.4.1
+pkgrel=0
+pkgdesc="Easily support KiCAD 7, 6 and 5 in your KiCAD plugins by monkeypatching older versions to KiCAD 7 API"
+url="https://github.com/yaqwsx/pcbnewTransition"
+# riscv64: py3-shapely
+# aarch64, armv7, armhf, mips64: py3-solidpython
+# s390x: kicad
+arch="noarch !riscv64 !aarch64 !armv7 !armhf !s390x"
+license="MIT"
+depends="
+ kicad
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-python-versioneer
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/yaqwsx/pcbnewTransition/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/pcbnewTransition-$pkgver"
+options="!check" # no tests in the repo
+
+prepare() {
+ default_prepare
+
+ # unvendor old versioneer
+ rm -f versioneer.py
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+5e3d68279d7626b1cb7bc6a2f265c1b3ee2fd283a55cbf7d765931553ad6fae95ae3365d1543d4711124a53a170dd884f612c6dc09d4a4e56856837b2bf73351 py3-pcbnewtransition-0.4.1.tar.gz
+"
diff --git a/testing/py3-pdal/APKBUILD b/testing/py3-pdal/APKBUILD
index 7879f26479e..62c15dc83ab 100644
--- a/testing/py3-pdal/APKBUILD
+++ b/testing/py3-pdal/APKBUILD
@@ -1,15 +1,17 @@
# Contributor: Bradley J Chambers <brad.chambers@gmail.com>
# Maintainer: Bradley J Chambers <brad.chambers@gmail.com>
pkgname=py3-pdal
-pkgver=2.2.2
-pkgrel=0
+pkgver=3.2.3
+pkgrel=4
pkgdesc="PDAL Python bindings"
+options="!check" # disabled - failing test with circular import
url="https://github.com/pdal/python"
-arch="x86_64"
+arch="all"
license="BSD-3-Clause"
depends="python3 py3-numpy"
-makedepends="cython python3-dev py3-setuptools py3-packaging pdal-dev>=1.7.2-r1
- py3-numpy-dev libxml2-dev"
+checkdepends="pdal py3-pytest"
+makedepends="python3-dev pdal-dev py3-scikit-build py3-numpy-dev cmake ninja py3-pybind11-dev"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/PDAL/python/archive/$pkgver.tar.gz"
builddir="$srcdir/python-$pkgver"
@@ -17,15 +19,18 @@ replaces="py-pdal" # Backwards compatibility
provides="py-pdal=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ python3 setup.py build -DWITH_TESTS=ON
}
check() {
- python3 setup.py test
+ export PYTHONPATH=$PYTHONPATH:$(python -c "import os, skbuild; print(os.path.join('plugins', skbuild.constants.SKBUILD_DIR(), 'cmake-build'))")
+ py.test -v test/
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="120cd86d773eea9c621a58efd81ebaee8323ea4dc2f51513a7f02eaa38ae363ba689a5e83737d199a033eece8503007abd5536bec2bf7c9d0ada5f8890f831e9 py3-pdal-2.2.2.tar.gz"
+sha512sums="
+363c3ffe25f4f5498ceddf9b2dc93793e70ecbf787d8c393a55be68ae3432119557be3b28122476030a81009a1f8882079dd10deb9087fcbe1eaec1c8dc44808 py3-pdal-3.2.3.tar.gz
+"
diff --git a/testing/py3-pdfkit/APKBUILD b/testing/py3-pdfkit/APKBUILD
deleted file mode 100644
index 710bae995b2..00000000000
--- a/testing/py3-pdfkit/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-# Maintainer:
-pkgname=py3-pdfkit
-_pkgname=pdfkit
-pkgver=0.6.1
-pkgrel=1
-pkgdesc="Python wrapper to convert HTML to PDF using the WebKit rendering engine"
-options="!check" # No testsuite in pypi tarball, no github releases
-url="https://github.com/JazzCore/python-pdfkit"
-arch="noarch !mips !mips64" # blocked by wkhtmltopdf
-license="MIT"
-depends="wkhtmltopdf python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/p/pdfkit/pdfkit-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-pdfkit" # Backwards compatibility
-provides="py-pdfkit=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --root "$pkgdir"
-}
-
-sha512sums="b3ac1016d1c01a2a196f567b9b672caca10f564cc6a62122691d34c3cbbf143f6a846bfba26c3474e9c0296977f0d30c0b5af13b3321ab207b787df3cba12e5d pdfkit-0.6.1.tar.gz"
diff --git a/testing/py3-pebble/APKBUILD b/testing/py3-pebble/APKBUILD
new file mode 100644
index 00000000000..1c357939adc
--- /dev/null
+++ b/testing/py3-pebble/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-pebble
+pkgver=5.0.7
+pkgrel=1
+pkgdesc="Multi threading and processing eye-candy"
+url="https://github.com/noxdafox/pebble"
+arch="noarch"
+license="LGPL-3.0-or-later"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest-forked
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/noxdafox/pebble/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/pebble-$pkgver"
+
+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 -n auto --forked
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+5044ba70e174cb67c965e409c9f2bc6f718a36de86d4510e3e8eb40e334ed46ba8ac9edf5c04a4af5e3ad2abed01bd518cdd4726bfaf46b2a6253fbcbe323cd7 py3-pebble-5.0.7.tar.gz
+"
diff --git a/testing/py3-pefile/APKBUILD b/testing/py3-pefile/APKBUILD
deleted file mode 100644
index fc0cb45292a..00000000000
--- a/testing/py3-pefile/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=py3-pefile
-_pkgname=pefile
-pkgver=2019.4.18
-pkgrel=3
-pkgdesc="Python PE parsing module"
-url="https://github.com/erocarrera/pefile"
-arch="noarch"
-license="MIT"
-depends="py3-future python3"
-makedepends="py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/erocarrera/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces=py-pefile # Backwards compatibility
-provides=py-pefile=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="351e9fa45731134b4c983b987ab865aa838d58c0c68b9d1a0645c705cd49d51c763ab6db7d8f5d0bf9a1ba8ea89dd297a7fc5bbd1d8184eebd84cf6553743ce5 pefile-2019.4.18.tar.gz"
diff --git a/testing/py3-pelican/APKBUILD b/testing/py3-pelican/APKBUILD
index cdd6c4b0f60..b6fd0c97e7a 100644
--- a/testing/py3-pelican/APKBUILD
+++ b/testing/py3-pelican/APKBUILD
@@ -2,52 +2,65 @@
# Maintainer: Danilo Falcão <danilo@falcao.org>
pkgname=py3-pelican
_pkgname=pelican
-pkgver=4.2.0
+pkgver=4.9.1
pkgrel=2
pkgdesc="Static site generator written in Python"
-options="!check" # Tests require locale support
-url="https://getpelican.com"
+url="https://getpelican.com/"
arch="noarch"
license="AGPL-3.0-only"
depends="
- python3
+ py3-blinker
+ py3-docutils
py3-feedgenerator
py3-jinja2
+ py3-ordered-set
py3-pygments
- py3-docutils
- py3-tz
- py3-blinker
- py3-unidecode
- py3-six
py3-dateutil
+ py3-rich
+ py3-unidecode
+ py3-watchfiles
py3-markdown
"
-checkdepends="py3-django"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-prepare() {
- default_prepare
-
- # remove shebang from python files
- sed -i '1d' \
- pelican/tools/*.py \
- pelican/tools/templates/*.py.jinja2
-}
+makedepends="
+ py3-gpep517
+ py3-pdm-backend
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ py3-typogrify
+ tzdata
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/$_pkgname/$_pkgname-$pkgver.tar.gz
+ no-locales-for-tests.patch
+ remove-shebang.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
replaces="pelican" # Backwards compatibility
provides="pelican=$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 -p no:warnings \
+ -k 'not test_datetime and not test_blinker_is_ordered'
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ rm -r "$pkgdir"/usr/lib/python*/site-packages/pelican/tests
}
-sha512sums="094197407bb5e17cbf4a3c0f6df078a321de4b2373da2bd608baf6f82fd634986da0dae10547bcd9644f6b83e9cb4aa204a1a36e347a8a6248a3f6a197ebcff4 pelican-4.2.0.tar.gz"
+sha512sums="
+3c5ece93864a29aa296e353e044022864c1c551b7a805adeb0914df9021bdf7a3d3977c91ddeba6c542c8879ff5fe7ca23e0163e17aaa93ed36747f35895937b pelican-4.9.1.tar.gz
+5d4c9a8b19d1614ebbf02850891aaf936652b360d961b6f2a849e66184b26f459dc3c7c2f7931429db750d7bd9dfcebfdc223af5b8cba2ebfe79050ede8ec553 no-locales-for-tests.patch
+2bd01659c4cc958b1deb8a9d20cd7585d84228e127050d81c4df424c8e7e4f832fd78f2e42dbc55793788cd8d0ef80cc8bbabb366173ebbfb3bc0a332b308ff6 remove-shebang.patch
+"
diff --git a/testing/py3-pelican/no-locales-for-tests.patch b/testing/py3-pelican/no-locales-for-tests.patch
new file mode 100644
index 00000000000..8793ec611fb
--- /dev/null
+++ b/testing/py3-pelican/no-locales-for-tests.patch
@@ -0,0 +1,19 @@
+--- a/pelican/tests/support.py
++++ b/pelican/tests/support.py
+@@ -150,15 +150,7 @@
+
+
+ def locale_available(locale_):
+- old_locale = locale.setlocale(locale.LC_TIME)
+-
+- try:
+- locale.setlocale(locale.LC_TIME, str(locale_))
+- except locale.Error:
+- return False
+- else:
+- locale.setlocale(locale.LC_TIME, old_locale)
+- return True
++ return False
+
+
+ def can_symlink():
diff --git a/testing/py3-pelican/remove-shebang.patch b/testing/py3-pelican/remove-shebang.patch
new file mode 100644
index 00000000000..91633d37870
--- /dev/null
+++ b/testing/py3-pelican/remove-shebang.patch
@@ -0,0 +1,21 @@
+--- a/pelican/tools/pelican_import.py
++++ b/pelican/tools/pelican_import.py
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+
+ import argparse
+ import datetime
+--- a/pelican/tools/pelican_quickstart.py
++++ b/pelican/tools/pelican_quickstart.py
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+
+ import argparse
+ import locale
+--- a/pelican/tools/pelican_themes.py
++++ b/pelican/tools/pelican_themes.py
+@@ -1,4 +1,3 @@
+-#!/usr/bin/env python
+
+ import argparse
+ import os
diff --git a/testing/py3-pep8-naming/APKBUILD b/testing/py3-pep8-naming/APKBUILD
index 95d4dd82390..d7feae3291c 100644
--- a/testing/py3-pep8-naming/APKBUILD
+++ b/testing/py3-pep8-naming/APKBUILD
@@ -1,19 +1,15 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-pep8-naming
-pkgver=0.10.0
-pkgrel=0
+pkgver=0.13.3
+pkgrel=2
pkgdesc="Check PEP-8 naming conventions plugin for flake8"
-url="https://github.com/flintwork/pep8-naming"
+url="https://github.com/PyCQA/pep8-naming"
arch="noarch"
license="MIT"
depends="python3 py3-flake8"
makedepends="py3-setuptools"
-checkdepends="
- py3-six
- py3-tox
- py3-virtualenv
- "
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/p/pep8-naming/pep8-naming-$pkgver.tar.gz"
builddir="$srcdir/pep8-naming-$pkgver"
@@ -29,7 +25,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="ee395e0ff4d3fce0153eb80784b9cb07b26e28ca1181a44b7776bee3302b16aa1ae3cbc320fc04c26a5330d20d9cc71019727600b213b796712b2ad40111a7e5 pep8-naming-0.10.0.tar.gz"
+sha512sums="
+67953b0908833fe6fb9fb1e78ffe315c076814dd5be7d813b2357c977acf5c7355961af76e2a2bb700a5da4030b65ee8e146be5227ec141c4f6ed329de8455d4 pep8-naming-0.13.3.tar.gz
+"
diff --git a/testing/py3-petact/APKBUILD b/testing/py3-petact/APKBUILD
deleted file mode 100644
index 28a183322b9..00000000000
--- a/testing/py3-petact/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-petact
-pkgver=0.1.2
-pkgrel=0
-pkgdesc="A package extraction tool for Python"
-url="https://github.com/matthewscholefield/petact"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/petact/petact-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/petact-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3eee4f0b1d01fda72af1be0144ef25370d1c0ee1a8b4c244598ed3e029da1b31ce1536d25b94c802579f43001db2c30dab036b355b05c297d9d01291657d3608 petact-0.1.2.tar.gz"
diff --git a/testing/py3-pg_activity/APKBUILD b/testing/py3-pg_activity/APKBUILD
deleted file mode 100644
index 20c57c78054..00000000000
--- a/testing/py3-pg_activity/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=py3-pg_activity
-_pkgname=pg_activity_fork
-pkgver=1.5.0
-pkgrel=2
-pkgdesc="A top like application for PostgreSQL server activity monitoring."
-url="https://github.com/julmon/pg_activity"
-arch="noarch"
-license="PostgreSQL"
-depends="py3-psycopg2 py3-psutil"
-makedepends="py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/julmon/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces=py-pg_activity # Backwards compatibility
-provides=py-pg_activity=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3507320ea26764ae71ee4d51d77875c2ec063bd886f5064794567724c82b8e6b9f0eb8aae632e7a07d2346453d6ca760b0c9cdc49702765716ab42896000b70c pg_activity_fork-1.5.0.tar.gz"
diff --git a/testing/py3-pgspecial/APKBUILD b/testing/py3-pgspecial/APKBUILD
deleted file mode 100644
index b9aa5d0eeeb..00000000000
--- a/testing/py3-pgspecial/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=py3-pgspecial
-_pkgname=pgspecial
-pkgver=1.11.10
-pkgrel=0
-pkgdesc="Meta-commands handler for Postgres Database"
-url="https://pypi.python.org/pypi/pgspecial"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-click py3-psycopg2 py3-sqlparse"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-pgspecial" # Backwards compatibility
-provides="py-pgspecial=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="04ef511a26a92bc21a99d256e8f71ce6b12b8ee66a50dd2e2b92e647a0163a23e49f4451eaed0d11c7fbf6ffb421444f48d1991b66c9c3b8a3aa8a00fafbeb08 pgspecial-1.11.10.tar.gz"
diff --git a/testing/py3-phpserialize/APKBUILD b/testing/py3-phpserialize/APKBUILD
index b8a74f8bf26..0e6353e6d84 100644
--- a/testing/py3-phpserialize/APKBUILD
+++ b/testing/py3-phpserialize/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-phpserialize
_pkgname=phpserialize
pkgver=1.3
-pkgrel=2
+pkgrel=7
pkgdesc="A PHP serializer implementation for Python"
options="!check" # failures=1
url="https://github.com/mitsuhiko/phpserialize"
@@ -11,6 +11,7 @@ arch="noarch"
license="BSD-3-Clause"
depends="python3"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/mitsuhiko/phpserialize/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -26,7 +27,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="d96e3aa87d2f03fef6c7cee234e90b373989a9c8e3a07a8e2147a2e7487d3448ea0ef646263e517d6b307bf66f9ba1a4e8def04f919767532cede802cc7db144 py3-phpserialize-1.3.tar.gz"
diff --git a/testing/py3-piccata/APKBUILD b/testing/py3-piccata/APKBUILD
new file mode 100644
index 00000000000..502037f8c07
--- /dev/null
+++ b/testing/py3-piccata/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-piccata
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="Python CoAP Toolkit"
+url="https://github.com/NordicSemiconductor/piccata"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="piccata-$pkgver.tar.gz::https://github.com/NordicSemiconductor/piccata/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/piccata-$pkgver"
+options="!check" # no test ran
+
+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
+
+ # test_decode is broken
+ case "$CARCH" in
+ ppc64le) .testenv/bin/python3 -m unittest discover -k 'not test_decode and not test_client_server_communication' ;;
+ *) .testenv/bin/python3 -m unittest discover -k 'not test_decode' ;;
+ esac
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+0ca0a94e8eff860ddf8a2c41c4047e0838543490e12f651859d176bf70fd892618f92bc7da47cc6612bd2885f6a122b6ba9349d3536ce2abfcee1db81caf6624 piccata-2.0.3.tar.gz
+"
diff --git a/testing/py3-pickle-secure/APKBUILD b/testing/py3-pickle-secure/APKBUILD
new file mode 100644
index 00000000000..2b7eb6edf3d
--- /dev/null
+++ b/testing/py3-pickle-secure/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=py3-pickle-secure
+pkgver=0.99.9
+pkgrel=1
+pkgdesc="Easily create encrypted pickle files"
+url="https://pypi.org/project/pickle-secure/"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="py3-cryptography"
+makedepends="py3-gpep517 py3-poetry-core"
+checkdepends="py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/spapanik/pickle-secure/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/pickle-secure-$pkgver"
+
+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="
+b4594d50def34c0470b547dacb71d445227183e5cd78ac28aced37cc0b1007296988d82aefe4265b06adf61f0a57d29dd008a1517216034aa84b4eed5a10236f py3-pickle-secure-0.99.9.tar.gz
+"
diff --git a/testing/py3-piexif/APKBUILD b/testing/py3-piexif/APKBUILD
deleted file mode 100644
index 4eade68ef5a..00000000000
--- a/testing/py3-piexif/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-piexif
-_pkgname=piexif
-pkgver=1.1.3
-pkgrel=1
-pkgdesc="EXIF manipulations with Python"
-url="https://github.com/hMatoba/Piexif"
-arch="noarch !s390x" # Test failures
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pillow"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.zip"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="df5f7793c39911af58bbae76cf998e2a7bc820b84dcf9808ee8f6a38f766f824fef28392ef88387e18b10c270c4b27881be310f0368076b6fb65379a11a93270 piexif-1.1.3.zip"
diff --git a/testing/py3-pika/APKBUILD b/testing/py3-pika/APKBUILD
index 921fce82fd5..a5d67d891ce 100644
--- a/testing/py3-pika/APKBUILD
+++ b/testing/py3-pika/APKBUILD
@@ -2,21 +2,22 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-pika
_pkgname=pika
-pkgver=1.1.0
+pkgver=1.3.2
pkgrel=1
pkgdesc="Python3 AMQP client library"
options="!check" # failures=1
-url="https://pika.readthedocs.org"
+url="https://pika.readthedocs.org/"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-tornado py3-twisted"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
checkdepends="
py3-coverage
py3-codecov
py3-mock
py3-nose
"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/pika/pika/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -24,7 +25,9 @@ replaces="py-pika" # Backwards compatibility
provides="py-pika=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 1
}
check() {
@@ -32,7 +35,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="35d001f9e16ed3d2a68e2328596a158e1f6a145dcedf6502e9cd17158baa80dcef53e4c1e95b90e2e24b0c132a0a8c3dd19deb293ba1884980016439c1b2495c py3-pika-1.1.0.tar.gz"
+sha512sums="
+86c1c33db808274052cbe18af68bef685fafa260f692d16dcd3ce6259107c343ebdd3482713a7948583566581defa6037f3344d03b11c50458432d044d8b2057 py3-pika-1.3.2.tar.gz
+"
diff --git a/testing/py3-pip-system-certs/APKBUILD b/testing/py3-pip-system-certs/APKBUILD
new file mode 100644
index 00000000000..7e218d23ecc
--- /dev/null
+++ b/testing/py3-pip-system-certs/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Frank Oltmanns <alpine@oltmanns.dev>
+pkgname=py3-pip-system-certs
+pkgver=4.0
+pkgrel=1
+pkgdesc="Patches pip and requests at runtime to use certificates from the default system store"
+url="https://pypi.org/project/pip-system-certs/"
+arch="noarch"
+license="BSD-2-Clause"
+depends="py3-wrapt"
+makedepends="
+ py3-git-versioner
+ py3-gpep517
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://gitlab.com/alelec/pip-system-certs/-/archive/v$pkgver/pip-system-certs-v$pkgver.tar.gz"
+builddir="$srcdir/pip-system-certs-v$pkgver"
+options="!check" # test suite installs/uninstalls using pip. Skip that.
+
+build() {
+ GIT_VERSIONER_VERSION_PY=$pkgver \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+6c583e0f8b61a774a78e0f561aa95717ed3e5735268bdd6a2767f0803697a3f7a64d132c9d1d5947a2bf06c220b9da4a10d4c31e8e523605422c4cbb7935a294 pip-system-certs-v4.0.tar.gz
+"
diff --git a/testing/py3-pivy/APKBUILD b/testing/py3-pivy/APKBUILD
new file mode 100644
index 00000000000..86d311220a2
--- /dev/null
+++ b/testing/py3-pivy/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-pivy
+pkgver=0.6.9_alpha0
+pkgrel=0
+pkgdesc="Python3 bindings for coin"
+url="https://github.com/coin3d/pivy"
+# riscv64 blocked by py3-pyside6
+arch="all !riscv64"
+license="ISC"
+depends="py3-pyside6"
+makedepends="swig soqt-dev qt6-qtbase-dev python3-dev glu-dev cmake samurai"
+checkdepends="py3-pytest"
+options="!check" # test suite is interactive and requires full installation
+source="$pkgname-$pkgver.tar.gz::https://github.com/coin3d/pivy/archive/refs/tags/${pkgver//_alpha/.a}.tar.gz"
+builddir="$srcdir/pivy-${pkgver//_alpha/.a}"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1bfefd58d2921c8be170a97efa30cad53b01f636ea0cf236acca242be4f691669a4c310cd61c64d3e0c55e55e8be96d36945cd244380ddc0b3a06170d0f8b691 py3-pivy-0.6.9_alpha0.tar.gz
+"
diff --git a/testing/py3-pkgconfig/APKBUILD b/testing/py3-pkgconfig/APKBUILD
deleted file mode 100644
index e44de8bd514..00000000000
--- a/testing/py3-pkgconfig/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-pkgconfig
-_realname=pkgconfig
-pkgver=1.5.1
-pkgrel=1
-pkgdesc="Python interface for the pkg-config command line tool"
-options="!check" # GitHub tarballs depend on unpackaged poetry build system
-url="https://github.com/matze/pkgconfig"
-arch="noarch"
-license="MIT"
-depends="python3 pkgconf"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1fd9aa973bd20a8fab864722598f1d19b94c23c7f2b522556b3182b19fe016bda7aa2be5e48a1b8fefa70a069611007d6d790e24defcb462e4594a382de85b00 pkgconfig-1.5.1.tar.gz"
diff --git a/testing/py3-pkginfo/APKBUILD b/testing/py3-pkginfo/APKBUILD
deleted file mode 100644
index 51ca8ff742a..00000000000
--- a/testing/py3-pkginfo/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=py3-pkginfo
-_pkgname=pkginfo
-pkgver=1.5.0.1
-pkgrel=1
-pkgdesc="Parses metadata stored by distutils in PKG-INFO"
-url="https://code.launchpad.net/~tseaver/pkginfo"
-arch="noarch"
-license="MIT"
-depends="python3"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
- disable-failing-test.patch
- dont-package-tests.patch
- "
-builddir="$srcdir/$_pkgname-$pkgver"
-options="!check" # test command missing
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="319bb403970affd5a4222dfdb3d17738630d1350ea84e51ad1bebc6c8c72e0dcfd69a4eaf5e7bd156b8e605d806357922c05cc994dcafb01b7a33c617b2df447 pkginfo-1.5.0.1.tar.gz
-3eb9d1fe871b312f75b96158fa59f25a4533ac23873042776c129fa9489bc1e16883e4e2bef6401b283b8479b0cf86c4b49a5400c261ebea106bc01233881198 disable-failing-test.patch
-73a0b9191e1b39169d665cbbabba20254e33bb1e4b4e3c03b865425bd47309cbc92d1d8e125b68b57f657a583b070021819a061cf38a6cdd4ff009b23061ac8f dont-package-tests.patch"
diff --git a/testing/py3-pkginfo/disable-failing-test.patch b/testing/py3-pkginfo/disable-failing-test.patch
deleted file mode 100644
index eeb41f20e01..00000000000
--- a/testing/py3-pkginfo/disable-failing-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/pkginfo/tests/test_installed.py.orig
-+++ b/pkginfo/tests/test_installed.py
-@@ -44,6 +44,7 @@
- else:
- self.assertEqual(installed.metadata_version, '1.0')
-
-+ @unittest.skip("FIXME: This test fails for unknown reason")
- def test_ctor_w_package_no_PKG_INFO(self):
- import sys
- import types
diff --git a/testing/py3-pkginfo/dont-package-tests.patch b/testing/py3-pkginfo/dont-package-tests.patch
deleted file mode 100644
index 045e0121a87..00000000000
--- a/testing/py3-pkginfo/dont-package-tests.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -48,6 +48,6 @@
- 'pkginfo = pkginfo.commandline:main',
- ]
- },
-- packages=['pkginfo', 'pkginfo.tests'],
-+ packages=['pkginfo'],
- **extras
- )
diff --git a/testing/py3-plac/APKBUILD b/testing/py3-plac/APKBUILD
deleted file mode 100644
index 6ec25df7deb..00000000000
--- a/testing/py3-plac/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-plac
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="Parsing the command line the easy way"
-url="https://github.com/micheles/plac"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/micheles/plac/archive/$pkgver.tar.gz"
-builddir="$srcdir/plac-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.rst "$pkgdir/usr/share/doc/$pkgname/README.rst"
-}
-
-sha512sums="99f218e8f70ad2a626faf836790b88d8fa429a7e3c316affe68b04cd019a35de5f9537c9badc22220e60da6117f5942ed3c9e77d3f97587151fb995fd9879238 py3-plac-1.1.0.tar.gz"
diff --git a/testing/py3-playsound/APKBUILD b/testing/py3-playsound/APKBUILD
new file mode 100644
index 00000000000..6ba8f1def02
--- /dev/null
+++ b/testing/py3-playsound/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=py3-playsound
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="Pure Python, cross platform, single function module for playing sounds"
+url="https://github.com/TaylorSMarks/playsound"
+arch="noarch"
+license="MIT"
+depends="python3 py3-gobject3 py3-gst"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/TaylorSMarks/playsound/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/playsound-$pkgver"
+options="!check" # tests hang
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 test.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+a64d34ae843bc648a26a5c146e87f7a4da0a99edae5c9b50a522527a20cc464ddc80d85572efece4518c43e5a54a7ffdf756ebc3adad96d552314fa40e491148 py3-playsound-1.3.0.tar.gz
+"
diff --git a/testing/py3-plexapi/APKBUILD b/testing/py3-plexapi/APKBUILD
new file mode 100644
index 00000000000..0629a98d1c1
--- /dev/null
+++ b/testing/py3-plexapi/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=py3-plexapi
+_pkgname=python-plexapi
+pkgver=4.15.11
+pkgrel=1
+pkgdesc="Python bindings for the Plex API"
+url="https://github.com/pkkid/python-plexapi"
+arch="noarch"
+license="BSD-3-Clause"
+# tests requires an instance of plex running
+# net for sphinx
+options="net !check"
+depends="
+ python3
+ py3-requests
+ "
+makedepends="
+ py3-gpep517
+ py3-recommonmark
+ py3-setuptools
+ py3-sphinx_rtd_theme
+ py3-wheel
+ "
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://github.com/pkkid/python-plexapi/archive/$pkgver/py3-plexapi-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ sphinx-build -W -b man docs man
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ install -Dm644 man/pythonplexapi.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+c68b414aa9262c3505dc2490c38e8d5dd896970f4df7fe8d382a0c5f2276ecc9833767e243b596c4f0f625e6d8984f5f89790fe7a71e9b6cab1c439f26b9cde1 py3-plexapi-4.15.11.tar.gz
+"
diff --git a/testing/py3-pockethernet/APKBUILD b/testing/py3-pockethernet/APKBUILD
index ff50e99091d..4829d8af4be 100644
--- a/testing/py3-pockethernet/APKBUILD
+++ b/testing/py3-pockethernet/APKBUILD
@@ -1,8 +1,9 @@
# Maintainer: Martijn Braam <martijn@brixit.nl>
+# Contributor: Martijn Braam <martijn@brixit.nl>
pkgname=py3-pockethernet
_pyname=pockethernet
-pkgver=0.2.1
-pkgrel=1
+pkgver=0.7.0
+pkgrel=3
pkgdesc="Library for controlling the Pockethernet"
url="https://gitlab.com/MartijnBraam/pockethernet-protocol"
arch="noarch"
@@ -10,8 +11,9 @@ license="MIT"
depends="python3 py3-cobs py3-crc16"
makedepends="py3-setuptools"
_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir=$srcdir/$_pyname-$pkgver
+subpackages="$pkgname-pyc"
+source="https://gitlab.com/MartijnBraam/pockethernet-protocol/-/archive/$pkgver/pockethernet-protocol-$pkgver.tar.gz"
+builddir=$srcdir/pockethernet-protocol-$pkgver
build() {
python3 setup.py build
@@ -22,6 +24,8 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="df8c438868a15e8e401a62b3033a6e81610fdb4d54a66be42a8691b965820f2e58ddf8a31a8334412f8decc0c771849f8c02798d64e71413a3b821365ed5e3cb pockethernet-0.2.1.tar.gz"
+sha512sums="
+e312f712b8ca914d307a9d2a4a82d5c954f210c1fb7936442e0c5608a8bab92a5b2e100a8e5be24a249f9ca15e6de2086c50bebd48ba6dcf69f70bf50e7b2c4d pockethernet-protocol-0.7.0.tar.gz
+"
diff --git a/testing/py3-pocketsphinx/APKBUILD b/testing/py3-pocketsphinx/APKBUILD
deleted file mode 100644
index 8566800c771..00000000000
--- a/testing/py3-pocketsphinx/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pocketsphinx
-pkgver=0.1.15
-pkgrel=0
-pkgdesc="Python interface to CMU Sphinxbase and Pocketsphinx libraries"
-url="https://github.com/bambocher/pocketsphinx-python"
-arch="all"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools swig python3-dev pulseaudio-dev alsa-lib-dev"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/p/pocketsphinx/pocketsphinx-$pkgver.tar.gz"
-# PyPi release package doesn't include the tests even though they exist
-# https://github.com/bambocher/pocketsphinx-python/issues/55
-options="!check" # No tests
-builddir="$srcdir/pocketsphinx-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5693d76b46fee482439d937425ef78746265db8936747aac6757520adc3b6866dda79972315b7273783d2d3a42194d0b9a78dadf1fab746f6d7f257f3dd3a05a pocketsphinx-0.1.15.tar.gz"
diff --git a/testing/py3-poetry-dynamic-versioning/APKBUILD b/testing/py3-poetry-dynamic-versioning/APKBUILD
new file mode 100644
index 00000000000..450d4b34ab2
--- /dev/null
+++ b/testing/py3-poetry-dynamic-versioning/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-poetry-dynamic-versioning
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Plugin for Poetry to enable dynamic versioning based on VCS tags"
+url="https://github.com/mtkennerly/poetry-dynamic-versioning"
+arch="noarch"
+license="MIT"
+depends="py3-dunamai py3-tomlkit py3-jinja2 py3-poetry-core"
+makedepends="py3-gpep517 py3-poetry-core py3-wheel py3-installer"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/mtkennerly/poetry-dynamic-versioning/archive/v$pkgver/py3-poetry-dynamic-versioning-$pkgver.tar.gz"
+builddir="$srcdir/poetry-dynamic-versioning-$pkgver"
+options="!check" # tests require a git repo
+
+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="
+7e12745045dfa8b8bc7c140165cb39eef0e0231e23903ed7f58761e109dc28254906bc9609fd4b830559a8c462bd3cf80ac7a0bb71f6ba91ae9ef3a2d70cd811 py3-poetry-dynamic-versioning-1.2.0.tar.gz
+"
diff --git a/testing/py3-pokebase/APKBUILD b/testing/py3-pokebase/APKBUILD
deleted file mode 100644
index 5305edbbd19..00000000000
--- a/testing/py3-pokebase/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribberse <bribbers@disroot.org>
-# Maintainer: Bart Ribberse <bribbers@disroot.org>
-pkgname=py3-pokebase
-pkgver=1.2.0
-pkgrel=0
-pkgdesc="A Python wrapper for the friendly PokeAPI database"
-url="https://github.com/GregHilmes/pokebase"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-requests py3-certifi py3-chardet py3-idna py3-urllib3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/pokebase/pokebase-$pkgver.tar.gz"
-options="!check" # No tests in pypi package
-builddir="$srcdir/pokebase-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b6f3e89cb5b95cf6703755526e69ce27e294ef1b7095267e2fd419d0fecd0e7168239319f83d301b2e30f811346275d0cdb7c0a40cf368c90ff31fa503f95ab8 pokebase-1.2.0.tar.gz"
diff --git a/testing/py3-poppler-qt5/APKBUILD b/testing/py3-poppler-qt5/APKBUILD
new file mode 100644
index 00000000000..e58354b9616
--- /dev/null
+++ b/testing/py3-poppler-qt5/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Krystian Chachuła <krystian@krystianch.com>
+pkgname=py3-poppler-qt5
+_pkgname=python-poppler-qt5
+pkgver=21.3.0
+pkgrel=1
+pkgdesc="Python binding to Poppler-Qt5"
+url="https://github.com/frescobaldi/python-poppler-qt5"
+arch="all"
+license="LGPL-2.1-or-later"
+depends="py3-qt5 poppler-qt5"
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-sip
+ python3-dev
+ py3-pyqt-builder
+ qt5-qtbase-dev
+ poppler-qt5-dev
+"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/frescobaldi/python-poppler-qt5/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+}
+
+sha512sums="
+cc942a860c2c999ff04fb0468b1556b0e23e7aa19a0185a39c5e903e717dca64bcbd51b8fe34b6885bd789cbf5cc1080c2ca1dcee30b3e69fa1721618e8db278 python-poppler-qt5-21.3.0.tar.gz
+"
diff --git a/testing/py3-portalocker/APKBUILD b/testing/py3-portalocker/APKBUILD
deleted file mode 100644
index c629227c909..00000000000
--- a/testing/py3-portalocker/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-portalocker
-pkgver=1.7.0
-pkgrel=0
-pkgdesc="An extended version of portalocker to lock files in Python using the with statement"
-url="http://portalocker.readthedocs.io/en/latest/"
-arch="noarch"
-license="PSF-2.0"
-depends="python3 py3-babel py3-imagesize py3-requests py3-snowballstemmer"
-makedepends="py3-setuptools py3-sphinx"
-checkdepends="py3-pytest py3-docutils py3-pytest-cov"
-source="https://pypi.python.org/packages/source/p/portalocker/portalocker-$pkgver.tar.gz"
-# Tests requires deprecated Python package pytest-flakes and pytest-pep8
-options="!check"
-builddir="$srcdir/portalocker-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="84bd07ca772703cdd4062753ca72538c28fc97e0bd90fe6530964a020b5c09351a00761dddf4b39e08fc528afa8f6d2c7537e95c39cf467e66c6191b769239e0 portalocker-1.7.0.tar.gz"
diff --git a/testing/py3-pprintpp/APKBUILD b/testing/py3-pprintpp/APKBUILD
new file mode 100644
index 00000000000..2a90eeca843
--- /dev/null
+++ b/testing/py3-pprintpp/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-pprintpp
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="A drop-in replacement for pprint that's actually pretty"
+url="https://github.com/wolever/pprintpp"
+arch="noarch"
+license="BSD-2-Clause"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/p/pprintpp/pprintpp-$pkgver.tar.gz
+ $pkgname-0001-remove-u.patch::https://github.com/wolever/pprintpp/commit/deec5e5efad562fc2f9084abfe249ed0c7dd65fa.patch
+ "
+options="!check" # No tests
+builddir="$srcdir/pprintpp-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+c59d759744499ec74bbbbcf440a45b4bb5a1ed0586cd76d444da764eb3e3c02ef5e883c00c0501f1138baa84b04f5e89ce3f8c9ed7a9cbe65c93d42deb573010 pprintpp-0.4.0.tar.gz
+5fc1e52ff7e64fa6dad3e19f160d948dfcef24c6afa493878395cdfbe701fce20c85a8dee46be9ef86d6a56f7c1bdc02d4c735c9186bfc10b00d8e9f0166cc85 py3-pprintpp-0001-remove-u.patch
+"
diff --git a/testing/py3-praw/APKBUILD b/testing/py3-praw/APKBUILD
deleted file mode 100644
index 5c00d732cac..00000000000
--- a/testing/py3-praw/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-praw
-_pkgname=praw
-pkgver=6.5.1
-pkgrel=0
-pkgdesc="A Python module to access to reddit's API"
-options="!check" # missing 'Betamax' modules
-url="https://github.com/praw-dev/praw"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="py3-prawcore py3-update-checker py3-requests py3-six py3-websocket-client"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/praw-dev/praw/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-praw" # Backwards compatibility
-provides="py-praw=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b1e3ac1ced80093db601d7bd26a3105732afbe2855169e8bdfe7ca34eeebdde0c6b793f1886c58f3ab08cbc112259e9e1e20d83eac7e84e015b43e284415c991 praw-6.5.1.tar.gz"
diff --git a/testing/py3-prawcore/APKBUILD b/testing/py3-prawcore/APKBUILD
deleted file mode 100644
index eb8ae166e09..00000000000
--- a/testing/py3-prawcore/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=py3-prawcore
-pkgver=1.4.0
-pkgrel=0
-pkgdesc="a low-level communication layer for PRAW 4+"
-options="net" # To fetch unpackaged test dependencies
-url="https://github.com/praw-dev/prawcore"
-arch="noarch"
-license="BSD-2-Clause"
-depends="py3-setuptools py3-requests"
-checkdepends="py3-mock py3-betamax py3-betamax_matchers py3-betamax_serializers py3-testfixtures"
-source="$pkgname-$pkgver.tar.gz::https://github.com/praw-dev/prawcore/archive/v$pkgver.tar.gz"
-builddir="$srcdir/prawcore-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="4fda3cb7e403a958ec8ed25faf7d9ca23c8bfdf6fed7c47a8cfafac37314cf821dcba3523b0d2b8a879b4f010287c2c6eb627c18af0c61952b70b12cd335ed10 py3-prawcore-1.4.0.tar.gz"
diff --git a/testing/py3-precis-i18n/APKBUILD b/testing/py3-precis-i18n/APKBUILD
deleted file mode 100644
index 24faada971e..00000000000
--- a/testing/py3-precis-i18n/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=py3-precis-i18n
-_pkgname=precis-i18n
-pkgver=1.0.1
-pkgrel=1
-pkgdesc="Internationalized Usernames and Passwords"
-url="https://github.com/byllyfish/precis_i18n"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/byllyfish/precis_i18n/archive/v${pkgver}.tar.gz
- Support-Unicode-12.1-for-Python-3.8.patch
- "
-builddir="$srcdir"/${_pkgname/-/_}-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- python3 setup.py test
-}
-sha512sums="a62e76588ae1ccba6de51488ceae0e2a454e77bdc946e7c4cea1cb41017253b6e239aab120bdbf1a57b51b827ec7554fb7d6fc10a3a4203f09f6f91f1b4192f4 precis-i18n-1.0.1.tar.gz
-81bcc4d2af10cef756830f504ec74aee1a88f56b29ede1b631142b624aca8ac8aa217a7802a731a2d8ffce90c7de6d80c597b7f8ae91a9ae665b5a6fe11e3b60 Support-Unicode-12.1-for-Python-3.8.patch"
diff --git a/testing/py3-precis-i18n/Support-Unicode-12.1-for-Python-3.8.patch b/testing/py3-precis-i18n/Support-Unicode-12.1-for-Python-3.8.patch
deleted file mode 100644
index 7574307b031..00000000000
--- a/testing/py3-precis-i18n/Support-Unicode-12.1-for-Python-3.8.patch
+++ /dev/null
@@ -1,2091 +0,0 @@
-From 7b6987e206881b002ddcc87dde16f978c080eedd Mon Sep 17 00:00:00 2001
-From: Bill Fisher <william.w.fisher@gmail.com>
-Date: Sun, 21 Jul 2019 18:01:27 -0700
-Subject: [PATCH] Support Unicode 12.1 for Python 3.8.
-
----
- test/derived-props-12.1.txt | 2075 +++++++++++++++++++++++++++++++++++
- 1 file changed, 2075 insertions(+)
- create mode 100644 test/derived-props-12.1.txt
-
-diff --git a/test/derived-props-12.1.txt b/test/derived-props-12.1.txt
-new file mode 100644
-index 0000000..3823dd7
---- /dev/null
-+++ b/test/derived-props-12.1.txt
-@@ -0,0 +1,2075 @@
-+0000-001F DISALLOWED/controls
-+0020-0020 FREE_PVAL/spaces
-+0021-007E PVALID/ascii7
-+007F-009F DISALLOWED/controls
-+00A0-00A0 FREE_PVAL/has_compat
-+00A1-00A1 FREE_PVAL/punctuation
-+00A2-00A6 FREE_PVAL/symbols
-+00A7-00A7 FREE_PVAL/punctuation
-+00A8-00A8 FREE_PVAL/has_compat
-+00A9-00A9 FREE_PVAL/symbols
-+00AA-00AA FREE_PVAL/has_compat
-+00AB-00AB FREE_PVAL/punctuation
-+00AC-00AC FREE_PVAL/symbols
-+00AD-00AD DISALLOWED/precis_ignorable_properties
-+00AE-00AE FREE_PVAL/symbols
-+00AF-00AF FREE_PVAL/has_compat
-+00B0-00B1 FREE_PVAL/symbols
-+00B2-00B5 FREE_PVAL/has_compat
-+00B6-00B6 FREE_PVAL/punctuation
-+00B7-00B7 CONTEXTO/exceptions
-+00B8-00BA FREE_PVAL/has_compat
-+00BB-00BB FREE_PVAL/punctuation
-+00BC-00BE FREE_PVAL/has_compat
-+00BF-00BF FREE_PVAL/punctuation
-+00C0-00D6 PVALID/letter_digits
-+00D7-00D7 FREE_PVAL/symbols
-+00D8-00DE PVALID/letter_digits
-+00DF-00DF PVALID/exceptions
-+00E0-00F6 PVALID/letter_digits
-+00F7-00F7 FREE_PVAL/symbols
-+00F8-0131 PVALID/letter_digits
-+0132-0133 FREE_PVAL/has_compat
-+0134-013E PVALID/letter_digits
-+013F-0140 FREE_PVAL/has_compat
-+0141-0148 PVALID/letter_digits
-+0149-0149 FREE_PVAL/has_compat
-+014A-017E PVALID/letter_digits
-+017F-017F FREE_PVAL/has_compat
-+0180-01C3 PVALID/letter_digits
-+01C4-01CC FREE_PVAL/has_compat
-+01CD-01F0 PVALID/letter_digits
-+01F1-01F3 FREE_PVAL/has_compat
-+01F4-02AF PVALID/letter_digits
-+02B0-02B8 FREE_PVAL/has_compat
-+02B9-02C1 PVALID/letter_digits
-+02C2-02C5 FREE_PVAL/symbols
-+02C6-02D1 PVALID/letter_digits
-+02D2-02D7 FREE_PVAL/symbols
-+02D8-02DD FREE_PVAL/has_compat
-+02DE-02DF FREE_PVAL/symbols
-+02E0-02E4 FREE_PVAL/has_compat
-+02E5-02EB FREE_PVAL/symbols
-+02EC-02EC PVALID/letter_digits
-+02ED-02ED FREE_PVAL/symbols
-+02EE-02EE PVALID/letter_digits
-+02EF-02FF FREE_PVAL/symbols
-+0300-033F PVALID/letter_digits
-+0340-0341 FREE_PVAL/has_compat
-+0342-0342 PVALID/letter_digits
-+0343-0344 FREE_PVAL/has_compat
-+0345-034E PVALID/letter_digits
-+034F-034F DISALLOWED/precis_ignorable_properties
-+0350-0373 PVALID/letter_digits
-+0374-0374 FREE_PVAL/has_compat
-+0375-0375 CONTEXTO/exceptions
-+0376-0377 PVALID/letter_digits
-+0378-0379 UNASSIGNED/unassigned
-+037A-037A FREE_PVAL/has_compat
-+037B-037D PVALID/letter_digits
-+037E-037E FREE_PVAL/has_compat
-+037F-037F PVALID/letter_digits
-+0380-0383 UNASSIGNED/unassigned
-+0384-0385 FREE_PVAL/has_compat
-+0386-0386 PVALID/letter_digits
-+0387-0387 FREE_PVAL/has_compat
-+0388-038A PVALID/letter_digits
-+038B-038B UNASSIGNED/unassigned
-+038C-038C PVALID/letter_digits
-+038D-038D UNASSIGNED/unassigned
-+038E-03A1 PVALID/letter_digits
-+03A2-03A2 UNASSIGNED/unassigned
-+03A3-03C1 PVALID/letter_digits
-+03C2-03C2 PVALID/exceptions
-+03C3-03CF PVALID/letter_digits
-+03D0-03D6 FREE_PVAL/has_compat
-+03D7-03EF PVALID/letter_digits
-+03F0-03F2 FREE_PVAL/has_compat
-+03F3-03F3 PVALID/letter_digits
-+03F4-03F5 FREE_PVAL/has_compat
-+03F6-03F6 FREE_PVAL/symbols
-+03F7-03F8 PVALID/letter_digits
-+03F9-03F9 FREE_PVAL/has_compat
-+03FA-0481 PVALID/letter_digits
-+0482-0482 FREE_PVAL/symbols
-+0483-0487 PVALID/letter_digits
-+0488-0489 FREE_PVAL/other_letter_digits
-+048A-052F PVALID/letter_digits
-+0530-0530 UNASSIGNED/unassigned
-+0531-0556 PVALID/letter_digits
-+0557-0558 UNASSIGNED/unassigned
-+0559-0559 PVALID/letter_digits
-+055A-055F FREE_PVAL/punctuation
-+0560-0586 PVALID/letter_digits
-+0587-0587 FREE_PVAL/has_compat
-+0588-0588 PVALID/letter_digits
-+0589-058A FREE_PVAL/punctuation
-+058B-058C UNASSIGNED/unassigned
-+058D-058F FREE_PVAL/symbols
-+0590-0590 UNASSIGNED/unassigned
-+0591-05BD PVALID/letter_digits
-+05BE-05BE FREE_PVAL/punctuation
-+05BF-05BF PVALID/letter_digits
-+05C0-05C0 FREE_PVAL/punctuation
-+05C1-05C2 PVALID/letter_digits
-+05C3-05C3 FREE_PVAL/punctuation
-+05C4-05C5 PVALID/letter_digits
-+05C6-05C6 FREE_PVAL/punctuation
-+05C7-05C7 PVALID/letter_digits
-+05C8-05CF UNASSIGNED/unassigned
-+05D0-05EA PVALID/letter_digits
-+05EB-05EE UNASSIGNED/unassigned
-+05EF-05F2 PVALID/letter_digits
-+05F3-05F4 CONTEXTO/exceptions
-+05F5-05FF UNASSIGNED/unassigned
-+0600-0605 DISALLOWED/other
-+0606-0608 FREE_PVAL/symbols
-+0609-060A FREE_PVAL/punctuation
-+060B-060B FREE_PVAL/symbols
-+060C-060D FREE_PVAL/punctuation
-+060E-060F FREE_PVAL/symbols
-+0610-061A PVALID/letter_digits
-+061B-061B FREE_PVAL/punctuation
-+061C-061C DISALLOWED/precis_ignorable_properties
-+061D-061D UNASSIGNED/unassigned
-+061E-061F FREE_PVAL/punctuation
-+0620-063F PVALID/letter_digits
-+0640-0640 DISALLOWED/exceptions
-+0641-065F PVALID/letter_digits
-+0660-0669 CONTEXTO/exceptions
-+066A-066D FREE_PVAL/punctuation
-+066E-0674 PVALID/letter_digits
-+0675-0678 FREE_PVAL/has_compat
-+0679-06D3 PVALID/letter_digits
-+06D4-06D4 FREE_PVAL/punctuation
-+06D5-06DC PVALID/letter_digits
-+06DD-06DD DISALLOWED/other
-+06DE-06DE FREE_PVAL/symbols
-+06DF-06E8 PVALID/letter_digits
-+06E9-06E9 FREE_PVAL/symbols
-+06EA-06EF PVALID/letter_digits
-+06F0-06F9 CONTEXTO/exceptions
-+06FA-06FC PVALID/letter_digits
-+06FD-06FE PVALID/exceptions
-+06FF-06FF PVALID/letter_digits
-+0700-070D FREE_PVAL/punctuation
-+070E-070E UNASSIGNED/unassigned
-+070F-070F DISALLOWED/other
-+0710-074A PVALID/letter_digits
-+074B-074C UNASSIGNED/unassigned
-+074D-07B1 PVALID/letter_digits
-+07B2-07BF UNASSIGNED/unassigned
-+07C0-07F5 PVALID/letter_digits
-+07F6-07F6 FREE_PVAL/symbols
-+07F7-07F9 FREE_PVAL/punctuation
-+07FA-07FA DISALLOWED/exceptions
-+07FB-07FC UNASSIGNED/unassigned
-+07FD-07FD PVALID/letter_digits
-+07FE-07FF FREE_PVAL/symbols
-+0800-082D PVALID/letter_digits
-+082E-082F UNASSIGNED/unassigned
-+0830-083E FREE_PVAL/punctuation
-+083F-083F UNASSIGNED/unassigned
-+0840-085B PVALID/letter_digits
-+085C-085D UNASSIGNED/unassigned
-+085E-085E FREE_PVAL/punctuation
-+085F-085F UNASSIGNED/unassigned
-+0860-086A PVALID/letter_digits
-+086B-089F UNASSIGNED/unassigned
-+08A0-08B4 PVALID/letter_digits
-+08B5-08B5 UNASSIGNED/unassigned
-+08B6-08BD PVALID/letter_digits
-+08BE-08D2 UNASSIGNED/unassigned
-+08D3-08E1 PVALID/letter_digits
-+08E2-08E2 DISALLOWED/other
-+08E3-0957 PVALID/letter_digits
-+0958-095F FREE_PVAL/has_compat
-+0960-0963 PVALID/letter_digits
-+0964-0965 FREE_PVAL/punctuation
-+0966-096F PVALID/letter_digits
-+0970-0970 FREE_PVAL/punctuation
-+0971-0983 PVALID/letter_digits
-+0984-0984 UNASSIGNED/unassigned
-+0985-098C PVALID/letter_digits
-+098D-098E UNASSIGNED/unassigned
-+098F-0990 PVALID/letter_digits
-+0991-0992 UNASSIGNED/unassigned
-+0993-09A8 PVALID/letter_digits
-+09A9-09A9 UNASSIGNED/unassigned
-+09AA-09B0 PVALID/letter_digits
-+09B1-09B1 UNASSIGNED/unassigned
-+09B2-09B2 PVALID/letter_digits
-+09B3-09B5 UNASSIGNED/unassigned
-+09B6-09B9 PVALID/letter_digits
-+09BA-09BB UNASSIGNED/unassigned
-+09BC-09C4 PVALID/letter_digits
-+09C5-09C6 UNASSIGNED/unassigned
-+09C7-09C8 PVALID/letter_digits
-+09C9-09CA UNASSIGNED/unassigned
-+09CB-09CE PVALID/letter_digits
-+09CF-09D6 UNASSIGNED/unassigned
-+09D7-09D7 PVALID/letter_digits
-+09D8-09DB UNASSIGNED/unassigned
-+09DC-09DD FREE_PVAL/has_compat
-+09DE-09DE UNASSIGNED/unassigned
-+09DF-09DF FREE_PVAL/has_compat
-+09E0-09E3 PVALID/letter_digits
-+09E4-09E5 UNASSIGNED/unassigned
-+09E6-09F1 PVALID/letter_digits
-+09F2-09F3 FREE_PVAL/symbols
-+09F4-09F9 FREE_PVAL/other_letter_digits
-+09FA-09FB FREE_PVAL/symbols
-+09FC-09FC PVALID/letter_digits
-+09FD-09FD FREE_PVAL/punctuation
-+09FE-09FE PVALID/letter_digits
-+09FF-0A00 UNASSIGNED/unassigned
-+0A01-0A03 PVALID/letter_digits
-+0A04-0A04 UNASSIGNED/unassigned
-+0A05-0A0A PVALID/letter_digits
-+0A0B-0A0E UNASSIGNED/unassigned
-+0A0F-0A10 PVALID/letter_digits
-+0A11-0A12 UNASSIGNED/unassigned
-+0A13-0A28 PVALID/letter_digits
-+0A29-0A29 UNASSIGNED/unassigned
-+0A2A-0A30 PVALID/letter_digits
-+0A31-0A31 UNASSIGNED/unassigned
-+0A32-0A32 PVALID/letter_digits
-+0A33-0A33 FREE_PVAL/has_compat
-+0A34-0A34 UNASSIGNED/unassigned
-+0A35-0A35 PVALID/letter_digits
-+0A36-0A36 FREE_PVAL/has_compat
-+0A37-0A37 UNASSIGNED/unassigned
-+0A38-0A39 PVALID/letter_digits
-+0A3A-0A3B UNASSIGNED/unassigned
-+0A3C-0A3C PVALID/letter_digits
-+0A3D-0A3D UNASSIGNED/unassigned
-+0A3E-0A42 PVALID/letter_digits
-+0A43-0A46 UNASSIGNED/unassigned
-+0A47-0A48 PVALID/letter_digits
-+0A49-0A4A UNASSIGNED/unassigned
-+0A4B-0A4D PVALID/letter_digits
-+0A4E-0A50 UNASSIGNED/unassigned
-+0A51-0A51 PVALID/letter_digits
-+0A52-0A58 UNASSIGNED/unassigned
-+0A59-0A5B FREE_PVAL/has_compat
-+0A5C-0A5C PVALID/letter_digits
-+0A5D-0A5D UNASSIGNED/unassigned
-+0A5E-0A5E FREE_PVAL/has_compat
-+0A5F-0A65 UNASSIGNED/unassigned
-+0A66-0A75 PVALID/letter_digits
-+0A76-0A76 FREE_PVAL/punctuation
-+0A77-0A80 UNASSIGNED/unassigned
-+0A81-0A83 PVALID/letter_digits
-+0A84-0A84 UNASSIGNED/unassigned
-+0A85-0A8D PVALID/letter_digits
-+0A8E-0A8E UNASSIGNED/unassigned
-+0A8F-0A91 PVALID/letter_digits
-+0A92-0A92 UNASSIGNED/unassigned
-+0A93-0AA8 PVALID/letter_digits
-+0AA9-0AA9 UNASSIGNED/unassigned
-+0AAA-0AB0 PVALID/letter_digits
-+0AB1-0AB1 UNASSIGNED/unassigned
-+0AB2-0AB3 PVALID/letter_digits
-+0AB4-0AB4 UNASSIGNED/unassigned
-+0AB5-0AB9 PVALID/letter_digits
-+0ABA-0ABB UNASSIGNED/unassigned
-+0ABC-0AC5 PVALID/letter_digits
-+0AC6-0AC6 UNASSIGNED/unassigned
-+0AC7-0AC9 PVALID/letter_digits
-+0ACA-0ACA UNASSIGNED/unassigned
-+0ACB-0ACD PVALID/letter_digits
-+0ACE-0ACF UNASSIGNED/unassigned
-+0AD0-0AD0 PVALID/letter_digits
-+0AD1-0ADF UNASSIGNED/unassigned
-+0AE0-0AE3 PVALID/letter_digits
-+0AE4-0AE5 UNASSIGNED/unassigned
-+0AE6-0AEF PVALID/letter_digits
-+0AF0-0AF0 FREE_PVAL/punctuation
-+0AF1-0AF1 FREE_PVAL/symbols
-+0AF2-0AF8 UNASSIGNED/unassigned
-+0AF9-0AFF PVALID/letter_digits
-+0B00-0B00 UNASSIGNED/unassigned
-+0B01-0B03 PVALID/letter_digits
-+0B04-0B04 UNASSIGNED/unassigned
-+0B05-0B0C PVALID/letter_digits
-+0B0D-0B0E UNASSIGNED/unassigned
-+0B0F-0B10 PVALID/letter_digits
-+0B11-0B12 UNASSIGNED/unassigned
-+0B13-0B28 PVALID/letter_digits
-+0B29-0B29 UNASSIGNED/unassigned
-+0B2A-0B30 PVALID/letter_digits
-+0B31-0B31 UNASSIGNED/unassigned
-+0B32-0B33 PVALID/letter_digits
-+0B34-0B34 UNASSIGNED/unassigned
-+0B35-0B39 PVALID/letter_digits
-+0B3A-0B3B UNASSIGNED/unassigned
-+0B3C-0B44 PVALID/letter_digits
-+0B45-0B46 UNASSIGNED/unassigned
-+0B47-0B48 PVALID/letter_digits
-+0B49-0B4A UNASSIGNED/unassigned
-+0B4B-0B4D PVALID/letter_digits
-+0B4E-0B55 UNASSIGNED/unassigned
-+0B56-0B57 PVALID/letter_digits
-+0B58-0B5B UNASSIGNED/unassigned
-+0B5C-0B5D FREE_PVAL/has_compat
-+0B5E-0B5E UNASSIGNED/unassigned
-+0B5F-0B63 PVALID/letter_digits
-+0B64-0B65 UNASSIGNED/unassigned
-+0B66-0B6F PVALID/letter_digits
-+0B70-0B70 FREE_PVAL/symbols
-+0B71-0B71 PVALID/letter_digits
-+0B72-0B77 FREE_PVAL/other_letter_digits
-+0B78-0B81 UNASSIGNED/unassigned
-+0B82-0B83 PVALID/letter_digits
-+0B84-0B84 UNASSIGNED/unassigned
-+0B85-0B8A PVALID/letter_digits
-+0B8B-0B8D UNASSIGNED/unassigned
-+0B8E-0B90 PVALID/letter_digits
-+0B91-0B91 UNASSIGNED/unassigned
-+0B92-0B95 PVALID/letter_digits
-+0B96-0B98 UNASSIGNED/unassigned
-+0B99-0B9A PVALID/letter_digits
-+0B9B-0B9B UNASSIGNED/unassigned
-+0B9C-0B9C PVALID/letter_digits
-+0B9D-0B9D UNASSIGNED/unassigned
-+0B9E-0B9F PVALID/letter_digits
-+0BA0-0BA2 UNASSIGNED/unassigned
-+0BA3-0BA4 PVALID/letter_digits
-+0BA5-0BA7 UNASSIGNED/unassigned
-+0BA8-0BAA PVALID/letter_digits
-+0BAB-0BAD UNASSIGNED/unassigned
-+0BAE-0BB9 PVALID/letter_digits
-+0BBA-0BBD UNASSIGNED/unassigned
-+0BBE-0BC2 PVALID/letter_digits
-+0BC3-0BC5 UNASSIGNED/unassigned
-+0BC6-0BC8 PVALID/letter_digits
-+0BC9-0BC9 UNASSIGNED/unassigned
-+0BCA-0BCD PVALID/letter_digits
-+0BCE-0BCF UNASSIGNED/unassigned
-+0BD0-0BD0 PVALID/letter_digits
-+0BD1-0BD6 UNASSIGNED/unassigned
-+0BD7-0BD7 PVALID/letter_digits
-+0BD8-0BE5 UNASSIGNED/unassigned
-+0BE6-0BEF PVALID/letter_digits
-+0BF0-0BF2 FREE_PVAL/other_letter_digits
-+0BF3-0BFA FREE_PVAL/symbols
-+0BFB-0BFF UNASSIGNED/unassigned
-+0C00-0C0C PVALID/letter_digits
-+0C0D-0C0D UNASSIGNED/unassigned
-+0C0E-0C10 PVALID/letter_digits
-+0C11-0C11 UNASSIGNED/unassigned
-+0C12-0C28 PVALID/letter_digits
-+0C29-0C29 UNASSIGNED/unassigned
-+0C2A-0C39 PVALID/letter_digits
-+0C3A-0C3C UNASSIGNED/unassigned
-+0C3D-0C44 PVALID/letter_digits
-+0C45-0C45 UNASSIGNED/unassigned
-+0C46-0C48 PVALID/letter_digits
-+0C49-0C49 UNASSIGNED/unassigned
-+0C4A-0C4D PVALID/letter_digits
-+0C4E-0C54 UNASSIGNED/unassigned
-+0C55-0C56 PVALID/letter_digits
-+0C57-0C57 UNASSIGNED/unassigned
-+0C58-0C5A PVALID/letter_digits
-+0C5B-0C5F UNASSIGNED/unassigned
-+0C60-0C63 PVALID/letter_digits
-+0C64-0C65 UNASSIGNED/unassigned
-+0C66-0C6F PVALID/letter_digits
-+0C70-0C76 UNASSIGNED/unassigned
-+0C77-0C77 FREE_PVAL/punctuation
-+0C78-0C7E FREE_PVAL/other_letter_digits
-+0C7F-0C7F FREE_PVAL/symbols
-+0C80-0C83 PVALID/letter_digits
-+0C84-0C84 FREE_PVAL/punctuation
-+0C85-0C8C PVALID/letter_digits
-+0C8D-0C8D UNASSIGNED/unassigned
-+0C8E-0C90 PVALID/letter_digits
-+0C91-0C91 UNASSIGNED/unassigned
-+0C92-0CA8 PVALID/letter_digits
-+0CA9-0CA9 UNASSIGNED/unassigned
-+0CAA-0CB3 PVALID/letter_digits
-+0CB4-0CB4 UNASSIGNED/unassigned
-+0CB5-0CB9 PVALID/letter_digits
-+0CBA-0CBB UNASSIGNED/unassigned
-+0CBC-0CC4 PVALID/letter_digits
-+0CC5-0CC5 UNASSIGNED/unassigned
-+0CC6-0CC8 PVALID/letter_digits
-+0CC9-0CC9 UNASSIGNED/unassigned
-+0CCA-0CCD PVALID/letter_digits
-+0CCE-0CD4 UNASSIGNED/unassigned
-+0CD5-0CD6 PVALID/letter_digits
-+0CD7-0CDD UNASSIGNED/unassigned
-+0CDE-0CDE PVALID/letter_digits
-+0CDF-0CDF UNASSIGNED/unassigned
-+0CE0-0CE3 PVALID/letter_digits
-+0CE4-0CE5 UNASSIGNED/unassigned
-+0CE6-0CEF PVALID/letter_digits
-+0CF0-0CF0 UNASSIGNED/unassigned
-+0CF1-0CF2 PVALID/letter_digits
-+0CF3-0CFF UNASSIGNED/unassigned
-+0D00-0D03 PVALID/letter_digits
-+0D04-0D04 UNASSIGNED/unassigned
-+0D05-0D0C PVALID/letter_digits
-+0D0D-0D0D UNASSIGNED/unassigned
-+0D0E-0D10 PVALID/letter_digits
-+0D11-0D11 UNASSIGNED/unassigned
-+0D12-0D44 PVALID/letter_digits
-+0D45-0D45 UNASSIGNED/unassigned
-+0D46-0D48 PVALID/letter_digits
-+0D49-0D49 UNASSIGNED/unassigned
-+0D4A-0D4E PVALID/letter_digits
-+0D4F-0D4F FREE_PVAL/symbols
-+0D50-0D53 UNASSIGNED/unassigned
-+0D54-0D57 PVALID/letter_digits
-+0D58-0D5E FREE_PVAL/other_letter_digits
-+0D5F-0D63 PVALID/letter_digits
-+0D64-0D65 UNASSIGNED/unassigned
-+0D66-0D6F PVALID/letter_digits
-+0D70-0D78 FREE_PVAL/other_letter_digits
-+0D79-0D79 FREE_PVAL/symbols
-+0D7A-0D7F PVALID/letter_digits
-+0D80-0D81 UNASSIGNED/unassigned
-+0D82-0D83 PVALID/letter_digits
-+0D84-0D84 UNASSIGNED/unassigned
-+0D85-0D96 PVALID/letter_digits
-+0D97-0D99 UNASSIGNED/unassigned
-+0D9A-0DB1 PVALID/letter_digits
-+0DB2-0DB2 UNASSIGNED/unassigned
-+0DB3-0DBB PVALID/letter_digits
-+0DBC-0DBC UNASSIGNED/unassigned
-+0DBD-0DBD PVALID/letter_digits
-+0DBE-0DBF UNASSIGNED/unassigned
-+0DC0-0DC6 PVALID/letter_digits
-+0DC7-0DC9 UNASSIGNED/unassigned
-+0DCA-0DCA PVALID/letter_digits
-+0DCB-0DCE UNASSIGNED/unassigned
-+0DCF-0DD4 PVALID/letter_digits
-+0DD5-0DD5 UNASSIGNED/unassigned
-+0DD6-0DD6 PVALID/letter_digits
-+0DD7-0DD7 UNASSIGNED/unassigned
-+0DD8-0DDF PVALID/letter_digits
-+0DE0-0DE5 UNASSIGNED/unassigned
-+0DE6-0DEF PVALID/letter_digits
-+0DF0-0DF1 UNASSIGNED/unassigned
-+0DF2-0DF3 PVALID/letter_digits
-+0DF4-0DF4 FREE_PVAL/punctuation
-+0DF5-0E00 UNASSIGNED/unassigned
-+0E01-0E32 PVALID/letter_digits
-+0E33-0E33 FREE_PVAL/has_compat
-+0E34-0E3A PVALID/letter_digits
-+0E3B-0E3E UNASSIGNED/unassigned
-+0E3F-0E3F FREE_PVAL/symbols
-+0E40-0E4E PVALID/letter_digits
-+0E4F-0E4F FREE_PVAL/punctuation
-+0E50-0E59 PVALID/letter_digits
-+0E5A-0E5B FREE_PVAL/punctuation
-+0E5C-0E80 UNASSIGNED/unassigned
-+0E81-0E82 PVALID/letter_digits
-+0E83-0E83 UNASSIGNED/unassigned
-+0E84-0E84 PVALID/letter_digits
-+0E85-0E85 UNASSIGNED/unassigned
-+0E86-0E8A PVALID/letter_digits
-+0E8B-0E8B UNASSIGNED/unassigned
-+0E8C-0EA3 PVALID/letter_digits
-+0EA4-0EA4 UNASSIGNED/unassigned
-+0EA5-0EA5 PVALID/letter_digits
-+0EA6-0EA6 UNASSIGNED/unassigned
-+0EA7-0EB2 PVALID/letter_digits
-+0EB3-0EB3 FREE_PVAL/has_compat
-+0EB4-0EBD PVALID/letter_digits
-+0EBE-0EBF UNASSIGNED/unassigned
-+0EC0-0EC4 PVALID/letter_digits
-+0EC5-0EC5 UNASSIGNED/unassigned
-+0EC6-0EC6 PVALID/letter_digits
-+0EC7-0EC7 UNASSIGNED/unassigned
-+0EC8-0ECD PVALID/letter_digits
-+0ECE-0ECF UNASSIGNED/unassigned
-+0ED0-0ED9 PVALID/letter_digits
-+0EDA-0EDB UNASSIGNED/unassigned
-+0EDC-0EDD FREE_PVAL/has_compat
-+0EDE-0EDF PVALID/letter_digits
-+0EE0-0EFF UNASSIGNED/unassigned
-+0F00-0F00 PVALID/letter_digits
-+0F01-0F03 FREE_PVAL/symbols
-+0F04-0F0A FREE_PVAL/punctuation
-+0F0B-0F0B PVALID/exceptions
-+0F0C-0F0C FREE_PVAL/has_compat
-+0F0D-0F12 FREE_PVAL/punctuation
-+0F13-0F13 FREE_PVAL/symbols
-+0F14-0F14 FREE_PVAL/punctuation
-+0F15-0F17 FREE_PVAL/symbols
-+0F18-0F19 PVALID/letter_digits
-+0F1A-0F1F FREE_PVAL/symbols
-+0F20-0F29 PVALID/letter_digits
-+0F2A-0F33 FREE_PVAL/other_letter_digits
-+0F34-0F34 FREE_PVAL/symbols
-+0F35-0F35 PVALID/letter_digits
-+0F36-0F36 FREE_PVAL/symbols
-+0F37-0F37 PVALID/letter_digits
-+0F38-0F38 FREE_PVAL/symbols
-+0F39-0F39 PVALID/letter_digits
-+0F3A-0F3D FREE_PVAL/punctuation
-+0F3E-0F42 PVALID/letter_digits
-+0F43-0F43 FREE_PVAL/has_compat
-+0F44-0F47 PVALID/letter_digits
-+0F48-0F48 UNASSIGNED/unassigned
-+0F49-0F4C PVALID/letter_digits
-+0F4D-0F4D FREE_PVAL/has_compat
-+0F4E-0F51 PVALID/letter_digits
-+0F52-0F52 FREE_PVAL/has_compat
-+0F53-0F56 PVALID/letter_digits
-+0F57-0F57 FREE_PVAL/has_compat
-+0F58-0F5B PVALID/letter_digits
-+0F5C-0F5C FREE_PVAL/has_compat
-+0F5D-0F68 PVALID/letter_digits
-+0F69-0F69 FREE_PVAL/has_compat
-+0F6A-0F6C PVALID/letter_digits
-+0F6D-0F70 UNASSIGNED/unassigned
-+0F71-0F72 PVALID/letter_digits
-+0F73-0F73 FREE_PVAL/has_compat
-+0F74-0F74 PVALID/letter_digits
-+0F75-0F79 FREE_PVAL/has_compat
-+0F7A-0F80 PVALID/letter_digits
-+0F81-0F81 FREE_PVAL/has_compat
-+0F82-0F84 PVALID/letter_digits
-+0F85-0F85 FREE_PVAL/punctuation
-+0F86-0F92 PVALID/letter_digits
-+0F93-0F93 FREE_PVAL/has_compat
-+0F94-0F97 PVALID/letter_digits
-+0F98-0F98 UNASSIGNED/unassigned
-+0F99-0F9C PVALID/letter_digits
-+0F9D-0F9D FREE_PVAL/has_compat
-+0F9E-0FA1 PVALID/letter_digits
-+0FA2-0FA2 FREE_PVAL/has_compat
-+0FA3-0FA6 PVALID/letter_digits
-+0FA7-0FA7 FREE_PVAL/has_compat
-+0FA8-0FAB PVALID/letter_digits
-+0FAC-0FAC FREE_PVAL/has_compat
-+0FAD-0FB8 PVALID/letter_digits
-+0FB9-0FB9 FREE_PVAL/has_compat
-+0FBA-0FBC PVALID/letter_digits
-+0FBD-0FBD UNASSIGNED/unassigned
-+0FBE-0FC5 FREE_PVAL/symbols
-+0FC6-0FC6 PVALID/letter_digits
-+0FC7-0FCC FREE_PVAL/symbols
-+0FCD-0FCD UNASSIGNED/unassigned
-+0FCE-0FCF FREE_PVAL/symbols
-+0FD0-0FD4 FREE_PVAL/punctuation
-+0FD5-0FD8 FREE_PVAL/symbols
-+0FD9-0FDA FREE_PVAL/punctuation
-+0FDB-0FFF UNASSIGNED/unassigned
-+1000-1049 PVALID/letter_digits
-+104A-104F FREE_PVAL/punctuation
-+1050-109D PVALID/letter_digits
-+109E-109F FREE_PVAL/symbols
-+10A0-10C5 PVALID/letter_digits
-+10C6-10C6 UNASSIGNED/unassigned
-+10C7-10C7 PVALID/letter_digits
-+10C8-10CC UNASSIGNED/unassigned
-+10CD-10CD PVALID/letter_digits
-+10CE-10CF UNASSIGNED/unassigned
-+10D0-10FA PVALID/letter_digits
-+10FB-10FB FREE_PVAL/punctuation
-+10FC-10FC FREE_PVAL/has_compat
-+10FD-10FF PVALID/letter_digits
-+1100-11FF DISALLOWED/old_hangul_jamo
-+1200-1248 PVALID/letter_digits
-+1249-1249 UNASSIGNED/unassigned
-+124A-124D PVALID/letter_digits
-+124E-124F UNASSIGNED/unassigned
-+1250-1256 PVALID/letter_digits
-+1257-1257 UNASSIGNED/unassigned
-+1258-1258 PVALID/letter_digits
-+1259-1259 UNASSIGNED/unassigned
-+125A-125D PVALID/letter_digits
-+125E-125F UNASSIGNED/unassigned
-+1260-1288 PVALID/letter_digits
-+1289-1289 UNASSIGNED/unassigned
-+128A-128D PVALID/letter_digits
-+128E-128F UNASSIGNED/unassigned
-+1290-12B0 PVALID/letter_digits
-+12B1-12B1 UNASSIGNED/unassigned
-+12B2-12B5 PVALID/letter_digits
-+12B6-12B7 UNASSIGNED/unassigned
-+12B8-12BE PVALID/letter_digits
-+12BF-12BF UNASSIGNED/unassigned
-+12C0-12C0 PVALID/letter_digits
-+12C1-12C1 UNASSIGNED/unassigned
-+12C2-12C5 PVALID/letter_digits
-+12C6-12C7 UNASSIGNED/unassigned
-+12C8-12D6 PVALID/letter_digits
-+12D7-12D7 UNASSIGNED/unassigned
-+12D8-1310 PVALID/letter_digits
-+1311-1311 UNASSIGNED/unassigned
-+1312-1315 PVALID/letter_digits
-+1316-1317 UNASSIGNED/unassigned
-+1318-135A PVALID/letter_digits
-+135B-135C UNASSIGNED/unassigned
-+135D-135F PVALID/letter_digits
-+1360-1368 FREE_PVAL/punctuation
-+1369-137C FREE_PVAL/other_letter_digits
-+137D-137F UNASSIGNED/unassigned
-+1380-138F PVALID/letter_digits
-+1390-1399 FREE_PVAL/symbols
-+139A-139F UNASSIGNED/unassigned
-+13A0-13F5 PVALID/letter_digits
-+13F6-13F7 UNASSIGNED/unassigned
-+13F8-13FD PVALID/letter_digits
-+13FE-13FF UNASSIGNED/unassigned
-+1400-1400 FREE_PVAL/punctuation
-+1401-166C PVALID/letter_digits
-+166D-166D FREE_PVAL/symbols
-+166E-166E FREE_PVAL/punctuation
-+166F-167F PVALID/letter_digits
-+1680-1680 FREE_PVAL/spaces
-+1681-169A PVALID/letter_digits
-+169B-169C FREE_PVAL/punctuation
-+169D-169F UNASSIGNED/unassigned
-+16A0-16EA PVALID/letter_digits
-+16EB-16ED FREE_PVAL/punctuation
-+16EE-16F0 FREE_PVAL/other_letter_digits
-+16F1-16F8 PVALID/letter_digits
-+16F9-16FF UNASSIGNED/unassigned
-+1700-170C PVALID/letter_digits
-+170D-170D UNASSIGNED/unassigned
-+170E-1714 PVALID/letter_digits
-+1715-171F UNASSIGNED/unassigned
-+1720-1734 PVALID/letter_digits
-+1735-1736 FREE_PVAL/punctuation
-+1737-173F UNASSIGNED/unassigned
-+1740-1753 PVALID/letter_digits
-+1754-175F UNASSIGNED/unassigned
-+1760-176C PVALID/letter_digits
-+176D-176D UNASSIGNED/unassigned
-+176E-1770 PVALID/letter_digits
-+1771-1771 UNASSIGNED/unassigned
-+1772-1773 PVALID/letter_digits
-+1774-177F UNASSIGNED/unassigned
-+1780-17B3 PVALID/letter_digits
-+17B4-17B5 DISALLOWED/precis_ignorable_properties
-+17B6-17D3 PVALID/letter_digits
-+17D4-17D6 FREE_PVAL/punctuation
-+17D7-17D7 PVALID/letter_digits
-+17D8-17DA FREE_PVAL/punctuation
-+17DB-17DB FREE_PVAL/symbols
-+17DC-17DD PVALID/letter_digits
-+17DE-17DF UNASSIGNED/unassigned
-+17E0-17E9 PVALID/letter_digits
-+17EA-17EF UNASSIGNED/unassigned
-+17F0-17F9 FREE_PVAL/other_letter_digits
-+17FA-17FF UNASSIGNED/unassigned
-+1800-180A FREE_PVAL/punctuation
-+180B-180E DISALLOWED/precis_ignorable_properties
-+180F-180F UNASSIGNED/unassigned
-+1810-1819 PVALID/letter_digits
-+181A-181F UNASSIGNED/unassigned
-+1820-1878 PVALID/letter_digits
-+1879-187F UNASSIGNED/unassigned
-+1880-18AA PVALID/letter_digits
-+18AB-18AF UNASSIGNED/unassigned
-+18B0-18F5 PVALID/letter_digits
-+18F6-18FF UNASSIGNED/unassigned
-+1900-191E PVALID/letter_digits
-+191F-191F UNASSIGNED/unassigned
-+1920-192B PVALID/letter_digits
-+192C-192F UNASSIGNED/unassigned
-+1930-193B PVALID/letter_digits
-+193C-193F UNASSIGNED/unassigned
-+1940-1940 FREE_PVAL/symbols
-+1941-1943 UNASSIGNED/unassigned
-+1944-1945 FREE_PVAL/punctuation
-+1946-196D PVALID/letter_digits
-+196E-196F UNASSIGNED/unassigned
-+1970-1974 PVALID/letter_digits
-+1975-197F UNASSIGNED/unassigned
-+1980-19AB PVALID/letter_digits
-+19AC-19AF UNASSIGNED/unassigned
-+19B0-19C9 PVALID/letter_digits
-+19CA-19CF UNASSIGNED/unassigned
-+19D0-19D9 PVALID/letter_digits
-+19DA-19DA FREE_PVAL/other_letter_digits
-+19DB-19DD UNASSIGNED/unassigned
-+19DE-19FF FREE_PVAL/symbols
-+1A00-1A1B PVALID/letter_digits
-+1A1C-1A1D UNASSIGNED/unassigned
-+1A1E-1A1F FREE_PVAL/punctuation
-+1A20-1A5E PVALID/letter_digits
-+1A5F-1A5F UNASSIGNED/unassigned
-+1A60-1A7C PVALID/letter_digits
-+1A7D-1A7E UNASSIGNED/unassigned
-+1A7F-1A89 PVALID/letter_digits
-+1A8A-1A8F UNASSIGNED/unassigned
-+1A90-1A99 PVALID/letter_digits
-+1A9A-1A9F UNASSIGNED/unassigned
-+1AA0-1AA6 FREE_PVAL/punctuation
-+1AA7-1AA7 PVALID/letter_digits
-+1AA8-1AAD FREE_PVAL/punctuation
-+1AAE-1AAF UNASSIGNED/unassigned
-+1AB0-1ABD PVALID/letter_digits
-+1ABE-1ABE FREE_PVAL/other_letter_digits
-+1ABF-1AFF UNASSIGNED/unassigned
-+1B00-1B4B PVALID/letter_digits
-+1B4C-1B4F UNASSIGNED/unassigned
-+1B50-1B59 PVALID/letter_digits
-+1B5A-1B60 FREE_PVAL/punctuation
-+1B61-1B6A FREE_PVAL/symbols
-+1B6B-1B73 PVALID/letter_digits
-+1B74-1B7C FREE_PVAL/symbols
-+1B7D-1B7F UNASSIGNED/unassigned
-+1B80-1BF3 PVALID/letter_digits
-+1BF4-1BFB UNASSIGNED/unassigned
-+1BFC-1BFF FREE_PVAL/punctuation
-+1C00-1C37 PVALID/letter_digits
-+1C38-1C3A UNASSIGNED/unassigned
-+1C3B-1C3F FREE_PVAL/punctuation
-+1C40-1C49 PVALID/letter_digits
-+1C4A-1C4C UNASSIGNED/unassigned
-+1C4D-1C7D PVALID/letter_digits
-+1C7E-1C7F FREE_PVAL/punctuation
-+1C80-1C88 PVALID/letter_digits
-+1C89-1C8F UNASSIGNED/unassigned
-+1C90-1CBA PVALID/letter_digits
-+1CBB-1CBC UNASSIGNED/unassigned
-+1CBD-1CBF PVALID/letter_digits
-+1CC0-1CC7 FREE_PVAL/punctuation
-+1CC8-1CCF UNASSIGNED/unassigned
-+1CD0-1CD2 PVALID/letter_digits
-+1CD3-1CD3 FREE_PVAL/punctuation
-+1CD4-1CFA PVALID/letter_digits
-+1CFB-1CFF UNASSIGNED/unassigned
-+1D00-1D2B PVALID/letter_digits
-+1D2C-1D2E FREE_PVAL/has_compat
-+1D2F-1D2F PVALID/letter_digits
-+1D30-1D3A FREE_PVAL/has_compat
-+1D3B-1D3B PVALID/letter_digits
-+1D3C-1D4D FREE_PVAL/has_compat
-+1D4E-1D4E PVALID/letter_digits
-+1D4F-1D6A FREE_PVAL/has_compat
-+1D6B-1D77 PVALID/letter_digits
-+1D78-1D78 FREE_PVAL/has_compat
-+1D79-1D9A PVALID/letter_digits
-+1D9B-1DBF FREE_PVAL/has_compat
-+1DC0-1DF9 PVALID/letter_digits
-+1DFA-1DFA UNASSIGNED/unassigned
-+1DFB-1E99 PVALID/letter_digits
-+1E9A-1E9B FREE_PVAL/has_compat
-+1E9C-1F15 PVALID/letter_digits
-+1F16-1F17 UNASSIGNED/unassigned
-+1F18-1F1D PVALID/letter_digits
-+1F1E-1F1F UNASSIGNED/unassigned
-+1F20-1F45 PVALID/letter_digits
-+1F46-1F47 UNASSIGNED/unassigned
-+1F48-1F4D PVALID/letter_digits
-+1F4E-1F4F UNASSIGNED/unassigned
-+1F50-1F57 PVALID/letter_digits
-+1F58-1F58 UNASSIGNED/unassigned
-+1F59-1F59 PVALID/letter_digits
-+1F5A-1F5A UNASSIGNED/unassigned
-+1F5B-1F5B PVALID/letter_digits
-+1F5C-1F5C UNASSIGNED/unassigned
-+1F5D-1F5D PVALID/letter_digits
-+1F5E-1F5E UNASSIGNED/unassigned
-+1F5F-1F70 PVALID/letter_digits
-+1F71-1F71 FREE_PVAL/has_compat
-+1F72-1F72 PVALID/letter_digits
-+1F73-1F73 FREE_PVAL/has_compat
-+1F74-1F74 PVALID/letter_digits
-+1F75-1F75 FREE_PVAL/has_compat
-+1F76-1F76 PVALID/letter_digits
-+1F77-1F77 FREE_PVAL/has_compat
-+1F78-1F78 PVALID/letter_digits
-+1F79-1F79 FREE_PVAL/has_compat
-+1F7A-1F7A PVALID/letter_digits
-+1F7B-1F7B FREE_PVAL/has_compat
-+1F7C-1F7C PVALID/letter_digits
-+1F7D-1F7D FREE_PVAL/has_compat
-+1F7E-1F7F UNASSIGNED/unassigned
-+1F80-1F87 PVALID/letter_digits
-+1F88-1F8F FREE_PVAL/other_letter_digits
-+1F90-1F97 PVALID/letter_digits
-+1F98-1F9F FREE_PVAL/other_letter_digits
-+1FA0-1FA7 PVALID/letter_digits
-+1FA8-1FAF FREE_PVAL/other_letter_digits
-+1FB0-1FB4 PVALID/letter_digits
-+1FB5-1FB5 UNASSIGNED/unassigned
-+1FB6-1FBA PVALID/letter_digits
-+1FBB-1FBB FREE_PVAL/has_compat
-+1FBC-1FBC FREE_PVAL/other_letter_digits
-+1FBD-1FC1 FREE_PVAL/has_compat
-+1FC2-1FC4 PVALID/letter_digits
-+1FC5-1FC5 UNASSIGNED/unassigned
-+1FC6-1FC8 PVALID/letter_digits
-+1FC9-1FC9 FREE_PVAL/has_compat
-+1FCA-1FCA PVALID/letter_digits
-+1FCB-1FCB FREE_PVAL/has_compat
-+1FCC-1FCC FREE_PVAL/other_letter_digits
-+1FCD-1FCF FREE_PVAL/has_compat
-+1FD0-1FD2 PVALID/letter_digits
-+1FD3-1FD3 FREE_PVAL/has_compat
-+1FD4-1FD5 UNASSIGNED/unassigned
-+1FD6-1FDA PVALID/letter_digits
-+1FDB-1FDB FREE_PVAL/has_compat
-+1FDC-1FDC UNASSIGNED/unassigned
-+1FDD-1FDF FREE_PVAL/has_compat
-+1FE0-1FE2 PVALID/letter_digits
-+1FE3-1FE3 FREE_PVAL/has_compat
-+1FE4-1FEA PVALID/letter_digits
-+1FEB-1FEB FREE_PVAL/has_compat
-+1FEC-1FEC PVALID/letter_digits
-+1FED-1FEF FREE_PVAL/has_compat
-+1FF0-1FF1 UNASSIGNED/unassigned
-+1FF2-1FF4 PVALID/letter_digits
-+1FF5-1FF5 UNASSIGNED/unassigned
-+1FF6-1FF8 PVALID/letter_digits
-+1FF9-1FF9 FREE_PVAL/has_compat
-+1FFA-1FFA PVALID/letter_digits
-+1FFB-1FFB FREE_PVAL/has_compat
-+1FFC-1FFC FREE_PVAL/other_letter_digits
-+1FFD-1FFE FREE_PVAL/has_compat
-+1FFF-1FFF UNASSIGNED/unassigned
-+2000-200A FREE_PVAL/has_compat
-+200B-200B DISALLOWED/precis_ignorable_properties
-+200C-200D CONTEXTJ/join_control
-+200E-200F DISALLOWED/precis_ignorable_properties
-+2010-2010 FREE_PVAL/punctuation
-+2011-2011 FREE_PVAL/has_compat
-+2012-2016 FREE_PVAL/punctuation
-+2017-2017 FREE_PVAL/has_compat
-+2018-2023 FREE_PVAL/punctuation
-+2024-2026 FREE_PVAL/has_compat
-+2027-2027 FREE_PVAL/punctuation
-+2028-2029 DISALLOWED/other
-+202A-202E DISALLOWED/precis_ignorable_properties
-+202F-202F FREE_PVAL/has_compat
-+2030-2032 FREE_PVAL/punctuation
-+2033-2034 FREE_PVAL/has_compat
-+2035-2035 FREE_PVAL/punctuation
-+2036-2037 FREE_PVAL/has_compat
-+2038-203B FREE_PVAL/punctuation
-+203C-203C FREE_PVAL/has_compat
-+203D-203D FREE_PVAL/punctuation
-+203E-203E FREE_PVAL/has_compat
-+203F-2043 FREE_PVAL/punctuation
-+2044-2044 FREE_PVAL/symbols
-+2045-2046 FREE_PVAL/punctuation
-+2047-2049 FREE_PVAL/has_compat
-+204A-2051 FREE_PVAL/punctuation
-+2052-2052 FREE_PVAL/symbols
-+2053-2056 FREE_PVAL/punctuation
-+2057-2057 FREE_PVAL/has_compat
-+2058-205E FREE_PVAL/punctuation
-+205F-205F FREE_PVAL/has_compat
-+2060-2064 DISALLOWED/precis_ignorable_properties
-+2065-2065 UNASSIGNED/unassigned
-+2066-206F DISALLOWED/precis_ignorable_properties
-+2070-2071 FREE_PVAL/has_compat
-+2072-2073 UNASSIGNED/unassigned
-+2074-208E FREE_PVAL/has_compat
-+208F-208F UNASSIGNED/unassigned
-+2090-209C FREE_PVAL/has_compat
-+209D-209F UNASSIGNED/unassigned
-+20A0-20A7 FREE_PVAL/symbols
-+20A8-20A8 FREE_PVAL/has_compat
-+20A9-20BF FREE_PVAL/symbols
-+20C0-20CF UNASSIGNED/unassigned
-+20D0-20DC PVALID/letter_digits
-+20DD-20E0 FREE_PVAL/other_letter_digits
-+20E1-20E1 PVALID/letter_digits
-+20E2-20E4 FREE_PVAL/other_letter_digits
-+20E5-20F0 PVALID/letter_digits
-+20F1-20FF UNASSIGNED/unassigned
-+2100-2103 FREE_PVAL/has_compat
-+2104-2104 FREE_PVAL/symbols
-+2105-2107 FREE_PVAL/has_compat
-+2108-2108 FREE_PVAL/symbols
-+2109-2113 FREE_PVAL/has_compat
-+2114-2114 FREE_PVAL/symbols
-+2115-2116 FREE_PVAL/has_compat
-+2117-2118 FREE_PVAL/symbols
-+2119-211D FREE_PVAL/has_compat
-+211E-211F FREE_PVAL/symbols
-+2120-2122 FREE_PVAL/has_compat
-+2123-2123 FREE_PVAL/symbols
-+2124-2124 FREE_PVAL/has_compat
-+2125-2125 FREE_PVAL/symbols
-+2126-2126 FREE_PVAL/has_compat
-+2127-2127 FREE_PVAL/symbols
-+2128-2128 FREE_PVAL/has_compat
-+2129-2129 FREE_PVAL/symbols
-+212A-212D FREE_PVAL/has_compat
-+212E-212E FREE_PVAL/symbols
-+212F-2131 FREE_PVAL/has_compat
-+2132-2132 PVALID/letter_digits
-+2133-2139 FREE_PVAL/has_compat
-+213A-213A FREE_PVAL/symbols
-+213B-2140 FREE_PVAL/has_compat
-+2141-2144 FREE_PVAL/symbols
-+2145-2149 FREE_PVAL/has_compat
-+214A-214D FREE_PVAL/symbols
-+214E-214E PVALID/letter_digits
-+214F-214F FREE_PVAL/symbols
-+2150-217F FREE_PVAL/has_compat
-+2180-2182 FREE_PVAL/other_letter_digits
-+2183-2184 PVALID/letter_digits
-+2185-2188 FREE_PVAL/other_letter_digits
-+2189-2189 FREE_PVAL/has_compat
-+218A-218B FREE_PVAL/symbols
-+218C-218F UNASSIGNED/unassigned
-+2190-222B FREE_PVAL/symbols
-+222C-222D FREE_PVAL/has_compat
-+222E-222E FREE_PVAL/symbols
-+222F-2230 FREE_PVAL/has_compat
-+2231-2307 FREE_PVAL/symbols
-+2308-230B FREE_PVAL/punctuation
-+230C-2328 FREE_PVAL/symbols
-+2329-232A FREE_PVAL/has_compat
-+232B-2426 FREE_PVAL/symbols
-+2427-243F UNASSIGNED/unassigned
-+2440-244A FREE_PVAL/symbols
-+244B-245F UNASSIGNED/unassigned
-+2460-24EA FREE_PVAL/has_compat
-+24EB-24FF FREE_PVAL/other_letter_digits
-+2500-2767 FREE_PVAL/symbols
-+2768-2775 FREE_PVAL/punctuation
-+2776-2793 FREE_PVAL/other_letter_digits
-+2794-27C4 FREE_PVAL/symbols
-+27C5-27C6 FREE_PVAL/punctuation
-+27C7-27E5 FREE_PVAL/symbols
-+27E6-27EF FREE_PVAL/punctuation
-+27F0-2982 FREE_PVAL/symbols
-+2983-2998 FREE_PVAL/punctuation
-+2999-29D7 FREE_PVAL/symbols
-+29D8-29DB FREE_PVAL/punctuation
-+29DC-29FB FREE_PVAL/symbols
-+29FC-29FD FREE_PVAL/punctuation
-+29FE-2A0B FREE_PVAL/symbols
-+2A0C-2A0C FREE_PVAL/has_compat
-+2A0D-2A73 FREE_PVAL/symbols
-+2A74-2A76 FREE_PVAL/has_compat
-+2A77-2ADB FREE_PVAL/symbols
-+2ADC-2ADC FREE_PVAL/has_compat
-+2ADD-2B73 FREE_PVAL/symbols
-+2B74-2B75 UNASSIGNED/unassigned
-+2B76-2B95 FREE_PVAL/symbols
-+2B96-2B97 UNASSIGNED/unassigned
-+2B98-2BFF FREE_PVAL/symbols
-+2C00-2C2E PVALID/letter_digits
-+2C2F-2C2F UNASSIGNED/unassigned
-+2C30-2C5E PVALID/letter_digits
-+2C5F-2C5F UNASSIGNED/unassigned
-+2C60-2C7B PVALID/letter_digits
-+2C7C-2C7D FREE_PVAL/has_compat
-+2C7E-2CE4 PVALID/letter_digits
-+2CE5-2CEA FREE_PVAL/symbols
-+2CEB-2CF3 PVALID/letter_digits
-+2CF4-2CF8 UNASSIGNED/unassigned
-+2CF9-2CFC FREE_PVAL/punctuation
-+2CFD-2CFD FREE_PVAL/other_letter_digits
-+2CFE-2CFF FREE_PVAL/punctuation
-+2D00-2D25 PVALID/letter_digits
-+2D26-2D26 UNASSIGNED/unassigned
-+2D27-2D27 PVALID/letter_digits
-+2D28-2D2C UNASSIGNED/unassigned
-+2D2D-2D2D PVALID/letter_digits
-+2D2E-2D2F UNASSIGNED/unassigned
-+2D30-2D67 PVALID/letter_digits
-+2D68-2D6E UNASSIGNED/unassigned
-+2D6F-2D6F FREE_PVAL/has_compat
-+2D70-2D70 FREE_PVAL/punctuation
-+2D71-2D7E UNASSIGNED/unassigned
-+2D7F-2D96 PVALID/letter_digits
-+2D97-2D9F UNASSIGNED/unassigned
-+2DA0-2DA6 PVALID/letter_digits
-+2DA7-2DA7 UNASSIGNED/unassigned
-+2DA8-2DAE PVALID/letter_digits
-+2DAF-2DAF UNASSIGNED/unassigned
-+2DB0-2DB6 PVALID/letter_digits
-+2DB7-2DB7 UNASSIGNED/unassigned
-+2DB8-2DBE PVALID/letter_digits
-+2DBF-2DBF UNASSIGNED/unassigned
-+2DC0-2DC6 PVALID/letter_digits
-+2DC7-2DC7 UNASSIGNED/unassigned
-+2DC8-2DCE PVALID/letter_digits
-+2DCF-2DCF UNASSIGNED/unassigned
-+2DD0-2DD6 PVALID/letter_digits
-+2DD7-2DD7 UNASSIGNED/unassigned
-+2DD8-2DDE PVALID/letter_digits
-+2DDF-2DDF UNASSIGNED/unassigned
-+2DE0-2DFF PVALID/letter_digits
-+2E00-2E2E FREE_PVAL/punctuation
-+2E2F-2E2F PVALID/letter_digits
-+2E30-2E4F FREE_PVAL/punctuation
-+2E50-2E7F UNASSIGNED/unassigned
-+2E80-2E99 FREE_PVAL/symbols
-+2E9A-2E9A UNASSIGNED/unassigned
-+2E9B-2E9E FREE_PVAL/symbols
-+2E9F-2E9F FREE_PVAL/has_compat
-+2EA0-2EF2 FREE_PVAL/symbols
-+2EF3-2EF3 FREE_PVAL/has_compat
-+2EF4-2EFF UNASSIGNED/unassigned
-+2F00-2FD5 FREE_PVAL/has_compat
-+2FD6-2FEF UNASSIGNED/unassigned
-+2FF0-2FFB FREE_PVAL/symbols
-+2FFC-2FFF UNASSIGNED/unassigned
-+3000-3000 FREE_PVAL/has_compat
-+3001-3003 FREE_PVAL/punctuation
-+3004-3004 FREE_PVAL/symbols
-+3005-3006 PVALID/letter_digits
-+3007-3007 PVALID/exceptions
-+3008-3011 FREE_PVAL/punctuation
-+3012-3013 FREE_PVAL/symbols
-+3014-301F FREE_PVAL/punctuation
-+3020-3020 FREE_PVAL/symbols
-+3021-3029 FREE_PVAL/other_letter_digits
-+302A-302D PVALID/letter_digits
-+302E-302F DISALLOWED/exceptions
-+3030-3030 FREE_PVAL/punctuation
-+3031-3035 DISALLOWED/exceptions
-+3036-3036 FREE_PVAL/has_compat
-+3037-3037 FREE_PVAL/symbols
-+3038-303A FREE_PVAL/has_compat
-+303B-303B DISALLOWED/exceptions
-+303C-303C PVALID/letter_digits
-+303D-303D FREE_PVAL/punctuation
-+303E-303F FREE_PVAL/symbols
-+3040-3040 UNASSIGNED/unassigned
-+3041-3096 PVALID/letter_digits
-+3097-3098 UNASSIGNED/unassigned
-+3099-309A PVALID/letter_digits
-+309B-309C FREE_PVAL/has_compat
-+309D-309E PVALID/letter_digits
-+309F-309F FREE_PVAL/has_compat
-+30A0-30A0 FREE_PVAL/punctuation
-+30A1-30FA PVALID/letter_digits
-+30FB-30FB CONTEXTO/exceptions
-+30FC-30FE PVALID/letter_digits
-+30FF-30FF FREE_PVAL/has_compat
-+3100-3104 UNASSIGNED/unassigned
-+3105-312F PVALID/letter_digits
-+3130-3130 UNASSIGNED/unassigned
-+3131-3163 FREE_PVAL/has_compat
-+3164-3164 DISALLOWED/precis_ignorable_properties
-+3165-318E FREE_PVAL/has_compat
-+318F-318F UNASSIGNED/unassigned
-+3190-3191 FREE_PVAL/symbols
-+3192-319F FREE_PVAL/has_compat
-+31A0-31BA PVALID/letter_digits
-+31BB-31BF UNASSIGNED/unassigned
-+31C0-31E3 FREE_PVAL/symbols
-+31E4-31EF UNASSIGNED/unassigned
-+31F0-31FF PVALID/letter_digits
-+3200-321E FREE_PVAL/has_compat
-+321F-321F UNASSIGNED/unassigned
-+3220-3247 FREE_PVAL/has_compat
-+3248-324F FREE_PVAL/other_letter_digits
-+3250-327E FREE_PVAL/has_compat
-+327F-327F FREE_PVAL/symbols
-+3280-33FF FREE_PVAL/has_compat
-+3400-4DB5 PVALID/letter_digits
-+4DB6-4DBF UNASSIGNED/unassigned
-+4DC0-4DFF FREE_PVAL/symbols
-+4E00-9FEF PVALID/letter_digits
-+9FF0-9FFF UNASSIGNED/unassigned
-+A000-A48C PVALID/letter_digits
-+A48D-A48F UNASSIGNED/unassigned
-+A490-A4C6 FREE_PVAL/symbols
-+A4C7-A4CF UNASSIGNED/unassigned
-+A4D0-A4FD PVALID/letter_digits
-+A4FE-A4FF FREE_PVAL/punctuation
-+A500-A60C PVALID/letter_digits
-+A60D-A60F FREE_PVAL/punctuation
-+A610-A62B PVALID/letter_digits
-+A62C-A63F UNASSIGNED/unassigned
-+A640-A66F PVALID/letter_digits
-+A670-A672 FREE_PVAL/other_letter_digits
-+A673-A673 FREE_PVAL/punctuation
-+A674-A67D PVALID/letter_digits
-+A67E-A67E FREE_PVAL/punctuation
-+A67F-A69B PVALID/letter_digits
-+A69C-A69D FREE_PVAL/has_compat
-+A69E-A6E5 PVALID/letter_digits
-+A6E6-A6EF FREE_PVAL/other_letter_digits
-+A6F0-A6F1 PVALID/letter_digits
-+A6F2-A6F7 FREE_PVAL/punctuation
-+A6F8-A6FF UNASSIGNED/unassigned
-+A700-A716 FREE_PVAL/symbols
-+A717-A71F PVALID/letter_digits
-+A720-A721 FREE_PVAL/symbols
-+A722-A76F PVALID/letter_digits
-+A770-A770 FREE_PVAL/has_compat
-+A771-A788 PVALID/letter_digits
-+A789-A78A FREE_PVAL/symbols
-+A78B-A7BF PVALID/letter_digits
-+A7C0-A7C1 UNASSIGNED/unassigned
-+A7C2-A7C6 PVALID/letter_digits
-+A7C7-A7F6 UNASSIGNED/unassigned
-+A7F7-A7F7 PVALID/letter_digits
-+A7F8-A7F9 FREE_PVAL/has_compat
-+A7FA-A827 PVALID/letter_digits
-+A828-A82B FREE_PVAL/symbols
-+A82C-A82F UNASSIGNED/unassigned
-+A830-A835 FREE_PVAL/other_letter_digits
-+A836-A839 FREE_PVAL/symbols
-+A83A-A83F UNASSIGNED/unassigned
-+A840-A873 PVALID/letter_digits
-+A874-A877 FREE_PVAL/punctuation
-+A878-A87F UNASSIGNED/unassigned
-+A880-A8C5 PVALID/letter_digits
-+A8C6-A8CD UNASSIGNED/unassigned
-+A8CE-A8CF FREE_PVAL/punctuation
-+A8D0-A8D9 PVALID/letter_digits
-+A8DA-A8DF UNASSIGNED/unassigned
-+A8E0-A8F7 PVALID/letter_digits
-+A8F8-A8FA FREE_PVAL/punctuation
-+A8FB-A8FB PVALID/letter_digits
-+A8FC-A8FC FREE_PVAL/punctuation
-+A8FD-A92D PVALID/letter_digits
-+A92E-A92F FREE_PVAL/punctuation
-+A930-A953 PVALID/letter_digits
-+A954-A95E UNASSIGNED/unassigned
-+A95F-A95F FREE_PVAL/punctuation
-+A960-A97C DISALLOWED/old_hangul_jamo
-+A97D-A97F UNASSIGNED/unassigned
-+A980-A9C0 PVALID/letter_digits
-+A9C1-A9CD FREE_PVAL/punctuation
-+A9CE-A9CE UNASSIGNED/unassigned
-+A9CF-A9D9 PVALID/letter_digits
-+A9DA-A9DD UNASSIGNED/unassigned
-+A9DE-A9DF FREE_PVAL/punctuation
-+A9E0-A9FE PVALID/letter_digits
-+A9FF-A9FF UNASSIGNED/unassigned
-+AA00-AA36 PVALID/letter_digits
-+AA37-AA3F UNASSIGNED/unassigned
-+AA40-AA4D PVALID/letter_digits
-+AA4E-AA4F UNASSIGNED/unassigned
-+AA50-AA59 PVALID/letter_digits
-+AA5A-AA5B UNASSIGNED/unassigned
-+AA5C-AA5F FREE_PVAL/punctuation
-+AA60-AA76 PVALID/letter_digits
-+AA77-AA79 FREE_PVAL/symbols
-+AA7A-AAC2 PVALID/letter_digits
-+AAC3-AADA UNASSIGNED/unassigned
-+AADB-AADD PVALID/letter_digits
-+AADE-AADF FREE_PVAL/punctuation
-+AAE0-AAEF PVALID/letter_digits
-+AAF0-AAF1 FREE_PVAL/punctuation
-+AAF2-AAF6 PVALID/letter_digits
-+AAF7-AB00 UNASSIGNED/unassigned
-+AB01-AB06 PVALID/letter_digits
-+AB07-AB08 UNASSIGNED/unassigned
-+AB09-AB0E PVALID/letter_digits
-+AB0F-AB10 UNASSIGNED/unassigned
-+AB11-AB16 PVALID/letter_digits
-+AB17-AB1F UNASSIGNED/unassigned
-+AB20-AB26 PVALID/letter_digits
-+AB27-AB27 UNASSIGNED/unassigned
-+AB28-AB2E PVALID/letter_digits
-+AB2F-AB2F UNASSIGNED/unassigned
-+AB30-AB5A PVALID/letter_digits
-+AB5B-AB5B FREE_PVAL/symbols
-+AB5C-AB5F FREE_PVAL/has_compat
-+AB60-AB67 PVALID/letter_digits
-+AB68-AB6F UNASSIGNED/unassigned
-+AB70-ABEA PVALID/letter_digits
-+ABEB-ABEB FREE_PVAL/punctuation
-+ABEC-ABED PVALID/letter_digits
-+ABEE-ABEF UNASSIGNED/unassigned
-+ABF0-ABF9 PVALID/letter_digits
-+ABFA-ABFF UNASSIGNED/unassigned
-+AC00-D7A3 PVALID/letter_digits
-+D7A4-D7AF UNASSIGNED/unassigned
-+D7B0-D7C6 DISALLOWED/old_hangul_jamo
-+D7C7-D7CA UNASSIGNED/unassigned
-+D7CB-D7FB DISALLOWED/old_hangul_jamo
-+D7FC-D7FF UNASSIGNED/unassigned
-+D800-F8FF DISALLOWED/other
-+F900-FA0D FREE_PVAL/has_compat
-+FA0E-FA0F PVALID/letter_digits
-+FA10-FA10 FREE_PVAL/has_compat
-+FA11-FA11 PVALID/letter_digits
-+FA12-FA12 FREE_PVAL/has_compat
-+FA13-FA14 PVALID/letter_digits
-+FA15-FA1E FREE_PVAL/has_compat
-+FA1F-FA1F PVALID/letter_digits
-+FA20-FA20 FREE_PVAL/has_compat
-+FA21-FA21 PVALID/letter_digits
-+FA22-FA22 FREE_PVAL/has_compat
-+FA23-FA24 PVALID/letter_digits
-+FA25-FA26 FREE_PVAL/has_compat
-+FA27-FA29 PVALID/letter_digits
-+FA2A-FA6D FREE_PVAL/has_compat
-+FA6E-FA6F UNASSIGNED/unassigned
-+FA70-FAD9 FREE_PVAL/has_compat
-+FADA-FAFF UNASSIGNED/unassigned
-+FB00-FB06 FREE_PVAL/has_compat
-+FB07-FB12 UNASSIGNED/unassigned
-+FB13-FB17 FREE_PVAL/has_compat
-+FB18-FB1C UNASSIGNED/unassigned
-+FB1D-FB1D FREE_PVAL/has_compat
-+FB1E-FB1E PVALID/letter_digits
-+FB1F-FB36 FREE_PVAL/has_compat
-+FB37-FB37 UNASSIGNED/unassigned
-+FB38-FB3C FREE_PVAL/has_compat
-+FB3D-FB3D UNASSIGNED/unassigned
-+FB3E-FB3E FREE_PVAL/has_compat
-+FB3F-FB3F UNASSIGNED/unassigned
-+FB40-FB41 FREE_PVAL/has_compat
-+FB42-FB42 UNASSIGNED/unassigned
-+FB43-FB44 FREE_PVAL/has_compat
-+FB45-FB45 UNASSIGNED/unassigned
-+FB46-FBB1 FREE_PVAL/has_compat
-+FBB2-FBC1 FREE_PVAL/symbols
-+FBC2-FBD2 UNASSIGNED/unassigned
-+FBD3-FD3D FREE_PVAL/has_compat
-+FD3E-FD3F FREE_PVAL/punctuation
-+FD40-FD4F UNASSIGNED/unassigned
-+FD50-FD8F FREE_PVAL/has_compat
-+FD90-FD91 UNASSIGNED/unassigned
-+FD92-FDC7 FREE_PVAL/has_compat
-+FDC8-FDCF UNASSIGNED/unassigned
-+FDD0-FDEF DISALLOWED/precis_ignorable_properties
-+FDF0-FDFC FREE_PVAL/has_compat
-+FDFD-FDFD FREE_PVAL/symbols
-+FDFE-FDFF UNASSIGNED/unassigned
-+FE00-FE0F DISALLOWED/precis_ignorable_properties
-+FE10-FE19 FREE_PVAL/has_compat
-+FE1A-FE1F UNASSIGNED/unassigned
-+FE20-FE2F PVALID/letter_digits
-+FE30-FE44 FREE_PVAL/has_compat
-+FE45-FE46 FREE_PVAL/punctuation
-+FE47-FE52 FREE_PVAL/has_compat
-+FE53-FE53 UNASSIGNED/unassigned
-+FE54-FE66 FREE_PVAL/has_compat
-+FE67-FE67 UNASSIGNED/unassigned
-+FE68-FE6B FREE_PVAL/has_compat
-+FE6C-FE6F UNASSIGNED/unassigned
-+FE70-FE72 FREE_PVAL/has_compat
-+FE73-FE73 PVALID/letter_digits
-+FE74-FE74 FREE_PVAL/has_compat
-+FE75-FE75 UNASSIGNED/unassigned
-+FE76-FEFC FREE_PVAL/has_compat
-+FEFD-FEFE UNASSIGNED/unassigned
-+FEFF-FEFF DISALLOWED/precis_ignorable_properties
-+FF00-FF00 UNASSIGNED/unassigned
-+FF01-FF9F FREE_PVAL/has_compat
-+FFA0-FFA0 DISALLOWED/precis_ignorable_properties
-+FFA1-FFBE FREE_PVAL/has_compat
-+FFBF-FFC1 UNASSIGNED/unassigned
-+FFC2-FFC7 FREE_PVAL/has_compat
-+FFC8-FFC9 UNASSIGNED/unassigned
-+FFCA-FFCF FREE_PVAL/has_compat
-+FFD0-FFD1 UNASSIGNED/unassigned
-+FFD2-FFD7 FREE_PVAL/has_compat
-+FFD8-FFD9 UNASSIGNED/unassigned
-+FFDA-FFDC FREE_PVAL/has_compat
-+FFDD-FFDF UNASSIGNED/unassigned
-+FFE0-FFE6 FREE_PVAL/has_compat
-+FFE7-FFE7 UNASSIGNED/unassigned
-+FFE8-FFEE FREE_PVAL/has_compat
-+FFEF-FFF8 UNASSIGNED/unassigned
-+FFF9-FFFB DISALLOWED/other
-+FFFC-FFFD FREE_PVAL/symbols
-+FFFE-FFFF DISALLOWED/precis_ignorable_properties
-+10000-1000B PVALID/letter_digits
-+1000C-1000C UNASSIGNED/unassigned
-+1000D-10026 PVALID/letter_digits
-+10027-10027 UNASSIGNED/unassigned
-+10028-1003A PVALID/letter_digits
-+1003B-1003B UNASSIGNED/unassigned
-+1003C-1003D PVALID/letter_digits
-+1003E-1003E UNASSIGNED/unassigned
-+1003F-1004D PVALID/letter_digits
-+1004E-1004F UNASSIGNED/unassigned
-+10050-1005D PVALID/letter_digits
-+1005E-1007F UNASSIGNED/unassigned
-+10080-100FA PVALID/letter_digits
-+100FB-100FF UNASSIGNED/unassigned
-+10100-10102 FREE_PVAL/punctuation
-+10103-10106 UNASSIGNED/unassigned
-+10107-10133 FREE_PVAL/other_letter_digits
-+10134-10136 UNASSIGNED/unassigned
-+10137-1013F FREE_PVAL/symbols
-+10140-10178 FREE_PVAL/other_letter_digits
-+10179-10189 FREE_PVAL/symbols
-+1018A-1018B FREE_PVAL/other_letter_digits
-+1018C-1018E FREE_PVAL/symbols
-+1018F-1018F UNASSIGNED/unassigned
-+10190-1019B FREE_PVAL/symbols
-+1019C-1019F UNASSIGNED/unassigned
-+101A0-101A0 FREE_PVAL/symbols
-+101A1-101CF UNASSIGNED/unassigned
-+101D0-101FC FREE_PVAL/symbols
-+101FD-101FD PVALID/letter_digits
-+101FE-1027F UNASSIGNED/unassigned
-+10280-1029C PVALID/letter_digits
-+1029D-1029F UNASSIGNED/unassigned
-+102A0-102D0 PVALID/letter_digits
-+102D1-102DF UNASSIGNED/unassigned
-+102E0-102E0 PVALID/letter_digits
-+102E1-102FB FREE_PVAL/other_letter_digits
-+102FC-102FF UNASSIGNED/unassigned
-+10300-1031F PVALID/letter_digits
-+10320-10323 FREE_PVAL/other_letter_digits
-+10324-1032C UNASSIGNED/unassigned
-+1032D-10340 PVALID/letter_digits
-+10341-10341 FREE_PVAL/other_letter_digits
-+10342-10349 PVALID/letter_digits
-+1034A-1034A FREE_PVAL/other_letter_digits
-+1034B-1034F UNASSIGNED/unassigned
-+10350-1037A PVALID/letter_digits
-+1037B-1037F UNASSIGNED/unassigned
-+10380-1039D PVALID/letter_digits
-+1039E-1039E UNASSIGNED/unassigned
-+1039F-1039F FREE_PVAL/punctuation
-+103A0-103C3 PVALID/letter_digits
-+103C4-103C7 UNASSIGNED/unassigned
-+103C8-103CF PVALID/letter_digits
-+103D0-103D0 FREE_PVAL/punctuation
-+103D1-103D5 FREE_PVAL/other_letter_digits
-+103D6-103FF UNASSIGNED/unassigned
-+10400-1049D PVALID/letter_digits
-+1049E-1049F UNASSIGNED/unassigned
-+104A0-104A9 PVALID/letter_digits
-+104AA-104AF UNASSIGNED/unassigned
-+104B0-104D3 PVALID/letter_digits
-+104D4-104D7 UNASSIGNED/unassigned
-+104D8-104FB PVALID/letter_digits
-+104FC-104FF UNASSIGNED/unassigned
-+10500-10527 PVALID/letter_digits
-+10528-1052F UNASSIGNED/unassigned
-+10530-10563 PVALID/letter_digits
-+10564-1056E UNASSIGNED/unassigned
-+1056F-1056F FREE_PVAL/punctuation
-+10570-105FF UNASSIGNED/unassigned
-+10600-10736 PVALID/letter_digits
-+10737-1073F UNASSIGNED/unassigned
-+10740-10755 PVALID/letter_digits
-+10756-1075F UNASSIGNED/unassigned
-+10760-10767 PVALID/letter_digits
-+10768-107FF UNASSIGNED/unassigned
-+10800-10805 PVALID/letter_digits
-+10806-10807 UNASSIGNED/unassigned
-+10808-10808 PVALID/letter_digits
-+10809-10809 UNASSIGNED/unassigned
-+1080A-10835 PVALID/letter_digits
-+10836-10836 UNASSIGNED/unassigned
-+10837-10838 PVALID/letter_digits
-+10839-1083B UNASSIGNED/unassigned
-+1083C-1083C PVALID/letter_digits
-+1083D-1083E UNASSIGNED/unassigned
-+1083F-10855 PVALID/letter_digits
-+10856-10856 UNASSIGNED/unassigned
-+10857-10857 FREE_PVAL/punctuation
-+10858-1085F FREE_PVAL/other_letter_digits
-+10860-10876 PVALID/letter_digits
-+10877-10878 FREE_PVAL/symbols
-+10879-1087F FREE_PVAL/other_letter_digits
-+10880-1089E PVALID/letter_digits
-+1089F-108A6 UNASSIGNED/unassigned
-+108A7-108AF FREE_PVAL/other_letter_digits
-+108B0-108DF UNASSIGNED/unassigned
-+108E0-108F2 PVALID/letter_digits
-+108F3-108F3 UNASSIGNED/unassigned
-+108F4-108F5 PVALID/letter_digits
-+108F6-108FA UNASSIGNED/unassigned
-+108FB-108FF FREE_PVAL/other_letter_digits
-+10900-10915 PVALID/letter_digits
-+10916-1091B FREE_PVAL/other_letter_digits
-+1091C-1091E UNASSIGNED/unassigned
-+1091F-1091F FREE_PVAL/punctuation
-+10920-10939 PVALID/letter_digits
-+1093A-1093E UNASSIGNED/unassigned
-+1093F-1093F FREE_PVAL/punctuation
-+10940-1097F UNASSIGNED/unassigned
-+10980-109B7 PVALID/letter_digits
-+109B8-109BB UNASSIGNED/unassigned
-+109BC-109BD FREE_PVAL/other_letter_digits
-+109BE-109BF PVALID/letter_digits
-+109C0-109CF FREE_PVAL/other_letter_digits
-+109D0-109D1 UNASSIGNED/unassigned
-+109D2-109FF FREE_PVAL/other_letter_digits
-+10A00-10A03 PVALID/letter_digits
-+10A04-10A04 UNASSIGNED/unassigned
-+10A05-10A06 PVALID/letter_digits
-+10A07-10A0B UNASSIGNED/unassigned
-+10A0C-10A13 PVALID/letter_digits
-+10A14-10A14 UNASSIGNED/unassigned
-+10A15-10A17 PVALID/letter_digits
-+10A18-10A18 UNASSIGNED/unassigned
-+10A19-10A35 PVALID/letter_digits
-+10A36-10A37 UNASSIGNED/unassigned
-+10A38-10A3A PVALID/letter_digits
-+10A3B-10A3E UNASSIGNED/unassigned
-+10A3F-10A3F PVALID/letter_digits
-+10A40-10A48 FREE_PVAL/other_letter_digits
-+10A49-10A4F UNASSIGNED/unassigned
-+10A50-10A58 FREE_PVAL/punctuation
-+10A59-10A5F UNASSIGNED/unassigned
-+10A60-10A7C PVALID/letter_digits
-+10A7D-10A7E FREE_PVAL/other_letter_digits
-+10A7F-10A7F FREE_PVAL/punctuation
-+10A80-10A9C PVALID/letter_digits
-+10A9D-10A9F FREE_PVAL/other_letter_digits
-+10AA0-10ABF UNASSIGNED/unassigned
-+10AC0-10AC7 PVALID/letter_digits
-+10AC8-10AC8 FREE_PVAL/symbols
-+10AC9-10AE6 PVALID/letter_digits
-+10AE7-10AEA UNASSIGNED/unassigned
-+10AEB-10AEF FREE_PVAL/other_letter_digits
-+10AF0-10AF6 FREE_PVAL/punctuation
-+10AF7-10AFF UNASSIGNED/unassigned
-+10B00-10B35 PVALID/letter_digits
-+10B36-10B38 UNASSIGNED/unassigned
-+10B39-10B3F FREE_PVAL/punctuation
-+10B40-10B55 PVALID/letter_digits
-+10B56-10B57 UNASSIGNED/unassigned
-+10B58-10B5F FREE_PVAL/other_letter_digits
-+10B60-10B72 PVALID/letter_digits
-+10B73-10B77 UNASSIGNED/unassigned
-+10B78-10B7F FREE_PVAL/other_letter_digits
-+10B80-10B91 PVALID/letter_digits
-+10B92-10B98 UNASSIGNED/unassigned
-+10B99-10B9C FREE_PVAL/punctuation
-+10B9D-10BA8 UNASSIGNED/unassigned
-+10BA9-10BAF FREE_PVAL/other_letter_digits
-+10BB0-10BFF UNASSIGNED/unassigned
-+10C00-10C48 PVALID/letter_digits
-+10C49-10C7F UNASSIGNED/unassigned
-+10C80-10CB2 PVALID/letter_digits
-+10CB3-10CBF UNASSIGNED/unassigned
-+10CC0-10CF2 PVALID/letter_digits
-+10CF3-10CF9 UNASSIGNED/unassigned
-+10CFA-10CFF FREE_PVAL/other_letter_digits
-+10D00-10D27 PVALID/letter_digits
-+10D28-10D2F UNASSIGNED/unassigned
-+10D30-10D39 PVALID/letter_digits
-+10D3A-10E5F UNASSIGNED/unassigned
-+10E60-10E7E FREE_PVAL/other_letter_digits
-+10E7F-10EFF UNASSIGNED/unassigned
-+10F00-10F1C PVALID/letter_digits
-+10F1D-10F26 FREE_PVAL/other_letter_digits
-+10F27-10F27 PVALID/letter_digits
-+10F28-10F2F UNASSIGNED/unassigned
-+10F30-10F50 PVALID/letter_digits
-+10F51-10F54 FREE_PVAL/other_letter_digits
-+10F55-10F59 FREE_PVAL/punctuation
-+10F5A-10FDF UNASSIGNED/unassigned
-+10FE0-10FF6 PVALID/letter_digits
-+10FF7-10FFF UNASSIGNED/unassigned
-+11000-11046 PVALID/letter_digits
-+11047-1104D FREE_PVAL/punctuation
-+1104E-11051 UNASSIGNED/unassigned
-+11052-11065 FREE_PVAL/other_letter_digits
-+11066-1106F PVALID/letter_digits
-+11070-1107E UNASSIGNED/unassigned
-+1107F-110BA PVALID/letter_digits
-+110BB-110BC FREE_PVAL/punctuation
-+110BD-110BD DISALLOWED/other
-+110BE-110C1 FREE_PVAL/punctuation
-+110C2-110CC UNASSIGNED/unassigned
-+110CD-110CD DISALLOWED/other
-+110CE-110CF UNASSIGNED/unassigned
-+110D0-110E8 PVALID/letter_digits
-+110E9-110EF UNASSIGNED/unassigned
-+110F0-110F9 PVALID/letter_digits
-+110FA-110FF UNASSIGNED/unassigned
-+11100-11134 PVALID/letter_digits
-+11135-11135 UNASSIGNED/unassigned
-+11136-1113F PVALID/letter_digits
-+11140-11143 FREE_PVAL/punctuation
-+11144-11146 PVALID/letter_digits
-+11147-1114F UNASSIGNED/unassigned
-+11150-11173 PVALID/letter_digits
-+11174-11175 FREE_PVAL/punctuation
-+11176-11176 PVALID/letter_digits
-+11177-1117F UNASSIGNED/unassigned
-+11180-111C4 PVALID/letter_digits
-+111C5-111C8 FREE_PVAL/punctuation
-+111C9-111CC PVALID/letter_digits
-+111CD-111CD FREE_PVAL/punctuation
-+111CE-111CF UNASSIGNED/unassigned
-+111D0-111DA PVALID/letter_digits
-+111DB-111DB FREE_PVAL/punctuation
-+111DC-111DC PVALID/letter_digits
-+111DD-111DF FREE_PVAL/punctuation
-+111E0-111E0 UNASSIGNED/unassigned
-+111E1-111F4 FREE_PVAL/other_letter_digits
-+111F5-111FF UNASSIGNED/unassigned
-+11200-11211 PVALID/letter_digits
-+11212-11212 UNASSIGNED/unassigned
-+11213-11237 PVALID/letter_digits
-+11238-1123D FREE_PVAL/punctuation
-+1123E-1123E PVALID/letter_digits
-+1123F-1127F UNASSIGNED/unassigned
-+11280-11286 PVALID/letter_digits
-+11287-11287 UNASSIGNED/unassigned
-+11288-11288 PVALID/letter_digits
-+11289-11289 UNASSIGNED/unassigned
-+1128A-1128D PVALID/letter_digits
-+1128E-1128E UNASSIGNED/unassigned
-+1128F-1129D PVALID/letter_digits
-+1129E-1129E UNASSIGNED/unassigned
-+1129F-112A8 PVALID/letter_digits
-+112A9-112A9 FREE_PVAL/punctuation
-+112AA-112AF UNASSIGNED/unassigned
-+112B0-112EA PVALID/letter_digits
-+112EB-112EF UNASSIGNED/unassigned
-+112F0-112F9 PVALID/letter_digits
-+112FA-112FF UNASSIGNED/unassigned
-+11300-11303 PVALID/letter_digits
-+11304-11304 UNASSIGNED/unassigned
-+11305-1130C PVALID/letter_digits
-+1130D-1130E UNASSIGNED/unassigned
-+1130F-11310 PVALID/letter_digits
-+11311-11312 UNASSIGNED/unassigned
-+11313-11328 PVALID/letter_digits
-+11329-11329 UNASSIGNED/unassigned
-+1132A-11330 PVALID/letter_digits
-+11331-11331 UNASSIGNED/unassigned
-+11332-11333 PVALID/letter_digits
-+11334-11334 UNASSIGNED/unassigned
-+11335-11339 PVALID/letter_digits
-+1133A-1133A UNASSIGNED/unassigned
-+1133B-11344 PVALID/letter_digits
-+11345-11346 UNASSIGNED/unassigned
-+11347-11348 PVALID/letter_digits
-+11349-1134A UNASSIGNED/unassigned
-+1134B-1134D PVALID/letter_digits
-+1134E-1134F UNASSIGNED/unassigned
-+11350-11350 PVALID/letter_digits
-+11351-11356 UNASSIGNED/unassigned
-+11357-11357 PVALID/letter_digits
-+11358-1135C UNASSIGNED/unassigned
-+1135D-11363 PVALID/letter_digits
-+11364-11365 UNASSIGNED/unassigned
-+11366-1136C PVALID/letter_digits
-+1136D-1136F UNASSIGNED/unassigned
-+11370-11374 PVALID/letter_digits
-+11375-113FF UNASSIGNED/unassigned
-+11400-1144A PVALID/letter_digits
-+1144B-1144F FREE_PVAL/punctuation
-+11450-11459 PVALID/letter_digits
-+1145A-1145A UNASSIGNED/unassigned
-+1145B-1145B FREE_PVAL/punctuation
-+1145C-1145C UNASSIGNED/unassigned
-+1145D-1145D FREE_PVAL/punctuation
-+1145E-1145F PVALID/letter_digits
-+11460-1147F UNASSIGNED/unassigned
-+11480-114C5 PVALID/letter_digits
-+114C6-114C6 FREE_PVAL/punctuation
-+114C7-114C7 PVALID/letter_digits
-+114C8-114CF UNASSIGNED/unassigned
-+114D0-114D9 PVALID/letter_digits
-+114DA-1157F UNASSIGNED/unassigned
-+11580-115B5 PVALID/letter_digits
-+115B6-115B7 UNASSIGNED/unassigned
-+115B8-115C0 PVALID/letter_digits
-+115C1-115D7 FREE_PVAL/punctuation
-+115D8-115DD PVALID/letter_digits
-+115DE-115FF UNASSIGNED/unassigned
-+11600-11640 PVALID/letter_digits
-+11641-11643 FREE_PVAL/punctuation
-+11644-11644 PVALID/letter_digits
-+11645-1164F UNASSIGNED/unassigned
-+11650-11659 PVALID/letter_digits
-+1165A-1165F UNASSIGNED/unassigned
-+11660-1166C FREE_PVAL/punctuation
-+1166D-1167F UNASSIGNED/unassigned
-+11680-116B8 PVALID/letter_digits
-+116B9-116BF UNASSIGNED/unassigned
-+116C0-116C9 PVALID/letter_digits
-+116CA-116FF UNASSIGNED/unassigned
-+11700-1171A PVALID/letter_digits
-+1171B-1171C UNASSIGNED/unassigned
-+1171D-1172B PVALID/letter_digits
-+1172C-1172F UNASSIGNED/unassigned
-+11730-11739 PVALID/letter_digits
-+1173A-1173B FREE_PVAL/other_letter_digits
-+1173C-1173E FREE_PVAL/punctuation
-+1173F-1173F FREE_PVAL/symbols
-+11740-117FF UNASSIGNED/unassigned
-+11800-1183A PVALID/letter_digits
-+1183B-1183B FREE_PVAL/punctuation
-+1183C-1189F UNASSIGNED/unassigned
-+118A0-118E9 PVALID/letter_digits
-+118EA-118F2 FREE_PVAL/other_letter_digits
-+118F3-118FE UNASSIGNED/unassigned
-+118FF-118FF PVALID/letter_digits
-+11900-1199F UNASSIGNED/unassigned
-+119A0-119A7 PVALID/letter_digits
-+119A8-119A9 UNASSIGNED/unassigned
-+119AA-119D7 PVALID/letter_digits
-+119D8-119D9 UNASSIGNED/unassigned
-+119DA-119E1 PVALID/letter_digits
-+119E2-119E2 FREE_PVAL/punctuation
-+119E3-119E4 PVALID/letter_digits
-+119E5-119FF UNASSIGNED/unassigned
-+11A00-11A3E PVALID/letter_digits
-+11A3F-11A46 FREE_PVAL/punctuation
-+11A47-11A47 PVALID/letter_digits
-+11A48-11A4F UNASSIGNED/unassigned
-+11A50-11A99 PVALID/letter_digits
-+11A9A-11A9C FREE_PVAL/punctuation
-+11A9D-11A9D PVALID/letter_digits
-+11A9E-11AA2 FREE_PVAL/punctuation
-+11AA3-11ABF UNASSIGNED/unassigned
-+11AC0-11AF8 PVALID/letter_digits
-+11AF9-11BFF UNASSIGNED/unassigned
-+11C00-11C08 PVALID/letter_digits
-+11C09-11C09 UNASSIGNED/unassigned
-+11C0A-11C36 PVALID/letter_digits
-+11C37-11C37 UNASSIGNED/unassigned
-+11C38-11C40 PVALID/letter_digits
-+11C41-11C45 FREE_PVAL/punctuation
-+11C46-11C4F UNASSIGNED/unassigned
-+11C50-11C59 PVALID/letter_digits
-+11C5A-11C6C FREE_PVAL/other_letter_digits
-+11C6D-11C6F UNASSIGNED/unassigned
-+11C70-11C71 FREE_PVAL/punctuation
-+11C72-11C8F PVALID/letter_digits
-+11C90-11C91 UNASSIGNED/unassigned
-+11C92-11CA7 PVALID/letter_digits
-+11CA8-11CA8 UNASSIGNED/unassigned
-+11CA9-11CB6 PVALID/letter_digits
-+11CB7-11CFF UNASSIGNED/unassigned
-+11D00-11D06 PVALID/letter_digits
-+11D07-11D07 UNASSIGNED/unassigned
-+11D08-11D09 PVALID/letter_digits
-+11D0A-11D0A UNASSIGNED/unassigned
-+11D0B-11D36 PVALID/letter_digits
-+11D37-11D39 UNASSIGNED/unassigned
-+11D3A-11D3A PVALID/letter_digits
-+11D3B-11D3B UNASSIGNED/unassigned
-+11D3C-11D3D PVALID/letter_digits
-+11D3E-11D3E UNASSIGNED/unassigned
-+11D3F-11D47 PVALID/letter_digits
-+11D48-11D4F UNASSIGNED/unassigned
-+11D50-11D59 PVALID/letter_digits
-+11D5A-11D5F UNASSIGNED/unassigned
-+11D60-11D65 PVALID/letter_digits
-+11D66-11D66 UNASSIGNED/unassigned
-+11D67-11D68 PVALID/letter_digits
-+11D69-11D69 UNASSIGNED/unassigned
-+11D6A-11D8E PVALID/letter_digits
-+11D8F-11D8F UNASSIGNED/unassigned
-+11D90-11D91 PVALID/letter_digits
-+11D92-11D92 UNASSIGNED/unassigned
-+11D93-11D98 PVALID/letter_digits
-+11D99-11D9F UNASSIGNED/unassigned
-+11DA0-11DA9 PVALID/letter_digits
-+11DAA-11EDF UNASSIGNED/unassigned
-+11EE0-11EF6 PVALID/letter_digits
-+11EF7-11EF8 FREE_PVAL/punctuation
-+11EF9-11FBF UNASSIGNED/unassigned
-+11FC0-11FD4 FREE_PVAL/other_letter_digits
-+11FD5-11FF1 FREE_PVAL/symbols
-+11FF2-11FFE UNASSIGNED/unassigned
-+11FFF-11FFF FREE_PVAL/punctuation
-+12000-12399 PVALID/letter_digits
-+1239A-123FF UNASSIGNED/unassigned
-+12400-1246E FREE_PVAL/other_letter_digits
-+1246F-1246F UNASSIGNED/unassigned
-+12470-12474 FREE_PVAL/punctuation
-+12475-1247F UNASSIGNED/unassigned
-+12480-12543 PVALID/letter_digits
-+12544-12FFF UNASSIGNED/unassigned
-+13000-1342E PVALID/letter_digits
-+1342F-1342F UNASSIGNED/unassigned
-+13430-13438 DISALLOWED/other
-+13439-143FF UNASSIGNED/unassigned
-+14400-14646 PVALID/letter_digits
-+14647-167FF UNASSIGNED/unassigned
-+16800-16A38 PVALID/letter_digits
-+16A39-16A3F UNASSIGNED/unassigned
-+16A40-16A5E PVALID/letter_digits
-+16A5F-16A5F UNASSIGNED/unassigned
-+16A60-16A69 PVALID/letter_digits
-+16A6A-16A6D UNASSIGNED/unassigned
-+16A6E-16A6F FREE_PVAL/punctuation
-+16A70-16ACF UNASSIGNED/unassigned
-+16AD0-16AED PVALID/letter_digits
-+16AEE-16AEF UNASSIGNED/unassigned
-+16AF0-16AF4 PVALID/letter_digits
-+16AF5-16AF5 FREE_PVAL/punctuation
-+16AF6-16AFF UNASSIGNED/unassigned
-+16B00-16B36 PVALID/letter_digits
-+16B37-16B3B FREE_PVAL/punctuation
-+16B3C-16B3F FREE_PVAL/symbols
-+16B40-16B43 PVALID/letter_digits
-+16B44-16B44 FREE_PVAL/punctuation
-+16B45-16B45 FREE_PVAL/symbols
-+16B46-16B4F UNASSIGNED/unassigned
-+16B50-16B59 PVALID/letter_digits
-+16B5A-16B5A UNASSIGNED/unassigned
-+16B5B-16B61 FREE_PVAL/other_letter_digits
-+16B62-16B62 UNASSIGNED/unassigned
-+16B63-16B77 PVALID/letter_digits
-+16B78-16B7C UNASSIGNED/unassigned
-+16B7D-16B8F PVALID/letter_digits
-+16B90-16E3F UNASSIGNED/unassigned
-+16E40-16E7F PVALID/letter_digits
-+16E80-16E96 FREE_PVAL/other_letter_digits
-+16E97-16E9A FREE_PVAL/punctuation
-+16E9B-16EFF UNASSIGNED/unassigned
-+16F00-16F4A PVALID/letter_digits
-+16F4B-16F4E UNASSIGNED/unassigned
-+16F4F-16F87 PVALID/letter_digits
-+16F88-16F8E UNASSIGNED/unassigned
-+16F8F-16F9F PVALID/letter_digits
-+16FA0-16FDF UNASSIGNED/unassigned
-+16FE0-16FE1 PVALID/letter_digits
-+16FE2-16FE2 FREE_PVAL/punctuation
-+16FE3-16FE3 PVALID/letter_digits
-+16FE4-16FFF UNASSIGNED/unassigned
-+17000-187F7 PVALID/letter_digits
-+187F8-187FF UNASSIGNED/unassigned
-+18800-18AF2 PVALID/letter_digits
-+18AF3-1AFFF UNASSIGNED/unassigned
-+1B000-1B11E PVALID/letter_digits
-+1B11F-1B14F UNASSIGNED/unassigned
-+1B150-1B152 PVALID/letter_digits
-+1B153-1B163 UNASSIGNED/unassigned
-+1B164-1B167 PVALID/letter_digits
-+1B168-1B16F UNASSIGNED/unassigned
-+1B170-1B2FB PVALID/letter_digits
-+1B2FC-1BBFF UNASSIGNED/unassigned
-+1BC00-1BC6A PVALID/letter_digits
-+1BC6B-1BC6F UNASSIGNED/unassigned
-+1BC70-1BC7C PVALID/letter_digits
-+1BC7D-1BC7F UNASSIGNED/unassigned
-+1BC80-1BC88 PVALID/letter_digits
-+1BC89-1BC8F UNASSIGNED/unassigned
-+1BC90-1BC99 PVALID/letter_digits
-+1BC9A-1BC9B UNASSIGNED/unassigned
-+1BC9C-1BC9C FREE_PVAL/symbols
-+1BC9D-1BC9E PVALID/letter_digits
-+1BC9F-1BC9F FREE_PVAL/punctuation
-+1BCA0-1BCA3 DISALLOWED/precis_ignorable_properties
-+1BCA4-1CFFF UNASSIGNED/unassigned
-+1D000-1D0F5 FREE_PVAL/symbols
-+1D0F6-1D0FF UNASSIGNED/unassigned
-+1D100-1D126 FREE_PVAL/symbols
-+1D127-1D128 UNASSIGNED/unassigned
-+1D129-1D15D FREE_PVAL/symbols
-+1D15E-1D164 FREE_PVAL/has_compat
-+1D165-1D169 PVALID/letter_digits
-+1D16A-1D16C FREE_PVAL/symbols
-+1D16D-1D172 PVALID/letter_digits
-+1D173-1D17A DISALLOWED/precis_ignorable_properties
-+1D17B-1D182 PVALID/letter_digits
-+1D183-1D184 FREE_PVAL/symbols
-+1D185-1D18B PVALID/letter_digits
-+1D18C-1D1A9 FREE_PVAL/symbols
-+1D1AA-1D1AD PVALID/letter_digits
-+1D1AE-1D1BA FREE_PVAL/symbols
-+1D1BB-1D1C0 FREE_PVAL/has_compat
-+1D1C1-1D1E8 FREE_PVAL/symbols
-+1D1E9-1D1FF UNASSIGNED/unassigned
-+1D200-1D241 FREE_PVAL/symbols
-+1D242-1D244 PVALID/letter_digits
-+1D245-1D245 FREE_PVAL/symbols
-+1D246-1D2DF UNASSIGNED/unassigned
-+1D2E0-1D2F3 FREE_PVAL/other_letter_digits
-+1D2F4-1D2FF UNASSIGNED/unassigned
-+1D300-1D356 FREE_PVAL/symbols
-+1D357-1D35F UNASSIGNED/unassigned
-+1D360-1D378 FREE_PVAL/other_letter_digits
-+1D379-1D3FF UNASSIGNED/unassigned
-+1D400-1D454 FREE_PVAL/has_compat
-+1D455-1D455 UNASSIGNED/unassigned
-+1D456-1D49C FREE_PVAL/has_compat
-+1D49D-1D49D UNASSIGNED/unassigned
-+1D49E-1D49F FREE_PVAL/has_compat
-+1D4A0-1D4A1 UNASSIGNED/unassigned
-+1D4A2-1D4A2 FREE_PVAL/has_compat
-+1D4A3-1D4A4 UNASSIGNED/unassigned
-+1D4A5-1D4A6 FREE_PVAL/has_compat
-+1D4A7-1D4A8 UNASSIGNED/unassigned
-+1D4A9-1D4AC FREE_PVAL/has_compat
-+1D4AD-1D4AD UNASSIGNED/unassigned
-+1D4AE-1D4B9 FREE_PVAL/has_compat
-+1D4BA-1D4BA UNASSIGNED/unassigned
-+1D4BB-1D4BB FREE_PVAL/has_compat
-+1D4BC-1D4BC UNASSIGNED/unassigned
-+1D4BD-1D4C3 FREE_PVAL/has_compat
-+1D4C4-1D4C4 UNASSIGNED/unassigned
-+1D4C5-1D505 FREE_PVAL/has_compat
-+1D506-1D506 UNASSIGNED/unassigned
-+1D507-1D50A FREE_PVAL/has_compat
-+1D50B-1D50C UNASSIGNED/unassigned
-+1D50D-1D514 FREE_PVAL/has_compat
-+1D515-1D515 UNASSIGNED/unassigned
-+1D516-1D51C FREE_PVAL/has_compat
-+1D51D-1D51D UNASSIGNED/unassigned
-+1D51E-1D539 FREE_PVAL/has_compat
-+1D53A-1D53A UNASSIGNED/unassigned
-+1D53B-1D53E FREE_PVAL/has_compat
-+1D53F-1D53F UNASSIGNED/unassigned
-+1D540-1D544 FREE_PVAL/has_compat
-+1D545-1D545 UNASSIGNED/unassigned
-+1D546-1D546 FREE_PVAL/has_compat
-+1D547-1D549 UNASSIGNED/unassigned
-+1D54A-1D550 FREE_PVAL/has_compat
-+1D551-1D551 UNASSIGNED/unassigned
-+1D552-1D6A5 FREE_PVAL/has_compat
-+1D6A6-1D6A7 UNASSIGNED/unassigned
-+1D6A8-1D7CB FREE_PVAL/has_compat
-+1D7CC-1D7CD UNASSIGNED/unassigned
-+1D7CE-1D7FF FREE_PVAL/has_compat
-+1D800-1D9FF FREE_PVAL/symbols
-+1DA00-1DA36 PVALID/letter_digits
-+1DA37-1DA3A FREE_PVAL/symbols
-+1DA3B-1DA6C PVALID/letter_digits
-+1DA6D-1DA74 FREE_PVAL/symbols
-+1DA75-1DA75 PVALID/letter_digits
-+1DA76-1DA83 FREE_PVAL/symbols
-+1DA84-1DA84 PVALID/letter_digits
-+1DA85-1DA86 FREE_PVAL/symbols
-+1DA87-1DA8B FREE_PVAL/punctuation
-+1DA8C-1DA9A UNASSIGNED/unassigned
-+1DA9B-1DA9F PVALID/letter_digits
-+1DAA0-1DAA0 UNASSIGNED/unassigned
-+1DAA1-1DAAF PVALID/letter_digits
-+1DAB0-1DFFF UNASSIGNED/unassigned
-+1E000-1E006 PVALID/letter_digits
-+1E007-1E007 UNASSIGNED/unassigned
-+1E008-1E018 PVALID/letter_digits
-+1E019-1E01A UNASSIGNED/unassigned
-+1E01B-1E021 PVALID/letter_digits
-+1E022-1E022 UNASSIGNED/unassigned
-+1E023-1E024 PVALID/letter_digits
-+1E025-1E025 UNASSIGNED/unassigned
-+1E026-1E02A PVALID/letter_digits
-+1E02B-1E0FF UNASSIGNED/unassigned
-+1E100-1E12C PVALID/letter_digits
-+1E12D-1E12F UNASSIGNED/unassigned
-+1E130-1E13D PVALID/letter_digits
-+1E13E-1E13F UNASSIGNED/unassigned
-+1E140-1E149 PVALID/letter_digits
-+1E14A-1E14D UNASSIGNED/unassigned
-+1E14E-1E14E PVALID/letter_digits
-+1E14F-1E14F FREE_PVAL/symbols
-+1E150-1E2BF UNASSIGNED/unassigned
-+1E2C0-1E2F9 PVALID/letter_digits
-+1E2FA-1E2FE UNASSIGNED/unassigned
-+1E2FF-1E2FF FREE_PVAL/symbols
-+1E300-1E7FF UNASSIGNED/unassigned
-+1E800-1E8C4 PVALID/letter_digits
-+1E8C5-1E8C6 UNASSIGNED/unassigned
-+1E8C7-1E8CF FREE_PVAL/other_letter_digits
-+1E8D0-1E8D6 PVALID/letter_digits
-+1E8D7-1E8FF UNASSIGNED/unassigned
-+1E900-1E94B PVALID/letter_digits
-+1E94C-1E94F UNASSIGNED/unassigned
-+1E950-1E959 PVALID/letter_digits
-+1E95A-1E95D UNASSIGNED/unassigned
-+1E95E-1E95F FREE_PVAL/punctuation
-+1E960-1EC70 UNASSIGNED/unassigned
-+1EC71-1ECAB FREE_PVAL/other_letter_digits
-+1ECAC-1ECAC FREE_PVAL/symbols
-+1ECAD-1ECAF FREE_PVAL/other_letter_digits
-+1ECB0-1ECB0 FREE_PVAL/symbols
-+1ECB1-1ECB4 FREE_PVAL/other_letter_digits
-+1ECB5-1ED00 UNASSIGNED/unassigned
-+1ED01-1ED2D FREE_PVAL/other_letter_digits
-+1ED2E-1ED2E FREE_PVAL/symbols
-+1ED2F-1ED3D FREE_PVAL/other_letter_digits
-+1ED3E-1EDFF UNASSIGNED/unassigned
-+1EE00-1EE03 FREE_PVAL/has_compat
-+1EE04-1EE04 UNASSIGNED/unassigned
-+1EE05-1EE1F FREE_PVAL/has_compat
-+1EE20-1EE20 UNASSIGNED/unassigned
-+1EE21-1EE22 FREE_PVAL/has_compat
-+1EE23-1EE23 UNASSIGNED/unassigned
-+1EE24-1EE24 FREE_PVAL/has_compat
-+1EE25-1EE26 UNASSIGNED/unassigned
-+1EE27-1EE27 FREE_PVAL/has_compat
-+1EE28-1EE28 UNASSIGNED/unassigned
-+1EE29-1EE32 FREE_PVAL/has_compat
-+1EE33-1EE33 UNASSIGNED/unassigned
-+1EE34-1EE37 FREE_PVAL/has_compat
-+1EE38-1EE38 UNASSIGNED/unassigned
-+1EE39-1EE39 FREE_PVAL/has_compat
-+1EE3A-1EE3A UNASSIGNED/unassigned
-+1EE3B-1EE3B FREE_PVAL/has_compat
-+1EE3C-1EE41 UNASSIGNED/unassigned
-+1EE42-1EE42 FREE_PVAL/has_compat
-+1EE43-1EE46 UNASSIGNED/unassigned
-+1EE47-1EE47 FREE_PVAL/has_compat
-+1EE48-1EE48 UNASSIGNED/unassigned
-+1EE49-1EE49 FREE_PVAL/has_compat
-+1EE4A-1EE4A UNASSIGNED/unassigned
-+1EE4B-1EE4B FREE_PVAL/has_compat
-+1EE4C-1EE4C UNASSIGNED/unassigned
-+1EE4D-1EE4F FREE_PVAL/has_compat
-+1EE50-1EE50 UNASSIGNED/unassigned
-+1EE51-1EE52 FREE_PVAL/has_compat
-+1EE53-1EE53 UNASSIGNED/unassigned
-+1EE54-1EE54 FREE_PVAL/has_compat
-+1EE55-1EE56 UNASSIGNED/unassigned
-+1EE57-1EE57 FREE_PVAL/has_compat
-+1EE58-1EE58 UNASSIGNED/unassigned
-+1EE59-1EE59 FREE_PVAL/has_compat
-+1EE5A-1EE5A UNASSIGNED/unassigned
-+1EE5B-1EE5B FREE_PVAL/has_compat
-+1EE5C-1EE5C UNASSIGNED/unassigned
-+1EE5D-1EE5D FREE_PVAL/has_compat
-+1EE5E-1EE5E UNASSIGNED/unassigned
-+1EE5F-1EE5F FREE_PVAL/has_compat
-+1EE60-1EE60 UNASSIGNED/unassigned
-+1EE61-1EE62 FREE_PVAL/has_compat
-+1EE63-1EE63 UNASSIGNED/unassigned
-+1EE64-1EE64 FREE_PVAL/has_compat
-+1EE65-1EE66 UNASSIGNED/unassigned
-+1EE67-1EE6A FREE_PVAL/has_compat
-+1EE6B-1EE6B UNASSIGNED/unassigned
-+1EE6C-1EE72 FREE_PVAL/has_compat
-+1EE73-1EE73 UNASSIGNED/unassigned
-+1EE74-1EE77 FREE_PVAL/has_compat
-+1EE78-1EE78 UNASSIGNED/unassigned
-+1EE79-1EE7C FREE_PVAL/has_compat
-+1EE7D-1EE7D UNASSIGNED/unassigned
-+1EE7E-1EE7E FREE_PVAL/has_compat
-+1EE7F-1EE7F UNASSIGNED/unassigned
-+1EE80-1EE89 FREE_PVAL/has_compat
-+1EE8A-1EE8A UNASSIGNED/unassigned
-+1EE8B-1EE9B FREE_PVAL/has_compat
-+1EE9C-1EEA0 UNASSIGNED/unassigned
-+1EEA1-1EEA3 FREE_PVAL/has_compat
-+1EEA4-1EEA4 UNASSIGNED/unassigned
-+1EEA5-1EEA9 FREE_PVAL/has_compat
-+1EEAA-1EEAA UNASSIGNED/unassigned
-+1EEAB-1EEBB FREE_PVAL/has_compat
-+1EEBC-1EEEF UNASSIGNED/unassigned
-+1EEF0-1EEF1 FREE_PVAL/symbols
-+1EEF2-1EFFF UNASSIGNED/unassigned
-+1F000-1F02B FREE_PVAL/symbols
-+1F02C-1F02F UNASSIGNED/unassigned
-+1F030-1F093 FREE_PVAL/symbols
-+1F094-1F09F UNASSIGNED/unassigned
-+1F0A0-1F0AE FREE_PVAL/symbols
-+1F0AF-1F0B0 UNASSIGNED/unassigned
-+1F0B1-1F0BF FREE_PVAL/symbols
-+1F0C0-1F0C0 UNASSIGNED/unassigned
-+1F0C1-1F0CF FREE_PVAL/symbols
-+1F0D0-1F0D0 UNASSIGNED/unassigned
-+1F0D1-1F0F5 FREE_PVAL/symbols
-+1F0F6-1F0FF UNASSIGNED/unassigned
-+1F100-1F10A FREE_PVAL/has_compat
-+1F10B-1F10C FREE_PVAL/other_letter_digits
-+1F10D-1F10F UNASSIGNED/unassigned
-+1F110-1F12E FREE_PVAL/has_compat
-+1F12F-1F12F FREE_PVAL/symbols
-+1F130-1F14F FREE_PVAL/has_compat
-+1F150-1F169 FREE_PVAL/symbols
-+1F16A-1F16C FREE_PVAL/has_compat
-+1F16D-1F16F UNASSIGNED/unassigned
-+1F170-1F18F FREE_PVAL/symbols
-+1F190-1F190 FREE_PVAL/has_compat
-+1F191-1F1AC FREE_PVAL/symbols
-+1F1AD-1F1E5 UNASSIGNED/unassigned
-+1F1E6-1F1FF FREE_PVAL/symbols
-+1F200-1F202 FREE_PVAL/has_compat
-+1F203-1F20F UNASSIGNED/unassigned
-+1F210-1F23B FREE_PVAL/has_compat
-+1F23C-1F23F UNASSIGNED/unassigned
-+1F240-1F248 FREE_PVAL/has_compat
-+1F249-1F24F UNASSIGNED/unassigned
-+1F250-1F251 FREE_PVAL/has_compat
-+1F252-1F25F UNASSIGNED/unassigned
-+1F260-1F265 FREE_PVAL/symbols
-+1F266-1F2FF UNASSIGNED/unassigned
-+1F300-1F6D5 FREE_PVAL/symbols
-+1F6D6-1F6DF UNASSIGNED/unassigned
-+1F6E0-1F6EC FREE_PVAL/symbols
-+1F6ED-1F6EF UNASSIGNED/unassigned
-+1F6F0-1F6FA FREE_PVAL/symbols
-+1F6FB-1F6FF UNASSIGNED/unassigned
-+1F700-1F773 FREE_PVAL/symbols
-+1F774-1F77F UNASSIGNED/unassigned
-+1F780-1F7D8 FREE_PVAL/symbols
-+1F7D9-1F7DF UNASSIGNED/unassigned
-+1F7E0-1F7EB FREE_PVAL/symbols
-+1F7EC-1F7FF UNASSIGNED/unassigned
-+1F800-1F80B FREE_PVAL/symbols
-+1F80C-1F80F UNASSIGNED/unassigned
-+1F810-1F847 FREE_PVAL/symbols
-+1F848-1F84F UNASSIGNED/unassigned
-+1F850-1F859 FREE_PVAL/symbols
-+1F85A-1F85F UNASSIGNED/unassigned
-+1F860-1F887 FREE_PVAL/symbols
-+1F888-1F88F UNASSIGNED/unassigned
-+1F890-1F8AD FREE_PVAL/symbols
-+1F8AE-1F8FF UNASSIGNED/unassigned
-+1F900-1F90B FREE_PVAL/symbols
-+1F90C-1F90C UNASSIGNED/unassigned
-+1F90D-1F971 FREE_PVAL/symbols
-+1F972-1F972 UNASSIGNED/unassigned
-+1F973-1F976 FREE_PVAL/symbols
-+1F977-1F979 UNASSIGNED/unassigned
-+1F97A-1F9A2 FREE_PVAL/symbols
-+1F9A3-1F9A4 UNASSIGNED/unassigned
-+1F9A5-1F9AA FREE_PVAL/symbols
-+1F9AB-1F9AD UNASSIGNED/unassigned
-+1F9AE-1F9CA FREE_PVAL/symbols
-+1F9CB-1F9CC UNASSIGNED/unassigned
-+1F9CD-1FA53 FREE_PVAL/symbols
-+1FA54-1FA5F UNASSIGNED/unassigned
-+1FA60-1FA6D FREE_PVAL/symbols
-+1FA6E-1FA6F UNASSIGNED/unassigned
-+1FA70-1FA73 FREE_PVAL/symbols
-+1FA74-1FA77 UNASSIGNED/unassigned
-+1FA78-1FA7A FREE_PVAL/symbols
-+1FA7B-1FA7F UNASSIGNED/unassigned
-+1FA80-1FA82 FREE_PVAL/symbols
-+1FA83-1FA8F UNASSIGNED/unassigned
-+1FA90-1FA95 FREE_PVAL/symbols
-+1FA96-1FFFD UNASSIGNED/unassigned
-+1FFFE-1FFFF DISALLOWED/precis_ignorable_properties
-+20000-2A6D6 PVALID/letter_digits
-+2A6D7-2A6FF UNASSIGNED/unassigned
-+2A700-2B734 PVALID/letter_digits
-+2B735-2B73F UNASSIGNED/unassigned
-+2B740-2B81D PVALID/letter_digits
-+2B81E-2B81F UNASSIGNED/unassigned
-+2B820-2CEA1 PVALID/letter_digits
-+2CEA2-2CEAF UNASSIGNED/unassigned
-+2CEB0-2EBE0 PVALID/letter_digits
-+2EBE1-2F7FF UNASSIGNED/unassigned
-+2F800-2FA1D FREE_PVAL/has_compat
-+2FA1E-2FFFD UNASSIGNED/unassigned
-+2FFFE-2FFFF DISALLOWED/precis_ignorable_properties
-+30000-3FFFD UNASSIGNED/unassigned
-+3FFFE-3FFFF DISALLOWED/precis_ignorable_properties
-+40000-4FFFD UNASSIGNED/unassigned
-+4FFFE-4FFFF DISALLOWED/precis_ignorable_properties
-+50000-5FFFD UNASSIGNED/unassigned
-+5FFFE-5FFFF DISALLOWED/precis_ignorable_properties
-+60000-6FFFD UNASSIGNED/unassigned
-+6FFFE-6FFFF DISALLOWED/precis_ignorable_properties
-+70000-7FFFD UNASSIGNED/unassigned
-+7FFFE-7FFFF DISALLOWED/precis_ignorable_properties
-+80000-8FFFD UNASSIGNED/unassigned
-+8FFFE-8FFFF DISALLOWED/precis_ignorable_properties
-+90000-9FFFD UNASSIGNED/unassigned
-+9FFFE-9FFFF DISALLOWED/precis_ignorable_properties
-+A0000-AFFFD UNASSIGNED/unassigned
-+AFFFE-AFFFF DISALLOWED/precis_ignorable_properties
-+B0000-BFFFD UNASSIGNED/unassigned
-+BFFFE-BFFFF DISALLOWED/precis_ignorable_properties
-+C0000-CFFFD UNASSIGNED/unassigned
-+CFFFE-CFFFF DISALLOWED/precis_ignorable_properties
-+D0000-DFFFD UNASSIGNED/unassigned
-+DFFFE-DFFFF DISALLOWED/precis_ignorable_properties
-+E0000-E0000 UNASSIGNED/unassigned
-+E0001-E0001 DISALLOWED/precis_ignorable_properties
-+E0002-E001F UNASSIGNED/unassigned
-+E0020-E007F DISALLOWED/precis_ignorable_properties
-+E0080-E00FF UNASSIGNED/unassigned
-+E0100-E01EF DISALLOWED/precis_ignorable_properties
-+E01F0-EFFFD UNASSIGNED/unassigned
-+EFFFE-EFFFF DISALLOWED/precis_ignorable_properties
-+F0000-FFFFD DISALLOWED/other
-+FFFFE-FFFFF DISALLOWED/precis_ignorable_properties
-+100000-10FFFD DISALLOWED/other
-+10FFFE-10FFFF DISALLOWED/precis_ignorable_properties
diff --git a/testing/py3-precise-runner/APKBUILD b/testing/py3-precise-runner/APKBUILD
deleted file mode 100644
index 95b5799b255..00000000000
--- a/testing/py3-precise-runner/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-precise-runner
-pkgver=0.3.1
-pkgrel=0
-pkgdesc="A lightweight, simple-to-use, RNN wake word listener "
-url="https://github.com/MycroftAI/mycroft-precise"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-bbopt
-license="Apache-2.0"
-depends="python3 py3-bbopt py3-fitipy py3-pyaudio"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/p/precise-runner/precise-runner-$pkgver.tar.gz"
-builddir="$srcdir/precise-runner-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="58c62992666322018c01a22916b3a1014002c7aceda830970f1d0330777b47c981810f5a6a05840695b032cba21c8df09d14b982b24fac3926551a15a8dd99fd precise-runner-0.3.1.tar.gz"
diff --git a/testing/py3-preggy/APKBUILD b/testing/py3-preggy/APKBUILD
new file mode 100644
index 00000000000..14a49191ccd
--- /dev/null
+++ b/testing/py3-preggy/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-preggy
+_pkgname=preggy
+pkgver=1.4.4
+pkgrel=4
+pkgdesc="assertion library for Python"
+options="!check" # no test suite
+url="http://heynemann.github.io/preggy"
+arch="noarch"
+license="MIT"
+depends="python3 py3-six py3-unidecode"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 README.md "$pkgdir"/usr/share/licenses/$pkgname/README.md
+}
+
+sha512sums="
+6eb6073eb28ba8684f2795c1d9aa93c2a24e50063359a769f7f7d84da2928e25a0ca86d4ac268dce0c2462bbe1a73e76f496325b6175a1218025e15fb7ce4f4c preggy-1.4.4.tar.gz
+"
diff --git a/testing/py3-preshed/APKBUILD b/testing/py3-preshed/APKBUILD
deleted file mode 100644
index 98f6a57c632..00000000000
--- a/testing/py3-preshed/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-preshed
-pkgver=3.0.2
-pkgrel=0
-pkgdesc="Cython hash tables that assume keys are pre-hashed"
-url="https://github.com/explosion/preshed"
-arch="all"
-license="MIT"
-depends="python3 py3-cymem py3-murmurhash"
-makedepends="python3-dev py3-setuptools cython"
-checkdepends="py3-pytest"
-subpackages="$pkgname-doc"
-source="preshed-$pkgver.tar.gz::https://github.com/explosion/preshed/archive/v$pkgver.tar.gz"
-builddir="$srcdir/preshed-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py install --root="$PWD/tmp_install"
-
- cd tmp_install/usr/lib/python3.8/site-packages
-
- PYTHONPATH="$PWD/usr/lib" \
- pytest-3 preshed
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="45e3a26491e5ce51e08e30c0acedaa8434e5c715022979c078dcf80e9b83cfb09c774e8f26aa02cb64b2ececd9f2b8e5b9d76fe81b69e6ad15a0d688345f4f20 preshed-3.0.2.tar.gz"
diff --git a/testing/py3-proglog/APKBUILD b/testing/py3-proglog/APKBUILD
new file mode 100644
index 00000000000..e9e685ffed1
--- /dev/null
+++ b/testing/py3-proglog/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=py3-proglog
+pkgver=0.1.10
+pkgrel=2
+pkgdesc="Log and progress bar manager for console, notebooks, web"
+url="https://github.com/Edinburgh-Genome-Foundry/Proglog"
+arch="noarch"
+license="MIT"
+depends="
+ py3-tqdm
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Edinburgh-Genome-Foundry/Proglog/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/Proglog-$pkgver"
+
+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="
+5613643430d9842efa4b4061a1afcefdbbf7b7367a7ccd61b35080c7b514b384bec40457e18cf21dd637885249efe827b9604751a3c7980dce48a5a28a0eb07b py3-proglog-0.1.10.tar.gz
+"
diff --git a/testing/py3-progressbar/APKBUILD b/testing/py3-progressbar/APKBUILD
deleted file mode 100644
index 6b4d049b0cc..00000000000
--- a/testing/py3-progressbar/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-progressbar
-_pkgname=progressbar
-pkgver=2.5
-pkgrel=3
-pkgdesc="Text progress bar library for Python"
-url="https://github.com/niltonvolpato/python-progressbar"
-arch="noarch"
-license="BSD-3-Clause LGPL-2.1-or-later"
-replaces="py-progressbar" # for backwards compatibility
-provides="py-progressbar=$pkgver-r$pkgrel" # for backwards compatibility
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="86a56a573b903b947baac98b26f88e40072603007fdf5cda3e4a7e797fe4c4c42fd1a4b1ddb1c9ca9a062659d3647c428e33949e2df9e20b0f56a9a4099de51b progressbar-2.5.tar.gz"
diff --git a/testing/py3-progressbar2/APKBUILD b/testing/py3-progressbar2/APKBUILD
new file mode 100644
index 00000000000..67e742a7e62
--- /dev/null
+++ b/testing/py3-progressbar2/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-progressbar2
+_pkgname=progressbar2
+pkgver=4.2.0
+pkgrel=2
+pkgdesc="Text progress bar library for Python"
+url="https://github.com/WoLpH/python-progressbar"
+arch="noarch !s390x" # py3-utils
+license="BSD-3-Clause"
+replaces="py-progressbar" # for backwards compatibility
+provides="py-progressbar=$pkgver-r$pkgrel" # for backwards compatibility
+depends="python3 py3-utils py3-freezegun"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest 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"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD" pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+d49c154e48bd730c2a7916ed53272ff20cb6fac8c9752734cf645d4701ffcdf25309bf493d03fdc5b6072a85b5f758332fa7448f307d4acc001ad4ab36303a68 progressbar2-4.2.0.tar.gz
+"
diff --git a/testing/py3-proplot/APKBUILD b/testing/py3-proplot/APKBUILD
new file mode 100644
index 00000000000..47d232f2cb0
--- /dev/null
+++ b/testing/py3-proplot/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+# Maintainer: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+pkgname=py3-proplot
+pkgver=0.9.7
+pkgrel=2
+pkgdesc="Succinct matplotlib wrapper for making beautiful, publication-quality graphics"
+url="https://github.com/proplot-dev/proplot"
+arch="noarch"
+license="MIT"
+depends="py3-matplotlib py3-numpy"
+makedepends="
+ py3-gpep517
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/proplot-dev/proplot/archive/v$pkgver/proplot-$pkgver.tar.gz"
+builddir="$srcdir/proplot-$pkgver"
+options="!check" # issues during the collection | will be fixed before moving to community
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+3fce95d8bad6ed3e691251dfe4fdb6434bbce13d8bce28e8cb2696d390a29687fa033eabd0791b462ea23ca670244d82ac66a0b6e0361a39fb0ba3dadf736b0e proplot-0.9.7.tar.gz
+"
diff --git a/testing/py3-protego/APKBUILD b/testing/py3-protego/APKBUILD
new file mode 100644
index 00000000000..eca7d348f83
--- /dev/null
+++ b/testing/py3-protego/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: prspkt <prspkt@protonmail.com>
+# Maintainer: prspkt <prspkt@protonmail.com>
+pkgname=py3-protego
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="Pure-Python robots.txt parser with support for modern conventions"
+url="https://github.com/scrapy/protego"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/P/Protego/Protego-$pkgver.tar.gz"
+builddir="$srcdir/Protego-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$builddir/build/lib/:$PYTHONPATH" python3 -m pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+cb1209f93ed5dd6dc91d517107837c780e2138efa7766a9f6d00bd22d7b1904a5db5edb08db83bde34571735245d702db3a5c67970103dc77859bb4c9024e863 Protego-0.3.0.tar.gz
+"
diff --git a/testing/py3-proxmoxer/APKBUILD b/testing/py3-proxmoxer/APKBUILD
new file mode 100644
index 00000000000..0c4dcc9015e
--- /dev/null
+++ b/testing/py3-proxmoxer/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-proxmoxer
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="Python wrapper for Proxmox API v2"
+url="https://github.com/proxmoxer/proxmoxer"
+arch="noarch"
+license="MIT"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="
+ py3-mock
+ py3-openssh-wrapper
+ py3-paramiko
+ py3-pytest
+ py3-requests-toolbelt
+ py3-responses
+ py3-testfixtures
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/proxmoxer/proxmoxer/archive/$pkgver/proxmoxer-$pkgver.tar.gz"
+builddir="$srcdir/proxmoxer-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+74bdf599d85aaf16cf2802a728b83c18d572ea0df46c743e221ba0019c3fb9163f5acc0288cfd0d613d3c1b5691866e77b9e6448591dfc5faacc4226eab8344e proxmoxer-2.0.1.tar.gz
+"
diff --git a/testing/py3-publicsuffix2/APKBUILD b/testing/py3-publicsuffix2/APKBUILD
new file mode 100644
index 00000000000..d4eb1fad52c
--- /dev/null
+++ b/testing/py3-publicsuffix2/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-publicsuffix2
+_pkgname=python-publicsuffix2
+_pkgver=2.2019-12-21
+pkgver=${_pkgver//-}
+pkgrel=5
+pkgdesc="Python library to deal with publicsuffix data"
+url="https://github.com/nexB/python-publicsuffix2"
+license="MIT AND MPL-2.0"
+arch="noarch"
+depends="python3 py3-requests"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pkgname-release-$_pkgver.tar.gz::https://github.com/nexB/python-publicsuffix2/archive/release-$_pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-release-$_pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD"/build/lib pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+
+ # remove stray license file; SPDX identifier is sufficient in Alpine
+ rm "$pkgdir"/usr/lib/python3.*/site-packages/publicsuffix2/mpl-2.0.LICENSE
+}
+
+sha512sums="983bdb17b76d10eb73cf69f0ba7590806bf6786ae0c30526593ce1ab97f3b22c967f9acae83b880dd56be41a29eae9cca5726926667eb74013d0d1078433bf05 python-publicsuffix2-release-2.2019-12-21.tar.gz"
diff --git a/testing/py3-pure_protobuf/APKBUILD b/testing/py3-pure_protobuf/APKBUILD
new file mode 100644
index 00000000000..e65f028583c
--- /dev/null
+++ b/testing/py3-pure_protobuf/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=py3-pure_protobuf
+# Also needs to be updated in the use_fixed_version.patch
+pkgver=3.0.1
+pkgrel=2
+pkgdesc="Python implementation of Protocol Buffers with dataclass-based schemaʼs "
+url="https://pypi.org/project/pure-protobuf/"
+arch="noarch"
+license="MIT"
+depends="py3-typing-extensions"
+makedepends="
+py3-gpep517
+py3-hatchling
+py3-poetry-core
+py3-wheel
+py3-setuptools
+"
+subpackages="$pkgname-pyc"
+source="
+ https://github.com/eigenein/protobuf/archive/$pkgver/protobuf-$pkgver.tar.gz
+ use_fixed_version.patch
+"
+builddir="$srcdir/protobuf-$pkgver"
+options="!check"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+}
+
+sha512sums="
+d710a242e6e9cadc86dcaae2f28174477f76053bda501c077868fdd09597568eb52dbce02e4b463ef8cb3c9e2401d6754e333bec55614cfca1c7dc1cd7c211dd protobuf-3.0.1.tar.gz
+7a2151c8116e1b6551cd5cbf0174958f1a692b6c4e3aba2f8c9ec9fdd6ebe2bacd3fb29812c85b5b041271575c4d467e7b2a0cb541b288e001537f5dc6aed1a9 use_fixed_version.patch
+"
diff --git a/testing/py3-pure_protobuf/use_fixed_version.patch b/testing/py3-pure_protobuf/use_fixed_version.patch
new file mode 100644
index 00000000000..c2f5249176c
--- /dev/null
+++ b/testing/py3-pure_protobuf/use_fixed_version.patch
@@ -0,0 +1,23 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index c0a325364fc..17be46fca96 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -13,7 +13,7 @@ license = "MIT"
+ name = "pure-protobuf"
+ readme = "README.md"
+ repository = "https://github.com/eigenein/protobuf"
+-version = "0.0.0"
++version = "3.0.1"
+ classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Intended Audience :: Developers",
+@@ -30,8 +30,7 @@ classifiers = [
+ ]
+
+ [build-system]
+-requires = ["poetry-core", "poetry-dynamic-versioning"]
+-build-backend = "poetry_dynamic_versioning.backend"
++requires = ["poetry-core"]
+
+ [tool.poetry.dependencies]
+ get-annotations = { version = "^0.1.2", python = "<3.10" }
diff --git a/testing/py3-puremagic/APKBUILD b/testing/py3-puremagic/APKBUILD
new file mode 100644
index 00000000000..9a6a959ab50
--- /dev/null
+++ b/testing/py3-puremagic/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-puremagic
+pkgver=1.21
+pkgrel=1
+pkgdesc="Pure python implementation of identifying files based off their magic numbers"
+url="https://github.com/cdgriffith/puremagic"
+arch="noarch"
+license="MIT"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="py3-pytest py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="https://github.com/cdgriffith/puremagic/archive/refs/tags/$pkgver/puremagic-$pkgver.tar.gz"
+builddir="$srcdir/puremagic-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+cc2c76a2ddcfacdfce778e565b07692dcd247723aa85c562ba4d8c70992f79a8f13a7bc33f1468ee37298c266d35d76febe2e6164fdc145077d68b05cfa2e1c4 puremagic-1.21.tar.gz
+"
diff --git a/testing/py3-py-radix/APKBUILD b/testing/py3-py-radix/APKBUILD
index ca0a1bfa84e..f6ec91b5bc9 100644
--- a/testing/py3-py-radix/APKBUILD
+++ b/testing/py3-py-radix/APKBUILD
@@ -1,9 +1,8 @@
-# Contributor:
# Maintainer: Kristóf Jakab <jakab.kristof@balasys.hu>
pkgname=py3-py-radix
_pkgname=py-radix
pkgver=0.10.0
-pkgrel=3
+pkgrel=9
pkgdesc="An implementation of a radix tree for Python"
url="https://github.com/mjschultz/py-radix"
arch="all"
@@ -11,7 +10,11 @@ license="BSD-4-Clause AND ISC"
depends="python3"
makedepends="py3-setuptools python3-dev"
checkdepends="py3-coverage py3-nose"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/mjschultz/py-radix/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/mjschultz/py-radix/archive/v$pkgver.tar.gz
+ python3.10-support.patch
+ assertEquals.patch
+ "
builddir="$srcdir/$_pkgname-$pkgver"
replaces=py-radix # Backwards compatibility
@@ -26,7 +29,11 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="b4b6a35aad76c19c2eaa5bff828cbec5182cc4074397d4b9e5c39ac76bd9045c86600ed52ac06632abac8a9e70d6e82aa9e741ab3eb92970453bb14acdba72ea py-radix-0.10.0.tar.gz"
+sha512sums="
+b4b6a35aad76c19c2eaa5bff828cbec5182cc4074397d4b9e5c39ac76bd9045c86600ed52ac06632abac8a9e70d6e82aa9e741ab3eb92970453bb14acdba72ea py-radix-0.10.0.tar.gz
+56808e892ebcc951f76bfb21647687ccf8c2d3e605c64c650ca95e54a766e8f110bfa087fdc1921e9ba68109dbbf8220885a9c12dcb6ef69bf7695d7722a75b0 python3.10-support.patch
+cb7abba0dd5f0ea24c953d5c7a5c2d8dcdaf86b5ce30aa49d633de2572967afef2475019c88eaeddc2397633b08eef5c5607ac34bedf7afc4d1410108c61f0f7 assertEquals.patch
+"
diff --git a/testing/py3-py-radix/assertEquals.patch b/testing/py3-py-radix/assertEquals.patch
new file mode 100644
index 00000000000..e68e608153e
--- /dev/null
+++ b/testing/py3-py-radix/assertEquals.patch
@@ -0,0 +1,181 @@
+diff --git a/tests/test_compat.py b/tests/test_compat.py
+index 7ebe71b..2765351 100644
+--- a/tests/test_compat.py
++++ b/tests/test_compat.py
+@@ -32,3 +32,3 @@ class LoadRadixPickle(TestCase):
+ tree = load(f)
+- self.assertEquals(len(tree.nodes()), 3)
++ self.assertEqual(len(tree.nodes()), 3)
+ nodes = ['10.0.1.0/24', '10.0.2.0/24', '10.0.3.0/24']
+diff --git a/tests/test_regression.py b/tests/test_regression.py
+index 2b173e3..4861ec9 100644
+--- a/tests/test_regression.py
++++ b/tests/test_regression.py
+@@ -191,3 +191,3 @@ class TestRadix(unittest.TestCase):
+ del tree
+- self.assertEquals(node1.prefix, "10.0.0.0/8")
++ self.assertEqual(node1.prefix, "10.0.0.0/8")
+
+@@ -207,3 +207,3 @@ class TestRadix(unittest.TestCase):
+ self.assertTrue(node1 is node3)
+- self.assertEquals(node1.prefix, "10.255.255.240/28")
++ self.assertEqual(node1.prefix, "10.255.255.240/28")
+
+@@ -216,3 +216,3 @@ class TestRadix(unittest.TestCase):
+ self.assertTrue(node1 is node3)
+- self.assertEquals(node1.prefix, "dead:beef::/32")
++ self.assertEqual(node1.prefix, "dead:beef::/32")
+
+@@ -222,5 +222,5 @@ class TestRadix(unittest.TestCase):
+ node = tree.add(packed=p, masklen=26)
+- self.assertEquals(node.family, socket.AF_INET)
+- self.assertEquals(node.prefix, "224.20.11.64/26")
+- self.assertEquals(node.packed, p)
++ self.assertEqual(node.family, socket.AF_INET)
++ self.assertEqual(node.prefix, "224.20.11.64/26")
++ self.assertEqual(node.packed, p)
+
+@@ -233,7 +233,7 @@ class TestRadix(unittest.TestCase):
+ node = tree.add(packed=p, masklen=108)
+- self.assertEquals(node.family, socket.AF_INET6)
+- self.assertEquals(
++ self.assertEqual(node.family, socket.AF_INET6)
++ self.assertEqual(
+ node.prefix,
+ "dead:beef:1234:5678:9abc:def0::/108")
+- self.assertEquals(node.packed, p)
++ self.assertEqual(node.packed, p)
+
+@@ -248,3 +248,3 @@ class TestRadix(unittest.TestCase):
+ self.assertRaises(ValueError, tree.add, "::", 256)
+- self.assertEquals(len(tree.nodes()), 0)
++ self.assertEqual(len(tree.nodes()), 0)
+
+@@ -258,5 +258,5 @@ class TestRadix(unittest.TestCase):
+ self.assertTrue(node2 is node2_o)
+- self.assertNotEquals(node1.prefix, node2.prefix)
+- self.assertNotEquals(node1.network, node2.network)
+- self.assertNotEquals(node1.family, node2.family)
++ self.assertNotEqual(node1.prefix, node2.prefix)
++ self.assertNotEqual(node1.network, node2.network)
++ self.assertNotEqual(node1.family, node2.family)
+
+@@ -323,7 +323,7 @@ class TestRadix(unittest.TestCase):
+ prefix = "1.%d.%d.0/%d" % (i, j, k)
+- self.assertEquals(node.prefix, prefix)
++ self.assertEqual(node.prefix, prefix)
+ num_nodes_out += 1
+
+- self.assertEquals(num_nodes_in - num_nodes_del, num_nodes_out)
+- self.assertEquals(
++ self.assertEqual(num_nodes_in - num_nodes_del, num_nodes_out)
++ self.assertEqual(
+ num_nodes_in - num_nodes_del,
+@@ -334,3 +334,3 @@ class TestRadix(unittest.TestCase):
+ node = tree.add("255.255.255.255/15")
+- self.assertEquals(node.prefix, "255.254.0.0/15")
++ self.assertEqual(node.prefix, "255.254.0.0/15")
+
+@@ -355,7 +355,7 @@ class TestRadix(unittest.TestCase):
+ node = tree2.search_exact(addr, k)
+- self.assertNotEquals(node, None)
+- self.assertEquals(node.data["i"], i)
+- self.assertEquals(node.data["j"], j)
++ self.assertNotEqual(node, None)
++ self.assertEqual(node.data["i"], i)
++ self.assertEqual(node.data["j"], j)
+ node.data["j"] = j
+- self.assertEquals(len(tree2.nodes()), num_nodes_in)
++ self.assertEqual(len(tree2.nodes()), num_nodes_in)
+
+@@ -382,7 +382,7 @@ class TestRadix(unittest.TestCase):
+ node = tree2.search_exact(addr, k)
+- self.assertNotEquals(node, None)
+- self.assertEquals(node.data["i"], i)
+- self.assertEquals(node.data["j"], j)
++ self.assertNotEqual(node, None)
++ self.assertEqual(node.data["i"], i)
++ self.assertEqual(node.data["j"], j)
+ node.data["j"] = j
+- self.assertEquals(len(tree2.nodes()), num_nodes_in)
++ self.assertEqual(len(tree2.nodes()), num_nodes_in)
+
+@@ -393,3 +393,3 @@ class TestRadix(unittest.TestCase):
+ tree.add('10.0.0.0/16')
+- self.assertEquals(
++ self.assertEqual(
+ tree.search_best('10.0.0.0/15').prefix,
+@@ -411,6 +411,6 @@ class TestRadix(unittest.TestCase):
+ tree.add('10.0.0.0/16')
+- self.assertEquals(
++ self.assertEqual(
+ tree.search_worst('10.0.0.0/15').prefix,
+ '10.0.0.0/8')
+- self.assertEquals(
++ self.assertEqual(
+ tree.search_worst('100.0.0.0/15'),
+@@ -423,3 +423,3 @@ class TestRadix(unittest.TestCase):
+ tree.add('0.0.0.0/0')
+- self.assertEquals(
++ self.assertEqual(
+ tree.search_best('10.10.10.10').prefix,
+@@ -436,24 +436,24 @@ class TestRadix(unittest.TestCase):
+ tree.add('0.0.0.0/0')
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('11.0.0.0/8')],
+ ['11.0.0.0/16'])
+- self.assertEquals(
++ self.assertEqual(
+ sorted([n.prefix for n in tree.search_covered('10.0.0.0/9')]),
+ ['10.0.0.0/13', '10.0.0.0/31', '10.30.2.0/25', '10.30.2.1/32'])
+- self.assertEquals(
++ self.assertEqual(
+ sorted([n.prefix for n in tree.search_covered('10.0.0.0/8')]),
+ ['10.0.0.0/13', '10.0.0.0/31', '10.0.0.0/8', '10.30.2.0/25', '10.30.2.1/32'])
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('11.0.0.0/8')],
+ ['11.0.0.0/16'])
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('10.30.2.64/32')],
+ [])
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('21.0.0.0/8')],
+ [])
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('10.0.0.1')],
+ [])
+- self.assertEquals(
++ self.assertEqual(
+ sorted([n.prefix for n in tree.search_covered('0.0.0.0/0')]),
+@@ -467,3 +467,3 @@ class TestRadix(unittest.TestCase):
+
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('193.178.152.0/21')],
+@@ -477,3 +477,3 @@ class TestRadix(unittest.TestCase):
+
+- self.assertEquals(
++ self.assertEqual(
+ [n.prefix for n in tree.search_covered('31.3.104.0/21')],
+@@ -490,12 +490,12 @@ class TestRadix(unittest.TestCase):
+
+- self.assertEquals([n.prefix for n in
++ self.assertEqual([n.prefix for n in
+ tree.search_covering('8.9.0.1/32')],
+ ['8.9.0.1/32', '8.9.0.0/16', '0.0.0.0/2'])
+- self.assertEquals([n.prefix for n in
++ self.assertEqual([n.prefix for n in
+ tree.search_covering('5.5.5.0/24')],
+ ['0.0.0.0/2'])
+- self.assertEquals([n.prefix for n in
++ self.assertEqual([n.prefix for n in
+ tree.search_covering('3.178.152.0/21')],
+ ['0.0.0.0/2'])
+- self.assertEquals([n.prefix for n in
++ self.assertEqual([n.prefix for n in
+ tree.search_covering('205.0.1.0/24')],
diff --git a/testing/py3-py-radix/python3.10-support.patch b/testing/py3-py-radix/python3.10-support.patch
new file mode 100644
index 00000000000..12f9942be1e
--- /dev/null
+++ b/testing/py3-py-radix/python3.10-support.patch
@@ -0,0 +1,96 @@
+Patch-Source: https://github.com/hroncok/py-radix/commit/b77a77dadfbcbaa0384d1b87728829bd1683937f
+From b77a77dadfbcbaa0384d1b87728829bd1683937f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Tue, 31 Aug 2021 00:58:25 +0200
+Subject: [PATCH] Define PY_SSIZE_T_CLEAN, use ssize_t as the index type (PEP
+ 353)
+
+Fixes https://github.com/mjschultz/py-radix/issues/54
+---
+ radix/_radix.c | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/radix/_radix.c b/radix/_radix.c
+index 5a1b88f..287e893 100644
+--- a/radix/_radix.c
++++ b/radix/_radix.c
+@@ -14,6 +14,7 @@
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
++#define PY_SSIZE_T_CLEAN
+ #include "Python.h"
+ #include "structmember.h"
+ #include "_radix/radix.h"
+@@ -256,7 +257,7 @@ Radix_dealloc(RadixObject *self)
+ }
+
+ static prefix_t
+-*args_to_prefix(prefix_t *prefix, char *addr, char *packed, int packlen, long prefixlen)
++*args_to_prefix(prefix_t *prefix, char *addr, char *packed, Py_ssize_t packlen, long prefixlen)
+ {
+ prefix_t *old_prefix = prefix;
+ const char *errmsg;
+@@ -352,7 +353,7 @@ Radix_add(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:add", keywords,
+ &addr, &prefixlen, &packed, &packlen))
+@@ -381,7 +382,7 @@ Radix_delete(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:delete", keywords,
+ &addr, &prefixlen, &packed, &packlen))
+@@ -424,7 +425,7 @@ Radix_search_exact(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:search_exact", keywords,
+ &addr, &prefixlen, &packed, &packlen))
+@@ -462,7 +463,7 @@ Radix_search_best(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:search_best", keywords,
+ &addr, &prefixlen, &packed, &packlen))
+@@ -500,7 +501,7 @@ Radix_search_worst(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:search_worst", keywords,
+ &addr, &prefixlen, &packed, &packlen))
+@@ -543,7 +544,7 @@ Radix_search_covered(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:search_covered", keywords, &addr, &prefixlen, &packed, &packlen))
+ return NULL;
+@@ -576,7 +577,7 @@ Radix_search_covering(RadixObject *self, PyObject *args, PyObject *kw_args)
+
+ char *addr = NULL, *packed = NULL;
+ long prefixlen = -1;
+- int packlen = -1;
++ Py_ssize_t packlen = -1;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kw_args, "|zlz#:search_covering", keywords, &addr, &prefixlen, &packed, &packlen)) {
+ return NULL;
diff --git a/testing/py3-pyache/APKBUILD b/testing/py3-pyache/APKBUILD
deleted file mode 100644
index f59d3625d23..00000000000
--- a/testing/py3-pyache/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pyache
-pkgver=0.1.0
-pkgrel=0
-pkgdesc="Python numpy caching library"
-url="https://github.com/MycroftAI/pyache"
-arch="noarch !mips !mips64" # py3-numpy missing
-license="Apache-2.0"
-depends="python3 py3-numpy"
-makedepends="py3-setuptools py3-numpy-dev"
-source="https://pypi.python.org/packages/source/p/pyache/pyache-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/pyache-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0ae228ccfd270991ea7c4d074425580f45b0bc008a9e577fd0bd897bd2f64f40df7fe4c52e584dfdae7fd6b9604330400553445a7e2611d308bb96d13d4e8d84 pyache-0.1.0.tar.gz"
diff --git a/testing/py3-pyaes/APKBUILD b/testing/py3-pyaes/APKBUILD
deleted file mode 100644
index ee4e1b727a8..00000000000
--- a/testing/py3-pyaes/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-pyaes
-pkgver=1.6.1
-pkgrel=1
-pkgdesc="Pure-Python Implementation of the AES block-cipher and common modes of operation"
-url="https://github.com/ricmoo/pyaes"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/p/pyaes/pyaes-$pkgver.tar.gz"
-builddir="$srcdir/pyaes-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="00ce3babf72ea18b0de369860cd884058c7c6f3bd8b961c3ff591ef7d3dc0a69fabad5311f61c9f91d2f1a480c8512e34eeced5ec7145ed9f963bf91c5f8838a pyaes-1.6.1.tar.gz"
diff --git a/testing/py3-pyalsaaudio/APKBUILD b/testing/py3-pyalsaaudio/APKBUILD
deleted file mode 100644
index 574933e2de8..00000000000
--- a/testing/py3-pyalsaaudio/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pyalsaaudio
-pkgver=0.8.4
-pkgrel=0
-pkgdesc="ALSA bindings"
-url="https://larsimmisch.github.io/pyalsaaudio/"
-arch="all"
-license="PSF-2.0"
-depends="python3"
-makedepends="py3-setuptools python3-dev alsa-lib-dev"
-source="https://pypi.python.org/packages/source/p/pyalsaaudio/pyalsaaudio-$pkgver.tar.gz"
-options="!check" # Requires specific audio setup
-builddir="$srcdir/pyalsaaudio-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="257c43b7b4f126c96a0e3a7dad410f96dc5a86c5c1e138d431c005f097149ec5240d3b133609926e5ffc9e0a0fce9c1125ad76cd636bea987ae78c139ae9d64c pyalsaaudio-0.8.4.tar.gz"
diff --git a/testing/py3-pyatem/APKBUILD b/testing/py3-pyatem/APKBUILD
new file mode 100644
index 00000000000..93c6cffbcfc
--- /dev/null
+++ b/testing/py3-pyatem/APKBUILD
@@ -0,0 +1,73 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+# Contributor: Martijn Braam <martijn@brixit.nl>
+pkgname=py3-pyatem
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="Python library for controlling Blackmagic Design ATEM hardware"
+url="https://git.sr.ht/~martijnbraam/pyatem"
+arch="all"
+license="LGPL-3.0-only"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/pyatem/archive/$pkgver.tar.gz
+ openswitcher-proxy.confd
+ openswitcher-proxy.initd
+ "
+depends="python3 py3-usb py3-zeroconf"
+makedepends="py3-setuptools python3-dev glib-dev libhandy1-dev meson"
+checkdepends="py3-pytest"
+builddir="$srcdir/pyatem-$pkgver"
+subpackages="openswitcher openswitcher-proxy:proxy openswitcher-proxy-openrc $pkgname-pyc"
+
+build() {
+ # Build the python library
+ python3 setup.py build
+
+ # Build the native code in-place for the tests
+ python3 setup.py build_ext --inplace
+
+ # Build the GTK app
+ abuild-meson -Dwith_proxy=False . output_gtk
+ meson compile -C output_gtk
+
+ # Build the proxy daemon
+ abuild-meson -Dwith_gtk_app=False . output_proxy
+ meson compile -C output_proxy
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+
+ install -D -m644 "$builddir"/100-blackmagicdesign.rules \
+ "$pkgdir"/lib/udev/rules.d/100-blackmagicdesign.rules
+}
+
+openswitcher() {
+ pkgdesc="GTK+3 Control application for Blackmagic Design ATEM hardware"
+ depends="python3 py3-gobject3 gtk+3.0 libhandy1-dev py3-pyatem py3-cairo"
+
+ DESTDIR="$subpkgdir" meson install --no-rebuild -C "$builddir"/output_gtk
+ install -D -m755 "$srcdir"/openswitcher-proxy.initd \
+ "$pkgdir"/etc/init.d/openswitcher-proxy
+ install -D -m644 "$srcdir"/openswitcher-proxy.confd \
+ "$pkgdir"/etc/conf.d/openswitcher-proxy
+}
+
+proxy() {
+ pkgdesc="Reverse proxy for the Blackmagic Design ATEM protocol"
+ depends="python3 py3-pyatem py3-toml py3-paho-mqtt"
+ install="openswitcher-proxy.pre-install"
+
+ DESTDIR="$subpkgdir" meson install --no-rebuild -C "$builddir"/output_proxy
+
+ install -D -m644 "$builddir"/proxy-full.toml \
+ "$pkgdir"/etc/openswitcher/proxy.toml.example
+}
+
+sha512sums="
+54db7562c9f85fc0f272949e34ec5b16b3a061af96651cbb491bb735aeaacc794d3e07f744a59be9e3c77f45bd8bbf6de6c7b6428b9ed953f9408040a50e953e py3-pyatem-0.5.0.tar.gz
+f7d60a2b4effb5795fedfde6c2d9f7523847530d933af73b275642c2b6afd254fe0f189f9a5c304544f1b2be3f79db88404a8d6d0a5a26ce1f5b5d3375eea858 openswitcher-proxy.confd
+a0e337e9b337825b6f23bf43fd9fe700bebf32e9747f2ddd92383a6a4a7f9da14151744af03f3c80c997d96dc9ce767f198cf18460ccf93828e6d1cd519fe50f openswitcher-proxy.initd
+"
diff --git a/testing/py3-pyatem/openswitcher-proxy.confd b/testing/py3-pyatem/openswitcher-proxy.confd
new file mode 100644
index 00000000000..b3463675643
--- /dev/null
+++ b/testing/py3-pyatem/openswitcher-proxy.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/openswitcher-proxy
+
+# Path to the config file to use.
+#cfgfile="/etc/openswitcher/proxy.toml"
+
+logfile="/var/log/openswitcher/proxy.log"
+
+supervisor=supervise-daemon
+supervise_daemon_args="--stdout ${logfile} --stderr ${logfile}"
+
diff --git a/testing/py3-pyatem/openswitcher-proxy.initd b/testing/py3-pyatem/openswitcher-proxy.initd
new file mode 100644
index 00000000000..6f6af23daac
--- /dev/null
+++ b/testing/py3-pyatem/openswitcher-proxy.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+
+name="OpenSwitcher Proxy"
+description="Reverse proxy for the ATEM protocol"
+
+: ${cfgfile:="/etc/openswitcher/proxy.toml"}
+
+command="/usr/bin/openswitcher-proxy"
+command_args="--config $cfgfile"
+command_user="openswitcher:openswitcher"
+
+required_files="$cfgfile"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -f --owner "$command_user" --mode 0644 $logfile
+}
diff --git a/testing/py3-pyatem/openswitcher-proxy.pre-install b/testing/py3-pyatem/openswitcher-proxy.pre-install
new file mode 100644
index 00000000000..63b1c3c4aff
--- /dev/null
+++ b/testing/py3-pyatem/openswitcher-proxy.pre-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+addgroup -S openswitcher 2>/dev/null
+adduser -S -D -H -s /bin/false -G openswitcher -g openswitcher openswitcher 2>/dev/null
diff --git a/testing/py3-pyaudio/APKBUILD b/testing/py3-pyaudio/APKBUILD
deleted file mode 100644
index 400ac689498..00000000000
--- a/testing/py3-pyaudio/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pyaudio
-pkgver=0.2.11
-pkgrel=0
-pkgdesc="Bindings for PortAudio v19, the cross-platform audio input/output stream library"
-url="https://people.csail.mit.edu/hubert/pyaudio/"
-arch="all"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools python3-dev portaudio-dev"
-source="https://pypi.python.org/packages/source/P/PyAudio/PyAudio-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/PyAudio-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="64db5542ee60837c9b07677e146fc7b060ff47c8b1c04cbb575bce79dd3ed4776c201e169ff2860f27dbe9e00a77046ba0cb925b55f7c546f8de46c6df68954e PyAudio-0.2.11.tar.gz"
diff --git a/testing/py3-pyautogui/APKBUILD b/testing/py3-pyautogui/APKBUILD
index b1f8516b52d..a63b7cc2321 100644
--- a/testing/py3-pyautogui/APKBUILD
+++ b/testing/py3-pyautogui/APKBUILD
@@ -1,33 +1,47 @@
# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
+# Maintainer:
pkgname=py3-pyautogui
_pkgname=PyAutoGUI
# upstream does not tag releases https://github.com/asweigart/pyautogui/issues/270
-_commit=57a98be5fc1c33f077ca499f7836741faf31d463
-pkgver=0.9.50
-pkgrel=0
+_commit=9de7b3ebf8817a846b03caec0775ecbf4596452b
+pkgver=0.9.53
+pkgrel=4
pkgdesc="A cross-platform Python module for GUI automation for human beings"
url="https://pyautogui.readthedocs.io/"
arch="noarch"
license="BSD-3-Clause"
-depends="py3-xlib py3-pillow"
-makedepends="py3-setuptools xvfb-run"
+depends="
+ py3-pillow
+ py3-pymsgbox
+ py3-pyscreeze
+ py3-pytweening
+ py3-xlib
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="xvfb-run"
+subpackages="$pkgname-pyc"
source="$_pkgname-$_commit.tar.gz::https://github.com/asweigart/pyautogui/archive/$_commit.tar.gz"
builddir="$srcdir/pyautogui-$_commit"
+options="!check" # hang forever
replaces="py-pyautogui" # Backwards compatibility
provides="py-pyautogui=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- xvfb-run python3 setup.py build
+ python3 setup.py build
}
check() {
- python3 setup.py check
+ PYTHONPATH="$PWD" \
+ xvfb-run -a \
+ python3 tests/test_pyautogui.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="5d5bb8c9e3ee5759ac6cfd7872cf62621bcbb3093df11d785928d9159dd0902527fb8a02add57bb223d28b0f1ee0b574180178e99e2018aa24f5a279ce01e40e PyAutoGUI-57a98be5fc1c33f077ca499f7836741faf31d463.tar.gz"
+sha512sums="
+afa4d3fde6a79d6946c520c536d64d5f76ae7982eb7a5ed4dd0c86bececc232a0e08e25705dc8cd184876ae24b8630fb0721042ee9653533798617344b0bf945 PyAutoGUI-9de7b3ebf8817a846b03caec0775ecbf4596452b.tar.gz
+"
diff --git a/testing/py3-pybars3/APKBUILD b/testing/py3-pybars3/APKBUILD
new file mode 100644
index 00000000000..27933d06e14
--- /dev/null
+++ b/testing/py3-pybars3/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-pybars3
+pkgver=0.9.7
+pkgrel=5
+pkgdesc="implementation of the handlebars.js template language for Python 3"
+url="https://github.com/wbond/pybars3"
+arch="noarch"
+license="LGPL-3.0-only"
+depends="
+ python3
+ py3-pymeta3
+ "
+makedepends="
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/pybars3/pybars3-$pkgver.tar.gz"
+builddir="$srcdir/pybars3-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 tests.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="
+7aff86c0703e3827909f3603d7f35026ee39ce74d9c5ff1beb18a71b0a839c3aa407402f8d9c1aca9eb69af33750db0477881826e72135fc26a7274b0f1f538b pybars3-0.9.7.tar.gz
+"
diff --git a/testing/py3-pycaption/APKBUILD b/testing/py3-pycaption/APKBUILD
new file mode 100644
index 00000000000..e44e2cda347
--- /dev/null
+++ b/testing/py3-pycaption/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=py3-pycaption
+pkgver=2.2.4
+pkgrel=0
+pkgdesc="Python module to read/write popular video caption formats"
+url="https://github.com/pbs/pycaption"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ python3
+ py3-beautifulsoup4
+ py3-cssutils
+ py3-lxml
+ py3-nltk
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+source="https://github.com/pbs/pycaption/archive/refs/tags/$pkgver/pycaption-$pkgver.tar.gz"
+builddir="$srcdir/pycaption-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
+}
+
+sha512sums="
+6082cf098b2e8b97e84729538f842405c667a5eda50d5bec094b372f9e9b0ac79a64bb807fc2b75b0ee3c79d934f6e15f595cdf4882277086067207fb7637976 pycaption-2.2.4.tar.gz
+"
diff --git a/testing/py3-pycolorterm/APKBUILD b/testing/py3-pycolorterm/APKBUILD
index 32ce8706dec..9311edbce0f 100644
--- a/testing/py3-pycolorterm/APKBUILD
+++ b/testing/py3-pycolorterm/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-pycolorterm
_pkgname=pycolorterm
pkgver=0.2.1
-pkgrel=2
+pkgrel=5
pkgdesc="A Python module to work with color and style formatting"
url="https://github.com/dnmellen/pycolorterm"
arch="noarch"
@@ -22,7 +22,7 @@ build() {
package() {
cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="c90cb9a0fde94bbd856ba555bb5137004a3a936e028830938bdadf25be94a6f13a0597afb5439681c89d483806375708106be585c236109e83c3e493973e7d4a pycolorterm-0.2.1.tar.gz"
diff --git a/testing/py3-pycosat/APKBUILD b/testing/py3-pycosat/APKBUILD
index dcaf9b92dc5..7716bcd9038 100644
--- a/testing/py3-pycosat/APKBUILD
+++ b/testing/py3-pycosat/APKBUILD
@@ -2,14 +2,14 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=py3-pycosat
_pkgname=pycosat
-pkgver=0.6.3
+pkgver=0.6.6
pkgrel=1
pkgdesc="Python bindings to picosat (a SAT solver)"
-url="https://github.com/ContinuumIO/pycosat"
+url="https://github.com/conda/pycosat"
arch="all"
license="MIT"
-makedepends="python3-dev"
-source="https://github.com/ContinuumIO/pycosat/archive/$pkgver/$_pkgname-$pkgver.tar.gz
+makedepends="python3-dev py3-setuptools"
+source="https://github.com/conda/pycosat/archive/$pkgver/$_pkgname-$pkgver.tar.gz
musl-compat.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -19,13 +19,15 @@ build() {
}
check() {
- PYTHONPATH="$(dirname ./build/lib.linux-*-3.*/*.so)" \
+ PYTHONPATH="$(echo build/lib.linux*)" \
python3 test_pycosat.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="6163f9879d4ed98486f36990f0134db0a9b6096a8507312a1013d707b0dcb7e963845a5959c601f672a53a5db8c80b63d3184a0ef906b2ec563ca1a4c63850fa pycosat-0.6.3.tar.gz
-57fae28c1d9f9e5fd2c8800ec664e0c43b04935f540ab2576fd660cb902e62edcc727aab3f7dacd33db1e775d49ebdffc24fbe4a4136ec5e3ea54cc5c37b2cef musl-compat.patch"
+sha512sums="
+a831bee95746c19133463b903429aaf7619407733d49128fdb0afe368e62bcdffc1406b4bbfdbbf67b1a96953bfba2f23a7e2dc151979d61efb29facb8609dc4 pycosat-0.6.6.tar.gz
+57fae28c1d9f9e5fd2c8800ec664e0c43b04935f540ab2576fd660cb902e62edcc727aab3f7dacd33db1e775d49ebdffc24fbe4a4136ec5e3ea54cc5c37b2cef musl-compat.patch
+"
diff --git a/testing/py3-pydbus/APKBUILD b/testing/py3-pydbus/APKBUILD
deleted file mode 100644
index 393815d9e48..00000000000
--- a/testing/py3-pydbus/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Luca Weiss <luca@z3ntu.xyz>
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname="py3-pydbus"
-_pyname="pydbus"
-pkgver=0.6.0
-pkgrel=0
-pkgdesc="Pythonic DBus library"
-url="https://github.com/LEW21/pydbus"
-arch="noarch"
-license="LGPL-2.1-or-later"
-depends="python3 py3-gobject3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/pydbus-$pkgver"
-options="!check" # https://github.com/LEW21/pydbus/issues/85
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a8d473080faaad7e6f44030b4355ae5535ca4b2aa62b94b05c782832a4732b0c9cfda40020005ced848bcfae8fb1783575e72c7a86104bf9fb05ab409178a9ea pydbus-0.6.0.tar.gz"
diff --git a/testing/py3-pydes/APKBUILD b/testing/py3-pydes/APKBUILD
new file mode 100644
index 00000000000..579451b5cfa
--- /dev/null
+++ b/testing/py3-pydes/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Anees PK <anees6478@gmail.com>
+# Maintainer: Anees PK <anees6478@gmail.com>
+pkgname=py3-pydes
+pkgver=2.0.1
+_pkgname=pyDes
+pkgrel=4
+pkgdesc="Python implementation of DES and TRIPLE DES encryption algorithm"
+options="!check" # no test suite
+url="http://twhiteman.netfirms.com/des.html"
+arch="noarch"
+license="CC-PDDC"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm0644 README.txt -t "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+9d2a048dd6f629713d93d5cfcf5eaccb45a28fd3942f6837baf492bc6d9f0fcd16a1611e467231e9abfa6756d1684b0848c2190195e9e772bed2e6574327885c pyDes-2.0.1.tar.gz
+"
diff --git a/testing/py3-pydocstyle/APKBUILD b/testing/py3-pydocstyle/APKBUILD
deleted file mode 100644
index 392a63e132b..00000000000
--- a/testing/py3-pydocstyle/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Russ Webber <russ@rw.id.au>
-# Maintainer: Russ Webber <russ@rw.id.au>
-pkgname="py3-pydocstyle"
-_pkgname="pydocstyle"
-pkgver="5.0.2"
-pkgrel=1
-pkgdesc="Static analysis tool for checking compliance with Python docstring conventions"
-url="https://www.pydocstyle.org/"
-arch="noarch"
-license="MIT"
-depends="python3 py3-snowballstemmer"
-makedepends="py3-setuptools py3-pytest py3-mock py3-six"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/PyCQA/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # integration tests call pip which doesn't exist
- PYTHONPATH="$builddir/build/lib" py.test --deselect src/tests/test_integration.py -vv src/tests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5ac2e017ae95ff5c7759d6a2cb9ac990f94f668f5fd940792d927cc62628cd036afcf39ab5db6a11100dcca32af344b47f4a7319dd3a47c36367844d0c06d34a pydocstyle-5.0.2.tar.gz"
diff --git a/testing/py3-pydot/APKBUILD b/testing/py3-pydot/APKBUILD
deleted file mode 100644
index 7af6d736f27..00000000000
--- a/testing/py3-pydot/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Russ Webber <russ@rw.id.au>
-# Maintainer: Russ Webber <russ@rw.id.au>
-pkgname="py3-pydot"
-_pkgname="pydot"
-pkgver="1.4.1"
-pkgrel=1
-pkgdesc="Python interface to Graphviz's Dot language"
-url="https://github.com/pydot/pydot"
-arch="noarch"
-license="MIT"
-options="!check" # graphviz unable to parse jpe files
-depends="python3 py3-parsing"
-makedepends="py3-setuptools" # required for test: py3-chardet graphviz
-source="$_pkgname-$pkgver.tar.gz::https://github.com/$_pkgname/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- cd "$builddir/test"
- PYTHONPATH="$builddir/build/lib" python3 pydot_unittest.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b5f16b59908586df61cd415cb1a3e242fb69c39674a82b171862beff1f3727f47cba39bdd806901cb56bc8a6888783a53d112b1b70044e124ea992789d77f938 pydot-1.4.1.tar.gz"
diff --git a/testing/py3-pyee/APKBUILD b/testing/py3-pyee/APKBUILD
deleted file mode 100644
index 953577eeed3..00000000000
--- a/testing/py3-pyee/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pyee
-pkgver=7.0.2
-pkgrel=0
-pkgdesc="A port of node.js's EventEmitter to Python"
-url="https://github.com/jfhbrook/pyee"
-arch="noarch"
-license="MIT"
-depends="python3 py3-vcversioner py3-async_generator py3-trio py3-twisted"
-makedepends="py3-setuptools py3-pytest-trio py3-pytest-asyncio py3-pytest-runner"
-checkdepends="pytest py3-mock"
-source="https://pypi.python.org/packages/source/p/pyee/pyee-$pkgver.tar.gz"
-builddir="$srcdir/pyee-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f543cb1e6faa7dd0e430a0f50ca7e2dd4449f2627f1c81d01343effc87ce656a67813845a207786e0f93facf53896a647cf5caca0224fb4a07a3a2b76c5e4431 pyee-7.0.2.tar.gz"
diff --git a/testing/py3-pygdbmi/APKBUILD b/testing/py3-pygdbmi/APKBUILD
deleted file mode 100644
index 28153ca212b..00000000000
--- a/testing/py3-pygdbmi/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-_pkgname=pygdbmi
-pkgname=py3-$_pkgname
-pkgver=0.9.0.3
-pkgrel=0
-pkgdesc="Get Structured Output from GDB's Machine Interface"
-url="https://github.com/cs01/pygdbmi"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- python3 setup.py check
-}
-
-sha512sums="400859811e9384bff0e9602c8c41471489d074052301cf30f5cda3950da9badf20d62bf3a8956e837426c75ea9d0ce80cb0e4986749819cd8e4df5156c80e12d pygdbmi-0.9.0.3.tar.gz"
diff --git a/testing/py3-pygelbooru/APKBUILD b/testing/py3-pygelbooru/APKBUILD
new file mode 100644
index 00000000000..2cfca6735bf
--- /dev/null
+++ b/testing/py3-pygelbooru/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Haelwenn (lanodan) Monnier <contact+alpine@hacktivis.me>
+# Maintainer: Haelwenn (lanodan) Monnier <contact+alpine@hacktivis.me>
+pkgname=py3-pygelbooru
+_pkgreal=pygelbooru
+pkgver=0.5.0
+pkgrel=2
+pkgdesc="unofficial and lightweight asynchronous library for Gelbooru compatible API"
+url="https://github.com/MakotoAme/pygelbooru"
+arch="noarch"
+license="GPL-3"
+depends="python3 py3-aiohttp py3-furl py3-xmltodict"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgreal:0:1}/$_pkgreal/$_pkgreal-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install \
+ --prefix=/usr \
+ --root="$pkgdir" \
+ --single-version-externally-managed
+}
+
+sha512sums="
+4301aa8c07bac9d70adbe13a8283869c48944cbaadeb5f28b6649d0d349861a09f21b057d26815e1a826f085ac8d54d135be466d543856ed00fc47d38734e204 pygelbooru-0.5.0.tar.gz
+"
diff --git a/testing/py3-pygfm/APKBUILD b/testing/py3-pygfm/APKBUILD
index 7f60ffa7c03..4f4422a7e6b 100644
--- a/testing/py3-pygfm/APKBUILD
+++ b/testing/py3-pygfm/APKBUILD
@@ -3,8 +3,8 @@
# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
pkgname=py3-pygfm
_pkgname=py-gfm
-pkgver=0.1.4
-pkgrel=2
+pkgver=2.0.0
+pkgrel=1
pkgdesc="Github-Flavored Markdown for Python-Markdown"
options="!check"
url="https://github.com/zopieux/py-gfm"
@@ -13,6 +13,7 @@ license="BSD-3-Clause"
depends="python3 py3-markdown"
makedepends="py3-setuptools"
checkdepends="py3-codecov py3-coverage py3-coveralls"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Zopieux/py-gfm/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -28,7 +29,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="4730035b8a6168b6d2987a4a5f9a0ca70564e6797b7c88ec43f04152fa77c5a396f204b6143fc0bb3a53ab364b6d11b2274663b8b64d4640afba2a21cd1e3c6a py3-pygfm-0.1.4.tar.gz"
+sha512sums="
+45d62280465bdc0cc51fc3e74486d0923c71fce7497ca29d68ba7bce232bf423d209b7ee54170d2ae283374c4e5979766d95e13ce9285bff303e7a5a83e1e12b py3-pygfm-2.0.0.tar.gz
+"
diff --git a/testing/py3-pygithub/APKBUILD b/testing/py3-pygithub/APKBUILD
deleted file mode 100644
index 5584438fe1d..00000000000
--- a/testing/py3-pygithub/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=py3-pygithub
-_pkgname=PyGithub
-pkgver=1.46
-pkgrel=0
-pkgdesc="Typed interactions with the GitHub API v3"
-url="https://github.com/PyGithub/PyGithub"
-arch="noarch"
-license="LGPL-3.0-or-later"
-depends="python3 py3-jwt py3-requests py3-deprecated"
-makedepends="py3-setuptools"
-checkdepends="py3-httpretty py3-cryptography"
-source="https://github.com/PyGithub/PyGithub/archive/v$pkgver/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m lib2to3 -w -n tests
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1c03920434491b279e1709550a658ff125c0d91390160b1de5e5fadf5cf5eeb722477fd913f47ec686cce052a8c34d916de753ea36fecb227d955e60d064a0b6 PyGithub-1.46.tar.gz"
diff --git a/testing/py3-pyglm/APKBUILD b/testing/py3-pyglm/APKBUILD
new file mode 100644
index 00000000000..3288f9ae741
--- /dev/null
+++ b/testing/py3-pyglm/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Thomas Aldrian <aldrian.thom@proton.me>
+pkgname=py3-pyglm
+pkgver=2.7.1
+pkgrel=0
+pkgdesc="OpenGL Mathematics library for Python"
+url="https://github.com/Zuzu-Typ/PyGLM"
+arch="all"
+license="Zlib"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="py3-pytest"
+# Keep in sync with project's submodules.
+_glm_gitrev=fcda03b54596adda543bcdccc6c1879e380c86a7
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Zuzu-Typ/PyGLM/archive/refs/tags/$pkgver.tar.gz
+ https://github.com/Zuzu-Typ/glm/archive/$_glm_gitrev/glm-$_glm_gitrev.tar.gz
+"
+builddir="$srcdir/PyGLM-$pkgver/"
+
+prepare() {
+ default_prepare
+
+ rm -r glm
+ ln -s "$srcdir/glm-$_glm_gitrev" glm
+}
+
+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="
+1b7cc0f7986fbb8bd17963675997762b1dbbf7769c2659bfe6c2e110da0d30e93b36e998aad4946abdeebf38555e85a31dfb819c2b9c3d64a6dc3326a8c8bc5a py3-pyglm-2.7.1.tar.gz
+ae9f6cb040700f98be6cbadc6f4bec1ac22e1fe704c7e36781aaa1db155e70fa9bd280e8ddd14bf941a02d0ed7587965a7607f3ad6699655a15131d440141f41 glm-fcda03b54596adda543bcdccc6c1879e380c86a7.tar.gz
+"
diff --git a/testing/py3-pygpgme/APKBUILD b/testing/py3-pygpgme/APKBUILD
index 736777f8fce..45a009f0a6d 100644
--- a/testing/py3-pygpgme/APKBUILD
+++ b/testing/py3-pygpgme/APKBUILD
@@ -3,14 +3,17 @@
pkgname=py3-pygpgme
_pkgname=pygpgme
pkgver=0.3.1
-pkgrel=3
+pkgrel=8
pkgdesc="PyGPGME is a Python module that lets you sign, verify, encrypt and decrypt messages using the OpenPGP format."
url="https://github.com/rshk/pygpgme/"
arch="all"
license="LGPL-2.1-or-later"
depends="python3"
-makedepends="gpgme-dev python3-dev"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/rshk/pygpgme/archive/v$pkgver.tar.gz"
+makedepends="gpgme-dev python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/rshk/pygpgme/archive/v$pkgver.tar.gz
+ py3.11.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
build() {
@@ -18,7 +21,10 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="f3c9de92956917f5e55c3a8d49be354d845e4f99b3a5173601841afcdd7b9ad270be0dea50468425c517328ceba46f1252685587bcf011287d1ed3a07b7ba8ab pygpgme-0.3.1.tar.gz"
+sha512sums="
+f3c9de92956917f5e55c3a8d49be354d845e4f99b3a5173601841afcdd7b9ad270be0dea50468425c517328ceba46f1252685587bcf011287d1ed3a07b7ba8ab pygpgme-0.3.1.tar.gz
+6e34c4b3001348cc0763f1ad2174244518f36a209bcb7ecdfbf271b9ee9b64014ad1726ce7467ec650f17f05f45730c88241e7a838dd080fc3c8f99209201b06 py3.11.patch
+"
diff --git a/testing/py3-pygpgme/py3.11.patch b/testing/py3-pygpgme/py3.11.patch
new file mode 100644
index 00000000000..3471d050109
--- /dev/null
+++ b/testing/py3-pygpgme/py3.11.patch
@@ -0,0 +1,13 @@
+diff --git a/src/gpgme.c b/src/gpgme.c
+index 7b80c95..8bfe3e9 100644
+--- a/src/gpgme.c
++++ b/src/gpgme.c
+@@ -46,7 +46,7 @@ create_module(void)
+
+ #define INIT_TYPE(type) \
+ if (!Py_TYPE(&type)) \
+- Py_TYPE(&type) = &PyType_Type; \
++ Py_SET_TYPE(&type, &PyType_Type); \
+ if (!type.tp_alloc) \
+ type.tp_alloc = PyType_GenericAlloc; \
+ if (!type.tp_new) \
diff --git a/testing/py3-pygtail/APKBUILD b/testing/py3-pygtail/APKBUILD
index 88fc0f52f06..61f7de9f0c0 100644
--- a/testing/py3-pygtail/APKBUILD
+++ b/testing/py3-pygtail/APKBUILD
@@ -2,23 +2,29 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-pygtail
_pkgname=pygtail
-pkgver=0.11.1
-pkgrel=1
+pkgver=0.14.0
+pkgrel=3
pkgdesc="Reads log file lines that have not been read"
url="https://github.com/bgreenlee/pygtail"
arch="noarch"
license="GPL-2.0-or-later"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="93954e1aa08ba4e889666bd6cf648e944436266a5b97a8ae63c0f1eab36f64c2cd360e20a799f2c314c723b44df5271bd62d17258be87fffd550d595616b6364 pygtail-0.11.1.tar.gz"
+sha512sums="
+7446c622ec17a5051a0d3caa9cb00c37a261ef735f434c52b6088ed22b7add4e58c94d4b7006549468067f8c032046b79406e2d5899de85e314e90b23ce739c2 pygtail-0.14.0.tar.gz
+"
diff --git a/testing/py3-pyinstrument/APKBUILD b/testing/py3-pyinstrument/APKBUILD
new file mode 100644
index 00000000000..50f4f80c1ab
--- /dev/null
+++ b/testing/py3-pyinstrument/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-pyinstrument
+pkgver=4.6.2
+pkgrel=1
+pkgdesc="Call stack profiler for Python"
+url="https://github.com/joerick/pyinstrument"
+arch="all"
+license="BSD-3-Clause"
+makedepends="py3-gpep517 py3-setuptools py3-wheel python3-dev"
+checkdepends="py3-pytest py3-flaky py3-trio py3-greenlet"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/joerick/pyinstrument/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/pyinstrument-$pkgver"
+options="!check" # currently not working
+
+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="
+da23988e6c68876cb8920ce284326f349425303ae36718c5c479b72b5f5ca5d48ced1674bcab71851f60e81a0985bb668bfa89a8b96cc20a1faa0dd7e623ec50 py3-pyinstrument-4.6.2.tar.gz
+"
diff --git a/testing/py3-pyisbn/APKBUILD b/testing/py3-pyisbn/APKBUILD
index f45fa33ebe4..897e03ddd8b 100644
--- a/testing/py3-pyisbn/APKBUILD
+++ b/testing/py3-pyisbn/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-pyisbn
_pkgname=pyisbn
-pkgver=1.2.1
-pkgrel=1
+pkgver=1.3.1
+pkgrel=2
pkgdesc="A module for working with 10- and 13-digit ISBNs"
url="https://github.com/JNRowe/pyisbn"
arch="noarch"
license="GPL-3.0-or-later"
depends="python3"
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
@@ -21,7 +22,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="4ba93722350803cde1bf969421864e27f4aaf562021e7a4400b182aa4c503ce4e33e5e328aabaef48071704d9533fc42cb95d69e4a5e817ea864149affe6ec85 pyisbn-1.2.1.tar.gz"
+sha512sums="
+3abb14ebcd6d1feaf892fcfdd6da19a3010b1d80c898e5a3ff871e759e7833b09a988ff1b7a9f46cbfdd2eb44172c7ddd0a499b9e40eea4fed89df3d467bf0c1 pyisbn-1.3.1.tar.gz
+"
diff --git a/testing/py3-pyjokes/APKBUILD b/testing/py3-pyjokes/APKBUILD
deleted file mode 100644
index 2a91ff5eb9b..00000000000
--- a/testing/py3-pyjokes/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pyjokes
-pkgver=0.6.0
-pkgrel=1
-pkgdesc="One line jokes for programmers (jokes as a service)"
-url="https://pyjok.es/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/p/pyjokes/pyjokes-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/pyjokes-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9622caffe060cbc498f9c6230969e4c239477a3fb59c6f1b9d3897ae1f2064b20e10accae5a74c35012f7024451dc3154e1e5039ef46fd8e13c6dc9c9f8622ae pyjokes-0.6.0.tar.gz"
diff --git a/testing/py3-pykwalify/APKBUILD b/testing/py3-pykwalify/APKBUILD
deleted file mode 100644
index b10ba6440b1..00000000000
--- a/testing/py3-pykwalify/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-pykwalify
-_pkgname=pykwalify
-pkgver=1.7.0
-pkgrel=1
-pkgdesc="Python YAML/JSON schema validation library"
-url="https://github.com/Grokzen/pykwalify"
-arch="noarch"
-license="MIT"
-depends="python3 py3-setuptools py3-docopt py3-ruamel.yaml py3-dateutil"
-checkdepends="py3-pytest py3-testfixtures"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/Grokzen/pykwalify/archive/$pkgver.tar.gz
- fix-duplicate-key-error.patch
- fix-unexpected-keyword-arguments.patch"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
-}
-
-sha512sums="484922ba921462aaf0607811e0f36c9cae6f67682d8d0c408066381d21a247fb156c17b8440da207d58e127a4a8adb85b18e63fe3b4142368bfd21fa644a7bc7 pykwalify-1.7.0.tar.gz
-3c8b5e9e37b78da937193e49f7be5ab95878cc4319992b74efb845286666eccea792e15eb47d8c144d22ef3f646585e4516735dd52b50a2c4af5f90abe6bc9b5 fix-duplicate-key-error.patch
-e6a72aef8343c6af40cdb9d9748c1bc3fb0d34fc20822cec498291ad7d942d63cf3a498e406e194770aaed6fd423f308c348d8723d4136baa05e7af5606f6e02 fix-unexpected-keyword-arguments.patch"
diff --git a/testing/py3-pykwalify/fix-duplicate-key-error.patch b/testing/py3-pykwalify/fix-duplicate-key-error.patch
deleted file mode 100644
index b4b9f10bac6..00000000000
--- a/testing/py3-pykwalify/fix-duplicate-key-error.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 744816a146e567a4c1efd30e874ff76134754fe2 Mon Sep 17 00:00:00 2001
-From: Grokzen <Grokzen@gmail.com>
-Date: Wed, 9 Oct 2019 23:25:59 +0200
-Subject: [PATCH] Fix broken test where errors data was wrong and duplicated
-
----
- tests/files/fail/test_type_float.yaml | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/tests/files/fail/test_type_float.yaml b/tests/files/fail/test_type_float.yaml
-index bef14b8..972167d 100644
---- a/tests/files/fail/test_type_float.yaml
-+++ b/tests/files/fail/test_type_float.yaml
-@@ -16,8 +16,6 @@ schema:
- type: seq
- seq:
- - type: float
--errors:
-- - "Value 'foo' is not of type 'float'. Path: '/0'"
- errors:
- - "Value 'True' is not of type 'float'. Path: '/1'"
- - "Value 'foo' is not of type 'float'. Path: '/0'"
diff --git a/testing/py3-pykwalify/fix-unexpected-keyword-arguments.patch b/testing/py3-pykwalify/fix-unexpected-keyword-arguments.patch
deleted file mode 100644
index 89c1304f56c..00000000000
--- a/testing/py3-pykwalify/fix-unexpected-keyword-arguments.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 49052dd010637e1403c8b2b1c3710926acd2b1a0 Mon Sep 17 00:00:00 2001
-From: Grokzen <Grokzen@gmail.com>
-Date: Wed, 9 Oct 2019 23:21:09 +0200
-Subject: [PATCH] Fixed bug in test_multi_file_support where pytest would raise
- issue with a option that is no longer supported
-
----
- tests/test_core.py | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/test_core.py b/tests/test_core.py
-index 6fcd81e..bd974df 100644
---- a/tests/test_core.py
-+++ b/tests/test_core.py
-@@ -336,7 +336,9 @@ def test_multi_file_support(self):
- compare(c.root_rule.schema_str, passing_test[2], prefix="Parsed rules is not correct, something have changed...")
-
- for failing_test in failing_tests:
-- with pytest.raises(failing_test[2], message="Test files: {0} : {1}".format(", ".join(failing_test[0]), failing_test[1])):
-+ print("Test files: {0} : {1}".format(", ".join(failing_test[0]), failing_test[1]))
-+
-+ with pytest.raises(failing_test[2]):
- c = Core(schema_files=failing_test[0], source_file=failing_test[1])
- c.validate()
-
diff --git a/testing/py3-pylev/APKBUILD b/testing/py3-pylev/APKBUILD
deleted file mode 100644
index 59cbdb01669..00000000000
--- a/testing/py3-pylev/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-pylev
-_realname=pylev
-pkgver=1.3.0
-pkgrel=1
-pkgdesc="Pure Python3 Levenshtein implementation"
-options="!check" # No tests on pypi, no tags on github
-url="https://github.com/toastdriven/pylev"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="096831d55dda5606544bce03c18542b0331c38feb538dd37c67cc2e9b2111d381632669ee2dcd3d7dc9a87d284892371ded1c322d0edc61f529152c282556f4c pylev-1.3.0.tar.gz"
diff --git a/testing/py3-pylint/APKBUILD b/testing/py3-pylint/APKBUILD
deleted file mode 100644
index 24167ca6693..00000000000
--- a/testing/py3-pylint/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-pylint
-pkgver=2.5.2
-pkgrel=1
-pkgdesc="Analyzes Python code looking for bugs and signs of poor quality"
-options="!check" # 1 test test_by_module_statement_value fails
-url="https://github.com/PyCQA/pylint"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="
- py3-astroid
- py3-isort
- py3-mccabe
- py3-setuptools
- py3-toml
- "
-checkdepends="
- mpdecimal
- py3-pytest
- py3-pytest-runner
- "
-source="https://files.pythonhosted.org/packages/source/p/pylint/pylint-$pkgver.tar.gz"
-builddir="$srcdir"/pylint-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="94debcf0a26ac61ce2e161180f300677279b7e251894c4b368ffe7e70e480f53e59475e1d84df7daf7d1bff5256f75d363fe415960986dee99e634fe95e6bd3c pylint-2.5.2.tar.gz"
diff --git a/testing/py3-pylru/APKBUILD b/testing/py3-pylru/APKBUILD
new file mode 100644
index 00000000000..9f36bf32927
--- /dev/null
+++ b/testing/py3-pylru/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=py3-pylru
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Least recently used (LRU) cache for Python"
+url="https://github.com/jlhutch/pylru"
+arch="noarch"
+license="GPL-2.0-or-later"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/jlhutch/pylru/archive/refs/tags/v$pkgver/pylru-$pkgver.tar.gz"
+builddir="$srcdir/pylru-$pkgver"
+options="!check" # no tests
+
+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="
+930a017431229cd02967e0aeb2ca8f456900e0bc90063b873e4d880fd52d4216d64da60220a5863984d3f9a8f6a6fcd6bad575fb2a0df45071e839cffcb0a5ba pylru-1.2.1.tar.gz
+"
diff --git a/testing/py3-pymaging-png/APKBUILD b/testing/py3-pymaging-png/APKBUILD
index d6cf12bfff1..6be22de819d 100644
--- a/testing/py3-pymaging-png/APKBUILD
+++ b/testing/py3-pymaging-png/APKBUILD
@@ -3,13 +3,14 @@ pkgname=py3-pymaging-png
_pkgname=pymaging-png
_commit=83d85c44e4b2342818e6c068065e031a9f81bb9f
pkgver=0.0.20130727
-pkgrel=4
+pkgrel=9
pkgdesc="PNG format support for pymaging"
url="https://github.com/ojii/pymaging-png"
arch="noarch"
license="MIT"
depends="python3 py3-pymaging"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/ojii/$_pkgname/archive/$_commit.tar.gz"
builddir="$srcdir"/$_pkgname-$_commit
@@ -25,7 +26,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="b0860355c66d30d026443f1a360ca639bfd953da2bf00cc2b25902294d23eb07c3dd94a6c08a588fab816a7b92395bf4b65bf7a78c397a4c4811224035f1cb92 py3-pymaging-png-0.0.20130727.tar.gz"
diff --git a/testing/py3-pymaging/APKBUILD b/testing/py3-pymaging/APKBUILD
index f4721b10e7f..7a634c14b83 100644
--- a/testing/py3-pymaging/APKBUILD
+++ b/testing/py3-pymaging/APKBUILD
@@ -3,13 +3,14 @@ pkgname=py3-pymaging
_pkgname=pymaging
_commit=596a08fce5664e58d6e8c96847393fbe987783f2
pkgver=0.0.20130908
-pkgrel=4
+pkgrel=9
pkgdesc="Pure Python imaging library"
url="https://github.com/ojii/pymaging"
arch="noarch"
license="BSD-3-Clause AND MIT"
depends="python3"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/ojii/$_pkgname/archive/$_commit.tar.gz"
builddir="$srcdir"/$_pkgname-$_commit
@@ -25,7 +26,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="757431eb53ee839ae8f341c5021b96a704a78434bb81f843de36c0b8274ca8de603ca5f04bf6e38a5dae39d42be2da05f03119235fe5ca5d34bd10fa30faa813 py3-pymaging-0.0.20130908.tar.gz"
diff --git a/testing/py3-pymata/APKBUILD b/testing/py3-pymata/APKBUILD
new file mode 100644
index 00000000000..34327d4331f
--- /dev/null
+++ b/testing/py3-pymata/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=py3-pymata
+pkgver=2.20
+pkgrel=3
+pkgdesc="A Python client class library for Interaction with Standard Firmata"
+url="https://github.com/MrYsLab/PyMata"
+arch="noarch"
+license="AGPL-3.0-or-later"
+depends="python3 py3-pyserial"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/P/PyMata/PyMata-$pkgver.tar.gz"
+builddir="$srcdir/PyMata-$pkgver"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+22ccfa550cebcfd61246af07c131cc70ea478e8cf1b98371bba79b2239af598b3d966e09edf2c511f3afe4aeb83b7ce72d427758f09e42b926a2273661fa043f PyMata-2.20.tar.gz
+"
diff --git a/testing/py3-pymata4/APKBUILD b/testing/py3-pymata4/APKBUILD
new file mode 100644
index 00000000000..0d1c1ae0e0c
--- /dev/null
+++ b/testing/py3-pymata4/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=py3-pymata4
+pkgver=1.15
+pkgrel=3
+pkgdesc="a Python Protocol Abstraction Library For Arduino Firmata"
+url="https://github.com/MrYsLab/pymata4"
+arch="noarch"
+license="AGPL-3.0-or-later"
+depends="python3 py3-pyserial"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/pymata4/pymata4-$pkgver.tar.gz"
+builddir="$srcdir/pymata4-$pkgver"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+f4e6d93abe0557f9275527dcf1e548f9bc4940f5ceec6acdd3127e137b48a94a865d8f1ba6afd51b3e0d8fdcb56eef6e43f5a4f1931d7d8422fee3e9192d7bc1 pymata4-1.15.tar.gz
+"
diff --git a/testing/py3-pymediainfo/APKBUILD b/testing/py3-pymediainfo/APKBUILD
deleted file mode 100644
index 56d4d1927a2..00000000000
--- a/testing/py3-pymediainfo/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Philipp Glaum <p@pglaum.de>
-# Maintainer: Philipp Glaum <p@pglaum.de>
-pkgname=py3-pymediainfo
-_pkgname=pymediainfo
-pkgver=4.2.1
-pkgrel=0
-pkgdesc="A Python wrapper for the mediainfo library."
-url="https://pypi.org/project/pymediainfo/"
-arch="noarch"
-license="MIT"
-depends="libmediainfo python3"
-checkdepends="py3-pytest py3-pytest-runner"
-makedepends="py3-setuptools py3-setuptools_scm"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="33343838312ce240a23fa3856d808bf4b1346a1c65ed99c0405664aceaf452df610144114c228ad43e525f7abc9609420071bc6960f92b68ed7abe5dae8764aa pymediainfo-4.2.1.tar.gz"
diff --git a/testing/py3-pymeeus/APKBUILD b/testing/py3-pymeeus/APKBUILD
deleted file mode 100644
index f81197a49f8..00000000000
--- a/testing/py3-pymeeus/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pymeeus
-pkgver=0.3.7
-pkgrel=1
-pkgdesc="ython implementation of Jean Meeus astronomical routines"
-url="https://github.com/architest/pymeeus"
-arch="noarch"
-license="LGPL-3.0-or-later"
-depends="python3 py3-atomicwrites py3-attrs py3-funcsigs py3-more-itertools py3-pathlib2 py3-pluggy py3-py py3-six"
-makedepends="py3-setuptools"
-checkdepends="py3-coverage py3-flake8 py3-mccabe py3-pycodestyle py3-pyflakes py3-pytest py3-pytest-cov"
-source="https://pypi.python.org/packages/source/P/PyMeeus/PyMeeus-$pkgver.tar.gz"
-builddir="$srcdir/PyMeeus-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="834fd3329437827a65a653b5bde9070e049a7932cac3ce06edfdfbd8efd6649b96de9ce46c032b18a7413bcf30d012f21857442e9dd2cf1f0ef23434682cf5e0 PyMeeus-0.3.7.tar.gz"
diff --git a/testing/py3-pymeta3/APKBUILD b/testing/py3-pymeta3/APKBUILD
new file mode 100644
index 00000000000..f7f5ace3ccb
--- /dev/null
+++ b/testing/py3-pymeta3/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-pymeta3
+pkgver=0.5.1
+pkgrel=5
+pkgdesc="general object-oriented pattern matcher for Python 3"
+url="https://github.com/wbond/pymeta3"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-setuptools
+ "
+_pyname="PyMeta3"
+_pypiprefix="${_pyname%${_pyname#?}}"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # No tests provided
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+sha512sums="3a44661ae550cbb56fb0397af835e3a12ac81243d4a2f1ac3d9d713a3955cb276441e112e7cd75beb7ebd0c4bfa03014ec8b625750dffeec891b5b7802b72575 PyMeta3-0.5.1.tar.gz"
diff --git a/testing/py3-pymsgbox/APKBUILD b/testing/py3-pymsgbox/APKBUILD
new file mode 100644
index 00000000000..9206e134bdd
--- /dev/null
+++ b/testing/py3-pymsgbox/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer:
+pkgname=py3-pymsgbox
+pkgver=1.0.9
+# no actual tags
+_gitrev=ad76bd85a9cd2506a5417b82408c82ed60585421
+pkgrel=4
+pkgdesc="Simple, cross-platform, pure Python module to display message boxes, and just message boxes"
+url="https://github.com/asweigart/PyMsgBox"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="xvfb-run"
+subpackages="$pkgname-pyc"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/asweigart/PyMsgBox/archive/$_gitrev.tar.gz"
+builddir="$srcdir/PyMsgBox-$_gitrev"
+options="!check" # circular with pyautogui
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD/src" \
+ xvfb-run -a \
+ python3 tests/test_pymsgbox.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+c2cc71d098f9498d434648aad70bbe1c718868d778decd3666092e8c4f9f1384f4d22bc1e222639a37be8fd7b802de38fec2832714fd50b3f24a7107232637fd py3-pymsgbox-ad76bd85a9cd2506a5417b82408c82ed60585421.tar.gz
+"
diff --git a/testing/py3-pymsteams/APKBUILD b/testing/py3-pymsteams/APKBUILD
new file mode 100644
index 00000000000..770b1afa288
--- /dev/null
+++ b/testing/py3-pymsteams/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=py3-pymsteams
+pkgver=0.2.2
+pkgrel=3
+pkgdesc="Format messages and post to Microsoft Teams."
+url="https://github.com/rveachkc/pymsteams"
+arch="noarch"
+license="Apache-2.0"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-requests py3-py py3-pluggy"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rveachkc/pymsteams/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir"/${pkgname/py3-/}-$pkgver
+# httpstat.us is down
+options="!check"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ export MS_TEAMS_WEBHOOK="https://localhost"
+ python3 -m pytest -v -k "not test_message_size"
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+a15ae179f81214c27a279e728b7e716261017b9d27417efcb7d83fe64f21e56aca03b34ba31b1ebcaac2a1dac623065706ac69c679c28472f90ed7dae05b1b98 py3-pymsteams-0.2.2.tar.gz
+"
diff --git a/testing/py3-pymysql/APKBUILD b/testing/py3-pymysql/APKBUILD
deleted file mode 100644
index 92df8e6a726..00000000000
--- a/testing/py3-pymysql/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=py3-pymysql
-_pkgname=PyMySQL
-pkgver=0.9.3
-pkgrel=1
-pkgdesc="Pure Python MySQL Client"
-url="https://pypi.python.org/pypi/PyMySQL"
-arch="noarch"
-license="MIT"
-options="!check" #require mysql for tests
-makedepends="py3-setuptools"
-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-pymysql" # Backwards compatibility
-provides="py-pymysql=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2056bc4aca7a600ca50214b399edc6f3068b288c426aecb115db148f645b0ec7e9a1a7134cf67f39d4820ea59a925dc1ce3ed0e383fb5e16e0651e87449824f9 py3-pymysql-0.9.3.tar.gz"
diff --git a/testing/py3-pynest2d/APKBUILD b/testing/py3-pynest2d/APKBUILD
new file mode 100644
index 00000000000..357a1c3ff6d
--- /dev/null
+++ b/testing/py3-pynest2d/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=py3-pynest2d
+pkgver=5.2.2
+pkgrel=4
+pkgdesc="Python bindings for libnest2d"
+url="https://github.com/Ultimaker/pynest2d"
+arch="all"
+license="LGPL-3.0-or-later"
+makedepends="samurai cmake libnest2d-dev clipper-dev py3-sip nlopt-dev boost-dev python3-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/pynest2d/archive/refs/tags/$pkgver.tar.gz
+ cmake.patch
+ cmake-helpers.patch
+ pyproject.patch"
+builddir="$srcdir/pynest2d-$pkgver"
+options="!check" # doesn't seem like tests are packaged anymore
+
+prepare() {
+ mv ./python ./src
+ default_prepare
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=Release \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+f5d701e431c81f8d2da7b14ca5677d3303064cf7910e80d289d7ff8fe99117fb9c470242f25f21fa8e1f064c63accf5349f4956981e316b09b14342223f79b61 py3-pynest2d-5.2.2.tar.gz
+c8133d221a2fd8ed5fb32933a69f992dab2e83cdb9db30dcb715ebdfe6d403be3e94df393a921f506b63ef9d8b30a107f26b57cd39810faa9bee461afe5e1afd cmake.patch
+dbf6609a21e39ae87fa89f2faf9c98a011f287cb383c5b74f92f41e3a350b487e69643c94110f7fcc25e9e25921a698cc20d9ee021d36ff908d03c0d5ca88a46 cmake-helpers.patch
+f1b710509d97b5a2a4d021747e73884d27ae00fd93a04c90be01f123cdcc59be4757b4a73dff9c9921b7794551e531cf6729e4211144c60294d107b92a928b51 pyproject.patch
+"
diff --git a/testing/py3-pynest2d/cmake-helpers.patch b/testing/py3-pynest2d/cmake-helpers.patch
new file mode 100644
index 00000000000..288df071fb4
--- /dev/null
+++ b/testing/py3-pynest2d/cmake-helpers.patch
@@ -0,0 +1,253 @@
+--- /dev/null
++++ ./cmake/CMakeBuilder.py
+@@ -0,0 +1,13 @@
++from sipbuild import SetuptoolsBuilder
++
++
++class CMakeBuilder(SetuptoolsBuilder):
++ def __init__(self, project, **kwargs):
++ print("Using the CMake builder")
++ super().__init__(project, **kwargs)
++
++ def build(self):
++ """ Only Generate the source files """
++ print("Generating the source files")
++ self._generate_bindings()
++ self._generate_scripts()
+\ No newline at end of file
+--- /dev/null
++++ ./cmake/FindSIP.py
+@@ -0,0 +1,57 @@
++# -*- coding: utf-8 -*-
++#
++# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
++# All rights reserved.
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are met:
++# * Redistributions of source code must retain the above copyright
++# notice, this list of conditions and the following disclaimer.
++# * Redistributions in 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.
++# * Neither the name of the Simon Edwards <simon@simonzone.com> 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 Simon Edwards <simon@simonzone.com> ''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 Simon Edwards <simon@simonzone.com> 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.
++#
++# FindSIP.py
++# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
++# Redistribution and use is allowed according to the terms of the BSD license.
++# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
++
++try:
++ import sipbuild
++
++ print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION)
++ print("sip_version_num:%d" % sipbuild.version.SIP_VERSION)
++ print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR)
++
++ from distutils.sysconfig import get_python_lib
++ python_modules_dir = get_python_lib(plat_specific=1)
++ print("default_sip_dir:%s" % python_modules_dir)
++except ImportError: # Code for SIP v4
++ import sipconfig
++
++ sipcfg = sipconfig.Configuration()
++ print("sip_version:%06.0x" % sipcfg.sip_version)
++ print("sip_version_num:%d" % sipcfg.sip_version)
++ print("sip_version_str:%s" % sipcfg.sip_version_str)
++ print("sip_bin:%s" % sipcfg.sip_bin)
++ print("default_sip_dir:%s" % sipcfg.default_sip_dir)
++ print("sip_inc_dir:%s" % sipcfg.sip_inc_dir)
++ # SIP 4.19.10+ has new sipcfg.sip_module_dir
++ if hasattr(sipcfg, "sip_module_dir"):
++ print("sip_module_dir:%s" % sipcfg.sip_module_dir)
++ else:
++ print("sip_module_dir:%s" % sipcfg.sip_mod_dir)
+--- /dev/null
++++ ./cmake/FindSIP.cmake
+@@ -0,0 +1,65 @@
++# Find SIP
++# ~~~~~~~~
++#
++# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php
++#
++# Find the installed version of SIP. FindSIP should be called after Python
++# has been found.
++#
++# This file defines the following variables:
++#
++# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number
++# suitable for comparison as a string.
++#
++# SIP_VERSION_STR - The version of SIP found as a human readable string.
++#
++# SIP_BINARY_PATH - Path and filename of the SIP command line executable.
++#
++# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file.
++#
++# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed
++# into.
++
++# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
++# Redistribution and use is allowed according to the terms of the BSD license.
++# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
++
++
++
++IF(SIP_VERSION OR SIP_BUILD_EXECUTABLE)
++ # Already in cache, be silent
++ SET(SIP_FOUND TRUE)
++ELSE()
++
++ FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH)
++
++ EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config)
++ IF(sip_config)
++ STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config})
++ STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config})
++ IF(${SIP_VERSION_STR} VERSION_LESS 5)
++ STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config})
++ STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config})
++ ELSE(${SIP_VERSION_STR} VERSION_LESS 5)
++ FIND_PROGRAM(SIP_BUILD_EXECUTABLE sip-build)
++ ENDIF(${SIP_VERSION_STR} VERSION_LESS 5)
++ SET(SIP_FOUND TRUE)
++ ENDIF(sip_config)
++
++ IF(SIP_FOUND)
++ IF(NOT SIP_FIND_QUIETLY)
++ MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}")
++ ENDIF(NOT SIP_FIND_QUIETLY)
++ ELSE(SIP_FOUND)
++ IF(SIP_FIND_REQUIRED)
++ MESSAGE(FATAL_ERROR "Could not find SIP")
++ ENDIF(SIP_FIND_REQUIRED)
++ ENDIF(SIP_FOUND)
++
++ENDIF()
++
++include(${CMAKE_SOURCE_DIR}/cmake/SIPMacros.cmake)
++ADD_DEFINITIONS(-DSIP_VERSION=0x${SIP_VERSION})
+--- /dev/null
++++ ./cmake/SIPMacros.cmake
+@@ -0,0 +1,105 @@
++# Macros for SIP
++# ~~~~~~~~~~~~~~
++
++set(SIP_ARGS --pep484-pyi --no-protected-is-public)
++
++function(add_sip_module MODULE_TARGET)
++ if(NOT SIP_BUILD_EXECUTABLE)
++ set(SIP_BUILD_EXECUTABLE ${CMAKE_PREFIX_PATH}/Scripts/sip-build)
++ endif()
++
++ message(STATUS "SIP: Generating pyproject.toml")
++ configure_file(${CMAKE_SOURCE_DIR}/pyproject.toml.in ${CMAKE_CURRENT_BINARY_DIR}/pyproject.toml)
++ configure_file(${CMAKE_SOURCE_DIR}/cmake/CMakeBuilder.py ${CMAKE_CURRENT_BINARY_DIR}/CMakeBuilder.py)
++ if(WIN32)
++ set(ext .pyd)
++ set(env_path_sep ";")
++ else()
++ set(ext .so)
++ set(env_path_sep ":")
++ endif()
++
++ message(STATUS "SIP: Generating source files")
++ execute_process(
++ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS}
++ COMMAND_ECHO STDOUT
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
++ )
++ # This will generate the source-files during the configuration step in CMake. Needed to obtain the sources
++
++ # Touch the generated files (8 in total) to make them dirty and force them to rebuild
++ message(STATUS "SIP: Touching the source files")
++ set(_sip_output_files)
++ list(LENGTH SIP_FILES _no_outputfiles)
++ foreach(_concat_file_nr RANGE 0 ${_no_outputfiles})
++ if(${_concat_file_nr} LESS 8)
++ list(APPEND _sip_output_files "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/sip${MODULE_TARGET}part${_concat_file_nr}.cpp")
++ endif()
++ endforeach()
++
++ # Find the generated source files
++ message(STATUS "SIP: Collecting the generated source files")
++ file(GLOB sip_c "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.c")
++ file(GLOB sip_cpp "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.cpp")
++ file(GLOB sip_hdr "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/*.h")
++
++ # Add the user specified source files
++ message(STATUS "SIP: Collecting the user specified source files")
++ get_target_property(usr_src ${MODULE_TARGET} SOURCES)
++
++ # create the target library and link all the files (generated and user specified
++ message(STATUS "SIP: Linking the interface target against the shared library")
++ set(sip_sources "${sip_c}" "${sip_cpp}")
++ if(${usr_src})
++ list(APPEND sip_sources "${usr_src}")
++ endif()
++
++ if (BUILD_SHARED_LIBS)
++ add_library("sip_${MODULE_TARGET}" SHARED ${sip_sources})
++ else()
++ add_library("sip_${MODULE_TARGET}" STATIC ${sip_sources})
++ endif()
++
++ # Make sure that the library name of the target is the same as the MODULE_TARGET with the appropriate extension
++ target_link_libraries("sip_${MODULE_TARGET}" PRIVATE "${MODULE_TARGET}")
++ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES PREFIX "")
++ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES SUFFIX ${ext})
++ set_target_properties("sip_${MODULE_TARGET}" PROPERTIES OUTPUT_NAME "${MODULE_TARGET}")
++
++ # Add the custom command to (re-)generate the files and mark them as dirty. This allows the user to actually work
++ # on the sip definition files without having to reconfigure the complete project.
++ add_custom_command(
++ TARGET "sip_${MODULE_TARGET}"
++ COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTHONPATH}${env_path_sep}$ENV{PYTHONPATH}${env_path_sep}${CMAKE_CURRENT_BINARY_DIR}" ${SIP_BUILD_EXECUTABLE} ${SIP_ARGS}
++ COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files}
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
++ MAIN_DEPENDENCY ${MODULE_SIP}
++ DEPENDS ${sip_sources}
++ VERBATIM
++ )
++
++ set_target_properties("sip_${MODULE_TARGET}"
++ PROPERTIES
++ RESOURCE "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_TARGET}/${MODULE_TARGET}/${MODULE_TARGET}.pyi")
++endfunction()
++
++function(install_sip_module MODULE_TARGET)
++ if(DEFINED ARGV1)
++ set(_install_path ${ARGV1})
++ else()
++ if(DEFINED Python_SITEARCH)
++ set(_install_path ${Python_SITEARCH})
++ elseif(DEFINED Python_SITELIB)
++ set(_install_path ${Python_SITELIB})
++ else()
++ message(FATAL_ERROR "SIP: Specify the site-packages location")
++ endif()
++ endif()
++ message(STATUS "SIP: Installing Python module and PEP 484 file in ${_install_path}")
++ install(TARGETS "sip_${MODULE_TARGET}"
++ ARCHIVE DESTINATION ${_install_path}
++ LIBRARY DESTINATION ${_install_path}
++ RUNTIME DESTINATION ${_install_path}
++ RESOURCE DESTINATION ${_install_path}
++ )
++endfunction()
diff --git a/testing/py3-pynest2d/cmake.patch b/testing/py3-pynest2d/cmake.patch
new file mode 100644
index 00000000000..c2ac24e9d50
--- /dev/null
+++ b/testing/py3-pynest2d/cmake.patch
@@ -0,0 +1,34 @@
+--- ./CMakeLists.txt.orig
++++ ./CMakeLists.txt
+@@ -2,16 +2,25 @@
+ project(pynest2d)
+ cmake_minimum_required(VERSION 3.20)
+
+-find_package(nest2d REQUIRED)
+-find_package(cpython REQUIRED)
++list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+
+-find_package(standardprojectsettings REQUIRED)
+-find_package(sipbuildtool REQUIRED)
++find_package(Libnest2D REQUIRED)
+
++find_package(Python REQUIRED COMPONENTS Interpreter Development)
++find_package(SIP REQUIRED 6.5.0)
++
+ add_library(pynest2d INTERFACE)
+-use_threads(pynest2d)
+
+-target_link_libraries(pynest2d INTERFACE nest2d::nest2d cpython::cpython)
++target_include_directories(pynest2d
++ INTERFACE
++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
++ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/python/>
++ )
++
++find_package(Threads REQUIRED)
++find_package(Boost REQUIRED)
++target_link_libraries(pynest2d INTERFACE Libnest2D::libnest2d Python::Python Threads::Threads Boost::boost)
++
+ add_sip_module(pynest2d)
+ install_sip_module(pynest2d)
+
diff --git a/testing/py3-pynest2d/pyproject.patch b/testing/py3-pynest2d/pyproject.patch
new file mode 100644
index 00000000000..3c743898c6e
--- /dev/null
+++ b/testing/py3-pynest2d/pyproject.patch
@@ -0,0 +1,21 @@
+--- /dev/null
++++ ./pyproject.toml.in
+@@ -0,0 +1,17 @@
++[build-system]
++requires = ["sip >=6, <7"]
++build-backend = "sipbuild.api"
++
++[tool.sip.metadata]
++name = "pynest2d"
++
++[tool.sip.project]
++builder-factory = "CMakeBuilder"
++sip-files-dir = "${CMAKE_CURRENT_SOURCE_DIR}/src/"
++sip-include-dirs = ["CMAKE_CURRENT_SOURCE_DIR/src/"]
++build-dir = "${CMAKE_CURRENT_BINARY_DIR}/pynest2d/"
++
++[tool.sip.bindings.pynest2d]
++exceptions = true
++release-gil = true
++concatenate = 8
+\ No newline at end of file
diff --git a/testing/py3-pynvim/APKBUILD b/testing/py3-pynvim/APKBUILD
deleted file mode 100644
index 07c9a09405e..00000000000
--- a/testing/py3-pynvim/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="py3-pynvim"
-_pyname="pynvim"
-pkgver="0.4.1"
-pkgrel=0
-pkgdesc="python client and plugin host for Nvim"
-options="!check" # Tests fail on the builders
-url="https://github.com/neovim/pynvim"
-arch="noarch !aarch64 !s390x" # Arches where neovim is not available
-license="Apache-2.0"
-depends="neovim python3 py3-msgpack py3-greenlet"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-runner"
-source="$_pyname-$pkgver.tar.gz::https://github.com/neovim/$_pyname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="78cb343ad02603a0d1c8f56079b46a9d341d8808a19112e758e5299994fe12a433cd61a4dbbaf0d5ffe00c676bcff844a53e910093efb862ad48cc4b4326f7de pynvim-0.4.1.tar.gz"
diff --git a/testing/py3-pyowm/APKBUILD b/testing/py3-pyowm/APKBUILD
deleted file mode 100644
index 13ae6e721bb..00000000000
--- a/testing/py3-pyowm/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pyowm
-pkgver=2.10.0
-pkgrel=1
-pkgdesc="A Python wrapper around OpenWeatherMap web APIs"
-url="https://github.com/csparpa/pyowm"
-arch="noarch"
-license="MIT"
-depends="python3 py3-requests py3-geojson"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/pyowm/pyowm-$pkgver.tar.gz"
-options="!check" # PyPi package doesn't contain tests
-builddir="$srcdir/pyowm-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="49db933546e7d270e13c835e03c78d829463c7742fa8e87f2272346e0b4c734a2234c501dd2a3a1b4fea0ffab5c8869a8186ec03b8d68f60888fc3e1f8569864 pyowm-2.10.0.tar.gz"
diff --git a/testing/py3-pypandoc/APKBUILD b/testing/py3-pypandoc/APKBUILD
new file mode 100644
index 00000000000..40287133888
--- /dev/null
+++ b/testing/py3-pypandoc/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=py3-pypandoc
+pkgver=1.13
+pkgrel=0
+pkgdesc="Thin wrapper for pandoc"
+url="https://github.com/NicklasTegner/pypandoc"
+arch="aarch64 x86_64" # pandoc
+license="MIT"
+depends="python3 pandoc"
+makedepends="py3-gpep517 py3-poetry-core"
+options="!check" # missing pandoc-citeproc
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/pypandoc/pypandoc-$pkgver.tar.gz"
+builddir="$srcdir/pypandoc-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/pypandoc-*.whl
+}
+
+sha512sums="
+b4b39fc94dea3ad45f8f33cff9e291ea2a9aa52aece5e092e5fdded4b95a9bf8c7047744d7fd6ec03dc53044a7261033deeec648a7d5530026580fc18ababdeb pypandoc-1.13.tar.gz
+"
diff --git a/testing/py3-pyparted/APKBUILD b/testing/py3-pyparted/APKBUILD
index 53627e677fb..f1591305ca1 100644
--- a/testing/py3-pyparted/APKBUILD
+++ b/testing/py3-pyparted/APKBUILD
@@ -2,26 +2,50 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-pyparted
_pkgname=pyparted
-pkgver=3.11.6
-pkgrel=0
+pkgver=3.13.0
+pkgrel=1
pkgdesc="Python bindings for GNU parted (libparted)"
url="https://github.com/dcantrell/pyparted"
arch="all"
license="GPL-2.0-or-later"
-depends="python3"
-makedepends="python3-dev py3-setuptools parted-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/dcantrell/pyparted/archive/v$pkgver.tar.gz"
+makedepends="
+ parted-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ e2fsprogs
+ "
+subpackages="$pkgname-pyc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/dcantrell/pyparted/archive/v$pkgver.tar.gz
+ archlabels-armv8l.patch
+ "
builddir="$srcdir/$_pkgname-$pkgver"
replaces=py-pyparted # Backwards compatibility
provides=py-pyparted=$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 discover
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="8c3a86efb21c212a8f227ae324896552f45568b8facdd76729f5acf15bf7d691c1b9ab9e46885e4fa4e0c4c7d60314e2abfcbff212e5dc158d27ce716dbd50fa py3-pyparted-3.11.6.tar.gz"
+sha512sums="
+26819e28d73420937874f52fda03eb50ab1b136574ea9867a69d46ae4976d38c4f26a2697fa70597eed90dd78a5ea209bafcc3227a17a7a5d63cff6d107c2b11 py3-pyparted-3.13.0.tar.gz
+1b2e92b83df51e4c2fe44f67b3ea21839614ab4613d4c32b5875f9fbf364fd6c9c85fa2400b55b84d4f64435f98f8e22f93c1db9d882ed9658379b20fe76e0d8 archlabels-armv8l.patch
+"
diff --git a/testing/py3-pyparted/archlabels-armv8l.patch b/testing/py3-pyparted/archlabels-armv8l.patch
new file mode 100644
index 00000000000..2bb6f178d87
--- /dev/null
+++ b/testing/py3-pyparted/archlabels-armv8l.patch
@@ -0,0 +1,20 @@
+builders are armv8l (aarch64 32-bits)
+diff --git a/src/parted/__init__.py b/src/parted/__init__.py
+index 594e092..00be6f6 100644
+--- a/src/parted/__init__.py
++++ b/src/parted/__init__.py
+@@ -479,12 +479,12 @@ __archLabels = (
+ ("dasd", "s390x?$"),
+ (
+ "gpt",
+- "i[3-6]86$|x86_64$|ia64$|ppc(64|64le)?$|aarch64$|armv7l$|riscv(32|64)$|loongarch(32|64)$",
++ "i[3-6]86$|x86_64$|ia64$|ppc(64|64le)?$|aarch64$|armv7l$|armv8l$|riscv(32|64)$|loongarch(32|64)$",
+ ),
+ ("mac", "ppc(64)?$"),
+ (
+ "msdos",
+- "i[3-6]86$|x86_64$|s390x?$|alpha$|ia64$|ppc(64|64le)?$|aarch64$|mips64$|armv7l$|riscv(32|64)$|loongarch(32|64)$",
++ "i[3-6]86$|x86_64$|s390x?$|alpha$|ia64$|ppc(64|64le)?$|aarch64$|mips64$|armv7l$|armv8l$|riscv(32|64)$|loongarch(32|64)$",
+ ),
+ ("sun", "sparc(64)?$"),
+ )
diff --git a/testing/py3-pyperclip/APKBUILD b/testing/py3-pyperclip/APKBUILD
deleted file mode 100644
index 01e38c82dc1..00000000000
--- a/testing/py3-pyperclip/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=py3-pyperclip
-_pkgname=pyperclip
-pkgver=1.8.0
-pkgrel=0
-pkgdesc="Python module for copy and paste clipboard functions"
-url="https://github.com/asweigart/pyperclip"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/${_pkgname/-/_}-$pkgver
-options="!check" # bug in tests prevents them from even starting :-/
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- python3 setup.py test
-}
-sha512sums="ffc37f8cc9028aa1bb907b22b3d18adfd6080de1b3fe6ea2bf6f28ad6fedd96e09e5939fc5b8cef538415527cad8f13670b7c671fb1b2a3f1a2bd2cc078d3d56 py3-pyperclip-1.8.0.tar.gz"
diff --git a/testing/py3-pyphen/APKBUILD b/testing/py3-pyphen/APKBUILD
deleted file mode 100644
index 5efb1c5045c..00000000000
--- a/testing/py3-pyphen/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Stefan Wagner <stw@bit-strickerei.de>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-pyphen
-_pkgname=Pyphen
-pkgver=0.9.5
-pkgrel=4
-pkgdesc="python-based dictionary hyphenator library"
-url="https://www.pyphen.org"
-arch="noarch"
-license="GPL-2.0-or-later AND LGPL-2.1-or-later AND MPL-1.1"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/Kozea/Pyphen/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-pyphen" # Backwards compatibility
-provides="py-pyphen=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3 -v test.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="049a62b226e90e568c8f56e756f8fa6fbc74f3bc40d61af8eb05ff2d4404a7b29cef14d4f144d68ed2f2b11eb128491de64536240ba7b76a2d04010c76e10346 Pyphen-0.9.5.tar.gz"
diff --git a/testing/py3-pyproj/APKBUILD b/testing/py3-pyproj/APKBUILD
deleted file mode 100644
index 6f88d649053..00000000000
--- a/testing/py3-pyproj/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Russ Webber <russ@rw.id.au>
-# Maintainer: Russ Webber <russ@rw.id.au>
-pkgname=py3-pyproj
-_pkgname=pyproj
-pkgver=2.6.0
-pkgrel=0
-pkgdesc="Python interface to PROJ (cartographic projections and coordinate transformations library)."
-url="https://pyproj4.github.io/pyproj"
-arch="all"
-license="MIT"
-depends="python3"
-makedepends="python3-dev py3-setuptools proj-dev proj-util cython"
-checkdepends="py3-pytest py3-numpy py3-mock"
-
-source="https://github.com/pyproj4/pyproj/archive/v${pkgver}rel.tar.gz"
-builddir="$srcdir/$_pkgname-${pkgver}rel"
-
-case "$CARCH" in
-# blocked by py3-numpy
-mips*) options="!check";;
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- modulebuilddir=$(python3 -c 'import sys,sysconfig; print("build/lib.{}-{}.{}".format(sysconfig.get_platform(), *sys.version_info[:2]))')
- PYTHONPATH="$builddir/$modulebuilddir" make test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9f49e60ed927a73bb48f6776464f30a03419c5b27e0262091ab7db3b4eeb8e435a73b6c07c4e055f56ea43fbc2d8ddc13514a42c8e2d24569be4fbc5337ba7b4 v2.6.0rel.tar.gz"
diff --git a/testing/py3-pyramid-addons/APKBUILD b/testing/py3-pyramid-addons/APKBUILD
deleted file mode 100644
index f183587473e..00000000000
--- a/testing/py3-pyramid-addons/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-pyramid-addons
-_pkgname=pyramid_addons
-pkgver=0.20
-pkgrel=2
-pkgdesc="A pyramid plugin that provides extra functionality"
-options="!check" # No testsuite
-url="https://github.com/bboe/pyramid_addons"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3 py3-pyramid"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-pyramid-addons" # Backwards compatibility
-provides="py-pyramid-addons=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="82916783fa13fb077fbc6bd76ee194dccff49dfaa1714d35ed6bad8062886851056326e6733d6e418528f957ab96e0b568caad16f9139386c0f5668e56fa41f4 pyramid_addons-0.20.tar.gz"
diff --git a/testing/py3-pyramid-controllers/APKBUILD b/testing/py3-pyramid-controllers/APKBUILD
deleted file mode 100644
index 918c2c90b40..00000000000
--- a/testing/py3-pyramid-controllers/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-pyramid-controllers
-_pkgname=pyramid_controllers
-pkgver=0.3.22
-pkgrel=1
-pkgdesc="A pyramid plugin that provides de-centralized hierarchical object dispatch"
-url="http://github.com/cadithealth/pyramid_controllers"
-arch="noarch"
-license="MIT"
-depends="python3 py3-pyramid"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-pyramid-controllers" # Backwards compatibility
-provides="py-pyramid-controllers=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e2a6715d00ce871e61f193c4a9ce96c11a0ed515605aec27a83778af7c343bf890f38a79a367a3278628a73883806a1d15a8c773287425bd5e1011c57fb09531 pyramid_controllers-0.3.22.tar.gz"
diff --git a/testing/py3-pyramid-layout/APKBUILD b/testing/py3-pyramid-layout/APKBUILD
deleted file mode 100644
index 937d056f2f1..00000000000
--- a/testing/py3-pyramid-layout/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-pyramid-layout
-_pkgname=pyramid_layout
-pkgver=1.0
-pkgrel=1
-pkgdesc="A pyramid plugin that provides UI layout"
-options="!check" # Requires unpackaged 'pyramid_zcml'
-url="https://pypi.python.org/pypi/pyramid_layout"
-arch="noarch"
-license="BSD"
-depends="python3 py3-pyramid"
-makedepends="py3-setuptools"
-options="!check"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-pyramid-layout" # Backwards compatiblity
-provides="py-pyramid-layout=$pkgver-r$pkgrel" # Backwards compatiblity
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3cabb35cc0bb7a09f8b5b2ef439e689e3ab484bf73bb2664f4d250624dca601eada7204d894956bbc194a1da1977ded6d8d26c566f56fbde3c219adbfd7379be pyramid_layout-1.0.tar.gz"
diff --git a/testing/py3-pyramid/APKBUILD b/testing/py3-pyramid/APKBUILD
deleted file mode 100644
index 5562ce3e6e6..00000000000
--- a/testing/py3-pyramid/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-pyramid
-_pkgname=pyramid
-pkgver=1.10.4
-pkgrel=2
-pkgdesc="The Pyramid Web Framework"
-url="https://trypyramid.com/"
-arch="noarch"
-license="ZPL-2.1"
-depends="py3-webob py3-venusian py3-chameleon py3-zope-component
- py3-zope-deprecation py3-zope-configuration py3-translationstring"
-makedepends="py3-setuptools"
-checkdepends="py3-nose py3-webtest py3-coverage py3-virtualenv"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-pyramid" # Backwards compatibility
-provides="py-pyramid=$pkver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="24686ffccc7784eed8fbae1b0aeb2beb331b0403a4143f878eb0cfeacdd58d4ded7628edb784e01df6a230172ed0b3208f3b6e716983f1afc76796b66f742def pyramid-1.10.4.tar.gz"
diff --git a/testing/py3-pyrebase/APKBUILD b/testing/py3-pyrebase/APKBUILD
new file mode 100644
index 00000000000..1aa0d1d8779
--- /dev/null
+++ b/testing/py3-pyrebase/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-pyrebase
+_pkgname=Pyrebase
+pkgver=3.0.27
+pkgrel=4
+pkgdesc="simple python wrapper for the Firebase API"
+options="!check" # no test suite
+url="https://github.com/thisbejim/Pyrebase"
+arch="noarch"
+license="MIT"
+depends="python3 py3-pycryptodome py3-requests py3-six py3-oauth2client
+ py3-parsing py3-requests-toolbelt py3-python-jwt"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/P/$_pkgname/$_pkgname-$pkgver.tar.gz
+ drop-requirements.patch
+ "
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+49368b656e49eb74d2e690f916eb3a80f0670f5dfcbca0d9972fd7be993df2901a1fe03c70ef738a721a90ea23a49c5361c4fefe80d6f012af609da104506805 Pyrebase-3.0.27.tar.gz
+36fe10f58564995b09d8eced1a2e1b6db7e6c6ad24f3d8f34bbe31edeb331166b1ea11daf93d61c25886f7d5997cf3d4759502e989915aa5b5dceb010e1edd4c drop-requirements.patch
+"
diff --git a/testing/py3-pyrebase/drop-requirements.patch b/testing/py3-pyrebase/drop-requirements.patch
new file mode 100644
index 00000000000..af0563f7381
--- /dev/null
+++ b/testing/py3-pyrebase/drop-requirements.patch
@@ -0,0 +1,18 @@
+Author: Rejah Rehim <rejah@beaglesecurity.com>
+Summary: Fixes dependency compilation error
+
+--- a/setup.py
++++ b/setup.py
+@@ -15,12 +15,4 @@
+ ],
+ keywords='Firebase',
+ packages=find_packages(exclude=['tests']),
+- install_requires=[
+- 'requests==2.11.1',
+- 'gcloud==0.17.0',
+- 'oauth2client==3.0.0',
+- 'requests_toolbelt==0.7.0',
+- 'python_jwt==2.0.1',
+- 'pycryptodome==3.4.3'
+- ]
+ )
diff --git a/testing/py3-pyro4/APKBUILD b/testing/py3-pyro4/APKBUILD
deleted file mode 100644
index 3512aaeba43..00000000000
--- a/testing/py3-pyro4/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-pyro4
-_pyname=Pyro4
-pkgver=4.80
-pkgrel=0
-pkgdesc="Python remote objects"
-url="http://pyro4.readthedocs.io/"
-arch="noarch !s390x !mips !mips64" # Limited by py3-dill
-license="MIT"
-depends="py3-serpent"
-makedepends="python3 py3-setuptools"
-checkdepends="py3-msgpack py3-dill py3-cloudpickle"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir=$srcdir/$_pyname-$pkgver
-
-replaces="py-pyro4" # Backwards compatibility
-provides="py-pyro4=$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="8e41285674edbe5c8d5ac63e33406c5ff7b6366d5dd251a1755eff81611193278a473ed8b15f995bc0ba2775dc5d316eb6a3cafd63626b95820591ea3a0a92e3 Pyro4-4.80.tar.gz"
diff --git a/testing/py3-pyroma/APKBUILD b/testing/py3-pyroma/APKBUILD
index dc1f56a9b8c..7246b67e854 100644
--- a/testing/py3-pyroma/APKBUILD
+++ b/testing/py3-pyroma/APKBUILD
@@ -1,26 +1,39 @@
# Maintainer: Hristiyan Ivanov <hristiyan.d.ivanov@gmail.com>
pkgname=py3-pyroma
_pkgname=pyroma
-pkgver=2.6
+pkgver=4.2
pkgrel=0
-pkgdesc="Python project assessment tool."
+pkgdesc="Rate your Python packages package friendliness"
url="https://pypi.org/project/pyroma/"
arch="noarch"
license="MIT"
-makedepends="python3-dev py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/regebro/$_pkgname/archive/$pkgver.tar.gz"
+depends="py3-build
+ py3-docutils
+ py3-pygments
+ py3-requests
+ py3-setuptools
+ py3-trove-classifiers
+ "
+makedepends="py3-gpep517 py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/regebro/pyroma/archive/refs/tags/$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 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="9cbaf4bafc78c8b70948b0ee4233c8c254cd0e2eba2df247a7ecb50595896464cffef67b97208d7196d521bb4219ae9056f8da33c7776f354ea6cbada32363be py3-pyroma-2.6.tar.gz"
+sha512sums="
+6b1830d171674409cc16894233768db065ad8d1c8ebe1edeb49575dc9df37f99b6d82096a19b9c5d6aaf23df94e62f5df86919a78acca4fe718926db73670e26 py3-pyroma-4.2.tar.gz
+"
diff --git a/testing/py3-pyrss2gen/APKBUILD b/testing/py3-pyrss2gen/APKBUILD
deleted file mode 100644
index 72a09219a32..00000000000
--- a/testing/py3-pyrss2gen/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-pyrss2gen
-_pkgname=PyRSS2Gen
-pkgver=1.1
-pkgrel=3
-pkgdesc="RSS2 generator"
-url="http://dalkescientific.com/Python/PyRSS2Gen.html"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-pyrss2gen" # Backwards compatibility
-provides="py-pyrss2gen=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="23079bdd6a54c0c5f27f0ade81b8ac1a28031779b9952e2d2f16d5100fa0f58c1f6b0a3f02a5e2c7d2d0e309c369a5f518ebcafb77f17c3d2f639b997d13fbd4 PyRSS2Gen-1.1.tar.gz"
diff --git a/testing/py3-pyscreeze/APKBUILD b/testing/py3-pyscreeze/APKBUILD
new file mode 100644
index 00000000000..a0de05f9ca3
--- /dev/null
+++ b/testing/py3-pyscreeze/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer:
+pkgname=py3-pyscreeze
+pkgver=0.1.29
+# no actual tags
+_gitrev=2cf06466855260fb20982a813957e9452ce45c11
+pkgrel=2
+pkgdesc="Simple, cross-platform screenshot module for Python 2 and 3"
+url="https://github.com/asweigart/pyscreeze"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 py3-pillow py3-xlib scrot"
+makedepends="py3-setuptools"
+checkdepends="xvfb-run"
+subpackages="$pkgname-pyc"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/asweigart/pyscreeze/archive/$_gitrev.tar.gz"
+builddir="$srcdir/pyscreeze-$_gitrev"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD" \
+ xvfb-run -a \
+ python3 tests/test_pyscreeze.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+cedf02941a0c3ba7018bb732de3c11206a0a88badd0531e78d0a636abf53df8bea15497205954ed2ef9d66eeff15ea263b6d7e34f4f103fe6542010de931fa32 py3-pyscreeze-2cf06466855260fb20982a813957e9452ce45c11.tar.gz
+"
diff --git a/testing/py3-pysequoia/APKBUILD b/testing/py3-pysequoia/APKBUILD
new file mode 100644
index 00000000000..1de71e09aef
--- /dev/null
+++ b/testing/py3-pysequoia/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer:
+pkgname=py3-pysequoia
+pkgver=0.1.20
+pkgrel=2
+pkgdesc="Pythong bindings for the Sequoia PGP library"
+url="https://codeberg.org/wiktor/pysequoia"
+# rust-ring
+arch="all !s390x !ppc64le !riscv64"
+license="Apache-2.0"
+makedepends="
+ bzip2-dev
+ cargo
+ clang-libclang
+ gmp-dev
+ nettle-dev
+ openssl-dev
+ pcsc-lite-dev
+ py3-gpep517
+ py3-maturin
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/wiktor/pysequoia/archive/v$pkgver.tar.gz"
+builddir="$srcdir/pysequoia"
+options="net" # cargo
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --config-json '{"build-args": "--frozen"}' \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ cargo test
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1db48aa093420cc9733b122a96b813923e4e7ef040ddc8d79df1a1d0a2c6d26ffd33e9c56c4873df17720e374a377a4f294c0e8d0a134625b8daefc3bd74a9e2 py3-pysequoia-0.1.20.tar.gz
+"
diff --git a/testing/py3-pyserial/APKBUILD b/testing/py3-pyserial/APKBUILD
deleted file mode 100644
index 58a29a49b42..00000000000
--- a/testing/py3-pyserial/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-pyserial
-pkgver=3.4
-pkgrel=0
-pkgdesc="Multiplatform Serial Port Module for Python"
-url="https://github.com/pyserial/pyserial"
-arch="all"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="python3-dev"
-source="https://files.pythonhosted.org/packages/source/p/pyserial/pyserial-3.4.tar.gz"
-builddir="$srcdir/"pyserial-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 test/run_all_tests.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d71dffc330704e41caac6054adf192bee2f1c119691faf2ea93fe22e8e3ba000dc4a1434293f6f80d05a5577d85b96791f656e28d5c63fb0ce6a6605467a117f pyserial-3.4.tar.gz"
diff --git a/testing/py3-pysimplesoap/APKBUILD b/testing/py3-pysimplesoap/APKBUILD
index e49f4e40312..b5ef46bbd8f 100644
--- a/testing/py3-pysimplesoap/APKBUILD
+++ b/testing/py3-pysimplesoap/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-pysimplesoap
_pkgname=PySimpleSOAP
pkgver=1.16.2
-pkgrel=1
+pkgrel=6
pkgdesc="Simple SOAP library"
options="!check" # Tests only work on python2
url="https://github.com/pysimplesoap/pysimplesoap"
@@ -11,6 +11,7 @@ arch="noarch"
license="LGPL-3.0-or-later"
depends="python3"
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"
@@ -19,7 +20,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="179387328d81a08413820cd0ce6cb92fedc13cd8be4451c38bd70b7a4408555acd80ca25cdf2ddc5d5295bcd9346d646c65f93b36368a35f81399dd07eba0643 PySimpleSOAP-1.16.2.tar.gz"
diff --git a/testing/py3-pysonic/APKBUILD b/testing/py3-pysonic/APKBUILD
index c4c61733c34..9b64bff2c25 100644
--- a/testing/py3-pysonic/APKBUILD
+++ b/testing/py3-pysonic/APKBUILD
@@ -2,24 +2,29 @@
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=py3-pysonic
_pyname=py-sonic
-pkgver=0.7.7
-pkgrel=0
+pkgver=1.0.1
+pkgrel=1
pkgdesc="Python library to wrap the Subsonic REST API"
url="https://github.com/crustymonkey/py-sonic"
arch="noarch"
license="GPL-3.0-only"
options="!check" # no tests
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/$_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
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
}
-sha512sums="45731677ed34d238542f8f401d993e8227b86dd9024e5822cee27eadcee598bc3caf232d97ff970b250e38e5f41ce27884b2e4cba3f915b9764603fc7b45375d py-sonic-0.7.7.tar.gz"
+sha512sums="
+10fd65abea96fcadbfd73527c8d9d31cdf0e60ac6a22de64cea7987b22d8de6b54cb3e9cb2683370a1382965667c4bea49b375e774a5195e00344881d363a456 py-sonic-1.0.1.tar.gz
+"
diff --git a/testing/py3-pyspinel/APKBUILD b/testing/py3-pyspinel/APKBUILD
new file mode 100644
index 00000000000..8802090b529
--- /dev/null
+++ b/testing/py3-pyspinel/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-pyspinel
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="A Python interface to the OpenThread Network Co-Processor (NCP)"
+url="https://github.com/openthread/openthread"
+arch="noarch"
+license="Apache-2.0"
+depends="
+ py3-pyserial
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-installer
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/p/pyspinel/pyspinel-$pkgver.tar.gz"
+options="!check" # Broken
+builddir="$srcdir/pyspinel-$pkgver"
+
+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 discover
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+e5b128680b846263924bd306d419917f3e3dc6b2052adfdf6931dd18f6d1ddb18be033880874b4404d79fa0910b64ece7d9fdbda5c7ab4aed759ef1fc9f0f1a7 pyspinel-1.0.3.tar.gz
+"
diff --git a/testing/py3-pysrt/APKBUILD b/testing/py3-pysrt/APKBUILD
new file mode 100644
index 00000000000..dc738ac7d47
--- /dev/null
+++ b/testing/py3-pysrt/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-pysrt
+_pkgname=pysrt
+pkgver=1.1.2
+pkgrel=3
+pkgdesc="Python parser for SubRip (srt) files"
+url="https://github.com/byroot/pysrt"
+arch="noarch"
+license="GPL-3.0-only"
+depends="python3 py3-chardet"
+makedepends="py3-setuptools"
+checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/byroot/pysrt/archive/v$pkgver.tar.gz
+ assertEquals.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ nosetests
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0d6b3a7ce4c8733221bfb5c3e434233d1b221fedda3c145fafe124093f1f9090b99c175e79de386717ec5f8b564c62719f377651db95a8d3c382e2bf8dccb0a8 py3-pysrt-1.1.2.tar.gz
+0a1f74486e70488b236a5cfe4008c375adede8c8383016c39c660337e61c589ca5970e7a93e4514e43ed2162f2f1964171d706aa8c4b8854b0a1f90538f21673 assertEquals.patch
+"
diff --git a/testing/py3-pysrt/assertEquals.patch b/testing/py3-pysrt/assertEquals.patch
new file mode 100644
index 00000000000..16a7abfab96
--- /dev/null
+++ b/testing/py3-pysrt/assertEquals.patch
@@ -0,0 +1,49 @@
+diff --git a/tests/test_srtfile.py b/tests/test_srtfile.py
+index 819aa4d..b24e8ac 100644
+--- a/tests/test_srtfile.py
++++ b/tests/test_srtfile.py
+@@ -119,4 +119,4 @@ class TestSlice(unittest.TestCase):
+ def test_at(self):
+- self.assertEquals(len(self.file.at((0, 0, 31, 0))), 1)
+- self.assertEquals(len(self.file.at(seconds=31)), 1)
++ self.assertEqual(len(self.file.at((0, 0, 31, 0))), 1)
++ self.assertEqual(len(self.file.at(seconds=31)), 1)
+
+@@ -139,3 +139,3 @@ class TestText(unittest.TestCase):
+ ])
+- self.assertEquals(srt_file.text, 'Hello')
++ self.assertEqual(srt_file.text, 'Hello')
+
+@@ -146,3 +146,3 @@ class TestText(unittest.TestCase):
+ ])
+- self.assertEquals(srt_file.text, 'Hello\nWorld !')
++ self.assertEqual(srt_file.text, 'Hello\nWorld !')
+
+@@ -253,3 +253,3 @@ class TestIntegration(unittest.TestCase):
+ items = pysrt.open(os.path.join(self.base_path, 'no-indexes.srt'))
+- self.assertEquals(len(items), 7)
++ self.assertEqual(len(items), 7)
+
+diff --git a/tests/test_srtitem.py b/tests/test_srtitem.py
+index f4a6f2f..9d29538 100644
+--- a/tests/test_srtitem.py
++++ b/tests/test_srtitem.py
+@@ -199,4 +199,4 @@ class TestSerialAndParsing(unittest.TestCase):
+ item = SubRipItem.from_string(self.string_index)
+- self.assertEquals(item.index, 'foo')
+- self.assertEquals(item.text, 'Hello !')
++ self.assertEqual(item.index, 'foo')
++ self.assertEqual(item.text, 'Hello !')
+
+@@ -204,4 +204,4 @@ class TestSerialAndParsing(unittest.TestCase):
+ item = SubRipItem.from_string(self.no_index)
+- self.assertEquals(item.index, None)
+- self.assertEquals(item.text, 'Hello world !')
++ self.assertEqual(item.index, None)
++ self.assertEqual(item.text, 'Hello world !')
+
+@@ -209,3 +209,3 @@ class TestSerialAndParsing(unittest.TestCase):
+ item = SubRipItem.from_string(self.junk_after_timestamp)
+- self.assertEquals(item, self.item)
++ self.assertEqual(item, self.item)
+
diff --git a/testing/py3-pystache/APKBUILD b/testing/py3-pystache/APKBUILD
index 5e20ee39963..b0355da87b4 100644
--- a/testing/py3-pystache/APKBUILD
+++ b/testing/py3-pystache/APKBUILD
@@ -4,34 +4,39 @@
# Maintainer: Paul Kilar <pkilar@gmail.com>
pkgname=py3-pystache
_realname=pystache
-pkgver=0.5.4
-pkgrel=3
-pkgdesc="Pystache is a Python implementation of Mustache."
-url="https://pypi.python.org/pypi/pystache"
+pkgver=0.6.5
+pkgrel=1
+pkgdesc="Pystache is a Python implementation of Mustache"
+url="https://pypi.org/project/pystache"
arch="noarch"
license="MIT"
replaces="py-pystache" # For backwards compatibility
provides="py-pystache=$pkgver-r$pkgrel" # For backwards compatibility
-depends="py3-setuptools"
+depends="python3"
+makedepends="py3-setuptools py3-gpep517 py3-installer py3-wheel py3-setuptools_scm"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
builddir="$srcdir"/$_realname-$pkgver
build() {
- python3 setup.py build
+ export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- # This package uses 2to3 to convert itself to Python 3 on the fly
- # So we need to jump through some hoops here
- local _py3ver=$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
- mkdir -p test_dir
- python3 setup.py install --root=test_dir
- PYTHONPATH=test_dir/usr/lib/python$_py3ver/site-packages test_dir/usr/bin/pystache-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="4ac325e1431f58f740218c9ec309821db82d89989ef4ca7fc3536dea0ef1c90e8e85ebaa7df27f33129ca02252b84bcbd7429a1ed999b496f62f174dd66502cb pystache-0.5.4.tar.gz"
-
+sha512sums="
+56b6e5ce6bc95aa2d5d77172d75d3fa2a37cf0927259f9136d77d9a73ce26384d72b3dd158577d247e1cbbe887916d7bc7982b6d8df2d1c0411dc33c93be6e1c pystache-0.6.5.tar.gz
+"
diff --git a/testing/py3-pytaglib/APKBUILD b/testing/py3-pytaglib/APKBUILD
new file mode 100644
index 00000000000..e109c66b9b0
--- /dev/null
+++ b/testing/py3-pytaglib/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: prspkt <prspkt@protonmail.com>
+# Maintainer: prspkt <prspkt@protonmail.com>
+pkgname=py3-pytaglib
+pkgver=1.5.0
+pkgrel=3
+pkgdesc="Python bindigs for the TagLib audio metadata library"
+url="https://taglib.org"
+arch="all"
+license="GPL-3.0-or-later"
+depends="python3"
+makedepends="cython py3-setuptools python3-dev taglib-dev"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/pytaglib/pytaglib-$pkgver.tar.gz"
+builddir="$srcdir/pytaglib-$pkgver"
+
+build() {
+ PYTAGLIB_CYTHONIZE=1 \
+ python3 setup.py build
+}
+
+check() {
+ export PYTHONPATH="$(echo $builddir/build/lib.*)"
+ py.test-3
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+8f4de0e8798830c7114b0cc3c1d15595fe00f61b53c8a5653a5eb38ba4caec23fbb538303ce92e101c614f60426eb172ed87bff4da6aaf75580bdee4765518d3 pytaglib-1.5.0.tar.gz
+"
diff --git a/testing/py3-pyte/APKBUILD b/testing/py3-pyte/APKBUILD
index 0458079e7fe..ff6f1505437 100644
--- a/testing/py3-pyte/APKBUILD
+++ b/testing/py3-pyte/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=py3-pyte
_pkgname=pyte
-pkgver=0.8.0
+pkgver=0.8.2
pkgrel=1
pkgdesc="Pyte is an in memory VTXXX-compatible terminal emulator"
url="https://github.com/selectel/pyte"
arch="noarch"
license="LGPL"
depends="py3-wcwidth"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-pytest-runner"
+subpackages="$pkgname-pyc"
source="pyte-$pkgver.tar.gz::https://github.com/selectel/pyte/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -22,8 +23,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-
-sha512sums="c488fd0a61c1dc34b27e12ed9ba1109bb2c331626c982da06e7540bdd168008cb5106a17c71e60e38c493f2dd9f21ba3cf05118928744dfa192d62e511b4c4e8 pyte-0.8.0.tar.gz"
+sha512sums="
+e9e79babb81b32eedbb4f0585ef07f8978e8592171834d9ce43a09f8a1d3156c00abb535e887ba9c83909bf1010210009b9a00ccbec7c2e430e5147120949743 pyte-0.8.2.tar.gz
+"
diff --git a/testing/py3-pytest-black/APKBUILD b/testing/py3-pytest-black/APKBUILD
deleted file mode 100644
index c088b37bdbe..00000000000
--- a/testing/py3-pytest-black/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pytest-black
-pkgver=0.3.9
-pkgrel=1
-pkgdesc="A pytest plugin to enable format checking with black"
-url="https://github.com/shopkeep/pytest-black"
-arch="noarch !mips !mips64 !s390x" # Blocked by black
-license="MIT"
-depends="python3 py3-pytest black py3-toml"
-makedepends="py3-setuptools py3-setuptools_scm"
-source="https://pypi.python.org/packages/source/p/pytest-black/pytest-black-$pkgver.tar.gz"
-builddir="$srcdir/pytest-black-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # Hack entry point by installing it
- python3 setup.py install --root="$PWD/tmp_install"
- PYTHONPATH="$PWD/tmp_install/usr/lib/python3.8/site-packages:$PYTHONPATH" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="66e73927f7e0720b6f42b2798f6e4fd3697fe69892ca1d6402040ba5f9520bcfadff3d441b3799b013e35d150974e0cd9b4b433663802cc0b04520cb6c72b741 pytest-black-0.3.9.tar.gz"
diff --git a/testing/py3-pytest-expect/APKBUILD b/testing/py3-pytest-expect/APKBUILD
index 44f6c2efe4c..817954cecf3 100644
--- a/testing/py3-pytest-expect/APKBUILD
+++ b/testing/py3-pytest-expect/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-pytest-expect
_pkgname=pytest-expect
pkgver=1.1.0
-pkgrel=4
+pkgrel=9
pkgdesc="A pytest plugin that stores test expectations"
options="!check" # no test suite
url="https://github.com/gsnedders/pytest-expect"
@@ -11,6 +11,7 @@ arch="noarch"
license="MIT"
depends="py3-pytest py3-u-msgpack"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$_pkgname-$pkgver.tar.gz::https://github.com/gsnedders/pytest-expect/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -19,7 +20,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="dbef3c394e974663179e91ca3cd6f096fdb055693b3e540dd0f27d6bf59a5c7298144598eb069f8f0acddd82ecce0bdce14ccd25728eb6a024d41895403e5144 pytest-expect-1.1.0.tar.gz"
diff --git a/testing/py3-pytest-flake8/APKBUILD b/testing/py3-pytest-flake8/APKBUILD
deleted file mode 100644
index ea1799655cf..00000000000
--- a/testing/py3-pytest-flake8/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-pytest-flake8
-pkgver=1.0.6
-pkgrel=0
-pkgdesc="pytest plugin for efficiently checking PEP8 compliance"
-url="https://pypi.org/project/pytest-flake8/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-pytest py3-flake8"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/p/pytest-flake8/pytest-flake8-$pkgver.tar.gz"
-builddir="$srcdir/pytest-flake8-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e1c76f4a170ca6fd94e27cf296b366a2a02f09e4216ded74b4724d8d19f50364caf245e4385b1cb644ead06b890df22400637773716190f673d3de254f5868f5 pytest-flake8-1.0.6.tar.gz"
diff --git a/testing/py3-pytest-helpers-namespace/APKBUILD b/testing/py3-pytest-helpers-namespace/APKBUILD
new file mode 100644
index 00000000000..eca89de8db5
--- /dev/null
+++ b/testing/py3-pytest-helpers-namespace/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-pytest-helpers-namespace
+pkgver=2021.12.29
+pkgrel=3
+pkgdesc="Pytest Helpers Namespace Plugin"
+url="https://pytest-helpers-namespace.readthedocs.io/"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-pytest"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools-declarative-requirements
+ py3-setuptools_scm
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/saltstack/pytest-helpers-namespace/archive/refs/tags/v$pkgver/py3-pytest-helpers-namespace-$pkgver.tar.gz"
+builddir="$srcdir/pytest-helpers-namespace-$pkgver"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+82c231ff11a36fce7b16a0ceea51c9306f7e05ca3f9e8cc7cc1c77ac9822f974d1ac893d2bf9b7154bf9593a529193daa041ccaaced6fdd9e38ba4f794f161b0 py3-pytest-helpers-namespace-2021.12.29.tar.gz
+"
diff --git a/testing/py3-pytest-html/APKBUILD b/testing/py3-pytest-html/APKBUILD
new file mode 100644
index 00000000000..afdbef226e5
--- /dev/null
+++ b/testing/py3-pytest-html/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-pytest-html
+pkgver=4.1.1
+pkgrel=1
+pkgdesc="pytest plugin for generating HTML reports"
+url="https://github.com/pytest-dev/pytest-html"
+arch="noarch"
+license="MPL-2.0"
+depends="
+ py3-jinja2
+ py3-pytest
+ py3-pytest-metadata
+ "
+makedepends="
+ npm
+ py3-gpep517
+ py3-hatch-vcs
+ py3-hatchling
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pytest-dev/pytest-html/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # Requires non-packaged dependencies
+builddir="$srcdir/pytest-html-$pkgver"
+
+export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
+
+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="
+c0cbb342d67ed222130907e43f9ab5ea792865598304d8de9b9da6d1d021a39c78468e79a7806b6a847384c555f060eb0236a905db29a92075e6b8682f12c838 py3-pytest-html-4.1.1.tar.gz
+"
diff --git a/testing/py3-pytest-isort/APKBUILD b/testing/py3-pytest-isort/APKBUILD
deleted file mode 100644
index 0a1cf91d09d..00000000000
--- a/testing/py3-pytest-isort/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-pytest-isort
-_pyname=pytest-isort
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="pytest plugin to check import ordering using isort"
-url="https://pypi.org/project/pytest-isort/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-pytest py3-isort"
-makedepends="py3-setuptools"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- export PYTHONPATH="$(pwd)"
- pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e28a5c184c014b24131e02d9786c77f55281333a30a0a27c0b9227495929f216dfbacaf59e11b027ea8bb4b8be665058659cd454098facf978687fbc0580a2d8 pytest-isort-1.0.0.tar.gz"
diff --git a/testing/py3-pytest-metadata/APKBUILD b/testing/py3-pytest-metadata/APKBUILD
new file mode 100644
index 00000000000..d39d0ddc197
--- /dev/null
+++ b/testing/py3-pytest-metadata/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-pytest-metadata
+pkgver=3.1.1
+pkgrel=0
+pkgdesc="pytest plugin for test session metadata"
+url="https://github.com/pytest-dev/pytest-metadata"
+arch="noarch"
+license="MPL-2.0"
+depends="py3-pytest"
+makedepends="
+ py3-gpep517
+ py3-hatch-vcs
+ py3-hatchling
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/p/pytest_metadata/pytest_metadata-$pkgver.tar.gz"
+builddir="$srcdir/pytest_metadata-$pkgver"
+
+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="
+20c880cd797534dee9206ef99755643fccc9d62521f1b50dbcc7f2ac0a8ab6adccc4158510c00e20308bed93ada180448ac9f06277cc1af3ba94a1b903da4b09 pytest_metadata-3.1.1.tar.gz
+"
diff --git a/testing/py3-pytest-mypy/APKBUILD b/testing/py3-pytest-mypy/APKBUILD
new file mode 100644
index 00000000000..3bfbbc6f45e
--- /dev/null
+++ b/testing/py3-pytest-mypy/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer:
+pkgname=py3-pytest-mypy
+pkgver=0.10.3
+pkgrel=2
+pkgdesc="Pytest plugin for mypy"
+url="https://github.com/realpython/pytest-mypy"
+arch="noarch"
+license="MIT"
+depends="
+ py3-attrs
+ py3-filelock
+ py3-mypy
+ py3-pytest
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="
+ py3-pexpect
+ py3-pytest-xdist
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/realpython/pytest-mypy/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/pytest-mypy-$pkgver"
+
+build() {
+ SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver \
+ 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 -n auto
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+74e0a6759cedd745ea57c0025698b09fe1297fc9fa344b72130a04f43ee06b7f4ceedf8473948429086f15fbb69efed51f5c934a83343cf7b4c92a5b400e6795 py3-pytest-mypy-0.10.3.tar.gz
+"
diff --git a/testing/py3-pytest-regtest/APKBUILD b/testing/py3-pytest-regtest/APKBUILD
index 67e349e9f2e..c07182c1a96 100644
--- a/testing/py3-pytest-regtest/APKBUILD
+++ b/testing/py3-pytest-regtest/APKBUILD
@@ -1,31 +1,49 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=py3-pytest-regtest
-_pyname=pytest-regtest
-pkgver=1.4.2
+_pyname=pytest_regtest
+pkgver=2.1.1
pkgrel=1
pkgdesc="pytest-regtest is a pytest-plugin for implementing regression tests"
url="https://gitlab.com/uweschmitt/pytest-regtest"
arch="noarch"
license="MIT"
-depends="py3-pytest"
-makedepends="py3-setuptools"
-checkdepends="py3-pexpect py3-tox"
-source="https://files.pythonhosted.org/packages/source/p/$_pyname/$_pyname-$pkgver.tar.gz"
+depends="
+ py3-pytest
+ "
+makedepends="
+ py3-gpep517
+ py3-hatchling
+ py3-setuptools
+ py3-wheel
+ twine
+ "
+checkdepends="
+ py3-pexpect
+ py3-tox
+ "
+subpackages="$pkgname-pyc"
+source="
+ https://files.pythonhosted.org/packages/source/p/$_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 test-env
+ test-env/bin/python3 -m installer .dist/*.whl
+ test-env/bin/python3 -m pytest tests/test_plugin.py
}
package() {
- python3 setup.py install \
- --prefix=/usr \
- --root="$pkgdir"
-
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="b93c8b5c68abd8b78e8bd1930fb638ffb90bb3f6fef9b99f7da67c974d1678239ae7e80852a6ed6034abb8a043180d2eacb4dbabb43a13ca74ddb0af8f281206 pytest-regtest-1.4.2.tar.gz"
+sha512sums="
+31f5da09d1bfae682caba6eb716cf75f80de8ef0f30893b760d6eee60717b9453b0b3c72a5e706f8b3c84d85ac7a856d4c03632f851c40741a4893a1ca8002fb pytest_regtest-2.1.1.tar.gz
+"
diff --git a/testing/py3-pytest-subprocess/APKBUILD b/testing/py3-pytest-subprocess/APKBUILD
new file mode 100644
index 00000000000..e8581b5aa01
--- /dev/null
+++ b/testing/py3-pytest-subprocess/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-pytest-subprocess
+_pyname=${pkgname#py3-}
+pkgver=1.5.0
+pkgrel=2
+pkgdesc="Pytest plugin to fake subprocess"
+url="https://github.com/aklajnert/pytest-subprocess"
+arch="noarch"
+license="MIT"
+depends="python3 py3-pytest"
+makedepends="py3-setuptools"
+checkdepends="
+ py3-anyio
+ py3-docutils
+ py3-pygments
+ py3-pytest-asyncio
+ py3-pytest-rerunfailures
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/aklajnert/pytest-subprocess/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ 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 \
+ -W "ignore:There is no current event loop:DeprecationWarning"
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+8489993cc396d41d127927ab46a43120528dbcb9641e7be03777689af127df29fe618eee3a815e96a0353cc02117dc1af22800d748476c4fe2b76c2246229f08 py3-pytest-subprocess-1.5.0.tar.gz
+"
diff --git a/testing/py3-pytest-trio/APKBUILD b/testing/py3-pytest-trio/APKBUILD
deleted file mode 100644
index 28ead9253ef..00000000000
--- a/testing/py3-pytest-trio/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-pytest-trio
-pkgver=0.6.0
-pkgrel=0
-pkgdesc="pytest plugin for trio"
-url="https://github.com/python-trio/pytest-trio"
-arch="noarch"
-license="MIT OR Apache-2.0"
-depends="python3 py3-pytest py3-trio py3-outcome py3-async_generator"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-hypothesis"
-source="https://pypi.python.org/packages/source/p/pytest-trio/pytest-trio-$pkgver.tar.gz"
-builddir="$srcdir/pytest-trio-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="." pytest --pyargs pytest_trio
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="662719e67f5d71f73b2e5389592812b79b296b7fdd8ff6f491961bd5444958e829c46a3bd79f08e9b8b8638125c48edd459f599acc2e071fc0cf8013525a3739 pytest-trio-0.6.0.tar.gz"
diff --git a/testing/py3-python-archive/APKBUILD b/testing/py3-python-archive/APKBUILD
index 1d235bbdd70..af37c899dfa 100644
--- a/testing/py3-python-archive/APKBUILD
+++ b/testing/py3-python-archive/APKBUILD
@@ -3,25 +3,25 @@
pkgname=py3-python-archive
_pkgname=python-archive
pkgver=0.2
-pkgrel=1
+pkgrel=6
pkgdesc="Library for extracting zip and tar archives"
url="https://github.com/gdub/python-archive"
arch="noarch"
license="MIT"
replaces="py-archive" # for backwards compatibility
provides="py-archive=$pkgver-r$pkgrel" # for backwards compatibility
-depends="python3"
+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
+options="!check" # no tests
build() {
- cd "$builddir"
python3 setup.py build
}
package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="5f02fe522f44989c1b61db48239cdbda5536ff685174ba93af028591eba276dcefd7655aad3a458d92140f163724d87bbe25711c78a82e06dfb382b6ae9f5683 python-archive-0.2.tar.gz"
diff --git a/testing/py3-python-editor/APKBUILD b/testing/py3-python-editor/APKBUILD
deleted file mode 100644
index c7190665677..00000000000
--- a/testing/py3-python-editor/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=py3-python-editor
-pkgver=1.0.4
-pkgrel=1
-pkgdesc="Programmatically open an editor, capture the result"
-url="https://github.com/fmoo/python-editor"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-options="!check" # tests are interactive
-source="https://files.pythonhosted.org/packages/source/p/python-editor/python-editor-$pkgver.tar.gz"
-builddir="$srcdir/python-editor-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c8ce2403bfe6c93935c7f4c384a8618a39cdaefe1ff5b1ff2cf4562866d8b3caa616e428c0a1634a56db934caeb474e7f84f8d5e009b9ed664189fdece8146f6 python-editor-1.0.4.tar.gz"
diff --git a/testing/py3-python-gssapi/APKBUILD b/testing/py3-python-gssapi/APKBUILD
deleted file mode 100644
index d928759269d..00000000000
--- a/testing/py3-python-gssapi/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Dmitry Romanenko <dmitry@romanenko.in>
-# Maintainer: Dmitry Romanenko <dmitry@romanenko.in>
-pkgname=py3-python-gssapi
-_pkgname=gssapi
-pkgver=1.6.1
-pkgrel=1
-pkgdesc="A Python interface to RFC 2743/2744 (plus common extensions)"
-url="https://github.com/pythongssapi/python-gssapi"
-arch="all"
-license="ISC"
-depends="python3"
-#checkdepends="py-nose py-shouldbe py-k5test" # Tests are missing alpine packages
-makedepends="python3-dev krb5-dev py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/g/$_pkgname/$_pkgname-$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="ca77053ceb9b8097501df45492c0806f0b6aae8ebd7fd02b86e9e120eb18cec7ead75ff9a25f61e3de49b68d370adfe2d607f261dcf44b9a27b66ba649ca8193 gssapi-1.6.1.tar.gz"
diff --git a/testing/py3-python-iptables/APKBUILD b/testing/py3-python-iptables/APKBUILD
new file mode 100644
index 00000000000..500ababc2fa
--- /dev/null
+++ b/testing/py3-python-iptables/APKBUILD
@@ -0,0 +1,40 @@
+# Automatically generated by apkbuild-pypi, template 4
+# Contributor: Niklas Meyer <derlinkman@gmail.com>
+# Maintainer: Niklas Meyer <derlinkman@gmail.com>
+pkgname=py3-python-iptables
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=python-iptables
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Python bindings for iptables"
+url="https://pypi.org/project/python-iptables/"
+arch="all"
+license="Apache-2.0"
+depends="iptables"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/python-iptables/python-iptables-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" #needs iptables for check
+
+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="
+85e251b58b71d8428d061861d924454fcda1fbacc429a0347223ce7eee6f7543894ab6231ea64346bb87dd1248580d5cdf851f12e1e5ed98e68f93a895a4c055 python-iptables-1.0.1.tar.gz
+"
diff --git a/testing/py3-python-jose/APKBUILD b/testing/py3-python-jose/APKBUILD
new file mode 100644
index 00000000000..e59a5161c87
--- /dev/null
+++ b/testing/py3-python-jose/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-python-jose
+pkgver=3.3.0
+pkgrel=2
+pkgdesc="A JOSE implementation in Python"
+url="https://github.com/mpdavis/python-jose/"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-cryptography py3-pycryptodome py3-pytest-runner"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="python-jose-$pkgver.tar.gz::https://github.com/mpdavis/python-jose/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/python-jose-$pkgver"
+
+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() {
+ python -m installer -d "$pkgdir" .dist/*.whl
+
+ install -vDm644 README.rst -t "$pkgdir/usr/share/doc/$pkgname/"
+}
+
+sha512sums="
+de7147cc6e12406d6e459c32829acae46395acba727c53e65bc05f4794ee3050eecd355e3ae2e87f4ebdbd871f53822eea08a10f25d7ca6088fc6128dc7d9637 python-jose-3.3.0.tar.gz
+"
diff --git a/testing/py3-python-logstash/APKBUILD b/testing/py3-python-logstash/APKBUILD
new file mode 100644
index 00000000000..33aa634462b
--- /dev/null
+++ b/testing/py3-python-logstash/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-python-logstash
+_pkgname=python-logstash
+pkgver=0.4.8
+pkgrel=3
+pkgdesc="Python logging handler for Logstash"
+options="!check" # no test suite
+url="https://github.com/vklochan/python-logstash"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+0ddc7e142f54aa27b0678fa903357ac877b755fb0ce3d8596472e843ca67c11d727289cebb5a0b4b4b613a768e8afde0ab4c0366305b7d9d5743fde8f1060e7a python-logstash-0.4.8.tar.gz
+"
diff --git a/testing/py3-python-mystrom/APKBUILD b/testing/py3-python-mystrom/APKBUILD
deleted file mode 100644
index 9c11497b733..00000000000
--- a/testing/py3-python-mystrom/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-python-mystrom
-_pkgname=python-mystrom
-pkgver=0.5.0
-pkgrel=1
-pkgdesc="Python API for controlling myStrom switches/plugs"
-url="https://github.com/fabaff/python-mystrom"
-arch="noarch"
-license="MIT"
-depends="py3-click py3-requests"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces=py-mystrom # Backwards compatibility
-provides=py-mystrom=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="db330bbc0e304224b586caa9d2ea646cb25beff165268d68b52e6d470cd5fa2db71bfe7d21628f74679cd8480c7f0269c42ea3a3fc76636bec3ff184bf9a80d9 python-mystrom-0.5.0.tar.gz"
diff --git a/testing/py3-python-stdnum/APKBUILD b/testing/py3-python-stdnum/APKBUILD
index 5aae70a233d..9af59f27d9f 100644
--- a/testing/py3-python-stdnum/APKBUILD
+++ b/testing/py3-python-stdnum/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-python-stdnum
_pkgname=python-stdnum
-pkgver=1.13
-pkgrel=0
+pkgver=1.19
+pkgrel=1
pkgdesc="Python module to handle standardized numbers and codes"
url="https://arthurdejong.org/python-stdnum"
arch="noarch"
license="LGPL-2.0-or-later"
depends="python3"
makedepends="py3-setuptools"
-checkdepends="py3-nose"
+checkdepends="py3-coverage py3-nose"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="91bc476c0fec49627b772c43f031bcdfea044385256817d76a2fcff3aa76f26e85d308aab5262a682d54f67a1851907074b21d260e687f81c733326c40a0e0cf python-stdnum-1.13.tar.gz"
+sha512sums="
+02c56aea710a9a02e14160840fbd45751cd00f1a49b1d046124945ba92e2dd3377006f44a146030522d09b92f809ceb4d1e3589ef3d9c9302f7674a79602ef07 python-stdnum-1.19.tar.gz
+"
diff --git a/testing/py3-python-versioneer/APKBUILD b/testing/py3-python-versioneer/APKBUILD
deleted file mode 100644
index 92d7049e6a5..00000000000
--- a/testing/py3-python-versioneer/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname="py3-python-versioneer"
-pkgver="0.18"
-pkgrel=0
-pkgdesc="Version-string management for VCS-controlled trees "
-url="https://github.com/warner/python-versioneer"
-arch="noarch"
-license="Unlicense"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://github.com/warner/python-versioneer/archive/$pkgver/python-versioneer-$pkgver.tar.gz"
-options="!check" # Requires Python 3.6 or lower
-builddir="$srcdir/python-versioneer-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e6f3c6274307c8c40bb6cd49cb18d29e049998a455ffbfe9190018b502c99669d5ba33d6575aafacc9310659d9309f9409e62152fcff80985cd98ae6485a31bc python-versioneer-0.18.tar.gz"
diff --git a/testing/py3-pytube/APKBUILD b/testing/py3-pytube/APKBUILD
new file mode 100644
index 00000000000..6d27b69d04e
--- /dev/null
+++ b/testing/py3-pytube/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
+# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
+pkgname=py3-pytube
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=pytube
+pkgver=15.0.0
+pkgrel=1
+pkgdesc="Python 3 library for downloading YouTube Videos."
+url="https://pypi.python.org/project/pytube"
+arch="noarch"
+license="Unlicense"
+checkdepends="py3-pytest"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pytube/pytube/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+subpackages="$pkgname-pyc"
+# 7/131 units failing due to:
+# AttributeError: 'NoneType' object has no attribute 'register_on_progress_callback'
+# AttributeError: 'YouTube' object has no attribute 'stream_monostate'
+# StopIteration
+options="!check"
+
+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 "$builddir"/.dist/*.whl
+ .testenv/bin/python3 -m pytest -v
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+fc28d87c56bae9da3def68224a03687cc521c26e6f38dd41abe81e84f91bb2cab73dc8c7dbbc388787cf066f7d7304c78162cc60c544b99e75187b760c64b4a3 py3-pytube-15.0.0.tar.gz
+"
diff --git a/testing/py3-pytweening/APKBUILD b/testing/py3-pytweening/APKBUILD
new file mode 100644
index 00000000000..f35fdddfcda
--- /dev/null
+++ b/testing/py3-pytweening/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-pytweening
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Set of tweening / easing functions implemented in Python"
+url="https://github.com/asweigart/pytweening"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/pytweening/pytweening-$pkgver.tar.gz"
+builddir="$srcdir/pytweening-$pkgver"
+
+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 tests/basicTests.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+2a06ab1ba3dfd8cb2446b53470613c05eb3133d071da84984c4512c7f9905be2b353918a2ca6ea58eb44cd1af50a55df2c4a6792be39d79f305ef6cbf43f742d pytweening-1.2.0.tar.gz
+"
diff --git a/testing/py3-pyvcd/APKBUILD b/testing/py3-pyvcd/APKBUILD
new file mode 100644
index 00000000000..b558eb26a6d
--- /dev/null
+++ b/testing/py3-pyvcd/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-pyvcd
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="Python package for writing Value Change Dump (VCD) files"
+url="https://github.com/westerndigitalcorporation/pyvcd"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools py3-gpep517 py3-installer py3-setuptools_scm py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/westerndigitalcorporation/pyvcd/archive/refs/tags/$pkgver/py3-pyvcd-$pkgver.tar.gz"
+builddir="$srcdir/pyvcd-$pkgver"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+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 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+245eeb440ca31ef2eda202d46dee002703bfec06e14ba3ff5d03a5cd19991133915221c94fbcffb672f6ac105296b03834f1fe9c2cf449550d6054de6b964e5e py3-pyvcd-0.4.0.tar.gz
+"
diff --git a/testing/py3-pyvows/APKBUILD b/testing/py3-pyvows/APKBUILD
new file mode 100644
index 00000000000..da67c9aa481
--- /dev/null
+++ b/testing/py3-pyvows/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-pyvows
+_pkgname=pyVows
+pkgver=3.0.0
+pkgrel=4
+pkgdesc="BDD test engine based on Vows.js"
+url="https://github.com/heynemann/pyvows"
+arch="noarch"
+license="MIT"
+depends="python3 py3-gevent py3-preggy"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-colorama py3-coverage"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/$_pkgname/$_pkgname-$pkgver.tar.gz
+drop-requirements.patch"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 README.md "$pkgdir"/usr/share/licenses/$pkgname/README.md
+}
+
+sha512sums="
+7dbbe5b641c9c374f4c51c45cf5db2188685dd889a50dcf3eba9100c0c899c8785ab7ec3743e3b3eebc590aeb06d4aeb8843a0c43037fcac85d8b6b7eba30b1f pyVows-3.0.0.tar.gz
+a54bc0c5ac42f6ba2bf0c8d37b4a5dbd31c7945e6bcfc0f4f8548ecef967ba94572ae6f7b53a52fdd1381583284000a3ebc46a062ae02f68daed487c9b797107 drop-requirements.patch
+"
diff --git a/testing/py3-pyvows/drop-requirements.patch b/testing/py3-pyvows/drop-requirements.patch
new file mode 100644
index 00000000000..e8f3d78fcfd
--- /dev/null
+++ b/testing/py3-pyvows/drop-requirements.patch
@@ -0,0 +1,37 @@
+Author: Rejah Rehim <rejah@beaglesecurity.com>
+Summary: Fixes dependency compilation error
+
+--- a/setup.py
++++ b/setup.py
+@@ -17,20 +17,6 @@
+ from pyvows import version
+
+
+-_test_requires = [
+- 'argparse>=1.4.0',
+- 'colorama>=0.3.7',
+- 'coverage>=4.1.1'
+-
+-]
+-_install_requires = [
+- 'gevent>=1.2.2',
+- 'preggy>=1.3.0',
+-]
+-if sys.version_info < (2, 7):
+- _install_requires.append('argparse >= 1.1')
+-
+-
+ setup(
+ ### OVERVIEW
+ name='pyVows',
+@@ -52,10 +38,6 @@
+
+ ### TECHNICAL INFO
+ version=version.to_str(),
+- install_requires=_install_requires,
+- extras_require={
+- 'tests': _test_requires,
+- },
+ packages=find_packages(exclude=['tests', 'tests.*']),
+ package_dir={'pyvows': 'pyvows'},
+ entry_points={
diff --git a/testing/py3-pywal/APKBUILD b/testing/py3-pywal/APKBUILD
deleted file mode 100644
index f38deca3482..00000000000
--- a/testing/py3-pywal/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-pywal
-pkgver=3.3.0
-pkgrel=0
-pkgdesc="Generate and change colorschemes on the fly"
-url="https://github.com/dylanaraps/pywal/"
-arch="noarch"
-license="MIT"
-depends="
- imagemagick
- python3
- py3-setuptools
- "
-source="https://files.pythonhosted.org/packages/source/p/pywal/pywal-$pkgver.tar.gz"
-builddir="$srcdir/pywal-$pkgver"
-
-case "$CARCH" in
-s390x|mips*) options="!check";;
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e8469ae1cb6596e78e9100907115e2075cfe6f984751e9972c36e60e27d1c379b4e8d2c5ef90becb689bcfcc1efb9702392e64602dbb93f903e12f3881ed42ce pywal-3.3.0.tar.gz"
diff --git a/testing/py3-pyzor/APKBUILD b/testing/py3-pyzor/APKBUILD
index be1bfdbe4f4..557621ece14 100644
--- a/testing/py3-pyzor/APKBUILD
+++ b/testing/py3-pyzor/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-pyzor
_pkgname=pyzor
pkgver=1.0.0
-pkgrel=4
+pkgrel=10
pkgdesc="Python implementation of a spam-blocking networked system that use spam signatures to identify them."
-url="https://pypi.python.org/pypi/pyzor/"
+url="https://pypi.org/project/pyzor/"
arch="noarch"
license="GPL-2.0-only"
depends="python3"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/p/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -21,6 +22,6 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="5ce22d23dac02f3b14b7e87f1049cdcd06b8b02a0214898bf9946d966e3d5e1e5788d82cdf7883641d0291dcf949483a926989482cdd344460d9f6a8e7182cc5 pyzor-1.0.0.tar.gz"
diff --git a/testing/py3-qasync/APKBUILD b/testing/py3-qasync/APKBUILD
new file mode 100644
index 00000000000..decf5a071e9
--- /dev/null
+++ b/testing/py3-qasync/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: guddaff <alpine@guddaff.de>
+# Maintainer: guddaff <alpine@guddaff.de>
+pkgname=py3-qasync
+_pkgname=qasync
+pkgver=0.19.0
+pkgrel=1
+pkgdesc="asyncio in Qt-based applications"
+url="https://github.com/CabbageDevelopment/qasync"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3"
+makedepends="py3-setuptools py3-qt5"
+checkdepends="py3-pytest"
+options=!check #test segfaults
+source="$pkgname-$pkgver.tar.gz::https://github.com/CabbageDevelopment/$_pkgname/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+a46f5b335b12592c134c7e2e1bf42a4599aa130f8f98071e51af299c8687d588480e3c76bc12bcc918e488fbe0c86b2b45c785eed4ba0cb68a8c3f8962d7141e py3-qasync-0.19.0.tar.gz
+"
diff --git a/testing/py3-qbittorrent-api/APKBUILD b/testing/py3-qbittorrent-api/APKBUILD
new file mode 100644
index 00000000000..1acc1157e67
--- /dev/null
+++ b/testing/py3-qbittorrent-api/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=py3-qbittorrent-api
+pkgver=2024.3.60
+pkgrel=0
+pkgdesc="Python client implementation for qBittorrent's Web API"
+url="https://github.com/rmartin16/qbittorrent-api"
+arch="noarch"
+license="MIT"
+depends="
+ py3-requests
+ py3-setuptools
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools_scm
+ py3-sphinx-copybutton
+ py3-sphinx-autodoc-typehints
+ "
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rmartin16/qbittorrent-api/archive/v$pkgver.tar.gz"
+builddir="$srcdir/qbittorrent-api-$pkgver"
+# tests requires an instance of qbittorrent running
+# net for sphinx
+options="net !check"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ sphinx-build -W -b man docs/source docs/build
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ install -Dm644 docs/build/qbittorrent-api.1 -t "$pkgdir"/usr/share/man/man1
+
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
+}
+
+sha512sums="
+716b2f8eadd0556a57bfcaec6f03227c67e7412f78cbb350f7a608897bf23075a5d85986993235305be8d056926401e8438fdc4dd2e0a65183a4bd1f79fbf148 py3-qbittorrent-api-2024.3.60.tar.gz
+"
diff --git a/testing/py3-qdldl/APKBUILD b/testing/py3-qdldl/APKBUILD
new file mode 100644
index 00000000000..f27859b126f
--- /dev/null
+++ b/testing/py3-qdldl/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=py3-qdldl
+pkgver=0.1.5
+pkgrel=3
+pkgdesc="Python interface to the QDLDL free LDL factorization routine for quasi-definite linear systems: Ax = b"
+url="https://github.com/osqp/qdldl-python"
+arch="all !armhf !armv7 !x86" # error: cannot convert 'QDLDL_int*' {aka 'int*'} to 'const long long int*'
+license="Apache-2.0"
+depends="python3 py3-numpy py3-scipy"
+makedepends="py3-setuptools py3-pybind11-dev python3-dev cmake"
+source="qdldl-python-$pkgver.tar.gz::https://github.com/osqp/qdldl-python/archive/refs/tags/v$pkgver.post0.tar.gz
+ qdldl-$pkgver.tar.gz::https://github.com/osqp/qdldl/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/qdldl-python-$pkgver.post0"
+options="!check" # no upstream checks
+
+prepare() {
+ default_prepare
+ rmdir c/qdldl
+ mv "$srcdir/qdldl-$pkgver" c/qdldl
+}
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+d9552adb93c2e023cc9b0b611224e4cc6539de34b30e99d9bcf9a0e244158c4bf6cedae56d05839d8d0a2f39a105d7b0a5b2d08a3cfb3e3f9f1a4f030ee328f1 qdldl-python-0.1.5.tar.gz
+3a224767708484d6728e4b0801210c5e7d4e906564c0855c7987876316cde7349c2717a169b4a6680495b0c71415be383e3e5c6826873fb92d7e93258a7a03a8 qdldl-0.1.5.tar.gz
+"
diff --git a/testing/py3-qpageview/APKBUILD b/testing/py3-qpageview/APKBUILD
new file mode 100644
index 00000000000..64b1028b8d9
--- /dev/null
+++ b/testing/py3-qpageview/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Krystian Chachuła <krystian@krystianch.com>
+pkgname=py3-qpageview
+_pkgname=qpageview
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="Page-based viewer widget for PyQt5"
+url="https://qpageview.org"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="py3-qt5"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-sphinx"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/frescobaldi/qpageview/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+
+ sphinx-build -b man docs/source/ docs/build/man/
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/*.whl
+
+ install -m 644 -D docs/build/man/qpageview.1 \
+ "$pkgdir"/usr/share/man/man1/qpageview.1
+}
+
+sha512sums="
+80b1d6d4419594bcac195450ab030ab0b4fe3fe92dc9a6db598d1dd2282670f0d0b9d957b3c37313d7002f8f7dbc1bdd101edca81e5edca19c6e33ec4f6e4ffe qpageview-0.6.2.tar.gz
+"
diff --git a/testing/py3-qrcode/APKBUILD b/testing/py3-qrcode/APKBUILD
deleted file mode 100644
index 067576a30fe..00000000000
--- a/testing/py3-qrcode/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-qrcode
-_pkgname=qrcode
-pkgver=6.1
-pkgrel=2
-pkgdesc="QR code image generator"
-url="https://github.com/lincolnloop/python-qrcode"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-pillow py3-six"
-makedepends="py3-setuptools"
-options="!check"
-subpackages="$pkgname-doc"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-qrcode" # Backwards compatibility
-provides="py-qrcode=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -D -m644 "$builddir"/doc/qr.1 "$pkgdir"/usr/share/man/man1/qr.1
-}
-
-sha512sums="4831553932442f5535cba15d5958a656b399112f0f379c28ad9b610c33d88ec6d0613dc7047a2315606e49f027bfd13a15a332ce86b80040d56e1114a0f62251 qrcode-6.1.tar.gz"
diff --git a/testing/py3-qt.py/APKBUILD b/testing/py3-qt.py/APKBUILD
new file mode 100644
index 00000000000..e122cfe5a1a
--- /dev/null
+++ b/testing/py3-qt.py/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-qt.py
+pkgver=1.3.10
+pkgrel=0
+pkgdesc="Minimal Python 2 & 3 shim around all Qt bindings"
+url="https://github.com/mottosso/Qt.py"
+arch="noarch !armhf" # no py3-qt5 on armhf
+license="MIT"
+depends="python3 py3-qt5 py3-setuptools"
+checkdepends="py3-nose py3-six"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mottosso/Qt.py/archive/$pkgver.tar.gz
+ importlib.patch
+ "
+builddir="$srcdir/Qt.py-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 tests.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+a8cf1de389881b453dafa53d6bfd9e9bbe263effef03c9eefbc87b33798463d5117996006545687f91329b976a2e94b0b27a1bf8969728685c1a432c7c31a7b6 py3-qt.py-1.3.10.tar.gz
+0ac7faa921bde9ff487c0f7c1443c2f1390cbd888055cfe174f5a8ab3b1429f695b264b371b8d5f6d0ac07136a5e064bcc534edbd8cbf8bfe65f70dd141a02c4 importlib.patch
+"
diff --git a/testing/py3-qt.py/importlib.patch b/testing/py3-qt.py/importlib.patch
new file mode 100644
index 00000000000..48a6eaf5fa1
--- /dev/null
+++ b/testing/py3-qt.py/importlib.patch
@@ -0,0 +1,20 @@
+diff --git a/tests.py b/tests.py
+index 833fcc6..3c1c937 100644
+--- a/tests.py
++++ b/tests.py
+@@ -5,3 +5,3 @@ import os
+ import sys
+-import imp
++import importlib
+ import shutil
+@@ -310,6 +310,6 @@ def test_environment():
+ # PySide is not available for Python > 3.4
+- imp.find_module("PySide")
+- imp.find_module("PySide2")
+- imp.find_module("PyQt4")
+- imp.find_module("PyQt5")
++ importlib.util.find_spec("PySide")
++ importlib.util.find_spec("PySide2")
++ importlib.util.find_spec("PyQt4")
++ importlib.util.find_spec("PyQt5")
+
diff --git a/testing/py3-quebra-frases/APKBUILD b/testing/py3-quebra-frases/APKBUILD
new file mode 100644
index 00000000000..9a284ee96e1
--- /dev/null
+++ b/testing/py3-quebra-frases/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-quebra-frases
+pkgver=0.3.7
+pkgrel=1
+pkgdesc="Chunks strings into byte sized pieces"
+url="https://github.com/OpenJarbas/quebra_frases"
+arch="noarch"
+license="Apache-2.0"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/q/quebra_frases/quebra_frases-$pkgver.tar.gz"
+builddir="$srcdir/quebra_frases-$pkgver"
+
+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="
+608be3ef5090fb4001913a39f593a98f8da49c0d7c238d62680d0cd03bca0985af08b2bdc78ebc279f4ad5c8de40129dc5e18c75d78d263f21d8cd99c80fa400 quebra_frases-0.3.7.tar.gz
+"
diff --git a/testing/py3-queuelib/APKBUILD b/testing/py3-queuelib/APKBUILD
index e831b4a8e5e..7c15f3ed876 100644
--- a/testing/py3-queuelib/APKBUILD
+++ b/testing/py3-queuelib/APKBUILD
@@ -2,30 +2,38 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-queuelib
_pkgname=queuelib
-pkgver=1.5.0
-pkgrel=2
+pkgver=1.6.2
+pkgrel=4
pkgdesc="A collection of persistent (disk-based) queues"
url="https://github.com/scrapy/queuelib"
arch="noarch"
license="BSD-3-Clause"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-queuelib" # Backwards compatibility
+replaces="py-queuelib" # Backwards compatibility
provides="py-queuelib=$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
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="aafaf8756b00cd84b36a73d9573a8a321a0432648c2e7dfc9de566d339087fcd855eb2d5991694a495e47bbb9c4ca25d655e4de7101552e96ee0040ed31c9e0f queuelib-1.5.0.tar.gz"
+sha512sums="
+a836f43d5e1d2b06fd9869842b7f400e950e476a253c5fd0adc3a340f153218ddeb854b43cb63177ceda1069f0172ef474b4d1739a9142b76c0b7185efe6330f queuelib-1.6.2.tar.gz
+"
diff --git a/testing/py3-rabbit/APKBUILD b/testing/py3-rabbit/APKBUILD
index 1aa5de86871..01e2130e1a8 100644
--- a/testing/py3-rabbit/APKBUILD
+++ b/testing/py3-rabbit/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-rabbit
_pkgname=pyrabbit
pkgver=1.1.0
-pkgrel=2
+pkgrel=7
pkgdesc="Pythonic interface to the RabbitMQ Management HTTP API"
options="!check" # No testsuite in PYPI tarball
url="https://github.com/bkjones/pyrabbit"
@@ -11,6 +11,7 @@ arch="noarch"
license="MIT"
depends="python3 py3-httplib2"
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
@@ -22,7 +23,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="aa18c3ad232840da9b4978e275c05a82ea75212f3c4ee2df68075ac93295d9448a2376656953e7d1d9c9bc6a7e759eef020a8aaef98491a12959a416c31187ad pyrabbit-1.1.0.tar.gz"
diff --git a/testing/py3-radon/APKBUILD b/testing/py3-radon/APKBUILD
new file mode 100644
index 00000000000..0b80ecd8d69
--- /dev/null
+++ b/testing/py3-radon/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Rejah Rehim <rejah@beaglesecurity.com>
+# Maintainer: Rejah Rehim <rejah@beaglesecurity.com>
+pkgname=py3-radon
+_pkgname=radon
+pkgver=6.0.1
+pkgrel=1
+pkgdesc="Code Metrics in Python"
+options="!check" # no test suite
+url="https://radon.readthedocs.org/"
+arch="noarch"
+license="MIT"
+depends="python3 py3-colorama py3-future py3-mando"
+makedepends="py3-setuptools"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/r/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm -rf "$pkgdir"/usr/lib/python3*/site-packages/radon/tests
+ install -Dm644 README.rst -t "$pkgdir"/usr/share/doc/"$pkgname"
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/"$pkgname"
+}
+
+sha512sums="
+91bd091610568dacb95491ba314b68dfb33ee397b043ae96badc7c134a841122d90394a36b1d665c9cabf273c0e6128217ebfc459c36020c12dcab647dd5df53 radon-6.0.1.tar.gz
+"
diff --git a/testing/py3-raet/APKBUILD b/testing/py3-raet/APKBUILD
deleted file mode 100644
index 0a744f01e79..00000000000
--- a/testing/py3-raet/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-raet
-_pkgname=raet
-pkgver=0.6.8
-pkgrel=1
-pkgdesc="Reliable Asynchronous Event Transport Protocol"
-url="https://github.com/RaetProtocol/raet"
-arch="noarch"
-license="Apache-2.0"
-replaces="py-raet" # for backwards compatibility
-provides="py-raet=$pkgver-r$pkgrel" # for backwards compatibility
-depends="py3-ioflo py3-libnacl py3-six python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="01279e7414ec3edc9f2bc0641cb9e0606ebf5700b5ce37a05fd5919f3274b3b43aad64110baf4c4b1fda3843cb1a87b6be4ab592a8f62e82b3a716a86ae61b20 raet-0.6.8.tar.gz"
diff --git a/testing/py3-rapidjson/APKBUILD b/testing/py3-rapidjson/APKBUILD
new file mode 100644
index 00000000000..1418ad71e07
--- /dev/null
+++ b/testing/py3-rapidjson/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-rapidjson
+pkgver=1.12
+pkgrel=1
+pkgdesc="Python3 wrapper around RapidJSON"
+url="https://github.com/python-rapidjson/python-rapidjson"
+arch="all"
+license="MIT"
+depends="
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ rapidjson-dev
+ "
+checkdepends="
+ py3-pytest
+ py3-tz
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/python-rapidjson/python-rapidjson/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/"python-rapidjson-$pkgver
+
+prepare() {
+ default_prepare
+
+ # workaround setup.py complaining about "sources not found"
+ mkdir -v rapidjson/include
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ PYTHONPATH="$(echo "$PWD"/build/lib.linux*)" pytest \
+ --ignore benchmarks \
+ --deselect tests/test_base_types.py::test_base_values \
+ --deselect tests/test_unicode.py::test_unicode_decode_error \
+ --deselect tests/test_validator.py::test_additional_and_pattern_properties_valid \
+ #
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+15d021491c64db53352830d8f3f62c8b48476fcb001f97c174bcbb9053d973eb135ceb92f14290a58f6ad6c5dfb24d02f6385c8cad70f4a74f5a5726aa0728e7 py3-rapidjson-1.12.tar.gz
+"
diff --git a/testing/py3-rarfile/APKBUILD b/testing/py3-rarfile/APKBUILD
deleted file mode 100644
index 816292dfd87..00000000000
--- a/testing/py3-rarfile/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-rarfile
-_pkgname=rarfile
-pkgver=3.1
-pkgrel=1
-pkgdesc="RAR archive reader"
-options="!check" # 3 tests fail
-url="https://github.com/markokr/rarfile"
-arch="noarch"
-license="ISC"
-makedepends="py3-setuptools"
-checkdepends="py3-nose unrar"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-rarfile" # Backwards compatibility
-provides="py-rarfile=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests-3.7
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="eb910b0adfd1f28497163aa7994ab268d7780707e09931cb01014ffa51d985410b0bc17e5fb9ca133992b28115a0b5f443d01215624145d280f29e7065abb9d9 rarfile-3.1.tar.gz"
diff --git a/testing/py3-rdflib/APKBUILD b/testing/py3-rdflib/APKBUILD
deleted file mode 100644
index cb7c83f4dbf..00000000000
--- a/testing/py3-rdflib/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=py3-rdflib
-_pyname=rdflib
-pkgver=4.2.2
-pkgrel=1
-pkgdesc="A Python library for working with RDF, a simple yet powerful language for representing information"
-url="https://rdflib.readthedocs.org/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-isodate py3-six"
-checkdepends="py3-nose py3-parsing py3-html5lib py3-sparqlwrapper"
-makedepends="py3-setuptools"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
- py3.7.patch"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # "python3 ./run_tests.py" fails
- nosetests --where=./build/src \
- --with-doctest \
- --doctest-extension=.doctest \
- --doctest-tests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="efc24d8ce1080e59950cecc9c779ae0d63673c8690f74db1772f6c2dbf24d6f4de5214d5870a074bffe549b42d8d5f5d131df29bbfd174b763ae1f843aec7d5c rdflib-4.2.2.tar.gz
-a6e847bff7ab7e3e490dd86424bd9ec618722d8010b5373ab4848f2d3187edb49f7dce7d30c8738e0596759e77d27132e1ca114fccdf554da4af56bc23c3c2bf py3.7.patch"
diff --git a/testing/py3-rdflib/py3.7.patch b/testing/py3-rdflib/py3.7.patch
deleted file mode 100644
index 4e1bb4235e8..00000000000
--- a/testing/py3-rdflib/py3.7.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -u -r RDFLib-rdflib-2fb94c8/rdflib/plugins/sparql/evaluate.py RDFLib-rdflib-2fb94c8-py3.7/rdflib/plugins/sparql/evaluate.py
---- RDFLib-rdflib-2fb94c8/rdflib/plugins/sparql/evaluate.py 2017-01-29 17:51:48.000000000 +0100
-+++ RDFLib-rdflib-2fb94c8-py3.7/rdflib/plugins/sparql/evaluate.py 2018-07-29 17:31:55.614217759 +0200
-@@ -326,9 +326,12 @@
- # import pdb; pdb.set_trace()
- res = evalPart(ctx, slice.p)
- i = 0
-- while i < slice.start:
-- res.next()
-- i += 1
-+ try:
-+ while i < slice.start:
-+ res.next()
-+ i += 1
-+ except StopIteration:
-+ return
- i = 0
- for x in res:
- i += 1
diff --git a/testing/py3-readchar/APKBUILD b/testing/py3-readchar/APKBUILD
deleted file mode 100644
index a4ced0694ee..00000000000
--- a/testing/py3-readchar/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=py3-readchar
-pkgver=2.0.0
-pkgrel=0
-pkgdesc=" Python library to read characters and key strokes"
-url="https://github.com/magmax/python-readchar"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pexpect py3-coverage py3-pytest py3-pytest-cov py3-wheel"
-source="https://github.com/magmax/python-readchar/archive/$pkgver/py3-readchar-$pkgver.tar.gz"
-builddir="$srcdir/python-readchar-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- # Remove installed tests
- rm -r "$pkgdir"/usr/lib/python*/site-packages/tests
-}
-
-sha512sums="92331e55080f5ebf55e313bd0e9562d55578df98ee116fa534a2ae47b43cbd9b19cf11263db821490a6b9ae5f62b78d378fd5b4c996d98a88c765af489b4d70f py3-readchar-2.0.0.tar.gz"
diff --git a/testing/py3-readme_renderer/APKBUILD b/testing/py3-readme_renderer/APKBUILD
deleted file mode 100644
index 82b8669a429..00000000000
--- a/testing/py3-readme_renderer/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-readme_renderer
-_pkgname=readme_renderer
-pkgver=26.0
-pkgrel=0
-pkgdesc="readme_renderer is a library for rendering README descriptions for Warehouse"
-url="https://github.com/pypa/readme_renderer"
-arch="noarch"
-license="Apache-2.0"
-depends="
- python3
- py3-setuptools
- py3-bleach
- py3-docutils
- py3-pygments
- py3-six
- "
-checkdepends="py3-pytest py3-mock"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a5e7cfa47257fd3ceaf417cc814226b5aef6aacf72ffb2eeed3e6affa4a09aa1f6c752a8c4311910c258d090d94f03e3f5c2603819f5dceb37440c9bfd9090ea readme_renderer-26.0.tar.gz"
diff --git a/testing/py3-recommonmark/APKBUILD b/testing/py3-recommonmark/APKBUILD
index dc7a7e1f560..a5749ad10ba 100644
--- a/testing/py3-recommonmark/APKBUILD
+++ b/testing/py3-recommonmark/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Robert Sacks <robert@sacks.email>
pkgname=py3-recommonmark
_pyname=recommonmark
-pkgver=0.6.0
-pkgrel=0
+pkgver=0.7.1
+pkgrel=3
pkgdesc="A docutils-compatibility bridge to CommonMark"
url="https://github.com/readthedocs/recommonmark"
arch="noarch"
@@ -11,6 +11,7 @@ license="MIT"
depends="python3 py3-commonmark>=0.8.1 py3-docutils py3-sphinx"
makedepends="py3-setuptools"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$_pyname-$pkgver.tar.gz::https://github.com/readthedocs/$_pyname/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
@@ -24,7 +25,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="44005b3fd0052cd8d4fce8a64f9d66a1ac75dc3041a28c115e922254956b2143296cbfbc0a2396b9f95691145645c4242e3be68e695b2c62ae37964014511679 recommonmark-0.6.0.tar.gz"
+sha512sums="
+3e03440d606ea6247df9bd122a6fa2dccf01c0c315eeace046d5cd336657e26bbd1c6b7ad4ba46f344215905128b72508c036cc57bbe4b5e27df50c55371fe01 recommonmark-0.7.1.tar.gz
+"
diff --git a/testing/py3-recurring-ical-events/APKBUILD b/testing/py3-recurring-ical-events/APKBUILD
new file mode 100644
index 00000000000..f7b0a55e372
--- /dev/null
+++ b/testing/py3-recurring-ical-events/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-recurring-ical-events
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="Python library for recurrence of ical events based on icalendar"
+url="https://github.com/niccokunzmann/python-recurring-ical-events"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="python3 py3-icalendar py3-tz py3-tzdata py3-x-wr-timezone"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/niccokunzmann/python-recurring-ical-events/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/python-recurring-ical-events-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # Disable unnecessary test that adds another dependency.
+ pytest -v \
+ --ignore test/test_readme.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1bd6337b5b8670b2c587d54eae26291c381adba76c38e21a937db8a16480d9b4c6eaddda6660fd0c345f67e38ed4f7cfe9e528ecce3686bce9659f4ef30d278c py3-recurring-ical-events-2.2.1.tar.gz
+"
diff --git a/testing/py3-redmine/APKBUILD b/testing/py3-redmine/APKBUILD
index 5a7dfeaba08..92aa1cabcce 100644
--- a/testing/py3-redmine/APKBUILD
+++ b/testing/py3-redmine/APKBUILD
@@ -2,16 +2,19 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-redmine
_pkgname=python-redmine
-pkgver=2.2.1
-pkgrel=1
+pkgver=2.4.0
+pkgrel=3
pkgdesc="A simple library for communicating with redmine"
url="https://github.com/maxtepkeev/python-redmine"
arch="noarch"
license="Apache-2.0"
depends="python3 py3-requests"
makedepends="py3-setuptools"
-checkdepends="py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+checkdepends="py3-pytest py3-pytest-cov"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ assertEquals.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
replaces="py-redmine" # Backwards compatibility
@@ -22,11 +25,14 @@ build() {
}
check() {
- nosetests
+ pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="95d137f9652964e6dcaec72bd13e1fe8e6771d9864972252ade700da27e1f3e6cb67179a9a8fc35e32559a481fab52e6df14b89d6e87bb17f36c6fb7f380c07b python-redmine-2.2.1.tar.gz"
+sha512sums="
+afb03ca8a3bdacace3c12b7295ba08953ab2040971b57988deb9955df24e5ac1782a9b3fbf0f5070eb22c640e88f489cda12cdec38449f9e3bcf7189dc422642 python-redmine-2.4.0.tar.gz
+7da14671b170863796bf5f9f44b1e7e104d53e7f97d3e251f47bf3de13d6a0ec2e9baa37693230d0ffa2bb8f595dfc97099ffdbf8b0635b4f8dc8852b9684d6e assertEquals.patch
+"
diff --git a/testing/py3-redmine/assertEquals.patch b/testing/py3-redmine/assertEquals.patch
new file mode 100644
index 00000000000..a1b6c96c79d
--- /dev/null
+++ b/testing/py3-redmine/assertEquals.patch
@@ -0,0 +1,23 @@
+diff --git a/tests/test_managers.py b/tests/test_managers.py
+index 37728b6..e435e1b 100644
+--- a/tests/test_managers.py
++++ b/tests/test_managers.py
+@@ -127,3 +127,3 @@ class ResourceManagerTestCase(BaseRedmineTestCase):
+ issue = self.redmine.issue.create(project_id=1, subject='Foo', uploads=[{'path': stream}])
+- self.assertEquals(len(w), 1)
++ self.assertEqual(len(w), 1)
+ self.assertIs(w[0].category, exceptions.PerformanceWarning)
+@@ -168,3 +168,3 @@ class ResourceManagerTestCase(BaseRedmineTestCase):
+ self.assertEqual(self.redmine.issue.update(1, subject='Bar', uploads=[{'path': stream}]), True)
+- self.assertEquals(len(w), 1)
++ self.assertEqual(len(w), 1)
+ self.assertIs(w[0].category, exceptions.PerformanceWarning)
+diff --git a/tests/test_redmine.py b/tests/test_redmine.py
+index 22d9600..f39098c 100644
+--- a/tests/test_redmine.py
++++ b/tests/test_redmine.py
+@@ -79,3 +79,3 @@ class RedmineTestCase(BaseRedmineTestCase):
+ self.assertEqual(self.redmine.upload(StringIO(b'\xcf\x86oo'.decode('utf-8')))['token'], '456789')
+- self.assertEquals(len(w), 1)
++ self.assertEqual(len(w), 1)
+ self.assertIs(w[0].category, exceptions.PerformanceWarning)
diff --git a/testing/py3-remind/APKBUILD b/testing/py3-remind/APKBUILD
new file mode 100644
index 00000000000..be402312b7c
--- /dev/null
+++ b/testing/py3-remind/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-remind
+pkgver=0.18.0
+pkgrel=3
+pkgdesc="Python library to convert between Remind and iCalendar"
+url="https://github.com/jspricke/python-remind"
+arch="noarch"
+license="GPL-3.0-only"
+depends="python3 remind py3-dateutil py3-tz py3-tzlocal py3-vobject"
+makedepends="
+ py3-coverage
+ py3-nose
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jspricke/python-remind/archive/v$pkgver.tar.gz"
+options="!check"
+builddir="$srcdir/python-remind-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="." nosetests
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0eeff9ac9f238ae682fd9a5d86a1e977a90f1a15c4871abebf324cc07172d7e9c9b43704e29d7f7ea53fb9092608b037d444d4fc4dc55eb3499246a8ba6c4784 py3-remind-0.18.0.tar.gz
+"
diff --git a/testing/py3-requests-file/APKBUILD b/testing/py3-requests-file/APKBUILD
deleted file mode 100644
index f863f500e18..00000000000
--- a/testing/py3-requests-file/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=py3-requests-file
-_pyname=requests-file
-pkgver=1.5.1
-pkgrel=0
-pkgdesc="Transport adapter for fetching file:// URLs with the requests python library"
-url="https://github.com/dashea/requests-file"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-mock py3-pytest py3-requests"
-source="$_pyname-$pkgver.tar.gz::https://github.com/dashea/requests-file/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # tests module needs an __init__ file
- touch tests/__init__.py
-
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="821d2c8092b035308d2723b28d0780cb0ae52b1a2856c3399d57357fbc0da4dc3568af67a5910163e86e90bfd6dc8e7195dce3a2adee7a74b228d6dd4b10ae5a requests-file-1.5.1.tar.gz"
diff --git a/testing/py3-requests-futures/APKBUILD b/testing/py3-requests-futures/APKBUILD
deleted file mode 100644
index 20c2088c98b..00000000000
--- a/testing/py3-requests-futures/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-requests-futures
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="Asynchronous Python HTTP for Humans"
-url="https://github.com/ross/requests-futures"
-arch="noarch"
-license="Apache-2.0"
-depends="python3 py3-requests"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/r/requests-futures/requests-futures-$pkgver.tar.gz"
-options="net" # net required for tests
-builddir="$srcdir/requests-futures-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="64b39ed99712df8f1be74b2de97500d89711c0d5d3ba0f2b64e3bab755d0bf82029d7ced13b755ce12a2b86f3b673305b651ba6ff4cfb60aed40c8d5876f202c requests-futures-1.0.0.tar.gz"
diff --git a/testing/py3-requests-kerberos/APKBUILD b/testing/py3-requests-kerberos/APKBUILD
new file mode 100644
index 00000000000..6c794a754fc
--- /dev/null
+++ b/testing/py3-requests-kerberos/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=py3-requests-kerberos
+_pkgname=requests-kerberos
+pkgver=0.14.0
+pkgrel=4
+pkgdesc="Kerberos authentication handler for using with Python Requests"
+url="https://github.com/requests/requests-kerberos"
+arch="noarch"
+license="Apache-2.0"
+depends="python3 py3-requests py3-spnego py3-cryptography"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-mock"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/requests/requests-kerberos/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+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="
+9dd6eed0d6afe4b852ba96f621be3af2965e9011bf372c5dce77e0bca18191255ea407ba313904271615d722d60029807db2d6815b24437b021b02b026eb60d6 py3-requests-kerberos-0.14.0.tar.gz
+"
diff --git a/testing/py3-requests-wsgi-adapter/APKBUILD b/testing/py3-requests-wsgi-adapter/APKBUILD
new file mode 100644
index 00000000000..b23f7a1624d
--- /dev/null
+++ b/testing/py3-requests-wsgi-adapter/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-requests-wsgi-adapter
+pkgver=0.4.1
+pkgrel=1
+# upstream does not tag releases on git:
+# https://github.com/seanbrant/requests-wsgi-adapter/issues/20
+_gitrev=5b771effb5414096089375a3a36a3e7af1522ae0
+pkgdesc="WSGI Transport Adapter for Requests"
+url="https://pypi.org/project/requests-wsgi-adapter/"
+arch="noarch"
+license="BSD-3-Clause"
+depends="py3-requests"
+checkdepends="py3-pytest"
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/seanbrant/requests-wsgi-adapter/archive/$_gitrev.tar.gz"
+builddir="$srcdir/requests-wsgi-adapter-$_gitrev"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 runtests.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f5f3572586f3a4cba98bcebfec2a77382e101fb799998007ad37f804ec721533ccb84bb7cc4f7ee8cf2fe9e61e75440b75003e88d384c44a6484acc65bfa3626 py3-requests-wsgi-adapter-0.4.1.tar.gz
+"
diff --git a/testing/py3-rfc-bibtex/APKBUILD b/testing/py3-rfc-bibtex/APKBUILD
new file mode 100644
index 00000000000..750852094e5
--- /dev/null
+++ b/testing/py3-rfc-bibtex/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-rfc-bibtex
+_pkgname=${pkgname#py3-}
+pkgver=0.3.2
+pkgrel=6
+pkgdesc="Command line tool that creates BibTex entries for IETF RFCs and Internet Drafts"
+url="https://github.com/iluxonchik/rfc-bibtex/"
+arch="noarch"
+license="MIT"
+makedepends="py3-setuptools"
+depends="py3-idna py3-multidict py3-yaml py3-vcrpy py3-wrapt py3-yarl"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/iluxonchik/rfc-bibtex/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+check() {
+ python3 -m unittest discover tests
+}
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="be67bf6e05df333333375e002344d2ca5fda133efbdcc400541ccc9c50b0452f1f52a1f65ec8f157930070fb44e05e0c1d26f220212112af0b0133f641156296 py3-rfc-bibtex-0.3.2.tar.gz"
diff --git a/testing/py3-rfc3987/APKBUILD b/testing/py3-rfc3987/APKBUILD
index edb7f7b794f..27aabba4d7c 100644
--- a/testing/py3-rfc3987/APKBUILD
+++ b/testing/py3-rfc3987/APKBUILD
@@ -2,13 +2,14 @@
# Maintainer: Iskren Chernev <iskren.chernev@gmail.com>
pkgname=py3-rfc3987
pkgver=1.3.8
-pkgrel=0
+pkgrel=5
pkgdesc="Parsing and validation of URIs (RFC 3896) and IRIs (RFC 3987)"
url="https://github.com/dgerber/rfc3987"
arch="noarch"
license="GPL-3.0-or-later"
depends="python3"
-makedepends="py3-setuptools py3-pip"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://pypi.io/packages/source/r/rfc3987/rfc3987-$pkgver.tar.gz"
builddir="$srcdir/rfc3987-$pkgver"
@@ -19,6 +20,6 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="0e81b8dbc8c410f08b1efa7ee1c90174ed6e70bf7622d3748f598d383583b439908e1b5da1e1a1eb22af4f214ae08680a29f00b253f37808034bae8a1808c32c py3-rfc3987-1.3.8.tar.gz"
diff --git a/testing/py3-rich-click/APKBUILD b/testing/py3-rich-click/APKBUILD
new file mode 100644
index 00000000000..e731844a2a6
--- /dev/null
+++ b/testing/py3-rich-click/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-rich-click
+pkgver=1.7.3
+pkgrel=1
+pkgdesc="Format click help output nicely with rich"
+url="https://github.com/ewels/rich-click"
+arch="noarch"
+license="MIT"
+depends="
+ py3-click
+ py3-rich
+ py3-typing-extensions
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ewels/rich-click/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/rich-click-$pkgver"
+
+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="
+f3e967142fcf5ba042265b4bd4a1f3f90df38f07996dd981f537bb226d144aa7c74c1bdbcb945d3048c5cdae02a06a1aaffce1633bbcfd568bc3ea466b08767d py3-rich-click-1.7.3.tar.gz
+"
diff --git a/testing/py3-riotctrl/APKBUILD b/testing/py3-riotctrl/APKBUILD
new file mode 100644
index 00000000000..2ffa9d082a2
--- /dev/null
+++ b/testing/py3-riotctrl/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-riotctrl
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="python object abstraction of a RIOT device"
+url="https://github.com/RIOT-OS/riotctrl"
+arch="noarch"
+license="MIT"
+depends="
+ py3-pexpect
+ py3-psutil
+ py3-rapidjson
+ python3
+ "
+makedepends="
+ py3-setuptools
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-cov
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/RIOT-OS/riotctrl/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/"riotctrl-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest \
+ --deselect riotctrl/tests/ctrl_test.py::test_riotctrl_application_dir \
+ --deselect riotctrl/tests/ctrl_test.py::test_riotctrl_curdir \
+ --deselect riotctrl/tests/shell_json_test.py::test_rapid_json_shell_interaction_parser_wo_rapidjson \
+ #
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/riotctrl/tests
+}
+
+sha512sums="
+95caf93c8594fc56f0b9bfa8eccd4bdbccaa223d963961c11ae54eeb842690ae9c7b88c4ef6892ddfdc0fa7e23804c41c460073b5e608c978c80ae48c9d5eafd py3-riotctrl-0.5.0.tar.gz
+"
diff --git a/testing/py3-rope/APKBUILD b/testing/py3-rope/APKBUILD
deleted file mode 100644
index 7081e4c4148..00000000000
--- a/testing/py3-rope/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-rope
-pkgver=0.17.0
-pkgrel=0
-pkgdesc="A Python refactoring library"
-url="https://github.com/python-rope/rope"
-arch="noarch"
-license="LGPL-3.0-only"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://github.com/python-rope/rope/archive/$pkgver/rope-$pkgver.tar.gz"
-builddir="$srcdir/rope-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m unittest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="6912b81e71630217cdeefe6bbf697123760ec1191f33bd980977036499cdfcce3e971cb93d7fe6913d8d0f1173e6527d10dba665342a54bc0dada6f66e97aba3 rope-0.17.0.tar.gz"
diff --git a/testing/py3-rosdistro/APKBUILD b/testing/py3-rosdistro/APKBUILD
new file mode 100644
index 00000000000..759e313a604
--- /dev/null
+++ b/testing/py3-rosdistro/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Russ Webber <russ@rw.id.au>
+# Maintainer: Russ Webber <russ@rw.id.au>
+pkgname=py3-rosdistro
+_pkgname=rosdistro
+pkgver=0.9.0
+pkgrel=3
+pkgdesc="Tools to work with catkinized rosdistro files"
+url="https://github.com/ros-infrastructure/rosdistro"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 py3-yaml py3-catkin-pkg"
+makedepends="py3-setuptools"
+checkdepends="py3-nose py3-mock"
+
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ros-infrastructure/rosdistro/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ nosetests --with-xunit test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+f3212c8dbceb2862ad8680da537cfdddb347fc302929afa0b0a8601dfa56fd328406eeb9a0d44aba2afa3c1c53fa934dc7721fc3fb2b2c9b0d3f2b9444e78174 py3-rosdistro-0.9.0.tar.gz
+"
diff --git a/testing/py3-rospkg/APKBUILD b/testing/py3-rospkg/APKBUILD
new file mode 100644
index 00000000000..b4cac94cf10
--- /dev/null
+++ b/testing/py3-rospkg/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Russ Webber <russ@rw.id.au>
+# Maintainer: Russ Webber <russ@rw.id.au>
+pkgname=py3-rospkg
+_pkgname=rospkg
+pkgver=1.2.9
+pkgrel=5
+pkgdesc="Standalone Python library for the ROS package system"
+url="http://wiki.ros.org/rospkg"
+arch="noarch"
+license="BSD-3-Clause"
+options="!check" # tests fail https://github.com/ros-infrastructure/rospkg/issues/202
+depends="python3 py3-yaml py3-catkin-pkg py3-distro"
+makedepends="py3-setuptools"
+checkdepends="py3-nose py3-mock"
+
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ros-infrastructure/rospkg/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ nosetests --cover-package=rospkg --with-xunit test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="e2e97b2454919a35b5a2ab938a3ab519a125457857c34badb9354f8322b1de704d429753589828500b46814ddad5ad6a7573149ab0a58a925bf7347eadf93746 py3-rospkg-1.2.9.tar.gz"
diff --git a/testing/py3-rpio/APKBUILD b/testing/py3-rpio/APKBUILD
index 9a56aaca72c..02262c9b6a2 100644
--- a/testing/py3-rpio/APKBUILD
+++ b/testing/py3-rpio/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-rpio
_pkgname=RPIO
pkgver=0.10.1
-pkgrel=2
+pkgrel=7
pkgdesc="GPIO toolbox for the Raspberry Pi"
options="!check" # No testsuite
url="https://github.com/metachris/RPIO"
arch="all"
license="LGPL-3.0-or-later"
makedepends="py3-setuptools python3-dev"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/metachris/RPIO/archive/v$pkgver.tar.gz
missing-typesh.patch"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -22,7 +23,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="47243abb5fa05a019e5de851035cf4d3e2d00b7ebb58fee86e3d89dc5ab4f4938c387d1824a721887a59706d0b401742c709ae53730f09cd021a224eddcd09c4 py3-rpio-0.10.1.tar.gz
diff --git a/testing/py3-rply/APKBUILD b/testing/py3-rply/APKBUILD
deleted file mode 100644
index b56eff56ece..00000000000
--- a/testing/py3-rply/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=py3-rply
-pkgver=0.7.7
-pkgrel=1
-pkgdesc="Python parser generator, that also works with RPython"
-url="https://github.com/alex/rply"
-arch="noarch"
-license="BSD-3-Clause-Clear"
-depends="py3-appdirs"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-runner"
-source="$pkgname-$pkgver.tar.gz::https://github.com/alex/rply/archive/v$pkgver.tar.gz"
-builddir="$srcdir/rply-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c01166b7df067a6a55d1b43caa7b5a349045e838899daf82e2ba70a2c2525fd68e95f11e5319a1fe36936e696352a37bdc13f132f739cd52759a9a9c91e317ba py3-rply-0.7.7.tar.gz"
diff --git a/testing/py3-rss2email/APKBUILD b/testing/py3-rss2email/APKBUILD
deleted file mode 100644
index 10664ed355d..00000000000
--- a/testing/py3-rss2email/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="py3-rss2email"
-_pyname="rss2email"
-pkgver="3.11"
-pkgrel=0
-pkgdesc="Forward RSS feeds to your email address, community maintained"
-url="https://github.com/rss2email/rss2email"
-arch="noarch"
-license="GPL-2.0-only"
-depends="python3 py3-feedparser py3-html2text py3-beautifulsoup4"
-makedepends="py3-setuptools"
-source="$_pyname-$pkgver.tar.gz::https://github.com/rss2email/rss2email/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="2efdef703a4b4774d85926f500a37689aea3a324f63a13a686a2322c9f69ac7b940c5b953f417d9259e1493b3dafde4c2e1ddb3433d085fb2400cd06001141bb rss2email-3.11.tar.gz"
diff --git a/testing/py3-rst.linker/APKBUILD b/testing/py3-rst.linker/APKBUILD
new file mode 100644
index 00000000000..27a866c6665
--- /dev/null
+++ b/testing/py3-rst.linker/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=py3-rst.linker
+pkgver=2.4.0
+pkgrel=2
+pkgdesc="Tools for adding metadata and hyperlinks to reStructuredText"
+url="https://github.com/jaraco/rst.linker"
+arch="noarch"
+license="MIT"
+depends="py3-dateutil py3-sphinx"
+makedepends="py3-gpep517 py3-installer py3-setuptools_scm py3-wheel"
+checkdepends="py3-path py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/r/rst.linker/rst.linker-$pkgver.tar.gz"
+builddir="$srcdir/rst.linker-$pkgver"
+
+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="
+31e3427ecf35b433cc9650138ee36090e99003b72c69b60b530835eb624d7eb13aae4cf81cc0044b36750798a4b8aa676e53e3b9eb335430076593640a243940 rst.linker-2.4.0.tar.gz
+"
diff --git a/testing/py3-rst/APKBUILD b/testing/py3-rst/APKBUILD
index fb5d9aa9c2d..e7de876cf0f 100644
--- a/testing/py3-rst/APKBUILD
+++ b/testing/py3-rst/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-rst
_pkgname=rst
pkgver=0.1
-pkgrel=3
+pkgrel=8
pkgdesc="A Python module to create reStructuredText documents"
url="https://github.com/kushaldas/rst"
arch="noarch"
@@ -11,6 +11,7 @@ license="MIT"
depends="python3 py3-six"
makedepends="py3-setuptools"
checkdepends="py3-mock"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -26,7 +27,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="77cf2500c79c702881ffaad23819c792575634046d30c3bc9ee3aef237c39bf2a20d85bd98c7d1ec175826beb4486b7c990c2750b4e045cb79fdfa51eb3220c6 rst-0.1.tar.gz"
diff --git a/testing/py3-rstr/APKBUILD b/testing/py3-rstr/APKBUILD
index 34135310a44..21d22a6b5e6 100644
--- a/testing/py3-rstr/APKBUILD
+++ b/testing/py3-rstr/APKBUILD
@@ -1,25 +1,36 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-rstr
-pkgver=2.2.6
-pkgrel=0
+pkgver=3.2.2
+pkgrel=3
pkgdesc="Random string generator"
-options="!check"
-url="https://bitbucket.org/leapfrogdevelopment/rstr"
+url="https://github.com/leapfrogonline/rstr"
arch="noarch"
license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-setuptools_scm py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/r/rstr/rstr-$pkgver.tar.gz"
builddir="$srcdir/rstr-$pkgver"
build() {
- python3 setup.py build
+ export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
+ 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"
- rm -rf "$pkgdir"/usr/lib/python3*/site-packages/*/tests
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="ddd4eb4ca25f2bd991d14af6ae800a911a7077dfb14ad1968bf9e62363505e54b4f98b36eb53b7077435f9703116cc2338490a3e0d6d4d1d6fe9857a4d560976 rstr-2.2.6.tar.gz"
+sha512sums="
+a7fe59cac3382a7ce4dea97b97aae607f6820a0aabf445426e0bedb127a053ed70990ac5137c52a78c2356089e0b474eac05c3cc794f705dc30a1f4ffa6c35ac rstr-3.2.2.tar.gz
+"
diff --git a/testing/py3-rtree/APKBUILD b/testing/py3-rtree/APKBUILD
new file mode 100644
index 00000000000..52acba3565e
--- /dev/null
+++ b/testing/py3-rtree/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=py3-rtree
+_pkgname=rtree
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Python3 library for r-tree spatial index (wrapper for libspatialindex)"
+url="https://pypi.org/project/Rtree/"
+# s390x: Test failed: IndexSerialization::test_interleaving - AssertionError
+# s390x: Test failed: IndexStream::test_stream_input - AssertionError
+arch="noarch !s390x"
+license="MIT"
+depends="python3 libspatialindex-dev"
+makedepends="py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-numpy"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Toblerity/rtree/archive/$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 -m pytest -v --doctest-modules rtree tests
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+97a87027e49520f12cb86444ee8a9795fabeec6d8f0e3e869f2714df8f7c649ced1374385852af0ce7d7eb91e5a2cb464a4330807be15d538dc0a4d8de7b7ca2 py3-rtree-1.1.0.tar.gz
+"
diff --git a/testing/py3-ruamel.yaml.clib/APKBUILD b/testing/py3-ruamel.yaml.clib/APKBUILD
deleted file mode 100644
index 6d4d0f20f21..00000000000
--- a/testing/py3-ruamel.yaml.clib/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-ruamel.yaml.clib
-pkgver=0.2.0
-pkgrel=0
-pkgdesc="C version of reader, parser and emitter for ruamel.yaml derived from libyaml"
-url="http://yaml.readthedocs.io/"
-arch="all"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools python3-dev"
-source="https://pypi.python.org/packages/source/r/ruamel.yaml.clib/ruamel.yaml.clib-$pkgver.tar.gz"
-options="!check" # Can't find .ruamel
-builddir="$srcdir/ruamel.yaml.clib-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --single-version-externally-managed
-}
-
-sha512sums="7d716e27963b97a1735ba7ff0e581f7ecdfa62725cc42def59ad0ccdf9e23a9f7dfbc3cac298bb3e29362535036b07ba0f523452d6f73248be53c69796637e34 ruamel.yaml.clib-0.2.0.tar.gz"
diff --git a/testing/py3-ruamel.yaml/APKBUILD b/testing/py3-ruamel.yaml/APKBUILD
deleted file mode 100644
index 75d9ea13646..00000000000
--- a/testing/py3-ruamel.yaml/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-ruamel.yaml
-pkgver=0.16.10
-pkgrel=0
-pkgdesc="ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order"
-url="https://yaml.readthedocs.io/en/latest/"
-arch="noarch"
-license="MIT"
-depends="python3 py3-ruamel.yaml.clib"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/r/ruamel.yaml/ruamel.yaml-$pkgver.tar.gz"
-options="!check" # No tests in Pypi package and no other download available
-builddir="$srcdir/ruamel.yaml-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --single-version-externally-managed
-}
-
-sha512sums="f124575a5054f993d5826d03aa7a9500a1084c5201be1517be36e587bfc60ea4d13b29dbdb3e62bfbd309fe9992590fd0a5028a43f0fd26a5a5cbc9f3dcf423b ruamel.yaml-0.16.10.tar.gz"
diff --git a/testing/py3-sabctools/APKBUILD b/testing/py3-sabctools/APKBUILD
new file mode 100644
index 00000000000..1d92df7b4dd
--- /dev/null
+++ b/testing/py3-sabctools/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=py3-sabctools
+_pkgname=sabctools
+pkgver=8.1.0
+pkgrel=1
+pkgdesc="C implementations of functions for use within SABnzbd"
+url="https://github.com/sabnzbd/sabctools"
+arch="all"
+license="GPL-2.0-or-later AND Apache-2.0 AND CC0-1.0"
+makedepends="
+ linux-headers
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ py3-chardet
+ py3-jaraco.functools
+ py3-portend
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sabnzbd/sabctools/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+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="
+862c39f2e386622b528f120a431f214e1e2e92b7c5a751e47d0768f40ce06ad2736d867f7ac2e1810d676e980312bbfedd29951cbadeddefe75246cdcf53fcc6 py3-sabctools-8.1.0.tar.gz
+"
diff --git a/testing/py3-schema/APKBUILD b/testing/py3-schema/APKBUILD
index f341f961f9f..9a059b8a036 100644
--- a/testing/py3-schema/APKBUILD
+++ b/testing/py3-schema/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Sasha Gerrand <alpine-pkgs@sgerrand.com>
# Maintainer: Sasha Gerrand <alpine-pkgs@sgerrand.com>
pkgname=py3-schema
-pkgver=0.7.2
-pkgrel=0
+pkgver=0.7.5
+pkgrel=3
pkgdesc="Schema is a library for validating Python data structures"
url="https://github.com/keleshev/schema"
arch="noarch"
@@ -10,6 +10,7 @@ license="MIT"
depends="python3"
checkdepends="py3-pytest py3-mock"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/keleshev/schema/archive/v$pkgver.tar.gz"
builddir="$srcdir/schema-$pkgver"
@@ -22,7 +23,9 @@ check() {
}
package() {
- PYTHONPATH="$PWD" python3 setup.py install --prefix=/usr --root="$pkgdir"
+ PYTHONPATH="$PWD" python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="7d40c64bb267da4f95f851d2cadbfc6a9606c1328d5ab9a81616849a7c52281a5a7bafdd3b09d9e8baff233a7da067d3f8ff15a13a1285d13cabfad8080b819b py3-schema-0.7.2.tar.gz"
+sha512sums="
+360669128595104ece7295769d29e57218cc49342e3744289389a3e62bfa66b2f086a52cafb1d6fb8ce1d8744d205045a384d7da3814f92ee7dfdf8acd5617d5 py3-schema-0.7.5.tar.gz
+"
diff --git a/testing/py3-scikit-learn/APKBUILD b/testing/py3-scikit-learn/APKBUILD
deleted file mode 100644
index e6de8bdb3e1..00000000000
--- a/testing/py3-scikit-learn/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Carlos Giraldo <cgiraldo@gradiant.org>
-# Maintainer: Carlos Giraldo <cgiraldo@gradiant.org>
-pkgname=py3-scikit-learn
-pkgver=0.23.1
-pkgrel=0
-pkgdesc="a Python module for machine learning built on top of SciPy"
-url="https://scikit-learn.org"
-arch="all !mips !mips64" # blocked by py3-numpy
-license="BSD-3-Clause"
-options="!check" # No test suite
-depends="py3-numpy py3-scipy"
-makedepends="cython py3-setuptools py3-numpy-dev python3-dev"
-source="https://files.pythonhosted.org/packages/source/s/scikit-learn/scikit-learn-$pkgver.tar.gz"
-builddir="$srcdir/scikit-learn-$pkgver"
-
-case "$CARCH" in
- aarch64)
- export SKLEARN_NO_OPENMP=1
- ;;
-esac
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f4225e2ae0654e5a0eddc566a900bc6e91b2dc498ead473719a3a5bc8c065da10710b43d44fa87ca0d24f699066d2e6c899b6d615b6fb270131265d8fd70982c scikit-learn-0.23.1.tar.gz"
diff --git a/testing/py3-scikit-optimize/APKBUILD b/testing/py3-scikit-optimize/APKBUILD
deleted file mode 100644
index 0c71666b7d9..00000000000
--- a/testing/py3-scikit-optimize/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-scikit-optimize
-pkgver=0.7.4
-pkgrel=0
-pkgdesc="Sequential model-based optimization with a 'scipy.optimize' interface"
-url="https://scikit-optimize.github.io/"
-arch="noarch !mips !mips64 !s390x" # Blocked by py3-joblib
-license="BSD-3-Clause"
-depends="python3 py3-numpy py3-scipy py3-scikit-learn py3-joblib py3-matplotlib"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/s/scikit-optimize/scikit-optimize-$pkgver.tar.gz"
-case "$CARCH" in
- # Broken tests on armv7 https://github.com/scikit-optimize/scikit-optimize/issues/900
- # Python fatal abort on armhf
- arm*) options="$options !check" ;;
-esac
-builddir="$srcdir/scikit-optimize-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="38cf9a90a2ee45d9717e565903b5d3835f53eed4dbcf5ae595dfb0bb81bf9b488fe5857c238e7e5ed9cf653ec95881106670d2019d2308ccfb15b8fe00199250 scikit-optimize-0.7.4.tar.gz"
diff --git a/testing/py3-scour/APKBUILD b/testing/py3-scour/APKBUILD
new file mode 100644
index 00000000000..bda8cd418fa
--- /dev/null
+++ b/testing/py3-scour/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Sertonix <sertonix@posteo.net>
+# Maintainer: Sertonix <sertonix@posteo.net>
+pkgname=py3-scour
+pkgver=0.38.2
+pkgrel=1
+pkgdesc="SVG Optimizer / Cleaner"
+url="https://github.com/scour-project/scour"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-six"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/scour-project/scour/archive/v$pkgver/py3-scour-$pkgver.tar.gz"
+builddir="$srcdir/scour-$pkgver"
+
+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="
+a2c418e25283af399be032322b3af0c336c2392ba361681d4b133b64ebc441ac5beeed2b920f42316cef376c971b230681e306687786a875162d33b659d3fdeb py3-scour-0.38.2.tar.gz
+"
diff --git a/testing/py3-scrapy/APKBUILD b/testing/py3-scrapy/APKBUILD
index 83ab3243ba8..2efec5d4bb1 100644
--- a/testing/py3-scrapy/APKBUILD
+++ b/testing/py3-scrapy/APKBUILD
@@ -1,37 +1,68 @@
# Contributor: Orion <systmkor@gmail.com>
# Maintainer: Orion <systmkor@gmail.com>
pkgname=py3-scrapy
-pkgver=2.1.0
-pkgrel=0
-pkgdesc="Fast high-level scraping and web crawling framework."
+pkgver=2.11.1
+pkgrel=1
+pkgdesc="Fast high-level scraping and web crawling framework"
url="https://scrapy.org/"
arch="noarch"
license="BSD-3-Clause"
depends="
- python3
+ py3-cryptography
py3-cssselect
+ py3-itemadapter
+ py3-itemloaders
py3-lxml
py3-openssl
py3-parsel
+ py3-protego
py3-pydispatcher
py3-queuelib
py3-service_identity
- py3-six
+ py3-tldextract
py3-twisted
py3-w3lib
+ py3-zope-interface
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pyftpdlib
+ py3-pytest
+ py3-sybil
+ py3-testfixtures
"
-makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/S/Scrapy/Scrapy-$pkgver.tar.gz"
builddir="$srcdir"/Scrapy-$pkgver
+options="!check" # take forever
+
+# secfixes:
+# 2.6.1-r0:
+# - CVE-2022-0577
+# - CVE-2022-21716
replaces="py-scrapy" # Backwards compatibility
provides="py-scrapy=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest tests
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="ec4ddc8b1fe427c93fabdc12c221f3bd26af9388b374d9ca8178ff78a3928dbc439cc983809a71203e4c20cda39ad021ccb104ee9ddf7dc31346309b7d75038a Scrapy-2.1.0.tar.gz"
+
+sha512sums="
+c33bf8fe45c96865483398920e823bd169d7d7e5d67dcfd5e57e4546f1016cfdcb404ebcbf67a6710a4597d5970f55481226fee25c27291dfaedfc00322327d9 Scrapy-2.11.1.tar.gz
+"
diff --git a/testing/py3-scs/APKBUILD b/testing/py3-scs/APKBUILD
new file mode 100644
index 00000000000..dee85f502a3
--- /dev/null
+++ b/testing/py3-scs/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=py3-scs
+pkgver=3.2.3
+pkgrel=3
+pkgdesc="C package that solves convex cone problems via operator splitting"
+url="https://github.com/cvxgrp/scs"
+arch="all"
+license="MIT"
+depends="python3 py3-numpy py3-scipy"
+makedepends="py3-setuptools py3-numpy-dev python3-dev"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="scs-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/s/scs/scs-$pkgver.tar.gz"
+builddir="$srcdir/scs-$pkgver"
+options="!check" # Cannot solve SDPs without linked blas+lapack libraries
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH=$(echo build/lib*) pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+9b3bef40f34fc9350444e2bd56602def10d2fedd6efd0c78eceacfba2f8276bfd16cd7e8a479cd9431c55f5efe65f6869d2d9ecb5dc6450801dd371f802ff3a9 scs-3.2.3.tar.gz
+"
diff --git a/testing/py3-secretstorage/APKBUILD b/testing/py3-secretstorage/APKBUILD
deleted file mode 100644
index c6ebdd1d563..00000000000
--- a/testing/py3-secretstorage/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=py3-secretstorage
-_pkgname="SecretStorage"
-pkgver=3.1.2
-pkgrel=1
-pkgdesc="Python bindings to Freedesktop.org Secret Service API"
-url="https://github.com/mitya57/secretstorage"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-cryptography"
-makedepends="py3-setuptools"
-source=" https://files.pythonhosted.org/packages/source/S/SecretStorage/SecretStorage-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c132b21556c55b5912354fd27b6062d32c0f510234f7fe57f6e8e0acb08393ad95e0896967b577de97821387cd714e62b657359230296449e4e0a7ae5a797803 SecretStorage-3.1.2.tar.gz"
diff --git a/testing/py3-semantic-version/APKBUILD b/testing/py3-semantic-version/APKBUILD
deleted file mode 100644
index 7db24dbf2a9..00000000000
--- a/testing/py3-semantic-version/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
-pkgname=py3-semantic-version
-pkgver=2.8.5
-pkgrel=0
-pkgdesc="A library implementing the 'SemVer' scheme"
-url="https://github.com/rbarrois/python-semanticversion"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rbarrois/python-semanticversion/archive/$pkgver.tar.gz"
-builddir="$srcdir/python-semanticversion-$pkgver"
-
-replaces=py-semanticversion # Backwards compatibility
-provides=py-semanticversion=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e59508b12ac0f1b46f1d97f633f5bead99c41542c51c2714a4074eda9da6a04cd103be20eafd031b541834b6ee99b4f9f9ee9baec58b9f8a313d0c727aeab68d py3-semantic-version-2.8.5.tar.gz"
diff --git a/testing/py3-send2trash/APKBUILD b/testing/py3-send2trash/APKBUILD
deleted file mode 100644
index a9787b394e4..00000000000
--- a/testing/py3-send2trash/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=py3-send2trash
-pkgver=1.5.0
-pkgrel=0
-pkgdesc="Send file to trash natively"
-url="https://github.com/hsoft/send2trash"
-arch="noarch"
-license="BSD-3-Clause"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/S/Send2Trash/Send2Trash-$pkgver.tar.gz"
-builddir="$srcdir/"Send2Trash-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3c08ef513e5707cd4ac82290b326bb19161222c7a84b8ffd494789ba9858929241f55ea55482947af464c14e32fea27bd92cd762a32a1d55e2daf2e21fd63172 Send2Trash-1.5.0.tar.gz"
diff --git a/testing/py3-seqdiag/APKBUILD b/testing/py3-seqdiag/APKBUILD
index 4b5c1e14a8a..4a5a03138d0 100644
--- a/testing/py3-seqdiag/APKBUILD
+++ b/testing/py3-seqdiag/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-seqdiag
_pkgname=seqdiag
-pkgver=2.0.0
-pkgrel=0
+pkgver=3.0.0
+pkgrel=5
pkgdesc="Generate sequence-diagram image file from spec-text file"
-url="https://pypi.python.org/pypi/seqdiag"
+url="https://pypi.org/project/seqdiag"
arch="noarch"
license="Apache-2.0"
depends="py3-funcparserlib py3-blockdiag py3-pillow"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-seqdiag" # for backwards compatibility
+replaces="py-seqdiag" # for backwards compatibility
provides="py-seqdiag=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="944fbacffefb496a3ac4959af7681122f686b9a5d4a019659128c8b999314e52860068474c67265c328f31fd3e750f3d2e3e7c633c50f5d4bcbe1880feb94804 seqdiag-2.0.0.tar.gz"
+sha512sums="
+b98a7056abc9941fe88fec5e58d07fa76b027d24204a0b072aa15690d557303589fb2bffed59f6be1b58c8bdadac9cac3e75e427e027bc815a82e97be9570e22 seqdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-serial/APKBUILD b/testing/py3-serial/APKBUILD
deleted file mode 100644
index 56bdba87203..00000000000
--- a/testing/py3-serial/APKBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-serial
-_pkgname=pyserial
-pkgver=3.4
-pkgrel=3
-pkgdesc="Python Serial Port Extension"
-options="!check" # testsuite not ready for py3
-url="https://github.com/pyserial/pyserial"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc $pkgname-examples"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-serial" # Backwards compatibility
-provides="py-serial=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname/
- # Documentation files
- _docs="appendix.rst examples.rst index.rst pyserial.rst \
- pyserial_api.rst shortintro.rst tools.rst url_handlers.rst"
- for _doc in $_docs; do
- mv "$srcdir"/$_pkgname-$pkgver/documentation/$_doc \
- "$subpkgdir"/usr/share/doc/$pkgname/$_doc
- done
-}
-
-examples() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/$pkgname/examples
- # Example files
- _examples="port_publisher.sh rfc2217_server.py tcp_serial_redirect.py\
- wxSerialConfigDialog.py wxTerminal.py port_publisher.py\
- at_protocol.py setup-miniterm-py2exe.py\
- setup-rfc2217_server-py2exe.py setup-wxTerminal-py2exe.py\
- wxSerialConfigDialog.wxg wxTerminal.wxg"
- for _example in $_examples; do
- mv "$srcdir"/$_pkgname-$pkgver/examples/$_example \
- "$subpkgdir"/usr/share/doc/$pkgname/examples/$_example
- done
-}
-
-sha512sums="d71dffc330704e41caac6054adf192bee2f1c119691faf2ea93fe22e8e3ba000dc4a1434293f6f80d05a5577d85b96791f656e28d5c63fb0ce6a6605467a117f pyserial-3.4.tar.gz"
diff --git a/testing/py3-serpent/APKBUILD b/testing/py3-serpent/APKBUILD
deleted file mode 100644
index ea3086f31ce..00000000000
--- a/testing/py3-serpent/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-serpent
-_pyname=serpent
-pkgver=1.30.2
-pkgrel=0
-pkgdesc="Serialization based on ast.literal_eval for Python"
-url="https://pypi.org/project/serpent/"
-arch="noarch"
-license="MIT"
-makedepends="py3-setuptools"
-checkdepends="py3-attrs py3-tz"
-source="https://files.pythonhosted.org/packages/source/${_pyname:0:1}/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-replaces="py-serpent" # Backwards compatiblity
-provides="py-serpent=$pkgname-r$pkgrel" # Backwards compatiblity
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1cbc490deae3fb81c59abf74a98437e8c31f1ad88ce31a96c7ae48f344701dfcd67e973d2829cf793c405c6c1930cb7f15dec129c0a0e1b475286dd4f219ff99 serpent-1.30.2.tar.gz"
diff --git a/testing/py3-setuptools-declarative-requirements/APKBUILD b/testing/py3-setuptools-declarative-requirements/APKBUILD
new file mode 100644
index 00000000000..f1cae441167
--- /dev/null
+++ b/testing/py3-setuptools-declarative-requirements/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-setuptools-declarative-requirements
+pkgver=1.3.0
+pkgrel=3
+pkgdesc="Requirements Support For Setuptools Declarative setup.cfg"
+url="https://github.com/s0undt3ch/setuptools-declarative-requirements"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-setuptools"
+makedepends="py3-setuptools_scm py3-gpep517 py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/s0undt3ch/setuptools-declarative-requirements/archive/refs/tags/$pkgver/py3-setuptools-declarative-requirements-$pkgver.tar.gz"
+builddir="$srcdir/setuptools-declarative-requirements-$pkgver"
+options="!check" # circular dependency with py3-pytest-shell-utilities
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+eb20016ab0b8029a38ff4632d19d63cd4b6396c9d101efce577ac862feb3fc485ac4a644035d3267cd05caf679f9b2259e1d1340f8cd902ea7c7451e099c71cc py3-setuptools-declarative-requirements-1.3.0.tar.gz
+"
diff --git a/testing/py3-setuptools-git/APKBUILD b/testing/py3-setuptools-git/APKBUILD
deleted file mode 100644
index 0ae7b17c988..00000000000
--- a/testing/py3-setuptools-git/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-setuptools-git
-_pkgname=setuptools-git
-pkgver=1.2
-pkgrel=2
-pkgdesc="Setuptools plugin for Git"
-url="https://github.com/wichert/setuptools-git"
-arch="noarch"
-license="BSD-3-Clause"
-replaces="py-setuptools-git" # for backwards compatibility
-provides="py-setuptools-git=$pkgver-r$pkgrel" # for backwards compatibility
-depends="python3 git"
-makedepends="python3-dev py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- export EMAIL="Test User <user@example.com>"
- python3 setup.py test
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c070911618b6b92c862fb0bd40f1daeaf79e2ba10389fa1e69e4c50cfdd39c8e57a612082cbc7d932f8cea12a769e13451e35e1c8fe34f170d4817fd0d44f156 setuptools-git-1.2.tar.gz"
diff --git a/testing/py3-setuptools-lint/APKBUILD b/testing/py3-setuptools-lint/APKBUILD
index e7619e1dbf0..2c6b82cd42a 100644
--- a/testing/py3-setuptools-lint/APKBUILD
+++ b/testing/py3-setuptools-lint/APKBUILD
@@ -2,24 +2,31 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-setuptools-lint
pkgver=0.6.0
-pkgrel=0
-pkgdesc="Setuptools plugin for Git"
+pkgrel=9
+pkgdesc="Expose pylint as a lint command into setup.py"
url="https://github.com/johnnoone/setuptools-pylint"
arch="noarch"
license="BSD"
-depends="python3 py3-setuptools"
+depends="py3-setuptools"
+makedepends="py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/s/setuptools-lint/setuptools-lint-$pkgver.tar.gz"
builddir="$srcdir"/setuptools-lint-$pkgver
-replaces="py-setuptools-lint" # Backwards compatibility
+replaces="py-setuptools-lint" # Backwards compatibility
provides="py-setuptools-lint=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="d36c10bab45672b3c7d92391c8f1ae297a483500654e8b31a312587c9d9355a74beddb466ea952fa4cc8bc035c4f631536eeefd61ae159f807767f61fabc72d4 setuptools-lint-0.6.0.tar.gz"
+sha512sums="
+d36c10bab45672b3c7d92391c8f1ae297a483500654e8b31a312587c9d9355a74beddb466ea952fa4cc8bc035c4f631536eeefd61ae159f807767f61fabc72d4 setuptools-lint-0.6.0.tar.gz
+"
diff --git a/testing/py3-sh/APKBUILD b/testing/py3-sh/APKBUILD
new file mode 100644
index 00000000000..6edfd555b39
--- /dev/null
+++ b/testing/py3-sh/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-sh
+_pyname=sh
+pkgver=2.0.6
+pkgrel=1
+pkgdesc="Python subprocess replacement"
+url="https://sh.readthedocs.io/"
+license="MIT"
+arch="noarch"
+depends="python3"
+makedepends="py3-gpep517 py3-poetry-core"
+checkdepends="py3-pytest lsof coreutils"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://pypi.io/packages/source/s/sh/sh-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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="
+717dae58ebd08b3a86e0d30ba2a6f3055592844d064265280b97a1d29bd7d0422c9e5500b6eb999cc1a97c1c2af04cf8ed214670bc08cb2bc45e418f69560c1d py3-sh-2.0.6.tar.gz
+"
diff --git a/testing/py3-shellingham/APKBUILD b/testing/py3-shellingham/APKBUILD
deleted file mode 100644
index 7ac20cf196b..00000000000
--- a/testing/py3-shellingham/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-shellingham
-_realname=shellingham
-pkgver=1.3.1
-pkgrel=1
-pkgdesc="Python3 module to poke around and find out running shell"
-options="!check" # Requires unpackaged dependencies
-url="https://github.com/sarugaku/shellingham"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sarugaku/shellingham/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ba728bed5b3c0d715e8557f8364e98eebc006a4375b6e1a9c4be92571cd71c7bf6856571f3bf66879c8075fdfebc0a54a6a5190c40811b028616c5b28808d832 py3-shellingham-1.3.1.tar.gz"
diff --git a/testing/py3-shodan/APKBUILD b/testing/py3-shodan/APKBUILD
new file mode 100644
index 00000000000..9676ed0506b
--- /dev/null
+++ b/testing/py3-shodan/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-shodan
+pkgver=1.31.0
+pkgrel=1
+pkgdesc="The official Python library for Shodan"
+url="https://developer.shodan.io/"
+arch="noarch"
+license="MIT"
+depends="
+ python3
+ py3-click
+ py3-click-plugins
+ py3-colorama
+ py3-requests
+ py3-setuptools
+ py3-xlsxwriter
+ py3-tldextract
+ "
+makedepends="
+ py3-gpep517
+ py3-sphinx
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://pypi.python.org/packages/source/s/shodan/shodan-$pkgver.tar.gz"
+builddir="$srcdir/shodan-$pkgver"
+options="!check" # tests require a working api key
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+
+ make -C docs man
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ install -Dm644 docs/_build/man/shodan-python.1 \
+ -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+fe66fdd4ae1088d165a2acd67f85a54a9fcbed8130ee5e2a5764d318fa0c50fb472fd5a76ce72f84fcfdb4c74c29ae2e14881f86468fb177ddc3191cb95d3b67 shodan-1.31.0.tar.gz
+"
diff --git a/testing/py3-shortuuid/APKBUILD b/testing/py3-shortuuid/APKBUILD
index 4ad7a3201bc..4fd011cf015 100644
--- a/testing/py3-shortuuid/APKBUILD
+++ b/testing/py3-shortuuid/APKBUILD
@@ -1,14 +1,16 @@
# Maintainer:
pkgname=py3-shortuuid
_pkgname=shortuuid
-pkgver=1.0.1
-pkgrel=0
+pkgver=1.0.11
+pkgrel=3
pkgdesc="Python library that generates short, pretty, unambiguous unique IDs"
-url="https://pypi.python.org/pypi/shortuuid/"
+url="https://pypi.org/project/shortuuid/"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
makedepends="py3-setuptools"
+checkdepends="py3-django"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/shortuuid-$pkgver"
@@ -24,7 +26,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="fd8eca4b8b944c591f51aba4fceedddf4adac7fb052a40304fff8590a535b451ffe15b48dde9164d4386be9f5ca9af824c936812bfb192991c443b20a1e38070 shortuuid-1.0.1.tar.gz"
+sha512sums="
+3aec978713a9a95aa3cb269c0772fd1c4849587041d81765aac816004cad05eea29cad7cc90e31dc85b1f4886ea08c643b4495f7920f93c2a73358bdfce6edb8 shortuuid-1.0.11.tar.gz
+"
diff --git a/testing/py3-simber/APKBUILD b/testing/py3-simber/APKBUILD
new file mode 100644
index 00000000000..901918aa583
--- /dev/null
+++ b/testing/py3-simber/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-simber
+_pkgname=simber
+pkgver=0.2.6
+pkgrel=3
+pkgdesc="Simple, minimal and powerful logging library for Python"
+url="https://github.com/deepjyoti30/simber"
+arch="noarch"
+license="MIT"
+depends="py3-colorama"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest $depends"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/deepjyoti30/simber/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 -m pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+805f5c4aa08e1a6af803528648d3359d745fafba5e44ac416a8bdfc1e9c4ec80e9436aecd82e5b8efb16ec8b346074dc5b1300026ae21e4211777a0eb1642986 py3-simber-0.2.6.tar.gz
+"
diff --git a/testing/py3-simplematch/APKBUILD b/testing/py3-simplematch/APKBUILD
new file mode 100644
index 00000000000..52504cd69c3
--- /dev/null
+++ b/testing/py3-simplematch/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-simplematch
+pkgver=1.4
+pkgrel=1
+pkgdesc="Minimal, super readable string pattern matching"
+url="https://github.com/tfeldmann/simplematch"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tfeldmann/simplematch/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/simplematch-$pkgver"
+
+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="
+fe11eed63cd5ec916cafbd61da77bda5049a4f5ed0dece36e21e2350625fa9fc77f2ecbfffe04d2414cc3d0b553a635543af6ed56eb1fbfc871ab33499995f00 py3-simplematch-1.4.tar.gz
+"
diff --git a/testing/py3-simplesoapy/APKBUILD b/testing/py3-simplesoapy/APKBUILD
new file mode 100644
index 00000000000..6d183f58e94
--- /dev/null
+++ b/testing/py3-simplesoapy/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-simplesoapy
+pkgver=1.5.1
+pkgrel=6
+pkgdesc="Simple pythonic wrapper for SoapySDR library"
+url="https://github.com/xmikos/simplesoapy"
+arch="noarch"
+license="MIT"
+depends="python3 py3-numpy py3-soapy-sdr"
+makedepends="py3-setuptools soapy-sdr-dev"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xmikos/simplesoapy/archive/v$pkgver.tar.gz"
+builddir="$srcdir/simplesoapy-$pkgver"
+options="!check" # no unit tests provided
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+5ef0a4fcd84e1da9207154d4b8c4679e8aa2c9885ca76eacb17c4fbd39f489be459f52bfd42ee9b369790c33a02ecc5d776735cf1665f3ee034c1e315fdbb818 py3-simplesoapy-1.5.1.tar.gz
+"
diff --git a/testing/py3-simplespectral/APKBUILD b/testing/py3-simplespectral/APKBUILD
new file mode 100644
index 00000000000..01a1c149f79
--- /dev/null
+++ b/testing/py3-simplespectral/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-simplespectral
+pkgver=1.0.0
+pkgrel=4
+pkgdesc="Heavily simplified scipy.signal.spectral module"
+url="https://github.com/xmikos/simplespectral"
+arch="noarch"
+license="MIT"
+depends="python3 py3-numpy py3-scipy py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xmikos/simplespectral/archive/v$pkgver.tar.gz"
+builddir="$srcdir/simplespectral-$pkgver"
+options="!check" # no checks provided
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ # Currently all 0 of the 0 existing tests are passing :-) But it doesn't
+ # hurt to have this in place in case some tests are added
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="16da3cb19cd7c567b64709a26ed5def7eb3047b08e2cb48db6962036a6c3e34c122dadf71821b6a22df55ebcf3c2ff95e3af3898efc8b4a6d5902e48de8e050c py3-simplespectral-1.0.0.tar.gz"
diff --git a/testing/py3-slidge-style-parser/APKBUILD b/testing/py3-slidge-style-parser/APKBUILD
new file mode 100644
index 00000000000..7d0f8662eff
--- /dev/null
+++ b/testing/py3-slidge-style-parser/APKBUILD
@@ -0,0 +1,45 @@
+# Automatically generated by apkbuild-pypi, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=py3-slidge-style-parser
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=slidge-style-parser
+pkgver=0.1.6
+pkgrel=1
+pkgdesc="Style parser for Slidge"
+url="https://pypi.org/project/slidge-style-parser/"
+arch="all"
+license="AGPL-3.0-or-later"
+makedepends="cargo py3-gpep517 py3-maturin"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/s/slidge-style-parser/slidge_style_parser-$pkgver.tar.gz"
+builddir="$srcdir/slidge_style_parser-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --config-json '{"build-args": "--frozen"}' \
+ --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="
+e006e455f5139e58b88e515b42b31b9d35a2c981a5b1e3284cb1661c04d7ffaa0781bab7faffb77d4ba40ee5efee285468ec41b296e6f130418a16a12b3e2086 slidge_style_parser-0.1.6.tar.gz
+"
diff --git a/testing/py3-slixmpp/APKBUILD b/testing/py3-slixmpp/APKBUILD
new file mode 100644
index 00000000000..71bfb074106
--- /dev/null
+++ b/testing/py3-slixmpp/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: Sam Whited <sam@samwhited.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=py3-slixmpp
+_pkgname=slixmpp
+pkgver=1.8.5
+pkgrel=2
+pkgdesc="Fork of the SleekXMPP XMPP library for async IO and Python 3.7+"
+url="https://slixmpp.readthedocs.io/en/latest/"
+arch="all"
+license="MIT"
+depends="
+ py3-aiodns
+ py3-aiohttp
+ py3-cryptography
+ py3-defusedxml
+ py3-emoji
+ "
+makedepends="
+ cython
+ libidn-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ cmd:gpg
+ py3-pytest
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-pyc
+ "
+source="https://files.pythonhosted.org/packages/source/s/slixmpp/slixmpp-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+# secfixes:
+# 1.8.3-r0:
+# - CVE-2022-45197
+
+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 \
+ --ignore tests/live_test.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+ install -Dm644 README.rst -t "$pkgdir"/usr/share/doc/$pkgname/
+}
+
+sha512sums="
+f2e123bd462097d0b7dc28cd960f723419f4fa2af59c8f5b7d30a05135c2f9fc6982e6d2855ea10b22936bdd4a96faeae73f87a495e2d1f10e6c63cdcb412665 slixmpp-1.8.5.tar.gz
+"
diff --git a/testing/py3-slugify/APKBUILD b/testing/py3-slugify/APKBUILD
deleted file mode 100644
index 0c2644793b5..00000000000
--- a/testing/py3-slugify/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-slugify
-pkgver=4.0.0
-pkgrel=0
-pkgdesc="A Python slugify application that handles unicode"
-url="https://github.com/un33k/python-slugify"
-arch="noarch"
-license="MIT"
-depends="python3 py3-text-unidecode"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/un33k/python-slugify/archive/$pkgver.tar.gz"
-builddir="$srcdir/python-slugify-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 test.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a4b0da48ee887a24a022076c9b21fa5795ab104b1d382bae96fc7ba5ce6c09c0cc42e1f4c3b6874b44097d2246ea5b18302dc42386d8844fa41f495744e5ed90 py3-slugify-4.0.0.tar.gz"
diff --git a/testing/py3-smmap2/APKBUILD b/testing/py3-smmap2/APKBUILD
deleted file mode 100644
index b67fdf1551a..00000000000
--- a/testing/py3-smmap2/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-smmap2
-pkgver=3.0.1
-pkgrel=0
-pkgdesc="pure Python3 implementation of a sliding window memory map manager"
-url="https://github.com/gitpython-developers/smmap"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose py3-nosexcover py3-coverage"
-source="$pkgname-$pkgver.tar.gz::https://github.com/gitpython-developers/smmap/archive/v$pkgver.tar.gz"
-builddir="$srcdir/smmap-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c626629f3e4760bde862ed98808a073a53febe3325da70956b14491ad3699d7d60a68492e6ebd42f7f53d99bff1e7fef2d9bcc9c58118041a7e7fdee012a086e py3-smmap2-3.0.1.tar.gz"
diff --git a/testing/py3-snapshottest/APKBUILD b/testing/py3-snapshottest/APKBUILD
new file mode 100644
index 00000000000..ab8ae36b0bd
--- /dev/null
+++ b/testing/py3-snapshottest/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-snapshottest
+pkgver=0.6.0
+pkgrel=4
+pkgdesc="Snapshot testing for pytest, unittest, Django, and Nose"
+url="https://github.com/syrusakbary/snapshottest"
+arch="noarch"
+license="MIT"
+depends="
+ py3-fastdiff
+ py3-termcolor
+ python3
+ "
+makedepends="py3-setuptools"
+checkdepends="
+ py3-django
+ py3-nose
+ py3-pytest
+ py3-pytest-cov
+ py3-six
+ "
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/s/snapshottest/snapshottest-$pkgver.tar.gz
+ importlib.patch
+ "
+builddir="$srcdir/snapshottest-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD/build/lib" pytest --ignore tests/test_pytest.py
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0f39ec0b2255291d35bcc873b73b3802b427efd53b8d12ab373a76193dfe9d108534980f8081be38fadbf2392915e8e0d63547e5bf0479ea06d8d79cde4016ce snapshottest-0.6.0.tar.gz
+2ee20d34f7db1a736401d0b217576dad1b308bb69b578a17123cfeab3e363c0cfc0348e321c2f299f01324997034230c61ed3eba6145da1f726f64474d5aa39a importlib.patch
+"
diff --git a/testing/py3-snapshottest/importlib.patch b/testing/py3-snapshottest/importlib.patch
new file mode 100644
index 00000000000..bf4d2572d82
--- /dev/null
+++ b/testing/py3-snapshottest/importlib.patch
@@ -0,0 +1,24 @@
+replace deprecated imp module
+
+diff --git a/snapshottest/module.py b/snapshottest/module.py
+index 2f02c83..b0959ed 100644
+--- a/snapshottest/module.py
++++ b/snapshottest/module.py
+@@ -1,7 +1,7 @@
+ import codecs
+ import errno
+ import os
+-import imp
++from importlib.machinery import SourceFileLoader
+ from collections import defaultdict
+ import logging
+
+@@ -29,7 +29,7 @@ class SnapshotModule(object):
+
+ def load_snapshots(self):
+ try:
+- source = imp.load_source(self.module, self.filepath)
++ source = SourceFileLoader(self.module, self.filepath).load_module()
+ # except FileNotFoundError: # Python 3
+ except (IOError, OSError) as err:
+ if err.errno == errno.ENOENT:
diff --git a/testing/py3-sniffio/APKBUILD b/testing/py3-sniffio/APKBUILD
deleted file mode 100644
index 31cb76b98bd..00000000000
--- a/testing/py3-sniffio/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-sniffio
-pkgver=1.1.0
-pkgrel=0
-pkgdesc="Sniff out which async library your code is running under"
-url="https://github.com/python-trio/sniffio"
-arch="noarch"
-license="MIT OR Apache-2.0"
-depends="python3 py3-curio"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/s/sniffio/sniffio-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/sniffio-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f315c79245ccec8e1e6e0f8ffe4cf42fdab7f5fe3e680ddc05c65732a6d26989ac1459135f13938380928b02802bc0a6b1174c83118a60b0ad15f59730927912 sniffio-1.1.0.tar.gz"
diff --git a/testing/py3-soappy/APKBUILD b/testing/py3-soappy/APKBUILD
new file mode 100644
index 00000000000..0b54d805cb7
--- /dev/null
+++ b/testing/py3-soappy/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=py3-soappy
+pkgver=0.52.28
+pkgrel=2
+pkgdesc="Simple to use SOAP library for Python"
+url="https://github.com/Synerty/SOAPpy-py3"
+options="!check" # Requires running servere
+arch="noarch"
+license="BSD-3-Clause-Attribution"
+depends="py3-defusedxml py3-wstools py3-m2crypto"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://pypi.io/packages/source/S/SOAPpy-py3/SOAPpy-py3-$pkgver.tar.gz"
+builddir="$srcdir/SOAPpy-py3-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir"
+}
+
+sha512sums="
+fcfee577ccf142900215c52567c7393b8df268feca1ceccb4978b207733bce33cd2b17f4e4064e87c42d38d749e305f698615fde29531c027b661c388ba33771 SOAPpy-py3-0.52.28.tar.gz
+"
diff --git a/testing/py3-soapy_power/APKBUILD b/testing/py3-soapy_power/APKBUILD
new file mode 100644
index 00000000000..a407013d5ad
--- /dev/null
+++ b/testing/py3-soapy_power/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-soapy_power
+pkgver=1.6.1
+pkgrel=4
+pkgdesc="Obtain power spectrum from SoapySDR devices"
+url="https://github.com/xmikos/soapy_power"
+arch="noarch"
+license="MIT"
+depends="python3 py3-numpy py3-simplesoapy py3-simplespectral py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xmikos/soapy_power/archive/v$pkgver.tar.gz"
+builddir="$srcdir/soapy_power-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="19aa0e80a7b67cb29d842343c09b8ca2e3068583c8117a8151c5b47f1a34369f0ec833f038595323712986c9348b14a43dc1fdc6516adb40de6b42a281d782e1 py3-soapy_power-1.6.1.tar.gz"
diff --git a/testing/py3-solidpython/APKBUILD b/testing/py3-solidpython/APKBUILD
new file mode 100644
index 00000000000..a2fe49c480a
--- /dev/null
+++ b/testing/py3-solidpython/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-solidpython
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="Python library to generated OpenSCAD code"
+url="https://github.com/SolidCode/SolidPython"
+arch="noarch !aarch64 !armv7 !armhf !s390x" # openscad
+license="LGPL-2.1-or-later"
+depends="
+ openscad
+ py3-astroid
+ py3-euclid3<0.2.0
+ py3-mccabe
+ py3-platformdirs
+ py3-ply
+ py3-prettytable
+ py3-pypng
+ py3-regex
+ py3-setuptools
+ py3-tomlkit
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+_pyname="solidpython"
+_pypiprefix="${_pyname%"${_pyname#?}"}"
+subpackages="$pkgname-pyc"
+source="
+ https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
+ poetry-core.patch
+ "
+builddir="$srcdir/$_pyname-$pkgver"
+
+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 discover solid/test
+ # local i; for i in solid/test/test_*.py; do
+ # echo "$i"
+ # python3 "$i"
+ # done
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/solid/test
+}
+
+sha512sums="
+b66b530fc1abc9c8c3044ad0bb74f7dab2932c77e6374a1e46573f934c2d59af9c24dae86e54201dec7ebae4d3e0dbfa2c2733fa18394a9ce87d5fd562544dc0 solidpython-1.1.2.tar.gz
+df25c55af2d6dc6744b344deab129b5128c60d3c768f92018cbf7ceeca06f414fe427c231045ca8f0586a6f2bfbd598f8c2964492bf5def620f4a38ba5d84c96 poetry-core.patch
+"
diff --git a/testing/py3-solidpython/poetry-core.patch b/testing/py3-solidpython/poetry-core.patch
new file mode 100644
index 00000000000..bfb6010ead8
--- /dev/null
+++ b/testing/py3-solidpython/poetry-core.patch
@@ -0,0 +1,11 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index e29373a..3ce3993 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -56,5 +56,5 @@ requires = [
+
+ ]
+
+-build-backend = "poetry.masonry.api"
++build-backend = "poetry.core.masonry.api"
+
diff --git a/testing/py3-sortedcollections/APKBUILD b/testing/py3-sortedcollections/APKBUILD
new file mode 100644
index 00000000000..8c18ef9f0b0
--- /dev/null
+++ b/testing/py3-sortedcollections/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Sam Whited <sam@samwhited.com>
+# Maintainer: Sam Whited <sam@samwhited.com>
+pkgname=py3-sortedcollections
+_pkgname=sortedcollections
+pkgver=2.1.0
+pkgrel=4
+pkgdesc="A Python library containing various sorted collections."
+url="https://pypi.org/project/sortedcollections/"
+arch="all"
+license="Apache-2.0"
+depends="python3"
+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"
+options="!check" # tests not included in source package.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 LICENSE README.rst -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+e0ea72c24300c156bd9f9d40c42c92ad4a6391f7fa17675cf956a02617b9614aa329c24e3c7a9abd6662d45cf4f12f6d04296d69b287bae11b5f320481fd5748 sortedcollections-2.1.0.tar.gz
+"
diff --git a/testing/py3-spacy/APKBUILD b/testing/py3-spacy/APKBUILD
deleted file mode 100644
index b33d17eaa17..00000000000
--- a/testing/py3-spacy/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-spacy
-pkgver=2.2.4
-pkgrel=0
-pkgdesc="Industrial-strength Natural Language Processing (NLP)"
-url="https://spacy.io/"
-arch="x86_64" # limited by py3-blis as it has highly optimized routines for x86_64 only
- # and py3-srsly as it does not pass tests for x86 and aarch64, reported upstream
-license="MIT"
-depends="
- python3
- py3-numpy
- py3-jsonschema
- py3-thinc
- py3-srsly
- py3-tqdm
- py3-wasabi
- py3-pyrsistent
- py3-plac
- py3-catalogue
- "
-makedepends="python3-dev py3-setuptools cython py3-requests"
-checkdepends="py3-pytest py3-pytest-timeout py3-mock py3-flake8"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/explosion/spaCy/archive/v$pkgver.tar.gz"
-builddir=$srcdir/spaCy-$pkgver
-
-build() {
- python3 setup.py build_ext --inplace
-}
-
-check() {
- pytest-3 spacy
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="3e339dfa593d613b0f6864af7c3d33f458dd31c62c14c5a1b99586a852b33ca66d88b476be4aefdb1026a1e1c765062bb30f376f09f51ada657c3b67a76badd2 py3-spacy-2.2.4.tar.gz"
diff --git a/testing/py3-sparqlwrapper/APKBUILD b/testing/py3-sparqlwrapper/APKBUILD
deleted file mode 100644
index 46d9c4aace8..00000000000
--- a/testing/py3-sparqlwrapper/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=py3-sparqlwrapper
-_pkgname=sparqlwrapper
-pkgver=1.8.5
-pkgrel=0
-pkgdesc="SPARQL Endpoint interface to Python"
-url="https://rdflib.github.io/sparqlwrapper/"
-arch="noarch"
-license="W3C"
-checkdepends="bash py3-nose"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/RDFLib/sparqlwrapper/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # Tests soft-fail because of the missing rdflib-jsonld dependency.
- # This dependency had its last release in 2016 and is apparently not
- # compatible with Python 3.
- # py3-rdflib should also be a dep but that would cause a circular
- # dependency loop.
- ./run_tests_py3.sh
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="7637989bbf883824be5d277d6b0bd2c2ec8b628ded8a103f6da724b62977a5e9bd13f8ec8d9031de5f5028acfcbd599148dbab5ff3694261c1ec27295c34ee38 py3-sparqlwrapper-1.8.5.tar.gz"
diff --git a/testing/py3-speechpy/APKBUILD b/testing/py3-speechpy/APKBUILD
deleted file mode 100644
index 070ea033384..00000000000
--- a/testing/py3-speechpy/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-speechpy
-pkgver=2.4
-pkgrel=0
-pkgdesc="A Library for Speech Processing and Recognition"
-url="http://speechpy.readthedocs.io/en/latest/"
-arch="noarch !mips !mips64" # Blocked by py3-numpy and py3-scipy
-license="Apache-2.0"
-depends="python3 py3-numpy py3-scipy"
-makedepends="py3-setuptools py3-numpy-dev"
-source="https://pypi.python.org/packages/source/s/speechpy-fast/speechpy-fast-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/speechpy-fast-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0e797c06953174e847eee4e2f41031e6605242dea713563ce402537f9392769a4893fc6aa0903d403174691dc5161805910529dc97bb54e9df460eba5c6b0503 speechpy-fast-2.4.tar.gz"
diff --git a/testing/py3-speechrecognition/APKBUILD b/testing/py3-speechrecognition/APKBUILD
deleted file mode 100644
index 8165ff3ff56..00000000000
--- a/testing/py3-speechrecognition/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-speechrecognition
-pkgver=3.8.1
-pkgrel=0
-pkgdesc="Library for performing speech recognition, with support for several engines and APIs, online and offline"
-url="https://github.com/Uberi/speech_recognition/"
-arch="noarch"
-license="BSD-3-Clause AND GPL-2.0-only"
-depends="python3 py3-pyaudio flac"
-makedepends="py3-setuptools"
-source="https://github.com/Uberi/speech_recognition/archive/$pkgver/speech_recognition-$pkgver.tar.gz"
-options="!check" # Requires user interaction and a mic
-builddir="$srcdir/speech_recognition-$pkgver"
-
-prepare() {
- default_prepare
-
- # Remove pre-built flac binaries, we want to use system ones instead
- rm speech_recognition/flac*
-}
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="555a4e7b2f0cb4f7adac8a0d7f1bc4071564a021a40b5ae75ea61e4b6a3b17b974672f0350ef06150bfa1711307e4af24603c8fc78aaf8a51fc82e73413815ac speech_recognition-3.8.1.tar.gz"
diff --git a/testing/py3-sphinx-argparse/APKBUILD b/testing/py3-sphinx-argparse/APKBUILD
new file mode 100644
index 00000000000..b87294adf32
--- /dev/null
+++ b/testing/py3-sphinx-argparse/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Keith Toh <ktprograms@gmail.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-sphinx-argparse
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="Sphinx extension that automatically documents argparse commands and options"
+url="https://sphinx-argparse.readthedocs.io/en/latest/"
+arch="noarch"
+license="MIT"
+depends="python3 py3-sphinx"
+makedepends="py3-gpep517 py3-installer py3-poetry-core py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="sphinx-argparse-$pkgver.tar.gz::https://github.com/ashb/sphinx-argparse/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/sphinx-argparse-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --output-fd 3 3>&1 >&2 \
+ --wheel-dir .dist
+}
+
+check() {
+ pytest -v
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/sphinx_argparse-$pkgver-py3-none-any.whl
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+be08ca4eed2786f28dc2288024250577bc767fa9c596946202dc882653ee2d4f3f23230827f802b262c2a4889e6c8b85d01dceb5c494759e6551c8b471d1631f sphinx-argparse-0.4.0.tar.gz
+"
diff --git a/testing/py3-sphinx-autoapi/APKBUILD b/testing/py3-sphinx-autoapi/APKBUILD
new file mode 100644
index 00000000000..68de3a84ead
--- /dev/null
+++ b/testing/py3-sphinx-autoapi/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-sphinx-autoapi
+_pyname=sphinx-autoapi
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Automatic API documentation for Sphinx"
+url="https://sphinx-autoapi.readthedocs.io"
+arch="noarch !x86" # build breaks on x86
+license="MIT"
+depends="python3 py3-astroid py3-jinja2 py3-sphinx py3-anyascii py3-yaml"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-mock py3-pytest py3-beautifulsoup4"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/s/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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
+ # Test requires network access
+ .testenv/bin/python3 -m pytest \
+ --deselect tests/python/test_pyintegration.py::TestPipeUnionModule::test_integration
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f59fb203e1b867f02d5757fb3f58dcaf52b936eff67f4837ae75d9cbff24989d19bb254830bf0e2f90bae1760204e8900ea2e30573da654ad0b5223b9c39750d sphinx-autoapi-3.0.0.tar.gz
+"
diff --git a/testing/py3-sphinx-autodoc-typehints/APKBUILD b/testing/py3-sphinx-autodoc-typehints/APKBUILD
new file mode 100644
index 00000000000..e9f87d36419
--- /dev/null
+++ b/testing/py3-sphinx-autodoc-typehints/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-sphinx-autodoc-typehints
+_pyname=sphinx-autodoc-typehints
+pkgver=2.0.1
+pkgrel=0
+pkgdesc="Type hints support for the Sphinx autodoc extension"
+url="https://github.com/tox-dev/sphinx-autodoc-typehints"
+arch="noarch"
+license="MIT"
+options="net"
+depends="python3 py3-sphinx py3-typing-extensions"
+makedepends="py3-gpep517 py3-installer py3-hatchling py3-hatch-vcs"
+checkdepends="py3-pytest py3-sphobjinv py3-nptyping"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/tox-dev/sphinx-autodoc-typehints/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages test-env
+ test-env/bin/python3 -m installer .dist/sphinx_autodoc_typehints*.whl
+ test-env/bin/python3 -m pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/sphinx_autodoc_typehints*.whl
+}
+
+sha512sums="
+0bda871f30f523b3e87a94a164668632c7045a5b9b7ac5b3e6d8ce39bc6e462132aaba713e6514e38fdd0507805e2475f694933c3395e2526b335ee36ecdd8f7 sphinx-autodoc-typehints-2.0.1.tar.gz
+"
diff --git a/testing/py3-sphinx-theme-better/APKBUILD b/testing/py3-sphinx-theme-better/APKBUILD
index f51aa0bdde6..e2bc81c0be0 100644
--- a/testing/py3-sphinx-theme-better/APKBUILD
+++ b/testing/py3-sphinx-theme-better/APKBUILD
@@ -3,22 +3,27 @@
pkgname=py3-sphinx-theme-better
_pkgname=sphinx-better-theme
pkgver=0.1.5
-pkgrel=1
+pkgrel=6
pkgdesc="The Better Sphinx theme"
url="https://github.com/irskep/sphinx-better-theme"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
makedepends="py3-setuptools"
-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/irskep/sphinx-better-theme/archive/refs/tags/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
python3 setup.py build
}
+check() {
+ python3 setup.py check
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="06e50079967e166d5daf58a44c18e477cfc71d326ecf2e0a5932200c911e73ee188f720fd5bd15c2e298e14f7e3358e02e94381470bb7958edb0b0aed334ef9c sphinx-better-theme-0.1.5.tar.gz"
+sha512sums="057c0f0c57fa7a9637997f22ba9931844020ba537f5eafaf9504352fe6ae70fc2d10c0dc6fb06f8ab31c45d7cf4760e9e3047aaaa105060af4ead04de31c8af1 py3-sphinx-theme-better-0.1.5.tar.gz"
diff --git a/testing/py3-sphinx-theme-bootstrap/APKBUILD b/testing/py3-sphinx-theme-bootstrap/APKBUILD
index 51f46ebf046..f7ab98e6c63 100644
--- a/testing/py3-sphinx-theme-bootstrap/APKBUILD
+++ b/testing/py3-sphinx-theme-bootstrap/APKBUILD
@@ -2,18 +2,18 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinx-theme-bootstrap
_pkgname=sphinx-bootstrap-theme
-pkgver=0.7.1
-pkgrel=1
+pkgver=0.8.1
+pkgrel=3
pkgdesc="The Bootstrap Sphinx theme"
url="http://ryan-roemer.github.com/sphinx-bootstrap-theme"
arch="noarch"
license="MIT"
depends="python3 py3-sphinx"
makedepends="py3-setuptools"
-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/ryan-roemer/sphinx-bootstrap-theme/archive/refs/tags/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-sphinx-theme-bootstrap" # Backwards compatibility
replaces="py-sphinx-theme-bootstrap=$pkgver-r$pkgrel" # Backwards compatibility
build() {
@@ -21,7 +21,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="8bc7306fce477619f7e0733aa6d8702027d3175a952570ff457ca62976ce3fbb4f9ef477fbb3fa2e972a9edf03950d588241168e5b0227503ef1a44df7adcfa4 sphinx-bootstrap-theme-0.7.1.tar.gz"
+sha512sums="
+de56b56bbb729c9d4f98697a1d312555ddb22c05588fb00e0417075f8b500a6cb09c8918276f4a59900ceec1374f1355cd4919b012505a37481de970f0172399 sphinx-bootstrap-theme-0.8.1.tar.gz
+"
diff --git a/testing/py3-sphinx-theme-bw/APKBUILD b/testing/py3-sphinx-theme-bw/APKBUILD
index bb2169dec13..eb7085127aa 100644
--- a/testing/py3-sphinx-theme-bw/APKBUILD
+++ b/testing/py3-sphinx-theme-bw/APKBUILD
@@ -3,22 +3,26 @@
pkgname=py3-sphinx-theme-bw
_pkgname=bw_sphinxtheme
pkgver=0.1.8
-pkgrel=1
+pkgrel=7
pkgdesc="A black and white Sphinx theme"
url="https://pypi.org/project/bw_sphinxtheme"
arch="noarch"
license="BSD-3-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="a89d9892d431ddf916d6ad4eebe43c2fa7ce2a079c926f9f8e12ea54e3a0c2a76cc933e9365ea811c72cd19a7737c6972b9cc52009ee1d4bfda81bd7a948b50e bw_sphinxtheme-0.1.8.tar.gz"
diff --git a/testing/py3-sphinx-theme-cloud/APKBUILD b/testing/py3-sphinx-theme-cloud/APKBUILD
index 955cc1feef4..10ae66edbc8 100644
--- a/testing/py3-sphinx-theme-cloud/APKBUILD
+++ b/testing/py3-sphinx-theme-cloud/APKBUILD
@@ -2,26 +2,50 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinx-theme-cloud
_pkgname=cloud_sptheme
-pkgver=1.9.4
-pkgrel=1
+pkgver=1.10.0
+pkgrel=2
pkgdesc="The Cloud Sphinx theme"
url="https://bitbucket.org/ecollins/cloud_sptheme"
arch="noarch"
license="BSD-3-Clause"
-depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+depends="
+ py3-sphinx
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-mock"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ markup.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # mock fails
replaces="py-sphinx-theme-cloud" # Backwards compatibility
provides="py-sphinx-theme-cloud=$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 test-env
+ test-env/bin/python3 -m installer .dist/*.whl
+ test-env/bin/python3 -m unittest discover
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="83293e81c4430b457be25b9374b8e20d0c267acf6dae493766525cf5364f49996900cde0c64987ccf8ec65fde69d9aa1f47a56aa80d2325bd2346d356c503b7a cloud_sptheme-1.9.4.tar.gz"
+sha512sums="
+296a7db1e30b5012ebaf4117db1ed72cf109ff7bb4dc08c9cce5c7822ca68a5a8f53c8dd84df2780aabcce0509d1cfc48ab459ba3879d8721bbf8ca730307dda cloud_sptheme-1.10.0.tar.gz
+b1af0a7fc60837511ed2be170e1db6649873f3803be4b127d39c76326507af0e7c64b810e84a6046f11078392b1b4fb1dbd4bc0b02670676011b72f5100c6c35 markup.patch
+"
diff --git a/testing/py3-sphinx-theme-cloud/markup.patch b/testing/py3-sphinx-theme-cloud/markup.patch
new file mode 100644
index 00000000000..606a7dfa788
--- /dev/null
+++ b/testing/py3-sphinx-theme-cloud/markup.patch
@@ -0,0 +1,13 @@
+diff --git a/cloud_sptheme/ext/index_styling.py b/cloud_sptheme/ext/index_styling.py
+index 8fd8e6d..64a0958 100644
+--- a/cloud_sptheme/ext/index_styling.py
++++ b/cloud_sptheme/ext/index_styling.py
+@@ -1,7 +1,7 @@
+ """cloud_sptheme.ext.index_styling - improves css styling for genindex"""
+ import logging; log = logging.getLogger(__name__)
+ import re
+-from jinja2 import Markup as literal, escape
++from markupsafe import Markup as literal, escape
+ from cloud_sptheme import __version__
+
+ prefix = r"^(?P<name>.*)\("
diff --git a/testing/py3-sphinx-theme-epfl/APKBUILD b/testing/py3-sphinx-theme-epfl/APKBUILD
index c17b21644c2..ceaae71d9a0 100644
--- a/testing/py3-sphinx-theme-epfl/APKBUILD
+++ b/testing/py3-sphinx-theme-epfl/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinx-theme-epfl
_pkgname=epfl-sphinx-theme
pkgver=1.1.1
-pkgrel=2
+pkgrel=9
pkgdesc="The EPFL Sphinx theme"
-url="http://kis-doc.epfl.ch/sphinx/"
+url="https://pypi.org/project/epfl-sphinx-theme/"
arch="noarch"
license="GPL-3.0-only"
depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinx-theme-epfl" # Backwards compatibility
+replaces="py-sphinx-theme-epfl" # Backwards compatibility
provides="py-sphinx-theme-epfl=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="af36469cbd33c5f8d1a4ebef201838a26dc52c04b1432b6cc49b46bfb74c585aad83da11cc9ebb675ad166573af41b00bed3e4ec770dcd60330599a732196ea0 epfl-sphinx-theme-1.1.1.tar.gz"
diff --git a/testing/py3-sphinx-theme-guzzle/APKBUILD b/testing/py3-sphinx-theme-guzzle/APKBUILD
index 344d0ff32a5..1b322eb2ddc 100644
--- a/testing/py3-sphinx-theme-guzzle/APKBUILD
+++ b/testing/py3-sphinx-theme-guzzle/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-sphinx-theme-guzzle
_pkgname=guzzle_sphinx_theme
pkgver=0.7.11
-pkgrel=1
+pkgrel=6
pkgdesc="The Guzzle Sphinx theme"
url="https://github.com/guzzle/guzzle_sphinx_theme"
arch="noarch"
license="MIT"
depends="py3-sphinx"
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
@@ -18,7 +19,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="9aecdd4cf8ae286c9dd59a453790d957e96a57a9c9acd3aa38ff8fe64969cde4619c4154cd7304dd1c5bd0ea58fe71f556701b7a9b12f58fe3f5c1bdd2681da5 guzzle_sphinx_theme-0.7.11.tar.gz"
diff --git a/testing/py3-sphinx-theme-quark/APKBUILD b/testing/py3-sphinx-theme-quark/APKBUILD
index 6c6010b88ae..389d31c4bca 100644
--- a/testing/py3-sphinx-theme-quark/APKBUILD
+++ b/testing/py3-sphinx-theme-quark/APKBUILD
@@ -2,16 +2,19 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-sphinx-theme-quark
_pkgname=quark-sphinx-theme
-pkgver=0.5.1
+pkgver=0.6.0
pkgrel=2
pkgdesc="A Sphinx theme for Qt toolkit’s QTextBrowser"
url="https://gitlab.com/fkrull/quark-sphinx-theme"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-sphinx"
+depends="py3-sphinx python3"
makedepends="py3-setuptools"
-checkdepends="py3-mock"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.bz2"
+checkdepends="py3-html5lib"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/q/quark-sphinx-theme/quark-sphinx-theme-$pkgver.tar.gz
+ tinycss.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
build() {
@@ -23,7 +26,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="505c285f661c50567f79af644ba577eb636c1502ff265a612693d514120a0e572540ff277c08b9d1de0a38d48f6d3f804996a8dd1cbf928faf5dcfcb8dc875a5 quark-sphinx-theme-0.5.1.tar.bz2"
+sha512sums="
+7750459947e83f067ff165af632e5ac59db3487d622c367384e9e47a08e5a01c0ea34dd578f0deb70e9924cb45bda15fde5ecebcbc99a0611565f5c926392ea9 quark-sphinx-theme-0.6.0.tar.gz
+5d820b06f6a3d2fe713a3f6d66849ae3c9735a13cd9cd8169020e4468f1b58ec8c4238407a8de33a0660cc82a950c6e2bd13363d41f3a56f1775fc790779d8ca tinycss.patch
+"
diff --git a/testing/py3-sphinx-theme-quark/tinycss.patch b/testing/py3-sphinx-theme-quark/tinycss.patch
new file mode 100644
index 00000000000..2dbe4c0f76b
--- /dev/null
+++ b/testing/py3-sphinx-theme-quark/tinycss.patch
@@ -0,0 +1,112 @@
+we don't package tinycss (and it's *very* deprecated),
+so it's easier to just skip these tests
+
+diff --git a/setup.py b/setup.py
+index 0f63a21..b713398 100644
+--- a/setup.py
++++ b/setup.py
+@@ -15,7 +15,7 @@ install_requires = \
+ ['sphinx >= 1.8']
+
+ extras_require = \
+-{'test': ['html5lib', 'tinycss']}
++{'test': ['html5lib']}
+
+ entry_points = \
+ {'sphinx.html_themes': ['quark = quark_sphinx_theme']}
+diff --git a/test/test_theme.py b/test/test_theme.py
+index aa9543d..6910aae 100644
+--- a/test/test_theme.py
++++ b/test/test_theme.py
+@@ -23,9 +23,6 @@ class TestThemeEntrypoint(SphinxBuildFixture, unittest.TestCase):
+ class TestThemeDefaults(SphinxBuildFixture, unittest.TestCase):
+ source_dir = testdoc_theme
+
+- def test_quark_css(self):
+- self.assertSphinxCSSValid('quark.css')
+-
+ def _nav_elems(self, doc):
+ self.assertHasElement(doc, './/table[@class="nav-sidebar"]')
+ self.assertHasElement(doc, './/table[@class="navbar navbar-top"]')
+@@ -63,9 +60,6 @@ class TestThemeExtraCss(SphinxBuildFixture, unittest.TestCase):
+ '_static/extra2.css'
+ }
+
+- def test_quark_css(self):
+- self.assertSphinxCSSValid('quark.css')
+-
+ @with_document('contents')
+ def test_contents_css_files(self, doc):
+ extra_css = {
+@@ -83,9 +77,6 @@ class TestThemeNoSidebar(SphinxBuildFixture, unittest.TestCase):
+ 'html_theme_options.nosidebar': True,
+ }
+
+- def test_quark_css(self):
+- self.assertSphinxCSSValid('quark.css')
+-
+ def _nav_elems(self, doc):
+ self.assertNotElement(doc, './/table[@class="nav-sidebar"]')
+ self.assertHasElement(doc, './/table[@class="navbar navbar-top"]')
+@@ -151,9 +142,6 @@ class TestThemeAllSettingsUnset(SphinxBuildFixture, unittest.TestCase):
+ ]
+ config = {'html_theme_options.%s' % s: '' for s in _SETTINGS}
+
+- def test_quark_css(self):
+- self.assertSphinxCSSValid('quark.css')
+-
+
+ if __name__ == '__main__':
+ unittest.main()
+diff --git a/test/util.py b/test/util.py
+index 86b3d43..b59d474 100644
+--- a/test/util.py
++++ b/test/util.py
+@@ -6,7 +6,6 @@ import sys
+ import tempfile
+
+ import html5lib
+-import tinycss
+ from sphinx.cmd.build import main
+
+
+@@ -31,24 +30,6 @@ def capture_output():
+ yield stdout
+
+
+-def get_css_errors(filename_or_fobj, encoding=None):
+- if hasattr(filename_or_fobj, 'read'):
+- source = filename_or_fobj.read()
+- else:
+- with open(filename_or_fobj, 'r', encoding=encoding) as fobj:
+- source = fobj.read()
+- parser = tinycss.make_parser()
+- css = parser.parse_stylesheet(source)
+- lines = source.split('\n')
+- errors = []
+- for err in css.errors:
+- try:
+- errors.append(' %s [%s]\n' % (err, lines[err.line - 1]))
+- except IndexError:
+- errors.append(' %s\n' % err)
+- return errors
+-
+-
+ def run_sphinx(source_dir, build_dir, builder='html', extra_config={}, tags=[]):
+ args = ['-b', builder, '-N']
+ for k, v in extra_config.items():
+@@ -104,14 +85,6 @@ class SphinxBuildFixture:
+ def assertNotElement(self, doc, path):
+ self.assertHasElement(doc, path, 0)
+
+- def assertCSSValid(self, filename_or_fobj, encoding=None):
+- errors = get_css_errors(filename_or_fobj, encoding)
+- self.assertEqual(len(errors), 0, 'CSS errors:\n' + ''.join(errors))
+-
+- def assertSphinxCSSValid(self, basename, encoding='utf-8'):
+- self.assertCSSValid(os.path.join(self.build_dir, '_static', basename),
+- encoding=encoding)
+-
+
+ def with_document(docname):
+ def wrap1(func):
diff --git a/testing/py3-sphinx-theme-readable/APKBUILD b/testing/py3-sphinx-theme-readable/APKBUILD
index 6ea0474b734..f4a0dcce4ba 100644
--- a/testing/py3-sphinx-theme-readable/APKBUILD
+++ b/testing/py3-sphinx-theme-readable/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinx-theme-readable
_pkgname=sphinx-readable-theme
pkgver=1.3.0
-pkgrel=2
+pkgrel=9
pkgdesc="The Readable Sphinx theme"
url="https://github.com/ignacysokolowski/sphinx-readable-theme"
arch="noarch"
-license="BSD"
+license="MIT"
depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinx-theme-readable" # Backwards compatibility
+replaces="py-sphinx-theme-readable" # Backwards compatibility
provides="py-sphinx-theme-readable=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="e0810973fe77434efd7ca442c26784f5d894322832555953ff0c900835707bd797b5ce8308510590f31fe2a5f61e0ed465b3316cd8a3fa2f5ca9b1c5f432feaf sphinx-readable-theme-1.3.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-actdiag/APKBUILD b/testing/py3-sphinxcontrib-actdiag/APKBUILD
index 95f47b7de2b..33524841565 100644
--- a/testing/py3-sphinxcontrib-actdiag/APKBUILD
+++ b/testing/py3-sphinxcontrib-actdiag/APKBUILD
@@ -2,26 +2,31 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-actdiag
_pkgname=sphinxcontrib-actdiag
-pkgver=0.8.5
-pkgrel=4
+pkgver=3.0.0
+pkgrel=2
pkgdesc="Sphinx actdiag extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-actdiag"
+url="https://github.com/blockdiag/sphinxcontrib-actdiag"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-actdiag py3-sphinx"
+depends="py3-actdiag py3-blockdiag py3-sphinx python3"
makedepends="py3-setuptools"
-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/blockdiag/sphinxcontrib-actdiag/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-sphinxcontrib-actdiag" # for backwards compatibility
-provides="py-sphinxcontrib-actdiag=$pkgver-r$pkgrel" # for backwards compatibility
+options="!check" # sphinx-testing
build() {
python3 setup.py build
}
+check() {
+ python3 -m unittest discover
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="3e526e675a4e17bff5c29f56f80f3feeadb0e408a818dc97e7a0c9acfcb70bc50a5a44d38bd40347ff8709d58deff824fb47caf89a8eeacce5cce9659651a701 sphinxcontrib-actdiag-0.8.5.tar.gz"
+sha512sums="
+caef6c9e8e968e9053150a28aede2a07be1396ba2426745cd35cbb4a2093d93c1056336c49d1f7a901e22845e547b7e46b6caecc9f7cfea7ce7f7bd46c2ff49e py3-sphinxcontrib-actdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-adadomain/APKBUILD b/testing/py3-sphinxcontrib-adadomain/APKBUILD
index b8122501e16..22394e25369 100644
--- a/testing/py3-sphinxcontrib-adadomain/APKBUILD
+++ b/testing/py3-sphinxcontrib-adadomain/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-sphinxcontrib-adadomain
_pkgname=sphinxcontrib-adadomain
pkgver=0.2
-pkgrel=2
+pkgrel=9
pkgdesc="Sphinx adadomain extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-adadomain"
+url="https://pypi.org/project/sphinxcontrib-adadomain"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
fix-imports.patch"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-sphinxcontrib-adadomain" # for backwards compatibility
+replaces="py-sphinxcontrib-adadomain" # for backwards compatibility
provides="py-sphinxcontrib-adadomain=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="99d2b8b2dcb16e76c33c4a7965140c44ec3b4a166b69e930a68f27a1ddbb0871d77bc6b05fce79d161063561d21ebf5205218a05aebf9ff073e9ab2a3ba4e9a7 sphinxcontrib-adadomain-0.2.tar.gz
diff --git a/testing/py3-sphinxcontrib-autoprogram/APKBUILD b/testing/py3-sphinxcontrib-autoprogram/APKBUILD
new file mode 100644
index 00000000000..9a1f6f8c5fa
--- /dev/null
+++ b/testing/py3-sphinxcontrib-autoprogram/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-sphinxcontrib-autoprogram
+pkgver=0.1.8
+pkgrel=2
+pkgdesc="Sphinx extension to document CLI programs"
+url="https://github.com/sphinx-contrib/autoprogram"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3 py3-six py3-sphinx"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/sphinx-contrib/autoprogram/archive/refs/tags/$pkgver.tar.gz
+ "
+builddir="$srcdir/autoprogram-$pkgver"
+options="!check" # no tests
+
+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 discover
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+bc07f25c34884f8e3130bbe5d2d6fb645f45aca5794c6b11a772f0351d680380d3e63cfe4b60aabf05ad8c6f44bae72e592500454598d31cc3c98dcbc8dbf899 py3-sphinxcontrib-autoprogram-0.1.8.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-bitbucket/APKBUILD b/testing/py3-sphinxcontrib-bitbucket/APKBUILD
index 14b231e4ce7..4e379b6b161 100644
--- a/testing/py3-sphinxcontrib-bitbucket/APKBUILD
+++ b/testing/py3-sphinxcontrib-bitbucket/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-sphinxcontrib-bitbucket
_pkgname=sphinxcontrib-bitbucket
pkgver=1.0
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx BitBucket extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-bitbucket"
+url="https://pypi.org/project/sphinxcontrib-bitbucket"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
fix-python3.patch"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-sphinxcontrib-bitbucket" # Backwards compatibility
+replaces="py-sphinxcontrib-bitbucket" # Backwards compatibility
provides="py-sphinxcontrib-bitbucket=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="e018fceecc24b7a9656d57a9855c824665948f877394b7ca6b0f22473bf83492d4155a9c9960cf18e9b10268f2928d0762a4ad48ffee2ebb819275d563751e18 sphinxcontrib-bitbucket-1.0.tar.gz
diff --git a/testing/py3-sphinxcontrib-blockdiag/APKBUILD b/testing/py3-sphinxcontrib-blockdiag/APKBUILD
index 3669ce26917..a2fe675de2e 100644
--- a/testing/py3-sphinxcontrib-blockdiag/APKBUILD
+++ b/testing/py3-sphinxcontrib-blockdiag/APKBUILD
@@ -2,27 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-blockdiag
_pkgname=sphinxcontrib-blockdiag
-pkgver=1.5.5
+pkgver=3.0.0
pkgrel=4
pkgdesc="Sphinx blockdiag extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-blockdiag"
+url="https://pypi.org/project/sphinxcontrib-blockdiag"
arch="noarch"
license="BSD-2-Clause"
depends="py3-blockdiag py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-blockdiag" # for backwards compatibility
+replaces="py-sphinxcontrib-blockdiag" # for backwards compatibility
provides="py-sphinxcontrib-blockdiag=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-
-sha512sums="8633a0802cf61c6b3af06032f1e0db663004bd62cb6c579407aa44a29a2d37ae03f704775747e8214649d2f9c25d2505f65003a1a0b337e6e3f9a2674a0bf647 sphinxcontrib-blockdiag-1.5.5.tar.gz"
+sha512sums="
+e173b4149368b8c13d08da6cd423ebba218ff0265b629242b6076f3781cc1ffe0fa007556cd0019f40bd5e5ed1c0f7953f7713f3dc56eceac3e53cc22b892238 sphinxcontrib-blockdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-cacoo/APKBUILD b/testing/py3-sphinxcontrib-cacoo/APKBUILD
index d710f25d29f..285f39d404c 100644
--- a/testing/py3-sphinxcontrib-cacoo/APKBUILD
+++ b/testing/py3-sphinxcontrib-cacoo/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-cacoo
_pkgname=sphinxcontrib-cacoo
pkgver=2.0.0
-pkgrel=1
+pkgrel=7
pkgdesc="Sphinx cacoo extension"
url="https://github.com/tk0miya/sphinxcontrib-cacoo"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-cacoo" # Backwards compatibility
+replaces="py-sphinxcontrib-cacoo" # Backwards compatibility
provides="py-sphinxcontrib-cacoo=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="180d34e3d77870c3d6385b62c59094c15ba7af64b1821f0bbdcbbc04ca901396fe3e78e72f0a504286afd9583e86af590fcfc6867ab2c959c6a5164b009fe032 sphinxcontrib-cacoo-2.0.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-cartouche/APKBUILD b/testing/py3-sphinxcontrib-cartouche/APKBUILD
index dbfbc66a83a..02c336bacec 100644
--- a/testing/py3-sphinxcontrib-cartouche/APKBUILD
+++ b/testing/py3-sphinxcontrib-cartouche/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-cartouche
_pkgname=cartouche
pkgver=1.1.2
-pkgrel=1
+pkgrel=7
pkgdesc="Sphinx cartouche extension"
url="https://github.com/rob-smallshire/cartouche"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-cartouche" # Backwards compatibility
+replaces="py-sphinxcontrib-cartouche" # Backwards compatibility
provides="py-sphinxcontrib-cartouche=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="cbfc11d9ff545b9d891e218804627a9524af513c1c2eff461c41813b99f7db1336bd14ed95dbf6b5cfcce19f91ac817bb42cd660057b9bf6427daccb4b375462 cartouche-1.1.2.tar.gz"
diff --git a/testing/py3-sphinxcontrib-doxylink/APKBUILD b/testing/py3-sphinxcontrib-doxylink/APKBUILD
index 2db2de125cf..6eb101cbc7e 100644
--- a/testing/py3-sphinxcontrib-doxylink/APKBUILD
+++ b/testing/py3-sphinxcontrib-doxylink/APKBUILD
@@ -2,26 +2,41 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-doxylink
_pkgname=sphinxcontrib-doxylink
-pkgver=1.6.1
-pkgrel=1
+pkgver=1.12.2
+pkgrel=2
pkgdesc="Sphinx Doxygen linking extension"
url="https://github.com/sphinx-contrib/doxylink"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-parsing py3-sphinx"
-makedepends="py3-setuptools"
+depends="
+ py3-dateutil
+ py3-parsing
+ py3-sphinx
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # no tarball tests
replaces="py-sphinxcontrib-doxylink" # for backwards compatibility
provides="py-sphinxcontrib-doxylink=$pkgver-r$pkgrel" # for 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="c27983cbd54d6ff2c4110b0269d630cd81b8aff6bf7f6b1b006dbb18fc3643d59a25ecff0ec9c92785c697e38861e755fb44a95382314b8b2888da9e8e191637 sphinxcontrib-doxylink-1.6.1.tar.gz"
+sha512sums="
+dd07053a7f3c01697fa4c488c1bcd55de7d5cf41cd8a33c64dfcfcc26c5b63b079055626a6617c1afc6350796e30d4db5209364a146f814bd81227afd561614b sphinxcontrib-doxylink-1.12.2.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-fulltoc/APKBUILD b/testing/py3-sphinxcontrib-fulltoc/APKBUILD
index ba79e11be26..4984d3ce1cd 100644
--- a/testing/py3-sphinxcontrib-fulltoc/APKBUILD
+++ b/testing/py3-sphinxcontrib-fulltoc/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-fulltoc
_pkgname=sphinxcontrib-fulltoc
pkgver=1.2.0
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx fulltoc extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-fulltoc"
+url="https://pypi.org/project/sphinxcontrib-fulltoc"
arch="noarch"
license="Apache-2.0"
depends="py3-sphinx"
-makedepends="py3-pbr py3-setuptools"
+makedepends="py3-pbr py3-setuptools 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
-replaces="py-sphinxcontrib-fulltoc" # Backwards compatibility
+replaces="py-sphinxcontrib-fulltoc" # Backwards compatibility
provides="py-sphinxcontrib-fulltoc=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="9f806ed3717db65c9d67f9b35a676586484bbd81347216ee25309c3d74427b283e7efe5af48be588fd72d814158250e2ffa85c6c1f3f0358534f8f64fe45d904 sphinxcontrib-fulltoc-1.2.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-gist/APKBUILD b/testing/py3-sphinxcontrib-gist/APKBUILD
index f2e11899a09..6f1ee7bde96 100644
--- a/testing/py3-sphinxcontrib-gist/APKBUILD
+++ b/testing/py3-sphinxcontrib-gist/APKBUILD
@@ -3,25 +3,34 @@
pkgname=py3-sphinxcontrib-gist
_pkgname=sphinxcontrib.gist
pkgver=0.1.0
-pkgrel=2
+pkgrel=9
pkgdesc="Sphinx gist extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-gist"
+url="https://pypi.org/project/sphinxcontrib-gist"
arch="noarch"
license="LGPL-3.0-only"
depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ fix-build.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-sphinxcontrib-gist" # Backwards compatibility
+replaces="py-sphinxcontrib-gist" # Backwards compatibility
provides="py-sphinxcontrib-gist=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="a6bc8bae2bf64c5201452134c075c6336ab1928c534bb6d274c3fdda555609ad58e02d11d4c9d78528be39578c759394016c58ef6f0bad1ffc38328e3cf3ca00 sphinxcontrib.gist-0.1.0.tar.gz"
+sha512sums="
+a6bc8bae2bf64c5201452134c075c6336ab1928c534bb6d274c3fdda555609ad58e02d11d4c9d78528be39578c759394016c58ef6f0bad1ffc38328e3cf3ca00 sphinxcontrib.gist-0.1.0.tar.gz
+e1bbfac6dc5d6b9dd4b8c2a3ec1d4b790cafb89e69640ca7a9da041d27d20388d973ba8529bafd098dce9b2f5029ad7b219af5414a59bd557744964eeac050e1 fix-build.patch
+"
diff --git a/testing/py3-sphinxcontrib-gist/fix-build.patch b/testing/py3-sphinxcontrib-gist/fix-build.patch
new file mode 100644
index 00000000000..44735804e9a
--- /dev/null
+++ b/testing/py3-sphinxcontrib-gist/fix-build.patch
@@ -0,0 +1,19 @@
+a bit of an ugly hack to import the module properly
+
+`from sphinxcontrib ...` doesn't work, because sphinxcontrib is defined by
+all the other py3-sphinxcontrib-* packages that use (now depreacated) declare_namespace
+as a namespace residing in sitedir, thus python doesn't see the local directory
+
+diff --git a/setup.py b/setup.py
+index b0bf058..e43693e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,5 +1,8 @@
+ #-*- coding:utf-8 -*-
+
++import sys
++del sys.modules['sphinxcontrib']
++
+ import setuptools
+ from sphinxcontrib import gist as pkg
+
diff --git a/testing/py3-sphinxcontrib-git/APKBUILD b/testing/py3-sphinxcontrib-git/APKBUILD
index f35da5f7588..fd411fd9982 100644
--- a/testing/py3-sphinxcontrib-git/APKBUILD
+++ b/testing/py3-sphinxcontrib-git/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-git
_pkgname=sphinx-git
pkgver=11.0.0
-pkgrel=1
+pkgrel=7
pkgdesc="Sphinx git changelog extension"
url="https://github.com/OddBloke/sphinx-git"
arch="noarch"
license="GPL-3.0-or-later"
depends="python3 py3-sphinx py3-six py3-gitpython"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-git" # Backwards compatibility
+replaces="py-sphinxcontrib-git" # Backwards compatibility
provides="py-sphinxcontrib-git=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="2d795a791d0b626ec88df9cf835508a3ef9be8a502cb977613813334a671e8676e3c9af8b478870db817a7f29aa24497d665a6b619ea3ccf15353398a8d28e4b sphinx-git-11.0.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-gravatar/APKBUILD b/testing/py3-sphinxcontrib-gravatar/APKBUILD
index 5623a390096..58d4cc6e97f 100644
--- a/testing/py3-sphinxcontrib-gravatar/APKBUILD
+++ b/testing/py3-sphinxcontrib-gravatar/APKBUILD
@@ -3,15 +3,16 @@
pkgname=py3-sphinxcontrib-gravatar
_pkgname=sphinxcontrib-gravatar
pkgver=0.1.2
-pkgrel=1
+pkgrel=7
pkgdesc="Sphinx gravatar extension"
options="!check" # Most tests fail
-url="https://pypi.python.org/pypi/sphinxcontrib-gravatar"
+url="https://pypi.org/project/sphinxcontrib-gravatar"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx"
makedepends="py3-setuptools"
checkdepends="py3-pytest py3-pytest-cov py3-mock"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -27,7 +28,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="18f68ab2259a85fe33bf76c9c6c98eed2b196b33a5a3fe04bb481f4df37b653473aeca1bf58871164dc60cf82d7225b62bade9993d825356f6450bca9d8f2980 sphinxcontrib-gravatar-0.1.2.tar.gz"
diff --git a/testing/py3-sphinxcontrib-htsql/APKBUILD b/testing/py3-sphinxcontrib-htsql/APKBUILD
index 7d471cb817f..e9ae9132afe 100644
--- a/testing/py3-sphinxcontrib-htsql/APKBUILD
+++ b/testing/py3-sphinxcontrib-htsql/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-htsql
_pkgname=sphinxcontrib-htsql
pkgver=0.1.5
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx htsql extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-htsql"
+url="https://pypi.org/project/sphinxcontrib-htsql"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-htsql" # Backwards compatibility
+replaces="py-sphinxcontrib-htsql" # Backwards compatibility
provides="py-sphinxcontrib-htsql=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="778114bd18f3f0d3f08465ccb477949d7934eca2223d346cc130cbb9256572d769082b86436ce60211b030965155792c6ab6d02074fd47d3838a26c906092de6 sphinxcontrib-htsql-0.1.5.tar.gz"
diff --git a/testing/py3-sphinxcontrib-httpdomain/APKBUILD b/testing/py3-sphinxcontrib-httpdomain/APKBUILD
index ac907e8c552..e19f352e6c5 100644
--- a/testing/py3-sphinxcontrib-httpdomain/APKBUILD
+++ b/testing/py3-sphinxcontrib-httpdomain/APKBUILD
@@ -2,14 +2,19 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-httpdomain
_pkgname=sphinxcontrib-httpdomain
-pkgver=1.7.0
-pkgrel=1
+pkgver=1.8.1
+pkgrel=3
pkgdesc="Sphinx httpdomain extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-httpdomain"
+url="https://pypi.org/project/sphinxcontrib-httpdomain"
arch="noarch"
license="BSD-2-Clause"
-depends="py3-sphinx"
-makedepends="py3-setuptools"
+depends="py3-sphinx py3-six"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-lang $pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -17,11 +22,23 @@ replaces="py-sphinxcontrib-httpdomain" # for backwards compatibility
provides="py-sphinxcontrib-httpdomain=$pkgver-r$pkgrel" # for 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="132803f60af263a4948108145ac27635da50254eb79dad2c461c4f364b04eb6b28d4917449fae31b792fc8773ce948f1fd20b06b22e167bfb4584dad756c8f17 sphinxcontrib-httpdomain-1.7.0.tar.gz"
+lang() {
+ pkgdesc="translations for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ amove usr/lib/python3*/site-packages/sphinxcontrib/locale/
+}
+
+sha512sums="
+197c44fd9bdc146f49c6a0aa365a5bd49b76f712ae89082be3761aa21c99683279090fc274308ca199fb7efae5a2d713be4531b90747f504860f36a01ee4c52b sphinxcontrib-httpdomain-1.8.1.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-hydomain/APKBUILD b/testing/py3-sphinxcontrib-hydomain/APKBUILD
new file mode 100644
index 00000000000..5448189ec81
--- /dev/null
+++ b/testing/py3-sphinxcontrib-hydomain/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+pkgname=py3-sphinxcontrib-hydomain
+pkgver=0.1.0_git20230930
+_commit="5919f40522b5a8a3787daa7a9bca3df737436d5b"
+pkgrel=1
+pkgdesc="Sphinx hydomain extension"
+url="https://github.com/hylang/sphinxcontrib-hydomain"
+arch="noarch"
+license="BSD-3-Clause"
+depends="py3-sphinx"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/hylang/sphinxcontrib-hydomain/archive/$_commit.tar.gz"
+builddir="$srcdir/sphinxcontrib-hydomain-$_commit"
+
+replaces="py-sphinxcontrib-hydomain" # for backwards compatibility
+provides="py-sphinxcontrib-hydomain=$pkgver-r$pkgrel" # for backwards compatibility
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+5e429b1ac8b2deb67a3ae716976a4f8e4ee85d1bfa6ef7236f26b6992ce4f97a5a53fac650d4026c4cd2f812ad556604824482edf4ac166aab15a8dfb29aa2e8 py3-sphinxcontrib-hydomain-0.1.0_git20230930.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-images/APKBUILD b/testing/py3-sphinxcontrib-images/APKBUILD
deleted file mode 100644
index 8eaf9dcc1fb..00000000000
--- a/testing/py3-sphinxcontrib-images/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-sphinxcontrib-images
-_pkgname=sphinxcontrib-images
-pkgver=0.8.0
-pkgrel=1
-pkgdesc="Sphinx images extension"
-url="https://github.com/spinus/sphinxcontrib-images"
-arch="noarch"
-license="Apache-2.0"
-depends="py3-requests py3-sphinx"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-sphinxcontrib-images" # Backwards compatibility
-provides="py-sphinxcontrib-images=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="10effe910c5dafd595482d43c3659a95dc51916b52e03d93b472909265f09cb5831c5bebbcc07b50b8ecec7c1b8b9d99f4274b2abb51e41b78713222c532d527 sphinxcontrib-images-0.8.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-inheritance/APKBUILD b/testing/py3-sphinxcontrib-inheritance/APKBUILD
index 42360166784..8891a0fce4b 100644
--- a/testing/py3-sphinxcontrib-inheritance/APKBUILD
+++ b/testing/py3-sphinxcontrib-inheritance/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-inheritance
_pkgname=sphinxcontrib-inheritance
pkgver=0.9.0
-pkgrel=2
+pkgrel=9
pkgdesc="Sphinx inheritance functionality"
-url="https://pypi.python.org/pypi/sphinxcontrib-inheritance"
+url="https://pypi.org/project/sphinxcontrib-inheritance"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx py3-path"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-setuptools 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
-replaces="py-sphinxcontrib-inheritance" # Backwards compatibility
+replaces="py-sphinxcontrib-inheritance" # Backwards compatibility
provides="py-sphinxcontrib-inheritance=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="979a8ed286616c2b2981e5581492e0de5b4cee1d6117ed93d098591872fc5c46b813b72042da9d40169086dda503a97ef320884fb601d18ba20d079a2886d412 sphinxcontrib-inheritance-0.9.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-issuetracker/APKBUILD b/testing/py3-sphinxcontrib-issuetracker/APKBUILD
index 6572a27d1cb..00fce85cdd7 100644
--- a/testing/py3-sphinxcontrib-issuetracker/APKBUILD
+++ b/testing/py3-sphinxcontrib-issuetracker/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-issuetracker
_pkgname=sphinxcontrib-issuetracker
pkgver=0.11
-pkgrel=1
+pkgrel=7
pkgdesc="Sphinx issuetracker extension"
url="https://github.com/ignatenkobrain/sphinxcontrib-issuetracker"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-issuetracker" # for backwards compatibility
+replaces="py-sphinxcontrib-issuetracker" # for backwards compatibility
provides="py-sphinxcontrib-issuetracker=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="fb4a977bea22451a3d90b16821fc2a38ed53b17913666ca250e9aab8bb1726bbdb52fb2b6dbb2ae512a0ca6cc3d33dcddeba758c02c77b099180443d67e147c9 sphinxcontrib-issuetracker-0.11.tar.gz"
diff --git a/testing/py3-sphinxcontrib-lassodomain/APKBUILD b/testing/py3-sphinxcontrib-lassodomain/APKBUILD
index d3fd6f45000..da388b98dd8 100644
--- a/testing/py3-sphinxcontrib-lassodomain/APKBUILD
+++ b/testing/py3-sphinxcontrib-lassodomain/APKBUILD
@@ -3,26 +3,30 @@
pkgname=py3-sphinxcontrib-lassodomain
_pkgname=sphinxcontrib-lassodomain
pkgver=0.4
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx lassodomain extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-lassodomain"
+url="https://pypi.org/project/sphinxcontrib-lassodomain"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
fix-python3.patch"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-sphinxcontrib-lassodomain" # Backwards compatibility
+replaces="py-sphinxcontrib-lassodomain" # Backwards compatibility
provides="py-sphinxcontrib-lassodomain=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="527511a8342175e1f157705d76eb4c03e409d62024cb95dad98067765fb9321c4a93eea1a23d75b18d19eaf48c5dde496bcbe2789809eb11408c018e1972b7cf sphinxcontrib-lassodomain-0.4.tar.gz
diff --git a/testing/py3-sphinxcontrib-manpage/APKBUILD b/testing/py3-sphinxcontrib-manpage/APKBUILD
index 3041dad1534..bf542fc2f45 100644
--- a/testing/py3-sphinxcontrib-manpage/APKBUILD
+++ b/testing/py3-sphinxcontrib-manpage/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-manpage
_pkgname=sphinxcontrib-manpage
pkgver=0.6
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx manpage extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-manpage"
+url="https://pypi.org/project/sphinxcontrib-manpage"
arch="noarch"
license="Apache-2.0"
depends="python3 py3-sphinx py3-nwdiag"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-manpage" # Backwards compatibility
+replaces="py-sphinxcontrib-manpage" # Backwards compatibility
provides="py-sphinxcontrib-manpage=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="312215626275cade4595db044b9b1f90eeb816d4cd5277e1f628f164faa67d7c912d5ea295b68ed436e39276448fe27ae0f0aea6062af2fbf48e957bd9dc2d36 sphinxcontrib-manpage-0.6.tar.gz"
diff --git a/testing/py3-sphinxcontrib-nwdiag/APKBUILD b/testing/py3-sphinxcontrib-nwdiag/APKBUILD
index 147fc7bb030..8a716f9af9d 100644
--- a/testing/py3-sphinxcontrib-nwdiag/APKBUILD
+++ b/testing/py3-sphinxcontrib-nwdiag/APKBUILD
@@ -2,27 +2,30 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-nwdiag
_pkgname=sphinxcontrib-nwdiag
-pkgver=0.9.5
-pkgrel=4
+pkgver=2.0.0
+pkgrel=7
pkgdesc="Sphinx nwdiag extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-nwdiag"
+url="https://pypi.org/project/sphinxcontrib-nwdiag"
arch="noarch"
license="BSD-2-Clause"
depends="py3-nwdiag py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-nwdiag" # for backwards compatibility
+replaces="py-sphinxcontrib-nwdiag" # for backwards compatibility
provides="py-sphinxcontrib-nwdiag=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-
-sha512sums="2c570d4614aa362c43b2f0bcb901f6bca18f91451f50c901805f85f61184e1b531ea5ee2a82b5bca24e34f0a71470b9bdb9057dcaa82cc1c11eb41306561c5c1 sphinxcontrib-nwdiag-0.9.5.tar.gz"
+sha512sums="a77d8259a4c1f238dec20ef0c260e6e0ad4665ab13e0124a5cdd3dc135969b44c218131746cc9f955a3dd088bf3b17e23354f8edc0409a239ca2e02d38ec645a sphinxcontrib-nwdiag-2.0.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-phpdomain/APKBUILD b/testing/py3-sphinxcontrib-phpdomain/APKBUILD
index 84a4dcdcfd7..d5a58add1d8 100644
--- a/testing/py3-sphinxcontrib-phpdomain/APKBUILD
+++ b/testing/py3-sphinxcontrib-phpdomain/APKBUILD
@@ -1,27 +1,36 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-phpdomain
-_pkgname=sphinxcontrib-phpdomain
-pkgver=0.6.1
-pkgrel=2
+pkgver=0.11.2
+pkgrel=1
pkgdesc="Sphinx phpdomain extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-phpdomain"
+url="https://pypi.org/project/sphinxcontrib-phpdomain"
arch="noarch"
license="BSD-2-Clause"
depends="py3-sphinx"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/markstory/sphinxcontrib-phpdomain/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir"/sphinxcontrib-phpdomain-$pkgver
replaces="py-sphinxcontrib-phpdomain" # for backwards compatibility
provides="py-sphinxcontrib-phpdomain=$pkgver-r$pkgrel" # for 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="98f3f6217534025f048ef149fe6fa9bb31455cc3d07b204721ffa89209a08dbb07514b4501b7a38e586ffb85ddeee38397209f30ef177770c49fb92c63f99fe0 sphinxcontrib-phpdomain-0.6.1.tar.gz"
+sha512sums="
+00b806a601b1921a2e5b1dbde466f9eb47c69ff7bee12cd65725e8e83edab4430778a9963500417e116cc4c9f0281eab9fb63bfeb8f4c7ac31cf3de5fcdbcd83 py3-sphinxcontrib-phpdomain-0.11.2.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-programoutput/APKBUILD b/testing/py3-sphinxcontrib-programoutput/APKBUILD
index 4d0709ade74..503b2a38872 100644
--- a/testing/py3-sphinxcontrib-programoutput/APKBUILD
+++ b/testing/py3-sphinxcontrib-programoutput/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-programoutput
_pkgname=sphinxcontrib-programoutput
-pkgver=0.15
-pkgrel=1
+pkgver=0.17
+pkgrel=4
pkgdesc="Sphinx programoutput extension"
url="https://sphinxcontrib-programoutput.readthedocs.io/en/latest/"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/NextThought/$_pkgname/archive/$pkgver.tar.gz"
replaces="py-sphinxcontrib-programoutput" # Backwards compatibility
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="63f5d8786c595083c0d710dc68179bfd756ac0c5014c3c6a17b0b0daeeebe39b8e2f91367a7f2c9aa069bfadafe941d4c849f4632f17aa6a52451b68d35b2084 py3-sphinxcontrib-programoutput-0.15.tar.gz"
+sha512sums="
+200f91e5e1f3f633dfe3255ff5d5c3f3da81aea1674a4c1325ca4d60c7a97a6cb35bbbab3484d8b8920dc9723b7c480c360e58ed6a772ba53ab46e84ecad5bef py3-sphinxcontrib-programoutput-0.17.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-restbuilder/APKBUILD b/testing/py3-sphinxcontrib-restbuilder/APKBUILD
index 8de85713e90..a8c1278a64a 100644
--- a/testing/py3-sphinxcontrib-restbuilder/APKBUILD
+++ b/testing/py3-sphinxcontrib-restbuilder/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-restbuilder
_pkgname=sphinxcontrib-restbuilder
-pkgver=0.2
-pkgrel=1
+pkgver=0.3
+pkgrel=6
pkgdesc="Sphinx restbuilder extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-restbuilder"
+url="https://pypi.org/project/sphinxcontrib-restbuilder"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-restbuilder" # Backwards compatibility
+replaces="py-sphinxcontrib-restbuilder" # Backwards compatibility
provides="py-sphinxcontrib-restbuilder=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="502c051c7bb2295ce1e017a767d49259d19a0aa94c4d3a84a54081cd2fa104c2e8d39f4405cfcc19a4103ffb5fd8e63ff0dbc555d5d83d7098799d1e3d083810 sphinxcontrib-restbuilder-0.2.tar.gz"
+sha512sums="
+6e718b599b2e8db1c89e79efd9e57025c3a0624db7d895f3fcc8c6ed09839a354661c79160c56c2a716a544f5ab0fb27c0f9b0f302065efa9dd3d4d76cb70edc sphinxcontrib-restbuilder-0.3.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-seqdiag/APKBUILD b/testing/py3-sphinxcontrib-seqdiag/APKBUILD
index 05f214d1572..af3f7219a1c 100644
--- a/testing/py3-sphinxcontrib-seqdiag/APKBUILD
+++ b/testing/py3-sphinxcontrib-seqdiag/APKBUILD
@@ -2,26 +2,32 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-seqdiag
_pkgname=sphinxcontrib-seqdiag
-pkgver=0.8.5
-pkgrel=4
+pkgver=3.0.0
+pkgrel=5
pkgdesc="Sphinx seqdiag extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-seqdiag"
+url="https://pypi.org/project/sphinxcontrib-seqdiag"
arch="noarch"
license="BSD-2-Clause"
depends="py3-seqdiag py3-sphinx"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
-replaces="py-sphinxcontrib-seqdiag" # for backwards compatibility
+replaces="py-sphinxcontrib-seqdiag" # for backwards compatibility
provides="py-sphinxcontrib-seqdiag=$pkgver-r$pkgrel" # for 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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="dcdce24bbf29a060e2344fbab423253e7810547ec6352fa949d392f98c33f008cac25d12e81029441b4303339133d3c6d4010b8aac27ad318b6e8b3b75b35f52 sphinxcontrib-seqdiag-0.8.5.tar.gz"
+sha512sums="
+fd1bcbda3f73eec56314b4ad3054725e9c1b946c6fe3b8b950b5fc3a97ad4d12aa695e5741946cf86bbc8f62f77873400d09afbc568ad593c04fad1810c3e4fe sphinxcontrib-seqdiag-3.0.0.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-slide/APKBUILD b/testing/py3-sphinxcontrib-slide/APKBUILD
index 23f1dd68f26..cb62b124b2c 100644
--- a/testing/py3-sphinxcontrib-slide/APKBUILD
+++ b/testing/py3-sphinxcontrib-slide/APKBUILD
@@ -2,13 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-slide
_pkgname=sphinxcontrib-slide
-pkgver=0.3.0
-pkgrel=2
+pkgver=1.0.0
+pkgrel=3
pkgdesc="Sphinx FindAnything extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-slide"
+url="https://pypi.org/project/sphinxcontrib-slide"
arch="noarch"
license="BSD" # No LICENSE file
depends="python3 py3-sphinx 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
@@ -16,11 +18,16 @@ replaces="py-sphinxcontrib-slide" # Backwards compatibility
provides="py-sphinxcontrib-slide=$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="5c0cc13c6fa317aeec499cd918b4eb08fd1fed82ecc2d4f6fe2d1fc54dce9a48f99c8d373ea858756314eb432afceb73658d8cc3e17d0f0e66f7df20be0b7e75 sphinxcontrib-slide-0.3.0.tar.gz"
+sha512sums="
+67bbcbf11668fed8ad7ea185b32590921ba4f37ae2c4fb3243fda8a1f377c0f3169056c6b3e6c32c4af7b8a74172f050abdc2c72062b009dba72069d6a19ab65 sphinxcontrib-slide-1.0.0.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-spelling/APKBUILD b/testing/py3-sphinxcontrib-spelling/APKBUILD
index 651ffb0b22f..0afeeea0a9a 100644
--- a/testing/py3-sphinxcontrib-spelling/APKBUILD
+++ b/testing/py3-sphinxcontrib-spelling/APKBUILD
@@ -2,14 +2,20 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinxcontrib-spelling
_pkgname=sphinxcontrib-spelling
-pkgver=4.3.0
-pkgrel=1
+pkgver=8.0.0
+pkgrel=3
pkgdesc="Sphinx spelling extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-spelling"
+url="https://pypi.org/project/sphinxcontrib-spelling"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx py3-enchant"
-makedepends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-setuptools_scm
+ py3-wheel
+ "
+checkdepends="py3-pytest enchant2-aspell aspell-en"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -17,11 +23,23 @@ replaces="py-sphinxcontrib-spelling" # Backwards compatibility
provides="py-sphinxcontrib-spelling=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" \
+ 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="0d1575079be7994df905de02d31ad2c9c3af9634a487fbc9c565067fcbef6c36fd4fbd326ccbee4b40b3ff14696ad85a97c68018a956ff3e2f7e1be46bb3a074 sphinxcontrib-spelling-4.3.0.tar.gz"
+sha512sums="
+0d8c21ea660516238c43fabb505666dfee15abb39f538c40c6b61f91e20c246b16aa170cd444263507dd51913a27fc7719cddb28f30eab26825b565f70dd3ab6 sphinxcontrib-spelling-8.0.0.tar.gz
+"
diff --git a/testing/py3-sphinxcontrib-sqltable/APKBUILD b/testing/py3-sphinxcontrib-sqltable/APKBUILD
index 72ba00a46a0..d812736410a 100644
--- a/testing/py3-sphinxcontrib-sqltable/APKBUILD
+++ b/testing/py3-sphinxcontrib-sqltable/APKBUILD
@@ -3,25 +3,29 @@
pkgname=py3-sphinxcontrib-sqltable
_pkgname=sphinxcontrib.sqltable
pkgver=2.0.0
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx sqltable extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-sqltable"
+url="https://pypi.org/project/sphinxcontrib-sqltable"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx py3-sqlalchemy"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-pbr 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
-replaces="py-sphinxcontrib-sqltable" # Backwards compatibility
+replaces="py-sphinxcontrib-sqltable" # Backwards compatibility
provides="py-sphinxcontrib-sqltable=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="1f56e779857fd0578db5bf194b2867b0b1bcca4a89397a0764c005baef984ef4311ba23b56f87b1d7a17edadd53ec90a58a1cca619286547993ca5e6efb50e7b sphinxcontrib.sqltable-2.0.0.tar.gz"
diff --git a/testing/py3-sphinxcontrib-textstyle/APKBUILD b/testing/py3-sphinxcontrib-textstyle/APKBUILD
index 0c28276ce4e..8507bf50bee 100644
--- a/testing/py3-sphinxcontrib-textstyle/APKBUILD
+++ b/testing/py3-sphinxcontrib-textstyle/APKBUILD
@@ -3,24 +3,29 @@
pkgname=py3-sphinxcontrib-textstyle
_pkgname=sphinxcontrib-textstyle
pkgver=0.2.3
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx textstyle extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-textstyle"
+url="https://pypi.org/project/sphinxcontrib-textstyle"
arch="noarch"
license="BSD-2-Clause"
depends="python3 py3-sphinx 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
-replaces="py-sphinxcontrib-textstyle" # Backwards compatibility
+replaces="py-sphinxcontrib-textstyle" # Backwards compatibility
provides="py-sphinxcontrib-textstyle=$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="0b6ba8d50a97439e2ab57de336157f942876ee9c8203e8ff5be415fdc340bacab15fb461579457209e616c7fa1eec2c42720d5b0e3726c83a123e700b096fb4d sphinxcontrib-textstyle-0.2.3.tar.gz"
diff --git a/testing/py3-sphobjinv/APKBUILD b/testing/py3-sphobjinv/APKBUILD
new file mode 100644
index 00000000000..dcb38babd47
--- /dev/null
+++ b/testing/py3-sphobjinv/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-sphobjinv
+_pyname=sphobjinv
+pkgver=2.3.1
+pkgrel=2
+pkgdesc="Sphinx objects.inv Inspection/Manipulation Tool"
+url="https://github.com/bskinn/sphobjinv"
+arch="noarch"
+license="MIT"
+options="!check" # no tests
+depends="python3 py3-attrs py3-certifi py3-jsonschema py3-fuzzywuzzy"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/bskinn/sphobjinv/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+7253b8b21e2027ce22013edf76a6cd397dcebf652e235a8af8b82349fb19a2f7df15d33f9f032f195a4b471f5bb5321c7de0fb195a5c0c2ce3847be23da35862 sphobjinv-2.3.1.tar.gz
+"
diff --git a/testing/py3-spidev/APKBUILD b/testing/py3-spidev/APKBUILD
new file mode 100644
index 00000000000..09f0b02675f
--- /dev/null
+++ b/testing/py3-spidev/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=py3-spidev
+pkgver=3.6
+pkgrel=0
+pkgdesc="python module for interfacing with SPI devices from user space"
+url="https://github.com/doceme/py-spidev"
+arch="all"
+license="MIT"
+depends="python3"
+makedepends="linux-headers python3-dev py3-setuptools py3-gpep517 py3-installer py3-wheel"
+source="https://github.com/doceme/py-spidev/archive/v$pkgver/py-spidev-v$pkgver.tar.gz"
+builddir="$srcdir/py-spidev-$pkgver/"
+options="!check" # no upstream tests
+
+build() {
+ gpep517 build-wheel \
+ --backend setuptools.build_meta \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/spidev*.whl
+}
+
+sha512sums="
+0d69f8058ffaf8ec6867db78248c398cce5f7349908940ad68297289e7fa0dbb532af4607ad0e0d783e96d0e9fa65f2cb40b442d34c5fba94741e32e0466e61e py-spidev-v3.6.tar.gz
+"
diff --git a/testing/py3-spin/APKBUILD b/testing/py3-spin/APKBUILD
new file mode 100644
index 00000000000..793c2f9ce69
--- /dev/null
+++ b/testing/py3-spin/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=py3-spin
+_pkgname=spin
+pkgver=0.8
+pkgrel=0
+pkgdesc="Developer tool for scientific Python libraries"
+url="https://pypi.org/project/spin/"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="py3-pytest py3-click"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+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="
+b8755f692b484b66b445d8e1405946182137c5f176f402a99fffb12883896cce90cd0aed7504dc014b705861b96ca523c0ce87585d16707ba5e49cdd00b40284 spin-0.8.tar.gz
+"
diff --git a/testing/py3-spinners/APKBUILD b/testing/py3-spinners/APKBUILD
new file mode 100644
index 00000000000..b858ccc27f5
--- /dev/null
+++ b/testing/py3-spinners/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-spinners
+_pyname=spinners
+pkgver=0.0.24
+pkgrel=4
+pkgdesc="Terminal spinners for Python"
+url="https://github.com/manrajgrover/py-spinners"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://pypi.python.org/packages/source/s/spinners/spinners-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+1c6e46ae45bceff23bb0e518dd5823ee67f04dd6da0fda13ecd6808a610cbad40c04b7044f4a78bcf2bc0cb3e4891349a80801ecedb899a5f623a19724f056ea spinners-0.0.24.tar.gz
+"
diff --git a/testing/py3-spnego/APKBUILD b/testing/py3-spnego/APKBUILD
new file mode 100644
index 00000000000..a72d957116d
--- /dev/null
+++ b/testing/py3-spnego/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=py3-spnego
+_pkgname=pyspnego
+pkgver=0.10.2
+pkgrel=1
+pkgdesc="SPNEGO Authentication library"
+url="https://github.com/jborean93/pyspnego"
+arch="noarch"
+license="MIT"
+depends="python3 py3-cryptography"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ cython
+ py3-krb5
+ py3-pytest
+ py3-pytest-cov
+ py3-pytest-mock
+ py3-pytest-xdist
+ py3-python-gssapi
+ py3-ruamel.yaml
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jborean93/pyspnego/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+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 -n auto
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4795c08f541fce3c6c52323bf9182ed7bffdd567986881ad0ff7e039b875e1f7410b6fb83817b0771d45bc5afbefca56a94136c0154553eb7aa5b0a142b71489 py3-spnego-0.10.2.tar.gz
+"
diff --git a/testing/py3-sportydatagen/APKBUILD b/testing/py3-sportydatagen/APKBUILD
new file mode 100644
index 00000000000..7dd26123e0d
--- /dev/null
+++ b/testing/py3-sportydatagen/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+# Maintainer: Iztok Fister, Jr. <iztok@iztok-jr-fister.eu>
+pkgname=py3-sportydatagen
+pkgver=0.2.2
+pkgrel=3
+pkgdesc="Generator of Endurance Sports Activity Collections (datasets)"
+url="https://gitlab.com/firefly-cpp/sportydatagen"
+arch="noarch !ppc64le !s390x !riscv64" # py3-sport-activities-features
+license="MIT"
+depends="python3 py3-niapy py3-numpy py3-pandas py3-scikit-learn py3-sport-activities-features"
+makedepends="py3-poetry-core py3-gpep517"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/firefly-cpp/sportydatagen/-/archive/$pkgver/sportydatagen-$pkgver.tar.gz"
+builddir="$srcdir/sportydatagen-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+# problems with test collection | missing deps; use smoke tests now
+check() {
+ PYTHONPATH=build/lib python3 -c "from sportydatagen import *"
+}
+
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/sportydatagen-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+8ae9801bbcec2cab63b1e8600f28c0da74008cedbb38b98ba8d59b636265b0f93ab13514ffd778cd15abec71731e1aa9fd30aa88f5be3e513c8c4059a691291d py3-sportydatagen-0.2.2.tar.gz
+"
diff --git a/testing/py3-spotipy/APKBUILD b/testing/py3-spotipy/APKBUILD
new file mode 100644
index 00000000000..2d6940e99e9
--- /dev/null
+++ b/testing/py3-spotipy/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-spotipy
+_pkgname=spotipy
+pkgver=2.23.0
+pkgrel=2
+pkgdesc="Light weight Python library for the Spotify Web API"
+url="https://github.com/spotipy-dev/spotipy"
+arch="noarch"
+license="MIT"
+depends="py3-requests py3-six py3-urllib3 py3-redis"
+makedepends="py3-setuptools"
+options="!check" # requires Spotify API Key
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/spotipy-dev/spotipy/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+52955fa3365d5153f19f60874ce8e96910ac8db783499e0e2ef2ab31127277844e24a045115dc522dd7b7535f7907de56da87e02a63b94ee7506b75c1e108e9b py3-spotipy-2.23.0.tar.gz
+"
diff --git a/testing/py3-sqlalchemy-utils/APKBUILD b/testing/py3-sqlalchemy-utils/APKBUILD
deleted file mode 100644
index 8f6e04d8cd0..00000000000
--- a/testing/py3-sqlalchemy-utils/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-sqlalchemy-utils
-_pkgname=SQLAlchemy-Utils
-pkgver=0.36.5
-pkgrel=0
-pkgdesc="Various utility functions and custom data types for SQLAlchemy"
-url="https://sqlalchemy-utils.readthedocs.io/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-anyjson py3-arrow py3-babel py3-colour py3-cryptography
- py3-dateutil py3-furl py3-intervals py3-passlib py3-phonenumbers
- py3-sqlalchemy"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1d2b80d95658a68f30f52b89d8119709ab645cfe9c63eec98d2c80e846feb2288abbb0379b658082ea1d4a62c5dd094a5e638c83930389edacadb1e33ecd549a SQLAlchemy-Utils-0.36.5.tar.gz"
diff --git a/testing/py3-srsly/APKBUILD b/testing/py3-srsly/APKBUILD
deleted file mode 100644
index bd335535d17..00000000000
--- a/testing/py3-srsly/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-srsly
-pkgver=2.0.1
-pkgrel=0
-pkgdesc="Modern high-performance serialization utilities for Python"
-url="https://github.com/explosion/srsly"
-arch="all !mips !mips64" # blocked by py3-numpy
-license="MIT"
-depends="python3 py3-numpy py3-tz"
-makedepends="python3-dev py3-setuptools cython"
-checkdepends="py3-pytest py3-pytest-timeout py3-mock"
-subpackages="$pkgname-doc"
-source="srsly-$pkgver.tar.gz::https://github.com/explosion/srsly/archive/v$pkgver.tar.gz"
-builddir="$srcdir/srsly-$pkgver"
-
-build() {
- python3 setup.py build_ext --inplace
-}
-
-check() {
- PYTHONPATH="$(echo $PWD/build/lib.*)" pytest-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="25557e5bd2869b4fcd3a801af6e19461eaf5fab920a252ce24229b637fcdec96ce706eb6b92158e9537c9cf9890b2ac5635c5a4f08641d30f8801fb18cff5128 srsly-2.0.1.tar.gz"
diff --git a/testing/py3-srt/APKBUILD b/testing/py3-srt/APKBUILD
new file mode 100644
index 00000000000..7d0493974c2
--- /dev/null
+++ b/testing/py3-srt/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-srt
+pkgver=3.5.3
+pkgrel=1
+pkgdesc="A tiny library for parsing, modifying, and composing SRT files"
+url="https://github.com/cdown/srt"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-hypothesis
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cdown/srt/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/srt-$pkgver"
+
+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="
+df4968715a557ec594b68ade57ef3fa86599338f693fc339acf91a5036cb50c066e900927001ae92ad71b66e16de3cfe4cfbbf9946372428f7a5cbe179c6de8a py3-srt-3.5.3.tar.gz
+"
diff --git a/testing/py3-sshuttle/APKBUILD b/testing/py3-sshuttle/APKBUILD
deleted file mode 100644
index d2f16e5f573..00000000000
--- a/testing/py3-sshuttle/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname=py3-sshuttle
-_pyname=sshuttle
-pkgver=0.78.5
-pkgrel=1
-pkgdesc="Transparent proxy server that works as a poor man's VPN using ssh"
-url="https://github.com/sshuttle/sshuttle"
-arch="noarch"
-license="LGPL-2.1-or-later"
-depends="py3-setuptools"
-makedepends="py3-setuptools_scm"
-checkdepends="py3-mock py3-pytest py3-pytest-mock py3-pytest-cov
- py3-pytest-runner py3-pytest-flake8"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-
-case "$CARCH" in
-mips*) options="!check";;
-esac
-
-builddir=$srcdir/$_pyname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- chmod -R a+r "$pkgdir" # allow regular user
-}
-
-sha512sums="562acbf0e825ad41458c5b6065592a45b8bac92cd64b20619027fe4d0bec60a22c5191c7a7ed6b216d8cf5c9e027f58a6cdca69dd3a11ec6f6d348ef2f13bb38 sshuttle-0.78.5.tar.gz"
diff --git a/testing/py3-sstash/APKBUILD b/testing/py3-sstash/APKBUILD
index 35d7b69418e..2957b062e8b 100644
--- a/testing/py3-sstash/APKBUILD
+++ b/testing/py3-sstash/APKBUILD
@@ -3,14 +3,15 @@
pkgname=py3-sstash
_pkgname=sstash
pkgver=0.17
-pkgrel=3
+pkgrel=8
pkgdesc="A python based on-disk secure stash"
url="https://github.com/realcr/sstash"
arch="noarch"
license="MIT"
depends="python3 py3-pynacl py3-click py3-jsonschema"
-makedepends="py3-setuptools py3-pytest"
+makedepends="py3-setuptools py3-pytest py3-pytest-runner"
options="!check" # PYPI tarball has no tests, GitHub has no releases
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -19,7 +20,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="133b67875b002ac59c17fa8b21c3889108317083c32a6fb4858c3a6c970dc0c97ddfa1fa45d262bbc5d1f5c8210780083cbeb8c740c5f41b5862711eaf3867d5 sstash-0.17.tar.gz"
diff --git a/testing/py3-stringcase/APKBUILD b/testing/py3-stringcase/APKBUILD
new file mode 100644
index 00000000000..d307586065a
--- /dev/null
+++ b/testing/py3-stringcase/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-stringcase
+_pkgname=stringcase
+pkgver=1.2.0
+pkgrel=8
+pkgdesc="Convert string cases between camel case, pascal case, snake case etc..."
+url="https://pypi.org/project/stringcase"
+arch="noarch"
+license="MIT"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="stringcase-$pkgver.tar.gz::https://pypi.io/packages/source/s/stringcase/stringcase-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+c987f9aa42d22bcfaa6559791bf9292e4300af00d2cf2165838cacd6203b913da197852d49285c30188ca529fd529513cce73a1984f5555cfb81e704977786d3 stringcase-1.2.0.tar.gz
+"
diff --git a/testing/py3-svgpath/105_use-better-than-nothing-font.patch b/testing/py3-svgpath/105_use-better-than-nothing-font.patch
new file mode 100644
index 00000000000..7e3d18d1fc5
--- /dev/null
+++ b/testing/py3-svgpath/105_use-better-than-nothing-font.patch
@@ -0,0 +1,300 @@
+From a17ed35e490a99a7dfab9833f6f3be86f004f699 Mon Sep 17 00:00:00 2001
+From: Benjamin Drung <benjamin.drung@canonical.com>
+Date: Fri, 15 Dec 2023 15:32:16 +0100
+Subject: [PATCH] tests: Use better than nothing font
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Pillow 10.1.0 uses a version of Aileron Regular instead of the previous
+“better than nothing†default font (in case FreeType support is
+available). This font change changes the resulting bitmap.
+
+Use the "better than nothing" font to keep the expected result
+identical. The proper solution is either to use one specific font in
+svg.path or make pillow support loading the “better than nothingâ€
+default font.
+
+Bug-Debian: https://bugs.debian.org/1055159
+---
+ tests/font.py | 145 ++++++++++++++++++++++++++++++++
+ tests/test_boundingbox_image.py | 18 ++--
+ tests/test_image.py | 18 +++-
+ 3 files changed, 170 insertions(+), 11 deletions(-)
+ create mode 100644 tests/font.py
+
+diff --git a/tests/font.py b/tests/font.py
+new file mode 100644
+index 0000000..d375f49
+--- /dev/null
++++ b/tests/font.py
+@@ -0,0 +1,145 @@
++# Code taken from https://github.com/python-pillow/Pillow/blob/main/src/PIL/ImageFont.py
++#
++# License: the open source HPND License
++# Copyright (c) 1997-2003 by Secret Labs AB
++# Copyright (c) 1996-2003 by Fredrik Lundh
++
++from PIL import Image, ImageFont
++from io import BytesIO
++import base64
++
++
++def get_better_than_nothing_font():
++ font = ImageFont.ImageFont()
++ font._load_pilfont_data(
++ # courB08
++ BytesIO(
++ base64.b64decode(
++ b"""
++UElMZm9udAo7Ozs7OzsxMDsKREFUQQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAA//8AAQAAAAAAAAABAAEA
++BgAAAAH/+gADAAAAAQAAAAMABgAGAAAAAf/6AAT//QADAAAABgADAAYAAAAA//kABQABAAYAAAAL
++AAgABgAAAAD/+AAFAAEACwAAABAACQAGAAAAAP/5AAUAAAAQAAAAFQAHAAYAAP////oABQAAABUA
++AAAbAAYABgAAAAH/+QAE//wAGwAAAB4AAwAGAAAAAf/5AAQAAQAeAAAAIQAIAAYAAAAB//kABAAB
++ACEAAAAkAAgABgAAAAD/+QAE//0AJAAAACgABAAGAAAAAP/6AAX//wAoAAAALQAFAAYAAAAB//8A
++BAACAC0AAAAwAAMABgAAAAD//AAF//0AMAAAADUAAQAGAAAAAf//AAMAAAA1AAAANwABAAYAAAAB
++//kABQABADcAAAA7AAgABgAAAAD/+QAFAAAAOwAAAEAABwAGAAAAAP/5AAYAAABAAAAARgAHAAYA
++AAAA//kABQAAAEYAAABLAAcABgAAAAD/+QAFAAAASwAAAFAABwAGAAAAAP/5AAYAAABQAAAAVgAH
++AAYAAAAA//kABQAAAFYAAABbAAcABgAAAAD/+QAFAAAAWwAAAGAABwAGAAAAAP/5AAUAAABgAAAA
++ZQAHAAYAAAAA//kABQAAAGUAAABqAAcABgAAAAD/+QAFAAAAagAAAG8ABwAGAAAAAf/8AAMAAABv
++AAAAcQAEAAYAAAAA//wAAwACAHEAAAB0AAYABgAAAAD/+gAE//8AdAAAAHgABQAGAAAAAP/7AAT/
++/gB4AAAAfAADAAYAAAAB//oABf//AHwAAACAAAUABgAAAAD/+gAFAAAAgAAAAIUABgAGAAAAAP/5
++AAYAAQCFAAAAiwAIAAYAAP////oABgAAAIsAAACSAAYABgAA////+gAFAAAAkgAAAJgABgAGAAAA
++AP/6AAUAAACYAAAAnQAGAAYAAP////oABQAAAJ0AAACjAAYABgAA////+gAFAAAAowAAAKkABgAG
++AAD////6AAUAAACpAAAArwAGAAYAAAAA//oABQAAAK8AAAC0AAYABgAA////+gAGAAAAtAAAALsA
++BgAGAAAAAP/6AAQAAAC7AAAAvwAGAAYAAP////oABQAAAL8AAADFAAYABgAA////+gAGAAAAxQAA
++AMwABgAGAAD////6AAUAAADMAAAA0gAGAAYAAP////oABQAAANIAAADYAAYABgAA////+gAGAAAA
++2AAAAN8ABgAGAAAAAP/6AAUAAADfAAAA5AAGAAYAAP////oABQAAAOQAAADqAAYABgAAAAD/+gAF
++AAEA6gAAAO8ABwAGAAD////6AAYAAADvAAAA9gAGAAYAAAAA//oABQAAAPYAAAD7AAYABgAA////
+++gAFAAAA+wAAAQEABgAGAAD////6AAYAAAEBAAABCAAGAAYAAP////oABgAAAQgAAAEPAAYABgAA
++////+gAGAAABDwAAARYABgAGAAAAAP/6AAYAAAEWAAABHAAGAAYAAP////oABgAAARwAAAEjAAYA
++BgAAAAD/+gAFAAABIwAAASgABgAGAAAAAf/5AAQAAQEoAAABKwAIAAYAAAAA//kABAABASsAAAEv
++AAgABgAAAAH/+QAEAAEBLwAAATIACAAGAAAAAP/5AAX//AEyAAABNwADAAYAAAAAAAEABgACATcA
++AAE9AAEABgAAAAH/+QAE//wBPQAAAUAAAwAGAAAAAP/7AAYAAAFAAAABRgAFAAYAAP////kABQAA
++AUYAAAFMAAcABgAAAAD/+wAFAAABTAAAAVEABQAGAAAAAP/5AAYAAAFRAAABVwAHAAYAAAAA//sA
++BQAAAVcAAAFcAAUABgAAAAD/+QAFAAABXAAAAWEABwAGAAAAAP/7AAYAAgFhAAABZwAHAAYAAP//
++//kABQAAAWcAAAFtAAcABgAAAAD/+QAGAAABbQAAAXMABwAGAAAAAP/5AAQAAgFzAAABdwAJAAYA
++AP////kABgAAAXcAAAF+AAcABgAAAAD/+QAGAAABfgAAAYQABwAGAAD////7AAUAAAGEAAABigAF
++AAYAAP////sABQAAAYoAAAGQAAUABgAAAAD/+wAFAAABkAAAAZUABQAGAAD////7AAUAAgGVAAAB
++mwAHAAYAAAAA//sABgACAZsAAAGhAAcABgAAAAD/+wAGAAABoQAAAacABQAGAAAAAP/7AAYAAAGn
++AAABrQAFAAYAAAAA//kABgAAAa0AAAGzAAcABgAA////+wAGAAABswAAAboABQAGAAD////7AAUA
++AAG6AAABwAAFAAYAAP////sABgAAAcAAAAHHAAUABgAAAAD/+wAGAAABxwAAAc0ABQAGAAD////7
++AAYAAgHNAAAB1AAHAAYAAAAA//sABQAAAdQAAAHZAAUABgAAAAH/+QAFAAEB2QAAAd0ACAAGAAAA
++Av/6AAMAAQHdAAAB3gAHAAYAAAAA//kABAABAd4AAAHiAAgABgAAAAD/+wAF//0B4gAAAecAAgAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
++AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAB
++//sAAwACAecAAAHpAAcABgAAAAD/+QAFAAEB6QAAAe4ACAAGAAAAAP/5AAYAAAHuAAAB9AAHAAYA
++AAAA//oABf//AfQAAAH5AAUABgAAAAD/+QAGAAAB+QAAAf8ABwAGAAAAAv/5AAMAAgH/AAACAAAJ
++AAYAAAAA//kABQABAgAAAAIFAAgABgAAAAH/+gAE//sCBQAAAggAAQAGAAAAAP/5AAYAAAIIAAAC
++DgAHAAYAAAAB//kABf/+Ag4AAAISAAUABgAA////+wAGAAACEgAAAhkABQAGAAAAAP/7AAX//gIZ
++AAACHgADAAYAAAAA//wABf/9Ah4AAAIjAAEABgAAAAD/+QAHAAACIwAAAioABwAGAAAAAP/6AAT/
+++wIqAAACLgABAAYAAAAA//kABP/8Ai4AAAIyAAMABgAAAAD/+gAFAAACMgAAAjcABgAGAAAAAf/5
++AAT//QI3AAACOgAEAAYAAAAB//kABP/9AjoAAAI9AAQABgAAAAL/+QAE//sCPQAAAj8AAgAGAAD/
++///7AAYAAgI/AAACRgAHAAYAAAAA//kABgABAkYAAAJMAAgABgAAAAH//AAD//0CTAAAAk4AAQAG
++AAAAAf//AAQAAgJOAAACUQADAAYAAAAB//kABP/9AlEAAAJUAAQABgAAAAH/+QAF//4CVAAAAlgA
++BQAGAAD////7AAYAAAJYAAACXwAFAAYAAP////kABgAAAl8AAAJmAAcABgAA////+QAGAAACZgAA
++Am0ABwAGAAD////5AAYAAAJtAAACdAAHAAYAAAAA//sABQACAnQAAAJ5AAcABgAA////9wAGAAAC
++eQAAAoAACQAGAAD////3AAYAAAKAAAAChwAJAAYAAP////cABgAAAocAAAKOAAkABgAA////9wAG
++AAACjgAAApUACQAGAAD////4AAYAAAKVAAACnAAIAAYAAP////cABgAAApwAAAKjAAkABgAA////
+++gAGAAACowAAAqoABgAGAAAAAP/6AAUAAgKqAAACrwAIAAYAAP////cABQAAAq8AAAK1AAkABgAA
++////9wAFAAACtQAAArsACQAGAAD////3AAUAAAK7AAACwQAJAAYAAP////gABQAAAsEAAALHAAgA
++BgAAAAD/9wAEAAACxwAAAssACQAGAAAAAP/3AAQAAALLAAACzwAJAAYAAAAA//cABAAAAs8AAALT
++AAkABgAAAAD/+AAEAAAC0wAAAtcACAAGAAD////6AAUAAALXAAAC3QAGAAYAAP////cABgAAAt0A
++AALkAAkABgAAAAD/9wAFAAAC5AAAAukACQAGAAAAAP/3AAUAAALpAAAC7gAJAAYAAAAA//cABQAA
++Au4AAALzAAkABgAAAAD/9wAFAAAC8wAAAvgACQAGAAAAAP/4AAUAAAL4AAAC/QAIAAYAAAAA//oA
++Bf//Av0AAAMCAAUABgAA////+gAGAAADAgAAAwkABgAGAAD////3AAYAAAMJAAADEAAJAAYAAP//
++//cABgAAAxAAAAMXAAkABgAA////9wAGAAADFwAAAx4ACQAGAAD////4AAYAAAAAAAoABwASAAYA
++AP////cABgAAAAcACgAOABMABgAA////+gAFAAAADgAKABQAEAAGAAD////6AAYAAAAUAAoAGwAQ
++AAYAAAAA//gABgAAABsACgAhABIABgAAAAD/+AAGAAAAIQAKACcAEgAGAAAAAP/4AAYAAAAnAAoA
++LQASAAYAAAAA//gABgAAAC0ACgAzABIABgAAAAD/+QAGAAAAMwAKADkAEQAGAAAAAP/3AAYAAAA5
++AAoAPwATAAYAAP////sABQAAAD8ACgBFAA8ABgAAAAD/+wAFAAIARQAKAEoAEQAGAAAAAP/4AAUA
++AABKAAoATwASAAYAAAAA//gABQAAAE8ACgBUABIABgAAAAD/+AAFAAAAVAAKAFkAEgAGAAAAAP/5
++AAUAAABZAAoAXgARAAYAAAAA//gABgAAAF4ACgBkABIABgAAAAD/+AAGAAAAZAAKAGoAEgAGAAAA
++AP/4AAYAAABqAAoAcAASAAYAAAAA//kABgAAAHAACgB2ABEABgAAAAD/+AAFAAAAdgAKAHsAEgAG
++AAD////4AAYAAAB7AAoAggASAAYAAAAA//gABQAAAIIACgCHABIABgAAAAD/+AAFAAAAhwAKAIwA
++EgAGAAAAAP/4AAUAAACMAAoAkQASAAYAAAAA//gABQAAAJEACgCWABIABgAAAAD/+QAFAAAAlgAK
++AJsAEQAGAAAAAP/6AAX//wCbAAoAoAAPAAYAAAAA//oABQABAKAACgClABEABgAA////+AAGAAAA
++pQAKAKwAEgAGAAD////4AAYAAACsAAoAswASAAYAAP////gABgAAALMACgC6ABIABgAA////+QAG
++AAAAugAKAMEAEQAGAAD////4AAYAAgDBAAoAyAAUAAYAAP////kABQACAMgACgDOABMABgAA////
+++QAGAAIAzgAKANUAEw==
++"""
++ )
++ ),
++ Image.open(
++ BytesIO(
++ base64.b64decode(
++ b"""
++iVBORw0KGgoAAAANSUhEUgAAAx4AAAAUAQAAAAArMtZoAAAEwElEQVR4nABlAJr/AHVE4czCI/4u
++Mc4b7vuds/xzjz5/3/7u/n9vMe7vnfH/9++vPn/xyf5zhxzjt8GHw8+2d83u8x27199/nxuQ6Od9
++M43/5z2I+9n9ZtmDBwMQECDRQw/eQIQohJXxpBCNVE6QCCAAAAD//wBlAJr/AgALyj1t/wINwq0g
++LeNZUworuN1cjTPIzrTX6ofHWeo3v336qPzfEwRmBnHTtf95/fglZK5N0PDgfRTslpGBvz7LFc4F
++IUXBWQGjQ5MGCx34EDFPwXiY4YbYxavpnhHFrk14CDAAAAD//wBlAJr/AgKqRooH2gAgPeggvUAA
++Bu2WfgPoAwzRAABAAAAAAACQgLz/3Uv4Gv+gX7BJgDeeGP6AAAD1NMDzKHD7ANWr3loYbxsAD791
++NAADfcoIDyP44K/jv4Y63/Z+t98Ovt+ub4T48LAAAAD//wBlAJr/AuplMlADJAAAAGuAphWpqhMx
++in0A/fRvAYBABPgBwBUgABBQ/sYAyv9g0bCHgOLoGAAAAAAAREAAwI7nr0ArYpow7aX8//9LaP/9
++SjdavWA8ePHeBIKB//81/83ndznOaXx379wAAAD//wBlAJr/AqDxW+D3AABAAbUh/QMnbQag/gAY
++AYDAAACgtgD/gOqAAAB5IA/8AAAk+n9w0AAA8AAAmFRJuPo27ciC0cD5oeW4E7KA/wD3ECMAn2tt
++y8PgwH8AfAxFzC0JzeAMtratAsC/ffwAAAD//wBlAJr/BGKAyCAA4AAAAvgeYTAwHd1kmQF5chkG
++ABoMIHcL5xVpTfQbUqzlAAAErwAQBgAAEOClA5D9il08AEh/tUzdCBsXkbgACED+woQg8Si9VeqY
++lODCn7lmF6NhnAEYgAAA/NMIAAAAAAD//2JgjLZgVGBg5Pv/Tvpc8hwGBjYGJADjHDrAwPzAjv/H
++/Wf3PzCwtzcwHmBgYGcwbZz8wHaCAQMDOwMDQ8MCBgYOC3W7mp+f0w+wHOYxO3OG+e376hsMZjk3
++AAAAAP//YmCMY2A4wMAIN5e5gQETPD6AZisDAwMDgzSDAAPjByiHcQMDAwMDg1nOze1lByRu5/47
++c4859311AYNZzg0AAAAA//9iYGDBYihOIIMuwIjGL39/fwffA8b//xv/P2BPtzzHwCBjUQAAAAD/
++/yLFBrIBAAAA//9i1HhcwdhizX7u8NZNzyLbvT97bfrMf/QHI8evOwcSqGUJAAAA//9iYBB81iSw
++pEE170Qrg5MIYydHqwdDQRMrAwcVrQAAAAD//2J4x7j9AAMDn8Q/BgYLBoaiAwwMjPdvMDBYM1Tv
++oJodAAAAAP//Yqo/83+dxePWlxl3npsel9lvLfPcqlE9725C+acfVLMEAAAA//9i+s9gwCoaaGMR
++evta/58PTEWzr21hufPjA8N+qlnBwAAAAAD//2JiWLci5v1+HmFXDqcnULE/MxgYGBj+f6CaJQAA
++AAD//2Ji2FrkY3iYpYC5qDeGgeEMAwPDvwQBBoYvcTwOVLMEAAAA//9isDBgkP///0EOg9z35v//
++Gc/eeW7BwPj5+QGZhANUswMAAAD//2JgqGBgYGBgqEMXlvhMPUsAAAAA//8iYDd1AAAAAP//AwDR
++w7IkEbzhVQAAAABJRU5ErkJggg==
++"""
++ )
++ )
++ ),
++ )
++ return font
+diff --git a/tests/test_boundingbox_image.py b/tests/test_boundingbox_image.py
+index 21f19a7..414f0b1 100644
+--- a/tests/test_boundingbox_image.py
++++ b/tests/test_boundingbox_image.py
+@@ -5,6 +5,7 @@
+
+ from PIL import Image, ImageDraw, ImageColor, ImageChops
+ from svg.path.path import CubicBezier, QuadraticBezier, Line, Arc
++from .font import get_better_than_nothing_font
+
+
+ RED = ImageColor.getcolor("red", mode="RGB")
+@@ -57,17 +58,15 @@ def draw_boundingbox(self, path):
+ sys.platform != "linux", reason="Different platforms have different fonts"
+ )
+ def test_image(self):
+- self.draw.text((10, 10), "This is an SVG line:")
+- self.draw.text(
+- (10, 100),
+- "The red line is a bounding box.",
+- )
++ font = get_better_than_nothing_font()
++ self.draw.text((10, 10), "This is an SVG line:", font=font)
++ self.draw.text((10, 100), "The red line is a bounding box.", font=font)
+
+ line1 = Line(40 + 60j, 200 + 80j)
+ self.draw_path(line1)
+ self.draw_boundingbox(line1)
+
+- self.draw.text((10, 140), "These are Arc segments:")
++ self.draw.text((10, 140), "These are Arc segments:", font=font)
+ arc1 = Arc(260 + 320j, 100 + 100j, 0, 1, 1, 260 + 319j)
+ self.draw_path(arc1)
+ self.draw_boundingbox(arc1)
+@@ -83,6 +82,7 @@ def test_image(self):
+ self.draw.text(
+ (10, 500),
+ "Next we have a quadratic bezier curve, with one tangent:",
++ font=font,
+ )
+ start = 30 + 600j
+ control = 400 + 540j
+@@ -95,12 +95,16 @@ def test_image(self):
+ self.draw.text(
+ (10, 670),
+ "The white dot is the control point, and the cyan lines are ",
++ font=font,
++ )
++ self.draw.text(
++ (10, 690), "illustrating the how the control point works.", font=font
+ )
+- self.draw.text((10, 690), "illustrating the how the control point works.")
+
+ self.draw.text(
+ (10, 730),
+ "Lastly is a cubic bezier, with 2 tangents, and 2 control points:",
++ font=font,
+ )
+
+ start = 200 + 800j
+diff --git a/tests/test_image.py b/tests/test_image.py
+index 49967ea..ae3a357 100644
+--- a/tests/test_image.py
++++ b/tests/test_image.py
+@@ -4,6 +4,7 @@
+ from math import sqrt
+
+ from svg.path.path import CubicBezier, QuadraticBezier, Line, Arc
++from .font import get_better_than_nothing_font
+
+
+ RED = ImageColor.getcolor("red", mode="RGB")
+@@ -57,25 +58,30 @@ def draw_tangents(self, path, count):
+ self.draw.line([c2t(p), c2t(tt + p)], fill=YELLOW, width=1)
+
+ def test_image(self):
+- self.draw.text((10, 10), "This is an SVG line:")
++ font = get_better_than_nothing_font()
++ self.draw.text((10, 10), "This is an SVG line:", font=font)
+ self.draw.text(
+ (10, 100),
+ "The red line is a tangent, and the yellow is 90 degrees from that.",
++ font=font,
+ )
+
+ line1 = Line(40 + 60j, 200 + 80j)
+ self.draw_path(line1)
+ self.draw_tangents(line1, 1)
+
+- self.draw.text((10, 140), "This is an Arc segment, almost a whole circle:")
++ self.draw.text(
++ (10, 140), "This is an Arc segment, almost a whole circle:", font=font
++ )
+ arc1 = Arc(260 + 320j, 100 + 100j, 0, 1, 1, 260 + 319j)
+ self.draw_path(arc1)
+ self.draw_tangents(arc1, 5)
+- self.draw.text((10, 460), "With five tangents.")
++ self.draw.text((10, 460), "With five tangents.", font=font)
+
+ self.draw.text(
+ (10, 500),
+ "Next we have a quadratic bezier curve, with one tangent:",
++ font=font,
+ )
+ start = 30 + 600j
+ control = 400 + 540j
+@@ -88,12 +94,16 @@ def test_image(self):
+ self.draw.text(
+ (10, 670),
+ "The white dot is the control point, and the cyan lines are ",
++ font=font,
++ )
++ self.draw.text(
++ (10, 690), "illustrating the how the control point works.", font=font
+ )
+- self.draw.text((10, 690), "illustrating the how the control point works.")
+
+ self.draw.text(
+ (10, 730),
+ "Lastly is a cubic bezier, with 2 tangents, and 2 control points:",
++ font=font,
+ )
+
+ start = 30 + 800j
diff --git a/testing/py3-svgpath/APKBUILD b/testing/py3-svgpath/APKBUILD
new file mode 100644
index 00000000000..12901b96a2f
--- /dev/null
+++ b/testing/py3-svgpath/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-svgpath
+pkgver=6.3
+pkgrel=2
+pkgdesc="SVG path and object parser"
+url="https://github.com/regebro/svg.path"
+arch="noarch"
+license="MIT"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="py3-pytest py3-pillow"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/regebro/svg.path/archive/refs/tags/$pkgver.tar.gz
+ 105_use-better-than-nothing-font.patch
+ no-install-tests.patch"
+builddir="$srcdir/svg.path-$pkgver"
+
+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="
+fd9dd9e1e603be5e212e3eb247c9f3778203f5285397a4cdde4c038c3f31f7bc2b8904491c208256996e2fbd39b4e5f7ea58d964bd5d22bc09c57e4bc2c70317 py3-svgpath-6.3.tar.gz
+d12d32b0f6b075ee8602a7eee5dd1ddaa8f097fe3d471f2941fac0bba335641111eb2c0e2819dffea822f895833ffafa35baac80085cf759ca1ed8f7a6b92773 105_use-better-than-nothing-font.patch
+62ab1e0980c7fb797f74b81c937a68b6af1112fff293e6ddec6389a8e490a08e181c37217408b58ce3a2ae2afda7813bb3bbe57d5414cfc18e4e53e6d2f2ea5a no-install-tests.patch
+"
diff --git a/testing/py3-svgpath/no-install-tests.patch b/testing/py3-svgpath/no-install-tests.patch
new file mode 100644
index 00000000000..994ce3ce7bd
--- /dev/null
+++ b/testing/py3-svgpath/no-install-tests.patch
@@ -0,0 +1,15 @@
+--- ./setup.py.orig
++++ ./setup.py
+@@ -1,3 +1,3 @@
+-from setuptools import setup
++from setuptools import setup, find_packages
+
+-setup()
++setup(packages=find_packages("src", exclude=["*tests"]))
+--- ./MANIFEST.in.orig
++++ ./MANIFEST.in
+@@ -3,3 +3,4 @@
+
+ recursive-include src *.png
+
++global-exclude tests/*
diff --git a/testing/py3-swagger-ui-bundle/APKBUILD b/testing/py3-swagger-ui-bundle/APKBUILD
new file mode 100644
index 00000000000..1ead641bb98
--- /dev/null
+++ b/testing/py3-swagger-ui-bundle/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
+pkgname=py3-swagger-ui-bundle
+_pkgname=swagger_ui_bundle
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="bundled swagger-ui package"
+url="https://github.com/dtkav/swagger-ui-bundle"
+arch="noarch !riscv64" # missing checkdep
+license="Apache-2.0"
+checkdepends="
+ py3-pytest
+ py3-pytest-runner
+ "
+makedepends="
+ py3-flake8
+ py3-gpep517
+ py3-poetry-core
+ py3-setuptools
+ py3-wheel
+ "
+depends="
+ python3
+ py3-jinja2
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/dtkav/swagger-ui-bundle/archive/$pkgver/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+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="
+a32f7119698e1303ddab3708b307ab4a83e74804800124bedc78228e0f389ca3442aaff900ac374209813f0f1b01713c65292bda862ec04212593405cbb659fe swagger_ui_bundle-1.1.0.tar.gz
+"
diff --git a/testing/py3-sybil/APKBUILD b/testing/py3-sybil/APKBUILD
deleted file mode 100644
index 679bee049ba..00000000000
--- a/testing/py3-sybil/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-sybil
-pkgver=1.3.0
-pkgrel=1
-pkgdesc="Automated testing for the examples in your documentation"
-url="https://github.com/cjw296/sybil"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools py3-sphinx py3-wheel py3-nose"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/s/sybil/sybil-$pkgver.tar.gz"
-builddir="$srcdir/sybil-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" python3 -m pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="fc478896bb1958303ffcac6d35993b2785a50c6c221848d83c92c158a27fff059491aa3baaddd0b56e040fe6c07b764aa33c69204750de9ad351084b2815fd47 sybil-1.3.0.tar.gz"
diff --git a/testing/py3-syrupy/APKBUILD b/testing/py3-syrupy/APKBUILD
new file mode 100644
index 00000000000..ab914fc103a
--- /dev/null
+++ b/testing/py3-syrupy/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-syrupy
+_pyname=${pkgname/py3-/}
+pkgver=4.6.1
+pkgrel=1
+pkgdesc="The sweeter pytest snapshot plugin"
+url="https://tophat.github.io/syrupy"
+arch="noarch"
+license="Apache-2.0"
+depends="python3 py3-pytest py3-colored"
+makedepends="py3-poetry-core py3-gpep517"
+checkdepends="py3-invoke py3-pytest-benchmark"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tophat/syrupy/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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 --snapshot-update
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/$_pyname-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+579787b788567d7e22e322cbccf1105666ad6d72d2eb0c0dad90a78714626f925d31d4e6187b9761c82576d47d34e56fda4b6bf39df3e83b2b43a37d1bbc7f0d py3-syrupy-4.6.1.tar.gz
+"
diff --git a/testing/py3-tabulate/APKBUILD b/testing/py3-tabulate/APKBUILD
deleted file mode 100644
index 0f508ab58fb..00000000000
--- a/testing/py3-tabulate/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: Andy Postnikov <apostnikov@gmail.com>
-pkgname=py3-tabulate
-pkgver=0.8.7
-pkgrel=0
-pkgdesc="Pretty-print tabular data"
-url="https://bitbucket.org/astanin/python-tabulate"
-arch="noarch"
-license="MIT"
-depends="py3-setuptools py3-wcwidth"
-checkdepends="py3-nose"
-source="https://files.pythonhosted.org/packages/source/t/tabulate/tabulate-$pkgver.tar.gz"
-builddir="$srcdir/tabulate-$pkgver"
-
-replaces=py-tabulate # Backwards compatibility
-provides=py-tabulate=$pkgver-r$pkgrel # Backwards compatibility
-
-prepare() {
- default_prepare
- # fix interpreter invocation
- sed -i 's/"python"/"python3"/g' test/test_cli.py
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$builddir"/build/lib python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="963d12970227671fc80d26feacfafd37404034eba82778cee2450b8dbc7c723a7137209b601bc2adc13883543bff0d6b887ed2e7b91934a7f2ca4704ce5fd340 tabulate-0.8.7.tar.gz"
diff --git a/testing/py3-tailer/APKBUILD b/testing/py3-tailer/APKBUILD
index dd5280c26b1..df30c3b17ec 100644
--- a/testing/py3-tailer/APKBUILD
+++ b/testing/py3-tailer/APKBUILD
@@ -1,23 +1,29 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-tailer
-_pkgname=tailer
pkgver=0.4.1
-pkgrel=1
+pkgrel=7
pkgdesc="Python tail is a simple implementation of GNU tail and head"
url="https://github.com/six8/pytailer"
arch="noarch"
license="MIT"
-depends="python3"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-wheel py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/t/tailer/tailer-$pkgver.tar.gz"
+builddir="$srcdir/tailer-$pkgver"
+options="!check" # no tests provided
-builddir="$srcdir"/$_pkgname-$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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="c1f0f4cf9356c58366e3d86087bc922378a5d5d9833385e8b0f9acd16211a7ff486c4ea3be13208b85a9766b3fa163071216de54c7170395c18ba6da61650da3 tailer-0.4.1.tar.gz"
+sha512sums="
+c1f0f4cf9356c58366e3d86087bc922378a5d5d9833385e8b0f9acd16211a7ff486c4ea3be13208b85a9766b3fa163071216de54c7170395c18ba6da61650da3 tailer-0.4.1.tar.gz
+"
diff --git a/testing/py3-tasklib/APKBUILD b/testing/py3-tasklib/APKBUILD
new file mode 100644
index 00000000000..c5d406fac0d
--- /dev/null
+++ b/testing/py3-tasklib/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=py3-tasklib
+pkgver=2.5.1
+pkgrel=2
+pkgdesc="A Python library for interacting with taskwarrior databases"
+url="https://github.com/GothenburgBitFactory/tasklib"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 task py3-tz py3-tzlocal"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/GothenburgBitFactory/tasklib/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/tasklib-$pkgver"
+options="!check" # no upstream tests
+
+package() {
+ python3 setup.py install \
+ --prefix=/usr \
+ --root="$pkgdir" \
+ --single-version-externally-managed
+}
+sha512sums="
+b52a94e487eb90776a5edec63bfef9a4eaa5a87065be3a5386bd0d8b277b88fb35663ea5789e573a088e54fb9aa835c27d787fced4ed5198badff995dcc2e7e0 py3-tasklib-2.5.1.tar.gz
+"
diff --git a/testing/py3-tblib/APKBUILD b/testing/py3-tblib/APKBUILD
deleted file mode 100644
index 23b4a7a46cd..00000000000
--- a/testing/py3-tblib/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-tblib
-pkgver=1.6.0
-pkgrel=0
-pkgdesc="Serialization library for Exceptions and Tracebacks"
-url="https://github.com/ionelmc/python-tblib"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-depends="py3-attrs py3-automat py3-constantly py3-hyperlink py3-idna py3-incremental py3-more-itertools py3-packaging py3-pluggy py3-py py3-pyhamcrest py3-parsing py3-six py3-twisted py3-wcwidth py3-zope-interface"
-makedepends="py3-setuptools python3-dev py3-docutils"
-checkdepends="py3-coverage py3-pytest py3-flake8 py3-isort py3-pygments py3-mccabe py3-bleach py3-pep517 py3-pycodestyle py3-pyflakes py3-pyflakes py3-pytoml py3-webencodings"
-source="https://pypi.python.org/packages/source/t/tblib/tblib-$pkgver.tar.gz"
-builddir="$srcdir/tblib-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="3b11b94f341499f648c182e7a9b6c648b5312a18b3f23bf7e5d554052db4ffb7c4a4faa097bc2426b4159e28f0578c6b369ff4d02eb7711726b5359242216d35 tblib-1.6.0.tar.gz"
diff --git a/testing/py3-telegram-bot/APKBUILD b/testing/py3-telegram-bot/APKBUILD
index 3b197efc454..a591d6d772f 100644
--- a/testing/py3-telegram-bot/APKBUILD
+++ b/testing/py3-telegram-bot/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-telegram-bot
_pkgname=python-telegram-bot
-pkgver=12.7
-pkgrel=0
+pkgver=20.8
+pkgrel=1
pkgdesc="A Python wrapper around the Telegram Bot API"
url="https://github.com/python-telegram-bot/python-telegram-bot"
arch="noarch"
@@ -12,6 +12,7 @@ depends="py3-future py3-certifi py3-tornado py3-cryptography py3-decorator"
#checkdepends="pytest py-cffi py-cryptography py-future py-pathlib2"
options="!check" # few requirements-dev.txt packages missing in alpine
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/python-telegram-bot/python-telegram-bot/archive/v$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -27,7 +28,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="ed1059a34bdf68486832698b6ef703e80a0b576e0ef2065aa9299d1e5ec605ec6b417cc6add29e92650217497e5533c86f47ed1408b87d948b057966c14fb203 py3-telegram-bot-12.7.tar.gz"
+sha512sums="
+835a62bca5c14f06b3db682e3e5af732ab17c32ff89df1020d6cf30217c7db86f800a05f55e977dbd59cb9d46b26e03bc262ace48cd3f5b2ff1c63eb109b81c7 py3-telegram-bot-20.8.tar.gz
+"
diff --git a/testing/py3-telegram-text/APKBUILD b/testing/py3-telegram-text/APKBUILD
new file mode 100644
index 00000000000..b91fd43a68a
--- /dev/null
+++ b/testing/py3-telegram-text/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-telegram-text
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Python markup module for Telegram messenger"
+url="https://telegram-text.alinsky.tech/"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-gpep517 py3-poetry-core py3-installer"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/SKY-ALIN/telegram-text/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/telegram-text-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/telegram_text*.whl
+}
+
+sha512sums="
+aeab4e87fb4f07f0c335ecd2cddc42b754699285b59eec5bc8433dbf817b576dd36ade4c75cbad79642127f0c7e2f7c1f6bd2b220c2755bb9550ffed82a5cb14 py3-telegram-text-0.2.0.tar.gz
+"
diff --git a/testing/py3-telegram/0002-Remove-binarys.patch b/testing/py3-telegram/0002-Remove-binarys.patch
new file mode 100644
index 00000000000..0e090063534
--- /dev/null
+++ b/testing/py3-telegram/0002-Remove-binarys.patch
@@ -0,0 +1,17 @@
+diff --git a/setup.py b/setup.py
+index 36d7905..5e7df4b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -28,12 +28,6 @@ setup(
+ packages=[
+ 'telegram',
+ ],
+- package_data={
+- 'telegram': [
+- 'lib/darwin/*',
+- 'lib/linux/*',
+- ],
+- },
+ install_requires=[
+ 'telegram-text~=0.1',
+ ],
diff --git a/testing/py3-telegram/APKBUILD b/testing/py3-telegram/APKBUILD
new file mode 100644
index 00000000000..0a0c22e2689
--- /dev/null
+++ b/testing/py3-telegram/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: j.r <j.r@jugendhacker.de>
+# Maintainer: j.r <j.r@jugendhacker.de>
+pkgname=py3-telegram
+_pyname=python-telegram
+pkgver=0.18.0
+pkgrel=2
+pkgdesc="Python client for the Telegram's tdlib"
+url="https://github.com/alexander-akhmetov/python-telegram"
+arch="noarch !s390x"
+license="MIT"
+depends="python3 telegram-tdlib py3-telegram-text"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/p/python-telegram/python-telegram-$pkgver.tar.gz
+ 0002-Remove-binarys.patch
+ "
+builddir="$srcdir/$_pyname-$pkgver/"
+options="!check"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+3137695894f8d88d71619231739601219acb3d8f4c00ab4cc6ecf79fd6aa5a36c6c025e9287d5dce03d53f75a065330d47a7a829bf6e25e29568bb9caf297d67 python-telegram-0.18.0.tar.gz
+7931b19b34806fe84361d3e15fc39330e0b93f4945e7bb892b7b0c78a717a484040b5ad60d9c77063bb452badab2ada314032bfe2064918999e9e7a6863cb5c1 0002-Remove-binarys.patch
+"
diff --git a/testing/py3-telemetrix/APKBUILD b/testing/py3-telemetrix/APKBUILD
new file mode 100644
index 00000000000..a7d8b316001
--- /dev/null
+++ b/testing/py3-telemetrix/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=py3-telemetrix
+pkgver=1.20
+pkgrel=2
+pkgdesc="Remotely Control And Monitor Arduino-Core devices"
+url="https://mryslab.github.io/telemetrix"
+arch="noarch"
+license="AGPL-3.0-or-later"
+depends="python3 py3-pyserial"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/t/telemetrix/telemetrix-$pkgver.tar.gz"
+builddir="$srcdir/telemetrix-$pkgver"
+options="!check" # No tests.
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+0ee02a885b05d5925f476e236f581dbb318338e51031660ea7d4f9a4f2c4ad350c4df40dab51f0b8039bed8e069da5fd32230ca0f49f752a51e83c8a74588197 telemetrix-1.20.tar.gz
+"
diff --git a/testing/py3-telethon-session-sqlalchemy/APKBUILD b/testing/py3-telethon-session-sqlalchemy/APKBUILD
deleted file mode 100644
index 441998b5822..00000000000
--- a/testing/py3-telethon-session-sqlalchemy/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-telethon-session-sqlalchemy
-pkgver=0.2.15
-pkgrel=0
-pkgdesc="SQLAlchemy backend for Telethon session storage"
-url="https://github.com/tulir/telethon-session-sqlalchemy"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/t/telethon-session-sqlalchemy/telethon-session-sqlalchemy-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/telethon-session-sqlalchemy-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="555f06690ca85905abbca9c060a90c4c3c7ecff3861da703ab84fc2e32f90ce3925e979d5d9fb4003bbda72250b1c8a2b10c2ce66f228c0b5beb217748247296 telethon-session-sqlalchemy-0.2.15.tar.gz"
diff --git a/testing/py3-telethon/APKBUILD b/testing/py3-telethon/APKBUILD
deleted file mode 100644
index 85540afac01..00000000000
--- a/testing/py3-telethon/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-telethon
-pkgver=1.14.0
-pkgrel=0
-pkgdesc="Full-featured Telegram client library"
-url="https://docs.telethon.dev/"
-arch="noarch"
-license="MIT"
-depends="python3 py3-pyaes py3-rsa"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-asyncio"
-source="https://github.com/LonamiWebs/Telethon/archive/v$pkgver/Telethon-v$pkgver.tar.gz"
-builddir="$srcdir/Telethon-$pkgver"
-
-build() {
- python3 setup.py sdist
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- # Remove installed tests
- local _site_packages=$(python3 -c "import site; print(site.getsitepackages()[0])")
- rm -r "$pkgdir/$_site_packages"/tests/
-}
-
-sha512sums="d00bd5a38b43c17ab65e6831cc231e8a04ad2804171b4b52c27e6cf10fe3caabb60e2e80f46acd3015a3ec93888974e335e01880d96edd74b68bf8799abde301 Telethon-v1.14.0.tar.gz"
diff --git a/testing/py3-teletype/APKBUILD b/testing/py3-teletype/APKBUILD
new file mode 100644
index 00000000000..334714bd902
--- /dev/null
+++ b/testing/py3-teletype/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Philipp Glaum <p@pglaum.de>
+# Maintainer: Philipp Glaum <p@pglaum.de>
+pkgname=py3-teletype
+_pkgname=teletype
+pkgver=1.3.4
+pkgrel=3
+pkgdesc="high-level cross platform tty library"
+options="!check" # No testsuite
+url="https://pypi.org/project/teletype/"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-gpep517 py3-installer py3-wheel py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/teletype*.whl
+}
+
+sha512sums="
+4580aed4be710dc49d9bff7cbbd8c678067bd4f61266f97ced19555860bd6b634939d66a2484469f03454878def981278168a542b3faf83ef038874cbf4e2133 teletype-1.3.4.tar.gz
+"
diff --git a/testing/py3-terminaltables/APKBUILD b/testing/py3-terminaltables/APKBUILD
deleted file mode 100644
index ef3214be8cc..00000000000
--- a/testing/py3-terminaltables/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Thomas Boerger <thomas@webhippie.de>
-# Maintainer: Thomas Boerger <thomas@webhippie.de>
-pkgname=py3-terminaltables
-_pkgname=terminaltables
-pkgver=3.1.0
-pkgrel=3
-pkgdesc="Generate simple tables in terminals from a nested list of strings"
-url="https://pypi.python.org/pypi/terminaltables"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces=py-terminaltables # Backwards compatibility
-provides=py-terminaltables=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f30620f57c4d40b4ee5736d2886e744f7ed34aae702252b2ecf90844d314c4ccce7a7bc9146637504e6996c148567ba16247136f081f086a2b264f2f4920ecd8 terminaltables-3.1.0.tar.gz"
diff --git a/testing/py3-testfixtures/APKBUILD b/testing/py3-testfixtures/APKBUILD
deleted file mode 100644
index 56ca2820937..00000000000
--- a/testing/py3-testfixtures/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-testfixtures
-pkgver=6.14.1
-pkgrel=0
-pkgdesc="A collection of helpers and mock objects for unit tests and doc tests"
-url="https://github.com/Simplistix/testfixtures"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools py3-sphinx"
-checkdepends="py3-pytest py3-sybil"
-source="https://pypi.python.org/packages/source/t/testfixtures/testfixtures-$pkgver.tar.gz"
-options="!check" # Broken tests https://github.com/Simplistix/testfixtures/issues/134
-builddir="$srcdir/testfixtures-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0da31d5e382984c22ada846c07570d4a179ba819005dd29891e551b99190fabaaf17174456f7ed4864e9c4aa25f7d5d8b86aa123b4628328610d6930c9c5d6bd testfixtures-6.14.1.tar.gz"
diff --git a/testing/py3-testresources/APKBUILD b/testing/py3-testresources/APKBUILD
index ac078ee0df7..eff36f96ef4 100644
--- a/testing/py3-testresources/APKBUILD
+++ b/testing/py3-testresources/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-testresources
_pyname=testresources
pkgver=2.0.1
-pkgrel=1
+pkgrel=5
pkgdesc="A pyunit extension for managing expensive test resources"
url="https://launchpad.net/testresources"
arch="noarch"
@@ -11,6 +11,7 @@ license="Apache-2.0 OR BSD-3-Clause"
depends="python3"
makedepends="py3-setuptools py3-pbr"
checkdepends="py3-testtools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
@@ -23,7 +24,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
rm -rf "$pkgdir"/usr/lib/python3*/site-packages/testresources/tests/
}
diff --git a/testing/py3-textual/APKBUILD b/testing/py3-textual/APKBUILD
new file mode 100644
index 00000000000..ba2a549357e
--- /dev/null
+++ b/testing/py3-textual/APKBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-textual
+_pyname=${pkgname#py3-}
+pkgver=0.47.1
+pkgrel=1
+pkgdesc="TUI framework for Python inspired by modern web development"
+url="https://github.com/Textualize/textual"
+arch="noarch"
+license="MIT"
+depends="
+ python3
+ py3-importlib-metadata
+ py3-linkify-it-py
+ py3-markdown-it-py
+ py3-rich
+ py3-typing-extensions
+ "
+makedepends="py3-gpep517 py3-poetry-core"
+checkdepends="
+ py3-aiohttp
+ py3-click
+ py3-jinja2
+ py3-msgpack
+ py3-nanoid
+ py3-pytest
+ py3-pytest-aiohttp
+ py3-pytest-asyncio
+ py3-syrupy
+ py3-time-machine
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Textualize/textual/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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
+
+ # test_snapshots.py requires pytest-textual-snapshot, which depends on py3-textual itself, for snap_compare fixture
+ # test_languages.py requires optional tree_sitter_languages Python package
+ # test_features.py is broken
+ .testenv/bin/python3 -m pytest \
+ --ignore=tests/snapshot_tests/test_snapshots.py \
+ --ignore=tests/text_area/test_languages.py \
+ --ignore=tests/test_features.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f17684f8e822423164a6b549c261f5662b6997e9934e1c76f159610d1ed682e26d34e39ae22c3b8fe47e84c8b4a87cc6bd70e0121806b498ddda5ddb9f575bd1 py3-textual-0.47.1.tar.gz
+"
diff --git a/testing/py3-tg/0001-Allow-newer-python-telegram.patch b/testing/py3-tg/0001-Allow-newer-python-telegram.patch
new file mode 100644
index 00000000000..d3e8085eeb5
--- /dev/null
+++ b/testing/py3-tg/0001-Allow-newer-python-telegram.patch
@@ -0,0 +1,23 @@
+From 21bd3e168d33ae7d11aad4ed0c6c23eef027e3c3 Mon Sep 17 00:00:00 2001
+From: "j.r" <j.r@jugendhacker.de>
+Date: Sun, 4 Sep 2022 23:45:12 +0200
+Subject: [PATCH] Allow newer python-telegram
+
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index f6b2e37..5be5d12 100644
+--- a/setup.py
++++ b/setup.py
+@@ -23,5 +23,5 @@ setup(
+ packages=["tg"],
+ entry_points={"console_scripts": ["tg = tg.__main__:main"]},
+ python_requires=">=3.8",
+- install_requires=["python-telegram==0.15.0"],
++ install_requires=["python-telegram>=0.15.0"],
+ )
+--
+2.37.3
+
diff --git a/testing/py3-tg/APKBUILD b/testing/py3-tg/APKBUILD
new file mode 100644
index 00000000000..e2c5ddcc5f1
--- /dev/null
+++ b/testing/py3-tg/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: j.r <j.r@jugendhacker.de>
+# Maintainer: j.r <j.r@jugendhacker.de>
+pkgname=py3-tg
+_pyname=tg
+pkgver=0.19.0
+pkgrel=4
+pkgdesc="Terminal telegram client that really works"
+url="https://github.com/paul-nameless/tg"
+arch="noarch !s390x"
+license="Unlicense"
+depends="python3 py3-telegram py3-setuptools"
+subpackages="$pkgname-pyc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/paul-nameless/tg/archive/refs/tags/v$pkgver.tar.gz
+ 0001-Allow-newer-python-telegram.patch
+ "
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+ccaba3614d72d7fc115d8f6e1cb51c52a5e7be3b588a8135c9435226df98c55a4f3184c1e280e26913e982c65cc393f09981ed2612adbdd718bfc70d4ad28ffe py3-tg-0.19.0.tar.gz
+3a9c5e546f388842aa6f270bbf86cc45f98f29779fed02d2c381d7e35f2435f883bfea43bf6448e9c9cbace8be51494a97ecbc8aebe9c23b412aec059bfa757e 0001-Allow-newer-python-telegram.patch
+"
diff --git a/testing/py3-thefuzz/APKBUILD b/testing/py3-thefuzz/APKBUILD
new file mode 100644
index 00000000000..0eb21bea579
--- /dev/null
+++ b/testing/py3-thefuzz/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-thefuzz
+pkgver=0.22.1
+pkgrel=1
+pkgdesc="Fuzzy String Matching in Python"
+url="https://github.com/seatgeek/thefuzz"
+arch="noarch"
+license="MIT"
+depends="py3-levenshtein"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-hypothesis py3-pycodestyle"
+subpackages="$pkgname-pyc"
+source="https://github.com/seatgeek/thefuzz/archive/refs/tags/$pkgver/py3-thefuzz-$pkgver.tar.gz"
+builddir="$srcdir/thefuzz-$pkgver"
+
+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="
+6a49feaba32a9966699b9b82a5e47a11b4915624e9e09c1b67fe3d1dcb5e7f5538e7f43a0573b6ef8f0cedf9d7360957c952d6a530fcb3b4d65934111a39a3db py3-thefuzz-0.22.1.tar.gz
+"
diff --git a/testing/py3-thinc/APKBUILD b/testing/py3-thinc/APKBUILD
deleted file mode 100644
index 9b68616ae44..00000000000
--- a/testing/py3-thinc/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-thinc
-pkgver=7.4.0
-pkgrel=0
-pkgdesc="Practical Machine Learning for NLP"
-url="https://github.com/explosion/thinc"
-arch="x86_64 x86"
-license="MIT"
-depends="python3 py3-cymem py3-preshed py3-murmurhash py3-blis py3-plac py3-srsly
- py3-wasabi py3-catalogue"
-makedepends="python3-dev py3-setuptools cython"
-checkdepends="py3-pytest py3-numpy py3-mock py3-tqdm py3-hypothesis"
-subpackages="$pkgname-doc"
-source="thinc-$pkgver.tar.gz::https://github.com/explosion/thinc/archive/v$pkgver.tar.gz"
-builddir="$srcdir/thinc-$pkgver"
-
-build() {
- python3 setup.py build_ext --inplace
-}
-
-check() {
- # disable some tests due to use of py3-hypothesis >= 5.0.0
- pytest-3 thinc \
- --ignore=thinc/tests/integration/test_batch_norm.py \
- --ignore=thinc/tests/unit/test_affine.py \
- --ignore=thinc/tests/unit/test_ops.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="4eba0d69adfa0c1dee66ede5bde41369006a8d923fa381e74c0dab2cb4bec7188c48fdeadb269778ad250ea38a8008acac71727f66b0db24abae86b80c587066 thinc-7.4.0.tar.gz"
diff --git a/testing/py3-ticket-auth/APKBUILD b/testing/py3-ticket-auth/APKBUILD
index 4a837afd5b8..eb0a49b1643 100644
--- a/testing/py3-ticket-auth/APKBUILD
+++ b/testing/py3-ticket-auth/APKBUILD
@@ -3,12 +3,13 @@
pkgname=py3-ticket-auth
_pkgname=ticket_auth
pkgver=0.1.4
-pkgrel=3
+pkgrel=8
pkgdesc="Ticket authentication system"
url="https://github.com/gnarlychicken/ticket_auth"
arch="noarch"
license="MIT"
makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -19,7 +20,7 @@ build() {
package() {
cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="67af674a5061d72350bc683a8614151815a91b4bdb2b641ade4d171a631fe71e574f48b3535285ace18ac5ae101e32434efaba5ec72bed30a6f0fbe88124708b ticket_auth-0.1.4.tar.gz"
diff --git a/testing/py3-tidalapi/APKBUILD b/testing/py3-tidalapi/APKBUILD
new file mode 100644
index 00000000000..bcd88679940
--- /dev/null
+++ b/testing/py3-tidalapi/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=py3-tidalapi
+pkgver=0.7.4
+pkgrel=1
+pkgdesc="Unofficial Python API for TIDAL music streaming service"
+url="https://pypi.org/project/tidalapi/"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="python3 py3-requests py3-dateutil"
+makedepends="py3-gpep517 py3-wheel py3-installer py3-poetry-core"
+checkdepends="py3-pytest py3-keyring py3-ffmpeg py3-pillow"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tamland/python-tidal/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/python-tidal-$pkgver"
+options="!check" # Visit https://link.tidal.com/... to log in
+
+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="
+eb95a3c371bfda1e570e1e8751e80891833c8cece81770f5d77a27913a39c21bf010ced03b2372c70f00f729d98cd8378328a3fae7d466d721352273f3d80f0c py3-tidalapi-0.7.4.tar.gz
+"
diff --git a/testing/py3-tinycss2/APKBUILD b/testing/py3-tinycss2/APKBUILD
deleted file mode 100644
index 0c81026eef6..00000000000
--- a/testing/py3-tinycss2/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Drew DeVault <sir@cmpwn.com>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-tinycss2
-_pyname=tinycss2
-pkgver=1.0.2
-pkgrel=2
-pkgdesc="Low-level CSS parser for Python"
-url="https://pypi.python.org/pypi/tinycss2"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-webencodings"
-makedepends="python3-dev py3-setuptools py3-flake8 py3-pytest py3-pytest-cov"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pyname-$pkgver
-replaces="py-tinycss py2-tinycss py3-tinycss"
-
-prepare() {
- cd "$builddir"
- sed -i setup.cfg -e 's/--flake8//' -e 's/--isort//'
- sed -i setup.cfg -e 's/pytest-flake8//' -e 's/pytest-isort//'
-}
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py pytest
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="69bdf52898f9e704c01fe5fd11170e0efc9a6aca14646f5331fc06ebbdf941f9b6c798ded7d93636c7b810b35c659750c3ece3917c5c9cef4092e3e17b382dd1 tinycss2-1.0.2.tar.gz"
diff --git a/testing/py3-tinydb/APKBUILD b/testing/py3-tinydb/APKBUILD
deleted file mode 100644
index c122464d6c0..00000000000
--- a/testing/py3-tinydb/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=py3-tinydb
-_pkgname=tinydb
-pkgver=3.15.2
-pkgrel=0
-pkgdesc="a tiny, document oriented database"
-url="https://github.com/msiemens/tinydb"
-arch="noarch"
-license="MIT"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-cov py3-yaml"
-source="$pkgname-$pkgver.tar.gz::https://github.com/msiemens/tinydb/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/${_pkgname/-/_}-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-check() {
- python3 setup.py test
-}
-sha512sums="dac3132415120a622e84eda64962dd1bb3253db661228d6118c200d6020c28bc7902760bf5fb9a8589e76815630106436090c6aea6f6715c1a28f72193711444 py3-tinydb-3.15.2.tar.gz"
diff --git a/testing/py3-tldextract/APKBUILD b/testing/py3-tldextract/APKBUILD
deleted file mode 100644
index 811fa342a48..00000000000
--- a/testing/py3-tldextract/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname="py3-tldextract"
-_pyname="tldextract"
-pkgver="2.2.2"
-pkgrel=0
-pkgdesc="Accurately separate the TLD from the registered domain and subdomains of a URL"
-url="https://github.com/john-kurkowski/tldextract"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-responses"
-source="$_pyname-$pkgver.tar.gz::https://github.com/john-kurkowski/tldextract/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="d8bd876910cb5ac2d66286eac965cc726f1bd786469da35bff1e1da32664b1c21eeb0c8f29a77f1393791285c1fc40cdf95b15d0c9d03ef77e91587bebf5b20b tldextract-2.2.2.tar.gz"
diff --git a/testing/py3-tls_parser/APKBUILD b/testing/py3-tls_parser/APKBUILD
index 12a7af9f6dd..964b6e68d83 100644
--- a/testing/py3-tls_parser/APKBUILD
+++ b/testing/py3-tls_parser/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=py3-tls_parser
_pkgname=tls_parser
-pkgver=1.2.1
-pkgrel=3
+pkgver=2.0.1
+pkgrel=1
pkgdesc="Python library to parse TLS records."
url="https://pypi.org/project/tls-parser/"
arch="noarch"
license="MIT"
depends="python3"
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"
@@ -25,7 +26,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="0524c328852ca20d8c6d8c419ab8aa019afd80b41bb862cc639bb63f1f7b8ed0869a47f5791aaaa1aba54171d19ed0785c0e98d7433e93d902f48bc0d8069415 tls_parser-1.2.1.tar.gz"
+sha512sums="
+693d18f0f3baaa8bf122f0166a9041cfe816772930dcfb73cfc1e16b0cedef2cfd19623d91a6d9e745bfcc1d2cbfb001a031d8c0d6fe1dd46319c3469ba60812 tls_parser-2.0.1.tar.gz
+"
diff --git a/testing/py3-tlslite-ng/APKBUILD b/testing/py3-tlslite-ng/APKBUILD
new file mode 100644
index 00000000000..d13b6da7ae1
--- /dev/null
+++ b/testing/py3-tlslite-ng/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=py3-tlslite-ng
+pkgver=0.7.6
+pkgrel=7
+pkgdesc="Pure python implementation of SSL and TLS"
+url="https://github.com/tlsfuzzer/tlslite-ng"
+arch="noarch"
+license="LGPL-2.1-only"
+depends="py3-ecdsa"
+makedepends="py3-setuptools"
+options="!check" # requires client/server
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tlsfuzzer/tlslite-ng/archive/v$pkgver.tar.gz"
+builddir="$srcdir/tlslite-ng-$pkgver"
+
+# secfixes:
+# 0.7.6-r0:
+# - CVE-2020-26263
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir"
+}
+
+sha512sums="
+c4fcdfaf45b40cd85fee26657956651b781d41f9c9f35a8a927d00c9f13cdcfae1b4f7a594d0d07d08d477b19480af152988c6075dc9f564215761bcf9857119 py3-tlslite-ng-0.7.6.tar.gz
+"
diff --git a/testing/py3-tmdbv3api/APKBUILD b/testing/py3-tmdbv3api/APKBUILD
deleted file mode 100644
index d9e3a7b953e..00000000000
--- a/testing/py3-tmdbv3api/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-tmdbv3api
-pkgver=1.5.1
-pkgrel=0
-pkgdesc="A lightweight Python library for The Movie Database (TMDb) API"
-url="https://github.com/AnthonyBloomer/tmdbv3api"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/t/tmdbv3api/tmdbv3api-$pkgver.tar.gz"
-options="!check" # No tests in Pypi package and API key required
-builddir="$srcdir/tmdbv3api-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="51dc42144be0070c28f43435f80f204fbbf5baca22c7d72212446b21319fb8b0d013d880a7fdb3096aa6ab4d8a6a6adcfab739c4667c7409cdeff4058f56ab29 tmdbv3api-1.5.1.tar.gz"
diff --git a/testing/py3-tokenizers/APKBUILD b/testing/py3-tokenizers/APKBUILD
new file mode 100644
index 00000000000..dd280b99f85
--- /dev/null
+++ b/testing/py3-tokenizers/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-tokenizers
+pkgver=0.15.2
+pkgrel=1
+pkgdesc="Fast State-of-the-Art Tokenizers optimized for Research and Production"
+url="https://github.com/huggingface/tokenizers"
+arch="all !s390x !riscv64" # blocked by rust
+license="Apache-2.0"
+depends="python3"
+makedepends="
+ bzip2-dev
+ cargo
+ openssl-dev>3
+ py3-gpep517
+ py3-maturin
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/huggingface/tokenizers/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/tokenizers-$pkgver/bindings/python"
+options="net !check" # requires pulling test data
+
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/tokenizers*.whl
+}
+
+sha512sums="
+0635d074d98a74d171a5f113c1b6f8b8c80c9f36b2d3b82c18d90d3fc1f1daaec55b7e98f2d771d5b22593b888ab4561e8f3e3152170c22605e034ee84d6a10a py3-tokenizers-0.15.2.tar.gz
+"
diff --git a/testing/py3-tomlkit/APKBUILD b/testing/py3-tomlkit/APKBUILD
deleted file mode 100644
index 37f90f51687..00000000000
--- a/testing/py3-tomlkit/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-tomlkit
-_realname=tomlkit
-pkgver=0.6.0
-pkgrel=0
-pkgdesc="Python3 library for parsing and modifying TOML"
-url="https://github.com/sdispater/tomlkit"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="pytest"
-source="https://files.pythonhosted.org/packages/source/${_realname:0:1}/$_realname/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- rm -rf "$pkgdir"/usr/lib/python3*/site-packages/tests
-}
-
-sha512sums="030146f09a2e2ac9c676707b0c2c8c2d346dcdfd2cdd2797d0bb0032fd61ba71d5a8df7ed25ec898fb84337283897af989cff3b4797e9c9f73fe42c3a5d617b4 tomlkit-0.6.0.tar.gz"
diff --git a/testing/py3-toolz/APKBUILD b/testing/py3-toolz/APKBUILD
deleted file mode 100644
index 6acaf0edd21..00000000000
--- a/testing/py3-toolz/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-toolz
-pkgver=0.10.0
-pkgrel=0
-pkgdesc="A functional standard library for Python"
-url="http://toolz.readthedocs.org/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/t/toolz/toolz-$pkgver.tar.gz"
-builddir="$srcdir/toolz-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="4ed40c165462440c6004974d2515067f211c625bebcb69ea854fd8837e1fe05febc546215355a6bb9de5916c8ba98a4d297f8aa20e40ffbc8a730b2bb3831a71 toolz-0.10.0.tar.gz"
diff --git a/testing/py3-toposort/APKBUILD b/testing/py3-toposort/APKBUILD
new file mode 100644
index 00000000000..5d30d855326
--- /dev/null
+++ b/testing/py3-toposort/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-toposort
+pkgver=1.10
+pkgrel=3
+pkgdesc="Topological sorting for python"
+url="https://gitlab.com/ericvsmith/toposort"
+arch="noarch"
+license="Apache-2.0"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://gitlab.com/ericvsmith/toposort/-/archive/$pkgver/toposort-$pkgver.tar.bz2"
+builddir="$srcdir/toposort-$pkgver"
+
+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 test.test_toposort
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+a1bf41e7324b56eaf914e6b89f0ec5e18c6661d8d31b429e169086c71d1060b6aa0e29cc048fe971455b5b43e500a1d74fea0168c4c869cdab09206ba3f9c50f toposort-1.10.tar.bz2
+"
diff --git a/testing/py3-tpm2-pytss/APKBUILD b/testing/py3-tpm2-pytss/APKBUILD
new file mode 100644
index 00000000000..0a514a49fac
--- /dev/null
+++ b/testing/py3-tpm2-pytss/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
+pkgname=py3-tpm2-pytss
+_pkgname=tpm2-pytss
+pkgver=2.2.1
+pkgrel=0
+pkgdesc="Python bindings for TSS"
+url="https://github.com/tpm2-software/tpm2-pytss"
+arch="all !armhf !armv7 !riscv64 !x86" # limited by failing check()
+license="BSD-2-Clause"
+checkdepends="
+ py3-pytest-forked
+ py3-pytest-xdist
+ swtpm
+ "
+makedepends="
+ py3-gpep517
+ py3-pkgconfig
+ py3-setuptools
+ py3-setuptools_scm
+ py3-wheel
+ python3-dev
+ tpm2-tss-dev
+ "
+depends="
+ py3-asn1crypto
+ py3-cparser
+ py3-cryptography
+ py3-yaml
+ python3
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/tpm2-software/tpm2-pytss/archive/$pkgver/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+case "$CARCH" in
+ armv7|ppc64le|s390x) options="!check";; # no swtpm package
+ *) ;;
+esac
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ 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
+ PYTHONPATH="$(echo .testenv/lib/python3*/site-packages/):$PWD" \
+ .testenv/bin/python3 -m pytest test \
+ -n"$(nproc)"
+}
+
+package() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+b55c8f0ba03204e803e33da115961893a1a7e08bcac29399a728d9f984be2d538076fa7dd289e96beedb6d6125a53f5b5841dd216f89d55833db9eb9197ba747 tpm2-pytss-2.2.1.tar.gz
+"
diff --git a/testing/py3-transitions/APKBUILD b/testing/py3-transitions/APKBUILD
index 83b02337639..5107de4dcff 100644
--- a/testing/py3-transitions/APKBUILD
+++ b/testing/py3-transitions/APKBUILD
@@ -1,32 +1,41 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-transitions
-_pkgname=transitions
-pkgver=0.7.2
-pkgrel=0
+_pyname=transitions
+pkgver=0.9.0
+pkgrel=3
pkgdesc="A lightweight, object-oriented Python state machine implementation"
-url="https://github.com/tyarkoni/transitions"
+url="https://github.com/pytransitions/transitions"
arch="noarch"
license="MIT"
depends="py3-six"
makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pycodestyle"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+checkdepends="py3-pytest py3-pycodestyle py3-graphviz"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pyname:0:1}/$_pyname/$_pyname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pyname-$pkgver
+options="!check" # fail with py311
replaces=py-transitions # Backwards compatibility
provides=py-transitions=$pkgver-r$pkgrel # Backwards compatibility
+prepare() {
+ default_prepare
+ rm tests/test_codestyle.py
+}
+
build() {
python3 setup.py build
}
check() {
- py.test-3
+ pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="c33eaec3e338b6febd924d803b85436df3ec3ab728315290fe81c73fb328aedcdb15e8f19f0e3d9d3a7d62750671686ae65bad560c48cfd113481dfe702a4204 transitions-0.7.2.tar.gz"
+sha512sums="
+d324a57e1f2d20d9e8dc7d1f7854a6e81c3a09afda927de38dc23936c8c585b87303d5a47256487ba0cd03f63bb1a2ff69304c634896e488a7217591404f0a3c transitions-0.9.0.tar.gz
+"
diff --git a/testing/py3-translationstring/APKBUILD b/testing/py3-translationstring/APKBUILD
index d5aed49fd99..4289d6b389e 100644
--- a/testing/py3-translationstring/APKBUILD
+++ b/testing/py3-translationstring/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-translationstring
_pkgname=translationstring
-pkgver=1.3
-pkgrel=1
+pkgver=1.4
+pkgrel=3
pkgdesc="A Python utility library for i18n"
url="https://pypi.org/project/translationstring/" # actual homepage doesn't exist anymore
arch="noarch"
license="ZPL-2.1"
depends="python3"
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
@@ -25,10 +26,12 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
# Reduce size by removing installed-tests
rm -rf "$pkgdir"/usr/lib/python3*/site-packages/translationstring/tests
}
-sha512sums="deba5b460d9ea640087cff8b5d7b9256708abd4340a54556f1f0542e2e4f9f0ae0a3482b66a176712fcd6925c470da621adbc5e4c4173c0ef29b9cca5fba1102 translationstring-1.3.tar.gz"
+sha512sums="
+2f06af782421fcf9ba907a8bc6419cd2c8f5352eee44d051ca1647b418f634e24220727b0eec748c9ead6aeb3c57ea1740356b65d6e2017fa0a395e1823ac81a translationstring-1.4.tar.gz
+"
diff --git a/testing/py3-trimesh/APKBUILD b/testing/py3-trimesh/APKBUILD
new file mode 100644
index 00000000000..bab0b96ca9b
--- /dev/null
+++ b/testing/py3-trimesh/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=py3-trimesh
+pkgver=3.22.1
+pkgrel=1
+pkgdesc="Python library for working with triangular meshes"
+url="https://github.com/mikedh/trimesh"
+# x86, armhf, armv7 Tests fail on int64 to int32 casts on these arches
+# s390x, no py3-rtree
+# riscv64, no py3-shapely
+arch="noarch !x86 !armhf !armv7 !s390x !riscv64"
+# TODO: investigate why checks stall
+options="!check"
+license="MIT"
+depends="
+ py3-colorlog
+ py3-jsonschema
+ py3-lxml
+ py3-mapbox-earcut
+ py3-msgpack
+ py3-networkx
+ py3-numpy
+ py3-pillow
+ py3-requests
+ py3-rtree
+ py3-scipy
+ py3-shapely
+ py3-svgpath
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-pytest-xdist py3-pyinstrument"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mikedh/trimesh/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/trimesh-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # test_obj.py: no format zae, probably needs more investigation
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -n auto \
+ --deselect tests/test_dae.py::DAETest::test_material_round \
+ --deselect tests/test_dae.py::DAETest::test_obj_roundtrip \
+ --deselect tests/test_light.py::LightTests::test_scene \
+ --deselect tests/test_obj.py::OBJTest::test_multi_nodupe
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+27952e0d29ccd110d4087b4144e0923706bed3cd0734e7a17d7f55738c6322849c5dad04ab4ecfe0638bc16d65d1e647d08905a396dd6ebd1f78c833a8b95636 py3-trimesh-3.22.1.tar.gz
+"
diff --git a/testing/py3-trio/APKBUILD b/testing/py3-trio/APKBUILD
deleted file mode 100644
index a2ef405760a..00000000000
--- a/testing/py3-trio/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-trio
-pkgver=0.15.1
-pkgrel=0
-pkgdesc="A friendly Python library for async concurrency and I/O"
-url="https://trio.readthedocs.io/"
-arch="noarch"
-license="MIT OR Apache-2.0"
-depends="python3 py3-sniffio py3-outcome py3-idna py3-sortedcontainers py3-openssl"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-astor py3-trustme"
-source="https://pypi.python.org/packages/source/t/trio/trio-$pkgver.tar.gz"
-builddir="$srcdir/trio-$pkgver"
-
-case "$CARCH" in
- ppc64le) options="$options !check" ;; # unix pipes test times out
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest -m "not redistributors_should_skip"
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="4c562d26825a445228a29b92425d11b8c75eca67fcb1d539951ede8574e1f4c02a43e4571a3c37d957cb6b634b13401ae27e71790d7a1d31240acafff9655b6b trio-0.15.1.tar.gz"
diff --git a/testing/py3-trivup/APKBUILD b/testing/py3-trivup/APKBUILD
new file mode 100644
index 00000000000..57d64c0c857
--- /dev/null
+++ b/testing/py3-trivup/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+_pyname=trivup
+pkgname=py3-$_pyname
+pkgver=0.12.2
+pkgrel=1
+pkgdesc="Trivially Up a cluster of programs, such as a Kafka cluster"
+url="https://github.com/edenhill/trivup"
+arch="noarch"
+license="BSD-2-Clause"
+depends="python3 py3-jwcrypto py3-python-jwt py3-requests"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/t/trivup/trivup-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+258f0305053f2a14dfe9f9ceeef9b75534bf3fb31c34ab2b9528013eccbaf783386cfe56a81102c965e4cda4f1adf3a24ec7bfe096ee5809df9f507dddc1ab2b trivup-0.12.2.tar.gz
+"
diff --git a/testing/py3-trustme/APKBUILD b/testing/py3-trustme/APKBUILD
deleted file mode 100644
index fd34d8d380f..00000000000
--- a/testing/py3-trustme/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-trustme
-pkgver=0.6.0
-pkgrel=1
-pkgdesc="#1 quality TLS certs while you wait, for the discerning tester"
-url="https://github.com/python-trio/trustme"
-arch="noarch"
-license="Apache-2.0 OR MIT"
-depends="python3 py3-cryptography py3-idna py3-openssl py3-service_identity"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/t/trustme/trustme-$pkgver.tar.gz"
-builddir="$srcdir/trustme-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="9fda58320f2055d2c23369d2df213994cafd9af7b7eb3933162bbe09a81abd7a9cd2b2e7cae43b25d40d20311213d8a1c13155b61498b848a2850d22fa1e1418 trustme-0.6.0.tar.gz"
diff --git a/testing/py3-truststore/APKBUILD b/testing/py3-truststore/APKBUILD
new file mode 100644
index 00000000000..23bba5bff6e
--- /dev/null
+++ b/testing/py3-truststore/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-truststore
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="Verify certificates using OS trust stores"
+url="https://github.com/sethmlarson/truststore"
+arch="noarch"
+license="MIT"
+makedepends="py3-gpep517 py3-installer py3-flit-core"
+checkdepends="
+ py3-aiohttp
+ py3-flaky
+ py3-httpx
+ py3-openssl
+ py3-pytest
+ py3-pytest-asyncio
+ py3-pytest-httpserver
+ py3-requests
+ py3-trustme
+ py3-urllib3
+"
+subpackages="$pkgname-pyc"
+source="https://github.com/sethmlarson/truststore/archive/v$pkgver/py3-truststore-$pkgver.tar.gz"
+builddir="$srcdir/truststore-$pkgver"
+
+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="
+9492874b2c0eb5ba011c0d4af6fc4e2d1664686458775344c928e25248b0d54f776d9400138330b225146402345ab8d5ccb9f73b5db51e566342855a8b4ac579 py3-truststore-0.8.0.tar.gz
+"
diff --git a/testing/py3-twiggy/APKBUILD b/testing/py3-twiggy/APKBUILD
index af71f8f967a..fd7b8afd740 100644
--- a/testing/py3-twiggy/APKBUILD
+++ b/testing/py3-twiggy/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-twiggy
_pkgname=Twiggy
-pkgver=0.4.7
-pkgrel=2
+pkgver=0.5.1
+pkgrel=3
pkgdesc="A Pythonic logger"
url="https://github.com/wearpants/twiggy"
arch="noarch"
license="BSD-3-Clause"
-depends="python3"
+depends="python3 py3-six"
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"
@@ -21,7 +22,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="5a0ccff78141a7fc122d5ad52c42b1520a6cd66fa6f64acc8c558b84a84374d9f50d05c15db44f36c7f037a1e67e9632df074dbaa97ad314b38aa034303879fa Twiggy-0.4.7.tar.gz"
+sha512sums="
+71557175e8b4629bffe78ce81b1e6487fff30162fb123794a19b8f7e117b756cdb890dc21c8673a554931c1b33e47871d51876e65470808b57ad3f1d3df4b4fa Twiggy-0.5.1.tar.gz
+"
diff --git a/testing/py3-twine/APKBUILD b/testing/py3-twine/APKBUILD
deleted file mode 100644
index 5aa336cb3c2..00000000000
--- a/testing/py3-twine/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-twine
-_pkgname=twine
-pkgver=3.1.1
-pkgrel=0
-pkgdesc="Collection of utilities for publishing packages on PyPI"
-options="!check" # Requires unpackaged 'pretend'
-url="https://twine.readthedocs.io/en/latest/"
-arch="noarch"
-license="Apache-2.0"
-depends="
- python3
- py3-pkginfo
- py3-readme_renderer
- py3-requests>=2.20.0
- py3-requests-toolbelt
- py3-setuptools
- py3-tqdm
- py3-keyring
- "
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$PWD/build/lib" py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ed5c366b389920bbd1fb7a5be1735d01cd36d4d91bac5a01cadf45a618aa6588a47c37d3fb34e8b62064f09d7d2a164cd6a4d1e56d670beaaf9f6194529ad754 twine-3.1.1.tar.gz"
diff --git a/testing/py3-typed-ast/APKBUILD b/testing/py3-typed-ast/APKBUILD
deleted file mode 100644
index 90cf23cc91d..00000000000
--- a/testing/py3-typed-ast/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-typed-ast
-_pkgname=typed_ast
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="Fork of the Python ast module with type comment support"
-url="https://github.com/python/typed_ast"
-arch="all"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools python3-dev"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/"$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-# two (2) tests fail on s390x, disable
-check() {
- local _pyarch
- local _py3ver=$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
- case "$CARCH" in
- x86_64|aarch64|ppc64le) _pyarch="$CARCH" ;;
- x86) _pyarch=i686 ;;
- armhf|armv7) _pyarch=armv8l ;;
- s390x) return 0 ;;
- mips*) return 0 ;;
- esac
- PYTHONPATH="$builddir/build/lib.linux-$_pyarch-$_py3ver" py.test-3 -v
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="a3154fe723aeadf998694aba0faf516e5b9abb876e4c7d91843b3694474ff6911b3e77a6cb7366cfa8e5a573b331906b6a0b134b25627aaba0dcbe92c4e25590 typed_ast-1.4.1.tar.gz"
diff --git a/testing/py3-typing_inspect/APKBUILD b/testing/py3-typing_inspect/APKBUILD
new file mode 100644
index 00000000000..7ac713c1743
--- /dev/null
+++ b/testing/py3-typing_inspect/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-typing_inspect
+_pkgname=typing_inspect
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="Defines an API for runtime inspection of types defined in the Python standard typing module"
+url="https://github.com/ilevkivskyi/typing_inspect"
+arch="noarch"
+license="MIT"
+depends="py3-mypy-extensions py3-typing-extensions"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="typing_inspect-$pkgver.tar.gz::https://github.com/ilevkivskyi/typing_inspect/archive/$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest \
+ --deselect test_typing_inspect.py::GetUtilityTestCase::test_typed_dict_typing_extension
+ # https://github.com/ilevkivskyi/typing_inspect/issues/84
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+106597b100c3abda89cc15e0f0cd1fbcc771cb04e15e1d85da2134b9937d1a9b8d1fb396aa94fc350d8e21eeaa7f96f4c98c08923360f7eb1fb5b7b7d1a32df5 typing_inspect-0.9.0.tar.gz
+"
diff --git a/testing/py3-tzlocal/APKBUILD b/testing/py3-tzlocal/APKBUILD
deleted file mode 100644
index cb1770316d4..00000000000
--- a/testing/py3-tzlocal/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=py3-tzlocal
-pkgver=2.1
-pkgrel=0
-pkgdesc="Python tzinfo object for the local timezone"
-url="https://github.com/regebro/tzlocal"
-arch="noarch"
-license="MIT"
-replaces="py-tzlocal" # for backwards compatibility
-provides="py-tzlocal=$pkgver-r$pkgrel" # for backwards compatibility
-depends="python3 py3-tz"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/t/tzlocal/tzlocal-$pkgver.tar.gz"
-builddir="$srcdir/tzlocal-$pkgver"
-options="!check" # the package requires a configured timezone
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="5419f3316dfcbf0355cc6f0790454fe6cecfa8b1ae17bfa7bf8aff89b0af3e63c94ffe9c22b11f612e53826a33e7179ff71bc2a86f6a358cdff36c7ae34e2453 tzlocal-2.1.tar.gz"
diff --git a/testing/py3-u-msgpack/APKBUILD b/testing/py3-u-msgpack/APKBUILD
index 80aa41c821b..edc77a28a40 100644
--- a/testing/py3-u-msgpack/APKBUILD
+++ b/testing/py3-u-msgpack/APKBUILD
@@ -1,17 +1,18 @@
# Contributor: Stefan Wagner <stw@bit-strickerei.de>
# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
pkgname=py3-u-msgpack
-_pkgname=u-msgpack-python
-pkgver=2.6.0
-pkgrel=0
-pkgdesc="A portable, lightweight MessagePack serializer and deserializer written in pure Python."
+_pyname=u-msgpack-python
+pkgver=2.8.0
+pkgrel=1
+pkgdesc="portable, lightweight MessagePack serializer and deserializer written in pure Python."
url="https://github.com/vsergeev/u-msgpack-python"
arch="noarch"
license="MIT"
checkdepends="py3-pytest"
makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/vsergeev/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/vsergeev/$_pyname/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
replaces="py-u-msgpack" # Backwards compatibility
provides="py-u-msgpack=$pkgver-r$pkgrel" # Backwards compatibility
@@ -25,7 +26,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="8a6b22498bd0b3ca7363df70500a19118105d43d141b4d85dfb29f72e3d864daa10454b54070c1319dd1ecf6a84d0246798a1c083cc34576944637134e2bbc78 py3-u-msgpack-2.6.0.tar.gz"
+sha512sums="
+1b1e3e4b649676571ad32a757a0b4033d049d847fee70ceb0a9fc390d6162f2777cce9560845faa949343d7a4fafbf175ce306d71c66744c13a5c3c20e8260ee py3-u-msgpack-2.8.0.tar.gz
+"
diff --git a/testing/py3-uc-micro-py/APKBUILD b/testing/py3-uc-micro-py/APKBUILD
new file mode 100644
index 00000000000..627c8341e90
--- /dev/null
+++ b/testing/py3-uc-micro-py/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=py3-uc-micro-py
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="Micro subset of unicode data files used by py3-linkify-it-py"
+url="https://github.com/tsutsu3/uc.micro-py"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tsutsu3/uc.micro-py/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/uc.micro-py-$pkgver"
+
+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="
+772487db5f46424576c92e61076f9b0a55de8b36cfdc9ca5274e91855b749f793f0b6e6efa79287cd2862f65cceb1e10c7e2c28439a867681a8d1ac67a2f0e33 py3-uc-micro-py-1.0.2.tar.gz
+"
diff --git a/testing/py3-ufonormalizer/APKBUILD b/testing/py3-ufonormalizer/APKBUILD
index 129522158dd..11a73d1a3b7 100644
--- a/testing/py3-ufonormalizer/APKBUILD
+++ b/testing/py3-ufonormalizer/APKBUILD
@@ -2,18 +2,20 @@
# Maintainer: Sascha Brawer <sascha@brawer.ch>
pkgname=py3-ufonormalizer
_pyname=ufonormalizer
-pkgver=0.4.1
-pkgrel=0
+pkgver=0.6.1
+pkgrel=2
pkgdesc="Normalize the XML and other data inside UFO font design sources"
url="https://github.com/unified-font-object/ufoNormalizer"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-setuptools_scm"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/u/$_pyname/$_pyname-$pkgver.zip"
builddir="$srcdir/$_pyname-$pkgver"
build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
python3 setup.py build
}
@@ -22,10 +24,11 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
# Make files world-readable so others than root can run the installed script.
chmod -R a+r "$pkgdir"/usr/lib/python3*/site-packages
}
-
-sha512sums="376e43bc8e1a195d81faeb3e3551d91b1600cf26373132341129a4cbcb91d985cc990f61b752b2f1a420ac4da3833c591e52b00e038f16dcfd406d615eb2174e ufonormalizer-0.4.1.zip"
+sha512sums="
+301bef368a7d42333d885437322991d075e5ebb7169e3397e1d2a486ae18d4efba4db625bad1f9452f512e0a452ec8a9fd0b5c716c8571eb45f9d4d2718f37a7 ufonormalizer-0.6.1.zip
+"
diff --git a/testing/py3-ujson/APKBUILD b/testing/py3-ujson/APKBUILD
deleted file mode 100644
index e7ef68ab247..00000000000
--- a/testing/py3-ujson/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-ujson
-pkgver=2.0.3
-pkgrel=0
-pkgdesc="Fast Python JSON encoder and decoder"
-url="https://github.com/ultrajson/ultrajson"
-arch="all"
-license="BSD-3-Clause"
-makedepends="py3-setuptools python3-dev"
-checkdepends="py3-tz py3-six py3-pytest"
-source="https://pypi.io/packages/source/u/ujson/ujson-$pkgver.tar.gz"
-builddir="$srcdir"/ujson-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$(echo $PWD/build/lib.*)" python3 tests/test_ujson.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="2c1879c372745966a00e064559dbf615f282ef192cbdbb29243c48169fc5f6e9344eba29988a1de3b5b0d1fe7699fcd88373d6dbb2e3fb59b1e8ef12b8a0375d ujson-2.0.3.tar.gz"
diff --git a/testing/py3-unearth/APKBUILD b/testing/py3-unearth/APKBUILD
new file mode 100644
index 00000000000..802a9ee9f20
--- /dev/null
+++ b/testing/py3-unearth/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=py3-unearth
+pkgver=0.15.1
+pkgrel=1
+pkgdesc="Utility to fetch and download python packages"
+url="https://github.com/frostming/unearth"
+arch="noarch"
+license="MIT"
+depends="py3-packaging py3-requests py3-httpx"
+makedepends="py3-pdm-backend py3-gpep517 py3-installer py3-trustme"
+checkdepends="
+ py3-pytest
+ py3-flask
+ py3-requests-wsgi-adapter
+ py3-pytest-httpserver
+ py3-pytest-mock
+"
+subpackages="$pkgname-pyc"
+source="https://github.com/frostming/unearth/archive/$pkgver/py3-unearth-$pkgver.tar.gz"
+builddir="$srcdir/unearth-$pkgver"
+
+build() {
+ export PDM_BUILD_SCM_VERSION=$pkgver
+ 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="
+d4c4bd15c29ab7a172ded4db04dbc56187b5f3d5cf9c47433958240b5c475ee6708c16f7c606ae9998e0fe10e6570e02a57238d38a7cd83e6fc8e24b1aaa8180 py3-unearth-0.15.1.tar.gz
+"
diff --git a/testing/py3-unicorn-hat/APKBUILD b/testing/py3-unicorn-hat/APKBUILD
index 30934b1aec4..97df501a464 100644
--- a/testing/py3-unicorn-hat/APKBUILD
+++ b/testing/py3-unicorn-hat/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-unicorn-hat
_pkgname=unicorn-hat-unicornhat
pkgver=2.1.2
-pkgrel=2
+pkgrel=5
pkgdesc="Python wrapper for driving ws2812 pixels from the Raspberry Pi"
url="http://shop.pimoroni.com/products/unicorn-hat"
arch="armhf armv7 aarch64"
@@ -21,6 +21,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="dee24ec570b8624792899fbf98fafea6565b939581ecce0adcf78c389cc0f2ec274466be31bf3e09c861a30a074f491f1366b0ac4a55529c259bfb3869d96bef py3-unicorn-hat-2.1.2.tar.gz"
+
+sha512sums="
+dee24ec570b8624792899fbf98fafea6565b939581ecce0adcf78c389cc0f2ec274466be31bf3e09c861a30a074f491f1366b0ac4a55529c259bfb3869d96bef py3-unicorn-hat-2.1.2.tar.gz
+"
diff --git a/testing/py3-unicrypto/APKBUILD b/testing/py3-unicrypto/APKBUILD
new file mode 100644
index 00000000000..c4f3d449860
--- /dev/null
+++ b/testing/py3-unicrypto/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-unicrypto
+_pyname=unicrypto
+pkgver=0.0.10
+pkgrel=2
+pkgdesc="Unified interface for cryptographic libraries"
+url="https://github.com/skelsec/unicrypto"
+arch="noarch"
+license="MIT"
+depends="
+ py3-cryptography
+ py3-mbedtls
+ py3-pycryptodome
+ py3-pycryptodomex
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/unicrypto/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+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
+ rm -rf "$pkgdir"/usr/lib/python3.*/site-packages/tests/ # remove tests
+}
+
+sha512sums="
+fda2a0031e608dbba7721c5251e2b1663d492c6982640e472b7049893e567e7b088756f1be514ed08a2785603985852e711d7cec70cbb7833b79e5406f9ec59a py3-unicrypto-0.0.10.tar.gz
+"
diff --git a/testing/py3-unidns/APKBUILD b/testing/py3-unidns/APKBUILD
new file mode 100644
index 00000000000..3c7b24b3dba
--- /dev/null
+++ b/testing/py3-unidns/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-unidns
+_pyname="unidns"
+pkgver=0.0.1
+pkgrel=2
+pkgdesc="Rudimentary async DNS client in Python"
+url="https://github.com/skelsec/unidns"
+arch="noarch"
+license="MIT"
+depends="
+ py3-asysocks
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc $pkgname-examples"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/unidns/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+examples() {
+ pkgdesc="$pkgdesc (example client)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ amove usr/lib/python*/site-packages/unidns/examples
+ amove usr/bin
+}
+
+sha512sums="
+5251f740dcb34d78cd8dea2cfd87e1c5ffa5776745ca2d8e080f8a002c3441a96806ec1b244b81cc0e38d5b152a36614da9a3161eeeebf01c28c2c99de046d4c py3-unidns-0.0.1.tar.gz
+"
diff --git a/testing/py3-unoconv/APKBUILD b/testing/py3-unoconv/APKBUILD
index 6e9ded160ac..42c2d0d2e42 100644
--- a/testing/py3-unoconv/APKBUILD
+++ b/testing/py3-unoconv/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: TBK <tbk@jjtc.eu>
+# Maintainer:
pkgname=py3-unoconv
-pkgver=0.8.2
-pkgrel=1
+pkgver=0.9.0
+pkgrel=0
pkgdesc="Tool to convert between any document format supported by LibreOffice"
url="http://dag.wieers.com/home-made/unoconv/"
-# libreoffice is not built on s390x or mips
-arch="noarch !s390x !mips !mips64"
+arch="noarch !armhf !s390x !ppc64le !riscv64" # blocked by libreoffice
license="GPL-2.0"
depends="libreoffice python3"
makedepends="py3-setuptools"
@@ -29,9 +29,11 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="cd6a4d06559895c0aebb5fda51ca86928474dd0ca0aa908e81762643186c29cf8436c889eedbb18bc74ed6016414d1aa831cd034614244d5aae677a6b4cdd4c9 unoconv-0.8.2.tar.gz
+sha512sums="
+37d63ada32675fd0ebd089a74db453fdb7332a24e62cbf3e060d6d15cc503c76ede9ccc5e09467f4a38833a8358c09fde23cc8780a77c343268f20e0c37f2469 unoconv-0.9.0.tar.gz
b4fa76011fb96ba9521bb09d1a5c43dbd457c50bb2c6d66a5bc65928cde1e1d8174e43ad86f8f53755f222127cc5b0084b4564c248ce1fca56f9acfb4c03d86d setup.py
-ab3a9aad6c14190083364c7430a4a0ed3eaad54225ae88ea72b7ee940b80767298152f5fad4a0e17a506c7dbc85733a9910d2ed1a48c4c95bd078f139ec8f54c CVE-2019-17400.patch"
+ea4c2f734fec724596052b0ece570755500a368ed36e951eee1f81c4e62419d4e86d1064b38defc474da44c584848cfe2b8d8b03c6bdf5828e78969180b9d214 CVE-2019-17400.patch
+"
diff --git a/testing/py3-unoconv/CVE-2019-17400.patch b/testing/py3-unoconv/CVE-2019-17400.patch
index ba1f8287b32..1575088c90b 100644
--- a/testing/py3-unoconv/CVE-2019-17400.patch
+++ b/testing/py3-unoconv/CVE-2019-17400.patch
@@ -9,33 +9,13 @@ Subject: [PATCH] change default updateDocMode behavior and add new option to
1 file changed, 30 insertions(+), 21 deletions(-)
diff --git a/unoconv b/unoconv
-index f844d0f..762dc85 100755
+index 6aa1bfa..27acfcf 100755
--- a/unoconv
+++ b/unoconv
-@@ -543,6 +543,8 @@ class Options:
- self.template = None
- self.timeout = 6
- self.verbose = 0
-+ self.userProfile = None
-+ self.updateDocMode = NO_UPDATE
-
- self.setprinter = False
- self.paperformat = None
-@@ -555,8 +557,8 @@ class Options:
- ['connection=', 'debug', 'doctype=', 'export=', 'field=', 'format=',
- 'help', 'import=', 'import-filter-name=', 'listener', 'meta=', 'no-launch',
- 'output=', 'outputpath', 'password=', 'pipe=', 'port=', 'preserve',
-- 'server=', 'timeout=', 'show', 'stdin', 'stdout', 'template', 'printer=',
-- 'verbose', 'version'] )
-+ 'server=', 'timeout=', 'user-profile=', 'show', 'stdin',
-+ 'stdout', 'template', 'printer=', 'unsafe-quiet-update', 'verbose', 'version'] )
- except getopt.error as exc:
- print('unoconv: %s, try unoconv -h for a list of all the options' % str(exc))
- sys.exit(255)
-@@ -646,6 +648,10 @@ class Options:
- self.template = arg
- elif opt in ['-T', '--timeout']:
- self.timeout = int(arg)
+@@ -682,6 +682,10 @@ class Options:
+ # ref https://www.openoffice.org/api/docs/common/ref/com/sun/star/document/UpdateDocMode.html
+ print('Warning: Do not use the option --unsafe-quiet-update with untrusted input.')
+ self.updateDocMode = QUIET_UPDATE
+ elif opt in ['--unsafe-quiet-update']:
+ # ref https://www.openoffice.org/api/docs/common/ref/com/sun/star/document/UpdateDocMode.html
+ print('Warning: Do not use the option --unsafe-quiet-update with untrusted input.')
@@ -43,75 +23,3 @@ index f844d0f..762dc85 100755
elif opt in ['-v', '--verbose']:
self.verbose = self.verbose + 1
elif opt in ['-V', '--version']:
-@@ -760,6 +766,7 @@ unoconv options:
- --stdout write output to stdout
- -t, --template=file import the styles from template (.ott)
- -T, --timeout=secs timeout after secs if connection to listener fails
-+ --unsafe-quiet-update allow rendered document to fetch external resources (Warning: this is unsafe with untrusted input)
- -v, --verbose be more and more verbose (-vvv for debugging)
- --version display version number of unoconv, OOo/LO and platform details
- -P, --printer printer options
-@@ -930,7 +937,7 @@ class Convertor:
- phase = "import"
-
- ### Load inputfile
-- inputprops = UnoProps(Hidden=True, ReadOnly=True, UpdateDocMode=QUIET_UPDATE)
-+ inputprops = UnoProps(Hidden=True, ReadOnly=True, UpdateDocMode=op.updateDocMode)
-
- if op.password:
- inputprops += UnoProps(Password=op.password)
-@@ -983,23 +990,25 @@ class Convertor:
- # except AttributeError:
- # pass
-
-- ### Update document links
-- phase = "update-links"
-- try:
-- document.updateLinks()
-- # Found that when converting HTML files with external images, OO would only load five or six of
-- # the images in the file. In the resulting document, the rest of the images did not appear. Cycling
-- # through all the image references in the document seems to force OO to actually load them. Found
-- # some helpful guidance in this thread:
-- # https://forum.openoffice.org/en/forum/viewtopic.php?f=30&t=23909
-- # Ideally we would like to have the option to embed the images into the document, but I have not been
-- # able to figure out how to do this yet.
-- graphObjs = document.GraphicObjects
-- for i in range(0, graphObjs.getCount()):
-- graphObj = graphObjs.getByIndex(i)
-- except AttributeError:
-- # the document doesn't implement the XLinkUpdate interface
-- pass
-+ ### Update document links if appropriate
-+ if op.updateDocMode != NO_UPDATE:
-+ phase = "update-links"
-+ try:
-+ document.updateLinks()
-+ # Found that when converting HTML files with external images, OO would only load five or six of
-+ # the images in the file. In the resulting document, the rest of the images did not appear. Cycling
-+ # through all the image references in the document seems to force OO to actually load them. Found
-+ # some helpful guidance in this thread:
-+ # https://forum.openoffice.org/en/forum/viewtopic.php?f=30&t=23909
-+ # Ideally we would like to have the option to embed the images into the document, but I have not been
-+ # able to figure out how to do this yet.
-+ if op.updatehtmllinks:
-+ graphObjs = document.GraphicObjects
-+ for i in range(0, graphObjs.getCount()):
-+ graphObj = graphObjs.getByIndex(i)
-+ except AttributeError:
-+ # the document doesn't implement the XLinkUpdate interface
-+ pass
-
- ### Add/Replace variables
- phase = "replace-fields"
-@@ -1347,7 +1356,7 @@ if __name__ == '__main__':
- ### Now that we have found a working pyuno library, let's import some classes
- from com.sun.star.beans import PropertyValue
- from com.sun.star.connection import NoConnectException
-- from com.sun.star.document.UpdateDocMode import QUIET_UPDATE
-+ from com.sun.star.document.UpdateDocMode import NO_UPDATE, QUIET_UPDATE
- from com.sun.star.lang import DisposedException, IllegalArgumentException
- from com.sun.star.io import IOException, XOutputStream
- from com.sun.star.script import CannotConvertException
---
-2.23.0
-
diff --git a/testing/py3-untokenize/APKBUILD b/testing/py3-untokenize/APKBUILD
new file mode 100644
index 00000000000..adc9ca79614
--- /dev/null
+++ b/testing/py3-untokenize/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=py3-untokenize
+pkgver=0.1.1
+pkgrel=3
+pkgdesc=" Transforms tokens into original source code"
+url="https://github.com/myint/untokenize"
+arch="noarch"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/myint/untokenize/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/untokenize-$pkgver"
+
+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 discover
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+ea47c2936945c2bf69196800e15188ec264004413dc62ddb0b3097eb6c6e70335191ec43b81cb1a7842c6bd0218dd1806525de8dfd21eea88aca4c56b6035ad7 py3-untokenize-0.1.1.tar.gz
+"
diff --git a/testing/py3-update-checker/APKBUILD b/testing/py3-update-checker/APKBUILD
deleted file mode 100644
index 8ba54ced06d..00000000000
--- a/testing/py3-update-checker/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-update-checker
-pkgver=0.17
-pkgrel=0
-pkgdesc="A python module that will check for package updates"
-options="!check" # 4 tests fail
-url="https://github.com/bboe/update_checker"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3 py3-requests"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/bboe/update_checker/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/update_checker-$pkgver
-
-replaces="py-update-checker" # Backwards compatibility
-provides="py-update-checker=$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="36fc7c7f383d58a3abd015e93e61ce90865b4b22d246524e19573b2532af319db7503b443976bf2df0e2e572c52ab6b7178f63b522096ec1091c1d6723d8480a py3-update-checker-0.17.tar.gz"
diff --git a/testing/py3-uptime/APKBUILD b/testing/py3-uptime/APKBUILD
index 1cacfe45288..adf1cf61687 100644
--- a/testing/py3-uptime/APKBUILD
+++ b/testing/py3-uptime/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-uptime
_pkgname=uptime
pkgver=3.0.1
-pkgrel=3
+pkgrel=8
pkgdesc="A Python uptime library"
url="https://github.com/Cairnarvon/uptime"
arch="all"
@@ -12,6 +12,7 @@ replaces="py-uptime" # for backwards compatibility
provides="py-uptime=$pkgver-r$pkgrel" # for backwards compatibility
depends="python3"
makedepends="python3-dev py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -22,7 +23,7 @@ build() {
package() {
cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="55df1c30aa4be3e873ad36d0f784d49bc127d2bd38041c1453b112474dd52033e55d277172d8fdd73b3fabc7bf5071f29329d2a828244ef420d2da7db0f49a54 uptime-3.0.1.tar.gz"
diff --git a/testing/py3-uritools/APKBUILD b/testing/py3-uritools/APKBUILD
new file mode 100644
index 00000000000..55e5d87ac04
--- /dev/null
+++ b/testing/py3-uritools/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-uritools
+_pyname=uritools
+pkgver=4.0.2
+pkgrel=1
+pkgdesc="Python functions for URI parsing, classification, and composition"
+url="https://github.com/tkem/uritools"
+license="MIT"
+arch="noarch"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/tkem/uritools/archive/v$pkgver/uritools-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH="$PWD"/build/lib pytest
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+74ebcb656586a2c8b4fc179dd94754915242c077520fdd8f3abf862646de502148c580746ebdc11a138991fdabbf7f6fcf84c73f9ab191e7241ec077744bb40e uritools-4.0.2.tar.gz
+"
diff --git a/testing/py3-urlobject/APKBUILD b/testing/py3-urlobject/APKBUILD
index 14304b4770c..b46032e80bf 100644
--- a/testing/py3-urlobject/APKBUILD
+++ b/testing/py3-urlobject/APKBUILD
@@ -4,13 +4,14 @@
pkgname=py3-urlobject
_pkgname=URLObject
pkgver=2.4.3
-pkgrel=3
+pkgrel=8
pkgdesc="A Python utility class for manipulating URLs"
url="https://github.com/dperezrada/html2data"
arch="noarch"
license="Unlicense"
makedepends="py3-setuptools"
checkdepends="py3-nose"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -26,7 +27,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="a557731f4da8a2aaf8f7e3f7219b48cf66cf6a5706a0ba6978e9eeb310d8246baec6a6c9d798e31ac1b3874fd0d93bb88ea359a87390f7b935ba5472994e1bbe URLObject-2.4.3.tar.gz"
diff --git a/testing/py3-us/APKBUILD b/testing/py3-us/APKBUILD
index 1281c52dce1..9e1eadcb9cb 100644
--- a/testing/py3-us/APKBUILD
+++ b/testing/py3-us/APKBUILD
@@ -2,15 +2,18 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-us
_pkgname=us
-pkgver=1.0.0
-pkgrel=2
+pkgver=3.1.1
+pkgrel=1
pkgdesc="US state meta information and other fun stuff"
url="https://github.com/unitedstates/python-us"
arch="noarch"
license="BSD-3-Clause"
replaces="py-us" # for backwards compatibility
provides="py-us=$pkgver-r$pkgrel" # for backwards compatibility
-depends="py3-jellyfish py3-setuptools python3"
+depends="py3-jellyfish python3"
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-tz"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
fix-requires.patch"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -19,9 +22,15 @@ build() {
python3 setup.py build
}
+check() {
+ pytest-3
+}
+
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="942e3b5af01e5ecab58fbc84905976ce57085e766bde00cc08f02586d7387069270a8927d6f6dbfcba324f290046763efe3d64c7568667dcf86f080048960a25 us-1.0.0.tar.gz
-0eace56377766745f45b7842db073b8cc9f5752065fe0f2f8a8f974db03276fb9cae09cb6bb92d09b6d783f3d7eed5b058ba3eac536e51515e4fc8bc56b34c4b fix-requires.patch"
+sha512sums="
+c74aebc6aa49afa8dc36d23b6d67c0d26294b8416d35b8c9b2e833b6c7fbb2d6f7d8983d56b7edaa129b94887c132043ebf02f3642e1a340f6fae889ee3d0e54 us-3.1.1.tar.gz
+7178b90935c71692db8a90e235a05a0d23b5fafe22449713abb85dc24c2345ea1bab990532314632d5c86351666bf5ce687c59b9ec31355bbe17fdbd65d7e914 fix-requires.patch
+"
diff --git a/testing/py3-us/fix-requires.patch b/testing/py3-us/fix-requires.patch
index ac42c6dc2c4..bcc7106ff5a 100644
--- a/testing/py3-us/fix-requires.patch
+++ b/testing/py3-us/fix-requires.patch
@@ -1,11 +1,13 @@
+diff --git a/setup.py b/setup.py
+index 0566674..87e049b 100644
--- a/setup.py
+++ b/setup.py
-@@ -15,7 +15,7 @@
+@@ -13,7 +13,7 @@ setup(
+ license="BSD",
packages=find_packages(),
- package_data={'us': ['*.pkl']},
include_package_data=True,
-- install_requires=['jellyfish==0.5.6'],
-+ install_requires=['jellyfish>=0.5.6'],
- entry_points={
- 'console_scripts': ['states = us.cli.states:main']},
- platforms=['any'],
+- install_requires=["jellyfish==0.11.2"],
++ install_requires=["jellyfish>=0.11.2"],
+ entry_points={"console_scripts": ["states = us.cli.states:main"]},
+ platforms=["any"],
+ classifiers=[
diff --git a/testing/py3-utc/APKBUILD b/testing/py3-utc/APKBUILD
index 4b5f2a2edd2..aa3573f41ee 100644
--- a/testing/py3-utc/APKBUILD
+++ b/testing/py3-utc/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-utc
_pkgname=utc
pkgver=0.0.3
-pkgrel=3
+pkgrel=8
pkgdesc="A tiny library for working with UTC time"
url="https://bitbucket.org/btubbs/utc"
arch="noarch"
license="MIT"
depends="python3"
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
@@ -21,7 +22,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="efaa3ad007d658b05588eb995f23a5873d3e04f769cae00ca44feb65f29f54340dbe0bf73237c9300fb2cf61274318c77f446301a0fc4ebfeb4a67beeaf9a24b utc-0.0.3.tar.gz"
diff --git a/testing/py3-utils/APKBUILD b/testing/py3-utils/APKBUILD
new file mode 100644
index 00000000000..b89b2bf947e
--- /dev/null
+++ b/testing/py3-utils/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=py3-utils
+_pkgname=python-utils
+pkgver=3.8.1
+pkgrel=1
+pkgdesc="Convenient utilities not included with the standard Python install"
+url="https://github.com/WoLpH/python-utils"
+arch="noarch"
+license="BSD-3-Clause"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-asyncio py3-loguru"
+subpackages="$pkgname-pyc"
+source="
+ https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+
+ fix-setuptools-deprecation.patch
+ pytest.patch
+ typing-ext.patch
+ "
+
+builddir="$srcdir/$_pkgname-$pkgver"
+
+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="
+ccba9651cc99a8f4e3f13e7ff66a43a40d2e85bc735b6246524269495ff321225a0dcad9abd03ca9cb61b4b1b35a27009fac3fe87e3f748ffc5c87a956acd335 python-utils-3.8.1.tar.gz
+c001453b958b8231806ef6a04fcd21e1d252eeec36d4e6cbfce35f0662bae76c3f7484e0e8ff06d68a3e9cc7d19c9cdbf792c13e0101c580bb5e8de9d837fde7 fix-setuptools-deprecation.patch
+99cc91ad155f8140aedc9420659c0e560a4d816ac1f85468ddb3a9fdc87526d591da916441d63b601146a86fb2c26f61c9dfbe37e31b86ee605f732e24e7b465 pytest.patch
+d68943e3301eaafe2a9ea27f382a2eba1ce98149d8cbbe91aa9222cf76a8f7bebba3d9dbfced54bd88c90688a6e18373f011fbb83cd36cbf2ecd3e36b034aa22 typing-ext.patch
+"
diff --git a/testing/py3-utils/fix-setuptools-deprecation.patch b/testing/py3-utils/fix-setuptools-deprecation.patch
new file mode 100644
index 00000000000..16b5e5a1b8a
--- /dev/null
+++ b/testing/py3-utils/fix-setuptools-deprecation.patch
@@ -0,0 +1,11 @@
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -2,7 +2,7 @@
+ test = pytest
+
+ [metadata]
+-description-file = README.rst
++description_file = README.rst
+
+ [nosetests]
+ verbosity = 3
diff --git a/testing/py3-utils/pytest.patch b/testing/py3-utils/pytest.patch
new file mode 100644
index 00000000000..a7f016dd82d
--- /dev/null
+++ b/testing/py3-utils/pytest.patch
@@ -0,0 +1,14 @@
+diff --git a/pytest.ini b/pytest.ini
+index a8e632a..e28ed7d 100644
+--- a/pytest.ini
++++ b/pytest.ini
+@@ -5,9 +5,6 @@ python_files =
+
+ addopts =
+ --doctest-modules
+- --cov python_utils
+- --cov-report term-missing
+-; --mypy
+
+ doctest_optionflags =
+ ALLOW_UNICODE
diff --git a/testing/py3-utils/typing-ext.patch b/testing/py3-utils/typing-ext.patch
new file mode 100644
index 00000000000..ee6acb2f2ee
--- /dev/null
+++ b/testing/py3-utils/typing-ext.patch
@@ -0,0 +1,22 @@
+diff --git a/python_utils/types.py b/python_utils/types.py
+index 01c319a..79ef950 100644
+--- a/python_utils/types.py
++++ b/python_utils/types.py
+@@ -1,7 +1,6 @@
+ # pyright: reportWildcardImportFromLibrary=false
+ import datetime
+ import decimal
+-from typing_extensions import * # type: ignore # noqa: F403
+ from typing import * # type: ignore # pragma: no cover # noqa: F403
+ from types import * # type: ignore # pragma: no cover # noqa: F403
+
+--- a/setup.py
++++ b/setup.py
+@@ -29,7 +29,6 @@
+ ),
+ package_data={'python_utils': ['py.typed']},
+ long_description=long_description,
+- install_requires=['typing_extensions>3.10.0.2'],
+ tests_require=['pytest'],
+ extras_require={
+ 'loguru': [
diff --git a/testing/py3-vatnumber/APKBUILD b/testing/py3-vatnumber/APKBUILD
index 6bdd0fff670..8031d832b1f 100644
--- a/testing/py3-vatnumber/APKBUILD
+++ b/testing/py3-vatnumber/APKBUILD
@@ -3,20 +3,24 @@
pkgname=py3-vatnumber
_pkgname=vatnumber
pkgver=1.2
-pkgrel=2
+pkgrel=8
pkgdesc="A Python module to validate VAT numbers"
options="!check" # Requres unpackaged 'suds'
-url="https://code.google.com/p/vatnumber/"
+url="https://pypi.org/project/vatnumber/"
arch="noarch"
license="GPL-3.0-or-later"
depends="python3 py3-python-stdnum"
makedepends="py3-setuptools"
checkdepends="py3-pysimplesoap"
-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
+ py3.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
build() {
+ 2to3 -w vatnumber
python3 setup.py build
}
@@ -25,7 +29,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="708b73f8d059638c165663f8b36dd8602c0aa857be456e50690dd61c09b9a8a2e560bf2a3ed89a790670c93f5b84c5a391cef748bebf0fa978a6fe5e319a541f vatnumber-1.2.tar.gz"
+sha512sums="
+708b73f8d059638c165663f8b36dd8602c0aa857be456e50690dd61c09b9a8a2e560bf2a3ed89a790670c93f5b84c5a391cef748bebf0fa978a6fe5e319a541f vatnumber-1.2.tar.gz
+74339ae600e1745ffbcd9c75ebcccbfe2f2a9cc33f5cfcecfa446ac59284dbfcc7e2db9001e86b6bef6677c37e4d27b371fdfef86e1eba23c2b7659ad5281f24 py3.patch
+"
diff --git a/testing/py3-vatnumber/py3.patch b/testing/py3-vatnumber/py3.patch
new file mode 100644
index 00000000000..9804bcf60b5
--- /dev/null
+++ b/testing/py3-vatnumber/py3.patch
@@ -0,0 +1,10 @@
+diff --git a/setup.py b/setup.py
+index 048fe6b..5a7a7a2 100644
+--- a/setup.py
++++ b/setup.py
+@@ -43,5 +43,4 @@ setup(name='vatnumber',
+ 'suds': ['suds'],
+ },
+ test_suite="vatnumber.tests",
+- use_2to3=True,
+ )
diff --git a/testing/py3-vcversioner/APKBUILD b/testing/py3-vcversioner/APKBUILD
deleted file mode 100644
index f7d11aa407b..00000000000
--- a/testing/py3-vcversioner/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=py3-vcversioner
-_pkgname=vcversioner
-pkgver=2.16.0.0
-pkgrel=2
-pkgdesc="Use version control tags to discover version numbers"
-url="https://pypi.python.org/pypi/vcversioner"
-arch="noarch"
-license="ISC"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/habnabit/vcversioner/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces=py-vcversioner # Backwards compatibility
-provides=py-vcversioner=$pkgver-r$pkgrel # Backwards compatibility
-
-prepare() {
- default_prepare
- echo -n "${pkgver}-0-UNKNOWN" > version.txt
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3 -v
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0ce7edf28d0626707f977b565f938a754d374d0cada8683f05fa6d1088930d4d858213dbcb5dba149d828e76341eec4a168ef1998ce9894b72c35c1eef59bd08 vcversioner-2.16.0.0.tar.gz"
diff --git a/testing/py3-vdf/APKBUILD b/testing/py3-vdf/APKBUILD
new file mode 100644
index 00000000000..961676289e0
--- /dev/null
+++ b/testing/py3-vdf/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Joshua Murphy <joshuamurphy@posteo.net>
+# Maintainer: Joshua Murphy <joshuamurphy@posteo.net>
+pkgname=py3-vdf
+pkgver=3.4
+pkgrel=1
+pkgdesc="Package for working with Valve's text and binary KeyValue format"
+url="https://github.com/ValvePython/vdf"
+# s390x: broken tests on big endian
+arch="noarch !s390x"
+license="MIT"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-coverage
+ py3-mock
+ py3-nose
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ValvePython/vdf/archive/v$pkgver.tar.gz"
+builddir="$srcdir/vdf-$pkgver"
+
+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="
+a22668039d32cb1ef4660ea187a3a144a32e55e5b02c4c567b850d059a47beac111f9164c67bbe3e7b67d15117efe7b207882465b2353a65b7e0f0c107e88d5c py3-vdf-3.4.tar.gz
+"
diff --git a/testing/py3-venusian/APKBUILD b/testing/py3-venusian/APKBUILD
index e98307af891..f89a8611eef 100644
--- a/testing/py3-venusian/APKBUILD
+++ b/testing/py3-venusian/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-venusian
_pkgname=venusian
-pkgver=3.0.0
-pkgrel=0
+pkgver=3.1.0
+pkgrel=1
pkgdesc="A Python library for deferring decorator actions"
-url="https://pypi.python.org/pypi/venusian"
+url="https://pypi.org/project/venusian"
arch="noarch"
license="BSD-4-Clause"
makedepends="py3-setuptools"
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
@@ -26,7 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="dec12473f30697ec678190054974d48bd30775f2204308dc43469e65814dbeea1b7ebf571187cc9efe2d3d2a73ab9ef839ad39b99ed81dfa75577f203653a776 venusian-3.0.0.tar.gz"
+sha512sums="
+094fe85ca1e241437c386eb4db63ed8985ba962cb7b199bb4ef903d35de885948be135715a9b39bc2a102752678d0c2aaa18e0002c7c4669fb961686b360910e venusian-3.1.0.tar.gz
+"
diff --git a/testing/py3-vine/APKBUILD b/testing/py3-vine/APKBUILD
deleted file mode 100644
index 65c335cc73c..00000000000
--- a/testing/py3-vine/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Maintainer:
-pkgname=py3-vine
-pkgver=1.3.0
-pkgrel=1
-pkgdesc="futures and promises implementation for python"
-url="https://github.com/celery/vine"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-case py3-nose"
-source="https://files.pythonhosted.org/packages/source/v/vine/vine-$pkgver.tar.gz"
-builddir="$srcdir/vine-$pkgver"
-
-replaces="py-vine" # Backwards compatibility
-provides="py-vine=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 -m pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="f7242378ebc9b591b6e0a7b6263514f32cee4b996bc6461313221b9a391dd0dd1d833591d6e9ca72ae003f6ce5c4204856d49bb5e57c69a125072cac25758688 vine-1.3.0.tar.gz"
diff --git a/testing/py3-virtualenvwrapper/APKBUILD b/testing/py3-virtualenvwrapper/APKBUILD
new file mode 100644
index 00000000000..04a335b7340
--- /dev/null
+++ b/testing/py3-virtualenvwrapper/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=py3-virtualenvwrapper
+pkgver=6.1.0
+pkgrel=1
+pkgdesc="Extensions to Ian Bicking's virtualenv tool"
+url="https://virtualenvwrapper.readthedocs.io/"
+arch="noarch"
+license="MIT"
+depends="python3 py3-virtualenv py3-stevedore"
+makedepends="
+ grep
+ py3-gpep517
+ py3-pbr
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest py3-six"
+subpackages="$pkgname-pyc"
+source="https://pypi.org/packages/source/v/virtualenvwrapper/virtualenvwrapper-$pkgver.tar.gz"
+builddir="$srcdir/virtualenvwrapper-$pkgver"
+options="!check" # fail to run
+
+build() {
+ export PBR_VERSION=$pkgver
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ sh tests/run_tests
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+78e09956132862fbf1caf53cb6c9375aa3718685f72d8f3fb61e402e6b26e8568d5b3a3ed18142b14f3b2691f89e6f912782e813d8139dc71ceb7e47bde8d0b0 virtualenvwrapper-6.1.0.tar.gz
+"
diff --git a/testing/py3-visitor/APKBUILD b/testing/py3-visitor/APKBUILD
index 2cded0544a5..229fbc0440f 100644
--- a/testing/py3-visitor/APKBUILD
+++ b/testing/py3-visitor/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer:
pkgname=py3-visitor
pkgver=0.1.3
-pkgrel=1
+pkgrel=6
pkgdesc="Tiny pythonic visitor implementation."
url="https://github.com/mbr/visitor"
arch="noarch"
@@ -10,6 +10,7 @@ license="MIT"
depends="python3"
makedepends="py3-setuptools"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/mbr/visitor/archive/$pkgver.tar.gz"
builddir="$srcdir/visitor-$pkgver"
@@ -22,7 +23,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
sha512sums="414c77df8efcc22df5ee8073e02b8c5c28563954ef9b9a869c4ea3f7f1268a97929c1fe29142ba41e3a5acafea52599f6bf073aacd654643d7d8380cd4f41fbc py3-visitor-0.1.3.tar.gz"
diff --git a/testing/py3-vlc/APKBUILD b/testing/py3-vlc/APKBUILD
deleted file mode 100644
index bec21d6eb4a..00000000000
--- a/testing/py3-vlc/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-vlc
-pkgver=3.0.9113
-pkgrel=0
-pkgdesc="VLC bindings for Python"
-url="https://wiki.videolan.org/PythonBinding"
-arch="noarch !mips !mips64 !s390x" # Blocked by vlc
-license="LGPL-2.1-or-later"
-depends="python3 vlc"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/p/python-vlc/python-vlc-$pkgver.tar.gz"
-options="!check" # No tests
-builddir="$srcdir/python-vlc-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="0fef0190238695d7fb9217857c4e70b2c61be91409506e9fa175ca76af1b52d8e620126c6e8f67c8672e1bab00a9d9dd673701ff31059db7ff742881ec2f278c python-vlc-3.0.9113.tar.gz"
diff --git a/testing/py3-voluptuous/APKBUILD b/testing/py3-voluptuous/APKBUILD
deleted file mode 100644
index 906a5f57944..00000000000
--- a/testing/py3-voluptuous/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-voluptuous
-_pkgname=voluptuous
-pkgver=0.11.7
-pkgrel=1
-pkgdesc="A Python data validation library"
-url="https://github.com/alecthomas/voluptuous"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-voluptuous" # Backwards compatibility
-provides="py-voluptuous=$pkgver-r$pkgrel" # Backwards compatibility
-
-prepare() {
- default_prepare
- # https://github.com/alecthomas/voluptuous/issues/333
- rm -rf *.egg-info
-}
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests -v
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="bf0ad4684a4da59b3eccb54f6edfa643eb894076fc50d1bfd4c953de15cfd711a70e8aee685497197eaef24897ae55fb5fb2aec5e2fc9dcf344a6f7c6f569b88 voluptuous-0.11.7.tar.gz"
diff --git a/testing/py3-w3lib/APKBUILD b/testing/py3-w3lib/APKBUILD
deleted file mode 100644
index 81d9cd3808c..00000000000
--- a/testing/py3-w3lib/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-w3lib
-_pkgname=w3lib
-pkgver=1.22.0
-pkgrel=0
-pkgdesc="A library of web-related functions"
-url="https://github.com/scrapy/w3lib"
-arch="noarch"
-license="BSD-3-Clause"
-depends="py3-six"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-w3lib" # Backwards compatibility
-provides="py-w3lib=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="fbc2bbc06808ec5d28e300ce00e2a59cc07a3a15e4a3690d3b6a105b6f33e6e02fab057b27733d9ea69bc99ebc1e7e8e628e1408a00194991ea05f35dae8bf10 w3lib-1.22.0.tar.gz"
diff --git a/testing/py3-ward/APKBUILD b/testing/py3-ward/APKBUILD
new file mode 100644
index 00000000000..3b52ed06c20
--- /dev/null
+++ b/testing/py3-ward/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-ward
+pkgver=0.67.0_beta0
+pkgrel=2
+pkgdesc="Modern test framework for Python"
+url="https://ward.readthedocs.io/"
+arch="noarch"
+license="MIT"
+depends="
+ py3-click
+ py3-click-completion
+ py3-click-default-group
+ py3-cucumber-tag-expressions
+ py3-pluggy
+ py3-pprintpp
+ py3-rich
+ py3-tomli
+ "
+makedepends="
+ poetry
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/darrenburns/ward/archive/refs/tags/release/${pkgver//_beta/b}.tar.gz"
+options="!check" # Pytest fails to find fixture "description"
+builddir="$srcdir/ward-release-${pkgver//_beta/b}"
+
+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 --ignore tests/resources
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+c94106da8123ec5a2aa32fc68c09ab14179c0226245c467755736b9c069d287326398ef95ba609c57468e5fb5d61dedbfcc6a18db351e556cd0914f6b8d5e5f6 py3-ward-0.67.0_beta0.tar.gz
+"
diff --git a/testing/py3-wasabi/APKBUILD b/testing/py3-wasabi/APKBUILD
deleted file mode 100644
index 7c2bbfb47a3..00000000000
--- a/testing/py3-wasabi/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=py3-wasabi
-pkgver=0.6.0
-pkgrel=0
-pkgdesc="A lightweight console printing and formatting toolkit"
-url="https://github.com/ines/wasabi"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-subpackages="$pkgname-doc"
-source="wasabi-$pkgver.tar.gz::https://github.com/ines/wasabi/archive/v$pkgver.tar.gz"
-builddir="$srcdir/wasabi-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest-3 wasabi
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="39346850a0a1d51c233eeecec529ce10aee151d8e14c65a738fcf68ab0e5cc74e1cfcf2e9c18dafdb46b0498e22d9c3fbc9fc08d965b14a74a82276e7346df7d wasabi-0.6.0.tar.gz"
diff --git a/testing/py3-wbdata/APKBUILD b/testing/py3-wbdata/APKBUILD
index 8050118a94a..c63d5c5bb34 100644
--- a/testing/py3-wbdata/APKBUILD
+++ b/testing/py3-wbdata/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-wbdata
_pkgname=wbdata
-pkgver=0.2.7
-pkgrel=2
+pkgver=1.0.0
+pkgrel=1
pkgdesc="A library to access World Bank data"
options="!check" # Tests are broken
url="https://github.com/oliversherouse/wbdata"
arch="noarch"
license="GPL-2.0-or-later"
depends="python3 py3-decorator"
-makedepends="py3-setuptools"
+makedepends="py3-poetry-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"
@@ -18,15 +19,22 @@ replaces="py-wbdata" # Backwards compatibility
provides="py-wbdata=$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
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m unittest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="5b7d8a556f12414e12f2c6bb8e6cb0ca6961675c1e606f8f2153b6d73911e60e22fca0fe70e82143ea2df5c1b4b156f270b15210eec2a8086936500b15be91fe wbdata-0.2.7.tar.gz"
+sha512sums="
+649d994d4d42e4cadc532212f799a4788317e58bd2d6cfb971f7331622d9df0da04229221eff5cb1ca401b6d9289a8215e242be2f7dfd2607e7eb01cd6c3dbcf wbdata-1.0.0.tar.gz
+"
diff --git a/testing/py3-weasyprint/APKBUILD b/testing/py3-weasyprint/APKBUILD
deleted file mode 100644
index 2476b6832ec..00000000000
--- a/testing/py3-weasyprint/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-weasyprint
-_pyname=WeasyPrint
-pkgver=51
-pkgrel=0
-pkgdesc="cairo-based HTML renderer for python"
-url="https://weasyprint.org"
-arch="noarch"
-license="BSD-3-Clause"
-depends="
- pango cairo py3-cairocffi py3-cairosvg py3-cssselect2 py3-tinycss2 py3-pyphen
- py3-lxml py3-pdfrw py3-html5lib
-"
-makedepends="py3-setuptools"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pyname-$pkgver
-
-replaces="py-weasyprint" # Backwards compat
-provides="py-weasyprint=$pkgver-r$pkgrel" # Backwards compat
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="631038bece7ac0c15c6a668a7d06137e4bccc049eb80484a153ca9c4a996256de8647428b21ed1d0c1607af3893c747a1956a3d3f012b30105ba4f8613a96fcd WeasyPrint-51.tar.gz"
diff --git a/testing/py3-webdavclient3/APKBUILD b/testing/py3-webdavclient3/APKBUILD
new file mode 100644
index 00000000000..0e477599a33
--- /dev/null
+++ b/testing/py3-webdavclient3/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
+# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
+pkgname=py3-webdavclient3
+#_pkgreal is used by apkbuild-pypi to find modules at PyPI
+_pkgreal=webdav-client-python-3
+pkgver=3.14.6
+pkgrel=1
+pkgdesc="WebDAV client"
+url="https://pypi.python.org/project/webdavclient3"
+arch="noarch"
+license="MIT"
+depends="py3-requests py3-lxml py3-dateutil"
+checkdepends="py3-pytest"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ezhov-evgeny/webdav-client-python-3/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+subpackages="$pkgname-pyc"
+options="!check" # Test suite needs more work to be setup to work in aports env
+
+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 "$builddir"/.dist/*.whl
+ .testenv/bin/python3 -m pytest -v
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4621dfe3fdde4a60a7580b37aaf2bf778ebae1615946e9ff5aedcf3d2d17b3e60511a4522f8023bd4756139c66027149a2afafbd07bf02d029d811bec172057d py3-webdavclient3-3.14.6.tar.gz
+"
diff --git a/testing/py3-webob/APKBUILD b/testing/py3-webob/APKBUILD
deleted file mode 100644
index 7e74dc69579..00000000000
--- a/testing/py3-webob/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-webob
-_pkgname=WebOb
-pkgver=1.8.6
-pkgrel=0
-pkgdesc="A Python WSGI request and response objects"
-url="https://webob.org/"
-arch="noarch"
-license="MIT"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-pytest-runner"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-webob" # Backwards compatibility
-provides="py-webob=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py pytest --addopts "--ignore=docs"
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b9a3faac114c55f3e9a6eb71a78dd921d928da99a427dea05bc798bc1fe249f0f1cf8c9b9fcb1b73be2737b9132bbfe2250a8652e3a8a1199ac74fa62a59d44c WebOb-1.8.6.tar.gz"
diff --git a/testing/py3-webrtcvad/APKBUILD b/testing/py3-webrtcvad/APKBUILD
new file mode 100644
index 00000000000..11e62b019e4
--- /dev/null
+++ b/testing/py3-webrtcvad/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-webrtcvad
+pkgver=2.0.10
+pkgrel=0
+pkgdesc="Python interface to the Google WebRTC Voice Activity Detector (VAD)"
+url="https://github.com/wiseman/py-webrtcvad"
+# 32-bit arches are not supported
+# s390x, ppc64le and riscv64 are not supported
+arch="all !x86 !armhf !armv7 !s390x !ppc64le !riscv64"
+license="MIT AND BSD-3-Clause"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="
+ py3-memory-profiler
+ pytest
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wiseman/py-webrtcvad/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/py-webrtcvad-$pkgver"
+
+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="
+ce414e39c3128e22495e8e21e46d09485952168ca763937cebb654dab87ffcfecea8198c74c009a47d8caed2a8ebc22572036fda4be36597d82e6e7057f80ae2 py3-webrtcvad-2.0.10.tar.gz
+"
diff --git a/testing/py3-websockets/APKBUILD b/testing/py3-websockets/APKBUILD
deleted file mode 100644
index 7de76229d0e..00000000000
--- a/testing/py3-websockets/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-websockets
-_pkgname=websockets
-pkgver=8.1
-pkgrel=1
-pkgdesc="An implementation of the WebSocket Protocol (RFC 6455)"
-options="net"
-url="https://websockets.readthedocs.io"
-arch="all"
-license="BSD-3-Clause"
-makedepends="python3-dev py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/aaugustin/websockets/archive/$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # Test requires loopback module to be enabled
- # which is not in CI
- rm tests/test_client_server.py
- rm tests/test_auth.py
- rm tests/test_protocol.py
-
- # Fails on CI for aarch64
- # FAIL: test_keepalive_ping_stops_when_connection_closing (tests.test_protocol.ClientTests)
- # AssertionError: False is not true
- case "$CARCH" in
- armv7) return 0 ;; # Tests are flaky under drone CI
- esac
-
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --root="$pkgdir" --optimize=1
-}
-
-sha512sums="d245702574cf513da54bfc0ca10768558cd4e5017ecf8cb647f4b9176561192a3ace64edfc5c6f735664bf1b6136aa0bb9828114478f92d2c051e3109a218c12 py3-websockets-8.1.tar.gz"
diff --git a/testing/py3-webtest/APKBUILD b/testing/py3-webtest/APKBUILD
deleted file mode 100644
index 4d52c7c028a..00000000000
--- a/testing/py3-webtest/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-webtest
-pkgver=2.0.35
-pkgrel=0
-pkgdesc="A Helper to test WSGI applications"
-options="!check" # Requires unpackaged dependencies
-url="http://webtest.pythonpaste.org/"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-beautifulsoup4 py3-setuptools py3-six py3-waitress py3-webob"
-source="https://pypi.io/packages/source/W/WebTest/WebTest-$pkgver.tar.gz"
-
-replaces="py-webtest" # Backwards compat
-provides="py-webtest=$pkgver-r$pkgrel" # Backwards compat
-
-builddir="$srcdir"/WebTest-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ecad031702a9d2031d4e2230dc8213aaa6b1a3e9e6add296ee796aa2ef77d81c992dc24e481f721bc34711d1e33f3932d56cec4be3d62ee82a71fb405942c339 WebTest-2.0.35.tar.gz"
diff --git a/testing/py3-webvtt/APKBUILD b/testing/py3-webvtt/APKBUILD
new file mode 100644
index 00000000000..782faca2ce2
--- /dev/null
+++ b/testing/py3-webvtt/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=py3-webvtt
+pkgver=0.4.6
+pkgrel=1
+pkgdesc="WebVTT reader, writer and segmenter"
+url="https://github.com/glut23/webvtt-py"
+arch="noarch"
+license="MIT"
+depends="
+ py3-docopt
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/glut23/webvtt-py/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/webvtt-py-$pkgver"
+
+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="
+aca4420ab4816a1a2568e8b41f306eff4df0fd1bea7929655f02ffd393ed5a5edde27d708c4189bc4401d59b2482fb7ec25fc19b8aa2ee1dcf12233c78a1d282 py3-webvtt-0.4.6.tar.gz
+"
diff --git a/testing/py3-wg-netns/APKBUILD b/testing/py3-wg-netns/APKBUILD
new file mode 100644
index 00000000000..5768237ad2f
--- /dev/null
+++ b/testing/py3-wg-netns/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=py3-wg-netns
+_pkgname=wg-netns
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="A Python script that implements the steps described at wireguard.com/netns"
+url="https://github.com/dadevel/wg-netns"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-poetry-core py3-gpep517 py3-installer"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dadevel/wg-netns/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+30ea08d2144e1d49d7fb8e10d6529717116364c9cf1628e67edaddb8e7595cfdb3a2d2ba03c87725e9e3b1fefaffe1956db3a047c3e91f5a49461ea3843f1753 py3-wg-netns-2.3.1.tar.gz
+"
diff --git a/testing/py3-wifi/APKBUILD b/testing/py3-wifi/APKBUILD
index c4a64bf4d14..163f65a0d7a 100644
--- a/testing/py3-wifi/APKBUILD
+++ b/testing/py3-wifi/APKBUILD
@@ -3,13 +3,14 @@
pkgname=py3-wifi
_pkgname=wifi
pkgver=0.3.8
-pkgrel=1
+pkgrel=6
pkgdesc="Command line tool and library wrappers for network interfaces"
options="!check" # Tests only on GitHub tarball that are on 0.3.5
url="https://github.com/rockymeza/wifi"
arch="noarch"
license="BSD-3-Clause"
depends="python3 py3-pbkdf2 py3-setuptools wireless-tools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
fix-iwlist-path.patch
"
@@ -23,7 +24,7 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
# Avoid conflict with tlp
mv "$pkgdir"/usr/bin/wifi "$pkgdir"/usr/bin/pywifi
diff --git a/testing/py3-wikipedia/APKBUILD b/testing/py3-wikipedia/APKBUILD
deleted file mode 100644
index 43b7356958f..00000000000
--- a/testing/py3-wikipedia/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-wikipedia
-pkgver=1.4.5
-pkgrel=0
-pkgdesc="Wikipedia API for Python"
-url="https://github.com/barrust/Wikipedia"
-arch="noarch"
-license="MIT"
-depends="python3 py3-beautifulsoup4 py-requests"
-makedepends="py3-setuptools"
-source="https://github.com/barrust/wikipedia/archive/v$pkgver/wikipedia-v$pkgver.tar.gz"
-options="net"
-builddir="$srcdir/Wikipedia-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="1d5f95f568ef4f479f16416d5474db5ce1bf5588a4d30c51d22fea6dd9d052ee0176829cf60e3c720fcb20fd862bae21d320407b370fdfe0a7d468b770d37735 wikipedia-v1.4.5.tar.gz"
diff --git a/testing/py3-winacl/APKBUILD b/testing/py3-winacl/APKBUILD
new file mode 100644
index 00000000000..5b826f472cd
--- /dev/null
+++ b/testing/py3-winacl/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=py3-winacl
+_pyname=winacl
+pkgver=0.1.8
+pkgrel=1
+pkgdesc="ACL/ACE/Security Descriptor manipulation library in pure Python"
+url="https://github.com/skelsec/winacl"
+arch="noarch"
+license="MIT"
+depends="
+ py3-cryptography
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/winacl/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+fd28579e1a524c0bdea28e5a3f12722513f9c0aa413e31dc4e54238c15f778fa769ab1e8992b028d265da6dadd512b7e56aa524d14d8a326b7927a4cf52786a1 py3-winacl-0.1.8.tar.gz
+"
diff --git a/testing/py3-wolframalpha/APKBUILD b/testing/py3-wolframalpha/APKBUILD
deleted file mode 100644
index 56b84309bdc..00000000000
--- a/testing/py3-wolframalpha/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-wolframalpha
-pkgver=4.0.0
-pkgrel=1
-pkgdesc="Wolfram|Alpha 2.0 API client"
-url="https://github.com/jaraco/wolframalpha"
-arch="noarch"
-license="MIT"
-depends="python3 py3-xmltodict py3-jaraco-itertools"
-makedepends="py3-setuptools py3-setuptools_scm py3-toml"
-checkdepends="py3-pytest py3-pytest-black py3-pytest-flake8 py3-pytest-cov"
-source="https://pypi.python.org/packages/source/w/wolframalpha/wolframalpha-$pkgver.tar.gz"
-options="!check" # Flake8 failures I do not yet know how to resolve
-builddir="$srcdir/wolframalpha-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest \
- --ignore wolframalpha/test_pmxbot.py \
- --ignore wolframalpha/pmxbot.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="41fa275f9fe05e3eb37d7fd02c9e5883e7828be60a94fab70b454e112c5b59378866c834c35b8c9c93db08ae7c13e635755b033527f2a3b4089e43863f329a31 wolframalpha-4.0.0.tar.gz"
diff --git a/testing/py3-wsgiprox/APKBUILD b/testing/py3-wsgiprox/APKBUILD
new file mode 100644
index 00000000000..1caed0f2461
--- /dev/null
+++ b/testing/py3-wsgiprox/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-wsgiprox
+pkgver=1.5.2
+pkgrel=0
+pkgdesc="Python WSGI Middleware for adding HTTP/S proxy support to any WSGI Application"
+url="https://github.com/webrecorder/wsgiprox"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-certauth py3-gevent-websocket py3-six"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="
+ py3-gevent
+ py3-mock
+ py3-pytest
+ py3-pytest-cov
+ py3-requests
+ py3-waitress
+ py3-websocket-client
+ "
+subpackages="$pkgname-pyc"
+
+source="py3-wsgiprox-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/w/wsgiprox/wsgiprox-$pkgver.tar.gz"
+builddir="$srcdir/wsgiprox-$pkgver"
+
+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
+ # tests are known to fail for https,
+ # https://github.com/webrecorder/wsgiprox/issues/6
+ .testenv/bin/python3 -m pytest \
+ --doctest-modules ./wsgiprox --cov wsgiprox -v test/ \
+ -k "not https and not test_chunked_force_http10_buffer and not test_error_proxy_unsupported"
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+d07b97c7ce755b1f22cf250e553036b7196f7205ae2ba52655f5a3b0c6f210fec20d30ca2ff2576c752bf9468aa2fbbeda9db1843d69a85989e881c6f1ada777 py3-wsgiprox-1.5.2.tar.gz
+"
diff --git a/testing/py3-wstools/APKBUILD b/testing/py3-wstools/APKBUILD
new file mode 100644
index 00000000000..02c5d66d479
--- /dev/null
+++ b/testing/py3-wstools/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+pkgname=py3-wstools
+pkgver=0.4.10
+pkgrel=6
+url="https://github.com/pycontribs/wstools"
+pkgdesc="WSDL parsing services package for Web Services for Python"
+arch="noarch"
+license="BSD-3-Clause AND BSD-3-Clause-LBNL AND ZPL-2.0"
+depends="py3-six"
+makedepends="py3-pbr py3-setuptools py3-pytest-runner"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pycontribs/wstools/archive/$pkgver.tar.gz
+ python3.10-support.patch
+ python3.12-support.patch
+ "
+builddir="$srcdir/wstools-$pkgver"
+
+build() {
+ export PBR_VERSION=$pkgver
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir"
+}
+
+sha512sums="
+1acd8e62d71c7d330f1e953a0da1956291c5dfb25ff9b8b8799c83feaa4230e384955735b131bab7b430b92ae6c18498927d416d2d1e11fb5c5dad93417c671a py3-wstools-0.4.10.tar.gz
+9c19ae50724249dacb91206301417238c04df3afd841fe5b3ef2280dfd57ce635e01690e6d28c88798aebc6b7b2bea7a83eeb1f45eeb07bb94ddcd00d3c6ed94 python3.10-support.patch
+64e25d87337d27ef36d9d97702001f2fb87e0215b93b8a03653dbed2331b10b44963eeddbe508813d9fbd0ba1727b68a0fe3d181855d548014df4f8f5cbe53c2 python3.12-support.patch
+"
diff --git a/testing/py3-wstools/python3.10-support.patch b/testing/py3-wstools/python3.10-support.patch
new file mode 100644
index 00000000000..94d9348056c
--- /dev/null
+++ b/testing/py3-wstools/python3.10-support.patch
@@ -0,0 +1,11 @@
+--- a/wstools/Utility.py
++++ b/wstools/Utility.py
+@@ -33,7 +33,7 @@
+ from UserDict import DictMixin # noqa
+ except ImportError:
+ from collections import UserDict
+- from collections import MutableMapping as DictMixin # noqa
++ from collections.abc import MutableMapping as DictMixin # noqa
+
+ from .TimeoutSocket import TimeoutSocket, TimeoutError # noqa
+
diff --git a/testing/py3-wstools/python3.12-support.patch b/testing/py3-wstools/python3.12-support.patch
new file mode 100644
index 00000000000..231b66a6530
--- /dev/null
+++ b/testing/py3-wstools/python3.12-support.patch
@@ -0,0 +1,22 @@
+diff --git a/tests/test_wsdl.py b/tests/test_wsdl.py
+index aeeddf7..8cfa7fb 100755
+--- a/tests/test_wsdl.py
++++ b/tests/test_wsdl.py
+@@ -70,7 +70,7 @@ class WSDLToolsTestCase(unittest.TestCase):
+ for node in DOM.getElements(definition, tag_name, nspname):
+ name = DOM.getAttr(node, key)
+ comp = component[name] # noqa F841
+- self.failUnlessEqual(eval('comp.%s' % key), name)
++ self.assertEqual(eval('comp.%s' % key), name)
+
+ def checkXSDCollection(self, tag_name, component, node, key='name'):
+ for cnode in DOM.getElements(node, tag_name):
+@@ -126,7 +126,7 @@ class WSDLToolsTestCase(unittest.TestCase):
+ try:
+ for key in self.wsdl.types.keys():
+ schema = self.wsdl.types[key]
+- self.failUnlessEqual(key, schema.getTargetNamespace())
++ self.assertEqual(key, schema.getTargetNamespace())
+
+ definition = self.wsdl.document.documentElement
+ version = DOM.WSDLUriToVersion(definition.namespaceURI)
diff --git a/testing/py3-wtf-peewee/APKBUILD b/testing/py3-wtf-peewee/APKBUILD
index 8b27f58863d..8f423904dbf 100644
--- a/testing/py3-wtf-peewee/APKBUILD
+++ b/testing/py3-wtf-peewee/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer:
pkgname=py3-wtf-peewee
_pkgname=wtf-peewee
-pkgver=3.0.0
-pkgrel=2
+pkgver=3.0.5
+pkgrel=1
pkgdesc="WTForms integration for peewee"
url="https://github.com/coleifer/wtf-peewee"
arch="noarch"
license="MIT"
-depends="py3-peewee"
+depends="py3-peewee py3-wtforms py3-markupsafe"
makedepends="py3-setuptools"
+options="!check" # broken tests
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -23,7 +25,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="130df6bb4f9f539c5cef9d6e05b778b29266bc43dcc90f1c2af11f16b608d63df58feb8463d544fd7e01bceb2e66013be166623e4331f605a2eb920ad209165f wtf-peewee-3.0.0.tar.gz"
+sha512sums="
+e5b0d4836a1b5aa99f1940ef0fde549f4841f3c4329f6a7d82ceb6f8ede9226d3e35cda592775a5b5fe7590660367a45df0ffb7803b63272eface5fb3f9d716f wtf-peewee-3.0.5.tar.gz
+"
diff --git a/testing/py3-wxpython/APKBUILD b/testing/py3-wxpython/APKBUILD
deleted file mode 100644
index e855d5506c1..00000000000
--- a/testing/py3-wxpython/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-_pkgname=wxPython
-pkgname=py3-wxpython
-pkgver=4.0.7
-pkgrel=0
-pkgdesc="Cross-platform GUI toolkit for the Python language"
-url="https://wxpython.org/"
-arch="all"
-license="custom"
-depends="py3-six py3-pathlib2"
-makedepends="py3-setuptools wxgtk3-dev python3-dev"
-checkdepends="py3-pytest py3-pytest-xdist xvfb-run"
-source="https://files.pythonhosted.org/packages/source/w/wxPython/wxPython-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-# Not all unit tests are passing. Some due to missing features of xvfb where the
-# tests are running in (GL, display settings). Some are checking features that
-# have not been provided in this package. Disabling failing unit tests to track
-# regressions would be nice, but I do not have the time for that now
-options="!check"
-
-prepare() {
- default_prepare
- sed -i "s|WX_CONFIG = 'wx-config'|WX_CONFIG = 'wx-config-gtk3'|" build.py
-}
-
-build() {
- python3 build.py build --use_syswx --release
-}
-
-check() {
- xvfb-run python3 build.py test
-}
-
-package() {
- python3 build.py install --destdir="$pkgdir"
- install -Dm 644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
- find "$pkgdir"/usr/lib -type f -exec chmod 644 {} \;
-}
-
-sha512sums="22d74a1285de432dd251ed6343b6138411a70742a7026e1ab002e08b84f111123382625bd64055412687d9ba7b579681d9894a58705455eb6a2b5e3c9d9985c0 wxPython-4.0.7.tar.gz"
diff --git a/testing/py3-x-wr-timezone/APKBUILD b/testing/py3-x-wr-timezone/APKBUILD
new file mode 100644
index 00000000000..f3204c440c6
--- /dev/null
+++ b/testing/py3-x-wr-timezone/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=py3-x-wr-timezone
+_pyname=x-wr-timezone
+pkgver=0.0.7
+pkgrel=1
+pkgdesc="Handling of non-standard X-WR-TIMEZONE icalendar property in Python and Command Line"
+url="https://github.com/niccokunzmann/x-wr-timezone"
+arch="noarch"
+license="LGPL-3.0-or-later"
+depends="python3 py3-icalendar py3-tz"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/niccokunzmann/x-wr-timezone/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ # Disable command line test since we aren't installed yet.
+ # Disable unnecessary test that adds another dependency.
+ PYTHONPATH=. pytest \
+ --ignore test/test_command_line.py \
+ --ignore test/test_readme.py
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+6d37de592741a8786855a1f6c8b61165b3267869dcd86e0b9fe56de31f326ee2f7206ab35c45c21713d4cc808d1b14934d6b5b9daac90791d13b0363af5b5cbf x-wr-timezone-0.0.7.tar.gz
+"
diff --git a/testing/py3-xapp/APKBUILD b/testing/py3-xapp/APKBUILD
new file mode 100644
index 00000000000..bfaa7d92711
--- /dev/null
+++ b/testing/py3-xapp/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=py3-xapp
+pkgver=2.4.1
+pkgrel=1
+pkgdesc="Python3 Xapp Library"
+url="https://github.com/linuxmint/python3-xapp"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="xapp"
+makedepends="meson"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/python3-xapp/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/python3-xapp-$pkgver/"
+options="!check" # doesn't have tests
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+97045061aa5965adcfe7301774dbd35a226fa9b846e31a7c097229cc417ff4008e518ebd5b600d4ce6a46daa39d51de70d391b6b0a7c78490419d3a96daca6a9 py3-xapp-2.4.1.tar.gz
+"
diff --git a/testing/py3-xlwt/APKBUILD b/testing/py3-xlwt/APKBUILD
index 2b152707585..576aa4af24f 100644
--- a/testing/py3-xlwt/APKBUILD
+++ b/testing/py3-xlwt/APKBUILD
@@ -3,24 +3,28 @@
pkgname=py3-xlwt
_pkgname=xlwt
pkgver=1.3.0
-pkgrel=3
+pkgrel=9
pkgdesc="A library to create spreadsheet files"
url="https://pypi.org/project/xlwt"
arch="noarch"
license="BSD-3-Clause BSD-4-Clause LGPL-2.1-or-later"
-replaces="py-xlwt" # for backwards compatibility
+replaces="py-xlwt" # for backwards compatibility
provides="py-xlwt=$pkgver-r$pkgrel" # for backwards compatibility
depends="py3-six"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools 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
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"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
sha512sums="e09c515bda7edadb9624b842796a537316c1e2e06f3e74aca5440a5797dbc259036539fd64ea61648a30894f4091d3be829411d36e6170894980728c798c5963 xlwt-1.3.0.tar.gz"
diff --git a/testing/py3-xmldiff/APKBUILD b/testing/py3-xmldiff/APKBUILD
deleted file mode 100644
index b6ddb8d1b1e..00000000000
--- a/testing/py3-xmldiff/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Sascha Brawer <sascha@brawer.ch>
-# Maintainer: Sascha Brawer <sascha@brawer.ch>
-pkgname=py3-xmldiff
-_pyname=xmldiff
-pkgver=2.4
-pkgrel=0
-pkgdesc="Creates diffs of XML files"
-url="https://github.com/Shoobx/xmldiff"
-arch="noarch"
-license="MIT"
-depends="python3 py3-lxml py3-six"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/x/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="cc96c0d46d251ce1cf664c86f8fc0cc8fef67de6d0472415ae755e32cb86f21495dd144b5ecebba11820297a3f3cae8067c8d3b25b3107a8134b6ea641f2fc07 xmldiff-2.4.tar.gz"
diff --git a/testing/py3-xmltodict/APKBUILD b/testing/py3-xmltodict/APKBUILD
deleted file mode 100644
index 16fcefdebd6..00000000000
--- a/testing/py3-xmltodict/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-xmltodict
-_realname=xmltodict
-pkgver=0.12.0
-pkgrel=1
-pkgdesc="an xmltodict implementation"
-url="https://pypi.python.org/pypi/xmltodict/"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-nose py3-coverage"
-source="$pkgname-$pkgver.tar.gz::https://github.com/martinblech/$_realname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-replaces="py-xmltodict" # Backward compat
-provides="py-xmltodict=$pkgver-r$pkgrel" # Backward compat
-
-build() {
- python3 setup.py build
-}
-
-check() {
- nosetests
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="baab65299134f3daec05e6c1d9cbb80343cc89f7d1fee2fd3be2bba0bc5c7dd78dcc72abd8cb721edd0c9504eab2d9e4135618237b54a85809dc0cf42b6f7616 py3-xmltodict-0.12.0.tar.gz"
diff --git a/testing/py3-xsdata/APKBUILD b/testing/py3-xsdata/APKBUILD
new file mode 100644
index 00000000000..8122f767ffc
--- /dev/null
+++ b/testing/py3-xsdata/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=py3-xsdata
+pkgver=24.4
+pkgrel=1
+pkgdesc="Naive XML & JSON Bindings for python"
+url="https://github.com/tefra/xsdata"
+arch="noarch"
+license="MIT"
+depends="
+ py3-click
+ py3-click-default-group
+ py3-docformatter
+ py3-jinja2
+ py3-toposort
+ ruff
+ "
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-lxml
+ py3-pytest-benchmark
+ py3-pytest-forked
+ py3-requests
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tefra/xsdata/archive/refs/tags/v$pkgver.tar.gz
+ typing.patch
+ "
+builddir="$srcdir/xsdata-$pkgver"
+
+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 --forked
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+6b346c40855662171747e1759bbe58880c668a3ee134eaef1dbe9b57c939a3813da10e5ccf68ec6923b097a1e518bcc7f19dfde27c79f7bc73530ccecdfee52e py3-xsdata-24.4.tar.gz
+3140a89f223a57cafb3c8e331e937188c22abceee1c3492da08e59f7b9928f8fef74a7fa6c348766c41cfe852057beb68639c3c04af09c717569da00f0fb6ea8 typing.patch
+"
diff --git a/testing/py3-xsdata/typing.patch b/testing/py3-xsdata/typing.patch
new file mode 100644
index 00000000000..a6579eefb17
--- /dev/null
+++ b/testing/py3-xsdata/typing.patch
@@ -0,0 +1,26 @@
+diff --git a/xsdata/formats/dataclass/serializers/mixins.py b/xsdata/formats/dataclass/serializers/mixins.py
+index 4ab8509..31f4643 100644
+--- a/xsdata/formats/dataclass/serializers/mixins.py
++++ b/xsdata/formats/dataclass/serializers/mixins.py
+@@ -14,7 +14,7 @@ from typing import (
+ from xml.etree.ElementTree import QName
+ from xml.sax.handler import ContentHandler
+
+-from typing_extensions import TypeAlias
++from typing import TypeAlias
+
+ from xsdata.exceptions import XmlWriterError
+ from xsdata.formats.converter import converter
+diff --git a/xsdata/formats/dataclass/typing.py b/xsdata/formats/dataclass/typing.py
+index a375346..defaf1b 100644
+--- a/xsdata/formats/dataclass/typing.py
++++ b/xsdata/formats/dataclass/typing.py
+@@ -1,7 +1,7 @@
+ import sys
+ from typing import Any, Iterator, Tuple, Type, TypeVar, Union
+
+-from typing_extensions import get_args, get_origin
++from typing import get_args, get_origin
+
+ NONE_TYPE = type(None)
+
diff --git a/testing/py3-yapf/APKBUILD b/testing/py3-yapf/APKBUILD
deleted file mode 100644
index a0fa5720ad1..00000000000
--- a/testing/py3-yapf/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-yapf
-pkgver=0.30.0
-pkgrel=0
-pkgdesc="A formatter for Python files"
-url="https://github.com/google/yapf"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://pypi.python.org/packages/source/y/yapf/yapf-$pkgver.tar.gz"
-builddir="$srcdir/yapf-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="47070ccbae54d482499c5fcf594be09f47e64540141dac6fb7c4d8e0e596dc9d050a127a62d1a0468cc10fff8626bfe3c12a0f42794b817fade9463d1a1d6ab3 yapf-0.30.0.tar.gz"
diff --git a/testing/py3-yapsy/APKBUILD b/testing/py3-yapsy/APKBUILD
index 3a67949193c..5b7987e6023 100644
--- a/testing/py3-yapsy/APKBUILD
+++ b/testing/py3-yapsy/APKBUILD
@@ -3,29 +3,41 @@
pkgname=py3-yapsy
_pkgname=Yapsy
pkgver=1.12.2
-pkgrel=1
+pkgrel=7
pkgdesc="DIY Python plugin management toolkit"
url="https://yapsy.sourceforge.net"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+makedepends="py3-setuptools 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
+ deprecated.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
replaces="py-yapsy" # Backwards compatibility
provides="py-yapsy=$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
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="3fdb4de1a6d8f836e22d82354492b99ec9883443c389393d25ea40a08bb0b6ae03db9c947af55237b67764facd4d55a09a36cdba107c8d9202f3700fd55c31fa Yapsy-1.12.2.tar.gz"
+sha512sums="
+3fdb4de1a6d8f836e22d82354492b99ec9883443c389393d25ea40a08bb0b6ae03db9c947af55237b67764facd4d55a09a36cdba107c8d9202f3700fd55c31fa Yapsy-1.12.2.tar.gz
+f51c83f61437205ec19590a5b7fbd5479cbfee7a1b58402855b79edf9b9dd88fb25d90e65fd01fc8e0b6d467dc3c239abdf0a1d7fffa0b8fa16db145cb7f3c70 deprecated.patch
+"
diff --git a/testing/py3-yapsy/deprecated.patch b/testing/py3-yapsy/deprecated.patch
new file mode 100644
index 00000000000..02b058fb221
--- /dev/null
+++ b/testing/py3-yapsy/deprecated.patch
@@ -0,0 +1,96 @@
+Patch-Source: https://github.com/tibonihoo/yapsy/commit/29286320673f9e853559cf20aeb3456e541afbd4
+From 29286320673f9e853559cf20aeb3456e541afbd4 Mon Sep 17 00:00:00 2001
+From: Ameya Vikram Singh <ameya.v.singh@gmail.com>
+Date: Mon, 6 Feb 2023 13:31:23 +0530
+Subject: [PATCH] Remove Deprecated API's
+
+* Replaced packaging.version instead of distutils.version
+* Replaced imp module to importlib
+
+**Note:** Probably Deprecates Python 2.7 supports, and maybe some initial versions of Python 3.x.
+
+Signed-off-by: Ameya Vikram Singh <ameya.v.singh@gmail.com>
+---
+ test/test_PluginInfo.py | 3 ++-
+ yapsy/PluginInfo.py | 6 +++---
+ yapsy/PluginManager.py | 17 ++++++++++-------
+ yapsy/VersionedPluginManager.py | 8 ++++----
+ 4 files changed, 19 insertions(+), 15 deletions(-)
+
+diff --git a/test/test_PluginInfo.py b/test/test_PluginInfo.py
+index 0863671..745226f 100644
+--- a/test/test_PluginInfo.py
++++ b/test/test_PluginInfo.py
+@@ -22,3 +22,3 @@ class PluginInfoTest(unittest.TestCase):
+ self.assertEqual(None,pi.error)
+- self.assertEqual("0.0",pi.version)
++ self.assertEqual("0.0",str(pi.version))
+ self.assertEqual("Unknown",pi.author)
+diff --git a/yapsy/PluginInfo.py b/yapsy/PluginInfo.py
+index 69d220e..700374e 100644
+--- a/yapsy/PluginInfo.py
++++ b/yapsy/PluginInfo.py
+@@ -14,3 +14,3 @@ API
+ from yapsy.compat import ConfigParser
+-from distutils.version import StrictVersion
++from packaging.version import Version
+
+@@ -107,3 +107,3 @@ class PluginInfo(object):
+ def __getVersion(self):
+- return StrictVersion(self.details.get("Documentation","Version"))
++ return Version(self.details.get("Documentation","Version"))
+
+@@ -116,3 +116,3 @@ class PluginInfo(object):
+ """
+- if isinstance(vstring,StrictVersion):
++ if isinstance(vstring,Version):
+ vstring = str(vstring)
+diff --git a/yapsy/PluginManager.py b/yapsy/PluginManager.py
+index 81a7c2b..b72de93 100644
+--- a/yapsy/PluginManager.py
++++ b/yapsy/PluginManager.py
+@@ -130,6 +130,3 @@ import sys
+ import os
+-try:
+- import importlib.abc.Loader as imp
+-except ImportError:
+- import imp
++import importlib
+
+@@ -579,7 +576,13 @@ class PluginManager(object):
+ # use imp to correctly load the plugin as a module
++ candidate_module = None
+ if os.path.isdir(candidate_filepath):
+- candidate_module = imp.load_module(plugin_module_name,None,candidate_filepath,("py","r",imp.PKG_DIRECTORY))
++ if (spec := importlib.util.spec_from_file_location(candidate_filepath.split('/')[-1], candidate_filepath + "/__init__.py")) is not None:
++ candidate_module = importlib.util.module_from_spec(spec)
++ sys.modules[plugin_module_name] = candidate_module
++ spec.loader.exec_module(candidate_module)
+ else:
+- with open(candidate_filepath+".py","r") as plugin_file:
+- candidate_module = imp.load_module(plugin_module_name,plugin_file,candidate_filepath+".py",("py","r",imp.PY_SOURCE))
++ if (spec := importlib.util.spec_from_file_location(candidate_filepath.split('/')[-1], candidate_filepath + ".py")) is not None:
++ candidate_module = importlib.util.module_from_spec(spec)
++ sys.modules[plugin_module_name] = candidate_module
++ spec.loader.exec_module(candidate_module)
+ return candidate_module
+diff --git a/yapsy/VersionedPluginManager.py b/yapsy/VersionedPluginManager.py
+index 83ad4fd..686a52a 100644
+--- a/yapsy/VersionedPluginManager.py
++++ b/yapsy/VersionedPluginManager.py
+@@ -14,3 +14,3 @@ API
+
+-from distutils.version import StrictVersion
++from packaging.version import Version
+
+@@ -29,7 +29,7 @@ class VersionedPluginInfo(PluginInfo):
+ PluginInfo.__init__(self, plugin_name, plugin_path)
+- # version number is now required to be a StrictVersion object
+- self.version = StrictVersion("0.0")
++ # version number is now required to be a Version object
++ self.version = Version("0.0")
+
+ def setVersion(self, vstring):
+- self.version = StrictVersion(vstring)
++ self.version = Version(vstring)
+
diff --git a/testing/py3-yara/APKBUILD b/testing/py3-yara/APKBUILD
index ea8aa953aed..d285d3a9944 100644
--- a/testing/py3-yara/APKBUILD
+++ b/testing/py3-yara/APKBUILD
@@ -1,21 +1,22 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="py3-yara"
+pkgname=py3-yara
_pkgname="${pkgname/py3-/}-python"
-pkgver=4.0.1
-pkgrel=0
+pkgver=4.5.0
+pkgrel=1
pkgdesc="The Python interface for YARA"
url="https://virustotal.github.io/yara/"
-arch="all !armv7 !armhf" # missing yara
+arch="all"
license="Apache-2.0"
depends="python3"
-makedepends="python3-dev yara py3-setuptools"
+makedepends="python3-dev yara-dev py3-setuptools"
source="$pkgname-$pkgver.tar.gz::https://github.com/VirusTotal/yara-python/archive/v$pkgver.tar.gz
- use-system-yara.patch"
+ use-system-yara.patch
+ "
builddir="$srcdir/$_pkgname-$pkgver"
build() {
- python3 setup.py build
+ python3 setup.py build --dynamic-linking
}
check() {
@@ -23,8 +24,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="8bd4ba51dbec38cb6b9c18b4d8b9325d5bfc413af1462682497398ab86ab67e4cd19355bdaacf1d075098e281ad0d5e9bf748eb5b7fbe404dcf0955cb688e2aa py3-yara-4.0.1.tar.gz
-d56d2c437f66b0d3c5bc92737f6b5c7bf5191e38fe4f72849145dbcbc2eb7d9cad10a2d07674c25aaa1e7f542b21e723c30722516e722db5c238840e4f6be07a use-system-yara.patch"
+sha512sums="
+b4f091bff7fd3bcd63e7f9f0a765aac7bdb3f17a1bc4b163687ae9ca21048194d90cf2bf1165998edb9953b83e022939179c51de59862a456676f099de69778d py3-yara-4.5.0.tar.gz
+bd19ef0a225ca070d9939d7e2ce6ea5be585130b5e0c4df196cd17ad62aa2e481e61dc40c6bfba8de26fc8f91b720e8f512f657afaa0f96f2609d9f10cfbf0ec use-system-yara.patch
+"
diff --git a/testing/py3-yara/use-system-yara.patch b/testing/py3-yara/use-system-yara.patch
index d7a0f8e7ced..a0858d6513b 100644
--- a/testing/py3-yara/use-system-yara.patch
+++ b/testing/py3-yara/use-system-yara.patch
@@ -1,9 +1,12 @@
---- a/setup.py.orig 2019-05-02 17:34:46.000000000 +0800
-+++ b/setup.py 2019-05-07 08:20:20.841022106 +0800
-@@ -325,5 +325,5 @@
+diff --git a/setup.py b/setup.py
+index 1289558..5fa5605 100644
+--- a/setup.py
++++ b/setup.py
+@@ -392,6 +392,6 @@ setup(
'update': UpdateCommand},
ext_modules=[Extension(
name='yara',
- include_dirs=['yara/libyara/include', 'yara/libyara/', '.'],
+ libraries = ['yara'],
+ define_macros=[('BUCKETS_128', 1), ('CHECKSUM_1B', 1)],
sources=['yara-python.c'])])
diff --git a/testing/py3-youtube-search/APKBUILD b/testing/py3-youtube-search/APKBUILD
new file mode 100644
index 00000000000..ff46a5d7e2b
--- /dev/null
+++ b/testing/py3-youtube-search/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=py3-youtube-search
+_pkgname=youtube-search-python
+pkgver=1.6.6
+pkgrel=3
+pkgdesc="Search for YouTube videos, channels & playlists"
+url="https://github.com/alexmercerind/youtube-search-python"
+arch="noarch !armhf !ppc64le" # limited by py3-httpx
+license="MIT"
+depends="py3-httpx"
+makedepends="py3-setuptools"
+options="!check" # no test suite
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/alexmercerind/youtube-search-python/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+075af3545d92c19819a1f46d27199a9c0733fc7a69806f6398dcfc2b391051618bd06d845658a4cfb94adf13c1adb5463971bf28b634873af79a59d3d8c6c1dc py3-youtube-search-1.6.6.tar.gz
+"
diff --git a/testing/py3-zabbix/APKBUILD b/testing/py3-zabbix/APKBUILD
deleted file mode 100644
index 7e6280c79f8..00000000000
--- a/testing/py3-zabbix/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="py3-zabbix"
-_pkgname="zabbix-api"
-pkgver="0.5.4"
-pkgrel=1
-pkgdesc="Python3 Zabbix API"
-url="https://github.com/gescheit/scripts"
-arch="all"
-license="LGPL 2.1"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d643f5f3760bb55df8d5b0416581f6fa2e82b7bcaba75d6be1386354a23a1d3dcc6cca10b97ba24ceca10ecd0c7a4a2646963549417f09beb441a90ef20e8e4c zabbix-api-0.5.4.tar.gz"
diff --git a/testing/py3-zeroconf/APKBUILD b/testing/py3-zeroconf/APKBUILD
deleted file mode 100644
index f1fb60dab0d..00000000000
--- a/testing/py3-zeroconf/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-zeroconf
-pkgver=0.27.0
-pkgrel=0
-pkgdesc="A Python implementation of multicast DNS service discovery"
-url="https://github.com/jstasiak/python-zeroconf"
-arch="noarch"
-license="LGPL-2.0-or-later"
-# Tests require netlink support which is no present in AL
-replaces="py-zeroconf" # for backwards compatibility
-provides="py-zeroconf=$pkgver-r$pkgrel" # for backwards compatibility
-options="!check"
-depends="
- py3-ifaddr
- py3-netifaces
- py3-six
- python3
- "
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/z/zeroconf/zeroconf-$pkgver.tar.gz"
-builddir="$srcdir"/zeroconf-$pkgver
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="44e4f95a81f312e85176c69d1567d67b2e340e191b544ae6acda31e0fb3d25e53fa405348d5b4f5e0ae80abe9dc1733c3b377957ea67838c2160420acf2686b9 zeroconf-0.27.0.tar.gz"
diff --git a/testing/py3-zfs-autobackup/APKBUILD b/testing/py3-zfs-autobackup/APKBUILD
new file mode 100644
index 00000000000..2acfa3d45d9
--- /dev/null
+++ b/testing/py3-zfs-autobackup/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Edwin Eefting <edwin@datux.nl>
+# Maintainer: Julie Koubova <julie@koubova.net>
+pkgname=py3-zfs-autobackup
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="ZFS autobackup is used to periodically backup ZFS filesystems to other locations."
+url="https://github.com/psy0rz/zfs_autobackup"
+arch="noarch"
+license="GPL-3.0-only"
+depends="py3-colorama"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/psy0rz/zfs_autobackup/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/zfs_autobackup-$pkgver"
+subpackages="$pkgname-pyc"
+options="!check" # tests need ZFS installed and root access to create RAM-disk zpools
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ "$builddir"/.dist/*.whl
+}
+
+sha512sums="
+48aaf51d89a649caeccb57cef75b4e09a325106ac6fdc63f85fe70b2961e6b42c64dfbbfc8f2ae1d1b4b0628747ed91969bed4b376d2f1f3d07fbea15ff5b3a2 py3-zfs-autobackup-3.2.2.tar.gz
+"
diff --git a/testing/py3-zict/APKBUILD b/testing/py3-zict/APKBUILD
deleted file mode 100644
index 43f399aa23c..00000000000
--- a/testing/py3-zict/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=py3-zict
-pkgver=2.0.0
-pkgrel=0
-pkgdesc="Mutable mapping tools"
-url="http://zict.readthedocs.io/en/latest/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3 py3-heapdict py3-lmdb"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-source="https://pypi.python.org/packages/source/z/zict/zict-$pkgver.tar.gz"
-builddir="$srcdir/zict-$pkgver"
-
-case "$CARCH" in
-mips64) options="!check" ;; # XXX: Runs out of memory
-esac
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b6a381772eb1bb6111d05e10b60cca53a492491bb00569f2985f3270178926aeb525394946ef755db8971fe37e4b6522dcd7bfbec8ba7bb7268030179f4ae3ef zict-2.0.0.tar.gz"
diff --git a/testing/py3-zimscraperlib/APKBUILD b/testing/py3-zimscraperlib/APKBUILD
new file mode 100644
index 00000000000..57ff81ea02d
--- /dev/null
+++ b/testing/py3-zimscraperlib/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=py3-zimscraperlib
+pkgver=3.2.0
+pkgrel=0
+pkgdesc="Collection of python code to re-use across python-based scrapers"
+url="https://github.com/openzim/python-scraperlib"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ ffmpeg
+ gifsicle
+ py3-pillow
+ py3-six
+ wget
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="
+ py3-babel
+ py3-beautifulsoup4
+ py3-colorthief
+ py3-iso639
+ py3-libzim
+ py3-lxml
+ py3-magic
+ py3-optimize-images
+ py3-piexif
+ py3-pytest
+ py3-pytest-cov
+ py3-pytest-httpbin
+ py3-resizeimage
+ py3-requests
+ py3-wsgiprox
+ yt-dlp-core
+ "
+subpackages="$pkgname-pyc"
+source="py3-zimscraperlib-$pkgver.tar.gz::https://github.com/openzim/python-scraperlib/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/python-scraperlib-$pkgver"
+
+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
+
+ # some tests may fail, so disable them
+ # https://github.com/openzim/python-scraperlib/issues/114
+ .testenv/bin/python3 -m pytest \
+ -k "not test_get_media_info[mp4-video.mp4-expected1]"` \
+ `" and not test_reencode_media[video.mkv-video.mp4-ffmpeg_args0-expected0]"` \
+ `" and not test_selocale_unsupported"` \
+ `" and not test_installed_script" \
+ --runslow --runinstalled \
+ --cov=zimscraperlib \
+ --cov-report=term --cov-report term-missing
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4f15f6cb4aee8adb07ed9baa7b6dff055aa334e204a53d49c23828f2c1247ec195a10f30d4a7477e3d9510c785cf8fcb7aeed2ab7a4f39136d7da58de103c3d5 py3-zimscraperlib-3.2.0.tar.gz
+"
diff --git a/testing/py3-zope-configuration/APKBUILD b/testing/py3-zope-configuration/APKBUILD
index 93ac2d66069..b6bc723373d 100644
--- a/testing/py3-zope-configuration/APKBUILD
+++ b/testing/py3-zope-configuration/APKBUILD
@@ -2,29 +2,40 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-zope-configuration
_pkgname=zope.configuration
-pkgver=4.4.0
-pkgrel=0
+pkgver=5.0.1
+pkgrel=2
pkgdesc="Zope Configuration Markup Language"
-url="http://pypi.python.org/pypi/zope.configuration"
+url="https://pypi.org/project/zope.configuration"
arch="noarch"
license="ZPL-2.1"
-depends="python3 py3-zope-interface py3-setuptools py3-zope-schema py3-zope-i18nmessageid"
+depends="py3-zope-interface py3-setuptools py3-zope-schema py3-zope-i18nmessageid"
+makedepends="py3-gpep517 py3-wheel"
+checkdepends="py3-zope-testrunner py3-zope-testing py3-manuel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
-replaces="py-zope-configuration" # Backwards compatibility
+replaces="py-zope-configuration" # Backwards compatibility
provides="py-zope-configuration=$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
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m zope.testrunner
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+ rm -r "$pkgdir"/usr/lib/python*/site-packages/zope/configuration/tests
}
-sha512sums="6383c8e19ddbde098a545b6f22b21eadc860980e8248d05c2e29832971c2060fcde6f5092425d12198e97851f0b7b5edb0b83cc6725cda433867762778c896f9 zope.configuration-4.4.0.tar.gz"
+sha512sums="
+58fec7b330a4ee5f9bb71238fbcb8f07fdd7b6767cb2d8e054699ffcb915973b9dfead33e5515f40049f6aede233d31624d09d7f84d75b96318e63f8ab454147 zope.configuration-5.0.1.tar.gz
+"
diff --git a/testing/py3-zope-exceptions/APKBUILD b/testing/py3-zope-exceptions/APKBUILD
deleted file mode 100644
index d3a41488bb0..00000000000
--- a/testing/py3-zope-exceptions/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-zope-exceptions
-_pkgname=zope.exceptions
-pkgver=4.3
-pkgrel=1
-pkgdesc="Zope Exceptions"
-# Cyclic dep zope.testrunner needs zope.exceptions to run, but zope.exceptions
-# needs zope.testrunner on its test dependencies
-options="!check"
-url="https://github.com/zopefoundation/zope.exceptions"
-arch="noarch"
-license="ZPL-2.1"
-depends="python3 py3-zope-interface py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="348c8edb0246bb2035ca5c1bcfaca7d3be2525157e2c9267a59a061c8ba749b364428e3d6a3aa3f967306abd0a319e4d6fa935b7fc35fff3bb53960015505695 zope.exceptions-4.3.tar.gz"
diff --git a/testing/py3-zope-i18nmessageid/APKBUILD b/testing/py3-zope-i18nmessageid/APKBUILD
index 874a884912f..4fbd6652da5 100644
--- a/testing/py3-zope-i18nmessageid/APKBUILD
+++ b/testing/py3-zope-i18nmessageid/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer:
pkgname=py3-zope-i18nmessageid
_pkgname=zope.i18nmessageid
-pkgver=5.0.1
-pkgrel=0
+pkgver=6.1.0
+pkgrel=1
pkgdesc="Message Identifiers for internationalization"
url="https://github.com/zopefoundation/zope.i18nmessageid"
arch="all"
license="ZPL-2.1"
-depends="py3-setuptools py3-six"
+depends="py3-setuptools"
makedepends="python3-dev"
-checkdepends="py3-nose py3-coverage"
+checkdepends="py3-nose py3-coverage py3-zope-testrunner"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -19,11 +20,14 @@ build() {
}
check() {
- python3 setup.py test
+ # optimizations don't work(?)
+ nosetests -e "test_optimizations_available"
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="31af16581d59ce1b7d5d8fd86c715c56b84aee9a7a0756bb2b7ceac6db30903acc5fdff85d844c0250c0a112cb45ab03be2f56d3d4ca6165272ff76c09d40d8c zope.i18nmessageid-5.0.1.tar.gz"
+sha512sums="
+13ca8d6c145ac48217d0f4fae4ae7fa2129a8d37ceeea640dcedca8815587cc9507935f0cc070bf37307cc21269b1a9decd2d18ae1bc79fdb0128f59f7e4b43b zope.i18nmessageid-6.1.0.tar.gz
+"
diff --git a/testing/py3-zope-schema/APKBUILD b/testing/py3-zope-schema/APKBUILD
index b3909627042..d96f6ea560d 100644
--- a/testing/py3-zope-schema/APKBUILD
+++ b/testing/py3-zope-schema/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer:
pkgname=py3-zope-schema
_pkgname=zope.schema
-pkgver=5.0.1
-pkgrel=0
+pkgver=7.0.1
+pkgrel=2
pkgdesc="zope.interface extension for defining data schemas"
options="!check" # Tests require 'zope.testing', 'zope.testruner' and 'zope.i18nmessageid'
url="https://github.com/zopefoundation/zope.schema"
arch="noarch"
license="ZPL-2.1"
depends="py3-setuptools py3-zope-interface py3-zope-event"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -18,8 +19,10 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
rm -rf "$pkgdir"/usr/lib/python3*/site-packages/zope/schema/tests
}
-sha512sums="f3fe1b2e881f4a39bdce07f37e22491880dfbc827041a90c6dd5b2384a6c4daabe6c965810372adb98f9a32fd3bd11717cf3d9762365ccc449483833b5095dae zope.schema-5.0.1.tar.gz"
+sha512sums="
+a8da9ac2e7239d15ed6cef83b4f500bca989c9ef2b7f1cd06ce532c260a8b8488b6fa42a6b2cfaeee505db87d3235f81815dc7eb80401c9e482141f8bf717e62 zope.schema-7.0.1.tar.gz
+"
diff --git a/testing/py3-zope-testing/APKBUILD b/testing/py3-zope-testing/APKBUILD
deleted file mode 100644
index b4c8dad9897..00000000000
--- a/testing/py3-zope-testing/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-zope-testing
-_pkgname=zope.testing
-pkgver=4.7
-pkgrel=1
-pkgdesc="Zope testing helpers"
-url="https://github.com/zopefoundation/zope.testing"
-arch="noarch"
-license="ZPL-2.1"
-depends="python3 py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$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="cdf87f95196880a0f55c740f6340286bb29e96e9273d0c645bbb50def54a0645cce22d971adba3f15ff57b1021a72749219af83abc4e8fa775fb982d8164791d zope.testing-4.7.tar.gz"
diff --git a/testing/py3-zope-testrunner/APKBUILD b/testing/py3-zope-testrunner/APKBUILD
deleted file mode 100644
index 7b294cfbdd5..00000000000
--- a/testing/py3-zope-testrunner/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=py3-zope-testrunner
-_pkgname=zope.testrunner
-pkgver=5.1
-pkgrel=1
-pkgdesc="Zope testrunner script"
-options="!check" # Fails to run
-url="https://github.com/zopefoundation/zope.testrunner"
-arch="noarch"
-license="ZPL-2.1"
-depends="python3 py3-setuptools py3-six py3-zope-exceptions py3-zope-interface"
-checkdepends="py3-zope-testing"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="685d1e1512bd85a00c34f4f89ca1e0f8d1f0939de7b25db0cb43da44e5e41e735e1e9a5ccf2a89b959d7d5f074da71dfe0fd931bd62082159ec65c0b53cd38c1 zope.testrunner-5.1.tar.gz"
diff --git a/testing/pympress/APKBUILD b/testing/pympress/APKBUILD
new file mode 100644
index 00000000000..4628560fefd
--- /dev/null
+++ b/testing/pympress/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=pympress
+pkgver=1.8.5
+pkgrel=1
+pkgdesc="PDF reader designed for dual-screen presentations"
+url="https://github.com/Cimbali/pympress"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="
+ gdk-pixbuf
+ gobject-introspection
+ gstreamer
+ gtk+3.0
+ poppler-glib
+ py3-cairo
+ py3-gobject3
+ py3-watchdog
+ "
+makedepends="
+ py3-babel
+ py3-gpep517
+ py3-myst-parser
+ py3-setuptools
+ py3-sphinx
+ py3-wheel
+ "
+subpackages="$pkgname-pyc $pkgname-lang $pkgname-doc"
+source="https://github.com/Cimbali/pympress/archive/refs/tags/v$pkgver/pympress-$pkgver.tar.gz"
+options="bigdocs !check" # no upstream tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+
+ python3 -m sphinx -bhtml docs/ build/sphinx/html/
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ mkdir -p "$pkgdir"/usr/share/doc/"$pkgname"
+ cp -a build/sphinx/html/* "$pkgdir"/usr/share/doc/"$pkgname"/
+}
+
+lang() {
+ pkgdesc="Translations for $pkgname"
+ install_if="lang $pkgname=$pkgver-r$pkgrel"
+ amove usr/lib/python3.*/site-packages/pympress/share/locale
+}
+
+sha512sums="
+e110d99935a43f7b4b36581993247c8f44cb214759a98017f8d49f9aadcb998528787154a0c6e53d39c1da650df8a314513af06482b1dc145ea020dd278f4aea pympress-1.8.5.tar.gz
+"
diff --git a/testing/pypy-bootstrap/APKBUILD b/testing/pypy-bootstrap/APKBUILD
new file mode 100644
index 00000000000..103cfb5e43b
--- /dev/null
+++ b/testing/pypy-bootstrap/APKBUILD
@@ -0,0 +1,121 @@
+# Maintainer: Thomas Liske <thomas@fiasko-nw.net>
+pkgname=pypy-bootstrap
+pkgver=7.3.12
+_py2ver=2.7.18
+_pycpver=2.21
+pkgrel=0
+pkgdesc="Fast, compliant alternative implementation of Python"
+url="https://www.pypy.org/"
+arch="x86 x86_64 s390x aarch64 ppc64le"
+license="MIT"
+makedepends="
+ bzip2-dev
+ expat-dev
+ gdbm-dev
+ libc-dev
+ libffi-dev
+ linux-headers
+ ncurses-dev
+ openssl-dev>3
+ perl
+ pkgconf
+ readline-dev
+ rsync
+ sqlite-dev
+ tk-dev
+ xz-dev
+ zlib-dev
+ "
+options="!check"
+# libpypy-c.so on x86 has textrels; no checks for bootstrap
+[ "$CARCH" = "x86" ] && options="$options textrels"
+source="https://downloads.python.org/pypy/pypy2.7-v$pkgver-src.tar.bz2
+ https://www.python.org/ftp/python/$_py2ver/Python-$_py2ver.tar.xz
+ https://files.pythonhosted.org/packages/source/p/pycparser/pycparser-$_pycpver.tar.gz
+ py2_musl-find_library.py2patch
+ py2_unchecked-ioctl.py2patch
+ py2_cve-2021-3177.py2patch
+ "
+
+# Provide pypy-bootstrap for testing/pypy.
+provider_priority=1 # lowest
+
+prepare() {
+ default_prepare
+
+ cd Python-$_py2ver
+
+ # apply Python2 patches
+ for i in ../py2_*.py2patch; do
+ patch -p1 <$i
+ done
+
+ # Make sure Python2 uses system libs
+ rm -r Modules/expat Modules/_ctypes/libffi* Modules/zlib
+}
+
+build() {
+ ### Python2 ###
+ export OPT="$CFLAGS -DTHREAD_STACK_SIZE=0x100000"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=$srcdir/usr \
+ --enable-ipv6 \
+ --enable-shared \
+ --enable-unicode=ucs4 \
+ --with-system-expat \
+ --with-system-ffi \
+ --with-system-zlib \
+ --with-threads
+ make LD_RUN_PATH="$srcdir/usr/lib"
+ make -j1 install
+
+ # pycparser
+ cd $srcdir/pycparser-$_pycpver
+ ../usr/bin/python2 setup.py install
+
+ ### PyPy ###
+ cd $srcdir/pypy2.7-v$pkgver-src/pypy/goal
+
+ if [ "$JOBS" -gt 16 ]; then
+ export JOBS=16
+ fi
+
+ # translate with JIT
+ ../../../usr/bin/python2 ../../rpython/bin/rpython \
+ --opt=jit \
+ --shared \
+ --make-jobs $JOBS \
+ targetpypystandalone
+
+ # compile binary modules
+ PYTHONPATH=../.. ./pypy-c ../../lib_pypy/pypy_tools/build_cffi_imports.py
+}
+
+package() {
+ cd src/pypy2.7-v$pkgver-src
+
+ install -Dm755 pypy/goal/pypy-c "$pkgdir"/usr/lib/pypy/bin/pypy-c
+ install -Dm755 pypy/goal/libpypy-c.so "$pkgdir"/usr/lib/pypy/bin/libpypy-c.so
+
+ rsync -r --exclude='__pycache__' --exclude='*.c' --exclude '*.o' lib_pypy/ "$pkgdir"/usr/lib/pypy/lib_pypy/
+
+ rsync -r --exclude='__pycache__' --exclude='test' --exclude='tests' lib-python/ "$pkgdir"/usr/lib/pypy/lib-python/
+
+ rsync -r --include='*.h' -f 'hide,! */' include/ "$pkgdir"/usr/lib/pypy/include/
+
+ # Install symlinks
+ mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/lib
+ ln -s ../lib/pypy/bin/pypy-c "$pkgdir"/usr/bin/pypy
+ ln -s pypy/bin/libpypy-c.so "$pkgdir"/usr/lib/libpypy-c.so
+}
+
+sha512sums="
+35ec35376f1e7c1a5dea9dc5bce6819a94c2df2645806c83185487587470b47ab529c25ecb8ca200505319f40789859a2919c61902b693421e2001313b46e5f4 pypy2.7-v7.3.12-src.tar.bz2
+a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c Python-2.7.18.tar.xz
+e61fbdde484d1cf74d4b27bdde40cf2da4b7028ca8ecd37c83d77473dab707d457321aecaf97da3b114c1d58a4eb200290b76f9c958044b57e5fed949895b5f0 pycparser-2.21.tar.gz
+ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 py2_musl-find_library.py2patch
+5a8e013a4132d71c4360771f130d27b37275ae59330cf9a75378dc8a11236017f540eb224f2a148984e82ca3fb6b29129375b1080ba05b81044faa717520ab82 py2_unchecked-ioctl.py2patch
+7d6c5d85a572450fb463feea9c7a8159aa8dd0c604e69f19da6eb57108c60e37ebce41b80758f63dd01e4a22286f80665ce4d778a30fa45ad5f1d6ce074c1f81 py2_cve-2021-3177.py2patch
+"
diff --git a/testing/pypy-bootstrap/py2_cve-2021-3177.py2patch b/testing/pypy-bootstrap/py2_cve-2021-3177.py2patch
new file mode 100644
index 00000000000..ca5da80e13c
--- /dev/null
+++ b/testing/pypy-bootstrap/py2_cve-2021-3177.py2patch
@@ -0,0 +1,150 @@
+bpo-42938: Replace snprintf with Python unicode formatting in ctypes param reprs.
+--- Python-2.7.18.orig/Lib/ctypes/test/test_parameters.py
++++ Python-2.7.18/Lib/ctypes/test/test_parameters.py
+@@ -206,6 +206,49 @@
+ with self.assertRaises(ZeroDivisionError):
+ WorseStruct().__setstate__({}, b'foo')
+
++ def test_parameter_repr(self):
++ from ctypes import (
++ c_bool,
++ c_char,
++ c_wchar,
++ c_byte,
++ c_ubyte,
++ c_short,
++ c_ushort,
++ c_int,
++ c_uint,
++ c_long,
++ c_ulong,
++ c_longlong,
++ c_ulonglong,
++ c_float,
++ c_double,
++ c_longdouble,
++ c_char_p,
++ c_wchar_p,
++ c_void_p,
++ )
++ self.assertRegexpMatches(repr(c_bool.from_param(True)), r"^<cparam '\?' at 0x[A-Fa-f0-9]+>$")
++ self.assertEqual(repr(c_char.from_param('a')), "<cparam 'c' (a)>")
++ self.assertRegexpMatches(repr(c_wchar.from_param('a')), r"^<cparam 'u' at 0x[A-Fa-f0-9]+>$")
++ self.assertEqual(repr(c_byte.from_param(98)), "<cparam 'b' (98)>")
++ self.assertEqual(repr(c_ubyte.from_param(98)), "<cparam 'B' (98)>")
++ self.assertEqual(repr(c_short.from_param(511)), "<cparam 'h' (511)>")
++ self.assertEqual(repr(c_ushort.from_param(511)), "<cparam 'H' (511)>")
++ self.assertRegexpMatches(repr(c_int.from_param(20000)), r"^<cparam '[li]' \(20000\)>$")
++ self.assertRegexpMatches(repr(c_uint.from_param(20000)), r"^<cparam '[LI]' \(20000\)>$")
++ self.assertRegexpMatches(repr(c_long.from_param(20000)), r"^<cparam '[li]' \(20000\)>$")
++ self.assertRegexpMatches(repr(c_ulong.from_param(20000)), r"^<cparam '[LI]' \(20000\)>$")
++ self.assertRegexpMatches(repr(c_longlong.from_param(20000)), r"^<cparam '[liq]' \(20000\)>$")
++ self.assertRegexpMatches(repr(c_ulonglong.from_param(20000)), r"^<cparam '[LIQ]' \(20000\)>$")
++ self.assertEqual(repr(c_float.from_param(1.5)), "<cparam 'f' (1.5)>")
++ self.assertEqual(repr(c_double.from_param(1.5)), "<cparam 'd' (1.5)>")
++ self.assertEqual(repr(c_double.from_param(1e300)), "<cparam 'd' (1e+300)>")
++ self.assertRegexpMatches(repr(c_longdouble.from_param(1.5)), r"^<cparam ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$")
++ self.assertRegexpMatches(repr(c_char_p.from_param(b'hihi')), "^<cparam 'z' \(0x[A-Fa-f0-9]+\)>$")
++ self.assertRegexpMatches(repr(c_wchar_p.from_param('hihi')), "^<cparam 'Z' \(0x[A-Fa-f0-9]+\)>$")
++ self.assertRegexpMatches(repr(c_void_p.from_param(0x12)), r"^<cparam 'P' \(0x0*12\)>$")
++
+ ################################################################
+
+ if __name__ == '__main__':
+--- Python-2.7.18.orig/Modules/_ctypes/callproc.c
++++ Python-2.7.18/Modules/_ctypes/callproc.c
+@@ -460,50 +460,53 @@
+ static PyObject *
+ PyCArg_repr(PyCArgObject *self)
+ {
+- char buffer[256];
+ switch(self->tag) {
+ case 'b':
+ case 'B':
+- sprintf(buffer, "<cparam '%c' (%d)>",
++ return PyString_FromFormat("<cparam '%c' (%d)>",
+ self->tag, self->value.b);
+- break;
+ case 'h':
+ case 'H':
+- sprintf(buffer, "<cparam '%c' (%d)>",
++ return PyString_FromFormat("<cparam '%c' (%d)>",
+ self->tag, self->value.h);
+- break;
+ case 'i':
+ case 'I':
+- sprintf(buffer, "<cparam '%c' (%d)>",
++ return PyString_FromFormat("<cparam '%c' (%d)>",
+ self->tag, self->value.i);
+- break;
+ case 'l':
+ case 'L':
+- sprintf(buffer, "<cparam '%c' (%ld)>",
++ return PyString_FromFormat("<cparam '%c' (%ld)>",
+ self->tag, self->value.l);
+- break;
+
+ #ifdef HAVE_LONG_LONG
+ case 'q':
+ case 'Q':
+- sprintf(buffer,
+- "<cparam '%c' (%" PY_FORMAT_LONG_LONG "d)>",
++ return PyString_FromFormat("<cparam '%c' (%" PY_FORMAT_LONG_LONG "d)>",
+ self->tag, self->value.q);
+- break;
+ #endif
+ case 'd':
+- sprintf(buffer, "<cparam '%c' (%f)>",
+- self->tag, self->value.d);
+- break;
+- case 'f':
+- sprintf(buffer, "<cparam '%c' (%f)>",
+- self->tag, self->value.f);
+- break;
++ case 'f': {
++ PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? self->value.f : self->value.d);
++ if (f == NULL) {
++ return NULL;
++ }
++ PyObject *r = PyObject_Repr(f);
++ Py_DECREF(f);
++ if (r == NULL) {
++ return NULL;
++ }
++ char *value = PyString_AsString(r);
++ Py_DECREF(r);
++ if (value == NULL) {
++ return NULL;
++ }
++ return PyString_FromFormat("<cparam '%c' (%s)>",
++ self->tag, value);
++ }
+
+ case 'c':
+- sprintf(buffer, "<cparam '%c' (%c)>",
++ return PyString_FromFormat("<cparam '%c' (%c)>",
+ self->tag, self->value.c);
+- break;
+
+ /* Hm, are these 'z' and 'Z' codes useful at all?
+ Shouldn't they be replaced by the functionality of c_string
+@@ -512,16 +515,13 @@
+ case 'z':
+ case 'Z':
+ case 'P':
+- sprintf(buffer, "<cparam '%c' (%p)>",
++ return PyString_FromFormat("<cparam '%c' (%p)>",
+ self->tag, self->value.p);
+- break;
+
+ default:
+- sprintf(buffer, "<cparam '%c' at %p>",
++ return PyString_FromFormat("<cparam '%c' at %p>",
+ self->tag, self);
+- break;
+ }
+- return PyString_FromString(buffer);
+ }
+
+ static PyMemberDef PyCArgType_members[] = {
+
diff --git a/testing/pypy-bootstrap/py2_musl-find_library.py2patch b/testing/pypy-bootstrap/py2_musl-find_library.py2patch
new file mode 100644
index 00000000000..7899abb7360
--- /dev/null
+++ b/testing/pypy-bootstrap/py2_musl-find_library.py2patch
@@ -0,0 +1,45 @@
+diff -ru Python-2.7.12.orig/Lib/ctypes/util.py Python-2.7.12/Lib/ctypes/util.py
+--- Python-2.7.12.orig/Lib/ctypes/util.py 2016-06-26 00:49:30.000000000 +0300
++++ Python-2.7.12/Lib/ctypes/util.py 2016-11-03 16:05:46.954665040 +0200
+@@ -204,6 +204,41 @@
+ def find_library(name, is64 = False):
+ return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
+
++ elif True:
++
++ # Patched for Alpine Linux / musl - search manually system paths
++ def _is_elf(filepath):
++ try:
++ with open(filepath, 'rb') as fh:
++ return fh.read(4) == b'\x7fELF'
++ except:
++ return False
++
++ def find_library(name):
++ from glob import glob
++ # absolute name?
++ if os.path.isabs(name):
++ return name
++ # special case for libm, libcrypt and libpthread and musl
++ if name in ['m', 'crypt', 'pthread']:
++ name = 'c'
++ elif name in ['libm.so', 'libcrypt.so', 'libpthread.so']:
++ name = 'libc.so'
++ # search in standard locations (musl order)
++ paths = ['/lib', '/usr/local/lib', '/usr/lib']
++ if 'LD_LIBRARY_PATH' in os.environ:
++ paths = os.environ['LD_LIBRARY_PATH'].split(':') + paths
++ for d in paths:
++ f = os.path.join(d, name)
++ if _is_elf(f):
++ return os.path.basename(f)
++
++ prefix = os.path.join(d, 'lib'+name)
++ for suffix in ['.so', '.so.*']:
++ for f in glob('{0}{1}'.format(prefix, suffix)):
++ if _is_elf(f):
++ return os.path.basename(f)
++
+ else:
+
+ def _findSoname_ldconfig(name):
diff --git a/testing/pypy-bootstrap/py2_unchecked-ioctl.py2patch b/testing/pypy-bootstrap/py2_unchecked-ioctl.py2patch
new file mode 100644
index 00000000000..4d5564c2cb8
--- /dev/null
+++ b/testing/pypy-bootstrap/py2_unchecked-ioctl.py2patch
@@ -0,0 +1,11 @@
+--- ./Modules/fcntlmodule.c.orig
++++ ./Modules/fcntlmodule.c
+@@ -118,7 +118,7 @@
+ int mutate_arg = 1;
+ char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */
+
+- if (PyArg_ParseTuple(args, "O&Iw#|i:ioctl",
++ if (PyArg_ParseTuple(args, "O&Iw#|n:ioctl",
+ conv_descriptor, &fd, &code,
+ &str, &len, &mutate_arg)) {
+ char *arg;
diff --git a/testing/pypy/APKBUILD b/testing/pypy/APKBUILD
new file mode 100644
index 00000000000..42ad73f332a
--- /dev/null
+++ b/testing/pypy/APKBUILD
@@ -0,0 +1,101 @@
+# Maintainer: Thomas Liske <thomas@fiasko-nw.net>
+pkgname=pypy
+pkgver=7.3.12
+_pkgver=${pkgver/_/}
+pkgrel=0
+pkgdesc="A fast, compliant alternative implementation of Python 2.7"
+url="https://www.pypy.org/"
+arch="x86 x86_64 s390x aarch64 ppc64le"
+license="MIT"
+subpackages="$pkgname-dev $pkgname-tkinter"
+provides="pypy-bootstrap"
+provider_priority=100 # highest
+makedepends="
+ bzip2-dev
+ expat-dev
+ gdbm-dev
+ libffi-dev
+ linux-headers
+ ncurses-dev
+ openssl-dev>3
+ perl
+ py3-virtualenv
+ pypy-bootstrap
+ readline-dev
+ rsync
+ sqlite-dev
+ tk-dev
+ util-linux-misc
+ xz-dev
+ zlib-dev
+ "
+[ "$CARCH" = "x86" ] && options="textrels" # libpypy-c.so on x86 has textrels
+source="https://downloads.python.org/pypy/pypy2.7-v$_pkgver-src.tar.bz2
+ "
+
+case "$CARCH" in
+x86_64)
+ ;;
+*)
+ # ignore failing tests on some archs for now
+ options="$options !check"
+ ;;
+esac
+
+build() {
+ cd pypy2.7-v$_pkgver-src/pypy/goal
+
+ if [ "$JOBS" -gt 16 ]; then
+ export JOBS=16
+ fi
+
+ # translate with JIT
+ pypy ../../rpython/bin/rpython --opt=jit --shared --make-jobs $JOBS targetpypystandalone
+
+ # compile binary modules
+ PYTHONPATH=../.. ./pypy-c ../../lib_pypy/pypy_tools/build_cffi_imports.py
+}
+
+check() {
+ ./pypy-c -u ../test_all.py ../module/pypyjit/test_pypy_c
+}
+
+package() {
+ cd src/pypy2.7-v$_pkgver-src
+
+ install -Dm755 pypy/goal/pypy-c "$pkgdir"/usr/lib/pypy/bin/pypy-c
+ install -Dm755 pypy/goal/libpypy-c.so "$pkgdir"/usr/lib/pypy/bin/libpypy-c.so
+
+ rsync -r --exclude='__pycache__' --exclude='*.c' --exclude '*.o' lib_pypy/ "$pkgdir"/usr/lib/pypy/lib_pypy/
+
+ rsync -r --exclude='__pycache__' --exclude='test' --exclude='tests' lib-python/ "$pkgdir"/usr/lib/pypy/lib-python/
+
+ rsync -r --include='*.h' -f 'hide,! */' include/ "$pkgdir"/usr/lib/pypy/include/
+
+ # Install symlinks
+ mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/lib
+ ln -s ../lib/pypy/bin/pypy-c "$pkgdir"/usr/bin/pypy
+ ln -s pypy/bin/libpypy-c.so "$pkgdir"/usr/lib/libpypy-c.so
+}
+
+dev() {
+ default_dev
+
+ # pyconfig.h is needed runtime so we move it back
+ mkdir -p "$pkgdir"/usr/lib/pypy/include
+ mv "$subpkgdir"/usr/lib/pypy/include/pyconfig.h \
+ "$pkgdir"/usr/lib/pypy/include/
+}
+
+tkinter() {
+ pkgdesc="Writing Tk applications with Pypy"
+
+ amove \
+ usr/lib/pypy/lib_pypy/_tkinter \
+ usr/lib/pypy/lib-python/2.7/lib-tk \
+ usr/lib/pypy/lib-python/2.7/idlelib
+}
+
+sha512sums="
+35ec35376f1e7c1a5dea9dc5bce6819a94c2df2645806c83185487587470b47ab529c25ecb8ca200505319f40789859a2919c61902b693421e2001313b46e5f4 pypy2.7-v7.3.12-src.tar.bz2
+"
diff --git a/testing/pypy3/0001-time.patch b/testing/pypy3/0001-time.patch
new file mode 100644
index 00000000000..fa929736bc3
--- /dev/null
+++ b/testing/pypy3/0001-time.patch
@@ -0,0 +1,10 @@
+--- a/pypy/module/cpyext/include/Python.h.orig
++++ b/pypy/module/cpyext/include/Python.h
+@@ -14,6 +14,7 @@
+ # include <math.h>
+ # include <errno.h>
+ # include <unistd.h>
++# include <sys/time.h>
+ #else
+ # ifdef _MSC_VER
+ # include <crtdefs.h>
diff --git a/testing/pypy3/0002-extern-stdio.patch b/testing/pypy3/0002-extern-stdio.patch
new file mode 100644
index 00000000000..1889215549a
--- /dev/null
+++ b/testing/pypy3/0002-extern-stdio.patch
@@ -0,0 +1,11 @@
+--- a/rpython/rtyper/lltypesystem/rffi.py 2021-10-12 13:51:19.679004256 +0200
++++ b/rpython/rtyper/lltypesystem/rffi.py 2021-10-12 13:51:39.411425448 +0200
+@@ -693,7 +693,7 @@
+ c_setter = "void %(setter_name)s (%(c_type)s v) { %(name)s = v; }" % locals()
+
+ lines = ["#include <%s>" % i for i in eci.includes]
+- if declare_as_extern:
++ if declare_as_extern and name not in ['stdin', 'stdout', 'stderr']:
+ lines.append('extern %s %s;' % (c_type, name))
+ lines.append(c_getter)
+ if not getter_only:
diff --git a/testing/pypy3/APKBUILD b/testing/pypy3/APKBUILD
new file mode 100644
index 00000000000..5322f6e6f83
--- /dev/null
+++ b/testing/pypy3/APKBUILD
@@ -0,0 +1,135 @@
+# Maintainer: Thomas Liske <thomas@fiasko-nw.net>
+pkgname=pypy3
+pkgver=7.3.12
+_pkgver=${pkgver/_/}
+_pyver=3.10
+pkgrel=0
+pkgdesc="Fast, compliant alternative implementation of Python $_pyver"
+url="https://www.pypy.org/"
+arch="x86 x86_64 aarch64 s390x"
+license="MIT"
+makedepends="
+ bzip2-dev
+ expat-dev
+ gdbm-dev
+ libffi-dev
+ linux-headers
+ ncurses-dev
+ openssl-dev>3
+ pypy
+ readline-dev
+ sqlite-dev
+ tk-dev
+ util-linux-misc
+ xz-dev
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-tests $pkgname-tkinter $pkgname-pyc"
+source="https://downloads.python.org/pypy/pypy$_pyver-v$_pkgver-src.tar.bz2
+ 0001-time.patch
+ 0002-extern-stdio.patch
+ "
+builddir="$srcdir/pypy$_pyver-v$_pkgver-src"
+options="!check" # todo
+
+[ "$CARCH" = "x86" ] && options="$options textrels" # on x86 has textrels
+
+build() {
+ if [ "$JOBS" -gt 16 ]; then
+ export JOBS=16
+ fi
+
+ msg "building pypy3"
+ pypy rpython/bin/rpython --opt=jit --shared --make-jobs=${JOBS:-2} pypy/goal/targetpypystandalone.py
+
+ msg "configuring system dirs"
+ ./pypy3.10-c -m sysconfig --generate-posix-vars \
+ LIBDIR=/usr/lib \
+ TZPATH=/usr/share/zoneinfo \
+ INCLUDEPY=/usr/include/pypy$_pyver
+
+ local out="$(cat pybuilddir.txt)"
+ cp "$out"/_sysconfigdata__*.py lib-python/3/
+
+ msg "generating pattern pickles"
+ ./pypy$_pyver-c - <<-EOF
+ import lib2to3.pygram
+ import lib2to3.patcomp
+ lib2to3.patcomp.PatternCompiler()
+ EOF
+
+ msg "compiling binary modules"
+ ./pypy$_pyver-c lib_pypy/pypy_tools/build_cffi_imports.py
+
+ # cleanup pypy libdir
+ find lib_pypy -name "*_cffi.[co]" -delete
+ find lib_pypy -type d -empty -delete
+}
+
+check() {
+ ./pypy$_pyver-c -u pypy/test_all.py \
+ pypy/module/pypyjit/test_pypy_c
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/lib/pypy$_pyver "$pkgdir"/usr/include
+
+ # install stdlib
+ # this puts everything just like python itself does
+ cp -a lib-python/3/. lib_pypy/. "$pkgdir"/usr/lib/pypy$_pyver/
+
+ # install includes
+ cp -a include/pypy$_pyver "$pkgdir"/usr/include/
+
+ # install pypy itself
+ install -Dm755 ./pypy$_pyver-c -t "$pkgdir"/usr/bin
+ install -Dm755 ./libpypy$_pyver-c.so -t "$pkgdir"/usr/lib/
+
+ # install symlink
+ ln -sfv pypy$_pyver-c "$pkgdir"/usr/bin/pypy3
+
+ # allow fail for 2to3 module
+ ./pypy$_pyver-c -m compileall -fq "$pkgdir"/usr/lib || true
+}
+
+dev() {
+ default_dev
+
+ # pyconfig.h is needed at runtime
+ mkdir -p "$pkgdir"/usr/include/pypy$_pyver
+ mv "$subpkgdir"/usr/include/pypy$_pyver/pyconfig.h \
+ "$pkgdir"/usr/include/pypy$_pyver/
+}
+
+tests() {
+ pkgdesc="$pkgdesc (test module)"
+
+ amove \
+ usr/lib/pypy$_pyver/test \
+ usr/lib/pypy$_pyver/*/test \
+ usr/lib/pypy$_pyver/*/tests
+}
+
+pyc() {
+ pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
+ install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"
+
+ cd "$pkgdir"
+ local IFS='
+'
+ # shellcheck disable=2046
+ amove $(find usr/lib/pypy$_pyver -type d -name __pycache__)
+}
+
+tkinter() {
+ pkgdesc="$pkgdesc (tkinter module)"
+
+ amove usr/lib/pypy$_pyver/_tkinter \
+ usr/lib/pypy$_pyver/tkinter
+}
+
+sha512sums="
+080520c7de267e17a2823f06cd0a15c108a2c32fc296d6e24782050eb546fa74852d948ede2c381dba110774121b20efc3a07b553acd0ac0db4a844dfc09069e pypy3.10-v7.3.12-src.tar.bz2
+42abc8c67c249ff012010aec568579cd738ed2d74ffdf93755c9427117e85cd859390266c7431fcb4d2fcfd82b61d5ba0c58bd0ceda44e5d12bf22df5935bb24 0001-time.patch
+b648204914072e74367b94065d65b423324bcbabc0e2199ad195ab9822ccc6c51ec552c8c17ed22c26caf73b04d16d6f4c3e14a8d1af0e378d76d6c3b587b784 0002-extern-stdio.patch
+"
diff --git a/testing/pypykatz/APKBUILD b/testing/pypykatz/APKBUILD
new file mode 100644
index 00000000000..5363e619b11
--- /dev/null
+++ b/testing/pypykatz/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=pypykatz
+pkgver=0.6.9
+pkgrel=1
+pkgdesc="Python implementation of Mimikatz"
+url="https://github.com/skelsec/pypykatz"
+arch="noarch"
+license="MIT"
+depends="
+ py3-aesedb
+ py3-aiosmb
+ py3-aiowinreg
+ py3-minidump
+ py3-minikerberos
+ py3-msldap
+ py3-tqdm
+ py3-unicrypto
+ py3-winacl
+ python3
+ "
+makedepends="
+ py3-gpep517
+ py3-wheel
+ py3-setuptools
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/skelsec/pypykatz/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+ac2c64424c1352c45c667116acf65c5aff9976db92f2f8a678b2e578410073484b4ae7e787e03f84d349f4b6277fa3927f2b2b471800a2fa193c007a5a90d1aa pypykatz-0.6.9.tar.gz
+"
diff --git a/testing/pyradio/APKBUILD b/testing/pyradio/APKBUILD
new file mode 100644
index 00000000000..a75c5e03743
--- /dev/null
+++ b/testing/pyradio/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=pyradio
+pkgver=0.9.2.25
+pkgrel=1
+pkgdesc="Curses based internet radio player"
+url="https://www.coderholic.com/pyradio"
+arch="noarch"
+license="MIT"
+depends="
+ python3
+ py3-dateutil
+ py3-dnspython
+ py3-netifaces
+ py3-psutil
+ py3-requests
+ py3-rich
+ "
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
+options="!check" # no testsuite
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/coderholic/pyradio/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ sed -i 's/^distro = None$/distro = AlpineLinux/' pyradio/config
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ install -Dm644 devel/pyradio.png \
+ -t "$pkgdir"/usr/share/icons/hicolor/512x512/apps/
+ install -Dm644 devel/pyradio.desktop \
+ -t "$pkgdir"/usr/share/applications/
+
+ install -Dm644 docs/pyradio*.1 \
+ -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 docs/*.md \
+ -t "$pkgdir"/usr/share/doc/$pkgname/
+}
+
+sha512sums="
+103c89754310a04d952ab962d5bef92e057de65f84394b3f040804fae2ae848a91b6fd3f5bfdfcc587ae495e569efe36ee2179d5f4d5ea03989480c55b7b599b pyradio-0.9.2.25.tar.gz
+"
diff --git a/testing/qbittorrent-cli/APKBUILD b/testing/qbittorrent-cli/APKBUILD
new file mode 100644
index 00000000000..a206b320c11
--- /dev/null
+++ b/testing/qbittorrent-cli/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=qbittorrent-cli
+pkgver=2.0.0
+pkgrel=3
+pkgdesc="Cli to manage qBittorrent"
+url="https://github.com/ludviglundgren/qbittorrent-cli"
+arch="all"
+license="MIT"
+makedepends="go"
+source="https://github.com/ludviglundgren/qbittorrent-cli/archive/v$pkgver/qbittorrent-cli-$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make build
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/qbt "$pkgdir"/usr/bin/qbt
+}
+
+sha512sums="
+7f88322d6f46cf2c48d0eb4ae50ff5ce39893b42e210f68fa7320671f5f50217430a0d1d90118d2cf0f417ce15a8b16cf1de7ad3c937d6118a9eee5e2fbbcebc qbittorrent-cli-2.0.0.tar.gz
+"
diff --git a/testing/qbittorrent-nox/APKBUILD b/testing/qbittorrent-nox/APKBUILD
deleted file mode 100644
index 19189b57fb0..00000000000
--- a/testing/qbittorrent-nox/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Jan Tatje <jan@jnt.io>
-# Maintainer: Jan Tatje <jan@jnt.io>
-pkgname=qbittorrent-nox
-pkgver=4.2.5
-pkgrel=0
-pkgdesc="qBittorrent client (webui only)"
-url="https://www.qbittorrent.org/"
-arch="all"
-license="GPL-2.0-or-later"
-options="!check" # qBittorrent has no tests
-makedepends="boost-dev qt5-qtbase-dev qt5-qttools-dev libtorrent-rasterbar-dev"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/qbittorrent/qBittorrent/archive/release-$pkgver.tar.gz
- qbittorrent-nox.initd
- qbittorrent-nox.confd
- "
-builddir="$srcdir/qBittorrent-release-$pkgver"
-
-# secfixes:
-# 4.1.6-r3:
-# - CVE-2019-13640
-
-build() {
- ./configure \
- --prefix=/usr \
- --disable-gui \
- --disable-qt-dbus
- make
-}
-
-package() {
- make INSTALL_ROOT="$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="8808029bdb3a1638fcf792e92c36bd39889dbc2ceb26c8d45ff17b086bd076f0b3a8ed78dd6a1e3debd32e5b0ce212eea194ec601210ae29093cfb567eb4ca0f qbittorrent-nox-4.2.5.tar.gz
-310df13ca8249e2ed57b7490ffa8f6beb0b273d856a62eeb87d47b7c20c531224c03c07124c3b9ac287c00dd9c139180c39933ee33dcb1a8a6ec1f67605dcede qbittorrent-nox.initd
-999e58bcf0a528f88655611cb7d0ec2bd5f0a1aed1696b71be27e24a1708112540afa7fb37688ec865de1d9c7af6e7a2293773790bd8941bb94a1dc1f9ebe95e qbittorrent-nox.confd"
diff --git a/testing/qbittorrent-nox/qbittorrent-nox.confd b/testing/qbittorrent-nox/qbittorrent-nox.confd
deleted file mode 100644
index f216b14f281..00000000000
--- a/testing/qbittorrent-nox/qbittorrent-nox.confd
+++ /dev/null
@@ -1,3 +0,0 @@
-#qbittorrent
-
-qbittorrent_opts=""
diff --git a/testing/qbittorrent-nox/qbittorrent-nox.initd b/testing/qbittorrent-nox/qbittorrent-nox.initd
deleted file mode 100644
index cac8e5e3415..00000000000
--- a/testing/qbittorrent-nox/qbittorrent-nox.initd
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/sbin/openrc-run
-
-# init.d file for qbittorrent-nox.
-
-name=qbittorrent-nox
-user=qbittorrent
-group=qbittorrent
-command="/usr/bin/$name"
-command_args="-d $qbittorrent_opts"
-
-start_stop_daemon_args="--user $user:$group"
-
-depend() {
- need net
- after firewall
-}
diff --git a/testing/qbittorrent-nox/qbittorrent-nox.pre-install b/testing/qbittorrent-nox/qbittorrent-nox.pre-install
deleted file mode 100644
index 87016a22330..00000000000
--- a/testing/qbittorrent-nox/qbittorrent-nox.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S qbittorrent 2>/dev/null
-adduser -S -D -h /var/lib/qbittorrent -s /sbin/nologin -G qbittorrent -g qbittorrent qbittorrent 2>/dev/null
-
-exit 0
diff --git a/testing/qdjango/APKBUILD b/testing/qdjango/APKBUILD
new file mode 100644
index 00000000000..3fdd69262e9
--- /dev/null
+++ b/testing/qdjango/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=qdjango
+pkgver=0.6.2
+pkgrel=0
+pkgdesc="Qt-based C++ web framework"
+url="https://github.com/jlaine/qdjango"
+arch="all"
+license="LGPL-2.1-or-later"
+depends_dev="qt5-qtdeclarative-dev"
+makedepends="
+ $depends_dev
+ doxygen
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/jlaine/qdjango/archive/v$pkgver.tar.gz
+ no_docs_tests.patch
+ "
+subpackages="$pkgname-dev"
+
+build() {
+ qmake-qt5 PREFIX=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+sha512sums="
+0280b09f0740ca7e70f62e36ea9e5bb648fe6d3ba1492e59f8c956df163c6db2338ea735e0b7937ee6e417f503a510eedf983ec6dc9744021a0c83a9432aa33f qdjango-0.6.2.tar.gz
+4c18534ded97db3793679f46828ad212105db4fa4018def98157ce12579245a9feecd7570ef3c958c59dd4bd9e9dc6d5b09070bd8ce4f5872784cb7f60b402e5 no_docs_tests.patch
+"
diff --git a/testing/qdjango/no_docs_tests.patch b/testing/qdjango/no_docs_tests.patch
new file mode 100644
index 00000000000..ccb22c89135
--- /dev/null
+++ b/testing/qdjango/no_docs_tests.patch
@@ -0,0 +1,14 @@
+diff --git a/qdjango.pro b/qdjango.pro
+index e9b6a08..d00c3c2 100644
+--- a/qdjango.pro
++++ b/qdjango.pro
+@@ -6,8 +6,7 @@ SUBDIRS = src
+
+ android {
+ } else {
+- SUBDIRS += tests examples
+- INSTALLS += htmldocs
++ SUBDIRS += examples
+ }
+
+ CONFIG += ordered
diff --git a/testing/qflipper/APKBUILD b/testing/qflipper/APKBUILD
new file mode 100644
index 00000000000..4375ec791c1
--- /dev/null
+++ b/testing/qflipper/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
+# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
+pkgname=qflipper
+pkgver=1.3.3
+pkgrel=0
+_nanopb=0.4.8
+_libwdi=1.5.0
+pkgdesc="Flipper Zero firmware updater"
+url="https://update.flipperzero.one/"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ chrpath
+ libusb-dev
+ qt6-qt5compat-dev
+ qt6-qtbase-dev
+ qt6-qtdeclarative-dev
+ qt6-qtserialport-dev
+ qt6-qtsvg-dev
+ qt6-qttools-dev
+ qt6-qtwayland-dev
+ zlib-dev
+ "
+subpackages="$pkgname-gui"
+source="$pkgname-$pkgver.tar.gz::https://github.com/flipperdevices/qFlipper/archive/refs/tags/$pkgver.tar.gz
+ nanopb-$_nanopb.tar.gz::https://github.com/nanopb/nanopb/archive/$_nanopb.tar.gz
+ libwdi-$_libwdi.tar.gz::https://github.com/pbatard/libwdi/archive/v$_libwdi.tar.gz
+ "
+builddir="$srcdir/qFlipper-$pkgver"
+options="!check" # no suite
+
+prepare() {
+ default_prepare
+
+ mkdir -p build
+
+ rmdir 3rdparty/nanopb
+ ln -sfv "$srcdir"/nanopb-$_nanopb 3rdparty/nanopb
+ rmdir driver-tool/libwdi
+ ln -sfv "$srcdir"/libwdi-$_libwdi driver-tool/libwdi
+}
+
+build() {
+ cd build
+
+ qmake6 ../qFlipper.pro \
+ PREFIX=/usr \
+ -spec linux-g++ \
+ CONFIG+=qtquickcompiler \
+ INSTALLS.CONFIG+=nostrip \
+ QMAKE_CFLAGS="$CFLAGS" \
+ QMAKE_CXXFLAGS="$CXXFLAGS" \
+ QMAKE_LFLAGS="$LDFLAGS" \
+ DEFINES+=DISABLE_APPLICATION_UPDATES
+
+ make
+}
+
+package() {
+ make -C build INSTALL_ROOT="$pkgdir" install
+
+ # TODO: how to make qmake not do this
+ chrpath -d "$pkgdir"/usr/bin/*
+ chrpath -d "$pkgdir"/usr/lib/qFlipper/plugins/libflipperproto0.so
+}
+
+gui() {
+ pkgdesc="$pkgdesc (qt6 gui)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove \
+ usr/bin/qFlipper \
+ usr/share
+}
+
+sha512sums="
+55f19517982dbcc52f586bafd1c6f3d9acc9c81c29e3f42bc4e4d2f09c962b976bfb97406e20c7a126b9f555b2e6b6e420fa94cd97b07877d00ef74e425e6751 qflipper-1.3.3.tar.gz
+635577498dfbfb46fd64b8ec83b2a4a9b03b57c665f3c9f67d35c272810c0330b0e9011d7c0e43623e9da74d6ee3a4c1f012878e2bff7e1a7e57fb7c0857ad42 nanopb-0.4.8.tar.gz
+a70dbf1652228d2fc27968b76c0b92a737c29a3ad6dbc4494a0f6ebd39a539f5155c02e4aaeb437a3b4ba017e61e5e297776163ae94b838a753d467de37b7c0c libwdi-1.5.0.tar.gz
+"
diff --git a/testing/qgis/10-exiv2-0.28.patch b/testing/qgis/10-exiv2-0.28.patch
new file mode 100644
index 00000000000..52044ed4a04
--- /dev/null
+++ b/testing/qgis/10-exiv2-0.28.patch
@@ -0,0 +1,37 @@
+From 32f5418fc4f7bb2ee986dee1824ff2989c113a94 Mon Sep 17 00:00:00 2001
+From: Antonio Rojas <arojas@archlinux.org>
+Date: Sun, 9 Jul 2023 10:01:49 +0200
+Subject: [PATCH] Fix build with exiv2 0.28
+
+---
+ src/core/raster/qgsexiftools.cpp | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/src/core/raster/qgsexiftools.cpp b/src/core/raster/qgsexiftools.cpp
+index 7fa270984557..f883d7960c68 100644
+--- a/src/core/raster/qgsexiftools.cpp
++++ b/src/core/raster/qgsexiftools.cpp
+@@ -94,7 +94,11 @@
+ case Exiv2::signedLong:
+ case Exiv2::unsignedLongLong:
+ case Exiv2::signedLongLong:
++#if EXIV2_TEST_VERSION (0, 28, 0)
++ val = QVariant::fromValue( it->toUint32() );
++#else
+ val = QVariant::fromValue( it->toLong() );
++#endif
+ break;
+
+ case Exiv2::tiffDouble:
+@@ -108,7 +112,11 @@
+ case Exiv2::signedByte:
+ case Exiv2::tiffIfd:
+ case Exiv2::tiffIfd8:
++#if EXIV2_TEST_VERSION (0, 28, 0)
++ val = QVariant::fromValue( static_cast< int >( it->toUint32() ) );
++#else
+ val = QVariant::fromValue( static_cast< int >( it->toLong() ) );
++#endif
+ break;
+
+ case Exiv2::date:
diff --git a/testing/qgis/20-protobuf-23.patch b/testing/qgis/20-protobuf-23.patch
new file mode 100644
index 00000000000..eeea2f2fdc3
--- /dev/null
+++ b/testing/qgis/20-protobuf-23.patch
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 48a34626b0..e2b5cca718 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -366,7 +366,9 @@
+ message (SEND_ERROR "sqlite3 dependency was not found!")
+ endif()
+
+- find_package(Protobuf REQUIRED) # for decoding of vector tiles in MVT format
++ find_package(Protobuf CONFIG REQUIRED) # for decoding of vector tiles in MVT format
++ find_package(Protobuf) # for protobuf_generate_cpp
++ set(Protobuf_LITE_LIBRARY protobuf::libprotobuf-lite)
+ message(STATUS "Found Protobuf: ${Protobuf_LIBRARIES}")
+ if (NOT Protobuf_PROTOC_EXECUTABLE)
+ message (SEND_ERROR "Protobuf library's 'protoc' tool was not found!")
diff --git a/testing/qgis/30-qgstyle-infinite-loop.patch b/testing/qgis/30-qgstyle-infinite-loop.patch
new file mode 100644
index 00000000000..20cf95a59d2
--- /dev/null
+++ b/testing/qgis/30-qgstyle-infinite-loop.patch
@@ -0,0 +1,61 @@
+From 19823b76c27c3bfbff1d111cf09af948e8db4367 Mon Sep 17 00:00:00 2001
+From: PeterPetrik <zilolv@gmail.com>
+Date: Fri, 2 Jul 2021 14:40:59 +0200
+Subject: [PATCH] fix infinite loop in qgsstyle
+
+---
+ src/core/symbology/qgsstyle.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/core/symbology/qgsstyle.cpp b/src/core/symbology/qgsstyle.cpp
+index 6ca37dde3a15..c87305b3c8fa 100644
+--- a/src/core/symbology/qgsstyle.cpp
++++ b/src/core/symbology/qgsstyle.cpp
+@@ -2753,6 +2753,7 @@
+ if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
+ {
+ // skip the symbol, should already be present
++ e = e.nextSiblingElement();
+ continue;
+ }
+
+@@ -2807,6 +2808,7 @@
+ if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
+ {
+ // skip the ramp, should already be present
++ e = e.nextSiblingElement();
+ continue;
+ }
+
+@@ -2855,6 +2857,7 @@
+ if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
+ {
+ // skip the format, should already be present
++ e = e.nextSiblingElement();
+ continue;
+ }
+
+@@ -2899,6 +2902,7 @@
+ if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
+ {
+ // skip the settings, should already be present
++ e = e.nextSiblingElement();
+ continue;
+ }
+
+@@ -2944,6 +2948,7 @@
+ if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
+ {
+ // skip the shape, should already be present
++ e = e.nextSiblingElement();
+ continue;
+ }
+
+@@ -2988,6 +2993,7 @@
+ if ( entityAddedVersion != 0 && sinceVersion != -1 && entityAddedVersion <= sinceVersion )
+ {
+ // skip the symbol, should already be present
++ e = e.nextSiblingElement();
+ continue;
+ }
+
diff --git a/testing/qgis/40-pdal.patch b/testing/qgis/40-pdal.patch
new file mode 100644
index 00000000000..7b5270a5039
--- /dev/null
+++ b/testing/qgis/40-pdal.patch
@@ -0,0 +1,176 @@
+From 021f919f241806be566dce0a37ce84a56774eb84 Mon Sep 17 00:00:00 2001
+From: Nicklas Larsson <n_larsson@yahoo.com>
+Date: Tue, 17 Oct 2023 12:47:14 +0200
+Subject: [PATCH] cmake: update to find PDAL 2.6+
+
+With PDAL 2.6 the 'pdal_util' library is removed as a separate library
+and hence part of the 'pdalcpp' library.
+---
+ cmake/FindPDAL.cmake | 35 ++++++++++++++++++++++++++-----
+ cmake_templates/qgsconfig.h.in | 2 +-
+ python/CMakeLists.txt | 4 ----
+ src/app/CMakeLists.txt | 7 ++-----
+ src/core/CMakeLists.txt | 9 ++------
+ src/gui/CMakeLists.txt | 7 ++-----
+ src/providers/pdal/CMakeLists.txt | 5 -----
+ tests/src/core/CMakeLists.txt | 4 ----
+ 8 files changed, 37 insertions(+), 36 deletions(-)
+
+diff --git a/cmake/FindPDAL.cmake b/cmake/FindPDAL.cmake
+index 1899d26de5ff..d1de5c8dccba 100644
+--- a/cmake/FindPDAL.cmake
++++ b/cmake/FindPDAL.cmake
+@@ -7,8 +7,7 @@
+ # CMake module to search for PDAL library
+ #
+ # If it's found it sets PDAL_FOUND to TRUE
+-# and following variables are set:
+-# PDAL_INCLUDE_DIR
++# and adds the following variable containing library target(s):
+ # PDAL_LIBRARIES
+
+ # FIND_PATH and FIND_LIBRARY normally search standard locations
+@@ -18,6 +17,22 @@
+ # locations. When an earlier FIND_* succeeds, subsequent FIND_*s
+ # searching for the same item do nothing.
+
++find_package(PDAL CONFIG)
++
++if(PDAL_FOUND)
++ if(NOT PDAL_FIND_QUIETLY)
++ message(STATUS "Found PDAL: ${PDAL_LIBRARIES} (${PDAL_VERSION})")
++ endif()
++
++ if(PDAL_VERSION VERSION_LESS "1.7.0")
++ message(FATAL_ERROR "PDAL version is too old (${PDAL_VERSION}). Use 1.7 or higher.")
++ endif()
++
++ return()
++endif()
++
++# Fallback for systems where PDAL's config-file package is not present.
++# It is not adapted for PDAL 2.6+ (where pdal_util library is removed).
+ FIND_PATH(PDAL_INCLUDE_DIR pdal/pdal.hpp
+ "$ENV{LIB_DIR}/include"
+ "/usr/include"
+@@ -50,7 +65,7 @@ FIND_PROGRAM(PDAL_BIN pdal)
+
+ IF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY AND PDAL_BIN)
+ SET(PDAL_FOUND TRUE)
+- SET(PDAL_LIBRARIES ${PDAL_CPP_LIBRARY} ${PDAL_UTIL_LIBRARY})
++ SET(PDAL_LIBRARIES pdalcpp pdal_util)
+ ENDIF (PDAL_INCLUDE_DIR AND PDAL_CPP_LIBRARY AND PDAL_UTIL_LIBRARY AND PDAL_BIN)
+
+ IF (PDAL_FOUND)
+@@ -60,8 +75,8 @@ IF (PDAL_FOUND)
+ OUTPUT_VARIABLE PDAL_VERSION_OUT )
+ STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\1" PDAL_VERSION_MAJOR "${PDAL_VERSION_OUT}")
+ STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\2" PDAL_VERSION_MINOR "${PDAL_VERSION_OUT}")
+- STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\3" PDAL_VERSION_MICRO "${PDAL_VERSION_OUT}")
+- STRING(CONCAT PDAL_VERSION ${PDAL_VERSION_MAJOR} "." ${PDAL_VERSION_MINOR} "." ${PDAL_VERSION_MICRO})
++ STRING(REGEX REPLACE "^.*([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\3" PDAL_VERSION_PATCH "${PDAL_VERSION_OUT}")
++ STRING(CONCAT PDAL_VERSION ${PDAL_VERSION_MAJOR} "." ${PDAL_VERSION_MINOR} "." ${PDAL_VERSION_PATCH})
+
+ IF (NOT PDAL_FIND_QUIETLY)
+ MESSAGE(STATUS "Found PDAL: ${PDAL_LIBRARIES} (${PDAL_VERSION})")
+@@ -71,6 +86,16 @@ IF (PDAL_FOUND)
+ MESSAGE (FATAL_ERROR "PDAL version is too old (${PDAL_VERSION}). Use 1.7 or higher.")
+ ENDIF()
+
++ add_library(pdalcpp UNKNOWN IMPORTED)
++ target_link_libraries(pdalcpp INTERFACE ${PDAL_CPP_LIBRARY})
++ target_include_directories(pdalcpp INTERFACE ${PDAL_INCLUDE_DIR})
++ set_target_properties(pdalcpp PROPERTIES IMPORTED_LOCATION ${PDAL_CPP_LIBRARY})
++
++ add_library(pdal_util UNKNOWN IMPORTED)
++ target_link_libraries(pdal_util INTERFACE ${PDAL_UTIL_LIBRARY})
++ target_include_directories(pdal_util INTERFACE ${PDAL_INCLUDE_DIR})
++ set_target_properties(pdal_util PROPERTIES IMPORTED_LOCATION ${PDAL_UTIL_LIBRARY})
++
+ ELSE (PDAL_FOUND)
+ IF (PDAL_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find PDAL")
+diff --git a/cmake_templates/qgsconfig.h.in b/cmake_templates/qgsconfig.h.in
+index 628a9c9b6aa1..800e65d3cfda 100644
+--- a/cmake_templates/qgsconfig.h.in
++++ b/cmake_templates/qgsconfig.h.in
+@@ -110,7 +110,7 @@
+ #define PDAL_VERSION_MINOR_INT ${PDAL_VERSION_MINOR}
+ #define PDAL_VERSION_MAJOR "${PDAL_VERSION_MAJOR}"
+ #define PDAL_VERSION_MINOR "${PDAL_VERSION_MINOR}"
+-#define PDAL_VERSION_MICRO "${PDAL_VERSION_MICRO}"
++#define PDAL_VERSION_MICRO "${PDAL_VERSION_PATCH}"
+
+ #cmakedefine HAVE_DRACO
+
+diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
+index 64f2cfd10355..71c26df216df 100644
+--- a/src/app/CMakeLists.txt
++++ b/src/app/CMakeLists.txt
+@@ -482,11 +482,8 @@ if(HAVE_OPENCL)
+ include_directories(SYSTEM ${OpenCL_INCLUDE_DIRS})
+ endif()
+
+-if (WITH_PDAL)
+- include_directories(SYSTEM ${PDAL_INCLUDE_DIR})
+- if(MSVC)
+- add_definitions(-DWIN32_LEAN_AND_MEAN)
+- endif()
++if (WITH_PDAL AND MSVC)
++ add_definitions(-DWIN32_LEAN_AND_MEAN)
+ endif()
+
+ if(ENABLE_MODELTEST)
+diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
+index 869428249e98..1f891d96e7a7 100644
+--- a/src/core/CMakeLists.txt
++++ b/src/core/CMakeLists.txt
+@@ -2093,13 +2093,8 @@ if (${QT_VERSION_BASE}Positioning_FOUND)
+ )
+ endif()
+
+-if (WITH_PDAL)
+- include_directories(SYSTEM
+- ${PDAL_INCLUDE_DIR}
+- )
+- if(MSVC)
+- add_definitions(-DWIN32_LEAN_AND_MEAN)
+- endif()
++if (WITH_PDAL AND MSVC)
++ add_definitions(-DWIN32_LEAN_AND_MEAN)
+ endif()
+
+ if (HAVE_OPENCL)
+diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
+index 016da19d4b83..708858399e0e 100644
+--- a/src/gui/CMakeLists.txt
++++ b/src/gui/CMakeLists.txt
+@@ -1599,11 +1599,8 @@ if (BUILD_WITH_QT6)
+ )
+ endif()
+
+-if (WITH_PDAL)
+- include_directories(SYSTEM ${PDAL_INCLUDE_DIR})
+- if(MSVC)
+- add_definitions(-DWIN32_LEAN_AND_MEAN)
+- endif()
++if (WITH_PDAL AND MSVC)
++ add_definitions(-DWIN32_LEAN_AND_MEAN)
+ endif()
+
+ target_include_directories(qgis_gui PUBLIC
+diff --git a/src/providers/pdal/CMakeLists.txt b/src/providers/pdal/CMakeLists.txt
+index 38509d1c235b..e8ea264e5597 100644
+--- a/src/providers/pdal/CMakeLists.txt
++++ b/src/providers/pdal/CMakeLists.txt
+@@ -149,10 +149,6 @@ include_directories(
+ ${CMAKE_SOURCE_DIR}/external/untwine/api
+ )
+
+-include_directories(SYSTEM
+- ${PDAL_INCLUDE_DIR}
+-)
+-
+ add_executable(untwine ${UNTWINE_SRCS} ${UNTWINE_HDRS})
+ target_compile_features(untwine PRIVATE cxx_std_17)
+
diff --git a/testing/qgis/APKBUILD b/testing/qgis/APKBUILD
new file mode 100644
index 00000000000..970d36bc9eb
--- /dev/null
+++ b/testing/qgis/APKBUILD
@@ -0,0 +1,337 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=qgis
+pkgver=3.28.12
+pkgrel=3
+pkgdesc="Geographic Information System (GIS) that supports vector, raster & database formats"
+url="https://qgis.org/"
+# armhf: py3-qscintilla qt5-qt3d-dev qt5-qtlocation-dev missing
+# ppc64le and riscv64: qt5-qtwebengine-dev missing
+# s390x: grass-gis-dev netcdf-dev qt5-qtwebengine-dev missing
+arch="all !armhf !ppc64le !riscv64 !s390x"
+license="GPL-2.0-or-later"
+depends="font-opensans font-cantarell qt5-qtbase-sqlite postgresql-client"
+makedepends="
+ bison
+ cmake
+ exiv2-dev
+ expat-dev
+ fcgi-dev
+ flex
+ gdal-dev
+ geos-dev
+ gsl-dev
+ grass-gis-dev
+ hdf5-dev
+ hdf5-static
+ libspatialindex-dev
+ libspatialite-dev
+ libzip-dev
+ netcdf-dev
+ opencl-dev
+ pdal-dev
+ postgresql-dev
+ proj-dev
+ protobuf-dev
+ py3-ply
+ py3-pyqt-builder
+ py3-qscintilla
+ py3-qt5
+ py3-sip
+ python3-dev
+ qca-dev
+ qscintilla-dev
+ qt5-qt3d-dev
+ qt5-qtbase-dev
+ qt5-qtlocation-dev
+ qt5-qtmultimedia-dev
+ qt5-qtserialport-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ qt5-qtwebengine-dev
+ qtkeychain-dev
+ qwt-dev
+ samurai
+ sqlite-dev
+ unixodbc-dev
+ yarn
+ "
+checkdepends="py3-nose2 py3-yaml py3-gdal py3-psycopg2 py3-oauthlib py3-owslib gdal-tools gdal-driver-all py3-mock py3-termcolor qpdf poppler-utils xvfb-run firefox bash"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-lang
+ $pkgname-server
+ $pkgname-grass
+ py3-$pkgname:py3
+ "
+options="!check" # test failures on builders
+source="https://qgis.org/downloads/qgis-$pkgver.tar.bz2
+ 10-exiv2-0.28.patch
+ 20-protobuf-23.patch
+ 30-qgstyle-infinite-loop.patch
+ 40-pdal.patch
+ "
+langdir="/usr/share/qgis/i18n"
+
+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=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DQGIS_CGIBIN_SUBDIR=libexec/qgis \
+ -DBINDINGS_GLOBAL_INSTALL=TRUE \
+ -DBUILD_TESTING="$(want_check && echo TRUE || echo FALSE)" \
+ -DENABLE_TESTS="$(want_check && echo TRUE || echo FALSE)" \
+ -DWITH_3D=TRUE \
+ -DWITH_ANALYSIS=TRUE \
+ -DWITH_AUTH=TRUE \
+ -DWITH_BINDINGS=TRUE \
+ -DWITH_COPC=TRUE \
+ -DWITH_DESKTOP=TRUE \
+ -DWITH_EPT=TRUE \
+ -DWITH_GUI=TRUE \
+ -DWITH_GRASS8=TRUE \
+ -DGRASS_PREFIX8="$(pkg-config --variable=prefix grass)" \
+ -DWITH_HANA=TRUE \
+ -DWITH_ORACLE=FALSE \
+ -DWITH_PDAL=TRUE \
+ -DWITH_POSTGRESQL=TRUE \
+ -DWITH_QGIS_PROCESS=TRUE \
+ -DWITH_QSPATIALITE=TRUE \
+ -DWITH_SERVER=TRUE \
+ -DWITH_SERVER_LANDINGPAGE_WEBAPP=TRUE \
+ -DWITH_CUSTOM_WIDGETS=TRUE \
+ -DQGIS_MANUAL_SUBDIR=share/man \
+ -DWITH_QTWEBKIT=FALSE \
+ -DWITH_QWTPOLAR=TRUE \
+ -DQWTPOLAR_LIBRARY=/usr/lib/libqwt.so \
+ -DQWTPOLAR_INCLUDE_DIR=/usr/include/qwt \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -DQWT_POLAR_VERSION=0x060200" \
+ -DWITH_INTERNAL_QWTPOLAR=FALSE \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ local test_excludes="(
+ logGitStatus$|
+ checkGitStatus$|
+ ProcessingQgisAlgorithmsTestPt1$|
+ ProcessingQgisAlgorithmsTestPt4$|
+ ProcessingGdalAlgorithmsRasterTest$|
+ ProcessingGdalAlgorithmsVectorTest$|
+ ProcessingGrass7AlgorithmsImageryTest$|
+ ProcessingGrass7AlgorithmsRasterTestPt1$|
+ ProcessingGrass7AlgorithmsRasterTestPt2$|
+ ProcessingOtbAlgorithmsTest$|
+ test_core_authconfig$|
+ test_core_authmanager$|
+ test_core_blendmodes$|
+ test_core_compositionconverter$|
+ test_core_dataitem$|
+ test_core_dxfexport$|
+ test_core_expression$|
+ test_core_gdalprovider$|
+ test_core_gdalutils$|
+ test_core_labelingengine$|
+ test_core_layoutgeopdfexport$|
+ test_core_layoutmap$|
+ test_core_layoutmapoverview$|
+ test_core_layoutpicture$|
+ test_core_layouttable$|
+ test_core_maprendererjob$|
+ test_core_maprotation$|
+ test_core_overlayexpression$|
+ test_core_projectstorage$|
+ test_core_rasterlayer$|
+ test_core_rastersublayer$|
+ test_core_openclutils$|
+ test_core_coordinatereferencesystem$|
+ test_gui_filedownloader$|
+ test_gui_layoutgui$|
+ test_gui_queryresultwidget$|
+ test_3d_3drendering$|
+ test_analysis_processingalgspt2$|
+ test_analysis_processing$|
+ test_geometry_checker_geometrychecks$|
+ test_provider_wcsprovider$|
+ test_provider_eptprovider$|
+ test_app_gpsinformationwidget$|
+ PyQgsAnnotation$|
+ PyQgsAuthenticationSystem$|
+ PyQgsBlendModes$|
+ PyQgsBlockingProcess$|
+ PyQgsConnectionRegistry$|
+ PyQgsDatumTransform$|
+ PyQgsExpression$|
+ PyQgsExternalStorageWebDAV$|
+ PyQgsFillSymbolLayers$|
+ PyQgsFileUtils$|
+ PyQgsGeometryTest$|
+ PyQgsHashLineSymbolLayer$|
+ PyQgsInterpolatedLineSymbolLayer$|
+ PyQgsLayerMetadataProviderPython$|
+ PyQgsLayoutExporter$|
+ PyQgsLayoutHtml$|
+ PyQgsLayoutLegend$|
+ PyQgsLayoutMapOverview$|
+ PyQgsLineSymbolLayers$|
+ PyQgsMapClippingRegion$|
+ PyQgsMapLayerComboBox$|
+ PyQgsMapLayerProxyModel$|
+ PyQgsMapUnitScale$|
+ PyQgsMergedFeatureRenderer$|
+ PyQgsNoApplication$|
+ PyQgsPalLabelingPlacement$|
+ PyQgsProcessExecutablePt1$|
+ PyQgsProcessExecutablePt2$|
+ PyQgsProviderConnectionGpkg$|
+ PyQgsProviderConnectionSpatialite$|
+ PyQgsRasterFileWriter$|
+ PyQgsRasterLayerRenderer$|
+ PyQgsShapefileProvider$|
+ PyQgsSvgCache$|
+ PyQgsTextRenderer$|
+ PyQgsOGRProvider$|
+ PyQgsSpatialiteProvider$|
+ PyQgsStyleModel$|
+ PyQgsVectorFileWriter$|
+ PyQgsVectorLayerEditBuffer$|
+ PyQgsVectorLayerNamedStyle$|
+ PyQgsVectorLayerProfileGenerator$|
+ PyQgsDBManagerGpkg$|
+ PyQgsSelectiveMasking$|
+ PyQgsPalLabelingServer$|
+ PyQgsAppStartup$|
+ PyQgsServerWMS$|
+ PyQgsServerWMSGetFeatureInfo$|
+ PyQgsServerWMSGetMap$|
+ PyQgsServerWMSGetLegendGraphic$|
+ PyQgsServerWMSGetPrint$|
+ PyQgsServerWMSGetPrintExtra$|
+ PyQgsServerWMSGetPrintOutputs$|
+ PyQgsServerWMSDimension$|
+ PyQgsServerProjectUtils$|
+ PyQgsServerWFS$|
+ PyQgsServerLocaleOverride$|
+ PyQgsServerConfigCache$|
+ qgis_sipify$|
+ qgis_sip_include$|
+ qgis_sip_uptodate$|
+ ProcessingQgisAlgorithmsTestPt2$|
+ ProcessingQgisAlgorithmsTestPt3$|
+ ProcessingGrass7AlgorithmsVectorTest$|
+ test_core_application$|
+ test_core_callout$|
+ test_core_centroidfillsymbol$|
+ test_core_filledmarker$|
+ test_core_gradients$|
+ test_core_layoutitem$|
+ test_core_linefillsymbol$|
+ test_core_meshlayer$|
+ test_core_meshlayerrenderer$|
+ test_core_networkaccessmanager$|
+ test_core_pointcloudexpression$|
+ test_core_pointcloudlayerexporter$|
+ test_core_pointpatternfillsymbol$|
+ test_core_rastercontourrenderer$|
+ test_core_simplemarker$|
+ test_core_svgmarker$|
+ test_gui_processinggui$|
+ test_3d_layout3dmap$|
+ test_3d_tessellator$|
+ test_analysis_processingalgspt1$|
+ test_analysis_meshcalculator$|
+ test_analysis_meshcontours$|
+ test_analysis_triangulation$|
+ test_provider_wmsprovider$|
+ test_provider_copcprovider$|
+ qgis_grassprovidertest8$|
+ test_app_fieldcalculator$|
+ test_app_maptoolcircularstring$|
+ test_app_maptooleditmesh$|
+ test_app_vertextool$|
+ PyQgsAnimatedMarkerSymbolLayer$|
+ PyQgsEmbeddedSymbolRenderer$|
+ PyQgsExpressionBuilderWidget$|
+ PyQgsGdalProvider$|
+ PyQgsGroupLayer$|
+ PyQgsHistoryProviderRegistry$|
+ PyQgsLayoutMap$|
+ PyQgsLayoutPicture$|
+ PyQgsPalLabelingCanvas$|
+ PyQgsPalLabelingLayout$|
+ PyQgsPointCloudAttributeByRampRenderer$|
+ PyQgsPointCloudClassifiedRenderer$|
+ PyQgsPointCloudLayerProfileGenerator$|
+ PyQgsPointCloudRgbRenderer$|
+ PyQgsProcessingAlgRunner$|
+ TestQgsRandomMarkerSymbolLayer$|
+ PyQgsRasterLayer$|
+ PyQgsRasterResampler$|
+ PyQgsWFSProvider$|
+ PyQgsServerPlugins$|
+ PyQgsServerApi$|
+ test_core_tiledownloadmanager$|
+ test_app_qgisappclipboard$|
+ PyQgsServerCacheManager$
+ )"
+ local test_excludes_regexp
+ local testcase; for testcase in $test_excludes
+ do
+ test_excludes_regexp=$test_excludes_regexp$testcase
+ done
+ xvfb-run -a -s "-screen 0 1280x1024x24 -dpi 96" ctest -j 1 --test-dir build --output-on-failure --timeout 15000 -E $test_excludes_regexp
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+ amove usr/share/qgis/FindQGIS.cmake
+ amove usr/lib/qt5/plugins/designer/libqgis_customwidgets.so*
+}
+
+server() {
+ pkgdesc="FCGI-based OGC web map server"
+ amove usr/bin/qgis_mapserver
+ amove usr/lib/qgis/server
+ amove usr/lib/libqgis_server.so*
+ amove usr/libexec/qgis
+ amove usr/lib/python3*/site-packages/qgis/server
+ amove usr/lib/python3*/site-packages/qgis/_server.so
+ amove usr/share/qgis/resources/server
+}
+
+grass() {
+ pkgdesc="GRASS Support Libraries for QGIS"
+ amove usr/lib/libqgisgrass*.so.*
+ amove usr/lib/qgis/plugins/libplugin_grass8.so
+ amove usr/lib/qgis/plugins/libprovider_grass8.so
+ amove usr/lib/qgis/plugins/libprovider_grassraster8.so
+ amove usr/lib/qgis/grass/
+ amove usr/share/qgis/grass/
+}
+
+py3() {
+ pkgdesc="Python integration and plug-ins for QGIS"
+ depends="py3-owslib py3-pyaml py3-gdal py3-httplib2 py3-jinja2
+ py3-matplotlib py3-psycopg2 py3-pygments py3-qscintilla"
+ amove usr/lib/libqgispython.so*
+ amove usr/share/qgis/python/
+ amove usr/lib/python3*/site-packages/qgis/
+ amove usr/lib/python3*/site-packages/PyQt5/uic/widget-plugins/
+}
+
+sha512sums="
+0c5a095ba1c66391bc7feb5ac91595e4de29889c3921e6a6123a8446c85f5a81be32ef799e51c6483f795e2abd90367e05f6662a6eb6c76dea62488a41566cf7 qgis-3.28.12.tar.bz2
+47cec7b889a2b12f321e8727b06b5edc24a5bb5947dd98671a9aebbbd17adffa515769afcc0e05911a2754b36e78acf0cea2e074b1316beb48a72f78b860a43a 10-exiv2-0.28.patch
+a93bbd7655ded2aae734356ed06346f4508c7a9da916e424892abbdc88c8c1818bd53e818c1a5c41fb14f2bf9bc5309b11b331021ba44b5b4e530b942227ad79 20-protobuf-23.patch
+ab9fe3afac98abbec5007c9c9604c9e3bef5e576f695a8b0a73a5fe29b3c07baec3f46ef4503d4f1df8e5587735c7565ae583f312167bd9c7e20554f88bb0bff 30-qgstyle-infinite-loop.patch
+1beb94b0ccfd1f990c4cd2ed66793ac878526670c1295588539c026e214237c61a4f9f2d3474cbeb6f59f55138ab997fa4f02cf358f36687dd11666527d7616a 40-pdal.patch
+"
diff --git a/testing/qhull/APKBUILD b/testing/qhull/APKBUILD
deleted file mode 100644
index eac7832b218..00000000000
--- a/testing/qhull/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
-# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
-pkgname=qhull
-pkgver=2019.1
-_tarver=7.3.2
-pkgrel=0
-pkgdesc="Calculate convex hulls and related structures"
-url="https://www.qhull.org/"
-arch="all"
-license="custom"
-makedepends="cmake"
-subpackages="
- $pkgname-static
- $pkgname-dev
- $pkgname-doc
- "
-source="http://www.qhull.org/download/qhull-${pkgver%.*}-src-$_tarver.tgz"
-builddir="$srcdir/$pkgname-$pkgver/build"
-
-build() {
- cmake .. \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_SKIP_INSTALL_RPATH=YES
- make
-}
-
-check() {
- ctest
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="efcaf2af45f3c401f5f677cac8e3ffc056f870bf62f852982ca880282c428920fad13071017b8d8b7b6fc416380c6f3fe6973aa0b37a2322c234774325b14f1c qhull-2019-src-7.3.2.tgz"
diff --git a/testing/qmk-cli/APKBUILD b/testing/qmk-cli/APKBUILD
new file mode 100644
index 00000000000..0cb5927f5a4
--- /dev/null
+++ b/testing/qmk-cli/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Contributor: Nulo <alpine@nulo.in>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=qmk-cli
+pkgver=1.1.5
+pkgrel=1
+# latest change to util/udev/50-qmk.rules
+_qmk_firmware=d915ab59ac2d05062f931a36463c1a84b57a2438
+pkgdesc="QMK helper CLI"
+url="https://github.com/qmk/qmk_cli"
+# archs on which cross embedded compilers are available
+arch="x86_64 aarch64 ppc64le x86"
+license="MIT"
+depends="
+ avr-libc
+ avrdude
+ dfu-programmer
+ dfu-util
+ git
+ gcc-arm-none-eabi
+ gcc-avr
+ newlib-arm-none-eabi
+ py3-dotty-dict
+ py3-hidapi
+ py3-hjson
+ py3-jsonschema
+ py3-milc
+ py3-pillow
+ py3-pygments
+ py3-pyserial
+ py3-usb
+ "
+makedepends="py3-setuptools py3-gpep517 py3-installer py3-wheel"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/qmk/qmk_cli/archive/refs/tags/$pkgver.tar.gz
+ qmk-firmware-$_qmk_firmware.tar.gz::https://github.com/qmk/qmk_firmware/archive/$_qmk_firmware.tar.gz
+ add-plugdev.patch
+ "
+builddir="$srcdir/qmk_cli-$pkgver"
+
+prepare() {
+ mv "$srcdir"/qmk_firmware-$_qmk_firmware/util/udev/50-qmk.rules "$builddir"/
+ default_prepare
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+ install -Dm644 50-qmk.rules \
+ -t "$pkgdir"/usr/lib/udev/rules.d/
+}
+
+sha512sums="
+89ad029216b4c5ae38bc564f0d04c02565d7caca972a70491da8a84d43797e0f54d48de7bada1806baefbc471ae0fdfe886cc2bc0ea15b7186eaeaba2de621f0 qmk-cli-1.1.5.tar.gz
+2af187f8d5823a39d2eb5f350b93e94bc5546242cc0d4b5c71a403c1352020a41f296022f9c79bb8488a6555a00052a5f3d999018d264527ae0e24b2311be9c0 qmk-firmware-d915ab59ac2d05062f931a36463c1a84b57a2438.tar.gz
+96389af3a9db98b3904dfa9811f95a20bb9c763667af731eb23262ffca37bf153db59ce83afaee054e7bfbaae2011297aa347a1cd1cb9e3bc3f95348a0b1c5de add-plugdev.patch
+"
diff --git a/testing/qmk-cli/add-plugdev.patch b/testing/qmk-cli/add-plugdev.patch
new file mode 100644
index 00000000000..08a8baaa7a2
--- /dev/null
+++ b/testing/qmk-cli/add-plugdev.patch
@@ -0,0 +1,120 @@
+--- a/50-qmk.rules
++++ b/50-qmk.rules
+@@ -1,85 +1,85 @@
+ # Atmel DFU
+ ### ATmega16U2
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", GROUP="plugdev", TAG+="uaccess"
+ ### ATmega32U2
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", GROUP="plugdev", TAG+="uaccess"
+ ### ATmega16U4
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", GROUP="plugdev", TAG+="uaccess"
+ ### ATmega32U4
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", GROUP="plugdev", TAG+="uaccess"
+ ### AT90USB64
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", GROUP="plugdev", TAG+="uaccess"
+ ### AT90USB162
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", GROUP="plugdev", TAG+="uaccess"
+ ### AT90USB128
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", GROUP="plugdev", TAG+="uaccess"
+
+ # Input Club
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", GROUP="plugdev", TAG+="uaccess"
+
+ # STM32duino
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", GROUP="plugdev", TAG+="uaccess"
+ # STM32 DFU
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", GROUP="plugdev", TAG+="uaccess"
+
+ # BootloadHID
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", GROUP="plugdev", TAG+="uaccess"
+
+ # USBAspLoader
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="plugdev", TAG+="uaccess"
+
+ # USBtinyISP
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", GROUP="plugdev", TAG+="uaccess"
+
+ # ModemManager should ignore the following devices
+ # Atmel SAM-BA (Massdrop)
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+ # Caterina (Pro Micro)
+ ## pid.codes shared PID
+ ### Keyboardio Atreus 2 Bootloader
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Spark Fun Electronics
+ ### Pro Micro 3V3/8MHz
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### Pro Micro 5V/16MHz
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### LilyPad 3V3/8MHz (and some Pro Micro clones)
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Pololu Electronics
+ ### A-Star 32U4
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Arduino SA
+ ### Leonardo
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### Micro
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Adafruit Industries LLC
+ ### Feather 32U4
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### ItsyBitsy 32U4 3V3/8MHz
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### ItsyBitsy 32U4 5V/16MHz
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## dog hunter AG
+ ### Leonardo
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### Micro
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+ # hid_listen
+ KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
+
+ # hid bootloaders
+ ## QMK HID
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", GROUP="plugdev", TAG+="uaccess"
+ ## PJRC's HalfKay
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", GROUP="plugdev", TAG+="uaccess"
+
+ # APM32 DFU
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", GROUP="plugdev", TAG+="uaccess"
+
+ # GD32V DFU
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", GROUP="plugdev", TAG+="uaccess"
+
+ # WB32 DFU
+-SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
++SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", GROUP="plugdev", TAG+="uaccess"
diff --git a/testing/qml-asteroid/APKBUILD b/testing/qml-asteroid/APKBUILD
new file mode 100644
index 00000000000..9cef6c3e5dc
--- /dev/null
+++ b/testing/qml-asteroid/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=asteroid
+pkgname=qml-asteroid
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="QML components, styles and demos for AsteroidOS"
+url="https://github.com/AsteroidOS/qml-asteroid"
+# armhf blocked by qt5-qtvirtualkeyboard
+arch="all !armhf"
+license="LGPL-2.1-only"
+depends="qt5-qtvirtualkeyboard"
+# grep is required for the asteroid-generate-desktop.sh script, which is used by other packages
+depends_dev="
+ grep
+ mlite-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ "
+makedepends="$depends_dev
+ extra-cmake-modules
+ mapplauncherd-qt-dev
+ samurai
+ "
+subpackages="$pkgname-dbg $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/asteroidos/qml-asteroid/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DINSTALL_QML_IMPORT_DIR=/usr/lib/qt5/qml
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+
+ amove usr/share/*/cmake
+ amove usr/bin
+}
+
+sha512sums="
+6bce67a1fe66cf88d43dc3c27fe46421bef4b0f6f8f52deb25717590deb529fa2d48a1705517998e4222eecf00038a4ff2a50f5d8d28babd0bd9a1d72fc33bf0 qml-asteroid-2.0.0.tar.gz
+"
diff --git a/testing/qmlrunner/APKBUILD b/testing/qmlrunner/APKBUILD
deleted file mode 100644
index d130d8f7a01..00000000000
--- a/testing/qmlrunner/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=qmlrunner
-pkgver=1.0.1
-pkgrel=0
-pkgdesc="Runner for QML-only apps"
-url="https://github.com/rinigus/qmlrunner"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative
-license="GPL-3.0-or-later"
-makedepends="qt5-qtbase-dev qt5-qtdeclarative-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rinigus/qmlrunner/archive/$pkgver.tar.gz"
-options="!check"
-
-build() {
- qmake-qt5 \
- PREFIX=/usr
- make
-}
-
-check() {
- make test
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="1157eee4e26b64fdb968416198de5bd96f57a002d9a07df0c26bf6111ad35244e4c0ab214d739121bfd547fc1ea35cec26986507d4eda51fa6442998e5284ecb qmlrunner-1.0.1.tar.gz"
diff --git a/testing/qoi/APKBUILD b/testing/qoi/APKBUILD
new file mode 100644
index 00000000000..09655660c00
--- /dev/null
+++ b/testing/qoi/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Elly Fong-Jones <elly@elly.town>
+# Maintainer: Elly Fong-Jones <elly@elly.town>
+pkgname=qoi
+pkgver=0.0.0_git20230312
+_commit=f6dffaf1e8170cdd79945a4fb60f6403e447e020
+pkgrel=0
+pkgdesc="Quite OK Image format reference implementation"
+url="https://github.com/phoboslab/qoi"
+arch="all"
+license="MIT"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="stb" # for qoiconv
+subpackages="qoiconv qoi-dev"
+source="https://github.com/phoboslab/qoi/archive/$_commit.tar.gz"
+builddir="$srcdir/qoi-$_commit"
+options="!check" # no tests
+
+build() {
+ # pass through ldflags, single-file
+ make CFLAGS="$CFLAGS $LDFLAGS" qoiconv
+}
+
+package() {
+ depends="qoiconv=$pkgver-r$pkgrel"
+ install -Dm644 qoi.h -t "$pkgdir"/usr/include
+
+ # note that qoibench is not built: it is a tool for benchmarking qoi
+ # compression vs libpng, so it adds a dep on libpng, and is more useful
+ # for development of qoi than users of qoi.
+ install -Dm755 qoiconv -t "$pkgdir"/usr/bin
+}
+
+qoiconv() {
+ pkgdesc="$pkgdesc (qoiconv utility)"
+ amove usr/bin/qoiconv
+}
+
+sha512sums="
+4e19584895232fa5b3a06598cc272fc51b58c2a59006f9443afdb8f728b9724ae57a3c6c6937c684cc1b2e7e8f9c58785b1933a3b5321fd7cd34651e884f76d7 f6dffaf1e8170cdd79945a4fb60f6403e447e020.tar.gz
+"
diff --git a/testing/qownnotes/APKBUILD b/testing/qownnotes/APKBUILD
index c53831268b9..a057768e1de 100644
--- a/testing/qownnotes/APKBUILD
+++ b/testing/qownnotes/APKBUILD
@@ -1,17 +1,33 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="qownnotes"
-pkgver=20.6.0
+pkgname=qownnotes
+pkgver=23.6.6
pkgrel=0
pkgdesc="Plain-text file markdown note taking with Nextcloud/ownCloud integration"
url="https://www.qownnotes.org/"
arch="all !ppc64le !s390x !armhf" # armhf blocked by qt5-qtdeclarative
license="GPL-2.0-only"
-makedepends="qt5-qtdeclarative-dev qt5-qtsvg-dev qt5-qtxmlpatterns-dev
- qt5-qttools-dev qt5-qtbase-dev qt5-qtwebsockets-dev botan-dev
- qt5-qtx11extras-dev"
+makedepends="
+ botan-dev
+ cmake
+ md4c-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ qt5-qtwebsockets-dev
+ qt5-qtx11extras-dev
+ qt5-qtxmlpatterns-dev
+ samurai
+ "
subpackages="$pkgname-lang"
-source="https://download.tuxfamily.org/qownnotes/src/qownnotes-$pkgver.tar.xz"
+source="https://download.tuxfamily.org/qownnotes/src/qownnotes-$pkgver.tar.xz
+ botan.patch
+ exclude.patch
+ md4c.patch
+ no-werror.patch
+ "
+options="!check" # no tests
prepare() {
default_prepare
@@ -19,19 +35,16 @@ prepare() {
}
build() {
- /usr/lib/qt5/bin/qmake \
- QMAKE_CFLAGS_RELEASE="$CFLAGS" \
- QMAKE_CXXFLAGS_RELEASE="$CXXFLAGS" \
- QMAKE_LFLAGS_RELEASE="$LDFLAGS"
- make
-}
-
-check() {
- make check
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_WITH_SYSTEM_BOTAN=ON
+ cmake --build build
}
package() {
- install -D -m755 QOwnNotes "$pkgdir/usr/bin/QOwnNotes"
+ DESTDIR="$pkgdir" cmake --install build
+ install -D -m755 build/QOwnNotes "$pkgdir/usr/bin/QOwnNotes"
install -D -m644 PBE.QOwnNotes.desktop "$pkgdir/usr/share/applications/PBE.QOwnNotes.desktop"
install -D -m644 "images/icons/128x128/apps/QOwnNotes.png" "$pkgdir/usr/share/pixmaps/QOwnNotes.png"
for format in 16x16 24x24 32x32 48x48 64x64 96x96 128x128 256x256 512x512 ; do
@@ -40,8 +53,16 @@ package() {
}
lang() {
- install -d "$subpkgdir/usr/share/QOwnNotes/languages/"
- install -D -m644 "$builddir"/languages/*.qm "$subpkgdir/usr/share/QOwnNotes/languages/"
+ pkgdesc="Translations for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ amove usr/share/qt5/translations
}
-sha512sums="62cd723b606df29c5d4d9c72a682eeac30343fbc3c06aea5af72e0563813e94d1ae38b758f67f1e2323f83bef590d6f6c23eccc7bc901d695f103c653fe89954 qownnotes-20.6.0.tar.xz"
+sha512sums="
+c64460a92dd4d250d69dacecc7d6f74c248c51909cfec19603e56ee12fea77de86ad38155cee5d3e48bf52422f3f7e3efe1aaa03c8260f35d901350d2094ac8e qownnotes-23.6.6.tar.xz
+81b3171f826a310be0e78e56f9f9780a226b4aea5a81ddd7d3cdc90e3a6d460c242a20766e4db72df1b0a6a99edced04f85f2fa3d939e5f7969a624044365e33 botan.patch
+4fe0cb83bc32b3fdbd31ed97a1c228a558579daabb0a5aee7c2b6a357256e04fc90cdbf7dde8897670130737bda5db2de0db664f1c1407875b2012f22ec038be exclude.patch
+f8a279b4485aad1649cb1941761cec385be035affd8acc71b071f368461593dfe787c8fc7080d9e0b18b5dceac2a897a0b4f8e8345d6f6301a244ed4c14386ff md4c.patch
+4129d840d17046015947c55c382db26938bfa4605a8737d69161eff6e44adaa06cd8c908e411f754595fe204e46a801ec1e8dc79121eab62dfd631ff6998fce9 no-werror.patch
+"
diff --git a/testing/qownnotes/botan.patch b/testing/qownnotes/botan.patch
new file mode 100644
index 00000000000..cb01653cdf8
--- /dev/null
+++ b/testing/qownnotes/botan.patch
@@ -0,0 +1,17 @@
+link to system botan
+--
+diff --git a/libraries/botan/CMakeLists.txt b/libraries/botan/CMakeLists.txt
+index 4836a38..97ad24a 100644
+--- a/libraries/botan/CMakeLists.txt
++++ b/libraries/botan/CMakeLists.txt
+@@ -18,7 +18,9 @@ target_link_libraries(botan PUBLIC Qt5::Core)
+ target_include_directories(botan PUBLIC ${CMAKE_CURRENT_LIST_DIR})
+
+ if(BUILD_WITH_SYSTEM_BOTAN)
+- find_package(Botan2 REQUIRED)
++ find_package(PkgConfig REQUIRED)
++ pkg_check_modules(Botan2 REQUIRED botan-2 IMPORTED_TARGET)
++ add_library(Botan2::Botan2 ALIAS PkgConfig::Botan2)
+ if(NOT TARGET Botan2::Botan2)
+ message(FATAL_ERROR "Could not find system Botan 2 library using PkgConfig")
+ endif()
diff --git a/testing/qownnotes/exclude.patch b/testing/qownnotes/exclude.patch
new file mode 100644
index 00000000000..1a5fb36c69a
--- /dev/null
+++ b/testing/qownnotes/exclude.patch
@@ -0,0 +1,31 @@
+prevent install of a bunch of useless stuff that is already linked in
+--
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9d41d0c..d42ab53 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -56,20 +56,20 @@ set(BUILD_SHARED_LIBS OFF)
+ # Disable building tests inside QHotKey library
+ set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
+ set(QHOTKEY_EXAMPLES OFF)
+-add_subdirectory(libraries/qhotkey)
++add_subdirectory(libraries/qhotkey EXCLUDE_FROM_ALL)
+
+ # FakeVim library
+ set(CREATE_STATIC_LIBRARY ON)
+ if(MSVC)
+ add_compile_definitions(FAKEVIM_STATIC_DEFINE QTCREATOR_UTILS_STATIC_LIB)
+ endif()
+-add_subdirectory(libraries/fakevim)
+-add_subdirectory(libraries/diff_match_patch)
++add_subdirectory(libraries/fakevim EXCLUDE_FROM_ALL)
++add_subdirectory(libraries/diff_match_patch EXCLUDE_FROM_ALL)
+
+ option(USE_QLITE_HTML "Build using QLiteHtml for preview" OFF)
+ if (USE_QLITEHTML)
+ add_definitions(-DUSE_QLITEHTML=1)
+- add_subdirectory(libraries/qlitehtml)
++ add_subdirectory(libraries/qlitehtml EXCLUDE_FROM_ALL)
+ endif()
+
+
diff --git a/testing/qownnotes/md4c.patch b/testing/qownnotes/md4c.patch
new file mode 100644
index 00000000000..712037b5751
--- /dev/null
+++ b/testing/qownnotes/md4c.patch
@@ -0,0 +1,15 @@
+link to system md4c
+--
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1f82fe7..77fa2a8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,7 +8,7 @@ include_directories(libraries/sonnet/src/core)
+ #some hunspell settings for windows
+ include(libraries/sonnet/src/plugins/hunspell/hunspell/CMakeLists.txt)
+
+-add_subdirectory(libraries/md4c)
++find_package(md4c)
+
+ add_executable(QOwnNotes "")
+
diff --git a/testing/qownnotes/no-werror.patch b/testing/qownnotes/no-werror.patch
new file mode 100644
index 00000000000..71bf869aeee
--- /dev/null
+++ b/testing/qownnotes/no-werror.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9d41d0c..1f82fe7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -41,7 +41,6 @@ if (UNIX)
+ # enable werror on linux
+ if (NOT APPLE)
+ message("Werror enabled on linux")
+- target_compile_options(QOwnNotes PRIVATE -Werror)
+ endif()
+ endif()
+
diff --git a/testing/qpdfview/APKBUILD b/testing/qpdfview/APKBUILD
new file mode 100644
index 00000000000..b3333422e69
--- /dev/null
+++ b/testing/qpdfview/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: gay <gay@disroot.org>
+# Maintainer: gay <gay@disroot.org>
+pkgname=qpdfview
+pkgver=0.5
+pkgrel=0
+pkgdesc="A tabbed PDF viewer using the poppler library."
+url="https://launchpad.net/qpdfview"
+arch="all !riscv64"
+license="GPL-2.0-or-later"
+options="!check"
+makedepends="
+ cups-dev
+ djvulibre-dev
+ file-dev
+ libspectre-dev
+ poppler-qt5-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ "
+subpackages="$pkgname-doc"
+source="https://launchpad.net/qpdfview/trunk/$pkgver.0/+download/qpdfview-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ lrelease-qt5 qpdfview.pro
+}
+
+build() {
+ qmake-qt5 qpdfview.pro
+ make
+}
+
+package() {
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+sha512sums="
+1b6b479bb42f4568c21b5f6cb0c552c4323739ba9fe46cea80cc199f48b0b49a278e0a2fb0d21f83bafb467e43dd37352b99ef41795d140220bb82d704e03926 qpdfview-0.5.tar.gz
+"
diff --git a/testing/qperf/APKBUILD b/testing/qperf/APKBUILD
index ae667f9ffb2..5fc72132270 100644
--- a/testing/qperf/APKBUILD
+++ b/testing/qperf/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Matthieu Monnier <matthieu.monnier@enalean.com>
pkgname=qperf
pkgver=0.4.11
-pkgrel=0
+pkgrel=1
pkgdesc="Measuring network performance"
url="https://www.openfabrics.org"
arch="all"
diff --git a/testing/qqc2-suru-style/APKBUILD b/testing/qqc2-suru-style/APKBUILD
new file mode 100644
index 00000000000..87b5631e1a0
--- /dev/null
+++ b/testing/qqc2-suru-style/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=qqc2-suru-style
+pkgver=0.20230206
+pkgrel=0
+pkgdesc="Suru Style for QtQuick Controls 2"
+arch="all"
+url="https://gitlab.com/ubports/development/core/qqc2-suru-style"
+license="GPL-2.0-or-later"
+makedepends="
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtquickcontrols2-dev
+ "
+source="https://gitlab.com/ubports/development/core/qqc2-suru-style/-/archive/$pkgver/qqc2-suru-style-$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ qmake-qt5
+ make
+}
+
+package() {
+ INSTALL_ROOT="$pkgdir" make install
+}
+
+sha512sums="
+90605186c924255d94f1488445c0331a29795d00cdb3addee0572f5ec4e560fbc29e13bb0cd6561a9328edbb2df1c540fc4262668a16f102b4da0611fff3b362 qqc2-suru-style-0.20230206.tar.gz
+"
diff --git a/testing/qscintilla/APKBUILD b/testing/qscintilla/APKBUILD
deleted file mode 100644
index 9bab5bffba5..00000000000
--- a/testing/qscintilla/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Marian Buschsiewke <marian.buschsieweke@ovgu.de>
-pkgname=qscintilla
-pkgver=2.11.4
-pkgrel=0
-pkgdesc="QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor control"
-url="https://www.riverbankcomputing.com/software/qscintilla"
-arch="all"
-license=" GPL-3.0-only"
-subpackages="$pkgname-dev"
-makedepends="qt5-qtbase-dev"
-source="https://www.riverbankcomputing.com/static/Downloads/QScintilla/$pkgver/QScintilla-$pkgver.tar.gz"
-builddir="$srcdir/QScintilla-$pkgver/Qt4Qt5"
-
-build() {
- qmake-qt5
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" INSTALL_ROOT="$pkgdir" install -j1
-}
-
-sha512sums="90fc2427121ca9ae55e34cf636460099bbdadd844318d9ef05f86790a36e25fb64528264bb7bb99e46b7add96378eff0cc69bb692940c6a1bddfadf86a9abdbd QScintilla-2.11.4.tar.gz"
diff --git a/testing/qspectrumanalyzer/APKBUILD b/testing/qspectrumanalyzer/APKBUILD
new file mode 100644
index 00000000000..f97ce0248a9
--- /dev/null
+++ b/testing/qspectrumanalyzer/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=qspectrumanalyzer
+pkgver=2.2.0
+pkgrel=4
+pkgdesc="Spectrum analyzer for multiple SDR platforms"
+url="https://github.com/xmikos/qspectrumanalyzer"
+arch="noarch !x86 !armhf" # no py3-qt on armhf
+license="GPL-3.0-only"
+depends="
+ hackrf
+ py3-qt.py
+ py3-qtgraph
+ py3-setuptools
+ py3-soapy_power
+ python3
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xmikos/qspectrumanalyzer/archive/v$pkgver.tar.gz"
+options="!check" # Test seems windows only :-/
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ python3 setup.py test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="8aad19d4f02fac579a65279eb0a26bab18f9e1243a626419640b91eab488eb21c96b0a9c83e6cc0141760c887b2481b533d0a32432de0919e41904c5b279c627 qspectrumanalyzer-2.2.0.tar.gz"
diff --git a/testing/qsstv/APKBUILD b/testing/qsstv/APKBUILD
new file mode 100644
index 00000000000..a28f094a7f0
--- /dev/null
+++ b/testing/qsstv/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=qsstv
+pkgver=9.5.8
+pkgrel=2
+pkgdesc="Program for receiving and transmitting SSTV and HAMDRM"
+url="https://www.qsl.net/on4qz/qsstv/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ qt5-qtbase-dev
+ openjpeg-dev
+ alsa-lib-dev
+ pulseaudio-dev
+ fftw-dev
+ hamlib-dev
+ v4l-utils-dev
+"
+source="https://www.qsl.net/o/on4qz/qsstv/downloads/qsstv_$pkgver.tar.gz"
+options="!check" # no test suite
+builddir="$srcdir/qsstv"
+
+build() {
+ qmake-qt5 PREFIX="/usr"
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ INSTALL_ROOT="$pkgdir" make install
+ install -Dm644 "$builddir"/qsstv.desktop \
+ "$pkgdir"/usr/share/applications/qsstv.desktop
+ install -Dm644 "$builddir"/icons/qsstv.png \
+ "$pkgdir"/usr/share/icons/hicolor/48x48/apps/qsstv.png
+}
+
+sha512sums="
+88e1bb62e3838d94c670397fceced7913ac4675e7fea93d78c2b2799ef172c27baad9ac7f7d119eb1130296d21b641164cdd0f53a93967305f632fa9bb3b4e6a qsstv_9.5.8.tar.gz
+"
diff --git a/testing/qstardict/APKBUILD b/testing/qstardict/APKBUILD
index e95b80a8ebd..fe30d2cb0c3 100644
--- a/testing/qstardict/APKBUILD
+++ b/testing/qstardict/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=qstardict
pkgver=1.3
-pkgrel=0
+pkgrel=1
pkgdesc="Free dictionary program written using Qt."
url="https://qstardict.ylsoftware.com"
arch="all"
diff --git a/testing/qsynth/APKBUILD b/testing/qsynth/APKBUILD
new file mode 100644
index 00000000000..7e9841d3dfd
--- /dev/null
+++ b/testing/qsynth/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Krystian Chachuła <krystian@krystianch.com>
+pkgname=qsynth
+pkgver=0.9.13
+pkgrel=0
+pkgdesc="Qt GUI Interface for FluidSynth"
+url="https://qsynth.sourceforge.io/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ samurai
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ qt6-qtsvg-dev
+ fluidsynth-dev
+"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/project/qsynth/qsynth/$pkgver/qsynth-$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8249438429191a2beb381af9f6fc6bc0d88711c2590379bfa10c558464c562f28453dacec8edbe1afdc590ee437530cefac211b272553cf8acc266706894f17c qsynth-0.9.13.tar.gz
+"
diff --git a/testing/qt-creator/APKBUILD b/testing/qt-creator/APKBUILD
index 854cece09eb..e2bbbb0b5b1 100644
--- a/testing/qt-creator/APKBUILD
+++ b/testing/qt-creator/APKBUILD
@@ -1,48 +1,81 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Contributor: Alexey Minnekhanov <alexeymin@postmarketos.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=qt-creator
-_pkgname=qt-creator-opensource-src
-pkgver=4.12.1
+pkgver=13.0.0
pkgrel=0
-pkgdesc="Lightweight and cross-platform IDE for Qt"
+pkgdesc="Lightweight and cross-platform C++ IDE"
url="https://qt-project.org/wiki/Category:Tools::QtCreator"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative
+arch="x86_64 aarch64" # qt6-qtwebengine
license="GPL-3.0-only WITH Qt-GPL-exception-1.0"
depends="
- qt5-qtbase-sqlite
- qt5-qtquickcontrols
- qt5-qtquickcontrols2
- qt5-qtbase-dev
- qt5-qttools-dev
+ qt6-qtbase-sqlite
+ qt6-qtbase-dev
+ qt6-qttools-dev
"
+_llvmver=17
makedepends="
- cmake
botan-dev
- qt5-qtdeclarative-dev
- qt5-qtscript-dev
- qt5-qtquickcontrols2-dev
- "
+ clang$_llvmver-dev
+ clang$_llvmver-static
+ cmake
+ elfutils-dev
+ lld
+ llvm$_llvmver-dev
+ llvm$_llvmver-gtest
+ llvm$_llvmver-static
+ qt6-qt5compat-dev
+ qt6-qtdeclarative-dev
+ qt6-qtquick3d-dev
+ qt6-qtserialport-dev
+ qt6-qtshadertools-dev
+ qt6-qtsvg-dev
+ qt6-qtwebengine-dev
+ samurai
+"
ldpath="/usr/lib/qtcreator:/usr/lib/qtcreator/plugins"
-source="https://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/$_pkgname-$pkgver.tar.xz
+source="
+ https://download.qt.io/official_releases/qtcreator/${pkgver%.*}/$pkgver/qt-creator-opensource-src-$pkgver.tar.xz
fix-execinfo.patch
+ fix-malloc-trim.patch
"
-builddir="$srcdir"/$_pkgname-$pkgver
-prepare() {
- default_prepare
- sed -i qtcreator.pri -e'/CONFIG += c++14/aCONFIG += use_system_botan'
-}
+builddir="$srcdir"/qt-creator-opensource-src-$pkgver
build() {
- qmake-qt5
- make CXX="${CXX:-g++}"
+ # enum-constexpr-conversion in clang16 now flags outside-enumeration
+ # values like -1 as invalid
+ export CC=clang-$_llvmver
+ export CXX=clang++-$_llvmver
+ export CFLAGS="$CFLAGS -flto=thin"
+ export CXXFLAGS="$CXXFLAGS -flto=thin -Wno-error=enum-constexpr-conversion -I/usr/lib/llvm$_llvmver/include"
+ export LDFLAGS="$LDFLAGS -fuse-ld=lld"
+
+ case "$CARCH" in
+ aarch64)
+ # not recognised by clang on aarch64
+ export CFLAGS="${CFLAGS/-fstack-clash-protection}"
+ export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}"
+ ;;
+ esac
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_QBS=OFF \
+ -DBUILD_PLUGIN_CLANGFORMAT=OFF \
+ -DBUILD_PLUGIN_COPILOT=OFF \
+ -DBUILD_WITH_PCH=OFF \
+ -DCLANGTOOLING_LINK_CLANG_DYLIB=ON
+ cmake --build build
}
package() {
- make install INSTALL_ROOT="$pkgdir"/usr
- # install -Dm 644 "$srcdir"/qtcreator.desktop \
- # "$pkgdir"/usr/share/applications/qtcreator.desktop
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="28a9f28242b66f3aa2d867350b16b04fa222e4f1366062026193a7a7641b51457214eba72ad2f4255d7a1946246ec3f1f4792fd665ad1b4a1910f37db612dfce qt-creator-opensource-src-4.12.1.tar.xz
-416bf589487aa0a86df01cb07088d1bf316bb7b765753b870634be8f697c17a47a93c2240258e8f1707fe8e0137b8cbc1a7b85250986ede3bffb87c6c5f75311 fix-execinfo.patch"
+sha512sums="
+26fea156becc136fb55702a65c29dad825fd3fa60d8e19d8d142ab6518dc8e40fbddfe70d79d2b71f14f76c8a1d9bca34fb65e565702e67c9276aec9758bf345 qt-creator-opensource-src-13.0.0.tar.xz
+43d73c9cd272ee849a5d85490d351c71b786d7ce6b5b46c6ec13642329c14bacc84a122f0bfbb445841aedef8d1cc9fe2485c0c8db24080b5a9dd4380e36c58d fix-execinfo.patch
+efb137318e7005beb4c01cb27dcfc49d63b5c6faa66b0a6d6989bb6533ca94875e34880c482ce36f699dadf920b55a3de43eeed4fa5cf98d1b56405ee2ff0aa5 fix-malloc-trim.patch
+"
diff --git a/testing/qt-creator/fix-execinfo.patch b/testing/qt-creator/fix-execinfo.patch
index 750968f75ee..c4577ed644e 100644
--- a/testing/qt-creator/fix-execinfo.patch
+++ b/testing/qt-creator/fix-execinfo.patch
@@ -1,6 +1,31 @@
---- a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp 2015-04-21 17:56:56.000000000 +0200
-+++ b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp 2015-06-26 13:17:08.600350791 +0200
-@@ -31,7 +31,9 @@
+diff --git a/src/libs/utils/qtcassert.cpp b/src/libs/utils/qtcassert.cpp
+index d371b6f6..1db95aad 100644
+--- a/src/libs/utils/qtcassert.cpp
++++ b/src/libs/utils/qtcassert.cpp
+@@ -11,7 +11,9 @@
+ #if defined(Q_OS_UNIX)
+ #include <stdio.h>
+ #include <signal.h>
++#ifdef __GLIBC__
+ #include <execinfo.h>
++#endif
+ #elif defined(_MSC_VER)
+ #ifdef QTCREATOR_PCH_H
+ #define CALLBACK WINAPI
+@@ -29,7 +31,7 @@ void dumpBacktrace(int maxdepth)
+ const int ArraySize = 1000;
+ if (maxdepth < 0 || maxdepth > ArraySize)
+ maxdepth = ArraySize;
+-#if defined(Q_OS_UNIX)
++#if defined(Q_OS_UNIX) && defined(__GLIBC__)
+ void *bt[ArraySize] = {nullptr};
+ int size = backtrace(bt, maxdepth);
+ char **lines = backtrace_symbols(bt, size);
+diff --git a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
+index ba8afd56..4040dc6a 100644
+--- a/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
++++ b/src/plugins/qmldesigner/designercore/exceptions/exception.cpp
+@@ -4,7 +4,9 @@
#include "exception.h"
#ifdef Q_OS_LINUX
@@ -10,41 +35,30 @@
#include <cxxabi.h>
#endif
-@@ -107,6 +109,7 @@
- m_file(file)
- {
+@@ -76,6 +78,7 @@ bool Exception::warnAboutException()
+ }
+
#ifdef Q_OS_LINUX
+#ifdef __GLIBC__
- void * array[50];
- int nSize = backtrace(array, 50);
- char ** symbols = backtrace_symbols(array, nSize);
-@@ -118,6 +121,7 @@
-
- free(symbols);
- #endif
-+#endif
-
- if (s_shouldAssert)
- Q_ASSERT_X(false, function.toUtf8(), QString("%1:%2 - %3").arg(file).arg(line).arg(function).toUtf8());
---- a/src/plugins/debugger/shared/backtrace.cpp 2015-04-21 17:56:56.000000000 +0200
-+++ b/src/plugins/debugger/shared/backtrace.cpp 2015-06-26 13:14:54.295358053 +0200
-@@ -35,8 +35,10 @@
- #if defined(Q_OS_LINUX)
- #include <stdio.h>
- #include <signal.h>
-+#if defined(__GLIBC__)
- #include <execinfo.h>
+ static QString getBackTrace()
+ {
+ QString backTrace;
+@@ -91,6 +94,7 @@ static QString getBackTrace()
+ return backTrace;
+ }
#endif
+#endif
- namespace Debugger {
- namespace Internal {
-@@ -40,7 +40,7 @@ void dumpBacktrace(int maxdepth)
+ QString Exception::defaultDescription(int line, const QByteArray &function, const QByteArray &file)
+ {
+@@ -114,8 +118,10 @@ Exception::Exception(int line, const QByteArray &function,
+ , m_file(QString::fromUtf8(file))
+ , m_description(description)
+ #ifdef Q_OS_LINUX
++ #ifdef __GLIBC__
+ , m_backTrace(getBackTrace())
+ #endif
++ #endif
{
- if (maxdepth == -1)
- maxdepth = 200;
--#if defined(Q_OS_LINUX)
-+#if defined(Q_OS_LINUX) && defined(__GLIBC__)
- void *bt[200] = {nullptr};
- qDebug() << "BACKTRACE:";
- int size = backtrace(bt, sizeof(bt) / sizeof(bt[0]));
+ if (s_shouldAssert) {
+ qDebug() << Exception::description();
diff --git a/testing/qt-creator/fix-malloc-trim.patch b/testing/qt-creator/fix-malloc-trim.patch
new file mode 100644
index 00000000000..2261b0519d9
--- /dev/null
+++ b/testing/qt-creator/fix-malloc-trim.patch
@@ -0,0 +1,11 @@
+--- a/src/plugins/coreplugin/icore.cpp
++++ b/src/plugins/coreplugin/icore.cpp
+@@ -1274,7 +1274,7 @@
+ m_trimTimer.setSingleShot(true);
+ m_trimTimer.setInterval(60000);
+ // glibc may not actually free memory in free().
+-#ifdef Q_OS_LINUX
++#if defined(Q_OS_LINUX) && defined(__GLIBC__)
+ connect(&m_trimTimer, &QTimer::timeout, this, [] { malloc_trim(0); });
+ #endif
+ }
diff --git a/testing/qt-wayland-shell-helpers/APKBUILD b/testing/qt-wayland-shell-helpers/APKBUILD
new file mode 100644
index 00000000000..b245cbb0f6a
--- /dev/null
+++ b/testing/qt-wayland-shell-helpers/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=qt-wayland-shell-helpers
+pkgver=0.1.1
+pkgrel=3
+pkgdesc="helpers for using Qt with arbitrary Wayland shell protocols"
+url="https://github.com/iridescent-desktop/qt-wayland-shell-helpers"
+arch="all !armhf" # blocked by qt5-qtdeclarative
+license="ISC"
+makedepends="wayland-protocols wayland-dev qt5-qtbase-dev qt5-qttools-dev qt5-qtwayland-dev meson"
+subpackages="$pkgname-dev"
+source="https://github.com/iridescent-desktop/qt-wayland-shell-helpers/archive/v$pkgver/qt-wayland-shell-helpers-$pkgver.tar.gz
+ fix-qt-include-directory.patch"
+options="!check" # No test suite.
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+b9d2031d03596950d5de5586c8c703903b1de594edef45f6d101332287372e6347aef4cb82fc84a4d44316ea2e9610997b13c57c9a3019eb1545c9a251e998b5 qt-wayland-shell-helpers-0.1.1.tar.gz
+07b628eb21f1f8c0970adef0877ff0b9c1aa9e6be4484aa857d678107abf3b261f02fbe5cbeb4b17cd945f4afd7174fc6a3a156cc58c0ecace34e0c93ece5e07 fix-qt-include-directory.patch
+"
diff --git a/testing/qt-wayland-shell-helpers/fix-qt-include-directory.patch b/testing/qt-wayland-shell-helpers/fix-qt-include-directory.patch
new file mode 100644
index 00000000000..262f4e75516
--- /dev/null
+++ b/testing/qt-wayland-shell-helpers/fix-qt-include-directory.patch
@@ -0,0 +1,9 @@
+diff -upr qt-wayland-shell-helpers-0.1.1.orig/src/library/meson.build qt-wayland-shell-helpers-0.1.1/src/library/meson.build
+--- qt-wayland-shell-helpers-0.1.1.orig/src/library/meson.build 2021-07-09 14:55:47.174112496 +0200
++++ qt-wayland-shell-helpers-0.1.1/src/library/meson.build 2021-07-09 14:57:24.824233259 +0200
+@@ -1,4 +1,4 @@
+-private_module_includes = '/usr/include/@0@/@1@/@0@'.format('QtGui', qt.version())
++private_module_includes = '/usr/include/qt5/@0@/@1@/@0@'.format('QtGui', qt.version())
+
+ qt_private = include_directories(private_module_includes)
+
diff --git a/testing/qt5-qtsystems/APKBUILD b/testing/qt5-qtsystems/APKBUILD
deleted file mode 100644
index 132c002795e..00000000000
--- a/testing/qt5-qtsystems/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=qt5-qtsystems
-pkgver=0_git20190103
-pkgrel=0
-_commit="e3332ee38d27a134cef6621fdaf36687af1b6f4a"
-pkgdesc="Qt Systems"
-arch="all !armhf" # Blocked by qt5-qtdeclarative-dev
-url='http://qt-project.org/'
-license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0"
-depends_dev="qt5-qtdeclarative-dev"
-makedepends="$depends_dev qt5-qtbase-dev git"
-source="https://github.com/qt/qtsystems/archive/$_commit/qtsystem-$_commit.tar.gz"
-subpackages="$pkgname-dev $pkgname-doc"
-options="!check" # No tests
-builddir="$srcdir/qtsystems-$_commit"
-
-prepare() {
- default_prepare
- # Something in the build system only runs the syncqt.pl script when it's in a git repo
- git init
-}
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
-
- # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
- find "$pkgdir/usr/lib" -type f -name '*.prl' \
- -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
-
- install -d "$pkgdir"/usr/share/licenses
- ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname
-}
-sha512sums="48ed8353a021892cb226a5cb99de1919a48638ddf765094f47c204e8699892e33f66a39d717bfd238516b9529d2158227be8c510f4f1a7ddb68901e6e7cb0e85 qtsystem-e3332ee38d27a134cef6621fdaf36687af1b6f4a.tar.gz"
diff --git a/testing/qt5ct/APKBUILD b/testing/qt5ct/APKBUILD
new file mode 100644
index 00000000000..6e7da084d50
--- /dev/null
+++ b/testing/qt5ct/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Vladimir Luzan <vluzan@disroot.org>
+# Maintainer: Vladimir Luzan <vluzan@disroot.org>
+pkgname=qt5ct
+pkgver=1.7
+pkgrel=0
+pkgdesc="Qt5 configuration tool"
+url="https://sourceforge.net/projects/qt5ct/"
+arch="all"
+license="BSD-2-Clause"
+makedepends="cmake qt5-qtbase-dev qt5-qttools-dev samurai"
+subpackages="$pkgname-dev"
+source="https://sourceforge.net/projects/qt5ct/files/qt5ct-$pkgver.tar.bz2"
+options="!check" # no tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+97f1afc137e750abbb8c4e442cb6e09d2aa0c4979de2117ea644d484e1f7489bec144332814aae961bfaa5f8ac9ddf027c7a665274a65aef26fc4bf7c45610c0 qt5ct-1.7.tar.bz2
+"
diff --git a/testing/qt6ct/APKBUILD b/testing/qt6ct/APKBUILD
new file mode 100644
index 00000000000..27c437403cc
--- /dev/null
+++ b/testing/qt6ct/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=qt6ct
+pkgver=0.9
+pkgrel=0
+pkgdesc="Qt6 configuration tool"
+url="https://github.com/trialuser02/qt6ct/"
+arch="all"
+license="BSD-2-Clause"
+options="!check" # no test suite
+makedepends="cmake samurai qt6-qtbase-dev qt6-qttools-dev"
+source="https://github.com/trialuser02/qt6ct/releases/download/$pkgver/qt6ct-$pkgver.tar.xz
+ find-lrelease.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ea5242cc10d9d210e190dd442c72c9f75c6a13e50191ec164fc9772de0475ca39453f22b061cfe24e1face4d660159d491627b65f2637b5d611cfe5fb0ac228f qt6ct-0.9.tar.xz
+92e419c9d7dfbc35de00b1f9cd453e62294a19b5d930ef745e7f03f28d1f858bac8fef5118b1fd6d3d1de758c7caab63e0a5e1a91c5bd537722edb579c01dec2 find-lrelease.patch
+"
diff --git a/testing/qt6ct/find-lrelease.patch b/testing/qt6ct/find-lrelease.patch
new file mode 100644
index 00000000000..ea7cb2c9b47
--- /dev/null
+++ b/testing/qt6ct/find-lrelease.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -29,7 +29,7 @@
+ get_target_property(QT_QTPATHS_EXECUTABLE Qt6::qtpaths IMPORTED_LOCATION)
+
+ if(Qt6LinguistTools_FOUND)
+- get_target_property(QT_LRELEASE_EXECUTABLE Qt6::lrelease IMPORTED_LOCATION)
++ set(QT_LRELEASE_EXECUTABLE /usr/lib/qt6/bin/lrelease)
+ if(NOT QT_QTPATHS_EXECUTABLE AND QT_LRELEASE_EXECUTABLE)
+ get_filename_component(QT_LRELEASE_PATH ${QT_LRELEASE_EXECUTABLE} DIRECTORY)
+ set(QT_QTPATHS_EXECUTABLE ${QT_LRELEASE_PATH}/qtpaths)
diff --git a/testing/qtile/APKBUILD b/testing/qtile/APKBUILD
new file mode 100644
index 00000000000..d10cede8f6c
--- /dev/null
+++ b/testing/qtile/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Emma Nora Theuer <kontakt@entheuer.de>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+# Maintainer: Emma Nora Theuer <kontakt@entheuer.de>
+pkgname=qtile
+pkgver=0.23.0
+pkgrel=1
+pkgdesc="A full-featured, hackable tiling X11 window manager written and configured in Python"
+url="https://github.com/qtile/qtile"
+arch="all"
+license="MIT"
+depends="
+ pango
+ py3-cairocffi
+ py3-dbus-next
+ py3-xcffib
+ "
+makedepends="
+ libx11-dev
+ pango
+ py3-cffi
+ py3-setuptools
+ py3-setuptools_scm
+ "
+options="!check" # broken due to unavailable packages
+subpackages="$pkgname-pyc"
+source="qtile-$pkgver.tar.gz::https://github.com/qtile/qtile/archive/v$pkgver.tar.gz"
+
+build() {
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+8121d980fb74de6b7c464c0d8d82fcffa922653400c0d74dfb5e9105762a6a9931fbc7465d68accc6c513abe11a79547282ab886d20cac9970dba1b184da682b qtile-0.23.0.tar.gz
+"
diff --git a/testing/qtmir/0001-Wayland-hack-set-maliit-server-to-inputmethod-type-W.patch b/testing/qtmir/0001-Wayland-hack-set-maliit-server-to-inputmethod-type-W.patch
new file mode 100644
index 00000000000..6a6807d48c1
--- /dev/null
+++ b/testing/qtmir/0001-Wayland-hack-set-maliit-server-to-inputmethod-type-W.patch
@@ -0,0 +1,29 @@
+From 56bb606298f8f0e64d565e8b664836f7241c59c3 Mon Sep 17 00:00:00 2001
+From: Marius Gripsgard <marius@ubports.com>
+Date: Sun, 8 Sep 2019 19:54:55 +0200
+Subject: [PATCH 1/4] Wayland hack, set maliit-server to inputmethod type (WIP)
+
+---
+ src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+index d44e730b..6a4563b2 100644
+--- a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
++++ b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+@@ -131,6 +131,12 @@ namespace qtmir
+ parameters.size() = toMirSize(initialSize);
+ hasInitialSize = true;
+ }
++
++ auto surfaceName = requestParameters.name().is_set() ? requestParameters.name().value() : "";
++
++ if (surfaceName == "maliit-server") {
++ parameters.type() = mir_window_type_inputmethod;
++ }
+ }
+
+ if (!hasInitialSize &&
+--
+2.43.0
+
diff --git a/testing/qtmir/0002-Squash-of-miroil-patches.patch b/testing/qtmir/0002-Squash-of-miroil-patches.patch
new file mode 100644
index 00000000000..4c69f31bb86
--- /dev/null
+++ b/testing/qtmir/0002-Squash-of-miroil-patches.patch
@@ -0,0 +1,12405 @@
+From 336ebdc70b8401028c842ef2da7e6d5ee49e5081 Mon Sep 17 00:00:00 2001
+From: Marius Gripsgard <marius@ubports.com>
+Date: Tue, 25 Jan 2022 22:06:10 +0100
+Subject: [PATCH 2/4] Squash of miroil patches
+
+Squashed from upstream development in branch
+"personal/mariogrip/desktop-development", required for compatibility
+with Mir 2.x
+
+$ git diff 8291ea2ae..origin/personal/mariogrip/desktop-development
+---
+ .gitlab-ci.yml | 17 +
+ CMakeLists.txt | 16 +-
+ debian/changelog | 331 ++-
+ debian/control | 65 +-
+ debian/copyright | 150 +-
+ debian/libqtmirserver1.install | 1 -
+ debian/libqtmirserver2.install | 1 +
+ debian/libqtmirserver2.symbols | 2381 +++++++++++++++++
+ debian/qml-module-qtmir.install | 4 +-
+ debian/qtmir-tests.install | 1 -
+ debian/rules | 15 +-
+ debian/watch | 4 +
+ demos/qtmir-demo-shell/CMakeLists.txt | 1 +
+ demos/qtmir-demo-shell/Shell.qml | 5 +-
+ demos/qtmir-demo-shell/main.cpp | 17 +-
+ demos/qtmir-demo-shell/qml-demo-shell.qml | 2 +
+ .../display_configuration_policy.h | 14 +-
+ .../display_configuration_storage.h | 19 +-
+ include/{qtmir/miral => miroil}/display_id.h | 11 +-
+ include/{qtmir/miral => miroil}/edid.h | 11 +-
+ include/qtmir/displayconfigurationpolicy.h | 15 +-
+ include/qtmir/displayconfigurationstorage.h | 4 +-
+ include/qtmir/screen.h | 10 +-
+ include/qtmir/windowmanagementpolicy.h | 4 +-
+ src/common/debughelpers.cpp | 7 +
+ src/common/debughelpers.h | 6 +
+ src/common/windowcontrollerinterface.h | 6 +
+ src/common/windowmodelnotifier.h | 4 +
+ src/common/workspacecontrollerinterface.h | 2 -
+ src/modules/QtMir/Application/CMakeLists.txt | 6 +
+ src/modules/QtMir/Application/application.cpp | 16 +-
+ src/modules/QtMir/Application/application.h | 3 +
+ .../QtMir/Application/application_manager.cpp | 82 +
+ .../QtMir/Application/application_manager.h | 1 +
+ .../QtMir/Application/mirbuffersgtexture.cpp | 35 +-
+ .../QtMir/Application/mirbuffersgtexture.h | 2 +-
+ src/modules/QtMir/Application/mirsurface.cpp | 132 +-
+ src/modules/QtMir/Application/mirsurface.h | 12 +-
+ .../QtMir/Application/mirsurfaceinterface.h | 8 +-
+ .../QtMir/Application/mirsurfaceitem.cpp | 76 +-
+ src/modules/QtMir/Application/proc_info.cpp | 5 +
+ src/modules/QtMir/Application/proc_info.h | 1 +
+ src/modules/QtMir/Application/session.cpp | 8 +-
+ src/modules/QtMir/Application/session.h | 10 +-
+ .../QtMir/Application/taskcontroller.cpp | 8 +-
+ .../QtMir/Application/taskcontroller.h | 10 +-
+ src/platforms/mirserver/CMakeLists.txt | 52 +-
+ src/platforms/mirserver/eventbuilder.cpp | 103 +-
+ src/platforms/mirserver/eventbuilder.h | 40 +-
+ .../mirserver/inputdeviceobserver.cpp | 42 +-
+ src/platforms/mirserver/inputdeviceobserver.h | 14 +-
+ src/platforms/mirserver/logging.cpp | 1 +
+ src/platforms/mirserver/logging.h | 1 +
+ src/platforms/mirserver/miral/CMakeLists.txt | 14 -
+ src/platforms/mirserver/miroil/CMakeLists.txt | 1 +
+ .../miroil/include/miroil/compositor.h | 40 +
+ ...display_configuration_controller_wrapper.h | 51 +
+ .../include/miroil/display_listener_wrapper.h | 44 +
+ .../miroil/include/miroil/event_builder.h | 117 +
+ .../include/miroil}/eventdispatch.h | 14 +-
+ .../miroil/include/miroil/input_device.h | 52 +
+ .../include/miroil/input_device_observer.h | 40 +
+ .../include/miroil/mir_prompt_session.h | 48 +
+ .../miroil/include/miroil/mir_server_hooks.h | 57 +
+ .../include/miroil}/mirbuffer.h | 8 +-
+ .../include/miroil/open_gl_context.h} | 22 +-
+ .../include/miroil}/persist_display_config.h | 16 +-
+ .../include/miroil/prompt_session_listener.h | 49 +
+ .../include/miroil/prompt_session_manager.h | 51 +
+ .../miroil/include/miroil/set_compositor.h | 54 +
+ .../mirserver/miroil/include/miroil/surface.h | 77 +
+ .../miroil/include/miroil/surface_observer.h | 63 +
+ .../mirserver/miroil/src/CMakeLists.txt | 39 +
+ .../mirserver/miroil/src/compositor.cpp | 20 +
+ ...splay_configuration_controller_wrapper.cpp | 32 +
+ .../src}/display_configuration_policy.cpp | 7 +-
+ .../miroil/src/display_listener_wrapper.cpp | 41 +
+ .../mirserver/{miral => miroil/src}/edid.cpp | 10 +-
+ .../mirserver/miroil/src/event_builder.cpp | 116 +
+ .../{ => miroil/src}/eventdispatch.cpp | 5 +-
+ .../mirserver/miroil/src/input_device.cpp | 80 +
+ .../miroil/src/input_device_observer.cpp | 19 +
+ .../miroil/src/mir_prompt_session.cpp | 34 +
+ .../mirserver/miroil/src/mir_server_hooks.cpp | 252 ++
+ .../{miral => miroil/src}/mirbuffer.cpp | 6 +-
+ .../src/open_gl_context.cpp} | 39 +-
+ .../src}/persist_display_config.cpp | 95 +-
+ .../miroil/src/prompt_session_listener.cpp | 19 +
+ .../miroil/src/prompt_session_manager.cpp | 54 +
+ .../mirserver/miroil/src/set_compositor.cpp | 88 +
+ .../mirserver/miroil/src/surface.cpp | 267 ++
+ src/platforms/mirserver/miropenglcontext.cpp | 2 +-
+ src/platforms/mirserver/mirserverhooks.cpp | 229 --
+ src/platforms/mirserver/mirserverhooks.h | 57 -
+ src/platforms/mirserver/nativeinterface.cpp | 2 +-
+ src/platforms/mirserver/nativeinterface.h | 5 +-
+ src/platforms/mirserver/platformscreen.h | 8 +-
+ .../mirserver/promptsessionlistener.cpp | 49 +
+ .../mirserver/promptsessionlistener.h | 31 +-
+ .../mirserver/promptsessionmanager.cpp | 47 -
+ .../mirserver/promptsessionmanager.h | 49 -
+ src/platforms/mirserver/qmirserver.cpp | 3 +-
+ src/platforms/mirserver/qmirserver.h | 7 +-
+ src/platforms/mirserver/qmirserver_p.cpp | 113 +-
+ src/platforms/mirserver/qmirserver_p.h | 20 +-
+ src/platforms/mirserver/qtcompositor.cpp | 16 +
+ src/platforms/mirserver/qtcompositor.h | 7 +-
+ src/platforms/mirserver/qteventfeeder.h | 6 +
+ src/platforms/mirserver/qtwindowmanager.cpp | 80 +
+ ...{mircursorimages.cpp => qtwindowmanager.h} | 21 +-
+ src/platforms/mirserver/screenadaptor.cpp | 2 +-
+ src/platforms/mirserver/screenadaptor.h | 2 +-
+ src/platforms/mirserver/screenscontroller.cpp | 5 +-
+ src/platforms/mirserver/screenscontroller.h | 5 +-
+ src/platforms/mirserver/screensmodel.cpp | 12 +-
+ src/platforms/mirserver/screensmodel.h | 12 +-
+ src/platforms/mirserver/setqtcompositor.cpp | 83 -
+ src/platforms/mirserver/setqtcompositor.h | 47 -
+ src/platforms/mirserver/surfaceobserver.cpp | 5 +
+ .../mirserver/urlbuilderdispatcher.cpp | 56 +
+ .../mirserver/urlbuilderdispatcher.h | 47 +
+ .../wayland-generated/CMakeLists.txt | 24 +
+ .../qt-windowmanager_wrapper.cpp | 177 ++
+ .../qt-windowmanager_wrapper.h | 69 +
+ .../server-decoration_wrapper.cpp | 295 ++
+ .../server-decoration_wrapper.h | 107 +
+ .../xdg-decoration-unstable-v1_wrapper.cpp | 315 +++
+ .../xdg-decoration-unstable-v1_wrapper.h | 98 +
+ .../wayland-protocols/qt-windowmanager.xml | 58 +
+ .../wayland-protocols/server-decoration.xml | 85 +
+ .../xdg-decoration-unstable-v1.xml | 156 ++
+ .../wayland/kwinserverdecoration.cpp | 109 +
+ .../mirserver/wayland/kwinserverdecoration.h | 34 +
+ .../mirserver/wayland/xdgdecorationV1.cpp | 96 +
+ .../mirserver/wayland/xdgdecorationV1.h | 31 +
+ .../mirserver/windowmodelnotifier.cpp | 10 +
+ .../wrappedwindowmanagementpolicy.cpp | 73 +-
+ tests/framework/CMakeLists.txt | 2 +
+ tests/framework/mock_task_controller.cpp | 2 +-
+ tests/framework/mock_task_controller.h | 2 +-
+ tests/framework/qtmir_test.h | 4 +-
+ tests/mirserver/CMakeLists.txt | 1 +
+ tests/mirserver/EventBuilder/CMakeLists.txt | 3 +
+ tests/mirserver/ScreensModel/CMakeLists.txt | 2 +
+ tests/mirserver/ScreensModel/stub_display.h | 7 +-
+ .../ScreensModel/testable_screensmodel.h | 2 +-
+ .../URLBuilderDispatcher/CMakeLists.txt | 30 +
+ .../URLBuilderDispatcher/mock_services.h | 23 +-
+ .../urlbuilderdispatcher_test.cpp | 115 +
+ tests/mirserver/miral/CMakeLists.txt | 4 +-
+ tests/mirserver/miral/edid_test.cpp | 18 +-
+ tests/modules/Application/CMakeLists.txt | 2 +
+ .../modules/ApplicationManager/CMakeLists.txt | 2 +
+ tests/modules/Session/CMakeLists.txt | 2 +
+ tests/modules/Session/session_test.cpp | 2 +-
+ tests/modules/SurfaceManager/CMakeLists.txt | 2 +-
+ tests/modules/WindowManager/CMakeLists.txt | 2 +
+ 157 files changed, 7641 insertions(+), 1184 deletions(-)
+ create mode 100644 .gitlab-ci.yml
+ delete mode 100644 debian/libqtmirserver1.install
+ create mode 100644 debian/libqtmirserver2.install
+ create mode 100644 debian/libqtmirserver2.symbols
+ create mode 100644 debian/watch
+ rename include/{qtmir/miral => miroil}/display_configuration_policy.h (79%)
+ rename include/{qtmir/miral => miroil}/display_configuration_storage.h (79%)
+ rename include/{qtmir/miral => miroil}/display_id.h (66%)
+ rename include/{qtmir/miral => miroil}/edid.h (89%)
+ delete mode 100644 src/platforms/mirserver/miral/CMakeLists.txt
+ create mode 100644 src/platforms/mirserver/miroil/CMakeLists.txt
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/compositor.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/display_configuration_controller_wrapper.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/display_listener_wrapper.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/event_builder.h
+ rename src/platforms/mirserver/{ => miroil/include/miroil}/eventdispatch.h (75%)
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/input_device.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/input_device_observer.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/mir_prompt_session.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/mir_server_hooks.h
+ rename src/platforms/mirserver/{miral => miroil/include/miroil}/mirbuffer.h (94%)
+ rename src/platforms/mirserver/{openglcontextfactory.h => miroil/include/miroil/open_gl_context.h} (67%)
+ rename src/platforms/mirserver/{miral => miroil/include/miroil}/persist_display_config.h (78%)
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/prompt_session_listener.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/prompt_session_manager.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/set_compositor.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/surface.h
+ create mode 100644 src/platforms/mirserver/miroil/include/miroil/surface_observer.h
+ create mode 100644 src/platforms/mirserver/miroil/src/CMakeLists.txt
+ create mode 100644 src/platforms/mirserver/miroil/src/compositor.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/display_configuration_controller_wrapper.cpp
+ rename src/platforms/mirserver/{miral => miroil/src}/display_configuration_policy.cpp (73%)
+ create mode 100644 src/platforms/mirserver/miroil/src/display_listener_wrapper.cpp
+ rename src/platforms/mirserver/{miral => miroil/src}/edid.cpp (91%)
+ create mode 100644 src/platforms/mirserver/miroil/src/event_builder.cpp
+ rename src/platforms/mirserver/{ => miroil/src}/eventdispatch.cpp (87%)
+ create mode 100644 src/platforms/mirserver/miroil/src/input_device.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/input_device_observer.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/mir_prompt_session.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/mir_server_hooks.cpp
+ rename src/platforms/mirserver/{miral => miroil/src}/mirbuffer.cpp (97%)
+ rename src/platforms/mirserver/{openglcontextfactory.cpp => miroil/src/open_gl_context.cpp} (51%)
+ rename src/platforms/mirserver/{miral => miroil/src}/persist_display_config.cpp (74%)
+ create mode 100644 src/platforms/mirserver/miroil/src/prompt_session_listener.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/prompt_session_manager.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/set_compositor.cpp
+ create mode 100644 src/platforms/mirserver/miroil/src/surface.cpp
+ delete mode 100644 src/platforms/mirserver/mirserverhooks.cpp
+ delete mode 100644 src/platforms/mirserver/mirserverhooks.h
+ delete mode 100644 src/platforms/mirserver/promptsessionmanager.cpp
+ delete mode 100644 src/platforms/mirserver/promptsessionmanager.h
+ create mode 100644 src/platforms/mirserver/qtwindowmanager.cpp
+ rename src/platforms/mirserver/{mircursorimages.cpp => qtwindowmanager.h} (55%)
+ delete mode 100644 src/platforms/mirserver/setqtcompositor.cpp
+ delete mode 100644 src/platforms/mirserver/setqtcompositor.h
+ create mode 100644 src/platforms/mirserver/urlbuilderdispatcher.cpp
+ create mode 100644 src/platforms/mirserver/urlbuilderdispatcher.h
+ create mode 100644 src/platforms/mirserver/wayland-generated/CMakeLists.txt
+ create mode 100644 src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.cpp
+ create mode 100644 src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.h
+ create mode 100644 src/platforms/mirserver/wayland-generated/server-decoration_wrapper.cpp
+ create mode 100644 src/platforms/mirserver/wayland-generated/server-decoration_wrapper.h
+ create mode 100644 src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.cpp
+ create mode 100644 src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.h
+ create mode 100644 src/platforms/mirserver/wayland-protocols/qt-windowmanager.xml
+ create mode 100644 src/platforms/mirserver/wayland-protocols/server-decoration.xml
+ create mode 100644 src/platforms/mirserver/wayland-protocols/xdg-decoration-unstable-v1.xml
+ create mode 100644 src/platforms/mirserver/wayland/kwinserverdecoration.cpp
+ create mode 100644 src/platforms/mirserver/wayland/kwinserverdecoration.h
+ create mode 100644 src/platforms/mirserver/wayland/xdgdecorationV1.cpp
+ create mode 100644 src/platforms/mirserver/wayland/xdgdecorationV1.h
+ create mode 100644 tests/mirserver/URLBuilderDispatcher/CMakeLists.txt
+ rename src/platforms/mirserver/mircursorimages.h => tests/mirserver/URLBuilderDispatcher/mock_services.h (62%)
+ create mode 100644 tests/mirserver/URLBuilderDispatcher/urlbuilderdispatcher_test.cpp
+
+diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
+new file mode 100644
+index 00000000..c63abcd1
+--- /dev/null
++++ b/.gitlab-ci.yml
+@@ -0,0 +1,17 @@
++default:
++ image:
++ name: ubuntu:latest
++ before_script:
++ - apt-get update -yq
++ - DEBIAN_FRONTEND=noninteractive apt-get install -yq devscripts dput git-buildpackage debhelper dh-python pkg-kde-tools
++ - gpg -v --import <(echo "$GPG_PRIVATE_KEY")
++
++upload-ppa:
++ stage: deploy
++ only:
++ - lunar
++ script:
++ - gbp dch --auto -S --multimaint-merge --distribution lunar --force-distribution --ignore-branch
++ - debchange --release --distribution lunar --force-distribution ""
++ - dpkg-buildpackage -I".git" -I"build" -i"^.git|^build" -d -S
++ - dput ppa:mariogrip/butterfly-linux ../*_source.changes
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1c5aace0..72f90b42 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -3,8 +3,8 @@ cmake_minimum_required(VERSION 3.1)
+ project(qtmir)
+
+ set(QTMIR_VERSION_MAJOR 0)
+-set(QTMIR_VERSION_MINOR 7)
+-set(QTMIR_VERSION_PATCH 2)
++set(QTMIR_VERSION_MINOR 8)
++set(QTMIR_VERSION_PATCH 0)
+
+ set(QTMIR_VERSION ${QTMIR_VERSION_MAJOR}.${QTMIR_VERSION_MINOR}.${QTMIR_VERSION_PATCH})
+
+@@ -32,7 +32,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -fno-strict-aliasing -Wextra")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
+
+-set (CMAKE_CXX_STANDARD 14)
++set (CMAKE_CXX_STANDARD 17)
+
+ if ("${CMAKE_CXX_COMPILER}" MATCHES "clang")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage -Wno-mismatched-tags -Wno-inconsistent-missing-override -Wno-implicit-exception-spec-mismatch -Wno-unknown-pragmas")
+@@ -66,6 +66,7 @@ add_custom_target(cppcheck COMMAND cppcheck --enable=all -q --error-exitcode=2
+
+ option(WITH_CONTENTHUB "Build with content-hub" OFF)
+ option(WITH_VALGRIND "Build with Valgrind detection" ON)
++option(WITH_MIR2 "Build with mir 2.x" OFF)
+
+ include(FindPkgConfig)
+ find_package(Qt5Core 5.9 REQUIRED)
+@@ -79,9 +80,16 @@ find_package(Qt5Test 5.9 REQUIRED)
+ find_package(Threads REQUIRED)
+
+ pkg_check_modules(MIRSERVER mirserver>=0.26 REQUIRED)
++if(WITH_MIR2)
++pkg_check_modules(MIROIL miroil REQUIRED)
++else()
+ pkg_check_modules(MIRCLIENT mirclient>=0.26 REQUIRED)
++endif()
+ pkg_check_modules(MIRRENDERERGLDEV mir-renderer-gl-dev>=0.26 REQUIRED)
+ pkg_check_modules(MIRAL miral>=1.1.0 REQUIRED)
++pkg_check_modules(MIRWAYLAND mirwayland REQUIRED)
++pkg_check_modules(WAYLAND_CLIENT REQUIRED wayland-client)
++pkg_check_modules(WAYLAND_SERVER REQUIRED wayland-server)
+
+ pkg_check_modules(XKBCOMMON xkbcommon REQUIRED)
+ pkg_check_modules(GLIB glib-2.0 REQUIRED)
+@@ -165,7 +173,7 @@ endif()
+ add_definitions(-DQT_NO_KEYWORDS)
+
+ # Tests
+-if (NO_TESTS)
++if (NO_TESTS OR WITH_MIR2)
+ message(STATUS "Tests disabled")
+ else()
+ include(CTest)
+diff --git a/debian/changelog b/debian/changelog
+index 4405cb42..b467f2ca 100644
+--- a/debian/changelog
++++ b/debian/changelog
+@@ -7,26 +7,329 @@ qtmir (0.7.2) unstable; urgency=medium
+
+ qtmir (0.7.1) unstable; urgency=medium
+
+- * Upstream-provided Debian package for qtmir. See upstream ChangeLog
+- for recent changes.
++ [ Mike Gabriel ]
++ * debian/rules:
++ + Don't hard-code architectures with valgrind support. Simply disable
++ valgrind if not found in $PATH. (Closes: #1022222).
++ * debian/control:
++ + Bump to versioned B-D on liblomiri-api-dev (>= 0.2.0).
+
+- -- UBports developers <developers@ubports.com> Mon, 02 Jan 2023 03:07:10 +0100
++ [ Marius Gripsgard ]
++ * New git snapshot
+
+-qtmir (0.7.0) unstable; urgency=medium
++ -- Marius Gripsgard <marius@ubports.com> Wed, 08 Feb 2023 00:44:49 +0100
+
++qtmir (0.8.0~git20230115.30c2337-3) unstable; urgency=medium
+
+- [ UBports developers ]
+- * Upstream-provided Debian package for qtmir. See upstream ChangeLog
+- for recent changes.
++ * debian/.install: Spesify that we only want xwayland desktop & icon
++ file in qml-module-qtmir (closes: #1029291)
++
++ -- Marius Gripsgard <marius@ubports.com> Sun, 22 Jan 2023 05:54:37 +0000
++
++qtmir (0.8.0~git20230115.30c2337-2) unstable; urgency=medium
++
++ * debian/control: Drop mir-pref-framework from qtmir-tests (closes: #1029015)
++
++ -- Marius Gripsgard <marius@ubports.com> Tue, 17 Jan 2023 22:18:34 +0000
++
++qtmir (0.8.0~git20230115.30c2337-1) unstable; urgency=medium
++
++ * New git snapshot (0.8.0~git20230115.30c2337)
++ * debian/*.symbols: Refresh symbols using pkgkde
++ * debian/patches: Refresh patch to match new git snapshot
++ * debian/copyright: Refresh copyright to match new git snapshot
++ * debian/.install: Install x11 desktop file and icon
++
++ -- Marius Gripsgard <marius@ubports.com> Sun, 15 Jan 2023 20:23:41 +0100
++
++qtmir (0.8.0~git20230109.671f617-3) unstable; urgency=medium
++
++ * Now!!! Really re-upload as is to unstable.
++
++ -- Mike Gabriel <sunweaver@debian.org> Fri, 13 Jan 2023 16:45:56 +0100
++
++qtmir (0.8.0~git20230109.671f617-2) experimental; urgency=medium
++
++ * Re-upload as is to unstable.
++
++ -- Mike Gabriel <sunweaver@debian.org> Fri, 13 Jan 2023 13:23:18 +0100
++
++qtmir (0.8.0~git20230109.671f617-1) experimental; urgency=medium
++
++ * Upload to experimental.
++
++ [ Marius Gripsgard ]
++ * New git snapshot (based on ubports/focal_-_mir2 branch)
++ * debian/*:
++ + Bump libqtmirserver soname version to 2
++ * debian/control:
++ + Bump mir requirement to 2.11 and add miroil-dev as B-D.
++ * debian/rules:
++ + Build with MIR2 option enabled.
++ * debian/watch:
++ + Update watch to pull git branch.
++ * debian/copyright:
++ + Refresh copyright to match new git snapshot
++ * debian/*.symbols:
++ + Refresh symbols using pkgkde.
++
++ [ Mike Gabriel ]
++ * debian/copyright:
++ + Update auto-generated copyright.in file.
++ + Update attributions for debian/.
++ * debian/changelog:
++ + Amend white-space issue.
++
++ -- Mike Gabriel <sunweaver@debian.org> Tue, 10 Jan 2023 08:07:55 +0100
++
++qtmir (0.7.1-3) unstable; urgency=medium
++
++ * [debian/.symbols] Refresh symbols using pkgkde
++
++ -- Marius Gripsgard <marius@ubports.com> Tue, 03 Jan 2023 10:38:41 +0100
++
++qtmir (0.7.1-2) unstable; urgency=medium
++
++ * debian/rules:
++ - Disable valgrind on mipsel due to known issues with valgrind on mipsel
++
++ -- Marius Gripsgard <marius@ubports.com> Mon, 02 Jan 2023 12:04:30 +0100
++
++qtmir (0.7.1-1) unstable; urgency=medium
++
++ * New upstream release v0.7.1
++ * Drop upstreamed patch:
++ - 0001_remove-unused-gmock-fixes.patch
++ * Refresh libqtmirserver1 symbols using pkgkde
++ * Update copyright to match new upstream release v0.7.1
++
++ -- Marius Gripsgard <marius@ubports.com> Mon, 02 Jan 2023 03:25:08 +0100
++
++qtmir (0.7.0-4) unstable; urgency=medium
++
++ * debian/libqtmirserver1.symbols:
++ + Update symbols. (Closes: #1021359).
++
++ -- Mike Gabriel <sunweaver@debian.org> Fri, 07 Oct 2022 09:20:06 +0200
++
++qtmir (0.7.0-3) unstable; urgency=medium
++
++ * debian/patches:
++ + Cherry-picḱ 0001_remove-unused-gmock-fixes.patch. (Closes: #1015133).
++ * debian/:
++ + Update upstream Git repo URL.
++ * debian/control:
++ + Bump Standards-Version: to 4.6.1. No changes needed.
++ * debian/libqtmirserver1.symbols:
++ + Update .symbols for gcc-12 rebuild.
++ * debian/copyright:
++ + Update copyright attributions for debian/*.
++
++ -- Mike Gabriel <sunweaver@debian.org> Wed, 05 Oct 2022 21:03:05 +0200
++
++qtmir (0.7.0-2) unstable; urgency=medium
++
++ [ Mike Gabriel ]
++ * debian/control:
++ + Update Homepage: field. Use upstream GitLab URL (instead of deprecated
++ Github URL).
+
+- -- UBports developers <developers@ubports.com> Fri, 22 Apr 2022 06:26:25 +0200
++ [ Marius Gripsgard ]
++ * debian/libqtmirserver1.symbols:
++ + Refresh symbol file from buildd logs using pkgkde-symbolshelper.
+
+-qtmir (0.6.1-0) unstable; urgency=medium
++ -- Mike Gabriel <sunweaver@debian.org> Wed, 25 May 2022 23:48:32 +0200
+
+- * Upstream-provided Debian package for qtmir.
+- See upstream ChangeLog for recent changes.
++qtmir (0.7.0-1) unstable; urgency=medium
+
+- -- UBports Team <developers@ubports.com> Mon, 28 Sep 2020 10:08:12 +0200
++ [ Marius Gripsgard ]
++ * New upstream release v0.7.0
++ * debian/patches: Drop upstreamed and unneeded patches, refresh patches:
++ + Drop upstreamed and unneeded patches:
++ - 0001_demo-fix-detecting-running-installed.patch
++ - 0002_demos-fix-application-name.patch
++ - 1002_drop-cgmanager-dependency.patch
++ - 1003_INSTANTIATE_TEST_SUITE.patch
++ - 1004_remove-cmake-instructions-that-have-been-moved-into-FindGMock.patch
++ - 1005_add-missing-pthread-to-link-target.patch
++ - 1006_make-sure-tracepoints-h-exists.patch
++ - 1007_make-valgrind-dependency-optional.patch
++ - 1008_drop-Werror-enforcement-leave-it-to-configure-option.patch
++ - 2001_no-convert-to-gles-test.patch
++ - 2004_qml-demo-shell-work-without-ui-toolkit.patch
++ + Refreshed patches:
++ - 2002_no-requires-provides-check.patch
++ - 2003_disable-benchmarks.patch
++ * debian/copyright: Update copyright to match new upstream release
++ * debian/symbols: Update symbols to match new upstream release
++ * debian/control: Drop qtmir-{android/desktop} and use a generic qtmir package
++ * debian/control: Add myself as uploader
++ * debian/control: Bump required versions for cmake-extras and googletest
++ * debian/rules: Clean up rules and remove dual binary build (was for
++ android/desktop split)
++ * debian/qtmir-tests: Rename paths to match upstream renames
++ * debian/control: Add qml-module-lomiri-components as DEP for qtmir-tests
++
++ [ Mike Gabriel ]
++ * debian/copyright:
++ + Update auto-generated copyright.in file.
++ + Update more copyright attributions, finalize for upload.
++ * debian/control:
++ + Improve transitional packages, provide former info on the packages'
++ content. Thanks, lintian.
++
++ -- Mike Gabriel <sunweaver@debian.org> Sat, 23 Apr 2022 09:45:49 +0200
++
++qtmir (0.6.1-8) unstable; urgency=medium
++
++ * debian/rules:
++ + Comment out DPKG_GENSYMBOLS_CHECK_LEVEL=4. Let's use level 1 (default)
++ and receive less build failures. (related to #997464).
++ * debian/control:
++ + Bump Standards-Version: to 4.6.0. No changes needed.
++ * debian/libqtmirserver1.symbols:
++ + Update symbols after build with gcc-11. (Closes: #997464).
++
++ -- Mike Gabriel <sunweaver@debian.org> Sat, 13 Nov 2021 21:05:14 +0100
++
++qtmir (0.6.1-7) unstable; urgency=medium
++
++ * debian/libqtmirserver1.symbols:
++ + Update for architectures arm64, m68k, mips64el and sh4.
++
++ -- Mike Gabriel <sunweaver@debian.org> Sun, 14 Mar 2021 21:36:52 +0100
++
++qtmir (0.6.1-6) unstable; urgency=medium
++
++ * debian/control:
++ + Limit qtmir to linux-any architecture builds.
++ * debian/patches:
++ + Add 0001_demo-fix-detecting-running-installed.patch,
++ 0002_demos-fix-application-name.patch. Fix loading demo shell and demo
++ client.
++ + Add 2004_qml-demo-shell-work-without-ui-toolkit.patch. Make qml-demo-shell
++ work without lomiri-ui-toolkit.
++ * debian/rules:
++ + Move qtmir-demo-shell files to the correct location.
++ * debian/qtmir-tests.install:
++ + Pick up files for qtmir-demo-shell and qtmir-demo-client from the correct
++ location (as moved around by d/rules).
++
++ -- Mike Gabriel <sunweaver@debian.org> Wed, 10 Mar 2021 21:08:51 +0100
++
++qtmir (0.6.1-5) unstable; urgency=medium
++
++ * debian/control:
++ + Replace D (qtmir-tests): qtdeclarative5-qtmir-plugin by qml-module-qtmir,
++ drop from D (qtmir-tests): autopilot-qt5 and python3-autopilot. (Closes:
++ #977134).
++ + Bump Standards-Version: to 4.5.1. No changes needed.
++ * debian/qtmir-tests.install:
++ + Drop DATADIR/qtmir/benachmarks/* from qtmir-tests bin:pkg.
++ * debian/patches:
++ + Add 2003_disable-benchmarks.patch. No autopilot in Debian, so let's build
++ qtmir without dependency on it (i.e. without benchmarks).
++
++ -- Mike Gabriel <sunweaver@debian.org> Wed, 16 Dec 2020 16:32:50 +0100
++
++qtmir (0.6.1-4) unstable; urgency=medium
++
++ * debian/libqtmirserver1.symbols:
++ + Update for armel architecture. (Closes: #973423).
++
++ -- Mike Gabriel <sunweaver@debian.org> Fri, 30 Oct 2020 19:56:05 +0100
++
++qtmir (0.6.1-3) unstable; urgency=medium
++
++ * debian/patches:
++ + Add 1008_drop-Werror-enforcement-leave-it-to-configure-option.patch. Fix
++ disabling -Werror via CMake configure option.
++ * debian/rules:
++ + Build with CMake option '-DWerror=OFF'. (Closes: #973437).
++ * debian/libqtmirserver1.symbols:
++ + Update after rebuild against Qt 5.15 (amd64 only for now).
++
++ -- Mike Gabriel <sunweaver@debian.org> Fri, 30 Oct 2020 17:45:48 +0100
++
++qtmir (0.6.1-2) unstable; urgency=medium
++
++ * debian/control:
++ + Only require valgrind as B-D on architectures where it is available on.
++ * debian/patches:
++ + Add 1007_make-valgrind-dependency-optional.patch. Make Valgrind an
++ optional build dependency.
++ * debian/libqtmirserver1.symbols:
++ + Update symbols for armhf i386 mipsel ppc64el.
++
++ -- Mike Gabriel <sunweaver@debian.org> Wed, 28 Oct 2020 14:33:37 +0100
++
++qtmir (0.6.1-1) unstable; urgency=medium
++
++ * Initial upload to Debian (Closes: #971257).
++ * debian/*:
++ + Rename bin:pkg qtdeclarative5-qtmir-plugin to qml-module-qtmir.
++ * debian/watch:
++ + Add file.
++ * debian/control:
++ + Adjust B-Ds for googletest.
++ + Drop B-D libcontent-hub-dev.
++ + Drop B-D on libcgmanager-dev. (Package not available in Debian anymore).
++ + Drop B-D on libmirclient-dev. Not required anymore with qtmir 0.6.1.
++ + Fix dev:pkg name provided by lomiri-app-launch.
++ + Fix versioned B-D on lomiri-api-dev. Remnant of Unity8 -> Lomiri
++ migration.
++ + Update versioned B-D: cmake-extras (>= 1.5-4~).
++ + Drop from B-D: qt5-default (meta package).
++ + Bump Standards-Version: to 4.5.0. No changes needed.
++ + Bump DH compat level to version 13.
++ + Add Vcs-*: fields.
++ + Assure binNMU'ability between bin:pkgs in this src:pkg.
++ + Add Rules-Requires-Root: field and set it to 'no'.
++ + Add B-D pkg-kde-tools.
++ + Drop Section: field duplicating global Section: field.
++ + Improve LONG_DESCRIPTION fields of two bin:pkgs.
++ + Turn bin:pkg qtmir-tests into Multi-Arch: foreign.
++ + Move qtmir-tests bin:pkg into section 'libdevel'.
++ + Adjust Maintainer: field and Uploaders: field to official upload to
++ Debian.
++ + Add Debian Qt/KDE Maintainers to Uploaders: field.
++ * debian/rules:
++ + Add get-orig-source target.
++ + Move --fail-missing flag into dh_missing override.
++ + Remove build-*/ during dh_clean. Makes build idempotent.
++ + Don't build WITH_CONTENTHUB anymore. Obsolete in qtmir 0.6.1.
++ + Drop now default --parallel DH build option.
++ + Enable all hardening build flags.
++ + Build with pkgkde_symbolshelper.
++ * debian/patches:
++ + Add 1002_drop-cgmanager-dependency.patch. Rip out cgmanager dependent
++ code. This has been sanctioned by upstream.
++ + Add 1003_INSTANTIATE_TEST_SUITE.patch. Use INSTANTIATE_TEST_SUITE macro,
++ rather than deprecated INSTANTIATE_TEST_CASE macro.
++ + Add 1004_remove-cmake-instructions-that-have-been-moved-into-
++ FindGMock.patch. Drop CMake instructions that have been moved into
++ FindGMock of cmake-extras.
++ + Add 1005_add-missing-pthread-to-link-target.patch. Add missing -pthread
++ linker argument. Probably to hard-coded, but works for now.
++ + Add 2001_no-convert-to-gles-test.patch and 2002_no-requires-provides-
++ check.patch. Disable tests fiddling around with files in debian/*. Not
++ wanted by Debian maintainer.
++ + Add 1006_make-sure-tracepoints-h-exists.patch. Make sure tracepoints.h
++ exists for building library 'qtmirserver-mirserver'.
++ + Add upstream bugs for all 100* patches.
++ + Refer to a bug report for Debian-specific patches 200*_*.patch.
++ * debian/source/format:
++ + Add file.
++ * debian/copyright:
++ + Add auto-generated copyright.in file.
++ + Rework copyright attributions, use individual-code-file style.
++ + Also mention files we remove via patch.
++ * debian/upstream/metadata:
++ + Add file. Comply with DEP-12.
++ * debian/libqtmirserver1.symbols:
++ + Add file.
++
++ -- Mike Gabriel <sunweaver@debian.org> Sun, 25 Oct 2020 01:31:45 +0200
+
+ qtmir (0.6.0ubuntu5) xenial; urgency=medium
+
+@@ -44,7 +347,7 @@ qtmir (0.6.0ubuntu5) xenial; urgency=medium
+
+ qtmir (0.5.3+ubports1) xenial; urgency=medium
+
+- * Import to ubports
++ * Import to ubports
+
+ -- Marius Gripsgard <marius@ubports.com> Thu, 28 Dec 2017 04:30:55 +0100
+
+@@ -982,7 +1285,7 @@ qtmir (0.4.6+15.04.20150827.1-0ubuntu1) vivid; urgency=medium
+
+ qtmir (0.4.5+15.10.20150817-0ubuntu1) wily; urgency=medium
+
+- *
++ *
+
+ -- CI Train Bot <ci-train-bot@canonical.com> Mon, 17 Aug 2015 19:28:26 +0000
+
+diff --git a/debian/control b/debian/control
+index a1489e85..9c5b5631 100644
+--- a/debian/control
++++ b/debian/control
+@@ -1,21 +1,24 @@
+ Source: qtmir
+ Section: libs
+ Priority: optional
+-Maintainer: UBports Developers <developers@ubports.com>
++Maintainer: Debian UBports Team <team+ubports@tracker.debian.org>
++Uploaders:
++ Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>,
++ Mike Gabriel <sunweaver@debian.org>,
++ Marius Gripsgard <marius@ubports.com>,
+ Build-Depends: cmake,
+ cmake-extras (>= 1.6~),
+- debhelper-compat (= 12),
++ debhelper-compat (= 13),
+ googletest (>= 1.10.0),
+- libcontent-hub-dev (>= 1.0.0),
+ libfontconfig1-dev,
+ libgles2-mesa-dev,
+ libglib2.0-dev,
+ libgsettings-qt-dev,
+ libgtest-dev,
+ liblttng-ust-dev,
+- libmiral-dev (>= 1.2),
+- libmircommon-dev (>= 0.26.0),
+- libmirserver-dev (>= 0.26.0),
++ libmiral-dev (>= 3.0),
++ libmircommon-dev (>= 2.11.0),
++ libmirserver-dev (>= 2.11.0),
+ libmtdev-dev,
+ libprocess-cpp-dev,
+ libqt5sensors5-dev,
+@@ -27,9 +30,13 @@ Build-Depends: cmake,
+ liblomiri-url-dispatcher-dev,
+ libxkbcommon-dev,
+ libxrender-dev,
+- mir-renderer-gl-dev (>= 0.26.0),
+- mirtest-dev (>= 0.26.0),
++ mir-renderer-gl-dev (>= 2.11.0),
++ mirtest-dev (>= 2.11.0),
++ libmiroil-dev,
++ libmirwayland-dev,
++ libwayland-dev,
+ pkg-config,
++ pkg-kde-tools,
+ # lttng-gen-ts needs python3, but doesn't depend on it itself: bug 1359147
+ python3:any,
+ qtbase5-dev,
+@@ -37,15 +44,17 @@ Build-Depends: cmake,
+ qtdeclarative5-dev,
+ qtdeclarative5-private-dev,
+ quilt,
+- valgrind [amd64 arm64 armhf i386 mips64el mipsel ppc64el s390x powerpc ppc64 x32],
++ valgrind-if-available,
+ # libmirserver-dev should have brought this dep. Bug lp:1617435
+ uuid-dev,
+ # mirtest pkgconfig requires these, but doesn't have a deb dependency. Bug lp:1633537
+ libboost-filesystem-dev,
+ libboost-system-dev,
+-Standards-Version: 4.5.1
++Standards-Version: 4.6.1
+ Rules-Requires-Root: no
+-Homepage: https://github.com/ubports/qtmir
++Homepage: https://gitlab.com/ubports/development/core/qtmir
++Vcs-Git: https://salsa.debian.org/ubports-team/qtmir.git
++Vcs-Browser: https://salsa.debian.org/ubports-team/qtmir
+
+ Package: qtmir
+ Architecture: linux-any
+@@ -65,19 +74,29 @@ Package: qtmir-android
+ Architecture: armhf arm64
+ Multi-Arch: same
+ Depends: qtmir, ${misc:Depends},
+-Priority: optional
+ Section: oldlibs
+-Description: transitional package
+- This is a transitional package. It can safely be removed.
++Description: QPA plugin for a Mir server (mobile, transitional package)
++ QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
++ It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
++ a Mir server. It also exposes some internal Mir functionality.
++ .
++ This variant of the package is for Android-based phones and tablets.
++ .
++ This is a transitional package. It can safely be removed.
+
+ Package: qtmir-desktop
+ Architecture: linux-any
+ Multi-Arch: same
+ Depends: qtmir, ${misc:Depends},
+-Priority: optional
+ Section: oldlibs
+-Description: transitional package
+- This is a transitional package. It can safely be removed.
++Description: QPA plugin for a Mir server (desktop, transitional package)
++ QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
++ It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
++ a Mir server. It also exposes some internal Mir functionality.
++ .
++ This variant of the package is for GNU-based desktops.
++ .
++ This is a transitional package. It can safely be removed.
+
+ Package: libqtmirserver-dev
+ Section: libdevel
+@@ -86,7 +105,8 @@ Multi-Arch: same
+ Pre-Depends: ${misc:Pre-Depends}
+ Depends: qtmir (= ${binary:Version}),
+ ${misc:Depends},
+- libmiral-dev (>= 1.3.0),
++ libmiral-dev (>= 3.0),
++ libmiroil-dev,
+ Description: Developer files for QtMir server API
+ QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
+ It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
+@@ -94,7 +114,7 @@ Description: Developer files for QtMir server API
+ .
+ This package contains the library headers for developers.
+
+-Package: libqtmirserver1
++Package: libqtmirserver2
+ Architecture: linux-any
+ Multi-Arch: same
+ Pre-Depends: ${misc:Pre-Depends}
+@@ -115,7 +135,7 @@ Depends: qtmir (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+ Provides: lomiri-application-impl,
+- lomiri-application-impl-28,
++ lomiri-application-impl-27,
+ Description: Qt/QML module for Lomiri specific Mir APIs
+ QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
+ It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
+@@ -133,16 +153,11 @@ Pre-Depends: ${misc:Pre-Depends},
+ Depends: littler,
+ lttng-tools,
+ mir-test-tools,
+- python3-autopilot,
+- python3-babeltrace,
+- python3-evdev,
+- python3-mir-perf-framework,
+ qml-module-lomiri-components,
+ qml-module-qtmir,
+ qtmir (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+-Recommends: autopilot-qt5,
+ Description: QtMir tests and demos
+ QtMir is a set of Qt5 components to enable one to write a Mir server with Qt.
+ It contains a QPA (Qt Platform Abstraction) plugin which creates and manages
+diff --git a/debian/copyright b/debian/copyright
+index ca90ebf9..88486c50 100644
+--- a/debian/copyright
++++ b/debian/copyright
+@@ -1,12 +1,12 @@
+ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+ Upstream-Name: qtmir
+ Upstream-Contact: Marius Gripsgard <marius@ubports.com>
+-Source: https://gitlab.com/ubports/core/qtmir/
++Source: https://gitlab.com/ubports/development/core/qtmir/
+
+-Files: demos/qml-demo-shell/screens.cpp
+- demos/qml-demo-shell/screens.h
+- demos/qml-demo-shell/screenwindow.cpp
+- demos/qml-demo-shell/screenwindow.h
++Files: demos/qtmir-demo-shell/screens.cpp
++ demos/qtmir-demo-shell/screens.h
++ demos/qtmir-demo-shell/screenwindow.cpp
++ demos/qtmir-demo-shell/screenwindow.h
+ include/qtmir/displayconfigurationpolicy.h
+ include/qtmir/displayconfigurationstorage.h
+ include/qtmir/mirserverapplication.h
+@@ -26,19 +26,18 @@ Files: demos/qml-demo-shell/screens.cpp
+ src/common/workspacecontrollerinterface.h
+ src/modules/QtMir/Application/application.cpp
+ src/modules/QtMir/Application/application.h
++ src/modules/QtMir/Application/application_manager.cpp
+ src/modules/QtMir/Application/application_manager.h
+ src/modules/QtMir/Application/applicationinfo.h
+- src/modules/QtMir/Application/cgmanager.cpp
+- src/modules/QtMir/Application/cgmanager.h
+ src/modules/QtMir/Application/compositortextureprovider.cpp
+ src/modules/QtMir/Application/compositortextureprovider.h
+ src/modules/QtMir/Application/dbusfocusinfo.cpp
+ src/modules/QtMir/Application/dbusfocusinfo.h
+ src/modules/QtMir/Application/gscopedpointer.h
+- src/modules/QtMir/Application/mirbuffersgtexture.cpp
+ src/modules/QtMir/Application/mirbuffersgtexture.h
+ src/modules/QtMir/Application/mirsurface.h
+ src/modules/QtMir/Application/mirsurfaceinterface.h
++ src/modules/QtMir/Application/mirsurfaceitem.cpp
+ src/modules/QtMir/Application/mirsurfaceitem.h
+ src/modules/QtMir/Application/objectlistmodel.h
+ src/modules/QtMir/Application/plugin.cpp
+@@ -78,8 +77,6 @@ Files: demos/qml-demo-shell/screens.cpp
+ src/platforms/mirserver/inputdeviceobserver.h
+ src/platforms/mirserver/logging.cpp
+ src/platforms/mirserver/logging.h
+- src/platforms/mirserver/mircursorimages.cpp
+- src/platforms/mirserver/mircursorimages.h
+ src/platforms/mirserver/mirdisplayconfigurationobserver.cpp
+ src/platforms/mirserver/mirdisplayconfigurationobserver.h
+ src/platforms/mirserver/mirglconfig.h
+@@ -107,6 +104,7 @@ Files: demos/qml-demo-shell/screens.cpp
+ src/platforms/mirserver/qmirserver_p.h
+ src/platforms/mirserver/qtcompositor.cpp
+ src/platforms/mirserver/qtcompositor.h
++ src/platforms/mirserver/qteventfeeder.cpp
+ src/platforms/mirserver/qteventfeeder.h
+ src/platforms/mirserver/screenadaptor.cpp
+ src/platforms/mirserver/screenadaptor.h
+@@ -130,6 +128,7 @@ Files: demos/qml-demo-shell/screens.cpp
+ src/platforms/mirserver/windowmodelnotifier.cpp
+ src/platforms/mirserver/workspacecontroller.cpp
+ src/platforms/mirserver/workspacecontroller.h
++ src/platforms/mirserver/wrappedsessionauthorizer.cpp
+ src/platforms/mirserver/wrappedsessionauthorizer.h
+ src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+ src/platforms/mirserver/wrappedwindowmanagementpolicy.h
+@@ -214,8 +213,10 @@ Copyright: 2011-2014, Canonical, Ltd.
+ 2017, Canonical, Ltd.
+ License: LGPL-3
+
+-Files: CMakeLists.txt
+- Jenkinsfile
++Files:
++ AUTHORS
++ CMakeLists.txt
++ ChangeLog
+ NEWS
+ README
+ benchmarks/CMakeLists.txt
+@@ -225,24 +226,27 @@ Files: CMakeLists.txt
+ cmake/modules/QmlTest.cmake
+ cmake/modules/UseLttngGenTp.cmake
+ cmake/modules/autopilot.cmake
++ data/CMakeLists.txt
++ data/xwayland.qtmir.desktop
++ data/xwayland.qtmir.png
+ demos/CMakeLists.txt
+- demos/qml-demo-client/CMakeLists.txt
+- demos/qml-demo-client/MovingRect.qml
+- demos/qml-demo-client/qml-demo-client.qml
+- demos/qml-demo-client/qtmir-demo-client.desktop.in
+- demos/qml-demo-shell/Button.qml
+- demos/qml-demo-shell/CMakeLists.txt
+- demos/qml-demo-shell/ResizeArea.qml
+- demos/qml-demo-shell/ScreenConfiguration.qml
+- demos/qml-demo-shell/Shell.qml
+- demos/qml-demo-shell/TitleBar.qml
+- demos/qml-demo-shell/UnityLogo.png
+- demos/qml-demo-shell/Window.qml
+- demos/qml-demo-shell/WindowBufferSized.qml
+- demos/qml-demo-shell/WindowModelDebugView.qml
+- demos/qml-demo-shell/qml-demo-shell.qml
+- demos/qml-demo-shell/qml-demo-shell.qmlproject
+- include/qtmir/miral/display_id.h
++ demos/qtmir-demo-client/CMakeLists.txt
++ demos/qtmir-demo-client/MovingRect.qml
++ demos/qtmir-demo-client/qml-demo-client.qml
++ demos/qtmir-demo-client/qtmir-demo-client.desktop.in
++ demos/qtmir-demo-shell/Button.qml
++ demos/qtmir-demo-shell/CMakeLists.txt
++ demos/qtmir-demo-shell/ResizeArea.qml
++ demos/qtmir-demo-shell/ScreenConfiguration.qml
++ demos/qtmir-demo-shell/Shell.qml
++ demos/qtmir-demo-shell/TitleBar.qml
++ demos/qtmir-demo-shell/UnityLogo.png
++ demos/qtmir-demo-shell/Window.qml
++ demos/qtmir-demo-shell/WindowBufferSized.qml
++ demos/qtmir-demo-shell/WindowModelDebugView.qml
++ demos/qtmir-demo-shell/qml-demo-shell.qml
++ demos/qtmir-demo-shell/qml-demo-shell.qmlproject
++ include/miroil/display_id.h
+ include/qtmir/qtmir.h
+ src/CMakeLists.txt
+ src/common/timestamp.cpp
+@@ -255,14 +259,14 @@ Files: CMakeLists.txt
+ src/modules/QtMir/CMakeLists.txt
+ src/platforms/CMakeLists.txt
+ src/platforms/mirserver/CMakeLists.txt
+- src/platforms/mirserver/miral/CMakeLists.txt
++ src/platforms/mirserver/miroil/CMakeLists.txt
++ src/platforms/mirserver/miroil/src/CMakeLists.txt
+ src/platforms/mirserver/mirserver.json
+ src/platforms/mirserver/qtmir.cpp
+ src/platforms/mirserver/qtmirserver.pc.in
+ src/platforms/mirserver/tracepoints.tp
+ tests/CMakeLists.txt
+ tests/check-requires-provides.sh
+- tests/convert-to-gles.sh
+ tests/framework/CMakeLists.txt
+ tests/framework/mock_persistent_surface_store.h
+ tests/mirserver/CMakeLists.txt
+@@ -288,39 +292,59 @@ Comment:
+ Assuming same license as for the majority of code files,
+ assuming same copyright holders.
+
+-Files: include/qtmir/miral/display_configuration_policy.h
+- include/qtmir/miral/display_configuration_storage.h
+- include/qtmir/miral/edid.h
+- src/platforms/mirserver/eventdispatch.cpp
+- src/platforms/mirserver/eventdispatch.h
+- src/platforms/mirserver/miral/display_configuration_policy.cpp
+- src/platforms/mirserver/miral/edid.cpp
+- src/platforms/mirserver/miral/mirbuffer.cpp
+- src/platforms/mirserver/miral/mirbuffer.h
+- src/platforms/mirserver/miral/persist_display_config.cpp
+- src/platforms/mirserver/miral/persist_display_config.h
+- src/platforms/mirserver/mirserverhooks.cpp
+- src/platforms/mirserver/mirserverhooks.h
+- src/platforms/mirserver/openglcontextfactory.cpp
+- src/platforms/mirserver/openglcontextfactory.h
++Files: include/miroil/display_configuration_policy.h
++ include/miroil/display_configuration_storage.h
++ include/miroil/edid.h
++ src/platforms/mirserver/miroil/include/miroil/compositor.h
++ src/platforms/mirserver/miroil/include/miroil/display_configuration_controller_wrapper.h
++ src/platforms/mirserver/miroil/include/miroil/display_listener_wrapper.h
++ src/platforms/mirserver/miroil/include/miroil/event_builder.h
++ src/platforms/mirserver/miroil/include/miroil/eventdispatch.h
++ src/platforms/mirserver/miroil/include/miroil/input_device.h
++ src/platforms/mirserver/miroil/include/miroil/input_device_observer.h
++ src/platforms/mirserver/miroil/include/miroil/mir_prompt_session.h
++ src/platforms/mirserver/miroil/include/miroil/mir_server_hooks.h
++ src/platforms/mirserver/miroil/include/miroil/mirbuffer.h
++ src/platforms/mirserver/miroil/include/miroil/open_gl_context.h
++ src/platforms/mirserver/miroil/include/miroil/persist_display_config.h
++ src/platforms/mirserver/miroil/include/miroil/prompt_session_listener.h
++ src/platforms/mirserver/miroil/include/miroil/prompt_session_manager.h
++ src/platforms/mirserver/miroil/include/miroil/set_compositor.h
++ src/platforms/mirserver/miroil/include/miroil/surface.h
++ src/platforms/mirserver/miroil/include/miroil/surface_observer.h
++ src/platforms/mirserver/miroil/src/compositor.cpp
++ src/platforms/mirserver/miroil/src/display_configuration_controller_wrapper.cpp
++ src/platforms/mirserver/miroil/src/display_configuration_policy.cpp
++ src/platforms/mirserver/miroil/src/display_listener_wrapper.cpp
++ src/platforms/mirserver/miroil/src/edid.cpp
++ src/platforms/mirserver/miroil/src/event_builder.cpp
++ src/platforms/mirserver/miroil/src/eventdispatch.cpp
++ src/platforms/mirserver/miroil/src/input_device.cpp
++ src/platforms/mirserver/miroil/src/input_device_observer.cpp
++ src/platforms/mirserver/miroil/src/mir_prompt_session.cpp
++ src/platforms/mirserver/miroil/src/mir_server_hooks.cpp
++ src/platforms/mirserver/miroil/src/mirbuffer.cpp
++ src/platforms/mirserver/miroil/src/open_gl_context.cpp
++ src/platforms/mirserver/miroil/src/persist_display_config.cpp
++ src/platforms/mirserver/miroil/src/prompt_session_listener.cpp
++ src/platforms/mirserver/miroil/src/prompt_session_manager.cpp
++ src/platforms/mirserver/miroil/src/set_compositor.cpp
++ src/platforms/mirserver/miroil/src/surface.cpp
+ src/platforms/mirserver/promptsession.h
+- src/platforms/mirserver/promptsessionmanager.cpp
+- src/platforms/mirserver/promptsessionmanager.h
+- src/platforms/mirserver/setqtcompositor.cpp
+- src/platforms/mirserver/setqtcompositor.h
+ tests/framework/fake_surface.h
+ tests/framework/stub_scene_surface.h
+ Copyright: 2014, 2016, Canonical Ltd.
+ 2016, Canonical Ltd.
+ 2016-2017, Canonical Ltd.
+ 2017, Canonical Ltd.
++ 2016-2020 Canonical Ltd.
+ License: GPL-3
+
+ Files: demos/paths.h.in
+- demos/qml-demo-client/main.cpp
+- demos/qml-demo-shell/main.cpp
+- demos/qml-demo-shell/pointerposition.cpp
+- demos/qml-demo-shell/pointerposition.h
++ demos/qtmir-demo-client/main.cpp
++ demos/qtmir-demo-shell/main.cpp
++ demos/qtmir-demo-shell/pointerposition.cpp
++ demos/qtmir-demo-shell/pointerposition.h
+ src/modules/QtMir/Application/mirsurfacelistmodel.cpp
+ src/modules/QtMir/Application/mirsurfacelistmodel.h
+ src/modules/QtMir/Application/timer.cpp
+@@ -338,16 +362,6 @@ Copyright: 2015, Canonical Ltd.
+ 2016, Canonical Ltd.
+ License: LGPL-3
+
+-Files: src/modules/QtMir/Application/application_manager.cpp
+- src/modules/QtMir/Application/mirsurfaceitem.cpp
+- src/platforms/mirserver/qteventfeeder.cpp
+- src/platforms/mirserver/wrappedsessionauthorizer.cpp
+-Copyright: 2013-2016, Canonical, Ltd.
+- 2013-2017, Canonical, Ltd.
+- 2016, Canonical, Ltd.
+-License: LGPL-3
+-Comment: GENERATED FILE
+-
+ Files: cmake/modules/FindQt5EventDispatcherSupport.cmake
+ cmake/modules/FindQt5FontDatabaseSupport.cmake
+ cmake/modules/FindQt5ThemeSupport.cmake
+@@ -379,6 +393,11 @@ Copyright: 2015-2017, Canonical, Ltd.
+ 2020, UBports Foundation
+ License: LGPL-3
+
++Files: src/modules/QtMir/Application/mirbuffersgtexture.cpp
++Copyright: 2013-2015, Canonical, Ltd.
++ 2021, UBports Foundation
++License: GPL-3
++
+ Files: cmake/modules/FindQt5PlatformSupport.cmake
+ Copyright: 2014, Alex Merry <alex.merry@kde.org>
+ 2014, Martin Gräßlin <mgraesslin@kde.org>
+@@ -386,7 +405,8 @@ License: BSD-3-clause
+
+ Files: debian/*
+ Copyright: 2013-2017, Canonical Ltd.
+- 2020, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
++ 2020-2023, Marius Gripsgard <marius@ubports.com>
++ 2020-2023, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+ License: GPL-2 or GPL-3 or LGPL-2.1 or LGPL-3 or BSD-3-clause
+
+ License: LGPL-3
+diff --git a/debian/libqtmirserver1.install b/debian/libqtmirserver1.install
+deleted file mode 100644
+index e07913b9..00000000
+--- a/debian/libqtmirserver1.install
++++ /dev/null
+@@ -1 +0,0 @@
+-usr/lib/*/libqtmirserver.so.1
+diff --git a/debian/libqtmirserver2.install b/debian/libqtmirserver2.install
+new file mode 100644
+index 00000000..89778b57
+--- /dev/null
++++ b/debian/libqtmirserver2.install
+@@ -0,0 +1 @@
++usr/lib/*/libqtmirserver.so.2
+diff --git a/debian/libqtmirserver2.symbols b/debian/libqtmirserver2.symbols
+new file mode 100644
+index 00000000..27b9a899
+--- /dev/null
++++ b/debian/libqtmirserver2.symbols
+@@ -0,0 +1,2381 @@
++# SymbolsHelper-Confirmed: 0.8.0~git20230109.671f617 amd64 arm64 armel armhf hppa i386 mips64el mipsel powerpc ppc64 s390x
++libqtmirserver.so.2 libqtmirserver2 #MINVER#
++* Build-Depends-Package: libqtmirserver-dev
++ _Z10QTMIR_DBUSv@Base 0.6.1
++ _Z13QTMIR_SCREENSv@Base 0.6.1
++ _Z14QTMIR_SESSIONSv@Base 0.6.1
++ _Z14QTMIR_SURFACESv@Base 0.6.1
++ _Z15QTMIR_CLIPBOARDv@Base 0.6.1
++ _Z15QTMIR_MIR_INPUTv@Base 0.6.1
++ _Z16QTMIR_MIR_KEYMAPv@Base 0.6.1
++ (optional=templinst)_Z17qRegisterMetaTypeIN3Mir5StateEEiPKcPT_N9QtPrivate21MetaTypeDefinedHelperIS4_Xaasr12QMetaTypeId2IS4_E7DefinedntsrS9_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z17qRegisterMetaTypeIN5qtmir13PromptSessionEEiPKcPT_N9QtPrivate21MetaTypeDefinedHelperIS4_Xaasr12QMetaTypeId2IS4_E7DefinedntsrS9_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z17qRegisterMetaTypeISt10shared_ptrIN3mir5scene7SessionEEEiPKcPT_N9QtPrivate21MetaTypeDefinedHelperIS7_Xaasr12QMetaTypeId2IS7_E7DefinedntsrSC_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ _Z18QTMIR_APPLICATIONSv@Base 0.6.1
++ _Z18QTMIR_MIR_MESSAGESv@Base 0.6.1
++ _Z18qtCursorShapeToStrN2Qt11CursorShapeE@Base 0.6.1
++ _Z18touchEventToStringPK11QTouchEvent@Base 0.6.1
++ _Z19mirSurfaceTypeToStri@Base 0.6.1
++ _Z20mirSurfaceStateToStri@Base 0.6.1
++ _Z21QTMIR_SENSOR_MESSAGESv@Base 0.6.1
++ _Z21applicationStateToStri@Base 0.6.1
++ _Z21mirTouchEventToStringPK13MirTouchEvent@Base 0.6.1
++ _Z21unityapiMirStateToStri@Base 0.6.1
++ _Z22mirTouchActionToString14MirTouchAction@Base 0.6.1
++ _Z23mirPointerEventToStringPK15MirPointerEvent@Base 0.6.1
++ _Z23touchPointStateToStringN2Qt15TouchPointStateE@Base 0.6.1
++ _Z24mirKeyboardEventToStringPK16MirKeyboardEvent@Base 0.6.1
++ _Z25mirSurfaceFocusStateToStri@Base 0.6.1
++ _Z25mirSurfaceVisibilityToStri@Base 0.6.1
++ (optional=templinst)_Z27qRegisterNormalizedMetaTypeIN3Mir5StateEEiRK10QByteArrayPT_N9QtPrivate21MetaTypeDefinedHelperIS5_Xaasr12QMetaTypeId2IS5_E7DefinedntsrSA_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z27qRegisterNormalizedMetaTypeIN5qtmir10FormFactorEEiRK10QByteArrayPT_N9QtPrivate21MetaTypeDefinedHelperIS5_Xaasr12QMetaTypeId2IS5_E7DefinedntsrSA_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z27qRegisterNormalizedMetaTypeIN5qtmir11OutputTypesEEiRK10QByteArrayPT_N9QtPrivate21MetaTypeDefinedHelperIS5_Xaasr12QMetaTypeId2IS5_E7DefinedntsrSA_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z27qRegisterNormalizedMetaTypeIN5qtmir13PromptSessionEEiRK10QByteArrayPT_N9QtPrivate21MetaTypeDefinedHelperIS5_Xaasr12QMetaTypeId2IS5_E7DefinedntsrSA_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z27qRegisterNormalizedMetaTypeIPN5qtmir19ScreenConfigurationEEiRK10QByteArrayPT_N9QtPrivate21MetaTypeDefinedHelperIS6_Xaasr12QMetaTypeId2IS6_E7DefinedntsrSB_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ (optional=templinst)_Z27qRegisterNormalizedMetaTypeISt10shared_ptrIN3mir5scene7SessionEEEiRK10QByteArrayPT_N9QtPrivate21MetaTypeDefinedHelperIS8_Xaasr12QMetaTypeId2IS8_E7DefinedntsrSD_9IsBuiltInEE11DefinedTypeE@Base 0.6.1
++ _Z32mirSurfaceAttribAndValueToString15MirWindowAttribi@Base 0.6.1
++ _ZGVZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoE5QSizeEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZGVZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoE6QPointEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZGVZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoEEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZGVZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoEN3Mir5StateEEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZGVZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoEbEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZGVZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5qtmir9NewWindowEEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZN10QByteArrayD1Ev@Base 0.6.1
++ _ZN10QByteArrayD2Ev@Base 0.6.1
++ _ZN10QMirServer11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN10QMirServer11qt_metacastEPKc@Base 0.6.1
++ _ZN10QMirServer16staticMetaObjectE@Base 0.6.1
++ (optional=templinst)_ZN10QMirServer25overrideSessionAuthorizerERKSt8functionIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEE@Base 0.6.1
++ (optional=templinst)_ZN10QMirServer30overrideWindowManagementPolicyERKSt8functionIFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES1_INS2_29WindowManagementPolicyPrivateEEEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN10QMirServer30wrapDisplayConfigurationPolicyERKSt8functionIFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvEE@Base 0.6.1
++ (optional=templinst)_ZN10QMirServer30wrapDisplayConfigurationPolicyERKSt8functionIFSt10shared_ptrIN6miroil26DisplayConfigurationPolicyEERKS1_IN3mir8graphics26DisplayConfigurationPolicyEEEE@Base 0.8.0~git20230109.671f617
++ _ZN10QMirServer35overrideDisplayConfigurationStorageERKN5qtmir35BasicSetDisplayConfigurationStorageE@Base 0.6.1
++ _ZN10QMirServer4stopEv@Base 0.6.1
++ _ZN10QMirServer5startEv@Base 0.6.1
++ _ZN10QMirServer6createEv@Base 0.6.1
++ _ZN10QMirServer7startedEv@Base 0.6.1
++ _ZN10QMirServer7stoppedEv@Base 0.6.1
++ _ZN10QMirServerC1EP7QObject@Base 0.6.1
++ _ZN10QMirServerC2EP7QObject@Base 0.6.1
++ _ZN10QMirServerD0Ev@Base 0.6.1
++ _ZN10QMirServerD1Ev@Base 0.6.1
++ _ZN10QMirServerD2Ev@Base 0.6.1
++ (optional=templinst)_ZN10QMultiHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN10QMultiHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEED2Ev@Base 0.6.1
++ _ZN11MirGLConfigD0Ev@Base 0.6.1
++ _ZN11MirGLConfigD1Ev@Base 0.6.1
++ _ZN11MirGLConfigD2Ev@Base 0.6.1
++ (optional=templinst)_ZN11QMetaTypeIdIN3Mir5StateEE14qt_metatype_idEv@Base 0.6.1
++ _ZN12QMutexLocker6unlockEv@Base 0.6.1
++#MISSING: 0.6.1-8# _ZN12QMutexLockerC1EP11QBasicMutex@Base 0.6.1
++#MISSING: 0.6.1-8# _ZN12QMutexLockerC2EP11QBasicMutex@Base 0.6.1
++ (optional=templinst)_ZN12QWeakPointerI10QMirServerED1Ev@Base 0.6.1
++ (optional=templinst)_ZN12QWeakPointerI10QMirServerED2Ev@Base 0.6.1
++ (optional=templinst)_ZN12QWeakPointerI7QObjectED1Ev@Base 0.6.1
++ (optional=templinst)_ZN12QWeakPointerI7QObjectED2Ev@Base 0.6.1
++ (optional=templinst)_ZN12QWeakPointerIN5qtmir7ScreensEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN12QWeakPointerIN5qtmir7ScreensEED2Ev@Base 0.6.1
++ _ZN12QtCompositor11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN12QtCompositor11qt_metacastEPKc@Base 0.6.1
++ _ZN12QtCompositor16staticMetaObjectE@Base 0.6.1
++ _ZN12QtCompositor4stopEv@Base 0.8.0~git20230109.671f617
++ _ZN12QtCompositor5startEv@Base 0.8.0~git20230109.671f617
++ _ZN12QtCompositor8startingEv@Base 0.6.1
++ _ZN12QtCompositor8stoppingEv@Base 0.6.1
++ _ZN12QtCompositorD0Ev@Base 0.6.1
++ _ZN12QtCompositorD1Ev@Base 0.6.1
++ _ZN12QtCompositorD2Ev@Base 0.6.1
++ _ZN12ScreensModel11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN12ScreensModel11qt_metacastEPKc@Base 0.6.1
++ _ZN12ScreensModel11screenAddedEP14PlatformScreen@Base 0.6.1
++ _ZN12ScreensModel12haltRendererEv@Base 0.6.1
++ _ZN12ScreensModel13screenRemovedEP14PlatformScreen@Base 0.6.1
++ _ZN12ScreensModel13startRendererEv@Base 0.6.1
++ _ZN12ScreensModel14updateInternalEv@Base 0.7.1
++ _ZN12ScreensModel16findScreenWithIdERK5QListIP14PlatformScreenEN3mir10IntWrapperINS6_8graphics6detail23GraphicsConfOutputIdTagEiEE@Base 0.6.1
++ _ZN12ScreensModel16staticMetaObjectE@Base 0.6.1
++ _ZN12ScreensModel20onCompositorStartingEv@Base 0.6.1
++ _ZN12ScreensModel20onCompositorStoppingEv@Base 0.6.1
++ _ZN12ScreensModel23canUpdateExistingScreenEPK14PlatformScreenRKN3mir8graphics26DisplayConfigurationOutputE@Base 0.6.1
++ _ZN12ScreensModel4initERKSt10shared_ptrIN3mir8graphics7DisplayEERKS0_I12QtCompositorERKS0_IN6miroil22DisplayListenerWrapperEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# _ZN12ScreensModel4initERKSt10shared_ptrIN3mir8graphics7DisplayEERKS0_I12QtCompositorERKS0_INS1_10compositor15DisplayListenerEE@Base 0.6.1
++ _ZN12ScreensModel6updateEv@Base 0.6.1
++ _ZN12ScreensModel9terminateEv@Base 0.6.1
++ _ZN12ScreensModelC1EP7QObject@Base 0.6.1
++ _ZN12ScreensModelC2EP7QObject@Base 0.6.1
++ _ZN12ScreensModelD0Ev@Base 0.6.1
++ _ZN12ScreensModelD1Ev@Base 0.6.1
++ _ZN12ScreensModelD2Ev@Base 0.6.1
++ _ZN13QtEventFeeder11dispatchKeyEPK16MirKeyboardEvent@Base 0.6.1
++ _ZN13QtEventFeeder13dispatchTouchEPK13MirTouchEvent@Base 0.6.1
++ _ZN13QtEventFeeder13validateTouchERN22QWindowSystemInterface10TouchPointE@Base 0.6.1
++ _ZN13QtEventFeeder15dispatchPointerEPK15MirPointerEvent@Base 0.6.1
++ _ZN13QtEventFeeder15touchesToStringERK5QListIN22QWindowSystemInterface10TouchPointEE@Base 0.6.1
++ _ZN13QtEventFeeder15validateTouchesEP7QWindowmR5QListIN22QWindowSystemInterface10TouchPointEE@Base 0.6.1
++ _ZN13QtEventFeeder22sendActiveTouchReleaseEP7QWindowmi@Base 0.6.1
++ _ZN13QtEventFeeder5eventEP6QEvent@Base 0.6.1
++ _ZN13QtEventFeeder8dispatchERK8MirEvent@Base 0.6.1
++ _ZN13QtEventFeederC1EPNS_23QtWindowSystemInterfaceE@Base 0.6.1
++ _ZN13QtEventFeederC1Ev@Base 0.6.1
++ _ZN13QtEventFeederC2EPNS_23QtWindowSystemInterfaceE@Base 0.6.1
++ _ZN13QtEventFeederC2Ev@Base 0.6.1
++ _ZN13QtEventFeederD0Ev@Base 0.6.1
++ _ZN13QtEventFeederD1Ev@Base 0.6.1
++ _ZN13QtEventFeederD2Ev@Base 0.6.1
++ _ZN13ScreenAdaptor11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN13ScreenAdaptor11qt_metacastEPKc@Base 0.6.1
++ _ZN13ScreenAdaptor14availableModesEv@Base 0.6.1
++ _ZN13ScreenAdaptor16staticMetaObjectE@Base 0.6.1
++ _ZN13ScreenAdaptor17updateScreenModesEv@Base 0.6.1
++ _ZN13ScreenAdaptor18applyConfigurationEPN5qtmir19ScreenConfigurationE@Base 0.6.1
++ _ZN13ScreenAdaptor9setActiveEb@Base 0.6.1
++ _ZN13ScreenAdaptorC1EP7QScreenP7QObject@Base 0.6.1
++ _ZN13ScreenAdaptorC2EP7QScreenP7QObject@Base 0.6.1
++ _ZN13ScreenAdaptorD0Ev@Base 0.6.1
++ _ZN13ScreenAdaptorD1Ev@Base 0.6.1
++ _ZN13ScreenAdaptorD2Ev@Base 0.6.1
++ _ZN14PlatformScreen11customEventEP6QEvent@Base 0.6.1
++ _ZN14PlatformScreen11doneCurrentEv@Base 0.6.1
++ _ZN14PlatformScreen11makeCurrentEv@Base 0.6.1
++ _ZN14PlatformScreen11modeChangedEv@Base 0.6.1
++ _ZN14PlatformScreen11nameChangedEv@Base 0.6.1
++ _ZN14PlatformScreen11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN14PlatformScreen11qt_metacastEPKc@Base 0.6.1
++ _ZN14PlatformScreen11swapBuffersEv@Base 0.6.1
++ _ZN14PlatformScreen11usedChangedEv@Base 0.6.1
++ _ZN14PlatformScreen12removeWindowEP20ScreenPlatformWindow@Base 0.6.1
++ _ZN14PlatformScreen12scaleChangedEv@Base 0.6.1
++ _ZN14PlatformScreen13activeChangedEb@Base 0.6.1
++ _ZN14PlatformScreen14destroyWindowsEv@Base 0.7.1
++ _ZN14PlatformScreen15positionChangedEv@Base 0.6.1
++ _ZN14PlatformScreen16powerModeChangedEv@Base 0.6.1
++ _ZN14PlatformScreen16staticMetaObjectE@Base 0.6.1
++ _ZN14PlatformScreen17formFactorChangedEv@Base 0.6.1
++ _ZN14PlatformScreen17outputTypeChangedEv@Base 0.6.1
++ _ZN14PlatformScreen18orientationChangedEv@Base 0.6.1
++ _ZN14PlatformScreen19physicalSizeChangedEv@Base 0.6.1
++ _ZN14PlatformScreen19setMirDisplayBufferEPN3mir8graphics13DisplayBufferEPNS1_16DisplaySyncGroupE@Base 0.6.1
++ _ZN14PlatformScreen20primaryWindowChangedEP20ScreenPlatformWindow@Base 0.6.1
++ _ZN14PlatformScreen21availableModesChangedEv@Base 0.6.1
++ _ZN14PlatformScreen23currentModeIndexChangedEv@Base 0.6.1
++ _ZN14PlatformScreen24orientationSensorEnabledEv@Base 0.6.1
++ _ZN14PlatformScreen26setMirDisplayConfigurationERKN3mir8graphics26DisplayConfigurationOutputEb@Base 0.6.1
++ _ZN14PlatformScreen27onOrientationReadingChangedEN19QOrientationReading11OrientationE@Base 0.6.1
++ _ZN14PlatformScreen8activateEv@Base 0.6.1
++ _ZN14PlatformScreen9addWindowEP20ScreenPlatformWindow@Base 0.6.1
++ _ZN14PlatformScreen9setActiveEb@Base 0.6.1
++ _ZN14PlatformScreenC1ERKN3mir8graphics26DisplayConfigurationOutputESt10shared_ptrI17OrientationSensorE@Base 0.6.1
++ _ZN14PlatformScreenC2ERKN3mir8graphics26DisplayConfigurationOutputESt10shared_ptrI17OrientationSensorE@Base 0.6.1
++ _ZN14PlatformScreenD0Ev@Base 0.6.1
++ _ZN14PlatformScreenD1Ev@Base 0.6.1
++ _ZN14PlatformScreenD2Ev@Base 0.6.1
++ (optional=templinst)_ZN14QSharedPointerI10QMirServerED1Ev@Base 0.6.1
++ (optional=templinst)_ZN14QSharedPointerI10QMirServerED2Ev@Base 0.6.1
++ (optional=templinst)_ZN14QSharedPointerIN5qtmir7ScreensEE5derefEPN15QtSharedPointer20ExternalRefCountDataE@Base 0.6.1
++ _ZN15MirServerThread11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN15MirServerThread11qt_metacastEPKc@Base 0.6.1
++ _ZN15MirServerThread16staticMetaObjectE@Base 0.6.1
++ _ZN15MirServerThread17waitForMirStartupEv@Base 0.6.1
++ _ZN15MirServerThread3runEv@Base 0.6.1
++ _ZN15MirServerThread7stoppedEv@Base 0.6.1
++ _ZN15MirServerThreadD0Ev@Base 0.6.1
++ _ZN15MirServerThreadD1Ev@Base 0.6.1
++ _ZN15MirServerThreadD2Ev@Base 0.6.1
++ _ZN15NativeInterface11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN15NativeInterface11qt_metacastEPKc@Base 0.6.1
++ _ZN15NativeInterface16staticMetaObjectE@Base 0.6.1
++ _ZN15NativeInterface17setWindowPropertyEP15QPlatformWindowRK7QStringRK8QVariant@Base 0.6.1
++ _ZN15NativeInterface23nativeResourceForScreenERK10QByteArrayP7QScreen@Base 0.7.1
++ _ZN15NativeInterface28nativeResourceForIntegrationERK10QByteArray@Base 0.6.1
++ _ZN15NativeInterfaceC1EP10QMirServer@Base 0.6.1
++ _ZN15NativeInterfaceC2EP10QMirServer@Base 0.6.1
++ _ZN15NativeInterfaceD0Ev@Base 0.6.1
++ _ZN15NativeInterfaceD1Ev@Base 0.6.1
++ _ZN15NativeInterfaceD2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN15QVarLengthArrayIcLi32EEC1Ei@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN15QVarLengthArrayIcLi32EEC2Ei@Base 0.6.1
++#MISSING: 0.6.1-8# _ZN15QtSharedPointer20ExternalRefCountDataD1Ev@Base 0.6.1
++#MISSING: 0.6.1-8# _ZN15QtSharedPointer20ExternalRefCountDataD2Ev@Base 0.6.1
++ (optional=templinst)_ZN15QtSharedPointer33ExternalRefCountWithCustomDeleterI10QMirServerNS_13NormalDeleterEE7deleterEPNS_20ExternalRefCountDataE@Base 0.6.1
++ (optional=templinst)_ZN15QtSharedPointer33ExternalRefCountWithCustomDeleterI17ScreensControllerNS_13NormalDeleterEE7deleterEPNS_20ExternalRefCountDataE@Base 0.6.1
++ (optional=templinst)_ZN15QtSharedPointer33ExternalRefCountWithCustomDeleterI18ScreenAdaptorModelNS_13NormalDeleterEE7deleterEPNS_20ExternalRefCountDataE@Base 0.6.1
++ (optional=templinst)_ZN15QtSharedPointer33ExternalRefCountWithCustomDeleterIN5qtmir6Cursor7PrivateENS_13NormalDeleterEE7deleterEPNS_20ExternalRefCountDataE@Base 0.6.1
++ _ZN15SurfaceObserver11nameChangedERK7QString@Base 0.6.1
++ _ZN15SurfaceObserver11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN15SurfaceObserver11qt_metacastEPKc@Base 0.6.1
++ _ZN15SurfaceObserver12framesPostedEv@Base 0.6.1
++ _ZN15SurfaceObserver13cursorChangedERK7QCursor@Base 0.6.1
++ _ZN15SurfaceObserver13hiddenChangedEb@Base 0.6.1
++ _ZN15SurfaceObserver16attributeChangedE15MirWindowAttribi@Base 0.6.1
++ _ZN15SurfaceObserver16staticMetaObjectE@Base 0.6.1
++ _ZN15SurfaceObserver18inputBoundsChangedERK5QRect@Base 0.6.1
++ _ZN15SurfaceObserver18observerForSurfaceEPKN3mir5scene7SurfaceE@Base 0.6.1
++ _ZN15SurfaceObserver18shellChromeChangedE14MirShellChrome@Base 0.6.1
++ _ZN15SurfaceObserver19maximumWidthChangedEi@Base 0.6.1
++ _ZN15SurfaceObserver19minimumWidthChangedEi@Base 0.6.1
++ _ZN15SurfaceObserver20maximumHeightChangedEi@Base 0.6.1
++ _ZN15SurfaceObserver20minimumHeightChangedEi@Base 0.6.1
++ _ZN15SurfaceObserver21widthIncrementChangedEi@Base 0.6.1
++ _ZN15SurfaceObserver22heightIncrementChangedEi@Base 0.6.1
++ _ZN15SurfaceObserver26notifySurfaceModificationsERKN5miral19WindowSpecificationE@Base 0.6.1
++ _ZN15SurfaceObserver26registerObserverForSurfaceEPS_PKN3mir5scene7SurfaceE@Base 0.6.1
++ _ZN15SurfaceObserver27confinesMousePointerChangedEb@Base 0.6.1
++ _ZN15SurfaceObserver7resizedERK5QSize@Base 0.6.1
++ _ZN15SurfaceObserverD0Ev@Base 0.6.1
++ _ZN15SurfaceObserverD1Ev@Base 0.6.1
++ _ZN15SurfaceObserverD2Ev@Base 0.6.1
++ _ZN16MirOpenGLContext11doneCurrentEv@Base 0.6.1
++ _ZN16MirOpenGLContext11makeCurrentEP16QPlatformSurface@Base 0.6.1
++ _ZN16MirOpenGLContext11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN16MirOpenGLContext11qt_metacastEPKc@Base 0.6.1
++ _ZN16MirOpenGLContext11swapBuffersEP16QPlatformSurface@Base 0.6.1
++ _ZN16MirOpenGLContext14getProcAddressEPKc@Base 0.6.1
++ _ZN16MirOpenGLContext16staticMetaObjectE@Base 0.6.1
++ _ZN16MirOpenGLContextC1ERN3mir8graphics7DisplayERNS1_8GLConfigERK14QSurfaceFormat@Base 0.6.1
++ _ZN16MirOpenGLContextC2ERN3mir8graphics7DisplayERNS1_8GLConfigERK14QSurfaceFormat@Base 0.6.1
++ _ZN16MirOpenGLContextD0Ev@Base 0.6.1
++ _ZN16MirOpenGLContextD1Ev@Base 0.6.1
++ _ZN16MirOpenGLContextD2Ev@Base 0.6.1
++ _ZN16OffscreenSurface9setBufferEP24QOpenGLFramebufferObject@Base 0.6.1
++ _ZN16OffscreenSurfaceC1EP17QOffscreenSurface@Base 0.6.1
++ _ZN16OffscreenSurfaceC2EP17QOffscreenSurface@Base 0.6.1
++ _ZN16OffscreenSurfaceD0Ev@Base 0.6.1
++ _ZN16OffscreenSurfaceD1Ev@Base 0.6.1
++ _ZN16OffscreenSurfaceD2Ev@Base 0.6.1
++ (optional=templinst)_ZN16QQmlListPropertyIN5qtmir10ScreenModeEE11qlist_clearEPS2_@Base 0.6.1
++ (optional=templinst)_ZN16QQmlListPropertyIN5qtmir10ScreenModeEE11qlist_countEPS2_@Base 0.6.1
++ _ZN16QQmlListPropertyIN5qtmir10ScreenModeEE11qslow_clearEPS2_@Base 0.6.1
++ (optional=templinst)_ZN16QQmlListPropertyIN5qtmir10ScreenModeEE12qlist_appendEPS2_PS1_@Base 0.6.1
++ _ZN16QQmlListPropertyIN5qtmir10ScreenModeEE13qslow_replaceEPS2_iPS1_@Base 0.6.1
++ _ZN16QQmlListPropertyIN5qtmir10ScreenModeEE16qslow_removeLastEPS2_@Base 0.6.1
++ (optional=templinst)_ZN16QQmlListPropertyIN5qtmir10ScreenModeEE8qlist_atEPS2_i@Base 0.6.1
++ _ZN17OrientationSensor11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN17OrientationSensor11qt_metacastEPKc@Base 0.6.1
++ _ZN17OrientationSensor13startIfNeededEv@Base 0.6.1
++ _ZN17OrientationSensor16staticMetaObjectE@Base 0.6.1
++ _ZN17OrientationSensor20onOrientationChangedEN19QOrientationReading11OrientationE@Base 0.6.1
++ _ZN17OrientationSensor20skipDBusRegistrationE@Base 0.6.1
++ _ZN17OrientationSensor26onDisplayPowerStateChangedEii@Base 0.6.1
++ _ZN17OrientationSensor4stopEv@Base 0.6.1
++ _ZN17OrientationSensor5startEv@Base 0.6.1
++ _ZN17OrientationSensor6enableEv@Base 0.6.1
++ _ZN17OrientationSensor7enabledEv@Base 0.6.1
++ _ZN17OrientationSensorC1EP7QObject@Base 0.6.1
++ _ZN17OrientationSensorC2EP7QObject@Base 0.6.1
++ _ZN17OrientationSensorD0Ev@Base 0.6.1
++ _ZN17OrientationSensorD1Ev@Base 0.6.1
++ _ZN17OrientationSensorD2Ev@Base 0.6.1
++ _ZN17QMirServerPrivate3runERKSt8functionIFvvEE@Base 0.6.1
++ _ZN17QMirServerPrivate4stopEv@Base 0.6.1
++ _ZN17QMirServerPrivateC1Ev@Base 0.6.1
++ _ZN17QMirServerPrivateC2Ev@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI6QFlagsIN2Qt11MouseButtonEELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI6QFlagsIN2Qt11MouseButtonEELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI6QFlagsIN2Qt16KeyboardModifierEELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperI6QFlagsIN2Qt16KeyboardModifierEELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN3Mir5StateELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN3Mir5StateELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5miral10WindowInfoELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5miral10WindowInfoELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5miral15ApplicationInfoELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5miral15ApplicationInfoELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir10FormFactorELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir10FormFactorELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir11OutputTypesELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir11OutputTypesELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir13PromptSessionELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir13PromptSessionELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir9NewWindowELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIN5qtmir9NewWindowELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIP20ScreenPlatformWindowLb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIP20ScreenPlatformWindowLb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIPN5qtmir19ScreenConfigurationELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperIPN5qtmir19ScreenConfigurationELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperISt10shared_ptrIN3mir5scene7SessionEELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperISt10shared_ptrIN3mir5scene7SessionEELb1EE9ConstructEPvPKv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperISt6vectorIN5miral6WindowESaIS3_EELb1EE8DestructEPv@Base 0.6.1
++ (optional=templinst)_ZN17QtMetaTypePrivate23QMetaTypeFunctionHelperISt6vectorIN5miral6WindowESaIS3_EELb1EE9ConstructEPvPKv@Base 0.6.1
++ _ZN17ScreensController11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN17ScreensController11qt_metacastEPKc@Base 0.6.1
++ _ZN17ScreensController13configurationEv@Base 0.6.1
++ _ZN17ScreensController16setConfigurationERK7QVectorIN5qtmir19ScreenConfigurationEE@Base 0.6.1
++ _ZN17ScreensController16staticMetaObjectE@Base 0.6.1
++ _ZN17ScreensController19outputConfigurationEN3mir10IntWrapperINS0_8graphics6detail23GraphicsConfOutputIdTagEiEE@Base 0.6.1
++ _ZN17ScreensController22setOutputConfigurationERKN5qtmir19ScreenConfigurationE@Base 0.6.1
++ _ZN17ScreensControllerC1ERKSt10shared_ptrI12ScreensModelERKS0_IN3mir8graphics7DisplayEERKS0_INS5_5shell30DisplayConfigurationControllerEEP7QObject@Base 0.6.1
++ _ZN17ScreensControllerC2ERKSt10shared_ptrI12ScreensModelERKS0_IN3mir8graphics7DisplayEERKS0_INS5_5shell30DisplayConfigurationControllerEEP7QObject@Base 0.6.1
++ _ZN17ScreensControllerD0Ev@Base 0.6.1
++ _ZN17ScreensControllerD1Ev@Base 0.6.1
++ _ZN17ScreensControllerD2Ev@Base 0.6.1
++ (optional=templinst)_ZN18QMetaTypeIdQObjectIP20ScreenPlatformWindowLi8EE14qt_metatype_idEv@Base 0.6.1
++ _ZN18ScreenAdaptorModel13onScreenAddedEP7QScreen@Base 0.6.1
++ _ZN18ScreenAdaptorModel15onScreenRemovedEP7QScreen@Base 0.6.1
++ _ZN18ScreenAdaptorModelC1EP7QObject@Base 0.6.1
++ _ZN18ScreenAdaptorModelC2EP7QObject@Base 0.6.1
++ _ZN18ScreenAdaptorModelD0Ev@Base 0.6.1
++ _ZN18ScreenAdaptorModelD1Ev@Base 0.6.1
++ _ZN18ScreenAdaptorModelD2Ev@Base 0.6.1
++ _ZN19InitialSurfaceSizes14sizeForSessionE@Base 0.6.1
++ _ZN19InitialSurfaceSizes3getEi@Base 0.6.1
++ _ZN19InitialSurfaceSizes3setEiRK5QSize@Base 0.6.1
++ _ZN19InitialSurfaceSizes5mutexE@Base 0.6.1
++ _ZN19InitialSurfaceSizes6removeEi@Base 0.6.1
++ _ZN20ScreenPlatformWindow10setExposedEb@Base 0.6.1
++ _ZN20ScreenPlatformWindow10setPrimaryEb@Base 0.6.1
++ _ZN20ScreenPlatformWindow10setVisibleEb@Base 0.6.1
++ _ZN20ScreenPlatformWindow11doneCurrentEv@Base 0.6.1
++ _ZN20ScreenPlatformWindow11makeCurrentEv@Base 0.6.1
++ _ZN20ScreenPlatformWindow11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN20ScreenPlatformWindow11qt_metacastEPKc@Base 0.6.1
++ _ZN20ScreenPlatformWindow11setGeometryERK5QRect@Base 0.6.1
++ _ZN20ScreenPlatformWindow11swapBuffersEv@Base 0.6.1
++ _ZN20ScreenPlatformWindow12updateExposeEv@Base 0.6.1
++ _ZN20ScreenPlatformWindow16staticMetaObjectE@Base 0.6.1
++ _ZN20ScreenPlatformWindow21requestActivateWindowEv@Base 0.6.1
++ _ZN20ScreenPlatformWindow9setActiveEb@Base 0.6.1
++ _ZN20ScreenPlatformWindow9setScreenEP15QPlatformScreen@Base 0.6.1
++ _ZN20ScreenPlatformWindowC1EP7QWindowb@Base 0.6.1
++ _ZN20ScreenPlatformWindowC2EP7QWindowb@Base 0.6.1
++ _ZN20ScreenPlatformWindowD0Ev@Base 0.6.1
++ _ZN20ScreenPlatformWindowD1Ev@Base 0.6.1
++ _ZN20ScreenPlatformWindowD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener11qt_metacastEPKc@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener16staticMetaObjectE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener19promptProviderAddedERKN5qtmir13PromptSessionERKSt10shared_ptrIN3mir5scene7SessionEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener21promptProviderRemovedERKN5qtmir13PromptSessionERKSt10shared_ptrIN3mir5scene7SessionEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener21promptSessionResumingERKN5qtmir13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener21promptSessionStartingERKN5qtmir13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener21promptSessionStoppingERKN5qtmir13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListener23promptSessionSuspendingERKN5qtmir13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListenerC1EP7QObject@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListenerC2EP7QObject@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListenerD0Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListenerD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN21PromptSessionListenerD2Ev@Base 0.6.1
++ _ZN23OrientationReadingEvent6m_typeE@Base 0.6.1
++ _ZN23OrientationReadingEventD0Ev@Base 0.6.1
++ _ZN23OrientationReadingEventD1Ev@Base 0.6.1
++ _ZN23OrientationReadingEventD2Ev@Base 0.6.1
++ _ZN24MirMousePointerInterface11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN24MirMousePointerInterface11qt_metacastEPKc@Base 0.6.1
++ _ZN24MirMousePointerInterface16staticMetaObjectE@Base 0.6.1
++ _ZN24MirMousePointerInterface16themeNameChangedE7QString@Base 0.6.1
++ _ZN24MirMousePointerInterface17cursorNameChangedE7QString@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer21connection_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer21screencast_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer25prompt_session_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer26configure_input_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer28configure_display_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer39set_base_input_configuration_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizer41set_base_display_configuration_is_allowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ (optional=templinst)_ZN24WrappedSessionAuthorizerC1ERKSt8functionIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEE@Base 0.6.1
++ (optional=templinst)_ZN24WrappedSessionAuthorizerC2ERKSt8functionIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEE@Base 0.6.1
++ _ZN24WrappedSessionAuthorizerD0Ev@Base 0.6.1
++ _ZN24WrappedSessionAuthorizerD1Ev@Base 0.6.1
++ _ZN24WrappedSessionAuthorizerD2Ev@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy10advise_endEv@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy10forceCloseERKN5miral6WindowE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy12advise_beginEv@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy12advise_raiseERKSt6vectorIN5miral6WindowESaIS2_EE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy12requestStateERKN5miral6WindowEN3Mir5StateE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN29WrappedWindowManagementPolicy13advise_resizeERKN5miral10WindowInfoERKN3mir8geometry4SizeE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy13advise_resizeERKN5miral10WindowInfoERKN3mir8geometry7generic4SizeIiEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# _ZN29WrappedWindowManagementPolicy14advise_move_toERKN5miral10WindowInfoEN3mir8geometry5PointE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy14advise_move_toERKN5miral10WindowInfoEN3mir8geometry7generic5PointIiEE@Base 0.8.0~git20230109.671f617
++ _ZN29WrappedWindowManagementPolicy14advise_new_appERN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy16place_new_windowERKN5miral15ApplicationInfoERKNS0_19WindowSpecificationE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy17advise_delete_appERKN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy17advise_focus_lostERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy17advise_new_windowERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy18handle_touch_eventEPK13MirTouchEvent@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy18set_window_marginsE13MirWindowTypeRK8QMargins@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19advise_focus_gainedERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19advise_state_changeERKN5miral10WindowInfoE14MirWindowState@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19ask_client_to_closeERKN5miral6WindowE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19deliver_touch_eventEPK13MirTouchEventRKN5miral6WindowE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19handle_raise_windowERN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19handle_request_moveERN5miral10WindowInfoEPK13MirInputEvent@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy19handle_window_readyERN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy20advise_delete_windowERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy20advise_output_createERKN5miral6OutputE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy20advise_output_deleteERKN5miral6OutputE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy20advise_output_updateERKN5miral6OutputES3_@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy20handle_modify_windowERN5miral10WindowInfoERKNS0_19WindowSpecificationE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy20handle_pointer_eventEPK15MirPointerEvent@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy21deliver_pointer_eventEPK15MirPointerEventRKN5miral6WindowE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy21handle_keyboard_eventEPK16MirKeyboardEvent@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy21handle_request_resizeERN5miral10WindowInfoEPK13MirInputEvent13MirResizeEdge@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN29WrappedWindowManagementPolicy22confirm_inherited_moveERKN5miral10WindowInfoEN3mir8geometry12DisplacementE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy22confirm_inherited_moveERKN5miral10WindowInfoEN3mir8geometry7generic12DisplacementIiEE@Base 0.8.0~git20230109.671f617
++ _ZN29WrappedWindowManagementPolicy22deliver_keyboard_eventEPK16MirKeyboardEventRKN5miral6WindowE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy24move_window_to_workspaceERKN5miral6WindowERKSt10shared_ptrINS0_9WorkspaceEE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy26advise_adding_to_workspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt6vectorINS1_6WindowESaIS7_EE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy28confirm_placement_on_displayERKN5miral10WindowInfoE14MirWindowStateRKN3mir8geometry7generic9RectangleIiEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# _ZN29WrappedWindowManagementPolicy28confirm_placement_on_displayERKN5miral10WindowInfoE14MirWindowStateRKN3mir8geometry9RectangleE@Base 0.6.1
++ (optional=templinst)_ZN29WrappedWindowManagementPolicy28for_each_window_in_workspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt8functionIFvRKNS1_6WindowEEE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy28handle_request_drag_and_dropERN5miral10WindowInfoE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy30advise_removing_from_workspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt6vectorINS1_6WindowESaIS7_EE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy30set_window_confinement_regionsERK7QVectorI5QRectE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy34move_worspace_content_to_workspaceERKSt10shared_ptrIN5miral9WorkspaceEES5_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN29WrappedWindowManagementPolicy4moveERKN5miral6WindowEN3mir8geometry5PointE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy4moveERKN5miral6WindowEN3mir8geometry7generic5PointIiEE@Base 0.8.0~git20230109.671f617
++ _ZN29WrappedWindowManagementPolicy5raiseERKN5miral6WindowE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN29WrappedWindowManagementPolicy6resizeERKN5miral6WindowEN3mir8geometry4SizeE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicy6resizeERKN5miral6WindowEN3mir8geometry7generic4SizeIiEE@Base 0.8.0~git20230109.671f617
++ _ZN29WrappedWindowManagementPolicy8activateERKN5miral6WindowE@Base 0.6.1
++ (optional=templinst)_ZN29WrappedWindowManagementPolicyC1ERKN5miral18WindowManagerToolsERN5qtmir19WindowModelNotifierERNS4_16WindowControllerERNS4_19WorkspaceControllerERNS4_11AppNotifierESt10shared_ptrI12ScreensModelERKSD_I13QtEventFeederERKSt8functionIFSD_INS4_22WindowManagementPolicyEES3_SD_INS4_29WindowManagementPolicyPrivateEEEE@Base 0.6.1
++ (optional=templinst)_ZN29WrappedWindowManagementPolicyC2ERKN5miral18WindowManagerToolsERN5qtmir19WindowModelNotifierERNS4_16WindowControllerERNS4_19WorkspaceControllerERNS4_11AppNotifierESt10shared_ptrI12ScreensModelERKSD_I13QtEventFeederERKSt8functionIFSD_INS4_22WindowManagementPolicyEES3_SD_INS4_29WindowManagementPolicyPrivateEEEE@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicyD0Ev@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicyD1Ev@Base 0.6.1
++ _ZN29WrappedWindowManagementPolicyD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver11qt_metacastEPKc@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver16staticMetaObjectE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver20configurationAppliedERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver20configuration_failedERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEERKSt9exception@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver20initialConfigurationERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver21configuration_appliedERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver21initial_configurationERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver24baseConfigurationUpdatedERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver26base_configuration_updatedERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver29session_configuration_appliedERKSt10shared_ptrIN3mir5scene7SessionEERKS0_INS1_8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver29session_configuration_removedERKSt10shared_ptrIN3mir5scene7SessionEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver32catastrophic_configuration_errorERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEERKSt9exception@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserver33configuration_updated_for_sessionERKSt10shared_ptrIN3mir5scene7SessionEERKS0_IKNS1_8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserverC1EP7QObject@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserverC2EP7QObject@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserverD0Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserverD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN31MirDisplayConfigurationObserverD2Ev@Base 0.6.1
++ _ZN3Mir11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN3Mir11qt_metacastEPKc@Base 0.6.1
++ _ZN3Mir16staticMetaObjectE@Base 0.6.1
++ _ZN3Mir17cursorNameChangedERK7QString@Base 0.6.1
++ _ZN3Mir20currentKeymapChangedERK7QString@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir5input6KeymapD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir5input6KeymapD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir8graphics11GammaCurvesD1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir8graphics11GammaCurvesD2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir8graphics26DisplayConfigurationOutputC1ERKS1_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir8graphics26DisplayConfigurationOutputC2ERKS1_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir8graphics26DisplayConfigurationOutputD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN3mir8graphics26DisplayConfigurationOutputD2Ev@Base 0.6.1
++ (optional=templinst)_ZN4QMapIi5QSizeE13detach_helperEv@Base 0.6.1
++ (optional=templinst)_ZN4QMapIi5QSizeED1Ev@Base 0.6.1
++ (optional=templinst)_ZN4QMapIi5QSizeED2Ev@Base 0.6.1
++ (optional=templinst)_ZN4QMapIi7QStringE13detach_helperEv@Base 0.6.1
++ (optional=templinst)_ZN4QMapIi7QStringEixERKi@Base 0.6.1
++ (optional=templinst)_ZN5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEE11deleteNode2EPN9QHashData4NodeE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEE13detach_helperEv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEE13duplicateNodeEPN9QHashData4NodeEPv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEE5eraseENS6_14const_iteratorE@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QHashIP20ScreenPlatformWindowP14PlatformScreenE11deleteNode2EPN9QHashData4NodeE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIP20ScreenPlatformWindowP14PlatformScreenE13duplicateNodeEPN9QHashData4NodeEPv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIP20ScreenPlatformWindowP14PlatformScreenED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIP20ScreenPlatformWindowP14PlatformScreenED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEE11deleteNode2EPN9QHashData4NodeE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEE13detach_helperEv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEE13duplicateNodeEPN9QHashData4NodeEPv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEE6removeERKS4_@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEEixERKS4_@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverE11deleteNode2EPN9QHashData4NodeE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverE13detach_helperEv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverE13duplicateNodeEPN9QHashData4NodeEPv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverE5eraseENS7_14const_iteratorE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QHashIi15QHashDummyValueE11deleteNode2EPN9QHashData4NodeE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIi15QHashDummyValueE13duplicateNodeEPN9QHashData4NodeEPv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIi15QHashDummyValueED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIi15QHashDummyValueED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QHashIiN22QWindowSystemInterface10TouchPointEE11deleteNode2EPN9QHashData4NodeE@Base 0.6.1
++ (optional=templinst)_ZN5QHashIiN22QWindowSystemInterface10TouchPointEE13detach_helperEv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIiN22QWindowSystemInterface10TouchPointEE13duplicateNodeEPN9QHashData4NodeEPv@Base 0.6.1
++ (optional=templinst)_ZN5QHashIiN22QWindowSystemInterface10TouchPointEE5eraseENS2_14const_iteratorE@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIiN22QWindowSystemInterface10TouchPointEED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN5QHashIiN22QWindowSystemInterface10TouchPointEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListI5QPairId5QSizeEE18detach_helper_growEii@Base 0.6.1
++ (optional=templinst)_ZN5QListI5QPairId5QSizeEE6appendERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListI5QPairId5QSizeEEC1ERKS3_@Base 0.6.1
++ (optional=templinst)_ZN5QListI5QPairId5QSizeEEC2ERKS3_@Base 0.6.1
++ (optional=templinst)_ZN5QListI5QPairId5QSizeEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListI5QPairId5QSizeEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListI7QStringED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListI7QStringED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIN22QWindowSystemInterface10TouchPointEE13detach_helperEi@Base 0.6.1
++ (optional=templinst)_ZN5QListIN22QWindowSystemInterface10TouchPointEE18detach_helper_growEii@Base 0.6.1
++ (optional=templinst)_ZN5QListIN22QWindowSystemInterface10TouchPointEE6appendERKS1_@Base 0.6.1
++ (optional=templinst)_ZN5QListIN22QWindowSystemInterface10TouchPointEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIN22QWindowSystemInterface10TouchPointEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIP14PlatformScreenE18detach_helper_growEii@Base 0.6.1
++ (optional=templinst)_ZN5QListIP14PlatformScreenE6appendERKS1_@Base 0.6.1
++ (optional=templinst)_ZN5QListIP14PlatformScreenEC1ERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListIP14PlatformScreenEC2ERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListIP14PlatformScreenED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIP14PlatformScreenED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIP7QScreenED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIP7QScreenED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIP7QWindowEC1ERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListIP7QWindowEC2ERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListIP7QWindowED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIP7QWindowED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir10ScreenModeEE18detach_helper_growEii@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir10ScreenModeEE6appendERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir10ScreenModeEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir10ScreenModeEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir22WindowNotifierObserverEE18detach_helper_growEii@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir22WindowNotifierObserverEE6appendERKS2_@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir22WindowNotifierObserverEEC1ERKS3_@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir22WindowNotifierObserverEEC2ERKS3_@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir22WindowNotifierObserverEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN5QListIPN5qtmir22WindowNotifierObserverEED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral15GLTextureBuffer10setWrappedERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral15GLTextureBuffer4typeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral15GLTextureBuffer8tex_bindEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral15GLTextureBufferC1ERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral15GLTextureBufferC2ERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfig4Self26base_configuration_updatedERKSt10shared_ptrIKN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfig4Self29session_configuration_appliedERKSt10shared_ptrIN3mir5scene7SessionEERKS2_INS3_8graphics20DisplayConfigurationEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfig4Self29session_configuration_removedERKSt10shared_ptrIN3mir5scene7SessionEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfig4SelfD0Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfig4SelfD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfig4SelfD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfigC1ERKS0_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN5miral20PersistDisplayConfigC1ERKSt10shared_ptrINS_27DisplayConfigurationStorageEERKSt8functionIFS1_INS_26DisplayConfigurationPolicyEEvEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfigC2ERKS0_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN5miral20PersistDisplayConfigC2ERKSt10shared_ptrINS_27DisplayConfigurationStorageEERKSt8functionIFS1_INS_26DisplayConfigurationPolicyEEvEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfigD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfigD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfigaSERKS0_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral20PersistDisplayConfigclERN3mir6ServerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral21GLTextureSourceBuffer10setWrappedERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral21GLTextureSourceBuffer17upload_to_textureEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral21GLTextureSourceBuffer4typeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral21GLTextureSourceBufferC1ERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral21GLTextureSourceBufferC2ERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral26DisplayConfigurationPolicyC1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral26DisplayConfigurationPolicyC2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral4Edid10parse_dataERKSt6vectorIhSaIhEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBuffer10setWrappedERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.7.0# _ZN5miral8GLBuffer15bind_to_textureEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBuffer15from_mir_bufferERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.7.0
++#MISSING: 0.7.0# _ZN5miral8GLBuffer17secure_for_renderEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBuffer5emptyEv@Base 0.7.0
++#MISSING: 0.7.0# _ZN5miral8GLBuffer5resetERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBuffer5resetEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBufferC1ERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.6.1
++#MISSING: 0.7.0# _ZN5miral8GLBufferC1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBufferC2ERKSt10shared_ptrIN3mir8graphics6BufferEE@Base 0.6.1
++#MISSING: 0.7.0# _ZN5miral8GLBufferC2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBufferD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5miral8GLBufferD2Ev@Base 0.6.1
++ _ZN5qtmir10ScreenMode11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir10ScreenMode11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir10ScreenMode16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir10ScreenModeD0Ev@Base 0.6.1
++ _ZN5qtmir10ScreenModeD1Ev@Base 0.6.1
++ _ZN5qtmir10ScreenModeD2Ev@Base 0.6.1
++ _ZN5qtmir11AppNotifier10appRemovedERKN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN5qtmir11AppNotifier11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir11AppNotifier11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir11AppNotifier16appCreatedWindowERKN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN5qtmir11AppNotifier16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir11AppNotifier8appAddedERKN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN5qtmir11AppNotifierD0Ev@Base 0.6.1
++ _ZN5qtmir11AppNotifierD1Ev@Base 0.6.1
++ _ZN5qtmir11AppNotifierD2Ev@Base 0.6.1
++ _ZN5qtmir11NamedCursorD0Ev@Base 0.6.1
++ _ZN5qtmir11NamedCursorD1Ev@Base 0.6.1
++ _ZN5qtmir11NamedCursorD2Ev@Base 0.6.1
++ _ZN5qtmir12EventBuilder10m_instanceE@Base 0.6.1
++ _ZN5qtmir12EventBuilder12makeMirEventE6QFlagsIN2Qt16KeyboardModifierEERK5QListIN11QTouchEvent10TouchPointEES1_INS2_15TouchPointStateEEm@Base 0.6.1
++ _ZN5qtmir12EventBuilder12makeMirEventEP11QInputEventiij@Base 0.6.1
++ _ZN5qtmir12EventBuilder12makeMirEventEP11QWheelEvent@Base 0.6.1
++ _ZN5qtmir12EventBuilder12makeMirEventEP9QKeyEvent@Base 0.6.1
++ _ZN5qtmir12EventBuilder19reconstructMirEventEP11QHoverEvent@Base 0.6.1
++ _ZN5qtmir12EventBuilder19reconstructMirEventEP11QMouseEvent@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir12EventBuilder5storeEPK13MirInputEventm@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir12EventBuilder8findInfoEm@Base 0.6.1
++ _ZN5qtmir12EventBuilder8instanceEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir12EventBuilder9EventInfo5storeEPK13MirInputEventm@Base 0.6.1
++ _ZN5qtmir12EventBuilderC1Ev@Base 0.6.1
++ _ZN5qtmir12EventBuilderC2Ev@Base 0.6.1
++ _ZN5qtmir12EventBuilderD0Ev@Base 0.6.1
++ _ZN5qtmir12EventBuilderD1Ev@Base 0.6.1
++ _ZN5qtmir12EventBuilderD2Ev@Base 0.6.1
++ _ZN5qtmir12getExtraInfoERKN5miral10WindowInfoE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir14MirServerHooks25createInputDeviceObserverEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir14MirServerHooksC1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir14MirServerHooksC2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir14MirServerHooksclERN3mir6ServerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15MirCursorImages5imageERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3mir8geometry4SizeE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15MirCursorImagesD0Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15MirCursorImagesD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15MirCursorImagesD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15SetQtCompositorC1ERKSt10shared_ptrI12ScreensModelE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15SetQtCompositorC2ERKSt10shared_ptrI12ScreensModelE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15SetQtCompositorD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15SetQtCompositorD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir15SetQtCompositorclERN3mir6ServerE@Base 0.6.1
++ _ZN5qtmir16WindowController10forceCloseERKN5miral6WindowE@Base 0.6.1
++ _ZN5qtmir16WindowController12requestCloseERKN5miral6WindowE@Base 0.6.1
++ _ZN5qtmir16WindowController12requestStateERKN5miral6WindowEN3Mir5StateE@Base 0.6.1
++ _ZN5qtmir16WindowController16setWindowMarginsEN3Mir4TypeERK8QMargins@Base 0.6.1
++ _ZN5qtmir16WindowController17deliverTouchEventERKN5miral6WindowEPK13MirTouchEvent@Base 0.6.1
++ _ZN5qtmir16WindowController19deliverPointerEventERKN5miral6WindowEPK15MirPointerEvent@Base 0.6.1
++ _ZN5qtmir16WindowController20deliverKeyboardEventERKN5miral6WindowEPK16MirKeyboardEvent@Base 0.6.1
++ _ZN5qtmir16WindowController27setWindowConfinementRegionsERK7QVectorI5QRectE@Base 0.6.1
++ _ZN5qtmir16WindowController4moveERKN5miral6WindowERK6QPoint@Base 0.6.1
++ _ZN5qtmir16WindowController5raiseERKN5miral6WindowE@Base 0.6.1
++ _ZN5qtmir16WindowController6resizeERKN5miral6WindowERK5QSize@Base 0.6.1
++ _ZN5qtmir16WindowController8activateERKN5miral6WindowE@Base 0.6.1
++ _ZN5qtmir16WindowController9setPolicyEP29WrappedWindowManagementPolicy@Base 0.6.1
++ _ZN5qtmir16WindowControllerC1Ev@Base 0.6.1
++ _ZN5qtmir16WindowControllerC2Ev@Base 0.6.1
++ _ZN5qtmir16WindowControllerD0Ev@Base 0.6.1
++ _ZN5qtmir16WindowControllerD1Ev@Base 0.6.1
++ _ZN5qtmir16WindowControllerD2Ev@Base 0.6.1
++ _ZN5qtmir16get_screen_modelEv@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer19connectionIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer19screencastIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer22promptSessionIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer23configureInputIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer25configureDisplayIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer30requestAuthorizationForSessionERKiRb@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer34setBaseInputConfigurationIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizer36setBaseDisplayConfigurationIsAllowedERKN5miral22ApplicationCredentialsE@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizerC1Ev@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizerC2Ev@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizerD0Ev@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizerD1Ev@Base 0.6.1
++ _ZN5qtmir17SessionAuthorizerD2Ev@Base 0.6.1
++ (optional=templinst|arch=armel armhf m68k)_ZN5qtmir17compressTimestampINSt6chrono8durationImSt5ratioILx1ELx1000EEEEEET_NS2_IxS3_ILx1ELx1000000000EEEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir18dispatchInputEventERKN5miral6WindowEPK13MirInputEvent@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier11windowAddedERKNS_9NewWindowE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier11windowMovedERKN5miral10WindowInfoE6QPoint@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier11windowReadyERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier13windowRemovedERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier13windowResizedERKN5miral10WindowInfoE5QSize@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier13windowsRaisedERKSt6vectorIN5miral6WindowESaIS3_EE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier18modificationsEndedEv@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier18windowFocusChangedERKN5miral10WindowInfoEb@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier18windowStateChangedERKN5miral10WindowInfoEN3Mir5StateE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier20modificationsStartedEv@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier20windowRequestedRaiseERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier23windowsAddedToWorkspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt6vectorINS2_6WindowESaIS8_EE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifier36windowsAboutToBeRemovedFromWorkspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt6vectorINS2_6WindowESaIS8_EE@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifierC1Ev@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifierC2Ev@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifierD0Ev@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifierD1Ev@Base 0.6.1
++ _ZN5qtmir19WindowModelNotifierD2Ev@Base 0.6.1
++ _ZN5qtmir19WorkspaceController21moveWindowToWorkspaceERKN5miral6WindowERKSt10shared_ptrINS1_9WorkspaceEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir19WorkspaceController24forEachWindowInWorkspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt8functionIFvRKNS2_6WindowEEE@Base 0.6.1
++ _ZN5qtmir19WorkspaceController31moveWorkspaceContentToWorkspaceERKSt10shared_ptrIN5miral9WorkspaceEES6_@Base 0.6.1
++ _ZN5qtmir19WorkspaceController9setPolicyEP29WrappedWindowManagementPolicy@Base 0.6.1
++ _ZN5qtmir19WorkspaceControllerC1Ev@Base 0.6.1
++ _ZN5qtmir19WorkspaceControllerC2Ev@Base 0.6.1
++ _ZN5qtmir19WorkspaceControllerD0Ev@Base 0.6.1
++ _ZN5qtmir19WorkspaceControllerD1Ev@Base 0.6.1
++ _ZN5qtmir19WorkspaceControllerD2Ev@Base 0.6.1
++ _ZN5qtmir20MirServerApplication11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir20MirServerApplication11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir20MirServerApplication16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir20MirServerApplication22screenAboutToBeRemovedEP7QScreen@Base 0.6.1
++ _ZN5qtmir20MirServerApplicationC1ERiPPcSt16initializer_listISt8functionIFvR10QMirServerEEE@Base 0.6.1
++ _ZN5qtmir20MirServerApplicationC2ERiPPcSt16initializer_listISt8functionIFvR10QMirServerEEE@Base 0.6.1
++ _ZN5qtmir20MirServerApplicationD0Ev@Base 0.6.1
++ _ZN5qtmir20MirServerApplicationD1Ev@Base 0.6.1
++ _ZN5qtmir20MirServerApplicationD2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20OpenGLContextFactoryC1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20OpenGLContextFactoryC2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20OpenGLContextFactoryclERN3mir6ServerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20PromptSessionManagerC1ERKSt10shared_ptrIN3mir5scene20PromptSessionManagerEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20PromptSessionManagerC2ERKSt10shared_ptrIN3mir5scene20PromptSessionManagerEE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20PromptSessionManagerD0Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20PromptSessionManagerD1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir20PromptSessionManagerD2Ev@Base 0.6.1
++ _ZN5qtmir21PromptSessionListener10suspendingERKSt10shared_ptrIN3mir5scene13PromptSessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener11qt_metacastEPKc@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener16staticMetaObjectE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener19promptProviderAddedERKNS_13PromptSessionERKSt10shared_ptrIN3mir5scene7SessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener21promptProviderRemovedERKNS_13PromptSessionERKSt10shared_ptrIN3mir5scene7SessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener21promptSessionResumingERKNS_13PromptSessionE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener21promptSessionStartingERKNS_13PromptSessionE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener21promptSessionStoppingERKNS_13PromptSessionE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener21prompt_provider_addedERKN3mir5scene13PromptSessionERKSt10shared_ptrINS2_7SessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener23promptSessionSuspendingERKNS_13PromptSessionE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener23prompt_provider_removedERKN3mir5scene13PromptSessionERKSt10shared_ptrINS2_7SessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener8resumingERKSt10shared_ptrIN3mir5scene13PromptSessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener8startingERKSt10shared_ptrIN3mir5scene13PromptSessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListener8stoppingERKSt10shared_ptrIN3mir5scene13PromptSessionEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListenerC1EP7QObject@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListenerC2EP7QObject@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListenerD0Ev@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListenerD1Ev@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir21PromptSessionListenerD2Ev@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir22MirInputDeviceObserver11applyKeymapEN6miroil11InputDeviceE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir22MirInputDeviceObserver11applyKeymapERKSt10shared_ptrIN3mir5input6DeviceEE@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserver11applyKeymapEv@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserver11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserver11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserver12device_addedEN6miroil11InputDeviceE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir22MirInputDeviceObserver14device_removedEN6miroil11InputDeviceE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir22MirInputDeviceObserver16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserver9setKeymapERK7QString@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserverC1EP7QObject@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserverC2EP7QObject@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserverD0Ev@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserverD1Ev@Base 0.6.1
++ _ZN5qtmir22MirInputDeviceObserverD2Ev@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy10advise_endEv@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy12advise_beginEv@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy12advise_raiseERKSt6vectorIN5miral6WindowESaIS3_EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir22WindowManagementPolicy13advise_resizeERKN5miral10WindowInfoERKN3mir8geometry4SizeE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy13advise_resizeERKN5miral10WindowInfoERKN3mir8geometry7generic4SizeIiEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir22WindowManagementPolicy14advise_move_toERKN5miral10WindowInfoEN3mir8geometry5PointE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy14advise_move_toERKN5miral10WindowInfoEN3mir8geometry7generic5PointIiEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir22WindowManagementPolicy14advise_new_appERN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy16place_new_windowERKN5miral15ApplicationInfoERKNS1_19WindowSpecificationE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy17advise_delete_appERKN5miral15ApplicationInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy17advise_focus_lostERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy17advise_new_windowERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy18handle_touch_eventEPK13MirTouchEvent@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy19advise_focus_gainedERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy19advise_state_changeERKN5miral10WindowInfoE14MirWindowState@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy19handle_raise_windowERN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy19handle_request_moveERN5miral10WindowInfoEPK13MirInputEvent@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy19handle_window_readyERN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy20advise_delete_windowERKN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy20advise_output_createERKN5miral6OutputE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy20advise_output_deleteERKN5miral6OutputE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy20advise_output_updateERKN5miral6OutputES4_@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy20handle_modify_windowERN5miral10WindowInfoERKNS1_19WindowSpecificationE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy20handle_pointer_eventEPK15MirPointerEvent@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy21handle_keyboard_eventEPK16MirKeyboardEvent@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy21handle_request_resizeERN5miral10WindowInfoEPK13MirInputEvent13MirResizeEdge@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir22WindowManagementPolicy22confirm_inherited_moveERKN5miral10WindowInfoEN3mir8geometry12DisplacementE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy22confirm_inherited_moveERKN5miral10WindowInfoEN3mir8geometry7generic12DisplacementIiEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir22WindowManagementPolicy26advise_adding_to_workspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt6vectorINS2_6WindowESaIS8_EE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy28confirm_placement_on_displayERKN5miral10WindowInfoE14MirWindowStateRKN3mir8geometry7generic9RectangleIiEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# _ZN5qtmir22WindowManagementPolicy28confirm_placement_on_displayERKN5miral10WindowInfoE14MirWindowStateRKN3mir8geometry9RectangleE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy28handle_request_drag_and_dropERN5miral10WindowInfoE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicy30advise_removing_from_workspaceERKSt10shared_ptrIN5miral9WorkspaceEERKSt6vectorINS2_6WindowESaIS8_EE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicyC1ERKN5miral18WindowManagerToolsESt10shared_ptrINS_29WindowManagementPolicyPrivateEE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicyC2ERKN5miral18WindowManagerToolsESt10shared_ptrINS_29WindowManagementPolicyPrivateEE@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicyD0Ev@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicyD1Ev@Base 0.6.1
++ _ZN5qtmir22WindowManagementPolicyD2Ev@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver11windowMovedERK6QPoint@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver11windowReadyEv@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver13windowCreatedEv@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver13windowRemovedEv@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver13windowResizedERK5QSize@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver18windowFocusChangedEb@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver18windowStateChangedEN3Mir5StateE@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver20windowRequestedRaiseEv@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserver24foreachObserverForWindowERKN5miral6WindowESt8functionIFvPS0_EE@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserverC1ERKN5miral6WindowE@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserverC2ERKN5miral6WindowE@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserverD0Ev@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserverD1Ev@Base 0.6.1
++ _ZN5qtmir22WindowNotifierObserverD2Ev@Base 0.6.1
++ (optional=templinst)_ZN5qtmir25BasicSetSessionAuthorizerC1ERKSt8functionIFSt10shared_ptrINS_17SessionAuthorizerEEvEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir25BasicSetSessionAuthorizerC2ERKSt8functionIFSt10shared_ptrINS_17SessionAuthorizerEEvEE@Base 0.6.1
++ _ZN5qtmir25BasicSetSessionAuthorizerclER10QMirServer@Base 0.6.1
++ _ZN5qtmir26DisplayConfigurationPolicy8apply_toERN3mir8graphics20DisplayConfigurationE@Base 0.6.1
++ _ZN5qtmir26DisplayConfigurationPolicyC1Ev@Base 0.6.1
++ _ZN5qtmir26DisplayConfigurationPolicyC2Ev@Base 0.6.1
++ _ZN5qtmir26DisplayConfigurationPolicyD0Ev@Base 0.6.1
++ _ZN5qtmir26DisplayConfigurationPolicyD1Ev@Base 0.6.1
++ _ZN5qtmir26DisplayConfigurationPolicyD2Ev@Base 0.6.1
++ (optional=templinst)_ZN5qtmir30BasicSetWindowManagementPolicyC1ERKSt8functionIFSt10shared_ptrINS_22WindowManagementPolicyEERKN5miral18WindowManagerToolsES2_INS_29WindowManagementPolicyPrivateEEEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir30BasicSetWindowManagementPolicyC2ERKSt8functionIFSt10shared_ptrINS_22WindowManagementPolicyEERKN5miral18WindowManagerToolsES2_INS_29WindowManagementPolicyPrivateEEEE@Base 0.6.1
++ _ZN5qtmir30BasicSetWindowManagementPolicyclER10QMirServer@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN5qtmir34BasicSetDisplayConfigurationPolicyC1ERKSt8functionIFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir34BasicSetDisplayConfigurationPolicyC1ERKSt8functionIFSt10shared_ptrIN6miroil26DisplayConfigurationPolicyEERKS2_IN3mir8graphics26DisplayConfigurationPolicyEEEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN5qtmir34BasicSetDisplayConfigurationPolicyC2ERKSt8functionIFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir34BasicSetDisplayConfigurationPolicyC2ERKSt8functionIFSt10shared_ptrIN6miroil26DisplayConfigurationPolicyEERKS2_IN3mir8graphics26DisplayConfigurationPolicyEEEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir34BasicSetDisplayConfigurationPolicyclER10QMirServer@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN5qtmir35BasicSetDisplayConfigurationStorageC1ERKSt8functionIFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir35BasicSetDisplayConfigurationStorageC1ERKSt8functionIFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvEE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN5qtmir35BasicSetDisplayConfigurationStorageC2ERKSt8functionIFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvEE@Base 0.6.1
++ (optional=templinst)_ZN5qtmir35BasicSetDisplayConfigurationStorageC2ERKSt8functionIFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvEE@Base 0.8.0~git20230109.671f617
++ _ZN5qtmir35BasicSetDisplayConfigurationStorageclER10QMirServer@Base 0.6.1
++ _ZN5qtmir3Mir10m_instanceE@Base 0.6.1
++ _ZN5qtmir3Mir11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir3Mir11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir3Mir13setCursorNameERK7QString@Base 0.6.1
++ _ZN5qtmir3Mir16setCurrentKeymapERK7QString@Base 0.6.1
++ _ZN5qtmir3Mir16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir3Mir8instanceEv@Base 0.6.1
++ _ZN5qtmir3MirC1Ev@Base 0.6.1
++ _ZN5qtmir3MirC2Ev@Base 0.6.1
++ _ZN5qtmir3MirD0Ev@Base 0.6.1
++ _ZN5qtmir3MirD1Ev@Base 0.6.1
++ _ZN5qtmir3MirD2Ev@Base 0.6.1
++ _ZN5qtmir6Cursor11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir6Cursor11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir6Cursor12changeCursorEP7QCursorP7QWindow@Base 0.6.1
++ _ZN5qtmir6Cursor12pointerEventERK11QMouseEvent@Base 0.6.1
++ _ZN5qtmir6Cursor16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir6Cursor20registerMousePointerEP24MirMousePointerInterface@Base 0.6.1
++ _ZN5qtmir6Cursor22unregisterMousePointerEP24MirMousePointerInterface@Base 0.6.1
++ _ZN5qtmir6Cursor6setPosERK6QPoint@Base 0.6.1
++ _ZN5qtmir6Cursor7Private11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir6Cursor7Private11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir6Cursor7Private13cursorChangedERK7QCursorRK7QString@Base 0.6.1
++ _ZN5qtmir6Cursor7Private15setCustomCursorEP7QCursorRK7QString@Base 0.6.1
++ _ZN5qtmir6Cursor7Private16setMirCursorNameERK7QString@Base 0.6.1
++ _ZN5qtmir6Cursor7Private16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir6Cursor7Private21screenPositionChangedERK6QPoint@Base 0.6.1
++ _ZN5qtmir6Cursor7PrivateC1Ev@Base 0.6.1
++ _ZN5qtmir6Cursor7PrivateC2Ev@Base 0.6.1
++ _ZN5qtmir6Cursor7PrivateD0Ev@Base 0.6.1
++ _ZN5qtmir6Cursor7PrivateD1Ev@Base 0.6.1
++ _ZN5qtmir6Cursor7PrivateD2Ev@Base 0.6.1
++ _ZN5qtmir6CursorC1Ev@Base 0.6.1
++ _ZN5qtmir6CursorC2Ev@Base 0.6.1
++ _ZN5qtmir6CursorD0Ev@Base 0.6.1
++ _ZN5qtmir6CursorD1Ev@Base 0.6.1
++ _ZN5qtmir6CursorD2Ev@Base 0.6.1
++ _ZN5qtmir6Screen11nameChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir6Screen11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir6Screen11usedChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen12scaleChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen13activeChangedEb@Base 0.6.1
++ _ZN5qtmir6Screen15positionChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen16powerModeChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir6Screen17formFactorChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen17outputTypeChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen18orientationChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen19physicalSizeChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen21availableModesChangedEv@Base 0.6.1
++ _ZN5qtmir6Screen23currentModeIndexChangedEv@Base 0.6.1
++ _ZN5qtmir7Screens11qt_metacallEN11QMetaObject4CallEiPPv@Base 0.6.1
++ _ZN5qtmir7Screens11qt_metacastEPKc@Base 0.6.1
++ _ZN5qtmir7Screens11screenAddedEPNS_6ScreenE@Base 0.6.1
++ _ZN5qtmir7Screens13screenRemovedEPNS_6ScreenE@Base 0.6.1
++ _ZN5qtmir7Screens16staticMetaObjectE@Base 0.6.1
++ _ZN5qtmir7Screens19activeScreenChangedEv@Base 0.6.1
++ _ZN5qtmir9NewWindowD1Ev@Base 0.6.1
++ _ZN5qtmir9NewWindowD2Ev@Base 0.6.1
++ _ZN5qtmir9ShellUuId6m_uuidE@Base 0.6.1
++ _ZN5qtmir9ShellUuId7m_mutexE@Base 0.6.1
++ _ZN5qtmir9ShellUuId8toStringEv@Base 0.6.1
++ _ZN6QDebuglsEPKc@Base 0.6.1
++ _ZN6miroil13SetCompositorD1Ev@Base 0.8.0~git20230109.671f617
++ _ZN6miroil13SetCompositorD2Ev@Base 0.8.0~git20230109.671f617
++#MISSING: 0.6.1-8# _ZN7QStringC1ERKS_@Base 0.6.1
++#MISSING: 0.6.1-8# _ZN7QStringC2ERKS_@Base 0.6.1
++ _ZN7QStringD1Ev@Base 0.6.1
++ _ZN7QStringD2Ev@Base 0.6.1
++#MISSING: 0.7.0-1# (optional=templinst|arch=!amd64 !arm64 !mips64el !ppc64el !sh4)_ZN7QVectorI5QRectEC1ERKS1_@Base 0.6.1
++#MISSING: 0.7.0-1# (optional=templinst|arch=!amd64 !arm64 !mips64el !ppc64el !sh4)_ZN7QVectorI5QRectEC2ERKS1_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorI5QRectED1Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorI5QRectED2Ev@Base 0.6.1
++ (optional=templinst|arch=!amd64 !arm64 !hppa !mips64el !ppc64 !ppc64el !riscv64 !s390x !sh4)_ZN7QVectorI7QPointFEC1ERKS1_@Base 0.6.1
++ (optional=templinst|arch=!amd64 !arm64 !hppa !mips64el !ppc64 !ppc64el !riscv64 !s390x !sh4)_ZN7QVectorI7QPointFEC2ERKS1_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorI7QPointFED1Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorI7QPointFED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN7QVectorIN5qtmir12EventBuilder9EventInfoEE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN7QVectorIN5qtmir12EventBuilder9EventInfoEED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !armhf)_ZN7QVectorIN5qtmir12EventBuilder9EventInfoEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIN5qtmir19ScreenConfigurationEE6appendEOS1_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIN5qtmir19ScreenConfigurationEE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.6.1
++#MISSING: 0.7.0-1# (optional=templinst|arch=!amd64)_ZN7QVectorIN5qtmir19ScreenConfigurationEEC1ERKS2_@Base 0.6.1
++#MISSING: 0.7.0-1# (optional=templinst|arch=!amd64)_ZN7QVectorIN5qtmir19ScreenConfigurationEEC2ERKS2_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIN5qtmir19ScreenConfigurationEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIN5qtmir19ScreenConfigurationEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIN6miroil11InputDeviceEE6appendERKS1_@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZN7QVectorIN6miroil11InputDeviceEE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZN7QVectorIN6miroil11InputDeviceEED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZN7QVectorIN6miroil11InputDeviceEED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZN7QVectorIP20ScreenPlatformWindowE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorIP20ScreenPlatformWindowEC1ERKS2_@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorIP20ScreenPlatformWindowEC2ERKS2_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIP20ScreenPlatformWindowED1Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIP20ScreenPlatformWindowED2Ev@Base 0.6.1
++ _ZN7QVectorIPN5qtmir10ScreenModeEE6appendEOS2_@Base 0.6.1
++ _ZN7QVectorIPN5qtmir10ScreenModeEE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.6.1
++ _ZN7QVectorIPN5qtmir10ScreenModeEE7reserveEi@Base 0.6.1
++ _ZN7QVectorIPN5qtmir10ScreenModeEED1Ev@Base 0.6.1
++ _ZN7QVectorIPN5qtmir10ScreenModeEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEE5eraseEPS2_S4_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEE6appendEOS2_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEEC1ERKS3_@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEEC2ERKS3_@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEED1Ev@Base 0.6.1
++ (optional=templinst)_ZN7QVectorIPN5qtmir6ScreenEED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEE6appendERKS4_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEE7reallocEi6QFlagsIN10QArrayData16AllocationOptionEE@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEE9removeAllERKS4_@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEEC1ERKS5_@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEEC2ERKS5_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEED1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZN7QVectorISt10shared_ptrIN3mir5input6DeviceEEED2Ev@Base 0.6.1
++ (optional=templinst)_ZN8QMapDataIi7QStringE7destroyEv@Base 0.6.1
++ (optional=templinst)_ZN8QMapNodeIi7QStringE14destroySubTreeEv@Base 0.6.1
++ _ZN8Services12openDocumentERK4QUrl@Base 0.6.1
++ _ZN8Services14callDispatcherERK4QUrl@Base 0.6.1
++ _ZN8Services7openUrlERK4QUrl@Base 0.6.1
++ _ZN8ServicesD0Ev@Base 0.6.1
++ _ZN8ServicesD1Ev@Base 0.6.1
++ _ZN8ServicesD2Ev@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM10QMirServerFvvENS_4ListIJEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM12ScreensModelFvvENS_4ListIJEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM13ScreenAdaptorFvvENS_4ListIJEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM14PlatformScreenFvN19QOrientationReading11OrientationEENS_4ListIJS3_EEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM18ScreenAdaptorModelFvP7QScreenENS_4ListIJS3_EEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM20ScreenPlatformWindowFvbENS_4ListIJbEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIM20ScreenPlatformWindowFvvENS_4ListIJEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIMN5qtmir22MirInputDeviceObserverEFvRK7QStringENS_4ListIJS5_EEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIMN5qtmir6Cursor7PrivateEFvRK7QStringENS_4ListIJS6_EEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIMN5qtmir6ScreenEFvbENS_4ListIJbEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIMN5qtmir6ScreenEFvvENS_4ListIJEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate11QSlotObjectIMN5qtmir7ScreensEFvvENS_4ListIJEEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb@Base 0.6.1
++ _ZN9QtPrivate17QForeachContainerI7QVectorIP20ScreenPlatformWindowEEC1ERKS4_@Base 0.6.1
++ _ZN9QtPrivate17QForeachContainerI7QVectorIP20ScreenPlatformWindowEEC2ERKS4_@Base 0.6.1
++ (optional=templinst)_ZN9QtPrivate24printSequentialContainerI7QVectorIPN5qtmir6ScreenEEEE6QDebugS6_PKcRKT_@Base 0.6.1
++ (arch=armel riscv64)_ZN9__gnu_cxx24__concurrence_lock_errorD0Ev@Base 0.7.0
++ (arch=armel riscv64)_ZN9__gnu_cxx24__concurrence_lock_errorD1Ev@Base 0.7.0
++ (arch=armel riscv64)_ZN9__gnu_cxx24__concurrence_lock_errorD2Ev@Base 0.7.0
++ (arch=armel riscv64)_ZN9__gnu_cxx26__concurrence_unlock_errorD0Ev@Base 0.7.0
++ (arch=armel riscv64)_ZN9__gnu_cxx26__concurrence_unlock_errorD1Ev@Base 0.7.0
++ (arch=armel riscv64)_ZN9__gnu_cxx26__concurrence_unlock_errorD2Ev@Base 0.7.0
++ _ZNK10QMirServer10metaObjectEv@Base 0.6.1
++ _ZNK10QMirServer11appNotifierEv@Base 0.6.1
++ _ZNK10QMirServer12screensModelEv@Base 0.6.1
++ _ZNK10QMirServer19windowModelNotifierEv@Base 0.6.1
++ _ZNK10QMirServer23thePromptSessionManagerEv@Base 0.6.1
++ _ZNK10QMirServer27createPlatformOpenGLContextEP14QOpenGLContext@Base 0.6.1
++ _ZNK10QMirServer28nativeResourceForIntegrationERK10QByteArray@Base 0.6.1
++ _ZNK10QMirServer9isRunningEv@Base 0.6.1
++ _ZNK11MirGLConfig17depth_buffer_bitsEv@Base 0.6.1
++ _ZNK11MirGLConfig19stencil_buffer_bitsEv@Base 0.6.1
++ _ZNK12QtCompositor10metaObjectEv@Base 0.6.1
++ _ZNK12ScreensModel10metaObjectEv@Base 0.6.1
++ _ZNK12ScreensModel12createScreenERKN3mir8graphics26DisplayConfigurationOutputE@Base 0.6.1
++ _ZNK13ScreenAdaptor10formFactorEv@Base 0.6.1
++ _ZNK13ScreenAdaptor10metaObjectEv@Base 0.6.1
++ _ZNK13ScreenAdaptor10outputTypeEv@Base 0.6.1
++ _ZNK13ScreenAdaptor11orientationEv@Base 0.6.1
++ _ZNK13ScreenAdaptor12physicalSizeEv@Base 0.6.1
++ _ZNK13ScreenAdaptor16currentModeIndexEv@Base 0.6.1
++ _ZNK13ScreenAdaptor18beginConfigurationEv@Base 0.6.1
++ _ZNK13ScreenAdaptor4nameEv@Base 0.6.1
++ _ZNK13ScreenAdaptor4usedEv@Base 0.6.1
++ _ZNK13ScreenAdaptor5scaleEv@Base 0.6.1
++ _ZNK13ScreenAdaptor7qscreenEv@Base 0.6.1
++ _ZNK13ScreenAdaptor8isActiveEv@Base 0.6.1
++ _ZNK13ScreenAdaptor8positionEv@Base 0.6.1
++ _ZNK13ScreenAdaptor9displayIdEv@Base 0.6.1
++ _ZNK13ScreenAdaptor9powerModeEv@Base 0.6.1
++ _ZNK14PlatformScreen10metaObjectEv@Base 0.6.1
++ _ZNK14PlatformScreen10topLevelAtERK6QPoint@Base 0.6.1
++ _ZNK14PlatformScreen11orientationEv@Base 0.6.1
++ _ZNK14PlatformScreen11refreshRateEv@Base 0.6.1
++ _ZNK14PlatformScreen12physicalSizeEv@Base 0.6.1
++ _ZNK14PlatformScreen13primaryWindowEv@Base 0.6.1
++ _ZNK14PlatformScreen14availableModesEv@Base 0.6.1
++ _ZNK14PlatformScreen15internalDisplayEv@Base 0.6.1
++ _ZNK14PlatformScreen16devicePixelRatioEv@Base 0.6.1
++ _ZNK14PlatformScreen17nativeOrientationEv@Base 0.6.1
++ _ZNK14PlatformScreen4nameEv@Base 0.6.1
++ _ZNK14PlatformScreen5depthEv@Base 0.6.1
++ _ZNK14PlatformScreen6cursorEv@Base 0.6.1
++ _ZNK14PlatformScreen6formatEv@Base 0.6.1
++ _ZNK14PlatformScreen8geometryEv@Base 0.6.1
++ _ZNK15MirServerThread10metaObjectEv@Base 0.6.1
++ _ZNK15NativeInterface10metaObjectEv@Base 0.6.1
++ _ZNK15NativeInterface23thePromptSessionManagerEv@Base 0.6.1
++ _ZNK15QPlatformScreen13isPlaceholderEv@Base 0.6.1
++ _ZNK15QPlatformScreen17availableGeometryEv@Base 0.6.1
++ _ZNK15QPlatformWindow15isForeignWindowEv@Base 0.6.1
++ _ZNK15SurfaceObserver10metaObjectEv@Base 0.6.1
++ _ZNK16MirOpenGLContext10metaObjectEv@Base 0.6.1
++ _ZNK16MirOpenGLContext6formatEv@Base 0.6.1
++ _ZNK16MirOpenGLContext9isSharingEv@Base 0.6.1
++ _ZNK16OffscreenSurface6bufferEv@Base 0.6.1
++ _ZNK16OffscreenSurface6formatEv@Base 0.6.1
++ _ZNK16OffscreenSurface7isValidEv@Base 0.6.1
++ _ZNK17OrientationSensor10metaObjectEv@Base 0.6.1
++ _ZNK17QMirServerPrivate20promptSessionManagerEv@Base 0.6.1
++ _ZNK17QMirServerPrivate21promptSessionListenerEv@Base 0.6.1
++ _ZNK17QMirServerPrivate24theApplicationAuthorizerEv@Base 0.6.1
++ _ZNK17QMirServerPrivate27createPlatformOpenGLContextEP14QOpenGLContext@Base 0.6.1
++ _ZNK17ScreensController10metaObjectEv@Base 0.6.1
++ _ZNK18ScreenAdaptorModel12activeScreenEv@Base 0.6.1
++ _ZNK18ScreenAdaptorModel7screensEv@Base 0.6.1
++ _ZNK20ScreenPlatformWindow10metaObjectEv@Base 0.6.1
++ _ZNK20ScreenPlatformWindow5winIdEv@Base 0.6.1
++ _ZNK20ScreenPlatformWindow8isActiveEv@Base 0.6.1
++ _ZNK20ScreenPlatformWindow9isExposedEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK21PromptSessionListener10metaObjectEv@Base 0.6.1
++ _ZNK22QPlatformOpenGLContext7isValidEv@Base 0.6.1
++ _ZNK24MirMousePointerInterface10metaObjectEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK31MirDisplayConfigurationObserver10metaObjectEv@Base 0.6.1
++ _ZNK3Mir10metaObjectEv@Base 0.6.1
++ (optional=templinst)_ZNK5QHashIKN5miral6WindowEPN5qtmir22WindowNotifierObserverEE8findNodeERS2_j@Base 0.6.1
++ (optional=templinst)_ZNK5QHashIPKN3mir5scene13PromptSessionEN5qtmir13PromptSessionEE8findNodeERKS4_j@Base 0.6.1
++ (optional=templinst)_ZNK5QHashIPKN3mir5scene7SurfaceEP15SurfaceObserverE8findNodeERKS4_j@Base 0.6.1
++ (optional=templinst)_ZNK5QHashIiN22QWindowSystemInterface10TouchPointEE6valuesEv@Base 0.6.1
++ (optional=templinst)_ZNK5QListI5QPairId5QSizeEEeqERKS3_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5miral4Edid10Descriptor12string_valueB5cxx11Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5miral8GLBuffer17has_alpha_channelEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5miral8GLBuffer4sizeEv@Base 0.6.1
++#MISSING: 0.7.0# _ZNK5miral8GLBuffercvbEv@Base 0.6.1
++ _ZNK5qtmir10ScreenMode10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir11AppNotifier10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir11NamedCursor12as_argb_8888Ev@Base 0.6.1
++ _ZNK5qtmir11NamedCursor4sizeEv@Base 0.6.1
++ _ZNK5qtmir11NamedCursor7hotspotEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir14MirServerHooks13theMirDisplayEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir14MirServerHooks17theInputDeviceHubEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir14MirServerHooks21promptSessionListenerEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir14MirServerHooks23createScreensControllerERKSt10shared_ptrI12ScreensModelE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir14MirServerHooks23thePromptSessionManagerEv@Base 0.6.1
++ _ZNK5qtmir17SessionAuthorizer10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir19WindowModelNotifier10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir20MirServerApplication10metaObjectEv@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir20OpenGLContextFactory27createPlatformOpenGLContextE14QSurfaceFormatRN3mir8graphics7DisplayE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir20PromptSessionManager14applicationForERKNS_13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir20PromptSessionManager17stopPromptSessionERKNS_13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir20PromptSessionManager19resumePromptSessionERKNS_13PromptSessionE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZNK5qtmir20PromptSessionManager20suspendPromptSessionERKNS_13PromptSessionE@Base 0.6.1
++ _ZNK5qtmir21PromptSessionListener10metaObjectEv@Base 0.8.0~git20230109.671f617
++ _ZNK5qtmir22MirInputDeviceObserver10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir22WindowNotifierObserver10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir25BasicSetSessionAuthorizer7builderEv@Base 0.6.1
++ _ZNK5qtmir30BasicSetWindowManagementPolicy7builderEv@Base 0.6.1
++ _ZNK5qtmir35BasicSetDisplayConfigurationStorage7builderEv@Base 0.6.1
++ _ZNK5qtmir3Mir10cursorNameEv@Base 0.6.1
++ _ZNK5qtmir3Mir10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir3Mir13currentKeymapEv@Base 0.6.1
++ _ZNK5qtmir6Cursor10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir6Cursor3posEv@Base 0.6.1
++ _ZNK5qtmir6Cursor7Private10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir6Screen10metaObjectEv@Base 0.6.1
++ _ZNK5qtmir7Screens10metaObjectEv@Base 0.6.1
++ (optional=templinst)_ZNK8QMapNodeIi5QSizeE4copyEP8QMapDataIiS0_E@Base 0.6.1
++ (optional=templinst)_ZNK8QMapNodeIi7QStringE4copyEP8QMapDataIiS0_E@Base 0.6.1
++ (arch=armel riscv64)_ZNK9__gnu_cxx24__concurrence_lock_error4whatEv@Base 0.7.0
++ (arch=armel riscv64)_ZNK9__gnu_cxx26__concurrence_unlock_error4whatEv@Base 0.7.0
++ (optional=templinst)_ZNSt10unique_ptrIN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_EED1Ev@Base 0.6.1
++ (optional=templinst)_ZNSt10unique_ptrIN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_EED2Ev@Base 0.6.1
++ (optional=templinst)_ZNSt12_Vector_baseIhSaIhEED1Ev@Base 0.6.1
++ (optional=templinst)_ZNSt12_Vector_baseIhSaIhEED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt12_Vector_baseItSaItEED1Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt12_Vector_baseItSaItEED2Ev@Base 0.6.1
++ _ZNSt14_Function_baseD1Ev@Base 0.6.1
++ _ZNSt14_Function_baseD2Ev@Base 0.6.1
++#MISSING: 0.7.0-1# (optional=templinst|arch=armel)_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE1EEC1IN3mir8graphics20DisplayConfigurationESt14default_deleteIS6_EEEOSt10unique_ptrIT_T0_E@Base 0.6.1
++#MISSING: 0.7.0-1# (optional=templinst|arch=armel)_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE1EEC2IN3mir8graphics20DisplayConfigurationESt14default_deleteIS6_EEEOSt10unique_ptrIT_T0_E@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel)_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC1IN3mir8graphics20DisplayConfigurationESt14default_deleteIS6_EEEOSt10unique_ptrIT_T0_E@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel)_ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EEC2IN3mir8graphics20DisplayConfigurationESt14default_deleteIS6_EEEOSt10unique_ptrIT_T0_E@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIDnLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE10_M_releaseEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv@Base 0.6.1
++ (arch=amd64 arm64 m68k mips64el ppc64 ppc64el s390x)_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral21ApplicationAuthorizerEEvEZNS1_24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJFS0_IN5qtmir17SessionAuthorizerEEvEEEEDpRKT_EUlvE_E10_M_managerERSt9_Any_dataRKSJ_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral21ApplicationAuthorizerEEvEZNS1_24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJFS0_IN5qtmir17SessionAuthorizerEEvEEEEDpRKT_EUlvE_E9_M_invokeERKSt9_Any_data@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral21ApplicationAuthorizerEEvEZNS1_24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJSt8functionIFS0_IN5qtmir17SessionAuthorizerEEvEEEEEDpRKT_EUlvE_E10_M_managerERSt9_Any_dataRKSL_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral21ApplicationAuthorizerEEvEZNS1_24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJSt8functionIFS0_IN5qtmir17SessionAuthorizerEEvEEEEEDpRKT_EUlvE_E9_M_invokeERKSt9_Any_data@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvEPS4_E9_M_invokeERKSt9_Any_data@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvEPS4_E9_M_invokeERKSt9_Any_data@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEPS4_E9_M_invokeERKSt9_Any_data@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES0_INS1_29WindowManagementPolicyPrivateEEEPSA_E10_M_managerERSt9_Any_dataRKSD_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES0_INS1_29WindowManagementPolicyPrivateEEEPSA_E9_M_invokeERKSt9_Any_dataS7_OS9_@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvEPS4_E10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvEPS4_E9_M_invokeERKSt9_Any_data@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10unique_ptrIN5miral22WindowManagementPolicyESt14default_deleteIS2_EERKNS1_18WindowManagerToolsEEZNS1_28set_window_management_policyI29WrappedWindowManagementPolicyJN5qtmir19WindowModelNotifierENSC_16WindowControllerENSC_19WorkspaceControllerENSC_11AppNotifierEKSt10shared_ptrI12ScreensModelESH_I13QtEventFeederESt8functionIFSH_INSC_22WindowManagementPolicyEES8_SH_INSC_29WindowManagementPolicyPrivateEEEEEEENS1_25SetWindowManagementPolicyEDpRT0_EUlS8_E_E10_M_managerERSt9_Any_dataRKS10_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFSt10unique_ptrIN5miral22WindowManagementPolicyESt14default_deleteIS2_EERKNS1_18WindowManagerToolsEEZNS1_28set_window_management_policyI29WrappedWindowManagementPolicyJN5qtmir19WindowModelNotifierENSC_16WindowControllerENSC_19WorkspaceControllerENSC_11AppNotifierEKSt10shared_ptrI12ScreensModelESH_I13QtEventFeederESt8functionIFSH_INSC_22WindowManagementPolicyEES8_SH_INSC_29WindowManagementPolicyPrivateEEEEEEENS1_25SetWindowManagementPolicyEDpRT0_EUlS8_E_E9_M_invokeERKSt9_Any_dataS8_@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral13SetTerminatorEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral13SetTerminatorEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral15AddInitCallbackEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral15AddInitCallbackEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral20PersistDisplayConfigEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral20PersistDisplayConfigEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEEE10_M_managerERSt9_Any_dataRKS9_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral25SetWindowManagementPolicyEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5miral25SetWindowManagementPolicyEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5qtmir14MirServerHooksEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5qtmir14MirServerHooksEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5qtmir15SetQtCompositorEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5qtmir15SetQtCompositorEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5qtmir20OpenGLContextFactoryEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN5qtmir20OpenGLContextFactoryEE9_M_invokeERKSt9_Any_dataS2_@Base 0.6.1
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil13OpenGLContextEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil13OpenGLContextEE9_M_invokeERKSt9_Any_dataS2_@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil13SetCompositorEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil13SetCompositorEE9_M_invokeERKSt9_Any_dataS2_@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil14MirServerHooksEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil14MirServerHooksEE9_M_invokeERKSt9_Any_dataS2_@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil20PersistDisplayConfigEE10_M_managerERSt9_Any_dataRKS7_St18_Manager_operation@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt17_Function_handlerIFvRN3mir6ServerEEN6miroil20PersistDisplayConfigEE9_M_invokeERKSt9_Any_dataS2_@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++ (optional=templinst|arch=!armel !riscv64)_ZNSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.6.1
++#MISSING: 0.7.0# (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.6.1
++#MISSING: 0.7.0-3# (optional=templinst|arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.6.1
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.7.0
++ (optional=templinst|arch=armel riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.7.0
++ (arch=!armel !riscv64)_ZNSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.7.0
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_destroyEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EED0Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EED1Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst|arch=!armel)_ZNSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EED2Ev@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZNSt6vectorISt10shared_ptrIN5miral9WorkspaceEESaIS3_EE17_M_realloc_insertIJRKS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_@Base 0.6.1
++ (optional=templinst)_ZNSt6vectorISt10shared_ptrIN5miral9WorkspaceEESaIS3_EED1Ev@Base 0.6.1
++ (optional=templinst)_ZNSt6vectorISt10shared_ptrIN5miral9WorkspaceEESaIS3_EED2Ev@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|subst)_ZNSt6vectorIhSaIhEE17_M_default_appendE{size_t}@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=amd64 arm64)_ZNSt7__cxx119to_stringEm@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=!mipsel)_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_@Base 0.7.1-2
++ _ZTI10QMirServer@Base 0.6.1
++ _ZTI11MirGLConfig@Base 0.6.1
++ _ZTI12QtCompositor@Base 0.6.1
++ _ZTI12ScreensModel@Base 0.6.1
++ _ZTI13QtEventFeeder@Base 0.6.1
++ _ZTI13ScreenAdaptor@Base 0.6.1
++ _ZTI14PlatformScreen@Base 0.6.1
++ _ZTI15MirServerThread@Base 0.6.1
++ _ZTI15NativeInterface@Base 0.6.1
++ _ZTI15SurfaceObserver@Base 0.6.1
++ _ZTI16MirOpenGLContext@Base 0.6.1
++ _ZTI16OffscreenSurface@Base 0.6.1
++ _ZTI17MirPlatformCursor@Base 0.6.1
++ _ZTI17OrientationSensor@Base 0.6.1
++ _ZTI17ScreensController@Base 0.6.1
++ _ZTI18ScreenAdaptorModel@Base 0.6.1
++ _ZTI20ScreenPlatformWindow@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTI21PromptSessionListener@Base 0.6.1
++ _ZTI23OrientationReadingEvent@Base 0.6.1
++ _ZTI24MirMousePointerInterface@Base 0.6.1
++ _ZTI24WrappedSessionAuthorizer@Base 0.6.1
++ _ZTI29WrappedWindowManagementPolicy@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTI31MirDisplayConfigurationObserver@Base 0.6.1
++ _ZTI3Mir@Base 0.6.1
++ _ZTI8Services@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvE@Base 0.6.1
++ _ZTIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvE@Base 0.6.1
++ _ZTIFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES_INS0_29WindowManagementPolicyPrivateEEE@Base 0.6.1
++ _ZTIFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvE@Base 0.8.0~git20230109.671f617
++ _ZTIN13QtEventFeeder23QtWindowSystemInterfaceE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir10compositor10CompositorE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir5input12CursorImagesE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir5input19InputDeviceObserverE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir5scene21PromptSessionListenerE@Base 0.6.1
++ _ZTIN3mir8graphics11CursorImageE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8graphics13NativeDisplayE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8graphics16NativeBufferBaseE@Base 0.6.1
++ _ZTIN3mir8graphics19NativeDisplayBufferE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8graphics26DisplayConfigurationPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8graphics28DisplayConfigurationObserverE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8graphics6CursorE@Base 0.6.1
++ _ZTIN3mir8graphics8GLConfigE@Base 0.6.1
++ _ZTIN3mir8renderer2gl12RenderTargetE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8renderer2gl13ContextSourceE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN3mir8renderer2gl13TextureSourceE@Base 0.6.1
++ _ZTIN5miral13SetTerminatorE@Base 0.6.1
++ _ZTIN5miral15AddInitCallbackE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral15GLTextureBufferE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral20PersistDisplayConfig4SelfE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral20PersistDisplayConfigE@Base 0.6.1
++ _ZTIN5miral21ApplicationAuthorizerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral21GLTextureSourceBufferE@Base 0.7.0
++ _ZTIN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEE@Base 0.6.1
++ _ZTIN5miral25SetWindowManagementPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral26DisplayConfigurationPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral27DisplayConfigurationStorageE@Base 0.6.1
++ _ZTIN5miral29BasicSetApplicationAuthorizerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5miral8GLBufferE@Base 0.7.0
++ _ZTIN5qtmir10ScreenModeE@Base 0.6.1
++ _ZTIN5qtmir11AppNotifierE@Base 0.6.1
++ _ZTIN5qtmir11NamedCursorE@Base 0.6.1
++ _ZTIN5qtmir12EventBuilderE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5qtmir14MirServerHooksE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5qtmir15MirCursorImagesE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5qtmir15SetQtCompositorE@Base 0.6.1
++ _ZTIN5qtmir16WindowControllerE@Base 0.6.1
++ _ZTIN5qtmir17SessionAuthorizerE@Base 0.6.1
++ _ZTIN5qtmir19WindowModelNotifierE@Base 0.6.1
++ _ZTIN5qtmir19WorkspaceControllerE@Base 0.6.1
++ _ZTIN5qtmir20MirServerApplicationE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5qtmir20OpenGLContextFactoryE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIN5qtmir20PromptSessionManagerE@Base 0.6.1
++ _ZTIN5qtmir21PromptSessionListenerE@Base 0.8.0~git20230109.671f617
++ _ZTIN5qtmir22MirInputDeviceObserverE@Base 0.6.1
++ _ZTIN5qtmir22WindowManagementPolicyE@Base 0.6.1
++ _ZTIN5qtmir22WindowNotifierObserverE@Base 0.6.1
++ _ZTIN5qtmir25WindowControllerInterfaceE@Base 0.6.1
++ _ZTIN5qtmir26DisplayConfigurationPolicyE@Base 0.6.1
++ _ZTIN5qtmir28WorkspaceControllerInterfaceE@Base 0.6.1
++ _ZTIN5qtmir3MirE@Base 0.6.1
++ _ZTIN5qtmir6Cursor7PrivateE@Base 0.6.1
++ _ZTIN5qtmir6CursorE@Base 0.6.1
++ _ZTIN5qtmir6ScreenE@Base 0.6.1
++ _ZTIN5qtmir7ScreensE@Base 0.6.1
++ _ZTIN6miroil13OpenGLContextE@Base 0.8.0~git20230109.671f617
++ _ZTIN6miroil13SetCompositorE@Base 0.8.0~git20230109.671f617
++ _ZTIN6miroil14MirServerHooksE@Base 0.8.0~git20230109.671f617
++ _ZTIN6miroil20PersistDisplayConfigE@Base 0.8.0~git20230109.671f617
++ _ZTIN6miroil27DisplayConfigurationStorageE@Base 0.8.0~git20230109.671f617
++ (arch=armel riscv64)_ZTIN9__gnu_cxx24__concurrence_lock_errorE@Base 0.7.0
++ (arch=armel riscv64)_ZTIN9__gnu_cxx26__concurrence_unlock_errorE@Base 0.7.0
++ (arch=armel riscv64)_ZTIN9__gnu_cxx7__mutexE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZTIPFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTIPFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvE@Base 0.6.1
++ _ZTIPFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvE@Base 0.6.1
++ _ZTIPFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES_INS0_29WindowManagementPolicyPrivateEEE@Base 0.6.1
++ _ZTIPFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvE@Base 0.8.0~git20230109.671f617
++ (arch=armel riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel armhf)_ZTISt14default_deleteIN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel armhf)_ZTISt19_Sp_make_shared_tag@Base 0.6.1
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTISt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTISt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTISt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ _ZTIZN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEEEEDpRKT_EUlvE_@Base 0.6.1
++ _ZTIZN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJSt8functionIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEEEEEDpRKT_EUlvE_@Base 0.6.1
++ _ZTIZN5miral28set_window_management_policyI29WrappedWindowManagementPolicyJN5qtmir19WindowModelNotifierENS2_16WindowControllerENS2_19WorkspaceControllerENS2_11AppNotifierEKSt10shared_ptrI12ScreensModelES7_I13QtEventFeederESt8functionIFS7_INS2_22WindowManagementPolicyEERKNS_18WindowManagerToolsES7_INS2_29WindowManagementPolicyPrivateEEEEEEENS_25SetWindowManagementPolicyEDpRT0_EUlSI_E_@Base 0.6.1
++ _ZTS10QMirServer@Base 0.6.1
++ _ZTS11MirGLConfig@Base 0.6.1
++ _ZTS12QtCompositor@Base 0.6.1
++ _ZTS12ScreensModel@Base 0.6.1
++ _ZTS13QtEventFeeder@Base 0.6.1
++ _ZTS13ScreenAdaptor@Base 0.6.1
++ _ZTS14PlatformScreen@Base 0.6.1
++ _ZTS15MirServerThread@Base 0.6.1
++ _ZTS15NativeInterface@Base 0.6.1
++ _ZTS15SurfaceObserver@Base 0.6.1
++ _ZTS16MirOpenGLContext@Base 0.6.1
++ _ZTS16OffscreenSurface@Base 0.6.1
++ _ZTS17MirPlatformCursor@Base 0.6.1
++ _ZTS17OrientationSensor@Base 0.6.1
++ _ZTS17ScreensController@Base 0.6.1
++ _ZTS18ScreenAdaptorModel@Base 0.6.1
++ _ZTS20ScreenPlatformWindow@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTS21PromptSessionListener@Base 0.6.1
++ _ZTS23OrientationReadingEvent@Base 0.6.1
++ _ZTS24MirMousePointerInterface@Base 0.6.1
++ _ZTS24WrappedSessionAuthorizer@Base 0.6.1
++ _ZTS29WrappedWindowManagementPolicy@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTS31MirDisplayConfigurationObserver@Base 0.6.1
++ _ZTS3Mir@Base 0.6.1
++ _ZTS8Services@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvE@Base 0.6.1
++ _ZTSFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvE@Base 0.6.1
++ _ZTSFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES_INS0_29WindowManagementPolicyPrivateEEE@Base 0.6.1
++ _ZTSFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvE@Base 0.8.0~git20230109.671f617
++ _ZTSN13QtEventFeeder23QtWindowSystemInterfaceE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir10compositor10CompositorE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir5input12CursorImagesE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir5input19InputDeviceObserverE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir5scene21PromptSessionListenerE@Base 0.6.1
++ _ZTSN3mir8graphics11CursorImageE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8graphics13NativeDisplayE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8graphics16NativeBufferBaseE@Base 0.6.1
++ _ZTSN3mir8graphics19NativeDisplayBufferE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8graphics26DisplayConfigurationPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8graphics28DisplayConfigurationObserverE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8graphics6CursorE@Base 0.6.1
++ _ZTSN3mir8graphics8GLConfigE@Base 0.6.1
++ _ZTSN3mir8renderer2gl12RenderTargetE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8renderer2gl13ContextSourceE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN3mir8renderer2gl13TextureSourceE@Base 0.6.1
++ _ZTSN5miral13SetTerminatorE@Base 0.6.1
++ _ZTSN5miral15AddInitCallbackE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral15GLTextureBufferE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral20PersistDisplayConfig4SelfE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral20PersistDisplayConfigE@Base 0.6.1
++ _ZTSN5miral21ApplicationAuthorizerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral21GLTextureSourceBufferE@Base 0.7.0
++ _ZTSN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEE@Base 0.6.1
++ _ZTSN5miral25SetWindowManagementPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral26DisplayConfigurationPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral27DisplayConfigurationStorageE@Base 0.6.1
++ _ZTSN5miral29BasicSetApplicationAuthorizerE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5miral8GLBufferE@Base 0.7.0
++ _ZTSN5qtmir10ScreenModeE@Base 0.6.1
++ _ZTSN5qtmir11AppNotifierE@Base 0.6.1
++ _ZTSN5qtmir11NamedCursorE@Base 0.6.1
++ _ZTSN5qtmir12EventBuilderE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5qtmir14MirServerHooksE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5qtmir15MirCursorImagesE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5qtmir15SetQtCompositorE@Base 0.6.1
++ _ZTSN5qtmir16WindowControllerE@Base 0.6.1
++ _ZTSN5qtmir17SessionAuthorizerE@Base 0.6.1
++ _ZTSN5qtmir19WindowModelNotifierE@Base 0.6.1
++ _ZTSN5qtmir19WorkspaceControllerE@Base 0.6.1
++ _ZTSN5qtmir20MirServerApplicationE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5qtmir20OpenGLContextFactoryE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSN5qtmir20PromptSessionManagerE@Base 0.6.1
++ _ZTSN5qtmir21PromptSessionListenerE@Base 0.8.0~git20230109.671f617
++ _ZTSN5qtmir22MirInputDeviceObserverE@Base 0.6.1
++ _ZTSN5qtmir22WindowManagementPolicyE@Base 0.6.1
++ _ZTSN5qtmir22WindowNotifierObserverE@Base 0.6.1
++ _ZTSN5qtmir25WindowControllerInterfaceE@Base 0.6.1
++ _ZTSN5qtmir26DisplayConfigurationPolicyE@Base 0.6.1
++ _ZTSN5qtmir28WorkspaceControllerInterfaceE@Base 0.6.1
++ _ZTSN5qtmir3MirE@Base 0.6.1
++ _ZTSN5qtmir6Cursor7PrivateE@Base 0.6.1
++ _ZTSN5qtmir6CursorE@Base 0.6.1
++ _ZTSN5qtmir6ScreenE@Base 0.6.1
++ _ZTSN5qtmir7ScreensE@Base 0.6.1
++ _ZTSN6miroil13OpenGLContextE@Base 0.8.0~git20230109.671f617
++ _ZTSN6miroil13SetCompositorE@Base 0.8.0~git20230109.671f617
++ _ZTSN6miroil14MirServerHooksE@Base 0.8.0~git20230109.671f617
++ _ZTSN6miroil20PersistDisplayConfigE@Base 0.8.0~git20230109.671f617
++ _ZTSN6miroil27DisplayConfigurationStorageE@Base 0.8.0~git20230109.671f617
++ (arch=armel riscv64)_ZTSN9__gnu_cxx24__concurrence_lock_errorE@Base 0.7.0
++ (arch=armel riscv64)_ZTSN9__gnu_cxx26__concurrence_unlock_errorE@Base 0.7.0
++ (arch=armel riscv64)_ZTSN9__gnu_cxx7__mutexE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZTSPFSt10shared_ptrIN5miral26DisplayConfigurationPolicyEEvE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTSPFSt10shared_ptrIN5miral27DisplayConfigurationStorageEEvE@Base 0.6.1
++ _ZTSPFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvE@Base 0.6.1
++ _ZTSPFSt10shared_ptrIN5qtmir22WindowManagementPolicyEERKN5miral18WindowManagerToolsES_INS0_29WindowManagementPolicyPrivateEEE@Base 0.6.1
++ _ZTSPFSt10shared_ptrIN6miroil27DisplayConfigurationStorageEEvE@Base 0.8.0~git20230109.671f617
++ (arch=armel riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ _ZTSSt14default_deleteIN3mir8graphics20DisplayConfigurationEE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ _ZTSSt19_Sp_make_shared_tag@Base 0.6.1
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTSSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTSSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTSSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ _ZTSZN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEEEEDpRKT_EUlvE_@Base 0.6.1
++ _ZTSZN5miral24SetApplicationAuthorizerI24WrappedSessionAuthorizerEC4IJSt8functionIFSt10shared_ptrIN5qtmir17SessionAuthorizerEEvEEEEEDpRKT_EUlvE_@Base 0.6.1
++ _ZTSZN5miral28set_window_management_policyI29WrappedWindowManagementPolicyJN5qtmir19WindowModelNotifierENS2_16WindowControllerENS2_19WorkspaceControllerENS2_11AppNotifierEKSt10shared_ptrI12ScreensModelES7_I13QtEventFeederESt8functionIFS7_INS2_22WindowManagementPolicyEERKNS_18WindowManagerToolsES7_INS2_29WindowManagementPolicyPrivateEEEEEEENS_25SetWindowManagementPolicyEDpRT0_EUlSI_E_@Base 0.6.1
++ _ZTV10QMirServer@Base 0.6.1
++ _ZTV11MirGLConfig@Base 0.6.1
++ _ZTV12QtCompositor@Base 0.6.1
++ _ZTV12ScreensModel@Base 0.6.1
++ _ZTV13QtEventFeeder@Base 0.6.1
++ _ZTV13ScreenAdaptor@Base 0.6.1
++ _ZTV14PlatformScreen@Base 0.6.1
++ _ZTV15MirServerThread@Base 0.6.1
++ _ZTV15NativeInterface@Base 0.6.1
++ _ZTV15SurfaceObserver@Base 0.6.1
++ _ZTV16MirOpenGLContext@Base 0.6.1
++ _ZTV16OffscreenSurface@Base 0.6.1
++ _ZTV17OrientationSensor@Base 0.6.1
++ _ZTV17ScreensController@Base 0.6.1
++ _ZTV18ScreenAdaptorModel@Base 0.6.1
++ _ZTV20ScreenPlatformWindow@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTV21PromptSessionListener@Base 0.6.1
++ _ZTV23OrientationReadingEvent@Base 0.6.1
++ _ZTV24MirMousePointerInterface@Base 0.6.1
++ _ZTV24WrappedSessionAuthorizer@Base 0.6.1
++ _ZTV29WrappedWindowManagementPolicy@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTV31MirDisplayConfigurationObserver@Base 0.6.1
++ _ZTV3Mir@Base 0.6.1
++ _ZTV8Services@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5miral15GLTextureBufferE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5miral20PersistDisplayConfig4SelfE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5miral21GLTextureSourceBufferE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5miral26DisplayConfigurationPolicyE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5miral8GLBufferE@Base 0.7.0
++ _ZTVN5qtmir10ScreenModeE@Base 0.6.1
++ _ZTVN5qtmir11AppNotifierE@Base 0.6.1
++ _ZTVN5qtmir11NamedCursorE@Base 0.6.1
++ _ZTVN5qtmir12EventBuilderE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5qtmir15MirCursorImagesE@Base 0.6.1
++ _ZTVN5qtmir16WindowControllerE@Base 0.6.1
++ _ZTVN5qtmir17SessionAuthorizerE@Base 0.6.1
++ _ZTVN5qtmir19WindowModelNotifierE@Base 0.6.1
++ _ZTVN5qtmir19WorkspaceControllerE@Base 0.6.1
++ _ZTVN5qtmir20MirServerApplicationE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# _ZTVN5qtmir20PromptSessionManagerE@Base 0.6.1
++ _ZTVN5qtmir21PromptSessionListenerE@Base 0.8.0~git20230109.671f617
++ _ZTVN5qtmir22MirInputDeviceObserverE@Base 0.6.1
++ _ZTVN5qtmir22WindowManagementPolicyE@Base 0.6.1
++ _ZTVN5qtmir22WindowNotifierObserverE@Base 0.6.1
++ _ZTVN5qtmir26DisplayConfigurationPolicyE@Base 0.6.1
++ _ZTVN5qtmir3MirE@Base 0.6.1
++ _ZTVN5qtmir6Cursor7PrivateE@Base 0.6.1
++ _ZTVN5qtmir6CursorE@Base 0.6.1
++ _ZTVN5qtmir6ScreenE@Base 0.6.1
++ _ZTVN5qtmir7ScreensE@Base 0.6.1
++ (arch=armel riscv64)_ZTVN9__gnu_cxx24__concurrence_lock_errorE@Base 0.7.0
++ (arch=armel riscv64)_ZTVN9__gnu_cxx26__concurrence_unlock_errorE@Base 0.7.0
++ (arch=armel riscv64)_ZTVSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt15_Sp_counted_ptrIP12ScreensModelLN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt15_Sp_counted_ptrIP13QtEventFeederLN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir17SessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir25BasicSetSessionAuthorizer7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir26DisplayConfigurationPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt15_Sp_counted_ptrIPN5qtmir30BasicSetWindowManagementPolicy7PrivateELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt19_Sp_counted_deleterIPN3mir8graphics20DisplayConfigurationESt14default_deleteIS2_ESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI11MirGLConfigSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceI12QtCompositorSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI17OrientationSensorSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIS0_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceI24WrappedSessionAuthorizerSaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral15GLTextureBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral20PersistDisplayConfig4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5miral21GLTextureSourceBufferESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir11NamedCursorESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir14MirServerHooks4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15ExtraWindowInfoESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir15MirCursorImagesESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir17SessionAuthorizerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20OpenGLContextFactory4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.8.0~git20230109.671f617# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir21PromptSessionListenerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir22MirInputDeviceObserverESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir26DisplayConfigurationPolicyESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir29WindowManagementPolicyPrivateESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir34BasicSetDisplayConfigurationPolicy4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++#MISSING: 0.7.0# (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++#MISSING: 0.7.0-3# (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE@Base 0.6.1
++ (arch=armel riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.7.0
++ (arch=!armel !riscv64)_ZTVSt23_Sp_counted_ptr_inplaceIN5qtmir35BasicSetDisplayConfigurationStorage4SelfESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.7.0
++ (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceIN6miroil20PromptSessionManagerESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceIN6miroil22DisplayListenerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (arch=armel)_ZTVSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE1EE@Base 0.8.0~git20230109.671f617
++ (arch=!armel)_ZTVSt23_Sp_counted_ptr_inplaceIN6miroil37DisplayConfigurationControllerWrapperESaIvELN9__gnu_cxx12_Lock_policyE2EE@Base 0.8.0~git20230109.671f617
++ (optional=templinst)_ZZN11QMetaTypeIdIN3Mir5StateEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIN5miral10WindowInfoEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIN5miral15ApplicationInfoEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIN5qtmir10FormFactorEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIN5qtmir11OutputTypesEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIN5qtmir13PromptSessionEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIN5qtmir9NewWindowEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdIPN5qtmir19ScreenConfigurationEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdISt10shared_ptrIN3mir5scene7SessionEEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN11QMetaTypeIdISt6vectorIN5miral6WindowESaIS2_EEE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN18QMetaTypeIdQObjectI6QFlagsIN2Qt11MouseButtonEELi16EE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN18QMetaTypeIdQObjectI6QFlagsIN2Qt16KeyboardModifierEELi16EE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN18QMetaTypeIdQObjectIP20ScreenPlatformWindowLi8EE14qt_metatype_idEvE11metatype_id@Base 0.6.1
++ (optional=templinst)_ZZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoE5QSizeEEELb1EE5typesEvE1t@Base 0.6.1
++ (optional=templinst)_ZZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoE6QPointEEELb1EE5typesEvE1t@Base 0.6.1
++ (optional=templinst)_ZZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoEEEELb1EE5typesEvE1t@Base 0.6.1
++ (optional=templinst)_ZZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoEN3Mir5StateEEEELb1EE5typesEvE1t@Base 0.6.1
++ (optional=templinst)_ZZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5miral10WindowInfoEbEEELb1EE5typesEvE1t@Base 0.6.1
++ (optional=templinst)_ZZN9QtPrivate15ConnectionTypesINS_4ListIJRKN5qtmir9NewWindowEEEELb1EE5typesEvE1t@Base 0.6.1
++ _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (optional=templinst|subst)_ZZNSt8__detail18__to_chars_10_implI{size_t}EEvPcjT_E8__digits@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE0_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE10_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE11_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE12_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE13_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE14_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE15_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE16_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE17_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE18_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE19_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE1_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE20_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE2_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE3_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE4_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE5_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE6_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE7_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE8_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE9_clEvE15qstring_literal@Base 0.6.1
++ _ZZZN5qtmir6Cursor7PrivateC4EvENKUlvE_clEvE15qstring_literal@Base 0.6.1
++ _ZZZNK5qtmir6Cursor7Private10cursorNameEvENKUlvE_clEvE15qstring_literal@Base 0.6.1
++#MISSING: 0.6.1-8# __start___tracepoints_ptrs@Base 0.6.1
++ __start_lttng_ust_tracepoints_ptrs@Base 0.6.1
++#MISSING: 0.6.1-8# __stop___tracepoints_ptrs@Base 0.6.1
++ __stop_lttng_ust_tracepoints_ptrs@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_provider_qtmirserver@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___sessionAuthorizeEnd@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___sessionAuthorizeStart@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___starting@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___stopping@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___surfaceCreated@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___surfaceDestroyed@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___touchEventDispatch_end@Base 0.6.1
++#MISSING: 0.6.1-8# __tracepoint_qtmirserver___touchEventDispatch_start@Base 0.6.1
++ appStartTime@Base 0.6.1
++ getStartTime@Base 0.6.1
++ lttng_ust_tracepoint_provider_qtmirserver@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___sessionAuthorizeEnd@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___sessionAuthorizeStart@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___starting@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___stopping@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___surfaceCreated@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___surfaceDestroyed@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___touchEventDispatch_end@Base 0.6.1
++ lttng_ust_tracepoint_qtmirserver___touchEventDispatch_start@Base 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::base_configuration_updated(std::shared_ptr<mir::graphics::DisplayConfiguration const> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::catastrophic_configuration_error(std::shared_ptr<mir::graphics::DisplayConfiguration const> const&, std::exception const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::configuration_applied(std::shared_ptr<mir::graphics::DisplayConfiguration const> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::configuration_failed(std::shared_ptr<mir::graphics::DisplayConfiguration const> const&, std::exception const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::configuration_updated_for_session(std::shared_ptr<mir::scene::Session> const&, std::shared_ptr<mir::graphics::DisplayConfiguration const> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::initial_configuration(std::shared_ptr<mir::graphics::DisplayConfiguration const> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::session_configuration_applied(std::shared_ptr<mir::scene::Session> const&, std::shared_ptr<mir::graphics::DisplayConfiguration> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::session_configuration_removed(std::shared_ptr<mir::scene::Session> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to MirDisplayConfigurationObserver::~MirDisplayConfigurationObserver()@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::doneCurrent()@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::format() const@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::getProcAddress(char const*)@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::isSharing() const@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::makeCurrent(QPlatformSurface*)@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::swapBuffers(QPlatformSurface*)@Base" 0.6.1
++ (c++)"non-virtual thunk to MirOpenGLContext::~MirOpenGLContext()@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::cursor() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::depth() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::devicePixelRatio() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::format() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::geometry() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::name() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::nativeOrientation() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::orientation() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::physicalSize() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::refreshRate() const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::topLevelAt(QPoint const&) const@Base" 0.6.1
++ (c++)"non-virtual thunk to PlatformScreen::~PlatformScreen()@Base" 0.6.1
++ (c++)"non-virtual thunk to QtCompositor::start()@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to QtCompositor::stop()@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to QtCompositor::~QtCompositor()@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to ScreenPlatformWindow::isActive() const@Base" 0.6.1
++ (c++)"non-virtual thunk to ScreenPlatformWindow::isExposed() const@Base" 0.6.1
++ (c++)"non-virtual thunk to ScreenPlatformWindow::requestActivateWindow()@Base" 0.6.1
++ (c++)"non-virtual thunk to ScreenPlatformWindow::setGeometry(QRect const&)@Base" 0.6.1
++ (c++)"non-virtual thunk to ScreenPlatformWindow::setVisible(bool)@Base" 0.6.1
++ (c++)"non-virtual thunk to ScreenPlatformWindow::winId() const@Base" 0.6.1
++ (c++)"non-virtual thunk to ScreenPlatformWindow::~ScreenPlatformWindow()@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to ScreensModel::~ScreensModel()@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to miral::PersistDisplayConfig::Self::base_configuration_updated(std::shared_ptr<mir::graphics::DisplayConfiguration const> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to miral::PersistDisplayConfig::Self::session_configuration_applied(std::shared_ptr<mir::scene::Session> const&, std::shared_ptr<mir::graphics::DisplayConfiguration> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to miral::PersistDisplayConfig::Self::session_configuration_removed(std::shared_ptr<mir::scene::Session> const&)@Base" 0.6.1
++#MISSING: 0.8.0~git20230109.671f617# (c++)"non-virtual thunk to miral::PersistDisplayConfig::Self::~Self()@Base" 0.6.1
++ (c++)"non-virtual thunk to qtmir::MirInputDeviceObserver::device_added(miroil::InputDevice)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::MirInputDeviceObserver::device_removed(miroil::InputDevice)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::MirInputDeviceObserver::~MirInputDeviceObserver()@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::prompt_provider_added(mir::scene::PromptSession const&, std::shared_ptr<mir::scene::Session> const&)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::prompt_provider_removed(mir::scene::PromptSession const&, std::shared_ptr<mir::scene::Session> const&)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::resuming(std::shared_ptr<mir::scene::PromptSession> const&)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::starting(std::shared_ptr<mir::scene::PromptSession> const&)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::stopping(std::shared_ptr<mir::scene::PromptSession> const&)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::suspending(std::shared_ptr<mir::scene::PromptSession> const&)@Base" 0.8.0~git20230109.671f617
++ (c++)"non-virtual thunk to qtmir::PromptSessionListener::~PromptSessionListener()@Base" 0.8.0~git20230109.671f617
++ resetStartTime@Base 0.6.1
++ weakScreenModel@Base 0.6.1
+diff --git a/debian/qml-module-qtmir.install b/debian/qml-module-qtmir.install
+index edbef82e..dc7a46e3 100644
+--- a/debian/qml-module-qtmir.install
++++ b/debian/qml-module-qtmir.install
+@@ -1,4 +1,4 @@
+ usr/lib/*/qt5/qml/*
+ usr/share/glib-2.0/schemas
+-usr/share/applications
+-usr/share/icons/hicolor/256x256/apps
++usr/share/applications/xwayland.qtmir.desktop
++usr/share/icons/hicolor/256x256/apps/xwayland.qtmir.png
+diff --git a/debian/qtmir-tests.install b/debian/qtmir-tests.install
+index e050f651..38088e4f 100644
+--- a/debian/qtmir-tests.install
++++ b/debian/qtmir-tests.install
+@@ -1,6 +1,5 @@
+ usr/bin/qtmir-demo-client
+ usr/bin/qtmir-demo-shell
+ usr/share/applications/qtmir-demo-client.desktop
+-usr/share/qtmir/benchmarks/*
+ usr/share/qtmir/qtmir-demo-client/*
+ usr/share/qtmir/qtmir-demo-shell/*
+diff --git a/debian/rules b/debian/rules
+index b9811ae7..d723a112 100755
+--- a/debian/rules
++++ b/debian/rules
+@@ -1,7 +1,8 @@
+ #!/usr/bin/make -f
+ # -*- makefile -*-
+
+-export DPKG_GENSYMBOLS_CHECK_LEVEL=4
++# Uncomment this to be more picky with non-updated .symbols files
++#export DPKG_GENSYMBOLS_CHECK_LEVEL=4
+
+ include /usr/share/dpkg/default.mk
+
+@@ -12,15 +13,16 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+ DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+ %:
+- dh $@
++ dh $@ --with pkgkde_symbolshelper
+
+ override_dh_missing:
+ dh_missing --fail-missing
+
+-FLAGS := -DWITH_CONTENTHUB=ON -DWerror=ON
++FLAGS := -DWITH_CONTENTHUB=ON -DWerror=ON -DWITH_MIR2=on
+ # Explicitly disable building with Valgrind on architectures without it.
+-valgrind_architectures := amd64 arm64 armhf i386 mips64el mipsel ppc64el s390x powerpc ppc64 x32
+-ifeq ($(filter $(DEB_HOST_ARCH), $(valgrind_architectures)),)
++# If valgrind is available or not gets decided via the valgrind-if-available
++# virtual package.
++ifeq (, $(shell command -v valgrind))
+ FLAGS += -DWITH_VALGRIND=OFF
+ endif
+
+@@ -32,3 +34,6 @@ override_dh_install:
+ -rm -f debian/tmp/usr/lib/libgmock*.a debian/tmp/usr/lib/libgtest*.a
+ -rm -rf debian/tmp/usr/include/gmock debian/tmp/usr/include/gtest
+ dh_install
++
++get-orig-source:
++ uscan --noconf --force-download --rename --download-current-version --destdir=..
+diff --git a/debian/watch b/debian/watch
+new file mode 100644
+index 00000000..0d87b500
+--- /dev/null
++++ b/debian/watch
+@@ -0,0 +1,4 @@
++version=4
++opts="mode=git, pgpmode=none, pretty=0.8.0~git%cd.%h" \
++https://gitlab.com/ubports/development/core/qtmir.git \
++heads/ubports/focal_-_mir2.0 debian uupdate
+diff --git a/demos/qtmir-demo-shell/CMakeLists.txt b/demos/qtmir-demo-shell/CMakeLists.txt
+index 2a95365d..7f0e3839 100644
+--- a/demos/qtmir-demo-shell/CMakeLists.txt
++++ b/demos/qtmir-demo-shell/CMakeLists.txt
+@@ -6,6 +6,7 @@ include_directories(
+ ${CMAKE_SOURCE_DIR}/include
+
+ ${MIRSERVER_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRAL_INCLUDE_DIRS}
+
+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
+diff --git a/demos/qtmir-demo-shell/Shell.qml b/demos/qtmir-demo-shell/Shell.qml
+index d0777379..066c0a3b 100644
+--- a/demos/qtmir-demo-shell/Shell.qml
++++ b/demos/qtmir-demo-shell/Shell.qml
+@@ -62,6 +62,7 @@ FocusScope {
+ height: surface.size.height
+ focus: surface.focused
+ visible: surface.visible
++ fillMode: MirSurfaceItem.PadOrCrop
+
+ Rectangle {
+ anchors { top: parent.bottom; right: parent.right }
+@@ -104,8 +105,8 @@ Resize window: Ctrl+Right click"
+ color: "black"
+ width: 6
+ height: 10
+- x: PointerPosition.x - window.screen.position.x
+- y: PointerPosition.y - window.screen.position.y
++ x: PointerPosition.x// - window.screen.position.x
++ y: PointerPosition.y// - window.screen.position.y
+ }
+
+ MouseArea {
+diff --git a/demos/qtmir-demo-shell/main.cpp b/demos/qtmir-demo-shell/main.cpp
+index 828a630e..800d385f 100644
+--- a/demos/qtmir-demo-shell/main.cpp
++++ b/demos/qtmir-demo-shell/main.cpp
+@@ -33,10 +33,11 @@
+ #include <qtmir/sessionauthorizer.h>
+ #include <qtmir/windowmanagementpolicy.h>
+ #include <qtmir/displayconfigurationstorage.h>
+-#include <qtmir/miral/edid.h>
+
++#include <miroil/edid.h>
+
+-inline QString stringFromEdid(const miral::Edid& edid)
++
++inline QString stringFromEdid(const miroil::Edid& edid)
+ {
+ QString str;
+ str += QString::fromStdString(edid.vendor);
+@@ -75,12 +76,12 @@ public:
+ }
+ };
+
+-struct DemoDisplayConfigurationStorage : miral::DisplayConfigurationStorage
++struct DemoDisplayConfigurationStorage : miroil::DisplayConfigurationStorage
+ {
+- void save(const miral::DisplayId& displayId, const miral::DisplayConfigurationOptions& options) override
++ void save(const miroil::DisplayId& displayId, const miroil::DisplayConfigurationOptions& options) override
+ {
+ QFile f(stringFromEdid(displayId.edid) + ".edid");
+- qDebug() << "OVERRIDE miral::DisplayConfigurationStorage::save" << f.fileName();
++ qDebug() << "OVERRIDE miroil::DisplayConfigurationStorage::save" << f.fileName();
+
+ QJsonObject json;
+ if (options.used.is_set()) json.insert("used", options.used.value());
+@@ -105,10 +106,10 @@ struct DemoDisplayConfigurationStorage : miral::DisplayConfigurationStorage
+ }
+ }
+
+- bool load(const miral::DisplayId& displayId, miral::DisplayConfigurationOptions& options) const override
++ bool load(const miroil::DisplayId& displayId, miroil::DisplayConfigurationOptions& options) const override
+ {
+ QFile f(stringFromEdid(displayId.edid) + ".edid");
+- qDebug() << "OVERRIDE miral::DisplayConfigurationStorage::load" << f.fileName();
++ qDebug() << "OVERRIDE miroil::DisplayConfigurationStorage::load" << f.fileName();
+
+ if (f.open(QIODevice::ReadOnly)) {
+ QByteArray saveData = f.readAll();
+@@ -124,7 +125,7 @@ struct DemoDisplayConfigurationStorage : miral::DisplayConfigurationStorage
+ QString sz(jsonMode["size"].toString());
+ QStringList geo = sz.split("x", QString::SkipEmptyParts);
+ if (geo.count() == 2) {
+- miral::DisplayConfigurationOptions::DisplayMode mode;
++ miroil::DisplayConfigurationOptions::DisplayMode mode;
+ mode.size = mir::geometry::Size(geo[0].toInt(), geo[1].toInt());
+ mode.refresh_rate = jsonMode["refresh_rate"].toDouble();
+ options.mode = mode;
+diff --git a/demos/qtmir-demo-shell/qml-demo-shell.qml b/demos/qtmir-demo-shell/qml-demo-shell.qml
+index ac175cb0..7ed32d45 100644
+--- a/demos/qtmir-demo-shell/qml-demo-shell.qml
++++ b/demos/qtmir-demo-shell/qml-demo-shell.qml
+@@ -1,4 +1,6 @@
+ import QtQuick 2.5
++import QtQml.Models 2.15
++import QtQml 2.15
+ import QtMir.DemoShell 0.1
+
+ Instantiator {
+diff --git a/include/qtmir/miral/display_configuration_policy.h b/include/miroil/display_configuration_policy.h
+similarity index 79%
+rename from include/qtmir/miral/display_configuration_policy.h
+rename to include/miroil/display_configuration_policy.h
+index 9c277135..c6d2b70e 100644
+--- a/include/qtmir/miral/display_configuration_policy.h
++++ b/include/miroil/display_configuration_policy.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,12 +16,12 @@
+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com>
+ */
+
+-#ifndef MIRAL_DISPLAY_CONDIFIGURATION_POLICY_H
+-#define MIRAL_DISPLAY_CONDIFIGURATION_POLICY_H
++#ifndef MIROIL_DISPLAY_CONDIFIGURATION_POLICY_H
++#define MIROIL_DISPLAY_CONDIFIGURATION_POLICY_H
+
+ namespace mir { namespace graphics { class DisplayConfiguration; } }
+
+-namespace miral
++namespace miroil
+ {
+
+ class DisplayConfigurationPolicy
+@@ -29,14 +29,14 @@ class DisplayConfigurationPolicy
+ public:
+ DisplayConfigurationPolicy();
+
+- virtual ~DisplayConfigurationPolicy() = default;
++ virtual ~DisplayConfigurationPolicy();
+ DisplayConfigurationPolicy(DisplayConfigurationPolicy const&) = delete;
+ DisplayConfigurationPolicy& operator=(DisplayConfigurationPolicy const&) = delete;
+
+ virtual void apply_to(mir::graphics::DisplayConfiguration& conf) = 0;
+ };
+
+-} // namespace miral
++} // namespace miroil
+
+
+-#endif // MIRAL_DISPLAY_CONDIFIGURATION_POLICY_H
++#endif // MIROIL_DISPLAY_CONDIFIGURATION_POLICY_H
+diff --git a/include/qtmir/miral/display_configuration_storage.h b/include/miroil/display_configuration_storage.h
+similarity index 79%
+rename from include/qtmir/miral/display_configuration_storage.h
+rename to include/miroil/display_configuration_storage.h
+index 8090877b..f66e3d00 100644
+--- a/include/qtmir/miral/display_configuration_storage.h
++++ b/include/miroil/display_configuration_storage.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016-2017 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,23 +16,24 @@
+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com>
+ */
+
+-#ifndef MIRAL_DISPLAY_CONFIGURATION_STORAGE_H
+-#define MIRAL_DISPLAY_CONFIGURATION_STORAGE_H
++#ifndef MIROIL_DISPLAY_CONFIGURATION_STORAGE_H
++#define MIROIL_DISPLAY_CONFIGURATION_STORAGE_H
++
++#include <miroil/display_id.h>
+
+ #include <mir/geometry/rectangle.h>
+ #include <mir/optional_value.h>
+ #include <mir_toolkit/common.h>
+
+-#include "display_id.h"
++#include <sys/types.h>
+
+-// Prototyping namespace for later incorporation in MirAL
+-namespace miral
++namespace miroil
+ {
+
+ struct DisplayConfigurationOptions
+ {
+ mir::optional_value<bool> used;
+- mir::optional_value<unsigned int> clone_output_index;
++ mir::optional_value<uint> clone_output_index;
+ struct DisplayMode
+ {
+ mir::geometry::Size size;
+@@ -53,6 +54,6 @@ public:
+ virtual bool load(const DisplayId&, DisplayConfigurationOptions&) const = 0;
+ };
+
+-} // namespace miral
++} // namespace miroil
+
+-#endif // MIRAL_DISPLAY_CONFIGURATION_STORAGE_H
++#endif // MIROIL_DISPLAY_CONFIGURATION_STORAGE_H
+diff --git a/include/qtmir/miral/display_id.h b/include/miroil/display_id.h
+similarity index 66%
+rename from include/qtmir/miral/display_id.h
+rename to include/miroil/display_id.h
+index a65d59b4..50b0c933 100644
+--- a/include/qtmir/miral/display_id.h
++++ b/include/miroil/display_id.h
+@@ -1,14 +1,13 @@
+-#ifndef MIRAL_DISPLAY_ID_H
+-#define MIRAL_DISPLAY_ID_H
++#ifndef MIROIL_DISPLAY_ID_H
++#define MIROIL_DISPLAY_ID_H
+
+ #include <mir/int_wrapper.h>
+
+-#include "edid.h"
++#include <miroil/edid.h>
+
+ namespace mir { namespace graphics { namespace detail { struct GraphicsConfOutputIdTag; } } }
+
+-// Prototyping namespace for later incorporation in MirAL
+-namespace miral
++namespace miroil
+ {
+ using OutputId = mir::IntWrapper<mir::graphics::detail::GraphicsConfOutputIdTag>;
+
+@@ -20,4 +19,4 @@ struct DisplayId
+
+ } // namespace miral
+
+-#endif // MIRAL_DISPLAY_ID_H
++#endif // MIROIL_DISPLAY_ID_H
+diff --git a/include/qtmir/miral/edid.h b/include/miroil/edid.h
+similarity index 89%
+rename from include/qtmir/miral/edid.h
+rename to include/miroil/edid.h
+index d8f4e369..ec5996e5 100644
+--- a/include/qtmir/miral/edid.h
++++ b/include/miroil/edid.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,15 +16,14 @@
+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com>
+ */
+
+-#ifndef MIRAL_EDID_H
+-#define MIRAL_EDID_H
++#ifndef MIROIL_EDID_H
++#define MIROIL_EDID_H
+
+ #include <cstdint>
+ #include <string>
+ #include <vector>
+
+-// Prototyping namespace for later incorporation in MirAL
+-namespace miral
++namespace miroil
+ {
+
+ struct Edid
+@@ -66,4 +65,4 @@ struct Edid
+
+ }
+
+-#endif // MIRAL_EDID_H
++#endif // MIROIL_EDID_H
+diff --git a/include/qtmir/displayconfigurationpolicy.h b/include/qtmir/displayconfigurationpolicy.h
+index cb26a0de..3b437625 100644
+--- a/include/qtmir/displayconfigurationpolicy.h
++++ b/include/qtmir/displayconfigurationpolicy.h
+@@ -17,13 +17,12 @@
+ #ifndef QTMIR_DISPLAYCONFIGURATIONPOLICY_H
+ #define QTMIR_DISPLAYCONFIGURATIONPOLICY_H
+
+-//qtmir
+-#include "qtmir/miral/display_configuration_policy.h"
+-
+-// mir
+-#include <mir/server.h>
++//miroil
++#include <miroil/display_configuration_policy.h>
++#include <miroil/persist_display_config.h>
+
+ #include <memory>
++#include <functional>
+
+ class QMirServer;
+
+@@ -44,7 +43,7 @@ namespace qtmir
+
+ qtmir::GuiServerApplication app(argc, argv, { SetDisplayConfigurationPolicy<MyDisplayConfigurationPolicy>() });
+ */
+-class DisplayConfigurationPolicy : public miral::DisplayConfigurationPolicy
++class DisplayConfigurationPolicy : public miroil::DisplayConfigurationPolicy
+ {
+ public:
+ DisplayConfigurationPolicy();
+@@ -56,7 +55,7 @@ private:
+ std::shared_ptr<Private> d;
+ };
+
+-using DisplayConfigurationPolicyWrapper = std::function<std::shared_ptr<miral::DisplayConfigurationPolicy>()>;
++using DisplayConfigurationPolicyWrapper = std::function<std::shared_ptr<miroil::DisplayConfigurationPolicy>(std::shared_ptr<mir::graphics::DisplayConfigurationPolicy> const& wrapped)>;
+
+ /*
+ Base class for access to set the display configuration policy
+@@ -84,7 +83,7 @@ public:
+ template<typename ...Args>
+ explicit SetDisplayConfigurationPolicy(Args const& ...args) :
+ BasicSetDisplayConfigurationPolicy{
+- [&args...]() { return std::make_shared<Policy>(args...); }} {}
++ [&args...](auto) { return std::make_shared<Policy>(args...); }} {}
+ };
+
+ } // namespace qtmir
+diff --git a/include/qtmir/displayconfigurationstorage.h b/include/qtmir/displayconfigurationstorage.h
+index 8a24e4ab..c7f1451c 100644
+--- a/include/qtmir/displayconfigurationstorage.h
++++ b/include/qtmir/displayconfigurationstorage.h
+@@ -17,7 +17,7 @@
+ #ifndef DISPLAYCONFIGURATIONSTORAGE_H
+ #define DISPLAYCONFIGURATIONSTORAGE_H
+
+-#include "qtmir/miral/display_configuration_storage.h"
++#include <miroil/display_configuration_storage.h>
+
+ #include <functional>
+ #include <memory>
+@@ -27,7 +27,7 @@ class QMirServer;
+ namespace qtmir
+ {
+
+-using DisplayConfigurationStorageBuilder = std::function<std::shared_ptr<miral::DisplayConfigurationStorage>()>;
++using DisplayConfigurationStorageBuilder = std::function<std::shared_ptr<miroil::DisplayConfigurationStorage>()>;
+
+ class BasicSetDisplayConfigurationStorage
+ {
+diff --git a/include/qtmir/screen.h b/include/qtmir/screen.h
+index 48793411..805a0fb7 100644
+--- a/include/qtmir/screen.h
++++ b/include/qtmir/screen.h
+@@ -18,7 +18,7 @@
+ #define QTMIR_SCREEN_H
+
+ #include <qtmir/types.h>
+-#include <qtmir/miral/display_id.h>
++#include <miroil/display_id.h>
+
+ #include <QObject>
+ #include <QPointer>
+@@ -40,7 +40,7 @@ class Screen : public QObject
+ {
+ Q_OBJECT
+ public:
+- virtual miral::DisplayId displayId() const = 0;
++ virtual miroil::DisplayId displayId() const = 0;
+ virtual bool used() const = 0;
+ virtual QString name() const = 0;
+ virtual float scale() const = 0;
+@@ -57,8 +57,8 @@ public:
+
+ virtual QScreen* qscreen() const = 0;
+
+- virtual ScreenConfiguration *beginConfiguration() const = 0;
+- virtual bool applyConfiguration(ScreenConfiguration *configuration) = 0;
++ virtual Q_INVOKABLE ScreenConfiguration *beginConfiguration() const = 0;
++ virtual Q_INVOKABLE bool applyConfiguration(ScreenConfiguration *configuration) = 0;
+
+ Q_SIGNALS:
+ void usedChanged();
+@@ -96,7 +96,7 @@ public:
+ struct ScreenConfiguration
+ {
+ bool valid{false};
+- miral::OutputId id;
++ miroil::OutputId id;
+
+ bool used;
+ QPoint topLeft;
+diff --git a/include/qtmir/windowmanagementpolicy.h b/include/qtmir/windowmanagementpolicy.h
+index 69f4f6b0..c1e5519f 100644
+--- a/include/qtmir/windowmanagementpolicy.h
++++ b/include/qtmir/windowmanagementpolicy.h
+@@ -18,7 +18,7 @@
+ #define QTMIR_WINDOWMANAGEMENTPOLICY_H
+
+ // miral
+-#include <miral/canonical_window_manager.h>
++#include <miral/minimal_window_manager.h>
+ #include <miral/version.h>
+ #if MIRAL_VERSION > MIR_VERSION_NUMBER(1,3,1)
+ #include <miral/set_window_management_policy.h>
+@@ -43,7 +43,7 @@ class WindowManagementPolicyPrivate;
+ /*
+ Provides window management callbacks for window behaviour customization
+ */
+-class WindowManagementPolicy : public miral::CanonicalWindowManagerPolicy
++class WindowManagementPolicy : public miral::MinimalWindowManager
+ {
+ public:
+
+diff --git a/src/common/debughelpers.cpp b/src/common/debughelpers.cpp
+index 0e3be568..362d252d 100644
+--- a/src/common/debughelpers.cpp
++++ b/src/common/debughelpers.cpp
+@@ -17,7 +17,13 @@
+ #include "debughelpers.h"
+ #include <QTouchEvent>
+
++#include <mir/version.h>
++#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 0, 0)
++#include <miral/toolkit_event.h>
++using namespace miral::toolkit;
++#else
+ #include <mir_toolkit/event.h>
++#endif
+
+ // Lomiri Shell API
+ #include <lomiri/shell/application/ApplicationInfoInterface.h>
+@@ -124,6 +130,7 @@ const char *mirSurfaceTypeToStr(int value)
+ case mir_window_type_inputmethod: return "input Method"; /**< AKA "OSK" or handwriting etc. */
+ case mir_window_type_satellite: return "satellite"; /**< AKA "toolbox"/"toolbar" */
+ case mir_window_type_tip: return "tip"; /**< AKA "tooltip" */
++ case mir_window_type_decoration: return "decoration";
+ case mir_window_types: Q_UNREACHABLE();
+ }
+ Q_UNREACHABLE();
+diff --git a/src/common/debughelpers.h b/src/common/debughelpers.h
+index 0828db27..31814dbe 100644
+--- a/src/common/debughelpers.h
++++ b/src/common/debughelpers.h
+@@ -20,7 +20,13 @@
+ #include <QString>
+
+ #include <mir_toolkit/common.h>
++#include <mir/version.h>
++#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 0, 0)
++#include <miral/toolkit_event.h>
++using namespace miral::toolkit;
++#else
+ #include <mir_toolkit/event.h>
++#endif
+
+ class QTouchEvent;
+
+diff --git a/src/common/windowcontrollerinterface.h b/src/common/windowcontrollerinterface.h
+index 062c02a7..f33b1b80 100644
+--- a/src/common/windowcontrollerinterface.h
++++ b/src/common/windowcontrollerinterface.h
+@@ -19,7 +19,13 @@
+
+ #include <miral/window.h>
+
++#include <mir/version.h>
++#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 0, 0)
++#include <miral/toolkit_event.h>
++using namespace miral::toolkit;
++#else
+ #include <mir_toolkit/event.h>
++#endif
+
+ #include <QPoint>
+ #include <QSize>
+diff --git a/src/common/windowmodelnotifier.h b/src/common/windowmodelnotifier.h
+index e534803d..388d0175 100644
+--- a/src/common/windowmodelnotifier.h
++++ b/src/common/windowmodelnotifier.h
+@@ -90,6 +90,8 @@ Q_SIGNALS: // **Must used Queued Connection or else events will be out of order*
+ void modificationsStarted();
+ void modificationsEnded();
+
++ void windowDecorationChanged(const miral::Window &window, bool ssd);
++
+ private:
+ Q_DISABLE_COPY(WindowModelNotifier)
+ };
+@@ -112,6 +114,7 @@ Q_SIGNALS:
+ void windowStateChanged(Mir::State state);
+ void windowFocusChanged(bool focused);
+ void windowRequestedRaise();
++ void windowDecorationChanged(bool ssd);
+ };
+
+ } // namespace qtmir
+@@ -120,5 +123,6 @@ Q_DECLARE_METATYPE(qtmir::NewWindow)
+ Q_DECLARE_METATYPE(miral::WindowInfo)
+ Q_DECLARE_METATYPE(std::vector<miral::Window>)
+ Q_DECLARE_METATYPE(MirWindowState)
++Q_DECLARE_METATYPE(miral::Window)
+
+ #endif // WINDOWMODELNOTIFIER_H
+diff --git a/src/common/workspacecontrollerinterface.h b/src/common/workspacecontrollerinterface.h
+index eb7b281c..fcb26fb2 100644
+--- a/src/common/workspacecontrollerinterface.h
++++ b/src/common/workspacecontrollerinterface.h
+@@ -19,8 +19,6 @@
+
+ #include <miral/window.h>
+
+-#include <mir_toolkit/event.h>
+-
+ #include <QPoint>
+ #include <QSize>
+
+diff --git a/src/modules/QtMir/Application/CMakeLists.txt b/src/modules/QtMir/Application/CMakeLists.txt
+index 5fac5329..f5a0b125 100644
+--- a/src/modules/QtMir/Application/CMakeLists.txt
++++ b/src/modules/QtMir/Application/CMakeLists.txt
+@@ -1,8 +1,13 @@
+ include(UseLttngGenTp)
+
++if(NOT WITH_MIR2)
++ set(MIROIL_INC ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include)
++endif()
++
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${MIROIL_INC}
+ ${CMAKE_SOURCE_DIR}/src/common
+ ${CMAKE_CURRENT_BINARY_DIR} # for tracepoints.h
+ )
+@@ -14,6 +19,7 @@ include_directories(
+ ${GIO_UNIX_INCLUDE_DIRS}
+ ${MIRAL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRRENDERERGLDEV_INCLUDE_DIRS}
+ ${PROCESS_CPP_INCLUDE_DIRS}
+ ${UBUNTU_PLATFORM_API_INCLUDE_DIRS}
+diff --git a/src/modules/QtMir/Application/application.cpp b/src/modules/QtMir/Application/application.cpp
+index c5979f20..f7ca448a 100644
+--- a/src/modules/QtMir/Application/application.cpp
++++ b/src/modules/QtMir/Application/application.cpp
+@@ -441,12 +441,6 @@ bool Application::fullscreen() const
+ return false;
+ }
+
+-// TODO
+-bool Application::serverSideDecoration() const
+-{
+- return true;
+-}
+-
+ void Application::close()
+ {
+ DEBUG_MSG << "()";
+@@ -896,6 +890,16 @@ shellapp::MirSurfaceListInterface* Application::promptSurfaceList() const
+ return m_proxyPromptSurfaceList;
+ }
+
++bool Application::serverSideDecoration() const
++{
++ return m_ssd;
++}
++
++void Application::setServerSideDecoration(bool ssd) {
++ m_ssd = ssd;
++ Q_EMIT serverSideDecorationChanged(ssd);
++}
++
+ void Application::requestFocus()
+ {
+ if (m_surfaceList.rowCount() > 0) {
+diff --git a/src/modules/QtMir/Application/application.h b/src/modules/QtMir/Application/application.h
+index 41d8e05d..13514097 100644
+--- a/src/modules/QtMir/Application/application.h
++++ b/src/modules/QtMir/Application/application.h
+@@ -106,6 +106,8 @@ public:
+ lomiri::shell::application::MirSurfaceListInterface* promptSurfaceList() const override;
+ int surfaceCount() const override { return surfaceList()->count(); }
+ bool serverSideDecoration() const override;
++ void setServerSideDecoration(bool ssd);
++
+ void close() override;
+
+ ProcessState processState() const { return m_processState; }
+@@ -180,6 +182,7 @@ private:
+ bool m_exemptFromLifecycle;
+ QSize m_initialSurfaceSize;
+ bool m_closing{false};
++ bool m_ssd{true};
+
+ mutable MirSurfaceListModel m_surfaceList;
+ ProxySurfaceListModel *m_proxyPromptSurfaceList;
+diff --git a/src/modules/QtMir/Application/application_manager.cpp b/src/modules/QtMir/Application/application_manager.cpp
+index 3b135541..fe2a69a8 100644
+--- a/src/modules/QtMir/Application/application_manager.cpp
++++ b/src/modules/QtMir/Application/application_manager.cpp
+@@ -78,6 +78,32 @@ QString toShortAppIdIfPossible(const QString &appId) {
+
+ } // namespace
+
++class NoDesktopAppInfo : public ApplicationInfo
++{
++public:
++ NoDesktopAppInfo(QString name) : m_name(name) {};
++ QString appId() const override { return m_name; };
++ QString name() const override { return m_name; };
++ QString comment() const override { return m_name; };
++ QUrl icon() const override {return QUrl(); };
++ bool showSplash() const override { return false; };
++ QString splashTitle() const override {return m_name; };
++ QUrl splashImage() const override {return QUrl(); };
++ bool splashShowHeader() const override { return false; };
++ QString splashColor() const override { return ""; };
++ QString splashColorHeader() const override { return ""; };
++ QString splashColorFooter() const override { return ""; };
++ Qt::ScreenOrientations supportedOrientations() const override { return Qt::PortraitOrientation |
++ Qt::LandscapeOrientation |
++ Qt::InvertedPortraitOrientation |
++ Qt::InvertedLandscapeOrientation; };
++ bool rotatesWindowContents() const override { return false; };
++ bool isTouchApp() const override { return false; };
++
++private:
++ QString m_name;
++};
++
+ ApplicationManager* ApplicationManager::create()
+ {
+ NativeInterface *nativeInterface = dynamic_cast<NativeInterface*>(QGuiApplication::platformNativeInterface());
+@@ -503,6 +529,62 @@ void ApplicationManager::onAppDataChanged(const int role)
+ }
+ }
+
++QSharedPointer<ApplicationInfo> ApplicationManager::tryFindApp(const pid_t pid)
++{
++ // We first try task controller
++ std::unique_ptr<ProcInfo::CommandLine> info = m_procInfo->commandLine(pid);
++ QString desktopFileName = info->getParameter("--desktop_file_hint=");
++
++ if (desktopFileName.isNull()) {
++ auto environment = m_procInfo->environment(pid);
++ if (environment && environment->contains("DESKTOP_FILE_HINT")) {
++ desktopFileName = environment->getParameter("DESKTOP_FILE_HINT");
++ }
++ }
++
++ qCDebug(QTMIR_APPLICATIONS) << "Trying to find desktop file";
++
++ if (desktopFileName.isNull()) {
++ const auto paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
++ for (const auto &path: paths) {
++ qWarning() << "searching" << path;
++ QDirIterator it(path, QStringList() << "*.desktop", QDir::Files, QDirIterator::Subdirectories);
++ while (it.hasNext()) {
++ auto file = it.next();
++ QTextStream in (&file);
++ QString line;
++ while (!line.isNull()) {
++ line = in.readLine();
++ if (line.contains("exec") && line.contains(info->getExec())) {
++ qWarning() << "found match for" << info->asStringList()[0] << "as" << file;
++ desktopFileName = file;
++ break;
++ }
++ }
++ if (!desktopFileName.isNull())
++ break;
++ }
++ if (!desktopFileName.isNull())
++ break;
++ }
++ }
++
++ if (!desktopFileName.isNull()) {
++ // Guess appId from the desktop file hint
++ const QString appId = toShortAppIdIfPossible(desktopFileName.split('/').last().remove(QRegExp(QStringLiteral(".desktop$"))));
++
++ qCDebug(QTMIR_APPLICATIONS) << "Process supplied desktop_file_hint, loading:" << appId;
++
++ auto appInfo = m_taskController->getInfoForApp(appId);
++ return appInfo;
++ }
++
++ // If all else fails, make a dummy app info
++ auto nod = new NoDesktopAppInfo(info->getExec());
++ return QSharedPointer<NoDesktopAppInfo>(nod);
++
++}
++
+ void ApplicationManager::authorizeSession(const pid_t pid, bool &authorized)
+ {
+ // This is the only function that is called from a different thread than the one
+diff --git a/src/modules/QtMir/Application/application_manager.h b/src/modules/QtMir/Application/application_manager.h
+index 59e6ec72..cce98d1f 100644
+--- a/src/modules/QtMir/Application/application_manager.h
++++ b/src/modules/QtMir/Application/application_manager.h
+@@ -123,6 +123,7 @@ private:
+
+ Application* findApplicationWithPromptSession(const mir::scene::PromptSession* promptSession);
+ Application *findClosingApplication(const QString &inputAppId) const;
++ QSharedPointer<qtmir::ApplicationInfo> tryFindApp(const pid_t pid);
+
+ QList<Application*> m_applications;
+ DBusFocusInfo *m_dbusFocusInfo;
+diff --git a/src/modules/QtMir/Application/mirbuffersgtexture.cpp b/src/modules/QtMir/Application/mirbuffersgtexture.cpp
+index 704a4f08..c4bfb53a 100644
+--- a/src/modules/QtMir/Application/mirbuffersgtexture.cpp
++++ b/src/modules/QtMir/Application/mirbuffersgtexture.cpp
+@@ -19,6 +19,7 @@
+
+ // Mir
+ #include <mir/geometry/size.h>
++#include <mir/version.h>
+
+ // Qt
+ #include <QDebug>
+@@ -30,7 +31,7 @@ namespace mg = mir::geometry;
+ class MirGlBuffer
+ {
+ public:
+- MirGlBuffer(const std::shared_ptr<miral::GLBuffer>& buffer);
++ MirGlBuffer(const std::shared_ptr<miroil::GLBuffer>& buffer);
+ virtual ~MirGlBuffer();
+
+ static std::shared_ptr<MirGlBuffer> from_mir_buffer(const std::shared_ptr<mir::graphics::Buffer>& buffer);
+@@ -50,7 +51,7 @@ public:
+ protected:
+ virtual void bindTexture() = 0;
+
+- std::shared_ptr<miral::GLBuffer> m_mirBuffer;
++ std::shared_ptr<miroil::GLBuffer> m_mirBuffer;
+ GLuint m_textureId;
+
+ private:
+@@ -63,10 +64,14 @@ private:
+ class MirGlBufferTexture : public MirGlBuffer
+ {
+ public:
+- MirGlBufferTexture(const std::shared_ptr<miral::GLBuffer>& buffer)
++ MirGlBufferTexture(const std::shared_ptr<miroil::GLBuffer>& buffer)
+ : MirGlBuffer(buffer)
+ // Strong reference held by base class.
+- , m_texBuf(static_cast<miral::GLTextureBuffer *>(buffer.get()))
++#if MIR_SERVER_MAJOR_VERSION < 2
++ , m_texBuf(static_cast<miroil::GLTextureBuffer *>(buffer.get()))
++#else
++ , m_texBuf(buffer.get())
++#endif
+ {}
+
+ void updateTextureId() override
+@@ -85,16 +90,21 @@ public:
+ }
+
+ private:
+- miral::GLTextureBuffer *m_texBuf;
++#if MIR_SERVER_MAJOR_VERSION < 2
++ miroil::GLTextureBuffer *m_texBuf;
++#else
++ miroil::GLBuffer *m_texBuf;
++#endif
+ };
+
++#if MIR_SERVER_MAJOR_VERSION < 2
+ class MirGlBufferTexturesource : public MirGlBuffer
+ {
+ public:
+- MirGlBufferTexturesource(const std::shared_ptr<miral::GLBuffer>& buffer)
++ MirGlBufferTexturesource(const std::shared_ptr<miroil::GLBuffer>& buffer)
+ : MirGlBuffer(buffer)
+ // Strong reference held by base class.
+- , m_texSourceBuf(static_cast<miral::GLTextureSourceBuffer *>(buffer.get()))
++ , m_texSourceBuf(static_cast<miroil::GLTextureSourceBuffer *>(buffer.get()))
+ {}
+
+ void updateTextureId() override
+@@ -113,10 +123,11 @@ public:
+ }
+
+ private:
+- miral::GLTextureSourceBuffer * m_texSourceBuf;
++ miroil::GLTextureSourceBuffer * m_texSourceBuf;
+ };
++#endif
+
+-MirGlBuffer::MirGlBuffer(const std::shared_ptr<miral::GLBuffer>& buffer) :
++MirGlBuffer::MirGlBuffer(const std::shared_ptr<miroil::GLBuffer>& buffer) :
+ m_mirBuffer(buffer)
+ , m_textureId(0)
+ , m_needsUpdate(true)
+@@ -135,10 +146,12 @@ MirGlBuffer::~MirGlBuffer()
+ }
+
+ std::shared_ptr<MirGlBuffer> MirGlBuffer::from_mir_buffer(const std::shared_ptr<mir::graphics::Buffer>& buffer) {
+- auto glBuffer = miral::GLBuffer::from_mir_buffer(buffer);
+- if (glBuffer->type() == miral::GLBuffer::Type::GLTextureSource)
++ auto glBuffer = miroil::GLBuffer::from_mir_buffer(buffer);
++ #if MIR_SERVER_MAJOR_VERSION < 2
++ if (glBuffer->type() == miroil::GLBuffer::Type::GLTextureSource)
+ return std::make_shared<MirGlBufferTexturesource>(glBuffer);
+ else
++#endif
+ return std::make_shared<MirGlBufferTexture>(glBuffer);
+ }
+
+diff --git a/src/modules/QtMir/Application/mirbuffersgtexture.h b/src/modules/QtMir/Application/mirbuffersgtexture.h
+index 51579d03..2b45b339 100644
+--- a/src/modules/QtMir/Application/mirbuffersgtexture.h
++++ b/src/modules/QtMir/Application/mirbuffersgtexture.h
+@@ -17,7 +17,7 @@
+ #ifndef MIRBUFFERSGTEXTURE_H
+ #define MIRBUFFERSGTEXTURE_H
+
+-#include "miral/mirbuffer.h"
++#include <miroil/mirbuffer.h>
+
+ #include <QSGTexture>
+
+diff --git a/src/modules/QtMir/Application/mirsurface.cpp b/src/modules/QtMir/Application/mirsurface.cpp
+index 1290d1f5..3391a5c5 100644
+--- a/src/modules/QtMir/Application/mirsurface.cpp
++++ b/src/modules/QtMir/Application/mirsurface.cpp
+@@ -18,7 +18,6 @@
+ #include "compositortextureprovider.h"
+ #include "mirsurface.h"
+ #include "mirsurfacelistmodel.h"
+-#include "namedcursor.h"
+ #include "session_interface.h"
+ #include "surfacemanager.h"
+ #include "timer.h"
+@@ -36,10 +35,13 @@
+
+ // Mir
+ #include <mir/geometry/rectangle.h>
+-#include <mir/scene/surface.h>
+-#include <mir/scene/surface_observer.h>
++//#include <mir/scene/surface.h>
++//#include <mir/scene/surface_observer.h>
+ #include <mir/version.h>
+-#include <mir_toolkit/cursors.h>
++//#include <mir_toolkit/cursors.h>
++// #include <mir_toolkit/event.h>
++#include <miroil/surface_observer.h>
++#include "namedcursor.h"
+
+ // mirserver
+ #include <logging.h>
+@@ -82,7 +84,7 @@ qint64 msecsSinceReference()
+
+ } // namespace {
+
+-class MirSurface::SurfaceObserverImpl : public SurfaceObserver, public mir::scene::SurfaceObserver
++class MirSurface::SurfaceObserverImpl : public SurfaceObserver, public miroil::SurfaceObserver
+ {
+ public:
+ SurfaceObserverImpl();
+@@ -94,7 +96,7 @@ public:
+ void attrib_changed(mir::scene::Surface const*, MirWindowAttrib, int) override;
+ #if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(1, 6, 0)
+ void content_resized_to(mir::scene::Surface const*, mir::geometry::Size const&) override;
+- void window_resized_to(mir::scene::Surface const*, mir::geometry::Size const&) override {}
++ void window_resized_to(mir::scene::Surface const*, mir::geometry::Size const&) override { qWarning("Window resized to");}
+ #else
+ void resized_to(mir::scene::Surface const*, mir::geometry::Size const&) override;
+ #endif
+@@ -106,7 +108,7 @@ public:
+
+ void alpha_set_to(mir::scene::Surface const*, float) override {}
+ void transformation_set_to(mir::scene::Surface const*, glm::mat4 const&) override {}
+- void reception_mode_set_to(mir::scene::Surface const*, mir::input::InputReceptionMode) override {}
++// void reception_mode_set_to(mir::scene::Surface const*, mir::input::InputReceptionMode) override {}
+ void cursor_image_set_to(mir::scene::Surface const*, mir::graphics::CursorImage const&) override;
+ void orientation_set_to(mir::scene::Surface const*, MirOrientation) override {}
+ void client_surface_close_requested(mir::scene::Surface const*) override {}
+@@ -192,6 +194,10 @@ public:
+ connect(this, &WindowNotifierObserver::windowRequestedRaise, this, [surface]() {
+ surface->requestFocus();
+ });
++ connect(this, &WindowNotifierObserver::windowDecorationChanged, this, [surface]( bool ssd) {
++ Application *app = static_cast<Application*>(surface->session()->application());
++ app->setServerSideDecoration(ssd);
++ });
+ }
+ };
+
+@@ -210,7 +216,7 @@ MirSurface::MirSurface(NewWindow newWindowInfo,
+ , m_maxHeight{newWindowInfo.windowInfo.max_height().as_int()}
+ , m_incWidth{newWindowInfo.windowInfo.width_inc().as_int()}
+ , m_incHeight{newWindowInfo.windowInfo.height_inc().as_int()}
+- , m_surface(newWindowInfo.surface)
++ , m_surface(std::make_shared<miroil::Surface>(newWindowInfo.surface))
+ , m_session(session)
+ , m_controller(controller)
+ , m_orientationAngle(Mir::Angle0)
+@@ -235,7 +241,7 @@ MirSurface::MirSurface(NewWindow newWindowInfo,
+
+ m_position = convertDisplayToLocalCoords(toQPoint(m_window.top_left()));
+
+- SurfaceObserver::registerObserverForSurface(m_surfaceObserver.get(), m_surface.get());
++ SurfaceObserver::registerObserverForSurface(m_surfaceObserver.get(), m_surface->get_wrapped());
+ m_surface->add_observer(m_surfaceObserver);
+
+ connect(m_surfaceObserver.get(), &SurfaceObserver::framesPosted, this, &MirSurface::onFramesPostedObserved);
+@@ -254,6 +260,10 @@ MirSurface::MirSurface(NewWindow newWindowInfo,
+ });
+ connect(m_surfaceObserver.get(), &SurfaceObserver::inputBoundsChanged, this, &MirSurface::setInputBounds);
+ connect(m_surfaceObserver.get(), &SurfaceObserver::confinesMousePointerChanged, this, &MirSurface::confinesMousePointerChanged);
++ connect(m_surfaceObserver.get(), &SurfaceObserver::resized, this, [&](QSize const &size){
++ m_size = size;
++ QMetaObject::invokeMethod(this, "emitSizeChanged", Qt::QueuedConnection);
++ });
+ m_surfaceObserver->setListener(this);
+
+ connect(session, &SessionInterface::stateChanged, this, [this]() {
+@@ -382,9 +392,9 @@ void MirSurface::dropPendingBuffer()
+ texture->freeBuffer();
+ texture->setBuffer(renderables[0]->buffer());
+ if (texture->textureSize() != m_size) {
+- m_size = texture->textureSize();
+- m_sizePendingChange = false;
+- QMetaObject::invokeMethod(this, "emitSizeChanged", Qt::QueuedConnection);
++ //m_size = texture->textureSize();
++ //m_sizePendingChange = false;
++ //QMetaObject::invokeMethod(this, "emitSizeChanged", Qt::QueuedConnection);
+ }
+ compositorTexture->setUpToDate(true);
+
+@@ -440,27 +450,29 @@ QSGTexture *MirSurface::weakTexture(qintptr userId) const
+ return compositorTexure ? compositorTexure->texture().toStrongRef().data() : nullptr;
+ }
+
+-bool MirSurface::updateTexture(qintptr userId)
++std::vector<MirSurface::SubSurfaceTexture> MirSurface::updateTexture(qintptr userId)
+ {
+ QMutexLocker locker(&m_mutex);
+
+ auto compositorTexure = m_textures->compositorTextureForId(userId);
+- if (!compositorTexure) return false;
++ if (!compositorTexure) return {};
+
+ return updateTextureLocked(userId, compositorTexure);
+ }
+
+-bool MirSurface::updateTextureLocked(qintptr userId, CompositorTexture *compositorTexture)
++std::vector<MirSurface::SubSurfaceTexture> MirSurface::updateTextureLocked(qintptr userId, CompositorTexture *compositorTexture)
+ {
+ auto texture = qWeakPointerCast<MirBufferSGTexture, QSGTexture>(compositorTexture->texture()).lock();
+- if (!texture) return false;
++ // TODO figure out how to cache!
++ //if (!texture) return {};
+
+- if (compositorTexture->isUpToDate()) {
+- return texture->hasBuffer();
+- }
++ //if (compositorTexture->isUpToDate()) {
++ // return {};
++ //}
+
+ auto renderables = m_surface->generate_renderables((void*)userId);
+
++ std::vector<SubSurfaceTexture> subsurfaces;
+ if (renderables.size() > 0 &&
+ (m_surface->buffers_ready_for_compositor((void*)userId) > 0 || !texture->hasBuffer())
+ ) {
+@@ -471,12 +483,35 @@ bool MirSurface::updateTextureLocked(qintptr userId, CompositorTexture *composit
+ compositorTexture->incrementFrame();
+
+ if (texture->textureSize() != m_size) {
+- m_size = texture->textureSize();
+- m_sizePendingChange = false;
+- QMetaObject::invokeMethod(this, "emitSizeChanged", Qt::QueuedConnection);
++ //m_size = texture->textureSize();
++ //m_sizePendingChange = false;
++ //QMetaObject::invokeMethod(this, "emitSizeChanged", Qt::QueuedConnection);
+ }
+
+ compositorTexture->setUpToDate(true);
++
++ subsurfaces.reserve(renderables.size());
++ for (auto const& renderable : renderables)
++ {
++ auto const mirTopLeft = m_surface->top_left();
++ auto const mirStreamPosition = renderable->screen_position();
++ QRectF const relativePosition(
++ mirStreamPosition.left().as_int() - mirTopLeft.x.as_int(),
++ mirStreamPosition.top().as_int() - mirTopLeft.y.as_int(),
++ mirStreamPosition.size.width.as_int(),
++ mirStreamPosition.size.height.as_int()
++ );
++
++ QSharedPointer<MirBufferSGTexture> texture(new MirBufferSGTexture);
++ texture->freeBuffer();
++ texture->setBuffer(renderable->buffer());
++ subsurfaces.emplace_back(
++ SubSurfaceTexture{
++ relativePosition,
++ texture
++ });
++ }
++ m_subTextures = subsurfaces;
+ }
+
+ if (m_surface->buffers_ready_for_compositor((void*)userId) > 0) {
+@@ -485,7 +520,7 @@ bool MirSurface::updateTextureLocked(qintptr userId, CompositorTexture *composit
+ QMetaObject::invokeMethod(&m_frameDropperTimer, "start", Qt::QueuedConnection);
+ }
+
+- return texture->hasBuffer();
++ return m_subTextures;
+ }
+
+ bool MirSurface::numBuffersReadyForCompositor(qintptr userId)
+@@ -738,7 +773,6 @@ bool MirSurface::visible() const
+ {
+ return m_visible;
+ }
+-#include <mir_toolkit/event.h>
+ void MirSurface::mousePressEvent(QMouseEvent *event)
+ {
+ auto ev = EventBuilder::instance()->reconstructMirEvent(event);
+@@ -801,9 +835,9 @@ void MirSurface::keyPressEvent(QKeyEvent *qtEvent)
+ if (!qtEvent->isAutoRepeat()) {
+ Q_ASSERT(!isKeyPressed(qtEvent->nativeVirtualKey()));
+ PressedKey pressedKey(qtEvent, msecsSinceReference());
+- auto info = EventBuilder::instance()->findInfo(qtEvent->timestamp());
++ auto info = EventBuilder::instance()->find_info(qtEvent->timestamp());
+ if (info) {
+- pressedKey.deviceId = info->deviceId;
++ pressedKey.deviceId = info->device_id;
+ }
+ m_pressedKeys.append(std::move(pressedKey));
+ }
+@@ -1080,7 +1114,7 @@ QRect MirSurface::inputBounds() const
+
+ bool MirSurface::confinesMousePointer() const
+ {
+- return m_surface->confine_pointer_state() == mir_pointer_confined_to_window;
++ return m_surface->is_confined_to_window();
+ }
+
+ bool MirSurface::allowClientResize() const
+@@ -1282,23 +1316,23 @@ MirSurface::SurfaceObserverImpl::SurfaceObserverImpl()
+ , m_framesPosted(false)
+ {
+ // mir cursor names, used by the mir protocol
+-
+- m_cursorNameToShape[mir_default_cursor_name] = Qt::ArrowCursor;
+- m_cursorNameToShape[mir_arrow_cursor_name] = Qt::ArrowCursor;
+- m_cursorNameToShape[mir_crosshair_cursor_name] = Qt::CrossCursor;
+- m_cursorNameToShape[mir_busy_cursor_name] = Qt::WaitCursor;
+- m_cursorNameToShape[mir_caret_cursor_name] = Qt::IBeamCursor;
+- m_cursorNameToShape[mir_vertical_resize_cursor_name] = Qt::SizeVerCursor;
+- m_cursorNameToShape[mir_horizontal_resize_cursor_name] = Qt::SizeHorCursor;
+- m_cursorNameToShape[mir_diagonal_resize_bottom_to_top_cursor_name] = Qt::SizeBDiagCursor;
+- m_cursorNameToShape[mir_diagonal_resize_top_to_bottom_cursor_name] = Qt::SizeFDiagCursor;
+- m_cursorNameToShape[mir_omnidirectional_resize_cursor_name] = Qt::SizeAllCursor;
+- m_cursorNameToShape[mir_disabled_cursor_name] = Qt::BlankCursor;
+- m_cursorNameToShape[mir_vsplit_resize_cursor_name] = Qt::SplitVCursor;
+- m_cursorNameToShape[mir_hsplit_resize_cursor_name] = Qt::SplitHCursor;
+- m_cursorNameToShape[mir_pointing_hand_cursor_name] = Qt::PointingHandCursor;
+- m_cursorNameToShape[mir_open_hand_cursor_name] = Qt::OpenHandCursor;
+- m_cursorNameToShape[mir_closed_hand_cursor_name] = Qt::ClosedHandCursor;
++ // Cursor names are from CSS3: https://www.w3.org/TR/css-ui-3/#propdef-cursor
++
++ m_cursorNameToShape["default"] = Qt::ArrowCursor;
++ m_cursorNameToShape["crosshair"] = Qt::CrossCursor;
++ m_cursorNameToShape["wait"] = Qt::WaitCursor;
++ m_cursorNameToShape["text"] = Qt::IBeamCursor;
++ m_cursorNameToShape["ns-resize"] = Qt::SizeVerCursor;
++ m_cursorNameToShape["ew-resize"] = Qt::SizeHorCursor;
++ m_cursorNameToShape["ne-resize"] = Qt::SizeBDiagCursor;
++ m_cursorNameToShape["se-resize"] = Qt::SizeFDiagCursor;
++ m_cursorNameToShape["move"] = Qt::SizeAllCursor;
++ m_cursorNameToShape["none"] = Qt::BlankCursor;
++ m_cursorNameToShape["row-resize"] = Qt::SplitVCursor;
++ m_cursorNameToShape["col-resize"] = Qt::SplitHCursor;
++ m_cursorNameToShape["pointer"] = Qt::PointingHandCursor;
++ m_cursorNameToShape["grab"] = Qt::OpenHandCursor;
++ m_cursorNameToShape["grabbing"] = Qt::ClosedHandCursor;
+
+ // xcursor names, used by our cursor themes
+
+@@ -1500,7 +1534,8 @@ QPoint MirSurface::convertDisplayToLocalCoords(const QPoint &displayPos) const
+ QPoint localPos = displayPos;
+
+ if (m_surface->parent()) {
+- auto parentPos = m_surface->parent()->top_left();
++ auto parent = m_surface->parent();
++ auto parentPos = miroil::Surface(parent).top_left();
+ localPos.rx() -= parentPos.x.as_int();
+ localPos.ry() -= parentPos.y.as_int();
+ }
+@@ -1513,7 +1548,9 @@ QPoint MirSurface::convertLocalToDisplayCoords(const QPoint &localPos) const
+ QPoint displayPos = localPos;
+
+ if (m_surface->parent()) {
+- auto parentPos = m_surface->parent()->top_left();
++ miroil::Surface parent(m_surface->parent());
++
++ auto parentPos = parent.top_left();
+ displayPos.rx() += parentPos.x.as_int();
+ displayPos.ry() += parentPos.y.as_int();
+ }
+@@ -1563,8 +1600,7 @@ void MirSurface::releaseAllPressedKeys()
+ auto deltaMs = (ulong)(msecsSinceReference() - pressedKey.msecsSinceReference);
+ ulong timestamp = pressedKey.timestamp + deltaMs;
+ std::vector<uint8_t> cookie{};
+-
+- auto ev = mir::events::make_event(pressedKey.deviceId,
++ auto ev = EventBuilder::instance()->make_key_event(pressedKey.deviceId,
+ uncompressTimestamp<qtmir::Timestamp>(qtmir::Timestamp(timestamp)),
+ cookie, mir_keyboard_action_up, pressedKey.nativeVirtualKey, pressedKey.nativeScanCode,
+ mir_input_event_modifier_none);
+diff --git a/src/modules/QtMir/Application/mirsurface.h b/src/modules/QtMir/Application/mirsurface.h
+index e7866108..e14dae8b 100644
+--- a/src/modules/QtMir/Application/mirsurface.h
++++ b/src/modules/QtMir/Application/mirsurface.h
+@@ -38,7 +38,8 @@
+
+ // mir
+ #include <mir_toolkit/common.h>
+-
++#include <mir_toolkit/mir_input_device_types.h>
++#include <miroil/surface.h>
+
+ class SurfaceObserver;
+
+@@ -130,7 +131,7 @@ public:
+ // methods called from the rendering (scene graph) thread:
+ QSharedPointer<QSGTexture> texture(qintptr userId) override;
+ QSGTexture *weakTexture(qintptr userId) const override;
+- bool updateTexture(qintptr userId) override;
++ std::vector<SubSurfaceTexture> updateTexture(qintptr userId) override;
+ unsigned int currentFrameNumber(qintptr userId) const override;
+ bool numBuffersReadyForCompositor(qintptr userId) override;
+ // end of methods called from the rendering (scene graph) thread
+@@ -225,10 +226,12 @@ private:
+ void forgetPressedKey(quint32 nativeVirtualKey);
+ void releaseAllPressedKeys();
+
+- bool updateTextureLocked(qintptr userId, CompositorTexture* compositorTexture);
++ std::vector<SubSurfaceTexture> updateTextureLocked(qintptr userId, CompositorTexture* compositorTexture);
+
+ const miral::Window m_window;
+ const std::shared_ptr<ExtraWindowInfo> m_extraInfo;
++ // To manage memory
++ std::vector<SubSurfaceTexture> m_subTextures;
+ QString m_name;
+ MirWindowType m_type;
+ int m_minWidth;
+@@ -238,7 +241,7 @@ private:
+ int m_incWidth;
+ int m_incHeight;
+
+- const std::shared_ptr<mir::scene::Surface> m_surface; // keep copy of the Surface for lifecycle
++ const std::shared_ptr<miroil::Surface> m_surface; // keep copy of the Surface for lifecycle
+ QPointer<SessionInterface> m_session;
+ WindowControllerInterface *const m_controller;
+
+@@ -273,6 +276,7 @@ private:
+ bool m_sizePendingChange;
+ QSize m_pendingResize;
+ QString m_keymap;
++ bool m_ssd;
+
+ QCursor m_cursor;
+ Mir::State m_state; // FIXME: remove when Mir gains additional window states to match Mir::State
+diff --git a/src/modules/QtMir/Application/mirsurfaceinterface.h b/src/modules/QtMir/Application/mirsurfaceinterface.h
+index d5fa1dd5..b6384c6b 100644
+--- a/src/modules/QtMir/Application/mirsurfaceinterface.h
++++ b/src/modules/QtMir/Application/mirsurfaceinterface.h
+@@ -57,7 +57,13 @@ public:
+ // methods called from the rendering (scene graph) thread:
+ virtual QSharedPointer<QSGTexture> texture(qintptr userId) = 0;
+ virtual QSGTexture *weakTexture(qintptr userId) const = 0;
+- virtual bool updateTexture(qintptr userId) = 0;
++ struct SubSurfaceTexture
++ {
++ QRectF extent;
++ QSharedPointer<QSGTexture> texture;
++ };
++ virtual std::vector<SubSurfaceTexture> updateTexture(qintptr userId) = 0;
++
+ virtual unsigned int currentFrameNumber(qintptr userId) const = 0;
+ virtual bool numBuffersReadyForCompositor(qintptr userId) = 0;
+ // end of methods called from the rendering (scene graph) thread
+diff --git a/src/modules/QtMir/Application/mirsurfaceitem.cpp b/src/modules/QtMir/Application/mirsurfaceitem.cpp
+index 5b509f36..b78ef201 100644
+--- a/src/modules/QtMir/Application/mirsurfaceitem.cpp
++++ b/src/modules/QtMir/Application/mirsurfaceitem.cpp
+@@ -244,8 +244,9 @@ QSGNode *MirSurfaceItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
+ ensureTextureProvider();
+
+ const qintptr userId = (qintptr)window();
++ auto subtextures = m_surface->updateTexture(userId);
+
+- if (!userId || !m_textureProvider->texture() || !m_surface->updateTexture(userId)) {
++ if (!userId || !m_textureProvider->texture() || subtextures.empty()) {
+ delete oldNode;
+ return nullptr;
+ }
+@@ -273,6 +274,64 @@ QSGNode *MirSurfaceItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
+ auto texture = m_textureProvider->texture();
+ node->setTexture(texture);
+
++ // If we have no subtextures at all, drop all other childnodes
++ if (subtextures.size() - 1 <= 0) {
++ if (node->childCount() > 0) {
++ qWarning() << " dropping all childnodes";
++ node->removeAllChildNodes();
++ }
++ } else {
++ // - 1 since first subtexture is main texture
++ bool isEqual = subtextures.size() - 1 == node->childCount();
++ if (!isEqual) {
++ qWarning() << "Not equal, recreating childnodes";
++ if (node->childCount() > 0) {
++ qWarning() << " dropping all childnodes";
++ node->removeAllChildNodes();
++ }
++ }
++
++ // Meh, this is not great code
++ int first = 0;
++ for (auto sub : subtextures) {
++ first++;
++ // Skip first subtexture as this is the main texture
++ if (first < 2)
++ continue;
++
++ // Atempt at some caching, we only recrate the nodes if the amount of childnodes
++ // does not match subtextures, this could be better
++ QSGDefaultInternalImageNode *subnode;
++ if (isEqual) {
++ subnode = static_cast<QSGDefaultInternalImageNode*>(node->childAtIndex(first - 2));
++ subnode->markDirty(QSGNode::DirtyMaterial);
++ } else {
++ #if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
++ QSGRenderContext *rc = QQuickWindowPrivate::get(window())->context;
++ subnode = new QSGDefaultInternalImageNode(static_cast<QSGDefaultRenderContext *>(rc));
++ #else
++ subnode = new QSGDefaultInternalImageNode;
++ #endif
++ subnode->setMipmapFiltering(QSGTexture::None);
++ subnode->setHorizontalWrapMode(QSGTexture::ClampToEdge);
++ subnode->setVerticalWrapMode(QSGTexture::ClampToEdge);
++ }
++
++ // texture is memory managed by mirsubsufrace's shared buffer
++ subnode->setTexture(sub.texture.data());
++
++ subnode->setSubSourceRect(QRectF(0, 0, 1, 1));
++ subnode->setTargetRect(sub.extent);
++ subnode->setInnerTargetRect(sub.extent);
++ subnode->setFiltering(smooth() ? QSGTexture::Linear : QSGTexture::Nearest);
++ subnode->setAntialiasing(antialiasing());
++ subnode->update();
++
++ if (!isEqual)
++ node->appendChildNode(subnode);
++ }
++ }
++
+ if (m_fillMode == PadOrCrop) {
+ const QSize &textureSize = texture->textureSize();
+
+@@ -280,6 +339,11 @@ QSGNode *MirSurfaceItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
+ targetRect.setWidth(qMin(width(), static_cast<qreal>(textureSize.width())));
+ targetRect.setHeight(qMin(height(), static_cast<qreal>(textureSize.height())));
+
++ // x/y from extent is offset
++ auto r = subtextures[0].extent;
++ targetRect.setX(r.x());
++ targetRect.setY(r.y());
++
+ qreal u = targetRect.width() / textureSize.width();
+ qreal v = targetRect.height() / textureSize.height();
+ node->setSubSourceRect(QRectF(0, 0, u, v));
+@@ -288,9 +352,15 @@ QSGNode *MirSurfaceItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *
+ node->setInnerTargetRect(targetRect);
+ } else {
+ // Stretch
++ const QSize &textureSize = texture->textureSize();
++ qWarning() << "Streethcing" << height() << textureSize.height();
+ node->setSubSourceRect(QRectF(0, 0, 1, 1));
+- node->setTargetRect(QRectF(0, 0, width(), height()));
+- node->setInnerTargetRect(QRectF(0, 0, width(), height()));
++
++ auto r = subtextures[0].extent;
++ auto offset_x = r.x();
++ auto offset_y = r.y();
++ node->setTargetRect(QRectF(offset_x, offset_y, width(), height()));
++ node->setInnerTargetRect(QRectF(offset_x, offset_y, width(), height()));
+ }
+
+ node->setFiltering(smooth() ? QSGTexture::Linear : QSGTexture::Nearest);
+diff --git a/src/modules/QtMir/Application/proc_info.cpp b/src/modules/QtMir/Application/proc_info.cpp
+index 3809cece..aab46115 100644
+--- a/src/modules/QtMir/Application/proc_info.cpp
++++ b/src/modules/QtMir/Application/proc_info.cpp
+@@ -61,6 +61,11 @@ QString ProcInfo::CommandLine::getParameter(const char* name) const
+ return QString(regExpMatch.captured(1));
+ }
+
++QString ProcInfo::CommandLine::getExec() const
++{
++ return asStringList()[0];
++}
++
+
+ std::unique_ptr<ProcInfo::Environment> ProcInfo::environment(pid_t pid)
+ {
+diff --git a/src/modules/QtMir/Application/proc_info.h b/src/modules/QtMir/Application/proc_info.h
+index 2be60b2f..3f589819 100644
+--- a/src/modules/QtMir/Application/proc_info.h
++++ b/src/modules/QtMir/Application/proc_info.h
+@@ -41,6 +41,7 @@ public:
+ bool contains(const char* prefix) const;
+ QString getParameter(const char* name) const;
+ QStringList asStringList() const;
++ QString getExec() const;
+ };
+
+ struct Environment {
+diff --git a/src/modules/QtMir/Application/session.cpp b/src/modules/QtMir/Application/session.cpp
+index c47d1a28..97477c88 100644
+--- a/src/modules/QtMir/Application/session.cpp
++++ b/src/modules/QtMir/Application/session.cpp
+@@ -64,7 +64,7 @@ const char *sessionStateToString(SessionInterface::State state)
+ }
+
+ Session::Session(const std::shared_ptr<ms::Session>& session,
+- const std::shared_ptr<PromptSessionManager>& promptSessionManager,
++ const std::shared_ptr<miroil::PromptSessionManager>& promptSessionManager,
+ QObject *parent)
+ : SessionInterface(parent)
+ , m_session(session)
+@@ -302,7 +302,7 @@ void Session::suspend()
+ m_suspendTimer->start();
+
+ foreachPromptSession([this](const qtmir::PromptSession &promptSession) {
+- m_promptSessionManager->suspendPromptSession(promptSession);
++ m_promptSessionManager->suspend_prompt_session(promptSession);
+ });
+
+ foreachChildSession([](SessionInterface* session) {
+@@ -334,7 +334,7 @@ void Session::doResume()
+ miral::apply_lifecycle_state_to(session(), mir_lifecycle_state_resumed);
+
+ foreachPromptSession([this](const qtmir::PromptSession &promptSession) {
+- m_promptSessionManager->resumePromptSession(promptSession);
++ m_promptSessionManager->resume_prompt_session(promptSession);
+ });
+
+ foreachChildSession([](SessionInterface* session) {
+@@ -494,7 +494,7 @@ void Session::stopPromptSessions()
+ qtmir::PromptSession promptSession = it.previous();
+ DEBUG_MSG << " - promptSession=" << promptSession.get();
+
+- m_promptSessionManager->stopPromptSession(promptSession);
++ m_promptSessionManager->stop_prompt_session(promptSession);
+ }
+ }
+
+diff --git a/src/modules/QtMir/Application/session.h b/src/modules/QtMir/Application/session.h
+index 1d9fa2b2..4bf19cd6 100644
+--- a/src/modules/QtMir/Application/session.h
++++ b/src/modules/QtMir/Application/session.h
+@@ -23,17 +23,17 @@
+ // local
+ #include "session_interface.h"
+ #include "mirsurfacelistmodel.h"
+-#include "promptsessionmanager.h"
+ #include "timer.h"
+
++// mir
++#include <miroil/prompt_session_manager.h>
++
+ // Qt
+ #include <QObject>
+
+
+ namespace qtmir {
+
+-class PromptSessionManager;
+-
+ class Application;
+
+ class Session : public SessionInterface
+@@ -41,7 +41,7 @@ class Session : public SessionInterface
+ Q_OBJECT
+ public:
+ explicit Session(const std::shared_ptr<mir::scene::Session>& session,
+- const std::shared_ptr<PromptSessionManager>& promptSessionManager,
++ const std::shared_ptr<miroil::PromptSessionManager>& promptSessionManager,
+ QObject *parent = 0);
+ virtual ~Session();
+
+@@ -119,7 +119,7 @@ protected:
+ bool m_live;
+ AbstractTimer* m_suspendTimer{nullptr};
+ QVector<PromptSession> m_promptSessions;
+- std::shared_ptr<PromptSessionManager> const m_promptSessionManager;
++ std::shared_ptr<miroil::PromptSessionManager> const m_promptSessionManager;
+ QList<MirSurfaceInterface*> m_closingSurfaces;
+ bool m_hadSurface{false};
+ };
+diff --git a/src/modules/QtMir/Application/taskcontroller.cpp b/src/modules/QtMir/Application/taskcontroller.cpp
+index a53467a9..7467af93 100644
+--- a/src/modules/QtMir/Application/taskcontroller.cpp
++++ b/src/modules/QtMir/Application/taskcontroller.cpp
+@@ -51,7 +51,7 @@ TaskController::TaskController(QObject *parent)
+ auto appNotifier = static_cast<AppNotifier*>(nativeInterface->nativeResourceForIntegration("AppNotifier"));
+ connectToAppNotifier(appNotifier);
+
+- auto promptSessionListener = static_cast<PromptSessionListener*>(nativeInterface->nativeResourceForIntegration("PromptSessionListener"));
++ auto promptSessionListener = static_cast<qtmir::PromptSessionListener*>(nativeInterface->nativeResourceForIntegration("PromptSessionListener"));
+ connectToPromptSessionListener(promptSessionListener);
+
+ auto sessionAuthorizer = static_cast<SessionAuthorizer*>(nativeInterface->nativeResourceForIntegration("SessionAuthorizer"));
+@@ -59,7 +59,7 @@ TaskController::TaskController(QObject *parent)
+ this, &TaskController::authorizationRequestedForSession, Qt::DirectConnection);
+ }
+
+-TaskController::TaskController(std::shared_ptr<PromptSessionManager> &promptSessionManager, QObject *parent)
++TaskController::TaskController(std::shared_ptr<miroil::PromptSessionManager> &promptSessionManager, QObject *parent)
+ : QObject(parent)
+ , m_promptSessionManager(promptSessionManager)
+ {
+@@ -98,7 +98,7 @@ void TaskController::onPromptSessionStarting(const qtmir::PromptSession &promptS
+ {
+ DEBUG_MSG << " - promptSession=" << promptSession.get();
+
+- std::shared_ptr<mir::scene::Session> appSession = m_promptSessionManager->applicationFor(promptSession);
++ std::shared_ptr<mir::scene::Session> appSession = m_promptSessionManager->application_for(promptSession);
+ SessionInterface *qmlAppSession = findSession(appSession.get());
+ if (qmlAppSession) {
+ m_mirPromptToSessionHash[promptSession.get()] = qmlAppSession;
+@@ -170,7 +170,7 @@ void TaskController::connectToAppNotifier(AppNotifier *appNotifier)
+ this, &TaskController::onSessionStopping);
+ }
+
+-void TaskController::connectToPromptSessionListener(PromptSessionListener *listener)
++void TaskController::connectToPromptSessionListener(qtmir::PromptSessionListener *listener)
+ {
+ QObject::connect(listener, &PromptSessionListener::promptSessionStarting,
+ this, &TaskController::onPromptSessionStarting);
+diff --git a/src/modules/QtMir/Application/taskcontroller.h b/src/modules/QtMir/Application/taskcontroller.h
+index f709aa48..4f0729f5 100644
+--- a/src/modules/QtMir/Application/taskcontroller.h
++++ b/src/modules/QtMir/Application/taskcontroller.h
+@@ -29,7 +29,7 @@
+ #include <miral/application_info.h>
+
+ // mirserver
+-#include "promptsessionmanager.h"
++#include <miroil/prompt_session_manager.h>
+
+ namespace mir {
+ namespace scene {
+@@ -46,13 +46,13 @@ namespace lomiri {
+ }
+ }
+
+-class PromptSessionListener;
+-
+ namespace qtmir
+ {
+
+ class AppNotifier;
+ class ApplicationInfo;
++class PromptSession;
++class PromptSessionListener;
+ class SessionInterface;
+
+ class TaskController : public QObject
+@@ -107,13 +107,13 @@ public Q_SLOTS:
+
+ protected:
+ TaskController(QObject *parent = nullptr);
+- TaskController(std::shared_ptr<PromptSessionManager>&, QObject *parent = nullptr);
++ TaskController(std::shared_ptr<miroil::PromptSessionManager>&, QObject *parent = nullptr);
+
+ private:
+ void connectToAppNotifier(AppNotifier *);
+ void connectToPromptSessionListener(PromptSessionListener *);
+
+- std::shared_ptr<PromptSessionManager> m_promptSessionManager;
++ std::shared_ptr<miroil::PromptSessionManager> m_promptSessionManager;
+
+ QHash<const mir::scene::PromptSession *, SessionInterface *> m_mirPromptToSessionHash;
+ QList<SessionInterface*> m_sessionList;
+diff --git a/src/platforms/mirserver/CMakeLists.txt b/src/platforms/mirserver/CMakeLists.txt
+index 8f676ce5..d1a63e69 100644
+--- a/src/platforms/mirserver/CMakeLists.txt
++++ b/src/platforms/mirserver/CMakeLists.txt
+@@ -6,7 +6,14 @@ include(UseLttngGenTp)
+
+ set(QTMIRSERVER_ABI 1)
+
+-add_subdirectory(miral)
++set(qtmir_include ${CMAKE_SOURCE_DIR}/include)
++
++if(NOT WITH_MIR2)
++ set(MIROIL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/miroil/include)
++ add_subdirectory(miroil)
++endif()
++
++add_subdirectory(wayland-generated)
+
+ # Hacks for the QPA privates monster.
+ pkg_check_modules(FONTCONFIG fontconfig REQUIRED)
+@@ -41,6 +48,9 @@ include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR} # for tracepoints.h
+ )
+
++set(MIRCOMMON_INCLUDE_DIRS /usr/include/mircommon/)
++set(MIRCOMMON_LDFLAGS "-lmircommon")
++
+ include_directories(
+ SYSTEM
+ ${MIRAL_INCLUDE_DIRS}
+@@ -48,6 +58,8 @@ include_directories(
+ ${MIRSERVER_INCLUDE_DIRS}
+ ${MIRRENDERERGLDEV_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
++ ${MIRWAYLAND_INCLUDE_DIRS}
+
+ ${URL_DISPATCHER_INCLUDE_DIRS}
+ ${EGL_INCLUDE_DIRS}
+@@ -98,6 +110,7 @@ add_library(qtmirserver-nomirserver OBJECT
+ displayconfigurationstorage.cpp
+ nativeinterface.cpp
+ services.cpp
++ urlbuilderdispatcher.cpp
+ windowcontroller.cpp
+ workspacecontroller.cpp
+ tracepoints.c
+@@ -114,17 +127,14 @@ include_directories(SYSTEM ${MIRSERVER_INCLUDE_DIRS})
+
+ # These files will only compile with mirserver-dev
+ add_library(qtmirserver-mirserver OBJECT
+- openglcontextfactory.cpp openglcontextfactory.h
+- mircursorimages.cpp
+ screenscontroller.cpp
+ qtcompositor.cpp
+ displayconfigurationpolicy.cpp
+ wrappedwindowmanagementpolicy.cpp
+- mirdisplayconfigurationobserver.cpp
+- mirserverhooks.cpp mirserverhooks.h
+- setqtcompositor.cpp setqtcompositor.h
+- eventdispatch.cpp eventdispatch.h
+- promptsessionmanager.cpp promptsessionmanager.h promptsession.h
++ # mirdisplayconfigurationobserver.cpp
++ wayland-generated/qt-windowmanager_wrapper.cpp
++ wayland-generated/xdg-decoration-unstable-v1_wrapper.cpp
++ wayland-generated/server-decoration_wrapper.cpp
+ )
+ add_dependencies(qtmirserver-mirserver MirServer_LTTNG)
+
+@@ -133,6 +143,7 @@ set(QMIRSERVER_PLUGIN_SRC
+ ${CMAKE_SOURCE_DIR}/src/common/debughelpers.cpp
+ cursor.cpp
+ eventbuilder.cpp
++ qtwindowmanager.cpp
+ qteventfeeder.cpp
+ qmirserver.cpp
+ qmirserver_p.cpp
+@@ -145,6 +156,9 @@ set(QMIRSERVER_PLUGIN_SRC
+ mirserverapplication.cpp
+ windowmodelnotifier.cpp
+
++ wayland/xdgdecorationV1.cpp
++ wayland/kwinserverdecoration.cpp
++
+ # We need to run moc on these headers
+ ${APPLICATION_API_INCLUDEDIR}/lomiri/shell/application/MirMousePointerInterface.h
+ ${APPLICATION_API_INCLUDEDIR}/lomiri/shell/application/Mir.h
+@@ -165,16 +179,22 @@ set(QMIRSERVER_PLUGIN_SRC
+ ${CMAKE_SOURCE_DIR}/src/common/appnotifier.h
+ )
+
++if(NOT WITH_MIR2)
++ set(MIROIL_OBJ $<TARGET_OBJECTS:miroil>)
++endif()
++
+ add_library(qtmirserver SHARED
+ ${QMIRSERVER_PLUGIN_SRC}
+ $<TARGET_OBJECTS:qtmirserver-nomirserver>
+ $<TARGET_OBJECTS:qtmirserver-mirserver>
+- $<TARGET_OBJECTS:miral-prototypes>
++ ${MIROIL_OBJ}
+ )
+
+ target_link_libraries(qtmirserver
+ PUBLIC
+ ${MIRAL_LDFLAGS}
++ ${MIROIL_LDFLAGS}
++ ${MIROIL_LIBRARIES}
+ ${MIRSERVER_LDFLAGS}
+ Qt5::Core
+ Qt5::Gui
+@@ -188,6 +208,11 @@ target_link_libraries(qtmirserver
+ ${FONTCONFIG_LDFLAGS}
+ ${XKBCOMMON_LIBRARIES}
+
++ ${MIRCOMMON_LDFLAGS}
++ ${MIRWAYLAND_LDFLAGS}
++ ${WAYLAND_CLIENT_LIBRARIES}
++ ${WAYLAND_SERVER_LDFLAGS}
++
+ ${CONTENT_HUB_LIBRARIES}
+
+ Qt5::DBus
+@@ -225,6 +250,15 @@ install(
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+ )
+
++if(NOT WITH_MIR2)
++ # To avoid conflicts, we install to qtmir include
++ # and since do -I/some/thing/qtmir in the .pc we can
++ # include miroil as <miroil/blah>
++ install(
++ DIRECTORY ${CMAKE_SOURCE_DIR}/include/miroil
++ DESTINATION "include/qtmir"
++ )
++endif()
+
+ add_library(qpa-mirserver SHARED
+ mirserverintegration.cpp
+diff --git a/src/platforms/mirserver/eventbuilder.cpp b/src/platforms/mirserver/eventbuilder.cpp
+index eca408e1..9cd54cb1 100644
+--- a/src/platforms/mirserver/eventbuilder.cpp
++++ b/src/platforms/mirserver/eventbuilder.cpp
+@@ -21,9 +21,6 @@
+ // common
+ #include <timestamp.h>
+
+-#include <mir_toolkit/event.h>
+-#include <mir_toolkit/mir_cookie.h>
+-
+ #include <QDebug>
+
+ namespace {
+@@ -96,7 +93,6 @@ EventBuilder *EventBuilder::instance()
+ }
+
+ EventBuilder::EventBuilder()
+- : m_eventInfoVector(10)
+ {
+ }
+
+@@ -105,18 +101,6 @@ EventBuilder::~EventBuilder()
+ m_instance = nullptr;
+ }
+
+-void EventBuilder::store(const MirInputEvent *mirInputEvent, ulong qtTimestamp)
+-{
+- EventInfo &eventInfo = m_eventInfoVector[m_nextIndex];
+- eventInfo.store(mirInputEvent, qtTimestamp);
+-
+- m_nextIndex = (m_nextIndex + 1) % m_eventInfoVector.size();
+-
+- if (m_count < m_eventInfoVector.size()) {
+- ++m_count;
+- }
+-}
+-
+ mir::EventUPtr EventBuilder::reconstructMirEvent(QMouseEvent *qtEvent)
+ {
+ auto buttons = getMirButtonsFromQt(qtEvent->buttons());
+@@ -143,19 +127,19 @@ mir::EventUPtr EventBuilder::makeMirEvent(QInputEvent *qtEvent, int x, int y, Mi
+ // Timestamp will be zero in case of synthetic events. Particularly synthetic QHoverEvents caused
+ // by item movement under a stationary mouse pointer.
+ if (qtEvent->timestamp() != 0) {
+- auto eventInfo = findInfo(qtEvent->timestamp());
++ auto eventInfo = find_info(qtEvent->timestamp());
+ if (eventInfo) {
+- relativeX = eventInfo->relativeX;
+- relativeY = eventInfo->relativeY;
+- deviceId = eventInfo->deviceId;
++ relativeX = eventInfo->relative_x;
++ relativeY = eventInfo->relative_y;
++ deviceId = eventInfo->device_id;
+ cookie = eventInfo->cookie;
+ } else {
+ qCWarning(QTMIR_MIR_INPUT) << "EventBuilder::makeMirEvent didn't find EventInfo with timestamp" << qtEvent->timestamp();
+ }
+ }
+
+- return mir::events::make_event(deviceId, timestamp, cookie, modifiers, action,
+- buttons, x, y, 0 /*hscroll*/, 0 /*vscroll*/, relativeX, relativeY);
++ return make_pointer_event(deviceId, timestamp, cookie, modifiers, action,
++ buttons, x, y, 0 /*hscroll*/, 0 /*vscroll*/, relativeX, relativeY);
+ }
+
+ mir::EventUPtr EventBuilder::makeMirEvent(QWheelEvent *qtEvent)
+@@ -172,19 +156,19 @@ mir::EventUPtr EventBuilder::makeMirEvent(QWheelEvent *qtEvent)
+ mirScroll /= 120.0f;
+
+ if (qtEvent->timestamp() != 0) {
+- auto eventInfo = findInfo(qtEvent->timestamp());
++ auto eventInfo = find_info(qtEvent->timestamp());
+ if (eventInfo) {
+- deviceId = eventInfo->deviceId;
++ deviceId = eventInfo->device_id;
+ cookie = eventInfo->cookie;
+ } else {
+ qCWarning(QTMIR_MIR_INPUT) << "EventBuilder::makeMirEvent didn't find EventInfo with timestamp" << qtEvent->timestamp();
+ }
+ }
+
+- return mir::events::make_event(deviceId, timestamp, cookie, modifiers, mir_pointer_action_motion,
+- buttons, qtEvent->x(), qtEvent->y(),
+- mirScroll.x(), mirScroll.y(),
+- 0, 0);
++ return make_pointer_event(deviceId, timestamp, cookie, modifiers, mir_pointer_action_motion,
++ buttons, qtEvent->x(), qtEvent->y(),
++ mirScroll.x(), mirScroll.y(),
++ 0, 0);
+ }
+
+ mir::EventUPtr EventBuilder::makeMirEvent(QKeyEvent *qtEvent)
+@@ -207,19 +191,19 @@ mir::EventUPtr EventBuilder::makeMirEvent(QKeyEvent *qtEvent)
+ std::vector<uint8_t> cookie{};
+
+ if (qtEvent->timestamp() != 0) {
+- auto eventInfo = findInfo(qtEvent->timestamp());
++ auto eventInfo = find_info(qtEvent->timestamp());
+ if (eventInfo) {
+- deviceId = eventInfo->deviceId;
++ deviceId = eventInfo->device_id;
+ cookie = eventInfo->cookie;
+ } else {
+ qCWarning(QTMIR_MIR_INPUT) << "EventBuilder::makeMirEvent didn't find EventInfo with timestamp" << qtEvent->timestamp();
+ }
+ }
+
+- return mir::events::make_event(deviceId, uncompressTimestamp<qtmir::Timestamp>(qtmir::Timestamp(qtEvent->timestamp())),
+- cookie, action, qtEvent->nativeVirtualKey(),
+- qtEvent->nativeScanCode(),
+- qtEvent->nativeModifiers());
++ return make_key_event(deviceId, uncompressTimestamp<qtmir::Timestamp>(qtmir::Timestamp(qtEvent->timestamp())),
++ cookie, action, qtEvent->nativeVirtualKey(),
++ qtEvent->nativeScanCode(),
++ qtEvent->nativeModifiers());
+ }
+
+ mir::EventUPtr EventBuilder::makeMirEvent(Qt::KeyboardModifiers qmods,
+@@ -231,9 +215,9 @@ mir::EventUPtr EventBuilder::makeMirEvent(Qt::KeyboardModifiers qmods,
+ std::vector<uint8_t> cookie{};
+
+ if (qtTimestamp != 0) {
+- auto eventInfo = findInfo(qtTimestamp);
++ auto eventInfo = find_info(qtTimestamp);
+ if (eventInfo) {
+- deviceId = eventInfo->deviceId;
++ deviceId = eventInfo->device_id;
+ cookie = eventInfo->cookie;
+ } else {
+ qCWarning(QTMIR_MIR_INPUT) << "EventBuilder::makeMirEvent didn't find EventInfo with timestamp" << qtTimestamp;
+@@ -241,8 +225,8 @@ mir::EventUPtr EventBuilder::makeMirEvent(Qt::KeyboardModifiers qmods,
+ }
+
+ auto modifiers = getMirModifiersFromQt(qmods);
+- auto ev = mir::events::make_event(deviceId, uncompressTimestamp<qtmir::Timestamp>(qtmir::Timestamp(qtTimestamp)),
+- cookie, modifiers);
++ auto ev = make_touch_event(deviceId, uncompressTimestamp<qtmir::Timestamp>(qtmir::Timestamp(qtTimestamp)),
++ cookie, modifiers);
+
+ for (int i = 0; i < qtTouchPoints.count(); ++i) {
+ auto touchPoint = qtTouchPoints.at(i);
+@@ -262,44 +246,13 @@ mir::EventUPtr EventBuilder::makeMirEvent(Qt::KeyboardModifiers qmods,
+ if (touchPoint.flags() & QTouchEvent::TouchPoint::Pen)
+ tooltype = mir_touch_tooltype_stylus;
+
+- mir::events::add_touch(*ev, id, action, tooltype,
+- touchPoint.pos().x(), touchPoint.pos().y(),
+- touchPoint.pressure(),
+- touchPoint.rect().width(),
+- touchPoint.rect().height(),
+- 0 /* size */);
++ add_touch(*ev, id, action, tooltype,
++ touchPoint.pos().x(), touchPoint.pos().y(),
++ touchPoint.pressure(),
++ touchPoint.rect().width(),
++ touchPoint.rect().height(),
++ 0 /* size */);
+ }
+
+ return ev;
+ }
+-
+-EventBuilder::EventInfo *EventBuilder::findInfo(ulong qtTimestamp)
+-{
+- for (int i = 0; i < m_count; ++i) {
+- if (m_eventInfoVector[i].qtTimestamp == qtTimestamp) {
+- return &m_eventInfoVector[i];
+- }
+- }
+- return nullptr;
+-}
+-
+-void EventBuilder::EventInfo::store(const MirInputEvent *iev, ulong qtTimestamp)
+-{
+- this->qtTimestamp = qtTimestamp;
+- deviceId = mir_input_event_get_device_id(iev);
+- if (mir_input_event_has_cookie(iev))
+- {
+- auto cookie_ptr = mir_input_event_get_cookie(iev);
+- cookie.resize(mir_cookie_buffer_size(cookie_ptr));
+- mir_cookie_to_buffer(cookie_ptr, cookie.data(), cookie.size());
+- mir_cookie_release(cookie_ptr);
+- } else {
+- cookie.resize(0);
+- }
+- if (mir_input_event_type_pointer == mir_input_event_get_type(iev))
+- {
+- auto pev = mir_input_event_get_pointer_event(iev);
+- relativeX = mir_pointer_event_axis_value(pev, mir_pointer_axis_relative_x);
+- relativeY = mir_pointer_event_axis_value(pev, mir_pointer_axis_relative_y);
+- }
+-}
+diff --git a/src/platforms/mirserver/eventbuilder.h b/src/platforms/mirserver/eventbuilder.h
+index 708ffd62..aeb462c5 100644
+--- a/src/platforms/mirserver/eventbuilder.h
++++ b/src/platforms/mirserver/eventbuilder.h
+@@ -16,6 +16,7 @@
+
+ #ifndef QTMIR_EVENT_REGISTRY_H
+ #define QTMIR_EVENT_REGISTRY_H
++#include <miroil/event_builder.h>
+
+ #include <QtGlobal>
+ #include <QHoverEvent>
+@@ -25,10 +26,6 @@
+ #include <QTouchEvent>
+ #include <QVector>
+
+-#include <mir/events/event_builders.h>
+-
+-class MirPointerEvent;
+-
+ namespace qtmir {
+
+ /*
+@@ -37,17 +34,13 @@ namespace qtmir {
+ One important feature is that it's able to match a QInputEvent with the MirInputEvent that originated it, so
+ it can make a MirInputEvent version of a QInputEvent containing also information that the latter does not carry,
+ such as relative axis movement for pointer devices.
+- */
+-class EventBuilder {
++*/
++class EventBuilder : public miroil::EventBuilder {
+ public:
+ static EventBuilder *instance();
+ EventBuilder();
+ virtual ~EventBuilder();
+
+- /* Stores information that cannot be carried by QInputEvents so that it can be fully
+- reconstructed later given the same qtTimestamp */
+- void store(const MirInputEvent *mirInputEvent, ulong qtTimestamp);
+-
+ /*
+ Builds a MirEvent version of the given QInputEvent using also extra data from the
+ MirPointerEvent that caused it.
+@@ -69,37 +62,10 @@ public:
+ const QList<QTouchEvent::TouchPoint> &qtTouchPoints,
+ Qt::TouchPointStates /* qtTouchPointStates */,
+ ulong qtTimestamp);
+- class EventInfo {
+- public:
+- void store(const MirInputEvent *mirInputEvent, ulong qtTimestamp);
+- ulong qtTimestamp;
+- MirInputDeviceId deviceId;
+- std::vector<uint8_t> cookie;
+- float relativeX{0};
+- float relativeY{0};
+- };
+-
+- EventInfo *findInfo(ulong qtTimestamp);
+
+ private:
+ mir::EventUPtr makeMirEvent(QInputEvent *qtEvent, int x, int y, MirPointerButtons buttons);
+
+-
+- /*
+- Ring buffer that stores information on recent MirInputEvents that cannot be carried by QInputEvents.
+-
+- When MirInputEvents are dispatched through a QML scene, not all of its information can be carried
+- by QInputEvents. Some information is lost. Thus further on, if we want to transform a QInputEvent back into
+- its original MirInputEvent so that it can be consumed by a mir::scene::Surface and properly handled by mir clients
+- we have to reach out to this EventRegistry to get the missing bits.
+-
+- Given the objective of this EventRegistry (MirInputEvent reconstruction after having gone through QQuickWindow input dispatch
+- as a QInputEvent), it stores information only about the most recent MirInputEvents.
+- */
+- QVector<EventInfo> m_eventInfoVector;
+- int m_nextIndex{0};
+- int m_count{0};
+-
+ static EventBuilder *m_instance;
+ };
+
+diff --git a/src/platforms/mirserver/inputdeviceobserver.cpp b/src/platforms/mirserver/inputdeviceobserver.cpp
+index 60e59c09..3a61e20c 100644
+--- a/src/platforms/mirserver/inputdeviceobserver.cpp
++++ b/src/platforms/mirserver/inputdeviceobserver.cpp
+@@ -14,9 +14,6 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include <mir/input/device.h>
+-#include <mir/input/mir_keyboard_config.h>
+-
+ #include <Qt>
+ #include <QTimer>
+
+@@ -49,12 +46,12 @@ void MirInputDeviceObserver::setKeymap(const QString &keymap)
+
+ void MirInputDeviceObserver::applyKeymap()
+ {
+- Q_FOREACH(const auto &device, m_devices) {
++ Q_FOREACH(auto &device, m_devices) {
+ applyKeymap(device);
+ }
+ }
+
+-void MirInputDeviceObserver::applyKeymap(const std::shared_ptr<mi::Device> &device)
++void MirInputDeviceObserver::applyKeymap(miroil::InputDevice device)
+ {
+ if (!m_keymap.isEmpty()) {
+ const QStringList stringList = m_keymap.split('+', QString::SkipEmptyParts);
+@@ -66,20 +63,11 @@ void MirInputDeviceObserver::applyKeymap(const std::shared_ptr<mi::Device> &devi
+ variant = stringList.at(1);
+ }
+
+- qCDebug(QTMIR_MIR_KEYMAP) << "Applying keymap" << layout << variant << "on" << device->id() << QString::fromStdString(device->name());
+- MirKeyboardConfig oldConfig;
+- mi::Keymap keymap;
+- if (device->keyboard_configuration().is_set()) { // preserve the model and options
+- oldConfig = device->keyboard_configuration().value();
+- keymap.model = oldConfig.device_keymap().model;
+- keymap.options = oldConfig.device_keymap().options;
+- }
+- keymap.layout = layout.toStdString();
+- keymap.variant = variant.toStdString();
++ qCDebug(QTMIR_MIR_KEYMAP) << "Applying keymap" << layout << variant << "on" << device.get_device_id() << QString::fromStdString(device.get_device_name());
+
+ try
+ {
+- device->apply_keyboard_configuration(std::move(keymap));
++ device.apply_keymap(layout.toStdString(), variant.toStdString());
+ qCDebug(QTMIR_MIR_KEYMAP) << "Keymap applied";
+ }
+ catch(std::exception const& e)
+@@ -88,3 +76,25 @@ void MirInputDeviceObserver::applyKeymap(const std::shared_ptr<mi::Device> &devi
+ }
+ }
+ }
++
++void MirInputDeviceObserver::device_added(miroil::InputDevice device)
++{
++ QMutexLocker locker(&m_mutex); // lock so that Qt and Mir don't apply the keymap at the same time
++
++ if (device.is_keyboard() && device.is_alpha_numeric()) {
++ qCDebug(QTMIR_MIR_KEYMAP) << "Device added" << device.get_device_id();
++ m_devices.append(device);
++ applyKeymap(device);
++ }
++}
++
++void MirInputDeviceObserver::device_removed(miroil::InputDevice device)
++{
++ QMutexLocker locker(&m_mutex); // lock so that Qt and Mir don't apply the keymap at the same time
++
++ auto i = m_devices.indexOf(device);
++ if (i >= 0) {
++ qCDebug(QTMIR_MIR_KEYMAP) << "Device removed" << device.get_device_id();
++ m_devices.remove(i);
++ }
++}
+diff --git a/src/platforms/mirserver/inputdeviceobserver.h b/src/platforms/mirserver/inputdeviceobserver.h
+index 1fb56243..c0199389 100644
+--- a/src/platforms/mirserver/inputdeviceobserver.h
++++ b/src/platforms/mirserver/inputdeviceobserver.h
+@@ -14,8 +14,8 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#ifndef INPUTDEVICEOBSERVER_H
+-#define INPUTDEVICEOBSERVER_H
++#ifndef QTMIR_MIR_INPUT_DEVICE_OBSERVER_H
++#define QTMIR_MIR_INPUT_DEVICE_OBSERVER_H
+
+ #include <QObject>
+ #include <QString>
+@@ -23,11 +23,13 @@
+ #include <QMutex>
+ #include <memory>
+
++#include "miroil/input_device_observer.h"
++
+ namespace mir { namespace input { class Device; }}
+
+ namespace qtmir {
+
+-class MirInputDeviceObserver: public QObject
++class MirInputDeviceObserver: public QObject, public miroil::InputDeviceObserver
+ {
+ Q_OBJECT
+ public:
+@@ -39,10 +41,12 @@ private Q_SLOTS:
+
+ protected:
+ void applyKeymap();
+- void applyKeymap(const std::shared_ptr<mir::input::Device> &device);
++ void applyKeymap(miroil::InputDevice device);
++ void device_added(miroil::InputDevice device);
++ void device_removed(miroil::InputDevice device);
+
+ QString m_keymap;
+- QVector<std::shared_ptr<mir::input::Device>> m_devices;
++ QVector<miroil::InputDevice> m_devices;
+ QMutex m_mutex;
+ };
+
+diff --git a/src/platforms/mirserver/logging.cpp b/src/platforms/mirserver/logging.cpp
+index af12e7d5..1bed03d1 100644
+--- a/src/platforms/mirserver/logging.cpp
++++ b/src/platforms/mirserver/logging.cpp
+@@ -26,3 +26,4 @@ Q_LOGGING_CATEGORY(QTMIR_CLIPBOARD, "qtmir.clipboard")
+ Q_LOGGING_CATEGORY(QTMIR_SENSOR_MESSAGES, "qtmir.sensor")
+ Q_LOGGING_CATEGORY(QTMIR_SCREENS, "qtmir.screens")
+ Q_LOGGING_CATEGORY(QTMIR_DBUS, "qtmir.dbus", QtWarningMsg)
++Q_LOGGING_CATEGORY(QTMIR_URLBUILDER, "qtmir.urlbuilder", QtInfoMsg)
+diff --git a/src/platforms/mirserver/logging.h b/src/platforms/mirserver/logging.h
+index 43d5d50f..4f93fe0d 100644
+--- a/src/platforms/mirserver/logging.h
++++ b/src/platforms/mirserver/logging.h
+@@ -28,5 +28,6 @@ Q_DECLARE_LOGGING_CATEGORY(QTMIR_MIR_KEYMAP)
+ Q_DECLARE_LOGGING_CATEGORY(QTMIR_CLIPBOARD)
+ Q_DECLARE_LOGGING_CATEGORY(QTMIR_SCREENS)
+ Q_DECLARE_LOGGING_CATEGORY(QTMIR_DBUS)
++Q_DECLARE_LOGGING_CATEGORY(QTMIR_URLBUILDER)
+
+ #endif // UBUNTU_APPLICATION_PLUGIN_LOGGING_H
+diff --git a/src/platforms/mirserver/miral/CMakeLists.txt b/src/platforms/mirserver/miral/CMakeLists.txt
+deleted file mode 100644
+index 9f254c98..00000000
+--- a/src/platforms/mirserver/miral/CMakeLists.txt
++++ /dev/null
+@@ -1,14 +0,0 @@
+-include_directories(SYSTEM ${MIRSERVER_INCLUDE_DIRS} ${MIRRENDERERGLDEV_INCLUDE_DIRS})
+-
+-include_directories(
+- ${CMAKE_SOURCE_DIR}/include
+-)
+-
+-add_library(miral-prototypes OBJECT
+- persist_display_config.cpp persist_display_config.h
+- mirbuffer.cpp mirbuffer.h
+- ${CMAKE_SOURCE_DIR}/include/qtmir/miral/display_configuration_storage.h
+- edid.cpp ${CMAKE_SOURCE_DIR}/include/qtmir/miral/display_id.h
+- edid.cpp ${CMAKE_SOURCE_DIR}/include/qtmir/miral/edid.h
+- display_configuration_policy.cpp ${CMAKE_SOURCE_DIR}/include/qtmir/miral/display_configuration_policy.h
+-)
+diff --git a/src/platforms/mirserver/miroil/CMakeLists.txt b/src/platforms/mirserver/miroil/CMakeLists.txt
+new file mode 100644
+index 00000000..febd4f0a
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/CMakeLists.txt
+@@ -0,0 +1 @@
++add_subdirectory(src)
+diff --git a/src/platforms/mirserver/miroil/include/miroil/compositor.h b/src/platforms/mirserver/miroil/include/miroil/compositor.h
+new file mode 100644
+index 00000000..2edf40e2
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/compositor.h
+@@ -0,0 +1,40 @@
++/*
++ * Copyright © 2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_COMPOSITOR_H
++#define MIROIL_COMPOSITOR_H
++
++namespace miroil
++{
++
++class Compositor
++{
++ public:
++ virtual ~Compositor();
++
++ Compositor& operator=(Compositor const&) = delete;
++
++ virtual void start() = 0;
++ virtual void stop() = 0;
++
++protected:
++ Compositor() = default;
++ Compositor(Compositor const&) = delete;
++};
++
++}
++
++#endif // MIROIL_COMPOSITOR_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/display_configuration_controller_wrapper.h b/src/platforms/mirserver/miroil/include/miroil/display_configuration_controller_wrapper.h
+new file mode 100644
+index 00000000..6b4f227a
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/display_configuration_controller_wrapper.h
+@@ -0,0 +1,51 @@
++/*
++ * Copyright (C) 2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_DISPLAY_CONFIGURATION_CONTROLLER_WRAPPER_H_
++#define MIROIL_DISPLAY_CONFIGURATION_CONTROLLER_WRAPPER_H_
++
++#include <memory>
++
++namespace mir { namespace shell { class DisplayConfigurationController; } }
++namespace mir { namespace graphics { class DisplayConfiguration; } }
++
++namespace miroil
++{
++
++class DisplayConfigurationControllerWrapper
++{
++public:
++ DisplayConfigurationControllerWrapper(std::shared_ptr<mir::shell::DisplayConfigurationController> const & wrapped);
++ ~DisplayConfigurationControllerWrapper() = default;
++
++ /**
++ * Set the base display configuration.
++ *
++ * This is the display configuration that is used by default, but will be
++ * overridden by a client's requested configuration if that client is focused.
++ *
++ * \param [in] conf The new display configuration to set
++ */
++ void set_base_configuration(std::shared_ptr<mir::graphics::DisplayConfiguration> const& conf);
++
++private:
++ std::shared_ptr<mir::shell::DisplayConfigurationController> const & wrapped;
++};
++
++}
++
++#endif //MIROIL_DISPLAY_CONFIGURATION_CONTROLLER_WRAPPER_H_
++
+diff --git a/src/platforms/mirserver/miroil/include/miroil/display_listener_wrapper.h b/src/platforms/mirserver/miroil/include/miroil/display_listener_wrapper.h
+new file mode 100644
+index 00000000..7c4ced19
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/display_listener_wrapper.h
+@@ -0,0 +1,44 @@
++/*
++ * Copyright (C) 2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_DISPLAY_LISTENER_WRAPPER_H
++#define MIROIL_DISPLAY_LISTENER_WRAPPER_H
++#include <memory>
++
++namespace mir {
++ namespace geometry { struct Rectangle; }
++ namespace compositor { class DisplayListener; }
++}
++
++namespace miroil
++{
++
++class DisplayListenerWrapper
++{
++public:
++ DisplayListenerWrapper(std::shared_ptr<mir::compositor::DisplayListener> const& display_listener);
++ ~DisplayListenerWrapper();
++
++ virtual void add_display(mir::geometry::Rectangle const& area);
++ virtual void remove_display(mir::geometry::Rectangle const& area);
++
++private:
++ std::shared_ptr<mir::compositor::DisplayListener> const& display_listener;
++};
++
++}
++
++#endif /* MIROIL_DISPLAY_LISTENER_WRAPPER_H */
+diff --git a/src/platforms/mirserver/miroil/include/miroil/event_builder.h b/src/platforms/mirserver/miroil/include/miroil/event_builder.h
+new file mode 100644
+index 00000000..184552b3
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/event_builder.h
+@@ -0,0 +1,117 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_EVENT_BUILDER_H
++#define MIROIL_EVENT_BUILDER_H
++
++#include <mir_toolkit/mir_input_device_types.h>
++#include <miral/version.h>
++#if MIRAL_VERSION >= MIR_VERSION_NUMBER(3, 0, 0)
++#include <miral/toolkit_event.h>
++#else
++#include <mir_toolkit/event.h>
++#endif
++
++#include <chrono>
++#include <memory>
++#include <sys/types.h>
++#include <vector>
++
++struct MirEvent;
++struct MirInputEvent;
++
++namespace mir { typedef std::unique_ptr<MirEvent, void(*)(MirEvent*)> EventUPtr; }
++
++namespace miroil
++{
++
++/*
++ Creates Mir input events out of Qt input events
++
++ The class is splitt into miroil::EventBuilder which does the internal mir stuff,
++ and qtmir::EventBuilder which handles the qt stuff.
++
++ One important feature is that it's able to match a QInputEvent with the MirInputEvent that originated it, so
++ it can make a MirInputEvent version of a QInputEvent containing also information that the latter does not carry,
++ such as relative axis movement for pointer devices.
++*/
++
++class EventBuilder {
++
++public:
++ class EventInfo {
++ public:
++ void store(const MirInputEvent *mirInputEvent, ulong qtTimestamp);
++
++ ulong timestamp;
++ MirInputDeviceId device_id;
++ std::vector<uint8_t> cookie;
++ float relative_x{0};
++ float relative_y{0};
++ };
++
++public:
++ EventBuilder();
++ virtual ~EventBuilder();
++
++ // add Touch event
++ void add_touch(MirEvent &event, MirTouchId touch_id, MirTouchAction action,
++ MirTouchTooltype tooltype, float x_axis_value, float y_axis_value,
++ float pressure_value, float touch_major_value, float touch_minor_value, float size_value);
++
++ // Key event
++ mir::EventUPtr make_key_event(MirInputDeviceId device_id, std::chrono::nanoseconds timestamp,
++ std::vector<uint8_t> const& cookie, MirKeyboardAction action, xkb_keysym_t key_code,
++ int scan_code, MirInputEventModifiers modifiers);
++
++ // Touch event
++ mir::EventUPtr make_touch_event(MirInputDeviceId device_id, std::chrono::nanoseconds timestamp,
++ std::vector<uint8_t> const& mac, MirInputEventModifiers modifiers);
++
++ // Pointer event
++ mir::EventUPtr make_pointer_event(MirInputDeviceId device_id, std::chrono::nanoseconds timestamp,
++ std::vector<uint8_t> const& mac, MirInputEventModifiers modifiers, MirPointerAction action,
++ MirPointerButtons buttons_pressed,
++ float x_axis_value, float y_axis_value,
++ float hscroll_value, float vscroll_value,
++ float relative_x_value, float relative_y_value);
++
++ EventInfo * find_info(ulong qtTimestamp);
++
++ /* Stores information that cannot be carried by QInputEvents so that it can be fully
++ reconstructed later given the same qtTimestamp */
++ void store(const MirInputEvent *mirInputEvent, ulong qtTimestamp);
++
++private:
++ /*
++ Ring buffer that stores information on recent MirInputEvents that cannot be carried by QInputEvents.
++
++ When MirInputEvents are dispatched through a QML scene, not all of its information can be carried
++ by QInputEvents. Some information is lost. Thus further on, if we want to transform a QInputEvent back into
++ its original MirInputEvent so that it can be consumed by a mir::scene::Surface and properly handled by mir clients
++ we have to reach out to this EventRegistry to get the missing bits.
++
++ Given the objective of this EventRegistry (MirInputEvent reconstruction after having gone through QQuickWindow input dispatch
++ as a QInputEvent), it stores information only about the most recent MirInputEvents.
++ */
++ std::vector<EventInfo> event_info_vector;
++ size_t next_index{0};
++ size_t event_info_count{0};
++};
++
++}
++
++#endif // MIROIL_EVENT_BUILDER_H
+diff --git a/src/platforms/mirserver/eventdispatch.h b/src/platforms/mirserver/miroil/include/miroil/eventdispatch.h
+similarity index 75%
+rename from src/platforms/mirserver/eventdispatch.h
+rename to src/platforms/mirserver/miroil/include/miroil/eventdispatch.h
+index 5a829c34..16a75e3d 100644
+--- a/src/platforms/mirserver/eventdispatch.h
++++ b/src/platforms/mirserver/miroil/include/miroil/eventdispatch.h
+@@ -14,16 +14,16 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#ifndef QTMIR_EVENTDISPATCH_H
+-#define QTMIR_EVENTDISPATCH_H
+-
+-#include <mir_toolkit/event.h>
++#ifndef MIROIL_EVENTDISPATCH_H
++#define MIROIL_EVENTDISPATCH_H
+
+ namespace miral { class Window; }
+
+-namespace qtmir
++struct MirInputEvent;
++
++namespace miroil
+ {
+-void dispatchInputEvent(const miral::Window& window, const MirInputEvent* event);
++void dispatch_input_event(const miral::Window& window, const MirInputEvent* event);
+ }
+
+-#endif //QTMIR_EVENTDISPATCH_H
++#endif //MIROIL_EVENTDISPATCH_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/input_device.h b/src/platforms/mirserver/miroil/include/miroil/input_device.h
+new file mode 100644
+index 00000000..509956ae
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/input_device.h
+@@ -0,0 +1,52 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++#ifndef MIROIL_INPUT_DEVICE_H
++#define MIROIL_INPUT_DEVICE_H
++#include <mir_toolkit/mir_input_device_types.h>
++#include <memory>
++#include <string>
++
++namespace mir { namespace input { class Device; } }
++
++namespace miroil
++{
++class InputDevice
++{
++public:
++ InputDevice(std::shared_ptr<mir::input::Device> const& device);
++ InputDevice(InputDevice const& src);
++ InputDevice(InputDevice&& src);
++ InputDevice();
++ ~InputDevice();
++
++ auto operator=(InputDevice const& src) -> InputDevice&;
++ auto operator=(InputDevice&& src) -> InputDevice&;
++
++ bool operator==(InputDevice const& other);
++
++ void apply_keymap(std::string const& layout, std::string const& variant);
++ auto get_device_id() -> MirInputDeviceId;
++ auto get_device_name() -> std::string;
++ auto is_keyboard() -> bool;
++ auto is_alpha_numeric() -> bool;
++
++private:
++ std::shared_ptr<mir::input::Device> device;
++};
++
++}
++
++#endif //MIROIL_INPUT_DEVICE_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/input_device_observer.h b/src/platforms/mirserver/miroil/include/miroil/input_device_observer.h
+new file mode 100644
+index 00000000..1dd92d1c
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/input_device_observer.h
+@@ -0,0 +1,40 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++#ifndef MIROIL_INPUT_DEVICE_OBSERVER_H
++#define MIROIL_INPUT_DEVICE_OBSERVER_H
++
++#include <miroil/input_device.h>
++
++#include <memory>
++#include <string>
++
++namespace miroil
++{
++class InputDeviceObserver
++{
++public:
++ InputDeviceObserver() = default;
++ InputDeviceObserver(InputDeviceObserver const&) = delete;
++ InputDeviceObserver& operator=(InputDeviceObserver const&) = delete;
++ virtual ~InputDeviceObserver();
++
++ virtual void device_added(miroil::InputDevice device) = 0;
++ virtual void device_removed(miroil::InputDevice device) = 0;
++};
++
++}
++
++#endif //MIROIL_INPUT_DEVICE_OBSERVER_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/mir_prompt_session.h b/src/platforms/mirserver/miroil/include/miroil/mir_prompt_session.h
+new file mode 100644
+index 00000000..971bdddc
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/mir_prompt_session.h
+@@ -0,0 +1,48 @@
++/*
++ * Copyright © 2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU Lesser General Public License version 2 or 3,
++ * as published by the Free Software Foundation.
++ *
++ * 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 Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_MIR_PROMPT_SESSION_H_
++#define MIROIL_MIR_PROMPT_SESSION_H_
++#include <memory>
++#include <functional>
++
++typedef struct MirPromptSession MirPromptSession;
++typedef void (*MirClientFdCallback)(MirPromptSession *prompt_session, size_t count, int const* fds, void* context);
++
++namespace miroil
++{
++
++class MirPromptSession
++{
++public:
++ MirPromptSession(::MirPromptSession * promptSession);
++ MirPromptSession(MirPromptSession const& src);
++ MirPromptSession(MirPromptSession && src);
++ ~MirPromptSession();
++
++ auto operator=(MirPromptSession const& src) -> MirPromptSession&;
++ auto operator=(MirPromptSession&& src) -> MirPromptSession&;
++
++ bool operator==(MirPromptSession const& other);
++
++ bool new_fds_for_prompt_providers(unsigned int no_of_fds, MirClientFdCallback callback, void * context);
++
++ ::MirPromptSession * prompt_session;
++};
++
++}
++
++#endif /* MIROIL_MIR_PROMPT_SESSION_H_ */
+diff --git a/src/platforms/mirserver/miroil/include/miroil/mir_server_hooks.h b/src/platforms/mirserver/miroil/include/miroil/mir_server_hooks.h
+new file mode 100644
+index 00000000..847ec9de
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/mir_server_hooks.h
+@@ -0,0 +1,57 @@
++/*
++ * Copyright © 2016 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ *
++ * Authored by: Alan Griffiths <alan@octopull.co.uk>
++ */
++
++#ifndef MIROIL_MIRSERVERHOOKS_H
++#define MIROIL_MIRSERVERHOOKS_H
++#include <miroil/input_device_observer.h>
++#include <miroil/prompt_session_listener.h>
++#include <mir/graphics/cursor_image.h>
++#include <functional>
++#include <memory>
++
++namespace mir { class Server; }
++namespace mir { namespace scene { class PromptSessionManager; }}
++namespace mir { namespace graphics { class Display; }}
++namespace mir { namespace shell { class DisplayConfigurationController; } }
++
++namespace miroil
++{
++using CreateNamedCursor = std::function<std::shared_ptr< mir::graphics::CursorImage>(std::string const& name)>;
++
++class MirServerHooks
++{
++public:
++ MirServerHooks();
++
++ void operator()(mir::Server& server);
++
++ auto the_prompt_session_listener() const -> PromptSessionListener*;
++ auto the_prompt_session_manager() const -> std::shared_ptr<mir::scene::PromptSessionManager>;
++ auto the_mir_display() const -> std::shared_ptr<mir::graphics::Display>;
++ auto the_display_configuration_controller() const -> std::shared_ptr<mir::shell::DisplayConfigurationController>;
++ void create_named_cursor(CreateNamedCursor func);
++ void create_input_device_observer(std::shared_ptr<InputDeviceObserver> & observer);
++ void create_prompt_session_listener(std::shared_ptr<PromptSessionListener> listener);
++
++private:
++ struct Self;
++ std::shared_ptr<Self> self;
++};
++}
++
++#endif //MIROIL_MIRSERVERHOOKS_H
+diff --git a/src/platforms/mirserver/miral/mirbuffer.h b/src/platforms/mirserver/miroil/include/miroil/mirbuffer.h
+similarity index 94%
+rename from src/platforms/mirserver/miral/mirbuffer.h
+rename to src/platforms/mirserver/miroil/include/miroil/mirbuffer.h
+index 21656292..c5fab09a 100644
+--- a/src/platforms/mirserver/miral/mirbuffer.h
++++ b/src/platforms/mirserver/miroil/include/miroil/mirbuffer.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2017 Canonical Ltd.
++ * Copyright © 2017-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -14,8 +14,8 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#ifndef MIRAL_GLBUFFER_H
+-#define MIRAL_GLBUFFER_H
++#ifndef MIROIL_GLBUFFER_H
++#define MIROIL_GLBUFFER_H
+
+ #include <mir/geometry/size.h>
+
+@@ -93,4 +93,4 @@ public:
+
+ }
+
+-#endif //MIRAL_GLBUFFER_H
++#endif //MIROIL_GLBUFFER_H
+diff --git a/src/platforms/mirserver/openglcontextfactory.h b/src/platforms/mirserver/miroil/include/miroil/open_gl_context.h
+similarity index 67%
+rename from src/platforms/mirserver/openglcontextfactory.h
+rename to src/platforms/mirserver/miroil/include/miroil/open_gl_context.h
+index 56753005..f05edd6e 100644
+--- a/src/platforms/mirserver/openglcontextfactory.h
++++ b/src/platforms/mirserver/miroil/include/miroil/open_gl_context.h
+@@ -16,27 +16,23 @@
+ * Authored by: Alan Griffiths <alan@octopull.co.uk>
+ */
+
+-#ifndef MIRAL_OPENGLCONTEXTFACTORY_H
+-#define MIRAL_OPENGLCONTEXTFACTORY_H
+-
++#ifndef MIROIL_OPEN_GL_CONTEXT_H
++#define MIROIL_OPEN_GL_CONTEXT_H
++#include <mir/graphics/gl_config.h>
+ #include <memory>
++#include <functional>
+
+-namespace mir { namespace graphics { class Display; }}
+ namespace mir { class Server; }
+
+-class QPlatformOpenGLContext;
+-class QSurfaceFormat;
+-
+-namespace qtmir
++namespace miroil
+ {
+-class OpenGLContextFactory
++class OpenGLContext
+ {
+ public:
+- OpenGLContextFactory();
++ OpenGLContext(mir::graphics::GLConfig* gl_config);
+
+ void operator()(mir::Server& server);
+-
+- QPlatformOpenGLContext *createPlatformOpenGLContext(QSurfaceFormat format, mir::graphics::Display &mirDisplay) const;
++ auto the_open_gl_config() const -> std::shared_ptr<mir::graphics::GLConfig>;
+
+ private:
+ struct Self;
+@@ -44,4 +40,4 @@ private:
+ };
+ }
+
+-#endif //MIRAL_OPENGLCONTEXTFACTORY_H
++#endif //MIROIL_OPEN_GL_CONTEXT_H
+diff --git a/src/platforms/mirserver/miral/persist_display_config.h b/src/platforms/mirserver/miroil/include/miroil/persist_display_config.h
+similarity index 78%
+rename from src/platforms/mirserver/miral/persist_display_config.h
+rename to src/platforms/mirserver/miroil/include/miroil/persist_display_config.h
+index 45705a04..83a25264 100644
+--- a/src/platforms/mirserver/miral/persist_display_config.h
++++ b/src/platforms/mirserver/miroil/include/miroil/persist_display_config.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,16 +16,15 @@
+ * Authored by: Alan Griffiths <alan@octopull.co.uk>
+ */
+
+-#ifndef MIRAL_PERSIST_DISPLAY_CONFIG_H
+-#define MIRAL_PERSIST_DISPLAY_CONFIG_H
++#ifndef MIROIL_PERSIST_DISPLAY_CONFIG_H
++#define MIROIL_PERSIST_DISPLAY_CONFIG_H
+
+ #include <functional>
+ #include <memory>
+
+-namespace mir { class Server; }
++namespace mir { class Server; namespace graphics { class DisplayConfigurationPolicy; }}
+
+-// Prototyping namespace for later incorporation in MirAL
+-namespace miral
++namespace miroil
+ {
+ class DisplayConfigurationPolicy;
+ class DisplayConfigurationStorage;
+@@ -39,7 +38,7 @@ public:
+ auto operator=(PersistDisplayConfig const&) -> PersistDisplayConfig&;
+
+ // TODO factor this out better
+- using DisplayConfigurationPolicyWrapper = std::function<std::shared_ptr<DisplayConfigurationPolicy>()>;
++ using DisplayConfigurationPolicyWrapper = std::function<std::shared_ptr<DisplayConfigurationPolicy>(std::shared_ptr<mir::graphics::DisplayConfigurationPolicy> const& wrapped)>;
+
+ PersistDisplayConfig(std::shared_ptr<DisplayConfigurationStorage> const& storage,
+ DisplayConfigurationPolicyWrapper const& custom_wrapper);
+@@ -50,7 +49,6 @@ private:
+ struct Self;
+ std::shared_ptr<Self> self;
+ };
+-
+ }
+
+-#endif //MIRAL_PERSIST_DISPLAY_CONFIG_H
++#endif //MIROIL_PERSIST_DISPLAY_CONFIG_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/prompt_session_listener.h b/src/platforms/mirserver/miroil/include/miroil/prompt_session_listener.h
+new file mode 100644
+index 00000000..5049a11e
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/prompt_session_listener.h
+@@ -0,0 +1,49 @@
++/*
++ * Copyright © 2016-2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_PROMPT_SESSION_LISTENER_H
++#define MIROIL_PROMPT_SESSION_LISTENER_H
++#include <memory>
++
++namespace mir { namespace scene { class PromptSession; } }
++namespace mir { namespace scene { class Session; } }
++
++namespace miroil {
++
++class PromptSessionListener
++{
++public:
++ virtual ~PromptSessionListener();
++
++ PromptSessionListener& operator=(PromptSessionListener const&) = delete;
++
++ virtual void starting(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) = 0;
++ virtual void stopping(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) = 0;
++ virtual void suspending(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) = 0;
++ virtual void resuming(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) = 0;
++ virtual void prompt_provider_added(mir::scene::PromptSession const& prompt_session,
++ std::shared_ptr<mir::scene::Session> const& prompt_provider) = 0;
++ virtual void prompt_provider_removed(mir::scene::PromptSession const& prompt_session,
++ std::shared_ptr<mir::scene::Session> const& prompt_provider) = 0;
++
++protected:
++ PromptSessionListener() = default;
++ PromptSessionListener(PromptSessionListener const&) = delete;
++};
++
++}
++
++#endif // MIROIL_PROMPT_SESSION_LISTENER_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/prompt_session_manager.h b/src/platforms/mirserver/miroil/include/miroil/prompt_session_manager.h
+new file mode 100644
+index 00000000..2e1a5385
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/prompt_session_manager.h
+@@ -0,0 +1,51 @@
++/*
++ * Copyright © 2016-2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_PROMPT_SESSION_MANAGER_H
++#define MIROIL_PROMPT_SESSION_MANAGER_H
++
++#include <miral/application.h>
++
++#include <memory>
++
++namespace mir { namespace scene { class PromptSessionManager; class PromptSession;} }
++
++namespace miroil {
++
++class PromptSessionManager
++{
++public:
++ PromptSessionManager(std::shared_ptr<mir::scene::PromptSessionManager> const& prompt_session_manager);
++ PromptSessionManager(PromptSessionManager const& src);
++ PromptSessionManager(PromptSessionManager&& src);
++ ~PromptSessionManager();
++
++ auto operator=(PromptSessionManager const& src) -> PromptSessionManager&;
++ auto operator=(PromptSessionManager&& src) -> PromptSessionManager&;
++
++ bool operator==(PromptSessionManager const& other);
++
++ auto application_for(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const -> miral::Application;
++ void resume_prompt_session(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const;
++ void stop_prompt_session(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const;
++ void suspend_prompt_session(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const;
++
++private:
++ std::shared_ptr<mir::scene::PromptSessionManager> prompt_session_manager;
++};
++}
++
++#endif //MIROIL_PROMPT_SESSION_MANAGER_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/set_compositor.h b/src/platforms/mirserver/miroil/include/miroil/set_compositor.h
+new file mode 100644
+index 00000000..10179601
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/set_compositor.h
+@@ -0,0 +1,54 @@
++/*
++ * Copyright © 2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef MIROIL_SET_COMPOSITOR_H
++#define MIROIL_SET_COMPOSITOR_H
++#include <memory>
++#include <functional>
++
++namespace mir { class Server; }
++namespace mir { namespace graphics { class Display; } }
++namespace mir { namespace compositor { class DisplayListener; } }
++
++namespace miroil
++{
++ class Compositor;
++
++// Configure the server for using the Qt compositor
++class SetCompositor
++{
++ using InitFunction = std::function<void(const std::shared_ptr<mir::graphics::Display>& display,
++ const std::shared_ptr<Compositor> & compositor,
++ const std::shared_ptr<mir::compositor::DisplayListener>& displayListener)>;
++
++ using ConstructorFunction = std::function<std::shared_ptr<Compositor>()>;
++
++public:
++ SetCompositor(ConstructorFunction constructor, InitFunction init);
++
++ void operator()(mir::Server& server);
++
++private:
++ struct CompositorImpl;
++
++ std::weak_ptr<CompositorImpl> compositor_impl;
++ ConstructorFunction constructor_function;
++ InitFunction init_function;
++};
++
++}
++
++#endif //MIROIL_SET_COMPOSITOR_H
+diff --git a/src/platforms/mirserver/miroil/include/miroil/surface.h b/src/platforms/mirserver/miroil/include/miroil/surface.h
+new file mode 100644
+index 00000000..1b0dc2db
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/surface.h
+@@ -0,0 +1,77 @@
++/*
++ * Copyright (C) 2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++#ifndef MIROIL_SURFACE_H
++#define MIROIL_SURFACE_H
++#include <memory>
++#include <unordered_map>
++#include <mir_toolkit/mir_input_device_types.h>
++#include <mir_toolkit/common.h>
++#include <mir/graphics/renderable.h>
++
++namespace mir {
++ namespace scene { class Surface; }
++ namespace shell { class InputTargeter; }
++ namespace geometry { struct Rectangle; }
++ namespace graphics { class CursorImage; }
++ namespace compositor { class BufferStream; }
++}
++
++namespace miroil {
++
++class SurfaceObserver;
++class SurfaceObserverImpl;
++
++using CompositorID = void const*;
++
++class Surface
++{
++public:
++ Surface(std::shared_ptr<mir::scene::Surface> wrapped);
++ ~Surface() = default;
++
++ mir::scene::Surface *get_wrapped() const;
++ void add_observer(std::shared_ptr<miroil::SurfaceObserver> const& observer);
++ void remove_observer(std::shared_ptr<miroil::SurfaceObserver> const& observer);
++
++ int buffers_ready_for_compositor(void const* compositor_id) const;
++ mir::graphics::RenderableList generate_renderables(miroil::CompositorID id) const;
++
++
++ bool is_confined_to_window();
++ void set_orientation(MirOrientation orientation);
++
++ void set_confine_pointer_state(MirPointerConfinementState state);
++ std::shared_ptr<mir::scene::Surface> parent() const;
++ /// Top-left corner (of the window frame if present)
++ mir::geometry::Point top_left() const;
++ bool visible() const;
++
++ // TODO a legacy of old interactions and needs removing
++ int configure(MirWindowAttrib attrib, int value);
++ // TODO a legacy of old interactions and needs removing
++ int query(MirWindowAttrib attrib) const;
++ // TODO a legacy of old interactions and needs removing
++ void set_keymap(MirInputDeviceId id, std::string const& model, std::string const& layout,
++ std::string const& variant, std::string const& options);
++
++private:
++ std::shared_ptr<mir::scene::Surface> wrapped;
++ std::unordered_map<std::shared_ptr<miroil::SurfaceObserver>, std::shared_ptr<miroil::SurfaceObserverImpl>> observers;
++};
++
++}
++
++#endif
+diff --git a/src/platforms/mirserver/miroil/include/miroil/surface_observer.h b/src/platforms/mirserver/miroil/include/miroil/surface_observer.h
+new file mode 100644
+index 00000000..97fc1a03
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/include/miroil/surface_observer.h
+@@ -0,0 +1,63 @@
++/*
++ * Copyright © 2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++#include <mir_toolkit/common.h>
++#include <mir/geometry/size.h>
++#include <mir/geometry/rectangle.h>
++#include <mir/graphics/cursor_image.h>
++#include <glm/glm.hpp>
++#include <mir_toolkit/mir_input_device_types.h>
++#include <vector>
++
++namespace mir { namespace scene { class SurfaceObserver; } }
++namespace mir { namespace scene { class Surface; } }
++
++struct MirEvent;
++struct MirInputEvent;
++
++namespace miroil
++{
++
++class SurfaceObserver
++{
++public:
++ SurfaceObserver() = default;
++ SurfaceObserver(SurfaceObserver const&) = delete;
++ SurfaceObserver& operator=(SurfaceObserver const&) = delete;
++ virtual ~SurfaceObserver() = default;
++
++ virtual void attrib_changed(mir::scene::Surface const* surf, MirWindowAttrib attrib, int value) = 0;
++ virtual void window_resized_to(mir::scene::Surface const* surf, mir::geometry::Size const& window_size) = 0;
++ virtual void content_resized_to(mir::scene::Surface const* surf, mir::geometry::Size const& content_size) = 0;
++ virtual void moved_to(mir::scene::Surface const* surf, mir::geometry::Point const& top_left) = 0;
++ virtual void hidden_set_to(mir::scene::Surface const* surf, bool hide) = 0;
++ virtual void frame_posted(mir::scene::Surface const* surf, int frames_available, mir::geometry::Size const& size) = 0;
++ virtual void alpha_set_to(mir::scene::Surface const* surf, float alpha) = 0;
++ virtual void orientation_set_to(mir::scene::Surface const* surf, MirOrientation orientation) = 0;
++ virtual void transformation_set_to(mir::scene::Surface const* surf, glm::mat4 const& t) = 0;
++ virtual void cursor_image_set_to(mir::scene::Surface const* surf, mir::graphics::CursorImage const& image) = 0;
++ virtual void client_surface_close_requested(mir::scene::Surface const* surf) = 0;
++ virtual void keymap_changed(mir::scene::Surface const* surf, MirInputDeviceId id, std::string const& model,
++ std::string const& layout, std::string const& variant, std::string const& options) = 0;
++ virtual void renamed(mir::scene::Surface const* surf, char const* name) = 0;
++ virtual void cursor_image_removed(mir::scene::Surface const* surf) = 0;
++ virtual void placed_relative(mir::scene::Surface const* surf, mir::geometry::Rectangle const& placement) = 0;
++ virtual void input_consumed(mir::scene::Surface const* surf, MirEvent const* event) = 0;
++ virtual void start_drag_and_drop(mir::scene::Surface const* surf, std::vector<uint8_t> const& handle) = 0;
++ virtual void depth_layer_set_to(mir::scene::Surface const* surf, MirDepthLayer depth_layer) = 0;
++ virtual void application_id_set_to(mir::scene::Surface const* surf, std::string const& application_id) = 0;
++};
++
++}
+diff --git a/src/platforms/mirserver/miroil/src/CMakeLists.txt b/src/platforms/mirserver/miroil/src/CMakeLists.txt
+new file mode 100644
+index 00000000..32d7d4ed
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/CMakeLists.txt
+@@ -0,0 +1,39 @@
++add_library(miroil OBJECT
++ compositor.cpp ${MIROIL_INCLUDE_DIRS}/miroil/compositor.h
++ edid.cpp ${qtmir_include}/miroil/edid.h
++ mirbuffer.cpp ${MIROIL_INCLUDE_DIRS}/miroil/mirbuffer.h
++ persist_display_config.cpp ${MIROIL_INCLUDE_DIRS}/miroil/persist_display_config.h
++ display_configuration_policy.cpp ${qtmir_include}/miroil/display_configuration_policy.h
++ display_configuration_controller_wrapper.cpp ${MIROIL_INCLUDE_DIRS}/miroil/display_configuration_controller_wrapper.h
++ display_listener_wrapper.cpp ${MIROIL_INCLUDE_DIRS}/miroil/display_listener_wrapper.h
++ eventdispatch.cpp ${MIROIL_INCLUDE_DIRS}/miroil/eventdispatch.h
++ event_builder.cpp ${MIROIL_INCLUDE_DIRS}/miroil/event_builder.h
++ input_device.cpp ${MIROIL_INCLUDE_DIRS}/miroil/input_device.h
++ input_device_observer.cpp ${MIROIL_INCLUDE_DIRS}/miroil/input_device_observer.h
++ mir_server_hooks.cpp ${MIROIL_INCLUDE_DIRS}/miroil/mir_server_hooks.h
++ mir_prompt_session.cpp ${MIROIL_INCLUDE_DIRS}/miroil/mir_prompt_session.h
++ open_gl_context.cpp ${MIROIL_INCLUDE_DIRS}/miroil/open_gl_context.h
++ prompt_session_listener.cpp ${MIROIL_INCLUDE_DIRS}/miroil/prompt_session_listener.h
++ prompt_session_manager.cpp ${MIROIL_INCLUDE_DIRS}/miroil/prompt_session_manager.h
++ set_compositor.cpp ${MIROIL_INCLUDE_DIRS}/miroil/set_compositor.h
++ surface.cpp ${MIROIL_INCLUDE_DIRS}/miroil/surface.h
++ ${qtmir_include}/miroil/display_configuration_storage.h
++ ${qtmir_include}/miroil/display_id.h
++)
++
++target_include_directories(miroil
++ PUBLIC "${MIROIL_INCLUDE_DIRS}" "${qtmir_include}" "${qtmir_include}/qtmir"
++ PRIVATE ${MIRAL_INCLUDE_DIRS}
++ ${MIRCOMMON_INCLUDE_DIRS}
++ ${MIRSERVER_INCLUDE_DIRS}
++ ${MIRRENDERERGLDEV_INCLUDE_DIRS}
++ ${MIRSERVER_INCLUDE_DIRS}
++)
++
++target_link_libraries(miroil
++ PRIVATE
++ ${MIRAL_LDFLAGS}
++ ${MIRSERVER_LDFLAGS}
++
++ ${EGL_LDFLAGS}
++)
+diff --git a/src/platforms/mirserver/miroil/src/compositor.cpp b/src/platforms/mirserver/miroil/src/compositor.cpp
+new file mode 100644
+index 00000000..eb50aa65
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/compositor.cpp
+@@ -0,0 +1,20 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <miroil/compositor.h>
++
++miroil::Compositor::~Compositor() = default;
++
+diff --git a/src/platforms/mirserver/miroil/src/display_configuration_controller_wrapper.cpp b/src/platforms/mirserver/miroil/src/display_configuration_controller_wrapper.cpp
+new file mode 100644
+index 00000000..9ca49428
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/display_configuration_controller_wrapper.cpp
+@@ -0,0 +1,32 @@
++/*
++ * Copyright (C) 2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <miroil/display_configuration_controller_wrapper.h>
++#include "mir/shell/display_configuration_controller.h"
++
++namespace miroil {
++
++void DisplayConfigurationControllerWrapper::set_base_configuration(std::shared_ptr<mir::graphics::DisplayConfiguration> const& conf)
++{
++ wrapped->set_base_configuration(conf);
++}
++
++DisplayConfigurationControllerWrapper::DisplayConfigurationControllerWrapper(std::shared_ptr<mir::shell::DisplayConfigurationController> const & wrapped)
++ : wrapped(wrapped)
++{
++}
++
++}
+diff --git a/src/platforms/mirserver/miral/display_configuration_policy.cpp b/src/platforms/mirserver/miroil/src/display_configuration_policy.cpp
+similarity index 73%
+rename from src/platforms/mirserver/miral/display_configuration_policy.cpp
+rename to src/platforms/mirserver/miroil/src/display_configuration_policy.cpp
+index c4f5281d..ad746310 100644
+--- a/src/platforms/mirserver/miral/display_configuration_policy.cpp
++++ b/src/platforms/mirserver/miroil/src/display_configuration_policy.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,6 +16,7 @@
+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com>
+ */
+
+-#include "qtmir/miral/display_configuration_policy.h"
++#include "miroil/display_configuration_policy.h"
+
+-miral::DisplayConfigurationPolicy::DisplayConfigurationPolicy() = default;
++miroil::DisplayConfigurationPolicy::DisplayConfigurationPolicy() = default;
++miroil::DisplayConfigurationPolicy::~DisplayConfigurationPolicy() = default;
+diff --git a/src/platforms/mirserver/miroil/src/display_listener_wrapper.cpp b/src/platforms/mirserver/miroil/src/display_listener_wrapper.cpp
+new file mode 100644
+index 00000000..125cc20b
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/display_listener_wrapper.cpp
+@@ -0,0 +1,41 @@
++/*
++ * Copyright (C) 2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++#include "miroil/display_listener_wrapper.h"
++#include "mir/compositor/display_listener.h"
++
++namespace miroil
++{
++
++DisplayListenerWrapper::DisplayListenerWrapper(std::shared_ptr<mir::compositor::DisplayListener> const & display_listener)
++ : display_listener(display_listener)
++{
++}
++
++DisplayListenerWrapper::~DisplayListenerWrapper()
++{
++}
++
++void DisplayListenerWrapper::add_display(mir::geometry::Rectangle const& area)
++{
++ display_listener->add_display(area);
++}
++
++void DisplayListenerWrapper::remove_display(mir::geometry::Rectangle const& area)
++{
++ display_listener->remove_display(area);
++}
++
++}
+diff --git a/src/platforms/mirserver/miral/edid.cpp b/src/platforms/mirserver/miroil/src/edid.cpp
+similarity index 91%
+rename from src/platforms/mirserver/miral/edid.cpp
+rename to src/platforms/mirserver/miroil/src/edid.cpp
+index 0f8f80dc..094cbc8c 100644
+--- a/src/platforms/mirserver/miral/edid.cpp
++++ b/src/platforms/mirserver/miroil/src/edid.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,16 +16,16 @@
+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com>
+ */
+
+-#include "qtmir/miral/edid.h"
++#include "miroil/edid.h"
+
+ #include <cstring>
+ #include <numeric>
+ #include <stdexcept>
+
+-miral::Edid& miral::Edid::parse_data(std::vector<uint8_t> const& data)
++miroil::Edid& miroil::Edid::parse_data(std::vector<uint8_t> const& data)
+ {
+ if (data.size() != 128 && data.size() != 256) {
+- throw std::runtime_error(std::string("Incorrect EDID structure size:") + std::to_string(data.size()));
++ throw std::runtime_error("Incorrect EDID structure size");
+ }
+
+ // check the checksum
+@@ -97,7 +97,7 @@ miral::Edid& miral::Edid::parse_data(std::vector<uint8_t> const& data)
+ return *this;
+ }
+
+-std::string miral::Edid::Descriptor::string_value() const
++std::string miroil::Edid::Descriptor::string_value() const
+ {
+ switch(type) {
+ case Type::monitor_name:
+diff --git a/src/platforms/mirserver/miroil/src/event_builder.cpp b/src/platforms/mirserver/miroil/src/event_builder.cpp
+new file mode 100644
+index 00000000..33d963ce
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/event_builder.cpp
+@@ -0,0 +1,116 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include "miroil/event_builder.h"
++#include "mir_toolkit/events/input/input_event.h"
++#include "mir_toolkit/mir_cookie.h"
++#include "mir/events/event_builders.h"
++
++namespace miroil {
++
++EventBuilder::EventBuilder()
++: event_info_vector(10)
++{
++}
++
++EventBuilder::~EventBuilder() = default;
++
++void EventBuilder::add_touch(MirEvent &event, MirTouchId touch_id, MirTouchAction action,
++ MirTouchTooltype tooltype, float x_axis_value, float y_axis_value,
++ float pressure_value, float touch_major_value, float touch_minor_value, float size_value)
++{
++ mir::events::add_touch(event, touch_id, action, tooltype, x_axis_value, y_axis_value,
++ pressure_value, touch_major_value, touch_minor_value, size_value);
++}
++
++// Key event
++mir::EventUPtr EventBuilder::make_key_event(MirInputDeviceId device_id, std::chrono::nanoseconds timestamp,
++ std::vector<uint8_t> const& cookie, MirKeyboardAction action, xkb_keysym_t key_code,
++ int scan_code, MirInputEventModifiers modifiers)
++{
++ return mir::events::make_event(device_id, timestamp,
++ cookie, action, key_code,
++ scan_code, modifiers);
++}
++
++// Touch event
++mir::EventUPtr EventBuilder::make_touch_event(MirInputDeviceId device_id, std::chrono::nanoseconds timestamp,
++ std::vector<uint8_t> const& mac, MirInputEventModifiers modifiers)
++{
++ return mir::events::make_event(device_id, timestamp,
++ mac, modifiers);
++}
++
++// Pointer event
++mir::EventUPtr EventBuilder::make_pointer_event(MirInputDeviceId device_id, std::chrono::nanoseconds timestamp,
++ std::vector<uint8_t> const& mac, MirInputEventModifiers modifiers, MirPointerAction action,
++ MirPointerButtons buttons_pressed,
++ float x_axis_value, float y_axis_value,
++ float hscroll_value, float vscroll_value,
++ float relative_x_value, float relative_y_value)
++{
++ return mir::events::make_event(device_id, timestamp,
++ mac, modifiers, action,
++ buttons_pressed,
++ x_axis_value, y_axis_value,
++ hscroll_value, vscroll_value,
++ relative_x_value, relative_y_value);
++}
++
++EventBuilder::EventInfo *EventBuilder::find_info(ulong qtTimestamp)
++{
++ for (size_t i = 0; i < event_info_count; ++i) {
++ if (event_info_vector[i].timestamp == qtTimestamp) {
++ return &event_info_vector[i];
++ }
++ }
++ return nullptr;
++}
++
++void EventBuilder::store(const MirInputEvent *mirInputEvent, ulong qtTimestamp)
++{
++ EventInfo &eventInfo = event_info_vector[next_index];
++ eventInfo.store(mirInputEvent, qtTimestamp);
++
++ next_index = (next_index + 1) % event_info_vector.size();
++
++ if (event_info_count < event_info_vector.size()) {
++ ++event_info_count;
++ }
++}
++
++void EventBuilder::EventInfo::store(const MirInputEvent *iev, ulong qtTimestamp)
++{
++ this->timestamp = qtTimestamp;
++ device_id = mir_input_event_get_device_id(iev);
++ if (mir_input_event_has_cookie(iev))
++ {
++ auto cookie_ptr = mir_input_event_get_cookie(iev);
++ cookie.resize(mir_cookie_buffer_size(cookie_ptr));
++ mir_cookie_to_buffer(cookie_ptr, cookie.data(), cookie.size());
++ mir_cookie_release(cookie_ptr);
++ } else {
++ cookie.resize(0);
++ }
++ if (mir_input_event_type_pointer == mir_input_event_get_type(iev))
++ {
++ auto pev = mir_input_event_get_pointer_event(iev);
++ relative_x = mir_pointer_event_axis_value(pev, mir_pointer_axis_relative_x);
++ relative_y = mir_pointer_event_axis_value(pev, mir_pointer_axis_relative_y);
++ }
++}
++
++}
+diff --git a/src/platforms/mirserver/eventdispatch.cpp b/src/platforms/mirserver/miroil/src/eventdispatch.cpp
+similarity index 87%
+rename from src/platforms/mirserver/eventdispatch.cpp
+rename to src/platforms/mirserver/miroil/src/eventdispatch.cpp
+index fa2e36bb..64420575 100644
+--- a/src/platforms/mirserver/eventdispatch.cpp
++++ b/src/platforms/mirserver/miroil/src/eventdispatch.cpp
+@@ -16,12 +16,11 @@
+ * Authored by: Alan Griffiths <alan@octopull.co.uk>
+ */
+
+-#include "eventdispatch.h"
+-
++#include "miroil/eventdispatch.h"
+ #include <miral/window.h>
+ #include <mir/scene/surface.h>
+
+-void qtmir::dispatchInputEvent(const miral::Window& window, const MirInputEvent* event)
++void miroil::dispatch_input_event(const miral::Window& window, const MirInputEvent* event)
+ {
+ auto e = reinterpret_cast<MirEvent const*>(event); // naughty
+
+diff --git a/src/platforms/mirserver/miroil/src/input_device.cpp b/src/platforms/mirserver/miroil/src/input_device.cpp
+new file mode 100644
+index 00000000..4850ee16
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/input_device.cpp
+@@ -0,0 +1,80 @@
++/*
++ * Copyright © 2016-2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <miroil/input_device.h>
++
++#include "mir/flags.h"
++#include "mir/input/device.h"
++#include "mir/input/mir_keyboard_config.h"
++
++miroil::InputDevice::InputDevice(std::shared_ptr<mir::input::Device> const& device)
++: device(device)
++{
++}
++
++miroil::InputDevice::InputDevice(InputDevice const& ) = default;
++
++miroil::InputDevice::InputDevice() = default;
++
++miroil::InputDevice::~InputDevice() = default;
++
++bool miroil::InputDevice::operator==(InputDevice const& other)
++{
++ return device == other.device;
++}
++
++void miroil::InputDevice::apply_keymap(std::string const& layout, std::string const& variant)
++{
++ MirKeyboardConfig oldConfig;
++
++ mir::input::Keymap keymap;
++ if (device->keyboard_configuration().is_set()) { // preserve the model and options
++ oldConfig = device->keyboard_configuration().value();
++ keymap.model = oldConfig.device_keymap().model;
++ keymap.options = oldConfig.device_keymap().options;
++ }
++ keymap.layout = layout;
++ keymap.variant = variant;
++
++ device->apply_keyboard_configuration(std::move(keymap));
++}
++
++
++MirInputDeviceId miroil::InputDevice::get_device_id()
++{
++ return device->id();
++}
++
++std::string miroil::InputDevice::get_device_name()
++{
++ return device->name();
++}
++
++bool miroil::InputDevice::is_keyboard()
++{
++ return mir::contains(device->capabilities(), mir::input::DeviceCapability::keyboard);
++}
++
++bool miroil::InputDevice::is_alpha_numeric()
++{
++ return mir::contains(device->capabilities(), mir::input::DeviceCapability::alpha_numeric);
++}
++
++miroil::InputDevice::InputDevice(InputDevice&& ) = default;
++
++auto miroil::InputDevice::operator=(InputDevice const& src) -> InputDevice& = default;
++
++auto miroil::InputDevice::operator=(InputDevice&& src) -> InputDevice& = default;
+diff --git a/src/platforms/mirserver/miroil/src/input_device_observer.cpp b/src/platforms/mirserver/miroil/src/input_device_observer.cpp
+new file mode 100644
+index 00000000..35c04645
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/input_device_observer.cpp
+@@ -0,0 +1,19 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <miroil/input_device_observer.h>
++
++miroil::InputDeviceObserver::~InputDeviceObserver() = default;
+diff --git a/src/platforms/mirserver/miroil/src/mir_prompt_session.cpp b/src/platforms/mirserver/miroil/src/mir_prompt_session.cpp
+new file mode 100644
+index 00000000..607cac45
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/mir_prompt_session.cpp
+@@ -0,0 +1,34 @@
++#include <miroil/mir_prompt_session.h>
++#include <mir/uncaught.h>
++
++miroil::MirPromptSession::MirPromptSession(::MirPromptSession * prompt_session)
++{
++ this->prompt_session = prompt_session;
++}
++
++miroil::MirPromptSession::MirPromptSession(MirPromptSession const& src) = default;
++miroil::MirPromptSession::MirPromptSession(MirPromptSession && src) = default;
++miroil::MirPromptSession::~MirPromptSession() = default;
++
++auto miroil::MirPromptSession::operator=(MirPromptSession const& src) -> MirPromptSession&
++{
++ prompt_session = src.prompt_session;
++ return *this;
++}
++
++auto miroil::MirPromptSession::operator=(MirPromptSession&& src) -> MirPromptSession&
++{
++ prompt_session = src.prompt_session;
++ return *this;
++}
++
++bool miroil::MirPromptSession::operator==(MirPromptSession const& other)
++{
++ return prompt_session == other.prompt_session;
++}
++
++bool miroil::MirPromptSession::new_fds_for_prompt_providers(unsigned int /*no_of_fds*/, MirClientFdCallback /*callback*/, void * /*context*/)
++{
++// return mir_prompt_session_new_fds_for_prompt_providers(prompt_session, no_of_fds, callback, context);
++ return false;
++}
+diff --git a/src/platforms/mirserver/miroil/src/mir_server_hooks.cpp b/src/platforms/mirserver/miroil/src/mir_server_hooks.cpp
+new file mode 100644
+index 00000000..3ece6f67
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/mir_server_hooks.cpp
+@@ -0,0 +1,252 @@
++/*
++ * Copyright © 2016 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ *
++ * Authored by: Alan Griffiths <alan@octopull.co.uk>
++ */
++
++#include <miroil/mir_server_hooks.h>
++
++// mir
++#include <mir/server.h>
++#include <mir/graphics/cursor.h>
++#include <mir/scene/prompt_session_listener.h>
++#include <mir/input/input_device_hub.h>
++#include <mir/input/input_device_observer.h>
++#include <mir/input/cursor_images.h>
++#include <mir/version.h>
++
++#include <stdexcept>
++
++namespace mg = mir::graphics;
++namespace ms = mir::scene;
++
++namespace
++{
++struct PromptSessionListenerImpl : mir::scene::PromptSessionListener
++{
++ PromptSessionListenerImpl(std::shared_ptr<miroil::PromptSessionListener> const& listener) : listener(listener) {};
++ ~PromptSessionListenerImpl();
++
++ void starting(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void stopping(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void suspending(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void resuming(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++
++ void prompt_provider_added(mir::scene::PromptSession const& prompt_session,
++ std::shared_ptr<mir::scene::Session> const& prompt_provider) override;
++ void prompt_provider_removed(mir::scene::PromptSession const& prompt_session,
++ std::shared_ptr<mir::scene::Session> const& prompt_provider) override;
++
++private:
++ std::shared_ptr<miroil::PromptSessionListener> const listener;
++};
++
++struct MirInputDeviceObserverImpl : mir::input::InputDeviceObserver
++{
++public:
++ MirInputDeviceObserverImpl(std::shared_ptr<miroil::InputDeviceObserver> & observer) : observer(observer) {};
++
++ void device_added(std::shared_ptr<mir::input::Device> const& device) override;
++ void device_changed(std::shared_ptr<mir::input::Device> const& /*device*/) override {}
++ void device_removed(std::shared_ptr<mir::input::Device> const& device) override;
++ void changes_complete() override {}
++
++private:
++ std::shared_ptr<miroil::InputDeviceObserver> observer;
++};
++
++struct HiddenCursorWrapper : mg::Cursor
++{
++ HiddenCursorWrapper(std::shared_ptr<mg::Cursor> const& wrapped) :
++ wrapped{wrapped} { wrapped->hide(); }
++#if MIR_SERVER_VERSION < MIR_VERSION_NUMBER(2, 3, 0)
++ void show() override { }
++#endif
++ void show(mg::CursorImage const&) override { }
++ void hide() override { wrapped->hide(); }
++
++ void move_to(mir::geometry::Point position) override { wrapped->move_to(position); }
++
++private:
++ std::shared_ptr<mg::Cursor> const wrapped;
++};
++}
++
++class MirCursorImages : public mir::input::CursorImages
++{
++public:
++ MirCursorImages(miroil::CreateNamedCursor func);
++
++ std::shared_ptr<mir::graphics::CursorImage> image(const std::string &cursor_name,
++ const mir::geometry::Size &size) override;
++
++private:
++ miroil::CreateNamedCursor create_func;
++};
++
++MirCursorImages::MirCursorImages(miroil::CreateNamedCursor func)
++{
++ create_func = func;
++}
++
++auto MirCursorImages::image(const std::string &cursor_name, const mir::geometry::Size &)
++-> std::shared_ptr<mir::graphics::CursorImage>
++{
++ return create_func(cursor_name);
++}
++
++struct miroil::MirServerHooks::Self
++{
++ std::shared_ptr<miroil::PromptSessionListener> prompt_session_listener;
++ std::weak_ptr<PromptSessionListenerImpl> prompt_session_listener_impl;
++ std::weak_ptr<mir::graphics::Display> mir_display;
++ std::weak_ptr<mir::shell::DisplayConfigurationController> mir_display_configuration_controller;
++ std::weak_ptr<mir::scene::PromptSessionManager> mir_prompt_session_manager;
++ std::weak_ptr<mir::input::InputDeviceHub> input_device_hub;
++ CreateNamedCursor create_cursor;
++};
++
++miroil::MirServerHooks::MirServerHooks() :
++ self{std::make_shared<Self>()}
++{
++}
++
++void miroil::MirServerHooks::operator()(mir::Server& server)
++{
++ if (self->create_cursor) {
++ server.override_the_cursor_images([this]
++ { return std::make_shared<MirCursorImages>(self->create_cursor); });
++ }
++
++ server.wrap_cursor([&](std::shared_ptr<mg::Cursor> const& wrapped)
++ { return std::make_shared<HiddenCursorWrapper>(wrapped); });
++
++ if (self->prompt_session_listener) {
++ server.override_the_prompt_session_listener([this]
++ {
++ auto const result = std::make_shared<PromptSessionListenerImpl>(self->prompt_session_listener);
++ self->prompt_session_listener_impl = result;
++ return result;
++ });
++ }
++
++ server.add_init_callback([this, &server]
++ {
++ self->mir_display = server.the_display();
++ self->mir_display_configuration_controller = server.the_display_configuration_controller();
++ self->mir_prompt_session_manager = server.the_prompt_session_manager();
++ self->input_device_hub = server.the_input_device_hub();
++ });
++}
++
++auto miroil::MirServerHooks::the_prompt_session_listener() const
++-> miroil::PromptSessionListener*
++{
++ return self->prompt_session_listener.get();
++}
++
++auto miroil::MirServerHooks::the_prompt_session_manager() const
++-> std::shared_ptr<mir::scene::PromptSessionManager>
++{
++ if (auto result = self->mir_prompt_session_manager.lock())
++ return result;
++
++ throw std::logic_error("No prompt session manager available. Server not running?");
++}
++
++auto miroil::MirServerHooks::the_mir_display() const
++-> std::shared_ptr<mir::graphics::Display>
++{
++ if (auto result = self->mir_display.lock())
++ return result;
++
++ throw std::logic_error("No display available. Server not running?");
++}
++
++auto miroil::MirServerHooks::the_display_configuration_controller() const
++-> std::shared_ptr<mir::shell::DisplayConfigurationController>
++{
++ if (auto result = self->mir_display_configuration_controller.lock())
++ return result;
++
++ throw std::logic_error("No input device hub available. Server not running?");
++}
++
++void miroil::MirServerHooks::create_named_cursor(CreateNamedCursor func)
++{
++ self->create_cursor = func;
++}
++
++void miroil::MirServerHooks::create_input_device_observer(std::shared_ptr<miroil::InputDeviceObserver> & observer)
++{
++ if (auto result = self->input_device_hub.lock()) {
++ result->add_observer(std::make_shared<MirInputDeviceObserverImpl>(observer));
++ return;
++ }
++
++ throw std::logic_error("No input device hub available. Server not running?");
++}
++
++void miroil::MirServerHooks::create_prompt_session_listener(std::shared_ptr<miroil::PromptSessionListener> listener)
++{
++ self->prompt_session_listener = listener;
++}
++
++PromptSessionListenerImpl::~PromptSessionListenerImpl() = default;
++
++void PromptSessionListenerImpl::starting(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ listener->starting(prompt_session);
++}
++
++void PromptSessionListenerImpl::stopping(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ listener->stopping(prompt_session);
++}
++
++void PromptSessionListenerImpl::suspending(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ listener->suspending(prompt_session);
++}
++
++void PromptSessionListenerImpl::resuming(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ listener->resuming(prompt_session);
++}
++
++void PromptSessionListenerImpl::prompt_provider_added(ms::PromptSession const& prompt_session,
++ std::shared_ptr<ms::Session> const& prompt_provider)
++{
++ listener->prompt_provider_added(prompt_session, prompt_provider);
++}
++
++void PromptSessionListenerImpl::prompt_provider_removed(ms::PromptSession const& prompt_session,
++ std::shared_ptr<ms::Session> const& prompt_provider)
++{
++ listener->prompt_provider_removed(prompt_session, prompt_provider);
++}
++
++void MirInputDeviceObserverImpl::device_added(const std::shared_ptr<mir::input::Device> &device)
++{
++ observer->device_added(miroil::InputDevice(device));
++}
++
++void MirInputDeviceObserverImpl::device_removed(const std::shared_ptr<mir::input::Device> &device)
++{
++ if (device) {
++ observer->device_removed(miroil::InputDevice(device));
++ }
++}
++
+diff --git a/src/platforms/mirserver/miral/mirbuffer.cpp b/src/platforms/mirserver/miroil/src/mirbuffer.cpp
+similarity index 97%
+rename from src/platforms/mirserver/miral/mirbuffer.cpp
+rename to src/platforms/mirserver/miroil/src/mirbuffer.cpp
+index 8a6790c4..9710365b 100644
+--- a/src/platforms/mirserver/miral/mirbuffer.cpp
++++ b/src/platforms/mirserver/miroil/src/mirbuffer.cpp
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright 2021 UBports Foundation.
+- * Copyright © 2017 Canonical Ltd.
++ * Copyright © 2017-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -15,10 +15,10 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include "mirbuffer.h"
++#include "miroil/mirbuffer.h"
+
+ #include <mir/graphics/buffer.h>
+-#include "mir/graphics/texture.h"
++#include <mir/graphics/texture.h>
+ #include <mir/renderer/gl/texture_source.h>
+
+ #include <stdexcept>
+diff --git a/src/platforms/mirserver/openglcontextfactory.cpp b/src/platforms/mirserver/miroil/src/open_gl_context.cpp
+similarity index 51%
+rename from src/platforms/mirserver/openglcontextfactory.cpp
+rename to src/platforms/mirserver/miroil/src/open_gl_context.cpp
+index 1e77ab7a..271d9cc8 100644
+--- a/src/platforms/mirserver/openglcontextfactory.cpp
++++ b/src/platforms/mirserver/miroil/src/open_gl_context.cpp
+@@ -16,36 +16,37 @@
+ * Authored by: Alan Griffiths <alan@octopull.co.uk>
+ */
+
+-#include "openglcontextfactory.h"
+-
+-// local
+-#include "mirglconfig.h"
+-#include "miropenglcontext.h"
++#include "miroil/open_gl_context.h"
++#include <stdexcept>
+
+ // mir
+ #include <mir/server.h>
+-
+-struct qtmir::OpenGLContextFactory::Self
++
++struct miroil::OpenGLContext::Self
+ {
+- std::shared_ptr<MirGLConfig> m_glConfig;
++ Self(mir::graphics::GLConfig* gl_config)
++ : gl_config(gl_config)
++ {
++ }
++
++ std::shared_ptr<mir::graphics::GLConfig> const gl_config;
+ };
+
+-qtmir::OpenGLContextFactory::OpenGLContextFactory() :
+- self{std::make_shared<Self>()}
+-{
++miroil::OpenGLContext::OpenGLContext(mir::graphics::GLConfig* gl_config)
++: self{std::make_shared<Self>(gl_config)}
++{
+ }
+
+-void qtmir::OpenGLContextFactory::operator()(mir::Server& server)
++void miroil::OpenGLContext::operator()(mir::Server& server)
+ {
+ server.override_the_gl_config([this]
+- { return self->m_glConfig = std::make_shared<MirGLConfig>(); });
++ { return self->gl_config; }
++ );
+ }
+
+-QPlatformOpenGLContext *qtmir::OpenGLContextFactory::createPlatformOpenGLContext(
+- QSurfaceFormat format, mir::graphics::Display &mirDisplay) const
++auto miroil::OpenGLContext::the_open_gl_config() const
++-> std::shared_ptr<mir::graphics::GLConfig>
+ {
+- if (!self->m_glConfig)
+- throw std::logic_error("No gl config available. Server not running?");
+-
+- return new MirOpenGLContext(mirDisplay, *self->m_glConfig, format);
++ return self->gl_config;
+ }
++
+diff --git a/src/platforms/mirserver/miral/persist_display_config.cpp b/src/platforms/mirserver/miroil/src/persist_display_config.cpp
+similarity index 74%
+rename from src/platforms/mirserver/miral/persist_display_config.cpp
+rename to src/platforms/mirserver/miroil/src/persist_display_config.cpp
+index 2bfb98cc..bf23bbb2 100644
+--- a/src/platforms/mirserver/miral/persist_display_config.cpp
++++ b/src/platforms/mirserver/miroil/src/persist_display_config.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright © 2016 Canonical Ltd.
++ * Copyright © 2016-2020 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3,
+@@ -16,45 +16,42 @@
+ * Authored by: Alan Griffiths <alan@octopull.co.uk>
+ */
+
+-#include "persist_display_config.h"
+-#include "qtmir/miral/display_configuration_policy.h"
+-#include "qtmir/miral/display_configuration_storage.h"
+-#include "qtmir/miral/edid.h"
++#include "miroil/persist_display_config.h"
++#include "miroil/display_configuration_policy.h"
++#include "miroil/display_configuration_storage.h"
+
+-#include <mir/graphics/display_configuration_policy.h>
+ #include <mir/graphics/display_configuration.h>
+ #include <mir/graphics/display_configuration_observer.h>
++#include <mir/graphics/display_configuration_policy.h>
+ #include <mir/observer_registrar.h>
+ #include <mir/server.h>
+-#include <mir/version.h>
++#include <mir/log.h>
+
+-#include <stdexcept>
++#include <boost/throw_exception.hpp>
+
+-// shouldn't really import this
+-#include <qglobal.h>
++#include <stdexcept>
+
+ namespace mg = mir::graphics;
+
+ namespace
+ {
+-
+ struct PersistDisplayConfigPolicy
+ {
+- PersistDisplayConfigPolicy(std::shared_ptr<miral::DisplayConfigurationStorage> const& storage) :
++ PersistDisplayConfigPolicy(std::shared_ptr<miroil::DisplayConfigurationStorage> const& storage) :
+ storage(storage) {}
+ virtual ~PersistDisplayConfigPolicy() = default;
+ PersistDisplayConfigPolicy(PersistDisplayConfigPolicy const&) = delete;
+ auto operator=(PersistDisplayConfigPolicy const&) -> PersistDisplayConfigPolicy& = delete;
+
+ void apply_to(mg::DisplayConfiguration& conf,
+- miral::DisplayConfigurationPolicy& wrapped_policy,
+- miral::DisplayConfigurationPolicy& custom_policy);
++ miroil::DisplayConfigurationPolicy& wrapped_policy,
++ miroil::DisplayConfigurationPolicy& custom_policy);
+ void save_config(mg::DisplayConfiguration const& base_conf);
+
+- std::shared_ptr<miral::DisplayConfigurationStorage> storage;
++ std::shared_ptr<miroil::DisplayConfigurationStorage> storage;
+ };
+
+-struct MiralWrappedMirDisplayConfigurationPolicy : miral::DisplayConfigurationPolicy
++struct MiralWrappedMirDisplayConfigurationPolicy : miroil::DisplayConfigurationPolicy
+ {
+ MiralWrappedMirDisplayConfigurationPolicy(std::shared_ptr<mg::DisplayConfigurationPolicy> const& self) :
+ self{self}
+@@ -72,8 +69,8 @@ struct DisplayConfigurationPolicyAdapter : mg::DisplayConfigurationPolicy
+ {
+ DisplayConfigurationPolicyAdapter(
+ std::shared_ptr<PersistDisplayConfigPolicy> const& self,
+- std::shared_ptr<miral::DisplayConfigurationPolicy> const& wrapped_policy,
+- std::shared_ptr<miral::DisplayConfigurationPolicy> const& custom_policy) :
++ std::shared_ptr<miroil::DisplayConfigurationPolicy> const& wrapped_policy,
++ std::shared_ptr<miroil::DisplayConfigurationPolicy> const& custom_policy) :
+ self{self}, wrapped_policy{wrapped_policy}, custom_policy{custom_policy}
+ {}
+
+@@ -83,8 +80,8 @@ struct DisplayConfigurationPolicyAdapter : mg::DisplayConfigurationPolicy
+ }
+
+ std::shared_ptr<PersistDisplayConfigPolicy> const self;
+- std::shared_ptr<miral::DisplayConfigurationPolicy> const wrapped_policy;
+- std::shared_ptr<miral::DisplayConfigurationPolicy> const custom_policy;
++ std::shared_ptr<miroil::DisplayConfigurationPolicy> const wrapped_policy;
++ std::shared_ptr<miroil::DisplayConfigurationPolicy> const custom_policy;
+ };
+
+ struct DisplayConfigurationObserver : mg::DisplayConfigurationObserver
+@@ -101,16 +98,14 @@ struct DisplayConfigurationObserver : mg::DisplayConfigurationObserver
+ std::shared_ptr<mg::DisplayConfiguration const> const& /*failed_fallback*/,
+ std::exception const& /*error*/) override {}
+
+-#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(1, 5, 0)
+ void configuration_updated_for_session(
+ std::shared_ptr<mir::scene::Session> const&,
+ std::shared_ptr<mg::DisplayConfiguration const> const&) override {}
+-#endif
+ };
+
+-miral::DisplayConfigurationOptions::DisplayMode current_mode_of(mg::DisplayConfigurationOutput const& output)
++miroil::DisplayConfigurationOptions::DisplayMode current_mode_of(mg::DisplayConfigurationOutput const& output)
+ {
+- miral::DisplayConfigurationOptions::DisplayMode mode;
++ miroil::DisplayConfigurationOptions::DisplayMode mode;
+ if (output.current_mode_index >= output.modes.size()) return mode;
+
+ auto const& current_mode = output.modes[output.current_mode_index];
+@@ -118,9 +113,15 @@ miral::DisplayConfigurationOptions::DisplayMode current_mode_of(mg::DisplayConfi
+ mode.refresh_rate = current_mode.vrefresh_hz;
+ return mode;
+ }
++
++// From Qt
++inline bool qFuzzyCompare(double p1, double p2)
++{
++ return (std::abs(p1 - p2) * 1000000000000. <= std::min(std::abs(p1), std::abs(p2)));
++}
+ }
+
+-struct miral::PersistDisplayConfig::Self : PersistDisplayConfigPolicy, DisplayConfigurationObserver
++struct miroil::PersistDisplayConfig::Self : PersistDisplayConfigPolicy, DisplayConfigurationObserver
+ {
+ Self(std::shared_ptr<DisplayConfigurationStorage> const& storage,
+ DisplayConfigurationPolicyWrapper const& custom_wrapper) :
+@@ -133,36 +134,34 @@ struct miral::PersistDisplayConfig::Self : PersistDisplayConfigPolicy, DisplayCo
+ {
+ save_config(*base_config);
+ }
+-#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(1, 5, 0)
++
+ void session_configuration_applied(std::shared_ptr<mir::scene::Session> const&,
+- std::shared_ptr<mg::DisplayConfiguration> const&){}
+- void session_configuration_removed(std::shared_ptr<mir::scene::Session> const&) {}
+-#else
+- void session_configuration_applied(std::shared_ptr<mir::frontend::Session> const&,
+- std::shared_ptr<mg::DisplayConfiguration> const&){}
+- void session_configuration_removed(std::shared_ptr<mir::frontend::Session> const&) {}
+-#endif
++ std::shared_ptr<mg::DisplayConfiguration> const&) override {}
++ void session_configuration_removed(std::shared_ptr<mir::scene::Session> const&) override {}
++ void configuration_updated_for_session(
++ std::shared_ptr<mir::scene::Session> const&,
++ std::shared_ptr<mg::DisplayConfiguration const> const&) override {}
+ };
+
+-miral::PersistDisplayConfig::PersistDisplayConfig(std::shared_ptr<DisplayConfigurationStorage> const& storage,
++miroil::PersistDisplayConfig::PersistDisplayConfig(std::shared_ptr<DisplayConfigurationStorage> const& storage,
+ DisplayConfigurationPolicyWrapper const& custom_wrapper) :
+ self{std::make_shared<Self>(storage, custom_wrapper)}
+ {
+ }
+
+-miral::PersistDisplayConfig::~PersistDisplayConfig() = default;
++miroil::PersistDisplayConfig::~PersistDisplayConfig() = default;
+
+-miral::PersistDisplayConfig::PersistDisplayConfig(PersistDisplayConfig const&) = default;
++miroil::PersistDisplayConfig::PersistDisplayConfig(PersistDisplayConfig const&) = default;
+
+-auto miral::PersistDisplayConfig::operator=(PersistDisplayConfig const&) -> PersistDisplayConfig& = default;
++auto miroil::PersistDisplayConfig::operator=(PersistDisplayConfig const&) -> PersistDisplayConfig& = default;
+
+-void miral::PersistDisplayConfig::operator()(mir::Server& server)
++void miroil::PersistDisplayConfig::operator()(mir::Server& server)
+ {
+ server.wrap_display_configuration_policy(
+ [this](std::shared_ptr<mg::DisplayConfigurationPolicy> const& wrapped)
+ -> std::shared_ptr<mg::DisplayConfigurationPolicy>
+ {
+- auto custom_wrapper = self->custom_wrapper();
++ auto custom_wrapper = self->custom_wrapper(wrapped);
+ return std::make_shared<DisplayConfigurationPolicyAdapter>(self,
+ std::make_shared<MiralWrappedMirDisplayConfigurationPolicy>(wrapped),
+ custom_wrapper);
+@@ -174,8 +173,8 @@ void miral::PersistDisplayConfig::operator()(mir::Server& server)
+
+ void PersistDisplayConfigPolicy::apply_to(
+ mg::DisplayConfiguration& conf,
+- miral::DisplayConfigurationPolicy& wrapped_policy,
+- miral::DisplayConfigurationPolicy& custom_policy)
++ miroil::DisplayConfigurationPolicy& wrapped_policy,
++ miroil::DisplayConfigurationPolicy& custom_policy)
+ {
+ // first apply the policy we wrapped by setting a custom policy
+ wrapped_policy.apply_to(conf);
+@@ -183,14 +182,14 @@ void PersistDisplayConfigPolicy::apply_to(
+ custom_policy.apply_to(conf);
+
+ if (!storage) {
+- throw std::runtime_error("No display configuration storage supplied.");
++ BOOST_THROW_EXCEPTION(std::runtime_error("No display configuration storage supplied."));
+ }
+
+ conf.for_each_output([this, &conf](mg::UserDisplayConfigurationOutput& output) {
+ if (!output.connected) return;
+
+ try {
+- miral::DisplayId display_id;
++ miroil::DisplayId display_id;
+ // FIXME - output.edid should be std::vector<uint8_t>, not std::vector<uint8_t const>
+ display_id.edid.parse_data(reinterpret_cast<std::vector<uint8_t> const&>(output.edid));
+ display_id.output_id = output.id;
+@@ -198,7 +197,7 @@ void PersistDisplayConfigPolicy::apply_to(
+ // TODO if the h/w profile (by some definition) has changed, then apply corresponding saved config (if any).
+ // TODO Otherwise...
+
+- miral::DisplayConfigurationOptions config;
++ miroil::DisplayConfigurationOptions config;
+ if (storage->load(display_id, config)) {
+
+ if (config.mode.is_set()) {
+@@ -217,7 +216,7 @@ void PersistDisplayConfigPolicy::apply_to(
+ }
+
+ uint output_index = 0;
+- conf.for_each_output([this, &output, config, &output_index](mg::DisplayConfigurationOutput const& find_output) {
++ conf.for_each_output([&output, config, &output_index](mg::DisplayConfigurationOutput const& find_output) {
+ if (output_index == config.clone_output_index.value()) {
+ output.top_left = find_output.top_left;
+ }
+@@ -243,15 +242,15 @@ void PersistDisplayConfigPolicy::save_config(mg::DisplayConfiguration const& con
+ if (!output.connected) return;
+
+ try {
+- miral::DisplayId display_id;
++ miroil::DisplayId display_id;
+ // FIXME - output.edid should be std::vector<uint8_t>, not std::vector<uint8_t const>
+ display_id.edid.parse_data(reinterpret_cast<std::vector<uint8_t> const&>(output.edid));
+ display_id.output_id = output.id;
+
+- miral::DisplayConfigurationOptions config;
++ miroil::DisplayConfigurationOptions config;
+
+ uint output_index = 0;
+- conf.for_each_output([this, output, &config, &output_index](mg::DisplayConfigurationOutput const& find_output) {
++ conf.for_each_output([output, &config, &output_index](mg::DisplayConfigurationOutput const& find_output) {
+ if (!config.clone_output_index.is_set() && output.top_left == find_output.top_left) {
+ config.clone_output_index = output_index;
+ }
+diff --git a/src/platforms/mirserver/miroil/src/prompt_session_listener.cpp b/src/platforms/mirserver/miroil/src/prompt_session_listener.cpp
+new file mode 100644
+index 00000000..46c6e0f0
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/prompt_session_listener.cpp
+@@ -0,0 +1,19 @@
++/*
++ * Copyright (C) 2016-2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <miroil/prompt_session_listener.h>
++
++miroil::PromptSessionListener::~PromptSessionListener() = default;
+diff --git a/src/platforms/mirserver/miroil/src/prompt_session_manager.cpp b/src/platforms/mirserver/miroil/src/prompt_session_manager.cpp
+new file mode 100644
+index 00000000..7dd86f82
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/prompt_session_manager.cpp
+@@ -0,0 +1,54 @@
++/*
++ * Copyright © 2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include "miroil/prompt_session_manager.h"
++#include "mir/scene/prompt_session_manager.h"
++
++miroil::PromptSessionManager::PromptSessionManager(std::shared_ptr<mir::scene::PromptSessionManager> const& prompt_session_manager)
++: prompt_session_manager{prompt_session_manager}
++{
++}
++
++miroil::PromptSessionManager::PromptSessionManager(PromptSessionManager&& /*src*/) = default;
++
++miroil::PromptSessionManager::PromptSessionManager(PromptSessionManager const& /*src*/) = default;
++
++miroil::PromptSessionManager::~PromptSessionManager() = default;
++
++bool miroil::PromptSessionManager::operator==(PromptSessionManager const& other)
++{
++ return prompt_session_manager == other.prompt_session_manager;
++}
++
++miral::Application miroil::PromptSessionManager::application_for(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const
++{
++ return prompt_session_manager->application_for(prompt_session);
++}
++
++void miroil::PromptSessionManager::stop_prompt_session(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const
++{
++ prompt_session_manager->stop_prompt_session(prompt_session);
++}
++
++void miroil::PromptSessionManager::suspend_prompt_session(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const
++{
++ prompt_session_manager->suspend_prompt_session(prompt_session);
++}
++
++void miroil::PromptSessionManager::resume_prompt_session(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) const
++{
++ prompt_session_manager->resume_prompt_session(prompt_session);
++}
+diff --git a/src/platforms/mirserver/miroil/src/set_compositor.cpp b/src/platforms/mirserver/miroil/src/set_compositor.cpp
+new file mode 100644
+index 00000000..a9f524c2
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/set_compositor.cpp
+@@ -0,0 +1,88 @@
++/*
++ * Copyright © 2021 Canonical Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License version 3,
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include "miroil/set_compositor.h"
++#include "miroil/compositor.h"
++#include <stdexcept>
++
++// mir
++#include <mir/server.h>
++#include <mir/shell/shell.h>
++#include <mir/compositor/compositor.h>
++
++namespace miroil {
++
++struct SetCompositor::CompositorImpl : public mir::compositor::Compositor
++{
++ CompositorImpl(const std::shared_ptr<miroil::Compositor> & compositor);
++
++ auto get_wrapped() -> std::shared_ptr<miroil::Compositor>;
++ void start();
++ void stop();
++
++ std::shared_ptr<miroil::Compositor> custom_compositor;
++};
++
++SetCompositor::CompositorImpl::CompositorImpl(const std::shared_ptr<miroil::Compositor> & compositor)
++: custom_compositor(compositor)
++{
++}
++
++auto SetCompositor::CompositorImpl::get_wrapped()
++-> std::shared_ptr<miroil::Compositor>
++{
++ return custom_compositor;
++}
++
++
++void SetCompositor::CompositorImpl::start()
++{
++ return custom_compositor->start();
++}
++
++void SetCompositor::CompositorImpl::stop()
++{
++ return custom_compositor->stop();
++}
++
++SetCompositor::SetCompositor(ConstructorFunction constr, InitFunction init)
++ : constructor_function(constr), init_function(init)
++{
++}
++
++void SetCompositor::operator()(mir::Server& server)
++{
++ server.override_the_compositor([this]
++ {
++ auto result = std::make_shared<CompositorImpl>(constructor_function());
++ compositor_impl = result;
++ return result;
++ });
++
++ server.add_init_callback([&, this]
++ {
++ if (auto const comp = compositor_impl.lock())
++ {
++ init_function(server.the_display(), comp->get_wrapped(), server.the_shell());
++ }
++ else
++ {
++ throw std::logic_error("No m_compositor available. Server not running?");
++ }
++ });
++}
++
++}
+diff --git a/src/platforms/mirserver/miroil/src/surface.cpp b/src/platforms/mirserver/miroil/src/surface.cpp
+new file mode 100644
+index 00000000..bdc87f51
+--- /dev/null
++++ b/src/platforms/mirserver/miroil/src/surface.cpp
+@@ -0,0 +1,267 @@
++/*
++ * Copyright (C) 2021 Canonical, Ltd.
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++#include <miroil/surface.h>
++#include <miroil/surface_observer.h>
++#include "mir/scene/surface.h"
++#include "mir/scene/surface_observer.h"
++#include "mir/log.h"
++#include "mir/version.h"
++
++class miroil::SurfaceObserverImpl : public mir::scene::SurfaceObserver
++{
++public:
++ SurfaceObserverImpl(std::shared_ptr<miroil::SurfaceObserver> const &wrapped);
++ virtual ~SurfaceObserverImpl();
++
++ void alpha_set_to(mir::scene::Surface const *surf, float alpha) override;
++ void application_id_set_to(mir::scene::Surface const *surf,
++ std::string const &application_id) override;
++ void attrib_changed(mir::scene::Surface const *surf, MirWindowAttrib attrib,
++ int value) override;
++ void client_surface_close_requested(mir::scene::Surface const *surf) override;
++ void content_resized_to(mir::scene::Surface const *surf,
++ mir::geometry::Size const &content_size) override;
++ void cursor_image_removed(mir::scene::Surface const *surf) override;
++ void cursor_image_set_to(mir::scene::Surface const *surf,
++ mir::graphics::CursorImage const &image) override;
++ void depth_layer_set_to(mir::scene::Surface const *surf,
++ MirDepthLayer depth_layer) override;
++ void frame_posted(mir::scene::Surface const *surf, int frames_available,
++ mir::geometry::Size const &size) override;
++ void hidden_set_to(mir::scene::Surface const *surf, bool hide) override;
++ void input_consumed(mir::scene::Surface const *surf,
++ MirEvent const *event) override;
++#if MIR_SERVER_VERSION < MIR_VERSION_NUMBER(2, 6, 0)
++ void keymap_changed(mir::scene::Surface const* surf, MirInputDeviceId id, std::string const& model,
++ std::string const& layout, std::string const& variant, std::string const& options) override;
++#endif
++ void moved_to(mir::scene::Surface const *surf,
++ mir::geometry::Point const &top_left) override;
++ void orientation_set_to(mir::scene::Surface const *surf,
++ MirOrientation orientation) override;
++ void placed_relative(mir::scene::Surface const *surf,
++ mir::geometry::Rectangle const &placement) override;
++ void
++ reception_mode_set_to(mir::scene::Surface const * /*surf*/,
++ mir::input::InputReceptionMode /*mode*/) override{};
++ void renamed(mir::scene::Surface const *surf, char const *name) override;
++ void start_drag_and_drop(mir::scene::Surface const *surf,
++ std::vector<uint8_t> const &handle) override;
++ void transformation_set_to(mir::scene::Surface const *surf,
++ glm::mat4 const &t) override;
++ void window_resized_to(mir::scene::Surface const *surf,
++ mir::geometry::Size const &window_size) override;
++
++private:
++ std::shared_ptr<miroil::SurfaceObserver> listener;
++};
++
++miroil::SurfaceObserverImpl::SurfaceObserverImpl(std::shared_ptr<miroil::SurfaceObserver> const & wrapped)
++: listener(wrapped)
++{
++}
++
++miroil::SurfaceObserverImpl::~SurfaceObserverImpl() = default;
++
++void miroil::SurfaceObserverImpl::alpha_set_to(mir::scene::Surface const* surf, float alpha)
++{
++ listener->alpha_set_to(surf, alpha);
++}
++
++void miroil::SurfaceObserverImpl::application_id_set_to(mir::scene::Surface const* surf, std::string const& application_id)
++{
++ listener->application_id_set_to(surf, application_id);
++}
++
++void miroil::SurfaceObserverImpl::attrib_changed(mir::scene::Surface const* surf, MirWindowAttrib attrib, int value)
++{
++ listener->attrib_changed(surf, attrib, value);
++}
++
++void miroil::SurfaceObserverImpl::client_surface_close_requested(mir::scene::Surface const* surf)
++{
++ listener->client_surface_close_requested(surf);
++}
++
++void miroil::SurfaceObserverImpl::content_resized_to(mir::scene::Surface const* surf, mir::geometry::Size const& content_size)
++{
++ listener->content_resized_to(surf, content_size);
++}
++
++void miroil::SurfaceObserverImpl::cursor_image_removed(mir::scene::Surface const* surf)
++{
++ listener->cursor_image_removed(surf);
++}
++
++void miroil::SurfaceObserverImpl::cursor_image_set_to(mir::scene::Surface const* surf, mir::graphics::CursorImage const& image)
++{
++ listener->cursor_image_set_to(surf, image);
++}
++
++void miroil::SurfaceObserverImpl::depth_layer_set_to(mir::scene::Surface const* surf, MirDepthLayer depth_layer)
++{
++ listener->depth_layer_set_to(surf, depth_layer);
++}
++
++void miroil::SurfaceObserverImpl::frame_posted(mir::scene::Surface const* surf, int frames_available, mir::geometry::Size const& size)
++{
++ listener->frame_posted(surf, frames_available, size);
++}
++
++void miroil::SurfaceObserverImpl::hidden_set_to(mir::scene::Surface const* surf, bool hide)
++{
++ listener->hidden_set_to(surf, hide);
++}
++
++void miroil::SurfaceObserverImpl::input_consumed(mir::scene::Surface const* surf, MirEvent const* event)
++{
++ listener->input_consumed(surf, event);
++}
++
++#if MIR_SERVER_VERSION < MIR_VERSION_NUMBER(2, 6, 0)
++void miroil::SurfaceObserverImpl::keymap_changed(mir::scene::Surface const* surf, MirInputDeviceId id, std::string const& model,
++ std::string const& layout, std::string const& variant, std::string const& options)
++{
++ listener->keymap_changed(surf, id, model, layout, variant, options);
++}
++#endif
++
++void miroil::SurfaceObserverImpl::moved_to(mir::scene::Surface const* surf, mir::geometry::Point const& top_left)
++{
++ listener->moved_to(surf, top_left);
++}
++
++void miroil::SurfaceObserverImpl::orientation_set_to(mir::scene::Surface const* surf, MirOrientation orientation)
++{
++ listener->orientation_set_to(surf, orientation);
++}
++
++void miroil::SurfaceObserverImpl::placed_relative(mir::scene::Surface const* surf, mir::geometry::Rectangle const& placement)
++{
++ listener->placed_relative(surf, placement);
++}
++
++void miroil::SurfaceObserverImpl::renamed(mir::scene::Surface const* surf, char const* name)
++{
++ listener->renamed(surf, name);
++}
++
++void miroil::SurfaceObserverImpl::start_drag_and_drop(mir::scene::Surface const* surf, std::vector<uint8_t> const& handle)
++{
++ listener->start_drag_and_drop(surf, handle);
++}
++
++void miroil::SurfaceObserverImpl::transformation_set_to(mir::scene::Surface const* surf, glm::mat4 const& t)
++{
++ listener->transformation_set_to(surf, t);
++}
++
++void miroil::SurfaceObserverImpl::window_resized_to(mir::scene::Surface const* surf, mir::geometry::Size const& window_size)
++{
++ listener->window_resized_to(surf, window_size);
++}
++
++miroil::Surface::Surface(std::shared_ptr<mir::scene::Surface> wrapped) :
++ wrapped(wrapped)
++{
++}
++
++void miroil::Surface::add_observer(std::shared_ptr<SurfaceObserver> const& observer)
++{
++ auto it = observers.find(observer);
++ if (it == observers.end()) {
++ std::shared_ptr<SurfaceObserverImpl> impl = std::make_shared<SurfaceObserverImpl>(observer);
++
++ wrapped->add_observer(impl);
++ observers.insert({observer, impl});
++ }
++}
++
++bool miroil::Surface::is_confined_to_window()
++{
++#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 6, 0)
++ return (wrapped->confine_pointer_state() == mir_pointer_confined_oneshot ||
++ wrapped->confine_pointer_state() == mir_pointer_confined_persistent);
++#else
++ return false;
++#endif
++}
++
++void miroil::Surface::remove_observer(std::shared_ptr<miroil::SurfaceObserver> const& observer)
++{
++ auto it = observers.find(observer);
++ if (it != observers.end()) {
++ wrapped->remove_observer(it->second);
++ observers.erase(it);
++ }
++}
++
++auto miroil::Surface::get_wrapped() const -> mir::scene::Surface*
++{
++ return wrapped.get();
++}
++
++int miroil::Surface::buffers_ready_for_compositor(void const* compositor_id) const
++{
++ return wrapped->buffers_ready_for_compositor(compositor_id);
++}
++
++mir::graphics::RenderableList miroil::Surface::generate_renderables(miroil::CompositorID id) const
++{
++ return wrapped->generate_renderables(id);
++}
++
++void miroil::Surface::set_orientation(MirOrientation orientation)
++{
++ wrapped->set_orientation(orientation);
++}
++
++void miroil::Surface::set_confine_pointer_state(MirPointerConfinementState state)
++{
++ wrapped->set_confine_pointer_state(state);
++}
++
++std::shared_ptr<mir::scene::Surface> miroil::Surface::parent() const
++{
++ return wrapped->parent();
++}
++
++mir::geometry::Point miroil::Surface::top_left() const
++{
++ return wrapped->top_left();
++}
++
++bool miroil::Surface::visible() const
++{
++ return wrapped->visible();
++}
++
++int miroil::Surface::configure(MirWindowAttrib attrib, int value)
++{
++ return wrapped->configure(attrib, value);
++}
++
++int miroil::Surface::query(MirWindowAttrib attrib) const
++{
++ return wrapped->query(attrib);
++}
++
++void miroil::Surface::set_keymap(MirInputDeviceId /*id*/, const std::string& /*model*/,
++ const std::string& /*layout*/, const std::string& /*variant*/,
++ const std::string& /*options*/)
++{
++ fprintf(stderr, "Stubbed function miroil::Surface::set_keymap() called - per-surface keymaps no longer supported");
++}
+diff --git a/src/platforms/mirserver/miropenglcontext.cpp b/src/platforms/mirserver/miropenglcontext.cpp
+index 5e658824..1e24755d 100644
+--- a/src/platforms/mirserver/miropenglcontext.cpp
++++ b/src/platforms/mirserver/miropenglcontext.cpp
+@@ -49,7 +49,7 @@ MirOpenGLContext::MirOpenGLContext(
+ {
+ // create a temporary GL context to fetch the EGL display and config, so Qt can determine the surface format
+ std::unique_ptr<mir::renderer::gl::Context> mirContext = dynamic_cast<mir::renderer::gl::ContextSource*>(
+- display.native_display())->create_gl_context();
++ &display)->create_gl_context();
+ mirContext->make_current();
+
+ EGLDisplay eglDisplay = eglGetCurrentDisplay();
+diff --git a/src/platforms/mirserver/mirserverhooks.cpp b/src/platforms/mirserver/mirserverhooks.cpp
+deleted file mode 100644
+index b6f6eb98..00000000
+--- a/src/platforms/mirserver/mirserverhooks.cpp
++++ /dev/null
+@@ -1,229 +0,0 @@
+-/*
+- * Copyright © 2016 Canonical Ltd.
+- *
+- * This program is free software: you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 3,
+- * as published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by: Alan Griffiths <alan@octopull.co.uk>
+- */
+-
+-#include "mirserverhooks.h"
+-
+-#include "mircursorimages.h"
+-#include "promptsessionlistener.h"
+-#include "screenscontroller.h"
+-#include "logging.h"
+-#include "inputdeviceobserver.h"
+-
+-// mir
+-#include <mir/server.h>
+-#include <mir/graphics/cursor.h>
+-#include <mir/scene/prompt_session_listener.h>
+-#include <mir/input/device.h>
+-#include <mir/input/input_device_hub.h>
+-#include <mir/input/input_device_observer.h>
+-
+-namespace mg = mir::graphics;
+-namespace ms = mir::scene;
+-
+-namespace
+-{
+-struct PromptSessionListenerImpl : PromptSessionListener, mir::scene::PromptSessionListener
+-{
+- ~PromptSessionListenerImpl();
+-
+- void starting(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
+- void stopping(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
+- void suspending(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
+- void resuming(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
+-
+- void prompt_provider_added(mir::scene::PromptSession const& prompt_session,
+- std::shared_ptr<mir::scene::Session> const& prompt_provider) override;
+- void prompt_provider_removed(mir::scene::PromptSession const& prompt_session,
+- std::shared_ptr<mir::scene::Session> const& prompt_provider) override;
+-
+-private:
+- QHash<const mir::scene::PromptSession *, qtmir::PromptSession> m_mirPromptToSessionHash;
+-};
+-
+-struct MirInputDeviceObserverImpl : qtmir::MirInputDeviceObserver, mir::input::InputDeviceObserver
+-{
+- void device_added(std::shared_ptr<mir::input::Device> const& device) override;
+- void device_changed(std::shared_ptr<mir::input::Device> const& /*device*/) override {}
+- void device_removed(std::shared_ptr<mir::input::Device> const& device) override;
+- void changes_complete() override {}
+-};
+-
+-struct HiddenCursorWrapper : mg::Cursor
+-{
+- HiddenCursorWrapper(std::shared_ptr<mg::Cursor> const& wrapped) :
+- wrapped{wrapped} { wrapped->hide(); }
+- void show() override { }
+- void show(mg::CursorImage const&) override { }
+- void hide() override { wrapped->hide(); }
+-
+- void move_to(mir::geometry::Point position) override { wrapped->move_to(position); }
+-
+-private:
+- std::shared_ptr<mg::Cursor> const wrapped;
+-};
+-}
+-
+-struct qtmir::MirServerHooks::Self
+-{
+- std::weak_ptr<PromptSessionListener> m_promptSessionListener;
+- std::weak_ptr<mir::graphics::Display> m_mirDisplay;
+- std::weak_ptr<mir::shell::DisplayConfigurationController> m_mirDisplayConfigurationController;
+- std::weak_ptr<mir::scene::PromptSessionManager> m_mirPromptSessionManager;
+- std::weak_ptr<mir::input::InputDeviceHub> m_inputDeviceHub;
+-};
+-
+-qtmir::MirServerHooks::MirServerHooks() :
+- self{std::make_shared<Self>()}
+-{
+-}
+-
+-void qtmir::MirServerHooks::operator()(mir::Server& server)
+-{
+- server.override_the_cursor_images([]
+- { return std::make_shared<qtmir::MirCursorImages>(); });
+-
+- server.wrap_cursor([&](std::shared_ptr<mg::Cursor> const& wrapped)
+- { return std::make_shared<HiddenCursorWrapper>(wrapped); });
+-
+- server.override_the_prompt_session_listener([this]
+- {
+- auto const result = std::make_shared<PromptSessionListenerImpl>();
+- self->m_promptSessionListener = result;
+- return result;
+- });
+-
+- server.add_init_callback([this, &server]
+- {
+- self->m_mirDisplay = server.the_display();
+- self->m_mirDisplayConfigurationController = server.the_display_configuration_controller();
+- self->m_mirPromptSessionManager = server.the_prompt_session_manager();
+- self->m_inputDeviceHub = server.the_input_device_hub();
+- });
+-}
+-
+-PromptSessionListener *qtmir::MirServerHooks::promptSessionListener() const
+-{
+- if (auto result = self->m_promptSessionListener.lock())
+- return result.get();
+-
+- throw std::logic_error("No prompt session listener available. Server not running?");
+-}
+-
+-std::shared_ptr<mir::scene::PromptSessionManager> qtmir::MirServerHooks::thePromptSessionManager() const
+-{
+- if (auto result = self->m_mirPromptSessionManager.lock())
+- return result;
+-
+- throw std::logic_error("No prompt session manager available. Server not running?");
+-}
+-
+-std::shared_ptr<mir::graphics::Display> qtmir::MirServerHooks::theMirDisplay() const
+-{
+- if (auto result = self->m_mirDisplay.lock())
+- return result;
+-
+- throw std::logic_error("No display available. Server not running?");
+-}
+-
+-std::shared_ptr<mir::input::InputDeviceHub> qtmir::MirServerHooks::theInputDeviceHub() const
+-{
+- if (auto result = self->m_inputDeviceHub.lock())
+- return result;
+-
+- throw std::logic_error("No input device hub available. Server not running?");
+-}
+-
+-QSharedPointer<ScreensController> qtmir::MirServerHooks::createScreensController(std::shared_ptr<ScreensModel> const &screensModel) const
+-{
+- return QSharedPointer<ScreensController>(
+- new ScreensController(screensModel, theMirDisplay(), self->m_mirDisplayConfigurationController.lock()));
+-}
+-
+-void qtmir::MirServerHooks::createInputDeviceObserver()
+-{
+- theInputDeviceHub()->add_observer(std::make_shared<MirInputDeviceObserverImpl>());
+-}
+-
+-PromptSessionListenerImpl::~PromptSessionListenerImpl() = default;
+-
+-void PromptSessionListenerImpl::starting(std::shared_ptr<ms::PromptSession> const& prompt_session)
+-{
+- qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::starting - this=" << this << "prompt_session=" << prompt_session.get();
+- m_mirPromptToSessionHash.insert(prompt_session.get(), prompt_session);
+- Q_EMIT promptSessionStarting(prompt_session);
+-}
+-
+-void PromptSessionListenerImpl::stopping(std::shared_ptr<ms::PromptSession> const& prompt_session)
+-{
+- qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::stopping - this=" << this << "prompt_session=" << prompt_session.get();
+- Q_EMIT promptSessionStopping(prompt_session);
+- m_mirPromptToSessionHash.remove(prompt_session.get());
+-}
+-
+-void PromptSessionListenerImpl::suspending(std::shared_ptr<ms::PromptSession> const& prompt_session)
+-{
+- qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::suspending - this=" << this << "prompt_session=" << prompt_session.get();
+- Q_EMIT promptSessionSuspending(prompt_session);
+-}
+-
+-void PromptSessionListenerImpl::resuming(std::shared_ptr<ms::PromptSession> const& prompt_session)
+-{
+- qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::resuming - this=" << this << "prompt_session=" << prompt_session.get();
+- Q_EMIT promptSessionResuming(prompt_session);
+-}
+-
+-void PromptSessionListenerImpl::prompt_provider_added(ms::PromptSession const& prompt_session,
+- std::shared_ptr<ms::Session> const& prompt_provider)
+-{
+- qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::prompt_provider_added - this=" << this
+- << "prompt_session=" << &prompt_session
+- << "prompt_provider=" << prompt_provider.get();
+- Q_EMIT promptProviderAdded(m_mirPromptToSessionHash[&prompt_session], prompt_provider);
+-}
+-
+-void PromptSessionListenerImpl::prompt_provider_removed(ms::PromptSession const& prompt_session,
+- std::shared_ptr<ms::Session> const& prompt_provider)
+-{
+- qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::prompt_provider_removed - this=" << this
+- << "prompt_session=" << &prompt_session
+- << "prompt_provider=" << prompt_provider.get();
+- Q_EMIT promptProviderRemoved(m_mirPromptToSessionHash[&prompt_session], prompt_provider);
+-}
+-
+-void MirInputDeviceObserverImpl::device_added(const std::shared_ptr<mir::input::Device> &device)
+-{
+- QMutexLocker locker(&m_mutex); // lock so that Qt and Mir don't apply the keymap at the same time
+-
+- if (mir::contains(device->capabilities(), mir::input::DeviceCapability::keyboard) &&
+- mir::contains(device->capabilities(), mir::input::DeviceCapability::alpha_numeric)) {
+- qCDebug(QTMIR_MIR_KEYMAP) << "Device added" << device->id();
+- m_devices.append(device);
+- applyKeymap(device);
+- }
+-}
+-
+-void MirInputDeviceObserverImpl::device_removed(const std::shared_ptr<mir::input::Device> &device)
+-{
+- QMutexLocker locker(&m_mutex); // lock so that Qt and Mir don't apply the keymap at the same time
+-
+- if (device && m_devices.contains(device)) {
+- qCDebug(QTMIR_MIR_KEYMAP) << "Device removed" << device->id();
+- m_devices.removeAll(device);
+- }
+-}
+-
+diff --git a/src/platforms/mirserver/mirserverhooks.h b/src/platforms/mirserver/mirserverhooks.h
+deleted file mode 100644
+index 6866b2fb..00000000
+--- a/src/platforms/mirserver/mirserverhooks.h
++++ /dev/null
+@@ -1,57 +0,0 @@
+-/*
+- * Copyright © 2016 Canonical Ltd.
+- *
+- * This program is free software: you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 3,
+- * as published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by: Alan Griffiths <alan@octopull.co.uk>
+- */
+-
+-#ifndef MIRAL_MIRSERVERHOOKS_H
+-#define MIRAL_MIRSERVERHOOKS_H
+-
+-#include <memory>
+-#include <QSharedPointer>
+-
+-namespace mir { class Server; }
+-namespace mir { namespace scene { class PromptSessionManager; }}
+-namespace mir { namespace graphics { class Display; }}
+-namespace mir { namespace input { class InputDeviceHub; } }
+-
+-class PromptSessionListener;
+-class ScreensController;
+-class ScreensModel;
+-
+-namespace qtmir
+-{
+-class MirServerHooks
+-{
+-public:
+- MirServerHooks();
+-
+- void operator()(mir::Server& server);
+-
+- PromptSessionListener *promptSessionListener() const;
+- std::shared_ptr<mir::scene::PromptSessionManager> thePromptSessionManager() const;
+- std::shared_ptr<mir::graphics::Display> theMirDisplay() const;
+- std::shared_ptr<mir::input::InputDeviceHub> theInputDeviceHub() const;
+-
+- QSharedPointer<ScreensController> createScreensController(std::shared_ptr<ScreensModel> const &screensModel) const;
+- void createInputDeviceObserver();
+-
+-private:
+- struct Self;
+- std::shared_ptr<Self> self;
+-};
+-}
+-
+-#endif //MIRAL_MIRSERVERHOOKS_H
+diff --git a/src/platforms/mirserver/nativeinterface.cpp b/src/platforms/mirserver/nativeinterface.cpp
+index 48a776c5..69484ec7 100644
+--- a/src/platforms/mirserver/nativeinterface.cpp
++++ b/src/platforms/mirserver/nativeinterface.cpp
+@@ -86,7 +86,7 @@ void NativeInterface::setWindowProperty(QPlatformWindow */*window*/, const QStri
+ }
+ }
+
+-std::shared_ptr<qtmir::PromptSessionManager> NativeInterface::thePromptSessionManager() const
++std::shared_ptr<miroil::PromptSessionManager> NativeInterface::thePromptSessionManager() const
+ {
+ return m_qMirServer->thePromptSessionManager();
+ }
+diff --git a/src/platforms/mirserver/nativeinterface.h b/src/platforms/mirserver/nativeinterface.h
+index 4cf37e9c..0dae656f 100644
+--- a/src/platforms/mirserver/nativeinterface.h
++++ b/src/platforms/mirserver/nativeinterface.h
+@@ -27,7 +27,8 @@
+ class QMirServer;
+
+ // mir
+-namespace qtmir { class PromptSessionManager; class Seats; }
++namespace qtmir { class Seats; }
++namespace miroil { class PromptSessionManager; }
+ namespace mir { namespace shell { class PersistentSurfaceStore; }}
+
+ class NativeInterface : public QPlatformNativeInterface
+@@ -41,7 +42,7 @@ public:
+
+ void setWindowProperty(QPlatformWindow *, const QString &name, const QVariant &value) override;
+
+- std::shared_ptr<qtmir::PromptSessionManager> thePromptSessionManager() const;
++ std::shared_ptr<miroil::PromptSessionManager> thePromptSessionManager() const;
+ std::shared_ptr<mir::shell::PersistentSurfaceStore> thePersistentSurfaceStore() const;
+ std::shared_ptr<qtmir::Seats> theSeats() const;
+
+diff --git a/src/platforms/mirserver/platformscreen.h b/src/platforms/mirserver/platformscreen.h
+index 404f9c9e..4ee6d11c 100644
+--- a/src/platforms/mirserver/platformscreen.h
++++ b/src/platforms/mirserver/platformscreen.h
+@@ -27,9 +27,11 @@
+ // Mir
+ #include <mir_toolkit/common.h>
+
++// Miroil
++#include <miroil/display_configuration_storage.h>
++
+ // local
+ #include "qtmir/types.h"
+-#include "qtmir/miral/display_configuration_storage.h"
+ #include "cursor.h"
+ #include "screenplatformwindow.h"
+
+@@ -68,7 +70,7 @@ public:
+ float* scaleRef() { return &m_scale; }
+ qtmir::FormFactor formFactor() const { return m_formFactor; }
+ MirPowerMode powerMode() const { return m_powerMode; }
+- miral::DisplayId displayId() const { return m_displayId; }
++ miroil::DisplayId displayId() const { return m_displayId; }
+ qtmir::OutputTypes outputType() const { return m_type; }
+ uint32_t currentModeIndex() const { return m_currentModeIndex; }
+ bool isActive() const { return m_isActive; }
+@@ -140,7 +142,7 @@ private:
+
+ mir::renderer::gl::RenderTarget *m_renderTarget;
+ mir::graphics::DisplaySyncGroup *m_displayGroup;
+- miral::DisplayId m_displayId;
++ miroil::DisplayId m_displayId;
+ qtmir::OutputTypes m_type;
+ MirPowerMode m_powerMode;
+
+diff --git a/src/platforms/mirserver/promptsessionlistener.cpp b/src/platforms/mirserver/promptsessionlistener.cpp
+index e30d0eb9..7ab7569e 100644
+--- a/src/platforms/mirserver/promptsessionlistener.cpp
++++ b/src/platforms/mirserver/promptsessionlistener.cpp
+@@ -19,6 +19,8 @@
+
+ namespace ms = mir::scene;
+
++namespace qtmir {
++
+ PromptSessionListener::PromptSessionListener(QObject *parent) :
+ QObject(parent)
+ {
+@@ -31,3 +33,50 @@ PromptSessionListener::~PromptSessionListener()
+ {
+ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::~PromptSessionListener - this=" << this;
+ }
++
++void PromptSessionListener::starting(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::starting - this=" << this << "prompt_session=" << prompt_session.get();
++ m_mirPromptToSessionHash.insert(prompt_session.get(), prompt_session);
++ Q_EMIT promptSessionStarting(prompt_session);
++}
++
++void PromptSessionListener::stopping(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::stopping - this=" << this << "prompt_session=" << prompt_session.get();
++ Q_EMIT promptSessionStopping(prompt_session);
++ m_mirPromptToSessionHash.remove(prompt_session.get());
++}
++
++void PromptSessionListener::suspending(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::suspending - this=" << this << "prompt_session=" << prompt_session.get();
++ Q_EMIT promptSessionSuspending(prompt_session);
++}
++
++void PromptSessionListener::resuming(std::shared_ptr<ms::PromptSession> const& prompt_session)
++{
++ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::resuming - this=" << this << "prompt_session=" << prompt_session.get();
++ Q_EMIT promptSessionResuming(prompt_session);
++}
++
++void PromptSessionListener::prompt_provider_added(ms::PromptSession const& prompt_session,
++ std::shared_ptr<ms::Session> const& prompt_provider)
++{
++ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::prompt_provider_added - this=" << this
++ << "prompt_session=" << &prompt_session
++ << "prompt_provider=" << prompt_provider.get();
++ Q_EMIT promptProviderAdded(m_mirPromptToSessionHash[&prompt_session], prompt_provider);
++}
++
++void PromptSessionListener::prompt_provider_removed(ms::PromptSession const& prompt_session,
++ std::shared_ptr<ms::Session> const& prompt_provider)
++{
++ qCDebug(QTMIR_MIR_MESSAGES) << "PromptSessionListener::prompt_provider_removed - this=" << this
++ << "prompt_session=" << &prompt_session
++ << "prompt_provider=" << prompt_provider.get();
++ Q_EMIT promptProviderRemoved(m_mirPromptToSessionHash[&prompt_session], prompt_provider);
++}
++
++}
++
+diff --git a/src/platforms/mirserver/promptsessionlistener.h b/src/platforms/mirserver/promptsessionlistener.h
+index 73f0e606..ed635832 100644
+--- a/src/platforms/mirserver/promptsessionlistener.h
++++ b/src/platforms/mirserver/promptsessionlistener.h
+@@ -14,25 +14,37 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#ifndef PROMPTSESSIONLISTENER_H
+-#define PROMPTSESSIONLISTENER_H
++#ifndef QTMIR_PROMPTSESSIONLISTENER_H
++#define QTMIR_PROMPTSESSIONLISTENER_H
++#include <memory>
+
+ // Qt
+ #include <QHash>
+ #include <QObject>
+
+ #include "promptsession.h"
+-
++#include <miroil/prompt_session_listener.h>
+ #include <miral/application.h>
+
+-class PromptSessionListener : public QObject
++namespace qtmir {
++
++class PromptSessionListener : public QObject, public miroil::PromptSessionListener
+ {
+ Q_OBJECT
+-protected:
++public:
+ explicit PromptSessionListener(QObject *parent = 0);
+ ~PromptSessionListener();
+
+-public:
++ // PromptSessionListener functions
++ void starting(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void stopping(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void suspending(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void resuming(std::shared_ptr<mir::scene::PromptSession> const& prompt_session) override;
++ void prompt_provider_added(mir::scene::PromptSession const& prompt_session,
++ std::shared_ptr<mir::scene::Session> const& prompt_provider) override;
++ void prompt_provider_removed(mir::scene::PromptSession const& prompt_session,
++ std::shared_ptr<mir::scene::Session> const& prompt_provider) override;
++
+ Q_SIGNALS:
+ void promptSessionStarting(qtmir::PromptSession const &session);
+ void promptSessionStopping(qtmir::PromptSession const &session);
+@@ -41,9 +53,14 @@ Q_SIGNALS:
+
+ void promptProviderAdded(qtmir::PromptSession const&, miral::Application const&);
+ void promptProviderRemoved(qtmir::PromptSession const&, miral::Application const&);
++
++private:
++ QHash<const mir::scene::PromptSession *, qtmir::PromptSession> m_mirPromptToSessionHash;
+ };
+
++}
++
+ Q_DECLARE_METATYPE(qtmir::PromptSession)
+ Q_DECLARE_METATYPE(miral::Application)
+
+-#endif // SESSIONLISTENER_H
++#endif // QTMIR_PROMPTSESSIONLISTENER_H
+diff --git a/src/platforms/mirserver/promptsessionmanager.cpp b/src/platforms/mirserver/promptsessionmanager.cpp
+deleted file mode 100644
+index 138b691d..00000000
+--- a/src/platforms/mirserver/promptsessionmanager.cpp
++++ /dev/null
+@@ -1,47 +0,0 @@
+-/*
+- * Copyright © 2016 Canonical Ltd.
+- *
+- * This program is free software: you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 3,
+- * as published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- */
+-
+-#include "promptsessionmanager.h"
+-#include "promptsession.h"
+-
+-#include <mir/scene/prompt_session_manager.h>
+-
+-qtmir::PromptSessionManager::PromptSessionManager(std::shared_ptr<mir::scene::PromptSessionManager> const &promptSessionManager) :
+- m_promptSessionManager{promptSessionManager}
+-{
+-}
+-
+-qtmir::PromptSessionManager::~PromptSessionManager() = default;
+-
+-miral::Application qtmir::PromptSessionManager::applicationFor(const PromptSession &promptSession) const
+-{
+- return m_promptSessionManager->application_for(promptSession);
+-}
+-
+-void qtmir::PromptSessionManager::stopPromptSession(const PromptSession &promptSession) const
+-{
+- m_promptSessionManager->stop_prompt_session(promptSession);
+-}
+-
+-void qtmir::PromptSessionManager::suspendPromptSession(const PromptSession &promptSession) const
+-{
+- m_promptSessionManager->suspend_prompt_session(promptSession);
+-}
+-
+-void qtmir::PromptSessionManager::resumePromptSession(const PromptSession &promptSession) const
+-{
+- m_promptSessionManager->resume_prompt_session(promptSession);
+-}
+diff --git a/src/platforms/mirserver/promptsessionmanager.h b/src/platforms/mirserver/promptsessionmanager.h
+deleted file mode 100644
+index ebc207cb..00000000
+--- a/src/platforms/mirserver/promptsessionmanager.h
++++ /dev/null
+@@ -1,49 +0,0 @@
+-/*
+- * Copyright © 2016 Canonical Ltd.
+- *
+- * This program is free software: you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 3,
+- * as published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- */
+-
+-#ifndef QTMIR_PROMPTSESSIONMANAGER_H
+-#define QTMIR_PROMPTSESSIONMANAGER_H
+-
+-#include <miral/application.h>
+-
+-#include <memory>
+-
+-namespace mir {
+-namespace scene {
+-class PromptSessionManager;
+-}
+-}
+-
+-namespace qtmir {
+-class PromptSession;
+-class PromptSessionManager
+-{
+-public:
+- explicit PromptSessionManager(const std::shared_ptr<mir::scene::PromptSessionManager> &promptSessionManager);
+- virtual ~PromptSessionManager();
+-
+- miral::Application applicationFor(qtmir::PromptSession const &promptSession) const;
+-
+- void stopPromptSession(qtmir::PromptSession const &promptSession) const;
+- void suspendPromptSession(qtmir::PromptSession const &promptSession) const;
+- void resumePromptSession(qtmir::PromptSession const &promptSession) const;
+-
+-private:
+- std::shared_ptr<mir::scene::PromptSessionManager> const m_promptSessionManager;
+-};
+-}
+-
+-#endif //QTMIR_PROMPTSESSIONMANAGER_H
+diff --git a/src/platforms/mirserver/qmirserver.cpp b/src/platforms/mirserver/qmirserver.cpp
+index 6c0160e7..fe1b1a31 100644
+--- a/src/platforms/mirserver/qmirserver.cpp
++++ b/src/platforms/mirserver/qmirserver.cpp
+@@ -26,7 +26,6 @@
+ #include "qmirserver.h"
+ #include "qmirserver_p.h"
+
+-
+ QMirServer::QMirServer(QObject *parent)
+ : QObject(parent)
+ , d_ptr(new QMirServerPrivate)
+@@ -134,7 +133,7 @@ void *QMirServer::nativeResourceForIntegration(const QByteArray &resource) const
+ return result;
+ }
+
+-std::shared_ptr<qtmir::PromptSessionManager> QMirServer::thePromptSessionManager() const
++std::shared_ptr<miroil::PromptSessionManager> QMirServer::thePromptSessionManager() const
+ {
+ Q_D(const QMirServer);
+ return d->promptSessionManager();
+diff --git a/src/platforms/mirserver/qmirserver.h b/src/platforms/mirserver/qmirserver.h
+index 74d81c6b..d0dc2c5b 100644
+--- a/src/platforms/mirserver/qmirserver.h
++++ b/src/platforms/mirserver/qmirserver.h
+@@ -29,14 +29,17 @@
+ #include "qtmir/displayconfigurationpolicy.h"
+ #include "qtmir/displayconfigurationstorage.h"
+
++// miroil
++#include <miroil/prompt_session_manager.h>
++
+ // qtmir
+ namespace qtmir {
+- class PromptSessionManager;
+ class WindowModelNotifier;
+ class AppNotifier;
+ }
+ namespace mir { class Server; }
+
++// qtmir
+ class QMirServerPrivate;
+ class ScreensController;
+ class ScreensModel;
+@@ -59,7 +62,7 @@ public:
+ std::shared_ptr<ScreensModel> screensModel() const;
+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const;
+ void *nativeResourceForIntegration(const QByteArray &resource) const;
+- std::shared_ptr<qtmir::PromptSessionManager> thePromptSessionManager() const;
++ std::shared_ptr<miroil::PromptSessionManager> thePromptSessionManager() const;
+
+ qtmir::WindowModelNotifier *windowModelNotifier() const;
+ qtmir::AppNotifier *appNotifier() const;
+diff --git a/src/platforms/mirserver/qmirserver_p.cpp b/src/platforms/mirserver/qmirserver_p.cpp
+index c11acc97..e5858a53 100644
+--- a/src/platforms/mirserver/qmirserver_p.cpp
++++ b/src/platforms/mirserver/qmirserver_p.cpp
+@@ -15,23 +15,34 @@
+ */
+
+ #include "qmirserver_p.h"
+-#include "qtmir/miral/display_configuration_storage.h"
+
+ // local
+ #include "logging.h"
+ #include "wrappedwindowmanagementpolicy.h"
+-#include "promptsessionmanager.h"
+-#include "setqtcompositor.h"
++#include "inputdeviceobserver.h"
+ #include "qteventfeeder.h"
+ #include "qtmir/sessionauthorizer.h"
+-
+-// prototyping for later incorporation in miral
+-#include <miral/persist_display_config.h>
++#include "miropenglcontext.h"
++#include "mirglconfig.h"
++#include "screenscontroller.h"
++#include "qtcompositor.h"
++#include "namedcursor.h"
++#include "promptsessionlistener.h"
++#include "qtwindowmanager.h"
++#include "wayland/xdgdecorationV1.h"
++#include "wayland/kwinserverdecoration.h"
++
++#include <miroil/prompt_session_manager.h>
++#include <miroil/persist_display_config.h>
++#include <miroil/set_compositor.h>
++#include <miroil/display_listener_wrapper.h>
+
+ // miral
+ #include <miral/add_init_callback.h>
+ #include <miral/set_terminator.h>
+ #include <miral/x11_support.h>
++#include <miral/keymap.h>
++#include <miral/wayland_extensions.h>
+
+ // Qt
+ #include <QCoreApplication>
+@@ -54,19 +65,14 @@ public:
+ {}
+ };
+
+-struct DefaultDisplayConfigurationStorage : miral::DisplayConfigurationStorage
++struct DefaultDisplayConfigurationStorage : miroil::DisplayConfigurationStorage
+ {
+- void save(const miral::DisplayId&, const miral::DisplayConfigurationOptions&) override {}
++ void save(const miroil::DisplayId&, const miroil::DisplayConfigurationOptions&) override {}
+
+- bool load(const miral::DisplayId&, miral::DisplayConfigurationOptions&) const override { return false; }
++ bool load(const miroil::DisplayId&, miroil::DisplayConfigurationOptions&) const override { return false; }
+ };
+
+-std::shared_ptr<miral::DisplayConfigurationPolicy> buildDisplayConfigurationPolicy()
+-{
+- return std::make_shared<qtmir::DisplayConfigurationPolicy>();
+-}
+-
+-std::shared_ptr<miral::DisplayConfigurationStorage> buildDisplayConfigurationStorage()
++std::shared_ptr<miroil::DisplayConfigurationStorage> buildDisplayConfigurationStorage()
+ {
+ return std::make_shared<DefaultDisplayConfigurationStorage>();
+ }
+@@ -113,12 +119,19 @@ bool MirServerThread::waitForMirStartup()
+
+ QPlatformOpenGLContext *QMirServerPrivate::createPlatformOpenGLContext(QOpenGLContext *context) const
+ {
+- return m_openGLContextFactory.createPlatformOpenGLContext(context->format(), *m_mirServerHooks.theMirDisplay());
++ QSurfaceFormat format = context->format();
++ mir::graphics::Display * mirDisplay = m_mirServerHooks.the_mir_display().get();
++ mir::graphics::GLConfig * gl_config = m_openGLContext.the_open_gl_config().get();
++
++ if (!gl_config)
++ throw std::logic_error("No gl config available. Server not running?");
++
++ return new MirOpenGLContext(*mirDisplay, *gl_config, format);
+ }
+
+-std::shared_ptr<qtmir::PromptSessionManager> QMirServerPrivate::promptSessionManager() const
++std::shared_ptr<miroil::PromptSessionManager> QMirServerPrivate::promptSessionManager() const
+ {
+- return std::make_shared<qtmir::PromptSessionManager>(m_mirServerHooks.thePromptSessionManager());
++ return std::make_shared<miroil::PromptSessionManager>(m_mirServerHooks.the_prompt_session_manager());
+ }
+
+ std::shared_ptr<qtmir::SessionAuthorizer> QMirServerPrivate::theApplicationAuthorizer() const
+@@ -128,21 +141,31 @@ std::shared_ptr<qtmir::SessionAuthorizer> QMirServerPrivate::theApplicationAutho
+ }
+
+ QMirServerPrivate::QMirServerPrivate()
+- : m_displayConfigurationPolicy(buildDisplayConfigurationPolicy)
++ : m_displayConfigurationPolicy{[](auto) { return std::make_shared<qtmir::DisplayConfigurationPolicy>(); }}
+ , m_windowManagementPolicy(buildWindowManagementPolicy)
+ , m_displayConfigurationStorage(buildDisplayConfigurationStorage)
+ , m_wrappedSessionAuthorizer(buildSessionAuthorizer)
++ , m_openGLContext(new MirGLConfig())
+ , runner(qtmirArgc, qtmirArgv)
+ {
+ }
+
+-PromptSessionListener *QMirServerPrivate::promptSessionListener() const
++qtmir::PromptSessionListener *QMirServerPrivate::promptSessionListener() const
+ {
+- return m_mirServerHooks.promptSessionListener();
++ return dynamic_cast<qtmir::PromptSessionListener*>(m_mirServerHooks.the_prompt_session_listener());
+ }
+
+ void QMirServerPrivate::run(const std::function<void()> &startCallback)
+ {
++ m_mirServerHooks.create_prompt_session_listener(std::dynamic_pointer_cast<miroil::PromptSessionListener>(std::make_shared<qtmir::PromptSessionListener>()));
++ m_mirServerHooks.create_named_cursor([](std::string const & name)
++ {
++ // We are not responsible for loading cursors. This is left for shell to do as it's drawing its own QML cursor.
++ // So here we work around Mir API by storing just the cursor name in the CursorImage.
++ return std::make_shared<qtmir::NamedCursor>(name.c_str());
++ }
++ );
++
+
+ miral::AddInitCallback addInitCallback{[&, this]
+ {
+@@ -156,6 +179,11 @@ void QMirServerPrivate::run(const std::function<void()> &startCallback)
+ QCoreApplication::quit();
+ }};
+
++ miral::WaylandExtensions waylandExtensions{};
++ waylandExtensions.add_extension(qtmir::qtWindowmanagerExtension());
++ waylandExtensions.add_extension(qtmir::qtXdgDecorationManagerV1Extension());
++ waylandExtensions.add_extension(qtmir::qtKwinServerDecorationManagerExtension(m_windowModelNotifier));
++
+ runner.set_exception_handler([this]
+ {
+ try {
+@@ -168,8 +196,9 @@ void QMirServerPrivate::run(const std::function<void()> &startCallback)
+
+ runner.add_start_callback([&]
+ {
+- screensController = m_mirServerHooks.createScreensController(screensModel);
+- m_mirServerHooks.createInputDeviceObserver();
++ screensController = QSharedPointer<ScreensController>(new ScreensController(screensModel, m_mirServerHooks.the_mir_display(), m_mirServerHooks.the_display_configuration_controller()));
++ std::shared_ptr<miroil::InputDeviceObserver> ptr = std::make_shared<qtmir::MirInputDeviceObserver>();
++ m_mirServerHooks.create_input_device_observer(ptr);
+ if (auto const x11_display = runner.x11_display())
+ {
+ setenv("DISPLAY", x11_display.value().c_str(), 1);
+@@ -186,12 +215,22 @@ void QMirServerPrivate::run(const std::function<void()> &startCallback)
+
+ auto displayStorageBuilder = m_displayConfigurationStorage.builder();
+
++ miral::Keymap config_keymap;
++
+ runner.run_with(
+ {
+ miral::X11Support{},
+ m_wrappedSessionAuthorizer,
+- m_openGLContextFactory,
++ m_openGLContext,
+ m_mirServerHooks,
++ waylandExtensions
++ .enable(miral::WaylandExtensions::zwlr_layer_shell_v1)
++ .enable(miral::WaylandExtensions::zwlr_foreign_toplevel_manager_v1)
++ .enable(miral::WaylandExtensions::zxdg_output_manager_v1)
++ .enable(miral::WaylandExtensions::zwp_virtual_keyboard_manager_v1)
++ .enable(miral::WaylandExtensions::zwlr_virtual_pointer_manager_v1)
++ .enable(miral::WaylandExtensions::zwp_input_method_manager_v2)
++ .enable(miral::WaylandExtensions::zwlr_screencopy_manager_v1),
+ miral::set_window_management_policy<WrappedWindowManagementPolicy>(m_windowModelNotifier,
+ m_windowController,
+ m_workspaceController,
+@@ -200,10 +239,30 @@ void QMirServerPrivate::run(const std::function<void()> &startCallback)
+ eventFeeder,
+ m_windowManagementPolicy),
+ addInitCallback,
+- qtmir::SetQtCompositor{screensModel},
++ miroil::SetCompositor(
++ // Create the the QtCompositor
++ [this]()
++ -> std::shared_ptr<miroil::Compositor>
++ {
++ std::shared_ptr<miroil::Compositor> result = std::make_shared<QtCompositor>();
++ return result;
++ }
++ ,
++ // Initialization called by mir when the new compositor is setup up
++ [this](const std::shared_ptr<mir::graphics::Display>& display,
++ const std::shared_ptr<miroil::Compositor> & compositor,
++ const std::shared_ptr<mir::compositor::DisplayListener>& displayListener)
++ {
++
++ std::shared_ptr<QtCompositor> qtCompsitor = std::dynamic_pointer_cast<QtCompositor>(compositor);
++
++ this->screensModel->init(display, qtCompsitor, std::make_shared<miroil::DisplayListenerWrapper>(displayListener));
++ }
++ ),
+ setTerminator,
+- miral::PersistDisplayConfig{displayStorageBuilder(),
+- m_displayConfigurationPolicy}
++ config_keymap,
++ miroil::PersistDisplayConfig{displayStorageBuilder(),
++ m_displayConfigurationPolicy},
+ });
+ }
+
+diff --git a/src/platforms/mirserver/qmirserver_p.h b/src/platforms/mirserver/qmirserver_p.h
+index f5129fa2..d5f14277 100644
+--- a/src/platforms/mirserver/qmirserver_p.h
++++ b/src/platforms/mirserver/qmirserver_p.h
+@@ -27,12 +27,11 @@
+
+ // local
+ #include "appnotifier.h"
+-#include "openglcontextfactory.h"
+ #include "screensmodel.h"
+ #include "windowcontroller.h"
+ #include "windowmodelnotifier.h"
+ #include "workspacecontroller.h"
+-#include "mirserverhooks.h"
++#include "screenscontroller.h"
+ #include "wrappedsessionauthorizer.h"
+ #include "qteventfeeder.h"
+ #include "qtmir/displayconfigurationpolicy.h"
+@@ -43,14 +42,21 @@
+ #include <miral/runner.h>
+ #include <QDebug>
+
++// miroil
++#include <miroil/compositor.h>
++#include <miroil/mir_server_hooks.h>
++#include <miroil/prompt_session_manager.h>
++#include <miroil/open_gl_context.h>
++
+ class MirServerThread;
+ class QOpenGLContext;
+ class QMirServer;
++class QPlatformOpenGLContext;
+
+ namespace qtmir
+ {
+ class SessionAuthorizer;
+-class PromptSessionManager;
++class PromptSessionListener;
+ }
+
+ class QMirServerPrivate
+@@ -67,8 +73,8 @@ public:
+ void run(const std::function<void()> &startCallback);
+ void stop();
+
+- PromptSessionListener *promptSessionListener() const;
+- std::shared_ptr<qtmir::PromptSessionManager> promptSessionManager() const;
++ qtmir::PromptSessionListener *promptSessionListener() const;
++ std::shared_ptr<miroil::PromptSessionManager> promptSessionManager() const;
+
+ std::shared_ptr<qtmir::SessionAuthorizer> theApplicationAuthorizer() const;
+
+@@ -89,8 +95,8 @@ public:
+ qtmir::BasicSetDisplayConfigurationStorage m_displayConfigurationStorage;
+ miral::SetApplicationAuthorizer<WrappedSessionAuthorizer> m_wrappedSessionAuthorizer;
+ private:
+- qtmir::OpenGLContextFactory m_openGLContextFactory;
+- qtmir::MirServerHooks m_mirServerHooks;
++ miroil::OpenGLContext m_openGLContext;
++ miroil::MirServerHooks m_mirServerHooks;
+
+ miral::MirRunner runner;
+
+diff --git a/src/platforms/mirserver/qtcompositor.cpp b/src/platforms/mirserver/qtcompositor.cpp
+index 7251b13a..8b25354a 100644
+--- a/src/platforms/mirserver/qtcompositor.cpp
++++ b/src/platforms/mirserver/qtcompositor.cpp
+@@ -15,4 +15,20 @@
+ */
+
+ #include "qtcompositor.h"
++#include "logging.h"
++
++void QtCompositor::start()
++{
++ qCDebug(QTMIR_SCREENS) << "QtCompositor::start";
++
++ Q_EMIT starting(); // blocks
++}
++
++void QtCompositor::stop()
++{
++ qCDebug(QTMIR_SCREENS) << "QtCompositor::stop";
++
++ Q_EMIT stopping(); // blocks
++}
++
+
+diff --git a/src/platforms/mirserver/qtcompositor.h b/src/platforms/mirserver/qtcompositor.h
+index 09f09610..f70f85f6 100644
+--- a/src/platforms/mirserver/qtcompositor.h
++++ b/src/platforms/mirserver/qtcompositor.h
+@@ -16,6 +16,7 @@
+
+ #ifndef QTCOMPOSITOR_H
+ #define QTCOMPOSITOR_H
++#include <miroil/compositor.h>
+
+ // std lib
+ #include <memory>
+@@ -29,13 +30,17 @@ namespace mir {
+ }
+ }
+
+-class QtCompositor : public QObject
++class QtCompositor : public QObject, public miroil::Compositor
+ {
+ Q_OBJECT
+ public:
+ QtCompositor() = default;
+ virtual ~QtCompositor() noexcept = default;
+
++ // Callbacks coming from mir
++ void start();
++ void stop();
++
+ Q_SIGNALS:
+ void starting();
+ void stopping();
+diff --git a/src/platforms/mirserver/qteventfeeder.h b/src/platforms/mirserver/qteventfeeder.h
+index fa033fcc..5211bbbb 100644
+--- a/src/platforms/mirserver/qteventfeeder.h
++++ b/src/platforms/mirserver/qteventfeeder.h
+@@ -17,7 +17,13 @@
+ #ifndef MIR_QT_EVENT_FEEDER_H
+ #define MIR_QT_EVENT_FEEDER_H
+
++#include <mir/version.h>
++#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 0, 0)
++#include <miral/toolkit_event.h>
++using namespace miral::toolkit;
++#else
+ #include <mir_toolkit/event.h>
++#endif
+
+ #include <QObject>
+ #include <qpa/qwindowsysteminterface.h>
+diff --git a/src/platforms/mirserver/qtwindowmanager.cpp b/src/platforms/mirserver/qtwindowmanager.cpp
+new file mode 100644
+index 00000000..240792b2
+--- /dev/null
++++ b/src/platforms/mirserver/qtwindowmanager.cpp
+@@ -0,0 +1,80 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <memory>
++
++#include "qtwindowmanager.h"
++#include "urlbuilderdispatcher.h"
++#include "services.h"
++
++#include <wayland-generated/qt-windowmanager_wrapper.h>
++
++#include <QDebug>
++
++using namespace mir::wayland;
++using namespace miral;
++
++namespace
++{
++class QtWindowManager : public Windowmanager
++{
++public:
++ using Windowmanager::Windowmanager;
++
++ QtWindowManager(struct wl_resource*);
++
++ void open_url(uint32_t remaining, std::string const& url) override {
++ mBuilder->urlInput(remaining, url);
++ }
++private:
++ qtmir::URLBuilderDispatcher* mBuilder;
++};
++
++QtWindowManager::QtWindowManager(
++ struct wl_resource* resource) :
++ Windowmanager{resource, Version<1>{}},
++ mBuilder{new qtmir::URLBuilderDispatcher{std::make_shared<Services>()}}
++{
++}
++
++class MyGlobal : public QtWindowManager::Global
++{
++public:
++ explicit MyGlobal(wl_display* display);
++
++ void bind(wl_resource* new_windowmanager) override;
++};
++
++}
++
++MyGlobal::MyGlobal(wl_display* display) :
++ Global(display, Version<1>{})
++{
++}
++
++void MyGlobal::bind(wl_resource* new_windowmanager)
++{
++ new QtWindowManager{new_windowmanager};
++}
++
++auto qtmir::qtWindowmanagerExtension() -> WaylandExtensions::Builder {
++ return {
++ Windowmanager::interface_name,
++ [](WaylandExtensions::Context const* context) {
++ return std::make_shared<MyGlobal>(context->display());
++ }
++ };
++}
+diff --git a/src/platforms/mirserver/mircursorimages.cpp b/src/platforms/mirserver/qtwindowmanager.h
+similarity index 55%
+rename from src/platforms/mirserver/mircursorimages.cpp
+rename to src/platforms/mirserver/qtwindowmanager.h
+index b07bbe1a..30b5cb5a 100644
+--- a/src/platforms/mirserver/mircursorimages.cpp
++++ b/src/platforms/mirserver/qtwindowmanager.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2015 Canonical, Ltd.
++ * Copyright (C) 2020 UBports Foundation
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License version 3, as published by
+@@ -14,15 +14,18 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include "mircursorimages.h"
+-#include "namedcursor.h"
++#pragma once
+
+-using namespace qtmir;
++// Provides the qt-windowmanager Wayland extension, which provides support for
++// URL handling. We use url-dispatcher for the purpose.
+
+-std::shared_ptr<mir::graphics::CursorImage> MirCursorImages::image(const std::string &cursor_name,
+- const mir::geometry::Size &)
++#include "services.h"
++
++#include <miral/wayland_extensions.h>
++
++namespace qtmir
+ {
+- // We are not responsible for loading cursors. This is left for shell to do as it's drawing its own QML cursor.
+- // So here we work around Mir API by storing just the cursor name in the CursorImage.
+- return std::make_shared<NamedCursor>(cursor_name.c_str());
++// The casing is deliberate, given 'Windowmanager' is all one word according to
++// the Wayland spec
++auto qtWindowmanagerExtension() -> miral::WaylandExtensions::Builder;
+ }
+diff --git a/src/platforms/mirserver/screenadaptor.cpp b/src/platforms/mirserver/screenadaptor.cpp
+index 0bdc6ad2..1a274617 100644
+--- a/src/platforms/mirserver/screenadaptor.cpp
++++ b/src/platforms/mirserver/screenadaptor.cpp
+@@ -60,7 +60,7 @@ ScreenAdaptor::~ScreenAdaptor()
+ m_modes.clear();
+ }
+
+-miral::DisplayId ScreenAdaptor::displayId() const
++miroil::DisplayId ScreenAdaptor::displayId() const
+ {
+ auto platformScreen = static_cast<PlatformScreen*>(m_screen->handle());
+ return platformScreen->displayId();
+diff --git a/src/platforms/mirserver/screenadaptor.h b/src/platforms/mirserver/screenadaptor.h
+index d801b712..a3711eba 100644
+--- a/src/platforms/mirserver/screenadaptor.h
++++ b/src/platforms/mirserver/screenadaptor.h
+@@ -34,7 +34,7 @@ public:
+ ScreenAdaptor(QScreen* screen, QObject* parent = 0);
+ ~ScreenAdaptor();
+
+- miral::DisplayId displayId() const override;
++ miroil::DisplayId displayId() const override;
+ bool used() const override;
+ QString name() const override;
+ float scale() const override;
+diff --git a/src/platforms/mirserver/screenscontroller.cpp b/src/platforms/mirserver/screenscontroller.cpp
+index 318cf61b..8a7d07b5 100644
+--- a/src/platforms/mirserver/screenscontroller.cpp
++++ b/src/platforms/mirserver/screenscontroller.cpp
+@@ -21,7 +21,6 @@
+ // Mir
+ #include <mir/graphics/display.h>
+ #include <mir/graphics/display_configuration.h>
+-#include <mir/shell/display_configuration_controller.h>
+ #include <mir/geometry/point.h>
+
+ namespace mg = mir::graphics;
+@@ -33,7 +32,7 @@ ScreensController::ScreensController(const std::shared_ptr<ScreensModel> &model,
+ : QObject(parent)
+ , m_screensModel(model)
+ , m_display(display)
+- , m_displayConfigurationController(controller)
++ , m_displayConfigurationController(std::make_shared<miroil::DisplayConfigurationControllerWrapper>(controller))
+ {
+ }
+
+@@ -88,7 +87,7 @@ bool ScreensController::setConfiguration(const qtmir::ScreenConfigurationList &n
+ return true;
+ }
+
+-qtmir::ScreenConfiguration ScreensController::outputConfiguration(miral::OutputId outputId)
++qtmir::ScreenConfiguration ScreensController::outputConfiguration(miroil::OutputId outputId)
+ {
+ auto displayConfiguration = m_display->configuration();
+ qtmir::ScreenConfiguration config;
+diff --git a/src/platforms/mirserver/screenscontroller.h b/src/platforms/mirserver/screenscontroller.h
+index b363830c..db345aaf 100644
+--- a/src/platforms/mirserver/screenscontroller.h
++++ b/src/platforms/mirserver/screenscontroller.h
+@@ -26,6 +26,7 @@
+ #include "qtmir/screen.h"
+
+ #include <memory>
++#include <miroil/display_configuration_controller_wrapper.h>
+
+ class ScreensModel;
+
+@@ -48,13 +49,13 @@ public:
+ qtmir::ScreenConfigurationList configuration();
+ bool setConfiguration(const qtmir::ScreenConfigurationList &newConfig);
+
+- qtmir::ScreenConfiguration outputConfiguration(miral::OutputId outputId);
++ qtmir::ScreenConfiguration outputConfiguration(miroil::OutputId outputId);
+ bool setOutputConfiguration(const qtmir::ScreenConfiguration &newConfig);
+
+ private:
+ const std::shared_ptr<ScreensModel> m_screensModel;
+ const std::shared_ptr<mir::graphics::Display> m_display;
+- const std::shared_ptr<mir::shell::DisplayConfigurationController> m_displayConfigurationController;
++ const std::shared_ptr<miroil::DisplayConfigurationControllerWrapper> m_displayConfigurationController;
+ };
+
+ #endif // SCREENSCONTROLLER_H
+diff --git a/src/platforms/mirserver/screensmodel.cpp b/src/platforms/mirserver/screensmodel.cpp
+index b03d6b9d..91c420d5 100644
+--- a/src/platforms/mirserver/screensmodel.cpp
++++ b/src/platforms/mirserver/screensmodel.cpp
+@@ -27,7 +27,7 @@
+ #include <mir/graphics/display.h>
+ #include <mir/graphics/display_buffer.h>
+ #include <mir/graphics/display_configuration.h>
+-#include <mir/compositor/display_listener.h>
++#include <miroil/display_listener_wrapper.h>
+
+ // Qt
+ #include <QScreen>
+@@ -43,8 +43,8 @@ namespace mg = mir::graphics;
+ #define DEBUG_MSG qCDebug(QTMIR_SCREENS).nospace() << "ScreensModel[" << this <<"]::" << __func__
+
+ ScreensModel::ScreensModel(QObject *parent)
+- : MirDisplayConfigurationObserver(parent)
+- , m_compositing(false)
++ : //MirDisplayConfigurationObserver(parent)
++ m_compositing(false)
+ , m_orientationSensor(std::make_shared<OrientationSensor>(this))
+ {
+ DEBUG_MSG << "()";
+@@ -54,7 +54,7 @@ ScreensModel::ScreensModel(QObject *parent)
+ void ScreensModel::init(
+ const std::shared_ptr<mir::graphics::Display>& display,
+ const std::shared_ptr<QtCompositor>& compositor,
+- const std::shared_ptr<mir::compositor::DisplayListener>& displayListener)
++ const std::shared_ptr<miroil::DisplayListenerWrapper>& displayListener)
+ {
+ m_display = display;
+ m_compositor = compositor;
+@@ -69,8 +69,8 @@ void ScreensModel::init(
+ connect(qtCompositor, &QtCompositor::stopping,
+ this, &ScreensModel::onCompositorStopping, Qt::BlockingQueuedConnection);
+
+- connect(this, &MirDisplayConfigurationObserver::configurationApplied,
+- this, &ScreensModel::update, Qt::BlockingQueuedConnection);
++ //connect(this, &MirDisplayConfigurationObserver::configurationApplied,
++ // this, &ScreensModel::update, Qt::BlockingQueuedConnection);
+ }
+
+ // terminate before shutting down the Mir server, or else liable to deadlock with the blocking connection above
+diff --git a/src/platforms/mirserver/screensmodel.h b/src/platforms/mirserver/screensmodel.h
+index 6f85be7c..439db39a 100644
+--- a/src/platforms/mirserver/screensmodel.h
++++ b/src/platforms/mirserver/screensmodel.h
+@@ -17,20 +17,19 @@
+ #ifndef SCREENCONFIGURATIONOBSERVER_H
+ #define SCREENCONFIGURATIONOBSERVER_H
+
+-#include "mirdisplayconfigurationobserver.h"
++//#include "mirdisplayconfigurationobserver.h"
+
+ #include <QObject>
+ #include <QPoint>
+
+ // Mir
+ #include "mir/int_wrapper.h"
++#include <miroil/display_listener_wrapper.h>
+
+ // std
+ #include <memory>
+
+ namespace mir {
+- namespace compositor { class DisplayListener; }
+-
+ namespace graphics {
+ namespace detail { struct GraphicsConfCardIdTag; struct GraphicsConfOutputIdTag; }
+ typedef IntWrapper <detail::GraphicsConfCardIdTag> DisplayConfigurationCardId;
+@@ -62,7 +61,8 @@ class OrientationSensor;
+ * All other methods must be called on the Qt GUI thread.
+ */
+
+-class ScreensModel : public MirDisplayConfigurationObserver
++class ScreensModel : public QObject
++//class ScreensModel : public MirDisplayConfigurationObserver
+ {
+ Q_OBJECT
+ public:
+@@ -83,7 +83,7 @@ public:
+ void init(
+ const std::shared_ptr<mir::graphics::Display>& display,
+ const std::shared_ptr<QtCompositor>& compositor,
+- const std::shared_ptr<mir::compositor::DisplayListener>& displayListener);
++ const std::shared_ptr<miroil::DisplayListenerWrapper> & displayListener);
+ void terminate();
+
+ // override for testing purposes
+@@ -102,7 +102,7 @@ private:
+
+ std::weak_ptr<mir::graphics::Display> m_display;
+ std::shared_ptr<QtCompositor> m_compositor;
+- std::shared_ptr<mir::compositor::DisplayListener> m_displayListener;
++ std::shared_ptr<miroil::DisplayListenerWrapper> m_displayListener;
+ QList<PlatformScreen*> m_screenList;
+ bool m_compositing;
+ std::shared_ptr<OrientationSensor> m_orientationSensor;
+diff --git a/src/platforms/mirserver/setqtcompositor.cpp b/src/platforms/mirserver/setqtcompositor.cpp
+deleted file mode 100644
+index 1d747fe3..00000000
+--- a/src/platforms/mirserver/setqtcompositor.cpp
++++ /dev/null
+@@ -1,83 +0,0 @@
+-/*
+- * Copyright © 2016 Canonical Ltd.
+- *
+- * This program is free software: you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 3,
+- * as published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by: Alan Griffiths <alan@octopull.co.uk>
+- */
+-
+-#include "setqtcompositor.h"
+-
+-// local
+-#include "qtcompositor.h"
+-#include "screensmodel.h"
+-#include "logging.h"
+-
+-// mir
+-#include <mir/compositor/compositor.h>
+-#include <mir/server.h>
+-#include <mir/shell/shell.h>
+-#include <mir/observer_registrar.h>
+-
+-namespace
+-{
+-struct QtCompositorImpl : QtCompositor, mir::compositor::Compositor
+-{
+- void start();
+- void stop();
+-};
+-
+-void QtCompositorImpl::start()
+-{
+- qCDebug(QTMIR_SCREENS) << "QtCompositor::start";
+-
+- Q_EMIT starting(); // blocks
+-}
+-
+-void QtCompositorImpl::stop()
+-{
+- qCDebug(QTMIR_SCREENS) << "QtCompositor::stop";
+-
+- Q_EMIT stopping(); // blocks
+-}
+-}
+-
+-
+-qtmir::SetQtCompositor::SetQtCompositor(std::shared_ptr<ScreensModel> const& screensModel) :
+- m_screensModel{screensModel}
+-{
+-}
+-
+-void qtmir::SetQtCompositor::operator()(mir::Server& server)
+-{
+- server.override_the_compositor([this]
+- {
+- auto result = std::make_shared<QtCompositorImpl>();
+- m_compositor = result;
+- return result;
+- });
+-
+- server.add_init_callback([&, this]
+- {
+- if (auto const compositor = m_compositor.lock())
+- {
+- server.the_display_configuration_observer_registrar()->register_interest(m_screensModel);
+- m_screensModel->init(server.the_display(), compositor, server.the_shell());
+- }
+- else
+- {
+- throw std::logic_error("No m_compositor available. Server not running?");
+- }
+- });
+-}
+-
+diff --git a/src/platforms/mirserver/setqtcompositor.h b/src/platforms/mirserver/setqtcompositor.h
+deleted file mode 100644
+index 4c5fcdc1..00000000
+--- a/src/platforms/mirserver/setqtcompositor.h
++++ /dev/null
+@@ -1,47 +0,0 @@
+-/*
+- * Copyright © 2016 Canonical Ltd.
+- *
+- * This program is free software: you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 3,
+- * as published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by: Alan Griffiths <alan@octopull.co.uk>
+- */
+-
+-#ifndef QTMIR_SET_QT_COMPOSITOR_H
+-#define QTMIR_SET_QT_COMPOSITOR_H
+-
+-#include <QSharedPointer>
+-
+-#include <memory>
+-
+-namespace mir { class Server; }
+-
+-class QtCompositor;
+-class ScreensModel;
+-
+-namespace qtmir
+-{
+-// Configure the server for using the Qt compositor
+-class SetQtCompositor
+-{
+-public:
+- explicit SetQtCompositor(std::shared_ptr<ScreensModel> const& screensModel);
+-
+- void operator()(mir::Server& server);
+-
+-private:
+- std::shared_ptr<ScreensModel> const m_screensModel;
+- std::weak_ptr<QtCompositor> m_compositor;
+-};
+-}
+-
+-#endif //QTMIR_SET_QT_COMPOSITOR_H
+diff --git a/src/platforms/mirserver/surfaceobserver.cpp b/src/platforms/mirserver/surfaceobserver.cpp
+index 4e3da84e..41351354 100644
+--- a/src/platforms/mirserver/surfaceobserver.cpp
++++ b/src/platforms/mirserver/surfaceobserver.cpp
+@@ -84,7 +84,12 @@ void SurfaceObserver::notifySurfaceModifications(const miral::WindowSpecificatio
+ Q_EMIT inputBoundsChanged(qRect);
+ }
+ if (modifications.confine_pointer().is_set()) {
++#if MIR_SERVER_MAJOR_VERSION < 2
+ Q_EMIT confinesMousePointerChanged(modifications.confine_pointer().value() == mir_pointer_confined_to_window);
++#else
++ Q_EMIT confinesMousePointerChanged((modifications.confine_pointer().value() == mir_pointer_confined_oneshot) ||
++ (modifications.confine_pointer().value() == mir_pointer_confined_persistent));
++#endif
+ }
+ if (modifications.name().is_set()) {
+ Q_EMIT nameChanged(QString::fromStdString(modifications.name().value()));
+diff --git a/src/platforms/mirserver/urlbuilderdispatcher.cpp b/src/platforms/mirserver/urlbuilderdispatcher.cpp
+new file mode 100644
+index 00000000..f246faf4
+--- /dev/null
++++ b/src/platforms/mirserver/urlbuilderdispatcher.cpp
+@@ -0,0 +1,56 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include "urlbuilderdispatcher.h"
++#include "logging.h"
++
++#include <QDebug>
++#include <QUrl>
++
++#define DEBUG_MSG qCDebug(QTMIR_URLBUILDER).nospace().noquote() << __func__
++
++namespace qtmir
++{
++URLBuilderDispatcher::URLBuilderDispatcher(std::shared_ptr<QPlatformServices> const services)
++ : mLastRemaining{0},
++ mCurrentUrl{},
++ mServices(services)
++{}
++
++void URLBuilderDispatcher::urlInput(uint32_t remaining, std::string const &url) {
++
++ QByteArray bytes = QByteArray::fromStdString(url);
++ DEBUG_MSG << "(" << remaining << ", \"" << bytes << "\")";
++
++ if (remaining > mLastRemaining) {
++ mCurrentUrl = "";
++ }
++
++ if (remaining == 0) {
++ mLastRemaining = 0;
++ mCurrentUrl.append(bytes);
++ QUrl myUrl = QUrl::fromEncoded(mCurrentUrl);
++ mServices->openUrl(myUrl);
++ mCurrentUrl = QByteArray();
++ return;
++ } else {
++ mCurrentUrl.append(bytes);
++ mLastRemaining = remaining;
++ return;
++ }
++}
++}
++
+diff --git a/src/platforms/mirserver/urlbuilderdispatcher.h b/src/platforms/mirserver/urlbuilderdispatcher.h
+new file mode 100644
+index 00000000..12d24c16
+--- /dev/null
++++ b/src/platforms/mirserver/urlbuilderdispatcher.h
+@@ -0,0 +1,47 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#pragma once
++
++#include <stdint.h>
++#include <memory>
++
++#include <QByteArray>
++#include <qpa/qplatformservices.h>
++#include <QLoggingCategory>
++
++#include "services.h"
++
++// The QtWayland url_open IPC call will split all URLs into 128-byte chunks then
++// call the event via Wayland IPC. This object un-splits the URL and sends it
++// to URL-Dispatcher once it receives the last chunk (denoted by 'remaining'
++// reaching zero).
++
++namespace qtmir
++{
++
++class URLBuilderDispatcher {
++public:
++ URLBuilderDispatcher(std::shared_ptr<QPlatformServices> const);
++
++ void urlInput(uint32_t, std::string const&);
++
++private:
++ uint32_t mLastRemaining;
++ QByteArray mCurrentUrl;
++ std::shared_ptr<QPlatformServices> mServices;
++};
++}
+diff --git a/src/platforms/mirserver/wayland-generated/CMakeLists.txt b/src/platforms/mirserver/wayland-generated/CMakeLists.txt
+new file mode 100644
+index 00000000..b535a429
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/CMakeLists.txt
+@@ -0,0 +1,24 @@
++function(add_wayland_protocol PREFIX PROTOCOL)
++ set(PROTOCOL_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../wayland-protocols/${PROTOCOL}.xml")
++
++ set(GENERATE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${PROTOCOL}_wrapper")
++
++ add_custom_command(
++ OUTPUT ${GENERATE_FILE}.cpp
++ OUTPUT ${GENERATE_FILE}.h
++ DEPENDS ${PROTOCOL_FILE}
++ COMMAND "sh" "-c" "/usr/bin/mir_wayland_generator ${PREFIX} ${PROTOCOL_FILE} header >${GENERATE_FILE}.h"
++ COMMAND "sh" "-c" "/usr/bin/mir_wayland_generator ${PREFIX} ${PROTOCOL_FILE} source >${GENERATE_FILE}.cpp"
++ )
++
++ set(GENERATED_FILES ${GENERATED_FILES} "${GENERATE_FILE}.h" "${GENERATE_FILE}.cpp" PARENT_SCOPE)
++endfunction()
++
++add_wayland_protocol("qt_" "qt-windowmanager")
++add_wayland_protocol("z" "xdg-decoration-unstable-v1")
++add_wayland_protocol("org_kde_" "server-decoration")
++
++add_custom_target(refresh-wayland-wrapper
++ DEPENDS ${GENERATED_FILES}
++ SOURCES ${GENERATED_FILES}
++)
+diff --git a/src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.cpp b/src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.cpp
+new file mode 100644
+index 00000000..b706cd5f
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.cpp
+@@ -0,0 +1,177 @@
++/*
++ * AUTOGENERATED - DO NOT EDIT
++ *
++ * This file is generated from qt-windowmanager.xml by mir_wayland_generator
++ */
++
++#include "qt-windowmanager_wrapper.h"
++
++#include <boost/exception/diagnostic_information.hpp>
++#include <wayland-server-core.h>
++
++#include "mir/log.h"
++#include "mir/wayland/protocol_error.h"
++
++namespace mir
++{
++namespace wayland
++{
++extern struct wl_interface const qt_windowmanager_interface_data;
++}
++}
++
++namespace mw = mir::wayland;
++
++namespace
++{
++struct wl_interface const* all_null_types [] {
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr};
++}
++
++// Windowmanager
++
++struct mw::Windowmanager::Thunks
++{
++ static int const supported_version;
++
++ static void open_url_thunk(struct wl_client* client, struct wl_resource* resource, uint32_t remaining, char const* url)
++ {
++ try
++ {
++ auto me = static_cast<Windowmanager*>(wl_resource_get_user_data(resource));
++ me->open_url(remaining, url);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "Windowmanager::open_url()");
++ }
++ }
++
++ static void resource_destroyed_thunk(wl_resource* resource)
++ {
++ delete static_cast<Windowmanager*>(wl_resource_get_user_data(resource));
++ }
++
++ static void bind_thunk(struct wl_client* client, void* data, uint32_t version, uint32_t id)
++ {
++ auto me = static_cast<Windowmanager::Global*>(data);
++ auto resource = wl_resource_create(
++ client,
++ &qt_windowmanager_interface_data,
++ std::min((int)version, Thunks::supported_version),
++ id);
++ if (resource == nullptr)
++ {
++ wl_client_post_no_memory(client);
++ BOOST_THROW_EXCEPTION((std::bad_alloc{}));
++ }
++ try
++ {
++ me->bind(resource);
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "Windowmanager global bind");
++ }
++ }
++
++ static struct wl_message const request_messages[];
++ static struct wl_message const event_messages[];
++ static void const* request_vtable[];
++};
++
++int const mw::Windowmanager::Thunks::supported_version = 1;
++
++mw::Windowmanager::Windowmanager(struct wl_resource* resource, Version<1>)
++ : Resource{resource}
++{
++ wl_resource_set_implementation(resource, Thunks::request_vtable, this, &Thunks::resource_destroyed_thunk);
++}
++
++mw::Windowmanager::~Windowmanager()
++{
++ wl_resource_set_implementation(resource, nullptr, nullptr, nullptr);
++}
++
++void mw::Windowmanager::send_hints_event(int32_t show_is_fullscreen) const
++{
++ wl_resource_post_event(resource, Opcode::hints, show_is_fullscreen);
++}
++
++void mw::Windowmanager::send_quit_event() const
++{
++ wl_resource_post_event(resource, Opcode::quit);
++}
++
++bool mw::Windowmanager::is_instance(wl_resource* resource)
++{
++ return wl_resource_instance_of(resource, &qt_windowmanager_interface_data, Thunks::request_vtable);
++}
++
++void mw::Windowmanager::destroy_and_delete() const
++{
++ // Will result in this object being deleted
++ wl_resource_destroy(resource);
++}
++
++mw::Windowmanager::Global::Global(wl_display* display, Version<1>)
++ : wayland::Global{
++ wl_global_create(
++ display,
++ &qt_windowmanager_interface_data,
++ Thunks::supported_version,
++ this,
++ &Thunks::bind_thunk)}
++{
++}
++
++auto mw::Windowmanager::Global::interface_name() const -> char const*
++{
++ return Windowmanager::interface_name;
++}
++
++struct wl_message const mw::Windowmanager::Thunks::request_messages[] {
++ {"open_url", "us", all_null_types}};
++
++struct wl_message const mw::Windowmanager::Thunks::event_messages[] {
++ {"hints", "i", all_null_types},
++ {"quit", "", all_null_types}};
++
++void const* mw::Windowmanager::Thunks::request_vtable[] {
++ (void*)Thunks::open_url_thunk};
++
++mw::Windowmanager* mw::Windowmanager::from(struct wl_resource* resource)
++{
++ if (resource &&
++ wl_resource_instance_of(resource, &qt_windowmanager_interface_data, Windowmanager::Thunks::request_vtable))
++ {
++ return static_cast<Windowmanager*>(wl_resource_get_user_data(resource));
++ }
++ else
++ {
++ return nullptr;
++ }
++}
++
++namespace mir
++{
++namespace wayland
++{
++
++struct wl_interface const qt_windowmanager_interface_data {
++ mw::Windowmanager::interface_name,
++ mw::Windowmanager::Thunks::supported_version,
++ 1, mw::Windowmanager::Thunks::request_messages,
++ 2, mw::Windowmanager::Thunks::event_messages};
++
++}
++}
+diff --git a/src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.h b/src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.h
+new file mode 100644
+index 00000000..00a7019a
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/qt-windowmanager_wrapper.h
+@@ -0,0 +1,69 @@
++/*
++ * AUTOGENERATED - DO NOT EDIT
++ *
++ * This file is generated from qt-windowmanager.xml by mir_wayland_generator
++ */
++
++#ifndef MIR_FRONTEND_WAYLAND_QT_WINDOWMANAGER_XML_WRAPPER
++#define MIR_FRONTEND_WAYLAND_QT_WINDOWMANAGER_XML_WRAPPER
++
++#include <optional>
++
++#include "mir/fd.h"
++#include <wayland-server-core.h>
++
++#include "mir/wayland/resource.h"
++#include "mir/wayland/global.h"
++
++namespace mir
++{
++namespace wayland
++{
++
++class Windowmanager;
++
++class Windowmanager : public Resource
++{
++public:
++ static char const constexpr* interface_name = "qt_windowmanager";
++
++ static Windowmanager* from(struct wl_resource*);
++
++ Windowmanager(struct wl_resource* resource, Version<1>);
++ virtual ~Windowmanager();
++
++ void send_hints_event(int32_t show_is_fullscreen) const;
++ void send_quit_event() const;
++
++ void destroy_and_delete() const;
++
++ struct Opcode
++ {
++ static uint32_t const hints = 0;
++ static uint32_t const quit = 1;
++ };
++
++ struct Thunks;
++
++ static bool is_instance(wl_resource* resource);
++
++ class Global : public wayland::Global
++ {
++ public:
++ Global(wl_display* display, Version<1>);
++
++ auto interface_name() const -> char const* override;
++
++ private:
++ virtual void bind(wl_resource* new_qt_windowmanager) = 0;
++ friend Windowmanager::Thunks;
++ };
++
++private:
++ virtual void open_url(uint32_t remaining, std::string const& url) = 0;
++};
++
++}
++}
++
++#endif // MIR_FRONTEND_WAYLAND_QT_WINDOWMANAGER_XML_WRAPPER
+diff --git a/src/platforms/mirserver/wayland-generated/server-decoration_wrapper.cpp b/src/platforms/mirserver/wayland-generated/server-decoration_wrapper.cpp
+new file mode 100644
+index 00000000..18cf00f9
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/server-decoration_wrapper.cpp
+@@ -0,0 +1,295 @@
++/*
++ * AUTOGENERATED - DO NOT EDIT
++ *
++ * This file is generated from server-decoration.xml by mir_wayland_generator
++ */
++
++#include "server-decoration_wrapper.h"
++
++#include <boost/exception/diagnostic_information.hpp>
++#include <wayland-server-core.h>
++
++#include "mir/log.h"
++#include "mir/wayland/protocol_error.h"
++
++namespace mir
++{
++namespace wayland
++{
++extern struct wl_interface const org_kde_kwin_server_decoration_interface_data;
++extern struct wl_interface const org_kde_kwin_server_decoration_manager_interface_data;
++extern struct wl_interface const wl_surface_interface_data;
++}
++}
++
++namespace mw = mir::wayland;
++
++namespace
++{
++struct wl_interface const* all_null_types [] {
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr};
++}
++
++// KwinServerDecorationManager
++
++struct mw::KwinServerDecorationManager::Thunks
++{
++ static int const supported_version;
++
++ static void create_thunk(struct wl_client* client, struct wl_resource* resource, uint32_t id, struct wl_resource* surface)
++ {
++ wl_resource* id_resolved{
++ wl_resource_create(client, &org_kde_kwin_server_decoration_interface_data, wl_resource_get_version(resource), id)};
++ if (id_resolved == nullptr)
++ {
++ wl_client_post_no_memory(client);
++ BOOST_THROW_EXCEPTION((std::bad_alloc{}));
++ }
++ try
++ {
++ auto me = static_cast<KwinServerDecorationManager*>(wl_resource_get_user_data(resource));
++ me->create(id_resolved, surface);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "KwinServerDecorationManager::create()");
++ }
++ }
++
++ static void resource_destroyed_thunk(wl_resource* resource)
++ {
++ delete static_cast<KwinServerDecorationManager*>(wl_resource_get_user_data(resource));
++ }
++
++ static void bind_thunk(struct wl_client* client, void* data, uint32_t version, uint32_t id)
++ {
++ auto me = static_cast<KwinServerDecorationManager::Global*>(data);
++ auto resource = wl_resource_create(
++ client,
++ &org_kde_kwin_server_decoration_manager_interface_data,
++ std::min((int)version, Thunks::supported_version),
++ id);
++ if (resource == nullptr)
++ {
++ wl_client_post_no_memory(client);
++ BOOST_THROW_EXCEPTION((std::bad_alloc{}));
++ }
++ try
++ {
++ me->bind(resource);
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "KwinServerDecorationManager global bind");
++ }
++ }
++
++ static struct wl_interface const* create_types[];
++ static struct wl_message const request_messages[];
++ static struct wl_message const event_messages[];
++ static void const* request_vtable[];
++};
++
++int const mw::KwinServerDecorationManager::Thunks::supported_version = 1;
++
++mw::KwinServerDecorationManager::KwinServerDecorationManager(struct wl_resource* resource, Version<1>)
++ : Resource{resource}
++{
++ wl_resource_set_implementation(resource, Thunks::request_vtable, this, &Thunks::resource_destroyed_thunk);
++}
++
++mw::KwinServerDecorationManager::~KwinServerDecorationManager()
++{
++ wl_resource_set_implementation(resource, nullptr, nullptr, nullptr);
++}
++
++void mw::KwinServerDecorationManager::send_default_mode_event(uint32_t mode) const
++{
++ wl_resource_post_event(resource, Opcode::default_mode, mode);
++}
++
++bool mw::KwinServerDecorationManager::is_instance(wl_resource* resource)
++{
++ return wl_resource_instance_of(resource, &org_kde_kwin_server_decoration_manager_interface_data, Thunks::request_vtable);
++}
++
++void mw::KwinServerDecorationManager::destroy_and_delete() const
++{
++ // Will result in this object being deleted
++ wl_resource_destroy(resource);
++}
++
++uint32_t const mw::KwinServerDecorationManager::Mode::None;
++uint32_t const mw::KwinServerDecorationManager::Mode::Client;
++uint32_t const mw::KwinServerDecorationManager::Mode::Server;
++
++mw::KwinServerDecorationManager::Global::Global(wl_display* display, Version<1>)
++ : wayland::Global{
++ wl_global_create(
++ display,
++ &org_kde_kwin_server_decoration_manager_interface_data,
++ Thunks::supported_version,
++ this,
++ &Thunks::bind_thunk)}
++{
++}
++
++auto mw::KwinServerDecorationManager::Global::interface_name() const -> char const*
++{
++ return KwinServerDecorationManager::interface_name;
++}
++
++struct wl_interface const* mw::KwinServerDecorationManager::Thunks::create_types[] {
++ &org_kde_kwin_server_decoration_interface_data,
++ &wl_surface_interface_data};
++
++struct wl_message const mw::KwinServerDecorationManager::Thunks::request_messages[] {
++ {"create", "no", create_types}};
++
++struct wl_message const mw::KwinServerDecorationManager::Thunks::event_messages[] {
++ {"default_mode", "u", all_null_types}};
++
++void const* mw::KwinServerDecorationManager::Thunks::request_vtable[] {
++ (void*)Thunks::create_thunk};
++
++mw::KwinServerDecorationManager* mw::KwinServerDecorationManager::from(struct wl_resource* resource)
++{
++ if (resource &&
++ wl_resource_instance_of(resource, &org_kde_kwin_server_decoration_manager_interface_data, KwinServerDecorationManager::Thunks::request_vtable))
++ {
++ return static_cast<KwinServerDecorationManager*>(wl_resource_get_user_data(resource));
++ }
++ else
++ {
++ return nullptr;
++ }
++}
++
++// KwinServerDecoration
++
++struct mw::KwinServerDecoration::Thunks
++{
++ static int const supported_version;
++
++ static void release_thunk(struct wl_client* client, struct wl_resource* resource)
++ {
++ try
++ {
++ wl_resource_destroy(resource);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "KwinServerDecoration::release()");
++ }
++ }
++
++ static void request_mode_thunk(struct wl_client* client, struct wl_resource* resource, uint32_t mode)
++ {
++ try
++ {
++ auto me = static_cast<KwinServerDecoration*>(wl_resource_get_user_data(resource));
++ me->request_mode(mode);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "KwinServerDecoration::request_mode()");
++ }
++ }
++
++ static void resource_destroyed_thunk(wl_resource* resource)
++ {
++ delete static_cast<KwinServerDecoration*>(wl_resource_get_user_data(resource));
++ }
++
++ static struct wl_message const request_messages[];
++ static struct wl_message const event_messages[];
++ static void const* request_vtable[];
++};
++
++int const mw::KwinServerDecoration::Thunks::supported_version = 1;
++
++mw::KwinServerDecoration::KwinServerDecoration(struct wl_resource* resource, Version<1>)
++ : Resource{resource}
++{
++ wl_resource_set_implementation(resource, Thunks::request_vtable, this, &Thunks::resource_destroyed_thunk);
++}
++
++mw::KwinServerDecoration::~KwinServerDecoration()
++{
++ wl_resource_set_implementation(resource, nullptr, nullptr, nullptr);
++}
++
++void mw::KwinServerDecoration::send_mode_event(uint32_t mode) const
++{
++ wl_resource_post_event(resource, Opcode::mode, mode);
++}
++
++bool mw::KwinServerDecoration::is_instance(wl_resource* resource)
++{
++ return wl_resource_instance_of(resource, &org_kde_kwin_server_decoration_interface_data, Thunks::request_vtable);
++}
++
++uint32_t const mw::KwinServerDecoration::Mode::None;
++uint32_t const mw::KwinServerDecoration::Mode::Client;
++uint32_t const mw::KwinServerDecoration::Mode::Server;
++
++struct wl_message const mw::KwinServerDecoration::Thunks::request_messages[] {
++ {"release", "", all_null_types},
++ {"request_mode", "u", all_null_types}};
++
++struct wl_message const mw::KwinServerDecoration::Thunks::event_messages[] {
++ {"mode", "u", all_null_types}};
++
++void const* mw::KwinServerDecoration::Thunks::request_vtable[] {
++ (void*)Thunks::release_thunk,
++ (void*)Thunks::request_mode_thunk};
++
++mw::KwinServerDecoration* mw::KwinServerDecoration::from(struct wl_resource* resource)
++{
++ if (resource &&
++ wl_resource_instance_of(resource, &org_kde_kwin_server_decoration_interface_data, KwinServerDecoration::Thunks::request_vtable))
++ {
++ return static_cast<KwinServerDecoration*>(wl_resource_get_user_data(resource));
++ }
++ else
++ {
++ return nullptr;
++ }
++}
++
++namespace mir
++{
++namespace wayland
++{
++
++struct wl_interface const org_kde_kwin_server_decoration_manager_interface_data {
++ mw::KwinServerDecorationManager::interface_name,
++ mw::KwinServerDecorationManager::Thunks::supported_version,
++ 1, mw::KwinServerDecorationManager::Thunks::request_messages,
++ 1, mw::KwinServerDecorationManager::Thunks::event_messages};
++
++struct wl_interface const org_kde_kwin_server_decoration_interface_data {
++ mw::KwinServerDecoration::interface_name,
++ mw::KwinServerDecoration::Thunks::supported_version,
++ 2, mw::KwinServerDecoration::Thunks::request_messages,
++ 1, mw::KwinServerDecoration::Thunks::event_messages};
++
++}
++}
+diff --git a/src/platforms/mirserver/wayland-generated/server-decoration_wrapper.h b/src/platforms/mirserver/wayland-generated/server-decoration_wrapper.h
+new file mode 100644
+index 00000000..87a42d47
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/server-decoration_wrapper.h
+@@ -0,0 +1,107 @@
++/*
++ * AUTOGENERATED - DO NOT EDIT
++ *
++ * This file is generated from server-decoration.xml by mir_wayland_generator
++ */
++
++#ifndef MIR_FRONTEND_WAYLAND_SERVER_DECORATION_XML_WRAPPER
++#define MIR_FRONTEND_WAYLAND_SERVER_DECORATION_XML_WRAPPER
++
++#include <optional>
++
++#include "mir/fd.h"
++#include <wayland-server-core.h>
++
++#include "mir/wayland/resource.h"
++#include "mir/wayland/global.h"
++
++namespace mir
++{
++namespace wayland
++{
++
++class KwinServerDecorationManager;
++class KwinServerDecoration;
++
++class KwinServerDecorationManager : public Resource
++{
++public:
++ static char const constexpr* interface_name = "org_kde_kwin_server_decoration_manager";
++
++ static KwinServerDecorationManager* from(struct wl_resource*);
++
++ KwinServerDecorationManager(struct wl_resource* resource, Version<1>);
++ virtual ~KwinServerDecorationManager();
++
++ void send_default_mode_event(uint32_t mode) const;
++
++ void destroy_and_delete() const;
++
++ struct Mode
++ {
++ static uint32_t const None = 0;
++ static uint32_t const Client = 1;
++ static uint32_t const Server = 2;
++ };
++
++ struct Opcode
++ {
++ static uint32_t const default_mode = 0;
++ };
++
++ struct Thunks;
++
++ static bool is_instance(wl_resource* resource);
++
++ class Global : public wayland::Global
++ {
++ public:
++ Global(wl_display* display, Version<1>);
++
++ auto interface_name() const -> char const* override;
++
++ private:
++ virtual void bind(wl_resource* new_org_kde_kwin_server_decoration_manager) = 0;
++ friend KwinServerDecorationManager::Thunks;
++ };
++
++private:
++ virtual void create(struct wl_resource* id, struct wl_resource* surface) = 0;
++};
++
++class KwinServerDecoration : public Resource
++{
++public:
++ static char const constexpr* interface_name = "org_kde_kwin_server_decoration";
++
++ static KwinServerDecoration* from(struct wl_resource*);
++
++ KwinServerDecoration(struct wl_resource* resource, Version<1>);
++ virtual ~KwinServerDecoration();
++
++ void send_mode_event(uint32_t mode) const;
++
++ struct Mode
++ {
++ static uint32_t const None = 0;
++ static uint32_t const Client = 1;
++ static uint32_t const Server = 2;
++ };
++
++ struct Opcode
++ {
++ static uint32_t const mode = 0;
++ };
++
++ struct Thunks;
++
++ static bool is_instance(wl_resource* resource);
++
++private:
++ virtual void request_mode(uint32_t mode) = 0;
++};
++
++}
++}
++
++#endif // MIR_FRONTEND_WAYLAND_SERVER_DECORATION_XML_WRAPPER
+diff --git a/src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.cpp b/src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.cpp
+new file mode 100644
+index 00000000..d40d19b7
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.cpp
+@@ -0,0 +1,315 @@
++/*
++ * AUTOGENERATED - DO NOT EDIT
++ *
++ * This file is generated from xdg-decoration-unstable-v1.xml by mir_wayland_generator
++ */
++
++#include "xdg-decoration-unstable-v1_wrapper.h"
++
++#include <boost/exception/diagnostic_information.hpp>
++#include <wayland-server-core.h>
++
++#include "mir/log.h"
++#include "mir/wayland/protocol_error.h"
++
++namespace mir
++{
++namespace wayland
++{
++extern struct wl_interface const xdg_toplevel_interface_data;
++extern struct wl_interface const zxdg_decoration_manager_v1_interface_data;
++extern struct wl_interface const zxdg_toplevel_decoration_v1_interface_data;
++}
++}
++
++namespace mw = mir::wayland;
++
++namespace
++{
++struct wl_interface const* all_null_types [] {
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr,
++ nullptr};
++}
++
++// XdgDecorationManagerV1
++
++struct mw::XdgDecorationManagerV1::Thunks
++{
++ static int const supported_version;
++
++ static void destroy_thunk(struct wl_client* client, struct wl_resource* resource)
++ {
++ try
++ {
++ wl_resource_destroy(resource);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "XdgDecorationManagerV1::destroy()");
++ }
++ }
++
++ static void get_toplevel_decoration_thunk(struct wl_client* client, struct wl_resource* resource, uint32_t id, struct wl_resource* toplevel)
++ {
++ wl_resource* id_resolved{
++ wl_resource_create(client, &zxdg_toplevel_decoration_v1_interface_data, wl_resource_get_version(resource), id)};
++ if (id_resolved == nullptr)
++ {
++ wl_client_post_no_memory(client);
++ BOOST_THROW_EXCEPTION((std::bad_alloc{}));
++ }
++ try
++ {
++ auto me = static_cast<XdgDecorationManagerV1*>(wl_resource_get_user_data(resource));
++ me->get_toplevel_decoration(id_resolved, toplevel);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "XdgDecorationManagerV1::get_toplevel_decoration()");
++ }
++ }
++
++ static void resource_destroyed_thunk(wl_resource* resource)
++ {
++ delete static_cast<XdgDecorationManagerV1*>(wl_resource_get_user_data(resource));
++ }
++
++ static void bind_thunk(struct wl_client* client, void* data, uint32_t version, uint32_t id)
++ {
++ auto me = static_cast<XdgDecorationManagerV1::Global*>(data);
++ auto resource = wl_resource_create(
++ client,
++ &zxdg_decoration_manager_v1_interface_data,
++ std::min((int)version, Thunks::supported_version),
++ id);
++ if (resource == nullptr)
++ {
++ wl_client_post_no_memory(client);
++ BOOST_THROW_EXCEPTION((std::bad_alloc{}));
++ }
++ try
++ {
++ me->bind(resource);
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "XdgDecorationManagerV1 global bind");
++ }
++ }
++
++ static struct wl_interface const* get_toplevel_decoration_types[];
++ static struct wl_message const request_messages[];
++ static void const* request_vtable[];
++};
++
++int const mw::XdgDecorationManagerV1::Thunks::supported_version = 1;
++
++mw::XdgDecorationManagerV1::XdgDecorationManagerV1(struct wl_resource* resource, Version<1>)
++ : Resource{resource}
++{
++ wl_resource_set_implementation(resource, Thunks::request_vtable, this, &Thunks::resource_destroyed_thunk);
++}
++
++mw::XdgDecorationManagerV1::~XdgDecorationManagerV1()
++{
++ wl_resource_set_implementation(resource, nullptr, nullptr, nullptr);
++}
++
++bool mw::XdgDecorationManagerV1::is_instance(wl_resource* resource)
++{
++ return wl_resource_instance_of(resource, &zxdg_decoration_manager_v1_interface_data, Thunks::request_vtable);
++}
++
++mw::XdgDecorationManagerV1::Global::Global(wl_display* display, Version<1>)
++ : wayland::Global{
++ wl_global_create(
++ display,
++ &zxdg_decoration_manager_v1_interface_data,
++ Thunks::supported_version,
++ this,
++ &Thunks::bind_thunk)}
++{
++}
++
++auto mw::XdgDecorationManagerV1::Global::interface_name() const -> char const*
++{
++ return XdgDecorationManagerV1::interface_name;
++}
++
++struct wl_interface const* mw::XdgDecorationManagerV1::Thunks::get_toplevel_decoration_types[] {
++ &zxdg_toplevel_decoration_v1_interface_data,
++ &xdg_toplevel_interface_data};
++
++struct wl_message const mw::XdgDecorationManagerV1::Thunks::request_messages[] {
++ {"destroy", "", all_null_types},
++ {"get_toplevel_decoration", "no", get_toplevel_decoration_types}};
++
++void const* mw::XdgDecorationManagerV1::Thunks::request_vtable[] {
++ (void*)Thunks::destroy_thunk,
++ (void*)Thunks::get_toplevel_decoration_thunk};
++
++mw::XdgDecorationManagerV1* mw::XdgDecorationManagerV1::from(struct wl_resource* resource)
++{
++ if (resource &&
++ wl_resource_instance_of(resource, &zxdg_decoration_manager_v1_interface_data, XdgDecorationManagerV1::Thunks::request_vtable))
++ {
++ return static_cast<XdgDecorationManagerV1*>(wl_resource_get_user_data(resource));
++ }
++ else
++ {
++ return nullptr;
++ }
++}
++
++// XdgToplevelDecorationV1
++
++struct mw::XdgToplevelDecorationV1::Thunks
++{
++ static int const supported_version;
++
++ static void destroy_thunk(struct wl_client* client, struct wl_resource* resource)
++ {
++ try
++ {
++ wl_resource_destroy(resource);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "XdgToplevelDecorationV1::destroy()");
++ }
++ }
++
++ static void set_mode_thunk(struct wl_client* client, struct wl_resource* resource, uint32_t mode)
++ {
++ try
++ {
++ auto me = static_cast<XdgToplevelDecorationV1*>(wl_resource_get_user_data(resource));
++ me->set_mode(mode);
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "XdgToplevelDecorationV1::set_mode()");
++ }
++ }
++
++ static void unset_mode_thunk(struct wl_client* client, struct wl_resource* resource)
++ {
++ try
++ {
++ auto me = static_cast<XdgToplevelDecorationV1*>(wl_resource_get_user_data(resource));
++ me->unset_mode();
++ }
++ catch(ProtocolError const& err)
++ {
++ wl_resource_post_error(err.resource(), err.code(), "%s", err.message());
++ }
++ catch(...)
++ {
++ internal_error_processing_request(client, "XdgToplevelDecorationV1::unset_mode()");
++ }
++ }
++
++ static void resource_destroyed_thunk(wl_resource* resource)
++ {
++ delete static_cast<XdgToplevelDecorationV1*>(wl_resource_get_user_data(resource));
++ }
++
++ static struct wl_message const request_messages[];
++ static struct wl_message const event_messages[];
++ static void const* request_vtable[];
++};
++
++int const mw::XdgToplevelDecorationV1::Thunks::supported_version = 1;
++
++mw::XdgToplevelDecorationV1::XdgToplevelDecorationV1(struct wl_resource* resource, Version<1>)
++ : Resource{resource}
++{
++ wl_resource_set_implementation(resource, Thunks::request_vtable, this, &Thunks::resource_destroyed_thunk);
++}
++
++mw::XdgToplevelDecorationV1::~XdgToplevelDecorationV1()
++{
++ wl_resource_set_implementation(resource, nullptr, nullptr, nullptr);
++}
++
++void mw::XdgToplevelDecorationV1::send_configure_event(uint32_t mode) const
++{
++ wl_resource_post_event(resource, Opcode::configure, mode);
++}
++
++bool mw::XdgToplevelDecorationV1::is_instance(wl_resource* resource)
++{
++ return wl_resource_instance_of(resource, &zxdg_toplevel_decoration_v1_interface_data, Thunks::request_vtable);
++}
++
++uint32_t const mw::XdgToplevelDecorationV1::Error::unconfigured_buffer;
++uint32_t const mw::XdgToplevelDecorationV1::Error::already_constructed;
++uint32_t const mw::XdgToplevelDecorationV1::Error::orphaned;
++uint32_t const mw::XdgToplevelDecorationV1::Mode::client_side;
++uint32_t const mw::XdgToplevelDecorationV1::Mode::server_side;
++
++struct wl_message const mw::XdgToplevelDecorationV1::Thunks::request_messages[] {
++ {"destroy", "", all_null_types},
++ {"set_mode", "u", all_null_types},
++ {"unset_mode", "", all_null_types}};
++
++struct wl_message const mw::XdgToplevelDecorationV1::Thunks::event_messages[] {
++ {"configure", "u", all_null_types}};
++
++void const* mw::XdgToplevelDecorationV1::Thunks::request_vtable[] {
++ (void*)Thunks::destroy_thunk,
++ (void*)Thunks::set_mode_thunk,
++ (void*)Thunks::unset_mode_thunk};
++
++mw::XdgToplevelDecorationV1* mw::XdgToplevelDecorationV1::from(struct wl_resource* resource)
++{
++ if (resource &&
++ wl_resource_instance_of(resource, &zxdg_toplevel_decoration_v1_interface_data, XdgToplevelDecorationV1::Thunks::request_vtable))
++ {
++ return static_cast<XdgToplevelDecorationV1*>(wl_resource_get_user_data(resource));
++ }
++ else
++ {
++ return nullptr;
++ }
++}
++
++namespace mir
++{
++namespace wayland
++{
++
++struct wl_interface const zxdg_decoration_manager_v1_interface_data {
++ mw::XdgDecorationManagerV1::interface_name,
++ mw::XdgDecorationManagerV1::Thunks::supported_version,
++ 2, mw::XdgDecorationManagerV1::Thunks::request_messages,
++ 0, nullptr};
++
++struct wl_interface const zxdg_toplevel_decoration_v1_interface_data {
++ mw::XdgToplevelDecorationV1::interface_name,
++ mw::XdgToplevelDecorationV1::Thunks::supported_version,
++ 3, mw::XdgToplevelDecorationV1::Thunks::request_messages,
++ 1, mw::XdgToplevelDecorationV1::Thunks::event_messages};
++
++}
++}
+diff --git a/src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.h b/src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.h
+new file mode 100644
+index 00000000..7483ba44
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-generated/xdg-decoration-unstable-v1_wrapper.h
+@@ -0,0 +1,98 @@
++/*
++ * AUTOGENERATED - DO NOT EDIT
++ *
++ * This file is generated from xdg-decoration-unstable-v1.xml by mir_wayland_generator
++ */
++
++#ifndef MIR_FRONTEND_WAYLAND_XDG_DECORATION_UNSTABLE_V1_XML_WRAPPER
++#define MIR_FRONTEND_WAYLAND_XDG_DECORATION_UNSTABLE_V1_XML_WRAPPER
++
++#include <optional>
++
++#include "mir/fd.h"
++#include <wayland-server-core.h>
++
++#include "mir/wayland/resource.h"
++#include "mir/wayland/global.h"
++
++namespace mir
++{
++namespace wayland
++{
++
++class XdgDecorationManagerV1;
++class XdgToplevelDecorationV1;
++
++class XdgDecorationManagerV1 : public Resource
++{
++public:
++ static char const constexpr* interface_name = "zxdg_decoration_manager_v1";
++
++ static XdgDecorationManagerV1* from(struct wl_resource*);
++
++ XdgDecorationManagerV1(struct wl_resource* resource, Version<1>);
++ virtual ~XdgDecorationManagerV1();
++
++ struct Thunks;
++
++ static bool is_instance(wl_resource* resource);
++
++ class Global : public wayland::Global
++ {
++ public:
++ Global(wl_display* display, Version<1>);
++
++ auto interface_name() const -> char const* override;
++
++ private:
++ virtual void bind(wl_resource* new_zxdg_decoration_manager_v1) = 0;
++ friend XdgDecorationManagerV1::Thunks;
++ };
++
++private:
++ virtual void get_toplevel_decoration(struct wl_resource* id, struct wl_resource* toplevel) = 0;
++};
++
++class XdgToplevelDecorationV1 : public Resource
++{
++public:
++ static char const constexpr* interface_name = "zxdg_toplevel_decoration_v1";
++
++ static XdgToplevelDecorationV1* from(struct wl_resource*);
++
++ XdgToplevelDecorationV1(struct wl_resource* resource, Version<1>);
++ virtual ~XdgToplevelDecorationV1();
++
++ void send_configure_event(uint32_t mode) const;
++
++ struct Error
++ {
++ static uint32_t const unconfigured_buffer = 0;
++ static uint32_t const already_constructed = 1;
++ static uint32_t const orphaned = 2;
++ };
++
++ struct Mode
++ {
++ static uint32_t const client_side = 1;
++ static uint32_t const server_side = 2;
++ };
++
++ struct Opcode
++ {
++ static uint32_t const configure = 0;
++ };
++
++ struct Thunks;
++
++ static bool is_instance(wl_resource* resource);
++
++private:
++ virtual void set_mode(uint32_t mode) = 0;
++ virtual void unset_mode() = 0;
++};
++
++}
++}
++
++#endif // MIR_FRONTEND_WAYLAND_XDG_DECORATION_UNSTABLE_V1_XML_WRAPPER
+diff --git a/src/platforms/mirserver/wayland-protocols/qt-windowmanager.xml b/src/platforms/mirserver/wayland-protocols/qt-windowmanager.xml
+new file mode 100644
+index 00000000..86ddff72
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-protocols/qt-windowmanager.xml
+@@ -0,0 +1,58 @@
++<protocol name="qt_windowmanager">
++
++ <copyright>
++ Copyright (C) 2015 The Qt Company Ltd.
++ Contact: http://www.qt.io/licensing/
++
++ This file is part of the plugins of the Qt Toolkit.
++
++ $QT_BEGIN_LICENSE:BSD$
++ You may use this file under the terms of the BSD license as follows:
++
++ "Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ * Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ * Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in
++ the documentation and/or other materials provided with the
++ distribution.
++ * Neither the name of The Qt Company Ltd 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 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."
++
++ $QT_END_LICENSE$
++ </copyright>
++
++ <interface name="qt_windowmanager" version="1">
++ <request name="open_url">
++ <description summary="client requests a url to be opened">
++ If remaining is not 0 this is a multipart request, and
++ the server must concatenate subsequent requst urls to and
++ including a request where remaining is set to 0, before
++ it can handle the url.
++ </description>
++ <arg name="remaining" type="uint" />
++ <arg name="url" type="string" />
++ </request>
++ <event name="hints">
++ <arg name="show_is_fullscreen" type="int"/>
++ </event>
++ <event name="quit">
++ </event>
++ </interface>
++</protocol>
+diff --git a/src/platforms/mirserver/wayland-protocols/server-decoration.xml b/src/platforms/mirserver/wayland-protocols/server-decoration.xml
+new file mode 100644
+index 00000000..b70bec12
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-protocols/server-decoration.xml
+@@ -0,0 +1,85 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<protocol name="server_decoration">
++ <copyright><![CDATA[
++ SPDX-FileCopyrightText: 2015 Martin Gräßlin
++
++ SPDX-License-Identifier: LGPL-2.1-or-later
++ ]]></copyright>
++ <interface name="org_kde_kwin_server_decoration_manager" version="1">
++ <description summary="Server side window decoration manager">
++ This interface allows to coordinate whether the server should create
++ a server-side window decoration around a wl_surface representing a
++ shell surface (wl_shell_surface or similar). By announcing support
++ for this interface the server indicates that it supports server
++ side decorations.
++
++ Use in conjunction with zxdg_decoration_manager_v1 is undefined.
++ </description>
++ <request name="create">
++ <description summary="Create a server-side decoration object for a given surface">
++ When a client creates a server-side decoration object it indicates
++ that it supports the protocol. The client is supposed to tell the
++ server whether it wants server-side decorations or will provide
++ client-side decorations.
++
++ If the client does not create a server-side decoration object for
++ a surface the server interprets this as lack of support for this
++ protocol and considers it as client-side decorated. Nevertheless a
++ client-side decorated surface should use this protocol to indicate
++ to the server that it does not want a server-side deco.
++ </description>
++ <arg name="id" type="new_id" interface="org_kde_kwin_server_decoration"/>
++ <arg name="surface" type="object" interface="wl_surface"/>
++ </request>
++ <enum name="mode">
++ <description summary="Possible values to use in request_mode and the event mode."/>
++ <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/>
++ <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/>
++ <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/>
++ </enum>
++ <event name="default_mode">
++ <description summary="The default mode used on the server">
++ This event is emitted directly after binding the interface. It contains
++ the default mode for the decoration. When a new server decoration object
++ is created this new object will be in the default mode until the first
++ request_mode is requested.
++
++ The server may change the default mode at any time.
++ </description>
++ <arg name="mode" type="uint" summary="The default decoration mode applied to newly created server decorations."/>
++ </event>
++ </interface>
++ <interface name="org_kde_kwin_server_decoration" version="1">
++ <request name="release" type="destructor">
++ <description summary="release the server decoration object"/>
++ </request>
++ <enum name="mode">
++ <description summary="Possible values to use in request_mode and the event mode."/>
++ <entry name="None" value="0" summary="Undecorated: The surface is not decorated at all, neither server nor client-side. An example is a popup surface which should not be decorated."/>
++ <entry name="Client" value="1" summary="Client-side decoration: The decoration is part of the surface and the client."/>
++ <entry name="Server" value="2" summary="Server-side decoration: The server embeds the surface into a decoration frame."/>
++ </enum>
++ <request name="request_mode">
++ <description summary="The decoration mode the surface wants to use."/>
++ <arg name="mode" type="uint" summary="The mode this surface wants to use."/>
++ </request>
++ <event name="mode">
++ <description summary="The new decoration mode applied by the server">
++ This event is emitted directly after the decoration is created and
++ represents the base decoration policy by the server. E.g. a server
++ which wants all surfaces to be client-side decorated will send Client,
++ a server which wants server-side decoration will send Server.
++
++ The client can request a different mode through the decoration request.
++ The server will acknowledge this by another event with the same mode. So
++ even if a server prefers server-side decoration it's possible to force a
++ client-side decoration.
++
++ The server may emit this event at any time. In this case the client can
++ again request a different mode. It's the responsibility of the server to
++ prevent a feedback loop.
++ </description>
++ <arg name="mode" type="uint" summary="The decoration mode applied to the surface by the server."/>
++ </event>
++ </interface>
++</protocol>
+diff --git a/src/platforms/mirserver/wayland-protocols/xdg-decoration-unstable-v1.xml b/src/platforms/mirserver/wayland-protocols/xdg-decoration-unstable-v1.xml
+new file mode 100644
+index 00000000..e5967751
+--- /dev/null
++++ b/src/platforms/mirserver/wayland-protocols/xdg-decoration-unstable-v1.xml
+@@ -0,0 +1,156 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<protocol name="xdg_decoration_unstable_v1">
++ <copyright>
++ Copyright © 2018 Simon Ser
++
++ 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 (including the next
++ paragraph) shall be included in all copies or substantial portions of the
++ Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND 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.
++ </copyright>
++
++ <interface name="zxdg_decoration_manager_v1" version="1">
++ <description summary="window decoration manager">
++ This interface allows a compositor to announce support for server-side
++ decorations.
++
++ A window decoration is a set of window controls as deemed appropriate by
++ the party managing them, such as user interface components used to move,
++ resize and change a window's state.
++
++ A client can use this protocol to request being decorated by a supporting
++ compositor.
++
++ If compositor and client do not negotiate the use of a server-side
++ decoration using this protocol, clients continue to self-decorate as they
++ see fit.
++
++ Warning! The protocol described in this file is experimental and
++ backward incompatible changes may be made. Backward compatible changes
++ may be added together with the corresponding interface version bump.
++ Backward incompatible changes are done by bumping the version number in
++ the protocol and interface names and resetting the interface version.
++ Once the protocol is to be declared stable, the 'z' prefix and the
++ version number in the protocol and interface names are removed and the
++ interface version number is reset.
++ </description>
++
++ <request name="destroy" type="destructor">
++ <description summary="destroy the decoration manager object">
++ Destroy the decoration manager. This doesn't destroy objects created
++ with the manager.
++ </description>
++ </request>
++
++ <request name="get_toplevel_decoration">
++ <description summary="create a new toplevel decoration object">
++ Create a new decoration object associated with the given toplevel.
++
++ Creating an xdg_toplevel_decoration from an xdg_toplevel which has a
++ buffer attached or committed is a client error, and any attempts by a
++ client to attach or manipulate a buffer prior to the first
++ xdg_toplevel_decoration.configure event must also be treated as
++ errors.
++ </description>
++ <arg name="id" type="new_id" interface="zxdg_toplevel_decoration_v1"/>
++ <arg name="toplevel" type="object" interface="xdg_toplevel"/>
++ </request>
++ </interface>
++
++ <interface name="zxdg_toplevel_decoration_v1" version="1">
++ <description summary="decoration object for a toplevel surface">
++ The decoration object allows the compositor to toggle server-side window
++ decorations for a toplevel surface. The client can request to switch to
++ another mode.
++
++ The xdg_toplevel_decoration object must be destroyed before its
++ xdg_toplevel.
++ </description>
++
++ <enum name="error">
++ <entry name="unconfigured_buffer" value="0"
++ summary="xdg_toplevel has a buffer attached before configure"/>
++ <entry name="already_constructed" value="1"
++ summary="xdg_toplevel already has a decoration object"/>
++ <entry name="orphaned" value="2"
++ summary="xdg_toplevel destroyed before the decoration object"/>
++ </enum>
++
++ <request name="destroy" type="destructor">
++ <description summary="destroy the decoration object">
++ Switch back to a mode without any server-side decorations at the next
++ commit.
++ </description>
++ </request>
++
++ <enum name="mode">
++ <description summary="window decoration modes">
++ These values describe window decoration modes.
++ </description>
++ <entry name="client_side" value="1"
++ summary="no server-side window decoration"/>
++ <entry name="server_side" value="2"
++ summary="server-side window decoration"/>
++ </enum>
++
++ <request name="set_mode">
++ <description summary="set the decoration mode">
++ Set the toplevel surface decoration mode. This informs the compositor
++ that the client prefers the provided decoration mode.
++
++ After requesting a decoration mode, the compositor will respond by
++ emitting an xdg_surface.configure event. The client should then update
++ its content, drawing it without decorations if the received mode is
++ server-side decorations. The client must also acknowledge the configure
++ when committing the new content (see xdg_surface.ack_configure).
++
++ The compositor can decide not to use the client's mode and enforce a
++ different mode instead.
++
++ Clients whose decoration mode depend on the xdg_toplevel state may send
++ a set_mode request in response to an xdg_surface.configure event and wait
++ for the next xdg_surface.configure event to prevent unwanted state.
++ Such clients are responsible for preventing configure loops and must
++ make sure not to send multiple successive set_mode requests with the
++ same decoration mode.
++ </description>
++ <arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
++ </request>
++
++ <request name="unset_mode">
++ <description summary="unset the decoration mode">
++ Unset the toplevel surface decoration mode. This informs the compositor
++ that the client doesn't prefer a particular decoration mode.
++
++ This request has the same semantics as set_mode.
++ </description>
++ </request>
++
++ <event name="configure">
++ <description summary="suggest a surface change">
++ The configure event asks the client to change its decoration mode. The
++ configured state should not be applied immediately. Clients must send an
++ ack_configure in response to this event. See xdg_surface.configure and
++ xdg_surface.ack_configure for details.
++
++ A configure event can be sent at any time. The specified mode must be
++ obeyed by the client.
++ </description>
++ <arg name="mode" type="uint" enum="mode" summary="the decoration mode"/>
++ </event>
++ </interface>
++</protocol>
+diff --git a/src/platforms/mirserver/wayland/kwinserverdecoration.cpp b/src/platforms/mirserver/wayland/kwinserverdecoration.cpp
+new file mode 100644
+index 00000000..8ecb9988
+--- /dev/null
++++ b/src/platforms/mirserver/wayland/kwinserverdecoration.cpp
+@@ -0,0 +1,109 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include "kwinserverdecoration.h"
++#include "services.h"
++
++#include <wayland-generated/server-decoration_wrapper.h>
++
++#include <QDebug>
++
++using namespace mir::wayland;
++using namespace miral;
++
++namespace
++{
++
++class QtKwinServerDecoration : public KwinServerDecoration
++{
++public:
++ using KwinServerDecoration::KwinServerDecoration;
++
++ QtKwinServerDecoration(struct wl_resource* resource, struct wl_resource* surface, qtmir::WindowModelNotifier &windowModel) :
++ KwinServerDecoration(resource, Version<1>{}),
++ m_windowModel(windowModel),
++ surface(surface)
++ {
++ send_mode_event(Mode::Server);
++ };
++
++ void request_mode(uint32_t mode) override {
++ qDebug() << "set KDE mode: " << mode;
++ auto win = miral::window_for(resource);
++
++ Q_EMIT m_windowModel.windowDecorationChanged(win, mode == Mode::Server);
++ send_mode_event(mode);
++ };
++private:
++ qtmir::WindowModelNotifier &m_windowModel;
++ struct wl_resource* surface;
++};
++
++class QtKwinServerDecorationManager : public KwinServerDecorationManager
++{
++public:
++ using KwinServerDecorationManager::KwinServerDecorationManager;
++
++ QtKwinServerDecorationManager(struct wl_resource*, qtmir::WindowModelNotifier &windowModel);
++
++ void create(struct wl_resource* id, struct wl_resource* surface) override {
++ new QtKwinServerDecoration{id, surface, m_windowModel};
++ };
++private:
++ qtmir::WindowModelNotifier &m_windowModel;
++};
++
++
++
++QtKwinServerDecorationManager::QtKwinServerDecorationManager(
++ struct wl_resource* resource, qtmir::WindowModelNotifier &windowModel) :
++ KwinServerDecorationManager{resource, Version<1>{}},
++ m_windowModel(windowModel)
++{
++ send_default_mode_event(Mode::Server);
++}
++
++class MyGlobal : public KwinServerDecorationManager::Global
++{
++public:
++ explicit MyGlobal(wl_display* display, qtmir::WindowModelNotifier &windowModel);
++
++ void bind(wl_resource* new_xdgdecormanager) override;
++
++private:
++ qtmir::WindowModelNotifier &m_windowModel;
++};
++
++}
++
++MyGlobal::MyGlobal(wl_display* display, qtmir::WindowModelNotifier &windowModel) :
++ Global(display, Version<1>{}), m_windowModel(windowModel)
++{
++}
++
++void MyGlobal::bind(wl_resource* new_kdedecormanager)
++{
++ new QtKwinServerDecorationManager{new_kdedecormanager, m_windowModel};
++}
++
++auto qtmir::qtKwinServerDecorationManagerExtension(qtmir::WindowModelNotifier &windowModel) -> WaylandExtensions::Builder {
++ return {
++ KwinServerDecorationManager::interface_name,
++ [&](WaylandExtensions::Context const* context) {
++ return std::make_shared<MyGlobal>(context->display(), windowModel);
++ }
++ };
++}
+diff --git a/src/platforms/mirserver/wayland/kwinserverdecoration.h b/src/platforms/mirserver/wayland/kwinserverdecoration.h
+new file mode 100644
+index 00000000..c7513028
+--- /dev/null
++++ b/src/platforms/mirserver/wayland/kwinserverdecoration.h
+@@ -0,0 +1,34 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#pragma once
++
++// Provides the qt-windowmanager Wayland extension, which provides support for
++// URL handling. We use url-dispatcher for the purpose.
++
++#include "services.h"
++
++#include <miral/wayland_extensions.h>
++#include <miral/window.h>
++
++#include "windowmodelnotifier.h"
++
++namespace qtmir
++{
++// The casing is deliberate, given 'Windowmanager' is all one word according to
++// the Wayland spec
++auto qtKwinServerDecorationManagerExtension(qtmir::WindowModelNotifier &windowModel) -> miral::WaylandExtensions::Builder;
++}
+diff --git a/src/platforms/mirserver/wayland/xdgdecorationV1.cpp b/src/platforms/mirserver/wayland/xdgdecorationV1.cpp
+new file mode 100644
+index 00000000..33295841
+--- /dev/null
++++ b/src/platforms/mirserver/wayland/xdgdecorationV1.cpp
+@@ -0,0 +1,96 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include "xdgdecorationV1.h"
++#include "services.h"
++
++#include <wayland-generated/xdg-decoration-unstable-v1_wrapper.h>
++
++#include <QDebug>
++
++using namespace mir::wayland;
++using namespace miral;
++
++namespace
++{
++
++class QtXdgToplevelDecorationV1 : public XdgToplevelDecorationV1
++{
++public:
++ using XdgToplevelDecorationV1::XdgToplevelDecorationV1;
++
++ QtXdgToplevelDecorationV1(struct wl_resource* resource) : XdgToplevelDecorationV1(resource, Version<1>{}) {
++ send_configure_event(Mode::server_side);
++ };
++
++ void set_mode(uint32_t mode) override {
++ send_configure_event(Mode::server_side);
++ qDebug() << "set XDG mode: " << mode;
++ };
++ void unset_mode() override {
++ qDebug("unset_mode");
++ }
++};
++
++class QtXdgDecorationManagerV1 : public XdgDecorationManagerV1
++{
++public:
++ using XdgDecorationManagerV1::XdgDecorationManagerV1;
++
++ QtXdgDecorationManagerV1(struct wl_resource*);
++
++ void get_toplevel_decoration(struct wl_resource* id, struct wl_resource* toplevel) override {
++ Q_UNUSED(toplevel);
++ new QtXdgToplevelDecorationV1{id};
++ };
++};
++
++
++
++QtXdgDecorationManagerV1::QtXdgDecorationManagerV1(
++ struct wl_resource* resource) :
++ XdgDecorationManagerV1{resource, Version<1>{}}
++{
++}
++
++class MyGlobal : public QtXdgDecorationManagerV1::Global
++{
++public:
++ explicit MyGlobal(wl_display* display);
++
++ void bind(wl_resource* new_xdgdecormanager) override;
++};
++
++}
++
++MyGlobal::MyGlobal(wl_display* display) :
++ Global(display, Version<1>{})
++{
++}
++
++void MyGlobal::bind(wl_resource* new_xdgdecormanager)
++{
++ new QtXdgDecorationManagerV1{new_xdgdecormanager};
++}
++
++auto qtmir::qtXdgDecorationManagerV1Extension() -> WaylandExtensions::Builder {
++ return {
++ XdgDecorationManagerV1::interface_name,
++ [](WaylandExtensions::Context const* context) {
++ return std::make_shared<MyGlobal>(context->display());
++ }
++ };
++}
+diff --git a/src/platforms/mirserver/wayland/xdgdecorationV1.h b/src/platforms/mirserver/wayland/xdgdecorationV1.h
+new file mode 100644
+index 00000000..f028b3f2
+--- /dev/null
++++ b/src/platforms/mirserver/wayland/xdgdecorationV1.h
+@@ -0,0 +1,31 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#pragma once
++
++// Provides the qt-windowmanager Wayland extension, which provides support for
++// URL handling. We use url-dispatcher for the purpose.
++
++#include "services.h"
++
++#include <miral/wayland_extensions.h>
++
++namespace qtmir
++{
++// The casing is deliberate, given 'Windowmanager' is all one word according to
++// the Wayland spec
++auto qtXdgDecorationManagerV1Extension() -> miral::WaylandExtensions::Builder;
++}
+diff --git a/src/platforms/mirserver/windowmodelnotifier.cpp b/src/platforms/mirserver/windowmodelnotifier.cpp
+index e1572c8e..898b2b16 100644
+--- a/src/platforms/mirserver/windowmodelnotifier.cpp
++++ b/src/platforms/mirserver/windowmodelnotifier.cpp
+@@ -18,6 +18,7 @@
+
+ #include <QMultiHash>
+ #include <QMutex>
++#include <QDebug>
+
+ using namespace qtmir;
+
+@@ -77,12 +78,20 @@ WindowModelNotifier::WindowModelNotifier()
+ Q_EMIT observer->windowRequestedRaise();
+ });
+ }, Qt::QueuedConnection);
++
++ connect(this, &WindowModelNotifier::windowDecorationChanged, this, [](const miral::Window &window, bool ssd) {
++ WindowNotifierObserver::foreachObserverForWindow(window, [ssd](WindowNotifierObserver* observer) {
++ Q_EMIT observer->windowDecorationChanged(ssd);
++ });
++ }, Qt::QueuedConnection);
++
+ }
+
+ WindowNotifierObserver::WindowNotifierObserver(const miral::Window &window)
+ {
+ QMutexLocker locker(&mutex);
+ windowToObserverMap.insert(window, this);
++ qWarning() << "ADD WIN: " << window;
+ }
+
+ WindowNotifierObserver::~WindowNotifierObserver()
+@@ -103,6 +112,7 @@ void WindowNotifierObserver::foreachObserverForWindow(const miral::Window &windo
+ {
+ QMutexLocker locker(&mutex);
+ auto observers = windowToObserverMap.values(window);
++
+ Q_FOREACH(auto observer, observers) {
+ fn(observer);
+ }
+diff --git a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+index 6a4563b2..730e0dfd 100644
+--- a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
++++ b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+@@ -16,7 +16,15 @@
+
+ #include "wrappedwindowmanagementpolicy.h"
+
+-#include "eventdispatch.h"
++#include <miroil/eventdispatch.h>
++#include <mir/version.h>
++#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 0, 0)
++#include <miral/toolkit_event.h>
++using namespace miral::toolkit;
++#else
++#include <mir_toolkit/event.h>
++#endif
++
+ #include "initialsurfacesizes.h"
+ #include "screensmodel.h"
+ #include "surfaceobserver.h"
+@@ -28,6 +36,8 @@
+ #include "qmirserver.h"
+ #include "tracepoints.h"
+
++#include "debughelpers.h"
++
+ #include <QDebug>
+ #include <QFileInfo>
+ #include <QTimer>
+@@ -98,7 +108,7 @@ namespace qtmir
+ };
+
+ WindowManagementPolicy::WindowManagementPolicy(const miral::WindowManagerTools &tools, std::shared_ptr<qtmir::WindowManagementPolicyPrivate> dd)
+- : miral::CanonicalWindowManagerPolicy(tools)
++ : miral::MinimalWindowManager(tools)
+ , d(dd)
+ {
+ }
+@@ -109,7 +119,7 @@ namespace qtmir
+ {
+ int surfaceType = requestParameters.type().is_set() ? requestParameters.type().value() : -1;
+ pid_t appPid = miral::pid_of(appInfo.application());
+- auto parameters = CanonicalWindowManagerPolicy::place_new_window(appInfo, requestParameters);
++ auto parameters = MinimalWindowManager::place_new_window(appInfo, requestParameters);
+
+ if (surfaceType == mir_window_type_inputmethod) {
+ QFileInfo info(QStringLiteral("/proc/%1/exe").arg(appPid));
+@@ -127,7 +137,7 @@ namespace qtmir
+ if (!requestParameters.parent().is_set() || requestParameters.parent().value().lock().get() == nullptr) {
+ QSize initialSize = InitialSurfaceSizes::get(appPid);
+
+- if (initialSize.isValid() && surfaceType == mir_surface_type_normal) {
++ if (initialSize.isValid() && surfaceType == mir_window_type_normal) {
+ parameters.size() = toMirSize(initialSize);
+ hasInitialSize = true;
+ }
+@@ -187,6 +197,8 @@ namespace qtmir
+ }
+ }
+
++ parameters.server_side_decorated() = false;
++
+ parameters.userdata() = std::make_shared<ExtraWindowInfo>();
+
+ return parameters;
+@@ -194,6 +206,8 @@ namespace qtmir
+
+ void WindowManagementPolicy::handle_window_ready(miral::WindowInfo &windowInfo)
+ {
++ MinimalWindowManager::handle_window_ready(windowInfo);
++
+ Q_EMIT d->m_windowModel.windowReady(windowInfo);
+
+ auto appInfo = tools.info_for(windowInfo.window().application());
+@@ -213,7 +227,7 @@ namespace qtmir
+ }
+ }
+
+- CanonicalWindowManagerPolicy::handle_modify_window(windowInfo, modifications);
++ MinimalWindowManager::handle_modify_window(windowInfo, modifications);
+
+ int surfaceType = modificationsClient.type().is_set() ? modificationsClient.type().value() : -1;
+
+@@ -231,7 +245,7 @@ namespace qtmir
+
+ void WindowManagementPolicy::handle_raise_window(miral::WindowInfo &windowInfo)
+ {
+- CanonicalWindowManagerPolicy::handle_raise_window(windowInfo);
++ MinimalWindowManager::handle_raise_window(windowInfo);
+
+ Q_EMIT d->m_windowModel.windowRequestedRaise(windowInfo);
+ }
+@@ -245,18 +259,30 @@ namespace qtmir
+
+ bool WindowManagementPolicy::handle_keyboard_event(const MirKeyboardEvent *event)
+ {
++ // We do not want to pass this over to MinimalWindowManager as it only
++ // Adds logic around some shortcuts, we want to do this ourself.
++
+ d->m_eventFeeder->dispatchKey(event);
+- return true;
++
++ // We still want this to get passed on to the wayland/xwayland surfaces
++ return false;
+ }
+
+ bool WindowManagementPolicy::handle_touch_event(const MirTouchEvent *event)
+ {
++ MinimalWindowManager::handle_touch_event(event);
++
+ d->m_eventFeeder->dispatchTouch(event);
+ return true;
+ }
+
+ bool WindowManagementPolicy::handle_pointer_event(const MirPointerEvent *event)
+ {
++ // HACK: We dont want mir to change focus, so ignore button down
++ if (mir_pointer_event_action(event) != mir_pointer_action_button_down) {
++ MinimalWindowManager::handle_pointer_event(event);
++ }
++
+ d->m_eventFeeder->dispatchPointer(event);
+ return true;
+ }
+@@ -303,7 +329,7 @@ namespace qtmir
+ // update Qt model ASAP, before applying Mir policy
+ Q_EMIT d->m_windowModel.windowFocusChanged(windowInfo, true);
+
+- CanonicalWindowManagerPolicy::advise_focus_gained(windowInfo);
++ MinimalWindowManager::advise_focus_gained(windowInfo);
+ }
+
+ void WindowManagementPolicy::advise_state_change(const miral::WindowInfo &windowInfo, MirWindowState state)
+@@ -345,7 +371,7 @@ namespace qtmir
+ void WindowManagementPolicy::advise_adding_to_workspace(std::shared_ptr<miral::Workspace> const& workspace,
+ std::vector<miral::Window> const& windows)
+ {
+- miral::CanonicalWindowManagerPolicy::advise_adding_to_workspace(workspace, windows);
++ miral::MinimalWindowManager::advise_adding_to_workspace(workspace, windows);
+
+ Q_EMIT d->m_windowModel.windowsAddedToWorkspace(workspace, windows);
+ }
+@@ -353,7 +379,7 @@ namespace qtmir
+ void WindowManagementPolicy::advise_removing_from_workspace(std::shared_ptr<miral::Workspace> const& workspace,
+ std::vector<miral::Window> const& windows)
+ {
+- miral::CanonicalWindowManagerPolicy::advise_removing_from_workspace(workspace, windows);
++ miral::MinimalWindowManager::advise_removing_from_workspace(workspace, windows);
+
+ Q_EMIT d->m_windowModel.windowsAboutToBeRemovedFromWorkspace(workspace, windows);
+ }
+@@ -386,7 +412,7 @@ namespace qtmir
+ Rectangle WindowManagementPolicy::confirm_inherited_move(miral::WindowInfo const& windowInfo, Displacement movement)
+ {
+ if (d->m_confinementRegions.isEmpty()) {
+- return CanonicalWindowManagerPolicy::confirm_inherited_move(windowInfo, movement);
++ return MinimalWindowManager::confirm_inherited_move(windowInfo, movement);
+ }
+
+ auto window = windowInfo.window();
+@@ -430,21 +456,21 @@ namespace qtmir
+ return toMirRectangle(geom.marginsRemoved(windowMargins));
+ }
+
+- void WindowManagementPolicy::handle_request_drag_and_drop(miral::WindowInfo &/*window_info*/)
++ void WindowManagementPolicy::handle_request_drag_and_drop(miral::WindowInfo &window_info)
+ {
+-
++ MinimalWindowManager::handle_request_drag_and_drop(window_info);
+ }
+
+- void WindowManagementPolicy::handle_request_move(miral::WindowInfo &/*window_info*/,
+- const MirInputEvent */*input_event*/)
++ void WindowManagementPolicy::handle_request_move(miral::WindowInfo &window_info,
++ const MirInputEvent *input_event)
+ {
+-
++ MinimalWindowManager::handle_request_move(window_info, input_event);
+ }
+
+- void WindowManagementPolicy::handle_request_resize(miral::WindowInfo &/*window_info*/,
+- const MirInputEvent */*input_event*/, MirResizeEdge /*edge*/)
++ void WindowManagementPolicy::handle_request_resize(miral::WindowInfo &window_info,
++ const MirInputEvent *input_event, MirResizeEdge edge)
+ {
+-
++ MinimalWindowManager::handle_request_resize(window_info, input_event, edge);
+ }
+ }
+
+@@ -465,6 +491,7 @@ WrappedWindowManagementPolicy::WrappedWindowManagementPolicy(const miral::Window
+ qRegisterMetaType<qtmir::NewWindow>();
+ qRegisterMetaType<std::vector<miral::Window>>();
+ qRegisterMetaType<miral::ApplicationInfo>();
++ qRegisterMetaType<miral::Window>();
+ windowController.setPolicy(this);
+ workspaceController.setPolicy(this);
+ }
+@@ -592,7 +619,7 @@ void WrappedWindowManagementPolicy::deliver_keyboard_event(const MirKeyboardEven
+ });
+ }
+
+- qtmir::dispatchInputEvent(window, mir_keyboard_event_input_event(event));
++ miroil::dispatch_input_event(window, mir_keyboard_event_input_event(event));
+ }
+
+ void WrappedWindowManagementPolicy::deliver_touch_event(const MirTouchEvent *event, const miral::Window &window)
+@@ -603,7 +630,7 @@ void WrappedWindowManagementPolicy::deliver_touch_event(const MirTouchEvent *eve
+ }
+ });
+
+- qtmir::dispatchInputEvent(window, mir_touch_event_input_event(event));
++ miroil::dispatch_input_event(window, mir_touch_event_input_event(event));
+ }
+
+ void WrappedWindowManagementPolicy::deliver_pointer_event(const MirPointerEvent *event, const miral::Window &window)
+@@ -617,7 +644,7 @@ void WrappedWindowManagementPolicy::deliver_pointer_event(const MirPointerEvent
+ });
+ }
+
+- qtmir::dispatchInputEvent(window, mir_pointer_event_input_event(event));
++ miroil::dispatch_input_event(window, mir_pointer_event_input_event(event));
+ }
+
+ void WrappedWindowManagementPolicy::advise_adding_to_workspace(const std::shared_ptr<miral::Workspace> &workspace,
+@@ -749,7 +776,7 @@ void WrappedWindowManagementPolicy::ask_client_to_close(const miral::Window &win
+ void WrappedWindowManagementPolicy::forceClose(const miral::Window &window)
+ {
+ tools.invoke_under_lock([&window, this]() {
+- tools.force_close(window);
++ tools.ask_client_to_close(window);
+ });
+ }
+
+diff --git a/tests/framework/CMakeLists.txt b/tests/framework/CMakeLists.txt
+index 33644ef9..3c5d407e 100644
+--- a/tests/framework/CMakeLists.txt
++++ b/tests/framework/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/common
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/src/modules
+ )
+
+@@ -8,6 +9,7 @@ include_directories(
+ SYSTEM
+ ${APPLICATION_API_INCLUDE_DIRS}
+ ${MIRAL_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
+ ${MIRRENDERERGLDEV_INCLUDE_DIRS}
+ ${MIRTEST_INCLUDE_DIRS}
+diff --git a/tests/framework/mock_task_controller.cpp b/tests/framework/mock_task_controller.cpp
+index e39606e5..3d5b226a 100644
+--- a/tests/framework/mock_task_controller.cpp
++++ b/tests/framework/mock_task_controller.cpp
+@@ -20,7 +20,7 @@
+ namespace qtmir
+ {
+
+-MockTaskController::MockTaskController(std::shared_ptr<qtmir::PromptSessionManager> promptSessionManager, QObject *parent)
++MockTaskController::MockTaskController(std::shared_ptr<miroil::PromptSessionManager> promptSessionManager, QObject *parent)
+ : TaskController(promptSessionManager, parent)
+ {
+ using namespace ::testing;
+diff --git a/tests/framework/mock_task_controller.h b/tests/framework/mock_task_controller.h
+index 1be47fb6..4ee983a9 100644
+--- a/tests/framework/mock_task_controller.h
++++ b/tests/framework/mock_task_controller.h
+@@ -28,7 +28,7 @@ namespace qtmir
+ {
+ struct MockTaskController : public qtmir::TaskController
+ {
+- MockTaskController(std::shared_ptr<qtmir::PromptSessionManager> promptSessionManager, QObject *parent = nullptr);
++ MockTaskController(std::shared_ptr<miroil::PromptSessionManager> promptSessionManager, QObject *parent = nullptr);
+ virtual ~MockTaskController();
+
+ MOCK_METHOD2(appIdHasProcessId, bool(const QString&, pid_t));
+diff --git a/tests/framework/qtmir_test.h b/tests/framework/qtmir_test.h
+index 211561a1..bf1d3c55 100644
+--- a/tests/framework/qtmir_test.h
++++ b/tests/framework/qtmir_test.h
+@@ -28,7 +28,7 @@
+ #include <QtMir/Application/session_interface.h>
+ #include <QtMir/Application/sharedwakelock.h>
+ #include <QtMir/Application/proc_info.h>
+-#include "promptsessionmanager.h"
++#include <miroil/prompt_session_manager.h>
+
+ #include "mock_proc_info.h"
+ #include "mock_mir_session.h"
+@@ -70,7 +70,7 @@ public:
+ testing::NiceMock<MockSharedWakelock> sharedWakelock;
+ testing::NiceMock<MockSettings> settings;
+ std::shared_ptr<StubPromptSessionManager> stubPromptSessionManager{std::make_shared<StubPromptSessionManager>()};
+- std::shared_ptr<qtmir::PromptSessionManager> promptSessionManager{std::make_shared<qtmir::PromptSessionManager>(stubPromptSessionManager)};
++ std::shared_ptr<miroil::PromptSessionManager> promptSessionManager{std::make_shared<miroil::PromptSessionManager>(stubPromptSessionManager)};
+ std::shared_ptr<StubPersistentSurfaceStore> persistentSurfaceStore;
+
+ QSharedPointer<qtmir::TaskController> taskControllerSharedPointer{new testing::NiceMock<qtmir::MockTaskController>(promptSessionManager)};
+diff --git a/tests/mirserver/CMakeLists.txt b/tests/mirserver/CMakeLists.txt
+index a6959951..a608be89 100644
+--- a/tests/mirserver/CMakeLists.txt
++++ b/tests/mirserver/CMakeLists.txt
+@@ -1,5 +1,6 @@
+ add_subdirectory(EventBuilder)
+ add_subdirectory(QtEventFeeder)
++add_subdirectory(URLBuilderDispatcher)
+ add_subdirectory(Screen)
+ add_subdirectory(ScreensModel)
+ add_subdirectory(miral)
+diff --git a/tests/mirserver/EventBuilder/CMakeLists.txt b/tests/mirserver/EventBuilder/CMakeLists.txt
+index a0c9b66e..1cbe77fc 100644
+--- a/tests/mirserver/EventBuilder/CMakeLists.txt
++++ b/tests/mirserver/EventBuilder/CMakeLists.txt
+@@ -6,11 +6,13 @@ set(
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
+ ${CMAKE_SOURCE_DIR}/src/common
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ )
+
+ include_directories(
+ SYSTEM
+ ${MIRSERVER_INCLUDE_DIRS}
++ ${MIRAL_INCLUDE_DIRS}
+ )
+
+ add_executable(EventBuilderTest ${EVENT_BUILDER_TEST_SOURCES})
+@@ -20,6 +22,7 @@ target_link_libraries(
+ qtmirserver
+ ${GTEST_BOTH_LIBRARIES}
+ ${GMOCK_LIBRARIES}
++ ${MIROIL_LIBRARIES}
+ )
+
+ add_test(EventBuilder, EventBuilderTest)
+diff --git a/tests/mirserver/ScreensModel/CMakeLists.txt b/tests/mirserver/ScreensModel/CMakeLists.txt
+index a5ddfc32..bf3a69e5 100644
+--- a/tests/mirserver/ScreensModel/CMakeLists.txt
++++ b/tests/mirserver/ScreensModel/CMakeLists.txt
+@@ -11,12 +11,14 @@ include_directories(
+ ${CMAKE_SOURCE_DIR}/include
+ ${CMAKE_SOURCE_DIR}/tests/framework
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/src/common
+ )
+
+ include_directories(
+ SYSTEM
+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
+ ${MIRRENDERERGLDEV_INCLUDE_DIRS}
+ ${MIRTEST_INCLUDE_DIRS}
+diff --git a/tests/mirserver/ScreensModel/stub_display.h b/tests/mirserver/ScreensModel/stub_display.h
+index 4914ac55..664d9a08 100644
+--- a/tests/mirserver/ScreensModel/stub_display.h
++++ b/tests/mirserver/ScreensModel/stub_display.h
+@@ -22,7 +22,7 @@
+ namespace mg = mir::graphics; // Bug lp:1614983
+ #include <mir/test/doubles/mock_display_configuration.h>
+
+-#include <mir/compositor/display_listener.h>
++#include <miroil/display_listener_wrapper.h>
+
+ namespace geom = mir::geometry;
+
+@@ -96,8 +96,11 @@ private:
+ std::vector<MockGLDisplayBuffer*> m_displayBuffers;
+ };
+
+-class StubDisplayListener : public mir::compositor::DisplayListener
++class StubDisplayListener : public miroil::DisplayListenerWrapper
+ {
++public:
++ StubDisplayListener(): DisplayListenerWrapper(nullptr) {};
++
+ void add_display(mir::geometry::Rectangle const& /*area*/) override {};
+
+ void remove_display(mir::geometry::Rectangle const& /*area*/) override {};
+diff --git a/tests/mirserver/ScreensModel/testable_screensmodel.h b/tests/mirserver/ScreensModel/testable_screensmodel.h
+index 6829dcd4..25e269cb 100644
+--- a/tests/mirserver/ScreensModel/testable_screensmodel.h
++++ b/tests/mirserver/ScreensModel/testable_screensmodel.h
+@@ -29,7 +29,7 @@ public:
+
+ void do_init(const std::shared_ptr<mir::graphics::Display> &display,
+ const std::shared_ptr<QtCompositor> &compositor,
+- const std::shared_ptr<mir::compositor::DisplayListener> &displayListener)
++ const std::shared_ptr<miroil::DisplayListenerWrapper> & displayListener)
+ {
+ init(display, compositor, displayListener);
+ }
+diff --git a/tests/mirserver/URLBuilderDispatcher/CMakeLists.txt b/tests/mirserver/URLBuilderDispatcher/CMakeLists.txt
+new file mode 100644
+index 00000000..93dca62f
+--- /dev/null
++++ b/tests/mirserver/URLBuilderDispatcher/CMakeLists.txt
+@@ -0,0 +1,30 @@
++set(
++ URLBUILDERDISPATCHER_TEST_RESOURCES
++ urlbuilderdispatcher_test.cpp
++)
++
++include_directories(
++ ${CMAKE_SOURCE_DIR}/tests/framework
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/common
++)
++
++include_directories(
++ SYSTEM
++ ${QT5PLATFORM_SUPPORT_INCLUDE_DIRS}
++ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
++ ${MIRSERVER_INCLUDE_DIRS}
++)
++
++add_executable(URLBuilderDispatcherTest ${URLBUILDERDISPATCHER_TEST_RESOURCES})
++
++target_link_libraries(
++ URLBuilderDispatcherTest
++ qtmirserver
++
++ ${QT5PLATFORMSUPPORT_LIBS}
++ ${GTEST_BOTH_LIBRARIES}
++ ${GMOCK_LIBRARIES}
++)
++
++add_test(URLBuilderDispatcher, URLBuilderDispatcherTest)
+diff --git a/src/platforms/mirserver/mircursorimages.h b/tests/mirserver/URLBuilderDispatcher/mock_services.h
+similarity index 62%
+rename from src/platforms/mirserver/mircursorimages.h
+rename to tests/mirserver/URLBuilderDispatcher/mock_services.h
+index 295b1e27..a04191b0 100644
+--- a/src/platforms/mirserver/mircursorimages.h
++++ b/tests/mirserver/URLBuilderDispatcher/mock_services.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2015 Canonical, Ltd.
++ * Copyright (C) 2020 UBports Foundation
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License version 3, as published by
+@@ -14,20 +14,19 @@
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#ifndef QTMIR_MIRCURSORIMAGES_H_
+-#define QTMIR_MIRCURSORIMAGES_H_
++#pragma once
+
+-#include <mir/input/cursor_images.h>
++#include "gmock/gmock.h"
+
+-namespace qtmir {
++#include <qpa/qplatformservices.h>
++#include <QUrl>
+
+-class MirCursorImages : public mir::input::CursorImages
+-{
++class MockServices: public QPlatformServices {
+ public:
+- std::shared_ptr<mir::graphics::CursorImage> image(const std::string &cursor_name,
+- const mir::geometry::Size &size) override;
+-};
++ ~MockServices() {};
+
+-}
++ MOCK_METHOD1(openUrl, bool(const QUrl &url));
++ MOCK_METHOD1(openDocument, bool(const QUrl &url));
+
+-#endif // QTMIR_MIRCURSORIMAGES_H_
++ inline QByteArray desktopEnvironment() const override { return "MockQtMirServices"; }
++};
+diff --git a/tests/mirserver/URLBuilderDispatcher/urlbuilderdispatcher_test.cpp b/tests/mirserver/URLBuilderDispatcher/urlbuilderdispatcher_test.cpp
+new file mode 100644
+index 00000000..9b7db72e
+--- /dev/null
++++ b/tests/mirserver/URLBuilderDispatcher/urlbuilderdispatcher_test.cpp
+@@ -0,0 +1,115 @@
++/*
++ * Copyright (C) 2020 UBports Foundation
++ *
++ * This program is free software: you can redistribute it and/or modify it under
++ * the terms of the GNU Lesser General Public License version 3, as published by
++ * the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
++ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#include <gmock/gmock.h>
++#include <gtest/gtest.h>
++
++#include "urlbuilderdispatcher.h"
++#include "mock_services.h"
++
++#include <QUrl>
++
++using namespace ::testing;
++
++class URLBuilderDispatcherTest : public ::testing::Test
++{
++};
++
++TEST_F(URLBuilderDispatcherTest, SinglePartURL)
++{
++ auto services = std::make_shared<MockServices>();
++ auto urlbuilder = qtmir::URLBuilderDispatcher{services};
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url"))).Times(1);
++ urlbuilder.urlInput(0, "url://url");
++}
++
++// Ensure that multiple single-part URLs are dispatched
++TEST_F(URLBuilderDispatcherTest, MultiSinglePart)
++{
++ auto services = std::make_shared<MockServices>();
++ auto urlbuilder = qtmir::URLBuilderDispatcher{services};
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url"))).Times(1);
++ urlbuilder.urlInput(0, "url://url");
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://my-new-neat-url"))).Times(1);
++ urlbuilder.urlInput(0, "url://my-new-neat-url");
++}
++
++// Ensure that a single multi-part URL is dispatched
++TEST_F(URLBuilderDispatcherTest, MultiPartURL)
++{
++ auto services = std::make_shared<MockServices>();
++ auto urlbuilder = qtmir::URLBuilderDispatcher{services};
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url-that-continues"))).Times(1);
++ urlbuilder.urlInput(2, "url://url");
++ urlbuilder.urlInput(1, "-that");
++ urlbuilder.urlInput(0, "-continues");
++}
++
++// Ensure that a single URL with percent encoding is dispatched
++TEST_F(URLBuilderDispatcherTest, PercentEncoding)
++{
++ auto services = std::make_shared<MockServices>();
++ auto urlbuilder = qtmir::URLBuilderDispatcher{services};
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url%20-that-%26going"))).Times(1);
++ urlbuilder.urlInput(2, "url://url%20");
++ urlbuilder.urlInput(1, "-that");
++ urlbuilder.urlInput(0, "%26going");
++}
++
++// Ensure that multiple multi-part URLs are dispatched
++TEST_F(URLBuilderDispatcherTest, MultiMultiPart)
++{
++ auto services = std::make_shared<MockServices>();
++ auto urlbuilder = qtmir::URLBuilderDispatcher{services};
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url-that-continues"))).Times(1);
++ urlbuilder.urlInput(2, "url://url");
++ urlbuilder.urlInput(1, "-that");
++ urlbuilder.urlInput(0, "-continues");
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://this-is-a-url"))).Times(1);
++ urlbuilder.urlInput(2, "url://this-is");
++ urlbuilder.urlInput(1, "-a");
++ urlbuilder.urlInput(0, "-url");
++}
++
++// Ensure that multiple single or multi-part URLs are dispatched
++TEST_F(URLBuilderDispatcherTest, ManyURLs)
++{
++ auto services = std::make_shared<MockServices>();
++ auto urlbuilder = qtmir::URLBuilderDispatcher{services};
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url-that-continues"))).Times(1);
++ urlbuilder.urlInput(2, "url://url");
++ urlbuilder.urlInput(1, "-that");
++ urlbuilder.urlInput(0, "-continues");
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://url"))).Times(1);
++ urlbuilder.urlInput(0, "url://url");
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://this-is-a-url"))).Times(1);
++ urlbuilder.urlInput(2, "url://this-is");
++ urlbuilder.urlInput(1, "-a");
++ urlbuilder.urlInput(0, "-url");
++
++ EXPECT_CALL(*services, openUrl(QUrl("url://my-new-neat-url"))).Times(1);
++ urlbuilder.urlInput(0, "url://my-new-neat-url");
++}
+diff --git a/tests/mirserver/miral/CMakeLists.txt b/tests/mirserver/miral/CMakeLists.txt
+index 90ce08e8..202e9d9e 100644
+--- a/tests/mirserver/miral/CMakeLists.txt
++++ b/tests/mirserver/miral/CMakeLists.txt
+@@ -4,7 +4,8 @@ set(
+ )
+
+ include_directories(
+- ${CMAKE_SOURCE_DIR}/include
++ ${CMAKE_SOURCE_DIR}/include
++ ${MIROIL_INCLUDE_DIRS}
+ )
+
+ add_executable(MirALTests ${MIRAL_TEST_SOURCES})
+@@ -13,6 +14,7 @@ target_link_libraries(MirALTests
+ qtmirserver
+ ${GTEST_BOTH_LIBRARIES}
+ ${GMOCK_LIBRARIES}
++ ${MIROIL_LDFLAGS}
+ )
+
+ add_test(MirAL, MirALTests)
+diff --git a/tests/mirserver/miral/edid_test.cpp b/tests/mirserver/miral/edid_test.cpp
+index 03f83d21..c303a1ac 100644
+--- a/tests/mirserver/miral/edid_test.cpp
++++ b/tests/mirserver/miral/edid_test.cpp
+@@ -18,9 +18,7 @@
+ #include <gtest/gtest.h>
+ #include <numeric>
+
+-#include "qtmir/miral/edid.h"
+-
+-using namespace miral;
++#include <miroil/edid.h>
+
+ using TestDataParamType =
+ std::tuple<std::vector<uint8_t>, std::string, std::string, uint16_t, uint32_t>;
+@@ -74,7 +72,7 @@ class EdidTest :
+
+ TEST(EdidTest, Construct)
+ {
+- Edid edid;
++ miroil::Edid edid;
+ EXPECT_EQ(edid.vendor, "");
+ EXPECT_EQ(edid.product_code, 0);
+ EXPECT_EQ(edid.serial_number, uint32_t(0));
+@@ -82,7 +80,7 @@ TEST(EdidTest, Construct)
+
+ char zero_array[13] = {0};
+ for (int i = 0; i < 4; i++) {
+- EXPECT_EQ(edid.descriptors[i].type, Edid::Descriptor::Type::undefined);
++ EXPECT_EQ(edid.descriptors[i].type, miroil::Edid::Descriptor::Type::undefined);
+
+ auto& value = edid.descriptors[i].value;
+ EXPECT_TRUE(std::equal(std::begin(value.monitor_name), std::end(value.monitor_name), std::begin(zero_array)));
+@@ -98,7 +96,7 @@ TEST_P(EdidTest, Test_InvalidChecksum)
+ std::vector<uint8_t> invalidChecksum{data};
+ invalidChecksum[8] = invalidChecksum[8]+1;
+
+- Edid edid;
++ miroil::Edid edid;
+ try {
+ edid.parse_data(invalidChecksum);
+ } catch(std::runtime_error const& err) {
+@@ -118,7 +116,7 @@ TEST_P(EdidTest, Test_InvalidHeader)
+ uint8_t checksum = std::accumulate(invalidHeader.begin(), invalidHeader.end()-1, 0);
+ invalidHeader[invalidHeader.size()-1] = (uint8_t)(~checksum+1);
+
+- Edid edid;
++ miroil::Edid edid;
+ try {
+ edid.parse_data(invalidHeader);
+ } catch(std::runtime_error const& err) {
+@@ -132,7 +130,7 @@ TEST_P(EdidTest, Test_Valid)
+ {
+ const std::vector<uint8_t>& data = std::get<0>(GetParam());
+
+- Edid edid;
++ miroil::Edid edid;
+ EXPECT_NO_THROW(edid.parse_data(data));
+ }
+
+@@ -144,7 +142,7 @@ TEST_P(EdidTest, CheckData)
+ const uint16_t product_code = std::get<3>(GetParam());
+ const uint32_t serial_number = std::get<4>(GetParam());
+
+- Edid edid;
++ miroil::Edid edid;
+ EXPECT_NO_THROW(edid.parse_data(data));
+
+ ASSERT_EQ(edid.vendor, vendor);
+@@ -154,7 +152,7 @@ TEST_P(EdidTest, CheckData)
+ if (monitor_name != "") {
+ bool found_monitor_name = false;
+ for (int i = 0; i < 4; i++) {
+- if (edid.descriptors[i].type == Edid::Descriptor::Type::monitor_name ) {
++ if (edid.descriptors[i].type == miroil::Edid::Descriptor::Type::monitor_name ) {
+ found_monitor_name = true;
+ ASSERT_EQ(std::string(&edid.descriptors[i].value.monitor_name[0]), monitor_name);
+ }
+diff --git a/tests/modules/Application/CMakeLists.txt b/tests/modules/Application/CMakeLists.txt
+index 545ca57b..27950db6 100644
+--- a/tests/modules/Application/CMakeLists.txt
++++ b/tests/modules/Application/CMakeLists.txt
+@@ -5,6 +5,7 @@ set(
+
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/src/modules
+ ${CMAKE_SOURCE_DIR}/tests/framework
+ )
+@@ -12,6 +13,7 @@ include_directories(
+ include_directories(
+ SYSTEM
+ ${MIRAL_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Gui_INCLUDE_DIRS}
+diff --git a/tests/modules/ApplicationManager/CMakeLists.txt b/tests/modules/ApplicationManager/CMakeLists.txt
+index d028f37f..6cd39b5a 100644
+--- a/tests/modules/ApplicationManager/CMakeLists.txt
++++ b/tests/modules/ApplicationManager/CMakeLists.txt
+@@ -6,6 +6,7 @@ set(
+
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/src/modules
+ ${CMAKE_SOURCE_DIR}/tests/framework
+ )
+@@ -14,6 +15,7 @@ include_directories(
+ SYSTEM
+ ${APPLICATION_API_INCLUDE_DIRS}
+ ${MIRAL_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
+ )
+
+diff --git a/tests/modules/Session/CMakeLists.txt b/tests/modules/Session/CMakeLists.txt
+index 0c8c3236..48ee1776 100644
+--- a/tests/modules/Session/CMakeLists.txt
++++ b/tests/modules/Session/CMakeLists.txt
+@@ -7,6 +7,7 @@ set(
+
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/src/modules
+ ${CMAKE_SOURCE_DIR}/tests/framework
+ )
+@@ -15,6 +16,7 @@ include_directories(
+ SYSTEM
+ ${APPLICATION_API_INCLUDE_DIRS}
+ ${MIRAL_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
+ )
+
+diff --git a/tests/modules/Session/session_test.cpp b/tests/modules/Session/session_test.cpp
+index 3aa611b7..34611863 100644
+--- a/tests/modules/Session/session_test.cpp
++++ b/tests/modules/Session/session_test.cpp
+@@ -287,7 +287,7 @@ TEST_F(SessionTests, SessionStopsWhileSuspendingDoesntSuspend)
+ {
+ public:
+ SessionTestClass(const std::shared_ptr<mir::scene::Session>& session,
+- const std::shared_ptr<qtmir::PromptSessionManager>& promptSessionManager)
++ const std::shared_ptr<miroil::PromptSessionManager>& promptSessionManager)
+ : Session(session, promptSessionManager) {}
+
+ using Session::m_suspendTimer;
+diff --git a/tests/modules/SurfaceManager/CMakeLists.txt b/tests/modules/SurfaceManager/CMakeLists.txt
+index 2cc203dc..7f58dd12 100644
+--- a/tests/modules/SurfaceManager/CMakeLists.txt
++++ b/tests/modules/SurfaceManager/CMakeLists.txt
+@@ -7,6 +7,7 @@ set(
+ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/common
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/src/modules
+ ${CMAKE_SOURCE_DIR}/tests/framework
+ )
+@@ -14,7 +15,6 @@ include_directories(
+ include_directories(
+ SYSTEM
+ ${APPLICATION_API_INCLUDE_DIRS}
+- ${MIRAL_INCLUDE_DIRS}
+ ${MIRTEST_INCLUDE_DIRS}
+ )
+
+diff --git a/tests/modules/WindowManager/CMakeLists.txt b/tests/modules/WindowManager/CMakeLists.txt
+index 4e4c8085..655e6814 100644
+--- a/tests/modules/WindowManager/CMakeLists.txt
++++ b/tests/modules/WindowManager/CMakeLists.txt
+@@ -11,6 +11,7 @@ include_directories(
+ ${CMAKE_SOURCE_DIR}/src/common
+ ${CMAKE_SOURCE_DIR}/src/modules
+ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver
++ ${CMAKE_SOURCE_DIR}/src/platforms/mirserver/miroil/include
+ ${CMAKE_SOURCE_DIR}/tests/framework
+ )
+
+@@ -18,6 +19,7 @@ include_directories(
+ SYSTEM
+ ${MIRAL_INCLUDE_DIRS}
+ ${MIRTEST_INCLUDE_DIRS}
++ ${MIROIL_INCLUDE_DIRS}
+ ${MIRSERVER_INCLUDE_DIRS}
+ ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
+ )
+--
+2.43.0
+
diff --git a/testing/qtmir/0003-Require-miroil-in-out-.pc-file.patch b/testing/qtmir/0003-Require-miroil-in-out-.pc-file.patch
new file mode 100644
index 00000000000..7e8a06d6ccc
--- /dev/null
+++ b/testing/qtmir/0003-Require-miroil-in-out-.pc-file.patch
@@ -0,0 +1,24 @@
+From d91fba9fa4456c948cc53f97c6aadae5e513fb50 Mon Sep 17 00:00:00 2001
+From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+Date: Sun, 26 Feb 2023 22:35:32 +0100
+Subject: [PATCH 3/4] Require miroil in out .pc file
+
+---
+ src/platforms/mirserver/qtmirserver.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/platforms/mirserver/qtmirserver.pc.in b/src/platforms/mirserver/qtmirserver.pc.in
+index fa2d862a..12e09b92 100644
+--- a/src/platforms/mirserver/qtmirserver.pc.in
++++ b/src/platforms/mirserver/qtmirserver.pc.in
+@@ -4,6 +4,6 @@ includedir=@INCLUDEDIR@
+ Name: qtmirserver
+ Description: QtMir server library
+ Version: @QTMIR_VERSION@
+-Requires: miral >= 1.1
++Requires: miral >= 1.1 miroil
+ Libs: -L${libdir} -lqtmirserver
+ Cflags: -I${includedir}
+--
+2.43.0
+
diff --git a/testing/qtmir/0004-Update-for-Mir-2.15-removals.patch b/testing/qtmir/0004-Update-for-Mir-2.15-removals.patch
new file mode 100644
index 00000000000..b2bda017d1f
--- /dev/null
+++ b/testing/qtmir/0004-Update-for-Mir-2.15-removals.patch
@@ -0,0 +1,97 @@
+From 719735fd721dffe278a5336cc07dc90a53725329 Mon Sep 17 00:00:00 2001
+From: Christopher James Halse Rogers <raof@ubuntu.com>
+Date: Mon, 18 Sep 2023 17:54:01 +1000
+Subject: [PATCH 4/4] Update for Mir 2.15 removals.
+
+Mir 2.15 dropped some deprecated functions:
+* `handle_request_drag_and_drop` is from mirclient's ContentHub interface; no longer used
+* `mir_keyboard_event_key_code` was renamed to the clearer `mir_keyboard_event_keysym` (it returns keysyms)
+---
+ include/qtmir/windowmanagementpolicy.h | 1 -
+ src/common/debughelpers.cpp | 2 +-
+ src/platforms/mirserver/qteventfeeder.cpp | 2 +-
+ .../mirserver/wrappedwindowmanagementpolicy.cpp | 10 ----------
+ .../mirserver/wrappedwindowmanagementpolicy.h | 1 -
+ 5 files changed, 2 insertions(+), 14 deletions(-)
+
+diff --git a/include/qtmir/windowmanagementpolicy.h b/include/qtmir/windowmanagementpolicy.h
+index c1e5519f..f8a4c7b1 100644
+--- a/include/qtmir/windowmanagementpolicy.h
++++ b/include/qtmir/windowmanagementpolicy.h
+@@ -82,7 +82,6 @@ public:
+ void advise_delete_window(const miral::WindowInfo &windowInfo) override;
+ void advise_raise(const std::vector<miral::Window> &windows) override;
+
+- void handle_request_drag_and_drop(miral::WindowInfo &window_info) override;
+ void handle_request_move(miral::WindowInfo &window_info, const MirInputEvent *input_event) override;
+ void handle_request_resize(miral::WindowInfo &window_info, const MirInputEvent *input_event, MirResizeEdge edge) override;
+
+diff --git a/src/common/debughelpers.cpp b/src/common/debughelpers.cpp
+index 362d252d..e6245411 100644
+--- a/src/common/debughelpers.cpp
++++ b/src/common/debughelpers.cpp
+@@ -315,7 +315,7 @@ QString mirKeyboardEventToString(MirKeyboardEvent const* event)
+ {
+ MirKeyboardAction keyboardAction = mir_keyboard_event_action(event);
+
+- xkb_keysym_t keyCode = mir_keyboard_event_key_code(event);
++ xkb_keysym_t keyCode = mir_keyboard_event_keysym(event);
+
+ MirInputEventModifiers modifiers = mir_keyboard_event_modifiers(event);
+
+diff --git a/src/platforms/mirserver/qteventfeeder.cpp b/src/platforms/mirserver/qteventfeeder.cpp
+index a385c0f5..441a7a64 100644
+--- a/src/platforms/mirserver/qteventfeeder.cpp
++++ b/src/platforms/mirserver/qteventfeeder.cpp
+@@ -592,7 +592,7 @@ void QtEventFeeder::dispatchKey(const MirKeyboardEvent *kev)
+ std::chrono::nanoseconds(mir_input_event_get_event_time(iev)));
+ EventBuilder::instance()->store(iev, timestamp.count());
+
+- xkb_keysym_t xk_sym = mir_keyboard_event_key_code(kev);
++ xkb_keysym_t xk_sym = mir_keyboard_event_keysym(kev);
+
+ // Key modifier and unicode index mapping.
+ auto modifiers = getQtModifiersFromMir(mir_keyboard_event_modifiers(kev));
+diff --git a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+index 730e0dfd..2e4552b7 100644
+--- a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
++++ b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+@@ -456,11 +456,6 @@ namespace qtmir
+ return toMirRectangle(geom.marginsRemoved(windowMargins));
+ }
+
+- void WindowManagementPolicy::handle_request_drag_and_drop(miral::WindowInfo &window_info)
+- {
+- MinimalWindowManager::handle_request_drag_and_drop(window_info);
+- }
+-
+ void WindowManagementPolicy::handle_request_move(miral::WindowInfo &window_info,
+ const MirInputEvent *input_event)
+ {
+@@ -794,11 +789,6 @@ void WrappedWindowManagementPolicy::set_window_margins(MirWindowType windowType,
+ // TODO: update window positions/sizes to respect new margins.
+ }
+
+-void WrappedWindowManagementPolicy::handle_request_drag_and_drop(miral::WindowInfo &window_info)
+-{
+- m_wrapper->handle_request_drag_and_drop(window_info);
+-}
+-
+ void WrappedWindowManagementPolicy::handle_request_move(miral::WindowInfo &window_info,
+ const MirInputEvent *input_event)
+ {
+diff --git a/src/platforms/mirserver/wrappedwindowmanagementpolicy.h b/src/platforms/mirserver/wrappedwindowmanagementpolicy.h
+index 52374ca1..59abbb00 100644
+--- a/src/platforms/mirserver/wrappedwindowmanagementpolicy.h
++++ b/src/platforms/mirserver/wrappedwindowmanagementpolicy.h
+@@ -77,7 +77,6 @@ public:
+ void advise_delete_window(const miral::WindowInfo &windowInfo) override;
+ void advise_raise(const std::vector<miral::Window> &windows) override;
+
+- void handle_request_drag_and_drop(miral::WindowInfo &window_info) override;
+ void handle_request_move(miral::WindowInfo &window_info, const MirInputEvent *input_event) override;
+ void handle_request_resize(miral::WindowInfo &window_info, const MirInputEvent *input_event, MirResizeEdge edge) override;
+
+--
+2.43.0
+
diff --git a/testing/qtmir/APKBUILD b/testing/qtmir/APKBUILD
new file mode 100644
index 00000000000..da2cebb4506
--- /dev/null
+++ b/testing/qtmir/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=qtmir
+pkgver=0.7.2
+pkgrel=0
+pkgdesc="QPA plugin to make Qt a Mir server"
+# armhf: blocked by lots of dependencies
+# riscv64: blocked by valgrind
+arch="all !armhf !riscv64"
+url="https://gitlab.com/ubports/development/core/qtmir"
+license="LGPL-3.0-only"
+makedepends="
+ cgmanager-dev
+ cmake
+ cmake-extras
+ gsettings-qt-dev
+ gtest-dev
+ libqtdbusmock
+ libqtdbustest
+ lomiri-app-launch-dev
+ lomiri-content-hub-dev
+ lomiri-url-dispatcher-dev
+ lttng-ust-tools
+ mir-dev
+ process-cpp-dev
+ qt5-qtdeclarative-dev
+ qt5-qtsensors-dev
+ samurai
+ valgrind-dev
+ "
+checkdepends="
+ dbus
+ py3-dbusmock
+ "
+source="https://gitlab.com/ubports/development/core/qtmir/-/archive/$pkgver/qtmir-$pkgver.tar.gz
+ 0001-Wayland-hack-set-maliit-server-to-inputmethod-type-W.patch
+ 0002-Squash-of-miroil-patches.patch
+ 0003-Require-miroil-in-out-.pc-file.patch
+ 0004-Update-for-Mir-2.15-removals.patch
+ "
+subpackages="$pkgname-dev"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DWITH_MIR2=ON
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # Remove files for testing only
+ # https://gitlab.com/ubports/development/core/qtmir/-/blob/main/debian/qtmir-tests.install
+ rm "$pkgdir"/usr/bin/qtmir-demo-client
+ rm "$pkgdir"/usr/bin/qtmir-demo-shell
+ rm "$pkgdir"/usr/share/applications/qtmir-demo-client.desktop
+ rm "$pkgdir"/usr/share/applications/xwayland.qtmir.desktop
+ rm "$pkgdir"/usr/share/qtmir/benchmarks/common.py
+ rm "$pkgdir"/usr/share/qtmir/benchmarks/report_types.py
+ rm "$pkgdir"/usr/share/qtmir/benchmarks/touch_event_latency.py
+ rm "$pkgdir"/usr/share/qtmir/benchmarks/touch_event_latency.R
+ rmdir "$pkgdir"/usr/share/applications/
+ rm -r "$pkgdir"/usr/share/qtmir/qtmir-demo-client/
+ rm -r "$pkgdir"/usr/share/qtmir/qtmir-demo-shell/
+ rm -r "$pkgdir"/usr/share/qtmir/benchmarks/
+ rmdir "$pkgdir"/usr/share/qtmir/
+}
+
+sha512sums="
+17b59f4056b3dd7509201a3d575c3c018f278e9e08fdef3d38049f95b48389f87a6154d569db242e705f68d6b09916319f4d9d6ee3b3e5faea0299a9d9770d83 qtmir-0.7.2.tar.gz
+f6481e3fff1b00066d2292e8273bd1dc5759d65e8eb5dba5e1400ba4570663933a8ed5e42bbf0207a96a9733b30256c1ee70055f25d93fcb862dff72e9bc0d1d 0001-Wayland-hack-set-maliit-server-to-inputmethod-type-W.patch
+bd783233deb19bb1feda66b30c57fa565482c809f161d2065da882fd497d3f8f8678e0414a181e2386c2b633a0099e0e80d4f1057623abfff817b6619100b724 0002-Squash-of-miroil-patches.patch
+b99d9c84921e8374e6596825de9b3ed120d461b2a2627cf98bb31b306db6f49a919e5a1f40eb0ffdb4986ea463d6e90a6bd3c29c5ed4147c6c6b1bd85628501d 0003-Require-miroil-in-out-.pc-file.patch
+d828204c95458d33ffd6364c3a25a8151fc1503ed81415655a86dbc1cd4d47a2ba5b0d6d30d9f17416a82901ec250b22e09fbbd367f3c63094b2d8a83cb3518a 0004-Update-for-Mir-2.15-removals.patch
+"
diff --git a/testing/qtox/APKBUILD b/testing/qtox/APKBUILD
new file mode 100644
index 00000000000..b190d7d8225
--- /dev/null
+++ b/testing/qtox/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=qtox
+pkgver=1.17.6
+pkgrel=6
+pkgdesc="IM client using the encrypted peer-to-peer Tox protocol"
+url="https://qtox.github.io/"
+# armhf: sonnet
+# ppc64le: fails tests
+arch="all !armhf !ppc64le"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ samurai
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ qt5-qtsvg-dev
+ ffmpeg-dev
+ libexif-dev
+ libqrencode-dev
+ libsodium-dev
+ sqlcipher-dev
+ libvpx-dev
+ sonnet5-dev
+ toxcore-dev
+ openal-soft-dev
+ "
+source="https://github.com/qTox/qTox/archive/refs/tags/v$pkgver/qtox-$pkgver.tar.gz"
+builddir="$srcdir/qTox-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+92047769fa7c1b1be23a236072e6a8727fc956a8959c7a1f36a616d2217f558bd435cf28acdb73dc83e52cf46772c7aa4068c589bc095d327efac5495c4b3e39 qtox-1.17.6.tar.gz
+"
diff --git a/testing/qtpass/APKBUILD b/testing/qtpass/APKBUILD
new file mode 100644
index 00000000000..62c446a9646
--- /dev/null
+++ b/testing/qtpass/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=qtpass
+_pkgname=QtPass
+pkgver=1.4.0
+pkgrel=0
+pkgdesc="Multi-platform GUI for pass"
+url="https://qtpass.org/"
+arch="all"
+license="GPL-3.0-or-later"
+depends="gnupg pwgen"
+makedepends="qt5-qttools-dev qt5-qtsvg-dev"
+source="https://github.com/IJHack/QtPass/releases/download/v$pkgver/QtPass-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+builddir="$srcdir/$_pkgname-$pkgver"
+
+build() {
+ qmake-qt5
+ make
+}
+
+check() {
+ QT_QPA_PLATFORM=offscreen make check
+}
+
+package() {
+ install -D -m0755 main/qtpass "$pkgdir/usr/bin/$pkgname"
+ install -D -m0644 artwork/icon.png "$pkgdir/usr/share/pixmaps/$pkgname.png"
+ install -D -m0644 $pkgname.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
+ install -D -m0644 $pkgname.1 "$pkgdir/usr/share/man/man1/$pkgname.1"
+}
+
+sha512sums="
+47c1284c10e0d8a3bf63c049fc29d785d1a53bef6f183bbe22efebf466371dd454a6e43c944739f487d609f3cde188701ba538e9cb8e2c7e5530f8fa6f992625 QtPass-1.4.0.tar.gz
+"
diff --git a/testing/qtposition_gpsd/APKBUILD b/testing/qtposition_gpsd/APKBUILD
deleted file mode 100644
index 89718a8e476..00000000000
--- a/testing/qtposition_gpsd/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname="qtposition_gpsd"
-pkgver=0_git20170922
-_commit="465a8eafada7f5d788d912ba40b22b3a0065e74b"
-pkgrel=0
-pkgdesc="Qt Position plugin for gpsd"
-url="https://github.com/jmechnich/qtposition_gpsd"
-arch="all !armhf" # Limited due to qt5-location-dev
-license="MIT"
-makedepends="qt5-qtlocation-dev"
-source="https://github.com/jmechnich/qtposition_gpsd/archive/$_commit.tar.gz"
-builddir="$srcdir/qtposition_gpsd-$_commit"
-options="!check" # No tests
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- install -Dm755 libqtposition_gpsd.so \
- "$pkgdir"/usr/lib/qt5/plugins/position/libqtposition_gpsd.so
-}
-
-sha512sums="97376405ed5da53812f996d86f39170349610acc9819f1a0b2c49139e8f221adab878a4df1b8c201d8c6db9c1bda06e6c1b6eb7584d5c88f158c5b9609e11992 465a8eafada7f5d788d912ba40b22b3a0065e74b.tar.gz"
diff --git a/testing/qtquickcontrols-nemo/APKBUILD b/testing/qtquickcontrols-nemo/APKBUILD
deleted file mode 100644
index 55bc12e8203..00000000000
--- a/testing/qtquickcontrols-nemo/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=qtquickcontrols-nemo
-pkgver=5.3.14
-pkgrel=0
-pkgdesc="QML components for Nemomobile, based on QtQuickControls"
-url="https://github.com/nemomobile/qtquickcontrols-nemo"
-arch="all !armhf" # armhf blocked by qt5-qtdeclarative
-license="LGPL-2.1-only AND Apache-2.0"
-depends="qt5-qtquickcontrols"
-makedepends="qt5-qtbase-dev qt5-qtdeclarative-dev libglacierapp-dev"
-source="https://github.com/nemomobile/qtquickcontrols-nemo/archive/$pkgver/qtquickcontrols-nemo-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="93bfa9c2394018f60069006d786d0ccdd86a0d04155f73535eae12f8289e1a90621337a2b2f68779c0d042a7699e10d84f282b4e220a901cb335c0475c73558b qtquickcontrols-nemo-5.3.14.tar.gz"
diff --git a/testing/quakespasm/APKBUILD b/testing/quakespasm/APKBUILD
index 77b69ebaf3a..53496f14302 100644
--- a/testing/quakespasm/APKBUILD
+++ b/testing/quakespasm/APKBUILD
@@ -1,13 +1,14 @@
+# Maintainer: Jordan Christiansen <xordspar0@gmail.com>
# Contributor: Paul Bredbury <brebs@sent.com>
pkgname=quakespasm
-pkgver=0.93.1
+pkgver=0.96.1
pkgrel=0
pkgdesc="Quake 1 engine"
-url="http://quakespasm.sourceforge.net/"
+url="https://quakespasm.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
makedepends="mesa-dev sdl2-dev libmad-dev libvorbis-dev"
-source="https://sourceforge.net/projects/$pkgname/files/Source/$pkgname-$pkgver.tgz"
+source="https://sourceforge.net/projects/quakespasm/files/Source/quakespasm-$pkgver.tar.gz"
builddir="$srcdir/$pkgname-$pkgver/Quake"
options="!check" # No test suite
@@ -20,4 +21,6 @@ package() {
install -Dm 644 "$pkgname.pak" "$pkgdir/usr/share/games/quake/$pkgname.pak"
}
-sha512sums="3443d1b6ea75d7b6762a3b26d58d871fcdd4a79f776c0e881b8e0ebca822a3c2b500081cfde26d56f1db019df99439c4a93140139d2b627857fd09381d564751 quakespasm-0.93.1.tgz"
+sha512sums="
+4bf442b866e90ecb0deaebd97f21847d38b0931b297547a598f9c98c4882de33ac422dfdc376c1d5f03b18e0d480932632052747afa3741b35613637371a69d0 quakespasm-0.96.1.tar.gz
+"
diff --git a/testing/quark/APKBUILD b/testing/quark/APKBUILD
deleted file mode 100644
index 2010f98cf14..00000000000
--- a/testing/quark/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Sascha Paunovic <azarus@posteo.net>
-# Maintainer: Sascha Paunovic <azarus@posteo.net>
-pkgname=quark
-pkgver=20180617
-_commit=ba38b0969f542e6e7d3f01ba500189a81ca32355 # there are no releases
-pkgrel=0
-pkgdesc="quark web server"
-url="https://tools.suckless.org/quark/"
-arch="" # commit no longer available
-license="ISC"
-options="!check" # no test suite
-subpackages="$pkgname-doc"
-source="https://git.suckless.org/$pkgname/snapshot/$pkgname-$_commit.tar.gz"
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- cd "$builddir"
- make
-}
-
-package() {
- cd "$builddir"
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="d74b9fa2315ae92a9048d8d9b82075986c2bab13ed85f4827ef39083fee9eaede880611b48b3359f7ead2901f0ffd261257c23066a82717697d78f924ac655fd quark-ba38b0969f542e6e7d3f01ba500189a81ca32355.tar.gz"
diff --git a/testing/quaternion/APKBUILD b/testing/quaternion/APKBUILD
deleted file mode 100644
index 21f419fee10..00000000000
--- a/testing/quaternion/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=quaternion
-pkgver=0.0.9.4e_git20200413
-pkgrel=0
-_commit="a3c9ee0a61d4b1ca89cbd54a29c47fccb3b5c3c8"
-pkgdesc="Qt5-based IM client for Matrix"
-options="!check" # No testsuite
-url="https://github.com/QMatrixClient/Quaternion"
-arch="all !armhf" # armhf blocked by qt5-qtmultimedia
-license="GPL-3.0-or-later"
-depends="qt5-qtquickcontrols2 qt5-qtquickcontrols"
-makedepends="cmake qt5-qttools-dev qt5-qtquickcontrols2-dev qt5-qtmultimedia-dev
- qt5-qtkeychain-dev libquotient-dev libsecret-dev"
-source="https://github.com/QMatrixClient/Quaternion/archive/$_commit/Quaternion-$_commit.tar.gz"
-builddir="$srcdir/Quaternion-$_commit"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- make -C build
-}
-
-package() {
- DESTDIR="$pkgdir" make -C build install
-}
-
-sha512sums="9edbbb44def39c65d265dd6a32df1386de298083f535608fe75af221c6be2d31b28a0740b538aaa7158ba67b4647bf588259694009f59161403356eb37d97793 Quaternion-a3c9ee0a61d4b1ca89cbd54a29c47fccb3b5c3c8.tar.gz"
diff --git a/testing/qucs-s/APKBUILD b/testing/qucs-s/APKBUILD
new file mode 100644
index 00000000000..f56cadfc93b
--- /dev/null
+++ b/testing/qucs-s/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=qucs-s
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Fancy graphical user interface for a number of popular circuit simulation engines"
+url="https://github.com/ra3xdh/qucs_s"
+# ppc64le, riscv64, s390x: blocked by octave
+arch="all !ppc64le !riscv64 !s390x"
+license="GPL-2.0-only"
+options="!check" # no test suite
+depends="
+ ngspice
+ octave
+ "
+makedepends="
+ bison
+ cmake
+ flex
+ qt5-qtbase-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ samurai
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://github.com/ra3xdh/qucs_s/archive/$pkgver/qucs_s-$pkgver.tar.gz"
+langdir="/usr/share/qucs-s/lang"
+builddir="$srcdir/qucs_s-$pkgver"
+
+build() {
+ cmake -B builddir -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ cmake --build builddir
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install builddir
+}
+
+sha512sums="
+bc487ff3ad0b06d694b570a02937e4a47d04148e949117148440d7b1293b669fc33b989316fad4bf703fe6bf94c034f7f4a97457a3ebfe08bcd7e9cf86e7f49b qucs_s-1.1.0.tar.gz
+"
diff --git a/testing/queercat/APKBUILD b/testing/queercat/APKBUILD
new file mode 100644
index 00000000000..73b4a4c5bb5
--- /dev/null
+++ b/testing/queercat/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Coco Liliace <coco@liliace.dev>
+# Maintainer: Coco Liliace <coco@liliace.dev>
+pkgname=queercat
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="A version of lolcat with options for some lgbtq+ flags"
+url="https://github.com/Elsa002/queercat"
+arch="all"
+license="Unlicense"
+options="!check" # no tests
+source="$pkgname-$pkgver.tar.gz::https://github.com/Elsa002/queercat/archive/v$pkgver.tar.gz"
+
+build() {
+ ${CC:-cc} main.c $CFLAGS $CPPFLAGS $LDFLAGS -o queercat
+}
+
+package() {
+ install -Dt "$pkgdir"/usr/bin queercat
+}
+
+sha512sums="
+ae44b11b386c582278a86027124329de23b573ffcb7dadfa69deb87f3b94b39ec86fa07061d31ddf3ef6c4a9ca21e7f7dc5147ae52f15aacffbd81642411bb75 queercat-1.0.0.tar.gz
+"
diff --git a/testing/quickjs/00-makefile.patch b/testing/quickjs/00-makefile.patch
deleted file mode 100644
index bc0a2a911c9..00000000000
--- a/testing/quickjs/00-makefile.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Source: Chloe "SpaceToast" Kudryavtsev <toast@toast.cafe>
-Remove When: The default Makefile doesn't enforce 32 bit binaries and allows for static linking.
-
-1. Make M32 mode conditional and not dependent on cross-compilation (off by default).
-2. Fix up LIBS.
-3. Allow for static linking.
---- a/Makefile 2019-09-04 19:14:04.134679886 -0400
-+++ b/Makefile 2019-09-04 19:15:42.761338716 -0400
-@@ -33,6 +33,7 @@
- #CONFIG_WERROR=y
- # force 32 bit build for some utilities
- #CONFIG_M32=y
-+#CONFIG_STATIC=y
-
- ifdef CONFIG_DARWIN
- # use clang instead of gcc
-@@ -105,6 +106,9 @@
- CFLAGS_OPT=$(CFLAGS) -O2
- CFLAGS_NOLTO:=$(CFLAGS_OPT)
- LDFLAGS=-g
-+ifdef CONFIG_STATIC
-+LDFLAGS+=-static
-+endif
- ifdef CONFIG_LTO
- CFLAGS_SMALL+=-flto
- CFLAGS_OPT+=-flto
-@@ -118,11 +122,11 @@
- CFLAGS+=-fsanitize=address
- LDFLAGS+=-fsanitize=address
- endif
--ifdef CONFIG_WIN32
--LDEXPORT=
--else
-+ifndef CONFIG_WIN32
-+ifndef CONFIG_STATIC
- LDEXPORT=-rdynamic
- endif
-+endif
-
- PROGS=qjs$(EXE) qjsc$(EXE) run-test262
- ifneq ($(CROSS_PREFIX),)
diff --git a/testing/quickjs/APKBUILD b/testing/quickjs/APKBUILD
deleted file mode 100644
index 4fa1f5a9a84..00000000000
--- a/testing/quickjs/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=quickjs
-_pkgver=2020-04-12
-pkgver=0.${_pkgver//-}
-pkgrel=0
-pkgdesc="A small and embeddable Javascript engine"
-url="https://bellard.org/quickjs/"
-arch="all !s390x !ppc64le !mips !mips64" # build segfaults on s390x and ppc64le, requires hardfloat
-license="MIT"
-options="!check" # disabled because bug/issue on builders
-subpackages="$pkgname-doc $pkgname-static"
-source="https://bellard.org/quickjs/quickjs-$_pkgver.tar.xz
- 00-makefile.patch
- "
-builddir="$srcdir/$pkgname-$_pkgver"
-
-build() {
- make CONFIG_STATIC=y
- for bin in qjs qjsc ; do
- cp $bin $bin.static
- done
- make clean
-
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make install prefix="$pkgdir"/usr
- for bin in qjs.static qjsc.static ; do
- install -Dm755 $bin "$pkgdir"/usr/bin/$bin
- done
- for doc in doc/*.html; do
- install -Dm644 $doc "$pkgdir"/usr/share/doc/quickjs/$doc
- done
-}
-
-static() {
- pkgdesc="$pkgdesc - static binaries"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/*.static "$subpkgdir"/usr/bin/
-}
-
-sha512sums="ed15bb159fa05a7c7749e34f346d426803adf34f1ee83eb23c1a9acce037402537fb52ff0c54135da13d7908a71043eb00b5688fe13488eca356a0713d4a65a3 quickjs-2020-04-12.tar.xz
-510831029ef4f76ea159ce22b81ff679d0f99482347802545b2f7071b0b48c631a947f57d350e6482b2cce058533f9175ea354b77fa3a5b4741cfa8028e8b249 00-makefile.patch"
diff --git a/testing/quilt/APKBUILD b/testing/quilt/APKBUILD
deleted file mode 100644
index c9f2f61f1c1..00000000000
--- a/testing/quilt/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Maintainer: Breno Leitao <breno.leitao@gmail.com>
-pkgname=quilt
-pkgver=0.66
-pkgrel=2
-pkgdesc="Quilt allows you to easily manage large numbers of patches by keeping track of the changes each patch makes"
-url="https://savannah.nongnu.org/projects/quilt"
-arch="noarch"
-license="GPL-2.0-only"
-depends="bash bzip2 diffutils gawk gettext patch"
-makedepends="lynx perl sed"
-checkdepends="ed"
-subpackages="
- $pkgname-doc
- $pkgname-lang
- $pkgname-bash-completion
- "
-source="https://download.savannah.gnu.org/releases/quilt/quilt-$pkgver.tar.gz"
-# Broken: "mv: can't rename 'patches/test.diff': Permission denied !"
-options="!check"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --sysconfdir=/etc
- make all
-}
-
-check() {
- make check
-}
-
-package() {
- make BUILD_ROOT="$pkgdir" install
-
- mkdir -p "$pkgdir"/usr/share/bash-completion
- mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions
-}
-
-sha512sums="c2cb75c0937612e1e0da25b713acf629b6b5aacbd8254d8bd17220b63c7b8ca996cd9d0315a32d67d54a4a7dc01b212cdda33afaacf3db063da757f1973306f4 quilt-0.66.tar.gz"
diff --git a/testing/quodlibet/APKBUILD b/testing/quodlibet/APKBUILD
new file mode 100644
index 00000000000..88bdad974d2
--- /dev/null
+++ b/testing/quodlibet/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=quodlibet
+pkgver=4.6.0
+pkgrel=1
+pkgdesc="Music player and music library manager"
+url="https://quodlibet.readthedocs.io"
+arch="noarch"
+license="GPL-2.0-and-later"
+depends="gtk+3.0
+ py3-gobject3
+ gobject-introspection
+ cairo-gobject
+ py3-cairo
+ py3-mutagen
+ libsoup
+ py3-feedparser
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-ugly
+ gst-plugins-bad
+ gst-libav
+ py3-dbus"
+makedepends="py3-gpep517 py3-setuptools py3-wheel gettext py3-gettext py3-sphinx"
+subpackages="$pkgname-pyc $pkgname-doc $pkgname-lang $pkgname-bash-completion $pkgname-zsh-completion"
+source="https://github.com/quodlibet/quodlibet/releases/download/release-$pkgver/quodlibet-$pkgver.tar.gz"
+options="!check" #needs running GTK
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+d17ed0ba14aa86eaf103fdc5feaeda74575e4bd9d9e55dae07679afb50e279c82b66b7429b0435c36663a9865141c168d3ff56a25c64f9694818f722362db7e9 quodlibet-4.6.0.tar.gz
+"
diff --git a/testing/quota-tools/APKBUILD b/testing/quota-tools/APKBUILD
deleted file mode 100644
index 036ae06a2cc..00000000000
--- a/testing/quota-tools/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=quota-tools
-pkgver=4.05
-pkgrel=0
-pkgdesc="linux disk quota system tools"
-url="https://sourceforge.net/projects/linuxquota/"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="e2fsprogs-dev openldap-dev libnl3-dev musl-libintl libtirpc-dev
- linux-headers"
-
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/sourceforge/linuxquota/quota-$pkgver.tar.gz"
-builddir="$srcdir/"quota-$pkgver
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-libwrap \
- --disable-rpc \
- --disable-nls
-
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="a13ca93fb6fad032cb032874dda2f5d792e619b41e89b481e6aaa4f06ac5774e2728b09dd625addfbe22efccb1d85892b093736084c72f75675a60df168b92f2 quota-4.05.tar.gz"
diff --git a/testing/r2ghidra/APKBUILD b/testing/r2ghidra/APKBUILD
new file mode 100644
index 00000000000..5f82d24898b
--- /dev/null
+++ b/testing/r2ghidra/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=r2ghidra
+pkgver=5.9.0
+_ghidra_native=0.4.2
+pkgrel=0
+pkgdesc="native ghidra decompiler for radare2"
+url="https://github.com/radareorg/r2ghidra"
+# this is massive, and nobody is going to use a decompiler on other
+# architectures
+arch="x86_64 aarch64 ppc64le"
+license="LGPL-3.0-only AND Apache-2.0"
+depends="radare2"
+makedepends="
+ libzip-dev
+ meson
+ openssl-dev
+ pugixml-dev
+ radare2-dev
+ "
+source="https://github.com/radareorg/r2ghidra/archive/refs/tags/$pkgver/r2ghidra-$pkgver.tar.gz
+ https://github.com/radareorg/ghidra-native/archive/refs/tags/$_ghidra_native/ghidra-native-$_ghidra_native.tar.gz
+ use-system-pugixml.patch"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+ mv "$srcdir"/ghidra-native-"$_ghidra_native" "$builddir"/ghidra-native
+ make -C "$builddir"/ghidra-native patch
+}
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
+
+ # not implemented for meson yet
+ cd ghidra
+ make sleigh-build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ # not implemented for meson yet
+ cd "$builddir"/ghidra
+ make D="$pkgdir"/usr/lib/radare2/$pkgver/r2ghidra_sleigh sleigh-install
+}
+
+sha512sums="
+8ce1dadb3986608f67f024e92b25b527666636edd1ed65d68620a945c77c9f23743b817673e08b26a5606485ec812686265cff1afb3fbfbb9f89a248eca37aec r2ghidra-5.9.0.tar.gz
+8e63ee8aac7bff0f115f39f796c69f9427a8c2d4f4e980cbe31ccc040817f9c40724fb7003d05d0cf6eab2233bf3947eb2c7f73dacb9a2277c87ccfbcba861d5 ghidra-native-0.4.2.tar.gz
+6616f82b119e59f083b8ef43198effb094a0592a575220b0e40d48b42b4ee5b519a0a0d9e1ed4c9c61968a624625cf0c4a874884e8af334b5006378d7bdd9390 use-system-pugixml.patch
+"
diff --git a/testing/r2ghidra/use-system-pugixml.patch b/testing/r2ghidra/use-system-pugixml.patch
new file mode 100644
index 00000000000..04b1ec15d53
--- /dev/null
+++ b/testing/r2ghidra/use-system-pugixml.patch
@@ -0,0 +1,71 @@
+From 971fdf012c6c48e43e00d91727698ace4b0c67a6 Mon Sep 17 00:00:00 2001
+From: Maxim Karasev <mxkrsv@disroot.org>
+Date: Fri, 23 Dec 2022 22:27:24 +0300
+Subject: [PATCH] Use system pugixml
+
+---
+ meson.build | 13 ++++---------
+ 1 file changed, 4 insertions(+), 9 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index e35d4f7..a5788c9 100644
+--- a/meson.build
++++ b/meson.build
+@@ -7,10 +7,6 @@ version : '5.8.0',
+ default_options : ['c_std=c11', 'cpp_std=c++11']
+ )
+
+-pugixml_sources = [
+- 'third-party/pugixml/src/pugixml.cpp'
+-]
+-
+ r2ghidra_sources = [
+ 'src/ArchMap.cpp',
+ 'src/CodeXMLParse.cpp',
+@@ -28,7 +24,6 @@ r2ghidra_sources = [
+
+ incdirs = [
+ 'src',
+- 'third-party/pugixml/src/',
+ 'ghidra-native/src/decompiler/',
+ ]
+
+@@ -178,7 +173,6 @@ ghidra_decompiler_sources = [
+
+ r2ghidra_core_sources = [
+ r2ghidra_sources,
+- pugixml_sources,
+ ghidra_decompiler_sources,
+ 'src/anal_ghidra_plugin.c',
+ 'src/anal_ghidra.cpp',
+@@ -188,16 +182,17 @@ r2ghidra_core_sources = [
+
+ sleighc_sources = [
+ r2ghidra_sources,
+- pugixml_sources,
+ 'ghidra-native/src/decompiler/slgh_compile.cc',
+ 'ghidra-native/src/decompiler/slghparse.cc',
+ 'ghidra-native/src/decompiler/slghscan.cc',
+ ghidra_decompiler_sources,
+ ]
+
++pugixml = dependency('pugixml')
++
+ r2ghidra_core_plugin = library('core_r2ghidra',
+ r2ghidra_core_sources,
+- dependencies: [r_core],
++ dependencies: [r_core, pugixml],
+ override_options : ['c_std=c11', 'cpp_std=c++11'],
+ include_directories: r2ghidra_incdirs,
+ install: true,
+@@ -207,6 +202,6 @@ r2ghidra_core_plugin = library('core_r2ghidra',
+ sleighc_exe = executable('sleighc', sleighc_sources,
+ include_directories: r2ghidra_incdirs,
+ override_options : ['c_std=c11', 'cpp_std=c++11'],
+- dependencies: [r_core],
++ dependencies: [r_core, pugixml],
+ install: true
+ )
+--
+2.39.0
+
diff --git a/testing/rabbitmq-server/APKBUILD b/testing/rabbitmq-server/APKBUILD
index 5a54b7bcc8a..9a004ff10b6 100644
--- a/testing/rabbitmq-server/APKBUILD
+++ b/testing/rabbitmq-server/APKBUILD
@@ -1,85 +1,91 @@
# Contributor: Nathan Johnson <nathan@nathanjohnson.info>
-# Maintainer: Nathan Johnson <nathan@nathanjohnson.info>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=rabbitmq-server
-pkgver=3.7.18
-pkgrel=1
-pkgdesc="RabbitMQ is an open source multi-protocol messaging broker."
+pkgver=3.13.1
+pkgrel=0
+pkgdesc="open source multi-protocol messaging broker"
url="https://www.rabbitmq.com/"
-arch="noarch !s390x !mips !mips64"
-license="MPL-1.1"
-depends="erlang erlang-tools erlang-runtime-tools erlang-stdlib
- logrotate erlang-ssl erlang-crypto erlang-parsetools
- erlang-mnesia erlang-sasl erlang-inets erlang-syntax-tools
- erlang-eldap erlang-xmerl erlang-os-mon erlang-asn1 erlang-public-key"
-makedepends="$depends_dev erlang-dev python3 py3-simplejson xmlto libxslt
- rsync zip gawk grep erlang-compiler erlang-erl-docgen
- erlang-edoc socat erlang-eunit elixir"
+arch="noarch"
+license="MPL-2.0"
+depends="erlang"
+makedepends="
+ elixir
+ erlang-dev
+ gawk
+ grep
+ libxslt
+ py3-simplejson
+ python3
+ rsync
+ socat
+ xmlto
+ zip
+ "
install="$pkgname.pre-install $pkgname.post-deinstall"
pkgusers="rabbitmq"
pkggroups="rabbitmq"
-subpackages="$pkgname-doc"
-source="
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/rabbitmq/rabbitmq-server/releases/download/v$pkgver/rabbitmq-server-$pkgver.tar.xz
rabbitmq-server.initd
rabbitmq-server.logrotate
- https://github.com/rabbitmq/rabbitmq-server/releases/download/v$pkgver/rabbitmq-server-$pkgver.tar.xz
- py3.patch
-"
+ "
options="!check" # test suite broken
# secfixes:
+# 3.9.1-r0:
+# - CVE-2021-32719
# 3.7.17-r0:
# - CVE-2015-9251
# - CVE-2017-16012
# - CVE-2019-11358
+prepare() {
+ default_prepare
+ sed -e 's|@RABBITMQ_USER@|rabbitmq|g' \
+ -e 's|@RABBITMQ_GROUP@|rabbitmq|g' \
+ -e 's|@STDOUT_STDERR_REDIRECTION@||' \
+ -i scripts/rabbitmq-script-wrapper
+}
+
build() {
make dist manpages PYTHON=python3
}
package() {
- make install install-bin install-man DESTDIR="$pkgdir" PREFIX=/usr \
- RMQ_ROOTDIR="/usr/lib/rabbitmq" MANDIR=/usr/share/man PYTHON=python3
+ make install install-bin install-man \
+ DESTDIR="$pkgdir" \
+ PREFIX=/usr \
+ RMQ_ROOTDIR="/usr/lib/rabbitmq" \
+ MANDIR=/usr/share/man \
+ PYTHON=python3
- mkdir -p "$pkgdir"/var/lib/rabbitmq/mnesia
- mkdir -p "$pkgdir"/var/log/rabbitmq
+ install -dm755 -o rabbitmq -g rabbitmq "$pkgdir"/var/lib/rabbitmq
+ install -dm750 -o rabbitmq -g rabbitmq "$pkgdir"/var/lib/rabbitmq/mnesia
+ install -dm755 -o rabbitmq -g rabbitmq "$pkgdir"/var/log/rabbitmq
- #Copy all necessary lib files etc.
- install -p -m755 -D "$builddir"/scripts/rabbitmq-server.ocf \
+ # Copy all necessary lib files etc.
+ install -Dvpm755 scripts/rabbitmq-server.ocf \
"$pkgdir"/usr/lib/ocf/resource.d/rabbitmq/rabbitmq-server
- install -p -m755 -D "$builddir"/scripts/rabbitmq-server-ha.ocf \
- "$pkgdir"/usr/lib/ocf/resource.d/rabbitmq/rabbitmq-server-ha
- install -p -m644 -D "$srcdir/"$pkgname.logrotate \
+ install -Dvpm644 "$srcdir"/rabbitmq-server.logrotate \
"$pkgdir"/etc/logrotate.d/rabbitmq-server
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- mkdir -p "$pkgdir"/usr/sbin
+ install -Dvm755 "$srcdir"/rabbitmq-server.initd \
+ "$pkgdir"/etc/init.d/rabbitmq-server
- # This is lifted / adapted from the official upstream spec file.
- # I'd prefer a patch file, but this is probably a little easier
- # to manage since this is how they do it upstream. inb4eww
- sed -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \
- -e 's|@STDOUT_STDERR_REDIRECTION@||' \
- < "$builddir"/scripts/rabbitmq-script-wrapper \
- > "$pkgdir"/usr/sbin/rabbitmqctl
-
- chmod 0755 "$pkgdir"/usr/sbin/rabbitmqctl
- for script in rabbitmq-server rabbitmq-plugins; do
- cp -a "$pkgdir"/usr/sbin/rabbitmqctl \
- "$pkgdir"/usr/sbin/$script;
+ install -Dvm755 scripts/rabbitmq-script-wrapper \
+ "$pkgdir"/usr/sbin/rabbitmqctl
+ local script; for script in rabbitmq-server rabbitmq-plugins; do
+ ln -s rabbitmqctl "$pkgdir"/usr/sbin/$script
done
- mkdir -p "$pkgdir"/usr/share/doc/"$pkgname"
- cp -a "$builddir"/LICENSE* "$pkgdir"/usr/share/doc/"$pkgname"/
- cp -a "$builddir"/deps/rabbit/docs/* "$pkgdir"/usr/share/doc/"$pkgname"/
- cp -a "$builddir"/deps/rabbitmq_sharding/docs/* "$pkgdir"/usr/share/doc/"$pkgname"/
- chmod 755 "$pkgdir"/var/lib/rabbitmq
- chmod 750 "$pkgdir"/var/lib/rabbitmq/mnesia
- chmod 755 "$pkgdir"/var/log/rabbitmq
- chown -R $pkgusers:$pkggroups "$pkgdir"/var/lib/rabbitmq
- chown -R $pkgusers:$pkggroups "$pkgdir"/var/log/rabbitmq
+ install -Dvm644 LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgname/
+ install -Dvm644 -t "$pkgdir"/usr/share/doc/$pkgname/examples/ \
+ deps/rabbit/docs/advanced.config.example \
+ deps/rabbit/docs/rabbitmq.conf.example \
+ deps/rabbit/docs/set_rabbitmq_policy.sh.example
}
-sha512sums="a8bb02a7cae1f8720e5c7aaabfe6a2c0e731cffbe0d8f99bdcb6597daa654dc49e6d41943974601435700cf469eaa8286dc91a3255a6b9023754c3861fbb5cd9 rabbitmq-server.initd
+sha512sums="
+022c6e213cf7cea865a6931a3481897efea65dffa649dd77df9d88bb5f9b7abaaa83b525f983de4cb336b1e0469073cadc2ce48d4f47f93005c87b9fdadb3857 rabbitmq-server-3.13.1.tar.xz
+52413e264ae13a607262f17068ea9b9e65cc23e348d4baf45635473893758ee4571fe1b47989b1c0e69d82ec653e013955719465d37474d3e3e29c21808403f5 rabbitmq-server.initd
b8655cb048ab3b32001d4e6920bb5366696f3a5da75c053605e9b270e771c548e36858dca8338813d34376534515bba00af5e6dd7b4b1754a0e64a8fb756e3f3 rabbitmq-server.logrotate
-7ac10172b2a1d282a0fbcfc13e4612b0aaee31c7248616cc16451c9390aabd96d866619336a29c9bb3b4142d2141b5d442a07a49c6bb0a4ea0cdb287dc813c0f rabbitmq-server-3.7.18.tar.xz
-7862c8566631aeb8c7756e5c8ea11705546ffcdca6ec9058516f91c2650a21b1bb373879e8eb8a78dc5af808eb1fdf6c8167997ea7feace2de61dfa1fb1e5c8b py3.patch"
+"
diff --git a/testing/rabbitmq-server/py3.patch b/testing/rabbitmq-server/py3.patch
deleted file mode 100644
index 24f3b067f57..00000000000
--- a/testing/rabbitmq-server/py3.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-diff --git a/deps/amqp10_common/codegen.py b/deps/amqp10_common/codegen.py
-index dc4480a..d573bcf 100755
---- a/deps/amqp10_common/codegen.py
-+++ b/deps/amqp10_common/codegen.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- from __future__ import print_function
-
-diff --git a/deps/rabbit_common/codegen.py b/deps/rabbit_common/codegen.py
-index 8b81362..70bd7fa 100755
---- a/deps/rabbit_common/codegen.py
-+++ b/deps/rabbit_common/codegen.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- ## The contents of this file are subject to the Mozilla Public License
- ## Version 1.1 (the "License"); you may not use this file except in
-diff --git a/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_django/manage.py b/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_django/manage.py
-index 1ae2e80..3e61442 100755
---- a/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_django/manage.py
-+++ b/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_django/manage.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- import os
- import sys
-
-diff --git a/deps/rabbitmq_consistent_hash_exchange/README.md b/deps/rabbitmq_consistent_hash_exchange/README.md
-index ce1623f..6ff906b 100644
---- a/deps/rabbitmq_consistent_hash_exchange/README.md
-+++ b/deps/rabbitmq_consistent_hash_exchange/README.md
-@@ -150,7 +150,7 @@ Executable versions of some of the code examples can be found under [./examples]
- This version of the example uses [Pika](https://pika.readthedocs.io/en/stable/), the most widely used Python client for RabbitMQ:
-
- ``` python
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import pika
- import time
-@@ -342,7 +342,7 @@ routed to the same **arbitrarily chosen** queue.
- #### Code Example in Python
-
- ``` python
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import pika
- import time
-@@ -544,7 +544,7 @@ routed to the same **arbitrarily chosen** queue.
- #### Code Example in Python
-
- ``` python
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import pika
- import time
-diff --git a/deps/rabbitmq_consistent_hash_exchange/examples/python/example1.py b/deps/rabbitmq_consistent_hash_exchange/examples/python/example1.py
-index 6cf67d6..30e43ea 100644
---- a/deps/rabbitmq_consistent_hash_exchange/examples/python/example1.py
-+++ b/deps/rabbitmq_consistent_hash_exchange/examples/python/example1.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import pika
- import time
-diff --git a/deps/rabbitmq_consistent_hash_exchange/examples/python/example2.py b/deps/rabbitmq_consistent_hash_exchange/examples/python/example2.py
-index 8c1ac15..0099b28 100644
---- a/deps/rabbitmq_consistent_hash_exchange/examples/python/example2.py
-+++ b/deps/rabbitmq_consistent_hash_exchange/examples/python/example2.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import pika
- import time
-diff --git a/deps/rabbitmq_consistent_hash_exchange/examples/python/example3.py b/deps/rabbitmq_consistent_hash_exchange/examples/python/example3.py
-index 0b74501..c11a4ce 100644
---- a/deps/rabbitmq_consistent_hash_exchange/examples/python/example3.py
-+++ b/deps/rabbitmq_consistent_hash_exchange/examples/python/example3.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- import pika
- import time
-diff --git a/deps/rabbitmq_management/bin/rabbitmqadmin b/deps/rabbitmq_management/bin/rabbitmqadmin
-index 55173cb..04c0c12 100755
---- a/deps/rabbitmq_management/bin/rabbitmqadmin
-+++ b/deps/rabbitmq_management/bin/rabbitmqadmin
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
-
- # The contents of this file are subject to the Mozilla Public License
- # Version 1.1 (the "License"); you may not use this file except in
-diff --git a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/manage.py b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/manage.py
-index 469f277..ea21f63 100755
---- a/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/manage.py
-+++ b/deps/rabbitmq_trust_store/examples/rabbitmq_trust_store_django/manage.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- import os
- import sys
-
-
diff --git a/testing/rabbitmq-server/rabbitmq-server.initd b/testing/rabbitmq-server/rabbitmq-server.initd
index caca99463c3..8fe0f05046a 100644
--- a/testing/rabbitmq-server/rabbitmq-server.initd
+++ b/testing/rabbitmq-server/rabbitmq-server.initd
@@ -1,42 +1,26 @@
#!/sbin/openrc-run
-pidfile=/run/rabbitmq/rabbitmq.pid
name=rabbitmq
-daemon=/usr/sbin/rabbitmq-server
+description="RabbitMQ Server"
+
+command=/usr/sbin/rabbitmq-server
+command_background=true
+command_user="rabbitmq:rabbitmq"
+pidfile=/run/rabbitmq/rabbitmq.pid
+
+export RABBITMQ_PID_FILE="$pidfile"
-startup_log=/var/log/rabbitmq/startup_log
-startup_err=/var/log/rabbitmq/startup_err
-shutdown_log=/var/log/rabbitmq/shutdown_log
-shutdown_err=/var/log/rabbitmq/shutdown_err
+output_log="/var/log/rabbitmq/${RC_SVCNAME}_log"
+error_log="/var/log/rabbitmq/${RC_SVCNAME}_err"
depend() {
need net localmount
after firewall
}
-start() {
- ebegin "Starting ${name}"
- # We need to test if /var/run/rabbitmq exists, since scirpt will fail if it does not
- checkpath -m 700 -o rabbitmq:rabbitmq -d "$(dirname "$pidfile")"
- checkpath -m 644 -o rabbitmq:rabbitmq --file-truncate -f $startup_log
- checkpath -m 644 -o rabbitmq:rabbitmq --file-truncate -f $startup_err
- start-stop-daemon --start \
- --env RABBITMQ_PID_FILE=$pidfile \
- --pidfile $pidfile \
- --stdout $startup_log \
- --stderr $startup_err \
- --background $daemon
- eend $?
+start_pre() {
+ # We need to test if /var/run/rabbitmq exists, since script will fail if it does not
+ checkpath -m 700 -o "$command_user" -d "$(dirname "$pidfile")"
+ checkpath -q -m 644 -o "$command_user" --file-truncate -f $output_log
+ checkpath -q -m 644 -o "$command_user" --file-truncate -f $error_log
}
-
-stop() {
- ebegin "Stopping ${name}"
- checkpath -m 644 -o rabbitmq:rabbitmq --file-truncate -f $shutdown_log
- checkpath -m 644 -o rabbitmq:rabbitmq --file-truncate -f $shutdown_err
- start-stop-daemon --stop --quiet --pidfile $pidfile \
- --exec /bin/sh -- -c "/usr/sbin/rabbitmqctl \
- --stop $pidfile > $shutdown_log \
- 2> $shutdown_err"
- eend $?
-}
-
diff --git a/testing/racket/0001-Ensure-that-the-GMP-ARM-extra-file-has-the-correct-e.patch b/testing/racket/0001-Ensure-that-the-GMP-ARM-extra-file-has-the-correct-e.patch
deleted file mode 100644
index 873e4faf46d..00000000000
--- a/testing/racket/0001-Ensure-that-the-GMP-ARM-extra-file-has-the-correct-e.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 8ff7b4cc86dcd0addcead1b36febae82fa9d4b40 Mon Sep 17 00:00:00 2001
-From: Paulo Matos <pmatos@linki.tools>
-Date: Tue, 12 May 2020 21:04:59 +0200
-Subject: [PATCH] Ensure that the GMP ARM extra file has the correct extension
- (#3178)
-
-* Ensure that the GMP ARM extra file has the correct extension
-
-We hardcoded in some places the extension of the GMP ARM extra file
-with .o, however the Makefile rule to build the file will use .lo is
---enable-shared is enabled. This commit fixes the discrepancy by not
-hardcoding the extension anywhere.
-
-Fixes #3176
-
-* Avoid gnu make extension
-
-* Replace spaces to conform with other lines
-
-* Ensure we only add extension if file is needed
-
-* Move the LTO definition to the configure.ac
-
-* Carry the LTO variable into the Makefile
-
-* Fix variable reference
-
-* Add variable definition to gc2 Makefile
-
-* annotate assignment
----
- racket/src/cfg-racket | 6 +++---
- racket/src/racket/configure.ac | 6 +++---
- racket/src/racket/gc2/Makefile.in | 1 +
- racket/src/racket/src/Makefile.in | 4 +++-
- 4 files changed, 10 insertions(+), 7 deletions(-)
-
-diff --git a/racket/src/cfg-racket b/racket/src/cfg-racket
-index fb875a897a..321479a48f 100755
---- a/racket/src/cfg-racket
-+++ b/racket/src/cfg-racket
-@@ -4887,7 +4887,7 @@ case "$host_os" in
- ppc|powerpc)
- ;;
- alpha)
-- EXTRA_GMP_OBJ="gmp_alpha_gcc.o"
-+ EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)'
- EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
- ;;
- i386|i486|i586|i686)
-@@ -4895,7 +4895,7 @@ case "$host_os" in
- check_for_unwind=REG_ESP
- ;;
- arm*)
-- EXTRA_GMP_OBJ="gmp_arm_gcc.o"
-+ EXTRA_GMP_OBJ='gmp_arm_gcc.$(LTO)'
- EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
- ;;
- *)
-@@ -4907,7 +4907,7 @@ case "$host_os" in
- if test "$CC" = "cc" ; then
- COMPFLAGS="$COMPFLAGS -ieee_with_inexact -assume noaligned_objects"
- elif test "$CC" = "gcc" ; then
-- EXTRA_GMP_OBJ="gmp_alpha_gcc.o"
-+ EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)'
- EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
- fi
- ;;
-diff --git a/racket/src/racket/configure.ac b/racket/src/racket/configure.ac
-index 6d24ce52dc..a2f43a9a87 100644
---- a/racket/src/racket/configure.ac
-+++ b/racket/src/racket/configure.ac
-@@ -612,7 +612,7 @@ case "$host_os" in
- ppc|powerpc)
- ;;
- alpha)
-- EXTRA_GMP_OBJ="gmp_alpha_gcc.o"
-+ EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)'
- EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
- ;;
- i386|i486|i586|i686)
-@@ -620,7 +620,7 @@ case "$host_os" in
- check_for_unwind=REG_ESP
- ;;
- arm*)
-- EXTRA_GMP_OBJ="gmp_arm_gcc.o"
-+ EXTRA_GMP_OBJ='gmp_arm_gcc.$(LTO)'
- EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
- ;;
- *)
-@@ -632,7 +632,7 @@ case "$host_os" in
- if test "$CC" = "cc" ; then
- COMPFLAGS="$COMPFLAGS -ieee_with_inexact -assume noaligned_objects"
- elif test "$CC" = "gcc" ; then
-- EXTRA_GMP_OBJ="gmp_alpha_gcc.o"
-+ EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)'
- EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)'
- fi
- ;;
-diff --git a/racket/src/racket/gc2/Makefile.in b/racket/src/racket/gc2/Makefile.in
-index ef33c5881e..a89e933cb6 100644
---- a/racket/src/racket/gc2/Makefile.in
-+++ b/racket/src/racket/gc2/Makefile.in
-@@ -581,6 +581,7 @@ LIBRKTIO_FOR_DLL = $(LIBRKTIO_FOR_DLL_@LIBSFX@)
- LIBRKTIO_FOR_LIB = $(LIBRKTIO_FOR_LIB_@LIBSFX@)
- LIBRKTIO_UP_FOR_LIB = $(LIBRKTIO_UP_FOR_LIB_@LIBSFX@)
-
-+LTO=@LTO@ # Need for replacement of EXTRA_GMP_OBJ which carries the variable
- EXTRA_GMP_DEP_FILE = $(SRCDIR)/@EXTRA_GMP_OBJ@
- EXTRA_GMP = @EXTRA_GMP_DEP@
-
-diff --git a/racket/src/racket/src/Makefile.in b/racket/src/racket/src/Makefile.in
-index 0602f92ec5..60b81ed297 100644
---- a/racket/src/racket/src/Makefile.in
-+++ b/racket/src/racket/src/Makefile.in
-@@ -13,6 +13,7 @@ CFLAGS = @CFLAGS@ @COMPFLAGS@ @PROFFLAGS@
- CPPFLAGS = @PREFLAGS@
- RKTIO_INC = -I$(srcdir)/../../rktio -I../../rktio
- ALL_CFLAGS = $(CFLAGS) -I$(builddir)/.. -I$(srcdir)/../include $(RKTIO_INC) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@
-+LTO=@LTO@ # Need for replacement of EXTRA_GMP_OBJ which carries the variable
-
- OBJS = salloc.@LTO@ \
- bignum.@LTO@ \
-@@ -71,7 +72,8 @@ OBJS = salloc.@LTO@ \
- type.@LTO@ \
- unwind.@LTO@ \
- validate.@LTO@ \
-- vector.@LTO@ @EXTRA_GMP_OBJ@
-+ vector.@LTO@ \
-+ @EXTRA_GMP_OBJ@
-
- SRCS = $(srcdir)/salloc.c \
- $(srcdir)/bignum.c \
diff --git a/testing/racket/APKBUILD b/testing/racket/APKBUILD
deleted file mode 100644
index c30a59aca66..00000000000
--- a/testing/racket/APKBUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-#
-# TODO: Separate packages into subpackages?
-# TODO: Install even packages from the full tarball?
-# TODO: Figure out how to run tests.
-pkgname=racket
-pkgver=7.7
-pkgrel=0
-pkgdesc="A general purpose programming language in the Lisp-Scheme family"
-url="https://racket-lang.org/"
-arch="all"
-license="LGPL-3.0-or-later MIT"
-depends="ca-certificates libcrypto1.1 libssl1.1"
-makedepends="chrpath libffi-dev libucontext-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://download.racket-lang.org/releases/$pkgver/installers/racket-minimal-$pkgver-src.tgz
- 0001-Ensure-that-the-GMP-ARM-extra-file-has-the-correct-e.patch"
-
-# XXX: Upstream repository uses a racket/ subdirectory, this can be
-# removed if the aport builds without any git format patches.
-patch_args="-p2"
-
-prepare() {
- default_prepare
- # Remove bundled libffi to be sure that system-provided is used.
- rm -Rf src/foreign/libffi
-}
-
-build() {
- cd "$builddir"/src
-
- export CFLAGS="$CFLAGS -D_GNU_SOURCE"
- export LDFLAGS="$LDFLAGS -lucontext"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --target=$CTARGET \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-shared \
- --disable-docs
- make
-}
-
-package() {
- cd "$builddir"/src
-
- make install DESTDIR="$pkgdir"
-
- cd "$pkgdir"
-
- # Remove redundant RPATH.
- chrpath -d usr/bin/racket usr/lib/racket/gracket
-
- rm -Rf usr/share/applications
-}
-
-sha512sums="e683a2f90dc2f0a0f73d07319f9241359c85593d2e227183c604fa60c734bc922a0c184cae4934dc04f71b889f433c40902098b02c03078a3da8bb0a10c24e30 racket-minimal-7.7-src.tgz
-ce29c2761ad69b8f9415e23080fa607bd45e8e8ac76394d8fde1e9f022aa58374651ebf3576de88c1280a3aeaae4c9921eaa66d3a950943eec4fe1528f10311a 0001-Ensure-that-the-GMP-ARM-extra-file-has-the-correct-e.patch"
diff --git a/testing/radarr/0001-disable-restart.patch b/testing/radarr/0001-disable-restart.patch
new file mode 100644
index 00000000000..8dc5aebe628
--- /dev/null
+++ b/testing/radarr/0001-disable-restart.patch
@@ -0,0 +1,20 @@
+Disable the restart functionality so the daemon can manage it.
+
+---
+ src/NzbDrone.Core/Lifecycle/LifecycleService.cs | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+index 9ed36a42e..565641284 100644
+--- a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
++++ b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+@@ -46,8 +46,7 @@ public void Shutdown()
+ public void Restart()
+ {
+ _logger.Info("Restart requested.");
+-
+- _eventAggregator.PublishEvent(new ApplicationShutdownRequested(true));
++ _eventAggregator.PublishEvent(new ApplicationShutdownRequested());
+
+ if (_runtimeInfo.IsWindowsService)
+ {
diff --git a/testing/radarr/APKBUILD b/testing/radarr/APKBUILD
new file mode 100644
index 00000000000..bc6e8d9cfbc
--- /dev/null
+++ b/testing/radarr/APKBUILD
@@ -0,0 +1,101 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=radarr
+pkgver=5.4.6.8723
+pkgrel=0
+pkgdesc="Movie download automation for usenet and torrents."
+url="https://github.com/Radarr/Radarr"
+arch="x86_64 aarch64 armv7"
+license="GPL-3.0-only"
+options="net !check" # no tests
+depends="
+ aspnetcore6-runtime
+ sqlite-libs
+ "
+makedepends="
+ dotnet6-sdk
+ yarn
+ "
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Radarr/Radarr/archive/refs/tags/v$pkgver.tar.gz
+ 0001-disable-restart.patch
+ radarr.initd
+ radarr.confd
+ package_info
+ "
+builddir="$srcdir/Radarr-$pkgver"
+pkgusers="radarr"
+pkggroups="radarr"
+
+# map arch to dotnet
+case $CARCH in
+ x86_64) _dotnet_arch="x64" ;;
+ aarch64) _dotnet_arch="arm64" ;;
+ armv7) _dotnet_arch="arm" ;;
+ *) _dotnet_arch="$CARCH" ;;
+esac
+
+# custom variables
+_runtime="linux-musl-$_dotnet_arch"
+_framework="net6.0"
+_output="_output"
+_artifacts="$_output/$_framework/$_runtime/publish"
+
+prepare() {
+ default_prepare
+
+ # increase max opened files
+ ulimit -n 4096
+
+ # replace version info
+ local buildprops=src/Directory.Build.props
+ sed -i "/<AssemblyVersion>/s/>.*<\//>$pkgver<\//" "$buildprops"
+ sed -i "/<AssemblyConfiguration>/s/>.*<\//>master<\//" "$buildprops"
+
+ export BROWSERSLIST_IGNORE_OLD_DATA=true
+ yarn install --frozen-lockfile --network-timeout 120000
+}
+
+build() {
+ dotnet build src \
+ -p:RuntimeIdentifiers="$_runtime" \
+ -p:Configuration=Release \
+ -p:SelfContained=false \
+ -t:PublishAllRids
+ yarn build --env production --no-stats
+
+ # fix ffprobe permissions
+ chmod +x "$_artifacts"/ffprobe
+
+ # cleanup
+ find "$_artifacts" \( \
+ -name "ServiceUninstall.*" -o \
+ -name "ServiceInstall.*" -o \
+ -name "Radarr.Windows.*" \) -delete
+
+ mv "$_output"/UI "$_artifacts"
+}
+
+package() {
+ local destdir="$pkgdir"/usr/lib/radarr
+
+ # use package_info to disable update feature
+ install -Dm644 "$srcdir"/package_info "$destdir"/package_info
+ echo "PackageVersion=$pkgver-r$pkgrel" >>"$destdir"/package_info
+
+ cp -af "$_artifacts" "$destdir"/bin
+ chown -R "$pkgusers:$pkggroups" "$destdir"
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+c67d4dfb318ff7d5b837684775f1301cc8232cc1fc82d741e91a2e33ce2cf7c68e51dc1c060d39d1773d99a7d48f2d3fec51837fd963171f540fb9d2edee9563 radarr-5.4.6.8723.tar.gz
+753520379a6c5f2899b4ddfd820d5573598a32cb105f74c6fd978a3f2c98895cf709ef2d9afe2bae8c4856da86cb6a1364f5713ea7ef6a36bb21b5a5840c1471 0001-disable-restart.patch
+fc61194f8cf6d87cb8ec13db39e7d953bdcd2fae0fdf47ebe7701e52bfad5a92313f76a7bdbb04608170dbaec0e5895788079d284f988fd99fe19f7e61f2e836 radarr.initd
+7f30d17b9a66b34786ff9f62954eda1677296fc724dde9e2b4f1edb6f19bce8b3df5806d661e48751bd4ebdf6faecd9632d89c1fb35d41ad01ea892fdad71ded radarr.confd
+67c4dd1cf8259296d994c350dfd3962d23333071889ce0b4ef6b2f4cbb4349490c5dbe4dcc202c99bab7a5c4b7611be56d7c8835b2b13924526c45311db1c3fb package_info
+"
diff --git a/testing/radarr/package_info b/testing/radarr/package_info
new file mode 100644
index 00000000000..c2e444817cd
--- /dev/null
+++ b/testing/radarr/package_info
@@ -0,0 +1,4 @@
+# PackageVersion is added by APKBUILD
+PackageAuthor=[alpine](https://pkgs.alpinelinux.org/packages)
+UpdateMethod=External
+Branch=master
diff --git a/testing/radarr/radarr.confd b/testing/radarr/radarr.confd
new file mode 100644
index 00000000000..35ee0d368ba
--- /dev/null
+++ b/testing/radarr/radarr.confd
@@ -0,0 +1,10 @@
+# Radarr configuration options
+
+command_user="radarr:radarr" # user:group
+directory="/var/lib/radarr"
+umask=0002
+supervisor="supervise-daemon"
+
+#logdir="/var/log/radarr"
+#error_log="$logdir/error.log"
+#output_log="$logdir/output.log"
diff --git a/testing/radarr/radarr.initd b/testing/radarr/radarr.initd
new file mode 100644
index 00000000000..9c994beecf2
--- /dev/null
+++ b/testing/radarr/radarr.initd
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/radarr
+: ${command_user:=radarr:radarr}
+: ${directory:=/var/lib/radarr}
+: ${umask:=0002}
+
+name=radarr
+description="Radarr daemon"
+command="/usr/lib/radarr/bin/Radarr"
+command_args="-nobrowser -data=$directory"
+command_background=true
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory"
+
+ if [ -n "$logdir" ]; then
+ checkpath -d -o "$command_user" "$logdir"
+ fi
+
+ if [ -n "$output_log" ]; then
+ checkpath -f -o "$command_user" "$output_log"
+ fi
+
+ if [ -n "$error_log" ]; then
+ checkpath -f -o "$command_user" "$error_log"
+ fi
+}
diff --git a/testing/radarr/radarr.pre-install b/testing/radarr/radarr.pre-install
new file mode 100644
index 00000000000..30dd3305557
--- /dev/null
+++ b/testing/radarr/radarr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S radarr 2>/dev/null
+adduser -S -D -h /var/lib/radarr -s /sbin/nologin -G radarr -g radarr radarr 2>/dev/null
+
+exit 0
diff --git a/testing/radicale/APKBUILD b/testing/radicale/APKBUILD
deleted file mode 100644
index 6535f868bcc..00000000000
--- a/testing/radicale/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=radicale
-pkgver=3.0.2
-pkgrel=0
-pkgdesc="Free and open-source CalDAV and CardDAV server"
-url="https://radicale.org/3.0.html"
-arch="noarch"
-license="GPL-3.0-or-later"
-depends="python3 py3-passlib py3-vobject py3-defusedxml py3-dateutil py3-setuptools"
-checkdepends="py3-pytest py3-pytest-flake8 py3-pytest-isort py3-pytest-cov py3-waitress"
-pkgusers="radicale"
-pkggroups="radicale"
-install="$pkgname.pre-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Kozea/Radicale/archive/$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd"
-subpackages="$pkgname-openrc"
-builddir="$srcdir/Radicale-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # install the package to test_install directory for testing
- python3 setup.py install --root="$PWD"/test_install
-
- PYTHONPATH="$PWD"/test_install/usr/lib/python3.8/site-packages \
- pytest
-}
-
-package() {
- python3 setup.py install --skip-build --prefix=/usr --root="$pkgdir"
-
- install -d -o radicale -g radicale "$pkgdir"/var/lib/radicale \
- "$pkgdir"/var/log/radicale
-
- install -d "$pkgdir"/etc/radicale
- install -m640 -g radicale config "$pkgdir"/etc/radicale/
- install -m640 -g radicale rights "$pkgdir"/etc/radicale/
-
- install -Dm755 "$srcdir"/radicale.initd "$pkgdir"/etc/init.d/radicale
- install -Dm644 "$srcdir"/radicale.confd "$pkgdir"/etc/conf.d/radicale
-}
-
-sha512sums="44afd1b5aa82b82dfb1ab1e0f19652c4c90431429e23b6d5e3f8435272d50b1ce70fa86c46177002ceb0b988f0435d68d7a9d426d7612d4394ea9cb44ae72946 radicale-3.0.2.tar.gz
-f1eb4477ca7d7d8040837b712289f18d6b62c7f862a8e9bea32968a49b8bf4394360b5440c815aa23df48ba0aaac61bcb8c9d6e7575c3b23da2ac05a45eac194 radicale.initd
-09bb6228ba07039b97b317d4547a33b7ebf9c8f47ff72b870fc2f5e46de620e0614d993c5c96d73f0ad6196d469bb0f7206478781abf314af1d598e3132d678e radicale.confd"
diff --git a/testing/radicale/radicale.confd b/testing/radicale/radicale.confd
deleted file mode 100644
index 40ec94606c4..00000000000
--- a/testing/radicale/radicale.confd
+++ /dev/null
@@ -1 +0,0 @@
-radicale_opts=""
diff --git a/testing/radicale/radicale.initd b/testing/radicale/radicale.initd
deleted file mode 100644
index 91a523ffb2f..00000000000
--- a/testing/radicale/radicale.initd
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name=radicale
-description="Free and open-source CalDAV and CardDAV server"
-
-command=/usr/bin/radicale
-command_args="$radicale_opts"
-command_user=radicale:radicale
-
-logdir="/var/log/radicale"
-logfile="$logdir/radicale.log"
-supervise_daemon_args="--stderr $logfile"
-
-depend() {
- use net
- need localmount
-}
-
-start_pre() {
- checkpath -d -o radicale /var/lib/radicale
- checkpath -d -o radicale "$logdir"
- checkpath -f -o radicale "$logfile"
-
- checkpath -f -o root:radicale -m640 /etc/radicale/config
- checkpath -f -o root:radicale -m640 /etc/radicale/rights
- checkpath -f -o root:radicale -m640 /etc/radicale/users
-}
diff --git a/testing/radicale/radicale.pre-install b/testing/radicale/radicale.pre-install
deleted file mode 100644
index 0697d4a2a3f..00000000000
--- a/testing/radicale/radicale.pre-install
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-name=radicale
-
-addgroup -S $name 2>/dev/null
-adduser -S -D -H -h /var/lib/$name -s /sbin/nologin -G $name -g $name $name 2>/dev/null
-
-exit 0
diff --git a/testing/radio-cli/APKBUILD b/testing/radio-cli/APKBUILD
new file mode 100644
index 00000000000..47348547e84
--- /dev/null
+++ b/testing/radio-cli/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Hannes Braun <hannes@hannesbraun.net>
+# Maintainer: Hannes Braun <hannes@hannesbraun.net>
+pkgname=radio-cli
+pkgver=2.3.1
+pkgrel=0
+pkgdesc="A simple radio CLI"
+url="https://github.com/margual56/radio-cli"
+arch="all"
+license="GPL-2.0-only"
+depends="mpv yt-dlp"
+makedepends="cargo cargo-auditable openssl-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/margual56/radio-cli/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm755 target/release/radio-cli "$pkgdir"/usr/bin/radio-cli
+}
+
+sha512sums="
+e5ca17a81127640b350c1306cd9ec339dd6d819a38ac006a99c2a21dcae2fb82f87788caea529ac2dac3315a8dbb0c671157f019c762f92a8550c9be521a1adc radio-cli-2.3.1.tar.gz
+"
diff --git a/testing/rage/APKBUILD b/testing/rage/APKBUILD
new file mode 100644
index 00000000000..5313e6ec1ef
--- /dev/null
+++ b/testing/rage/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=rage
+pkgver=0.9.2
+pkgrel=1
+pkgdesc="Simple, modern and secure encryption tool"
+url="https://github.com/str4d/rage"
+license="Apache-2.0 OR MIT"
+arch="all !s390x !riscv64" # blocked by rust/cargo
+makedepends="cargo fuse3-dev cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/str4d/rage/archive/v$pkgver/rage-$pkgver.tar.gz
+ fix-build-32bit.patch
+ "
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --features mount
+
+ cargo run --frozen --release --example generate-docs
+ cargo run --frozen --release --example generate-completions
+}
+
+check() {
+ cargo test --frozen --features mount
+}
+
+package() {
+ for cmd in rage rage-keygen rage-mount; do
+ install -Dm755 target/release/$cmd -t "$pkgdir"/usr/bin
+
+ install -Dm644 target/manpages/$cmd.1.gz -t "$pkgdir"/usr/share/man/man1
+
+ install -Dm644 target/completions/$cmd.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$cmd
+ install -Dm644 target/completions/$cmd.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$cmd.fish
+ install -Dm644 target/completions/$cmd.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$cmd
+ done
+}
+
+sha512sums="
+ec44929b01e75366f9c0a41f4bf0b5dff256a8cdb1fb67461cc29fc9a90c9fd3936017e64fb427e8303c02380c841b82955c9f3aee90f3bdb1081a3cdfae2a34 rage-0.9.2.tar.gz
+eabd51083c59450ac4e5aae5f499b8ef657d70fbde1d78322ec56790a52485ae93b006b5255053d2bc5313e4352610aa5cd60b994496a45196db9a2de190d417 fix-build-32bit.patch
+"
diff --git a/testing/rage/fix-build-32bit.patch b/testing/rage/fix-build-32bit.patch
new file mode 100644
index 00000000000..b626b40c8d7
--- /dev/null
+++ b/testing/rage/fix-build-32bit.patch
@@ -0,0 +1,229 @@
+Fix build on 32-bit archs by updating pprof-rs from 0.10.1 to 0.11.1.
+Ref: https://github.com/tikv/pprof-rs/commit/09c0e73ab29cd2f586d0502397b3ea96ac8b2171
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 2f76061..e4917b6 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -68,7 +68,7 @@ dependencies = [
+ "cipher",
+ "console",
+ "cookie-factory",
+- "criterion",
++ "criterion 0.3.6",
+ "criterion-cycles-per-byte",
+ "ctr",
+ "curve25519-dalek",
+@@ -168,6 +168,12 @@ dependencies = [
+ "libc",
+ ]
+
++[[package]]
++name = "anes"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
++
+ [[package]]
+ name = "arc-swap"
+ version = "1.6.0"
+@@ -401,6 +407,33 @@ dependencies = [
+ "winapi",
+ ]
+
++[[package]]
++name = "ciborium"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
++dependencies = [
++ "ciborium-io",
++ "ciborium-ll",
++ "serde",
++]
++
++[[package]]
++name = "ciborium-io"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
++
++[[package]]
++name = "ciborium-ll"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
++dependencies = [
++ "ciborium-io",
++ "half",
++]
++
+ [[package]]
+ name = "cipher"
+ version = "0.4.4"
+@@ -494,9 +527,9 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+ [[package]]
+ name = "cpp_demangle"
+-version = "0.3.5"
++version = "0.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f"
++checksum = "2c76f98bdfc7f66172e6c7065f981ebb576ffc903fe4c0561d9f0c2509226dc6"
+ dependencies = [
+ "cfg-if",
+ ]
+@@ -528,7 +561,7 @@ dependencies = [
+ "atty",
+ "cast",
+ "clap 2.34.0",
+- "criterion-plot",
++ "criterion-plot 0.4.5",
+ "csv",
+ "itertools",
+ "lazy_static",
+@@ -545,13 +578,39 @@ dependencies = [
+ "walkdir",
+ ]
+
++[[package]]
++name = "criterion"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
++dependencies = [
++ "anes",
++ "atty",
++ "cast",
++ "ciborium",
++ "clap 3.2.25",
++ "criterion-plot 0.5.0",
++ "itertools",
++ "lazy_static",
++ "num-traits",
++ "oorandom",
++ "plotters",
++ "rayon",
++ "regex",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "tinytemplate",
++ "walkdir",
++]
++
+ [[package]]
+ name = "criterion-cycles-per-byte"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "07175eab62c9054f8828955f9a84ddd3f732f796ee99fb4898453d60be4bcbdc"
+ dependencies = [
+- "criterion",
++ "criterion 0.3.6",
+ ]
+
+ [[package]]
+@@ -564,6 +623,16 @@ dependencies = [
+ "itertools",
+ ]
+
++[[package]]
++name = "criterion-plot"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
++dependencies = [
++ "cast",
++ "itertools",
++]
++
+ [[package]]
+ name = "crossbeam-channel"
+ version = "0.5.8"
+@@ -655,7 +724,7 @@ version = "3.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7394a21d012ce5c850497fb774b167d81b99f060025fbf06ee92b9848bd97eb2"
+ dependencies = [
+- "nix 0.26.2",
++ "nix",
+ "windows-sys 0.48.0",
+ ]
+
+@@ -1496,17 +1565,6 @@ dependencies = [
+ "adler",
+ ]
+
+-[[package]]
+-name = "nix"
+-version = "0.24.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+-dependencies = [
+- "bitflags",
+- "cfg-if",
+- "libc",
+-]
+-
+ [[package]]
+ name = "nix"
+ version = "0.26.2"
+@@ -1857,18 +1915,18 @@ dependencies = [
+
+ [[package]]
+ name = "pprof"
+-version = "0.10.1"
++version = "0.11.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d6472bfed9475542ac46c518734a8d06d71b0f6cb2c17f904aa301711a57786f"
++checksum = "196ded5d4be535690899a4631cc9f18cdc41b7ebf24a79400f46f48e49a11059"
+ dependencies = [
+ "backtrace",
+ "cfg-if",
+- "criterion",
++ "criterion 0.4.0",
+ "findshlibs",
+ "inferno",
+ "libc",
+ "log",
+- "nix 0.24.3",
++ "nix",
+ "once_cell",
+ "parking_lot",
+ "smallvec",
+@@ -2419,9 +2477,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+ [[package]]
+ name = "symbolic-common"
+-version = "9.2.1"
++version = "10.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "800963ba330b09a2ae4a4f7c6392b81fbc2784099a98c1eac68c3437aa9382b2"
++checksum = "1b55cdc318ede251d0957f07afe5fed912119b8c1bc5a7804151826db999e737"
+ dependencies = [
+ "debugid",
+ "memmap2",
+@@ -2431,9 +2489,9 @@ dependencies = [
+
+ [[package]]
+ name = "symbolic-demangle"
+-version = "9.2.1"
++version = "10.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2b940a1fdbc72bb3369e38714efe6cd332dbbe46d093cf03d668b9ac390d1ad0"
++checksum = "79be897be8a483a81fff6a3a4e195b4ac838ef73ca42d348b3f722da9902e489"
+ dependencies = [
+ "cpp_demangle",
+ "rustc-demangle",
+diff --git a/age/Cargo.toml b/age/Cargo.toml
+index 63ec0a5..ed0e577 100644
+--- a/age/Cargo.toml
++++ b/age/Cargo.toml
+@@ -102,7 +102,7 @@ test-case = "2"
+ tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
+
+ [target.'cfg(unix)'.dev-dependencies]
+-pprof = { version = "0.10", features = ["criterion", "flamegraph"] }
++pprof = { version = "0.11.1", features = ["criterion", "flamegraph"] }
+
+ [target.'cfg(any(target_arch = "x86", target_arch = "x86_64"))'.dev-dependencies]
+ criterion-cycles-per-byte = "0.1"
diff --git a/testing/rakudo/APKBUILD b/testing/rakudo/APKBUILD
deleted file mode 100644
index 09da508fb1f..00000000000
--- a/testing/rakudo/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Contributor: Curt Tilmes <Curt.Tilmes@nasa.gov>
-# Maintainer: Curt Tilmes <Curt.Tilmes@nasa.gov>
-pkgname=rakudo
-pkgver=2020.05.1
-pkgrel=0
-pkgdesc="A compiler for the Raku programming language"
-url="http://rakudo.org/"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64"
-license="Artistic-2.0"
-depends="nqp libffi"
-makedepends="perl-utils moarvm-dev libffi-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/rakudo/rakudo/releases/download/$pkgver/rakudo-$pkgver.tar.gz"
-
-build() {
- perl Configure.pl --prefix=/usr --backends=moar
- make DESTDIR=install install
-}
-
-check() {
- make RAKUDO_SKIP_TIMING_TESTS=1 test
-}
-
-package() {
- install -Dm755 install/usr/bin/perl6 "$pkgdir"/usr/bin/perl6
- install -Dm755 install/usr/bin/rakudo "$pkgdir"/usr/bin/rakudo
- ln -s rakudo "$pkgdir"/usr/bin/raku
- cp -r install/usr/share "$pkgdir"/usr
-}
-
-dev() {
- cd "$builddir"
- install -Dm755 install/usr/bin/perl6-debug "$subpkgdir"/usr/bin/perl6-debug
- install -Dm755 install/usr/bin/perl6-gdb-m "$subpkgdir"/usr/bin/perl6-gdb-m
- install -Dm755 install/usr/bin/perl6-lldb-m "$subpkgdir"/usr/bin/perl6-lldb-m
- install -Dm755 install/usr/bin/perl6-valgrind-m "$subpkgdir"/usr/bin/perl6-valgrind-m
- ln -s rakudo-debug "$subpkgdir"/usr/bin/raku-debug
- install -Dm755 install/usr/bin/rakudo-debug "$subpkgdir"/usr/bin/rakudo-debug
- install -Dm755 install/usr/bin/rakudo-debug-m "$subpkgdir"/usr/bin/rakudo-debug-m
- install -Dm755 install/usr/bin/rakudo-gdb-m "$subpkgdir"/usr/bin/rakudo-gdb-m
- install -Dm755 install/usr/bin/rakudo-lldb-m "$subpkgdir"/usr/bin/rakudo-lldb-m
- install -Dm755 install/usr/bin/rakudo-m "$subpkgdir"/usr/bin/rakudo-m
- install -Dm755 install/usr/bin/rakudo-valgrind-m "$subpkgdir"/usr/bin/rakudo-valgrind-m
- install -Dm755 tools/install-dist.p6 "$subpkgdir"/usr/share/perl6/bin/install-dist.p6
-}
-
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"
- for file in CONTRIBUTING.md CREDITS INSTALL.txt LICENSE README.md VERSION docs; do
- cp -r $file "$subpkgdir"/usr/share/doc/"$pkgname"
- done
-}
-
-sha512sums="20d0818fc9f13693f098c41799cceb39e21442ac652993981fcab1fc1c7158058b42746f3ca3b145938fb6adb03f045f4784e77bf11da672c5908d0a5a36975f rakudo-2020.05.1.tar.gz"
diff --git a/testing/rancher-cli/APKBUILD b/testing/rancher-cli/APKBUILD
new file mode 100644
index 00000000000..20f6671781d
--- /dev/null
+++ b/testing/rancher-cli/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=rancher-cli
+pkgver=2.8.0
+pkgrel=2
+pkgdesc="The Rancher CLI"
+url="https://www.rancher.com/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rancher/cli/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/cli-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o bin/rancher -ldflags "-X main.VERSION=v$pkgver"
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/rancher -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+9a2c3c4c7a2a8210a30414e2efdf25fcc0e55ffea2ecdd07d7427deab8d3aaf2eb2b3560b7cb8bc14ad678ac73dd98230ca40024d58e757de5f2e40becd4d28c rancher-cli-2.8.0.tar.gz
+"
diff --git a/testing/randrctl/APKBUILD b/testing/randrctl/APKBUILD
index 60ab2992ad9..e72d23bebd6 100644
--- a/testing/randrctl/APKBUILD
+++ b/testing/randrctl/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=randrctl
-pkgver=1.8.2
-pkgrel=0
+pkgver=1.9.0
+pkgrel=5
pkgdesc="Profile based screen manager for X"
url="https://github.com/edio/randrctl"
arch="noarch"
license="GPL-3.0-or-later"
-depends="python3 py3-argcomplete py3-yaml xrandr"
+depends="python3 py3-argcomplete py3-setuptools py3-yaml xrandr"
checkdepends="py3-pytest"
makedepends="python3-dev py3-pbr py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://github.com/edio/randrctl/archive/$pkgver/randrctl-$pkgver.tar.gz"
export PBR_VERSION="$pkgver"
@@ -23,10 +24,12 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
install -m 644 -D randrctl/setup/99-randrctl.rules \
"$pkgdir"/lib/udev/rules.d/99-$pkgname.rules
}
-sha512sums="81b9ff948e7510208776d8a91e98fea6ddf4a7fd3470560186aaafdc0f260a39ea733d8638ff6c7e86ac33a7f6eb90c387c4009a2d6e2afad36d4e2400efe0b1 randrctl-1.8.2.tar.gz"
+sha512sums="
+6134f777f017e1d5b0e838128eb72302abd1001d0737518c3495b4b47c89a8e7e803997fee4b0454ef9e0759b9639fb5eec13ab7da477ef5acc14e83a1a6c8cc randrctl-1.9.0.tar.gz
+"
diff --git a/testing/rankwidth/APKBUILD b/testing/rankwidth/APKBUILD
new file mode 100644
index 00000000000..85659884e81
--- /dev/null
+++ b/testing/rankwidth/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=rankwidth
+pkgver=0.9
+pkgrel=3
+pkgdesc="Library for calculating rank-width and rank-decompositions"
+url="https://sourceforge.net/projects/rankwidth/"
+# s390x: blocked by libigraph
+arch="all !s390x"
+license="GPL-2.0-or-later"
+makedepends="libigraph-dev"
+options="!check" # no test suite
+source="https://master.dl.sourceforge.net/project/rankwidth/rw-$pkgver.tar.gz
+ igraph-0.10.1.patch"
+subpackages="$pkgname-static $pkgname-dev $pkgname-libs $pkgname-doc"
+builddir="$srcdir/rw-$pkgver"
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f4f1910506cbdb557ca50bac6f63cfca3271a5df8d13c67d2d9bba79b9cdb03196a679e6091554175decbee0871888de71bed5746662c9a75418f0f5dd9bd609 rw-0.9.tar.gz
+94871294bf2ffc2733cf14c241773bb339d5aab1e6f5b2801c8406df367045fbcb3c5fb9787f0bbf6c4fefc1c40aca93736f1df4520e30c00f24294209c2811f igraph-0.10.1.patch
+"
diff --git a/testing/rankwidth/igraph-0.10.1.patch b/testing/rankwidth/igraph-0.10.1.patch
new file mode 100644
index 00000000000..467b21fddc8
--- /dev/null
+++ b/testing/rankwidth/igraph-0.10.1.patch
@@ -0,0 +1,11 @@
+--- a/simplerw.c
++++ b/simplerw.c
+@@ -134,7 +134,7 @@
+ igraph_destroy(&igraph);
+ return(-1);
+ }
+- igraph_get_adjacency(&igraph, &imatrix, IGRAPH_GET_ADJACENCY_BOTH, 0);
++ igraph_get_adjacency(&igraph, &imatrix, IGRAPH_GET_ADJACENCY_BOTH, 0, 0);
+ igraph_destroy(&igraph);
+ if(igraph_matrix_nrow(&imatrix) > MAX_VERTICES)
+ {
diff --git a/testing/rapidfuzz/APKBUILD b/testing/rapidfuzz/APKBUILD
new file mode 100644
index 00000000000..4194b3abb71
--- /dev/null
+++ b/testing/rapidfuzz/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer:
+pkgname=rapidfuzz
+pkgver=3.0.0
+pkgrel=0
+pkgdesc="Rapid fuzzy string matching in C++ using the Levenshtein Distance"
+url="https://github.com/maxbachmann/rapidfuzz-cpp"
+arch="all"
+license="MIT"
+makedepends="
+ cmake
+ samurai
+ "
+checkdepends="catch2-3"
+source="$pkgname-cpp-$pkgver.tar.gz::https://github.com/maxbachmann/rapidfuzz-cpp/archive/refs/tags/v$pkgver.tar.gz
+ cstdint.patch
+ "
+builddir="$srcdir/rapidfuzz-cpp-$pkgver"
+
+case "$CARCH" in
+x86)
+ # float rounding
+ options="!check"
+ ;;
+esac
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DRAPIDFUZZ_BUILD_TESTING="$(want_check && echo ON || echo OFF)"
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+c5f20399bd1cfaa057c40cc17be5d730d50c1014553241f80f461a2fa89de670357d17a4f090394170263b09a53aa29238e5eff2caf9064a2a118c42aa14f320 rapidfuzz-cpp-3.0.0.tar.gz
+216c5082498830d42d2eb14d3eba35dd08446008916c920db7b55eaf3dd2358f86a61c238315b85fefecf08b9e902dc4db172f91a8479cfd735e53c7b3e03bf5 cstdint.patch
+"
diff --git a/testing/rapidfuzz/cstdint.patch b/testing/rapidfuzz/cstdint.patch
new file mode 100644
index 00000000000..cce903344db
--- /dev/null
+++ b/testing/rapidfuzz/cstdint.patch
@@ -0,0 +1,12 @@
+diff --git a/rapidfuzz_reference/JaroWinkler.hpp b/rapidfuzz_reference/JaroWinkler.hpp
+index 3b717d8..9d415e4 100644
+--- a/rapidfuzz_reference/JaroWinkler.hpp
++++ b/rapidfuzz_reference/JaroWinkler.hpp
+@@ -2,6 +2,7 @@
+ /* Copyright © 2022-present Max Bachmann */
+
+ #pragma once
++#include <cstdint>
+ #include "Jaro.hpp"
+
+ namespace rapidfuzz_reference {
diff --git a/testing/rasdaemon/APKBUILD b/testing/rasdaemon/APKBUILD
deleted file mode 100644
index 469a697e5bd..00000000000
--- a/testing/rasdaemon/APKBUILD
+++ /dev/null
@@ -1,64 +0,0 @@
-# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
-# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
-pkgname=rasdaemon
-pkgver=0.6.5
-pkgrel=0
-pkgdesc="utility to receive RAS error tracings"
-url="http://www.infradead.org/~mchehab/rasdaemon/"
-arch="x86_64"
-license="GPL-2.0-or-later"
-depends="dmidecode
- perl
- perl-dbd-sqlite
- "
-makedepends="argp-standalone
- sqlite-dev
- autoconf
- automake
- libtool
- "
-subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
-source="https://www.infradead.org/~mchehab/rasdaemon/rasdaemon-$pkgver.tar.bz2
- libargp.patch
- $pkgname.initd
- "
-
-prepare() {
- default_prepare
- autoreconf -i
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-abrt-report \
- --enable-aer \
- --enable-devlink \
- --enable-diskerror \
- --enable-extlog \
- --enable-hisi-ns-decode \
- --enable-mce \
- --enable-non-standard \
- --enable-sqlite3
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
-}
-
-sha512sums="aa781f3148ae32c8bc7ff8007574912454180725b9b102e1c7c583101dd1fd96debbdc78f3f2a35db45df359c7547cad4d87b490af66f444341c0dc8429c1310 rasdaemon-0.6.5.tar.bz2
-83a484ab7b19dc22c2dae7636929379a70d775194566ee98012a783c7a2afa0b216ebe8b49f34f05bfe395f8f1e434ca7e739991943514faf3888689a284b781 libargp.patch
-edee5b32765b3c89ab82e5cd410b0b381aa58470fdaed3a94516aa954845123b661a4923435f7d0bc9c33fb9b1e42a611dc1aa629a5db7d3e431164e4cd432cf rasdaemon.initd"
diff --git a/testing/rasdaemon/libargp.patch b/testing/rasdaemon/libargp.patch
deleted file mode 100644
index 6c2973a7384..00000000000
--- a/testing/rasdaemon/libargp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -47,7 +47,7 @@
- if WITH_HISI_NS_DECODE
- rasdaemon_SOURCES += non-standard-hisi_hip07.c
- endif
--rasdaemon_LDADD = -lpthread $(SQLITE3_LIBS) libtrace/libtrace.a
-+rasdaemon_LDADD = -lpthread -largp $(SQLITE3_LIBS) libtrace/libtrace.a
-
- include_HEADERS = config.h ras-events.h ras-logger.h ras-mc-handler.h \
- ras-aer-handler.h ras-mce-handler.h ras-record.h bitfield.h ras-report.h \
diff --git a/testing/rasdaemon/rasdaemon.initd b/testing/rasdaemon/rasdaemon.initd
deleted file mode 100644
index 221d238320c..00000000000
--- a/testing/rasdaemon/rasdaemon.initd
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/sbin/openrc-run
-
-description="daemon to receive RAS error tracings"
-
-pidfile=/run/"$RC_SVCNAME".pid
-command=/usr/sbin/rasdaemon
-command_args="--foreground --record"
-command_background=true
-
-depend() {
- need localmount sysfs
-}
-
-start_post() {
- "${command}" --enable
-}
-
-stop_post() {
- "${command}" --disable
-}
diff --git a/testing/raspberrypi-usbboot/APKBUILD b/testing/raspberrypi-usbboot/APKBUILD
new file mode 100644
index 00000000000..779964dc899
--- /dev/null
+++ b/testing/raspberrypi-usbboot/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+_pkgname=usbboot
+pkgname=raspberrypi-usbboot
+_pkgver=2021.07.01
+pkgver="${_pkgver//./}"
+pkgrel=2
+pkgdesc="rpiboot and bin2c from Raspberry Pi"
+url="https://github.com/raspberrypi/usbboot"
+arch="all"
+license="Apache-2.0"
+makedepends="libusb-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/raspberrypi/usbboot/archive/refs/tags/v$_pkgver.tar.gz
+ patch-main.c.patch
+ "
+options="!check !strip" # No tests and don't strip .elf files.
+builddir="$srcdir/$_pkgname-$_pkgver"
+
+build() {
+ make CFLAGS="$CFLAGS"
+}
+
+package() {
+ mkdir -p "$pkgdir"/bin
+ cp rpiboot bin2c "$pkgdir"/bin
+
+ install -Dm644 -t "$pkgdir"/usr/lib/udev/rules.d debian/99-rpiboot.rules
+
+ mkdir -p "$pkgdir"/usr/share/rpiboot/msd
+ cp msd/bootcode.bin "$pkgdir"/usr/share/rpiboot/msd
+ cp msd/bootcode4.bin "$pkgdir"/usr/share/rpiboot/msd
+ cp msd/start.elf "$pkgdir"/usr/share/rpiboot/msd
+ cp msd/start4.elf "$pkgdir"/usr/share/rpiboot/msd
+ cp -R recovery "$pkgdir"/usr/share/rpiboot
+}
+
+sha512sums="
+864b8ebae034c40e386023225a86e2b38b526ec91aff7eda4d76ac3a291a2a883d95c37441ea77cc4772f31ac38b356a55a7046c16081df7be33e7bfb48cfa88 raspberrypi-usbboot-20210701.tar.gz
+fa0a625f6f42ffc620b0cade0dedc12e1e664dc4df9745f8a9224ec185a881601eedd2c40684a55a7229f2d41cc148ba1bf0cab274e00e7679b39b304244d0fa patch-main.c.patch
+"
diff --git a/testing/raspberrypi-usbboot/patch-main.c.patch b/testing/raspberrypi-usbboot/patch-main.c.patch
new file mode 100644
index 00000000000..3bfb571c52d
--- /dev/null
+++ b/testing/raspberrypi-usbboot/patch-main.c.patch
@@ -0,0 +1,15 @@
+Just disable inclusion of fmemopen since Makefile does not offer CFLAGS macro.
+--- a/main.c 2021-07-01 11:56:11.657844919 +0200
++++ b/main.c 2021-07-01 11:56:18.733756580 +0200
+@@ -10,11 +10,6 @@
+ #include "msd/bootcode4.h"
+ #include "msd/start4.h"
+
+-/* Assume BSD without native fmemopen() if doesn't seem to be glibc */
+-#if defined(__APPLE__) || (!defined(_GNU_SOURCE) && (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L))
+-#include "fmemopen.c" // BSD fmemopen() compat in terms of funopen()
+-#endif
+-
+ int signed_boot = 0;
+ int verbose = 0;
+ int loop = 0;
diff --git a/testing/rathole/APKBUILD b/testing/rathole/APKBUILD
new file mode 100644
index 00000000000..97ea9cbf28d
--- /dev/null
+++ b/testing/rathole/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=rathole
+pkgver=0.5.0
+pkgrel=0
+pkgdesc="High-performance reverse proxy for NAT traversal"
+url="https://github.com/rapiz1/rathole"
+license="Apache-2.0"
+arch="all !s390x !riscv64" # blocked by rust/cargo
+makedepends="cargo openssl-dev cargo-auditable"
+source="https://github.com/rapiz1/rathole/archive/v$pkgver/rathole-$pkgver.tar.gz"
+options="!check" # loop forever on failure
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+0b4da8e3a95624d2e03a0682eecc098ea5d615bd47080f4a13d8248ee4358faecb81298feb2499084d55415cce01b4bc3fcb8a8d5c41677f2c3ceaa131fd4915 rathole-0.5.0.tar.gz
+"
diff --git a/testing/ratpoison/APKBUILD b/testing/ratpoison/APKBUILD
deleted file mode 100644
index e6c275e18dd..00000000000
--- a/testing/ratpoison/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Duncan Guthrie <dguthrie@posteo.net>
-# Maintainer: Duncan Guthrie <dguthrie@posteo.net>
-pkgname=ratpoison
-pkgver=1.4.9
-pkgrel=1
-pkgdesc="Minimalistic window manager"
-url="http://ratpoison.nongnu.org"
-arch="all"
-license="GPL-2.0-only"
-makedepends="libx11-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://download.savannah.nongnu.org/releases/$pkgname/$pkgname-$pkgver.tar.xz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --without-xkb \
- --without-xft \
- --without-xrandr
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="97f705efd2092b8e12528496890c59f613e6fcec010aca94a5a59bd641e22dfc50dd500a4b94af7a07553a8a6359f6bec4eee0db1a7ded29d7f051904b09beef ratpoison-1.4.9.tar.xz"
diff --git a/testing/rattler-build/APKBUILD b/testing/rattler-build/APKBUILD
new file mode 100644
index 00000000000..7f9dc3b42eb
--- /dev/null
+++ b/testing/rattler-build/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=rattler-build
+pkgver=0.15.0
+pkgrel=0
+pkgdesc="A fast conda-package builder"
+url="https://github.com/prefix-dev/rattler-build"
+arch="all"
+license="BSD-3-Clause"
+depends="
+ bzip2
+ xz
+ "
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+checkdepends="
+ patchelf
+ git
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/prefix-dev/rattler-build/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+ mkdir -p completions/
+}
+
+build() {
+ cargo auditable build --frozen --release
+ local _completion="target/release/$pkgname completion"
+ $_completion --shell bash > "completions/$pkgname"
+ $_completion --shell fish > "completions/$pkgname.fish"
+ $_completion --shell zsh > "completions/_$pkgname"
+}
+
+check() {
+ cargo test --frozen -- --skip "test_host_git_source"
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+ install -Dm 664 "completions/$pkgname" -t "$pkgdir/usr/share/bash-completion/completions/"
+ install -Dm 664 "completions/$pkgname.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d/"
+ install -Dm 664 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions/"
+}
+
+sha512sums="
+833d28c61390e2d688f523615399eada3ac470a3261718b96bebd167792ad73d00dfe1d51d6860a44d086d9b191b1f0b4b8ff05535bb424276aa2d35c67c9d33 rattler-build-0.15.0.tar.gz
+"
diff --git a/testing/rauc/APKBUILD b/testing/rauc/APKBUILD
new file mode 100644
index 00000000000..2b57e7883af
--- /dev/null
+++ b/testing/rauc/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Damian Kurek <starfire24680@gmail.com>
+# Maintainer: Damian Kurek <starfire24680@gmail.com>
+pkgname=rauc
+pkgver=1.10.1
+pkgrel=0
+pkgdesc="Safe and secure software updates for embedded Linux"
+url="https://rauc.io/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ autoconf
+ automake
+ curl-dev
+ dbus-dev
+ glib-dev
+ json-glib-dev
+ libfdisk
+ libnl3-dev
+ libtool
+ openssl-dev
+ "
+checkdepends="
+ dbus-x11
+ desync
+ e2fsprogs
+ libfaketime
+ opensc
+ openssl
+ softhsm
+ squashfs-tools
+ "
+# grub is not available on s390x
+# valgrind is not available on armhf or riscv64
+case "$CARCH" in
+s390x) checkdepends="$checkdepends valgrind" ;;
+armhf|riscv64) checkdepends="$checkdepends grub" ;;
+*) checkdepends="$checkdepends grub valgrind" ;;
+esac
+subpackages="$pkgname-service::noarch $pkgname-doc"
+source="$pkgname-$pkgver.tar.xz::https://github.com/rauc/rauc/releases/download/v$pkgver/rauc-$pkgver.tar.xz"
+
+prepare() {
+ default_prepare
+
+ NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ # There is also qemu-test, but we run only these
+
+ # faketime appears to have no effect on musl libc
+ # so certificate expiration tests will fail
+ make check || true
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+service() {
+ pkgdesc="Service files for rauc"
+ depends="rauc=$pkgver-r$pkgrel"
+ amove /usr/libexec
+ amove /usr/share/dbus-1
+}
+
+sha512sums="
+794a1a517c9a9eacf7466710054f88fc48bf57e34cb460f202f62ca976777054c0faf74dd045164ea29977aa8f5d9d268f5154621b51642898ffafc831c75bbb rauc-1.10.1.tar.xz
+"
diff --git a/testing/rav1e/APKBUILD b/testing/rav1e/APKBUILD
deleted file mode 100644
index 2ef88349e80..00000000000
--- a/testing/rav1e/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=rav1e
-pkgver=0.3.1
-pkgrel=1
-pkgdesc="The fastest and safest AV1 encoder"
-url="https://github.com/xiph/rav1e"
-arch="all !s390x !mips !mips64" # no cargo for s390x
-license="BSD-2-Clause custom"
-options="!check" # No test suite from upstream
-makedepends="cargo nasm"
-subpackages="$pkgname-doc $pkgname-libs $pkgname-static"
-source="$pkgname-$pkgver.tar.gz::https://github.com/xiph/rav1e/archive/v$pkgver.tar.gz"
-
-prepare() {
- RUSTFLAGS="-C opt-level=0" \
- cargo install --force --root "$srcdir" cargo-c
-}
-
-check() {
- cargo test --release
-}
-
-package() {
- cargo install --root "$pkgdir/usr" --path .
- "$srcdir/bin/cargo-cinstall" install \
- --release --destdir "$pkgdir" --prefix "/usr"
-
- install -Dm 644 -t "$pkgdir/usr/share/doc/rav1e" README.md
- install -Dm 644 -t "$pkgdir/usr/share/doc/rav1e" PATENTS
-
- rm "$pkgdir"/usr/.crates.toml
- rm "$pkgdir"/usr/.crates2.json
-}
-
-sha512sums="1d53ad875ff780880360c8402e5c0a5ebd5b95e0fcc7a827a82af8746db898da60d286c3d95c795ee15d9e32a49293f9b7ee45eeed882bc8b93395a299403252 rav1e-0.3.1.tar.gz"
diff --git a/testing/razercfg/APKBUILD b/testing/razercfg/APKBUILD
index 6f619518742..5ea41573ceb 100644
--- a/testing/razercfg/APKBUILD
+++ b/testing/razercfg/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Taner Tas <taner76@gmail.com>
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=razercfg
-pkgver=0.41
-pkgrel=1
-pkgdesc="Razer mouse configuration tool."
+pkgver=0.42
+pkgrel=6
+pkgdesc="Razer mouse configuration tool"
url="https://bues.ch/cms/hacking/razercfg.html"
arch="all"
license="GPL-2.0-or-later"
@@ -11,9 +11,10 @@ makedepends="
cmake
libusb-dev
python3
+ py3-setuptools
eudev-dev
"
-subpackages="$pkgname-openrc $pkgname-gui::noarch"
+subpackages="$pkgname-openrc $pkgname-gui::noarch $pkgname-pyc"
source="https://github.com/mbuesch/razer/archive/razercfg-$pkgver.tar.gz
razerd.initd
"
@@ -22,6 +23,7 @@ builddir="$srcdir/razer-$pkgname-$pkgver"
build() {
cmake . \
+ -DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr
}
@@ -40,5 +42,6 @@ gui() {
mv "$pkgdir"/usr/share "$subpkgdir"/usr/
mv "$pkgdir"/usr/bin/qrazercfg* "$subpkgdir"/usr/bin/
}
-sha512sums="8ef8489bcd1f9617c0862cd8482eb1ccdcb4c748f2f32a1fcd6995e24d34f6032b30aade5eec1617f2ab44f8fa385198a427db32fa6b5faf6c116ee3d1db4be5 razercfg-0.41.tar.gz
+
+sha512sums="2784c0e23dabd105cbee2c9531f469bb6e7f1fc4420b691e2f6532077883baed6af44441e7f68633f4b5fcb1cac7fef7d455250791a8323365fda8a4430113b9 razercfg-0.42.tar.gz
1b13752471cc5860dbcafc416f0b9a2a6ef6abb7bb8df68e6acd0cddb4184d194f8b2adf5f163cd8580e2f65bab5baf632ea214558a635ddb67f1f2b8dc2d9f0 razerd.initd"
diff --git a/testing/rbw/APKBUILD b/testing/rbw/APKBUILD
new file mode 100644
index 00000000000..d7057a2cfd1
--- /dev/null
+++ b/testing/rbw/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: crapStone <crapstone01@gmail.com>
+pkgname=rbw
+pkgver=1.10.0
+pkgrel=0
+pkgdesc="Unofficial command line client for Bitwarden."
+url="https://git.tozt.net/rbw"
+arch="all !s390x !riscv64 !ppc64le" # ring
+license="MIT"
+depends="pinentry"
+makedepends="rust cargo cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://git.tozt.net/rbw/snapshot/rbw-$pkgver.tar.gz"
+export CARGO_HOME="$srcdir"/cargo
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ target/release/rbw gen-completions bash > rbw.bash
+ target/release/rbw gen-completions fish > rbw.fish
+ target/release/rbw gen-completions zsh > _rbw
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/rbw "$pkgdir"/usr/bin/rbw
+ install -Dm755 target/release/rbw-agent "$pkgdir"/usr/bin/rbw-agent
+
+ install -Dm644 rbw.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/rbw
+ install -Dm644 rbw.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/rbw.fish
+ install -Dm644 _rbw \
+ "$pkgdir"/usr/share/zsh/site-functions/_rbw
+}
+
+sha512sums="
+83e45f32323445fbcb4196120179771d31cf71065f3a1ab921d0dcf194d33a3bd57a149869a467c7120024c4745f837488662f52e0311c2fb43782b2d6c7d92b rbw-1.10.0.tar.gz
+"
diff --git a/testing/rclone-browser/APKBUILD b/testing/rclone-browser/APKBUILD
new file mode 100644
index 00000000000..bbbdba626bd
--- /dev/null
+++ b/testing/rclone-browser/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=rclone-browser
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="Simple cross-platform GUI for rclone"
+url="https://github.com/kapitainsky/RcloneBrowser"
+# riscv64 blocked by binutils-gold -> rclone
+# s390x blocked by rclone -> gh/cronokirby/saferith#51
+arch="all !riscv64 !s390x"
+license="MIT"
+depends="rclone"
+makedepends="cmake qt5-qttools-dev qt5-qtdeclarative-dev"
+source="https://github.com/kapitainsky/RcloneBrowser/archive/$pkgver/RcloneBrowser-$pkgver.tar.gz
+ quick_fix_for_qt-5.15.patch
+ "
+options="!check" # no test suite
+builddir="$srcdir/RcloneBrowser-$pkgver"
+
+build() {
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DReleaseBuild=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="a71be1de99ee3d09946b23bc4c7ca423934c039e6ddc21dd5f5f4f3d97ba96564c40e9bab546d7671873a4fab0d2d7c08c87ef703be6fb26a40aa6582fb58d25 RcloneBrowser-1.8.0.tar.gz
+4d59bcabd373e3d9e28e912cc7999217e3b26b44a45060cdeca34f8d9685bf6889a59ddf08784dba467b765fd006f4d24f2a91609eb394277b2ab09b0599228b quick_fix_for_qt-5.15.patch"
diff --git a/testing/rclone-browser/quick_fix_for_qt-5.15.patch b/testing/rclone-browser/quick_fix_for_qt-5.15.patch
new file mode 100644
index 00000000000..f55f0873341
--- /dev/null
+++ b/testing/rclone-browser/quick_fix_for_qt-5.15.patch
@@ -0,0 +1,19 @@
+Source: https://github.com/openbsd/ports/blob/master/sysutils/rclone-browser/patches/patch-src_CMakeLists_txt
+
+$OpenBSD: patch-src_CMakeLists_txt,v 1.1 2021/01/19 06:37:52 rsadowski Exp $
+
+Workaround to unbreak build with Qt 5.15
+https://github.com/kapitainsky/RcloneBrowser/issues/125
+
+Index: src/CMakeLists.txt
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -10,7 +10,7 @@ endif()
+ if(WIN32)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /WX /wd4100 /wd4189")
+ else()
+- add_definitions("-pedantic -Wall -Wextra -Werror -std=c++11")
++ add_definitions("-pedantic -Wall -Wextra -std=c++11")
+ endif()
+
+ if (APPLE)
diff --git a/testing/rcon-cli/APKBUILD b/testing/rcon-cli/APKBUILD
new file mode 100644
index 00000000000..5554af8d195
--- /dev/null
+++ b/testing/rcon-cli/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=rcon-cli
+pkgver=1.6.2
+pkgrel=3
+pkgdesc="A little RCON cli based on james4k's RCON library for golang"
+url="https://github.com/itzg/rcon-cli"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/itzg/rcon-cli/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ go build .
+}
+
+package() {
+ install -Dm755 "$pkgname" -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+4dd03870b134228008b4fba2363fd159992e9c8fea8d912f8c953977fe4f2a9d8afd2d5a7eade9606f6e41ce95e9c0384cc2a12517cda7291b60ecaddc763f80 rcon-cli-1.6.2.tar.gz
+"
diff --git a/testing/rcs/APKBUILD b/testing/rcs/APKBUILD
deleted file mode 100644
index 2fa08c88c6b..00000000000
--- a/testing/rcs/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
-pkgname=rcs
-pkgver=5.9.4
-pkgrel=0
-pkgdesc="Revision Control System"
-url="https://www.gnu.org/software/rcs"
-arch="all"
-license="GPL-3.0"
-depends="diffutils"
-subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- CFLAGS="-std=c99" \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- || retrun 1
- make || return 1
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
-}
-
-sha512sums="c501a46b8d2e166ec0b54301d72687d9b38b31d84517fcc8dd560a296e7ad250962a92f019e53b2921af9045755e2e7f2f2acc9542dbe0d19ee110ef36861cd4 rcs-5.9.4.tar.xz"
diff --git a/testing/rdedup/APKBUILD b/testing/rdedup/APKBUILD
index a48292896b7..5085cfbe694 100644
--- a/testing/rdedup/APKBUILD
+++ b/testing/rdedup/APKBUILD
@@ -1,39 +1,31 @@
# Contributor: tcely <rdedup+aports@tcely.33mail.com>
# Maintainer:
-pkgname="rdedup"
-pkgver="3.1.1"
-pkgrel=3
+pkgname=rdedup
+pkgver=3.2.1
+pkgrel=4
pkgdesc="Data deduplication with compression and public key encryption"
url="https://github.com/dpc/rdedup"
arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by cargo
license="MPL-2.0"
-makedepends="cargo clang-dev libsodium-dev openssl-dev xz-dev"
-source="https://github.com/dpc/${pkgname}/archive/${pkgname}-v${pkgver}.tar.gz"
-builddir="$srcdir/${pkgname}-${pkgname}-v${pkgver}"
-
-_cargo_env() {
- cd "$builddir"
-
- RELEASE=true
- export RELEASE
-}
+makedepends="cargo clang-dev libsodium-dev openssl-dev>3 xz-dev cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dpc/rdedup/archive/v$pkgver.tar.gz
+ getrandom-0.2.10.patch
+ "
build() {
- _cargo_env
-
- make check build
+ cargo auditable build --release --locked
}
check() {
- _cargo_env
-
- make bench test
+ cargo test --release --locked
}
package() {
- _cargo_env
-
- cargo install --root "$pkgdir" --path "$builddir"
+ cargo auditable install --locked --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
}
-sha512sums="f94fc99ce84f5618ec5e24f48c593e7644eecadc4be2d997f9847576d97f3c5adf97a97fca1376ea0da4e24b9acf7cee354e032e6354a07a9922c63f798426ae rdedup-v3.1.1.tar.gz"
+sha512sums="
+375265eab7c133000682fd8bf6bf023d69042571a737e707671874a9c5bada4c05742fd397207661f0c8334f0818e8a52707c412ca5cbec636469f6d9c7448c9 rdedup-3.2.1.tar.gz
+216c9f6111406d2c2c18a2bdbe25678d32f22da7daf2eeff67a1f179e3b40b92b205652f4d8362b33246d50bb29540947138533a9f5bd13c60cb5d9da53edd02 getrandom-0.2.10.patch
+"
diff --git a/testing/rdedup/getrandom-0.2.10.patch b/testing/rdedup/getrandom-0.2.10.patch
new file mode 100644
index 00000000000..b290c59faae
--- /dev/null
+++ b/testing/rdedup/getrandom-0.2.10.patch
@@ -0,0 +1,61 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -441,13 +441,13 @@
+
+ [[package]]
+ name = "getrandom"
+-version = "0.2.3"
++version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
++checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+- "wasi 0.10.2+wasi-snapshot-preview1",
++ "wasi 0.11.0+wasi-snapshot-preview1",
+ ]
+
+ [[package]]
+@@ -566,9 +566,9 @@
+
+ [[package]]
+ name = "libc"
+-version = "0.2.98"
++version = "0.2.149"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
++checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+
+ [[package]]
+ name = "libsodium-sys"
+@@ -873,7 +873,7 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+ dependencies = [
+- "getrandom 0.2.3",
++ "getrandom 0.2.10",
+ ]
+
+ [[package]]
+@@ -967,7 +967,7 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
+ dependencies = [
+- "getrandom 0.2.3",
++ "getrandom 0.2.10",
+ "redox_syscall",
+ ]
+
+@@ -1425,9 +1425,9 @@
+
+ [[package]]
+ name = "wasi"
+-version = "0.10.2+wasi-snapshot-preview1"
++version = "0.11.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+ [[package]]
+ name = "winapi"
diff --git a/testing/rdrview/APKBUILD b/testing/rdrview/APKBUILD
new file mode 100644
index 00000000000..2c5d98143a6
--- /dev/null
+++ b/testing/rdrview/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=rdrview
+pkgver=0.1.1
+pkgrel=0
+pkgdesc="Command line tool to extract the main content from a webpage"
+url="https://github.com/eafer/rdrview"
+arch="all"
+license="Apache-2.0"
+makedepends="libxml2-dev curl-dev libseccomp-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/eafer/rdrview/archive/v$pkgver.tar.gz
+ curl-7.85.0-CURLOPT_PROTOCOLS-deprecation.patch
+ "
+options="!check" # tests are quite involved and have a bunch of requirements
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+49a3f2f7ce1937ff4fdad67823763ab5ac57d1a9dce71ac05701a7c22454da989758c74b87f81bf9f07704690be3435d740ae33a8510b8579e76068b69a6119d rdrview-0.1.1.tar.gz
+6890f2b7b90251d2fe5479668defa911f769e35c136b818c4cc44821d429c284d8ef1b6d781f898ee6caf4ba3c34f440647a96f486dc0c23bbc8c93c848bff65 curl-7.85.0-CURLOPT_PROTOCOLS-deprecation.patch
+"
diff --git a/testing/rdrview/curl-7.85.0-CURLOPT_PROTOCOLS-deprecation.patch b/testing/rdrview/curl-7.85.0-CURLOPT_PROTOCOLS-deprecation.patch
new file mode 100644
index 00000000000..8f0eb3b4a35
--- /dev/null
+++ b/testing/rdrview/curl-7.85.0-CURLOPT_PROTOCOLS-deprecation.patch
@@ -0,0 +1,24 @@
+--- a/src/rdrview.c
++++ b/src/rdrview.c
+@@ -228,7 +228,6 @@ static void url_to_file(FILE *file)
+ {
+ CURL *curl;
+ CURLcode res;
+- long protocols;
+
+ curl = curl_easy_init();
+ if (!curl)
+@@ -239,8 +238,12 @@ static void url_to_file(FILE *file)
+ fatal();
+
+ /* I don't expect any other protocols, so be safe */
+- protocols = CURLPROTO_HTTP | CURLPROTO_HTTPS;
++ #if CURL_AT_LEAST_VERSION(7, 85, 0)
++ if (curl_easy_setopt(curl, CURLOPT_PROTOCOLS_STR, "HTTPS,HTTP"))
++ #else
++ long protocols = CURLPROTO_HTTP | CURLPROTO_HTTPS;
+ if (curl_easy_setopt(curl, CURLOPT_PROTOCOLS, protocols))
++ #endif
+ fatal();
+
+ /* Enable automatic decompression */
diff --git a/testing/reaction/APKBUILD b/testing/reaction/APKBUILD
new file mode 100644
index 00000000000..6e7766c0de7
--- /dev/null
+++ b/testing/reaction/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=reaction
+pkgver=1.3.0
+pkgrel=2
+pkgdesc="Logs scanner for event triggering"
+url="https://framagit.org/ppom/reaction"
+license="AGPL-3.0-or-later"
+arch="all"
+makedepends="go gcc"
+#install="$pkgname.pre-install $pkgname.pre-upgrade"
+subpackages="$pkgname-openrc $pkgname-tools"
+source="$pkgname-$pkgver.tar.gz::https://framagit.org/ppom/reaction/-/archive/v$pkgver/reaction-v$pkgver.tar.gz
+ reaction.initd
+ reaction.confd
+ reaction.yml
+ "
+options="net !check" # check needs a postgres instance
+builddir="$srcdir/$pkgname-v$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o reaction -buildvcs=false -ldflags "-s -X main.version=$pkgver" .
+ make ip46tables
+ make nft46
+}
+
+package() {
+ install -Dm755 reaction "$pkgdir"/usr/bin/reaction
+ install -Dm755 "$srcdir"/reaction.initd "$pkgdir"/etc/init.d/reaction
+ install -Dm644 "$srcdir"/reaction.confd "$pkgdir"/etc/conf.d/reaction
+ install -Dm644 "$srcdir"/reaction.yml "$pkgdir"/etc/reaction.yml
+}
+
+tools() {
+ pkgdesc="Tools for use by Reaction"
+ install -Dm755 "$builddir"/ip46tables "$subpkgdir"/usr/bin/ip46tables
+ install -Dm755 "$builddir"/nft46 "$subpkgdir"/usr/bin/nft46
+}
+
+sha512sums="
+d7f4e3a0d800e33c13dd508be77a2e6232a155e8b038439b288aa3531c6664920ca7d2fe960dc918c7cea5c770aac6a7ace8be350e032e9a30014b3afd215e2e reaction-1.3.0.tar.gz
+c2473cf3902ec42c045cd5f748ce27937fe1cb99e8e83e4920bd4ec10554c70339478d5756909d54889ed8eb0b8ba2bfe1307ba3be5e0e12a1c67895c82df606 reaction.initd
+99e0fa2b72ad3e5793b1d99b7ca4a53ac4079afa1978f51897435b2660b97871f128b3038388f42e9fdc7c3d07a077aab1e9bd78c91b61b8c4b7b05dac1cce04 reaction.confd
+abca80f725b14ec9d8f0c46c31658d16448ca5cc732b8c8d069c29cfb67b92abf571619a5152157dd8fc8bb44192912c698e46df9a1f18f851e20dd23123a58a reaction.yml
+"
diff --git a/testing/reaction/reaction.confd b/testing/reaction/reaction.confd
new file mode 100644
index 00000000000..fff5e11a5e3
--- /dev/null
+++ b/testing/reaction/reaction.confd
@@ -0,0 +1,4 @@
+# /etc/conf.d/reaction
+
+CONFIG="/etc/reaction.yml"
+ARGS=""
diff --git a/testing/reaction/reaction.initd b/testing/reaction/reaction.initd
new file mode 100755
index 00000000000..3e5bc5db5ee
--- /dev/null
+++ b/testing/reaction/reaction.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+command="/usr/bin/reaction"
+command_args="start -c $CONFIG $ARGS"
+command_background="yes"
+command_user="root"
+
+pidfile="/var/run/${SVCNAME}.pid"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/reaction/reaction.yml b/testing/reaction/reaction.yml
new file mode 100644
index 00000000000..4a796f0e0b6
--- /dev/null
+++ b/testing/reaction/reaction.yml
@@ -0,0 +1,95 @@
+---
+# Note for Alpine Linux users:
+# This default configuration uses the program ip46tables.
+# To install it, simply run:
+# apk add reaction-tools
+
+# definitions are just a place to put chunks of conf you want to reuse in another place
+# using YAML anchors `&name` and pointers `*name`
+# definitions are not readed by reaction
+definitions:
+ - &iptablesban [ 'ip46tables', '-w', '-A', 'reaction', '-s', '<ip>', '-j', 'DROP' ]
+ - &iptablesunban [ 'ip46tables', '-w', '-D', 'reaction', '-s', '<ip>', '-j', 'DROP' ]
+# ip46tables is a minimal C program (only POSIX dependencies) present as a subdirectory.
+# it permits to handle both ipv4/iptables and ipv6/ip6tables commands
+
+# patterns are substitued in regexes.
+# when a filter performs an action, it replaces the found pattern
+patterns:
+ ip:
+ # reaction regex syntax is defined here: https://github.com/google/re2/wiki/Syntax
+ regex: '(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3})|(?:[0-9a-fA-F:]{2,90})'
+ ignore:
+ - 127.0.0.1
+ - ::1
+
+# Those commands will be executed in order at start, before everything else
+start:
+ - [ 'ip46tables', '-w', '-N', 'reaction' ]
+ - [ 'ip46tables', '-w', '-I', 'INPUT', '-p', 'all', '-j', 'reaction' ]
+
+# Those commands will be executed in order at stop, after everything else
+stop:
+ - [ 'ip46tables', '-w,', '-D', 'INPUT', '-p', 'all', '-j', 'reaction' ]
+ - [ 'ip46tables', '-w', '-F', 'reaction' ]
+ - [ 'ip46tables', '-w', '-X', 'reaction' ]
+
+# streams are commands
+# they are run and their ouptut is captured
+# *example:* `tail -f /var/log/nginx/access.log`
+# their output will be used by one or more filters
+streams:
+ # streams have a user-defined name
+ ssh:
+ # note that if the command is not in environment's `PATH`
+ # its full path must be given.
+ cmd: [ 'tail', '-f', '/var/log/auth.log' ]
+ # filters run actions when they match regexes on a stream
+ filters:
+ # filters have a user-defined name
+ failedlogin:
+ # reaction's regex syntax is defined here: https://github.com/google/re2/wiki/Syntax
+ regex:
+ # <ip> is predefined in the patterns section
+ # ip's regex is inserted in the following regex
+ - 'authentication failure;.*rhost=<ip>'
+ - 'Failed password for .* from <ip>'
+ - 'Connection reset by authenticating user .* <ip>'
+ # if retry and retryperiod are defined,
+ # the actions will only take place if a same pattern is
+ # found `retry` times in a `retryperiod` interval
+ retry: 3
+ # format is defined here: https://pkg.go.dev/time#ParseDuration
+ retryperiod: 6h
+ # actions are run by the filter when regexes are matched
+ actions:
+ # actions have a user-defined name
+ ban:
+ # YAML substitutes *reference by the value anchored at &reference
+ cmd: *iptablesban
+ unban:
+ cmd: *iptablesunban
+ # if after is defined, the action will not take place immediately, but after a specified duration
+ # same format as retryperiod
+ after: 48h
+ # let's say reaction is quitting. does it run all those pending commands which had an `after` duration set?
+ # if you want reaction to run those pending commands before exiting, you can set this:
+ # onexit: true
+ # (defaults to false)
+ # here it is not useful because we will flush and delete the chain containing the bans anyway
+ # (with the stop commands)
+
+# persistence
+# tldr; when an `after` action is set in a filter, such filter acts as a 'jail',
+# which is persisted after reboots.
+#
+# when a filter is triggered, there are 2 flows:
+#
+# if none of its actions have an `after` directive set:
+# no action will be replayed.
+#
+# else (if at least one action has an `after` directive set):
+# if reaction stops while `after` actions are pending:
+# and reaction starts again while those actions would still be pending:
+# reaction executes the past actions (actions without after or with then+after < now)
+# and plans the execution of future actions (actions with then+after > now)
diff --git a/testing/readosm/APKBUILD b/testing/readosm/APKBUILD
index 9cc32873f25..c5b91314f10 100644
--- a/testing/readosm/APKBUILD
+++ b/testing/readosm/APKBUILD
@@ -2,17 +2,15 @@
# Maintainer: Bjoern Schilberg <bjoern@intevation.de>
pkgname=readosm
pkgver=1.1.0
-pkgrel=1
+pkgrel=2
pkgdesc="Library to extract valid data from an Open Street Map input file."
url="https://www.gaia-gis.it/fossil/readosm/index"
arch="all"
license="MPL-1.1 GPL-2.0-only LGPL-2.1-only"
-depends="expat zlib"
depends_dev="expat-dev zlib-dev"
makedepends="$depends_dev"
-install=""
subpackages="$pkgname-dev"
-source="http://www.gaia-gis.it/gaia-sins/$pkgname-$pkgver.tar.gz"
+source="https://www.gaia-gis.it/gaia-sins/readosm-sources/readosm-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -20,7 +18,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--host=$CHOST \
--build=$CBUILD \
@@ -28,15 +25,14 @@ build() {
make
}
-
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/usr/share/
}
-sha512sums="d3581f564c4461c6a1a3d5fd7d18a262c884b2ac935530064bfaebd6c05d692fb92cc600fb40e87e03f7160ebf0eeeb05f51a0e257935d056b233fe28fc01a11 readosm-1.1.0.tar.gz"
+sha512sums="
+d3581f564c4461c6a1a3d5fd7d18a262c884b2ac935530064bfaebd6c05d692fb92cc600fb40e87e03f7160ebf0eeeb05f51a0e257935d056b233fe28fc01a11 readosm-1.1.0.tar.gz
+"
diff --git a/testing/reason/APKBUILD b/testing/reason/APKBUILD
index dd2d6c41208..8c0c9164f2f 100644
--- a/testing/reason/APKBUILD
+++ b/testing/reason/APKBUILD
@@ -1,150 +1,142 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=reason
-pkgver=3.0.4
-pkgrel=2
+pkgver=3.8.2
+pkgrel=1
pkgdesc="Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems"
url="https://reasonml.github.io/"
-# x86, armhf, s390x, mips, mips64: limited by ocaml aport
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64"
+arch="all !riscv64 !loongarch64" # ocaml
license="MIT"
checkdepends="nodejs utop-full"
-_menhirver=20171013
makedepends="
bash
dune
ocaml
ocaml-compiler-libs
+ ocaml-cppo
ocaml-findlib-dev
- ocaml-menhir-dev=~$_menhirver
+ ocaml-fix-dev
+ ocaml-menhir
+ ocaml-menhir-dev
ocaml-merlin-extend-dev
- ocaml-migrate-parsetree-dev
ocaml-ocamlbuild-dev
+ ocaml-ppx_derivers-dev
ocaml-result-dev
+ ocaml-seq-dev
ocaml-utop-dev
ocamlbuild
- opam
+ ocaml-bigarray-compat-dev
+ ocaml-camomile-dev
+ ocaml-charinfo_width-dev
+ ocaml-csexp-dev
+ ocaml-lambda-term-dev
+ ocaml-lwt-dev
+ ocaml-lwt_log-dev
+ ocaml-lwt_react
+ ocaml-mew-dev
+ ocaml-mew_vi-dev
+ ocaml-mmap-dev
+ ocaml-ocplib-endian-dev
+ ocaml-react-dev
+ ocaml-trie-dev
+ ocaml-zed-dev
"
options="!check" # FIXME: tests cannot find reason's modules
+provides="$pkgname-reactjs=$pkgver-r$pkgrel"
subpackages="
ocaml-$pkgname-dev:_libdev
- $pkgname-merlin
- $pkgname-reactjs
- $pkgname-rebuild
$pkgname-rtop
ocaml-$pkgname:_lib
"
-source="$pkgname-$pkgver.tar.gz::https://github.com/facebook/$pkgname/archive/$pkgver.tar.gz
- rtop.sh.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.bz2::https://github.com/reasonml/reason/releases/download/$pkgver/reason-$pkgver.tbz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
build() {
- cd "$builddir"
- jbuilder build @install
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
}
check() {
- cd "$builddir"
- jbuilder runtest
+ dune runtest --no-buffer --verbose
}
package() {
- cd "$builddir"
-
- opam-installer -i \
- --prefix="$pkgdir/usr" \
- --libdir="$pkgdir/usr/lib/ocaml" \
- --docdir="$pkgdir/doc" \
- --mandir="$pkgdir/usr/share/man" \
- $pkgname.install
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml \
+ --mandir="$pkgdir/usr/share/man"
cd "$pkgdir"
# There's just a readme and changelog.
- rm -Rf doc
-
- # Remove annotation files and sources.
- find usr/lib/ocaml \
- -name '*.cmt' -delete \
- -o -name '*.cmti' -delete \
- -o -name '*.ml' -delete
+ rm -Rf usr/doc
# Just for internal tests.
- rm usr/bin/testOprint
-
- # This is probably used only to generate parser (?).
- rm usr/bin/menhir_error_processor
-
- mkdir -p usr/share/$pkgname-rtop
- mv usr/bin/rtop_init.ml usr/share/$pkgname-rtop/
+ rm -fv usr/bin/testOprint
}
_libdev() {
pkgdesc="$pkgdesc (development files)"
depends="ocaml-$pkgname=$pkgver-r$pkgrel"
- local sitelib="usr/lib/ocaml/$pkgname"
+
+ default_dev
cd "$pkgdir"
- local path; for path in $(find $sitelib/ \
- -name '*.a' \
- -o -name '*.cmx' \
- -o -name '*.cmxa' \
- -o -name '*.mli')
+ local path; find usr/lib/ocaml/$pkgname \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
do
- mkdir -p "$subpkgdir"/${path%/*}
- mv "$path" "$subpkgdir"/${path%/*}/
+ amove "$path"
done
- rmdir "$subpkgdir"/$sitelib 2>/dev/null || true
-}
-
-merlin() {
- pkgdesc="Reason extension to Merlin - context sensitive completion"
- depends="ocaml-merlin"
-
- _submv usr/bin/ocamlmerlin-reason
-}
-
-reactjs() {
- pkgdesc="ReactJS interop that translates Reason JSX to JS"
-
- _submv usr/bin/ppx_react
- _submv usr/bin/reactjs_jsx_ppx_v2
- _submv usr/bin/reactjs_jsx_ppx_v3
-}
-
-rebuild() {
- pkgdesc="Simple build system for Reason based on OCamlbuild"
- depends="$pkgname ocaml ocaml-ocamlbuild"
-
- _submv usr/bin/rebuild
}
rtop() {
pkgdesc="REPL for Reason based on Utop"
depends="$pkgname=$pkgver-r$pkgrel
ocaml-$pkgname=$pkgver-r$pkgrel
- ocaml-menhir-dev=~$_menhirver
+ ocaml-menhir-dev
utop-full"
- _submv usr/bin/rtop
- _submv usr/lib/ocaml/$pkgname/rtop
- _submv usr/share/$pkgname-rtop
+ amove usr/bin/rtop
+ amove usr/lib/ocaml/rtop
}
_lib() {
pkgdesc="$pkgdesc (library)"
- depends="ocaml-runtime ocaml-menhir=~$_menhirver ocaml-migrate-parsetree"
- _submv usr/lib/ocaml/$pkgname
+ amove usr/lib/ocaml/$pkgname
}
-_submv() {
- local path="$1"
- mkdir -p "$subpkgdir"/${path%/*}
- mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
- rmdir -p "$pkgdir"/${path%/*} 2>/dev/null || true
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
}
-sha512sums="ba21920b7320841b08cf0684aeb6718be92b175e2ab71d3b96b317f047c9726b656088cf1a4770766335d4f8a54194b84173e2d7458eabb9e2c0b89a78b1eb95 reason-3.0.4.tar.gz
-5a658798a27fa69cc2685353cf0c26dfd95ea6a1d8d5c53c6476500b37b86c18b7b1d26fecac13c5ab0aa91e07f4aa5a7087934e9faca0002dad8f6b8fafd876 rtop.sh.patch"
+sha512sums="
+45822ecf4b19b892e1d150fd7f7a80af18df576b204647d4bbb9a18ac591a690f9b5338789ecccacb2d6b6354dbc32ff4a3574cc8b82b777e21cb8729f502f95 reason-3.8.2.tar.bz2
+"
diff --git a/testing/reason/rtop.sh.patch b/testing/reason/rtop.sh.patch
deleted file mode 100644
index 73682fd4ce4..00000000000
--- a/testing/reason/rtop.sh.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/src/rtop/rtop.sh
-+++ b/src/rtop/rtop.sh
-@@ -1,4 +1,4 @@
--#!/usr/bin/env bash
-+#!/bin/sh
- # Copyright (c) 2015-present, Facebook, Inc. All rights reserved.
-
-
-@@ -13,15 +13,26 @@
- # require's reason, so that reason is required after .ocamlinit is
- # parsed in standard syntax.
-
--touch $HOME/.utoprc
--touch $HOME/.utop-history
--DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
-+# Enable pipefail if supported.
-+if ( set -o pipefail 2>/dev/null ); then
-+ set -o pipefail
-+fi
-
-+touch "$HOME"/.utoprc
-+touch "$HOME"/.utop-history
-+
- # intercept the -stdin flag of utop, and preprocess the code into reason code
- # before forwarding it. Afaik currently there's no better way of intercepting
- # the code after urtop receives code from stdin and before it processes it
--if [[ $@ =~ "stdin" ]]; then
-- refmt --parse re --print ml --interface false | utop-full $@
-+stdin=no
-+for arg in "$@"; do
-+ case "$arg" in
-+ -stdin) stdin=yes; break;;
-+ esac
-+done
-+
-+if [ "$stdin" = yes ]; then
-+ refmt --parse re --print ml --interface false | utop-full "$@"
- else
-- utop-full -init $DIR/rtop_init.ml $@ -I $HOME -safe-string
-+ utop-full -init /usr/share/reason-rtop/rtop_init.ml "$@" -I "$HOME" -safe-string
- fi
diff --git a/testing/reaver-wps-fork-t6x/APKBUILD b/testing/reaver-wps-fork-t6x/APKBUILD
index 999701e87cd..c01652482b6 100644
--- a/testing/reaver-wps-fork-t6x/APKBUILD
+++ b/testing/reaver-wps-fork-t6x/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=reaver-wps-fork-t6x
-pkgver=1.6.5
-pkgrel=0
+pkgver=1.6.6
+pkgrel=1
pkgdesc="Community forked version of reaver, the WPS password cracker"
url="https://github.com/t6x/reaver-wps-fork-t6x"
arch="all !s390x" # aircrack-ng disabled for s390x
@@ -10,7 +10,8 @@ license="GPL-2.0-only"
options="!check" #upstream does not provide check
depends="aircrack-ng pixiewps sqlite"
makedepends="libpcap-dev linux-headers sqlite-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/t6x/$pkgname/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/t6x/$pkgname/archive/v$pkgver.tar.gz
+reassociate-fix-bug.patch"
build() {
cd "$builddir"/src
@@ -30,4 +31,5 @@ package() {
chmod 750 "$pkgdir"/etc/reaver
}
-sha512sums="3e70d9fffefee3f6d60e72d7d7b1da91032e184c7d27f94b9f26e2260b7274d491f2e41f8056b386a211b9838d21afc6b65a8a826d310b51fc1065fa9e135dc0 reaver-wps-fork-t6x-1.6.5.tar.gz"
+sha512sums="431e3ed03eb6145a33a27bd03f4568c58046721566505f06bb0fe42ace8327d6749a70d443a592278253248f676299ff29962c839409d0173733eaaf0e2e6410 reaver-wps-fork-t6x-1.6.6.tar.gz
+3458aed74063d6c268e9ddb154bc2a3d357de62856416ce817d2446563336002a84dc0bde146d98c545eadd718f8aec994d5756b09b847e37d80590b747a31f9 reassociate-fix-bug.patch"
diff --git a/testing/reaver-wps-fork-t6x/reassociate-fix-bug.patch b/testing/reaver-wps-fork-t6x/reassociate-fix-bug.patch
new file mode 100644
index 00000000000..850d5170723
--- /dev/null
+++ b/testing/reaver-wps-fork-t6x/reassociate-fix-bug.patch
@@ -0,0 +1,27 @@
+From 4316c2659ac8a6437cfa234674d425e0614901a9 Mon Sep 17 00:00:00 2001
+From: rofl0r <rofl0r@users.noreply.github.com>
+Date: Sun, 12 Jul 2020 16:52:08 +0100
+Subject: [PATCH] reassociate(): fix bug
+
+bug was introduced in 488f2e7186d3cddb8df6060d308902986ddb30ac.
+the second call to the new function was always meant to use 1 as parameter,
+but i typo'ed. thanks to @1yura for the patch.
+
+addressing #303
+---
+ src/80211.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/80211.c b/src/80211.c
+index 92511d4..f976b4c 100644
+--- a/src/80211.c
++++ b/src/80211.c
+@@ -346,7 +346,7 @@ int reassociate(void)
+ state++;
+ break;
+ case 4:
+- ret = process_authenticate_associate_resp(0);
++ ret = process_authenticate_associate_resp(1);
+ if(ret) state++;
+ else return 0;
+ break;
diff --git a/testing/rebar3/APKBUILD b/testing/rebar3/APKBUILD
deleted file mode 100644
index cc0fc1d57b9..00000000000
--- a/testing/rebar3/APKBUILD
+++ /dev/null
@@ -1,110 +0,0 @@
-# Maintainer: Daniel Isaksen <d@duniel.no>
-pkgname=rebar3
-pkgver=3.11.1
-pkgrel=1
-pkgdesc="erlang build tool that makes it easy to compile and test erlang applications and releases"
-url="http://www.rebar3.org/"
-arch="noarch !armv7 !mips !mips64" # blocked by erlang
-license="Apache-2.0"
-depends="erlang erlang-compiler"
-makedepends="erlang-dev erlang-ssl erlang-eunit erlang-sasl erlang-dialyzer erlang-hipe"
-checkdepends="erlang-common-test erlang-tools erlang-snmp erlang-edoc erlang-erts"
-install=""
-subpackages=""
-_bbmustache_ver="1.6.1"
-_certifi_ver="2.5.1"
-_cf_ver="0.2.2"
-_cth_readable_ver="1.4.4"
-_erlware_commons_ver="1.3.1"
-_eunit_formatters_ver="0.5.0"
-_getopt_ver="1.0.1"
-_providers_ver="1.8.1"
-_relx_ver="3.32.1"
-_ssl_verify_fun_ver="1.1.5"
-_meck_ver="0.8.13"
-source="rebar3-$pkgver.tar.gz::https://github.com/erlang/rebar3/archive/$pkgver.tar.gz
- https://repo.hex.pm/tarballs/bbmustache-$_bbmustache_ver.tar
- https://repo.hex.pm/tarballs/certifi-$_certifi_ver.tar
- https://repo.hex.pm/tarballs/cf-$_cf_ver.tar
- https://repo.hex.pm/tarballs/cth_readable-$_cth_readable_ver.tar
- https://repo.hex.pm/tarballs/erlware_commons-$_erlware_commons_ver.tar
- https://repo.hex.pm/tarballs/eunit_formatters-$_eunit_formatters_ver.tar
- https://repo.hex.pm/tarballs/getopt-$_getopt_ver.tar
- https://repo.hex.pm/tarballs/providers-$_providers_ver.tar
- https://repo.hex.pm/tarballs/relx-$_relx_ver.tar
- https://repo.hex.pm/tarballs/ssl_verify_fun-$_ssl_verify_fun_ver.tar
- https://repo.hex.pm/tarballs/meck-$_meck_ver.tar
- "
-builddir="$srcdir/rebar3-$pkgver"
-
-# XXX: rebar3 eunit reports no tests, so I guess there is none. but I'm not sure.
-# XXX: rebar3 bootstrap tries to download a package index (but all of the dependencies are predownloaded),
-# which means we need networking enabled
-
-#options="net !check"
-
-_prepare_subpkg() {
- msg "unpacking $1 $2 to _build/default/lib"
-
- mkdir -p "$builddir/_build/default/lib/$1"
-
- cd "$builddir/_build/default/lib/$1"
- tar xf "$srcdir"/"$1"-"$2".tar
- tar zxf contents.tar.gz
- rm contents.tar.gz
- cd "$builddir"
-}
-
-prepare() {
- default_prepare
-
- _prepare_subpkg bbmustache $_bbmustache_ver
- _prepare_subpkg certifi $_certifi_ver
- _prepare_subpkg cf $_cf_ver
- _prepare_subpkg cth_readable $_cth_readable_ver
- _prepare_subpkg erlware_commons $_erlware_commons_ver
- _prepare_subpkg eunit_formatters $_eunit_formatters_ver
- _prepare_subpkg getopt $_getopt_ver
- _prepare_subpkg providers $_providers_ver
- _prepare_subpkg relx $_relx_ver
- _prepare_subpkg ssl_verify_fun $_ssl_verify_fun_ver
- _prepare_subpkg meck $_meck_ver
-
- ln -sf default "$builddir"/_build/bootstrap
-}
-
-build() {
- # DEBUG=1 gives us verbose build output
- # we use /tmp/rebar-build as home dir because rebar3 bootstrap downloads a package index and it cannot be disabled
-
- mkdir -p /tmp/rebar-build
- HOME=/tmp/rebar-build ./bootstrap
-
- # clean up
- #rm -rf /tmp/rebar-build
-}
-
-check() {
- HOME=/tmp/rebar-build ./rebar3 ct
-
- # cleanup
- rm -rf /tmp/rebar-build
-}
-
-package() {
- cd "$builddir"
- install -D -m0755 rebar3 "$pkgdir"/usr/bin/rebar3
-}
-
-sha512sums="749368c8c19641d0c1083f1750438cfc5f1c75e284bd74b4f8ae368103e79a376f4bd91e85db35e1619116cd2f3b1a8dc2d3d89db19da8f4440e0b58d3c0a37c rebar3-3.11.1.tar.gz
-7da99c76c5bb5b7cdc213784184c06d8be093a53c2d1da45d82677a3b18672c9368c4dac39797dee50c83cae7be4d06979d5ad2bee6b9d9d7f83fb56ebb8b032 bbmustache-1.6.1.tar
-478126f314065d6d91f6854b9565461ca0c3d31265b952bbe6eb3643e861ee1faeba388c2d356d3595381aa3a5d5871c7c98cb85d8e6ab614917eb5c8be9082a certifi-2.5.1.tar
-0afbe335c6170f1f4efa6fb22111d8698abc288b1cc125fb69653958df1dbdb1a936f927309b460dc6cfa1fc2b15c82838b8935d5fa8e28dab1c050295608698 cf-0.2.2.tar
-2036b947d33037afd2d043447bd533e207490c290ef1bd0115660c76824dbd95ce03c56bb4b89377a82bab25dab1bb19e28fc42d3f56064ea261a57b7f9f183e cth_readable-1.4.4.tar
-1f9e7617b88ec7cae6e83da1a60a2d22ce3325b6425cd284c3ec3dd0de49a26220b868ea60a937758dd65d7ea137819e314504a98ced99fc2617056ada4d2fa0 erlware_commons-1.3.1.tar
-e8692ff35f979dfaf99ccac58014429d300a71ff76f2ce945814a0d4d9431821f04f988dc0271271858a37e6903a73b4dd9ae3abf215333f3135fa883ec07022 eunit_formatters-0.5.0.tar
-859642dc26c42414474fa8af8a32fed827b0773ac6d6eb51ec19c291672408e71619ad2bb0c7f08d84ff591b33a655a7e0b6241b94372e9cc816a648ee6cdaf6 getopt-1.0.1.tar
-b1db18264c98717849ed521f8eb1ef0f112ea5e602bcd529fd97996120640c7567097174180673ba166d4c408496ce63c351ce70a3f385ed1ae7d1e444e2587a providers-1.8.1.tar
-2bcc9a8a12cc1fbca3c195cc61d60acda98b49df72a068dcc8bed3fa645ad76f3d008f31f914bdb5ec48fc372b6196abeadf8dddf188b5c91a314f1852aa9d27 relx-3.32.1.tar
-9beef3fb7b1aa2e40202d321442159a502a6efdcac3d15397c0dfffef633a1f5af8baa006eb4437d14620ffc2e23018111f1626d2f34a63e804cd8e11fe17f71 ssl_verify_fun-1.1.5.tar
-adcfd3fdf69d4926dc1d9c2f0b477c8977bddba8b8ffdbfedcf1b5dc3c1af47b39b1c6263c922a43efede90f145f009d71b27178597320522960c5ebbd84a15a meck-0.8.13.tar"
diff --git a/testing/recoll/APKBUILD b/testing/recoll/APKBUILD
index fbe4f0a07f7..da601241e63 100644
--- a/testing/recoll/APKBUILD
+++ b/testing/recoll/APKBUILD
@@ -1,44 +1,37 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=recoll
-pkgver=1.25.20
-pkgrel=0
+pkgver=1.37.5
+pkgrel=1
pkgdesc="Desktop full-text search tool"
-url="https://www.lesbonscomptes.com/recoll/"
-arch="all !armhf !mips !mips64" # Limited by qt5-qtwebkit-dev
+url="https://www.recoll.org/"
+arch="all"
license="GPL-2.0-or-later"
makedepends="
+ aspell-dev
file
libx11-dev
libxslt-dev
+ py3-setuptools
+ python3-dev
qt5-qtbase-dev
+ qt5-qttools-dev
xapian-core-dev
zlib-dev
- aspell-dev
- qt5-qtwebkit-dev
"
-subpackages="$pkgname-doc"
-source="http://www.lesbonscomptes.com/recoll/recoll-$pkgver.tar.gz
- xattrs.patch
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.recoll.org/recoll-$pkgver.tar.gz
+ no-glibc.patch
"
-prepare() {
- default_prepare
- for file_ext in h cpp; do
- sed -i 's/u_int64_t/uint64_t/g' utils/md5.$file_ext
- sed -i 's/u_int32_t/uint32_t/g' utils/md5.$file_ext
- sed -i 's/u_int8_t/uint8_t/g' utils/md5.$file_ext
- done
-}
-
build() {
- QMAKE=qmake-qt5 \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--disable-python-module \
- --disable-python-chm
+ --disable-python-chm \
+ --disable-webkit
make
}
@@ -50,5 +43,7 @@ check() {
make check
}
-sha512sums="f4f50b3bc91e2f3e24f671b50dec3ded7db8242989eeab459d04a4a8c390488ea84a15aabe8e6cd72f020fd425ed737588b27926f4fed1731c7228995f9b38be recoll-1.25.20.tar.gz
-ad482352fb92077284a87ebb9bc2cd0c9aa093358d43c4d768cb6cd9a2c610e215263d555bd3d23aadbf2e1025e3b886723e7b50edfab6974328931b3b194188 xattrs.patch"
+sha512sums="
+594a81de809a2f2f08986ef1220ea2d7df8292923f55cf41c5813eb50be9ca63aa9f77c38bd27466486e72b030f2df28a093bca32dae1682d514acbb11a76382 recoll-1.37.5.tar.gz
+8617a8b85404ad3e025c6e28f6bec91d455a0cf6744783dd9faa443fe45ee92deb99a9e2f114ae5e639c88c0cf83d93604d1558c9b5e507e802f6250be1b073e no-glibc.patch
+"
diff --git a/testing/recoll/no-glibc.patch b/testing/recoll/no-glibc.patch
new file mode 100644
index 00000000000..a5711750051
--- /dev/null
+++ b/testing/recoll/no-glibc.patch
@@ -0,0 +1,14 @@
+diff --git a/common/conf_post.h b/common/conf_post.h
+index f79070d..b9a48a5 100644
+--- a/common/conf_post.h
++++ b/common/conf_post.h
+@@ -76,9 +76,6 @@ typedef int ssize_t;
+ #if defined(REAL_GCC) && defined(HAVE_FEATURES_H)
+ // Older gcc versions pretended to supply std::regex, but the resulting programs mostly crashed.
+ #include <features.h>
+-#if ! __GNUC_PREREQ(6,0)
+-#define NO_STD_REGEX 1
+-#endif
+ #endif
+
+ #endif /* INCLUDED */
diff --git a/testing/recoll/xattrs.patch b/testing/recoll/xattrs.patch
deleted file mode 100644
index 7e1bf4e547b..00000000000
--- a/testing/recoll/xattrs.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./utils/pxattr.cpp
-+++ utils/pxattr.cpp.orig
-@@ -44,7 +44,7 @@
- // just let the methods return errors (like they would on a non-xattr
- // fs on e.g. linux)
-
--#if defined(__DragonFly__) || defined(__OpenBSD__)
-+#if defined(__DragonFly__) || defined(__OpenBSD__) || !defined(__GLIBC__)
- #define HAS_NO_XATTR
- #endif
-
diff --git a/testing/recyclarr-cli/0001-disable-gitversion.patch b/testing/recyclarr-cli/0001-disable-gitversion.patch
new file mode 100644
index 00000000000..851b6169df2
--- /dev/null
+++ b/testing/recyclarr-cli/0001-disable-gitversion.patch
@@ -0,0 +1,32 @@
+From: Fabricio Silva <hi@fabricio.dev>
+Date: Mon, 7 Aug 2023 09:29:47 +0100
+Subject: [PATCH] Disable GitVersion
+
+GitVersion is a dependency that needs git history to return the current version.
+APKBUILD does not provide git history. Disable it and replace version in prepare() step.
+
+---
+ src/Recyclarr.Cli/Program.cs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Recyclarr.Cli/Program.cs b/src/Recyclarr.Cli/Program.cs
+index 6befa96..d98d643 100644
+--- a/src/Recyclarr.Cli/Program.cs
++++ b/src/Recyclarr.Cli/Program.cs
+@@ -38,6 +38,7 @@ internal static class Program
+ config.Settings.StrictParsing = true;
+
+ config.SetApplicationName("recyclarr");
++ config.SetApplicationVersion("{Version}");
+
+ var interceptor = new CliInterceptor(logLevelSwitch, appDataPathProvider);
+ interceptor.OnIntercepted.Subscribe(_ => OnAppInitialized());
+@@ -78,7 +79,7 @@ internal static class Program
+ }
+
+ _log = _scope.Resolve<ILogger>();
+- _log.Debug("Recyclarr Version: {Version}", GitVersionInformation.InformationalVersion);
++ _log.Debug("Recyclarr Version: {Version}");
+
+ _tasks = _scope.Resolve<IOrderedEnumerable<IBaseCommandSetupTask>>().ToArray();
+ _tasks.ForEach(x => x.OnStart());
diff --git a/testing/recyclarr-cli/0002-build-dotnet8.patch b/testing/recyclarr-cli/0002-build-dotnet8.patch
new file mode 100644
index 00000000000..f71e1afa5c7
--- /dev/null
+++ b/testing/recyclarr-cli/0002-build-dotnet8.patch
@@ -0,0 +1,23 @@
+From c1b2ed4021d22eb6245e25bdd2647ef768a34507 Mon Sep 17 00:00:00 2001
+From: Fabricio Silva <hi@fabricio.dev>
+Date: Wed, 14 Feb 2024 12:06:58 +0000
+Subject: [PATCH] build with dotnet8.0
+
+Build for dotnet8 is not merged to a stable release. For the next release we can probably remove this patch.
+
+---
+ src/Directory.Build.props | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Directory.Build.props b/src/Directory.Build.props
+index 8d10c9f9..333301e5 100644
+--- a/src/Directory.Build.props
++++ b/src/Directory.Build.props
+@@ -1,6 +1,6 @@
+ <Project>
+ <PropertyGroup>
+- <TargetFramework>net7.0</TargetFramework>
++ <TargetFramework>net8.0</TargetFramework>
+ <Nullable>enable</Nullable>
+ <WarningLevel>9999</WarningLevel>
+ <ImplicitUsings>enable</ImplicitUsings>
diff --git a/testing/recyclarr-cli/APKBUILD b/testing/recyclarr-cli/APKBUILD
new file mode 100644
index 00000000000..497a4dae34f
--- /dev/null
+++ b/testing/recyclarr-cli/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=recyclarr-cli
+pkgver=6.0.2
+pkgrel=1
+pkgdesc="Automatically sync TRaSH guides to your Sonarr and Radarr instances"
+url="https://github.com/recyclarr/recyclarr"
+arch="x86_64 aarch64 armv7"
+license="MIT"
+options="net !check !strip" # strip breaks the package
+depends="
+ dotnet8-runtime
+ git
+ "
+makedepends="dotnet8-sdk"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/recyclarr/recyclarr/archive/refs/tags/v$pkgver.tar.gz
+ 0001-disable-gitversion.patch
+ 0002-build-dotnet8.patch
+ "
+builddir="$srcdir/recyclarr-$pkgver"
+
+# map arch to dotnet
+case $CARCH in
+ x86_64) _dotnet_arch="x64" ;;
+ aarch64) _dotnet_arch="arm64" ;;
+ armv7) _dotnet_arch="arm" ;;
+ *) _dotnet_arch="$CARCH" ;;
+esac
+
+prepare() {
+ default_prepare
+
+ # apply patch version
+ sed -i "s/{Version}/$pkgver-r$pkgrel.alpine/" src/Recyclarr.Cli/Program.cs
+}
+
+build() {
+ # build the package and generate artifact
+ dotnet publish src/Recyclarr.Cli \
+ -p:RuntimeIdentifier="linux-musl-$_dotnet_arch" \
+ -p:Configuration=Release \
+ -p:SelfContained=false \
+ -p:PublishSingleFile=true \
+ -p:DisableGitVersionTask=true \
+ --output publish
+}
+
+package() {
+ install -Dm755 publish/recyclarr -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+70790aee093a2028d817223340a7ba98fb661a57bedbff6735a0d915108a085a80050996bf699dfaa81c34ed85511100eeaf31d90ecec8d798a619b1c47012d6 recyclarr-cli-6.0.2.tar.gz
+68bbe5a566fabc49f3382c76550f1462f318ddcbfbad33300551b651ba36e853ce4fed2a39d9dae8e9de1309b2dd5cb73df6f78b9dff1d2a9983b8c0cddda357 0001-disable-gitversion.patch
+40d47902cf83f302ed437049154c74b8df7db37009cab0bfdc8b9a1244e0ad20ce5d868680406a487733f9d4a80587454b215196f8830d69fe9fe0b0664f469e 0002-build-dotnet8.patch
+"
diff --git a/testing/redict/APKBUILD b/testing/redict/APKBUILD
new file mode 100644
index 00000000000..25491bdc246
--- /dev/null
+++ b/testing/redict/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: V.Krishn <vkrishn4@gmail.com>
+# Contributor: Eivind Uggedal <eu@eju.no>
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: fossdd <fossdd@pwned.life>
+pkgname=redict
+pkgver=7.3.0
+pkgrel=1
+pkgdesc="A distributed key/value database"
+url="https://redict.io/"
+arch="all"
+license="LGPL-3.0-only"
+pkgusers="redict"
+pkggroups="redict"
+makedepends="linux-headers openssl-dev>3"
+checkdepends="tcl procps"
+install="$pkgname.pre-install $pkgname.post-install"
+subpackages="$pkgname-openrc"
+builddir="$srcdir/$pkgname"
+source="redict-$pkgver.tar.gz::https://codeberg.org/redict/redict/archive/$pkgver.tar.gz
+ redict.conf.patch
+ sentinel.conf.patch
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname-sentinel.initd
+ $pkgname.logrotate
+ "
+
+build() {
+ export CFLAGS="$CFLAGS -DUSE_MALLOC_USABLE_SIZE -O2 -flto=auto"
+ make USE_JEMALLOC=no \
+ MALLOC=libc \
+ BUILD_TLS=yes \
+ all
+}
+
+check() {
+ make test
+}
+
+package() {
+ make install PREFIX="$pkgdir/usr" INSTALL_BIN="$pkgdir/usr/bin"
+
+ cd "$pkgdir"
+
+ install -D -m 644 "$builddir"/redict.conf etc/redict.conf
+
+ # This file must be writable for redict, otherwise Sentinel fails to start.
+ install -D -m 644 -o redict -g redict "$builddir"/sentinel.conf etc/sentinel.conf
+
+ install -D -m 755 "$srcdir"/redict.initd etc/init.d/redict
+ install -D -m 755 "$srcdir"/redict-sentinel.initd etc/init.d/redict-sentinel
+ install -D -m 644 "$srcdir"/redict.confd etc/conf.d/redict
+ install -D -m 644 "$srcdir"/redict.logrotate etc/logrotate.d/redict
+
+ install -d -o redict -g redict \
+ var/lib/redict \
+ var/log/redict
+}
+
+sha512sums="
+d33f4dfaf728f5a22abe7a6223f3192c39dc41a32e7bcb0f453caaa859f35b512534979c26ced9f4458c19611debd282f37955e930151c0f827035f349647226 redict-7.3.0.tar.gz
+96740880cd0caac2cecb11066a555055e7c3f10feb312b2d4c7a206fb92c1003415cf7ab81bec4ac96f7631724d9097b1ca130621c8b564a7987dcd75d2f6e25 redict.conf.patch
+a3cec12566097fe78a31d09db77ca956ba52ee1fbb8ac4f5ffc49d0299e29f94ef55830f7760324a875bd47391eee116e0c4efb4bef00d6045bf98b81f392dfc sentinel.conf.patch
+555edff7dd7768c9579a101df86e91cc14cb9941365f051e0e993f1c341cd2b46fcfab6f4a6fd4c1d589242363e323734b453652d687d2d46cb651d84d42caee redict.initd
+4a0b04388115b5af6d4173aca66b081740432c19e1085c0bd5251fbbfb190c06aaa0540575e160c1e907cf504e33b3dcb67eb916dda3347cf394123d64adffb2 redict.confd
+7cc571f9f977a167d61bd952cf74d043ef17e5211113928c77a2f088df1cc8f31dd19e7de79e2795479f7afccd4dd32b66e61b67c99a21ffa8d9560811185728 redict-sentinel.initd
+68e0b0c4c8def5d42149b895ac681d91b8c691a5fd90bce64e6bf6c7780f33c6ac02a923642ebdc85f6bb41d8039cc38b7d3be49e5e9f86f097e3d1f6d41ecd4 redict.logrotate
+"
diff --git a/testing/redict/redict-sentinel.initd b/testing/redict/redict-sentinel.initd
new file mode 100644
index 00000000000..13018fea835
--- /dev/null
+++ b/testing/redict/redict-sentinel.initd
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+
+name="redict Sentinel"
+
+: ${cfgfile:="/etc/sentinel.conf"}
+: ${command_user:="redict:redict"}
+: ${retry:=30}
+
+command="/usr/bin/redict-sentinel"
+command_args="$cfgfile --daemonize no $command_args"
+command_background="yes"
+
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
+depend() {
+ use net localmount logger
+ after keepalived firewall redict
+}
+
+start_pre() {
+ # Sets start-start-daemon's --chdir.
+ directory=$(config_get 'dir' '/var/lib/redict')
+}
+
+config_get() {
+ local key="$1"
+ local default="${2:-}"
+
+ local value=$(awk "\$1 == \"$key\" { print \$2 }" "$cfgfile")
+ printf '%s\n' "${value:-$default}"
+}
diff --git a/testing/redict/redict.conf.patch b/testing/redict/redict.conf.patch
new file mode 100644
index 00000000000..5eea659ef17
--- /dev/null
+++ b/testing/redict/redict.conf.patch
@@ -0,0 +1,71 @@
+We force "daemonize no" in init script, so daemonize and pidfile does not
+have any effect in redict.conf. It's init/rc system's job to daemonize
+programs and handle pidfiles, if it needs it!
+
+Applications often communicate with redict via unix socket, so it's
+convenient to have it enabled by default.
+
+--- a/redict.conf
++++ b/redict.conf
+@@ -112,8 +112,8 @@
+ # incoming connections. There is no default, so redict will not listen
+ # on a unix socket when not specified.
+ #
+-# unixsocket /run/redict.sock
+-# unixsocketperm 700
++unixsocket /run/redict/redict.sock
++unixsocketperm 770
+
+ # Close the connection after a client is idle for N seconds (0 to disable)
+ timeout 0
+@@ -241,11 +241,6 @@
+
+ ################################# GENERAL #####################################
+
+-# By default redict does not run as a daemon. Use 'yes' if you need it.
+-# Note that redict will write a pid file in /var/run/redict.pid when daemonized.
+-# When redict is supervised by upstart or systemd, this parameter has no impact.
+-daemonize no
+-
+ # If you run redict from upstart or systemd, redict can interact with your
+ # supervision tree. Options:
+ # supervised no - no supervision interaction
+@@ -264,20 +259,6 @@
+ #
+ # supervised auto
+
+-# If a pid file is specified, redict writes it where specified at startup
+-# and removes it at exit.
+-#
+-# When the server runs non daemonized, no pid file is created if none is
+-# specified in the configuration. When the server is daemonized, the pid file
+-# is used even if not specified, defaulting to "/var/run/redict.pid".
+-#
+-# Creating a pid file is best effort: if redict is not able to create it
+-# nothing bad happens, the server will start and run normally.
+-#
+-# Note that on modern Linux systems "/run/redict.pid" is more conforming
+-# and should be used instead.
+-pidfile /var/run/redict_6379.pid
+-
+ # Specify the server verbosity level.
+ # This can be one of:
+ # debug (a lot of information, useful for development/testing)
+@@ -289,7 +270,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # redict to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/redict/redict.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+@@ -441,7 +422,7 @@
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/redict
+
+ ################################# REPLICATION #################################
+
diff --git a/testing/redict/redict.confd b/testing/redict/redict.confd
new file mode 100644
index 00000000000..ba1e9948fbe
--- /dev/null
+++ b/testing/redict/redict.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/redict
+
+# User (and group) to run redict as.
+#command_user="redict:redict"
+
+# redict configuration file.
+#cfgfile="/etc/redict.conf"
diff --git a/testing/redict/redict.initd b/testing/redict/redict.initd
new file mode 100644
index 00000000000..6abbd10640e
--- /dev/null
+++ b/testing/redict/redict.initd
@@ -0,0 +1,41 @@
+#!/sbin/openrc-run
+
+name="redict server"
+
+: ${cfgfile:=${REDICT_CONF:-"/etc/redict.conf"}}
+: ${command_user:="${REDICT_USER:-redict}:${REDICT_GROUP:-redict}"}
+: ${retry:=30}
+
+command="/usr/bin/redict-server"
+command_args="$cfgfile --daemonize no $command_args"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
+depend() {
+ use net localmount logger
+ after keepalived firewall
+}
+
+start_pre() {
+ # Sets start-start-daemon's --chdir.
+ directory=$(config_get 'dir' '/var/lib/redict')
+ checkpath -d -o "$command_user" "$directory"
+
+ local logfile=$(config_get 'logfile')
+ [ "$logfile" ] && checkpath -d -o "$command_user" "${logfile%/*}"
+
+ local unixsocket=$(config_get 'unixsocket')
+ [ "$unixsocket" ] && checkpath -d -o "$command_user" "${unixsocket%/*}"
+
+ return 0
+}
+
+config_get() {
+ local key="$1"
+ local default="${2:-}"
+
+ local value=$(awk "\$1 == \"$key\" { print \$2 }" "$cfgfile")
+ printf '%s\n' "${value:-$default}"
+}
diff --git a/testing/redict/redict.logrotate b/testing/redict/redict.logrotate
new file mode 100644
index 00000000000..64d894b3eef
--- /dev/null
+++ b/testing/redict/redict.logrotate
@@ -0,0 +1,4 @@
+/var/log/redict/*.log {
+ notifempty
+ missingok
+}
diff --git a/testing/redict/redict.post-install b/testing/redict/redict.post-install
new file mode 100644
index 00000000000..1fe8b18cbdb
--- /dev/null
+++ b/testing/redict/redict.post-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Create directory for the socket if OpenRC is not present (e.g. in container).
+# It's conditioned using post-install script specifically to avoid easily
+# overlookable mistakes in the init script (service working until the
+# first restart).
+if ! [ -e /sbin/openrc ]; then
+ install -d -m 755 -o redict -g redict /run/redict
+fi
+
+exit 0
diff --git a/testing/redict/redict.pre-install b/testing/redict/redict.pre-install
new file mode 100644
index 00000000000..2f47a36e1c8
--- /dev/null
+++ b/testing/redict/redict.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S redict 2>/dev/null
+adduser -S -D -H -h /var/lib/redict -s /sbin/nologin -G redict -g redict redict 2>/dev/null
+
+exit 0
diff --git a/testing/redict/sentinel.conf.patch b/testing/redict/sentinel.conf.patch
new file mode 100644
index 00000000000..4bf5cfbb5eb
--- /dev/null
+++ b/testing/redict/sentinel.conf.patch
@@ -0,0 +1,13 @@
+Upstream: No
+Reason: Hardcode log file path
+--- a/sentinel.conf
++++ b/sentinel.conf
+@@ -33,7 +33,7 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # Sentinel to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++logfile /var/log/redict/sentinel.log
+
+ # sentinel announce-ip <ip>
+ # sentinel announce-port <port>
diff --git a/testing/refind/01-missing-always-inline.patch b/testing/refind/01-missing-always-inline.patch
new file mode 100644
index 00000000000..ccdb03dd053
--- /dev/null
+++ b/testing/refind/01-missing-always-inline.patch
@@ -0,0 +1,17 @@
+Author: Patrycja Rosa <alpine@ptrcnull.me>
+
+ Add missing include for `_always_inline`
+ This allows for building the Btrfs driver
+
+diff --git a/filesystems/zstd/zstd_internal.h b/filesystems/zstd/zstd_internal.h
+index f90ac42..013e6ff 100644
+--- a/filesystems/zstd/zstd_internal.h
++++ b/filesystems/zstd/zstd_internal.h
+@@ -26,6 +26,7 @@
+ /*-*************************************
+ * Dependencies
+ ***************************************/
++#include <linux/stddef.h>
+ #include "error_private.h"
+ #include "mem.h"
+ #include "xxhash.h"
diff --git a/testing/refind/APKBUILD b/testing/refind/APKBUILD
index bcbd8af2988..166cb478c24 100644
--- a/testing/refind/APKBUILD
+++ b/testing/refind/APKBUILD
@@ -1,24 +1,38 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
# Maintainer: Eric Molitor <eric@molitor.org>
pkgname=refind
-pkgver=0.12.0
-pkgrel=0
+pkgver=0.14.0.2
+pkgrel=2
pkgdesc="rEFInd EFI Boot Manager"
-url="http://www.rodsbooks.com/refind"
+url="https://www.rodsbooks.com/refind"
arch="x86_64"
options="!check" # No test suite.
license="GPL-3.0-only"
-depends="efibootmgr"
-makedepends="gnu-efi-dev bash"
+depends="bash efibootmgr lsblk"
+makedepends="gnu-efi-dev linux-headers"
subpackages="$pkgname-doc"
source="https://sourceforge.net/projects/refind/files/$pkgver/refind-src-$pkgver.tar.gz
- 10-refind-disable-fortify.patch"
+ 01-missing-always-inline.patch
+ 10-refind-disable-fortify.patch
+ "
+
+prepare() {
+ default_prepare
+
+ # Taken from Arch Linux
+ # hardcode RefindDir, so that refind-install can find refind_x64.efi
+ sed -e 's|RefindDir=\"\$ThisDir/refind\"|RefindDir="/usr/share/refind/"|g' \
+ -i refind-install
+}
build() {
- make gnuefi
+ make -j 1 all_gnuefi
}
package() {
install -Dm0755 refind/*.efi -t "$pkgdir"/usr/share/refind
+ install -Dm0755 drivers_*/*.efi -t "$pkgdir"/usr/share/refind/drivers_x86_64
+ install -Dm0755 gptsync/*.efi -t "$pkgdir"/usr/share/refind/tools_x86_64
install -Dm0755 refind.conf-sample -t "$pkgdir"/usr/share/refind
install -Dm0644 docs/man/*.8 -t "$pkgdir"/usr/share/man/man8
@@ -27,5 +41,8 @@ package() {
cp -r icons $pkgdir/usr/share/refind
}
-sha512sums="3ade9642d7acf31097daa5308acb96a9fa3371314073b5a09601a886fc30444752efa08ed9fb35e421efb0b4eb9efbccd7b5c9bd6b3b9ed4af74c58f22a74729 refind-src-0.12.0.tar.gz
-ccb61e6e5ae0d762932941d7edd5b9a3506db42cfce70ebc57468837799e60fee73b3c568ae603a6ebb677ae702fb5beb5d13b16daf976b954b35047b6f4ecc0 10-refind-disable-fortify.patch"
+sha512sums="
+41c120c1afec37c508aa5c0ec09a6563c3047ef84932308c91701795b950431dfad17d25cf664039b490a302d475add98441b75f90ff71cadce41febedc68a9e refind-src-0.14.0.2.tar.gz
+cb466feb8b8b1a3c039224866df7e8f4c575cf2c81a1520449e38a6fc5f5b9cfd924944f97780c68addaab7b943dced4ed9c5e668d91e85d6ea49bcd9359e19c 01-missing-always-inline.patch
+ccb61e6e5ae0d762932941d7edd5b9a3506db42cfce70ebc57468837799e60fee73b3c568ae603a6ebb677ae702fb5beb5d13b16daf976b954b35047b6f4ecc0 10-refind-disable-fortify.patch
+"
diff --git a/testing/refpolicy/APKBUILD b/testing/refpolicy/APKBUILD
deleted file mode 100644
index d52b9c902a3..00000000000
--- a/testing/refpolicy/APKBUILD
+++ /dev/null
@@ -1,62 +0,0 @@
-# Maintainer: Tycho Andersen <tycho@docker.com>
-pkgname=refpolicy
-pkgver=20170204
-pkgrel=0
-pkgdesc="SELinux policy reference"
-url="https://github.com/TresysTechnology/refpolicy/wiki"
-arch=""
-license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends="$depends_dev checkpolicy python3 gawk"
-install=""
-subpackages="$pkgname-doc"
-source="https://raw.githubusercontent.com/wiki/TresysTechnology/refpolicy/files/refpolicy-2.$pkgver.tar.bz2
- Makefile.devel"
-builddir="$srcdir/refpolicy"
-
-# refpolicy config
-monolithic=n
-distro=gentoo
-# unknown perms here means what to do with perms that are unknown to the
-# current userspace, because the kernel version is newer. By default, we deny.
-unknown_perms=deny
-
-# These are somewhat related to what is in the CentOS spec file, although they
-# are slightly differnet in what they install.
-#
-# https://selinuxproject.org/page/NB_RefPolicy#Reference_Policy_Build_Options_-_build.conf
-# are the build options: M{L,C}S_CATS are the number of categories for m{l,c}s policies.
-make_cmds() {
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 bare || return 1
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 conf || return 1
-}
-
-install_cmds() {
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 SEMOD_EXP="/usr/bin/semodule_expand -a" base.pp
- make validate UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 SEMOD_EXP="/usr/bin/semodule_expand -a" modules
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 DESTDIR="$pkgdir" install
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 DESTDIR="$pkgdir" install-appconfig
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 DESTDIR="$pkgdir" install-docs
- make UNK_PERMS=$3 NAME=$1 TYPE=$2 DISTRO=$distro UBAC=n DIRECT_INITRC=y MONOLITHIC=$monolithic MLS_CATS=1024 MCS_CATS=1024 DESTDIR="$pkgdir" install-headers
-}
-
-build() {
- cd "$builddir"
- make_cmds targeted mcs $unknown_perms || return 1
-}
-
-package() {
- cd "$builddir"
- install_cmds targeted mcs $unknown_perms || return 1
- mkdir -p $pkgdir/usr/share/selinux/devel || return 1
- cp -r "$pkgdir/usr/share/selinux/targeted/include" "$pkgdir/usr/share/selinux/devel/include"
- cp $srcdir/Makefile.devel "$pkgdir/usr/share/selinux/devel/Makefile" || return 1
- install -m 644 doc/example.* "$pkgdir/usr/share/selinux/devel" || return 1
- install -m 644 doc/policy.* "$pkgdir/usr/share/selinux/devel" || return 1
- # TODO: libselinux needs to build the python bindings for this to work
- # sepolicy manpage -a -p "$pkgdir/usr/share/man/man8/" -w -r "$pkgdir" || return 1
-}
-
-sha512sums="30deabb02a5bde51c463e3e89988d850cff51596c2e72733a064245dec152ea46317eea79550dbe82a7a0d327ec0bcfbd9474ff8a902507392df0da00df6397f refpolicy-2.20170204.tar.bz2
-01bd5f58e05feba2f318f6b80fb4c6cbe405691f947fee48566ad75c935d6e824ccfda5de88c5dad74b531ed28c18615d8ef4e2c2371d71c776b78767eb33740 Makefile.devel"
diff --git a/testing/refpolicy/Makefile.devel b/testing/refpolicy/Makefile.devel
deleted file mode 100644
index b1c6bfe71f4..00000000000
--- a/testing/refpolicy/Makefile.devel
+++ /dev/null
@@ -1,22 +0,0 @@
-# installation paths
-SHAREDIR := /usr/share/selinux
-
-AWK ?= gawk
-NAME ?= $(strip $(shell $(AWK) -F= '/^SELINUXTYPE/{ print $$2 }' /etc/selinux/config))
-
-ifeq ($(MLSENABLED),)
- MLSENABLED := 1
-endif
-
-ifeq ($(MLSENABLED),1)
- NTYPE = mcs
-endif
-
-ifeq ($(NAME),mls)
- NTYPE = mls
-endif
-
-TYPE ?= $(NTYPE)
-
-HEADERDIR := $(SHAREDIR)/devel/include
-include $(HEADERDIR)/Makefile
diff --git a/testing/reg/APKBUILD b/testing/reg/APKBUILD
new file mode 100644
index 00000000000..deb49f726c7
--- /dev/null
+++ b/testing/reg/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=reg
+pkgver=0.16.1
+pkgrel=20
+pkgdesc="Docker registry v2 command line client and repo listing generator with security checks"
+url="https://github.com/genuinetools/reg"
+license="MIT"
+arch="all !riscv64"
+makedepends="go"
+source="https://github.com/genuinetools/reg/archive/v$pkgver/reg-$pkgver.tar.gz"
+options="chmod-clean"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -trimpath \
+ -ldflags "
+ -X github.com/genuinetools/reg/version.GITCOMMIT=v$pkgver
+ -X github.com/genuinetools/reg/version.VERSION=$pkgver-r$pkgrel
+ " \
+ -o reg .
+}
+
+check() {
+ ## "make test" - modified (exclude broken tests)
+ ## https://github.com/genuinetools/reg/issues/187
+ go test -v -tags "cgo" \
+ $(go list ./... | grep -v vendor | grep -v 'github.com/genuinetools/reg$')
+}
+
+package() {
+ install -Dm755 reg "$pkgdir"/usr/bin/reg
+}
+
+sha512sums="2be68b405bb384d8eb3ae17a9b1c802a7f3212865ce61cf72f01794b9456787b1ef0eb62a538735d119153b0f472e741a8bbe99f1ce70d3b16ce1b8ba90eb4b8 reg-0.16.1.tar.gz"
diff --git a/testing/regal/APKBUILD b/testing/regal/APKBUILD
new file mode 100644
index 00000000000..f4782d72b9c
--- /dev/null
+++ b/testing/regal/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=regal
+pkgver=0.19.0
+pkgrel=1
+pkgdesc="Linter for Rego files"
+url="https://docs.styra.com/regal"
+# riscv64: TestLanguageServerMultipleFiles test times out
+arch="all !riscv64"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/StyraInc/regal/archive/refs/tags/v$pkgver.tar.gz"
+options="net" # download Go modules
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local _goldflags="
+ -X github.com/styrainc/regal/pkg/version.Version=v$pkgver
+ -X github.com/styrainc/regal/pkg/version.Commit=AlpineLinux
+ -X github.com/styrainc/regal/pkg/version.Timestamp=$(date -u "+%Y-%m-%dT%H:%M:%S%z" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X github.com/styrainc/regal/pkg/version.Hostname=alpinelinux.org
+ "
+
+ go build -v -ldflags "$_goldflags" .
+
+ for shell in bash fish zsh; do
+ ./regal completion $shell > regal.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 regal -t "$pkgdir"/usr/bin/
+
+ install -Dm644 regal.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/regal
+ install -Dm644 regal.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/regal.fish
+ install -Dm644 regal.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_regal
+}
+
+sha512sums="
+702a7f46708e3708f8fbc9529282f19eb4dfb2f14cc5425da273436da4abb1caac071e041b16832b1b1b670a53687cd80280cf8445a1952c394009b43e6b065b regal-0.19.0.tar.gz
+"
diff --git a/testing/release-plz/APKBUILD b/testing/release-plz/APKBUILD
new file mode 100644
index 00000000000..cc3c51e9969
--- /dev/null
+++ b/testing/release-plz/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=release-plz
+pkgver=0.3.61
+pkgrel=0
+pkgdesc="Release Rust packages without using the command line"
+url="https://github.com/MarcoIeni/release-plz"
+license="MIT OR Apache-2.0"
+arch="all"
+makedepends="
+ cargo
+ cargo-auditable
+ libgit2-dev
+ openssl-dev
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/MarcoIeni/release-plz/archive/release-plz-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ cargo fetch --locked
+}
+
+check() {
+ RUST_MIN_STACK=8388608 cargo test --frozen --no-default-features -- \
+ --skip "next_ver" \
+ --skip "input_generates_correct_release_request"
+}
+
+build() {
+ OPENSSL_NO_VENDOR=1 cargo auditable build -p "$pkgname" --release --frozen
+ mkdir -p completions/
+ local compgen="target/release/$pkgname generate-completions"
+ $compgen bash >"completions/$pkgname"
+ $compgen fish >"completions/$pkgname.fish"
+ $compgen zsh >"completions/_$pkgname"
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE-MIT -t "$pkgdir/usr/share/licenses/$pkgname"
+ install -Dm 644 "completions/$pkgname" -t "$pkgdir/usr/share/bash-completion/completions/"
+ install -Dm 644 "completions/$pkgname.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d/"
+ install -Dm 644 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions/"
+}
+
+sha512sums="
+30cf94098579088028ed8e237ef505499bda78e0dfa0537fb0894bb5e241ded3abcb1c6b08f97957b3780ce616d4ccb74e67774fdbe89ca64e1da082206604ca release-plz-v0.3.61.tar.gz
+"
diff --git a/testing/remake/APKBUILD b/testing/remake/APKBUILD
new file mode 100644
index 00000000000..a5f3b0e9b14
--- /dev/null
+++ b/testing/remake/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=remake
+pkgver=1.5
+pkgrel=1
+pkgdesc="a utility for managing collections of software build artifacts"
+url="https://github.com/rocky/remake"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="readline-dev"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-make:_make"
+source="https://sourceforge.net/projects/bashdb/files/remake/4.3%2Bdbg-$pkgver/remake-4.3%2Bdbg-$pkgver.tar.gz"
+builddir="$srcdir/remake-4.3+dbg-$pkgver"
+
+build() {
+ CFLAGS="$CFLAGS -fcommon" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-nls
+ make
+}
+
+check() {
+ [ "$CBUILD" != "$CHOST" ] || (ulimit -n 64 && PERL5LIB=. make check)
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_make() {
+ pkgdesc="$pkgdesc (make symlink)"
+ provides="make=4.3"
+
+ mkdir -p "$subpkgdir"/usr/bin
+ ln -sf remake "$subpkgdir"/usr/bin/make
+}
+
+sha512sums="90aa9674ed5d88b72fda5a99a103d0b1a643d10b18c1de1186478b026f6b4da73628bff75a180df880157b5cbfff1bfd782f4ee81880e0635d79113fcc0f7497 remake-4.3%2Bdbg-1.5.tar.gz"
diff --git a/testing/remind-caldav/APKBUILD b/testing/remind-caldav/APKBUILD
new file mode 100644
index 00000000000..9ca3a478bbb
--- /dev/null
+++ b/testing/remind-caldav/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=remind-caldav
+pkgver=0.8.0
+pkgrel=3
+pkgdesc="caldav client to sync with remind"
+url="https://github.com/jspricke/remind-caldav"
+arch="noarch"
+license="GPL-3.0-only"
+depends="python3 py3-remind py3-caldav py3-dateutil py3-vobject"
+makedepends="py3-setuptools"
+options="!check" # no tests
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jspricke/remind-caldav/archive/v$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+af1b57d32f58e2de20f0568879c0bdbd2fe9817a4692e0930feaa38a7c258360280fa871c271352c877b934ebf57b3c25a7bb06261024b9d561108daa47acdb5 remind-caldav-0.8.0.tar.gz
+"
diff --git a/testing/repgrep/APKBUILD b/testing/repgrep/APKBUILD
new file mode 100644
index 00000000000..1b7e2908d17
--- /dev/null
+++ b/testing/repgrep/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=repgrep
+_pkgname=rgr
+pkgver=0.15.0
+pkgrel=0
+pkgdesc="Interactive command line replacer for ripgrep"
+url="https://github.com/acheronfail/repgrep"
+arch="all"
+license="MIT OR Apache-2.0 OR Unlicense"
+depends="ripgrep"
+makedepends="
+ cargo
+ cargo-auditable
+ asciidoctor
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/acheronfail/repgrep/archive/$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$_pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE-MIT -t "$pkgdir/usr/share/licenses/$pkgname"
+ out_dir=$(find target -name repgrep-stamp -print0 | xargs -0 ls -t | head -n1 | xargs dirname)
+ install -Dm 644 "$out_dir/$_pkgname.1" -t "$pkgdir/usr/share/man/man1"
+
+ echo 'complete -F _rg rgr' | install -Dm 644 /dev/stdin \
+ "$pkgdir/usr/share/bash-completion/completions/$_pkgname"
+ echo 'compdef $_comps[rg] rgr' | install -Dm 644 /dev/stdin \
+ "$pkgdir/usr/share/zsh/site-functions/_$_pkgname"
+ rg --generate complete-fish | sed -e 's/-c rg/-c rgr/' \
+ | install -Dm 644 /dev/stdin \
+ "$pkgdir/usr/share/fish/vendor_completions.d/$_pkgname.fish"
+}
+
+sha512sums="
+dbd56387ee9c1269c000c4992449b71b29942b987ce7f032ee8b556bf2e7f3f81da7a081aa610075c366f5b8447bab39312ebf1375100348c9532ddb75a6b90a repgrep-0.15.0.tar.gz
+"
diff --git a/testing/repo/APKBUILD b/testing/repo/APKBUILD
index 384f1a89c0f..d824b313fc4 100644
--- a/testing/repo/APKBUILD
+++ b/testing/repo/APKBUILD
@@ -1,25 +1,30 @@
# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: Antoine Fontaine <antoine.fontaine@epfl.ch>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=repo
-pkgver=2.5
+pkgver=2.42
pkgrel=0
pkgdesc="repository management tool built on top of git"
url="https://gerrit.googlesource.com/git-repo"
arch="noarch"
license="Apache-2.0"
options="!check" # no tests upstream
-depends="python3 py3-kerberos gnupg git"
+depends="python3 git"
makedepends="py3-setuptools"
-source="https://storage.googleapis.com/git-repo-downloads/repo-$pkgver"
-builddir="$srcdir"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/GerritCodeReview/git-repo/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/git-repo-$pkgver"
prepare() {
default_prepare
- sed -i 's|^#!/usr/bin/env python|#!/usr/bin/python3|' repo-$pkgver
+
+ sed -i 's|^#!/usr/bin/env python|#!/usr/bin/python3|' repo
}
package() {
- install -Dm 0755 repo-$pkgver "$pkgdir"/usr/bin/repo
+ install -Dm755 repo -t "$pkgdir"/usr/bin
+ install -Dm644 man/* -t "$pkgdir"/usr/share/man/man1
}
-sha512sums="36e515241fd9705c63beaf662309dc2ab6406552ba845fe020c878ac82e7eb7e1cd73924a076cf5fe4800ea70919bb5ad5d2d43566d5b0a559f81a45f9a58fe8 repo-2.5"
+sha512sums="
+12a766c42b94af0daed4db224476ab32b1b9ded17c9e961bcf15e45d5cf74b009769527cc433fde6a8f841c881eb8fea0e84b72c10322f3fba216f1eedf2813b repo-2.42.tar.gz
+"
diff --git a/testing/repowerd/0001-dbus-Remove-at_console-filtering.patch b/testing/repowerd/0001-dbus-Remove-at_console-filtering.patch
new file mode 100644
index 00000000000..d082f40e209
--- /dev/null
+++ b/testing/repowerd/0001-dbus-Remove-at_console-filtering.patch
@@ -0,0 +1,30 @@
+From 15ee1c2e59dc8d563b8db8035836b68a5a82f6e9 Mon Sep 17 00:00:00 2001
+From: Luca Weiss <luca@z3ntu.xyz>
+Date: Tue, 17 Oct 2023 22:22:27 +0200
+Subject: [PATCH] dbus: Remove at_console filtering
+
+This is long deprecated, remove it since it prohibits communication with
+repowerd.
+---
+ data/dbus-configs/com.canonical.Unity.Screen.conf | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/data/dbus-configs/com.canonical.Unity.Screen.conf b/data/dbus-configs/com.canonical.Unity.Screen.conf
+index 55d2c7b..7bb4cb8 100644
+--- a/data/dbus-configs/com.canonical.Unity.Screen.conf
++++ b/data/dbus-configs/com.canonical.Unity.Screen.conf
+@@ -9,11 +9,6 @@
+ </policy>
+
+ <policy context="default">
+- <allow send_destination="com.canonical.Unity.Screen"
+- send_interface="org.freedesktop.DBus.Introspectable"/>
+- </policy>
+-
+- <policy at_console="true">
+ <allow send_destination="com.canonical.Unity.Screen"/>
+ </policy>
+ </busconfig>
+--
+2.42.0
+
diff --git a/testing/repowerd/APKBUILD b/testing/repowerd/APKBUILD
new file mode 100644
index 00000000000..614d2a531db
--- /dev/null
+++ b/testing/repowerd/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=repowerd
+pkgver=2023.07
+pkgrel=0
+pkgdesc="Power daemon to monitor and control system power state"
+url="https://gitlab.com/ubports/development/core/repowerd"
+arch="all !s390x" # blocked by libgbinder
+license="LGPL-3.0-only"
+makedepends="
+ cmake
+ cmake-extras
+ glib-dev
+ gmock
+ gtest-dev
+ libgbinder-dev
+ lomiri-deviceinfo-dev
+ qt5-qtbase-dev
+ samurai
+ "
+checkdepends="dbus"
+subpackages="$pkgname-openrc"
+source="https://gitlab.com/ubports/development/core/repowerd/-/archive/$pkgver/repowerd-$pkgver.tar.gz
+ repowerd.initd
+ 0001-dbus-Remove-at_console-filtering.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DREPOWERD_ENABLE_HYBRIS=False
+ cmake --build build
+}
+
+check() {
+ # Test ARealFilesystem.performs_ioctl in repowerd-adapter-tests fails
+ # https://gitlab.com/ubports/development/core/repowerd/-/issues/41
+ ctest --test-dir build --output-on-failure -E repowerd-adapter-tests
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+2cbf879956e049c6c197516c23e43bfeafee13f0e354dbf0032f7a9b97bf849255d5dd204f4178759837fd06601fc9ebbdf3a409af3d79da1fe8b3a9c77bb059 repowerd-2023.07.tar.gz
+d8c4dd351a7bf2bcc66b0eb8b0d17d602661f7defb857be5a28f694e4977b634b7d101f738058ce0ccaa313c4e316f7222c753610500ddbd68f8e42de7c57f29 repowerd.initd
+f6212991bd4ea6704a74f71615fa5d0b9b738144c2448f03d90a0d2c6dd320e17c3c070add7f7877ca3f6f4c2526d44dd5277f8cefbd05ad08d99204c61d6766 0001-dbus-Remove-at_console-filtering.patch
+"
diff --git a/testing/repowerd/repowerd.initd b/testing/repowerd/repowerd.initd
new file mode 100644
index 00000000000..dc05a497326
--- /dev/null
+++ b/testing/repowerd/repowerd.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name="Repowerd"
+description="Power daemon to monitor and control system power state"
+
+command=/usr/sbin/repowerd
+command_background=true
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depends() {
+ need udev
+}
diff --git a/testing/reprotest/APKBUILD b/testing/reprotest/APKBUILD
index d131b507e50..af1ca8eaeea 100644
--- a/testing/reprotest/APKBUILD
+++ b/testing/reprotest/APKBUILD
@@ -1,27 +1,42 @@
# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: Antoine Fontaine <antoine.fontaine@epfl.ch>
+# Contributor: fossdd <fossdd@pwned.life>
+# Maintainer: fossdd <fossdd@pwned.life>
pkgname=reprotest
_pyname=reprotest
-pkgver=0.7.14
+pkgver=0.7.27
pkgrel=0
pkgdesc="Build packages and check them for reproducibility"
url="https://salsa.debian.org/reproducible-builds/reprotest"
-arch="noarch !mips !mips64" # diffoscope
+arch="noarch !armv7 !x86 !armhf" # diffoscope
license="GPL-3.0-or-later"
-depends="python3 diffoscope py3-rstr py3-distro"
-makedepends="py3-setuptools py3-wheel"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz"
+depends="diffoscope py3-rstr py3-distro py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-wheel
+ "
+checkdepends="dpkg py3-pytest"
+_pypiprefix="${_pyname%"${_pyname#?}"}"
+subpackages="$pkgname-pyc"
+source="https://salsa.debian.org/reproducible-builds/reprotest/-/archive/$pkgver/reprotest-$pkgver.tar.gz"
+options="!check" # missing disorderfs
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="b4c496c37f65fc5a14cf673e54d56cdeebf869d86c1d8ccffbbdca07a807f1c53d3e32a23c57c6281d4a73aff393e6f58b741fd286faf580fe97add16227b8e2 reprotest-0.7.14.tar.gz"
+
+sha512sums="
+5dfbaaffeaf40c56355a61509590c134921e6697e05c25b1436239f42a522ea17c34076600d3ff69b5eae4b6b9578d4e2b79bb5e88e65d2f1e4641adbb842e79 reprotest-0.7.27.tar.gz
+"
diff --git a/testing/reptyr/APKBUILD b/testing/reptyr/APKBUILD
deleted file mode 100644
index 1f059bc5e73..00000000000
--- a/testing/reptyr/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: André Klitzing <aklitzing@gmail.com>
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=reptyr
-pkgver=0.7.0
-pkgrel=1
-pkgdesc="Reparent a running program to a new terminal"
-url="https://github.com/nelhage/reptyr"
-arch="x86 x86_64 armhf armv7"
-license="MIT"
-makedepends="linux-headers bash-completion"
-subpackages="$pkgname-doc"
-source="https://github.com/nelhage/reptyr/archive/reptyr-$pkgver.tar.gz"
-builddir="$srcdir/"reptyr-reptyr-$pkgver
-
-build() {
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install
-}
-
-sha512sums="d95a05634f7e4e55f487577baee50fc773f0d9957be5ac1a678bd0434baffd994c08a884496f6400ee101333c310eaaf2150f9053d3b4b6e525820a7ed24a8e6 reptyr-0.7.0.tar.gz"
diff --git a/testing/reredirect/APKBUILD b/testing/reredirect/APKBUILD
new file mode 100644
index 00000000000..89b6223e8aa
--- /dev/null
+++ b/testing/reredirect/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=reredirect
+pkgver=0.3
+pkgrel=0
+pkgdesc="Tool to dynamicly redirect outputs of a running process"
+url="https://github.com/jerome-pouiller/reredirect/"
+arch="all !aarch64 !s390x !ppc64le !riscv64" # "unsupported"
+license="MIT"
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="https://github.com/jerome-pouiller/reredirect/archive/refs/tags/v$pkgver/reredirect-$pkgver.tar.gz
+ $pkgname-ptrace-request.patch::https://github.com/jerome-pouiller/reredirect/commit/db3055d1ebc43852d1b5847d12e83f359d3f499f.patch
+ "
+options="!check" # requires root and ptracing another process
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5164d0f347693f13047f76e923ceb7f7f73f746514baff3ddcac2546f6f3f981f01d3f9326b439b98ce503036662d3157c57c628a3b4a576db94a5a22333b531 reredirect-0.3.tar.gz
+8b324096c597c0e6dfc69991ea526e3fbfca7078ec3266ea8dca1148365457b4e9f49241912f8a61ee92f7a6e0e8ea21cbfecffc32a14fb206aa4221b216f9f5 reredirect-ptrace-request.patch
+"
diff --git a/testing/responder/APKBUILD b/testing/responder/APKBUILD
new file mode 100644
index 00000000000..8756942c617
--- /dev/null
+++ b/testing/responder/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=responder
+pkgver=3.1.4.0
+pkgrel=0
+pkgdesc="IPv6/IPv4 LLMNR/NBT-NS/mDNS Poisoner and NTLMv1/2 relay"
+url="https://github.com/lgandx/Responder"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 py3-netifaces"
+source="https://github.com/lgandx/Responder/archive/refs/tags/v$pkgver/Responder-$pkgver.tar.gz
+ fhs.patch"
+builddir="$srcdir/Responder-$pkgver"
+options="!check" # no tests
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/responder \
+ "$pkgdir"/var/log/responder \
+ "$pkgdir"/var/lib/responder \
+ "$pkgdir"/etc/responder \
+ "$pkgdir"/usr/bin
+
+ find -type d -mindepth 1 | xargs cp -rt "$pkgdir"/usr/share/responder
+ cp *.py "$pkgdir"/usr/share/responder
+ install -Dm644 Responder.conf "$pkgdir"/etc/responder/responder.conf
+ ln -s /usr/share/responder/Responder.py "$pkgdir"/usr/bin/responder
+}
+
+sha512sums="
+1a6b5fb3409015e1d23f5f8afd2b4963ab4cedb4b2697f7976df3570c021b8a22bc861a364c6df5467ccf785cebefb9039e95c7ee7ec0392753e8384fe6ef711 Responder-3.1.4.0.tar.gz
+540c4873a72dd554dae2b75949c86e6c354a6ace69b84e725c60ddddf6ad4448d380f8e3fbf64945e306fb49dad80d6772b5f40a0db48323ae4fc654056a9b58 fhs.patch
+"
diff --git a/testing/responder/fhs.patch b/testing/responder/fhs.patch
new file mode 100644
index 00000000000..d976b509063
--- /dev/null
+++ b/testing/responder/fhs.patch
@@ -0,0 +1,69 @@
+From 95651f8bdabe6dd3df5c06b65a4b3efa4166f670 Mon Sep 17 00:00:00 2001
+From: Maxim Karasev <begs@disroot.org>
+Date: Fri, 17 Jun 2022 00:37:48 +0300
+Subject: [PATCH] Use FHS directories
+
+Responder doesn't fit in Unix environment nicely by default.
+---
+ Responder.conf | 10 +++++-----
+ settings.py | 6 +++---
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/Responder.conf b/Responder.conf
+index 5c1b94e..5d6dbcb 100755
+--- a/Responder.conf
++++ b/Responder.conf
+@@ -22,19 +22,19 @@ Challenge = Random
+
+ ; SQLite Database file
+ ; Delete this file to re-capture previously captured hashes
+-Database = Responder.db
++Database = responder.db
+
+ ; Default log file
+-SessionLog = Responder-Session.log
++SessionLog = responder-session.log
+
+ ; Poisoners log
+-PoisonersLog = Poisoners-Session.log
++PoisonersLog = poisoners-session.log
+
+ ; Analyze mode log
+-AnalyzeLog = Analyzer-Session.log
++AnalyzeLog = analyzer-session.log
+
+ ; Dump Responder Config log:
+-ResponderConfigDump = Config-Responder.log
++ResponderConfigDump = config-responder.log
+
+ ; Specific IP Addresses to respond to (default = All)
+ ; Example: RespondTo = 10.20.1.100-150, 10.20.3.10
+diff --git a/settings.py b/settings.py
+index 095f5b5..fe17b00 100755
+--- a/settings.py
++++ b/settings.py
+@@ -82,7 +82,7 @@ class Settings:
+ self.PY2OR3 = "PY2"
+ # Config parsing
+ config = ConfigParser.ConfigParser()
+- config.read(os.path.join(self.ResponderPATH, 'Responder.conf'))
++ config.read(os.path.join('/etc/responder', 'responder.conf'))
+
+ # Servers
+ self.HTTP_On_Off = self.toBool(config.get('Responder Core', 'HTTP'))
+@@ -101,10 +101,10 @@ class Settings:
+ self.Krb_On_Off = self.toBool(config.get('Responder Core', 'Kerberos'))
+
+ # Db File
+- self.DatabaseFile = os.path.join(self.ResponderPATH, config.get('Responder Core', 'Database'))
++ self.DatabaseFile = os.path.join('/var/lib/responder', config.get('Responder Core', 'Database'))
+
+ # Log Files
+- self.LogDir = os.path.join(self.ResponderPATH, 'logs')
++ self.LogDir = '/var/log/responder'
+
+ if not os.path.exists(self.LogDir):
+ os.mkdir(self.LogDir)
+--
+2.36.1
+
diff --git a/testing/restart-services/APKBUILD b/testing/restart-services/APKBUILD
index 0e388df25de..5da6486f573 100644
--- a/testing/restart-services/APKBUILD
+++ b/testing/restart-services/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname="restart-services"
-pkgver="0.14.4"
+pkgname=restart-services
+pkgver=0.17.0
pkgrel=0
pkgdesc="Tool to manage OpenRC services that need to be restarted"
url="https://dev.gentoo.org/~mschiff/restart-services/"
@@ -32,8 +32,9 @@ package() {
# SV_ALWAYS+=( myservice )
EOF
-
}
-sha512sums="89bd5edf5175694b3438788759f9b747251431ba700ad199f43b8fa551faa23411f33688e1aa6b04ae6524e737c4073926b989fa1422ddfca94514f9afd8de66 restart-services-0.14.4.tgz
-bb2ab053de7de951a8038b21c67b7349ccce227cc1ffdd11a4056b32e379f1550c595a10729dc8b34adbddf697dcf281e37d399e22144d239e6463a96e1c45fd alpine.patch"
+sha512sums="
+c11ca431fbbc6899ab268e8979049144448479d953ed7373cc7483cca2c03cd4041a1ca1e47c0e810f91a18a43aa32cc305a4ea791e8b992246f972e0fbb19ab restart-services-0.17.0.tgz
+1b0753e240dba55fcbd21bc72914b939ce1a860deaa3f140c2fe6e36b490b19841c7c78d7556cbdbb2dc8fe53f924a08e654f9db8ea17499174ffb5b7be88ebe alpine.patch
+"
diff --git a/testing/restart-services/alpine.patch b/testing/restart-services/alpine.patch
index d738e188db8..3f06d781e98 100644
--- a/testing/restart-services/alpine.patch
+++ b/testing/restart-services/alpine.patch
@@ -1,31 +1,42 @@
---- a/restart-services.orig
-+++ b/restart-services
-@@ -380,7 +380,7 @@
+--- a/restart-services.orig 2021-12-18 22:23:02.575145744 +0300
++++ b/restart-services 2021-12-18 22:30:07.114359098 +0300
+@@ -278,7 +278,7 @@
+ function get_package_of_file() {
+ local pkg
+ local exe="$1"
+- pkg=$(qfile --nocolor -- "$exe"|awk '{print $1}')
++ pkg=$(apk info --who-owns --no-progress -- "$s"|awk '{print $1}')
+
+ if [[ -z $pkg ]]; then
+ if [[ $exe =~ .*/lib(32|64)/.* ]]; then
+@@ -287,7 +287,7 @@
+ # so test again with just /lib/ in path
+ exe="${exe/\/lib32//lib}"
+ exe="${exe/\/lib64//lib}"
+- pkg=$(qfile --nocolor -- "$exe"|awk '{print $1}')
++ pkg=$(apk info --who-owns --no-progress -- "$s"|awk '{print $1}')
+ fi
+ fi
+
+@@ -435,7 +435,7 @@
+
+ if [[ $DEBUG ]]; then
+ debug "this is $SELF version $VERSION"
+- debug "using $(lib_users --version)"
++ debug "using $(lib_users.py --version)"
+ fi
+
+ debug "analyzing lib_users output ..."
+@@ -612,7 +612,7 @@
done
# lib_users <= 0.12 reports postgres' "/anon_hugepage" as deleted lib, so tell it to ignore this manually (see bug #648356)
# bug #678500: ignore tmp-files
--done < <(lib_users -m -I /anon_hugepage -i '/tmp/*')
-+done < <(lib_users.py -m -I /anon_hugepage -i '/tmp/*')
+-done < <(if [[ $DEBUG && $DEBUG_FILE ]]; then cat "$DEBUG_FILE"; else lib_users -m -I /anon_hugepage -i '/tmp/*'; fi)
++done < <(if [[ $DEBUG && $DEBUG_FILE ]]; then cat "$DEBUG_FILE"; else lib_users.py -m -I /anon_hugepage -i '/tmp/*'; fi)
debug "analyzing remaining processes (not direct hits) ..."
debug "TODO_PROCESSES_EXE: ${TODO_PROCESSES_EXE[*]}"
-@@ -422,7 +422,7 @@
- EXEC_PATH_RE="/(usr/)?((s)?bin|lib(32|64|exec))?/"
- if [[ $s =~ $EXEC_PATH_RE ]]; then
- debug "'$s' may be script, looking for package"
-- if PKG=$(qfile --nocolor -- "$s"|awk '{print $1}'); then
-+ if PKG=$(apk info --who-owns --no-progress -- "$s"|awk '{print $1}'); then
- debug "bingo. '$s' belongs to a package"
- break
- fi
-@@ -431,19 +431,13 @@
- fi
- else
- debug "process does not look like a script"
-- PKG=$(qfile --nocolor -- "$lu_exe"|awk '{print $1}')
-+ PKG=$(apk info --who-owns --no-progress -- "$lu_exe"|awk '{print $1}')
- fi
-
+@@ -669,13 +669,7 @@
if [[ $PKG ]]; then
debug "found package: $PKG"
@@ -40,4 +51,3 @@
if [[ ${#_init_scripts} -gt 0 ]]; then
debug "found init scripts: ${_init_scripts[*]}"
for i in "${_init_scripts[@]}"; do
-
diff --git a/testing/restic.mk/APKBUILD b/testing/restic.mk/APKBUILD
new file mode 100644
index 00000000000..6a09f73f075
--- /dev/null
+++ b/testing/restic.mk/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=restic.mk
+pkgver=0.4.0
+pkgrel=0
+pkgdesc="Simplest restic backup automation tool"
+url="https://github.com/kmmndr/restic.mk"
+arch="noarch !armhf" # limited by restic
+license="GPL-3.0-or-later"
+depends="
+ coreutils
+ jq
+ make
+ restic
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/kmmndr/restic.mk/archive/v$pkgver.tar.gz"
+options="!check" # No test suite
+
+package() {
+ PREFIX="$pkgdir/usr" make install
+}
+
+sha512sums="
+a8d25f412415da418822129cfe97eb1f35837ae63f3c96b4d9833d5dfbe3e9ada731fe944fe279f6f86c86fba2cc0b29cab1e4d508f57105e75dd565ee2470ed restic.mk-0.4.0.tar.gz
+"
diff --git a/testing/restinio/APKBUILD b/testing/restinio/APKBUILD
new file mode 100644
index 00000000000..caca7886923
--- /dev/null
+++ b/testing/restinio/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=restinio
+pkgver=0.6.17
+pkgrel=6
+pkgdesc="Header-only C++14 library that gives you an embedded HTTP/Websocket server"
+url="https://stiffstream.com/en/products/restinio.html"
+arch="noarch"
+license=" BSD-3-Clause"
+makedepends="cmake openssl-dev zlib-dev pcre2-dev boost-dev fmt-dev samurai"
+subpackages="$pkgname-dev"
+source="https://github.com/Stiffstream/restinio/releases/download/v.$pkgver/restinio-$pkgver.tar.bz2
+ lfs64.patch
+ "
+options="!check" # cant get checks to work
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja -S dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DRESTINIO_FIND_DEPS=ON \
+ -DRESTINIO_TEST=OFF \
+ -DRESTINIO_SAMPLE=OFF \
+ -DRESTINIO_INSTALL_SAMPLES=OFF \
+ -DRESTINIO_BENCH=OFF \
+ -DRESTINIO_INSTALL_BENCHES=OFF \
+ -DRESTINIO_ALLOW_SOBJECTIZER=OFF \
+ -DRESTINIO_USE_EXTERNAL_HTTP_PARSER=ON \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+be6f2ccfbeb9840391adfd2e8416b5a0511ac1e47b79038e9296ec5ec9a75c708ece23d9204f5dc0e753f62b950b8410262af2504812f19bbbefcc5cc057b5a1 restinio-0.6.17.tar.bz2
+a26b26275c76d720d2502b20d431e7990b42c7f3cae94b4a17521718ee9c9abf0b625e19286d12c53f61a058fd83129428e8a90a0f6c8ab8ad5a142b7ae4fb47 lfs64.patch
+"
diff --git a/testing/restinio/lfs64.patch b/testing/restinio/lfs64.patch
new file mode 100644
index 00000000000..e0689b8cd9e
--- /dev/null
+++ b/testing/restinio/lfs64.patch
@@ -0,0 +1,20 @@
+diff --git a/dev/restinio/sendfile_defs_posix.hpp b/dev/restinio/sendfile_defs_posix.hpp
+index e531a17..f954d29 100644
+--- a/dev/restinio/sendfile_defs_posix.hpp
++++ b/dev/restinio/sendfile_defs_posix.hpp
+@@ -75,15 +75,9 @@ get_file_meta( file_descriptor_t fd )
+ throw exception_t{ "invalid file descriptor" };
+ }
+
+-#if defined( RESTINIO_FREEBSD_TARGET ) || defined( RESTINIO_MACOS_TARGET )
+ struct stat file_stat;
+
+ const auto fstat_rc = ::fstat( fd, &file_stat );
+-#else
+- struct stat64 file_stat;
+-
+- const auto fstat_rc = fstat64( fd, &file_stat );
+-#endif
+
+ if( 0 != fstat_rc )
+ {
diff --git a/testing/rezolus/APKBUILD b/testing/rezolus/APKBUILD
new file mode 100644
index 00000000000..7ce19b10be9
--- /dev/null
+++ b/testing/rezolus/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=rezolus
+pkgver=2.11.1
+pkgrel=3
+pkgdesc="Systems performance telemetry"
+url="https://github.com/twitter/rezolus/"
+arch="x86_64 x86 armv7 armhf aarch64 ppc64le" # limited by rust/cargo
+license="Apache-2.0"
+makedepends="cargo openssl-dev cargo-auditable"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="https://github.com/twitter/rezolus/archive/v$pkgver/rezolus-$pkgver.tar.gz
+ minimize-size.patch
+ remove-ntp-sampler.patch
+ remove-http-sampler.patch
+ openssl.patch
+ config.toml
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.logrotate
+ "
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/rezolus -t "$pkgdir"/usr/bin/
+
+ install -Dm 644 "$srcdir"/config.toml "$pkgdir"/etc/rezolus.toml
+
+ 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 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
+
+ install -Dm 644 configs/example.toml "$pkgdir"/usr/share/doc/$pkgname/full-config.toml
+}
+
+sha512sums="
+8ffe293cb197e0b2a6f5ba4bf7bdf7f77528f30785e64e15774241279309e881a6898b8f1bae7b6bfdc2f7dcd3e54793b249673aa0e25bcdbdb50f100fa3864d rezolus-2.11.1.tar.gz
+952e03a6b41fc57727099c9a913632f967f7355d89cf0553c36ea9f959bcc934bcc1daba6d8dd22e9a40b95e6a1ca62f41f61f724b3399b9b78022565ea015e6 minimize-size.patch
+0dca295df00aff5b1f951b204dbddfe29f6ce353833076bd9ea676ad1f5650a24d6d6a46fb69e366c2ba899bb3c53163a99aa49c356aaab5f6c57a5f0f28143f remove-ntp-sampler.patch
+bfc805dd2cf268549d8d9f3c98dd6a66152f6088eabcdcee5afabaa0dc03743b1dd936f97f6d6b36f8da081cd8915191156ca0b20ba2d92c3b6742cfd02cdfb1 remove-http-sampler.patch
+27cfa9a21fffaf81d75619a10fb30c3bdef72b7b1041932f7919f15153fd2a04a2d133f37a3815f28391c1f5440710e6b7022cc41f896ffa66b441dc42383186 openssl.patch
+35b883ab2c01a00019064cb7cb9ca28ddf469175f46e8cba15b62eef5519979fd63d2b180a50fad896de07ebeb6172f76c7d61d4e8ae2ce72c06b34d7462ac38 config.toml
+17ba0039a84287a2183f398756cac0cb43f0de2ac95911fa41fcd5bb7b3f411aa8a174632ffa4a519fabd4edd25d69fa2ffa52711fcf0c32c0e1e55eb4828e7b rezolus.initd
+cbc3600b6a01142acb0f4f47a07ee1ad94222f3bd4106e2e29d7cb5edf23bfc54b40fd5d0ab616d0a22a9bca7a10dd1832f23589daeee195a628d25f0a0d21d3 rezolus.confd
+248f447686af4b69ebfc1558029babc2aab83cdf50b0cc22c1306549c37f7448a5ed4ebd0cc216f17701b93ea37655e856360e428c7c84eec5d2a64ca3fe178e rezolus.logrotate
+"
diff --git a/testing/rezolus/config.toml b/testing/rezolus/config.toml
new file mode 100644
index 00000000000..bfb997a1e5b
--- /dev/null
+++ b/testing/rezolus/config.toml
@@ -0,0 +1,83 @@
+# This is a minimal configuration for Rezolus that enables only universally
+# usable samplers without any detailed configuration.
+# See /usr/share/doc/rezolut/full-config.toml for full example.
+#
+# NOTE: Rezolus on Alpine Linux is built without NTP sampler (incompatible)
+# and HTTP sampler (too big; open issue on alpine/aports if you need it).
+
+# General configuration
+[general]
+# Sets the socket address for Rezolus to listen on. This is a required parameter
+listen = "0.0.0.0:4242"
+
+# Specify the logging level: error, info, debug, trace,
+# logging = "info"
+
+# The default interval, in milliseconds, for all samplers
+# interval = 1000
+
+# The default window for percentiles in seconds. Samples older than this will
+# age-out of the histograms.
+# window = 60
+
+# The number of worker threads which are used to run samplers.
+# threads = 1
+
+# Per-sampler configuration sections
+[samplers]
+
+# The cpu sampler provides telemetry for CPU utilization, C-states, and
+# processor performance telemetry.
+[samplers.cpu]
+enabled = true
+
+# The disk sampler provides telemetry about disk IO operations, bandwidth, and
+# with BPF enabled, IO size and latency distributions.
+[samplers.disk]
+enabled = true
+
+# The ext4 sampler provides telemetry about ext4 filesystem operations.
+# Currently this sampler only provides telemetry from BPF. If you want to enable
+# this sampler, you should also enable BPF.
+[samplers.ext4]
+enabled = true
+
+# The interrupt sampler provides telemetry about system interrupts
+[samplers.interrupt]
+enabled = true
+
+# The memory sampler provides telemetry for system memory utilization
+[samplers.memory]
+enabled = true
+
+# The network sampler provides telemetry for network bandwidth, packet rates,
+# errors, and optionally the distribution of transmit/receive sizes.
+[samplers.network]
+enabled = true
+
+# The page cache sampler provides telemetry about page cache hits and misses
+[samplers.page_cache]
+enabled = true
+
+# The rezolus sampler provides telemetry about the CPU and memory utilization
+# for Rezolus itself.
+[samplers.rezolus]
+enabled = true
+
+# The scheduler sampler provides telemetry about the system scheduler and number
+# of running/blocked/created processes.
+[samplers.scheduler]
+enabled = true
+
+# The softnet scheduler provides telemetry about kernel processing of network
+# frames.
+[samplers.softnet]
+enabled = true
+
+# The tcp sampler provides telemetry about tcp traffic
+[samplers.tcp]
+enabled = true
+
+# The udp sampler provides telemetry about udp traffic
+[samplers.udp]
+enabled = true
diff --git a/testing/rezolus/minimize-size.patch b/testing/rezolus/minimize-size.patch
new file mode 100644
index 00000000000..9e690c22ff6
--- /dev/null
+++ b/testing/rezolus/minimize-size.patch
@@ -0,0 +1,11 @@
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -65,6 +65,7 @@
+ codegen-units = 1
+
+ [profile.release]
+-debug = true
+ lto = true
+ codegen-units = 1
++opt-level = "z"
++panic = "abort"
diff --git a/testing/rezolus/openssl.patch b/testing/rezolus/openssl.patch
new file mode 100644
index 00000000000..35a6cfd27fc
--- /dev/null
+++ b/testing/rezolus/openssl.patch
@@ -0,0 +1,60 @@
+resolves a build failure that can't find openssl headers since the prior
+openssl crate version are too old.
+diff --git a/Cargo.lock b/Cargo.lock
+index 36f38fb..678d575 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,5 +1,7 @@
+ # This file is automatically @generated by Cargo.
+ # It is not intended for manual editing.
++version = 3
++
+ [[package]]
+ name = "addr2line"
+ version = "0.14.1"
+@@ -1067,18 +1069,30 @@ checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
+
+ [[package]]
+ name = "openssl"
+-version = "0.10.32"
++version = "0.10.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
++checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13"
+ dependencies = [
+ "bitflags",
+ "cfg-if 1.0.0",
+ "foreign-types",
+- "lazy_static",
+ "libc",
++ "once_cell",
++ "openssl-macros",
+ "openssl-sys",
+ ]
+
++[[package]]
++name = "openssl-macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
+ [[package]]
+ name = "openssl-probe"
+ version = "0.1.2"
+@@ -1087,9 +1101,9 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+
+ [[package]]
+ name = "openssl-sys"
+-version = "0.9.60"
++version = "0.9.77"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
++checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a"
+ dependencies = [
+ "autocfg",
+ "cc",
diff --git a/testing/rezolus/remove-http-sampler.patch b/testing/rezolus/remove-http-sampler.patch
new file mode 100644
index 00000000000..715d38a9e76
--- /dev/null
+++ b/testing/rezolus/remove-http-sampler.patch
@@ -0,0 +1,121 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 13 Apr 2021 19:14:53 +0200
+Subject: [PATCH] Remove http sampler to decrease size and dependencies
+
+http sampler increases size of the rezolus binary from 2.5 MiB to 4.1 MiB
+(opt-level="z", panic="abort", lto, stripped) and adds dependency on libssl
+and libcrypto.
+
+I think that it's a bit out of scope of the Rezolus purpose and there are
+better tools for this. If there will be demand for this sampler, we can
+build and provide two variants of rezolus (e.g. rezolus and rezolus-http).
+
+--- a/configs/example.toml
++++ b/configs/example.toml
+@@ -127,48 +127,6 @@
+ # "p99",
+ # ]
+
+-# This sampler reads from a JSON key-value http endpoint and can calculate
+-# percentile metrics for configured counters and gauges. It is intended to be
+-# used for host-local http endpoints to avoid introducing noise into the
+-# percentiles due to variable request service time.
+-# [samplers.http]
+-# Controls whether to use this sampler
+-# enabled = false
+-
+-# Specify the full URL to read JSON metrics from
+-# url = "http://0.0.0.0:8080/vars.json"
+-
+-# Sampling interval, in milliseconds, for this sampler
+-# interval = 1000
+-
+-# Specify raw metric names that should be treated as counters and have
+-# percentile metrics calculated. The percentiles will be of secondly rates seen
+-# calculated from the difference in consecutive readings and the elapsed time
+-# between those readings.
+-# counters = [
+-# # "some_counter_metric",
+-# ]
+-
+-# Specify raw metric names that should be treated as gauges and have percentile
+-# metrics calculated. The percentiles will be of instantaneous gauge values.
+-# gauges = [
+-# # "some_gauge_metric",
+-# ]
+-
+-# Enable pass-through of raw metric readings. The names will have the reading
+-# suffix appended to them, see the general config section.
+-# passthrough = false
+-
+-# The set of exported percentiles can be controlled by specifying them here
+-# percentiles = [
+-# "p1",
+-# "p10",
+-# "p50",
+-# "p90",
+-# "p99",
+-# ]
+-
+-
+ # The interrupt sampler provides telemetry about system interrupts
+ [samplers.interrupt]
+ # Controls whether to use this sampler
+--- a/src/config/samplers.rs
++++ b/src/config/samplers.rs
+@@ -7,7 +7,6 @@
+ use samplers::cpu::CpuConfig;
+ use samplers::disk::DiskConfig;
+ use samplers::ext4::Ext4Config;
+-use samplers::http::HttpConfig;
+ use samplers::interrupt::InterruptConfig;
+ use samplers::memcache::MemcacheConfig;
+ use samplers::memory::MemoryConfig;
+@@ -31,8 +30,6 @@
+ #[serde(default)]
+ ext4: Ext4Config,
+ #[serde(default)]
+- http: HttpConfig,
+- #[serde(default)]
+ interrupt: InterruptConfig,
+ #[serde(default)]
+ memcache: MemcacheConfig,
+@@ -71,10 +68,6 @@
+ &self.ext4
+ }
+
+- pub fn http(&self) -> &HttpConfig {
+- &self.http
+- }
+-
+ pub fn interrupt(&self) -> &InterruptConfig {
+ &self.interrupt
+ }
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -78,7 +78,6 @@
+ Cpu::spawn(common.clone());
+ Disk::spawn(common.clone());
+ Ext4::spawn(common.clone());
+- Http::spawn(common.clone());
+ Interrupt::spawn(common.clone());
+ Memcache::spawn(common.clone());
+ Memory::spawn(common.clone());
+--- a/src/samplers/mod.rs
++++ b/src/samplers/mod.rs
+@@ -18,7 +18,6 @@
+ pub mod cpu;
+ pub mod disk;
+ pub mod ext4;
+-pub mod http;
+ pub mod interrupt;
+ pub mod memcache;
+ pub mod memory;
+@@ -35,7 +34,6 @@
+ pub use cpu::Cpu;
+ pub use disk::Disk;
+ pub use ext4::Ext4;
+-pub use http::Http;
+ pub use interrupt::Interrupt;
+ pub use memcache::Memcache;
+ pub use memory::Memory;
diff --git a/testing/rezolus/remove-ntp-sampler.patch b/testing/rezolus/remove-ntp-sampler.patch
new file mode 100644
index 00000000000..38398da274f
--- /dev/null
+++ b/testing/rezolus/remove-ntp-sampler.patch
@@ -0,0 +1,96 @@
+It fails to build on Alpine / musl.
+
+Upstream-Issue: https://github.com/twitter/rezolus/issues/216
+
+--- a/src/config/samplers.rs
++++ b/src/config/samplers.rs
+@@ -12,7 +12,6 @@
+ use samplers::memcache::MemcacheConfig;
+ use samplers::memory::MemoryConfig;
+ use samplers::network::NetworkConfig;
+-use samplers::ntp::NtpConfig;
+ use samplers::nvidia::NvidiaConfig;
+ use samplers::page_cache::PageCacheConfig;
+ use samplers::rezolus::RezolusConfig;
+@@ -42,8 +41,6 @@
+ #[serde(default)]
+ network: NetworkConfig,
+ #[serde(default)]
+- ntp: NtpConfig,
+- #[serde(default)]
+ nvidia: NvidiaConfig,
+ #[serde(default)]
+ page_cache: PageCacheConfig,
+@@ -94,10 +91,6 @@
+ &self.network
+ }
+
+- pub fn ntp(&self) -> &NtpConfig {
+- &self.ntp
+- }
+-
+ pub fn nvidia(&self) -> &NvidiaConfig {
+ &self.nvidia
+ }
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -84,7 +84,6 @@
+ Memory::spawn(common.clone());
+ PageCache::spawn(common.clone());
+ Network::spawn(common.clone());
+- Ntp::spawn(common.clone());
+ Nvidia::spawn(common.clone());
+ Rezolus::spawn(common.clone());
+ Scheduler::spawn(common.clone());
+--- a/src/samplers/mod.rs
++++ b/src/samplers/mod.rs
+@@ -23,7 +23,6 @@
+ pub mod memcache;
+ pub mod memory;
+ pub mod network;
+-pub mod ntp;
+ pub mod nvidia;
+ pub mod page_cache;
+ pub mod rezolus;
+@@ -41,7 +40,6 @@
+ pub use memcache::Memcache;
+ pub use memory::Memory;
+ pub use network::Network;
+-pub use ntp::Ntp;
+ pub use nvidia::Nvidia;
+ pub use page_cache::PageCache;
+ pub use rezolus::Rezolus;
+--- a/configs/example.toml
++++ b/configs/example.toml
+@@ -249,31 +249,6 @@
+ # "p99",
+ # ]
+
+-# The NTP sampler provides basic telemetry for the running network time protocol
+-# daemon.
+-[samplers.ntp]
+-# Controls wherther to use this sampler
+-enabled = true
+-
+-# Sampling interval, in milliseconds, for this sampler
+-# interval = 1000
+-
+-# The set of exported statistics may be limited by specifying them, otherwise
+-# the complete set of statistics will be exported.
+-# statistics = [
+-# "network/receive/bytes",
+-# "network/transmit/bytes"
+-# ]
+-
+-# The set of exported percentiles can be controlled by specifying them here
+-# percentiles = [
+-# "p1",
+-# "p10",
+-# "p50",
+-# "p90",
+-# "p99",
+-# ]
+-
+ # The Nvidia sampler provides telemetry for Nvidia GPUs by using the NVML
+ # library.
+ [samplers.nvidia]
diff --git a/testing/rezolus/rezolus.confd b/testing/rezolus/rezolus.confd
new file mode 100644
index 00000000000..ed5e98c8354
--- /dev/null
+++ b/testing/rezolus/rezolus.confd
@@ -0,0 +1,14 @@
+# Configuration for /etc/init.d/rezolus
+
+# Path to configuration file.
+#cfgfile="/etc/rezolus.toml"
+
+# File to redirect stdout/stderr into.
+#logfile="/var/log/rezolus.log"
+
+# User to run rezolus.
+# You may need to change it to "root" if you use perf_events.
+#command_user="rezolus"
+
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/testing/rezolus/rezolus.initd b/testing/rezolus/rezolus.initd
new file mode 100644
index 00000000000..c5abfae2db0
--- /dev/null
+++ b/testing/rezolus/rezolus.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+: ${cfgfile:="/etc/rezolus.toml"}
+: ${logfile:="/var/log/rezolus.log"}
+: ${command_user:="rezolus"}
+
+command="/usr/bin/rezolus"
+command_args="--config $cfgfile"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+output_log="$logfile"
+error_log="$logfile"
+
+required_files="$cfgfile"
+
+start_pre() {
+ checkpath -f -m 640 -o "$command_user" "$logfile"
+}
diff --git a/testing/rezolus/rezolus.logrotate b/testing/rezolus/rezolus.logrotate
new file mode 100644
index 00000000000..99d00f779c4
--- /dev/null
+++ b/testing/rezolus/rezolus.logrotate
@@ -0,0 +1,6 @@
+/var/log/rezolus.log {
+ compress
+ copytruncate
+ delaycompress
+ missingok
+}
diff --git a/testing/rezolus/rezolus.pre-install b/testing/rezolus/rezolus.pre-install
new file mode 100644
index 00000000000..8ad97b68bc0
--- /dev/null
+++ b/testing/rezolus/rezolus.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G nogroup \
+ -g "added by apk for rezolus" rezolus 2>/dev/null
+
+exit 0
diff --git a/testing/rgxg/APKBUILD b/testing/rgxg/APKBUILD
index 0b97ed0351e..d4e41548323 100644
--- a/testing/rgxg/APKBUILD
+++ b/testing/rgxg/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Hauke Loeffler <alpine@hauke-loeffler.de>
pkgname=rgxg
pkgver=0.1.2
-pkgrel=0
+pkgrel=2
pkgdesc="rgxg (ReGular eXpression Generator) is a C library and a command-line tool to generate (extended) regular expressions."
url="https://rgxg.github.io/"
arch="all"
diff --git a/testing/rhasspy-nlu/APKBUILD b/testing/rhasspy-nlu/APKBUILD
new file mode 100644
index 00000000000..b33df8b794b
--- /dev/null
+++ b/testing/rhasspy-nlu/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=rhasspy-nlu
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="Natural language understanding library for Rhasspy"
+url="https://github.com/rhasspy/rhasspy-nlu"
+arch="noarch"
+license="MIT"
+depends="py3-grapheme py3-numpy py3-networkx py3-num2words"
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://github.com/rhasspy/rhasspy-nlu/archive/refs/tags/v$pkgver/rhasspy-nlu-$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+ rm -rf "$pkgdir"/usr/lib/python*/site-packages/tests
+}
+
+sha512sums="
+fbb4ab21d8b11a1d3c5c26445795d28567eabd532bc332446b75236fc0856abf6c1ede423620b717d2ff8294b69b9265e3ea53a5cb397df2f4e959fa9805a47d rhasspy-nlu-0.4.0.tar.gz
+"
diff --git a/testing/ri-li/APKBUILD b/testing/ri-li/APKBUILD
new file mode 100644
index 00000000000..6210ea5f1eb
--- /dev/null
+++ b/testing/ri-li/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=ri-li
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="Drive a toy wood engine in many levels and collect all the coaches to win"
+url="https://ri-li.sourceforge.net"
+arch="x86 x86_64"
+license="GPL-3.0-or-later"
+makedepends="sdl12-compat-dev sdl_mixer-dev"
+source="$pkgname-$pkgver.tar.bz2::https://download.sourceforge.net/sourceforge/ri-li/Ri-li-$pkgver.tar.bz2
+ iostream.patch
+ pointers.patch
+ ri-li.desktop
+ "
+options="!check" # No test suite
+builddir="$srcdir/Ri-li-$pkgver"
+
+build() {
+ ./configure --prefix=/usr
+ sed -i "s/SUBDIRS = src data Sounds gentoo/SUBDIRS = src data Sounds/" Makefile
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm 644 "$srcdir"/ri-li.desktop "$pkgdir"/usr/share/applications/ri-li.desktop
+ install -Dm 644 "$builddir"/data/Ri-li-icon-48x48.png "$pkgdir"/usr/share/pixmaps/ri-li.png
+}
+
+sha512sums="
+6d56c00dae90b50bca81ca739c628335b4ad7642c19a3b3c28630ddb91bd847ca6d383cace66ef436a1dda7497c9d3939de2626071bae40d423b2444fed97863 ri-li-2.0.1.tar.bz2
+49fbf3a30f0ae6c47d8fcc45d72891ac199187f7615840f6eb994df998440980d7838beceec5225325c2e971c97dbc28a02ad47db03d144bb9cd90b18d4422e8 iostream.patch
+e2e820cb5d09cc3b9a0318acbd24755d09db259ce52da8b833d7a6957f92a877e4a74b6393b053d5d5e6863a60352a5ac0a915bc8203759c5a7d69346320e6ac pointers.patch
+cba2c93be02ad90ffda4fd637df347f3a88d43548c61d60bf06050cac5e6d9d379b6232a86925049903dbf7eabf9355977e17c568042341e1091af358932393f ri-li.desktop
+"
diff --git a/testing/ri-li/iostream.patch b/testing/ri-li/iostream.patch
new file mode 100644
index 00000000000..5846bb32b35
--- /dev/null
+++ b/testing/ri-li/iostream.patch
@@ -0,0 +1,202 @@
+diff -urN Ri-li-2.0.1-orig/src//audio.cc Ri-li-2.0.1/src//audio.cc
+--- Ri-li-2.0.1-orig/src//audio.cc 2007-11-02 12:48:15.000000000 +0100
++++ Ri-li-2.0.1/src//audio.cc 2010-12-14 21:54:10.533334011 +0100
+@@ -22,13 +22,16 @@
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ #include <stdlib.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <string.h>
+
+ #include "audio.h"
+ #include "utils.h"
+ #include "preference.h"
+
++using std::cerr;
++using std::endl;
++
+ /*** Variable globales ***/
+ /*************************/
+ extern sPreference Pref;
+diff -urN Ri-li-2.0.1-orig/src//ecran.cc Ri-li-2.0.1/src//ecran.cc
+--- Ri-li-2.0.1-orig/src//ecran.cc 2007-11-02 12:48:16.000000000 +0100
++++ Ri-li-2.0.1/src//ecran.cc 2010-12-14 21:54:50.346667343 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <math.h>
+diff -urN Ri-li-2.0.1-orig/src//editeur.cc Ri-li-2.0.1/src//editeur.cc
+--- Ri-li-2.0.1-orig/src//editeur.cc 2007-11-02 12:48:17.000000000 +0100
++++ Ri-li-2.0.1/src//editeur.cc 2010-12-14 21:55:25.770000677 +0100
+@@ -25,7 +25,7 @@
+ #include <windows.h>
+ #endif
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -38,6 +38,9 @@
+ #include "tableau.h"
+ #include "mouse.h"
+
++using std::cerr;
++using std::endl;
++
+ /*** Variables globales ***/
+ /**************************/
+ extern SDL_Surface *sdlVideo;
+diff -urN Ri-li-2.0.1-orig/src//jeux.cc Ri-li-2.0.1/src//jeux.cc
+--- Ri-li-2.0.1-orig/src//jeux.cc 2007-11-02 12:48:17.000000000 +0100
++++ Ri-li-2.0.1/src//jeux.cc 2010-12-14 22:06:21.783334023 +0100
+@@ -25,7 +25,7 @@
+ #include <windows.h>
+ #endif
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff -urN Ri-li-2.0.1-orig/src//loco.cc Ri-li-2.0.1/src//loco.cc
+--- Ri-li-2.0.1-orig/src//loco.cc 2007-11-02 12:48:18.000000000 +0100
++++ Ri-li-2.0.1/src//loco.cc 2010-12-14 22:06:40.183334009 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+diff -urN Ri-li-2.0.1-orig/src//main.cc Ri-li-2.0.1/src//main.cc
+--- Ri-li-2.0.1-orig/src//main.cc 2007-11-02 12:48:19.000000000 +0100
++++ Ri-li-2.0.1/src//main.cc 2010-12-14 22:07:15.993334009 +0100
+@@ -23,7 +23,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <string.h>
+ #include <SDL/SDL.h>
+ #include <SDL/SDL_mixer.h>
+@@ -39,6 +39,9 @@
+ #include "editeur.h"
+ #include "utils.h"
+
++using std::cerr;
++using std::endl;
++
+ /*** Variables globales ***/
+ /************************/
+ SDL_Surface *sdlVideo; // Pointe sur l'écran video
+diff -urN Ri-li-2.0.1-orig/src//menu.cc Ri-li-2.0.1/src//menu.cc
+--- Ri-li-2.0.1-orig/src//menu.cc 2007-11-02 12:48:19.000000000 +0100
++++ Ri-li-2.0.1/src//menu.cc 2010-12-14 22:07:55.990000676 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -34,6 +34,9 @@
+
+ #define PY 180
+
++using std::cerr;
++using std::endl;
++
+ /*** Variables globales ***/
+ /**************************/
+ extern int Horloge;
+diff -urN Ri-li-2.0.1-orig/src//mouse.cc Ri-li-2.0.1/src//mouse.cc
+--- Ri-li-2.0.1-orig/src//mouse.cc 2007-11-02 12:48:20.000000000 +0100
++++ Ri-li-2.0.1/src//mouse.cc 2010-12-14 22:08:11.696667343 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include "mouse.h"
+ #include "preference.h"
+diff -urN Ri-li-2.0.1-orig/src//sprite.cc Ri-li-2.0.1/src//sprite.cc
+--- Ri-li-2.0.1-orig/src//sprite.cc 2007-11-02 12:48:20.000000000 +0100
++++ Ri-li-2.0.1/src//sprite.cc 2010-12-14 22:09:17.650000676 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -30,6 +30,9 @@
+ #include "preference.h"
+ #include "utils.h"
+
++using std::cerr;
++using std::endl;
++
+ /*** Variables Globales ***/
+ /**************************/
+ extern SDL_Surface *sdlVideo;
+@@ -39,8 +42,8 @@
+ extern int NSprites;
+ extern sPreference Pref;
+
+-static char* OrdreTexte="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-!?*+<>%$()&;";
+-static char* OrdreTexte2="abcdefghijklmnopqrstuvwxyz0123456789,_|?*+<>%$[]&;";
++static char* OrdreTexte=(char *)"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-!?*+<>%$()&;";
++static char* OrdreTexte2=(char *)"abcdefghijklmnopqrstuvwxyz0123456789,_|?*+<>%$[]&;";
+ static int TableTexte[256];
+
+ char Langue[31][16]; // Mémorise les noms des langues
+diff -urN Ri-li-2.0.1-orig/src//tableau.cc Ri-li-2.0.1/src//tableau.cc
+--- Ri-li-2.0.1-orig/src//tableau.cc 2007-11-02 12:48:21.000000000 +0100
++++ Ri-li-2.0.1/src//tableau.cc 2010-12-14 22:09:32.603334046 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include "preference.h"
+diff -urN Ri-li-2.0.1-orig/src//utils.cc Ri-li-2.0.1/src//utils.cc
+--- Ri-li-2.0.1-orig/src//utils.cc 2007-11-02 12:48:22.000000000 +0100
++++ Ri-li-2.0.1/src//utils.cc 2010-12-14 22:09:58.343334046 +0100
+@@ -21,7 +21,7 @@
+ // with this program; if not, write to the Free Software Foundation, Inc.,
+ // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-#include <iostream.h>
++#include <iostream>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -36,6 +36,9 @@
+ #include "preference.h"
+ #include "sprite.h"
+
++using std::cerr;
++using std::endl;
++
+ /*** Variables globales ***/
+ /**************************/
+ extern sPreference Pref;
diff --git a/testing/ri-li/pointers.patch b/testing/ri-li/pointers.patch
new file mode 100644
index 00000000000..f39b4858d7a
--- /dev/null
+++ b/testing/ri-li/pointers.patch
@@ -0,0 +1,35 @@
+diff --git a/src/sprite.cc b/src/sprite.cc
+index 926370d..3521fe6 100644
+--- a/src/sprite.cc
++++ b/src/sprite.cc
+@@ -354,7 +354,7 @@ bool Sprite::Load(unsigned char *Buf,long &P)
+ // Fabrique la surface
+ Image[i]=SDL_CreateRGBSurface((Dim[i].bpp-3)*SDL_SRCALPHA,Dim[i].L,Dim[i].H,Dim[i].bpp*8,
+ 0xff,0xff00,0xff0000,0xff000000*(Dim[i].bpp-3));
+- if(Image[i]<=NULL) {
++ if(Image[i]==NULL) {
+ cerr <<"Impossible de créer une Surface SDL!"<<endl;
+ return false;
+ }
+@@ -488,7 +488,7 @@ bool Sprite::Nouveau(int Lx,int Ly)
+ // Fabrique la surface
+ Image[0]=SDL_CreateRGBSurface((Dim[0].bpp-3)*SDL_SRCALPHA,Dim[0].L,Dim[0].H,Dim[0].bpp*8,
+ 0xff,0xff00,0xff0000,0xff000000*(Dim[0].bpp-3));
+- if(Image[0]<=NULL) {
++ if(Image[0]==NULL) {
+ cerr <<"Impossible de créer une Surface SDL!"<<endl;
+ return false;
+ }
+diff --git a/src/tableau.cc b/src/tableau.cc
+index ddbc096..095bf0a 100644
+--- a/src/tableau.cc
++++ b/src/tableau.cc
+@@ -87,7 +87,7 @@ bool Tableau::Save(void)
+
+ // Alloue la mémoire
+ Buf=new unsigned char [sizeof(s_Tableau)*N+sizeof(int)+1];
+- if(Buf<=0) return false;
++ if(Buf-=0) return false;
+
+ // Charge les tableaux
+ Buf[0]=N/256;
diff --git a/testing/ri-li/ri-li.desktop b/testing/ri-li/ri-li.desktop
new file mode 100644
index 00000000000..a2868381579
--- /dev/null
+++ b/testing/ri-li/ri-li.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1
+Encoding=UTF-8
+Exec=Ri_li %u
+Icon=ri-li.png
+Type=Application
+Categories=Game;ArcadeGame;
+Name=Ri-li
+Comment=Drive a toy wood engine
+Comment[fr]=Conduire un petit train de bois
+Comment[it]=Conduci un piccolo treno di legno
+Terminal=false
+StartupNotify=false
diff --git a/testing/riemann-cli/APKBUILD b/testing/riemann-cli/APKBUILD
new file mode 100644
index 00000000000..8b4e1ae1828
--- /dev/null
+++ b/testing/riemann-cli/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=riemann-cli
+_projname=rust-riemann_client
+# CAUTION: Regenerate Cargo.lock when upgrading to a new version.
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="CLI client for Riemann written in Rust"
+url="https://github.com/borntyping/rust-riemann_client"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust/cargo
+license="MIT"
+makedepends="cargo cargo-auditable"
+# TODO: Convince upstream to include Cargo.lock in repository.
+source="https://github.com/borntyping/rust-riemann_client/archive/v$pkgver/$pkgname-$pkgver.tar.gz
+ no-unstable.patch
+ Cargo.lock
+ "
+builddir="$srcdir/$_projname-$pkgver"
+
+
+prepare() {
+ default_prepare
+ cp "$srcdir"/Cargo.lock "$builddir"/
+}
+
+build() {
+ cargo auditable build --release --locked
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ cargo auditable install --locked --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="
+b2cb8eb8b9fd2bfa21760390d26daaa9e839c210d83dbf1cceb3f2032a7c09b8e213c27592afa8943fbb3d979321a12264c0051a6fbd584cdeee234f1176b73f riemann-cli-0.8.0.tar.gz
+59683264f1fe6aa5e015b229a8bf1f2647d5290b9a605365712894dc5f01aa1e29d628c24b4e98dc355a887504d243ad70d7accf06ee648f5284f14dde56f628 no-unstable.patch
+f11d283c455b879caa28f60dc1837826bd9a6e6ea58035199fed143e3bdf003ba3149e553e27a6572eafcef4694694def3b0f823d8f5fee8efa40d9060f7912c Cargo.lock
+"
diff --git a/testing/riemann-cli/Cargo.lock b/testing/riemann-cli/Cargo.lock
new file mode 100644
index 00000000000..1fa22ebd0e5
--- /dev/null
+++ b/testing/riemann-cli/Cargo.lock
@@ -0,0 +1,117 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "docopt"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "serde",
+ "strsim",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "protobuf"
+version = "2.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b7f4a129bb3754c25a4e04032a90173c68f85168f77118ac4cb4936e7f06f92"
+
+[[package]]
+name = "quote"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "regex"
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19"
+dependencies = [
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
+
+[[package]]
+name = "riemann_client"
+version = "0.8.0"
+dependencies = [
+ "docopt",
+ "libc",
+ "protobuf",
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.125"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.125"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fd9d1e9976102a03c542daa2eff1b43f9d72306342f3f8b3ed5fb8908195d6f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
diff --git a/testing/riemann-cli/no-unstable.patch b/testing/riemann-cli/no-unstable.patch
new file mode 100644
index 00000000000..89724ce6f40
--- /dev/null
+++ b/testing/riemann-cli/no-unstable.patch
@@ -0,0 +1,13 @@
+this is a nightly attribute now apparently
+diff --git a/src/proto/mod_pb.rs b/src/proto/mod_pb.rs
+index 4786797..8cb5695 100644
+--- a/src/proto/mod_pb.rs
++++ b/src/proto/mod_pb.rs
+@@ -6,7 +6,6 @@
+ #![allow(clippy::all)]
+
+ #![allow(unused_attributes)]
+-#![rustfmt::skip]
+
+ #![allow(box_pointers)]
+ #![allow(dead_code)]
diff --git a/testing/rime-plum/APKBUILD b/testing/rime-plum/APKBUILD
new file mode 100644
index 00000000000..d70ebc4dfb3
--- /dev/null
+++ b/testing/rime-plum/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: mio <miyopan@e.email>
+# Maintainer: mio <miyopan@e.email>
+pkgname=rime-plum
+pkgver=0_git20230207
+pkgrel=0
+_gitrev=6f502ff6fa87789847fa18200415318e705bffa4
+pkgdesc="Rime configuration manager and input schemas"
+url="https://github.com/rime/plum"
+license="LGPL-3.0-or-later"
+arch="noarch"
+depends="
+ librime
+ opencc
+ "
+makedepends="
+ bash
+ git
+ librime-tools
+ "
+subpackages="
+ $pkgname-data
+ $pkgname-tools
+ "
+source="$pkgname-$_gitrev.tar.gz::https://github.com/rime/plum/archive/$_gitrev.tar.gz"
+options="!check" # No tests
+builddir="$srcdir"/plum-"$_gitrev"
+
+build() {
+ make preset-bin
+}
+
+package() {
+ depends="
+ $pkgname-data=$pkgver-r$pkgrel
+ $pkgname-tools=$pkgver-r$pkgrel
+ "
+ DESTDIR="$pkgdir" make install
+ install -Dm 755 "$builddir"/rime-install "$pkgdir"/usr/bin/rime-install
+}
+
+data() {
+ pkgdesc="$pkgdesc (input schemas)"
+ amove usr/share/rime-data
+}
+
+tools() {
+ pkgdesc="$pkgdesc (configuration tools)"
+ depends="bash git"
+ amove usr/bin/rime-install
+}
+
+sha512sums="
+682406ec3ea1f4f447f3f1a5283d820b45c909a47cb87c7be87b4c26d5524571210990c0942db02bb3ba83fc6cda36d77dad7a3ce9787a1f6c584c18f9712caf rime-plum-6f502ff6fa87789847fa18200415318e705bffa4.tar.gz
+"
diff --git a/testing/rinetd/APKBUILD b/testing/rinetd/APKBUILD
new file mode 100644
index 00000000000..3bfc85ac244
--- /dev/null
+++ b/testing/rinetd/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Aaron Fischer <mail@aaron-fischer.net>
+# Maintainer: Aaron Fischer <mail@aaron-fischer.net>
+pkgname=rinetd
+pkgver=0.73
+pkgrel=0
+pkgdesc="TCP/UDP port redirector"
+url="https://github.com/samhocevar/rinetd"
+arch="all"
+license="GPL-2.0-only"
+makedepends="
+ autoconf
+ automake
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-openrc
+ "
+source="https://github.com/samhocevar/rinetd/releases/download/v$pkgver/rinetd-$pkgver.tar.bz2
+ $pkgname.initd
+ "
+
+build() {
+ ./bootstrap
+ ./configure \
+ --prefix=/usr \
+ --disable-dependency-tracking \
+ --enable-silent-rules
+ make
+}
+
+check() {
+ # There are no tests at the moment, but the makefile includes an empty test
+ # target, so we include it here to be prepared when there are tests to execute.
+ make test
+}
+
+package() {
+ # Binary
+ install -Dm755 "$pkgname" "$pkgdir/usr/sbin/$pkgname"
+
+ # Configuration
+ install -Dm644 "$pkgname.conf" "$pkgdir/etc/$pkgname.conf"
+ install -Dm755 "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
+
+ # Documentation
+ install -Dm644 "$pkgname.8" "$pkgdir/usr/share/man/man8/$pkgname.8"
+ install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
+ install -Dm644 index.html "$pkgdir/usr/share/doc/$pkgname/index.html"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+sha512sums="
+e5d1c7e5826a75c520453032f6e4651700860505dfced625698fc036249b9f585a894e1fee905321878b2d2a265c843f5a746090311929518594263b33b64ed8 rinetd-0.73.tar.bz2
+3243341cec80d67f972961efdfead0ada2de0ea5f9c980040e048d3fef5a95eefd0954321887a460ad45e22db8f70f584d827a9baa8e5d09fcb424fd51fb0949 rinetd.initd
+"
diff --git a/testing/rinetd/rinetd.initd b/testing/rinetd/rinetd.initd
new file mode 100644
index 00000000000..52895e1f036
--- /dev/null
+++ b/testing/rinetd/rinetd.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+description="TCP/UDP port redirector"
+cfgfile=${cfgfile:-/etc/rinetd.conf}
+command=${command:-/usr/sbin/rinetd}
+command_args="-f -c $cfgfile"
+required_files="$cfgfile"
+
+depend() {
+ need net
+ use dns
+}
+
diff --git a/testing/rio/APKBUILD b/testing/rio/APKBUILD
new file mode 100644
index 00000000000..8d911d521dc
--- /dev/null
+++ b/testing/rio/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=rio
+pkgver=0.0.36
+pkgrel=0
+pkgdesc="A hardware-accelerated GPU terminal emulator powered by WebGPU, focusing to run in desktops and browsers."
+url="https://raphamorim.io/rio"
+arch="all !s390x"
+license="MIT"
+# !check: no tests available
+# net: required to fetch rust dependencies
+options="!check net"
+depends="$pkgname-terminfo"
+makedepends="cargo cargo-auditable cmake expat-dev freetype-dev fontconfig-dev libxcb-dev ncurses python3"
+subpackages="$pkgname-terminfo"
+source="$pkgname-$pkgver.tar.gz::https://github.com/raphamorim/rio/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen --no-default-features --features=x11,wayland
+ tic -e rio -x -o terminfo misc/rio.terminfo
+}
+
+package() {
+ install -Dm755 target/release/rio "$pkgdir"/usr/bin/rio
+ install -Dm644 terminfo/r/rio "$pkgdir"/usr/share/terminfo/r/rio
+
+ # Install desktop files
+ install -Dm644 misc/rio.desktop -t "$pkgdir"/usr/share/applications
+ install -Dm644 misc/logo.svg \
+ "$pkgdir"/usr/share/icons/hicolor/scalable/apps/rio.svg
+}
+
+terminfo() {
+ amove usr/share/terminfo
+}
+
+sha512sums="
+a1657d65c7a0c24d8dc481347a22981ef7fd7410613ae47e3ad740f93993047fad2365f7fbb209bd1abade76aa3924bcde193755b0249e7f554ca1490b094600 rio-0.0.36.tar.gz
+"
diff --git a/testing/ripasso-cursive/APKBUILD b/testing/ripasso-cursive/APKBUILD
new file mode 100644
index 00000000000..1998025ac95
--- /dev/null
+++ b/testing/ripasso-cursive/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Eirik Furuseth <alpine@heplaphon.com>
+pkgname=ripasso-cursive
+_pkgrelname=ripasso
+pkgver=0.6.5
+pkgrel=0
+pkgdesc="A password manager that uses the file format of the standard unix password manager 'pass', implemented in rust."
+url="https://github.com/cortex/ripasso/"
+arch="all !s390x !riscv64 !armhf"
+license="GPL-3.0-or-later"
+makedepends="
+ cargo
+ cargo-auditable
+ clang-dev
+ gpgme-dev
+ libgpg-error-dev
+ libxcb-dev
+ nettle-dev
+ openssl-dev>3
+ "
+source="https://github.com/cortex/ripasso/archive/release-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgrelname-release-$pkgver"
+options="net"
+
+
+prepare() {
+ default_prepare
+ cargo update
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build -p ripasso-cursive --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm0755 target/release/ripasso-cursive \
+ -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+1b6990f96f2e6000530fc5cecdef513c5deb367146d886d41aacdd412c44de8754e6711df6f5535feefdacb6aad68520d6a55868d6f0ba5928412739dcf0bb3a release-0.6.5.tar.gz
+"
diff --git a/testing/ripdrag/APKBUILD b/testing/ripdrag/APKBUILD
new file mode 100644
index 00000000000..2de2e5f9d5a
--- /dev/null
+++ b/testing/ripdrag/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=ripdrag
+pkgver=0.4.7
+pkgrel=0
+pkgdesc="Drag and Drop utilty written in Rust and GTK4"
+url="https://github.com/nik012003/ripdrag"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+ gtk4.0-dev
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/nik012003/ripdrag/archive/refs/tags/v$pkgver.tar.gz
+"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm 755 target/release/ripdrag "$pkgdir"/usr/bin/ripdrag
+}
+
+sha512sums="
+70dd2edcd498798aa9095516992e7cc8f3b3df56ae504bd116e54579a7dbc825e4b3194babe73e5d359902cf993b39379c82ba56645a490ee9584978955d0756 ripdrag-0.4.7.tar.gz
+"
diff --git a/testing/river/APKBUILD b/testing/river/APKBUILD
new file mode 100644
index 00000000000..67246ef4612
--- /dev/null
+++ b/testing/river/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=river
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="Dynamic Tiling Wayland Compositor"
+url="https://codeberg.org/river/river"
+arch="x86_64 aarch64" # limited by zig aport
+license="GPL-3.0-only"
+makedepends="
+ libevdev-dev
+ libxkbcommon-dev
+ pixman-dev
+ scdoc
+ wayland-dev
+ wayland-protocols
+ wlroots-dev
+ zig
+ "
+depends="xwayland seatd"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://codeberg.org/river/river/releases/download/v$pkgver/river-$pkgver.tar.gz"
+
+# We may want other than "baseline" for other targets, when enabled by zig
+case "$CARCH" in
+ aarch64|x86_64) cputarget=baseline ;;
+esac
+
+build() {
+ # This installs it to $builddir/out
+ DESTDIR="$builddir/out" zig build -Doptimize=ReleaseSafe -Dpie -Dxwayland --prefix /usr install \
+ ${cputarget:+-Dcpu="$cputarget"}
+}
+
+check() {
+ zig build test
+}
+
+package() {
+ mkdir -p "$pkgdir"
+ cp -r out/* "$pkgdir"
+
+ # Fix location of pkgconfig files, must be fixed upstream
+ mkdir -p "$pkgdir"/usr/lib
+ mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib
+
+ # Install example configuration
+ install -Dm0644 example/init -t "$pkgdir"/usr/share/doc/river/examples
+}
+
+dev() {
+ default_dev
+ amove usr/share/river-protocols
+}
+
+sha512sums="
+d74aabd01781d76f37cc220413850f793f02e78bd966ce67e1c73d5849a9ea308a2619388202b15ee4108ac3c5f19faea91092fbaccb6de65121a3427d3d05e4 river-0.3.0.tar.gz
+"
diff --git a/testing/rizin-cutter/APKBUILD b/testing/rizin-cutter/APKBUILD
new file mode 100644
index 00000000000..ae0e68cb2d4
--- /dev/null
+++ b/testing/rizin-cutter/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Leon Marz <main@lmarz.org>
+# Maintainer: Leon Marz <main@lmarz.org>
+pkgname=rizin-cutter
+pkgver=2.3.2
+pkgrel=2
+pkgdesc="Reverse Engineering Platform powered by rizin"
+url="https://cutter.re"
+arch="all !armhf" # syntax-highlighting not available
+license="GPL-3.0-only"
+depends="rizin"
+makedepends="
+ cmake
+ graphviz-dev
+ python3-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ rizin-dev
+ samurai
+ syntax-highlighting5-dev
+ "
+subpackages="$pkgname-dev"
+_translations_commit=974298653ba71b958e1b6c83f6011f5fefff6236
+source="https://github.com/rizinorg/cutter/releases/download/v$pkgver/Cutter-v$pkgver-src.tar.gz"
+builddir="$srcdir/Cutter-v$pkgver"
+options="!check" # upstream does not provide a testsuite
+
+build() {
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCUTTER_USE_BUNDLED_RIZIN=OFF \
+ -DCUTTER_USE_ADDITIONAL_RIZIN_PATHS=OFF \
+ -DCUTTER_ENABLE_GRAPHVIZ=ON \
+ -DCUTTER_ENABLE_PYTHON=ON
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+65ca98f6618b1e60efa25d33bb4f3ef6b36dfd8496cf1f40c6a6b9744df3c2f77673d1d3cc1142c1b3b064abd0698ca07a20c5e4009ba5f6b05fc7f7501a4435 Cutter-v2.3.2-src.tar.gz
+"
diff --git a/testing/rizin/APKBUILD b/testing/rizin/APKBUILD
new file mode 100644
index 00000000000..cf877ca2730
--- /dev/null
+++ b/testing/rizin/APKBUILD
@@ -0,0 +1,80 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=rizin
+pkgver=0.6.3
+pkgrel=0
+pkgdesc="UNIX-like reverse engineering framework and command-line toolset"
+url="https://rizin.re/"
+# 32bit - 15/78 big FAIL 0.26s (exit status 1)
+# Could be integer overflow
+# s390x:
+# 49/75 pdb FAIL 0.97s (exit status 1)
+# 55/75 serialize_analysis FAIL 0.03s (exit status 1)
+options="!check" # tests are unstable
+arch="all"
+license="GPL-3.0-or-later AND LGPL-3.0-or-later"
+makedepends="
+ cmake
+ meson
+ py3-yaml
+ capstone-dev
+ file-dev
+ libuv-dev
+ linux-headers
+ libzip-dev
+ lz4-dev
+ openssl-dev>3
+ tree-sitter-dev
+ xxhash-dev
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
+source="$pkgname-$pkgver.tar.xz::https://github.com/rizinorg/rizin/releases/download/v$pkgver/rizin-src-v$pkgver.tar.xz"
+builddir="$srcdir/rizin-v$pkgver"
+
+# secfixes:
+# 0.6.1-r0:
+# - CVE-2023-40022
+# 0.4.1-r0:
+# - CVE-2022-36043
+# - CVE-2022-36040
+# - CVE-2022-36041
+# - CVE-2022-36039
+# - CVE-2022-36044
+# - CVE-2022-36042
+
+build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ CPPFLAGS="$CPPFLAGS -O2" \
+ abuild-meson \
+ -Db_lto=true \
+ -Dpackager="alpinelinux" \
+ -Dpackager_version="$pkgver-r$pkgrel" \
+ -Duse_sys_capstone=enabled \
+ -Duse_capstone_version="v4" \
+ -Duse_sys_magic=enabled \
+ -Duse_sys_libzip=enabled \
+ -Duse_sys_zlib=enabled \
+ -Duse_sys_lz4=enabled \
+ -Duse_sys_xxhash=enabled \
+ -Duse_sys_openssl=enabled \
+ -Duse_sys_tree_sitter=enabled \
+ . output
+ meson compile -C output
+}
+
+check() {
+ # Include the build rizin otherwise
+ # unit/test_rzpipe.c will fail
+ export PATH="$PATH:$builddir/output/binrz/rizin/"
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+031ae1c5b43237d55b3e48d825d4bd9cda16a4a84a47464eb1745a02265a1412e2864345595c0dca7f8ea0cb348fe9760ea424556ff6b915ac8014a7f410b03c rizin-0.6.3.tar.xz
+"
diff --git a/testing/rkdeveloptool/APKBUILD b/testing/rkdeveloptool/APKBUILD
new file mode 100644
index 00000000000..adfb769c14c
--- /dev/null
+++ b/testing/rkdeveloptool/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=rkdeveloptool
+pkgver=1.1.0
+pkgdesc="opensource client for rockusb devices"
+pkgrel=0
+url="https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool"
+arch="all"
+license="GPL-2.0-only"
+source="https://gitlab.com/pine64-org/quartz-bsp/rkdeveloptool/-/archive/$pkgver/rkdeveloptool-$pkgver.tar.gz"
+makedepends="meson libusb-dev eudev-dev scdoc"
+subpackages="$pkgname-doc"
+options="!check" # There is no testsuite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+ff32906924c6bd7027e864d1e417c6e94119a379db2dd6ffdf0c04af666fbb1be787e0a4fad298f87b6ab51696c74ccc51ed9d5a22a59079bbadcc00c0ea4ff1 rkdeveloptool-1.1.0.tar.gz
+"
diff --git a/testing/rke/APKBUILD b/testing/rke/APKBUILD
new file mode 100644
index 00000000000..2d29d3cf40d
--- /dev/null
+++ b/testing/rke/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Lucas Ramage <lucas.ramage@infinite-omicron.com>
+# Maintainer: Lucas Ramage <lucas.ramage@infinite-omicron.com>
+pkgname=rke
+pkgver=1.4.3
+pkgrel=7
+pkgdesc="Rancher Kubernetes Engine"
+options="!check net chmod-clean"
+url="https://github.com/rancher/rke"
+license="Apache-2.0"
+arch="all"
+makedepends="go"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rancher/rke/archive/v$pkgver.tar.gz"
+
+# secfixes:
+# 1.3.2-r0:
+# - CVE-2021-25742
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "-X main.VERSION=v$pkgver"
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
+}
+
+sha512sums="
+a87aa0f71dff96e40f53e758fe588f0f941844bfdf30610a528b835622af45426b4af789a7beee35796ecc3bc7fcbb7831bc28168fdb67a093adf9f9f4e05542 rke-1.4.3.tar.gz
+"
diff --git a/testing/rlottie/APKBUILD b/testing/rlottie/APKBUILD
new file mode 100644
index 00000000000..641f9ea3791
--- /dev/null
+++ b/testing/rlottie/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=rlottie
+pkgver=0.2_git20230831
+_gitrev=d40008707addacb636ff435236d31c694ce2b6cf
+pkgrel=0
+pkgdesc="A platform independent standalone library that plays Lottie Animation"
+url="https://github.com/Samsung/rlottie"
+arch="all"
+license="MIT AND BSD-3-Clause AND MPL-2.0"
+makedepends="ninja meson"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Samsung/rlottie/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ meson --prefix /usr build
+
+ ninja -C build
+}
+
+check() {
+ ninja -C build test
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C build install
+
+ install -Dm 644 "COPYING" "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ for f in licenses/*
+ do
+ install -Dm 644 "$f" "$pkgdir/usr/share/licenses/$pkgname/$f"
+ done
+}
+
+sha512sums="
+025456a20d25e015612e871b50cd85b6fb1bbfdf9a2122f0789fafcfe7f85594dc50838088fadbb3f7cdcd86e61061def6a94407f9e0fc4359533a460d8ac427 rlottie-0.2_git20230831.tar.gz
+"
diff --git a/testing/rlwrap/APKBUILD b/testing/rlwrap/APKBUILD
deleted file mode 100644
index 19221f8e46d..00000000000
--- a/testing/rlwrap/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=rlwrap
-pkgver=0.43
-pkgrel=1
-pkgdesc="A readline wrapper"
-url="https://github.com/hanslub42/rlwrap"
-arch="all"
-license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends="$depends_dev readline-dev ncurses-dev"
-install=""
-subpackages="$pkgname-doc"
-source="https://github.com/hanslub42/rlwrap/releases/download/v$pkgver/rlwrap-$pkgver.tar.gz"
-builddir="$srcdir/rlwrap-$pkgver"
-
-build() {
- cd "$builddir"
- ./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
-}
-
-sha512sums="4a1440b2eef3a1664c6381eb09c19f4030de2c0ef4f1f3509f7d6e130d3c5e9c3ceb00fc6ea6052b22bbe1f6b162f72e0b47564df34ccecc5220f195c22e86a1 rlwrap-0.43.tar.gz"
diff --git a/testing/rmlint/APKBUILD b/testing/rmlint/APKBUILD
new file mode 100644
index 00000000000..0392d9d8437
--- /dev/null
+++ b/testing/rmlint/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=rmlint
+pkgver=2.10.2
+pkgrel=1
+pkgdesc="Remove duplicates and other lint from your filesystem"
+url="https://rmlint.readthedocs.io/en/latest/"
+arch="all"
+license="GPL-3.0-only"
+makedepends="scons python3 glib-dev json-glib-dev elfutils-dev py3-sphinx"
+checkdepends="dash py3-nose py3-parameterized py3-psutil"
+subpackages="$pkgname-doc $pkgname-lang $pkgname-shredder-pyc $pkgname-shredder:shredder:noarch"
+source="https://github.com/sahib/rmlint/archive/v$pkgver/rmlint-v$pkgver.tar.gz
+ remove-usage-of-lseek64.patch
+ "
+options="!check" # awaiting upstream fixes to test suite
+ # https://github.com/sahib/rmlint/issues/593
+
+build() {
+ scons config
+ scons -j $JOBS --prefix="$pkgdir"/usr --actual-prefix=/usr
+}
+
+check() {
+ scons test
+}
+
+package() {
+ scons --prefix=$pkgdir/usr install --actual-prefix=/usr
+ rm -f "$pkgdir/usr/share/glib-2.0/schemas/gschemas.compiled"
+}
+
+shredder() {
+ depends="polkit gtksourceview py3-cairo dconf py3-gobject3 librsvg xdg-utils"
+ amove usr/lib
+ amove usr/share/applications
+ amove usr/share/glib-2.0
+ amove usr/share/icons
+}
+
+sha512sums="
+8f8d58892785e9012cb15f3e89480d9d04772fa3f923064520bf17afcc8948b1a24d6f8399176a1a26bd5036553c605958f3720e40cf6cba135a4f3381131180 rmlint-v2.10.2.tar.gz
+f77bf8d77bf7d7c83a91a97ed79733b11ea55bd1814ba13262349a4ebd29bf8de4e76b0a082676c634ef83106953097dae1d6faddfa6aa9866a7cf41ed158b18 remove-usage-of-lseek64.patch
+"
diff --git a/testing/rmlint/remove-usage-of-lseek64.patch b/testing/rmlint/remove-usage-of-lseek64.patch
new file mode 100644
index 00000000000..4c1de3f5a89
--- /dev/null
+++ b/testing/rmlint/remove-usage-of-lseek64.patch
@@ -0,0 +1,18 @@
+--- a/lib/utilities.h
++++ b/lib/utilities.h
+@@ -129,14 +127,8 @@
+
+ static inline gint64 rm_sys_preadv(int fd, const struct iovec *iov, int iovcnt,
+ RmOff offset) {
+-#if RM_IS_APPLE || RM_IS_CYGWIN
++#if RM_IS_APPLE || RM_IS_CYGWIN || RM_PLATFORM_32
+ if(lseek(fd, offset, SEEK_SET) == -1) {
+- rm_log_perror("seek in emulated preadv failed");
+- return 0;
+- }
+- return readv(fd, iov, iovcnt);
+-#elif RM_PLATFORM_32
+- if(lseek64(fd, offset, SEEK_SET) == -1) {
+ rm_log_perror("seek in emulated preadv failed");
+ return 0;
+ }
diff --git a/testing/rnote/APKBUILD b/testing/rnote/APKBUILD
new file mode 100644
index 00000000000..e4de04a55d9
--- /dev/null
+++ b/testing/rnote/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=rnote
+pkgver=0.10.2
+pkgrel=0
+pkgdesc="Sketch and take handwritten notes."
+url="https://rnote.flxzt.net/"
+# ppc64le: vendored abseil, not possible to override to system
+# armhf: doesn't build
+# s390x: mainframe
+arch="all !armhf !s390x !ppc64le"
+license="GPL-3.0-or-later"
+makedepends="
+ alsa-lib-dev
+ appstream-glib-dev
+ appstream-dev
+ cargo
+ clang-dev
+ cmake
+ desktop-file-utils
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ poppler-dev
+ "
+subpackages="$pkgname-lang $pkgname-cli:cli"
+source="
+ https://github.com/flxzt/rnote/archive/refs/tags/v$pkgver/rnote-$pkgver.tar.gz
+"
+options="net"
+
+export CARGO_PROFILE_RELEASE_LTO=thin
+
+build() {
+ abuild-meson \
+ . output
+
+ meson configure -Dcli=true output
+ meson compile -C output
+}
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+cli() {
+ pkgdesc="Convert files to and from .rnote"
+
+ amove usr/bin/rnote-cli
+}
+
+sha512sums="
+27aa48f8dafca39fc5a024962ad9cccb6191c72bfcc828283b5541326f6ce8c56b0be3ebad7795a9ab71cbea8e38dab2ea42d70e0b97dd3b2c14f8fcb84ef260 rnote-0.10.2.tar.gz
+"
diff --git a/testing/rocksdb/10-support-busybox-install.patch b/testing/rocksdb/10-support-busybox-install.patch
deleted file mode 100644
index 1e20378c33b..00000000000
--- a/testing/rocksdb/10-support-busybox-install.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -1548,14 +1548,14 @@
- install -d $(INSTALL_PATH)/$$header_dir; \
- done
- for header in `$(FIND) "include/rocksdb" -type f -name *.h`; do \
-- install -C -m 644 $$header $(INSTALL_PATH)/$$header; \
-+ install -c -m 644 $$header $(INSTALL_PATH)/$$header; \
- done
-
- install-static: install-headers $(LIBRARY)
-- install -C -m 755 $(LIBRARY) $(INSTALL_PATH)/lib
-+ install -c -m 755 $(LIBRARY) $(INSTALL_PATH)/lib
-
- install-shared: install-headers $(SHARED4)
-- install -C -m 755 $(SHARED4) $(INSTALL_PATH)/lib && \
-+ install -c -m 755 $(SHARED4) $(INSTALL_PATH)/lib && \
- ln -fs $(SHARED4) $(INSTALL_PATH)/lib/$(SHARED3) && \
- ln -fs $(SHARED4) $(INSTALL_PATH)/lib/$(SHARED2) && \
- ln -fs $(SHARED4) $(INSTALL_PATH)/lib/$(SHARED1)
diff --git a/testing/rocksdb/APKBUILD b/testing/rocksdb/APKBUILD
deleted file mode 100644
index 7b77ab8a762..00000000000
--- a/testing/rocksdb/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: James Bowes <jbowes@repl.ca>
-# Maintainer:
-pkgname=rocksdb
-pkgver=5.15.10
-pkgrel=4
-pkgdesc="A persistent key-value store for fast storage environments"
-url="https://rocksdb.org"
-# fails to build on other archs
-arch="x86 x86_64 ppc64le"
-license="GPL-2.0"
-depends=""
-depends_dev="bzip2-dev snappy-dev zlib-dev lz4-dev zstd-dev"
-makedepends="$depends_dev linux-headers bash perl"
-install=""
-subpackages="$pkgname-dev $pkgname-doc"
-options="!check" # no upstream/available test-suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/facebook/$pkgname/archive/v$pkgver.tar.gz
- ppc64le-determine-platform.patch
- 10-support-busybox-install.patch"
-
-_builddir="$srcdir/$pkgname-$pkgver"
-build() {
- cd "$_builddir"
- make shared_lib
-}
-
-package() {
- cd "$_builddir"
- INSTALL_PATH="$pkgdir"/usr make install-shared
- install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
- mkdir -p "$pkgdir"/usr/share/doc
- cp -a docs "$pkgdir"/usr/share/doc/$pkgname
- install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
- install -Dm644 HISTORY.md "$pkgdir"/usr/share/doc/$pkgname/HISTORY.md
-}
-
-sha512sums="3faef43cc343c20e044f92af7cd9eae9783612d888bfe17b7d0ae6812090088f43a128e5686600ec56f5a88c100eaa893b2551f8c32df793a4ccd94330c07037 rocksdb-5.15.10.tar.gz
-a7445cf958e414b6eac8a4f05e82fa980c00276da7305a158f3fa77f71bdff606713cd88fae8db0b9fb97125fef646e9e6245fef3a3f2e97d0ef20be259fb37d ppc64le-determine-platform.patch
-2b33041baa061e6cedfcbc606fd9752d907ebba84cb76ff13641ac4683e614e527530453bcbe0e0c6b67b36415dee477aec268024a05b8815c534f4d6bfb6cc0 10-support-busybox-install.patch"
diff --git a/testing/rocksdb/ppc64le-determine-platform.patch b/testing/rocksdb/ppc64le-determine-platform.patch
deleted file mode 100644
index 05bee961879..00000000000
--- a/testing/rocksdb/ppc64le-determine-platform.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/build_tools/build_detect_platform
-+++ b/build_tools/build_detect_platform
-@@ -507,7 +507,7 @@
- if test -z "$PORTABLE"; then
- if test -n "`echo $TARGET_ARCHITECTURE | grep ^ppc64`"; then
- # Tune for this POWER processor, treating '+' models as base models
-- POWER=`LD_SHOW_AUXV=1 /bin/true | grep AT_PLATFORM | grep -E -o power[0-9]+`
-+ POWER=`cat /proc/cpuinfo | grep -m1 -E -o POWER[0-9]+ | awk '{print tolower($0)}'`
- COMMON_FLAGS="$COMMON_FLAGS -mcpu=$POWER -mtune=$POWER "
- elif test -n "`echo $TARGET_ARCHITECTURE | grep ^s390x`"; then
- COMMON_FLAGS="$COMMON_FLAGS -march=z10 "
diff --git a/testing/rofi-blocks/APKBUILD b/testing/rofi-blocks/APKBUILD
new file mode 100644
index 00000000000..9da3fbdfd5e
--- /dev/null
+++ b/testing/rofi-blocks/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=rofi-blocks
+pkgver=0_git20210123
+# Upstream doesn't do releases (https://github.com/OmarCastro/rofi-blocks/issues/25).
+_gitrev=c84577749f71f6c0836fc7ca7ec0097d2fe66492
+pkgrel=0
+pkgdesc="Rofi modi that allows controlling rofi content throug communication with an external program"
+url="https://github.com/OmarCastro/rofi-blocks"
+arch="all"
+license="GPL-3.0-or-later"
+depends="cmd:rofi"
+makedepends="
+ autoconf
+ automake
+ json-glib-dev
+ libtool
+ rofi-dev
+ "
+source="https://github.com/OmarCastro/rofi-blocks/archive/$_gitrev/rofi-blocks-$_gitrev.tar.gz
+ fix-missing-include.patch
+ fix-check_page_data.patch
+ fix-format-long-int.patch
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ default_prepare
+
+ autoreconf -i
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make -j1
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+93f988aee9f1fc333b639acb9c6f3769f8e9b4d3a4ff2b996d8d3866ba69ccbfdbdeecabc66b299d904757626bcf1d283943936dcb09439f0c519ddc813eac04 rofi-blocks-c84577749f71f6c0836fc7ca7ec0097d2fe66492.tar.gz
+27c5f88809c2e5da814ed06cc91b82ce1267ae134b9dffa7f1685415f5f2404b7bdd607b075d1aa4fa4bcb6b56d52d2d3c9a32866ee648fd765ee431ab2e4b54 fix-missing-include.patch
+3a44de8075338ddce2773960f47d7fa8740229a272bb056c0e742a0755e4fc0aa8dbd3f141c0e8d83f547779ae967836cad7d3c4d274951369d75c2c806a5b80 fix-check_page_data.patch
+e3435a639d4ac30e30d897e5a3e7dab5e084ef78006e4def8422d5334c8ed2dc7b0b21f0140c21c264279437c1c8fef1e5d4c577fea4da82e9bf181794c0bdaf fix-format-long-int.patch
+"
diff --git a/testing/rofi-blocks/fix-check_page_data.patch b/testing/rofi-blocks/fix-check_page_data.patch
new file mode 100644
index 00000000000..2f24a6090a7
--- /dev/null
+++ b/testing/rofi-blocks/fix-check_page_data.patch
@@ -0,0 +1,31 @@
+Patch-Source: https://github.com/OmarCastro/rofi-blocks/pull/28
+--
+From f1b36b2198e9d507903a9d626131f7070a6dfc79 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 1 Feb 2022 19:16:24 +0100
+Subject: [PATCH] test: Fix outdated page_data_add_line call in check_page_data
+
+ check_page_data.c:18:5: error: too few arguments to function 'page_data_add_line'
+ 18 | page_data_add_line(page_data, "aaa", true, true, true);
+ | ^~~~~~~~~~~~~~~~~~
+ In file included from check_page_data.c:4:
+ ../src/page_data.h:58:6: note: declared here
+ 58 | void page_data_add_line(PageData * pageData, const gchar * label, const gchar * icon, const gchar * data, gboolean urgent, gboolean highlight, gboolean markup);
+ | ^~~~~~~~~~~~~~~~~~
+---
+ tests/check_page_data.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/check_page_data.c b/tests/check_page_data.c
+index 23c559a..31e6089 100644
+--- a/tests/check_page_data.c
++++ b/tests/check_page_data.c
+@@ -15,7 +15,7 @@ int main(void)
+ test_uint_equals(.result = page_data_get_number_of_lines(page_data), .expected = 0);
+
+
+- page_data_add_line(page_data, "aaa", true, true, true);
++ page_data_add_line(page_data, "aaa", "any-icon", "any-data", true, true, true);
+ test_string_equals(.result = page_data_get_line_by_index_or_else(page_data, 0, NULL)->text, .expected= "aaa");
+ test_true(page_data_get_line_by_index_or_else(page_data, -1, NULL) == NULL);
+ test_true(page_data_get_line_by_index_or_else(NULL, 0, NULL) == NULL);
diff --git a/testing/rofi-blocks/fix-format-long-int.patch b/testing/rofi-blocks/fix-format-long-int.patch
new file mode 100644
index 00000000000..7dbe1b68978
--- /dev/null
+++ b/testing/rofi-blocks/fix-format-long-int.patch
@@ -0,0 +1,35 @@
+Patch-Source: https://github.com/OmarCastro/rofi-blocks/pull/29
+--
+From 260638614cbe42c06d9ebb651953d6dacf7bab8d Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 1 Feb 2022 19:21:45 +0100
+Subject: [PATCH] fix: Fix format string in blocks.c - use %li instead of %i
+
+ blocks.c:224:21: warning: format '%i' expects argument of type 'int', but argument 4 has type 'gint64' {aka 'long int'} [-Wformat=]
+ 224 | g_debug("entry_to_focus %i", entry_to_focus);
+ | ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
+ | |
+ | gint64 {aka long int}
+ blocks.c:224:38: note: format string is defined here
+ 224 | g_debug("entry_to_focus %i", entry_to_focus);
+ | ~^
+ | |
+ | int
+ | %li
+---
+ src/blocks.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/blocks.c b/src/blocks.c
+index 0fbca76..99274b1 100644
+--- a/src/blocks.c
++++ b/src/blocks.c
+@@ -221,7 +221,7 @@ static gboolean on_new_input ( GIOChannel *source, GIOCondition condition, gpoin
+
+ if(willFocusToEntry){
+ RofiViewState * rofiViewState = rofi_view_get_active();
+- g_debug("entry_to_focus %i", entry_to_focus);
++ g_debug("entry_to_focus %li", entry_to_focus);
+ rofi_view_set_selected_line(rofiViewState, (unsigned int) entry_to_focus);
+ }
+
diff --git a/testing/rofi-blocks/fix-missing-include.patch b/testing/rofi-blocks/fix-missing-include.patch
new file mode 100644
index 00000000000..fe7cba03b2a
--- /dev/null
+++ b/testing/rofi-blocks/fix-missing-include.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/OmarCastro/rofi-blocks/pull/27
+--
+From 27c812142531ccb2dd8c22406ac85a8aa40fec94 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 1 Feb 2022 19:06:54 +0100
+Subject: [PATCH] fix: Fix error unknown type name 'JsonNode' in page_data.h
+
+Fixes the following compile error:
+
+ In file included from check_page_data.c:4:
+ ../src/page_data.h:59:56: error: unknown type name 'JsonNode'
+ 59 | void page_data_add_line_json_node(PageData * pageData, JsonNode * element);
+---
+ src/page_data.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/page_data.h b/src/page_data.h
+index 5cd8f46..a4267d7 100644
+--- a/src/page_data.h
++++ b/src/page_data.h
+@@ -5,6 +5,7 @@
+ #define ROFI_BLOCKS_PAGE_DATA_H
+ #include <gmodule.h>
+ #include <stdint.h>
++#include <json-glib/json-glib.h>
+ typedef enum
+ {
+ MarkupStatus_UNDEFINED = 0,
diff --git a/testing/rofi-json-menu/APKBUILD b/testing/rofi-json-menu/APKBUILD
new file mode 100644
index 00000000000..d60ba4b00c4
--- /dev/null
+++ b/testing/rofi-json-menu/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=rofi-json-menu
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Plugin to use rofi for custom menus"
+url="https://github.com/marvinkreis/rofi-json-menu"
+arch="all"
+license="MIT"
+depends="cmd:rofi"
+makedepends="
+ cmake
+ json-c-dev
+ rofi-dev
+ "
+source="https://github.com/marvinkreis/rofi-json-menu/archive/$pkgver/rofi-json-menu-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ local crossopts=
+ if [ "$CBUILD" != "$CHOST" ]; then
+ crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ $crossopts .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7936cea77aebd8163c285a0ef0c699fedb6a3de03b7e98ceee79b21b4d5519032968b3a31397c60270c5bf3e4b62450d05af185e324b1ac503ae358c09e7e3e0 rofi-json-menu-0.2.0.tar.gz
+"
diff --git a/testing/rofi-pass/APKBUILD b/testing/rofi-pass/APKBUILD
index 4c1ad907280..1603160c7a0 100644
--- a/testing/rofi-pass/APKBUILD
+++ b/testing/rofi-pass/APKBUILD
@@ -1,19 +1,29 @@
# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
-pkgname="rofi-pass"
-pkgver="2.0.2"
-pkgrel=0
+pkgname=rofi-pass
+pkgver=2.0.2
+pkgrel=2
pkgdesc="rofi frontend for pass"
url="https://github.com/carnager/rofi-pass"
-arch="" # disabled because rofi is also disabled
+arch="noarch !s390x !riscv64" # limited by rofi
license="GPL-3.0-only"
-depends="xdg-utils rofi pass gawk pwgen xdotool xclip"
+depends="
+ bash
+ cmd:gawk
+ cmd:pwgen
+ cmd:rofi pass
+ cmd:xclip
+ cmd:xdg-open
+ cmd:xdotool
+ "
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/carnager/rofi-pass/archive/$pkgver.tar.gz"
-options="!check" # No tests
+source="https://github.com/carnager/rofi-pass/archive/$pkgver/$pkgname-$pkgver.tar.gz"
+options="!check" # no tests
package() {
- make -C "$builddir" DESTDIR="$pkgdir" PREFIX="/usr" install
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
}
-sha512sums="28f59696911089c31b3f17bde281e3d79c3f757ecc4da61386719c6cff9b31c0944a2ac549d7838f06c249d4535c0dc107ba684115f15db42a24bfdb2f575437 rofi-pass-2.0.2.tar.gz"
+sha512sums="
+28f59696911089c31b3f17bde281e3d79c3f757ecc4da61386719c6cff9b31c0944a2ac549d7838f06c249d4535c0dc107ba684115f15db42a24bfdb2f575437 rofi-pass-2.0.2.tar.gz
+"
diff --git a/testing/rosdep/APKBUILD b/testing/rosdep/APKBUILD
new file mode 100644
index 00000000000..3d47818e6ec
--- /dev/null
+++ b/testing/rosdep/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Russ Webber <russ@rw.id.au>
+# Maintainer: Russ Webber <russ@rw.id.au>
+pkgname=rosdep
+pkgver=0.19.0
+pkgrel=5
+pkgdesc="ROS multi-package manager system dependency tool"
+url="http://ros.org/wiki/rosdep"
+arch="noarch"
+license="BSD-3-Clause"
+options="!check" # tests are not very robust https://github.com/ros-infrastructure/rosdep/issues/765
+depends="python3 py3-yaml py3-catkin-pkg py3-rosdistro py3-rospkg"
+makedepends="py3-setuptools"
+checkdepends="py3-nose py3-mock py3-flake8"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ros-infrastructure/rosdep/archive/$pkgver.tar.gz"
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ nosetests --cover-package=rospkg --with-xunit test
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="3e1d5829689646d583da2eaaf3b8bbddec3cb4ca3dc3941ee2697f6367510a4dcff11984fa1792a400f49132778d7869f0a8274e42bc8c04f2e326e6a663c494 rosdep-0.19.0.tar.gz"
diff --git a/testing/rosenpass/APKBUILD b/testing/rosenpass/APKBUILD
new file mode 100644
index 00000000000..58baf3c4d1f
--- /dev/null
+++ b/testing/rosenpass/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: guddaff <alpine@guddaff.de>
+# Maintainer: guddaff <alpine@guddaff.de>
+pkgname=rosenpass
+pkgver=0.2.1
+pkgrel=0
+pkgdesc="Formally verified, post-quantum secure VPN using WireGuard"
+url="https://rosenpass.eu/"
+license="MIT OR Apache-2.0"
+# armv7/riscv64 cmake fails (OQS), armhf build freezes
+arch="all !armv7 !armhf !riscv64 "
+makedepends="cargo clang-dev cmake libsodium-dev linux-headers cargo-auditable"
+source="https://github.com/rosenpass/rosenpass/archive/v$pkgver/rosenpass-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked --target="$CTARGET"
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/rosenpass rp -t "$pkgdir"/usr/sbin/
+}
+
+sha512sums="
+91d6c3dd201849dea99431201e6bbe393c056dcdba6f612bea6fb33c9d9f5bdb749aadfed66ed0e0a3ed25a579d83719b8ad90062132eb0158fd712b3fa1d2eb rosenpass-0.2.1.tar.gz
+"
diff --git a/testing/roswell/APKBUILD b/testing/roswell/APKBUILD
new file mode 100644
index 00000000000..dd68bebfdd3
--- /dev/null
+++ b/testing/roswell/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Lucas Ramage <lucas.ramage@infinite-omicron.com>
+# Maintainer: Lucas Ramage <lucas.ramage@infinite-omicron.com>
+pkgname=roswell
+pkgver=22.12.14.113
+pkgrel=0
+pkgdesc="Common Lisp environment setup Utility"
+url="https://roswell.github.io"
+arch="all"
+license="MIT"
+makedepends="automake autoconf curl-dev"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/roswell/roswell/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-sbcl-bin-variant=-musl
+ make
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+}
+
+sha512sums="
+f102297af67b5d5414f853fc428f39347cb09a604bff95ad50c7f5249582a053e00fa3bb59a52846e3afc8244b8de1a7ee4667847b829f7d176121c496fd038f roswell-22.12.14.113.tar.gz
+"
diff --git a/testing/rpg-cli/APKBUILD b/testing/rpg-cli/APKBUILD
new file mode 100644
index 00000000000..8369e4ffede
--- /dev/null
+++ b/testing/rpg-cli/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=rpg-cli
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Your filesystem as a dungeon!"
+url="https://github.com/facundoolano/rpg-cli"
+license="MIT"
+arch="all !s390x !riscv64" # blocked by rust/cargo
+makedepends="cargo cargo-auditable"
+source="https://github.com/facundoolano/rpg-cli/archive/$pkgver/rpg-cli-$pkgver.tar.gz"
+
+
+build() {
+ cargo auditable build --release --locked
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ install -Dm755 target/release/rpg-cli "$pkgdir"/usr/bin/rpg-cli
+}
+
+sha512sums="
+bc255daf4f1bfae68c5d0fe5dec79d86ea6f2d59384537836a99063bfdcae4219d40c859904c50e60b4a025736520c0eb6468ca520a3abce5b506407e6b4bbe3 rpg-cli-1.0.1.tar.gz
+"
diff --git a/testing/rss-email/APKBUILD b/testing/rss-email/APKBUILD
new file mode 100644
index 00000000000..c7a11a7507e
--- /dev/null
+++ b/testing/rss-email/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Thomas Böhler <witcher@wiredspace.de>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=rss-email
+pkgdesc="Send RSS/Atom posts as email"
+pkgver=0.4.5
+pkgrel=0
+url="https://git.sr.ht/~witcher/rss-email"
+# ppc64le, s390x, riscv64: rust-ring
+arch="all !ppc64le !s390x !riscv64"
+license="WTFPL"
+makedepends="
+ cargo
+ cargo-auditable
+ scdoc
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~witcher/rss-email/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # no tests
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+ scdoc < docs/rss-email.1.scd > rss-email.1
+ scdoc < docs/rss-email.5.scd > rss-email.5
+}
+
+package() {
+ install -Dm755 target/release/rss-email "$pkgdir"/usr/bin/rss-email
+ install -Dm644 rss-email.1 "$pkgdir"/usr/share/man/man1/rss-email.1
+ install -Dm644 rss-email.5 "$pkgdir"/usr/share/man/man5/rss-email.5
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/"$pkgname"/README.md
+ install -Dm644 config.example.toml "$pkgdir"/usr/share/"$pkgname"/config.toml
+}
+
+
+sha512sums="
+e12715288789240a81ac48d6e81dca63ebb4ca08ff82ea16e49a785e1c673c08e3da18635df94fc4f2165e68a0323454d627a172ed4ae1a1ef1735186a3f9e17 rss-email-0.4.5.tar.gz
+"
diff --git a/testing/rsstail/APKBUILD b/testing/rsstail/APKBUILD
index 6f819ca0f05..afeaa197459 100644
--- a/testing/rsstail/APKBUILD
+++ b/testing/rsstail/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=rsstail
pkgver=2.1
-pkgrel=0
+pkgrel=1
pkgdesc="tail for rss feeds"
url="https://www.vanheusden.com/rsstail/"
arch="all"
diff --git a/testing/rtl-power-fftw/APKBUILD b/testing/rtl-power-fftw/APKBUILD
new file mode 100644
index 00000000000..bf05aa929d2
--- /dev/null
+++ b/testing/rtl-power-fftw/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=rtl-power-fftw
+pkgver=20200601
+_commit="cee9a22207ea995bd12adbc6bcfbec92521548b1"
+pkgrel=4
+pkgdesc="A program that obtains a power spectrum from RTL devices using FFTW"
+url="https://github.com/AD-Vega/rtl-power-fftw"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cmake
+ fftw-dev
+ libusb-dev
+ librtlsdr-dev
+ samurai
+ tclap-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/AD-Vega/rtl-power-fftw/archive/$_commit.tar.gz
+ missing-cstdint.patch
+ "
+subpackages="$pkgname-doc"
+options="!check" # no tests provided
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -Wno-dev
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+1d7db0df54b84a38bf8024558b42657a00f6432912ea1d4312d8c83fc0147f3a912df529e16db63dedc07518161cd9c7b96c969c53dde374a1b270d15e721189 rtl-power-fftw-20200601.tar.gz
+60ecfc0aaf03bd6589fab7c040b40be74c10b4ab0f5bffa95f8f2845d7f3fb55f07b950253ab7785825f8da2038ad98941d89d20734a951fe45bb55a2091943a missing-cstdint.patch
+"
diff --git a/testing/rtl-power-fftw/missing-cstdint.patch b/testing/rtl-power-fftw/missing-cstdint.patch
new file mode 100644
index 00000000000..267759bb976
--- /dev/null
+++ b/testing/rtl-power-fftw/missing-cstdint.patch
@@ -0,0 +1,12 @@
+diff --git a/src/params.cxx b/src/params.cxx
+index fcf521f..4d0de69 100644
+--- a/src/params.cxx
++++ b/src/params.cxx
+@@ -21,6 +21,7 @@
+ #include <list>
+ #include <math.h>
+ #include <string>
++#include <cstdint>
+ #include <tclap/CmdLine.h>
+
+ #include "params.h"
diff --git a/testing/rtl8812au-src/APKBUILD b/testing/rtl8812au-src/APKBUILD
new file mode 100644
index 00000000000..a1ce76d0af4
--- /dev/null
+++ b/testing/rtl8812au-src/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Bader Zaidan <bader@zaidan.tech>
+pkgname=rtl8812au-src
+_modname=88XXau
+_modver=5.6.4.2
+# no tags, just release branches
+_gitrev=4a983e47dafc048019412350d36270864f6b5f2d
+pkgver=${_modver}_git20231103
+pkgrel=0
+pkgdesc="RTL8812AU/21AU and RTL8814AU wireless drivers"
+url="https://github.com/aircrack-ng/rtl8812au"
+# Currently only x86 and x86_64 is tested, arm(64) is TODO
+arch="x86 x86_64 aarch64 armv7"
+license="GPL-2.0-or-later"
+depends="akms"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/aircrack-ng/rtl8812au/archive/$_gitrev.tar.gz"
+builddir="$srcdir/rtl8812au-$_gitrev"
+options="!check" # No test suite, only sources
+
+prepare() {
+ default_prepare
+
+ cat >AKMBUILD <<-EOF
+ modname=$_modname
+ modver=$_modver
+ built_modules=$_modname.ko
+
+ build() {
+ cp -r "\$srcdir"/* .
+ make \$MAKEFLAGS KVER="\$kernel_ver" KSRC="\$kernel_srcdir" modules
+ }
+ EOF
+}
+
+package() {
+ local destdir="$pkgdir/usr/src/$_modname-$pkgver"
+ install -Dm644 -t "$destdir" AKMBUILD Makefile
+ cp -r core hal include os_dep platform "$destdir"
+}
+
+sha512sums="
+95612734bc1ae349aec7375af910a3acfdb4f1214566c5fc802f766b1d46a8c1cb0663dfe1195c89801926c3b64f61634b3c3dd355dd6b7cf03af9b0efb733ac rtl8812au-src-4a983e47dafc048019412350d36270864f6b5f2d.tar.gz
+"
diff --git a/testing/rtl8821ce-src/APKBUILD b/testing/rtl8821ce-src/APKBUILD
new file mode 100644
index 00000000000..4640d64d258
--- /dev/null
+++ b/testing/rtl8821ce-src/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
+pkgname=rtl8821ce-src
+_commit=a478095a45d8aa957b45be4f9173c414efcacc6f
+_modname=${pkgname%-src}
+pkgver=5_git20230504
+pkgrel=0
+pkgdesc="Wifi drivers for Realtek 8821ce (src, AKMS)"
+url="https://github.com/tomaspinho/rtl8821ce"
+arch="x86_64 x86" # Module supports these arches
+license="GPL-2.0-only"
+options="!check" # No test suite
+source="$pkgname-$_commit.tar.gz::https://github.com/tomaspinho/rtl8821ce/archive/$_commit.tar.gz"
+builddir="$srcdir/$_modname-$_commit"
+
+prepare() {
+ default_prepare
+
+ cat >AKMBUILD <<-EOF
+ modname=$_modname
+ modver=$pkgver
+ built_modules=8821ce.ko
+
+ # This module doesn't support building outside of its source dir.
+ build() {
+ cp -r "\$srcdir"/* .
+ make \$MAKEFLAGS KVER="\$kernel_ver" KSRC="\$kernel_srcdir"
+ }
+ EOF
+}
+
+package() {
+ local destdir="$pkgdir/usr/src/$_modname-$pkgver"
+ install -Dm0644 -t "$destdir" AKMBUILD Makefile halmac.mk rtl8821c.mk
+ cp -r core hal include os_dep platform "$destdir"
+}
+
+sha512sums="
+fcaaf26947f72cd57aa79092bd8c62ac60482cd1029c11ec16fcc0e56d2cc0578086449aab3cf12c5a128c13ffeb952d0f620d099d3d19f04d6a3ae7f0ff75ba rtl8821ce-src-a478095a45d8aa957b45be4f9173c414efcacc6f.tar.gz
+"
diff --git a/testing/rtl88x2bu-src/APKBUILD b/testing/rtl88x2bu-src/APKBUILD
new file mode 100644
index 00000000000..ec846461fba
--- /dev/null
+++ b/testing/rtl88x2bu-src/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=rtl88x2bu-src
+_modname=${pkgname%-src}
+_projname=RTL88x2BU-Linux-Driver
+pkgver=5.13.1_git20230711
+# No git tags in the repo, but they use version numbers.
+_gitrev=12cfcd8cd8ec7115158df3d223510435541ddc32
+pkgrel=0
+pkgdesc="Kernel module for Realtek rtl88x2bu WiFi chipset (sources, AKMS)"
+url="https://github.com/RinCat/RTL88x2BU-Linux-Driver"
+arch="noarch"
+license="GPL-2.0"
+source="https://github.com/RinCat/RTL88x2BU-Linux-Driver/archive/$_gitrev/$_projname-$_gitrev.tar.gz"
+builddir="$srcdir/$_projname-$_gitrev"
+options="!check" # sources only
+
+prepare() {
+ default_prepare
+
+ cat >AKMBUILD <<-EOF
+ modname=$_modname
+ modver=$pkgver-r$pkgrel
+ built_modules='88x2bu.ko'
+
+ # This module doesn't support building outside of its source dir. :(
+ build() {
+ cp -r "\$srcdir"/* .
+ make \$MAKEFLAGS KVER="\$kernel_ver" KSRC="\$kernel_srcdir"
+ }
+ EOF
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/src/$_modname-$pkgver
+
+ cp -pr ./*/ AKMBUILD LICENSE Makefile halmac.mk rtl8822b.mk \
+ "$pkgdir"/usr/src/$_modname-$pkgver/
+}
+
+sha512sums="
+98f5c47fc6c37acdc80cc6662198e5e90ff3222e21755b0ed43a608a63fc4e91432e3cb659ad4399228c8a99945ff4138c9b587b95d34ca9da2e068c1fa49b58 RTL88x2BU-Linux-Driver-12cfcd8cd8ec7115158df3d223510435541ddc32.tar.gz
+"
diff --git a/testing/rtmidi/APKBUILD b/testing/rtmidi/APKBUILD
new file mode 100644
index 00000000000..740a82be090
--- /dev/null
+++ b/testing/rtmidi/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer:
+pkgname=rtmidi
+pkgver=6.0.0
+pkgrel=0
+pkgdesc="C++ classes that provide a common API for realtime MIDI input/output"
+url="https://github.com/thestk/rtmidi"
+arch="all"
+license="MIT"
+makedepends="
+ alsa-lib-dev
+ cmake
+ jack-dev
+ samurai
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/thestk/rtmidi/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ mkdir -p "$pkgdir"/usr/lib/cmake
+ mv "$pkgdir"/usr/share/rtmidi "$pkgdir"/usr/lib/cmake
+ rmdir "$pkgdir"/usr/share
+}
+
+sha512sums="
+7ff7f85ff86fc019ab7906a46efc986b2a340b2f9a9d504bda85d0afc75921b905b32cb37f87e30ab9d1f13e62587c4ade736dad1609a0880eeab3fe5a936acb rtmidi-6.0.0.tar.gz
+"
diff --git a/testing/rtptools/APKBUILD b/testing/rtptools/APKBUILD
index e8e361c73ea..4df57b0d0b3 100644
--- a/testing/rtptools/APKBUILD
+++ b/testing/rtptools/APKBUILD
@@ -2,35 +2,33 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=rtptools
pkgver=1.22
-pkgrel=0
+pkgrel=2
pkgdesc="RTP Tools"
-url="http://www.cs.columbia.edu/irt/software/rtptools/"
+url="https://www.cs.columbia.edu/irt/software/rtptools/"
arch="all"
-license="BSD-3"
+license="BSD-3-Clause"
makedepends="automake autoconf m4 libtool"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/columbia-irt/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/irtlab/rtptools/archive/$pkgver.tar.gz"
prepare() {
default_prepare
- cd "$builddir"
- libtoolize --force && aclocal && autoconf --force && automake --force-missing --add-missing
+ libtoolize --force
+ aclocal
+ autoconf --force
+ automake --force-missing --add-missing
}
build() {
- cd "$builddir"
./configure --prefix=/usr
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/testing/rtw89-src/APKBUILD b/testing/rtw89-src/APKBUILD
new file mode 100644
index 00000000000..a11aad39a93
--- /dev/null
+++ b/testing/rtw89-src/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=rtw89-src
+_modname=rtw89
+pkgver=7_p20230725
+_gitrev=3891b68c09df5e023b78c20712c40b85be0436f2
+pkgrel=0
+pkgdesc="Driver for Realtek 8852AE, an 802.11ax device for Linux <6.5 (sources)"
+url="https://github.com/lwfinger/rtw89"
+arch="noarch"
+license="GPL-2.0-or-later"
+source="https://github.com/lwfinger/rtw89/archive/$_gitrev/$_modname-$_gitrev.tar.gz"
+builddir="$srcdir/rtw89-$_gitrev"
+options="!check" # just sources
+
+prepare() {
+ default_prepare
+
+ cat >AKMBUILD <<-EOF
+ modname=$_modname
+ modver=$pkgver-r$pkgrel
+ built_modules='rtw89core.ko rtw89pci.ko'
+ EOF
+}
+
+package() {
+ install -D -m644 -t "$pkgdir"/usr/src/$_modname-$pkgver \
+ ./*.c ./*.h Makefile AKMBUILD
+}
+
+sha512sums="
+99ec9a99552915a7530714627e10c40f36fd7a431c2506a87cf008484aa220d4f829ea696193fdf5071d8f9fb0c5f8cf17e04e756ba2ebe5a3e1ac151bd62be1 rtw89-3891b68c09df5e023b78c20712c40b85be0436f2.tar.gz
+"
diff --git a/testing/rubberband/APKBUILD b/testing/rubberband/APKBUILD
deleted file mode 100644
index 0fb5b00ef9b..00000000000
--- a/testing/rubberband/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=rubberband
-pkgver=1.8.2
-pkgrel=0
-pkgdesc="library for audio time-stretching and pitch-shifting"
-url="https://www.breakfastquay.com/rubberband/"
-arch="all"
-license="GPL-2.0-only"
-makedepends="fftw-dev
- ladspa-dev
- libsamplerate-dev
- libsndfile-dev
- lv2-dev
- vamp-sdk-dev"
-subpackages="$pkgname-static $pkgname-dev"
-source="https://breakfastquay.com/files/releases/rubberband-$pkgver.tar.bz2
- patch-Makefile.patch"
-options="!check" # No tests
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="da677f9a843711c44c52c0153faa62e587ac7c010569523ef4fef7ce941b9d292e566f46147700e496f6cfff4c9f22f9901dcc93f2d701fdb9de152ddac0c3a6 rubberband-1.8.2.tar.bz2
-c35ee0d4b6b90cbd5826fe8fcd3af9485e036b0e138a7ec57ba3fdf39c48e98a07d4442f025d329bfc7541f08c06f517ec8c505e6330603cd3e52961baec79ba patch-Makefile.patch"
diff --git a/testing/rubberband/patch-Makefile.patch b/testing/rubberband/patch-Makefile.patch
deleted file mode 100644
index a5073d86b2b..00000000000
--- a/testing/rubberband/patch-Makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-The jni target is not available yet.
---- rubberband-1.8.2/Makefile.in.orig 2020-04-17 16:16:51.055577140 +0200
-+++ rubberband-1.8.2/Makefile.in 2020-04-17 16:17:07.518965463 +0200
-@@ -183,7 +183,6 @@
- cp $(DYNAMIC_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION)
- ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_ABI_VERSION)
- ln -s $(LIBNAME)$(DYNAMIC_EXTENSION).$(DYNAMIC_FULL_VERSION) $(DESTDIR)$(INSTALL_LIBDIR)/$(LIBNAME)$(DYNAMIC_EXTENSION)
-- cp -f $(JNI_TARGET) $(DESTDIR)$(INSTALL_LIBDIR)/$(JNINAME)$(DYNAMIC_EXTENSION)
- cp $(VAMP_TARGET) $(DESTDIR)$(INSTALL_VAMPDIR)
- cp vamp/vamp-rubberband.cat $(DESTDIR)$(INSTALL_VAMPDIR)
- cp $(LADSPA_TARGET) $(DESTDIR)$(INSTALL_LADSPADIR)
diff --git a/testing/ruby-build/APKBUILD b/testing/ruby-build/APKBUILD
index 1ea62db454e..51ef784fbc2 100644
--- a/testing/ruby-build/APKBUILD
+++ b/testing/ruby-build/APKBUILD
@@ -1,19 +1,48 @@
# Contributor: Thomas Kienlen <kommander@laposte.net>
# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=ruby-build
-pkgver=20200520
+pkgver=20240319
pkgrel=0
pkgdesc="Compile and install Ruby"
url="https://github.com/rbenv/ruby-build"
arch="noarch"
license="MIT"
-depends="bash zlib-dev openssl-dev gdbm-dev db-dev readline-dev
- libffi-dev coreutils yaml-dev linux-headers autoconf"
+depends="
+ bash
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-runtime
+ "
source="$pkgname-$pkgver.tar.gz::https://github.com/rbenv/ruby-build/archive/v$pkgver.tar.gz"
options="!check" # No test suite
+install="$pkgname.post-install"
package() {
PREFIX="$pkgdir/usr" ./install.sh
+
+ install -Dvm644 LICENSE \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+runtime() {
+ pkgdesc="ruby-build runtime dependencies"
+
+ depends="
+ autoconf
+ coreutils
+ libffi-dev
+ linux-headers
+ gdbm-dev
+ openssl-dev>3
+ readline-dev
+ yaml-dev
+ zlib-dev
+ "
+
+ mkdir -p "$subpkgdir"
}
-sha512sums="f32af6b7093a806ed04a9c73929749a13b56ca2cb4ff04e6506f44d51d1934d955564ee9d6e2f488498e0e41f0cb737e3c9894bfee0a341a4aa2249b293b4b8d ruby-build-20200520.tar.gz"
+sha512sums="
+f6f02de61677fcb5146aadd5970c90a0fdad7519a714feb7ad06e5f76c78055a91d4a3c14e1ba8ddc47968ace271842090e02ea4b6f09b32691040fc385403d5 ruby-build-20240319.tar.gz
+"
diff --git a/testing/ruby-build/ruby-build.post-install b/testing/ruby-build/ruby-build.post-install
new file mode 100755
index 00000000000..dedec0dd5a7
--- /dev/null
+++ b/testing/ruby-build/ruby-build.post-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+cat <<EOF
+*
+* Building ruby or installing gems with extentions requires more packages
+*
+* Please install: ruby-build-runtime
+* or the following list:
+* autoconf coreutils libffi-dev linux-headers gdbm-dev openssl-dev
+* readline-dev yaml-dev zlib-dev
+*
+EOF
diff --git a/testing/ruby-ttytest/APKBUILD b/testing/ruby-ttytest/APKBUILD
deleted file mode 100644
index efd14108c79..00000000000
--- a/testing/ruby-ttytest/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Maintainer: Eivind Uggedal <eu@eju.no>
-pkgname=ruby-ttytest
-_gemname=ttytest
-pkgver=0.5.0
-pkgrel=2
-pkgdesc="Acceptance test framework for interactive console applications"
-url="https://github.com/jhawthorn/ttytest"
-arch="noarch"
-license="MIT"
-depends="ruby tmux"
-checkdepends="ruby-minitest ruby-rake ruby-bundler"
-source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz
- skip-yard.patch
- fix-flaky-test.patch
- gemspec.patch"
-builddir="$srcdir/$_gemname-$pkgver"
-
-build() {
- gem build $_gemname.gemspec
-}
-
-check() {
- rake test
-}
-
-package() {
- local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"
-
- gem install --local \
- --install-dir "$gemdir" \
- --ignore-dependencies \
- --no-document \
- --verbose \
- $_gemname
-
- # Cleanup:
- cd "$gemdir"
- rm -r cache build_info doc
-}
-sha512sums="30b9f41c8da691178dc9cee66e6fe75c57b3536408d75a6667c1436772103a296e0ec01b2d819592241601e2deae8ebb098a52267fe0e740a35bc039af626fe7 ruby-ttytest-0.5.0.tar.gz
-9986cc16c5c30a11cdb92f8d93159bb06dbbc125e1e839d3438b60baabb15b062326116e7e42b9f289a671d91d3f67b90b4f149e0fd86c56b59365b0b36ac4e6 skip-yard.patch
-6f1e61c958b754fa2d292c486a366122402a20769156d6a251be47f5cc830ac62d88b70e6dd9984d467dbd87ab103625cec1b7e1f369fc60f7263de887250d60 fix-flaky-test.patch
-23dbf425ba8733c6ee91a3809ffab97ec934d1c8c9269105b04bb8b1c3e942cfef417a9ce303e4d5d607d01cb52c83098d0a6c5ddd79aa83274406bbd188704a gemspec.patch"
diff --git a/testing/ruby-ttytest/fix-flaky-test.patch b/testing/ruby-ttytest/fix-flaky-test.patch
deleted file mode 100644
index 80bc097e452..00000000000
--- a/testing/ruby-ttytest/fix-flaky-test.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- ttytest-0.5.0/test/ttytest/terminal_test.rb
-+++ ttytest-0.5.0_p/test/ttytest/terminal_test.rb
-@@ -4,6 +4,9 @@
- class TerminalTest < Minitest::Test
- def test_shell_hello_world
- @tty = TTYtest.new_terminal(%{PS1='$ ' /bin/sh})
-+ # Give tmux some time to settle
-+ # (see https://github.com/jhawthorn/ttytest/issues/2):
-+ sleep(0.5)
- @tty.assert_row(0, '$')
- @tty.send_keys('echo "Hello, world"')
- @tty.assert_row(0, '$ echo "Hello, world"')
diff --git a/testing/ruby-ttytest/gemspec.patch b/testing/ruby-ttytest/gemspec.patch
deleted file mode 100644
index c9e8ca63bb2..00000000000
--- a/testing/ruby-ttytest/gemspec.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- ttytest-0.5.0/ttytest.gemspec
-+++ ttytest-0.5.0_p/ttytest.gemspec
-@@ -14,9 +14,7 @@
- spec.homepage = "https://github.com/jhawthorn/ttytest"
- spec.license = "MIT"
-
-- spec.files = `git ls-files -z`.split("\x0").reject do |f|
-- f.match(%r{^(test|spec|features)/})
-- end
-+ spec.files = Dir["lib/**/*"]
- spec.bindir = "exe"
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
- spec.require_paths = ["lib"]
diff --git a/testing/ruby-ttytest/skip-yard.patch b/testing/ruby-ttytest/skip-yard.patch
deleted file mode 100644
index fce69a13327..00000000000
--- a/testing/ruby-ttytest/skip-yard.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- ttytest-0.5.0/Rakefile
-+++ ttytest-0.5.0_p/Rakefile
-@@ -1,15 +1,10 @@
- require "bundler/gem_tasks"
- require "rake/testtask"
--require "yard"
-
- Rake::TestTask.new(:test) do |t|
- t.libs << "test"
- t.libs << "lib"
- t.test_files = FileList['test/**/*_test.rb']
--end
--
--YARD::Rake::YardocTask.new do |t|
-- t.files = ['lib/**/*.rb']
- end
-
- task :console do
---- ttytest-0.5.0/ttytest.gemspec
-+++ ttytest-0.5.0_p/ttytest.gemspec
-@@ -26,5 +26,4 @@
- spec.add_development_dependency "bundler", "~> 1.7"
- spec.add_development_dependency "rake", "~> 10.0"
- spec.add_development_dependency "minitest", "~> 5.0"
-- spec.add_development_dependency "yard"
- end
diff --git a/testing/rue/APKBUILD b/testing/rue/APKBUILD
new file mode 100644
index 00000000000..b22cf08671f
--- /dev/null
+++ b/testing/rue/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Tom Tsagk <tomtsagk@darkdimension.org>
+# Maintainer: Tom Tsagk <tomtsagk@darkdimension.org>
+pkgname=rue
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="A card game about deduction, love and regret"
+url="https://darkdimension.org/games/rue.html"
+arch="all"
+license="GPL-3.0-only"
+makedepends="musl-dev glew-dev sdl2-dev sdl2_mixer-dev avdl"
+options="!check" # no tests for this project yet
+source="$pkgname-$pkgver.tar.gz::https://github.com/tomtsagk/rue/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make prefix=/usr
+}
+
+package() {
+ make DESTDIR="$pkgdir" prefix=/usr install
+
+}
+
+sha512sums="
+25ce62493b65075749dc91062e483a8a4a66723019241f45768a24fa784358faee8f5aca1f833d9a5b818f2cb49d74f6b37dd31775fc7c4ea6c4194baa5908a2 rue-0.3.0.tar.gz
+"
diff --git a/testing/ruff-lsp/APKBUILD b/testing/ruff-lsp/APKBUILD
new file mode 100644
index 00000000000..4185ae44782
--- /dev/null
+++ b/testing/ruff-lsp/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=ruff-lsp
+pkgver=0.0.53
+pkgrel=0
+pkgdesc="Language Server Protocol implementation for Ruff"
+url="https://github.com/charliermarsh/ruff-lsp"
+arch="all"
+license="MIT"
+depends="
+ py3-gls
+ py3-lsprotocol
+ py3-typing-extensions
+ ruff
+ "
+makedepends="py3-gpep517 py3-installer py3-hatchling"
+checkdepends="py3-lsp-jsonrpc py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/astral-sh/ruff-lsp/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests ran
+
+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 -m installer -d "$pkgdir" \
+ .dist/ruff_lsp-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+a5a14299486943dec3143e54424b631acee619d3d88449de44c4d8167dd7776e2191a8873585acf40959d22f733a7196e275e58a6b4f0919fe8e2858e2d07414 ruff-lsp-0.0.53.tar.gz
+"
diff --git a/testing/runst/APKBUILD b/testing/runst/APKBUILD
new file mode 100644
index 00000000000..42bcb2c194a
--- /dev/null
+++ b/testing/runst/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=runst
+pkgver=0.1.7
+pkgrel=0
+pkgdesc="Dead simple notification daemon"
+url="https://github.com/orhun/runst"
+arch="all !s390x"
+license="MIT OR Apache-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ dbus-glib-dev
+ pango-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/orhun/runst/archive/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/runst" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE-MIT -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+68ea1e8f48d5b8e76d246c5e3ed20e1a9580adaabb1853280de6b54b3b12a548ab647ccb57371bab9b23d2976d3d8c41fe3164d530db4b5380bd394b62dc3a4f runst-0.1.7.tar.gz
+"
diff --git a/testing/ruqola/APKBUILD b/testing/ruqola/APKBUILD
deleted file mode 100644
index ab6d575aea3..00000000000
--- a/testing/ruqola/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=ruqola
-pkgver=1.0.0
-pkgrel=0
-pkgdesc="Ruqola is a QML client for Rocket Chat "
-url="https://github.com/kde/ruqola"
-# armhf blocked by qt5-qtdeclarative-dev
-arch="all !armhf"
-license="GPL-2.0-only OR GPL-3.0-only"
-depends="kirigami2"
-makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtwebsockets-dev qt5-qtnetworkauth-dev qt5-qtkeychain-dev kirigami2-dev kcoreaddons-dev ki18n-dev kcrash-dev knotifications-dev syntax-highlighting-dev kdbusaddons-dev kxmlgui-dev kconfig-dev kio-dev sonnet-dev ktextwidgets-dev kuserfeedback-dev kdoctools-dev libsecret-dev"
-checkdepends="xvfb-run"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KDE/ruqola/archive/$pkgver.tar.gz"
-
-build() {
- cmake -B "$builddir"/build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCOMPILE_RUQOLA_QML=TRUE
- make -C build
-}
-
-check() {
- cd "$builddir"/build
- CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run ctest
-}
-
-package() {
- DESTDIR="$pkgdir" make -C build install
-}
-
-sha512sums="4006e8b2cdc68950802e2ac4c30706c8f5d44bdd4e62b19c903b7e207f5cdd1e019bc9fcdae34e3568a9a01e761d130b66b4898e2dd49868daf38deb31a493c0 ruqola-1.0.0.tar.gz"
diff --git a/testing/rust-script/APKBUILD b/testing/rust-script/APKBUILD
new file mode 100644
index 00000000000..0a6c0908971
--- /dev/null
+++ b/testing/rust-script/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=rust-script
+pkgver=0.34.0
+pkgrel=0
+pkgdesc="Run Rust files and expressions as scripts without any setup or compilation step"
+url="https://rust-script.org/"
+license="Apache-2.0 OR MIT"
+arch="all !armhf" # tests hang
+makedepends="cargo cargo-auditable"
+source="https://github.com/fornwall/rust-script/archive/$pkgver/rust-script-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+7475526fadba3caaa7035104efba05d49b0b8b40e2fed1cbe0b46750f786d5f8da454ef32fdd1df958c13796ea403e0a67701b58897cf2c623796452dacc231e rust-script-0.34.0.tar.gz
+"
diff --git a/testing/rustdesk-server/APKBUILD b/testing/rustdesk-server/APKBUILD
new file mode 100644
index 00000000000..6a3ee3a9815
--- /dev/null
+++ b/testing/rustdesk-server/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: alealexpro100 <alealexn@gmail.com>
+# Maintainer: alealexpro100 <alealexn@gmail.com>
+pkgname=rustdesk-server
+_pkgver=1.1.10-3
+pkgver=${_pkgver/-/.}
+pkgrel=0
+pkgdesc="RustDesk Server Program"
+url="https://github.com/rustdesk/rustdesk-server"
+# ppc64le and s390x and riscv64 blocked by ring crate
+arch="all !ppc64le !s390x !riscv64"
+license="GPL-3.0-or-later"
+options="!check net" # RustDesk server has no tests yet
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-openrc
+ "
+source="
+ $pkgname-$_pkgver.tar.gz::https://github.com/rustdesk/rustdesk-server/archive/refs/tags/$_pkgver.tar.gz
+ hbbr.initd
+ hbbs.initd
+ hbbr.confd
+ hbbs.confd
+ cargo.lock.patch
+ "
+builddir="$srcdir/$pkgname-$_pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install="$pkgname.pre-install"
+ install -Dm755 "$builddir/target/release/hbbs" -t "$pkgdir/usr/bin"
+ install -Dm755 "$builddir/target/release/hbbr" -t "$pkgdir/usr/bin"
+ install -Dm755 "$srcdir/hbbs.initd" "$pkgdir/etc/init.d/hbbs"
+ install -Dm755 "$srcdir/hbbr.initd" "$pkgdir/etc/init.d/hbbr"
+ install -Dm644 "$srcdir/hbbs.confd" "$pkgdir/etc/conf.d/hbbs"
+ install -Dm644 "$srcdir/hbbr.confd" "$pkgdir/etc/conf.d/hbbr"
+}
+
+sha512sums="
+aada3d9ec37b85bebb57a798c9fbcb6998b334f25b04fe7dad80fe8362420cfbb6a28c75ced8f1a3a371d7667f67d1840e089cc059a78f0a161b7d63d3ffc73b rustdesk-server-1.1.10-3.tar.gz
+d94a65ec35bb3d61008c46e7c03465223c835dd277741ac2409a73df7902b461c2ac9fa853b9e20a61b56c231932ad75e29872b28a715f1e4df254edacd3f92b hbbr.initd
+87852329c8f1b011bcb9f80727259e9ad3a94332a47512f169604a114362606e51fc819544a5feaf13d22edb2dbabc22d247780acba60c8ac0228b902ed0be6b hbbs.initd
+a4b2a36449f39b0b45d789cc4a05abe489555ce2299068e4d75389e209660220fc9ab54bef7621088a33b1548336ff50183b3acc1a4204005e1d24eeb5a521da hbbr.confd
+cbe32a1d56106f8b169aca211f3a64ac8c81eb14f1e99f96692f4842714f1db142145a8246f733a4dc549f0dd046dfc48b8981d81c9ced205614900ad0a1058d hbbs.confd
+1f5c4b56ae570210424430b127662f4f410fa91dd919400a38daeb3d947c51ac599b147cc3c1c9479baea91498b0e824d3e6251581f9ba82b8fcac707824bef2 cargo.lock.patch
+"
diff --git a/testing/rustdesk-server/cargo.lock.patch b/testing/rustdesk-server/cargo.lock.patch
new file mode 100644
index 00000000000..73aacfcdd17
--- /dev/null
+++ b/testing/rustdesk-server/cargo.lock.patch
@@ -0,0 +1,53 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -702,13 +702,13 @@
+
+ [[package]]
+ name = "getrandom"
+-version = "0.2.6"
++version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
++checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+ dependencies = [
+ "cfg-if",
+ "libc",
+- "wasi 0.10.2+wasi-snapshot-preview1",
++ "wasi",
+ ]
+
+ [[package]]
+@@ -1051,9 +1051,9 @@
+
+ [[package]]
+ name = "libc"
+-version = "0.2.125"
++version = "0.2.143"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b"
++checksum = "edc207893e85c5d6be840e969b496b53d94cec8be2d501b214f50daa97fa8024"
+
+ [[package]]
+ name = "libsodium-sys"
+@@ -1208,7 +1208,7 @@
+ dependencies = [
+ "libc",
+ "log",
+- "wasi 0.11.0+wasi-snapshot-preview1",
++ "wasi",
+ "windows-sys 0.36.1",
+ ]
+
+@@ -2583,12 +2583,6 @@
+ "log",
+ "try-lock",
+ ]
+-
+-[[package]]
+-name = "wasi"
+-version = "0.10.2+wasi-snapshot-preview1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+
+ [[package]]
+ name = "wasi"
diff --git a/testing/rustdesk-server/hbbr.confd b/testing/rustdesk-server/hbbr.confd
new file mode 100644
index 00000000000..65253cf301e
--- /dev/null
+++ b/testing/rustdesk-server/hbbr.confd
@@ -0,0 +1,11 @@
+# hbbr configuration options
+
+# extra arguments to pass to hbbr
+command_args=""
+# user:group
+command_user="rustdesk:rustdesk"
+directory="/var/lib/rustdesk-server"
+umask=0022
+
+# comment to use traditional service management
+supervisor=supervise-daemon
diff --git a/testing/rustdesk-server/hbbr.initd b/testing/rustdesk-server/hbbr.initd
new file mode 100755
index 00000000000..c704e0adba1
--- /dev/null
+++ b/testing/rustdesk-server/hbbr.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+
+name=hbbr
+description="Rust-desk server hbbr daemon"
+command="/usr/bin/hbbr"
+command_background=true
+command_args=${command_args:-"-k _"}
+: ${directory:=/var/lib/rustdesk-server}
+: ${command_user:=rustdesk:rustdesk}
+: ${umask:=0022}
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user "$directory"
+}
diff --git a/testing/rustdesk-server/hbbs.confd b/testing/rustdesk-server/hbbs.confd
new file mode 100644
index 00000000000..74e24ee46c8
--- /dev/null
+++ b/testing/rustdesk-server/hbbs.confd
@@ -0,0 +1,11 @@
+# hbbs configuration options
+
+# extra arguments to pass to hbbs
+command_args=""
+# user:group
+command_user="rustdesk:rustdesk"
+directory="/var/lib/rustdesk-server"
+umask=0022
+
+# comment to use traditional service management
+supervisor=supervise-daemon
diff --git a/testing/rustdesk-server/hbbs.initd b/testing/rustdesk-server/hbbs.initd
new file mode 100755
index 00000000000..0645526f113
--- /dev/null
+++ b/testing/rustdesk-server/hbbs.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+name=hbbs
+description="Rust-desk server hbbs daemon"
+command="/usr/bin/hbbs"
+command_background=true
+: ${directory:=/var/lib/rustdesk-server}
+: ${command_user:=rustdesk:rustdesk}
+: ${umask:=0022}
+
+depend() {
+ need net hbbr
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user "$directory"
+}
diff --git a/testing/rustdesk-server/rustdesk-server.pre-install b/testing/rustdesk-server/rustdesk-server.pre-install
new file mode 100755
index 00000000000..914aca877d3
--- /dev/null
+++ b/testing/rustdesk-server/rustdesk-server.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S rustdesk 2>/dev/null
+adduser -S -D -h /var/lib/rustdesk-server -s /sbin/nologin -G rustdesk -g rustdesk rustdesk 2>/dev/null
+
+exit 0
diff --git a/testing/rustic/APKBUILD b/testing/rustic/APKBUILD
new file mode 100644
index 00000000000..f665b32944e
--- /dev/null
+++ b/testing/rustic/APKBUILD
@@ -0,0 +1,82 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=rustic
+# NOTE: do not move out of the testing repository until upstream says it's no longer beta-quality software
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="Fast, encrypted, deduplicated backups"
+url="https://github.com/rustic-rs/rustic"
+license="MIT OR Apache-2.0"
+arch="all !s390x" # fails to build nix crate
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ zstd-dev
+ "
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+# NOTE: Keep in sync with rustic_core in Cargo.toml.
+_core_ver=0.1.2
+source="https://github.com/rustic-rs/rustic/archive/v$pkgver/rustic-$pkgver.tar.gz
+ https://github.com/rustic-rs/rustic_core/archive/$_core_ver/rustic_core-$_core_ver.tar.gz
+ make-self-update-optional.patch
+ fix-abscissa_core-features.patch
+ rustic_core-add-tls-native.patch
+ build-with-system-tls.patch
+ "
+options="net" # fetch dependencies
+
+# Disable self-update feature.
+_cargo_opts="--no-default-features --frozen"
+
+prepare() {
+ mkdir -p vendor
+ mv "$srcdir"/rustic_core-$_core_ver vendor/rustic_core
+
+ default_prepare
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided zstd.
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ zstd = { rustc-link-lib = ["zstd"] }
+ EOF
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build $_cargo_opts --release
+
+ target/release/rustic completions bash > $pkgname.bash
+ target/release/rustic completions fish > $pkgname.fish
+ target/release/rustic completions zsh > $pkgname.zsh
+}
+
+check() {
+ cargo test $_cargo_opts
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+44b1e2be7336f74e832c33d06101b2ad1ba79123926bd00f3e4884cd49abd75e727e26636451bc393d154ec438fd9168ae9dce8bfa4ec9ffd371b89b6b426dcd rustic-0.6.1.tar.gz
+a3883df06f927e5a0f786e21ae7bec2d2f6090afbd30828bfe8f16bc706cb755688f6d74e5336fc1fce1cbeb750c954e84039084fcfc2fcc1ffcf560f77c576e rustic_core-0.1.2.tar.gz
+f63047855f5e01ea547b921af54e81dc63559e4dee15811e6cfdbf5e503543bb76b0d2612b660c7adff1751e5564186e386145f61f50d0188e5d8215c2586962 make-self-update-optional.patch
+ef26d102a32cea39ccd69cd5fe20cc18ef9a5157dbbb1b90ae640922d88c3739947ed2900f6e902ea9583f51be66d32cedddf298b306e3d24a6529d9163da5d1 fix-abscissa_core-features.patch
+8d8b40f01ba324987130737b119aaa1a8a330a90263206c7f6eea8c4ba82c35297964a429bc25f87d2a91653f52d1837bca5d305cec684b5aff9df302f2220b7 rustic_core-add-tls-native.patch
+e64ba6947ea0eda3074f267fd05e831b9c66850755200233cd155a7c9b184fb0391a3d5199e5fbc1c2fbdc9d47c277aeb2b00df3f530b1c7fc3c0605a7acfc25 build-with-system-tls.patch
+"
diff --git a/testing/rustic/build-with-system-tls.patch b/testing/rustic/build-with-system-tls.patch
new file mode 100644
index 00000000000..0f1db257c74
--- /dev/null
+++ b/testing/rustic/build-with-system-tls.patch
@@ -0,0 +1,225 @@
+Link with system-provided openssl instead of bundling rustls.
+
+This depends on rustic_core-add-tls-native.patch.
+
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -102,7 +102,7 @@
+ [target.'cfg(not(windows))'.dependencies]
+ libc = "0.2.150"
+ [workspace.dependencies]
+-rustic_core = { version = "0.1.2", features = ["cli"] }
++rustic_core = { version = "0.1.2", default-features = false, features = ["cli", "tls-native"] }
+ abscissa_core = { version = "0.7.0", default-features = false, features = ["application"] }
+
+ # logging
+@@ -200,3 +200,6 @@
+ lto = true
+ debug-assertions = false
+ codegen-units = 1
++
++[patch.crates-io]
++rustic_core = { path = "vendor/rustic_core" }
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1080,6 +1080,21 @@
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+ [[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
++[[package]]
+ name = "form_urlencoded"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1360,6 +1375,19 @@
+ ]
+
+ [[package]]
++name = "hyper-tls"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
++dependencies = [
++ "bytes",
++ "hyper",
++ "native-tls",
++ "tokio",
++ "tokio-native-tls",
++]
++
++[[package]]
+ name = "iana-time-zone"
+ version = "0.1.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1681,6 +1709,24 @@
+ ]
+
+ [[package]]
++name = "native-tls"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
++dependencies = [
++ "lazy_static",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
++]
++
++[[package]]
+ name = "nix"
+ version = "0.27.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1757,12 +1803,50 @@
+ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+ [[package]]
++name = "openssl"
++version = "0.10.62"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
++dependencies = [
++ "bitflags 2.4.1",
++ "cfg-if 1.0.0",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.39",
++]
++
++[[package]]
+ name = "openssl-probe"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+ [[package]]
++name = "openssl-sys"
++version = "0.9.98"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[package]]
+ name = "option-ext"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -2112,21 +2196,23 @@
+ "http-body",
+ "hyper",
+ "hyper-rustls",
++ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
++ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+- "rustls-native-certs",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "system-configuration",
+ "tokio",
++ "tokio-native-tls",
+ "tokio-rustls",
+ "tokio-util",
+ "tower-service",
+@@ -2239,8 +2325,6 @@
+ [[package]]
+ name = "rustic_core"
+ version = "0.1.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a5932066f9e144fc15043c4e0b9a82bfa16c83910243318bdafbb38496c1518a"
+ dependencies = [
+ "aes256ctr_poly1305aes",
+ "aho-corasick",
+@@ -2327,18 +2411,6 @@
+ ]
+
+ [[package]]
+-name = "rustls-native-certs"
+-version = "0.6.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+-dependencies = [
+- "openssl-probe",
+- "rustls-pemfile",
+- "schannel",
+- "security-framework",
+-]
+-
+-[[package]]
+ name = "rustls-pemfile"
+ version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -2960,6 +3032,16 @@
+ ]
+
+ [[package]]
++name = "tokio-native-tls"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
++dependencies = [
++ "native-tls",
++ "tokio",
++]
++
++[[package]]
+ name = "tokio-rustls"
+ version = "0.24.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -3193,6 +3275,12 @@
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
++
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+ [[package]]
+ name = "version_check"
diff --git a/testing/rustic/fix-abscissa_core-features.patch b/testing/rustic/fix-abscissa_core-features.patch
new file mode 100644
index 00000000000..719e71f7646
--- /dev/null
+++ b/testing/rustic/fix-abscissa_core-features.patch
@@ -0,0 +1,35 @@
+Patch-Source: https://github.com/rustic-rs/rustic/pull/976
+--
+From b7c61c6e1bc4fec18ff5977169c014b6098a17d9 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 31 Dec 2023 03:37:37 +0100
+Subject: [PATCH] fix(deps): enable abscissa_core testing feature only for dev (#976)
+
+---
+ Cargo.toml | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index b0260fc..24486f1 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -89,6 +89,7 @@ rhai = { workspace = true }
+ simplelog = { workspace = true }
+
+ [dev-dependencies]
++abscissa_core = { workspace = true, features = ["testing"] }
+ aho-corasick = { workspace = true }
+ dircmp = { workspace = true }
+ once_cell = { workspace = true }
+@@ -101,7 +102,7 @@ toml = { workspace = true }
+ libc = "0.2.150"
+ [workspace.dependencies]
+ rustic_core = { version = "0.1.2", features = ["cli"] }
+-abscissa_core = { version = "0.7.0", default-features = false, features = ["application", "testing"] }
++abscissa_core = { version = "0.7.0", default-features = false, features = ["application"] }
+
+ # logging
+ log = "0.4"
+--
+2.43.0
+
diff --git a/testing/rustic/make-self-update-optional.patch b/testing/rustic/make-self-update-optional.patch
new file mode 100644
index 00000000000..ffe5bef4a4d
--- /dev/null
+++ b/testing/rustic/make-self-update-optional.patch
@@ -0,0 +1,101 @@
+Patch-Source: https://github.com/rustic-rs/rustic/pull/975
+--
+From b32769f275adbd719453aefe68785c303664208a Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Mon, 1 Jan 2024 09:11:13 +0100
+Subject: [PATCH 2/2] feat(cli): Allow building without self-update feature
+ (#975)
+
+Co-authored-by: simonsan <14062932+simonsan@users.noreply.github.com>
+---
+ Cargo.toml | 7 ++++---
+ src/commands.rs | 1 +
+ src/commands/self_update.rs | 13 +++++++++----
+ 3 files changed, 14 insertions(+), 7 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 24486f1..054a994 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -31,9 +31,10 @@ description = { workspace = true }
+ members = ["crates/rustic_testing", "xtask"]
+
+ [features]
+-default = []
++default = ["self-update"]
+ mimalloc = ["dep:mimalloc"]
+ jemallocator = ["dep:jemallocator-global"]
++self-update = ["dep:self_update", "dep:semver"]
+
+ [[bin]]
+ name = "rustic"
+@@ -67,8 +68,8 @@ serde_with = { workspace = true }
+
+ # other dependencies
+ chrono = { workspace = true }
+-self_update = { workspace = true }
+-semver = { workspace = true }
++self_update = { workspace = true, optional = true }
++semver = { workspace = true, optional = true }
+
+ # commands
+ clap = { workspace = true }
+diff --git a/src/commands.rs b/src/commands.rs
+index 07473d3..88432ab 100644
+--- a/src/commands.rs
++++ b/src/commands.rs
+@@ -101,6 +101,7 @@ enum RusticCmd {
+ ShowConfig(ShowConfigCmd),
+
+ /// Update to the latest rustic release
++ #[cfg_attr(not(feature = "self-update"), clap(hide = true))]
+ SelfUpdate(SelfUpdateCmd),
+
+ /// Remove unused data or repack repository pack files
+diff --git a/src/commands/self_update.rs b/src/commands/self_update.rs
+index dff8fb3..f9540e4 100644
+--- a/src/commands/self_update.rs
++++ b/src/commands/self_update.rs
+@@ -5,8 +5,6 @@ use crate::{Application, RUSTIC_APP};
+ use abscissa_core::{status_err, Command, Runnable, Shutdown};
+
+ use anyhow::Result;
+-use self_update::cargo_crate_version;
+-use semver::Version;
+
+ /// `self-update` subcommand
+ #[derive(clap::Parser, Command, Debug)]
+@@ -26,8 +24,9 @@ impl Runnable for SelfUpdateCmd {
+ }
+
+ impl SelfUpdateCmd {
++ #[cfg(feature = "self-update")]
+ fn inner_run(&self) -> Result<()> {
+- let current_version = Version::parse(cargo_crate_version!())?;
++ let current_version = semver::Version::parse(self_update::cargo_crate_version!())?;
+
+ let release = self_update::backends::github::Update::configure()
+ .repo_owner("rustic-rs")
+@@ -40,7 +39,7 @@ impl SelfUpdateCmd {
+
+ let latest_release = release.get_latest_release()?;
+
+- let upstream_version = Version::parse(&latest_release.version)?;
++ let upstream_version = semver::Version::parse(&latest_release.version)?;
+
+ match current_version.cmp(&upstream_version) {
+ std::cmp::Ordering::Greater => {
+@@ -62,4 +61,10 @@ impl SelfUpdateCmd {
+
+ Ok(())
+ }
++ #[cfg(not(feature = "self-update"))]
++ fn inner_run(&self) -> Result<()> {
++ anyhow::bail!(
++ "This version of rustic was built without the \"self-update\" feature. Please use your system package manager to update it."
++ );
++ }
+ }
+--
+2.43.0
+
diff --git a/testing/rustic/rustic_core-add-tls-native.patch b/testing/rustic/rustic_core-add-tls-native.patch
new file mode 100644
index 00000000000..d3903ab938c
--- /dev/null
+++ b/testing/rustic/rustic_core-add-tls-native.patch
@@ -0,0 +1,53 @@
+Patch-Source: https://github.com/rustic-rs/rustic_core/pull/110 (backported)
+--
+From a5360816832236b814da86cd8518c02b3fc3eb05 Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 30 Dec 2023 20:28:47 +0100
+Subject: [PATCH] feat: Add tls-native, tls-rustls features to allow building
+ w/o Rustls
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 1582c6b..4d60eef 100644
+--- a/vendor/rustic_core/Cargo.toml
++++ b/vendor/rustic_core/Cargo.toml
+@@ -35,10 +35,13 @@ harness = true
+ edition = "2021"
+
+ [features]
+-default = []
++default = ["tls-rustls"]
+ cli = ["merge", "clap"]
+ merge = ["dep:merge"]
+ clap = ["dep:clap"]
++# tls-native and tls-rustls are mutually exclusive.
++tls-native = ["reqwest/native-tls"]
++tls-rustls = ["reqwest/rustls-tls-native-roots"]
+
+ [package.metadata.docs.rs]
+ all-features = true
+@@ -96,7 +99,7 @@ walkdir = "2.4.0"
+
+ # rest backend
+ backoff = "0.4.0"
+-reqwest = { version = "0.11.22", default-features = false, features = ["json", "rustls-tls-native-roots", "stream", "blocking"] }
++reqwest = { version = "0.11.22", default-features = false, features = ["json", "stream", "blocking"] }
+ url = "2.4.1"
+
+ # rclone backend
+diff --git a/src/lib.rs b/src/lib.rs
+index 04bda03..387b218 100644
+--- a/vendor/rustic_core/src/lib.rs
++++ b/vendor/rustic_core/src/lib.rs
+@@ -139,6 +139,9 @@ This crate exposes a few features for controlling dependency usage.
+ #![allow(rustdoc::private_intra_doc_links)]
+ #![allow(clippy::needless_raw_string_hashes)]
+
++#[cfg(all(feature = "tls-native", feature = "tls-rustls"))]
++compile_error!("features \"tls-native\" and \"tls-rustls\" cannot be enabled at the same time. Please disable one of them.");
++
+ pub(crate) mod archiver;
+ pub(crate) mod backend;
+ pub(crate) mod blob;
+--
+2.43.0
+
diff --git a/testing/rustscan/APKBUILD b/testing/rustscan/APKBUILD
new file mode 100644
index 00000000000..c6a8d30da9b
--- /dev/null
+++ b/testing/rustscan/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=rustscan
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="Modern Port Scanner"
+url="https://github.com/RustScan/RustScan"
+license="GPL-3.0-or-later"
+# ppc64le and s390x and riscv64 blocked by ring crate
+# armhf timout while building
+arch="all !ppc64le !armhf !s390x !riscv64"
+makedepends="cargo cargo-auditable"
+checkdepends="bash perl python3"
+source="https://github.com/RustScan/RustScan/archive/$pkgver/rustscan-$pkgver.tar.gz
+ Cargo.lock.patch
+ "
+options="net"
+builddir="$srcdir/RustScan-$pkgver"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/rustscan -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+b435e03575cb6b9989615574beed537a47a92a17566df9cb678d8ea1d8aeaf651c4b1e1700b72af5c78a00921e99df59d0f4bfc34e698a8066cabcf42a4c867d rustscan-2.1.1.tar.gz
+8733e358eb6c3a0f2e155f6f779331c5f074eb0d83c55eb49caf4e579946dde7c27f941da8f28824b2f522fadf3ff47255d0e7a68b1904a49336b63405e5f31d Cargo.lock.patch
+"
diff --git a/testing/rustscan/Cargo.lock.patch b/testing/rustscan/Cargo.lock.patch
new file mode 100644
index 00000000000..fc344f627e7
--- /dev/null
+++ b/testing/rustscan/Cargo.lock.patch
@@ -0,0 +1,1159 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f8ce9c2..2381061 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+ [[package]]
+ name = "aho-corasick"
+-version = "0.7.18"
++version = "0.7.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
++checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+ dependencies = [
+ "memchr",
+ ]
+@@ -37,15 +37,15 @@ dependencies = [
+
+ [[package]]
+ name = "anyhow"
+-version = "1.0.56"
++version = "1.0.66"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
++checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6"
+
+ [[package]]
+ name = "async-channel"
+-version = "1.6.1"
++version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
++checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+ dependencies = [
+ "concurrent-queue",
+ "event-listener",
+@@ -54,76 +54,68 @@ dependencies = [
+
+ [[package]]
+ name = "async-executor"
+-version = "1.4.1"
++version = "1.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
++checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+ dependencies = [
++ "async-lock",
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+- "once_cell",
+ "slab",
+ ]
+
+ [[package]]
+ name = "async-global-executor"
+-version = "2.0.4"
++version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c290043c9a95b05d45e952fb6383c67bcb61471f60cfa21e890dba6654234f43"
++checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
+ dependencies = [
+ "async-channel",
+ "async-executor",
+ "async-io",
+- "async-mutex",
++ "async-lock",
+ "blocking",
+ "futures-lite",
+- "num_cpus",
+ "once_cell",
+ ]
+
+ [[package]]
+ name = "async-io"
+-version = "1.6.0"
++version = "1.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
++checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+ dependencies = [
++ "async-lock",
++ "autocfg",
+ "concurrent-queue",
+ "futures-lite",
+ "libc",
+ "log",
+- "once_cell",
+ "parking",
+ "polling",
+ "slab",
+- "socket2 0.4.4",
++ "socket2 0.4.7",
+ "waker-fn",
+- "winapi 0.3.9",
++ "windows-sys",
+ ]
+
+ [[package]]
+ name = "async-lock"
+-version = "2.5.0"
++version = "2.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
+-dependencies = [
+- "event-listener",
+-]
+-
+-[[package]]
+-name = "async-mutex"
+-version = "1.4.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
++checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685"
+ dependencies = [
+ "event-listener",
++ "futures-lite",
+ ]
+
+ [[package]]
+ name = "async-std"
+-version = "1.11.0"
++version = "1.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "52580991739c5cdb36cde8b2a516371c0a3b70dda36d916cc08b82372916808c"
++checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+ dependencies = [
+ "async-channel",
+ "async-global-executor",
+@@ -138,9 +130,8 @@ dependencies = [
+ "kv-log-macro",
+ "log",
+ "memchr",
+- "num_cpus",
+ "once_cell",
+- "pin-project-lite 0.2.8",
++ "pin-project-lite 0.2.9",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+@@ -148,15 +139,15 @@ dependencies = [
+
+ [[package]]
+ name = "async-task"
+-version = "4.2.0"
++version = "4.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
++checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+
+ [[package]]
+ name = "async-trait"
+-version = "0.1.53"
++version = "0.1.59"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600"
++checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -188,9 +179,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+ [[package]]
+ name = "backtrace"
+-version = "0.3.65"
++version = "0.3.66"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61"
++checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7"
+ dependencies = [
+ "addr2line",
+ "cc",
+@@ -215,23 +206,23 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+ [[package]]
+ name = "blocking"
+-version = "1.2.0"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
++checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+ dependencies = [
+ "async-channel",
++ "async-lock",
+ "async-task",
+ "atomic-waker",
+ "fastrand",
+ "futures-lite",
+- "once_cell",
+ ]
+
+ [[package]]
+ name = "bumpalo"
+-version = "3.9.1"
++version = "3.11.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
++checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+
+ [[package]]
+ name = "bytes"
+@@ -239,17 +230,11 @@ version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+
+-[[package]]
+-name = "cache-padded"
+-version = "1.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
+-
+ [[package]]
+ name = "cc"
+-version = "1.0.73"
++version = "1.0.77"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
++checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+
+ [[package]]
+ name = "cfg-if"
+@@ -265,9 +250,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "cidr-utils"
+-version = "0.5.6"
++version = "0.5.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "aee37eff22e119e0acb33e6e81f85d87a9abf612b82efbcb5fba31b6a74554fb"
++checksum = "355d5b5df67e58b523953d0c1a8d3d2c05f5af51f1332b0199b9c92263614ed0"
+ dependencies = [
+ "debug-helper",
+ "num-bigint",
+@@ -310,28 +295,27 @@ checksum = "0bca1619ff57dd7a56b58a8e25ef4199f123e78e503fe1653410350a1b98ae65"
+
+ [[package]]
+ name = "concurrent-queue"
+-version = "1.2.2"
++version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
++checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b"
+ dependencies = [
+- "cache-padded",
++ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "crossbeam-utils"
+-version = "0.8.8"
++version = "0.8.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
++checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
+ dependencies = [
+ "cfg-if 1.0.0",
+- "lazy_static",
+ ]
+
+ [[package]]
+ name = "ctor"
+-version = "0.1.22"
++version = "0.1.26"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
++checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+ dependencies = [
+ "quote",
+ "syn",
+@@ -365,9 +349,9 @@ dependencies = [
+
+ [[package]]
+ name = "either"
+-version = "1.6.1"
++version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
+
+ [[package]]
+ name = "enum-as-inner"
+@@ -396,26 +380,25 @@ dependencies = [
+
+ [[package]]
+ name = "event-listener"
+-version = "2.5.2"
++version = "2.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
++checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+ [[package]]
+ name = "fastrand"
+-version = "1.7.0"
++version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
++checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+ dependencies = [
+ "instant",
+ ]
+
+ [[package]]
+ name = "form_urlencoded"
+-version = "1.0.1"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
++checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+ dependencies = [
+- "matches",
+ "percent-encoding",
+ ]
+
+@@ -437,9 +420,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+ [[package]]
+ name = "futures"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
++checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -452,9 +435,9 @@ dependencies = [
+
+ [[package]]
+ name = "futures-channel"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
++checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
+ dependencies = [
+ "futures-core",
+ "futures-sink",
+@@ -462,15 +445,15 @@ dependencies = [
+
+ [[package]]
+ name = "futures-core"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
++checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+
+ [[package]]
+ name = "futures-executor"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
++checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
+ dependencies = [
+ "futures-core",
+ "futures-task",
+@@ -479,9 +462,9 @@ dependencies = [
+
+ [[package]]
+ name = "futures-io"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
++checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+
+ [[package]]
+ name = "futures-lite"
+@@ -494,15 +477,15 @@ dependencies = [
+ "futures-io",
+ "memchr",
+ "parking",
+- "pin-project-lite 0.2.8",
++ "pin-project-lite 0.2.9",
+ "waker-fn",
+ ]
+
+ [[package]]
+ name = "futures-macro"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
++checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -511,21 +494,21 @@ dependencies = [
+
+ [[package]]
+ name = "futures-sink"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
++checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+
+ [[package]]
+ name = "futures-task"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
++checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+
+ [[package]]
+ name = "futures-util"
+-version = "0.3.21"
++version = "0.3.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
++checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -534,19 +517,16 @@ dependencies = [
+ "futures-sink",
+ "futures-task",
+ "memchr",
+- "pin-project-lite 0.2.8",
++ "pin-project-lite 0.2.9",
+ "pin-utils",
+ "slab",
+ ]
+
+ [[package]]
+ name = "gcd"
+-version = "2.1.0"
++version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f37978dab2ca789938a83b2f8bc1ef32db6633af9051a6cd409eff72cbaaa79a"
+-dependencies = [
+- "paste",
+-]
++checksum = "a4b1b088ad0a967aa29540456b82fc8903f854775d33f71e9709c4efb3dfbfd2"
+
+ [[package]]
+ name = "getrandom"
+@@ -561,26 +541,26 @@ dependencies = [
+
+ [[package]]
+ name = "getrandom"
+-version = "0.2.6"
++version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
++checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+- "wasi 0.10.2+wasi-snapshot-preview1",
++ "wasi 0.11.0+wasi-snapshot-preview1",
+ ]
+
+ [[package]]
+ name = "gimli"
+-version = "0.26.1"
++version = "0.26.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4"
++checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
+
+ [[package]]
+ name = "gloo-timers"
+-version = "0.2.4"
++version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9"
++checksum = "98c4a8d6391675c6b2ee1a6c8d06e8e2d03605c44cec1270675985a4c2a5500b"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -640,6 +620,16 @@ dependencies = [
+ "unicode-normalization",
+ ]
+
++[[package]]
++name = "idna"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
++dependencies = [
++ "unicode-bidi",
++ "unicode-normalization",
++]
++
+ [[package]]
+ name = "instant"
+ version = "0.1.12"
+@@ -681,15 +671,15 @@ dependencies = [
+
+ [[package]]
+ name = "itoa"
+-version = "1.0.1"
++version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
++checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+
+ [[package]]
+ name = "js-sys"
+-version = "0.3.57"
++version = "0.3.60"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397"
++checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+ dependencies = [
+ "wasm-bindgen",
+ ]
+@@ -721,21 +711,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.124"
++version = "0.2.138"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50"
++checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
+
+ [[package]]
+ name = "linked-hash-map"
+-version = "0.5.4"
++version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
++checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+ [[package]]
+ name = "log"
+-version = "0.4.16"
++version = "0.4.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
++checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "value-bag",
+@@ -764,15 +754,15 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+ [[package]]
+ name = "memchr"
+-version = "2.4.1"
++version = "2.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
++checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.5.1"
++version = "0.5.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
++checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
+ dependencies = [
+ "adler",
+ ]
+@@ -810,9 +800,9 @@ dependencies = [
+
+ [[package]]
+ name = "net2"
+-version = "0.2.37"
++version = "0.2.38"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
++checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631"
+ dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+@@ -832,9 +822,9 @@ dependencies = [
+
+ [[package]]
+ name = "num-integer"
+-version = "0.1.44"
++version = "0.1.45"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+ dependencies = [
+ "autocfg",
+ "num-traits",
+@@ -842,37 +832,27 @@ dependencies = [
+
+ [[package]]
+ name = "num-traits"
+-version = "0.2.14"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
++checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+ dependencies = [
+ "autocfg",
+ ]
+
+-[[package]]
+-name = "num_cpus"
+-version = "1.13.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+-dependencies = [
+- "hermit-abi",
+- "libc",
+-]
+-
+ [[package]]
+ name = "object"
+-version = "0.28.3"
++version = "0.29.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456"
++checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53"
+ dependencies = [
+ "memchr",
+ ]
+
+ [[package]]
+ name = "once_cell"
+-version = "1.10.0"
++version = "1.16.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
++checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+
+ [[package]]
+ name = "parking"
+@@ -880,17 +860,11 @@ version = "2.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+
+-[[package]]
+-name = "paste"
+-version = "1.0.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"
+-
+ [[package]]
+ name = "percent-encoding"
+-version = "2.1.0"
++version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
++checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+ [[package]]
+ name = "pin-project-lite"
+@@ -900,9 +874,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
+
+ [[package]]
+ name = "pin-project-lite"
+-version = "0.2.8"
++version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
++checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+ [[package]]
+ name = "pin-utils"
+@@ -912,22 +886,23 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+ [[package]]
+ name = "polling"
+-version = "2.2.0"
++version = "2.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
++checksum = "166ca89eb77fd403230b9c156612965a81e094ec6ec3aa13663d4c8b113fa748"
+ dependencies = [
++ "autocfg",
+ "cfg-if 1.0.0",
+ "libc",
+ "log",
+ "wepoll-ffi",
+- "winapi 0.3.9",
++ "windows-sys",
+ ]
+
+ [[package]]
+ name = "ppv-lite86"
+-version = "0.2.16"
++version = "0.2.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+ [[package]]
+ name = "proc-macro-error"
+@@ -955,11 +930,11 @@ dependencies = [
+
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.37"
++version = "1.0.47"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1"
++checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+ dependencies = [
+- "unicode-xid",
++ "unicode-ident",
+ ]
+
+ [[package]]
+@@ -970,9 +945,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+ [[package]]
+ name = "quote"
+-version = "1.0.18"
++version = "1.0.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
++checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+ dependencies = [
+ "proc-macro2",
+ ]
+@@ -1020,9 +995,9 @@ dependencies = [
+
+ [[package]]
+ name = "redox_syscall"
+-version = "0.2.13"
++version = "0.2.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
++checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+ dependencies = [
+ "bitflags",
+ ]
+@@ -1033,16 +1008,16 @@ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+ dependencies = [
+- "getrandom 0.2.6",
++ "getrandom 0.2.8",
+ "redox_syscall",
+ "thiserror",
+ ]
+
+ [[package]]
+ name = "regex"
+-version = "1.5.5"
++version = "1.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
++checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+@@ -1051,9 +1026,9 @@ dependencies = [
+
+ [[package]]
+ name = "regex-syntax"
+-version = "0.6.25"
++version = "0.6.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
++checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+ [[package]]
+ name = "resolv-conf"
+@@ -1110,7 +1085,7 @@ dependencies = [
+
+ [[package]]
+ name = "rustscan"
+-version = "2.1.0"
++version = "2.1.1"
+ dependencies = [
+ "ansi_term",
+ "anyhow",
+@@ -1139,9 +1114,9 @@ dependencies = [
+
+ [[package]]
+ name = "ryu"
+-version = "1.0.9"
++version = "1.0.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
++checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
+
+ [[package]]
+ name = "sct"
+@@ -1155,18 +1130,18 @@ dependencies = [
+
+ [[package]]
+ name = "serde"
+-version = "1.0.136"
++version = "1.0.150"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
++checksum = "e326c9ec8042f1b5da33252c8a37e9ffbd2c9bef0155215b6e6c80c790e05f91"
+ dependencies = [
+ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.136"
++version = "1.0.150"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
++checksum = "42a3df25b0713732468deadad63ab9da1f1fd75a48a15024b50363f128db627e"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -1175,9 +1150,9 @@ dependencies = [
+
+ [[package]]
+ name = "serde_json"
+-version = "1.0.79"
++version = "1.0.89"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
++checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
+ dependencies = [
+ "itoa",
+ "ryu",
+@@ -1192,15 +1167,18 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+ [[package]]
+ name = "slab"
+-version = "0.4.6"
++version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
++checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
++dependencies = [
++ "autocfg",
++]
+
+ [[package]]
+ name = "smallvec"
+-version = "1.8.0"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
++checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+ [[package]]
+ name = "socket2"
+@@ -1215,9 +1193,9 @@ dependencies = [
+
+ [[package]]
+ name = "socket2"
+-version = "0.4.4"
++version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
++checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+ dependencies = [
+ "libc",
+ "winapi 0.3.9",
+@@ -1261,9 +1239,9 @@ dependencies = [
+
+ [[package]]
+ name = "subprocess"
+-version = "0.2.8"
++version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "055cf3ebc2981ad8f0a5a17ef6652f652d87831f79fddcba2ac57bcb9a0aa407"
++checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086"
+ dependencies = [
+ "libc",
+ "winapi 0.3.9",
+@@ -1271,13 +1249,13 @@ dependencies = [
+
+ [[package]]
+ name = "syn"
+-version = "1.0.91"
++version = "1.0.105"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
++checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "unicode-xid",
++ "unicode-ident",
+ ]
+
+ [[package]]
+@@ -1310,18 +1288,18 @@ dependencies = [
+
+ [[package]]
+ name = "thiserror"
+-version = "1.0.30"
++version = "1.0.37"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
++checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
+ dependencies = [
+ "thiserror-impl",
+ ]
+
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.30"
++version = "1.0.37"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
++checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -1330,9 +1308,9 @@ dependencies = [
+
+ [[package]]
+ name = "tinyvec"
+-version = "1.5.1"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
++checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+ dependencies = [
+ "tinyvec_macros",
+ ]
+@@ -1390,7 +1368,7 @@ dependencies = [
+ "cfg-if 1.0.0",
+ "enum-as-inner",
+ "futures",
+- "idna",
++ "idna 0.2.3",
+ "lazy_static",
+ "log",
+ "rand",
+@@ -1440,36 +1418,36 @@ dependencies = [
+
+ [[package]]
+ name = "unicode-bidi"
+-version = "0.3.7"
++version = "0.3.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
++checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
+
+ [[package]]
+ name = "unicode-normalization"
+-version = "0.1.19"
++version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
++checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+ dependencies = [
+ "tinyvec",
+ ]
+
+ [[package]]
+ name = "unicode-segmentation"
+-version = "1.9.0"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
++checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a"
+
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.9"
++version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+-
+-[[package]]
+-name = "unicode-xid"
+-version = "0.2.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
++checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+ [[package]]
+ name = "untrusted"
+@@ -1479,21 +1457,20 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+ [[package]]
+ name = "url"
+-version = "2.2.2"
++version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
++checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+ dependencies = [
+ "form_urlencoded",
+- "idna",
+- "matches",
++ "idna 0.3.0",
+ "percent-encoding",
+ ]
+
+ [[package]]
+ name = "value-bag"
+-version = "1.0.0-alpha.8"
++version = "1.0.0-alpha.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f"
++checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
+ dependencies = [
+ "ctor",
+ "version_check",
+@@ -1534,15 +1511,15 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+ [[package]]
+ name = "wasi"
+-version = "0.10.2+wasi-snapshot-preview1"
++version = "0.11.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+ [[package]]
+ name = "wasm-bindgen"
+-version = "0.2.80"
++version = "0.2.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad"
++checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+@@ -1550,13 +1527,13 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-backend"
+-version = "0.2.80"
++version = "0.2.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4"
++checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+ dependencies = [
+ "bumpalo",
+- "lazy_static",
+ "log",
++ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+@@ -1565,9 +1542,9 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-futures"
+-version = "0.4.30"
++version = "0.4.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2"
++checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+@@ -1577,9 +1554,9 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-macro"
+-version = "0.2.80"
++version = "0.2.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5"
++checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+ dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+@@ -1587,9 +1564,9 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-macro-support"
+-version = "0.2.80"
++version = "0.2.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b"
++checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -1600,15 +1577,15 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-shared"
+-version = "0.2.80"
++version = "0.2.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744"
++checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+
+ [[package]]
+ name = "web-sys"
+-version = "0.3.57"
++version = "0.3.60"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283"
++checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
+ dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+@@ -1691,6 +1668,63 @@ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
++[[package]]
++name = "windows-sys"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
++dependencies = [
++ "windows_aarch64_gnullvm",
++ "windows_aarch64_msvc",
++ "windows_i686_gnu",
++ "windows_i686_msvc",
++ "windows_x86_64_gnu",
++ "windows_x86_64_gnullvm",
++ "windows_x86_64_msvc",
++]
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
++
+ [[package]]
+ name = "winreg"
+ version = "0.6.2"
diff --git a/testing/rustypaste-cli/APKBUILD b/testing/rustypaste-cli/APKBUILD
new file mode 100644
index 00000000000..73590930948
--- /dev/null
+++ b/testing/rustypaste-cli/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=rustypaste-cli
+pkgver=0.9.0
+pkgrel=0
+pkgdesc="CLI tool for rustypaste"
+url="https://github.com/orhun/rustypaste-cli"
+# s390x, ppc64le, riscv64: blocked by ring crate
+arch="all !s390x !ppc64le !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-doc"
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/orhun/rustypaste-cli/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --features use-native-certs
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/rpaste" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+7e25ca2a179daf94fbf3a91d2ab602cbc23753da6eb45931937d22c1bf968c9f2dc597a0c32687c373c2d3d28d089da2cb11aedd068ccc49e64cb2a41d2310bf rustypaste-cli-0.9.0.tar.gz
+"
diff --git a/testing/ruuvi-prometheus/APKBUILD b/testing/ruuvi-prometheus/APKBUILD
index c15a36ca8d5..435fdded786 100644
--- a/testing/ruuvi-prometheus/APKBUILD
+++ b/testing/ruuvi-prometheus/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Joonas Kuorilehto <oss@derbian.fi>
# Maintainer: Joonas Kuorilehto <oss@derbian.fi>
pkgname=ruuvi-prometheus
-pkgver=0.1.1
-pkgrel=1
+pkgver=0.1.7
+pkgrel=2
pkgdesc="Ruuvi sensor Prometheus exporter"
url="https://github.com/joneskoo/ruuvi-prometheus"
-arch="all"
-depends="bluez"
license="BSD-2-Clause"
-options="!check" # No test suite
+arch="all !riscv64" # prometheus cpuinfo doesnt support riscv64
+options="!check" # no test suite
+depends="bluez"
makedepends="go"
subpackages="$pkgname-openrc"
@@ -16,8 +16,12 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/joneskoo/ruuvi-prometheus/ar
ruuvi-prometheus.initd
"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
build() {
- go build -ldflags="-s -w -X main.version=$pkgver"
+ go build -ldflags="-X main.version=$pkgver"
}
package() {
@@ -25,6 +29,7 @@ package() {
install -Dm755 "$srcdir"/ruuvi-prometheus.initd "$pkgdir"/etc/init.d/ruuvi-prometheus
}
-
-sha512sums="006f58bc0da72c0f8cc94c9cbfe3b5bf7e9197d87539588d493075f113d77d8fb6a87619b09fddbf2619eb6b28583f6bdb201949cf871bd00bc725bf7cd2c95a ruuvi-prometheus-0.1.1.tar.gz
-6eb05b76ea6289799f37a0e0d42e663d6bd013b46468126cb2ac3c90bfd3421db7044895d49e059e32e9d3f5e870343b494ab455f2164727b111b647af107d61 ruuvi-prometheus.initd"
+sha512sums="
+97a8d8d3f81391746038cda319686d4c3b5da4b138e1e9b2bc9459007d6e4676a8e58531dbbc69b2f0c4691c3f71c25257714944fe03e5580e140c4d20768687 ruuvi-prometheus-0.1.7.tar.gz
+6eb05b76ea6289799f37a0e0d42e663d6bd013b46468126cb2ac3c90bfd3421db7044895d49e059e32e9d3f5e870343b494ab455f2164727b111b647af107d61 ruuvi-prometheus.initd
+"
diff --git a/testing/rvlprog/APKBUILD b/testing/rvlprog/APKBUILD
new file mode 100644
index 00000000000..129bf947f73
--- /dev/null
+++ b/testing/rvlprog/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=rvlprog
+pkgver=0.91
+pkgrel=1
+pkgdesc="CLI tool for REVELPROG-IS programmer"
+url="https://gitlab.com/spectrum70/rvlprog"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # no test suite
+makedepends="libusb-dev"
+source="https://gitlab.com/spectrum70/rvlprog/-/archive/$pkgver/rvlprog-$pkgver.tar.gz"
+
+build() {
+ export LIBS="-lusb-1.0"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="cef54e0980345a4a814cbee0dd6a49b10fcf6d9a5660344abba3d2bf79188f5c20298a2befe3fe8ff99df55f01da33a233ca4d17898ce618dd0e456fa51c87db rvlprog-0.91.tar.gz"
diff --git a/testing/ry/APKBUILD b/testing/ry/APKBUILD
index a8eea353a88..40ca5753cdb 100644
--- a/testing/ry/APKBUILD
+++ b/testing/ry/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Thomas Kienlen <kommander@laposte.net>
pkgname=ry
pkgver=0.5.2
-pkgrel=0
+pkgrel=1
pkgdesc="The simplest ruby version manager"
url="https://github.com/jneen/ry"
arch="noarch"
diff --git a/testing/s-postgray/APKBUILD b/testing/s-postgray/APKBUILD
new file mode 100644
index 00000000000..26c605d5c88
--- /dev/null
+++ b/testing/s-postgray/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Steffen Nurpmeso <steffen@sdaoden.eu>
+pkgname=s-postgray
+pkgver=0.8.2
+pkgrel=0
+pkgdesc="postfix RFC 6647 graylisting policy server"
+url="https://www.sdaoden.eu/code.html#s-toolbox"
+arch="all"
+license="ISC"
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="https://ftp.sdaoden.eu/s-postgray-$pkgver.tar.gz"
+
+build() {
+ local sandbox=0
+ case "$CARCH" in
+ x86_64)
+ sandbox=1
+ ;;
+ esac
+ make VAL_OS_SANDBOX=$sandbox
+}
+
+check() {
+ ./s-postgray-test.sh
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+ed6957d3c64c153953fe13de93b2112c202a2ae8b3214d044deab87ef90a12139bbd611a05b388822de2ac1f2547ce4eaf7d493d47b07610a3a8121b84559b3f s-postgray-0.8.2.tar.gz
+"
diff --git a/testing/s3cmd/APKBUILD b/testing/s3cmd/APKBUILD
deleted file mode 100644
index a4594c10a34..00000000000
--- a/testing/s3cmd/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Gennady Feldman <gena01@gmail.com>
-# Maintainer: Gennady Feldman <gena01@gmail.com>
-pkgname=s3cmd
-pkgver=2.1.0
-pkgrel=0
-pkgdesc="Command line tool for managing Amazon S3 and CloudFront services"
-url="https://github.com/s3tools/s3cmd"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="python3 py3-dateutil py3-magic"
-makedepends="python3-dev py3-setuptools"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/s3tools/s3cmd/archive/v$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py check
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="b77b9cfc3cd4b349ac0293836f07191fedf66d5dd36a1a020214e771adfcbc848d33d60adfff9819f1b566c1db6c199394a537624a77cc334c857f2292bd1291 s3cmd-2.1.0.tar.gz"
diff --git a/testing/s3fs-fuse/APKBUILD b/testing/s3fs-fuse/APKBUILD
deleted file mode 100644
index 03138c781f7..00000000000
--- a/testing/s3fs-fuse/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Steeve Chailloux <steeve.chailloux@orus.io>
-# Maintainer: Steeve Chailloux <steeve.chailloux@orus.io>
-pkgname=s3fs-fuse
-pkgver=1.86
-pkgrel=0
-pkgdesc="FUSE-based file system backed by Amazon S3"
-options="!check" # Fails to connect to localhost
-url="https://github.com/s3fs-fuse/s3fs-fuse"
-arch="all"
-license="GPL-2.0-only"
-depends="fuse"
-makedepends="automake autoconf libxml2-dev fuse-dev curl-dev git bash"
-checkdepends="coreutils sed"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/s3fs-fuse/s3fs-fuse/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="a4f79d9ae526427d5d41b5cd1519e4aac605e8bbd97079aec2a67562f0322fa5664d770d565aed4fca83ae254ab3c0454d25f4b86ec4d148a57c7745e07f5e14 s3fs-fuse-1.86.tar.gz"
diff --git a/testing/s5cmd/APKBUILD b/testing/s5cmd/APKBUILD
new file mode 100644
index 00000000000..1994774619f
--- /dev/null
+++ b/testing/s5cmd/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=s5cmd
+pkgver=2.2.2
+pkgrel=2
+pkgdesc="Parallel S3 and local filesystem execution tool"
+url="https://github.com/peak/s5cmd"
+arch="all"
+license="MIT"
+makedepends="go"
+checkdepends="shared-mime-info"
+source="$pkgname-$pkgver.tar.gz::https://github.com/peak/s5cmd/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local goldflags="
+ -X github.com/peak/s5cmd/v2/version.Version=v$pkgver
+ -X github.com/peak/s5cmd/v2/version.GitCommit=AlpineLinux
+ "
+ go build -v -o bin/$pkgname -ldflags "$goldflags"
+}
+
+check() {
+ # TestAppProxy sometimes fails to spawn a local HTTP server
+ S5CMD_BUILD_BINARY_WITHOUT_RACE_FLAG=1 \
+ go test -skip TestAppProxy ./...
+}
+
+package() {
+ install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+8a9ae4247c41a63d41556d259af3093584b712330571c5997f6d41dd2731c01295bf51188cf3aa0a58fbdb4e8f2c7162a0e6bca13f5f716b6f267000a77289c1 s5cmd-2.2.2.tar.gz
+"
diff --git a/testing/sacc/APKBUILD b/testing/sacc/APKBUILD
index b7979422e25..f4197a48a6f 100644
--- a/testing/sacc/APKBUILD
+++ b/testing/sacc/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Sascha Paunovic <azarus@posteo.net>
# Maintainer: Sascha Paunovic <azarus@posteo.net>
pkgname=sacc
-pkgver=1.01
-pkgrel=1
+pkgver=1.07
+pkgrel=0
pkgdesc="saccomys, simple console gopher client"
url="gopher://bitreich.org/1/scm/sacc"
arch="all"
license="ISC"
options="!check" # sacc does not have checks
-makedepends="ncurses-dev"
+makedepends="ncurses-dev libretls-dev"
subpackages="$pkgname-doc"
-source="ftp://bitreich.org/releases/sacc/sacc-$pkgver.tgz"
+source="ftp://bitreich.org/releases/sacc/sacc-$pkgver.tar.gz"
build() {
make
@@ -20,4 +20,6 @@ package() {
make install PREFIX=/usr DESTDIR="$pkgdir"
}
-sha512sums="1bbe863c406db9cf23d63b655310f7100bc3cdca88b53a12330e3259b9ad1bc814f8c177f7afc387c681da99d7eac91d5219133fb133dc1b7f93bdc5cb008f70 sacc-1.01.tgz"
+sha512sums="
+df4ea8ba797a0ff826cd6afa3840106bdb0e3d358d790ffbece9537b01819d7f60e13f92318cf1a6d18cf1e0408c6ac4518bb9bd7552a941bd2e9ec3a9c37aa8 sacc-1.07.tar.gz
+"
diff --git a/testing/sailfish-access-control/APKBUILD b/testing/sailfish-access-control/APKBUILD
deleted file mode 100644
index 7878a2eefe1..00000000000
--- a/testing/sailfish-access-control/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=sailfish-access-control
-pkgver=0.0.4
-pkgrel=0
-pkgdesc="A thin wrapper library on top of the getuid, getpwuid, getgrouplist, and friends"
-url="https://git.sailfishos.org/mer-core/sailfish-access-control"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="qt5-qtbase-dev"
-source="https://git.sailfishos.org/mer-core/sailfish-access-control/-/archive/$pkgver/sailfish-access-control-$pkgver.tar.gz"
-options="!check" # No test suite available
-
-build() {
- make -C glib
-}
-
-package() {
- ROOT="$pkgdir" make -C glib install
-}
-
-sha512sums="6e5d52b0a6ea82dfa2a74f4d1f9b117ebf4d4a07373a68e77f17bdb92e58e758fbb5f7e4cb19eadcb080536aa7380ed5d2df654cb21cffed20c431230bb611d3 sailfish-access-control-0.0.4.tar.gz"
diff --git a/testing/sakura/APKBUILD b/testing/sakura/APKBUILD
deleted file mode 100644
index d03c436960c..00000000000
--- a/testing/sakura/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Niko Dittmann <mail@niko-dittmann.com>
-# Maintainer: Niko Dittmann <mail@niko-dittmann.com>
-pkgname=sakura
-pkgver=3.7.1
-pkgrel=0
-pkgdesc="Sakura Terminal Emulator"
-url="https://launchpad.net/sakura"
-arch="all"
-license="GPL-2.0-only"
-makedepends="cmake vte3-dev pango-dev gtk+3.0-dev glib-dev gettext-dev pcre2-dev"
-subpackages="$pkgname-doc $pkgname-lang"
-source="https://launchpad.net/sakura/trunk/$pkgver/+download/sakura-$pkgver.tar.bz2"
-options="!check" # no tests provided by upstream
-
-build() {
- cmake -DCMAKE_INSTALL_PREFIX=/usr .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="69d3b14f455480e4515337b4a28daafc807f41653ed8d6b6f934a908305fcc28745796b0f290b3ec6e97f6572132664017f943e556cca69df7007e17fcd9b9df sakura-3.7.1.tar.bz2"
diff --git a/testing/sandbar/APKBUILD b/testing/sandbar/APKBUILD
new file mode 100644
index 00000000000..bd5fa5e7f56
--- /dev/null
+++ b/testing/sandbar/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=sandbar
+pkgver=0.1
+pkgrel=0
+pkgdesc="dwm-like bar for the river compositor"
+url="https://github.com/kolunmi/sandbar"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="fcft-dev wayland-dev wayland-protocols"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kolunmi/sandbar/archive/v$pkgver.tar.gz"
+options="!check" # no test suite
+
+build() {
+ make PREFIX=/usr
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+0edd218c6cde8fa47a7df92243348a12d4608c16347dc76fa2e22d387723f191bb02e32b58bc8c5ac0af0f8f7297162c1d22adc61d2a10cccd42fef94891b829 sandbar-0.1.tar.gz
+"
diff --git a/testing/sane-airscan/APKBUILD b/testing/sane-airscan/APKBUILD
new file mode 100644
index 00000000000..1f0b82b96c0
--- /dev/null
+++ b/testing/sane-airscan/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=sane-airscan
+pkgver=0.99.27
+pkgrel=1
+pkgdesc="SANE backend for AirScan (eSCL) and WSD document scanners"
+url="https://github.com/alexpevzner/sane-airscan"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ avahi-dev
+ gnutls-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libxml2-dev
+ meson
+ sane-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/alexpevzner/sane-airscan/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+a35a92e26a4e3831f127e59bc520248abde8a7b304eb63ecf1d68092f51a8bc49bbc7503bead47ac84d0333d59ae0045d6d7a9f7b89d95f3ddfa2458f3781256 sane-airscan-0.99.27.tar.gz
+"
diff --git a/testing/satellite/APKBUILD b/testing/satellite/APKBUILD
new file mode 100644
index 00000000000..d8f52500347
--- /dev/null
+++ b/testing/satellite/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+pkgname=satellite
+pkgver=1.0.0
+pkgrel=20
+pkgdesc="Satellite is a small Gemini server for serving static files"
+url="https://git.sr.ht/~gsthnz/satellite"
+arch="all"
+license="AGPL-3.0-or-later"
+subpackages="$pkgname-openrc $pkgname-doc"
+makedepends="go scdoc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://git.sr.ht/~gsthnz/satellite/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+"
+pkggroups="satellite"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+
+ install -Dm640 -o root -g satellite "$builddir"/$pkgname.toml \
+ "$pkgdir"/etc/$pkgname.toml
+
+ install -Dm644 doc/satellite.1 "$pkgdir"/usr/share/man/man1/satellite.1
+ install -Dm644 doc/satellite.toml.5 "$pkgdir"/usr/share/man/man5/satellite.toml.5
+}
+
+sha512sums="2b14e6bd7a1b33a0b4cf402e64585f9f87d2491709bd2f383ec0777b24a372fa7360ca7da96d21e61790095554c8029b07cdddc7a23688465ee77f7854beea48 satellite-1.0.0.tar.gz
+dcf84f7f09651426189280df73ce683b5a88bc40764e1ae5e0993fe2d9a796e36437c5f064fae120d749f8fd0151ef11296210556408a04441fc01e571f8f6cb satellite.initd
+f20f287640743ede9139a12fb7cbbcc9f2f51bc179322e04253e236daf55090aa043e9e01ec7f29cadc965cdb73bbaa86080072840913c88503138df8a04e443 satellite.confd"
diff --git a/testing/satellite/satellite.confd b/testing/satellite/satellite.confd
new file mode 100644
index 00000000000..4a0e714c53b
--- /dev/null
+++ b/testing/satellite/satellite.confd
@@ -0,0 +1 @@
+satellite_log_file="/var/log/satellite.log"
diff --git a/testing/satellite/satellite.initd b/testing/satellite/satellite.initd
new file mode 100644
index 00000000000..431408940a8
--- /dev/null
+++ b/testing/satellite/satellite.initd
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+name="satellite"
+description="satellite gemini service"
+supervisor=supervise-daemon
+command="/usr/bin/$name"
+command_user="satellite:satellite"
+pidfile="/run/$name.pid"
+start_stop_daemon_args="--stdout $satellite_log_file --stderr $satellite_log_file"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -f -m 0644 -o ${SVCNAME}:${SVCNAME} "$satellite_log_file"
+}
diff --git a/testing/satellite/satellite.pre-install b/testing/satellite/satellite.pre-install
new file mode 100644
index 00000000000..1fd6912d5a3
--- /dev/null
+++ b/testing/satellite/satellite.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S satellite 2>/dev/null
+adduser -S -D -H -h /var/empty -s /sbin/nologin -G satellite -g satellite satellite 2>/dev/null
+
+exit 0
+
diff --git a/testing/satty/APKBUILD b/testing/satty/APKBUILD
new file mode 100644
index 00000000000..10030a95b8d
--- /dev/null
+++ b/testing/satty/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Sodface <sod@sodface.com>
+# Maintainer: Sodface <sod@sodface.com>
+pkgname=satty
+pkgver=0.12.0
+pkgrel=0
+pkgdesc="Screenshot annotation tool"
+url="https://github.com/gabm/Satty"
+arch="all"
+license="MPL-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ gtk4.0-dev
+ libadwaita-dev
+ "
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/gabm/Satty/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/Satty-$pkgver"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/satty -t "$pkgdir"/usr/bin
+
+ install -Dm644 satty.desktop \
+ -t "$pkgdir"/usr/share/applications/
+ install -Dm644 assets/satty.svg \
+ -t "$pkgdir"/usr/share/icons/hicolor/scalable/apps
+
+ install -Dm644 completions/satty.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/satty
+ install -Dm644 completions/satty.fish \
+ -t "$pkgdir"/usr/share/fish/vendor_completions.d
+ install -Dm644 completions/_satty \
+ -t "$pkgdir"/usr/share/zsh/site-functions
+}
+
+sha512sums="
+e6ede1ec91f6f70bb3aaacd57ff79f378dbf815663566fbe66d4c8f61624553c5f7268c95fb0f479e728bd5063fb8619beecb6222c7b79105ab4463bf7c6602b satty-0.12.0.tar.gz
+"
diff --git a/testing/sauerbraten/APKBUILD b/testing/sauerbraten/APKBUILD
new file mode 100644
index 00000000000..6b19231663a
--- /dev/null
+++ b/testing/sauerbraten/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Simon Zeni <simon@zeni.ca>
+# Contributor: Simon Zeni <simon@zeni.ca>
+pkgname=sauerbraten
+pkgver=2020.12.29
+pkgrel=3
+pkgdesc="Quake-like FPS based on an improved version of the Cube engine"
+url="http://www.sauerbraten.org/"
+arch="all"
+license="zlib"
+makedepends="zlib-dev sdl2-dev sdl2_mixer-dev sdl2_image-dev"
+options="!check" # no tests
+source="https://downloads.sourceforge.net/sauerbraten/sauerbraten_${pkgver//./_}_linux.tar.bz2
+ sauerbraten-client
+ sauerbraten-server
+ "
+builddir="$srcdir/$pkgname"
+
+build() {
+ make -C src
+}
+
+package() {
+ make -C src install
+
+ # Executables
+ install -Dm755 bin_unix/native_client "$pkgdir"/usr/bin/sauer_client
+ install -Dm755 bin_unix/native_server "$pkgdir"/usr/bin/sauer_server
+
+ # Launcher scripts
+ install -Dm755 $srcdir/sauerbraten-client "$pkgdir"/usr/bin/sauerbraten
+ install -Dm755 $srcdir/sauerbraten-server "$pkgdir"/usr/bin
+
+ # Game data
+ install -d "$pkgdir"/usr/share/$pkgname
+ cp -r data "$pkgdir"/usr/share/$pkgname
+ cp -r packages "$pkgdir"/usr/share/$pkgname
+}
+
+sha512sums="
+fd2106e4ed3d48352b5cc2f9d4037933a486e6200ef89bf9e3f31952f4a27ef565f7740d45c32bb9b22da0e17e6542257169134f216bc51a6a465ff311f9bae9 sauerbraten_2020_12_29_linux.tar.bz2
+67bc774a3df9c8dc08323b0b4feaf06071daf80d88d0d2a83595443239a6ce58f44c6dfc08296cadaffeb1252f6647a74170d5d133e14bce6e3be6c1bc324fd5 sauerbraten-client
+84d7c31c083a5d8c1d149f174edd81b046351ee42141a2896e1eec90019579460f2674e0ac25d0f2307b5302720eb24fb4d0fee1c3bd680d8afa1566c92f2e84 sauerbraten-server
+"
diff --git a/testing/sauerbraten/sauerbraten-client b/testing/sauerbraten/sauerbraten-client
new file mode 100755
index 00000000000..10d821bec48
--- /dev/null
+++ b/testing/sauerbraten/sauerbraten-client
@@ -0,0 +1,7 @@
+#!/bin/sh
+SAUER_DATA=/usr/share/sauerbraten
+SAUER_BIN=/usr/bin/sauer_client
+SAUER_OPTIONS="-q${HOME}/.sauerbraten"
+
+cd ${SAUER_DATA}
+exec ${SAUER_BIN} ${SAUER_OPTIONS} "$@"
diff --git a/testing/sauerbraten/sauerbraten-server b/testing/sauerbraten/sauerbraten-server
new file mode 100755
index 00000000000..68cd5af077d
--- /dev/null
+++ b/testing/sauerbraten/sauerbraten-server
@@ -0,0 +1,7 @@
+#!/bin/sh
+SAUER_DATA=/usr/share/sauerbraten
+SAUER_SERV_BIN=/usr/bin/sauer_server
+SAUER_SERV_OPTIONS="-q${HOME}/.sauerbraten"
+
+cd ${SAUER_DATA}
+exec ${SAUER_SERV_BIN} ${SAUER_SERV_OPTIONS} "$@"
diff --git a/testing/sbase/APKBUILD b/testing/sbase/APKBUILD
new file mode 100644
index 00000000000..fdc15c2ebd1
--- /dev/null
+++ b/testing/sbase/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=sbase
+pkgver=0_git20210730
+_gitrev=7d60e2cabbe07495ee74f3d5e705f1e3470148eb
+pkgrel=2
+pkgdesc="Suckless collection of portable unix tools"
+url="https://core.suckless.org/sbase/"
+arch="all"
+license="MIT"
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
+subpackages="$pkgname-doc"
+source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.gz
+ setup-sbase.in
+ "
+options="!check" # no tests provided
+
+snapshot() {
+ local tarball="$pkgname-$pkgver.tar.gz"
+
+ clean
+ deps
+
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ msg 'Clonning source repository'
+ git clone git://git.suckless.org/sbase ${tarball%.tar.gz}
+ git -C ${tarball%.tar.gz} checkout $_gitrev
+
+ # Create reproducible tarball (always same checksum for same content).
+ tar -cz \
+ --owner=0 --group=0 --mtime='1970-01-02' \
+ --exclude-vcs \
+ -f "$SRCDEST/$tarball" ${tarball%.tar.gz}
+
+ msg "Uploading $tarball"
+ rsync --progress "$SRCDEST/$tarball" dev.alpinelinux.org:/archive/$pkgname/
+}
+
+prepare() {
+ default_prepare
+ sed "s/@@VERSION@@/$pkgver/" "$srcdir"/setup-sbase.in > setup-sbase
+}
+
+build() {
+ make sbase-box CFLAGS="$CFLAGS"
+}
+
+package() {
+ make sbase-box-install DESTDIR="$pkgdir" PREFIX=/ MANPREFIX=/usr/share/man VERSION=$pkgver
+ find "$pkgdir"/bin -type l -delete
+
+ install -D -m755 setup-sbase -t "$pkgdir"/usr/sbin/
+}
+
+sha512sums="
+3087354abe4ce86c0e6776ac27f6d5afc43aa641b5068a97b412239494994d9b6fcd9605cbcdc21f592a6b3c44391f707368f78cd7f5f172b2cf4af0c0751752 sbase-0_git20210730.tar.gz
+87ac5fc9db7865fa7cbcdd66e3a6a84d35859ea71253e7dccd46f96db58a7680fa6787957ec5a8f80953d75c10640fa112c907c4cf34b2e3097193d2f10b0d6c setup-sbase.in
+"
diff --git a/testing/sbase/sbase.post-install b/testing/sbase/sbase.post-install
new file mode 100644
index 00000000000..1dac03f62a3
--- /dev/null
+++ b/testing/sbase/sbase.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* Use setup-sbase to install sbase applet symlinks.
+*
+EOF
diff --git a/testing/sbase/sbase.post-upgrade b/testing/sbase/sbase.post-upgrade
new file mode 120000
index 00000000000..2f2c0423be5
--- /dev/null
+++ b/testing/sbase/sbase.post-upgrade
@@ -0,0 +1 @@
+sbase.post-install \ No newline at end of file
diff --git a/testing/sbase/sbase.pre-deinstall b/testing/sbase/sbase.pre-deinstall
new file mode 100644
index 00000000000..203c146208d
--- /dev/null
+++ b/testing/sbase/sbase.pre-deinstall
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for dir in /bin /sbin /usr/bin /usr/sbin; do
+ /usr/sbin/setup-sbase uninstall -d $dir
+done
+
+exit 0
diff --git a/testing/sbase/setup-sbase.in b/testing/sbase/setup-sbase.in
new file mode 100644
index 00000000000..9e796bfcbe1
--- /dev/null
+++ b/testing/sbase/setup-sbase.in
@@ -0,0 +1,122 @@
+#!/bin/sh
+#---help---
+# Usage:
+# setup-sbase install [-d <dest>] [-f] [-v] [<applet>...]
+# setup-sbase uninstall [-d <dest>] [-v] [<applet>...]
+# setup-sbase status [-d <dest>]
+# setup-sbase (-h | -V)
+#
+# Install or uninstall applet symlinks for sbase-box.
+#
+# Arguments:
+# <applet> Name of the applet(s) to (un)install or show status for.
+# Defaults to all sbase-box applets.
+#
+# Options:
+# -d <dest> Path to directory where to install sbase symlinks. If not given,
+# symlinks are created in the same directories as busybox symlinks
+# (if busybox is installed, otherwise /usr/bin).
+# -f If the symlink destination exists, replace it.
+# -v Be verbose.
+# -h Show this message and exit.
+# -V Print ubox version and exit.
+#
+# Report bugs at <https://gitlab.alpinelinux.org/alpine/aports/-/issues>
+#---help---
+set -eu
+
+PROGNAME='setup-sbase'
+VERSION=@@VERSION@@
+SBASE_BOX='/bin/sbase-box'
+
+
+help() {
+ sed -n '/^#---help---/,/^#---help---/p' "$0" | sed 's/^# \?//; 1d;$d;'
+}
+
+die() {
+ echo "$PROGNAME: $2" >&2
+ exit $1
+}
+
+bb_appletdir() {
+ local path=$(/bin/busybox --list-full | grep "/$1$" 2>/dev/null) || :
+ path=${path%/*}
+
+ echo "/${path:-usr/bin}"
+}
+
+if [ $# -eq 0 ]; then
+ help; exit 1
+fi
+
+ACTION=
+case "${1:-}" in
+ -*);;
+ *) ACTION=$1; shift;;
+esac
+
+DESTDIR=
+FORCE=false
+VERBOSE=false
+while getopts ':d:fvhV' OPT; do
+ case "$OPT" in
+ d) DESTDIR="$OPTARG";;
+ f) FORCE=true;;
+ v) VERBOSE=true;;
+ h) help; exit 0;;
+ V) echo "sbase $VERSION"; exit 0;;
+ \?) die 10 "unknown option: -$OPTARG";;
+ esac
+done
+shift $((OPTIND - 1))
+
+[ "$ACTION" ] || { ACTION=${1:-}; shift; }
+[ "$ACTION" ] || die 10 "invalid arguments, missing <action> (see $PROGNAME -h)"
+
+[ -x $SBASE_BOX ] || die 10 "ERROR: $SBASE_BOX does not exist or is not executable!"
+
+[ $# -eq 0 ] && set -- $($SBASE_BOX)
+
+rc=0
+for applet in "$@"; do
+ applet_link="${DESTDIR:-$(bb_appletdir $applet)}/$applet"
+
+ case "$ACTION" in
+ install)
+ [ "$applet_link" -ef "$SBASE_BOX" ] && continue
+
+ if [ -e "$applet_link" ] && ! $FORCE; then
+ $VERBOSE && echo "Skipping $applet - file $applet_link exists" >&2
+ continue
+ fi
+
+ $VERBOSE && echo "Creating symlink $applet_link -> $SBASE_BOX"
+ ln -fs "$SBASE_BOX" "$applet_link" || rc=11
+ ;;
+ uninstall)
+ if [ "$applet_link" -ef "$SBASE_BOX" ]; then
+ $VERBOSE && echo "Removing $applet_link"
+ rm "$applet_link" || rc=11
+ fi
+ ;;
+ status)
+ state=
+ if [ "$applet_link" -ef "$SBASE_BOX" ]; then
+ state='installed'
+ elif [ -e "$applet_link" ]; then
+ state="not-installed ($applet_link exists)"
+ else
+ state='not-installed'
+ fi
+ printf '%-15s%s\n' "$applet" "$state"
+ ;;
+ esac
+done
+
+if [ "$ACTION" = 'uninstall' ] && [ -x /bin/busybox ]; then
+ # Restore possibly overwritten busybox symlinks.
+ /bin/busybox --install -s
+fi
+
+exit $rc
diff --git a/testing/sbcl/0001-Fix-sb-bsd-sockets-on-musl-libc.patch b/testing/sbcl/0001-Fix-sb-bsd-sockets-on-musl-libc.patch
deleted file mode 100644
index 88497a41b38..00000000000
--- a/testing/sbcl/0001-Fix-sb-bsd-sockets-on-musl-libc.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-#2020/01/30 Patch has not yet been accepted upstream
-From be70a77e2b06e2442b38093adbe84b15ea065c8f Mon Sep 17 00:00:00 2001
-From: Eric Timmons <etimmons@mit.edu>
-Date: Sat, 1 Feb 2020 15:38:19 -0500
-Subject: [PATCH 1/5] Make sb-bsd-sockets robust to the absence of NETDB_*
-
-NETDB_INTERNAL and NETDB_SUCCESS are not defined by all libc
-implementations (see: musl libc). If groveling fails for these values, set them
-to NIL which effectively disables the corresponding Lisp conditions from being
-signaled.
----
- contrib/sb-bsd-sockets/name-service.lisp | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/contrib/sb-bsd-sockets/name-service.lisp b/contrib/sb-bsd-sockets/name-service.lisp
-index 34c7262ea..97b505a5e 100644
---- a/contrib/sb-bsd-sockets/name-service.lisp
-+++ b/contrib/sb-bsd-sockets/name-service.lisp
-@@ -1,5 +1,16 @@
- (in-package :sb-bsd-sockets)
-
-+;; If we're unable to grovel for NETDB_INTERNAL and NETDB_SUCCESS (not every
-+;; libc sets them), set their constants to NIL. This effectively makes their
-+;; respective conditions unreachable.
-+#-win32
-+(eval-when (:compile-toplevel :load-toplevel :execute)
-+ (unless (constantp 'sockint::netdb-internal)
-+ (defconstant sockint::netdb-internal nil "See errno."))
-+ (unless (constantp 'sockint::netdb-success)
-+ (defconstant sockint::netdb-success nil "No problem.")))
-+
-+
- (defclass host-ent ()
- ((name :initarg :name :reader host-ent-name
- :documentation "The name of the host")
-@@ -195,7 +206,7 @@ (defun name-service-error (where &optional errno)
- (let ((*name-service-errno* (get-name-service-errno errno)))
- ;; Comment next to NETDB_INTERNAL in netdb.h says "See errno.".
- ;; This special case treatment hasn't actually been tested yet.
-- (if (and #-win32 (= *name-service-errno* sockint::NETDB-INTERNAL))
-+ (if (and #-win32 sockint::netdb-internal #-win32 (= *name-service-errno* sockint::NETDB-INTERNAL))
- (socket-error where)
- (let ((condition
- (condition-for-name-service-errno *name-service-errno*)))
---
-2.25.0
-
diff --git a/testing/sbcl/0002-Fix-threads-on-musl-libc.patch b/testing/sbcl/0002-Fix-threads-on-musl-libc.patch
deleted file mode 100644
index 7561e9182ce..00000000000
--- a/testing/sbcl/0002-Fix-threads-on-musl-libc.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-#2020/01/30 Patch has not yet been accepted upstream
-From 51ee0c90068ef7d88a23d86579cc1f73c2f6055f Mon Sep 17 00:00:00 2001
-From: Eric Timmons <etimmons@mit.edu>
-Date: Sat, 1 Feb 2020 17:33:38 -0500
-Subject: [PATCH 2/5] Do not require _CS_GNU_LIBPTHREAD_VERSION at runtime
- start
-
-If there is no content in confstr for _CS_GNU_LIBPTHREAD_VERSION (i.e., on a
-non GNU libc) then assume the thread implementation is good enough and let the
-user deal with any fallout.
----
- src/runtime/linux-os.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c
-index 89244e793..0ff55653d 100644
---- a/src/runtime/linux-os.c
-+++ b/src/runtime/linux-os.c
-@@ -186,8 +186,13 @@ isnptl (void)
- if (strstr (buf, "NPTL")) {
- return 1;
- }
-+ return 0;
-+ }
-+ else {
-+ /* This libc does not expose the libpthread version. Just assume we have
-+ * a good enough thread implementation. */
-+ return 1;
- }
-- return 0;
- }
- #endif
-
---
-2.25.0
-
diff --git a/testing/sbcl/0003-Fix-foreign-tests-on-musl-libc.patch b/testing/sbcl/0003-Fix-foreign-tests-on-musl-libc.patch
deleted file mode 100644
index 2c4da211a04..00000000000
--- a/testing/sbcl/0003-Fix-foreign-tests-on-musl-libc.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-#2020/01/30 Patch has not yet been accepted upstream
-From 87b1eca2b719fb5e2d6f10352dcdb86f4d389ca9 Mon Sep 17 00:00:00 2001
-From: Eric Timmons <etimmons@mit.edu>
-Date: Sat, 1 Feb 2020 17:33:59 -0500
-Subject: [PATCH 3/5] Teach foreign.test.sh about noop dlclose implementations
-
-Musl libc's implementation of dlclose(3) is (intentionally) a noop (see:
-https://wiki.musl-libc.org/functional-differences-from-glibc.html). When
-running regression tests, test if dlclose is a noop and if so, skip all tests
-that depend on objects being unmapped.
----
- src/code/foreign-load.lisp | 2 +-
- tests/foreign.test.sh | 67 ++++++++++++++++++++++++++++----------
- 2 files changed, 51 insertions(+), 18 deletions(-)
-
-diff --git a/src/code/foreign-load.lisp b/src/code/foreign-load.lisp
-index ada107c36..4510f2ccf 100644
---- a/src/code/foreign-load.lisp
-+++ b/src/code/foreign-load.lisp
-@@ -48,7 +48,7 @@ (defun load-shared-object (pathname &key dont-save)
- definitions; if a symbol was previously referenced through the object and
- is not present in the reloaded version an error will be signalled. Reloading
- may not work as expected if user or library-code has called dlopen(3) on the
--same shared object.
-+same shared object or running on a system where dlclose(3) is a noop.
-
- LOAD-SHARED-OBJECT interacts with SB-EXT:SAVE-LISP-AND-DIE:
-
-diff --git a/tests/foreign.test.sh b/tests/foreign.test.sh
-index fabba1246..53131bdd2 100755
---- a/tests/foreign.test.sh
-+++ b/tests/foreign.test.sh
-@@ -140,6 +140,28 @@ echo 'int late_foo = 43;' > $TEST_FILESTEM-c.c
- echo 'int late_bar() { return 14; }' >> $TEST_FILESTEM-c.c
- build_so $TEST_FILESTEM-c
-
-+cat > $TEST_FILESTEM-noop-dlclose-test.c <<EOF
-+#include <dlfcn.h>
-+#include <stddef.h>
-+
-+int dlclose_is_noop () {
-+ void * handle = dlopen("./$TEST_FILESTEM-noop-dlclose-test-helper.so", RTLD_NOW | RTLD_GLOBAL);
-+ dlclose(handle);
-+
-+ handle = dlopen("./$TEST_FILESTEM-noop-dlclose-test-helper.so", RTLD_NOW | RTLD_NOLOAD);
-+ if (handle != NULL) {
-+ return 1;
-+ }
-+ return 0;
-+}
-+EOF
-+build_so $TEST_FILESTEM-noop-dlclose-test
-+
-+cat > $TEST_FILESTEM-noop-dlclose-test-helper.c <<EOF
-+int sbcl_dlclose_test = 42;
-+EOF
-+build_so $TEST_FILESTEM-noop-dlclose-test-helper
-+
- ## Foreign definitions & load
-
- cat > $TEST_FILESTEM.base.lisp <<EOF
-@@ -246,20 +268,28 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
-
- (note "/initial assertions ok")
-
-+ ;; determine if dlclose is a noop.
-+ (load-shared-object (truename "$TEST_FILESTEM-noop-dlclose-test.so"))
-+ (define-alien-routine dlclose-is-noop int)
-+ (defparameter *dlclose-noop-p* (plusp (dlclose-is-noop)))
-+
- ;; test reloading object file with new definitions
- (assert (= 13 foo))
- (assert (= 42 (bar)))
- (note "/original definitions ok")
-- (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b.bak")
-- (rename-file "$TEST_FILESTEM-b2.so" "$TEST_FILESTEM-b.so")
-- (load-shared-object (truename "$TEST_FILESTEM-b.so"))
-- (note "/reloading ok")
-- (assert (= 42 foo))
-- (assert (= 13 (bar)))
-- (note "/redefined versions ok")
-- (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
-- (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
-- (note "/renamed back to originals")
-+ (if *dlclose-noop-p*
-+ (note "/skipping reloading tests")
-+ (progn
-+ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b.bak")
-+ (rename-file "$TEST_FILESTEM-b2.so" "$TEST_FILESTEM-b.so")
-+ (load-shared-object (truename "$TEST_FILESTEM-b.so"))
-+ (note "/reloading ok")
-+ (assert (= 42 foo))
-+ (assert (= 13 (bar)))
-+ (note "/redefined versions ok")
-+ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
-+ (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
-+ (note "/renamed back to originals")))
-
- ;; test late resolution
- #+linkage-table
-@@ -276,13 +306,16 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
- (load-shared-object (truename "$TEST_FILESTEM-c.so"))
- (assert (= 43 late-foo))
- (assert (= 14 (late-bar)))
-- (unload-shared-object (truename "$TEST_FILESTEM-c.so"))
-- (multiple-value-bind (val err) (ignore-errors late-foo)
-- (assert (not val))
-- (assert (typep err 'undefined-alien-error)))
-- (multiple-value-bind (val err) (ignore-errors (late-bar))
-- (assert (not val))
-- (assert (typep err 'undefined-alien-error)))
-+ (if *dlclose-noop-p*
-+ (note "/skipping linkage table unloading tests")
-+ (progn
-+ (unload-shared-object (truename "$TEST_FILESTEM-c.so"))
-+ (multiple-value-bind (val err) (ignore-errors late-foo)
-+ (assert (not val))
-+ (assert (typep err 'undefined-alien-error)))
-+ (multiple-value-bind (val err) (ignore-errors (late-bar))
-+ (assert (not val))
-+ (assert (typep err 'undefined-alien-error)))))
- (note "/linkage table ok"))
-
- (sb-ext:exit :code $EXIT_LISP_WIN) ; success convention for Lisp program
---
-2.25.0
-
diff --git a/testing/sbcl/0004-Only-include-old-memcpy-version-on-glibc.patch b/testing/sbcl/0004-Only-include-old-memcpy-version-on-glibc.patch
deleted file mode 100644
index f5685cdc604..00000000000
--- a/testing/sbcl/0004-Only-include-old-memcpy-version-on-glibc.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-#2020/01/30 Patch has not yet been accepted upstream
-From 5d7395cbd4eb952d4a988c4ee7ee3f5111a9f5a7 Mon Sep 17 00:00:00 2001
-From: Eric Timmons <etimmons@mit.edu>
-Date: Sat, 1 Feb 2020 17:34:10 -0500
-Subject: [PATCH 4/5] Only include old memcpy version on glibc
-
----
- src/runtime/memcpy.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/runtime/memcpy.h b/src/runtime/memcpy.h
-index a99c5fb7e..e3d104e3a 100644
---- a/src/runtime/memcpy.h
-+++ b/src/runtime/memcpy.h
-@@ -1,3 +1,4 @@
-+#ifdef __GLIBC__
- #ifdef __linux__
- #ifdef __amd64__
- #ifdef __ASSEMBLER__
-@@ -14,3 +15,4 @@ __asm__(".symver memcpy,memcpy@GLIBC_2.0");
- #endif
- #endif
- #endif
-+#endif
---
-2.25.0
-
diff --git a/testing/sbcl/APKBUILD b/testing/sbcl/APKBUILD
deleted file mode 100644
index 7f11a0f0905..00000000000
--- a/testing/sbcl/APKBUILD
+++ /dev/null
@@ -1,57 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Eric Timmons <etimmons@alum.mit.edu>
-# Contributor: Will Sinatra <wpsinatra@gmail.com>
-# Maintainer: Will Sinatra <wpsinatra@gmail.com>
-pkgname=sbcl
-pkgver=2.0.3
-pkgrel=0
-pkgdesc="Steel Bank Common Lisp"
-url="http://www.sbcl.org/"
-arch="x86_64 armv7" #aarch64 support inbound on 2.0.4
-license="custom"
-options="!check"
-checkdepends="ed"
-makedepends="ecl ecl-dev gmp-dev gc gc-dev libffi-dev linux-headers paxmark zlib-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.bz2::https://prdownloads.sourceforge.net/sbcl/sbcl-$pkgver-source.tar.bz2
- 0001-Fix-sb-bsd-sockets-on-musl-libc.patch
- 0002-Fix-threads-on-musl-libc.patch
- 0003-Fix-foreign-tests-on-musl-libc.patch
- 0004-Only-include-old-memcpy-version-on-glibc.patch
- Fix-ARM-build-using-ECL-host.patch
- march-armv5-removed.patch"
-
-build() {
- all_arch_conf='--with-sb-test --with-sb-unicode --with-sb-core-compression'
-
- case "$CARCH" in
- armv7) conf="$all_arch_conf" ;;
- aarch64) ;;
- *) conf="$all_arch_conf --with-sb-thread" ;;
- esac
-
- GNUMAKE=make ./make.sh ecl --prefix=/usr $conf
-}
-
-package() {
- INSTALL_ROOT="$pkgdir/usr" \
- LIB_DIR="/usr/lib" \
- DOC_DIR="$pkgdir/usr/share/doc/$pkgname" \
- sh install.sh
-
- paxmark -rm "$pkgdir"/usr/bin/sbcl
-
- install -Dm644 COPYING \
- "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
-
- rmdir "$pkgdir"/usr/share/doc/sbcl/html \
- "$pkgdir"/usr/share/info 2>/dev/null || true
-}
-
-sha512sums="c29c115fff0e118e5c05959dd8d73ae876458daeb5ddde67ce485b10e6d1583b1f8a9597b54b45606696ab1b1eea5392dcb09357c83fce31323f2a5a154f2dd1 sbcl-2.0.3.tar.bz2
-0f5b3cac8fed2bac1bfa25f4116ef62e7226994318aff26a69bae6e29a7952e16fe930f14bba2a41b0e50c4cc3e30ce2a36dd8d0b85e6090d455ec6712f3a10a 0001-Fix-sb-bsd-sockets-on-musl-libc.patch
-36bbe64437763f7963dab7af3bcc26ab92ee10d6b12532be40706ce01a5fe29878d8ef9392037be8f09b357a6527e992d1698ea4cd1048050544b2e653edd5fa 0002-Fix-threads-on-musl-libc.patch
-9a1b20c07a1f43ea60d1bd0f4de2474c38441858a7de7351f046943d022c21803bd5d9eb05b5c684519a76dc623d9893af1967c3a26177e7447e05e30e61b18b 0003-Fix-foreign-tests-on-musl-libc.patch
-7c7d7b982814435463a7678ff59ab354426bcee62a3b7ba253d8da1391e68c614cd4d90970fbbfd68ea0927c2689b6c16f01b0e0185489329700ce21aaa5a92c 0004-Only-include-old-memcpy-version-on-glibc.patch
-6f49d1f1c6bd4e8d839e6b4ab3bb74cbdcce85ee83a0f1c5efab04d97b613a624f8874dadd7f6d981940ff28c468f00b74a56ff2afc53f41884d753ac7a5028f Fix-ARM-build-using-ECL-host.patch
-367454a75de122134fdbf1064182a96ee00cf0685db0922134fdbdfc0e0bb2c6a5cfb9878f23409eca48a443e0f19b291f8d380e3475176a4c8cea0c9768c2bd march-armv5-removed.patch"
diff --git a/testing/sbcl/Fix-ARM-build-using-ECL-host.patch b/testing/sbcl/Fix-ARM-build-using-ECL-host.patch
deleted file mode 100644
index 056a72d03e9..00000000000
--- a/testing/sbcl/Fix-ARM-build-using-ECL-host.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-#2020/01/30 Patch has not yet been accepted upstream
-From f4de7a2a21acf1a205b725b4bb5596e1475bad26 Mon Sep 17 00:00:00 2001
-From: Eric Timmons <etimmons@mit.edu>
-Date: Sun, 8 Dec 2019 14:00:01 -0500
-Subject: [PATCH] Fix ARM build using ECL host
-
-ECL appears to not like ~T nested in ~<, even when it's the first argument. So
-replace the ~9T that gets triggered during build with spaces.
----
- src/compiler/checkgen.lisp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/compiler/checkgen.lisp b/src/compiler/checkgen.lisp
-index a49a0a1fc..026782327 100644
---- a/src/compiler/checkgen.lisp
-+++ b/src/compiler/checkgen.lisp
-@@ -518,14 +518,14 @@ (defun cast-check-uses (cast)
- (cond ((and (ref-p use) (constant-p (ref-leaf use)))
- (warn condition
- :format-control "~:[This~;~:*~A~] is not a ~
-- ~<~%~9T~:;~/sb-impl:print-type/:~>~% ~S"
-+ ~<~% ~:;~/sb-impl:print-type/:~>~% ~S"
- :format-arguments
- (list what atype (constant-value (ref-leaf use)))))
- (t
- (warn condition
- :format-control
- "~:[Result~;~:*~A~] is a ~/sb-impl:print-type/, ~
-- ~<~%~9T~:;not a ~/sb-impl:print-type/.~>"
-+ ~<~% ~:;not a ~/sb-impl:print-type/.~>"
- :format-arguments (list what dtype atype)))))))
- (values))
-
---
-2.24.0
-
diff --git a/testing/sbcl/march-armv5-removed.patch b/testing/sbcl/march-armv5-removed.patch
deleted file mode 100644
index 0ee97043a66..00000000000
--- a/testing/sbcl/march-armv5-removed.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-#2020/01/30 Patch has not yet been accepted upstream
-Description: Default on armv7 for Ubuntu, since gcc-9 deprecates armv5
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-Last-Update: 2019-07-10
-
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931795
-
---- sbcl-1.5.4.orig/src/runtime/Config.arm-linux
-+++ sbcl-1.5.4/src/runtime/Config.arm-linux
-@@ -9,7 +9,7 @@
- # provided with absolutely no warranty. See the COPYING and CREDITS
- # files for more information.
-
--CFLAGS += -marm -march=armv5
-+CFLAGS += -marm -march=armv7-a
- NM = ./linux-nm
-
- ASSEM_SRC = arm-assem.S ldso-stubs.S
diff --git a/testing/sblg/APKBUILD b/testing/sblg/APKBUILD
new file mode 100644
index 00000000000..3e8232321c3
--- /dev/null
+++ b/testing/sblg/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=sblg
+pkgver=0.5.11
+pkgrel=0
+pkgdesc="static blog utility"
+url="https://kristaps.bsd.lv/sblg/"
+arch="all"
+license="ISC"
+makedepends="bmake expat-dev"
+subpackages="$pkgname-doc"
+source="https://kristaps.bsd.lv/sblg/snapshots/sblg-$pkgver.tar.gz"
+
+build() {
+ ./configure MANDIR=/usr/share/man PREFIX=/usr LDFLAGS="$LDFLAGS"
+ bmake
+}
+
+check() {
+ bmake regress
+}
+
+package() {
+ bmake DESTDIR="$pkgdir" install
+}
+
+doc() {
+ default_doc
+ amove usr/share/sblg/examples
+}
+
+sha512sums="
+2741ce27172d702b2f0165d2fe796896fbc2a08b838e486aa61b9ccfe629ba0a09d5e1e9bbea168425c592bb39ae1cc073e0259772009bad5c7186f64558c93c sblg-0.5.11.tar.gz
+"
diff --git a/testing/sblim-sfcc/APKBUILD b/testing/sblim-sfcc/APKBUILD
index 1fb8feaff4f..48529624a40 100644
--- a/testing/sblim-sfcc/APKBUILD
+++ b/testing/sblim-sfcc/APKBUILD
@@ -2,41 +2,38 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=sblim-sfcc
pkgver=2.2.8
-pkgrel=0
+pkgrel=2
pkgdesc="Small Footprint CIM Client Library"
-url="http://sourceforge.net/projects/sblim"
+url="https://sourceforge.net/projects/sblim/"
arch="all"
license="EPL-1.0"
depends="curl"
makedepends="curl-dev linux-headers automake autoconf libtool m4"
subpackages="$pkgname-dev $pkgname-doc"
-source="http://downloads.sourceforge.net/project/sblim/$pkgname/$pkgname-$pkgver.tar.bz2
+source="https://downloads.sourceforge.net/project/sblim/sblim-sfcc/sblim-sfcc-$pkgver.tar.bz2
time-struct.patch
sockaddr-arg.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
prepare() {
default_prepare
- cd "$builddir"
update_config_guess
+ update_config_sub
}
build() {
- cd "$builddir"
./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
--prefix=/usr \
--enable-static=no
make
}
check() {
- cd "$builddir"
- make check
+ make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/testing/sblim-wbemcli/APKBUILD b/testing/sblim-wbemcli/APKBUILD
index 4ecc29bb67a..16f7abe95d7 100644
--- a/testing/sblim-wbemcli/APKBUILD
+++ b/testing/sblim-wbemcli/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jirka Dutka <jirka@dutka.net>
pkgname=sblim-wbemcli
pkgver=1.6.3
-pkgrel=0
+pkgrel=1
pkgdesc="WBEM Command Line Interface for CIMOM access"
url="https://sourceforge.net/projects/sblim/files/sblim-wbemcli"
arch="all"
diff --git a/testing/sbt/APKBUILD b/testing/sbt/APKBUILD
deleted file mode 100644
index 1ed34d670e4..00000000000
--- a/testing/sbt/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Ed Robinson <edward-robinson@cookpad.com>
-# Maintainer: Ed Robinson <edward-robinson@cookpad.com>
-pkgname=sbt
-pkgver=1.2.8
-pkgrel=0
-pkgdesc="The interactive build tool, sbt is a build tool for Scala, Java, and more."
-url="http://www.scala-sbt.org/"
-arch="noarch !mips !mips64" # java
-license="BSD-3-Clause"
-options="!check"
-depends="openjdk8-jre-base bash"
-source="https://github.com/$pkgname/$pkgname/releases/download/v$pkgver/$pkgname-$pkgver.tgz"
-builddir="$srcdir/$pkgname"
-_basedir="/usr/share/java/$pkgname"
-
-package() {
- local destdir="$pkgdir/$_basedir"
- local confdir="$pkgdir/etc/$pkgname"
- cd "$builddir"
-
- install -dm755 "$destdir"/bin || return 1
- install -m755 -t "$destdir"/bin bin/* || return 1
-
- install -dm755 "$confdir" || return 1
- install -m644 -t "$confdir" conf/* || return 1
-
- mkdir -p "$pkgdir"/usr/bin
- ln -s "$_basedir/bin/sbt" "$pkgdir/usr/bin/sbt" || return 1
-
- # Remove windows specific files
- rm $destdir/bin/sbt.bat
- rm $confdir/sbtconfig.txt
-}
-sha512sums="e12d50de4481dc599b8e129b5caf86b4a6a42426612308f9c8dd791525b5ae325e65f1c1db479bdc00fed2421c108a0dcdd00585f90334446e2cef914484719a sbt-1.2.8.tgz"
diff --git a/testing/sc-controller/APKBUILD b/testing/sc-controller/APKBUILD
new file mode 100644
index 00000000000..7cf6156d2af
--- /dev/null
+++ b/testing/sc-controller/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Joshua Murphy <joshuamurphy@posteo.net>
+# Maintainer: Joshua Murphy <joshuamurphy@posteo.net>
+pkgname=sc-controller
+pkgver=0.4.8.13
+pkgrel=0
+pkgdesc="User-mode driver and GTK3 based GUI for the Steam Controller"
+url="https://github.com/Ryochan7/sc-controller"
+# s390x: py3-vdf
+arch="all !s390x"
+license="GPL-2.0-only"
+depends="
+ gtk+3.0
+ gtk-layer-shell
+ librsvg
+ libusb
+ py3-cairo
+ py3-evdev
+ py3-gobject3
+ py3-libacl
+ py3-vdf
+ "
+makedepends="
+ linux-headers
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ zlib-dev
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Ryochan7/sc-controller/archive/v$pkgver.tar.gz"
+
+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="
+f0220a409b3b312d73bbebec8128d8a5871f4a97a53d5d98034a9d2e31ce9f93c3b5d01e87c6d4bf8dea6ad96ffb53bddacfe490dc5068159275cfe6b8313e80 sc-controller-0.4.8.13.tar.gz
+"
diff --git a/testing/sc-im/APKBUILD b/testing/sc-im/APKBUILD
index bfcb176ca1b..14c166a5b42 100644
--- a/testing/sc-im/APKBUILD
+++ b/testing/sc-im/APKBUILD
@@ -1,33 +1,25 @@
# Contributor: Roberto Oliveira <robertoguimaraes8@gmail.com>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=sc-im
-pkgver=0.7.0
+pkgver=0.8.3
pkgrel=0
-pkgdesc="SC-IM is a spreadsheet program that is based on SC"
+pkgdesc="ncurses spreadsheet program based on SC"
url="https://github.com/andmarti1424/sc-im"
arch="all"
-license="BSD"
+license="BSD-4-Clause"
makedepends="bison ncurses-dev"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/andmarti1424/sc-im/archive/v$pkgver.tar.gz"
-options="!check"
-builddir="$srcdir/$pkgname-$pkgver/src"
+options="!check" # TODO: run proper tests, perhaps upstream PR 385
build() {
- cd "$builddir"
- make
-}
-
-check() {
- cd "$builddir"
- ./scim --version > /dev/null
+ make -C src prefix=/usr
}
package() {
- cd "$builddir"
- make install DESTDIR="$pkgdir"
- mv -f "$pkgdir"/usr/local/bin "$pkgdir"/usr/bin
- mv -f "$pkgdir"/usr/local/share "$pkgdir"/usr/share
+ make -C src install DESTDIR="$pkgdir" prefix=/usr
}
-sha512sums="47bc02d4b698c30a3144733216cfdf57daafb4115e5d49774104c4fedbd22f1ab7e491e1fc16683273c8c5e8820f6caf2389223c4789b9e3f777d57528b76f1b sc-im-0.7.0.tar.gz"
+sha512sums="
+a3d7cf99c7c959d24ebf7e525abb665c02690674c9b3cdf5b234dcdb376fd73e9488bda522106802932084bbfd239928e39b35743c7051178aa14edf61ec2cb8 sc-im-0.8.3.tar.gz
+"
diff --git a/testing/sc3-plugins/APKBUILD b/testing/sc3-plugins/APKBUILD
new file mode 100644
index 00000000000..c72830f7eba
--- /dev/null
+++ b/testing/sc3-plugins/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=sc3-plugins
+pkgver=3.13.0
+pkgrel=1
+pkgdesc="Community plugins for SuperCollider"
+url="https://supercollider.github.io/sc3-plugins/"
+arch="x86_64 x86 aarch64 armv7 armhf" # blocked by supercollider
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ fftw-dev
+ samurai
+ supercollider-dev
+ "
+source="https://github.com/supercollider/sc3-plugins/releases/download/Version-$pkgver/sc3-plugins-$pkgver-Source.tar.bz2"
+builddir="$srcdir/sc3-plugins-$pkgver-Source"
+options="!check" # no tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSUPERNOVA=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+4a89bb7d76d60983a8c5ea6560dc9993f585e7dc47593adc2686b772cdb7649423e2cf2c170340c0c7ee16d4a6348877a6572faacfc593a9075da60b9a06988f sc3-plugins-3.13.0-Source.tar.bz2
+"
diff --git a/testing/scaleway-cli/APKBUILD b/testing/scaleway-cli/APKBUILD
new file mode 100644
index 00000000000..91a7cf5aef8
--- /dev/null
+++ b/testing/scaleway-cli/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=scaleway-cli
+pkgver=2.29.0
+pkgrel=0
+pkgdesc="Command-line client for Scaleway Cloud"
+url="https://www.scaleway.com/en/cli"
+arch="all !x86 !armv7 !armhf" # tests are failing for x86, armv7, armhf
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/scaleway/scaleway-cli/archive/refs/tags/v$pkgver.tar.gz"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+options="chmod-clean"
+options="!check" # failing on the package builders
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o scw ./cmd/scw/main.go
+ PATH=. scw autocomplete script shell=bash > bashcomp
+ PATH=. scw autocomplete script shell=fish > fishcomp
+ PATH=. scw autocomplete script shell=zsh > zshcomp
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 scw "$pkgdir"/usr/bin/scw
+
+ install -Dm644 bashcomp "$pkgdir"/usr/share/bash-completion/completions/scw
+ install -Dm644 fishcomp "$pkgdir"/usr/share/fish/vendor_completions.d/scw.fish
+ install -Dm644 zshcomp "$pkgdir"/usr/share/zsh/site-functions/_scw
+
+}
+
+sha512sums="
+0391d089565156f06fa779283e95591240814249e2275b3b098bac7037c36f906d4e04b4b7b7d2fbc28416dfb691ce0c553518bae45688a2e57e4d6a40a605fd scaleway-cli-2.29.0.tar.gz
+"
diff --git a/testing/scalingo/APKBUILD b/testing/scalingo/APKBUILD
new file mode 100644
index 00000000000..85f2fa96d1d
--- /dev/null
+++ b/testing/scalingo/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=scalingo
+pkgver=1.30.0
+pkgrel=2
+pkgdesc="Command-line client for Scalingo PaaS"
+url="https://doc.scalingo.com/cli"
+arch="all"
+license="BSD-4-Clause"
+makedepends="go"
+source="https://github.com/Scalingo/cli/archive/$pkgver/cli-$pkgver.tar.gz"
+options="chmod-clean"
+builddir="$srcdir/cli-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -trimpath -o bin/scalingo ./scalingo
+}
+
+check() {
+ go test -v ./...
+}
+
+package() {
+ install -Dm755 bin/scalingo "$pkgdir"/usr/bin/scalingo
+}
+
+sha512sums="
+eb155897d3951c78df3a61f4248939be57deded616e3cfba6bd6c06da321cad3a8742bfd43c510451ed30680899d922d6e4f5c54de515a583f222ccbd66f950f cli-1.30.0.tar.gz
+"
diff --git a/testing/scap-workbench/APKBUILD b/testing/scap-workbench/APKBUILD
index f96a8404a19..d47f8cd8738 100644
--- a/testing/scap-workbench/APKBUILD
+++ b/testing/scap-workbench/APKBUILD
@@ -1,39 +1,42 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=scap-workbench
-pkgver=1.2.0
+pkgver=1.2.1
pkgrel=2
pkgdesc="SCAP Scanner And Tailoring Graphical User Interface"
url="https://www.open-scap.org/tools/scap-workbench/"
-arch="all !mips !mips64"
-license="GPL-3.0"
+arch="all !armhf"
+license="GPL-3.0-or-later"
depends="openssh-askpass util-linux openssh-client polkit"
-makedepends="qt5-qtbase-dev qt5-qtxmlpatterns-dev openscap-dev cmake asciidoctor"
+makedepends="
+ asciidoc
+ cmake
+ libxslt
+ openscap-dev
+ qt5-qtbase-dev
+ qt5-qtxmlpatterns-dev
+ samurai
+ "
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/OpenSCAP/$pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenSCAP/scap-workbench/archive/$pkgver.tar.gz
+ appdata.patch
+ remove-werror-cxx-flags.patch
+ "
+options="!check" # todo
-prepare() {
- default_prepare
- cd "$builddir"
- mkdir -p build
-}
build() {
- cd "$builddir"/build
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
- ..
- make
-}
-
-check() {
- cd "$builddir"/build
- return 0
+ -DCMAKE_BUILD_TYPE=none
+ cmake --build build
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="c766b3a93721a2abc52cd47f44f9ed4b1ad02c733ef89dfb3f368f0f3e016c39b188f6ba29e06f1d3ca3b1b6cdc17e057a80198b105e94c60e484acafd7e1373 scap-workbench-1.2.0.tar.gz"
+sha512sums="
+37dad3d3310a9ba200756480eee2c93913617a77e9983c18dafdc3320fc62774d23b327200fa21f63cec160ef8d6527ac43c11e7d0cdce49b3a364590311fbad scap-workbench-1.2.1.tar.gz
+b2bf0e1cca3f30f4cacf5f584a6e4958077e2907a3821ea98064d6174322d66ad163fc2708adca167db94454246f39bcf8c444074d4ed70a6739ee7af47b8597 appdata.patch
+7434322c26be306f2c73ccf864846f8d8f8857a4def784b7c67c9613010f0ffdefad3a360d86b1945d3e77d1a197e657d1b3a71c9f73d3bee98d1bccb7021c9e remove-werror-cxx-flags.patch
+"
diff --git a/testing/scap-workbench/appdata.patch b/testing/scap-workbench/appdata.patch
new file mode 100644
index 00000000000..29a793fa18c
--- /dev/null
+++ b/testing/scap-workbench/appdata.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0e98b7f..d4fb02c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -284,7 +284,7 @@ install(FILES "share/pixmaps/scap-workbench.png"
+ install(FILES "share/pixmaps/scap-workbench.svg"
+ DESTINATION "${CMAKE_INSTALL_DATADIR}/pixmaps")
+ install(FILES "scap-workbench.appdata.xml"
+- DESTINATION "${CMAKE_INSTALL_DATADIR}/appdata")
++ DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo")
+
+ if (ASCIIDOC_EXECUTABLE)
+ file(GLOB USER_MANUAL_SCREENSHOTS "${CMAKE_CURRENT_SOURCE_DIR}/doc/user_manual/*.png")
diff --git a/testing/scap-workbench/remove-werror-cxx-flags.patch b/testing/scap-workbench/remove-werror-cxx-flags.patch
new file mode 100644
index 00000000000..9256be6b8fb
--- /dev/null
+++ b/testing/scap-workbench/remove-werror-cxx-flags.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0e98b7f..de3d01f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -162,7 +162,7 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" AND ${CMAKE_CXX_COMPILER_VERSION} VE
+ endif()
+
+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror")
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra ")
+ endif()
+
+ include_directories(${SCAP_WORKBENCH_INCLUDE_DIRS})
diff --git a/testing/schismtracker/APKBUILD b/testing/schismtracker/APKBUILD
new file mode 100644
index 00000000000..2fb2de43613
--- /dev/null
+++ b/testing/schismtracker/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=schismtracker
+pkgver=20231029
+pkgrel=0
+pkgdesc="Oldschool sample-based music composition tool"
+url="https://schismtracker.org/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="python3"
+makedepends="
+ alsa-lib-dev
+ automake
+ autoconf
+ flac-dev
+ libxext-dev
+ libxv-dev
+ python3-dev
+ sdl2-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/schismtracker/schismtracker/releases/download/$pkgver/schismtracker-$pkgver.source.tar.gz"
+builddir="$srcdir"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+42b01e6945380f346d2bca6c650fcd282df29ddcec0692014e1abb3d215110b455ae95cb0c11de981369adf8d03109e3517c34fb433081d01170d7bc8c29a67d schismtracker-20231029.source.tar.gz
+"
diff --git a/testing/schroot/APKBUILD b/testing/schroot/APKBUILD
deleted file mode 100644
index 17378be683b..00000000000
--- a/testing/schroot/APKBUILD
+++ /dev/null
@@ -1,70 +0,0 @@
-# Contributor: Danct12 <danct12@disroot.org>
-# Maintainer: Danct12 <danct12@disroot.org>
-pkgname=schroot
-pkgver=1.6.10
-pkgrel=0
-pkgdesc="Allows users to execute shell commands under different root filesystems. (Successor to dchroot)."
-url="https://packages.qa.debian.org/s/schroot.html"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="autoconf automake boost-dev coreutils cppunit-dev groff gettext-dev libtool"
-subpackages="$pkgname-bash-completion $pkgname-dev $pkgname-doc $pkgname-lang"
-source="
- http://http.debian.net/debian/pool/main/s/schroot/schroot_$pkgver.orig.tar.xz
- http://http.debian.net/debian/pool/main/s/schroot/schroot_$pkgver-3+deb9u1.debian.tar.xz
- busybox-compat.patch
- getent.patch
- getmntent.patch
- musl.patch
- pam.d.schroot.patch
- remove-networks.patch
- schroot-cppunit.patch
- "
-options="suid !check" # failing testsuite (20 out of 23 passed)
-
-prepare() {
- default_prepare
-
- # shellcheck disable=SC2002
- cat "$srcdir"/debian/patches/series | while read -r p; do
- patch -p1 -i "$srcdir"/debian/patches/"$p"
- done
-
- # invalid sbuild_version
- sed -i "s/@sbuild_version@/$pkgver/g" sbuild/sbuild.pc.in
-
- ./bootstrap
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-dchroot \
- --enable-lvm-snapshot \
- --enable-btrfs-snapshot \
- --with-bash-completion-dir=/usr/share/bash-completion/completions/ \
- BTRFS=/sbin/btrfs \
- BTRFSCTL=/sbin/btrfsctl \
- LVCREATE=/sbin/lvcreate \
- LVREMOVE=/sbin/lvremove
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="25155989c7811ab4c7bf3cdceaa8d0ffb12f08388143891def96fcd205f1cc401dad9a74f0e9a9ef8610d50174ff8319a8368401431dc87e1a11c0241e61fcbe schroot_1.6.10.orig.tar.xz
-5e6e3e0438151f4ce9a2a9a31c3a814091665efd17cbb050a4374d57d0f7eaf562182e2d075a014969d8a299d6b223c833267b5d7827802927cf7f317ffe54bc schroot_1.6.10-3+deb9u1.debian.tar.xz
-26fd02d3daf3a840685a1f58ffe95ecfa0405e8598eaf85484342a609d13f2c70b7393704cde5f1d85581b73269db2769ccb1d3a4744b05ed5e6675edf1f958d busybox-compat.patch
-fa37b263a59e170734bdfbb046259632baf71b809602f52d532cb3c7ea8c1b45384ebc335233fb983ee0f17e823f157dfb65e56fb511f73f4b261bcfe4fcca6f getent.patch
-21023b63665c6ab3993e8142e684b3d6086b35a15287db806a13013f5df3943383d8bb6063bc73a98d8cc548601ef89ad780e1e3a00b1bca3d239a4b217828e8 getmntent.patch
-c8a87b5d03adcd13bd103a3044da84782ac11eb0d38e1a3267ea41862f5de86c03442289074d0964a861c1bc09222fc2ca60efbe8818338fb4e0583e81a22ec8 musl.patch
-dcdbcb91e7960434ce2d7dc7eeea5b3bae65fa5800221c5cb6ffaf9aaaa45f9c2e0cdfdfe130de035095b2493364f1574dca73421043873adf65533f19791b8f pam.d.schroot.patch
-82542ed4db7f3e00d5531fb3af799f70502d3464db4182a128940db80675bf9b45b2e65a71c891b3b1ee6a6f8dff81c82b844ca65507f076cc54a293003e7088 remove-networks.patch
-229b0be8f45099af122139511bf8137ec01074df0865e33097e8baa80002a22b2e82ce338fb62a2b50ff33c0539242798f35dd9fc5438d3ea06aefc1d94663dd schroot-cppunit.patch"
diff --git a/testing/schroot/busybox-compat.patch b/testing/schroot/busybox-compat.patch
deleted file mode 100644
index 98c0dc2d76f..00000000000
--- a/testing/schroot/busybox-compat.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/etc/profile-templates/all/all/nssdatabases b/etc/profile-templates/all/all/nssdatabases
-index 42fa310..815ddce 100644
---- a/etc/profile-templates/all/all/nssdatabases
-+++ b/etc/profile-templates/all/all/nssdatabases
-@@ -4,4 +4,3 @@
- passwd
- shadow
- group
--gshadow
-diff --git a/etc/profile-templates/buildd/all/nssdatabases b/etc/profile-templates/buildd/all/nssdatabases
-index 42fa310..815ddce 100644
---- a/etc/profile-templates/buildd/all/nssdatabases
-+++ b/etc/profile-templates/buildd/all/nssdatabases
-@@ -4,4 +4,3 @@
- passwd
- shadow
- group
--gshadow
-diff --git a/etc/setup.d/20copyfiles b/etc/setup.d/20copyfiles
-index 2c01af9..e427d35 100755
---- a/etc/setup.d/20copyfiles
-+++ b/etc/setup.d/20copyfiles
-@@ -39,9 +39,9 @@ copy_file()
- if [ -e "$2" ]; then
-
- # Device and inode
-- da=$(/usr/bin/stat --format="%d %i" "$1")
-+ da=$(/bin/stat -c "%d %i" "$1")
- # This one can fail since it might not exist yet
-- db=$(/usr/bin/stat --format="%d %i" "$2" 2>/dev/null || :)
-+ db=$(/bin/stat -c "%d %i" "$2" 2>/dev/null || :)
-
- if [ "$da" = "$db" ]; then
- COPY="false"
-diff --git a/etc/setup.d/20nssdatabases b/etc/setup.d/20nssdatabases
-index 6ea83c0..3f4019c 100755
---- a/etc/setup.d/20nssdatabases
-+++ b/etc/setup.d/20nssdatabases
-@@ -42,9 +42,9 @@ if [ $STAGE = "setup-start" ] || [ $STAGE = "setup-recover" ]; then
- fi
-
- # Device and inode
-- dr=$(/usr/bin/stat --format="%d %i" "/etc/$db")
-+ dr=$(/bin/stat -c "%d %i" "/etc/$db")
- # This one can fail since it might not exist yet
-- dc=$(/usr/bin/stat --format="%d %i" "${CHROOT_PATH}/etc/$db" 2>/dev/null || :)
-+ dc=$(/bin/stat -c "%d %i" "${CHROOT_PATH}/etc/$db" 2>/dev/null || :)
-
- # If the database inside and outside the chroot is the
- # same, it's very likely that dup_nss would blank the
diff --git a/testing/schroot/getent.patch b/testing/schroot/getent.patch
deleted file mode 100644
index b89e63c1d49..00000000000
--- a/testing/schroot/getent.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 6ffdd152d3fb07921c02e739ce5b47d1e177e7e6 Mon Sep 17 00:00:00 2001
-From: Andrea Brancaleoni <miwaxe@gmail.com>
-Date: Mon, 24 Aug 2015 18:39:16 +0200
-Subject: [PATCH] getent
-
----
- etc/setup.d/20nssdatabases | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git etc/setup.d/20nssdatabases etc/setup.d/20nssdatabases
-index 6f14c81..697bb1e 100755
---- a/etc/setup.d/20nssdatabases
-+++ b/etc/setup.d/20nssdatabases
-@@ -29,7 +29,7 @@ set -e
- dup_nss()
- {
- info "Copying $1 database to $2"
-- getent "$1" > "$2"
-+ getent "$1" > "$2" 2>/dev/null || cat "/etc/$1" > "$2"
- }
-
- if [ $STAGE = "setup-start" ] || [ $STAGE = "setup-recover" ]; then
---
-2.5.0
-
diff --git a/testing/schroot/getmntent.patch b/testing/schroot/getmntent.patch
deleted file mode 100644
index 8453bfb3a30..00000000000
--- a/testing/schroot/getmntent.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From db62a534ebcf60391d9e0acffa641e60dfba18fb Mon Sep 17 00:00:00 2001
-From: Andrea Brancaleoni <abc@pompel.me>
-Date: Wed, 19 Sep 2018 10:36:36 +0200
-Subject: [PATCH] getmntent fix
-
----
- sbuild/sbuild-mntstream.cc | 15 ++-------------
- sbuild/sbuild-mntstream.h | 3 +--
- 2 files changed, 3 insertions(+), 15 deletions(-)
-
-diff --git sbuild/sbuild-mntstream.cc sbuild/sbuild-mntstream.cc
-index d376fe5..d7324e7 100644
---- a/sbuild/sbuild-mntstream.cc
-+++ b/sbuild/sbuild-mntstream.cc
-@@ -37,9 +37,7 @@ namespace
- emap init_errors[] =
- {
- // TRANSLATORS: %1% = mount file name
-- emap(mntstream::MNT_OPEN, N_("Failed to open mount file ‘%1%’")),
-- // TRANSLATORS: %1% = mount file name
-- emap(mntstream::MNT_READ, N_("Failed to read mount file ‘%1%’"))
-+ emap(mntstream::MNT_OPEN, N_("Failed to open mount file ‘%1%’"))
- };
-
- }
-@@ -109,16 +107,7 @@ mntstream::read(int quantity)
- errno = 0;
- entry = getmntent(mntfile);
-
-- if (entry == 0) // EOF or error
-- {
-- //std::cerr << "Mount file read error: ";
-- if (errno) // error
-- {
-- this->error_status = true;
-- throw error(this->file, MNT_READ, strerror(errno));
-- }
-- return;
-- }
-+ if (entry == 0) return;
-
- mntentry newentry(*entry); // make a mntentry
- this->data.push_back(newentry); // push onto the end of the list
-diff --git sbuild/sbuild-mntstream.h sbuild/sbuild-mntstream.h
-index ea3d179..fffcdf4 100644
---- a/sbuild/sbuild-mntstream.h
-+++ b/sbuild/sbuild-mntstream.h
-@@ -49,8 +49,7 @@ namespace sbuild
- /// Error codes.
- enum error_code
- {
-- MNT_OPEN, ///< Failed to open mount file.
-- MNT_READ ///< Failed to read mount file.
-+ MNT_OPEN ///< Failed to open mount file.
- };
-
- /// Exception type.
---
-2.19.0
-
diff --git a/testing/schroot/musl.patch b/testing/schroot/musl.patch
deleted file mode 100644
index 8e27ad7e4cc..00000000000
--- a/testing/schroot/musl.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 73936a423227aa78b7682bdd3edc20643763807b Mon Sep 17 00:00:00 2001
-From: Andrea Brancaleoni <abc@pompel.me>
-Date: Wed, 19 Sep 2018 11:22:47 +0200
-Subject: [PATCH] musl
-
----
- sbuild/sbuild-feature.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git sbuild/sbuild-feature.cc sbuild/sbuild-feature.cc
-index 5ac4725..9902db3 100644
---- a/sbuild/sbuild-feature.cc
-+++ b/sbuild/sbuild-feature.cc
-@@ -20,6 +20,8 @@
-
- #include <iostream>
-
-+#include <libintl.h>
-+
- #include "sbuild-feature.h"
-
- using namespace sbuild;
---
-2.19.0
-
-diff --git a/sbuild/Makefile.am b/sbuild/Makefile.am
-index 03b5c7b..afa7638 100644
---- a/sbuild/Makefile.am
-+++ b/sbuild/Makefile.am
-@@ -222,7 +222,7 @@ pkgconfigdata_DATA = sbuild.pc
- # Uncomment to build a versioned library
- libsbuild_version = -version-info $(SBUILD_CURRENT_INTERFACE):$(SBUILD_INTERFACE_AGE):$(SBUILD_BINARY_AGE)
- libsbuild_la_LDFLAGS = $(libsbuild_version) \
-- -rpath $(libdir) -no-undefined
-+ -rpath $(libdir) -no-undefined -lintl
-
- EXTRA_DIST = \
- CMakeLists.txt \
-diff --git a/test/Makefile.in b/test/Makefile.in
-index ce78448..efbc287 100644
---- a/test/Makefile.in
-+++ b/test/Makefile.in
-@@ -334,7 +334,7 @@ am__v_CC_1 =
- CCLD = $(CC)
- LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-+ $(AM_LDFLAGS) $(LDFLAGS) -lcppunit -o $@
- AM_V_CCLD = $(am__v_CCLD_@AM_V@)
- am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
- am__v_CCLD_0 = @echo " CCLD " $@;
diff --git a/testing/schroot/pam.d.schroot.patch b/testing/schroot/pam.d.schroot.patch
deleted file mode 100644
index ec63323b0b6..00000000000
--- a/testing/schroot/pam.d.schroot.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/etc/pam/schroot
-+++ b/etc/pam/schroot
-@@ -23,13 +23,9 @@
- # time restrainst on schroot usage.
- # account requisite pam_time.so
-
--# The standard Unix authentication modules, used with
--# NIS (man nsswitch) as well as normal /etc/passwd and
--# /etc/shadow entries.
--@include common-auth
--@include common-account
--@include common-session
--
-+account required pam_unix.so
-+session required pam_unix.so
-+
- # Sets up user limits, please uncomment and read /etc/security/limits.conf
- # to enable this functionality.
- # session required pam_limits.so
-
diff --git a/testing/schroot/remove-networks.patch b/testing/schroot/remove-networks.patch
deleted file mode 100644
index 75066693480..00000000000
--- a/testing/schroot/remove-networks.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From e59bc1b6c6535ec8ab8a57004351718ab2677196 Mon Sep 17 00:00:00 2001
-From: Andrea Brancaleoni <abc@pompel.me>
-Date: Wed, 19 Sep 2018 12:36:41 +0200
-Subject: [PATCH] remove networks
-
----
- etc/profile-templates/buildd/all/copyfiles | 1 -
- etc/profile-templates/default/all/nssdatabases | 1 -
- etc/profile-templates/desktop/all/nssdatabases | 1 -
- 3 files changed, 3 deletions(-)
-
-diff --git etc/profile-templates/buildd/all/copyfiles etc/profile-templates/buildd/all/copyfiles
-index fe18fb3..2469d3e 100644
---- a/etc/profile-templates/buildd/all/copyfiles
-+++ b/etc/profile-templates/buildd/all/copyfiles
-@@ -3,4 +3,3 @@
- # <source and destination>
- /etc/hosts
- /etc/resolv.conf
--/etc/networks
-diff --git etc/profile-templates/default/all/nssdatabases etc/profile-templates/default/all/nssdatabases
-index a9f1319..22efe1b 100644
---- a/etc/profile-templates/default/all/nssdatabases
-+++ b/etc/profile-templates/default/all/nssdatabases
-@@ -1,4 +1,3 @@
- services
- protocols
--networks
- hosts
-diff --git etc/profile-templates/desktop/all/nssdatabases etc/profile-templates/desktop/all/nssdatabases
-index a9f1319..22efe1b 100644
---- a/etc/profile-templates/desktop/all/nssdatabases
-+++ b/etc/profile-templates/desktop/all/nssdatabases
-@@ -1,4 +1,3 @@
- services
- protocols
--networks
- hosts
---
-2.19.0
-
diff --git a/testing/schroot/schroot-cppunit.patch b/testing/schroot/schroot-cppunit.patch
deleted file mode 100644
index 3e11c73fd40..00000000000
--- a/testing/schroot/schroot-cppunit.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac 2017-05-20 09:50:30.146864516 +0000
-+++ b/configure.ac 2017-05-20 09:51:26.216792794 +0000
-@@ -336,7 +336,7 @@
- [HAVE_UUID=yes],
- [HAVE_UUID=no])
-
--AM_PATH_CPPUNIT([1.10.0], [HAVE_CPPUNIT=yes])
-+PKG_CHECK_MODULES([CPPUNIT], [cppunit], [HAVE_CPPUNIT=yes], [HAVE_CPPUNIT=no])
- AM_CONDITIONAL([USE_UNIT_TESTS], [test -n "$HAVE_CPPUNIT"])
-
- SCHROOT_CFLAGS="$UUID_CFLAGS"
diff --git a/testing/scooper/APKBUILD b/testing/scooper/APKBUILD
new file mode 100644
index 00000000000..5359d2b3065
--- /dev/null
+++ b/testing/scooper/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=scooper
+pkgver=1.3
+pkgrel=1
+pkgdesc="Web interface for litterbox"
+arch="all"
+url="https://git.causal.agency/scooper/"
+license="GPL-3.0-or-later"
+options="!check" # v1.1 not a real test suite
+depends="litterbox"
+makedepends="kcgi-dev kcgi-static zlib-static"
+subpackages="$pkgname-doc"
+source="https://git.causal.agency/scooper/snapshot/scooper-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make all
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6dc7eb751e25f75ce8fe9004c817a2f20fb6456cf25a7e0a76ca06e923241a1ad54146b1c36d61f48ea0cf21512f768136d64995b12f79629eac86adf109a8d5 scooper-1.3.tar.gz
+"
diff --git a/testing/scratch/APKBUILD b/testing/scratch/APKBUILD
index f11a741270c..3cbdc6586f0 100644
--- a/testing/scratch/APKBUILD
+++ b/testing/scratch/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=scratch
pkgver=1.4.0.7
-pkgrel=0
+pkgrel=1
pkgdesc="Create and share your own interactive stories, games, music and art"
url="https://scratch.mit.edu"
arch="x86_64 armv7 s390x" # disabled for the other architectures due to compiling problems
diff --git a/testing/scrcpy/APKBUILD b/testing/scrcpy/APKBUILD
deleted file mode 100644
index 59d566e8666..00000000000
--- a/testing/scrcpy/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: prspkt <prspkt@protonmail.com>
-# Maintainer: prspkt <prspkt@protonmail.com>
-pkgname=scrcpy
-pkgver=1.14
-pkgrel=0
-pkgdesc="Display and control your Android device"
-url="https://github.com/Genymobile/scrcpy"
-arch="all !s390x !ppc64le !mips !mips64" # limited by android-tools
-license="Apache-2.0"
-options="!check" # no test suite
-depends="android-tools"
-makedepends="ffmpeg-dev mesa-dev meson sdl2-dev"
-subpackages="$pkgname-doc"
-source="scrcpy-$pkgver.tar.gz::https://github.com/Genymobile/scrcpy/archive/v$pkgver.tar.gz
- https://github.com/Genymobile/scrcpy/releases/download/v$pkgver/scrcpy-server-v$pkgver"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- -Dcompile_server=false \
- -Dprebuilt_server=/usr/share/scrcpy/scrcpy-server-v$pkgver \
- . output
- ninja -C output
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
- install -Dm644 "$srcdir"/scrcpy-server-v$pkgver \
- "$pkgdir"/usr/share/scrcpy/scrcpy-server
-}
-
-sha512sums="3c617130077f34e62696223a14ece01ecf496c7688a9fbe2ff546c1c2da5723652c38a2089130fee4158b19dca585fd2739c33ba1b653bf288d78d559cdb9760 scrcpy-1.14.tar.gz
-791b2847882749994a6e013cc964aa2d6c23e6550b86352f81874e8d23c495740d15aa4872a59cb3529b8210f59a230014aa7c369150609ef7e907f6199f9d80 scrcpy-server-v1.14"
diff --git a/testing/scream/APKBUILD b/testing/scream/APKBUILD
deleted file mode 100644
index 5209dcaa0be..00000000000
--- a/testing/scream/APKBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# Contributor: Patrick Gaskin <patrick@pgaskin.net>
-# Maintainer: Patrick Gaskin <patrick@pgaskin.net>
-pkgname=scream
-pkgver=3.4
-pkgrel=0
-pkgdesc="client for scream virtual network sound card for Microsoft Windows"
-url="http://github.com/duncanthrax/scream"
-arch="all"
-license="MS-PL"
-options="!check" # no test suite provided
-makedepends="alsa-lib-dev pulseaudio-dev"
-subpackages="$pkgname-alsa $pkgname-alsa-openrc:alsa_openrc:noarch $pkgname-pulse"
-source="$pkgname-$pkgver.tar.gz::https://github.com/duncanthrax/scream/archive/3.4.tar.gz
- scream-alsa.initd
- scream-alsa.confd
- "
-
-# Note: Init scripts are only provided for scream-alsa, because pulseaudio is
-# meant to be run per-user, and scream-raw doesn't have any output
-# methods built-in.
-
-build() {
- make -C "$builddir"/Receivers/raw
- make -C "$builddir"/Receivers/alsa
- make -C "$builddir"/Receivers/pulseaudio
-}
-
-package() {
- install -D -m755 "$builddir"/Receivers/raw/scream-raw "$pkgdir"/usr/bin/scream-raw
- install -D -m755 "$builddir"/Receivers/alsa/scream-alsa "$pkgdir"/usr/bin/scream-alsa
- install -D -m755 "$builddir"/Receivers/pulseaudio/scream-pulse "$pkgdir"/usr/bin/scream-pulse
-}
-
-alsa() {
- pkgdesc="$pkgdesc (ALSA client)"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/scream-alsa "$subpkgdir"/usr/bin/scream-alsa
-}
-
-alsa_openrc() {
- # based on default_openrc, but needs to be here because it's for a subpackage
- pkgdesc="$pkgdesc (ALSA client) (OpenRC init scripts)"
- install_if="openrc $pkgname-alsa=$pkgver-r$pkgrel"
- install -D -m755 "$srcdir"/scream-alsa.initd "$subpkgdir"/etc/init.d/scream-alsa
- install -D -m755 "$srcdir"/scream-alsa.confd "$subpkgdir"/etc/conf.d/scream-alsa
-}
-
-pulse() {
- pkgdesc="$pkgdesc (PulseAudio client)"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/scream-pulse "$subpkgdir"/usr/bin/scream-pulse
-}
-
-sha512sums="7b1ebf8d3e5590631f817c916e43e8319240148ffc80d7d8c92936c5121ea63b60e3cd2bcc9a4f49e0d1c6f93a4bb243322fa5587fd823a704c4ec18b6614ec3 scream-3.4.tar.gz
-781ea7e73c253c9f2b6022b448a5f10bd3fbd9650b111e0ae5e68c8610e6bef13dffc113d15f53cb17fd12771247ab4b35ed0f0cb519ed67efd2ffc0d9297914 scream-alsa.initd
-46572f29830962c1f3201d5f3716ddbb05f7387a1fd547138bb6bd945f336b35c1a84c68b6d0f9071b994c632ae37c8d271f67541ae99247463dcb88a5186bfa scream-alsa.confd"
diff --git a/testing/scream/scream-alsa.confd b/testing/scream/scream-alsa.confd
deleted file mode 100644
index cbbae362669..00000000000
--- a/testing/scream/scream-alsa.confd
+++ /dev/null
@@ -1,20 +0,0 @@
-# The network interface to use. Specify either the IP or
-# interface name. When using multicast, this interface is
-# used for IGMP. When using unicast, only binds to this
-# interface.
-#SCREAM_INTERFACE=""
-
-# The port to connect to. Applies to unicast and multicast.
-SCREAM_PORT="4010"
-
-# Use multicast for streaming.
-SCREAM_MULTICAST="yes"
-
-# The multicast group address.
-SCREAM_MULTICAST_GROUP="239.255.77.77"
-
-# The target latency in ms.
-SCREAM_LATENCY="50"
-
-# The ALSA output device for playback.
-SCREAM_DEVICE="default"
diff --git a/testing/scream/scream-alsa.initd b/testing/scream/scream-alsa.initd
deleted file mode 100755
index 8cc9b4fdc72..00000000000
--- a/testing/scream/scream-alsa.initd
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/bin/scream-alsa"
-command_background=true
-pidfile="/run/${RC_SVCNAME}.pid"
-
-command_args="-p ${SCREAM_PORT} -t ${SCREAM_LATENCY} -o ${SCREAM_DEVICE}"
-
-if [ "${SCREAM_MULTICAST}" = "yes" ]; then
- command_args="${command_args} -g ${SCREAM_MULTICAST_GROUP}"
-else
- command_args="${command_args} -u"
-fi
-
-if [ ! -z "${SCREAM_INTERFACE}" ]; then
- command_args="${command_args} -i ${SCREAM_INTERFACE}"
-fi
-
-depend() {
- need net alsa
-}
diff --git a/testing/screenfetch/APKBUILD b/testing/screenfetch/APKBUILD
deleted file mode 100644
index 5ef69ac509c..00000000000
--- a/testing/screenfetch/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=screenfetch
-_pkgname=screenFetch
-pkgver=3.9.1
-pkgrel=0
-pkgdesc="Fetches system/theme information in terminal for Linux desktop screenshots"
-url="https://github.com/KittyKatt/screenFetch"
-arch="noarch"
-license="GPL-3.0"
-depends="bash bc"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KittyKatt/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-options="!check" # no tests provided by upstream
-
-package() {
- install -m 755 -D screenfetch-dev "$pkgdir"/usr/bin/$pkgname
- install -m 644 -D $pkgname.1 "$pkgdir"/usr/share/man/man1/$pkgname.1
-}
-
-sha512sums="e186901480dcad57b765052b1b156b7706a196ce0e08b6b88264912a5d2a1250e5014923312353a82ccabd8129d4d2421891f13fd34f0ed76c50ce9633207df0 screenfetch-3.9.1.tar.gz"
diff --git a/testing/screenkey/APKBUILD b/testing/screenkey/APKBUILD
new file mode 100644
index 00000000000..aa25600853a
--- /dev/null
+++ b/testing/screenkey/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=screenkey
+pkgver=1.5
+pkgrel=6
+pkgdesc="Screencast tool to display your keys"
+url="https://www.thregr.org/~wavexx/software/screenkey/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 py3-cairo py3-gobject3 py3-dbus"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-babel"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://www.thregr.org/~wavexx/software/screenkey/releases/screenkey-$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+37a2e99ae3ab579fe91bed081bfd39c85896ed173a7a94f38e46fc22d1a2d9f24da147984e69d22eb2dbeb0226456bf41b5e24cface3ca72cd76d478323d4091 screenkey-1.5.tar.gz
+"
diff --git a/testing/scrypt/APKBUILD b/testing/scrypt/APKBUILD
new file mode 100644
index 00000000000..1b4f2104dd7
--- /dev/null
+++ b/testing/scrypt/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Nulo <alpine@nulo.in>
+# Maintainer: Nulo <alpine@nulo.in>
+pkgname=scrypt
+pkgver=1.3.2
+pkgrel=0
+pkgdesc="A password-based encryption utility"
+url="https://www.tarsnap.com/scrypt.html"
+arch="all"
+license="BSD-2-Clause"
+depends_dev="openssl-dev>3"
+makedepends="$depends_dev"
+subpackages="$pkgname-doc"
+source="https://www.tarsnap.com/scrypt/scrypt-$pkgver.tgz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5f2c4f74cec107b08675c5e287c151d633b3a02f12c71d9484ecb14750b3a45b90e2da9dae9090af59346518492aeab01c215961fd592c4f5e5b944f27d9afc7 scrypt-1.3.2.tgz
+"
diff --git a/testing/sct/APKBUILD b/testing/sct/APKBUILD
new file mode 100644
index 00000000000..525a6d419b2
--- /dev/null
+++ b/testing/sct/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: atka <atka@tuta.io>
+# Maintainer: atka <atka@tuta.io>
+pkgname=sct
+pkgver=2018.12.18
+pkgrel=1
+pkgdesc="Set color temperature"
+url="https://flak.tedunangst.com/post/sct-set-color-temperature"
+arch="all"
+license="public domain"
+makedepends="libx11-dev libxrandr-dev"
+source="https://flak.tedunangst.com/files/sct.c"
+builddir="$srcdir"
+options="!check" # no tests provided
+
+build() {
+ cc -std=c99 -O2 -I /usr/X11R6/include -o sct sct.c -L /usr/X11R6/lib -lm -lX11 -lXrandr
+}
+
+package() {
+ install -D -m 755 "$srcdir"/sct "$pkgdir"/usr/bin/sct
+}
+
+sha512sums="9ec311d7e2b9081f667ef61045c8cec802a9d35f22ef76de23e7d0de918bcf6cd774d2d1bf653f541dc5af98f0a4445889cd8564b4b134f0c8aa38a8e37093b5 sct.c"
diff --git a/testing/scummvm/APKBUILD b/testing/scummvm/APKBUILD
new file mode 100644
index 00000000000..dab3407df96
--- /dev/null
+++ b/testing/scummvm/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=scummvm
+pkgver=2.8.1
+pkgrel=0
+pkgdesc="Engine for several graphical adventure games"
+url="https://www.scummvm.org/"
+arch="all !ppc64le" # build failure on ppc64le
+license="GPL-2.0-or-later"
+makedepends="
+ alsa-lib-dev
+ faad2-dev
+ flac-dev
+ fluidsynth-dev
+ freetype-dev
+ glu-dev
+ jpeg-dev
+ libmad-dev
+ libogg-dev
+ libpng-dev
+ libtheora-dev
+ libvorbis-dev
+ sdl2-dev
+ zlib-dev
+ "
+subpackages="$pkgname-doc"
+source="
+ https://downloads.scummvm.org/frs/scummvm/$pkgver/scummvm-$pkgver.tar.gz
+ disable-forbidden.patch
+ "
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --enable-all-engines \
+ --enable-release
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+11bdd0a3d2a3aa53462eaa3d96c4bd0d79053d853627c6958aab0687f4032812ba2f95c883f58cec4580637e541fb903a9d926c7e9e6a9e2e6a41028a77e4002 scummvm-2.8.1.tar.gz
+a44de9540f18893b49b02c083694f8eb974e8ddead6d0c6b0453760d7452367cfcc4613215fab2223da8859ce389a53dd2f110cf3389798761c95efafd886542 disable-forbidden.patch
+"
diff --git a/testing/scummvm/disable-forbidden.patch b/testing/scummvm/disable-forbidden.patch
new file mode 100644
index 00000000000..c44d94b3358
--- /dev/null
+++ b/testing/scummvm/disable-forbidden.patch
@@ -0,0 +1,16 @@
+This patch fix compatibility between scummvm/forbidden security enforcement
+and fortify-headers. The first is meant to avoid direct access to system
+calls for scummvm to be fully portable on a lot of platforms.
+
+--- a/common/forbidden.h
++++ b/common/forbidden.h
+@@ -39,6 +39,9 @@
+ * measure. Especially new code should avoid this at all costs.
+ */
+
++// Disable symbol overrides so that we can use system headers.
++#define FORBIDDEN_SYMBOL_ALLOW_ALL
++
+ #ifndef FORBIDDEN_SYMBOL_ALLOW_ALL
+
+ // Make sure scummsys.h is always included first
diff --git a/testing/sd/APKBUILD b/testing/sd/APKBUILD
deleted file mode 100644
index 9fa013aa81f..00000000000
--- a/testing/sd/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Contributor: Chloe Kudryavtsev <toast@toastin.space>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=sd
-pkgver=0.6.5
-pkgrel=0
-pkgdesc="An intuitive find & replace CLI"
-url="https://github.com/chmln/sd"
-arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust/cargo
-license="MIT"
-options="net"
-makedepends="cargo"
-source="$pkgname-$pkgver.tar.gz::https://github.com/chmln/sd/archive/$pkgver.tar.gz"
-subpackages="$pkgname-doc
- $pkgname-bash-completion
- $pkgname-zsh-completion
- $pkgname-fish-completion
- "
-
-export CARGO_HOME="$srcdir"/cargo
-
-build() {
- cargo build \
- --release \
- --verbose
-}
-
-check() {
- cargo test --all \
- --release \
- --verbose
-}
-
-package() {
- install -Dm755 target/release/"$pkgname" "$pkgdir"/usr/bin/"$pkgname"
-
- # doc
- find target/release -name "$pkgname.1" \
- -exec install -Dm644 {} "$pkgdir"/usr/share/man/man1/"$pkgname.1" \;
-
- # comp
- find target/release -name "$pkgname.bash" \
- -exec install -Dm644 {} "$pkgdir"/usr/share/bash-completion/completions/"$pkgname" \;
- find target/release -name "$pkgname.fish" \
- -exec install -Dm644 {} "$pkgdir"/usr/share/fish/completions/"$pkgname.fish" \;
- find target/release -name "_$pkgname" \
- -exec install -Dm644 {} "$pkgdir"/usr/share/zsh/site-functions/"_$pkgname" \;
-}
-
-sha512sums="7b4b91e274c4fec5405fc551046fd0db1879f6b6c77ced56d81c83a853e9c10942f80faf2a7aca549b86ed4b57117e8796ef7900d613a809bf34840f218759ac sd-0.6.5.tar.gz"
diff --git a/testing/sdl2_net/APKBUILD b/testing/sdl2_net/APKBUILD
deleted file mode 100644
index 4923454713c..00000000000
--- a/testing/sdl2_net/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Alex Raschi <raschi.alex@gmail.com>
-pkgname=sdl2_net
-pkgver=2.0.1
-pkgrel=1
-_pkgname=SDL2_net
-pkgdesc="A small sample cross-platform networking library"
-url="https://www.libsdl.org/projects/SDL_net/"
-arch="all"
-license="zlib"
-depends=""
-makedepends="sdl2-dev"
-subpackages="$pkgname-dev"
-options="!check" # no test suite
-source="https://www.libsdl.org/projects/SDL_net/release/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="d27faee3cddc3592dae38947e6c1df0cbaa95f82fde9c87db6d11f6312d868cea74f6830ad07ceeb3d0d75e9424cebf39e54fddf9a1147e8d9e664609de92b7a SDL2_net-2.0.1.tar.gz"
diff --git a/testing/sdparm/APKBUILD b/testing/sdparm/APKBUILD
index ff503a50907..5ed5fde08d0 100644
--- a/testing/sdparm/APKBUILD
+++ b/testing/sdparm/APKBUILD
@@ -1,8 +1,8 @@
# Contributor:
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=sdparm
-pkgver=1.11
-pkgrel=0
+pkgver=1.12
+pkgrel=1
pkgdesc="SCSI device parameter modification tool"
url="http://sg.danny.cz/sg/sdparm.html"
arch="all"
@@ -24,4 +24,4 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="cb5d1dd351464fcc05005429bb8f452b05e6673b1dd8b699f762d005ab3e612b3b7d6ea400ffbd5e98e33e3e78da735d01705353b8a9b9567aac55a3f6b6d813 sdparm-1.11.tgz"
+sha512sums="00e2775c290c6db3a02780dd3eefa58ac40e1df79a7f19f80a9d497c019a9a4a9a16fb2726f48e7083d0104a8e74326e683c3f5f44c7d1f591a0f607e10493b1 sdparm-1.12.tgz"
diff --git a/testing/sdrangel/APKBUILD b/testing/sdrangel/APKBUILD
new file mode 100644
index 00000000000..889c650a74a
--- /dev/null
+++ b/testing/sdrangel/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=sdrangel
+pkgver=7.15.0
+pkgrel=6
+pkgdesc="SDR Rx/Tx software and analyzer for various hardware"
+url="https://github.com/f4exb/sdrangel"
+license="GPL-3.0-or-later"
+# cm256cc
+arch="aarch64 x86_64"
+depends="
+ qt5-qtquickcontrols
+ qt5-qtquickcontrols2
+ qt5-qtgraphicaleffects
+ "
+makedepends="
+ aptdec-dev
+ boost-dev
+ cm256cc-dev
+ cmake
+ faad2-dev
+ ffmpeg-dev
+ fftw-dev
+ hackrf-dev
+ librtlsdr-dev
+ libusb-dev
+ opencv-dev
+ opus-dev
+ qt5-qtbase-dev
+ qt5-qtcharts-dev
+ qt5-qtgamepad-dev
+ qt5-qtlocation-dev
+ qt5-qtmultimedia-dev
+ qt5-qtserialport-dev
+ qt5-qtspeech-dev
+ qt5-qtwebengine-dev
+ qt5-qtwebsockets-dev
+ samurai
+ serialdv-dev
+ soapy-sdr-dev
+ uhd-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/f4exb/sdrangel/archive/refs/tags/v$pkgver.tar.gz
+ no-march-magic.patch
+ "
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DDEBUG_OUTPUT=ON \
+ -DENABLE_AIRSPY=OFF \
+ -DENABLE_AIRSPYHF=OFF \
+ -DENABLE_BLADERF=OFF \
+ -DENABLE_FUNCUBE=OFF \
+ -DENABLE_HACKRF=ON \
+ -DENABLE_IIO=OFF \
+ -DENABLE_LIMESUITE=OFF \
+ -DENABLE_MIRISDR=OFF \
+ -DENABLE_PERSEUS=OFF \
+ -DENABLE_RTLSDR=ON \
+ -DENABLE_SDRPLAY=OFF \
+ -DENABLE_SOAPYSDR=ON \
+ -DENABLE_XTRX=OFF \
+ -DENABLE_PACK_MIRSDRAPI=OFF \
+ -DENABLE_USRP=OFF
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+078c49eb9f073dc28fd2b6b8205a0f03bd5d08c7b98d833aa04504d45d17d4711714e985b47919b1d70f2139b5c767e7449a0160cdd1c575a27f84febc72e9aa sdrangel-7.15.0.tar.gz
+8779ed53c83505df3dac7a0b0a485c939f439a01f5aed203e25652cdb7d17c10ee629fab75b22b1ac9de882bfefbddcf2af5a3a8da75c5fdefc007a8fb9480f8 no-march-magic.patch
+"
diff --git a/testing/sdrangel/no-march-magic.patch b/testing/sdrangel/no-march-magic.patch
new file mode 100644
index 00000000000..01f013333c6
--- /dev/null
+++ b/testing/sdrangel/no-march-magic.patch
@@ -0,0 +1,14 @@
+disable the completely useless -march= option detective for native
+--
+diff --git a/cmake/Modules/CompilerOptions.cmake b/cmake/Modules/CompilerOptions.cmake
+index db06105..a3d8ed0 100644
+--- a/cmake/Modules/CompilerOptions.cmake
++++ b/cmake/Modules/CompilerOptions.cmake
+@@ -1,7 +1,5 @@
+ include_guard(GLOBAL)
+
+-include(DetectArchitecture)
+-
+ if (NOT APPLE)
+ set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
+ message(STATUS "Interprocedural optimization enabled")
diff --git a/testing/seamonkey/APKBUILD b/testing/seamonkey/APKBUILD
deleted file mode 100644
index 4e6c50bd696..00000000000
--- a/testing/seamonkey/APKBUILD
+++ /dev/null
@@ -1,93 +0,0 @@
-# Contributor: Marc Vertes <mvertes@free.fr>
-# Maintainer: Marc Vertes <mvertes@free.fr>
-pkgname=seamonkey
-pkgver=2.49.5
-pkgrel=4
-pkgdesc="all-in-one internet application suite"
-url="https://www.seamonkey-project.org/"
-arch="x86_64 x86"
-license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0"
-makedepends="unzip zip gtk+3.0-dev gtk+2.0-dev yasm alsa-lib-dev libxt-dev linux-headers
- hunspell-dev nspr-dev nss-dev jpeg-dev bzip2-dev zlib-dev libpng-dev
- libevent-dev libvpx-dev sqlite-dev libffi-dev pixman-dev python2-dev
- icu-dev m4 libxcomposite-dev paxmark autoconf2.13 nss-static
- !firefox
- "
-source="https://archive.mozilla.org/pub/mozilla.org/seamonkey/releases/$pkgver/source/seamonkey-$pkgver.source.tar.xz
- mozconfig
- fix-aouth.patch
- fix-crmf.patch
- fix-hunspell.patch
- fix-i686-musl.patch
- fix-libevent.patch
- fix-libgen.patch
- fix-linux-syscall.patch
- fix-mallinfo.patch
- fix-platform-linux.patch
- fix-siginfo_t.patch
- fix-stabs.patch
- fix-sysctl.patch
- fix-system-headers.patch
- firefox-gcc-6.0.patch
- avoid-getcontext-musl.patch
- discard-x86-precision-musl.patch
- "
-options="!check"
-
-build() {
- cp ../../mozconfig .mozconfig
- export MOZ_MAKE_FLAGS="$MAKEFLAGS"
- export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/seamonkey-$pkgver"
- export SHELL="/bin/ash"
- unset MAKEFLAGS CPPFLAGS
-
- # Disable some optimizations in gcc6 (rhbz#1328045)
- CFLAGS="$CFLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -D_FILE_OFFSET_BITS=64"
- CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -D_FILE_OFFSET_BITS=64"
-
- make -f client.mk build
-}
-
-package() {
- paxmark -msp */dist/bin/xpcshell
- make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
- paxmark -msp "$pkgdir/usr/lib/seamonkey-$pkgver/seamonkey" \
- "$pkgdir/usr/lib/seamonkey-$pkgver/seamonkey-bin" \
- "$pkgdir/usr/lib/seamonkey-$pkgver/plugin-container"
-
- rm -rf "$pkgdir/usr/lib/seamonkey-$pkgver/dictionaries" \
- "$pkgdir/usr/lib/seamonkey-$pkgver/hypenation"
- ln -s /usr/share/hunspell \
- "$pkgdir/usr/lib/seamonkey-$pkgver/dictionaries"
- ln -s /usr/share/hyphen \
- "$pkgdir/usr/lib/seamonkey-$pkgver/hyphenation"
- install -Dm644 suite/branding/nightly/icons/gtk/seamonkey.png \
- "$pkgdir/usr/share/pixmaps/seamonkey.png"
- install -Dm644 mozilla/toolkit/mozapps/installer/linux/rpm/mozilla.desktop \
- "$pkgdir/usr/share/applications/seamonkey.desktop"
- sed -i 's/@MOZ_APP_DISPLAYNAME@/SeaMonkey internet suite/' \
- "$pkgdir/usr/share/applications/seamonkey.desktop"
- sed -i 's/@MOZ_APP_NAME@/seamonkey/' \
- "$pkgdir/usr/share/applications/seamonkey.desktop"
- rm -f "$pkgdir/usr/lib/pkgconfig/seamonkey-nss.pc"
- rm -f "$pkgdir/usr/lib/pkgconfig/seamonkey-nspr.pc"
-}
-
-sha512sums="31309def1ad4276f13ecb343e936c7cade4b6850db88d9d84700f86bff7024b2b217b9e50fc3756b1d1beea483ceaa2a5a3afd053da00f6ac06e3795e9116789 seamonkey-2.49.5.source.tar.xz
-88bd5980cee447ef6fe8c837b60e2ee15dd2737ba3905a443085317da91e4942654e3a2b56b9b67a25844883c9690f504a664255030951bfac6c227cabb79a11 mozconfig
-c3b3b5a32f8672a42c051c03c31761414ce52c4a32258f1c7417af7de891e4b5f620ef2762034a18f84e5c7235559d920963aff0f28c2c1f4ae697a38d49b89c fix-aouth.patch
-e0f8e06ac71e5b4defdee80915793848e618174a9ba538477247a479bc7341ae312c66945b7b206f5f22c576091555a67223d7189e95f7b08a20f26d5e9bd2fc fix-crmf.patch
-ea58a2cf58e7d1d99a2346a6977fcb2acff8052e304f9f0d66e24241d77fe352610537c4d2a886b9085b970368dbe46e5011acc210bebcdf22a88a4b5be960b1 fix-hunspell.patch
-ac6ad28654723f8ee56f6ddcf2dc2800ee217cd4946cc6b543242881aeaf3edc9f66664205fb6939cec9ce4a2cb2ead4758c0ce021858b672b297ba9295fa392 fix-i686-musl.patch
-c2a83214cadc827dd6d37c635ea92ff0779849e55e524b831f1a82ca09dc985770212a81377c2519c3470d752e922fa360d6e49fdfc1f6e9ee581f30ad1885f1 fix-libevent.patch
-f148a9212b9d1bf62ce99e3ea69233fcdd74ffb0948ab53d17ec417539b4f9533409b2e9c487e3789b76cdfca92da074b9ea0f82452f56f72eced9cfbcd078f1 fix-libgen.patch
-fe377b6c0acbbb569f363cde2de8c640837237120bcbc3099cb9d9691f5b576cd76c531b0019e45385f696d7be60bb97141e39f2de742cb6d1a138fbcf217cc5 fix-linux-syscall.patch
-fd6b68082843a17a97a09953f24f74e72090acbcd245e8564ffe41ed5cb0a7afbf3dfc653a6e33a5f0bb0218ec11430f92acedc0c98a32c17dd2a053c3eef855 fix-mallinfo.patch
-25bb4f99a2d831a8604444a1071ca946c14b9fe416929660ce6f9d196b3cecbd84b8706a8a16f2653db0d722a8f033fac9dc2f295bf5b59e7f39024d89221d01 fix-platform-linux.patch
-285e9330810b0f57ebba3d15cb371543840a7c6b8a2656d6d6b3ad7e8d2ec840b34bcb75b92c3747b5a1b42625fbde3a5d1bbec7052ce47fe5455e5076ec6268 fix-siginfo_t.patch
-4a7fae85299969618d729021ed79ab312650419dd849800c4e93c2b78a063a91f4003e2ee66c74abefa28b881376cf78f52e99e5ae3c08b85ba11eeae73a5034 fix-stabs.patch
-43e800bdb15a11c21f71d0552ae2e92ad97574eb324f7be75cc92ed98332201386f9c9846d3e5f27b4e71452ffac71ab5b82ffdc2091d6c4830b9cb792bbdde4 fix-sysctl.patch
-d65900a74901d0455266342e4efbb655d67c62b52e69f482c33c3da3e24af900a3186f1398b88cccd9e822395480cd4ec4ce0d6053978003911457cacc36f767 fix-system-headers.patch
-664983718ba4ed2588850f499cc7da94f2b35d384b6655b1e5ec118e45e8cbd108aa2b9e04cc4b902f4ddba2e1be2cffb056643e053761bfc6da92c942f30305 firefox-gcc-6.0.patch
-c67d6df7ee04539abe126493c2fb61b1377b0cc6d84f660b36ed74e940b575a81830c9d50ce52a70df1ddd1747439b4cef31cbb1642545c176da1d82361fa7da avoid-getcontext-musl.patch
-e6023a4c01204f716849045f1ad3958dd2c0a62540f2b738beda7945ebbe836aabe9017463452ef6cad4df1a53642f2e7a5750870bdfd67d8a4ef6fdae775166 discard-x86-precision-musl.patch"
diff --git a/testing/seamonkey/avoid-getcontext-musl.patch b/testing/seamonkey/avoid-getcontext-musl.patch
deleted file mode 100644
index 5887a7a7220..00000000000
--- a/testing/seamonkey/avoid-getcontext-musl.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/mozilla/tools/profiler/core/platform-linux.cc
-+++ b/mozilla/tools/profiler/core/platform-linux.cc
-@@ -625,10 +625,10 @@
- {
- MOZ_ASSERT(aContext);
- ucontext_t* pContext = reinterpret_cast<ucontext_t*>(aContext);
-- if (!getcontext(pContext)) {
-+ /*if (!getcontext(pContext)) {
- context = pContext;
- SetSampleContext(this, aContext);
-- }
-+ }*/
- }
-
- void OS::SleepMicro(int microseconds)
diff --git a/testing/seamonkey/discard-x86-precision-musl.patch b/testing/seamonkey/discard-x86-precision-musl.patch
deleted file mode 100644
index ef591177f2e..00000000000
--- a/testing/seamonkey/discard-x86-precision-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/mozilla/js/src/jsnum.cpp
-+++ b/mozilla/js/src/jsnum.cpp
-@@ -1120,7 +1120,7 @@
- void
- js::FIX_FPU()
- {
--#if (defined __GNUC__ && defined __i386__) || \
-+#if (defined __GLIBC__ && defined __i386__) || \
- (defined __SUNPRO_CC && defined __i386)
- short control;
- asm("fstcw %0" : "=m" (control) : );
diff --git a/testing/seamonkey/firefox-gcc-6.0.patch b/testing/seamonkey/firefox-gcc-6.0.patch
deleted file mode 100644
index 6b02e59dd83..00000000000
--- a/testing/seamonkey/firefox-gcc-6.0.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -up ./mozilla/nsprpub/config/make-system-wrappers.pl.back firefox-44.0/nsprpub/config/make-system-wrappers.pl
---- ./mozilla/nsprpub/config/make-system-wrappers.pl.back 2016-01-24 00:23:49.000000000 +0100
-+++ ./mozilla/nsprpub/config/make-system-wrappers.pl 2016-02-02 14:58:45.064112655 +0100
-@@ -19,7 +19,9 @@ while (<STDIN>) {
- open OUT, ">$output_dir/$_";
- print OUT "#pragma GCC system_header\n"; # suppress include_next warning
- print OUT "#pragma GCC visibility push(default)\n";
-+ print OUT "#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n";
- print OUT "#include_next \<$_\>\n";
-+ print OUT "#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS\n";
- print OUT "#pragma GCC visibility pop\n";
- close OUT;
- }
-diff -up firefox-44.0/mozglue/build/arm.cpp.old firefox-44.0/mozglue/build/arm.cpp
---- ./mozilla/mozglue/build/arm.cpp.old 2016-02-03 10:07:29.879526500 +0100
-+++ ./mozilla/mozglue/build/arm.cpp 2016-02-03 10:08:11.062697517 +0100
-@@ -104,7 +104,9 @@ check_neon(void)
-
- # elif defined(__linux__) || defined(ANDROID)
- # include <stdio.h>
-+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
- # include <stdlib.h>
-+#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
- # include <string.h>
-
- enum{
diff --git a/testing/seamonkey/fix-aouth.patch b/testing/seamonkey/fix-aouth.patch
deleted file mode 100644
index a79c18bccf5..00000000000
--- a/testing/seamonkey/fix-aouth.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- seamonkey-2.46/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h.orig
-+++ seamonkey-2.46/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
-@@ -56,7 +56,7 @@
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
- #elif defined(HAVE_A_OUT_H)
--#include <a.out.h>
-+#include <linux/a.out.h>
- #endif
-
- #include <string>
diff --git a/testing/seamonkey/fix-crmf.patch b/testing/seamonkey/fix-crmf.patch
deleted file mode 100644
index c4eda8ef3f6..00000000000
--- a/testing/seamonkey/fix-crmf.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- seamonkey-2.49.5/mozilla/security/manager/ssl/moz.build.orig
-+++ seamonkey-2.49.5/mozilla/security/manager/ssl/moz.build
-@@ -184,10 +184,6 @@
-
- DEFINES['CERT_AddTempCertToPerm'] = '__CERT_AddTempCertToPerm'
-
--USE_LIBS += [
-- 'crmf',
--]
--
- include('/ipc/chromium/chromium-config.mozbuild')
-
- if CONFIG['GNU_CXX']:
diff --git a/testing/seamonkey/fix-hunspell.patch b/testing/seamonkey/fix-hunspell.patch
deleted file mode 100644
index 9eb4284e597..00000000000
--- a/testing/seamonkey/fix-hunspell.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- seamonkey-2.46/mozilla/extensions/spellcheck/hunspell/glue/hunspell_alloc_hooks.h.orig
-+++ seamonkey-2.46/mozilla/extensions/spellcheck/hunspell/glue/hunspell_alloc_hooks.h
-@@ -50,9 +50,9 @@
- #include "mozilla/mozalloc.h"
- #include "mozHunspellAllocator.h"
-
--#define malloc(size) HunspellAllocator::CountingMalloc(size)
--#define calloc(count, size) HunspellAllocator::CountingCalloc(count, size)
--#define free(ptr) HunspellAllocator::CountingFree(ptr)
--#define realloc(ptr, size) HunspellAllocator::CountingRealloc(ptr, size)
-+//#define malloc(size) HunspellAllocator::CountingMalloc(size)
-+//#define calloc(count, size) HunspellAllocator::CountingCalloc(count, size)
-+//#define free(ptr) HunspellAllocator::CountingFree(ptr)
-+//#define realloc(ptr, size) HunspellAllocator::CountingRealloc(ptr, size)
-
- #endif
diff --git a/testing/seamonkey/fix-i686-musl.patch b/testing/seamonkey/fix-i686-musl.patch
deleted file mode 100644
index a85727d9b9c..00000000000
--- a/testing/seamonkey/fix-i686-musl.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/mozilla/mozglue/misc/StackWalk.cpp 2017-04-11 04:13:21.000000000 +0200
-+++ b/mozilla/mozglue/misc/StackWalk.cpp 2017-11-29 15:23:07.218649970 +0100
-@@ -41,7 +41,7 @@
- #define MOZ_STACKWALK_SUPPORTS_MACOSX 0
- #endif
-
--#if (defined(linux) && \
-+#if defined(__GLIBC__) && (defined(linux) && \
- ((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
- defined(HAVE__UNWIND_BACKTRACE)))
- #define MOZ_STACKWALK_SUPPORTS_LINUX 1
-@@ -911,7 +911,7 @@
- }
-
- // {x86, ppc} x {Linux, Mac} stackwalking code.
--#if ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
-+#if defined(__GLIBC__) && ((defined(__i386) || defined(PPC) || defined(__ppc__)) && \
- (MOZ_STACKWALK_SUPPORTS_MACOSX || MOZ_STACKWALK_SUPPORTS_LINUX))
-
- MFBT_API bool
diff --git a/testing/seamonkey/fix-libevent.patch b/testing/seamonkey/fix-libevent.patch
deleted file mode 100644
index 2d410237cd8..00000000000
--- a/testing/seamonkey/fix-libevent.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- seamonkey-2.48/mozilla/ipc/chromium/src/base/message_pump_libevent.cc.orig
-+++ seamonkey-2.48/mozilla/ipc/chromium/src/base/message_pump_libevent.cc
-@@ -23,7 +23,7 @@
- // This macro checks that the _EVENT_SIZEOF_* constants defined in
- // ipc/chromiume/src/third_party/<platform>/event2/event-config.h are correct.
- #define CHECK_EVENT_SIZEOF(TYPE, type) \
-- static_assert(_EVENT_SIZEOF_##TYPE == sizeof(type), \
-+ static_assert(EVENT__SIZEOF_##TYPE == sizeof(type), \
- "bad _EVENT_SIZEOF_"#TYPE);
-
- CHECK_EVENT_SIZEOF(LONG, long);
diff --git a/testing/seamonkey/fix-libgen.patch b/testing/seamonkey/fix-libgen.patch
deleted file mode 100644
index d0b03c5ff18..00000000000
--- a/testing/seamonkey/fix-libgen.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- seamonkey-2.39/mozilla/tools/profiler/lul/LulElf.cpp.orig
-+++ seamonkey-2.39/mozilla/tools/profiler/lul/LulElf.cpp
-@@ -47,6 +47,7 @@
-
- #include <errno.h>
- #include <fcntl.h>
-+#include <libgen.h>
- #include <stdio.h>
- #include <string.h>
- #include <sys/mman.h>
---- seamonkey-2.39/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc.orig
-+++ seamonkey-2.39/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
-@@ -38,6 +38,7 @@
- #include <elf.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <libgen.h>
- #include <link.h>
- #include <stdio.h>
- #include <stdlib.h>
diff --git a/testing/seamonkey/fix-linux-syscall.patch b/testing/seamonkey/fix-linux-syscall.patch
deleted file mode 100644
index 2a0f2c674a4..00000000000
--- a/testing/seamonkey/fix-linux-syscall.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- seamonkey-2.46/mozilla/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h.orig
-+++ seamonkey-2.46/mozilla/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
-@@ -1506,6 +1506,13 @@
- /* End of powerpc defininitions */
- #endif
-
-+#ifndef __NR_pread
-+#define __NR_pread __NR_pread64
-+#endif
-+#ifndef __NR_pwrite
-+#define __NR_pwrite __NR_pwrite64
-+#endif
-+
-
- /* After forking, we must make sure to only call system calls. */
- #if defined(__BOUNDED_POINTERS__)
diff --git a/testing/seamonkey/fix-mallinfo.patch b/testing/seamonkey/fix-mallinfo.patch
deleted file mode 100644
index 4f6d91f6484..00000000000
--- a/testing/seamonkey/fix-mallinfo.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- seamonkey-2.40/mozilla/xpcom/base/nsMemoryReporterManager.cpp.orig
-+++ seamonkey-2.40/mozilla/xpcom/base/nsMemoryReporterManager.cpp
-@@ -176,6 +176,7 @@
- };
- NS_IMPL_ISUPPORTS(ResidentUniqueReporter, nsIMemoryReporter)
-
-+#ifdef __GLIBC__
- #define HAVE_SYSTEM_HEAP_REPORTER 1
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
-@@ -195,6 +196,7 @@
- *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
- return NS_OK;
- }
-+#endif
-
- #elif defined(__DragonFly__) || defined(__FreeBSD__) \
- || defined(__NetBSD__) || defined(__OpenBSD__) \
diff --git a/testing/seamonkey/fix-platform-linux.patch b/testing/seamonkey/fix-platform-linux.patch
deleted file mode 100644
index f9e3192906f..00000000000
--- a/testing/seamonkey/fix-platform-linux.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- seamonkey-2.39/mozilla/tools/profiler/core/platform-linux.cc.orig
-+++ seamonkey-2.39/mozilla/tools/profiler/core/platform-linux.cc
-@@ -98,6 +98,10 @@
-
- #define SIGNAL_SAVE_PROFILE SIGUSR2
-
-+#ifndef gettid
-+#define gettid() syscall(SYS_gettid)
-+#endif
-+
- using namespace mozilla;
-
- #if defined(USE_LUL_STACKWALK)
diff --git a/testing/seamonkey/fix-siginfo_t.patch b/testing/seamonkey/fix-siginfo_t.patch
deleted file mode 100644
index f0175b41dd8..00000000000
--- a/testing/seamonkey/fix-siginfo_t.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- seamonkey-2.39/mozilla/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc.orig
-+++ seamonkey-2.39/mozilla/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc
-@@ -155,7 +155,7 @@
- // most versions of glibc don't include this information in siginfo_t. So,
- // we need to explicitly copy it into a arch_sigsys structure.
- struct arch_sigsys sigsys;
-- memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
-+ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys));
-
- #if defined(__mips__)
- // When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the
diff --git a/testing/seamonkey/fix-stabs.patch b/testing/seamonkey/fix-stabs.patch
deleted file mode 100644
index f0b1ae67873..00000000000
--- a/testing/seamonkey/fix-stabs.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- seamonkey-2.39/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc.orig
-+++ seamonkey-2.39/mozilla/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
-@@ -34,7 +34,15 @@
- #include "common/stabs_reader.h"
-
- #include <assert.h>
--#include <stab.h>
-+//#include <stab.h>
-+//#define N_UNDF 0x0
-+#define N_FUN 0x24
-+#define N_SLINE 0x44
-+#define N_SO 0x64
-+#define N_LSYM 0x80
-+#define N_BINCL 0x82
-+#define N_SOL 0x84
-+
- #include <string.h>
-
- #include <string>
diff --git a/testing/seamonkey/fix-sysctl.patch b/testing/seamonkey/fix-sysctl.patch
deleted file mode 100644
index d4509509085..00000000000
--- a/testing/seamonkey/fix-sysctl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- seamonkey-2.39/mozilla/media/libav/libavutil/cpu.c.orig
-+++ seamonkey-2.39/mozilla/media/libav/libavutil/cpu.c
-@@ -36,7 +36,7 @@
- #include <sys/param.h>
- #endif
- #include <sys/types.h>
--#include <sys/sysctl.h>
-+#include <linux/sysctl.h>
- #endif
- #if HAVE_SYSCONF
- #include <unistd.h>
diff --git a/testing/seamonkey/fix-system-headers.patch b/testing/seamonkey/fix-system-headers.patch
deleted file mode 100644
index d0ce6d273fb..00000000000
--- a/testing/seamonkey/fix-system-headers.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- seamonkey-2.39/mozilla/config/system-headers.orig
-+++ seamonkey-2.39/mozilla/config/system-headers
-@@ -172,7 +172,7 @@
- android_audio/AudioSystem.h
- #endif
- ansi_parms.h
--a.out.h
-+linux/a.out.h
- app/Cursor.h
- Appearance.h
- AppFileInfo.h
-@@ -419,7 +419,6 @@
- extras.h
- fabdef.h
- fcntl.h
--features.h
- fibdef.h
- File.h
- filehdr.h
-@@ -1062,7 +1061,7 @@
- sys/stat.h
- sys/statvfs.h
- sys/syscall.h
--sys/sysctl.h
-+linux/sysctl.h
- sys/sysinfo.h
- sys/sysmp.h
- sys/syssgi.h
diff --git a/testing/seamonkey/mozconfig b/testing/seamonkey/mozconfig
deleted file mode 100644
index c587527705d..00000000000
--- a/testing/seamonkey/mozconfig
+++ /dev/null
@@ -1,57 +0,0 @@
-ac_add_options --enable-application=suite
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-
-# System libraries
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-png
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --with-system-icu
-
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-ffi
-ac_add_options --enable-system-cairo
-ac_add_options --with-pthreads
-ac_add_options --enable-system-pixman
-
-# Features
-ac_add_options --enable-default-toolkit=cairo-gtk3
-#ac_add_options --enable-startup-notification
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-gio
-#ac_add_options --disable-gstreamer
-#ac_add_options --enable-optimize
-ac_add_options --enable-optimize="$CFLAGS"
-ac_add_options --enable-pie
-ac_add_options --enable-strip
-ac_add_options --enable-install-strip
-ac_add_options --enable-official-branding
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-url-classifier
-
-ac_add_options --disable-pulseaudio
-ac_add_options --disable-gconf
-ac_add_options --disable-elf-hack
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-necko-wifi
-ac_add_options --disable-icf
-ac_add_options --disable-dbus
-ac_add_options --disable-gnomeui
-ac_add_options --disable-jemalloc
-ac_add_options --disable-debug
-ac_add_options --disable-debug-symbols
-ac_add_options --enable-release
-ac_add_options --disable-gold
-
-export MOZILLA_OFFICIAL=1
-export BUILD_OFFICIAL=1
-export USE_SHORT_LIBNAME=1
diff --git a/testing/searchmonkey/APKBUILD b/testing/searchmonkey/APKBUILD
new file mode 100644
index 00000000000..2568c1057df
--- /dev/null
+++ b/testing/searchmonkey/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=searchmonkey
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="Powerful GUI search utility for matching regex patterns, GTK version"
+url="https://sourceforge.net/projects/searchmonkey/"
+arch="!s390x !riscv64" # adwaita-icon-theme -> librsvg -> rust
+license="GPL-3.0-or-later"
+depends="adwaita-icon-theme"
+makedepends="gtk+3.0-dev intltool poppler-dev libzip-dev"
+subpackages="$pkgname-lang"
+options="!check" # No test suite
+source="https://github.com/antonialoytorrens/searchmonkey/releases/download/$pkgver/searchmonkey-$pkgver.tar.xz
+ searchmonkey.desktop
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 "$srcdir"/searchmonkey.desktop \
+ "$pkgdir"/usr/share/applications/searchmonkey.desktop
+}
+
+sha512sums="6da8a3f617c2148db0c09613d81e0f2ebcf61f1228672b2c1ab7ec3d2bb895657a2368c034ffaa62f3dc4904bd482364f70f03335e5ff96092b7adae340bc88f searchmonkey-0.9.0.tar.xz
+1a7454ddef24c5704e8de2337004dd0b493a476d0b4ca2bdbc330801e3d03e4b61b65f06253b258b1cbc8435ec0c8c96774c5df6f3c0f308efb5107a91391a73 searchmonkey.desktop"
diff --git a/testing/searchmonkey/searchmonkey.desktop b/testing/searchmonkey/searchmonkey.desktop
new file mode 100644
index 00000000000..9f57e53b0b5
--- /dev/null
+++ b/testing/searchmonkey/searchmonkey.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Searchmonkey
+Comment=Regular expression power search utility
+Exec=searchmonkey
+Icon=/usr/share/pixmaps/searchmonkey/searchmonkey-300x300.png
+Type=Application
+StartupNotify=false
+Terminal=false
+Categories=TextTools;Utility
diff --git a/testing/seastar/APKBUILD b/testing/seastar/APKBUILD
new file mode 100644
index 00000000000..f77470ce63f
--- /dev/null
+++ b/testing/seastar/APKBUILD
@@ -0,0 +1,96 @@
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=seastar
+pkgver=22.11.0_git20240315
+pkgrel=2
+_commit="a8aa79b2b3bed89f7d90a40cfb4bd55b6e960070"
+_ver="${_commit:=$pkgver}"
+pkgdesc="High performance server-side application framework"
+url="https://seastar.io"
+# riscv64: valgrind
+# armhf armv7 x86 32bit not supported
+arch="all !x86 !armhf !armv7 !riscv64"
+license="Apache-2.0"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ $pkgname-testing=$pkgver-r$pkgrel
+ "
+makedepends="
+ boost-dev
+ bsd-compat-headers
+ c-ares-dev
+ cmake
+ crypto++-dev
+ fmt-dev
+ gnutls-dev
+ hwloc-dev
+ libpciaccess-dev
+ libucontext-dev
+ libunwind-dev
+ liburing-dev
+ lksctp-tools-dev
+ lz4-dev
+ numactl-dev
+ protobuf-dev
+ ragel
+ samurai
+ util-linux-dev
+ valgrind-dev
+ xfsprogs-dev
+ yaml-cpp-dev
+ "
+case "$CARCH" in
+aarch64|x86_64) makedepends="$makedepends dpdk-dev" ;;
+esac
+subpackages="$pkgname-dev $pkgname-testing"
+source="$pkgname-$_ver.tar.gz::https://github.com/scylladb/seastar/archive/$_ver.tar.gz"
+builddir="$srcdir/$pkgname-$_ver"
+
+build() {
+ case "$CARCH" in
+ aarch64|x86_64) local _dpdk=ON ;;
+ *) local _dpdk=OFF ;;
+ esac
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ export CXXFLAGS="$CXXFLAGS -DSEASTAR_DEFAULT_ALLOCATOR -Wno-cpp"
+ cmake -B build -G Ninja \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DSeastar_APPS=OFF \
+ -DSeastar_DEMOS=OFF \
+ -DSeastar_DOCS=OFF \
+ -DSeastar_DPDK="$_dpdk" \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ # rest: needs root (doesn't work in container) for hardware access
+ # see also: https://github.com/scylladb/seastar/issues/1826
+ local _tests="chunk_parsers|coroutines|fair_queue|file_io|httpd|request_parser|semaphore|stall_detector|tls|app-template"
+ case "$CARCH" in
+ ppc64le) _ppc64="|fsnotifier|network_interface|futures|execution_stage|fstream|directory" ;;
+ esac
+ ctest --test-dir build --output-on-failure \
+ -E "($_tests$_ppc64)"
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+dev() {
+ default_dev
+ amove usr/bin
+}
+
+testing() {
+ amove usr/lib/libseastar_*testing.so
+}
+
+sha512sums="
+3f23b6a64baaef45e1ae34cfbf364c1bdf11f5095d1dc85dfeb3fa1fc4866c734e745fcd71af1b23bb8ac29dfde9caab4d8c2ea3dd8923c4d9258a3f2d57f4e8 seastar-a8aa79b2b3bed89f7d90a40cfb4bd55b6e960070.tar.gz
+"
diff --git a/testing/seaweedfs/APKBUILD b/testing/seaweedfs/APKBUILD
new file mode 100644
index 00000000000..479ebf98db5
--- /dev/null
+++ b/testing/seaweedfs/APKBUILD
@@ -0,0 +1,59 @@
+# Contributor: wener <wenermail@gmail.com>
+# Maintainer: wener <wenermail@gmail.com>
+pkgname=seaweedfs
+pkgver=3.63
+pkgrel=1
+pkgdesc="SeaweedFS is a simple and highly scalable distributed file system to store and serve billions of files fast"
+url="https://github.com/seaweedfs/seaweedfs"
+license="Apache-2.0"
+arch="all !s390x !ppc64le !riscv64" # FTBFS
+makedepends="go"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="seaweedfs-$pkgver.tar.gz::https://github.com/seaweedfs/seaweedfs/archive/$pkgver.tar.gz
+ seaweedfs.initd
+ seaweedfs.confd
+ "
+options="net"
+
+export CGO_ENABLED=1
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ GO_LDFLAGS="
+ -extldflags \"$LDFLAGS\"
+ -X github.com/chrislusf/seaweedfs/weed/util.COMMIT=AlpineLinux
+ "
+ # build for large disk support
+ go build -tags 5BytesOffset -ldflags "$GO_LDFLAGS" -o weed/weed ./weed
+ # generate master conf
+ ./weed/weed scaffold -config master -output ./
+}
+
+check() {
+ # s3/basic need credential
+ # weed/operation need server
+ # unmaintained may fail
+ # s3client uses non-32 int
+ # shellcheck disable=SC2046
+ go test $(go list ./... | grep -v -e 's3/basic$' -e 'weed/operation$' -e 'unmaintained' -e 's3/s3client' )
+}
+
+package() {
+ install -m755 -D weed/weed "$pkgdir"/usr/bin/weed
+ install -m644 -D master.toml "$pkgdir"/etc/$pkgname/master.toml
+
+ install -m644 -D -t "$pkgdir"/usr/share/doc/$pkgname README.md
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+2f3f6f0801a61cc450fda3dbfae946c20928e4f8affdda59333722b9d51cc18871a0108e087bb38f1881b88859461e369ab5e6fba25e0b9d39c86446898b3ae4 seaweedfs-3.63.tar.gz
+54a1bb3d77e20e54dc38b08124665fc0f0bc510e9ca044a0d77d43ca45500572b9eae591ac1e55f7d54f95bb16055909534f9a8111ee33662d6a3f2789244adc seaweedfs.initd
+31c4f65425836fc53e6b2e3f93333afb2804d4655aa2903eee10b12a5f337518dae5b3e26510bc76f61e8c917a3e130decdac7ec1faeb9dab143a8aefb3951df seaweedfs.confd
+"
diff --git a/testing/seaweedfs/seaweedfs.confd b/testing/seaweedfs/seaweedfs.confd
new file mode 100644
index 00000000000..4775cb3a79f
--- /dev/null
+++ b/testing/seaweedfs/seaweedfs.confd
@@ -0,0 +1,4 @@
+# seaweedfs options
+
+WEED_EXEC="master"
+WEED_OPTS="-mdir=/var/lib/seaweedfs/metadata -port=9333"
diff --git a/testing/seaweedfs/seaweedfs.initd b/testing/seaweedfs/seaweedfs.initd
new file mode 100644
index 00000000000..f8cf039503e
--- /dev/null
+++ b/testing/seaweedfs/seaweedfs.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name=seaweedfs
+command="/usr/bin/weed"
+command_args="${WEED_EXEC} ${WEED_OPTS}"
+
+pidfile="/run/$name.pid"
+respawn_delay=5
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -f -m 0644 -o root:root /var/lib/seaweedfs/metadata
+}
+
diff --git a/testing/secsipidx/APKBUILD b/testing/secsipidx/APKBUILD
index e515a1bf0f8..2bcee5749ab 100644
--- a/testing/secsipidx/APKBUILD
+++ b/testing/secsipidx/APKBUILD
@@ -1,31 +1,36 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=secsipidx
-pkgver=0_git20200415
-pkgrel=1
+pkgver=1.3.2
+pkgrel=4
pkgdesc="Secure SIP/Telephony Identity Extensions"
url="https://github.com/asipto/secsipidx"
arch="all"
license="GPL-2.0-only"
makedepends="go"
-options="!check" # returns always 1
-disturl="dev.alpinelinux.org:/archive/$pkgname"
-giturl="https://github.com/asipto/secsipidx.git"
-source="https://dev.alpinelinux.org/archive/secsipidx/secsipidx-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/asipto/secsipidx/archive/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- export GOPATH="$srcdir"
- go get -d github.com/asipto/secsipidx
- go build
+ make
}
check() {
- ./$pkgname-$pkgver -version
+ ./secsipidx -version | grep -q "v$pkgver"
}
package() {
- install -D -m755 $pkgname-$pkgver "$pkgdir"/usr/bin/$pkgname
+ make -j1 DESTDIR="$pkgdir" PREFIX="/usr" install
}
+libs() {
+ pkgdesc="secsipid library files"
+ amove usr/lib/*.so*
+}
-sha512sums="417f5f66d27d14af886183b25bb61d6b95f9b4bcf63c2015c22e1f7b71b8b7c4ed5c78fcbea5ba5eb80dc6800dfcc9d5228972dd8019ef1e2fd9f4fa978d2c63 secsipidx-0_git20200415.tar.gz"
+sha512sums="
+dfdc18f47048308c677623d25d72f2fd7c159033b10ee4121d36049742888f79eed4a39245dc03bc79f592c22309ff4248066d13b35c90912ac42f56f1d9c1e2 secsipidx-1.3.2.tar.gz
+"
diff --git a/testing/sedutil/APKBUILD b/testing/sedutil/APKBUILD
index dd12c7b7a3e..5c430fad0f8 100644
--- a/testing/sedutil/APKBUILD
+++ b/testing/sedutil/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=sedutil
pkgver=1.15.1
-pkgrel=0
+pkgrel=1
pkgdesc="DTA sedutil Self encrypting drive software"
url="https://github.com/Drive-Trust-Alliance/sedutil"
arch="all"
diff --git a/testing/seed7/APKBUILD b/testing/seed7/APKBUILD
new file mode 100644
index 00000000000..b05e6104567
--- /dev/null
+++ b/testing/seed7/APKBUILD
@@ -0,0 +1,96 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=seed7
+pkgver=05.20240322
+pkgrel=0
+_pkgver="${pkgver//./_}"
+pkgdesc="High-level, extensible programming language"
+url="https://seed7.sourceforge.net/"
+# armhf, armv7: rand tests from chkflt fail
+arch="all !armhf !armv7"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
+makedepends="
+ freetds-dev
+ libx11-dev
+ libxrender-dev
+ mariadb-connector-c-dev
+ ncurses-dev
+ postgresql-dev
+ sqlite-dev
+ unixodbc-dev
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-nano::noarch
+ $pkgname-vim::noarch
+ "
+source="https://downloads.sourceforge.net/seed7/seed7_$_pkgver.tgz
+ makefile.patch
+ "
+builddir="$srcdir/seed7/src"
+
+_s7include=/usr/lib/seed7/lib
+_s7runtime=/usr/lib/seed7/bin
+
+prepare() {
+ default_prepare
+
+ make depend \
+ SEED7_LIBRARY=$_s7include \
+ S7_LIB_DIR=$_s7runtime
+}
+
+build() {
+ make all
+ make make7
+}
+
+check() {
+ make test
+}
+
+package() {
+ cd "$srcdir/seed7"
+
+ # install interpreter, compiler, and make
+ install -Dvm755 bin/s7 bin/s7c bin/make7 -t "$pkgdir"/usr/bin/
+
+ # install Seed7 library
+ install -Dvm644 lib/*.s7i -t "$pkgdir"$_s7include/
+ install -Dvm644 lib/comp/*.s7i -t "$pkgdir"$_s7include/comp/
+
+ # install static libraries
+ install -Dvm644 bin/*.a -t "$pkgdir"$_s7runtime/
+
+ # install vim and nano syntax files
+ install -Dvm644 doc/sd7.vim -t "$pkgdir"/usr/share/vim/vimfiles/ftdetect/
+ install -Dvm644 doc/seed7.vim -t "$pkgdir"/usr/share/vim/vimfiles/syntax/
+ install -Dvm644 doc/seed7.nanorc -t "$pkgdir"/usr/share/nano/
+
+ # install docs, man pages, and examples
+ install -Dvm644 doc/*.txt -t "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dvm644 doc/*.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dvm644 prg/*.dna prg/*.sd7 prg/*.dat prg/*.s7i \
+ -t "$pkgdir"/usr/share/doc/$pkgname/examples/
+}
+
+nano() {
+ pkgdesc="$pkgdesc (nano syntax)"
+ install_if="$pkgname=$pkgver-r$pkgrel nano"
+ depends=
+
+ amove usr/share/nano
+}
+
+vim() {
+ pkgdesc="$pkgdesc (vim syntax)"
+ install_if="$pkgname=$pkgver-r$pkgrel vim"
+ depends=
+
+ amove usr/share/vim/vimfiles
+}
+
+sha512sums="
+5e0436696e76376e7e0752c3dd3861422267804955bd300f3377476d3870abd726f131bce55bdee84102f19b090ff349015a6ddd7e4c2732372dac084cead9c6 seed7_05_20240322.tgz
+1028e81c04cca92929f48f6bdcf93ea109d4ba423b4b6183980758b606707388497ebdd828fe22cc7d69f94abaecace77ca7337fca7644c71018a8c0ec4fdb3f makefile.patch
+"
diff --git a/testing/seed7/makefile.patch b/testing/seed7/makefile.patch
new file mode 100644
index 00000000000..746a6348be8
--- /dev/null
+++ b/testing/seed7/makefile.patch
@@ -0,0 +1,10 @@
+--- a/makefile
++++ b/makefile
+@@ -226,7 +226,6 @@
+ echo "#define LINKER_OPT_DYN_LINK_LIBS \"-ldl\"" >> chkccomp.h
+ echo "#define POTENTIAL_PARTIAL_LINKING_OPTIONS \"-r\", \"-r -nostdlib\"" >> chkccomp.h
+ echo "#define USE_GMP 0" >> chkccomp.h
+- echo "#define ALLOW_REPLACEMENT_OF_SYSTEM_HEADERS" >> chkccomp.h
+
+ base.h:
+ echo "#define PATH_DELIMITER '/'" > base.h
diff --git a/testing/semodule-utils/APKBUILD b/testing/semodule-utils/APKBUILD
deleted file mode 100644
index 9b4346c6c28..00000000000
--- a/testing/semodule-utils/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=semodule-utils
-pkgver=3.0
-pkgrel=0
-pkgdesc="SELinux semodule utilities"
-url="https://github.com/SELinuxProject/"
-arch="all"
-license="GPL-2.0-only"
-makedepends="libsepol-dev"
-options="!check" # No test suite
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/SELinuxProject/selinux/releases/download/20191204/semodule-utils-$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- make install DESTDIR="$pkgdir"
-}
-
-sha512sums="004e8f02f7e7e6f016b2b5a1a7720a87409d77d0040f7df830cf73808c9f8e3d87b41a7cea273420909971ce8bcc6540d5a46bd25be8c032b12257b4861e1769 semodule-utils-3.0.tar.gz"
diff --git a/testing/sems/APKBUILD b/testing/sems/APKBUILD
deleted file mode 100644
index 160bfcff754..00000000000
--- a/testing/sems/APKBUILD
+++ /dev/null
@@ -1,230 +0,0 @@
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
-# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
-pkgname=sems
-pkgver=1.6.0
-pkgrel=12
-pkgdesc="SIP Express Media Server, an extensible SIP media server"
-url="https://github.com/sems-server/sems/"
-arch="all"
-license="GPL-2.0-or-later"
-# upstream does not provide test
-options="!check"
-pkgusers="sems"
-pkggroups="sems"
-install="$pkgname.pre-install"
-makedepends="cmake bash openssl-dev linux-headers
- libsamplerate-dev spandsp-dev flite-dev gsm-dev speex-dev
- libevent-dev libev-dev lame-dev tiff-dev"
-subpackages="$pkgname-doc $pkgname-conference
- $pkgname-diameter_client $pkgname-early_announce
- $pkgname-g722 $pkgname-gsm $pkgname-mp3 $pkgname-speex $pkgname-xmlrpc2di
- $pkgname-webconference $pkgname-voicebox $pkgname-voicemail
- $pkgname-annrecorder $pkgname-jsonrpc $pkgname-registrar $pkgname-openrc"
-
-source="$pkgname-$pkgver.tar.gz::https://github.com/sems-server/sems/archive/$pkgver.tar.gz
- sems-0001-Force-to-use-system-wide-GSM-includes.patch
- sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch
- sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch
- sems-0004-musl-fixes.patch
- sems-0005-stats-needs-version.patch
- sems-0011-Add-SBC-dependencies.patch
- std-types.patch
- sems-0013-Fix-for-C-11.patch
- Fix-find-openssl.patch
- Fix-openssl-1.1.patch
- remove-dsm.patch
-
- sems.initd
- "
-# sems-0005-Add-sw_prepaid_sip-plugin-to-default-exclude-list-du.patch
-# sems-0006-last-minute-fix-proper-version.patch
-# sems-0008-Install-email-template.patch
-# sems-0009-Don-t-start-py_sems-by-default.patch
-
-# applied:
-# sems-0004-fix-PRACK-route.patch
-# sems-0007-Fix-gateway-module-s-version-passing-in-CMake.patch
-# sems-0010-Move-CMake-defines.patch
-
-replaces="
- $pkgname-ivr
- $pkgname-mailbox
- $pkgname-conf_auth
- $pkgname-pin_collect
- $pkgname-dsm
- " # Removed in 1.6.0-r10 (due to depending on EOL python)
-
-prepare() {
- default_prepare
- rm -rf core/plug-in/gsm/gsm-1.0-pl10/
-}
-
-build() {
- # force cmake to use relative paths. It helps us avoid having the
- # full file path in the logs
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_USE_RELATIVE_PATHS=yes \
- -DSEMS_USE_SPANDSP=yes \
- -DSEMS_USE_LIBSAMPLERATE=yes \
- -DSEMS_USE_ZRTP=NO \
- -DSEMS_USE_MP3=yes \
- -DSEMS_USE_ILBC=NO \
- -DSEMS_USE_TTS=yes \
- -DSEMS_USE_OPENSSL=yes \
- -DSEMS_USE_MONITORING=yes \
- -DSEMS_USE_IPV6=NO \
- -DSEMS_CFG_PREFIX= \
- -DSEMS_AUDIO_PREFIX=/usr/share \
- -DSEMS_EXEC_PREFIX=/usr \
- -DSEMS_LIBDIR=lib
- make
-}
-
-package() {
- make install DESTDIR="$pkgdir"
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- # is empty
- rm -f "$pkgdir"/etc/sems/etc/conf_auth.conf
-
- install -o sems -g sems -d "$pkgdir"/var/spool/voicebox
- install -d -o sems "$pkgdir"/var/run/sems
-}
-
-_mv_sub() {
- local i
- for i in "$@"; do
- mkdir -p "$subpkgdir"/${i%/*}
- mv "$pkgdir"/$i "$subpkgdir"/$i
- done
-}
-
-conference() {
- pkgdesc="Conferencing application for SEMS"
- depends="sems"
- cd "$pkgdir"
- _mv_sub etc/sems/etc/conference.conf \
- usr/lib/sems/plug-in/conference.so \
- usr/share/sems/audio/conference
-}
-
-diameter_client() {
- pkgdesc="A simple DIAMETER client implementation for SEMS"
- depends="sems"
- cd "$pkgdir"
- _mv_sub usr/lib/sems/plug-in/diameter_client.so
-}
-
-early_announce() {
- pkgdesc="Early announce application for SEMS"
- depends="sems"
- cd "$pkgdir"
- _mv_sub etc/sems/etc/early_announce.conf \
- usr/lib/sems/plug-in/early_announce.so
-}
-
-g722() {
- pkgdesc="G.722 support for SEMS"
- depends="sems"
- _mv_sub usr/lib/sems/plug-in/g722.so
-}
-
-#gateway() {
-# pkgdesc="ISDN gateway for SEMS"
-# depends="sems"
-#}
-
-gsm() {
- pkgdesc="GSM support for SEMS"
- depends="sems"
- _mv_sub usr/lib/sems/plug-in/gsm.so
-}
-
-mp3() {
- pkgdesc="MP3 support for SEMS"
- depends="sems"
- _mv_sub usr/lib/sems/plug-in/mp3.so
-}
-
-webconference() {
- pkgdesc="Conference bridge via DI (xmlrpc) for SEMS"
- depends="sems sems-xmlrpc2di"
- cd "$pkgdir"
- _mv_sub etc/sems/etc/webconference.conf \
- usr/share/sems/audio/webconference \
- usr/lib/sems/plug-in/webconference.so
-}
-
-annrecorder() {
- pkgdesc="Allow user to record personal greeting for SEMS"
- depends="sems"
- cd "$pkgdir"
- _mv_sub etc/sems/etc/annrecorder.conf \
- usr/share/sems/audio/annrecorder \
- usr/lib/sems/plug-in/annrecorder.so
-}
-
-voicebox() {
- pkgdesc="Voicebox (call in for messsages) for SEMS"
- depends="sems"
- cd "$pkgdir"
- _mv_sub etc/sems/etc/voicebox.conf \
- usr/share/sems/audio/voicebox \
- usr/lib/sems/plug-in/voicebox.so \
- var/spool/voicebox
-}
-
-voicemail() {
- pkgdesc="Play greeting and record voicemail for SEMS"
- depends="sems"
- cd "$pkgdir"
- _mv_sub etc/sems/etc/voicemail.conf \
- usr/share/sems/audio/voicemail \
- usr/lib/sems/plug-in/voicemail.so
-}
-
-speex() {
- pkgdesc="Speex support for SEMS"
- depends="sems"
- _mv_sub usr/lib/sems/plug-in/speex.so
-}
-
-xmlrpc2di() {
- pkgdesc="XMLRPC interface for SEMS"
- depends="sems"
- _mv_sub \
- etc/sems/etc/xmlrpc2di.conf \
- usr/lib/sems/plug-in/xmlrpc2di.so
-}
-
-jsonrpc() {
- pkgdesc="Jsonrpc support for SEMS"
- depends="sems"
- _mv_sub \
- etc/sems/etc/jsonrpc.conf \
- usr/lib/sems/plug-in/jsonrpc.so
-}
-
-registrar() {
- pkgdesc="Support for SEMS to register to a SIP server"
- depends="sems"
- _mv_sub \
- etc/sems/etc/reg_agent.conf \
- usr/lib/sems/plug-in/reg_agent.so \
- usr/lib/sems/plug-in/registrar_client.so
-}
-
-sha512sums="80190dbdc1d68dc7aa377b2af6a962f08c058a42cd618cb422d6d4e0f9138059fad71b7f284c6420de462ad4dcd65ea5e65b3c5b82dc1850dbd5b5a45644d3d4 sems-1.6.0.tar.gz
-87c6f878c3ad5e947a9a80431ddf28f08c04ce1415b7c42878f66b423c78d909efda836c7c2d3ed97e075c08d7a07c4707a49c14ce42c1a3aa350de1878c8d09 sems-0001-Force-to-use-system-wide-GSM-includes.patch
-4c09033d6acd1bbef2aa2d02571f74da29532decca67b9ce861872d8d9522ca31808d6e26c3b536913ef7a988f90d374e217187b9cadb6a79d5c830571e94b67 sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch
-ba6f0d917464729c63628255bee3d864a954af4a510b802f0de1d51f35ff5d7c1c33cbe14db31818133a3c94f84da0f4bea4184ce1e8eae6aa9a1ba79f2e5347 sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch
-0d3deeb8617a96f81a05fc27b94bca70f4f6dfbdb3c75f0cd4abc5df002ff16f70ec2836717f317b0d03a8178415c2c09ca2d7099bf10c7ac3c58b273ee98776 sems-0004-musl-fixes.patch
-28f07142a0b8b6698948d41bfb198e59637d5a921960adc496111b5cad4685a0b1cade821ac9cd9dbbf3f25ed6195f29485a12d077abf81428b9b6f8bfced79e sems-0005-stats-needs-version.patch
-d616448e70d1cdfc7016f7ff3cab3615063a65f551b4b03cd004ced60b7a24681e85a871788ef2bf13d37c6cb3c84a6d76ba44fd9b9d1a921ad4b8469f3c6ed1 sems-0011-Add-SBC-dependencies.patch
-79e3ac2b202b3f6c710b3d2bc8ac459e3622f2bf5945eaaa81778f53bcbddc7951266f88c2fd9862fbed44f10a160368af7d19b5e81929a3b1e8ee150111f74b std-types.patch
-d21eb55ebcbf3d20703dcb3843415b9f7e8d4fa029396738b843d8ece80abf87475e7d06794f86c75e8c3205273c013e99da4772d169bf127d7985522230265a sems-0013-Fix-for-C-11.patch
-5d8493a7323af5e48a862e6f54e606a0eb0c778115922822a450e226b6f55051797b645595de068307b3d624c1aa9958fee16c838b49508352b336138783e210 Fix-find-openssl.patch
-b9b00accd7b69cf531f22df43e3334ef099d24aa0bb164c860a8a87ec2cc12520a1c83217ec10357d101b5394d00559a669cd6fa12e1d9cbe05c6cde2afc5cc6 Fix-openssl-1.1.patch
-f354d2ddc8bc96792faef75417e10cc86b56de115114688a438b6019345406a5454ac71f50a424613bbdaea3a79e5d8299ca95c511c1791f25e0f7ced766cdb5 remove-dsm.patch
-5be93b6444a9592daa6c883c78e5906e9e662891e1daa850d872bdaa657eb756f1bc0879732033479b279b75c2fd42ef79aa530ebf3b1692e7fb222d484f804b sems.initd"
diff --git a/testing/sems/Fix-find-openssl.patch b/testing/sems/Fix-find-openssl.patch
deleted file mode 100644
index 2dad112c002..00000000000
--- a/testing/sems/Fix-find-openssl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- old/CMakeLists.txt
-+++ new/CMakeLists.txt
-@@ -161,7 +161,7 @@
- ENDIF(SPEEX_FOUND)
-
- IF(SEMS_USE_OPENSSL)
-- FIND_PACKAGE(OpenSSL REQUIRED QUIETLY)
-+ FIND_PACKAGE(OpenSSL REQUIRED)
- MESSAGE(STATUS "Found OpenSSL includes: ${OPENSSL_INCLUDE_DIR}/openssl/ssl.h")
- MESSAGE(STATUS "Found OpenSSL library: ${OPENSSL_LIBRARIES}")
- MESSAGE(STATUS "Using OpenSSL: YES")
diff --git a/testing/sems/Fix-openssl-1.1.patch b/testing/sems/Fix-openssl-1.1.patch
deleted file mode 100644
index e29e9540c27..00000000000
--- a/testing/sems/Fix-openssl-1.1.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 929872513cf14c4c11df1b144b97595301f69475 Mon Sep 17 00:00:00 2001
-From: Guillem Jover <gjover@sipwise.com>
-Date: Fri, 25 Aug 2017 14:12:15 +0200
-Subject: [PATCH] apps/diameter_client: Do not access the OpenSSL BIO struct
- directly
-
-Use a proper accessor instead of messing with the struc directly
-which has become opaque in latest OpenSSL versions.
----
- apps/diameter_client/lib_dbase/tcp_comm.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/apps/diameter_client/lib_dbase/tcp_comm.c b/apps/diameter_client/lib_dbase/tcp_comm.c
-index d9fea4591..1290fc3a3 100644
---- a/apps/diameter_client/lib_dbase/tcp_comm.c
-+++ b/apps/diameter_client/lib_dbase/tcp_comm.c
-@@ -74,7 +74,7 @@ long tcp_ssl_dbg_cb(BIO *bio, int oper, const char *argp,
- switch (oper) {
- case BIO_CB_WRITE: {
- char buf[256];
-- snprintf(buf, 256, "%s: %s", argp, bio->method->name);
-+ snprintf(buf, 256, "%s: %s", argp, BIO_method_name(bio));
- INFO("%s", buf);
- } break;
-
diff --git a/testing/sems/remove-dsm.patch b/testing/sems/remove-dsm.patch
deleted file mode 100644
index 6669a83d8a1..00000000000
--- a/testing/sems/remove-dsm.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Requires python2
-
-diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
-index e2668eb..c8cc2d2 100644
---- a/apps/CMakeLists.txt
-+++ b/apps/CMakeLists.txt
-@@ -6,6 +6,7 @@ ADD_SUBDIRECTORY(callback)
- ADD_SUBDIRECTORY(click2dial)
- IF(PYTHONLIBS_FOUND)
- ADD_SUBDIRECTORY(conf_auth)
-+ ADD_SUBDIRECTORY(dsm)
- ENDIF(PYTHONLIBS_FOUND)
- ADD_SUBDIRECTORY(conference)
- IF(MYSQLPP_FOUND)
-@@ -14,7 +15,6 @@ ENDIF(MYSQLPP_FOUND)
- IF(OPENSSL_FOUND)
- ADD_SUBDIRECTORY(diameter_client)
- ENDIF(OPENSSL_FOUND)
--ADD_SUBDIRECTORY(dsm)
- ADD_SUBDIRECTORY(early_announce)
- #ADD_SUBDIRECTORY(examples)
- IF(MISDN_FOUND)
-
diff --git a/testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch b/testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch
deleted file mode 100644
index d09b793395d..00000000000
--- a/testing/sems/sems-0001-Force-to-use-system-wide-GSM-includes.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From de3c54f85f893e4ee985b1da93cc014b00456fa8 Mon Sep 17 00:00:00 2001
-From: Peter Lemenkov <lemenkov@gmail.com>
-Date: Wed, 31 Mar 2010 11:52:52 +0400
-Subject: [PATCH 01/11] Force to use system-wide GSM includes
-
-Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
----
- core/plug-in/gsm/gsm.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/core/plug-in/gsm/gsm.c b/core/plug-in/gsm/gsm.c
-index 286a989..3517e59 100644
---- a/core/plug-in/gsm/gsm.c
-+++ b/core/plug-in/gsm/gsm.c
-@@ -27,7 +27,7 @@
-
- #include "amci.h"
- #include "codecs.h"
--#include "gsm-1.0-pl10/inc/gsm.h"
-+#include <gsm.h>
- #include "../../log.h"
-
- #include <stdlib.h>
---
-1.7.3.4
-
diff --git a/testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch b/testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch
deleted file mode 100644
index 0cfeab8c83a..00000000000
--- a/testing/sems/sems-0002-Allow-rewrite-of-custom-makefiles-by-CMake.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 26929b6a7a62299b71bf7c99f17f75670a2040e2 Mon Sep 17 00:00:00 2001
-From: Peter Lemenkov <lemenkov@gmail.com>
-Date: Wed, 31 Mar 2010 11:53:48 +0400
-Subject: [PATCH 02/11] Allow rewrite of custom makefiles by CMake
-
-Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
----
- CMakeLists.txt | 9 ---------
- 1 files changed, 0 insertions(+), 9 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a6ff425..ef3934e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,15 +26,6 @@ ELSE(IS_DEVEL)
- ENDIF(IS_DEVEL)
- MESSAGE(STATUS "Configuring ${CMAKE_PROJECT_NAME} v. ${SEMS_VERSION}")
-
--IF(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE)
-- message(FATAL_ERROR "In-source builds are not allowed.
--CMake would overwrite all makefiles distributed with SEMS.
--Please create a directory and run cmake from there, passing the path
--to this source directory as the last argument.
--This process created the file `CMakeCache.txt' and the directory `CMakeFiles'.
--Please delete them.")
--ENDIF(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND NOT MSVC_IDE)
--
- OPTION(SEMS_USE_SPANDSP "Build with spandsp" OFF)
- OPTION(SEMS_USE_LIBSAMPLERATE "Build with libsamplerate" OFF)
- OPTION(SEMS_USE_ZRTP "Build with ZRTP" OFF)
---
-1.7.3.4
-
diff --git a/testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch b/testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch
deleted file mode 100644
index df0a5ad405a..00000000000
--- a/testing/sems/sems-0003-Set-CFG_PREFIX-to-empty-string-by-default.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From e322f2e00e48b639b5d87ed06738aa24d99396bf Mon Sep 17 00:00:00 2001
-From: Peter Lemenkov <lemenkov@gmail.com>
-Date: Wed, 31 Mar 2010 18:56:39 +0400
-Subject: [PATCH 03/11] Set CFG_PREFIX to empty string by default
-
-Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
----
- CMakeLists.txt | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ef3934e..c36ce62 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -48,7 +48,7 @@ ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STREQUAL "2.4")
- SET(CMAKE_DL_LIBS ${CMAKE_DL_LIBS} m pthread)
-
- IF (NOT SEMS_CFG_PREFIX)
-- SET(SEMS_CFG_PREFIX "/usr/local")
-+ SET(SEMS_CFG_PREFIX "")
- ENDIF (NOT SEMS_CFG_PREFIX)
- MESSAGE(STATUS "SEMS cfg prefix was set to: ${SEMS_CFG_PREFIX}")
-
---
-1.7.3.4
-
diff --git a/testing/sems/sems-0004-musl-fixes.patch b/testing/sems/sems-0004-musl-fixes.patch
deleted file mode 100644
index 6302f30b39a..00000000000
--- a/testing/sems/sems-0004-musl-fixes.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff --git a/core/AmBasicSipDialog.cpp b/core/AmBasicSipDialog.cpp
-index 8a9fc04..d6d5ab7 100644
---- a/core/AmBasicSipDialog.cpp
-+++ b/core/AmBasicSipDialog.cpp
-@@ -591,7 +591,7 @@ int AmBasicSipDialog::reply(const AmSipRequest& req,
- "remote_tag=%s\n",
- req.cseq,code,callid.c_str(),
- local_tag.c_str(),remote_tag.c_str());
-- log_stacktrace(L_ERR);
-+ // log_stacktrace(L_ERR);
- return -1;
- }
- DBG("reply: transaction found!\n");
-diff --git a/core/log.cpp b/core/log.cpp
-index 933657e..efc2ae2 100644
---- a/core/log.cpp
-+++ b/core/log.cpp
-@@ -206,6 +206,7 @@ void register_log_hook(AmLoggingFacility* fac)
- log_hooks.push_back(fac);
- }
-
-+#ifdef MUSL_SUPPORTS_BACKTRACE
- /**
- * Print stack-trace through logging function
- */
-@@ -300,3 +301,5 @@ void __lds(int ll, unsigned int max_frames)
- free(funcname);
- free(symbollist);
- }
-+
-+#endif
-diff --git a/core/log.h b/core/log.h
-index 253d824..5ffda75 100644
---- a/core/log.h
-+++ b/core/log.h
-@@ -33,7 +33,7 @@
- #include <stdio.h>
- #include <unistd.h> /* getpid() */
- #include <pthread.h> /* pthread_self() */
--#include <execinfo.h> /* backtrace_symbols() */
-+// #include <execinfo.h> /* backtrace_symbols() */
-
- #ifdef __cplusplus
- #include <cxxabi.h> /* __cxa_demangle() */
-diff --git a/core/sems.cpp b/core/sems.cpp
-index 6f03e5c..d7030eb 100644
---- a/core/sems.cpp
-+++ b/core/sems.cpp
-@@ -69,6 +69,7 @@
- using std::string;
-
- #if defined(__linux__)
-+#include <sys/resource.h>
- #include <sys/prctl.h>
- #endif
-
diff --git a/testing/sems/sems-0005-stats-needs-version.patch b/testing/sems/sems-0005-stats-needs-version.patch
deleted file mode 100644
index 01a7108e0c5..00000000000
--- a/testing/sems/sems-0005-stats-needs-version.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/core/plug-in/stats/StatsUDPServer.cpp b/core/plug-in/stats/StatsUDPServer.cpp
-index c78dc10..8d92720 100644
---- a/core/plug-in/stats/StatsUDPServer.cpp
-+++ b/core/plug-in/stats/StatsUDPServer.cpp
-@@ -26,6 +26,7 @@
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-+#include "sems.h"
- #include "StatsUDPServer.h"
- #include "Statistics.h"
- #include "AmConfigReader.h"
diff --git a/testing/sems/sems-0011-Add-SBC-dependencies.patch b/testing/sems/sems-0011-Add-SBC-dependencies.patch
deleted file mode 100644
index cf572a03153..00000000000
--- a/testing/sems/sems-0011-Add-SBC-dependencies.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/apps/sbc/CMakeLists.txt
-+++ b/apps/sbc/CMakeLists.txt
-@@ -6,6 +6,19 @@
- SBC.cpp
- SBCCallProfile.cpp
- SDPFilter.cpp
-+
-+CallLeg.cpp
-+RateLimit.cpp
-+RegisterCache.cpp
-+RegisterDialog.cpp
-+ReplacesMapper.cpp
-+SBCCallLeg.cpp
-+SBCCallRegistry.cpp
-+SBCEventLog.cpp
-+SBCSimpleRelay.cpp
-+SessionUpdate.cpp
-+SubscriptionDialog.cpp
-+arg_conversion.cpp
- )
-
- SET(sbc_config_files
diff --git a/testing/sems/sems-0013-Fix-for-C-11.patch b/testing/sems/sems-0013-Fix-for-C-11.patch
deleted file mode 100644
index 5dd06b1cab3..00000000000
--- a/testing/sems/sems-0013-Fix-for-C-11.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Peter Lemenkov <lemenkov@gmail.com>
-Date: Fri, 8 Apr 2016 14:50:23 +0300
-Subject: [PATCH] Fix for C++11
-
-Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
-
-diff --git a/apps/sbc/RegisterCache.cpp b/apps/sbc/RegisterCache.cpp
-index cbd3c30..5cd1235 100644
---- a/apps/sbc/RegisterCache.cpp
-+++ b/apps/sbc/RegisterCache.cpp
-@@ -955,7 +955,7 @@ bool _RegisterCache::throttleRegister(RegisterCacheCtx& ctx,
- return false; // fwd
- }
-
-- alias_updates.push_back(make_pair<string,long int>(reg_binding.alias,
-+ alias_updates.push_back(make_pair(reg_binding.alias,
- contact_expires));
- }
-
-diff --git a/apps/sbc/RegisterDialog.cpp b/apps/sbc/RegisterDialog.cpp
-index 820e03d..88b94cb 100644
---- a/apps/sbc/RegisterDialog.cpp
-+++ b/apps/sbc/RegisterDialog.cpp
-@@ -239,7 +239,7 @@ int RegisterDialog::fixUacContacts(const AmSipRequest& req)
- continue;
- }
-
-- alias_updates.push_back(make_pair<string,long int>(reg_binding.alias,
-+ alias_updates.push_back(make_pair(reg_binding.alias,
- contact_expires));
- }
-
-diff --git a/core/sip/resolver.cpp b/core/sip/resolver.cpp
-index 9793069..7bc6ff7 100644
---- a/core/sip/resolver.cpp
-+++ b/core/sip/resolver.cpp
-@@ -823,7 +823,7 @@ dns_entry_map::insert(const dns_entry_map::value_type& x)
- bool dns_entry_map::insert(const string& key, dns_entry* e)
- {
- std::pair<iterator, bool> res =
-- insert(make_pair<const key_type&,mapped_type>(key,e));
-+ insert(make_pair(key,e));
-
- if(res.second) {
- inc_ref(e);
diff --git a/testing/sems/sems.initd b/testing/sems/sems.initd
deleted file mode 100755
index fda1e8a8387..00000000000
--- a/testing/sems/sems.initd
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/sbin/openrc-run
-# SIP Express Media Server configuration file
-# Follows Gentoo/AlpineLinux standards
-# GPL 2 License - N. Angelacos 2011
-
-SVC="${SVCNAME#*.}"
-SEMS_CFG_FILE=${SEMS_CFG_FILE:-/etc/sems/${SVC}.conf}
-SEMS_PIDDIR=/var/run/sems
-SEMS_PIDFILE=${SEMS_PIDFILE:-${SEMS_PIDDIR}/${SVC}.pid}
-SEMS_BINARY=${SEMS_BINARY:-/usr/sbin/sems}
-SEMS_USER=${SEMS_USER:-sems}
-SEMS_GROUP=${SEMS_GROUP:-sems}
-
-checkconfig() {
- if [ ! -f "${SEMS_CFG_FILE}" ] ; then
- eerror "You need a "${SEMS_CFG_FILE}" file to run sems"
- return 1;
- fi
-}
-
-
-start() {
- checkconfig || return 1
- ebegin "Starting ${SVCNAME}"
- mkdir -p "${SEMS_PIDDIR}"
- chown ${SEMS_USER}:${SEMS_GROUP} "${SEMS_PIDDIR}"
-
- start-stop-daemon --start --exec "${SEMS_BINARY}" \
- --pidfile "${SEMS_PIDFILE}" \
- --wait ${SEMS_WAIT:-500} \
- -- \
- -f "${SEMS_CFG_FILE}" \
- -P "${SEMS_PIDFILE}" \
- -u "${SEMS_USER}" \
- -g "${SEMS_GROUP}"
- eend $?
-}
-
-stop() {
- if [ "${RC_CMD}" = "restart" ] ; then
- checkconfig || return 1
- fi
-
- ebegin "Stopping ${SVCNAME}"
- start-stop-daemon --stop --exec "${SEMS_BINARY}" \
- --pidfile "${SEMS_PIDFILE}" --quiet
- eend $?
-}
diff --git a/testing/sems/sems.pre-install b/testing/sems/sems.pre-install
deleted file mode 100644
index 5fe904da652..00000000000
--- a/testing/sems/sems.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S sems 2>/dev/null
-adduser -S -D -H -h /var/empty -s /sbin/nologin -G sems -g sems sems 2>/dev/null
-
-exit 0
diff --git a/testing/sems/std-types.patch b/testing/sems/std-types.patch
deleted file mode 100644
index edaf8d53aaf..00000000000
--- a/testing/sems/std-types.patch
+++ /dev/null
@@ -1,281 +0,0 @@
-diff --git a/apps/gateway/mISDNChannel.cpp b/apps/gateway/mISDNChannel.cpp
-index 8abd77a..36e8778 100644
---- a/apps/gateway/mISDNChannel.cpp
-+++ b/apps/gateway/mISDNChannel.cpp
-@@ -118,8 +118,8 @@ int mISDN_get_free_ext_ie(mISDN::Q931_info_t *qi) {
- return (-1);
- }
-
--int mISDN_AddIE(mISDN::Q931_info_t *qi, u_char *p, u_char ie, u_char *iep) {
-- u_char *ps;
-+int mISDN_AddIE(mISDN::Q931_info_t *qi, unsigned char *p, unsigned char ie, unsigned char *iep) {
-+ unsigned char *ps;
- mISDN::ie_info_t *ies;
- int l;
-
-@@ -158,7 +158,7 @@ int mISDN_AddIE(mISDN::Q931_info_t *qi, u_char *p, u_char ie, u_char *iep) {
- }
- l = iep[0] + 1;
- }
-- ps = (u_char *) qi;
-+ ps = (unsigned char *) qi;
- ps += L3_EXTRA_SIZE;
- ies->off = (u16)(p - ps);
- *p++ = ie;
-diff --git a/core/sip/parse_dns.cpp b/core/sip/parse_dns.cpp
-index 2b62f3e..d24f537 100644
---- a/core/sip/parse_dns.cpp
-+++ b/core/sip/parse_dns.cpp
-@@ -6,10 +6,10 @@
- #define SECTION_COUNTS_OFF 4
- #define HEADER_OFFSET 12
-
--unsigned short dns_msg_count(u_char* begin, dns_section_type sect);
--int dns_skip_name(u_char** p, u_char* end);
--int dns_expand_name(u_char** ptr, u_char* begin, u_char* end,
-- u_char* buf, unsigned int len);
-+unsigned short dns_msg_count(unsigned char* begin, dns_section_type sect);
-+int dns_skip_name(unsigned char** p, unsigned char* end);
-+int dns_expand_name(unsigned char** ptr, unsigned char* begin, unsigned char* end,
-+ unsigned char* buf, unsigned int len);
-
-
- const char* dns_rr_type_str(dns_rr_type t)
-@@ -27,11 +27,11 @@ const char* dns_rr_type_str(dns_rr_type t)
-
-
-
--int dns_msg_parse(u_char* msg, int len, dns_parse_fct fct, void* data)
-+int dns_msg_parse(unsigned char* msg, int len, dns_parse_fct fct, void* data)
- {
-- u_char* begin = msg;
-- u_char* p = begin + HEADER_OFFSET;
-- u_char* end = msg + len;
-+ unsigned char* begin = msg;
-+ unsigned char* p = begin + HEADER_OFFSET;
-+ unsigned char* end = msg + len;
-
- if(p >= end) return -1;
-
-@@ -48,7 +48,7 @@ int dns_msg_parse(u_char* msg, int len, dns_parse_fct fct, void* data)
- for(int i=0; i<dns_msg_count(begin,(dns_section_type)s); i++){
-
- // expand name
-- if(dns_expand_name(&p,begin,end,(u_char*)rr.name,NS_MAXDNAME) < 0) return -1;
-+ if(dns_expand_name(&p,begin,end,(unsigned char*)rr.name,NS_MAXDNAME) < 0) return -1;
-
- // at least 8 bytes for type+class+ttl left?
- if((p + 8) > end) return -1;
-@@ -79,14 +79,14 @@ int dns_msg_parse(u_char* msg, int len, dns_parse_fct fct, void* data)
- return 0;
- }
-
--unsigned short dns_msg_count(u_char* begin, dns_section_type sect)
-+unsigned short dns_msg_count(unsigned char* begin, dns_section_type sect)
- {
-- u_char* p = begin + SECTION_COUNTS_OFF + 2*sect;
-+ unsigned char* p = begin + SECTION_COUNTS_OFF + 2*sect;
-
- return ((u_short)*p)<<8 | ((u_short)*(p+1));
- }
-
--int dns_skip_name(u_char** p, u_char* end)
-+int dns_skip_name(unsigned char** p, unsigned char* end)
- {
- while(*p < end) {
-
-@@ -106,11 +106,11 @@ int dns_skip_name(u_char** p, u_char* end)
- return -1;
- }
-
--int dns_expand_name(u_char** ptr, u_char* begin, u_char* end,
-- u_char* start_buf, unsigned int len)
-+int dns_expand_name(unsigned char** ptr, unsigned char* begin, unsigned char* end,
-+ unsigned char* start_buf, unsigned int len)
- {
-- u_char* buf = start_buf;
-- u_char* p = *ptr;
-+ unsigned char* buf = start_buf;
-+ unsigned char* p = *ptr;
- bool is_ptr=false;
-
- while(p < end) {
-diff --git a/core/sip/parse_dns.h b/core/sip/parse_dns.h
-index c5de8b6..34406b0 100644
---- a/core/sip/parse_dns.h
-+++ b/core/sip/parse_dns.h
-@@ -39,18 +39,18 @@ struct dns_record
-
- class dns_entry;
-
--typedef int (*dns_parse_fct)(dns_record* rr, dns_section_type t, u_char* begin, u_char* end, void* data);
-+typedef int (*dns_parse_fct)(dns_record* rr, dns_section_type t, unsigned char* begin, unsigned char* end, void* data);
-
--int dns_msg_parse(u_char* msg, int len, dns_parse_fct fct, void* data);
--int dns_expand_name(u_char** ptr, u_char* begin, u_char* end,
-- u_char* buf, unsigned int len);
-+int dns_msg_parse(unsigned char* msg, int len, dns_parse_fct fct, void* data);
-+int dns_expand_name(unsigned char** ptr, unsigned char* begin, unsigned char* end,
-+ unsigned char* buf, unsigned int len);
-
--inline uint16_t dns_get_16(const u_char* p)
-+inline uint16_t dns_get_16(const unsigned char* p)
- {
- return ntohs(*(uint16_t*)p);
- }
-
--inline uint32_t dns_get_32(const u_char* p)
-+inline uint32_t dns_get_32(const unsigned char* p)
- {
- return ntohl(*(uint32_t*)p);
- }
-diff --git a/core/sip/resolver.cpp b/core/sip/resolver.cpp
-index 9793069..80c547c 100644
---- a/core/sip/resolver.cpp
-+++ b/core/sip/resolver.cpp
-@@ -169,7 +169,7 @@ public:
- stable_sort(ip_vec.begin(),ip_vec.end(),srv_less);
- }
-
-- dns_base_entry* get_rr(dns_record* rr, u_char* begin, u_char* end);
-+ dns_base_entry* get_rr(dns_record* rr, unsigned char* begin, unsigned char* end);
-
- int next_ip(dns_handle* h, sockaddr_storage* sa)
- {
-@@ -316,7 +316,7 @@ dns_entry* dns_entry::make_entry(dns_rr_type t)
- }
- }
-
--void dns_entry::add_rr(dns_record* rr, u_char* begin, u_char* end, long now)
-+void dns_entry::add_rr(dns_record* rr, unsigned char* begin, unsigned char* end, long now)
- {
- dns_base_entry* e = get_rr(rr,begin,end);
- if(!e) return;
-@@ -451,7 +451,7 @@ void ip_entry::to_sa(sockaddr_storage* sa)
- string ip_entry::to_str()
- {
- if(type == IPv4) {
-- u_char* cp = (u_char*)&addr;
-+ unsigned char* cp = (unsigned char*)&addr;
- return int2str(cp[0]) +
- "." + int2str(cp[1]) +
- "." + int2str(cp[2]) +
-@@ -496,7 +496,7 @@ string ip_port_entry::to_str()
- return ip_entry::to_str() + ":" + int2str(port);
- }
-
--dns_base_entry* dns_ip_entry::get_rr(dns_record* rr, u_char* begin, u_char* end)
-+dns_base_entry* dns_ip_entry::get_rr(dns_record* rr, unsigned char* begin, unsigned char* end)
- {
- if(rr->type != dns_r_a)
- return NULL;
-@@ -516,16 +516,16 @@ dns_base_entry* dns_ip_entry::get_rr(dns_record* rr, u_char* begin, u_char* end)
- return new_ip;
- }
-
--dns_base_entry* dns_srv_entry::get_rr(dns_record* rr, u_char* begin, u_char* end)
-+dns_base_entry* dns_srv_entry::get_rr(dns_record* rr, unsigned char* begin, unsigned char* end)
- {
- if(rr->type != dns_r_srv)
- return NULL;
-
-- u_char name_buf[NS_MAXDNAME];
-- const u_char * rdata = ns_rr_rdata(*rr);
-+ unsigned char name_buf[NS_MAXDNAME];
-+ const unsigned char * rdata = ns_rr_rdata(*rr);
-
- /* Expand the target's name */
-- u_char* p = (u_char*)rdata+6;
-+ unsigned char* p = (unsigned char*)rdata+6;
- if (dns_expand_name(&p,begin,end,
- name_buf, /* Result */
- NS_MAXDNAME) /* Size of result buffer */
-@@ -570,7 +570,7 @@ struct dns_search_h
- };
-
- int rr_to_dns_entry(dns_record* rr, dns_section_type t,
-- u_char* begin, u_char* end, void* data)
-+ unsigned char* begin, unsigned char* end, void* data)
- {
- // only answer and additional sections
- if(t != dns_s_an && t != dns_s_ar)
-@@ -668,7 +668,7 @@ void dns_naptr_entry::init()
- stable_sort(ip_vec.begin(),ip_vec.end(),naptr_less);
- }
-
--dns_base_entry* dns_naptr_entry::get_rr(dns_record* rr, u_char* begin, u_char* end)
-+dns_base_entry* dns_naptr_entry::get_rr(dns_record* rr, unsigned char* begin, unsigned char* end)
- {
- enum NAPTR_FieldIndex {
- NAPTR_Flags = 0,
-@@ -681,7 +681,7 @@ dns_base_entry* dns_naptr_entry::get_rr(dns_record* rr, u_char* begin, u_char* e
- if(rr->type != dns_r_naptr)
- return NULL;
-
-- const u_char * rdata = ns_rr_rdata(*rr);
-+ const unsigned char * rdata = ns_rr_rdata(*rr);
-
- unsigned short order = dns_get_16(rdata);
- rdata += 2;
-@@ -856,7 +856,7 @@ _resolver::~_resolver()
-
- int _resolver::query_dns(const char* name, dns_entry_map& entry_map, dns_rr_type t)
- {
-- u_char dns_res[NS_PACKETSZ];
-+ unsigned char dns_res[NS_PACKETSZ];
-
- if(!name) return -1;
-
-diff --git a/core/sip/resolver.h b/core/sip/resolver.h
-index 7565898..caa81e8 100644
---- a/core/sip/resolver.h
-+++ b/core/sip/resolver.h
-@@ -77,7 +77,7 @@ class dns_entry
- : public atomic_ref_cnt,
- public dns_base_entry
- {
-- virtual dns_base_entry* get_rr(dns_record* rr, u_char* begin, u_char* end)=0;
-+ virtual dns_base_entry* get_rr(dns_record* rr, unsigned char* begin, unsigned char* end)=0;
-
- public:
- vector<dns_base_entry*> ip_vec;
-@@ -87,7 +87,7 @@ public:
- dns_entry();
- virtual ~dns_entry();
- virtual void init()=0;
-- virtual void add_rr(dns_record* rr, u_char* begin, u_char* end, long now);
-+ virtual void add_rr(dns_record* rr, unsigned char* begin, unsigned char* end, long now);
- virtual int next_ip(dns_handle* h, sockaddr_storage* sa)=0;
-
- virtual string to_str();
-@@ -140,7 +140,7 @@ public:
- {}
-
- void init(){};
-- dns_base_entry* get_rr(dns_record* rr, u_char* begin, u_char* end);
-+ dns_base_entry* get_rr(dns_record* rr, unsigned char* begin, unsigned char* end);
- int next_ip(dns_handle* h, sockaddr_storage* sa);
-
- int fill_ip_list(const list<sip_destination>& ip_list);
-@@ -199,7 +199,7 @@ public:
- {}
-
- void init();
-- dns_base_entry* get_rr(dns_record* rr, u_char* begin, u_char* end);
-+ dns_base_entry* get_rr(dns_record* rr, unsigned char* begin, unsigned char* end);
-
- // not needed
- int next_ip(dns_handle* h, sockaddr_storage* sa) { return -1; }
-diff --git a/core/sip/udp_trsp.cpp b/core/sip/udp_trsp.cpp
-index eb3a1ce..e33a156 100644
---- a/core/sip/udp_trsp.cpp
-+++ b/core/sip/udp_trsp.cpp
-@@ -300,7 +300,7 @@ void udp_trsp::run()
- msg.msg_namelen = sizeof(sockaddr_storage);
- msg.msg_iov = iov;
- msg.msg_iovlen = 1;
-- msg.msg_control = new u_char[DSTADDR_DATASIZE];
-+ msg.msg_control = new unsigned char[DSTADDR_DATASIZE];
- msg.msg_controllen = DSTADDR_DATASIZE;
-
- if(sock->get_sd()<=0){
diff --git a/testing/sentinel-minipot/APKBUILD b/testing/sentinel-minipot/APKBUILD
new file mode 100644
index 00000000000..688dad0c64e
--- /dev/null
+++ b/testing/sentinel-minipot/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=sentinel-minipot
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="A minimal honeypot that emulates Telnet, HTTP, FTP and SMTP"
+url="https://gitlab.nic.cz/turris/sentinel/minipot"
+# ppc64le: fails to build
+# s390x: blocked by logc-libs
+arch="all !ppc64le !s390x"
+license="GPL-3.0-or-later"
+makedepends="
+ argp-standalone
+ autoconf
+ automake
+ base64c-dev
+ czmq-dev
+ gperf
+ libevent-dev
+ logc-dev
+ logc-libs-dev
+ msgpack-c-dev
+ "
+checkdepends="check-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="https://gitlab.nic.cz/turris/sentinel/minipot/-/archive/v$pkgver/minipot-v$pkgver.tar.bz2
+ fix-configure-msgpack-c.patch
+ no-valgrind.patch
+ $pkgname.initd
+ $pkgname.confd
+ "
+builddir="$srcdir/minipot-v$pkgver"
+
+case "$CARCH" in
+riscv64)
+ # check() is disabled on the riscv64 package builder
+ makedepends="$makedepends $checkdepends"
+ ;;
+esac
+
+prepare() {
+ default_prepare
+
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-tests
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ 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
+}
+
+sha512sums="
+4f442240d413bdad2f6bddf5ef581c410f03842a4b50685be2e7d1d3686811a7644fd0787c26ee31cb99a0997f2867ed1375a6e3f2a2ede09bd5e9217fbe84d6 minipot-v2.3.0.tar.bz2
+f9e127570d256ee9ce7f9f3d28a66cecfde2e0c9d068b68ea99599b0e3e74fb944311b3f69b28fea8f0b7c86ccba7094888f5310dbceb7ad44bf110b56060161 fix-configure-msgpack-c.patch
+8b133216fa6d97d31105ecfecd3ffb3135c65e771c23968af1d186c6589fd3b31ea1866ed3d9bed34034b01f7322518fa4086503d3b12a0b3f8c21479ee46900 no-valgrind.patch
+846e6c30949590026069df19b583847bc1f94d7190d6dd334ca7ae469323b63f94c82a8ff79b757618e656e5a12fa4b51fe25c6dae3344f8ee0eccaa7ffa324e sentinel-minipot.initd
+2cbdfc997d2f85ef6d24af2b4ce1aa7e01aebcb7e8fddc98d8b2401cba5138898e1668f4018c2609dbe88e35bbb1c1a61a9d3602e6f438e494706651f1ae4418 sentinel-minipot.confd
+"
diff --git a/testing/sentinel-minipot/fix-configure-msgpack-c.patch b/testing/sentinel-minipot/fix-configure-msgpack-c.patch
new file mode 100644
index 00000000000..81c32bc3e80
--- /dev/null
+++ b/testing/sentinel-minipot/fix-configure-msgpack-c.patch
@@ -0,0 +1,7 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,3 +16,3 @@
+ PKG_CHECK_MODULES([czmq], [libczmq])
+-PKG_CHECK_MODULES([msgpack], [msgpack])
++PKG_CHECK_MODULES([msgpack], [msgpack-c])
+ PKG_CHECK_MODULES([libevent], [libevent])
diff --git a/testing/sentinel-minipot/no-valgrind.patch b/testing/sentinel-minipot/no-valgrind.patch
new file mode 100644
index 00000000000..4216a6f43d2
--- /dev/null
+++ b/testing/sentinel-minipot/no-valgrind.patch
@@ -0,0 +1,26 @@
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -8,23 +8,6 @@
+ env AM_TAP_AWK='$(AWK)' TEST_OUTPUT_TAP="/dev/stdout" \
+ '$(SHELL)' '$(srcdir)/.aux/tap-driver.sh'
+
+-# Valgrind #######################################################################
+-VALGRIND_memcheck_FLAGS = \
+- --leak-check=full \
+- --show-leak-kinds=definite,indirect,possible \
+- --track-fds=yes \
+- --track-origins=yes \
+- --trace-children=no \
+- --child-silent-after-fork=yes
+-@VALGRIND_CHECK_RULES@
+-
+-# Rules generated for valgrind are for some reason called *-am. This is just an alias
+-check-valgrind: check-valgrind-am
+-define check_valgrind_rule
+-check-valgrind-$(1): check-valgrind-$(1)-am
+-endef
+-$(foreach tool,$(valgrind_tools),$(eval $(call check_valgrind_rule,$(tool))))
+-
+ # Coverage #######################################################################
+ CODE_COVERAGE_LCOV_OPTIONS := --no-external
+ CODE_COVERAGE_GENHTML_OPTIONS := --prefix $(dir $(abs_top_builddir))
diff --git a/testing/sentinel-minipot/sentinel-minipot.confd b/testing/sentinel-minipot/sentinel-minipot.confd
new file mode 100644
index 00000000000..24d2933e6ab
--- /dev/null
+++ b/testing/sentinel-minipot/sentinel-minipot.confd
@@ -0,0 +1,38 @@
+# Configuration for /etc/init.d/sentinel-minipot
+
+# MQTT topic for later communication of Sentinel proxy with server.
+# Default is "sentinel/collect/minipot".
+#mqtt_topic=
+
+# Local ZMQ socket for interprocess communication with Sentinel proxy.
+#sentinel_socket="ipc:///run/sentinel_pull.sock"
+
+# Whether to send logs to syslog.
+#syslog=yes
+
+# Send logs to provided file.
+#logfile=
+
+# Log verbosity level. Default is "notice".
+# Options: critical, error, warning, notice, info, debug, trace.
+#loglevel=
+
+# User (and group) to run as.
+#command_user="sentinel-minipot"
+
+# Allow to listen on privileged ports.
+capabilities="^cap_net_bind_service"
+
+## At least one of the following must be set:
+
+# Port for FTP minipot.
+#ftp_port=
+
+# Port for HTTP minipot.
+#http_port=
+
+# Port for SMTP minipot.
+smtp_port=25
+
+# Port for Telnet minipot.
+#telnet_port=
diff --git a/testing/sentinel-minipot/sentinel-minipot.initd b/testing/sentinel-minipot/sentinel-minipot.initd
new file mode 100644
index 00000000000..78419dbb02d
--- /dev/null
+++ b/testing/sentinel-minipot/sentinel-minipot.initd
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+
+name="Sentinel-minipot"
+description="A minimal honeypot that emulates Telnet, HTTP, FTP and SMTP network services"
+
+: ${command_user:="sentinel-minipot"}
+: ${sentinel_socket="ipc:///run/sentinel_pull.sock"}
+: ${syslog:="yes"}
+
+command="/usr/bin/sentinel-minipot"
+command_args="
+ ${ftp_port:+"--ftp=$ftp_port"}
+ ${http_port:+"--http=$http_port"}
+ ${smtp_port:+"--smtp=$smtp_port"}
+ ${telnet_port:+"--telnet=$telnet_port"}
+ ${mqtt_topic:+"--topic=$mqtt_topic"}
+ ${sentinel_socket:+"--socket=$sentinel_socket"}
+ ${logfile:+"--log-file=$logfile"}
+ ${loglevel:+"--log-level=$loglevel"}
+ $command_args
+ "
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net
+ use sentinel-proxy
+ after firewall
+}
+
+start_pre() {
+ yesno "${syslog-}" && command_args="$command_args --syslog"
+
+ if [ "${logfile-}" ]; then
+ checkpath -f -m 640 -o "$command_user" "$logfile" || return 1
+ fi
+}
diff --git a/testing/sentinel-minipot/sentinel-minipot.pre-install b/testing/sentinel-minipot/sentinel-minipot.pre-install
new file mode 100644
index 00000000000..dd93fce4265
--- /dev/null
+++ b/testing/sentinel-minipot/sentinel-minipot.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G nogroup -g sentinel-minipot sentinel-minipot 2>/dev/null
+
+exit 0
diff --git a/testing/sentinel-proxy/APKBUILD b/testing/sentinel-proxy/APKBUILD
new file mode 100644
index 00000000000..e0549155bbd
--- /dev/null
+++ b/testing/sentinel-proxy/APKBUILD
@@ -0,0 +1,78 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=sentinel-proxy
+pkgver=2.1.0
+pkgrel=0
+pkgdesc="Proxy that relays messages received over ZMQ to Sentinel server over MQTT"
+url="https://gitlab.nic.cz/turris/sentinel/proxy"
+# s390x: blocked by czqm, logc-libs
+arch="all !s390x"
+license="GPL-3.0-or-later"
+makedepends="
+ argp-standalone
+ autoconf-archive
+ automake
+ czmq-dev
+ libconfig-dev
+ libtool
+ logc-dev
+ logc-libs-dev
+ msgpack-c-dev
+ openssl-dev
+ paho-mqtt-c-dev
+ zlib-dev
+ "
+checkdepends="check-dev"
+pkgusers="sentinel"
+install="$pkgname.pre-install"
+subpackages="
+ $pkgname-dev
+ $pkgname-openrc
+ "
+source="https://gitlab.nic.cz/turris/sentinel/proxy/-/archive/v$pkgver/proxy-v$pkgver.tar.bz2
+ fix-configure-msgpack-c.patch
+ example.cfg.patch
+ $pkgname.initd
+ $pkgname.confd
+ "
+builddir="$srcdir/proxy-v$pkgver"
+
+prepare() {
+ default_prepare
+
+ ./bootstrap
+}
+
+build() {
+ defconfigfile="/etc/sentinel/proxy.cfg" \
+ defzmqsockpath="/run/sentinel_pull.sock" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ $(want_check && echo '--enable-tests' || :)
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -D -m640 -o sentinel example.cfg "$pkgdir"/etc/sentinel/proxy.cfg
+
+ install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+8d21141c44bb638db6ec47054c2e9f1087ba39f5097d0c0f151ba160885687ec932e789d4c55f65e67a22fda65e2f83cf45bb125189c98161d0cbc621d462c0d proxy-v2.1.0.tar.bz2
+2586fdfee53a44f82a811b3959a8b771ea1733dd58ea9815ad5ef3d8061eca38dcd1c3d19f1876285ef7095d0ce558c9ccb6f11c4f9c6acf54721aaf834d611e fix-configure-msgpack-c.patch
+48dad43a27679396bbbe54013bd1487053c686b9872cfc49f744b6d005d43ff6c1c60dcd03b77f8970e1c13a1774cacbe2eb45bd116c28edc3b0173c28769bdf example.cfg.patch
+3e9e832994bf2574ae48dee6479a629d15bfdada86b89de95e5da1840f3312da0b19b697b94401783756917c8a5194a334807c44a6b23333369f57cab376010c sentinel-proxy.initd
+b3cd58a026b89ad60d5d93f88b549c67045b498134b67f4b06856e3be12b8debcf130937201b88543d3ba12cdfa1aab87cafa58f7c8c36215d41392d32eae5af sentinel-proxy.confd
+"
diff --git a/testing/sentinel-proxy/example.cfg.patch b/testing/sentinel-proxy/example.cfg.patch
new file mode 100644
index 00000000000..87236a19d20
--- /dev/null
+++ b/testing/sentinel-proxy/example.cfg.patch
@@ -0,0 +1,34 @@
+--- a/example.cfg
++++ b/example.cfg
+@@ -1,9 +1,22 @@
+-# This is 64 hex character long string for more information see README.
+-# Paste here your token instead."
+-# device_token = "c1da24cf9063bf444d66271eb6c2c1b2ae364697ce07d05a8a60d3df08c93f50"
+-# server = "sentinel.com"
+-# port = 12345
+-# client_cert_file = "./sentinel-cert.pem"
+-# client_key_file = "./sentinel-key.pem"
+-# ca_cert_file = "./sentinel-ca-cert.pem"
+-# zmq_socket_path = "ipc:///tmp/sentinel.sock"
++# Configuration for sentinel-proxy
++
++# Sentinel device token. Generate it using 'sentinel-device-token -c'.
++device_token = ""
++
++# Sentinel server address.
++#server = "sentinel.turris.cz"
++
++# Sentinel server port.
++#port = 1883
++
++# Path to Sentinel CA certificate file.
++#ca_cert_file = "/etc/sentinel/ca.pem"
++
++# Path to Sentinel client certificate file
++#client_cert_file = "/etc/sentinel/mqtt_cert.pem"
++
++# Path to Sentinel client key file.
++#client_key_file = "/etc/sentinel/mqtt_key.pem"
++
++# ZMQ socket path.
++#zmq_socket_path = "ipc:///run/sentinel_pull.sock"
diff --git a/testing/sentinel-proxy/fix-configure-msgpack-c.patch b/testing/sentinel-proxy/fix-configure-msgpack-c.patch
new file mode 100644
index 00000000000..a9947139de8
--- /dev/null
+++ b/testing/sentinel-proxy/fix-configure-msgpack-c.patch
@@ -0,0 +1,7 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -24,3 +24,3 @@
+ PKG_CHECK_MODULES([libconfig], [libconfig])
+-PKG_CHECK_MODULES([msgpack], [msgpack])
++PKG_CHECK_MODULES([msgpack], [msgpack-c])
+ PKG_CHECK_MODULES([logc], [logc >= 0.3.0 logc_argp])
diff --git a/testing/sentinel-proxy/sentinel-proxy.confd b/testing/sentinel-proxy/sentinel-proxy.confd
new file mode 100644
index 00000000000..8b9aa3acfe2
--- /dev/null
+++ b/testing/sentinel-proxy/sentinel-proxy.confd
@@ -0,0 +1,17 @@
+# Configuration for /etc/init.d/sentinel-proxy
+
+# Path to the configuration file.
+#cfgfile="/etc/sentinel/proxy.cfg"
+
+# Whether to send logs to syslog.
+#syslog=yes
+
+# Send logs to provided file.
+#logfile=
+
+# Log verbosity level. Default is "notice".
+# Options: critical, error, warning, notice, info, debug, trace.
+#loglevel=
+
+# User (and group) to run as.
+#command_user="sentinel"
diff --git a/testing/sentinel-proxy/sentinel-proxy.initd b/testing/sentinel-proxy/sentinel-proxy.initd
new file mode 100644
index 00000000000..5e3cbabd2da
--- /dev/null
+++ b/testing/sentinel-proxy/sentinel-proxy.initd
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+
+name="Sentinel-proxy"
+description="A proxy that relays messages received over ZMQ to Sentinel server over MQTT"
+
+: ${command_user:="sentinel"}
+: ${cfgfile:="/etc/sentinel/proxy.cfg"}
+: ${syslog:="yes"}
+
+command="/usr/bin/sentinel-proxy"
+command_args="
+ --config=$cfgfile
+ ${logfile:+"--log-file=$logfile"}
+ ${loglevel:+"--log-level=$loglevel"}
+ $command_args
+ "
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ yesno "${syslog-}" && command_args="$command_args --syslog"
+
+ if [ "${logfile-}" ]; then
+ checkpath -f -m 640 -o "$command_user" "$logfile" || return 1
+ fi
+}
diff --git a/testing/sentinel-proxy/sentinel-proxy.pre-install b/testing/sentinel-proxy/sentinel-proxy.pre-install
new file mode 100644
index 00000000000..cb1bc1cd967
--- /dev/null
+++ b/testing/sentinel-proxy/sentinel-proxy.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S sentinel 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G sentinel -g sentinel-proxy sentinel 2>/dev/null
+
+exit 0
diff --git a/testing/sentrypeer/APKBUILD b/testing/sentrypeer/APKBUILD
new file mode 100644
index 00000000000..0d6eac6425c
--- /dev/null
+++ b/testing/sentrypeer/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Gavin Henry <ghenry@sentrypeer.org>
+# Maintainer: Gavin Henry <ghenry@sentrypeer.org>
+pkgname=sentrypeer
+pkgver=3.0.2
+pkgrel=0
+pkgdesc="Honeypot for a distributed p2p list of bad actor IP addresses and phone numbers"
+url="https://sentrypeer.org/"
+# ppc64le: fails tests
+arch="all !ppc64le !x86 !armhf !armv7"
+license="GPL-2.0-only OR GPL-3.0-only"
+makedepends="
+ autoconf
+ autoconf-archive
+ automake
+ chrpath
+ curl-dev
+ jansson-dev
+ libmicrohttpd-dev
+ libosip2-dev
+ opendht-dev
+ pcre2-dev
+ sqlite-dev
+ util-linux-dev
+ "
+checkdepends="cmocka-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/SentryPeer/SentryPeer/releases/download/v$pkgver/sentrypeer-$pkgver.tar.gz"
+options="!check" # needs net
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check || {
+ cat test-suite.log
+ return 1
+ }
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ chrpath -d "$pkgdir"/usr/bin/sentrypeer
+}
+
+sha512sums="
+6ec2c0ccd3e08cc4e711261d3c7135bdd0b699f4d92d982d31f7e664dfd13ff4a15a6c7106bdca4b65fa7c663f526985e530ab2bd42ee43b5695455c8f28b660 sentrypeer-3.0.2.tar.gz
+"
diff --git a/testing/sequoia-chameleon-gnupg/APKBUILD b/testing/sequoia-chameleon-gnupg/APKBUILD
new file mode 100644
index 00000000000..552274409cc
--- /dev/null
+++ b/testing/sequoia-chameleon-gnupg/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Simon Rupf <simon@rupf.net>
+pkgname=sequoia-chameleon-gnupg
+pkgver=0.8.0
+pkgrel=0
+pkgdesc="Sequoia's reimplementation of the GnuPG interface"
+url="https://sequoia-pgp.org/"
+# ring
+arch="all !ppc64le !s390x !riscv64"
+license="GPL-3.0-or-later"
+makedepends="
+ bzip2-dev
+ cargo
+ cargo-auditable
+ clang15-dev
+ nettle-dev
+ openssl-dev
+ sqlite-dev
+ "
+source="https://gitlab.com/sequoia-pgp/sequoia-chameleon-gnupg/-/archive/v$pkgver/sequoia-chameleon-gnupg-v$pkgver.tar.gz
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="net !check" # bunch of failures against gpg cli
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/gpgv-sq target/release/gpg-sq \
+ -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+e149579b144d04c1ee0c9ac8f1a7dc7844e8a035b06000e0e854e87621b51d34d49c6a27787784358460aef5e9ca011d6947c064d09b0e1601ded9dedcb9b6fe sequoia-chameleon-gnupg-v0.8.0.tar.gz
+"
diff --git a/testing/sequoia-sqv/APKBUILD b/testing/sequoia-sqv/APKBUILD
index d7782a6f1b3..90b1c97c355 100644
--- a/testing/sequoia-sqv/APKBUILD
+++ b/testing/sequoia-sqv/APKBUILD
@@ -1,54 +1,41 @@
# Contributor: tcely <sequoia-sqv+aports@tcely.33mail.com>
-# Maintainer:
-_project="sequoia"
-pkgname="${_project}-sqv"
-pkgver="0.9.0"
-pkgrel=1
-pkgdesc="A simple signature verification program"
+# Maintainer: Simon Rupf <simon@rupf.net>
+pkgname=sequoia-sqv
+pkgver=1.2.1
+pkgrel=0
+pkgdesc="simple signature verification program"
url="https://sequoia-pgp.org/"
-arch="armhf armv7 x86_64" # limited by cargo
-license="GPL-3.0-or-later"
-depends=""
-makedepends="capnproto-dev cargo clang-dev nettle-dev openssl-dev
- py3-cffi py3-pytest py3-setuptools python3-dev sqlite-dev"
-install=""
-subpackages=""
-source="https://gitlab.com/${_project}-pgp/${_project}/-/archive/v${pkgver}/${_project}-v${pkgver}.tar.gz
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ cargo
+ cargo-auditable
+ clang-dev
+ nettle-dev
"
-builddir="$srcdir/${_project}-v${pkgver}"
-
-_cargo_env() {
- cd "$builddir"
+source="
+ https://gitlab.com/sequoia-pgp/sequoia-sqv/-/archive/v$pkgver/sequoia-sqv-v$pkgver.tar.gz
+ "
+builddir="$srcdir/sequoia-sqv-v$pkgver"
- CARGO_TARGET_DIR="$PWD/target"
- export CARGO_TARGET_DIR
+prepare() {
+ default_prepare
- SQV="$CARGO_TARGET_DIR/release/sqv"
- export SQV
+ cargo fetch --target="$CTARGET" --locked
}
build() {
- _cargo_env
-
- # Detect mismatching versions from upstream
- sed -i.orig -e '/^version =/s/=.*$/= "'"$pkgver"'"/' sqv/Cargo.toml
- diff -us sqv/Cargo.toml.orig sqv/Cargo.toml
-
- make -C sqv build-release CARGO_FLAGS='--locked'
+ cargo auditable build --release --frozen
}
check() {
- _cargo_env
-
- cd sqv && cargo test --locked --release --package "$pkgname"
-
- "$SQV" --version
+ cargo test --frozen
}
package() {
- _cargo_env
-
- make DESTDIR="$pkgdir" -C sqv install
+ install -Dm755 target/release/sqv -t "$pkgdir"/usr/bin
}
-sha512sums="2349f6f12b9b20761729ba927d08d6090f0c697c2a103eaf403a5694e4303573c45c5247ebc30c080a885916f026e9618ffa979f84f0dcb055377e62a78be4ee sequoia-v0.9.0.tar.gz"
+sha512sums="
+015a4ad6de6dd56321d7d1d8ac652e75c0c16b55693004e4952fd1e935284d2388b1e42e22140da348e776b5caa58c5add5972f43d594ec12a3bf3bca1440405 sequoia-sqv-v1.2.1.tar.gz
+"
diff --git a/testing/serd/APKBUILD b/testing/serd/APKBUILD
deleted file mode 100644
index 9a9909efbf6..00000000000
--- a/testing/serd/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=serd
-pkgver=0.30.4
-pkgrel=0
-pkgdesc="lightweight C library for RDF syntax"
-url="http://drobilla.net/software/serd"
-arch="all"
-license="ISC"
-makedepends="python3"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://download.drobilla.net/serd-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- python3 waf configure --prefix=/usr
- python3 waf build
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="4cc032f826d891213c6db787b10a41ffb8f4b2a3357ffa536e34013755dc34db7109d1b42f550a0d559d8651f56c3a5dfb3654c3e2047ee6e609ff9a5fe803d6 serd-0.30.4.tar.bz2"
diff --git a/testing/serialdv/APKBUILD b/testing/serialdv/APKBUILD
new file mode 100644
index 00000000000..d25e3eb2001
--- /dev/null
+++ b/testing/serialdv/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=serialdv
+pkgver=1.1.4
+pkgrel=0
+pkgdesc="C++ Minimal interface to encode and decode audio with AMBE3000 based devices in packet mode over a serial link"
+url="https://github.com/f4exb/serialDV"
+license="GPL-3.0-only"
+arch="all"
+makedepends="
+ cmake
+ linux-headers
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/f4exb/serialDV/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/serialDV-$pkgver"
+options="!check" # no tests
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+879b2ae84a18ca4f4e0eda72208b596a9988e32eba0b3be4b5818b15b600d71c3ee53e6215126ff013d993237d29077ffedfb6be0477c852d4215e5e036bebc9 serialdv-1.1.4.tar.gz
+"
diff --git a/testing/setroot/APKBUILD b/testing/setroot/APKBUILD
index a5ac6593de2..615cb26712c 100644
--- a/testing/setroot/APKBUILD
+++ b/testing/setroot/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: Camille Scholtz <onodera@openmailbox.org>
pkgname=setroot
pkgver=2.0.2
-pkgrel=0
+pkgrel=1
pkgdesc="Simple X background setter inspired by imlibsetroot and feh"
url="https://github.com/ttzhou/setroot"
arch="all"
license="GPL-3.0-or-later"
makedepends="imlib2-dev"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ttzhou/setroot/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ttzhou/setroot/archive/v$pkgver.tar.gz
+ imlib2.patch
+ "
build() {
make
@@ -19,4 +21,7 @@ package() {
make PREFIX=/usr DESTDIR="$pkgdir" install
}
-sha512sums="1f636c2aed140ac011bab7d4dee6e7f21c8d0ddb6ebfbd45d81db2fe807d2d3882ca6bbd3594f7038710efe3bdff3be0874e5ba4944de40e4897591566e777ae setroot-2.0.2.tar.gz"
+sha512sums="
+1f636c2aed140ac011bab7d4dee6e7f21c8d0ddb6ebfbd45d81db2fe807d2d3882ca6bbd3594f7038710efe3bdff3be0874e5ba4944de40e4897591566e777ae setroot-2.0.2.tar.gz
+d3648d1e010971feef048b9c0b4edd5b55bb80086905feeb898b4680dfa5a6b46fb2a5ad19c722eebeca32a6bed498ecdcd1da3a4bf9aa91847d50e053c4a93d imlib2.patch
+"
diff --git a/testing/setroot/imlib2.patch b/testing/setroot/imlib2.patch
new file mode 100644
index 00000000000..0fbd4d3c84e
--- /dev/null
+++ b/testing/setroot/imlib2.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index cb32cc6..950c183 100644
+--- a/Makefile
++++ b/Makefile
+@@ -6,7 +6,7 @@ NAME := setroot
+ CC := gcc
+ OFLAG :=
+ CFLAGS := -std=c99 -Wall -g -Wextra ${OFLAG}
+-LIBS := -lX11 `imlib2-config --libs`
++LIBS := -lX11 `pkg-config --libs imlib2`
+
+ SRC := setroot.c
+
diff --git a/testing/setserial/APKBUILD b/testing/setserial/APKBUILD
deleted file mode 100644
index fb327d37400..00000000000
--- a/testing/setserial/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname="setserial"
-pkgver=2.17
-pkgrel=0
-pkgdesc="tool for change various attributes of a serial device"
-url="http://setserial.sourceforge.net/"
-arch="all"
-license="GPL-2.0-only"
-makedepends="groff linux-headers"
-subpackages="$pkgname-doc"
-source="http://downloads.sourceforge.net/sourceforge/setserial/setserial-$pkgver.tar.gz
- ioctls.patch
- setserial.patch"
-
-build() {
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --bindir=/bin
- make
-}
-
-package() {
- install -d $pkgdir/bin
- install -d $pkgdir/usr/share/man/man8
- make DESTDIR=$pkgdir install
-}
-
-sha512sums="27b4918d303302dfdbca2f8c4fe500685068cfbf3de70b4907bac5a9cdb2e643656c1d821e714c08723abcfbaf99129866002117450bef731a0a09cd38138645 setserial-2.17.tar.gz
-17e4ec065d5f51c80f3358c749b7c6b0257b380f4b81cb9af14312202098b045a0ea833e88a663d3b090f19a09430ee7c96e7046b794166263617cb859b1b3d9 ioctls.patch
-4c5f5bddb3f66aac51c1550d85726930221e995dd695f628bec37cf2f05c1db0c7b1c59ba745c32a9d8a91374a4491479f7786a58cfd0096157b2b22c764ac7f setserial.patch"
diff --git a/testing/setserial/ioctls.patch b/testing/setserial/ioctls.patch
deleted file mode 100644
index 36d16afd141..00000000000
--- a/testing/setserial/ioctls.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/setserial.c 2000-01-27 16:40:52.000000000 +0100
-+++ b/setserial.c 2014-03-26 18:53:04.720749160 +0100
-@@ -15,10 +15,8 @@
- #include <termios.h>
- #include <string.h>
- #include <errno.h>
--
--#ifdef HAVE_ASM_IOCTLS_H
- #include <asm/ioctls.h>
--#endif
-+
- #ifdef HAVE_LINUX_HAYESESP_H
- #include <linux/hayesesp.h>
- #endif
diff --git a/testing/setserial/setserial.patch b/testing/setserial/setserial.patch
deleted file mode 100644
index 3cce1f07d38..00000000000
--- a/testing/setserial/setserial.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ur setserial-2.17/Makefile.in setserial-2.17-new/Makefile.in
---- setserial-2.17/Makefile.in 2000-01-27 16:39:07.000000000 +0100
-+++ setserial-2.17-new/Makefile.in 2005-03-09 20:53:31.000000000 +0100
-@@ -17,6 +17,11 @@
- INCS = -I.
- TAR = tar
-
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+bindir=@bindir@
-+mandir=@mandir@
-+
- all: setserial setserial.cat
-
- setserial: setserial.c
-@@ -26,9 +31,9 @@
- nroff -man setserial.8 > setserial.cat
-
- install: setserial setserial.8
-- $(INSTALL_PROGRAM) setserial $(DESTDIR)/bin
-- $(STRIP) $(DESTDIR)/bin/setserial
-- $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/man/man8
-+ $(INSTALL_PROGRAM) setserial $(DESTDIR)$(bindir)
-+ $(STRIP) $(DESTDIR)$(bindir)/setserial
-+ $(INSTALL_DATA) setserial.8 $(DESTDIR)$(mandir)/man8
-
- clean:
- $(RM) setserial setserial.o setserial.cat *~
diff --git a/testing/sfeed/APKBUILD b/testing/sfeed/APKBUILD
deleted file mode 100644
index 859e4bb3253..00000000000
--- a/testing/sfeed/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Maintainer: Miles Alan <m@milesalan.com>
-pkgname=sfeed
-pkgver=0.9.17
-pkgrel=0
-pkgdesc="RSS and Atom feed fetcher"
-url="https://www.codemadness.org/sfeed.html"
-arch="all"
-license="ISC"
-options="!check" # No tests exist
-subpackages="$pkgname-doc"
-source="https://codemadness.org/releases/sfeed/sfeed-$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
- install -Dm644 ./*.1 -t "$pkgdir"/usr/share/man/man1/
- install -Dm644 ./*.5 -t "$pkgdir"/usr/share/man/man5/
-}
-
-sha512sums="47726b9ad15c546751a8478f7d72fea3fd8b8e24d82c86ea17c6234ab2e489f0b54471fb11c8cb09f36688d814bb72f27b5e487aaaa2a97d0cb88348106c0b6d sfeed-0.9.17.tar.gz"
diff --git a/testing/sflowtool/APKBUILD b/testing/sflowtool/APKBUILD
index 79a4cb06ccb..fd1bd377c79 100644
--- a/testing/sflowtool/APKBUILD
+++ b/testing/sflowtool/APKBUILD
@@ -1,42 +1,36 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer:
pkgname=sflowtool
-pkgver=3.41
+pkgver=6.02
pkgrel=0
pkgdesc="Print binary sFlow feed to ASCII, or forward it to other collectors"
url="https://github.com/sflow/sflowtool"
arch="all"
-license="Custom"
-depends=
-depends_dev=
+license="custom"
+subpackages="$pkgname-doc"
makedepends="$depends_dev autoconf automake"
-install=
-subpackages=
source="$pkgname-$pkgver.tar.gz::https://github.com/sflow/sflowtool/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
prepare() {
- cd "$builddir"
- aclocal && autoconf && autoreconf -f -i -Wall,no-obsolete || return 1
+ default_prepare
+ aclocal && autoconf && autoreconf -f -i -Wall,no-obsolete
}
build() {
- cd "$builddir"
./configure --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info
- make || return 1
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
- # remove the 2 lines below (and this) if there is no init.d script
- # install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- # install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
}
-sha512sums="07cd160ae7da908b46500f70680fb1cb54f0095eade63ca4afa6a1a0ca0beacae4f33025911784c9b95912e630df28bfc9e0ef01bd03028647fd27155d5dd749 sflowtool-3.41.tar.gz"
+sha512sums="
+532dcd70f4739f870b21c56c46d2751961615c4a212ba26c1ab43b0e37b9230617b29b22c8e4fa8534094fa4cdd7acad9bbc48ac7368320653da1f46ae6e3b6b sflowtool-6.02.tar.gz
+"
diff --git a/testing/sfwbar/APKBUILD b/testing/sfwbar/APKBUILD
new file mode 100644
index 00000000000..30f5fff177f
--- /dev/null
+++ b/testing/sfwbar/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=sfwbar
+pkgver=1.0_beta14
+pkgrel=0
+pkgdesc="Sway Floating Window Bar"
+url="https://github.com/LBCrion/sfwbar"
+arch="all"
+license="GPL-3.0-only AND MIT"
+makedepends="
+ gtk+3.0-dev
+ gtk-layer-shell-dev
+ json-c-dev
+ meson
+ pulseaudio-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/LBCrion/sfwbar/archive/v$pkgver/sfwbar-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+e1a1c9d0a8b3c80c3ef043c6f22bb2b915cdf1f36da6ce306f66754af2a68c2077f4e473bd998d6d6282db5fc0652b7b7bbbe333a39390e7e38129163a398055 sfwbar-1.0_beta14.tar.gz
+"
diff --git a/testing/sgt-puzzles/0001-change-desktop-variables-according-to-prefix.patch b/testing/sgt-puzzles/0001-change-desktop-variables-according-to-prefix.patch
new file mode 100644
index 00000000000..9fb8d6cdcde
--- /dev/null
+++ b/testing/sgt-puzzles/0001-change-desktop-variables-according-to-prefix.patch
@@ -0,0 +1,13 @@
+--- a/puzzle.desktop.in
++++ b/puzzle.desktop.in
+@@ -3,8 +3,8 @@
+ Type=Application
+ Name=${displayname}
+ Comment=${description}
+-Exec=${binary_name}
+-Icon=${binary_name}-48d24
++Exec=sgt-${binary_name}
++Icon=sgt-${binary_name}
+ StartupNotify=false
+ Categories=Game;LogicGame;
+ Terminal=false
diff --git a/testing/sgt-puzzles/APKBUILD b/testing/sgt-puzzles/APKBUILD
new file mode 100644
index 00000000000..1b3aea3cd8a
--- /dev/null
+++ b/testing/sgt-puzzles/APKBUILD
@@ -0,0 +1,67 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=sgt-puzzles
+pkgver=0_git20230310
+_gitrev=8c5077e
+pkgrel=1
+pkgdesc="Simon Tatham's Portable Puzzle Collection"
+url="https://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ cmake
+ gtk+3.0-dev
+ imagemagick
+ perl-dev
+ samurai
+ "
+options="!check" # No testsuite
+
+# We should append "sgt-" prefix to all the programs and icons.
+# That way, we avoid conflicts with other programs
+source="
+ $pkgname-$pkgver.tar.gz::https://git.tartarus.org/?p=simon/puzzles.git;a=snapshot;h=$_gitrev;sf=tgz
+ 0001-change-desktop-variables-according-to-prefix.patch
+ "
+_icondir="usr/share/pixmaps"
+_desktopdir="usr/share/applications"
+builddir="$srcdir/puzzles-$_gitrev"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # Append "sgt-" prefix to icon files
+ # Move icons to hicolor directory, like upstream distributions do
+ # And remove "-48d24" suffix
+ mkdir -p "$pkgdir"/usr/share/icons/hicolor/48x48/apps
+ for f in "$pkgdir"/"$_icondir"/*.png; do
+ mv -v -- "$f" \
+ "$pkgdir"/usr/share/icons/hicolor/48x48/apps/sgt-"$(basename -- $f | sed 's/-48d24//g')"
+ done
+
+ # Append "sgt-" prefix to desktop files
+ for f in "$pkgdir"/"$_desktopdir"/*.desktop; do
+ mv -v -- "$f" \
+ "$pkgdir"/usr/share/applications/sgt-"$(basename -- $f)"
+ done
+
+ # Remove redundant directory
+ rm -r "$pkgdir"/usr/share/pixmaps
+}
+
+sha512sums="
+66a4b3f1ed5778c921b6378fc6ffa43aa111f69d165ac0ee18c2442b04913676839e64e79e34edf1bf2109cc81bb580534bcd499263afce83645df5901a13060 sgt-puzzles-0_git20230310.tar.gz
+ebe33479a779abf9cd0ea12232ab2319fa279ba467ee635460962eb714c87f2a87e82b160fc43665b0e9e39b5ba72d6bcc2c0cb35abe0adde6de40c18775bee6 0001-change-desktop-variables-according-to-prefix.patch
+"
diff --git a/testing/shadowsocks-libev/APKBUILD b/testing/shadowsocks-libev/APKBUILD
index 8a3760a0cee..a258e87720b 100644
--- a/testing/shadowsocks-libev/APKBUILD
+++ b/testing/shadowsocks-libev/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=shadowsocks-libev
-pkgver=3.3.4
-pkgrel=0
+pkgver=3.3.5
+pkgrel=4
pkgdesc="lightweight secured SOCKS5 proxy"
url="https://shadowsocks.org/en/download/servers.html"
-arch="all"
+arch="all !armhf !armv7 !x86" # blocked by libbloom
license="GPL-3.0-or-later"
makedepends="asciidoc autoconf automake libtool linux-headers libcorkipset-dev
- mbedtls-dev pcre-dev xmlto libev-dev c-ares-dev libsodium-dev zlib-dev libbloom-dev"
+ mbedtls2-dev pcre-dev xmlto libev-dev c-ares-dev libsodium-dev zlib-dev libbloom-dev"
subpackages="$pkgname-dev $pkgname-doc lib$pkgname:libs"
source="shadowsocks-libev-$pkgver.tar.gz::https://github.com/shadowsocks/shadowsocks-libev/archive/v$pkgver.tar.gz
use-upstream-libcorkipset-libbloom.patch
@@ -44,5 +44,7 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="4fb9e4a62f86f1504aab71022b5078a1f97b1f14da82c7b456dc9eaed23be990430769f37b7c2855c266be40ec215237bb0a40d254dffac8556ec4719cc9aa6d shadowsocks-libev-3.3.4.tar.gz
-6e14365fb65731e4f9573b39dd7849d47392b39db52aeffee0e91ee767db2361b053f02bc96cc439e5b677d85c09cd44fd905d6b1fca8b10d2e650d8c41a16e0 use-upstream-libcorkipset-libbloom.patch"
+sha512sums="
+c0cc869b4b7661ebd348bd5559c6a17c44b66a5f42374d97023adcfb525d934da3ed96245ff792ebc74870d30dd8f71fadcd89c79b2cd8a98d551ff7592508d0 shadowsocks-libev-3.3.5.tar.gz
+6e14365fb65731e4f9573b39dd7849d47392b39db52aeffee0e91ee767db2361b053f02bc96cc439e5b677d85c09cd44fd905d6b1fca8b10d2e650d8c41a16e0 use-upstream-libcorkipset-libbloom.patch
+"
diff --git a/testing/shairport-sync/APKBUILD b/testing/shairport-sync/APKBUILD
deleted file mode 100644
index 6f9eacea953..00000000000
--- a/testing/shairport-sync/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=shairport-sync
-pkgver=3.3.6
-pkgrel=0
-pkgdesc="AirTunes emulator. Shairport Sync adds multi-room capability with Audio Synchronisation"
-url="https://github.com/mikebrady/shairport-sync"
-arch="all"
-license="custom"
-depends="avahi"
-makedepends="autoconf automake libtool alsa-lib-dev popt-dev
- openssl-dev soxr-dev avahi-dev libconfig-dev xmltoman"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mikebrady/shairport-sync/archive/$pkgver.tar.gz
- $pkgname.initd"
-options=!check
-
-prepare() {
- default_prepare
- autoreconf -i -f
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-piddir=/run \
- --with-alsa \
- --with-avahi \
- --with-ssl=openssl \
- --with-soxr
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -m 755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
-}
-
-sha512sums="225c82307259a4ba9780ca04bdf77eb32688324fc2fd9059ae4f167de3afbe66f1d8f4a4a1d0a3c26bd6d54cc056f04481cfb9317c696469601f7f67108d0362 shairport-sync-3.3.6.tar.gz
-aeead51ef0f17d360bb1e2d2ae897974ef507ef56db84e6aeb79d8ec522c3bb9336f01ff4150e70fecfebf9808dd7190cb2839e287cf0ef6e1886504c1f1edc6 shairport-sync.initd"
diff --git a/testing/shairport-sync/shairport-sync.initd b/testing/shairport-sync/shairport-sync.initd
deleted file mode 100644
index 02b0df9eb20..00000000000
--- a/testing/shairport-sync/shairport-sync.initd
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/sbin/openrc-run
-
-description="Implements a synchronous (multi-room-capable) AirPlay receiver"
-command="/usr/bin/shairport-sync"
-command_background="yes"
-
-pidfile="/run/$RC_SVCNAME.pid"
-start_stop_daemon_args="
- --stdout /var/log/$RC_SVCNAME.log
- --stderr /var/log/$RC_SVCNAME.log"
-
-depend() {
- need net localmount avahi-daemon
-}
diff --git a/testing/shc/APKBUILD b/testing/shc/APKBUILD
index 2d74dc4a049..b5d82f6330d 100644
--- a/testing/shc/APKBUILD
+++ b/testing/shc/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: MrBiTs <mrbits@mrbits.com.br>
pkgname="shc"
pkgver="4.0.3"
-pkgrel=0
+pkgrel=1
pkgdesc="A generic shell script compiler."
url="https://neurobin.org/projects/softwares/unix/shc/"
arch="all"
diff --git a/testing/shellinabox/APKBUILD b/testing/shellinabox/APKBUILD
index 1d97aee538a..21fc90663b7 100644
--- a/testing/shellinabox/APKBUILD
+++ b/testing/shellinabox/APKBUILD
@@ -3,12 +3,12 @@
pkgname=shellinabox
_daemonname=${pkgname}d
pkgver=2.21
-pkgrel=1
+pkgrel=3
pkgdesc="Implementation of a web server that can export arbitrary command line tools to a web based terminal emulator"
url="https://github.com/shellinabox/shellinabox"
arch="all"
license="GPL-2.0-or-later"
-makedepends="autoconf automake m4 libtool openssl-dev zlib-dev"
+makedepends="autoconf automake m4 libtool openssl-dev>3 zlib-dev"
subpackages="$pkgname-doc $pkgname-openrc"
pkgusers="$_daemonname"
pkggroups="$_daemonname"
diff --git a/testing/shfm/APKBUILD b/testing/shfm/APKBUILD
new file mode 100644
index 00000000000..f5efc7d4732
--- /dev/null
+++ b/testing/shfm/APKBUILD
@@ -0,0 +1,19 @@
+# Contributor: omni <omni@gitlab.alpinelinux.org>
+# Maintainer:
+pkgname=shfm
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="file manager written in POSIX shell"
+url="https://github.com/dylanaraps/shfm"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dylanaraps/shfm/archive/$pkgver.tar.gz"
+subpackages="$pkgname-doc:doc:noarch"
+
+package() {
+ install -Dm0755 $pkgname -t "$pkgdir"/usr/bin
+ install -Dm0644 README -t "$pkgdir"/usr/share/doc/$pkgname
+ install -Dm0644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="57e8af53ea0c65585db0721eae465ea18e9611e2032af0378218dcd8bad798cdc5c3c54c27167093b5833e5b11de3b9ad9f32c52449855a21310b9dd06042c6e $pkgname-$pkgver.tar.gz"
diff --git a/testing/shiboken2/APKBUILD b/testing/shiboken2/APKBUILD
deleted file mode 100644
index e37d5ec1b7e..00000000000
--- a/testing/shiboken2/APKBUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=shiboken2
-pkgver=5.14.2
-pkgrel=0
-pkgdesc="CPython bindings generator for C++ libraries"
-url="https://wiki.qt.io/Qt_for_Python/Shiboken"
-arch="all !armhf !mips !mips64" # qt5-qtxmlpatterns -> qt5-qtdeclarative
-license="GPL-2.0-or-later"
-depends_dev="python3-dev"
-makedepends="
- cmake
- $depends_dev
- qt5-qtbase-dev
- qt5-qtxmlpatterns-dev
- clang-dev
- libxml2-dev
- libxslt-dev
- py3-numpy-dev
- "
-subpackages="lib$pkgname:libs lib$pkgname-dev py3-$pkgname:py3"
-source="
- https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/pyside-setup-opensource-src-$pkgver.tar.xz
- musl-execinfo.patch
-"
-builddir="$srcdir/pyside-setup-opensource-src-$pkgver"
-
-provides="shiboken=$pkgver-r$pkgrel" # For backward compatibility
-replaces="shiboken" # For backward compatibility
-
-build() {
-
- export CLANG_INSTALL_DIR=/usr
- cmake -B "$builddir"/build sources/shiboken2 \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DBUILD_TESTS=OFF \
- -DUSE_PYTHON_VERSION=3
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-libs() {
- license="LGPL-2.1-or-later"
- default_libs
-}
-
-dev() {
- license="LGPL-2.1-or-later"
- default_dev
- provides="shiboken-dev=$pkgver-r$pkgrel"
- replaces="shiboken-dev"
-}
-
-py3() {
- license="LGPL-2.1-or-later"
- depends=""
- pkgdesc="Python3 shiboken bindings"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib
- provides="py3-shiboken=$pkgver-r$pkgrel" # For backward compatibility
- replaces="py3-shiboken" # For backward compatibility
-}
-
-sha512sums="6708c4ebb115119796756ccac89197e111eb27c4a91f52875da04eff4ca6f9e3fffefc18cc0219a8c3a3c81a667bf7509909a6d1d9ff1ee2cc0d957453cceffa pyside-setup-opensource-src-5.14.2.tar.xz
-c894721b731e2f3819c5f985a6f9dc448e843c36d052143e34c4a7ccd7dc4599c15e0bf108a8362a9771c107bf45e1eff8d9d19a5d50318998abf10bfb7f3650 musl-execinfo.patch"
diff --git a/testing/shiboken2/musl-execinfo.patch b/testing/shiboken2/musl-execinfo.patch
deleted file mode 100644
index e62166cdcd7..00000000000
--- a/testing/shiboken2/musl-execinfo.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/sources/shiboken2/libshiboken/signature.cpp
-+++ b/sources/shiboken2/libshiboken/signature.cpp
-@@ -473,12 +473,15 @@
- ////////////////////////////////////////////////////////////////////////////
- // a stack trace for linux-like platforms
- #include <stdio.h>
-+#if defined(__GLIBC__)
- #include <execinfo.h>
-+#endif
- #include <signal.h>
- #include <stdlib.h>
- #include <unistd.h>
-
- void handler(int sig) {
-+#if defined(__GLIBC__)
- void *array[30];
- size_t size;
-
-@@ -486,8 +489,13 @@
- size = backtrace(array, 30);
-
- // print out all the frames to stderr
-+#endif
- fprintf(stderr, "Error: signal %d:\n", sig);
-+#if defined(__GLIBC__)
- backtrace_symbols_fd(array, size, STDERR_FILENO);
-+#else
-+ fprintf(stderr, "sorry, no backtrace on musl libc\n");
-+#endif
- exit(1);
- }
-
diff --git a/testing/shine/APKBUILD b/testing/shine/APKBUILD
index 4d370a6a6b3..0f23e53fb10 100644
--- a/testing/shine/APKBUILD
+++ b/testing/shine/APKBUILD
@@ -5,7 +5,7 @@ pkgver=3.1.1
pkgrel=0
pkgdesc="Shine: fast fixed-point mp3 encoding"
url="https://github.com/toots/shine"
-arch="all !mips64" # mips ASM does not work on N64
+arch="all"
license="LGPL-2.0"
depends=""
depends_dev=""
diff --git a/testing/shipments/APKBUILD b/testing/shipments/APKBUILD
new file mode 100644
index 00000000000..a5a2634ce2a
--- /dev/null
+++ b/testing/shipments/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=shipments
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="Postal package tracking application"
+url="https://git.sr.ht/~martijnbraam/shipments"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ gtk+3.0
+ libhandy1
+ py3-gobject3
+ py3-requests
+ python3
+ "
+makedepends="
+ glib-dev
+ libhandy1-dev
+ meson
+ ninja
+ py3-setuptools
+ "
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/shipments/archive/$pkgver.tar.gz"
+options="!check" # There's no testsuite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+sha512sums="
+173bfa023630ca283c028f77c6c9944710a635dc779040f7bf64708d1ee96b4827ecfa96e9b386100d0550046c57d7cd39c01cb0b4a032ab0718a87599289da8 shipments-0.3.0.tar.gz
+"
diff --git a/testing/shntool/24bit.patch b/testing/shntool/24bit.patch
new file mode 100644
index 00000000000..58ea6f39026
--- /dev/null
+++ b/testing/shntool/24bit.patch
@@ -0,0 +1,46 @@
+Patch-Source: https://salsa.debian.org/debian/shntool/-/commit/57efcd7b34c2107dd785c11d79dfcd4520b2bc41
+--
+Origin: https://github.com/max619/shntool/commit/cfd06e4ed
+From cfd06e4edecdca2013e0fe04db135fd110a68203 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=91=D0=B0=D0=B3?=
+ =?UTF-8?q?=D1=80=D1=8F=D0=BD=D1=86=D0=B5=D0=B2?= <maxbag97619@gmail.com>
+Date: Mon, 11 Nov 2019 00:53:06 +0300
+Subject: [PATCH] Added WAVE_FORMAT_EXTENSIBLE with value 0xfffe and supressed
+ error on wav header parsing with that format
+
+--- a/include/wave.h
++++ b/include/wave.h
+@@ -58,8 +58,9 @@
+ #define WAVE_FORMAT_MPEG (0x0050)
+ #define WAVE_FORMAT_MPEGLAYER3 (0x0055)
+ #define WAVE_FORMAT_G726_ADPCM (0x0064)
+ #define WAVE_FORMAT_G722_ADPCM (0x0065)
++#define WAVE_FORMAT_EXTENSIBLE (0xfffe)
+
+ #define CD_BLOCK_SIZE (2352)
+ #define CD_BLOCKS_PER_SEC (75)
+ #define CD_BLOCK_ALIGN (4)
+--- a/src/core_wave.c
++++ b/src/core_wave.c
+@@ -166,8 +166,9 @@
+ return FALSE;
+ }
+
+ switch (info->wave_format) {
++ case WAVE_FORMAT_EXTENSIBLE:
+ case WAVE_FORMAT_PCM:
+ break;
+ default:
+ st_warning("unsupported format 0x%04x (%s) while processing file: [%s]",
+@@ -510,9 +511,11 @@
+ return "MPEG Layer 3";
+ case WAVE_FORMAT_G726_ADPCM:
+ return "G.726 ADPCM";
+ case WAVE_FORMAT_G722_ADPCM:
+- return "G.722 ADPCM";
++ return "G.722 ADPCM";
++ case WAVE_FORMAT_EXTENSIBLE:
++ return "WAVE Extensible format";
+ }
+ return "Unknown";
+ }
diff --git a/testing/shntool/APKBUILD b/testing/shntool/APKBUILD
index a81edcc637d..60dd2b5e8a3 100644
--- a/testing/shntool/APKBUILD
+++ b/testing/shntool/APKBUILD
@@ -1,8 +1,8 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
pkgname=shntool
pkgver=3.0.10
-pkgrel=3
+pkgrel=4
pkgdesc="A multi-purpose WAVE data processing and reporting utility"
url="http://shnutils.freeshell.org/shntool/"
arch="all"
@@ -12,9 +12,9 @@ subpackages="$pkgname-doc"
source="http://shnutils.freeshell.org/shntool/dist/src/shntool-$pkgver.tar.gz
shntool-3.0.10-large-size.patch
shntool-3.0.10-large-times.patch
+ 24bit.patch
"
-
build() {
update_config_sub
./configure \
@@ -58,6 +58,9 @@ check() {
rm -r test
}
-sha512sums="2150d7123860abb54a56a1615bda991ed3713d73c338723f28b7d01a63c49a47809be16dc57b5b4edeee1567b003f9a4b54945c1cd08440f9503d22b91eaa06d shntool-3.0.10.tar.gz
+sha512sums="
+2150d7123860abb54a56a1615bda991ed3713d73c338723f28b7d01a63c49a47809be16dc57b5b4edeee1567b003f9a4b54945c1cd08440f9503d22b91eaa06d shntool-3.0.10.tar.gz
fc44bca63d79b279db6d275caaacdb73cbebd6b902276a9052f005146fa125f4674e3cf559d46405637a337192f4a38f9bec4836af46e7ae52e4f220352c1ba7 shntool-3.0.10-large-size.patch
-9780f22d93e20dd01d18067978bdf6cbb0b460bb80f41c4f4752b3322c3d70182b3acf35b789e30fc36ca52af6127e24c00599fb49b916f01448613721a94ebe shntool-3.0.10-large-times.patch"
+9780f22d93e20dd01d18067978bdf6cbb0b460bb80f41c4f4752b3322c3d70182b3acf35b789e30fc36ca52af6127e24c00599fb49b916f01448613721a94ebe shntool-3.0.10-large-times.patch
+3c9cdd7936a6572a3c9dfc7575f5ff9a0981dd557add8e1113454487091c7b161040d25d3266937449295a1bb5317ee3515a84c3d7168360bf84643ed828e202 24bit.patch
+"
diff --git a/testing/shotcut/APKBUILD b/testing/shotcut/APKBUILD
deleted file mode 100644
index 0e2378cf76c..00000000000
--- a/testing/shotcut/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=shotcut
-pkgver=20.04.12
-pkgrel=1
-pkgdesc="Cross-platform video editor"
-url="https://www.shotcut.org"
-arch="x86_64 x86" # blocked by qtwebkit and requires opengl
-license="GPL-3.0-or-later"
-makedepends="qt5-qtbase-dev qt5-qtwebkit-dev qt5-qtmultimedia-dev
- qt5-qtwebsockets-dev qt5-qtx11extras-dev ffmpeg-dev mlt-dev
- qt5-qttools-dev"
-subpackages="$pkgname-doc"
-source="shotcut-$pkgver.tar.gz::https://github.com/mltframework/shotcut/archive/v$pkgver.tar.gz
- shotcut-melt.patch
- "
-options="!check" # No test suite present
-
-build() {
- qmake-qt5 PREFIX="/usr"
- make
-}
-
-package() {
- make INSTALL_ROOT="$pkgdir" install
-}
-
-sha512sums="e827d185675eee7f79c8844451df1e4ef3c817f086429c54026f445a57d20aa45edc1446016125e967972ff38e0b30747ebda6186fbd68082b45f1d80a1ffb5d shotcut-20.04.12.tar.gz
-57063ccb11cb9bd061b807934afe5656d9e1e4a31850de2e60b6a0cdf4741c7975a2a548fdb5e7d2bb0a1e44635adb832d139ac55632a4e7f592952b67d17cfe shotcut-melt.patch"
diff --git a/testing/shotcut/shotcut-melt.patch b/testing/shotcut/shotcut-melt.patch
deleted file mode 100644
index 902681fc3ee..00000000000
--- a/testing/shotcut/shotcut-melt.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/jobs/meltjob.cpp b/src/jobs/meltjob.cpp
-index f5390e4..693a089 100644
---- a/src/jobs/meltjob.cpp
-+++ b/src/jobs/meltjob.cpp
-@@ -50,7 +50,7 @@ void MeltJob::start()
- #ifdef Q_OS_WIN
- QFileInfo meltPath(shotcutPath, "qmelt.exe");
- #else
-- QFileInfo meltPath(shotcutPath, "qmelt");
-+ QFileInfo meltPath(shotcutPath, "melt");
- #endif
- setReadChannel(QProcess::StandardError);
- QStringList args;
diff --git a/testing/shutdown-clear-machine-id/APKBUILD b/testing/shutdown-clear-machine-id/APKBUILD
new file mode 100644
index 00000000000..3d0568ae5be
--- /dev/null
+++ b/testing/shutdown-clear-machine-id/APKBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Adam Thiede <me@adamthiede.com>
+pkgname=shutdown-clear-machine-id
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Pre-shutdown service to remove /etc/machine-id"
+url="https://wiki.alpinelinux.org/wiki/D-Bus"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="
+ clear-machine-id.shutdown.initd
+ "
+install="$pkgname.post-install"
+
+package() {
+ install -Dm755 "$srcdir"/clear-machine-id.shutdown.initd "$pkgdir"/etc/init.d/clear-machine-id
+}
+
+sha512sums="
+5c99ced4ba1215321d8cf094d218b2d408a07c34f7bc7f20cee6886cf42d5551be1b8dad2782019e479d57f2da2c2784325cd852a37d1b9bab7d9ce72b134517 clear-machine-id.shutdown.initd
+"
diff --git a/testing/shutdown-clear-machine-id/clear-machine-id.shutdown.initd b/testing/shutdown-clear-machine-id/clear-machine-id.shutdown.initd
new file mode 100644
index 00000000000..616e2321867
--- /dev/null
+++ b/testing/shutdown-clear-machine-id/clear-machine-id.shutdown.initd
@@ -0,0 +1,8 @@
+#!/sbin/openrc-run
+
+description="Remove dbus machine-id files on shutdown"
+
+start() {
+ rm -f /etc/machine-id
+ rm -f /var/lib/dbus/machine-id
+}
diff --git a/testing/shutdown-clear-machine-id/shutdown-clear-machine-id.post-install b/testing/shutdown-clear-machine-id/shutdown-clear-machine-id.post-install
new file mode 100644
index 00000000000..71f23c5101f
--- /dev/null
+++ b/testing/shutdown-clear-machine-id/shutdown-clear-machine-id.post-install
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Print usage instructions
+cat << __EOF__
+*
+* To use this service, add it to the shutdown runlevel with:
+*
+* rc-update add clear-machine-id shutdown
+*
+__EOF__
+
+exit 0
+
diff --git a/testing/sieve-connect/APKBUILD b/testing/sieve-connect/APKBUILD
deleted file mode 100644
index db2dcff29de..00000000000
--- a/testing/sieve-connect/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname="sieve-connect"
-pkgver="0.90"
-pkgrel=0
-pkgdesc="command line client for MANAGESIEVE protocol"
-url="https://people.spodhuis.org/phil.pennock/software"
-arch="noarch"
-license="BSD-3-Clause"
-depends="
- perl-authen-sasl
- perl-io-socket-inet6
- perl-io-socket-ssl
- perl-net-dns
- perl-term-readkey"
-subpackages="$pkgname-doc"
-source="https://people.spodhuis.org/phil.pennock/software/sieve-connect-$pkgver.tar.bz2"
-options="!check" # no tests provided.
-
-build() {
- make
-}
-
-package() {
- install -Dm0755 sieve-connect "$pkgdir/usr/bin/sieve-connect"
- install -Dm0644 sieve-connect.1 "$pkgdir/usr/share/man/man1/sieve-connect.1"
-}
-
-sha512sums="3b4d4a6a7eb7d48f8b2dbc4c302c3de1a2a193282c7b2d25581e1131d6c7598cc2a47edabf8b108e94e0fd1a9cc50e48a103c133dba233f180f12d36c0da0718 sieve-connect-0.90.tar.bz2"
diff --git a/testing/sigil/APKBUILD b/testing/sigil/APKBUILD
new file mode 100644
index 00000000000..6d23f8ab24d
--- /dev/null
+++ b/testing/sigil/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: OIS <mistresssilvara@hotmail.com>
+# Maintainer: OIS <mistresssilvara@hotmail.com>
+pkgname=sigil
+pkgver=1.9.30
+pkgrel=2
+pkgdesc="EPUB editor"
+url="https://sigil-ebook.com/sigil"
+# qt6-qtwebengine (XXX: momentarily qt5 for aarch64)
+arch="aarch64 x86_64"
+license="GPL-3.0-or-later AND Apache-2.0 AND MIT"
+depends="
+ py3-css-parser
+ py3-dulwich
+ py3-lxml
+ qt5-qtsvg
+ "
+makedepends="
+ cmake
+ hunspell-dev
+ minizip-dev
+ pcre2-dev
+ python3-dev
+ qt5-qttools-dev
+ qt5-qtwebengine-dev
+ samurai
+ zlib-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Sigil-Ebook/Sigil/archive/refs/tags/$pkgver.tar.gz
+ $pkgname-assert.patch::https://github.com/Sigil-Ebook/Sigil/commit/8e21405f5d2dfdc7da60f845ae7cf5e2bca6d029.diff
+ "
+builddir="$srcdir/Sigil-$pkgver/"
+# no tests
+options="!check"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DUSE_SYSTEM_LIBS=1 \
+ -DINSTALL_BUNDLED_DICTS=0 \
+ -DDISABLE_UPDATE_CHECK=1 \
+ -DUSE_QT6=OFF \
+ $CMAKE_CROSSOPTS
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+lang() {
+ pkgdesc="Languages for package $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel lang"
+
+ amove usr/share/sigil/translations
+}
+
+sha512sums="
+80dcaa9dcee51c36a42bcd57fc87acda94002af74602d934c7e9bfd275339d9ac200cd1f141fb9e2709ac054569bc22f1869623498ce16c636a3fab8dae4e70f sigil-1.9.30.tar.gz
+eb6a1d6c4cc94833b0356b5ce7b1a168d70dcb77a381b539ce8c5b75ef7cb1f7e5a62ad1c22a5d68105a08758035c654747c1a6e4f638cbc80fd897084db958a sigil-assert.patch
+"
diff --git a/testing/sigma/APKBUILD b/testing/sigma/APKBUILD
new file mode 100644
index 00000000000..65b3e6bd05c
--- /dev/null
+++ b/testing/sigma/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Will Sinatra <wpsinatra@gmail.com>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=sigma
+pkgver=0.23.1
+pkgrel=1
+pkgdesc="Generic Signature Format for SIEM Systems"
+url="https://github.com/sigmahq/sigma"
+license="LGPL-3.0-only"
+arch="noarch"
+makedepends="py3-build py3-installer py3-setuptools py3-wheel"
+depends="python3"
+_pkg=sigmatools
+subpackages="$pkgname-pyc"
+source="sigma-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/s/$_pkg/$_pkg-$pkgver.tar.gz
+ remove_data_file_installation.patch"
+builddir="$srcdir/$_pkg-$pkgver"
+options="!check"
+
+build() {
+ python3 -m build --wheel --no-isolation
+}
+
+package() {
+ python3 -m installer --destdir="$pkgdir" dist/*.whl
+ install -Dm644 config/*.yml -t "$pkgdir/etc/sigma/"
+ install -Dm644 config/generic/*.yml -t "$pkgdir/etc/sigma/"
+}
+
+sha512sums="
+8c91a66111765b02876e5b9341518aaa7a51eddc51cc16da077c2144673d7f8192fb0e997367d9f546d436a086244c0ae135e6e3348a0879ad6621f778f15c88 sigma-0.23.1.tar.gz
+ab129d3c74750b149655697f3e61f27e2119e0fef52e89c2abee6a23f32582dd3ea66ff20e78bc2d57fe0d5c92e4acea7fd6440af6bcd18073eaf40dca0de70e remove_data_file_installation.patch
+"
diff --git a/testing/sigma/remove_data_file_installation.patch b/testing/sigma/remove_data_file_installation.patch
new file mode 100644
index 00000000000..14e3a4c6248
--- /dev/null
+++ b/testing/sigma/remove_data_file_installation.patch
@@ -0,0 +1,26 @@
+diff --git a/setup.py b/setup.py
+index f852d0f..b7f5a57 100644
+--- a/setup.py
++++ b/setup.py
+@@ -44,15 +44,12 @@ setup(
+ ],
+ python_requires='~=3.8',
+ install_requires=['PyYAML', 'pymisp', 'progressbar2', 'ruamel.yaml', 'termcolor'],
+- extras_require={
+- 'test': ['coverage', 'yamllint', 'attackcti'],
+- },
+- data_files=[
+- ('etc/sigma', [ str(p) for p in Path('config/').glob('*.yml') ]),
+- ('etc/sigma/generic', [ str(p) for p in Path('config/generic/').glob('*.yml') ])],
+- entry_points={
+- 'console_scripts': [
+- 'sigmac = sigma.sigmac:main',
++ extras_require={
++ 'test': ['coverage', 'yamllint', 'attackcti'],
++ },
++ entry_points={
++ 'console_scripts': [
++ 'sigmac = sigma.sigmac:main',
+ 'merge_sigma = sigma.merge_sigma:main',
+ 'sigma2misp = sigma.sigma2misp:main',
+ 'sigma2attack = sigma.sigma2attack:main',
diff --git a/testing/signal-desktop/APKBUILD b/testing/signal-desktop/APKBUILD
new file mode 100644
index 00000000000..2032a9871a5
--- /dev/null
+++ b/testing/signal-desktop/APKBUILD
@@ -0,0 +1,489 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=signal-desktop
+pkgver=7.5.1
+pkgrel=0
+pkgdesc="A messaging app for simple private communication with friends"
+url="https://github.com/signalapp/Signal-Desktop/"
+# same as electron
+arch="aarch64 x86_64"
+license="AGPL-3.0-only"
+depends="
+ electron
+ font-barlow
+ font-eb-garamond
+ font-inter
+ font-parisienne
+ "
+makedepends="
+ alsa-lib-dev
+ aom-dev
+ brotli-dev
+ bsd-compat-headers
+ cargo
+ cargo-auditable
+ cbindgen
+ clang-dev
+ cmake
+ crc32c-dev
+ dav1d-dev
+ double-conversion-dev
+ electron-dev
+ electron-tasje
+ ffmpeg-dev
+ git-lfs
+ glib-dev
+ gn
+ jsoncpp-dev
+ libavif-dev
+ libjpeg-turbo-dev
+ libepoxy-dev
+ libevent-dev
+ libsecret-dev
+ libvpx-dev
+ libwebp-dev
+ lld
+ llvm-dev
+ mesa-dev
+ nodejs
+ npm
+ openh264-dev
+ openssl-dev
+ opus-dev
+ pipewire-dev
+ protoc
+ pulseaudio-dev
+ py3-setuptools
+ python3
+ samurai
+ sqlcipher-dev
+ vips-dev
+ yarn
+ "
+options="net !check"
+
+# follow signal-desktop package.json -> @signalapp/libsignal-client
+_libsignalver=0.42.0
+
+# follow signal-desktop package.json -> @signalapp/ringrtc
+_ringrtcver=2.39.3
+
+# follow ringrtc (on version above) -> config/version.properties -> webrtc.version
+# downloading tarball generated with abuild snapshot (with gclient dependencies fetched)
+_webrtcver=6261d
+
+# follow @signalapp/better-sqlite3 (on version in package.json) -> deps/download.js -> TOKENIZER_VERSION
+# last bsqlite version: 8.7.1
+_stokenizerver=0.2.1
+
+source="
+ https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v$pkgver/Signal-Desktop-$pkgver.tar.gz
+ https://github.com/signalapp/libsignal/archive/refs/tags/v$_libsignalver/libsignal-$_libsignalver.tar.gz
+ https://github.com/signalapp/ringrtc/archive/refs/tags/v$_ringrtcver/ringrtc-$_ringrtcver.tar.gz
+ https://ab-sn.lnl.gay/webrtc-$_webrtcver.tar.zst
+ https://github.com/signalapp/Signal-FTS5-Extension/archive/refs/tags/v$_stokenizerver/stokenizer-$_stokenizerver.tar.gz
+
+ bettersqlite-use-system-sqlcipher.patch
+ libsignal-auditable.patch
+ signal-disable-updates.patch
+ signal-update-links.patch
+ signal-show-window-please.patch
+ ringrtc-webrtc-renamed.patch
+ webrtc-shared-like-my-wife.patch
+ webrtc-compiler.patch
+ webrtc-gcc13.patch
+
+ signal-desktop
+ "
+builddir="$srcdir/Signal-Desktop-$pkgver"
+
+# webrtc broken on clang https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227
+export CC=gcc
+export CXX=g++
+
+# required to find the tools
+export AR=ar
+export NM=nm
+export LD=g++
+
+# less log spam, reproducible, allow lto with rust
+export CFLAGS="${CFLAGS/-g/} -O2 -Wno-error -Wno-deprecated-builtins -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
+export CXXFLAGS="${CXXFLAGS/-g/} -O2 -Wno-error -Wno-deprecated-builtins -Wno-unknown-warning-option -Wno-builtin-macro-redefined -Wno-deprecated-declarations"
+export CPPFLAGS="$CPPFLAGS -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL=2
+export CARGO_PROFILE_RELEASE_STRIP="symbols"
+#export RUSTFLAGS="$RUSTFLAGS -C linker=clang"
+
+export YARN_CACHE_FOLDER="$srcdir/.yarn"
+
+# webrtc only, the other dependencies are fine with tarballs
+_distbucket="sakamoto/lnl-aports-snapshots/"
+snapshot() {
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+
+ # cleanup if retrying
+ rm -rf src
+ rm -rf webrtc-$_webrtcver
+ rm -f webrtc-$_webrtcver.tar
+ rm -f webrtc-$_webrtcver.tar.zst
+
+ echo "
+solutions = [{
+ 'name': 'src',
+ 'url': 'https://github.com/signalapp/webrtc.git@$_webrtcver',
+}]
+target_cpu = ['x64', 'arm64']
+target_cpu_only = True
+" > .gclient
+
+ gclient sync --no-history --nohooks --tpot-cipd-ignore-platformed
+
+ # needed DEPS hooks
+ python3 'src/build/landmines.py' --landmine-scripts 'src/tools_webrtc/get_landmines.py' --src-dir 'src'
+ python3 'src/build/util/lastchange.py' -o 'src/build/util/LASTCHANGE'
+
+ for elf in $(scanelf -RA -F "%F" src); do
+ rm -f "$elf"
+ done
+
+ mv src webrtc-$_webrtcver
+
+ msg "generating tarball.."
+ tar -cf webrtc-$_webrtcver.tar \
+ --exclude="ChangeLog*" \
+ --exclude="testdata/" \
+ --exclude="test_data/" \
+ --exclude="android_rust_toolchain/toolchain/" \
+ --exclude="base/" \
+ --exclude-backups \
+ --exclude-caches-all \
+ --exclude-vcs \
+ webrtc-$_webrtcver
+
+ zstd --auto-threads=logical --ultra --long -22 -T"${ZSTD_LIMIT:-0}" -vv webrtc-$_webrtcver.tar -o "$SRCDEST"/webrtc-$_webrtcver.tar.zst
+ mcli cp "$SRCDEST"/webrtc-$_webrtcver.tar.zst "$_distbucket"
+}
+
+# manual patches
+default_prepare() { :; }
+
+prepare() {
+ default_prepare
+ msg "Applying patches"
+ for x in $source; do
+ case "$x" in
+ signal-*.patch)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/Signal-Desktop-$pkgver
+ ;;
+ libsignal-*.patch)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/libsignal-$_libsignalver
+ ;;
+ ringrtc-*.patch)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/ringrtc-$_ringrtcver
+ ;;
+ webrtc-*.patch)
+ msg "$x"
+ patch -p1 -i "$srcdir"/$x -d "$srcdir"/webrtc-$_webrtcver
+ ;;
+ esac
+ done
+
+ msg "Installing signal-desktop JS dependencies"
+ echo 'ignore-engines true' > .yarnrc
+ yarn --ignore-scripts --frozen-lockfile
+
+ (
+ cd "$srcdir"/webrtc-$_webrtcver
+
+ local use_system="
+ brotli
+ crc32c
+ dav1d
+ double-conversion
+ ffmpeg
+ flatbuffers
+ fontconfig
+ freetype
+ harfbuzz-ng
+ highway
+ icu
+ jsoncpp
+ libaom
+ libavif
+ libdrm
+ libevent
+ libjpeg
+ libpng
+ libsecret
+ libvpx
+ libwebp
+ libxml
+ libxslt
+ openh264
+ opus
+ re2
+ snappy
+ woff2
+ zlib
+ "
+ for _lib in $use_system double_conversion libjpeg_turbo; do
+ msg "Removing buildscripts for system provided $_lib"
+ find . -type f -path "*{third_party,ringrtc}/$_lib/*" \
+ \! -path "*third_party/$_lib/chromium/*" \
+ \! -path "*third_party/$_lib/google/*" \
+ \! -path './base/third_party/icu/*' \
+ \! -path './third_party/libxml/*' \
+ \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
+ \! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
+ \! -path './third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h' \
+ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+ -delete
+ done
+
+ msg "Replacing gn files"
+ python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+ $use_system
+
+ # allow system dependencies in "official builds"
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py
+
+ mkdir path
+ ln -s /usr/bin/python3 path/vpython3
+ )
+
+ (
+ cd "$srcdir"/ringrtc-$_ringrtcver/src/rust
+
+ msg "Installing ringrtc rust dependencies"
+ cargo fetch --target="$CTARGET" --locked
+ )
+
+ (
+ cd "$srcdir"/libsignal-$_libsignalver
+
+ msg "Installing libsignal rust dependencies"
+ cargo fetch --target="$CTARGET" --locked
+ )
+
+ (
+ cd "$srcdir"/Signal-FTS5-Extension-$_stokenizerver
+
+ msg "Installing signal tokenizer rust dependencies"
+ cargo fetch --target="$CTARGET" --locked
+ )
+
+ (
+ cd "$srcdir"/ringrtc-$_ringrtcver/src/node
+
+ msg "Installing ringrtc js dependencies"
+ yarn --frozen-lockfile --ignore-scripts
+ )
+
+ (
+ cd "$srcdir"/libsignal-$_libsignalver/node
+
+ # fix target
+ sed -i 's/unknown-linux-gnu/alpine-linux-musl/g' binding.gyp
+
+ msg "Installing libsignal js dependencies"
+ yarn --ignore-scripts --frozen-lockfile
+ )
+
+ # remove shipped fonts for system-provided (part 1)
+ rm -rf fonts/
+}
+
+build() {
+ chromium_arch="$(node -e 'console.log(process.arch)')"
+
+ # required dependency of ringrtc
+ (
+ cd "$srcdir"/webrtc-$_webrtcver
+ export PATH="$PWD/path:$PATH"
+
+ # shellcheck disable=2089
+ local webrtc_args="
+ rtc_build_examples=false
+ rtc_build_tools=false
+ rtc_enable_protobuf=false
+ rtc_enable_sctp=false
+ rtc_include_tests=false
+ rtc_include_ilbc=false
+ rtc_libvpx_build_vp9=true
+ rtc_use_x11=false
+
+ build_with_mozilla=false
+ chrome_pgo_phase=0
+ clang_use_chrome_plugins=false
+ clang_base_path=\"/usr\"
+ custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
+ is_cfi=false
+ is_clang=false
+ is_debug=false
+ is_official_build=true
+ host_toolchain=\"//build/toolchain/linux/unbundle:default\"
+ proprietary_codecs=true
+ rtc_link_pipewire=true
+ rtc_use_pipewire=true
+ symbol_level=0
+ use_custom_libcxx=false
+ use_lld=true
+ use_sysroot=false
+ "
+ mkdir -p "$srcdir"/ringrtc-$_ringrtcver/out/release
+ msg "Building signal's webrtc"
+ # shellcheck disable=2090,2116
+ gn gen "$srcdir"/ringrtc-$_ringrtcver/out/release --args="$(echo $webrtc_args)"
+ ninja -C "$srcdir"/ringrtc-$_ringrtcver/out/release signaldeswebrtc
+ )
+
+ (
+ cd "$srcdir"/ringrtc-$_ringrtcver
+
+ msg "Building libringrtc"
+ OUTPUT_DIR="$srcdir"/ringrtc-$_ringrtcver/out \
+ cargo auditable build --features electron --release -p ringrtc
+
+ mkdir -p src/node/build/linux
+ cp -fv out/release/libsignaldeswebrtc.so src/node/build/linux/libsignaldeswebrtc.so
+ cp -fv target/release/libringrtc.so src/node/build/linux/libringrtc-$chromium_arch.node
+ )
+
+ (
+ cd "$srcdir"/ringrtc-$_ringrtcver/src/node
+ msg "Building ringrtc JS glue code"
+ yarn build
+
+ msg "Cleaning dev dependencies for ringrtc"
+ yarn --ignore-scripts --frozen-lockfile --production
+ )
+
+ # module on npm intentionally unbuildable: https://github.com/signalapp/libsignal/issues/464#issuecomment-1160665052
+ (
+ cd "$srcdir"/libsignal-$_libsignalver/node
+
+ msg "Building libsignal"
+ yarn node-gyp configure --nodedir=/usr/include/electron/node_headers --build-from-source
+ yarn node-gyp build --nodedir=/usr/include/electron/node_headers --build-from-source
+
+ mkdir -p prebuilds/linux-$chromium_arch
+ mv build/Release/libsignal_client_linux_$chromium_arch.node prebuilds/linux-$chromium_arch/node.napi.node
+
+ msg "Building libsignal glue code"
+ yarn tsc
+
+ msg "Cleaning dev dependencies for libsignal"
+ yarn --ignore-scripts --frozen-lockfile --production
+ )
+
+ (
+ cd "$srcdir"/Signal-FTS5-Extension-$_stokenizerver
+
+ msg "Building signal tokenizer"
+ cargo auditable build --features extension --release --frozen
+ cbindgen --profile release . -o target/release/signal-tokenizer.h
+ )
+
+ # from package.json postinstall
+ yarn build:acknowledgments
+ yarn patch-package
+ rm -rf node_modules/dtrace-provider
+
+ # get esbuild installed (needed for next step)
+ npm rebuild esbuild
+
+ # build front
+ NODE_ENV=production \
+ SIGNAL_ENV=production \
+ NODE_OPTIONS=--openssl-legacy-provider \
+ yarn build:dev
+
+ # purge non-production deps
+ yarn install --ignore-scripts --frozen-lockfile --production
+
+ # XXX: the previous step undoes the patches. and removes the patch applier.
+ # please force me to just implement packaging without dev modules in tasje. -lnl
+ for x in patches/*.patch; do
+ # some of these patches are made for devDependencies
+ if [ -d "$(grep -Eo 'node_modules/(@[a-z\d_-]+/)?[a-z\d_-]+/' "$x" | head -n1)" ]; then
+ msg "$x"
+ patch -Np1 -i ./"$x"
+ fi
+ done
+
+ # use our libsignal
+ rm -rf node_modules/@signalapp/libsignal-client/
+ mv "$srcdir"/libsignal-$_libsignalver/node/ node_modules/@signalapp/libsignal-client
+
+ # use our libringrtc
+ rm -rf node_modules/@signalapp/ringrtc/
+ mv "$srcdir"/ringrtc-$_ringrtcver/src/node/ node_modules/@signalapp/ringrtc
+
+ # patch the sqlcipher module
+ for x in $source; do
+ case "$x" in
+ bettersqlite-*.patch)
+ msg "$x"
+ patch -Np1 -i "$srcdir"/$x -d "$srcdir"/Signal-Desktop-$pkgver/node_modules/@signalapp/better-sqlite3/
+ ;;
+ esac
+ done
+
+ mkdir node_modules/@signalapp/better-sqlite3/tokenizer
+ mv "$srcdir"/Signal-FTS5-Extension-$_stokenizerver/target/release/libsignal_tokenizer.a node_modules/@signalapp/better-sqlite3/tokenizer/
+ mv "$srcdir"/Signal-FTS5-Extension-$_stokenizerver/target/release/signal-tokenizer.h node_modules/@signalapp/better-sqlite3/tokenizer/
+
+ npm rebuild \
+ sharp @signalapp/better-sqlite3 spellchecker websocket \
+ utf-8-validate bufferutil fs-xattr \
+ --nodedir=/usr/include/electron/node_headers --build-from-source
+
+ SIGNAL_ENV=production \
+ tasje pack
+}
+
+check() {
+ # tests run against downloaded build of electron for glibc, probably can be patched
+ yarn test
+}
+
+package() {
+ cd "$builddir"/tasje_out
+
+ install -Dm644 resources/app.asar "$pkgdir"/usr/lib/$pkgname/app.asar
+ cp -r resources/app.asar.unpacked "$pkgdir"/usr/lib/$pkgname/app.asar.unpacked
+ install -Dm644 signal.desktop "$pkgdir"/usr/share/applications/$pkgname.desktop
+
+ # this should be in /usr/lib/signal-desktop. however, it does not simply work and I stopped to care
+ install -Dm755 "$srcdir"/ringrtc-$_ringrtcver/out/release/libsignaldeswebrtc.so "$pkgdir"/usr/lib/libsignaldeswebrtc.so
+
+ install -Dm755 "$srcdir"/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ while read -r size; do
+ install -Dm644 icons/$size.png "$pkgdir"/usr/share/icons/hicolor/$size/apps/$pkgname.png
+ done < icons/size-list
+}
+
+sha512sums="
+050e94376ddee65982acda16a1f62fa83e216f9b66023686acfe8acf192990bac225c519c6377402030becf29f573ec1ca34e13edc0bb9ad74c96f0ad6354026 Signal-Desktop-7.5.1.tar.gz
+f2d5bf7958ea7d8562b19d262c6b9ccac3ca034dc51bdf3b6b05844052c5bffaebe50b9b3331f809d3e4bc8c65fc161a85df166c67637a5cca7977a00409a629 libsignal-0.42.0.tar.gz
+40fdf2448d7f8d44fb57c2f5ffb90bc670c1f31b98b932c753c703510174e50d319bda0e741e4ebe81aeb3efb3d41b73f67251c217850d636ba726434cced36e ringrtc-2.39.3.tar.gz
+e5158f81fd652bcaa2bd762d7a378958aed7cd90446c21be1f4613f42ceb64db693037c2c3cda4f80c8fd37ae13da71e5ba92330be81d65b8e72777e5e4673d4 webrtc-6261d.tar.zst
+84a1f2fc29262a12842e94698d124a85b823128e72a493b0be8ea92fbb72c5c268499f4a6827cdedaae06ec73cce4039a39fe5c5d536cbef330e59ba0183da28 stokenizer-0.2.1.tar.gz
+be5b4e823543b79175a12314f10c6326d9f0d59f470136962daed4665887006acc05b48b40dc1b67747396d8f6f7d23be298c1e110ccdd35ff9b09d5e6b80bab bettersqlite-use-system-sqlcipher.patch
+92de6fc7cc5f2b6d65bedbd74cc733dd86dafc9cbfb9b727c3267aef63a71a07247cde9b163c68fddfeb9096dcd7f554d36d0b2de078d8905e3825645ddbd6eb libsignal-auditable.patch
+f13389dd7a1360022d919fa1350210a92e5b832aa32b0ac278b63b1f41462c7807ac28c7867eecf71dac8f3ca699fd0fb0d87de8d1244c3e65cc4b78304e8ef4 signal-disable-updates.patch
+d50eb5724502df9ea4d795db8cfc27af767c25168d7db2af512e615be7cc2ca290210a9ae78e1abb153c0198677e858ad3d74926c958099d0319295e7d9e7f1d signal-update-links.patch
+646d303fe58cae3f0896ae0275a66695b902fae6ddde7c568cc9798157dee9f45ceff907bc951fadc4c511d512a73d114b4e4f7c8914e2311c63929d29e1621a signal-show-window-please.patch
+ab51b8fdcda1d8811213d2c5d8cb5d8457b478a02e23ce40f36b38ec56d45a3bd7a2d184720c27046f98a27771551cfad93c1290fe93856cc02695d318b33e47 ringrtc-webrtc-renamed.patch
+9d92389637cdda83a0a7039fa6c52516d7bc491d0b1e42d5374b9d1f4fa7b9c930642f2dca896da17a2dc3344fa1bb97434c8dddd0539a4fedfd0dec809fc875 webrtc-shared-like-my-wife.patch
+e07ae8544988d402aaf0fbd95ea36a64c94c59566c561132578aa6dcf8ff11a34058530e64dc204e5cadc2482f1401e74b32384a144e5e08017c663d0cf7c2fc webrtc-compiler.patch
+88515d8b8cc82355c9f9b0f44fac83b7ff149b13e9fb102fd46036ec5234cfb2385fa5ad58a0520ee604b93dc4ddd6ae18a7005978ef207841645724ef7a9749 webrtc-gcc13.patch
+87534e7b5ad7365509eab75629e6bd1a9ed61ee92f7e358405a0abaf0df57de14623fb3894eb082f8785422e5c087e1c50f9e2e5cafbb2529591fd7bf447f7f5 signal-desktop
+"
diff --git a/testing/signal-desktop/bettersqlite-use-system-sqlcipher.patch b/testing/signal-desktop/bettersqlite-use-system-sqlcipher.patch
new file mode 100644
index 00000000000..f0dfe0db735
--- /dev/null
+++ b/testing/signal-desktop/bettersqlite-use-system-sqlcipher.patch
@@ -0,0 +1,56 @@
+--- a/binding.gyp
++++ b/binding.gyp
+@@ -7,7 +7,16 @@
+ 'targets': [
+ {
+ 'target_name': 'better_sqlite3',
+- 'dependencies': ['deps/sqlite3.gyp:sqlite3'],
++ 'include_dirs': [
++ '/usr/include/sqlcipher',
++ 'tokenizer',
++ ],
++ 'link_settings': {
++ 'libraries': [
++ '-lsqlcipher',
++ '<!(pwd)/tokenizer/libsignal_tokenizer.a',
++ ]
++ },
+ 'sources': ['src/better_sqlite3.cpp'],
+ 'cflags_cc': ['-std=c++17'],
+ 'xcode_settings': {
+@@ -24,14 +33,22 @@
+ ['OS=="linux"', {
+ 'ldflags': [
+ '-Wl,-Bsymbolic',
+- '-Wl,--exclude-libs,ALL',
+ ],
+ }],
+ ],
+ },
+ {
+ 'target_name': 'test_extension',
+- 'dependencies': ['deps/sqlite3.gyp:sqlite3'],
++ 'include_dirs': [
++ '/usr/include/sqlcipher',
++ 'tokenizer',
++ ],
++ 'link_settings': {
++ 'libraries': [
++ '-lsqlcipher',
++ '<!(pwd)/tokenizer/libsignal_tokenizer.a',
++ ]
++ },
+ 'conditions': [['sqlite3 == ""', { 'sources': ['deps/test_extension.c'] }]],
+ },
+ ],
+--- a/package.json
++++ b/package.json
+@@ -34,7 +34,7 @@
+ "sqlite3": "^5.0.2"
+ },
+ "scripts": {
+- "install": "npm run download && npm run build-release",
++ "install": "npm run build-release",
+ "build-release": "node-gyp rebuild --release",
+ "build-debug": "node-gyp rebuild --debug",
+ "rebuild-release": "npm run lzz && npm run build-release",
diff --git a/testing/signal-desktop/libsignal-auditable.patch b/testing/signal-desktop/libsignal-auditable.patch
new file mode 100644
index 00000000000..bdf59ab0a1b
--- /dev/null
+++ b/testing/signal-desktop/libsignal-auditable.patch
@@ -0,0 +1,11 @@
+--- ./node/build_node_bridge.py.orig
++++ ./node/build_node_bridge.py
+@@ -63,7 +63,7 @@
+
+ out_dir = options.out_dir.strip('"') or os.path.join('build', configuration_name)
+
+- cmdline = ['cargo', 'build', '--target', cargo_target, '-p', 'libsignal-node', '--features', 'testing-fns']
++ cmdline = ['cargo', 'auditable', 'build', '--target', cargo_target, '-p', 'libsignal-node', '--features', 'testing-fns']
+ if configuration_name == 'Release':
+ cmdline.append('--release')
+ print("Running '%s'" % (' '.join(cmdline)))
diff --git a/testing/signal-desktop/ringrtc-webrtc-renamed.patch b/testing/signal-desktop/ringrtc-webrtc-renamed.patch
new file mode 100644
index 00000000000..2d2a61af3c2
--- /dev/null
+++ b/testing/signal-desktop/ringrtc-webrtc-renamed.patch
@@ -0,0 +1,21 @@
+--- ./src/rust/build.rs.orig
++++ ./src/rust/build.rs
+@@ -41,15 +41,15 @@
+ if cfg!(feature = "native") {
+ if let Ok(out_dir) = out_dir {
+ println!(
+- "cargo:rustc-link-search=native={}/{}/obj/",
++ "cargo:rustc-link-search=native={}/{}/",
+ out_dir, build_type,
+ );
+- println!("cargo:rerun-if-changed={}/{}/obj/", out_dir, build_type,);
++ println!("cargo:rerun-if-changed={}/{}/", out_dir, build_type,);
+ } else {
+ println!("cargo:warning=No WebRTC output directory (OUTPUT_DIR) defined!");
+ }
+
+- println!("cargo:rustc-link-lib=webrtc");
++ println!("cargo:rustc-link-lib=dylib=signaldeswebrtc");
+
+ if cfg!(target_os = "macos") {
+ println!("cargo:rustc-link-lib=dylib=c++");
diff --git a/testing/signal-desktop/signal-desktop b/testing/signal-desktop/signal-desktop
new file mode 100755
index 00000000000..370469ce5e3
--- /dev/null
+++ b/testing/signal-desktop/signal-desktop
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# app chooses config (including used endpoints) based on this
+export NODE_ENV=production
+
+exec electron /usr/lib/signal-desktop/app.asar
diff --git a/testing/signal-desktop/signal-disable-updates.patch b/testing/signal-desktop/signal-disable-updates.patch
new file mode 100644
index 00000000000..1e38199c001
--- /dev/null
+++ b/testing/signal-desktop/signal-disable-updates.patch
@@ -0,0 +1,9 @@
+--- a/config/production.json
++++ b/config/production.json
+@@ -15,5 +15,5 @@
+ "serverPublicParams": "AMhf5ywVwITZMsff/eCyudZx9JDmkkkbV6PInzG4p8x3VqVJSFiMvnvlEKWuRob/1eaIetR31IYeAbm0NdOuHH8Qi+Rexi1wLlpzIo1gstHWBfZzy1+qHRV5A4TqPp15YzBPm0WSggW6PbSn+F4lf57VCnHF7p8SvzAA2ZZJPYJURt8X7bbg+H3i+PEjH9DXItNEqs2sNcug37xZQDLm7X36nOoGPs54XsEGzPdEV+itQNGUFEjY6X9Uv+Acuks7NpyGvCoKxGwgKgE5XyJ+nNKlyHHOLb6N1NuHyBrZrgtY/JYJHRooo5CEqYKBqdFnmbTVGEkCvJKxLnjwKWf+fEPoWeQFj5ObDjcKMZf2Jm2Ae69x+ikU5gBXsRmoF94GXTLfN0/vLt98KDPnxwAQL9j5V1jGOY8jQl6MLxEs56cwXN0dqCnImzVH3TZT1cJ8SW1BRX6qIVxEzjsSGx3yxF3suAilPMqGRp4ffyopjMD1JXiKR2RwLKzizUe5e8XyGOy9fplzhw3jVzTRyUZTRSZKkMLWcQ/gv0E4aONNqs4P+NameAZYOD12qRkxosQQP5uux6B2nRyZ7sAV54DgFyLiRcq1FvwKw2EPQdk4HDoePrO/RNUbyNddnM/mMgj4FW65xCoT1LmjrIjsv/Ggdlx46ueczhMgtBunx1/w8k8V+l8LVZ8gAT6wkU5J+DPQalQguMg12Jzug3q4TbdHiGCmD9EunCwOmsLuLJkz6EcSYXtrlDEnAM+hicw7iergYLLlMXpfTdGxJCWJmP4zqUFeTTmsmhsjGBt7NiEB/9pFFEB3pSbf4iiUukw63Eo8Aqnf4iwob6X1QviCWuc8t0I=",
+ "serverTrustRoot": "BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF",
+ "genericServerPublicParams": "AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN",
+- "updatesEnabled": true
++ "updatesEnabled": false
+ }
diff --git a/testing/signal-desktop/signal-show-window-please.patch b/testing/signal-desktop/signal-show-window-please.patch
new file mode 100644
index 00000000000..39c8381641b
--- /dev/null
+++ b/testing/signal-desktop/signal-show-window-please.patch
@@ -0,0 +1,11 @@
+--- ./app/main.ts.orig
++++ ./app/main.ts
+@@ -721,7 +721,7 @@
+ const titleBarOverlay = await getTitleBarOverlay();
+
+ const windowOptions: Electron.BrowserWindowConstructorOptions = {
+- show: false,
++ show: true,
+ width: DEFAULT_WIDTH,
+ height: DEFAULT_HEIGHT,
+ minWidth: MIN_WIDTH,
diff --git a/testing/signal-desktop/signal-update-links.patch b/testing/signal-desktop/signal-update-links.patch
new file mode 100644
index 00000000000..39ec819e635
--- /dev/null
+++ b/testing/signal-desktop/signal-update-links.patch
@@ -0,0 +1,25 @@
+--- ./ts/components/DialogExpiredBuild.tsx.orig
++++ ./ts/components/DialogExpiredBuild.tsx
+@@ -23,9 +23,9 @@
+ containerWidthBreakpoint={containerWidthBreakpoint}
+ type="error"
+ onClick={() => {
+- openLinkInWebBrowser('https://signal.org/download/');
++ openLinkInWebBrowser('https://pkgs.alpinelinux.org/packages?name=signal-desktop');
+ }}
+- clickLabel={i18n('icu:upgrade')}
++ clickLabel={<code>apk upgrade signal-desktop</code>}
+ hasAction
+ >
+ {i18n('icu:expiredWarning')}{' '}
+--- ./ts/types/support.ts.orig
++++ ./ts/types/support.ts
+@@ -1,7 +1,7 @@
+ // Copyright 2023 Signal Messenger, LLC
+ // SPDX-License-Identifier: AGPL-3.0-only
+
+-export const PRODUCTION_DOWNLOAD_URL = 'https://signal.org/download/';
++export const PRODUCTION_DOWNLOAD_URL = 'https://pkgs.alpinelinux.org/packages?name=signal-desktop';
+ export const BETA_DOWNLOAD_URL = 'https://support.signal.org/beta';
+ export const UNSUPPORTED_OS_URL =
+ 'https://support.signal.org/hc/articles/5109141421850';
diff --git a/testing/signal-desktop/webrtc-compiler.patch b/testing/signal-desktop/webrtc-compiler.patch
new file mode 100644
index 00000000000..e81b89cde33
--- /dev/null
+++ b/testing/signal-desktop/webrtc-compiler.patch
@@ -0,0 +1,40 @@
+--- ./build/config/compiler/BUILD.gn.orig
++++ ./build/config/compiler/BUILD.gn
+@@ -624,14 +624,14 @@
+ if (default_toolchain != "//build/toolchain/cros:target" &&
+ !llvm_android_mainline) {
+ cflags += [
+- "-mllvm",
+- "-split-threshold-for-reg-with-hint=0",
++ #"-mllvm",
++ #"-split-threshold-for-reg-with-hint=0",
+ ]
+ if (use_thin_lto && is_a_target_toolchain) {
+ if (is_win) {
+ ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
+ } else {
+- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
++ #ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
+ }
+ }
+ }
+@@ -805,7 +805,7 @@
+
+ # We only use one version of LLVM within a build so there's no need to
+ # upgrade debug info, which can be expensive since it runs the verifier.
+- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
++ #ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ]
+ }
+
+ # TODO(https://crbug.com/1211155): investigate why this isn't effective on
+@@ -1191,8 +1191,8 @@
+ } else if (current_cpu == "arm64") {
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
+ !(is_chromeos_lacros && is_chromeos_device)) {
+- cflags += [ "--target=aarch64-linux-gnu" ]
+- ldflags += [ "--target=aarch64-linux-gnu" ]
++ cflags += [ "--target=aarch64-alpine-linux-musl" ]
++ ldflags += [ "--target=aarch64-alpine-linux-musl" ]
+ }
+ } else if (current_cpu == "mipsel" && !is_nacl) {
+ ldflags += [ "-Wl,--hash-style=sysv" ]
diff --git a/testing/signal-desktop/webrtc-gcc13.patch b/testing/signal-desktop/webrtc-gcc13.patch
new file mode 100644
index 00000000000..f27bc56a45c
--- /dev/null
+++ b/testing/signal-desktop/webrtc-gcc13.patch
@@ -0,0 +1,20 @@
+--- ./rtc_base/system/file_wrapper.h.orig
++++ ./rtc_base/system/file_wrapper.h
+@@ -13,6 +13,7 @@
+
+ #include <stddef.h>
+ #include <stdio.h>
++#include <stdint.h>
+
+ #include <string>
+
+--- ./modules/audio_coding/neteq/reorder_optimizer.cc.orig
++++ ./modules/audio_coding/neteq/reorder_optimizer.cc
+@@ -11,6 +11,7 @@
+ #include "modules/audio_coding/neteq/reorder_optimizer.h"
+
+ #include <algorithm>
++#include <cstdint>
+ #include <limits>
+ #include <vector>
+
diff --git a/testing/signal-desktop/webrtc-shared-like-my-wife.patch b/testing/signal-desktop/webrtc-shared-like-my-wife.patch
new file mode 100644
index 00000000000..bd7115af746
--- /dev/null
+++ b/testing/signal-desktop/webrtc-shared-like-my-wife.patch
@@ -0,0 +1,28 @@
+--- ./BUILD.gn.orig
++++ ./BUILD.gn
+@@ -38,7 +38,7 @@
+ # 'ninja default' and then 'ninja all', the second build should do no work.
+ group("default") {
+ testonly = true
+- deps = [ ":webrtc" ]
++ deps = [ ":signaldeswebrtc" ]
+ if (rtc_build_examples) {
+ deps += [ "examples" ]
+ }
+@@ -464,7 +464,7 @@
+
+ if (!build_with_chromium) {
+ # Target to build all the WebRTC production code.
+- rtc_static_library("webrtc") {
++ rtc_shared_library("signaldeswebrtc") {
+ # Only the root target and the test should depend on this.
+ visibility = [
+ "//:default",
+@@ -472,7 +472,6 @@
+ ]
+
+ sources = []
+- complete_static_lib = true
+ suppressed_configs += [ "//build/config/compiler:thin_archive" ]
+ defines = []
+
diff --git a/testing/sigrok-cli/APKBUILD b/testing/sigrok-cli/APKBUILD
index 98435138ffd..646e90bc989 100644
--- a/testing/sigrok-cli/APKBUILD
+++ b/testing/sigrok-cli/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=sigrok-cli
-pkgver=0.7.1
+pkgver=0.7.2
pkgrel=0
pkgdesc="A command-line frontend for sigrok"
url="https://sigrok.org/wiki/Sigrok-cli"
@@ -23,4 +23,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="a56d9439efca74f8362ed225d8fa92adfaee053470b166629ad2d8f3ebf5bea05a37782750c9321aabd3b47e634734fa5e5b0cc5353bf49dd1629cdcdb98aef5 sigrok-cli-0.7.1.tar.gz"
+sha512sums="
+5862aa11a586ebb3acf9bffd1d2686cb5b3c3622b436080e05e2fc826a4814cf4746f128c01764f8dc664c5fc1a1e8c6ef66e548770278cc6ea99353d2173143 sigrok-cli-0.7.2.tar.gz
+"
diff --git a/testing/sigrok-firmware-fx2lafw-bin/APKBUILD b/testing/sigrok-firmware-fx2lafw-bin/APKBUILD
index 35c5c5de7df..a333a24061b 100644
--- a/testing/sigrok-firmware-fx2lafw-bin/APKBUILD
+++ b/testing/sigrok-firmware-fx2lafw-bin/APKBUILD
@@ -1,17 +1,16 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname="sigrok-firmware-fx2lafw-bin"
+pkgname=sigrok-firmware-fx2lafw-bin
replaces="${pkgname%-bin}"
-pkgver=0.1.6
+pkgver=0.1.7
pkgrel=0
pkgdesc="Open source firmware for logic analyzers based on Cypress FX2 chips"
-url="https://sigrok.org/wiki/Libsigrok"
+url="https://sigrok.org/wiki/Fx2lafw"
arch="noarch"
license="GPL-2.0-or-later"
# Using prebuild firmware, as required toolchain is not (yet) available on
# Alpine Linux
-source="https://sigrok.org/download/binary/${pkgname%-bin}/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://sigrok.org/download/binary/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw-bin-$pkgver.tar.gz"
# No checks possible, as firmware runs on the logic analyzer
options="!check"
@@ -21,4 +20,4 @@ package() {
-exec cp {} "$pkgdir/usr/share/sigrok-firmware" \;
}
-sha512sums="0dd4eb5327fbf5a8ee413b5ad460e2febe7da6aba13cfe4c7467966e4d4a0033b796ce7634647c0bbfa335034180272e7f8167b7a8181fb73ed3839891a44e46 sigrok-firmware-fx2lafw-bin-0.1.6.tar.gz"
+sha512sums="60faac29198532bd5e03e44ed7f89c1502c83c6cf60ec5cc0f3ae9891c45b5de55eba5304c47d3231c8222ff61f1425aed88a44e7ff89d30b75d6e5faf7a623c sigrok-firmware-fx2lafw-bin-0.1.7.tar.gz"
diff --git a/testing/siji-ng/APKBUILD b/testing/siji-ng/APKBUILD
new file mode 100644
index 00000000000..5cbad25c76a
--- /dev/null
+++ b/testing/siji-ng/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=siji-ng
+pkgver=1.2.1
+pkgrel=0
+pkgdesc="bitmap iconic font"
+url="https://github.com/begss/siji-ng"
+arch="noarch"
+license="GPL-2.0-or-later"
+makedepends="python3 bdftopcf"
+source="https://github.com/begss/siji-ng/archive/v$pkgver/siji-ng-$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+e7ca56410fa741afd9a36f016a634b94159b48890e037cc2c54b3c207776a9557a9e84fe284572f50ce16b9fdadd5f4b932cad49be97500a605869e1b00a364b siji-ng-1.2.1.tar.gz
+"
diff --git a/testing/silc-client/APKBUILD b/testing/silc-client/APKBUILD
index d89d60a9c0a..9a8c9e3aa33 100644
--- a/testing/silc-client/APKBUILD
+++ b/testing/silc-client/APKBUILD
@@ -1,24 +1,29 @@
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
-# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=silc-client
pkgver=1.1.11
-pkgrel=10
+pkgrel=16
pkgdesc="Secure Internet Live Conferencing - client"
url="http://silcnet.org/"
arch="all"
license="GPL-2.0-only"
-makedepends="file glib-dev openssl-dev perl-dev ncurses-dev"
+makedepends="file glib-dev openssl-dev>3 perl-dev ncurses-dev"
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/project/silc/silc/client/sources/silc-client-$pkgver.tar.gz"
+source="https://downloads.sourceforge.net/project/silc/silc/client/sources/silc-client-$pkgver.tar.gz
+ format-security.patch
+ "
prepare() {
default_prepare
update_config_guess
+ update_config_sub
}
build() {
./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
--prefix=/usr \
--sysconfdir=/etc
make
@@ -29,9 +34,11 @@ check() {
}
package() {
- make DESTDIR=$pkgdir install
- rm $pkgdir/usr/lib/perl5/core_perl/perllocal.pod
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/lib/perl5/core_perl/perllocal.pod
}
-
-sha512sums="185cd687a155fbbfbb65877438c2ad099d6795451d443d4d826d47469d312fa9f82035999d1cdf80f24eac2df45a10e88ddf095dc5acda70a31c61a4abb1cdb2 silc-client-1.1.11.tar.gz"
+sha512sums="
+185cd687a155fbbfbb65877438c2ad099d6795451d443d4d826d47469d312fa9f82035999d1cdf80f24eac2df45a10e88ddf095dc5acda70a31c61a4abb1cdb2 silc-client-1.1.11.tar.gz
+b4fee252d1bbd8ade5f89f16db95b156749b7d23ae730f9385e9ed11f92e2b38ad36d8a8e8e55aa87a65ac8a578c0d789f96d775bccc4037d8155ece892153ac format-security.patch
+"
diff --git a/testing/silc-client/format-security.patch b/testing/silc-client/format-security.patch
new file mode 100644
index 00000000000..c3a3b4ff611
--- /dev/null
+++ b/testing/silc-client/format-security.patch
@@ -0,0 +1,22 @@
+diff --git a/apps/irssi/src/core/network.c b/apps/irssi/src/core/network.c
+index d7c1017..5954d1f 100644
+--- a/apps/irssi/src/core/network.c
++++ b/apps/irssi/src/core/network.c
+@@ -356,7 +356,7 @@ int net_receive(GIOChannel *handle, char *buf, int len)
+
+ status = g_io_channel_read_chars(handle, buf, len, &ret, &err);
+ if (err != NULL) {
+- g_warning(err->message);
++ g_warning("%s", err->message);
+ g_error_free(err);
+ }
+ if (status == G_IO_STATUS_ERROR || status == G_IO_STATUS_EOF)
+@@ -377,7 +377,7 @@ int net_transmit(GIOChannel *handle, const char *data, int len)
+
+ status = g_io_channel_write_chars(handle, (char *) data, len, &ret, &err);
+ if (err != NULL) {
+- g_warning(err->message);
++ g_warning("%s", err->message);
+ g_error_free(err);
+ }
+ if (status == G_IO_STATUS_ERROR)
diff --git a/testing/simavr/APKBUILD b/testing/simavr/APKBUILD
new file mode 100644
index 00000000000..59c2368e7c3
--- /dev/null
+++ b/testing/simavr/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=simavr
+pkgver=1.7
+pkgrel=1
+pkgdesc="lean, mean Atmel AVR simulator "
+url="https://github.com/buserror/simavr"
+arch="aarch64 ppc64le x86_64" # avr-libs -> gcc-avr -> binutils-avr
+license="GPL-3.0-or-later"
+options="!check" # tests fails
+makedepends="avr-libc freeglut-dev elfutils-dev bash"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/buserror/simavr/archive/v$pkgver.tar.gz"
+
+build() {
+ export CFLAGS="$CFLAGS -fPIC -O2 -std=gnu99 -Wno-error=stringop-truncation"
+ make RELEASE=1 SIMAVR_VERSION=$pkgver DESTDIR=/usr PREFIX=/usr build-simavr
+ make RELEASE=1 SIMAVR_VERSION=$pkgver -C examples/parts
+}
+
+check() {
+ make RELEASE=1 -C tests
+}
+
+package() {
+ make RELEASE=1 SIMAVR_VERSION=$pkgver DESTDIR="$pkgdir/usr" PREFIX=/usr install-simavr
+}
+
+sha512sums="
+49647025d9aae652f975cf67c5ab626f5e9db487fcd6745b88c5b668f25b3b0d5e92dbae672e4f827fd1ae00040885825689b39a85bd6c5ae3e7bf731fb720cc simavr-1.7.tar.gz
+"
diff --git a/testing/simgear/APKBUILD b/testing/simgear/APKBUILD
index 0cf3985cf60..82de0c571c2 100644
--- a/testing/simgear/APKBUILD
+++ b/testing/simgear/APKBUILD
@@ -1,42 +1,54 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=simgear
-pkgver=2019.1.1
-pkgrel=2
+pkgver=2020.3.19
+_pkgver=${pkgver%.*}
+pkgrel=1
pkgdesc="Sim library for FlightGear"
options="!check" # Accepts boost only up to 1.71.0
url="https://github.com/FlightGear/simgear"
-arch="x86_64" # openscenegraph availability
-license="GPL"
-makedepends="$depends_dev boost-dev cmake curl-dev mesa-dev openal-soft-dev
- openscenegraph-dev zlib-dev expat-dev"
+arch="all !riscv64" # openscenegraph availability
+license="GPL-2.0-or-later"
+makedepends="
+ $depends_dev
+ boost-dev
+ cmake
+ curl-dev
+ expat-dev
+ mesa-dev
+ openal-soft-dev
+ openscenegraph-dev
+ samurai
+ zlib-dev
+ "
subpackages="$pkgname-dev"
-source="https://downloads.sourceforge.net/project/flightgear/release-${pkgver%.[0-9]}/simgear-$pkgver.tar.bz2
- musl-fixes.patch
- https://github.com/FlightGear/simgear/commit/d883ab278d10c89580d5bbc4473d2e9fc375b7b9.patch
- https://github.com/FlightGear/simgear/commit/b28f030874d514dfc1393f5a7156f202556f3730.patch
- https://github.com/FlightGear/simgear/commit/dc886118baec64f9e86e45c1e2713bbf245f972e.patch
+source="
+ https://downloads.sourceforge.net/project/flightgear/release-$_pkgver/simgear-$pkgver.tar.bz2
+ gcc12.patch
+ musl-strerror_r.patch
+ musl-u_types.patch
"
build() {
# use system expat
rm -rf simgear/xml/*.h simgear/xml/*.c
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DSYSTEM_EXPAT=ON \
-DENABLE_TESTS=false \
- .
- make
+
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="83fe4330cf27b9298719f53f2fccde2af77bacdc6f430cc22c8bdfb475fe9b6e01578c1225af21e4e1433c7d2f2b00427454064f942359ba4c1e9896e7fe05d2 simgear-2019.1.1.tar.bz2
-7efcf01c9328b0732ae9aa7af4edb52e14919663a8d3acbe429a0697f59a55e85a71628d9afaa3d38327d960dbf5dacc1f964e38dd6cb499b593ae2be918b140 musl-fixes.patch
-db2e5a38ff985ac9d81af6d623a92bd1791d002b8629a810eb7873d5b743e6a51f5c841d3ba5207f95d6edcf3fe2565ec521f9d86ef6eb1f4a5c61dc90de5bdb d883ab278d10c89580d5bbc4473d2e9fc375b7b9.patch
-54b40b272b6847c6bd1c74d2758b15c239870c590daa6fdeb6eb402e220a0606a06f7f9e5abfebc3d8856d79e6921c0ec641cae148bac3efb0972150b7323f3d b28f030874d514dfc1393f5a7156f202556f3730.patch
-d03427c942b377d147529fb29f71e307543dd19946ef21868629d20c1e7205a122bebf8d7d54c4914e6b1765eceab207e433501db4665f6657d18e56a7bf80ea dc886118baec64f9e86e45c1e2713bbf245f972e.patch"
+sha512sums="
+b5c2acb9b843c48e573764c1474bc8723167376546d2fe01246ea936d348abf7e26c8778037680dc76fad5e514209ccce03f8c49cdd90ff0fb44f86759f9ec64 simgear-2020.3.19.tar.bz2
+aea0bbc11b221d73706891d7ac9a79c4c359f4e7184752194737ede7f5938c65f79cd9d7b6b20ce236867761c03a5c883d468d698664f7e4583652ec448a8b8c gcc12.patch
+0dac20e58c663227336e39b3c3c75fbf7e47d60b5a16dc30f0d7f8c9bbc3fec901b5f4e3511e28c682fad5ff925df0f0215604295989d1eb99e4155fd3dde685 musl-strerror_r.patch
+a34b8ba88fcc3d06f5695484d20fe6c40b8c623cafc81642fd123d62955cf59e12ac10a335a541c5e4353997fa9c5ac00b265c6821a7810c936f456a72b5e1aa musl-u_types.patch
+"
diff --git a/testing/simgear/gcc12.patch b/testing/simgear/gcc12.patch
new file mode 100644
index 00000000000..400c6351681
--- /dev/null
+++ b/testing/simgear/gcc12.patch
@@ -0,0 +1,12 @@
+diff --git a/simgear/scene/viewer/Compositor.hxx b/simgear/scene/viewer/Compositor.hxx
+index f7e538c..74465af 100644
+--- a/simgear/scene/viewer/Compositor.hxx
++++ b/simgear/scene/viewer/Compositor.hxx
+@@ -17,6 +17,7 @@
+ #ifndef SG_COMPOSITOR_HXX
+ #define SG_COMPOSITOR_HXX
+
++#include <array>
+ #include <unordered_map>
+ #include <vector>
+
diff --git a/testing/simgear/musl-fixes.patch b/testing/simgear/musl-fixes.patch
deleted file mode 100644
index 441626d0529..00000000000
--- a/testing/simgear/musl-fixes.patch
+++ /dev/null
@@ -1,59 +0,0 @@
---- a/simgear/misc/strutils.cxx
-+++ b/simgear/misc/strutils.cxx
-@@ -43,6 +43,11 @@
- #include <windows.h>
- #endif
-
-+#ifdef _GNU_SOURCE
-+#undef _GNU_SOURCE
-+#define _POSIX_C_SOURCE 200112L
-+#endif
-+
- using std::string;
- using std::vector;
- using std::stringstream;
---- a/simgear/package/md5.h
-+++ b/simgear/package/md5.h
-@@ -20,9 +20,9 @@
- #endif
-
- #if defined(_MSC_VER)
--typedef unsigned char u_int8_t;
--typedef unsigned int u_int32_t;
--typedef unsigned __int64 u_int64_t;
-+typedef unsigned char uint8_t;
-+typedef unsigned int uint32_t;
-+typedef unsigned __int64 uint64_t;
- #endif
-
- #define MD5_BLOCK_LENGTH 64
-@@ -30,16 +30,16 @@
- #define MD5_DIGEST_STRING_LENGTH (MD5_DIGEST_LENGTH * 2 + 1)
-
- typedef struct MD5Context {
-- u_int32_t state[4]; /* state */
-- u_int64_t count; /* number of bits, mod 2^64 */
-- u_int8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
-+ uint32_t state[4]; /* state */
-+ uint64_t count; /* number of bits, mod 2^64 */
-+ uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
- } SG_MD5_CTX;
-
- void SG_MD5Init(SG_MD5_CTX *);
--void SG_MD5Update(SG_MD5_CTX *, const u_int8_t *, size_t);
-+void SG_MD5Update(SG_MD5_CTX *, const uint8_t *, size_t);
- void SG_MD5Pad(SG_MD5_CTX *);
--void SG_MD5Final(u_int8_t [MD5_DIGEST_LENGTH], SG_MD5_CTX *);
--void SG_MD5Transform(u_int32_t [4], const u_int8_t [MD5_BLOCK_LENGTH]);
-+void SG_MD5Final(uint8_t [MD5_DIGEST_LENGTH], SG_MD5_CTX *);
-+void SG_MD5Transform(uint32_t [4], const uint8_t [MD5_BLOCK_LENGTH]);
-
- #ifdef __cplusplus
- } // of extern C
-@@ -49,4 +49,4 @@
-
-
-
--
-\ No newline at end of file
-+
diff --git a/testing/simgear/musl-strerror_r.patch b/testing/simgear/musl-strerror_r.patch
new file mode 100644
index 00000000000..b88fa29600f
--- /dev/null
+++ b/testing/simgear/musl-strerror_r.patch
@@ -0,0 +1,25 @@
+--- a/simgear/misc/strutils.cxx 2020-06-26 00:07:33.000000000 +0200
++++ b/simgear/misc/strutils.cxx 2020-08-22 19:50:07.043076612 +0200
+@@ -1169,7 +1175,13 @@
+ // Always makes the string in 'buf' null-terminated
+ retcode = strerror_s(buf, sizeof(buf), errnum);
+ #elif defined(_GNU_SOURCE)
++#if defined(__GLIBC__)
+ return std::string(strerror_r(errnum, buf, sizeof(buf)));
++#else
++ int retcode;
++ // Musl libc support
++ retcode = strerror_r(errnum, buf, sizeof(buf));
++#endif
+ #elif (_POSIX_C_SOURCE >= 200112L) || defined(SG_MAC) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ int retcode;
+ // POSIX.1-2001 and POSIX.1-2008
+@@ -1178,7 +1184,7 @@
+ #error "Could not find a thread-safe alternative to strerror()."
+ #endif
+
+-#if !defined(_GNU_SOURCE)
++#if !defined(_GNU_SOURCE) || !defined(__GLIBC__)
+ if (retcode) {
+ std::string msg = "unable to get error message for a given error number";
+ // C++11 would make this shorter with std::to_string()
diff --git a/testing/simgear/musl-u_types.patch b/testing/simgear/musl-u_types.patch
new file mode 100644
index 00000000000..65f38492008
--- /dev/null
+++ b/testing/simgear/musl-u_types.patch
@@ -0,0 +1,94 @@
+--- a/simgear/package/md5.h 2016-05-17 10:36:36.000000000 +0200
++++ b/simgear/package/md5.h 2016-06-18 14:38:16.524925475 +0200
+@@ -19,27 +19,23 @@
+ extern "C" {
+ #endif
+
+-#if defined(_MSC_VER)
+-typedef unsigned char u_int8_t;
+-typedef unsigned int u_int32_t;
+-typedef unsigned __int64 u_int64_t;
+-#endif
++#include <stdint.h>
+
+ #define MD5_BLOCK_LENGTH 64
+ #define MD5_DIGEST_LENGTH 16
+ #define MD5_DIGEST_STRING_LENGTH (MD5_DIGEST_LENGTH * 2 + 1)
+
+ typedef struct MD5Context {
+- u_int32_t state[4]; /* state */
+- u_int64_t count; /* number of bits, mod 2^64 */
+- u_int8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
++ uint32_t state[4]; /* state */
++ uint64_t count; /* number of bits, mod 2^64 */
++ uint8_t buffer[MD5_BLOCK_LENGTH]; /* input buffer */
+ } SG_MD5_CTX;
+
+ void SG_MD5Init(SG_MD5_CTX *);
+-void SG_MD5Update(SG_MD5_CTX *, const u_int8_t *, size_t);
++void SG_MD5Update(SG_MD5_CTX *, const uint8_t *, size_t);
+ void SG_MD5Pad(SG_MD5_CTX *);
+-void SG_MD5Final(u_int8_t [MD5_DIGEST_LENGTH], SG_MD5_CTX *);
+-void SG_MD5Transform(u_int32_t [4], const u_int8_t [MD5_BLOCK_LENGTH]);
++void SG_MD5Final(uint8_t [MD5_DIGEST_LENGTH], SG_MD5_CTX *);
++void SG_MD5Transform(uint32_t [4], const uint8_t [MD5_BLOCK_LENGTH]);
+
+ #ifdef __cplusplus
+ } // of extern C
+--- a/simgear/package/md5.c 2016-05-17 10:36:36.000000000 +0200
++++ b/simgear/package/md5.c 2016-06-18 14:38:25.150680387 +0200
+@@ -39,7 +39,7 @@
+ (cp)[1] = (value) >> 8; \
+ (cp)[0] = (value); } while (0)
+
+-static u_int8_t PADDING[MD5_BLOCK_LENGTH] = {
++static uint8_t PADDING[MD5_BLOCK_LENGTH] = {
+ 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+@@ -73,7 +73,7 @@
+ need = MD5_BLOCK_LENGTH - have;
+
+ /* Update bitcount */
+- ctx->count += (u_int64_t)len << 3;
++ ctx->count += (uint64_t)len << 3;
+
+ if (len >= need) {
+ if (have != 0) {
+@@ -104,7 +104,7 @@
+ void
+ SG_MD5Pad(SG_MD5_CTX *ctx)
+ {
+- u_int8_t count[8];
++ uint8_t count[8];
+ size_t padlen;
+
+ /* Convert count to 8 bytes in little endian order. */
+@@ -154,20 +154,20 @@
+ * the data and converts bytes into longwords for this routine.
+ */
+ void
+-SG_MD5Transform(u_int32_t state[4], const u_int8_t block[MD5_BLOCK_LENGTH])
++SG_MD5Transform(uint32_t state[4], const uint8_t block[MD5_BLOCK_LENGTH])
+ {
+- u_int32_t a, b, c, d, in[MD5_BLOCK_LENGTH / 4];
++ uint32_t a, b, c, d, in[MD5_BLOCK_LENGTH / 4];
+
+ #if ((defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) || \
+ defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM) )
+ memcpy(in, block, sizeof(in));
+ #else
+ for (a = 0; a < MD5_BLOCK_LENGTH / 4; a++) {
+- in[a] = (u_int32_t)(
+- (u_int32_t)(block[a * 4 + 0]) |
+- (u_int32_t)(block[a * 4 + 1]) << 8 |
+- (u_int32_t)(block[a * 4 + 2]) << 16 |
+- (u_int32_t)(block[a * 4 + 3]) << 24);
++ in[a] = (uint32_t)(
++ (uint32_t)(block[a * 4 + 0]) |
++ (uint32_t)(block[a * 4 + 1]) << 8 |
++ (uint32_t)(block[a * 4 + 2]) << 16 |
++ (uint32_t)(block[a * 4 + 3]) << 24);
+ }
+ #endif
+
diff --git a/testing/simh/APKBUILD b/testing/simh/APKBUILD
index deac42086d6..782ce886ffc 100644
--- a/testing/simh/APKBUILD
+++ b/testing/simh/APKBUILD
@@ -1,21 +1,23 @@
# Contributor: Sascha Paunovic <azarus@posteo.net>
# Maintainer: Sascha Paunovic <azarus@posteo.net>
pkgname=simh
-pkgver=3.9.0
-_pkgver=39-0
-pkgrel=0
+pkgver=3.11.1
+_pkgver=3.11-1
+pkgrel=1
pkgdesc="simulator for historical computers"
url="http://simh.trailing-edge.com"
-arch="" # fails to build
-license="BSD"
+arch="all"
+license="BSD-3-Clause"
options="!check"
makedepends="libpcap-dev"
-source="http://simh.trailing-edge.com/sources/simhv$_pkgver.zip"
-builddir="$srcdir/"
+source="simh-$pkgver.tar.gz::https://github.com/simh/simh/archive/v$_pkgver.tar.gz
+ gcc-10.patch"
+builddir="$srcdir"/simh-$_pkgver
+
+export CFLAGS="$CFLAGS -fcommon"
build() {
- cd "$builddir"
- mkdir -p BIN
+ mkdir BIN
find VAX -type f -exec sed -i 's/SIM_INLINE//' {} +
make USEN_NETWORK=1 NETWORK_OPT="-DUSE_NETWORK -isystem /usr/include -lpcap"
}
@@ -26,9 +28,12 @@ package() {
install -D $i "$pkgdir"/usr/bin/simh-$i
done
- cd "$srcdir"/VAX
+ cd "$builddir"/VAX
mkdir -p "$pkgdir"/usr/lib/simh
cp *.bin "$pkgdir"/usr/lib/simh
}
-sha512sums="5e8cbf92e980b7cb40d68ff60a266f70c0bef0eecdc169a8077ae72a6a71fe12a7be5c62bd033ca36727e2cb8f266a5a6f8a5ed6dd509afbf0a9d7b618f1a4f6 simhv39-0.zip"
+sha512sums="
+7c2f81a64d3016b9a44409fc336c804c0da836317745d47594cc48c64cb57dc8f22084d9086e3f86868ec485ee56ac63301f350cee6d275e705b7c5fc82875db simh-3.11.1.tar.gz
+9b6ac5106528e9cd403cfc0a9b0d22192bed5ed1172bb34447274c69b3c2408e47f08125fc845b82091f55e21adf67c72db531d9032f413aaad06b3f55655ca4 gcc-10.patch
+"
diff --git a/testing/simh/gcc-10.patch b/testing/simh/gcc-10.patch
new file mode 100644
index 00000000000..f3147fbea80
--- /dev/null
+++ b/testing/simh/gcc-10.patch
@@ -0,0 +1,24 @@
+diff -upr simh-3.11-1.orig/PDP11/pdp11_defs.h simh-3.11-1/PDP11/pdp11_defs.h
+--- simh-3.11-1.orig/PDP11/pdp11_defs.h 2021-07-24 09:40:30.894068560 +0200
++++ simh-3.11-1/PDP11/pdp11_defs.h 2021-07-24 09:41:15.954102912 +0200
+@@ -900,13 +900,13 @@ void cpu_set_boot (int32 pc);
+ #define WrMemW(pa,d) uc15_WrMemW (pa, d)
+ #define WrMemB(pa, d) uc15_WrMemB (pa, d)
+
+-uint32 uc15_memsize;
+-int32 uc15_RdMemW (int32 pa);
+-int32 uc15_RdMemB (int32 pa);
+-void uc15_WrMemW (int32 pa, int32 d);
+-void uc15_WrMemB (int32 pa, int32 d);
+-int32 Map_Read18 (uint32 ba, int32 bc, uint32 *buf);
+-int32 Map_Write18 (uint32 ba, int32 bc, uint32 *buf);
++extern uint32 uc15_memsize;
++extern int32 uc15_RdMemW (int32 pa);
++extern int32 uc15_RdMemB (int32 pa);
++extern void uc15_WrMemW (int32 pa, int32 d);
++extern void uc15_WrMemB (int32 pa, int32 d);
++extern int32 Map_Read18 (uint32 ba, int32 bc, uint32 *buf);
++extern int32 Map_Write18 (uint32 ba, int32 bc, uint32 *buf);
+
+ #else /* PDP-11 */
+
diff --git a/testing/simp1e-cursors/APKBUILD b/testing/simp1e-cursors/APKBUILD
new file mode 100644
index 00000000000..0561c048439
--- /dev/null
+++ b/testing/simp1e-cursors/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Daniil Nemtsev <nmsv@pm.me>
+# Maintainer: Daniil Nemtsev <nmsv@pm.me>
+pkgname=simp1e-cursors
+pkgver=0_git20211003
+pkgrel=0
+pkgdesc="An aesthetic cursor theme for your Linux desktop"
+url="https://gitlab.com/zoli111/simp1e"
+# s390x, riscv64: missing librsvg makedepend
+arch="noarch !s390x !riscv64"
+license="GPL-3.0"
+makedepends="python3 py3-pillow librsvg xcursorgen"
+options="!check" # no tests
+_gitrev=6a9e969b0239a58fc96af787c4986c273eb6d0eb
+_buildscript=41878bf3d8efb3161d63bb2435b3aa2bdb7f7888
+source="$pkgname-$_gitrev.tar.gz::https://gitlab.com/zoli111/simp1e/-/archive/$_gitrev/simp1e-$_gitrev.tar.gz
+ buildscript-$_buildscript.tar.gz::https://github.com/mxre/cursor/archive/$_buildscript.tar.gz
+ py3.patch
+ "
+builddir="$srcdir"/simp1e-$_gitrev
+subpackages="$pkgname-dark $pkgname-breeze $pkgname-snow $pkgname-solarized"
+
+prepare() {
+ default_prepare
+ mv "$srcdir"/cursor-$_buildscript/* "$builddir"/builder_script
+}
+
+build() {
+ ./build.sh
+}
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/icons
+ mv built_themes/* "$pkgdir"/usr/share/icons/
+ mv "$pkgdir"/usr/share/icons/Simp1e "$pkgdir"/usr/share/icons/"$pkgname"
+}
+
+dark() {
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Simp1e-dark "$subpkgdir"/usr/share/icons/"$pkgname"-dark
+}
+
+breeze() {
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Simp1e-breeze "$subpkgdir"/usr/share/icons/"$pkgname"-breeze
+}
+
+snow() {
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Simp1e-breeze-snow "$subpkgdir"/usr/share/icons/"$pkgname"-snow
+}
+
+solarized() {
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Simp1e-solarized "$subpkgdir"/usr/share/icons/"$pkgname"-solarized
+}
+
+sha512sums="
+c653cd9f71c227470fc9626d8747d167dbac8ae1a83c136fea6eda83d4d39e0f6abcb4ec71a8e6381a1f8cacdf939a9be12976554e5e87c580e2038db5d38a31 simp1e-cursors-6a9e969b0239a58fc96af787c4986c273eb6d0eb.tar.gz
+0a2a3fdad5aea3401c3ffd26c3e8a21e6adb59bb21e7aef25296a719ee0d8cf4fe92ea7f6df4d46c59227f1c9f43abf3519a4031080792bfd8742e3e16b89033 buildscript-41878bf3d8efb3161d63bb2435b3aa2bdb7f7888.tar.gz
+07cc287c47174afc3e427a4f5daaccd4c9021743fc17904b75751b510554b553f8442f77f5d243f75206ca96c0b0f341e6ed1343cadeee6e6a2f16ce3cd2a887 py3.patch
+"
diff --git a/testing/simp1e-cursors/py3.patch b/testing/simp1e-cursors/py3.patch
new file mode 100644
index 00000000000..f30ba1a72c9
--- /dev/null
+++ b/testing/simp1e-cursors/py3.patch
@@ -0,0 +1,11 @@
+--- a/build.sh
++++ b/build.sh
+@@ -33,7 +33,7 @@
+ echo '##########'
+ echo ""
+ cd $BASEDIR
+- python $BASEDIR/builder_script/make.py $BASEDIR/svgs/$F -n $THEMENAME -o $BASEDIR/built_themes/$THEMENAME --fps 60 -f
++ python3 $BASEDIR/builder_script/make.py $BASEDIR/svgs/$F -n $THEMENAME -o $BASEDIR/built_themes/$THEMENAME --fps 60 -f
+
+ # Create archives if enabled and add optional install instructions
+ if [ "$ARCHIVES" = "1" ];
diff --git a/testing/simpleble/APKBUILD b/testing/simpleble/APKBUILD
new file mode 100644
index 00000000000..af62e3857e7
--- /dev/null
+++ b/testing/simpleble/APKBUILD
@@ -0,0 +1,66 @@
+# Maintainer:
+pkgname=simpleble
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="Cross-platform library for bluetooth low-energy"
+url="https://github.com/OpenBluetoothToolbox/SimpleBLE"
+arch="all"
+license="MIT"
+makedepends="
+ cmake
+ dbus-dev
+ fmt-dev
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ libsimpleble:lib
+ libsimpleble-c:lib_c
+ libsimplebluez:lib_bluez
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/OpenBluetoothToolbox/SimpleBLE/archive/refs/tags/v$pkgver.tar.gz
+ bluez.patch
+ fmt.patch
+ "
+builddir="$srcdir/SimpleBLE-$pkgver"
+options="!check" # tests require plain
+
+build() {
+ cmake -B build-ble -G Ninja -S simpleble \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DLIBFMT_VENDORIZE=OFF
+ cmake --build build-ble
+ cmake -B build-bluez -G Ninja -S simplebluez \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DLIBFMT_VENDORIZE=OFF
+ cmake --build build-bluez
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build-ble
+ DESTDIR="$pkgdir" cmake --install build-bluez
+}
+
+lib() {
+ amove usr/lib/libsimpleble.so.*
+}
+
+lib_c() {
+ amove usr/lib/libsimpleble-c.so.*
+}
+
+lib_bluez() {
+ amove usr/lib/libsimplebluez.so.*
+}
+
+sha512sums="
+bf9b166340df6620fcafe7e453795bc314769aed49c5284b425ea90b064a9d242432625f544ea6f79441e36c1b9ed5909dfc80d1e69c102ce27589cc09f02417 simpleble-0.6.1.tar.gz
+3bf34d51bb267077af537eaf6fec54c9049c0a3f85e4724afad76c7ba3d0ed3be73dcc96bc7d69ddcdfb40a823bd236970880e0c4439b9e70283af53e8cbc085 bluez.patch
+b1520b22a7fa98e552b67b87787cbceaf0f04122b36001b0566159206b724f7ff947869f4cc06e4e4831e6286c468bf77eb5c0eefae99818d58baf87b6c944f7 fmt.patch
+"
diff --git a/testing/simpleble/bluez.patch b/testing/simpleble/bluez.patch
new file mode 100644
index 00000000000..c72c2417393
--- /dev/null
+++ b/testing/simpleble/bluez.patch
@@ -0,0 +1,14 @@
+the bluez lib doesn't expose any symbols for some reason, so manually do it for the used one
+diff --git a/simplebluez/src/Device.cpp b/simplebluez/src/Device.cpp
+index e03957c..c62817b 100644
+--- a/simplebluez/src/Device.cpp
++++ b/simplebluez/src/Device.cpp
+@@ -53,7 +53,7 @@ std::shared_ptr<Characteristic> Device::get_characteristic(const std::string& se
+ return service->get_characteristic(characteristic_uuid);
+ }
+
+-void Device::pair() { device1()->Pair(); }
++__attribute__ ((visibility ("default"))) void Device::pair() { device1()->Pair(); }
+
+ void Device::cancel_pairing() { device1()->CancelPairing(); }
+
diff --git a/testing/simpleble/fmt.patch b/testing/simpleble/fmt.patch
new file mode 100644
index 00000000000..cc4d2cb20b1
--- /dev/null
+++ b/testing/simpleble/fmt.patch
@@ -0,0 +1,24 @@
+diff --git a/simpleble/CMakeLists.txt b/simpleble/CMakeLists.txt
+index d983902..5bd0a44 100644
+--- a/simpleble/CMakeLists.txt
++++ b/simpleble/CMakeLists.txt
+@@ -21,7 +21,6 @@ option(SIMPLEBLE_PLAIN "Use plain version of SimpleBLE" OFF)
+ if(NOT TARGET fmt::fmt-header-only)
+ option(LIBFMT_VENDORIZE "Enable vendorized libfmt" ON)
+ find_package(fmt REQUIRED)
+- set_target_properties(fmt PROPERTIES EXCLUDE_FROM_ALL TRUE)
+ endif()
+
+ if(SIMPLEBLE_TEST)
+diff --git a/simplebluez/CMakeLists.txt b/simplebluez/CMakeLists.txt
+index e95d1eb..896ddb9 100644
+--- a/simplebluez/CMakeLists.txt
++++ b/simplebluez/CMakeLists.txt
+@@ -16,7 +16,6 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/epilogue.cmake)
+ option(LIBFMT_VENDORIZE "Enable vendorized libfmt" ON)
+
+ find_package(fmt REQUIRED)
+-set_target_properties(fmt PROPERTIES EXCLUDE_FROM_ALL TRUE)
+
+ find_package(DBus1 REQUIRED)
+
diff --git a/testing/simpleiot/APKBUILD b/testing/simpleiot/APKBUILD
new file mode 100644
index 00000000000..f71864f1716
--- /dev/null
+++ b/testing/simpleiot/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Khem Raj <raj.khem@gmail.com>
+# Maintainer: Khem Raj <raj.khem@gmail.com>
+pkgname=simpleiot
+pkgver=0.14.3
+pkgrel=2
+pkgdesc="Simple IoT cloud/edge application/framework"
+url="https://github.com/simpleiot/simpleiot"
+arch="x86_64"
+license="Apache-2.0"
+makedepends="go npm"
+source="$pkgname-$pkgver.tar.gz::https://github.com/simpleiot/simpleiot/archive/refs/tags/v$pkgver.tar.gz
+ dont-run-golangci.patch
+ "
+options="net" # for downloading Go modules
+
+build() {
+ . "$srcdir"/$pkgname-$pkgver/envsetup.sh
+ siot_setup
+ siot_build
+}
+
+check() {
+ sed -i -e "s/-race//" "$srcdir"/$pkgname-$pkgver/envsetup.sh
+ . "$srcdir"/$pkgname-$pkgver/envsetup.sh
+ siot_test
+}
+
+package() {
+ install -Dm755 siot -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+50cd3895fd602594b6694cb8c285c0b1b634ed4d8be8d03c20ac0d62610df236400b78e744cf59a1c8550cbb2c1754eac1c8df0bb44c84a169d40f325f59be68 simpleiot-0.14.3.tar.gz
+4cedea658623f90e565e1a5a8d4f3b979ec5cf618bd0b4421df4988d319ad4e9335231b842de09f574b31dddab69688d06f4f571a40ce990593389db8a33d8aa dont-run-golangci.patch
+"
diff --git a/testing/simpleiot/dont-run-golangci.patch b/testing/simpleiot/dont-run-golangci.patch
new file mode 100644
index 00000000000..b284782e262
--- /dev/null
+++ b/testing/simpleiot/dont-run-golangci.patch
@@ -0,0 +1,10 @@
+--- a/envsetup.sh
++++ b/envsetup.sh
+@@ -178,7 +178,6 @@
+ siot_build_frontend || return 1
+ siot_test_frontend || return 1
+ go test -p=1 -race "$@" ./... || return 1
+- golangci-lint run || return 1
+ return 0
+ }
+
diff --git a/testing/simplescreenrecorder/APKBUILD b/testing/simplescreenrecorder/APKBUILD
deleted file mode 100644
index b2e3360622d..00000000000
--- a/testing/simplescreenrecorder/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
-# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
-pkgname=simplescreenrecorder
-pkgver=0.3.11
-_commit="84cdc56530aa29f5ec37c40aaac8f2230c4c1658"
-pkgrel=0
-pkgdesc="SimpleScreenRecorder a screen recorder for Linux "
-url="http://www.maartenbaert.be/simplescreenrecorder/"
-arch="x86_64 x86" #disabled for the other architectures due to compiling problems
-license="GPL-3.0-only"
-makedepends="cmake make pkgconfig qt5-qtbase-dev ffmpeg-dev alsa-lib-dev pulseaudio-dev
- jack-dev mesa-dev glu-dev libx11-dev libxfixes-dev libxext-dev libxi-dev
- libxinerama-dev qt5-qttools-dev qt5-qtx11extras-dev"
-subpackages="$pkgname-doc"
-options="!check" # make check not implemented
-source="$pkgname-$_commit.tar.gz::https://github.com/MaartenBaert/ssr/archive/$_commit.tar.gz"
-builddir="$srcdir/ssr-$_commit"
-
-build() {
- cmake -B build . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DWITH_QT5=on \
- -DCMAKE_INSTALL_LIBDIR=lib
- make -C build
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-
-sha512sums="9d65b899077a3ef8fc33c34358e731a4cc684055c8c70e94917783323f678d491473c01920049edbb948a38365202254006795b74fd1ab93220d2c6cd9762241 simplescreenrecorder-84cdc56530aa29f5ec37c40aaac8f2230c4c1658.tar.gz"
diff --git a/testing/simplesnap/0001-fix-simplesnap-line-2-dotlockfile-command-not-found.patch b/testing/simplesnap/0001-fix-simplesnap-line-2-dotlockfile-command-not-found.patch
deleted file mode 100644
index 2c2954ff7e9..00000000000
--- a/testing/simplesnap/0001-fix-simplesnap-line-2-dotlockfile-command-not-found.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From f477a6895512c77eef3637581ab36ad8319a0204 Mon Sep 17 00:00:00 2001
-From: Henrik Riomar <henrik.riomar@gmail.com>
-Date: Mon, 18 Jun 2018 19:15:54 +0200
-Subject: [PATCH] fix: simplesnap: line 2??: dotlockfile: command not found
-
-Closes: #12
----
- simplesnap | 28 +++++++++-------------------
- 1 file changed, 9 insertions(+), 19 deletions(-)
-
-diff --git a/simplesnap b/simplesnap
-index 6d60885..63fc0c2 100755
---- a/simplesnap
-+++ b/simplesnap
-@@ -149,15 +149,11 @@ done
- SSHCMD="${SSHCMD:-ssh}"
- WRAPCMD="${WRAPCMD:-simplesnapwrap}"
-
--DATE="gdate"
--gdate &> /dev/null || [ $? -eq 127 ] && DATE="date"
--SED="gsed"
--gsed &> /dev/null || [ $? -eq 127 ] && SED="sed"
--GREP="ggrep"
--ggrep &> /dev/null || [ $? -eq 127 ] && GREP="grep"
--HEAD="ghead"
--ghead -h &> /dev/null || [ $? -eq 127 ] && HEAD="head"
--
-+command -v gdate > /dev/null && DATE="gdate" || DATE="date"
-+command -v gsed > /dev/null && SED="gsed" || SED="sed"
-+command -v ggrep > /dev/null && GREP="ggrep" || GREP="grep"
-+command -v ghead > /dev/null && HEAD="ghead" || HEAD="head"
-+command -v dotlockfile > /dev/null && LOCKMETHOD="dotlockfile" || LOCKMETHOD="mkdir"
-
- # Validating
- [ -n "$SSHCMD" ] || syntaxerror "Invalid SSH command: $SSHCMD"
-@@ -244,23 +240,17 @@ fi
-
- LOCKFILE="${MOUNTPOINT}/${HOST}/.lock"
-
--if dotlockfile -r 0 -l -p "${LOCKFILE}"; then
-- LOCKMETHOD="dotlockfile"
-+if [ x"$LOCKMETHOD" = x"dotlockfile" ] && ${LOCKMETHOD} -r 0 -l -p "${LOCKFILE}" ; then
- logit "Lock obtained at ${LOCKFILE} with dotlockfile"
- trap "ECODE=$?; dotlockfile -u \"${LOCKFILE}\"; exit $ECODE" EXIT INT TERM
--else
-- RETVAL="$?"
-- if [ "$RETVAL" = "127" ]; then
-- LOCKMETHOD="mkdir"
-- mkdir "${LOCKFILE}" || exiterror "Could not obtain lock at ${LOCKFILE}; if $0 is not already running, rmdir that path."
-+elif [ x"$LOCKMETHOD" = x"mkdir" ]; then
-+ ${LOCKMETHOD} "${LOCKFILE}" || exiterror "Could not obtain lock at ${LOCKFILE}; if $0 is not already running, rmdir that path."
- logit "Lock obtained at ${LOCKFILE} with mkdir"
- trap "ECODE=$?; rmdir \"${LOCKFILE}\"" EXIT INT TERM
-- else
-+else
- exiterror "Could not obtain lock at ${LOCKFILE}; $0 likely already running."
-- fi
- fi
-
--
- reap () {
- DATASET="$1"
- # We always save the most recent.
---
-2.17.1
-
diff --git a/testing/simplesnap/0002-trap-do-not-define-ECODE-at-setup.patch b/testing/simplesnap/0002-trap-do-not-define-ECODE-at-setup.patch
deleted file mode 100644
index d15735afa77..00000000000
--- a/testing/simplesnap/0002-trap-do-not-define-ECODE-at-setup.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From cfa251c80c31ea9b3a2993ec204061cdd4c06ef4 Mon Sep 17 00:00:00 2001
-From: Henrik Riomar <henrik.riomar@gmail.com>
-Date: Mon, 18 Jun 2018 19:26:30 +0200
-Subject: [PATCH] trap: do not define ECODE at setup
-
-We need to delay defining ECODE until we call the trap
-
-Before this change (set -x output):
-+ trap 'ECODE=0; dotlockfile -u "/mypool2/simplesnap/storage01/.lock"; exit ' EXIT INT TERM
-
-After:
-+ trap 'ECODE=$?; dotlockfile -u /mypool2/simplesnap/storage01/.lock; exit $ECODE' EXIT INT TERM
----
- simplesnap | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/simplesnap b/simplesnap
-index 63fc0c2..fb9c4d2 100755
---- a/simplesnap
-+++ b/simplesnap
-@@ -239,14 +239,15 @@ if [ ! -d "${MOUNTPOINT}/${HOST}" ]; then
- fi
-
- LOCKFILE="${MOUNTPOINT}/${HOST}/.lock"
-+printf -v EVAL_SAFE_LOCKFILE '%q' "$LOCKFILE"
-
- if [ x"$LOCKMETHOD" = x"dotlockfile" ] && ${LOCKMETHOD} -r 0 -l -p "${LOCKFILE}" ; then
- logit "Lock obtained at ${LOCKFILE} with dotlockfile"
-- trap "ECODE=$?; dotlockfile -u \"${LOCKFILE}\"; exit $ECODE" EXIT INT TERM
-+ trap 'ECODE=$?; dotlockfile -u '"${EVAL_SAFE_LOCKFILE}"'; exit $ECODE' EXIT INT TERM
- elif [ x"$LOCKMETHOD" = x"mkdir" ]; then
- ${LOCKMETHOD} "${LOCKFILE}" || exiterror "Could not obtain lock at ${LOCKFILE}; if $0 is not already running, rmdir that path."
- logit "Lock obtained at ${LOCKFILE} with mkdir"
-- trap "ECODE=$?; rmdir \"${LOCKFILE}\"" EXIT INT TERM
-+ trap 'ECODE=$?; rmdir '"${EVAL_SAFE_LOCKFILE}"'; exit $ECODE' EXIT INT TERM
- else
- exiterror "Could not obtain lock at ${LOCKFILE}; $0 likely already running."
- fi
---
-2.17.1
-
diff --git a/testing/simplesnap/0003-use-CHECKHOST-in-checkbackups-function.patch b/testing/simplesnap/0003-use-CHECKHOST-in-checkbackups-function.patch
deleted file mode 100644
index b1bd214c437..00000000000
--- a/testing/simplesnap/0003-use-CHECKHOST-in-checkbackups-function.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 79dd4680928fdc999527123ebd6b3363ca705e4a Mon Sep 17 00:00:00 2001
-From: Henrik Riomar <henrik.riomar@gmail.com>
-Date: Tue, 26 Jun 2018 07:57:58 +0200
-Subject: [PATCH] use CHECKHOST in checkbackups() function
-
-$CHECKHOST variable defined in checkbackups is unused, lets use it
-instead of the global $HOST
----
- simplesnap | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/simplesnap b/simplesnap
-index 63fc0c2..d9e1806 100755
---- a/simplesnap
-+++ b/simplesnap
-@@ -192,11 +192,11 @@ runzfs () {
-
- checkbackups () {
- CHECKHOST="$1"
-- DATASETS="`runzfs list -t filesystem,volume -o name -H -r \"${STORE}/${HOST}\"`"
-+ DATASETS="`runzfs list -t filesystem,volume -o name -H -r \"${STORE}/${CHECKHOST}\"`"
- CUTOFF="`$DATE -d \"${CHECKMODE}\" +%s`"
- for CHECKDS in ${DATASETS}; do
- # Don't check the top-level host dataset itself.
-- if [ "${CHECKDS}" = "${STORE}/${HOST}" ]; then
-+ if [ "${CHECKDS}" = "${STORE}/${CHECKHOST}" ]; then
- continue
- fi
-
---
-2.17.1
-
diff --git a/testing/simplesnap/APKBUILD b/testing/simplesnap/APKBUILD
deleted file mode 100644
index 0158bed6d68..00000000000
--- a/testing/simplesnap/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
-# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
-pkgname=simplesnap
-pkgver=1.0.4
-pkgrel=2
-pkgdesc="Simple and powerful network transmission of ZFS snapshots"
-url="https://github.com/jgoerzen/simplesnap"
-arch="noarch !armhf !armv7" # limited by zfs
-license="GPL-3.0-or-later"
-depends="bash coreutils liblockfile openssh-client zfs"
-subpackages="$pkgname-doc"
-options="!check" # no test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/jgoerzen/simplesnap/archive/release/$pkgver.tar.gz
- 0001-fix-simplesnap-line-2-dotlockfile-command-not-found.patch
- 0002-trap-do-not-define-ECODE-at-setup.patch
- 0003-use-CHECKHOST-in-checkbackups-function.patch
- "
-builddir="$srcdir/$pkgname-release-$pkgver"
-
-prepare() {
- default_prepare
-
- sed -i 's|sbin/zfs|usr/&|' simplesnap
- sed -i 's|sbin/zfs|usr/&|' simplesnapwrap
-}
-
-package() {
- install -m 0755 -d "$pkgdir"/usr/sbin
- install -m 0755 simplesnap "$pkgdir"/usr/sbin/
- install -m 0755 simplesnapwrap "$pkgdir"/usr/sbin/
-
- install -m 0755 -d "$pkgdir"/usr/share/man/man8
- install -m 0644 doc/simplesnap.8 "$pkgdir"/usr/share/man/man8/
-}
-
-sha512sums="818f917d65b87366af1530441f2c070a51e34efbf7790509f00aa18949dae4f8f5b1bbde4b67ca45f95df4ea816f42416c9f09aba060769d3548eb5f12551b62 simplesnap-1.0.4.tar.gz
-54273ec9630cc5e764db65361ac4a03e27dafcbbe67794053e8a94584e7e8ed10db908b0285485a80253cf93bb7daf9f5257924a1476ab235138c88abb0111b7 0001-fix-simplesnap-line-2-dotlockfile-command-not-found.patch
-618fd1ed200ae30437528a52090bf4363ba7f3641741865fb78ef67401fbde41a77fe83681d9c26a2391b7be6c25d22ba4285922911c28a1d0b7c4b093a19df7 0002-trap-do-not-define-ECODE-at-setup.patch
-49248602dbbdb22ae1ac224f716e71165320184941434e968c214e969e26a8dbbfe6058a6af56684b31b51440817ef9fe874e64fa793a32713e5d3a644def73b 0003-use-CHECKHOST-in-checkbackups-function.patch"
diff --git a/testing/sing-box/APKBUILD b/testing/sing-box/APKBUILD
new file mode 100644
index 00000000000..45d85987597
--- /dev/null
+++ b/testing/sing-box/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Anon <danilagdn.2004@gmail.com>
+# Maintainer: Anon <danilagdn.2004@gmail.com>
+pkgname=sing-box
+pkgver=1.8.4
+pkgrel=3
+pkgdesc="The universal proxy platform"
+url="https://sing-box.sagernet.org/"
+arch="all"
+license="GPL-3.0-or-later with name use or association addition"
+makedepends="go"
+subpackages="$pkgname-openrc $pkgname-bash-completion $pkgname-fish-completion $pkgname-zsh-completion"
+options="!check"
+source="$pkgname-$pkgver.tar.gz::https://github.com/SagerNet/sing-box/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ "
+_tags="with_gvisor,with_quic,with_wireguard,with_utls,with_reality_server,with_clash_api,with_ech"
+
+build() {
+ export CGO_CPPFLAGS="$CPPFLAGS"
+ export CGO_CFLAGS="$CFLAGS"
+ export CGO_CXXFLAGS="$CXXFLAGS"
+ export CGO_LDFLAGS="$LDFLAGS"
+
+ go build -v -tags "$_tags" \
+ -ldflags "-X \"github.com/sagernet/sing-box/constant.Version=$pkgver\" -s -w
+ -buildid= -linkmode=external" ./cmd/sing-box
+
+ install -d completions
+ go run ./cmd/sing-box completion bash > completions/bash
+ go run ./cmd/sing-box completion fish > completions/fish
+ go run ./cmd/sing-box completion zsh > completions/zsh
+}
+
+
+package() {
+ install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+ install -Dm755 "$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm644 "release/config/config.json" -t "$pkgdir/etc/$pkgname"
+ install -Dm755 "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
+
+ install -Dm644 completions/bash "$pkgdir/usr/share/bash-completion/completions/$pkgname.bash"
+ install -Dm644 completions/fish "$pkgdir/usr/share/fish/vendor_completions.d/$pkgname.fish"
+ install -Dm644 completions/zsh "$pkgdir/usr/share/zsh/site-functions/_$pkgname"
+
+}
+
+sha512sums="
+fdb72b521181bd3cafd50c78c87ecf0794f63687615ea29d2dab2482fd7ec227d6fd44d91ec7e0ac530bf5f3040de32bd0ac8e39c83aa55daec4cfa01f9bc64f sing-box-1.8.4.tar.gz
+b90e16319d2d2827886219e8f420954060c6e003a88f523595da5f04fe0530f95c3fae89f60dec452a87804f479164dd29b57f1329b928cc3d641fd7ef174284 sing-box.initd
+"
diff --git a/testing/sing-box/sing-box.initd b/testing/sing-box/sing-box.initd
new file mode 100644
index 00000000000..745e059520c
--- /dev/null
+++ b/testing/sing-box/sing-box.initd
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+
+name=$RC_SVCNAME
+description="sing-box service"
+supervisor="supervise-daemon"
+command="/usr/bin/sing-box"
+command_args="-D /var/lib/sing-box -C /etc/sing-box run"
+
+depend() {
+ after net dns
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME"
+ /bin/kill -HUP $MAINPID
+ eend $?
+}
diff --git a/testing/sing-geoip/APKBUILD b/testing/sing-geoip/APKBUILD
new file mode 100644
index 00000000000..3da2b8fe918
--- /dev/null
+++ b/testing/sing-geoip/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Anon <danilagdn.2004@gmail.com>
+# Maintainer: Anon <danilagdn.2004@gmail.com>
+pkgname=sing-geoip
+pkgver=20231212
+pkgrel=0
+pkgdesc="sing-geoip database"
+_repo="SagerNet/$pkgname"
+url="https://github.com/$_repo"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="$pkgver.geoip-cn.db::$url/releases/download/$pkgver/geoip-cn.db
+ $pkgver.geoip.db::$url/releases/download/$pkgver/geoip.db
+ $pkgver.LICENSE::https://raw.githubusercontent.com/$_repo/$pkgver/LICENSE"
+options="!check"
+
+
+package() {
+ install -Dm644 "$srcdir/$pkgver.geoip-cn.db" "$pkgdir/usr/share/$pkgname/geoip-cn.db"
+ install -Dm644 "$srcdir/$pkgver.geoip.db" "$pkgdir/usr/share/$pkgname/geoip.db"
+ install -Dm644 "$srcdir/$pkgver.LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+sha512sums="
+aad59939cfc58f9a5d2970beab7fc31dec83bb9b9c2de692f502d5f0fb5ed2085413e0d4b2bba9d694a6004d31b319054831cf439e358959ecd8d20e8df920c4 20231212.geoip-cn.db
+713101c779f6678f7ac6731303a917489bb642d83b7d1138bb9467743f2619089fd31e2426c022af31d2e6d9d4963bf9cc38c69a269bb24684ffc467bd0dba91 20231212.geoip.db
+5cab2697882973e38835376b3e5f45f5720da2a5d408c442ab8c03b97b2cb69387fe5dd7f00e8d3e7dbc9e34797c120c0444b9abb60aba1728e6661970a12418 20231212.LICENSE
+"
diff --git a/testing/sing-geosite/APKBUILD b/testing/sing-geosite/APKBUILD
new file mode 100644
index 00000000000..a3d32f9e86e
--- /dev/null
+++ b/testing/sing-geosite/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Anon <danilagdn.2004@gmail.com>
+# Maintainer: Anon <danilagdn.2004@gmail.com>
+pkgname=sing-geosite
+pkgver=20231212122459
+pkgrel=0
+pkgdesc="sing-geosite database"
+_repo="SagerNet/$pkgname"
+url="https://github.com/$_repo"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="$pkgver.geosite.db::$url/releases/download/$pkgver/geosite.db
+ $pkgver.LICENSE::https://raw.githubusercontent.com/$_repo/$pkgver/LICENSE"
+options="!check"
+
+
+package() {
+ install -Dm644 "$srcdir/$pkgver.geosite.db" "$pkgdir/usr/share/$pkgname/geosite.db"
+ install -Dm644 "$srcdir/$pkgver.LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+sha512sums="
+cef0320202a37b1ba859554f9b06b255a2bd78cbaa58ec29d69d3767bed7205ad838550814772c20fc52927ab5b55b9e00f9f2e29e8a7b76f5ae1d845f7801b7 20231212122459.geosite.db
+5cab2697882973e38835376b3e5f45f5720da2a5d408c442ab8c03b97b2cb69387fe5dd7f00e8d3e7dbc9e34797c120c0444b9abb60aba1728e6661970a12418 20231212122459.LICENSE
+"
diff --git a/testing/singular/APKBUILD b/testing/singular/APKBUILD
new file mode 100644
index 00000000000..f30018f17d8
--- /dev/null
+++ b/testing/singular/APKBUILD
@@ -0,0 +1,73 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=singular
+pkgver=4.3.2
+pkgrel=2
+pkgdesc="Computer algebra system for polynomial computations"
+url="https://www.singular.uni-kl.de/"
+# s390x: blocked by flint-dev
+arch="all !s390x"
+license="GPL-2.0-only OR GPL-3.0-only"
+depends="python3"
+makedepends="
+ cddlib-dev
+ gmp-dev
+ flint-dev
+ perl
+ "
+source="https://www.singular.uni-kl.de/ftp/pub/Math/Singular/SOURCES/${pkgver//./-}/singular-${pkgver}.tar.gz"
+subpackages="
+ $pkgname-static
+ $pkgname-dev:_dev
+ $pkgname-emacs:_emacs:noarch
+ $pkgname-doc
+ "
+
+build() {
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3}" # gotta go fast
+
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --enable-bigintm-module \
+ --enable-Order-module \
+ --enable-python-module \
+ --enable-gfanlib-module \
+ --enable-polymake-module
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ # Perhaps it is better to get rid of 36mb of HTML and images.
+ rm -rf "$pkgdir"/usr/share/doc
+}
+
+_dev() {
+ pkgdesc="$pkgdesc (development files)"
+ amove usr/bin/libpolys-config
+ amove usr/bin/libsingular-config
+ amove usr/include
+ amove usr/lib/pkgconfig
+ amove usr/lib/libSingular.so
+ amove usr/lib/libfactory.so
+ amove usr/lib/libomalloc.so
+ amove usr/lib/libpolys.so
+ amove usr/lib/libsingular_resources.so
+}
+
+_emacs() {
+ pkgdesc="Emacs completions for singular"
+ amove usr/share/singular/emacs
+}
+
+sha512sums="
+14df5d9c6e983543dc67b1b2237644a5f70d0eeb128f8414732fd8b44d72b038a365cbdd9ec52983999690d4dc8817b02c7ed719c8b6a0851ba8b341c12a182a singular-4.3.2.tar.gz
+"
diff --git a/testing/singularity/APKBUILD b/testing/singularity/APKBUILD
deleted file mode 100644
index 10dddf4b451..00000000000
--- a/testing/singularity/APKBUILD
+++ /dev/null
@@ -1,73 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=singularity
-pkgver=3.5.3
-pkgrel=0
-pkgdesc="Application containers focused on reproducibility for scientific computing and HPC world."
-url="https://www.sylabs.io/singularity/"
-arch="all !mips !mips64" # fails to build on mips
-license="BSD-3-Clause BSD-3-Clause-LBNL"
-options="chmod-clean suid !check" # no test suite from upstream
-depends="squashfs-tools"
-makedepends="
- go
- linux-headers
- binutils-gold
- openssl-dev
- libuuid
- util-linux-dev
- libseccomp-dev
- cryptsetup
- "
-subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sylabs/singularity/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/sylabs/$pkgname"
-
-# secfixes:
-# 3.5.2-r0:
-# - CVE-2019-19724
-
-prepare() {
- export GOPATH="$srcdir"
-
- mkdir -p "$(dirname $builddir)"
- mv "$srcdir"/$pkgname-$pkgver "$builddir"/
-
- echo "$pkgver" > "$builddir"/VERSION
- default_prepare
-}
-
-build() {
- export GOPATH="$srcdir"
- export GOBIN="$GOPATH/bin"
-
- ./mconfig \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/infodir \
- --localstatedir=/var
-
- make -C builddir
-}
-
-package() {
- make -C builddir DESTDIR="$pkgdir" install
-
- install -m644 -D -t "$pkgdir/usr/share/doc/$pkgname" README.md
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completion for $pkgname"
-
-
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
-
- mv "$pkgdir"/etc/bash_completion.d/singularity \
- "$subpkgdir"/usr/share/bash-completion/completions/singularity
-}
-
-sha512sums="658f17960730f80bb6d6a2cdfebd565cbe3c5f263d9b8d7a26e84a7a22d9b6970322acb97e851b616a3ef53b88019d54b4677f56f4c29e8e4e484e6e72e170c9 singularity-3.5.3.tar.gz"
diff --git a/testing/sipexer/APKBUILD b/testing/sipexer/APKBUILD
new file mode 100644
index 00000000000..67eebc0a92a
--- /dev/null
+++ b/testing/sipexer/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=sipexer
+pkgver=1.1.0
+pkgrel=5
+pkgdesc="Modern and flexible SIP (RFC3261) command line tool."
+url="https://github.com/miconda/sipexer"
+arch="all"
+license="GPL-3.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/miconda/sipexer/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o bin/ ./...
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -m755 -D bin/sipexer "$pkgdir"/usr/bin/sipexer
+}
+
+cleanup_srcdir() {
+ go clean -modcache
+ default_cleanup_srcdir
+}
+
+sha512sums="
+0244b2fef077b32dcc5c0c7271d950b737295d66e505ee6396851697466d6905892d250be3afe433b880fb2a9361b9243d99498684484c387bf6789e3e86035e sipexer-1.1.0.tar.gz
+"
diff --git a/testing/sipgrep/APKBUILD b/testing/sipgrep/APKBUILD
index 86997171da7..75d2dd99056 100644
--- a/testing/sipgrep/APKBUILD
+++ b/testing/sipgrep/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname="sipgrep"
pkgver="2.1.0"
-pkgrel=0
+pkgrel=1
pkgdesc="Display and Troubleshoot SIP signaling over IP networks in console"
url="https://www.sipcapture.org/"
arch="all"
diff --git a/testing/siril/APKBUILD b/testing/siril/APKBUILD
new file mode 100644
index 00000000000..8ddcdcaa9bf
--- /dev/null
+++ b/testing/siril/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: duckl1ng <bogdan@sanocki.info>
+pkgname=siril
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="Siril is an astronomical image processing tool"
+url="https://siril.org"
+# s390x, riscv64, ppc64le: no opencv
+arch="all !s390x !riscv64 !ppc64le"
+license="GPL-3.0-or-later"
+makedepends="
+ cfitsio-dev
+ cmake
+ curl-dev
+ exiv2-dev
+ fftw-dev
+ gsl-dev
+ gtk+3.0-dev
+ json-glib-dev
+ libconfig-dev
+ ffms2-dev
+ libheif-dev
+ libraw-dev
+ libunwind-dev
+ meson
+ opencv-dev
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://free-astro.org/download/siril-$pkgver.tar.bz2
+ lfs64.patch
+ "
+
+build() {
+ abuild-meson . output -Denable-libcurl=yes
+ meson compile -C output
+}
+
+check() {
+ output/src/siril --version
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ rm "$pkgdir"/usr/lib/librtprocess.a
+}
+
+sha512sums="
+5a23c56f83dc971d86562aa216174abbf690c902093e072f14817d9fff3976cbbbfe4b8848bf8d57882adadcededa7799d47e483b240c44b6b1a6d635bb8452c siril-1.2.1.tar.bz2
+66a0aa9893f0f838aa9d1d23a4af54ffbc0c42b11bcc741231a33a0a1d798d9025639e39c2ce4fb62f2b14534641280222711e1de2973b30a547590fdbb18cb3 lfs64.patch
+"
diff --git a/testing/siril/lfs64.patch b/testing/siril/lfs64.patch
new file mode 100644
index 00000000000..c7249d1c57a
--- /dev/null
+++ b/testing/siril/lfs64.patch
@@ -0,0 +1,41 @@
+upstream: https://gitlab.com/free-astro/siril/-/issues/1241
+
+diff --git a/src/io/avi_pipp/pipp_utf8.h b/src/io/avi_pipp/pipp_utf8.h
+index 33fafc6..f01467f 100644
+--- a/src/io/avi_pipp/pipp_utf8.h
++++ b/src/io/avi_pipp/pipp_utf8.h
+@@ -31,27 +31,15 @@
+ #endif
+
+ // 64-bit fseek for various platforms
+-#ifdef __linux__
+-#define fseek64 fseeko64 // Linux
+-#define ftell64 ftello64 // Linux
+-#elif defined (OS_OSX)
+-#define fseek64 fseeko // OS X
+-#define ftell64 ftello // OS X
+-#elif defined(BSD)
+-#define fseek64 fseeko // DragonFly BSD, FreeBSD, OpenBSD, NetBSD
+-#define ftell64 ftello // DragonFly BSD, FreeBSD, OpenBSD, NetBSD
+-#elif defined (__FreeBSD_kernel__) && defined (__GLIBC__)
+-#define fseek64 fseeko64 // KFreeBSD
+-#define ftell64 ftello64 // KFreeBSD
+-#elif defined (__gnu_hurd__)
+-#define fseek64 fseeko64 // GNU/Hurd
+-#define ftell64 ftello64 // GNU/Hurd
+-#elif defined(__CYGWIN__)
+-#define fseek64 fseeko // CYGWIN
+-#define ftell64 ftello // CYGWIN
+-#else
++#if defined(__GLIBC__) || defined(__gnu_hurd__)
++#define fseek64 fseeko64 // GNU
++#define ftell64 ftello64 // GNU
++#elif defined(_WIN32)
+ #define fseek64 _fseeki64 // Windows
+ #define ftell64 _ftelli64 // Windows
++#else // POSIX
++#define fseek64 fseeko // OS X, DragonFly BSD, FreeBSD, OpenBSD, NetBSD, musl
++#define ftell64 ftello // OS X, DragonFly BSD, FreeBSD, OpenBSD, NetBSD, musl
+ #endif
+
+ #endif // PIPP_UTF8_H
diff --git a/testing/sish/APKBUILD b/testing/sish/APKBUILD
new file mode 100644
index 00000000000..0bf3a2b369a
--- /dev/null
+++ b/testing/sish/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=sish
+pkgver=2.14.0
+pkgrel=1
+pkgdesc="HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH"
+url="https://github.com/antoniomika/sish"
+# s390x, riscv64: doesn't compile
+arch="all !s390x !riscv64"
+license="MIT"
+makedepends="go"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="https://github.com/antoniomika/sish/archive/refs/tags/v$pkgver/sish-$pkgver.tar.gz
+ sish.initd
+ sish.confd
+ "
+options="!check" # no tests provided by upstream
+
+build() {
+ go build -o sish
+}
+
+package() {
+ install -Dm755 sish "$pkgdir"/usr/bin/sish
+ install -Dm644 config.example.yml "$pkgdir"/etc/sish/config.yml
+
+ install -Dm755 "$srcdir"/sish.initd "$pkgdir"/etc/init.d/sish
+ install -Dm644 "$srcdir"/sish.confd "$pkgdir"/etc/conf.d/sish
+}
+
+sha512sums="
+ec477cc270c1077df4cbba5ab0b32ada56aaec48c0044b611dda6b3af1c641b6189072d4b6c20d21f12a5dc331b514a8d85d8ab6866282d76ebc1a39982e42b4 sish-2.14.0.tar.gz
+8d810e48e3106babdce734e4f83249c62de5b562c7b1c50a33914c426b5406f958d3b5868f68af1f1f766142b5cd1ef60f19457f059ff6f1985cae6001d79398 sish.initd
+4b1e752dcd49ce7d8f145ad0b8bc3ea5a86dc322dc61048364a7c36386dfb21ea8b243d41bebc3db96c9c490f6b6e7e006536fe4ebfd27078f5b32181b8dd5d4 sish.confd
+"
diff --git a/testing/sish/sish.confd b/testing/sish/sish.confd
new file mode 100644
index 00000000000..176d450be1f
--- /dev/null
+++ b/testing/sish/sish.confd
@@ -0,0 +1,4 @@
+# Configuration file for sish
+
+supervisor=supervise-daemon
+#config_path="/etc/sish/config.yml"
diff --git a/testing/sish/sish.initd b/testing/sish/sish.initd
new file mode 100644
index 00000000000..5c4355ac04b
--- /dev/null
+++ b/testing/sish/sish.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+
+command="/usr/bin/sish"
+command_args="--config ${config_path:-/etc/sish/config.yml}"
+command_user="sish:sish"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+output_log="/var/log/sish.log"
+error_log="/var/log/sish.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -d -m 0755 -o "$command_user" /var/lib/sish
+ checkpath -f -m 0644 -o "$command_user" "$output_log"
+}
diff --git a/testing/sish/sish.pre-install b/testing/sish/sish.pre-install
new file mode 100644
index 00000000000..4e5b31c4f34
--- /dev/null
+++ b/testing/sish/sish.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S sish 2>/dev/null
+adduser -S -D -H -h /var/lib/sish -s /sbin/nologin -G sish -g sish sish 2>/dev/null
+
+exit 0
diff --git a/testing/skia-sharp/APKBUILD b/testing/skia-sharp/APKBUILD
new file mode 100644
index 00000000000..d4802eb068a
--- /dev/null
+++ b/testing/skia-sharp/APKBUILD
@@ -0,0 +1,185 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=skia-sharp
+pkgver=0_git20230912
+pkgrel=0
+_commit="ced64f6f90cb5349de58e349309d3514cb345c28"
+_buildtools_commit="b138e6ce86ae843c42a1a08f37903207bebcca75"
+_brotli_commit="6d03dfbedda1615c4cba1211f8d81735575209c8"
+_abseil_cpp_commit="cb436cf0142b4cbe47aae94223443df7f82e2920"
+_dng_sdk_commit="c8d0c9b1d16bfda56f15165d39e0ffa360a11123"
+_egl_registry_commit="a0bca08de07c7d7651047bedc0b653cfaaa4f2ae"
+_highway_commit="424360251cdcfc314cfc528f53c872ecd63af0f0"
+_imgui_commit="55d35d8387c15bf0cfd71861df67af8cfbda7456"
+_libavif_commit="f49462dc93784bf34148715eee36ab6697ca0b35"
+_libgav1_commit="0fb779c1e169fe6c229cd1fa9cc6ea6feeb441da"
+_libjxl_commit="a205468bc5d3a353fb15dae2398a101dff52f2d3"
+_libyuv_commit="d248929c059ff7629a85333699717d7a677d8d96"
+_microhttpd_commit="748945ec6f1c67b7efc934ab0808e1d32f2fb98d"
+_oboe_commit="b02a12d1dd821118763debec6b83d00a8a0ee419"
+_opengl_registry_commit="14b80ebeab022b2c78f84a573f01028c96075553"
+_perfetto_commit="93885509be1c9240bc55fa515ceb34811e54a394"
+_piex_commit="bb217acdca1cc0c16b704669dd6f91a1b509c406"
+_vulkanmemoryallocator_commit="7de5cc00de50e71a3aab22dea52fbb7ff4efceb6"
+_vulkan_deps_commit="8a3971e5e9c5cddc437d1cf5e4ac1ed0728d6a49"
+_spirv_cross_commit="12542fc6fc05000e04742daf93892a0b10edbe80"
+_spirv_headers_commit="bdbfd019be6952fd8fa9bd5606a8798a7530c853"
+_spirv_tools_commit="e7c6084fd1d6d6f5ac393e842728d8be309688ca"
+_vello_commit="ef2630ad9c647b90863cb0915701d54725733968"
+_vulkan_headers_commit="9e61870ecbd32514113b467e0a0c46f60ed222c7"
+_vulkan_tools_commit="80b010b1e1b08c1f092fb2bfa337faadf8ea1ba3"
+_wuffs_commit="a0041ac0310b3156b963e2f2bea09245f25ec073"
+pkgdesc="A complete 2D graphic library for drawing Text, Geometries, and Images"
+url="https://github.com/Mis012/skia/tree/with-patches-applied"
+arch="x86_64 aarch64 armv7"
+license="BSD-3-Clause"
+makedepends="
+ expat-dev
+ freetype-dev
+ gn
+ harfbuzz-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libwebp-dev
+ python3
+ zlib-dev
+ "
+subpackages="$pkgname-dev"
+source="$pkgname-$_commit.tar.gz::https://github.com/Mis012/skia/archive/$_commit.tar.gz
+ https://github.com/google/brotli/archive/$_brotli_commit/brotli-$_brotli_commit.tar.gz
+ https://github.com/abseil/abseil-cpp/archive/$_abseil_cpp_commit/abseil-cpp-$_abseil_cpp_commit.tar.gz
+ dng_sdk-$_dng_sdk_commit.tar.gz::https://android.googlesource.com/platform/external/dng_sdk.git/+archive/$_dng_sdk_commit.tar.gz
+ https://github.com/KhronosGroup/egl-registry/archive/$_egl_registry_commit/egl-registry-$_egl_registry_commit.tar.gz
+ https://github.com/google/highway/archive/$_highway_commit/highway-$_highway_commit.tar.gz
+ https://github.com/ocornut/imgui/archive/$_imgui_commit/imgui-$_imgui_commit.tar.gz
+ https://github.com/AOMediaCodec/libavif/archive/$_libavif_commit/libavif-$_libavif_commit.tar.gz
+ libgav1-$_libgav1_commit.tar.gz::https://chromium.googlesource.com/codecs/libgav1.git/+archive/$_libgav1_commit.tar.gz
+ https://gitlab.com/wg1/jpeg-xl/-/archive/$_libjxl_commit/libjxl-$_libjxl_commit.tar.gz
+ libyuv-$_libyuv_commit.tar.gz::https://chromium.googlesource.com/libyuv/libyuv.git/+archive/$_libyuv_commit.tar.gz
+ microhttpd-$_microhttpd_commit.tar.gz::https://android.googlesource.com/platform/external/libmicrohttpd.git/+archive/$_microhttpd_commit.tar.gz
+ https://github.com/google/oboe/archive/$_oboe_commit/oboe-$_oboe_commit.tar.gz
+ https://github.com/KhronosGroup/opengl-registry/archive/$_opengl_registry_commit/opengl-registry-$_opengl_registry_commit.tar.gz
+ perfetto-$_perfetto_commit.tar.gz::https://android.googlesource.com/platform/external/perfetto.git/+archive/$_perfetto_commit.tar.gz
+ piex-$_piex_commit.tar.gz::https://android.googlesource.com/platform/external/piex.git/+archive/$_piex_commit.tar.gz
+ https://github.com/GPUOpen-LibrariesAndSDKs/vulkanmemoryallocator/archive/$_vulkanmemoryallocator_commit/vulkanmemoryallocator-$_vulkanmemoryallocator_commit.tar.gz
+ vulkan-deps-$_vulkan_deps_commit.tar.gz::https://chromium.googlesource.com/vulkan-deps.git/+archive/$_vulkan_deps_commit.tar.gz
+ https://github.com/KhronosGroup/spirv-cross/archive/$_spirv_cross_commit/spirv-cross-$_spirv_cross_commit.tar.gz
+ https://github.com/KhronosGroup/spirv-headers/archive/$_spirv_headers_commit/spirv-headers-$_spirv_headers_commit.tar.gz
+ https://github.com/KhronosGroup/spirv-tools/archive/$_spirv_tools_commit/spirv-tools-$_spirv_tools_commit.tar.gz
+ https://github.com/linebender/vello/archive/$_vello_commit/vello-$_vello_commit.tar.gz
+ https://github.com/KhronosGroup/vulkan-headers/archive/$_vulkan_headers_commit/vulkan-headers-$_vulkan_headers_commit.tar.gz
+ https://github.com/KhronosGroup/vulkan-tools/archive/$_vulkan_tools_commit/vulkan-tools-$_vulkan_tools_commit.tar.gz
+ https://github.com/google/wuffs-mirror-release-c/archive/$_wuffs_commit/wuffs-$_wuffs_commit.tar.gz
+ "
+# No tests
+options="!check"
+builddir="$srcdir/skia-$_commit"
+
+case "$CARCH" in
+ x86_64) _arch=x64 ;;
+ *) _arch="$CARCH" ;;
+esac
+
+unpack() {
+ local u
+ mkdir -p "$srcdir"
+ for u in $source; do
+ local s="$SRCDEST/$(filename_from_uri $u)"
+ local unpackdir
+ msg "Unpacking $s..."
+ case "$u" in
+ *googlesource.com*) unpackdir="$srcdir/$(basename $s .tar.gz)";;
+ *) unpackdir="$srcdir";;
+ esac
+ mkdir -p "$unpackdir"
+ tar -C "$unpackdir" -zxf "$s"
+ done
+
+}
+
+prepare() {
+ default_prepare
+
+ mkdir -p third_party/externals
+
+ mv "$srcdir"/brotli-$_brotli_commit third_party/externals/brotli
+ mv "$srcdir"/abseil-cpp-$_abseil_cpp_commit third_party/externals/abseil-cpp
+ mv "$srcdir"/dng_sdk-$_dng_sdk_commit third_party/externals/dng_sdk
+ mv "$srcdir"/EGL-Registry-$_egl_registry_commit third_party/externals/egl-registry
+ mv "$srcdir"/highway-$_highway_commit third_party/externals/highway
+ mv "$srcdir"/imgui-$_imgui_commit third_party/externals/imgui
+ mv "$srcdir"/libavif-$_libavif_commit third_party/externals/libavif
+ mv "$srcdir"/libgav1-$_libgav1_commit third_party/externals/libgav1
+ mv "$srcdir"/jpeg-xl-$_libjxl_commit third_party/externals/libjxl
+ mv "$srcdir"/libyuv-$_libyuv_commit third_party/externals/libyuv
+ mv "$srcdir"/microhttpd-$_microhttpd_commit third_party/externals/microhttpd
+ mv "$srcdir"/oboe-$_oboe_commit third_party/externals/oboe
+ mv "$srcdir"/OpenGL-Registry-$_opengl_registry_commit third_party/externals/opengl-registry
+ mv "$srcdir"/perfetto-$_perfetto_commit third_party/externals/perfetto
+ mv "$srcdir"/piex-$_piex_commit third_party/externals/piex
+ mv "$srcdir"/VulkanMemoryAllocator-$_vulkanmemoryallocator_commit third_party/externals/vulkanmemoryallocator
+ mv "$srcdir"/vulkan-deps-$_vulkan_deps_commit third_party/externals/vulkan-deps
+ mv "$srcdir"/SPIRV-Cross-$_spirv_cross_commit third_party/externals/spirv-cross
+ mv "$srcdir"/SPIRV-Headers-$_spirv_headers_commit third_party/externals/spirv-headers
+ mv "$srcdir"/SPIRV-Tools-$_spirv_tools_commit third_party/externals/spirv-tools
+ mv "$srcdir"/vello-$_vello_commit third_party/externals/vello
+ mv "$srcdir"/Vulkan-Headers-$_vulkan_headers_commit third_party/externals/vulkan-headers
+ mv "$srcdir"/Vulkan-Tools-$_vulkan_tools_commit third_party/externals/vulkan-tools
+ mv "$srcdir"/wuffs-mirror-release-c-$_wuffs_commit third_party/externals/wuffs
+}
+
+build() {
+ # Keep this list unindented, gn really doesn't like tabs for indentation
+ gn gen "out/linux/$_arch" --args="
+is_official_build=true
+skia_enable_tools=false
+target_os=\"linux\"
+target_cpu=\"$_arch\"
+skia_use_icu=false
+skia_use_sfntly=false
+skia_use_piex=true
+skia_use_system_harfbuzz=true
+skia_use_system_expat=true
+skia_use_system_freetype2=true
+skia_use_system_libjpeg_turbo=true
+skia_use_system_libpng=true
+skia_use_system_libwebp=true
+skia_use_system_zlib=true
+skia_enable_gpu=true
+extra_cflags=[ \"-DSKIA_C_DLL\", \"-fpermissive\" ]
+linux_soname_version=\"99.9\""
+ ninja -C "out/linux/$_arch" 'SkiaSharp'
+}
+
+package() {
+ install -Dm755 out/linux/$_arch/libSkiaSharp.so.99.9 "$pkgdir"/usr/lib/libSkiaSharp.so.99.9
+ ln -s /usr/lib/libSkiaSharp.so.99.9 "$pkgdir"/usr/lib/libSkiaSharp.so
+}
+
+sha512sums="
+05ae5f783e4190daaf7b7cc19ea36f8d7235238c1f06afb5109c3892801f1634e6da5a00fbca4974719f3ef5758d1e8ad8da641e09baf266aa9ac72f12d3787b skia-sharp-ced64f6f90cb5349de58e349309d3514cb345c28.tar.gz
+9a6ae22a85bcd20b9a1b6c4d51bddc76e9e7461f2e1e144fb0625ed67e6a1c4ea635a75ba8f07b3914bab8de1d319e4c13c815989ca1691ba0215197c385eb08 brotli-6d03dfbedda1615c4cba1211f8d81735575209c8.tar.gz
+765b542bd7c9cf2c8d0f150aaeaae6bb12d4643d314f5b4026139a63b4f2852ae8774bb740f3c8602ab2b49646e194151a344f03237313ab69251dfd931f9874 abseil-cpp-cb436cf0142b4cbe47aae94223443df7f82e2920.tar.gz
+71ff48fe6d18685d7937f0314dcf373d50d9413dd15453c4b04ed11ee06340cc085444d06db6f2161830c2f874c5a0a89d53b0fae4ba5c5e4084072165a97a49 dng_sdk-c8d0c9b1d16bfda56f15165d39e0ffa360a11123.tar.gz
+f07ed88d9b2e73eeb6ff82a811d7fad5d68bebf0a9ccc6c6df7678687b9a769e7be2efe8143be5c97bdbb7666ce76965a260335daa5ae07992c20e309b3b1cef egl-registry-a0bca08de07c7d7651047bedc0b653cfaaa4f2ae.tar.gz
+c9ace7124b56307e47c9d220d9cb5aed698509245cc0502f7fa1d8df14c61aaf0a2ef442ce36576193953bb7e39df214ad72e1cbc720d121920bec9e430a3d50 highway-424360251cdcfc314cfc528f53c872ecd63af0f0.tar.gz
+8075f78d06ac5cbc0ebc525fc070fe323306d4798d02cbce0b6610da4afb11a12a6e242bb818af7b3efcfc97262d2e6b638fef65cf974698448992872e47e692 imgui-55d35d8387c15bf0cfd71861df67af8cfbda7456.tar.gz
+463640fc5868f8d1201a17be5ddb61c65b1ea3513e19093aa1b678281cae4fae873b50a05a7e57846e640c3fe1fd0d297a712dc92f6c4697e98464ca7c675a58 libavif-f49462dc93784bf34148715eee36ab6697ca0b35.tar.gz
+6964a6be9eecf06ac67e56f3b2e88aade18335140c53726f3385161d279d2dcc96bfb5bff8e9e77858326e2ce26bec2e21682ab46ad001a6e1f789bb373a7ee3 libgav1-0fb779c1e169fe6c229cd1fa9cc6ea6feeb441da.tar.gz
+0ec9b93c6c2c82538b768c167e591cb7db5b0557f484fffc6b3c4a2eeff05c97e6278002ae83fb021dda26a75904fc65a21c006675ebbf9836c1379d45ac6280 libjxl-a205468bc5d3a353fb15dae2398a101dff52f2d3.tar.gz
+6085a21c2b6c428166a4fe030ac05cde79d1f39f16f15267a58c639bf8e23f95e8380f73dcb7714ec0a2002db348b9af3b4a5ca783f5b4a5db5f7aeb66abcd2e libyuv-d248929c059ff7629a85333699717d7a677d8d96.tar.gz
+e3ed6de28fc27f7fae01d0f39a95817246be7658e2233e2b8c7933bec834a48508cddd445fa881755c064e8e3e0ae00d9b9c169382b904e8e19c8a2f8597a5f5 microhttpd-748945ec6f1c67b7efc934ab0808e1d32f2fb98d.tar.gz
+fd99870179bef97db6d0007652505e1555cdb14f4cad1c582e449cc3b61cdaf5a3de395e9569d6d367927a16aad6a277771db223a99f14192d56b3fa30615c30 oboe-b02a12d1dd821118763debec6b83d00a8a0ee419.tar.gz
+6f7bde922561aa495d93ec274009724feaeb3e03e619adfaa7ce520e5d11a83f93462ccc2f2e9c4aa387ace61912196a1ecfd90cdc5672f088ba1b0c3e62b53d opengl-registry-14b80ebeab022b2c78f84a573f01028c96075553.tar.gz
+a903210bf29bf1d15c54e69cd6734a0b4983cba8629a0ac2229270fe67765fb21cc94008ba6f8f865106007dc7923cf7b937b654113dbac92d1850760c3f571f perfetto-93885509be1c9240bc55fa515ceb34811e54a394.tar.gz
+5920bd7a0c1e9bc2d4e231b92587910b30022d5d35e3b0c64c057c2eff49d9f9f380a4f3a733a9f4833d38ffd2d9d0dc559502df5e14df720f2b6453a5e0f42a piex-bb217acdca1cc0c16b704669dd6f91a1b509c406.tar.gz
+185c3964f9d0f46a3fb30637c4b83ce1015efcc1bca62b6ed0fdbf67d4c72ede792ba71411552a183d9bc4f74c72ecc1dc78941300594d4a5bac9dcdc2661c30 vulkanmemoryallocator-7de5cc00de50e71a3aab22dea52fbb7ff4efceb6.tar.gz
+bcf10b8a4dc9bcbf066e0d198e89bd4c67c0640ba69bb06aedeb27de468011eb7ab4656d2d93749f22f9221eb6a71938bf59c084cb88c4b39aa6d0f584c9043f vulkan-deps-8a3971e5e9c5cddc437d1cf5e4ac1ed0728d6a49.tar.gz
+2112eda633b08dd6a6d17ad54d299a301e7b0d3a0c8f27e7073eb98c4ba5c9375fe60cc838b263daf4ad535533192acbcd28a30860cdf99849834b3e6a421b19 spirv-cross-12542fc6fc05000e04742daf93892a0b10edbe80.tar.gz
+95a11bb56ffcad5faff738d58d9c7cbb146462268e5a7a8ba4e19fb18c35f881f59bd35354d46ae7569f41b9f3eebe44add0f62f6f607d7a8db0edb80ec79241 spirv-headers-bdbfd019be6952fd8fa9bd5606a8798a7530c853.tar.gz
+c8bcba6e3d913a8b6004f121bb505bed1f4ecba3fcf0eeb29507c8f0a5d4995f38e75194f1ff9721cf254530d7f88356c79055e478dcca2d145513a29866c68c spirv-tools-e7c6084fd1d6d6f5ac393e842728d8be309688ca.tar.gz
+b599c509f624546d18143c0058402c678f6db5fd0436940a4ed0fe609e93552a0426ad7112bcf8bc5a55f25b68cf94dde66c6aa5c66515cecb85cd5a387902a1 vello-ef2630ad9c647b90863cb0915701d54725733968.tar.gz
+d627cb32bbd4b8886c7eb92686156f6c79e4d40cba2b9e05583241853b153ea6456fc567635f14cf8a70a9e153a9f288516c06b7194b52151d552d9122c4e694 vulkan-headers-9e61870ecbd32514113b467e0a0c46f60ed222c7.tar.gz
+d4cd1b1d78023df2fc31f18a277b22714850eb7639c0a5525e123316060691ac3b7a48c7a04141cec79f5df0a82c24b4f2bcb7d67a36e48195f01ba6efd8d1eb vulkan-tools-80b010b1e1b08c1f092fb2bfa337faadf8ea1ba3.tar.gz
+6b72af9439d2acf7052f23d87588a027b457a04ba99d1573de1f9f85898607a01832cabbd5b8ddf5f5e91eaa5757933181e03dbf2aa6679f514b99889a019b45 wuffs-a0041ac0310b3156b963e2f2bea09245f25ec073.tar.gz
+"
diff --git a/testing/skim/APKBUILD b/testing/skim/APKBUILD
deleted file mode 100644
index 08fe0414e07..00000000000
--- a/testing/skim/APKBUILD
+++ /dev/null
@@ -1,108 +0,0 @@
-# Contributor: Chloe Kudryavtsev <toast@toastin.space>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=skim
-pkgver=0.8.1
-pkgrel=0
-pkgdesc="Fuzzy finder in rust"
-url="https://github.com/lotabout/skim"
-arch="all !s390x !mips !mips64" # limited by rust/cargo
-license="MIT"
-makedepends="cargo"
-options="net"
-subpackages="
- $pkgname-doc
- $pkgname-tmux::noarch
- $pkgname-vim-plugin:vim:noarch
- $pkgname-bash-completion:bash:noarch
- $pkgname-zsh-completion:zsh:noarch
- $pkgname-bash-keybinds:bashkey:noarch
- $pkgname-fish-keybinds:fishkey:noarch
- $pkgname-zsh-keybinds:zshkey:noarch
- "
-source="skim-$pkgver.tar.gz::https://github.com/lotabout/skim/archive/v$pkgver.tar.gz"
-
-export CARGO_HOME="$srcdir"/cargo
-
-build() {
- cargo build \
- --release \
- --verbose
-}
-
-check() {
- cargo test --all \
- --release \
- --verbose
-}
-
-package() {
- install -Dm755 target/release/sk bin/sk-tmux -t "$pkgdir"/usr/bin
-
- install -Dm644 man/man1/sk.1 -t "$pkgdir"/usr/share/man/man1/
- install -Dm644 man/man1/sk-tmux.1 -t "$pkgdir"/usr/share/man/man1/
-
- install -Dm644 plugin/skim.vim -t "$pkgdir"/usr/share/vim/vimfiles/plugin
-
- install -Dm644 shell/completion.bash "$pkgdir"/usr/share/bash-completion/completions/sk
- install -Dm644 shell/completion.zsh "$pkgdir"/usr/share/zsh/site-functions/_sk
-
- install -Dm644 shell/key-bindings.* -t "$pkgdir"/usr/share/"$pkgname"
-}
-
-vim() {
- depends=""
- pkgdesc="Vim plugin for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel vim"
-
- amove usr/share/vim
-}
-
-tmux() {
- depends="bash"
- pkgdesc="tmux launcher for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel tmux"
-
- amove usr/bin/sk-tmux
-}
-
-bash() {
- depends=""
- pkgdesc="Bash completion for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion/completions
-}
-
-zsh() {
- depends=""
- pkgdesc="Zsh completion for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel zsh"
-
- amove usr/share/zsh/site-functions
-}
-
-bashkey() {
- depends=""
- pkgdesc="Bash key-bindings for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash"
-
- amove usr/share/skim/key-bindings.bash
-}
-
-fishkey() {
- depends=""
- pkgdesc="Fish key-bindings for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel fish"
-
- amove usr/share/skim/key-bindings.fish
-}
-
-zshkey() {
- depends=""
- pkgdesc="Zsh key-bindings for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel zsh"
-
- amove usr/share/skim/key-bindings.zsh
-}
-
-sha512sums="967ceede4080646da7e2ba3e1c62ed19c7b05a086e7450a23cabd8e869c00437b1adf1206b950731387b2e1dc04c27b9134ce7b77350cb6d61b34c0bfc7d2138 skim-0.8.1.tar.gz"
diff --git a/testing/slick-greeter/APKBUILD b/testing/slick-greeter/APKBUILD
new file mode 100644
index 00000000000..0e6f9124030
--- /dev/null
+++ b/testing/slick-greeter/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: David Demelier <markand@malikania.fr>
+# Maintainer: David Demelier <markand@malikania.fr>
+pkgname=slick-greeter
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="a slick-looking LightDM greeter"
+url="https://github.com/linuxmint/slick-greeter"
+# s390x: mainframe
+arch="all !s390x"
+license="GPL-3.0-only"
+makedepends="automake autoconf intltool libtool libcanberra-dev lightdm-dev vala xapp-dev"
+subpackages="$pkgname-doc $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/slick-greeter/archive/refs/tags/$pkgver.tar.gz
+ get-rid-of-gnome-common.patch
+ "
+options="!check" # No tests
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+db6424e68f547d95fb67c835a8e2a842232cadf92fbded7a329c9e4ed8fd9588ee0914c92a7f11b97d28859e3a8ef2885b6b4cea73214d5693074397edbb7279 slick-greeter-2.0.3.tar.gz
+1060172686538ad92f58abb7be80cdc99a6fd914e16700c4ea4d95a99abf09f82a05181961961732adce1d505787f93aa73d744e12c8e019e084fef5b28f8081 get-rid-of-gnome-common.patch
+"
diff --git a/testing/slick-greeter/get-rid-of-gnome-common.patch b/testing/slick-greeter/get-rid-of-gnome-common.patch
new file mode 100644
index 00000000000..5b626a9c5f3
--- /dev/null
+++ b/testing/slick-greeter/get-rid-of-gnome-common.patch
@@ -0,0 +1,84 @@
+From 52a1b5970534790becd977894545cacee92d2552 Mon Sep 17 00:00:00 2001
+From: Jakko3 <jahau@rocketmail.com>
+Date: Mon, 12 Feb 2024 20:02:51 +0100
+Subject: [PATCH] Get rid of gnome-common build dependency (#231)
+
+"gnome-common" is deprecated. Replace the autogen.sh script by the
+template suggested at the gnome-common migration page [1], adding
+the mentioned aclocal line.
+
+[1] https://wiki.gnome.org/Projects/GnomeCommon/Migration
+---
+ autogen.sh | 45 ++++++++++++++++++++++++++++++++-------------
+ debian/control | 1 -
+ 2 files changed, 32 insertions(+), 14 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 7ac1a76..efc3e5f 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -1,20 +1,39 @@
+ #!/bin/sh
+ # Run this to generate all the initial makefiles, etc.
++test -n "$srcdir" || srcdir=$(dirname "$0")
++test -n "$srcdir" || srcdir=.
+
+-srcdir=`dirname $0`
+-test -z "$srcdir" && srcdir=.
++olddir=$(pwd)
+
+-REQUIRED_AUTOMAKE_VERSION=1.7
++cd $srcdir
+
+-(test -f $srcdir/configure.ac \
+- && test -d $srcdir/src) || {
+- echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+- echo " top-level slick-greeter directory"
+- exit 1
++(test -f configure.ac) || {
++ echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***"
++ exit 1
+ }
+
+-which gnome-autogen.sh || {
+- echo "You need to install gnome-common from the GNOME CVS"
+- exit 1
+-}
+-. gnome-autogen.sh
++# shellcheck disable=SC2016
++PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac)
++
++if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then
++ echo "*** WARNING: I am going to run 'configure' with no arguments." >&2
++ echo "*** If you wish to pass any to it, please specify them on the" >&2
++ echo "*** '$0' command line." >&2
++ echo "" >&2
++fi
++
++aclocal --install || exit 1
++autoreconf --verbose --force --install || exit 1
++
++cd "$olddir"
++if [ "$NOCONFIGURE" = "" ]; then
++ $srcdir/configure "$@" || exit 1
++
++ if [ "$1" = "--help" ]; then
++ exit 0
++ else
++ echo "Now type 'make' to compile $PKG_NAME" || exit 1
++ fi
++else
++ echo "Skipping configure process."
++fi
+diff --git a/debian/control b/debian/control
+index 8bff7bd..5340245 100644
+--- a/debian/control
++++ b/debian/control
+@@ -6,7 +6,6 @@ Standards-Version: 4.6.1
+ Build-Depends: debhelper-compat (= 12),
+ at-spi2-core,
+ dbus-x11,
+- gnome-common,
+ fonts-ubuntu,
+ libcanberra-dev,
+ libgtk-3-dev,
diff --git a/testing/slidge-matridge/APKBUILD b/testing/slidge-matridge/APKBUILD
new file mode 100644
index 00000000000..6270d673dfe
--- /dev/null
+++ b/testing/slidge-matridge/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=slidge-matridge
+pkgver=0_git20240208
+_gitrev=c1f6bbf94971f4b6e378e7959c717da7cf41d842
+pkgrel=1
+pkgdesc="Feature-rich Matrix to XMPP puppeteering gateway"
+url="https://slidge.im/matridge/"
+arch="noarch"
+license="AGPL-3.0-or-later"
+depends="
+ py3-async-lru
+ py3-atomicwrites
+ py3-beautifulsoup4
+ py3-cachetools
+ py3-matrix-nio
+ py3-olm
+ py3-peewee
+ py3-slidge-style-parser
+ slidge
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-asyncio
+ py3-xmldiff
+ "
+pkgusers="slidge"
+pkggroups="slidge"
+subpackages="$pkgname-openrc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~nicoco/matridge/archive/$_gitrev.tar.gz
+ matridge.conf
+ "
+builddir="$srcdir/matridge-$_gitrev"
+
+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
+
+ install -dm750 -o slidge -g slidge \
+ "$pkgdir"/etc/slidge
+ install -Dm640 -o slidge -g slidge \
+ "$srcdir"/matridge.conf \
+ -t "$pkgdir"/etc/slidge/
+
+ install -dm755 "$pkgdir"/etc/init.d
+ ln -s slidge "$pkgdir"/etc/init.d/slidge.matridge
+}
+
+sha512sums="
+23d0ca3574812c62ffcbee111499eb04ac0d54115ee619c121e48251780c1b4f6d9bdc668f2e00af5d1fc4fe85cdd35bc5c7a08a4c6e134298cf018e59fe1fc6 slidge-matridge-0_git20240208.tar.gz
+e5f5c7f1f0ad2c96d04f0f2eb8eaea856db99f0cab92a05b080bce83a2fea4848a0573ff5e0490dee92c5d6d66dd1201f8ff2ab5c5717ae11f2ff7a193ac8a2d matridge.conf
+"
diff --git a/testing/slidge-matridge/matridge.conf b/testing/slidge-matridge/matridge.conf
new file mode 100644
index 00000000000..d62b8ecee6d
--- /dev/null
+++ b/testing/slidge-matridge/matridge.conf
@@ -0,0 +1,8 @@
+# See /usr/share/doc/slidge/examples/slidge-example.ini
+# from the slidge-doc subpackage,
+# https://slidge.im/core/admin/config/#common-config
+# and https://slidge.im/matridge/config.html for more info
+
+legacy-module=matridge
+secret=CHANGE-TO-SOMETHING-SAFE
+jid=matridge.example.com
diff --git a/testing/slidge/APKBUILD b/testing/slidge/APKBUILD
new file mode 100644
index 00000000000..8d7cadc4f6c
--- /dev/null
+++ b/testing/slidge/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=slidge
+pkgver=0.1.0
+pkgrel=1
+pkgdesc="XMPP puppeteering gateway framework"
+url="https://slidge.im/"
+arch="noarch"
+license="AGPL-3.0-or-later"
+depends="
+ py3-aiohttp
+ py3-blurhash
+ py3-configargparse
+ py3-magic
+ py3-numpy
+ py3-pickle-secure
+ py3-pillow
+ py3-qrcode
+ py3-slixmpp
+ "
+makedepends="
+ py3-gpep517
+ py3-poetry-core
+ "
+checkdepends="
+ py3-pytest
+ py3-pytest-asyncio
+ py3-xmldiff
+ "
+install="$pkgname.pre-install"
+pkgusers="slidge"
+pkggroups="slidge"
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~nicoco/slidge/archive/v$pkgver.tar.gz
+ slidge.initd
+ slidge.confd
+ common.conf.example
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+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 --log-level WARNING
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ install -dm750 -o slidge -g slidge \
+ "$pkgdir"/etc/slidge \
+ "$pkgdir"/etc/slidge/conf.d \
+ "$pkgdir"/var/lib/slidge \
+ "$pkgdir"/var/log/slidge
+
+ install -Dm640 -o slidge -g slidge -t "$pkgdir"/etc/slidge/conf.d/ \
+ "$srcdir"/common.conf.example
+
+ install -Dm644 -t "$pkgdir"/usr/share/doc/$pkgname/examples/ \
+ docs/source/admin/examples/ejabberd.yaml \
+ docs/source/admin/examples/prosody.cfg.lua \
+ dev/confs/*
+
+ install -Dm755 "$srcdir"/slidge.initd "$pkgdir"/etc/init.d/slidge
+ install -Dm644 "$srcdir"/slidge.confd "$pkgdir"/etc/conf.d/slidge
+}
+
+sha512sums="
+68124fa307cde0b6c79471d1674e94aa73a6fcdf4009cf1715dcce761bbdd346c808c84737a57083c0551ca7b2dd29de21caf9c14bff15171743bed93ff40e12 slidge-0.1.0.tar.gz
+a0a9f2578060dac366dc5198dfd6481f869dc225ba7da0bfaf9213382f7e08fdebe965418ba287dce60a0e1b01433ce8430de52574b2f16b335059383147eb76 slidge.initd
+27dac3c86b047012c4c835cffb497ad8aa059a69d03b6fa0ca3368222a3fcb929f181c8aac3edf25d2081d32f06673256d22f17ad3c55cae87493533a5115053 slidge.confd
+a67660cb0f1be38187affa998c0ba41fed5f8b48da82dea28849b8ead855fd4ab244952020ae2509a313f0bb0e6590cb2a4fdc2d6f264919fbf9430be9bf6cc4 common.conf.example
+"
diff --git a/testing/slidge/common.conf.example b/testing/slidge/common.conf.example
new file mode 100644
index 00000000000..0086446a948
--- /dev/null
+++ b/testing/slidge/common.conf.example
@@ -0,0 +1,7 @@
+# More info at https://slidge.im/core/admin/config
+
+admins=root@example.com
+upload-service=upload.example.com
+user-jid-validator=.*@example.com
+server=localhost
+port=5347
diff --git a/testing/slidge/slidge.confd b/testing/slidge/slidge.confd
new file mode 100644
index 00000000000..9a2fa05f233
--- /dev/null
+++ b/testing/slidge/slidge.confd
@@ -0,0 +1,17 @@
+# Configuration for /etc/init.d/slidge
+
+# Specify the location of the INI config file for a Slidge gateway.
+# If an initscript called slidge.matridge is symlinked to slidge,
+# the default config file will be /etc/slidge/matridge.conf
+#SLIDGE_CONFIG="/etc/slidge/slidge.conf"
+
+# If an initscript called slidge.matridge is symlinked to slidge,
+# the default log file will be /var/log/slidge/matridge.log
+#output_log=/var/log/slidge/slidge.log"
+#error_log=/var/log/slidge/slidge.log"
+
+# Command-line options for running /usr/bin/slidge
+#command_args=""
+
+# Comment out to disable process supervisor
+supervisor=supervise-daemon
diff --git a/testing/slidge/slidge.initd b/testing/slidge/slidge.initd
new file mode 100644
index 00000000000..113a521b184
--- /dev/null
+++ b/testing/slidge/slidge.initd
@@ -0,0 +1,37 @@
+#!/sbin/openrc-run
+
+description="XMPP puppeteering gateway"
+
+instance_name="${RC_SVCNAME#*.}"
+instance_name="${instance_name:-slidge}"
+
+: ${SLIDGE_CONFIG:="/etc/slidge/$instance_name.conf"}
+export SLIDGE_CONFIG
+
+: "${output_log:=/var/log/slidge/$instance_name.log}"
+: "${error_log:=/var/log/slidge/$instance_name.log}"
+
+command=/usr/bin/slidge
+command_background="yes"
+command_user="slidge:slidge"
+pidfile="/run/${RC_SVCNAME}.pid"
+directory="/var/lib/slidge"
+
+required_files="$SLIDGE_CONFIG"
+
+depend() {
+ need localmount net
+ after firewall jabber-server
+ use dns
+}
+
+start_pre() {
+ [ -n "$output_log" ] && checkpath -q -f -m 0640 \
+ -o "$command_user" "$output_log"
+
+ [ -n "$error_log" ] && checkpath -q -f -m 0640 \
+ -o "$command_user" "$error_log"
+
+ checkpath -q -f -m 0640 -o "$command_user" "$SLIDGE_CONFIG"
+ checkpath -q -d -m 0750 -o "$command_user" "$directory"
+}
diff --git a/testing/slidge/slidge.pre-install b/testing/slidge/slidge.pre-install
new file mode 100644
index 00000000000..4af15823aa2
--- /dev/null
+++ b/testing/slidge/slidge.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S slidge 2>/dev/null
+adduser -S -D -H \
+ -h /var/lib/slidge \
+ -s /sbin/nologin \
+ -G slidge \
+ -g "Slidge XMPP puppeteering gateway" \
+ slidge 2>/dev/null
+
+exit 0
diff --git a/testing/slirp4netns/APKBUILD b/testing/slirp4netns/APKBUILD
deleted file mode 100644
index dde0d49c829..00000000000
--- a/testing/slirp4netns/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=slirp4netns
-pkgver=1.0.1
-pkgrel=0
-pkgdesc="User-mode networking for unprivileged network namespaces"
-url="https://github.com/rootless-containers/slirp4netns"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="glib-dev libcap-dev libseccomp-dev libslirp-dev autoconf automake"
-checkdepends="bash gzip jq iproute2 nmap-ncat"
-subpackages="$pkgname-doc"
-options="!check" # flaky tests
-source="$pkgname-$pkgver.tar.gz::https://github.com/rootless-containers/slirp4netns/archive/v$pkgver.tar.gz"
-
-check() {
- # needs tun module loaded
- make check-TESTS
-}
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="4947e32d88c3c8f1b7b2e94a1e73041a48cc8ddf75ffaf691d44cb6ebeaef5cf0b0abb7a8df8919682dfc854a76d73fc5bdebcf01b3ace97be187068d704bf63 slirp4netns-1.0.1.tar.gz"
diff --git a/testing/sloccount/APKBUILD b/testing/sloccount/APKBUILD
index c209ce837ab..0da1116025d 100644
--- a/testing/sloccount/APKBUILD
+++ b/testing/sloccount/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
pkgname=sloccount
pkgver=2.26
-pkgrel=1
+pkgrel=3
pkgdesc="Tool for counting physical Source Lines of Code (SLOC)"
url="https://dwheeler.com/sloccount"
arch="all"
license="GPL-2.0-or-later"
-makedepends="flex"
+makedepends="flex perl"
subpackages="$pkgname-doc"
source="https://dwheeler.com/sloccount/sloccount-$pkgver.tar.gz"
@@ -21,10 +21,13 @@ check() {
}
package() {
+ mkdir -p "$pkgdir"/usr/bin
make PREFIX=/usr \
INSTALL_DIR="$pkgdir/usr/bin" \
DOC_DIR="$pkgdir/usr/share/doc/$pkgname" \
MAN_DIR="$pkgdir/usr/share/man" \
install
}
-sha512sums="ed6ab315a56dbdc86c654b94e790c9ea9e2dcad0db26b63c0973c33eb7fa634b4ade0a1f3c6ccfd5172ea95f648c1dd3b0ae2575b0aa44b3fec708c24a6aca54 sloccount-2.26.tar.gz"
+sha512sums="
+ed6ab315a56dbdc86c654b94e790c9ea9e2dcad0db26b63c0973c33eb7fa634b4ade0a1f3c6ccfd5172ea95f648c1dd3b0ae2575b0aa44b3fec708c24a6aca54 sloccount-2.26.tar.gz
+"
diff --git a/testing/slop/APKBUILD b/testing/slop/APKBUILD
deleted file mode 100644
index 190c640451d..00000000000
--- a/testing/slop/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Samuel Hunter <samuelhunter1024@gmail.com>
-# Maintainer: Samuel Hunter <samuelhunter1024@gmail.com>
-pkgname=slop
-pkgver=7.5
-pkgrel=0
-pkgdesc="Application that queries for a selection from the user and prints the region to stdout"
-url="https://github.com/naelstrof/slop"
-arch="all"
-license="MIT"
-makedepends="cmake icu-dev mesa-dev glew-dev glu-dev libice-dev libsm-dev
- libx11-dev libxext-dev libxrender-dev glm-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="$pkgname-$pkgver.tar.gz::https://github.com/naelstrof/slop/archive/v$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- $CMAKE_CROSSOPTS .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="c02e40c5b924841996617fcc9629a6a739a04b6128c18e1eb06dc285d2f8026d847e67077fb59a111fc45c112f871a6e5faef20108c3d777271e1d4aca7f4737 slop-7.5.tar.gz"
diff --git a/testing/slrn/APKBUILD b/testing/slrn/APKBUILD
deleted file mode 100644
index 6f9f260fc01..00000000000
--- a/testing/slrn/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Steffen Lange <steffen@stelas.de>
-pkgname=slrn
-pkgver=1.0.3
-pkgrel=4
-pkgdesc="An open source text-based news client"
-url="http://www.slrn.org/"
-arch="" # fails to build due to missing libtermcap (slang)
-license="GPL"
-depends_dev=""
-makedepends="$depends_dev openssl-dev slang-dev ncurses-dev"
-subpackages="$pkgname-doc"
-source="http://jedsoft.org/releases/slrn/$pkgname-${pkgver}a.tar.bz2"
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
- ./configure --prefix=/usr --sysconfdir=/etc \
- --enable-setgid-code \
- --with-slrnpull --with-ssl \
- --enable-spoilers || return 1
- make || return 1
-}
-
-package() {
- cd "$srcdir/$pkgname-$pkgver"
- make -j1 DESTDIR="$pkgdir" install || return 1
- install -Dm644 doc/slrn.rc "$pkgdir"/etc/slrnrc
-}
-
-sha512sums="11cef2dfe41f441af15acc22fb675cf607e932f0dd6d4a998e51ecda05c9a50d7abf10a3e693ffc857ad77e09634f460404e4d5b289169e7bbffdaf5d6d565a3 slrn-1.0.3a.tar.bz2"
diff --git a/testing/slurm/APKBUILD b/testing/slurm/APKBUILD
index b08e54aceda..997602db7f0 100644
--- a/testing/slurm/APKBUILD
+++ b/testing/slurm/APKBUILD
@@ -1,38 +1,27 @@
# Contributor: prspkt <prspkt@protonmail.com>
# Maintainer: prspkt <prspkt@protonmail.com>
pkgname=slurm
-pkgver=0.4.3
+pkgver=0.4.4
pkgrel=0
pkgdesc="Yet another network load monitor"
url="https://github.com/mattthias/slurm"
arch="all"
options="!check" # no upstream/available test-suite
license="GPL-2.0-or-later"
-makedepends="cmake linux-headers ncurses-dev"
+makedepends="meson linux-headers ncurses-dev"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mattthias/slurm/archive/upstream/$pkgver.tar.gz
- fix-includes.patch"
-
+source="$pkgname-$pkgver.tar.gz::https://github.com/mattthias/slurm/archive/upstream/$pkgver.tar.gz"
builddir="$srcdir/$pkgname-upstream-$pkgver"
build() {
- cd "$builddir"
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
-
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_C_FLAGS="${CFLAGS} -Wno-aggressive-loop-optimizations" \
- ${CMAKE_CROSSOPTS}
- make
+ abuild-meson . output
+ meson compile -C output
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- install -Dm644 slurm.1 "$pkgdir"/usr/share/man/man1/slurm.1
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="de67d661fbad564f4a3a8f94f1209d466e11a8094b79c25e0beb1b2d07ad680fe2c6f832dc0f8c3a85f7f2d0d02363b4842cbca58ba9d30ca8d7b3133ecc64c9 slurm-0.4.3.tar.gz
-f6cf0d23c9b311b7b9b2384f00a751d091304f518caf8d4882bbf15c95ea5724e8e1c90b55f175d8781cd1edc917bf65ec09f8cf1c7665c2cb1412b0a5f8cba3 fix-includes.patch"
+sha512sums="
+5a54d004e18a27ead40140f0b5d1bf4db773d2d12a1d8358993944e0a51db8598353e330e114851b90125f09fd8d5ebfb50d2be362e85ad50e7c39ce6aa6bcc1 slurm-0.4.4.tar.gz
+"
diff --git a/testing/slurm/fix-includes.patch b/testing/slurm/fix-includes.patch
deleted file mode 100644
index 9e933ffc509..00000000000
--- a/testing/slurm/fix-includes.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/os.h
-+++ b/os.h
-@@ -177,7 +177,7 @@
- #elif defined (__linux__) /* L I N U X */
- #include <stdio.h>
- #include <sys/param.h>
--#include <sys/sysctl.h>
-+#include <linux/sysctl.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #include <unistd.h>
-@@ -195,8 +195,8 @@
- #include <netinet/in.h>
- #include <net/if.h>
- #include <arpa/inet.h>
--#include <net/ppp_defs.h>
--#include <net/if_ppp.h>
-+#include <linux/ppp_defs.h>
-+#include <linux/if_ppp.h>
- #elif defined (__Solaris__) /* S O L A R I S */
- #include <stdio.h>
- #define NO_CURSES_E 1
diff --git a/testing/smplxmpp/APKBUILD b/testing/smplxmpp/APKBUILD
new file mode 100644
index 00000000000..6c812c049b7
--- /dev/null
+++ b/testing/smplxmpp/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=smplxmpp
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="Simple XMPP command line client"
+url="https://codeberg.org/tropf/smplxmpp"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ argp-standalone
+ cmake
+ gloox-dev
+ gnutls-dev
+ libidn-dev
+ samurai
+ spdlog-dev
+ zlib-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/tropf/smplxmpp/archive/v$pkgver.tar.gz
+ argp.patch
+ fmt10.patch
+ "
+builddir="$srcdir/$pkgname"
+options="!check" # checks require an xmpp server
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+cafbdb164fe6ab1b75bfd2d8244a3a8785b44e7bc6b1c88d0db941d1e04a9f067bd10f0539245efec61fbf74ef057349d27c451f19acd8fbba5ad10a73aaf45d smplxmpp-0.9.3.tar.gz
+df1abad52e9845712dd4f3fbd8f333e73e46c5a3bc0721364d9672a865bf605ede946d7853c5051549f20d26611bd6383557243334cdee9c382fd0325d96102b argp.patch
+35f016dcc53dd0a6abcfaf332907b8f54b9cd21b5ecdfa4ee7740a724c9ada80a58a0fae9b342637332df2c8b2c58168d82e9ccd1d9c03e30ae8271043e75b7c fmt10.patch
+"
diff --git a/testing/smplxmpp/argp.patch b/testing/smplxmpp/argp.patch
new file mode 100644
index 00000000000..a6ab7ea7d1b
--- /dev/null
+++ b/testing/smplxmpp/argp.patch
@@ -0,0 +1,24 @@
+diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt
+index a0d7e5b..1829b6d 100644
+--- a/bin/CMakeLists.txt
++++ b/bin/CMakeLists.txt
+@@ -29,6 +29,7 @@ if (SMPLXMPP_BUILD_SMPLXMPP_NL)
+ target_compile_features(smplxmpp-nl PUBLIC cxx_std_11)
+
+ target_link_libraries(smplxmpp-nl PUBLIC
++ argp
+ smplxmpp_util
+ )
+
+diff --git a/cmake/smplxmpp_core.cmake b/cmake/smplxmpp_core.cmake
+index 2a7b16e..680bce7 100644
+--- a/cmake/smplxmpp_core.cmake
++++ b/cmake/smplxmpp_core.cmake
+@@ -22,6 +22,7 @@ target_compile_options(smplxmpp_core PRIVATE -Werror -Wall -Wextra)
+
+ target_link_libraries(smplxmpp_core PRIVATE "${SMPLXMPP_SPDLOG_LIBS}")
+ target_link_libraries(smplxmpp_core PUBLIC
++ argp
+ smplxmpp_util
+ gloox
+ )
diff --git a/testing/smplxmpp/fmt10.patch b/testing/smplxmpp/fmt10.patch
new file mode 100644
index 00000000000..4680680a1e5
--- /dev/null
+++ b/testing/smplxmpp/fmt10.patch
@@ -0,0 +1,43 @@
+--- a/src/chat.cc
++++ b/src/chat.cc
+@@ -60,7 +60,7 @@
+ }
+
+ void SmplXmppHandlerChat::handleMessage(const Message& msg, MessageSession* session) {
+- spdlog::trace("incoming message (type: {}) from '{}' (subject: '{}', thread: '{}'): '{}'", msg.subtype(), msg.from().full(), msg.subject(), msg.thread(), msg.body());
++ spdlog::trace("incoming message (type: {}) from '{}' (subject: '{}', thread: '{}'): '{}'", fmt::underlying(msg.subtype()), msg.from().full(), msg.subject(), msg.thread(), msg.body());
+
+ if (teardownHandshakeStarted()) {
+ spdlog::debug("received msg after shutdown has been initiated. ignoring.");
+@@ -116,7 +116,7 @@
+ }
+
+ void SmplXmppHandlerChat::handleMessageEvent(const JID& from, MessageEventType event) {
+- spdlog::trace("received message event: {} from: '{}'", event, from.full());
++ spdlog::trace("received message event: {} from: '{}'", fmt::underlying(event), from.full());
+ }
+
+ void SmplXmppHandlerChat::handleMessageSession(MessageSession* session) {
+@@ -165,6 +165,6 @@
+
+ void SmplXmppHandlerChat::sendSingleMsg(const MsgPrototype& msg) {
+ Message msgToSend(Message::MessageType::Chat, JID(msg.jid), msg.body);
+- spdlog::trace("sending message to '{}' (type: '{}'): '{}'", msg.jid, msgToSend.subtype(), msg.body);
++ spdlog::trace("sending message to '{}' (type: '{}'): '{}'", msg.jid, fmt::underlying(msgToSend.subtype()), msg.body);
+ j.send(msgToSend);
+ }
+--- a/src/xmpp.cc
++++ b/src/xmpp.cc
+@@ -231,9 +231,9 @@
+
+ void SmplXmppHandlerBase::handleLog(LogLevel level, LogArea area, const std::string& message) {
+ switch (level) {
+- case LogLevel::LogLevelDebug: spdlog::trace("[area {}] {}", area, message); break;
+- case LogLevel::LogLevelWarning: spdlog::warn("[area {}] {}", area, message); break;
+- case LogLevel::LogLevelError: spdlog::error("[area {}] {}", area, message); break;
++ case LogLevel::LogLevelDebug: spdlog::trace("[area {}] {}", fmt::underlying(area), message); break;
++ case LogLevel::LogLevelWarning: spdlog::warn("[area {}] {}", fmt::underlying(area), message); break;
++ case LogLevel::LogLevelError: spdlog::error("[area {}] {}", fmt::underlying(area), message); break;
+ }
+ }
+
diff --git a/testing/snac/APKBUILD b/testing/snac/APKBUILD
new file mode 100644
index 00000000000..174f6b2ba79
--- /dev/null
+++ b/testing/snac/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=snac
+pkgver=2.51
+pkgrel=0
+pkgdesc="Simple, minimalistic ActivityPub instance written in portable C"
+url="https://codeberg.org/grunfink/snac2"
+arch="all"
+license="MIT"
+makedepends="curl-dev openssl-dev"
+install="$pkgname.pre-install"
+pkgusers="snac"
+pkggroups="snac"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/grunfink/snac2/archive/$pkgver.tar.gz
+ snac.initd
+ "
+builddir="$srcdir/snac2"
+options="!check" # no test suite
+
+build() {
+ make
+}
+
+package() {
+ make install \
+ PREFIX="$pkgdir"/usr \
+ PREFIX_MAN="$pkgdir"/usr/share/man
+
+ install -dm750 -o snac -g snac "$pkgdir"/var/lib/snac
+
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+
+ install -Dm755 "$srcdir"/snac.initd "$pkgdir"/etc/init.d/snac
+}
+
+sha512sums="
+c1c755ab91999b34f5ffe7606796ca1ad8453b439aadf457611642c73c653e41d6bf4462185673aa991d3ec1be1f10da80b077d0384bb7a0e5571aa98e90461e snac-2.51.tar.gz
+8451eb37e5135b926a1a36b7f69d63cb76aa617ca3f9b9167f2284223582dcf66723ee67c51c6abc2d1605c41678d26f67ec6cb1bf920c61379dbf63f7852e1a snac.initd
+"
diff --git a/testing/snac/snac.initd b/testing/snac/snac.initd
new file mode 100644
index 00000000000..7b4f3684710
--- /dev/null
+++ b/testing/snac/snac.initd
@@ -0,0 +1,83 @@
+#!/sbin/openrc-run
+
+name=snac
+description="Snac is an ActivityPub server written in portable C"
+
+: ${SNAC_DATA:="/var/lib/snac/data"}
+
+extra_stopped_commands="setup purge"
+extra_commands="adduser deluser resetpwd"
+description_setup="Setup the database at ${SNAC_DATA}"
+description_purge="Purge old data from ${SNAC_DATA}"
+description_adduser="Add a new user to ${SNAC_DATA}"
+description_deluser="Delete a user from ${SNAC_DATA}"
+description_resetpwd="Reset password of user in ${SNAC_DATA}"
+
+command="/usr/bin/snac"
+command_args="httpd ${SNAC_DATA}"
+command_background="yes"
+command_user="snac:snac"
+pidfile="/run/${RC_SVCNAME}.pid"
+error_log="/var/log/snac.log"
+
+depend() {
+ need localmount net
+ after firewall
+}
+
+ensure_db_exists() {
+ if [ ! -f "${SNAC_DATA}/server.json" ]; then
+ setup || return 1
+ fi
+
+ return 0
+}
+
+start_pre() {
+ ensure_db_exists || return 1
+
+ checkpath -f -m 0640 -o "$command_user" "$error_log"
+ checkpath -d -m 0750 -o "$command_user" "${SNAC_DATA}"
+}
+
+setup() {
+ snac_exec init
+}
+
+purge() {
+ ensure_db_exists || return 1
+
+ ebegin "Purging old data from ${SNAC_DATA}"
+ snac_exec purge
+ eend $?
+}
+
+adduser() {
+ ensure_db_exists || return 1
+
+ snac_exec adduser
+}
+
+deluser() {
+ ensure_db_exists || return 1
+
+ read -p "Username: " username
+
+ snac_exec deluser $username
+}
+
+resetpwd() {
+ ensure_db_exists || return 1
+
+ read -p "Username: " username
+
+ snac_exec resetpwd $username
+}
+
+snac_exec() {
+ local subcmd="$1"
+ shift
+
+ start-stop-daemon --exec "$command" --user "$command_user" \
+ -- $subcmd "${SNAC_DATA}" $*
+}
diff --git a/testing/snac/snac.pre-install b/testing/snac/snac.pre-install
new file mode 100644
index 00000000000..74884f92567
--- /dev/null
+++ b/testing/snac/snac.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S snac 2>/dev/null
+adduser -S -D -H \
+ -h /var/lib/snac \
+ -s /sbin/nologin \
+ -G snac \
+ -g "Snac minimalistic ActivityPub instance" \
+ snac 2>/dev/null
+
+exit 0
diff --git a/testing/snapper/APKBUILD b/testing/snapper/APKBUILD
index ed545b99c76..520fd9f1716 100644
--- a/testing/snapper/APKBUILD
+++ b/testing/snapper/APKBUILD
@@ -1,38 +1,56 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=snapper
-pkgver=0.8.9
-pkgrel=0
+pkgver=0.10.7
+pkgrel=1
pkgdesc="Manage filesystem snapshots and allow undo of system modifications"
url="http://snapper.io"
arch="all"
license="GPL-2.0-or-later"
-options="!check" # 5 tests failing - https://github.com/openSUSE/snapper/issues/526
depends="dbus"
-makedepends="acl-dev autoconf automake bash boost-dev
- boost-thread bsd-compat-headers btrfs-progs-dev
- dbus-dev docbook-xsl e2fsprogs-dev gettext-dev
- libtool libxml2-dev libxslt lvm2-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+makedepends="
+ acl-dev
+ autoconf
+ automake
+ boost-dev
+ bsd-compat-headers
+ btrfs-progs-dev
+ dbus-dev
+ docbook-xsl
+ e2fsprogs-dev
+ gettext-dev
+ json-c-dev
+ libtool
+ libxml2-dev
+ libxslt
+ lvm2-dev
+ ncurses-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-lang
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
source="$pkgname-$pkgver.tar.gz::https://github.com/openSUSE/snapper/archive/v$pkgver.tar.gz
- musl-posix.patch
- musl-mktime.patch
- musl-stdout_stderr.patch
- musl-_nl_msg_cat_cntr.patch
- musl-u_int_type.patch
- remove-systemd.patch
+ miss-tinfo-link-to-ncurses.patch
+ drift-file-path.patch
+ skip-locale-tests.patch
+ statvfs64.patch
"
prepare() {
default_prepare
- autoreconf -fi
+
# rename cron scripts
sed -i -e 's@suse.de-@@g' scripts/Makefile.am
# copy cron scripts to /etc/periodic/* instead of /etc/cron.*
sed -i -e 's/cron\./periodic\//g' scripts/Makefile.am
# fix config location in cron scripts
- sed -i -e 's@/etc/sysconfig/@/etc/conf.d/@g' scripts/snapper-daily
- sed -i -e 's@/etc/sysconfig/@/etc/conf.d/@g' scripts/snapper-hourly
+ sed -i -e 's@/etc/sysconfig/@/etc/snapper/@g' scripts/snapper-daily
+ sed -i -e 's@/etc/sysconfig/@/etc/snapper/@g' scripts/snapper-hourly
+ autoreconf -fvi
}
build() {
@@ -43,7 +61,7 @@ build() {
--prefix=/usr \
--sbindir=/usr/sbin \
--disable-silent-rules \
- --with-conf=/etc/conf.d \
+ --with-conf=/etc/snapper \
--disable-pam \
--disable-zypp \
--disable-ext4 \
@@ -57,14 +75,13 @@ check() {
package() {
make DESTDIR="$pkgdir" install
-
- install -Dm644 data/sysconfig.snapper "$pkgdir"/etc/conf.d/$pkgname
+ install -Dm644 data/sysconfig.snapper "$pkgdir"/etc/snapper/$pkgname
}
-sha512sums="5a3e45839cd4b5e621425df2e1214ca5014a391d17b489fdf7d315e8ac9959741c1f6fcf7adf644276ed11488bc0f88fcfa563198bd78824867d267df204659d snapper-0.8.9.tar.gz
-a9eec8105e94c4eb097aa293754b0de45420a297ad845933a7be66b3ff49af409dd427e9bd1de569c49982c619211d1e90183ed8bf8550acb0fa9d83176e22bf musl-posix.patch
-ca59aaa4411abf51136b25ee8dd57fae6fc01ce21c36ac79811b4ed8b4352c5b396ce42b7c4c49d8679a9bef8375fe48b65c1ff84bbf1f192583f3b93dce1bd8 musl-mktime.patch
-5baf722996706146b62fd0a0d9b321496fb122e700af2d3dfd8272de2678f29c79bc2b1a03634b04aab3f226632dfdebc5674d3128737e85bcc71461e951d95b musl-stdout_stderr.patch
-6f3324700cc697b29b2fe14e42eb765b4474bf7e582d8ea53122fe66e128d17584489c8e2adbfecc8aac37c683a9d4dc2a821e3ea0143334cd8b899164ba708c musl-_nl_msg_cat_cntr.patch
-36bc62b09f1795c955de603e6faa92b640b772182f00e1c192edada9b327a7433a6541d62f2d77cf1c1c0f42958409d66f987f03db75a1140b0d17b77f666bc8 musl-u_int_type.patch
-4c843d204c5da81686d5b8b99708ec73dd504969cbd9189feeb3f69db95f15b96d242c010ad48afa7d5ca76ecbe3a0c806bc1af9ffb70a7945201fd12f3b3d3b remove-systemd.patch"
+sha512sums="
+bf098c941735b60554ff0711fa43b30ef3634e01178f5ee8ad44c65b757c3366bd5bf568cef3a787b2ddcc2fc63090056109250480e6bd360ebf27a8343373b8 snapper-0.10.7.tar.gz
+3d264f7f9156342d5bad2ac78db9c8a30ea1ac25648245631a47d1495bb6610c6b39c28a5013741063df3c08f459388c0467caaedde5ad7cebb433eb432b7a70 miss-tinfo-link-to-ncurses.patch
+c2470da8a5d62a37babdacd361051bae8fb3e1be157cb7eec1563a40825d41702f6f10bb619ffcab2ea8d7407405a543b0c47997c70a744c20cc3135c0532c1f drift-file-path.patch
+16f9991b0688c959977876e39e8ed9214627d3b3eacdf01a8aaef9540fc8add7d7c4f50abc4225183495acb161a4c6e5f6ee3790bf685fc845a6782647269a53 skip-locale-tests.patch
+dc77db919fc4bd64929e784d09c4a6ed50530b6a88b3a26f4ea341f09e71dbd74e07d1e9fea37f85305d0f251a5c302e1dbb700084d04a16dc2e7687ecc83815 statvfs64.patch
+"
diff --git a/testing/snapper/drift-file-path.patch b/testing/snapper/drift-file-path.patch
new file mode 100644
index 00000000000..761a0d80f28
--- /dev/null
+++ b/testing/snapper/drift-file-path.patch
@@ -0,0 +1,10 @@
+diff --git a/data/base.txt b/data/base.txt
+index c75fde9..e1d5303 100644
+--- a/data/base.txt
++++ b/data/base.txt
+@@ -2,4 +2,4 @@
+ /etc/mtab
+ /var/lib/logrotate.status
+ /var/lib/misc/random-seed
+-/var/lib/ntp/drift/ntp.drift
++/var/lib/ntp/ntp.drift
diff --git a/testing/snapper/miss-tinfo-link-to-ncurses.patch b/testing/snapper/miss-tinfo-link-to-ncurses.patch
new file mode 100644
index 00000000000..821700803e6
--- /dev/null
+++ b/testing/snapper/miss-tinfo-link-to-ncurses.patch
@@ -0,0 +1,11 @@
+diff --git a/client/utils/Makefile.am b/client/utils/Makefile.am
+index c55fc4a..21aeaae 100644
+--- a/client/utils/Makefile.am
++++ b/client/utils/Makefile.am
+@@ -18,5 +18,5 @@ libutils_la_SOURCES = \
+ CsvFormatter.cc CsvFormatter.h \
+ JsonFormatter.cc JsonFormatter.h
+
+-libutils_la_LIBADD = ../../snapper/libsnapper.la -ltinfo
++libutils_la_LIBADD = ../../snapper/libsnapper.la -lncurses
+
diff --git a/testing/snapper/musl-_nl_msg_cat_cntr.patch b/testing/snapper/musl-_nl_msg_cat_cntr.patch
deleted file mode 100644
index 9c50becaaef..00000000000
--- a/testing/snapper/musl-_nl_msg_cat_cntr.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-There is no _nl_msg_cat_cntr in musl libc and optimizations
-based upon its unchanged value are not possible.
-
---- a/snapper/Regex.cc
-+++ b/snapper/Regex.cc
-@@ -22,7 +22,9 @@
- #include <stdexcept>
- #include "snapper/Regex.h"
-
-+#if defined(__GLIBC__)
- extern int _nl_msg_cat_cntr;
-+#endif
-
-
- namespace snapper
-@@ -40,7 +42,9 @@
- regerror(errcode, &rx, error, esize);
- throw std::runtime_error(string("Regex compilation error: ") + error);
- }
-+#if defined(__GLIBC__)
- my_nl_msg_cat_cntr = _nl_msg_cat_cntr;
-+#endif
- rm = new regmatch_t[nm];
- }
-
-@@ -55,11 +59,15 @@
- bool
- Regex::match (const string& str, int eflags) const
- {
-+#if defined(__GLIBC__)
- if (my_nl_msg_cat_cntr != _nl_msg_cat_cntr) {
-+#endif
- regfree (&rx);
- regcomp (&rx, pattern.c_str (), cflags);
-+#if defined(__GLIBC__)
- my_nl_msg_cat_cntr = _nl_msg_cat_cntr;
- }
-+#endif
-
- last_str = str;
-
diff --git a/testing/snapper/musl-mktime.patch b/testing/snapper/musl-mktime.patch
deleted file mode 100644
index b4351f4fc81..00000000000
--- a/testing/snapper/musl-mktime.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-According to https://ftp.gnu.org/old-gnu/Manuals/glibc-2.2.3/html_chapter/libc_21.html
-timelocal(2) is functionally identical to mktime(2), but more
-mnemonically named. There is no timelocal(2) defined in musl libc.
-
---- a/snapper/AppUtil.cc
-+++ b/snapper/AppUtil.cc
-@@ -279,10 +279,10 @@
- {
- struct tm s;
- memset(&s, 0, sizeof(s));
-- const char* p = strptime(str.c_str(), "%F %T", &s);
-+ const char* p = strptime(str.c_str(), "%Y-%m-%d %T", &s);
- if (!p || *p != '\0')
- return (time_t)(-1);
-- return utc ? timegm(&s) : timelocal(&s);
-+ return utc ? timegm(&s) : mktime(&s);
- }
-
-
diff --git a/testing/snapper/musl-posix.patch b/testing/snapper/musl-posix.patch
deleted file mode 100644
index 132d489c6db..00000000000
--- a/testing/snapper/musl-posix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/snapper/AppUtil.cc b/snapper/AppUtil.cc
-index 052235d..ab81983 100644
---- a/snapper/AppUtil.cc
-+++ b/snapper/AppUtil.cc
-@@ -223,16 +223,10 @@
- string
- stringerror(int errnum)
- {
--#if (_POSIX_C_SOURCE >= 200112L) && ! _GNU_SOURCE
- char buf1[100];
- if (strerror_r(errnum, buf1, sizeof(buf1) - 1) == 0)
- return string(buf1);
- return string("strerror failed");
--#else
-- char buf1[100];
-- const char* buf2 = strerror_r(errnum, buf1, sizeof(buf1) - 1);
-- return string(buf2);
--#endif
- }
-
-
diff --git a/testing/snapper/musl-stdout_stderr.patch b/testing/snapper/musl-stdout_stderr.patch
deleted file mode 100644
index 1ed34b53104..00000000000
--- a/testing/snapper/musl-stdout_stderr.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-In musl libc stdout and stderr are macros, thus we need to
-undefine them to be able to use SystemCmd::stdout() and ::stderr()
-members without renaming them - which may be a better choice.
-
---- a/snapper/SystemCmd.h 2015-08-30 10:59:53.740184303 +0200
-+++ b/snapper/SystemCmd.h 2015-08-30 11:02:34.229187677 +0200
-@@ -32,6 +32,8 @@
- #include <list>
- #include <boost/noncopyable.hpp>
-
-+#undef stdout
-+#undef stderr
-
- namespace snapper
- {
diff --git a/testing/snapper/musl-u_int_type.patch b/testing/snapper/musl-u_int_type.patch
deleted file mode 100644
index 1be4070f8d7..00000000000
--- a/testing/snapper/musl-u_int_type.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 7ddd58ee5e6b7c3a8df3086ff5a6d17d19362761 Mon Sep 17 00:00:00 2001
-From: Nathan Owens <ndowens04@gmail.com>
-Date: Wed, 18 Dec 2019 18:35:55 -0600
-Subject: [PATCH] musl-_u_int-types
-
-Signed-off-by: Nathan Owens <ndowens04@gmail.com>
----
---- a/client/utils/JsonFormatter.h
-+++ b/client/utils/JsonFormatter.h
-@@ -25,6 +25,9 @@
- #include <string>
- #include <vector>
- #include <utility>
-+#ifndef __GLIBC__
-+#include <sys/types.h>
-+#endif
-
- namespace snapper
- {
diff --git a/testing/snapper/remove-systemd.patch b/testing/snapper/remove-systemd.patch
deleted file mode 100644
index 9751bd5f915..00000000000
--- a/testing/snapper/remove-systemd.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/configure.ac
-@@ -123,6 +119,10 @@ AC_ARG_ENABLE([zypp], AC_HELP_STRING([--disable-zypp],[Disable zypp plugin suppo
- [with_zypp=$enableval],[with_zypp=yes])
- AM_CONDITIONAL(HAVE_ZYPP, [test "x$with_zypp" = "xyes"])
-
-+AC_ARG_ENABLE([systemd], AC_HELP_STRING([--disable-systemd],[Disable systemd support]),
-+ [enable_systemd=$enableval],[enable_systemd=yes])
-+AM_CONDITIONAL(ENABLE_SYSTEMD, [test "x$enable_systemd" = "xyes"])
-+
- AC_CHECK_LIB(btrfs, btrfs_read_and_process_send_stream)
- AC_CHECK_HEADERS([btrfs/version.h])
-
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -21,12 +21,14 @@ install-data-local:
- install -D -m 644 org.opensuse.Snapper.conf $(DESTDIR)/etc/dbus-1/system.d/org.opensuse.Snapper.conf
- install -D -m 644 org.opensuse.Snapper.service $(DESTDIR)/usr/share/dbus-1/system-services/org.opensuse.Snapper.service
-
-+if ENABLE_SYSTEMD
- install -D -m 644 timeline.service $(DESTDIR)/usr/lib/systemd/system/snapper-timeline.service
- install -D -m 644 timeline.timer $(DESTDIR)/usr/lib/systemd/system/snapper-timeline.timer
- install -D -m 644 cleanup.service $(DESTDIR)/usr/lib/systemd/system/snapper-cleanup.service
- install -D -m 644 cleanup.timer $(DESTDIR)/usr/lib/systemd/system/snapper-cleanup.timer
- install -D -m 644 boot.service $(DESTDIR)/usr/lib/systemd/system/snapper-boot.service
- install -D -m 644 boot.timer $(DESTDIR)/usr/lib/systemd/system/snapper-boot.timer
-+endif
-
- if HAVE_ZYPP
- install -D -m 644 zypp-plugin.conf $(DESTDIR)/etc/snapper/zypp-plugin.conf
diff --git a/testing/snapper/skip-locale-tests.patch b/testing/snapper/skip-locale-tests.patch
new file mode 100644
index 00000000000..273b1890e00
--- /dev/null
+++ b/testing/snapper/skip-locale-tests.patch
@@ -0,0 +1,13 @@
+diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
+index ccb84d3..5aaecff 100644
+--- a/testsuite/Makefile.am
++++ b/testsuite/Makefile.am
+@@ -7,7 +7,7 @@ AM_CPPFLAGS = -I$(top_srcdir) $(DBUS_CFLAGS)
+ LDADD = ../snapper/libsnapper.la ../dbus/libdbus.la -lboost_unit_test_framework
+
+ check_PROGRAMS = sysconfig-get1.test dirname1.test basename1.test \
+- equal-date.test dbus-escape.test cmp-lt.test humanstring.test uuid.test \
++ equal-date.test dbus-escape.test uuid.test \
+ table.test table-formatter.test csv-formatter.test json-formatter.test \
+ getopts.test scan-datetime.test root-prefix.test range.test limit.test
+
diff --git a/testing/snapper/statvfs64.patch b/testing/snapper/statvfs64.patch
new file mode 100644
index 00000000000..4f69e869ce8
--- /dev/null
+++ b/testing/snapper/statvfs64.patch
@@ -0,0 +1,15 @@
+--- a/snapper/FileUtils.cc
++++ b/snapper/FileUtils.cc
+@@ -387,9 +387,9 @@
+ std::pair<unsigned long long, unsigned long long>
+ SDir::statvfs() const
+ {
+- struct statvfs64 fsbuf;
+- if (fstatvfs64(dirfd, &fsbuf) != 0)
+- SN_THROW(IOErrorException(sformat("statvfs64 failed path:%s errno:%d (%s)", base_path.c_str(),
++ struct statvfs fsbuf;
++ if (fstatvfs(dirfd, &fsbuf) != 0)
++ SN_THROW(IOErrorException(sformat("statvfs failed path:%s errno:%d (%s)", base_path.c_str(),
+ errno, stringerror(errno).c_str())));
+
+ // f_bavail is used (not f_bfree) since df seems to do the
diff --git a/testing/snapraid/APKBUILD b/testing/snapraid/APKBUILD
index c226477ae0b..388e7e17393 100644
--- a/testing/snapraid/APKBUILD
+++ b/testing/snapraid/APKBUILD
@@ -1,15 +1,19 @@
# Contributor: Nathan Caldwell <saintdev@gmail.com>
# Maintainer: Nathan Caldwell <saintdev@gmail.com>
pkgname=snapraid
-pkgver=11.4
+pkgver=12.3
pkgrel=0
pkgdesc="A backup program for disk arrays"
-url="http://www.snapraid.it"
+url="https://www.snapraid.it"
arch="all !s390x" # tests fails on s390x
license="GPL-3.0-only"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/amadvance/snapraid/releases/download/v$pkgver/snapraid-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -30,4 +34,4 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="d9d5d48f6f996f2c1fbec2f84219b007ac28828d54e6b8614d05ab87f717b3498333ec950e861060c1278993f4971af2435cf8f268c0f1fb403c279d00a96b92 snapraid-11.4.tar.gz"
+sha512sums="c1e364326354940abdb27c7d7528f8d2d324bfc926d134be5a7046b1e3ada7703c7c9e3bec3ba4120dcd717e6cb325f2cce4d9387576add4781f6122537a7f1b snapraid-12.3.tar.gz"
diff --git a/testing/sndfile-tools/APKBUILD b/testing/sndfile-tools/APKBUILD
new file mode 100644
index 00000000000..4662369b681
--- /dev/null
+++ b/testing/sndfile-tools/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer:
+pkgname=sndfile-tools
+pkgver=1.5
+pkgrel=1
+pkgdesc="Collection of tools to do interesting things with sound files"
+url="https://libsndfile.github.io/sndfile-tools/"
+arch="all"
+license="GPL-2.0-or-later OR GPL-3.0-or-later"
+makedepends="
+ cairo-dev
+ fftw-dev
+ jack-dev
+ libsamplerate-dev
+ libsndfile-dev
+ "
+checkdepends="bash"
+subpackages="$pkgname-doc"
+source="https://github.com/libsndfile/sndfile-tools/releases/download/$pkgver/sndfile-tools-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+04926a6c489634762efaa787e468ab653990762d5b96ba3cdfca595102c1d5eeb86411c9010d5640b1b3ec2b38d8d9d434fb549c52446e4b88d5b2a1d06a2bc6 sndfile-tools-1.5.tar.bz2
+"
diff --git a/testing/snes9x/APKBUILD b/testing/snes9x/APKBUILD
deleted file mode 100644
index 757a74c2aa6..00000000000
--- a/testing/snes9x/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=snes9x
-pkgver=1.60
-pkgrel=1
-pkgdesc="Super NES Emulator"
-options="!check" # No testsuite
-url="http://www.snes9x.com"
-arch="all"
-license="custom"
-makedepends="
- meson
- glib-dev
- sdl2-dev
- gtk+3.0-dev
- libxrandr-dev
- libepoxy-dev
- wayland-dev
- libxv-dev
- portaudio-dev
- alsa-lib-dev
- libpng-dev
- minizip-dev
- zlib-dev
- "
-subpackages="$pkgname-lang"
-source="$pkgname-$pkgver.tar.gz::https://github.com/snes9xgit/snes9x/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver/gtk"
-
-build() {
- meson \
- --prefix=/usr \
- --buildtype=plain \
- -Dopengl=true \
- -Dgtk3=true \
- -Dpulseaudio=false \
- . output
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
- ln -s snes9x-gtk "$pkgdir"/usr/bin/snes9x
-}
-
-sha512sums="840b006a8fbd479fd5ceb2d94af4ef6470c5e27a3e6c8ddb0dffc8d3e51f465669144cd428bfce28b2ed4f68e70d8f252f2d8a2cae602ba797791d7e483c14c9 snes9x-1.60.tar.gz"
diff --git a/testing/snore/APKBUILD b/testing/snore/APKBUILD
new file mode 100644
index 00000000000..5e20367e157
--- /dev/null
+++ b/testing/snore/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=snore
+pkgver=0.3.1
+pkgrel=0
+pkgdesc="sleep with feedback"
+url="https://github.com/bitsmanent/snore"
+arch="all"
+license="MIT"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/bitsmanent/snore/archive/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ make PREFIX=/usr
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+c48db69d96ead044a48d9e6aefc01986b6d826e5bc6a84426680d6d2086656692b647fbbe25569fd2fe01b032a1a368515ec6a001284f58d2be4ad69a520b397 snore-0.3.1.tar.gz
+"
diff --git a/testing/snowflake/APKBUILD b/testing/snowflake/APKBUILD
new file mode 100644
index 00000000000..6ceee3361fd
--- /dev/null
+++ b/testing/snowflake/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=snowflake
+pkgver=2.9.2
+pkgrel=1
+pkgdesc="Pluggable Transport for Tor using WebRTC, inspired by Flashproxy"
+url="https://snowflake.torproject.org/"
+license="BSD-3-Clause"
+arch="all !riscv64" # ftbfs
+makedepends="go"
+options="!check" # no test files
+subpackages="$pkgname-doc"
+source="https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/archive/v$pkgver/snowflake-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ cd "$builddir"/client
+ go build -v .
+
+ cd "$builddir"/proxy
+ go build -v .
+}
+
+package() {
+ install -Dm0755 client/client "$pkgdir"/usr/bin/"$pkgname"-client
+ install -Dm0755 proxy/proxy "$pkgdir"/usr/bin/"$pkgname"-proxy
+ install -Dm0644 doc/snowflake-*.1 -t "$pkgdir"/usr/share/man/man1
+}
+
+sha512sums="
+bfae8be9f7696c5a77129b49e3f874b32ddb62ba82becaa805a9ad94c85b90494baab084f8df133e8d8bbdc21b2285d91df0f72ce1c988632a778ccbf77d1793 snowflake-v2.9.2.tar.gz
+"
diff --git a/testing/so/APKBUILD b/testing/so/APKBUILD
new file mode 100644
index 00000000000..14efe263c86
--- /dev/null
+++ b/testing/so/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=so
+pkgver=0.4.9
+pkgrel=1
+pkgdesc="Terminal interface for Stackoverflow"
+url="https://github.com/samtay/so"
+arch="all"
+license="MIT"
+makedepends="cargo openssl-dev cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/samtay/so/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/so -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+8dbf9841af0198ece0d5bb7cbbee7c4bf985c02c4c0ce6f594d1e3e0e7b39e68db43ad3d2dd2fa0d390098085763e75949cefbc027e7f49271db8dc52b9efa72 so-0.4.9.tar.gz
+"
diff --git a/testing/soapy-bladerf/APKBUILD b/testing/soapy-bladerf/APKBUILD
new file mode 100644
index 00000000000..6d7acbd6581
--- /dev/null
+++ b/testing/soapy-bladerf/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=soapy-bladerf
+pkgver=0.4.1
+pkgrel=0
+pkgdesc="Soapy SDR plugin for the Blade RF"
+url="https://github.com/pothosware/SoapyBladeRF"
+arch="all"
+license="LGPL-2.1-only"
+makedepends="cmake samurai soapy-sdr-dev bladerf-dev"
+source="https://github.com/pothosware/SoapyBladeRF/archive/refs/tags/soapy-bladerf-$pkgver/soapy-bladerf-$pkgver.tar.gz"
+builddir="$srcdir/SoapyBladeRF-soapy-bladerf-$pkgver"
+options="!check" # needs hardware to test
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+73cd5c56b6f2faa37fb8eb8aca359061fd2da94fb081c1eb60f61894385f5f0175c9e3955835dc38478e513b0fd5a15fd100123be89e4ad62a0b7134557ab73e soapy-bladerf-0.4.1.tar.gz
+"
diff --git a/testing/soapy-hackrf/APKBUILD b/testing/soapy-hackrf/APKBUILD
new file mode 100644
index 00000000000..55984083bd6
--- /dev/null
+++ b/testing/soapy-hackrf/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer:
+pkgname=soapy-hackrf
+pkgver=0.3.4
+pkgrel=2
+pkgdesc="SoapySDR HackRF module"
+url="https://github.com/pothosware/SoapyHackRF"
+options="!check" # no tests
+arch="all"
+license="BSL-1.0"
+makedepends="
+ cmake
+ hackrf-dev
+ samurai
+ soapy-sdr-dev
+ "
+source="https://github.com/pothosware/SoapyHackRF/archive/refs/tags/soapy-hackrf-$pkgver.tar.gz"
+builddir="$srcdir/SoapyHackRF-soapy-hackrf-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+950fc0d2d9b1a5946605d0f7f934a3d92facb6878251e8d9a673384db85e1b776ab27fd3499db11d482d599f78e705b9394b5e1238935d297252ab5acc8fb935 soapy-hackrf-0.3.4.tar.gz
+"
diff --git a/testing/soapy-sdr-remote/APKBUILD b/testing/soapy-sdr-remote/APKBUILD
new file mode 100644
index 00000000000..f77daf5be18
--- /dev/null
+++ b/testing/soapy-sdr-remote/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer:
+pkgname=soapy-sdr-remote
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="Remote control for Soapy SDR"
+url="https://github.com/pothosware/SoapyRemote"
+options="!check" # no tests
+arch="all"
+license="BSL-1.0"
+depends="avahi"
+makedepends="
+ avahi-dev
+ cmake
+ samurai
+ soapy-sdr-dev
+ "
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/pothosware/SoapyRemote/archive/refs/tags/soapy-remote-$pkgver.tar.gz
+ soapy-sdr-remote.initd
+ "
+builddir="$srcdir/SoapyRemote-soapy-remote-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -rf "$pkgdir"/usr/lib/systemd
+
+ install -Dm755 "$srcdir"/soapy-sdr-remote.initd \
+ "$pkgdir"/etc/init.d/soapy-sdr-remote
+}
+
+sha512sums="
+55841f248c796a870a81a508cec85962ed821c2abd40438eaee07135cb6dde0bd93e84a3ff709dfeaf26f7f79717197c80c3aad378d62b3e4b232f60c46b0151 soapy-remote-0.5.2.tar.gz
+455839c05ce322d1120244447feb340cbc820fbe8789c0883f2dcac3b4b3f77065438b01d4daecb7b111576317b909de568af7be7bd4f7353b613c33e13008e5 soapy-sdr-remote.initd
+"
diff --git a/testing/soapy-sdr-remote/soapy-sdr-remote.initd b/testing/soapy-sdr-remote/soapy-sdr-remote.initd
new file mode 100644
index 00000000000..1956f481838
--- /dev/null
+++ b/testing/soapy-sdr-remote/soapy-sdr-remote.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="soapy-sdr-remote"
+description="SoapyRemote network server"
+
+command="/usr/bin/SoapySDRServer"
+command_args="--bind"
+
+output_log="/var/log/soapy-sdr-remote.log"
+
+depend() {
+ need avahi-daemon net localmount
+ after firewall
+}
diff --git a/testing/soju/APKBUILD b/testing/soju/APKBUILD
new file mode 100644
index 00000000000..63c9b595a73
--- /dev/null
+++ b/testing/soju/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=soju
+pkgver=0.7.0
+pkgrel=2
+pkgdesc="User-friendly IRC bouncer"
+url="https://soju.im/"
+license="AGPL-3.0"
+arch="all"
+pkgusers="$pkgname"
+pkggroups="$pkgname"
+install="$pkgname.pre-install"
+depends="ca-certificates"
+makedepends="go scdoc sqlite-dev"
+subpackages="$pkgname-openrc $pkgname-doc $pkgname-utils"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~emersion/soju/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ config.patch
+ makefile.patch
+ "
+builddir="$srcdir/$pkgname-v$pkgver"
+
+_utils="migrate-db migrate-logs znc-import"
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make GOFLAGS="$GOFLAGS"
+
+ for util in $_utils; do
+ cd "$builddir"/contrib/$util
+ go build -o "$builddir"/
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ # add additional docs
+ install -Dm644 -t "$pkgdir"/usr/share/doc/$pkgname doc/*.md
+
+ for util in $_utils; do
+ install -Dm755 $util "$pkgdir"/usr/bin/soju-$util
+ done
+}
+
+utils() {
+ pkgdesc="Utilities for soju"
+
+ for util in $_utils; do
+ amove usr/bin/soju-$util
+ done
+}
+
+sha512sums="
+970563b873d872a99eb2f5965d6ef8f138b3f608b484173ad68a97181777199a7427b4439a2ffa2431165fd03cfe422e86257a68f937d8a24368ca239d9666da soju-0.7.0.tar.gz
+1f09a8d7eea73d5d81cdcad8a3a78fe30fc19742c13042ad2ee0448edf4108b2daf7da6fbbd4141b23fe1abd9cb931303efa6440d281a954e5d6d4956a291f7e soju.initd
+2f09bdb2efd0cd2f5f138dac7d5a4d02cfee6c46fc103c30fa70a238f322617b53ffd4b6ce6d0a8410375dd7229a68dcd6318e2b9651c5b559fff70fbca7adb3 config.patch
+b647576f50ab03a90d9ab9062d97ecf050fd6e7eeba77200e05e4577733886a4ca85c7cef68d476fc611bfca41f01eecca7d3f8ce8d03431872ccb78ea2f64db makefile.patch
+"
diff --git a/testing/soju/config.patch b/testing/soju/config.patch
new file mode 100644
index 00000000000..50459d72ed9
--- /dev/null
+++ b/testing/soju/config.patch
@@ -0,0 +1,11 @@
+Add friendly comment to the config file
+
+diff --git a/config.in b/config.in
+index e75ef07..2278fcf 100644
+--- a/config.in
++++ b/config.in
+@@ -1,3 +1,4 @@
++# See soju(1) for supported directives
+ db sqlite3 /var/lib/soju/main.db
+ message-store fs /var/lib/soju/logs/
+ listen ircs://
diff --git a/testing/soju/makefile.patch b/testing/soju/makefile.patch
new file mode 100644
index 00000000000..f6b2bc819f0
--- /dev/null
+++ b/testing/soju/makefile.patch
@@ -0,0 +1,15 @@
+Don't create /var/lib/soju, it's done by soju.pre-install script
+with proper permissions.
+
+diff --git a/Makefile b/Makefile
+index af65f77..4cb971b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -33,7 +33,6 @@ install:
+ mkdir -p $(DESTDIR)$(PREFIX)/$(BINDIR)
+ mkdir -p $(DESTDIR)$(PREFIX)/$(MANDIR)/man1
+ mkdir -p $(DESTDIR)$(SYSCONFDIR)/soju
+- mkdir -p $(DESTDIR)$(sharedstatedir)/soju
+ cp -f $(commands) $(DESTDIR)$(PREFIX)/$(BINDIR)
+ cp -f $(man_pages) $(DESTDIR)$(PREFIX)/$(MANDIR)/man1
+ [ -f $(DESTDIR)$(config_path) ] || cp -f config.in $(DESTDIR)$(config_path)
diff --git a/testing/soju/soju.initd b/testing/soju/soju.initd
new file mode 100644
index 00000000000..97af612363d
--- /dev/null
+++ b/testing/soju/soju.initd
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="soju"
+description="User-friendly IRC bouncer"
+
+: ${command_args:="-config /etc/soju/config"}
+: ${error_log:=/var/log/soju.log}
+
+command=/usr/bin/soju
+command_user=soju:soju
+directory="/var/lib/$RC_SVCNAME"
+capabilities="^cap_net_bind_service"
+
+extra_started_commands="reload"
+description_reload="Reload configuration and certificate"
+
+depend() {
+ need net localmount
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user "$directory"
+ checkpath -f -o $command_user "$error_log"
+ checkpath -d -o $command_user /run/soju
+}
+
+reload() {
+ ebegin "Reloading configuration and certificate"
+ $supervisor $RC_SVCNAME --signal HUP
+ eend $?
+}
diff --git a/testing/soju/soju.pre-install b/testing/soju/soju.pre-install
new file mode 100644
index 00000000000..537d8ae3e44
--- /dev/null
+++ b/testing/soju/soju.pre-install
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+user=soju
+group=soju
+
+addgroup -S $group 2>/dev/null
+adduser -S -D -h /var/lib/$user -s /sbin/nologin -G $group -g $user $user 2>/dev/null
+# The soju home directory contains soju's database and irc logs, which are
+# sensitive information.
+chmod o-rwx /var/lib/$user
+
+exit 0
diff --git a/testing/solanum/10-gio-types.patch b/testing/solanum/10-gio-types.patch
new file mode 100644
index 00000000000..435c083dd7f
--- /dev/null
+++ b/testing/solanum/10-gio-types.patch
@@ -0,0 +1,11 @@
+--- a/src/window.rs
++++ b/src/window.rs
+@@ -214,7 +214,7 @@
+ self.set_timer_label_from_secs(length * 60);
+ }
+ LapType::Break => {
+- if lap_number.get() >= settings.get("sessions-until-long-break") {
++ if lap_number.get() >= settings.get::<u32>("sessions-until-long-break") {
+ let length = settings.get("long-break-length");
+ lap_number.set(1);
+ label.set_label(&i18n("Long Break"));
diff --git a/testing/solanum/APKBUILD b/testing/solanum/APKBUILD
new file mode 100644
index 00000000000..fd472ba41e2
--- /dev/null
+++ b/testing/solanum/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor:
+# Maintainer: nadvagauser <nadvagauser+alpine@proton.me>
+pkgname=solanum
+pkgver=3.0.1_git20220607
+_gitrev=6869e48970e621c5c1a9942ce0baa24ada3392de
+pkgrel=1
+pkgdesc="A pomodoro timer for the GNOME desktop"
+url="https://gitlab.gnome.org/World/Solanum"
+arch="all !s390x !riscv64" # GTK4
+license="GPL-3.0-or-later"
+makedepends="
+ blueprint-compiler
+ cargo
+ glib-dev
+ gst-plugins-bad-dev
+ gstreamer-dev
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ "
+checkdepends="
+ appstream-glib
+ desktop-file-utils
+ "
+subpackages="$pkgname-lang"
+source="
+ https://gitlab.gnome.org/World/Solanum/-/archive/$_gitrev/Solanum-$_gitrev.tar.gz
+ 10-gio-types.patch
+ appdata.patch
+ "
+builddir="$srcdir/Solanum-$_gitrev"
+
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+6f6cc33be29c5419e12bb5e260b69e74c9b8c00c713c449351f284fcdc6b057b3fc2fd12fcd7552cd0856ba4e999f2efa85f89d07ed3d0e1e4332c95af3fac1c Solanum-6869e48970e621c5c1a9942ce0baa24ada3392de.tar.gz
+d48dc043836600622321d655db725da667a8fca9aa0e5010f6fbb5aff4b6e37e0d14ac8f071631d70a897583919b5ce77bd3519a96b0fe4bf00765eecce01307 10-gio-types.patch
+f319268c921d72e186ad8c07267bb8f7ffe2af961e1687e116403dffc5c8e098f8780b99a60caa79561fe8a204beebc269d3cd9f888ca18a0960043269fd30d4 appdata.patch
+"
diff --git a/testing/solanum/appdata.patch b/testing/solanum/appdata.patch
new file mode 100644
index 00000000000..e1f44612ad3
--- /dev/null
+++ b/testing/solanum/appdata.patch
@@ -0,0 +1,14 @@
+https://gitlab.alpinelinux.org/alpine/aports/-/issues/11642
+diff --git a/data/meson.build b/data/meson.build
+index dadb5ec..a00821e 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -29,7 +29,7 @@ appstream_file = i18n.merge_file(
+ output: '@0@.appdata.xml'.format(app_id),
+ po_dir: '../po',
+ install: true,
+- install_dir: join_paths(solanum_datadir, 'appdata')
++ install_dir: join_paths(solanum_datadir, 'metainfo')
+ )
+
+ appstream_util = find_program('appstream-util', required: false)
diff --git a/testing/solarus-engine/APKBUILD b/testing/solarus-engine/APKBUILD
new file mode 100644
index 00000000000..77786629316
--- /dev/null
+++ b/testing/solarus-engine/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=solarus-engine
+_realname=solarus
+pkgver=1.7.0
+_commit_ver=a44ae4b2a2f5289dc00bdf123eee239c99fab3b5
+pkgrel=0
+pkgdesc="Solarus is an open-source adventure 2D game engine written in C++"
+url="https://solarus-games.org/"
+arch="all !ppc64le !riscv64" # no luajit found
+license="GPL-3.0-Only"
+depends="
+ libvorbis
+ libogg
+ libmodplug
+ luajit
+ mesa
+ openal-soft
+ physfs
+ qt5-qtbase
+ qt5-qttools
+ sdl2
+ sdl2_image
+ sdl2_ttf
+ "
+makedepends="
+ cmake
+ glm-dev
+ libvorbis-dev
+ libogg-dev
+ libmodplug-dev
+ luajit-dev
+ mesa-dev
+ openal-soft-dev
+ physfs-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_ttf-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/solarus-games/solarus/-/archive/$_commit_ver/solarus-$_commit_ver.tar.gz"
+builddir="$srcdir/$_realname-$_commit_ver"
+
+build() {
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DSOLARUS_GUI=ON
+ make -C build/
+}
+
+check() {
+ ctest -L
+}
+
+package() {
+ make -C build DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+d1b95fffd643eb2fc984d6a8f511704d65d130a4d639634c31912bbadc5d67044723ad088a9085a528de0276627ed3e3db926d8415b58f35f1bc548265b4ea0e solarus-engine-1.7.0.tar.gz
+"
diff --git a/testing/solarus-quest-editor/APKBUILD b/testing/solarus-quest-editor/APKBUILD
new file mode 100644
index 00000000000..c1196ea5437
--- /dev/null
+++ b/testing/solarus-quest-editor/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=solarus-quest-editor
+pkgver=1.7.0
+_commit_ver=c6861dead576c5ed18dfdd33a8082101683c0324
+pkgrel=0
+pkgdesc="Game editor for the Solarus engine."
+url="https://www.solarus-games.org/"
+#ppc64le, riscv64: # no luajit found
+#aarch64, armhf, armv7: OpenGL/ES3 error while compiling
+arch="all !aarch64 !armhf !armv7 !ppc64le !riscv64"
+license="GPL-3.0-Only"
+depends="solarus-engine"
+makedepends="
+ cmake
+ glm-dev
+ libvorbis-dev
+ libmodplug-dev
+ luajit-dev
+ mesa-dev
+ openal-soft-dev
+ physfs-dev
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ samurai
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_ttf-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/solarus-games/solarus-quest-editor/-/archive/$_commit_ver/solarus-quest-editor-$_commit_ver.tar.gz"
+
+builddir="$srcdir/$pkgname-$_commit_ver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1dd74d3eda525abc9384faeaad3c3f298753b51e40f231425af8bd544e85b6dc497d7cedcdb9989a497a7dd5717b028a8a3454121520809139ea87e5bd2e28fa solarus-quest-editor-1.7.0.tar.gz
+"
diff --git a/testing/solidity/APKBUILD b/testing/solidity/APKBUILD
deleted file mode 100644
index c402b183ef6..00000000000
--- a/testing/solidity/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Trevis Schiffer <nikolaibitinit@gmail.com>
-# Maintainer: Trevis Schiffer <nikolaibitinit@gmail.com>
-pkgname=solidity
-pkgver=0.5.10
-pkgrel=3
-pkgdesc="The Solidity Contract-Oriented Programming Language"
-url="https://github.com/ethereum/solidity"
-arch="all !s390x !mips !mips64" # No support for big-endian systems
-license="GPL-3.0-or-later"
-depends="libgcc"
-makedepends="boost-dev cmake git"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ethereum/$pkgname/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- mkdir -p build
- echo -n "5a6ea5b19793f61c7703d4abe587b2bf40decc31" > commit_hash.txt
-}
-
-build() {
- cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
- -DBoost_USE_STATIC_LIBS=OFF \
- -DTESTS=ON \
- -DCMAKE_BUILD_TYPE=None
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install -C build
-}
-
-check() {
-
- ctest -V
-}
-
-sha512sums="24d23d5bf74b992a035a2dafd09e3150ebe1522624fd2feecca4f128897d57313546aa17cb5ecabea655ebe4fa9a3bee279bb1697191b4c93f2835850e10a9d0 solidity-0.5.10.tar.gz"
diff --git a/testing/somebar/APKBUILD b/testing/somebar/APKBUILD
new file mode 100644
index 00000000000..7282cb03f78
--- /dev/null
+++ b/testing/somebar/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Sam Nystrom <sam@samnystrom.dev>
+# Maintainer: Sam Nystrom <sam@samnystrom.dev>
+pkgname=somebar
+pkgver=1.0.3
+pkgrel=0
+pkgdesc="dwm-like bar for dwl"
+url="https://sr.ht/~raphi/somebar"
+arch="all"
+license="MIT"
+makedepends="
+ cairo-dev
+ meson
+ pango-dev
+ wayland-dev
+ wayland-protocols
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~raphi/somebar/archive/$pkgver.tar.gz"
+options="!check" # no tests
+
+prepare() {
+ default_prepare
+ cp src/config.def.hpp src/config.hpp
+}
+
+build() {
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+6294aaf3e9bc20b6fbc2221038f044ca505096e78b96981a234d0b0858d4a57bd1ffd5d1b53930b820e97b1fddf9a5149eaa1cb22e300629f92d197e3d5d7e5d somebar-1.0.3.tar.gz
+"
diff --git a/testing/sonar-scanner/APKBUILD b/testing/sonar-scanner/APKBUILD
new file mode 100644
index 00000000000..5d89d0eb0c2
--- /dev/null
+++ b/testing/sonar-scanner/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=sonar-scanner
+pkgver=5.0.1.3006
+pkgrel=0
+pkgdesc="Scanner CLI for SonarQube and SonarCloud"
+url="https://github.com/SonarSource/sonar-scanner-cli"
+arch="noarch !x86 !armhf !armv7 !riscv64 !ppc64le" # blocked by openjdk17
+license="LGPL-3.0-or-later"
+depends="openjdk17-jre-headless"
+makedepends="maven openjdk17-jdk"
+source="https://github.com/SonarSource/sonar-scanner-cli/archive/$pkgver/sonar-scanner-$pkgver.tar.gz
+ fix-reflection.patch
+ "
+builddir="$srcdir/sonar-scanner-cli-$pkgver"
+
+prepare() {
+ default_prepare
+ sed -i "s/<version>.*-SNAPSHOT/<version>$pkgver/" pom.xml
+}
+
+build() {
+ mvn clean package
+}
+
+check() {
+ mvn test
+}
+
+package() {
+ local dest=/usr/share/sonar-scanner
+
+ mkdir -p "$pkgdir"/$dest
+ unzip target/sonar-scanner-$pkgver.zip
+ mv sonar-scanner-$pkgver/* "$pkgdir"/$dest/
+
+ mkdir -p "$pkgdir"/usr/bin
+ ln -svf $dest/bin/sonar-scanner "$pkgdir"/usr/bin
+}
+
+sha512sums="
+a589a343b2c48b7b44086c47d28be6282d1888ef4afbc500994d64c9b1ce14dc7d7ec83515ae288ad14f263cd130dc6eab6df91095bd7f7ed2a72a6cdab399ff sonar-scanner-5.0.1.3006.tar.gz
+defc90c2cecef172e94c962b4058daadcf2411e4a6b98ca5868abb85f19359cc515df79d931335f79e5c0ba8bab1da833654a11553056fcbfba78c7625b1f425 fix-reflection.patch
+"
diff --git a/testing/sonar-scanner/fix-reflection.patch b/testing/sonar-scanner/fix-reflection.patch
new file mode 100644
index 00000000000..6b70ad46fd8
--- /dev/null
+++ b/testing/sonar-scanner/fix-reflection.patch
@@ -0,0 +1,22 @@
+i'm not exactly sure why it fails, but without this running analysis fails with:
+
+Caused by:
+ net.sf.cglib.core.CodeGenerationException:
+ java.lang.reflect.InaccessibleObjectException:
+ Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible:
+ module java.base does not "opens java.lang" to unnamed module @77774571
+
+found the fix here: https://stackoverflow.com/a/41265267
+
+diff --git a/src/main/assembly/bin/sonar-scanner b/src/main/assembly/bin/sonar-scanner
+index 2d2c2cc..8affabc 100755
+--- a/src/main/assembly/bin/sonar-scanner
++++ b/src/main/assembly/bin/sonar-scanner
+@@ -64,6 +64,7 @@ project_home=`pwd`
+ #echo "Info: Using project $project_home"
+
+ exec "$java_cmd" \
++ --add-opens java.base/java.lang=ALL-UNNAMED \
+ -Djava.awt.headless=true \
+ $SONAR_SCANNER_OPTS \
+ $SONAR_SCANNER_DEBUG_OPTS \
diff --git a/testing/sonarr/0001-disable-restart.patch b/testing/sonarr/0001-disable-restart.patch
new file mode 100644
index 00000000000..8dc5aebe628
--- /dev/null
+++ b/testing/sonarr/0001-disable-restart.patch
@@ -0,0 +1,20 @@
+Disable the restart functionality so the daemon can manage it.
+
+---
+ src/NzbDrone.Core/Lifecycle/LifecycleService.cs | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+index 9ed36a42e..565641284 100644
+--- a/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
++++ b/src/NzbDrone.Core/Lifecycle/LifecycleService.cs
+@@ -46,8 +46,7 @@ public void Shutdown()
+ public void Restart()
+ {
+ _logger.Info("Restart requested.");
+-
+- _eventAggregator.PublishEvent(new ApplicationShutdownRequested(true));
++ _eventAggregator.PublishEvent(new ApplicationShutdownRequested());
+
+ if (_runtimeInfo.IsWindowsService)
+ {
diff --git a/testing/sonarr/APKBUILD b/testing/sonarr/APKBUILD
new file mode 100644
index 00000000000..cd3b955a553
--- /dev/null
+++ b/testing/sonarr/APKBUILD
@@ -0,0 +1,104 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=sonarr
+pkgver=4.0.4.1491
+pkgrel=0
+pkgdesc="TV download automation for usenet and torrents."
+url="https://github.com/Sonarr/Sonarr"
+arch="x86_64 aarch64 armv7"
+license="GPL-3.0-only"
+options="net !check" # no tests
+depends="
+ aspnetcore6-runtime
+ sqlite-libs
+ "
+makedepends="
+ dotnet6-sdk
+ yarn
+ "
+subpackages="$pkgname-openrc"
+install="$pkgname.pre-install"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/Sonarr/Sonarr/archive/refs/tags/v$pkgver.tar.gz
+ 0001-disable-restart.patch
+ sonarr.initd
+ sonarr.confd
+ package_info
+ "
+builddir="$srcdir/Sonarr-$pkgver"
+pkgusers="sonarr"
+pkggroups="sonarr"
+
+# map arch to dotnet
+case $CARCH in
+ x86_64) _dotnet_arch="x64" ;;
+ aarch64) _dotnet_arch="arm64" ;;
+ armv7) _dotnet_arch="arm" ;;
+ *) _dotnet_arch="$CARCH" ;;
+esac
+
+# custom variables
+_runtime="linux-musl-$_dotnet_arch"
+_framework="net6.0"
+_output="_output"
+_artifacts="$_output/$_framework/$_runtime/publish"
+
+prepare() {
+ default_prepare
+
+ # increase max opened files
+ ulimit -n 4096
+
+ # replace version info
+ local buildprops=src/Directory.Build.props
+ sed -i "/<AssemblyVersion>/s/>.*<\//>$pkgver<\//" "$buildprops"
+ sed -i "/<AssemblyConfiguration>/s/>.*<\//>master<\//" "$buildprops"
+
+ export BROWSERSLIST_IGNORE_OLD_DATA=true
+ yarn install --frozen-lockfile --network-timeout 120000
+
+ # remove upstream dotnet version
+ rm global.json
+}
+
+build() {
+ dotnet build src \
+ -p:RuntimeIdentifiers="$_runtime" \
+ -p:Configuration=Release \
+ -p:SelfContained=false \
+ -t:PublishAllRids
+ yarn build --env production --no-stats
+
+ # fix ffprobe permissions
+ chmod +x "$_artifacts"/ffprobe
+
+ # cleanup
+ find "$_artifacts" \( \
+ -name "ServiceUninstall.*" -o \
+ -name "ServiceInstall.*" -o \
+ -name "Sonarr.Windows.*" \) -delete
+
+ mv "$_output"/UI "$_artifacts"
+}
+
+package() {
+ local destdir="$pkgdir"/usr/lib/sonarr
+
+ # use package_info to disable update feature
+ install -Dm644 "$srcdir"/package_info "$destdir"/package_info
+ echo "PackageVersion=$pkgver-r$pkgrel" >>"$destdir"/package_info
+
+ cp -af "$_artifacts" "$destdir"/bin
+ chown -R "$pkgusers:$pkggroups" "$destdir"
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+3c11ca486780c523787916ffcfc3162acf839e90ba9b9bed0481a9f30250c19a2d9ae673db6f50e352bca4d5e0bd579a6742b94a1e957778cfec2b7a2c588381 sonarr-4.0.4.1491.tar.gz
+753520379a6c5f2899b4ddfd820d5573598a32cb105f74c6fd978a3f2c98895cf709ef2d9afe2bae8c4856da86cb6a1364f5713ea7ef6a36bb21b5a5840c1471 0001-disable-restart.patch
+6cda2b7afc5f61dc8460b9e6a1683d8a04b705cf0dfaf8ef79845b797bdf1b4bb582cf217c83f02717d7daaaf337112da8720c400ab1d374f8a6b04a7ee07286 sonarr.initd
+d1cf825905ee8847f8094ec27d1b43df51558f0e94b17071cc15d019438c3c7d0c884fcc22876690e8b49d0f9dd3c2893ffcdab0c215282db27e24d0c8c6ec29 sonarr.confd
+91274754046fe7b7aade722af2c0a1e00265cb0b43808ad757bb55e780794f2c9466d1036841bb2a6f2e114784585ebef8ad6378cee72197e27a7d2963e022ba package_info
+"
diff --git a/testing/sonarr/package_info b/testing/sonarr/package_info
new file mode 100644
index 00000000000..944a8ad4143
--- /dev/null
+++ b/testing/sonarr/package_info
@@ -0,0 +1,4 @@
+# PackageVersion is added by APKBUILD
+PackageAuthor=[alpine](https://pkgs.alpinelinux.org/packages)
+UpdateMethod=External
+Branch=main
diff --git a/testing/sonarr/sonarr.confd b/testing/sonarr/sonarr.confd
new file mode 100644
index 00000000000..a372e5e3513
--- /dev/null
+++ b/testing/sonarr/sonarr.confd
@@ -0,0 +1,10 @@
+# Sonarr configuration options
+
+command_user="sonarr:sonarr" # user:group
+directory="/var/lib/sonarr"
+umask=0002
+supervisor="supervise-daemon"
+
+#logdir="/var/log/sonarr"
+#error_log="$logdir/error.log"
+#output_log="$logdir/output.log"
diff --git a/testing/sonarr/sonarr.initd b/testing/sonarr/sonarr.initd
new file mode 100644
index 00000000000..5151adcbafc
--- /dev/null
+++ b/testing/sonarr/sonarr.initd
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+
+# fallback values for /etc/conf.d/sonarr
+: ${command_user:=sonarr:sonarr}
+: ${directory:=/var/lib/sonarr}
+: ${umask:=0002}
+
+name=sonarr
+description="Sonarr daemon"
+command="/usr/lib/sonarr/bin/Sonarr"
+command_args="-nobrowser -data=$directory"
+command_background=true
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start_pre() {
+ checkpath -d -o "$command_user" "$directory"
+
+ if [ -n "$logdir" ]; then
+ checkpath -d -o "$command_user" "$logdir"
+ fi
+
+ if [ -n "$output_log" ]; then
+ checkpath -f -o "$command_user" "$output_log"
+ fi
+
+ if [ -n "$error_log" ]; then
+ checkpath -f -o "$command_user" "$error_log"
+ fi
+}
diff --git a/testing/sonarr/sonarr.pre-install b/testing/sonarr/sonarr.pre-install
new file mode 100644
index 00000000000..85b0b7123f3
--- /dev/null
+++ b/testing/sonarr/sonarr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S sonarr 2>/dev/null
+adduser -S -D -h /var/lib/sonarr -s /sbin/nologin -G sonarr -g sonarr sonarr 2>/dev/null
+
+exit 0
diff --git a/testing/sopel/APKBUILD b/testing/sopel/APKBUILD
deleted file mode 100644
index 63d4939917d..00000000000
--- a/testing/sopel/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Kevin Daudt <kdaudt@alpinelinux.org>
-# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
-pkgname=sopel
-pkgver=7.0.4
-pkgrel=0
-pkgdesc="An easy-to-use and highly extensible IRC Bot framework"
-url="https://sopel.chat/"
-arch="noarch"
-license="EFL-2.0"
-depends="python3 ipython py3-requests py3-geoip2 py3-setuptools py3-enchant py3-dnspython
- py3-xmltodict py3-praw py3-tz"
-makedepends="py3-pbr"
-checkdepends="py3-pytest"
-install="$pkgname.pre-install"
-pkgusers="sopel"
-pkggroups="sopel"
-subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sopel-irc/sopel/archive/v$pkgver.tar.gz
- add-tpaste-us.patch
- sopel.initd
- sopel.conf
- update-requirements.patch"
-options="!check" # test suite issues
-
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 pytest_run.py sopel test
-}
-
-package() {
- python3 setup.py install --root="$pkgdir"
- install -Dm0755 "$srcdir"/sopel.initd "$pkgdir"/etc/init.d/sopel
- install -Dm0644 "$srcdir"/sopel.conf "$pkgdir"/etc/conf.d/sopel
-}
-
-sha512sums="1674d2f9f5040d0697e10f9961a8d83c87429b6fc1b93c53157d60addd0b5476ac3aac2fa33d123089710e07f332acfec402b0d7da0e2cb1849b9d47843d62da sopel-7.0.4.tar.gz
-6095cbdb1d9e0b4c0ae91febb86637cf9a9f88ae04461fd81af15c23e6ca2f410231308ec76012fb8c0e28818967cebc92a0c2799add6aa564299e9fb79b8793 add-tpaste-us.patch
-1d6b39697d767085530f1db5ba763554c6503ab82b792bdb48c7fef65e4424fe30740ab758ebd3f1ccdd6f2340a9ac9e3dfe44fff064969106717169160ece7b sopel.initd
-d90379dc5a2d8c8ff52a15d1c341d4cbad919707fadc578d4ae78db45efafad5e6add270876aa982086ac78d99729b0346aa565512190b9fc8cd77020ba91445 sopel.conf
-849b0bf3566a5cc21f576312839dcc6862766b90f7e4ffd769a815ba9b75435fbd7ae84a8d419012ccab6997de00ca0707859be9b701119b9325c75a3bb4eb2d update-requirements.patch"
diff --git a/testing/sopel/add-tpaste-us.patch b/testing/sopel/add-tpaste-us.patch
deleted file mode 100644
index 98c48c30cfd..00000000000
--- a/testing/sopel/add-tpaste-us.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Upstream: Unknown
-Reason: Adds support for pasting to tpaste.us
-
-diff --git a/sopel/modules/help.py b/sopel/modules/help.py
-index 7d8e227..c4f4f31 100644
---- a/sopel/modules/help.py
-+++ b/sopel/modules/help.py
-@@ -158,6 +158,21 @@ def post_to_ubuntu(msg):
-
- return result.url
-
-+def post_to_tpaste(msg):
-+ try:
-+ result = _requests_post_catch_errors('https://tpaste.us/', data={'tpaste': msg})
-+ except PostingException:
-+ raise
-+
-+ result = result.text
-+ if re.match(r'https?://tpaste\.us/', result):
-+ # find/replace just in case the site tries to be sneaky and save on SSL overhead,
-+ # though it will probably send us an HTTPS link without any tricks.
-+ return result.replace('http://', 'https://', 1)
-+ else:
-+ LOGGER.error("Invalid result %s", result)
-+ raise PostingException('tpaste result did not contain expected URL base.')
-+
-
- PASTEBIN_PROVIDERS = {
- 'clbin': post_to_clbin,
-@@ -165,6 +180,7 @@ PASTEBIN_PROVIDERS = {
- 'hastebin': post_to_hastebin,
- 'termbin': post_to_termbin,
- 'ubuntu': post_to_ubuntu,
-+ 'tpaste': post_to_tpaste,
- }
- REPLY_METHODS = [
- 'channel',
diff --git a/testing/sopel/sopel.conf b/testing/sopel/sopel.conf
deleted file mode 100644
index 38995b053a3..00000000000
--- a/testing/sopel/sopel.conf
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_PATH=/etc/sopel/default.cfg
diff --git a/testing/sopel/sopel.initd b/testing/sopel/sopel.initd
deleted file mode 100644
index bc616a97e12..00000000000
--- a/testing/sopel/sopel.initd
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/bin/sopel"
-command_args="-c $CONFIG_PATH"
-pidfile="/run/sopel.pid"
-command_background=true
-command_user="sopel:sopel"
-
-depend() {
- need net
-}
diff --git a/testing/sopel/sopel.pre-install b/testing/sopel/sopel.pre-install
deleted file mode 100644
index 7e7ae1039e6..00000000000
--- a/testing/sopel/sopel.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S sopel 2>/dev/null
-adduser -S -D -H -h/dev/null -s/sbin/nologin -G sopel -g sopel sopel 2>/dev/null
-
-exit 0
diff --git a/testing/sopel/update-requirements.patch b/testing/sopel/update-requirements.patch
deleted file mode 100644
index 6117f173336..00000000000
--- a/testing/sopel/update-requirements.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream: Unknown
-Reason: Allow usage of py3-praw in Alpine Linux
-
-diff --git a/requirements.txt b/requirements.txt
-index 5b27125..6aaf76e 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -1,7 +1,7 @@
- xmltodict<0.12.0; python_version == '3.3'
- xmltodict==0.12; python_version != '3.3'
- pytz
--praw>=4.0.0,<6.0.0
-+praw>=4.0.0,<7.0.0
- geoip2<3.0.0
- ipaddress<2.0; python_version < '3.3'
- requests>=2.0.0,<3.0.0
diff --git a/testing/sopwith/APKBUILD b/testing/sopwith/APKBUILD
new file mode 100644
index 00000000000..9ad9c2225ba
--- /dev/null
+++ b/testing/sopwith/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: John Gebbie <me@johngebbie.com>
+# Maintainer: John Gebbie <me@johngebbie.com>
+pkgname=sopwith
+pkgver=2.4.0
+pkgrel=0
+pkgdesc="Classic bi-plane shoot-'em up game"
+url="https://fragglet.github.io/sdl-sopwith"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="sdl2-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/fragglet/sdl-sopwith/releases/download/sdl-sopwith-$pkgver/sdl-sopwith-$pkgver.tar.gz
+ select.patch
+ "
+builddir="$srcdir/sdl-sopwith-$pkgver"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR=$pkgdir install
+}
+
+sha512sums="
+3d47033d7e491417caaeb78dbb7e3acd8d9e1d7fe3197a0c9d83d3a8c5ef002df2880bc6787418aa15ac214242c64a652f0d1d343196ab5b77fe984f9370211a sdl-sopwith-2.4.0.tar.gz
+eb67432e23eacec9f53c35da25af4b5ca8018de1be9b40094dd5f98d0614415481df2fbf2f9c22f4b4fc71fd20b838f806f4d1e71b327fb4af670f5cd2a3adc8 select.patch
+"
diff --git a/testing/sopwith/select.patch b/testing/sopwith/select.patch
new file mode 100644
index 00000000000..f04ceb1d308
--- /dev/null
+++ b/testing/sopwith/select.patch
@@ -0,0 +1,12 @@
+diff --git a/src/tcpcomm.c b/src/tcpcomm.c
+index 7d07fdf..f9b630f 100644
+--- a/src/tcpcomm.c
++++ b/src/tcpcomm.c
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
++#include <sys/select.h>
+
+ #ifdef HAVE_NETINET_IN_H
+ #include <arpa/inet.h>
diff --git a/testing/soqt/APKBUILD b/testing/soqt/APKBUILD
new file mode 100644
index 00000000000..778776e1241
--- /dev/null
+++ b/testing/soqt/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Aiden Grossman <agrossman154@yahoo.com>
+# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
+pkgname=soqt
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="GUI binding library for coin"
+url="https://github.com/coin3d/soqt"
+arch="all"
+license="BSD-3-Clause"
+makedepends="coin-dev cmake mesa-dev qt5-qtbase-dev"
+options="!check" # test suite consists only of interactive programs
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/coin3d/soqt/releases/download/SoQt-$pkgver/soqt-$pkgver-src.tar.gz"
+builddir="$srcdir/$pkgname"
+
+build() {
+ cmake -B build . \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DSOQT_BUILD_DOC_MAN=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+4221e98f51cca4dda23043428e869b60ab4d994710f97c0f44cd82631ffad2bd8bbaf0b820434a4636892df663d66ecd2aec14b185972671b2d22c0fe242b553 soqt-1.6.0-src.tar.gz
+"
diff --git a/testing/sord/APKBUILD b/testing/sord/APKBUILD
deleted file mode 100644
index 270b7823b2b..00000000000
--- a/testing/sord/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=sord
-pkgver=0.16.4
-pkgrel=0
-pkgdesc="C library for storing RDF data in memory"
-url="http://drobilla.net/software/lilv"
-arch="all"
-license="ISC"
-makedepends="python3 pcre-dev serd-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://download.drobilla.net/sord-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- python3 waf configure --prefix=/usr
- python3 waf build
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="98bb102cff5ab38d999c2f966597508076ccce54583a739810b0c28b4f3d570b2ef414605fc08361ecb11ac3184d3176f2f50c7c59c06cc50c3d522e26ed5576 sord-0.16.4.tar.bz2"
diff --git a/testing/sos/APKBUILD b/testing/sos/APKBUILD
index ef0b6c0cb46..38f15358958 100644
--- a/testing/sos/APKBUILD
+++ b/testing/sos/APKBUILD
@@ -2,39 +2,36 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=sos
pkgver=0.8
-pkgrel=2
+pkgrel=23
pkgdesc="Simple Object Storage"
url="https://github.com/skx/sos"
-arch="all !mips !mips64" # blocked by dep
-license="GPL-2.0"
-options="!check" # has no check
-makedepends="go dep"
+license="GPL-2.0-or-later"
+arch="all"
+options="chmod-clean"
+makedepends="go"
source="sos-$pkgver.tar.gz::https://github.com/skx/sos/archive/release-$pkgver.tar.gz
- Gopkg.lock
- Gopkg.toml
+ use-go-modules.patch
"
-builddir="$srcdir/src/github.com/skx/$pkgname"
+builddir="$srcdir/sos-release-$pkgver"
-prepare() {
- mkdir -p ${builddir%/*}
- mv "$srcdir"/$pkgname-release-$pkgver "$builddir"/
- cd "$builddir"
- cp $srcdir/Gopkg.* "$builddir"/
- GOPATH="$srcdir" dep ensure
- default_prepare
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- cd "$builddir"
- GOPATH="$srcdir" go build -v -x -ldflags="-X main.version=$pkgver" \
+ go build -v \
+ -trimpath \
+ -ldflags="-X main.version=$pkgver" \
-o ./bin/sos
}
+check() {
+ go test ./...
+}
+
package() {
- cd "$builddir"
install -Dm755 bin/sos "$pkgdir"/usr/bin/sos
}
sha512sums="c2b69ec5d945725a4d3ae765622c97a3f5dfecf0550309593e33b68b842855746711f74254d8a70e0754ee66a6dd7a279f5ac414274697086e086ba78d2b9c83 sos-0.8.tar.gz
-ab3cf64fb1c39aee91873b95e12daeecd8b8017c3524182289cc7eafa38b05c6e428e10f12da27abab2e0b25040a57ee9c2caa85f7dfa6584f6d899c74118965 Gopkg.lock
-881455b622e905d00e11b8d888b565900c4de5377360fd6982e88b8833548b42480e9447f22da428ecb2c95784e624db376e08c163577c8996c5f43e6aa22aae Gopkg.toml"
+c3389ac657de9873844e041b394f1b3432e855c15e85d41f61a1ba5c9b91f1c7a459c9ad2af49e1dd21fa98dec9266cba38c4100594338bdbf9e801e5c5a0367 use-go-modules.patch"
diff --git a/testing/sos/Gopkg.lock b/testing/sos/Gopkg.lock
deleted file mode 100644
index 27fcd9c1568..00000000000
--- a/testing/sos/Gopkg.lock
+++ /dev/null
@@ -1,45 +0,0 @@
-# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
-
-
-[[projects]]
- digest = "1:5abd6a22805b1919f6a6bca0ae58b13cef1f3412812f38569978f43ef02743d4"
- name = "github.com/go-ini/ini"
- packages = ["."]
- pruneopts = "UT"
- revision = "5cf292cae48347c2490ac1a58fe36735fb78df7e"
- version = "v1.38.2"
-
-[[projects]]
- branch = "master"
- digest = "1:b264547c40314ec7619d2cf264e2621953843be7242c140efe1e3119f93877f4"
- name = "github.com/google/subcommands"
- packages = ["."]
- pruneopts = "UT"
- revision = "5bae204cdfb2d92dcc333d56014bae6a2f6c58b1"
-
-[[projects]]
- digest = "1:c79fb010be38a59d657c48c6ba1d003a8aa651fa56b579d959d74573b7dff8e1"
- name = "github.com/gorilla/context"
- packages = ["."]
- pruneopts = "UT"
- revision = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42"
- version = "v1.1.1"
-
-[[projects]]
- digest = "1:e73f5b0152105f18bc131fba127d9949305c8693f8a762588a82a48f61756f5f"
- name = "github.com/gorilla/mux"
- packages = ["."]
- pruneopts = "UT"
- revision = "e3702bed27f0d39777b0b37b664b6280e8ef8fbf"
- version = "v1.6.2"
-
-[solve-meta]
- analyzer-name = "dep"
- analyzer-version = 1
- input-imports = [
- "github.com/go-ini/ini",
- "github.com/google/subcommands",
- "github.com/gorilla/mux",
- ]
- solver-name = "gps-cdcl"
- solver-version = 1
diff --git a/testing/sos/Gopkg.toml b/testing/sos/Gopkg.toml
deleted file mode 100644
index 4e9ad735d1a..00000000000
--- a/testing/sos/Gopkg.toml
+++ /dev/null
@@ -1,42 +0,0 @@
-# Gopkg.toml example
-#
-# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
-# for detailed Gopkg.toml documentation.
-#
-# required = ["github.com/user/thing/cmd/thing"]
-# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
-#
-# [[constraint]]
-# name = "github.com/user/project"
-# version = "1.0.0"
-#
-# [[constraint]]
-# name = "github.com/user/project2"
-# branch = "dev"
-# source = "github.com/myfork/project2"
-#
-# [[override]]
-# name = "github.com/x/y"
-# version = "2.4.0"
-#
-# [prune]
-# non-go = false
-# go-tests = true
-# unused-packages = true
-
-
-[[constraint]]
- name = "github.com/go-ini/ini"
- version = "1.38.2"
-
-[[constraint]]
- branch = "master"
- name = "github.com/google/subcommands"
-
-[[constraint]]
- name = "github.com/gorilla/mux"
- version = "1.6.2"
-
-[prune]
- go-tests = true
- unused-packages = true
diff --git a/testing/sos/use-go-modules.patch b/testing/sos/use-go-modules.patch
new file mode 100644
index 00000000000..4960e6955f3
--- /dev/null
+++ b/testing/sos/use-go-modules.patch
@@ -0,0 +1,51 @@
+From a8e5f75cc299aee387345342f9643fde1e9c4329 Mon Sep 17 00:00:00 2001
+From: Steve Kemp <steve.kemp@supermetrics.com>
+Date: Fri, 29 Mar 2019 14:48:32 +0200
+Subject: [PATCH] Added go module files
+
+---
+ go.mod | 11 +++++++++++
+ go.sum | 16 ++++++++++++++++
+ 2 files changed, 27 insertions(+)
+ create mode 100644 go.mod
+ create mode 100644 go.sum
+
+diff --git a/go.mod b/go.mod
+new file mode 100644
+index 0000000..d717b65
+--- /dev/null
++++ b/go.mod
+@@ -0,0 +1,11 @@
++module github.com/skx/sos
++
++go 1.12
++
++require (
++ github.com/go-ini/ini v1.42.0
++ github.com/google/subcommands v1.0.1
++ github.com/gorilla/mux v1.7.0
++ github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff // indirect
++ gopkg.in/ini.v1 v1.42.0 // indirect
++)
+diff --git a/go.sum b/go.sum
+new file mode 100644
+index 0000000..4d0d4ab
+--- /dev/null
++++ b/go.sum
+@@ -0,0 +1,16 @@
++github.com/go-ini/ini v1.42.0 h1:TWr1wGj35+UiWHlBA8er89seFXxzwFn11spilrrj+38=
++github.com/go-ini/ini v1.42.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
++github.com/google/subcommands v1.0.1 h1:/eqq+otEXm5vhfBrbREPCSVQbvofip6kIz+mX5TUH7k=
++github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
++github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
++github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
++github.com/gorilla/mux v1.7.0 h1:tOSd0UKHQd6urX6ApfOn4XdBMY6Sh1MfxV3kmaazO+U=
++github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
++github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
++github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
++github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
++github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
++github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff h1:86HlEv0yBCry9syNuylzqznKXDK11p6D0DT596yNMys=
++github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs=
++gopkg.in/ini.v1 v1.42.0 h1:7N3gPTt50s8GuLortA00n8AqRTk75qOP98+mTPpgzRk=
++gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
diff --git a/testing/soundfont-vintage-dreams-waves/APKBUILD b/testing/soundfont-vintage-dreams-waves/APKBUILD
new file mode 100644
index 00000000000..194716e0994
--- /dev/null
+++ b/testing/soundfont-vintage-dreams-waves/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Dhruvin Gandhi <contact@dhruvin.dev>
+# Maintainer: Dhruvin Gandhi <contact@dhruvin.dev>
+pkgname=soundfont-vintage-dreams-waves
+pkgver=2.1
+pkgrel=1
+pkgdesc="Vintage Dreams Waves Soundfont"
+url="https://www.analoguesque.x10host.com/SoundFonts/"
+arch="noarch"
+license="custom"
+options="!check" # no code
+subpackages="$pkgname-doc"
+source="https://www.analoguesque.x10host.com/vdw20.zip
+ LICENSE
+ "
+
+package() {
+ install -Dm644 "$srcdir"/vdw20.sf2 \
+ -t "$pkgdir"/usr/share/soundfonts
+ install -Dm644 "$srcdir"/LICENSE \
+ -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+7fe6552f23755715151adca9b9920325a00c2e3707b5ce8af6a8150a88198902d6788daa873f317648f5efae1606d542b49e56591ce1681b6e8915bece42052e vdw20.zip
+8ecb96ea1cf0fbb71eef6ec4ad59291fd8eb23ca6b63a3b9fbbd1f2f2fb019b1735e8dbd46b939418c8754e7d0155dc27cdbcb6f3f0bb572674a89c5af3418fd LICENSE
+"
diff --git a/testing/soundfont-vintage-dreams-waves/LICENSE b/testing/soundfont-vintage-dreams-waves/LICENSE
new file mode 100644
index 00000000000..d45398f69c9
--- /dev/null
+++ b/testing/soundfont-vintage-dreams-waves/LICENSE
@@ -0,0 +1,21 @@
+ Vintage Dreams Waves v 2.0. for Creative Labs' AWE Soundcards
+ (EMU Soundfont 2 Format)
+
+ Copyright (c) Ian Wilson, 1996 (Updated January 1998)
+
+ This soundfont is freeware. You may freely use and/or redistribute it subject
+ to the following terms:
+ 1. It is not altered, edited, modified, ripped, or converted to other formats,
+ except for private use only.
+ 2. It is distributed with this copyright notice.
+
+ This soundfont is distributed WITHOUT WARRANTY, and without the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. No liability
+ or damages can be inferred upon the said copyright owner, Ian Wilson.
+
+ Any feedback, contact Ian Wilson.
+ vintagedreamworks@hotmail.com
+ http://www.geocities.com/SiliconValley/Campus/8645/index.html
+ http://members.nbci.com/silicon39/
+ http://www.mp3.com/silicon39
+ https://analoguesque.x10host.com/
diff --git a/testing/spacectl/APKBUILD b/testing/spacectl/APKBUILD
new file mode 100644
index 00000000000..612bf1bc8a0
--- /dev/null
+++ b/testing/spacectl/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Hristiyan Ivanov <hristiyan.d.ivanov@gmail.com>
+pkgname=spacectl
+pkgver=0.30.0
+pkgrel=2
+pkgdesc="A Utility wrapping Spacelift's GraphQL API for easy programmatic access in command-line contexts."
+url="https://github.com/spacelift-io/spacectl"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/spacelift-io/spacectl/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod download
+}
+
+build() {
+ go build .
+
+ for shell in bash fish zsh; do
+ ./spacectl completion $shell > spacectl.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm0755 spacectl -t "$pkgdir"/usr/bin/
+
+ install -Dm0644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+
+ install -Dm0644 spacectl.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/spacectl
+ install -Dm0644 spacectl.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/spacectl.fish
+ install -Dm0644 spacectl.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_spacectl
+}
+
+sha512sums="
+6780dfe4dd3cbc15a202f0d5f596e9aca983b9e30ede9d2969d16a1960f4ad71e9ce52caec3a612a10632d154297aee75bd37f7efc873bd7d4dea6d3f47b422b spacectl-0.30.0.tar.gz
+"
diff --git a/testing/spacenavd/APKBUILD b/testing/spacenavd/APKBUILD
new file mode 100644
index 00000000000..a438bc80853
--- /dev/null
+++ b/testing/spacenavd/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: guddaff <alpine@guddaff.de>
+# Maintainer: guddaff <alpine@guddaff.de>
+pkgname=spacenavd
+pkgver=1.2
+pkgrel=0
+pkgdesc="user-space driver for 6-dof space-mice"
+url="https://spacenav.sourceforge.net/"
+arch="all !armhf !armv7 !x86" #armhf, armv7, x86: truct input_event' has no member named 'time'
+license="GPL-3.0-or-later"
+makedepends="libx11-dev libxi-dev libxtst-dev linux-headers"
+options="!check" # no tests
+source="$pkgname-$pkgver.tar.gz::https://github.com/FreeSpacenav/spacenavd/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f9be5a63de4c773dd637393d592bd040c2f64c3b1dc51847f8e3d9fe7d83df7adf6fa6b7af765d664e4ab86b8fa2715355ddc27514276c39c66fa86a46de46ea spacenavd-1.2.tar.gz
+"
diff --git a/testing/spampd/APKBUILD b/testing/spampd/APKBUILD
index c9c99368d76..4a31b0f0d86 100644
--- a/testing/spampd/APKBUILD
+++ b/testing/spampd/APKBUILD
@@ -1,31 +1,24 @@
-# Contributor: Chloe Kudryavtsev <toast@toastin.space>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
+# Contributor: Chloe Kudryavtsev <code@toast.bunkerlabs.net>
+# Maintainer:
pkgname=spampd
-pkgver=2.53
-pkgrel=0
+pkgver=2.61
+pkgrel=1
pkgdesc="An L/SMTP proxy that marks spam using spamassassin"
url="http://www.worlddesign.com/index.cfm/page/software/open-source/spampd.htm"
-arch="noarch"
+arch="noarch !x86" # perl-mail-spamassassin->perl-db
license="GPL-2.0-or-later"
depends="perl-net-server perl-mail-spamassassin"
-makedepends=""
install="spampd.pre-install"
-subpackages="$pkgname-doc $pkgname-openrc"
+subpackages="$pkgname-openrc"
source="
spampd.confd
spampd.initd
$pkgname-$pkgver.tar.gz::https://github.com/mpaperno/$pkgname/archive/$pkgver.tar.gz
"
-builddir="$srcdir/$pkgname-$pkgver"
pkgusers="spampd"
pkggroups="spampd"
-build() {
- return 0
-}
-
check() {
- cd "$builddir"
./spampd.pl --version
}
@@ -33,14 +26,10 @@ package() {
install -m755 -D "$builddir/$pkgname.pl" "$pkgdir/usr/bin/$pkgname"
install -m755 -D "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
install -m644 -D "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname"
- install -m644 -D "$builddir/$pkgname.html" \
- "$pkgdir/usr/share/html/$pkgname.html"
}
-openrc() {
- mkdir -p "$subpkgdir"
- mv "$pkgdir/etc" "$subpkgdir/"
-}
-sha512sums="216ab774ac2cc8b54fb8f2155738fd41264b261efd5a7ab95d9910aad5b9699065f42211dbe8021383f0172bfb50cfc9087ea8dc1e53a2223dabd7faf490769c spampd.confd
+sha512sums="
+216ab774ac2cc8b54fb8f2155738fd41264b261efd5a7ab95d9910aad5b9699065f42211dbe8021383f0172bfb50cfc9087ea8dc1e53a2223dabd7faf490769c spampd.confd
4adad6b44509abedcfb5726d09a63b66048468e5ee7942d0e586630a84fb93931f315ed9410894af2cc4e5bff04cd38600ea91cc0b18c3cedd67efe2af6e0e14 spampd.initd
-538d905359bd455916aa8dcad9f3d77ce0fbf6cb722608bb723d186679e04abab784c9ae2c372954028dc1454642d74f4cfd0f63f52dcf439f35406220979ef5 spampd-2.53.tar.gz"
+e2f84c4b24648d4f4db70174f04b72981faa1c54ffc4bbc433d14c730ef4ad7fd4cd3772a476f25be0bee103e951700d038634d14848f1eb90849d1a6655199b spampd-2.61.tar.gz
+"
diff --git a/testing/spark/APKBUILD b/testing/spark/APKBUILD
index 6b0c4d5da0b..cd182c6421d 100644
--- a/testing/spark/APKBUILD
+++ b/testing/spark/APKBUILD
@@ -3,10 +3,10 @@
pkgname=spark
_pkgname=Spark
pkgver=2.8.3
-pkgrel=0
+pkgrel=1
pkgdesc="Cross-platform IM client optimized for businesses and organizations."
url="https://www.igniterealtime.org/projects/spark/"
-arch="all !mips !mips64" # java
+arch="all !riscv64" # blocked by openjdk8
license="Apache-2.0"
depends="
hicolor-icon-theme
diff --git a/testing/speakersafetyd/APKBUILD b/testing/speakersafetyd/APKBUILD
new file mode 100644
index 00000000000..0db920d598c
--- /dev/null
+++ b/testing/speakersafetyd/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=speakersafetyd
+pkgver=0.1.9
+pkgrel=0
+pkgdesc="asahi linux speaker safety daemon"
+url="https://github.com/AsahiLinux/speakersafetyd"
+arch="aarch64"
+license="MIT"
+depends="alsa-ucm-conf-asahi"
+makedepends="alsa-lib-dev cargo cargo-auditable"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AsahiLinux/speakersafetyd/archive/refs/tags/$pkgver.tar.gz
+ speakersafetyd.initd
+ "
+
+prepare() {
+ default_prepare
+ cargo update -p speakersafetyd
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ make DESTDIR=$pkgdir install
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+b237da8d473a89f6cd93c4cc0bef4a5402688c9e6528c54838abeec1d99ec615f69da29483689312da288cd4c4c0186951f60407d8c743d7bdc5a3c1a293fead speakersafetyd-0.1.9.tar.gz
+d577e5c96f240198bd1adff609944c678e725bd6db3378711f3e02d9cad1d6c058d0031c4aa5c91445d63ead6b037ebcffe377f764ba11261e05d72a73f77f7b speakersafetyd.initd
+"
diff --git a/testing/speakersafetyd/speakersafetyd.initd b/testing/speakersafetyd/speakersafetyd.initd
new file mode 100644
index 00000000000..2cd1b641ee1
--- /dev/null
+++ b/testing/speakersafetyd/speakersafetyd.initd
@@ -0,0 +1,7 @@
+#!/sbin/openrc-run
+
+pidfile="/run/speakersafetyd.pid"
+command="/usr/bin/speakersafetyd"
+command_args="-c /usr/share/speakersafetyd/ -b /var/lib/speakersafetyd/blackbox -m 7"
+supervisor="supervise-daemon"
+
diff --git a/testing/spectrwm/APKBUILD b/testing/spectrwm/APKBUILD
deleted file mode 100644
index e4be9969b77..00000000000
--- a/testing/spectrwm/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Contributor: Sascha Paunovic <azarus@posteo.net>
-# Maintainer: Sascha Paunovic <azarus@posteo.net>
-pkgname=spectrwm
-_pkgname=SPECTRWM_
-pkgver=3.3.0
-_pkgver=3_3_0
-pkgrel=0
-pkgdesc="dynamic, configurable tiling window manager for X11"
-options="!check" # No testsuite
-url="https://github.com/conformal/spectrwm"
-arch="all"
-license="ISC"
-depends="dmenu terminus-font"
-makedepends="bsd-compat-headers freetype-dev libxcursor-dev libxft-dev
- libxrandr-dev libxt-dev xcb-util-keysyms-dev xcb-util-wm-dev"
-subpackages="$pkgname-doc"
-source="https://github.com/conformal/spectrwm/archive/$_pkgname$_pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$_pkgname$_pkgver"
-
-build() {
- cd "$builddir"/linux
- make PREFIX="/usr"
-}
-
-package() {
- install -Dm644 spectrwm.conf "$pkgdir"/etc/spectrwm.conf
- mkdir "$pkgdir"/etc/spectrwm
- cp spectrwm_*.conf "$pkgdir"/etc/spectrwm/
-
- # make default config work
- install -Dm755 baraction.sh "$pkgdir"/usr/share/spectrwm/baraction.sh
- install -Dm755 screenshot.sh "$pkgdir"/usr/share/spectrwm/screenshot.sh
-
- cd linux
- make PREFIX="/usr" DESTDIR="$pkgdir" install
-
- # remove unneccessary stuff
- rm "$pkgdir"/usr/bin/scrotwm
- # provide convenience symlink
- ln -s "$pkgdir"/usr/bin/spectrwm "$pkgdir"/usr/bin/scrotwm
-}
-
-sha512sums="743affffd0437641a760ae29ccbd0084baee3354dadc48f3fc9ab70bffa2413ffe3af67f1223413aa1bbf8c679fbae1fbbdd71a840b3e44f5df83b527f63c1cc SPECTRWM_3_3_0.tar.gz"
diff --git a/testing/speedcrunch/APKBUILD b/testing/speedcrunch/APKBUILD
index 530af854b58..ca564522369 100644
--- a/testing/speedcrunch/APKBUILD
+++ b/testing/speedcrunch/APKBUILD
@@ -2,36 +2,39 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=speedcrunch
pkgver=0.12
-pkgrel=1
+pkgrel=3
pkgdesc="SpeedCrunch is a high-precision scientific calculator."
url="http://www.speedcrunch.org/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="cmake py3-sphinx py3-sphinx-theme-quark
- qt5-qtbase-dev qt5-qttools-dev libxkbcommon-dev"
+makedepends="
+ cmake
+ libxkbcommon-dev
+ py3-sphinx
+ py3-sphinx-theme-quark
+ qt5-qtbase-dev
+ qt5-qttools-dev
+ samurai
+ "
source="https://bitbucket.org/heldercorreia/speedcrunch/get/release-0.12.0.tar.bz2"
builddir="$srcdir/heldercorreia-speedcrunch-ea93b21f9498"
-prepare() {
- mkdir -p build
-}
-
build() {
- cd "$builddir"/build
- cmake ../src \
- -DCMAKE_INSTALL_PREFIX="/usr" \
+ cmake -B build -G Ninja -S src \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
-DREBUILD_MANUAL=off
- make
+ cmake --build build
}
check() {
- cd "$builddir"/build
- make test
+ ctest --test-dir build --output-on-failure
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="b41f147f2530735af2fad0ecef6047459baed03904ec6d8097a3f21d7d200c2d89beda77676ea1ff762c5c164cd7b639cae84942f61c869acd77aa380c80f141 release-0.12.0.tar.bz2"
+sha512sums="
+b41f147f2530735af2fad0ecef6047459baed03904ec6d8097a3f21d7d200c2d89beda77676ea1ff762c5c164cd7b639cae84942f61c869acd77aa380c80f141 release-0.12.0.tar.bz2
+"
diff --git a/testing/speedtest-go/APKBUILD b/testing/speedtest-go/APKBUILD
new file mode 100644
index 00000000000..11e40136338
--- /dev/null
+++ b/testing/speedtest-go/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
+# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
+pkgname=speedtest-go
+pkgver=1.1.5
+pkgrel=7
+pkgdesc="web page based speed test, written in go"
+url="https://librespeed.org"
+arch="all"
+license="LGPL-3.0-only"
+makedepends="go"
+# !check: no check suite
+# net: fetch dependencies
+options="!check net"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/librespeed/speedtest-go/archive/v$pkgver.tar.gz
+ speedtest-go.initd
+ settings-change.patch"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -trimpath -o speedtest main.go
+}
+
+package() {
+ install -Dm755 "$srcdir"/speedtest-go.initd "$pkgdir"/etc/init.d/speedtest-go
+ install -Dm644 settings.toml "$pkgdir"/etc/speedtest-go/settings.toml
+ install -Dm755 speedtest "$pkgdir"/usr/bin/speedtest
+ install -Dm644 -t "$pkgdir"/usr/share/$pkgname/assets web/assets/*
+ install -Dm644 -t "$pkgdir"/usr/share/doc/$pkgname/ ./*.md
+}
+
+sha512sums="
+556d52b6e8714f6888d7428b74717db0b9faa7d713ab67d1f37c47b7ba671b0be09aa264c02fc523ce2cf2d45300112a7405d0dfbb23e8bec70431e3dc370455 speedtest-go-1.1.5.tar.gz
+197efb6f98bed3a09c1c71e520265b48671c8e4dddabf3f9d7f16e8384e1ef84b800a115d5c656fb47e48d07a92cfe387f2dba5b9801fa03e720f762c6394ff7 speedtest-go.initd
+5699367c3188b8b9e58caf14641bb2bb0e9604804325649930757c342bf81700c02ad0610304c710d884b58641291bc4a16a65c80f8767f33b4137b624bef35a settings-change.patch
+"
diff --git a/testing/speedtest-go/settings-change.patch b/testing/speedtest-go/settings-change.patch
new file mode 100644
index 00000000000..61eee8c54c7
--- /dev/null
+++ b/testing/speedtest-go/settings-change.patch
@@ -0,0 +1,30 @@
+diff --git a/settings.toml b/settings.toml
+index bdfe9fb..0c8c419 100644
+--- a/settings.toml
++++ b/settings.toml
+@@ -13,7 +13,7 @@ server_lng=1
+ ipinfo_api_key=""
+
+ # assets directory path, defaults to `assets` in the same directory
+-assets_path=""
++assets_path="/usr/share/speedtest-go/assets"
+
+ # password for logging into statistics page
+ statistics_password="PASSWORD"
+@@ -22,14 +22,14 @@ redact_ip_addresses=false
+
+ # database type for statistics data, currently supports: none, memory, bolt, mysql, postgresql
+ # if none is specified, no telemetry/stats will be recorded, and no result PNG will be generated
+-database_type="bolt"
++database_type=""
+ database_hostname=""
+ database_name=""
+ database_username=""
+ database_password=""
+
+ # if you use `bolt` as database, set database_file to database file location
+-database_file="speedtest.db"
++database_file=""
+
+ # TLS and HTTP/2 settings. TLS is required for HTTP/2
+ enable_tls=false
diff --git a/testing/speedtest-go/speedtest-go.initd b/testing/speedtest-go/speedtest-go.initd
new file mode 100644
index 00000000000..3fc6ef0978a
--- /dev/null
+++ b/testing/speedtest-go/speedtest-go.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+name="speedtest-go"
+description="HTML5 Speedtest, written in go"
+
+command="/usr/bin/speedtest"
+command_args="-c /etc/speedtest-go/settings.toml"
+command_user="nobody:nobody"
+command_background="true"
+pidfile="/var/run/${name}.pid"
+
+depend() {
+ need net
+}
diff --git a/testing/speedtest/APKBUILD b/testing/speedtest/APKBUILD
index 1f5387d5a3b..48f36b12b15 100644
--- a/testing/speedtest/APKBUILD
+++ b/testing/speedtest/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-_php=php7
+_php=php82
pkgname=speedtest
-pkgver=5.2
-pkgrel=0
+pkgver=5.2.5
+pkgrel=1
pkgdesc="Self-hosted HTML5 Speedtest"
-url="http://speedtest.fdossena.com"
+url="https://librespeed.org"
arch="noarch"
license="LGPL-3.0-only"
depends="$_php"
subpackages="$pkgname-doc $pkgname-examples"
-source="$pkgname-$pkgver.tar.gz::https://github.com/adolfintel/speedtest/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/librespeed/speedtest/archive/$pkgver.tar.gz"
options="!check" # no test suite
builddir="$srcdir"/$pkgname-$pkgver
@@ -33,4 +33,6 @@ examples() {
mv "$builddir"/example* "$subpkgdir"/$_destdir
}
-sha512sums="79e4ed0d065db5e345a904d105ab97154d8012bfe08b3c6a0c5d42399451f833073266c46d1ba9c15348cb9f22f37d1bc4ec712adc34b840b3285449588562ac speedtest-5.2.tar.gz"
+sha512sums="
+cf9ff33bea2a94c1d5b614d2f94eb9dad71fb1bd247f9a762ba9b8909adb1bf5a1286cd1ed98bbae43c3fc0f53474de2ef0cac670c358793df70c3ac17939f2d speedtest-5.2.5.tar.gz
+"
diff --git a/testing/speedtest_exporter/0001-Fix-log.Infof-format-test-error.patch b/testing/speedtest_exporter/0001-Fix-log.Infof-format-test-error.patch
new file mode 100644
index 00000000000..506960048b5
--- /dev/null
+++ b/testing/speedtest_exporter/0001-Fix-log.Infof-format-test-error.patch
@@ -0,0 +1,34 @@
+From 3354a01f768acc7efe8bef29d40c6756e39b9cff Mon Sep 17 00:00:00 2001
+From: Marvin Preuss <marvin@xsteadfastx.org>
+Date: Wed, 29 Sep 2021 12:12:02 +0200
+Subject: [PATCH] Fix: log.Infof format test error
+
+Signed-off-by: Marvin Preuss <marvin@xsteadfastx.org>
+---
+ speedtest/client.go | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/speedtest/client.go b/speedtest/client.go
+index 1a0ef92..3dd181a 100644
+--- a/speedtest/client.go
++++ b/speedtest/client.go
+@@ -74,7 +74,7 @@ func NewClient(configURL string, serversURL string) (*Client, error) {
+ closestServers := stClient.GetClosestServers(allServers)
+ // log.Infof("Closest Servers: %s", closestServers)
+ testServer := stClient.GetFastestServer(closestServers)
+- log.Infof("Test server: %s", testServer)
++ log.Infof("Test server: %v", testServer)
+
+ return &Client{
+ Server: testServer,
+@@ -101,6 +101,6 @@ func (client *Client) NetworkMetrics() map[string]float64 {
+ result["download"] = downloadMbps
+ result["upload"] = uploadMbps
+ result["ping"] = ping
+- log.Infof("Speedtest results: %s", result)
++ log.Infof("Speedtest results: %v", result)
+ return result
+ }
+--
+2.33.0
+
diff --git a/testing/speedtest_exporter/APKBUILD b/testing/speedtest_exporter/APKBUILD
new file mode 100644
index 00000000000..3fd2c81ce25
--- /dev/null
+++ b/testing/speedtest_exporter/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Marvin Preuss <marvin@xsteadfastx.org>
+# Maintainer: Marvin Preuss <marvin@xsteadfastx.org>
+pkgname=speedtest_exporter
+pkgver=0.3.2
+pkgrel=7
+pkgdesc="Prometheus exporter for Speedtest metrics"
+url="https://github.com/nlamirault/speedtest_exporter"
+# riscv64 unsupported by Golang deps
+arch="all !riscv64"
+license="Apache-2.0"
+makedepends="bash go make"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+pkgusers="speedtest-exporter"
+pkggroups="speedtest-exporter"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/nlamirault/speedtest_exporter/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ 0001-Fix-log.Infof-format-test-error.patch
+ "
+options="!check" # no tests
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod download
+}
+
+build() {
+ make build
+}
+
+package() {
+ install -Dm755 speedtest_exporter "$pkgdir"/usr/bin/speedtest_exporter
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+10d4658f698d6623ad700506ccd22781a22015799ac86fbfc390fdda2564a4df66da1bb2d6710fdcb291e5ce0063d39d46320d774f8856d61c5b7c9bf127accd speedtest_exporter-0.3.2.tar.gz
+29fa32f35accbc8f26864258c957e1dbaf03e54b68c2361ba2c664fca65de8cfeac971ed96e48b0d556611f7af041b1f4711a36e189a3e746fc2a22cecece2fb speedtest_exporter.initd
+5110af642337757b6dd7abc3d9051f2f46256300cf6d8d29e94b5a3acc4fc7920e0d498f568e1831ce4821c8550d8752875a3077df5cc03b40b2282742e924df speedtest_exporter.confd
+fb38b8ac3b033e89c01180a171c108695e63ce2ca697b8e4fd199a7d4efd328890451ecfcda570361ea19573d4690235982245ca2493e9907d3d04944e208b81 0001-Fix-log.Infof-format-test-error.patch
+"
diff --git a/testing/speedtest_exporter/speedtest_exporter.confd b/testing/speedtest_exporter/speedtest_exporter.confd
new file mode 100644
index 00000000000..9f98a72b02d
--- /dev/null
+++ b/testing/speedtest_exporter/speedtest_exporter.confd
@@ -0,0 +1,3 @@
+# Configuration for /etc/init.d/speedtest_exporter
+
+speedtest_exporter_opts="-web.listen-address 0.0.0.0:9112"
diff --git a/testing/speedtest_exporter/speedtest_exporter.initd b/testing/speedtest_exporter/speedtest_exporter.initd
new file mode 100644
index 00000000000..b51977a183b
--- /dev/null
+++ b/testing/speedtest_exporter/speedtest_exporter.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name=speedtest_exporter
+description="Prometheus exporter for Speedtest metrics"
+
+command=/usr/bin/speedtest_exporter
+command_args="$speedtest_exporter_opts"
+command_user="speedtest-exporter:speedtest-exporter"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/speedtest_exporter/speedtest_exporter.pre-install b/testing/speedtest_exporter/speedtest_exporter.pre-install
new file mode 100644
index 00000000000..4acf0e53ba8
--- /dev/null
+++ b/testing/speedtest_exporter/speedtest_exporter.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S speedtest-exporter 2>/dev/null
+adduser -H -S -D -s /sbin/nologin -G speedtest-exporter -g speedtest-exporter speedtest-exporter 2>/dev/null
+
+exit 0
diff --git a/testing/spi-tools/APKBUILD b/testing/spi-tools/APKBUILD
deleted file mode 100644
index cac4deb4f2e..00000000000
--- a/testing/spi-tools/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=spi-tools
-pkgver=0.8.4
-pkgrel=0
-pkgdesc="simple command line tools to help using Linux spidev devices"
-url="https://github.com/cpb-/spi-tools"
-arch="all !s390x !ppc64le"
-license="GPL-2.0-or-later"
-makedepends="autoconf automake linux-headers"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cpb-/spi-tools/archive/$pkgver.tar.gz"
-
-build() {
- autoreconf -fim
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b508445150c0fb3a7a877dc76e02e3af4cda63baf59a8bf5beb227beb44e92283709c6b68960d2123b954580f78d7001b2d49e2412b1ee5666cc616f47804e6b spi-tools-0.8.4.tar.gz"
diff --git a/testing/spice-html5/APKBUILD b/testing/spice-html5/APKBUILD
index 5a17a27a433..eb4446292c2 100644
--- a/testing/spice-html5/APKBUILD
+++ b/testing/spice-html5/APKBUILD
@@ -1,26 +1,24 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=spice-html5
-pkgver=0.2.2
-pkgrel=0
+pkgver=0.3.0
+pkgrel=1
pkgdesc="A html5 client for the spice protocol"
url="https://github.com/freedesktop/spice-html5"
arch="noarch"
license="GPL-3.0-or-later LGPL-3.0-or-later"
options="!check" # No test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/freedesktop/$pkgname/archive/$pkgname-$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://gitlab.freedesktop.org/spice/spice-html5/-/archive/spice-html5-$pkgver/spice-html5-spice-html5-$pkgver.tar.gz
support-busybox-install.patch"
builddir="$srcdir/$pkgname-$pkgname-$pkgver"
build() {
- cd "$builddir"
return 0
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir/" install
}
-sha512sums="2a486552055762e44f54a7454d97e49d8f0d92a476b768f8724e6dfb6796851bd143a2c5b74fc2cff0bcec1f86b919428562f82e4b8de51ff95dadcc8b1a8133 spice-html5-0.2.2.tar.gz
+sha512sums="fcf4f442072b35bd5655eaebf7032e9dbd72c555f5ab201a0829c8633a032803deb0ab254ef95c38c0c50047a540efeddf5184fdcc4775b2556813929a247cf2 spice-html5-0.3.0.tar.gz
50ba269441d0e52988e494eb74657e413325fd1fd00f92ab8e7695e7e33d8a39159c0b0aca458d821f150dd02a30e11bb23dde6cf9c335f999625cdd8901bc1b support-busybox-install.patch"
diff --git a/testing/spike/APKBUILD b/testing/spike/APKBUILD
new file mode 100644
index 00000000000..6d13a616a98
--- /dev/null
+++ b/testing/spike/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+pkgname=spike
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="A simulator for the RISC-V instruction set architecture"
+url="https://github.com/riscv-software-src/riscv-isa-sim"
+arch="all !riscv64"
+license="BSD-3-Clause"
+makedepends="dtc"
+options="!check" # XXX: no proper upstream test suite
+source="https://github.com/riscv-software-src/riscv-isa-sim/archive/refs/tags/v$pkgver/spike-$pkgver.tar.gz"
+builddir="$srcdir/riscv-isa-sim-$pkgver"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ # The shared libraries provided by spike aren't versioned,
+ # hence there is really no use in packaging them right now.
+ make DESTDIR="$pkgdir" install-exes
+}
+
+sha512sums="
+089f3ae8e505ffde7bb4d3d7ef2c5db082c616e135e4efe952151dd195b1493f46ae4c0e33fc6b708935397b80922c643cb9e66760cbf3b2286f1f927e8dee9a spike-1.1.0.tar.gz
+"
diff --git a/testing/spin/APKBUILD b/testing/spin/APKBUILD
index 4010a072d68..07d8691b239 100644
--- a/testing/spin/APKBUILD
+++ b/testing/spin/APKBUILD
@@ -3,7 +3,7 @@
pkgname=spin
pkgver=6.5.2
_pkgver=${pkgver//./}
-pkgrel=0
+pkgrel=1
pkgdesc="Tool for formal verification of distributed software systems"
options="!check" # No testsuite
url="http://spinroot.com/"
diff --git a/testing/spiritvnc/APKBUILD b/testing/spiritvnc/APKBUILD
new file mode 100644
index 00000000000..97de7755e30
--- /dev/null
+++ b/testing/spiritvnc/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=spiritvnc
+pkgver=0.6.0
+pkgrel=0
+pkgdesc="FLTK-based multi-view VNC client"
+url="https://github.com/willbprog127/spiritvnc-fltk-no-libssh2"
+arch="all"
+license="BSD-3-Clause"
+depends="openssh-client"
+makedepends="fltk-dev libvncserver-dev"
+source="https://github.com/willbprog127/spiritvnc-fltk-no-libssh2/archive/v$pkgver/spiritvnc-$pkgver.tar.gz"
+builddir="$srcdir/spiritvnc-fltk-no-libssh2-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ make spiritvnc-fltk
+}
+
+package() {
+ install -Dvm755 spiritvnc-fltk "$pkgdir"/usr/bin/spiritvnc
+}
+
+sha512sums="
+b9442e8ae4035d5b13e9ca2140450a7f75ff3916cac67293ba4813ab1375d3c0e3cae0464b07a639d11ef9abf1556c3c5538483afba9c1aad332bb9e20943296 spiritvnc-0.6.0.tar.gz
+"
diff --git a/testing/splitter/APKBUILD b/testing/splitter/APKBUILD
new file mode 100644
index 00000000000..3fe5845e4fc
--- /dev/null
+++ b/testing/splitter/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=splitter
+pkgver=0.3.0
+pkgrel=0
+pkgdesc="A speedrunning GUI"
+url="https://sr.ht/~stacyharper/splitter/"
+# hare-cairo & hare-xkb currently doesn't build on riscv64
+arch="x86_64 aarch64" # hare
+license="AGPL-3.0-or-later"
+makedepends="
+ wayland-dev
+ wayland-protocols
+ libbsd-dev
+ cairo-dev
+ libxkbcommon-dev
+ hare
+ hari
+ hare-ev
+ hare-wayland
+ hare-cairo
+ hare-xkb
+ scdoc
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~stacyharper/splitter/archive/$pkgver.tar.gz"
+
+# Work-around of https://todo.sr.ht/~sircmpwn/hare/723#event-261138
+case "$CARCH" in
+ aarch64)
+ export LDFLAGS="-no-pie $LDFLAGS"
+ ;;
+esac
+
+build() {
+ make -j1 PREFIX=/usr
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX="/usr" install
+}
+
+sha512sums="
+292dac14028fd90baa8106fdd8944fba987549479469521e88b5788fef15bfd28d4630138341f2786d3e74d5634804473ff2abe8a41fc3bc83c5369ba576a079 splitter-0.3.0.tar.gz
+"
diff --git a/testing/splix/APKBUILD b/testing/splix/APKBUILD
deleted file mode 100644
index 70e42e64f11..00000000000
--- a/testing/splix/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Contributor: Taner Tas <taner76@gmail.com>
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=splix
-_pkgver=2.0.0
-reporev=315
-pkgver=${_pkgver}_svn$reporev
-pkgrel=0
-pkgdesc="CUPS drivers for SPL (Samsung Printer Language) printers."
-url="http://splix.ap2c.org/"
-arch="" # Needs to be snapshotted
-license="GPL-2.0-only"
-makedepends="
- cups-dev
- jbigkit-dev
- subversion
- rsync
- "
-install="$pkgname.post-install"
-source="
- https://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.gz
- splix-deviceID.patch
- "
-svnurl="svn://svn.code.sf.net/p/splix/code/splix"
-disturl="dev.alpinelinux.org:/archive/$pkgname/"
-builddir="$srcdir/$pkgname"
-options="!check" # No test suite
-
-snapshot() {
- clean
- deps
- mkdir -p "$srcdir"
- cd "$srcdir"
- svn co -r $reporev "$svnurl" $pkgname
- rm -rf $pkgname/.svn
- tar czvf $SRCDEST/$pkgname-$pkgver.tar.gz $pkgname
- rsync --progress -La $SRCDEST/$pkgname-$pkgver.tar.gz $disturl
-}
-
-build() {
- export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
- make drv
- make all DRV_ONLY=1
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install DRV_ONLY=1
-}
-
-sha512sums="34e9cd193e30b30d3d4bff2a2b2d78b022f41a0642e4a71db9150d9222284f731b64ea9903911e271b65ef18dc501848e945852774aa790ce8331dede8bcb088 splix-2.0.0_svn315.tar.gz
-6d869435a7e3faf9cb7f18b008b9ec1a3884efc6e2bb11a6c51bc54b08b283b04de9cc41c96e1c7c693e1fb6cbd79c1eb16de8ea896458034c72224dd3758fd4 splix-deviceID.patch"
diff --git a/testing/splix/splix-deviceID.patch b/testing/splix/splix-deviceID.patch
deleted file mode 100644
index 74822473dce..00000000000
--- a/testing/splix/splix-deviceID.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-diff -up splix/ppd/samsung.drv.in.deviceID splix/ppd/samsung.drv.in
---- splix/ppd/samsung.drv.in.deviceID 2013-08-26 21:45:31.000000000 +0200
-+++ splix/ppd/samsung.drv.in 2013-09-02 13:56:57.002669362 +0200
-@@ -39,6 +39,7 @@ Manufacturer "Samsung"
- Resolution k 1 0 0 0 "300dpi/300 DPI"
-
- ModelName "SCX-4200"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:SCX-4200 Series;CMD:GDI;"
- PCFileName "scx4200.ppd"
- } {
- Resolution k 1 0 0 0 "300dpi/300 DPI"
-@@ -83,6 +84,7 @@ Manufacturer "Samsung"
- PCFileName "ml1520.ppd"
- } {
- ModelName "ML-1610"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-1610;CMD:GDI;"
- PCFileName "ml1610.ppd"
- } {
- ModelName "ML-1710"
-@@ -121,6 +123,7 @@ Manufacturer "Samsung"
- Throughput 22
- {
- ModelName "ML-2250"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2250;"
- PCFileName "ml2250.ppd"
- } {
- ModelName "ML-2251"
-@@ -166,6 +169,7 @@ Manufacturer "Samsung"
- PCFileName "ml1640.ppd"
- } {
- ModelName "ML-2010"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2010;CMD:GDI;"
- PCFileName "ml2010.ppd"
- } {
- ModelName "ML-2015"
-@@ -177,6 +181,7 @@ Manufacturer "Samsung"
- #import "srtmode.defs"
-
- ModelName "ML-2510"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2510 Series;CMD:GDI;"
- PCFileName "ml2510.ppd"
- }
- }
-@@ -193,15 +198,18 @@ Manufacturer "Samsung"
-
- {
- ModelName "ML-1660"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-1660 Series;CMD:GDI,FWV,EXT;"
- PCFileName "ml1660.ppd"
- } {
- ModelName "ML-1910"
- PCFileName "ml1910.ppd"
- } {
- ModelName "ML-2525"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2525 Series;CMD:GDI,FWV,EXT;"
- PCFileName "ml2525.ppd"
- } {
- ModelName "ML-2525W"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:ML-2525W Series;CMD:GDI,FWV,EXT;"
- PCFileName "ml2525w.ppd"
- }
- } {
-@@ -465,6 +473,7 @@ Manufacturer "Samsung"
- Attribute General CMSFile "CLP-310"
-
- ModelName "CLP-310"
-+ Attribute "1284DeviceID" "" "MFG:Samsung;MDL:CLP-310 Series;CMD:SPLC,FWV;"
- PCFileName "clp310.ppd"
- }{
- Attribute General CMSFile "CLP-315"
-diff -up splix/ppd/xerox.drv.in.deviceID splix/ppd/xerox.drv.in
---- splix/ppd/xerox.drv.in.deviceID 2013-08-26 17:22:00.000000000 +0200
-+++ splix/ppd/xerox.drv.in 2013-09-02 13:55:22.634957854 +0200
-@@ -66,6 +66,7 @@ Manufacturer "Xerox"
- } {
- #import "manualduplex.defs"
- ModelName "Phaser 3120"
-+ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3120;CMD:GDI;"
- PCFileName "ph3120.ppd"
- } {
- #import "manualduplex.defs"
-@@ -74,6 +75,7 @@ Manufacturer "Xerox"
- } {
- #import "manualduplex.defs"
- ModelName "Phaser 3130"
-+ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3130;CMD:PCL5E,PCL6;"
- PCFileName "ph3130.ppd"
- } {
- // Multi-tray
-@@ -118,6 +120,7 @@ Manufacturer "Xerox"
-
- {
- ModelName "Phaser 3117"
-+ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3117;CMD:GDI;"
- PCFileName "ph3117.ppd"
- } {
- Resolution k 1 0 0 0 "1200x600dpi/1200x600 DPI"
-@@ -131,6 +134,7 @@ Manufacturer "Xerox"
-
- {
- ModelName "Phaser 3124"
-+ Attribute "1284DeviceID" "" "MFG:Xerox;MDL:Phaser 3124;CMD:GDI;"
- PCFileName "ph3124.ppd"
- }
- }
diff --git a/testing/splix/splix.post-install b/testing/splix/splix.post-install
deleted file mode 100644
index 11f0adcf62f..00000000000
--- a/testing/splix/splix.post-install
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
- cat <<EOF
-Installation of the color profile for color printers:
------------------------------------------------------
-
- Color printers need color profile files to get better results. These
-files are provided by your printer manufacturer and you have to install them
-manually. To do that, download the official linux drivers and locate the "cms"
-directory. Install the contents to "/usr/share/cups/profiles/\$MANUFACTURER".
-
- Samsung color profile files are available at:
- (Then use MANUFACTURER=samsung)
- http://splix.ap2c.org/samsung_cms.tar.bz2
-EOF
diff --git a/testing/spnavcfg/APKBUILD b/testing/spnavcfg/APKBUILD
new file mode 100644
index 00000000000..56db2146fef
--- /dev/null
+++ b/testing/spnavcfg/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: guddaff <guddaff@protonmail.com>
+# Maintainer: guddaff <guddaff@protonmail.com>
+pkgname=spnavcfg
+pkgver=1.1
+pkgrel=0
+pkgdesc="spacenav interactive configuration GUI"
+url="https://spacenav.sourceforge.net/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="qt5-qtbase-dev libspnav-dev"
+options="!check" # no checks
+source="$pkgname-$pkgver.tar.gz::https://github.com/FreeSpacenav/spnavcfg/archive/refs/tags/v$pkgver.tar.gz
+ makefile.patch
+ "
+
+build() {
+ # not automake
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+00166b2cf507a449df4cdf2e7865ec002a3b8d193e961c87569b944e1a81bbc4104dd16335c4bf7628a2477cbec2ab07e4f88e6e60792e0156002b52152d3fb7 spnavcfg-1.1.tar.gz
+8391b27c94e83157294d84b32164e2fb82a7998d2df4c07da478eb7294b7c2b49b2b371dbed7bbd2e0ac3264973a97e7a455cf227bb2ac196b7232fe816cd829 makefile.patch
+"
diff --git a/testing/spnavcfg/makefile.patch b/testing/spnavcfg/makefile.patch
new file mode 100644
index 00000000000..8e5d70a65e2
--- /dev/null
+++ b/testing/spnavcfg/makefile.patch
@@ -0,0 +1,14 @@
+Patch-Source: https://aur.archlinux.org/cgit/aur.git/tree/Makefile.in.diff?h=spnavcfg
+diff --git a/Makefile.in b/Makefile.in
+index b760f4d..f66ba22 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -2,7 +2,7 @@ csrc = $(wildcard src/*.c)
+ ccsrc = $(wildcard src/*.cc)
+ mochdr = src/ui.h
+ mocsrc = $(mochdr:.h=.moc.cc)
+-obj = $(csrc:.c=.o) $(ccsrc:.cc=.o) $(mocsrc:.cc=.o) res.cc
++obj = $(sort $(csrc:.c=.o) $(ccsrc:.cc=.o) $(mocsrc:.cc=.o)) res.cc
+ dep = $(csrc:.c=.d) $(ccsrc:.cc=.d)
+ bin = spnavcfg
+
diff --git a/testing/sponskrub/APKBUILD b/testing/sponskrub/APKBUILD
new file mode 100644
index 00000000000..f55353937a9
--- /dev/null
+++ b/testing/sponskrub/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Sebastian Hudak <sebastian@sebsite.pw>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=sponskrub
+pkgver=3.7.2
+pkgrel=6
+pkgdesc="Command-line utility to strip out advertisements from downloaded YouTube videos"
+url="https://github.com/faissaloo/SponSkrub"
+arch="x86_64" # limited by dub
+license="GPL-3.0-or-later"
+makedepends="dub ldc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/faissaloo/SponSkrub/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/SponSkrub-$pkgver"
+options="!check" # No tests
+
+build() {
+ dub build sponskrub:sponskrub
+}
+
+package() {
+ install -Dm755 sponskrub "$pkgdir"/usr/bin/sponskrub
+}
+
+sha512sums="
+5584dafed292201baeb36a1b5585d56070b4e3db9e5e2f1600dae6bdc21db43c4e7aa65eb1b881099f7211278613856422de2d53671fdda4f3b0aa3c85c8c5b4 sponskrub-3.7.2.tar.gz
+"
diff --git a/testing/spotify-player/APKBUILD b/testing/spotify-player/APKBUILD
new file mode 100644
index 00000000000..c6f2067f5e5
--- /dev/null
+++ b/testing/spotify-player/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=spotify-player
+pkgver=0.16.3
+pkgrel=0
+pkgdesc="Command driven spotify player"
+url="https://github.com/aome510/spotify-player"
+arch="x86_64 aarch64 x86 ppc64le" # limited by rust/cargo, does not compile on armv7, armhf
+license="MIT"
+makedepends="
+ alsa-lib-dev
+ cargo
+ cargo-auditable
+ dbus-dev
+ openssl-dev
+ wayland-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/aome510/spotify-player/archive/v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen \
+ --no-default-features --features 'alsa-backend,media-control,notify,streaming,daemon'
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/spotify_player -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+01c9f3bfa93e410531bc3e070090c7a29bbed815ed2be1e4dbd48b70697198d522a336089e0533d404c7c1c13af59a49263727bd9d0aaf5753773f817e7aa876 spotify-player-0.16.3.tar.gz
+"
diff --git a/testing/spotify-tui/APKBUILD b/testing/spotify-tui/APKBUILD
new file mode 100644
index 00000000000..b68df8cd3f9
--- /dev/null
+++ b/testing/spotify-tui/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=spotify-tui
+pkgver=0.25.0
+pkgrel=2
+pkgdesc="Spotify for the terminal written in Rust"
+url="https://github.com/Rigellute/spotify-tui"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust/cargo
+license="MIT"
+makedepends="cargo openssl-dev libxcb-dev python3 cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Rigellute/spotify-tui/archive/v$pkgver/spotifyd-$pkgver.tar.gz
+ deps.patch
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m 755 target/release/spt -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+92a2ab53059b7d58e502a732f16a8eb725e19ea2e13c4f63dd64e3f0d62a3999f6b6b338c396db734f6ee9d63459da15e69b392f945c8f967d794447ac5ff8a4 spotify-tui-0.25.0.tar.gz
+6e0e8b5c6e1c9417f85ad2b04d80ce86743080755668e1685e1361ef7cc621dd6c84ee4da973853123389d18eb97d9fbbc2d9e9ed0ffca75246eadf44040f0fc deps.patch
+"
diff --git a/testing/spotify-tui/deps.patch b/testing/spotify-tui/deps.patch
new file mode 100644
index 00000000000..6f06532f109
--- /dev/null
+++ b/testing/spotify-tui/deps.patch
@@ -0,0 +1,2603 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index fa129f0..d7464d3 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,18 +4,18 @@ version = 3
+
+ [[package]]
+ name = "addr2line"
+-version = "0.14.1"
++version = "0.19.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
++checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+ dependencies = [
+ "gimli",
+ ]
+
+ [[package]]
+ name = "adler"
+-version = "0.2.3"
++version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
++checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+ [[package]]
+ name = "adler32"
+@@ -25,93 +25,95 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+ [[package]]
+ name = "aho-corasick"
+-version = "0.7.13"
++version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
++checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+ dependencies = [
+ "memchr",
+ ]
+
+ [[package]]
+-name = "ansi_term"
+-version = "0.11.0"
++name = "android_system_properties"
++version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+ dependencies = [
+ "winapi 0.3.9",
+ ]
+
+ [[package]]
+ name = "anyhow"
+-version = "1.0.43"
++version = "1.0.71"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf"
++checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+
+ [[package]]
+ name = "arboard"
+-version = "1.2.0"
++version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3ac39a01d5684967619a6755f3cfc397e5202b5f012d0954ac5016f4b2a33eb"
++checksum = "47044a1809e2953fe6d084312b81dcb7d9ffc24fee45aa39e5b938f66f75b8a8"
+ dependencies = [
+ "clipboard-win",
+ "core-graphics",
+ "image",
+- "lazy_static",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
++ "once_cell",
++ "parking_lot",
+ "scopeguard",
+ "thiserror",
+ "winapi 0.3.9",
+ "x11rb",
+ ]
+
+-[[package]]
+-name = "arrayref"
+-version = "0.3.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+-
+-[[package]]
+-name = "arrayvec"
+-version = "0.5.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+-
+ [[package]]
+ name = "atty"
+ version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+ dependencies = [
+- "hermit-abi",
++ "hermit-abi 0.1.19",
+ "libc",
+ "winapi 0.3.9",
+ ]
+
+ [[package]]
+ name = "autocfg"
+-version = "0.1.7"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
++checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
++dependencies = [
++ "autocfg 1.1.0",
++]
+
+ [[package]]
+ name = "autocfg"
+-version = "1.0.0"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+ [[package]]
+ name = "backtrace"
+-version = "0.3.56"
++version = "0.3.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
++checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+ dependencies = [
+ "addr2line",
++ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+- "miniz_oxide 0.4.3",
++ "miniz_oxide 0.6.2",
+ "object",
+ "rustc-demangle",
+ ]
+@@ -127,15 +129,9 @@ dependencies = [
+
+ [[package]]
+ name = "base64"
+-version = "0.11.0"
++version = "0.13.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+-
+-[[package]]
+-name = "base64"
+-version = "0.12.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
++checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+ [[package]]
+ name = "bitflags"
+@@ -143,17 +139,6 @@ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+-[[package]]
+-name = "blake2b_simd"
+-version = "0.5.10"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+-dependencies = [
+- "arrayref",
+- "arrayvec",
+- "constant_time_eq",
+-]
+-
+ [[package]]
+ name = "block"
+ version = "0.1.6"
+@@ -162,21 +147,21 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+ [[package]]
+ name = "bumpalo"
+-version = "3.4.0"
++version = "3.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
++checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+
+ [[package]]
+ name = "bytemuck"
+-version = "1.4.1"
++version = "1.13.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "41aa2ec95ca3b5c54cf73c91acf06d24f4495d5f1b1c12506ae3483d646177ac"
++checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+
+ [[package]]
+ name = "byteorder"
+-version = "1.3.4"
++version = "1.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+ [[package]]
+ name = "bytes"
+@@ -194,6 +179,12 @@ version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
+
++[[package]]
++name = "bytes"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
++
+ [[package]]
+ name = "cassowary"
+ version = "0.3.0"
+@@ -202,9 +193,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+
+ [[package]]
+ name = "cc"
+-version = "1.0.58"
++version = "1.0.79"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
++checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+
+ [[package]]
+ name = "cfg-if"
+@@ -220,22 +211,26 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "chrono"
+-version = "0.4.13"
++version = "0.4.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
++checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+ dependencies = [
++ "iana-time-zone",
++ "js-sys",
+ "num-integer",
+ "num-traits",
+ "rustc-serialize",
+ "serde",
+ "time",
++ "wasm-bindgen",
++ "winapi 0.3.9",
+ ]
+
+ [[package]]
+ name = "clap"
+-version = "2.33.3"
++version = "2.34.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+ dependencies = [
+ "ansi_term",
+ "atty",
+@@ -248,9 +243,9 @@ dependencies = [
+
+ [[package]]
+ name = "clipboard-win"
+-version = "4.0.3"
++version = "4.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5123c6b97286809fea9e38d2c9bf530edbcb9fc0d8f8272c28b0c95f067fa92d"
++checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+ dependencies = [
+ "error-code",
+ "str-buf",
+@@ -266,58 +261,27 @@ dependencies = [
+ "bitflags",
+ ]
+
+-[[package]]
+-name = "cloudabi"
+-version = "0.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
+-dependencies = [
+- "bitflags",
+-]
+-
+ [[package]]
+ name = "color_quant"
+ version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+-[[package]]
+-name = "constant_time_eq"
+-version = "0.1.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+-
+ [[package]]
+ name = "core-foundation"
+-version = "0.7.0"
++version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
++checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+ dependencies = [
+- "core-foundation-sys 0.7.0",
+- "libc",
+-]
+-
+-[[package]]
+-name = "core-foundation"
+-version = "0.9.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62"
+-dependencies = [
+- "core-foundation-sys 0.8.2",
++ "core-foundation-sys",
+ "libc",
+ ]
+
+ [[package]]
+ name = "core-foundation-sys"
+-version = "0.7.0"
++version = "0.8.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
+-
+-[[package]]
+-name = "core-foundation-sys"
+-version = "0.8.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
++checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+ [[package]]
+ name = "core-graphics"
+@@ -326,31 +290,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "52a67c4378cf203eace8fb6567847eb641fd6ff933c1145a115c6ee820ebb978"
+ dependencies = [
+ "bitflags",
+- "core-foundation 0.9.1",
++ "core-foundation",
+ "foreign-types",
+ "libc",
+ ]
+
+ [[package]]
+ name = "crc32fast"
+-version = "1.2.1"
++version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
++checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+ dependencies = [
+ "cfg-if 1.0.0",
+ ]
+
+-[[package]]
+-name = "crossbeam-utils"
+-version = "0.7.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+-dependencies = [
+- "autocfg 1.0.0",
+- "cfg-if 0.1.10",
+- "lazy_static",
+-]
+-
+ [[package]]
+ name = "crossterm"
+ version = "0.20.0"
+@@ -360,7 +313,7 @@ dependencies = [
+ "bitflags",
+ "crossterm_winapi",
+ "libc",
+- "mio 0.7.0",
++ "mio 0.7.14",
+ "parking_lot",
+ "signal-hook",
+ "signal-hook-mio",
+@@ -448,18 +401,18 @@ dependencies = [
+
+ [[package]]
+ name = "dirs"
+-version = "3.0.1"
++version = "3.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "142995ed02755914747cc6ca76fc7e4583cd18578746716d0508ea6ed558b9ff"
++checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
+ dependencies = [
+ "dirs-sys",
+ ]
+
+ [[package]]
+ name = "dirs-sys"
+-version = "0.3.5"
++version = "0.3.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
++checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+ dependencies = [
+ "libc",
+ "redox_users",
+@@ -477,25 +430,19 @@ dependencies = [
+ "regex",
+ ]
+
+-[[package]]
+-name = "dtoa"
+-version = "0.4.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
+-
+ [[package]]
+ name = "either"
+-version = "1.5.3"
++version = "1.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+
+ [[package]]
+ name = "encoding_rs"
+-version = "0.8.23"
++version = "0.8.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e8ac63f94732332f44fe654443c46f6375d1939684c17b0afb6cb56b0456e171"
++checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ ]
+
+ [[package]]
+@@ -512,10 +459,31 @@ dependencies = [
+ ]
+
+ [[package]]
+-name = "error-code"
+-version = "2.0.2"
++name = "errno"
++version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b49c94f66f2d2c5ee8685039e458b4e6c9f13af7c28736baf10ce42966a5ab52"
++checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
++dependencies = [
++ "errno-dragonfly",
++ "libc",
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "errno-dragonfly"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
++dependencies = [
++ "cc",
++ "libc",
++]
++
++[[package]]
++name = "error-code"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+ dependencies = [
+ "libc",
+ "str-buf",
+@@ -537,12 +505,21 @@ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 1.0.109",
+ "synstructure",
+ ]
+
++[[package]]
++name = "fastrand"
++version = "1.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
++dependencies = [
++ "instant",
++]
++
+ [[package]]
+ name = "fnv"
+ version = "1.0.7"
+@@ -564,6 +541,15 @@ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
++[[package]]
++name = "form_urlencoded"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
++dependencies = [
++ "percent-encoding 2.2.0",
++]
++
+ [[package]]
+ name = "fuchsia-cprng"
+ version = "0.1.1"
+@@ -588,9 +574,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+ [[package]]
+ name = "futures"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
++checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -603,9 +589,9 @@ dependencies = [
+
+ [[package]]
+ name = "futures-channel"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
++checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+ dependencies = [
+ "futures-core",
+ "futures-sink",
+@@ -613,15 +599,15 @@ dependencies = [
+
+ [[package]]
+ name = "futures-core"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
++checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+
+ [[package]]
+ name = "futures-executor"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
++checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+ dependencies = [
+ "futures-core",
+ "futures-task",
+@@ -630,42 +616,38 @@ dependencies = [
+
+ [[package]]
+ name = "futures-io"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
++checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+
+ [[package]]
+ name = "futures-macro"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
++checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+ dependencies = [
+- "proc-macro-hack",
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
+ ]
+
+ [[package]]
+ name = "futures-sink"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
++checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+
+ [[package]]
+ name = "futures-task"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+-dependencies = [
+- "once_cell",
+-]
++checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+
+ [[package]]
+ name = "futures-util"
+-version = "0.3.5"
++version = "0.3.28"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
++checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -674,18 +656,16 @@ dependencies = [
+ "futures-sink",
+ "futures-task",
+ "memchr",
+- "pin-project",
++ "pin-project-lite 0.2.9",
+ "pin-utils",
+- "proc-macro-hack",
+- "proc-macro-nested",
+ "slab",
+ ]
+
+ [[package]]
+ name = "gethostname"
+-version = "0.2.1"
++version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e692e296bfac1d2533ef168d0b60ff5897b8b70a4009276834014dd8924cc028"
++checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+ dependencies = [
+ "libc",
+ "winapi 0.3.9",
+@@ -693,37 +673,26 @@ dependencies = [
+
+ [[package]]
+ name = "getrandom"
+-version = "0.1.14"
++version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+-dependencies = [
+- "cfg-if 0.1.10",
+- "libc",
+- "wasi 0.9.0+wasi-snapshot-preview1",
+-]
+-
+-[[package]]
+-name = "getrandom"
+-version = "0.2.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+ dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+- "wasi 0.10.2+wasi-snapshot-preview1",
++ "wasi 0.11.0+wasi-snapshot-preview1",
+ ]
+
+ [[package]]
+ name = "gimli"
+-version = "0.23.0"
++version = "0.27.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
++checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
+
+ [[package]]
+ name = "h2"
+-version = "0.2.6"
++version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53"
++checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
+ dependencies = [
+ "bytes 0.5.6",
+ "fnv",
+@@ -736,35 +705,48 @@ dependencies = [
+ "tokio",
+ "tokio-util",
+ "tracing",
++ "tracing-futures",
+ ]
+
+ [[package]]
+ name = "hashbrown"
+-version = "0.8.1"
++version = "0.12.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb"
+-dependencies = [
+- "autocfg 1.0.0",
+-]
++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+ [[package]]
+ name = "hermit-abi"
+-version = "0.1.15"
++version = "0.1.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+ dependencies = [
+ "libc",
+ ]
+
+ [[package]]
+-name = "http"
+-version = "0.2.1"
++name = "hermit-abi"
++version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
++checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+ dependencies = [
+- "bytes 0.5.6",
++ "libc",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
++
++[[package]]
++name = "http"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
++dependencies = [
++ "bytes 1.4.0",
+ "fnv",
+- "itoa",
++ "itoa 1.0.6",
+ ]
+
+ [[package]]
+@@ -779,9 +761,15 @@ dependencies = [
+
+ [[package]]
+ name = "httparse"
+-version = "1.3.4"
++version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
++checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
++
++[[package]]
++name = "httpdate"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
+
+ [[package]]
+ name = "humantime"
+@@ -794,9 +782,9 @@ dependencies = [
+
+ [[package]]
+ name = "hyper"
+-version = "0.13.7"
++version = "0.13.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb"
++checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
+ dependencies = [
+ "bytes 0.5.6",
+ "futures-channel",
+@@ -806,10 +794,10 @@ dependencies = [
+ "http",
+ "http-body",
+ "httparse",
+- "itoa",
++ "httpdate",
++ "itoa 0.4.8",
+ "pin-project",
+ "socket2",
+- "time",
+ "tokio",
+ "tower-service",
+ "tracing",
+@@ -829,6 +817,29 @@ dependencies = [
+ "tokio-tls",
+ ]
+
++[[package]]
++name = "iana-time-zone"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
++dependencies = [
++ "android_system_properties",
++ "core-foundation-sys",
++ "iana-time-zone-haiku",
++ "js-sys",
++ "wasm-bindgen",
++ "windows",
++]
++
++[[package]]
++name = "iana-time-zone-haiku"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
++dependencies = [
++ "cc",
++]
++
+ [[package]]
+ name = "ident_case"
+ version = "1.0.1"
+@@ -848,20 +859,19 @@ dependencies = [
+
+ [[package]]
+ name = "idna"
+-version = "0.2.0"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+ dependencies = [
+- "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+ ]
+
+ [[package]]
+ name = "image"
+-version = "0.23.12"
++version = "0.23.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ce04077ead78e39ae8610ad26216aed811996b043d47beed5090db674f9e9b5"
++checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
+ dependencies = [
+ "bytemuck",
+ "byteorder",
+@@ -875,21 +885,32 @@ dependencies = [
+
+ [[package]]
+ name = "indexmap"
+-version = "1.5.0"
++version = "1.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7"
++checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+ dependencies = [
+- "autocfg 1.0.0",
++ "autocfg 1.1.0",
+ "hashbrown",
+ ]
+
+ [[package]]
+ name = "instant"
+-version = "0.1.7"
++version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66"
++checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "io-lifetimes"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
++dependencies = [
++ "hermit-abi 0.3.1",
++ "libc",
++ "windows-sys 0.48.0",
+ ]
+
+ [[package]]
+@@ -901,6 +922,12 @@ dependencies = [
+ "libc",
+ ]
+
++[[package]]
++name = "ipnet"
++version = "2.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
++
+ [[package]]
+ name = "itertools"
+ version = "0.8.2"
+@@ -912,24 +939,27 @@ dependencies = [
+
+ [[package]]
+ name = "itoa"
+-version = "0.4.6"
++version = "0.4.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++
++[[package]]
++name = "itoa"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+ [[package]]
+ name = "jpeg-decoder"
+-version = "0.1.20"
++version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
+-dependencies = [
+- "byteorder",
+-]
++checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
+
+ [[package]]
+ name = "js-sys"
+-version = "0.3.42"
++version = "0.3.63"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2"
++checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790"
+ dependencies = [
+ "wasm-bindgen",
+ ]
+@@ -952,32 +982,39 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.82"
++version = "0.2.144"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929"
++checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+
+ [[package]]
+ name = "linked-hash-map"
+-version = "0.5.3"
++version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
++
++[[package]]
++name = "linux-raw-sys"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+ [[package]]
+ name = "lock_api"
+-version = "0.4.1"
++version = "0.4.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
++checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+ dependencies = [
++ "autocfg 1.1.0",
+ "scopeguard",
+ ]
+
+ [[package]]
+ name = "log"
+-version = "0.4.11"
++version = "0.4.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ ]
+
+ [[package]]
+@@ -991,27 +1028,36 @@ dependencies = [
+
+ [[package]]
+ name = "matches"
+-version = "0.1.8"
++version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
++checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+ [[package]]
+ name = "memchr"
+-version = "2.3.3"
++version = "2.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
++
++[[package]]
++name = "memoffset"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
++dependencies = [
++ "autocfg 1.1.0",
++]
+
+ [[package]]
+ name = "mime"
+-version = "0.3.16"
++version = "0.3.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
++checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+ [[package]]
+ name = "mime_guess"
+-version = "2.0.3"
++version = "2.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
++checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+ dependencies = [
+ "mime",
+ "unicase",
+@@ -1028,12 +1074,21 @@ dependencies = [
+
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.4.3"
++version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
++checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
++dependencies = [
++ "adler",
++ "autocfg 1.1.0",
++]
++
++[[package]]
++name = "miniz_oxide"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+ dependencies = [
+ "adler",
+- "autocfg 1.0.0",
+ ]
+
+ [[package]]
+@@ -1057,14 +1112,13 @@ dependencies = [
+
+ [[package]]
+ name = "mio"
+-version = "0.7.0"
++version = "0.7.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6e9971bc8349a361217a8f2a41f5d011274686bd4436465ba51730921039d7fb"
++checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
+ dependencies = [
+- "lazy_static",
+ "libc",
+ "log",
+- "miow 0.3.5",
++ "miow 0.3.7",
+ "ntapi",
+ "winapi 0.3.9",
+ ]
+@@ -1077,7 +1131,7 @@ checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
+ dependencies = [
+ "log",
+ "mio 0.6.23",
+- "miow 0.3.5",
++ "miow 0.3.7",
+ "winapi 0.3.9",
+ ]
+
+@@ -1106,19 +1160,18 @@ dependencies = [
+
+ [[package]]
+ name = "miow"
+-version = "0.3.5"
++version = "0.3.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e"
++checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
+ dependencies = [
+- "socket2",
+ "winapi 0.3.9",
+ ]
+
+ [[package]]
+ name = "native-tls"
+-version = "0.2.4"
++version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
++checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+ dependencies = [
+ "lazy_static",
+ "libc",
+@@ -1134,9 +1187,9 @@ dependencies = [
+
+ [[package]]
+ name = "net2"
+-version = "0.2.37"
++version = "0.2.38"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
++checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631"
+ dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+@@ -1145,42 +1198,43 @@ dependencies = [
+
+ [[package]]
+ name = "nix"
+-version = "0.20.0"
++version = "0.20.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
++checksum = "f5e06129fb611568ef4e868c14b326274959aa70ff7776e9d55323531c374945"
+ dependencies = [
+ "bitflags",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
++ "memoffset",
+ ]
+
+ [[package]]
+ name = "ntapi"
+-version = "0.3.4"
++version = "0.3.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2"
++checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
+ dependencies = [
+ "winapi 0.3.9",
+ ]
+
+ [[package]]
+ name = "num-integer"
+-version = "0.1.43"
++version = "0.1.45"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
++checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+ dependencies = [
+- "autocfg 1.0.0",
++ "autocfg 1.1.0",
+ "num-traits",
+ ]
+
+ [[package]]
+ name = "num-iter"
+-version = "0.1.42"
++version = "0.1.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
++checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+ dependencies = [
+- "autocfg 1.0.0",
++ "autocfg 1.1.0",
+ "num-integer",
+ "num-traits",
+ ]
+@@ -1191,27 +1245,27 @@ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
+ dependencies = [
+- "autocfg 1.0.0",
++ "autocfg 1.1.0",
+ "num-integer",
+ "num-traits",
+ ]
+
+ [[package]]
+ name = "num-traits"
+-version = "0.2.12"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
++checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+ dependencies = [
+- "autocfg 1.0.0",
++ "autocfg 1.1.0",
+ ]
+
+ [[package]]
+ name = "num_cpus"
+-version = "1.13.0"
++version = "1.15.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+ dependencies = [
+- "hermit-abi",
++ "hermit-abi 0.2.6",
+ "libc",
+ ]
+
+@@ -1246,43 +1300,57 @@ dependencies = [
+
+ [[package]]
+ name = "object"
+-version = "0.23.0"
++version = "0.30.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
++checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
++dependencies = [
++ "memchr",
++]
+
+ [[package]]
+ name = "once_cell"
+-version = "1.4.0"
++version = "1.17.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
++checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+
+ [[package]]
+ name = "openssl"
+-version = "0.10.30"
++version = "0.10.52"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
++checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56"
+ dependencies = [
+ "bitflags",
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ "foreign-types",
+- "lazy_static",
+ "libc",
++ "once_cell",
++ "openssl-macros",
+ "openssl-sys",
+ ]
+
+ [[package]]
+-name = "openssl-probe"
+-version = "0.1.2"
++name = "openssl-macros"
++version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
++checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
++dependencies = [
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+ [[package]]
+ name = "openssl-sys"
+-version = "0.9.58"
++version = "0.9.87"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
++checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e"
+ dependencies = [
+- "autocfg 1.0.0",
+ "cc",
+ "libc",
+ "pkg-config",
+@@ -1291,9 +1359,9 @@ dependencies = [
+
+ [[package]]
+ name = "parking_lot"
+-version = "0.11.0"
++version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
++checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+ dependencies = [
+ "instant",
+ "lock_api",
+@@ -1302,15 +1370,14 @@ dependencies = [
+
+ [[package]]
+ name = "parking_lot_core"
+-version = "0.8.0"
++version = "0.8.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
++checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+ dependencies = [
+- "cfg-if 0.1.10",
+- "cloudabi 0.1.0",
++ "cfg-if 1.0.0",
+ "instant",
+ "libc",
+- "redox_syscall",
++ "redox_syscall 0.2.16",
+ "smallvec",
+ "winapi 0.3.9",
+ ]
+@@ -1323,35 +1390,41 @@ checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+
+ [[package]]
+ name = "percent-encoding"
+-version = "2.1.0"
++version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
++checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+ [[package]]
+ name = "pin-project"
+-version = "0.4.22"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
++checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead"
+ dependencies = [
+ "pin-project-internal",
+ ]
+
+ [[package]]
+ name = "pin-project-internal"
+-version = "0.4.22"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
++checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
+ ]
+
+ [[package]]
+ name = "pin-project-lite"
+-version = "0.1.7"
++version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715"
++checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
++
++[[package]]
++name = "pin-project-lite"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+ [[package]]
+ name = "pin-utils"
+@@ -1361,9 +1434,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.18"
++version = "0.3.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
++checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+
+ [[package]]
+ name = "png"
+@@ -1379,21 +1452,9 @@ dependencies = [
+
+ [[package]]
+ name = "ppv-lite86"
+-version = "0.2.8"
++version = "0.2.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+-
+-[[package]]
+-name = "proc-macro-hack"
+-version = "0.5.16"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
+-
+-[[package]]
+-name = "proc-macro-nested"
+-version = "0.1.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
++checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+ [[package]]
+ name = "proc-macro2"
+@@ -1406,11 +1467,11 @@ dependencies = [
+
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.24"
++version = "1.0.58"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8"
+ dependencies = [
+- "unicode-xid 0.2.1",
++ "unicode-ident",
+ ]
+
+ [[package]]
+@@ -1430,11 +1491,11 @@ dependencies = [
+
+ [[package]]
+ name = "quote"
+-version = "1.0.7"
++version = "1.0.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
+ dependencies = [
+- "proc-macro2 1.0.24",
++ "proc-macro2 1.0.58",
+ ]
+
+ [[package]]
+@@ -1443,11 +1504,11 @@ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+ dependencies = [
+- "autocfg 0.1.7",
++ "autocfg 0.1.8",
+ "libc",
+ "rand_chacha 0.1.1",
+ "rand_core 0.4.2",
+- "rand_hc 0.1.0",
++ "rand_hc",
+ "rand_isaac",
+ "rand_jitter",
+ "rand_os",
+@@ -1458,27 +1519,13 @@ dependencies = [
+
+ [[package]]
+ name = "rand"
+-version = "0.7.3"
++version = "0.8.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+-dependencies = [
+- "getrandom 0.1.14",
+- "libc",
+- "rand_chacha 0.2.2",
+- "rand_core 0.5.1",
+- "rand_hc 0.2.0",
+-]
+-
+-[[package]]
+-name = "rand"
+-version = "0.8.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+ dependencies = [
+ "libc",
+- "rand_chacha 0.3.0",
+- "rand_core 0.6.2",
+- "rand_hc 0.3.0",
++ "rand_chacha 0.3.1",
++ "rand_core 0.6.4",
+ ]
+
+ [[package]]
+@@ -1487,28 +1534,18 @@ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+ dependencies = [
+- "autocfg 0.1.7",
++ "autocfg 0.1.8",
+ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "rand_chacha"
+-version = "0.2.2"
++version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+ dependencies = [
+ "ppv-lite86",
+- "rand_core 0.5.1",
+-]
+-
+-[[package]]
+-name = "rand_chacha"
+-version = "0.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
+-dependencies = [
+- "ppv-lite86",
+- "rand_core 0.6.2",
++ "rand_core 0.6.4",
+ ]
+
+ [[package]]
+@@ -1528,20 +1565,11 @@ checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+ [[package]]
+ name = "rand_core"
+-version = "0.5.1"
++version = "0.6.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+ dependencies = [
+- "getrandom 0.1.14",
+-]
+-
+-[[package]]
+-name = "rand_core"
+-version = "0.6.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
+-dependencies = [
+- "getrandom 0.2.2",
++ "getrandom",
+ ]
+
+ [[package]]
+@@ -1553,24 +1581,6 @@ dependencies = [
+ "rand_core 0.3.1",
+ ]
+
+-[[package]]
+-name = "rand_hc"
+-version = "0.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+-dependencies = [
+- "rand_core 0.5.1",
+-]
+-
+-[[package]]
+-name = "rand_hc"
+-version = "0.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
+-dependencies = [
+- "rand_core 0.6.2",
+-]
+-
+ [[package]]
+ name = "rand_isaac"
+ version = "0.1.1"
+@@ -1597,7 +1607,7 @@ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+ dependencies = [
+- "cloudabi 0.0.3",
++ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.4.2",
+@@ -1611,7 +1621,7 @@ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+ dependencies = [
+- "autocfg 0.1.7",
++ "autocfg 0.1.8",
+ "rand_core 0.4.2",
+ ]
+
+@@ -1641,55 +1651,57 @@ dependencies = [
+
+ [[package]]
+ name = "redox_syscall"
+-version = "0.1.57"
++version = "0.2.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
++dependencies = [
++ "bitflags",
++]
+
+ [[package]]
+ name = "redox_users"
+-version = "0.3.4"
++version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
++checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+ dependencies = [
+- "getrandom 0.1.14",
+- "redox_syscall",
+- "rust-argon2",
++ "getrandom",
++ "redox_syscall 0.2.16",
++ "thiserror",
+ ]
+
+ [[package]]
+ name = "regex"
+-version = "1.3.9"
++version = "1.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
++checksum = "d1a59b5d8e97dee33696bf13c5ba8ab85341c002922fba050069326b9c498974"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+- "thread_local",
+ ]
+
+ [[package]]
+ name = "regex-syntax"
+-version = "0.6.18"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+-
+-[[package]]
+-name = "remove_dir_all"
+-version = "0.5.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+-dependencies = [
+- "winapi 0.3.9",
+-]
++checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+
+ [[package]]
+ name = "reqwest"
+-version = "0.10.6"
++version = "0.10.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3b82c9238b305f26f53443e3a4bc8528d64b8d0bee408ec949eb7bf5635ec680"
++checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c"
+ dependencies = [
+- "base64 0.12.3",
++ "base64 0.13.1",
+ "bytes 0.5.6",
+ "encoding_rs",
+ "futures-core",
+@@ -1698,21 +1710,22 @@ dependencies = [
+ "http-body",
+ "hyper",
+ "hyper-tls",
++ "ipnet",
+ "js-sys",
+ "lazy_static",
+ "log",
+ "mime",
+ "mime_guess",
+ "native-tls",
+- "percent-encoding 2.1.0",
+- "pin-project-lite",
++ "percent-encoding 2.2.0",
++ "pin-project-lite 0.2.9",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-socks",
+ "tokio-tls",
+- "url 2.1.1",
++ "url 2.3.1",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+@@ -1745,23 +1758,11 @@ dependencies = [
+ "webbrowser",
+ ]
+
+-[[package]]
+-name = "rust-argon2"
+-version = "0.7.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+-dependencies = [
+- "base64 0.11.0",
+- "blake2b_simd",
+- "constant_time_eq",
+- "crossbeam-utils",
+-]
+-
+ [[package]]
+ name = "rustc-demangle"
+-version = "0.1.16"
++version = "0.1.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+ [[package]]
+ name = "rustc-serialize"
+@@ -1770,19 +1771,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+
+ [[package]]
+-name = "ryu"
+-version = "1.0.5"
++name = "rustix"
++version = "0.37.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++checksum = "f79bef90eb6d984c72722595b5b1348ab39275a5e5123faca6863bf07d75a4e0"
++dependencies = [
++ "bitflags",
++ "errno",
++ "io-lifetimes",
++ "libc",
++ "linux-raw-sys",
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+
+ [[package]]
+ name = "schannel"
+-version = "0.1.19"
++version = "0.1.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
++checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+ dependencies = [
+- "lazy_static",
+- "winapi 0.3.9",
++ "windows-sys 0.42.0",
+ ]
+
+ [[package]]
+@@ -1793,87 +1807,87 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+ [[package]]
+ name = "security-framework"
+-version = "0.4.4"
++version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535"
++checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
+ dependencies = [
+ "bitflags",
+- "core-foundation 0.7.0",
+- "core-foundation-sys 0.7.0",
++ "core-foundation",
++ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+ ]
+
+ [[package]]
+ name = "security-framework-sys"
+-version = "0.4.3"
++version = "2.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405"
++checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+ dependencies = [
+- "core-foundation-sys 0.7.0",
++ "core-foundation-sys",
+ "libc",
+ ]
+
+ [[package]]
+ name = "serde"
+-version = "1.0.128"
++version = "1.0.163"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1056a0db1978e9dbf0f6e4fca677f6f9143dc1c19de346f22cac23e422196834"
++checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
+ dependencies = [
+ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.128"
++version = "1.0.163"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "13af2fbb8b60a8950d6c72a56d2095c28870367cc8e10c55e9745bac4995a2c4"
++checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
+ ]
+
+ [[package]]
+ name = "serde_json"
+-version = "1.0.64"
++version = "1.0.96"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
++checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+ dependencies = [
+- "itoa",
++ "itoa 1.0.6",
+ "ryu",
+ "serde",
+ ]
+
+ [[package]]
+ name = "serde_urlencoded"
+-version = "0.6.1"
++version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
++checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+ dependencies = [
+- "dtoa",
+- "itoa",
++ "form_urlencoded",
++ "itoa 1.0.6",
++ "ryu",
+ "serde",
+- "url 2.1.1",
+ ]
+
+ [[package]]
+ name = "serde_yaml"
+-version = "0.8.19"
++version = "0.8.26"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6375dbd828ed6964c3748e4ef6d18e7a175d408ffe184bca01698d0c73f915a9"
++checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
+ dependencies = [
+- "dtoa",
+ "indexmap",
++ "ryu",
+ "serde",
+ "yaml-rust",
+ ]
+
+ [[package]]
+ name = "signal-hook"
+-version = "0.3.9"
++version = "0.3.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "470c5a6397076fae0094aaf06a08e6ba6f37acb77d3b1b91ea92b4d6c8650c39"
++checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+ dependencies = [
+ "libc",
+ "signal-hook-registry",
+@@ -1881,45 +1895,47 @@ dependencies = [
+
+ [[package]]
+ name = "signal-hook-mio"
+-version = "0.2.1"
++version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "29fd5867f1c4f2c5be079aee7a2adf1152ebb04a4bc4d341f504b7dece607ed4"
++checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+ dependencies = [
+ "libc",
+- "mio 0.7.0",
++ "mio 0.7.14",
+ "signal-hook",
+ ]
+
+ [[package]]
+ name = "signal-hook-registry"
+-version = "1.4.0"
++version = "1.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
++checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+ dependencies = [
+ "libc",
+ ]
+
+ [[package]]
+ name = "slab"
+-version = "0.4.2"
++version = "0.4.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
++dependencies = [
++ "autocfg 1.1.0",
++]
+
+ [[package]]
+ name = "smallvec"
+-version = "1.4.1"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f"
++checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+
+ [[package]]
+ name = "socket2"
+-version = "0.3.12"
++version = "0.3.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
++checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ "libc",
+- "redox_syscall",
+ "winapi 0.3.9",
+ ]
+
+@@ -1933,7 +1949,7 @@ dependencies = [
+ "clap",
+ "crossterm",
+ "dirs",
+- "rand 0.8.3",
++ "rand 0.8.5",
+ "rspotify",
+ "serde",
+ "serde_json",
+@@ -1945,9 +1961,9 @@ dependencies = [
+
+ [[package]]
+ name = "str-buf"
+-version = "1.0.5"
++version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d44a3643b4ff9caf57abcee9c2c621d6c03d9135e0d8b589bd9afb5992cb176a"
++checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+ [[package]]
+ name = "strsim"
+@@ -1974,46 +1990,56 @@ dependencies = [
+
+ [[package]]
+ name = "syn"
+-version = "1.0.60"
++version = "1.0.109"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "unicode-xid 0.2.1",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "unicode-ident",
++]
++
++[[package]]
++name = "syn"
++version = "2.0.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
++dependencies = [
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "unicode-ident",
+ ]
+
+ [[package]]
+ name = "synstructure"
+-version = "0.12.4"
++version = "0.12.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
+- "unicode-xid 0.2.1",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 1.0.109",
++ "unicode-xid 0.2.4",
+ ]
+
+ [[package]]
+ name = "tempfile"
+-version = "3.1.0"
++version = "3.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+ dependencies = [
+- "cfg-if 0.1.10",
+- "libc",
+- "rand 0.7.3",
+- "redox_syscall",
+- "remove_dir_all",
+- "winapi 0.3.9",
++ "cfg-if 1.0.0",
++ "fastrand",
++ "redox_syscall 0.3.5",
++ "rustix",
++ "windows-sys 0.45.0",
+ ]
+
+ [[package]]
+ name = "termcolor"
+-version = "1.1.0"
++version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+ dependencies = [
+ "winapi-util",
+ ]
+@@ -2029,31 +2055,22 @@ dependencies = [
+
+ [[package]]
+ name = "thiserror"
+-version = "1.0.20"
++version = "1.0.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
++checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+ dependencies = [
+ "thiserror-impl",
+ ]
+
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.20"
++version = "1.0.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
++checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
+-]
+-
+-[[package]]
+-name = "thread_local"
+-version = "1.0.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+-dependencies = [
+- "lazy_static",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
+ ]
+
+ [[package]]
+@@ -2063,25 +2080,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
+ dependencies = [
+ "jpeg-decoder",
+- "miniz_oxide 0.4.3",
++ "miniz_oxide 0.4.4",
+ "weezl",
+ ]
+
+ [[package]]
+ name = "time"
+-version = "0.1.43"
++version = "0.1.45"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
+ dependencies = [
+ "libc",
++ "wasi 0.10.0+wasi-snapshot-preview1",
+ "winapi 0.3.9",
+ ]
+
+ [[package]]
+ name = "tinyvec"
+-version = "0.3.3"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
++checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
++dependencies = [
++ "tinyvec_macros",
++]
++
++[[package]]
++name = "tinyvec_macros"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+ [[package]]
+ name = "tokio"
+@@ -2100,7 +2127,7 @@ dependencies = [
+ "mio-named-pipes",
+ "mio-uds",
+ "num_cpus",
+- "pin-project-lite",
++ "pin-project-lite 0.1.12",
+ "signal-hook-registry",
+ "slab",
+ "tokio-macros",
+@@ -2113,16 +2140,16 @@ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 1.0.109",
+ ]
+
+ [[package]]
+ name = "tokio-socks"
+-version = "0.2.2"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1997788a0e25e09300e44680ba1ef9d44d6f634a883641f80109e8b59c928daf"
++checksum = "d611fd5d241872372d52a0a3d309c52d0b95a6a67671a6c8f7ab2c4a37fb2539"
+ dependencies = [
+ "bytes 0.4.12",
+ "either",
+@@ -2151,41 +2178,52 @@ dependencies = [
+ "futures-core",
+ "futures-sink",
+ "log",
+- "pin-project-lite",
++ "pin-project-lite 0.1.12",
+ "tokio",
+ ]
+
+ [[package]]
+ name = "tower-service"
+-version = "0.3.0"
++version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
++checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+ [[package]]
+ name = "tracing"
+-version = "0.1.17"
++version = "0.1.37"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dbdf4ccd1652592b01286a5dbe1e2a77d78afaa34beadd9872a5f7396f92aaa9"
++checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ "log",
++ "pin-project-lite 0.2.9",
+ "tracing-core",
+ ]
+
+ [[package]]
+ name = "tracing-core"
+-version = "0.1.11"
++version = "0.1.31"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "94ae75f0d28ae10786f3b1895c55fe72e79928fd5ccdebb5438c75e93fec178f"
++checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+ dependencies = [
+- "lazy_static",
++ "once_cell",
++]
++
++[[package]]
++name = "tracing-futures"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
++dependencies = [
++ "pin-project",
++ "tracing",
+ ]
+
+ [[package]]
+ name = "try-lock"
+-version = "0.2.3"
++version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
++checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+
+ [[package]]
+ name = "tui"
+@@ -2211,33 +2249,36 @@ dependencies = [
+
+ [[package]]
+ name = "unicode-bidi"
+-version = "0.3.4"
++version = "0.3.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-dependencies = [
+- "matches",
+-]
++checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+
+ [[package]]
+ name = "unicode-normalization"
+-version = "0.1.13"
++version = "0.1.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
++checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+ dependencies = [
+ "tinyvec",
+ ]
+
+ [[package]]
+ name = "unicode-segmentation"
+-version = "1.6.0"
++version = "1.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.8"
++version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+ [[package]]
+ name = "unicode-xid"
+@@ -2247,9 +2288,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+ [[package]]
+ name = "unicode-xid"
+-version = "0.2.1"
++version = "0.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+ [[package]]
+ name = "url"
+@@ -2264,20 +2305,20 @@ dependencies = [
+
+ [[package]]
+ name = "url"
+-version = "2.1.1"
++version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
++checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+ dependencies = [
+- "idna 0.2.0",
+- "matches",
+- "percent-encoding 2.1.0",
++ "form_urlencoded",
++ "idna 0.3.0",
++ "percent-encoding 2.2.0",
+ ]
+
+ [[package]]
+ name = "vcpkg"
+-version = "0.2.10"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+ [[package]]
+ name = "vec_map"
+@@ -2287,9 +2328,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+ [[package]]
+ name = "version_check"
+-version = "0.9.2"
++version = "0.9.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+ [[package]]
+ name = "want"
+@@ -2303,23 +2344,23 @@ dependencies = [
+
+ [[package]]
+ name = "wasi"
+-version = "0.9.0+wasi-snapshot-preview1"
++version = "0.10.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+
+ [[package]]
+ name = "wasi"
+-version = "0.10.2+wasi-snapshot-preview1"
++version = "0.11.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
++checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+ [[package]]
+ name = "wasm-bindgen"
+-version = "0.2.65"
++version = "0.2.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d"
++checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ "serde",
+ "serde_json",
+ "wasm-bindgen-macro",
+@@ -2327,26 +2368,26 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-backend"
+-version = "0.2.65"
++version = "0.2.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d"
++checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb"
+ dependencies = [
+ "bumpalo",
+- "lazy_static",
+ "log",
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "once_cell",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
+ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-futures"
+-version = "0.4.15"
++version = "0.4.36"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "41ad6e4e8b2b7f8c90b6e09a9b590ea15cb0d1dbe28502b5a405cd95d1981671"
++checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e"
+ dependencies = [
+- "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+@@ -2354,38 +2395,38 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-macro"
+-version = "0.2.65"
++version = "0.2.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e"
++checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
+ dependencies = [
+- "quote 1.0.7",
++ "quote 1.0.27",
+ "wasm-bindgen-macro-support",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-macro-support"
+-version = "0.2.65"
++version = "0.2.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6"
++checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
+ dependencies = [
+- "proc-macro2 1.0.24",
+- "quote 1.0.7",
+- "syn 1.0.60",
++ "proc-macro2 1.0.58",
++ "quote 1.0.27",
++ "syn 2.0.16",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-shared"
+-version = "0.2.65"
++version = "0.2.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87"
++checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93"
+
+ [[package]]
+ name = "web-sys"
+-version = "0.3.42"
++version = "0.3.63"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2"
++checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2"
+ dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+@@ -2404,15 +2445,15 @@ dependencies = [
+
+ [[package]]
+ name = "weezl"
+-version = "0.1.3"
++version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3e2bb9fc8309084dd7cd651336673844c1d47f8ef6d2091ec160b27f5c4aa277"
++checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+
+ [[package]]
+ name = "widestring"
+-version = "0.4.2"
++version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a763e303c0e0f23b0da40888724762e802a8ffefbc22de4127ef42493c2ea68c"
++checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
+
+ [[package]]
+ name = "winapi"
+@@ -2466,6 +2507,162 @@ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
++[[package]]
++name = "windows"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
++dependencies = [
++ "windows-targets 0.48.0",
++]
++
++[[package]]
++name = "windows-sys"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
++dependencies = [
++ "windows_aarch64_gnullvm 0.42.2",
++ "windows_aarch64_msvc 0.42.2",
++ "windows_i686_gnu 0.42.2",
++ "windows_i686_msvc 0.42.2",
++ "windows_x86_64_gnu 0.42.2",
++ "windows_x86_64_gnullvm 0.42.2",
++ "windows_x86_64_msvc 0.42.2",
++]
++
++[[package]]
++name = "windows-sys"
++version = "0.45.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
++dependencies = [
++ "windows-targets 0.42.2",
++]
++
++[[package]]
++name = "windows-sys"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
++dependencies = [
++ "windows-targets 0.48.0",
++]
++
++[[package]]
++name = "windows-targets"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
++dependencies = [
++ "windows_aarch64_gnullvm 0.42.2",
++ "windows_aarch64_msvc 0.42.2",
++ "windows_i686_gnu 0.42.2",
++ "windows_i686_msvc 0.42.2",
++ "windows_x86_64_gnu 0.42.2",
++ "windows_x86_64_gnullvm 0.42.2",
++ "windows_x86_64_msvc 0.42.2",
++]
++
++[[package]]
++name = "windows-targets"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
++dependencies = [
++ "windows_aarch64_gnullvm 0.48.0",
++ "windows_aarch64_msvc 0.48.0",
++ "windows_i686_gnu 0.48.0",
++ "windows_i686_msvc 0.48.0",
++ "windows_x86_64_gnu 0.48.0",
++ "windows_x86_64_gnullvm 0.48.0",
++ "windows_x86_64_msvc 0.48.0",
++]
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
++
+ [[package]]
+ name = "winreg"
+ version = "0.7.0"
diff --git a/testing/spread-sheet-widget/APKBUILD b/testing/spread-sheet-widget/APKBUILD
new file mode 100644
index 00000000000..8bac4185b2e
--- /dev/null
+++ b/testing/spread-sheet-widget/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=spread-sheet-widget
+pkgver=0.8
+pkgrel=0
+pkgdesc="gtk+ lib for 2 dimensional tabular data"
+url="https://www.gnu.org/software/ssw/"
+arch="all"
+license="GPL-3.0-only"
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc"
+source="https://alpha.gnu.org/gnu/ssw/spread-sheet-widget-$pkgver.tar.gz"
+makedepends="
+ gtk+3.0-dev
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-stripping
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+022941d9064bad83835345a999358b57ec2897650079326427be78600269762dc492d2d7674c6c5c2c3b46fa619786e5f02c15bd731a163cf2ff98ea22d25682 spread-sheet-widget-0.8.tar.gz
+"
diff --git a/testing/spreed-webrtc/APKBUILD b/testing/spreed-webrtc/APKBUILD
deleted file mode 100644
index 92a8427c525..00000000000
--- a/testing/spreed-webrtc/APKBUILD
+++ /dev/null
@@ -1,58 +0,0 @@
-# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=spreed-webrtc
-pkgver=0.29.7
-pkgrel=3
-pkgdesc="WebRTC audio/video call and conferencing server"
-url="http://spreed.me"
-arch="all !mips !mips64" # blocked by nodejs
-license="AGPL-3.0"
-makedepends="autoconf automake go go-context go-acceptlanguageparser
- go-conf go-httputils go-mux go-nats go-nuid go-pkac go-phoenix
- go-securecookie go-sloth go-spreed-turnservicecli go-uuid go-websocket
- nodejs"
-install="$pkgname.pre-install"
-subpackages="$pkgname-doc"
-pkgusers="spreed"
-pkggroups="spreed"
-_vendor="strukturag"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_vendor/spreed-webrtc/archive/v$pkgver.tar.gz
- $pkgname.initd"
-builddir="$srcdir"/$pkgname-$pkgver
-
-prepare() {
- cd "$builddir"
- ./autogen.sh
- #some libraries aren't in the expected path in the tarball
- mkdir -p src/github.com/$_vendor/$pkgname && mv go src/github.com/$_vendor/$pkgname
- #fix default server config
- sed -i 's|;root = /usr/share/spreed-webrtc-server/www|root = /usr/share/spreed-webrtc-server/www|' \
- server.conf.in
-}
-
-build() {
- cd "$builddir"
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info
- make GOPATH="$GOPATH $builddir/go:$builddir/src" assets
- make GOPATH="$GOPATH $builddir:$builddir/go:$builddir/src" binaryall
-}
-
-check() {
- cd "$builddir"
- make test
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname
- mv doc/* "$pkgdir"/usr/share/doc/$pkgname
- install -m644 -D server.conf.in "$pkgdir"/etc/$pkgname/${pkgname}-server.conf
- install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/${pkgname}-server
-}
-
-sha512sums="bc4acf1dc53325c4da19429a802fdba8d72e619dbf7e872d007b87fbc711e9e63962a83c770f77d44c2454bc038bef0306d57556e86381d4e4c48262030af30b spreed-webrtc-0.29.7.tar.gz
-1419b5cbec88f18de71d5dc550bde3d784fc744f0675115ad57e55ebbdbc9f65222584f806bfd6ed2a9b3d4e1c14fe92d8f220cd105851abcb4f4956a6cf6e3a spreed-webrtc.initd"
diff --git a/testing/spreed-webrtc/spreed-webrtc.initd b/testing/spreed-webrtc/spreed-webrtc.initd
deleted file mode 100644
index 1622781c9f9..00000000000
--- a/testing/spreed-webrtc/spreed-webrtc.initd
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/sbin/openrc-run
-
-command=/usr/sbin/spreed-webrtc-server
-pidfile=/var/run/spreed-webrtc/${SVCNAME}.pid
-conf=/etc/spreed-webrtc/${SVCNAME}.conf
-logfile=/var/log/spreed-webrtc/spreed-webrtc-server.log
-command_args="-c $conf -l $logfile"
-
-: ${exec_user:=spreed}
-: ${exec_group:=spreed}
-
-start_stop_daemon_args="--user $exec_user --group $exec_group --background --make-pidfile"
-
-depend() {
- need net
- after firewall
-}
-
-start_pre() {
- checkpath --directory ${pidfile%/*} --directory ${logfile%/*} \
- --owner ${exec_user}:${exec_group}
-}
diff --git a/testing/spreed-webrtc/spreed-webrtc.pre-install b/testing/spreed-webrtc/spreed-webrtc.pre-install
deleted file mode 100644
index a14b9033fd3..00000000000
--- a/testing/spreed-webrtc/spreed-webrtc.pre-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-addgroup -S spreed 2>/dev/null
-adduser -h /usr/share/spreed-webrtc -s /sbin/nologin -G spreed -S -D spreed 2>/dev/null
-exit 0
diff --git a/testing/spvm-errno/APKBUILD b/testing/spvm-errno/APKBUILD
new file mode 100644
index 00000000000..cce4c77c8d3
--- /dev/null
+++ b/testing/spvm-errno/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=spvm-errno
+pkgver=0.092
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SPVM-Errno
+pkgdesc="SPVM Language - Error Numbers"
+url="https://metacpan.org/release/SPVM-Errno/"
+arch="all !s390x !armhf !armv7 !x86" # spvm
+license="MIT"
+depends="perl spvm"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KI/KIMOTO/SPVM-Errno-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7411a31330a6fcc42cd8aac339926ce4d5d8a91e56755ecca67d7008f4fe2c7297a99931327152ebc6a1ec563a7d029e78ed72e13fa2751d30607b1810e4c198 SPVM-Errno-0.092.tar.gz
+"
diff --git a/testing/spvm-math/APKBUILD b/testing/spvm-math/APKBUILD
new file mode 100644
index 00000000000..9323cb4d436
--- /dev/null
+++ b/testing/spvm-math/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=spvm-math
+pkgver=1.001
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SPVM-Math
+pkgdesc="SPVM Language - Mathematical Functions"
+url="https://metacpan.org/release/SPVM-Math/"
+arch="all !s390x !armhf !armv7 !x86" # spvm
+license="MIT"
+depends="perl spvm"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KI/KIMOTO/SPVM-Math-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+9a2993820f04933c837bb3a61016eac41c730f926e2adc2a5ceb0e3e1caeb5f10582dd3c1f809ca02a139da73f4ec655608622e31bf0eb1952246cc2e8c027e2 SPVM-Math-1.001.tar.gz
+"
diff --git a/testing/spvm-mime-base64/APKBUILD b/testing/spvm-mime-base64/APKBUILD
new file mode 100644
index 00000000000..91a1ea1605a
--- /dev/null
+++ b/testing/spvm-mime-base64/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=spvm-mime-base64
+pkgver=1.001003
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SPVM-MIME-Base64
+pkgdesc="SPVM Language - Base64 Encoding/Decoding"
+url="https://metacpan.org/release/SPVM-MIME-Base64/"
+arch="all !s390x !armhf !armv7 !x86" # spvm
+license="MIT"
+depends="perl spvm"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KI/KIMOTO/SPVM-MIME-Base64-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+939625523c0ab06081ba68bb33c58ca29574b095bf050482ce8e5bfdf18b0b78b899caeaead473298e38bbda097df87c7ed1b7e3a9266545e3162f881483c5de SPVM-MIME-Base64-1.001003.tar.gz
+"
diff --git a/testing/spvm-thread/APKBUILD b/testing/spvm-thread/APKBUILD
new file mode 100644
index 00000000000..53ec846197c
--- /dev/null
+++ b/testing/spvm-thread/APKBUILD
@@ -0,0 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=spvm-thread
+pkgver=0.001
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=SPVM-Thread
+pkgdesc="SPVM Language - Native Thread"
+url="https://metacpan.org/release/SPVM-Thread/"
+arch="all !s390x !armhf !armv7 !x86" # spvm
+license="MIT"
+depends="perl spvm"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/K/KI/KIMOTO/SPVM-Thread-$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
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+1af9c85c91bef0da6362c01839017f2935af6856cb97ae7f6be1476398789aee4c2d566ee58cc692233532c90e870dc84c380295010b9e0798325e66240216f9 SPVM-Thread-0.001.tar.gz
+"
diff --git a/testing/sqlar/APKBUILD b/testing/sqlar/APKBUILD
index c74e547aac3..133bc833127 100644
--- a/testing/sqlar/APKBUILD
+++ b/testing/sqlar/APKBUILD
@@ -3,7 +3,7 @@
pkgname="sqlar"
pkgver=0_git20180107
_commit=4824e7389653a46f
-pkgrel=0
+pkgrel=1
pkgdesc="SQLite Archiver"
url="https://sqlite.org/sqlar"
arch="all"
diff --git a/testing/sqliteodbc/APKBUILD b/testing/sqliteodbc/APKBUILD
index 85d969e51f9..d799d5d1632 100644
--- a/testing/sqliteodbc/APKBUILD
+++ b/testing/sqliteodbc/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Robert Boisvert <rdboisvert@gmail.com>
# Maintainer: Robert Boisvert <rdboisvert@gmail.com>
pkgname=sqliteodbc
-pkgver=0.9996
+pkgver=0.99991
pkgrel=0
pkgdesc="SQLite ODBC driver"
url="http://www.ch-werner.de/sqliteodbc"
@@ -29,4 +29,6 @@ package() {
rm $pkgdir/usr/lib/*.la $pkgdir/usr/lib/*.a
}
-sha512sums="d50ee33f60f2dacede2c72443b4540cd6fc267c132ddb9933d9df8ccb5c6dcc8c81b42a3d2c024ebed293482b15399f504a84ef3dc28f1f229348e6f8ea6aa64 sqliteodbc-0.9996.tar.gz"
+sha512sums="
+ba45b4646083e577e7c54995e0d929fbc2a3bc4ed1667e4422521b6c035f3775f7c5d0ae9985808b8680bc9c2b5b79606289fd047a8805c82ce34d5631239285 sqliteodbc-0.99991.tar.gz
+"
diff --git a/testing/sqlmap/APKBUILD b/testing/sqlmap/APKBUILD
new file mode 100644
index 00000000000..8728afaccb6
--- /dev/null
+++ b/testing/sqlmap/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=sqlmap
+pkgver=1.8.4
+pkgrel=0
+pkgdesc="Automatic SQL injection and database takeover tool"
+url="https://sqlmap.org/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="
+ py3-beautifulsoup4
+ py3-bottle
+ py3-chardet
+ py3-colorama
+ py3-keepalive
+ py3-magic
+ py3-pydes
+ py3-six
+ py3-termcolor
+ "
+makedepends="py3-setuptools py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://pypi.python.org/packages/source/s/sqlmap/sqlmap-$pkgver.tar.gz
+ reduce-amount-of-third-party-dependencies.patch"
+options="!check" # fail with py311 for some reason
+
+prepare() {
+ # remove unneeded thirdparty moduels (keep patch small)
+ cd sqlmap/thirdparty
+ rm -rf chardet bottle beautifulsoup colorama keepalive magic odict \
+ pydes six termcolor
+
+ # pip sources hierarchy is not exactly the same as git
+ local builddir="$builddir"/sqlmap
+ default_prepare
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+3cf79e057dffabdeeb5765ed99a86f2df0e8a404174b05e1d542a231de5ab31b9609a90647c79a7f7e62ce7fe1dee8426a06129ba3cdc5fdd38838156fe1cd50 sqlmap-1.8.4.tar.gz
+ee1d03843a6011c20da52f4dce329c8da412e08b4dcdf66a8d7685bf3816df0835d77c0ad52005ee63af6fdc8787e086db5837bdfb19c6e5122455df22ac0f11 reduce-amount-of-third-party-dependencies.patch
+"
diff --git a/testing/sqlmap/reduce-amount-of-third-party-dependencies.patch b/testing/sqlmap/reduce-amount-of-third-party-dependencies.patch
new file mode 100644
index 00000000000..bf0ff7adba8
--- /dev/null
+++ b/testing/sqlmap/reduce-amount-of-third-party-dependencies.patch
@@ -0,0 +1,897 @@
+From e76995bd6a15acee16481d39585ddc3018a6d7af Mon Sep 17 00:00:00 2001
+From: Maxim Karasev <begs@disroot.org>
+Date: Sat, 6 Aug 2022 20:44:51 +0300
+Subject: [PATCH] reduce amount of third party dependencies
+
+---
+ lib/controller/checks.py | 4 ++--
+ lib/core/agent.py | 2 +-
+ lib/core/common.py | 26 ++++++++++++-------------
+ lib/core/convert.py | 6 +++---
+ lib/core/datatype.py | 4 ++--
+ lib/core/dump.py | 4 ++--
+ lib/core/gui.py | 10 +++++-----
+ lib/core/option.py | 12 ++++++------
+ lib/core/patch.py | 8 ++++----
+ lib/core/settings.py | 4 ++--
+ lib/core/target.py | 6 +++---
+ lib/core/update.py | 2 +-
+ lib/core/wordlist.py | 2 +-
+ lib/parse/cmdline.py | 2 +-
+ lib/parse/sitemap.py | 2 +-
+ lib/request/basic.py | 10 +++++-----
+ lib/request/basicauthhandler.py | 2 +-
+ lib/request/chunkedhandler.py | 2 +-
+ lib/request/comparison.py | 2 +-
+ lib/request/connect.py | 10 +++++-----
+ lib/request/httpshandler.py | 4 ++--
+ lib/request/inject.py | 2 +-
+ lib/request/methodrequest.py | 2 +-
+ lib/request/pkihandler.py | 4 ++--
+ lib/request/rangehandler.py | 2 +-
+ lib/request/redirecthandler.py | 4 ++--
+ lib/takeover/abstraction.py | 2 +-
+ lib/takeover/metasploit.py | 2 +-
+ lib/takeover/web.py | 2 +-
+ lib/techniques/error/use.py | 2 +-
+ lib/techniques/union/use.py | 4 ++--
+ lib/utils/api.py | 24 +++++++++++------------
+ lib/utils/crawler.py | 8 ++++----
+ lib/utils/har.py | 4 ++--
+ lib/utils/hash.py | 10 +++++-----
+ lib/utils/hashdb.py | 2 +-
+ lib/utils/httpd.py | 10 +++++-----
+ lib/utils/pivotdumptable.py | 2 +-
+ lib/utils/purge.py | 2 +-
+ lib/utils/search.py | 4 ++--
+ lib/utils/sqlalchemy.py | 2 +-
+ plugins/dbms/maxdb/enumeration.py | 4 ++--
+ plugins/dbms/mssqlserver/enumeration.py | 2 +-
+ plugins/dbms/sybase/enumeration.py | 4 ++--
+ plugins/generic/custom.py | 2 +-
+ plugins/generic/databases.py | 2 +-
+ plugins/generic/entries.py | 4 ++--
+ plugins/generic/search.py | 2 +-
+ plugins/generic/users.py | 2 +-
+ thirdparty/multipart/multipartpost.py | 2 +-
+ 50 files changed, 121 insertions(+), 121 deletions(-)
+
+diff --git a/lib/controller/checks.py b/lib/controller/checks.py
+index b0d5fd6..71e0b29 100644
+--- a/lib/controller/checks.py
++++ b/lib/controller/checks.py
+@@ -102,8 +102,8 @@ from lib.request.inject import checkBooleanExpression
+ from lib.request.templates import getPageTemplate
+ from lib.techniques.union.test import unionTest
+ from lib.techniques.union.use import configUnion
+-from thirdparty import six
+-from thirdparty.six.moves import http_client as _http_client
++import six
++from six.moves import http_client as _http_client
+
+ def checkSqlInjection(place, parameter, value):
+ # Store here the details about boundaries and payload used to
+diff --git a/lib/core/agent.py b/lib/core/agent.py
+index 539183e..992ee10 100644
+--- a/lib/core/agent.py
++++ b/lib/core/agent.py
+@@ -57,7 +57,7 @@ from lib.core.settings import SINGLE_QUOTE_MARKER
+ from lib.core.settings import SLEEP_TIME_MARKER
+ from lib.core.settings import UNICODE_ENCODING
+ from lib.core.unescaper import unescaper
+-from thirdparty import six
++import six
+
+ class Agent(object):
+ """
+diff --git a/lib/core/common.py b/lib/core/common.py
+index 7dd6dbb..015cd2b 100644
+--- a/lib/core/common.py
++++ b/lib/core/common.py
+@@ -187,21 +187,21 @@ from lib.core.settings import WEBSCARAB_SPLITTER
+ from lib.core.threads import getCurrentThreadData
+ from lib.utils.safe2bin import safecharencode
+ from lib.utils.sqlalchemy import _sqlalchemy
+-from thirdparty import six
++import six
+ from thirdparty.clientform.clientform import ParseResponse
+ from thirdparty.clientform.clientform import ParseError
+-from thirdparty.colorama.initialise import init as coloramainit
+-from thirdparty.magic import magic
+-from thirdparty.odict import OrderedDict
+-from thirdparty.six import unichr as _unichr
+-from thirdparty.six.moves import collections_abc as _collections
+-from thirdparty.six.moves import configparser as _configparser
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import input as _input
+-from thirdparty.six.moves import reload_module as _reload_module
+-from thirdparty.six.moves import urllib as _urllib
+-from thirdparty.six.moves import zip as _zip
+-from thirdparty.termcolor.termcolor import colored
++from colorama.initialise import init as coloramainit
++import magic
++from collections import OrderedDict
++from six import unichr as _unichr
++from six.moves import collections_abc as _collections
++from six.moves import configparser as _configparser
++from six.moves import http_client as _http_client
++from six.moves import input as _input
++from six.moves import reload_module as _reload_module
++from six.moves import urllib as _urllib
++from six.moves import zip as _zip
++from termcolor import colored
+
+ class UnicodeRawConfigParser(_configparser.RawConfigParser):
+ """
+diff --git a/lib/core/convert.py b/lib/core/convert.py
+index c6f86aa..a1fa5eb 100644
+--- a/lib/core/convert.py
++++ b/lib/core/convert.py
+@@ -28,9 +28,9 @@ from lib.core.settings import NULL
+ from lib.core.settings import PICKLE_PROTOCOL
+ from lib.core.settings import SAFE_HEX_MARKER
+ from lib.core.settings import UNICODE_ENCODING
+-from thirdparty import six
+-from thirdparty.six import unichr as _unichr
+-from thirdparty.six.moves import collections_abc as _collections
++import six
++from six import unichr as _unichr
++from six.moves import collections_abc as _collections
+
+ try:
+ from html import escape as htmlEscape
+diff --git a/lib/core/datatype.py b/lib/core/datatype.py
+index eadcb9c..1fdbf11 100644
+--- a/lib/core/datatype.py
++++ b/lib/core/datatype.py
+@@ -8,8 +8,8 @@ See the file 'LICENSE' for copying permission
+ import copy
+ import types
+
+-from thirdparty.odict import OrderedDict
+-from thirdparty.six.moves import collections_abc as _collections
++from collections import OrderedDict
++from six.moves import collections_abc as _collections
+
+ class AttribDict(dict):
+ """
+diff --git a/lib/core/dump.py b/lib/core/dump.py
+index 2e3cdfd..8b1b1f7 100644
+--- a/lib/core/dump.py
++++ b/lib/core/dump.py
+@@ -56,8 +56,8 @@ from lib.core.settings import UNSAFE_DUMP_FILEPATH_REPLACEMENT
+ from lib.core.settings import VERSION_STRING
+ from lib.core.settings import WINDOWS_RESERVED_NAMES
+ from lib.utils.safe2bin import safechardecode
+-from thirdparty import six
+-from thirdparty.magic import magic
++import six
++import magic
+
+ class Dump(object):
+ """
+diff --git a/lib/core/gui.py b/lib/core/gui.py
+index fa6f269..eb7160c 100644
+--- a/lib/core/gui.py
++++ b/lib/core/gui.py
+@@ -28,7 +28,7 @@ from lib.core.settings import GIT_PAGE
+ from lib.core.settings import SITE
+ from lib.core.settings import VERSION_STRING
+ from lib.core.settings import WIKI_PAGE
+-from thirdparty.six.moves import queue as _queue
++from six.moves import queue as _queue
+
+ alive = None
+ line = ""
+@@ -37,10 +37,10 @@ queue = None
+
+ def runGui(parser):
+ try:
+- from thirdparty.six.moves import tkinter as _tkinter
+- from thirdparty.six.moves import tkinter_scrolledtext as _tkinter_scrolledtext
+- from thirdparty.six.moves import tkinter_ttk as _tkinter_ttk
+- from thirdparty.six.moves import tkinter_messagebox as _tkinter_messagebox
++ from six.moves import tkinter as _tkinter
++ from six.moves import tkinter_scrolledtext as _tkinter_scrolledtext
++ from six.moves import tkinter_ttk as _tkinter_ttk
++ from six.moves import tkinter_messagebox as _tkinter_messagebox
+ except ImportError as ex:
+ raise SqlmapMissingDependence("missing dependence ('%s')" % getSafeExString(ex))
+
+diff --git a/lib/core/option.py b/lib/core/option.py
+index 7fc2116..5fc9ae3 100644
+--- a/lib/core/option.py
++++ b/lib/core/option.py
+@@ -151,13 +151,13 @@ from lib.utils.deps import checkDependencies
+ from lib.utils.har import HTTPCollectorFactory
+ from lib.utils.purge import purge
+ from lib.utils.search import search
+-from thirdparty import six
+-from thirdparty.keepalive import keepalive
++import six
++import keepalive
+ from thirdparty.multipart import multipartpost
+-from thirdparty.six.moves import collections_abc as _collections
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import http_cookiejar as _http_cookiejar
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import collections_abc as _collections
++from six.moves import http_client as _http_client
++from six.moves import http_cookiejar as _http_cookiejar
++from six.moves import urllib as _urllib
+ from thirdparty.socks import socks
+ from xml.etree.ElementTree import ElementTree
+
+diff --git a/lib/core/patch.py b/lib/core/patch.py
+index 9136b70..c72b1a2 100644
+--- a/lib/core/patch.py
++++ b/lib/core/patch.py
+@@ -22,7 +22,7 @@ import lib.request.connect
+ import lib.utils.search
+ import lib.utils.sqlalchemy
+ import thirdparty.ansistrm.ansistrm
+-import thirdparty.chardet.universaldetector
++import chardet.universaldetector
+
+ from lib.core.common import filterNone
+ from lib.core.common import getSafeExString
+@@ -39,8 +39,8 @@ from lib.core.option import _setHTTPHandlers
+ from lib.core.option import setVerbosity
+ from lib.core.settings import IS_WIN
+ from lib.request.templates import getPageTemplate
+-from thirdparty import six
+-from thirdparty.six.moves import http_client as _http_client
++import six
++from six.moves import http_client as _http_client
+
+ _rand = 0
+
+@@ -80,7 +80,7 @@ def dirtyPatches():
+ _http_client.LineAndFileWrapper.readline = _
+
+ # to prevent too much "guessing" in case of binary data retrieval
+- thirdparty.chardet.universaldetector.MINIMUM_THRESHOLD = 0.90
++ chardet.universaldetector.MINIMUM_THRESHOLD = 0.90
+
+ match = re.search(r" --method[= ](\w+)", " ".join(sys.argv))
+ if match and match.group(1).upper() != PLACE.POST:
+diff --git a/lib/core/settings.py b/lib/core/settings.py
+index b8dbda3..32385bc 100644
+--- a/lib/core/settings.py
++++ b/lib/core/settings.py
+@@ -16,8 +16,8 @@ import time
+ from lib.core.enums import DBMS
+ from lib.core.enums import DBMS_DIRECTORY_NAME
+ from lib.core.enums import OS
+-from thirdparty import six
+-from thirdparty.six import unichr as _unichr
++import six
++from six import unichr as _unichr
+
+ # sqlmap version (<major>.<minor>.<month>.<monthly commit>)
+ VERSION = "1.7.9"
+diff --git a/lib/core/target.py b/lib/core/target.py
+index 480886a..a03151d 100644
+--- a/lib/core/target.py
++++ b/lib/core/target.py
+@@ -78,9 +78,9 @@ from lib.core.settings import USER_AGENT_ALIASES
+ from lib.core.settings import XML_RECOGNITION_REGEX
+ from lib.core.threads import getCurrentThreadData
+ from lib.utils.hashdb import HashDB
+-from thirdparty import six
+-from thirdparty.odict import OrderedDict
+-from thirdparty.six.moves import urllib as _urllib
++import six
++from collections import OrderedDict
++from six.moves import urllib as _urllib
+
+ def _setRequestParams():
+ """
+diff --git a/lib/core/update.py b/lib/core/update.py
+index 2fe6f12..b80407d 100644
+--- a/lib/core/update.py
++++ b/lib/core/update.py
+@@ -30,7 +30,7 @@ from lib.core.settings import IS_WIN
+ from lib.core.settings import VERSION
+ from lib.core.settings import TYPE
+ from lib.core.settings import ZIPBALL_PAGE
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ def update():
+ if not conf.updateAll:
+diff --git a/lib/core/wordlist.py b/lib/core/wordlist.py
+index 781642b..f9d647d 100644
+--- a/lib/core/wordlist.py
++++ b/lib/core/wordlist.py
+@@ -11,7 +11,7 @@ from lib.core.common import getSafeExString
+ from lib.core.common import isZipFile
+ from lib.core.exception import SqlmapDataException
+ from lib.core.exception import SqlmapInstallationException
+-from thirdparty import six
++import six
+
+ class Wordlist(six.Iterator):
+ """
+diff --git a/lib/parse/cmdline.py b/lib/parse/cmdline.py
+index e16e822..cb8d338 100644
+--- a/lib/parse/cmdline.py
++++ b/lib/parse/cmdline.py
+@@ -92,7 +92,7 @@ from lib.core.shell import autoCompletion
+ from lib.core.shell import clearHistory
+ from lib.core.shell import loadHistory
+ from lib.core.shell import saveHistory
+-from thirdparty.six.moves import input as _input
++from six.moves import input as _input
+
+ def cmdLineParser(argv=None):
+ """
+diff --git a/lib/parse/sitemap.py b/lib/parse/sitemap.py
+index db2f090..3682fc7 100644
+--- a/lib/parse/sitemap.py
++++ b/lib/parse/sitemap.py
+@@ -13,7 +13,7 @@ from lib.core.data import logger
+ from lib.core.datatype import OrderedSet
+ from lib.core.exception import SqlmapSyntaxException
+ from lib.request.connect import Connect as Request
+-from thirdparty.six.moves import http_client as _http_client
++from six.moves import http_client as _http_client
+
+ abortedFlag = None
+
+diff --git a/lib/request/basic.py b/lib/request/basic.py
+index c00fd0d..403c72e 100644
+--- a/lib/request/basic.py
++++ b/lib/request/basic.py
+@@ -54,12 +54,12 @@ from lib.core.settings import UNICODE_ENCODING
+ from lib.core.settings import VIEWSTATE_REGEX
+ from lib.parse.headers import headersParser
+ from lib.parse.html import htmlParser
+-from thirdparty import six
+-from thirdparty.chardet import detect
++import six
++from chardet import detect
+ from thirdparty.identywaf import identYwaf
+-from thirdparty.odict import OrderedDict
+-from thirdparty.six import unichr as _unichr
+-from thirdparty.six.moves import http_client as _http_client
++from collections import OrderedDict
++from six import unichr as _unichr
++from six.moves import http_client as _http_client
+
+ @lockedmethod
+ def forgeHeaders(items=None, base=None):
+diff --git a/lib/request/basicauthhandler.py b/lib/request/basicauthhandler.py
+index f7c8408..472e7a2 100644
+--- a/lib/request/basicauthhandler.py
++++ b/lib/request/basicauthhandler.py
+@@ -5,7 +5,7 @@ Copyright (c) 2006-2023 sqlmap developers (https://sqlmap.org/)
+ See the file 'LICENSE' for copying permission
+ """
+
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ class SmartHTTPBasicAuthHandler(_urllib.request.HTTPBasicAuthHandler):
+ """
+diff --git a/lib/request/chunkedhandler.py b/lib/request/chunkedhandler.py
+index b275993..4081eae 100644
+--- a/lib/request/chunkedhandler.py
++++ b/lib/request/chunkedhandler.py
+@@ -7,7 +7,7 @@ See the file 'LICENSE' for copying permission
+
+ from lib.core.data import conf
+ from lib.core.enums import HTTP_HEADER
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ class ChunkedHandler(_urllib.request.HTTPHandler):
+ """
+diff --git a/lib/request/comparison.py b/lib/request/comparison.py
+index c703b2b..6a5763b 100644
+--- a/lib/request/comparison.py
++++ b/lib/request/comparison.py
+@@ -32,7 +32,7 @@ from lib.core.settings import REFLECTED_VALUE_MARKER
+ from lib.core.settings import UPPER_RATIO_BOUND
+ from lib.core.settings import URI_HTTP_HEADER
+ from lib.core.threads import getCurrentThreadData
+-from thirdparty import six
++import six
+
+ def comparison(page, headers, code=None, getRatioValue=False, pageLength=None):
+ _ = _adjust(_comparison(page, headers, code, getRatioValue, pageLength), getRatioValue)
+diff --git a/lib/request/connect.py b/lib/request/connect.py
+index 2f7cbfc..a39ac0f 100644
+--- a/lib/request/connect.py
++++ b/lib/request/connect.py
+@@ -136,11 +136,11 @@ from lib.request.comparison import comparison
+ from lib.request.direct import direct
+ from lib.request.methodrequest import MethodRequest
+ from lib.utils.safe2bin import safecharencode
+-from thirdparty import six
+-from thirdparty.odict import OrderedDict
+-from thirdparty.six import unichr as _unichr
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import urllib as _urllib
++import six
++from collections import OrderedDict
++from six import unichr as _unichr
++from six.moves import http_client as _http_client
++from six.moves import urllib as _urllib
+ from thirdparty.socks.socks import ProxyError
+
+ class Connect(object):
+diff --git a/lib/request/httpshandler.py b/lib/request/httpshandler.py
+index 03c4079..ae06372 100644
+--- a/lib/request/httpshandler.py
++++ b/lib/request/httpshandler.py
+@@ -17,8 +17,8 @@ from lib.core.data import kb
+ from lib.core.data import logger
+ from lib.core.exception import SqlmapConnectionException
+ from lib.core.settings import PYVERSION
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import http_client as _http_client
++from six.moves import urllib as _urllib
+
+ ssl = None
+ try:
+diff --git a/lib/request/inject.py b/lib/request/inject.py
+index 039ef1b..7e53fb0 100644
+--- a/lib/request/inject.py
++++ b/lib/request/inject.py
+@@ -66,7 +66,7 @@ from lib.techniques.dns.test import dnsTest
+ from lib.techniques.dns.use import dnsUse
+ from lib.techniques.error.use import errorUse
+ from lib.techniques.union.use import unionUse
+-from thirdparty import six
++import six
+
+ def _goDns(payload, expression):
+ value = None
+diff --git a/lib/request/methodrequest.py b/lib/request/methodrequest.py
+index 8535557..5188dd3 100644
+--- a/lib/request/methodrequest.py
++++ b/lib/request/methodrequest.py
+@@ -6,7 +6,7 @@ See the file 'LICENSE' for copying permission
+ """
+
+ from lib.core.convert import getText
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ class MethodRequest(_urllib.request.Request):
+ """
+diff --git a/lib/request/pkihandler.py b/lib/request/pkihandler.py
+index 05a6ccf..9bf4cb3 100644
+--- a/lib/request/pkihandler.py
++++ b/lib/request/pkihandler.py
+@@ -8,8 +8,8 @@ See the file 'LICENSE' for copying permission
+ from lib.core.data import conf
+ from lib.core.common import getSafeExString
+ from lib.core.exception import SqlmapConnectionException
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import http_client as _http_client
++from six.moves import urllib as _urllib
+
+ class HTTPSPKIAuthHandler(_urllib.request.HTTPSHandler):
+ def __init__(self, auth_file):
+diff --git a/lib/request/rangehandler.py b/lib/request/rangehandler.py
+index ff0598c..57b2101 100644
+--- a/lib/request/rangehandler.py
++++ b/lib/request/rangehandler.py
+@@ -6,7 +6,7 @@ See the file 'LICENSE' for copying permission
+ """
+
+ from lib.core.exception import SqlmapConnectionException
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ class HTTPRangeHandler(_urllib.request.BaseHandler):
+ """
+diff --git a/lib/request/redirecthandler.py b/lib/request/redirecthandler.py
+index a305906..a43a685 100644
+--- a/lib/request/redirecthandler.py
++++ b/lib/request/redirecthandler.py
+@@ -31,8 +31,8 @@ from lib.core.settings import MAX_TOTAL_REDIRECTIONS
+ from lib.core.threads import getCurrentThreadData
+ from lib.request.basic import decodePage
+ from lib.request.basic import parseResponse
+-from thirdparty import six
+-from thirdparty.six.moves import urllib as _urllib
++import six
++from six.moves import urllib as _urllib
+
+ class SmartRedirectHandler(_urllib.request.HTTPRedirectHandler):
+ def _get_header_redirect(self, headers):
+diff --git a/lib/takeover/abstraction.py b/lib/takeover/abstraction.py
+index 52f43dd..51aab06 100644
+--- a/lib/takeover/abstraction.py
++++ b/lib/takeover/abstraction.py
+@@ -29,7 +29,7 @@ from lib.takeover.udf import UDF
+ from lib.takeover.web import Web
+ from lib.takeover.xp_cmdshell import XP_cmdshell
+ from lib.utils.safe2bin import safechardecode
+-from thirdparty.six.moves import input as _input
++from six.moves import input as _input
+
+ class Abstraction(Web, UDF, XP_cmdshell):
+ """
+diff --git a/lib/takeover/metasploit.py b/lib/takeover/metasploit.py
+index d4a8776..205cc56 100644
+--- a/lib/takeover/metasploit.py
++++ b/lib/takeover/metasploit.py
+@@ -49,7 +49,7 @@ from lib.core.subprocessng import blockingWriteToFD
+ from lib.core.subprocessng import Popen as execute
+ from lib.core.subprocessng import send_all
+ from lib.core.subprocessng import recv_some
+-from thirdparty import six
++import six
+
+ if IS_WIN:
+ import msvcrt
+diff --git a/lib/takeover/web.py b/lib/takeover/web.py
+index 9572740..41c5099 100644
+--- a/lib/takeover/web.py
++++ b/lib/takeover/web.py
+@@ -57,7 +57,7 @@ from lib.core.settings import SHELL_RUNCMD_EXE_TAG
+ from lib.core.settings import SHELL_WRITABLE_DIR_TAG
+ from lib.core.settings import VIEWSTATE_REGEX
+ from lib.request.connect import Connect as Request
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ class Web(object):
+ """
+diff --git a/lib/techniques/blind/inference.py b/lib/techniques/blind/inference.py
+index 52bea11..569f816 100644
+--- a/lib/techniques/blind/inference.py
++++ b/lib/techniques/blind/inference.py
+@@ -62,7 +62,7 @@ from lib.request.connect import Connect as Request
+ from lib.utils.progress import ProgressBar
+ from lib.utils.safe2bin import safecharencode
+ from lib.utils.xrange import xrange
+-from thirdparty import six
++import six
+
+ def bisection(payload, expression, length=None, charsetType=None, firstChar=None, lastChar=None, dump=False):
+ """
+diff --git a/lib/techniques/error/use.py b/lib/techniques/error/use.py
+index 343733d..07be2e3 100644
+--- a/lib/techniques/error/use.py
++++ b/lib/techniques/error/use.py
+@@ -60,7 +60,7 @@ from lib.core.unescaper import unescaper
+ from lib.request.connect import Connect as Request
+ from lib.utils.progress import ProgressBar
+ from lib.utils.safe2bin import safecharencode
+-from thirdparty import six
++import six
+
+ def _oneShotErrorUse(expression, field=None, chunkTest=False):
+ offset = 1
+diff --git a/lib/techniques/union/use.py b/lib/techniques/union/use.py
+index ef550d8..dbc0915 100644
+--- a/lib/techniques/union/use.py
++++ b/lib/techniques/union/use.py
+@@ -59,8 +59,8 @@ from lib.core.unescaper import unescaper
+ from lib.request.connect import Connect as Request
+ from lib.utils.progress import ProgressBar
+ from lib.utils.safe2bin import safecharencode
+-from thirdparty import six
+-from thirdparty.odict import OrderedDict
++import six
++from collections import OrderedDict
+
+ def _oneShotUnionUse(expression, unpack=True, limited=False):
+ retVal = hashDBRetrieve("%s%s" % (conf.hexConvert or False, expression), checkConf=True) # as UNION data is stored raw unconverted
+diff --git a/lib/utils/api.py b/lib/utils/api.py
+index 2a394f3..def4198 100644
+--- a/lib/utils/api.py
++++ b/lib/utils/api.py
+@@ -56,18 +56,18 @@ from lib.core.settings import VERSION_STRING
+ from lib.core.shell import autoCompletion
+ from lib.core.subprocessng import Popen
+ from lib.parse.cmdline import cmdLineParser
+-from thirdparty.bottle.bottle import error as return_error
+-from thirdparty.bottle.bottle import get
+-from thirdparty.bottle.bottle import hook
+-from thirdparty.bottle.bottle import post
+-from thirdparty.bottle.bottle import request
+-from thirdparty.bottle.bottle import response
+-from thirdparty.bottle.bottle import run
+-from thirdparty.bottle.bottle import server_names
+-from thirdparty import six
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import input as _input
+-from thirdparty.six.moves import urllib as _urllib
++from bottle import error as return_error
++from bottle import get
++from bottle import hook
++from bottle import post
++from bottle import request
++from bottle import response
++from bottle import run
++from bottle import server_names
++import six
++from six.moves import http_client as _http_client
++from six.moves import input as _input
++from six.moves import urllib as _urllib
+
+ # Global data storage
+ class DataStore(object):
+diff --git a/lib/utils/crawler.py b/lib/utils/crawler.py
+index 2d90707..f829b0e 100644
+--- a/lib/utils/crawler.py
++++ b/lib/utils/crawler.py
+@@ -36,10 +36,10 @@ from lib.core.threads import getCurrentThreadData
+ from lib.core.threads import runThreads
+ from lib.parse.sitemap import parseSitemap
+ from lib.request.connect import Connect as Request
+-from thirdparty import six
+-from thirdparty.beautifulsoup.beautifulsoup import BeautifulSoup
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import urllib as _urllib
++import six
++from bs4 import BeautifulSoup
++from six.moves import http_client as _http_client
++from six.moves import urllib as _urllib
+
+ def crawl(target, post=None, cookie=None):
+ if not target:
+diff --git a/lib/utils/har.py b/lib/utils/har.py
+index bcea7b0..30aac9e 100644
+--- a/lib/utils/har.py
++++ b/lib/utils/har.py
+@@ -15,8 +15,8 @@ from lib.core.bigarray import BigArray
+ from lib.core.convert import getBytes
+ from lib.core.convert import getText
+ from lib.core.settings import VERSION
+-from thirdparty.six.moves import BaseHTTPServer as _BaseHTTPServer
+-from thirdparty.six.moves import http_client as _http_client
++from six.moves import BaseHTTPServer as _BaseHTTPServer
++from six.moves import http_client as _http_client
+
+ # Reference: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html
+ # http://www.softwareishard.com/har/viewer/
+diff --git a/lib/utils/hash.py b/lib/utils/hash.py
+index 4a01333..2e5d8c3 100644
+--- a/lib/utils/hash.py
++++ b/lib/utils/hash.py
+@@ -16,8 +16,8 @@ try:
+ from Crypto.Cipher.DES import MODE_CBC as CBC
+ from Crypto.Cipher.DES import new as des
+ except:
+- from thirdparty.pydes.pyDes import CBC
+- from thirdparty.pydes.pyDes import des
++ from pyDes import CBC
++ from pyDes import des
+
+ _multiprocessing = None
+
+@@ -85,9 +85,9 @@ from lib.core.settings import NULL
+ from lib.core.settings import ROTATING_CHARS
+ from lib.core.settings import UNICODE_ENCODING
+ from lib.core.wordlist import Wordlist
+-from thirdparty import six
+-from thirdparty.colorama.initialise import init as coloramainit
+-from thirdparty.six.moves import queue as _queue
++import six
++from colorama.initialise import init as coloramainit
++from six.moves import queue as _queue
+
+ def mysql_passwd(password, uppercase=True):
+ """
+diff --git a/lib/utils/hashdb.py b/lib/utils/hashdb.py
+index 10cf2dc..cb00b0f 100644
+--- a/lib/utils/hashdb.py
++++ b/lib/utils/hashdb.py
+@@ -26,7 +26,7 @@ from lib.core.settings import HASHDB_FLUSH_THRESHOLD
+ from lib.core.settings import HASHDB_RETRIEVE_RETRIES
+ from lib.core.threads import getCurrentThreadData
+ from lib.core.threads import getCurrentThreadName
+-from thirdparty import six
++import six
+
+ class HashDB(object):
+ def __init__(self, filepath):
+diff --git a/lib/utils/httpd.py b/lib/utils/httpd.py
+index f5820a6..3353d1d 100644
+--- a/lib/utils/httpd.py
++++ b/lib/utils/httpd.py
+@@ -21,11 +21,11 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".
+ from lib.core.enums import HTTP_HEADER
+ from lib.core.settings import UNICODE_ENCODING
+ from lib.core.settings import VERSION_STRING
+-from thirdparty import six
+-from thirdparty.six.moves import BaseHTTPServer as _BaseHTTPServer
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import socketserver as _socketserver
+-from thirdparty.six.moves import urllib as _urllib
++import six
++from six.moves import BaseHTTPServer as _BaseHTTPServer
++from six.moves import http_client as _http_client
++from six.moves import socketserver as _socketserver
++from six.moves import urllib as _urllib
+
+ HTTP_ADDRESS = "0.0.0.0"
+ HTTP_PORT = 8951
+diff --git a/lib/utils/pivotdumptable.py b/lib/utils/pivotdumptable.py
+index 008a33c..b1ca9bb 100644
+--- a/lib/utils/pivotdumptable.py
++++ b/lib/utils/pivotdumptable.py
+@@ -34,7 +34,7 @@ from lib.core.settings import SINGLE_QUOTE_MARKER
+ from lib.core.unescaper import unescaper
+ from lib.request import inject
+ from lib.utils.safe2bin import safechardecode
+-from thirdparty.six import unichr as _unichr
++from six import unichr as _unichr
+
+ def pivotDumpTable(table, colList, count=None, blind=True, alias=None):
+ lengths = {}
+diff --git a/lib/utils/purge.py b/lib/utils/purge.py
+index e89895e..d0fdbeb 100644
+--- a/lib/utils/purge.py
++++ b/lib/utils/purge.py
+@@ -17,7 +17,7 @@ from lib.core.common import openFile
+ from lib.core.compat import xrange
+ from lib.core.convert import getUnicode
+ from lib.core.data import logger
+-from thirdparty.six import unichr as _unichr
++from six import unichr as _unichr
+
+ def purge(directory):
+ """
+diff --git a/lib/utils/search.py b/lib/utils/search.py
+index 5ae11a1..67ea87e 100644
+--- a/lib/utils/search.py
++++ b/lib/utils/search.py
+@@ -33,8 +33,8 @@ from lib.core.settings import GOOGLE_REGEX
+ from lib.core.settings import HTTP_ACCEPT_ENCODING_HEADER_VALUE
+ from lib.core.settings import UNICODE_ENCODING
+ from lib.request.basic import decodePage
+-from thirdparty.six.moves import http_client as _http_client
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import http_client as _http_client
++from six.moves import urllib as _urllib
+ from thirdparty.socks import socks
+
+ def _search(dork):
+diff --git a/lib/utils/sqlalchemy.py b/lib/utils/sqlalchemy.py
+index f1bc0d9..d0b0d12 100644
+--- a/lib/utils/sqlalchemy.py
++++ b/lib/utils/sqlalchemy.py
+@@ -38,7 +38,7 @@ from lib.core.exception import SqlmapConnectionException
+ from lib.core.exception import SqlmapFilePathException
+ from lib.core.exception import SqlmapMissingDependence
+ from plugins.generic.connector import Connector as GenericConnector
+-from thirdparty import six
+-from thirdparty.six.moves import urllib as _urllib
++import six
++from six.moves import urllib as _urllib
+
+ def getSafeExString(ex, encoding=None): # Cross-referenced function
+ raise NotImplementedError
+diff --git a/plugins/dbms/maxdb/enumeration.py b/plugins/dbms/maxdb/enumeration.py
+index a83b9c2..40d4250 100644
+--- a/plugins/dbms/maxdb/enumeration.py
++++ b/plugins/dbms/maxdb/enumeration.py
+@@ -26,8 +26,8 @@ from lib.core.settings import CURRENT_DB
+ from lib.utils.brute import columnExists
+ from lib.utils.pivotdumptable import pivotDumpTable
+ from plugins.generic.enumeration import Enumeration as GenericEnumeration
+-from thirdparty import six
+-from thirdparty.six.moves import zip as _zip
++import six
++from six.moves import zip as _zip
+
+ class Enumeration(GenericEnumeration):
+ def __init__(self):
+diff --git a/plugins/dbms/mssqlserver/enumeration.py b/plugins/dbms/mssqlserver/enumeration.py
+index e5407ce..4c11c83 100644
+--- a/plugins/dbms/mssqlserver/enumeration.py
++++ b/plugins/dbms/mssqlserver/enumeration.py
+@@ -32,7 +32,7 @@ from lib.core.exception import SqlmapNoneDataException
+ from lib.core.settings import CURRENT_DB
+ from lib.request import inject
+ from plugins.generic.enumeration import Enumeration as GenericEnumeration
+-from thirdparty import six
++import six
+
+ class Enumeration(GenericEnumeration):
+ def getPrivileges(self, *args, **kwargs):
+diff --git a/plugins/dbms/sybase/enumeration.py b/plugins/dbms/sybase/enumeration.py
+index 9f254c9..dde98bc 100644
+--- a/plugins/dbms/sybase/enumeration.py
++++ b/plugins/dbms/sybase/enumeration.py
+@@ -29,8 +29,8 @@ from lib.core.settings import CURRENT_DB
+ from lib.utils.brute import columnExists
+ from lib.utils.pivotdumptable import pivotDumpTable
+ from plugins.generic.enumeration import Enumeration as GenericEnumeration
+-from thirdparty import six
+-from thirdparty.six.moves import zip as _zip
++import six
++from six.moves import zip as _zip
+
+ class Enumeration(GenericEnumeration):
+ def getUsers(self):
+diff --git a/plugins/generic/custom.py b/plugins/generic/custom.py
+index fab6261..2bd2916 100644
+--- a/plugins/generic/custom.py
++++ b/plugins/generic/custom.py
+@@ -26,7 +26,7 @@ from lib.core.settings import NULL
+ from lib.core.settings import PARAMETER_SPLITTING_REGEX
+ from lib.core.shell import autoCompletion
+ from lib.request import inject
+-from thirdparty.six.moves import input as _input
++from six.moves import input as _input
+
+ class Custom(object):
+ """
+diff --git a/plugins/generic/databases.py b/plugins/generic/databases.py
+index b924e99..dd01b46 100644
+--- a/plugins/generic/databases.py
++++ b/plugins/generic/databases.py
+@@ -55,7 +55,7 @@ from lib.core.settings import VERTICA_DEFAULT_SCHEMA
+ from lib.request import inject
+ from lib.utils.brute import columnExists
+ from lib.utils.brute import tableExists
+-from thirdparty import six
++import six
+
+ class Databases(object):
+ """
+diff --git a/plugins/generic/entries.py b/plugins/generic/entries.py
+index 84b1c0e..0fb7b57 100644
+--- a/plugins/generic/entries.py
++++ b/plugins/generic/entries.py
+@@ -49,8 +49,8 @@ from lib.core.settings import UPPER_CASE_DBMSES
+ from lib.request import inject
+ from lib.utils.hash import attackDumpedTable
+ from lib.utils.pivotdumptable import pivotDumpTable
+-from thirdparty import six
+-from thirdparty.six.moves import zip as _zip
++import six
++from six.moves import zip as _zip
+
+ class Entries(object):
+ """
+diff --git a/plugins/generic/search.py b/plugins/generic/search.py
+index bb670b7..d1b46ac 100644
+--- a/plugins/generic/search.py
++++ b/plugins/generic/search.py
+@@ -38,7 +38,7 @@ from lib.core.settings import UPPER_CASE_DBMSES
+ from lib.request import inject
+ from lib.utils.brute import columnExists
+ from lib.utils.brute import tableExists
+-from thirdparty import six
++import six
+
+ class Search(object):
+ """
+diff --git a/plugins/generic/users.py b/plugins/generic/users.py
+index ddef85a..0a30c1b 100644
+--- a/plugins/generic/users.py
++++ b/plugins/generic/users.py
+@@ -47,7 +47,7 @@ from lib.request import inject
+ from lib.utils.hash import attackCachedUsersPasswords
+ from lib.utils.hash import storeHashesToFile
+ from lib.utils.pivotdumptable import pivotDumpTable
+-from thirdparty.six.moves import zip as _zip
++from six.moves import zip as _zip
+
+ class Users(object):
+ """
+diff --git a/thirdparty/multipart/multipartpost.py b/thirdparty/multipart/multipartpost.py
+index 5ea37cc..e47a857 100644
+--- a/thirdparty/multipart/multipartpost.py
++++ b/thirdparty/multipart/multipartpost.py
+@@ -30,7 +30,7 @@ import sys
+ from lib.core.compat import choose_boundary
+ from lib.core.convert import getBytes
+ from lib.core.exception import SqlmapDataException
+-from thirdparty.six.moves import urllib as _urllib
++from six.moves import urllib as _urllib
+
+ # Controls how sequences are uncoded. If true, elements may be given
+ # multiple values by assigning a sequence.
diff --git a/testing/sqm-scripts/10-defaults.sh.patch b/testing/sqm-scripts/10-defaults.sh.patch
deleted file mode 100644
index d2c7bdd6fee..00000000000
--- a/testing/sqm-scripts/10-defaults.sh.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/defaults.sh
-+++ b/src/defaults.sh
-@@ -27,7 +27,7 @@
- [ -z "$IP" ] && IP=ip_wrapper
- [ -z "$IP_BINARY" ] && IP_BINARY=$(which ip)
- # Try modprobe first, fall back to insmod
--[ -z "$INSMOD" ] && INSMOD=$(which modprobe) || INSMOD=$(which insmod)
-+[ -n "$INSMOD" ] || INSMOD=$(which modprobe) || INSMOD=$(which insmod)
- [ -z "$TARGET" ] && TARGET="5ms"
- [ -z "$IPT_MASK" ] && IPT_MASK="0xff" # to disable: set mask to 0xffffffff
- #sm: we need the functions above before trying to set the ingress IFB device
diff --git a/testing/sqm-scripts/APKBUILD b/testing/sqm-scripts/APKBUILD
index 8eb3c49a199..01be88c8255 100644
--- a/testing/sqm-scripts/APKBUILD
+++ b/testing/sqm-scripts/APKBUILD
@@ -1,24 +1,25 @@
-# Contributor:
-# Maintainer:
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
pkgname=sqm-scripts
-pkgver=1.4.0
+pkgver=1.6.0
pkgrel=0
pkgdesc="SQM scripts traffic shaper"
url="https://github.com/tohojo/sqm-scripts"
arch="noarch"
-license="GPL-2.0"
-depends="iproute2 iptables ip6tables"
-makedepends="$depends_dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tohojo/sqm-scripts/archive/v$pkgver.tar.gz
- 10-defaults.sh.patch"
+license="GPL-2.0-only"
+options="!check"
+depends="iproute2 iptables"
+makedepends="coreutils"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tohojo/sqm-scripts/archive/v$pkgver.tar.gz"
package() {
install -m 0755 -d $pkgdir/etc/network/if-up.d
make DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/usr/lib/tmpfiles.d
- rm -rf "$pkgdir"/usr/lib/systemd
+ rm -rf "$pkgdir"/sqm@.service
}
-sha512sums="8e0ce5a8e5f717b87e5018c0b019f9de2f931bb146d3e21c810b2fe9f39b2692e46816a71b053cf4965ec55320f5fafb59d0c31e45ee0c9d9e8eb73bcd320cfb sqm-scripts-1.4.0.tar.gz
-a5d90befde15afe588d6ac46a3ce4c7b123d0d233e83be5c36c9f45f14d71622f6da6c9c47fe219645a474705daaacc52e246ce7c21b313631371db2962a3f9a 10-defaults.sh.patch"
+sha512sums="
+6e384de887c330277389cbe05513f699c3f56ed5aaea3b765c109d01f34c9f73e05a7f7f6c7d34082a66d148e0500273451bd9808afbadc6c5db6a0292fc36ba sqm-scripts-1.6.0.tar.gz
+"
diff --git a/testing/squashfs-tools-ng/APKBUILD b/testing/squashfs-tools-ng/APKBUILD
new file mode 100644
index 00000000000..3ca963682c4
--- /dev/null
+++ b/testing/squashfs-tools-ng/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Ryan Barnett <ryanbarnett3@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=squashfs-tools-ng
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="New set of tools and libraries for working with SquashFS images"
+url="https://infraroot.at/projects/squashfs-tools-ng/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ automake
+ libselinux-dev
+ lz4-dev
+ lzo-dev
+ xz-dev
+ zlib-dev
+ zstd-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-libs
+ $pkgname-doc
+ "
+source="https://infraroot.at/pub/squashfs/squashfs-tools-ng-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+a55a954e24149248ca3ca1dafe9fd132401a6abf869e53e1b74719af813de00bee393dc1da7f392c1e37331a3354e997984839e30603f5aef999319870b75013 squashfs-tools-ng-1.3.0.tar.gz
+"
diff --git a/testing/squeak-vm/APKBUILD b/testing/squeak-vm/APKBUILD
index 9c9cc55aa2e..907674fd8ff 100644
--- a/testing/squeak-vm/APKBUILD
+++ b/testing/squeak-vm/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
pkgname=squeak-vm
pkgver=4.10.2.2614
-pkgrel=0
+pkgrel=1
pkgdesc="Full-featured implementation of the Smalltalk programming language and environment"
url="http://squeakvm.org"
arch="x86_64 s390x armv7" #disabled for the other architectures due to compiling problems
diff --git a/testing/srain/APKBUILD b/testing/srain/APKBUILD
new file mode 100644
index 00000000000..214e2658e69
--- /dev/null
+++ b/testing/srain/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=srain
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="Modern IRC client written in GTK"
+url="https://srain.silverrainz.me/"
+arch="all"
+license="GPL-3.0-or-later WITH OpenSSL-Exception"
+makedepends="
+ cmake
+ gettext
+ glib-dev
+ gtk+3.0-dev
+ libayatana-appindicator-dev
+ libconfig-dev
+ libsecret-dev
+ libsoup-dev
+ meson
+ ninja
+ openssl-dev>3
+ py3-sphinx
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/SrainApp/srain/archive/$pkgver.tar.gz"
+
+build() {
+ abuild-meson . builddir
+ ninja -C builddir
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C builddir
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C builddir install
+}
+
+sha512sums="
+59d962ddbf71724d5f68decc1e3b873cea6c6bd2ca23b21a1a6fe937d53f2871398fdcda906840755efc6b454d2d5116ca620c047f1634fb68b45ab2c0443a57 srain-1.6.0.tar.gz
+"
diff --git a/testing/sratom/APKBUILD b/testing/sratom/APKBUILD
deleted file mode 100644
index cdb9d7f7086..00000000000
--- a/testing/sratom/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=sratom
-pkgver=0.6.4
-pkgrel=0
-pkgdesc="library for serialising LV2 atoms to and from RDF"
-url="http://drobilla.net/software/sratom"
-arch="all"
-license="ISC"
-makedepends="python3 serd-dev sord-dev lv2-dev"
-subpackages="$pkgname-dev"
-source="http://download.drobilla.net/sratom-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- python3 waf configure --prefix=/usr
- python3 waf build
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="6462d8d33ed7ddaa2aea267fab14c9a15bfc077a4f8d26eb493be4c48c95d8dcec614f540bd82fe22aecca641771326a44d175c3991cd473ae371062c78aaac3 sratom-0.6.4.tar.bz2"
diff --git a/testing/srb2/APKBUILD b/testing/srb2/APKBUILD
new file mode 100644
index 00000000000..6b5872e6929
--- /dev/null
+++ b/testing/srb2/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=srb2
+pkgver=2.2.13
+pkgrel=0
+pkgdesc="A 3D Sonic fan game based off of Doom Legacy"
+url="https://srb2.org"
+arch="all !armhf !armv7 !s390x" # arm-hf/v7 and s390x problem with gcc
+license="GPL-2.0-only"
+depends="srb2-data libgme libopenmpt sdl2_mixer libpng curl"
+makedepends="libgme-dev libopenmpt-dev sdl2_mixer-dev libpng-dev curl-dev envsubst"
+options="!check" # no test
+source="$pkgname-$pkgver.tar.gz::https://github.com/STJr/SRB2/archive/refs/tags/SRB2_release_$pkgver.tar.gz
+ $pkgname-$pkgver-data.zip::https://github.com/STJr/SRB2/releases/download/SRB2_release_2.2.13/SRB2-v2213-Full.zip
+ fix-backtrace.patch
+ "
+subpackages="$pkgname-data::noarch"
+builddir="$srcdir/SRB2-SRB2_release_$pkgver"
+
+build() {
+ make -C src/ USE_OPENMP=1 EXENAME=srb2
+ PROGRAM_NAME="Sonic Robo Blast 2" PROGRAM_DESCRIPTION="$pkgdesc" \
+ PACKAGE_INSTALL_PATH="/usr/bin" PROGRAM_FILENAME="$pkgname" \
+ envsubst < debian-template/srb2.desktop > srb2.desktop
+}
+
+package() {
+ install -Dm755 bin/$pkgname $pkgdir/usr/bin/$pkgname
+ install -Dm644 srb2.png $pkgdir/usr/share/pixmaps/srb2.png
+ install -Dm644 srb2.desktop $pkgdir/usr/share/applications/srb2.desktop
+}
+
+data() {
+ pkgdesc="$pkgdesc (data files)"
+
+ cd "$srcdir/"
+ install -d "$subpkgdir"/usr/share/games/SRB2
+ install -m644 models.dat player.dta music.dta patch.pk3 srb2.pk3 zones.pk3 "$subpkgdir"/usr/share/games/SRB2
+}
+
+sha512sums="
+b68dec859d2d08ec0ff8fc65a07ba5cdc80091a26bf06fadb3e7ae5e18489b6e4a9575d0d3b7fd626e6ccf0589a67e93a0df616df18df70524e5e3709979cf8a srb2-2.2.13.tar.gz
+0ede22cc385057f18715da445548c94473271d7ece49d3c540faab470232574bcaf9a2de32e2445c35bc3c98bcb0f06bcb891e4d953e4c1b003cd4a7e0599a5e srb2-2.2.13-data.zip
+2489a3c1e7abb2f8b66db00b13b809041c98757642844c1990d9d98c820efc8ca35a3498a5d0fad87086a31227118e3b883f49b948785f863ffd9e78e1ecb022 fix-backtrace.patch
+"
diff --git a/testing/srb2/fix-backtrace.patch b/testing/srb2/fix-backtrace.patch
new file mode 100644
index 00000000000..769a8ad05ec
--- /dev/null
+++ b/testing/srb2/fix-backtrace.patch
@@ -0,0 +1,14 @@
+--- a/src/sdl/i_system.c
++++ b/src/sdl/i_system.c
+@@ -137,11 +137,6 @@
+ #include <errno.h>
+ #endif
+
+-#if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON)
+-#include <execinfo.h>
+-#include <time.h>
+-#define UNIXBACKTRACE
+-#endif
+
+ // Locations for searching the srb2.pk3
+ #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON)
diff --git a/testing/sregex/APKBUILD b/testing/sregex/APKBUILD
new file mode 100644
index 00000000000..54fd124646b
--- /dev/null
+++ b/testing/sregex/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=sregex
+pkgver=0.0.1
+pkgrel=1
+pkgdesc="A NFA/DFA-based regex engine matching on large data streams"
+url="https://github.com/openresty/sregex"
+# armv7 - tests failed
+arch="all !armv7"
+license="BSD-3-Clause"
+checkdepends="
+ perl-ipc-run3
+ perl-pathtools
+ perl-test-base
+ perl-test-harness-utils
+ perl-test-longstring
+ "
+subpackages="$pkgname-dev"
+source="https://github.com/openresty/sregex/archive/v$pkgver/sregex-$pkgver.tar.gz
+ disable-broken-tests.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ make PREFIX=/usr
+}
+
+check() {
+ prove -I. t
+}
+
+package() {
+ make install PREFIX=/usr DESTDIR="$pkgdir"
+}
+
+dev() {
+ default_dev
+
+ amove usr/bin/sregex-cli
+}
+
+sha512sums="0c4894a21854f5ec443a2decb9c0f91bff22299695969b27340ce32716c70802ef8835fe0357ddedebc4881fc67675bfe07291ce6734d46dab4c22110217173c sregex-0.0.1.tar.gz
+3fe47b81852405106908a6c99f16e16771cfaf028f1d3bfb412ff53109ddb79d6ca7f3190e8a55957bd8c91da5a6e3afb0a7e5ab2143563cf6d4efdfd64b35ad disable-broken-tests.patch"
diff --git a/testing/sregex/disable-broken-tests.patch b/testing/sregex/disable-broken-tests.patch
new file mode 100644
index 00000000000..73b4300ae2a
--- /dev/null
+++ b/testing/sregex/disable-broken-tests.patch
@@ -0,0 +1,29 @@
+Disable broken tests.
+
+Upstream-Issue: https://github.com/openresty/sregex/issues/30
+
+--- a/t/01-sanity-02.t
++++ b/t/01-sanity-02.t
+@@ -207,6 +207,7 @@
+ === TEST 34:
+ --- re: x{0, 1}
+ --- s: x{0, 1}
++--- SKIP
+
+
+
+@@ -219,12 +220,14 @@
+ === TEST 36:
+ --- re: x{0 ,1}
+ --- s: x{0 ,1}
++--- SKIP
+
+
+
+ === TEST 37:
+ --- re: x{,12}
+ --- s: x{,12}
++--- SKIP
+
+
+
diff --git a/testing/ssdfs-tools/APKBUILD b/testing/ssdfs-tools/APKBUILD
new file mode 100644
index 00000000000..1362c83e04e
--- /dev/null
+++ b/testing/ssdfs-tools/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=ssdfs-tools
+pkgver=4.09
+pkgrel=0
+pkgdesc="SSDFS flash-friendly file system tools"
+url="https://github.com/dubeyko/ssdfs-tools"
+arch="all"
+license="BSD-3-Clause-Clear"
+makedepends="automake autoconf libtool linux-headers libblkid util-linux-dev zlib-dev"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dubeyko/ssdfs-tools/archive/refs/tags/v$pkgver.tar.gz"
+#builddir="$srcdir/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+8162662a467113bd1058a28457b569fca606ab4f2dc7fb1dd46ca81550900356a145717df45f59cb9f4ff1f0fd94d0844f0aa9fadde8d98eb9ad232ed7541ac7 ssdfs-tools-4.09.tar.gz
+"
diff --git a/testing/ssh-audit/APKBUILD b/testing/ssh-audit/APKBUILD
deleted file mode 100644
index 51aaaed914e..00000000000
--- a/testing/ssh-audit/APKBUILD
+++ /dev/null
@@ -1,17 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=ssh-audit
-pkgver=2.2.0
-pkgrel=0
-pkgdesc="SSH server and client configuration auditing"
-url="https://github.com/jtesta/ssh-audit"
-arch="noarch"
-license="MIT"
-depends="python3"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jtesta/ssh-audit/archive/v$pkgver.tar.gz"
-
-package() {
- install -Dm755 ssh-audit.py "$pkgdir"/usr/bin/$pkgname
-}
-
-sha512sums="c121906a8bb18c069c583d6175ec0daca41540b9993352449703667fb93858a21cf48e11e559b974f315470ccb512fc57d71a53a846c6191b6c03db209499ad5 ssh-audit-2.2.0.tar.gz"
diff --git a/testing/ssh-cert-authority/APKBUILD b/testing/ssh-cert-authority/APKBUILD
index 0d1ed804dd0..da07472cac2 100644
--- a/testing/ssh-cert-authority/APKBUILD
+++ b/testing/ssh-cert-authority/APKBUILD
@@ -1,41 +1,41 @@
+# Contributor: Carlgo11 <carlgo11@carlgo11.com>
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=ssh-cert-authority
-pkgver=1.7.1
-pkgrel=2
+pkgver=2.0.0
+pkgrel=18
pkgdesc="An implementation of an SSH certificate authority"
url="https://github.com/cloudtools/ssh-cert-authority"
arch="all"
license="BSD-2-Clause"
-depends=""
makedepends="go"
+options="net chmod-clean"
source="$pkgname-$pkgver.tar.gz::https://github.com/cloudtools/ssh-cert-authority/archive/$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- cd "$builddir"
local pkg=github.com/cloudtools/ssh-cert-authority
- GO111MODULE=on HOME="$srcdir" go build \
+
+ # Fix build on riscv64
+ HOME="$srcdir" go mod edit -replace \
+ golang.org/x/sys=golang.org/x/sys@v0.0.0-20210630005230-0f9fa26af87c
+ HOME="$srcdir" go mod download golang.org/x/sys
+
+ HOME="$srcdir" go build \
-ldflags "-X $pkg/version.Tag=$pkgver \
-X $pkg/version.BuildVersion=$pkgver" \
-o bin/$pkgname
}
check() {
- cd "$builddir"
go test ./...
}
package() {
- cd "$builddir"
install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
}
-cleanup_srcdir() {
- if [ -d "$srcdir" ]; then
- find "$srcdir" -print0 | xargs -0 chmod +w
- fi
- default_cleanup_srcdir
-}
-
-sha512sums="028f0484299ef2b598a168467e576cb3ff326e6cb9acc8393b4df68a29f0fb7a017332e3da8d4afffa9f86518f0d5bac588c11abf1f94ae1391066bc65ca9aa8 ssh-cert-authority-1.7.1.tar.gz"
+sha512sums="495b4ba72b848eeeb86869ffe312f37d4f49e6e281e840f5680e8f55cc2d29b33c771bc46ee2755d25d198e58e5dea0ce28a649321f4f979f59a1c22ed4d6f1c ssh-cert-authority-2.0.0.tar.gz"
diff --git a/testing/ssh-honeypot/APKBUILD b/testing/ssh-honeypot/APKBUILD
index 934938b47a4..c3ba9ca5444 100644
--- a/testing/ssh-honeypot/APKBUILD
+++ b/testing/ssh-honeypot/APKBUILD
@@ -1,24 +1,23 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname="ssh-honeypot"
-pkgver="0_git20190717"
-_commit=b7baa9a6963e723ee0779a6cef0447739870ace3
-pkgrel=0
+pkgname=ssh-honeypot
+pkgver=0.1.1
+pkgrel=1
pkgdesc="Fake sshd that logs ip addresses, usernames, and passwords."
url="https://github.com/droberson/ssh-honeypot"
arch="all"
license="MIT"
depends="openssh-keygen"
-makedepends="json-c0.12-dev libssh-dev"
+makedepends="json-c-dev libssh-dev"
options="!check" # no testsuite and daemon returns 1 even on help command
subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.zip::https://github.com/droberson/ssh-honeypot/archive/$_commit.zip
+source="https://github.com/droberson/ssh-honeypot/archive/refs/tags/ssh-honeypot-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd"
-builddir="$srcdir/$pkgname-$_commit"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
build() {
- make CC="gcc" CFLAGS="$CFLAGS -fPIC"
+ make CC="${CC:-cc}" CFLAGS="$CFLAGS $LDFLAGS -fPIC"
}
package() {
@@ -28,6 +27,8 @@ package() {
install -m 644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="67edfac31421bb8ecbbff08b9dcc3169372da59f4dd83a21149af666b98c42c3a924f8dd6a5091d5928a258915c1f6a7611dbef872432e793fc42e786fd30201 ssh-honeypot-0_git20190717.zip
+sha512sums="
+178ab3e71a1891f6002b6d6bdb7086ed6e777fad9fcbcd42d52c9dc723917c15ecdc182d5fea2ad943bcaa5fc3730ea34ec744c1f2e5a83f6859f3f2771cce39 ssh-honeypot-0.1.1.tar.gz
759a0756e082bc946deec156c164dd5b40876f2f3cd1f3f0c526f06b009f70110ddfbc7730e295765f6c9e088f123a45909c94fe048e7f864b4946ae5a98f157 ssh-honeypot.initd
-e93b93117afa5f5ad93bce12e5846718bb25d24ace47bbcee1bbb72af51b0cc9fc7558a5650e4778330e5ad22d1807183ebc93101e7e16dfc6f7e391ba4aca6d ssh-honeypot.confd"
+e93b93117afa5f5ad93bce12e5846718bb25d24ace47bbcee1bbb72af51b0cc9fc7558a5650e4778330e5ad22d1807183ebc93101e7e16dfc6f7e391ba4aca6d ssh-honeypot.confd
+"
diff --git a/testing/ssh-tools/APKBUILD b/testing/ssh-tools/APKBUILD
index c877b6e2c51..15a1f1add3e 100644
--- a/testing/ssh-tools/APKBUILD
+++ b/testing/ssh-tools/APKBUILD
@@ -1,19 +1,21 @@
# Contributor: Sven Wick <sven.wick@gmx.de>
# Maintainer: Sven Wick <sven.wick@gmx.de>
-pkgname="ssh-tools"
-pkgver="1.6"
+pkgname=ssh-tools
+pkgver=1.8
pkgrel=0
pkgdesc="collection of various tools using ssh"
arch="noarch"
-url="https://github.com/vaporup/ssh-tools/"
+url="https://codeberg.org/vaporup/ssh-tools"
license="GPL-3.0-or-later"
-depends="bash colordiff cmd:ssh cmd:ssh-keygen cmd:ssh-keyscan cmd:column"
-source="${pkgname}-${pkgver}.tar.gz::https://github.com/vaporup/${pkgname}/archive/v${pkgver}.tar.gz"
+depends="bash perl colordiff cmd:ssh cmd:ssh-keygen cmd:ssh-keyscan cmd:column"
+source="ssh-tools-$pkgver.tar.gz::https://codeberg.org/vaporup/ssh-tools/archive/v$pkgver.tar.gz"
options="!check" # does not have a testsuite
package() {
- install -Dt "${pkgdir}/usr/bin" ssh-*
+ install -Dt "$pkgdir/usr/bin" $srcdir/ssh-tools/ssh-*
}
-sha512sums="034f4d534c4376f145beed6f6aefbd93de51ce2aa424691a78f39200014fcca5e685248476ceeb030d0492d4a8485a4fd126db80eefa7821e289a7b534b6e9ef ssh-tools-1.6.tar.gz"
+sha512sums="
+1bd2c344853401249e64460d89ee67aa55697ec42f98ad22c7f47cb18dca02f17157a3b69bc4d329813488d2ebb01a6af2d29849e96c9b0cfc02866f62d10c01 ssh-tools-1.8.tar.gz
+"
diff --git a/testing/sshign/APKBUILD b/testing/sshign/APKBUILD
deleted file mode 100644
index 8ea1fbc7bf8..00000000000
--- a/testing/sshign/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=sshign
-pkgver=0.1.0
-pkgrel=1
-pkgdesc="Small program to sign & verify files with your SSH key"
-url="https://git.sr.ht/~minus/sshign"
-arch="all"
-license="MIT"
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~minus/sshign/archive/$pkgver.tar.gz"
-options="!check" # No upstream tests
-
-build() {
- make PREFIX=/usr
-}
-
-package() {
- make install PREFIX=/usr DESTDIR="$pkgdir"
-}
-
-sha512sums="284b56f7420fbf8a0a96fcb8456b28d9ed759320d1b3bc8c06f96211f535817fcc54a7a925807fe845b28e5294a76305fb15f566659eef1e8a2f70e51bb6fe2f sshign-0.1.0.tar.gz"
diff --git a/testing/sshsrv/APKBUILD b/testing/sshsrv/APKBUILD
new file mode 100644
index 00000000000..3b9b5719925
--- /dev/null
+++ b/testing/sshsrv/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=sshsrv
+pkgver=1.0
+pkgrel=4
+pkgdesc="Connect to SSH servers using DNS SRV records"
+url="https://github.com/Crosse/sshsrv"
+arch="all"
+license="ISC"
+makedepends="go"
+options="chmod-clean net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Crosse/sshsrv/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+build() {
+ go build
+}
+
+check() {
+ # useless since no test are available
+ go test
+}
+
+package() {
+ install -Dm755 sshsrv "$pkgdir"/usr/bin/sshsrv
+}
+
+sha512sums="
+225dce6d454eced8b2572b2f79ae6c5d0fb8a16f5f0129241805e808ccfffebe5e36d31d44121c14f3632cc2aec1f4f31c1de99cb258586876eb9a30265e5e04 sshsrv-1.0.tar.gz
+"
diff --git a/testing/sshuttle/APKBUILD b/testing/sshuttle/APKBUILD
index 8651e17dce1..42ef1cc66a7 100644
--- a/testing/sshuttle/APKBUILD
+++ b/testing/sshuttle/APKBUILD
@@ -1,19 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname="sshuttle"
-pkgver="0.78.5"
-pkgrel=0
+pkgname=sshuttle
+pkgver=1.1.1
+pkgrel=2
pkgdesc="Transparent proxy server using ssh"
url="https://github.com/sshuttle/sshuttle"
arch="noarch"
license="GPL-2.0-only"
-depends="python3"
+depends="python3 py3-psutil"
makedepends="py3-setuptools"
checkdepends="py3-pytest py3-pytest-cov py3-mock py3-flake8"
options="!check" # TODO: fix testsuite
-source="https://github.com/sshuttle/sshuttle/archive/v$pkgver/sshuttle-$pkgver.tar.gz
- no-scm.patch
- "
-builddir="$srcdir/sshuttle-$pkgver"
+subpackages="$pkgname-pyc"
+source="https://github.com/sshuttle/sshuttle/archive/v$pkgver/sshuttle-$pkgver.tar.gz"
build() {
echo "version = '$pkgver'" > sshuttle/version.py
@@ -25,8 +23,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="bf76bfbd1025ce8c7b72e946541b9cc8b678ba21049fef65df4929cb7a36684f259fc653b644da0c3c278fd26a38e218202d5debce243659a840b7f36acd5e20 sshuttle-0.78.5.tar.gz
-bdfcb1e88b4f2ce3906ed511697083ab789d5a8c1034bce25448cdd3195fb5e26ab403e7f3fdb97d4293cad4875dc08ed5071dafab145c70f654ab9ac40fb160 no-scm.patch"
+sha512sums="
+4f670bee34653e47cf7a0c8550b2ac734230ccf0d4fb6191ae3a0c6404847c788c3cdf033bc1571f49472729029077aa6d6970f4bce78fa4980f1f29ccbd2f7a sshuttle-1.1.1.tar.gz
+"
diff --git a/testing/sshuttle/no-scm.patch b/testing/sshuttle/no-scm.patch
deleted file mode 100644
index 33a317e40d1..00000000000
--- a/testing/sshuttle/no-scm.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/setup.py b/setup.py
-index d5f3c7e..b90473d 100755
---- a/setup.py
-+++ b/setup.py
-@@ -28,12 +28,7 @@ def version_scheme(version):
-
- setup(
- name="sshuttle",
-- use_scm_version={
-- 'write_to': "sshuttle/version.py",
-- 'version_scheme': version_scheme,
-- },
-- setup_requires=['setuptools_scm'],
-- # version=version,
-+ #version="",
- url='https://github.com/sshuttle/sshuttle',
- author='Brian May',
- author_email='brian@linuxpenguins.xyz',
diff --git a/testing/ssldump/0010-openssl.patch b/testing/ssldump/0010-openssl.patch
deleted file mode 100644
index c9461d4587c..00000000000
--- a/testing/ssldump/0010-openssl.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for ssldump >= 0.9b3, which
-reinstates the the -y (nroff) flag, declares MD5_CTX via <openssl/md5.h>, avoids
-"ERROR: Couldn't create network handler" by calling SSL_library_init() function
-and OpenSSL_add_all_algorithms() rather SSLeay_add_all_algorithms() and revises
-the ssldump man page for correctness and completeness.
-
---- ssldump-0.9b3/ssl/ssl_analyze.c 2002-01-21 19:46:13.000000000 +0100
-+++ ssldump-0.9b3/ssl/ssl_analyze.c.openssl 2010-01-22 23:59:09.000000000 +0100
-@@ -133,7 +133,7 @@
- SSL_PRINT_DECODE
- },
- {
-- 0,
-+ 'y',
- "nroff",
- SSL_PRINT_NROFF
- },
---- ssldump-0.9b3/ssl/ssldecode.c 2002-08-17 03:33:17.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssldecode.c.openssl 2010-01-22 23:59:46.000000000 +0100
-@@ -51,6 +51,7 @@
- #include <openssl/ssl.h>
- #include <openssl/hmac.h>
- #include <openssl/evp.h>
-+#include <openssl/md5.h>
- #include <openssl/x509v3.h>
- #endif
- #include "ssldecode.h"
-@@ -131,7 +132,8 @@
- ssl_decode_ctx *d=0;
- int r,_status;
-
-- SSLeay_add_all_algorithms();
-+ SSL_library_init();
-+ OpenSSL_add_all_algorithms();
- if(!(d=(ssl_decode_ctx *)malloc(sizeof(ssl_decode_ctx))))
- ABORT(R_NO_MEMORY);
- if(!(d->ssl_ctx=SSL_CTX_new(SSLv23_server_method())))
---- ssldump-0.9b3/ssldump.1 2002-08-13 01:46:53.000000000 +0200
-+++ ssldump-0.9b3/ssldump.1.openssl 2010-01-23 00:26:26.000000000 +0100
-@@ -61,12 +61,9 @@
- .na
- .B ssldump
- [
--.B \-vtaTnsAxXhHVNdq
-+.B \-vTshVq
-+.B \-aAdeHnNqTxXvy
- ] [
--.B \-r
--.I dumpfile
--]
--[
- .B \-i
- .I interface
- ]
-@@ -81,6 +78,16 @@
- .I password
- ]
- [
-+.B \-r
-+.I dumpfile
-+]
-+.br
-+.ti +8
-+[
-+.B \-S
-+.RI [\| crypto \||\| d \||\| ht \||\| H \||\| nroff \|]
-+]
-+[
- .I expression
- ]
- .br
-@@ -125,6 +132,7 @@
- You must have read access to
- .IR /dev/bpf* .
- .SH OPTIONS
-+.TP
- .B \-a
- Print bare TCP ACKs (useful for observing Nagle behavior)
- .TP
-@@ -135,7 +143,7 @@
- .B \-d
- Display the application data traffic. This usually means
- decrypting it, but when -d is used ssldump will also decode
--application data traffic _before_ the SSL session initiates.
-+application data traffic \fIbefore\fP the SSL session initiates.
- This allows you to see HTTPS CONNECT behavior as well as
- SMTP STARTTLS. As a side effect, since ssldump can't tell
- whether plaintext is traffic before the initiation of an
-@@ -148,18 +156,9 @@
- .B \-e
- Print absolute timestamps instead of relative timestamps
- .TP
--.B \-r
--Read data from \fIfile\fP instead of from the network.
--The old -f option still works but is deprecated and will
--probably be removed with the next version.
- .B \-H
- Print the full SSL packet header.
- .TP
--.B \-k
--Use \fIkeyfile\fP as the location of the SSL keyfile (OpenSSL format)
--Previous versions of ssldump automatically looked in ./server.pem.
--Now you must specify your keyfile every time.
--.TP
- .B \-n
- Don't try to resolve host names from IP addresses
- .TP
-@@ -176,6 +175,12 @@
- .B \-q
- Don't decode any record fields beyond a single summary line. (quiet mode).
- .TP
-+.B \-T
-+Print the TCP headers.
-+.TP
-+.B \-v
-+Display version and copyright information.
-+.TP
- .B \-x
- Print each record in hex, as well as decoding it.
- .TP
-@@ -183,13 +188,48 @@
- When the -d option is used, binary data is automatically printed
- in two columns with a hex dump on the left and the printable characters
- on the right. -X suppresses the display of the printable characters,
--thus making it easier to cut and paste the hext data into some other
-+thus making it easier to cut and paste the hex data into some other
- program.
-+.TP
- .B \-y
--Decorate the output for processing with troff. Not very
-+Decorate the output for processing with nroff/troff. Not very
- useful for the average user.
- .TP
--.IP "\fI expression\fP"
-+.BI \-i " interface"
-+Use \fIinterface\fP as the network interface on which to sniff SSL/TLS
-+traffic.
-+.TP
-+.BI \-k " keyfile"
-+Use \fIkeyfile\fP as the location of the SSL keyfile (OpenSSL format)
-+Previous versions of ssldump automatically looked in ./server.pem.
-+Now you must specify your keyfile every time.
-+.TP
-+.BI \-p " password"
-+Use \fIpassword\fP as the SSL keyfile password.
-+.TP
-+.BI \-r " file"
-+Read data from \fIfile\fP instead of from the network.
-+The old -f option still works but is deprecated and will
-+probably be removed with the next version.
-+.TP
-+.BI \-S " [ " crypto " | " d " | " ht " | " H " ]"
-+Specify SSL flags to ssldump. These flags include:
-+.RS
-+.TP
-+.I crypto
-+Print cryptographic information.
-+.TP
-+.I d
-+Print fields as decoded.
-+.TP
-+.I ht
-+Print the handshake type.
-+.TP
-+.I H
-+Print handshake type and highlights.
-+.RE
-+.TP
-+\fIexpression\fP
- .RS
- Selects what packets ssldump will examine. Technically speaking,
- ssldump supports the full expression syntax from PCAP and tcpdump.
-@@ -200,7 +240,7 @@
- don't result in incomplete TCP streams are listed here.
- .LP
- The \fIexpression\fP consists of one or more
--.I primitives.
-+.IR primitives .
- Primitives usually consist of an
- .I id
- (name or number) preceded by one or more qualifiers. There are three
-@@ -512,5 +552,11 @@
- .LP
- ssldump doesn't implement session caching and therefore can't decrypt
- resumed sessions.
--
--
-+.LP
-+.SH SEE ALSO
-+.LP
-+.BR tcpdump (1)
-+.LP
-+.SH AUTHOR
-+.LP
-+ssldump was written by Eric Rescorla <ekr@rtfm.com>.
---- ssldump-0.9b3/base/pcap-snoop.c 2002-09-09 23:02:58.000000000 +0200
-+++ ssldump-0.9b3/base/pcap-snoop.c.openssl 2010-04-06 16:50:22.000000000 +0200
-@@ -206,7 +206,7 @@
-
- signal(SIGINT,sig_handler);
-
-- while((c=getopt(argc,argv,"vr:f:S:Ttai:k:p:nsAxXhHVNdqem:P"))!=EOF){
-+ while((c=getopt(argc,argv,"vr:f:S:yTtai:k:p:nsAxXhHVNdqem:P"))!=EOF){
- switch(c){
- case 'v':
- print_version();
-@@ -227,6 +227,9 @@
- case 'a':
- NET_print_flags |= NET_PRINT_ACKS;
- break;
-+ case 'A':
-+ SSL_print_flags |= SSL_PRINT_ALL_FIELDS;
-+ break;
- case 'T':
- NET_print_flags |= NET_PRINT_TCP_HDR;
- break;
diff --git a/testing/ssldump/0020-libpcap.patch b/testing/ssldump/0020-libpcap.patch
deleted file mode 100644
index 10682218d28..00000000000
--- a/testing/ssldump/0020-libpcap.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for ssldump >= 0.9b3, which
-replaces the inclusion of <net/bpf.h> by <pcap-bpf.h> because of changed files.
-It adds some 64 bit support in ./configure for lib64 directories around libpcap
-and ensures that dynamic linking to libpcap is possible.
-
---- ssldump-0.9b3/base/pcap-snoop.c 2010-01-23 00:30:24.000000000 +0100
-+++ ssldump-0.9b3/base/pcap-snoop.c.libpcap 2010-01-23 00:34:11.000000000 +0100
-@@ -49,7 +49,7 @@
-
- #include <pcap.h>
- #include <unistd.h>
--#include <net/bpf.h>
-+#include <pcap-bpf.h>
- #ifndef _WIN32
- #include <sys/param.h>
- #endif
---- ssldump-0.9b3/configure.in 2001-11-26 23:38:13.000000000 +0100
-+++ ssldump-0.9b3/configure.in.libpcap 2010-01-23 00:33:12.000000000 +0100
-@@ -62,7 +62,7 @@
- dnl Look for PCAP
- dnl We absolutely need pcap
- ac_pcap_inc_dir="/usr/include /usr/include/pcap /usr/local/include"
--ac_pcap_lib_dir="/usr/lib /usr/local/lib"
-+ac_pcap_lib_dir="/usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib"
-
- AC_ARG_WITH(pcap,[--with-pcap root location for pcap library],
- if test "$withval" = "no"; then
-@@ -102,13 +102,13 @@
- AC_MSG_CHECKING(for PCAP library)
- ac_found_pcap_lib_dir="no"
- for dir in $ac_pcap_lib_dir; do
-- if test -f $dir/libpcap.a; then
-+ if test -f $dir/libpcap.a -o -f $dir/libpcap.so; then
- dnl Ok, we think we've found them, but check that they
- dnl actually ontain the right functions
- save_LIBS=$LIBS
- save_LDFLAGS=$LDFLAGS
- LIBS="-lpcap $LIBS"
-- if test "$dir" != "/usr/lib"; then
-+ if test "$dir" != "/usr/lib" -a "$dir" != "/usr/lib64"; then
- LDFLAGS="-L$dir $LDFLAGS"
- fi
- AC_TRY_LINK_FUNC(pcap_open_live,ac_linked_libpcap="true",
diff --git a/testing/ssldump/0030-aes.patch b/testing/ssldump/0030-aes.patch
deleted file mode 100644
index 3965332e8f2..00000000000
--- a/testing/ssldump/0030-aes.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-Patch by Carsten Hoeger <choeger@suse.de> for ssldump >= 0.9b3 which adds support
-for AES cipher-suites (to ssldump). For further information, please have a look to
-Novell bug ID #50952.
-
---- ssldump-0.9b3/ssl/sslciphers.h 2002-08-17 03:33:17.000000000 +0200
-+++ ssldump-0.9b3/ssl/sslciphers.h.aes 2010-04-06 16:34:35.000000000 +0200
-@@ -71,7 +71,9 @@
- #define ENC_RC4 0x32
- #define ENC_RC2 0x33
- #define ENC_IDEA 0x34
--#define ENC_NULL 0x35
-+#define ENC_AES128 0x35
-+#define ENC_AES256 0x36
-+#define ENC_NULL 0x37
-
- #define DIG_MD5 0x40
- #define DIG_SHA 0x41
---- ssldump-0.9b3/ssl/ssl_rec.c 2000-11-03 07:38:06.000000000 +0100
-+++ ssldump-0.9b3/ssl/ssl_rec.c.aes 2010-04-06 16:42:13.000000000 +0200
-@@ -78,7 +78,9 @@
- "DES3",
- "RC4",
- "RC2",
-- "IDEA"
-+ "IDEA",
-+ "AES128",
-+ "AES256"
- };
-
-
-@@ -101,6 +103,11 @@
- /* Find the SSLeay cipher */
- if(cs->enc!=ENC_NULL){
- ciph=(EVP_CIPHER *)EVP_get_cipherbyname(ciphers[cs->enc-0x30]);
-+ if(!ciph)
-+ ABORT(R_INTERNAL);
-+ }
-+ else {
-+ ciph=EVP_enc_null();
- }
-
- if(!(dec=(ssl_rec_decoder *)calloc(sizeof(ssl_rec_decoder),1)))
-@@ -169,7 +176,7 @@
- *outl=inl;
-
- /* Now strip off the padding*/
-- if(d->cs->block!=1){
-+ if(d->cs->block>1){
- pad=out[inl-1];
- *outl-=(pad+1);
- }
---- ssldump-0.9b3/ssl/ssl.enums 2001-07-20 18:44:32.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl.enums.aes 2010-04-06 16:36:06.000000000 +0200
-@@ -356,6 +356,18 @@
- CipherSuite TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x19 };
- CipherSuite TLS_DH_anon_WITH_DES_CBC_SHA = { 0x00,0x1A };
- CipherSuite TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = { 0x00,0x1B };
-+ CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x2F };
-+ CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x30 };
-+ CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x31 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x32 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x33 };
-+ CipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA = { 0x00,0x34 };
-+ CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x35 };
-+ CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x36 };
-+ CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x37 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x38 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x39 };
-+ CipherSuite TLS_DH_anon_WITH_AES_256_CBC_SHA = { 0x00,0x3A };
- CipherSuite TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 = { 0x00,0x60 };
- CipherSuite TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = { 0x00,0x61 };
- CipherSuite TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA = { 0x00,0x62 };
---- ssldump-0.9b3/ssl/ciphersuites.c 2002-08-17 03:33:17.000000000 +0200
-+++ ssldump-0.9b3/ssl/ciphersuites.c.aes 2010-04-06 16:33:52.000000000 +0200
-@@ -78,10 +78,22 @@
- {25,KEX_DH,SIG_NONE,ENC_DES,8,64,40,DIG_MD5,16,1},
- {26,KEX_DH,SIG_NONE,ENC_DES,8,64,64,DIG_MD5,16,0},
- {27,KEX_DH,SIG_NONE,ENC_3DES,8,192,192,DIG_MD5,16,0},
-+ {47,KEX_RSA,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {48,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {49,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {50,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {51,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {52,KEX_DH,SIG_NONE,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {53,KEX_RSA,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {54,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {55,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {56,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {57,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {58,KEX_DH,SIG_NONE,ENC_AES256,16,256,256,DIG_SHA,20,0},
- {96,KEX_RSA,SIG_RSA,ENC_RC4,1,128,56,DIG_MD5,16,1},
- {97,KEX_RSA,SIG_RSA,ENC_RC2,1,128,56,DIG_MD5,16,1},
- {98,KEX_RSA,SIG_RSA,ENC_DES,8,64,64,DIG_SHA,20,1},
-- {99,KEX_DH,SIG_DSS,ENC_DES,8,64,64,DIG_SHA,16,1},
-+ {99,KEX_DH,SIG_DSS,ENC_DES,8,64,64,DIG_SHA,20,1},
- {100,KEX_RSA,SIG_RSA,ENC_RC4,1,128,56,DIG_SHA,20,1},
- {101,KEX_DH,SIG_DSS,ENC_RC4,1,128,56,DIG_SHA,20,1},
- {102,KEX_DH,SIG_DSS,ENC_RC4,1,128,128,DIG_SHA,20,0},
---- ssldump-0.9b3/ssl/ssl.enums.c 2001-07-20 18:44:36.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl.enums.c.aes 2010-04-06 16:40:14.000000000 +0200
-@@ -151,7 +151,7 @@
- "application_data",
- decode_ContentType_application_data
- },
--{0}
-+{-1}
- };
-
- static int decode_HandshakeType_HelloRequest(ssl,dir,seg,data)
-@@ -163,6 +163,7 @@
-
-
- printf("\n");
-+ return(0);
-
- }
- static int decode_HandshakeType_ClientHello(ssl,dir,seg,data)
-@@ -368,6 +369,7 @@
-
-
- printf("\n");
-+ return(0);
-
- }
- static int decode_HandshakeType_CertificateVerify(ssl,dir,seg,data)
-@@ -611,6 +613,54 @@
- "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA",
- 0 },
- {
-+ 47,
-+ "TLS_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 48,
-+ "TLS_DH_DSS_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49,
-+ "TLS_DH_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 50,
-+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 51,
-+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 52,
-+ "TLS_DH_anon_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 53,
-+ "TLS_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 54,
-+ "TLS_DH_DSS_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 55,
-+ "TLS_DH_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 56,
-+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 57,
-+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 58,
-+ "TLS_DH_anon_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
- 96,
- "TLS_RSA_EXPORT1024_WITH_RC4_56_MD5",
- 0 },
---- ssldump-0.9b3/ssl/ssl_enum.c 2000-10-09 07:14:02.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl_enum.c.aes 2010-04-06 16:57:15.000000000 +0200
-@@ -70,7 +70,7 @@
- "application_data",
- decode_ContentType_application_data
- },
--{0}
-+{-1}
- };
-
- static int decode_HandshakeType_hello_request(ssl,dir,seg,data)
diff --git a/testing/ssldump/0040-cvs-20060619.patch b/testing/ssldump/0040-cvs-20060619.patch
deleted file mode 100644
index 7b7c6b305de..00000000000
--- a/testing/ssldump/0040-cvs-20060619.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-Patch by Michael Calmer <mc@suse.de> for ssldump >= 0.9b3 which backports several
-fixes and some minor enhancements from upstream CVS 2006-06-19.
-
---- ssldump-0.9b3/ssl/sslprint.c 2002-08-17 03:33:17.000000000 +0200
-+++ ssldump-0.9b3/ssl/sslprint.c.cvs 2010-04-06 17:12:40.000000000 +0200
-@@ -248,12 +248,12 @@
- SSL_DECODE_UINT16(ssl,0,0,&d,&length);
-
- if(d.len!=length){
-- explain(ssl,"Short record\n");
-+ explain(ssl," Short record: %u bytes available (expecting: %u)\n",length,d.len);
- return(0);
- }
-
- P_(P_RH){
-- explain(ssl,"V%d.%d(%d)",vermaj,vermin,length);
-+ explain(ssl," V%d.%d(%d)",vermaj,vermin,length);
- }
-
-
-@@ -262,19 +262,22 @@
- r=ssl_decode_record(ssl,ssl->decoder,direction,ct,version,&d);
-
- if(r==SSL_BAD_MAC){
-- explain(ssl," bad MAC\n");
-+ explain(ssl," bad MAC\n");
- return(0);
- }
-
- if(r){
-- if(r=ssl_print_enum(ssl,0,ContentType_decoder,ct))
-+ if(r=ssl_print_enum(ssl,0,ContentType_decoder,ct)) {
-+ printf(" unknown record type: %d\n", ct);
- ERETURN(r);
-+ }
- printf("\n");
- }
- else{
-- if(r=ssl_decode_switch(ssl,ContentType_decoder,data[0],direction,q,
-- &d))
-+ if(r=ssl_decode_switch(ssl,ContentType_decoder,data[0],direction,q, &d)) {
-+ printf(" unknown record type: %d\n", ct);
- ERETURN(r);
-+ }
- }
-
- return(0);
-@@ -369,7 +372,7 @@
- dtable++;
- }
-
-- return(-1);
-+ return(R_NOT_FOUND);
- }
-
- int ssl_decode_enum(ssl,name,size,dtable,p,data,x)
-@@ -416,8 +419,7 @@
- dtable++;
- }
-
-- explain(ssl,"%s","unknown value");
-- return(0);
-+ return(R_NOT_FOUND);
- }
-
- int explain(ssl_obj *ssl,char *format,...)
-@@ -535,7 +537,7 @@
-
- printf("\n");
- for(i=0;i<d->len;i++){
-- if(!isprint(d->data[i]) && !strchr("\r\n\t",d->data[i])){
-+ if(d->data[i] == 0 || (!isprint(d->data[i]) && !strchr("\r\n\t",d->data[i]))){
- bit8=1;
- break;
- }
-@@ -557,7 +559,8 @@
- else{
- int nl=1;
- INDENT;
-- printf("---------------------------------------------------------------\n"); if(SSL_print_flags & SSL_PRINT_NROFF){
-+ printf("---------------------------------------------------------------\n");
-+ if(SSL_print_flags & SSL_PRINT_NROFF){
- if(ssl->process_ciphertext & ssl->direction)
- printf("\\f[CI]");
- else
---- ssldump-0.9b3/ssl/ssl_analyze.c 2010-04-06 16:58:23.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl_analyze.c.cvs 2010-04-06 17:08:22.000000000 +0200
-@@ -359,12 +359,16 @@
- case 23:
- break;
- default:
-- printf("Unknown SSL content type %d\n",q->data[0] & 255);
-- ABORT(R_INTERNAL);
-+ DBG((0,"Unknown SSL content type %d for segment %u:%u(%u)",
-+ q->data[0] & 255,seg->s_seq,seg->s_seq+seg->len,seg->len));
- }
-
- rec_len=COMBINE(q->data[3],q->data[4]);
-
-+ /* SSL v3.0 spec says a record may not exceed 2**14 + 2048 == 18432 */
-+ if(rec_len > 18432)
-+ ABORT(R_INTERNAL);
-+
- /*Expand the buffer*/
- if(q->_allocated<(rec_len+SSL_HEADER_SIZE)){
- if(!(q->data=realloc(q->data,rec_len+5)))
---- ssldump-0.9b3/base/tcppack.c 2002-09-09 23:02:58.000000000 +0200
-+++ ssldump-0.9b3/base/tcppack.c.cvs 2010-04-06 17:06:46.000000000 +0200
-@@ -95,11 +95,11 @@
- proper order. This shouldn't be a problem, though,
- except for simultaneous connects*/
- if((p->tcp->th_flags & (TH_SYN|TH_ACK))!=TH_SYN){
-- DBG((0,"TCP: rejecting packet from unknown connection\n"));
-+ DBG((0,"TCP: rejecting packet from unknown connection, seq: %u\n",ntohl(p->tcp->th_seq)));
- return(0);
- }
-
-- DBG((0,"SYN1\n"));
-+ DBG((0,"SYN1 seq: %u",ntohl(p->tcp->th_seq)));
- if(r=new_connection(handler,ctx,p,&conn))
- ABORT(r);
- conn->i2r.seq=ntohl(p->tcp->th_seq)+1;
-@@ -117,14 +117,14 @@
- conn->r2i.seq=ntohl(p->tcp->th_seq)+1;
- conn->r2i.ack=ntohl(p->tcp->th_ack)+1;
- conn->state=TCP_STATE_SYN2;
-- DBG((0,"SYN2\n"));
-+ DBG((0,"SYN2 seq: %u",ntohl(p->tcp->th_seq)));
- break;
- case TCP_STATE_SYN2:
- {
- char *sn=0,*dn=0;
- if(direction != DIR_I2R)
- break;
-- DBG((0,"ACK\n"));
-+ DBG((0,"ACK seq: %u",ntohl(p->tcp->th_seq)));
- conn->i2r.ack=ntohl(p->tcp->th_ack)+1;
- lookuphostname(&conn->i_addr,&sn);
- lookuphostname(&conn->r_addr,&dn);
-@@ -228,7 +228,8 @@
- l=p->len - p->tcp->th_off * 4;
-
- if(stream->close){
-- DBG((0,"Rejecting packet received after FIN"));
-+ DBG((0,"Rejecting packet received after FIN: %u:%u(%u)",
-+ ntohl(p->tcp->th_seq),ntohl(p->tcp->th_seq+l),l));
- return(0);
- }
-
-@@ -341,20 +342,26 @@
- if(conn->state == TCP_STATE_ESTABLISHED)
- conn->state=TCP_STATE_FIN1;
- else
-- conn->state=TCP_STATE_CLOSED;
-+ conn->state=TCP_STATE_CLOSED;
- }
-
- stream->oo_queue=seg->next;
- seg->next=0;
- stream->seq=seg->s_seq + seg->len;
-
-- if(r=conn->analyzer->vtbl->data(conn->analyzer->obj,&_seg,direction))
-+ DBG((0,"Analyzing segment: %u:%u(%u)", seg->s_seq, seg->s_seq+seg->len, seg->len));
-+ if(r=conn->analyzer->vtbl->data(conn->analyzer->obj,&_seg,direction)) {
-+ DBG((0,"ABORT due to segment: %u:%u(%u)", seg->s_seq, seg->s_seq+seg->len, seg->len));
- ABORT(r);
-+ }
- }
-
- if(stream->close){
-- if(r=conn->analyzer->vtbl->close(conn->analyzer->obj,p,direction))
-- ABORT(r);
-+ DBG((0,"Closing with segment: %u:%u(%u)", seg->s_seq, stream->seq, seg->len));
-+ if(r=conn->analyzer->vtbl->close(conn->analyzer->obj,p,direction)) {
-+ DBG((0,"ABORT due to segment: %u:%u(%u)", seg->s_seq, stream->seq, seg->len));
-+ ABORT(r);
-+ }
- }
-
- free_tcp_segment_queue(_seg.next);
---- ssldump-0.9b3/common/lib/r_assoc.c 2001-12-24 07:06:26.000000000 +0100
-+++ ssldump-0.9b3/common/lib/r_assoc.c.cvs 2010-04-06 17:01:11.000000000 +0200
-@@ -306,7 +306,7 @@
- ABORT(R_NO_MEMORY);
- for(i=0;i<new->size;i++){
- if(r=copy_assoc_chain(new->chains+i,old->chains[i]))
-- ABORT(r);
-+ ABORT(R_NO_MEMORY);
- }
- *newp=new;
-
diff --git a/testing/ssldump/0050-table-stops.patch b/testing/ssldump/0050-table-stops.patch
deleted file mode 100644
index f3f7920e873..00000000000
--- a/testing/ssldump/0050-table-stops.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for ssldump >= 0.9b3, which is
-changing the decoder table ends from 0 to -1 to match the expected value of table
-search routines. Without this patch, ssldump segfaults at latest after some time
-of usage when decoding unknown enumerated values. For further information, please
-have a look to Red Hat Bugzilla, bug ID #747398.
-
---- ssldump-0.9b3/ssl/ssl.enums.c 2011-10-24 22:33:03.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl.enums.c.table-stops 2011-10-24 22:34:20.000000000 +0200
-@@ -500,7 +500,7 @@
- "Finished",
- decode_HandshakeType_Finished
- },
--{0}
-+{-1}
- };
-
- decoder cipher_suite_decoder[]={
-@@ -778,7 +778,7 @@
- "fatal",
- decode_AlertLevel_fatal
- },
--{0}
-+{-1}
- };
-
- static int decode_AlertDescription_close_notify(ssl,dir,seg,data)
-@@ -1081,7 +1081,7 @@
- "no_renegotiation",
- decode_AlertDescription_no_renegotiation
- },
--{0}
-+{-1}
- };
-
- decoder compression_method_decoder[]={
-@@ -1145,6 +1145,6 @@
- "dss_fixed_dh",
- decode_client_certificate_type_dss_fixed_dh
- },
--{0}
-+{-1}
- };
-
---- ssldump-0.9b3/ssl/ssl_enum.c 2011-10-24 22:33:03.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl_enum.c.table-stops 2011-10-24 22:34:44.000000000 +0200
-@@ -260,7 +260,7 @@
- "finished",
- decode_HandshakeType_finished
- },
--{0}
-+{-1}
- };
-
- decoder cipher_suite_decoder[]={
diff --git a/testing/ssldump/0060-link_layer.patch b/testing/ssldump/0060-link_layer.patch
deleted file mode 100644
index 0b4df7cd667..00000000000
--- a/testing/ssldump/0060-link_layer.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for ssldump >= 0.9b3 which adds
-some further link layer offsets; inspirated from the original DLT_LINUX_SLL patch
-by PeBek at http://sourceforge.net/p/ssldump/patches/6/.
-
---- ssldump-0.9b3/base/pcap-snoop.c 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/base/pcap-snoop.c.link_layer 2014-05-04 02:20:21.000000000 +0200
-@@ -136,6 +136,10 @@
- len=hdr->len;
-
- switch(pcap_if_type){
-+ case DLT_RAW:
-+#ifdef DLT_LOOP
-+ case DLT_LOOP:
-+#endif
- case DLT_NULL:
- data+=4;
- len-=4;
-@@ -158,6 +162,73 @@
- return;
-
- break;
-+ case DLT_IEEE802:
-+ data+=22;
-+ len-=22;
-+ break;
-+ case DLT_FDDI:
-+ data+=21;
-+ len-=21;
-+ break;
-+#ifdef __amigaos__
-+ case DLT_MIAMI:
-+ data+=16;
-+ len-=16;
-+ break;
-+#endif
-+ case DLT_SLIP:
-+#ifdef DLT_SLIP_BSDOS
-+ case DLT_SLIP_BSDOS:
-+#endif
-+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) || defined(__APPLE__)
-+ data+=16;
-+ len-=16;
-+#else
-+ data+=24;
-+ len-=24;
-+#endif
-+ break;
-+ case DLT_PPP:
-+#ifdef DLT_PPP_BSDOS
-+ case DLT_PPP_BSDOS:
-+#endif
-+#ifdef DLT_PPP_SERIAL
-+ case DLT_PPP_SERIAL:
-+#endif
-+#ifdef DLT_PPP_ETHER
-+ case DLT_PPP_ETHER:
-+#endif
-+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) || defined(__APPLE__)
-+ data+=4;
-+ len-=4;
-+#else
-+#if defined(sun) || defined(__sun)
-+ data+=8;
-+ len-=8;
-+#else
-+ data+=24;
-+ len-=24;
-+#endif
-+#endif
-+ break;
-+#ifdef DLT_ENC
-+ case DLT_ENC:
-+ data+=12;
-+ len-=12;
-+ break;
-+#endif
-+#ifdef DLT_LINUX_SLL
-+ case DLT_LINUX_SLL:
-+ data+=16;
-+ len-=16;
-+ break;
-+#endif
-+#ifdef DLT_IPNET
-+ case DLT_IPNET:
-+ data+=24;
-+ len-=24;
-+ break;
-+#endif
- }
- network_process_packet(n,&hdr->ts,data,len);
- }
diff --git a/testing/ssldump/0070-pcap-vlan.patch b/testing/ssldump/0070-pcap-vlan.patch
deleted file mode 100644
index 1c58d87c609..00000000000
--- a/testing/ssldump/0070-pcap-vlan.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Patch by David Holmes <dholmesf5@users.sourceforge.net> for ssldump >= 0.9b3 which
-adds a filter to include traffic with or without the 802.1Q VLAN header.
-
---- ssldump-0.9b3/base/pcap-snoop.c 2014-05-04 02:20:21.000000000 +0200
-+++ ssldump-0.9b3/base/pcap-snoop.c.pcap-vlan 2014-05-04 05:22:43.000000000 +0200
-@@ -385,6 +385,30 @@
- if(filter){
- struct bpf_program fp;
-
-+ /* (F5 patch)
-+ * reformat filter to include traffic with or without the 802.1q
-+ * vlan header. for example, "port 80" becomes:
-+ * "( port 80 ) or ( vlan and port 80 )".
-+ * note that if the filter includes the literals vlan, tagged, or
-+ * untagged, then it is assumed that the user knows what she is
-+ * doing, and the filter is not reformatted.
-+ */
-+ if ((pcap_datalink(p) == DLT_EN10MB) &&
-+ (filter != NULL) &&
-+ (strstr(filter,"vlan") == NULL)) {
-+ char *tmp_filter;
-+ char *fmt = "( (not ether proto 0x8100) and (%s) ) or ( vlan and (%s) )";
-+
-+ tmp_filter = (char *)malloc((strlen(filter) * 2) + strlen(fmt) + 1);
-+ if (tmp_filter == NULL) {
-+ fprintf(stderr,"PCAP: malloc failed\n");
-+ err_exit("Aborting",-1);
-+ }
-+
-+ sprintf(tmp_filter,fmt,filter,filter);
-+ filter = tmp_filter;
-+ }
-+
- if(pcap_compile(p,&fp,filter,0,netmask)<0)
- verr_exit("PCAP: %s\n",pcap_geterr(p));
-
diff --git a/testing/ssldump/0080-tlsv12.patch b/testing/ssldump/0080-tlsv12.patch
deleted file mode 100644
index fae15c85b29..00000000000
--- a/testing/ssldump/0080-tlsv12.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-Patch by David Holmes <dholmesf5@users.sourceforge.net> (revised by Paul Aurich
-<darkrain@users.sourceforge.net>, minor changes for compilation by Robert Scheck
-<robert@fedoraproject.org>) for ssldump >= 0.9b3 which adds TLSv1.1 and TLSv1.2
-application data decrypt support. For further information please have a look to
-http://sourceforge.net/p/ssldump/patches/8/.
-
---- ssldump-0.9b3/ssl/ssl_rec.c 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl_rec.c.tlsv12 2014-05-04 05:30:22.000000000 +0200
-@@ -68,19 +68,28 @@
- };
-
-
--static char *digests[]={
-+char *digests[]={
- "MD5",
- "SHA1"
-+ "SHA224",
-+ "SHA256",
-+ "SHA384",
-+ "SHA512",
-+ NULL
- };
-
--static char *ciphers[]={
-+char *ciphers[]={
- "DES",
-- "DES3",
-+ "3DES",
- "RC4",
- "RC2",
- "IDEA",
- "AES128",
-- "AES256"
-+ "AES256",
-+ "CAMELLIA128",
-+ "CAMELLIA256",
-+ "SEED",
-+ NULL
- };
-
-
-@@ -192,6 +201,19 @@
- ERETURN(r);
- }
- else{
-+ /* TLS 1.1 and beyond: remove explicit IV, only used with
-+ * non-stream ciphers. */
-+ if (ssl->version>=0x0302 && ssl->cs->block > 1) {
-+ UINT4 blk = ssl->cs->block;
-+ if (blk <= *outl) {
-+ *outl-=blk;
-+ memmove(out, out+blk, *outl);
-+ }
-+ else {
-+ DBG((0,"Block size greater than Plaintext!"));
-+ ERETURN(SSL_BAD_MAC);
-+ }
-+ }
- if(r=tls_check_mac(d,ct,version,out,*outl,mac))
- ERETURN(r);
- }
-@@ -231,7 +253,7 @@
- HMAC_CTX hm;
- const EVP_MD *md;
- UINT4 l;
-- UCHAR buf[20];
-+ UCHAR buf[128];
-
- md=EVP_get_digestbyname(digests[d->cs->dig-0x40]);
- HMAC_Init(&hm,d->mac_key->data,d->mac_key->len,md);
---- ssldump-0.9b3/ssl/sslciphers.h 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/ssl/sslciphers.h.tlsv12 2014-05-04 05:07:20.000000000 +0200
-@@ -73,10 +73,17 @@
- #define ENC_IDEA 0x34
- #define ENC_AES128 0x35
- #define ENC_AES256 0x36
--#define ENC_NULL 0x37
-+#define ENC_CAMELLIA128 0x37
-+#define ENC_CAMELLIA256 0x38
-+#define ENC_SEED 0x39
-+#define ENC_NULL 0x3a
-
- #define DIG_MD5 0x40
- #define DIG_SHA 0x41
-+#define DIG_SHA224 0x42 /* Not sure why EKR didn't follow RFC for */
-+#define DIG_SHA256 0x43 /* these values, but whatever, just adding on */
-+#define DIG_SHA384 0x44
-+#define DIG_SHA512 0x45
-
- int ssl_find_cipher PROTO_LIST((int num,SSL_CipherSuite **cs));
-
---- ssldump-0.9b3/ssl/ssldecode.c 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssldecode.c.tlsv12 2014-05-04 05:29:43.000000000 +0200
-@@ -61,11 +61,14 @@
-
- #define PRF(ssl,secret,usage,rnd1,rnd2,out) (ssl->version==SSLV3_VERSION)? \
- ssl3_prf(ssl,secret,usage,rnd1,rnd2,out): \
-- tls_prf(ssl,secret,usage,rnd1,rnd2,out)
-+ ((ssl->version == TLSV12_VERSION) ? \
-+ tls12_prf(ssl,secret,usage,rnd1,rnd2,out): \
-+ tls_prf(ssl,secret,usage,rnd1,rnd2,out))
-
-
- static char *ssl_password;
-
-+extern char *digests;
- extern UINT4 SSL_print_flags;
-
- struct ssl_decode_ctx_ {
-@@ -98,6 +101,8 @@
- #ifdef OPENSSL
- static int tls_P_hash PROTO_LIST((ssl_obj *ssl,Data *secret,Data *seed,
- const EVP_MD *md,Data *out));
-+static int tls12_prf PROTO_LIST((ssl_obj *ssl,Data *secret,char *usage,
-+ Data *rnd1,Data *rnd2,Data *out));
- static int tls_prf PROTO_LIST((ssl_obj *ssl,Data *secret,char *usage,
- Data *rnd1,Data *rnd2,Data *out));
- static int ssl3_prf PROTO_LIST((ssl_obj *ssl,Data *secret,char *usage,
-@@ -432,10 +437,9 @@
-
- switch(ssl->version){
- case SSLV3_VERSION:
-- if(r=ssl_generate_keying_material(ssl,d))
-- ABORT(r);
-- break;
- case TLSV1_VERSION:
-+ case TLSV11_VERSION:
-+ case TLSV12_VERSION:
- if(r=ssl_generate_keying_material(ssl,d))
- ABORT(r);
- break;
-@@ -535,10 +539,9 @@
-
- switch(ssl->version){
- case SSLV3_VERSION:
-- if(r=ssl_generate_keying_material(ssl,d))
-- ABORT(r);
-- break;
- case TLSV1_VERSION:
-+ case TLSV11_VERSION:
-+ case TLSV12_VERSION:
- if(r=ssl_generate_keying_material(ssl,d))
- ABORT(r);
- break;
-@@ -572,7 +575,7 @@
- int left=out->len;
- int tocpy;
- UCHAR *A;
-- UCHAR _A[20],tmp[20];
-+ UCHAR _A[128],tmp[128];
- unsigned int A_l,tmp_l;
- HMAC_CTX hm;
-
-@@ -665,6 +668,53 @@
-
- }
-
-+static int tls12_prf(ssl,secret,usage,rnd1,rnd2,out)
-+ ssl_obj *ssl;
-+ Data *secret;
-+ char *usage;
-+ Data *rnd1;
-+ Data *rnd2;
-+ Data *out;
-+
-+ {
-+ const EVP_MD *md;
-+ int r,_status;
-+ Data *sha_out=0;
-+ Data *seed;
-+ UCHAR *ptr;
-+ int i, dgi;
-+
-+ if(r=r_data_alloc(&sha_out,MAX(out->len,64))) /* assume max SHA512 */
-+ ABORT(r);
-+ if(r=r_data_alloc(&seed,strlen(usage)+rnd1->len+rnd2->len))
-+ ABORT(r);
-+ ptr=seed->data;
-+ memcpy(ptr,usage,strlen(usage)); ptr+=strlen(usage);
-+ memcpy(ptr,rnd1->data,rnd1->len); ptr+=rnd1->len;
-+ memcpy(ptr,rnd2->data,rnd2->len); ptr+=rnd2->len;
-+
-+ /* Earlier versions of openssl didn't have SHA256 of course... */
-+ dgi = MAX(DIG_SHA256, ssl->cs->dig)-0x40;
-+ if ((md=EVP_get_digestbyname(digests[dgi])) == NULL) {
-+ DBG((0,"Cannot get EVP for digest %s, openssl library current?",
-+ digests[dgi]));
-+ ERETURN(SSL_BAD_MAC);
-+ }
-+ if(r=tls_P_hash(ssl,secret,seed,md,sha_out))
-+ ABORT(r);
-+
-+ for(i=0;i<out->len;i++)
-+ out->data[i]=sha_out->data[i];
-+
-+ CRDUMPD("PRF out",out);
-+ _status=0;
-+ abort:
-+ r_data_destroy(&sha_out);
-+ r_data_destroy(&seed);
-+ return(_status);
-+
-+ }
-+
- static int ssl3_generate_export_iv(ssl,r1,r2,out)
- ssl_obj *ssl;
- Data *r1;
---- ssldump-0.9b3/ssl/ssl_h.h 2002-08-17 03:33:17.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl_h.h.tlsv12 2014-05-04 05:17:30.000000000 +0200
-@@ -121,6 +121,8 @@
-
- #define SSLV3_VERSION 0x300
- #define TLSV1_VERSION 0x301
-+#define TLSV11_VERSION 0x302
-+#define TLSV12_VERSION 0x303
-
- /*State defines*/
- #define SSL_ST_SENT_NOTHING 0
diff --git a/testing/ssldump/0090-ssl-enums.patch b/testing/ssldump/0090-ssl-enums.patch
deleted file mode 100644
index ed2854833a0..00000000000
--- a/testing/ssldump/0090-ssl-enums.patch
+++ /dev/null
@@ -1,1806 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for ssldump >= 0.9b3 which is
-updating the known cipher suites according to IANA. Note that the diff of second
-file has been generated using "grep ' CipherSuite ' ssl/ssl.enums > ssl-enums" and
-"python ssl-util.py". The helper script is based on a script by Mike Tigas, see
-also https://gist.github.com/mtigas/5969597#file-5-conv-py for the helper script.
-
---- snipp ssl-util.py ---
-#!/usr/bin/env python
-import re
-
-r = re.compile(r'\s+CipherSuite\s+(?P<proto>(?:TLS|SSL)_\w+)\s+=\s+\{\s+0x(?P<high>[0-9a-fA-F]{2}),0x(?P<low>[0-9a-fA-F]{2})\s+\};')
-if __name__ == "__main__":
- f = open('ssl-enums', 'rb')
- for line in f:
- res = r.search(line)
- if res:
- data = res.groupdict()
- val = '0x%s%s' % (data['high'], data['low'])
- proto = data['proto']
- print "\t{\n\t\t%d,\n\t\t\"%s\",\n\t\t0\t}," % (int(val, 16), proto)
- else:
- raise Exception
---- snapp ssl-util.py ---
-
---- ssldump-0.9b3/ssl/ssl.enums 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl.enums.ssl-enums 2014-05-04 14:34:29.000000000 +0200
-@@ -329,67 +329,370 @@
- } HandshakeType;
-
- constant {
-- CipherSuite TLS_RSA_WITH_NULL_MD5 = { 0x00,0x01 };
-- CipherSuite TLS_RSA_WITH_NULL_SHA = { 0x00,0x02 };
-- CipherSuite TLS_RSA_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x03 };
-- CipherSuite TLS_RSA_WITH_RC4_128_MD5 = { 0x00,0x04 };
-- CipherSuite TLS_RSA_WITH_RC4_128_SHA = { 0x00,0x05 };
-- CipherSuite TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0x00,0x06 };
-- CipherSuite TLS_RSA_WITH_IDEA_CBC_SHA = { 0x00,0x07 };
-- CipherSuite TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x08 };
-- CipherSuite TLS_RSA_WITH_DES_CBC_SHA = { 0x00,0x09 };
-- CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x0A };
-- CipherSuite TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x0B };
-- CipherSuite TLS_DH_DSS_WITH_DES_CBC_SHA = { 0x00,0x0C };
-- CipherSuite TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = { 0x00,0x0D };
-- CipherSuite TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x0E };
-- CipherSuite TLS_DH_RSA_WITH_DES_CBC_SHA = { 0x00,0x0F };
-- CipherSuite TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x10 };
-- CipherSuite TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x11 };
-- CipherSuite TLS_DHE_DSS_WITH_DES_CBC_SHA = { 0x00,0x12 };
-- CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = { 0x00,0x13 };
-- CipherSuite TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x14 };
-- CipherSuite TLS_DHE_RSA_WITH_DES_CBC_SHA = { 0x00,0x15 };
-- CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x16 };
-- CipherSuite TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x17 };
-- CipherSuite TLS_DH_anon_WITH_RC4_128_MD5 = { 0x00,0x18 };
-- CipherSuite TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x19 };
-- CipherSuite TLS_DH_anon_WITH_DES_CBC_SHA = { 0x00,0x1A };
-- CipherSuite TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = { 0x00,0x1B };
-- CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x2F };
-- CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x30 };
-- CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x31 };
-- CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x32 };
-- CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x33 };
-- CipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA = { 0x00,0x34 };
-- CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x35 };
-- CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x36 };
-- CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x37 };
-- CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x38 };
-- CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x39 };
-- CipherSuite TLS_DH_anon_WITH_AES_256_CBC_SHA = { 0x00,0x3A };
-- CipherSuite TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 = { 0x00,0x60 };
-- CipherSuite TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = { 0x00,0x61 };
-- CipherSuite TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA = { 0x00,0x62 };
-- CipherSuite TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA = { 0x00,0x63 };
-- CipherSuite TLS_RSA_EXPORT1024_WITH_RC4_56_SHA = { 0x00,0x64 };
-- CipherSuite TLS_DHE_DSS_WITH_RC2_56_CBC_SHA = { 0x00,0x65 };
-- CipherSuite TLS_DHE_DSS_WITH_RC4_128_SHA = { 0x00,0x66 };
-- CipherSuite TLS_DHE_DSS_WITH_NULL_SHA = { 0x00,0x67 };
-- CipherSuite SSL2_CK_RC4 = { 0x01,0x00,0x80};
-- CipherSuite SSL2_CK_RC4_EXPORT40 = { 0x02,0x00,0x80};
-- CipherSuite SSL2_CK_RC2 = { 0x03,0x00,0x80};
-- CipherSuite SSL2_CK_RC2_EXPORT40 = { 0x04,0x00,0x80};
-- CipherSuite SSL2_CK_IDEA = { 0x05,0x00,0x80};
-- CipherSuite SSL2_CK_DES = { 0x06,0x00,0x40};
-- CipherSuite SSL2_CK_RC464 = { 0x08,0x00,0x80};
-- CipherSuite SSL2_CK_3DES = { 0x07,0x00,0xc0};
-- CipherSuite TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = {0x00,0x4a};
-- CipherSuite TLS_ECDH_ECDSA_WITH_RC4_128_SHA = {0x00,0x48};
-- CipherSuite SSL_RSA_WITH_RC2_CBC_MD5 = {0xff,0x80};
-- CipherSuite TLS_ECDH_ECDSA_WITH_DES_CBC_SHA = {0x00,0x49};
-- CipherSuite TLS_ECDH_ECDSA_EXPORT_WITH_RC4_56_SHA={0xff,0x85};
-- CipherSuite TLS_ECDH_ECDSA_EXPORT_WITH_RC4_40_SHA={0xff,0x84};
-+ // https://www.iana.org/assignments/tls-parameters/tls-parameters.txt
-+ CipherSuite TLS_NULL_WITH_NULL_NULL = { 0x00,0x00 };
-+ CipherSuite TLS_RSA_WITH_NULL_MD5 = { 0x00,0x01 };
-+ CipherSuite TLS_RSA_WITH_NULL_SHA = { 0x00,0x02 };
-+ CipherSuite TLS_RSA_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x03 };
-+ CipherSuite TLS_RSA_WITH_RC4_128_MD5 = { 0x00,0x04 };
-+ CipherSuite TLS_RSA_WITH_RC4_128_SHA = { 0x00,0x05 };
-+ CipherSuite TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0x00,0x06 };
-+ CipherSuite TLS_RSA_WITH_IDEA_CBC_SHA = { 0x00,0x07 };
-+ CipherSuite TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x08 };
-+ CipherSuite TLS_RSA_WITH_DES_CBC_SHA = { 0x00,0x09 };
-+ CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x0A };
-+ CipherSuite TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x0B };
-+ CipherSuite TLS_DH_DSS_WITH_DES_CBC_SHA = { 0x00,0x0C };
-+ CipherSuite TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = { 0x00,0x0D };
-+ CipherSuite TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x0E };
-+ CipherSuite TLS_DH_RSA_WITH_DES_CBC_SHA = { 0x00,0x0F };
-+ CipherSuite TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x10 };
-+ CipherSuite TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x11 };
-+ CipherSuite TLS_DHE_DSS_WITH_DES_CBC_SHA = { 0x00,0x12 };
-+ CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = { 0x00,0x13 };
-+ CipherSuite TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x14 };
-+ CipherSuite TLS_DHE_RSA_WITH_DES_CBC_SHA = { 0x00,0x15 };
-+ CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x16 };
-+ CipherSuite TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x17 };
-+ CipherSuite TLS_DH_anon_WITH_RC4_128_MD5 = { 0x00,0x18 };
-+ CipherSuite TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x19 };
-+ CipherSuite TLS_DH_anon_WITH_DES_CBC_SHA = { 0x00,0x1A };
-+ CipherSuite TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = { 0x00,0x1B };
-+ CipherSuite TLS_KRB5_WITH_DES_CBC_SHA = { 0x00,0x1E };
-+ CipherSuite TLS_KRB5_WITH_3DES_EDE_CBC_SHA = { 0x00,0x1F };
-+ CipherSuite TLS_KRB5_WITH_RC4_128_SHA = { 0x00,0x20 };
-+ CipherSuite TLS_KRB5_WITH_IDEA_CBC_SHA = { 0x00,0x21 };
-+ CipherSuite TLS_KRB5_WITH_DES_CBC_MD5 = { 0x00,0x22 };
-+ CipherSuite TLS_KRB5_WITH_3DES_EDE_CBC_MD5 = { 0x00,0x23 };
-+ CipherSuite TLS_KRB5_WITH_RC4_128_MD5 = { 0x00,0x24 };
-+ CipherSuite TLS_KRB5_WITH_IDEA_CBC_MD5 = { 0x00,0x25 };
-+ CipherSuite TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA = { 0x00,0x26 };
-+ CipherSuite TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA = { 0x00,0x27 };
-+ CipherSuite TLS_KRB5_EXPORT_WITH_RC4_40_SHA = { 0x00,0x28 };
-+ CipherSuite TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 = { 0x00,0x29 };
-+ CipherSuite TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 = { 0x00,0x2A };
-+ CipherSuite TLS_KRB5_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x2B };
-+ CipherSuite TLS_PSK_WITH_NULL_SHA = { 0x00,0x2C };
-+ CipherSuite TLS_DHE_PSK_WITH_NULL_SHA = { 0x00,0x2D };
-+ CipherSuite TLS_RSA_PSK_WITH_NULL_SHA = { 0x00,0x2E };
-+ CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x2F };
-+ CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x30 };
-+ CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x31 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = { 0x00,0x32 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x33 };
-+ CipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA = { 0x00,0x34 };
-+ CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x35 };
-+ CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x36 };
-+ CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x37 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = { 0x00,0x38 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x39 };
-+ CipherSuite TLS_DH_anon_WITH_AES_256_CBC_SHA = { 0x00,0x3A };
-+ CipherSuite TLS_RSA_WITH_NULL_SHA256 = { 0x00,0x3B };
-+ CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA256 = { 0x00,0x3C };
-+ CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256 = { 0x00,0x3D };
-+ CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = { 0x00,0x3E };
-+ CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = { 0x00,0x3F };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = { 0x00,0x40 };
-+ CipherSuite TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = { 0x00,0x41 };
-+ CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = { 0x00,0x42 };
-+ CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = { 0x00,0x43 };
-+ CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = { 0x00,0x44 };
-+ CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = { 0x00,0x45 };
-+ CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA = { 0x00,0x46 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = { 0x00,0x67 };
-+ CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = { 0x00,0x68 };
-+ CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = { 0x00,0x69 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = { 0x00,0x6A };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = { 0x00,0x6B };
-+ CipherSuite TLS_DH_anon_WITH_AES_128_CBC_SHA256 = { 0x00,0x6C };
-+ CipherSuite TLS_DH_anon_WITH_AES_256_CBC_SHA256 = { 0x00,0x6D };
-+ CipherSuite TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = { 0x00,0x84 };
-+ CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = { 0x00,0x85 };
-+ CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = { 0x00,0x86 };
-+ CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = { 0x00,0x87 };
-+ CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = { 0x00,0x88 };
-+ CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA = { 0x00,0x89 };
-+ CipherSuite TLS_PSK_WITH_RC4_128_SHA = { 0x00,0x8A };
-+ CipherSuite TLS_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00,0x8B };
-+ CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA = { 0x00,0x8C };
-+ CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA = { 0x00,0x8D };
-+ CipherSuite TLS_DHE_PSK_WITH_RC4_128_SHA = { 0x00,0x8E };
-+ CipherSuite TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00,0x8F };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA = { 0x00,0x90 };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA = { 0x00,0x91 };
-+ CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA = { 0x00,0x92 };
-+ CipherSuite TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = { 0x00,0x93 };
-+ CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA = { 0x00,0x94 };
-+ CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA = { 0x00,0x95 };
-+ CipherSuite TLS_RSA_WITH_SEED_CBC_SHA = { 0x00,0x96 };
-+ CipherSuite TLS_DH_DSS_WITH_SEED_CBC_SHA = { 0x00,0x97 };
-+ CipherSuite TLS_DH_RSA_WITH_SEED_CBC_SHA = { 0x00,0x98 };
-+ CipherSuite TLS_DHE_DSS_WITH_SEED_CBC_SHA = { 0x00,0x99 };
-+ CipherSuite TLS_DHE_RSA_WITH_SEED_CBC_SHA = { 0x00,0x9A };
-+ CipherSuite TLS_DH_anon_WITH_SEED_CBC_SHA = { 0x00,0x9B };
-+ CipherSuite TLS_RSA_WITH_AES_128_GCM_SHA256 = { 0x00,0x9C };
-+ CipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384 = { 0x00,0x9D };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = { 0x00,0x9E };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = { 0x00,0x9F };
-+ CipherSuite TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = { 0x00,0xA0 };
-+ CipherSuite TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = { 0x00,0xA1 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = { 0x00,0xA2 };
-+ CipherSuite TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = { 0x00,0xA3 };
-+ CipherSuite TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = { 0x00,0xA4 };
-+ CipherSuite TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = { 0x00,0xA5 };
-+ CipherSuite TLS_DH_anon_WITH_AES_128_GCM_SHA256 = { 0x00,0xA6 };
-+ CipherSuite TLS_DH_anon_WITH_AES_256_GCM_SHA384 = { 0x00,0xA7 };
-+ CipherSuite TLS_PSK_WITH_AES_128_GCM_SHA256 = { 0x00,0xA8 };
-+ CipherSuite TLS_PSK_WITH_AES_256_GCM_SHA384 = { 0x00,0xA9 };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = { 0x00,0xAA };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = { 0x00,0xAB };
-+ CipherSuite TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = { 0x00,0xAC };
-+ CipherSuite TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = { 0x00,0xAD };
-+ CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA256 = { 0x00,0xAE };
-+ CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA384 = { 0x00,0xAF };
-+ CipherSuite TLS_PSK_WITH_NULL_SHA256 = { 0x00,0xB0 };
-+ CipherSuite TLS_PSK_WITH_NULL_SHA384 = { 0x00,0xB1 };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = { 0x00,0xB2 };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = { 0x00,0xB3 };
-+ CipherSuite TLS_DHE_PSK_WITH_NULL_SHA256 = { 0x00,0xB4 };
-+ CipherSuite TLS_DHE_PSK_WITH_NULL_SHA384 = { 0x00,0xB5 };
-+ CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = { 0x00,0xB6 };
-+ CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = { 0x00,0xB7 };
-+ CipherSuite TLS_RSA_PSK_WITH_NULL_SHA256 = { 0x00,0xB8 };
-+ CipherSuite TLS_RSA_PSK_WITH_NULL_SHA384 = { 0x00,0xB9 };
-+ CipherSuite TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0x00,0xBA };
-+ CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 = { 0x00,0xBB };
-+ CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0x00,0xBC };
-+ CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 = { 0x00,0xBD };
-+ CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0x00,0xBE };
-+ CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 = { 0x00,0xBF };
-+ CipherSuite TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 = { 0x00,0xC0 };
-+ CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 = { 0x00,0xC1 };
-+ CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 = { 0x00,0xC2 };
-+ CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 = { 0x00,0xC3 };
-+ CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 = { 0x00,0xC4 };
-+ CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 = { 0x00,0xC5 };
-+ CipherSuite TLS_EMPTY_RENEGOTIATION_INFO_SCSV = { 0x00,0xFF };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_NULL_SHA = { 0xC0,0x01 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_RC4_128_SHA = { 0xC0,0x02 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x03 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = { 0xC0,0x04 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = { 0xC0,0x05 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_NULL_SHA = { 0xC0,0x06 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = { 0xC0,0x07 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x08 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = { 0xC0,0x09 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = { 0xC0,0x0A };
-+ CipherSuite TLS_ECDH_RSA_WITH_NULL_SHA = { 0xC0,0x0B };
-+ CipherSuite TLS_ECDH_RSA_WITH_RC4_128_SHA = { 0xC0,0x0C };
-+ CipherSuite TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x0D };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = { 0xC0,0x0E };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = { 0xC0,0x0F };
-+ CipherSuite TLS_ECDHE_RSA_WITH_NULL_SHA = { 0xC0,0x10 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_RC4_128_SHA = { 0xC0,0x11 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x12 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = { 0xC0,0x13 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = { 0xC0,0x14 };
-+ CipherSuite TLS_ECDH_anon_WITH_NULL_SHA = { 0xC0,0x15 };
-+ CipherSuite TLS_ECDH_anon_WITH_RC4_128_SHA = { 0xC0,0x16 };
-+ CipherSuite TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x17 };
-+ CipherSuite TLS_ECDH_anon_WITH_AES_128_CBC_SHA = { 0xC0,0x18 };
-+ CipherSuite TLS_ECDH_anon_WITH_AES_256_CBC_SHA = { 0xC0,0x19 };
-+ CipherSuite TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x1A };
-+ CipherSuite TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x1B };
-+ CipherSuite TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x1C };
-+ CipherSuite TLS_SRP_SHA_WITH_AES_128_CBC_SHA = { 0xC0,0x1D };
-+ CipherSuite TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = { 0xC0,0x1E };
-+ CipherSuite TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = { 0xC0,0x1F };
-+ CipherSuite TLS_SRP_SHA_WITH_AES_256_CBC_SHA = { 0xC0,0x20 };
-+ CipherSuite TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = { 0xC0,0x21 };
-+ CipherSuite TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = { 0xC0,0x22 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = { 0xC0,0x23 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = { 0xC0,0x24 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = { 0xC0,0x25 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = { 0xC0,0x26 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = { 0xC0,0x27 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = { 0xC0,0x28 };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = { 0xC0,0x29 };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = { 0xC0,0x2A };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = { 0xC0,0x2B };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = { 0xC0,0x2C };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = { 0xC0,0x2D };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = { 0xC0,0x2E };
-+ CipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = { 0xC0,0x2F };
-+ CipherSuite TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = { 0xC0,0x30 };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = { 0xC0,0x31 };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = { 0xC0,0x32 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_RC4_128_SHA = { 0xC0,0x33 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = { 0xC0,0x34 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = { 0xC0,0x35 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = { 0xC0,0x36 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = { 0xC0,0x37 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = { 0xC0,0x38 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_NULL_SHA = { 0xC0,0x39 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_NULL_SHA256 = { 0xC0,0x3A };
-+ CipherSuite TLS_ECDHE_PSK_WITH_NULL_SHA384 = { 0xC0,0x3B };
-+ CipherSuite TLS_RSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x3C };
-+ CipherSuite TLS_RSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x3D };
-+ CipherSuite TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x3E };
-+ CipherSuite TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x3F };
-+ CipherSuite TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x40 };
-+ CipherSuite TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x41 };
-+ CipherSuite TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x42 };
-+ CipherSuite TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x43 };
-+ CipherSuite TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x44 };
-+ CipherSuite TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x45 };
-+ CipherSuite TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x46 };
-+ CipherSuite TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x47 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x48 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x49 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x4A };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x4B };
-+ CipherSuite TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x4C };
-+ CipherSuite TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x4D };
-+ CipherSuite TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x4E };
-+ CipherSuite TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x4F };
-+ CipherSuite TLS_RSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x50 };
-+ CipherSuite TLS_RSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x51 };
-+ CipherSuite TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x52 };
-+ CipherSuite TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x53 };
-+ CipherSuite TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x54 };
-+ CipherSuite TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x55 };
-+ CipherSuite TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x56 };
-+ CipherSuite TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x57 };
-+ CipherSuite TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x58 };
-+ CipherSuite TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x59 };
-+ CipherSuite TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x5A };
-+ CipherSuite TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x5B };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x5C };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x5D };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x5E };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x5F };
-+ CipherSuite TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x60 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x61 };
-+ CipherSuite TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x62 };
-+ CipherSuite TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x63 };
-+ CipherSuite TLS_PSK_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x64 };
-+ CipherSuite TLS_PSK_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x65 };
-+ CipherSuite TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x66 };
-+ CipherSuite TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x67 };
-+ CipherSuite TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x68 };
-+ CipherSuite TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x69 };
-+ CipherSuite TLS_PSK_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x6A };
-+ CipherSuite TLS_PSK_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x6B };
-+ CipherSuite TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x6C };
-+ CipherSuite TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x6D };
-+ CipherSuite TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 = { 0xC0,0x6E };
-+ CipherSuite TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 = { 0xC0,0x6F };
-+ CipherSuite TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 = { 0xC0,0x70 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 = { 0xC0,0x71 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x72 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x73 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x74 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x75 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x76 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x77 };
-+ CipherSuite TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x78 };
-+ CipherSuite TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x79 };
-+ CipherSuite TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x7A };
-+ CipherSuite TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x7B };
-+ CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x7C };
-+ CipherSuite TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x7D };
-+ CipherSuite TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x7E };
-+ CipherSuite TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x7F };
-+ CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x80 };
-+ CipherSuite TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x81 };
-+ CipherSuite TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x82 };
-+ CipherSuite TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x83 };
-+ CipherSuite TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x84 };
-+ CipherSuite TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x85 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x86 };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x87 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x88 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x89 };
-+ CipherSuite TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x8A };
-+ CipherSuite TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x8B };
-+ CipherSuite TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x8C };
-+ CipherSuite TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x8D };
-+ CipherSuite TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x8E };
-+ CipherSuite TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x8F };
-+ CipherSuite TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x90 };
-+ CipherSuite TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x91 };
-+ CipherSuite TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 = { 0xC0,0x92 };
-+ CipherSuite TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 = { 0xC0,0x93 };
-+ CipherSuite TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x94 };
-+ CipherSuite TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x95 };
-+ CipherSuite TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x96 };
-+ CipherSuite TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x97 };
-+ CipherSuite TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x98 };
-+ CipherSuite TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x99 };
-+ CipherSuite TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = { 0xC0,0x9A };
-+ CipherSuite TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = { 0xC0,0x9B };
-+ CipherSuite TLS_RSA_WITH_AES_128_CCM = { 0xC0,0x9C };
-+ CipherSuite TLS_RSA_WITH_AES_256_CCM = { 0xC0,0x9D };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_128_CCM = { 0xC0,0x9E };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_256_CCM = { 0xC0,0x9F };
-+ CipherSuite TLS_RSA_WITH_AES_128_CCM_8 = { 0xC0,0xA0 };
-+ CipherSuite TLS_RSA_WITH_AES_256_CCM_8 = { 0xC0,0xA1 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_128_CCM_8 = { 0xC0,0xA2 };
-+ CipherSuite TLS_DHE_RSA_WITH_AES_256_CCM_8 = { 0xC0,0xA3 };
-+ CipherSuite TLS_PSK_WITH_AES_128_CCM = { 0xC0,0xA4 };
-+ CipherSuite TLS_PSK_WITH_AES_256_CCM = { 0xC0,0xA5 };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_128_CCM = { 0xC0,0xA6 };
-+ CipherSuite TLS_DHE_PSK_WITH_AES_256_CCM = { 0xC0,0xA7 };
-+ CipherSuite TLS_PSK_WITH_AES_128_CCM_8 = { 0xC0,0xA8 };
-+ CipherSuite TLS_PSK_WITH_AES_256_CCM_8 = { 0xC0,0xA9 };
-+ CipherSuite TLS_PSK_DHE_WITH_AES_128_CCM_8 = { 0xC0,0xAA };
-+ CipherSuite TLS_PSK_DHE_WITH_AES_256_CCM_8 = { 0xC0,0xAB };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CCM = { 0xC0,0xAC };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CCM = { 0xC0,0xAD };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 = { 0xC0,0xAE };
-+ CipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 = { 0xC0,0xAF };
-+ // DRAFT-IETF-TLS-ECC
-+ CipherSuite TLS_ECDH_ECDSA_WITH_NULL_SHA = { 0x00,0x47 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_RC4_128_SHA = { 0x00,0x48 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_DES_CBC_SHA = { 0x00,0x49 };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x4A };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = { 0x00,0x4B };
-+ CipherSuite TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = { 0x00,0x4C };
-+ CipherSuite TLS_ECDH_ECDSA_EXPORT_WITH_RC4_40_SHA = { 0x00,0x4B };
-+ CipherSuite TLS_ECDH_ECDSA_EXPORT_WITH_RC4_56_SHA = { 0x00,0x4C };
-+ CipherSuite TLS_ECDH_RSA_WITH_NULL_SHA = { 0x00,0x4D };
-+ CipherSuite TLS_ECDH_RSA_WITH_RC4_128_SHA = { 0x00,0x4E };
-+ CipherSuite TLS_ECDH_RSA_WITH_DES_CBC_SHA = { 0x00,0x4F };
-+ CipherSuite TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00,0x50 };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = { 0x00,0x51 };
-+ CipherSuite TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = { 0x00,0x52 };
-+ CipherSuite TLS_ECDH_RSA_EXPORT_WITH_RC4_40_SHA = { 0x00,0x53 };
-+ CipherSuite TLS_ECDH_RSA_EXPORT_WITH_RC4_56_SHA = { 0x00,0x54 };
-+ CipherSuite TLS_ECDH_anon_NULL_WITH_SHA = { 0x00,0x55 };
-+ CipherSuite TLS_ECDH_anon_WITH_RC4_128_SHA = { 0x00,0x56 };
-+ CipherSuite TLS_ECDH_anon_WITH_DES_CBC_SHA = { 0x00,0x57 };
-+ CipherSuite TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA = { 0x00,0x58 };
-+ CipherSuite TLS_ECDH_anon_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x59 };
-+ CipherSuite TLS_ECDH_anon_EXPORT_WITH_RC4_40_SHA = { 0x00,0x5A };
-+ // DRAFT-IETF-TLS-56-BIT-CIPHERSUITES
-+ CipherSuite TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 = { 0x00,0x60 };
-+ CipherSuite TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = { 0x00,0x61 };
-+ CipherSuite TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA = { 0x00,0x62 };
-+ CipherSuite TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA = { 0x00,0x63 };
-+ CipherSuite TLS_RSA_EXPORT1024_WITH_RC4_56_SHA = { 0x00,0x64 };
-+ CipherSuite TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA = { 0x00,0x65 };
-+ CipherSuite TLS_DHE_DSS_WITH_RC4_128_SHA = { 0x00,0x66 };
-+ // FIPS SSL (Netscape)
-+ CipherSuite SSL_RSA_FIPS_WITH_DES_CBC_SHA = { 0xFE,0xFE };
-+ CipherSuite SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA = { 0xFE,0xFF };
-+ // SSL 2.0
-+ CipherSuite SSL2_RC4_128_WITH_MD5 = { 0x01,0x00,0x80 };
-+ CipherSuite SSL2_RC4_128_EXPORT40_WITH_MD5 = { 0x02,0x00,0x80 };
-+ CipherSuite SSL2_RC2_CBC_128_CBC_WITH_MD5 = { 0x03,0x00,0x80 };
-+ CipherSuite SSL2_RC2_128_CBC_EXPORT40_WITH_MD5 = { 0x04,0x00,0x80 };
-+ CipherSuite SSL2_IDEA_128_CBC_WITH_MD5 = { 0x05,0x00,0x80 };
-+ CipherSuite SSL2_DES_64_CBC_WITH_MD5 = { 0x06,0x00,0x40 };
-+ CipherSuite SSL2_DES_64_CBC_WITH_SHA = { 0x06,0x01,0x40 };
-+ CipherSuite SSL2_DES_192_EDE3_CBC_WITH_MD5 = { 0x07,0x00,0xc0 };
-+ CipherSuite SSL2_DES_192_EDE3_CBC_WITH_SHA = { 0x07,0x01,0xc0 };
-+ CipherSuite SSL2_RC4_64_WITH_MD5 = { 0x08,0x00,0x80 };
- } cipher_suite;
-
-
---- ssldump-0.9b3/ssl/ssl.enums.c 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/ssl/ssl.enums.c.ssl-enums 2014-05-04 18:37:48.000000000 +0200
-@@ -504,6 +504,11 @@
- };
-
- decoder cipher_suite_decoder[]={
-+ // https://www.iana.org/assignments/tls-parameters/tls-parameters.txt
-+ {
-+ 0,
-+ "TLS_NULL_WITH_NULL_NULL",
-+ 0 },
- {
- 1,
- "TLS_RSA_WITH_NULL_MD5",
-@@ -613,6 +618,74 @@
- "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA",
- 0 },
- {
-+ 30,
-+ "TLS_KRB5_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 31,
-+ "TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 32,
-+ "TLS_KRB5_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 33,
-+ "TLS_KRB5_WITH_IDEA_CBC_SHA",
-+ 0 },
-+ {
-+ 34,
-+ "TLS_KRB5_WITH_DES_CBC_MD5",
-+ 0 },
-+ {
-+ 35,
-+ "TLS_KRB5_WITH_3DES_EDE_CBC_MD5",
-+ 0 },
-+ {
-+ 36,
-+ "TLS_KRB5_WITH_RC4_128_MD5",
-+ 0 },
-+ {
-+ 37,
-+ "TLS_KRB5_WITH_IDEA_CBC_MD5",
-+ 0 },
-+ {
-+ 38,
-+ "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
-+ 0 },
-+ {
-+ 39,
-+ "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA",
-+ 0 },
-+ {
-+ 40,
-+ "TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
-+ 0 },
-+ {
-+ 41,
-+ "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
-+ 0 },
-+ {
-+ 42,
-+ "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5",
-+ 0 },
-+ {
-+ 43,
-+ "TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
-+ 0 },
-+ {
-+ 44,
-+ "TLS_PSK_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 45,
-+ "TLS_DHE_PSK_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 46,
-+ "TLS_RSA_PSK_WITH_NULL_SHA",
-+ 0 },
-+ {
- 47,
- "TLS_RSA_WITH_AES_128_CBC_SHA",
- 0 },
-@@ -661,92 +734,1216 @@
- "TLS_DH_anon_WITH_AES_256_CBC_SHA",
- 0 },
- {
-- 96,
-- "TLS_RSA_EXPORT1024_WITH_RC4_56_MD5",
-+ 59,
-+ "TLS_RSA_WITH_NULL_SHA256",
- 0 },
- {
-- 97,
-- "TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5",
-+ 60,
-+ "TLS_RSA_WITH_AES_128_CBC_SHA256",
- 0 },
- {
-- 98,
-- "TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA",
-+ 61,
-+ "TLS_RSA_WITH_AES_256_CBC_SHA256",
- 0 },
- {
-- 99,
-- "TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA",
-+ 62,
-+ "TLS_DH_DSS_WITH_AES_128_CBC_SHA256",
- 0 },
- {
-- 100,
-- "TLS_RSA_EXPORT1024_WITH_RC4_56_SHA",
-+ 63,
-+ "TLS_DH_RSA_WITH_AES_128_CBC_SHA256",
- 0 },
- {
-- 101,
-- "TLS_DHE_DSS_WITH_RC2_56_CBC_SHA",
-+ 64,
-+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
- 0 },
- {
-- 102,
-- "TLS_DHE_DSS_WITH_RC4_128_SHA",
-+ 65,
-+ "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA",
-+ 0 },
-+ {
-+ 66,
-+ "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA",
-+ 0 },
-+ {
-+ 67,
-+ "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA",
-+ 0 },
-+ {
-+ 68,
-+ "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA",
-+ 0 },
-+ {
-+ 69,
-+ "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA",
-+ 0 },
-+ {
-+ 70,
-+ "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA",
- 0 },
- {
- 103,
-- "TLS_DHE_DSS_WITH_NULL_SHA",
-+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",
- 0 },
- {
-- 65664,
-- "SSL2_CK_RC4",
-+ 104,
-+ "TLS_DH_DSS_WITH_AES_256_CBC_SHA256",
- 0 },
- {
-- 131200,
-- "SSL2_CK_RC4_EXPORT40",
-+ 105,
-+ "TLS_DH_RSA_WITH_AES_256_CBC_SHA256",
- 0 },
- {
-- 196736,
-- "SSL2_CK_RC2",
-+ 106,
-+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
- 0 },
- {
-- 262272,
-- "SSL2_CK_RC2_EXPORT40",
-+ 107,
-+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
- 0 },
- {
-- 327808,
-- "SSL2_CK_IDEA",
-+ 108,
-+ "TLS_DH_anon_WITH_AES_128_CBC_SHA256",
- 0 },
- {
-- 393280,
-- "SSL2_CK_DES",
-+ 109,
-+ "TLS_DH_anon_WITH_AES_256_CBC_SHA256",
- 0 },
- {
-- 524416,
-- "SSL2_CK_RC464",
-+ 132,
-+ "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA",
- 0 },
- {
-- 458944,
-- "SSL2_CK_3DES",
-+ 133,
-+ "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA",
- 0 },
- {
-- 74,
-- "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
-+ 134,
-+ "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA",
- 0 },
- {
-- 72,
-+ 135,
-+ "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA",
-+ 0 },
-+ {
-+ 136,
-+ "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA",
-+ 0 },
-+ {
-+ 137,
-+ "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA",
-+ 0 },
-+ {
-+ 138,
-+ "TLS_PSK_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 139,
-+ "TLS_PSK_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 140,
-+ "TLS_PSK_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 141,
-+ "TLS_PSK_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 142,
-+ "TLS_DHE_PSK_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 143,
-+ "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 144,
-+ "TLS_DHE_PSK_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 145,
-+ "TLS_DHE_PSK_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 146,
-+ "TLS_RSA_PSK_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 147,
-+ "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 148,
-+ "TLS_RSA_PSK_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 149,
-+ "TLS_RSA_PSK_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 150,
-+ "TLS_RSA_WITH_SEED_CBC_SHA",
-+ 0 },
-+ {
-+ 151,
-+ "TLS_DH_DSS_WITH_SEED_CBC_SHA",
-+ 0 },
-+ {
-+ 152,
-+ "TLS_DH_RSA_WITH_SEED_CBC_SHA",
-+ 0 },
-+ {
-+ 153,
-+ "TLS_DHE_DSS_WITH_SEED_CBC_SHA",
-+ 0 },
-+ {
-+ 154,
-+ "TLS_DHE_RSA_WITH_SEED_CBC_SHA",
-+ 0 },
-+ {
-+ 155,
-+ "TLS_DH_anon_WITH_SEED_CBC_SHA",
-+ 0 },
-+ {
-+ 156,
-+ "TLS_RSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 157,
-+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 158,
-+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 159,
-+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 160,
-+ "TLS_DH_RSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 161,
-+ "TLS_DH_RSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 162,
-+ "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 163,
-+ "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 164,
-+ "TLS_DH_DSS_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 165,
-+ "TLS_DH_DSS_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 166,
-+ "TLS_DH_anon_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 167,
-+ "TLS_DH_anon_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 168,
-+ "TLS_PSK_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 169,
-+ "TLS_PSK_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 170,
-+ "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 171,
-+ "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 172,
-+ "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 173,
-+ "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 174,
-+ "TLS_PSK_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 175,
-+ "TLS_PSK_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 176,
-+ "TLS_PSK_WITH_NULL_SHA256",
-+ 0 },
-+ {
-+ 177,
-+ "TLS_PSK_WITH_NULL_SHA384",
-+ 0 },
-+ {
-+ 178,
-+ "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 179,
-+ "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 180,
-+ "TLS_DHE_PSK_WITH_NULL_SHA256",
-+ 0 },
-+ {
-+ 181,
-+ "TLS_DHE_PSK_WITH_NULL_SHA384",
-+ 0 },
-+ {
-+ 182,
-+ "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 183,
-+ "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 184,
-+ "TLS_RSA_PSK_WITH_NULL_SHA256",
-+ 0 },
-+ {
-+ 185,
-+ "TLS_RSA_PSK_WITH_NULL_SHA384",
-+ 0 },
-+ {
-+ 186,
-+ "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 187,
-+ "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 188,
-+ "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 189,
-+ "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 190,
-+ "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 191,
-+ "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 192,
-+ "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256",
-+ 0 },
-+ {
-+ 193,
-+ "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256",
-+ 0 },
-+ {
-+ 194,
-+ "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256",
-+ 0 },
-+ {
-+ 195,
-+ "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256",
-+ 0 },
-+ {
-+ 196,
-+ "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256",
-+ 0 },
-+ {
-+ 197,
-+ "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256",
-+ 0 },
-+ {
-+ 255,
-+ "TLS_EMPTY_RENEGOTIATION_INFO_SCSV",
-+ 0 },
-+ {
-+ 49153,
-+ "TLS_ECDH_ECDSA_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 49154,
- "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
- 0 },
- {
-- 65408,
-- "SSL_RSA_WITH_RC2_CBC_MD5",
-+ 49155,
-+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
- 0 },
- {
-- 73,
-- "TLS_ECDH_ECDSA_WITH_DES_CBC_SHA",
-+ 49156,
-+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
- 0 },
- {
-- 65413,
-- "TLS_ECDH_ECDSA_EXPORT_WITH_RC4_56_SHA",
-+ 49157,
-+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
- 0 },
- {
-- 65412,
-- "TLS_ECDH_ECDSA_EXPORT_WITH_RC4_40_SHA",
-+ 49158,
-+ "TLS_ECDHE_ECDSA_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 49159,
-+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 49160,
-+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49161,
-+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49162,
-+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49163,
-+ "TLS_ECDH_RSA_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 49164,
-+ "TLS_ECDH_RSA_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 49165,
-+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49166,
-+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49167,
-+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49168,
-+ "TLS_ECDHE_RSA_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 49169,
-+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 49170,
-+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49171,
-+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49172,
-+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49173,
-+ "TLS_ECDH_anon_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 49174,
-+ "TLS_ECDH_anon_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 49175,
-+ "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49176,
-+ "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49177,
-+ "TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49178,
-+ "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49179,
-+ "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49180,
-+ "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49181,
-+ "TLS_SRP_SHA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49182,
-+ "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49183,
-+ "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49184,
-+ "TLS_SRP_SHA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49185,
-+ "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49186,
-+ "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49187,
-+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49188,
-+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49189,
-+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49190,
-+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49191,
-+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49192,
-+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49193,
-+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49194,
-+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49195,
-+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49196,
-+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49197,
-+ "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49198,
-+ "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49199,
-+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49200,
-+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49201,
-+ "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49202,
-+ "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49203,
-+ "TLS_ECDHE_PSK_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 49204,
-+ "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 49205,
-+ "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 49206,
-+ "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 49207,
-+ "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49208,
-+ "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49209,
-+ "TLS_ECDHE_PSK_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 49210,
-+ "TLS_ECDHE_PSK_WITH_NULL_SHA256",
-+ 0 },
-+ {
-+ 49211,
-+ "TLS_ECDHE_PSK_WITH_NULL_SHA384",
-+ 0 },
-+ {
-+ 49212,
-+ "TLS_RSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49213,
-+ "TLS_RSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49214,
-+ "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49215,
-+ "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49216,
-+ "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49217,
-+ "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49218,
-+ "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49219,
-+ "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49220,
-+ "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49221,
-+ "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49222,
-+ "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49223,
-+ "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49224,
-+ "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49225,
-+ "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49226,
-+ "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49227,
-+ "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49228,
-+ "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49229,
-+ "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49230,
-+ "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49231,
-+ "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49232,
-+ "TLS_RSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49233,
-+ "TLS_RSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49234,
-+ "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49235,
-+ "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49236,
-+ "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49237,
-+ "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49238,
-+ "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49239,
-+ "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49240,
-+ "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49241,
-+ "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49242,
-+ "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49243,
-+ "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49244,
-+ "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49245,
-+ "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49246,
-+ "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49247,
-+ "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49248,
-+ "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49249,
-+ "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49250,
-+ "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49251,
-+ "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49252,
-+ "TLS_PSK_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49253,
-+ "TLS_PSK_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49254,
-+ "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49255,
-+ "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49256,
-+ "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49257,
-+ "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49258,
-+ "TLS_PSK_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49259,
-+ "TLS_PSK_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49260,
-+ "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49261,
-+ "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49262,
-+ "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49263,
-+ "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49264,
-+ "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49265,
-+ "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49266,
-+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49267,
-+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49268,
-+ "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49269,
-+ "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49270,
-+ "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49271,
-+ "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49272,
-+ "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49273,
-+ "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49274,
-+ "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49275,
-+ "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49276,
-+ "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49277,
-+ "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49278,
-+ "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49279,
-+ "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49280,
-+ "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49281,
-+ "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49282,
-+ "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49283,
-+ "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49284,
-+ "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49285,
-+ "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49286,
-+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49287,
-+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49288,
-+ "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49289,
-+ "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49290,
-+ "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49291,
-+ "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49292,
-+ "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49293,
-+ "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49294,
-+ "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49295,
-+ "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49296,
-+ "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49297,
-+ "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49298,
-+ "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256",
-+ 0 },
-+ {
-+ 49299,
-+ "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384",
-+ 0 },
-+ {
-+ 49300,
-+ "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49301,
-+ "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49302,
-+ "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49303,
-+ "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49304,
-+ "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49305,
-+ "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49306,
-+ "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
-+ 0 },
-+ {
-+ 49307,
-+ "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
-+ 0 },
-+ {
-+ 49308,
-+ "TLS_RSA_WITH_AES_128_CCM",
-+ 0 },
-+ {
-+ 49309,
-+ "TLS_RSA_WITH_AES_256_CCM",
-+ 0 },
-+ {
-+ 49310,
-+ "TLS_DHE_RSA_WITH_AES_128_CCM",
-+ 0 },
-+ {
-+ 49311,
-+ "TLS_DHE_RSA_WITH_AES_256_CCM",
-+ 0 },
-+ {
-+ 49312,
-+ "TLS_RSA_WITH_AES_128_CCM_8",
-+ 0 },
-+ {
-+ 49313,
-+ "TLS_RSA_WITH_AES_256_CCM_8",
-+ 0 },
-+ {
-+ 49314,
-+ "TLS_DHE_RSA_WITH_AES_128_CCM_8",
-+ 0 },
-+ {
-+ 49315,
-+ "TLS_DHE_RSA_WITH_AES_256_CCM_8",
-+ 0 },
-+ {
-+ 49316,
-+ "TLS_PSK_WITH_AES_128_CCM",
-+ 0 },
-+ {
-+ 49317,
-+ "TLS_PSK_WITH_AES_256_CCM",
-+ 0 },
-+ {
-+ 49318,
-+ "TLS_DHE_PSK_WITH_AES_128_CCM",
-+ 0 },
-+ {
-+ 49319,
-+ "TLS_DHE_PSK_WITH_AES_256_CCM",
-+ 0 },
-+ {
-+ 49320,
-+ "TLS_PSK_WITH_AES_128_CCM_8",
-+ 0 },
-+ {
-+ 49321,
-+ "TLS_PSK_WITH_AES_256_CCM_8",
-+ 0 },
-+ {
-+ 49322,
-+ "TLS_PSK_DHE_WITH_AES_128_CCM_8",
-+ 0 },
-+ {
-+ 49323,
-+ "TLS_PSK_DHE_WITH_AES_256_CCM_8",
-+ 0 },
-+ {
-+ 49324,
-+ "TLS_ECDHE_ECDSA_WITH_AES_128_CCM",
-+ 0 },
-+ {
-+ 49325,
-+ "TLS_ECDHE_ECDSA_WITH_AES_256_CCM",
-+ 0 },
-+ {
-+ 49326,
-+ "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8",
-+ 0 },
-+ {
-+ 49327,
-+ "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8",
-+ 0 },
-+ // DRAFT-IETF-TLS-ECC
-+ {
-+ 71,
-+ "TLS_ECDH_ECDSA_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 72,
-+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 73,
-+ "TLS_ECDH_ECDSA_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 74,
-+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 75,
-+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 76,
-+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 75,
-+ "TLS_ECDH_ECDSA_EXPORT_WITH_RC4_40_SHA",
-+ 0 },
-+ {
-+ 76,
-+ "TLS_ECDH_ECDSA_EXPORT_WITH_RC4_56_SHA",
-+ 0 },
-+ {
-+ 77,
-+ "TLS_ECDH_RSA_WITH_NULL_SHA",
-+ 0 },
-+ {
-+ 78,
-+ "TLS_ECDH_RSA_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 79,
-+ "TLS_ECDH_RSA_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 80,
-+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 81,
-+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
-+ 0 },
-+ {
-+ 82,
-+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
-+ 0 },
-+ {
-+ 83,
-+ "TLS_ECDH_RSA_EXPORT_WITH_RC4_40_SHA",
-+ 0 },
-+ {
-+ 84,
-+ "TLS_ECDH_RSA_EXPORT_WITH_RC4_56_SHA",
-+ 0 },
-+ {
-+ 85,
-+ "TLS_ECDH_anon_NULL_WITH_SHA",
-+ 0 },
-+ {
-+ 86,
-+ "TLS_ECDH_anon_WITH_RC4_128_SHA",
-+ 0 },
-+ {
-+ 87,
-+ "TLS_ECDH_anon_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 88,
-+ "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ {
-+ 89,
-+ "TLS_ECDH_anon_EXPORT_WITH_DES40_CBC_SHA",
-+ 0 },
-+ {
-+ 90,
-+ "TLS_ECDH_anon_EXPORT_WITH_RC4_40_SHA",
-+ 0 },
-+ // DRAFT-IETF-TLS-56-BIT-CIPHERSUITES
-+ {
-+ 96,
-+ "TLS_RSA_EXPORT1024_WITH_RC4_56_MD5",
-+ 0 },
-+ {
-+ 97,
-+ "TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5",
-+ 0 },
-+ {
-+ 98,
-+ "TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 99,
-+ "TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 100,
-+ "TLS_RSA_EXPORT1024_WITH_RC4_56_SHA",
-+ 0 },
-+ {
-+ 101,
-+ "TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA",
-+ 0 },
-+ {
-+ 102,
-+ "TLS_DHE_DSS_WITH_RC4_128_SHA",
-+ 0 },
-+ // FIPS SSL (Netscape)
-+ {
-+ 65278,
-+ "SSL_RSA_FIPS_WITH_DES_CBC_SHA",
-+ 0 },
-+ {
-+ 65279,
-+ "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA",
-+ 0 },
-+ // SSL 2.0
-+ {
-+ 65664,
-+ "SSL2_RC4_128_WITH_MD5",
-+ 0 },
-+ {
-+ 131200,
-+ "SSL2_RC4_128_EXPORT40_WITH_MD5",
-+ 0 },
-+ {
-+ 196736,
-+ "SSL2_RC2_CBC_128_CBC_WITH_MD5",
-+ 0 },
-+ {
-+ 262272,
-+ "SSL2_RC2_128_CBC_EXPORT40_WITH_MD5",
-+ 0 },
-+ {
-+ 327808,
-+ "SSL2_IDEA_128_CBC_WITH_MD5",
-+ 0 },
-+ {
-+ 393280,
-+ "SSL2_DES_64_CBC_WITH_MD5",
-+ 0 },
-+ {
-+ 393536,
-+ "SSL2_DES_64_CBC_WITH_SHA",
-+ 0 },
-+ {
-+ 458944,
-+ "SSL2_DES_192_EDE3_CBC_WITH_MD5",
-+ 0 },
-+ {
-+ 459200,
-+ "SSL2_DES_192_EDE3_CBC_WITH_SHA",
-+ 0 },
-+ {
-+ 524416,
-+ "SSL2_RC4_64_WITH_MD5",
- 0 },
- {-1}
- };
diff --git a/testing/ssldump/0100-ciphersuites.patch b/testing/ssldump/0100-ciphersuites.patch
deleted file mode 100644
index e5c5434bc49..00000000000
--- a/testing/ssldump/0100-ciphersuites.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for ssldump >= 0.9b3 which adds
-a lot of missing cipher suites to support much more application data decoding.
-
---- ssldump-0.9b3/ssl/ciphersuites.c 2014-05-04 02:02:58.000000000 +0200
-+++ ssldump-0.9b3/ssl/ciphersuites.c.rsc 2014-05-04 18:33:11.000000000 +0200
-@@ -74,10 +74,11 @@
- {21,KEX_DH,SIG_RSA,ENC_DES,8,64,64,DIG_SHA,20,0},
- {22,KEX_DH,SIG_RSA,ENC_3DES,8,192,192,DIG_SHA,20,0},
- {23,KEX_DH,SIG_NONE,ENC_RC4,1,128,40,DIG_MD5,16,1},
-- {24,KEX_DH,SIG_NONE,ENC_RC4,1,128,128,DIG_MD5,16,0},
-+ {24,KEX_DH,SIG_NONE,ENC_RC4,1,128,128,DIG_MD5,16,0},
- {25,KEX_DH,SIG_NONE,ENC_DES,8,64,40,DIG_MD5,16,1},
- {26,KEX_DH,SIG_NONE,ENC_DES,8,64,64,DIG_MD5,16,0},
- {27,KEX_DH,SIG_NONE,ENC_3DES,8,192,192,DIG_MD5,16,0},
-+ // Missing: 44-46
- {47,KEX_RSA,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
- {48,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA,20,0},
- {49,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
-@@ -90,13 +91,141 @@
- {56,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA,20,0},
- {57,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA,20,0},
- {58,KEX_DH,SIG_NONE,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {59,KEX_RSA,SIG_RSA,ENC_NULL,0,0,0,DIG_SHA256,32,0},
-+ {60,KEX_RSA,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {61,KEX_RSA,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA256,32,0},
-+ {62,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {63,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {64,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {65,KEX_RSA,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA,20,0},
-+ {66,KEX_DH,SIG_DSS,ENC_CAMELLIA128,16,128,128,DIG_SHA,20,0},
-+ {67,KEX_DH,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA,20,0},
-+ {68,KEX_DH,SIG_DSS,ENC_CAMELLIA128,16,128,128,DIG_SHA,20,0},
-+ {69,KEX_DH,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA,20,0},
-+ {70,KEX_DH,SIG_NONE,ENC_CAMELLIA128,16,128,128,DIG_SHA,20,0},
- {96,KEX_RSA,SIG_RSA,ENC_RC4,1,128,56,DIG_MD5,16,1},
- {97,KEX_RSA,SIG_RSA,ENC_RC2,1,128,56,DIG_MD5,16,1},
- {98,KEX_RSA,SIG_RSA,ENC_DES,8,64,64,DIG_SHA,20,1},
- {99,KEX_DH,SIG_DSS,ENC_DES,8,64,64,DIG_SHA,20,1},
- {100,KEX_RSA,SIG_RSA,ENC_RC4,1,128,56,DIG_SHA,20,1},
-- {101,KEX_DH,SIG_DSS,ENC_RC4,1,128,56,DIG_SHA,20,1},
-+ {101,KEX_DH,SIG_DSS,ENC_RC4,1,128,56,DIG_SHA,20,1},
- {102,KEX_DH,SIG_DSS,ENC_RC4,1,128,128,DIG_SHA,20,0},
-+ {103,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {104,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA256,32,0},
-+ {105,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA256,32,0},
-+ {106,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA256,32,0},
-+ {107,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA256,32,0},
-+ {108,KEX_DH,SIG_NONE,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {109,KEX_DH,SIG_NONE,ENC_AES256,16,256,256,DIG_SHA256,32,0},
-+ {132,KEX_RSA,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA,20,0},
-+ {133,KEX_DH,SIG_DSS,ENC_CAMELLIA256,16,256,256,DIG_SHA,20,0},
-+ {134,KEX_DH,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA,20,0},
-+ {135,KEX_DH,SIG_DSS,ENC_CAMELLIA256,16,256,256,DIG_SHA,20,0},
-+ {136,KEX_DH,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA,20,0},
-+ {137,KEX_DH,SIG_NONE,ENC_CAMELLIA256,16,256,256,DIG_SHA,20,0},
-+ // Missing: 138-149
-+ {150,KEX_RSA,SIG_RSA,ENC_SEED,16,128,128,DIG_SHA,20,0},
-+ {151,KEX_DH,SIG_DSS,ENC_SEED,16,128,128,DIG_SHA,20,0},
-+ {152,KEX_DH,SIG_RSA,ENC_SEED,16,128,128,DIG_SHA,20,0},
-+ {153,KEX_DH,SIG_DSS,ENC_SEED,16,128,128,DIG_SHA,20,0},
-+ {154,KEX_DH,SIG_RSA,ENC_SEED,16,128,128,DIG_SHA,20,0},
-+ {155,KEX_DH,SIG_NONE,ENC_SEED,16,128,128,DIG_SHA,20,0},
-+ {156,KEX_RSA,SIG_RSA,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {157,KEX_RSA,SIG_RSA,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {158,KEX_DH,SIG_RSA,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {159,KEX_DH,SIG_RSA,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {160,KEX_DH,SIG_RSA,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {161,KEX_DH,SIG_RSA,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {162,KEX_DH,SIG_DSS,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {163,KEX_DH,SIG_DSS,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {164,KEX_DH,SIG_DSS,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {165,KEX_DH,SIG_DSS,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {166,KEX_DH,SIG_NONE,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {167,KEX_DH,SIG_NONE,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ // Missing: 168-185
-+ {186,KEX_RSA,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {187,KEX_DH,SIG_DSS,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {188,KEX_DH,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {189,KEX_DH,SIG_DSS,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {190,KEX_DH,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {191,KEX_DH,SIG_NONE,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {192,KEX_RSA,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA256,32,0},
-+ {193,KEX_DH,SIG_DSS,ENC_CAMELLIA256,16,256,256,DIG_SHA256,32,0},
-+ {194,KEX_DH,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA256,32,0},
-+ {195,KEX_DH,SIG_DSS,ENC_CAMELLIA256,16,256,256,DIG_SHA256,32,0},
-+ {196,KEX_DH,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA256,32,0},
-+ {197,KEX_DH,SIG_NONE,ENC_CAMELLIA256,16,256,256,DIG_SHA256,32,0},
-+ {49153,KEX_DH,SIG_DSS,ENC_NULL,0,0,0,DIG_SHA,20,0},
-+ {49154,KEX_DH,SIG_DSS,ENC_RC4,1,128,128,DIG_SHA,20,0},
-+ {49155,KEX_DH,SIG_DSS,ENC_3DES,8,192,192,DIG_SHA,20,0},
-+ {49156,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {49157,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {49158,KEX_DH,SIG_DSS,ENC_NULL,0,0,0,DIG_SHA,20,0},
-+ {49159,KEX_DH,SIG_DSS,ENC_RC4,1,128,128,DIG_SHA,20,0},
-+ {49160,KEX_DH,SIG_DSS,ENC_3DES,8,192,192,DIG_SHA,20,0},
-+ {49161,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {49162,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {49163,KEX_DH,SIG_RSA,ENC_NULL,0,0,0,DIG_SHA,20,0},
-+ {49164,KEX_DH,SIG_RSA,ENC_RC4,1,128,128,DIG_SHA,20,0},
-+ {49165,KEX_DH,SIG_RSA,ENC_3DES,8,192,192,DIG_SHA,20,0},
-+ {49166,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {49167,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {49168,KEX_DH,SIG_RSA,ENC_NULL,0,0,0,DIG_SHA,20,0},
-+ {49169,KEX_DH,SIG_RSA,ENC_RC4,1,128,128,DIG_SHA,20,0},
-+ {49170,KEX_DH,SIG_RSA,ENC_3DES,8,192,192,DIG_SHA,20,0},
-+ {49171,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {49172,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {49173,KEX_DH,SIG_NONE,ENC_NULL,0,0,0,DIG_SHA,20,0},
-+ {49174,KEX_DH,SIG_NONE,ENC_RC4,1,128,128,DIG_SHA,20,0},
-+ {49175,KEX_DH,SIG_NONE,ENC_3DES,8,192,192,DIG_SHA,20,0},
-+ {49176,KEX_DH,SIG_NONE,ENC_AES128,16,128,128,DIG_SHA,20,0},
-+ {49177,KEX_DH,SIG_NONE,ENC_AES256,16,256,256,DIG_SHA,20,0},
-+ {49187,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {49188,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA384,48,0},
-+ {49189,KEX_DH,SIG_DSS,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {49190,KEX_DH,SIG_DSS,ENC_AES256,16,256,256,DIG_SHA384,48,0},
-+ {49191,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {49192,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA384,48,0},
-+ {49193,KEX_DH,SIG_RSA,ENC_AES128,16,128,128,DIG_SHA256,32,0},
-+ {49194,KEX_DH,SIG_RSA,ENC_AES256,16,256,256,DIG_SHA384,48,0},
-+ {49195,KEX_DH,SIG_DSS,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {49196,KEX_DH,SIG_DSS,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {49197,KEX_DH,SIG_DSS,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {49198,KEX_DH,SIG_DSS,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {49199,KEX_DH,SIG_RSA,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {49200,KEX_DH,SIG_RSA,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ {49201,KEX_DH,SIG_RSA,ENC_AES128,4,128,128,DIG_SHA256,32,0},
-+ {49202,KEX_DH,SIG_RSA,ENC_AES256,4,256,256,DIG_SHA384,48,0},
-+ // Missing: 49203-49211
-+ {49266,KEX_DH,SIG_DSS,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {49267,KEX_DH,SIG_DSS,ENC_CAMELLIA256,16,256,256,DIG_SHA256,48,0},
-+ {49268,KEX_DH,SIG_DSS,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {49269,KEX_DH,SIG_DSS,ENC_CAMELLIA256,16,256,256,DIG_SHA256,48,0},
-+ {49270,KEX_DH,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {49271,KEX_DH,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA256,48,0},
-+ {49272,KEX_DH,SIG_RSA,ENC_CAMELLIA128,16,128,128,DIG_SHA256,32,0},
-+ {49273,KEX_DH,SIG_RSA,ENC_CAMELLIA256,16,256,256,DIG_SHA256,48,0},
-+ {49274,KEX_RSA,SIG_RSA,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49275,KEX_RSA,SIG_RSA,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49276,KEX_DH,SIG_RSA,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49277,KEX_DH,SIG_RSA,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49278,KEX_DH,SIG_RSA,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49279,KEX_DH,SIG_RSA,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49280,KEX_DH,SIG_DSS,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49281,KEX_DH,SIG_DSS,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49282,KEX_DH,SIG_DSS,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49283,KEX_DH,SIG_DSS,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49284,KEX_DH,SIG_NONE,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49285,KEX_DH,SIG_NONE,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49286,KEX_DH,SIG_DSS,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49287,KEX_DH,SIG_DSS,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49288,KEX_DH,SIG_DSS,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49289,KEX_DH,SIG_DSS,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49290,KEX_DH,SIG_RSA,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49291,KEX_DH,SIG_RSA,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ {49292,KEX_DH,SIG_RSA,ENC_CAMELLIA128,4,128,128,DIG_SHA256,32,0},
-+ {49293,KEX_DH,SIG_RSA,ENC_CAMELLIA256,4,256,256,DIG_SHA384,48,0},
-+ // Missing: 49294-49307
- {-1}
- };
-
diff --git a/testing/ssldump/APKBUILD b/testing/ssldump/APKBUILD
deleted file mode 100644
index bebf2fd00ab..00000000000
--- a/testing/ssldump/APKBUILD
+++ /dev/null
@@ -1,66 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer:
-pkgname="ssldump"
-pkgver="0.9b3"
-pkgrel=1
-pkgdesc="An SSLv3/TLS network protocol analyzer"
-url="http://ssldump.sourceforge.net/"
-arch="all"
-license="BSD-4-Clause"
-makedepends="autoconf libpcap-dev openssl-dev"
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/ssldump/ssldump-$pkgver.tar.gz"
-# Patches from Fedora
-source="$source
- 0010-openssl.patch
- 0020-libpcap.patch
- 0030-aes.patch
- 0040-cvs-20060619.patch
- 0050-table-stops.patch
- 0060-link_layer.patch
- 0070-pcap-vlan.patch
- 0080-tlsv12.patch
- 0090-ssl-enums.patch
- 0100-ciphersuites.patch
- "
-builddir="$srcdir/ssldump-$pkgver"
-options="!check" # no tests provided
-
-prepare() {
- update_config_guess
- update_config_sub
- default_prepare
-
- # Rebuilding of configure file is needed for 0020-libpcap.patch
- autoconf --force
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make install BINDIR="$pkgdir/usr/sbin" MANDIR="$pkgdir/usr/share/man"
- install -D -m 644 COPYRIGHT "$pkgdir"/usr/share/licenses/$pkgname/COPYRIGHT
-
- chmod 644 "$pkgdir"/usr/share/man/man1/*.1*
-}
-
-sha512sums="ea81558a243950ab43354c9f33c0a4feae0ae859bc2bd6e6b58838a01f4a1e7a6447f2a9ab1fa40bbe8dbd6c3630c489c17fc9c066cacfddfb64269b0cd5090a ssldump-0.9b3.tar.gz
-3d06916b841612d158a5f7c87e7c68a9046ce5842ac11610ec6bf3c83619feecdd66293c66037f2e271496c8439896a4531c0de8ed866a898e310a1fd1de5aca 0010-openssl.patch
-12fff42b22baadfde4a0faf12c2336d47811cd36873034cfd81b269f0578c2be4226657b6da6dc5ebcf7b11070f48d357ba1580b47d62619fce3980ea2629bae 0020-libpcap.patch
-17a2f401b3ebb171628745041609f96ce82d1b4993d053443a3315b562ea2f8112184dbec0373ae11888c8f0d3c8a7728f3a6ca0a3de5375efd44aabe599ad02 0030-aes.patch
-4b9bfa0d10efa322f634c1326b210a7220c23c12c2cb2de9e00383f0d83fa558f578a16d428f035d179f3f692510756fd382efad69c877b9fe2bfacb4c7406e3 0040-cvs-20060619.patch
-3bfff13a5d4fdd0684512692309a2ff70eb63d472c4982e7e191073091a419b289b70fbf9604a794dd9b30cf60601b5b7403e2f9decb109f752471114388a4dd 0050-table-stops.patch
-912f47fbd686d4f4d68015e57dc92eba284e12dc146184f8cc4165e8e9a795f530d1e572dfb1a2292a3dee0c8f84f29f400375ab99e9215fec921d0464ef8e2d 0060-link_layer.patch
-94592125add14409be20981516a8f81765b61fb932dc6004bee7d91e0828b40117ce1f378c4ae7e65725bd645ff827648cf652a7ce8090e49afac0ef5284901e 0070-pcap-vlan.patch
-7e68d8ca844348b2440b795372f40af614f99e6e14baa7552de1f8eb1fa72d38771be1b904ee13f1141cf14cb8968f9fcd192c2a2b63885152225090ef20e3e6 0080-tlsv12.patch
-8e4e0e19a4ea45e8f98f8e918ddf0cde8a5d0a5fa89558bcfcbb14153e0babee7ff9edaebd6653a5fd6fb95624f47d62b85f2115d7bc25f4f4b6e35844e0f4a3 0090-ssl-enums.patch
-86c9ccd83fce92ff72eadd6e9a8e6a2442437e6778d735fae58ca359f390812d1102044058701189608251006de07478024dd389fe7bd9d3834e33039eaf2277 0100-ciphersuites.patch"
diff --git a/testing/sslh/APKBUILD b/testing/sslh/APKBUILD
deleted file mode 100644
index 15ee5c39f5a..00000000000
--- a/testing/sslh/APKBUILD
+++ /dev/null
@@ -1,72 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=sslh
-pkgver=1.20
-pkgrel=3
-pkgdesc="Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)"
-url="http://www.rutschle.net/tech/sslh/README.html"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="libconfig-dev libcap-dev pcre-dev perl"
-checkdepends="perl-conf-libconfig perl-io-socket-inet6 lcov valgrind"
-subpackages="$pkgname-fail2ban::noarch $pkgname-doc $pkgname-openrc"
-source="http://www.rutschle.net/tech/$pkgname/$pkgname-v$pkgver.tar.gz
- generate-version.patch
- fix-make-install.patch
- fail2ban.patch
- config.patch
- $pkgname.initd
- $pkgname.confd
- "
-builddir="$srcdir/$pkgname-v$pkgver"
-# FIXME: Some tests fail.
-# Can't test in chroot due to sockets and processes opened. (?)
-options="!check"
-
-build() {
- make CFLAGS="$CFLAGS -std=gnu99" \
- ENABLE_REGEX=1 \
- USELIBPCRE=1 \
- USELIBCONFIG=1 \
- USELIBCAP=1
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install
-
- install -D -m644 basic.cfg "$pkgdir/etc/$pkgname.conf"
- install -D -m755 "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
- install -D -m644 "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname"
-}
-
-fail2ban() {
- install_if="$pkgname=$pkgver-r$pkgrel fail2ban"
-
- cd "$builddir"
-
- install -D -m644 scripts/fail2ban/sslh-ssh.conf \
- "$subpkgdir"/etc/fail2ban/filter.d/sslh-ssh.conf
-
- install -D -m644 scripts/fail2ban/jail.conf \
- "$subpkgdir"/etc/fail2ban/jail.d/sslh-ssh.conf
-}
-
-doc() {
- default_doc
-
- cd "$builddir"
- install -Dm 644 basic.cfg "$subpkgdir/usr/share/doc/$pkgname/basic.cfg"
- install -Dm 644 example.cfg "$subpkgdir/usr/share/doc/$pkgname/example.cfg"
-}
-
-sha512sums="eccaddd5a4299206f195c2f7a78840b2f76f8a0cf10a715b5c72f959ed5d3259fc5ea3db8d398b33f0d556d71268b15c870999d742f83383a9d49120e476770a sslh-v1.20.tar.gz
-66aa10eb497a8c44e7b852476b8fb9af05d6d786da76557f4b77799f871884531ac98f71313d7d449396fb02205b5a6248e957cecee7efaf7d17d69850dc88cf generate-version.patch
-b82d3c799f0cdf183fe0545e1d2b4f142070112d7ec3594afd709608c4893c300122aa32026dd7f8e782eb3981bf85fc02f878e2613ddfe014f39bbb94fb441e fix-make-install.patch
-5773ee1d91e099726b614dbe385f2668699d25029fc300b664411c6082e95d3f27df11b9b1489bee3444c81bf941b8db13b4d382343788e47408c593c4531816 fail2ban.patch
-c5e3d6714c5588731c749feaed24a8d551d1fbdc527348209465b9416efe4713ff9715eb10867fea13fd5cbdf2ab41d52019fb93d4e5ead29e8fda47581598aa config.patch
-20ad403c7e8bd37c849263886ff4307a478fbeaec74d52b7db864dea2e9bdafb2c501afd70fa2621385baf3536553a79cee006b4a629260921d2e08db7991696 sslh.initd
-7eaf99c6fb4505d0562c46ed2b3ae656b7c7c96223f2c7f11ab1bed72e9df0223a7ef02277ac50a633d165238efb8c54044eff38b488a7884b6671120d9e3f3e sslh.confd"
diff --git a/testing/sslh/config.patch b/testing/sslh/config.patch
deleted file mode 100644
index 02d5cb9c180..00000000000
--- a/testing/sslh/config.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/basic.cfg
-+++ b/basic.cfg
-@@ -2,20 +2,17 @@
- # sensible values for "standard" setup.
-
- verbose: false;
--foreground: false;
--inetd: false;
- numeric: false;
- transparent: false;
- timeout: 2;
- user: "nobody";
--pidfile: "/var/run/sslh.pid";
- chroot: "/var/empty";
-
-
--# Change hostname with your external address name.
-+# Change host with your external address name.
- listen:
- (
-- { host: "thelonious"; port: "443"; }
-+ { host: "0.0.0.0"; port: "443"; }
- );
-
- protocols:
-@@ -24,7 +21,6 @@
- { name: "openvpn"; host: "localhost"; port: "1194"; },
- { name: "xmpp"; host: "localhost"; port: "5222"; },
- { name: "http"; host: "localhost"; port: "80"; },
-- { name: "ssl"; host: "localhost"; port: "443"; log_level: 0; },
-+ { name: "tls"; host: "localhost"; port: "443"; log_level: 0; },
- { name: "anyprot"; host: "localhost"; port: "443"; }
- );
--
diff --git a/testing/sslh/fail2ban.patch b/testing/sslh/fail2ban.patch
deleted file mode 100644
index 01dd9fd37dd..00000000000
--- a/testing/sslh/fail2ban.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/scripts/fail2ban/jail.conf
-+++ b/scripts/fail2ban/jail.conf
-@@ -1,8 +1,5 @@
--# Add the following to your fail2ban jail.conf
--# In Debian you'd append it to /etc/fail2ban/jail.local
--
- [sslh-ssh]
--enabled = true
-+enabled = false
- filter = sslh-ssh
- action = iptables-multiport[name=sslh,port="443"]
- logpath = /var/log/messages
---- a/scripts/fail2ban/sslh-ssh.conf
-+++ b/scripts/fail2ban/sslh-ssh.conf
-@@ -1,7 +1,3 @@
--# Add the following to you fail2ban configuration file
--# In Debian it'd go in /etc/fail2ban/filter.d/sslh-ssh.conf
--
--
- # Fail2Ban filter for sslh demultiplexed ssh
- #
- # Doesn't (and cannot) detect auth errors,
diff --git a/testing/sslh/fix-make-install.patch b/testing/sslh/fix-make-install.patch
deleted file mode 100644
index d289f6a6b1b..00000000000
--- a/testing/sslh/fix-make-install.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -98,7 +98,9 @@
- install: sslh $(MAN)
- mkdir -p $(DESTDIR)/$(BINDIR)
- mkdir -p $(DESTDIR)/$(MANDIR)
-- install -p sslh-fork $(DESTDIR)/$(BINDIR)/sslh
-+ install -p sslh-fork $(DESTDIR)/$(BINDIR)/sslh-fork
-+ install -p sslh-select $(DESTDIR)/$(BINDIR)/sslh-select
-+ ln -s sslh-fork $(DESTDIR)/$(BINDIR)/sslh
- install -p -m 0644 $(MAN) $(DESTDIR)/$(MANDIR)/$(MAN)
-
- # "extended" install for Debian: install startup script
diff --git a/testing/sslh/generate-version.patch b/testing/sslh/generate-version.patch
deleted file mode 100644
index f28bd0e8b83..00000000000
--- a/testing/sslh/generate-version.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/genver.sh
-+++ b/genver.sh
-@@ -7,7 +7,20 @@
- QUIET=0
- fi
-
--if ! `(git status | grep -q "On branch") 2> /dev/null`; then
-+if [ -d "$(realpath "$0" | sed -e 's,/[^/]*$,,')/.git" ]; then
-+ if head=`git rev-parse --verify HEAD 2>/dev/null`; then
-+ # generate the version info based on the tag
-+ release=`(git describe --tags || git --describe || git describe --all --long) \
-+ 2>/dev/null | tr -d '\n'`
-+
-+ # Are there uncommitted changes?
-+ git update-index --refresh --unmerged > /dev/null
-+ if git diff-index --name-only HEAD | grep -v "^scripts/package" \
-+ | read dummy; then
-+ release="$release-dirty"
-+ fi
-+ fi
-+else
- # If we don't have git, we can't work out what
- # version this is. It must have been downloaded as a
- # zip file.
-@@ -25,18 +38,6 @@
- fi
- fi
-
--if head=`git rev-parse --verify HEAD 2>/dev/null`; then
-- # generate the version info based on the tag
-- release=`(git describe --tags || git --describe || git describe --all --long) \
-- 2>/dev/null | tr -d '\n'`
--
-- # Are there uncommitted changes?
-- git update-index --refresh --unmerged > /dev/null
-- if git diff-index --name-only HEAD | grep -v "^scripts/package" \
-- | read dummy; then
-- release="$release-dirty"
-- fi
--fi
-
-
- if [ $QUIET -ne 1 ]; then
diff --git a/testing/sslh/sslh.confd b/testing/sslh/sslh.confd
deleted file mode 100644
index 5fec949a75e..00000000000
--- a/testing/sslh/sslh.confd
+++ /dev/null
@@ -1,18 +0,0 @@
-# Configuration for /etc/init.d/sslh
-
-# The sslh binary to run; one of:
-#
-# fork Forks a new process for each incoming connection. It is well-tested
-# and very reliable, but incurs the overhead of many processes.
-# select Uses only one thread, which monitors all connections at once. It is
-# more recent and less tested, but has smaller overhead per connection.
-#mode="fork"
-
-# Path of the configuration file.
-#cfgfile="/etc/sslh.conf"
-
-# Additional options to pass to the sslh daemon. See sslh(1) man page.
-#command_args=""
-
-# Uncomment to run the sslh daemon under process supervisor.
-#supervisor=supervise-daemon
diff --git a/testing/sslh/sslh.initd b/testing/sslh/sslh.initd
deleted file mode 100644
index d5bab81390a..00000000000
--- a/testing/sslh/sslh.initd
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/sbin/openrc-run
-
-: ${cfgfile:="/etc/sslh.conf"}
-: ${mode:="fork"}
-: ${wait:=50} # milliseconds
-
-description="Port multiplexer for SSH, HTTPS, OpenVPN etc."
-
-command="/usr/sbin/sslh-$mode"
-command_args="-F$cfgfile -f ${command_args:-$DAEMON_OPTS}"
-command_background="yes"
-pidfile="/run/$RC_SVCNAME.pid"
-start_stop_daemon_args="--wait $wait"
-
-required_files="$cfgfile"
diff --git a/testing/sslscan/APKBUILD b/testing/sslscan/APKBUILD
deleted file mode 100644
index 2cf3e80312b..00000000000
--- a/testing/sslscan/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=sslscan
-pkgver=1.11.13
-_openssl_commit="c9ba19c8b7fd131137373dbd1fccd6a8bb0628be"
-pkgrel=0
-pkgdesc="Fast SSL configuration scanner"
-url="https://github.com/rbsec/sslscan"
-arch="all !x86 !mips !mips64" # build fails on x86: ERROR: sslscan*: Found textrels
-license="GPL-3.0-or-later OpenSSL"
-makedepends="zlib-dev perl"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rbsec/sslscan/archive/$pkgver-rbsec.tar.gz
- sslscan-openssl-$_openssl_commit.tar.gz::https://github.com/PeterMosmans/openssl/archive/$_openssl_commit.tar.gz"
-options="!check" # No test suite
-builddir="$srcdir/sslscan-$pkgver-rbsec"
-
-build() {
- ln -s "../openssl-$_openssl_commit" openssl
- touch .openssl_is_fresh
-
- sed -i -e '/openssl\/.git/,/fi/d' -e '/openssl test/d' Makefile
-
- # Don't attempt to use strnstr
- CFLAGS="$CFLAGS -D__USE_GNU"
-
- # To compile against the openssl lib with insecure protocols enabled
- make static
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-
-sha512sums="51477e5b29a2fc87e2d6c8d76430eeb2a6feb388d47392938b9e2c572acc5926534a19dc249080a066256a1a6cbfe08b162e9f3839386c86116352e5eb57c544 sslscan-1.11.13.tar.gz
-9bfdac0b6dcbb9e932ef41db9753f7298cf38ddc18731386968289114fd5ed10d81e95523d557b42b431377638d2f62fb710189e7d944ba89979fe5e3437fd3f sslscan-openssl-c9ba19c8b7fd131137373dbd1fccd6a8bb0628be.tar.gz"
diff --git a/testing/sssd/0001-makefile.patch b/testing/sssd/0001-makefile.patch
index 67cf3a81fb7..4552bdfabab 100644
--- a/testing/sssd/0001-makefile.patch
+++ b/testing/sssd/0001-makefile.patch
@@ -1,8 +1,8 @@
diff --git a/Makefile.am b/Makefile.am
-index 484b4490e..e3369ae4a 100644
+index f6bc9414d..a435507e7 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -493,6 +493,7 @@ AM_CPPFLAGS = \
+@@ -508,6 +508,7 @@ AM_CPPFLAGS = \
-I$(srcdir)/src/sss_client \
-I$(srcdir)/src \
-I. \
@@ -10,7 +10,7 @@ index 484b4490e..e3369ae4a 100644
$(POPT_CFLAGS) \
$(TALLOC_CFLAGS) \
$(TDB_CFLAGS) \
-@@ -891,6 +892,7 @@ libsss_child_la_LIBADD = \
+@@ -942,6 +943,7 @@ libsss_child_la_LIBADD = \
$(TEVENT_LIBS) \
$(DHASH_LIBS) \
libsss_debug.la \
@@ -18,7 +18,7 @@ index 484b4490e..e3369ae4a 100644
$(NULL)
libsss_child_la_LDFLAGS = -avoid-version
-@@ -1727,6 +1729,7 @@ sss_signal_SOURCES = \
+@@ -1873,6 +1875,7 @@ sss_signal_SOURCES = \
$(NULL)
sss_signal_LDADD = \
libsss_debug.la \
@@ -26,23 +26,23 @@ index 484b4490e..e3369ae4a 100644
$(NULL)
sss_override_SOURCES = \
-@@ -1885,6 +1888,7 @@ libsss_test_common_la_LIBADD = \
+@@ -2027,6 +2030,7 @@ libsss_test_common_la_LIBADD = \
$(TEVENT_LIBS) \
$(LDB_LIBS) \
$(SSSD_INTERNAL_LTLIBS) \
+ -lintl \
$(NULL)
-
- if HAVE_CHECK
-@@ -2604,6 +2608,7 @@ test_authtok_LDADD = \
+ if BUILD_SYSTEMTAP
+ libsss_test_common_la_LIBADD += stap_generated_probes.lo
+@@ -2748,6 +2752,7 @@ test_authtok_LDADD = \
$(POPT_LIBS) \
libsss_test_common.la \
libsss_debug.la \
+ -lintl \
$(NULL)
- sss_nss_idmap_tests_SOURCES = \
-@@ -4276,7 +4281,8 @@ ldap_child_LDADD = \
+ test_prompt_config_SOURCES = \
+@@ -4552,7 +4557,8 @@ ldap_child_LDADD = \
$(TALLOC_LIBS) \
$(POPT_LIBS) \
$(DHASH_LIBS) \
@@ -52,11 +52,18 @@ index 484b4490e..e3369ae4a 100644
if BUILD_SEMANAGE
selinux_child_SOURCES = \
-@@ -4367,6 +4373,7 @@ p11_child_LDADD = \
+@@ -4637,6 +4643,7 @@ p11_child_LDADD = \
$(DHASH_LIBS) \
$(POPT_LIBS) \
libsss_crypt.la \
+ -lintl \
$(NULL)
- if HAVE_NSS
p11_child_LDADD += \
+ $(P11_KIT_LIBS) \
+@@ -4706,6 +4706,7 @@
+ $(JANSSON_LIBS) \
+ $(JOSE_LIBS) \
+ $(CURL_LIBS) \
++ -lintl \
+ $(NULL)
+ endif
diff --git a/testing/sssd/0002-src.patch b/testing/sssd/0002-src.patch
deleted file mode 100644
index fbfdb57cc6e..00000000000
--- a/testing/sssd/0002-src.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h
-index 8af625f01..25a959e2b 100644
---- a/src/confdb/confdb.h
-+++ b/src/confdb/confdb.h
-@@ -22,6 +22,7 @@
- #ifndef _CONF_DB_H
- #define _CONF_DB_H
-
-+#include <sys/types.h>
- #include <stdbool.h>
- #include <talloc.h>
- #include <tevent.h>
-diff --git a/src/util/util.h b/src/util/util.h
-index bc89ecbc2..d3f466578 100644
---- a/src/util/util.h
-+++ b/src/util/util.h
-@@ -31,6 +31,7 @@
- #include <pcre.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/param.h>
- #include <netinet/in.h>
-
- #include <talloc.h>
-@@ -46,6 +47,10 @@
- #include "util/sss_format.h"
- #include "util/debug.h"
-
-+#ifndef ALLPERMS
-+#define ALLPERMS (S_ISUID | S_ISGID | S_IRGRP | S_IRWXU | S_IRWXG | S_IRWXO)
-+#endif
-+
- /* name of the monitor server instance */
- #define SSSD_PIDFILE PID_PATH"/sssd.pid"
- #define MAX_PID_LENGTH 10
diff --git a/testing/sssd/0003-alpine.patch b/testing/sssd/0003-alpine.patch
deleted file mode 100644
index d040bde1dc4..00000000000
--- a/testing/sssd/0003-alpine.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 426a62b29..5899cddbe 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -4685,13 +4685,17 @@ else
- if HAVE_GENTOO
- init_SCRIPTS += \
- src/sysv/gentoo/sssd
-+else
-+if HAVE_ALPINE
-+ init_SCRIPTS += \
-+ src/sysv/alpine/sssd
- else
- init_SCRIPTS += \
- src/sysv/sssd
- endif
- endif
- endif
--
-+endif
-
- dist_sssddata_DATA = \
- src/config/etc/sssd.api.conf \
-diff --git a/configure.ac b/configure.ac
-index 9df463d9c..7d8c436ed 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -505,7 +505,7 @@ AC_DEFINE_UNQUOTED([ABS_SRC_DIR], ["$my_srcdir"], [Absolute path to the source d
-
- AC_CONFIG_FILES([Makefile contrib/sssd.spec src/examples/rwtab src/doxy.config
- contrib/sssd-pcsc.rules
-- src/sysv/sssd src/sysv/gentoo/sssd src/sysv/SUSE/sssd
-+ src/sysv/sssd src/sysv/gentoo/sssd src/sysv/SUSE/sssd src/sysv/alpine/sssd
- po/Makefile.in src/man/Makefile src/tests/cwrap/Makefile
- src/tests/intg/Makefile src/tests/test_CA/Makefile
- src/lib/ipa_hbac/ipa_hbac.pc src/lib/ipa_hbac/ipa_hbac.doxy
-diff --git a/src/external/platform.m4 b/src/external/platform.m4
-index c67e08144..a1bb8cdaa 100644
---- a/src/external/platform.m4
-+++ b/src/external/platform.m4
-@@ -1,5 +1,5 @@
- AC_ARG_WITH([os],
-- [AC_HELP_STRING([--with-os=OS_TYPE], [Type of your operation system (fedora|redhat|suse|gentoo)])]
-+ [AC_HELP_STRING([--with-os=OS_TYPE], [Type of your operation system (fedora|redhat|suse|gentoo|alpine)])]
- )
- osname=""
- if test x"$with_os" != x ; then
-@@ -7,6 +7,7 @@ if test x"$with_os" != x ; then
- test x"$with_os" = xredhat || \
- test x"$with_os" = xsuse || \
- test x"$with_os" = xgentoo || \
-+ test x"$with_os" = xalpine || \
- test x"$with_os" = xdebian ; then
- osname=$with_os
- else
-@@ -25,6 +26,8 @@ if test x"$osname" = x ; then
- osname="debian"
- elif test -f /etc/gentoo-release ; then
- osname="gentoo"
-+ elif test -f /etc/alpine-release ; then
-+ osname="alpine"
- fi
-
- AC_MSG_NOTICE([Detected operating system type: $osname])
-@@ -35,6 +38,7 @@ AM_CONDITIONAL([HAVE_REDHAT], [test x"$osname" = xredhat])
- AM_CONDITIONAL([HAVE_SUSE], [test x"$osname" = xsuse])
- AM_CONDITIONAL([HAVE_DEBIAN], [test x"$osname" = xdebian])
- AM_CONDITIONAL([HAVE_GENTOO], [test x"$osname" = xgentoo])
-+AM_CONDITIONAL([HAVE_ALPINE], [test x"$osname" = xalpine])
-
- AC_CHECK_MEMBERS([struct ucred.pid, struct ucred.uid, struct ucred.gid], , ,
- [[#include <sys/socket.h>]])
-diff --git a/src/sysv/alpine/sssd.in b/src/sysv/alpine/sssd.in
-new file mode 100644
-index 000000000..597bf8ce9
---- /dev/null
-+++ b/src/sysv/alpine/sssd.in
-@@ -0,0 +1,17 @@
-+#!/sbin/openrc-run
-+
-+depend(){
-+ need localmount netmount clock
-+}
-+
-+start(){
-+ ebegin "Starting sssd"
-+ start-stop-daemon --start --exec ${exec_prefix}/usr/sbin/sssd -- -Df ${SSSD_OPTIONS}
-+ eend ${?}
-+}
-+
-+stop(){
-+ ebegin "Stopping sssd"
-+ start-stop-daemon --stop --pidfile ${prefix}/var/run/sssd.pid
-+ eend ${?}
-+}
diff --git a/testing/sssd/APKBUILD b/testing/sssd/APKBUILD
index cf972bbb875..761d23e140e 100644
--- a/testing/sssd/APKBUILD
+++ b/testing/sssd/APKBUILD
@@ -2,10 +2,10 @@
# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
# Maintainer: Vince Mele <vmele@inoc.com>
pkgname=sssd
-pkgver=1.16.3
-pkgrel=8
+pkgver=2.9.3
+pkgrel=0
pkgdesc="System Security Services Daemon"
-url="https://pagure.io/SSSD/sssd"
+url="https://github.com/SSSD/sssd"
arch="x86_64"
license="GPL-3.0-or-later"
@@ -23,46 +23,50 @@ depends="
"
makedepends="
autoconf
- gettext-dev
automake
- libtool
- popt-dev
- talloc-dev
- tdb-dev
- tevent-dev
- ldb-dev
- ding-libs-dev
- linux-pam-dev
- pcre-dev
- c-ares-dev
+ bash
bind-tools
- http-parser-dev
+ c-ares-dev
+ cifs-utils-dev
curl-dev
- jansson-dev
- glib-dev
dbus-dev
- libxslt
- libxml2-utils
+ ding-libs-dev
docbook-xsl
- python3-dev
+ gettext-dev
+ glib-dev
+ http-parser-dev
+ jansson-dev
+ jose-dev
+ keyutils-dev
+ krb5-dev
+ ldb-dev
+ libtool
+ libunistring-dev
+ libxml2-utils
+ libxslt
+ linux-pam-dev
+ musl-nscd-dev
nss-dev
openldap-dev
- krb5-dev
- keyutils-dev
+ p11-kit-dev
+ pcre2-dev
+ popt-dev
+ python3-dev
+ talloc-dev
+ tdb-dev
+ tevent-dev
"
-subpackages="$pkgname-dev $pkgname-openrc"
-source="https://releases.pagure.org/SSSD/sssd/sssd-$pkgver.tar.gz
+subpackages="$pkgname-dev py3-$pkgname-pyc py3-$pkgname:py3 $pkgname-openrc"
+source="https://github.com/SSSD/sssd/releases/download/$pkgver/sssd-$pkgver.tar.gz
0001-makefile.patch
- 0002-src.patch
- 0003-alpine.patch
- UTIL-Fix-compilation-with-curl-7.62.0.patch
- nss.h
- cifsidmap.h
+ musl_fixup.patch
+ sssd.initd
"
+
prepare() {
default_prepare
- cp "$srcdir"/nss.h "$srcdir"/cifsidmap.h "$builddir"/src/
- autoreconf -i
+
+ autoreconf -fvi
}
build() {
@@ -73,22 +77,21 @@ build() {
--localstatedir=/var \
--libexecdir=/usr/lib/sssd \
--datadir=/usr/share \
- --enable-pammoddir=/usr/lib/security \
+ --enable-pammoddir=/lib/security \
--with-pid-path=/run \
--with-initscript=sysv \
--with-init-dir=/etc/init.d \
- --with-os=alpine \
- --without-selinux \
- --without-semanage \
- --without-autofs \
- --without-ssh \
- --without-samba \
- --without-nfsv4-idmapd-plugin \
- --without-manpages \
--disable-cifs-idmap-plugin \
- --disable-static \
--disable-rpath \
- --without-python2-bindings
+ --disable-static \
+ --without-autofs \
+ --without-manpages \
+ --without-nfsv4-idmapd-plugin \
+ --without-python2-bindings \
+ --without-samba \
+ --without-selinux \
+ --without-semanage \
+ --without-ssh
make
}
@@ -99,22 +102,20 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
- # Remove files we don't want to package
- find "$pkgdir" -name '*.la' -delete
- find "$pkgdir" -name '*.pyc' -delete
- find "$pkgdir" -name '*.egg-info' -delete
+ install -Dm755 "$srcdir"/sssd.initd "$pkgdir"/etc/init.d/sssd
- # pkgdir will allways be set, so silence shellsheck warning:
- # SC2115: Use "${var:?}" to ensure this never expands to /usr/share .
# shellcheck disable=SC2115
rm -r "$pkgdir"/usr/share
rm -r "$pkgdir"/run
}
-sha512sums="6165923f652f624bbe3ddc625ae682c4867eb7a20652d0cf74bbb8dda2307c917d3189ede26fd21a4fb5fd5926149271a65fa09f3affe928029ed99e6422b728 sssd-1.16.3.tar.gz
-a330383e7a334db47baf3f42cbb487c4875894e2120f55e71e2846d3d835ad9702137c93a4d233a237b944fb17410ed90b7fa374126f70db77259c0b83741ebc 0001-makefile.patch
-573b6ce0eb8ac7b819a895e32f5feb1150f60c4e6ce45c3262b5af862245c968c85f4eef8b62b0e56c8ef12ca5742f368ee12b794942aeabf2bf32d1bf18bd53 0002-src.patch
-1ec5048cbb0e184ca52e970b1a0bb0f69aeb647edfcf25610e51ff54e45e77e93a19c2cf22e12a768a474eba7eed8d9a41f7cfd2cbd0ba1495c1002170e77765 0003-alpine.patch
-4e846befc5321d4d0db9dc619ca30017629471c20247363a45348f9e56b395a973a1fe991ecba0f0adca1b80cfa788b239f50b24a15c3451fa681782e05d2477 UTIL-Fix-compilation-with-curl-7.62.0.patch
-5abb1ffd1302eaa25736404ae148c0ffdeb7ce42fa2745be3436e887a2aa96b9620287f19b2790cb59cbccc2c04a9dee1adec4fa8e813d322cde82793500e33b nss.h
-b88d4f1ba847477783b43542f1248881d4fb8e8a0d4165c65c358fcb442891d2cc7c96b05e2a8e7c05fdc17ecd76f16295c1ffac3f1c9bfd0375c5e65e56201d cifsidmap.h"
+py3() {
+ amove usr/lib/python*
+}
+
+sha512sums="
+e1c3e107c98ac2cbc4f38e435910ebd560464773e7e93c8982db37d1ccdf78bc5e3f514bbcd2aaae54074ca6197b2067531180b83ee8c0e7f94878a824834a21 sssd-2.9.3.tar.gz
+a62843c65d864fa372b7ed550bdd6f277f054f3efae941c48e9bab239758dad079886f26fbb06fe15310845ba8dc5126d108b06864712c88904b08847a032308 0001-makefile.patch
+c9db51a773c821a2c5327d2e4b0d3c81dd89d780aa7f9dd66ff88a7419a8072907047c8d9faec17ea14c5404c636485eceda85df0b299f40fae362ef7bfb34e8 musl_fixup.patch
+7198c66c96ba48c43def004e302be2e3348d43a4b5a1b35eb25f99081f1f6dce89d3994377a3064f72462509648bfbca1062493d244e413f0c47122cc0436bc9 sssd.initd
+"
diff --git a/testing/sssd/UTIL-Fix-compilation-with-curl-7.62.0.patch b/testing/sssd/UTIL-Fix-compilation-with-curl-7.62.0.patch
deleted file mode 100644
index 6ea7e3fe052..00000000000
--- a/testing/sssd/UTIL-Fix-compilation-with-curl-7.62.0.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 1ee12b05570fcfb8e4190c9ec704c5563138344d Mon Sep 17 00:00:00 2001
-From: Lukas Slebodnik <lslebodn@redhat.com>
-Date: Wed, 7 Nov 2018 23:06:10 +0000
-Subject: [PATCH] UTIL: Fix compilation with curl 7.62.0
-
-The macro CURLE_SSL_CACERT is deprecated in upstream curl
-since commit 3f3b26d6feb0667714902e836af608094235fca2.
-
- commit 3f3b26d6feb0667714902e836af608094235fca2
- Author: Han Han <hhan@thousandeyes.com>
- Date: Wed Aug 22 11:13:32 2018 -0700
-
- ssl: deprecate CURLE_SSL_CACERT in favour of a unified error code
-
- Long live CURLE_PEER_FAILED_VERIFICATION
-
- sh$ git tag --contains 3f3b26d6feb0667714902e836af608094235fca2
- curl-7_62_0
-
-It was not removed. It is just an alias to
-CURLE_PEER_FAILED_VERIFICATION which causes compile time failures in
-switch/case.
-
-./src/util/tev_curl.c: In function 'curl_code2errno':
-./src/util/tev_curl.c:113:5: error: duplicate case value
- case CURLE_PEER_FAILED_VERIFICATION:
- ^~~~
-./src/util/tev_curl.c: 100:5: note: previously used here
- case CURLE_SSL_CACERT:
- ^~~~
-
-Merges: https://pagure.io/SSSD/sssd/pull-request/3878
-
-Resolves:
-https://pagure.io/SSSD/sssd/issue/3875
-
-Reviewed-by: Sumit Bose <sbose@redhat.com>
----
- src/util/tev_curl.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/util/tev_curl.c b/src/util/tev_curl.c
-index 6a7a580d5..d70a42972 100644
---- a/src/util/tev_curl.c
-+++ b/src/util/tev_curl.c
-@@ -97,7 +97,9 @@ static errno_t curl_code2errno(CURLcode crv)
- return ETIMEDOUT;
- case CURLE_SSL_ISSUER_ERROR:
- case CURLE_SSL_CACERT_BADFILE:
-+#if LIBCURL_VERSION_NUM < 0x073e00
- case CURLE_SSL_CACERT:
-+#endif
- case CURLE_SSL_CERTPROBLEM:
- return ERR_INVALID_CERT;
-
---
-2.20.1
-
diff --git a/testing/sssd/cifsidmap.h b/testing/sssd/cifsidmap.h
deleted file mode 100644
index e13083b1996..00000000000
--- a/testing/sssd/cifsidmap.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * ID Mapping Plugin interface for cifs-utils
- * Copyright (C) 2012 Jeff Layton (jlayton@samba.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
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include <stdint.h>
-
-#include <sys/types.h>
-
-#ifndef _CIFSIDMAP_H
-#define _CIFSIDMAP_H
-
-#define NUM_AUTHS (6) /* number of authority fields */
-#define SID_MAX_SUB_AUTHORITIES (15) /* max number of sub authority fields */
-
-/*
- * Binary representation of a SID as presented to/from the kernel. Note that
- * the sub_auth field is always stored in little-endian here.
- */
-struct cifs_sid {
- uint8_t revision; /* revision level */
- uint8_t num_subauth;
- uint8_t authority[NUM_AUTHS];
- uint32_t sub_auth[SID_MAX_SUB_AUTHORITIES];
-} __attribute__((packed));
-
-
-/*
- * The type of the ID stored within cifs_uxid. UNKNOWN generally means that
- * the mapping failed for some reason. BOTH means that the ID is usable as
- * either a UID or a GID -- IOW, the UID and GID namespaces are unity-mapped.
- */
-#define CIFS_UXID_TYPE_UNKNOWN (0) /* mapping type is unknown */
-#define CIFS_UXID_TYPE_UID (1) /* mapping is a UID */
-#define CIFS_UXID_TYPE_GID (2) /* mapping is a GID */
-#define CIFS_UXID_TYPE_BOTH (3) /* usable as UID or GID */
-
-/* This struct represents a uid or gid and its type */
-struct cifs_uxid {
- union {
- uid_t uid;
- gid_t gid;
- } id;
- unsigned char type;
-} __attribute__((packed));
-
-/*
- * Plugins should implement the following functions:
- */
-
-/**
- * cifs_idmap_init_plugin - Initialize the plugin interface
- * @handle - return pointer for an opaque handle
- * @errmsg - pointer to error message pointer
- *
- * This function should do whatever is required to establish a context
- * for later ID mapping operations. The "handle" is an opaque context
- * cookie that will be passed in on subsequent ID mapping operations.
- * The errmsg is used to pass back an error string both during the init
- * and in subsequent idmapping functions. On any error, the plugin
- * should point *errmsg at a string describing that error. Returns 0
- * on success and non-zero on error.
- */
-extern int cifs_idmap_init_plugin(void **handle, const char **errmsg);
-
-/**
- * cifs_idmap_exit_plugin - Destroy an idmapping context
- * @handle - context handle that should be destroyed
- *
- * When programs are finished with the idmapping plugin, they'll call
- * this function to destroy any context that was created during the
- * init_plugin. The handle passed back in was the one given by the init
- * routine.
- */
-extern void cifs_idmap_exit_plugin(void *handle);
-
-/**
- * cifs_idmap_sid_to_str - convert cifs_sid to a string
- * @handle - context handle
- * @sid - pointer to a cifs_sid
- * @name - return pointer for the name
- *
- * This function should convert the given cifs_sid to a string
- * representation or mapped name in a heap-allocated buffer. The caller
- * of this function is expected to free "name" on success. Returns 0 on
- * success and non-zero on error. On error, the errmsg pointer passed
- * in to the init_plugin function should point to an error string. The
- * caller will not free the error string.
- */
-extern int cifs_idmap_sid_to_str(void *handle, const struct cifs_sid *sid,
- char **name);
-
-/**
- * cifs_idmap_str_to_sid - convert string to struct cifs_sid
- * @handle - context handle
- * @name - pointer to name string to be converted
- * @sid - pointer to struct cifs_sid where result should go
- *
- * This function converts a name string or string representation of
- * a SID to a struct cifs_sid. The cifs_sid should already be
- * allocated. Returns 0 on success and non-zero on error. On error, the
- * plugin should reset the errmsg pointer passed to the init_plugin
- * function to an error string. The caller will not free the error string.
- */
-extern int cifs_idmap_str_to_sid(void *handle, const char *name,
- struct cifs_sid *sid);
-
-/**
- * cifs_idmap_sids_to_ids - convert struct cifs_sids to struct cifs_uxids
- * @handle - context handle
- * @sid - pointer to array of struct cifs_sids to be converted
- * @num - number of sids to be converted
- * @cuxid - pointer to preallocated array of struct cifs_uxids for return
- *
- * This function should map an array of struct cifs_sids to an array of
- * struct cifs_uxids.
- *
- * Returns 0 if at least one conversion was successful and non-zero on error.
- * Any that were not successfully converted will have a cuxid->type of
- * CIFS_UXID_TYPE_UNKNOWN.
- *
- * On any error, the plugin should reset the errmsg pointer passed to the
- * init_plugin function to an error string. The caller will not free the error
- * string.
- */
-extern int cifs_idmap_sids_to_ids(void *handle, const struct cifs_sid *sid,
- const size_t num, struct cifs_uxid *cuxid);
-
-/**
- * cifs_idmap_ids_to_sids - convert uid to struct cifs_sid
- * @handle - context handle
- * @cuxid - pointer to array of struct cifs_uxid to be converted to SIDs
- * @num - number of cifs_uxids to be converted to SIDs
- * @sid - pointer to preallocated array of struct cifs_sid where results
- * should be stored
- *
- * This function should map an array of cifs_uxids an array of struct cifs_sids.
- * Returns 0 if at least one conversion was successful and non-zero on error.
- * Any sids that were not successfully converted should have their revision
- * number set to 0.
- *
- * On any error, the plugin should reset the errmsg pointer passed to the
- * init_plugin function to an error string. The caller will not free the error
- * string.
- */
-extern int cifs_idmap_ids_to_sids(void *handle, const struct cifs_uxid *cuxid,
- const size_t num, struct cifs_sid *sid);
-#endif /* _CIFSIDMAP_H */
diff --git a/testing/sssd/musl_fixup.patch b/testing/sssd/musl_fixup.patch
new file mode 100644
index 00000000000..53908727d83
--- /dev/null
+++ b/testing/sssd/musl_fixup.patch
@@ -0,0 +1,68 @@
+fix musl build failures
+
+Missing _PATH_HOSTS and some NETDB defines when musl is enabled.
+
+These are work arounds for now while we figure out where the real fix should reside (musl, gcompact, sssd):
+
+./sssd-2.5.1/src/providers/fail_over.c:1199:19: error: '_PATH_HOSTS' undeclared (first use in this function)
+| 1199 | _PATH_HOSTS);
+| | ^~~~~~~~~~~
+
+and
+
+i./sssd-2.5.1/src/sss_client/nss_ipnetworks.c:415:21: error: 'NETDB_INTERNAL' undeclared (first use in this function)
+| 415 | *h_errnop = NETDB_INTERNAL;
+
+
+Upstream-Status: Pending
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+Index: sssd-2.5.1/src/providers/fail_over.c
+===================================================================
+diff --git a/src/providers/fail_over.c b/src/providers/fail_over.c
+index 9cb2683..655438c 100644
+--- a/src/providers/fail_over.c
++++ b/src/providers/fail_over.c
+@@ -31,6 +31,10 @@
+ #include <talloc.h>
+ #include <netdb.h>
+
++#if !defined(_PATH_HOSTS)
++#define _PATH_HOSTS "/etc/hosts"
++#endif
++
+ #include "util/dlinklist.h"
+ #include "util/refcount.h"
+ #include "util/util.h"
+diff --git a/src/sss_client/sss_cli.h b/src/sss_client/sss_cli.h
+index dd36e21..96f279d 100644
+--- a/src/sss_client/sss_cli.h
++++ b/src/sss_client/sss_cli.h
+@@ -44,6 +44,14 @@ typedef int errno_t;
+ #define EOK 0
+ #endif
+
++#ifndef NETDB_INTERNAL
++# define NETDB_INTERNAL (-1)
++#endif
++
++#ifndef NETDB_SUCCESS
++# define NETDB_SUCCESS (0)
++#endif
++
+ #define SSS_NSS_PROTOCOL_VERSION 1
+ #define SSS_PAM_PROTOCOL_VERSION 3
+ #define SSS_SUDO_PROTOCOL_VERSION 1
+diff --git a/src/tools/tools_mc_util.c b/src/tools/tools_mc_util.c
+index a4f3a81..cad1f3e 100644
+--- a/src/tools/tools_mc_util.c
++++ b/src/tools/tools_mc_util.c
+@@ -168,7 +168,7 @@ static errno_t wait_till_nss_responder_invalidate_cache(void)
+ {
+ struct stat stat_buf = { 0 };
+ const time_t max_wait = 1000000; /* 1 second */
+- const __useconds_t step_time = 5000; /* 5 milliseconds */
++ const useconds_t step_time = 5000; /* 5 milliseconds */
+ const size_t steps_count = max_wait / step_time;
+ int ret;
+
diff --git a/testing/sssd/nss.h b/testing/sssd/nss.h
deleted file mode 100644
index e15ee3ee34e..00000000000
--- a/testing/sssd/nss.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef NSS__H
-#define NSS__H
-
-#include <nss/nss.h>
-
-enum nss_status
-{
- NSS_STATUS_TRYAGAIN = -2,
- NSS_STATUS_UNAVAIL = -1,
- NSS_STATUS_NOTFOUND = 0,
- NSS_STATUS_SUCCESS = 1,
- NSS_STATUS_RETURN = 2
-};
-
-#endif
diff --git a/testing/sssd/sssd.initd b/testing/sssd/sssd.initd
new file mode 100644
index 00000000000..38875b59bb6
--- /dev/null
+++ b/testing/sssd/sssd.initd
@@ -0,0 +1,10 @@
+#!/sbin/openrc-run
+
+command="/usr/sbin/sssd"
+command_args="-D $SSSD_OPTIONS"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend(){
+ need localmount netmount clock
+}
diff --git a/testing/ssss/APKBUILD b/testing/ssss/APKBUILD
new file mode 100644
index 00000000000..0036f9cc06c
--- /dev/null
+++ b/testing/ssss/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Michał Adamski <michal@ert.pl>
+pkgname=ssss
+pkgver=0.5.7
+pkgrel=0
+pkgdesc="ssss is an implementation of Shamir's secret sharing scheme for UNIX systems"
+url="http://point-at-infinity.org/ssss/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="make xmltoman gmp-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/MrJoy/ssss/archive/releases/v$pkgver/ssss-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-releases-v$pkgver"
+
+build() {
+ make
+}
+
+check() {
+ local rand=$(cat /proc/sys/kernel/random/uuid)
+ local combined=$(echo "$rand" | ./ssss-split -q -t 2 -n 3 | tail -n 2 | ./ssss-combine -q -t 2)
+ test "$combined" = "$rand"
+}
+
+package() {
+ install -d "$pkgdir"/usr/share/man/man1
+ install -m644 ssss.1 ssss-split.1 ssss-combine.1 "$pkgdir"/usr/share/man/man1
+ install -m755 -D ssss-split "$pkgdir"/usr/bin/ssss-split
+ ln -s ssss-split "$pkgdir"/usr/bin/ssss-combine
+}
+sha512sums="
+aca85b7a63e6d009fffe5540b0c8e3190c364aa2070e8d8487fd42d7ac76143e404b226b28f3630022d102679371673cc7c08b8c5d3bcf63e3676b7293d2ba00 ssss-0.5.7.tar.gz
+"
diff --git a/testing/ssu-sysinfo/APKBUILD b/testing/ssu-sysinfo/APKBUILD
deleted file mode 100644
index e4040e7fa50..00000000000
--- a/testing/ssu-sysinfo/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=ssu-sysinfo
-pkgver=1.2.1
-pkgrel=0
-pkgdesc="Mer's ssu-sysinfo"
-url="https://git.sailfishos.org/mer-core/ssu-sysinfo"
-arch="all"
-license="LGPL-2.1-or-later AND BSD-3-Clause"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/ssu-sysinfo/-/archive/$pkgver/ssu-sysinfo-$pkgver.tar.gz"
-options="!check" # No test suite available
-
-build() {
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- # Required to make missing library symlinks
- ldconfig "$pkgdir"/usr/lib
-}
-
-sha512sums="74f3483212f886bfe2464506b6dec9922b80c100a4197400431b24237b699fcde4ae7ca6bd09e47bd0147afa5988ecb866a03c800d160ea258953a53b970b66c ssu-sysinfo-1.2.1.tar.gz"
diff --git a/testing/st-xrdb/APKBUILD b/testing/st-xrdb/APKBUILD
deleted file mode 100644
index 568739b368f..00000000000
--- a/testing/st-xrdb/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Base-Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Base-Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer:
-pkgname=st-xrdb
-pkgname_base=st
-pkgver=0.8.2
-pkgrel=0
-pkgdesc="Simple terminal emulator for X, with X resource support"
-url="https://st.suckless.org"
-arch="all"
-license="MIT"
-depends="ncurses-terminfo"
-makedepends="fontconfig-dev freetype-dev libx11-dev libxext-dev libxft-dev"
-subpackages="$pkgname-doc $pkgname-dbg"
-source="https://dl.suckless.org/$pkgname_base/$pkgname_base-$pkgver.tar.gz st-xrdb.patch"
-options="!check"
-builddir="$srcdir/$pkgname_base-$pkgver"
-
-prepare() {
- default_prepare
- cd "$builddir"
- sed -i '/tic/d' Makefile
-}
-
-build() {
- make -C "$builddir"
-}
-
-package() {
- cd "$builddir"
-
- make install PREFIX=/usr DESTDIR="$pkgdir"
-}
-
-sha512sums="eaaf5f2fe050ee768d16a9c8c295ba13315775b3a8a3201e020237a3dd217bfb811832d58477249000596289a6cb3287fbb39d6327fc90986af1c363e4b5bf8d st-0.8.2.tar.gz
-1b21e819d187eb186f940d92dd9055de5259bf18bc9c798b10884fde949ff3ab6b9ecf428c85ccd0bc0e20ddf42cc9d015535b36deb839a616d25ae2a047fe27 st-xrdb.patch"
diff --git a/testing/st-xrdb/st-xrdb.patch b/testing/st-xrdb/st-xrdb.patch
deleted file mode 100644
index f953028bc1b..00000000000
--- a/testing/st-xrdb/st-xrdb.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 0e01717..6a33ef7 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -60,7 +60,7 @@ static unsigned int cursorthickness = 2;
- * bell volume. It must be a value between -100 and 100. Use 0 for disabling
- * it
- */
--static int bellvolume = 0;
-+static int bellvolume = 100;
-
- /* default TERM value */
- char *termname = "st-256color";
-@@ -109,6 +109,8 @@ static const char *colorname[] = {
- /* more colors can be added after 255 to use with DefaultXX */
- "#cccccc",
- "#555555",
-+ "gray90",
-+ "black"
- };
-
-
-@@ -116,8 +118,8 @@ static const char *colorname[] = {
- * Default colors (colorname index)
- * foreground, background, cursor, reverse cursor
- */
--unsigned int defaultfg = 7;
--unsigned int defaultbg = 0;
-+unsigned int defaultfg = 258;
-+unsigned int defaultbg = 259;
- static unsigned int defaultcs = 256;
- static unsigned int defaultrcs = 257;
-
-@@ -150,14 +152,51 @@ static unsigned int mousebg = 0;
- */
- static unsigned int defaultattr = 11;
-
-+/*
-+ * Xresources preferences to load at startup
-+ */
-+ResourcePref resources[] = {
-+ { "font", STRING, &font },
-+ { "color0", STRING, &colorname[0] },
-+ { "color1", STRING, &colorname[1] },
-+ { "color2", STRING, &colorname[2] },
-+ { "color3", STRING, &colorname[3] },
-+ { "color4", STRING, &colorname[4] },
-+ { "color5", STRING, &colorname[5] },
-+ { "color6", STRING, &colorname[6] },
-+ { "color7", STRING, &colorname[7] },
-+ { "color8", STRING, &colorname[8] },
-+ { "color9", STRING, &colorname[9] },
-+ { "color10", STRING, &colorname[10] },
-+ { "color11", STRING, &colorname[11] },
-+ { "color12", STRING, &colorname[12] },
-+ { "color13", STRING, &colorname[13] },
-+ { "color14", STRING, &colorname[14] },
-+ { "color15", STRING, &colorname[15] },
-+ { "background", STRING, &colorname[259] },
-+ { "foreground", STRING, &colorname[258] },
-+ { "cursorColor", STRING, &colorname[256] },
-+ { "termname", STRING, &termname },
-+ { "shell", STRING, &shell },
-+ { "xfps", INTEGER, &xfps },
-+ { "actionfps", INTEGER, &actionfps },
-+ { "blinktimeout", INTEGER, &blinktimeout },
-+ { "bellvolume", INTEGER, &bellvolume },
-+ { "tabspaces", INTEGER, &tabspaces },
-+ { "cwscale", FLOAT, &cwscale },
-+ { "chscale", FLOAT, &chscale },
-+};
-+
- /*
- * Internal mouse shortcuts.
- * Beware that overloading Button1 will disable the selection.
- */
- static MouseShortcut mshortcuts[] = {
- /* button mask string */
-+ /*
- { Button4, XK_ANY_MOD, "\031" },
- { Button5, XK_ANY_MOD, "\005" },
-+ */
- };
-
- /* Internal keyboard shortcuts. */
-diff --git a/x.c b/x.c
-index 5828a3b..90f3614 100644
---- a/x.c
-+++ b/x.c
-@@ -14,6 +14,7 @@
- #include <X11/keysym.h>
- #include <X11/Xft/Xft.h>
- #include <X11/XKBlib.h>
-+#include <X11/Xresource.h>
-
- static char *argv0;
- #include "arg.h"
-@@ -43,6 +44,19 @@ typedef struct {
- signed char appcursor; /* application cursor */
- } Key;
-
-+/* Xresources preferences */
-+enum resource_type {
-+ STRING = 0,
-+ INTEGER = 1,
-+ FLOAT = 2
-+};
-+
-+typedef struct {
-+ char *name;
-+ enum resource_type type;
-+ void *dst;
-+} ResourcePref;
-+
- /* X modifiers */
- #define XK_ANY_MOD UINT_MAX
- #define XK_NO_MOD 0
-@@ -786,8 +800,8 @@ xclear(int x1, int y1, int x2, int y2)
- void
- xhints(void)
- {
-- XClassHint class = {opt_name ? opt_name : termname,
-- opt_class ? opt_class : termname};
-+ XClassHint class = {opt_name ? opt_name : "st",
-+ opt_class ? opt_class : "St"};
- XWMHints wm = {.flags = InputHint, .input = 1};
- XSizeHints *sizeh;
-
-@@ -1045,8 +1059,6 @@ xinit(int cols, int rows)
- pid_t thispid = getpid();
- XColor xmousefg, xmousebg;
-
-- if (!(xw.dpy = XOpenDisplay(NULL)))
-- die("can't open display\n");
- xw.scr = XDefaultScreen(xw.dpy);
- xw.vis = XDefaultVisual(xw.dpy, xw.scr);
-
-@@ -1901,6 +1913,59 @@ run(void)
- }
- }
-
-+int
-+resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst)
-+{
-+ char **sdst = dst;
-+ int *idst = dst;
-+ float *fdst = dst;
-+
-+ char fullname[256];
-+ char fullclass[256];
-+ char *type;
-+ XrmValue ret;
-+
-+ snprintf(fullname, sizeof(fullname), "%s.%s",
-+ opt_name ? opt_name : "st", name);
-+ snprintf(fullclass, sizeof(fullclass), "%s.%s",
-+ opt_class ? opt_class : "St", name);
-+ fullname[sizeof(fullname) - 1] = fullclass[sizeof(fullclass) - 1] = '\0';
-+
-+ XrmGetResource(db, fullname, fullclass, &type, &ret);
-+ if (ret.addr == NULL || strncmp("String", type, 64))
-+ return 1;
-+
-+ switch (rtype) {
-+ case STRING:
-+ *sdst = ret.addr;
-+ break;
-+ case INTEGER:
-+ *idst = strtoul(ret.addr, NULL, 10);
-+ break;
-+ case FLOAT:
-+ *fdst = strtof(ret.addr, NULL);
-+ break;
-+ }
-+ return 0;
-+}
-+
-+void
-+config_init(void)
-+{
-+ char *resm;
-+ XrmDatabase db;
-+ ResourcePref *p;
-+
-+ XrmInitialize();
-+ resm = XResourceManagerString(xw.dpy);
-+ if (!resm)
-+ return;
-+
-+ db = XrmGetStringDatabase(resm);
-+ for (p = resources; p < resources + LEN(resources); p++)
-+ resource_load(db, p->name, p->type, p->dst);
-+}
-+
- void
- usage(void)
- {
-@@ -1974,6 +2039,11 @@ run:
-
- setlocale(LC_CTYPE, "");
- XSetLocaleModifiers("");
-+
-+ if(!(xw.dpy = XOpenDisplay(NULL)))
-+ die("Can't open display\n");
-+
-+ config_init();
- cols = MAX(cols, 1);
- rows = MAX(rows, 1);
- tnew(cols, rows);
diff --git a/testing/stack/APKBUILD b/testing/stack/APKBUILD
new file mode 100644
index 00000000000..e482ad8e90d
--- /dev/null
+++ b/testing/stack/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: gay <gay@disroot.org>
+# Maintainer: gay <gay@disroot.org>
+pkgname=stack
+pkgver=2.7.5
+pkgrel=0
+pkgdesc="The Haskell Tool Stack"
+url="https://haskellstack.org/"
+arch="aarch64 x86_64" # limited by ghc
+license="BSD-3-Clause"
+makedepends="
+ cabal
+ ghc
+ gmp-dev
+ sqlite-dev
+ zlib-dev
+ "
+checkdepends="ncurses-dev"
+source="https://hackage.haskell.org/package/stack-$pkgver/stack-$pkgver.tar.gz
+ cabal.config
+ aeson.patch
+ ghc9.0.x.patch
+ persistent.patch
+ "
+
+export CABAL_DIR="$srcdir"/cabal
+
+prepare() {
+ default_prepare
+ cp "$srcdir"/cabal.config .
+ cabal update
+ cabal configure --prefix=/usr
+}
+
+build() {
+ cabal build --jobs=${JOBS:-1} --enable-relocatable
+}
+
+check() {
+ cabal test
+}
+
+package() {
+ cd dist-newstyle/build/*-linux/ghc-*/$pkgname-$pkgver/build/$pkgname
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+fd51f990d3ccec6103c8699a8e39c970a0233a1185587a519eda659d2b45bc4496c4f261f6897c06781d0f76d2b1d526d5acdfb502fe1494f8cf048c78ba1a8d stack-2.7.5.tar.gz
+a54c0790e154105f3e96d19289a905b2b3666d61849ad69d6ed81b00a01ea30c7733ead989c02f1f782a95bcc7f0f2dff41ae1ffdd8eb0995fbbd5f54db232d7 cabal.config
+818547d3d63b243daad11f2c8b811701b4b8a778196e1d69d73a4fd4829f4ad9f4134451153c80b8504f1c18fbc2ee8bca329f6c5eff9ee3c435af7a1947077d aeson.patch
+209348bd04d1cdce333e71a0570ba3781aeb36a0a5ad8a0e5f08ab9aca8f4d49f681b63cab4b7f4f1ddcc79cbf850d5cb1fc79f7a099b0bb65038774ed0a0820 ghc9.0.x.patch
+73d9291ade690db1838b8dbd7b132d9e808781e5419684c04008b9e967c56d3e66eb64df8ef997d74301d92a76d4071956c5593c42841ef035c39c82ac68892d persistent.patch
+"
diff --git a/testing/stack/aeson.patch b/testing/stack/aeson.patch
new file mode 100644
index 00000000000..68f267c30cc
--- /dev/null
+++ b/testing/stack/aeson.patch
@@ -0,0 +1,46 @@
+commit 09e233ed73aa3335642f97c080ef27e42047c527
+Author: q66 <daniel@octaforge.org>
+Date: Fri Mar 11 04:37:15 2022 +0100
+
+ constrain aeson to prevent build failures
+
+diff --git a/stack.cabal b/stack.cabal
+index dba5bf0..0195f2c 100644
+--- a/stack.cabal
++++ b/stack.cabal
+@@ -231,7 +231,7 @@ library
+
+ build-depends:
+ Cabal >=3.2.1.0,
+- aeson >=1.5.6.0,
++ aeson >=1.5.6.0 && <1.6,
+ annotated-wl-pprint >=0.7.0,
+ ansi-terminal >=0.10.3,
+ array >=0.5.4.0,
+@@ -357,7 +357,7 @@ executable stack
+
+ build-depends:
+ Cabal >=3.2.1.0,
+- aeson >=1.5.6.0,
++ aeson >=1.5.6.0 && <1.6,
+ annotated-wl-pprint >=0.7.0,
+ ansi-terminal >=0.10.3,
+ array >=0.5.4.0,
+@@ -485,7 +485,7 @@ executable stack-integration-test
+
+ build-depends:
+ Cabal >=3.2.1.0,
+- aeson >=1.5.6.0,
++ aeson >=1.5.6.0 && <1.6,
+ annotated-wl-pprint >=0.7.0,
+ ansi-terminal >=0.10.3,
+ array >=0.5.4.0,
+@@ -621,7 +621,7 @@ test-suite stack-test
+ build-depends:
+ Cabal >=3.2.1.0,
+ QuickCheck >=2.14.2,
+- aeson >=1.5.6.0,
++ aeson >=1.5.6.0 && <1.6,
+ annotated-wl-pprint >=0.7.0,
+ ansi-terminal >=0.10.3,
+ array >=0.5.4.0,
diff --git a/testing/stack/cabal.config b/testing/stack/cabal.config
new file mode 100644
index 00000000000..6e9de3dc671
--- /dev/null
+++ b/testing/stack/cabal.config
@@ -0,0 +1,2912 @@
+remote-repo: stackage-lts-19.20:http://www.stackage.org/lts-19.20
+constraints: abstract-deque ==0.3,
+ abstract-deque-tests ==0.3,
+ abstract-par ==0.3.3,
+ AC-Angle ==1.0,
+ acc ==0.2.0.1,
+ ace ==0.6,
+ acid-state ==0.16.1.1,
+ action-permutations ==0.0.0.1,
+ active ==0.2.0.15,
+ ad ==4.5.2,
+ ad-delcont ==0.3.0.0,
+ adjunctions ==4.4.2,
+ adler32 ==0.1.2.0,
+ advent-of-code-api ==0.2.8.1,
+ aern2-mp ==0.2.10.0,
+ aern2-real ==0.2.10.0,
+ aeson ==2.0.3.0,
+ aeson-attoparsec ==0.0.0,
+ aeson-better-errors ==0.9.1.1,
+ aeson-casing ==0.2.0.0,
+ aeson-commit ==1.4,
+ aeson-compat ==0.3.10,
+ aeson-diff ==1.1.0.13,
+ aeson-extra ==0.5.1.1,
+ aeson-generic-compat ==0.0.1.3,
+ aeson-optics ==1.1.1,
+ aeson-pretty ==0.8.9,
+ aeson-qq ==0.8.4,
+ aeson-schemas ==1.3.5.1,
+ aeson-typescript ==0.3.0.1,
+ aeson-yak ==0.1.1.3,
+ aeson-yaml ==1.1.0.1,
+ Agda ==2.6.2.2,
+ agda2lagda ==0.2021.6.1,
+ al ==0.1.4.2,
+ alarmclock ==0.7.0.6,
+ alerts ==0.1.2.0,
+ alex ==3.2.7.1,
+ alex-meta ==0.3.0.13,
+ algebra ==4.3.1,
+ algebraic-graphs ==0.6.1,
+ align-audio ==0.0,
+ Allure ==0.11.0.0,
+ almost-fix ==0.0.2,
+ alsa-core ==0.5.0.1,
+ alsa-mixer ==0.3.0,
+ alsa-pcm ==0.6.1.1,
+ alsa-seq ==0.6.0.8,
+ alternative-vector ==0.0.0,
+ alternators ==1.0.0.0,
+ ALUT ==2.4.0.3,
+ amqp ==0.22.1,
+ amqp-utils ==0.6.3.2,
+ annotated-wl-pprint ==0.7.0,
+ ansi-terminal ==0.11.3,
+ ansi-terminal-game ==1.8.0.0,
+ ansi-wl-pprint ==0.6.9,
+ ANum ==0.2.0.2,
+ apecs ==0.9.4,
+ apecs-gloss ==0.2.4,
+ apecs-physics ==0.4.5,
+ api-field-json-th ==0.1.0.2,
+ api-maker ==0.1.0.6,
+ ap-normalize ==0.1.0.1,
+ appar ==0.1.8,
+ appendmap ==0.1.5,
+ apply-refact ==0.9.3.0,
+ apportionment ==0.0.0.4,
+ approximate ==0.3.5,
+ approximate-equality ==1.1.0.2,
+ app-settings ==0.2.0.12,
+ arbor-lru-cache ==0.1.1.1,
+ arithmoi ==0.12.0.2,
+ array installed,
+ array-memoize ==0.6.0,
+ arrow-extras ==0.1.0.1,
+ arrows ==0.4.4.2,
+ ascii ==1.1.3.0,
+ ascii-case ==1.0.0.10,
+ ascii-char ==1.0.0.14,
+ asciidiagram ==1.3.3.3,
+ ascii-group ==1.0.0.12,
+ ascii-numbers ==1.0.0.0,
+ ascii-predicates ==1.0.0.10,
+ ascii-progress ==0.3.3.0,
+ ascii-superset ==1.0.1.13,
+ ascii-th ==1.0.0.10,
+ asn1-encoding ==0.9.6,
+ asn1-parse ==0.9.5,
+ asn1-types ==0.3.4,
+ assert-failure ==0.1.2.6,
+ assoc ==1.0.2,
+ astro ==0.4.3.0,
+ async ==2.2.4,
+ async-extra ==0.2.0.0,
+ async-pool ==0.9.1,
+ async-refresh ==0.3.0.0,
+ async-refresh-tokens ==0.4.0.0,
+ atom-basic ==0.2.5,
+ atom-conduit ==0.9.0.1,
+ atomic-primops ==0.8.4,
+ atomic-write ==0.2.0.7,
+ attoparsec ==0.14.4,
+ attoparsec-base64 ==0.0.0,
+ attoparsec-binary ==0.2,
+ attoparsec-data ==1.0.5.2,
+ attoparsec-expr ==0.1.1.2,
+ attoparsec-iso8601 ==1.0.2.1,
+ attoparsec-path ==0.0.0.1,
+ attoparsec-time ==1.0.3,
+ audacity ==0.0.2.1,
+ aur ==7.0.7,
+ authenticate ==1.3.5.1,
+ authenticate-oauth ==1.7,
+ autoexporter ==2.0.0.1,
+ auto-update ==0.1.6,
+ aws-cloudfront-signed-cookies ==0.2.0.10,
+ aws-xray-client ==0.1.0.2,
+ aws-xray-client-persistent ==0.1.0.5,
+ aws-xray-client-wai ==0.1.0.2,
+ backtracking ==0.1.0,
+ bank-holidays-england ==0.2.0.7,
+ barbies ==2.0.3.1,
+ barrier ==0.1.1,
+ base installed,
+ base16 ==0.3.2.0,
+ base16-bytestring ==1.0.2.0,
+ base16-lens ==0.1.3.2,
+ base32 ==0.2.2.0,
+ base32-lens ==0.1.1.1,
+ base32string ==0.9.1,
+ base58-bytestring ==0.1.0,
+ base58string ==0.10.0,
+ base64 ==0.4.2.4,
+ base64-bytestring ==1.2.1.0,
+ base64-bytestring-type ==1.0.1,
+ base64-lens ==0.3.1,
+ base64-string ==0.2,
+ base-compat ==0.11.2,
+ base-compat-batteries ==0.11.2,
+ basement ==0.0.15,
+ base-orphans ==0.8.7,
+ base-prelude ==1.6.1,
+ base-unicode-symbols ==0.2.4.2,
+ basic-prelude ==0.7.0,
+ battleship-combinatorics ==0.0.1,
+ bazel-runfiles ==0.12,
+ bbdb ==0.8,
+ bcrypt ==0.0.11,
+ beam-core ==0.9.2.1,
+ beam-migrate ==0.5.1.2,
+ beam-postgres ==0.5.2.1,
+ beam-sqlite ==0.5.1.2,
+ bech32 ==1.1.2,
+ bech32-th ==1.1.1,
+ bench ==1.0.12,
+ benchpress ==0.2.2.21,
+ bencode ==0.6.1.1,
+ bencoding ==0.4.5.4,
+ between ==0.11.0.0,
+ bibtex ==0.1.0.6,
+ bifunctors ==5.5.12,
+ bimap ==0.4.0,
+ bimaps ==0.1.0.2,
+ bimap-server ==0.1.0.1,
+ bin ==0.1.2,
+ binance-exports ==0.1.1.0,
+ binary installed,
+ binary-conduit ==1.3.1,
+ binaryen ==0.0.6.0,
+ binary-generic-combinators ==0.4.4.0,
+ binary-ieee754 ==0.1.0.0,
+ binary-instances ==1.0.2,
+ binary-list ==1.1.1.2,
+ binary-orphans ==1.0.3,
+ binary-parser ==0.5.7.2,
+ binary-parsers ==0.2.4.0,
+ binary-search ==2.0.0,
+ binary-shared ==0.8.3,
+ binary-tagged ==0.3.1,
+ bindings-DSL ==1.0.25,
+ bindings-GLFW ==3.3.2.0,
+ bindings-libzip ==1.0.1,
+ bindings-uname ==0.1,
+ BiobaseENA ==0.0.0.2,
+ BiobaseEnsembl ==0.2.0.1,
+ BiobaseFasta ==0.4.0.1,
+ BiobaseTypes ==0.2.1.0,
+ BiobaseXNA ==0.11.1.1,
+ bitarray ==0.0.1.1,
+ bits ==0.6,
+ bitset-word8 ==0.1.1.2,
+ bits-extra ==0.0.2.3,
+ bitvec ==1.1.3.0,
+ bitwise-enum ==1.0.1.0,
+ blake2 ==0.3.0,
+ blanks ==0.5.0,
+ blas-carray ==0.1.0.1,
+ blas-comfort-array ==0.0.0.3,
+ blas-ffi ==0.1,
+ blas-hs ==0.1.1.0,
+ blaze-bootstrap ==0.1.0.1,
+ blaze-builder ==0.4.2.2,
+ blaze-colonnade ==1.2.2.1,
+ blaze-html ==0.9.1.2,
+ blaze-markup ==0.8.2.8,
+ blaze-svg ==0.3.6.1,
+ blaze-textual ==0.2.2.1,
+ bm ==0.1.0.2,
+ bmp ==1.2.6.3,
+ bnb-staking-csvs ==0.2.1.0,
+ BNFC ==2.9.4,
+ BNFC-meta ==0.6.1,
+ board-games ==0.3,
+ bodhi ==0.1.0,
+ boltzmann-samplers ==0.1.1.0,
+ bookkeeping ==0.4.0.1,
+ Boolean ==0.2.4,
+ boolean-like ==0.1.1.0,
+ boolsimplifier ==0.1.8,
+ boomerang ==1.4.8,
+ boots ==0.2.0.1,
+ bordacount ==0.1.0.0,
+ boring ==0.2,
+ both ==0.1.1.2,
+ bound ==2.0.5,
+ BoundedChan ==1.0.3.0,
+ bounded-queue ==1.0.0,
+ boxes ==0.1.5,
+ brick ==0.68.1,
+ brittany ==0.14.0.2,
+ broadcast-chan ==0.2.1.2,
+ brotli ==0.0.0.1,
+ brotli-streams ==0.0.0.0,
+ bsb-http-chunked ==0.0.0.4,
+ bson ==0.4.0.1,
+ bson-lens ==0.1.1,
+ buffer-builder ==0.2.4.8,
+ buffer-pipe ==0.0,
+ bugsnag-haskell ==0.0.4.4,
+ bugsnag-hs ==0.2.0.9,
+ bugzilla-redhat ==1.0.0,
+ burrito ==2.0.1.1,
+ butcher ==1.3.3.2,
+ buttplug-hs-core ==0.1.0.1,
+ bv ==0.5,
+ byteable ==0.1.1,
+ byte-count-reader ==0.10.1.9,
+ bytedump ==1.0,
+ byteorder ==1.0.4,
+ byte-order ==0.1.3.0,
+ bytes ==0.17.2,
+ byteset ==0.1.1.0,
+ bytestring installed,
+ bytestring-builder ==0.10.8.2.0,
+ bytestring-conversion ==0.3.2,
+ bytestring-lexing ==0.5.0.8,
+ bytestring-mmap ==0.2.2,
+ bytestring-strict-builder ==0.4.5.6,
+ bytestring-to-vector ==0.3.0.1,
+ bytestring-tree-builder ==0.2.7.10,
+ bytestring-trie ==0.2.7,
+ bz2 ==1.0.1.0,
+ bzlib ==0.5.1.0,
+ bzlib-conduit ==0.3.0.2,
+ c14n ==0.1.0.2,
+ c2hs ==0.28.8,
+ Cabal installed,
+ cabal2nix ==2.18.0,
+ cabal2spec ==2.6.2,
+ cabal-appimage ==0.3.0.5,
+ cabal-clean ==0.1.20220814,
+ cabal-doctest ==1.0.9,
+ cabal-file ==0.1.1,
+ cabal-file-th ==0.2.7,
+ cabal-flatpak ==0.1.0.3,
+ cabal-install ==3.4.1.0,
+ cabal-plan ==0.7.2.1,
+ cabal-rpm ==2.0.11.1,
+ Cabal-syntax ==3.6.0.0,
+ cache ==0.1.3.0,
+ cached-json-file ==0.1.1,
+ cacophony ==0.10.1,
+ calendar-recycling ==0.0.0.1,
+ call-alloy ==0.3.0.3,
+ call-stack ==0.4.0,
+ can-i-haz ==0.3.1.0,
+ capability ==0.5.0.1,
+ capataz ==0.2.1.0,
+ ca-province-codes ==1.0.0.0,
+ cardano-coin-selection ==1.0.1,
+ carray ==0.1.6.8,
+ casa-client ==0.0.1,
+ casa-types ==0.0.2,
+ cased ==0.1.0.0,
+ case-insensitive ==1.2.1.0,
+ cases ==0.1.4.1,
+ casing ==0.1.4.1,
+ cassava ==0.5.3.0,
+ cassava-conduit ==0.6.0,
+ cassava-megaparsec ==2.0.4,
+ cast ==0.1.0.2,
+ caster ==0.0.3.0,
+ cayley-client ==0.4.17,
+ cborg ==0.2.7.0,
+ cborg-json ==0.2.4.0,
+ cdar-mBound ==0.1.0.4,
+ c-enum ==0.1.1.3,
+ cereal ==0.5.8.3,
+ cereal-conduit ==0.8.0,
+ cereal-text ==0.1.0.2,
+ cereal-vector ==0.2.0.1,
+ cfenv ==0.1.0.0,
+ cgi ==3001.5.0.0,
+ chan ==0.0.4.1,
+ ChannelT ==0.0.0.7,
+ character-cases ==0.1.0.6,
+ charset ==0.3.9,
+ charsetdetect-ae ==1.1.0.4,
+ Chart ==1.9.4,
+ ChasingBottoms ==1.3.1.12,
+ cheapskate ==0.1.1.2,
+ cheapskate-highlight ==0.1.0.0,
+ cheapskate-lucid ==0.1.0.0,
+ check-email ==1.0.2,
+ checkers ==0.6.0,
+ checksum ==0.0,
+ chimera ==0.3.2.0,
+ chiphunk ==0.1.4.0,
+ choice ==0.2.2,
+ chronologique ==0.3.1.3,
+ chunked-data ==0.3.1,
+ cipher-aes ==0.2.11,
+ cipher-aes128 ==0.7.0.6,
+ cipher-camellia ==0.0.2,
+ cipher-des ==0.0.6,
+ cipher-rc4 ==0.1.4,
+ circle-packing ==0.1.0.6,
+ circular ==0.4.0.3,
+ citeproc ==0.6.0.1,
+ clash-ghc ==1.6.3,
+ clash-lib ==1.6.3,
+ clash-prelude ==1.6.3,
+ classy-prelude ==1.5.0.2,
+ classy-prelude-conduit ==1.5.0,
+ classy-prelude-yesod ==1.5.0,
+ clay ==0.14.0,
+ cleff ==0.3.3.0,
+ cleff-plugin ==0.1.0.0,
+ clientsession ==0.9.1.2,
+ climb ==0.3.3,
+ Clipboard ==2.3.2.0,
+ clock ==0.8.3,
+ closed ==0.2.0.2,
+ clumpiness ==0.17.0.2,
+ ClustalParser ==1.3.0,
+ cmark ==0.6,
+ cmark-gfm ==0.2.3,
+ cmark-lucid ==0.1.0.0,
+ cmdargs ==0.10.21,
+ codec-beam ==0.2.0,
+ code-conjure ==0.5.2,
+ code-page ==0.2.1,
+ coercible-utils ==0.1.0,
+ cointracking-imports ==0.1.0.1,
+ collect-errors ==0.1.5.0,
+ colonnade ==1.2.0.2,
+ Color ==0.3.3,
+ colorful-monoids ==0.2.1.3,
+ colorize-haskell ==1.0.1,
+ colour ==2.3.6,
+ columnar ==1.0.0.0,
+ combinatorial ==0.1.0.1,
+ comfort-array ==0.5.1.1,
+ comfort-array-shape ==0.0,
+ comfort-fftw ==0.0,
+ comfort-graph ==0.0.3.2,
+ commonmark ==0.2.2,
+ commonmark-extensions ==0.2.3.2,
+ commonmark-pandoc ==0.2.1.2,
+ commutative ==0.0.2,
+ comonad ==5.0.8,
+ comonad-extras ==4.0.1,
+ compact ==0.2.0.0,
+ compactmap ==0.1.4.2.1,
+ compensated ==0.8.3,
+ compiler-warnings ==0.1.0,
+ componentm ==0.0.0.2,
+ componentm-devel ==0.0.0.2,
+ composable-associations ==0.1.0.0,
+ composition ==1.0.2.2,
+ composition-extra ==2.0.0,
+ concise ==0.1.0.1,
+ concurrency ==1.11.0.2,
+ concurrent-extra ==0.7.0.12,
+ concurrent-output ==1.10.16,
+ concurrent-split ==0.0.1.1,
+ concurrent-supply ==0.1.8,
+ cond ==0.4.1.1,
+ conduino ==0.2.2.0,
+ conduit ==1.3.4.2,
+ conduit-aeson ==0.1.0.1,
+ conduit-algorithms ==0.0.13.0,
+ conduit-combinators ==1.3.0,
+ conduit-concurrent-map ==0.1.3,
+ conduit-connection ==0.1.0.5,
+ conduit-extra ==1.3.6,
+ conduit-parse ==0.2.1.1,
+ conduit-zstd ==0.0.2.0,
+ conferer ==1.1.0.0,
+ conferer-aeson ==1.1.0.2,
+ conferer-warp ==1.1.0.0,
+ ConfigFile ==1.1.4,
+ config-ini ==0.2.4.0,
+ configuration-tools ==0.6.1,
+ configurator ==0.3.0.0,
+ configurator-export ==0.1.0.1,
+ connection ==0.3.1,
+ connection-pool ==0.2.2,
+ console-style ==0.0.2.1,
+ constraints ==0.13.4,
+ constraints-extras ==0.3.2.1,
+ constraint-tuples ==0.1.2,
+ construct ==0.3.1,
+ containers installed,
+ containers-unicode-symbols ==0.3.1.3,
+ contravariant ==1.5.5,
+ contravariant-extras ==0.3.5.3,
+ control-bool ==0.2.1,
+ control-dsl ==0.2.1.3,
+ control-monad-free ==0.6.2,
+ control-monad-omega ==0.3.2,
+ convertible ==1.1.1.1,
+ cookie ==0.4.5,
+ copr-api ==0.1.0,
+ core-data ==0.3.6.0,
+ core-program ==0.4.6.4,
+ core-text ==0.3.8.0,
+ countable ==1.0,
+ covariance ==0.1.0.6,
+ cpphs ==1.20.9.1,
+ cprng-aes ==0.6.1,
+ cpu ==0.1.2,
+ cpuinfo ==0.1.0.2,
+ crackNum ==3.2,
+ crc32c ==0.0.0,
+ credential-store ==0.1.2,
+ criterion ==1.5.13.0,
+ criterion-measurement ==0.1.4.0,
+ cron ==0.7.0,
+ crypto-api ==0.13.3,
+ crypto-api-tests ==0.3,
+ crypto-cipher-tests ==0.0.11,
+ crypto-cipher-types ==0.0.9,
+ cryptocompare ==0.1.2,
+ crypto-enigma ==0.1.1.6,
+ cryptohash ==0.11.9,
+ cryptohash-cryptoapi ==0.1.4,
+ cryptohash-md5 ==0.11.101.0,
+ cryptohash-sha1 ==0.11.101.0,
+ cryptohash-sha256 ==0.11.102.1,
+ cryptohash-sha512 ==0.11.101.0,
+ cryptonite ==0.29,
+ cryptonite-conduit ==0.2.2,
+ cryptonite-openssl ==0.7,
+ crypto-pubkey-types ==0.4.3,
+ crypto-random ==0.0.9,
+ crypto-random-api ==0.2.0,
+ cryptostore ==0.2.2.0,
+ crypt-sha512 ==0,
+ csp ==1.4.0,
+ css-text ==0.1.3.0,
+ c-struct ==0.1.1.2,
+ csv ==0.1.2,
+ csv-conduit ==0.7.3.0,
+ ctrie ==0.2,
+ cubicbezier ==0.6.0.6,
+ cubicspline ==0.1.2,
+ cue-sheet ==2.0.2,
+ curl ==1.3.8,
+ curl-runnings ==0.17.0,
+ currencies ==0.2.0.0,
+ currency ==0.2.0.0,
+ cursor ==0.3.2.0,
+ cursor-brick ==0.1.0.1,
+ cursor-fuzzy-time ==0.0.0.0,
+ cursor-gen ==0.4.0.0,
+ cutter ==0.0,
+ cyclotomic ==1.1.1,
+ czipwith ==1.0.1.4,
+ d10 ==1.0.1.0,
+ data-accessor ==0.2.3,
+ data-accessor-mtl ==0.2.0.4,
+ data-accessor-transformers ==0.2.1.7,
+ data-binary-ieee754 ==0.4.4,
+ data-bword ==0.1.0.1,
+ data-checked ==0.3,
+ data-clist ==0.2,
+ data-default ==0.7.1.1,
+ data-default-class ==0.1.2.0,
+ data-default-extra ==0.1.0,
+ data-default-instances-base ==0.1.0.1,
+ data-default-instances-bytestring ==0.0.1,
+ data-default-instances-case-insensitive ==0.0.1,
+ data-default-instances-containers ==0.0.1,
+ data-default-instances-dlist ==0.0.1,
+ data-default-instances-new-base ==0.0.2,
+ data-default-instances-old-locale ==0.0.1,
+ data-default-instances-text ==0.0.1,
+ data-default-instances-unordered-containers ==0.0.1,
+ data-default-instances-vector ==0.0.1,
+ data-diverse ==4.7.0.0,
+ datadog ==0.3.0.0,
+ data-dword ==0.3.2.1,
+ data-endian ==0.1.1,
+ data-fix ==0.3.2,
+ data-forest ==0.1.0.9,
+ data-has ==0.4.0.0,
+ data-hash ==0.2.0.1,
+ data-interval ==2.1.1,
+ data-inttrie ==0.1.4,
+ data-lens-light ==0.1.2.3,
+ data-memocombinators ==0.5.1,
+ data-msgpack ==0.0.13,
+ data-msgpack-types ==0.0.3,
+ data-or ==1.0.0.7,
+ data-ordlist ==0.4.7.0,
+ data-ref ==0.0.2,
+ data-reify ==0.6.3,
+ data-serializer ==0.3.5,
+ datasets ==0.4.0,
+ data-sketches ==0.3.1.0,
+ data-sketches-core ==0.1.0.0,
+ data-textual ==0.3.0.3,
+ data-tree-print ==0.1.0.2,
+ dataurl ==0.1.0.0,
+ DAV ==1.3.4,
+ dawg-ord ==0.5.1.2,
+ dbcleaner ==0.1.3,
+ DBFunctor ==0.1.2.1,
+ dbus ==1.2.22,
+ dbus-hslogger ==0.1.0.1,
+ debian ==4.0.4,
+ debian-build ==0.10.2.1,
+ debug-trace-var ==0.2.0,
+ dec ==0.0.4,
+ Decimal ==0.5.2,
+ declarative ==0.5.4,
+ deepseq installed,
+ deepseq-generics ==0.2.0.0,
+ deferred-folds ==0.9.18.2,
+ dejafu ==2.4.0.3,
+ dense-linear-algebra ==0.1.0.0,
+ dependent-map ==0.4.0.0,
+ dependent-sum ==0.7.1.0,
+ dependent-sum-template ==0.1.1.1,
+ depq ==0.4.2,
+ deque ==0.4.4,
+ deriveJsonNoPrefix ==0.1.0.1,
+ derive-topdown ==0.0.3.0,
+ deriving-aeson ==0.2.8,
+ deriving-compat ==0.6.1,
+ derulo ==2.0.0.1,
+ detour-via-sci ==1.0.0,
+ df1 ==0.4,
+ dhall ==1.40.2,
+ dhall-bash ==1.0.39,
+ dhall-json ==1.7.9,
+ dhall-yaml ==1.2.10,
+ di ==1.3,
+ diagrams ==1.4.0.1,
+ diagrams-contrib ==1.4.4,
+ diagrams-core ==1.5.0,
+ diagrams-lib ==1.4.5.1,
+ diagrams-rasterific ==1.4.2.2,
+ diagrams-solve ==0.1.3,
+ diagrams-svg ==1.4.3.1,
+ di-core ==1.0.4,
+ dictionary-sharing ==0.1.0.0,
+ di-df1 ==1.2.1,
+ Diff ==0.4.1,
+ digest ==0.0.1.3,
+ digits ==0.3.1,
+ di-handle ==1.0.1,
+ dimensional ==1.4,
+ di-monad ==1.3.1,
+ directory installed,
+ directory-tree ==0.12.1,
+ direct-sqlite ==2.3.27,
+ dirichlet ==0.1.0.7,
+ discount ==0.1.1,
+ discover-instances ==0.1.0.0,
+ discrimination ==0.4.1,
+ disk-free-space ==0.1.0.1,
+ distributed-static ==0.3.9,
+ distribution-nixpkgs ==1.6.2,
+ distribution-opensuse ==1.1.3,
+ distributive ==0.6.2.1,
+ djinn-lib ==0.0.1.4,
+ dlist ==1.0,
+ dlist-instances ==0.1.1.1,
+ dlist-nonempty ==0.1.1,
+ dns ==4.0.1,
+ dockerfile ==0.2.0,
+ doclayout ==0.3.1.1,
+ docopt ==0.7.0.7,
+ doctemplates ==0.10.0.1,
+ doctest ==0.18.2,
+ doctest-discover ==0.2.0.0,
+ doctest-driver-gen ==0.3.0.5,
+ doctest-exitcode-stdio ==0.0,
+ doctest-extract ==0.1,
+ doctest-lib ==0.1,
+ doctest-parallel ==0.2.5,
+ doldol ==0.4.1.2,
+ do-list ==1.0.1,
+ domain ==0.1.1.3,
+ domain-core ==0.1.0.2,
+ domain-optics ==0.1.0.3,
+ do-notation ==0.1.0.2,
+ dot ==0.3,
+ dotenv ==0.9.0.2,
+ dotgen ==0.4.3,
+ dotnet-timespan ==0.0.1.0,
+ double-conversion ==2.0.4.1,
+ download ==0.3.2.7,
+ download-curl ==0.1.4,
+ DPutils ==0.1.1.0,
+ drifter ==0.3.0,
+ drifter-postgresql ==0.2.1,
+ drifter-sqlite ==0.1.0.0,
+ dsp ==0.2.5.1,
+ dual ==0.1.1.1,
+ dual-tree ==0.2.3.1,
+ dublincore-xml-conduit ==0.1.0.2,
+ dunai ==0.8.3,
+ duration ==0.2.0.0,
+ dvorak ==0.1.0.0,
+ dynamic-state ==0.3.1,
+ dyre ==0.9.1,
+ eap ==0.9.0.2,
+ Earley ==0.13.0.1,
+ easy-file ==0.2.2,
+ easy-logger ==0.1.0.7,
+ Ebnf2ps ==1.0.15,
+ echo ==0.1.4,
+ ecstasy ==0.2.1.0,
+ ed25519 ==0.0.5.0,
+ edit-distance ==0.2.2.1,
+ edit-distance-vector ==1.0.0.4,
+ editor-open ==0.6.0.0,
+ either ==5.0.2,
+ either-both ==0.1.1.1,
+ either-unwrap ==1.1,
+ ekg-core ==0.1.1.7,
+ elerea ==2.9.0,
+ elf ==0.31,
+ eliminators ==0.8,
+ elm-bridge ==0.8.0,
+ elm-core-sources ==1.0.0,
+ elm-export ==0.6.0.1,
+ elynx ==0.6.1.1,
+ elynx-markov ==0.6.1.1,
+ elynx-nexus ==0.6.1.1,
+ elynx-seq ==0.6.1.1,
+ elynx-tools ==0.6.1.1,
+ elynx-tree ==0.6.1.1,
+ email-validate ==2.3.2.16,
+ emd ==0.2.0.0,
+ emojis ==0.1.2,
+ enclosed-exceptions ==1.0.3,
+ ENIG ==0.0.1.0,
+ entropy ==0.4.1.7,
+ enummapset ==0.6.0.3,
+ enumset ==0.1,
+ enum-text ==0.5.3.0,
+ envelope ==0.2.2.0,
+ envparse ==0.4.1,
+ envy ==2.1.0.0,
+ eq ==4.3,
+ equal-files ==0.0.5.3,
+ equational-reasoning ==0.7.0.1,
+ equivalence ==0.4.1,
+ erf ==2.0.0.0,
+ errata ==0.4.0.0,
+ error ==0.3.0.0,
+ errorcall-eq-instance ==0.3.0,
+ error-or ==0.2.0.0,
+ error-or-utils ==0.2.0,
+ errors ==2.3.0,
+ errors-ext ==0.4.2,
+ ersatz ==0.4.12,
+ esqueleto ==3.5.7.0,
+ essence-of-live-coding ==0.2.6,
+ essence-of-live-coding-gloss ==0.2.6,
+ essence-of-live-coding-pulse ==0.2.6,
+ essence-of-live-coding-quickcheck ==0.2.6,
+ essence-of-live-coding-warp ==0.2.6,
+ eventful-core ==0.2.0,
+ eventful-memory ==0.2.0,
+ eventful-test-helpers ==0.2.0,
+ event-list ==0.1.2,
+ eventstore ==1.4.2,
+ every ==0.0.1,
+ evm-opcodes ==0.1.1,
+ exact-combinatorics ==0.2.0.11,
+ exact-pi ==0.5.0.2,
+ exception-hierarchy ==0.1.0.6,
+ exception-mtl ==0.4.0.1,
+ exceptions installed,
+ exception-transformers ==0.4.0.11,
+ exception-via ==0.1.0.0,
+ executable-hash ==0.2.0.4,
+ executable-path ==0.0.3.1,
+ exit-codes ==1.0.0,
+ exomizer ==1.0.0,
+ experimenter ==0.1.0.12,
+ expiring-cache-map ==0.0.6.1,
+ explainable-predicates ==0.1.2.2,
+ explicit-exception ==0.1.10,
+ exp-pairs ==0.2.1.0,
+ express ==1.0.10,
+ extended-reals ==0.2.4.0,
+ extensible-effects ==5.0.0.1,
+ extensible-exceptions ==0.1.1.4,
+ extra ==1.7.10,
+ extractable-singleton ==0.0.1,
+ extrapolate ==0.4.6,
+ fail ==4.9.0.0,
+ failable ==1.2.4.0,
+ fakedata ==1.0.3,
+ fakedata-parser ==0.1.0.0,
+ fakedata-quickcheck ==0.2.0,
+ fakefs ==0.3.0.2,
+ fakepull ==0.3.0.2,
+ faktory ==1.1.2.3,
+ fast-builder ==0.1.3.0,
+ fast-logger ==3.1.1,
+ fast-math ==1.0.2,
+ fastmemo ==0.1.0.1,
+ fclabels ==2.0.5.1,
+ feature-flags ==0.1.0.1,
+ fedora-dists ==2.0.0,
+ fedora-haskell-tools ==1.0,
+ feed ==1.3.2.1,
+ FenwickTree ==0.1.2.1,
+ fft ==0.1.8.7,
+ fftw-ffi ==0.1,
+ fgl ==5.7.0.3,
+ fields-json ==0.4.0.0,
+ file-embed ==0.0.15.0,
+ file-embed-lzma ==0,
+ filelock ==0.1.1.5,
+ filemanip ==0.3.6.3,
+ file-modules ==0.1.2.4,
+ filepath installed,
+ filepath-bytestring ==1.4.2.1.9,
+ file-path-th ==0.1.0.0,
+ filepattern ==0.1.2,
+ fileplow ==0.1.0.0,
+ filter-logger ==0.6.0.0,
+ filtrable ==0.1.6.0,
+ fin ==0.2.1,
+ FindBin ==0.0.5,
+ fingertree ==0.1.5.0,
+ finite-typelits ==0.1.6.0,
+ first-class-families ==0.8.0.1,
+ first-class-patterns ==0.3.2.5,
+ fitspec ==0.4.10,
+ fixed ==0.3,
+ fixed-length ==0.2.3,
+ fixed-vector ==1.2.1.0,
+ fixed-vector-hetero ==0.6.1.1,
+ fix-whitespace ==0.0.9,
+ flac ==0.2.0,
+ flac-picture ==0.1.2,
+ flags-applicative ==0.1.0.3,
+ flat ==0.4.4,
+ flat-mcmc ==1.5.2,
+ flay ==0.4,
+ flexible-defaults ==0.0.3,
+ FloatingHex ==0.5,
+ floatshow ==0.2.4,
+ flow ==2.0.0.0,
+ flush-queue ==1.0.0,
+ fmlist ==0.9.4,
+ fmt ==0.6.3.0,
+ fn ==0.3.0.2,
+ focus ==1.0.3,
+ focuslist ==0.1.1.0,
+ fold-debounce ==0.2.0.9,
+ fold-debounce-conduit ==0.2.0.6,
+ foldl ==1.4.12,
+ folds ==0.7.8,
+ follow-file ==0.0.3,
+ FontyFruity ==0.5.3.5,
+ force-layout ==0.4.0.6,
+ foreign-store ==0.2,
+ ForestStructures ==0.0.1.0,
+ forkable-monad ==0.2.0.3,
+ forma ==1.2.0,
+ format-numbers ==0.1.0.1,
+ formatting ==7.1.3,
+ fortran-src ==0.9.0,
+ foundation ==0.0.29,
+ fourmolu ==0.4.0.0,
+ Frames ==0.7.3,
+ free ==5.1.9,
+ free-categories ==0.2.0.2,
+ freenect ==1.2.1,
+ freer-simple ==1.2.1.2,
+ freetype2 ==0.2.0,
+ free-vl ==0.1.4,
+ friendly-time ==0.4.1,
+ frisby ==0.2.4,
+ from-sum ==0.2.3.0,
+ frontmatter ==0.1.0.2,
+ fsnotify ==0.3.0.1,
+ fsnotify-conduit ==0.1.1.1,
+ ftp-client ==0.5.1.4,
+ funcmp ==1.9,
+ function-builder ==0.3.0.1,
+ functor-classes-compat ==2.0.0.2,
+ functor-combinators ==0.4.1.0,
+ fused-effects ==1.1.2.0,
+ fusion-plugin ==0.2.4,
+ fusion-plugin-types ==0.1.0,
+ fuzzcheck ==0.1.1,
+ fuzzy ==0.1.0.1,
+ fuzzy-dates ==0.1.1.2,
+ fuzzyset ==0.2.3,
+ fuzzy-time ==0.2.0.1,
+ gauge ==0.2.5,
+ gd ==3000.7.3,
+ gdp ==0.0.3.0,
+ general-games ==1.1.1,
+ generic-aeson ==0.2.0.14,
+ generic-arbitrary ==0.2.2,
+ generic-constraints ==1.1.1.1,
+ generic-data ==0.9.2.1,
+ generic-data-surgery ==0.3.0.0,
+ generic-deriving ==1.14.2,
+ generic-functor ==0.2.0.0,
+ generic-lens ==2.2.1.0,
+ generic-lens-core ==2.2.1.0,
+ generic-monoid ==0.1.0.1,
+ generic-optics ==2.2.1.0,
+ GenericPretty ==1.2.2,
+ generic-random ==1.5.0.1,
+ generics-eot ==0.4.0.1,
+ generics-sop ==0.5.1.2,
+ generics-sop-lens ==0.2.0.1,
+ geniplate-mirror ==0.7.8,
+ genvalidity ==1.0.0.1,
+ genvalidity-bytestring ==1.0.0.0,
+ genvalidity-containers ==1.0.0.0,
+ genvalidity-criterion ==1.0.0.0,
+ genvalidity-hspec ==1.0.0.0,
+ genvalidity-hspec-aeson ==1.0.0.0,
+ genvalidity-hspec-binary ==1.0.0.0,
+ genvalidity-hspec-cereal ==1.0.0.0,
+ genvalidity-hspec-hashable ==1.0.0.0,
+ genvalidity-hspec-optics ==1.0.0.0,
+ genvalidity-hspec-persistent ==1.0.0.0,
+ genvalidity-mergeless ==0.3.0.0,
+ genvalidity-path ==1.0.0.0,
+ genvalidity-persistent ==1.0.0.0,
+ genvalidity-property ==1.0.0.0,
+ genvalidity-scientific ==1.0.0.0,
+ genvalidity-text ==1.0.0.1,
+ genvalidity-time ==1.0.0.0,
+ genvalidity-unordered-containers ==1.0.0.0,
+ genvalidity-uuid ==1.0.0.0,
+ genvalidity-vector ==1.0.0.0,
+ geodetics ==0.1.2,
+ geojson ==4.1.0,
+ getopt-generics ==0.13.0.4,
+ ghc installed,
+ ghc-bignum installed,
+ ghc-bignum-orphans ==0.1.1,
+ ghc-byteorder ==4.11.0.0.10,
+ ghc-check ==0.5.0.8,
+ ghc-compact ==0.1.0.0,
+ ghc-core ==0.5.6,
+ ghc-events ==0.17.0.3,
+ ghc-exactprint ==0.6.4,
+ ghcid ==0.8.7,
+ ghci-hexcalc ==0.1.1.0,
+ ghcjs-codemirror ==0.0.0.2,
+ ghcjs-perch ==0.3.3.3,
+ ghc-lib ==9.0.2.20211226,
+ ghc-lib-parser ==9.0.2.20211226,
+ ghc-lib-parser-ex ==9.0.0.6,
+ ghc-parser ==0.2.3.0,
+ ghc-paths ==0.1.0.12,
+ ghc-prim installed,
+ ghc-prof ==1.4.1.11,
+ ghc-source-gen ==0.4.3.0,
+ ghc-syntax-highlighter ==0.0.7.0,
+ ghc-tcplugins-extra ==0.4.2,
+ ghc-trace-events ==0.1.2.6,
+ ghc-typelits-extra ==0.4.3,
+ ghc-typelits-knownnat ==0.7.6,
+ ghc-typelits-natnormalise ==0.7.6,
+ ghc-typelits-presburger ==0.6.2.0,
+ ghost-buster ==0.1.1.0,
+ gi-atk ==2.0.24,
+ gi-cairo ==1.0.26,
+ gi-cairo-connector ==0.1.1,
+ gi-cairo-render ==0.1.1,
+ gi-dbusmenu ==0.4.10,
+ gi-dbusmenugtk3 ==0.4.11,
+ gi-freetype2 ==2.0.1,
+ gi-gdk ==3.0.25,
+ gi-gdkpixbuf ==2.0.28,
+ gi-gdkx11 ==3.0.12,
+ gi-gio ==2.0.29,
+ gi-glib ==2.0.26,
+ gi-gmodule ==2.0.2,
+ gi-gobject ==2.0.27,
+ gi-graphene ==1.0.4,
+ gi-gtk ==3.0.38,
+ gi-gtk-hs ==0.3.12,
+ gi-gtksource ==3.0.25,
+ gi-harfbuzz ==0.0.6,
+ gi-javascriptcore ==4.0.24,
+ ginger ==0.10.4.0,
+ gi-pango ==1.0.26,
+ githash ==0.1.6.2,
+ github ==0.27,
+ github-release ==2.0.0.1,
+ github-rest ==1.1.2,
+ github-types ==0.2.1,
+ github-webhooks ==0.15.0,
+ gitrev ==1.3.1,
+ gi-vte ==2.91.29,
+ gi-xlib ==2.0.11,
+ gl ==0.9,
+ glabrous ==2.0.5,
+ glasso ==0.1.0,
+ GLFW-b ==3.3.0.0,
+ Glob ==0.10.2,
+ glob-posix ==0.2.0.1,
+ gloss ==1.13.2.1,
+ gloss-algorithms ==1.13.0.3,
+ gloss-raster ==1.13.1.2,
+ gloss-rendering ==1.13.1.1,
+ GLURaw ==2.0.0.5,
+ GLUT ==2.7.0.16,
+ gmail-simple ==0.1.0.4,
+ gnuplot ==0.5.7,
+ goldplate ==0.2.0,
+ google-isbn ==1.0.3,
+ gopher-proxy ==0.1.1.3,
+ gothic ==0.1.8,
+ gotyno-hs ==1.1.0,
+ gpolyline ==0.1.0.1,
+ graph-core ==0.3.0.0,
+ graphite ==0.10.0.1,
+ graphs ==0.7.2,
+ graphula ==2.0.2.1,
+ graphviz ==2999.20.1.0,
+ graph-wrapper ==0.2.6.0,
+ gravatar ==0.8.1,
+ greskell ==2.0.0.0,
+ greskell-core ==1.0.0.0,
+ greskell-websocket ==1.0.0.0,
+ groom ==0.1.2.1,
+ groundhog ==0.12.0,
+ groundhog-postgresql ==0.12,
+ groundhog-sqlite ==0.12.0,
+ group-by-date ==0.1.0.4,
+ grouped-list ==0.2.3.0,
+ groups ==0.5.3,
+ gtk2hs-buildtools ==0.13.8.3,
+ gtk-sni-tray ==0.1.8.0,
+ gtk-strut ==0.1.3.0,
+ guarded-allocation ==0.0.1,
+ hackage-cli ==0.0.3.6,
+ hackage-db ==2.1.2,
+ hackage-security ==0.6.2.2,
+ haddock-library ==1.10.0,
+ hadoop-streaming ==0.2.0.3,
+ hakyll ==4.15.1.1,
+ hakyll-convert ==0.3.0.4,
+ hal ==0.4.10.1,
+ half ==0.3.1,
+ hall-symbols ==0.1.0.6,
+ hamilton ==0.1.0.3,
+ hamtsolo ==1.0.4,
+ HandsomeSoup ==0.4.2,
+ handwriting ==0.1.0.3,
+ happstack-server ==7.7.2,
+ happstack-server-tls ==7.2.1.3,
+ happy ==1.20.0,
+ happy-meta ==0.2.0.11,
+ HasBigDecimal ==0.1.1,
+ hasbolt ==0.1.6.2,
+ hashable ==1.3.5.0,
+ hashable-time ==0.3,
+ hashids ==1.0.2.7,
+ hashing ==0.1.0.1,
+ hashmap ==1.3.3,
+ hashtables ==1.2.4.2,
+ haskeline ==0.8.2,
+ haskell-awk ==1.2.0.1,
+ haskell-gi ==0.26.1,
+ haskell-gi-base ==0.26.1,
+ haskell-gi-overloading ==1.0,
+ haskell-lexer ==1.1,
+ haskell-lsp-types ==0.24.0.0,
+ haskell-src ==1.0.4,
+ haskell-src-exts ==1.23.1,
+ haskell-src-exts-util ==0.2.5,
+ haskell-src-meta ==0.8.10,
+ haskey-btree ==0.3.0.1,
+ haskintex ==0.8.0.0,
+ haskoin-core ==0.21.2,
+ hasktags ==0.72.0,
+ hasql ==1.5.1,
+ hasql-migration ==0.3.0,
+ hasql-notifications ==0.2.0.2,
+ hasql-optparse-applicative ==0.3.0.9,
+ hasql-pool ==0.5.2.2,
+ hasql-queue ==1.2.0.2,
+ hasql-th ==0.4.0.17,
+ hasql-transaction ==1.0.1.1,
+ has-transformers ==0.1.0.4,
+ hasty-hamiltonian ==1.3.4,
+ HaTeX ==3.22.3.1,
+ HaXml ==1.25.9,
+ haxr ==3000.11.4.1,
+ HCodecs ==0.5.2,
+ hdaemonize ==0.5.6,
+ HDBC ==2.4.0.4,
+ HDBC-session ==0.1.2.0,
+ headed-megaparsec ==0.2.1,
+ heap ==1.0.4,
+ heaps ==0.4,
+ heatshrink ==0.1.0.0,
+ hebrew-time ==0.1.2,
+ hedgehog ==1.0.5,
+ hedgehog-classes ==0.2.5.3,
+ hedgehog-corpus ==0.2.0,
+ hedgehog-fakedata ==0.0.1.5,
+ hedgehog-fn ==1.0,
+ hedgehog-quickcheck ==0.1.1,
+ hedis ==0.15.1,
+ hedn ==0.3.0.4,
+ here ==1.2.13,
+ heredoc ==0.2.0.0,
+ heterocephalus ==1.0.5.7,
+ hex ==0.2.0,
+ hexml ==0.3.4,
+ hexpat ==0.20.13,
+ hex-text ==0.1.0.6,
+ hformat ==0.3.3.1,
+ hfsevents ==0.1.6,
+ hgeometry ==0.14,
+ hgeometry-combinatorial ==0.14,
+ hid ==0.2.2,
+ hidapi ==0.1.8,
+ hie-bios ==0.9.1,
+ hi-file-parser ==0.1.3.0,
+ higher-leveldb ==0.6.0.0,
+ highlighting-kate ==0.6.4,
+ hindent ==5.3.4,
+ hinfo ==0.0.3.0,
+ hinotify ==0.4.1,
+ hint ==0.9.0.6,
+ histogram-fill ==0.9.1.0,
+ hjsmin ==0.2.0.4,
+ hkd-default ==1.1.0.0,
+ hkgr ==0.3,
+ hledger ==1.25,
+ hledger-iadd ==1.3.17,
+ hledger-interest ==1.6.3,
+ hledger-lib ==1.25,
+ hledger-stockquotes ==0.1.2.0,
+ hledger-ui ==1.25,
+ hledger-web ==1.25,
+ hlibcpuid ==0.2.0,
+ hlibgit2 ==0.18.0.16,
+ hlibsass ==0.1.10.1,
+ hlint ==3.3.6,
+ hmatrix ==0.20.2,
+ hmatrix-gsl ==0.19.0.1,
+ hmatrix-gsl-stats ==0.4.1.8,
+ hmatrix-morpheus ==0.1.1.2,
+ hmatrix-repa ==0.1.2.2,
+ hmatrix-vector-sized ==0.1.3.0,
+ hmm-lapack ==0.5,
+ HMock ==0.5.1.0,
+ hnock ==0.4.0,
+ hoauth2 ==2.3.0,
+ hocilib ==0.2.0,
+ hoogle ==5.0.18.3,
+ hopenssl ==2.2.4,
+ hopfli ==0.2.2.1,
+ horizontal-rule ==0.5.0.0,
+ hosc ==0.19.1,
+ hostname ==1.0,
+ hostname-validate ==1.0.0,
+ hourglass ==0.2.12,
+ hourglass-orphans ==0.1.0.0,
+ hp2pretty ==0.10,
+ hpack ==0.34.7,
+ hpack-dhall ==0.5.4,
+ hpc-codecov ==0.3.0.0,
+ HPDF ==1.6.0,
+ hpp ==0.6.5,
+ hpqtypes ==1.9.4.0,
+ hprotoc ==2.4.17,
+ hreader ==1.1.0,
+ hreader-lens ==0.1.3.0,
+ hruby ==0.5.0.0,
+ hsass ==0.8.0,
+ hs-bibutils ==6.10.0.0,
+ hsc2hs ==0.68.8,
+ hscolour ==1.24.4,
+ hsdns ==1.8,
+ hsemail ==2.2.1,
+ hset ==2.2.0,
+ hsexif ==0.6.1.9,
+ hs-GeoIP ==0.3,
+ hsignal ==0.2.7.5,
+ hsini ==0.5.1.2,
+ hsinstall ==2.7,
+ HSlippyMap ==3.0.1,
+ hslogger ==1.3.1.0,
+ hslua ==2.1.0,
+ hslua-aeson ==2.1.0,
+ hslua-classes ==2.1.0,
+ hslua-core ==2.1.0,
+ hslua-marshalling ==2.1.0,
+ hslua-module-doclayout ==1.0.4,
+ hslua-module-path ==1.0.3,
+ hslua-module-system ==1.0.2,
+ hslua-module-text ==1.0.2,
+ hslua-module-version ==1.0.2,
+ hslua-objectorientation ==2.1.0,
+ hslua-packaging ==2.1.0,
+ hsndfile ==0.8.0,
+ hsndfile-vector ==0.5.2,
+ HsOpenSSL ==0.11.7.2,
+ HsOpenSSL-x509-system ==0.1.0.4,
+ hsp ==0.10.0,
+ hspec ==2.8.5,
+ hspec-attoparsec ==0.1.0.2,
+ hspec-checkers ==0.1.0.2,
+ hspec-contrib ==0.5.1,
+ hspec-core ==2.8.5,
+ hspec-discover ==2.8.5,
+ hspec-expectations ==0.8.2,
+ hspec-expectations-json ==1.0.0.7,
+ hspec-expectations-lifted ==0.10.0,
+ hspec-expectations-pretty-diff ==0.7.2.6,
+ hspec-golden ==0.2.0.0,
+ hspec-golden-aeson ==0.9.0.0,
+ hspec-hedgehog ==0.0.1.2,
+ hspec-junit-formatter ==1.0.3.0,
+ hspec-leancheck ==0.0.6,
+ hspec-megaparsec ==2.2.0,
+ hspec-meta ==2.7.8,
+ hspec-need-env ==0.1.0.9,
+ hspec-parsec ==0,
+ hspec-smallcheck ==0.5.2,
+ hspec-tmp-proc ==0.5.1.2,
+ hspec-wai ==0.11.1,
+ hs-php-session ==0.0.9.3,
+ hsshellscript ==3.5.0,
+ hs-tags ==0.1.5.3,
+ hstatistics ==0.3.1,
+ HStringTemplate ==0.8.8,
+ HSvm ==0.1.1.3.25,
+ HsYAML ==0.2.1.1,
+ HsYAML-aeson ==0.2.0.1,
+ hsyslog ==5.0.2,
+ hsyslog-udp ==0.2.5,
+ htaglib ==1.2.0,
+ HTF ==0.15.0.0,
+ html ==1.0.1.2,
+ html-conduit ==1.3.2.2,
+ html-email-validate ==0.2.0.0,
+ html-entities ==1.1.4.6,
+ html-entity-map ==0.1.0.0,
+ HTTP ==4000.3.16,
+ http2 ==3.0.3,
+ http-api-data ==0.4.3,
+ http-api-data-qq ==0.1.0.0,
+ http-client ==0.7.13.1,
+ http-client-openssl ==0.3.3,
+ http-client-overrides ==0.1.1.0,
+ http-client-tls ==0.3.6.1,
+ http-common ==0.8.3.4,
+ http-conduit ==2.3.8,
+ http-date ==0.0.11,
+ http-directory ==0.1.10,
+ http-download ==0.2.0.0,
+ httpd-shed ==0.4.1.1,
+ http-io-streams ==0.1.6.1,
+ http-link-header ==1.2.1,
+ http-media ==0.8.0.0,
+ http-query ==0.1.3,
+ http-reverse-proxy ==0.6.0.1,
+ http-streams ==0.8.9.6,
+ http-types ==0.12.3,
+ human-readable-duration ==0.2.1.4,
+ HUnit ==1.6.2.0,
+ HUnit-approx ==1.1.1.1,
+ hunit-dejafu ==2.0.0.5,
+ hvect ==0.4.0.1,
+ hvega ==0.12.0.3,
+ hw-balancedparens ==0.4.1.2,
+ hw-bits ==0.7.2.2,
+ hw-conduit ==0.2.1.1,
+ hw-conduit-merges ==0.2.1.0,
+ hw-diagnostics ==0.0.1.0,
+ hw-dsv ==0.4.1.1,
+ hweblib ==0.6.3,
+ hw-eliasfano ==0.1.2.1,
+ hw-excess ==0.2.3.0,
+ hw-fingertree ==0.1.2.1,
+ hw-fingertree-strict ==0.1.2.1,
+ hw-hedgehog ==0.1.1.1,
+ hw-int ==0.0.2.0,
+ hw-ip ==2.4.2.1,
+ hw-json-simd ==0.1.1.1,
+ hw-json-simple-cursor ==0.1.1.1,
+ hw-json-standard-cursor ==0.2.3.2,
+ hwk ==0.6,
+ hw-kafka-client ==4.0.3,
+ hw-mquery ==0.2.1.1,
+ hworker ==0.1.0.1,
+ hw-packed-vector ==0.2.1.1,
+ hw-parser ==0.1.1.0,
+ hw-prim ==0.6.3.1,
+ hw-rankselect ==0.13.4.1,
+ hw-rankselect-base ==0.3.4.1,
+ hw-simd ==0.1.2.1,
+ hw-streams ==0.0.1.0,
+ hw-string-parse ==0.0.0.5,
+ hw-succinct ==0.1.0.1,
+ hw-xml ==0.5.1.1,
+ hxt ==9.3.1.22,
+ hxt-charproperties ==9.5.0.0,
+ hxt-css ==0.1.0.3,
+ hxt-curl ==9.1.1.1,
+ hxt-expat ==9.1.1,
+ hxt-http ==9.1.5.2,
+ hxt-regex-xmlschema ==9.2.0.7,
+ hxt-tagsoup ==9.1.4,
+ hxt-unicode ==9.0.2.4,
+ hybrid-vectors ==0.2.3,
+ hyper ==0.2.1.1,
+ hyperloglog ==0.4.6,
+ hyphenation ==0.8.2,
+ iconv ==0.4.1.3,
+ identicon ==0.2.2,
+ ieee754 ==0.8.0,
+ if ==0.1.0.0,
+ iff ==0.0.6,
+ ihaskell ==0.10.2.2,
+ ihaskell-hvega ==0.5.0.3,
+ ihs ==0.1.0.3,
+ ilist ==0.4.0.1,
+ imagesize-conduit ==1.1,
+ Imlib ==0.1.2,
+ immortal ==0.3,
+ immortal-queue ==0.1.0.1,
+ inbox ==0.2.0,
+ include-file ==0.1.0.4,
+ incremental-parser ==0.5.0.3,
+ indents ==0.5.0.1,
+ indexed ==0.1.3,
+ indexed-containers ==0.1.0.2,
+ indexed-list-literals ==0.2.1.3,
+ indexed-profunctors ==0.1.1,
+ indexed-traversable ==0.1.2,
+ indexed-traversable-instances ==0.1.1.1,
+ infer-license ==0.2.0,
+ inflections ==0.4.0.6,
+ influxdb ==1.9.2.2,
+ ini ==0.4.2,
+ inj ==1.0,
+ inline-c ==0.9.1.6,
+ inline-c-cpp ==0.5.0.0,
+ inliterate ==0.1.0,
+ input-parsers ==0.2.3.2,
+ insert-ordered-containers ==0.2.5.1,
+ inspection-testing ==0.4.6.1,
+ instance-control ==0.1.2.0,
+ int-cast ==0.2.0.0,
+ integer-gmp installed,
+ integer-logarithms ==1.0.3.1,
+ integer-roots ==1.0.2.0,
+ integration ==0.2.1,
+ intern ==0.9.4,
+ interpolate ==0.2.1,
+ interpolatedstring-perl6 ==1.0.2,
+ interpolation ==0.1.1.2,
+ IntervalMap ==0.6.1.2,
+ intervals ==0.9.2,
+ intro ==0.9.0.0,
+ intset-imperative ==0.1.0.0,
+ invariant ==0.5.6,
+ invert ==1.0.0.2,
+ invertible ==0.2.0.7,
+ invertible-grammar ==0.1.3.2,
+ io-machine ==0.2.0.0,
+ io-manager ==0.1.0.3,
+ io-memoize ==1.1.1.0,
+ io-region ==0.1.1,
+ io-storage ==0.3,
+ io-streams ==1.5.2.2,
+ ip6addr ==1.0.3,
+ iproute ==1.7.12,
+ IPv6Addr ==2.0.5,
+ ipynb ==0.2,
+ ipython-kernel ==0.10.2.2,
+ irc ==0.6.1.0,
+ irc-client ==1.1.2.2,
+ irc-conduit ==0.3.0.5,
+ irc-ctcp ==0.1.3.1,
+ isbn ==1.1.0.3,
+ islink ==0.1.0.0,
+ iso3166-country-codes ==0.20140203.8,
+ iso639 ==0.1.0.3,
+ iso8601-time ==0.1.5,
+ isocline ==1.0.9,
+ iterable ==3.0,
+ ix-shapable ==0.1.0,
+ jack ==0.7.2,
+ jailbreak-cabal ==1.3.6,
+ jalaali ==1.0.0.0,
+ java-adt ==0.2018.11.4,
+ jira-wiki-markup ==1.4.0,
+ jose ==0.9,
+ js-chart ==2.9.4.1,
+ js-dgtable ==0.5.2,
+ js-flot ==0.8.3,
+ js-jquery ==3.3.1,
+ json ==0.10,
+ json-feed ==2.0.0.3,
+ jsonifier ==0.2.1.1,
+ jsonpath ==0.2.1.0,
+ json-stream ==0.4.4.1,
+ JuicyPixels ==3.3.7,
+ JuicyPixels-blurhash ==0.1.0.3,
+ JuicyPixels-extra ==0.5.2,
+ JuicyPixels-scale-dct ==0.1.2,
+ junit-xml ==0.1.0.2,
+ justified-containers ==0.3.0.0,
+ jwt ==0.11.0,
+ kan-extensions ==5.2.5,
+ kanji ==3.5.0,
+ katip ==0.8.7.2,
+ katip-logstash ==0.1.0.2,
+ katip-wai ==0.1.2.0,
+ kazura-queue ==0.1.0.4,
+ keep-alive ==0.2.1.0,
+ keycode ==0.2.2,
+ keys ==3.12.3,
+ ki ==0.2.0.1,
+ kind-apply ==0.3.2.1,
+ kind-generics ==0.4.1.4,
+ kind-generics-th ==0.2.2.3,
+ kleene ==0.1,
+ kmeans ==0.1.3,
+ koji ==0.0.2,
+ krank ==0.2.3,
+ l10n ==0.1.0.1,
+ labels ==0.3.3,
+ lackey ==2.0.0.2,
+ LambdaHack ==0.11.0.0,
+ lame ==0.2.0,
+ language-bash ==0.9.2,
+ language-c ==0.9.1,
+ language-c-quote ==0.13,
+ language-docker ==10.4.3,
+ language-dot ==0.1.1,
+ language-glsl ==0.3.0,
+ language-java ==0.2.9,
+ language-javascript ==0.7.1.0,
+ language-nix ==2.2.0,
+ language-protobuf ==1.0.1,
+ language-python ==0.5.8,
+ language-thrift ==0.12.0.1,
+ lapack ==0.5,
+ lapack-carray ==0.0.3,
+ lapack-comfort-array ==0.0.1,
+ lapack-ffi ==0.0.3,
+ lapack-ffi-tools ==0.1.3,
+ lapack-hmatrix ==0.0.0.1,
+ largeword ==1.2.5,
+ latex ==0.1.0.4,
+ lattices ==2.0.3,
+ lawful ==0.1.0.0,
+ lazy-csv ==0.5.1,
+ lazyio ==0.1.0.4,
+ lazysmallcheck ==0.6,
+ lca ==0.4,
+ leancheck ==0.9.10,
+ leancheck-instances ==0.0.4,
+ leapseconds-announced ==2017.1.0.1,
+ learn-physics ==0.6.5,
+ lens ==5.0.1,
+ lens-action ==0.2.6,
+ lens-aeson ==1.1.3,
+ lens-csv ==0.1.1.0,
+ lens-family ==2.1.2,
+ lens-family-core ==2.1.2,
+ lens-family-th ==0.5.2.1,
+ lens-misc ==0.0.2.0,
+ lens-process ==0.4.0.0,
+ lens-properties ==4.11.1,
+ lens-regex ==0.1.3,
+ lens-regex-pcre ==1.1.0.0,
+ lentil ==1.5.4.0,
+ LetsBeRational ==1.0.0.0,
+ leveldb-haskell ==0.6.5,
+ lexer-applicative ==2.1.0.2,
+ libBF ==0.6.4,
+ libffi ==0.1,
+ libgit ==0.3.1,
+ libgraph ==1.14,
+ libmpd ==0.10.0.0,
+ liboath-hs ==0.0.1.2,
+ libyaml ==0.1.2,
+ LibZip ==1.0.1,
+ lifted-async ==0.10.2.3,
+ lifted-base ==0.2.3.12,
+ lift-generics ==0.2.1,
+ lift-type ==0.1.0.1,
+ line ==4.0.1,
+ linear ==1.21.10,
+ linear-base ==0.1.0,
+ linear-circuit ==0.1.0.4,
+ linebreak ==1.1.0.1,
+ linenoise ==0.3.2,
+ linux-capabilities ==0.1.1.0,
+ linux-file-extents ==0.2.0.0,
+ linux-namespaces ==0.1.3.0,
+ List ==0.6.2,
+ ListLike ==4.7.7,
+ list-predicate ==0.1.0.1,
+ listsafe ==0.1.0.1,
+ list-singleton ==2.0.0.0,
+ list-t ==1.0.5.3,
+ list-transformer ==1.0.8,
+ ListTree ==0.2.3,
+ ListZipper ==1.2.0.2,
+ literatex ==0.2.0.2,
+ little-rio ==0.2.2,
+ llvm-hs-pure ==9.0.0,
+ lmdb ==0.2.5,
+ load-env ==0.2.1.0,
+ loc ==0.1.3.16,
+ locators ==0.3.0.3,
+ loch-th ==0.2.2,
+ lockfree-queue ==0.2.3.1,
+ log-domain ==0.13.2,
+ logfloat ==0.13.4,
+ logging ==3.0.5,
+ logging-facade ==0.3.1,
+ logging-facade-syslog ==1,
+ logict ==0.7.1.0,
+ logstash ==0.1.0.3,
+ loop ==0.3.0,
+ lpeg ==1.0.3,
+ lrucache ==1.2.0.1,
+ lrucaching ==0.3.3,
+ lsp ==1.4.0.0,
+ lsp-test ==0.14.0.2,
+ lsp-types ==1.4.0.1,
+ lua ==2.1.0,
+ lua-arbitrary ==1.0.1,
+ lucid ==2.11.1,
+ lucid-cdn ==0.2.2.0,
+ lucid-extras ==0.2.2,
+ lukko ==0.1.1.3,
+ lxd-client-config ==0.1.0.1,
+ lz4 ==0.2.3.1,
+ lz4-frame-conduit ==0.1.0.1,
+ lzma ==0.0.0.3,
+ lzma-clib ==5.2.2,
+ lzma-conduit ==1.2.3,
+ machines ==0.7.3,
+ magic ==1.1,
+ magico ==0.0.2.3,
+ mainland-pretty ==0.7.1,
+ main-tester ==0.2.0.1,
+ managed ==1.0.9,
+ mandrill ==0.5.6.0,
+ markdown ==0.1.17.5,
+ markdown-unlit ==0.5.1,
+ markov-chain ==0.0.3.4,
+ massiv ==1.0.2.0,
+ massiv-io ==1.0.0.1,
+ massiv-persist ==1.0.0.3,
+ massiv-serialise ==1.0.0.2,
+ massiv-test ==1.0.0.0,
+ mathexpr ==0.3.1.0,
+ math-extras ==0.1.1.0,
+ math-functions ==0.3.4.2,
+ matplotlib ==0.7.7,
+ matrices ==0.5.0,
+ matrix ==0.3.6.1,
+ matrix-as-xyz ==0.1.2.2,
+ matrix-market-attoparsec ==0.1.1.3,
+ matrix-static ==0.3,
+ maximal-cliques ==0.1.1,
+ mbox ==0.3.4,
+ mbox-utility ==0.0.3.1,
+ mbtiles ==0.6.0.0,
+ mcmc ==0.6.2.2,
+ mcmc-types ==1.0.3,
+ median-stream ==0.7.0.0,
+ med-module ==0.1.2.2,
+ megaparsec ==9.2.1,
+ megaparsec-tests ==9.2.1,
+ mega-sdist ==0.4.2.1,
+ memory ==0.16.0,
+ MemoTrie ==0.6.10,
+ mercury-api ==0.1.0.2,
+ mergeless ==0.3.0.0,
+ mersenne-random ==1.0.0.1,
+ mersenne-random-pure64 ==0.2.2.0,
+ messagepack ==0.5.5,
+ metrics ==0.4.1.1,
+ mfsolve ==0.3.2.1,
+ microaeson ==0.1.0.1,
+ microlens ==0.4.12.0,
+ microlens-aeson ==2.4.1,
+ microlens-contra ==0.1.0.2,
+ microlens-ghc ==0.4.13.2,
+ microlens-mtl ==0.2.0.2,
+ microlens-platform ==0.4.2.1,
+ microlens-process ==0.2.0.2,
+ microlens-th ==0.4.3.10,
+ microspec ==0.2.1.3,
+ microstache ==1.0.2.2,
+ midair ==0.2.0.1,
+ midi ==0.2.2.3,
+ midi-alsa ==0.2.1,
+ mighty-metropolis ==2.0.0,
+ mime-mail ==0.5.1,
+ mime-mail-ses ==0.4.3,
+ mime-types ==0.1.0.9,
+ minimal-configuration ==0.1.4,
+ minimorph ==0.3.0.1,
+ minio-hs ==1.6.0,
+ miniutter ==0.5.1.2,
+ min-max-pqueue ==0.1.0.2,
+ mintty ==0.1.4,
+ missing-foreign ==0.1.1,
+ MissingH ==1.5.0.1,
+ mixed-types-num ==0.5.10,
+ mmap ==0.5.9,
+ mmark ==0.0.7.6,
+ mmark-cli ==0.0.5.1,
+ mmark-ext ==0.2.1.5,
+ mmorph ==1.1.5,
+ mnist-idx ==0.1.3.1,
+ mnist-idx-conduit ==0.4.0.0,
+ mockery ==0.3.5,
+ mock-time ==0.1.0,
+ mod ==0.1.2.2,
+ model ==0.5,
+ modern-uri ==0.3.4.4,
+ modular ==0.1.0.8,
+ monad-chronicle ==1.0.1,
+ monad-control ==1.0.3.1,
+ monad-control-aligned ==0.0.1.1,
+ monad-coroutine ==0.9.2,
+ monad-extras ==0.6.0,
+ monadic-arrays ==0.2.2,
+ monad-journal ==0.8.1,
+ monadlist ==0.0.2,
+ monad-logger ==0.3.36,
+ monad-logger-json ==0.1.0.0,
+ monad-logger-logstash ==0.2.0.2,
+ monad-logger-prefix ==0.1.12,
+ monad-loops ==0.4.3,
+ monad-memo ==0.5.4,
+ monadoid ==0.0.3,
+ monad-par ==0.3.5,
+ monad-parallel ==0.7.2.5,
+ monad-par-extras ==0.3.3,
+ monad-peel ==0.2.1.2,
+ monad-primitive ==0.1,
+ monad-products ==4.0.1,
+ MonadPrompt ==1.0.0.5,
+ MonadRandom ==0.5.3,
+ monad-resumption ==0.1.4.0,
+ monad-skeleton ==0.2,
+ monad-st ==0.2.4.1,
+ monads-tf ==0.1.0.3,
+ monad-time ==0.3.1.0,
+ mongoDB ==2.7.1.1,
+ monoidal-containers ==0.6.2.0,
+ monoid-extras ==0.6.1,
+ monoid-subclasses ==1.1.3,
+ monoid-transformer ==0.0.4,
+ monomer ==1.3.0.0,
+ mono-traversable ==1.0.15.3,
+ mono-traversable-instances ==0.1.1.0,
+ mono-traversable-keys ==0.2.0,
+ more-containers ==0.2.2.2,
+ morpheus-graphql-tests ==0.18.0,
+ moss ==0.2.0.1,
+ mountpoints ==1.0.2,
+ mpi-hs ==0.7.2.0,
+ mpi-hs-binary ==0.1.1.0,
+ mpi-hs-cereal ==0.1.0.0,
+ mtl installed,
+ mtl-compat ==0.2.2,
+ mtl-prelude ==2.0.3.1,
+ multiarg ==0.30.0.10,
+ multi-containers ==0.2,
+ multimap ==1.2.1,
+ multipart ==0.2.1,
+ multiset ==0.3.4.3,
+ multistate ==0.8.0.4,
+ murmur3 ==1.0.5,
+ murmur-hash ==0.1.0.10,
+ MusicBrainz ==0.4.1,
+ mutable-containers ==0.3.4,
+ mwc-probability ==2.3.1,
+ mwc-random ==0.15.0.2,
+ mwc-random-monad ==0.7.3.1,
+ mx-state-codes ==1.0.0.0,
+ mysql ==0.2.1,
+ mysql-simple ==0.4.8.1,
+ n2o ==0.11.1,
+ n2o-nitro ==0.11.2,
+ nagios-check ==0.3.2,
+ named ==0.3.0.1,
+ names-th ==0.3.0.1,
+ nano-erl ==0.1.0.1,
+ NanoID ==3.2.1,
+ nanospec ==0.2.2,
+ nanovg ==0.8.1.0,
+ nats ==1.1.2,
+ natural-arithmetic ==0.1.3.0,
+ natural-induction ==0.2.0.0,
+ natural-sort ==0.1.2,
+ natural-transformation ==0.4,
+ ndjson-conduit ==0.1.0.5,
+ neat-interpolation ==0.5.1.3,
+ netcode-io ==0.0.3,
+ netlib-carray ==0.1,
+ netlib-comfort-array ==0.0.0.2,
+ netlib-ffi ==0.1.1,
+ netpbm ==1.0.4,
+ netrc ==0.2.0.0,
+ nettle ==0.3.0,
+ netwire ==5.0.3,
+ netwire-input ==0.0.7,
+ netwire-input-glfw ==0.0.11,
+ network ==3.1.2.7,
+ network-bsd ==2.8.1.0,
+ network-byte-order ==0.1.6,
+ network-conduit-tls ==1.3.2,
+ network-info ==0.2.1,
+ network-ip ==0.3.0.3,
+ network-messagepack-rpc ==0.1.2.0,
+ network-messagepack-rpc-websocket ==0.1.1.1,
+ network-run ==0.2.4,
+ network-simple ==0.4.5,
+ network-simple-tls ==0.4,
+ network-transport ==0.5.4,
+ network-transport-composed ==0.2.1,
+ network-transport-tcp ==0.8.0,
+ network-transport-tests ==0.3.0,
+ network-uri ==2.6.4.1,
+ network-wait ==0.1.2.0,
+ newtype ==0.2.2.0,
+ newtype-generics ==0.6.2,
+ nfc ==0.1.1,
+ nicify-lib ==1.0.1,
+ NineP ==0.0.2.1,
+ nix-derivation ==1.1.2,
+ nix-paths ==1.0.1,
+ NoHoed ==0.1.1,
+ nonce ==1.0.7,
+ nondeterminism ==1.4,
+ non-empty ==0.3.3,
+ nonempty-containers ==0.3.4.4,
+ nonemptymap ==0.0.6.0,
+ non-empty-sequence ==0.2.0.4,
+ nonempty-vector ==0.2.1.0,
+ nonempty-zipper ==1.0.0.4,
+ non-negative ==0.1.2,
+ normalization-insensitive ==2.0.2,
+ not-gloss ==0.7.7.0,
+ no-value ==1.0.0.0,
+ nowdoc ==0.1.1.0,
+ nqe ==0.6.4,
+ nsis ==0.3.3,
+ numbers ==3000.2.0.2,
+ numeric-extras ==0.1,
+ numeric-limits ==0.1.0.0,
+ numeric-prelude ==0.4.4,
+ numeric-quest ==0.2.0.2,
+ numhask ==0.10.1.0,
+ numhask-array ==0.10.1,
+ numhask-space ==0.10.0.0,
+ NumInstances ==1.4,
+ numtype-dk ==0.5.0.3,
+ nuxeo ==0.3.2,
+ nvim-hs ==2.2.0.2,
+ ObjectName ==1.1.0.2,
+ ochintin-daicho ==0.3.4.2,
+ o-clock ==1.2.1.1,
+ oeis ==0.3.10,
+ ofx ==0.4.4.0,
+ old-locale ==1.0.0.7,
+ old-time ==1.1.0.3,
+ once ==0.4,
+ one-liner ==2.0,
+ one-liner-instances ==0.1.3.0,
+ OneTuple ==0.3.1,
+ Only ==0.1,
+ oo-prototypes ==0.1.0.0,
+ opaleye ==0.9.3.2,
+ OpenAL ==1.7.0.5,
+ openapi3 ==3.2.2,
+ open-browser ==0.2.1.0,
+ openexr-write ==0.1.0.2,
+ OpenGL ==3.0.3.0,
+ OpenGLRaw ==3.3.4.1,
+ openpgp-asciiarmor ==0.1.2,
+ opensource ==0.1.1.0,
+ openssl-streams ==1.2.3.0,
+ opentelemetry ==0.7.0,
+ opentelemetry-extra ==0.7.0,
+ opentelemetry-lightstep ==0.7.0,
+ opentelemetry-wai ==0.7.0,
+ operational ==0.2.4.1,
+ operational-class ==0.3.0.0,
+ opml-conduit ==0.9.0.0,
+ optics ==0.4.2,
+ optics-core ==0.4.1,
+ optics-extra ==0.4.2.1,
+ optics-th ==0.4.1,
+ optics-vl ==0.2.1,
+ optima ==0.4.0.3,
+ optional-args ==1.0.2,
+ options ==1.2.1.1,
+ optparse-applicative ==0.16.1.0,
+ optparse-enum ==1.0.0.0,
+ optparse-generic ==1.4.7,
+ optparse-simple ==0.1.1.4,
+ optparse-text ==0.1.1.0,
+ OrderedBits ==0.0.2.0,
+ ordered-containers ==0.2.2,
+ ormolu ==0.3.1.0,
+ overhang ==1.0.0,
+ packcheck ==0.6.0,
+ pager ==0.1.1.0,
+ pagination ==0.2.2,
+ pagure ==0.1.1,
+ pagure-cli ==0.2.1,
+ palette ==0.3.0.2,
+ pandoc ==2.17.1.1,
+ pandoc-csv2table ==1.0.9,
+ pandoc-dhall-decoder ==0.1.0.1,
+ pandoc-lua-marshal ==0.1.7,
+ pandoc-plot ==1.4.1,
+ pandoc-throw ==0.1.0.0,
+ pandoc-types ==1.22.2.1,
+ pantry ==0.5.6,
+ parallel ==3.2.2.0,
+ parallel-io ==0.3.5,
+ parameterized ==0.5.0.0,
+ parseargs ==0.2.0.9,
+ parsec installed,
+ parsec-class ==1.0.0.0,
+ parsec-numbers ==0.1.0,
+ parsec-numeric ==0.1.0.0,
+ ParsecTools ==0.0.2.0,
+ parser-combinators ==1.3.0,
+ parser-combinators-tests ==1.3.0,
+ parsers ==0.12.11,
+ partial-handler ==1.0.3,
+ partial-isomorphisms ==0.2.3.0,
+ partial-order ==0.2.0.0,
+ partial-semigroup ==0.5.1.14,
+ password ==3.0.1.0,
+ password-instances ==3.0.0.0,
+ password-types ==1.0.0.0,
+ path ==0.9.2,
+ path-binary-instance ==0.1.0.1,
+ path-dhall-instance ==0.2.1.0,
+ path-extensions ==0.1.1.0,
+ path-extra ==0.2.0,
+ path-formatting ==0.1.0.0,
+ path-io ==1.7.0,
+ path-like ==0.2.0.2,
+ path-pieces ==0.2.1,
+ pathtype ==0.8.1.1,
+ path-utils ==0.1.1.0,
+ pathwalk ==0.3.1.2,
+ pattern-arrows ==0.0.2,
+ pava ==0.1.1.4,
+ pcg-random ==0.1.3.7,
+ pcre2 ==2.1.1.1,
+ pcre-heavy ==1.0.0.2,
+ pcre-light ==0.4.1.0,
+ pcre-utils ==0.1.8.2,
+ pdc ==0.1.1,
+ pdfinfo ==1.5.4,
+ pdf-toolbox-content ==0.1.1,
+ pdf-toolbox-core ==0.1.1,
+ pdf-toolbox-document ==0.1.2,
+ peano ==0.1.0.1,
+ pem ==0.2.4,
+ percent-format ==0.0.2,
+ peregrin ==0.3.3,
+ perf ==0.9.0,
+ perfect-hash-generator ==0.2.0.6,
+ persist ==0.1.1.5,
+ persistent ==2.13.3.5,
+ persistent-discover ==0.1.0.5,
+ persistent-documentation ==0.1.0.4,
+ persistent-mongoDB ==2.13.0.1,
+ persistent-mtl ==0.4.0.0,
+ persistent-mysql ==2.13.1.3,
+ persistent-pagination ==0.1.1.2,
+ persistent-postgresql ==2.13.5.0,
+ persistent-qq ==2.12.0.2,
+ persistent-redis ==2.13.0.1,
+ persistent-refs ==0.4,
+ persistent-sqlite ==2.13.1.0,
+ persistent-template ==2.12.0.0,
+ persistent-test ==2.13.1.2,
+ pg-harness-client ==0.6.0,
+ pgp-wordlist ==0.1.0.3,
+ pg-transact ==0.3.2.0,
+ phantom-state ==0.2.1.2,
+ phatsort ==0.5.0.1,
+ picosat ==0.1.6,
+ pid1 ==0.1.3.0,
+ pinch ==0.4.1.2,
+ pipes ==4.3.16,
+ pipes-attoparsec ==0.5.1.5,
+ pipes-bytestring ==2.1.7,
+ pipes-concurrency ==2.0.14,
+ pipes-csv ==1.4.3,
+ pipes-extras ==1.0.15,
+ pipes-fastx ==0.3.0.0,
+ pipes-fluid ==0.6.0.1,
+ pipes-group ==1.0.12,
+ pipes-http ==1.0.6,
+ pipes-mongodb ==0.1.0.0,
+ pipes-ordered-zip ==1.2.1,
+ pipes-parse ==3.0.9,
+ pipes-random ==1.0.0.5,
+ pipes-safe ==2.3.4,
+ pipes-wai ==3.2.0,
+ pkgtreediff ==0.5.0,
+ place-cursor-at ==1.0.1,
+ placeholders ==0.1,
+ plaid ==0.1.0.4,
+ plotlyhs ==0.2.1,
+ pointed ==5.0.4,
+ pointedlist ==0.6.1,
+ pointless-fun ==1.1.0.8,
+ poll ==0.0.0.2,
+ poly ==0.5.0.0,
+ poly-arity ==0.1.0,
+ polynomials-bernstein ==1.1.2,
+ polyparse ==1.13,
+ polysemy ==1.6.0.0,
+ polysemy-extra ==0.2.0.0,
+ polysemy-fs ==0.1.0.0,
+ polysemy-fskvstore ==0.1.1.0,
+ polysemy-kvstore ==0.1.3.0,
+ polysemy-methodology ==0.2.1.0,
+ polysemy-path ==0.2.1.0,
+ polysemy-plugin ==0.4.1.1,
+ polysemy-several ==0.1.0.0,
+ polysemy-socket ==0.0.2.0,
+ polysemy-uncontrolled ==0.1.1.0,
+ polysemy-video ==0.2.0.1,
+ polysemy-vinyl ==0.1.5.0,
+ polysemy-webserver ==0.2.1.1,
+ pooled-io ==0.0.2.2,
+ port-utils ==0.2.1.0,
+ posix-paths ==0.3.0.0,
+ possibly ==1.0.0.0,
+ postgres-options ==0.2.0.0,
+ postgresql-binary ==0.12.4.4,
+ postgresql-libpq ==0.9.4.3,
+ postgresql-libpq-notify ==0.2.0.0,
+ postgresql-migration ==0.2.1.3,
+ postgresql-orm ==0.5.1,
+ postgresql-query ==3.9.0,
+ postgresql-schema ==0.1.14,
+ postgresql-simple ==0.6.4,
+ postgresql-simple-url ==0.2.1.0,
+ postgresql-syntax ==0.4.1,
+ postgresql-typed ==0.6.2.1,
+ post-mess-age ==0.2.1.0,
+ pptable ==0.3.0.0,
+ pqueue ==1.4.2.0,
+ prefix-units ==0.2.0,
+ prelude-compat ==0.0.0.2,
+ prelude-safeenum ==0.1.1.3,
+ pretty installed,
+ prettyclass ==1.0.0.0,
+ pretty-class ==1.0.1.1,
+ pretty-diff ==0.4.0.3,
+ pretty-hex ==1.1,
+ prettyprinter ==1.7.1,
+ prettyprinter-ansi-terminal ==1.1.3,
+ prettyprinter-compat-annotated-wl-pprint ==1.1,
+ prettyprinter-compat-ansi-wl-pprint ==1.0.2,
+ prettyprinter-compat-wl-pprint ==1.0.1,
+ prettyprinter-convert-ansi-wl-pprint ==1.1.2,
+ pretty-relative-time ==0.3.0.0,
+ pretty-show ==1.10,
+ pretty-simple ==4.0.0.0,
+ pretty-sop ==0.2.0.3,
+ pretty-terminal ==0.1.0.0,
+ pretty-types ==0.4.0.0,
+ primes ==0.2.1.0,
+ primitive ==0.7.3.0,
+ primitive-addr ==0.1.0.2,
+ PrimitiveArray ==0.10.1.1,
+ primitive-extras ==0.10.1.5,
+ primitive-offset ==0.2.0.0,
+ primitive-unaligned ==0.1.1.1,
+ primitive-unlifted ==0.1.3.1,
+ prim-uniq ==0.2,
+ print-console-colors ==0.1.0.0,
+ probability ==0.2.7,
+ process installed,
+ process-extras ==0.7.4,
+ product-profunctors ==0.11.0.3,
+ profiterole ==0.1,
+ profunctors ==5.6.2,
+ projectroot ==0.2.0.1,
+ project-template ==0.2.1.0,
+ prometheus ==2.2.3,
+ prometheus-client ==1.1.0,
+ prometheus-metrics-ghc ==1.0.1.2,
+ prometheus-wai-middleware ==1.0.1.0,
+ promises ==0.3,
+ prompt ==0.1.1.2,
+ prospect ==0.1.0.0,
+ protobuf ==0.2.1.3,
+ protobuf-simple ==0.1.1.1,
+ protocol-buffers ==2.4.17,
+ protocol-buffers-descriptor ==2.4.17,
+ protocol-radius ==0.0.1.1,
+ protocol-radius-test ==0.1.0.1,
+ proto-lens ==0.7.1.1,
+ proto-lens-arbitrary ==0.1.2.11,
+ proto-lens-optparse ==0.1.1.9,
+ proto-lens-protobuf-types ==0.7.1.2,
+ proto-lens-protoc ==0.7.1.1,
+ proto-lens-runtime ==0.7.0.2,
+ proto-lens-setup ==0.4.0.6,
+ protolude ==0.3.2,
+ proxied ==0.3.1,
+ psql-helpers ==0.1.0.0,
+ psqueues ==0.2.7.3,
+ pthread ==0.2.1,
+ ptr-poker ==0.1.2.8,
+ pulse-simple ==0.1.14,
+ pureMD5 ==2.1.4,
+ purescript-bridge ==0.14.0.0,
+ pusher-http-haskell ==2.1.0.11,
+ pvar ==1.0.0.0,
+ PyF ==0.10.2.0,
+ qchas ==1.1.0.1,
+ qm-interpolated-string ==0.3.1.0,
+ qrcode-core ==0.9.5,
+ qrcode-juicypixels ==0.8.3,
+ quadratic-irrational ==0.1.1,
+ QuasiText ==0.1.2.6,
+ queue-sheet ==0.7.0.2,
+ quickbench ==1.0.1,
+ QuickCheck ==2.14.2,
+ quickcheck-arbitrary-adt ==0.3.1.0,
+ quickcheck-assertions ==0.3.0,
+ quickcheck-classes ==0.6.5.0,
+ quickcheck-classes-base ==0.6.2.0,
+ quickcheck-higherorder ==0.1.0.1,
+ quickcheck-instances ==0.3.28,
+ quickcheck-io ==0.2.0,
+ quickcheck-simple ==0.1.1.1,
+ quickcheck-special ==0.1.0.6,
+ quickcheck-text ==0.1.2.1,
+ quickcheck-transformer ==0.3.1.1,
+ quickcheck-unicode ==1.0.1.0,
+ quicklz ==1.5.0.11,
+ quiet ==0.2,
+ quote-quot ==0.2.1.0,
+ radius ==0.7.1.0,
+ rainbow ==0.34.2.2,
+ rainbox ==0.26.0.0,
+ ral ==0.2.1,
+ rampart ==2.0.0.2,
+ ramus ==0.1.2,
+ rando ==0.0.0.4,
+ random ==1.2.1.1,
+ random-bytestring ==0.1.4,
+ random-fu ==0.3.0.0,
+ random-shuffle ==0.0.4,
+ random-source ==0.3.0.11,
+ random-tree ==0.6.0.5,
+ range ==0.3.0.2,
+ Ranged-sets ==0.4.0,
+ range-set-list ==0.1.3.1,
+ rank1dynamic ==0.4.1,
+ rank2classes ==1.4.4,
+ Rasterific ==0.7.5.4,
+ rasterific-svg ==0.3.3.2,
+ ratel ==2.0.0.3,
+ rate-limit ==1.4.2,
+ ratel-wai ==2.0.0.0,
+ rattle ==0.2,
+ rattletrap ==11.2.4,
+ Rattus ==0.5.0.1,
+ rawfilepath ==1.0.1,
+ rawstring-qm ==0.2.3.0,
+ raw-strings-qq ==1.1,
+ rcu ==0.2.6,
+ rdtsc ==1.3.0.1,
+ re2 ==0.3,
+ readable ==0.3.1,
+ read-editor ==0.1.0.2,
+ read-env-var ==1.0.0.0,
+ reanimate-svg ==0.13.0.1,
+ rebase ==1.15.0.3,
+ record-dot-preprocessor ==0.2.15,
+ record-hasfield ==1.0,
+ records-sop ==0.1.1.0,
+ record-wrangler ==0.1.1.0,
+ rec-smallarray ==0.1.0.0,
+ recursion-schemes ==5.2.2.2,
+ redact ==0.4.0.0,
+ reddit-scrape ==0.0.1,
+ redis-io ==1.1.0,
+ redis-resp ==1.0.0,
+ reducers ==3.12.4,
+ refact ==0.3.0.2,
+ ref-fd ==0.5,
+ refined ==0.6.3,
+ reflection ==2.1.6,
+ reform ==0.2.7.5,
+ reform-blaze ==0.2.4.4,
+ reform-hamlet ==0.0.5.3,
+ reform-happstack ==0.2.5.5,
+ RefSerialize ==0.4.0,
+ ref-tf ==0.5.0.1,
+ regex ==1.1.0.2,
+ regex-applicative ==0.3.4,
+ regex-applicative-text ==0.1.0.1,
+ regex-base ==0.94.0.2,
+ regex-compat ==0.95.2.1,
+ regex-pcre ==0.95.0.0,
+ regex-pcre-builtin ==0.95.2.3.8.44,
+ regex-posix ==0.96.0.1,
+ regex-posix-clib ==2.7,
+ regex-tdfa ==1.3.2,
+ regex-with-pcre ==1.1.0.2,
+ reinterpret-cast ==0.1.0,
+ rel8 ==1.3.1.0,
+ reliable-io ==0.0.2,
+ relude ==1.0.0.1,
+ renderable ==0.2.0.1,
+ reorder-expression ==0.1.0.0,
+ repa ==3.4.1.5,
+ repa-io ==3.4.1.2,
+ replace-attoparsec ==1.4.5.0,
+ replace-megaparsec ==1.4.5.0,
+ repline ==0.4.2.0,
+ req ==3.10.0,
+ req-conduit ==1.0.1,
+ require ==0.4.11,
+ rerebase ==1.15.0.3,
+ reroute ==0.6.0.0,
+ rescue ==0.4.2.1,
+ resistor-cube ==0.0.1.4,
+ resolv ==0.1.2.0,
+ resource-pool ==0.2.3.2,
+ resourcet ==1.2.6,
+ result ==0.2.6.0,
+ retry ==0.9.3.0,
+ rev-state ==0.1.2,
+ rfc1751 ==0.1.3,
+ rfc5051 ==0.2,
+ rg ==1.4.0.0,
+ rhbzquery ==0.4.4,
+ riak-protobuf ==0.25.0.0,
+ rio ==0.1.22.0,
+ rio-orphans ==0.1.2.0,
+ rio-prettyprint ==0.1.1.0,
+ rng-utils ==0.3.1,
+ roc-id ==0.1.0.0,
+ rocksdb-haskell ==1.0.1,
+ rocksdb-haskell-jprupp ==2.1.4,
+ rocksdb-query ==0.4.2,
+ roles ==0.2.1.0,
+ rollbar ==1.1.3,
+ rope-utf16-splay ==0.3.2.0,
+ rosezipper ==0.2,
+ rot13 ==0.2.0.1,
+ rpmbuild-order ==0.4.8,
+ rpm-nvr ==0.1.2,
+ rp-tree ==0.7.1,
+ RSA ==2.4.1,
+ rss-conduit ==0.6.0.1,
+ runmemo ==1.0.0.1,
+ rvar ==0.3.0.1,
+ s3-signer ==0.5.0.0,
+ safe ==0.3.19,
+ safe-coloured-text ==0.1.0.0,
+ safe-coloured-text-terminfo ==0.0.0.0,
+ safecopy ==0.10.4.2,
+ safe-decimal ==0.2.1.0,
+ safe-exceptions ==0.1.7.3,
+ safe-exceptions-checked ==0.1.0,
+ safe-foldable ==0.1.0.0,
+ safeio ==0.0.5.0,
+ safe-json ==1.1.3.1,
+ safe-money ==0.9.1,
+ SafeSemaphore ==0.10.1,
+ salak ==0.3.6,
+ salak-yaml ==0.3.5.3,
+ saltine ==0.1.1.1,
+ salve ==2.0.0.0,
+ sample-frame ==0.0.3,
+ sample-frame-np ==0.0.4.1,
+ sampling ==0.3.5,
+ sandwich ==0.1.0.10,
+ sandwich-quickcheck ==0.1.0.6,
+ sandwich-slack ==0.1.0.6,
+ say ==0.1.0.1,
+ sbp ==4.1.6,
+ sbv ==8.17,
+ scalpel ==0.6.2,
+ scalpel-core ==0.6.2,
+ scanf ==0.1.0.0,
+ scanner ==0.3.1,
+ scheduler ==2.0.0.1,
+ SciBaseTypes ==0.1.1.0,
+ scientific ==0.3.7.0,
+ scotty ==0.12,
+ scrypt ==0.5.0,
+ sdl2 ==2.5.3.0,
+ sdl2-ttf ==2.1.3,
+ search-algorithms ==0.3.2,
+ secp256k1-haskell ==0.6.1,
+ securemem ==0.1.10,
+ selda ==0.5.1.0,
+ selda-sqlite ==0.1.7.1,
+ selections ==0.3.0.0,
+ selective ==0.5,
+ semialign ==1.2.0.1,
+ semialign-indexed ==1.2,
+ semialign-optics ==1.2,
+ semigroupoid-extras ==5,
+ semigroupoids ==5.3.7,
+ semigroups ==0.19.2,
+ semirings ==0.6,
+ semiring-simple ==1.0.0.1,
+ semver ==0.4.0.1,
+ sendfile ==0.7.11.4,
+ seqalign ==0.2.0.4,
+ seqid ==0.6.2,
+ seqid-streams ==0.7.2,
+ sequence-formats ==1.6.6.1,
+ sequenceTools ==1.5.2,
+ serf ==0.1.1.0,
+ serialise ==0.2.5.0,
+ servant ==0.19,
+ servant-auth ==0.4.1.0,
+ servant-auth-client ==0.4.1.0,
+ servant-auth-docs ==0.2.10.0,
+ servant-auth-server ==0.4.7.0,
+ servant-auth-swagger ==0.2.10.1,
+ servant-auth-wordpress ==1.0.0.2,
+ servant-blaze ==0.9.1,
+ servant-checked-exceptions ==2.2.0.1,
+ servant-checked-exceptions-core ==2.2.0.1,
+ servant-client ==0.19,
+ servant-client-core ==0.19,
+ servant-conduit ==0.15.1,
+ servant-docs ==0.12,
+ servant-elm ==0.7.2,
+ servant-exceptions ==0.2.1,
+ servant-exceptions-server ==0.2.1,
+ servant-foreign ==0.15.4,
+ servant-JuicyPixels ==0.3.1.0,
+ servant-lucid ==0.9.0.5,
+ servant-machines ==0.15.1,
+ servant-multipart ==0.12.1,
+ servant-multipart-api ==0.12.1,
+ servant-multipart-client ==0.12.1,
+ servant-openapi3 ==2.0.1.5,
+ servant-pipes ==0.15.3,
+ servant-rawm ==1.0.0.0,
+ servant-ruby ==0.9.0.0,
+ servant-server ==0.19.1,
+ servant-static-th ==1.0.0.0,
+ servant-subscriber ==0.7.0.0,
+ servant-swagger ==1.1.11,
+ servant-swagger-ui ==0.3.5.4.5.0,
+ servant-swagger-ui-core ==0.3.5,
+ servant-swagger-ui-redoc ==0.3.4.1.22.3,
+ servant-websockets ==2.0.0,
+ servant-xml ==1.0.1.4,
+ serversession ==1.0.3,
+ serversession-frontend-wai ==1.0.1,
+ servius ==1.2.3.0,
+ ses-html ==0.4.0.0,
+ set-cover ==0.1.1,
+ setenv ==0.1.1.3,
+ setlocale ==1.0.0.10,
+ set-monad ==0.3.0.0,
+ sets ==0.0.6.2,
+ sexp-grammar ==2.3.3.1,
+ sexpr-parser ==0.2.2.0,
+ SHA ==1.6.4.4,
+ shake ==0.19.6,
+ shake-language-c ==0.12.0,
+ shake-plus ==0.3.4.0,
+ shakespeare ==2.0.30,
+ shared-memory ==0.2.0.0,
+ ShellCheck ==0.8.0,
+ shell-conduit ==5.0.0,
+ shell-escape ==0.2.0,
+ shellmet ==0.0.4.1,
+ shelltestrunner ==1.9,
+ shell-utility ==0.1,
+ shelly ==1.10.0,
+ shikensu ==0.4.1,
+ should-not-typecheck ==2.1.0,
+ show-combinators ==0.2.0.0,
+ siggy-chardust ==1.0.0,
+ signal ==0.1.0.4,
+ silently ==1.2.5.2,
+ simple-affine-space ==0.1.1,
+ simple-cabal ==0.1.3,
+ simple-cmd ==0.2.7,
+ simple-cmd-args ==0.1.8,
+ simple-log ==0.9.12,
+ simple-media-timestamp ==0.2.0.0,
+ simple-media-timestamp-attoparsec ==0.1.0.0,
+ simple-media-timestamp-formatting ==0.1.1.0,
+ simple-reflect ==0.3.3,
+ simple-sendfile ==0.2.30,
+ simple-vec3 ==0.6.0.1,
+ since ==0.0.0,
+ singleton-bool ==0.1.6,
+ singleton-nats ==0.4.6,
+ singletons ==3.0.1,
+ singletons-base ==3.0,
+ singletons-presburger ==0.6.1.0,
+ singletons-th ==3.0,
+ siphash ==1.0.3,
+ Sit ==0.2022.3.18,
+ sitemap-gen ==0.1.0.0,
+ sized ==1.0.0.1,
+ skein ==1.0.9.4,
+ skews ==0.1.0.3,
+ skip-var ==0.1.1.0,
+ skylighting ==0.12.3.1,
+ skylighting-core ==0.12.3.1,
+ slack-progressbar ==0.1.0.1,
+ slave-thread ==1.1.0.1,
+ slist ==0.2.0.0,
+ slynx ==0.6.1.1,
+ smallcheck ==1.2.1,
+ smash ==0.1.3,
+ smash-microlens ==0.1.0.2,
+ smtp-mail ==0.3.0.0,
+ snap-blaze ==0.2.1.5,
+ snap-core ==1.0.5.0,
+ snappy ==0.2.0.2,
+ snowflake ==0.1.1.1,
+ soap ==0.2.3.6,
+ soap-openssl ==0.1.0.2,
+ soap-tls ==0.1.1.4,
+ socket ==0.8.3.0,
+ socks ==0.6.1,
+ solana-staking-csvs ==0.1.2.0,
+ some ==1.0.3,
+ some-dict-of ==0.1.0.2,
+ sop-core ==0.5.0.2,
+ sort ==1.0.0.0,
+ sorted-list ==0.2.1.0,
+ sound-collage ==0.2.1,
+ sourcemap ==0.1.7,
+ sox ==0.2.3.1,
+ soxlib ==0.0.3.1,
+ spacecookie ==1.0.0.1,
+ sparse-linear-algebra ==0.3.1,
+ spatial-math ==0.5.0.1,
+ special-values ==0.1.0.0,
+ speculate ==0.4.14,
+ speedy-slice ==0.3.2,
+ Spintax ==0.3.6,
+ splice ==0.6.1.1,
+ splint ==1.0.2.0,
+ split ==0.2.3.5,
+ splitmix ==0.1.0.4,
+ splitmix-distributions ==0.9.0.0,
+ split-record ==0.1.1.4,
+ Spock-api ==0.14.0.0,
+ spoon ==0.3.1,
+ spreadsheet ==0.1.3.8,
+ sqlcli ==0.2.2.0,
+ sqlcli-odbc ==0.2.0.1,
+ sqlite-simple ==0.4.18.2,
+ sql-words ==0.1.6.4,
+ squeather ==0.8.0.0,
+ srcloc ==0.6.0.1,
+ srt ==0.1.1.0,
+ srt-attoparsec ==0.1.0.0,
+ srt-dhall ==0.1.0.0,
+ srt-formatting ==0.1.0.0,
+ stache ==2.3.3,
+ stack-all ==0.4.0.1,
+ stack-clean-old ==0.4.6,
+ stackcollapse-ghc ==0.0.1.4,
+ stack-templatizer ==0.1.0.2,
+ state-codes ==0.1.3,
+ stateref ==0.3,
+ StateVar ==1.2.2,
+ stateWriter ==0.3.0,
+ static-text ==0.2.0.7,
+ statistics ==0.16.1.0,
+ status-notifier-item ==0.3.1.0,
+ stb-image-redux ==0.2.1.2,
+ step-function ==0.2,
+ stitch ==0.6.0.0,
+ stm installed,
+ stm-chans ==3.0.0.6,
+ stm-conduit ==4.0.1,
+ stm-containers ==1.2,
+ stm-delay ==0.1.1.1,
+ stm-extras ==0.1.0.3,
+ stm-hamt ==1.2.0.8,
+ stm-lifted ==2.5.0.0,
+ STMonadTrans ==0.4.6,
+ stm-split ==0.0.2.1,
+ stm-supply ==0.2.0.0,
+ stopwatch ==0.1.0.6,
+ storable-complex ==0.2.3.0,
+ storable-endian ==0.2.6.1,
+ storable-record ==0.0.6,
+ storable-tuple ==0.0.3.3,
+ storablevector ==0.2.13.1,
+ store ==0.7.16,
+ store-core ==0.4.4.4,
+ store-streaming ==0.2.0.3,
+ Stream ==0.4.7.2,
+ streaming ==0.2.3.1,
+ streaming-attoparsec ==1.0.0.1,
+ streaming-bytestring ==0.2.3,
+ streaming-cassava ==0.2.0.0,
+ streaming-commons ==0.2.2.4,
+ streamly ==0.8.1.1,
+ streamly-bytestring ==0.1.4,
+ streams ==3.3,
+ streamt ==0.5.0.1,
+ strict ==0.4.0.1,
+ strict-concurrency ==0.2.4.3,
+ strict-list ==0.1.7,
+ strict-tuple ==0.1.5.1,
+ strict-tuple-lens ==0.2,
+ strict-wrapper ==0.0.0.0,
+ stringbuilder ==0.5.1,
+ string-class ==0.1.7.0,
+ string-combinators ==0.6.0.5,
+ string-conv ==0.2.0,
+ string-conversions ==0.4.0.1,
+ string-interpolate ==0.3.1.2,
+ string-qq ==0.0.4,
+ string-random ==0.1.4.2,
+ stringsearch ==0.3.6.6,
+ string-transform ==1.1.1,
+ stripe-concepts ==1.0.3.1,
+ stripe-scotty ==1.1.0.2,
+ stripe-signature ==1.0.0.14,
+ stripe-wreq ==1.0.1.14,
+ strive ==6.0.0.3,
+ strong-path ==1.1.4.0,
+ structs ==0.1.6,
+ structured ==0.1.1,
+ structured-cli ==2.7.0.1,
+ subcategories ==0.2.0.0,
+ sum-type-boilerplate ==0.1.1,
+ sundown ==0.6,
+ superbuffer ==0.3.1.2,
+ svg-builder ==0.1.1,
+ SVGFonts ==1.8.0.1,
+ svg-tree ==0.6.2.4,
+ swagger2 ==2.8.4,
+ swish ==0.10.2.0,
+ syb ==0.7.2.1,
+ sydtest-discover ==0.0.0.1,
+ symbol ==0.2.4,
+ symengine ==0.1.2.0,
+ symmetry-operations-symbols ==0.0.2.1,
+ synthesizer-alsa ==0.5.0.6,
+ synthesizer-core ==0.8.2.1,
+ synthesizer-dimensional ==0.8.1,
+ synthesizer-midi ==0.6.1.1,
+ sysinfo ==0.1.1,
+ system-argv0 ==0.1.1,
+ systemd ==2.3.0,
+ system-fileio ==0.3.16.4,
+ system-filepath ==0.4.14,
+ system-info ==0.5.2,
+ tabular ==0.2.2.8,
+ tagchup ==0.4.1.1,
+ tagged ==0.8.6.1,
+ tagged-binary ==0.2.0.1,
+ tagged-identity ==0.1.3,
+ tagged-transformer ==0.8.2,
+ tagshare ==0.0,
+ tagsoup ==0.14.8,
+ tagstream-conduit ==0.5.6,
+ tao ==1.0.0,
+ tao-example ==1.0.0,
+ tar ==0.5.1.1,
+ tar-conduit ==0.3.2,
+ tardis ==0.4.4.0,
+ tasty ==1.4.2.3,
+ tasty-ant-xml ==1.1.8,
+ tasty-bench ==0.3.2,
+ tasty-dejafu ==2.0.0.8,
+ tasty-discover ==4.2.4,
+ tasty-expected-failure ==0.12.3,
+ tasty-fail-fast ==0.0.3,
+ tasty-focus ==1.0.1,
+ tasty-golden ==2.3.5,
+ tasty-hedgehog ==1.1.0.0,
+ tasty-hslua ==1.0.2,
+ tasty-hspec ==1.2.0.1,
+ tasty-html ==0.4.1.4,
+ tasty-hunit ==0.10.0.3,
+ tasty-hunit-compat ==0.2.0.1,
+ tasty-inspection-testing ==0.1.0.1,
+ tasty-kat ==0.0.3,
+ tasty-leancheck ==0.0.2,
+ tasty-lua ==1.0.2,
+ tasty-program ==1.0.5,
+ tasty-quickcheck ==0.10.2,
+ tasty-rerun ==1.1.18,
+ tasty-silver ==3.3.1.1,
+ tasty-smallcheck ==0.8.2,
+ tasty-tap ==0.1.0,
+ tasty-test-reporter ==0.1.1.4,
+ tasty-th ==0.1.7,
+ tasty-wai ==0.1.2.0,
+ TCache ==0.12.1,
+ tce-conf ==1.3,
+ tcp-streams ==1.0.1.1,
+ tdigest ==0.2.1.1,
+ teardown ==0.5.0.1,
+ telegram-bot-simple ==0.4.5,
+ template-haskell installed,
+ template-haskell-compat-v0208 ==0.1.9,
+ temporary ==1.3,
+ temporary-rc ==1.2.0.3,
+ temporary-resourcet ==0.1.0.1,
+ tensorflow-test ==0.1.0.0,
+ tensors ==0.1.5,
+ termbox ==0.3.0,
+ terminal-progress-bar ==0.4.1,
+ terminal-size ==0.3.3,
+ terminfo installed,
+ termonad ==4.2.0.1,
+ test-framework ==0.8.2.0,
+ test-framework-hunit ==0.3.0.2,
+ test-framework-leancheck ==0.0.4,
+ test-framework-quickcheck2 ==0.3.0.5,
+ test-framework-smallcheck ==0.2,
+ test-fun ==0.1.0.0,
+ testing-type-modifiers ==0.1.0.1,
+ texmath ==0.12.4,
+ text installed,
+ text-ansi ==0.1.1,
+ text-binary ==0.2.1.1,
+ text-builder ==0.6.6.5,
+ text-builder-dev ==0.2.1,
+ text-conversions ==0.3.1.1,
+ text-icu ==0.7.1.0,
+ text-latin1 ==0.3.1,
+ text-ldap ==0.1.1.14,
+ textlocal ==0.1.0.5,
+ text-manipulate ==0.3.1.0,
+ text-metrics ==0.3.2,
+ text-postgresql ==0.0.3.1,
+ text-printer ==0.5.0.2,
+ text-regex-replace ==0.1.1.4,
+ text-rope ==0.1,
+ text-short ==0.1.5,
+ text-show ==3.9.7,
+ text-show-instances ==3.8.6,
+ text-zipper ==0.11,
+ tfp ==1.0.2,
+ tf-random ==0.5,
+ th-abstraction ==0.4.4.0,
+ th-bang-compat ==0.0.1.0,
+ th-compat ==0.1.4,
+ th-constraint-compat ==0.0.1.0,
+ th-desugar ==1.12,
+ th-env ==0.1.1,
+ these ==1.1.1.1,
+ these-lens ==1.0.1.2,
+ these-optics ==1.0.1.2,
+ these-skinny ==0.7.5,
+ th-expand-syns ==0.4.10.0,
+ th-extras ==0.0.0.6,
+ th-lego ==0.3.0.1,
+ th-lift ==0.8.2,
+ th-lift-instances ==0.1.19,
+ th-nowq ==0.1.0.5,
+ th-orphans ==0.13.13,
+ th-printf ==0.7,
+ thread-hierarchy ==0.3.0.2,
+ thread-local-storage ==0.2,
+ threads ==0.5.1.6,
+ thread-supervisor ==0.2.0.0,
+ th-reify-compat ==0.0.1.5,
+ th-reify-many ==0.1.10,
+ through-text ==0.1.0.0,
+ th-strict-compat ==0.1.0.1,
+ th-test-utils ==1.1.1,
+ th-utilities ==0.2.4.3,
+ tidal ==1.7.10,
+ tile ==0.3.0.0,
+ time installed,
+ time-compat ==1.9.6.1,
+ timeit ==2.0,
+ timelens ==0.2.0.2,
+ time-lens ==0.4.0.2,
+ time-locale-compat ==0.1.1.5,
+ time-locale-vietnamese ==1.0.0.0,
+ time-manager ==0.0.0,
+ time-parsers ==0.1.2.1,
+ timerep ==2.0.1.0,
+ timers-tick ==0.5.0.1,
+ timer-wheel ==0.3.0,
+ timespan ==0.4.0.0,
+ time-units ==1.0.0,
+ timezone-olson ==0.2.1,
+ timezone-olson-th ==0.1.0.11,
+ timezone-series ==0.1.13,
+ tinylog ==0.15.0,
+ titlecase ==1.0.1,
+ tldr ==0.9.2,
+ tls ==1.5.8,
+ tls-debug ==0.4.8,
+ tls-session-manager ==0.0.4,
+ tlynx ==0.6.1.1,
+ tmapchan ==0.0.3,
+ tmapmvar ==0.0.4,
+ tmp-postgres ==1.34.1.0,
+ tmp-proc ==0.5.1.2,
+ tophat ==1.0.5.1,
+ topograph ==1.0.0.1,
+ torsor ==0.1,
+ tostring ==0.2.1.1,
+ tracing ==0.0.7.3,
+ tracing-control ==0.0.7.3,
+ transaction ==0.1.1.3,
+ transformers installed,
+ transformers-base ==0.4.6,
+ transformers-bifunctors ==0.1,
+ transformers-compat ==0.6.6,
+ transformers-either ==0.1.2,
+ transformers-fix ==1.0,
+ transient ==0.7.0.0,
+ traverse-with-class ==1.0.1.1,
+ tree-diff ==0.2.1.1,
+ tree-fun ==0.8.1.0,
+ tree-view ==0.5.1,
+ trifecta ==2.1.2,
+ trimdent ==0.1.0.0,
+ triplesec ==0.2.2.1,
+ trivial-constraint ==0.7.0.0,
+ tsv2csv ==0.1.0.2,
+ ttc ==1.1.1.1,
+ ttl-hashtables ==1.4.1.0,
+ ttrie ==0.1.2.2,
+ tuple ==0.3.0.2,
+ tuples ==0.1.0.0,
+ tuples-homogenous-h98 ==0.1.1.0,
+ tuple-sop ==0.3.1.0,
+ tuple-th ==0.2.5,
+ turtle ==1.5.25,
+ twitter-conduit ==0.6.1,
+ twitter-types ==0.11.0,
+ twitter-types-lens ==0.11.0,
+ TypeCompose ==0.9.14,
+ typed-process ==0.2.10.1,
+ type-equality ==1,
+ type-errors ==0.2.0.0,
+ type-errors-pretty ==0.0.1.2,
+ type-fun ==0.1.3,
+ type-hint ==0.1,
+ type-level-integers ==0.0.1,
+ type-level-kv-list ==1.1.0,
+ type-level-natural-number ==2.0,
+ type-level-numbers ==0.1.1.2,
+ typelits-witnesses ==0.4.0.0,
+ type-map ==0.1.7.0,
+ type-natural ==1.1.0.1,
+ typenums ==0.1.4,
+ type-of-html ==1.6.2.0,
+ type-of-html-static ==0.1.0.2,
+ type-operators ==0.2.0.0,
+ type-spec ==0.4.0.0,
+ typography-geometry ==1.0.1.0,
+ tz ==0.1.3.6,
+ tzdata ==0.2.20220815.0,
+ ua-parser ==0.7.7.0,
+ uglymemo ==0.1.0.1,
+ unagi-chan ==0.4.1.4,
+ unbounded-delays ==0.1.1.1,
+ unbound-generics ==0.4.2,
+ unboxed-ref ==0.4.0.0,
+ unboxing-vector ==0.2.0.0,
+ uncaught-exception ==0.1.0,
+ unconstrained ==0.1.0.2,
+ unexceptionalio ==0.5.1,
+ unexceptionalio-trans ==0.5.1,
+ unicode ==0.0.1.1,
+ unicode-collation ==0.1.3.2,
+ unicode-data ==0.3.0,
+ unicode-show ==0.1.1.1,
+ unicode-transforms ==0.4.0.1,
+ unidecode ==0.1.0.4,
+ unification-fd ==0.11.2,
+ union ==0.1.2,
+ union-angle ==0.1.0.1,
+ union-find ==0.2,
+ unipatterns ==0.0.0.0,
+ uniplate ==1.6.13,
+ uniq-deep ==1.2.1,
+ unique ==0.0.1,
+ unique-logic ==0.4,
+ unique-logic-tf ==0.5.1,
+ unit-constraint ==0.0.0,
+ units-parser ==0.1.1.4,
+ universe ==1.2.2,
+ universe-base ==1.1.3,
+ universe-dependent-sum ==1.3,
+ universe-instances-extended ==1.1.3,
+ universe-reverse-instances ==1.1.1,
+ universe-some ==1.2.1,
+ universum ==1.7.3,
+ unix installed,
+ unix-bytestring ==0.3.7.7,
+ unix-compat ==0.5.4,
+ unix-time ==0.4.7,
+ unliftio ==0.2.22.0,
+ unliftio-core ==0.2.0.1,
+ unliftio-path ==0.0.2.0,
+ unliftio-pool ==0.2.2.0,
+ unliftio-streams ==0.1.1.1,
+ unlit ==0.4.0.0,
+ unordered-containers ==0.2.17.0,
+ unsafe ==0.0,
+ urbit-hob ==0.3.3,
+ uri-bytestring ==0.3.3.1,
+ uri-bytestring-aeson ==0.1.0.8,
+ uri-encode ==1.5.0.7,
+ url ==2.1.3,
+ users ==0.5.0.0,
+ users-postgresql-simple ==0.5.0.2,
+ users-test ==0.5.0.1,
+ utf8-light ==0.4.2,
+ utf8-string ==1.0.2,
+ utility-ht ==0.0.16,
+ uuid ==1.3.15,
+ uuid-types ==1.0.5,
+ valida ==1.1.0,
+ valida-base ==0.2.0,
+ validate-input ==0.5.0.0,
+ validation ==1.1.2,
+ validity ==0.12.0.1,
+ validity-bytestring ==0.4.1.1,
+ validity-containers ==0.5.0.4,
+ validity-path ==0.4.0.1,
+ validity-persistent ==0.0.0.0,
+ validity-primitive ==0.0.0.1,
+ validity-scientific ==0.2.0.3,
+ validity-text ==0.3.1.3,
+ validity-time ==0.5.0.0,
+ validity-unordered-containers ==0.2.0.3,
+ validity-uuid ==0.1.0.3,
+ validity-vector ==0.2.0.3,
+ valor ==1.0.0.0,
+ variable-media-field ==0.1.0.0,
+ variable-media-field-dhall ==0.1.0.0,
+ variable-media-field-optics ==0.1.0.0,
+ varying ==0.8.1.0,
+ vault ==0.3.1.5,
+ vcs-ignore ==0.0.2.0,
+ vec ==0.4.1,
+ vector ==0.12.3.1,
+ vector-algorithms ==0.8.0.4,
+ vector-binary-instances ==0.2.5.2,
+ vector-buffer ==0.4.1,
+ vector-builder ==0.3.8.4,
+ vector-bytes-instances ==0.1.1,
+ vector-circular ==0.1.4,
+ vector-instances ==3.4,
+ vector-mmap ==0.0.3,
+ vector-rotcev ==0.1.0.1,
+ vector-sized ==1.5.0,
+ vector-space ==0.16,
+ vector-split ==1.0.0.2,
+ vector-th-unbox ==0.2.2,
+ vectortiles ==1.5.1,
+ verbosity ==0.4.0.0,
+ versions ==5.0.3,
+ vformat ==0.14.1.0,
+ vformat-time ==0.1.0.0,
+ ViennaRNAParser ==1.3.3,
+ vinyl ==0.13.3,
+ vinyl-loeb ==0.0.1.0,
+ vivid ==0.5.2.0,
+ vivid-osc ==0.5.0.0,
+ vivid-supercollider ==0.4.1.2,
+ void ==0.7.3,
+ vty ==5.33,
+ wai ==3.2.3,
+ wai-app-static ==3.1.7.4,
+ wai-cli ==0.2.3,
+ wai-conduit ==3.0.0.4,
+ wai-cors ==0.2.7,
+ wai-enforce-https ==1.0.0.0,
+ wai-eventsource ==3.0.0,
+ wai-extra ==3.1.12.1,
+ wai-feature-flags ==0.1.0.4,
+ wai-handler-launch ==3.0.3.1,
+ wai-logger ==2.4.0,
+ wai-middleware-caching ==0.1.0.2,
+ wai-middleware-caching-lru ==0.1.0.0,
+ wai-middleware-caching-redis ==0.2.0.0,
+ wai-middleware-clacks ==0.1.0.1,
+ wai-middleware-delegate ==0.1.3.1,
+ wai-middleware-prometheus ==1.0.0.1,
+ wai-middleware-static ==0.9.2,
+ wai-rate-limit ==0.2.0.0,
+ wai-rate-limit-redis ==0.2.0.1,
+ wai-saml2 ==0.2.1.3,
+ wai-session ==0.3.3,
+ wai-session-postgresql ==0.2.1.3,
+ wai-session-redis ==0.1.0.5,
+ wai-slack-middleware ==0.2.0,
+ wai-transformers ==0.1.0,
+ wai-websockets ==3.0.1.2,
+ wakame ==0.1.0.0,
+ warp ==3.3.21,
+ warp-tls ==3.3.2,
+ warp-tls-uid ==0.2.0.6,
+ wave ==0.2.0,
+ wcwidth ==0.0.2,
+ webex-teams-api ==0.2.0.1,
+ webex-teams-conduit ==0.2.0.1,
+ webgear-core ==1.0.3,
+ webgear-openapi ==1.0.3,
+ webgear-server ==1.0.3,
+ webpage ==0.0.5.1,
+ web-plugins ==0.4.1,
+ web-routes ==0.27.14.4,
+ web-routes-boomerang ==0.28.4.3,
+ web-routes-happstack ==0.23.12.2,
+ web-routes-hsp ==0.24.6.2,
+ web-routes-wai ==0.24.3.2,
+ webrtc-vad ==0.1.0.3,
+ websockets ==0.12.7.3,
+ websockets-simple ==0.2.0,
+ weigh ==0.0.16,
+ wide-word ==0.1.1.2,
+ wikicfp-scraper ==0.1.0.12,
+ wild-bind ==0.1.2.8,
+ wild-bind-x11 ==0.2.0.14,
+ Win32 ==2.12.0.1,
+ Win32-notify ==0.3.0.3,
+ windns ==0.1.0.1,
+ wire-streams ==0.1.1.0,
+ witch ==1.0.0.2,
+ withdependencies ==0.3.0,
+ witherable ==0.4.2,
+ within ==0.2.0.1,
+ with-location ==0.1.0,
+ with-utf8 ==1.0.2.3,
+ witness ==0.5,
+ wizards ==1.0.3,
+ wl-pprint ==1.2.1,
+ wl-pprint-annotated ==0.1.0.1,
+ wl-pprint-console ==0.1.0.2,
+ wl-pprint-text ==1.2.0.2,
+ word8 ==0.1.3,
+ wordpress-auth ==1.0.0.1,
+ word-trie ==0.3.0,
+ word-wrap ==0.5,
+ world-peace ==1.0.2.0,
+ wrap ==0.0.0,
+ wreq ==0.5.3.3,
+ wreq-stringless ==0.5.9.1,
+ writer-cps-exceptions ==0.1.0.1,
+ writer-cps-mtl ==0.1.1.6,
+ writer-cps-transformers ==0.5.6.1,
+ wss-client ==0.3.0.0,
+ wuss ==1.1.19,
+ X11 ==1.10.2,
+ X11-xft ==0.3.4,
+ x11-xim ==0.0.9.0,
+ x509 ==1.7.7,
+ x509-store ==1.6.9,
+ x509-system ==1.6.7,
+ x509-validation ==1.6.12,
+ Xauth ==0.1,
+ xdg-basedir ==0.2.2,
+ xdg-desktop-entry ==0.1.1.1,
+ xdg-userdirs ==0.1.0.2,
+ xeno ==0.5,
+ xhtml installed,
+ xlsx ==0.8.4,
+ xlsx-tabular ==0.2.2.1,
+ xml ==1.3.14,
+ xml-basic ==0.1.3.1,
+ xmlbf ==0.6.1,
+ xmlbf-xeno ==0.2,
+ xmlbf-xmlhtml ==0.2,
+ xml-conduit ==1.9.1.1,
+ xml-conduit-writer ==0.1.1.2,
+ xmlgen ==0.6.2.2,
+ xml-hamlet ==0.5.0.2,
+ xml-helpers ==1.0.0,
+ xmlhtml ==0.2.5.2,
+ xml-html-qq ==0.1.0.1,
+ xml-indexed-cursor ==0.1.1.0,
+ xml-parser ==0.1.1,
+ xml-picklers ==0.3.6,
+ xml-to-json-fast ==2.0.0,
+ xml-types ==0.3.8,
+ xmonad ==0.17.0,
+ xmonad-contrib ==0.17.0,
+ xmonad-extras ==0.17.0,
+ xor ==0.0.1.1,
+ xss-sanitize ==0.3.7,
+ xxhash-ffi ==0.2.0.0,
+ yaml ==0.11.8.0,
+ yamlparse-applicative ==0.2.0.1,
+ yaml-unscrambler ==0.1.0.9,
+ yarn-lock ==0.6.5,
+ yeshql-core ==4.2.0.0,
+ yesod ==1.6.2,
+ yesod-alerts ==0.1.3.0,
+ yesod-auth ==1.6.11,
+ yesod-auth-basic ==0.1.0.3,
+ yesod-auth-hashdb ==1.7.1.7,
+ yesod-auth-oauth2 ==0.7.0.2,
+ yesod-bin ==1.6.2.1,
+ yesod-core ==1.6.24.0,
+ yesod-eventsource ==1.6.0.1,
+ yesod-form ==1.7.0,
+ yesod-form-bootstrap4 ==3.0.1,
+ yesod-gitrepo ==0.3.0,
+ yesod-gitrev ==0.2.2,
+ yesod-markdown ==0.12.6.13,
+ yesod-newsfeed ==1.7.0.0,
+ yesod-page-cursor ==2.0.1.0,
+ yesod-paginator ==1.1.2.2,
+ yesod-persistent ==1.6.0.8,
+ yesod-recaptcha2 ==1.0.2,
+ yesod-routes-flow ==3.0.0.2,
+ yesod-sitemap ==1.6.0,
+ yesod-static ==1.6.1.0,
+ yesod-test ==1.6.14,
+ yesod-websockets ==0.3.0.3,
+ yes-precure5-command ==5.5.3,
+ yi-rope ==0.11,
+ yjsvg ==0.2.0.1,
+ yjtools ==0.9.18,
+ yoga ==0.0.0.5,
+ youtube ==0.2.1.1,
+ zenacy-html ==2.0.4,
+ zenacy-unicode ==1.0.1,
+ zero ==0.1.5,
+ zeromq4-haskell ==0.8.0,
+ zeromq4-patterns ==0.3.1.0,
+ zim-parser ==0.2.1.0,
+ zio ==0.1.0.2,
+ zip ==1.7.2,
+ zip-archive ==0.4.2.1,
+ zipper-extra ==0.1.3.2,
+ zippers ==0.3.2,
+ zip-stream ==0.2.1.0,
+ zlib ==0.6.3.0,
+ zlib-bindings ==0.1.1.5,
+ zlib-lens ==0.1.2.1,
+ zot ==0.0.3,
+ zstd ==0.1.3.0,
+ ztail ==1.2.0.3
diff --git a/testing/stack/ghc9.0.x.patch b/testing/stack/ghc9.0.x.patch
new file mode 100644
index 00000000000..bdd77de58c6
--- /dev/null
+++ b/testing/stack/ghc9.0.x.patch
@@ -0,0 +1,212 @@
+From cb7e56842a25f93142545fad21306a7c1750fbbf Mon Sep 17 00:00:00 2001
+From: Brandon Chinn <brandon@leapyear.io>
+Date: Fri, 4 Jun 2021 16:26:22 -0700
+Subject: [PATCH 1/6] Use Cabal 3.4.0.0
+
+---
+ stack.yaml | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/stack.yaml b/stack.yaml
+index 005bd19f4..9472509be 100644
+--- a/stack.yaml
++++ b/stack.yaml
+@@ -20,6 +20,9 @@ flags:
+ ghc-options:
+ "$locals": -fhide-source-paths
+
++extra-deps:
++- Cabal-3.4.0.0
++
+ drop-packages:
+ # See https://github.com/commercialhaskell/stack/pull/4712
+ - cabal-install
+
+From 11e11ab0edeba033b40a7fc62434be58dea82ce2 Mon Sep 17 00:00:00 2001
+From: Brandon Chinn <brandon@leapyear.io>
+Date: Fri, 4 Jun 2021 16:40:56 -0700
+Subject: [PATCH 2/6] Fix Flag => PackageFlag
+
+---
+ src/Stack/BuildPlan.hs | 2 +-
+ src/Stack/Package.hs | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/Stack/BuildPlan.hs b/src/Stack/BuildPlan.hs
+index 36f82236e..c5c80efc6 100644
+--- a/src/Stack/BuildPlan.hs
++++ b/src/Stack/BuildPlan.hs
+@@ -224,7 +224,7 @@ selectPackageBuildPlan platform compiler pool gpd =
+ flagCombinations :: NonEmpty [(FlagName, Bool)]
+ flagCombinations = mapM getOptions (genPackageFlags gpd)
+ where
+- getOptions :: C.Flag -> NonEmpty (FlagName, Bool)
++ getOptions :: C.PackageFlag -> NonEmpty (FlagName, Bool)
+ getOptions f
+ | flagManual f = (fname, flagDefault f) :| []
+ | flagDefault f = (fname, True) :| [(fname, False)]
+diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
+index 4db50d2a4..d9bca7af5 100644
+--- a/src/Stack/Package.hs
++++ b/src/Stack/Package.hs
+@@ -128,7 +128,7 @@ resolvePackage packageConfig gpkg =
+ (resolvePackageDescription packageConfig gpkg)
+
+ packageFromPackageDescription :: PackageConfig
+- -> [D.Flag]
++ -> [PackageFlag]
+ -> PackageDescriptionPair
+ -> Package
+ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkgNoMod pkg) =
+@@ -935,9 +935,9 @@ resolvePackageDescription packageConfig (GenericPackageDescription desc defaultF
+ -- | Make a map from a list of flag specifications.
+ --
+ -- What is @flagManual@ for?
+-flagMap :: [Flag] -> Map FlagName Bool
++flagMap :: [PackageFlag] -> Map FlagName Bool
+ flagMap = M.fromList . map pair
+- where pair :: Flag -> (FlagName, Bool)
++ where pair :: PackageFlag -> (FlagName, Bool)
+ pair = flagName &&& flagDefault
+
+ data ResolveConditions = ResolveConditions
+@@ -986,7 +986,7 @@ resolveConditions rc addDeps (CondNode lib deps cs) = basic <> children
+ case v of
+ OS os -> os == rcOS rc
+ Arch arch -> arch == rcArch rc
+- Flag flag ->
++ PackageFlag flag ->
+ fromMaybe False $ M.lookup flag (rcFlags rc)
+ -- NOTE: ^^^^^ This should never happen, as all flags
+ -- which are used must be declared. Defaulting to
+
+From 8facd731ec3f2bbc15a083750740929167b33bb2 Mon Sep 17 00:00:00 2001
+From: Brandon Chinn <brandon@leapyear.io>
+Date: Fri, 4 Jun 2021 16:55:30 -0700
+Subject: [PATCH 3/6] Fix CabalSpecVersion
+
+---
+ src/Stack/Package.hs | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
+index d9bca7af5..fca039140 100644
+--- a/src/Stack/Package.hs
++++ b/src/Stack/Package.hs
+@@ -32,6 +32,7 @@ import Data.List (find, isPrefixOf, unzip)
+ import qualified Data.Map.Strict as M
+ import qualified Data.Set as S
+ import qualified Data.Text as T
++import Distribution.CabalSpecVersion (CabalSpecVersion, cabalSpecMinimumLibraryVersion)
+ import Distribution.Compiler
+ import Distribution.ModuleName (ModuleName)
+ import qualified Distribution.ModuleName as Cabal
+@@ -190,7 +191,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
+ (library pkg)
+ , packageBuildType = buildType pkg
+ , packageSetupDeps = msetupDeps
+- , packageCabalSpec = either orLaterVersion id $ specVersionRaw pkg
++ , packageCabalSpec = orLaterVersion $ mkVersion $ cabalSpecMinimumLibraryVersion $ specVersion pkg
+ }
+ where
+ extraLibNames = S.union subLibNames foreignLibNames
+@@ -696,7 +697,7 @@ packageDescModulesAndFiles pkg = do
+
+ -- | Resolve globbing of files (e.g. data files) to absolute paths.
+ resolveGlobFiles
+- :: Version -- ^ cabal file version
++ :: CabalSpecVersion -- ^ cabal file version
+ -> [String]
+ -> RIO Ctx (Set (Path Abs File))
+ resolveGlobFiles cabalFileVersion =
+
+From 004f14652409b7d0645215d354b2e599eb7f76bc Mon Sep 17 00:00:00 2001
+From: Brandon Chinn <brandon@leapyear.io>
+Date: Fri, 4 Jun 2021 16:55:40 -0700
+Subject: [PATCH 4/6] Fix GenericPackageDescription
+
+---
+ src/Stack/Build.hs | 2 +-
+ src/Stack/Package.hs | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs
+index 23b9a9719..856903bed 100644
+--- a/src/Stack/Build.hs
++++ b/src/Stack/Build.hs
+@@ -358,7 +358,7 @@ checkComponentsBuildable lps =
+ checkSubLibraryDependencies :: HasLogFunc env => [ProjectPackage] -> RIO env ()
+ checkSubLibraryDependencies proj = do
+ forM_ proj $ \p -> do
+- C.GenericPackageDescription _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
++ C.GenericPackageDescription _ _ _ lib subLibs foreignLibs exes tests benches <- liftIO $ cpGPD . ppCommon $ p
+
+ let dependencies = concatMap getDeps subLibs <>
+ concatMap getDeps foreignLibs <>
+diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs
+index fca039140..39aad4d2f 100644
+--- a/src/Stack/Package.hs
++++ b/src/Stack/Package.hs
+@@ -863,7 +863,7 @@ data PackageDescriptionPair = PackageDescriptionPair
+ resolvePackageDescription :: PackageConfig
+ -> GenericPackageDescription
+ -> PackageDescriptionPair
+-resolvePackageDescription packageConfig (GenericPackageDescription desc defaultFlags mlib subLibs foreignLibs' exes tests benches) =
++resolvePackageDescription packageConfig (GenericPackageDescription desc _ defaultFlags mlib subLibs foreignLibs' exes tests benches) =
+ PackageDescriptionPair
+ { pdpOrigBuildable = go False
+ , pdpModifiedBuildable = go True
+
+From 820797b566ef981936907f4d19658259d4a635a8 Mon Sep 17 00:00:00 2001
+From: Brandon Chinn <brandon@leapyear.io>
+Date: Fri, 4 Jun 2021 17:01:01 -0700
+Subject: [PATCH 5/6] Fix generatePackageVersionMacros
+
+---
+ src/Stack/Build/Execute.hs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Stack/Build/Execute.hs b/src/Stack/Build/Execute.hs
+index 1e381dd21..aedd7fee5 100644
+--- a/src/Stack/Build/Execute.hs
++++ b/src/Stack/Build/Execute.hs
+@@ -1214,7 +1214,7 @@ withSingleContext ActionContext {..} ee@ExecuteEnv {..} task@Task {..} allDeps m
+ let macroDeps = mapMaybe snd matchedDeps
+ cppMacrosFile = setupDir </> relFileSetupMacrosH
+ cppArgs = ["-optP-include", "-optP" ++ toFilePath cppMacrosFile]
+- writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros macroDeps)))
++ writeBinaryFileAtomic cppMacrosFile (encodeUtf8Builder (T.pack (C.generatePackageVersionMacros (packageVersion package) macroDeps)))
+ return (packageDBArgs ++ depsArgs ++ cppArgs)
+
+ -- This branch is usually taken for builds, and
+
+From 336ab515e30f03c274f89ebe1cbc6aa1e597c2a4 Mon Sep 17 00:00:00 2001
+From: Brandon Chinn <brandon@leapyear.io>
+Date: Fri, 4 Jun 2021 17:04:16 -0700
+Subject: [PATCH 6/6] Fix ModuleReexport
+
+---
+ src/Stack/Script.hs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs
+index 6bb67c049..9ebd2173d 100644
+--- a/src/Stack/Script.hs
++++ b/src/Stack/Script.hs
+@@ -18,6 +18,7 @@ import Distribution.Compiler (CompilerFlavor (..))
+ import Distribution.ModuleName (ModuleName)
+ import qualified Distribution.PackageDescription as PD
+ import qualified Distribution.Types.CondTree as C
++import qualified Distribution.Types.ModuleReexport as ModuleReexport
+ import Distribution.Types.PackageName (mkPackageName)
+ import Distribution.Types.VersionRange (withinRange)
+ import Distribution.System (Platform (..))
+@@ -280,7 +281,7 @@ allExposedModules gpd = do
+ mlibrary = snd . C.simplifyCondTree checkCond <$> PD.condLibrary gpd
+ pure $ case mlibrary of
+ Just lib -> PD.exposedModules lib ++
+- map PD.moduleReexportName (PD.reexportedModules lib)
++ map ModuleReexport.moduleReexportName (PD.reexportedModules lib)
+ Nothing -> mempty
+
+ -- | The Stackage project introduced the concept of hidden packages,
diff --git a/testing/stack/persistent.patch b/testing/stack/persistent.patch
new file mode 100644
index 00000000000..cf462d7b80c
--- /dev/null
+++ b/testing/stack/persistent.patch
@@ -0,0 +1,46 @@
+commit 188d7ece06ee06ed6ccaf0df0c46285bd43898f4
+Author: q66 <daniel@octaforge.org>
+Date: Thu Apr 28 05:02:09 2022 +0200
+
+ constrain persistent to fix build
+
+diff --git a/stack.cabal b/stack.cabal
+index dba5bf0..e221321 100644
+--- a/stack.cabal
++++ b/stack.cabal
+@@ -281,7 +281,7 @@ library
+ pantry >=0.5.3,
+ path >=0.7.0,
+ path-io >=1.6.3,
+- persistent >=2.11.0.4,
++ persistent >=2.11.0.4 && <2.14.0.0,
+ persistent-sqlite >=2.11.1.0,
+ persistent-template >=2.9.1.0,
+ pretty >=1.1.3.6,
+@@ -407,7 +407,7 @@ executable stack
+ pantry >=0.5.3,
+ path >=0.7.0,
+ path-io >=1.6.3,
+- persistent >=2.11.0.4,
++ persistent >=2.11.0.4 && <2.14.0.0,
+ persistent-sqlite >=2.11.1.0,
+ persistent-template >=2.9.1.0,
+ pretty >=1.1.3.6,
+@@ -537,7 +537,7 @@ executable stack-integration-test
+ pantry >=0.5.3,
+ path >=0.7.0,
+ path-io >=1.6.3,
+- persistent >=2.11.0.4,
++ persistent >=2.11.0.4 && <2.14.0.0,
+ persistent-sqlite >=2.11.1.0,
+ persistent-template >=2.9.1.0,
+ pretty >=1.1.3.6,
+@@ -672,7 +672,7 @@ test-suite stack-test
+ pantry >=0.5.3,
+ path >=0.7.0,
+ path-io >=1.6.3,
+- persistent >=2.11.0.4,
++ persistent >=2.11.0.4 && <2.14.0.0,
+ persistent-sqlite >=2.11.1.0,
+ persistent-template >=2.9.1.0,
+ pretty >=1.1.3.6,
diff --git a/testing/stagit/APKBUILD b/testing/stagit/APKBUILD
deleted file mode 100644
index cac5b64008c..00000000000
--- a/testing/stagit/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=stagit
-pkgver=0.9.3
-pkgrel=0
-pkgdesc="static git page generator"
-url="https://www.codemadness.org/stagit.html"
-arch="all"
-license="MIT"
-options="!check" # No tests exist
-makedepends="libgit2-dev"
-subpackages="$pkgname-doc"
-source="https://codemadness.org/releases/stagit/stagit-$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" MANPREFIX=/usr/share/man install
-}
-
-sha512sums="94934fb94f2798155a036922394de3d8b80b01dd3199269715e4d1867b7911e3290e1b8bc175b83b0a42d307d6b3e1d75268fa51e576a0a1baf9b88434e8aca9 stagit-0.9.3.tar.gz"
diff --git a/testing/stardict/APKBUILD b/testing/stardict/APKBUILD
index a66c9ebb87e..34f57d48842 100644
--- a/testing/stardict/APKBUILD
+++ b/testing/stardict/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=stardict
pkgver=3.0.6
-pkgrel=3
+pkgrel=6
pkgdesc="Cross-platform and international dictionary software"
-url="http://stardict-4.sourceforge.net/"
+url="https://stardict-4.sourceforge.net/"
arch="all"
license="GPL-3.0-or-later"
-makedepends="automake autoconf libtool gtk+2.0-dev libsigc++-dev libxml2-dev gnome-doc-utils
- gnome-common enchant2-dev espeak-dev zlib-dev mariadb-connector-c-dev"
+makedepends="automake autoconf libtool gtk+2.0-dev libsigc++-dev libxml2-dev
+ gnome-common enchant2-dev espeak-dev zlib-dev mariadb-connector-c-dev pcre-dev"
subpackages="$pkgname-doc $pkgname-lang $pkgname-help::noarch"
source="https://downloads.sourceforge.net/project/stardict-4/$pkgver/stardict-$pkgver.tar.bz2
gcc46.patch
@@ -16,17 +16,22 @@ source="https://downloads.sourceforge.net/project/stardict-4/$pkgver/stardict-$p
gconf.patch
enchant2.patch
makefile.patch
+ gnome-doc-utils.patch
"
options="!check"
prepare() {
default_prepare
- ./autogen.sh
+
+ update_config_sub
+
# Ensure system libsigc++ is used
find dict/src/sigc++* -type f \( -name \*.h -o -name \*.cc \) -delete
}
build() {
+ ./autogen.sh
+
export CXXFLAGS="$CXXFLAGS -std=gnu++11"
./configure \
--build=$CBUILD \
@@ -58,15 +63,16 @@ help() {
pkgdesc="Stardict help files"
install_if="stardict=$pkgver-r$pkgrel"
- amove usr/share/gnome
- amove usr/share/omf
amove usr/share/stardict/help
}
-sha512sums="81d93324b6e8954af7c20ea6d2a3054bb564d786a21b1cb541c728da7a18a6e7ddb23e595055ccc77e6866bbb8c89fb4f17023e33664761dbe1ee8cd55768658 stardict-3.0.6.tar.bz2
+sha512sums="
+81d93324b6e8954af7c20ea6d2a3054bb564d786a21b1cb541c728da7a18a6e7ddb23e595055ccc77e6866bbb8c89fb4f17023e33664761dbe1ee8cd55768658 stardict-3.0.6.tar.bz2
cc43b57cdf2e7fbd3e9c86acb4c8f9fef367d68f6f027e75774eec9cdf66b3fdd3b0bc58d373d076cb38671e09012ab69b8b7e81638a5be888af56372e65a838 gcc46.patch
4132eee58ab5dfb30105fd2c1a113d143528f7e904ededbb8de203bbb244377aed2c152aae7f383936e74005c2f4afa6128674a245d2a8083b2757b1ca90dd24 glib2.patch
4b47cd6beb425316cdbe45ec8b6b965521ba20a956fe6a39a49da0b5e774b3ff5bc8ade19aa03216d3405ec7fbee9ed37add0a7ec07c090a6872eb2ae2654db9 mariadb.patch
efa225a0ff285ee81788311c0ed9875ebc93d64fb4943b8de6ba27d945e781936eebcab4c742b29cb6c8c810f5fd3f478db98cb06128e7aa552fb8512838bad6 gconf.patch
bc41bb144275297657424a3a41e27cab6c06fcdecbb470e6f2b9204c01c0a9e74e64e8db6da5343e9b7779eb67f19dc786ec5617b1607c39e1a6034966b96447 enchant2.patch
-f7f96979e620195b09b0b6f4183401886637badeb7c91f1889409a5ee206ac2d1e33072ae31cdde9464510406c7bb0162083b3003b7715aa9ab3c3f1df1923ab makefile.patch"
+f7f96979e620195b09b0b6f4183401886637badeb7c91f1889409a5ee206ac2d1e33072ae31cdde9464510406c7bb0162083b3003b7715aa9ab3c3f1df1923ab makefile.patch
+9900c1f5aabd100f873d8903a61a4ea71118ea70236cc0fa10bafcb9a87335e686c840ee258af64c0c9aaa8ea62e71acd80d2b8839e42fd5280f8d1e2209deb6 gnome-doc-utils.patch
+"
diff --git a/testing/stardict/gnome-doc-utils.patch b/testing/stardict/gnome-doc-utils.patch
new file mode 100644
index 00000000000..910d5288369
--- /dev/null
+++ b/testing/stardict/gnome-doc-utils.patch
@@ -0,0 +1,21 @@
+diff -ruN stardict-3.0.6-2/dict/configure.ac stardict-3.0.6/dict/configure.ac
+--- stardict-3.0.6-2/dict/configure.ac 2023-01-30 01:05:51.137604350 +0100
++++ stardict-3.0.6/dict/configure.ac 2023-01-30 01:05:54.680907906 +0100
+@@ -17,7 +17,6 @@
+
+ AC_CONFIG_MACRO_DIR(m4)
+ LT_INIT
+-GNOME_DOC_INIT
+
+ AC_ISC_POSIX
+ AC_PROG_CC
+diff -ruN stardict-3.0.6-2/dict/help/Makefile.am stardict-3.0.6/dict/help/Makefile.am
+--- stardict-3.0.6-2/dict/help/Makefile.am 2023-01-30 01:05:51.137604350 +0100
++++ stardict-3.0.6/dict/help/Makefile.am 2023-01-30 01:05:57.514217577 +0100
+@@ -1,6 +1,5 @@
+ ## Process this file with automake to produce Makefile.in.
+ ## always include gnome-doc-utils.make because we need to generate DocBook files in linguas dirs
+-include $(top_srcdir)/gnome-doc-utils.make
+ if GNOME_SUPPORT
+ GNOME_DIST_HOOK = doc-dist-hook
+ else
diff --git a/testing/starfighter/APKBUILD b/testing/starfighter/APKBUILD
new file mode 100644
index 00000000000..faca351a609
--- /dev/null
+++ b/testing/starfighter/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=starfighter
+pkgver=2.4
+pkgrel=0
+pkgdesc="2D scrolling shooter game"
+url="https://pr-starfighter.github.io/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="sdl2-dev sdl2_image-dev sdl2_mixer-dev sdl2_ttf-dev gettext-dev pango-dev"
+subpackages="$pkgname-doc"
+options="!check" # No testsuite
+source="https://github.com/pr-starfighter/starfighter/releases/download/v$pkgver/starfighter-$pkgver-src.tar.gz"
+builddir="$srcdir/starfighter-$pkgver-src"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --exec_prefix=/usr \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+3c31f74f878e7c438ee752e870556a2108d88b45544e5eb56ea49926986657d5ab13031e2ecd0973ecbaab29e61a1f3a79f1e34435287426aee8cc374c08136d starfighter-2.4-src.tar.gz
+"
diff --git a/testing/stargazer/APKBUILD b/testing/stargazer/APKBUILD
deleted file mode 100644
index 1adcde13262..00000000000
--- a/testing/stargazer/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Alexander Georgievskiy <galeksandrp@gmail.com>
-# Maintainer:
-pkgname=stargazer
-_pkgname=stg
-pkgver=2.408
-pkgrel=0
-pkgdesc="A billing system for small home and office networks"
-url="http://www.stg.dp.ua"
-arch="all"
-license="GPL-2.0-or-later"
-depends=""
-makedepends="expat-dev linux-headers"
-install=""
-subpackages="$pkgname-dev"
-source="http://www.$_pkgname.dp.ua/download/server/$pkgver/$_pkgname-$pkgver.tar.gz
- fix-name-max.patch
- "
-builddir="$srcdir/$_pkgname-$pkgver"
-options="!check"
-
-prepare() {
- default_prepare
- cd "$builddir/projects/$pkgname"
- sed 's/.*capture\/ipq_linux//' -i build
-}
-
-build() {
- cd "$builddir/projects/$pkgname"
- ./build
-}
-
-package() {
- cd "$builddir/projects/$pkgname"
- mkdir -p "$pkgdir/usr/sbin"
- make PREFIX="$pkgdir" install
-}
-
-sha512sums="200e08cfd629dbacda31ffd3134c2908a1ad58604421cc288ad0ec1bdcd60fe021d51fed50fdc2517bb7c2b61ef23b0b9c71a606babd09bc7804cb899e0b7f75 stg-2.408.tar.gz
-b7572654091490bab39a6d6da081133df041df80f38f9de77156719ad05083dfa570a7a6df5db74ee30f3d22270271bd27a8793b6c0ee40ea123ddb4af11d6ec fix-name-max.patch"
diff --git a/testing/stargazer/fix-name-max.patch b/testing/stargazer/fix-name-max.patch
deleted file mode 100644
index 987aef9d794..00000000000
--- a/testing/stargazer/fix-name-max.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- stg-2.408/stglibs/common.lib/include/stg/common.h.orig 2017-08-29 13:08:12.574050223 +0300
-+++ stg-2.408/stglibs/common.lib/include/stg/common.h 2017-08-29 13:08:44.261161176 +0300
-@@ -33,6 +33,7 @@
- #include <ctime>
- #endif
- #include <string>
-+#include <limits.h>
-
- #include "stg/os_int.h"
- #include "stg/const.h"
diff --git a/testing/startup/APKBUILD b/testing/startup/APKBUILD
new file mode 100644
index 00000000000..6b5608163f8
--- /dev/null
+++ b/testing/startup/APKBUILD
@@ -0,0 +1,105 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer:
+pkgname=startup
+pkgver=2.0.3
+pkgrel=4
+pkgdesc="Event driven task and service manager"
+options="!check"
+url="https://gitlab.com/chinstrap/startup"
+arch="all"
+license="GPL-2.0-only"
+makedepends="
+ autoconf
+ automake
+ libtool
+ gettext-dev
+ libnih-dev
+ eudev-dev
+ dbus-dev
+ json-c-dev
+ cgmanager-dev
+ linux-headers
+ glib-dev
+ dconf-dev
+ "
+checkdepends="python3 dbus"
+# https://gitlab.com/chinstrap/startup/issues/42
+checkdepends="$checkdepends coreutils"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-lang
+ $pkgname-tools::noarch
+ libupstart:libs
+ $pkgname-bridge-udev
+ $pkgname-bridge-dconf
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://gitlab.com/chinstrap/startup/-/archive/$pkgver/startup-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
+
+build() {
+ export LDFLAGS="$LDFLAGS -lintl"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --sysconfdir=/etc \
+ --prefix=/usr \
+ --disable-sysvcompat \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir"/usr/lib/*.la
+
+ # Install fish completion
+ install -Dm0644 contrib/fish_completion/*.fish \
+ -t "$pkgdir"/usr/share/fish/vendor_completions.d
+
+ mkdir -p "$pkgdir"/usr/share/dbus-1/system.d/
+ mv "$pkgdir"/etc/dbus-1/system.d/* "$pkgdir"/usr/share/dbus-1/system.d/
+}
+
+tools() {
+ depends="$pkgname=$pkgver-r$pkgrel py3-dbus py3-gobject3"
+ pkgdesc="Monitoring and analysis tools for Startup"
+
+ amove usr/bin/initctl2dot
+ amove usr/bin/startup-monitor
+ amove usr/share/icons
+ amove usr/share/applications
+}
+
+dconf() {
+ pkgdesc="Dconf event bridge for Startup"
+ install_if="$pkgname=$pkgver-r$pkgrel dconf"
+
+ amove usr/libexec/startup/bridge/dconf
+ amove usr/share/xdg/startup/bridge-dconf.conf
+ amove usr/share/xdg/startup/bridge-dconf.override
+}
+
+udev() {
+ pkgdesc="Udev event bridge for Startup"
+ install_if="$pkgname=$pkgver-r$pkgrel eudev"
+
+ amove usr/libexec/startup/bridge/udev
+ amove usr/share/startup/bridge-udev.conf
+ amove usr/share/startup/bridge-udev.override
+ amove usr/share/xdg/startup/bridge-udev.conf
+ amove usr/share/xdg/startup/bridge-udev.override
+}
+
+sha512sums="
+02c504fa7f702c709cfe8fca7e413aff38374b0dc1eba52ba40dae6990ca4db3dcd2561de2713e0153ed47a75db8caaef628d92298049b39f83c6da97ef01e3a startup-2.0.3.tar.gz
+"
diff --git a/testing/stayrtr/APKBUILD b/testing/stayrtr/APKBUILD
new file mode 100644
index 00000000000..4a70f277d9d
--- /dev/null
+++ b/testing/stayrtr/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: Nicolas Lorin <androw95220@gmail.com>
+pkgname=stayrtr
+pkgver=0.5.1
+pkgrel=2
+pkgdesc="Simple RPKI-To-Router server. (Hard fork of GoRTR)"
+url="https://github.com/bgp/stayrtr"
+arch="all"
+license="BSD-3-Clause"
+options="net chmod-clean"
+makedepends="go"
+pkgusers="stayrtr"
+pkggroups="stayrtr"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/bgp/stayrtr/archive/v$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export CGO_ENABLED=1
+ make \
+ OUTPUT_STAYRTR=dist/stayrtr \
+ OUTPUT_RTRDUMP=dist/rtrdump \
+ OUTPUT_RTRMON=dist/rtrmon \
+ STAYRTR_VERSION=$pkgver \
+ LDFLAGS='"-X main.version=$(STAYRTR_VERSION) -X main.buildinfos=$(BUILDINFOS)"' \
+ build-stayrtr build-rtrdump build-rtrmon
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 dist/stayrtr "$pkgdir"/usr/bin/$pkgname
+ install -Dm755 dist/rtrdump "$pkgdir"/usr/bin/rtrdump
+ install -Dm755 dist/rtrmon "$pkgdir"/usr/bin/rtrmon
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+a155045d423bf4da20a07699df096c38e6ace23ad9f93bbc7180135ec5bc367eed1ad349f9033ceda5521afba7d455d19afd0bc8d95b7376c91b4b051bd4a51f stayrtr-0.5.1.tar.gz
+926dd3d3c3851d2b787ed7ae42ba1dcc54b432e5cb9ab6a30fa8eee1df19b48f50b37b37b84262d83e53031993ac39bd68a87bd9e47752eca49c104e0b1e7897 stayrtr.initd
+73d8e1465332287ec035872777caa3c60072ae62a359d2f1374275901423d120300ebcfca22a7ca7c1131056183f39a9fb19ad1b08678d3bde13b383874d4a7d stayrtr.confd
+"
diff --git a/testing/stayrtr/stayrtr.confd b/testing/stayrtr/stayrtr.confd
new file mode 100644
index 00000000000..d3cb5dd2fdd
--- /dev/null
+++ b/testing/stayrtr/stayrtr.confd
@@ -0,0 +1,2 @@
+# Configuration for /etc/init.d/stayrtr
+# STAYRTR_OPTS=""
diff --git a/testing/stayrtr/stayrtr.initd b/testing/stayrtr/stayrtr.initd
new file mode 100644
index 00000000000..f2c2d8c28b5
--- /dev/null
+++ b/testing/stayrtr/stayrtr.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+
+name="stayrtr"
+description="Simple RPKI-To-Router server. (Hard fork of GoRTR)"
+
+command="/usr/bin/$RC_SVCNAME"
+command_args="$STAYRTR_OPTS"
+command_user="$RC_SVCNAME:$RC_SVCNAME"
+
+extra_started_commands="reload"
+description_reload="Reload configuration"
+
+error_log="/var/log/$RC_SVCNAME.log"
+
+depend() {
+ need net
+ after firewall
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME configuration"
+ $supervisor "$RC_SVCNAME" --signal HUP
+ eend $?
+}
diff --git a/testing/stayrtr/stayrtr.pre-install b/testing/stayrtr/stayrtr.pre-install
new file mode 100644
index 00000000000..42667d38cb5
--- /dev/null
+++ b/testing/stayrtr/stayrtr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S stayrtr 2>/dev/null
+adduser -S -D -h /var/lib/stayrtr -s /sbin/nologin -G stayrtr -g stayrtr stayrtr 2>/dev/null
+
+exit 0
diff --git a/testing/stdx-allocator/APKBUILD b/testing/stdx-allocator/APKBUILD
deleted file mode 100644
index 6ffc66802fa..00000000000
--- a/testing/stdx-allocator/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=stdx-allocator
-pkgver=3.1.0_beta2
-_betanum=${pkgver/${pkgver%beta*}/}
-_pkgver=${pkgver/_$_betanum/}
-_verstring=$_pkgver-${_betanum/ta/ta.}
-pkgrel=0
-pkgdesc="Extracted std.experimental.allocator for usage via DUB"
-url="https://github.com/dlang-community/stdx-allocator"
-arch="x86 x86_64 aarch64" # ldc
-license="BSL-1.0"
-makedepends="meson ldc ldc-runtime mir-core-dev"
-subpackages="$pkgname-dev"
-options="!check" # region.d(759) failing
-source="https://github.com/dlang-community/stdx-allocator/archive/v$_verstring/stdx-allocator-$_verstring.tar.gz"
-builddir="$srcdir/stdx-allocator-$_verstring"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="74089666471ca23df66ace2c3d57e828fe7282344c1a0f9e14c0db13b8d842d3f60385181a3a8953fd193a1dbf6ca6828a561306636ab05c6ebe952b97993cfe stdx-allocator-3.1.0-beta.2.tar.gz"
diff --git a/testing/steamguard-cli/APKBUILD b/testing/steamguard-cli/APKBUILD
new file mode 100644
index 00000000000..ff4803ff220
--- /dev/null
+++ b/testing/steamguard-cli/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=steamguard-cli
+pkgver=0.9.6
+pkgrel=0
+pkgdesc="Command line utility for setting up and using Steam Mobile Authenticator"
+url="https://github.com/dyc3/steamguard-cli"
+# ring
+arch="all !ppc64le !s390x !riscv64"
+license="GPL-3.0-or-later"
+makedepends="cargo cargo-auditable openssl-dev"
+subpackages="$pkgname-bash-completion $pkgname-zsh-completion"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dyc3/steamguard-cli/archive/refs/tags/v$pkgver.tar.gz
+ openssl.patch
+ "
+options="net" # cargo fetch
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ mkdir -p completions
+ target/release/steamguard completion --shell bash > completions/steamguard
+ target/release/steamguard completion --shell zsh > completions/_steamguard
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/steamguard -t "$pkgdir"/usr/bin/
+
+ install -Dm644 completions/steamguard \
+ -t "$pkgdir"/usr/share/bash-completion/completions/
+ install -Dm644 completions/_steamguard \
+ -t "$pkgdir"/usr/share/zsh/site-functions/
+}
+
+sha512sums="
+31c5eb2b796554ad46e719aff5a2d285bbea49f248aa6f8d9f60a07234ea00ec521f49471e78177e624f8940ce4e55749f066aedef73316d9392554850489573 steamguard-cli-0.9.6.tar.gz
+aceda15ade3deaf14b4fdbce4b849acfa89855cfd306ba9577f4e280fa175ffe1233776c1e13f372462b6e60292907e6a1a6aceec6b51a90d3067aa22132a31a openssl.patch
+"
diff --git a/testing/steamguard-cli/openssl.patch b/testing/steamguard-cli/openssl.patch
new file mode 100644
index 00000000000..47bb2b009d8
--- /dev/null
+++ b/testing/steamguard-cli/openssl.patch
@@ -0,0 +1,393 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 10ba22c..f68621f 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -313,6 +313,22 @@ dependencies = [
+ "url",
+ ]
+
++[[package]]
++name = "core-foundation"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
++dependencies = [
++ "core-foundation-sys",
++ "libc",
++]
++
++[[package]]
++name = "core-foundation-sys"
++version = "0.8.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
++
+ [[package]]
+ name = "cpufeatures"
+ version = "0.2.2"
+@@ -545,6 +561,21 @@ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
++[[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
+ [[package]]
+ name = "form_urlencoded"
+ version = "1.0.1"
+@@ -819,6 +850,19 @@ dependencies = [
+ "tokio-rustls",
+ ]
+
++[[package]]
++name = "hyper-tls"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
++dependencies = [
++ "bytes",
++ "hyper",
++ "native-tls",
++ "tokio",
++ "tokio-native-tls",
++]
++
+ [[package]]
+ name = "idna"
+ version = "0.2.3"
+@@ -1051,6 +1095,24 @@ dependencies = [
+ "windows-sys 0.36.1",
+ ]
+
++[[package]]
++name = "native-tls"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
++dependencies = [
++ "lazy_static 1.4.0",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
++]
++
+ [[package]]
+ name = "new_debug_unreachable"
+ version = "1.0.4"
+@@ -1161,6 +1223,50 @@ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "44d11de466f4a3006fe8a5e7ec84e93b79c70cb992ae0aa0eb631ad2df8abfe2"
+
++[[package]]
++name = "openssl"
++version = "0.10.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
++dependencies = [
++ "bitflags",
++ "cfg-if",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
++
++[[package]]
++name = "openssl-sys"
++version = "0.9.90"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
++dependencies = [
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
+ [[package]]
+ name = "option-ext"
+ version = "0.2.0"
+@@ -1340,6 +1446,12 @@ dependencies = [
+ "zeroize",
+ ]
+
++[[package]]
++name = "pkg-config"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
++
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.16"
+@@ -1750,12 +1862,14 @@ dependencies = [
+ "http-body",
+ "hyper",
+ "hyper-rustls",
++ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "lazy_static 1.4.0",
+ "log",
+ "mime",
+ "mime_guess",
++ "native-tls",
+ "percent-encoding",
+ "pin-project-lite",
+ "proc-macro-hack",
+@@ -1765,6 +1879,7 @@ dependencies = [
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
++ "tokio-native-tls",
+ "tokio-rustls",
+ "tokio-util 0.6.10",
+ "url",
+@@ -1877,6 +1992,15 @@ version = "1.0.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+
++[[package]]
++name = "schannel"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
++dependencies = [
++ "windows-sys 0.42.0",
++]
++
+ [[package]]
+ name = "scopeguard"
+ version = "1.1.0"
+@@ -1919,6 +2043,29 @@ dependencies = [
+ "zeroize",
+ ]
+
++[[package]]
++name = "security-framework"
++version = "2.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
++dependencies = [
++ "bitflags",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
++]
++
++[[package]]
++name = "security-framework-sys"
++version = "2.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
++dependencies = [
++ "core-foundation-sys",
++ "libc",
++]
++
+ [[package]]
+ name = "selectors"
+ version = "0.22.0"
+@@ -2511,6 +2658,16 @@ dependencies = [
+ "winapi",
+ ]
+
++[[package]]
++name = "tokio-native-tls"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
++dependencies = [
++ "native-tls",
++ "tokio",
++]
++
+ [[package]]
+ name = "tokio-rustls"
+ version = "0.23.4"
+@@ -2684,6 +2841,12 @@ dependencies = [
+ "getrandom 0.2.6",
+ ]
+
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
+ [[package]]
+ name = "version_check"
+ version = "0.9.4"
+@@ -2883,6 +3046,21 @@ dependencies = [
+ "windows_x86_64_msvc 0.36.1",
+ ]
+
++[[package]]
++name = "windows-sys"
++version = "0.42.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
++dependencies = [
++ "windows_aarch64_gnullvm 0.42.2",
++ "windows_aarch64_msvc 0.42.2",
++ "windows_i686_gnu 0.42.2",
++ "windows_i686_msvc 0.42.2",
++ "windows_x86_64_gnu 0.42.2",
++ "windows_x86_64_gnullvm 0.42.2",
++ "windows_x86_64_msvc 0.42.2",
++]
++
+ [[package]]
+ name = "windows-sys"
+ version = "0.48.0"
+@@ -2898,15 +3076,21 @@ version = "0.48.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+ dependencies = [
+- "windows_aarch64_gnullvm",
++ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+- "windows_x86_64_gnullvm",
++ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
+ ]
+
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
++
+ [[package]]
+ name = "windows_aarch64_gnullvm"
+ version = "0.48.0"
+@@ -2919,6 +3103,12 @@ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
++
+ [[package]]
+ name = "windows_aarch64_msvc"
+ version = "0.48.0"
+@@ -2931,6 +3121,12 @@ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
++[[package]]
++name = "windows_i686_gnu"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
++
+ [[package]]
+ name = "windows_i686_gnu"
+ version = "0.48.0"
+@@ -2943,6 +3139,12 @@ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
++[[package]]
++name = "windows_i686_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
++
+ [[package]]
+ name = "windows_i686_msvc"
+ version = "0.48.0"
+@@ -2955,12 +3157,24 @@ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
++
+ [[package]]
+ name = "windows_x86_64_gnu"
+ version = "0.48.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
++
+ [[package]]
+ name = "windows_x86_64_gnullvm"
+ version = "0.48.0"
+@@ -2973,6 +3187,12 @@ version = "0.36.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.42.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
++
+ [[package]]
+ name = "windows_x86_64_msvc"
+ version = "0.48.0"
+diff --git a/Cargo.toml b/Cargo.toml
+index 425e75a..95c9370 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -34,7 +34,7 @@ hmac-sha1 = "^0.1"
+ base64 = "0.13.0"
+ text_io = "0.1.8"
+ rpassword = "5.0"
+-reqwest = { version = "0.11", default-features = false, features = ["blocking", "json", "cookies", "gzip", "rustls-tls"] }
++reqwest = { version = "0.11", default-features = false, features = ["blocking", "json", "cookies", "gzip", "native-tls"] }
+ serde = { version = "1.0", features = ["derive"] }
+ serde_json = "1.0"
+ rsa = "0.5.0"
diff --git a/testing/steghide/APKBUILD b/testing/steghide/APKBUILD
index a515ba3850a..460d261dbae 100644
--- a/testing/steghide/APKBUILD
+++ b/testing/steghide/APKBUILD
@@ -1,39 +1,44 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=steghide
-pkgver=0.5.1
-pkgrel=1
+pkgver=0.5.1.1
+pkgrel=0
pkgdesc="Steganography program that is able to hide data in various kinds of image- and audio-files"
-url="http://steghide.sourceforge.net/index.php"
+url="https://github.com/museoa/steghide"
arch="all"
-license="GPL"
+license="GPL-2.0-or-later"
+options="!check" # fixme: fails for au and wav
makedepends="libmcrypt-dev jpeg-dev zlib-dev libmhash-dev
-bash libtool automake autoconf"
-install=""
+ bash gettext-dev libtool automake autoconf"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://prdownloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
-steghide-0.5.1-am.patch
-build-fixes-new-gcc.patch
-missing-files-configure-in.patch"
-builddir="$srcdir"/$pkgname-$pkgver
+source="$pkgname-pkgver.tar.gz::https://github.com/museoa/steghide/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver/src"
+
+prepare() {
+ default_prepare
+
+ aclocal
+ autoconf
+ libtoolize
+ autoreconf -fvi
+}
build() {
- cd "$builddir"
- update_config_guess || return 1
- autoreconf -i
./configure \
--prefix=/usr \
--disable-rpath \
--disable-nls
- make CXXFLAGS="$CXXFLAGS -fpermissive" || return 1
+ make
+}
+
+check() {
+ make check
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="6cda3e33e91123fbc5caa112efcacf09180505abd4f6f229878cd443817c60a04498aead02509c7532fd6924225c6b752820c51e452a83c520f228273d610a57 steghide-0.5.1.tar.gz
-b41652a1cfcd5313cb79c220cebc308c5491de4b56433ca5c6099c0b23c532c565cb67b553c32d24398c0e26cec3d1749acd8890e45596464ed499a83fd04fb3 steghide-0.5.1-am.patch
-66443a0ca340969d568e0343fafcef6623f429f6a718b5ea55afcceb444f907521db22702c213d9b72a82e6b353c138f2703afcb4a6d573fe37f70891bc69334 build-fixes-new-gcc.patch
-27dbae3ef3ab4373ddd046bad07a4d3d0df014717b3a1a4b178c761f39f9b3c74aef7aeeb037c93e083445026e96cf46a64a1351074938af9b87ab9bd9e95bbe missing-files-configure-in.patch"
+sha512sums="
+2fcaeda85b145f5d5ff92d26f1b98fac745b4f6bd09ae5d0fef3413fb86674da19714d93c882de774f21beb381f5bac4ca0517269821b9811e07706e6e6d72e6 steghide-pkgver.tar.gz
+"
diff --git a/testing/steghide/build-fixes-new-gcc.patch b/testing/steghide/build-fixes-new-gcc.patch
deleted file mode 100644
index 1f866e35476..00000000000
--- a/testing/steghide/build-fixes-new-gcc.patch
+++ /dev/null
@@ -1,164 +0,0 @@
---- steghide-0.5.1.orig/src/ProgressOutput.cc
-+++ steghide-0.5.1/src/ProgressOutput.cc
-@@ -23,6 +23,8 @@
- #include "ProgressOutput.h"
- #include "common.h"
-
-+float ProgressOutput::NoAvgWeight = -1.0 ;
-+
- ProgressOutput::ProgressOutput ()
- : Message("__nomessage__")
- {
---- steghide-0.5.1.orig/src/ProgressOutput.h
-+++ steghide-0.5.1/src/ProgressOutput.h
-@@ -62,9 +62,9 @@
- * \param rate the rate of matched vertices
- * \param avgweight the average edge weight (is not printed if not given)
- **/
-- void done (float rate, float avgweight = NoAvgWeight) const ;
-+ void done (float rate, float avgweight = 1.0) const ;
-
-- static const float NoAvgWeight = -1.0 ;
-+ static float NoAvgWeight ;
-
- protected:
- std::string vcompose (const char *msgfmt, va_list ap) const ;
---- steghide-0.5.1.orig/src/wrapper_hash_map.h
-+++ steghide-0.5.1/src/wrapper_hash_map.h
-@@ -29,7 +29,7 @@
- namespace sgi { using ::hash ; using ::hash_map ; } ;
- # else
- # include <ext/hash_map>
--# if __GNUC_MINOR__ == 0
-+# if __GNUC__ == 3 && __GNUC_MINOR__ == 0
- namespace sgi = std ; // GCC 3.0
- # else
- namespace sgi = __gnu_cxx ; // GCC 3.1 and later
---- steghide-0.5.1.orig/src/wrapper_hash_set.h
-+++ steghide-0.5.1/src/wrapper_hash_set.h
-@@ -30,7 +30,7 @@
- namespace sgi { using ::hash ; using ::hash_set ; } ;
- # else
- # include <ext/hash_set>
--# if __GNUC_MINOR__ == 0
-+# if __GNUC__ == 3 && __GNUC_MINOR__ == 0
- namespace sgi = std ; // GCC 3.0
- # else
- namespace sgi = ::__gnu_cxx ; // GCC 3.1 and later
-
---- steghide-0.5.1.orig/src/Arguments.cc
-+++ steghide-0.5.1/src/Arguments.cc
-@@ -28,6 +28,8 @@
- #include "error.h"
- #include "msg.h"
-
-+float Arguments::Default_Goal = 100.0 ;
-+
- // the global Arguments object
- Arguments Args ;
-
---- steghide-0.5.1.orig/src/Arguments.h
-+++ steghide-0.5.1/src/Arguments.h
-@@ -100,7 +100,7 @@
- static const VERBOSITY Default_Verbosity = NORMAL ;
- static const unsigned long Default_Radius = 0 ; // there is no default radius for all file formats
- static const unsigned int Max_Algorithm = 3 ;
-- static const float Default_Goal = 100.0 ;
-+ static float Default_Goal ;
- static const DEBUGCOMMAND Default_DebugCommand = NONE ;
- static const bool Default_Check = false ;
- static const unsigned int Default_DebugLevel = 0 ;
---- steghide-0.5.1.orig/src/AuData.h
-+++ steghide-0.5.1/src/AuData.h
-@@ -26,22 +26,22 @@
-
- // AuMuLawAudioData
- typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
--inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
--inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
-+template <> inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
-+template <> inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
-
- // AuPCM8AudioData
- typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ;
--inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
--inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
-+template <> inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
-+template <> inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
-
- // AuPCM16AudioData
- typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ;
--inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
--inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
-+template <> inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
-+template <> inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
-
- // AuPCM32AudioData
- typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ;
--inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
--inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
-+template <> inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
-+template <> inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
-
- #endif // ndef SH_AUDATA_H
---- steghide-0.5.1.orig/src/AuSampleValues.cc
-+++ steghide-0.5.1/src/AuSampleValues.cc
-@@ -21,17 +21,17 @@
- #include "AuSampleValues.h"
-
- // AuMuLawSampleValue
--const BYTE AuMuLawSampleValue::MinValue = 0 ;
--const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
-+template <> const BYTE AuMuLawSampleValue::MinValue = 0 ;
-+template <> const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
-
- // AuPCM8SampleValue
--const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
--const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
-+template <> const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
-+template <> const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
-
- // AuPCM16SampleValue
--const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
--const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
-+template <> const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
-+template <> const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
-
- // AuPCM32SampleValue
--const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
--const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
-+template <> const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
-+template <> const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
---- steghide-0.5.1.orig/src/EmbData.cc
-+++ steghide-0.5.1/src/EmbData.cc
-@@ -26,6 +26,7 @@
- #include "MCryptPP.h"
- #include "MHashPP.h"
- #include "common.h"
-+#include "config.h"
-
- EmbData::EmbData (MODE m, std::string pp, std::string fn)
- : Mode(m), Passphrase(pp), FileName(fn)
---- steghide-0.5.1.orig/src/Graph.cc
-+++ steghide-0.5.1/src/Graph.cc
-@@ -33,6 +33,8 @@
- #include "msg.h"
- #include "wrapper_hash_set.h"
-
-+#include <climits>
-+
- Graph::Graph (CvrStgFile *cvr, const BitString& emb, Selector& sel)
- {
- Globs.TheGraph = this ;
---- steghide-0.5.1.orig/src/MHashPP.cc
-+++ steghide-0.5.1/src/MHashPP.cc
-@@ -120,7 +120,7 @@
-
- std::string MHashPP::getAlgorithmName (hashid id)
- {
-- char *name = mhash_get_hash_name (id) ;
-+ char *name = (char *) mhash_get_hash_name (id) ;
- std::string retval ;
- if (name == NULL) {
- retval = std::string ("<algorithm not found>") ;
-
diff --git a/testing/steghide/missing-files-configure-in.patch b/testing/steghide/missing-files-configure-in.patch
deleted file mode 100644
index f736b550875..00000000000
--- a/testing/steghide/missing-files-configure-in.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-autoreconf fails because steghide do not provide AUTHORS,
-NEWS and ChangeLog files
-
-Use 'foreign' keyword to allow automake runs whithout these files.
-
---- steghide-0.5.1/configure.in
-+++ steghide-0.5.1/configure.in
-@@ -1,7 +1,8 @@
- dnl Process this file with autoconf to produce a configure script.
--AC_INIT(src/main.cc)
-+AC_INIT([steghide], [0.5.1])
-+AC_CONFIG_SRCDIR([src/main.cc])
- AC_CANONICAL_SYSTEM
--AM_INIT_AUTOMAKE(steghide, 0.5.1)
-+AM_INIT_AUTOMAKE([foreign])
- AM_CONFIG_HEADER(config.h)
-
- dnl checks for programs.
diff --git a/testing/steghide/steghide-0.5.1-am.patch b/testing/steghide/steghide-0.5.1-am.patch
deleted file mode 100644
index e261262bd78..00000000000
--- a/testing/steghide/steghide-0.5.1-am.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- steghide-0.5.1/po/Makefile.in.in.org 2003-09-28 17:57:14.000000000 +0200
-+++ steghide-0.5.1/po/Makefile.in.in 2006-07-12 17:17:38.000000000 +0200
-@@ -27,7 +27,7 @@
- INSTALL = @INSTALL@
- INSTALL_DATA = @INSTALL_DATA@
- MKINSTALLDIRS = @MKINSTALLDIRS@
--mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-+mkinstalldirs = $(MKINSTALLDIRS)
-
- GMSGFMT = @GMSGFMT@
- MSGFMT = @MSGFMT@
---- steghide-0.5.1/src/Makefile.am.org 2003-09-28 18:33:21.000000000 +0200
-+++ steghide-0.5.1/src/Makefile.am 2006-07-12 17:13:26.000000000 +0200
-@@ -33,5 +33,4 @@
- WavPCMSampleValue.cc error.cc main.cc msg.cc SMDConstructionHeuristic.cc
- LIBS = @LIBINTL@ @LIBS@
- localedir = $(datadir)/locale
--LIBTOOL = $(SHELL) libtool
- MAINTAINERCLEANFILES = Makefile.in
diff --git a/testing/stern/APKBUILD b/testing/stern/APKBUILD
new file mode 100644
index 00000000000..590fdce6b5d
--- /dev/null
+++ b/testing/stern/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=stern
+pkgver=1.28.0
+pkgrel=2
+pkgdesc="Multi pod and container log tailing for Kubernetes"
+url="https://github.com/stern/stern"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+checkdepends="tzdata"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-fish-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/stern/stern/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ GOLDFLAGS="
+ -X github.com/stern/stern/cmd.version=$pkgver
+ -X github.com/stern/stern/cmd.commit=AlpineLinux
+ -X github.com/stern/stern/cmd.date=$(date +%FT%T%Z)
+ "
+ go build -v -o bin/$pkgname -ldflags "$GOLDFLAGS"
+
+ for shell in bash fish zsh; do
+ ./bin/stern --completion $shell > stern.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/$pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 stern.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/stern
+ install -Dm644 stern.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_stern
+ install -Dm644 stern.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/stern.fish
+}
+
+sha512sums="
+cae6aab0da301448352c346d4797c8e34b64411fccb1e925ef26ad918b355008d17bba1146074cea299019af33470a778a0481773c0867242699d4ba63a6531f stern-1.28.0.tar.gz
+"
diff --git a/testing/stgit/APKBUILD b/testing/stgit/APKBUILD
index 350a284dd49..3c235590043 100644
--- a/testing/stgit/APKBUILD
+++ b/testing/stgit/APKBUILD
@@ -1,20 +1,23 @@
# Contributor: Joseph Benden <joe@benden.us>
# Maintainer: Joseph Benden <joe@benden.us>
pkgname=stgit
-pkgver=0.22
-pkgrel=0
+pkgver=1.3
+pkgrel=5
pkgdesc="Manage a stack of patches using GIT as a backend"
arch="noarch"
url="http://www.procode.org/stgit/"
license="GPL-2.0-or-later"
options="!check" # unit-tests fail due to iconv usage
depends="git python3"
-makedepends="asciidoc xmlto perl"
+makedepends="asciidoc xmlto perl py3-setuptools"
subpackages="
+ $pkgname-pyc
$pkgname-doc
$pkgname-zsh-completion
$pkgname-fish-completion
$pkgname-bash-completion
+ $pkgname-vim:_vim:noarch
+ $pkgname-emacs:_emacs:noarch
"
source="https://github.com/stacked-git/stgit/releases/download/v$pkgver/stgit-$pkgver.tar.gz"
@@ -50,14 +53,38 @@ package() {
mandir=/usr/share/man/ \
install install-doc
- install -Dm0644 "$pkgdir"/usr/share/stgit/completion/stgit.bash \
+ # shell completion
+ rm -rf "$pkgdir"/usr/share/stgit/completions
+ install -Dm0644 completion/stgit.bash \
"$pkgdir"/usr/share/bash-completion/completions/stgit
- install -Dm0644 "$pkgdir"/usr/share/stgit/completion/stgit.zsh \
+ install -Dm0644 completion/stgit.zsh \
"$pkgdir"/usr/share/zsh/site-functions/_stgit
- install -Dm0644 "$pkgdir"/usr/share/stgit/completion/stg.fish \
- "$pkgdir"/usr/share/fish/completions/stg.fish
+ install -Dm0644 completion/stg.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/stg.fish
- rm -rf "$pkgdir"/usr/share/stgit/completions
+ # lisp
+ install -Dm0644 contrib/stgit.el -t "$pkgdir"/usr/share/emacs/site-lisp
+
+ # vim
+ install -Dm0644 contrib/vim/ftdetect/stg.vim -t \
+ "$pkgdir"/usr/share/vim/vimfiles/ftdetect
+ for vimsyntax in contrib/vim/syntax/*.vim; do
+ install -Dm0644 "$vimsyntax" -t "$pkgdir"/usr/share/vim/vimfiles/syntax
+ done
+}
+
+_emacs() {
+ pkgdesc="stg plugin for emacs"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs"
+ amove usr/share/emacs
+}
+
+_vim() {
+ pkgdesc="vim filetype and syntax for stgit files"
+ install_if="$pkgname=$pkgver-r$pkgrel vim"
+ amove usr/share/vim/vimfiles
}
-sha512sums="f6fa6a11a31181a365a911af25c1656195584bed9adcb9707b4302097dc516cf9b12dfda6c3207daa127497027bb6604a68f6259bb74c2a111f742fd78edc3f9 stgit-0.22.tar.gz"
+sha512sums="
+3352837aabb83276e7d110fa6a7298a0c9e4e2c325771c7e32c1c3c6dfb7a763d10648858b78129e9365f7bddd33ac1cb28df33a74b6b43564c66f653a59da2c stgit-1.3.tar.gz
+"
diff --git a/testing/sthttpd/APKBUILD b/testing/sthttpd/APKBUILD
new file mode 100644
index 00000000000..3cdea07f5ba
--- /dev/null
+++ b/testing/sthttpd/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=sthttpd
+_pkgname=thttpd
+pkgver=2.27.1
+pkgrel=2
+pkgdesc="Supported fork of the thttpd web server"
+url="https://github.com/blueness/sthttpd"
+arch="all"
+license="custom:BSD"
+options="!check"
+makedepends="automake autoconf libtool"
+depends="!thttpd"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/blueness/sthttpd/archive/v$pkgver.tar.gz
+ $_pkgname.initd
+ $_pkgname.confd
+ $pkgname.conf
+ $_pkgname.logrotated
+ sthttpd-webgroup.patch
+ sthttpd-makeweb-notsuid.patch
+ libhttpd-c.patch
+ "
+
+prepare() {
+ default_prepare
+ sh autogen.sh
+}
+
+build() {
+ export WEBDIR=/var/www/http
+ export WEBGROUP=www-data
+ ./configure --prefix=/usr \
+ --bindir=/usr/sbin \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ 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 -m644 -D "$srcdir"/$pkgname.conf \
+ "$pkgdir"/etc/$pkgname.conf
+ install -m644 -D "$srcdir"/$_pkgname.logrotated \
+ "$pkgdir"/etc/logrotate.d/thttpd
+ install -d "$pkgdir"/var/log/thttpd
+
+ mkdir -p "$pkgdir/usr/share/doc/$pkgname"
+ cat > $pkgdir/usr/share/doc/$pkgname/README.alpine <<EOF
+ To use makeweb, please set suid to makeweb binary with:
+ -------------------------------------------------------
+ chmod 2755 /usr/sbin/makeweb
+EOF
+
+}
+sha512sums="
+5d42e32652eb2310c7379d2c4373ad8f54b33bd7c2b444f06d1756eb4ed296774ce3144d91bbba85c6ad604e575128dc7199b797dc8d1b4849b0249054ba5d24 sthttpd-2.27.1.tar.gz
+bc7416986e135ade401721708060b94ce3bb885a3aa40893d68abc1b305c13609e086fbb48f8db11656902c294bf558a81814013ef3a14d73f0c5f0df0decb7d thttpd.initd
+f51d7ccfb5fc07642329f2faa4e77382be75ab20f7efcd4b0c3f51b8a370e887a063069ae3c38268b91b1ca92dd0a35675ad8e3a52ce01f86d605eeb00a0f43a thttpd.confd
+fa5e870bba6125d03f16b5850da295ae8e19b9f3839b7edd2329bac69e4fbaf8fadc559da5003b46bc65be3b74a26a8c29a7c65ce3c513134d6bfcadcf51f8f5 sthttpd.conf
+c61eb7913929bbd30088721ea85f162060209850aa7774fb7b9417a06b6aab5c97f1949ed002416a7f2e75da85cd071682acbdfb93fe3e9fd2c8c8757f18a522 thttpd.logrotated
+e956715d31a8a5f974a566fb8d2018d8c2d9cf074fb45c32c78b231ebbd7b84a4b3f1fafcd77b9230e5c177fec5e22990d82372f068c945891799b55ebc8f359 sthttpd-webgroup.patch
+e32582f84d7e44cf2e60000600aa3e46e03d7ed660894bb4db016669d278a75329b7ee300e4b8dcd337209833a1ba62db9fb46077495cb0d73668cee266304eb sthttpd-makeweb-notsuid.patch
+a320432f5b3c186bd1c593f57042996f10b49dbaa45cbed3c27d6b88cb644af220e9216dea01a6723f68b61f237dc7314c0ea38121d78e522a436794e1d1cb87 libhttpd-c.patch
+"
diff --git a/testing/sthttpd/libhttpd-c.patch b/testing/sthttpd/libhttpd-c.patch
new file mode 100644
index 00000000000..6131851ad47
--- /dev/null
+++ b/testing/sthttpd/libhttpd-c.patch
@@ -0,0 +1,34 @@
+diff -Naur old/src/libhttpd.c new/src/libhttpd.c
+--- old/src/libhttpd.c 2014-10-04 03:43:00.000000000 +0900
++++ new/src/libhttpd.c 2015-08-14 17:15:30.081099286 +0900
+@@ -738,7 +738,7 @@
+ (void) my_snprintf( buf, sizeof(buf), "\
+ <HTML>\n\
+ <HEAD><TITLE>%d %s</TITLE></HEAD>\n\
+-<BODY BGCOLOR=\"#cc9999\" TEXT=\"#000000\" LINK=\"#2020ff\" VLINK=\"#4040cc\">\n\
++<BODY>\n\
+ <H2>%d %s</H2>\n",
+ status, title, status, title );
+ add_response( hc, buf );
+@@ -763,11 +763,8 @@
+ char buf[1000];
+
+ (void) my_snprintf( buf, sizeof(buf), "\
+-<HR>\n\
+-<ADDRESS><A HREF=\"%s\">%s</A></ADDRESS>\n\
+ </BODY>\n\
+-</HTML>\n",
+- SERVER_ADDRESS, EXPOSED_SERVER_SOFTWARE );
++</HTML>\n" );
+ add_response( hc, buf );
+ }
+
+@@ -2768,7 +2765,7 @@
+ (void) fprintf( fp, "\
+ <HTML>\n\
+ <HEAD><TITLE>Index of %.80s</TITLE></HEAD>\n\
+-<BODY BGCOLOR=\"#99cc99\" TEXT=\"#000000\" LINK=\"#2020ff\" VLINK=\"#4040cc\">\n\
++<BODY>\n\
+ <H2>Index of %.80s</H2>\n\
+ <PRE>\n\
+ mode links bytes last-changed name\n\
diff --git a/testing/sthttpd/sthttpd-makeweb-notsuid.patch b/testing/sthttpd/sthttpd-makeweb-notsuid.patch
new file mode 100644
index 00000000000..407638755a0
--- /dev/null
+++ b/testing/sthttpd/sthttpd-makeweb-notsuid.patch
@@ -0,0 +1,9 @@
+diff --git a/extras/Makefile.am b/extras/Makefile.am
+index e7c8852..ba8f03c 100644
+--- a/extras/Makefile.am
++++ b/extras/Makefile.am
+@@ -8,4 +8,3 @@ dist_sbin_SCRIPTS = syslogtocern
+
+ install-exec-hook:
+ chgrp $(WEBGROUP) $(DESTDIR)$(sbindir)/makeweb
+- chmod 2751 $(DESTDIR)$(sbindir)/makeweb
diff --git a/testing/sthttpd/sthttpd-webgroup.patch b/testing/sthttpd/sthttpd-webgroup.patch
new file mode 100644
index 00000000000..00bdc3ce6e7
--- /dev/null
+++ b/testing/sthttpd/sthttpd-webgroup.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index be32818..063b570 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -49,7 +49,7 @@ fi
+ AC_ARG_VAR(WEBGROUP, [The group that the web server will run as])
+
+ if test "x${WEBGROUP}" = "x" ; then
+- WEBGROUP='thttpd'
++ WEBGROUP='www-data'
+ fi
+
+ AC_CONFIG_FILES([Makefile
diff --git a/testing/sthttpd/sthttpd.conf b/testing/sthttpd/sthttpd.conf
new file mode 100644
index 00000000000..3d724e27b60
--- /dev/null
+++ b/testing/sthttpd/sthttpd.conf
@@ -0,0 +1,8 @@
+vhost
+chroot
+user=thttpd
+dir=/var/www/http
+cgipat=**.cgi
+logfile=/var/log/thttpd/thttpd.log
+pidfile=/var/run/thttpd.pid
+charset=utf-8
diff --git a/testing/sthttpd/sthttpd.pre-install b/testing/sthttpd/sthttpd.pre-install
new file mode 100644
index 00000000000..47dd3b06632
--- /dev/null
+++ b/testing/sthttpd/sthttpd.pre-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+addgroup -S -g 82 www-data 2>/dev/null
+adduser -S -D -H -h /var/www/localhost/htdocs -s /sbin/nologin \
+ -g thttpd thttpd 2>/dev/null
+addgroup thttpd www-data 2>/dev/null
+
+exit 0
diff --git a/testing/sthttpd/thttpd.confd b/testing/sthttpd/thttpd.confd
new file mode 100644
index 00000000000..65ad0f49086
--- /dev/null
+++ b/testing/sthttpd/thttpd.confd
@@ -0,0 +1,7 @@
+# Sample conf.d file for alpine linux
+
+#
+# Specify daemon options here.
+#
+
+sample_opts="-C /etc/sthttpd.conf"
diff --git a/testing/sthttpd/thttpd.initd b/testing/sthttpd/thttpd.initd
new file mode 100644
index 00000000000..5ba5247b6d7
--- /dev/null
+++ b/testing/sthttpd/thttpd.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+# init.d file for thttpd
+
+name=thttpd
+daemon=/usr/sbin/$name
+
+depend() {
+ need net
+ after firewall
+}
+
+start() {
+ ebegin "Starting ${name}"
+ start-stop-daemon --start --quiet \
+ --pidfile /var/run/${name}.pid \
+ --exec ${daemon} -- ${sample_opts}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${name}"
+ start-stop-daemon --stop --quiet \
+ --pidfile /var/run/$name.pid \
+ --exec ${daemon}
+ eend $?
+}
+
diff --git a/testing/sthttpd/thttpd.logrotated b/testing/sthttpd/thttpd.logrotated
new file mode 100644
index 00000000000..8e075fffd9d
--- /dev/null
+++ b/testing/sthttpd/thttpd.logrotated
@@ -0,0 +1,11 @@
+/var/log/thttpd/*log {
+ daily
+ rotate 5
+ compress
+ delaycompress
+ missingok
+ notifempty
+ postrotate
+ /etc/init.d/thttpd restart >/dev/null
+ endscript
+}
diff --git a/testing/stm32flash/APKBUILD b/testing/stm32flash/APKBUILD
deleted file mode 100644
index aa2a0f49f83..00000000000
--- a/testing/stm32flash/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=stm32flash
-pkgver=0.5
-pkgrel=1
-pkgdesc="Flash STM32 ARM SoCs using built-in ST serial bootloader over UART or I2C"
-url="https://sourceforge.net/p/stm32flash/wiki/Home/"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="linux-headers"
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname"
-options="!check" # no test suite
-
-build() {
- cd "$builddir"
- make
-}
-
-package() {
- cd "$builddir"
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="a01875a315d92d5e347372b736f2afa2f633851bf13af1326341c0c91e17cef54b6730ed1279280e86d3797033c856dfc25e8c595e010772b9287aaf965273f9 stm32flash-0.5.tar.gz"
diff --git a/testing/stockfish/APKBUILD b/testing/stockfish/APKBUILD
new file mode 100644
index 00000000000..fb177f78dd6
--- /dev/null
+++ b/testing/stockfish/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Prokop RandáÄek <prokop@rdck.dev>
+# Maintainer: Prokop RandáÄek <prokop@rdck.dev>
+pkgname=stockfish
+pkgver=16
+_nnue="5af11540bbfe"
+pkgrel=0
+pkgdesc="Strong chess engine"
+url="https://stockfishchess.org/"
+# s390x: doesn't build
+# ppc64le: fails tests
+arch="all !ppc64le !s390x"
+license="GPL-3.0-only"
+checkdepends="bash expect"
+source="$pkgname-$pkgver.tar.gz::https://github.com/official-stockfish/Stockfish/archive/refs/tags/sf_$pkgver.tar.gz
+ https://tests.stockfishchess.org/api/nn/nn-$_nnue.nnue
+ no-lto.patch
+ "
+builddir="$srcdir/Stockfish-sf_$pkgver/src"
+
+prepare() {
+ default_prepare
+
+ ln -sfv "$srcdir"/nn-$_nnue.nnue "$builddir"/
+}
+
+build() {
+ export CXXFLAGS="$CXXFLAGS -O2"
+ export CPPFLAGS="$CPPFLAGS -O2"
+
+ local arch
+ case "$CARCH" in
+ x86_64) arch=x86-64 ;;
+ x86) arch=x86-32 ;;
+ aarch64) arch=armv8 ;;
+ armhf) arch=armv7 ;;
+ ppc64le) arch=ppc-64 ;;
+ armv7) arch=armv7 ;;
+ riscv64) arch=riscv64 ;;
+ *) die "Unable to determine architecture from CARCH=$CARCH" ;;
+ esac
+
+ make COMP="${CC:-cc}" ARCH="$arch" profile-build
+}
+
+check() {
+ # not supported on all platforms that stockfish supports
+ # ../tests/instrumented.sh --valgrind
+ # ../tests/instrumented.sh --valgrind-thread
+ # requires building with sanitizers
+ # ../tests/instrumented.sh --sanitizer-undefined
+ # ../tests/instrumented.sh --sanitizer-thread
+ ../tests/instrumented.sh
+ ../tests/perft.sh
+ ../tests/reprosearch.sh
+}
+
+package() {
+ install -Dm755 stockfish "$pkgdir"/usr/bin/stockfish
+}
+
+sha512sums="
+cc8728bd76cb71ab2e3dddb909acf3ebd26a7d44130509dcb2cd90959c939d7324abebf2c69092230028333428a90fa345a10fcb4e9c50e53f4958c61daedcc7 stockfish-16.tar.gz
+e86633e1129a5e9727d137ddddba44918bb4dfb88b192659e2323ae4eafc44175c1e9c24ab1ce72dc2a05682b00bdf6aba1f1caf6b0b44ec1cef4a14ae465006 nn-5af11540bbfe.nnue
+1f80c03f8b1250c74344609fddd03d8360637149bba8a0e7110e2148e289b02242f7fd1e02af2536fe008a3aa6da89505e626f4e8af04b5652647867975eb0dc no-lto.patch
+"
diff --git a/testing/stockfish/no-lto.patch b/testing/stockfish/no-lto.patch
new file mode 100644
index 00000000000..48cf87e1fbc
--- /dev/null
+++ b/testing/stockfish/no-lto.patch
@@ -0,0 +1,47 @@
+diff --git a/Makefile b/Makefile
+index 82664618..41137e45 100644
+--- a/Makefile
++++ b/Makefile
+@@ -713,41 +713,6 @@ ifneq ($(GIT_DATE), )
+ CXXFLAGS += -DGIT_DATE=$(GIT_DATE)
+ endif
+
+-### 3.8 Link Time Optimization
+-### This is a mix of compile and link time options because the lto link phase
+-### needs access to the optimization flags.
+-ifeq ($(optimize),yes)
+-ifeq ($(debug), no)
+- ifeq ($(comp),$(filter $(comp),clang icx))
+- CXXFLAGS += -flto=full
+- ifeq ($(comp),icx)
+- CXXFLAGS += -fwhole-program-vtables
+- endif
+- ifeq ($(target_windows),yes)
+- CXXFLAGS += -fuse-ld=lld
+- endif
+- LDFLAGS += $(CXXFLAGS)
+-
+-# GCC and CLANG use different methods for parallelizing LTO and CLANG pretends to be
+-# GCC on some systems.
+- else ifeq ($(comp),gcc)
+- ifeq ($(gccisclang),)
+- CXXFLAGS += -flto -flto-partition=one
+- LDFLAGS += $(CXXFLAGS) -flto=jobserver
+- else
+- CXXFLAGS += -flto=full
+- LDFLAGS += $(CXXFLAGS)
+- endif
+-
+-# To use LTO and static linking on Windows,
+-# the tool chain requires gcc version 10.1 or later.
+- else ifeq ($(comp),mingw)
+- CXXFLAGS += -flto -flto-partition=one
+- LDFLAGS += $(CXXFLAGS) -save-temps
+- endif
+-endif
+-endif
+-
+ ### 3.9 Android 5 can only run position independent executables. Note that this
+ ### breaks Android 4.0 and earlier.
+ ifeq ($(OS), Android)
+
diff --git a/testing/stoken/APKBUILD b/testing/stoken/APKBUILD
deleted file mode 100644
index 3154358de52..00000000000
--- a/testing/stoken/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=stoken
-pkgver=0.92
-pkgrel=1
-pkgdesc="RSA SecurID-compatible software token for Linux/UNIX systems"
-url="http://stoken.sf.net"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="autoconf automake libtool libxml2-dev nettle-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cernekee/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
- cd "$builddir"
- ./autogen.sh
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --prefix=/usr \
- --datadir=/usr/share \
- --disable-static
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR=$pkgdir install
-}
-
-dev(){
- default_dev
- cd "$builddir"
- rm "$subpkgdir"/usr/share/doc/stoken/*
- rmdir "$subpkgdir"/usr/share/doc/stoken
- rmdir "$subpkgdir"/usr/share/doc
-}
-
-sha512sums="b41262320c24e487ece884fc431d835c787f057947a92e3d57ed2047bc02b576b072e8a69f4b58b47ab1f913b5ae8c3ee8108d3b55c1477f15848420b668fea3 stoken-0.92.tar.gz"
diff --git a/testing/stone-soup/APKBUILD b/testing/stone-soup/APKBUILD
new file mode 100644
index 00000000000..3cca1755bf9
--- /dev/null
+++ b/testing/stone-soup/APKBUILD
@@ -0,0 +1,116 @@
+# Contributor: Matthew T Hoare <matthew.t.hoare@gmail.com>
+# Maintainer: Matthew T Hoare <matthew.t.hoare@gmail.com>
+pkgname=stone-soup
+pkgver=0.31.0
+pkgrel=0
+pkgdesc="Open-source, single-player, role-playing roguelike game of exploration and treasure-hunting"
+url="https://crawl.develz.org"
+arch="all"
+license="BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND MIT AND Zlib AND Apache-2.0 AND BSL-1.0"
+depends="mesa-dri-gallium font-dejavu"
+makedepends="
+ freetype-dev
+ glu-dev
+ lua5.1-dev
+ mesa-dev
+ ncurses-dev
+ perl
+ pngcrush
+ py3-yaml
+ python3
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_mixer-dev
+ sqlite-dev
+ "
+options="!check" # no checks
+source="$pkgname-$pkgver.tar.xz::https://github.com/crawl/crawl/releases/download/$pkgver/stone_soup-$pkgver-nodeps.tar.xz
+ crawl.desktop
+ crawl-tiles.desktop
+ no-execinfo.patch
+ root-owner.patch
+ "
+builddir="$srcdir/stone_soup-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # fix version
+ git init .
+ git config user.name a
+ git config user.email 'a@a'
+ git add .
+ git commit -m "$pkgver"
+ git tag $pkgver
+
+ # create separate source directories for console and tiles versions
+ cp -r source console
+ cp -r source tiles
+}
+
+build() {
+ # first build tiles version
+ make -C tiles \
+ DESTDIR="$pkgdir" \
+ SAVEDIR="~/.crawl/" \
+ DATADIR="/usr/share/$pkgname/data" \
+ TILES=y \
+ SOUND=y \
+ EXTERNAL_LDFLAGS="$LDFLAGS" \
+ prefix=/usr \
+ bin_prefix=bin
+
+ # then build console version
+ make -C console \
+ DESTDIR="$pkgdir" \
+ SAVEDIR="~/.crawl/" \
+ DATADIR="/usr/share/$pkgname/data" \
+ SOUND=y \
+ EXTERNAL_LDFLAGS="$LDFLAGS" \
+ prefix=/usr \
+ bin_prefix=bin
+}
+
+package() {
+ # first install tiles version
+ make -C tiles \
+ DESTDIR="$pkgdir" \
+ SAVEDIR="~/.crawl/" \
+ DATADIR="/usr/share/$pkgname/data" \
+ TILES=y \
+ SOUND=y \
+ EXTERNAL_LDFLAGS="$LDFLAGS" \
+ prefix=/usr \
+ bin_prefix=bin \
+ install
+
+ # rename tiles executable to avoid clashing with console crawl
+ mv "$pkgdir"/usr/bin/crawl "$pkgdir"/usr/bin/crawl-tiles
+
+ # now install console version
+ make -C console \
+ DESTDIR="$pkgdir" \
+ SAVEDIR="~/.crawl/" \
+ DATADIR="/usr/share/$pkgname/data" \
+ SOUND=y \
+ EXTERNAL_LDFLAGS="$LDFLAGS" \
+ prefix=/usr \
+ bin_prefix=bin \
+ install
+
+ # install icon and .desktop files
+ install -Dm644 source/dat/tiles/stone_soup_icon-32x32.png \
+ "$pkgdir"/usr/share/pixmaps/"$pkgname".png
+ install -Dm644 "$srcdir"/crawl.desktop \
+ "$pkgdir"/usr/share/applications/crawl.desktop
+ install -Dm644 "$srcdir"/crawl-tiles.desktop \
+ "$pkgdir"/usr/share/applications/crawl-tiles.desktop
+}
+
+sha512sums="
+f0027144fb538f605c9c8e1987d689e79341e19dc393971c86cfc3ec7aa4d62d5abddc4a38e05d8b2d047098b64cdcc0dd003b4e92ecdab09dae8a16a76043a6 stone-soup-0.31.0.tar.xz
+8e14cfa97f8765126050b14dc85cee60a6f00fe458b21714a34403872fbfc11f7b1d42897424936fbaaba5ad0fed76c10a90c4c144076c9526f7e653c3dbbca0 crawl.desktop
+d8c64f6c388f3551e6744b0fccfa0fc7148cb839174a5ed464fdb46511f8e0f4e66cb297f91446e5e098cbacddaba88476f499fb50e6c39e6563fe8231dafe54 crawl-tiles.desktop
+3fbd434786edb456b27942cd1aa8034241359b701afadea73f54c3622b1ccaf6f7f3a1c01b8d0d3e8388baaed38b205c4013da35a00974848af5b27f6141c379 no-execinfo.patch
+9b785d08e722a8fee4f1fb624b77110cfdaa6d74422d874d53a13064b1054463738aceb4a40c83a1c5932c07f76186f1136bb60c00ed96e10e225edcb4722636 root-owner.patch
+"
diff --git a/testing/stone-soup/crawl-tiles.desktop b/testing/stone-soup/crawl-tiles.desktop
new file mode 100644
index 00000000000..dde7806e818
--- /dev/null
+++ b/testing/stone-soup/crawl-tiles.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+
+Name=Dungeon Crawl (tiles)
+Exec=crawl-tiles
+Icon=stone-soup
+Categories=Game;AdventureGame;
diff --git a/testing/stone-soup/crawl.desktop b/testing/stone-soup/crawl.desktop
new file mode 100644
index 00000000000..a90c92f7b1a
--- /dev/null
+++ b/testing/stone-soup/crawl.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+
+Name=Dungeon Crawl
+Exec=crawl
+Terminal=true
+Icon=stone-soup
+Categories=Game;AdventureGame;
diff --git a/testing/stone-soup/no-execinfo.patch b/testing/stone-soup/no-execinfo.patch
new file mode 100644
index 00000000000..8ae98b27c4a
--- /dev/null
+++ b/testing/stone-soup/no-execinfo.patch
@@ -0,0 +1,13 @@
+diff --git a/source/crash.cc b/source/crash.cc
+index 7b4f65d..e77f8ce 100644
+--- a/source/crash.cc
++++ b/source/crash.cc
+@@ -7,7 +7,7 @@
+
+ #include "crash.h"
+
+-#if defined(UNIX)
++#if defined(__GLIBC__)
+ #include <unistd.h>
+ #include <sys/param.h>
+ #define BACKTRACE_SUPPORTED
diff --git a/testing/stone-soup/root-owner.patch b/testing/stone-soup/root-owner.patch
new file mode 100644
index 00000000000..6605d259b35
--- /dev/null
+++ b/testing/stone-soup/root-owner.patch
@@ -0,0 +1,13 @@
+diff --git a/source/Makefile b/source/Makefile
+index eb65f6d..2b13ab1 100644
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -407,7 +407,7 @@ MCHMOD_SAVEDIR := 775
+ MCHMOD_LOGS := 664
+
+ # The user:group to install the game as.
+-INSTALL_UGRP := games:games
++INSTALL_UGRP := root:root
+ endif
+
+ ifeq ($(patsubst %/local,%,$(patsubst %/,%,$(prefix))),/usr)
diff --git a/testing/straw-viewer/APKBUILD b/testing/straw-viewer/APKBUILD
new file mode 100644
index 00000000000..e0c826d5a46
--- /dev/null
+++ b/testing/straw-viewer/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=straw-viewer
+pkgver=0.1.3
+pkgrel=2
+pkgdesc="GTK+ interface to YouTube using the API of invidio.us"
+url="https://github.com/trizen/straw-viewer"
+arch="noarch"
+license="Artistic-2.0 License"
+depends="perl perl-gtk3 perl-file-sharedir perl-data-dump perl-json-xs
+ perl-lwp-protocol-https perl-term-readline-gnu"
+subpackages="$pkgname-doc"
+makedepends="perl-dev perl-libwww perl-json
+ perl-unicode-linebreak perl-module-build
+ "
+source="straw-viewer-$pkgver.tar.gz::https://github.com/trizen/straw-viewer/archive/$pkgver.tar.gz"
+builddir="$srcdir"/straw-viewer-$pkgver
+build() {
+ perl Build.PL --destdir "$pkgdir" --installdirs vendor --gtk
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install
+ rm -rf $pkgdir/usr/lib
+}
+
+sha512sums="a26f2392f5281983294d250b7e82fed08f7b670f0d9da2872cd36e26b0bdb356c533a6731faa3b655753448b50efd56ee486c44b9cbcbf1592b16baa2371dfb4 straw-viewer-0.1.3.tar.gz"
diff --git a/testing/streamlink/APKBUILD b/testing/streamlink/APKBUILD
deleted file mode 100644
index c256c0128e0..00000000000
--- a/testing/streamlink/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Robert Sacks <robert@sacks.email>
-# Maintainer: Robert Sacks <robert@sacks.email>
-pkgname=streamlink
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="CLI for extracting streams from various websites to a video player of your choosing"
-url="https://streamlink.github.io/"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3 py3-pycryptodome py3-pycountry py3-requests py3-pysocks
- py3-websocket-client py3-isodate rtmpdump"
-makedepends="py3-setuptools py3-sphinx py3-recommonmark"
-checkdepends="py3-pytest py3-pytest-cov py3-codecov py3-coverage py3-freezegun
- py3-requests-mock py3-mock"
-subpackages="$pkgname-doc"
-source="streamlink-$pkgver.tar.gz::https://github.com/streamlink/streamlink/archive/$pkgver.tar.gz"
-
-build() {
- export STREAMLINK_USE_PYCOUNTRY=1
- python3 setup.py build
- python3 setup.py build_sphinx -b man
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- install -Dm644 build/sphinx/man/streamlink.1 \
- "$pkgdir"/usr/share/man/man1/streamlink.1
-}
-
-sha512sums="45591cc026f5582020ce0541083baeace58f79d7906a7fbd031d412d8558f51ff80042aadeb7e25fb99ff528e2dffcef4df08ddf124e3ea8a3c9b9d947bed257 streamlink-1.4.1.tar.gz"
diff --git a/testing/strfry/APKBUILD b/testing/strfry/APKBUILD
new file mode 100644
index 00000000000..5e1a853c164
--- /dev/null
+++ b/testing/strfry/APKBUILD
@@ -0,0 +1,132 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=strfry
+pkgver=0.9.6
+pkgrel=0
+pkgdesc="Nostr relay written in C++"
+url="https://github.com/hoytech/strfry"
+# x86, armhf, s390x: flatbuffers not available
+# riscv64: not detected as supported by Double-Conversion
+arch="all !x86 !armhf !s390x !riscv64"
+license="GPL-3.0-or-later"
+makedepends="
+ flatbuffers-dev
+ libsecp256k1-dev
+ linux-headers
+ lmdb-dev
+ openssl-dev
+ perl-regexp-grammars
+ perl-template-toolkit
+ perl-yaml
+ zlib-dev
+ zstd-dev
+ "
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+_negentropy=bdd421c1fbf8ca6d4404597411674f09eb578eb5
+_golpe=19ce1715c271eb5c1ae3dc9f422093e4afe6c5e7
+_uwebsockets=fb7e8e60a7eb02f476b3b1785d810ac91cc685f2
+_hoytech_cpp=73dcad058bfd96f9b2a0e7d5032fde441ad6a808
+_config=ab8c38a2d00e58dd004fd71da7f0e70749993fc1
+_rasgueadb=8cb6edd4aa6cdedfb6c2f8d34102b392bb1586fe
+_lmdbxx=13851b3333a8840398ba0aa8b7d0febe661b08d5
+_docopt_cpp=6f5de76970be94a6f1e4556d1716593100e285d2
+_json=d73d01389660084a8dbedd44eb674da57f26aba6
+_pegtl=9afe8a71920b9dadf309a503d734143e1ff78b3e
+_loguru=644f60dca77de3b0f718a03d370c8ebdf5f97968
+_parallel_hashmap=87ece91c6e4c457c5faac179dae6e11e2cd39b16
+_templar=05554eea58a15d461e3385507c1c3fd1bfd05fa3
+source="https://github.com/hoytech/strfry/archive/$pkgver/strfry-$pkgver.tar.gz
+ negentropy-$_negentropy.tar.gz::https://github.com/hoytech/negentropy/archive/$_negentropy.tar.gz
+ golpe-$_golpe.tar.gz::https://github.com/hoytech/golpe/archive/$_golpe.tar.gz
+ uwebsockets-$_uwebsockets.tar.gz::https://github.com/hoytech/uWebSockets/archive/$_uwebsockets.tar.gz
+ hoytech-cpp-$_hoytech_cpp.tar.gz::https://github.com/hoytech/hoytech-cpp/archive/$_hoytech_cpp.tar.gz
+ taocpp-config-$_config.tar.gz::https://github.com/taocpp/config/archive/$_config.tar.gz
+ rasgueadb-$_rasgueadb.tar.gz::https://github.com/hoytech/rasgueadb/archive/$_rasgueadb.tar.gz
+ lmdbxx-$_lmdbxx.tar.gz::https://github.com/hoytech/lmdbxx/archive/$_lmdbxx.tar.gz
+ docopt.cpp-$_docopt_cpp.tar.gz::https://github.com/docopt/docopt.cpp/archive/$_docopt_cpp.tar.gz
+ taocpp-json-$_json.tar.gz::https://github.com/taocpp/json/archive/$_json.tar.gz
+ taocpp-PEGTL-$_pegtl.tar.gz::https://github.com/taocpp/PEGTL/archive/$_pegtl.tar.gz
+ loguru-$_loguru.tar.gz::https://github.com/emilk/loguru/archive/$_loguru.tar.gz
+ parallel-hashmap-$_parallel_hashmap.tar.gz::https://github.com/greg7mdp/parallel-hashmap/archive/$_parallel_hashmap.tar.gz
+ templar-$_templar.tar.gz::https://github.com/hoytech/templar/archive/$_templar.tar.gz
+ pre-build-pkgver_patch
+ strfry-conf.patch
+ strfry.initd
+ strfry.confd
+ "
+
+prepare() {
+ default_prepare
+
+ rmdir -v external/negentropy
+ ln -sv ../../negentropy-$_negentropy external/negentropy
+ rmdir -v golpe
+ ln -sv ../golpe-$_golpe golpe
+
+ rmdir -v golpe/external/*
+ ln -sv ../../uWebSockets-$_uwebsockets \
+ golpe/external/uWebSockets
+ ln -sv ../../hoytech-cpp-$_hoytech_cpp \
+ golpe/external/hoytech-cpp
+ ln -sv ../../config-$_config \
+ golpe/external/config
+ ln -sv ../../rasgueadb-$_rasgueadb \
+ golpe/external/rasgueadb
+ ln -sv ../../lmdbxx-$_lmdbxx \
+ golpe/external/lmdbxx
+ ln -sv ../../docopt.cpp-$_docopt_cpp \
+ golpe/external/docopt.cpp
+ ln -sv ../../json-$_json \
+ golpe/external/json
+ ln -sv ../../PEGTL-$_pegtl \
+ golpe/external/PEGTL
+ ln -sv ../../loguru-$_loguru \
+ golpe/external/loguru
+ ln -sv ../../parallel-hashmap-$_parallel_hashmap \
+ golpe/external/parallel-hashmap
+ ln -sv ../../templar-$_templar \
+ golpe/external/templar
+
+ # fix version string
+ patch golpe/pre-build.pl "$srcdir"/pre-build-pkgver_patch
+ sed -i "s|@PKGVER@|$pkgver|" golpe/pre-build.pl
+}
+
+build() {
+ make
+}
+
+check() {
+ ./strfry --version
+ ./strfry --help
+}
+
+package() {
+ install -Dvm755 strfry -t "$pkgdir"/usr/sbin/
+ install -Dvm644 strfry.conf -t "$pkgdir"/etc/
+
+ install -Dvm755 "$srcdir"/strfry.initd "$pkgdir"/etc/init.d/strfry
+ install -Dvm644 "$srcdir"/strfry.confd "$pkgdir"/etc/conf.d/strfry
+}
+
+sha512sums="
+aa8b4965c85596b7af754060f1e1d43cd3cc6e1bd1ad97241a6314bfda6f6ef6a6b47007aa3c549a78378f2419b0a8fa825b28be6126a2549219c41e3a0c6f1d strfry-0.9.6.tar.gz
+cbb8e18b6c48434618cda528c386908a9de80cdb85f807031710dcb3898b5b5f149823be4365c32d9656aa76dcaae69e8aa4e0fa18473c200846782ea87f3759 negentropy-bdd421c1fbf8ca6d4404597411674f09eb578eb5.tar.gz
+5889931319907ae3bd01223693de4fcae89672c15a4113d51e1b8470fab49486c77af1ee78fa71942dd11cbd8d0b99b31f83ad7039b3951f4dba639b1a4e6d03 golpe-19ce1715c271eb5c1ae3dc9f422093e4afe6c5e7.tar.gz
+3b4d8e1b5c55ce7eb147c309b42af09fa40eaa037828c11851c47cbe417fe280bd0b825fb677fc7a5b14021669971ed09dcffa371e663ea9b38f6ee3cc9d68a9 uwebsockets-fb7e8e60a7eb02f476b3b1785d810ac91cc685f2.tar.gz
+dec902b5a3143113840dab26b060689f117e61e3896a9135d35e430f59fe367b752665274f6d936a95933858beec1927e14b5e93b5b3ad571fa7e20b839d14c0 hoytech-cpp-73dcad058bfd96f9b2a0e7d5032fde441ad6a808.tar.gz
+0d09483540b5b118b29338149ff41b1a8f70a5e2462746f08aa100203c1815d5978eb818613d3771959a34c9c24bb94d46a22efd1e50ff8efdd7308ce049c634 taocpp-config-ab8c38a2d00e58dd004fd71da7f0e70749993fc1.tar.gz
+d70ba9518d68e230d62aa8df228f6149e24ce24901fccadf0c731ac40a9f10d5fdcc2279b8f7281ee7103de69d67a164a3cb7967e55b710b7ea7b303f6c26602 rasgueadb-8cb6edd4aa6cdedfb6c2f8d34102b392bb1586fe.tar.gz
+d29a8a3e0be4ca7e7b7de61f4012ad74356611238405d798ae7e3424b791e8f90a714a8e2fbb2f1ab2782e80b0b3485b2f1f0d044f67341499c1696b2a75d7a7 lmdbxx-13851b3333a8840398ba0aa8b7d0febe661b08d5.tar.gz
+e4212711e88beee26258ef2644dd8577b6708dea47f05c6cce596c3198f659aa7c1e1d25eb57aae8b19d422c7bd7f628ba6db8f62ed1d3d28f171ab1db86db73 docopt.cpp-6f5de76970be94a6f1e4556d1716593100e285d2.tar.gz
+46e1e73700c773c473d939ff435d2a942b0e67c7933575ef4a254d2dbd3dee68f1d57f6c0c66e84dd5be8f9a4102ae23fc5f77f4c4e78fb9c72fc5c28a313d24 taocpp-json-d73d01389660084a8dbedd44eb674da57f26aba6.tar.gz
+879aeba0bb817657f60e8e74bf95f2bed6ed03f93e69cfda6d6ad5235719f70f177a9ba34d46c03c53c61bf07e676e943f186d46dd67c21827e63d21691a52fe taocpp-PEGTL-9afe8a71920b9dadf309a503d734143e1ff78b3e.tar.gz
+c937e6b359bdbc476758a3caaa32cd0ebd8ae443fa786887c811e8cc35c756a4d04ab247c7bd95f499e1345c0c2ca67716f4d8fadd84e963ca4fee941bde7073 loguru-644f60dca77de3b0f718a03d370c8ebdf5f97968.tar.gz
+9cb3db26acb39395475aed1dac1188ab3e32359d529ef5b19164a2410ee986c4255f652099ab20f3afdff1ce5ac28b5efbf66887bbec39f6327115041375e919 parallel-hashmap-87ece91c6e4c457c5faac179dae6e11e2cd39b16.tar.gz
+f97b8bf0b349a5a90eefdde008e0c185f0904d6b7b3deccec2f96a6ee4246e0e285cd157e74978255540ca369820c438a1a53039c12fd8638c1531a9ed58c88d templar-05554eea58a15d461e3385507c1c3fd1bfd05fa3.tar.gz
+0eb3137fbb994a7f74e1008b0e8e49e1c00f6d55d4807705bef5de84b9fa92e3de64378fab3d6ef37231f66e8f3bc477428787a2a241ac024b732fd58c1aa654 pre-build-pkgver_patch
+a2daa5d7cb87e953667558b99d22a0f119cb83e4931b559c2d21b7e8e494707b3a6d4ecb2722de35386e60d07efb56bb8cda05746708b985bf97f153ea6981b4 strfry-conf.patch
+b7d370863afecc96545ed9bfe5e5c796e23be4d473586129b610eb6bbd7b2a33c919ffdb3214d174d375ef60c089665065d27c9aef251ee4560dabe47e0c7b98 strfry.initd
+e1819ab27702adb341cba3e5d9c3f4f0a4a840b8337870b1b78011691ab8d13f194e0a92bc53889adc0a1fbf92becac1ba41e47f4b82a300b4d9e77af4e4593e strfry.confd
+"
diff --git a/testing/strfry/pre-build-pkgver_patch b/testing/strfry/pre-build-pkgver_patch
new file mode 100644
index 00000000000..2997c002d8a
--- /dev/null
+++ b/testing/strfry/pre-build-pkgver_patch
@@ -0,0 +1,11 @@
+--- a/golpe/pre-build.pl
++++ b/golpe/pre-build.pl
+@@ -29,7 +29,7 @@
+ print $fh <<"END";
+ #pragma once
+
+-#define APP_GIT_VERSION "$gitVer"
++#define APP_GIT_VERSION "@PKGVER@"
+ END
+ }
+
diff --git a/testing/strfry/strfry-conf.patch b/testing/strfry/strfry-conf.patch
new file mode 100644
index 00000000000..267db57b0db
--- /dev/null
+++ b/testing/strfry/strfry-conf.patch
@@ -0,0 +1,20 @@
+--- a/strfry.conf
++++ b/strfry.conf
+@@ -3,7 +3,7 @@
+ ##
+
+ # Directory that contains the strfry LMDB database (restart required)
+-db = "./strfry-db/"
++db = "/var/lib/strfry/"
+
+ dbParams {
+ # Maximum number of threads/processes that can simultaneously have LMDB transactions open (restart required)
+@@ -47,7 +47,7 @@
+ port = 7777
+
+ # Set OS-limit on maximum number of open files/sockets (if 0, don't attempt to set) (restart required)
+- nofiles = 1000000
++ nofiles = 0
+
+ # HTTP header that contains the client's real IP, before reverse proxying (ie x-real-ip) (MUST be all lower-case)
+ realIpHeader = ""
diff --git a/testing/strfry/strfry.confd b/testing/strfry/strfry.confd
new file mode 100644
index 00000000000..2c0f19e2819
--- /dev/null
+++ b/testing/strfry/strfry.confd
@@ -0,0 +1,7 @@
+# Configuration for /etc/init.d/strfry
+
+# Configuration file for strfry daemon.
+#STRFRY_CONFIG="/etc/strfry.conf"
+
+# Comment out to disable process supervisor.
+supervisor=supervise-daemon
diff --git a/testing/strfry/strfry.initd b/testing/strfry/strfry.initd
new file mode 100644
index 00000000000..8cc3b2a8b9e
--- /dev/null
+++ b/testing/strfry/strfry.initd
@@ -0,0 +1,30 @@
+#!/sbin/openrc-run
+
+name=strfry
+description="Strfry Nostr relay"
+
+: ${STRFRY_CONFIG:="/etc/strfry.conf"}
+export STRFRY_CONFIG
+
+command="/usr/sbin/strfry"
+command_args="relay"
+command_background="yes"
+command_user="strfry:strfry"
+pidfile="/run/${RC_SVCNAME}.pid"
+output_log="/var/log/strfry.log"
+error_log="/var/log/strfry.log"
+
+required_files="$STRFRY_CONFIG"
+
+depend() {
+ need localmount net
+ after firewall
+}
+
+start_pre() {
+ checkpath -q -f -m 0640 -o "$command_user" \
+ "$STRFRY_CONFIG" "$output_log" "$error_log"
+
+ checkpath -q -d -m 0750 -o "$command_user" \
+ /var/lib/strfry
+}
diff --git a/testing/strfry/strfry.pre-install b/testing/strfry/strfry.pre-install
new file mode 100644
index 00000000000..3285bd9b24e
--- /dev/null
+++ b/testing/strfry/strfry.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S strfry 2>/dev/null
+adduser -S -D \
+ -h /var/lib/strfry \
+ -s /sbin/nologin \
+ -G strfry \
+ -g "Strfry Nostr relay" \
+ strfry 2>/dev/null
+
+exit 0
diff --git a/testing/stubby/APKBUILD b/testing/stubby/APKBUILD
new file mode 100644
index 00000000000..4fa530e0cf6
--- /dev/null
+++ b/testing/stubby/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Johannes Heimansberg <git@jhe.dedyn.io>
+# Maintainer: Johannes Heimansberg <git@jhe.dedyn.io>
+pkgname=stubby
+pkgver=0.4.3
+pkgrel=0
+pkgdesc="DNS Privacy stub resolver"
+url="https://dnsprivacy.org/dns_privacy_daemon_-_stubby/"
+arch="all"
+license="BSD-3-Clause"
+subpackages="$pkgname-doc $pkgname-openrc"
+makedepends="cmake
+ getdns-dev
+ libcap-utils
+ openssl-dev
+ samurai
+ yaml-dev
+"
+checkdepends="check"
+pkgusers="stubby"
+pkggroups="stubby"
+source="$pkgname-$pkgver.tar.gz::https://github.com/getdnsapi/stubby/archive/refs/tags/v$pkgver.tar.gz
+ stubby.confd
+ stubby.initd
+ "
+options="!check" # no tests
+
+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 \
+ -DENABLE_GETDNS_STATIC_LINK=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rmdir -p "$pkgdir"/var/run || true
+ install -Dm644 "$srcdir"/stubby.confd "$pkgdir"/etc/conf.d/stubby
+ install -Dm755 "$srcdir"/stubby.initd "$pkgdir"/etc/init.d/stubby
+}
+
+sha512sums="
+422d46b03200178acab6129d0268b5732fa2f439ad164c2ce771e68cd01737b4248d5a678ba0da716af41a24110f6b41ef3bcc567ad6fd94838a9be2d2cc8da3 stubby-0.4.3.tar.gz
+1ca2464264d938f880460a27dc92325a30fa35c26461bf69dba2f17849b2d6450ba3bec704ead19148daf06f882c2d60f99dc8f970d0229e62040b793aca9517 stubby.confd
+85a5be32a757de431cf419754a77ff7e10c7ab8a0277d37748fa37ec6f75acc6973cd1774c031729190ba760a11325874e1813924e5430bd3638149ffbd5c3a3 stubby.initd
+"
diff --git a/testing/stubby/stubby.confd b/testing/stubby/stubby.confd
new file mode 100644
index 00000000000..232545567d0
--- /dev/null
+++ b/testing/stubby/stubby.confd
@@ -0,0 +1,2 @@
+# comment out to not use process supervisor
+supervisor=supervise-daemon
diff --git a/testing/stubby/stubby.initd b/testing/stubby/stubby.initd
new file mode 100644
index 00000000000..7a1a33a19c2
--- /dev/null
+++ b/testing/stubby/stubby.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+name="Stubby DNS Privacy stub resolver"
+
+command="/usr/bin/stubby"
+command_args="$command_args -C /etc/stubby/stubby.yml"
+command_background=true
+pidfile="/run/${RC_SVCNAME}"
+command_user="stubby:stubby"
+capabilities="^cap_net_bind_service"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/stubbyboot/APKBUILD b/testing/stubbyboot/APKBUILD
new file mode 100644
index 00000000000..d92489b9fcf
--- /dev/null
+++ b/testing/stubbyboot/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Dermot Bradley <dermot_bradley@yahoo.com>
+# Maintainer:
+pkgname=stubbyboot
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="simple UEFI stub"
+url="https://github.com/puzzleos/stubby"
+arch="x86 x86_64 aarch64"
+license="LGPL-2.1"
+depends="$pkgname-efistub=$pkgver-r$pkgrel"
+makedepends="
+ gnu-efi-dev
+ "
+subpackages="
+ $pkgname-efistub
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/puzzleos/stubby/archive/refs/tags/v$pkgver.tar.gz
+ no-werror.patch
+ "
+
+builddir="$srcdir/stubby-$pkgver"
+
+build() {
+ make build
+}
+
+package() {
+ install -Dm755 stubby-smash.1.sh -t "$pkgdir"/usr/bin/
+ install -Dm755 stubby-smash.2.sh -t "$pkgdir"/usr/bin/
+ case "$CARCH" in
+ aarch64 )
+ _archname="aa64" ;;
+ x86 )
+ _archname="ia32" ;;
+ x86_64 )
+ _archname="x64" ;;
+ esac
+
+ install -Dm755 stubby.efi \
+ "$pkgdir"/usr/lib/$pkgname/linux$_archname.efi.stub
+}
+
+check() {
+ make test
+}
+
+efistub() {
+ pkgdesc="Linux UEFI stub from the stubby bootloader project"
+ depends=
+
+ amove usr/lib/$pkgname
+}
+
+sha512sums="
+fae83c3a720bdb7d62be30856df9676dc1e85051b16d8d2c166e5b7be5fdc5d907e592f180500a3739af6bae8e44a60684a88f66877c0de2445f5257bf29f135 stubbyboot-1.0.2.tar.gz
+85e5a8d2af96550f49ce07e4660fdbc036a9eab63e2dbc53e7c3896a3dbf0044f07990db9f3c7e8ecc28178bd1ea2a5ac448368789563b7275ab636f6665a1e2 no-werror.patch
+"
diff --git a/testing/stubbyboot/no-werror.patch b/testing/stubbyboot/no-werror.patch
new file mode 100644
index 00000000000..0c7682b0568
--- /dev/null
+++ b/testing/stubbyboot/no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/make.conf b/make.conf
+index a29d8ac..8f4706b 100644
+--- a/make.conf
++++ b/make.conf
+@@ -31,7 +31,7 @@ EFI_CRT_OBJS = ${EFILIB}/crt0-efi-${ARCH}.o
+ EFI_LDS = ${EFILIB}/elf_${ARCH}_efi.lds
+
+ CFLAGS = \
+- -Wall -Werror \
++ -Wall \
+ ${EFIINCS} -fno-stack-protector -fpic -fshort-wchar \
+ -DGIT_VERSION=\"$(shell git rev-parse HEAD | cut -c1-12)\"
+ ifeq (${ARCH},x86_64)
diff --git a/testing/sturmreader/APKBUILD b/testing/sturmreader/APKBUILD
new file mode 100644
index 00000000000..618ce669b07
--- /dev/null
+++ b/testing/sturmreader/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Emanuele Sorce <emanuele.sorce@hotmail.com>
+# Maintainer: Emanuele Sorce <emanuele.sorce@hotmail.com>
+pkgname=sturmreader
+pkgver=3.7.2
+pkgrel=0
+pkgdesc="E-Book and comic reader for mobile devices"
+url="https://gitlab.com/tronfortytwo/sturmreader"
+arch="aarch64 armv7 x86 x86_64" # Limited by qt5-qtwebengine
+license="GPL-3.0-or-later"
+depends="
+ qt5-qtbase-sqlite
+ qt5-qtquickcontrols
+ qt5-qtsvg
+ qt5-qtsystems
+ "
+makedepends="
+ cmake
+ gettext-dev
+ poppler-qt5-dev
+ qt5-qtdeclarative-dev
+ qt5-qtlocation-dev
+ qt5-qtquickcontrols2-dev
+ qt5-qtsvg-dev
+ qt5-qtwebchannel-dev
+ qt5-qtwebengine-dev
+ quazip-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+source="https://gitlab.com/tronfortytwo/sturmreader/-/archive/$pkgver/sturmreader-$pkgver.tar.gz
+ intl.patch
+ "
+
+# Sturm reader has no testing! Not even a --version thing
+options="!check"
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -G Ninja -B build -Wno-dev \
+ -DCLICK_MODE=OFF \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+1cc5bf66d12aa4c7aee5136b5192db04618d88a0bd304ae579906c98a17f4759bca419a905af5b563a448aded94011c08cfe3d02b6a2ac5f20ef51f950b958d9 sturmreader-3.7.2.tar.gz
+287f48924bc3fb60c651e54d687872baf49882aa009c28a27de5fca60c586a7a6daf00c8dbfdfb45efaec6688253966a4c5de2973e7d0a75ceac197cfe879c60 intl.patch
+"
diff --git a/testing/sturmreader/intl.patch b/testing/sturmreader/intl.patch
new file mode 100644
index 00000000000..f1569bbf900
--- /dev/null
+++ b/testing/sturmreader/intl.patch
@@ -0,0 +1,13 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -51,9 +51,9 @@
+
+ find_package(ZLIB REQUIRED)
+
+-# find_package(Intl REQUIRED)
++find_package(Intl REQUIRED)
+ find_package(QUAZIP REQUIRED)
+ #find_package(QuaZip-Qt5 REQUIRED)
+
+ if(CLICK_MODE)
+ # Find out the architecture for package building
diff --git a/testing/stw/APKBUILD b/testing/stw/APKBUILD
new file mode 100644
index 00000000000..5484c6498b9
--- /dev/null
+++ b/testing/stw/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Miles Alan <m@milesalan.com>
+pkgname=stw
+pkgver=0.3
+pkgrel=0
+pkgdesc="Simple text window for X"
+url="https://github.com/sineemore/stw"
+arch="all"
+license="MIT"
+makedepends="
+ libx11-dev
+ libxft-dev
+ libxrender-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sineemore/stw/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ make
+ make stw.1
+}
+
+package() {
+ install -Dm755 stw "$pkgdir"/usr/bin/stw
+ install -Dm644 ./*.1 -t $pkgdir/usr/share/man/man1/
+}
+
+sha512sums="
+409171d2f99c9ac3adccf97a34d14ee312ca6d634ab32210cd5c1167be1a80757c7d29a2a760b121963d185c51343d141ea93db4f92bb7605e68b444c9e8a33f stw-0.3.tar.gz
+"
diff --git a/testing/subdl/0001-Remove-bogus-empty-package.patch b/testing/subdl/0001-Remove-bogus-empty-package.patch
new file mode 100644
index 00000000000..96bcf7fbb98
--- /dev/null
+++ b/testing/subdl/0001-Remove-bogus-empty-package.patch
@@ -0,0 +1,31 @@
+From ceb17f79f25a26dc18543a850af30a9e24e8dbb9 Mon Sep 17 00:00:00 2001
+From: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+Date: Fri, 16 Jun 2023 10:51:02 +0200
+Subject: [PATCH] Remove bogus empty package
+
+This empty package name is not valid, and results in `python setup.py
+build` and `python setup.py wheel` failing with:
+
+ WARNING: '' not a valid package name; please use only .-separated package names in setup.py
+
+Removing this entirely fixes the issue completely.
+---
+ setup.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 34dba94..fd273a8 100644
+--- a/setup.py
++++ b/setup.py
+@@ -18,8 +18,5 @@ setup(
+ 'subdl = subdl:cli'
+ ]
+ },
+- packages=[
+- ''
+- ],
+ license='GPLv3+'
+ )
+--
+2.41.0
+
diff --git a/testing/subdl/APKBUILD b/testing/subdl/APKBUILD
new file mode 100644
index 00000000000..d8fa3e838c2
--- /dev/null
+++ b/testing/subdl/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=subdl
+pkgver=0_git20230616
+_commit=da2398546c33da1665dbc2d985b30d959c6f5a0c
+pkgrel=1
+pkgdesc="Command-line tool for downloading subtitles from opensubtitles.org"
+url="https://github.com/alexanderwink/subdl"
+arch="noarch"
+license="GPL-3.0-or-later"
+makedepends="py3-setuptools py3-wheel py3-gpep517 py3-installer"
+subpackages="$pkgname-pyc"
+source="https://github.com/alexanderwink/subdl/archive/$_commit.tar.gz
+ 0001-Remove-bogus-empty-package.patch
+ "
+builddir="$srcdir/$pkgname-$_commit/"
+options="!check" # no tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ dist/subdl-*-py3-none-any.whl
+}
+
+sha512sums="
+d0cb8b970dc10356fa4279fa8beaea819eb128e5c7b2f4160535e357ce37e926b7edb57e1508dd3dd13b1e15accc1e89010c298d9363c4b121a9ecba8fda1f14 da2398546c33da1665dbc2d985b30d959c6f5a0c.tar.gz
+f99839e94522334dd73ba83e396cc5012d8be30abbd477924113b3f6d2f15c8470d0d6d713627a1e47e4fcc1df2d55645dab3ae96c3172cf299ede37f4a69bce 0001-Remove-bogus-empty-package.patch
+"
diff --git a/testing/sublime-music/APKBUILD b/testing/sublime-music/APKBUILD
new file mode 100644
index 00000000000..9f6f9dd333b
--- /dev/null
+++ b/testing/sublime-music/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=sublime-music
+pkgver=0.12.0
+pkgrel=1
+pkgdesc="A native, GTK3 Subsonic client for the Linux Desktop"
+url="https://sublimemusic.app"
+arch="all !s390x !ppc64le" # py3-mpv doesnt work on these
+options="!check" # tests fail
+license="GPL-3.0-or-later"
+depends="
+ libnotify
+ py3-bleach
+ py3-bottle
+ py3-dataclasses-json
+ py3-dateutil
+ py3-deepdiff
+ py3-fuzzywuzzy
+ py3-gobject3
+ py3-keyring
+ py3-mpv
+ py3-packaging
+ py3-peewee
+ py3-pychromecast
+ py3-requests
+ py3-semver
+ py3-thefuzz
+ python3
+ "
+makedepends="py3-gpep517 py3-installer py3-flit-core py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/sublime-music/sublime-music/archive/refs/tags/v$pkgver/sublime-music-v$pkgver.tar.gz
+ fix-python3.11.patch
+ "
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" --compile-bytecode 0 \
+ .dist/sublime_music-$pkgver-py3-none-any.whl
+
+ install -Dm644 "$builddir"/sublime-music.desktop \
+ -t "$pkgdir"/usr/share/applications
+ install -Dm644 "$builddir"/logo/icon.svg \
+ "$pkgdir"/usr/share/icons/hicolor/scalable/apps/sublime-music.svg
+}
+
+sha512sums="
+2549b08c636d8fcf9911f19f0e6566964c79b61621bcbe9b4e31efed0cb40462c6e9b1b458d3dffb8d952003828c57f2d705b1bf37b53843a011ab24d6ef8d74 sublime-music-v0.12.0.tar.gz
+b256fbcc779e876ecbcd6f4ed91be3249f856db100dcb6b06960b6e06384c184ceccfd03492dcee420be67946d4bcf0ae67ba72976e3ad5b7016af08b6cad578 fix-python3.11.patch
+"
diff --git a/testing/sublime-music/fix-python3.11.patch b/testing/sublime-music/fix-python3.11.patch
new file mode 100644
index 00000000000..f54acbc10c4
--- /dev/null
+++ b/testing/sublime-music/fix-python3.11.patch
@@ -0,0 +1,35 @@
+diff --git a/sublime_music/ui/state.py b/sublime_music/ui/state.py
+index bf8e5cf..afa8447 100644
+--- a/sublime_music/ui/state.py
++++ b/sublime_music/ui/state.py
+@@ -38,6 +38,10 @@ class RepeatType(Enum):
+ }[loop_status]
+
+
++class _DefaultGenre(Genre):
++ def __init__(self):
++ self.name = "Rock"
++
+ @dataclass
+ class UIState:
+ """Represents the UI state of the application."""
+@@ -81,17 +85,13 @@ class UIState:
+ loading_play_queue: bool = False
+
+ # State for Album sort.
+- class _DefaultGenre(Genre):
+- def __init__(self):
+- self.name = "Rock"
+-
+- current_album_search_query: AlbumSearchQuery = field(
++ current_album_search_query: AlbumSearchQuery = field(default_factory=lambda: field(
+ default_factory=lambda: AlbumSearchQuery(
+ AlbumSearchQuery.Type.RANDOM,
+ genre=UIState._DefaultGenre(),
+ year_range=this_decade(),
+ )
+- )
++ ))
+
+ active_playlist_id: Optional[str] = None
+
diff --git a/testing/subliminal/APKBUILD b/testing/subliminal/APKBUILD
new file mode 100644
index 00000000000..adc92e15837
--- /dev/null
+++ b/testing/subliminal/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=subliminal
+pkgver=2.1.0
+pkgrel=4
+pkgdesc="Python library and CLI tool for searching and downloading subtitles"
+url="https://github.com/Diaoul/subliminal"
+arch="noarch"
+license="MIT"
+depends="
+ py3-appdirs
+ py3-babelfish
+ py3-beautifulsoup4
+ py3-chardet
+ py3-click
+ py3-dogpile.cache
+ py3-enzyme
+ py3-guessit
+ py3-pysrt
+ py3-rarfile
+ py3-requests
+ py3-setuptools
+ py3-six
+ py3-stevedore
+ py3-tz
+ "
+checkdepends="python3-dev py3-pytest py3-pytest-runner libarchive-tools py3-vcrpy py3-sympy"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Diaoul/subliminal/archive/$pkgver.tar.gz
+ tests.patch legendastv.patch"
+options="!check" # missing simpy
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ PYTHONPATH=. \
+ pytest -k 'not test_save_subtitles_single_directory_encoding'
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+9b26ae594895470830547eed604aa5b28b75f590e5be12c2d5a478c5daf798d405f209639bd54dce0565b0e27d1b0daa5bef87dfa8590af61f2ab1e287c41060 subliminal-2.1.0.tar.gz
+6028c0fcdb34825c216103cfb0209dfe849ef634fcb1dfd97c38798fba6db251071f51f3ee5a213ae5e53c3c1b9f883797b830fb34eeff26159c653a2df0f0af tests.patch
+145884314c7adbf23785ae91a3f8eb67c8c4c80e110359816bd4a82193ef205677095742323191806988d18d96f001f893935a0da9d4a6992869183f674406e9 legendastv.patch
+"
diff --git a/testing/subliminal/legendastv.patch b/testing/subliminal/legendastv.patch
new file mode 100644
index 00000000000..27d9551fdc4
--- /dev/null
+++ b/testing/subliminal/legendastv.patch
@@ -0,0 +1,10 @@
+--- a/subliminal/providers/legendastv.py
++++ b/subliminal/providers/legendastv.py
+@@ -161,7 +161,7 @@ class LegendasTVProvider(Provider):
+
+ # Provider needs UNRAR installed. If not available raise ConfigurationError
+ try:
+- rarfile.custom_check([rarfile.UNRAR_TOOL], True)
++ rarfile.tool_setup(unrar=False, unar=False, bsdtar=True, force=True)
+ except rarfile.RarExecError:
+ raise ConfigurationError('UNRAR tool not available')
diff --git a/testing/subliminal/tests.patch b/testing/subliminal/tests.patch
new file mode 100644
index 00000000000..51b9ef2b287
--- /dev/null
+++ b/testing/subliminal/tests.patch
@@ -0,0 +1,88 @@
+--- a/pytest.ini
++++ b/pytest.ini
+@@ -1,6 +1,6 @@
+ [pytest]
+ norecursedirs = build dist env .tox .eggs
+-addopts = --pep8 --flakes --doctest-glob='*.rst'
++addopts = --doctest-glob='*.rst'
+ pep8maxlinelength = 120
+ pep8ignore =
+ docs/conf.py ALL
+@@ -9,3 +9,6 @@ flakes-ignore =
+ docs/conf.py ALL
+ subliminal/__init__.py UnusedImport
+ doctest_optionflags = NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL
++markers =
++ integration
++ converter
+--- a/setup.py
++++ b/setup.py
+@@ -34,7 +34,7 @@ install_requirements = ['guessit>=3.0.0', 'babelfish>=0.5.2', 'enzyme>=0.4.1', '
+ if sys.version_info < (3, 2):
+ install_requirements.append('futures>=3.0')
+
+-test_requirements = ['sympy', 'vcrpy>=1.6.1', 'pytest', 'pytest-pep8', 'pytest-flakes', 'pytest-cov']
++test_requirements = ['sympy', 'vcrpy>=1.6.1', 'pytest', 'pytest-flakes', 'pytest-cov']
+ if sys.version_info < (3, 3):
+ test_requirements.append('mock')
+
+--- a/tests/test_core.py
++++ b/tests/test_core.py
+@@ -563,6 +563,7 @@ def test_download_best_subtitles_only_one(episodes):
+ assert {(s.provider_name, s.id) for s in subtitles[video]} == expected_subtitles
+
+
++@pytest.mark.skip(reason="fails")
+ def test_save_subtitles(movies, tmpdir, monkeypatch):
+ monkeypatch.chdir(str(tmpdir))
+ tmpdir.ensure(movies['man_of_steel'].name)
+@@ -617,6 +618,7 @@ def test_download_bad_subtitle(movies):
+ assert subtitles[0].is_valid() is False
+
+
++@pytest.mark.skip(reason="requires non-free unrar package")
+ def test_scan_archive_with_one_video(rar, mkv):
+ rar_file = rar['video']
+ actual = scan_archive(rar_file)
+@@ -624,6 +626,7 @@ def test_scan_archive_with_one_video(rar, mkv):
+ assert actual.name == os.path.join(os.path.split(rar_file)[0], mkv['test1'])
+
+
++@pytest.mark.skip(reason="requires non-free unrar package")
+ def test_scan_archive_with_multiple_videos(rar, mkv):
+ rar_file = rar['videos']
+ actual = scan_archive(rar_file)
+@@ -631,6 +634,7 @@ def test_scan_archive_with_multiple_videos(rar, mkv):
+ assert actual.name == os.path.join(os.path.split(rar_file)[0], mkv['test5'])
+
+
++@pytest.mark.skip(reason="requires non-free unrar package")
+ def test_scan_archive_with_no_video(rar):
+ with pytest.raises(ValueError) as excinfo:
+ scan_archive(rar['simple'])
+@@ -643,6 +647,7 @@ def test_scan_bad_archive(mkv):
+ assert excinfo.value.args == ("'.mkv' is not a valid archive", )
+
+
++@pytest.mark.skip(reason="requires non-free unrar package")
+ def test_scan_password_protected_archive(rar):
+ with pytest.raises(ValueError) as excinfo:
+ scan_archive(rar['pwd-protected'])
+--- a/tests/test_legendastv.py
++++ b/tests/test_legendastv.py
+@@ -309,6 +309,7 @@ def test_list_subtitles_movie(movies):
+ assert {(s.archive.id, s.name) for s in subtitles} == expected_subtitles
+
+
++@pytest.mark.skip(reason="requires non-free unrar package")
+ @pytest.mark.integration
+ @vcr.use_cassette
+ def test_download_subtitle(movies):
+@@ -336,6 +337,7 @@ def test_under_maintenance(movies):
+ pytest.fail()
+
+
++@pytest.mark.skip(reason="requires non-free unrar package")
+ @pytest.mark.integration
+ def test_unrar_not_available(monkeypatch):
+ monkeypatch.setattr(rarfile, 'UNRAR_TOOL', 'fake_unrar')
diff --git a/testing/subtitleeditor/APKBUILD b/testing/subtitleeditor/APKBUILD
index 59e3986f870..c76836945f2 100644
--- a/testing/subtitleeditor/APKBUILD
+++ b/testing/subtitleeditor/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=subtitleeditor
pkgver=0.54.0
-pkgrel=2
+pkgrel=3
pkgdesc="GTK+3 tool to create and edit subtitles"
url="https://kitone.github.io/subtitleeditor/"
arch="x86 x86_64"
diff --git a/testing/sudo-ldap/APKBUILD b/testing/sudo-ldap/APKBUILD
new file mode 100644
index 00000000000..82ed3ca1789
--- /dev/null
+++ b/testing/sudo-ldap/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Contributor: Åukasz Jendrysik <scadu@yandex.com>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer:
+pkgname=sudo-ldap
+pkgver=1.9.14
+if [ "${pkgver%_*}" != "$pkgver" ]; then
+ _realver=${pkgver%_*}${pkgver#*_}
+else
+ _realver=$pkgver
+fi
+pkgrel=1
+pkgdesc="Give certain users the ability to run some commands as root (ldap+pam support)"
+url="https://www.sudo.ws/sudo/"
+arch="all"
+license="custom ISC"
+makedepends="
+ linux-pam-dev
+ openldap-dev
+ zlib-dev
+ "
+source="https://www.sudo.ws/dist/sudo-$_realver.tar.gz"
+options="suid"
+builddir="$srcdir/sudo-$_realver"
+
+provides="sudo-virt"
+provider_priority=2
+replaces="sudo"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --disable-nls \
+ --enable-pie \
+ --with-env-editor \
+ --with-mdoc \
+ --with-pam \
+ --with-ldap \
+ --with-ldap-conf-file=/etc/ldap.conf.sudo \
+ --with-nsswitch=no \
+ --without-skey \
+ --with-sendmail=/usr/sbin/sendmail \
+ --with-passprompt="[sudo] password for %p: "
+
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ # the sudo's mkinstalldir script miscreates the leading
+ # path components with bad permissions. fix this.
+ install -d -m0755 "$pkgdir"/var "$pkgdir"/var/db
+ make -j1 DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir"/var/run
+
+ # just docs
+ # use these from sudo-doc
+ # shellcheck disable=2115
+ rm -r "$pkgdir"/usr/share
+
+ # just sudo_plugin.h, use sudo-dev
+ # shellcheck disable=2115
+ rm -r "$pkgdir"/usr/include
+
+ # Exactly the same as /etc/sudoers
+ rm "$pkgdir"/etc/sudoers.dist
+}
+
+sha512sums="
+33d3bc3d66b1c5412b7d579b703d44f246386d2915c1c63be851869569c7bc627211a8897d0bc718d6ebb2bdd938b093c0901f0b7912c8475f8e6fcbbc559a99 sudo-1.9.14.tar.gz
+"
diff --git a/testing/suil/APKBUILD b/testing/suil/APKBUILD
deleted file mode 100644
index 5726a2da813..00000000000
--- a/testing/suil/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=suil
-pkgver=0.10.6
-pkgrel=0
-pkgdesc="C library for loading and wrapping LV2 plugin UIs"
-url="http://drobilla.net/software/suil"
-arch="all"
-license="ISC"
-makedepends="python3 gtk+2.0-dev gtk+3.0-dev lv2-dev qt5-qtbase-dev"
-subpackages="$pkgname-dev"
-source="http://download.drobilla.net/suil-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- python3 waf configure --prefix=/usr
- python3 waf build
-}
-
-package() {
- python3 waf install --destdir="$pkgdir"
-}
-
-sha512sums="b23ffe0c0ae25467b2cd60117a2efa8c13132c8e5612619e4c9ad2cc228b835f1c7fd384db62b74d4a327e3708f189b6a91f972756fcafe501308adb732c3b36 suil-0.10.6.tar.bz2"
diff --git a/testing/sunwait/APKBUILD b/testing/sunwait/APKBUILD
deleted file mode 100644
index 3d7a218c6a9..00000000000
--- a/testing/sunwait/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Stefano Marinelli <stefano@dragas.it>
-# Maintainer: Stefano Marinelli <stefano@dragas.it>
-pkgname=sunwait
-pkgver=0.8
-pkgrel=0
-pkgdesc="Sunwait calculates sunrise or sunset times with civil, nautical, astronomical and custom twilights."
-url="https://sourceforge.net/projects/sunwait4windows/"
-arch="all"
-license="GPL-3.0-only"
-options="!check" # No test suite available
-source="http://downloads.sourceforge.net/sunwait4windows/sunwait${pkgver/./-}.tar"
-builddir="$srcdir/sunwait/$pkgver/"
-
-build() {
- cd "$builddir"
- make
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/bin/
- cd "$builddir"
- cp sunwait "$pkgdir"/usr/bin/
-}
-
-sha512sums="5b54769d15c5bbbe4a43db1a98c92b6324f3f7718d5653482de056dcc2aede676077d89224f9b3744b4f68d74df63abbabf82c7d8abfe189f4c3028b7be98f69 sunwait0-8.tar"
diff --git a/testing/supercollider/00-fortified-headers.patch b/testing/supercollider/00-fortified-headers.patch
new file mode 100644
index 00000000000..a3b430c01a7
--- /dev/null
+++ b/testing/supercollider/00-fortified-headers.patch
@@ -0,0 +1,11 @@
+--- a/QtCollider/Common.h
++++ b/QtCollider/Common.h
+@@ -21,6 +21,8 @@
+
+ #pragma once
+
++// Fixes fortified headers build
++#include <unistd.h>
+ #include "debug.h"
+
+ #include <QList>
diff --git a/testing/supercollider/APKBUILD b/testing/supercollider/APKBUILD
new file mode 100644
index 00000000000..de953cf8760
--- /dev/null
+++ b/testing/supercollider/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Leon ROUX <leon.roux@federate.us>
+# Maintainer: Leon ROUX <leon.roux@federate.us>
+pkgname=supercollider
+pkgver=3.13.0
+pkgrel=4
+pkgdesc="An audio server, programming language, and IDE for sound synthesis and algorithmic composition."
+url="https://supercollider.github.io/"
+arch="x86_64 x86 aarch64 armv7 armhf" # blocked by qt5-qtwebengine
+license="GPL-3.0-or-later"
+depends="git"
+makedepends="
+ alsa-lib-dev
+ boost-dev
+ boost-static
+ cmake
+ eudev-dev
+ fftw-dev
+ jack-dev
+ libsndfile-dev
+ libxt-dev
+ linux-headers
+ ncurses-dev
+ portaudio-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ qt5-qtwebengine-dev
+ qt5-qtwebsockets-dev
+ readline-dev
+ samurai
+ yaml-cpp-dev
+ "
+checkdepends="xvfb-run"
+subpackages="$pkgname-dev"
+source="https://github.com/supercollider/supercollider/releases/download/Version-$pkgver/SuperCollider-$pkgver-Source.tar.bz2
+ 00-fortified-headers.patch
+ "
+builddir="$srcdir/SuperCollider-$pkgver-Source"
+
+export LDFLAGS="$LDFLAGS -Wl,-z,stack-size=2000000"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DFORTIFY=ON \
+ -DSYSTEM_BOOST=ON \
+ -DSYSTEM_YAMLCPP=ON \
+ -DSYSTEM_PORTAUDIO=ON \
+ -DSC_ABLETON_LINK=OFF \
+ -DNATIVE=OFF \
+ -DSC_EL=OFF
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+a60a128f7646f077f91adae666fa4014529aa9df78cf0dfe5d68c9bd6447f008af7da2970b8736f3f29d0adbaf67bce680a8201fcbe7e1aba29c3499a57f89cd SuperCollider-3.13.0-Source.tar.bz2
+cef3e1bdaecd4278d14fcabc39d2a69cfab1216ff3dedd3e54997470955dd310e502732ff2c0f76e95f349c31deb964eff456f49f51d7e3c83421521d0c30c43 00-fortified-headers.patch
+"
diff --git a/testing/supercronic/APKBUILD b/testing/supercronic/APKBUILD
deleted file mode 100644
index a56b118c376..00000000000
--- a/testing/supercronic/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Thomas Kienlen <t.kienlen@adhoc-gti.com>
-# Maintainer: Thomas Kienlen <t.kienlen@adhoc-gti.com>
-pkgname=supercronic
-pkgver=0.1.9
-pkgrel=1
-pkgdesc="Cron for containers"
-url="https://github.com/aptible/supercronic"
-arch="all !mips !mips64" # blocked by dep
-license="MIT"
-makedepends="go bash dep"
-checkdepends="python3"
-source="$pkgname-$pkgver.tar.gz::https://github.com/aptible/supercronic/archive/v$pkgver.tar.gz
- python3.patch
- "
-builddir="$srcdir/src/github.com/aptible/$pkgname"
-
-export GOPATH="$srcdir"
-
-prepare() {
- mkdir -p "${builddir%/*}"
- mv "$srcdir"/$pkgname-$pkgver "$builddir"
- default_prepare
-}
-
-build() {
- dep ensure -vendor-only
- go build
-}
-
-check() {
- make unit
-}
-
-package() {
- install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
-}
-
-sha512sums="0e2a283c699b6f7ad1925d4d883290e42eb955b54e35ade71106c0e66886ac8f2c919f62acd5ff3064e4f71523e7415ae573b533a06ee762f27c87af29107ed3 supercronic-0.1.9.tar.gz
-fd88eccd0a18d65af57292e430a1c69b2de1d5c845522e1e1b8b217ab11b8d974543da747debbd6cd2c03d0929dcc04c028a0dc95fc27433331a0dec61d1dfae python3.patch"
diff --git a/testing/supercronic/python3.patch b/testing/supercronic/python3.patch
deleted file mode 100644
index 6e3852efcb6..00000000000
--- a/testing/supercronic/python3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cron/cron_test.go b/cron/cron_test.go
-index 9256514..25f17dd 100644
---- a/cron/cron_test.go
-+++ b/cron/cron_test.go
-@@ -132,7 +132,7 @@ var runJobTestCases = []struct {
- },
- },
- {
-- fmt.Sprintf("python -c 'print(\"a\" * %d * 3)'", READ_BUFFER_SIZE), true, &basicContext,
-+ fmt.Sprintf("python3 -c 'print(\"a\" * %d * 3)'", READ_BUFFER_SIZE), true, &basicContext,
- []*logrus.Entry{
- {Message: "starting", Level: logrus.InfoLevel, Data: noData},
- {Message: strings.Repeat("a", READ_BUFFER_SIZE), Level: logrus.InfoLevel, Data: stdoutData},
diff --git a/testing/superlu/APKBUILD b/testing/superlu/APKBUILD
deleted file mode 100644
index 1d447526233..00000000000
--- a/testing/superlu/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
-# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
-pkgname=superlu
-pkgver=5.2.1
-pkgrel=0
-pkgdesc="Sparse LU factorization library"
-url="https://portal.nersc.gov/project/sparse/superlu/"
-arch="all !mips !mips64" # blocked by openblas
-license="BSD-3-Clause"
-makedepends="
- cmake
- openblas-dev
- "
-subpackages="
- $pkgname-dev
- "
-source="
- https://portal.nersc.gov/project/sparse/superlu/superlu_$pkgver.tar.gz
- "
-builddir=$srcdir/SuperLU_$pkgver
-
-build() {
- mkdir build ; cd build
- cmake .. \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX:PATH=/usr \
- -DCMAKE_INSTALL_LIBDIR="lib" \
- -DCMAKE_INSTALL_INCLUDEDIR="include/superlu" \
- -Denable_blaslib=OFF \
- -DBUILD_SHARED_LIBS=ON
- make
-}
-
-check() {
- cd build
- ctest
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="30538b4c2809294b8f34646bce6445944f21a1dffaf3ec0a0f29a55d5261caa56e4279d7722bb95cc9d89450d36ded969617edc82ecce7d0f1dfb24040d80d07 superlu_5.2.1.tar.gz"
diff --git a/testing/supermin/APKBUILD b/testing/supermin/APKBUILD
index dc3855ad3ba..9059e660578 100644
--- a/testing/supermin/APKBUILD
+++ b/testing/supermin/APKBUILD
@@ -1,11 +1,11 @@
# Contributor:
# Maintainer: Fathi Boudra <fathi.boudra@linaro.org>
pkgname=supermin
-pkgver=5.1.20
-pkgrel=1
+pkgver=5.2.2
+pkgrel=2
pkgdesc="tool for building supermin appliances"
-url="http://libguestfs.org/"
-arch="x86_64"
+url="https://libguestfs.org/"
+arch="all !riscv64 !loongarch64" # limited by ocaml aport
license="GPL-2.0-or-later"
depends="cpio e2fsprogs"
makedepends="
@@ -17,11 +17,18 @@ makedepends="
perl
"
subpackages="$pkgname-doc"
-source="http://download.libguestfs.org/supermin/$pkgname-$pkgver.tar.gz"
+source="https://download.libguestfs.org/supermin/5.2-stable/supermin-$pkgver.tar.gz"
options="!check" # Disable tests as they fail under Alpine
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
build() {
./configure \
+ --build="$CBUILD" \
+ --host="$CHOST" \
--prefix=/usr \
--mandir=/usr/share/man \
--disable-network-tests
@@ -39,4 +46,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="ccc9ada98593f91399b323f0beb027185874f82547a1df4274c1206a9b6d4465e98b7aef5618274d41fb902747f6843fd2cc6192a4ea8526811261ac5a16848e supermin-5.1.20.tar.gz"
+sha512sums="
+c2a0758d6807155e226e0d9e460f8e72efbdb9d715ce7b22389dc3f4dbe34ff0d0c1afeb8e2852678602ba7ec3a700926b9c0078fc539765151b1f0167e01059 supermin-5.2.2.tar.gz
+"
diff --git a/testing/surf/APKBUILD b/testing/surf/APKBUILD
index c7b06b58227..afd9a346fdf 100644
--- a/testing/surf/APKBUILD
+++ b/testing/surf/APKBUILD
@@ -2,18 +2,22 @@
# Contributor: Orson Teodoro <orsonteodoro@hotmail.com>
# Maintainer: Orson Teodoro <orsonteodoro@hotmail.com>
pkgname=surf
-pkgver=2.0
-pkgrel=0
+pkgver=2.1
+pkgrel=2
pkgdesc="surf is a simple web browser based on WebKit2/GTK+."
url="https://surf.suckless.org/"
-arch="all !mips !mips64" # blocked by webkit2gtk-dev
+arch="all"
license="MIT"
depends="xprop"
-makedepends="webkit2gtk-dev"
-options="!check" # upstream doesn't have a test suite
-source="$pkgname-$pkgver.tar.gz::https://dl.suckless.org/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/"$pkgname-$pkgver
+makedepends="webkit2gtk-4.1-dev gcr-dev"
subpackages="$pkgname-doc"
+options="!check" # upstream doesn't have a test suite
+source="surf-$pkgver.tar.gz::https://dl.suckless.org/surf/surf-$pkgver.tar.gz
+ webkit2gtk-4.1.patch
+ "
+
+provides="surf-virtual"
+provider_priority=100
prepare() {
default_prepare
@@ -23,12 +27,10 @@ prepare() {
}
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" PREFIX="/usr" install
mkdir -p "$pkgdir"/usr/share/doc/$pkgname
@@ -36,4 +38,7 @@ package() {
"$pkgdir"/usr/share/doc/$pkgname
}
-sha512sums="75798bb189fa2c2c93827672089a86cf155aa7b5c7c1a0887a34817ca41763907e44a02f52947535d37a043f827d2c0fe75d16a3d172079f9cab8da341e4c0c5 surf-2.0.tar.gz"
+sha512sums="
+06f31f683a941d9a587d908ae7f6949255937b0b0c9c133a18c6fa753c7da75de267adda1c83dd9ba0a8535e2b6d4ff2b5408cc5e8a2e315d4198fe68df5db12 surf-2.1.tar.gz
+d0492cf019899158029396afd35a9e241a8859fa86536d5aff8bf77ebb1396922358d87bf2355aba216d0ade6ffff05edab6078fa66f7542e9a1ec98f45b435f webkit2gtk-4.1.patch
+"
diff --git a/testing/surf/webkit2gtk-4.1.patch b/testing/surf/webkit2gtk-4.1.patch
new file mode 100644
index 00000000000..29fb52f679e
--- /dev/null
+++ b/testing/surf/webkit2gtk-4.1.patch
@@ -0,0 +1,19 @@
+diff --git a/config.mk b/config.mk
+index 2eb9fb0..544e123 100644
+--- a/config.mk
++++ b/config.mk
+@@ -12,10 +12,10 @@ LIBDIR = $(LIBPREFIX)/surf
+ X11INC = `pkg-config --cflags x11`
+ X11LIB = `pkg-config --libs x11`
+
+-GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0`
+-GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.0`
+-WEBEXTINC = `pkg-config --cflags webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0`
+-WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-2.0`
++GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.1`
++GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.1`
++WEBEXTINC = `pkg-config --cflags webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0`
++WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.1 webkit2gtk-web-extension-4.1 gio-2.0`
+
+ # includes and libs
+ INCS = $(X11INC) $(GTKINC)
diff --git a/testing/surfraw/APKBUILD b/testing/surfraw/APKBUILD
new file mode 100644
index 00000000000..b396c44e65c
--- /dev/null
+++ b/testing/surfraw/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Thomas Böhler <witcher@wiredspace.de>
+# Contributor: Thomas Böhler <witcher@wiredspace.de>
+pkgname=surfraw
+
+pkgver=2.3.0
+pkgrel=0
+pkgdesc="Shell Users' Revolutionary Front Rage Against the Web"
+url="http://surfraw.org"
+arch="noarch"
+license="Public Domain"
+makedepends="perl"
+subpackages="$pkgname-doc"
+source="https://gitlab.com/surfraw/Surfraw/uploads/2de827b2786ef2fe43b6f07913ca7b7f/surfraw-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" -j1 install
+
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="
+51cdfb68bab701bce635a64ab3d5af669b2330c895180d01cca1c6f3c4005972ba4c573b693df59a2cc4fdb97d4fd11224bae500bbd4a17c3ab446de5241c9a0 surfraw-2.3.0.tar.gz
+"
diff --git a/testing/suru-icon-theme/APKBUILD b/testing/suru-icon-theme/APKBUILD
new file mode 100644
index 00000000000..68ca4572213
--- /dev/null
+++ b/testing/suru-icon-theme/APKBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+pkgname=suru-icon-theme
+pkgver=20.05.1_git20221222
+_commit="2b832bd20443a45ea75d6da04236f687a5d0564a"
+pkgrel=0
+pkgdesc="Icon Theme for Lomiri Operating Environment"
+arch="noarch"
+url="https://gitlab.com/ubports/development/core/suru-icon-theme"
+license="CC-BY-SA-3.0"
+source="https://gitlab.com/ubports/development/core/suru-icon-theme/-/archive/$_commit/suru-icon-theme-$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No tests
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/icons
+ cp -r suru "$pkgdir"/usr/share/icons/suru
+}
+
+sha512sums="
+793492cc8c3a202022cc8351945dcc7ef701d09190cffe1b92a2eefd15aabfc952a869151b372e55448b3ac0ab903dec38ffc852e47d5b86d27bf67e086c644a suru-icon-theme-2b832bd20443a45ea75d6da04236f687a5d0564a.tar.gz
+"
diff --git a/testing/svgbob/APKBUILD b/testing/svgbob/APKBUILD
new file mode 100644
index 00000000000..49146e4acca
--- /dev/null
+++ b/testing/svgbob/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Erwan Rouchet <lucidiot@brainshit.fr>
+# Maintainer: Erwan Rouchet <lucidiot@brainshit.fr>
+pkgname=svgbob
+pkgver=0.7.2
+pkgrel=0
+pkgdesc="Convert your ascii diagram scribbles into happy little SVG"
+url="https://github.com/ivanceras/svgbob"
+arch="all !s390x !riscv64" # limited by rust/cargo
+license="Apache-2.0"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ivanceras/svgbob/archive/$pkgver.tar.gz
+ update-cargo-lock.patch
+ "
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test all --frozen
+}
+
+package() {
+ install -Dm0755 target/release/svgbob_cli "$pkgdir"/usr/bin/svgbob
+}
+
+sha512sums="
+0b6bfe8f29c14e30f8a5cb4e62a032cf0855a4e2ee7a4d998b4c99f48bebf3afe0ec34549de51323eb85431d2a1a10b7a3bd9a4b351caff4d935872b14fa3acc svgbob-0.7.2.tar.gz
+c33c018a8e323211ce261ed256b203ef277803c49060ead44d406241d0a824e197c99ac2148f53c7bd1d048a3e687b0f3cd7fb78569c2844e5c0cd882a13fd0c update-cargo-lock.patch
+"
diff --git a/testing/svgbob/update-cargo-lock.patch b/testing/svgbob/update-cargo-lock.patch
new file mode 100644
index 00000000000..b64ebb70655
--- /dev/null
+++ b/testing/svgbob/update-cargo-lock.patch
@@ -0,0 +1,22 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index ceb0e5a..b0d6d46 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1042,7 +1042,7 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+ [[package]]
+ name = "svgbob"
+-version = "0.7.1"
++version = "0.7.2"
+ dependencies = [
+ "indexmap",
+ "itertools",
+@@ -1057,7 +1057,7 @@ dependencies = [
+
+ [[package]]
+ name = "svgbob_cli"
+-version = "0.7.0"
++version = "0.7.2"
+ dependencies = [
+ "clap",
+ "svgbob",
diff --git a/testing/svls/APKBUILD b/testing/svls/APKBUILD
new file mode 100644
index 00000000000..59959dc5028
--- /dev/null
+++ b/testing/svls/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=svls
+pkgver=0.2.11
+pkgrel=0
+pkgdesc="SystemVerilog language serer"
+url="https://github.com/dalance/svls"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-doc"
+source="https://github.com/dalance/svls/archive/v$pkgver/svls-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/svls -t "$pkgdir"/usr/bin
+
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/svls/LICENSE
+}
+
+sha512sums="
+5cc75c80d752ea3fc7dd13aefde368425221f0572f055699f2c46c6afd4ee66322f5a76fb151050f59b2a0d537b9e96dde8874680ae8983397e5ddecddcfd14c svls-0.2.11.tar.gz
+"
diff --git a/testing/svt-av1/APKBUILD b/testing/svt-av1/APKBUILD
deleted file mode 100644
index 3e66efe4362..00000000000
--- a/testing/svt-av1/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=svt-av1
-pkgver=0.8.3
-pkgrel=0
-pkgdesc="Scalable Vector Technology for AV1 encoder (SVT-AV1 Encoder)"
-url="https://01.org/svt"
-arch="x86_64" # x86: inlining failed in call to always_inline '_mm_load_sd': target specific option mismatch
-license="BSD-2-Clause-Patent"
-options="!check" # No test suite from upstream
-makedepends="cmake yasm"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVisualCloud/SVT-AV1/archive/v$pkgver.tar.gz"
-builddir="$srcdir/SVT-AV1-$pkgver"
-
-build() {
- mkdir -p build
-
- cd build
-
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS"
-
- make
-}
-
-package() {
- cd build
-
- make DESTDIR="$pkgdir" install
-
- cd "$builddir"
-
- install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
-}
-
-sha512sums="b1241865d10c471169fdbd4833f507f41b4c5bdc45439448951dc6cd48ed9fe446477f6a743a16c668a9d63adaf6ec2737a6e0c1c5e5af25245cbd32d32ab968 svt-av1-0.8.3.tar.gz"
diff --git a/testing/svt-hevc/APKBUILD b/testing/svt-hevc/APKBUILD
index 693ae975037..523e0dcb271 100644
--- a/testing/svt-hevc/APKBUILD
+++ b/testing/svt-hevc/APKBUILD
@@ -1,42 +1,35 @@
# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=svt-hevc
-pkgver=1.4.3
-pkgrel=1
+pkgver=1.5.1
+pkgrel=2
pkgdesc="Scalable Vector Technology for HEVC encoder (SVT-HEVC Encoder)"
url="https://01.org/svt"
arch="x86_64" # x86 error: incompatible type for argument 2 of '_mm_storel_epi64'
license="BSD-2-Clause-Patent"
options="!check" # No test suite from upstream
-makedepends="cmake yasm"
+makedepends="cmake samurai nasm"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVisualCloud/SVT-HEVC/archive/v$pkgver.tar.gz"
builddir="$srcdir/SVT-HEVC-$pkgver"
build() {
- mkdir -p build
-
- cd build
-
- cmake .. \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS"
-
- make
+ -DCMAKE_BUILD_TYPE=Release
+ cmake --build build
}
package() {
- cd build
-
- make DESTDIR="$pkgdir" install
-
- cd "$builddir"
+ DESTDIR="$pkgdir" cmake --install build
install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
}
-sha512sums="93ab43c05b1dc7154f08d848e3ac2dd1ec5ee278abbb022718e8c8601efa4a25179144dbf0c9950da4c27052a53604d37edec471fce46b309e3c84eb99dd88c4 svt-hevc-1.4.3.tar.gz"
+sha512sums="
+f5b9d9a090cb04ada0a3f310522f00b619ae628b8474fe7e1c7f562a017b5a9d0c8c58ab9a35b43cb19f2568fbc59e0395dcd517b7983924b175393ad2ba4299 svt-hevc-1.5.1.tar.gz
+"
diff --git a/testing/svt-vp9/APKBUILD b/testing/svt-vp9/APKBUILD
index a7fa54c8898..619a72996b0 100644
--- a/testing/svt-vp9/APKBUILD
+++ b/testing/svt-vp9/APKBUILD
@@ -1,42 +1,35 @@
# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=svt-vp9
-pkgver=0.2.0
-pkgrel=0
+pkgver=0.3.0
+pkgrel=2
pkgdesc="Scalable Vector Technology for VP9 encoder (SVT-VP9 Encoder)"
url="https://01.org/svt"
arch="x86_64" #x86: error: incompatible type for argument 2 of '_mm_storel_epi64'
license="BSD-2-Clause-Patent"
options="!check" # No test suite from upstream
-makedepends="cmake yasm"
+makedepends="cmake samurai nasm"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="$pkgname-$pkgver.tar.gz::https://github.com/OpenVisualCloud/SVT-VP9/archive/v$pkgver.tar.gz"
builddir="$srcdir/SVT-VP9-$pkgver"
build() {
- mkdir -p build
-
- cd build
-
- cmake .. \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS"
-
- make
+ -DCMAKE_BUILD_TYPE=Release
+ cmake --build build
}
package() {
- cd build
-
- make DESTDIR="$pkgdir" install
-
- cd "$builddir"
+ DESTDIR="$pkgdir" cmake --install build
install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/"$pkgname"
}
-sha512sums="a188389f4b12e684571475858e1b9d2d242731524a5fdbc85e4dead684b46f49763bde06e248aa07ae5edaf0685b7f2be4b1f4a96e3050ed19f4bddd1dfa707a svt-vp9-0.2.0.tar.gz"
+sha512sums="
+2b65d4cc731061c2a07010314f7c306664fd9cf122917f96b94ec87350c8bab1a1118527263eb39347a6f6f572088337e1c5f7ae738b52de30a28ccb54c321c1 svt-vp9-0.3.0.tar.gz
+"
diff --git a/testing/svxlink-sounds-en_us-heather-16k/APKBUILD b/testing/svxlink-sounds-en_us-heather-16k/APKBUILD
deleted file mode 100644
index 4c427599634..00000000000
--- a/testing/svxlink-sounds-en_us-heather-16k/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=svxlink-sounds-en_us-heather-16k
-pkgver=19.09
-pkgrel=0
-pkgdesc="Sound Package en_US-heather-16k from svxlink in high quality"
-url="http://www.svxlink.org/"
-arch="noarch"
-license="GPL-2.0-or-later"
-options="!check !strip"
-source="https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/$pkgver/svxlink-sounds-en_US-heather-16k-$pkgver.tar.bz2"
-builddir="$srcdir"/en_US-heather-16k
-
-package() {
- cd $builddir
- mkdir -p "$pkgdir/usr/share/svxlink/sounds/en_US"
- cd "$srcdir/en_US-heather-16k"
- cp -a * "$pkgdir/usr/share/svxlink/sounds/en_US"
- touch "$pkgdir/usr/share/svxlink/sounds/en_US/$pkgname-$pkgver"
-}
-
-sha512sums="6bc0c0979f9d7ba971b7facab429370d60e0275854b5963c766da64466b6a1d31470c32a4c7b5b485bf4847962fc9b5fd3eb677b23152e8e1580c9f9d5f5f51b svxlink-sounds-en_US-heather-16k-19.09.tar.bz2"
diff --git a/testing/svxlink/APKBUILD b/testing/svxlink/APKBUILD
deleted file mode 100644
index ef443780811..00000000000
--- a/testing/svxlink/APKBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=svxlink
-pkgver=19.09.1
-pkgrel=1
-pkgdesc="Advanced radio repeater controller and EchoLink"
-url="http://www.svxlink.org"
-arch="all"
-license="GPL-2.0-or-later"
-pkgusers="svxlink"
-pkggroups="svxlink"
-options="!check" # package doesn't have tests
-makedepends="groff cmake alsa-lib-dev popt-dev gsm-dev speex-dev
- libgcrypt-dev tcl-dev curl-dev libsigc++-dev linux-headers"
-install="$pkgname.pre-install $pkgname.post-install"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-static"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sm0svx/svxlink/archive/$pkgver.tar.gz
- svxlink.initd
- svxlink.confd
- "
-builddir="$srcdir"/$pkgname-$pkgver/src
-
-build() {
- cd $builddir
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DSYSCONF_INSTALL_DIR=/etc \
- -DLOCAL_STATE_DIR=/var \
- -DLIB_INSTALL_DIR=/usr/lib \
- -DBUILD_STATIC_LIBS=ON \
- -DUSE_OSS=NO -DUSE_QT=NO \
-
- make
- make doc
-}
-
-static() {
- depends=""
- pkgdesc="$kgdesc static libraries"
- mkdir -p "$subpkgdir"/usr/lib
- mv "${pkgdir}-dev"/usr/lib/*.a "$subpkgdir"/usr/lib
-}
-
-package() {
- cd $builddir
- make DESTDIR="$pkgdir" install
- rm -rf ${pkgdir}/usr/share/doc
- install -m755 -D "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.confd \
- "$pkgdir"/etc/conf.d/$pkgname
- install -o svxlink -g svxlink -d "$pkgdir"/var/spool/svxlink
- install -o svxlink -g svxlink -d "$pkgdir"/var/spool/svxlink/voice_mail/
- install -o svxlink -g svxlink -d "$pkgdir"/var/spool/svxlink/qso_recorder/
- install -o svxlink -g svxlink -d "$pkgdir"/var/spool/svxlink/propagation_monitor
-}
-
-sha512sums="93fb0ac360544244ba1843ed8036ca2772b6207cb9bb34e80a746c195bb024a59ac7b799fd92191b8dec05d2258fb73ea7cc1103aee8bd94491b2e3e480ae0fa svxlink-19.09.1.tar.gz
-39d1a4febfdd5e50b9df21c0e77c80a50af1680a6e001cda3f31fc752b1cba0948c40bf70106579e32c1de37ee76d6dde218824bcac2b013a71b144256f60168 svxlink.initd
-1a587c032e73c3a76a1aa8c18d2b3d90a716f49ffb75a5b863da02a59a76a433355e2c1a07f44795545bce01e713890881a14ef9b9d2aae3690e0bf462d432a7 svxlink.confd"
diff --git a/testing/svxlink/svxlink.confd b/testing/svxlink/svxlink.confd
deleted file mode 100644
index 27bab4260f4..00000000000
--- a/testing/svxlink/svxlink.confd
+++ /dev/null
@@ -1,21 +0,0 @@
-#############################################################################
-#
-# Configuration file for the SvxLink startup script /etc/init.d/svxlink
-#
-#############################################################################
-
-# The log file to use
-LOGFILE=/var/log/svxlink
-
-# The PID file to use
-PIDFILE=/run/svxlink.pid
-
-# The user to run the SvxLink server as
-RUNASUSER=svxlink
-
-# Specify which configuration file to use
-CFGFILE=/etc/svxlink/svxlink.conf
-
-# Environment variables to set up. Separate variables with a space.
-ENV="ASYNC_AUDIO_NOTRIGGER=1"
-
diff --git a/testing/svxlink/svxlink.initd b/testing/svxlink/svxlink.initd
deleted file mode 100644
index ece921a3d3a..00000000000
--- a/testing/svxlink/svxlink.initd
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/sbin/openrc-run
-
-name="SvxLink Server"
-pname="svxlink"
-command="/usr/bin/$pname"
-
-
-POPTS="--daemon \
- ${RUNASUSER:+--runasuser=$RUNASUSER} \
- ${PIDFILE:+--pidfile=$PIDFILE} \
- ${LOGFILE:+--logfile=$LOGFILE} \
- ${CFGFILE:+--config=$CFGFILE}"
-
-depend() {
- need localmount
- use net
- after bootmisc
-}
-
-start() {
- ebegin "Starting $pname"
- export $ENV
- start-stop-daemon --start --pidfile $PIDFILE --exec $command -- $POPTS
- eend $?
-}
-
-stop() {
- ebegin "Stopping $name"
- start-stop-daemon --stop --quiet --pidfile "$PIDFILE"
- eend $? "Failed to stop $name"
-}
-
diff --git a/testing/svxlink/svxlink.post-install b/testing/svxlink/svxlink.post-install
deleted file mode 100644
index 0586fcd5c52..00000000000
--- a/testing/svxlink/svxlink.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-# add something which happends after install
-
diff --git a/testing/svxlink/svxlink.pre-install b/testing/svxlink/svxlink.pre-install
deleted file mode 100644
index bd1aaafec64..00000000000
--- a/testing/svxlink/svxlink.pre-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-addgroup -S svxlink 2>/dev/null
-adduser -S -H -h /var/spool/svxlink -s /sbin/nologin -g svxlink svxlink 2>/dev/null
-adduser svxlink audio 2>/dev/null
diff --git a/testing/swaks/APKBUILD b/testing/swaks/APKBUILD
index 890d9e3b8a0..0145f576791 100644
--- a/testing/swaks/APKBUILD
+++ b/testing/swaks/APKBUILD
@@ -1,31 +1,22 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=swaks
-pkgver=20190914.0
+pkgver=20240103.0
pkgrel=0
pkgdesc="Swiss Army Knife for SMTP"
-url="http://www.jetmore.org/john/code/swaks/"
+url="https://www.jetmore.org/john/code/swaks/"
+license="GPL-2.0-or-later"
arch="noarch"
-license="GPL-2.0"
+options="!check" # tarball does not contain test suite
depends="perl"
subpackages="$pkgname-doc"
-source="http://www.jetmore.org/john/code/swaks/files/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- cd "$builddir"
- return 0
-}
+source="https://www.jetmore.org/john/code/swaks/files/swaks-$pkgver.tar.gz"
package() {
- cd "$builddir"
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 -t "$pkgdir"/usr/share/doc/$pkgname doc/*
}
-doc() {
- cd "$builddir"
- mkdir -p $subpkgdir/usr/share/doc/$pkgname
- mv doc/* $subpkgdir/usr/share/doc/$pkgname
-}
-
-sha512sums="3167435a73e7729d090cba2431d5828895c25154c36d92e0ebecd5c4e2430ca596d62bb3e6eb3b65eadabd52c8331fe3bb8a492cce3ad247fa113c0af9c67339 swaks-20190914.0.tar.gz"
+sha512sums="
+89d62cdb94630666c1acb1feb3b62585f36b4d59d14e56d998da6efe45538e9f5072379eebee43dd7244aa3981dbd8d6eb9a42ff7fa21a73127d171b8b3189f5 swaks-20240103.0.tar.gz
+"
diff --git a/testing/swappy/APKBUILD b/testing/swappy/APKBUILD
new file mode 100644
index 00000000000..8512e055789
--- /dev/null
+++ b/testing/swappy/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=swappy
+pkgver=1.5.1
+pkgrel=0
+pkgdesc="Snapshot editing tool for Wayland"
+url="https://github.com/jtheoof/swappy"
+license="MIT"
+arch="all"
+options="!check" # no test suite
+depends="font-awesome-free"
+makedepends="meson cairo-dev pango-dev gtk+3.0-dev libnotify-dev scdoc"
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://github.com/jtheoof/swappy/archive/v$pkgver/swappy-$pkgver.tar.gz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+688ad9006965d6a3f9d2997335bc3e8172e4f6f53551bb92603cdc1f14138c25f9f7d28a87aa1cbcefc94f5da1701443a2ddf0e883b648ecc5a0b0ca28588217 swappy-1.5.1.tar.gz
+"
diff --git a/testing/sway-audio-idle-inhibit/APKBUILD b/testing/sway-audio-idle-inhibit/APKBUILD
new file mode 100644
index 00000000000..041d380e2e1
--- /dev/null
+++ b/testing/sway-audio-idle-inhibit/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=sway-audio-idle-inhibit
+_commit=c850bc4812216d03e05083c69aa05326a7fab9c7
+_date=20230809
+pkgver=0.1.1_git$_date
+pkgrel=0
+pkgdesc="Prevents swayidle from sleeping while any application is outputting or receiving audio"
+url="https://github.com/ErikReider/SwayAudioIdleInhibit"
+license="GPL-3.0-only"
+arch="all"
+makedepends="
+ pulseaudio-dev
+ wayland-dev
+ wayland-protocols
+ meson
+ ninja
+ "
+source="$pkgname-$_commit.tar.gz::https://github.com/ErikReider/SwayAudioIdleInhibit/archive/$_commit.tar.gz"
+options="!check" # no test suite
+builddir="$srcdir/SwayAudioIdleInhibit-$_commit"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+3574e0157c0a05ad25b9836e21fdd697b370bc287049887a44b7a251e92c0a82c423697c4c86882b1c1e7b520f7f1d6ff986cf76af89d9eaa3c35f37641571c4 sway-audio-idle-inhibit-c850bc4812216d03e05083c69aa05326a7fab9c7.tar.gz
+"
diff --git a/testing/swayhide/APKBUILD b/testing/swayhide/APKBUILD
new file mode 100644
index 00000000000..59702a5abfd
--- /dev/null
+++ b/testing/swayhide/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=swayhide
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="A window swallower for swaywm"
+url="https://github.com/NomisIV/swayhide/"
+arch="all !s390x !riscv64" # rust
+license="GPL-3.0-only"
+makedepends="cargo cargo-auditable"
+source="https://github.com/NomisIV/swayhide/archive/v$pkgver/swayhide-v$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ cargo auditable install --locked --offline --path . --root="$pkgdir/usr"
+ rm "$pkgdir"/usr/.crates*
+}
+
+sha512sums="
+4c7c9d5138d827faddf63bdd80895d89e583b11a034087e62ff31f07b0c32d1f1990b1c8d8a1104dd6e1dae0ba77353456ffa762c5bc535e753c63bba1ac4f17 swayhide-v0.2.1.tar.gz
+"
diff --git a/testing/swi-prolog/APKBUILD b/testing/swi-prolog/APKBUILD
new file mode 100644
index 00000000000..95f3ece5647
--- /dev/null
+++ b/testing/swi-prolog/APKBUILD
@@ -0,0 +1,91 @@
+# Maintainer: Paul Bredbury <brebs@sent.com>
+pkgname=swi-prolog
+pkgver=9.2.3
+pkgrel=0
+pkgdesc="Versatile implementation of the Prolog programming language"
+url="https://www.swi-prolog.org"
+arch="all !riscv64" # missing libunwind-dev
+license="BSD-2-Clause AND LGPL-3.0-or-later"
+# Need to package JavaHamcrest in order to enable JPL
+subpackages="$pkgname-doc $pkgname-xpce:xpce:noarch $pkgname-xpce-doc:xpce_doc:noarch $pkgname-pyc"
+makedepends="
+ cmake
+ gmp-dev
+ libarchive-dev
+ libedit-dev
+ libunwind-dev
+ libxext-dev
+ libice-dev
+ libjpeg-turbo-dev
+ libxinerama-dev
+ libxft-dev
+ libxpm-dev
+ libxt-dev
+ ncurses-dev
+ openssl-dev
+ ossp-uuid-dev
+ pcre2-dev
+ readline-dev
+ samurai
+ unixodbc-dev
+ yaml-dev
+ zlib-dev
+ "
+# The Berkeley DB test works on all but x86, which segfaults
+# https://github.com/SWI-Prolog/issues/issues/103#issuecomment-968091401
+[ ! "$CARCH" = "x86" ] && makedepends="$makedepends db-dev"
+
+checkdepends="python3"
+source="https://www.swi-prolog.org/download/stable/src/swipl-$pkgver.tar.gz"
+builddir="$srcdir/swipl-$pkgver"
+
+build() {
+ # pgo broken with gcc12 profiles
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ ninja -C build
+}
+
+check() {
+ ctest --output-on-failure --test-dir build
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C build install
+}
+
+doc() {
+ default_doc
+ mkdir -p "$subpkgdir"/usr/share/swi-prolog
+ mv "$pkgdir"/usr/lib/swipl/doc "$subpkgdir"/usr/share/swi-prolog
+}
+
+xpce() {
+ depends="$pkgname"
+ pkgdesc="X support for $pkgname"
+ mkdir -p "$subpkgdir"/usr/lib/swipl
+ mv "$pkgdir"/usr/lib/swipl/xpce "$subpkgdir"/usr/lib/swipl
+
+ # Move doc files
+ mkdir -p "$subpkgdir"-doc/usr/lib/swipl/xpce
+ mv "$subpkgdir"/usr/lib/swipl/xpce/appl-help "$subpkgdir"-doc/usr/lib/swipl/xpce
+ mv "$subpkgdir"/usr/lib/swipl/xpce/man "$subpkgdir"-doc/usr/lib/swipl/xpce
+}
+
+xpce_doc() {
+ pkgdesc="X support for $pkgname (doc files)"
+}
+
+pyc() {
+ pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}"
+ install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc"
+
+ cd "$pkgdir" || return 0
+ local IFS=$'\n'
+ amove $(find usr/lib -type d -name __pycache__)
+}
+
+sha512sums="
+5fa84255aedd9eaa8adfa1ae1367d12470f536b40908481d5a5bb1754a997c23433b24e8a2802af3381983ca2c347dae508a47a8dd4de3b713b9fbbfa988023b swipl-9.2.3.tar.gz
+"
diff --git a/testing/swig3/APKBUILD b/testing/swig3/APKBUILD
new file mode 100644
index 00000000000..4fa2f8d9dce
--- /dev/null
+++ b/testing/swig3/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
+pkgname=swig3
+pkgver=3.0.12
+pkgrel=3
+pkgdesc="A compiler that makes it easy to integrate C and C++ code with scripting languages"
+url="https://www.swig.org/"
+arch="all"
+license="GPL-3.0-only"
+depends="guile"
+makedepends="zlib-dev pcre-dev bison"
+checkdepends="boost-dev perl-dev python3-dev diffutils"
+options="!check" # Check for javascript fails
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/swig/swig-$pkgver.tar.gz
+ swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch
+"
+
+builddir="$srcdir/swig-$pkgver"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --with-python3=/usr/bin/python3 \
+ --program-suffix=3.0
+ make
+}
+
+check() {
+ env PERL5LIB=. make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -D -m644 LICENSE-UNIVERSITIES "$pkgdir"/usr/share/licenses/$pkgname/LICENSE-UNIVERSITIES
+}
+
+sha512sums="5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb swig-3.0.12.tar.gz
+0cde94a04a3f914f6e1ac79866d199981600c0f4be18b52d08194de96d524027c6572eacd5c1e155a9007fc34ed9dece27dbcb974874de072fb42bf564978cd0 swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch"
diff --git a/testing/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch b/testing/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch
new file mode 100644
index 00000000000..7198c215f2f
--- /dev/null
+++ b/testing/swig3/swig-3.0.12-Fix-generated-code-for-constant-expressions-containi.patch
@@ -0,0 +1,191 @@
+From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
+From: William S Fulton <wsf@fultondesigns.co.uk>
+Date: Sun, 17 Sep 2017 19:02:55 +0100
+Subject: [PATCH 1/2] Fix generated code for constant expressions containing
+ wchar_t L literals.
+
+Such as:
+ # define __WCHAR_MAX (0x7fffffff + L'\0')
+
+Reported on swig-user mailing list.
+---
+ CHANGES.current | 5 +++++
+ Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
+ Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++
+ Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++
+ Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++
+ Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++
+ Examples/test-suite/php/preproc_constants_runme.php | 2 ++
+ Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++
+ Examples/test-suite/php5/preproc_constants_runme.php | 2 ++
+ Examples/test-suite/preproc_constants.i | 3 +++
+ Source/CParse/parser.y | 2 +-
+ 13 files changed, 29 insertions(+), 2 deletions(-)
+
+#diff --git a/CHANGES.current b/CHANGES.current
+#index 1e4a244..b455a9f 100644
+#--- a/CHANGES.current
+#+++ b/CHANGES.current
+#@@ -7,6 +7,11 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
+# Version 4.0.0 (in progress)
+# ===========================
+#
+#+2017-09-17: wsfulton
+#+ Fix generated code for constant expressions containing wchar_t L literals such as:
+#+ # define __WCHAR_MAX (0x7fffffff + L'\0')
+#+ # define __WCHAR_MIN (-__WCHAR_MAX - 1)
+#+
+# 2017-09-10: mlamarre
+# [Python] Patch #1083. Define_DEBUG to 1 to do exactly like Visual Studio
+# /LDd, /MDd or /MTd compiler options.
+diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+index 76c684d..1c28e49 100644
+--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
+@@ -61,7 +61,8 @@ public class runme {
+ assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
+ assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
+ assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
+-
++ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
++ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
+ }
+ static void assert(bool assertion) {
+ if (!assertion)
+diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
+index 9fae591..6b02e30 100644
+--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
++++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
+@@ -60,6 +60,8 @@ public class runme {
+ assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
+ assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
+ assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
++ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
++ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
+
+ }
+ static void assert(bool assertion) {
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+index d846c71..2b349af 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
+@@ -61,4 +61,6 @@ void main() {
+ static assert(is(int == typeof(EXPR_LAND())));
+ static assert(is(int == typeof(EXPR_LOR())));
+ static assert(is(double == typeof(EXPR_CONDITIONAL())));
++ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+index 9bdbb93..1bac525 100644
+--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
+@@ -61,4 +61,6 @@ void main() {
+ static assert(is(int == typeof(EXPR_LAND())));
+ static assert(is(int == typeof(EXPR_LOR())));
+ static assert(is(double == typeof(EXPR_CONDITIONAL())));
++ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
+index 009405f..f743f48 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.1.d
++++ b/Examples/test-suite/d/preproc_constants_runme.1.d
+@@ -60,4 +60,6 @@ void main() {
+ static assert(is(bool == typeof(EXPR_LAND())));
+ static assert(is(bool == typeof(EXPR_LOR())));
+ static assert(is(double == typeof(EXPR_CONDITIONAL())));
++ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
+index 2d92ef0..0d96c37 100644
+--- a/Examples/test-suite/d/preproc_constants_runme.2.d
++++ b/Examples/test-suite/d/preproc_constants_runme.2.d
+@@ -60,4 +60,6 @@ void main() {
+ static assert(is(bool == typeof(EXPR_LAND())));
+ static assert(is(bool == typeof(EXPR_LOR())));
+ static assert(is(double == typeof(EXPR_CONDITIONAL())));
++ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
++ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
+ }
+diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
+index af9b76e..e59fe18 100644
+--- a/Examples/test-suite/php/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+
+ ?>
+diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
+index 5c9119b..8e117ea 100644
+--- a/Examples/test-suite/php/preproc_constants_runme.php
++++ b/Examples/test-suite/php/preproc_constants_runme.php
+@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
+ check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
+index 1ea0195..d978fab 100644
+--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
+@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+ check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+
+ ?>
+diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
+index fb9ee4f..7527026 100644
+--- a/Examples/test-suite/php5/preproc_constants_runme.php
++++ b/Examples/test-suite/php5/preproc_constants_runme.php
+@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
+ check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
+
+ check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
++check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
+
+ ?>
+diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
+index 3a999ad..16b44c9 100644
+--- a/Examples/test-suite/preproc_constants.i
++++ b/Examples/test-suite/preproc_constants.i
+@@ -87,6 +87,9 @@
+ #define EXPR_LOR 0xFF || 1
+ #define EXPR_CONDITIONAL true ? 2 : 2.2
+
++#define EXPR_WCHAR_MAX (0x7fffffff + L'\0')
++#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1)
++
+ #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
+ #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
+ #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
+diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
+index 2e92cd0..273dadb 100644
+--- a/Source/CParse/parser.y
++++ b/Source/CParse/parser.y
+@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
+ * ----------------------------------------------------------------------------- */
+
+ static int promote_type(int t) {
+- if (t <= T_UCHAR || t == T_CHAR) return T_INT;
++ if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
+ return t;
+ }
+
+--
+2.9.5
+
diff --git a/testing/sxcs/APKBUILD b/testing/sxcs/APKBUILD
new file mode 100644
index 00000000000..79369ee4f36
--- /dev/null
+++ b/testing/sxcs/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=sxcs
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="Minimal X11 Color Picker and Magnifier"
+url="https://codeberg.org/NRK/sxcs"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # no test suite
+makedepends="libx11-dev libxcursor-dev"
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/NRK/sxcs/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+builddir="$srcdir/sxcs"
+
+build() {
+ make -e sxcs LDLIBS="-lX11 -lXcursor"
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin sxcs
+ install -Dm644 -t "$pkgdir"/usr/share/man/man1 sxcs.1
+}
+
+sha512sums="
+dbcd20d894ac2d63f3c93dcee9881a068d40f33cbce5527de746dca2dc34fe264eb91d0849cff81a2730b78645ed421ccf763b544922fbd626361b8056f24d3a sxcs-1.0.0.tar.gz
+"
diff --git a/testing/sylpheed-imap-notify/APKBUILD b/testing/sylpheed-imap-notify/APKBUILD
index df87749c13e..8620947b894 100644
--- a/testing/sylpheed-imap-notify/APKBUILD
+++ b/testing/sylpheed-imap-notify/APKBUILD
@@ -8,7 +8,7 @@ url="https://github.com/clehner/sylpheed-imap-notify"
arch="all"
license="GPL-3.0-or-later"
depends="sylpheed"
-makedepends="sylpheed-dev gtk+-dev"
+makedepends="sylpheed-dev gtk+2.0-dev"
options="!check"
source="$pkgname-$pkgver.tar.gz::https://github.com/clehner/$pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir/$pkgname-$pkgver"
diff --git a/testing/symbiyosys/APKBUILD b/testing/symbiyosys/APKBUILD
new file mode 100644
index 00000000000..0440ed4538a
--- /dev/null
+++ b/testing/symbiyosys/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=symbiyosys
+pkgver=0.36
+pkgrel=0
+pkgdesc="Front-end for Yosys-based formal verification flows"
+url="https://github.com/YosysHQ/sby"
+# s390x, riscv64: blocked by yosys
+arch="noarch !s390x !riscv64"
+license="ISC"
+depends="python3 py3-click yosys"
+checkdepends="bash"
+source="$pkgname-$pkgver.tar.gz::https://github.com/YosysHQ/sby/archive/yosys-$pkgver.tar.gz"
+builddir="$srcdir/sby-yosys-$pkgver"
+
+check() {
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+3a6f56644e54670d448cb0e80d7f1a76e3fd06a5464bc73b9015101f56552c77569bb61ec4c64a41bab7c4d145a38c54c779e5d7fbced280f98b17009acc9aa7 symbiyosys-0.36.tar.gz
+"
diff --git a/testing/sympow/APKBUILD b/testing/sympow/APKBUILD
new file mode 100644
index 00000000000..db90f0c04fd
--- /dev/null
+++ b/testing/sympow/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=sympow
+pkgver=2.023.6
+pkgrel=1
+pkgdesc="Program for computing special values of symmetric power elliptic curve L-functions"
+url="https://gitlab.com/rezozer/forks/sympow"
+# blocked by pari
+arch="all !armhf !armv7 !x86"
+license="BSD-2-Clause"
+depends="pari"
+makedepends="bash help2man"
+subpackages="$pkgname-doc"
+source="https://gitlab.com/rezozer/forks/sympow/-/archive/v$pkgver/sympow-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+prepare() {
+ default_prepare
+ sed -i "s|VERBOSE_DEFAULT 1|VERBOSE_DEFAULT 0|" sympow.h
+}
+
+build() {
+ export CFLAGS="${CFLAGS/-Os/-O3}" # gotta go fast
+
+ PREFIX=/usr bash ./Configure
+ make
+}
+
+check() {
+ ./sympow -help
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+efe3b09fff0629e136b029ea615aa09ac1a4f225c06636d653ac921c7de01bf75e2b392a138c3c1af92f2b4f889f5949beeeba5b6e5e6b49e02c605bb9c16ceb sympow-v2.023.6.tar.gz
+"
diff --git a/testing/synadm/APKBUILD b/testing/synadm/APKBUILD
new file mode 100644
index 00000000000..835246d7b08
--- /dev/null
+++ b/testing/synadm/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=synadm
+pkgver=0.46
+pkgrel=1
+pkgdesc="Command line admin tool for Synapse"
+url="https://github.com/JOJ0/synadm"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="py3-tabulate py3-click py3-requests py3-yaml py3-click-option-group py3-dnspython"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+source="$pkgname-$pkgver.tar.gz::https://github.com/JOJ0/synadm/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" #no check provided
+subpackages="$pkgname-pyc"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+f997e9240ee35a692adb32f10e967baf4e9efa031471e451bf016e4de3fd9124cca18b85478f453954a7abe68fec193500cb27d8311bf7cd8e3fb22c3804dc96 synadm-0.46.tar.gz
+"
diff --git a/testing/synapse-bt/APKBUILD b/testing/synapse-bt/APKBUILD
index 77d0b2b4298..29796e23e33 100644
--- a/testing/synapse-bt/APKBUILD
+++ b/testing/synapse-bt/APKBUILD
@@ -2,23 +2,25 @@
# Maintainer: prspkt <prspkt@protonmail.com>
pkgname=synapse-bt
pkgver=1.0
-pkgrel=1
+pkgrel=4
pkgdesc="Flexible and fast BitTorrent daemon"
url="https://github.com/Luminarys/synapse"
-arch="all !aarch64 !s390x !mips !mips64" # Cargo (aarch64 due to MAP_32BIT)
+arch="all !aarch64 !s390x !riscv64" # Cargo (aarch64 due to MAP_32BIT)
license="ISC"
pkgusers="synapse-bt"
pkggroups="synapse-bt"
-makedepends="cargo openssl-dev"
+makedepends="cargo openssl-dev cargo-auditable"
install="synapse-bt.pre-install"
-subpackages="$pkgname-cli:cli"
+subpackages="$pkgname-openrc $pkgname-cli:cli"
source="synapse-bt-$pkgver.tar.gz::https://github.com/Luminarys/synapse/archive/$pkgver.tar.gz
+ openssl3.patch
synapse-bt.initd
"
builddir="$srcdir"/synapse-$pkgver
+
build() {
- cargo build --release --all --locked
+ cargo auditable build --release --all --locked
}
check() {
@@ -45,5 +47,8 @@ cli() {
"$subpkgdir"/usr/bin/sycli
}
-sha512sums="d3caf0a4ca0e7a63dff07ec15bbbf2dc02736c6ba88c4fbece960af7223f7df8b176dc917518a9ac3f8692aa59c321cb9cbe2a0250a2dddbf520706e379be981 synapse-bt-1.0.tar.gz
-82f8edef196cf15369ba4e6d83f289764fe6f94715f79b27803b7ef87317036cecaf2e497d4858d56727fe101d466d141addfc78b0396813b0edafde3c761d31 synapse-bt.initd"
+sha512sums="
+d3caf0a4ca0e7a63dff07ec15bbbf2dc02736c6ba88c4fbece960af7223f7df8b176dc917518a9ac3f8692aa59c321cb9cbe2a0250a2dddbf520706e379be981 synapse-bt-1.0.tar.gz
+1a2c79613cb6c155cf3e41939360438462e8e0337d3af6eab4c288797a256ec4c986a052de78d04d57ac039a7d06e1b42733bae37699ad58e8ca5a25a02aa4ea openssl3.patch
+82f8edef196cf15369ba4e6d83f289764fe6f94715f79b27803b7ef87317036cecaf2e497d4858d56727fe101d466d141addfc78b0396813b0edafde3c761d31 synapse-bt.initd
+"
diff --git a/testing/synapse-bt/openssl3.patch b/testing/synapse-bt/openssl3.patch
new file mode 100644
index 00000000000..428bfb273ce
--- /dev/null
+++ b/testing/synapse-bt/openssl3.patch
@@ -0,0 +1,2608 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index ea5e35d..28eb5f3 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1,1253 +1,1463 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
+ [[package]]
+ name = "MacTypes-sys"
+ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eaf9f0d0b1cc33a4d2aee14fb4b2eac03462ef4db29c8ac4057327d8a71ad86f"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "adler32"
+ version = "1.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
+
+ [[package]]
+ name = "adns"
+ version = "0.1.0"
+ dependencies = [
+- "dns-parser 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "resolv-conf 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dns-parser",
++ "resolv-conf",
+ ]
+
+ [[package]]
+ name = "aho-corasick"
+ version = "0.6.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
+ dependencies = [
+- "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.0",
+ ]
+
+ [[package]]
+ name = "amy"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "189ef3bf7b79ba326fbb69ff2d29a78a8b9f087a5b6047b5aebc7bc4bad4b2aa"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nix 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "nix 0.10.0",
+ ]
+
+ [[package]]
+ name = "ansi_term"
+ version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+ dependencies = [
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "arrayvec"
+ version = "0.4.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
+ dependencies = [
+- "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nodrop",
+ ]
+
+ [[package]]
+ name = "atty"
+ version = "0.2.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "termion",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "autocfg"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799"
++
++[[package]]
++name = "autocfg"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+ [[package]]
+ name = "base32"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1b9605ba46d61df0410d8ac686b0007add8172eba90e8e909c347856fe794d8c"
+
+ [[package]]
+ name = "base64"
+ version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "safemem",
+ ]
+
+ [[package]]
+ name = "base64"
+ version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
+ ]
+
+ [[package]]
+ name = "bincode"
+ version = "1.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3efe0b4c8eaeed8600549c29f538a6a11bf422858d0ed435b1d70ec4ab101190"
+ dependencies = [
+- "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.2",
++ "byteorder",
++ "serde",
+ ]
+
+ [[package]]
+ name = "bitflags"
+ version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
+
+ [[package]]
+ name = "block-buffer"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d"
+ dependencies = [
+- "block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-padding",
++ "byte-tools",
++ "byteorder",
++ "generic-array",
+ ]
+
+ [[package]]
+ name = "block-padding"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d75255892aeb580d3c566f213a2b6fdc1c66667839f45719ee1d30ebf2aea591"
+ dependencies = [
+- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byte-tools",
+ ]
+
+ [[package]]
+ name = "byte-tools"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+
+ [[package]]
+ name = "byteorder"
+ version = "1.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
+
+ [[package]]
+ name = "bytes"
+ version = "0.4.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "iovec",
+ ]
+
+ [[package]]
+ name = "cc"
+ version = "1.0.31"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9ce8bb087aacff865633f0bd5aeaed910fe2fe55b55f4739527f2e023a2e53d"
+
+ [[package]]
+ name = "cfg-if"
+ version = "0.1.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "chrono"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
+ dependencies = [
+- "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer",
++ "num-traits",
++ "serde",
++ "time",
+ ]
+
+ [[package]]
+ name = "clap"
+ version = "2.32.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
+ dependencies = [
+- "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
+ ]
+
+ [[package]]
+ name = "clippy"
+ version = "0.0.302"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d911ee15579a3f50880d8c1d59ef6e79f9533127a3bd342462f5d584f5e8c294"
+ dependencies = [
+- "term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "term",
+ ]
+
+ [[package]]
+ name = "cloudabi"
+ version = "0.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
+ ]
+
+ [[package]]
+ name = "core-foundation"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
+ dependencies = [
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation-sys",
++ "libc",
+ ]
+
+ [[package]]
+ name = "core-foundation-sys"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "crc32fast"
+ version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+ dependencies = [
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.7",
+ ]
+
+ [[package]]
+ name = "crossbeam-deque"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
+ dependencies = [
+- "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch",
++ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "crossbeam-epoch"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4"
+ dependencies = [
+- "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec",
++ "cfg-if 0.1.7",
++ "crossbeam-utils",
++ "lazy_static",
++ "memoffset",
++ "scopeguard",
+ ]
+
+ [[package]]
+ name = "crossbeam-queue"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+ dependencies = [
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c"
+ dependencies = [
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.7",
++ "lazy_static",
+ ]
+
+ [[package]]
+ name = "csv"
+ version = "0.15.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ef22b37c7a51c564a365892c012dc0271221fdcc64c69b19ba4d6fa8bd96d9c"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "memchr 1.0.2",
++ "rustc-serialize",
+ ]
+
+ [[package]]
+ name = "digest"
+ version = "0.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c"
+ dependencies = [
+- "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array",
+ ]
+
+ [[package]]
+ name = "dns-parser"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7020f6760aea312d43d23cb83bf6c0c49f162541db8b02bf95209ac51dc253d"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "quick-error",
+ ]
+
+ [[package]]
+ name = "dtoa"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
+
+ [[package]]
+ name = "encode_unicode"
+ version = "0.3.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd"
+
+ [[package]]
+ name = "encoding_rs"
+ version = "0.8.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed"
+ dependencies = [
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.7",
+ ]
+
+ [[package]]
+ name = "error-chain"
+ version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "fake-simd"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+
+ [[package]]
+ name = "fnv"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+
+ [[package]]
+ name = "foreign-types"
+ version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+ dependencies = [
+- "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "foreign-types-shared",
+ ]
+
+ [[package]]
+ name = "foreign-types-shared"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+ [[package]]
+ name = "fs_extra"
+ version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
+
+ [[package]]
+ name = "fuchsia-cprng"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+ [[package]]
+ name = "fuchsia-zircon"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "fuchsia-zircon-sys",
+ ]
+
+ [[package]]
+ name = "fuchsia-zircon-sys"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+ [[package]]
+ name = "futures"
+ version = "0.1.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b"
+
+ [[package]]
+ name = "futures-cpupool"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "num_cpus",
+ ]
+
+ [[package]]
+ name = "gcc"
+ version = "0.3.55"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+
+ [[package]]
+ name = "generic-array"
+ version = "0.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592"
+ dependencies = [
+- "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "typenum",
+ ]
+
+ [[package]]
+ name = "getopts"
+ version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
+ dependencies = [
+- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
+ ]
+
+ [[package]]
+ name = "h2"
+ version = "0.1.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "910a5e7be6283a9c91b3982fa5188368c8719cce2a3cf3b86048673bf9d9c36b"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "bytes",
++ "fnv",
++ "futures",
++ "http",
++ "indexmap",
++ "log",
++ "slab",
++ "string",
++ "tokio-io",
+ ]
+
+ [[package]]
+ name = "http"
+ version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "fnv",
++ "itoa",
+ ]
+
+ [[package]]
+ name = "http-range"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f2e4003e6fd05ea9109db00415e670b11f511a42e567ff2d5d771cbdfa24e02"
+
+ [[package]]
+ name = "httparse"
+ version = "1.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
+
+ [[package]]
+ name = "hyper"
+ version = "0.12.25"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "h2 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "futures-cpupool",
++ "h2",
++ "http",
++ "httparse",
++ "iovec",
++ "itoa",
++ "log",
++ "net2",
++ "rustc_version",
++ "time",
++ "tokio",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-tcp",
++ "tokio-threadpool",
++ "tokio-timer",
++ "want",
+ ]
+
+ [[package]]
+ name = "hyper-tls"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "hyper",
++ "native-tls",
++ "tokio-io",
+ ]
+
+ [[package]]
+ name = "idna"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
+ ]
+
+ [[package]]
+ name = "indexmap"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
+
+ [[package]]
+ name = "input_buffer"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8e1b822cc844905551931d6f81608ed5f50a79c1078a4e2b4d42dbc7c1eedfbf"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
+ ]
+
+ [[package]]
+ name = "iovec"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "itoa"
+ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
+
+ [[package]]
+ name = "kernel32-sys"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+
+ [[package]]
+ name = "lazy_static"
+ version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
+
+ [[package]]
+ name = "lazycell"
+ version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
+
+ [[package]]
+ name = "libc"
+ version = "0.2.50"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1"
+
+ [[package]]
+ name = "libflate"
+ version = "0.1.21"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7346a83e8a2c3958d44d24225d905385dc31fc16e89dffb356c457b278914d20"
+ dependencies = [
+- "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32",
++ "byteorder",
++ "crc32fast",
+ ]
+
+ [[package]]
+ name = "lock_api"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
+ dependencies = [
+- "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "owning_ref",
++ "scopeguard",
+ ]
+
+ [[package]]
+ name = "log"
+ version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
+ dependencies = [
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.7",
+ ]
+
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+
+ [[package]]
+ name = "memchr"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
+ [[package]]
+ name = "memchr"
+ version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
+
+ [[package]]
+ name = "memmap"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "memoffset"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
+
+ [[package]]
+ name = "metrohash"
+ version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ba553cb19e2acbc54baa16faef215126243fe45e53357a3b2e9f4ebc7b0506c"
+
+ [[package]]
+ name = "mime"
+ version = "0.3.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425"
+ dependencies = [
+- "unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.3.0",
+ ]
+
+ [[package]]
+ name = "mime_guess"
+ version = "2.0.0-alpha.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
+ dependencies = [
+- "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
+- "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime",
++ "phf",
++ "phf_codegen",
++ "unicase 1.4.2",
+ ]
+
+ [[package]]
+ name = "mio"
+ version = "0.6.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432"
+ dependencies = [
+- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "lazycell",
++ "libc",
++ "log",
++ "miow",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
+ ]
+
+ [[package]]
+ name = "miow"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+ dependencies = [
+- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+
+ [[package]]
+ name = "native-tls"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2"
+ dependencies = [
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
+ ]
+
+ [[package]]
+ name = "net2"
+ version = "0.2.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+ dependencies = [
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.7",
++ "libc",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "nix"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "bytes",
++ "cfg-if 0.1.7",
++ "gcc",
++ "libc",
++ "void",
+ ]
+
+ [[package]]
+ name = "nix"
+ version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "cc",
++ "cfg-if 0.1.7",
++ "libc",
++ "void",
+ ]
+
+ [[package]]
+ name = "nodrop"
+ version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
+
+ [[package]]
+ name = "num-bigint"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57450397855d951f1a41305e54851b1a7b8f5d2e349543a02a2effe25459f718"
+ dependencies = [
+- "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-integer",
++ "num-traits",
++ "serde",
+ ]
+
+ [[package]]
+ name = "num-integer"
+ version = "0.1.39"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
+ dependencies = [
+- "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits",
+ ]
+
+ [[package]]
+ name = "num-traits"
+ version = "0.2.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
+
+ [[package]]
+ name = "num_cpus"
+ version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
+ ]
+
++[[package]]
++name = "once_cell"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
++
+ [[package]]
+ name = "opaque-debug"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409"
+
+ [[package]]
+ name = "openssl"
+-version = "0.10.19"
++version = "0.10.41"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0"
+ dependencies = [
+- "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags",
++ "cfg-if 1.0.0",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
++dependencies = [
++ "proc-macro2 1.0.43",
++ "quote 1.0.21",
++ "syn 1.0.99",
+ ]
+
+ [[package]]
+ name = "openssl-probe"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+
+ [[package]]
+ name = "openssl-sys"
+-version = "0.9.42"
++version = "0.9.75"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f"
+ dependencies = [
+- "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.1.0",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
+ ]
+
+ [[package]]
+ name = "owning_ref"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
+ dependencies = [
+- "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "stable_deref_trait",
+ ]
+
+ [[package]]
+ name = "parking_lot"
+ version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
+ dependencies = [
+- "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api",
++ "parking_lot_core",
+ ]
+
+ [[package]]
+ name = "parking_lot_core"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand 0.6.5",
++ "rustc_version",
++ "smallvec",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "percent-encoding"
+ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+
+ [[package]]
+ name = "phf"
+ version = "0.7.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
+ dependencies = [
+- "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_shared",
+ ]
+
+ [[package]]
+ name = "phf_codegen"
+ version = "0.7.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
+ dependencies = [
+- "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
+- "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_generator",
++ "phf_shared",
+ ]
+
+ [[package]]
+ name = "phf_generator"
+ version = "0.7.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
+ dependencies = [
+- "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_shared",
++ "rand 0.6.5",
+ ]
+
+ [[package]]
+ name = "phf_shared"
+ version = "0.7.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
+ dependencies = [
+- "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "siphasher",
++ "unicase 1.4.2",
+ ]
+
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
+
+ [[package]]
+ name = "prettytable-rs"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5511ca4c805aa35f0abff6be7923231d664408b60c09f44ef715f2bce106cd9e"
+ dependencies = [
+- "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "csv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty",
++ "csv",
++ "encode_unicode",
++ "lazy_static",
++ "term",
++ "unicode-width",
+ ]
+
+ [[package]]
+ name = "proc-macro2"
+ version = "0.4.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
+ dependencies = [
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab"
++dependencies = [
++ "unicode-ident",
+ ]
+
+ [[package]]
+ name = "quick-error"
+ version = "1.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
+
+ [[package]]
+ name = "quote"
+ version = "0.6.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1"
+ dependencies = [
+- "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.27",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
++dependencies = [
++ "proc-macro2 1.0.43",
+ ]
+
+ [[package]]
+ name = "rand"
+ version = "0.5.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.3.1",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "rand"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+ dependencies = [
+- "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.2",
++ "libc",
++ "rand_chacha",
++ "rand_core 0.4.0",
++ "rand_hc",
++ "rand_isaac",
++ "rand_jitter",
++ "rand_os",
++ "rand_pcg",
++ "rand_xorshift",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "rand_chacha"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+ dependencies = [
+- "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.2",
++ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "rand_core"
+ version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+ dependencies = [
+- "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.0",
+ ]
+
+ [[package]]
+ name = "rand_core"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
+
+ [[package]]
+ name = "rand_hc"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "rand_isaac"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "rand_jitter"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "rand_core 0.4.0",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "rand_os"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+ dependencies = [
+- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.4.0",
++ "rdrand",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "rand_pcg"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+ dependencies = [
+- "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.2",
++ "rand_core 0.4.0",
+ ]
+
+ [[package]]
+ name = "rand_xorshift"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "rdrand"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+ dependencies = [
+- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1",
+ ]
+
+ [[package]]
+ name = "redox_syscall"
+ version = "0.1.51"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85"
+
+ [[package]]
+ name = "redox_termios"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
+ dependencies = [
+- "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall",
+ ]
+
+ [[package]]
+ name = "regex"
+ version = "1.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f"
+ dependencies = [
+- "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick",
++ "memchr 2.2.0",
++ "regex-syntax",
++ "thread_local",
++ "utf8-ranges",
+ ]
+
+ [[package]]
+ name = "regex-syntax"
+ version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861"
+ dependencies = [
+- "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ucd-util",
+ ]
+
+ [[package]]
+ name = "remove_dir_all"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
+ dependencies = [
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "reqwest"
+ version = "0.9.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e542d9f077c126af32536b6aacc75bb7325400eab8cd0743543be5d91660780d"
+ dependencies = [
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libflate 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.10.1",
++ "bytes",
++ "encoding_rs",
++ "futures",
++ "http",
++ "hyper",
++ "hyper-tls",
++ "libflate",
++ "log",
++ "mime",
++ "mime_guess",
++ "native-tls",
++ "serde",
++ "serde_json",
++ "serde_urlencoded",
++ "tokio",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-threadpool",
++ "tokio-timer",
++ "url",
++ "uuid",
+ ]
+
+ [[package]]
+ name = "resolv-conf"
+ version = "0.6.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b263b4aa1b5de9ffc0054a2386f96992058bb6870aab516f8cdeb8a667d56dcb"
+ dependencies = [
+- "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quick-error",
+ ]
+
+ [[package]]
+ name = "rustc-serialize"
+ version = "0.3.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+
+ [[package]]
+ name = "rustc_version"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+ dependencies = [
+- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver",
+ ]
+
+ [[package]]
+ name = "ryu"
+ version = "0.2.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7"
+
+ [[package]]
+ name = "safemem"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
+
+ [[package]]
+ name = "schannel"
+ version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339"
+ dependencies = [
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "scopeguard"
+ version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+
+ [[package]]
+ name = "security-framework"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfab8dda0e7a327c696d893df9ffa19cadc4bd195797997f5223cf5831beaf05"
+ dependencies = [
+- "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "core-foundation",
++ "core-foundation-sys",
++ "libc",
++ "security-framework-sys",
+ ]
+
+ [[package]]
+ name = "security-framework-sys"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3d6696852716b589dff9e886ff83778bb635150168e83afa8ac6b8a78cb82abc"
+ dependencies = [
+- "MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "MacTypes-sys",
++ "core-foundation-sys",
++ "libc",
+ ]
+
+ [[package]]
+ name = "semver"
+ version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+ dependencies = [
+- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver-parser",
+ ]
+
+ [[package]]
+ name = "semver-parser"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+ [[package]]
+ name = "serde"
+ version = "1.0.89"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560"
+
+ [[package]]
+ name = "serde_derive"
+ version = "1.0.89"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c"
+ dependencies = [
+- "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.27",
++ "quote 0.6.11",
++ "syn 0.15.29",
+ ]
+
+ [[package]]
+ name = "serde_json"
+ version = "1.0.39"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d"
+ dependencies = [
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa",
++ "ryu",
++ "serde",
+ ]
+
+ [[package]]
+ name = "serde_urlencoded"
+ version = "0.5.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2"
+ dependencies = [
+- "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dtoa",
++ "itoa",
++ "serde",
++ "url",
+ ]
+
+ [[package]]
+ name = "sha-1"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23962131a91661d643c98940b20fcaffe62d776a823247be80a48fcb8b6fce68"
+ dependencies = [
+- "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "block-buffer",
++ "digest",
++ "fake-simd",
++ "opaque-debug",
+ ]
+
+ [[package]]
+ name = "shellexpand"
+ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564"
+
+ [[package]]
+ name = "siphasher"
+ version = "0.2.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+
+ [[package]]
+ name = "slab"
+ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+ [[package]]
+ name = "smallvec"
+ version = "0.6.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be"
+
+ [[package]]
+ name = "stable_deref_trait"
+ version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+
+ [[package]]
+ name = "string"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b"
+
+ [[package]]
+ name = "strsim"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
+
+ [[package]]
+ name = "sycli"
+ version = "0.1.0"
+ dependencies = [
+- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "prettytable-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synapse-bencode 0.1.0",
+- "synapse-rpc 0.1.21",
+- "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tungstenite 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.9.3",
++ "clap",
++ "error-chain",
++ "openssl",
++ "prettytable-rs",
++ "reqwest",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "shellexpand",
++ "synapse-bencode",
++ "synapse-rpc",
++ "toml",
++ "tungstenite",
++ "url",
+ ]
+
+ [[package]]
+ name = "syn"
+ version = "0.15.29"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1825685f977249735d510a242a6727b46efe914bb67e38d30c071b1b72b1d5c2"
+ dependencies = [
+- "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.27",
++ "quote 0.6.11",
++ "unicode-xid",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.99"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
++dependencies = [
++ "proc-macro2 1.0.43",
++ "quote 1.0.21",
++ "unicode-ident",
+ ]
+
+ [[package]]
+@@ -1258,630 +1468,487 @@ version = "0.1.0"
+ name = "synapse-bt"
+ version = "0.1.0"
+ dependencies = [
+- "adns 0.1.0",
+- "amy 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base32 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "clippy 0.0.302 (registry+https://github.com/rust-lang/crates.io-index)",
+- "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+- "http-range 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "metrohash 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
+- "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "synapse-bencode 0.1.0",
+- "synapse-rpc 0.1.21",
+- "synapse-session 0.1.0",
+- "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "vecio 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adns",
++ "amy",
++ "base32",
++ "base64 0.9.3",
++ "bincode",
++ "byteorder",
++ "cc",
++ "chrono",
++ "clippy",
++ "error-chain",
++ "fnv",
++ "fs_extra",
++ "getopts",
++ "http-range",
++ "httparse",
++ "lazy_static",
++ "libc",
++ "memmap",
++ "metrohash",
++ "net2",
++ "nix 0.11.0",
++ "num-bigint",
++ "openssl",
++ "rand 0.5.6",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "shellexpand",
++ "synapse-bencode",
++ "synapse-rpc",
++ "synapse-session",
++ "toml",
++ "url",
++ "vecio",
+ ]
+
+ [[package]]
+ name = "synapse-rpc"
+ version = "0.1.21"
+ dependencies = [
+- "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono",
++ "regex",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "url",
++ "url_serde",
+ ]
+
+ [[package]]
+ name = "synapse-session"
+ version = "0.1.0"
+ dependencies = [
+- "bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bincode",
++ "chrono",
++ "serde",
++ "serde_derive",
+ ]
+
+ [[package]]
+ name = "tempfile"
+ version = "3.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a"
+ dependencies = [
+- "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
+- "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.7",
++ "libc",
++ "rand 0.6.5",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "term"
+ version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561"
+ dependencies = [
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "termion"
+ version = "1.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_syscall",
++ "redox_termios",
+ ]
+
+ [[package]]
+ name = "textwrap"
+ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
+ dependencies = [
+- "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
+ ]
+
+ [[package]]
+ name = "thread_local"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+ dependencies = [
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
+ ]
+
+ [[package]]
+ name = "time"
+ version = "0.1.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+ dependencies = [
+- "libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
+- "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.6",
+ ]
+
+ [[package]]
+ name = "tokio"
+ version = "0.1.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1021bb1f4150435ab8f222eb7ed37c60b2d57037def63ba43085a79f387512d7"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "mio",
++ "num_cpus",
++ "tokio-current-thread",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-reactor",
++ "tokio-threadpool",
++ "tokio-timer",
++ "tokio-trace-core",
+ ]
+
+ [[package]]
+ name = "tokio-current-thread"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "tokio-executor",
+ ]
+
+ [[package]]
+ name = "tokio-executor"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0"
+ dependencies = [
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
++ "futures",
+ ]
+
+ [[package]]
+ name = "tokio-io"
+ version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "log",
+ ]
+
+ [[package]]
+ name = "tokio-reactor"
+ version = "0.1.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce"
+ dependencies = [
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
++ "futures",
++ "lazy_static",
++ "log",
++ "mio",
++ "num_cpus",
++ "parking_lot",
++ "slab",
++ "tokio-executor",
++ "tokio-io",
++ "tokio-sync",
+ ]
+
+ [[package]]
+ name = "tokio-sync"
+ version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fda385df506bf7546e70872767f71e81640f1f251bdf2fd8eb81a0eaec5fe022"
+ dependencies = [
+- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv",
++ "futures",
+ ]
+
+ [[package]]
+ name = "tokio-tcp"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
+ dependencies = [
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes",
++ "futures",
++ "iovec",
++ "mio",
++ "tokio-io",
++ "tokio-reactor",
+ ]
+
+ [[package]]
+ name = "tokio-threadpool"
+ version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801"
+ dependencies = [
+- "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque",
++ "crossbeam-queue",
++ "crossbeam-utils",
++ "futures",
++ "log",
++ "num_cpus",
++ "rand 0.6.5",
++ "slab",
++ "tokio-executor",
+ ]
+
+ [[package]]
+ name = "tokio-timer"
+ version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6"
+ dependencies = [
+- "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils",
++ "futures",
++ "slab",
++ "tokio-executor",
+ ]
+
+ [[package]]
+ name = "tokio-trace-core"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3"
+ dependencies = [
+- "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static",
+ ]
+
+ [[package]]
+ name = "toml"
+ version = "0.4.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
+ dependencies = [
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
+ ]
+
+ [[package]]
+ name = "try-lock"
+ version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
+
+ [[package]]
+ name = "tungstenite"
+ version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e9573852f935883137b7f0824832493ce7418bf290c8cf164b7aafc9b0a99aa0"
+ dependencies = [
+- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+- "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "input_buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "base64 0.10.1",
++ "byteorder",
++ "bytes",
++ "httparse",
++ "input_buffer",
++ "log",
++ "native-tls",
++ "rand 0.5.6",
++ "sha-1",
++ "url",
++ "utf-8",
+ ]
+
+ [[package]]
+ name = "typenum"
+ version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"
+
+ [[package]]
+ name = "ucd-util"
+ version = "0.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
+
+ [[package]]
+ name = "unicase"
+ version = "1.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "unicase"
+ version = "2.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41d17211f887da8e4a70a45b9536f26fc5de166b81e2d5d80de4a17fd22553bd"
+ dependencies = [
+- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check",
+ ]
+
+ [[package]]
+ name = "unicode-bidi"
+ version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+ dependencies = [
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches",
+ ]
+
++[[package]]
++name = "unicode-ident"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
++
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
+ dependencies = [
+- "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec",
+ ]
+
+ [[package]]
+ name = "unicode-width"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+
+ [[package]]
+ name = "unicode-xid"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+ [[package]]
+ name = "url"
+ version = "1.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+ dependencies = [
+- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna",
++ "matches",
++ "percent-encoding",
+ ]
+
+ [[package]]
+ name = "url_serde"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
+ dependencies = [
+- "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
+- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde",
++ "url",
+ ]
+
+ [[package]]
+ name = "utf-8"
+ version = "0.7.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
+
+ [[package]]
+ name = "utf8-ranges"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
+
+ [[package]]
+ name = "uuid"
+ version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0238db0c5b605dd1cf51de0f21766f97fba2645897024461d6a00c036819a768"
+ dependencies = [
+- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.6.5",
+ ]
+
+ [[package]]
+ name = "vcpkg"
+-version = "0.2.6"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+ [[package]]
+ name = "vec_map"
+ version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+
+ [[package]]
+ name = "vecio"
+ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0795a11576d29ae80525a3fda315bf7b534f8feb9d34101e5fe63fb95bb2fd24"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "ws2_32-sys",
+ ]
+
+ [[package]]
+ name = "version_check"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+ [[package]]
+ name = "void"
+ version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+ [[package]]
+ name = "want"
+ version = "0.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3"
+ dependencies = [
+- "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures",
++ "log",
++ "try-lock",
+ ]
+
+ [[package]]
+ name = "winapi"
+ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+ [[package]]
+ name = "winapi"
+ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
+ dependencies = [
+- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
+ ]
+
+ [[package]]
+ name = "winapi-build"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+ [[package]]
+ name = "winapi-i686-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+ [[package]]
+ name = "winapi-x86_64-pc-windows-gnu"
+ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+ [[package]]
+ name = "ws2_32-sys"
+ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+ dependencies = [
+- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8",
++ "winapi-build",
+ ]
+-
+-[metadata]
+-"checksum MacTypes-sys 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eaf9f0d0b1cc33a4d2aee14fb4b2eac03462ef4db29c8ac4057327d8a71ad86f"
+-"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
+-"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
+-"checksum amy 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "189ef3bf7b79ba326fbb69ff2d29a78a8b9f087a5b6047b5aebc7bc4bad4b2aa"
+-"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+-"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
+-"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
+-"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799"
+-"checksum base32 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1b9605ba46d61df0410d8ac686b0007add8172eba90e8e909c347856fe794d8c"
+-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+-"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+-"checksum bincode 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3efe0b4c8eaeed8600549c29f538a6a11bf422858d0ed435b1d70ec4ab101190"
+-"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
+-"checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d"
+-"checksum block-padding 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d75255892aeb580d3c566f213a2b6fdc1c66667839f45719ee1d30ebf2aea591"
+-"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+-"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
+-"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+-"checksum cc 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "c9ce8bb087aacff865633f0bd5aeaed910fe2fe55b55f4739527f2e023a2e53d"
+-"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
+-"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
+-"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
+-"checksum clippy 0.0.302 (registry+https://github.com/rust-lang/crates.io-index)" = "d911ee15579a3f50880d8c1d59ef6e79f9533127a3bd342462f5d584f5e8c294"
+-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+-"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
+-"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
+-"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
+-"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
+-"checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4"
+-"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
+-"checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c"
+-"checksum csv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ef22b37c7a51c564a365892c012dc0271221fdcc64c69b19ba4d6fa8bd96d9c"
+-"checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c"
+-"checksum dns-parser 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7020f6760aea312d43d23cb83bf6c0c49f162541db8b02bf95209ac51dc253d"
+-"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
+-"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd"
+-"checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed"
+-"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9"
+-"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
+-"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+-"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+-"checksum fs_extra 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
+-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+-"checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b"
+-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+-"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
+-"checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592"
+-"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
+-"checksum h2 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "910a5e7be6283a9c91b3982fa5188368c8719cce2a3cf3b86048673bf9d9c36b"
+-"checksum http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a"
+-"checksum http-range 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f2e4003e6fd05ea9109db00415e670b11f511a42e567ff2d5d771cbdfa24e02"
+-"checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
+-"checksum hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896"
+-"checksum hyper-tls 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd73f14ad370d3b4d4b7dce08f69b81536c82e39fcc89731930fe5788cd661"
+-"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+-"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
+-"checksum input_buffer 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e1b822cc844905551931d6f81608ed5f50a79c1078a4e2b4d42dbc7c1eedfbf"
+-"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
+-"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
+-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+-"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
+-"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
+-"checksum libc 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "aab692d7759f5cd8c859e169db98ae5b52c924add2af5fbbca11d12fefb567c1"
+-"checksum libflate 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "7346a83e8a2c3958d44d24225d905385dc31fc16e89dffb356c457b278914d20"
+-"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
+-"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
+-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+-"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
+-"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
+-"checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff"
+-"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
+-"checksum metrohash 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3ba553cb19e2acbc54baa16faef215126243fe45e53357a3b2e9f4ebc7b0506c"
+-"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425"
+-"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
+-"checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432"
+-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
+-"checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2"
+-"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
+-"checksum nix 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f"
+-"checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17"
+-"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
+-"checksum num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "57450397855d951f1a41305e54851b1a7b8f5d2e349543a02a2effe25459f718"
+-"checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
+-"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
+-"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba"
+-"checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409"
+-"checksum openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)" = "84321fb9004c3bce5611188a644d6171f895fa2889d155927d528782edb21c5d"
+-"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cb534d752bf98cf363b473950659ac2546517f9c6be9723771614ab3f03bbc9e"
+-"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
+-"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
+-"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
+-"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+-"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
+-"checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
+-"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
+-"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
+-"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
+-"checksum prettytable-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5511ca4c805aa35f0abff6be7923231d664408b60c09f44ef715f2bce106cd9e"
+-"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
+-"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
+-"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1"
+-"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+-"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+-"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+-"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
+-"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+-"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+-"checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832"
+-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+-"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+-"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+-"checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85"
+-"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
+-"checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f"
+-"checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861"
+-"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
+-"checksum reqwest 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e542d9f077c126af32536b6aacc75bb7325400eab8cd0743543be5d91660780d"
+-"checksum resolv-conf 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b263b4aa1b5de9ffc0054a2386f96992058bb6870aab516f8cdeb8a667d56dcb"
+-"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+-"checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7"
+-"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
+-"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339"
+-"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
+-"checksum security-framework 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfab8dda0e7a327c696d893df9ffa19cadc4bd195797997f5223cf5831beaf05"
+-"checksum security-framework-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3d6696852716b589dff9e886ff83778bb635150168e83afa8ac6b8a78cb82abc"
+-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+-"checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560"
+-"checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c"
+-"checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d"
+-"checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2"
+-"checksum sha-1 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "23962131a91661d643c98940b20fcaffe62d776a823247be80a48fcb8b6fce68"
+-"checksum shellexpand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de7a5b5a9142fd278a10e0209b021a1b85849352e6951f4f914735c976737564"
+-"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+-"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be"
+-"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
+-"checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b"
+-"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
+-"checksum syn 0.15.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1825685f977249735d510a242a6727b46efe914bb67e38d30c071b1b72b1d5c2"
+-"checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a"
+-"checksum term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561"
+-"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
+-"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
+-"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+-"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
+-"checksum tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "1021bb1f4150435ab8f222eb7ed37c60b2d57037def63ba43085a79f387512d7"
+-"checksum tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3"
+-"checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0"
+-"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
+-"checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce"
+-"checksum tokio-sync 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fda385df506bf7546e70872767f71e81640f1f251bdf2fd8eb81a0eaec5fe022"
+-"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
+-"checksum tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801"
+-"checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6"
+-"checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3"
+-"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
+-"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
+-"checksum tungstenite 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e9573852f935883137b7f0824832493ce7418bf290c8cf164b7aafc9b0a99aa0"
+-"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"
+-"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
+-"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+-"checksum unicase 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41d17211f887da8e4a70a45b9536f26fc5de166b81e2d5d80de4a17fd22553bd"
+-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+-"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
+-"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+-"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+-"checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea"
+-"checksum utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
+-"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
+-"checksum uuid 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0238db0c5b605dd1cf51de0f21766f97fba2645897024461d6a00c036819a768"
+-"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d"
+-"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+-"checksum vecio 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0795a11576d29ae80525a3fda315bf7b534f8feb9d34101e5fe63fb95bb2fd24"
+-"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+-"checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3"
+-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+-"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
+-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
diff --git a/testing/syncthing-gtk/APKBUILD b/testing/syncthing-gtk/APKBUILD
new file mode 100644
index 00000000000..89fe587bb73
--- /dev/null
+++ b/testing/syncthing-gtk/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=syncthing-gtk
+pkgver=0.9.4.5
+pkgrel=1
+pkgdesc="GTK3 based UI and notification area icon for Syncthing"
+url="https://github.com/syncthing-gtk/syncthing-gtk"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="
+ gtk+3.0
+ libnotify
+ py3-bcrypt
+ py3-cairo
+ py3-dateutil
+ py3-gobject3
+ syncthing
+ "
+makedepends="py3-setuptools"
+checkdepends="pytest"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://github.com/syncthing-gtk/syncthing-gtk/archive/refs/tags/$pkgver/syncthing-gtk-$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir" --skip-build
+}
+
+sha512sums="
+25d3c111651c02a5d6d281ae04710b3c54f50d944cc1a72d3d94493e897b9bd432ae2e6dc782d7f0c17b12b3ba86ff30f8654bd46161a3a832d14e8c86c9cba7 syncthing-gtk-0.9.4.5.tar.gz
+"
diff --git a/testing/sysls/APKBUILD b/testing/sysls/APKBUILD
new file mode 100644
index 00000000000..422af30a1e1
--- /dev/null
+++ b/testing/sysls/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Luca Weiss <luca@z3ntu.xyz>
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=sysls
+pkgver=2
+pkgrel=1
+pkgdesc="Nicer ls for sysfs directories"
+url="https://git.sr.ht/~martijnbraam/sysls"
+arch="all"
+license="GPL-3.0-only"
+makedepends="py3-setuptools"
+source="sysls-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/sysls/archive/$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="
+f99fc36fd42fb044d5d69a17f5fe0d93d8edd1dd0093ee9c5445afa05630b7258a8d50aecbf5cbe2588e00a78152195061d12fc527db25b02284c2507c911aba sysls-2.tar.gz
+"
diff --git a/testing/t2sz/APKBUILD b/testing/t2sz/APKBUILD
new file mode 100644
index 00000000000..bfd41253e4d
--- /dev/null
+++ b/testing/t2sz/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Marco Martinelli <marco+t2sz@13byte.com>
+# Maintainer: Marco Martinelli <marco+t2sz@13byte.com>
+pkgname=t2sz
+pkgver=1.1.2
+pkgrel=0
+pkgdesc="t2sz compress a file into a seekable zstd with special handling for tar archives."
+url="https://github.com/martinellimarco/t2sz"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cmake zstd-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/martinellimarco/t2sz/archive/refs/tags/v$pkgver.tar.gz"
+options="!check"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ $CMAKE_CROSSOPTS .
+
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+8bc388042e4f41bc87499b69ee5cc7519701269e6c6bf22c0aab9e11472b65a71fc782582fc3060de3ce8e81bf87e5184051e915ae7d10bd604c68773cdb229e t2sz-1.1.2.tar.gz
+"
diff --git a/testing/tabby/APKBUILD b/testing/tabby/APKBUILD
new file mode 100644
index 00000000000..caf51afb8fb
--- /dev/null
+++ b/testing/tabby/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=tabby
+pkgver=3.1
+pkgrel=1
+pkgdesc="Tabbed Tiling Wayland Compositor"
+url="https://code.jessemcclure.org/tabby/"
+arch="all"
+license="MIT"
+makedepends="
+ cairo-dev
+ nkk-dev
+ pango-dev
+ pixman-dev
+ wayland-dev
+ wayland-protocols
+ wlroots0.16-dev
+ "
+subpackages="$pkgname-doc"
+source="tabby-$pkgver-r1.tar.gz::https://code.jessemcclure.org/tabby/tarball/$pkgver/tabby-$pkgver.tar.gz
+ usr-bin.patch
+ "
+options="!check" # no checks provided
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ecb09da410474819e567a2a3d879cfb36c0f72bbaecd4190714d5806f3fc2aea553f011506cae1a2ca95f8e4c3aa492939453ac43f77763c1b7fc2ed2c4b1c6f tabby-3.1-r1.tar.gz
+2270a4fa3ccfdd49fc7eda4201e1b358f687951622be9a73d0aa6ca95a2ac070b927aad78088a16a3aeba9a69c6b434e27d0af6fdd8b55d6b9634b1dc3ec13c2 usr-bin.patch
+"
diff --git a/testing/tabby/usr-bin.patch b/testing/tabby/usr-bin.patch
new file mode 100644
index 00000000000..b49fde5ebe3
--- /dev/null
+++ b/testing/tabby/usr-bin.patch
@@ -0,0 +1,10 @@
+diff --git a/share/config b/share/config
+index b1031ca..01d7f8d 100755
+--- a/share/config
++++ b/share/config
+@@ -1,4 +1,4 @@
+-#!/bin/tabby-cmd include
++#!/usr/bin/tabby-cmd include
+
+ gap 0
+ bpx 2
diff --git a/testing/tachyon/APKBUILD b/testing/tachyon/APKBUILD
new file mode 100644
index 00000000000..88782ab5e58
--- /dev/null
+++ b/testing/tachyon/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=tachyon
+pkgver=0.99_beta6
+pkgrel=1
+pkgdesc="Multithreaded ray tracing software"
+url="https://web.archive.org/web/20220728040107/http://jedi.ks.uiuc.edu/~johns/raytracer"
+arch="all"
+license="BSD-3-Clause"
+makedepends="jpeg-dev libpng-dev"
+source="https://archive.org/download/tachyon_${pkgver//_beta/b}dsx.orig.tar.xz/tachyon_${pkgver//_beta/~b}%2Bdsx.orig.tar.xz"
+subpackages="$pkgname-scenes:_scenes"
+builddir="$srcdir/$pkgname-${pkgver//_beta/~b}+dsx.orig/unix"
+
+case "$CARCH" in
+ armhf|armv7|x86) _target=linux-thr;;
+ *) _target=linux-64-thr;;
+esac
+
+build() {
+ sed -i -e "s/-m32 //" -e "s/-m64 //" Make-arch
+ make \
+ USEJPEG="-DUSEJPEG" \
+ JPEGLIB="$(pkgconf --libs libjpeg)" \
+ USEPNG="-DUSEPNG" \
+ PNGLIB="$(pkgconf --libs libpng)" \
+ "$_target"
+}
+
+check() {
+ ../compile/"$_target"/tachyon ../scenes/island.dat
+}
+
+package() {
+ cd ../compile/"$_target"
+ install -Dm755 tachyon "$pkgdir"/usr/bin/tachyon
+ install -d "$pkgdir"/usr/share/tachyon
+ cp -r ../../scenes "$pkgdir"/usr/share/tachyon/scenes
+}
+
+_scenes() {
+ pkgdesc="Example scenes for processing by tachyon"
+ arch="noarch"
+ amove usr/share/tachyon/scenes
+}
+
+sha512sums="
+aac052adcaaf1d44d7c087b9f11af6eb2ddea2df2848cf0d9a030993db6a544466ca06a9139f81f30cf150e616d7c46f5e8f56d4be54128c932b0228537fc4d4 tachyon_0.99~b6%2Bdsx.orig.tar.xz
+"
diff --git a/testing/tagutil/APKBUILD b/testing/tagutil/APKBUILD
deleted file mode 100644
index b55990bb4f8..00000000000
--- a/testing/tagutil/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=tagutil
-pkgver=3.1
-pkgrel=0
-pkgdesc="scriptable music files tags tool and editor"
-url="https://github.com/kAworu/tagutil"
-arch="all"
-license="BSD-2-Clause"
-makedepends="cmake flac-dev jansson-dev libvorbis-dev taglib-dev yaml-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kAworu/tagutil/archive/v3.1.tar.gz
- patch-musl.patch"
-options="!check" # No tests
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- $CMAKE_CROSSOPTS src
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="a5b2140250f21eddd0154231608546b78c5646bb4bcb6ed7b11a3cbade2435c322d83c19a2a2e6852cdacca19a2b1cd6e33c0b71147d6873679d2b41db5a06d9 tagutil-3.1.tar.gz
-2915411e1dc38126879c19d69caf8923fbcb95c72b3371661f50078b2722369ebb88f6dd3de9ba78f974a1eb07b743b1d69e40ee678f2a6f1634d8c972a18ef9 patch-musl.patch"
diff --git a/testing/tagutil/patch-musl.patch b/testing/tagutil/patch-musl.patch
deleted file mode 100644
index 7be2491908c..00000000000
--- a/testing/tagutil/patch-musl.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- tagutil-3.1/src/compat/include/sys/queue.h.orig 2020-04-06 19:26:17.876055943 +0200
-+++ tagutil-3.1/src/compat/include/sys/queue.h 2020-04-06 19:26:24.292746650 +0200
-@@ -33,8 +33,6 @@
- #ifndef _SYS_QUEUE_H_
- #define _SYS_QUEUE_H_
-
--#include <sys/cdefs.h>
--
- /*
- * This file defines four types of data structures: singly-linked lists,
- * singly-linked tail queues, lists and tail queues.
---- tagutil-3.1/src/compat/subr_sbuf.c.orig 2020-04-06 19:26:54.572881419 +0200
-+++ tagutil-3.1/src/compat/subr_sbuf.c 2020-04-06 19:27:01.302916526 +0200
-@@ -26,7 +26,6 @@
- * SUCH DAMAGE.
- */
-
--#include <sys/cdefs.h>
- /*
- __FBSDID("$FreeBSD: release/10.0.0/sys/kern/subr_sbuf.c 255805 2013-09-22 23:47:56Z des $");
- */
---- tagutil-3.1/src/CMakeLists.txt.orig 2020-04-06 19:30:20.403844481 +0200
-+++ tagutil-3.1/src/CMakeLists.txt 2020-04-06 19:30:55.434019063 +0200
-@@ -34,7 +34,7 @@
- add_compile_options(-fstack-protector-strong -o aslr -fpie)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
- # Per build type flags.
--set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -O0 -g -fsanitize=undefined")
-+set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -O0 -g")
- # CMAKE_BUILD_TYPE=GRIM: *very* strict compiler options
- set(CMAKE_C_FLAGS_GRIM "${CMAKE_C_FLAGS_DEBUG} -Wextra -pedantic -Wconversion -Wstrict-prototypes -Wcast-qual -Wcast-align -Wshadow -Wredundant-decls -Wundef -Wfloat-equal -Wmissing-include-dirs -Wswitch-default -Wpointer-arith -Wbad-function-cast -Wnested-externs -Wold-style-definition -Wformat=2 -Winit-self -Wwrite-strings -Wmissing-prototypes")
- include(CheckCCompilerFlag)
diff --git a/testing/tailspin/APKBUILD b/testing/tailspin/APKBUILD
new file mode 100644
index 00000000000..55ba5dbd699
--- /dev/null
+++ b/testing/tailspin/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=tailspin
+pkgver=3.0.0
+pkgrel=0
+pkgdesc="Log file highlighter"
+url="https://github.com/bensadeh/tailspin"
+arch="all !s390x" # nix crate fails to build
+license="MIT"
+depends="less"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/bensadeh/tailspin/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/tspin -t "$pkgdir"/usr/bin/
+ install -Dm644 man/tspin.1 -t "$pkgdir"/usr/share/man/man1/
+
+ install -Dm644 completions/tspin.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/tspin
+ install -Dm644 completions/tspin.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/tspin.fish
+ install -Dm644 completions/tspin.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_tspin
+}
+
+sha512sums="
+0f079d777fcb446b3b9b20b6d15974274f8f2ff4335bedbec1e3801561d6bc5b29c19a90d792ba88ba76e668e154f109479b9b73b11c5c50a388af8bf7b7e7ad tailspin-3.0.0.tar.gz
+"
diff --git a/testing/tang/APKBUILD b/testing/tang/APKBUILD
new file mode 100644
index 00000000000..5098ee9b3ea
--- /dev/null
+++ b/testing/tang/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=tang
+pkgver=14
+pkgrel=0
+pkgdesc="Server for binding data to network presence"
+url="https://github.com/latchset/tang"
+license="GPL-3.0-or-later"
+arch="all"
+depends="jose"
+makedepends="asciidoc meson http-parser-dev jose-dev"
+checkdepends="iproute2-ss"
+subpackages="$pkgname-dbg $pkgname-doc $pkgname-openrc"
+install="$pkgname.pre-install"
+source="https://github.com/latchset/tang/archive/v$pkgver/tang-$pkgver.tar.gz
+ $pkgname.initd
+ tangd-wrapper
+ man-pages.patch
+ "
+
+prepare() {
+ default_prepare
+
+ # conform to FHS
+ find . -type f -exec sed -i 's|/var/db/tang|/var/lib/tang|g' {} \;
+}
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm755 "$srcdir"/tangd-wrapper -t "$pkgdir"/usr/libexec/
+
+ rm -r "$pkgdir"/usr/lib/systemd
+}
+
+openrc() {
+ default_openrc
+
+ depends="socat"
+}
+
+sha512sums="
+3b0872f51d9aa8dfd232fa328a326503800a1eedfe7cf9d73f8e10a3cfb97f667996708a18ea04c982c3ca477fe36961045649437b953c593fce544d8dee8048 tang-14.tar.gz
+b91085ab94e0f2b884ea2aa5a9ca966b4532426996f170cc78b903f4ed7b729f82dbbad9d0b9106ee74e287d38421f5eb409d1ab61cb96278cdec73fae82c44b tang.initd
+d32a0da3ab91a42e6c2b2ebf00e9e4b7c95c329a0d13cc30a373c4b387d69e6ff62280d89b57b3c8809e57de953fb4abc9735ad6cad1d347ba6b64b500335d01 tangd-wrapper
+5fabfcb62db2c40c171f0059a34165faae40c3c08a2631a1b2b1e15ef2bc5bd090f612622641af16d30cc01a971265bd9010f125cce254c628067c48312e382d man-pages.patch
+"
diff --git a/testing/tang/man-pages.patch b/testing/tang/man-pages.patch
new file mode 100644
index 00000000000..643ecb8f4fb
--- /dev/null
+++ b/testing/tang/man-pages.patch
@@ -0,0 +1,20 @@
+diff --git a/doc/tang.8.adoc b/doc/tang.8.adoc
+index 3031a13..36105bb 100644
+--- a/doc/tang.8.adoc
++++ b/doc/tang.8.adoc
+@@ -40,13 +40,8 @@ protocol, see the Tang project's homepage.
+
+ Getting a Tang server up and running is simple:
+
+-ifdef::freebsd[]
+- $ sudo service tangd enable
+- $ sudo service tangd start
+-endif::[]
+-ifndef::freebsd[]
+- $ sudo systemctl enable tangd.socket --now
+-endif::[]
++ $ doas rc-update add tang
++ $ doas service tang start
+
+ That's it. The server is now running with a fresh set of cryptographic keys
+ and will automatically start on the next reboot.
diff --git a/testing/tang/tang.initd b/testing/tang/tang.initd
new file mode 100644
index 00000000000..13968543d91
--- /dev/null
+++ b/testing/tang/tang.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+
+name="Tang server"
+description="Server for binding data to network presence"
+
+: ${tang_port:="7500"}
+: ${tang_address:="127.0.0.1"}
+: ${socat_address:="tcp-listen:$tang_port,bind=$tang_address,fork"}
+
+command="/usr/bin/socat"
+command_user="tang:tang"
+command_args="$socat_address exec:/usr/libexec/tangd-wrapper"
+command_background="yes"
+
+extra_commands="rotate_keys"
+description_rotate_keys="Perform rotation of tang keys"
+pidfile="/run/$RC_SVCNAME.pid"
+
+rotate_keys() {
+ ebegin "Performing rotation of tang keys"
+ su ${command_user%:*} -s /bin/sh -c "/usr/libexec/tangd-rotate-keys -d /var/lib/tang"
+ eend $?
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o $command_user /var/lib/tang
+}
diff --git a/testing/tang/tang.pre-install b/testing/tang/tang.pre-install
new file mode 100644
index 00000000000..5f19f24d016
--- /dev/null
+++ b/testing/tang/tang.pre-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+user=tang
+group=tang
+gecos="Tang server"
+
+addgroup -S $group 2>/dev/null
+adduser -S -D -H -h /var/lib/$user -s /sbin/nologin -G $group -g "$gecos" $user 2>/dev/null
+
+exit 0
diff --git a/testing/tang/tangd-wrapper b/testing/tang/tangd-wrapper
new file mode 100644
index 00000000000..49a190814e6
--- /dev/null
+++ b/testing/tang/tangd-wrapper
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# pipe stderr to logger and leave stdin/stdout unaffected
+{ /usr/libexec/tangd /var/lib/tang 2>&1 >&3 3>&- | logger -t tangd -p daemon.info 3>&-; } 3>&1
diff --git a/testing/tangctl/APKBUILD b/testing/tangctl/APKBUILD
new file mode 100644
index 00000000000..c5a7e83de2d
--- /dev/null
+++ b/testing/tangctl/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=tangctl
+pkgver=0_git20220412
+_gitrev=2c7f9b676e1571a5805b2e47502ac16e1dfba5da
+pkgrel=15
+pkgdesc="Tool implementing server-side ECMR exchange functionality (Tang server)"
+url="https://github.com/anatol/tang.go"
+license="BSD-3-Clause"
+arch="all"
+makedepends="go"
+checkdepends="clevis tang"
+source="https://github.com/anatol/tang.go/archive/$_gitrev/tang.go-$pkgver.tar.gz
+ tang-location.patch
+ "
+builddir="$srcdir/tang.go-$_gitrev"
+# generated key does not match hardcoded id
+# probably cause by go version?
+options="!check"
+
+case "$CARCH" in
+ # blocked by clevis
+ s390x|riscv64) options="!check" ;;
+esac
+
+export GOFLAGS="$GOFLAGS -trimpath -mod=readonly -modcacherw"
+export GOPATH="$srcdir"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build ./cmd/tangctl
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 tangctl -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+6485cbfba2116b21fb5974dd3ef1dae1b5b8d39d8112e850f44941dc45896f6751b265b9e978b53f0e81520dce443ba2288b6b297bdac0d426ffecc46109baa6 tang.go-0_git20220412.tar.gz
+22d1dac2321c9e2fe7c1e5559d3976f759941d9aef27e8c0fc7858e311243635560d235c228ad846f58743e7d3c76737ce8bec3c844a4f567a8604b279961dd4 tang-location.patch
+"
diff --git a/testing/tangctl/tang-location.patch b/testing/tangctl/tang-location.patch
new file mode 100644
index 00000000000..72736571f1c
--- /dev/null
+++ b/testing/tangctl/tang-location.patch
@@ -0,0 +1,12 @@
+--- a/native_server.go
++++ b/native_server.go
+@@ -30,8 +30,7 @@ func NewNativeServer(keysDir string, port int) (*NativeServer, error) {
+
+ // different OS use different tang server binary location
+ tangLocations := []string{
+- "/usr/lib/",
+- "/usr/lib/x86_64-linux-gnu/",
++ "/usr/libexec/",
+ }
+
+ var tangdPath string
diff --git a/testing/tangram/APKBUILD b/testing/tangram/APKBUILD
new file mode 100644
index 00000000000..24a1963cc73
--- /dev/null
+++ b/testing/tangram/APKBUILD
@@ -0,0 +1,63 @@
+# Contributor: knuxify <knuxify@gmail.com>
+# Maintainer: knuxify <knuxify@gmail.com>
+pkgname=tangram
+pkgver=3.0
+pkgrel=1
+_troll_commit="63392a57392fb8ed944e859269a3751f649f64ec"
+pkgdesc="Browser for your pinned tabs"
+url="https://apps.gnome.org/app/re.sonny.Tangram"
+# armhf: blocked by gjs
+# s390x: blocked by gjs, blueprint-compiler
+arch="noarch !armhf !s390x"
+license="GPL-3.0-or-later"
+depends="
+ gjs
+ gtk4.0
+ libadwaita
+ webkit2gtk-6.0
+ "
+makedepends="
+ appstream-glib
+ blueprint-compiler
+ coreutils
+ desktop-file-utils
+ gjs-dev
+ glib-dev
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ "
+subpackages="$pkgname-lang"
+source="https://github.com/sonnyp/Tangram/archive/refs/tags/v$pkgver/Tangram-$pkgver.tar.gz
+ troll-$_troll_commit.tar.gz::https://github.com/sonnyp/troll/archive/$_troll_commit.tar.gz
+ busybox.patch
+ "
+builddir="$srcdir/Tangram-$pkgver"
+options="!check" # no test suite
+
+prepare() {
+ default_prepare
+
+ rm -r "$builddir"/troll
+ mv "$srcdir"/troll-$_troll_commit "$builddir"/troll
+}
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+74fb84ecd18e80605f98582a0e42d8f7acf8c1e208895592ef6299f187a741ef8642237283bdcf164bf29ee6a1c73f528dfdde274f2f45278cbad118c38b6d42 Tangram-3.0.tar.gz
+53f093712dd11cf2cc3e0448561b57873d225653bff937efa6a2e264ad3520b601cd623aa0178508e4a81e4f85c187dfc977f7f75bbd15873fce64b48efdcda8 troll-63392a57392fb8ed944e859269a3751f649f64ec.tar.gz
+0312705a1a832da0ff26c89fd83769a6f1720917dd954cc1d43482daf386841a8a0cae3a4e8b45cbf6c2b7ac3dbf5eb888ed690a568ab48b1763cc727ad69ebe busybox.patch
+"
diff --git a/testing/tangram/busybox.patch b/testing/tangram/busybox.patch
new file mode 100644
index 00000000000..20329dc0e6f
--- /dev/null
+++ b/testing/tangram/busybox.patch
@@ -0,0 +1,20 @@
+diff --git a/src/bin.js b/src/bin.js
+index 995c092..8ce4a2c 100755
+--- a/src/bin.js
++++ b/src/bin.js
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env -S gjs -m
++#!/usr/bin/gjs -m
+
+ import { exit, programArgs, programInvocationName } from "system";
+ import GLib from "gi://GLib";
+diff --git a/src/local.js b/src/local.js
+index e3fa11a..1385227 100755
+--- a/src/local.js
++++ b/src/local.js
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env -S gjs -m
++#!/usr/bin/gjs -m
+
+ import { exit, programArgs, programInvocationName } from "system";
+ import GLib from "gi://GLib";
diff --git a/testing/tanidvr/APKBUILD b/testing/tanidvr/APKBUILD
index 1f90244a3e3..b04ba8a458f 100644
--- a/testing/tanidvr/APKBUILD
+++ b/testing/tanidvr/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=tanidvr
pkgver=1.4.1
-pkgrel=0
+pkgrel=1
pkgdesc="a CLI tool for accessing DVRs and IP cameras based on the proprietary DVR-IP protocol (port 37777/TCP)"
-url="http://tanidvr.sourceforge.net"
+url="https://tanidvr.sourceforge.net/"
arch="all"
license="GPL-3.0"
depends=
diff --git a/testing/tanka/APKBUILD b/testing/tanka/APKBUILD
new file mode 100644
index 00000000000..1497b81ba1e
--- /dev/null
+++ b/testing/tanka/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=tanka
+pkgver=0.26.0
+pkgrel=4
+pkgdesc="Flexible, reusable and concise configuration for Kubernetes"
+url="https://tanka.dev"
+# blocked by kubectl (kubernetes)
+arch="all !armhf !riscv64"
+license="Apache-2.0"
+depends="kubectl"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/grafana/tanka/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v \
+ -ldflags "-X github.com/grafana/tanka/pkg/tanka.CurrentVersion=v$pkgver" \
+ ./cmd/tk
+}
+
+check() {
+ # /pkg/helm test requires helm.
+ # Tests timeout with helm installed.
+ # shellcheck disable=2046
+ go test $(go list ./... | grep -v /pkg/helm)
+}
+
+package() {
+ install -Dm755 tk -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+1f8a59b75f73c5b743674f9cff646f6f2401c800b75cb5aa5af31cd7d0df807d08eee47d4e5aa96c6889737a655a1abd8e959b7285bce1637e9258fa2c763384 tanka-0.26.0.tar.gz
+"
diff --git a/testing/tartube/APKBUILD b/testing/tartube/APKBUILD
new file mode 100644
index 00000000000..68cc4c424a1
--- /dev/null
+++ b/testing/tartube/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Antoni Aloy <aaloytorrens@gmail.com>
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=tartube
+pkgver=2.5.0
+pkgrel=0
+pkgdesc="GUI front-end for youtube-dl, partly based on youtube-dl-gui and written in Python 3 / Gtk 3"
+url="https://github.com/axcore/tartube"
+# blocked by streamlink
+#arch="noarch !s390x" # freeimage
+license="LGPL-2.1-or-later"
+depends="
+ aria2
+ atomicparsley
+ ffmpeg
+ mpv
+ py3-feedparser
+ py3-gobject3
+ py3-imageio-ffmpeg
+ py3-matplotlib
+ py3-playsound
+ py3-requests
+ python3
+ streamlink
+ xdg-utils
+ yt-dlp
+"
+
+# Enable moviepy and imageio support when possible
+case "$CARCH" in
+ ppc64le) ;;
+ *) depends="$depends py3-moviepy py3-imageio" ;;
+esac
+
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/axcore/tartube/archive/v$pkgver.tar.gz"
+
+build() {
+ TARTUBE_NO_UPDATES=1 python3 setup.py build
+}
+
+check() {
+ python3 setup.py check
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ _sitepkgs_dir="$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")"
+ mv "$pkgdir/tartube/icons" "$pkgdir$_sitepkgs_dir/tartube/"
+ rm -rvf "$pkgdir"/tartube
+ install -Dm644 pack/tartube.png "$pkgdir"/usr/share/icons/hicolor/48x48/apps/tartube.png
+ install -Dm644 pack/tartube.desktop "$pkgdir"/usr/share/applications/tartube.desktop
+}
+
+sha512sums="
+249c99d2b51e0dec76efd85d204cc3bc21a9963defd8a2fc50de02758f33848bb71b1dcdba143a8f9b7f459d0196c522a156b40719f2a756da7f1675fa43b172 tartube-2.5.0.tar.gz
+"
diff --git a/testing/taskcafe/APKBUILD b/testing/taskcafe/APKBUILD
new file mode 100644
index 00000000000..89b1b6b6e7a
--- /dev/null
+++ b/testing/taskcafe/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=taskcafe
+pkgver=0.3.6
+pkgrel=5
+pkgdesc="Project management tool with Kanban boards"
+url="https://github.com/JordanKnott/taskcafe"
+# riscv64: fails to compile js
+arch="all !riscv64"
+license="MIT"
+makedepends="go mage nodejs yarn"
+install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
+pkgusers="taskcafe"
+pkggroups="taskcafe"
+source="$pkgname-$pkgver.tar.gz::https://github.com/JordanKnott/taskcafe/archive/$pkgver.tar.gz
+ taskcafe.initd
+ taskcafe.confd
+ "
+# No testsuite
+# Downloading Go and NodeJS dependencies
+options="!check chmod-clean net"
+
+export GOPATH="$srcdir"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export NODE_OPTIONS=--openssl-legacy-provider
+ # Download npm dependencies
+ mage install
+
+ # Set CI=false so warnings aren't treated as errors
+ # https://github.com/facebook/create-react-app/issues/3657
+ CI=false mage build
+}
+
+package() {
+ install -Dm755 dist/taskcafe "$pkgdir"/usr/bin/taskcafe
+
+ # Add default config
+ install -Dm644 conf/taskcafe.example.toml \
+ "$pkgdir"/etc/taskcafe/config.toml
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -Dm644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+b513c2654d7bf321c6db4ac397d7f3f9fea9d9b2912e13f0597f5dc67fa9825f0014c715f726980eaf2943240d911686d51be5a8fbc7bc2951c2d2d126fb4100 taskcafe-0.3.6.tar.gz
+43239950292a481da33dd714a2eb4d1643dbbbd261c98540d8f4251a9742a2077943fb79a565e7b44562cc8dd2d7a4a518ee85e3862f3bcd8b4675e9a8c12c5b taskcafe.initd
+2cb92a08dc4541482e83fb2ee5ff4018e7f7813bf72f1dfca3c96b3cd90a704a07949e8c203c2a8d9809e7f9ade5bf1f3843230dcc37bd8891902dee7d9ecc1d taskcafe.confd
+"
diff --git a/testing/taskcafe/taskcafe.confd b/testing/taskcafe/taskcafe.confd
new file mode 100644
index 00000000000..c4c8dd945e8
--- /dev/null
+++ b/testing/taskcafe/taskcafe.confd
@@ -0,0 +1 @@
+taskcafe_configfile=/etc/taskcafe/config.toml
diff --git a/testing/taskcafe/taskcafe.initd b/testing/taskcafe/taskcafe.initd
new file mode 100644
index 00000000000..95ccd2de585
--- /dev/null
+++ b/testing/taskcafe/taskcafe.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name="taskcafe"
+command="/usr/bin/taskcafe"
+command_args="--config $taskcafe_configfile web"
+command_user="taskcafe:taskcafe"
+command_background=true
+pidfile="/run/taskcafe.pid"
+
+depend() {
+ need net localmount
+ after firewall
+}
diff --git a/testing/taskcafe/taskcafe.pre-install b/testing/taskcafe/taskcafe.pre-install
new file mode 100644
index 00000000000..4343afc84b8
--- /dev/null
+++ b/testing/taskcafe/taskcafe.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S taskcafe 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G taskcafe -g taskcafe taskcafe 2>/dev/null
+
+exit 0
diff --git a/testing/tauri-cli/APKBUILD b/testing/tauri-cli/APKBUILD
new file mode 100644
index 00000000000..393715a7122
--- /dev/null
+++ b/testing/tauri-cli/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=tauri-cli
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Tauri cargo cli tool"
+url="https://github.com/tauri-apps/tauri"
+# tauri doesn't support the others anyway
+arch="aarch64 armv7 x86 x86_64"
+license="Apache-2.0 OR MIT"
+makedepends="
+ bzip2-dev
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/tauri-apps/tauri/releases/download/tauri-cli-v$pkgver/tauri-cli-$pkgver.crate"
+options="net !check" # no tests
+
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen --no-default-features --features "native-tls"
+}
+
+package() {
+ install -Dm755 target/release/cargo-tauri -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2089f991dee05c06a5c6645e81b651a78fec4722a7d9c81927a9afd034c7efd73083a7f41d2a817246f06a2ed418203c2a437d75309e7be5e9343a90de7d8132 tauri-cli-1.4.0.tar.gz
+"
diff --git a/testing/tayga/APKBUILD b/testing/tayga/APKBUILD
new file mode 100644
index 00000000000..2518af217d1
--- /dev/null
+++ b/testing/tayga/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=tayga
+pkgver=0.9.2
+pkgrel=0
+pkgdesc="NAT64 daemon"
+url="http://www.litech.org/tayga/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.bz2::http://www.litech.org/tayga/tayga-$pkgver.tar.bz2
+ implicit-function-decl.patch
+ "
+options="!check" # no tests
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc/tayga \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+a7a81cccb7c3e32f00f142b1bac598b732dd748772b307561239d695418ada5302182d487e51d1cf95ed736c0180c01db2f33409d0b9343d6587b76cbb3bc573 tayga-0.9.2.tar.bz2
+06a62211b2dfc42b170964afe347a3df7cc50764da1ce626149e622023acec87f99b0ec8e17f094eff85fec51107cb7212c258da2a787b94c18812a848cd79b3 implicit-function-decl.patch
+"
diff --git a/testing/tayga/implicit-function-decl.patch b/testing/tayga/implicit-function-decl.patch
new file mode 100644
index 00000000000..29df1d4a373
--- /dev/null
+++ b/testing/tayga/implicit-function-decl.patch
@@ -0,0 +1,12 @@
+diff --git a/tayga.h b/tayga.h
+index 2284d2a..a999d7c 100644
+--- a/tayga.h
++++ b/tayga.h
+@@ -31,6 +31,7 @@
+ #include <syslog.h>
+ #include <errno.h>
+ #include <time.h>
++#include <sys/uio.h>
+ #include <linux/if.h>
+ #include <linux/if_tun.h>
+ #include <linux/if_ether.h>
diff --git a/testing/tcc/APKBUILD b/testing/tcc/APKBUILD
index c6a9b0c8809..56bd618d0e8 100644
--- a/testing/tcc/APKBUILD
+++ b/testing/tcc/APKBUILD
@@ -2,37 +2,56 @@
# Contributor: Hinata Yanagi <hinasssan@gmail.com>
# Maintainer: Hinata Yanagi <hinasssan@gmail.com>
pkgname=tcc
-pkgver=0.9.27
-pkgrel=1
+pkgver=0.9.27_git20240117
+_commit="7d1bbc80d4978c128b8ebead42485d7a79624dcd"
+pkgrel=0
pkgdesc="Tiny C Compiler"
-url="http://download.savannah.nongnu.org/releases/tinycc"
-arch="all !ppc64le !s390x !mips !mips64"
-license="LGPL-2.1"
+url="https://repo.or.cz/w/tinycc.git"
+arch="all !ppc64le !s390x"
+license="LGPL-2.1-or-later"
makedepends="texinfo"
options="!check" # test suite currently fails on the server
-source="http://download.savannah.nongnu.org/releases/tinycc/${pkgname}-${pkgver}.tar.bz2"
-subpackages="$pkgname-doc"
-builddir="$srcdir/tcc-${pkgver}"
+depends_dev="$pkgname-libs"
+source="
+ $pkgname-$_commit.tar.gz::https://repo.or.cz/tinycc.git/snapshot/$_commit.tar.gz
+ libtcc.pc.in
+ "
+subpackages="
+ $pkgname-libs
+ $pkgname-libs-static
+ $pkgname-dev
+ $pkgname-doc
+ "
+builddir="$srcdir/tinycc-${_commit:0:7}"
build() {
./configure \
--prefix=/usr \
+ --disable-static \
--config-musl
make
+
+ sed 's/@VERSION@/'"$pkgver"'/' "$srcdir"/libtcc.pc.in > libtcc.pc
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 Changelog CodingStyle README TODO \
- "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 libtcc.pc -t "$pkgdir"/usr/lib/pkgconfig/
+ install -Dm644 Changelog CodingStyle README TODO \
+ -t "$pkgdir"/usr/share/doc/$pkgname
+}
+
+libs() {
+ default_libs
+ amove usr/lib/libtcc.so
}
-sha512sums="835184292d97c07f0ff7b36ec550e855e649b04e23c7e2a1c706d223409eb60708dc1ae969f28eba45e56c8b96ae56936b93caf9d8a13ac5adf119014d5367a7 tcc-0.9.27.tar.bz2"
+sha512sums="
+86e76dd885e511f833fd35d3e4d34b77cfdf0aa8ac2766a7dfd783d8682a4fadcc5d5ad9e5ab69867054b37bc3c085a3e77d93fb2615a21bdd36ac89c1f7917f tcc-7d1bbc80d4978c128b8ebead42485d7a79624dcd.tar.gz
+3e6311ef2b93ef5bcc17eb33077e2d79526c1592bb28189d1d12f1835d3af8234fe33cf49372c3c9ca703bb7cebebbdbbeb3db9864e18a76510e67b52b173e3a libtcc.pc.in
+"
diff --git a/testing/tcc/libtcc.pc.in b/testing/tcc/libtcc.pc.in
new file mode 100644
index 00000000000..89907e1e835
--- /dev/null
+++ b/testing/tcc/libtcc.pc.in
@@ -0,0 +1,12 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: libtcc
+Description: Tiny C Compiler
+Version: @VERSION@
+
+Requires:
+Libs: -L${libdir} -ltcc
+Cflags: -I${includedir}
diff --git a/testing/tcl-curl/APKBUILD b/testing/tcl-curl/APKBUILD
new file mode 100644
index 00000000000..e09d4a13886
--- /dev/null
+++ b/testing/tcl-curl/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Ben Fuhrmannek <ben+alpine@sektioneins.de>
+pkgname=tcl-curl
+pkgver=7.22.0
+pkgrel=0
+pkgdesc="Tcl interface to cURL"
+_commit="ed4856901dee2784ceeb6d2ee0d621fe05aa0134"
+_reponame="tclcurl-fa"
+url="https://github.com/flightaware/$_reponame"
+arch="all"
+license="TCL"
+depends="tcl"
+makedepends="curl-dev tcl-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/flightaware/tclcurl-fa/archive/$_commit.tar.gz"
+builddir="$srcdir/$_reponame-$_commit"
+
+build() {
+ # shellcheck disable=SC1091
+ . /usr/lib/tclConfig.sh
+
+ local extra_configure_flags
+ if echo "$TCL_DEFS" | grep -q "DTCL_CFG_DO64BIT=1"; then
+ extra_configure_flags="--enable-64bit"
+ fi
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-threads \
+ $extra_configure_flags
+
+ make
+}
+
+check() {
+ ln -s generic/tclcurl.tcl .
+
+ # 'make test' is broken / works only after make install
+ ## so we start the test suite manually, which is easier than patching 'make test'
+ cat <<EOT >tclsh-test.sh
+#!/bin/sh
+echo -e "set auto_path [list [pwd] {*}\$auto_path]\nsource {\$1}" |tclsh
+EOT
+ chmod +x tclsh-test.sh
+ cat <<EOT |tclsh
+package require tcltest
+::tcltest::configure -testdir tests
+::tcltest::interpreter "[pwd]/tclsh-test.sh"
+exit [::tcltest::runAllTests]
+EOT
+}
+
+package() {
+ make -j1 DESTDIR="$pkgdir" install-binaries install-scripts install-doc
+}
+
+sha512sums="
+713892700ff701937482452ef9d03af2ea73c51afc740ca0565adae608d360d2dff087d9e5b55cf0b4ea4314e4c3885e9b3250039ac4977f222383eef3122aaf tcl-curl-7.22.0.tar.gz
+"
diff --git a/testing/tcmu-runner/APKBUILD b/testing/tcmu-runner/APKBUILD
new file mode 100644
index 00000000000..5d6da65afe2
--- /dev/null
+++ b/testing/tcmu-runner/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Jacek Pruciak <alpine@juniorjpdj.pl>
+# Maintainer: Jacek Pruciak <alpine@juniorjpdj.pl>
+pkgname=tcmu-runner
+pkgver=1.6.0
+pkgrel=5
+pkgdesc="A daemon that handles the userspace side of the LIO TCM-User backstore."
+url="https://github.com/open-iscsi/tcmu-runner"
+arch="all !armhf !armv7 !x86" # blocked by ceph
+license="Apache-2.0"
+makedepends="cmake glib-dev kmod-dev libnl3-dev ceph-dev samurai"
+options="!check" # no upstream tests
+subpackages="libtcmu:libs libtcmu-dev $pkgname-doc $pkgname-rbd"
+source="https://github.com/open-iscsi/tcmu-runner/archive/v$pkgver/tcmu-runner-$pkgver.tar.gz
+ tcmu-runner-fix-i586-size_t-error.patch
+ "
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -Dwith-glfs=false \
+ -Dwith-tcmalloc=false \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ # I asked upstream for tests, so let's leave it here. It's disabled anyway.
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+rbd() {
+ amove usr/lib/tcmu-runner/handler_rbd.so
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ mkdir -p "$pkgdir"/usr/share/dbus-1/system.d/
+ mv "$pkgdir"/etc/dbus-1/system.d/* "$pkgdir"/usr/share/dbus-1/system.d/
+}
+
+sha512sums="
+dca6d64c7bf90567357afacb9f0ba19438029172756ef06d115164610899e8a6546dea683f4d0e2018cb911d1a895b93a25b7b1770fdaca975fdfc93b77e5e4b tcmu-runner-1.6.0.tar.gz
+a26fca68a73e5cc6726e880f5004b96fd0f5d3cbcaf6dd7a6a8a5e03f9089c91ec271b2517ea127b37dcead1499baac7cf6a5f23c0d4a70d13baa0107baefab3 tcmu-runner-fix-i586-size_t-error.patch
+"
diff --git a/testing/tcmu-runner/tcmu-runner-fix-i586-size_t-error.patch b/testing/tcmu-runner/tcmu-runner-fix-i586-size_t-error.patch
new file mode 100644
index 00000000000..adedc592ad6
--- /dev/null
+++ b/testing/tcmu-runner/tcmu-runner-fix-i586-size_t-error.patch
@@ -0,0 +1,23 @@
+From: David Disseldorp <ddiss@suse.de>
+Date: Fri Jan 3 09:10:02 PST 2020
+Subject: tcmu-runner: fix i586 size_t error
+Patch-mainline: submitted pull request on github 1/2020
+
+This fix silences a compiler complaint on i586 (32-bit).
+
+Signed-off-by: Lee Duncan <lduncan@suse.com>
+---
+ tcmur_cmd_handler.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/tcmur_cmd_handler.c
++++ b/tcmur_cmd_handler.c
+@@ -712,7 +712,7 @@ static int handle_writesame(struct tcmu_
+ uint32_t block_size = tcmu_dev_get_block_size(dev);
+ uint64_t start_lba = tcmu_cdb_get_lba(cdb);
+ uint64_t write_lbas;
+- size_t max_xfer_length, length = 1024 * 1024;
++ uint64_t max_xfer_length, length = 1024 * 1024;
+ struct write_same *write_same;
+ int i, ret;
+
diff --git a/testing/tcolors/APKBUILD b/testing/tcolors/APKBUILD
deleted file mode 100644
index b441ca221e3..00000000000
--- a/testing/tcolors/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Joe Searle <joe@jsearle.net>
-# Maintainer: Joe Searle <joe@jsearle.net>
-pkgname=tcolors
-pkgver=0.3.1
-pkgrel=0
-pkgdesc="Commandline color picker and palette builder"
-url="https://github.com/bcicen/tcolors"
-arch=""
-license="MIT"
-makedepends="go"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/bcicen/tcolors/archive/v$pkgver.tar.gz"
-options="!check" # No tests
-
-build() {
- go mod download
- go build -ldflags "-w -X main.version=${pkgver}-${pkgrel} -X main.build=$pkgbuild" -o tcolors
-}
-
-package() {
- install -Dm755 tcolors "${pkgdir}/usr/bin/tcolors"
- install -Dm644 docs/man1/tcolors.1 "$pkgdir/usr/share/man/man1/${pkgname}.1"
-}
-
-sha512sums="ec492f93ca819140b8b933d57c6e352eecd67e3c9c8f404d87f63a191bed92290ab13730cf311697952a581a83671562937150bd450a5a58aedb2add3b83a670 tcolors-0.3.1.tar.gz"
diff --git a/testing/tcpreplay/APKBUILD b/testing/tcpreplay/APKBUILD
deleted file mode 100644
index b48c8f20d7a..00000000000
--- a/testing/tcpreplay/APKBUILD
+++ /dev/null
@@ -1,51 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=tcpreplay
-pkgver=4.3.2
-pkgrel=0
-pkgdesc="Replay captured network traffic"
-url="http://tcpreplay.synfin.net/trac/"
-arch="all"
-license="GPL-3.0-or-later"
-depends=""
-depends_dev=""
-makedepends="libdnet-dev libpcap-dev tcpdump"
-install=""
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/tcpreplay/$pkgname-$pkgver.tar.gz
- skip-tests-require-root.patch"
-builddir="$srcdir"/$pkgname-$pkgver
-
-# secfixes:
-# 4.3.2-r0:
-# - CVE-2019-8381
-# - CVE-2019-8376
-# - CVE-2019-8377
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --enable-dynamic-link \
- --enable-local-libopts \
- --disable-libopts-install
- make
-}
-
-check() {
- make test
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="211158d39ec48cefe11f0681f38eb1ab6a8302c5ef0e97dbff7d3230defe63e34d8d5755c21f1fe3fc061c4a0caf48ea0b86ae7d444ca68529a96386ea97b8fe tcpreplay-4.3.2.tar.gz
-b6491f1539d14721ab6cde567918fea857a3e230dad1b03dee872bc2c4cb8c8d86aa51d3ed08da322a5af3f6a508fab991d10d58c14e3c7ddd8aff971fe91abb skip-tests-require-root.patch"
diff --git a/testing/tcpreplay/skip-tests-require-root.patch b/testing/tcpreplay/skip-tests-require-root.patch
deleted file mode 100644
index a8fc70c0845..00000000000
--- a/testing/tcpreplay/skip-tests-require-root.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-These tests require root to run. Disable them so that we can still run the other tests
-diff --git a/test/Makefile.in b/test/Makefile.in.new
-index d325ee2dd6..68ee3c3628 100644
---- a/test/Makefile.in
-+++ b/test/Makefile.in.new
-@@ -790,16 +790,10 @@ include_dest:
- if [ $? ] ; then $(PRINTF) "\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t%s\n" "OK"; fi
-
- replay_basic:
-- $(PRINTF) "%s" "[tcpreplay] Basic test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Basic test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -t $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t\t%s\n" "[tcpreplay] Basic test:" "[SKIP]"
-
- replay_cache:
-- $(PRINTF) "%s" "[tcpreplay] Cache test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Cache test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -c $(srcdir)/test.cidr -i $(nic1) -I $(nic2) -t $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t\t%s\n" "[tcpreplay] Cache test:" "[SKIP]"
-
- replay_accurate:
- $(PRINTF) "%s" "[tcpreplay] Accurate test: "
-@@ -808,10 +802,7 @@ replay_accurate:
- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-
- replay_stats:
-- $(PRINTF) "%s" "[tcpreplay] Statistics test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Statistics test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) --stats=1 -i $(nic1) $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Statistics test:" "[SKIP]"
-
- rewrite_portmap:
- $(PRINTF) "%s" "[tcprewrite] Portmap test: "
-@@ -1028,40 +1019,22 @@ rewrite_l7fuzzing:
- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-
- replay_pps:
-- $(PRINTF) "%s" "[tcpreplay] Packets/sec test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Packets/sec test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -p 25 $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Packets/sec test:" "[SKIP]"
-
- replay_rate:
-- $(PRINTF) "%s" "[tcpreplay] Mbps test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Mbps test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -M 25.0 $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t\t%s\n" "[tcpreplay] Mbps test:" "[SKIP]"
-
- replay_multi:
-- $(PRINTF) "%s" "[tcpreplay] Multiplier test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Multiplier test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -x 25.0 $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Multiplier test:" "[SKIP]"
-
- replay_pps_multi:
-- $(PRINTF) "%s" "[tcpreplay] Packets/sec Multiplier test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Packets/sec Multiplier test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -p 100 --pps-multi=5 $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t%s\n" "FAILED"; else $(PRINTF) "\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t%s\n" "[tcpreplay] Packets/sec Multiplier test:" "[SKIP]"
-
- replay_top:
-- $(PRINTF) "%s" "[tcpreplay] Topspeed test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Topspeed test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -t $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Topspeed test:" "[SKIP]"
-
- replay_precache:
-- $(PRINTF) "%s" "[tcpreplay] Precache test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Precache test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) --preload-pcap $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Precache test:" "[SKIP]"
-
- datadump_mode:
- $(PRINTF) "%s" "[tcpreplay] Data dump test: "
-@@ -1070,22 +1046,13 @@ datadump_mode:
- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-
- replay_config:
-- $(PRINTF) "%s" "[tcpreplay] Config file/VLAN add test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Config file/VLAN add test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) --load-opts=config $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t%s\n" "[tcpreplay] Config file/VLAN add test:" "[SKIP]"
-
- replay_dualfile:
-- $(PRINTF) "%s" "[tcpreplay] Dual file test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Dual file test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) -I $(nic2) --dualfile $(TEST_PCAP) $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Dual file test:" "[SKIP]"
-
- replay_maxsleep:
-- $(PRINTF) "%s" "[tcpreplay] Maximum sleep test: "
-- $(PRINTF) "%s\n" "*** [tcpreplay] Maximum sleep test: " >> test.log
-- $(TCPREPLAY) $(ENABLE_DEBUG) -i $(nic1) --maxsleep=20 $(TEST_PCAP) $(TEST_PCAP) >> test.log 2>&1
-- if [ $? ] ; then $(PRINTF) "\t\t%s\n" "FAILED"; else $(PRINTF) "\t\t%s\n" "OK"; fi
-+ $(PRINTF) "%s\t\t\t%s\n" "[tcpreplay] Maximum sleep test:" "[SKIP]"
-
- clean:
- rm -f *1 test.log core* *~ primary.data secondary.data
diff --git a/testing/td-agent-bit/APKBUILD b/testing/td-agent-bit/APKBUILD
index ccfc2eef124..3d6bc513f6e 100644
--- a/testing/td-agent-bit/APKBUILD
+++ b/testing/td-agent-bit/APKBUILD
@@ -3,10 +3,12 @@
pkgname=td-agent-bit
_pkgname=fluent-bit
pkgver=0.10.1
-pkgrel=3
+pkgrel=4
pkgdesc="Fast and Lightweight Log/Data Forwarder [fluent-bit]"
url="http://fluentbit.io"
-arch="all !aarch64 !s390x !mips !mips64"
+#arch="all !aarch64 !s390x !riscv64"
+# fails to build
+arch=""
license="Apache-2.0"
makedepends="cmake linux-headers zlib-dev mbedtls-dev"
subpackages="$pkgname-dev $pkgname-doc"
diff --git a/testing/tdrop/APKBUILD b/testing/tdrop/APKBUILD
index fd11dcd12eb..aa42e07c526 100644
--- a/testing/tdrop/APKBUILD
+++ b/testing/tdrop/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname="tdrop"
-pkgver="0.3.0"
+pkgver=0.5.0
pkgrel=0
pkgdesc="A Glorified WM-Independent Dropdown Creator"
url="https://github.com/noctuid/tdrop"
@@ -20,4 +20,6 @@ package() {
make PREFIX="/usr" DESTDIR="$pkgdir" install
}
-sha512sums="3e1c30e42ce96570fabd43b89fd9f17a23d74c4943ef9ab5d1edb4967ffa6c4c0259df4449ef2a18b396d1057f4a19a413fec817ff708d3e41906695cebb67ca tdrop-0.3.0.tar.gz"
+sha512sums="
+cfccbdb73b00ea8c1376f34debe2b7f550343100fd47e7f45a859ad692f42abbf58e26316a95813691f4bda05cce657490bfcc7b3765585d9afb396580aefce5 tdrop-0.5.0.tar.gz
+"
diff --git a/testing/tealdeer/APKBUILD b/testing/tealdeer/APKBUILD
new file mode 100644
index 00000000000..fc824663c8e
--- /dev/null
+++ b/testing/tealdeer/APKBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=tealdeer
+pkgver=1.6.1
+pkgrel=2
+pkgdesc="Very fast implementation of tldr in Rust"
+url="https://dbrgn.github.io/tealdeer/"
+arch="all"
+license="MIT AND Apache-2.0"
+makedepends="cargo openssl-dev cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/dbrgn/tealdeer/archive/refs/tags/v$pkgver.tar.gz
+ use-system-tls.patch
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/tldr -t "$pkgdir"/usr/bin/
+
+ install -Dm644 completion/bash_tealdeer \
+ "$pkgdir"/usr/share/bash-completion/completions/tldr
+ install -Dm644 completion/fish_tealdeer \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/tldr.fish
+ install -Dm644 completion/zsh_tealdeer \
+ "$pkgdir"/usr/share/zsh/site-functions/_tldr
+}
+
+sha512sums="
+2742e76fce794ffe98839b85b708a5b8452ec8f7b1b737ea522e4e1c37cdadff60ff95a5d353bde0cbdf57d00026ac71f065ea045d1435eb93c7a74d7c732af2 tealdeer-1.6.1.tar.gz
+f7f0200d7d84b6533ba25c1456e9b3cf388f3bae43c4399705caeffae5497d2bf26c4826039a94fe356cbfa052346913ad6e3caee6fb2ca95abd2db682fa0bcd use-system-tls.patch
+"
diff --git a/testing/tealdeer/use-system-tls.patch b/testing/tealdeer/use-system-tls.patch
new file mode 100644
index 00000000000..f419f71f573
--- /dev/null
+++ b/testing/tealdeer/use-system-tls.patch
@@ -0,0 +1,219 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index baf16a6..5881ca9 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -347,6 +347,21 @@ version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
++[[package]]
++name = "foreign-types"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
++dependencies = [
++ "foreign-types-shared",
++]
++
++[[package]]
++name = "foreign-types-shared"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
++
+ [[package]]
+ name = "form_urlencoded"
+ version = "1.1.0"
+@@ -532,6 +547,19 @@ dependencies = [
+ "tokio-rustls",
+ ]
+
++[[package]]
++name = "hyper-tls"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
++dependencies = [
++ "bytes",
++ "hyper",
++ "native-tls",
++ "tokio",
++ "tokio-native-tls",
++]
++
+ [[package]]
+ name = "idna"
+ version = "0.3.0"
+@@ -665,6 +693,24 @@ dependencies = [
+ "windows-sys 0.36.1",
+ ]
+
++[[package]]
++name = "native-tls"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
++dependencies = [
++ "lazy_static",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
++]
++
+ [[package]]
+ name = "ndk-context"
+ version = "0.1.1"
+@@ -702,12 +748,51 @@ version = "1.15.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1"
+
++[[package]]
++name = "openssl"
++version = "0.10.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13"
++dependencies = [
++ "bitflags",
++ "cfg-if",
++ "foreign-types",
++ "libc",
++ "once_cell",
++ "openssl-macros",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-macros"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
+ [[package]]
+ name = "openssl-probe"
+ version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
++[[package]]
++name = "openssl-sys"
++version = "0.9.77"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a"
++dependencies = [
++ "autocfg",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
+ [[package]]
+ name = "os_str_bytes"
+ version = "6.3.0"
+@@ -742,6 +827,12 @@ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
++[[package]]
++name = "pkg-config"
++version = "0.3.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
++
+ [[package]]
+ name = "predicates"
+ version = "2.1.1"
+@@ -882,10 +973,12 @@ dependencies = [
+ "http-body",
+ "hyper",
+ "hyper-rustls",
++ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
++ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+@@ -896,6 +989,7 @@ dependencies = [
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
++ "tokio-native-tls",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+@@ -1209,6 +1303,16 @@ dependencies = [
+ "winapi",
+ ]
+
++[[package]]
++name = "tokio-native-tls"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
++dependencies = [
++ "native-tls",
++ "tokio",
++]
++
+ [[package]]
+ name = "tokio-rustls"
+ version = "0.23.4"
+@@ -1313,6 +1417,12 @@ dependencies = [
+ "percent-encoding",
+ ]
+
++[[package]]
++name = "vcpkg"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
++
+ [[package]]
+ name = "version_check"
+ version = "0.9.4"
+diff --git a/Cargo.toml b/Cargo.toml
+index de29b01..3e2e22a 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -45,7 +45,7 @@ tempfile = "3.1.0"
+ filetime = "0.2.10"
+
+ [features]
+-default = ["native-roots"]
++default = ["reqwest/native-tls"]
+ native-roots = ["reqwest/rustls-tls-native-roots"]
+ webpki-roots = ["reqwest/rustls-tls-webpki-roots"]
+ logging = ["env_logger"]
+diff --git a/src/main.rs b/src/main.rs
+index 8f601e4..b538b9c 100644
+--- a/src/main.rs
++++ b/src/main.rs
+@@ -16,14 +16,6 @@
+ #![allow(clippy::struct_excessive_bools)]
+ #![allow(clippy::too_many_lines)]
+
+-#[cfg(any(
+- all(feature = "native-roots", feature = "webpki-roots"),
+- not(any(feature = "native-roots", feature = "webpki-roots")),
+-))]
+-compile_error!(
+- "exactly one of feature \"native-roots\" and feature \"webpki-roots\" must be enabled"
+-);
+-
+ use std::{env, process};
+
+ use app_dirs::AppInfo;
diff --git a/testing/teapot-tools/APKBUILD b/testing/teapot-tools/APKBUILD
new file mode 100644
index 00000000000..addf57c753c
--- /dev/null
+++ b/testing/teapot-tools/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=teapot-tools
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="Replacement for depot_tools (gclient) and luci-go (cipd)"
+url="https://codeberg.org/selfisekai/teapot_tools"
+# armhf: ci hangs
+# riscv64: ci broken
+# x86: segfaults
+arch="all !armhf !riscv64 !x86"
+license="Apache-2.0"
+depends="git"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ protoc
+ python3-dev
+ "
+source="teapot_tools-$pkgver.tar.gz::https://codeberg.org/selfisekai/teapot_tools/archive/v$pkgver.tar.gz"
+options="net" # cargo crates
+builddir="$srcdir/teapot_tools"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --bin download_from_google_storage
+ cargo auditable build --frozen --release --bin gclient
+}
+
+check() {
+ cargo test --release
+}
+
+package() {
+ install -Dm755 target/release/download_from_google_storage "$pkgdir"/usr/bin/download_from_google_storage
+ install -Dm755 target/release/gclient "$pkgdir"/usr/bin/gclient
+}
+
+sha512sums="
+93e85fb8ac4913b904a31c8907ad382cdf18fcabfa8f8f3ce8eeee28edde4d5d6420ef7b05215eb592638cb1be080ce4f3ea07608b510f644f1a5fc6a73d704c teapot_tools-0.4.2.tar.gz
+"
diff --git a/testing/telegraf/APKBUILD b/testing/telegraf/APKBUILD
deleted file mode 100644
index 0c1d5346f0d..00000000000
--- a/testing/telegraf/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor: Katie Holly <holly@fuslvz.ws>
-# Maintainer: Konstantin Kulikov <k.kulikov2@gmail.com>
-pkgname=telegraf
-pkgver=1.14.3
-pkgrel=0
-_commit=1b35d6c2 # git rev-parse --short HEAD
-_branch=release-${pkgver%.*}
-pkgdesc="A plugin-driven server agent for collecting & reporting metrics, part of the InfluxDB project"
-url="https://www.influxdata.com/time-series-platform/telegraf/"
-arch="x86_64 aarch64"
-license="MIT"
-makedepends="go binutils-gold linux-headers"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc"
-options="net chmod-clean"
-source="telegraf-$pkgver.tar.gz::https://github.com/influxdata/telegraf/archive/v$pkgver.tar.gz
- telegraf.initd
- telegraf.confd
- "
-
-export GOPATH=${GOPATH:-$srcdir/go}
-export GOCACHE=${GOCACHE:-$srcdir/go-build}
-export GOTMPDIR=${GOTMPDIR:-$srcdir}
-
-build() {
- local ldflags="-X main.version=$pkgver -X main.branch=$_branch -X main.commit=$_commit"
- go build -ldflags "$ldflags" ./cmd/telegraf
-}
-
-check() {
- # filecount tests are excluded because they depend on exact file sizes
- # which depend on filesystem used.
- go test -short $(go list ./... | grep -v plugins/inputs/filecount)
-}
-
-package() {
- install -Dm755 "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname"
- install -Dm644 "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname"
- install -Dm755 "$builddir/$pkgname" "$pkgdir/usr/bin/$pkgname"
- install -Dm644 "$builddir/etc/$pkgname.conf" "$pkgdir/etc/$pkgname.conf"
- install -dm755 "$pkgdir/etc/$pkgname.conf.d"
-}
-
-sha512sums="90bfbc8c1df5ad073c13f5cdd615388373a6dbc214eb42bb8a40ce9d6a3df0b307028b05668ebf40e101ec4efeac05a89affaad6022edd0c5114a38c6b3cf29c telegraf-1.14.3.tar.gz
-abe483deb8e12fe140de2c36d17bbfbc97ed7a5de8c3d76162357f7ba6575b8236b7197b92a26ed6d54f95c1ccbfc12ca62d6cc0371bf49d10a1ea5622a51ed1 telegraf.initd
-d1a9aa57f8b5179f2d8396518b9db757fe1c40337b515c1f750cf577683ff15f3174bc757afa70d880a1fef809c873e6aa0da1b903a5a97934c14965712d47a4 telegraf.confd"
diff --git a/testing/telegraf/telegraf.confd b/testing/telegraf/telegraf.confd
deleted file mode 100644
index bf6a22907db..00000000000
--- a/testing/telegraf/telegraf.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-TELEGRAF_OPTS="-config /etc/telegraf.conf -config-directory /etc/telegraf.conf.d"
-
-# Uncomment to enable logging to syslog.
-#error_logger="logger -t $RC_SVCNAME"
diff --git a/testing/telegraf/telegraf.initd b/testing/telegraf/telegraf.initd
deleted file mode 100644
index 9855687f039..00000000000
--- a/testing/telegraf/telegraf.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/bin/telegraf"
-command_args="$TELEGRAF_OPTS"
-command_background=yes
-command_user=telegraf:telegraf
-pidfile="/run/$RC_SVCNAME.pid"
-extra_started_commands="reload"
-
-depend() {
- need net
- after firewall
-}
-
-reload() {
- ebegin "Reloading ${RC_SVCNAME}"
- start-stop-daemon --signal HUP --pidfile "${pidfile}"
- eend $?
-}
diff --git a/testing/telegraf/telegraf.pre-install b/testing/telegraf/telegraf.pre-install
deleted file mode 100644
index c9c67a043c2..00000000000
--- a/testing/telegraf/telegraf.pre-install
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-name=telegraf
-
-addgroup -S "$name" 2>/dev/null
-adduser -S -D -H -h /var/empty -s /sbin/nologin -G $name -g $name $name 2>/dev/null
-
-exit 0
diff --git a/testing/telegram-tdlib/APKBUILD b/testing/telegram-tdlib/APKBUILD
index 0a14876def4..e185a8ca5cf 100644
--- a/testing/telegram-tdlib/APKBUILD
+++ b/testing/telegram-tdlib/APKBUILD
@@ -1,35 +1,40 @@
+# Contributor: j.r <j.r@jugendhacker.de>
# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=telegram-tdlib
-pkgver=1.6.0
+pkgver=1.8.9
pkgrel=1
+# they didn't tag the release
+_gitrev=a7952f38363084df0e78fe9b7bd833262ec67521
pkgdesc="Cross-platform library for building Telegram clients"
url="https://core.telegram.org/tdlib"
-arch="all !s390x !mips !mips64" # fails to build on big-endian
+arch="all !s390x" # fails to build on big-endian
license="BSL-1.0"
-options="!check" # No test suite from upstream
-makedepends="cmake openssl-dev zlib-dev gperf linux-headers"
+makedepends="cmake openssl-dev>3 zlib-dev gperf linux-headers samurai"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tdlib/td/archive/v$pkgver.tar.gz"
-builddir="$srcdir/td-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tdlib/td/archive/$_gitrev.tar.gz"
+builddir="$srcdir/td-$_gitrev"
+options="!check" # fail for some reason
build() {
- mkdir build
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX:PATH="$pkgdir/usr"
+ cmake --build build
+}
- make -C build
+check() {
+ ctest --test-dir build --output-on-failure
}
package() {
- make -C build install
+ DESTDIR="$pkgdir" cmake --install build
- install -m644 -D -t "$pkgdir/usr/share/licenses/$pkgname" \
- LICENSE_1_0.txt
install -m644 -D -t "$pkgdir/usr/share/doc/$pkgname" \
README.md
}
-sha512sums="aee8b3df17e8571ca587cc72092305fd0992fefc4d9f60b2c530c9e6726c6b6371f0e5819ca4d5a4ffbbef1345f2a18156aae979b80e124ffe183423f8f515e0 telegram-tdlib-1.6.0.tar.gz"
+sha512sums="
+253140c3f93b2dd437b7a22643b1ec1a0e0f8ccd4d765dea0afae2373dbb58ee593e1ebdd4d9adfd5062f0bc347190bc2492d47e60cf44065fdd9c6b0993ebd7 telegram-tdlib-1.8.9.tar.gz
+"
diff --git a/testing/templ/APKBUILD b/testing/templ/APKBUILD
new file mode 100644
index 00000000000..b8b8686dbc4
--- /dev/null
+++ b/testing/templ/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=templ
+pkgver=0.2.598
+pkgrel=2
+pkgdesc="Language for writing HTML user interface in Go"
+url="https://templ.guide/"
+arch="all"
+license="MIT"
+makedepends="go"
+checkdepends="gopls"
+source="$pkgname-$pkgver.tar.gz::https://github.com/a-h/templ/archive/refs/tags/v$pkgver.tar.gz"
+options="net" # download Go modules
+
+# /cmd/templ/lspcmd: hangs on s390x
+# /cmd/templ/generatecmd/testwatch: panics on 32-bit platforms (unaligned 64-bit atomic operation)
+case "$CARCH" in
+ s390x|x86|armhf|armv7) options="$options !check";;
+esac
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v ./cmd/templ
+}
+
+check() {
+ # -trimpath is required for tests inside /cmd/templ/generatecmd/testwatch to pass
+ # The tests create templates inside /tmp and try to watch those directories
+ GOFLAGS="${GOFLAGS/-trimpath/}" go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+7c7988e27498e391701c7df29663c3a44c2a50f97ea668a6fd84e54ee30dd47f3c52fe904f27b0dd184718f5518bee284e4899da48e6a00109691eaa65da6092 templ-0.2.598.tar.gz
+"
diff --git a/testing/tengine/APKBUILD b/testing/tengine/APKBUILD
deleted file mode 100644
index 6b4619ff5c2..00000000000
--- a/testing/tengine/APKBUILD
+++ /dev/null
@@ -1,82 +0,0 @@
-# Maintainer: Cameron Banta <cbanta@gmail.com>
-# Contributor: Jeff Bilyk <jbilyk@gmail.com>
-# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
-# Contributor: Dennis Przytarski <dennis@przytarski.com>
-pkgname=tengine
-pkgver=2.3.2
-pkgrel=0
-pkgdesc="Lightweight HTTP and reverse proxy server. It is based on the Nginx HTTP server"
-url="https://tengine.taobao.org/"
-arch="all !aarch64"
-license="BSD-2-Clause"
-pkgusers="tengine"
-pkggroups="tengine www-data"
-options="!check" # Makefile test cmd does not work
-replaces="nginx"
-makedepends="linux-headers gd-dev geoip-dev libxml2-dev libxslt-dev
- openssl-dev paxmark pcre-dev perl-dev pkgconf zlib-dev"
-install="$pkgname.pre-install $pkgname.pre-upgrade"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="http://tengine.taobao.org/download/tengine-$pkgver.tar.gz
- tengine.initd
- tengine.logrotate
- "
-
-build() {
- ./configure \
- --prefix=/var/lib/$pkgname \
- --sbin-path=/usr/sbin/$pkgname \
- --conf-path=/etc/$pkgname/$pkgname.conf \
- --pid-path=/run/$pkgname/$pkgname.pid \
- --lock-path=/run/$pkgname/$pkgname.lock \
- --http-client-body-temp-path=/var/tmp/$pkgname/client_body \
- --http-proxy-temp-path=/var/tmp/$pkgname/proxy \
- --http-fastcgi-temp-path=/var/tmp/$pkgname/fastcgi \
- --http-uwsgi-temp-path=/var/tmp/$pkgname/uwsgi \
- --http-scgi-temp-path=/var/tmp/$pkgname/scgi \
- --with-perl_modules_path=/usr/lib/perl5/vendor_perl \
- --user=$pkgusers \
- --group=${pkggroups%% *} \
- --with-file-aio \
- --with-http_addition_module \
- --with-http_auth_request_module \
- --with-http_dav_module \
- --with-http_degradation_module \
- --with-http_flv_module \
- --with-http_geoip_module \
- --with-http_gunzip_module \
- --with-http_gzip_static_module \
- --with-http_image_filter_module \
- --with-http_mp4_module \
- --with-http_random_index_module \
- --with-http_realip_module \
- --with-http_secure_link_module \
- --with-http_slice_module \
- --with-http_ssl_module \
- --with-http_stub_status_module \
- --with-http_sub_module \
- --with-http_perl_module \
- --with-http_v2_module \
- --with-http_xslt_module \
- --with-ipv6 \
- --with-mail \
- --with-mail_ssl_module \
- --with-pcre-jit \
- --with-threads
-
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -m644 -D "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
-
- install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
- install -Dm644 README.markdown "$pkgdir"/usr/share/doc/$pkgname/README
-}
-
-sha512sums="237d78b0689a2c75a3699a23c81046167e06aa744ee86dc5646c603c7a43d92dd9c517f759cac1b335ff0fdcc5fc866f940f378520723ba04ca1d5fea72f2a6f tengine-2.3.2.tar.gz
-3075188f052bf67b4079e78a8b0c56ede7cd8cee890031bf970e45fe8ebdc5739ef092de691108d78b8a111a07cfc98e7ff30234f6a8583db3c647e5fea7d109 tengine.initd
-b0ad2fffe47210805ba09667dc40b09d30c7d1ff19fcb0fd4aa548355dcb992a2f9a7a9d3b0992a81e20eecbe37a91c3646b56324daf356c1d811e526fe663f3 tengine.logrotate"
diff --git a/testing/tengine/tengine.initd b/testing/tengine/tengine.initd
deleted file mode 100644
index 6386d50c601..00000000000
--- a/testing/tengine/tengine.initd
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/sbin/openrc-run
-
-extra_started_commands="upgrade reload"
-extra_commands="configtest"
-
-depend() {
- need net
- use dns logger netmount
-}
-
-start() {
- configtest || return 1
- ebegin "Starting tengine"
- start-stop-daemon --start --pidfile /var/run/tengine.pid \
- --exec /usr/sbin/tengine -- -c /etc/tengine/tengine.conf
- eend $? "Failed to start tengine"
-}
-
-stop() {
- configtest || return 1
- ebegin "Stopping tengine"
- start-stop-daemon --stop --pidfile /var/run/tengine.pid
- eend $? "Failed to stop tengine"
- rm -f /var/run/tengine.pid
-}
-
-reload() {
- configtest || return 1
- ebegin "Refreshing tengine' configuration"
- kill -HUP `cat /var/run/tengine.pid` &>/dev/null
- eend $? "Failed to reload tengine"
-}
-
-upgrade() {
- configtest || return 1
- ebegin "Upgrading tengine"
-
- einfo "Sending USR2 to old binary"
- kill -USR2 `cat /var/run/tengine.pid` &>/dev/null
-
- einfo "Sleeping 3 seconds before pid-files checking"
- sleep 3
-
- if [ ! -f /var/run/tengine.pid.oldbin ]; then
- eerror "File with old pid not found"
- return 1
- fi
-
- if [ ! -f /var/run/tengine.pid ]; then
- eerror "New binary failed to start"
- return 1
- fi
-
- einfo "Sleeping 3 seconds before WINCH"
- sleep 3 ; kill -WINCH `cat /var/run/tengine.pid.oldbin`
-
- einfo "Sending QUIT to old binary"
- kill -QUIT `cat /var/run/tengine.pid.oldbin`
-
- einfo "Upgrade completed"
-
- eend $? "Upgrade failed"
-}
-
-configtest() {
- ebegin "Checking tengine' configuration"
- mkdir -p /tmp/tengine
- /usr/sbin/tengine -c /etc/tengine/tengine.conf -t
- eend $? "failed, please correct errors above"
-}
diff --git a/testing/tengine/tengine.logrotate b/testing/tengine/tengine.logrotate
deleted file mode 100644
index e4d33553a59..00000000000
--- a/testing/tengine/tengine.logrotate
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx.logrotate,v 1.1 2010/01/03 20:29:40 djc Exp $
-
-/var/log/tengine/*.log {
- missingok
- sharedscripts
- postrotate
- test -r /var/run/tengine.pid && kill -USR1 `cat /var/run/tengine.pid`
- endscript
-}
-
diff --git a/testing/tengine/tengine.pre-install b/testing/tengine/tengine.pre-install
deleted file mode 100644
index bb59be1f4f2..00000000000
--- a/testing/tengine/tengine.pre-install
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-addgroup -S -g 82 www-data 2>/dev/null
-addgroup -S tengine 2>/dev/null
-adduser -S -D -H -h /var/www/localhost/htdocs -s /sbin/nologin \
- -G tengine -g tengine tengine 2>/dev/null
-addgroup tengine www-data 2>/dev/null
-
-exit 0
diff --git a/testing/tengine/tengine.pre-upgrade b/testing/tengine/tengine.pre-upgrade
deleted file mode 120000
index 9aaa3c27f2d..00000000000
--- a/testing/tengine/tengine.pre-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-tengine.pre-install \ No newline at end of file
diff --git a/testing/tere/APKBUILD b/testing/tere/APKBUILD
new file mode 100644
index 00000000000..bca66629d25
--- /dev/null
+++ b/testing/tere/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=tere
+pkgver=1.5.1
+pkgrel=0
+pkgdesc="Terminal file explorer"
+url="https://github.com/mgunyho/tere"
+arch="all !s390x" # FTBFS
+license="EUPL-1.2"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="
+ $pkgname-doc
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/mgunyho/tere/archive/v$pkgver.tar.gz
+ deps.patch
+ "
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ # https://github.com/mgunyho/tere/issues/90
+ # https://github.com/mgunyho/tere/issues/93
+ cargo test --frozen -- \
+ --skip "test_case_sensitive_mode_change" \
+ --skip "panic_guard" \
+ --skip "first_run_prompt_accept" \
+ --skip "output_on_exit_without_cd" \
+ --skip "first_run_prompt_cancel" \
+ --skip "basic_run"
+}
+
+package() {
+ install -Dm 755 target/release/tere -t "$pkgdir"/usr/bin
+ install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/$pkgname
+ install -Dm 644 ./demo/* -t "$pkgdir"/usr/share/dox/$pkgname/demo
+ install -Dm 644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+e9ede9284ba2b8ed3749dbbaaa96a3d3963bca6cf4ba7ad03e3df42bb2130a0a8348367cbaa1798ec958145fd54fb3c7aa69354ab1e4c0fbe037e3b1717e717f tere-1.5.1.tar.gz
+97acb6af2944baaac15c9b2f67944e0f2b571fa912009467824a1f9701198e7072e0edaf2411be8c05baa760ff83363179de2e0620a50c51fa8d3e7a1ca56549 deps.patch
+"
diff --git a/testing/tere/deps.patch b/testing/tere/deps.patch
new file mode 100644
index 00000000000..33ca49d9a8a
--- /dev/null
+++ b/testing/tere/deps.patch
@@ -0,0 +1,415 @@
+existing deps are ancient
+diff --git a/Cargo.lock b/Cargo.lock
+index f6d370e..6e4f303 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2,31 +2,20 @@
+ # It is not intended for manual editing.
+ version = 3
+
+-[[package]]
+-name = "ahash"
+-version = "0.7.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+-dependencies = [
+- "getrandom",
+- "once_cell",
+- "version_check",
+-]
+-
+ [[package]]
+ name = "aho-corasick"
+-version = "1.0.2"
++version = "1.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
++checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
+ dependencies = [
+ "memchr",
+ ]
+
+ [[package]]
+ name = "anstyle"
+-version = "1.0.1"
++version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
++checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
+
+ [[package]]
+ name = "autocfg"
+@@ -42,15 +31,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+ [[package]]
+ name = "bitflags"
+-version = "2.3.3"
++version = "2.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
++checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+ [[package]]
+ name = "cc"
+-version = "1.0.79"
++version = "1.0.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
++checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
++dependencies = [
++ "libc",
++]
+
+ [[package]]
+ name = "cfg-if"
+@@ -60,9 +52,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "clap"
+-version = "4.3.19"
++version = "4.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5fd304a20bff958a57f04c4e96a2e7594cc4490a0e809cbd48bb6437edaa452d"
++checksum = "1d5f1946157a96594eb2d2c10eb7ad9a2b27518cb3000209dec700c35df9197d"
+ dependencies = [
+ "clap_builder",
+ "clap_derive",
+@@ -71,9 +63,9 @@ dependencies = [
+
+ [[package]]
+ name = "clap_builder"
+-version = "4.3.19"
++version = "4.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "01c6a3f08f1fe5662a35cfe393aec09c4df95f60ee93b7556505260f75eee9e1"
++checksum = "78116e32a042dd73c2901f0dc30790d20ff3447f3e3472fad359e8c3d282bcd6"
+ dependencies = [
+ "anstyle",
+ "clap_lex",
+@@ -83,21 +75,21 @@ dependencies = [
+
+ [[package]]
+ name = "clap_derive"
+-version = "4.3.12"
++version = "4.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
++checksum = "c9fd1a5729c4548118d7d70ff234a44868d00489a4b6597b0b020918a0e91a1a"
+ dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.27",
++ "syn 2.0.29",
+ ]
+
+ [[package]]
+ name = "clap_lex"
+-version = "0.5.0"
++version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
++checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+
+ [[package]]
+ name = "comma"
+@@ -175,9 +167,9 @@ dependencies = [
+
+ [[package]]
+ name = "errno"
+-version = "0.3.1"
++version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
++checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
+ dependencies = [
+ "errno-dragonfly",
+ "libc",
+@@ -211,15 +203,6 @@ dependencies = [
+ "wasi",
+ ]
+
+-[[package]]
+-name = "hashbrown"
+-version = "0.12.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+-dependencies = [
+- "ahash",
+-]
+-
+ [[package]]
+ name = "heck"
+ version = "0.4.1"
+@@ -263,9 +246,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+ [[package]]
+ name = "linux-raw-sys"
+-version = "0.4.3"
++version = "0.4.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
++checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+
+ [[package]]
+ name = "lock_api"
+@@ -279,9 +262,9 @@ dependencies = [
+
+ [[package]]
+ name = "log"
+-version = "0.4.19"
++version = "0.4.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
++checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+ [[package]]
+ name = "memchr"
+@@ -370,9 +353,9 @@ dependencies = [
+
+ [[package]]
+ name = "quote"
+-version = "1.0.32"
++version = "1.0.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
++checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+ dependencies = [
+ "proc-macro2",
+ ]
+@@ -408,9 +391,9 @@ dependencies = [
+
+ [[package]]
+ name = "regex"
+-version = "1.9.1"
++version = "1.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
++checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+@@ -420,9 +403,9 @@ dependencies = [
+
+ [[package]]
+ name = "regex-automata"
+-version = "0.3.3"
++version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
++checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+@@ -464,14 +447,14 @@ dependencies = [
+
+ [[package]]
+ name = "rustix"
+-version = "0.38.4"
++version = "0.38.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
++checksum = "9bfe0f2582b4931a45d1fa608f8a8722e8b3c7ac54dd6d5f3b3212791fedef49"
+ dependencies = [
+- "bitflags 2.3.3",
++ "bitflags 2.4.0",
+ "errno",
+ "libc",
+- "linux-raw-sys 0.4.3",
++ "linux-raw-sys 0.4.5",
+ "windows-sys",
+ ]
+
+@@ -495,29 +478,29 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+ [[package]]
+ name = "serde"
+-version = "1.0.175"
++version = "1.0.188"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b"
++checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+ dependencies = [
+ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.175"
++version = "1.0.188"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4"
++checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.27",
++ "syn 2.0.29",
+ ]
+
+ [[package]]
+ name = "serde_json"
+-version = "1.0.103"
++version = "1.0.105"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
++checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
+ dependencies = [
+ "itoa",
+ "ryu",
+@@ -607,9 +590,9 @@ dependencies = [
+
+ [[package]]
+ name = "syn"
+-version = "2.0.27"
++version = "2.0.29"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0"
++checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -618,14 +601,14 @@ dependencies = [
+
+ [[package]]
+ name = "tempfile"
+-version = "3.7.0"
++version = "3.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998"
++checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+ dependencies = [
+ "cfg-if",
+ "fastrand",
+ "redox_syscall 0.3.5",
+- "rustix 0.38.4",
++ "rustix 0.38.9",
+ "windows-sys",
+ ]
+
+@@ -671,22 +654,22 @@ dependencies = [
+
+ [[package]]
+ name = "thiserror"
+-version = "1.0.44"
++version = "1.0.47"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
++checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+ dependencies = [
+ "thiserror-impl",
+ ]
+
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.44"
++version = "1.0.47"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
++checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.27",
++ "syn 2.0.29",
+ ]
+
+ [[package]]
+@@ -697,13 +680,9 @@ checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+
+ [[package]]
+ name = "unicode-linebreak"
+-version = "0.1.4"
++version = "0.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
+-dependencies = [
+- "hashbrown",
+- "regex",
+-]
++checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
+ [[package]]
+ name = "unicode-segmentation"
+@@ -717,12 +696,6 @@ version = "0.1.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+-[[package]]
+-name = "version_check"
+-version = "0.9.4"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+-
+ [[package]]
+ name = "wasi"
+ version = "0.11.0+wasi-snapshot-preview1"
+@@ -762,9 +735,9 @@ dependencies = [
+
+ [[package]]
+ name = "windows-targets"
+-version = "0.48.1"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
++checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+ dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+@@ -777,42 +750,42 @@ dependencies = [
+
+ [[package]]
+ name = "windows_aarch64_gnullvm"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
++checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+ [[package]]
+ name = "windows_aarch64_msvc"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
++checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+ [[package]]
+ name = "windows_i686_gnu"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
++checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+ [[package]]
+ name = "windows_i686_msvc"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
++checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+ [[package]]
+ name = "windows_x86_64_gnu"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
++checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+ [[package]]
+ name = "windows_x86_64_gnullvm"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
++checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+ [[package]]
+ name = "windows_x86_64_msvc"
+-version = "0.48.0"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
++checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
diff --git a/testing/termbox/APKBUILD b/testing/termbox/APKBUILD
index 737bcc650d3..39d874c66ba 100644
--- a/testing/termbox/APKBUILD
+++ b/testing/termbox/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Adam Saponara <as@php.net>
pkgname=termbox
pkgver=1.1.2
-pkgrel=0
+pkgrel=1
pkgdesc="Legacy-free alternative to ncurses"
url="https://github.com/nsf/termbox"
arch="all"
@@ -20,16 +20,14 @@ prepare() {
}
build() {
- meson \
- --prefix=/usr \
- --buildtype=plain \
+ abuild-meson \
--default-library=both \
. output
- ninja -C output
+ meson compile -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
sha512sums="fcb240e9aa480a0cc738f0d01e60c39ef0f333f434c0d1f2d276d3d75edd351e694fd800e0b8dbadd12be686a4261551d10d475933197ef539cdb4dd70c153cb termbox-1.1.2.tar.gz
2c87d27d47d0eb3348c945de0495512d77c77c2208d1b29a617313a1cbab770f869b2310342916e654db9330ad0b1168d820d49ecd1ca9bb3bd67e88f3b16541 meson.build"
diff --git a/testing/termcolor/APKBUILD b/testing/termcolor/APKBUILD
new file mode 100644
index 00000000000..975e027b6e7
--- /dev/null
+++ b/testing/termcolor/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=termcolor
+pkgver=2.1.0
+pkgrel=0
+pkgdesc="Header-only C++ library for printing colored messages to the terminal"
+url="https://github.com/ikalnytskyi/termcolor"
+arch="noarch"
+license="BSD-3-Clause"
+makedepends="cmake ninja"
+subpackages="$pkgname-dev"
+source="https://github.com/ikalnytskyi/termcolor/archive/v$pkgver/termcolor-$pkgver.tar.gz"
+options="!check" # no automated tests provided
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+668853a93e1208a08a4ea9ac8db2d9c615cefd0325c35402b767e0b1bf373589507b8eb7685babd5801c1e4f2533db6f4eabfedde365737a4c7c069f00f536d8 termcolor-2.1.0.tar.gz
+"
diff --git a/testing/terminalpp/APKBUILD b/testing/terminalpp/APKBUILD
new file mode 100644
index 00000000000..d9a0809791a
--- /dev/null
+++ b/testing/terminalpp/APKBUILD
@@ -0,0 +1,84 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=terminalpp
+pkgver=0.8.4
+pkgrel=0
+pkgdesc="Minimalist, fast, cross-platform terminal emulator"
+url="https://terminalpp.com/"
+# armhf, armv7, x86: fails to build
+arch="all !armhf !armv7 !x86"
+license="MIT"
+makedepends="
+ cmake
+ freetype-dev
+ libx11-dev
+ libxcursor-dev
+ libxft-dev
+ mesa-dev
+ samurai
+ "
+subpackages="
+ $pkgname-ropen
+ tpp-bypass
+ "
+source="https://github.com/terminalpp/terminalpp/archive/v$pkgver/terminalpp-$pkgver.tar.gz"
+builddir="$srcdir/terminalpp-$pkgver"
+
+build() {
+ local cmake_opts="
+ -G Ninja
+ -DCMAKE_INSTALL_PREFIX=/usr
+ -DSTAMP_ARGS=--no-override
+ "
+ [ "$CBUILD" = "$CHOST" ] || cmake_opts="
+ $cmake_opts
+ -DCMAKE_SYSTEM_NAME=Linux
+ -DCMAKE_HOST_SYSTEM_NAME=Linux
+ "
+
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DINSTALL=terminalpp \
+ $cmake_opts
+ cmake --build build --target terminalpp
+ cmake --build build --target tests
+
+ cmake -B build-ropen \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DINSTALL=ropen \
+ $cmake_opts
+ cmake --build build-ropen --target ropen
+
+ cmake -B build-bypass \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DINSTALL=tpp-bypass \
+ $cmake_opts
+ cmake --build build-bypass --target tpp-bypass
+}
+
+check() {
+ cd build
+ ./tests/tests
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+ropen() {
+ pkgdesc="Utility to open remote files in Terminal++"
+
+ cd "$builddir"
+ DESTDIR="$subpkgdir" cmake --install build-ropen
+}
+
+bypass() {
+ pkgdesc="Utility to create a linux pseudoconsole inside WSL to bypass ConPTY"
+
+ cd "$builddir"
+ DESTDIR="$subpkgdir" cmake --install build-bypass
+}
+
+sha512sums="
+498755b11e7e14d9aec4450e4f5a9446cb591fd73672ad306d2b292814b3bdbb10b0e6d6248f849b30f531a92f419881c7e59dcfa85117155c0e45aabb8943ad terminalpp-0.8.4.tar.gz
+"
diff --git a/testing/termusic-mpv/APKBUILD b/testing/termusic-mpv/APKBUILD
new file mode 100644
index 00000000000..bd8d13607eb
--- /dev/null
+++ b/testing/termusic-mpv/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Coco Liliace <coco@liliace.dev>
+# Maintainer: Coco Liliace <coco@liliace.dev>
+#
+# optional dependencies:
+# - yt-dlp and ffmpeg: for downloading from youtube
+pkgname=termusic-mpv
+pkgver=0.7.11
+pkgrel=0
+pkgdesc="Music Player TUI written in Rust"
+url="https://github.com/tramhao/termusic"
+arch="all !s390x !riscv64"
+license="MIT AND GPL-3.0-or-later"
+depends="protoc mpv-dev"
+makedepends="cargo cargo-auditable rustfmt rust-clippy dbus-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tramhao/termusic/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/termusic-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked --target="$CTARGET"
+}
+
+check() {
+ make fmt
+}
+
+build() {
+ cargo auditable build --no-default-features --features mpv --release --frozen --all
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin ./target/release/termusic ./target/release/termusic-server
+}
+sha512sums="
+67f0b06ff37dbc3d16c77c6bdd0163dc547fbea1a25b3a7574b4540a4ad3a2059dc547d49411803fd9aa162d4f432ff5b99bef1e0f5c362342943fa76985f443 termusic-mpv-0.7.11.tar.gz
+"
diff --git a/testing/terra/APKBUILD b/testing/terra/APKBUILD
new file mode 100644
index 00000000000..d0c5ea2503d
--- /dev/null
+++ b/testing/terra/APKBUILD
@@ -0,0 +1,80 @@
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=terra
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="Low-level system programming language embedded in and meta-programmed by Lua."
+url="https://terralang.org/"
+# does not support new llvm versions, looks dead upstream
+#arch="x86_64"
+license="MIT"
+makedepends="
+ clang-dev
+ clang-static
+ cmake
+ libedit-dev
+ libffi-dev
+ libxml2-dev
+ lld
+ llvm-dev
+ llvm-static
+ luajit-dev
+ ncurses-dev
+ openmp-dev
+ samurai
+ zlib-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/terralang/terra/archive/refs/tags/release-$pkgver.tar.gz
+ no-execinfo.patch
+ system-lua.patch
+ version.patch
+ "
+subpackages="$pkgname-dev"
+builddir="$srcdir/$pkgname-release-$pkgver"
+
+prepare() {
+ default_prepare
+
+ # checks if puts() returns 10
+ rm tests/string.t
+ # includes immintrin.h without include path
+ rm tests/expvec.t
+ # ?
+ rm tests/option_e.t
+ rm tests/dynlib.t
+}
+
+build() {
+ CC=clang \
+ CXX=clang++ \
+ CFLAGS="$CFLAGS -flto=thin" \
+ CXXFLAGS="$CXXFLAGS -flto=thin" \
+ LDFLAGS="$LDFLAGS -fuse-ld=lld" \
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DTERRA_STATIC_LINK_LUAJIT=OFF \
+ -DTERRA_VERSION="$pkgver"
+ cmake --build build
+}
+
+check() {
+ cd tests
+ INCLUDE_PATH="$(pkg-config --variable=includedir luajit)" \
+ ../build/bin/terra run
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ rm -rf "$pkgdir"/usr/share/terra/tests
+}
+
+sha512sums="
+ba856b41533a5db4a68f8993fdc61164104d55e1cab46417176840b1c40867fb31889d1fad8996644debee2ca69f78d7b2a99a36004b236c958ecdb9d8beff98 terra-1.0.6.tar.gz
+9bba656697bb25249a5657d87481c242cf68a3af10ef8d076aace31c9dd28c1bda77baecbc1d281aca627f2d47a75d379084cefc6c7d6bdcf74e391a0a24d54b no-execinfo.patch
+c5407edc1cdcd03d1ffe1a0db60f10f86e2223edd4d90e831285cc5b36dc687806ce6532196563a24c326868f446a32d976208a6398668e85d82d3fc57d77a2c system-lua.patch
+d2beea5e219951c1a2d157e67e1ba238bcd07f526a955fc84779477ad9b36b63b72d9ae402c6ce196f7ea4fccc503478a4ee9c77aa4bc22804434620362ab8a2 version.patch
+"
diff --git a/testing/terra/no-execinfo.patch b/testing/terra/no-execinfo.patch
new file mode 100644
index 00000000000..7870f5061cc
--- /dev/null
+++ b/testing/terra/no-execinfo.patch
@@ -0,0 +1,36 @@
+diff --git a/src/tdebug.cpp b/src/tdebug.cpp
+index 0d93be0..cda06a6 100644
+--- a/src/tdebug.cpp
++++ b/src/tdebug.cpp
+@@ -6,7 +6,6 @@
+ #if !defined(__arm__) && !defined(__aarch64__) && !defined(__PPC__)
+
+ #ifndef _WIN32
+-#include <execinfo.h>
+ #ifndef _XOPEN_SOURCE
+ #define _XOPEN_SOURCE
+ #endif
+@@ -188,7 +187,6 @@ static void printstacktrace(void *uap, void *data) {
+ int N = terra_backtrace(frames, maxN, rip, rbp);
+
+ #ifndef _WIN32
+- char **symbols = backtrace_symbols(frames, N);
+ #else
+ HANDLE process = GetCurrentProcess();
+ SymInitialize(process, NULL, true);
+@@ -202,7 +200,6 @@ static void printstacktrace(void *uap, void *data) {
+ uintptr_t ip = (uintptr_t)frames[i];
+ if (!printfunctioninfo(C, ip, isNextInst, i)) {
+ #ifndef _WIN32
+- printf("%s\n", symbols[i]);
+ #else
+ char buf[256 + sizeof(SYMBOL_INFO)];
+ SYMBOL_INFO *symbol = (SYMBOL_INFO *)buf;
+@@ -217,7 +214,6 @@ static void printstacktrace(void *uap, void *data) {
+ }
+ }
+ #ifndef _WIN32
+- free(symbols);
+ #endif
+ }
+
diff --git a/testing/terra/system-lua.patch b/testing/terra/system-lua.patch
new file mode 100644
index 00000000000..d63d78245df
--- /dev/null
+++ b/testing/terra/system-lua.patch
@@ -0,0 +1,35 @@
+diff --git a/cmake/Modules/GetLuaJIT.cmake b/cmake/Modules/GetLuaJIT.cmake
+index 0ab1747..4cf7644 100644
+--- a/cmake/Modules/GetLuaJIT.cmake
++++ b/cmake/Modules/GetLuaJIT.cmake
+@@ -7,6 +7,12 @@ else()
+ set(DEFAULT_TERRA_LUA "luajit")
+ endif()
+
++find_package(PkgConfig)
++pkg_check_modules(LUAJIT REQUIRED luajit IMPORTED_TARGET GLOBAL)
++add_library(LuaJIT ALIAS PkgConfig::LUAJIT)
++set(LUAJIT_EXECUTABLE "/usr/bin/luajit")
++return()
++
+ set(TERRA_LUA "${DEFAULT_TERRA_LUA}" CACHE STRING "Build Terra against the specified Lua implementation")
+
+ if(TERRA_LUA STREQUAL "luajit")
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -112,6 +112,7 @@
+ ${PROJECT_BINARY_DIR}/include/terra
+ ${LLVM_INCLUDE_DIRS}
+ ${CLANG_INCLUDE_DIRS}
++ ${LUAJIT_INCLUDE_DIRS}
+ )
+
+ if(WIN32)
+@@ -291,6 +292,7 @@
+ PRIVATE
+ ${PROJECT_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}/include/terra
++ ${LUAJIT_INCLUDE_DIRS}
+ )
+
+ if(WIN32)
diff --git a/testing/terra/version.patch b/testing/terra/version.patch
new file mode 100644
index 00000000000..0f68212234f
--- /dev/null
+++ b/testing/terra/version.patch
@@ -0,0 +1,18 @@
+--- a/cmake/Modules/VersionNumber.cmake
++++ b/cmake/Modules/VersionNumber.cmake
+@@ -1,14 +1,4 @@
+-if(GIT_FOUND)
+- execute_process(
+- COMMAND "${GIT_EXECUTABLE}" describe --tags
+- WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
+- RESULT_VARIABLE HAS_TERRA_VERSION
+- OUTPUT_VARIABLE TERRA_VERSION
+- ERROR_QUIET
+- )
+-endif()
+-
+-if(HAS_TERRA_VERSION EQUAL 0)
++if(1)
+ string(STRIP "${TERRA_VERSION}" TERRA_VERSION)
+ string(REGEX REPLACE "^(release-)" ""
+ TERRA_VERSION "${TERRA_VERSION}"
diff --git a/testing/tesseract-git/APKBUILD b/testing/tesseract-git/APKBUILD
deleted file mode 100644
index fb482188e70..00000000000
--- a/testing/tesseract-git/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=tesseract-git
-_sha=695f862bd711a147b1f27c7ea51b7592a934c77b
-pkgver=20200221
-pkgrel=2
-pkgdesc="Tesseract Open Source OCR Engine"
-url="https://github.com/tesseract-ocr/tesseract"
-arch="all"
-license="Apache-2.0"
-makedepends="autoconf autoconf-archive automake cairo-dev icu-dev leptonica-dev libtool pango-dev tiff-dev"
-replaces="tesseract-ocr"
-subpackages="$pkgname-dev $pkgname-training"
-source="tesseract-$pkgver.tar.gz::https://github.com/tesseract-ocr/tesseract/archive/$_sha.tar.gz
- include-time-h.patch
- "
-
-builddir="$srcdir/tesseract-$_sha"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static
- make
- make training
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-training() {
- cd "$builddir"
- make DESTDIR="$subpkgdir" training-install
-}
-
-sha512sums="a8d2396d56acf58d60ed3b3d1aeb77b52870bb1b83502070af79a5138f39a0aec27841a4fca4bdff114eb46d80630be67b2dfc8fc194f6b87c129d2357aea3c7 tesseract-20200221.tar.gz
-b0fe8ed2f3d00f61749fffc7316392dbc063cd03084cba26ac84b7a3a374bebc75ad07ccb588d3f5ac83acc80d33bb9c2de05703ce50df86f48294f4a5be0424 include-time-h.patch"
diff --git a/testing/tesseract-git/include-time-h.patch b/testing/tesseract-git/include-time-h.patch
deleted file mode 100644
index d639d8e9b05..00000000000
--- a/testing/tesseract-git/include-time-h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/include/tesseract/ocrclass.h
-+++ b/include/tesseract/ocrclass.h
-@@ -28,6 +28,7 @@
-
- #include <chrono>
- #include <ctime>
-+#include <sys/time.h>
-
- /**********************************************************************
- * EANYCODE_CHAR
diff --git a/testing/tetragon-client/APKBUILD b/testing/tetragon-client/APKBUILD
new file mode 100644
index 00000000000..0e7900fd0ca
--- /dev/null
+++ b/testing/tetragon-client/APKBUILD
@@ -0,0 +1,72 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=tetragon-client
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="CLI client for eBPF-based Security Observability and Runtime Enforcement"
+url="https://github.com/cilium/tetragon"
+arch="x86_64 aarch64" # fails to build on other platforms
+license="Apache-2.0"
+makedepends="go"
+checkdepends="linux-headers"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/cilium/tetragon/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/tetragon-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v \
+ -ldflags "-X github.com/cilium/tetragon/pkg/version.Version=v$pkgver" \
+ ./cmd/tetra
+
+ for shell in bash fish zsh; do
+ ./tetra completion $shell > tetra.$shell
+ done
+}
+
+check() {
+ # Some tests access example files inside the repo, so no -trimpath.
+ # /tests/e2e: only run unittest
+ # /bpf/tests: requires root privilege to run
+ # /pkg/reader/proc: read process name at PID 1
+ # /pkg/selectors: read values in kernel Pid namespace
+ # /pkg/alignchecker: fails to build bpf/objs/bpf_alignchecker.o
+ # /pkg/sensors/{tracing,exec}, /pkg/{tracepoint,btf,bugtool}: try to access /sys/kernel
+ # /pkg/sensors/exec/procevents, /pkg/cgroups: fail on CI (lacking cgroup controller "pids")
+ # shellcheck disable=2046
+ GOFLAGS="${GOFLAGS/-trimpath/}" go test $(go list ./... | grep -v \
+ -e '/bpf/tests$' \
+ -e '/pkg/alignchecker$' \
+ -e '/pkg/btf$' \
+ -e '/pkg/bugtool$' \
+ -e '/pkg/cgroups$' \
+ -e '/pkg/reader/proc$' \
+ -e '/pkg/selectors$' \
+ -e '/pkg/sensors/exec$' \
+ -e '/pkg/sensors/exec/procevents$' \
+ -e '/pkg/sensors/tracing$' \
+ -e '/pkg/tracepoint$' \
+ -e '/tests/e2e' \
+ )
+}
+
+package() {
+ install -Dm755 tetra -t "$pkgdir"/usr/bin/
+
+ install -Dm644 tetra.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/tetra
+ install -Dm644 tetra.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/tetra.fish
+ install -Dm644 tetra.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_tetra
+}
+
+sha512sums="
+73404cb1900f451d80b0d0295a2c3f5ef529eb4da76406aca4b889a9dab60e4a0cb578363ee689311b8be33fa5ac902441f79e02220d567b1bf37a9bf582d7ce tetragon-client-1.0.2.tar.gz
+"
diff --git a/testing/texlab/APKBUILD b/testing/texlab/APKBUILD
new file mode 100644
index 00000000000..3f630a6533d
--- /dev/null
+++ b/testing/texlab/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=texlab
+pkgver=5.12.3
+pkgrel=0
+pkgdesc="Implementation of the Language Server Protocol for LaTeX"
+url="https://github.com/latex-lsp/texlab"
+# limited by rust/cargo
+# armhf - fails to build
+arch="x86_64 armv7 aarch64 x86 ppc64le"
+license="GPL-3.0-or-later"
+makedepends="cargo cargo-auditable"
+source="https://github.com/latex-lsp/texlab/archive/refs/tags/v$pkgver/texlab-v$pkgver.tar.gz"
+
+# tests OOM on 32-bit
+# x86_64/ppc64le tests broken with some things in /tmp
+case "$CARCH" in
+ x86|x86_64|ppc64le|armv7) options="!check" ;;
+esac
+
+export CARGO_PROFILE_RELEASE_PANIC="unwind"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/texlab -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+ab00f03dae00540225a2e87fad466bf6031916483bcb0953160dbd3003548bbf9c28212c701be887f70bdb269752f4d8818d235c5341e4c9488540b121cd5bc4 texlab-v5.12.3.tar.gz
+"
diff --git a/testing/texmaker/APKBUILD b/testing/texmaker/APKBUILD
index 859fb1d284d..4d779cde612 100644
--- a/testing/texmaker/APKBUILD
+++ b/testing/texmaker/APKBUILD
@@ -1,19 +1,29 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="texmaker"
-pkgver=5.0.4
+pkgname=texmaker
+pkgver=5.1.4
pkgrel=0
pkgdesc="Free cross-platform LaTeX editor since 2003"
url="https://www.xm1math.net/texmaker/index.html"
-arch="all"
-license="GPL"
+# qt6-qtwebengine-dev not avail
+arch="aarch64 x86_64"
+license="GPL-2.0-or-later"
depends="desktop-file-utils"
-makedepends="qt5-qttools-dev qt5-qtbase-dev qt5-qtscript-dev poppler-qt5"
-source="https://www.xm1math.net/texmaker/$pkgname-$pkgver.tar.bz2"
+makedepends="
+ poppler-qt5-dev
+ qt6-qt5compat-dev
+ qt6-qtbase-dev
+ qt6-qtdeclarative-dev
+ qt6-qttools-dev
+ qt6-qtwebengine-dev
+ "
+source="https://www.xm1math.net/texmaker/$pkgname-$pkgver.tar.bz2
+ musl-1.2.3.patch
+ "
builddir="$srcdir/$pkgname-$pkgver"
build() {
- qmake-qt5 PREFIX=/usr texmaker.pro
+ qmake6 PREFIX=/usr texmaker.pro
make
}
@@ -26,4 +36,7 @@ package() {
make INSTALL_PATH="$pkgdir" INSTALL_ROOT="$pkgdir" PREFIX="/usr" install
}
-sha512sums="34ff5773358c2fffbc9e7e61028cd74eef231152e3483531b66cb0d907dd8f70a4e8b6d6ea09b0b11387b592f6d1676ba8a1e737b26c86a45b16882e53edff1f texmaker-5.0.4.tar.bz2"
+sha512sums="
+6ae4be7ae9be98e494480d4574e783a5568f0dcc9c631ccbc9bf00cca9f69dc672ba72060c064748a4446d20302af89e3bc6f14e8977d1f1ddbd20458fcf6d4e texmaker-5.1.4.tar.bz2
+6cad0857469f9648aa6c2d2f5f69602a32d4d5be6745b14b6bbf812ad45f34b9c8a886ddb0880fabee8dd7a8d08dc12782d7cb03dfe9c2462e914712cd8f663d musl-1.2.3.patch
+"
diff --git a/testing/texmaker/musl-1.2.3.patch b/testing/texmaker/musl-1.2.3.patch
new file mode 100644
index 00000000000..e41f60aaae4
--- /dev/null
+++ b/testing/texmaker/musl-1.2.3.patch
@@ -0,0 +1,13 @@
+diff --git a/pdfium/third_party/base/logging.h b/pdfium/third_party/base/logging.h
+index bf4faea..b1e6a7f 100644
+--- a/pdfium/third_party/base/logging.h
++++ b/pdfium/third_party/base/logging.h
+@@ -10,7 +10,7 @@
+
+ #ifndef _WIN32
+ #define NULL_DEREF_IF_POSSIBLE \
+- *(reinterpret_cast<volatile char*>(NULL) + 42) = 0x42;
++ *(reinterpret_cast<volatile char*>(0) + 42) = 0x42;
+ #else
+ #define NULL_DEREF_IF_POSSIBLE
+ #endif
diff --git a/testing/texstudio/APKBUILD b/testing/texstudio/APKBUILD
new file mode 100644
index 00000000000..298716d5398
--- /dev/null
+++ b/testing/texstudio/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=texstudio
+pkgver=4.7.3
+pkgrel=1
+pkgdesc="A fully featured editor for LaTeX documents"
+url="https://www.texstudio.org"
+# disabled elsewhere due to huge size, request if you need it
+arch="aarch64 x86_64"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ poppler-qt5-dev
+ qt6-qt5compat-dev
+ qt6-qtbase-dev
+ qt6-qtdeclarative-dev
+ qt6-qtsvg-dev
+ qt6-qttools-dev
+ qtermwidget-dev
+ quazip-dev
+ samurai
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/texstudio-org/texstudio/archive/$pkgver.tar.gz
+ qt6.patch
+ "
+options="!check" # tests fail to build
+
+build() {
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DQT_VERSION_MAJOR=6
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+45537cbb585f3d0053f81a7257e8c18a091a09fbecdc09a5da7be5e7233ccbad4c23fd6679a379a6ab2a7543a58c0589249ec082e990d14354b37c5ea906e8e0 texstudio-4.7.3.tar.gz
+60380c7e962ea9deb9117c95153dc7f827b0534adeeb59b6de123d57264b74dba3c960744433686c68fac34f11d788125ba7bc08d36882b10f1282bfa597829d qt6.patch
+"
diff --git a/testing/texstudio/qt6.patch b/testing/texstudio/qt6.patch
new file mode 100644
index 00000000000..f9a2b74c35c
--- /dev/null
+++ b/testing/texstudio/qt6.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7877734..d48606f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -37,7 +37,7 @@ if(WIN32)
+ add_compile_options(-fpermissive)
+ endif()
+
+-find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets LinguistTools REQUIRED)
++find_package(QT NAMES Qt6 COMPONENTS Widgets LinguistTools REQUIRED)
+ find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Network Xml Concurrent Widgets UiTools REQUIRED)
+ find_package(Qt${QT_VERSION_MAJOR} COMPONENTS PrintSupport Svg Qml REQUIRED)
+ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
diff --git a/testing/textadept/APKBUILD b/testing/textadept/APKBUILD
deleted file mode 100644
index 605d6018071..00000000000
--- a/testing/textadept/APKBUILD
+++ /dev/null
@@ -1,75 +0,0 @@
-# Maintainer: Bradley Saulteaux <~@bradso.to>
-pkgname=textadept
-pkgver=10.3
-_pkgver=e7c3dfab62a7
-_scintver=8b888bf05fe3
-_gtdver=988719013a6a
-_luaver=5.3.5
-_lpegver=1.0.1
-_lfsver=1_7_0_2
-_cdkver=5.0-20150928
-_tkver=0.20
-pkgrel=0
-pkgdesc="A fast, minimalist, and remarkably extensible cross-platform text editor"
-url="https://foicica.com/textadept/"
-arch="all !mips !mips64"
-license="MIT"
-depends="gtk+2.0"
-makedepends="curl ncurses-dev gtk+2.0-dev lua5.3-dev cloc"
-install=""
-options="!check"
-subpackages="${pkgname}-curses"
-source="${pkgname}-${pkgver}.zip::https://foicica.com/hg/${pkgname}/archive/${_pkgver}.zip
- http://foicica.com/hg/scintilla/archive/${_scintver}.zip
- http://foicica.com/hg/gtdialog/archive/${_gtdver}.zip
- http://www.lua.org/ftp/lua-${_luaver}.tar.gz
- http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-${_lpegver}.tar.gz
- http://github.com/keplerproject/luafilesystem/archive/v${_lfsver}.tar.gz
- http://invisible-mirror.net/archives/cdk/cdk-${_cdkver}.tgz
- http://www.leonerd.org.uk/code/libtermkey/libtermkey-${_tkver}.tar.gz
- "
-builddir="$srcdir/${pkgname}-${_pkgver}/src"
-
-prepare() {
- default_prepare
- mv ../../scintilla-${_scintver} scintilla
- patch -d scintilla -N -p1 < scintilla.patch
- mv ../../gtdialog-${_gtdver} gtdialog
- mv ../../lua-${_luaver} lua
- patch -d lua -N -p1 < lua.patch
- mkdir lua/src/lib
- mv ../../lpeg-${_lpegver}/* lua/src/lib/
- mv ../../luafilesystem-${_lfsver}/src/* lua/src/lib/
- mv ../../cdk-${_cdkver} cdk
- mv cdk/include/*.h cdk/
- patch -d cdk -N -p1 < cdk.patch
- mv ../../libtermkey-${_tkver} termkey
- patch -d termkey -N -p1 < termkey.patch
-}
-
-build() {
- make CFLAGS="${CFLAGS} -I/usr/include/lua5.3" CXXFLAGS="${CXXFLAGS} -I/usr/include/lua5.3"
- make CFLAGS="${CFLAGS} -I/usr/include/lua5.3" CXXFLAGS="${CXXFLAGS} -I/usr/include/lua5.3" ${pkgname}-curses
-}
-
-curses() {
- depends="ncurses-libs"
- mkdir -p "$subpkgdir"/usr/bin
- mkdir -p "$subpkgdir"/usr/share/applications/
- mv "$srcdir/${pkgname}-${_pkgver}/${pkgname}-curses" "$subpkgdir"/usr/bin/
- rm "$builddir/${subpkgname}.desktop"
-}
-
-package() {
- make WGET=":" DESTDIR="$pkgdir" PREFIX="/usr" install
- chmod -x "$pkgdir"/usr/share/applications/*.desktop
- rm "$pkgdir"/usr/share/applications/${pkgname}-curses.desktop
-}
-sha512sums="58c5824df2f16a730d420ed2f331b7e9c7aff1330d58b8a68c46ef90f736acdfc7b9d770bbce02aa7eb0afdd5c2b3967650ebf23f652645d676f536cafaea9a2 textadept-10.3.zip
-a7bb469b9d2a34a951b7cf8907d890e609a3d1117f5b6952f8da233cef7cfc519a330cfe22abb3ca50a5d64e4028ebef968fa555f573712643a55ac142d47853 8b888bf05fe3.zip
-df7e86317fc9c4113c4699993be799efc9cb9c8f50d9415ceed9218a0d331a086c9a04853aba8f0fdc6ca45b1009d8bf19096fac216686afa02f560fea6eafb9 988719013a6a.zip
-4f9516acc4659dfd0a9e911bfa00c0788f0ad9348e5724fe8fb17aac59e9c0060a64378f82be86f8534e49c6c013e7488ad17321bafcc787831d3d67406bd0f4 lua-5.3.5.tar.gz
-7b43fbee7eff443000986684bc56bba6d2796a31cf860740746c70e155bdea1b62a46b93f97e2747e3ef0f63e965148778ac2985d0f2d83e1e37ec4ebbabf4aa lpeg-1.0.1.tar.gz
-a1d4d077776e57cd878dbcd21656da141ea3686c587b5420a2b039aeaf086b7e7d05d531ee1cc2bbd7d06660d1315b09593e52143f6711f033ce8eecdc550511 v1_7_0_2.tar.gz
-5774e28d91edd477854e30eb456b7725987e82ec27f5cf055c1d1e46581e11d2958bafbac408124f274bf7454be68476d18643a265df7c74b8f43eb1895bf19d cdk-5.0-20150928.tgz
-81a4bc5917c60ca692ec3065ac0252ae5dc1adccc2832be1c83c82318c97473d883900ab88a8a0ee08ab3f831ff07f3a4827ee3d8e936a3a42c4708ee58f6301 libtermkey-0.20.tar.gz"
diff --git a/testing/tf/0001-Add-DESTDIR-support.patch b/testing/tf/0001-Add-DESTDIR-support.patch
deleted file mode 100644
index e45794bd4d7..00000000000
--- a/testing/tf/0001-Add-DESTDIR-support.patch
+++ /dev/null
@@ -1,113 +0,0 @@
---- tf-50b8/unix/unix.mak
-+++ tf-50b8.new/unix/unix.mak
-@@ -87,57 +87,65 @@
- -test -z "$(STRIP)" || $(STRIP) tf$(X) || true
-
- PREFIXDIRS:
-- test -d "$(bindir)" || mkdir $(bindir)
-- test -d "$(datadir)" || mkdir $(datadir)
-
- install_TF $(TF): tf$(X) $(BUILDERS)
-- -@rm -f $(TF)
-- cp tf$(X) $(TF)
-- chmod $(MODE) $(TF)
-+ install -Dm755 tf$(X) $(DESTDIR)$(bindir)/tf
-
- SYMLINK $(SYMLINK): $(TF)
-- test -z "$(SYMLINK)" || { rm -f $(SYMLINK) && ln -s $(TF) $(SYMLINK); }
-
- LIBRARY $(TF_LIBDIR): ../tf-lib/tf-help ../tf-lib/tf-help.idx
-- @echo '## Creating library directory...'
--# @# Overly simplified shell commands, to avoid problems on ultrix
-- -@test -n "$(TF_LIBDIR)" || echo "TF_LIBDIR is undefined."
-- test -n "$(TF_LIBDIR)"
-- test -d "$(TF_LIBDIR)" || mkdir $(TF_LIBDIR)
-- -@test -d "$(TF_LIBDIR)" || echo "Can't make $(TF_LIBDIR) directory. See if"
-- -@test -d "$(TF_LIBDIR)" || echo "there is already a file with that name."
-- test -d "$(TF_LIBDIR)"
--#
--# @#rm -f $(TF_LIBDIR)/*; # wrong: this would remove local.tf, etc.
-- @echo '## Copying library files...'
-- cd ../tf-lib; \
-- for f in *; do test -f $$f && files="$$files $$f"; done; \
-- ( cd $(TF_LIBDIR); rm -f $$files tf.help tf.help.index; ); \
-- cp $$files $(TF_LIBDIR); \
-- cd $(TF_LIBDIR); \
-- chmod $(MODE) $$files; chmod ugo-wx $$files
-- -rm -f $(TF_LIBDIR)/CHANGES
-- cp ../CHANGES $(TF_LIBDIR)
-- chmod $(MODE) $(TF_LIBDIR)/CHANGES; chmod ugo-wx $(TF_LIBDIR)/CHANGES
-- chmod $(MODE) $(TF_LIBDIR)
-- -@cd $(TF_LIBDIR); old=`ls replace.tf 2>/dev/null`; \
-- if [ -n "$$old" ]; then \
-- echo "## WARNING: Obsolete files found in $(TF_LIBDIR): $$old"; \
-- fi
-- @echo '## Creating links so old library names still work...'
--# @# note: ln -sf isn't portable.
-- @cd $(TF_LIBDIR); \
-- rm -f bind-bash.tf; ln -s kb-bash.tf bind-bash.tf; \
-- rm -f bind-emacs.tf; ln -s kb-emacs.tf bind-emacs.tf; \
-- rm -f completion.tf; ln -s complete.tf completion.tf; \
-- rm -f factorial.tf; ln -s factoral.tf factorial.tf; \
-- rm -f file-xfer.tf; ln -s filexfer.tf file-xfer.tf; \
-- rm -f local.tf.sample; ln -s local-eg.tf local.tf.sample; \
-- rm -f pref-shell.tf; ln -s psh.tf pref-shell.tf; \
-- rm -f space_page.tf; ln -s spc-page.tf space_page.tf; \
-- rm -f speedwalk.tf; ln -s spedwalk.tf speedwalk.tf; \
-- rm -f stack_queue.tf; ln -s stack-q.tf stack_queue.tf; \
-- rm -f worldqueue.tf; ln -s world-q.tf worldqueue.tf;
-+ install -Dm644 ../tf-lib/lisp.tf $(DESTDIR)$(datadir)/tf-lib/lisp.tf
-+ install -Dm644 ../tf-lib/hanoi.tf $(DESTDIR)$(datadir)/tf-lib/hanoi.tf
-+ install -Dm644 ../tf-lib/spell.tf $(DESTDIR)$(datadir)/tf-lib/spell.tf
-+ install -Dm644 ../tf-lib/spedwalk.tf $(DESTDIR)$(datadir)/tf-lib/spedwalk.tf
-+ install -Dm644 ../tf-lib/kb-emacs.tf $(DESTDIR)$(datadir)/tf-lib/kb-emacs.tf
-+ install -Dm644 ../tf-lib/tf-help.idx $(DESTDIR)$(datadir)/tf-lib/tf-help.idx
-+ install -Dm644 ../tf-lib/tools.tf $(DESTDIR)$(datadir)/tf-lib/tools.tf
-+ install -Dm644 ../tf-lib/watch.tf $(DESTDIR)$(datadir)/tf-lib/watch.tf
-+ install -Dm644 ../tf-lib/kb_badterm.tf $(DESTDIR)$(datadir)/tf-lib/kb_badterm.tf
-+ install -Dm644 ../tf-lib/world-q.tf $(DESTDIR)$(datadir)/tf-lib/world-q.tf
-+ install -Dm644 ../tf-lib/changes.tf $(DESTDIR)$(datadir)/tf-lib/changes.tf
-+ install -Dm644 ../tf-lib/stack-q.tf $(DESTDIR)$(datadir)/tf-lib/stack-q.tf
-+ install -Dm644 ../tf-lib/factoral.tf $(DESTDIR)$(datadir)/tf-lib/factoral.tf
-+ install -Dm644 ../tf-lib/cylon.tf $(DESTDIR)$(datadir)/tf-lib/cylon.tf
-+ install -Dm644 ../tf-lib/quoter.tf $(DESTDIR)$(datadir)/tf-lib/quoter.tf
-+ install -Dm644 ../tf-lib/psh.tf $(DESTDIR)$(datadir)/tf-lib/psh.tf
-+ install -Dm644 ../tf-lib/textutil.tf $(DESTDIR)$(datadir)/tf-lib/textutil.tf
-+ install -Dm644 ../tf-lib/finger.tf $(DESTDIR)$(datadir)/tf-lib/finger.tf
-+ install -Dm644 ../tf-lib/savehist.tf $(DESTDIR)$(datadir)/tf-lib/savehist.tf
-+ install -Dm644 ../tf-lib/textencode.tf $(DESTDIR)$(datadir)/tf-lib/textencode.tf
-+ install -Dm644 ../tf-lib/spc-page.tf $(DESTDIR)$(datadir)/tf-lib/spc-page.tf
-+ install -Dm644 ../tf-lib/teraterm.keyboard.cnf $(DESTDIR)$(datadir)/tf-lib/teraterm.keyboard.cnf
-+ install -Dm644 ../tf-lib/testcolor.tf $(DESTDIR)$(datadir)/tf-lib/testcolor.tf
-+ install -Dm644 ../tf-lib/tintin.tf $(DESTDIR)$(datadir)/tf-lib/tintin.tf
-+ install -Dm644 ../tf-lib/grep.tf $(DESTDIR)$(datadir)/tf-lib/grep.tf
-+ install -Dm644 ../tf-lib/tfrc $(DESTDIR)$(datadir)/tf-lib/tfrc
-+ install -Dm644 ../tf-lib/rwho.tf $(DESTDIR)$(datadir)/tf-lib/rwho.tf
-+ install -Dm644 ../tf-lib/alias.tf $(DESTDIR)$(datadir)/tf-lib/alias.tf
-+ install -Dm644 ../tf-lib/kbbind.tf $(DESTDIR)$(datadir)/tf-lib/kbbind.tf
-+ install -Dm644 ../tf-lib/complete.tf $(DESTDIR)$(datadir)/tf-lib/complete.tf
-+ install -Dm644 ../tf-lib/kbregion.tf $(DESTDIR)$(datadir)/tf-lib/kbregion.tf
-+ install -Dm644 ../tf-lib/color.tf $(DESTDIR)$(datadir)/tf-lib/color.tf
-+ install -Dm644 ../tf-lib/kb-bash.tf $(DESTDIR)$(datadir)/tf-lib/kb-bash.tf
-+ install -Dm644 ../tf-lib/kbstack.tf $(DESTDIR)$(datadir)/tf-lib/kbstack.tf
-+ install -Dm644 ../tf-lib/filexfer.tf $(DESTDIR)$(datadir)/tf-lib/filexfer.tf
-+ install -Dm644 ../tf-lib/activity_status.tf $(DESTDIR)$(datadir)/tf-lib/activity_status.tf
-+ install -Dm644 ../tf-lib/tfstatus.tf $(DESTDIR)$(datadir)/tf-lib/tfstatus.tf
-+ install -Dm644 ../tf-lib/relog.tf $(DESTDIR)$(datadir)/tf-lib/relog.tf
-+ install -Dm644 ../tf-lib/local-eg.tf $(DESTDIR)$(datadir)/tf-lib/local-eg.tf
-+ install -Dm644 ../tf-lib/stdlib.tf $(DESTDIR)$(datadir)/tf-lib/stdlib.tf
-+ install -Dm644 ../tf-lib/at.tf $(DESTDIR)$(datadir)/tf-lib/at.tf
-+ install -Dm644 ../tf-lib/tick.tf $(DESTDIR)$(datadir)/tf-lib/tick.tf
-+ install -Dm644 ../tf-lib/kb-os2.tf $(DESTDIR)$(datadir)/tf-lib/kb-os2.tf
-+ install -Dm644 ../tf-lib/kbfunc.tf $(DESTDIR)$(datadir)/tf-lib/kbfunc.tf
-+ install -Dm644 ../tf-lib/pcmd.tf $(DESTDIR)$(datadir)/tf-lib/pcmd.tf
-+ install -Dm644 ../tf-lib/map.tf $(DESTDIR)$(datadir)/tf-lib/map.tf
-+ install -Dm644 ../tf-lib/activity_status2.tf $(DESTDIR)$(datadir)/tf-lib/activity_status2.tf
-+ install -Dm644 ../tf-lib/kb-old.tf $(DESTDIR)$(datadir)/tf-lib/kb-old.tf
-+ install -Dm644 ../tf-lib/tr.tf $(DESTDIR)$(datadir)/tf-lib/tr.tf
-+ install -Dm644 ../CHANGES $(DESTDIR)$(datadir)/tf-lib/CHANGES
-+ install -Dm644 ../README $(DESTDIR)$(datadir)/tf-lib/README
-+ install -Dm644 ../tf-lib/examples.old $(DESTDIR)$(datadir)/tf-lib/examples.old
-
- makehelp: makehelp.c
- $(CC) $(CFLAGS) -o makehelp makehelp.c
diff --git a/testing/tf/0002-Correct-use-of-va_list.patch b/testing/tf/0002-Correct-use-of-va_list.patch
deleted file mode 100644
index d13fcd85421..00000000000
--- a/testing/tf/0002-Correct-use-of-va_list.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Russ Allbery <rra@debian.org>
-Date: Sun, 17 Feb 2008 22:23:24 -0800
-Subject: Correct use of va_list
-
-va_copy a va_list before using it in vsprintf so that we don't use the
-same va_list repeatedly. Patch taken from the upstream bug tracker
-and will apparently be in the next release after 5.0beta8.
----
- src/tfio.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/src/tfio.c b/src/tfio.c
-index 2cd2103..151583e 100644
---- a/src/tfio.c
-+++ b/src/tfio.c
-@@ -497,6 +497,7 @@ void vSprintf(String *buf, int flags, const char *fmt, va_list ap)
- const conString *Sval;
- int len, min, max, leftjust, stars;
- attr_t attrs = buf->attrs;
-+ va_list ap_copy;
-
- if (!(flags & SP_APPEND) && buf->data) Stringtrunc(buf, 0);
- while (*fmt) {
-@@ -522,7 +523,9 @@ void vSprintf(String *buf, int flags, const char *fmt, va_list ap)
- case 'x': case 'X': case 'u': case 'o':
- case 'f': case 'e': case 'E': case 'g': case 'G':
- case 'p':
-- vsprintf(tempbuf, spec, ap);
-+ va_copy(ap_copy, ap);
-+ vsprintf(tempbuf, spec, ap_copy);
-+ va_end(ap_copy);
- Stringcat(buf, tempbuf);
- /* eat the arguments used by vsprintf() */
- while (stars--) (void)va_arg(ap, int);
diff --git a/testing/tf/0003-Minor-man-page-fixes.patch b/testing/tf/0003-Minor-man-page-fixes.patch
deleted file mode 100644
index 9611744a577..00000000000
--- a/testing/tf/0003-Minor-man-page-fixes.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From: Russ Allbery <rra@debian.org>
-Date: Sun, 17 Feb 2008 22:17:59 -0800
-Subject: Minor man page fixes
-
-Escape hyphens properly, add a better man page header, fix the
-placement of punctuation around font changes, and fix a spelling
-error.
----
- src/tf.1.nroffman | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/src/tf.1.nroffman b/src/tf.1.nroffman
-index e8daaca..90691db 100644
---- a/src/tf.1.nroffman
-+++ b/src/tf.1.nroffman
-@@ -1,11 +1,11 @@
- .\" $Id: tf.1.nroffman,v 34000.8 2007/01/13 23:12:39 kkeys Exp $
--.TH TF 1 LOCAL
-+.TH TF 1 "2007-01-13" "TinyFugue 5.0" "TinyFugue"
- .SH NAME
- tf \- TinyFugue, a MUD client
- .SH SYNOPSIS
--.B "tf [-f\fIfile\fB] [-lnq] [\fIworld\fB]"
-+.B "tf [\-f\fIfile\fB] [\-lnq] [\fIworld\fB]"
- .br
--.B "tf [-f\fIfile\fB] \fIhost\fB \fIport\fB"
-+.B "tf [\-f\fIfile\fB] \fIhost\fB \fIport\fB"
- .SH DESCRIPTION
- \fITinyFugue\fR (also known as "Fugue" or "TF") is a line-based client
- designed for connecting to MUD servers (note: LP, DIKU, and other servers
-@@ -48,15 +48,15 @@ world and try to connect to it.
- The \fBhost\fR may be an IP number or regular name format.
- .PP
- OPTIONS
--.IP "-f\fIfile\fR"
-+.IP "\-f\fIfile\fR"
- Load \fIfile\fR instead of $HOME/.tfrc at startup.
--.IP "-f"
-+.IP "\-f"
- Do not load any personal configuration file. The library will still be loaded.
--.IP "-l"
-+.IP "\-l"
- Disable automatic login.
--.IP "-n"
-+.IP "\-n"
- Do not connect to any world at startup.
--.IP "-q"
-+.IP "\-q"
- Quiet login (overrides %{quiet} flag).
-
- .SH FEATURES
-@@ -109,7 +109,7 @@ Log a session to a file.
- .sp
- Separate LP and Diku style prompts from normal output.
- .sp
--Page output using a --More-- prompt.
-+Page output using a \-\-More\-\- prompt.
- .sp
- Recall previously received text.
-
-@@ -120,14 +120,14 @@ configuration file "stdlib.tf", located in TFLIBDIR.
- TFLIBDIR is defined when \fITF\fR is installed, and is often
- /usr/local/lib/tf.lib, or under the home directory of the installer.
- This library contains many macros
--and definitions essential to the correct operation of \fITF.\fR
-+and definitions essential to the correct operation of \fITF\fR.
-
- Next, \fITF\fR will attempt to read your personal configuration
- file, $HOME/.tfrc, in which you can put any \fITF\fR commands you
- want executed automatically at startup. Two of the most useful
- commands to use in a \fITF\fR configuration file are /addworld and /load.
-
--For backward compatability, \fITF\fR will also try
-+For backward compatibility, \fITF\fR will also try
- to read the \fITinyTalk\fR configuration file.
- Its name defautls to $HOME/.tinytalk, or can be defined by the TINYTALK
- environment variable.
-@@ -140,19 +140,19 @@ the first Tinyclient with any great number of features, including
- hiliting and suppression of text, simple triggers, and separating input and
- output on the screen.
- Leo Plotkin (Grod) made rather extensive modifications to \fITinytalk\fR
--to produce \fITinywar,\fR which was plagued with some
-+to produce \fITinywar\fR, which was plagued with some
- serious bugs and was never officially released (the phrase "Tinywar
- doesn't exist" is often quoted), and is now an unsupported client.
- \fITF\fR began when Greg Hudson (Explorer_Bob) merged many of the new
--features of \fITinywar\fR back into \fITinyTalk,\fR
-+features of \fITinywar\fR back into \fITinyTalk\fR,
- and added many new features of his own, most notably the split screen.
- Some of the code in Greg's releases was contributed by Leo Plotkin.
--After Greg moved on to \fIVaporTalk,\fR Ken Keys (Hawkeye) took over design
-+After Greg moved on to \fIVaporTalk\fR, Ken Keys (Hawkeye) took over design
- and maintenance of \fITF\fR in July 1991, and continues to make improvements
- in features and performance.
- .PP
- The code size of \fITF\fR has surpassed 300K (unstripped),
--and is signifigantly larger than \fITinytalk.\fR
-+and is signifigantly larger than \fITinytalk\fR.
- It is, in fact, more than three times the size of a number of existing servers.
- As of version 3.0, it has 66 builtin commands and 57 library commands,
- each documented in the helpfile.
-@@ -225,8 +225,8 @@ default macro library.
- .PP
- The .tinytalk file may not be supported in the future; use .tfrc instead.
- .PP
--The '-' command line option in versions prior to 2.0 is no longer supported,
--and has been replaced with '-l'.
-+The '\-' command line option in versions prior to 2.0 is no longer supported,
-+and has been replaced with '\-l'.
-
- .SH BUGS
- .PP
diff --git a/testing/tf/0006-Fix-library-install-path.patch b/testing/tf/0006-Fix-library-install-path.patch
deleted file mode 100644
index 52c8e885f03..00000000000
--- a/testing/tf/0006-Fix-library-install-path.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: Russ Allbery <rra@debian.org>
-Date: Sun, 14 Aug 2016 14:14:47 -0700
-Subject: Fix library install path
-
-The upstream top-level configure script doesn't correctly handle
---program-suffix without this tweak.
----
- configure.in | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index e783564..c938531 100644
---- a/configure.in
-+++ b/configure.in
-@@ -599,13 +599,13 @@ fi
- dnl The "right" way of using program_transform_name, program_prefix, and
- dnl program_suffix expects you to use AC_ARG_PROGRAM here and do transformation
- dnl in the Makefile, but we want the values now, so we do it ourselves.
--EXENAME="tf"
-+EXENAME="tf" PROGNAME="tf"
- test "${program_prefix}" != "NONE" && EXENAME="${program_prefix}${EXENAME}"
- test "${program_suffix}" != "NONE" && EXENAME="${EXENAME}${program_suffix}"
- if test "${program_transform_name}" != "NONE"; then
- EXENAME=`echo "${EXENAME}" | sed "${program_transform_name}"`
- fi
--LIBNAME="${EXENAME}-lib"
-+LIBNAME="${PROGNAME}-lib"
-
- if test "$enable_symlink" = "no"; then
- SYMLINK=""
-@@ -616,6 +616,7 @@ else
- fi
-
- AC_SUBST(EXENAME)
-+AC_SUBST(PROGNAME)
- AC_SUBST(LIBNAME)
- AC_SUBST(SYMLINK)
-
diff --git a/testing/tf/0007-Fix-spelling-errors.patch b/testing/tf/0007-Fix-spelling-errors.patch
deleted file mode 100644
index 8e78721b7ec..00000000000
--- a/testing/tf/0007-Fix-spelling-errors.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From: Russ Allbery <rra@debian.org>
-Date: Sun, 14 Aug 2016 14:22:52 -0700
-Subject: Fix spelling errors
-
-occured -> occurred everywhere
----
- CHANGES | 4 ++--
- src/command.c | 2 +-
- src/signals.c | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/CHANGES b/CHANGES
-index 037c766..dfc5029 100644
---- a/CHANGES
-+++ b/CHANGES
-@@ -316,7 +316,7 @@ Renamed BACKGROUND hook to BGTRIG (but old name still works).
- Added BGTEXT hook.
- Fixed activity_status.tf to update for lines generated by /echo -w.
- Fixed: ACTIVITY and PREACTIVITY hooks didn't run in the world in which the
-- activity occured when caused by /echo -w.
-+ activity occurred when caused by /echo -w.
- Fixed order of /dc message relative to text already queued on socket.
- Fixed: under certain conditions, a dead socket would not go away and could
- not be foregrounded.
-@@ -972,7 +972,7 @@ Fixed compilation error involving conditional and hstrerror under some
- lame compilers (socket.c:788).
- Fixed output misdirection during a read() inside a command sub.
- Fixed rare bug causing command line to execute in wrong world when a
-- simultaneous background trigger occured.
-+ simultaneous background trigger occurred.
- Fixed /world with no arguments.
- Fixed fatal input bug after /histsize -i. (35a21)
- Fixed bug which disabled history recording after /recall on an empty history.
-diff --git a/src/command.c b/src/command.c
-index 0409787..624d03b 100644
---- a/src/command.c
-+++ b/src/command.c
-@@ -605,7 +605,7 @@ int do_file_load(const char *args, int tinytalk)
- !user_result->u.ival && !warned)
- {
- eprintf("(This line was implicitly treated as an /addworld "
-- "because it occured before the first '/' line and did not "
-+ "because it occurred before the first '/' line and did not "
- "start with a '/', ';', or '#'.)");
- warned = 1;
- }
-diff --git a/src/signals.c b/src/signals.c
-index bd96b87..a00c70e 100644
---- a/src/signals.c
-+++ b/src/signals.c
-@@ -410,7 +410,7 @@ static char initial_dir[PATH_MAX+1] = "."; /* default: many users never chdir */
- static void coremsg(FILE *dumpfile)
- {
- fputs("Also describe what you were doing in tf when this\r\n", stderr);
-- fputs("occured, and whether you can repeat it.\r\n\n", stderr);
-+ fputs("occurred, and whether you can repeat it.\r\n\n", stderr);
- fprintf(dumpfile, "> %.512s\r\n", version);
- if (*sysname) fprintf(dumpfile, "> %.256s\r\n", sysname);
- fprintf(dumpfile, "> %.256s\r\n", featurestr->data);
diff --git a/testing/tf/0008-Build-on-musl.patch b/testing/tf/0008-Build-on-musl.patch
deleted file mode 100644
index 9ca62290c97..00000000000
--- a/testing/tf/0008-Build-on-musl.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -Nurd tf-50b8/src/malloc.c tf-50b8.new/src/malloc.c
---- tf-50b8/src/malloc.c 2007-01-13 23:12:39.000000000 +0000
-+++ tf-50b8.new/src/malloc.c 2018-01-24 09:13:08.406519279 +0000
-@@ -12,7 +12,7 @@
- #include "signals.h"
- #include "malloc.h"
-
--caddr_t mmalloc_base = NULL;
-+void *mmalloc_base = NULL;
- int low_memory_warning = 0;
- static char *reserve = NULL;
-
-diff -Nurd tf-50b8/src/macro.c tf-50b8.new/src/macro.c
---- tf-50b8/src/macro.c 2007-01-13 23:12:39.000000000 +0000
-+++ tf-50b8.new/src/macro.c 2018-01-24 09:26:18.479836714 +0000
-@@ -893,7 +893,8 @@
- }
- spec->attr &= ~F_NONE;
- if (spec->nsubattr) {
-- int n = pcre_info(spec->trig.ri->re, NULL, NULL);
-+ int n = 0;
-+ pcre_fullinfo(spec->trig.ri->re, NULL, PCRE_INFO_CAPTURECOUNT, &n);
- for (i = 0; i < spec->nsubattr; i++) {
- spec->subattr[i].attr &= ~F_NONE;
- if (spec->subattr[i].subexp > n) {
-diff -Nurd tf-50b8/src/pattern.c tf-50b8.new/src/pattern.c
---- tf-50b8/src/pattern.c 2007-01-13 23:12:39.000000000 +0000
-+++ tf-50b8.new/src/pattern.c 2018-01-24 09:28:21.526500904 +0000
-@@ -151,7 +151,7 @@
- emsg ? emsg : "unknown error");
- goto tf_reg_compile_error;
- }
-- n = pcre_info(ri->re, NULL, NULL);
-+ pcre_fullinfo(ri->re, NULL, PCRE_INFO_CAPTURECOUNT, &n);
- if (n < 0) goto tf_reg_compile_error;
- ri->ovecsize = 3 * (n + 1);
- ri->ovector = dmalloc(NULL, sizeof(int) * ri->ovecsize, file, line);
-diff -Nurd tf-50b8/src/pattern.h tf-50b8.new/src/pattern.h
---- tf-50b8/src/pattern.h 2007-01-13 23:12:39.000000000 +0000
-+++ tf-50b8.new/src/pattern.h 2018-01-24 09:28:36.039833945 +0000
-@@ -10,7 +10,7 @@
- #ifndef PATTERN_H
- #define PATTERN_H
-
--#include "pcre-2.08/pcre.h"
-+#include <pcre.h>
-
- typedef struct RegInfo {
- pcre *re;
diff --git a/testing/tf/APKBUILD b/testing/tf/APKBUILD
deleted file mode 100644
index 3f19f2e38ff..00000000000
--- a/testing/tf/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
-# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
-pkgname=tf
-pkgver=5.0b8
-_pkgver=50b8
-pkgrel=3
-pkgdesc="Powerful curses-based MUD client"
-url="http://tinyfugue.sourceforge.net/"
-arch="all"
-license="GPL-2.0+"
-depends=""
-depends_dev=""
-makedepends="openssl-dev ncurses-dev pcre-dev $depends_dev"
-install=""
-source="https://sourceforge.net/projects/tinyfugue/files/tinyfugue/5.0%20beta%208/tf-$_pkgver.tar.gz
- 0001-Add-DESTDIR-support.patch
- 0002-Correct-use-of-va_list.patch
- 0003-Minor-man-page-fixes.patch
- 0006-Fix-library-install-path.patch
- 0007-Fix-spelling-errors.patch
- 0008-Build-on-musl.patch
- "
-builddir="$srcdir/tf-$_pkgver"
-# no testsuite provided
-options="!check"
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="3b99c039d7a9c6ab7ee7b1040ff7c99fe39cbe991f373333ea7c130d54383f102f14ae33303a415f5419cd43238caffc46114e842c6964329c0999e0f506e3d0 tf-50b8.tar.gz
-e891f5d4fb2db8f1f875fa2c7fa2a4d76c9ae2a54fdcc61c80e906e4f6f2d11e736fd2579d56cb313209e46c7ea01eba46b19ccf4b3f5e007585fd65fc547b34 0001-Add-DESTDIR-support.patch
-7d2b2da0f4213fcfbce86eb9042cb83751c80aba5881861d5f49d4604a4eba52d60b5254c8b119528f0890ae7a68dfe4fea7eb2c94dd0d01676b194bca4db219 0002-Correct-use-of-va_list.patch
-1e8f05d2744b60cc78f494283bb5f9ef7a804a6811d16028d5486a7394658a03aed04962adfd5bc60fe1517d3831b41f4ca1c3956a624f09a2a4b14f5ab91608 0003-Minor-man-page-fixes.patch
-0066bbb3919e6b157eb276c3975cadc258a195037c0f199c3f9db83868d6035f81b79b9a41a743c99f317fd253a2f670dcf122d5f7c449fc1677c56cfaa8bb6a 0006-Fix-library-install-path.patch
-a84aeaf097eb1ec61f9c86f73795ad9f8c111057837b1a0b127905302372e01b6489f9a19f14a29171cef9a787314d511dc98e1140d0c122dd9af5f526eb4bc0 0007-Fix-spelling-errors.patch
-f9eadd1ffb2bc51db5d2bd0e9636573ef560bf849a780c8ee99bccb3870463a1b2caeaa1d3005e11d99c7689ae6ecd8f75056db09cf2d3df084058b4a3db32f0 0008-Build-on-musl.patch"
diff --git a/testing/thanos/APKBUILD b/testing/thanos/APKBUILD
new file mode 100644
index 00000000000..21847452e5e
--- /dev/null
+++ b/testing/thanos/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: wener <wenermail@gmail.com>
+# Maintainer: wener <wenermail@gmail.com>
+pkgname=thanos
+pkgver=0.31.0
+pkgrel=5
+pkgdesc="Highly available Prometheus setup with long term storage capabilities. CNCF Sandbox project."
+url="https://github.com/thanos-io/thanos"
+license="Apache-2.0"
+# prometheus
+# 32-bit: doesn't build
+arch="all !x86 !armhf !armv7 !riscv64"
+install="thanos.pre-install"
+makedepends="go prometheus tzdata"
+subpackages="$pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/thanos-io/thanos/archive/v$pkgver.tar.gz
+ assume-no-moving-gc.patch
+ thanos.initd
+ thanos.confd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ GOLDFLAGS="
+ -X github.com/prometheus/common/version.Version=$pkgver
+ -X github.com/prometheus/common/version.Revision=AlpineLinux
+ -X github.com/prometheus/common/version.Branch=master
+ -X github.com/prometheus/common/version.BuildUser=build@xyz
+ -X github.com/prometheus/common/version.BuildDate=$(date -u "+%Y%m%d-%H:%M:%S" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ "
+
+ go build \
+ -ldflags "$GOLDFLAGS" \
+ ./cmd/thanos
+}
+
+check() {
+ # some tests need external storage credentials or running server
+ # pkg/cacheutil go 1.15 compact
+ # pkg/pool alloc too much memory
+ # shellcheck disable=2046
+ go test $(go list ./... | grep -v \
+ -e 'test/e2e' \
+ -e 'pkg/shipper' \
+ -e 'pkg/store' \
+ -e 'objstore/objtesting' \
+ -e 'pkg/promclient' \
+ -e 'pkg/rules' \
+ -e 'pkg/compact' \
+ -e 'pkg/block' \
+ -e 'pkg/query' \
+ -e 'pkg/cacheutil' \
+ -e 'pkg/pool' \
+ -e 'pkg/targets' \
+ -e 'pkg/metadata' \
+ )
+}
+
+package() {
+ install -Dm755 thanos "$pkgdir"/usr/bin/thanos
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+4bf4a0e3414c8157ca2ff1ae58c5e9c64d4966ac455495b95ccaa5bac2c726866e32cb30b8c87f2374f71b9eef27b6f8f05a578b69cabc535dd5cb806cb0a188 thanos-0.31.0.tar.gz
+bc9fe59136862b04c10a8e091ff90e9dcd08680a6debddc5321b0bf30efe5cc043f6c7a97c2422f6ee9eb6e19ad7288e4af85115689c62f96413e0e8b99ee5ab assume-no-moving-gc.patch
+8407adbc29d90d36550ad16555d0b881d1d1745fba7bf5f4bd4a66bdf4abe196321106881dbba569c7e123d6abfbe78714b6e108b1e3c69b051270c3a46ba5c8 thanos.initd
+c1bc9d71828b176eed964d5f673ea5e5d368f25ca21a3b12dcb8f8987f8bf12f35c06849d7fc4e6ffae52d98a5e636bdb63333930fe640c48e4d02a0b8db620a thanos.confd
+"
diff --git a/testing/thanos/assume-no-moving-gc.patch b/testing/thanos/assume-no-moving-gc.patch
new file mode 100644
index 00000000000..49be26ea0a5
--- /dev/null
+++ b/testing/thanos/assume-no-moving-gc.patch
@@ -0,0 +1,28 @@
+bumps the version to make sure it works with go 1.20
+
+diff --git a/go.mod b/go.mod
+index c24c2aa..56ef923 100644
+--- a/go.mod
++++ b/go.mod
+@@ -126,7 +126,7 @@ require (
+ golang.org/x/exp v0.0.0-20230124195608-d38c7dcee874
+ )
+
+-require go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect
++require go4.org/unsafe/assume-no-moving-gc v0.0.0-20230525183740-e7c30c78aeb2 // indirect
+
+ require (
+ cloud.google.com/go/compute/metadata v0.2.3 // indirect
+diff --git a/go.sum b/go.sum
+index 05525ba..e6bbdb9 100644
+--- a/go.sum
++++ b/go.sum
+@@ -1026,6 +1026,8 @@ go4.org/intern v0.0.0-20220617035311-6925f38cc365 h1:t9hFvR102YlOqU0fQn1wgwhNvSb
+ go4.org/intern v0.0.0-20220617035311-6925f38cc365/go.mod h1:WXRv3p7T6gzt0CcJm43AAKdKVZmcQbwwC7EwquU5BZU=
+ go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 h1:FyBZqvoA/jbNzuAWLQE2kG820zMAkcilx6BMjGbL/E4=
+ go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E=
++go4.org/unsafe/assume-no-moving-gc v0.0.0-20230525183740-e7c30c78aeb2 h1:WJhcL4p+YeDxmZWg141nRm7XC8IDmhz7lk5GpadO1Sg=
++go4.org/unsafe/assume-no-moving-gc v0.0.0-20230525183740-e7c30c78aeb2/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E=
+ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
diff --git a/testing/thanos/thanos.confd b/testing/thanos/thanos.confd
new file mode 100644
index 00000000000..5cb315be490
--- /dev/null
+++ b/testing/thanos/thanos.confd
@@ -0,0 +1,3 @@
+
+THANOS_EXEC="sidecar"
+THANOS_OPTIONS=""
diff --git a/testing/thanos/thanos.initd b/testing/thanos/thanos.initd
new file mode 100644
index 00000000000..be5b0bb418e
--- /dev/null
+++ b/testing/thanos/thanos.initd
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name=thanos
+description="Highly available Prometheus setup with long term storage capabilities"
+command="/usr/bin/thnaos"
+command_args="$THANOS_EXEC $THANOS_OPTS"
+
+rc_ulimit="${THANOS_ULIMIT:--n 65536}"
+
+start_stop_daemon_args="--user prometheus:prometheus"
+pidfile="/run/$name.pid"
+
+depend() {
+ need net
+ after firewall prometheus
+}
diff --git a/testing/thanos/thanos.pre-install b/testing/thanos/thanos.pre-install
new file mode 100644
index 00000000000..004fd0bcb9f
--- /dev/null
+++ b/testing/thanos/thanos.pre-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+grep '^prometheus:' /etc/group >/dev/null || addgroup -S prometheus 2>/dev/null
+grep '^prometheus:' /etc/passwd >/dev/null || adduser -SDh/var/lib/prometheus \
+ -s/sbin/nologin -Gprometheus -gprometheus prometheus prometheus 2>/dev/null
diff --git a/testing/theforceengine/APKBUILD b/testing/theforceengine/APKBUILD
new file mode 100644
index 00000000000..9a3762bece4
--- /dev/null
+++ b/testing/theforceengine/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=theforceengine
+pkgver=1.09.540
+pkgrel=1
+pkgdesc="Modern rebuild of the Jedi Engine (needs purchased copy of game data files to run)"
+arch="all"
+url="https://theforceengine.github.io/"
+license="GPL-2.0-only"
+makedepends="$depends_dev
+ cmake
+ devil
+ devil-dev
+ glew-dev
+ libunwind-dev
+ rtmidi-dev
+ samurai
+ sdl2-dev
+ sdl2_image-dev
+ "
+source="
+ theforceengine-$pkgver.tar.gz::https://github.com/luciusDXL/TheForceEngine/archive/refs/tags/v$pkgver.tar.gz
+
+ backtrace.patch
+ path_max.patch
+ compilation_32bit_systems.patch
+ "
+subpackages="$pkgname-doc"
+options="!check" # no unit tests provided
+builddir="$srcdir/TheForceEngine-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+doc() {
+ default_doc
+
+ amove usr/share/TheForceEngine/Documentation
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+db69909e6276e1a6a8ed9aad74566d1873970340ee2f49d6bb72b78e3b7c7eb46a6c415a0cff273f464292590cf924c96efe61f6dece73a0f063259772e0d4c0 theforceengine-1.09.540.tar.gz
+6bff94570ec327556b78dd1f967f00ff85c06325f5a017624a33c7b02a03dbf595b6921e7cb164f6556a485dfa5f269617d61213bde84056859c9719ef8c093c backtrace.patch
+d9b59854aa191fd18ff9b9a39f6f7ea1472cc60eb340ef86ef721f9f88a93fe2359eb0ed3b3253c2b44b6f28a2f5bd7bfaef6ec13ad287cadf0cf013ee5042c9 path_max.patch
+b5487f619da23f75babf735f42edfc58611791094135f1dca83c37aca30b6ab0bb138887a38f337237981cba8402e0bacc6a54315700fb9a3b36dae608ed5da3 compilation_32bit_systems.patch
+"
diff --git a/testing/theforceengine/backtrace.patch b/testing/theforceengine/backtrace.patch
new file mode 100644
index 00000000000..9ab6438505e
--- /dev/null
+++ b/testing/theforceengine/backtrace.patch
@@ -0,0 +1,32 @@
+Drop backtracing feature, as it is implemented using using glibc specific
+features.
+
+--- a/TheForceEngine/TFE_System/CrashHandler/crashHandlerLinux.cpp
++++ b/TheForceEngine/TFE_System/CrashHandler/crashHandlerLinux.cpp
+@@ -1,6 +1,5 @@
+ #include <cstring>
+ #include <errno.h>
+-#include <execinfo.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
+ #include <unistd.h>
+@@ -68,18 +67,7 @@
+ TFE_System::logWrite(LOG_ERROR, "CrashHandler", "faulting address %p", siginfo->si_addr);
+ }
+
+- // backtrace() can also segfault; purposefully ignore SEGV before calling it.
+- signal(SIGSEGV, SIG_IGN);
+- entries = backtrace(buf, 512);
+- if (entries) {
+- ents = backtrace_symbols(buf, entries);
+- TFE_System::logWrite(LOG_ERROR, "CrashHandler", "Backtrace %d:", entries);
+- for (i = 0; i < entries; i++) {
+- TFE_System::logWrite(LOG_ERROR, "CrashHandler", "%03d %s", i, ents[i]);
+- }
+- } else {
+- TFE_System::logWrite(LOG_ERROR, "CrashHandler", "no backtrace possible");
+- }
++ TFE_System::logWrite(LOG_ERROR, "CrashHandler", "no backtrace possible");
+
+ // for certain signals, the default handler will create
+ // a coredump if enabled by administrator.
diff --git a/testing/theforceengine/compilation_32bit_systems.patch b/testing/theforceengine/compilation_32bit_systems.patch
new file mode 100644
index 00000000000..2e80cece7d2
--- /dev/null
+++ b/testing/theforceengine/compilation_32bit_systems.patch
@@ -0,0 +1,29 @@
+This fixes compilation on 32 bit systems where `size_t min(size_t, size_t)`
+and `uint32_t min(uint32_t, uint32_t)` is the same signature.
+
+--- a/TheForceEngine/TFE_Jedi/Math/core_math.h
++++ b/TheForceEngine/TFE_Jedi/Math/core_math.h
+@@ -6,6 +6,9 @@
+ #include <TFE_System/types.h>
+ #include "fixedPoint.h"
+ #include "cosTable.h"
++#include <climits>
++#include <cstddef>
++#include <cstdint>
+
+ namespace TFE_Jedi
+ {
+@@ -337,6 +340,7 @@
+ return x - (x >> 1);
+ }
+
++#if SIZE_MAX != UINT32_MAX
+ // Size_t
+ inline size_t min(size_t a, size_t b)
+ {
+@@ -352,4 +356,5 @@
+ {
+ return min(max(x, a), b);
+ }
++#endif
+ }
diff --git a/testing/theforceengine/path_max.patch b/testing/theforceengine/path_max.patch
new file mode 100644
index 00000000000..36e21875a4a
--- /dev/null
+++ b/testing/theforceengine/path_max.patch
@@ -0,0 +1,13 @@
+Fix compilation on ppc64le, where PATH_MAX is provided only if linux/limits.h
+is included directly.
+
+--- a/TheForceEngine/TFE_FileSystem/fileutil-posix.cpp
++++ b/TheForceEngine/TFE_FileSystem/fileutil-posix.cpp
+@@ -8,6 +8,7 @@
+ #include <strings.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <linux/limits.h>
+ #include <TFE_System/system.h>
+ #include "fileutil.h"
+ #include "filestream.h"
diff --git a/testing/thefuck/APKBUILD b/testing/thefuck/APKBUILD
index 59ad252e9b9..99c8cab3858 100644
--- a/testing/thefuck/APKBUILD
+++ b/testing/thefuck/APKBUILD
@@ -1,16 +1,17 @@
# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=thefuck
-pkgver=3.30
-pkgrel=0
+pkgver=3.32
+pkgrel=3
pkgdesc="The Fuck is a magnificent app that corrects errors in previous console commands."
url="https://github.com/nvbn/thefuck"
arch="noarch"
license="MIT"
depends="py3-colorama py3-six py3-decorator py3-psutil py3-pyte"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="thefuck-$pkgver.tar.gz::https://github.com/nvbn/thefuck/archive/$pkgver.tar.gz
-ash.patch"
+"
check() {
python3 setup.py check
@@ -21,9 +22,9 @@ build() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-
-sha512sums="99b270d0aa535673c09e7e932212af4ded5639fcf30ad0aeedc89a54e94c0a072a37883b1a1a56301efb82ea1c72cf53d4dacf2e83edcafcf4fbaa55ecd35f3a thefuck-3.30.tar.gz
-3750797396d8bd9bc9eaff30caa6d05edcb3f75a44ac2136f489d0c2e4a8d4cb89d74083b4ef5a4affc112c3c825ffa4e5bf0e4f72b9eec066df4f1501b2f3c3 ash.patch"
+sha512sums="
+961b9b6dc374cc0b854698455f688cf110adb21cfebd4cb645eb5f1ce11c14de6699bb4d40de86a5f9461273cbfc2eea318a9d437f803dc578dd431966cf26c1 thefuck-3.32.tar.gz
+"
diff --git a/testing/thefuck/ash.patch b/testing/thefuck/ash.patch
deleted file mode 100644
index 157c9068f03..00000000000
--- a/testing/thefuck/ash.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-This patch replaces the default call to "fc" (which is a builtin
-function in many shells) to a sed command to work on the alpine
-default shell (ash).
-
---- old/thefuck/shells/generic.py
-+++ new/thefuck/shells/generic.py
-@@ -37,7 +37,7 @@
-
- def app_alias(self, alias_name):
- return """alias {0}='eval "$(TF_ALIAS={0} PYTHONIOENCODING=utf-8 """ \
-- """thefuck "$(fc -ln -1)")"'""".format(alias_name)
-+ """thefuck "$(sed -n '\"'x;\\$p'\"' /home/build/.ash_history)")'""".format(alias_name)
-
- def instant_mode_alias(self, alias_name):
- warn("Instant mode not supported by your shell")
diff --git a/testing/thelounge/APKBUILD b/testing/thelounge/APKBUILD
new file mode 100644
index 00000000000..a08de3acb06
--- /dev/null
+++ b/testing/thelounge/APKBUILD
@@ -0,0 +1,81 @@
+# Contributor: Kay Thomas <kaythomas@pm.me>
+# Maintainer: Kay Thomas <kaythomas@pm.me>
+pkgname=thelounge
+pkgver=4.4.1
+pkgrel=0
+pkgdesc="Modern, responsive, cross-platform, self-hosted web IRC client"
+url="https://thelounge.chat"
+# x86: textrels
+# s390x: fails to check
+# riscv64: fails to build
+arch="all !x86 !s390x !riscv64"
+license="MIT"
+depends="nodejs"
+makedepends="yarn npm python3"
+subpackages="$pkgname-openrc"
+pkgusers="thelounge"
+pkggroups="thelounge"
+install="$pkgname.pre-install $pkgname.post-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/thelounge/thelounge/archive/v$pkgver.tar.gz
+ no-version-test.patch
+ thelounge.initd
+ "
+options="net" # npm
+
+prepare() {
+ default_prepare
+
+ yarn install --frozen-lockfile
+}
+
+build() {
+ NODE_ENV=production yarn run build
+}
+
+check() {
+ CI=yes yarn run test:mocha
+}
+
+package() {
+ yarn install --production --ignore-scripts --prefer-offline
+ NODE_ENV=production npm install --unsafe-perm -g --prefix "$pkgdir"/usr
+
+ # Remove incorrect symlink, copy correct files
+ rm "$pkgdir"/usr/lib/node_modules/thelounge
+ mkdir -p "$pkgdir"/usr/lib/node_modules/thelounge
+ cp -a index.js client public node_modules dist package.json "$pkgdir"/usr/lib/node_modules/thelounge/
+
+ # cleanup unused files
+ find "$pkgdir" -type f -a \( \
+ -name "*.ts" \
+ -o -name "webpack*" \
+ -o -name "tsconfig*" \
+ -o -name "babel.config*" \
+ -o -name "README*" \
+ -o -name "CHANGELOG*" \
+ -o -name "*.map" \
+ -o -name "LICENSE" \
+ \) \
+ -delete
+
+ # Set home location
+ echo /var/lib/thelounge > \
+ "$pkgdir"/usr/lib/node_modules/$pkgname/.thelounge_home
+
+ # Add default config
+ # this is only read from 'home' so we have to just put everything in var/lib
+ install -dm755 -o thelounge -g thelounge \
+ "$pkgdir"/var/lib/thelounge
+ install -m644 -o thelounge -g thelounge \
+ "$pkgdir"/usr/lib/node_modules/$pkgname/dist/defaults/config.js \
+ "$pkgdir"/var/lib/thelounge/config.js
+
+ install -Dm755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="
+7695121a713a23688bc6f52dae2574bab1288eea930fd50d4dd85037233e9f23bd8e460980c69cdd14ea8648da4720d84e8196547b6a18e69d2f478b43d6e29a thelounge-4.4.1.tar.gz
+cbf80e23b0af8f0185699d6b03816c645c51b85fff7f163d3cd3d00296ed816b6ab01529b359fbfd549a79e8adb72bbc83bc7a389cf13e0afd50636ff79a138e no-version-test.patch
+f367d27ebcc412ff03c12ae98e50aeae5051fb5ffa9da6220f664c59993ed0e330b55b3b41fe941d546634901163d006e318891b4b886f6c49a93e0888fccd3e thelounge.initd
+"
diff --git a/testing/thelounge/no-version-test.patch b/testing/thelounge/no-version-test.patch
new file mode 100644
index 00000000000..dfae092df1f
--- /dev/null
+++ b/testing/thelounge/no-version-test.patch
@@ -0,0 +1,19 @@
+diff --git a/test/src/helperTest.ts b/test/src/helperTest.ts
+index 2a8ddc8..22f0532 100644
+--- a/test/src/helperTest.ts
++++ b/test/src/helperTest.ts
+@@ -40,14 +40,6 @@ describe("Helper", function () {
+ describe("#getVersion()", function () {
+ const version = Helper.getVersion();
+
+- it("should mention it is served from source code", function () {
+- expect(version).to.include("source");
+- });
+-
+- it("should include a short Git SHA", function () {
+- expect(version).to.match(/\([0-9a-f]{7,11} /);
+- });
+-
+ it("should include a valid semver version", function () {
+ expect(version).to.match(/v[0-9]+\.[0-9]+\.[0-9]+/);
+ });
diff --git a/testing/thelounge/thelounge.initd b/testing/thelounge/thelounge.initd
new file mode 100644
index 00000000000..b10d1c5f8c3
--- /dev/null
+++ b/testing/thelounge/thelounge.initd
@@ -0,0 +1,14 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+name="thelounge"
+command="/usr/bin/thelounge"
+command_args="start"
+command_user="thelounge:thelounge"
+command_background=true
+pidfile="/run/thelounge.pid"
+
+depend() {
+ need net localmount
+ after firewall
+}
diff --git a/testing/thelounge/thelounge.post-install b/testing/thelounge/thelounge.post-install
new file mode 100644
index 00000000000..16517802442
--- /dev/null
+++ b/testing/thelounge/thelounge.post-install
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+cat >&2 <<-EOF
+*
+* The configuration is in /var/lib/thelounge/config.js.
+* To add users, use the cli:
+* doas -u thelounge thelounge ..
+* e.g.
+* doas -u thelounge thelounge add myuser
+*
+EOF
+
+exit 0
diff --git a/testing/thelounge/thelounge.pre-install b/testing/thelounge/thelounge.pre-install
new file mode 100644
index 00000000000..b91b1ef060c
--- /dev/null
+++ b/testing/thelounge/thelounge.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S thelounge 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G thelounge -g thelounge thelounge 2>/dev/null
+
+exit 0
diff --git a/testing/theme.sh/APKBUILD b/testing/theme.sh/APKBUILD
new file mode 100644
index 00000000000..088a7cb4988
--- /dev/null
+++ b/testing/theme.sh/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=theme.sh
+pkgver=1.1.5
+pkgrel=0
+pkgdesc="Script to change the terminal theme"
+url="https://github.com/lemnos/theme.sh"
+arch="noarch"
+license="MIT"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lemnos/theme.sh/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ make all
+}
+
+check() {
+ # Check that is runs okay:
+ ./bin/theme.sh -l > /dev/null
+}
+
+package() {
+ install -Dm 755 bin/theme.sh "$pkgdir/usr/bin/theme.sh"
+ install -Dm 644 LICENSE "$pkgdir/usr/share/licenses/theme.sh/LICENSE"
+}
+
+sha512sums="
+819b6154d70f4539e815072ed7da3c2d413301f4c721721e246331d95ceb0e83fbcdbc8b9853477397a0437519aef461dfed726de4910572fa2d26834d6f1ac1 theme.sh-1.1.5.tar.gz
+"
diff --git a/testing/thermald/APKBUILD b/testing/thermald/APKBUILD
index bc1d45a32a6..e4eac61e00c 100644
--- a/testing/thermald/APKBUILD
+++ b/testing/thermald/APKBUILD
@@ -1,20 +1,18 @@
# Contributor: mellotron <mellotron@tutanota.com>
-# Maintainer:
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
pkgname=thermald
_pkgname=thermal_daemon
-pkgver=2.1
+pkgver=2.5.6
pkgrel=0
pkgdesc="Thermal daemon for IA"
-url="https://github.com/01org/thermal_daemon"
-arch="all !armhf !armv7 !aarch64 !s390x !mips !mips64"
+url="https://github.com/intel/thermal_daemon"
+arch="x86 x86_64"
license="GPL-2.0-or-later"
makedepends="autoconf automake libtool dbus-glib-dev libxml2-dev linux-headers
- autoconf-archive"
+ autoconf-archive gtk-doc upower-dev libevdev-dev"
subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/01org/$_pkgname/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/intel/$_pkgname/archive/v$pkgver.tar.gz
thermald.initd
- no-werror.patch
- ppc64le.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -30,6 +28,7 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
+ --disable-werror \
--localstatedir=/var
make
}
@@ -42,7 +41,7 @@ package() {
"$pkgdir"/etc/init.d/$pkgname
}
-sha512sums="407d743d2799f84cd178e17ef694f0825f03db4ce80a47df95826bc26a9f142b80295905707fcba41bd5268d411a03478cd9d432545f9e2f1394d7d61539e169 thermald-2.1.tar.gz
+sha512sums="
+d039e4bd4ed203caf786c8090c27910b5b5f3886e8e4d160d6347bb2b8c1d6aaaca14958ee91ad4aedb02e67f8a6403805719bf07d55f03fe1f28f3e4378ae73 thermald-2.5.6.tar.gz
ea8964b15fdebc2fb59e93c15b813b93691c2ba01689ac6080f1308a3063b23cba56b4539ccae87575689036f74300a1c22c9b0e77d4ecef9bc08198d7fe4892 thermald.initd
-c93c5dd84d175e3fd513c228fdba75cb9e5268dfbc9f6452e407b7e4561ee0a56f49a816378ac7cba9c81cb6f5ad094dff7ac43c9c0e7fa31ad9b5e4894dfc36 no-werror.patch
-21168079e65253a1f4b762a1d4114400ff77d658f2f0ad4374f964033b9d8a2ec58ba8e65ca949add02945ba682ce8ff6e65ff27bfac6fa21e2d513c3898af0e ppc64le.patch"
+"
diff --git a/testing/thermald/no-werror.patch b/testing/thermald/no-werror.patch
deleted file mode 100644
index ee15300921f..00000000000
--- a/testing/thermald/no-werror.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index d498e50..21653d4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -84,7 +84,6 @@ for flag in \
- -Wall \
- -Wclobbered \
- -Wempty-body \
-- -Werror \
- -Wformat \
- -Wignored-qualifiers \
- -Wmissing-field-initializers \
-
diff --git a/testing/thermald/ppc64le.patch b/testing/thermald/ppc64le.patch
deleted file mode 100644
index 874f5bede1e..00000000000
--- a/testing/thermald/ppc64le.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/src/thd_engine.cpp b/src/thd_engine.cpp
-index 82882dd..51266d3 100644
---- a/src/thd_engine.cpp
-+++ b/src/thd_engine.cpp
-@@ -35,7 +35,9 @@
- #include <errno.h>
- #include <sys/types.h>
- #include <sys/utsname.h>
-+#ifndef __powerpc__
- #include <cpuid.h>
-+#endif
- #include <locale>
- #include "thd_engine.h"
- #include "thd_cdev_therm_sys_fs.h"
-@@ -664,7 +666,7 @@ static supported_ids_t id_table[] = {
- #endif
-
- int cthd_engine::check_cpu_id() {
--#ifndef ANDROID
-+#if !defined(ANDROID) && !defined(__powerpc__)
- // Copied from turbostat program
- unsigned int ebx, ecx, edx, max_level;
- unsigned int fms, family, model, stepping;
-diff --git a/src/thd_engine_default.cpp b/src/thd_engine_default.cpp
-index 3454170..170a148 100644
---- a/src/thd_engine_default.cpp
-+++ b/src/thd_engine_default.cpp
-@@ -795,14 +795,16 @@ void cthd_engine_default::workarounds()
- }
-
- #ifndef ANDROID
-+#ifndef __powerpc__
- #include <cpuid.h>
-+#endif
- #include <sys/mman.h>
- #define BIT_ULL(nr) (1ULL << (nr))
- #endif
-
- void cthd_engine_default::workaround_rapl_mmio_power(void)
- {
--#ifndef ANDROID
-+#if !defined(ANDROID) && !defined(__powerpc__)
- int map_fd;
- void *rapl_mem;
- unsigned char *rapl_pkg_pwr_addr;
-
diff --git a/testing/thonny/APKBUILD b/testing/thonny/APKBUILD
deleted file mode 100644
index 5d9700df202..00000000000
--- a/testing/thonny/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=thonny
-pkgver=3.2.7
-pkgrel=0
-pkgdesc="Python IDE for beginners"
-url="https://thonny.org"
-arch="noarch"
-license="MIT"
-depends="
- openssl
- py3-astroid
- py3-asttokens
- py3-docutils
- py3-jedi
- py3-mypy
- py3-pylint
- py3-pyperclip
- py3-pyserial
- py3-send2trash
- py3-toml
- python3-tkinter
- "
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/t/thonny/thonny-3.2.7.tar.gz"
-options="!check" # Tests need a DISPLAY
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --root="$pkgdir"
-}
-
-sha512sums="0675763a23b635e94a0f01a5646099e338106791b5b61b757740ea8762fdeda2efba4485ffe23a8b3620be573ca5c49f9e3c4c94baf64ca7b45969318d324bc5 thonny-3.2.7.tar.gz"
diff --git a/testing/thumbdrives/APKBUILD b/testing/thumbdrives/APKBUILD
new file mode 100644
index 00000000000..9a368a3edd1
--- /dev/null
+++ b/testing/thumbdrives/APKBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+pkgname=thumbdrives
+pkgver=0.3.2
+pkgrel=0
+pkgdesc="Mass storage and iso emulator"
+url="https://git.sr.ht/~martijnbraam/thumbdrives"
+arch="noarch"
+license="MIT"
+depends="python3 py3-gobject3 py3-xdg py3-setuptools gtk+3.0 libhandy"
+makedepends="glib-dev libhandy-dev meson ninja"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~martijnbraam/thumbdrives/archive/$pkgver.tar.gz"
+options="!check" # There's no testsuite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+1594a303e375ca489fbe671e6917013c6d32239d8dfe325616ba94da81ca95cbe82fe0cb719f91a0f78e1b18d59713048899442749ead0a0cdd29508a0bea1d6 thumbdrives-0.3.2.tar.gz
+"
diff --git a/testing/thunarx-python/APKBUILD b/testing/thunarx-python/APKBUILD
new file mode 100644
index 00000000000..93f01145d73
--- /dev/null
+++ b/testing/thunarx-python/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Saijin-Naib <2107-Saijin-Naib@users.gitlab.alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=thunarx-python
+pkgver=0.5.2
+pkgrel=2
+pkgdesc="Python bindings for the Thunar Extension Framework"
+url="https://wiki.xfce.org/thunarx-python"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="gtk-doc python3-dev py3-gobject3-dev thunar-dev"
+subpackages="$pkgname-doc"
+source="https://archive.xfce.org/src/bindings/thunarx-python/${pkgver%.*}/thunarx-python-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+# Run in-built tests as per the INSTALL instructions
+check() {
+ make check
+ make installcheck
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+sha512sums="
+49d009c84d69f0a1938ed6cb46fe04326c7323edecd79f6d9978ce2306fb95f20c901174f1cea31d5e436c85537efcb79c8613be857a3e4143f7b55b895616b6 thunarx-python-0.5.2.tar.bz2
+"
diff --git a/testing/thunderbird/APKBUILD b/testing/thunderbird/APKBUILD
deleted file mode 100644
index bdedf7a140e..00000000000
--- a/testing/thunderbird/APKBUILD
+++ /dev/null
@@ -1,320 +0,0 @@
-# Contributor: Joseph Benden <joe@benden.us>
-# Maintainer: Joseph Benden <joe@benden.us>
-
-pkgname=thunderbird
-pkgver=68.8.1
-pkgrel=0
-pkgdesc="Thunderbird email client"
-url="https://www.thunderbird.net/"
-arch="all !s390x !armhf !mips !mips64" # limited by rust and cargo. Fails on armhf due to bad assembly
-license="GPL-3.0-or-later AND LGPL-2.1-or-later AND MPL-2.0"
-options="!check !strip"
-depends="
- alsa-lib
- dbus-glib
- ffmpeg
- gtk+3.0
- hunspell
- icu
- libevent
- libjpeg-turbo
- libnotify
- libogg
- libtheora
- libvorbis
- libxcomposite
- libxt
- nspr
- nss
- sqlite
- startup-notification
- "
-makedepends="
- alsa-lib-dev
- autoconf2.13
- automake
- bsd-compat-headers
- bzip2-dev
- cargo
- cbindgen
- clang-dev
- dbus-glib-dev
- ffmpeg-dev
- gtk+2.0-dev
- gtk+3.0-dev
- hunspell-dev
- icu-dev
- libevent-dev
- libidl-dev
- libjpeg-turbo-dev
- libnotify-dev
- libogg-dev
- libtheora-dev
- libtool
- libvorbis-dev
- libxcomposite-dev
- libxt-dev
- llvm-dev
- mesa-dev
- nasm
- nodejs
- nspr-dev
- nss-dev
- nss-static
- python2
- python3-dev
- sed
- sqlite-dev
- startup-notification-dev
- wireless-tools-dev
- yasm
- zip
- "
-source="https://ftp.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz
- stab.h
-
- disable-ccache-stats.patch
- fix-fortify-system-wrappers.patch
- fix-seccomp-bpf.patch
- fix-toolkit.patch
- fix-tools.patch
- mallinfo.patch
-
- disable-moz-stackwalk.patch
- fix-musl.patch
- fix-rust-target.patch
- fix-webrtc-glibcisms.patch
- fix-sandbox-membarrier.patch
- fd6847c9416f9eebde636e21d794d25d1be8791d.patch
-
- thunderbird.desktop
- "
-# secfixes:
-# 68.8.0-r0:
-# - CVE-2020-12387
-# - CVE-2020-12392
-# - CVE-2020-12393
-# - CVE-2020-12395
-# - CVE-2020-12397
-# - CVE-2020-6831
-# 68.7.0-r0:
-# - CVE-2020-6819
-# - CVE-2020-6820
-# - CVE-2020-6821
-# - CVE-2020-6822
-# - CVE-2020-6825
-# 68.6.0-r0:
-# - CVE-2019-20503
-# - CVE-2020-6805
-# - CVE-2020-6806
-# - CVE-2020-6807
-# - CVE-2020-6811
-# - CVE-2020-6812
-# - CVE-2020-6814
-# 68.5.0-r0:
-# - CVE-2020-6793
-# - CVE-2020-6794
-# - CVE-2020-6795
-# - CVE-2020-6797
-# - CVE-2020-6798
-# - CVE-2020-6792
-# - CVE-2020-6800
-
-_mozappdir=/usr/lib/$pkgname
-
-# help our shared-object scanner to find the libs
-ldpath="$_mozappdir"
-sonameprefix="$pkgname:"
-
-# we need this because cargo verifies checksums of all files in vendor
-# crates when it builds and gives us no way to override or update the
-# file sanely... so just clear out the file list
-_clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
-}
-
-prepare() {
- default_prepare
-
- cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
-
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1341234
- mkdir -p "$builddir"/objdir
- echo "ac_add_options BINDGEN_CFLAGS='-I/usr/include/nspr -I/usr/include/pixman-1'" >>objdir/.mozconfig
-
- _clear_vendor_checksums cssparser
-}
-
-build() {
- mkdir -p "$builddir"/objdir
- cd "$builddir"/objdir
-
- sed -e 's/checkImpl/checkFFImpl/g' -i ../js/src/vm/JSContext*.h
-
- export SHELL=/bin/sh
- export BUILD_OFFICIAL=1
- export MOZILLA_OFFICIAL=1
- export USE_SHORT_LIBNAME=1
- export MACH_NO_TERMINAL_FOOTER=1
- # Find our triplet JSON
- export RUST_TARGET="$CTARGET"
- export TERM=ansi-generic
-
- # gcc 6
- export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"
-
- # set rpath so linker finds the libs
- export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir -Wl,--gc-sections"
-
- # ignore compiler warnings
- export CXXFLAGS="$CXXFLAGS -Wno-class-memaccess -Wno-multistatement-macros -Wno-ignored-qualifiers"
- export LDFLAGS="$LDFLAGS -Wno-subobject-linkage"
-
- case "$CARCH" in
- arm*|x86*)
- # disable-elf-hack: exists only on arm, x86, x86_64
- _arch_config="--disable-elf-hack"
- ;;
- esac
-
- # TB doesn't have SIMD available on these arches.
- case "$CARCH" in
- armhf|armv7)
- _rust_simd="--disable-rust-simd"
- _low_mem_flags="--disable-debug-symbols --disable-debug"
- export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0"
- ;;
- x86)
- _low_mem_flags="--disable-debug-symbols --disable-debug"
- export RUSTFLAGS="$RUSTFLAGS -C debuginfo=0"
- ;;
- *) _rust_simd="--enable-rust-simd" ;;
- esac
-
- ../configure \
- --prefix=/usr \
- --libdir=/usr/lib \
- $_arch_config \
- \
- --disable-crashreporter \
- --disable-gold \
- --disable-install-strip \
- --disable-jemalloc \
- --disable-profiling \
- --disable-pulseaudio \
- --disable-strip \
- --disable-tests \
- --disable-updater \
- --disable-debug \
- --disable-debug-symbols \
- \
- --with-distribution-id=org.alpinelinux \
- --enable-alsa \
- --enable-application=comm/mail \
- --enable-default-toolkit=cairo-gtk3 \
- --enable-official-branding \
- --enable-optimize="$CFLAGS -O2 -fno-ident -fmerge-all-constants -ffunction-sections -fdata-sections -Wno-maybe-uninitialized -Wno-implicit-fallthrough -Wno-unused-function" \
- --enable-release \
- --enable-startup-notification \
- --enable-system-ffi \
- --enable-system-sqlite \
- --enable-ffmpeg \
- $_rust_simd \
- $_low_mem_flags \
- --enable-hardening \
- \
- --with-system-bz2 \
- --with-system-icu \
- --with-system-libevent \
- --with-system-nspr \
- --with-system-nss \
- --with-system-pixman \
- --with-system-png \
- --with-system-zlib \
- --without-ccache \
- --with-clang-path=/usr/bin/clang \
- --with-libclang-path=/usr/lib
- # FIXME: fix build with --with-system-libvpx and libvpx 1.8.0
- # https://bugzilla.mozilla.org/show_bug.cgi?id=1525393
- make
-}
-
-package() {
- cd "$builddir"/objdir
-
- DESTDIR="$pkgdir" \
- MOZ_MAKE_FLAGS="$MAKEOPTS" \
- ../mach install
-
- install -m755 -d $pkgdir/usr/share/applications
- install -m755 -d $pkgdir/usr/share/pixmaps
- install -m755 -d $pkgdir/usr/share/icons
- install -m755 -d $pkgdir/usr/share/icons/hicolor
-
- for i in 16 22 24 32 48 64 128 256; do
- install -Dm644 "$builddir"/comm/mail/branding/thunderbird/default$i.png \
- "$pkgdir/usr/share/icons/hicolor/${i}x$i/apps/$pkgname.png"
- done
- install -Dm644 "$builddir"/comm/mail/branding/thunderbird/TB-symbolic.svg \
- "$pkgdir/usr/share/icons/hicolor/symbolic/apps/thunderbird-symbolic.svg"
- install -Dm644 "$builddir"/comm/mail/branding/thunderbird/default48.png \
- $pkgdir/usr/share/pixmaps/$pkgname.png
-
- install -m644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
-
- _vendorjs="$pkgdir/usr/lib/$pkgname/defaults/preferences/vendor.js"
- install -Dm644 /dev/stdin "$_vendorjs" <<END
-// Use LANG environment variable to choose locale
-pref("intl.locale.requested", "");
-
-// Use system-provided dictionaries
-pref("spellchecker.dictionary_path", "/usr/share/hunspell");
-
-// Disable default mailer checking.
-pref("mail.shell.checkDefaultMail", false);
-
-// Don't disable our bundled extensions in the application directory
-pref("extensions.autoDisableScopes", 11);
-pref("extensions.shownSelectionUI", true);
-END
-
- _distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
- install -Dm644 /dev/stdin "$_distini" <<END
-[Global]
-id=alpinelinux
-version=1.0
-about=Mozilla Thunderbird for Alpine Linux
-
-[Preferences]
-app.distributor=alpinelinux
-app.distributor.channel=$pkgname
-app.partner.alpinelinux=alpinelinux
-END
-
- # Install a wrapper to avoid confusion about binary path
- install -Dm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
-#!/bin/sh
-exec /usr/lib/$pkgname/thunderbird "\$@"
-END
-
- # Replace duplicate binary with wrapper
- # https://bugzilla.mozilla.org/show_bug.cgi?id=658850
- ln -snf "$pkgdir/usr/bin/$pkgname" \
- "$pkgdir/usr/lib/$pkgname/thunderbird-bin"
-}
-
-sha512sums="079ab64aa9c7cbb922076bb129082d1de942fc76dad26eaf1348c963268cea830faf7414b115bd8f50f95df6383c1ddbec5cb2c9c8b8f7e57cddd1cb101783bf thunderbird-68.8.1.source.tar.xz
-0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
-3e57b2541f3889a1cf701860c8bf299f294cb077b0e8cfffda271cf02d1f59b25a697485d0df66e847e47f795b1ace54488a84a42851f2f8587717335537b44d disable-ccache-stats.patch
-2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch
-84b84d2d7dbc16002510bf856796ad345ac38ef6d3254670230189bba7c2d4781714d231236d5a3d70129a4597b430c3171644b01ad0f5a5bb13b55d407337a4 fix-seccomp-bpf.patch
-2c65ea7280e6e89826ebad563ee25203a99ff0b4ba8fc60ec261ada6c69874d649c6ac92fcecc6307a6e5a00de27d7956acf944d556ddfadec0411be16f4e0b8 fix-toolkit.patch
-4d55f41d15be7457ad630f8f07e4fc0314c2f75720010b4bbe6a2a7f3228210a1e069949e11795efbe2e784b0762e79fdfe5b8ec38e8a64cb8d9cf3b57dd5af1 fix-tools.patch
-a4a3e062661bda64d502d426c480ac9645345860118de9df9ffe6e0597738c70c11e5cdef2d4fd12c5e2ee30a09310159230524655a419a4f7e4eeeb0f3c06b0 mallinfo.patch
-454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch
-e0df4fc649012f023443ce9165da29d36459dbca5df64a31008b28d96264fba909858de36d0cf1b1cb1aab898342413f0cd77c90ebe21d1f9a0504631d6d1d0e fix-musl.patch
-1bf1f579ced0ca47d156eb45962114f9867cf224c2ba34dfc106227648322ecf729243d2a6e84b72cb011abadc36ed84990960bded764fd4243fc9cb22084ce5 fix-rust-target.patch
-d35cacb9ede80e6bfbef0709823e536dddfb1c02d776275b0b7adb5969e9927d8c6117df96873569c3f3db0a18ee5db24f8086a9311a05077892be43a3dd8d79 fix-webrtc-glibcisms.patch
-f85f2c19c3dafab915bcb40e580fc442fd9eab5916696849edf0b105c758dd807dfe23a6479935613c81496711eb377c73227c03eb8582204c3442a4d0e397a2 fix-sandbox-membarrier.patch
-60845dcb034b2c4459c30f7d5f25c8176cf42df794e2cc0e86c3e2abb6541c24b962f3a16ca70a288d4d6f377b68d00b2904b22463108559612053d835d9bff1 fd6847c9416f9eebde636e21d794d25d1be8791d.patch
-95a2b1deb4f6c90750fdd2bfe8ca0a7879a5b267965091705a6beb0a0a4b1ccad75d11df7b9885543ca4232ff704e975c6946f4c11804cb71c471e06f9576001 thunderbird.desktop"
diff --git a/testing/thunderbird/disable-ccache-stats.patch b/testing/thunderbird/disable-ccache-stats.patch
deleted file mode 100644
index 82ca2aa1cb5..00000000000
--- a/testing/thunderbird/disable-ccache-stats.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/python/mozbuild/mozbuild/controller/building.py 2019-07-03 15:25:28.000000000 +0000
-+++ b/python/mozbuild/mozbuild/controller/building.py 2019-07-17 02:49:12.693079588 +0000
-@@ -940,7 +940,7 @@ class BuildDriver(MozbuildObject):
- warnings_path = self._get_state_filename('warnings.json')
- monitor = self._spawn(BuildMonitor)
- monitor.init(warnings_path)
-- ccache_start = monitor.ccache_stats()
-+ ccache_start = None # monitor.ccache_stats()
- footer = BuildProgressFooter(self.log_manager.terminal, monitor)
-
- # Disable indexing in objdir because it is not necessary and can slow
-@@ -1158,7 +1158,7 @@ class BuildDriver(MozbuildObject):
- if high_finder:
- print(FINDER_SLOW_MESSAGE % finder_percent)
-
-- ccache_end = monitor.ccache_stats()
-+ ccache_end = None # monitor.ccache_stats()
-
- ccache_diff = None
- if ccache_start and ccache_end:
diff --git a/testing/thunderbird/fd6847c9416f9eebde636e21d794d25d1be8791d.patch b/testing/thunderbird/fd6847c9416f9eebde636e21d794d25d1be8791d.patch
deleted file mode 100644
index 1af68d93c62..00000000000
--- a/testing/thunderbird/fd6847c9416f9eebde636e21d794d25d1be8791d.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-See https://bugzilla.mozilla.org/show_bug.cgi?id=1539739
-
-From fd6847c9416f9eebde636e21d794d25d1be8791d Mon Sep 17 00:00:00 2001
-From: Mike Hommey <mh@glandium.org>
-Date: Sat, 1 Jun 2019 09:06:01 +0900
-Subject: [PATCH] Bug 1526653 - Include struct definitions for user_vfp and
- user_vfp_exc.
-
----
- js/src/wasm/WasmSignalHandlers.cpp | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
-index 636537f8478..383c380f04c 100644
---- a/js/src/wasm/WasmSignalHandlers.cpp
-+++ b/js/src/wasm/WasmSignalHandlers.cpp
-@@ -248,7 +248,16 @@ using mozilla::DebugOnly;
- #endif
-
- #ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
--# include <sys/user.h>
-+struct user_vfp {
-+ unsigned long long fpregs[32];
-+ unsigned long fpscr;
-+};
-+
-+struct user_vfp_exc {
-+ unsigned long fpexc;
-+ unsigned long fpinst;
-+ unsigned long fpinst2;
-+};
- #endif
-
- #if defined(ANDROID)
---
-2.20.1
-
diff --git a/testing/thunderbird/fix-fortify-system-wrappers.patch b/testing/thunderbird/fix-fortify-system-wrappers.patch
deleted file mode 100644
index 17cf7e303da..00000000000
--- a/testing/thunderbird/fix-fortify-system-wrappers.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-The wrapper features.h gets pulled in by system headers causing thigns to
-break. We work around it by simply not wrap features.h
-
---- ./config/system-headers.mozbuild.orig
-+++ ./config/system-headers.mozbuild
-@@ -229,7 +229,6 @@
- 'execinfo.h',
- 'extras.h',
- 'fcntl.h',
-- 'features.h',
- 'fenv.h',
- 'ffi.h',
- 'fibdef.h',
diff --git a/testing/thunderbird/fix-musl.patch b/testing/thunderbird/fix-musl.patch
deleted file mode 100644
index 996a45f1301..00000000000
--- a/testing/thunderbird/fix-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/tools/profiler/core/platform-linux-android.cpp 2019-07-09 22:58:30.039475686 +0200
-+++ b/tools/profiler/core/platform-linux-android.cpp 2019-07-09 22:58:39.331437677 +0200
-@@ -73,7 +73,7 @@
-
- int profiler_current_thread_id() {
- // glibc doesn't provide a wrapper for gettid().
--#if defined(__GLIBC__)
-+#if defined(__linux__)
- return static_cast<int>(static_cast<pid_t>(syscall(SYS_gettid)));
- #else
- return static_cast<int>(gettid());
diff --git a/testing/thunderbird/fix-rust-target.patch b/testing/thunderbird/fix-rust-target.patch
deleted file mode 100644
index d2d638b9eae..00000000000
--- a/testing/thunderbird/fix-rust-target.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/build/moz.configure/rust.configure
-+++ b/build/moz.configure/rust.configure
-@@ -278,9 +280,10 @@
- die("Don't know how to translate {} for rustc".format(
- host_or_target.alias))
-
-+ fixed_alias = os.environ['RUST_TARGET']
- # Check to see whether our rustc has a reasonably functional stdlib
- # for our chosen target.
-- target_arg = '--target=' + rustc_target.alias
-+ target_arg = '--target=' + fixed_alias
- in_fd, in_path = mkstemp(prefix='conftest', suffix='.rs')
- out_fd, out_path = mkstemp(prefix='conftest', suffix='.rlib')
- os.close(out_fd)
-@@ -317,7 +320,7 @@
- os.remove(out_path)
-
- # This target is usable.
-- return rustc_target.alias
-+ return fixed_alias
-
- return rust_target
-
diff --git a/testing/thunderbird/fix-sandbox-membarrier.patch b/testing/thunderbird/fix-sandbox-membarrier.patch
deleted file mode 100644
index 4bd3b80d2ab..00000000000
--- a/testing/thunderbird/fix-sandbox-membarrier.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-allow usage of SYS_membarrier, needed since musl-1.1.22
-
-Taken from voidlinux: https://github.com/void-linux/void-packages/commit/4198411ac3b9e2620e171c662df82008da0faebb
-
---- a/security/sandbox/linux/SandboxFilter.cpp
-+++ b/security/sandbox/linux/SandboxFilter.cpp
-@@ -572,6 +572,8 @@
- case __NR_set_tid_address:
- return Allow();
- #endif
-+ case __NR_membarrier:
-+ return Allow();
-
- // prctl
- case __NR_prctl: {
-
---- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
-+++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
-@@ -1385,6 +1385,10 @@
- #define __NR_memfd_create (__NR_SYSCALL_BASE+385)
- #endif
-
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier (__NR_SYSCALL_BASE+389)
-+#endif
-+
- // ARM private syscalls.
- #if !defined(__ARM_NR_BASE)
- #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)
-
---- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
-+++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h
-@@ -1290,5 +1290,9 @@
- #define __NR_memfd_create 319
- #endif
-
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 324
-+#endif
-+
- #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_
-
---- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
-+++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h
-@@ -1490,5 +1490,9 @@
- #define __NR_shutdown 373
- #endif
-
-+#if !defined(__NR_membarrier)
-+#define __NR_membarrier 375
-+#endif
-+
- #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_
-
diff --git a/testing/thunderbird/fix-seccomp-bpf.patch b/testing/thunderbird/fix-seccomp-bpf.patch
deleted file mode 100644
index de7bd175eec..00000000000
--- a/testing/thunderbird/fix-seccomp-bpf.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2018-12-14 08:53:46.083976137 +0000
-+++ b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2018-12-14 08:51:22.084596411 +0000
-@@ -25,6 +25,11 @@
- #include "sandbox/linux/system_headers/linux_seccomp.h"
- #include "sandbox/linux/system_headers/linux_signal.h"
-
-+// musl libc defines siginfo_t __si_fields instead of _sifields
-+#if defined(OS_LINUX) && !defined(__GLIBC__)
-+#define _sifields __si_fields
-+#endif
-+
- namespace {
-
- struct arch_sigsys {
diff --git a/testing/thunderbird/fix-toolkit.patch b/testing/thunderbird/fix-toolkit.patch
deleted file mode 100644
index 414734dfec9..00000000000
--- a/testing/thunderbird/fix-toolkit.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
-index 4222ce3..4d40c6a 100644
---- a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
-+++ b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
-@@ -46,6 +46,7 @@
- #include <sys/mman.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <libgen.h>
-
- #include <iostream>
- #include <set>
-diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
-index 6019fc7..5953e32 100644
---- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
-+++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
-@@ -41,6 +41,10 @@
-
- #include "common/using_std_string.h"
-
-+#ifndef N_UNDF
-+#define N_UNDF 0
-+#endif
-+
- using std::vector;
-
- namespace google_breakpad {
-diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
-index 98ee2dd..d57aa68 100644
---- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
-+++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
-@@ -55,7 +55,7 @@
-
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
--#elif defined(HAVE_A_OUT_H)
-+#elif 0
- #include <a.out.h>
- #endif
-
-diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
-index 93fdad7..f34e5e0 100644
---- a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
-+++ b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
-@@ -1239,6 +1239,12 @@ struct kernel_statfs {
- #ifndef __NR_fallocate
- #define __NR_fallocate 285
- #endif
-+
-+#undef __NR_pread
-+#define __NR_pread __NR_pread64
-+#undef __NR_pwrite
-+#define __NR_pwrite __NR_pwrite64
-+
- /* End of x86-64 definitions */
- #elif defined(__mips__)
- #if _MIPS_SIM == _MIPS_SIM_ABI32
-diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h
-index 79276f7..4c67976 100644
---- a/toolkit/mozapps/update/common/updatedefines.h
-+++ b/toolkit/mozapps/update/common/updatedefines.h
-@@ -87,7 +87,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt,
-
- # ifdef SOLARIS
- # include <sys/stat.h>
--# else
-+# elif !defined(__linux__) || defined(__GLIBC__)
- # include <fts.h>
- # endif
- # include <dirent.h>
-diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp
-index 257ccb4..01314e4 100644
---- a/toolkit/mozapps/update/updater/updater.cpp
-+++ b/toolkit/mozapps/update/updater/updater.cpp
-@@ -3978,6 +3978,7 @@
-
- int add_dir_entries(const NS_tchar* dirpath, ActionList* list) {
- int rv = OK;
-+#if !defined(__linux__) || defined(__GLIBC__)
- FTS* ftsdir;
- FTSENT* ftsdirEntry;
- mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath));
-@@ -4085,6 +4086,7 @@
- }
-
- fts_close(ftsdir);
-+#endif
-
- return rv;
- }
diff --git a/testing/thunderbird/fix-tools.patch b/testing/thunderbird/fix-tools.patch
deleted file mode 100644
index 93b9d19c84f..00000000000
--- a/testing/thunderbird/fix-tools.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
-index 19d0a5c56d..b64b543066 100644
---- a/tools/profiler/core/platform-linux-android.cpp
-+++ b/tools/profiler/core/platform-linux-android.cpp
-@@ -506,8 +506,10 @@ static void PlatformInit(PSLockRef aLock) {}
- ucontext_t sSyncUContext;
-
- void Registers::SyncPopulate() {
-- if (!getcontext(&sSyncUContext)) {
-- PopulateRegsFromContext(*this, &sSyncUContext);
-- }
-+ #if defined(__GLIBC__)
-+ if (!getcontext(&sSyncUContext)) {
-+ PopulateRegsFromContext(*this, &sSyncUContext);
-+ }
-+ #endif
- }
- #endif
-diff --git a/tools/profiler/lul/LulElf.cpp b/tools/profiler/lul/LulElf.cpp
-index 9998d04d0d..348a7086fc 100644
---- a/tools/profiler/lul/LulElf.cpp
-+++ b/tools/profiler/lul/LulElf.cpp
-@@ -469,10 +469,10 @@ string FormatIdentifier(unsigned char identifier[16]) {
- // Return the non-directory portion of FILENAME: the portion after the
- // last slash, or the whole filename if there are no slashes.
- string BaseFileName(const string& filename) {
-- // Lots of copies! basename's behavior is less than ideal.
-- char* c_filename = strdup(filename.c_str());
-- string base = basename(c_filename);
-- free(c_filename);
-+ // basename's behavior is less than ideal so avoid it
-+ const char *c_filename = filename.c_str();
-+ const char *p = strrchr(c_filename, '/');
-+ string base = p ? p+1 : c_filename;
- return base;
- }
-
diff --git a/testing/thunderbird/fix-webrtc-glibcisms.patch b/testing/thunderbird/fix-webrtc-glibcisms.patch
deleted file mode 100644
index 658b076dc8a..00000000000
--- a/testing/thunderbird/fix-webrtc-glibcisms.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2018-05-09 23:48:44.677389171 +0200
-+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2018-05-09 23:48:56.254373557 +0200
-@@ -14,7 +14,7 @@
- #ifndef __GLIBC_PREREQ
- #define __GLIBC_PREREQ(a, b) 0
- #endif
--#if __GLIBC_PREREQ(2, 16)
-+#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
- #include <sys/auxv.h>
- #else
- #include <fcntl.h>
-@@ -32,7 +32,7 @@
- int architecture = 0;
- unsigned long hwcap = 0;
- const char* platform = NULL;
--#if __GLIBC_PREREQ(2, 16)
-+#if !__GLIBC__ || __GLIBC_PREREQ(2, 16)
- hwcap = getauxval(AT_HWCAP);
- platform = (const char*)getauxval(AT_PLATFORM);
- #else
diff --git a/testing/thunderbird/mallinfo.patch b/testing/thunderbird/mallinfo.patch
deleted file mode 100644
index 7916a200ca2..00000000000
--- a/testing/thunderbird/mallinfo.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/xpcom/base/nsMemoryReporterManager.cpp b/xpcom/base/nsMemoryReporterManager.cpp
-index 865e1b5430..9a00dafecb 100644
---- a/xpcom/base/nsMemoryReporterManager.cpp
-+++ b/xpcom/base/nsMemoryReporterManager.cpp
-@@ -124,6 +124,7 @@ static MOZ_MUST_USE nsresult ResidentUniqueDistinguishedAmount(int64_t* aN) {
- return GetProcSelfSmapsPrivate(aN);
- }
-
-+#ifdef __GLIBC__
- # ifdef HAVE_MALLINFO
- # define HAVE_SYSTEM_HEAP_REPORTER 1
- static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
-@@ -143,6 +144,7 @@ static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
- return NS_OK;
- }
- # endif
-+#endif
-
- #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
- defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
diff --git a/testing/thunderbird/thunderbird.desktop b/testing/thunderbird/thunderbird.desktop
deleted file mode 100644
index 210859df015..00000000000
--- a/testing/thunderbird/thunderbird.desktop
+++ /dev/null
@@ -1,64 +0,0 @@
-[Desktop Entry]
-Name=Thunderbird
-GenericName=Mail Client
-GenericName[ast]=Client de correu
-GenericName[ca]=Client de correu
-GenericName[cs]=Poštovní klient
-GenericName[da]=E-postklient
-GenericName[de]=E-Mail-Anwendung
-GenericName[el]=Λογισμικό αλληλογÏαφίας
-GenericName[es]=Cliente de correo
-GenericName[fi]=Sähköpostiohjelma
-GenericName[fr]=Client de messagerie
-GenericName[gl]=Cliente de correo electrónico
-GenericName[he]=לקוח דו×״ל
-GenericName[hr]=Klijent e-pošte
-GenericName[hu]=Levelezőkliens
-GenericName[it]=Client email
-GenericName[ja]=é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆ
-GenericName[ko]=ë©”ì¼ í´ë¼ì´ì–¸íŠ¸
-GenericName[nl]=E-mailprogramma
-GenericName[pl]=Klient poczty
-GenericName[pt_BR]=Cliente de E-mail
-GenericName[ru]=Почтовый клиент
-GenericName[sk]=Poštový klient
-GenericName[ug]=ئÛلخەت دÛتالى
-GenericName[uk]=Поштова програма
-GenericName[vi]=Phần má»m khách quản lý thÆ° Ä‘iện tá»­
-GenericName[zh_CN]=邮件新闻客户端
-GenericName[zh_TW]=郵件用戶端
-Comment=Send and receive mail with Thunderbird
-Comment[ast]=Lleer y escribir corréu electrónicu
-Comment[ca]=Llegiu i escriviu correu
-Comment[cs]=Čtení a psaní pošty
-Comment[da]=Skriv/læs e-post/nyhedsgruppe med Mozilla Thunderbird
-Comment[de]=E-Mails und Nachrichten mit Thunderbird lesen und schreiben
-Comment[el]=Διαβάστε και γÏάψτε γÏάμματα με το Mozilla Thunderbird
-Comment[es]=Lea y escriba correos y noticias con Thunderbird
-Comment[fi]=Lue ja kirjoita sähköposteja
-Comment[fr]=Lire et écrire des courriels
-Comment[gl]=Lea e escriba correo electrónico
-Comment[he]=קרי××”/כתיבה של דו×״ל/חדשות ב×מצעות Mozilla Thunderbird
-Comment[hr]=Čitajte/šaljite e-poštu s Thunderbird
-Comment[hu]=Levelek írása és olvasása a Thunderbirddel
-Comment[it]=Per leggere e scrivere email
-Comment[ja]=メールã®èª­ã¿æ›¸ã
-Comment[ko]=Mozilla Thunderbird ë©”ì¼/뉴스 ì½ê¸° ë° ì“°ê¸° í´ë¼ì´ì–¸íŠ¸
-Comment[nl]=E-mail/nieuws lezen en schrijven met Mozilla Thunderbird
-Comment[pl]=Czytanie i wysyłanie e-maili
-Comment[pt_BR]=Leia e escreva suas mensagens
-Comment[ru]=Читайте и пишите пиÑьма
-Comment[sk]=Čítajte a píšte poštu pomocou programu Thunderbird
-Comment[sv]=Läs och skriv e-post
-Comment[ug]=ئÛلخەت Û‹Û• خەۋەرلەرنى Mozilla Thunderbird دا كۆرۈش Û‹Û• ÙŠÛزىش
-Comment[uk]=Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° напиÑÐ°Ð½Ð½Ñ Ð»Ð¸Ñтів
-Comment[vi]=Äá»c và soạn thÆ° Ä‘iện tá»­
-Comment[zh_CN]=阅读邮件或新闻
-Comment[zh_TW]=以 Mozilla Thunderbird 讀寫郵件或新èž
-Exec=thunderbird %u
-Icon=thunderbird
-Terminal=false
-Type=Application
-MimeType=message/rfc822;x-scheme-handler/mailto;
-StartupNotify=true
-Categories=Network;Email;
diff --git a/testing/tic-80/APKBUILD b/testing/tic-80/APKBUILD
new file mode 100644
index 00000000000..e13125f390b
--- /dev/null
+++ b/testing/tic-80/APKBUILD
@@ -0,0 +1,151 @@
+# Contributor: mio <miyopan@e.email>
+# Maintainer: mio <miyopan@e.email>
+pkgname=tic-80
+pkgver=1.1.2837
+# gitrev is used to insert the correct version hash during build
+_gitrev="be42d6f146cfa520b9b1050feba10cc8c14fb3bd"
+pkgrel=2
+pkgdesc="Fantasy computer for making, playing and sharing tiny games"
+url="https://tic80.com/"
+license="MIT"
+# ppc64le: build failed with libpng.a error
+# riscv64: blocked by janet-dev
+arch="all !ppc64le !riscv64"
+makedepends="
+ cmake
+ curl-dev
+ doxygen
+ freeglut-dev
+ giflib-dev
+ glu-dev
+ http-parser-dev
+ jack-dev
+ janet-dev
+ libpng-dev
+ libuv-dev
+ lua5.3-dev
+ pulseaudio-dev
+ ruby-dev
+ samurai
+ sdl2-dev
+ zlib-dev
+ "
+builddir="$srcdir"/TIC-80-"$pkgver"
+options="!check" # No tests
+
+# Submodules list from https://github.com/nesbox/TIC-80/tree/v$pkgver/vendor
+# moonscript: vendor library contains a required header file
+# mruby: repo mruby-dev errors when building vendor zip (zip.co.o)
+# quickjs: repo quickjs-dev errors when linking lib/tic80_libretro.so
+# sokol: not enabled by default, not included as dependency
+# zip: a minizip fork not directly replaceable by repo zip
+# s7: no gitrev in vendor/, using latest gitrev from upstream
+_argparse_rev="0d5f5d0745df14a3f373f7eed85bf524714f4524"
+_blip_buf_rev="330226d9b55ecbeea644e17b5e0f096a165ca07e"
+_dirent_rev="c885633e126a3a949ec0497273ec13e2c03e862c"
+_lpeg_rev="73d8614a8dea404cf7bfe25a6e4cea7183dc9fb7"
+_moonscript_rev="17179283012b392bff972ad66231d73bfeec6e90"
+_mruby_rev="7fe6f3976eca19a86fe533deb4c60b31cd80a236"
+_msf_gif_rev="7829c8f439d013deeb54eba94761403e1da2a960"
+_naett_rev="10a9624456829e5f2b4c264e14760301125d12eb"
+_pocketpy_rev="7312afdad24bb308037088d34b32ed0078fed7d2"
+_quickjs_rev="b7c0161f2ad1360f0837abafc6abf0edb82c0fa7"
+_s7_rev="60c3805e24d3ace68d8710e26d175c5c5dadcc74"
+_squirrel_rev="9dcf74f99097898dd5a111c4a55b89d1c4d606c0"
+_wasm3_rev="a3abb3f2d320994be59dfbe2cdafa8d0b6a8253e"
+_wren_rev="4a18fc489f9ea3d253b20dd40f4cdad0d6bb40eb"
+_zip_rev="d7df626f3aa457e01669f65e61bf8f484e352941"
+_submodules="
+ argparse-$_argparse_rev
+ blip-buf-$_blip_buf_rev
+ dirent-$_dirent_rev
+ lpeg-$_lpeg_rev
+ moonscript-$_moonscript_rev
+ mruby-$_mruby_rev
+ msf_gif-$_msf_gif_rev
+ naett-$_naett_rev
+ pocketpy-$_pocketpy_rev
+ quickjs-$_quickjs_rev
+ s7-$_s7_rev
+ squirrel-$_squirrel_rev
+ wasm3-$_wasm3_rev
+ wren-$_wren_rev
+ zip-$_zip_rev
+ "
+source="tic-80-$pkgver.tar.gz::https://github.com/nesbox/TIC-80/archive/v$pkgver/tic80-v$pkgver.tar.gz
+ argparse-$_argparse_rev.tar.gz::https://github.com/cofyc/argparse/archive/$_argparse_rev.tar.gz
+ blip-buf-$_blip_buf_rev.tar.gz::https://github.com/nesbox/blip-buf/archive/$_blip_buf_rev.tar.gz
+ dirent-$_dirent_rev.tar.gz::https://github.com/tronkko/dirent/archive/$_dirent_rev.tar.gz
+ lpeg-$_lpeg_rev.tar.gz::https://github.com/nesbox/lpeg/archive/$_lpeg_rev.tar.gz
+ moonscript-$_moonscript_rev.tar.gz::https://github.com/nesbox/moonscript/archive/$_moonscript_rev.tar.gz
+ mruby-$_mruby_rev.tar.gz::https://github.com/mruby/mruby/archive/$_mruby_rev.tar.gz
+ msf_gif-$_msf_gif_rev.tar.gz::https://github.com/notnullnotvoid/msf_gif/archive/$_msf_gif_rev.tar.gz
+ naett-$_naett_rev.tar.gz::https://github.com/erkkah/naett/archive/$_naett_rev.tar.gz
+ pocketpy-$_pocketpy_rev.tar.gz::https://github.com/blueloveTH/pocketpy/archive/$_pocketpy_rev.tar.gz
+ quickjs-$_quickjs_rev.tar.gz::https://github.com/nesbox/quickjs/archive/$_quickjs_rev.tar.gz
+ s7-$_s7_rev.tar.gz::https://cm-gitlab.stanford.edu/bil/s7/-/archive/$_s7_rev.tar.gz
+ squirrel-$_squirrel_rev.tar.gz::https://github.com/albertodemichelis/squirrel/archive/$_squirrel_rev.tar.gz
+ wasm3-$_wasm3_rev.tar.gz::https://github.com/wasm3/wasm3/archive/$_wasm3_rev.tar.gz
+ wren-$_wren_rev.tar.gz::https://github.com/wren-lang/wren/archive/$_wren_rev.tar.gz
+ zip-$_zip_rev.tar.gz::https://github.com/kuba--/zip/archive/$_zip_rev.tar.gz
+ use-repo-deps.patch
+ "
+
+prepare() {
+ default_prepare
+ cd "$srcdir"
+
+ # Copy extracted submodules into the main package source
+ _vendor_dir="$srcdir"/TIC-80-"$pkgver"/vendor/
+ # s7 submodule: replace with upstream version
+ rm -r "$_vendor_dir"/s7
+ for _mod in $_submodules; do
+ _mod_rev=${_mod##*-}
+ _mod_name=$(echo $_mod | sed -e "s/-$_mod_rev//")
+ mv $_mod $_mod_name
+ mv $_mod_name $_vendor_dir
+ done
+
+ # Set version revision for executable to display the correct version
+ _version_rev=${pkgver##*\.}
+ sed -i "s/VERSION_REVISION 0/VERSION_REVISION $_version_rev/" \
+ TIC-80-"$pkgver"/CMakeLists.txt
+}
+
+build() {
+ cmake -B build-tic -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DVERSION_HASH=${_gitrev:0:7} \
+ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
+ cmake --build build-tic
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build-tic
+
+ # Extra tools need manual install
+ for tool in build-tic/bin/*; do
+ install -Dm755 $tool -t "$pkgdir"/usr/bin
+ done
+}
+
+sha512sums="
+9e42924923bf2f1e7b1f6edd54a0f1f8c930f634115f54ff3ae1f2fbeb15b46837598713eb689691d9bff9abed22ef0577e0360f7a2dd453b17fd1f722e35abb tic-80-1.1.2837.tar.gz
+2dba667249c19ec470421327f6cc20f11a168847a99f60db395980c28339a269041a778645355d8ecbac76e1eac0b77c12f3f2fb3573e0e372ccfffdc947ca1c argparse-0d5f5d0745df14a3f373f7eed85bf524714f4524.tar.gz
+69c42cd93cbb640952244c44cdaf75e0808536ca37300912d026c2aedc878b5f105ae109a5eef1a558b1fdc8a692112491515c6813113a007878908224eba5d8 blip-buf-330226d9b55ecbeea644e17b5e0f096a165ca07e.tar.gz
+ce4a2b445073b3bb82d31934ce2d1dcea771723d4cf1778e065cfe787e91128d995cfccc96d860aceb3637f35627dfbf597e423967f08c5ecf855992e9a84581 dirent-c885633e126a3a949ec0497273ec13e2c03e862c.tar.gz
+93956abcafe84d200fab41d54686cbba6ac8eae91292dc4282186543edef8211e2768dab83854b149e21cb0775b1c2ef8fd79b94f3f72a860b9710841c843b2e lpeg-73d8614a8dea404cf7bfe25a6e4cea7183dc9fb7.tar.gz
+05a26627c1a8686d876654751e590c024aa603fff6ff75ed4ed61d499c16c9fef5616222a6dfc5f11aaf9a7ed79786f92e5a15ca8a42fa79c5adba3228f3bdad moonscript-17179283012b392bff972ad66231d73bfeec6e90.tar.gz
+0211031f5ed457d0872f34dc959468c2c6f545c5eb76c878b6fb867df333e5c534e9d311fb8bf30d3c8b2624bcae1e54f92719060faa47211a9883151a19d977 mruby-7fe6f3976eca19a86fe533deb4c60b31cd80a236.tar.gz
+0f02b6ef21372ea744ce46d14072887acfa6b8e67d5b39a8b63b87a15e87f414cb3f4635e0f99f1a037904b65fb68b0186d2904761631ae920c7874b7f0e1bf1 msf_gif-7829c8f439d013deeb54eba94761403e1da2a960.tar.gz
+e17246e5b04120388cfb688bc9bf1895fcd198351b856a4f3da9116ea0091334ffaaca1cdf3a7f6df99c0181037e564c0b2501126617d93d5f37b84f8a6420f7 naett-10a9624456829e5f2b4c264e14760301125d12eb.tar.gz
+392ef1fe0d352c20ec7ede4676d0f1d6236c0d7d5e9db00594a84132b35bdb38d71a7fd09ee42bc5ee6607d882fdf2e31faeaf545f6a986c42b6f6771bd834f9 pocketpy-7312afdad24bb308037088d34b32ed0078fed7d2.tar.gz
+e7d5f7a9a39f4a7f93e8851f5f916e4122bd95c50efe52f864dbc5ec0aee31b76638cdc7d24059e5b6051d0e4021764d97ef37b596115c0991ebfac4274ba95e quickjs-b7c0161f2ad1360f0837abafc6abf0edb82c0fa7.tar.gz
+161c3768c3ce2106e32a1ca86f1e8ef2cc424fb54f03e7fe22856822a1afcebbe69f219677e66ebbb798edcc48e40cbc87d5966d6d5e26c9b17e348542d0ad14 s7-60c3805e24d3ace68d8710e26d175c5c5dadcc74.tar.gz
+0bc2e0842b429854a8f61f2ed0b2261f6af49849f1a90f2fc2aa3578a892b2a97131dcc209eb9c7ceda5544162542a757d4ca091797f0fc0324664f3cfe7fc7e squirrel-9dcf74f99097898dd5a111c4a55b89d1c4d606c0.tar.gz
+e23e24b697c068b27a5aba71dec33d84b5079155344aa52d2997e2267986167df30ee3e264ad8ff40c62ae73b95eb48896b9e8a47bf9904cc23bbae61818e245 wasm3-a3abb3f2d320994be59dfbe2cdafa8d0b6a8253e.tar.gz
+b3d79e9cb647e52db06d5cddfc8c93d05ae0e8d87f0f879ac2b812fcc7f55e018d21d3b04d62eaeb12e6d931b5e43fbe357b187e7f446e86e39be015c51c2eee wren-4a18fc489f9ea3d253b20dd40f4cdad0d6bb40eb.tar.gz
+ebfa73418963010277f112e1e652c8da54994087a1d8095c527f75a799e4d0933e4ff78bdb361cedb1c844b167145fe010c2805a08c2825476f755899eb68fdc zip-d7df626f3aa457e01669f65e61bf8f484e352941.tar.gz
+230712b0d3c42d924bc5f2b05e9c3aeac7ddd1fba4971ce9a43d4f67585cc1c89fba666c3a0c3fb43e227f7410b8cd6cbb9211bc4fcf39b7079c3f8f44ea210c use-repo-deps.patch
+"
diff --git a/testing/tic-80/use-repo-deps.patch b/testing/tic-80/use-repo-deps.patch
new file mode 100644
index 00000000000..cb733d714d7
--- /dev/null
+++ b/testing/tic-80/use-repo-deps.patch
@@ -0,0 +1,315 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -164,51 +164,15 @@
+ # LUA
+ ################################
+
+-set(LUA_DIR ${THIRDPARTY_DIR}/lua)
+-set(LUA_SRC
+- ${LUA_DIR}/lapi.c
+- ${LUA_DIR}/lcode.c
+- ${LUA_DIR}/lctype.c
+- ${LUA_DIR}/ldebug.c
+- ${LUA_DIR}/ldo.c
+- ${LUA_DIR}/ldump.c
+- ${LUA_DIR}/lfunc.c
+- ${LUA_DIR}/lgc.c
+- ${LUA_DIR}/llex.c
+- ${LUA_DIR}/lmem.c
+- ${LUA_DIR}/lobject.c
+- ${LUA_DIR}/lopcodes.c
+- ${LUA_DIR}/lparser.c
+- ${LUA_DIR}/lstate.c
+- ${LUA_DIR}/lstring.c
+- ${LUA_DIR}/ltable.c
+- ${LUA_DIR}/ltm.c
+- ${LUA_DIR}/lundump.c
+- ${LUA_DIR}/lvm.c
+- ${LUA_DIR}/lzio.c
+- ${LUA_DIR}/lauxlib.c
+- ${LUA_DIR}/lbaselib.c
+- ${LUA_DIR}/lcorolib.c
+- ${LUA_DIR}/ldblib.c
+- ${LUA_DIR}/liolib.c
+- ${LUA_DIR}/lmathlib.c
+- ${LUA_DIR}/loslib.c
+- ${LUA_DIR}/lstrlib.c
+- ${LUA_DIR}/ltablib.c
+- ${LUA_DIR}/lutf8lib.c
+- ${LUA_DIR}/loadlib.c
+- ${LUA_DIR}/linit.c
+-)
++# [patch] Use system lua
++find_package(PkgConfig)
++pkg_check_modules(Lua REQUIRED lua5.3 IMPORTED_TARGET GLOBAL)
++add_library(Lua::Lua ALIAS PkgConfig::Lua)
++set(LUA_INCLUDE_DIR "/usr/include/lua5.3")
++set(LUA_LIBRARIES "/usr/lib/lua5.3")
++include_directories(${LUA_INCLUDE_DIR})
++link_directories(${LUA_LIBRARIES})
+
+-add_library(lua STATIC ${LUA_SRC})
+-
+-target_compile_definitions(lua PRIVATE LUA_COMPAT_5_2)
+-target_include_directories(lua INTERFACE ${THIRDPARTY_DIR}/lua)
+-
+-if(N3DS)
+- target_compile_definitions(lua PUBLIC LUA_32BITS)
+-endif()
+-
+ ################################
+ # LPEG
+ ################################
+@@ -421,22 +403,10 @@
+ # GIFLIB
+ ################################
+
+-set(GIFLIB_DIR ${THIRDPARTY_DIR}/giflib)
+-set(GIFLIB_SRC
+- ${GIFLIB_DIR}/dgif_lib.c
+- ${GIFLIB_DIR}/egif_lib.c
+- ${GIFLIB_DIR}/gif_err.c
+- ${GIFLIB_DIR}/gif_font.c
+- ${GIFLIB_DIR}/gif_hash.c
+- ${GIFLIB_DIR}/gifalloc.c
+- ${GIFLIB_DIR}/openbsd-reallocarray.c
+-)
+-add_library(giflib STATIC ${GIFLIB_SRC})
+-target_include_directories(giflib
+- PRIVATE ${GIFLIB_DIR}
+- INTERFACE
+- ${THIRDPARTY_DIR}/giflib
+- ${THIRDPARTY_DIR}/msf_gif)
++# [patch] Use system giflib but include vendor msf_gif encoder
++find_package(GIF)
++set(MSF_GIF_INCLUDE_DIR ${THIRDPARTY_DIR}/msf_gif)
++include_directories(${MSF_GIF_INCLUDE_DIR})
+
+ ################################
+ # Blipbuf
+@@ -484,39 +451,10 @@
+ option(BUILD_WITH_JANET "Janet Enabled" ${BUILD_WITH_JANET_DEFAULT})
+ message("BUILD_WITH_JANET: ${BUILD_WITH_JANET}")
+
++# [patch] Use system janet
+ if(BUILD_WITH_JANET)
+-
+- if(MINGW)
+- find_program(GIT git)
+- get_filename_component(GIT_DIR ${GIT} DIRECTORY)
+- find_program(GITBASH bash PATHS "${GIT_DIR}/../bin" NO_DEFAULT_PATH)
+-
+- if(NOT GITBASH)
+- message(FATAL_ERROR "Git Bash not found!")
+- endif()
+-
+- add_custom_command(
+- OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
+- COMMAND ${GITBASH} -c "CC=gcc mingw32-make build/c/janet.c"
+- WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
+- )
+- elseif(WIN32)
+- add_custom_command(
+- OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
+- COMMAND ./build_win.bat
+- WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
+- )
+- else()
+- add_custom_command(
+- OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
+- COMMAND make build/c/janet.c
+- WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
+- )
+- endif()
+-
+- add_library(janet ${THIRDPARTY_DIR}/janet/build/c/janet.c)
+- target_include_directories(janet PUBLIC ${THIRDPARTY_DIR}/janet/src/include)
+- target_include_directories(janet PUBLIC ${CMAKE_SOURCE_DIR}/build/janet/)
++ set(JANET_INCLUDE_DIR "/usr/include/janet")
++ include_directories(${JANET_INCLUDE_DIR})
+ endif()
+
+ ################################
+@@ -580,7 +518,8 @@
+ scheme
+ quickjs
+ blipbuf
+- zlib
++ # [patch] Fix zlib name
++ z
+ )
+
+ if(BUILD_WITH_MRUBY)
+@@ -593,7 +532,8 @@
+
+ if(${BUILD_DEPRECATED})
+ target_compile_definitions(tic80core${SCRIPT} PRIVATE BUILD_DEPRECATED)
+- target_link_libraries(tic80core${SCRIPT} giflib)
++ # [patch] Fix giflib name
++ target_link_libraries(tic80core${SCRIPT} gif)
+ endif()
+
+ if(LINUX)
+@@ -639,21 +579,12 @@
+ ################################
+ # SDL2
+ ################################
+-if(BUILD_SDL AND NOT EMSCRIPTEN AND NOT RPI)
+
+- if(WIN32)
+- set(HAVE_LIBC TRUE)
+- endif()
+-
+- if(ANDROID)
+- include_directories(${ANDROID_NDK}/sources/android/cpufeatures)
+- set(SDL_STATIC_PIC ON CACHE BOOL "" FORCE)
+- endif()
+-
+- set(SDL_SHARED OFF CACHE BOOL "" FORCE)
+-
+- add_subdirectory(${THIRDPARTY_DIR}/sdl2)
+-
++# [patch] Use system sdl2
++if (BUILD_SDL)
++ find_package(SDL2)
++ set(SDL2_INCLUDE_DIR "/usr/include/SDL2")
++ include_directories(${SDL2_INCLUDE_DIR})
+ endif()
+
+ ################################
+@@ -679,7 +610,8 @@
+ target_link_options(player-sdl PRIVATE -static)
+ endif()
+
+- target_link_libraries(player-sdl tic80core SDL2-static SDL2main)
++ # [patch] Fix sdl2 name
++ target_link_libraries(player-sdl tic80core SDL2 SDL2main)
+ endif()
+
+ ################################
+@@ -820,34 +752,9 @@
+ # ZLIB
+ ################################
+
+-if (NOT N3DS)
++# [patch] Use system zlib
++find_package(ZLIB)
+
+-set(ZLIB_DIR ${THIRDPARTY_DIR}/zlib)
+-set(ZLIB_SRC
+- ${ZLIB_DIR}/adler32.c
+- ${ZLIB_DIR}/compress.c
+- ${ZLIB_DIR}/crc32.c
+- ${ZLIB_DIR}/deflate.c
+- ${ZLIB_DIR}/inflate.c
+- ${ZLIB_DIR}/infback.c
+- ${ZLIB_DIR}/inftrees.c
+- ${ZLIB_DIR}/inffast.c
+- ${ZLIB_DIR}/trees.c
+- ${ZLIB_DIR}/uncompr.c
+- ${ZLIB_DIR}/zutil.c
+-)
+-
+-add_library(zlib STATIC ${ZLIB_SRC})
+-target_include_directories(zlib INTERFACE ${THIRDPARTY_DIR}/zlib)
+-
+-else ()
+-
+-add_library(zlib STATIC IMPORTED)
+-set_target_properties( zlib PROPERTIES IMPORTED_LOCATION ${DEVKITPRO}/portlibs/3ds/lib/libz.a )
+-target_include_directories(zlib INTERFACE ${DEVKITPRO}/portlibs/3ds/include)
+-
+-endif ()
+-
+ ################################
+ # ZIP
+ ################################
+@@ -876,7 +783,8 @@
+ target_link_libraries(wasmp2cart tic80core)
+
+ add_executable(bin2txt ${TOOLS_DIR}/bin2txt.c)
+- target_link_libraries(bin2txt zlib)
++ # [patch] Fix zlib name
++ target_link_libraries(bin2txt z)
+
+ add_executable(xplode
+ ${TOOLS_DIR}/xplode.c
+@@ -993,36 +901,9 @@
+ # PNG
+ ################################
+
+-set(LIBPNG_DIR ${THIRDPARTY_DIR}/libpng)
+-set(LIBPNG_SRC
+- ${LIBPNG_DIR}/png.c
+- ${LIBPNG_DIR}/pngerror.c
+- ${LIBPNG_DIR}/pngget.c
+- ${LIBPNG_DIR}/pngmem.c
+- ${LIBPNG_DIR}/pngpread.c
+- ${LIBPNG_DIR}/pngread.c
+- ${LIBPNG_DIR}/pngrio.c
+- ${LIBPNG_DIR}/pngrtran.c
+- ${LIBPNG_DIR}/pngrutil.c
+- ${LIBPNG_DIR}/pngset.c
+- ${LIBPNG_DIR}/pngtrans.c
+- ${LIBPNG_DIR}/pngwio.c
+- ${LIBPNG_DIR}/pngwrite.c
+- ${LIBPNG_DIR}/pngwtran.c
+- ${LIBPNG_DIR}/pngwutil.c
+-)
++# [patch] Use system libpng
++find_package(PNG)
+
+-configure_file(${LIBPNG_DIR}/scripts/pnglibconf.h.prebuilt ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h)
+-
+-add_library(png STATIC ${LIBPNG_SRC})
+-
+-target_compile_definitions(png PRIVATE PNG_ARM_NEON_OPT=0)
+-
+-target_include_directories(png
+- PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
+- PRIVATE ${THIRDPARTY_DIR}/zlib
+- INTERFACE ${THIRDPARTY_DIR}/libpng)
+-
+ ################################
+ # TIC-80 studio
+ ################################
+@@ -1069,7 +950,8 @@
+
+ target_include_directories(tic80studio PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
+
+-target_link_libraries(tic80studio tic80core zip wave_writer argparse giflib png)
++# [patch] Fix giflib name
++target_link_libraries(tic80studio tic80core zip wave_writer argparse gif png)
+
+ if(USE_NAETT)
+ target_compile_definitions(tic80studio PRIVATE USE_NAETT)
+@@ -1155,7 +1037,8 @@
+ endif()
+
+ if(NOT EMSCRIPTEN)
+- target_link_libraries(sdlgpu SDL2-static)
++ # [patch] Fix sdl2 name
++ target_link_libraries(sdlgpu SDL2)
+ endif()
+
+ endif()
+@@ -1228,7 +1111,8 @@
+ elseif(RPI)
+ target_link_libraries(tic80 libSDL2.a bcm_host)
+ else()
+- target_link_libraries(tic80 SDL2-static)
++ # [patch] Fix sdl2 name
++ target_link_libraries(tic80 SDL2)
+ endif()
+ endif()
+
+@@ -1377,7 +1261,8 @@
+ elseif(RPI)
+ target_link_libraries(tic80${SCRIPT} libSDL2.a bcm_host pthread dl)
+ else()
+- target_link_libraries(tic80${SCRIPT} SDL2-static)
++ # [patch] Fix sdl2 name
++ target_link_libraries(tic80${SCRIPT} SDL2)
+ endif()
+ endif()
+
diff --git a/testing/ticker/APKBUILD b/testing/ticker/APKBUILD
new file mode 100644
index 00000000000..381174fafde
--- /dev/null
+++ b/testing/ticker/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=ticker
+pkgver=4.5.14
+pkgrel=5
+pkgdesc="Terminal stock watcher and stock position tracker"
+url="https://github.com/achannarasappa/ticker"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/achannarasappa/ticker/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # fail presently with current yahoo finance api response
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o bin/ticker \
+ -ldflags "-X github.com/achannarasappa/ticker/cmd.Version=v$pkgver"
+
+ ./bin/ticker completion bash > ticker.bash
+ ./bin/ticker completion zsh > ticker.zsh
+ ./bin/ticker completion fish > ticker.fish
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ install -Dm644 ticker.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/ticker
+ install -Dm644 ticker.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/ticker.fish
+ install -Dm644 ticker.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_ticker
+}
+
+sha512sums="
+ba0ed482c950a6056fd662140e00f6f25d9410dbf150232b9c759ee841020935e1cc2ef51b65892dc2e7e85443b01d448defa08adb103b0409863306d24a972e ticker-4.5.14.tar.gz
+"
diff --git a/testing/tiled/APKBUILD b/testing/tiled/APKBUILD
deleted file mode 100644
index 4ed4c887ee7..00000000000
--- a/testing/tiled/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=tiled
-pkgver=1.3.4
-pkgrel=0
-pkgdesc="powerful tile map editor"
-url="http://mapeditor.org"
-arch="all"
-license="Apache-2.0 AND BSD-2-Clause AND GPL-2.0-only"
-makedepends="qt5-qttools-dev qt5-qtdeclarative-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/bjorn/tiled/archive/v$pkgver.tar.gz"
-options="!check"
-
-build() {
- qmake-qt5 -r INSTALL_HEADERS=yes PREFIX=/usr
- make
-}
-
-package() {
- make install INSTALL_ROOT="$pkgdir"
-}
-
-sha512sums="f78772f74d9f7a241ff9191ed6152f965b7a5342db877fa63a2d84f266d956cb2fa487776cf503db36bc5da9aa825c8bab87e13293e43a129f560020e323bd61 tiled-1.3.4.tar.gz"
diff --git a/testing/tillitis-key1-apps/APKBUILD b/testing/tillitis-key1-apps/APKBUILD
new file mode 100644
index 00000000000..525f5695b7c
--- /dev/null
+++ b/testing/tillitis-key1-apps/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=tillitis-key1-apps
+pkgver=0.0.6
+pkgrel=6
+pkgdesc="Apps and host programs for TKey, the flexible open hardware/software USB security key"
+url="https://www.tillitis.se/"
+arch="all !s390x" # s390x lack lld package
+license="GPL-2.0-only"
+makedepends="go clang llvm lld"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver-1.tar.gz::https://github.com/tillitis/tkey-ssh-agent/archive/refs/tags/v$pkgver.tar.gz
+ runsign.sh.patch
+ fix-cgo.patch
+ "
+builddir="$srcdir/tkey-ssh-agent-$pkgver"
+
+build() {
+ make
+}
+
+package() {
+ install -Dm755 -t "$pkgdir/usr/bin" run* tkey-*
+
+ install -Dm644 -t "$pkgdir/usr/lib/udev/rules.d" system/*.rules
+
+ for app in blink nx random rng_stream signer timer; do
+ install -Dm644 -t "$pkgdir/usr/share/$pkgname/$app" apps/"$app"/app.bin
+ done
+
+ install -Dm644 -t "$pkgdir/usr/share/man/man1" system/tkey-ssh-agent.1
+ install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" README.md
+ install -Dm644 apps/rng_stream/README.md \
+ "$pkgdir/usr/share/doc/$pkgname"/rng_stream_app.md
+}
+
+sha512sums="
+ecf030429ab713aa7a367a038fdc4fb5d376a47602a083d26f3e377fd28fbd075f403faaa1bccc4cc1508809400c29028edd01a70b21f149532848eaf4441f1b tillitis-key1-apps-0.0.6-1.tar.gz
+260b8c636b0244b904b91eafee419d14356b4db6877e1fcdd4b1deda189c1ef93aba8291b8a51282fac39197a5e915caa6d492dfdfebb5a05b822d4d0faa9f25 runsign.sh.patch
+07985e7e035a011e91e8fc9ab2eb970939315b745085babca29d8183c63a4faa9e6dfa1f5c5baf2f7d435300605a3cfca84494b4ef24212756684cbc4798c218 fix-cgo.patch
+"
diff --git a/testing/tillitis-key1-apps/fix-cgo.patch b/testing/tillitis-key1-apps/fix-cgo.patch
new file mode 100644
index 00000000000..6db1f54a42e
--- /dev/null
+++ b/testing/tillitis-key1-apps/fix-cgo.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -64,7 +64,7 @@
+ .PHONY: tkey-ssh-agent
+ tkey-ssh-agent: apps
+ cp -af apps/signer/app.bin cmd/tkey-ssh-agent/app.bin
+- CGO_ENABLED=0 go build -ldflags "-X main.version=$(TKEY_SSH_AGENT_VERSION) -X main.signerAppNoTouch=$(TKEY_SIGNER_APP_NO_TOUCH)" -trimpath ./cmd/tkey-ssh-agent
++ go build -ldflags "-X main.version=$(TKEY_SSH_AGENT_VERSION) -X main.signerAppNoTouch=$(TKEY_SIGNER_APP_NO_TOUCH)" -trimpath ./cmd/tkey-ssh-agent
+
+ .PHONY: clean
+ clean:
diff --git a/testing/tillitis-key1-apps/runsign.sh.patch b/testing/tillitis-key1-apps/runsign.sh.patch
new file mode 100644
index 00000000000..0efd24997aa
--- /dev/null
+++ b/testing/tillitis-key1-apps/runsign.sh.patch
@@ -0,0 +1,11 @@
+As we ship the tkey-runapp and -sign binaries as well as the signer app.bin
+--- a/apps/signer/runsign.sh
++++ b/apps/signer/runsign.sh
+@@ -21,5 +21,5 @@ fi
+ msgf="$1"
+ shift
+
+-./tkey-runapp "$@" apps/signer/app.bin
+-./tkey-sign "$@" "$msgf"
++tkey-runapp "$@" /usr/share/tillitis-key1-apps/signer/app.bin
++tkey-sign "$@" "$msgf"
diff --git a/testing/time/APKBUILD b/testing/time/APKBUILD
index 5ec2845cdfd..ba4e759b81e 100644
--- a/testing/time/APKBUILD
+++ b/testing/time/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Sascha Paunovic <azarus@posteo.net>
pkgname=time
pkgver=1.9
-pkgrel=0
+pkgrel=1
pkgdesc="utility to measure execution time"
url="https://www.gnu.org/software/time/"
arch="all"
diff --git a/testing/timed/0001-Fixes-build.patch b/testing/timed/0001-Fixes-build.patch
deleted file mode 100644
index 5b816f882da..00000000000
--- a/testing/timed/0001-Fixes-build.patch
+++ /dev/null
@@ -1,455 +0,0 @@
-The build system refers to unexisting files, this patch adds these.
-
-This patch is not ready for upstreaming yet.
-It seems to build fine on RPM-based systems, so why it doesn't on Alpine has to be investigated first.
-
-diff --git a/src/server/adaptor.h b/src/server/adaptor.h
-index 76faa2c..65fa2cc 100644
---- a/src/server/adaptor.h
-+++ b/src/server/adaptor.h
-@@ -35,6 +35,7 @@
- #include <QString>
- #include <QDBusAbstractAdaptor>
- #include <QDBusMessage>
-+#include <QDateTime>
-
- #include "../lib/event-io.h"
- #include "../lib/wall-info.h"
-diff --git a/src/server/config.type.cpp b/src/server/config.type.cpp
-new file mode 100644
-index 0000000..790a2c3
---- /dev/null
-+++ b/src/server/config.type.cpp
-@@ -0,0 +1,33 @@
-+#include <iodata-qt5/validator>
-+#include "config.type.h"
-+iodata::validator * etc_timed_rc_validator(){
-+static bool init_done = false ;
-+static iodata::validator A ;
-+static iodata::/*validator::*/record_type record_type1 = { "config_t", vector<iodata::/*validator::*/node*>(10) } ;
-+static iodata::/*validator::*/node_integer node1("queue_threshold_long", 0, 0, 5000) ;
-+static iodata::/*validator::*/node_integer node2("queue_threshold_short", 0, 0, 1000) ;
-+static iodata::/*validator::*/node_bytes node3("data_directory", 0, 0, ".timed") ;
-+static iodata::/*validator::*/node_bytes node4("settings_file", 0, 0, "settings.data") ;
-+static iodata::/*validator::*/node_bytes node5("events_file", 0, 0, "events.data") ;
-+static iodata::/*validator::*/node_bytes node6("default_timezone", 0, 0, "Europe/Helsinki") ;
-+static iodata::/*validator::*/node_integer node7("default_gmt_offset", 0, 0, 7200) ;
-+static iodata::/*validator::*/node_integer node8("voland_ping_retries", 0, 0, 5) ;
-+static iodata::/*validator::*/node_integer node9("voland_ping_sleep", 0, 0, 3000) ;
-+static iodata::/*validator::*/node_integer node10("dialog_discard_threshold", 0, 0, 1440) ;
-+if (not init_done) { init_done = true ;
-+A.set_static() ;
-+record_type1.nodes[0] = &node1 ;
-+record_type1.nodes[1] = &node2 ;
-+record_type1.nodes[2] = &node3 ;
-+record_type1.nodes[3] = &node4 ;
-+record_type1.nodes[4] = &node5 ;
-+record_type1.nodes[5] = &node6 ;
-+record_type1.nodes[6] = &node7 ;
-+record_type1.nodes[7] = &node8 ;
-+record_type1.nodes[8] = &node9 ;
-+record_type1.nodes[9] = &node10 ;
-+A.types["config_t"] = &record_type1 ;
-+}
-+return &A ;
-+}
-+
-diff --git a/src/server/config.type.h b/src/server/config.type.h
-new file mode 100644
-index 0000000..19e45fa
---- /dev/null
-+++ b/src/server/config.type.h
-@@ -0,0 +1,5 @@
-+#ifndef iodata_type_to_cxx_36533611597108116361108110310010049508410010747524756545672528056120841041181141165169122701225010353577311276108891018747
-+#define iodata_type_to_cxx_36533611597108116361108110310010049508410010747524756545672528056120841041181141165169122701225010353577311276108891018747
-+#include <iodata-qt5/validator>
-+iodata::validator * etc_timed_rc_validator() ;
-+#endif
-diff --git a/src/server/customization.type.cpp b/src/server/customization.type.cpp
-new file mode 100644
-index 0000000..cac87d3
---- /dev/null
-+++ b/src/server/customization.type.cpp
-@@ -0,0 +1,23 @@
-+#include <iodata-qt5/validator>
-+#include "customization.type.h"
-+iodata::validator * customization_data_validator(){
-+static bool init_done = false ;
-+static iodata::validator A ;
-+static iodata::/*validator::*/record_type record_type1 = { "customization_t", vector<iodata::/*validator::*/node*>(5) } ;
-+static iodata::/*validator::*/node_bytes node1("format24", 0, 0, "True") ;
-+static iodata::/*validator::*/node_bytes node2("useNitz", 0, 0, "True") ;
-+static iodata::/*validator::*/node_bytes node3("autoTime", 0, 0, "True") ;
-+static iodata::/*validator::*/node_bytes node4("guessTz", 0, 0, "True") ;
-+static iodata::/*validator::*/node_bytes node5("tz", 0, 0, "Europe/Helsinki") ;
-+if (not init_done) { init_done = true ;
-+A.set_static() ;
-+record_type1.nodes[0] = &node1 ;
-+record_type1.nodes[1] = &node2 ;
-+record_type1.nodes[2] = &node3 ;
-+record_type1.nodes[3] = &node4 ;
-+record_type1.nodes[4] = &node5 ;
-+A.types["customization_t"] = &record_type1 ;
-+}
-+return &A ;
-+}
-+
-diff --git a/src/server/customization.type.h b/src/server/customization.type.h
-new file mode 100644
-index 0000000..85a6217
---- /dev/null
-+++ b/src/server/customization.type.h
-@@ -0,0 +1,5 @@
-+#ifndef iodata_type_to_cxx_3653361159710811636788649106102111118575712255688710012010311353120977411580115471047269494690121985674481075775871147349
-+#define iodata_type_to_cxx_3653361159710811636788649106102111118575712255688710012010311353120977411580115471047269494690121985674481075775871147349
-+#include <iodata-qt5/validator>
-+iodata::validator * customization_data_validator() ;
-+#endif
-diff --git a/src/server/queue.type.cpp b/src/server/queue.type.cpp
-new file mode 100644
-index 0000000..c307310
---- /dev/null
-+++ b/src/server/queue.type.cpp
-@@ -0,0 +1,115 @@
-+#include <iodata-qt5/validator>
-+#include "queue.type.h"
-+iodata::validator * events_data_validator(){
-+static bool init_done = false ;
-+static iodata::validator A ;
-+static iodata::/*validator::*/record_type record_type1 = { "action_t", vector<iodata::/*validator::*/node*>(3) } ;
-+static iodata::/*validator::*/record_type record_type2 = { "b_attr_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type3 = { "broken_down_t", vector<iodata::/*validator::*/node*>(5) } ;
-+static iodata::/*validator::*/record_type record_type4 = { "cred_modifier_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type5 = { "credentials_t", vector<iodata::/*validator::*/node*>(3) } ;
-+static iodata::/*validator::*/record_type record_type6 = { "event_queue_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type7 = { "event_t", vector<iodata::/*validator::*/node*>(15) } ;
-+static iodata::/*validator::*/record_type record_type8 = { "key_value_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type9 = { "recurrence_pattern_t", vector<iodata::/*validator::*/node*>(6) } ;
-+static const char *bitmask_list1[] = { NULL } ;
-+static iodata::/*validator::*/node_bitmask node1("flags", 0, 0, iodata::bitmask(0, bitmask_list1)) ;
-+static iodata::/*validator::*/node_record node2("attr", 1, 0, "key_value_t", &record_type8) ;
-+static iodata::/*validator::*/node_record node3("cred_modifier", 1, 0, "cred_modifier_t", &record_type4) ;
-+static iodata::/*validator::*/node_record node4("attr", 1, 0, "key_value_t", &record_type8) ;
-+static iodata::/*validator::*/node_integer node5("year", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node6("month", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node7("day", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node8("hour", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node9("minute", 0, 0, 0) ;
-+static iodata::/*validator::*/node_bytes node10("token", 0, 1, "") ;
-+static iodata::/*validator::*/node_integer node11("accrue", 0, 0, 0) ;
-+static iodata::/*validator::*/node_bytes node12("uid", 0, 0, "nobody") ;
-+static iodata::/*validator::*/node_bytes node13("gid", 0, 0, "nogroup") ;
-+static iodata::/*validator::*/node_bytes node14("tokens", 1, 0, "") ;
-+static iodata::/*validator::*/node_integer node15("next_cookie", 0, 0, 1) ;
-+static iodata::/*validator::*/node_record node16("events", 1, 0, "event_t", &record_type7) ;
-+static iodata::/*validator::*/node_integer node17("cookie", 0, 1, 0) ;
-+static iodata::/*validator::*/node_integer node18("ticker", 0, 0, 0) ;
-+static iodata::/*validator::*/node_record node19("t", 0, 0, "broken_down_t", &record_type3) ;
-+static iodata::/*validator::*/node_bytes node20("tz", 0, 0, "") ;
-+static iodata::/*validator::*/node_record node21("attr", 1, 0, "key_value_t", &record_type8) ;
-+static const char *bitmask_list2[] = { NULL } ;
-+static iodata::/*validator::*/node_bitmask node22("flags", 0, 0, iodata::bitmask(0, bitmask_list2)) ;
-+static iodata::/*validator::*/node_record node23("recrs", 1, 0, "recurrence_pattern_t", &record_type9) ;
-+static iodata::/*validator::*/node_record node24("actions", 1, 0, "action_t", &record_type1) ;
-+static iodata::/*validator::*/node_integer node25("snooze", 1, 0, 0) ;
-+static iodata::/*validator::*/node_record node26("b_attr", 1, 0, "b_attr_t", &record_type2) ;
-+static iodata::/*validator::*/node_integer node27("dialog_time", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node28("tsz_max", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node29("tsz_counter", 0, 0, 0) ;
-+static iodata::/*validator::*/node_record node30("client_creds", 0, 0, "credentials_t", &record_type5) ;
-+static iodata::/*validator::*/node_record node31("cred_modifier", 1, 0, "cred_modifier_t", &record_type4) ;
-+static iodata::/*validator::*/node_bytes node32("key", 0, 0, "") ;
-+static iodata::/*validator::*/node_bytes node33("val", 0, 0, "") ;
-+static const char *bitmask_list3[] = { NULL } ;
-+static iodata::/*validator::*/node_bitmask node34("flags", 0, 0, iodata::bitmask(0, bitmask_list3)) ;
-+static const char *bitmask_list4[] = { "any_mins", NULL } ;
-+static iodata::/*validator::*/node_bitmask node35("mins", 0, 0, iodata::bitmask(0, bitmask_list4)) ;
-+static const char *bitmask_list5[] = { "any_hour", NULL } ;
-+static iodata::/*validator::*/node_bitmask node36("hour", 0, 0, iodata::bitmask(0, bitmask_list5)) ;
-+static const char *bitmask_list6[] = { "any_mday", NULL } ;
-+static iodata::/*validator::*/node_bitmask node37("mday", 0, 0, iodata::bitmask(0, bitmask_list6)) ;
-+static const char *bitmask_list7[] = { "any_wday", NULL } ;
-+static iodata::/*validator::*/node_bitmask node38("wday", 0, 0, iodata::bitmask(0, bitmask_list7)) ;
-+static const char *bitmask_list8[] = { "any_mons", NULL } ;
-+static iodata::/*validator::*/node_bitmask node39("mons", 0, 0, iodata::bitmask(0, bitmask_list8)) ;
-+if (not init_done) { init_done = true ;
-+A.set_static() ;
-+record_type1.nodes[0] = &node1 ;
-+record_type1.nodes[1] = &node2 ;
-+record_type1.nodes[2] = &node3 ;
-+A.types["action_t"] = &record_type1 ;
-+record_type2.nodes[0] = &node4 ;
-+A.types["b_attr_t"] = &record_type2 ;
-+record_type3.nodes[0] = &node5 ;
-+record_type3.nodes[1] = &node6 ;
-+record_type3.nodes[2] = &node7 ;
-+record_type3.nodes[3] = &node8 ;
-+record_type3.nodes[4] = &node9 ;
-+A.types["broken_down_t"] = &record_type3 ;
-+record_type4.nodes[0] = &node10 ;
-+record_type4.nodes[1] = &node11 ;
-+A.types["cred_modifier_t"] = &record_type4 ;
-+record_type5.nodes[0] = &node12 ;
-+record_type5.nodes[1] = &node13 ;
-+record_type5.nodes[2] = &node14 ;
-+A.types["credentials_t"] = &record_type5 ;
-+record_type6.nodes[0] = &node15 ;
-+record_type6.nodes[1] = &node16 ;
-+A.types["event_queue_t"] = &record_type6 ;
-+record_type7.nodes[0] = &node17 ;
-+record_type7.nodes[1] = &node18 ;
-+record_type7.nodes[2] = &node19 ;
-+record_type7.nodes[3] = &node20 ;
-+record_type7.nodes[4] = &node21 ;
-+record_type7.nodes[5] = &node22 ;
-+record_type7.nodes[6] = &node23 ;
-+record_type7.nodes[7] = &node24 ;
-+record_type7.nodes[8] = &node25 ;
-+record_type7.nodes[9] = &node26 ;
-+record_type7.nodes[10] = &node27 ;
-+record_type7.nodes[11] = &node28 ;
-+record_type7.nodes[12] = &node29 ;
-+record_type7.nodes[13] = &node30 ;
-+record_type7.nodes[14] = &node31 ;
-+A.types["event_t"] = &record_type7 ;
-+record_type8.nodes[0] = &node32 ;
-+record_type8.nodes[1] = &node33 ;
-+A.types["key_value_t"] = &record_type8 ;
-+record_type9.nodes[0] = &node34 ;
-+record_type9.nodes[1] = &node35 ;
-+record_type9.nodes[2] = &node36 ;
-+record_type9.nodes[3] = &node37 ;
-+record_type9.nodes[4] = &node38 ;
-+record_type9.nodes[5] = &node39 ;
-+A.types["recurrence_pattern_t"] = &record_type9 ;
-+}
-+return &A ;
-+}
-+
-diff --git a/src/server/queue.type.h b/src/server/queue.type.h
-new file mode 100644
-index 0000000..aeb4a6a
---- /dev/null
-+++ b/src/server/queue.type.h
-@@ -0,0 +1,5 @@
-+#ifndef iodata_type_to_cxx_365336115971081163699676812048721149972120559810779841095611711010510311310371579971775271102888690508111211551651205047
-+#define iodata_type_to_cxx_365336115971081163699676812048721149972120559810779841095611711010510311310371579971775271102888690508111211551651205047
-+#include <iodata-qt5/validator>
-+iodata::validator * events_data_validator() ;
-+#endif
-diff --git a/src/server/server.pro b/src/server/server.pro
-index 3bec0c7..3b00d76 100644
---- a/src/server/server.pro
-+++ b/src/server/server.pro
-@@ -10,7 +10,7 @@ VERSION = $$(TIMED_VERSION)
- INCLUDEPATH += ../h
-
- QMAKE_LIBDIR_FLAGS += -L../lib -L../voland
--LIBS += -ltimed-qt5 -ltimed-voland-qt5
-+LIBS += -ltimed-qt5 -ltimed-voland-qt5 -liodata-qt5
-
- IODATA_TYPES = queue.type config.type settings.type customization.type tzdata.type
-
-@@ -70,7 +70,13 @@ SOURCES += \
- ofonomodemmanager.cpp \
- modemwatcher.cpp \
- ofonoconstants.cpp \
-- ntpcontroller.cpp
-+ ntpcontroller.cpp \
-+ config.type.cpp \
-+ customization.type.cpp \
-+ queue.type.cpp \
-+ settings.type.cpp \
-+ timed-cust-rc.type.cpp \
-+ tzdata.type.cpp
-
- SOURCES += credentials.cpp
- HEADERS += credentials.h
-diff --git a/src/server/settings.type.cpp b/src/server/settings.type.cpp
-new file mode 100644
-index 0000000..2a85916
---- /dev/null
-+++ b/src/server/settings.type.cpp
-@@ -0,0 +1,59 @@
-+#include <iodata-qt5/validator>
-+#include "settings.type.h"
-+iodata::validator * settings_data_validator(){
-+static bool init_done = false ;
-+static iodata::validator A ;
-+static iodata::/*validator::*/record_type record_type1 = { "empty_t", vector<iodata::/*validator::*/node*>(0) } ;
-+static iodata::/*validator::*/record_type record_type2 = { "generic_zone_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type3 = { "key_int_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type4 = { "manual_offset_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type5 = { "settings_t", vector<iodata::/*validator::*/node*>(15) } ;
-+static iodata::/*validator::*/node_bytes node1("value", 0, 0, "[unknown]") ;
-+static iodata::/*validator::*/node_bytes node2("key", 0, 1, "") ;
-+static iodata::/*validator::*/node_integer node3("value", 0, 0, 0) ;
-+static iodata::/*validator::*/node_integer node4("value", 0, 0, -1) ;
-+static iodata::/*validator::*/node_integer node5("time_nitz", 0, 0, -1) ;
-+static iodata::/*validator::*/node_integer node6("local_cellular", 0, 0, -1) ;
-+static iodata::/*validator::*/node_integer node7("format_24", 0, 0, -1) ;
-+static iodata::/*validator::*/node_integer node8("auto_dst", 0, 0, 1) ;
-+static iodata::/*validator::*/node_record node9("manual_utc", 0, 0, "empty_t", &record_type1) ;
-+static iodata::/*validator::*/node_record node10("nitz_utc", 0, 0, "empty_t", &record_type1) ;
-+static iodata::/*validator::*/node_record node11("gps_utc", 0, 0, "empty_t", &record_type1) ;
-+static iodata::/*validator::*/node_record node12("ntp_utc", 0, 0, "empty_t", &record_type1) ;
-+static iodata::/*validator::*/node_record node13("manual_offset", 0, 0, "manual_offset_t", &record_type4) ;
-+static iodata::/*validator::*/node_record node14("nitz_offset", 0, 0, "empty_t", &record_type1) ;
-+static iodata::/*validator::*/node_record node15("manual_zone", 0, 0, "generic_zone_t", &record_type2) ;
-+static iodata::/*validator::*/node_record node16("cellular_zone", 0, 0, "generic_zone_t", &record_type2) ;
-+static iodata::/*validator::*/node_integer node17("default_snooze", 0, 0, 300) ;
-+static iodata::/*validator::*/node_record node18("app_snooze", 1, 0, "key_int_t", &record_type3) ;
-+static iodata::/*validator::*/node_integer node19("alarms", 0, 0, 1) ;
-+if (not init_done) { init_done = true ;
-+A.set_static() ;
-+A.types["empty_t"] = &record_type1 ;
-+record_type2.nodes[0] = &node1 ;
-+A.types["generic_zone_t"] = &record_type2 ;
-+record_type3.nodes[0] = &node2 ;
-+record_type3.nodes[1] = &node3 ;
-+A.types["key_int_t"] = &record_type3 ;
-+record_type4.nodes[0] = &node4 ;
-+A.types["manual_offset_t"] = &record_type4 ;
-+record_type5.nodes[0] = &node5 ;
-+record_type5.nodes[1] = &node6 ;
-+record_type5.nodes[2] = &node7 ;
-+record_type5.nodes[3] = &node8 ;
-+record_type5.nodes[4] = &node9 ;
-+record_type5.nodes[5] = &node10 ;
-+record_type5.nodes[6] = &node11 ;
-+record_type5.nodes[7] = &node12 ;
-+record_type5.nodes[8] = &node13 ;
-+record_type5.nodes[9] = &node14 ;
-+record_type5.nodes[10] = &node15 ;
-+record_type5.nodes[11] = &node16 ;
-+record_type5.nodes[12] = &node17 ;
-+record_type5.nodes[13] = &node18 ;
-+record_type5.nodes[14] = &node19 ;
-+A.types["settings_t"] = &record_type5 ;
-+}
-+return &A ;
-+}
-+
-diff --git a/src/server/settings.type.h b/src/server/settings.type.h
-new file mode 100644
-index 0000000..b9f714c
---- /dev/null
-+++ b/src/server/settings.type.h
-@@ -0,0 +1,5 @@
-+#ifndef iodata_type_to_cxx_365336115971081163666995311270727910611411411610510212256121100122102102108106881131027886118102116768979491097256122728512211253
-+#define iodata_type_to_cxx_365336115971081163666995311270727910611411411610510212256121100122102102108106881131027886118102116768979491097256122728512211253
-+#include <iodata-qt5/validator>
-+iodata::validator * settings_data_validator() ;
-+#endif
-diff --git a/src/server/timed-cust-rc.type.cpp b/src/server/timed-cust-rc.type.cpp
-new file mode 100644
-index 0000000..4c00f02
---- /dev/null
-+++ b/src/server/timed-cust-rc.type.cpp
-@@ -0,0 +1,25 @@
-+#include <iodata-qt5/validator>
-+#include "timed-cust-rc.type.h"
-+iodata::validator * foo(){
-+static bool init_done = false ;
-+static iodata::validator A ;
-+static iodata::/*validator::*/record_type record_type1 = { "const_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type2 = { "timed_cust_rc_t", vector<iodata::/*validator::*/node*>(4) } ;
-+static iodata::/*validator::*/node_bytes node1("rc_location", 0, 0, "/etc/timed-cust.rc") ;
-+static iodata::/*validator::*/node_bytes node2("time_nitz", 0, 0, "yes") ;
-+static iodata::/*validator::*/node_bytes node3("format_24", 0, 0, "r") ;
-+static iodata::/*validator::*/node_bytes node4("default_tz", 0, 0, "327") ;
-+static iodata::/*validator::*/node_bytes node5("hash", 0, 0, "") ;
-+if (not init_done) { init_done = true ;
-+A.set_static() ;
-+record_type1.nodes[0] = &node1 ;
-+A.types["const_t"] = &record_type1 ;
-+record_type2.nodes[0] = &node2 ;
-+record_type2.nodes[1] = &node3 ;
-+record_type2.nodes[2] = &node4 ;
-+record_type2.nodes[3] = &node5 ;
-+A.types["timed_cust_rc_t"] = &record_type2 ;
-+}
-+return &A ;
-+}
-+
-diff --git a/src/server/timed-cust-rc.type.h b/src/server/timed-cust-rc.type.h
-new file mode 100644
-index 0000000..105e4a9
---- /dev/null
-+++ b/src/server/timed-cust-rc.type.h
-@@ -0,0 +1,5 @@
-+#ifndef iodata_type_to_cxx_36533611597108116368011599807010649105105698254817310669119488253122761187875110121101100114764965104578410911453886910253
-+#define iodata_type_to_cxx_36533611597108116368011599807010649105105698254817310669119488253122761187875110121101100114764965104578410911453886910253
-+#include <iodata-qt5/validator>
-+iodata::validator * foo() ;
-+#endif
-diff --git a/src/server/tzdata.type.cpp b/src/server/tzdata.type.cpp
-new file mode 100644
-index 0000000..65f7d72
---- /dev/null
-+++ b/src/server/tzdata.type.cpp
-@@ -0,0 +1,53 @@
-+#include <iodata-qt5/validator>
-+#include "tzdata.type.h"
-+iodata::validator * tzdata_validator(){
-+static bool init_done = false ;
-+static iodata::validator A ;
-+static iodata::/*validator::*/record_type record_type1 = { "country_record_t", vector<iodata::/*validator::*/node*>(3) } ;
-+static iodata::/*validator::*/record_type record_type2 = { "mcc_country_pair_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type3 = { "mcc_to_xy_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type4 = { "tz_distinct_info_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type5 = { "tz_distinct_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type6 = { "tz_single_info_t", vector<iodata::/*validator::*/node*>(2) } ;
-+static iodata::/*validator::*/record_type record_type7 = { "tz_single_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/record_type record_type8 = { "zones_by_country_t", vector<iodata::/*validator::*/node*>(1) } ;
-+static iodata::/*validator::*/node_bytes node1("xy", 0, 1, "") ;
-+static iodata::/*validator::*/node_bytes node2("major", 1, 1, "") ;
-+static iodata::/*validator::*/node_bytes node3("minor", 1, 1, "") ;
-+static iodata::/*validator::*/node_integer node4("mcc", 0, 1, 0) ;
-+static iodata::/*validator::*/node_bytes node5("country", 0, 1, "") ;
-+static iodata::/*validator::*/node_record node6("mcc_to_xy", 1, 1, "mcc_country_pair_t", &record_type2) ;
-+static iodata::/*validator::*/node_integer node7("mcc", 0, 1, 0) ;
-+static iodata::/*validator::*/node_bytes node8("tz", 1, 1, "") ;
-+static iodata::/*validator::*/node_record node9("list", 1, 1, "tz_distinct_info_t", &record_type4) ;
-+static iodata::/*validator::*/node_integer node10("mcc", 0, 1, 0) ;
-+static iodata::/*validator::*/node_bytes node11("tz", 0, 1, "") ;
-+static iodata::/*validator::*/node_record node12("list", 1, 1, "tz_single_info_t", &record_type6) ;
-+static iodata::/*validator::*/node_record node13("xy_to_tz", 1, 1, "country_record_t", &record_type1) ;
-+if (not init_done) { init_done = true ;
-+A.set_static() ;
-+record_type1.nodes[0] = &node1 ;
-+record_type1.nodes[1] = &node2 ;
-+record_type1.nodes[2] = &node3 ;
-+A.types["country_record_t"] = &record_type1 ;
-+record_type2.nodes[0] = &node4 ;
-+record_type2.nodes[1] = &node5 ;
-+A.types["mcc_country_pair_t"] = &record_type2 ;
-+record_type3.nodes[0] = &node6 ;
-+A.types["mcc_to_xy_t"] = &record_type3 ;
-+record_type4.nodes[0] = &node7 ;
-+record_type4.nodes[1] = &node8 ;
-+A.types["tz_distinct_info_t"] = &record_type4 ;
-+record_type5.nodes[0] = &node9 ;
-+A.types["tz_distinct_t"] = &record_type5 ;
-+record_type6.nodes[0] = &node10 ;
-+record_type6.nodes[1] = &node11 ;
-+A.types["tz_single_info_t"] = &record_type6 ;
-+record_type7.nodes[0] = &node12 ;
-+A.types["tz_single_t"] = &record_type7 ;
-+record_type8.nodes[0] = &node13 ;
-+A.types["zones_by_country_t"] = &record_type8 ;
-+}
-+return &A ;
-+}
-+
-diff --git a/src/server/tzdata.type.h b/src/server/tzdata.type.h
-new file mode 100644
-index 0000000..4a2e83b
---- /dev/null
-+++ b/src/server/tzdata.type.h
-@@ -0,0 +1,5 @@
-+#ifndef iodata_type_to_cxx_36533611597108116361031117710974501117811888881171217311611611669711187210849114110110759797717767100113100831164710747669855
-+#define iodata_type_to_cxx_36533611597108116361031117710974501117811888881171217311611611669711187210849114110110759797717767100113100831164710747669855
-+#include <iodata-qt5/validator>
-+iodata::validator * tzdata_validator() ;
-+#endif
diff --git a/testing/timed/APKBUILD b/testing/timed/APKBUILD
deleted file mode 100644
index 39d2caaa199..00000000000
--- a/testing/timed/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=timed
-pkgver=3.6.6
-pkgrel=0
-pkgdesc="The time daemon manages system time, timezone and settings, executing actions at given time and managing the event queue"
-url="https://git.sailfishos.org/mer-core/profiled"
-arch="all"
-license="LGPL-2.1-only"
-depends_dev="libiodata-dev elogind-dev sailfish-access-control"
-makedepends="$depends_dev qt5-qtbase-dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/timed/-/archive/$pkgver/timed-$pkgver.tar.gz
- 0001-Fixes-build.patch
- "
-
-prepare() {
- default_prepare
-
- # The build system refers to qmacro.h in a different location
- # Taken from upstream RPM packaging
- mkdir -p src/h/timed-qt5
- ln -f src/lib/qmacro.h src/h/timed-qt5/qmacro.h
-}
-
-build() {
- qmake-qt5 -recursive
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-
- # Remove installed tests
- rm -r "$pkgdir"/opt
-}
-
-sha512sums="d6d9c7cd27084c10a2da8afa1985041e41d093875e54c22d1b2dbe210309387e6773645a8e827b335dd215e96f4e34013017bacfbb05828d08e2cfdbcf124cfb timed-3.6.6.tar.gz
-a53958ea2a3b8cd2f0ffa9e1b53b90657a8e638878292fe294d1745c31ee7c8b159010723ceea9164450453dbb208adfd58f97578adf750292df86b8c3c4a772 0001-Fixes-build.patch"
diff --git a/testing/timescaledb/APKBUILD b/testing/timescaledb/APKBUILD
deleted file mode 100644
index d1ff0d3e812..00000000000
--- a/testing/timescaledb/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: wener <wenermail@gmail.com>
-# Maintainer: wener <wenermail@gmail.com>
-pkgname=timescaledb
-pkgver=1.7.0
-pkgrel=0
-pkgdesc="An open-source database designed to make SQL scalable for time-series data"
-url="https://github.com/timescale/timescaledb"
-arch=""
-license="Apache-2.0"
-makedepends="postgresql-dev cmake bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/timescale/timescaledb/archive/$pkgver.tar.gz"
-
-build() {
- # REGRESS_CHECKS=OFF - disable regress test
- # regress need https://github.com/timescale/timescaledb/blob/master/test/pg_isolation_regress.sh
- # which need to compile pg - https://github.com/timescale/timescaledb/issues/1655#issuecomment-578683986
- BUILD_FORCE_REMOVE=true ./bootstrap -DREGRESS_CHECKS=OFF
- make -C build USE-PGXS=1
-}
-
-check() {
- make -C build test
-}
-
-package() {
- make -C build USE_PGXS=1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="532398ed5332faa10c5b3b6b983fc82c3f14bac8a3e5fdca6db41cceaf07bf6aa9e0d5042de0120881da82f2fe5286c23aadbae33d04dd45dc169a926645120d timescaledb-1.7.0.tar.gz"
diff --git a/testing/timeshift/APKBUILD b/testing/timeshift/APKBUILD
new file mode 100644
index 00000000000..6b1a14c64c4
--- /dev/null
+++ b/testing/timeshift/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Robin Candau <robincandau@protonmail.com>
+# Maintainer: Robin Candau <robincandau@protonmail.com>
+pkgname=timeshift
+pkgver=24.01.1
+pkgrel=0
+pkgdesc="A system restore utility for Linux"
+url="https://github.com/linuxmint/timeshift"
+arch="all"
+license="GPL-2.0-or-later"
+depends="rsync cronie which xhost"
+makedepends="help2man meson vala gtk+3.0-dev json-glib-dev vte3-dev libgee-dev xapp-dev"
+subpackages="$pkgname-doc $pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/timeshift/archive/refs/tags/$pkgver.tar.gz"
+
+build() {
+ meson setup --prefix=/usr --buildtype=plain "$srcdir/$pkgname-$pkgver" build
+ meson compile -C build
+}
+
+check() {
+ meson test -C build
+}
+
+package() {
+ meson install -C build --destdir "$pkgdir"
+}
+
+sha512sums="
+9a370f62a07912cc73cff981c87f56ba14b4179890d4b7293866a5c72b8611b6490def4ffee0ea7fc6c3424f581e2adc08d456d9341a2ae8a87241d2f2c871e1 timeshift-24.01.1.tar.gz
+"
diff --git a/testing/timew/APKBUILD b/testing/timew/APKBUILD
index 15269638713..20ced67de17 100644
--- a/testing/timew/APKBUILD
+++ b/testing/timew/APKBUILD
@@ -1,25 +1,37 @@
# Contributor: Matthieu Monnier <matthieu.monnier@enalean.com>
# Maintainer: Matthieu Monnier <matthieu.monnier@enalean.com>
pkgname=timew
-pkgver=1.3.0
-pkgrel=0
-pkgdesc="Timewarrior is a command line time tracking application."
+pkgver=1.4.3
+pkgrel=1
+pkgdesc="Timewarrior is a command line time tracking application"
options="!check" # No testsuite
url="https://taskwarrior.org/"
arch="all"
license="MIT"
-makedepends="cmake"
-subpackages="$pkgname-doc"
-source="https://github.com/GothenburgBitFactory/timewarrior/releases/download/v$pkgver/timew-$pkgver.tar.gz"
-
+makedepends="cmake asciidoctor"
+subpackages="$pkgname-doc $pkgname-bash-completion"
+source="https://github.com/GothenburgBitFactory/timewarrior/releases/download/v$pkgver/timew-$pkgver.tar.gz
+ fix-man-install.patch
+ "
build() {
- cmake . -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr
- make
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm644 completion/timew-completion.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/timew
}
-sha512sums="38bf44c83d2315155ee43085957824db69d9501abf2cf0bdf51636169043d82b701ebfac3176bc1dfc0186abb7db7a3a40111968c85597e7edb73c66083f0ab0 timew-1.3.0.tar.gz"
+sha512sums="
+89c98ad19d3a5ab5d4e02819d79e553cca4e93da99ec02bbf845b96b421cd084f6786de160e90c97854b50da49448472e9a4c7d23e75c8a93ecd67dda768b24a timew-1.4.3.tar.gz
+90715b4319599118c50fe388ef9d778698e4e3024a4c7fe1d5392d21fa96b96bde6472213abf0a22dd4b50b8f98eec550ba201a79fbdf1e5c5c1170756d812c8 fix-man-install.patch
+"
diff --git a/testing/timew/fix-man-install.patch b/testing/timew/fix-man-install.patch
new file mode 100644
index 00000000000..f3d57d4f2b2
--- /dev/null
+++ b/testing/timew/fix-man-install.patch
@@ -0,0 +1,20 @@
+--- a/doc/man1/CMakeLists.txt
++++ b/doc/man1/CMakeLists.txt
+@@ -16,6 +16,6 @@
+
+ add_custom_target (man1 DEPENDS ${DOC_FILES})
+
+-install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION ${TIMEW_MANDIR}
+ FILES_MATCHING PATTERN "*.1")
+--- a/doc/man7/CMakeLists.txt
++++ b/doc/man7/CMakeLists.txt
+@@ -16,6 +16,6 @@
+
+ add_custom_target (man7 DEPENDS ${DOC_FILES})
+
+-install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION ${TIMEW_MANDIR}
+ FILES_MATCHING PATTERN "*.7")
diff --git a/testing/timewarrior/APKBUILD b/testing/timewarrior/APKBUILD
new file mode 100644
index 00000000000..98ed7d1933b
--- /dev/null
+++ b/testing/timewarrior/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=timewarrior
+pkgver=1.7.1
+pkgrel=0
+pkgdesc="command line time tracking and reporting"
+url="https://timewarrior.net"
+arch="all"
+license="MIT"
+depends="python3"
+makedepends="cmake asciidoctor samurai"
+checkdepends="py3-dateutil mandoc"
+subpackages="$pkgname-doc"
+source="timewarrior-v$pkgver.tar.gz::https://github.com/GothenburgBitFactory/timewarrior/releases/download/v$pkgver/timew-$pkgver.tar.gz"
+builddir="$srcdir/timew-$pkgver"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+check() {
+ ninja -C build test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ # install the refresh holiday scripts in /usr/bin/ for user convenience
+ chmod 755 "$pkgdir/usr/share/doc/timew/holidays/refresh"
+ ln -s /usr/share/doc/timew/holidays/refresh "$pkgdir/usr/bin/timew-refresh-holidays"
+
+ # remove useless man pages
+ rm -r "$pkgdir"/usr/share/man/
+}
+
+sha512sums="
+f28f6c47cc05d8055cc3fae9e96d1936554c685090a40f8af1995e5357947cb9bdfab0ec091f68693a566a876e06eda502de074900f7368a913e85d7e4cf87f1 timewarrior-v1.7.1.tar.gz
+"
diff --git a/testing/timg/APKBUILD b/testing/timg/APKBUILD
deleted file mode 100644
index f89fa30ed4f..00000000000
--- a/testing/timg/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=timg
-pkgver=0.9.5
-pkgrel=0
-pkgdesc="24-Bit color image viewer for terminal"
-url="https://github.com/hzeller/timg"
-arch="all"
-options="!check" # package doesn't have test
-license="GPL-2.0-only"
-makedepends="libwebp-dev graphicsmagick-dev freetype-dev xz-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hzeller/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"/src
-
-build() {
- cd "$builddir"
- make
-}
-
-check() {
- cd "$builddir"
-}
-
-package() {
- cd "$builddir"
- install -Dm755 timg "$pkgdir"/usr/bin/timg
-}
-
-sha512sums="993bdaf80f05fa7e7961d6f4fc5847313a679934750e0b38c78d3f3ad9ebe54d9b67b580a085734626ae43da58b33f2b2a0dcba203e00235095be667a4c01657 timg-0.9.5.tar.gz"
diff --git a/testing/tintin/APKBUILD b/testing/tintin/APKBUILD
new file mode 100644
index 00000000000..8e08f4dcfd7
--- /dev/null
+++ b/testing/tintin/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Lazy Walker <lazywalkerz@gmail.com>
+# Maintainer: Lazy Walker <lazywalkerz@gmail.com>
+pkgname=tintin
+pkgver=2.02.31
+pkgrel=0
+pkgdesc="TinTin++ (aka tt++) is a free Mud client with features an advanced automapper, scripting language and VT100 interface."
+url="https://tintin.mudhalla.net"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="zlib-dev gnutls-dev pcre-dev"
+source="https://downloads.sf.net/tintin/tintin-$pkgver.tar.gz"
+builddir="$srcdir/tt/src"
+options="!check"
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+2084ac8903ded8ce7e24b6e3eb07cc0cd2c768113274a342042ae4d5ad3fb4a2e60702cba6efbd879c19e808648d20cbc4aaea1ecd808d7a5d0ca0b1493baaf5 tintin-2.02.31.tar.gz
+"
diff --git a/testing/tinycbor/0001-disable-failing-tests.patch b/testing/tinycbor/0001-disable-failing-tests.patch
new file mode 100644
index 00000000000..f0c406419ce
--- /dev/null
+++ b/testing/tinycbor/0001-disable-failing-tests.patch
@@ -0,0 +1,54 @@
+Comment out tests failing on at least one arch
+--- a/tests/tojson/tst_tojson.cpp
++++ b/tests/tojson/tst_tojson.cpp
+@@ -98,7 +98,7 @@
+ // negative integers
+ QTest::newRow("-1") << raw("\x20") << "-1";
+ QTest::newRow("-2") << raw("\x21") << "-2";
+- QTest::newRow("-2^53+1") << raw("\x3b\0\x1f\xff\xff""\xff\xff\xff\xfe") << "-9007199254740991";
++ //QTest::newRow("-2^53+1") << raw("\x3b\0\x1f\xff\xff""\xff\xff\xff\xfe") << "-9007199254740991";
+ QTest::newRow("-2^64+epsilon") << raw("\x3b\xff\xff\xff\xff""\xff\xff\xf8\x00") << "-18446744073709549568";
+
+ QTest::newRow("false") << raw("\xf4") << "false";
+@@ -123,8 +123,8 @@
+ QTest::newRow("2.^53-1") << raw("\xfb\x43\x3f\xff\xff""\xff\xff\xff\xff") << "9007199254740991";
+ QTest::newRow("2.f^64-epsilon") << raw("\xfa\x5f\x7f\xff\xff") << "18446742974197923840";
+ QTest::newRow("2.^64-epsilon") << raw("\xfb\x43\xef\xff\xff""\xff\xff\xff\xff") << "18446744073709549568";
+- QTest::newRow("2.f^64") << raw("\xfa\x5f\x80\0\0") << "1.8446744073709552e+19";
+- QTest::newRow("2.^64") << raw("\xfb\x43\xf0\0\0\0\0\0\0") << "1.8446744073709552e+19";
++ //QTest::newRow("2.f^64") << raw("\xfa\x5f\x80\0\0") << "1.8446744073709552e+19";
++ //QTest::newRow("2.^64") << raw("\xfb\x43\xf0\0\0\0\0\0\0") << "1.8446744073709552e+19";
+
+ // infinities and NaN are not supported in JSON, they convert to null
+ QTest::newRow("nan_f16") << raw("\xf9\x7e\x00") << "null";
+@@ -372,8 +372,8 @@
+ QTest::newRow("2.^53-1") << raw("\xfb\x43\x3f\xff\xff""\xff\xff\xff\xff") << "9007199254740991.";
+ QTest::newRow("2.f^64-epsilon") << raw("\xfa\x5f\x7f\xff\xff") << "18446742974197923840.f";
+ QTest::newRow("2.^64-epsilon") << raw("\xfb\x43\xef\xff\xff""\xff\xff\xff\xff") << "18446744073709549568.";
+- QTest::newRow("2.f^64") << raw("\xfa\x5f\x80\0\0") << "1.8446744073709552e+19f";
+- QTest::newRow("2.^64") << raw("\xfb\x43\xf0\0\0\0\0\0\0") << "1.8446744073709552e+19";
++ //QTest::newRow("2.f^64") << raw("\xfa\x5f\x80\0\0") << "1.8446744073709552e+19f";
++ //QTest::newRow("2.^64") << raw("\xfb\x43\xf0\0\0\0\0\0\0") << "1.8446744073709552e+19";
+
+ QTest::newRow("nan_f16") << raw("\xf9\x7e\x00") << "nan";
+ QTest::newRow("nan_f") << raw("\xfa\x7f\xc0\0\0") << "nan";
+@@ -556,7 +556,7 @@
+ QTest::newRow("emptytextstring") << raw("\x60") << QString();
+ QTest::newRow("textstring1") << raw("\x61 ") << QString();
+ QTest::newRow("0.5") << raw("\xfb\x3f\xe0\0\0\0\0\0\0") << QString();
+- QTest::newRow("2.^64") << raw("\xfb\x43\xf0\0\0\0\0\0\0") << QString();
++ //QTest::newRow("2.^64") << raw("\xfb\x43\xf0\0\0\0\0\0\0") << QString();
+ QTest::newRow("false") << raw("\xf4") << QString();
+ QTest::newRow("true") << raw("\xf5") << QString();
+ QTest::newRow("null") << raw("\xf6") << QString();
+@@ -589,8 +589,8 @@
+ << "\"t\":0,\"v\":\"+7ffffffffffffffe\"";
+ QTest::newRow("INT64_MAX+1") << raw("\x1b\x80\0\0\0""\0\0\0\1")
+ << "\"t\":0,\"v\":\"+8000000000000001\"";
+- QTest::newRow("-2^53-1") << raw("\x3b\0\x20\0\0""\0\0\0\0")
+- << "\"t\":0,\"v\":\"-20000000000000\"";
++ //QTest::newRow("-2^53-1") << raw("\x3b\0\x20\0\0""\0\0\0\0")
++ // << "\"t\":0,\"v\":\"-20000000000000\"";
+
+ // simple values
+ QTest::newRow("simple0") << raw("\xe0") << "\"t\":224,\"v\":0";
diff --git a/testing/tinycbor/APKBUILD b/testing/tinycbor/APKBUILD
index 4633b50b2c7..5f4f8918fcd 100644
--- a/testing/tinycbor/APKBUILD
+++ b/testing/tinycbor/APKBUILD
@@ -1,14 +1,18 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=tinycbor
-pkgver=0.5.3
-pkgrel=0
+pkgver=0.6.0
+pkgrel=1
pkgdesc="Concise Binary Object Representation (CBOR) Library"
url="https://github.com/intel/tinycbor"
checkdepends="qt5-qtbase-dev"
-arch="x86_64" # only works on x86_64
+# ppc64le: segfault in unit tests
+arch="all !ppc64le"
license="MIT"
subpackages="$pkgname-dev lib$pkgname:libs"
-source="$pkgname-$pkgver.tar.gz::https://github.com/intel/tinycbor/archive/v$pkgver.tar.gz"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/intel/tinycbor/archive/v$pkgver.tar.gz
+ 0001-disable-failing-tests.patch
+ "
build() {
make
@@ -23,4 +27,7 @@ package() {
rm -f "$pkgdir"/usr/lib/*.a
}
-sha512sums="34d1fffa65555a53779402179facd70fc245a74e30103013f2072be69e3d7cc413be773d546147d0e44739fcb958f395fa623a659b78dc08e8055be15dae7e1a tinycbor-0.5.3.tar.gz"
+sha512sums="
+af1ed05c03d3aed56e35fdcaad3235992f96b5043b594c0246e600e4b1f085df78c5345beaac8758c2b5db2952ab83997019de5940857eecb81d84b6fb642093 tinycbor-0.6.0.tar.gz
+752a91386a98f8d5073e2d4ebefa099442232561972cd8149cbf2aea64fcf9344b6519142555173a87da24b225b214ef4083caa0baf6f98f82caa26de7ae1ab1 0001-disable-failing-tests.patch
+"
diff --git a/testing/tinyscheme/APKBUILD b/testing/tinyscheme/APKBUILD
index ffb3affaf86..2c69fe26f7d 100644
--- a/testing/tinyscheme/APKBUILD
+++ b/testing/tinyscheme/APKBUILD
@@ -1,25 +1,20 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=tinyscheme
-pkgver=1.41
-pkgrel=0
-pkgdesc="A lightweight Scheme interpreter implementing a large subset of R5RS"
-url="http://tinyscheme.sourceforge.net/home.html"
+pkgver=1.42
+pkgrel=1
+pkgdesc="lightweight Scheme interpreter implementing a large subset of R5RS"
+url="https://tinyscheme.sourceforge.net/home.html"
arch="all"
-license="BSD"
-makedepends=""
-subpackages=""
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+license="BSD-3-Clause"
+source="https://downloads.sourceforge.net/tinyscheme/tinyscheme-$pkgver.tar.gz"
build() {
- cd "$builddir"
make all
}
package() {
- cd "$builddir"
- mkdir -p "${pkgdir}/usr/bin" "${pkgdir}/usr/lib"
- install -Dm755 scheme "${pkgdir}/usr/bin/tinyscheme"
- install -Dm644 libtinyscheme.so "${pkgdir}/usr/lib/libtinyscheme.so"
+ install -Dm755 scheme "$pkgdir"/usr/bin/tinyscheme
+ install -Dm644 libtinyscheme.so "$pkgdir"/usr/lib/libtinyscheme.so
}
-sha512sums="a9c1c9cd7a11bf31e0f8ac813ebd6e731cb56b9526fd14d343d7f8c479a8e1b561b744b3f522512adc023cacd1acbf52aa18bf5d8db68f767971660305b79b0f tinyscheme-1.41.tar.gz"
+
+sha512sums="54841dddd151042a976343409d5fcd778390bfddad50986d2a19120ec1eede54e2a3150100f5331abcacc222d8d547abde2b65a427c0353c2534b5f52918606c tinyscheme-1.42.tar.gz"
diff --git a/testing/tiptop/APKBUILD b/testing/tiptop/APKBUILD
index 707aafaaf7e..a1a42e6f7e8 100644
--- a/testing/tiptop/APKBUILD
+++ b/testing/tiptop/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Mitch Tishmack <mitch.tishmack@gmail.com>
pkgname=tiptop
pkgver=2.3.1
-pkgrel=0
+pkgrel=2
pkgdesc="Tiptop: Hardware Performance Counters for the Masses"
-url="http://tiptop.gforge.inria.fr"
+url="https://gitlab.inria.fr/rohou/tiptop"
# Note: This tool requires two things to work:
# 1: hardware counters in the cpu itself
# 2: support in the kernel perf framework to use them
@@ -15,7 +15,9 @@ arch="x86 x86_64"
license="GPL-2.0"
makedepends="byacc flex linux-headers ncurses-dev libxml2-dev"
subpackages="$pkgname-doc"
-source="http://tiptop.gforge.inria.fr/releases/tiptop-$pkgver.tar.gz"
+source="https://files.inria.fr/pacap/tiptop/tiptop-$pkgver.tar.gz
+ format-security.patch
+ "
# Note, arg parsing appears to happen after attempting a perf syscall
# so while it would be nice to run tiptop -h to validate the compile worked
# there is a chance it might error out for no reason than the system building
@@ -30,4 +32,8 @@ build() {
package() {
make install DESTDIR="$pkgdir"
}
-sha512sums="73d275bc3957583524c872b401cf4fa773de7b4e7b7177f1787851f43e7c4aeefd953eb50b2dbce3babfc7a1c46707370ba4ad06998260177994b2eafb91395b tiptop-2.3.1.tar.gz"
+
+sha512sums="
+73d275bc3957583524c872b401cf4fa773de7b4e7b7177f1787851f43e7c4aeefd953eb50b2dbce3babfc7a1c46707370ba4ad06998260177994b2eafb91395b tiptop-2.3.1.tar.gz
+ab588d526c20806e26e8d02fb0828cc5ecef94114993490c7ff869cc3f8d80af89f4e274414a27dc539ab456c3a0b8a3b9eb0d76a2e0a99d43031e9bd73203b1 format-security.patch
+"
diff --git a/testing/tiptop/format-security.patch b/testing/tiptop/format-security.patch
new file mode 100644
index 00000000000..f7bea792b68
--- /dev/null
+++ b/testing/tiptop/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/helpwin.c b/src/helpwin.c
+index 0d660f9..1623d9c 100644
+--- a/src/helpwin.c
++++ b/src/helpwin.c
+@@ -61,7 +61,7 @@ void show_help_win(WINDOW* win, screen_t* screen)
+ wattroff(win, A_REVERSE);
+
+ /* screen description */
+- mvwprintw(win, 2, 1, screen->desc);
++ mvwprintw(win, 2, 1, "%s", screen->desc);
+
+ /* max size of column headers */
+ for(i = 0; i < n; i++) {
diff --git a/testing/tkts/APKBUILD b/testing/tkts/APKBUILD
new file mode 100644
index 00000000000..55d66b45cb1
--- /dev/null
+++ b/testing/tkts/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Will Sinatra <wpsinatra@gmail.com>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=tkts
+pkgver=2.0
+pkgrel=0
+pkgdesc="CLI single user ticketing system"
+url="https://lambdacreate.com/dev/tkts"
+arch="all !s390x !riscv64" #fennel is not packaged for s390x
+license="GPL-3.0-only"
+depends="lua5.3-lume lua5.3-lsqlite3 sqlite groff"
+makedepends="fennel lua5.3-dev sqlite-dev luarocks"
+source="https://gitlab.com/Durrendal/tkts/-/archive/v$pkgver/tkts-v$pkgver.tar.bz2
+ correct_paths.patch"
+builddir="$srcdir/tkts-v$pkgver"
+options="!check" #no checks exist
+
+prepare() {
+ default_prepare
+}
+
+build() {
+ make compile-bin
+}
+
+package() {
+ install -Dm755 "$builddir"/src/tkts-bin "$pkgdir"/usr/bin/tkts
+}
+
+sha512sums="
+cf8eaf41a7faa0146126a18d519d819e9c25ee18b45841244c0dc6d349d8b70d3e51c6e03711aa2d07332a191186e778c727bb564be38991517dabb6c55daebc tkts-v2.0.tar.bz2
+3aacc0b958a68fd5c92e0e09c4f2b5e2d8990f65709541cabcf26bd7f0580240c2a40900a5885d01fd5925261d0bad280d44d6b64d03323baa514d9e160c9156 correct_paths.patch
+"
diff --git a/testing/tkts/correct_paths.patch b/testing/tkts/correct_paths.patch
new file mode 100644
index 00000000000..0ebd08898bd
--- /dev/null
+++ b/testing/tkts/correct_paths.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,7 @@
+
+ #Ask Techno about this one
+ compile-bin:
+- CC_OPTS="-L/usr/local/lib/lua/5.3/ -llsqlite3 -static" cd ./src/ && fennel --compile-binary tkts.fnl tkts-bin $(STATIC_LUA_LIB) $(LUA_INCLUDE_DIR) --native-module /usr/local/lib/lua/5.3/lsqlite3.so
++ CC_OPTS="-L/usr/lib/lua/5.3/ -llsqlite3 -static" cd ./src/ && fennel5.3 --compile-binary tkts.fnl tkts-bin $(STATIC_LUA_LIB) $(LUA_INCLUDE_DIR) --native-library /usr/lib/lua/5.3/lsqlite3.so
+
+ install-bin:
+ install ./src/tkts-bin -D $(DESTDIR)/tkts
diff --git a/testing/tldr-python-client/APKBUILD b/testing/tldr-python-client/APKBUILD
new file mode 100644
index 00000000000..d1648bbcf91
--- /dev/null
+++ b/testing/tldr-python-client/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Keith Toh <ktprograms@gmail.com>
+pkgname=tldr-python-client
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="Command line client for tldr, a collection of simplified and community-driven man pages"
+url="https://github.com/tldr-pages/tldr-python-client"
+arch="noarch"
+license="MIT"
+depends="python3 py3-shtab py3-colorama py3-termcolor"
+makedepends="py3-setuptools py3-sphinx py3-sphinx-argparse"
+checkdepends="py3-pytest"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tldr-pages/tldr-python-client/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # string compare fails now
+
+build() {
+ make -C docs/ man
+ python3 setup.py build
+}
+
+check() {
+ # test_error_message needs network access
+ pytest -v -k "not test_error_message"
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+ install -Dm644 LICENSE.md -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+1535979548b49cd8b0312f2cd11f69ba3f710e16a27c074dc5a8cb5617d7f343df30ba01a83388b460508ab519045140852767bfc8ff1189d612d71a3d35d76b tldr-python-client-3.2.0.tar.gz
+"
diff --git a/testing/tmate/APKBUILD b/testing/tmate/APKBUILD
index cf4890dc293..1d5c095af38 100644
--- a/testing/tmate/APKBUILD
+++ b/testing/tmate/APKBUILD
@@ -1,16 +1,28 @@
# Maintainer: Daniel Isaksen <d@duniel.no>
pkgname=tmate
pkgver=2.4.0
-pkgrel=0
+pkgrel=4
pkgdesc="Instant Terminal Sharing"
url="https://tmate.io/"
arch="all"
license="ISC"
depends="ncurses-terminfo"
-makedepends="ncurses-dev libevent-dev autoconf automake bsd-compat-headers
- libtool zlib-dev libssh-dev msgpack-c-dev"
+makedepends="
+ autoconf
+ automake
+ bsd-compat-headers
+ libevent-dev
+ libssh-dev
+ libtool
+ msgpack-c-dev
+ ncurses-dev
+ zlib-dev
+ "
subpackages="$pkgname-doc"
-source="tmate-$pkgver.tar.gz::https://github.com/tmate-io/tmate/archive/$pkgver.tar.gz"
+source="tmate-$pkgver.tar.gz::https://github.com/tmate-io/tmate/archive/$pkgver.tar.gz
+ msgpack-c.patch
+ implicit-decl.patch
+ "
prepare() {
default_prepare
@@ -18,6 +30,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -D_GNU_SOURCE"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -42,4 +55,8 @@ package() {
done
}
-sha512sums="92d2ca354b295678bfc2747ca83a45ebafeaec40ebac94bd94c4926af4f820b3f3a087f365147f41c80d1c8ad032f52c697a2421839c39315d84f98f7eccada6 tmate-2.4.0.tar.gz"
+sha512sums="
+92d2ca354b295678bfc2747ca83a45ebafeaec40ebac94bd94c4926af4f820b3f3a087f365147f41c80d1c8ad032f52c697a2421839c39315d84f98f7eccada6 tmate-2.4.0.tar.gz
+39db11866fc76178630244da3d6d555a2090d9bab9a54425344767bda130b30931198af6eb0c775cbe6b4f14987e0271dd30b7110b0591ac94dfc81b32486036 msgpack-c.patch
+2d460f9caa6bf9bbd934512b545e8ef9c0616202aab7da7e4164f136efcffa341047a52b0c1879becd178fdb9e72914871916f0e2b5ac9990e95bbfd3ccb64a9 implicit-decl.patch
+"
diff --git a/testing/tmate/implicit-decl.patch b/testing/tmate/implicit-decl.patch
new file mode 100644
index 00000000000..2f8c97c2699
--- /dev/null
+++ b/testing/tmate/implicit-decl.patch
@@ -0,0 +1,12 @@
+diff --git a/tmux.h b/tmux.h
+index c60a044..ae356aa 100644
+--- a/tmux.h
++++ b/tmux.h
+@@ -25,6 +25,7 @@
+
+ #include <sys/time.h>
+ #include <sys/uio.h>
++#include <sys/types.h>
+
+ #include <event.h>
+ #include <limits.h>
diff --git a/testing/tmate/msgpack-c.patch b/testing/tmate/msgpack-c.patch
new file mode 100644
index 00000000000..b88f4629732
--- /dev/null
+++ b/testing/tmate/msgpack-c.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index 028d555..9bbe2ae 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -201,7 +201,7 @@ fi
+
+ PKG_CHECK_MODULES(
+ MSGPACK,
+- msgpack >= 1.1.0,
++ msgpack-c >= 1.1.0,
+ [
+ CPPFLAGS="$MSGPACK_CFLAGS $CPPFLAGS"
+ LIBS="$MSGPACK_LIBS $LIBS"
diff --git a/testing/tmpl/APKBUILD b/testing/tmpl/APKBUILD
new file mode 100644
index 00000000000..eb506661841
--- /dev/null
+++ b/testing/tmpl/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Sergio Talens-Oliag <sto@mixinet.net>
+pkgname=tmpl
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="Tool to process templates using Golang text/template and Sprig functions"
+url="https://github.com/krakozaure/tmpl"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="$pkgname-doc"
+options="!check" # no tests provided
+
+source="$pkgname-$pkgver.tar.gz::https://github.com/krakozaure/tmpl/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+build() {
+ go build -v -o . \
+ -ldflags "-s -w -X github.com/krakozaure/tmpl/version.Version=v$pkgver"
+}
+
+package() {
+ install -Dm755 tmpl -t "$pkgdir"/usr/bin/
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+b45306b2592cfc0faf3549347c19904e023715152ed56a3aae0cc653b1445b01ce65b4c5357ab0a34e74633c27054e25e0d0c3d09c6637702c1e220f753e1392 tmpl-0.4.0.tar.gz
+"
diff --git a/testing/tmpmail/APKBUILD b/testing/tmpmail/APKBUILD
new file mode 100644
index 00000000000..f2fac9a949f
--- /dev/null
+++ b/testing/tmpmail/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=tmpmail
+pkgver=1.2.3
+pkgrel=2
+pkgdesc="Temporary email right from your terminal written in POSIX sh"
+url="https://github.com/sdushantha/tmpmail"
+arch="noarch"
+license="MIT"
+options="!check" # no test suite
+depends="
+ w3m
+ curl
+ jq
+ cmd:xclip
+ cmd:column
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/sdushantha/tmpmail/archive/v$pkgver/tmpmail-$pkgver.tar.gz"
+
+package() {
+ install -Dm755 tmpmail -t "$pkgdir"/usr/bin/
+ install -Dm644 tmpmail.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/"$pkgname"/
+}
+
+sha512sums="
+50d9902957481cf9b8c71f1f2ef4e97b93ce9adb894965e074d5daa9ed013df27ba313d2c3288dbd2ae77fb89e05b3635512f9c06cc14ccf3f91db5870246389 tmpmail-1.2.3.tar.gz
+"
diff --git a/testing/tmux-resurrect/APKBUILD b/testing/tmux-resurrect/APKBUILD
new file mode 100644
index 00000000000..80d28dc04ca
--- /dev/null
+++ b/testing/tmux-resurrect/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Thomas Faughnan <tom@tjf.sh>
+pkgname=tmux-resurrect
+pkgver=4.0.0
+pkgrel=0
+pkgdesc="Persists tmux environment across system restarts"
+url="https://github.com/tmux-plugins/tmux-resurrect"
+arch="noarch"
+license="MIT"
+depends="tmux>=1.9 bash"
+options="!check" # Tests rely on symlinks to another package, broken in releases
+subpackages="$pkgname-doc"
+source="https://github.com/tmux-plugins/tmux-resurrect/archive/v$pkgver/$pkgname-$pkgver.tar.gz
+ ps.patch"
+
+package() {
+ mkdir -p "$pkgdir/usr/share/$pkgname"
+ cp -r resurrect.tmux scripts/ strategies/ save_command_strategies/ \
+ "$pkgdir/usr/share/$pkgname"
+
+ mkdir -p "$pkgdir/usr/share/doc/$pkgname"
+ install -m644 docs/* "$pkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+d7ceaec7bb7c2160f43b97f1c8a5315d5cf83a511531b13f93298cb4a3ae12cf0642cbbbb3b3e42acf674615b13d0003b6915abdc70751900ab24554cf181115 tmux-resurrect-4.0.0.tar.gz
+a8f544910a58c48181ee7aceca0f008ba2a58d6768c0144bb23d44ef47eaa20581f22795cfa577b2767d2c5c996fd2cabd1d5e77ad6cae77f2d7927bd1f6c3aa ps.patch
+"
diff --git a/testing/tmux-resurrect/ps.patch b/testing/tmux-resurrect/ps.patch
new file mode 100644
index 00000000000..9c205f84c89
--- /dev/null
+++ b/testing/tmux-resurrect/ps.patch
@@ -0,0 +1,16 @@
+Author: Thomas Faughnan <tom@tjf.sh>
+URL: https://github.com/tmux-plugins/tmux-resurrect/pull/455 (awaiting upstream merge)
+Summary: Fix ps arguments to work for busybox
+diff --git a/save_command_strategies/ps.sh b/save_command_strategies/ps.sh
+index 544426c..15bb5aa 100755
+--- a/save_command_strategies/ps.sh
++++ b/save_command_strategies/ps.sh
+@@ -11,7 +11,7 @@ exit_safely_if_empty_ppid() {
+ }
+
+ full_command() {
+- ps -ao "ppid command" |
++ ps -ao "ppid,args" |
+ sed "s/^ *//" |
+ grep "^${PANE_PID}" |
+ cut -d' ' -f2-
diff --git a/testing/tncattach/APKBUILD b/testing/tncattach/APKBUILD
new file mode 100644
index 00000000000..b44250c3d2f
--- /dev/null
+++ b/testing/tncattach/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Mathew Meins <mm@blackhelicopters.net>
+pkgname=tncattach
+pkgver=0.1.9
+pkgrel=1
+pkgdesc="Attach amateur radio TNC devices as network interfaces"
+url="https://github.com/markqvist/tncattach"
+arch="all"
+license="MIT"
+makedepends="argp-standalone linux-headers"
+subpackages="$pkgname-doc"
+options="!check" # No upstream test suite
+source="https://github.com/markqvist/tncattach/archive/$pkgver/tncattach-$pkgver.tar.gz"
+
+build() {
+ gcc tncattach.c Serial.c TCP.c KISS.c TAP.c -largp -o tncattach
+}
+
+package() {
+ install -D -m755 "$builddir"/tncattach \
+ "$pkgdir"/usr/sbin/tncattach
+}
+
+doc() {
+ gzip "$builddir"/tncattach.8
+ install -D -m644 "$builddir"/tncattach.8.gz \
+ "$subpkgdir"/usr/share/man/man8/tncattach.8.gz
+}
+
+sha512sums="aaa8572b2ac51b1dbf32b4023acb83c6c0334627644d5f33bc684c3cc6ba1bd09065e52c34586553d82e7a0538d164d8c8c2ab48bec5e16f99c3dea5129142f8 tncattach-0.1.9.tar.gz"
diff --git a/testing/tnef/APKBUILD b/testing/tnef/APKBUILD
new file mode 100644
index 00000000000..9491a6dc35b
--- /dev/null
+++ b/testing/tnef/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+
+pkgname=tnef
+pkgdesc="Program for unpacking ms-tnef MIME attachment"
+pkgver=1.4.18
+pkgrel=0
+arch='all'
+url="https://github.com/verdammelt/tnef"
+license='GPL-2.0-or-later '
+makedepends='autoconf automake'
+source="$pkgname-$pkgver.tar.gz::https://github.com/verdammelt/tnef/archive/$pkgver.tar.gz"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+
+prepare() {
+ autoreconf -fi
+ default_prepare
+}
+
+build() {
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+bc53daaca9c260a804681c040d01f80bbd8b0d3597678c774975e988cdf83dad6b0d6c66b22e0d40ed2300efddef0bc663236ead4dfe687eb33af7f27dbb6000 tnef-1.4.18.tar.gz
+"
diff --git a/testing/toapk/APKBUILD b/testing/toapk/APKBUILD
index 387d6c62d89..8995c4dcb09 100755..100644
--- a/testing/toapk/APKBUILD
+++ b/testing/toapk/APKBUILD
@@ -1,22 +1,32 @@
# Contributor: Will Sinatra <wpsinatra@gmail.com>
# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=toapk
-pkgver=0.7
+pkgver=1.0
pkgrel=0
pkgdesc="PKGBUILD to APKBUILD Conversion Tool"
-url="http://lambdacreate.com"
-arch="noarch !s390x" #fennel is not packaged for s390x
+url="https://lambdacreate.com/dev/toAPK"
+arch="all"
license="GPL-3.0-only"
-depends="fennel"
-source="https://gitlab.com/Durrendal/toAPK/-/archive/v$pkgver/toAPK-v$pkgver.zip"
+makedepends="fennel lua5.3-dev"
+depends="lua5.3-sec"
+source="https://gitlab.com/Durrendal/toAPK/-/archive/v$pkgver/toAPK-v$pkgver.tar.gz
+ fennel5.3.patch
+ "
builddir="$srcdir/toAPK-v$pkgver"
+build() {
+ make compile-bin
+}
+
check() {
make test
}
package() {
- install -Dm755 "$builddir"/src/toAPK.fnl "$pkgdir"/usr/bin/toAPK
+ install -Dm755 "$builddir"/src/toAPK-bin "$pkgdir"/usr/bin/toAPK
}
-sha512sums="5f5a056f94ad199a5348c271b1e0f83b27474b2879d259ce965b1a0a1e82b00fe01165776a0d339cc6dbe12661f0dbb10c19697aadc0b2745ebe26d878bd80ff toAPK-v0.7.zip"
+sha512sums="
+507280fdc24730186b9ee6697b28bc97294bc6cd27ee859e0f740cecbc64b2a0c98d5daf88f02710a1b98b1d9f49f5f86fc592c8029375c26a408e45def4b0cf toAPK-v1.0.tar.gz
+5db5acd8a441de3176b57793f55da0a529feb0128e3e53b3d5574b79782193cea9aa620c49179ee4b9c1e17e06f35424aef8352d71cf32b4096d9c4d1f8a081b fennel5.3.patch
+"
diff --git a/testing/toapk/fennel5.3.patch b/testing/toapk/fennel5.3.patch
new file mode 100644
index 00000000000..cee52fb2bf5
--- /dev/null
+++ b/testing/toapk/fennel5.3.patch
@@ -0,0 +1,22 @@
+diff --git a/Makefile b/Makefile
+index 471f5fc..d41ba40 100644
+--- a/Makefile
++++ b/Makefile
+@@ -9,7 +9,7 @@ LUA_INCLUDE_DIR ?= /usr/include/lua5.3
+ DESTDIR=/usr/bin
+
+ compile-lua:
+- fennel --compile src/toAPK.fnl > src/toAPK.lua
++ fennel5.3 --compile src/toAPK.fnl > src/toAPK.lua
+ sed -i '1 i\-- Author: Will Sinatra <wpsinatra@gmail.com> | License: GPLv3' src/toAPK.lua
+ sed -i '1 i\#!/usr/bin/$(LUA)' src/toAPK.lua
+
+@@ -17,7 +17,7 @@ install-lua:
+ install ./src/toAPK.lua -D $(DESTDIR)/toAPK
+
+ compile-bin:
+- cd ./src/ && fennel --compile-binary toAPK.fnl toAPK-bin $(STATIC_LUA_LIB) $(LUA_INCLUDE_DIR)
++ cd ./src/ && fennel5.3 --compile-binary toAPK.fnl toAPK-bin $(STATIC_LUA_LIB) $(LUA_INCLUDE_DIR)
+
+ install-bin:
+ install ./src/toAPK-bin -D $(DESTDIR)/toAPK
diff --git a/testing/today/APKBUILD b/testing/today/APKBUILD
new file mode 100644
index 00000000000..2d439a87562
--- /dev/null
+++ b/testing/today/APKBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+pkgname=today
+pkgver=6.1.4
+pkgrel=0
+pkgdesc="Script for keeping a daily journal"
+url="https://sr.ht/~sotirisp/today"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="vim"
+makedepends="scdoc"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~sotirisp/today/archive/v$pkgver.tar.gz"
+builddir="$srcdir/today-v$pkgver"
+options="!check" # no tests
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+sha512sums="
+195eb122b22dd0f241f992781ca69c5831dd1b87e44a634d0d4db3d0c395c2bbe0f01a8d472352ad248685411f9d25af0ccafa57aec92db4b6a79a48cb7431aa today-6.1.4.tar.gz
+"
diff --git a/testing/tomcat9/10-daemon.patch b/testing/tomcat9/10-daemon.patch
new file mode 100644
index 00000000000..0f71de02a59
--- /dev/null
+++ b/testing/tomcat9/10-daemon.patch
@@ -0,0 +1,34 @@
+Author: Holger Jaekel <holger.jaekel@gmx.de>
+Summary: fix paths in daemon.sh
+----
+
+--- a/bin/daemon.sh
++++ b/bin/daemon.sh
+@@ -88,7 +88,7 @@
+ test ".$MAX_FD" = . && MAX_FD="maximum"
+ # Setup parameters for running the jsvc
+ #
+-test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
++test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat9
+ # Set JAVA_HOME to working JDK or JRE
+ # If not set we'll try to guess the JAVA_HOME
+ # from java binary if on the PATH
+@@ -111,16 +111,10 @@
+ fi
+
+ # Only set CATALINA_HOME if not already set
+-test ".$CATALINA_HOME" = . && CATALINA_HOME=`cd "$DIRNAME/.." >/dev/null; pwd`
++test ".$CATALINA_HOME" = . && CATALINA_HOME=/usr/share/tomcat9
+ test ".$CATALINA_BASE" = . && CATALINA_BASE="$CATALINA_HOME"
+ test ".$CATALINA_MAIN" = . && CATALINA_MAIN=org.apache.catalina.startup.Bootstrap
+-# If not explicitly set, look for jsvc in CATALINA_BASE first then CATALINA_HOME
+-if [ -z "$JSVC" ]; then
+- JSVC="$CATALINA_BASE/bin/jsvc"
+- if [ ! -x "$JSVC" ]; then
+- JSVC="$CATALINA_HOME/bin/jsvc"
+- fi
+-fi
++JSVC=/usr/bin/jsvc
+ # Set the default service-start wait time if necessary
+ test ".$SERVICE_START_WAIT_TIME" = . && SERVICE_START_WAIT_TIME=10
+
diff --git a/testing/tomcat9/APKBUILD b/testing/tomcat9/APKBUILD
new file mode 100644
index 00000000000..c64663d81a7
--- /dev/null
+++ b/testing/tomcat9/APKBUILD
@@ -0,0 +1,130 @@
+# Contributor: Holger Jaekel <holger.jaekel@gmx.de>
+# Maintainer: Holger Jaekel <holger.jaekel@gmx.de>
+pkgname=tomcat9
+pkgver=9.0.88
+pkgrel=0
+pkgdesc="Open source implementation of the Java Servlet 4.0 and JavaServer Pages 2.3 technologies"
+url="https://tomcat.apache.org/"
+arch="noarch !x86 !armv7 !armhf !ppc64le !riscv64" # eclipse-ecj availability
+license="Apache-2.0"
+depends="eclipse-ecj java-common"
+pkgusers="tomcat9"
+pkggroups="tomcat9"
+checkdepends="java-jre-headless"
+install="$pkgname.pre-install"
+subpackages="
+ $pkgname-openrc
+ $pkgname-admin
+ $pkgname-doc
+ $pkgname-examples
+ "
+
+source="
+ https://archive.apache.org/dist/tomcat/tomcat-9/v$pkgver/bin/apache-tomcat-$pkgver.tar.gz
+ 10-daemon.patch
+ "
+builddir=$srcdir/apache-${pkgname//9/}-$pkgver
+
+# secfixes:
+# 9.0.80-r0:
+# - CVE-2023-41080
+# 9.0.73-r0:
+# - CVE-2023-28708
+# 9.0.71-r0:
+# - CVE-2023-24998
+# 9.0.70-r0:
+# - CVE-2022-45143
+# 9.0.68-r0:
+# - CVE-2022-42252
+# 9.0.64-r0:
+# - CVE-2022-34305
+# 9.0.63-r0:
+# - CVE-2022-29885
+# 9.0.58-r0:
+# - CVE-2022-23181
+
+check() {
+ $builddir/bin/configtest.sh
+}
+
+package() {
+ # Tomcat general files
+ install -dm 755 "$pkgdir"/usr/share/$pkgname
+ install -dm 755 "$pkgdir"/usr/share/$pkgname/bin
+ install -dm 755 "$pkgdir"/usr/share/java/$pkgname
+ cp -dr bin "$pkgdir"/usr/share/$pkgname
+ # commons-daemon and tomcat-natives are packaged on their own
+ chmod 644 "$pkgdir"/usr/share/$pkgname/bin/*.jar
+ chmod 755 "$pkgdir"/usr/share/$pkgname/bin/*.sh
+ rm "$pkgdir"/usr/share/$pkgname/bin/*.bat
+ rm "$pkgdir"/usr/share/$pkgname/bin/commons-daemon*
+ rm "$pkgdir"/usr/share/$pkgname/bin/daemon.sh
+ rm "$pkgdir"/usr/share/$pkgname/bin/tomcat-native.tar.gz
+
+ install -m 644 lib/* "$pkgdir"/usr/share/java/$pkgname
+ # eclipse-ecj is packaged on its own
+ rm "$pkgdir"/usr/share/java/$pkgname/ecj-*.jar
+ ln -s ../eclipse-ecj.jar "$pkgdir"/usr/share/java/$pkgname/ecj.jar
+
+ ln -s /usr/share/java/$pkgname "$pkgdir"/usr/share/$pkgname/lib
+
+ install -dm 775 -o $pkgusers "$pkgdir"/var/log/$pkgname
+ ln -s /var/log/$pkgname "$pkgdir"/usr/share/$pkgname/logs
+
+ install -dm 775 "$pkgdir"/etc/$pkgname
+ install -m 640 -g $pkggroups conf/* "$pkgdir"/etc/$pkgname
+ install -dm 775 -g $pkggroups "$pkgdir"/etc/$pkgname/Catalina
+ ln -s /etc/$pkgname "$pkgdir"/usr/share/$pkgname/conf
+
+ install -dm 775 "$pkgdir"/var/lib/$pkgname
+ cp -r webapps "$pkgdir"/var/lib/$pkgname
+ chown -R $pkgusers:$pkggroups "$pkgdir"/var/lib/$pkgname
+ chmod 775 "$pkgdir"/var/lib/$pkgname/webapps
+ ln -s /var/lib/$pkgname/webapps "$pkgdir"/usr/share/$pkgname/webapps
+
+ install -d -o $pkgusers -g $pkggroups -m 755 "$pkgdir"/var/cache/$pkgname
+ ln -s /tmp "$pkgdir"/usr/share/$pkgname/temp
+ ln -s /var/cache/$pkgname "$pkgdir"/usr/share/$pkgname/work
+}
+
+admin() {
+ pkgdesc="$pkgdesc (admin web applications)"
+ _copy_webapp manager
+ _copy_webapp host-manager
+}
+
+doc() {
+ pkgdesc="$pkgdesc (documentation)"
+ _copy_webapp docs
+}
+
+examples() {
+ pkgdesc="$pkgdesc (example web applications)"
+ _copy_webapp examples
+}
+
+_copy_webapp() {
+ depends="$pkgname"
+
+ cd $builddir
+
+ mkdir -p $subpkgdir/var/lib/tomcat9/webapps
+ mv $pkgdir/var/lib/tomcat9/webapps/$1 $subpkgdir/var/lib/tomcat9/webapps
+ chown -R $pkgusers:$pkggroups "$pkgdir"/var/lib/tomcat9
+ chmod 775 "$pkgdir"/var/lib/tomcat9/webapps
+}
+
+openrc() {
+ depends="commons-daemon jsvc $pkgname"
+ pkgdesc="$pkgdesc (OpenRC init scripts)"
+
+ cd $builddir
+ install -Dm 755 bin/daemon.sh "$subpkgdir"/etc/init.d/tomcat9
+ install -dm 755 "$subpkgdir"/usr/share/tomcat9/bin
+ ln -s /usr/share/java/commons-daemon.jar "$subpkgdir"/usr/share/tomcat9/bin/commons-daemon.jar
+}
+
+sha512sums="
+b2668f50339afdd266dbdf3ff20a98632a5552910179eda272b65ea0b18be4bef8fa9988e3cfc77e4eae4b74ae1e7abe2483b0e427a07628ed50fed3a13eefb9 apache-tomcat-9.0.88.tar.gz
+7d16b14977c22e1ae998d15a0a83a574624b62c722a0adbfd05a4105581eee347d38e366a269ebca4c8fa894c3718d6fbdcea0e0974d20407075ec2af6ea07a4 10-daemon.patch
+"
diff --git a/testing/tomcat9/tomcat9.pre-install b/testing/tomcat9/tomcat9.pre-install
new file mode 100644
index 00000000000..4e8cbfc9ab2
--- /dev/null
+++ b/testing/tomcat9/tomcat9.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S tomcat9 2>/dev/null
+adduser -S -D -H -h /usr/share/tomcat9 -s /sbin/nologin -G tomcat9 -g tomcat9 tomcat9 2>/dev/null
+
+exit 0
diff --git a/testing/toml2json/APKBUILD b/testing/toml2json/APKBUILD
new file mode 100644
index 00000000000..ddde8f52bc8
--- /dev/null
+++ b/testing/toml2json/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=toml2json
+pkgver=1.3.1
+pkgrel=0
+pkgdesc="A very small CLI for converting TOML to JSON"
+url="https://github.com/woodruffw/toml2json"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/woodruffw/toml2json/archive/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+ae89a6cc3e3409c24f9c093036ab53d21c177775aec27c200b45971c94f1948c4140e64d17e634c097368ff2afd7ed2bbd29f51c7ef225b15a1dc88984750c6a toml2json-1.3.1.tar.gz
+"
diff --git a/testing/toot/01-skip-version-test.patch b/testing/toot/01-skip-version-test.patch
deleted file mode 100644
index d97d13ada32..00000000000
--- a/testing/toot/01-skip-version-test.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Skip the version test, since it breaks even with proper PYTHONPATH
-diff --git a/tests/test_version.py b/tests/test_version.py
-deleted file mode 100644
-index 375c431..0000000
---- a/tests/test_version.py
-+++ /dev/null
-@@ -1,8 +0,0 @@
--import toot
--from pkg_resources import get_distribution
--
--
--def test_version():
-- """Version specified in __version__ should be the same as the one
-- specified in setup.py."""
-- assert toot.__version__ == get_distribution('toot').version
diff --git a/testing/toot/APKBUILD b/testing/toot/APKBUILD
deleted file mode 100644
index acbfa041272..00000000000
--- a/testing/toot/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=toot
-_pyname=toot
-pkgver=0.26.0
-pkgrel=0
-pkgdesc="mastodon cli & tui"
-url="https://github.com/ihabunek/toot"
-arch="noarch"
-license="GPL-3.0-only"
-depends="python3 py3-setuptools py3-requests py3-beautifulsoup4 py3-wcwidth py3-urwid"
-makedepends="python3-dev"
-checkdepends="py3-pytest"
-source="
- https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz
- 01-skip-version-test.patch
- "
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest -v
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c90cd81835ea60882d5e7db68ea7d69b5a3fe657b5b5c34c81daf4e5b672d66181cfb724e15e1a3eb12aad167584d82ba782b169ab294046979454de762a914c toot-0.26.0.tar.gz
-584bc6ec6a44c6b3a77430491fbb5a4f57ab71a4476b3fd93c1ea267f729262b69e115ada2f84696f9e93b0522ef682872dd7ba6585dfe2c20a0529e733d742e 01-skip-version-test.patch"
diff --git a/testing/tootik/APKBUILD b/testing/tootik/APKBUILD
new file mode 100644
index 00000000000..f907d782ef6
--- /dev/null
+++ b/testing/tootik/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: Celeste <cielesti@protonmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=tootik
+pkgver=0.9.5
+pkgrel=1
+pkgdesc="Federated nanoblogging service with Gemini frontend"
+url="https://github.com/dimkr/tootik"
+arch="all"
+license="Apache-2.0"
+depends_openrc="openssl"
+makedepends="go"
+install="$pkgname.pre-install"
+pkgusers="tootik"
+pkggroups="tootik"
+subpackages="$pkgname-openrc"
+source="https://github.com/dimkr/tootik/archive/refs/tags/$pkgver/tootik-$pkgver.tar.gz
+ tootik.cfg
+ tootik.initd
+ tootik.confd
+
+ fix-32bit-maxint.patch
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+export CGO_ENABLED=1
+export _GOTAGS="fts5"
+
+build() {
+ local _goldflags="
+ -X github.com/dimkr/tootik/buildinfo.Version=$pkgver
+ "
+
+ go generate -v ./migrations
+ go vet -v -tags "$_GOTAGS" ./...
+ go build -v -ldflags "$_goldflags" -tags "$_GOTAGS" ./cmd/tootik
+}
+
+check() {
+ ./tootik --version
+
+ # cleanup sqlite database files used by test/register_test.go
+ rm -vf /tmp/TestRegister*.sqlite3
+
+ go test -v -tags "$_GOTAGS" -timeout 30m ./...
+}
+
+package() {
+ install -Dm755 tootik -t "$pkgdir"/usr/bin/
+ install -dm750 -o tootik -g tootik "$pkgdir"/var/lib/tootik
+
+ install -dm750 -o tootik -g tootik "$pkgdir"/etc/tootik
+ install -Dm640 -o tootik -g tootik "$srcdir"/tootik.cfg \
+ -t "$pkgdir"/etc/tootik/
+
+ install -Dm755 "$srcdir"/tootik.initd "$pkgdir"/etc/init.d/tootik
+ install -Dm644 "$srcdir"/tootik.confd "$pkgdir"/etc/conf.d/tootik
+}
+
+sha512sums="
+1f2a75d7abbf730637152037498b8b6872c8f165a7b52c5603c89a10900b4875e6bb09f9c89864fd966294403b4fae19cc468dc87e84c0582f966f2e82ca76a5 tootik-0.9.5.tar.gz
+b86a8d3fe428244b05a93d137ea38253801ccc8a72e5e941083158d7f7323c3bb25a1e00d5b1d084ee18f486c7e24a2076a6aae69a2a99812ee21fb1c6d6922f tootik.cfg
+7999e43dc50604cc0d0d97292aed9ee5fc658b08b46fc4d92b21916246ee43b54b79ba9306b6196ac8b86d6d53498266a499cd31e90f22749f78bc5d5c404b19 tootik.initd
+11fa51d25baaeb295c80cf3e154eb1eab67f9633e23f01cc0a25c427af368746d536bff17de2153b5be925489e3f84ca5ba492a4a43c32aaf33b8c4d00d14fd6 tootik.confd
+b1a49015c1e5115e420d04b33290b5726fda492fcca71b71bf9083f5ea66259c38cda308df1abb0c033042ea0da9f910cb64f7be242f7ba4cfc6fda8ff576275 fix-32bit-maxint.patch
+"
diff --git a/testing/tootik/fix-32bit-maxint.patch b/testing/tootik/fix-32bit-maxint.patch
new file mode 100644
index 00000000000..c119e880fac
--- /dev/null
+++ b/testing/tootik/fix-32bit-maxint.patch
@@ -0,0 +1,24 @@
+Patch-Source: https://github.com/dimkr/tootik/commit/eba68e3c0f3eaeeb02d2fd25553fcdb61cd814ee.patch
+--
+From eba68e3c0f3eaeeb02d2fd25553fcdb61cd814ee Mon Sep 17 00:00:00 2001
+From: Dima Krasner <dima@dimakrasner.com>
+Date: Sun, 31 Mar 2024 09:18:28 +0300
+Subject: [PATCH] fix build failure on 32-bit architectures (fixes #56)
+
+---
+ cfg/cfg.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cfg/cfg.go b/cfg/cfg.go
+index 8cd17bb..3db5662 100644
+--- a/cfg/cfg.go
++++ b/cfg/cfg.go
+@@ -262,7 +262,7 @@ func (c *Config) FillDefaults() {
+ c.DeliveryTimeout = time.Minute * 5
+ }
+
+- if c.DeliveryWorkers <= 0 || c.DeliveryWorkers > math.MaxUint32 {
++ if c.DeliveryWorkers <= 0 || c.DeliveryWorkers > math.MaxInt {
+ c.DeliveryWorkers = 4
+ }
+
diff --git a/testing/tootik/tootik.cfg b/testing/tootik/tootik.cfg
new file mode 100644
index 00000000000..0dca7f4f02e
--- /dev/null
+++ b/testing/tootik/tootik.cfg
@@ -0,0 +1,63 @@
+{
+ "DatabaseOptions": "_journal_mode=WAL&_busy_timeout=5000",
+ "RegistrationInterval": 300000000000,
+ "MaxPostsLength": 3000,
+ "MaxPostsPerDay": 3000,
+ "PostThrottleFactor": 3000,
+ "PostThrottleUnit": 30000000000,
+ "EditThrottleFactor": 1,
+ "EditThrottleUnit": 30000000000,
+ "ShareThrottleFactor": 3000,
+ "ShareThrottleUnit": 30000000000,
+ "PollMaxOptions": 5,
+ "PollDuration": 2592000000000000,
+ "MaxDisplayNameLength": 30,
+ "MaxBioLength": 500,
+ "MinActorEditInterval": 1800000000000,
+ "MaxFollowsPerUser": 150,
+ "FollowAcceptTimeout": 172800000000000,
+ "PostsPerPage": 30,
+ "RepliesPerPage": 10,
+ "MaxOffset": 900,
+ "SharesPerPost": 1000,
+ "MaxRequestBodySize": 1048576,
+ "MaxRequestAge": 300000000000,
+ "CompactViewMaxRunes": 200,
+ "CompactViewMaxLines": 4,
+ "CacheUpdateTimeout": 5000000000,
+ "GeminiRequestTimeout": 30000000000,
+ "GopherRequestTimeout": 30000000000,
+ "LineWidth": 70,
+ "GuppyRequestTimeout": 30000000000,
+ "MaxGuppySessions": 30,
+ "GuppyChunkTimeout": 2000000000,
+ "GuppyResponseChunkSize": 512,
+ "MaxSentGuppyChunks": 8,
+ "DeliveryBatchSize": 16,
+ "DeliveryRetryInterval": 1800,
+ "MaxDeliveryAttempts": 5,
+ "DeliveryTimeout": 300000000000,
+ "DeliveryWorkers": 4,
+ "DeliveryWorkerBuffer": 16,
+ "OutboxPollingInterval": 5000000000,
+ "MaxActivitiesQueueSize": 10000,
+ "ActivitiesBatchSize": 64,
+ "ActivitiesPollingInterval": 5000000000,
+ "ActivitiesBatchDelay": 100000000,
+ "ActivityProcessingTimeout": 15000000000,
+ "MaxForwardingDepth": 5,
+ "MaxRecipients": 1000,
+ "MinActorAge": 3600000000000,
+ "ResolverCacheTTL": 259200000000000,
+ "ResolverRetryInterval": 21600000000000,
+ "ResolverMaxIdleConns": 128,
+ "ResolverIdleConnTimeout": 60000000000,
+ "MaxInstanceRecoveryTime": 2592000000000000,
+ "MaxResolverRequests": 16,
+ "FollowersSyncBatchSize": 64,
+ "FollowersSyncInterval": 259200000000000,
+ "NotesTTL": 2592000000000000,
+ "DeliveryTTL": 604800000000000,
+ "SharesTTL": 172800000000000,
+ "ActorTTL": 604800000000000
+}
diff --git a/testing/tootik/tootik.confd b/testing/tootik/tootik.confd
new file mode 100644
index 00000000000..ee6759289ed
--- /dev/null
+++ b/testing/tootik/tootik.confd
@@ -0,0 +1,56 @@
+# Configuration for /etc/init.d/tootik
+
+# Instance blocklist CSV file
+#blocklist=""
+
+# Uncomment to disable new user registration
+#disable_registration="yes"
+
+# HTTP(S) listening address
+#httpaddr=":8443"
+
+# Uncomment to serve HTTPS instead of HTTP
+# (requires httpscert and httpskey)
+#serve_https="yes"
+
+# HTTPS TLS certificate
+#httpscert="/etc/tootik/https-cert.pem"
+
+# HTTPS TLS key
+#httpskey="/etc/tootik/https-key.pem"
+
+# Domain name
+#tootik_domain="localhost.localdomain:8443"
+
+# Configuration file (Generated by `tootik -dumpcfg`)
+#tootik_cfg="/etc/tootik/tootik.cfg"
+
+# Database path
+#tootik_db="/var/lib/tootik/db.sqlite3"
+
+# Gemini listening address
+#gemaddr=":8965"
+
+# Gemini TLS certificate
+#gemcert="/etc/tootik/gemini-cert.pem"
+
+# Gemini TLS key
+#gemkey="/etc/tootik/gemini-key.pem"
+
+# Finger listening address
+#fingeraddr=":8079"
+
+# Gopher listening address
+#gopheraddr=":8070"
+
+# Guppy listening address
+#guppyaddr=":6775"
+
+# Logging verbosity (-4:debug 0:info 4:warn 8:error)
+#loglevel=0
+
+# Additional options to pass to Tootik
+#extra_opts=""
+
+# Uncomment to enable process supervision
+#supervisor=supervise-daemon
diff --git a/testing/tootik/tootik.initd b/testing/tootik/tootik.initd
new file mode 100644
index 00000000000..04037a7fc2f
--- /dev/null
+++ b/testing/tootik/tootik.initd
@@ -0,0 +1,73 @@
+#!/sbin/openrc-run
+
+name=tootik
+description="Tootik is a federated nanoblogging service for the small internet"
+
+: ${httpscert:="/etc/tootik/https-cert.pem"}
+: ${httpskey:="/etc/tootik/https-key.pem"}
+: ${gemcert:="/etc/tootik/gemini-cert.pem"}
+: ${gemkey:="/etc/tootik/gemini-key.pem"}
+: ${tootik_cfg:="/etc/tootik/tootik.cfg"}
+: ${tootik_db:="/var/lib/tootik/db.sqlite3"}
+
+command="/usr/bin/tootik"
+command_args="
+ ${blocklist:+-blocklist $blocklist}
+ ${httpaddr:+-addr $httpaddr}
+ ${tootik_domain:+-domain $tootik_domain}
+ -cfg $tootik_cfg
+ -db $tootik_db
+ ${gemaddr:+-gemaddr $gemaddr}
+ -gemcert $gemcert
+ -gemkey $gemkey
+ ${fingeraddr:+-fingeraddr $fingeraddr}
+ ${gopheraddr:+-gopheraddr $gopheraddr}
+ ${guppyaddr:+-guppyaddr $guppyaddr}
+ ${loglevel:+-loglevel $loglevel}
+ $extra_opts
+ "
+command_background="yes"
+command_user="tootik:tootik"
+pidfile="/run/${RC_SVCNAME}.pid"
+directory="/var/lib/tootik"
+error_log="/var/log/tootik.log"
+required_files="$tootik_cfg"
+
+if yesno "${disable_registration:-no}"; then
+ command_args="$command_args -closed"
+fi
+
+if yesno "${serve_https:-no}"; then
+ command_args="$command_args -cert $httpscert -key $httpskey"
+ required_files="$required_files $httpscert $httpskey"
+else
+ command_args="$command_args -plain"
+fi
+
+depend() {
+ need localmount net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o "$command_user" \
+ "$directory" "/etc/tootik"
+
+ if [ ! -f "$gemcert" ] || [ ! -f "$gemkey" ]; then
+ gen_gemcert || return 1
+ fi
+
+ checkpath -f -m 0640 -o "$command_user" \
+ "$error_log" "$gemcert" "$gemkey" "$tootik_cfg"
+}
+
+gen_gemcert() {
+ local domain="${tootik_domain:-localhost.localdomain:8443}"
+
+ ebegin "Generating new Gemini TLS key & certificate for $domain"
+ openssl req -new -subj "/CN=$domain" -x509 -days 3650 \
+ -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
+ -sha256 -nodes -out "$gemcert" -keyout "$gemkey" \
+ 2>/dev/null
+ eend $?
+}
diff --git a/testing/tootik/tootik.pre-install b/testing/tootik/tootik.pre-install
new file mode 100644
index 00000000000..6609c9abfa5
--- /dev/null
+++ b/testing/tootik/tootik.pre-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+addgroup -S tootik 2>/dev/null
+adduser -S -D -H \
+ -h /var/lib/tootik \
+ -s /sbin/nologin \
+ -G tootik \
+ -g "Tootik federated nanoblogging service" \
+ tootik 2>/dev/null
+
+exit 0
diff --git a/testing/topgit/APKBUILD b/testing/topgit/APKBUILD
index e3eada24c61..cdc7bdce4e3 100644
--- a/testing/topgit/APKBUILD
+++ b/testing/topgit/APKBUILD
@@ -1,9 +1,8 @@
# Contributor: Joseph Benden <joe@benden.us>
# Maintainer: Joseph Benden <joe@benden.us>
-
pkgname=topgit
-pkgver=0.19.12
-pkgrel=0
+pkgver=0.19.13
+pkgrel=1
pkgdesc="A different patch queue manager"
arch="noarch"
url="https://github.com/mackyle/topgit"
@@ -11,9 +10,9 @@ license="GPL-2.0-or-later"
options="!check"
depends="git gawk sed"
makedepends="perl"
-subpackages="$pkgname-doc"
-source="${pkgname}-${pkgver}.tar.gz::$url/archive/${pkgname}-${pkgver}.tar.gz"
-builddir="$srcdir/${pkgname}-${pkgname}-$pkgver"
+subpackages="$pkgname-doc $pkgname-bash-completion"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mackyle/topgit/archive/$pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
build() {
make prefix=/usr sharedir=/usr/share/doc/$pkgname
@@ -21,7 +20,10 @@ build() {
package() {
make DESTDIR="$pkgdir" prefix=/usr sharedir=/usr/share/doc/$pkgname install
- # TODO: install bash completions
+ install -Dm0644 contrib/tg-completion.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/tg.bash
}
-sha512sums="cb9245fbec7a4a15822a5b70d7052be200aa8b574b528dd929121597eb7dcec97532b0fd4d6a4d6bb63676194ed0ab2129e106fb88f63561187620ec431f9efb topgit-0.19.12.tar.gz"
+sha512sums="
+8e477504c5f873651854c9412864c9dcb0ee35d0349b65e7c5d618a0add0fad3f749381edbe17195981bae3ff9f0e7323286abf7a5c6b744721ba2cc2a5d40d4 topgit-0.19.13.tar.gz
+"
diff --git a/testing/torrent-file-editor/APKBUILD b/testing/torrent-file-editor/APKBUILD
new file mode 100644
index 00000000000..e274b1ead18
--- /dev/null
+++ b/testing/torrent-file-editor/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=torrent-file-editor
+pkgver=0.3.18
+pkgrel=0
+pkgdesc="Qt based GUI tool designed to create and edit .torrent files"
+url="https://torrent-file-editor.github.io/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cmake
+ qt6-qt5compat-dev
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ samurai
+ "
+source="https://github.com/torrent-file-editor/torrent-file-editor/releases/download/v$pkgver/torrent-file-editor-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=None \
+ -DENABLE_PCH=OFF \
+ -DQT6_BUILD=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+6e12a0422f142c2d8d53267ca3cb9e0df3f2295aca896859c3794c2be89318597d62e8f2862878a156c5a5529d950c36e524f9fe309447691871a2cf44c446ea torrent-file-editor-0.3.18.tar.gz
+"
diff --git a/testing/toss/APKBUILD b/testing/toss/APKBUILD
new file mode 100644
index 00000000000..7e677fc6734
--- /dev/null
+++ b/testing/toss/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+# Maintainer: Jonas <3426-spameier@users.gitlab.alpinelinux.org>
+pkgname=toss
+pkgver=1.1
+pkgrel=0
+pkgdesc="Dead simple LAN file transfers from the command line"
+url="https://github.com/zerotier/toss"
+arch="all"
+license="MIT"
+options="!check" # no checks provided
+source="$pkgname-$pkgver.tar.gz::https://github.com/zerotier/toss/archive/$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir"/usr/bin install
+}
+
+sha512sums="
+737a4be29e478493d6a4398be9b93aab66da4a5ea9c326c8db6159a930cc9af9b055bc97897acad66c2009021dcf3b0a25db3b30d8464729c78cb5cd66e2f37d toss-1.1.tar.gz
+"
diff --git a/testing/toxcore/APKBUILD b/testing/toxcore/APKBUILD
deleted file mode 100644
index 709a9f5e47c..00000000000
--- a/testing/toxcore/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Jonathan Sieber <mail@strfry.org>
-pkgname=toxcore
-pkgver=0.2.12
-pkgrel=0
-pkgdesc="Tox communication project - Core Library"
-url="https://tox.chat/"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="linux-headers cmake libsodium-dev opus-dev libvpx-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/TokTok/c-toxcore/archive/v$pkgver.tar.gz"
-
-# Toxcore's tests do require networking and are not working properly in Travis-CI
-options="!check"
-
-builddir="$srcdir/c-$pkgname-$pkgver"
-
-build() {
- cmake . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_LIBDIR=lib
-
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="c22f139cfff3a5aedf5fb08c33cae0dae3d6fbceec87867c81290e3bf9d2e13466a0e2bad8378a7a7ba1e9b7b9ad756712963461ae248102e4cab7d4691228d8 toxcore-0.2.12.tar.gz"
diff --git a/testing/toxic/APKBUILD b/testing/toxic/APKBUILD
deleted file mode 100644
index a5cf4af88d7..00000000000
--- a/testing/toxic/APKBUILD
+++ /dev/null
@@ -1,23 +0,0 @@
-# Maintainer: Jonathan Sieber <mail@strfry.org>
-pkgname=toxic
-pkgver=0.8.3
-pkgrel=0
-pkgdesc=" An ncurses-based Tox client"
-url="https://github.com/JFreegman/toxic"
-arch="all"
-license="GPL-3.0-or-later"
-options="!check"
-subpackages="$pkgname-doc"
-makedepends="toxcore-dev libconfig-dev ncurses-dev openal-soft-dev linux-headers
- libvpx-dev opus-dev libnotify-dev libqrencode-dev curl-dev libx11-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/JFreegman/$pkgname/archive/v$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- make PREFIX="$pkgdir"/usr install
-}
-
-sha512sums="c8d746efcc055592dd990dfa57415cc1eacaaa3b66303d7583d9f9e7e98b8829c8f1ae849f36a243c8896e99787dd2e493c92367de719b20a4a160bc7daea76e toxic-0.8.3.tar.gz"
diff --git a/testing/toybox/APKBUILD b/testing/toybox/APKBUILD
index bd756829079..224f441cd31 100644
--- a/testing/toybox/APKBUILD
+++ b/testing/toybox/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: André Klitzing <aklitzing@gmail.com>
# Contributor: André Klitzing <aklitzing@gmail.com>
pkgname=toybox
-pkgver=0.8.3
+pkgver=0.8.10
pkgrel=0
pkgdesc="A BSD-licensed alternative to busybox"
arch="all"
@@ -12,6 +12,9 @@ makedepends="bash linux-headers"
source="https://landley.net/toybox/downloads/toybox-$pkgver.tar.gz"
build() {
+ # Disable FORTIFY until build is fixed
+ export CFLAGS=-U_FORTIFY_SOURCE
+
scripts/genconfig.sh
make defconfig
make
@@ -22,10 +25,9 @@ check() {
}
package() {
- #chmod 755 toybox
- #make PREFIX="$pkgdir" install
-
install -Dm755 toybox "$pkgdir"/bin/toybox
}
-sha512sums="e2c5a22547cbd85bfee84c4aed3016895e4e0eba9b6f3dfc6cdfa0a0d59dfd74203a35389dcd0b2c557dd04eebbb051f9a458762af3abb32b473bd8924ed7b74 toybox-0.8.3.tar.gz"
+sha512sums="
+b2c36bc4e41741893a4fe039dd653f552ab987b948f78c1e5d04abb13ffbb8f898af636967739067877afef9ac0af10c259f674acdc4a80084a846fb02742461 toybox-0.8.10.tar.gz
+"
diff --git a/testing/tpm2-pkcs11/APKBUILD b/testing/tpm2-pkcs11/APKBUILD
new file mode 100644
index 00000000000..fd512789247
--- /dev/null
+++ b/testing/tpm2-pkcs11/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer:
+pkgname=tpm2-pkcs11
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="A PKCS#11 interface for TPM2 hardware"
+url="https://github.com/tpm2-software/tpm2-pkcs11"
+arch="all !armhf !armv7 !riscv64 !x86" # blocked by py3-tpm2-pytss
+license="BSD-2-Clause"
+depends="
+ bash
+ py3-asn1-modules
+ py3-cryptography
+ py3-tpm2-pytss
+ py3-yaml
+ python3
+ tpm2-tools
+ "
+makedepends="
+ autoconf
+ autoconf-archive
+ automake
+ libtool
+ linux-headers
+ openssl-dev
+ py3-setuptools
+ python3-dev
+ sqlite-dev
+ tpm2-abrmd-dev
+ tpm2-tss-dev
+ yaml-dev
+ "
+options="!check" # Requires IBM TPM simulator
+subpackages="$pkgname-dev $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tpm2-software/tpm2-pkcs11/archive/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ sed -i '/git describe/d' bootstrap
+ echo "$pkgver" > VERSION
+ ./bootstrap
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --target="$CTARGET" \
+ --prefix=/usr
+ make
+ cd tools && python3 setup.py build
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ cd tools && python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+711f6608c30013b549e810e457728c36944a108866b975b2725d99893c747fcd3f74cfdb977b0b59d00fd5d72d92ba6a28f6b014dfa76a10cdbfd3f7c9289694 tpm2-pkcs11-1.9.0.tar.gz
+"
diff --git a/testing/tpm2-tools/APKBUILD b/testing/tpm2-tools/APKBUILD
index a122408bd94..9436e5cb357 100644
--- a/testing/tpm2-tools/APKBUILD
+++ b/testing/tpm2-tools/APKBUILD
@@ -1,17 +1,21 @@
+# Contributor: Steve McMaster <code@mcmaster.io>
# Contributor: Alexander Sack <asac@pantacor.com>
# Maintainer: Alexander Sack <asac@pantacor.com>
pkgname=tpm2-tools
-pkgver=4.2
+pkgver=5.6
pkgrel=0
pkgdesc="TPM2 Tools"
url="https://github.com/tpm2-software/tpm2-tools/"
arch="all"
license="BSD-2-Clause"
-makedepends="tpm2-tss-dev tpm2-tss-rc tpm2-tss-tctildr
- openssl-dev curl-dev util-linux-dev"
+makedepends="
+ curl-dev
+ openssl-dev>3
+ tpm2-tss-dev
+ util-linux-dev
+ "
subpackages="$pkgname-doc $pkgname-bash-completion"
-_sourcever="${pkgver/_/-}"
-source="https://github.com/tpm2-software/tpm2-tools/releases/download/$_sourcever/tpm2-tools-$_sourcever.tar.gz"
+source="https://github.com/tpm2-software/tpm2-tools/releases/download/$pkgver/tpm2-tools-$pkgver.tar.gz"
options="!check"
build() {
@@ -26,4 +30,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="7aaf549dd77307e5ad93d4b34737d684c8a7384996143124f10b188f5e99860940902cee83538e6957997859420dd430d6d27979b223beae515aab94ac8fb235 tpm2-tools-4.2.tar.gz"
+sha512sums="
+14216f29ed3ecca5fbe356ed3744c8b6b25a62ff11b2aed596d11101328c8bfd29a02f6ca5a218f9a4477a5e9648c50f0ae96e71de0b4ff5ea1f98ebeeb73cd7 tpm2-tools-5.6.tar.gz
+"
diff --git a/testing/tpm2-tss-engine/APKBUILD b/testing/tpm2-tss-engine/APKBUILD
deleted file mode 100644
index 6f21a0ead02..00000000000
--- a/testing/tpm2-tss-engine/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor:
-# Maintainer: Alexander Sack <asac@pantacor.com>
-pkgname=tpm2-tss-engine
-pkgver=1.0.1
-pkgrel=0
-pkgdesc="tpm2tss engine for openssl"
-url="https://github.com/tpm2-software/tpm2-tss-engine/"
-arch="all"
-license="BSD-2-Clause"
-makedepends="tpm2-tss-dev openssl-dev doxygen linux-headers"
-subpackages="
- $pkgname-dev
- $pkgname-doc
- $pkgname-bash-completion
- "
-source="https://github.com/tpm2-software/tpm2-tss-engine/releases/download/v$pkgver/tpm2-tss-engine-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="106fc6aadf0b4b27c3b38be596356aa59b4b76ec1602e8c5564aec6b4be7e2b5d6077006ee13d41e58402255b879aadaa966c758b5b326ae32742007ce2ef238 tpm2-tss-engine-1.0.1.tar.gz"
diff --git a/testing/traefik/APKBUILD b/testing/traefik/APKBUILD
deleted file mode 100644
index c69772fe9a4..00000000000
--- a/testing/traefik/APKBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# Contributor: Joe Holden <jwh@zorins.us>
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=traefik
-pkgver=2.2.0
-pkgrel=1
-pkgdesc="The Cloud Native Edge Router"
-url="https://traefik.io"
-arch=""
-#arch="all !x86 !armhf !armv7 !mips !mips64" # tests fail on x86, armhf, and armv7, fails to build on mips
-license="MIT"
-makedepends="go go-bindata libcap"
-install="$pkgname.pre-install"
-pkgusers="$pkgname"
-pkggroups="$pkgname"
-subpackages="$pkgname-openrc"
-options="chmod-clean"
-source="$pkgname-$pkgver.tar.gz::https://github.com/containous/traefik/releases/download/v$pkgver/traefik-v$pkgver.src.tar.gz
- traefik.initd
- traefik.confd
- traefik.toml"
-builddir="$srcdir"
-
-export BUILD_TIMESTAMP=$(date -u "+%Y-%m-%dT%TZ" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
-
-build() {
- go generate
- go build \
- -ldflags "
- -X github.com/containous/traefik/v2/pkg/version.Version=$pkgver
- -X github.com/containous/traefik/v2/pkg/version.Codename=cantal
- -X github.com/containous/traefik/v2/pkg/version.BuildDate=$BUILD_TIMESTAMP
- " \
- -v -o bin/$pkgname \
- ./cmd/$pkgname
-}
-
-check() {
- # Unit tests
- go test ./...
-
- # Integration tests
- cd integration
- go test -integration ./...
-}
-
-package() {
- install -Dm755 bin/$pkgname "$pkgdir"/usr/sbin/$pkgname
- setcap cap_net_bind_service=+ep "$pkgdir"/usr/sbin/$pkgname
-
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
-
- install -dm750 -o $pkgname -g $pkgname "$pkgdir"/etc/$pkgname
- install -m644 -o $pkgname -g $pkgname "$srcdir"/traefik.toml \
- "$pkgdir"/etc/$pkgname/$pkgname.toml
-}
-
-cleanup_srcdir() {
- go clean -modcache
- default_cleanup_srcdir
-}
-
-sha512sums="97a8d382c9a6864b22e3b48e1740a84e1cd60904c1be35b3f4dbd00df694b608cacfa6df575fb9ddc342f88a612a4b6c8991b483b7a8b7a7d9e3c844786cac9c traefik-2.2.0.tar.gz
-2fe42052cdb035b202c7c0a1acd5cfe9ed1800ca067f2f5588d54e6ffbdd672d7c46cfd57fcfc219cadaa24d64a0e038a20d092eb1e4c04b67b8eb83c0af74fd traefik.initd
-1519c2f446c4bc3af8407eb367a05e5ec0491f28d56d5385b12a550c84606d84e2424aadd5d72e56e628fd1da3f0f194ab3c077e6da85ead75a256f8e8069751 traefik.confd
-7dff62db55362433fe33a69bfb556e6f285a033aaaab46ea970ae4ee1b19a4b0d6b25bf5523d4dc6b40d26922945fd1263ae8e53d295d6bf7f18ea1477a9e4d5 traefik.toml"
diff --git a/testing/traefik/traefik.confd b/testing/traefik/traefik.confd
deleted file mode 100644
index c9e20672aa4..00000000000
--- a/testing/traefik/traefik.confd
+++ /dev/null
@@ -1,6 +0,0 @@
-# Options that are appended unconditionally
-traefik_opts="--configFile=/etc/traefik/traefik.toml"
-
-# Examples
-CLOUDFLARE_EMAIL=
-CLOUDFLARE_API_KEY=
diff --git a/testing/traefik/traefik.initd b/testing/traefik/traefik.initd
deleted file mode 100644
index f0e8d8f05a1..00000000000
--- a/testing/traefik/traefik.initd
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/sbin/openrc-run
-supervisor=supervise-daemon
-
-name=Traefik
-description="Traefik - a modern reverse proxy"
-
-command=/usr/sbin/traefik
-command_args="${traefik_opts}"
-command_user="traefik:traefik"
-pidfile=/run/${RC_SVCNAME}.pid
-
-healthcheck_timer=60
-
-healthcheck() {
- $command healthcheck >/dev/null
-}
diff --git a/testing/traefik/traefik.pre-install b/testing/traefik/traefik.pre-install
deleted file mode 100644
index 6be69bc8adb..00000000000
--- a/testing/traefik/traefik.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S traefik 2>/dev/null
-adduser -S -H -D -h /var/empty -s /sbin/nologin -G traefik -g traefik traefik 2>/dev/null
-
-exit 0
diff --git a/testing/traefik/traefik.toml b/testing/traefik/traefik.toml
deleted file mode 100644
index a49ed1a71f2..00000000000
--- a/testing/traefik/traefik.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-[global]
- checkNewVersion = true
- sendAnonymousUsage = true
-
-[log]
- level = "INFO"
-
-[entryPoints]
- [entryPoints.http]
- address = ":80"
- [entryPoints.https]
- address = ":443"
- [entryPoints.traefik]
- address = "localhost:8080"
-
-[api]
- insecure = true
- dashboard = true
-
-[ping]
-
-#[certificatesResolvers.sample.acme]
-# email = ""
-# storage = "traefik/acme/account"
-# [certificatesResolvers.sample.acme.dnsChallenge]
-# provider = "cloudflare"
-# delayBeforeCheck = 10
diff --git a/testing/trafficserver9/10-fix-PATH_MAX-on-ppc64le.patch b/testing/trafficserver9/10-fix-PATH_MAX-on-ppc64le.patch
new file mode 100644
index 00000000000..0bc356a92fa
--- /dev/null
+++ b/testing/trafficserver9/10-fix-PATH_MAX-on-ppc64le.patch
@@ -0,0 +1,10 @@
+--- trafficserver-9.1.2.orig/src/tscore/ts_file.cc
++++ trafficserver-9.1.2/src/tscore/ts_file.cc
+@@ -22,6 +22,7 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <dirent.h>
++#include <limits.h>
+
+ namespace ts
+ {
diff --git a/testing/trafficserver9/20-adapt-trafficserver.patch b/testing/trafficserver9/20-adapt-trafficserver.patch
new file mode 100644
index 00000000000..baef863d9b6
--- /dev/null
+++ b/testing/trafficserver9/20-adapt-trafficserver.patch
@@ -0,0 +1,56 @@
+--- trafficserver-9.1.2.orig/rc/trafficserver.in
++++ trafficserver-9.1.2/rc/trafficserver.in
+@@ -62,6 +62,8 @@
+ DISTRIB_ID="debian" # also exists on Ubuntu
+ elif [ -e /etc/slackware-version ]; then
+ DISTRIB_ID="slackware"
++elif [ -e /etc/alpine-release ]; then
++ DISTRIB_ID="alpine"
+ elif [ "$UNAME_S" = "Darwin" ]; then
+ DISTRIB_ID="Darwin"
+ elif [ "$UNAME_S" = "FreeBSD" ]; then
+@@ -311,7 +313,7 @@
+ test "$?" -ne 0 -a "$?" -ne 1 && retval=1
+ test "x$VERBOSE" != "xno" && log_end_msg "$retval"
+ exit "$retval"
+- elif [ "$DISTRIB_ID" = "gentoo" ]; then
++ elif [ "$DISTRIB_ID" = "gentoo" -o "$DISTRIB_ID" = "alpine" ]; then
+ ebegin "Starting ${TS_PACKAGE_NAME}"
+ do_start
+ eend $?
+@@ -348,7 +350,7 @@
+ elif [ "$DISTRIB_ID" = "fedora" -o "$DISTRIB_ID" = "redhat" ]; then
+ action "Stopping ${TM_NAME}:" killproc -p $TM_PIDFILE -d 35 $TM_DAEMON
+ action "Stopping ${TS_NAME}:" killproc -p $TS_PIDFILE -d 35 $TS_DAEMON
+- elif [ "$DISTRIB_ID" = "gentoo" ]; then
++ elif [ "$DISTRIB_ID" = "gentoo" -o "$DISTRIB_ID" = "alpine" ]; then
+ ebegin "Stopping ${TS_PACKAGE_NAME}"
+ do_stop
+ eend $?
+@@ -396,7 +398,7 @@
+ exit "$retval"
+ elif [ "$DISTRIB_ID" = "fedora" -o "$DISTRIB_ID" = "redhat" ]; then
+ action "Reloading ${NAME}:" $TL_BINARY config reload
+- elif [ "$DISTRIB_ID" = "gentoo" ]; then
++ elif [ "$DISTRIB_ID" = "gentoo" -o "$DISTRIB_ID" = "alpine" ]; then
+ ebegin "Reloading ${NAME}"
+ $TL_BINARY config reload
+ eend $?
+@@ -460,7 +462,7 @@
+ status=$?
+ [ $status -eq 0 ] || /bin/echo -n "not "
+ echo "running."
+- elif [ "$DISTRIB_ID" = "FreeBSD" -o "$DISTRIB_ID" = "gentoo" -o "$DISTRIB_ID" = "nixos" ]; then
++ elif [ "$DISTRIB_ID" = "FreeBSD" -o "$DISTRIB_ID" = "gentoo" -o "$DISTRIB_ID" = "nixos" -o "$DISTRIB_ID" = "alpine" ]; then
+ if pgrep $TM_NAME > /dev/null ; then
+ echo "$TM_NAME running as pid `cat $TM_PIDFILE`" ; else
+ echo "$TM_NAME not running"
+@@ -492,7 +494,7 @@
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
+ elif [ "$DISTRIB_ID" = "fedora" -o "$DISTRIB_ID" = "redhat" ]; then
+ echo "Usage: $0 {start|stop|status|restart|condrestart}"
+- elif [ "$DISTRIB_ID" = "gentoo" ]; then
++ elif [ "$DISTRIB_ID" = "gentoo" -o "$DISTRIB_ID" = "alpine" ]; then
+ echo "Usage: $0 {start|stop|reload|restart|status}"
+ elif [ "$DISTRIB_ID" = "suse" ]; then
+ echo "Usage: $0 {start|stop|restart|status}"
diff --git a/testing/trafficserver9/30-fix-perl-installation.patch b/testing/trafficserver9/30-fix-perl-installation.patch
new file mode 100644
index 00000000000..7afdfeee1c3
--- /dev/null
+++ b/testing/trafficserver9/30-fix-perl-installation.patch
@@ -0,0 +1,11 @@
+--- trafficserver-9.1.2.orig/lib/perl/Makefile.in
++++ trafficserver-9.1.2/lib/perl/Makefile.in
+@@ -696,7 +696,7 @@
+ # copy them to the build directory if we are building out of tree.
+ Makefile-pl: Makefile.PL $(top_builddir)/config.status
+ test -f "$(top_builddir)/$(subdir)/Makefile.PL" || cp -rf "$(srcdir)/." "$(top_builddir)/$(subdir)/"
+- $(PERL) Makefile.PL INSTALLDIRS=$(INSTALLDIRS) INSTALL_BASE=$(prefix) PREFIX=
++ $(PERL) Makefile.PL INSTALLDIRS=$(INSTALLDIRS) INSTALL_BASE= PREFIX=$(prefix)
+
+ clean-local:
+ -rm -f Makefile-pl
diff --git a/testing/trafficserver9/40-alpine-dir-layout.patch b/testing/trafficserver9/40-alpine-dir-layout.patch
new file mode 100644
index 00000000000..77e1c01640b
--- /dev/null
+++ b/testing/trafficserver9/40-alpine-dir-layout.patch
@@ -0,0 +1,28 @@
+diff -Nurp trafficserver-9.1.2.orig/config.layout trafficserver-9.1.2/config.layout
+--- trafficserver-9.1.2.orig/config.layout 2021-11-08 22:01:21.000000000 +0300
++++ trafficserver-9.1.2/config.layout 2022-06-12 01:45:35.469908177 +0300
+@@ -277,3 +277,24 @@
+ logdir: /var/log+
+ cachedir: /var/lib+
+ </Layout>
++
++# Alpine Linux path layout.
++<Layout Alpine>
++ prefix: /usr/
++ exec_prefix: ${prefix}
++ bindir: ${exec_prefix}/bin
++ sbindir: ${exec_prefix}/sbin
++ libdir: ${exec_prefix}/lib
++ libexecdir: ${exec_prefix}/libexec+
++ infodir: ${prefix}/share/info
++ mandir: ${prefix}/share/man
++ sysconfdir: /etc+
++ datadir: ${prefix}/share+
++ docdir: ${prefix}/share/doc+
++ installbuilddir: ${datadir}/build
++ includedir: ${prefix}/include
++ localstatedir: /var/lib
++ runtimedir: ${localstatedir}+
++ logdir: /var/log+
++ cachedir: /var/cache+
++</Layout>
diff --git a/testing/trafficserver9/APKBUILD b/testing/trafficserver9/APKBUILD
new file mode 100644
index 00000000000..43c6f7b1fa9
--- /dev/null
+++ b/testing/trafficserver9/APKBUILD
@@ -0,0 +1,286 @@
+# Contributor: Peter Shkenev <santurysim@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=trafficserver9
+_pkgreal=trafficserver
+pkgver=9.2.4
+pkgrel=0
+provides="trafficserver=$pkgver-r$pkgrel"
+pkgdesc="Fast, scalable and extensible HTTP/1.1 and HTTP/2 compliant caching proxy server"
+url="https://trafficserver.apache.org/"
+# other platforms are unsupported
+# ppc64le: luajit
+arch="x86_64 aarch64"
+license="Apache-2.0"
+makedepends="
+ curl-dev
+ flex
+ hwloc-dev
+ libcap-dev
+ libtool
+ libunwind-dev
+ luajit-dev
+ ncurses-dev
+ openssl-dev>3
+ pcre-dev
+ perl
+ zlib-dev
+ "
+options="!check" # test suite fails, reported to upstream
+subpackages="
+ $pkgname-doc
+ $pkgname-dev
+ perl-$pkgname:perl_ts:noarch
+ $pkgname-openrc
+ $pkgname-utils
+ $pkgname-plugin-base:plugin_base
+ $pkgname-plugin-authproxy:plugin_authproxy
+ $pkgname-plugin-backgroundfetch:plugin_backgroundfetch
+ $pkgname-plugin-s3auth:plugin_s3auth
+ $pkgname-plugin-cachekey:plugin_cachekey
+ $pkgname-plugin-cachepromote:plugin_cachepromote
+ $pkgname-plugin-cacherangerequests:plugin_cacherangerequests
+ $pkgname-plugin-combohandler:plugin_combohandler
+ $pkgname-plugin-confremap:plugin_confremap
+ $pkgname-plugin-esi:plugin_esi
+ $pkgname-plugin-escalate:plugin_escalate
+ $pkgname-plugin-generator:plugin_generator
+ $pkgname-plugin-compress:plugin_compress
+ $pkgname-plugin-headerrewrite:plugin_headerrewrite
+ $pkgname-plugin-healthchecks:plugin_healthchecks
+ $pkgname-plugin-lua:plugin_lua
+ $pkgname-plugin-regexremap:plugin_regexremap
+ $pkgname-plugin-regexrevalidate:plugin_regexrevalidate
+ $pkgname-plugin-statsoverhttp:plugin_statsoverhttp
+ $pkgname-plugin-tcpinfo:plugin_tcpinfo
+ $pkgname-plugin-xdebug:plugin_xdebug
+ $pkgname-plugin-certifier:plugin_certifier
+ $pkgname-plugin-multiplexer:plugin_multiplexer
+ $pkgname-plugin-prefetch:plugin_prefetch
+ $pkgname-plugin-remappurge:plugin_remappurge
+ "
+source="
+ https://dlcdn.apache.org/trafficserver/trafficserver-$pkgver.tar.bz2
+ 10-fix-PATH_MAX-on-ppc64le.patch
+ 20-adapt-trafficserver.patch
+ 30-fix-perl-installation.patch
+ 40-alpine-dir-layout.patch
+ no-execinfo.patch
+ fix-pthread.patch
+ trafficserver.initd
+ "
+install="$pkgname.pre-install $pkgname.post-install"
+builddir="$srcdir/$_pkgreal-$pkgver"
+pkgusers="trafficserver"
+pkggroups="trafficserver"
+
+# secfixes:
+# 9.2.4-r0:
+# - CVE-2024-31309
+# 9.2.3-r0:
+# - CVE-2023-39456
+# - CVE-2023-41752
+# - CVE-2023-44487
+
+build() {
+ # Layout contains all dir variables
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --enable-layout=Alpine \
+ --with-user=trafficserver \
+ --with-group=trafficserver
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+ install -Dm755 "$srcdir"/trafficserver.initd "$pkgdir"/etc/init.d/trafficserver
+}
+
+perl_ts() {
+ pkgdesc="Perl modules for managing Apache Traffic Server"
+ depends="perl $depends"
+ amove usr/lib/perl5
+ amove usr/share/perl5
+}
+
+plugin_base() {
+ pkgdesc="Apache Traffic Server plugin core libraries"
+ amove usr/lib/plugin*
+ amove usr/libexec/trafficserver/libloader.so
+ amove usr/libexec/trafficserver/server_push_preload.so
+}
+
+plugin_authproxy() {
+ pkgdesc="Apache Traffic Server AuthProxy plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/authproxy.so
+}
+
+plugin_backgroundfetch() {
+ pkgdesc="Apache Traffic Server Background Fetch plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/background_fetch.so
+}
+
+plugin_s3auth() {
+ pkgdesc="Apache Traffic Server AWS S3 Authentication plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/s3_auth.so
+}
+
+plugin_cachekey() {
+ pkgdesc="Apache Traffic Server Cache Key and Parent Selection URL Manipulation plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/cachekey.so
+}
+
+plugin_cachepromote() {
+ pkgdesc="Apache Traffic Server Cache Promotion Policies plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/cache_promote.so
+}
+
+plugin_cacherangerequests() {
+ pkgdesc="Apache Traffic Server Cache Range Requests plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/cache_range_requests.so
+}
+
+plugin_combohandler() {
+ pkgdesc="Apache Traffic Server Combo Handler plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/combo_handler.so
+}
+
+plugin_confremap() {
+ pkgdesc="Apache Traffic Server Configuration Remap plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/conf_remap.so
+}
+
+plugin_esi() {
+ pkgdesc="Apache Traffic Server ESI plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/esi.so
+}
+
+plugin_escalate() {
+ pkgdesc="Apache Traffic Server Escalate plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/escalate.so
+}
+
+plugin_generator() {
+ pkgdesc="Apache Traffic Server Generator plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/generator.so
+}
+
+plugin_compress() {
+ pkgdesc="Apache Traffic Server Compress plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/compress.so
+}
+
+plugin_headerrewrite() {
+ pkgdesc="Apache Traffic Server Header Rewrite plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/header_rewrite.so
+}
+
+plugin_healthchecks() {
+ pkgdesc="Apache Traffic Server Health Checks plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/healthchecks.so
+}
+
+plugin_lua() {
+ pkgdesc="Apache Traffic Server Lua plugin"
+ depends="$pkgname-plugin-base luajit $depends"
+ amove usr/libexec/trafficserver/tslua.so
+}
+
+plugin_regexremap() {
+ pkgdesc="Apache Traffic Server Regex Remap plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/regex_remap.so
+}
+
+plugin_regexrevalidate() {
+ pkgdesc="Apache Traffic Server Regex Revalidate plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/regex_revalidate.so
+}
+
+plugin_statsoverhttp() {
+ pkgdesc="Apache Traffic Server Stats over HTTP plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/stats_over_http.so
+}
+
+plugin_tcpinfo() {
+ pkgdesc="Apache Traffic Server TPCinfo plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/tcpinfo.so
+}
+
+plugin_xdebug() {
+ pkgdesc="Apache Traffic Server XDebug plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/xdebug.so
+}
+
+plugin_certifier() {
+ pkgdesc="Apache Traffic Server Certifier plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/certifier.so
+}
+
+plugin_multiplexer() {
+ pkgdesc="Apache Traffic Server Multiplexer plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/multiplexer.so
+}
+
+plugin_prefetch() {
+ pkgdesc="Apache Traffic Server Prefetch plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/prefetch.so
+}
+
+plugin_remappurge() {
+ pkgdesc="Apache Traffic Server Remap Purge plugin"
+ depends="$pkgname-plugin-base $depends"
+ amove usr/libexec/trafficserver/remap_purge.so
+}
+
+utils() {
+ pkgdesc="Apache Traffic Server auxiliary utils"
+ depends="curl $depends"
+ amove usr/bin/traffic_cache_tool
+ amove usr/bin/traffic_crashlog
+ amove usr/bin/traffic_layout
+ amove usr/bin/traffic_logcat
+ amove usr/bin/traffic_logstats
+ amove usr/bin/traffic_top
+ amove usr/bin/traffic_via
+ amove usr/bin/tspush
+ amove usr/bin/tsxs
+}
+
+sha512sums="
+8f75a1997466ddfaa2fad7ba7ea20dd46c6442eae4d75cf26670feb4ed0dc16b71e14ebd4ecf907abefed9e8d37ce7d7735de578659183c63c42d09adc744888 trafficserver-9.2.4.tar.bz2
+fbbe4fd4024b4656a3d4f67bdace7ae3a65892d40a92c67245e277520dfd53d5e9eb7934b2d213dfecc4de6895c63ec67cef0edee7b43ba28319cfaa3c75ddf3 10-fix-PATH_MAX-on-ppc64le.patch
+fe9b8344979fc5da885203146f4052016401354aa5310c30edc0e89f714e47492b1ec900e5f8ca02bd1910f0d4b4f4512536d9e7db9cf87f127e7259aba315dd 20-adapt-trafficserver.patch
+47d7d83be1e7798bb905c217efab9480aa6e6218eb09317c20c457f454895016a6104818d86223a051c8adc40f42c7436aa607f73e505c939bd2d5dd8e5efa45 30-fix-perl-installation.patch
+791b5ea9620574b172587fb2fcde97da53ca4c4a64110f1e1e13b9e475ffa255753fd98933a2f0f1ef44a2bf7810f6828445147fc6dcc8a41869b62271a728ad 40-alpine-dir-layout.patch
+53a834590ae5e4487229895f60fd1e34858418419655e37c03f8c4a1075905b40449dde817f10b39173ac27391ec9a6e75839bb5a4d8f631d8fb9d479d0a8d15 no-execinfo.patch
+b675d57791d427a75dce63b35574bbf49192451cf022c5332c042d0e578c0d89ceff4c4c79ac71e323710c935c2735ceb0e0ebcd12709c5e67be44dce0c9d7fb fix-pthread.patch
+a4d2e91d92579ba8b0c5361b0f4fd490d7a90e8a170552428f4781432eca89503a87a2c6f571a342eb77db5a43baa03d779a1fbe37ce1f4bba24fe89d5c97e7d trafficserver.initd
+"
diff --git a/testing/trafficserver9/fix-pthread.patch b/testing/trafficserver9/fix-pthread.patch
new file mode 100644
index 00000000000..48774639d3a
--- /dev/null
+++ b/testing/trafficserver9/fix-pthread.patch
@@ -0,0 +1,22 @@
+--- a/include/tscore/ink_rwlock.h
++++ b/include/tscore/ink_rwlock.h
+@@ -40,7 +40,7 @@
+ // Instead of calling ink_rwlock_init(), an ink_rwlock instance can be initialized with one of thsee values.
+ //
+ ink_rwlock const INK_RWLOCK_INIT = PTHREAD_RWLOCK_INITIALIZER;
+-#if defined(linux)
++#if defined(linux) && defined(__GLIBC__)
+ ink_rwlock const INK_RWLOCK_INIT_NO_WRITER_STARVATION = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
+ #else
+ // Testing indicates that for MacOS/Darwin and FreeBSD, pthread rwlocks always prevent writer starvation.
+--- a/include/tscpp/util/TsSharedMutex.h
++++ b/include/tscpp/util/TsSharedMutex.h
+@@ -207,7 +207,7 @@
+ }
+ }
+
+-#if defined(linux)
++#if defined(linux) && defined(__GLIBC__)
+ // Use the initializer that prevents writer starvation.
+ //
+ pthread_rwlock_t _lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
diff --git a/testing/trafficserver9/no-execinfo.patch b/testing/trafficserver9/no-execinfo.patch
new file mode 100644
index 00000000000..4cf9fc78ca1
--- /dev/null
+++ b/testing/trafficserver9/no-execinfo.patch
@@ -0,0 +1,49 @@
+diff --git a/include/tscore/Allocator.h b/include/tscore/Allocator.h
+index fd5200b..8b5ba64 100644
+--- a/include/tscore/Allocator.h
++++ b/include/tscore/Allocator.h
+@@ -45,7 +45,6 @@
+ #include "tscore/ink_queue.h"
+ #include "tscore/ink_defs.h"
+ #include "tscore/ink_resource.h"
+-#include <execinfo.h>
+
+ #define RND16(_x) (((_x) + 15) & ~15)
+
+@@ -200,14 +199,9 @@ public:
+ C *
+ alloc()
+ {
+- void *callstack[3];
+- int frames = backtrace(callstack, 3);
+ C *ptr = ClassAllocator<C, Destruct_on_free>::alloc();
+
+ const void *symbol = nullptr;
+- if (frames == 3 && callstack[2] != nullptr) {
+- symbol = callstack[2];
+- }
+
+ tracker.increment(symbol, (int64_t)sizeof(C), this->fl->name);
+ ink_mutex_acquire(&trackerLock);
+diff --git a/src/tscore/ink_resource.cc b/src/tscore/ink_resource.cc
+index 14a1904..d8160d3 100644
+--- a/src/tscore/ink_resource.cc
++++ b/src/tscore/ink_resource.cc
+@@ -24,7 +24,6 @@
+ #include "tscore/ink_assert.h"
+ #include "tscore/ink_atomic.h"
+ #include "tscore/ink_resource.h"
+-#include <execinfo.h>
+
+ int res_track_memory = 0; // Disabled by default
+ uint64_t ssl_memory_allocated = 0;
+--- a/iocore/eventsystem/P_UnixEThread.h
++++ b/iocore/eventsystem/P_UnixEThread.h
+@@ -32,7 +32,6 @@
+
+ #include "I_EThread.h"
+ #include "I_EventProcessor.h"
+-#include <execinfo.h>
+
+ const ink_hrtime DELAY_FOR_RETRY = HRTIME_MSECONDS(10);
+
diff --git a/testing/trafficserver9/trafficserver.initd b/testing/trafficserver9/trafficserver.initd
new file mode 100644
index 00000000000..13a9209593e
--- /dev/null
+++ b/testing/trafficserver9/trafficserver.initd
@@ -0,0 +1,43 @@
+#!/sbin/openrc-run
+
+name="Apache Traffic Server"
+command="/usr/bin/traffic_manager"
+command_background="yes"
+
+pidfile="/run/traffic_manager.pid"
+ts_pidfile=/var/lib/trafficserver/server.lock
+tm_pidfile=/var/lib/trafficserver/manager.lock
+
+tm_name="/usr/bin/traffic_manager"
+ts_name="/usr/bin/traffic_server"
+
+extra_started_commands="reload"
+
+depend() {
+ need net
+ after firewall
+}
+
+stop() {
+ ebegin "Stopping Apache Traffic Server manager"
+ start-stop-daemon --stop --quiet --retry=QUIT/30/KILL/5 --pidfile "$pidfile" --name "$tm_name"
+ eend $?
+
+ ebegin "Stopping remaining Apache Traffic Server manager instances"
+ start-stop-daemon --stop --quiet --retry=0/30/KILL/5 --exec "$ts_name"
+ eend $?
+
+ # Stop traffic_server instance
+ ebegin "Stopping remaining Apache Traffic Server instances"
+ start-stop-daemon --stop --quiet --retry=QUIT/30/KILL/5 --pidfile "$ts_pidfile" --name "$ts_name"
+ eend $?
+
+ # Clean up pidfiles
+ rm -f "$ts_pidfile" "$tm_pidfile"
+}
+
+reload() {
+ ebegin "Reloading Apache Traffic Server configuration"
+ traffic_ctl config reload
+ eend $?
+}
diff --git a/testing/trafficserver9/trafficserver9.post-install b/testing/trafficserver9/trafficserver9.post-install
new file mode 100644
index 00000000000..ad53532e11d
--- /dev/null
+++ b/testing/trafficserver9/trafficserver9.post-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo "Using rc-service trafficserver <cmd> is recommended over trafficserver <cmd>."
diff --git a/testing/trafficserver9/trafficserver9.pre-install b/testing/trafficserver9/trafficserver9.pre-install
new file mode 100644
index 00000000000..c8ceb213ade
--- /dev/null
+++ b/testing/trafficserver9/trafficserver9.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S trafficserver 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G trafficserver -g "Apache Traffic Server" trafficserver 2>/dev/null
+
+exit 0
diff --git a/testing/transmission-remote-gtk/APKBUILD b/testing/transmission-remote-gtk/APKBUILD
new file mode 100644
index 00000000000..ae6e34b77e5
--- /dev/null
+++ b/testing/transmission-remote-gtk/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Willow Barraco <contact@willowbarraco.fr>
+pkgname=transmission-remote-gtk
+pkgver=1.6.0
+pkgrel=0
+pkgdesc="GTK client for remote management of the Transmission BitTorrent client"
+url="https://github.com/transmission-remote-gtk/transmission-remote-gtk"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ appstream-glib-dev
+ geoip-dev
+ gtk+3.0-dev
+ json-glib-dev
+ libayatana-appindicator-dev
+ libsoup3-dev
+ meson
+ perl
+ "
+options="!check" # no tests
+source="https://github.com/transmission-remote-gtk/transmission-remote-gtk/releases/download/$pkgver/transmission-remote-gtk-$pkgver.tar.xz"
+subpackages="$pkgname-doc $pkgname-lang"
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+351079d91cc5b33c7955103cbc28d1010bf3d18668689ff5b690ff2214d9e44cdd9f841ebe207260d31c332650d6ae05a0d9ceb7696861c8be5beeae4d0a08d5 transmission-remote-gtk-1.6.0.tar.xz
+"
diff --git a/testing/trantor/APKBUILD b/testing/trantor/APKBUILD
new file mode 100644
index 00000000000..4f4267d896d
--- /dev/null
+++ b/testing/trantor/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=trantor
+pkgver=1.5.17
+pkgrel=0
+pkgdesc="A non-blocking I/O tcp network lib based on c++14/17."
+url="https://github.com/an-tao/trantor"
+arch="all"
+license="BSD-3-Clause"
+makedepends="
+ cmake
+ doxygen
+ openssl-dev
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/an-tao/trantor/archive/v$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ install -Dm644 License "$pkgdir/usr/share/licenses/$pkgname/License"
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+43202240968b90d0e6d211d3b7a918567587e4ad26c360848efee2661cc1d49d35de408db5e2ff7314be879faac99ffa29ffa1f3735f9606d95874130db05250 trantor-1.5.17.tar.gz
+"
diff --git a/testing/tre/APKBUILD b/testing/tre/APKBUILD
new file mode 100644
index 00000000000..3cbd8ae68b1
--- /dev/null
+++ b/testing/tre/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Al-Hassan Abdel-Raouf <alhassanaraouf@disroot.org>
+# Maintainer: Al-Hassan Abdel-Raouf <alhassanaraouf@disroot.org>
+pkgname=tre
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="POSIX compliant regexp matching library"
+options="!check" # No testsuite
+url="https://laurikari.net/tre"
+arch="all"
+license="BSD-2-Clause"
+subpackages="$pkgname-static $pkgname-dev agrep agrep-doc"
+source="https://laurikari.net/tre/tre-$pkgver.tar.bz2"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+agrep() {
+ pkgdesc="approximate grepping"
+ amove usr/bin/agrep
+}
+
+sha512sums="db7465993e0d25eee8e52f974427b8a040234cf0f017769eb94ee88bc6261821336aad7f762bfa82db7e2212d8449bc221592586f061c528a59a550773cbc263 tre-0.8.0.tar.bz2"
diff --git a/testing/tree-sitter-c-sharp/APKBUILD b/testing/tree-sitter-c-sharp/APKBUILD
new file mode 100644
index 00000000000..0ad08acd4be
--- /dev/null
+++ b/testing/tree-sitter-c-sharp/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-c-sharp
+pkgver=0.20.0
+pkgrel=1
+pkgdesc="C# Grammar for tree-sitter"
+url="https://github.com/tree-sitter/tree-sitter-c-sharp"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tree-sitter/tree-sitter-c-sharp/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+31530ff57d02b84c8e7e7183abb927c40839500afc225cfdbe685495962c3f129ea459efaf73abbb76951bfc14b890cbdfa9a847b3ae92c8db495d173d0e0e08 tree-sitter-c-sharp-0.20.0.tar.gz
+"
diff --git a/testing/tree-sitter-caddy/APKBUILD b/testing/tree-sitter-caddy/APKBUILD
new file mode 100644
index 00000000000..b2f71c21885
--- /dev/null
+++ b/testing/tree-sitter-caddy/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-caddy
+pkgver=0_git20230322
+_gitrev=65b60437983933d00809c8927e7d8a29ca26dfa3
+pkgrel=0
+pkgdesc="Caddyfile grammar for tree-sitter"
+url="https://github.com/Samonitari/tree-sitter-caddy"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+checkdepends="tree-sitter-cli"
+install_if="tree-sitter-grammars"
+subpackages="$pkgname-doc"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/Samonitari/tree-sitter-caddy/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ abuild-tree-sitter build
+}
+
+check() {
+ tree-sitter test
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+6bda2b1b7a7c4c4387021d26580eb99a91bc7756b737c7f7205428ea178744c4efafc38be3c8ad41065816113d127a2307c42bdaa05d9543d0b33fb8851865ee tree-sitter-caddy-65b60437983933d00809c8927e7d8a29ca26dfa3.tar.gz
+"
diff --git a/testing/tree-sitter-clojure/APKBUILD b/testing/tree-sitter-clojure/APKBUILD
new file mode 100644
index 00000000000..b18ebc53102
--- /dev/null
+++ b/testing/tree-sitter-clojure/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Alex McGrath <amk@amk.ie>
+# Maintainer: Alex McGrath <amk@amk.ie>
+pkgname=tree-sitter-clojure
+pkgver=0.0.12
+pkgrel=0
+pkgdesc="Clojure for tree-sitter"
+url="https://github.com/sogaiu/tree-sitter-clojure"
+arch="all"
+license="CC0-1.0"
+makedepends="tree-sitter-dev"
+checkdepends="tree-sitter-cli"
+install_if="tree-sitter-grammars"
+source="https://github.com/sogaiu/tree-sitter-clojure/archive/v$pkgver/tree-sitter-clojure-v$pkgver.tar.gz"
+
+build() {
+ abuild-tree-sitter build
+}
+
+check() {
+ tree-sitter test
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+1946c657b04307e686bee251ebeab5a74b11acf758eac0cd5e60269c0e1a9dad645966f38251e3c92b546ff25b13f2f1543d69662bb90bc991a12d1ed6dc6bb2 tree-sitter-clojure-v0.0.12.tar.gz
+"
diff --git a/testing/tree-sitter-dart/APKBUILD b/testing/tree-sitter-dart/APKBUILD
new file mode 100644
index 00000000000..f02d47db84e
--- /dev/null
+++ b/testing/tree-sitter-dart/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-dart
+pkgver=0_git20230123
+_gitrev=23e3921190eb9746cec64167f6110c987c7f95c6
+pkgrel=1
+pkgdesc="A tree-sitter grammar written for the dart programming language"
+url="https://github.com/ast-grep/tree-sitter-dart"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/ast-grep/tree-sitter-dart/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+bbbffe14d62791534f2f99af5874b49244e26bd6b66fc2c7bd48b64d170845baaf72e32d8e6018b6a631cd98dec9563d31f50c67c8f3c50aeb0eaa30b522df3d tree-sitter-dart-23e3921190eb9746cec64167f6110c987c7f95c6.tar.gz
+"
diff --git a/testing/tree-sitter-elixir/APKBUILD b/testing/tree-sitter-elixir/APKBUILD
new file mode 100644
index 00000000000..3e2c757160b
--- /dev/null
+++ b/testing/tree-sitter-elixir/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=tree-sitter-elixir
+pkgver=0.1.1
+pkgrel=0
+pkgdesc="Elixir grammar for tree-sitter"
+url="https://github.com/elixir-lang/tree-sitter-elixir"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="https://github.com/elixir-lang/tree-sitter-elixir/archive/v$pkgver/tree-sitter-elixir-$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+d1ba3c9755004a281fa18785fe0d7d419f25fd50adcfb325724965dfcfb511043e3e385f79b71b7d0d35355767031575fad2c9f9eb3034cf93ff89eb61aa70c2 tree-sitter-elixir-0.1.1.tar.gz
+"
diff --git a/testing/tree-sitter-git-commit/APKBUILD b/testing/tree-sitter-git-commit/APKBUILD
new file mode 100644
index 00000000000..84c4255b3b5
--- /dev/null
+++ b/testing/tree-sitter-git-commit/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=tree-sitter-git-commit
+pkgver=0_git20211225
+_gitrev=066e395e1107df17183cf3ae4230f1a1406cc972
+pkgrel=2
+pkgdesc="Tree-sitter grammar for git commit messages"
+url="https://github.com/the-mikedavis/tree-sitter-git-commit"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="https://github.com/the-mikedavis/tree-sitter-git-commit/archive/$_gitrev/tree-sitter-git-commit-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+97927a961d0c81b92148c0e6dd6b5554493fed2002f7677305254b750644be53ce6837d8a6bccf857ea6b5c433bc60469d09700e9ce6ac52a2396edfe310f34d tree-sitter-git-commit-066e395e1107df17183cf3ae4230f1a1406cc972.tar.gz
+"
diff --git a/testing/tree-sitter-git-diff/APKBUILD b/testing/tree-sitter-git-diff/APKBUILD
new file mode 100644
index 00000000000..6c5c662c2aa
--- /dev/null
+++ b/testing/tree-sitter-git-diff/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=tree-sitter-git-diff
+pkgver=0_git20230730
+_gitrev=c165725c28e69b36c5799ff0e458713a844f1aaf
+pkgrel=0
+pkgdesc="Tree-sitter grammar for 'git diff' output"
+url="https://github.com/the-mikedavis/tree-sitter-diff"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="https://github.com/the-mikedavis/tree-sitter-diff/archive/$_gitrev/tree-sitter-git-diff-$_gitrev.tar.gz"
+builddir="$srcdir/tree-sitter-diff-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+d8cb76b412f7ebd781a74c0a7857c859d634d11d89b0ce4b94c6066f97c027ef45caa946e209442efe67e3b219629b267870ffd2b3a4dc83cd4e98e2aecd7500 tree-sitter-git-diff-c165725c28e69b36c5799ff0e458713a844f1aaf.tar.gz
+"
diff --git a/testing/tree-sitter-git-rebase/APKBUILD b/testing/tree-sitter-git-rebase/APKBUILD
new file mode 100644
index 00000000000..feb3014770e
--- /dev/null
+++ b/testing/tree-sitter-git-rebase/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=tree-sitter-git-rebase
+pkgver=0_git20220110
+_gitrev=cb290f68e3e67c835f4eb5ced08c37acc91c464f
+pkgrel=2
+pkgdesc="Tree-sitter grammar for git's interactive rebase file"
+url="https://github.com/the-mikedavis/tree-sitter-git-rebase"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="https://github.com/the-mikedavis/tree-sitter-git-rebase/archive/$_gitrev/tree-sitter-git-rebase-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+88f9f0fb18660ef85f47142637de5f49016c3b98493e50b83adb0ecbba88e1861ee137c4c40f7056f0d4f2e6447bdda3cf7a25eb3965897ef3586080076a2b0f tree-sitter-git-rebase-cb290f68e3e67c835f4eb5ced08c37acc91c464f.tar.gz
+"
diff --git a/testing/tree-sitter-hare/APKBUILD b/testing/tree-sitter-hare/APKBUILD
new file mode 100644
index 00000000000..15616d8e460
--- /dev/null
+++ b/testing/tree-sitter-hare/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Pedro Lucas Porcellis <porcellis@eletrotupi.com>
+pkgname=tree-sitter-hare
+pkgver=0_git20230616
+_commit="7d9080c73eacb7b22900a71320058025615d57fa"
+pkgrel=1
+pkgdesc="Hare grammar for tree-sitter"
+url="https://git.sr.ht/~ghishadow/tree-sitter-hare"
+arch="all"
+license="GPL-3.0"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="
+ $pkgname-$_commit.tar.gz::https://git.sr.ht/~ghishadow/tree-sitter-hare/archive/$_commit.tar.gz
+ "
+options="!check" # no tests for shared lib
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+3e817ae02b39f67a32c2564db5961017736133a0afc747fe86c73c7910c881e57cc6ad3b9e473628e301759e60e20b45a8ad3df30147df93d094f49885befe5f tree-sitter-hare-7d9080c73eacb7b22900a71320058025615d57fa.tar.gz
+"
diff --git a/testing/tree-sitter-hcl/APKBUILD b/testing/tree-sitter-hcl/APKBUILD
new file mode 100644
index 00000000000..19465a2d2c9
--- /dev/null
+++ b/testing/tree-sitter-hcl/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=tree-sitter-hcl
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="tree-sitter grammar for HCL"
+url="https://github.com/MichaHoffmann/tree-sitter-hcl"
+arch="all"
+license="Apache-2.0"
+makedepends="tree-sitter-dev"
+checkdepends="tree-sitter-cli"
+install_if="tree-sitter-grammars"
+source="$pkgname-$pkgver.tar.gz::https://github.com/MichaHoffmann/tree-sitter-hcl/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ abuild-tree-sitter build
+}
+
+check() {
+ tree-sitter test
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+d8bf5d558d9eb378c3dd8b740463b25062f5cf4f12756e32058824e28e3114e51bbedccd0de2981503ef873d227e56bb7a5069e362c5e77f0f9bc0e3f8bfacd5 tree-sitter-hcl-1.1.0.tar.gz
+"
diff --git a/testing/tree-sitter-just/APKBUILD b/testing/tree-sitter-just/APKBUILD
new file mode 100644
index 00000000000..08fd8f269ca
--- /dev/null
+++ b/testing/tree-sitter-just/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-just
+pkgver=0_git20230318
+_gitrev=4e5f5f3ff37b12a1bbf664eb3966b3019e924594
+pkgrel=0
+pkgdesc="Treesitter grammar for Justfiles (casey/just)"
+url="https://github.com/IndianBoy42/tree-sitter-just"
+arch="all"
+license="Apache-2.0"
+makedepends="tree-sitter-dev"
+checkdepends="tree-sitter-cli"
+install_if="tree-sitter-grammars"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/IndianBoy42/tree-sitter-just/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+
+prepare() {
+ default_prepare
+
+ mv "$builddir"/queries/just/* -t "$builddir"/queries
+}
+
+build() {
+ abuild-tree-sitter build
+}
+
+check() {
+ tree-sitter test
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+ed40d42d6ca9d56d5ad6f55cd25534e482dae539a86f30149bb472d93b13ca9827f36bc6ab40d1e1f90a1e38f51ae3b354f547c11f17a9ddceb4d9391f233fb0 tree-sitter-just-4e5f5f3ff37b12a1bbf664eb3966b3019e924594.tar.gz
+"
diff --git a/testing/tree-sitter-kotlin/APKBUILD b/testing/tree-sitter-kotlin/APKBUILD
new file mode 100644
index 00000000000..910061e90d7
--- /dev/null
+++ b/testing/tree-sitter-kotlin/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-kotlin
+pkgver=0.3.5
+pkgrel=0
+pkgdesc="Kotlin grammar for Tree-Sitter"
+url="https://github.com/fwcd/tree-sitter-kotlin"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fwcd/tree-sitter-kotlin/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+b699463391cc811abb9368b59a789e8574e065573d93627e5a41590effe99f2318bda3bb1026e80435dc3cdd5998dc70955da15f57251394a0bbfcb5f60b8672 tree-sitter-kotlin-0.3.5.tar.gz
+"
diff --git a/testing/tree-sitter-make/APKBUILD b/testing/tree-sitter-make/APKBUILD
new file mode 100644
index 00000000000..ce6c32359dc
--- /dev/null
+++ b/testing/tree-sitter-make/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=tree-sitter-make
+pkgver=0_git20211216
+_gitrev=a4b9187417d6be349ee5fd4b6e77b4172c6827dd
+pkgrel=2
+pkgdesc="Tree-sitter grammar for Make"
+url="https://github.com/alemuller/tree-sitter-make"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="https://github.com/alemuller/tree-sitter-make/archive/$_gitrev/tree-sitter-make-$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+d2d33c64c97caa2e54ca3fcfd33d00e2ca9f3dbbdbeaa60308d2d34dbba9b8519980bc2f5331ee9159efcf4d942a412fb4e4bbff4c4f926ac14ecc767b788069 tree-sitter-make-a4b9187417d6be349ee5fd4b6e77b4172c6827dd.tar.gz
+"
diff --git a/testing/tree-sitter-markdown/APKBUILD b/testing/tree-sitter-markdown/APKBUILD
new file mode 100644
index 00000000000..a1990f3a5af
--- /dev/null
+++ b/testing/tree-sitter-markdown/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-markdown
+pkgver=0.2.3
+pkgrel=0
+pkgdesc="A markdown grammar for tree-sitter"
+url="https://github.com/Mdeiml/tree-sitter-markdown"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+subpackages="$pkgname-doc"
+provides="tree-sitter-markdown-inline=$pkgver-r$pkgrel"
+install_if="tree-sitter-grammars"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Mdeiml/tree-sitter-markdown/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+_langs='markdown markdown-inline'
+
+build() {
+ local lang; for lang in $_langs; do
+ abuild-tree-sitter build -s "tree-sitter-$lang/src"
+ done
+}
+
+package() {
+ local lang; for lang in $_langs; do
+ DESTDIR="$pkgdir" abuild-tree-sitter install -s "tree-sitter-$lang/src"
+ done
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+8b6849d6dc964c82e45c3d18599d9f3e0ee9656a5085a9ec47f72d0343969e379ce190628a04dae64cb4ecdca2497e6d33ca7175e1f73796742a3ee6ffea743f tree-sitter-markdown-0.2.3.tar.gz
+"
diff --git a/testing/tree-sitter-nix/APKBUILD b/testing/tree-sitter-nix/APKBUILD
new file mode 100644
index 00000000000..ce107b7f426
--- /dev/null
+++ b/testing/tree-sitter-nix/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-nix
+pkgver=0_git20230713
+_gitrev=66e3e9ce9180ae08fc57372061006ef83f0abde7
+pkgrel=0
+pkgdesc="Nix grammar for tree-sitter"
+url="https://github.com/nix-community/tree-sitter-nix"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+subpackages="$pkgname-doc"
+install_if="tree-sitter-grammars"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/nix-community/tree-sitter-nix/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+9f2d3f44af8b0c4b17aae83112fdaa15e945e5cdd0938bc4f1043dfac762ba9d56e7e8f575d62dfbacc57447443cca7b9ff93ecc72721d393d25d3a2761891f9 tree-sitter-nix-66e3e9ce9180ae08fc57372061006ef83f0abde7.tar.gz
+"
diff --git a/testing/tree-sitter-ron/APKBUILD b/testing/tree-sitter-ron/APKBUILD
new file mode 100644
index 00000000000..73536a65455
--- /dev/null
+++ b/testing/tree-sitter-ron/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-ron
+pkgver=0_git20220508
+_gitrev=7762d709a0f7c1f9e269d0125a2e8a7a69006146
+pkgrel=1
+pkgdesc="Rusty Object Notation (RON) grammar for tree-sitter"
+url="https://github.com/zee-editor/tree-sitter-ron"
+arch="all"
+license="Apache-2.0"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/zee-editor/tree-sitter-ron/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+da1b4e8154b8e2285982b27fa628aa72152cf1b6b5a90b0fab5109c5b6cdc3c217eb5cb13ba0306bf5fbec1c992ebd3e4d9042c81f982650542246ac82b2734b tree-sitter-ron-7762d709a0f7c1f9e269d0125a2e8a7a69006146.tar.gz
+"
diff --git a/testing/tree-sitter-scheme/APKBUILD b/testing/tree-sitter-scheme/APKBUILD
new file mode 100644
index 00000000000..5698269c61d
--- /dev/null
+++ b/testing/tree-sitter-scheme/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-scheme
+pkgver=0.6.0
+pkgrel=0
+pkgdesc="Scheme grammar for tree-sitter"
+url="https://github.com/6cdh/tree-sitter-scheme"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+subpackages="$pkgname-doc"
+install_if="tree-sitter-grammars"
+source="$pkgname-$pkgver.tar.gz::https://github.com/6cdh/tree-sitter-scheme/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+67eaf3a4ae9e338727005fe79a9d1b9887d28f54a9dc73c521be1fb759e3832e659d46186574e48bc616e1da695792e63e69eaafc3e36197d31541e1f98c3319 tree-sitter-scheme-0.6.0.tar.gz
+"
diff --git a/testing/tree-sitter-ssh-client-config/APKBUILD b/testing/tree-sitter-ssh-client-config/APKBUILD
new file mode 100644
index 00000000000..0fff7d11e05
--- /dev/null
+++ b/testing/tree-sitter-ssh-client-config/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-ssh-client-config
+pkgver=2024.4.18
+pkgrel=0
+pkgdesc="tree-sitter grammar for SSH client configuration files"
+url="https://github.com/metio/tree-sitter-ssh-client-config"
+arch="all"
+license="CC0-1.0"
+makedepends="tree-sitter-dev"
+install_if="tree-sitter-grammars"
+source="https://github.com/metio/tree-sitter-ssh-client-config/archive/refs/tags/$pkgver/tree-sitter-ssh-client-config-$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+build() {
+ abuild-tree-sitter build
+}
+
+package() {
+ DESTDIR="$pkgdir" abuild-tree-sitter install
+}
+
+sha512sums="
+1d2416c1a51ff2dd2af8f5762efe5e83ddae4d149040017830f3e1d8b42e8eb8d7658ad0ac4cde101c7743e8ce5e89b33de40d96601a74cb7b76f567c9e626f9 tree-sitter-ssh-client-config-2024.4.18.tar.gz
+"
diff --git a/testing/tree-sitter-xml/APKBUILD b/testing/tree-sitter-xml/APKBUILD
new file mode 100644
index 00000000000..03162e7457e
--- /dev/null
+++ b/testing/tree-sitter-xml/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=tree-sitter-xml
+pkgver=0.6.2
+pkgrel=0
+pkgdesc="XML & DTD grammars for tree-sitter"
+url="https://github.com/ObserverOfTime/tree-sitter-xml"
+arch="all"
+license="MIT"
+makedepends="tree-sitter-dev"
+subpackages="$pkgname-doc"
+provides="tree-sitter-dtd=$pkgver-r$pkgrel"
+install_if="tree-sitter-grammars"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ObserverOfTime/tree-sitter-xml/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # no tests for shared lib
+
+_langs='xml dtd'
+
+build() {
+ local lang; for lang in $_langs; do
+ abuild-tree-sitter build -s "$lang/src"
+ done
+}
+
+package() {
+ local lang; for lang in $_langs; do
+ DESTDIR="$pkgdir" abuild-tree-sitter install -s "$lang/src" -q "$lang/queries"
+ done
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+5034affe959b3fb5112f8074dce196eab09f3d3e1ec154e77f0bfb119110c3cd5edaddbb11495b0f393d0dbc735e56ae25a968fa5bc6897ee8bb6a281e3c0fe8 tree-sitter-xml-0.6.2.tar.gz
+"
diff --git a/testing/treecat/APKBUILD b/testing/treecat/APKBUILD
new file mode 100644
index 00000000000..793cef25498
--- /dev/null
+++ b/testing/treecat/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Umar Getagazov <umar@handlerug.me>
+pkgname=treecat
+_commit=d277aed99eb48eef891b76916a61029989c41d2d
+pkgver=1.0.2_git20231128
+pkgrel=1
+pkgdesc="Serialize a directory to a tree diagram, and vice versa"
+url="https://sr.ht/~autumnull/treecat"
+arch="x86_64 aarch64 riscv64" # Hare
+license="WTFPL"
+makedepends="hare haredo scdoc"
+subpackages="$pkgname-doc"
+source="$pkgname-$_commit.tar.gz::https://git.sr.ht/~autumnull/treecat/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ haredo
+}
+
+check() {
+ haredo test
+}
+
+package() {
+ PREFIX="$pkgdir"/usr haredo install
+}
+
+sha512sums="
+dee6d7eaf5fe5d326cf424a3c6d28ec377970b97fc5dab37dcb410c7dd0551d3625617e85d879317a36b8d24b04044f1ce5bce47ae376f8abb211a7788ecca30 treecat-d277aed99eb48eef891b76916a61029989c41d2d.tar.gz
+"
diff --git a/testing/tremc/APKBUILD b/testing/tremc/APKBUILD
new file mode 100644
index 00000000000..939885bdd84
--- /dev/null
+++ b/testing/tremc/APKBUILD
@@ -0,0 +1,21 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=tremc
+pkgver=0.9.3
+pkgrel=0
+pkgdesc="curses interface for transmission"
+url="https://github.com/tremc/tremc"
+arch="noarch"
+license="GPL-3.0-only"
+depends="python3"
+options="!check" # no test suite
+subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-zsh-completion"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tremc/tremc/archive/$pkgver.tar.gz"
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+cbc40ce36eec1f641a6754933e7b009ca3d47e9a2d5091f7677f8005c466f6d0c744023b92e6b5aa93e736828390917c2b5f2f87ba6634d74016960b764467eb tremc-0.9.3.tar.gz
+"
diff --git a/testing/trigger-rally/0001-fix-sdl2-detection.patch b/testing/trigger-rally/0001-fix-sdl2-detection.patch
new file mode 100644
index 00000000000..84c7ae9b23c
--- /dev/null
+++ b/testing/trigger-rally/0001-fix-sdl2-detection.patch
@@ -0,0 +1,26 @@
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -2,6 +2,12 @@
+ # Trigger Rally GNUmakefile for Linux users
+ #
+
++PKG_CONFIG ?= pkg-config
++SDL2_CFLAGS = $(shell ${PKG_CONFIG} --cflags sdl2)
++SDL2_LIBS = $(shell ${PKG_CONFIG} --libs sdl2)
++SDL2_IMAGE_CFLAGS = $(shell ${PKG_CONFIG} --cflags SDL2_image)
++SDL2_IMAGE_LIBS = $(shell ${PKG_CONFIG} --libs SDL2_image)
++
+ # standard GNU and custom variables
+ DISTNAME := trigger-rally
+ DISTVER := 0.6.6.1
+@@ -25,8 +31,8 @@
+ DMACROS := -DNDEBUG -DUNIX -DPACKAGE_VERSION=\"$(DISTVER)\"
+ INCDIRS := -I'./include'
+ CXXFLAGS += -std=c++11 $(WARNINGS) $(OPTIMS)
+-CPPFLAGS += $(DMACROS) $(INCDIRS)
+-EXTRA_LIBS := -lSDL2main -lGL -lGLU -lGLEW -lSDL2 -lSDL2_image -lphysfs -lopenal -lalut -lpthread -ltinyxml2
++CPPFLAGS += $(DMACROS) $(INCDIRS) $(SDL2_CFLAGS) $(SDL2_IMAGE_CFLAGS)
++EXTRA_LIBS := $(SDL2_LIBS) $(SDL2_IMAGE_LIBS) -lSDL2main -lGL -lGLU -lGLEW -lSDL2 -lSDL2_image -lphysfs -lopenal -lalut -lpthread -ltinyxml2
+ LDFLAGS += $(EXTRA_LIBS)
+ INSTALL_PROGRAM := install --mode=0755
+ INSTALL_DATA := install --mode=0644
diff --git a/testing/trigger-rally/APKBUILD b/testing/trigger-rally/APKBUILD
new file mode 100644
index 00000000000..568c7c9e41e
--- /dev/null
+++ b/testing/trigger-rally/APKBUILD
@@ -0,0 +1,78 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=trigger-rally
+pkgver=0.6.7
+pkgrel=2
+pkgdesc="Fast-paced free software rally racing game"
+url="https://trigger-rally.sourceforge.io/"
+arch="all"
+license="GPL-3.0-or-later"
+depends="$pkgname-data"
+makedepends="sdl2-dev sdl2_image-dev freealut-dev physfs-dev glew-dev tinyxml2-dev openal-soft-dev"
+subpackages="$pkgname-doc $pkgname-data::noarch"
+options="!check" # No testsuite
+source="
+ https://sourceforge.net/projects/aat-linux-repository/files/sources/alpine/trigger-rally/trigger-rally-$pkgver.tar.gz
+ 0001-fix-sdl2-detection.patch
+ trigger-rally.desktop
+ "
+builddir="$srcdir/$pkgname-$pkgver/src"
+_datadir="$srcdir/$pkgname-$pkgver/data"
+
+build() {
+ make -f GNUmakefile \
+ exec_prefix=/usr \
+ bindir=/usr/bin \
+ prefix=/usr \
+ OPTIMS=""
+}
+
+package() {
+ make install \
+ DESTDIR="$pkgdir" \
+ exec_prefix=/usr \
+ bindir=/usr/bin \
+ prefix=/usr \
+ OPTIMS=""
+
+ # Remove residual files not needed for installation
+ rm -r $pkgdir/usr/share/applications
+ rm -r $pkgdir/usr/share/metainfo
+
+ # Install desktop file
+ install -Dm644 "$srcdir"/trigger-rally.desktop \
+ "$pkgdir"/usr/share/applications/trigger-rally.desktop
+
+ # Install icons
+ install -Dm644 $_datadir/icon/trigger-16.png \
+ "$pkgdir/usr/share/icons/hicolor/16x16/apps/trigger-rally.png"
+
+ install -Dm644 $_datadir/icon/trigger-32.png \
+ "$pkgdir/usr/share/icons/hicolor/32x32/apps/trigger-rally.png"
+
+ install -Dm644 $_datadir/icon/trigger-64.png \
+ "$pkgdir/usr/share/icons/hicolor/64x64/apps/trigger-rally.png"
+
+ install -Dm644 $_datadir/icon/trigger-rally-icons.svg \
+ "$pkgdir/usr/share/icons/hicolor/scalable/apps/trigger-rally.svg"
+
+ install -Dm644 $_datadir/icon/trigger-64.png \
+ "$pkgdir/usr/share/pixmaps/trigger-rally.png"
+
+ install -Dm644 $_datadir/icon/trigger-rally.appdata.xml \
+ "$pkgdir"/usr/share/metainfo/trigger-rally.appdata.xml
+
+ # Move config
+ mv "$pkgdir"/usr/bin/trigger-rally.config.defs \
+ "$pkgdir"/usr/share/games/trigger-rally/trigger-rally.config.defs
+}
+
+data() {
+ pkgdesc="$pkgdesc (data files)"
+ amove /usr/share/games/trigger-rally
+}
+
+sha512sums="
+e9324cf2b461a040a061a7e6dbcf29f600dc6a637e11a166efa0d74e47e16f1bd4ec5faddd253a9d5be3bb9a1ebfea790183826d9f056b38647ef287b25186cf trigger-rally-0.6.7.tar.gz
+2150afa09ff0080388fdc4b6c6adc173ae765884e75fab18aa8ce2614f0aab7bba03eb45ee4c4845c58d0498bde4e0723adb1c41ec53ab98fabee1405f982145 0001-fix-sdl2-detection.patch
+14dbf1fa47de53b86ca66ba81c5c47543201b15e5bb5269f99ed80e5e143d3aa6e5bd35a3ca666019d919737e8324bd1756f4a6d7f55a6b9826be454a92e0759 trigger-rally.desktop
+"
diff --git a/testing/trigger-rally/trigger-rally.desktop b/testing/trigger-rally/trigger-rally.desktop
new file mode 100644
index 00000000000..6456b35a29e
--- /dev/null
+++ b/testing/trigger-rally/trigger-rally.desktop
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Name=Trigger Rally
+Icon=trigger-rally
+Comment=3D rally racing car game
+Comment[de]=3D Rally-Autorennen
+Comment[fr_FR]=un jeu de rally en 3D
+Comment[ro_RO]=Un joc în 3D cu curse de raliu
+Exec=/usr/bin/trigger-rally
+Terminal=false
+StartupNotify=false
+Type=Application
+TryExec=/usr/bin/trigger-rally
+Categories=Game;ArcadeGame;
+Keywords=racing;tracks;
+Keywords[de]=Rennstrecke;
diff --git a/testing/trippy/APKBUILD b/testing/trippy/APKBUILD
new file mode 100644
index 00000000000..c3e3abf892d
--- /dev/null
+++ b/testing/trippy/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Simon Frankenberger <simon-alpine@fraho.eu>
+# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
+pkgname=trippy
+pkgver=0.10.0
+pkgrel=0
+pkgdesc="combines the functionality of traceroute and ping and is designed to assist with the analysis of networking issues."
+url="https://github.com/fujiapple852/trippy/"
+arch="all"
+license="Apache-2.0"
+makedepends="cargo cargo-auditable"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/fujiapple852/trippy/archive/$pkgver/trippy-v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+ local compgen="target/release/trip --generate"
+ [ -d completions ] || mkdir -v completions
+ $compgen bash >"completions/$pkgname"
+ $compgen zsh >"completions/_$pkgname"
+}
+
+check() {
+ cargo auditable test --frozen
+}
+
+package() {
+ install -Dm 755 -t "$pkgdir"/usr/bin target/release/trip
+ install -Dm 644 -t "$pkgdir"/usr/share/doc/"$pkgname" README.md
+ install -Dm 644 "completions/$pkgname" -t "$pkgdir/usr/share/bash-completion/completions/"
+ install -Dm 644 "completions/_$pkgname" -t "$pkgdir/usr/share/zsh/site-functions/"
+}
+
+sha512sums="
+888812ba578c53403769df7c1192577e8e7e23fbcd529a21edba7fa2e0ac7f9463ca40e5f4137aa732bec8407d7b5252d485e4a5b2d29ef4a9da41e20eaa5bee trippy-v0.10.0.tar.gz
+"
diff --git a/testing/trivy/APKBUILD b/testing/trivy/APKBUILD
index 1e44a1d5bb9..7aaf9db023c 100644
--- a/testing/trivy/APKBUILD
+++ b/testing/trivy/APKBUILD
@@ -1,32 +1,34 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=trivy
-pkgver=0.6.0
-pkgrel=1
-pkgdesc="A Simple and Comprehensive Vulnerability Scanner for Containers, Suitable for CI"
+pkgver=0.50.1
+pkgrel=2
+pkgdesc="Simple and comprehensive vulnerability scanner for containers"
url="https://github.com/aquasecurity/trivy"
-arch="all !s390x !mips !mips64" # tests SIGSEGV on s390x - https://github.com/aquasecurity/trivy/issues/430
-license="Apache 2.0"
+arch="all"
+# s390x: tests SIGSEGV: https://github.com/aquasecurity/trivy/issues/430
+arch="$arch !s390x"
+license="Apache-2.0"
makedepends="btrfs-progs-dev go linux-headers lvm2-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/aquasecurity/trivy/archive/v$pkgver.tar.gz"
-builddir="$srcdir/src/github.com/aquasecurity/$pkgname"
+source="https://github.com/aquasecurity/trivy/archive/v$pkgver/trivy-$pkgver.tar.gz"
+options="net !check" # needs tinygo to turn go into wasm for tests
-prepare() {
- mkdir -p "$srcdir/src/github.com/aquasecurity/"
- ln -sf "$srcdir/$pkgname-$pkgver" "$srcdir/src/github.com/aquasecurity/$pkgname"
- default_prepare
-}
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
build() {
- make build
+ go build -o trivy -ldflags "-X main.version=$pkgver" cmd/trivy/main.go
}
check() {
- make test
+ go test ./...
}
package() {
- install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm755 trivy -t "$pkgdir"/usr/bin/
}
-sha512sums="352602218d8eb87632a355a917a551f09b4551ec623208366e04773891d12f6d25c7b55b4abe6333403b020457d4b939e80f7c5b0f1a613f36b722d281afe5ac trivy-0.6.0.tar.gz"
+sha512sums="
+b2ef68484f2102325c60cfae45ff7b1aaa61b73b52d0904380bd623980631bb83ad28f42bb1a15a26a2966bb00433280412503ba47e8bf65ee70618dc842d812 trivy-0.50.1.tar.gz
+"
diff --git a/testing/trojita/APKBUILD b/testing/trojita/APKBUILD
deleted file mode 100644
index 6d1c9d7daed..00000000000
--- a/testing/trojita/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=trojita
-pkgver=0.7_git20200313
-pkgrel=0
-_commit="b72f2ad0b9a6d3e825b53effc798e356ce7c499e"
-arch="all !armhf !mips !mips64" # mips, armhf blocked by qt5-qtwebkit
-url="http://trojita.flaska.net/"
-pkgdesc="A fast and lightweight IMAP e-mail client designed with standard-compliance in mind "
-license="GPL-2.0-only OR GPL-3.0-only"
-makedepends="cmake qt5-qtbase-dev qt5-qttools-dev qt5-qtsvg-dev qt5-qtwebkit-dev akonadi-contacts-dev sonnet-dev gpgme-dev"
-checkdepends="xvfb-run"
-source="$pkgname-$_commit.tar.gz::https://github.com/kde/trojita/archive/$_commit.tar.gz"
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- cmake -B build \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- make -C build
-}
-
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE xvfb-run ctest
-}
-
-package() {
- DESTDIR="$pkgdir" make -C build install
-}
-
-sha512sums="fd2d7037794bd90dc34948064071bcddb04d213b29bb791cbdc95d0748b3f940a406913527bd8dcee3133a6dc3ace69047b0fa59b06c41953e1e24613aaee3c2 trojita-b72f2ad0b9a6d3e825b53effc798e356ce7c499e.tar.gz"
diff --git a/testing/trunk/APKBUILD b/testing/trunk/APKBUILD
new file mode 100644
index 00000000000..81f17ea9380
--- /dev/null
+++ b/testing/trunk/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=trunk
+pkgver=0.19.2
+pkgrel=0
+pkgdesc="Build, bundle & ship your Rust WASM application to the web"
+url="https://trunkrs.dev"
+arch="all !s390x" # nix
+license="MIT OR Apache-2.0"
+makedepends="
+ bzip2-dev
+ cargo
+ cargo-auditable
+ openssl-dev
+"
+depends="
+ rust
+ wasm-bindgen
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/trunk-rs/trunk/archive/refs/tags/v$pkgver.tar.gz
+"
+options="net"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen -- --skip tools::tests::download_and_install_binaries
+}
+
+package() {
+ install -Dm 755 target/release/trunk "$pkgdir"/usr/bin/trunk
+
+ for l in APACHE MIT
+ do
+ install -Dm 644 LICENSE-"$l" "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE-"$l"
+ done
+}
+
+sha512sums="
+0b107f5fb9ab96a3738d614efae38da254f57a36715d5591c2d8b5542b028152f48cf3f27edb715b5dc072014514e620e776d0774e937152b8df213c2619b7ba trunk-0.19.2.tar.gz
+"
diff --git a/testing/tsung/0005-Do-not-install-manpages-in-main-install.patch b/testing/tsung/0005-Do-not-install-manpages-in-main-install.patch
index d87071a7609..72a70a031d7 100644
--- a/testing/tsung/0005-Do-not-install-manpages-in-main-install.patch
+++ b/testing/tsung/0005-Do-not-install-manpages-in-main-install.patch
@@ -1,6 +1,8 @@
---- tsung-445d78213bb4360d78df3753b3e23e6a28d701f0/Makefile.in
-+++ tsung-445d78213bb4360d78df3753b3e23e6a28d701f0/Makefile.in
-@@ -211,6 +211,12 @@
+diff --git a/Makefile.in b/Makefile.in
+index 2906962..0ec4025 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -211,6 +211,12 @@ clean:
-rm -f $(EBIN)/*.beam tsung.sh tsung.spec tsung.xml tsung.sh tsung-recorder.sh
-rm -f *.xml config.log src/test/*.xml src/test/usersdb.csv
@@ -13,7 +15,7 @@
install: tsung doc install_recorder install_controller $(CONFFILE)
-rm -f $(TMP)
-@@ -230,10 +236,6 @@
+@@ -230,10 +236,6 @@ install: tsung doc install_recorder install_controller $(CONFFILE)
install -pm 0644 $(SRC) $(DESTDIR)$(TARGETDIR)/src/
@@ -24,13 +26,13 @@
# create startup script
install -pm 0755 tsung.sh $(DESTDIR)$(SCRIPT)
install -pm 0755 tsung-recorder.sh $(DESTDIR)$(REC_SCRIPT)
-@@ -244,9 +246,6 @@
- install -d $(DESTDIR)$(SHARE_DIR)/tsung_plotter
+@@ -245,9 +247,6 @@ install: tsung doc install_recorder install_controller $(CONFFILE)
install -pm 0644 $(TSUNG_PLOTTER_LIB) $(DESTDIR)$(LIBDIR)/tsung_plotter
install -pm 0644 $(TSUNG_PLOTTER_CONF) $(DESTDIR)$(SHARE_DIR)/tsung_plotter
--
+
- install -d $(DESTDIR)$(CONFDIR)
- install -pm 0644 $(CONFFILE) $(DESTDIR)$(CONFDIR)/
-
+-
install -d $(DESTDIR)$(TEMPLATES_DIR)
install -d $(DESTDIR)$(TEMPLATES_DIR)/style
+ install -pm 0644 $(TEMPLATES) $(DESTDIR)$(TEMPLATES_DIR)/
diff --git a/testing/tsung/APKBUILD b/testing/tsung/APKBUILD
index 4fceccee35e..a70cc9bd862 100644
--- a/testing/tsung/APKBUILD
+++ b/testing/tsung/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Michael Truog <mjtruog@gmail.com>
pkgname=tsung
-pkgver=1.7.0
-pkgrel=6
+pkgver=1.8.0
+pkgrel=2
pkgdesc="Tsung is a high-performance benchmark framework for various protocols including HTTP,XMPP,LDAP,etc."
url="https://www.process-one.net/en/tsung/"
options="!check" # Tests fail on CI
license="GPL-2.0-or-later"
-arch="noarch !armhf !armv7 !mips !mips64"
+arch="noarch"
depends="bash
erlang
gnuplot
@@ -20,9 +20,9 @@ makedepends="
erlang-dev
perl
"
-source="$pkgname-$pkgver.tar.gz::https://github.com/processone/$pkgname/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/processone/tsung/archive/v$pkgver.tar.gz
0005-Do-not-install-manpages-in-main-install.patch
- support-python3.patch"
+ "
build() {
./configure --prefix=/usr \
@@ -42,6 +42,7 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="63ec9b7b2f0a9fafde8182160b55513526009be056c6715ecff8dbeb40ab05f55d264f8f79e22b8987c6019c0b7eed9ac4e0e71792ad4cad67c758e64257c1d5 tsung-1.7.0.tar.gz
-ee80c21fe6a66c96b1aa68afd96209516a5a3fe1d51a1ee01a1f465d164c332bbe30f03de1cc20f3d6e0651770fa7e579d64f52d282b64d6ca02d098852f2a93 0005-Do-not-install-manpages-in-main-install.patch
-b105a692cba4168a364df92e2f2239f2a0bdd2018cedaba822bb3fc4159ed7a5fe20115dbeacdf016c8bc9f18797205372755a1bce9a2db59f989134077aa639 support-python3.patch"
+sha512sums="
+3afddd5cd427e75831efca034b9f88147e4a583ab9eb9ad8675d1db583ce1f61850ab9b21a0a25748b807e9ac8a647d446335b0ae5411e0746fc2cb1c73a47e3 tsung-1.8.0.tar.gz
+c6876e80b612a88c01c9971d3581f23b0145d274ca4354963c145f059bfd5f02969fc1a8ab35cd9fa1c567afd37004c34bc68834c050868d9c2da308de82bfa6 0005-Do-not-install-manpages-in-main-install.patch
+"
diff --git a/testing/tsung/support-python3.patch b/testing/tsung/support-python3.patch
deleted file mode 100644
index fe5a181cd24..00000000000
--- a/testing/tsung/support-python3.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From e37e82aa8778688c5b315c4fe54fa4f67e9a4a82 Mon Sep 17 00:00:00 2001
-From: Didier Fabert <didier.fabert@gmail.com>
-Date: Fri, 31 May 2019 22:52:47 +0200
-Subject: [PATCH] Support python3: print statement has been replaced with a
- function
-
----
- src/tsung-plotter/tsplot.py.in | 30 +++++++++++++++---------------
- src/tsung-plotter/tsung/tsung.py | 2 +-
- 2 files changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/src/tsung-plotter/tsplot.py.in b/src/tsung-plotter/tsplot.py.in
-index f7a180b3..f8eb7295 100644
---- a/src/tsung-plotter/tsplot.py.in
-+++ b/src/tsung-plotter/tsplot.py.in
-@@ -1,4 +1,4 @@
--#! /usr/bin/env python
-+#! /usr/bin/env python3
- # -*- Mode: python -*-
- # -*- coding: utf-8 -*-
-
-@@ -204,7 +204,7 @@ def main(conffile, logs, legends, outdir, verbose):
- stats = [x.strip().rsplit('.', 1)
- for x in config.get(s, 'stats').split(' ')]
- except:
-- print 'error: unable to read plot "%s" stats' % s
-+ print('error: unable to read plot "%s" stats' % s)
- continue
-
- if config.has_option(s, 'styles'):
-@@ -235,8 +235,8 @@ def main(conffile, logs, legends, outdir, verbose):
- try:
- p.__dict__['yfactor'] = map(float,config.get(s, 'yfactor').decode(encoding).split(','))
- except ValueError:
-- print 'warning: %s yfactor not a number: %s' \
-- % (p.name, config.get(s, yfactor))
-+ print('warning: %s yfactor not a number: %s' \
-+ % (p.name, config.get(s, yfactor)))
- # Text parameters - to decode into specified encoding
- for attr in ['title', 'xlabel', 'ylabel', 'plottype', 'yscale']:
- if config.has_option(s, attr):
-@@ -249,13 +249,13 @@ def main(conffile, logs, legends, outdir, verbose):
- try:
- p.__dict__[attr] = config.getfloat(s, attr)
- except ValueError:
-- print 'warning: %s %s not a number: %s' \
-- % (p.name, attr, config.get(s, attr))
-+ print('warning: %s %s not a number: %s' \
-+ % (p.name, attr, config.get(s, attr)))
-
- outfile = p.plot(stats, dataset)
-
- if verbose:
-- print 'Generated plot %s' % outfile
-+ print('Generated plot %s' % outfile)
-
- if __name__ == "__main__":
- from optparse import OptionParser
-@@ -280,10 +280,10 @@ if __name__ == "__main__":
- config = options.config
-
- if options.verbose:
-- print 'Using %s configuration file' % config
-+ print('Using %s configuration file' % config)
-
- if not os.access(config, os.R_OK):
-- print "can't read configuration file: %s" % config
-+ print("can't read configuration file: %s" % config)
- sys.exit(1)
-
- # FIXME: error control
-@@ -295,7 +295,7 @@ if __name__ == "__main__":
-
- # args are legend then file, any times wanted by user
- if len(args) % 2 != 0:
-- print "error: please provide legend and tsung log filename"
-+ print("error: please provide legend and tsung log filename")
- sys.exit(3)
-
- count = 0
-@@ -311,21 +311,21 @@ if __name__ == "__main__":
- count += 1
-
- if options.verbose:
-- print 'Using %s stats configuration file' % SYS_STATS_CONF
-+ print('Using %s stats configuration file' % SYS_STATS_CONF)
-
- logs = []
- for logfile in files:
- if not os.access(logfile, os.R_OK):
-- print "error: unable to read file %s" % logfile
-+ print("error: unable to read file %s" % logfile)
-
- else:
- if options.verbose:
-- print 'Parsing Tsung log file', logfile
-+ print('Parsing Tsung log file', logfile)
- logs.append((logfile, TsungLog(SYS_STATS_CONF, logfile)))
-
- if len(logs) != len(args) / 2:
-- print 'error while parsing files (%d != %d)' % (len(logs),
-- len(args)/2)
-+ print('error while parsing files (%d != %d)' % (len(logs),
-+ len(args)/2))
- sys.exit(2)
-
- main(config, logs, legends, options.outdir, options.verbose)
-diff --git a/src/tsung-plotter/tsung/tsung.py b/src/tsung-plotter/tsung/tsung.py
-index 72d32976..ffcca8af 100644
---- a/src/tsung-plotter/tsung/tsung.py
-+++ b/src/tsung-plotter/tsung/tsung.py
-@@ -204,7 +204,7 @@ def parse(self):
- break
-
- if name not in self.unknown and not is_re:
-- print 'WARNING: tsung %s data is not configured' % name
-+ print('WARNING: tsung %s data is not configured' % name)
- self.unknown.append(name)
-
- def stat(self, name, stat):
diff --git a/testing/ttdl/APKBUILD b/testing/ttdl/APKBUILD
new file mode 100644
index 00000000000..c7545c6113e
--- /dev/null
+++ b/testing/ttdl/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Thomas Böhler <witcher@wiredspace.de>
+# Maintainer: Thomas Böhler <witcher@wiredspace.de>
+pkgname=ttdl
+pkgver=4.2.1
+pkgrel=0
+pkgdesc="Terminal Todo List Manager"
+url="https://github.com/VladimirMarkelov/ttdl"
+arch="all !ppc64le !s390x !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/VladimirMarkelov/ttdl/archive/refs/tags/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/ttdl "$pkgdir"/usr/bin/ttdl
+
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+ install -Dm644 changelog "$pkgdir"/usr/share/doc/"$pkgname"/changelog
+ install -Dm644 intro.md "$pkgdir"/usr/share/doc/"$pkgname"/intro.md
+ install -Dm644 README.md "$pkgdir"/usr/share/doc/"$pkgname"/README.md
+}
+
+sha512sums="
+b00f8952546f533cf26d0d16f04469d7537d96af4e553452b7030991e962b881f46e1911a1b00a14af590c280fd5e2dbdf844fb953df3135cd24e55900a00ea5 ttdl-4.2.1.tar.gz
+"
diff --git a/testing/ttf-anonymous-pro/APKBUILD b/testing/ttf-anonymous-pro/APKBUILD
deleted file mode 100644
index 23514999c74..00000000000
--- a/testing/ttf-anonymous-pro/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=ttf-anonymous-pro
-pkgver=1.002
-pkgrel=0
-pkgdesc="A family of four fixed-width fonts designed especially with coding in mind"
-url="https://www.marksimonson.com/fonts/view/anonymous-pro"
-arch="noarch"
-license="OFL-1.1"
-depends="fontconfig"
-options="!check" # no tests
-source="https://www.marksimonson.com/assets/content/fonts/AnonymousPro-$pkgver.zip"
-builddir="$srcdir/AnonymousPro-$pkgver.001"
-
-build() {
- :
-}
-
-package() {
- mkdir -p "$pkgdir"/usr/share/fonts/TTF
- install -m644 "$builddir"/*.ttf \
- "$pkgdir"/usr/share/fonts/TTF/
-}
-sha512sums="7606d520ad79fbf4e13d676c1aff61b764dce74e170f8783b8e606f7907c4b8db0871e5568504d15aa23ca26e925ada4eb6b60fcf27171dccee0d3d32d9a92a1 AnonymousPro-1.002.zip"
diff --git a/testing/ttf-font-awesome-4/APKBUILD b/testing/ttf-font-awesome-4/APKBUILD
deleted file mode 100644
index 3ced320325f..00000000000
--- a/testing/ttf-font-awesome-4/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Dominic Fung <domokun997@gmail.com>
-# Maintainer: Dominic Fung <domokun997@gmail.com>
-pkgname=ttf-font-awesome-4
-_pkgname=Font-Awesome
-pkgver=4.7.0
-pkgrel=0
-pkgdesc="Completely free version of iconic font designed for Bootstrap"
-url="https://fontawesome.com/v4.7.0/"
-arch="noarch"
-license="CC"
-options="!check"
-depends="fontconfig mkfontdir mkfontscale"
-makedepends="font-util-dev"
-install="$pkgname.post-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/FortAwesome/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-package() {
- install -d "$pkgdir/usr/share/fonts/TTF"
- install -d "$pkgdir/usr/share/fonts/X11/OTF"
- install -m644 fonts/*.otf "$pkgdir/usr/share/fonts/X11/OTF/"
- install -m644 fonts/*.ttf "$pkgdir/usr/share/fonts/TTF/"
-}
-sha512sums="913e5eec2211111e9601c92059745344766f4c3a6f3563cbc6f8a5f3850a0101bab8f3f992a97c6f1c264a2bbb5163f3feecc6b3f64fcb22c9592d2d38cc777d ttf-font-awesome-4-4.7.0.tar.gz"
diff --git a/testing/ttf-font-awesome-4/ttf-font-awesome-4.post-install b/testing/ttf-font-awesome-4/ttf-font-awesome-4.post-install
deleted file mode 100644
index 984457d3e1b..00000000000
--- a/testing/ttf-font-awesome-4/ttf-font-awesome-4.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-fc-cache -f > /dev/null
-mkfontscale /usr/share/fonts/TTF
-mkfontdir /usr/share/fonts/TTF
diff --git a/testing/ttf-google-opensans/APKBUILD b/testing/ttf-google-opensans/APKBUILD
deleted file mode 100644
index e3e91b29f34..00000000000
--- a/testing/ttf-google-opensans/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname="ttf-google-opensans"
-pkgver="20180610"
-pkgrel=0
-pkgdesc="Humanist Sans Serif Typeface"
-url="https://github.com/googlefonts/opensans"
-arch="noarch"
-license="Apache-2.0"
-options="!check"
-depends="fontconfig mkfontdir mkfontscale"
-conflicts="ttf-opensans"
-makedepends="font-util-dev"
-install="$pkgname.post-install"
-source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname.zip"
-builddir="$srcdir"/opensans-master
-
-build() {
- return 0
-}
-
-package() {
- install -d "$pkgdir/usr/share/fonts/TTF"
- install -m644 hinted_ttfs/*.ttf "$pkgdir/usr/share/fonts/TTF/"
-}
-
-sha512sums="4ff6537bb3bb69f3ebb6f0743cefaee72b39e878865e628f4612e28377749b68789ee9db9c04643a2a404d85063ee4c1939523bfd2a905bf44cc001e000ffa30 ttf-google-opensans.zip"
diff --git a/testing/ttf-google-opensans/ttf-google-opensans.post-install b/testing/ttf-google-opensans/ttf-google-opensans.post-install
deleted file mode 100755
index 984457d3e1b..00000000000
--- a/testing/ttf-google-opensans/ttf-google-opensans.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-fc-cache -f > /dev/null
-mkfontscale /usr/share/fonts/TTF
-mkfontdir /usr/share/fonts/TTF
diff --git a/testing/ttf-mononoki/APKBUILD b/testing/ttf-mononoki/APKBUILD
deleted file mode 100644
index fd28573a544..00000000000
--- a/testing/ttf-mononoki/APKBUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=ttf-mononoki
-pkgver=1.2
-pkgrel=1
-pkgdesc="Mononoki - font for programming and code review"
-url="https://madmalik.github.io/mononoki/"
-arch="noarch"
-license="OFL"
-depends="fontconfig mkfontscale"
-source="https://github.com/madmalik/mononoki/releases/download/1.2/mononoki.zip"
-builddir="$srcdir/"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/fonts/$pkgname
- install -m644 "$srcdir"/*.ttf "$pkgdir"/usr/share/fonts/$pkgname
-}
-
-sha512sums="6fa2722f3556885271b3ddf25d18e1d7d7261854fc4af65a470f40ccfd9534972eeb480060c2b9a0d94d0c84ad9a5db967d8e5f61312c64d92d23bfab47cdad8 mononoki.zip"
diff --git a/testing/tty-clock/APKBUILD b/testing/tty-clock/APKBUILD
new file mode 100644
index 00000000000..30c5001effc
--- /dev/null
+++ b/testing/tty-clock/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Adam Thiede <me@adamthiede.com>
+# Maintainer: Adam Thiede <me@adamthiede.com>
+pkgname=tty-clock
+_pkgbase=2.3
+_pkgsnap=20240104
+_commit=f2f847cf2cc2949c8a8b7779a778f366d3743474
+# No release since 2017 with required fixes in master
+pkgver=${_pkgbase}_git$_pkgsnap
+pkgrel=0
+pkgdesc="tty clock!"
+url="https://github.com/xorg62/tty-clock"
+arch="all"
+license="BSD-3-Clause"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xorg62/tty-clock/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit/"
+options="!check" # no tests
+
+build() {
+ make
+}
+
+package() {
+ PREFIX=/usr DESTDIR=$pkgdir make install
+}
+
+sha512sums="
+d2deeecae844022bf75c020e39a1fbce92f752e42fd7967e08edf8032d93014b98129d33ff356437b8b22f7d72f1206db4eebe74716944270b89d2f891d65e06 tty-clock-2.3_git20240104.tar.gz
+"
diff --git a/testing/tty-proxy/APKBUILD b/testing/tty-proxy/APKBUILD
new file mode 100644
index 00000000000..4b6348b0756
--- /dev/null
+++ b/testing/tty-proxy/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=tty-proxy
+pkgver=0.0.2
+pkgrel=20
+pkgdesc="Proxy used by the tty-share command for public facing sessions"
+url="https://github.com/elisescu/tty-proxy"
+arch="all"
+license="MIT"
+makedepends="go"
+source="https://github.com/elisescu/tty-proxy/archive/v$pkgver/tty-proxy-$pkgver.tar.gz"
+options="chmod-clean !check" # no test suite
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -trimpath
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="ac245e047cde78ffd8a6742bb979d324f87876e3f8a507868f3958086110a00848a31d45788d1e2b04fa8434c54fc36c4aaf648686e4ade40305a2f311beff28 tty-proxy-0.0.2.tar.gz"
diff --git a/testing/tty-share/APKBUILD b/testing/tty-share/APKBUILD
new file mode 100644
index 00000000000..cce1a4149d6
--- /dev/null
+++ b/testing/tty-share/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=tty-share
+pkgver=2.4.0
+pkgrel=10
+pkgdesc="Share your terminal over the Internet"
+url="https://tty-share.com/"
+arch="all"
+license="MIT"
+makedepends="go"
+source="https://github.com/elisescu/tty-share/archive/v$pkgver/tty-share-$pkgver.tar.gz"
+options="chmod-clean !check" # no test suite
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -trimpath
+}
+
+package() {
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+c28bd5b6367555544087238ef243e8408baf4e078b4807c1c08ad614ae63fd331fd52a5f3a0216a193b78563d0ce4c1bf81d9e8aae2941d9416af335287e6f84 tty-share-2.4.0.tar.gz
+"
diff --git a/testing/ttyper/APKBUILD b/testing/ttyper/APKBUILD
new file mode 100644
index 00000000000..2242ed09663
--- /dev/null
+++ b/testing/ttyper/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=ttyper
+pkgver=1.4.1
+pkgrel=0
+pkgdesc="Terminal-based typing test"
+url="https://github.com/max-niederman/ttyper/"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+source="https://github.com/max-niederman/ttyper/archive/refs/tags/v$pkgver/ttyper-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/ttyper -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+6a7354b9725d961e2ad2709fcbe110f0e4c712a3b6a688468420bb29f507dade0de4eace140deff0ff3eec62d239d3a9484be732a6f90d1ad9d5e7f07c39e401 ttyper-1.4.1.tar.gz
+"
diff --git a/testing/tui-journal/APKBUILD b/testing/tui-journal/APKBUILD
new file mode 100644
index 00000000000..15bcf31443e
--- /dev/null
+++ b/testing/tui-journal/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=tui-journal
+_pkgname=tjournal
+pkgver=0.8.0
+pkgrel=0
+pkgdesc="Write and manage journals/notes from the terminal"
+url="https://github.com/AmmarAbouZor/tui-journal"
+arch="all !s390x" # s390x: nix crate
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/AmmarAbouZor/tui-journal/archive/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$_pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+}
+
+sha512sums="
+ce29d19011186208287417c8a5ee0cb69a525f6e18fb785506eaf2ad3b7dcf1d5c2159635e2734b0739d7cf20e065b7398e7a45a098e36a45b95cd5feef21be9 tui-journal-0.8.0.tar.gz
+"
diff --git a/testing/tuir/APKBUILD b/testing/tuir/APKBUILD
deleted file mode 100644
index e32d0a0b093..00000000000
--- a/testing/tuir/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=tuir
-pkgver=1.29.0
-pkgrel=0
-pkgdesc="Terminal UI for Reddit"
-url="https://gitlab.com/ajak/tuir"
-arch="noarch"
-license="MIT"
-depends="python3 py3-decorator py3-beautifulsoup4 py3-kitchen py3-six py3-requests"
-options="!check" # tests fail
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc"
-source="https://files.pythonhosted.org/packages/source/t/tuir/tuir-$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="ea7a531c8116d4a1fc6f209a80833289c366ed34811e7d74c977d10a658761e7ef6b6a890f46cfe0089e9176cfb63a25856128937be34bd05d529c8168dd26b4 tuir-1.29.0.tar.gz"
diff --git a/testing/tup/APKBUILD b/testing/tup/APKBUILD
new file mode 100644
index 00000000000..96092e032a8
--- /dev/null
+++ b/testing/tup/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Prokop RandáÄek <prokop@rdck.dev>
+# Maintainer: Prokop RandáÄek <prokop@rdck.dev>
+pkgname=tup
+pkgver=0.7.11
+pkgrel=0
+pkgdesc="A file-based build system"
+url="http://gittup.org/tup"
+arch="all"
+license="GPL-2.0-only"
+makedepends="fuse3-dev pcre-dev inih-dev sqlite-dev"
+checkdepends="sqlite ccache"
+subpackages="$pkgname-doc $pkgname-vim::noarch"
+source="$pkgname-$pkgver.tar.gz::https://github.com/gittup/tup/archive/refs/tags/v$pkgver.tar.gz
+ s390x_risc3264_support.patch
+ system_inih.patch
+ "
+options="!check" # tests need to run tup, which requires fuse
+
+prepare() {
+ default_prepare
+
+ sed "s/\`git describe\`/$pkgver/" -i src/tup/link.sh
+ echo "CFLAGS += $CFLAGS" >> Tuprules.tup
+ echo "LDFLAGS += $LDFLAGS" >> Tuprules.tup
+ echo "CONFIG_TUP_USE_SYSTEM_INIH=y" >> tup.config
+ echo "CONFIG_TUP_USE_SYSTEM_SQLITE=y" >> tup.config
+}
+
+build() {
+ # fuse not available so ./bootstrap.sh does not work
+ ./build.sh
+ ./build/tup init
+ ./build/tup generate runme.sh
+ ./runme.sh
+}
+
+vim() {
+ pkgdesc="$pkgname (vim syntax)"
+ install_if="$pkgname=$pkgver-r$pkgrel vim"
+ depends=
+
+ amove usr/share/vim
+}
+
+package() {
+ install -D -m755 tup "$pkgdir"/usr/bin/tup
+ install -D -m644 tup.1 -t "$pkgdir"/usr/share/man/man1
+ install -D -m644 contrib/syntax/tup.vim -t "$pkgdir"/usr/share/vim/vimfiles/syntax
+
+ mkdir -p "$pkgdir"/usr/share/vim/vimfiles/ftdetect
+ echo 'au BufNewFile,BufRead Tupfile,*.tup setf tup' > "$pkgdir"/usr/share/vim/vimfiles/ftdetect/tup.vim
+}
+
+sha512sums="
+b923366bb15ce6e5be027b6b3e98b1029cd7dbe6ce2a8dd37a8e4b71521c8ff6d95d88fe296f5ca4719bbc048c6aaa5eacdd8cac1410d46df54ac674d6fd8aee tup-0.7.11.tar.gz
+733282451020ae770e2ae3230f30df8b9ba10bbfe8f1e151f04d45819c4af9c425617c81fd24b0030a4fc530607bd9806ec69033e85eef7db013266648e0ebf2 s390x_risc3264_support.patch
+ae4c4fc929b3974945ca7c9f7bac51d9e78168497e932892f0dfc879499fea43255a2b02ff650e661d2019a60aeb03504743cef48f58b2c389076400012c257a system_inih.patch
+"
diff --git a/testing/tup/s390x_risc3264_support.patch b/testing/tup/s390x_risc3264_support.patch
new file mode 100644
index 00000000000..a44f45fc848
--- /dev/null
+++ b/testing/tup/s390x_risc3264_support.patch
@@ -0,0 +1,30 @@
+diff --git a/src/tup/platform.c b/src/tup/platform.c
+index f0e2bccd..eb39de48 100644
+--- a/src/tup/platform.c
++++ b/src/tup/platform.c
+@@ -58,6 +58,12 @@ const char *tup_arch = "sparc";
+ const char *tup_arch = "arm";
+ #elif __aarch64__
+ const char *tup_arch = "arm64";
++#elif __s390x__
++const char *tup_arch = "s390x";
++#elif (__riscv || __riscv__) && __riscv_xlen == 64
++const char *tup_arch = "riscv64";
++#elif (__riscv || __riscv__) && __riscv_xlen == 32
++const char *tup_arch = "riscv32";
+ #else
+ #error Unsupported cpu architecture. Please add support in tup/platform.c
+ #endif
+diff --git a/tup.1 b/tup.1
+index 208629fe..2ebc264d 100644
+--- a/tup.1
++++ b/tup.1
+@@ -765,7 +765,7 @@ In this case, the @-variable "FOO" is explicitly set to "n".
+ TUP_PLATFORM is a special @-variable. If CONFIG_TUP_PLATFORM is not set in the tup.config file, it has a default value according to the platform that tup itself was compiled in. Currently the default value is one of "linux", "solaris", "macosx", "win32", "freebsd" or "netbsd".
+ .TP
+ .B @(TUP_ARCH)
+-TUP_ARCH is another special @-variable. If CONFIG_TUP_ARCH is not set in the tup.config file, it has a default value according to the processor architecture that tup itself was compiled in. Currently the default value is one of "i386", "x86_64", "powerpc", "powerpc64", "ia64", "alpha", "sparc", "arm64", or "arm".
++TUP_ARCH is another special @-variable. If CONFIG_TUP_ARCH is not set in the tup.config file, it has a default value according to the processor architecture that tup itself was compiled in. Currently the default value is one of "i386", "x86_64", "powerpc", "powerpc64", "ia64", "alpha", "sparc", "arm64", "arm", "s390x", "riscv32" or "riscv64".
+
+ .SH "VARIANTS"
+ Tup supports variants, which allow you to build your project multiple times with different configurations. Perhaps the most common case is to build a release and a debug configuration with different compiler flags, though any number of variants can be used to support whatever configurations you like. Each variant is built in its own directory distinct from each other and from the source tree. When building with variants, the in-tree build is disabled. To create a variant, make a new directory at the top of the tup hierarchy and create a "tup.config" file there. For example:
diff --git a/testing/tup/system_inih.patch b/testing/tup/system_inih.patch
new file mode 100644
index 00000000000..568236b8a13
--- /dev/null
+++ b/testing/tup/system_inih.patch
@@ -0,0 +1,16 @@
+diff --git a/Tupfile b/Tupfile
+index 9b4ab820..6152ba7c 100644
+--- a/Tupfile
++++ b/Tupfile
+@@ -21,7 +21,11 @@ srcs += src/tup/tup/*.o
+ srcs += src/tup/monitor/*.o
+ srcs += src/tup/flock/*.o
+ srcs += src/tup/server/*.o
++ifeq (@(TUP_USE_SYSTEM_INIH),y)
++LDFLAGS += -linih
++else
+ srcs += src/inih/*.o
++endif
+ srcs += src/compat/*.o
+ ifeq (@(TUP_USE_SYSTEM_SQLITE),y)
+ LDFLAGS += -lsqlite3
diff --git a/testing/tuptime/APKBUILD b/testing/tuptime/APKBUILD
index d8fbecb851d..21cdbef4002 100644
--- a/testing/tuptime/APKBUILD
+++ b/testing/tuptime/APKBUILD
@@ -1,26 +1,33 @@
# Contributor: Roberto Oliveira <robertoguimaraes8@gmail.com>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=tuptime
-pkgver=4.1.0
-pkgrel=0
+pkgver=5.2.2
+pkgrel=3
pkgdesc="Report the historical and statistical real time of the system"
-url="https://github.com/rfrail3/tuptime"
+url="https://github.com/rfmoz/tuptime"
arch="noarch"
license="GPL-2.0-only"
+pkgusers="tuptime"
+pkggroups="tuptime"
depends="python3"
-install="$pkgname.pre-install $pkgname-openrc.post-install"
+install="$pkgname.pre-install $pkgname.post-install"
subpackages="$pkgname-doc $pkgname-openrc"
-options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rfrail3/tuptime/archive/$pkgver.tar.gz
- $pkgname.cron"
-
+source="$pkgname-$pkgver.tar.gz::https://github.com/rfmoz/tuptime/archive/refs/tags/$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.cron
+ "
+options="!check" # no tests
package() {
- install -Dm775 "src/$pkgname" "$pkgdir/usr/bin/$pkgname"
- install -Dm755 "$srcdir/$pkgname.cron" "$pkgdir"/etc/periodic/15min/$pkgname
- install -Dm644 "src/man/$pkgname.1" "$pkgdir/usr/share/man/man1/$pkgname.1"
- install -Dm755 "src/openrc/$pkgname" "$pkgdir/etc/init.d/$pkgname"
+ install -Dm775 src/tuptime -t "$pkgdir"/usr/bin/
+ install -Dm755 "$srcdir"/tuptime.cron "$pkgdir"/etc/periodic/15min/$pkgname
+ install -Dm755 "$srcdir"/tuptime.initd "$pkgdir"/etc/init.d/tuptime
+ install -Dm644 src/man/tuptime.1 -t "$pkgdir"/usr/share/man/man1/
+ install -dm755 -o tuptime -g tuptime "$pkgdir"/var/lib/tuptime/
}
-sha512sums="2811f2bf659bc1af3656230f87477a939ec22c3caa9283f7063e9e9c8ea2497f3c3581c3b7eb63cef15ce29d73f34d44c72fde4d2681f50021b4eb8986e0c812 tuptime-4.1.0.tar.gz
-d3a3f7820c2fbbc3a13412740934b5b62af462c35a9354a2f0d16b76500a406ea86dbec2cf368a24191df6c0221a8e6efff0dbf3e635af854cbe84eb6fe5630e tuptime.cron"
+sha512sums="
+3a4b0ab3776bdcbe1bf7afd88df9f700251d9072026338cecd139dbe4c8c00a259e3fc95fef094709417bfe5059ae9a6de0422e7286dc73f3caa7e737a25f526 tuptime-5.2.2.tar.gz
+f2009b2ef162b9fbb44e079d67688bee26b4459b8d6b223d4f26b311e72c2b0af313aef32a308ca7508ac9834eb21c172c761cb32cc2e6d4357ec719508f4125 tuptime.initd
+41a4f9e85b1aa23f03c0496fd76fb3c743ccdc251890352ce2d85e8ea5ef4a7040b7b8fb47fdd7ac3ae6c284285c52a7577ebd45de86ee9bddb7d997e874b8b2 tuptime.cron
+"
diff --git a/testing/tuptime/tuptime-openrc.post-install b/testing/tuptime/tuptime-openrc.post-install
deleted file mode 100644
index 9ea355f6634..00000000000
--- a/testing/tuptime/tuptime-openrc.post-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-echo 'Tuptime needs to be executed now and at boot time, do it with: "rc-update add tuptime default && rc-service tuptime start"' 1>&2
-
-exit 0
diff --git a/testing/tuptime/tuptime.cron b/testing/tuptime/tuptime.cron
index ff9b39b2606..b0684d47dd4 100644
--- a/testing/tuptime/tuptime.cron
+++ b/testing/tuptime/tuptime.cron
@@ -1,4 +1,4 @@
#!/bin/sh
if [ -x /usr/bin/tuptime ]; then
- su tuptime -s /bin/sh -c '/usr/bin/tuptime -x' > /dev/null
+ su tuptime -s /bin/sh -c '/usr/bin/tuptime -q' > /dev/null
fi
diff --git a/testing/tuptime/tuptime.initd b/testing/tuptime/tuptime.initd
new file mode 100644
index 00000000000..cc293b83edd
--- /dev/null
+++ b/testing/tuptime/tuptime.initd
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+
+name="tuptime"
+command="/usr/bin/tuptime"
+command_user="tuptime"
+command_args="-q"
+
+depend() {
+ need localmount
+ after bootmisc
+ after clock
+}
+
+stop() {
+ ebegin "Stopping ${name}"
+ su ${command_user} -s /bin/sh -c "${command} ${command_args} -g"
+ eend $?
+}
+
+status() {
+ ebegin "Status ${name}"
+ su ${command_user} -s /bin/sh -c "${command} ${command_args}"
+ eend $?
+}
diff --git a/testing/tuptime/tuptime.post-install b/testing/tuptime/tuptime.post-install
new file mode 100644
index 00000000000..750318bec12
--- /dev/null
+++ b/testing/tuptime/tuptime.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+su tuptime -s /bin/sh -c "tuptime -q"
+
+exit 0
diff --git a/testing/tuptime/tuptime.pre-install b/testing/tuptime/tuptime.pre-install
index 19600617dc8..bc42c9dc1ee 100644
--- a/testing/tuptime/tuptime.pre-install
+++ b/testing/tuptime/tuptime.pre-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S tuptime 2>/dev/null
-adduser -S -D -h /var/lib/tuptime -s /bin/false -G tuptime -g tuptime tuptime 2>/dev/null
+adduser -S -D -h /var/lib/tuptime -s /sbin/nologin -G tuptime -g tuptime tuptime 2>/dev/null
exit 0
diff --git a/testing/turn-rs/APKBUILD b/testing/turn-rs/APKBUILD
new file mode 100644
index 00000000000..ccd24d0cb63
--- /dev/null
+++ b/testing/turn-rs/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=turn-rs
+pkgver=2.1.3
+pkgrel=0
+pkgdesc="A pure rust implemented turn server"
+url="https://github.com/mycrl/turn-rs"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+ protobuf-dev
+"
+install="turn-rs.pre-install"
+subpackages="
+ $pkgname-openrc
+ $pkgname-doc
+ $pkgname-cli
+ $pkgname-balance
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/mycrl/turn-rs/archive/refs/tags/v$pkgver.tar.gz
+ turn-rs.initd
+ turn-rs.confd
+"
+options="net"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 target/release/turn-server "$pkgdir"/usr/bin/turn-server
+ install -Dm 600 turn-server.toml "$pkgdir"/etc/turn-rs/turn-server.toml
+
+ install -Dm 755 "$srcdir"/turn-rs.initd "$pkgdir"/etc/init.d/turn-rs
+ install -Dm 644 "$srcdir"/turn-rs.confd "$pkgdir"/etc/conf.d/turn-rs
+
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+cli() {
+ pkgdesc="$pkgdesc (command line monitoring tool)"
+ install -Dm 755 "$builddir"/target/release/turn-cli "$subpkgdir"/usr/bin/turn-cli
+}
+
+balance() {
+ pkgdesc="$pkgdesc (distributed load balancing service)"
+ install -Dm 755 "$builddir"/target/release/turn-balance-server "$subpkgdir"/usr/bin/turn-balance-server
+}
+
+sha512sums="
+01c5d978bbe70c018bf37e817a71b5e3bd030beba342f7567780feb837412bccd0fc56baeee1ff4abfb7ace092f71ca73be2b596091979110e3bbf72487508c1 turn-rs-2.1.3.tar.gz
+0be3a81c5c9c13e2ba36a867282b3cae90e311d314c6e3f05855ce743fb2457ca12c0b7540e800bfe48a8e2129eb3acc970bc85b9b22dac70648b1637ccfb80f turn-rs.initd
+cc6b17c4efe13d0cc100e20c2d855cb5aa1cb4c7a65ccfa91757f0e667aac77ea020a17fdbcf67ef0de9a32c6133705e1bca2fe239d5ac19234d4de6f425e89e turn-rs.confd
+"
diff --git a/testing/turn-rs/turn-rs.confd b/testing/turn-rs/turn-rs.confd
new file mode 100644
index 00000000000..6eeea7ffcad
--- /dev/null
+++ b/testing/turn-rs/turn-rs.confd
@@ -0,0 +1,3 @@
+#config=/etc/turn-server/config.toml
+#logdir=/var/log/turn-rs
+#_conf_path=/etc/turn-rs/turn-server.toml
diff --git a/testing/turn-rs/turn-rs.initd b/testing/turn-rs/turn-rs.initd
new file mode 100644
index 00000000000..306c6149ba8
--- /dev/null
+++ b/testing/turn-rs/turn-rs.initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+supervisor="supervise-daemon"
+
+: ${command_user:=turn-rs:turn-rs}
+: ${logdir=/var/log/turn-rs}
+: ${_conf_path=/etc/turn-rs/turn-server.toml}
+
+name=turn-server
+description="Pure Rust turn server implementation"
+command="/usr/bin/turn-server"
+command_args="--config $_conf_path"
+command_background=true
+
+pidfile="/run/$RC_SVCNAME.pid"
+output_log="$logdir/output.log"
+error_log="$logdir/error.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -f -m 0644 -o "$command_user" "$output_log" "$error_log"
+ checkpath -f -m 0600 -o "$command_user" "$_conf_path"
+}
diff --git a/testing/turn-rs/turn-rs.pre-install b/testing/turn-rs/turn-rs.pre-install
new file mode 100644
index 00000000000..dc0cae739c8
--- /dev/null
+++ b/testing/turn-rs/turn-rs.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S turn-rs 2>/dev/null
+adduser -S -D -s /sbin/nologin -H -G turn-rs -g turn-rs turn-rs 2>/dev/null
+
+exit 0
diff --git a/testing/turnstile/APKBUILD b/testing/turnstile/APKBUILD
new file mode 100644
index 00000000000..d43cd72c14c
--- /dev/null
+++ b/testing/turnstile/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=turnstile
+pkgver=0.1.8
+pkgrel=0
+pkgdesc="Independent session/login tracker"
+url="https://github.com/chimera-linux/turnstile"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ linux-pam-dev
+ meson
+ scdoc
+ "
+subpackages="$pkgname-doc $pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/chimera-linux/turnstile/archive/refs/tags/v$pkgver.tar.gz
+ turnstiled.confd
+ turnstiled.initd
+ "
+options="!check" # no tests
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Ddinit=disabled \
+ -Dmanage_rundir=true \
+ . output
+ meson compile -C output
+}
+
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ install -Dm755 "$srcdir"/turnstiled.initd "$pkgdir"/etc/init.d/turnstiled
+ install -Dm644 "$srcdir"/turnstiled.confd "$pkgdir"/etc/conf.d/turnstiled
+}
+
+sha512sums="
+f6fee2056707b480d0345c86c3fe0c81e00ad09f54e7b7ca447e805deef47a08a4ae05540a2f57c45d6253ee99d8c2fcf1e6e5f6cd7135dfca1941589271d726 turnstile-0.1.8.tar.gz
+4798d04b707e3b44467c1e75481a5123dbf4755ef1bdd09ac31d180762f67085a7030c4ba7d1f27b1ef30910785d8739375a730f32647c7d554142fac4d6b824 turnstiled.confd
+4824f233704b21e3a4ab931879f88ec716761065fd109038ea9a0c89383580c7a198e2372088b555cb894110b5067c26b99ac9c40c04bf9a2384af1417fa4ad0 turnstiled.initd
+"
diff --git a/testing/turnstile/turnstiled.confd b/testing/turnstile/turnstiled.confd
new file mode 100644
index 00000000000..c3a008de261
--- /dev/null
+++ b/testing/turnstile/turnstiled.confd
@@ -0,0 +1,2 @@
+# uncomment to not use supervisor
+supervisor=supervise-daemon
diff --git a/testing/turnstile/turnstiled.initd b/testing/turnstile/turnstiled.initd
new file mode 100644
index 00000000000..dfdecbd2c4e
--- /dev/null
+++ b/testing/turnstile/turnstiled.initd
@@ -0,0 +1,10 @@
+#!/sbin/openrc-run
+
+name=turnstiled
+command="/usr/bin/turnstiled"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need seatd
+}
diff --git a/testing/tweeny/APKBUILD b/testing/tweeny/APKBUILD
deleted file mode 100644
index 99c663052f1..00000000000
--- a/testing/tweeny/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=tweeny
-pkgver=3.1.0
-pkgrel=0
-pkgdesc="Modern C++ tweening library"
-url="https://mobius3.github.io/tweeny"
-arch="noarch"
-license="MIT"
-options="!check" # no test suite
-makedepends="cmake doxygen"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mobius3/tweeny/archive/v$pkgver.tar.gz"
-
-build() {
- cmake -B build . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DTWEENY_BUILD_DOCUMENTATION=ON
- make -C build
-}
-
-package() {
- DESTDIR="$pkgdir" make -C build install
-}
-
-sha512sums="8109c241f866b565d15f1f5f87837f178a4fd3c5169d73e73e18334c54274024b48c9baed1f1935201ab872687bacb9ff3f8ecbae8078de4e1b459242450b9a5 tweeny-3.1.0.tar.gz"
diff --git a/testing/twemproxy/APKBUILD b/testing/twemproxy/APKBUILD
index 82a7cd4b868..fa75976839b 100644
--- a/testing/twemproxy/APKBUILD
+++ b/testing/twemproxy/APKBUILD
@@ -2,7 +2,7 @@
pkgname=twemproxy
akaname=nutcracker
-pkgver=0.4.1
+pkgver=0.5.0
pkgrel=0
pkgdesc="A fast, light-weight proxy for memcached and redis"
url="https://github.com/twitter/twemproxy"
@@ -12,7 +12,7 @@ depends=""
depends_dev=""
makedepends="automake autoconf libtool yaml-dev"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/twitter/twemproxy/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/twitter/twemproxy/archive/$pkgver.tar.gz
nutcracker.initd
nutcracker.confd
use-system-libyaml.patch
@@ -48,9 +48,9 @@ package() {
make DESTDIR="$pkgdir" install || return 1
install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.yml \
"$pkgdir"/etc/$akaname/nutcracker.yml || return 1
- install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.leaf.yml \
+ install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.leaf.yml \
"$pkgdir"/etc/$akaname/nutcracker.leaf.yml || return 1
- install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.root.yml \
+ install -m644 -D "$srcdir"/$pkgname-$pkgver/conf/nutcracker.root.yml \
"$pkgdir"/etc/$akaname/nutcracker.root.yml || return 1
install -m755 -D "$srcdir"/$akaname.initd \
"$pkgdir"/etc/init.d/$akaname || return 1
@@ -60,6 +60,9 @@ package() {
install -m0755 -d "$pkgdir"/$_rundir || return 1
install -m0755 -d "$pkgdir"/$_logdir || return 1
+ # remove test_all binary
+ rm "$pkgdir/usr/bin/test_all"
+
_docs="README.md NOTICE ChangeLog"
for _doc in $_docs; do
install -m644 -D "$srcdir"/$pkgname-$pkgver/$_doc \
@@ -71,7 +74,9 @@ package() {
}
-sha512sums="581fae1d12feb983ed25b22cd6f597fd28b7070906ac29d3990669ae5c626a468914021cee152a6a2299a2838c838ad907e4c911b911ef04166ac7bbb2982da1 twemproxy-0.4.1.tar.gz
+sha512sums="
+9bd6bfb1b207aa1d4fdec74fcf354bbcc17b3e2586e9337e3a295f28fca9f597c8914c80dacf3b5c3d2e18c196031e601beb805151cff340f83c5b5890afaabf twemproxy-0.5.0.tar.gz
56bc051eac972cc1e4cfb334673f8e4c8a5f0855fb4f0b66e05a148855dae34870d949a5d19c111d072a0405b2014a334151ad9414a40fdc67e559ff37d68093 nutcracker.initd
e69e6d7b48a360b8b7b7ec7d7d46e2c736c4e30e6d6a22ed5b01d64ccb3ec701537545b2b6e5c1cbf2ba9f657f86e7a94686e3dc8a43dcba9688695717d62f12 nutcracker.confd
-beadf407de53378bfe0ee12bbdf2315bde220a322aa13fc1993b487e1503f8825280408c500c902db683ee35b255e304acfe2cb011a6e9ffe02cdbfcfb1d2bf5 use-system-libyaml.patch"
+a31c45d003571c8f2e9a003545b61c2ece317d1a5170f9ed84df91673e74fb43a4c6a9099a0d7ed46f255da01a93a551433115b290a3fa2fa6f719e6e45d224d use-system-libyaml.patch
+"
diff --git a/testing/twemproxy/use-system-libyaml.patch b/testing/twemproxy/use-system-libyaml.patch
index e3ec54a15a4..a2a83bd75c5 100644
--- a/testing/twemproxy/use-system-libyaml.patch
+++ b/testing/twemproxy/use-system-libyaml.patch
@@ -1,5 +1,5 @@
---- twemproxy-0.4.1/Makefile.am
-+++ twemproxy/src/twemproxy-0.4.1/Makefile.am
+--- twemproxy-0.5.0/Makefile.am
++++ patch/twemproxy-0.5.0/Makefile.am
@@ -2,7 +2,7 @@
ACLOCAL_AMFLAGS = -I m4
@@ -9,8 +9,8 @@
dist_man_MANS = man/nutcracker.8
---- twemproxy-0.4.1/configure.ac
-+++ twemproxy/src/twemproxy-0.4.1/configure.ac
+--- twemproxy-0.5.0/configure.ac
++++ patch/twemproxy-0.5.0/configure.ac
@@ -75,6 +75,14 @@
# Checks for libraries
AC_CHECK_LIB([m], [pow])
@@ -26,15 +26,15 @@
# Checks for library functions
AC_FUNC_FORK
-@@ -196,15 +204,8 @@
+@@ -197,15 +205,8 @@
[AC_DEFINE([HAVE_STATS], [1], [Define to 1 if stats is not disabled])])
AC_MSG_RESULT($disable_stats)
--# Untar the yaml-0.1.4 in contrib/ before config.status is rerun
--AC_CONFIG_COMMANDS_PRE([tar xvfz contrib/yaml-0.1.4.tar.gz -C contrib])
+-# Untar the yaml-0.2.5 in contrib/ before config.status is rerun
+-AC_CONFIG_COMMANDS_PRE([tar xvfz contrib/yaml-0.2.5.tar.gz -C contrib])
-
--# Call yaml-0.1.4 ./configure recursively
--AC_CONFIG_SUBDIRS([contrib/yaml-0.1.4])
+-# Call yaml-0.2.5 ./configure recursively
+-AC_CONFIG_SUBDIRS([contrib/yaml-0.2.5])
-
# Define Makefiles
AC_CONFIG_FILES([Makefile
@@ -42,10 +42,10 @@
src/Makefile
src/hashkit/Makefile
src/proto/Makefile
---- twemproxy-0.4.1/src/Makefile.am
-+++ twemproxy/src/twemproxy-0.4.1/src/Makefile.am
-@@ -21,7 +21,7 @@
- AM_CFLAGS += -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations
+--- twemproxy-0.5.0/src/Makefile.am
++++ patch/twemproxy-0.5.0/src/Makefile.am
+@@ -22,7 +22,7 @@
+ AM_CFLAGS += -Wno-format-zero-length
AM_LDFLAGS =
-AM_LDFLAGS += -lm -lpthread -rdynamic
@@ -53,8 +53,16 @@
if OS_SOLARIS
AM_LDFLAGS += -lnsl -lsocket
endif
-@@ -57,4 +57,3 @@
+@@ -58,7 +58,6 @@
nutcracker_LDADD = $(top_builddir)/src/hashkit/libhashkit.a
nutcracker_LDADD += $(top_builddir)/src/proto/libproto.a
nutcracker_LDADD += $(top_builddir)/src/event/libevent.a
--nutcracker_LDADD += $(top_builddir)/contrib/yaml-0.1.4/src/.libs/libyaml.a
+-nutcracker_LDADD += $(top_builddir)/contrib/yaml-0.2.5/src/.libs/libyaml.a
+
+ TESTS = test_all
+ bin_PROGRAMS = test_all
+@@ -86,4 +85,3 @@
+ test_all_LDADD = $(top_builddir)/src/hashkit/libhashkit.a
+ test_all_LDADD += $(top_builddir)/src/proto/libproto.a
+ test_all_LDADD += $(top_builddir)/src/event/libevent.a
+-test_all_LDADD += $(top_builddir)/contrib/yaml-0.2.5/src/.libs/libyaml.a
diff --git a/testing/twiggy/APKBUILD b/testing/twiggy/APKBUILD
index 191ecc1cd59..aed853fc18d 100644
--- a/testing/twiggy/APKBUILD
+++ b/testing/twiggy/APKBUILD
@@ -2,16 +2,17 @@
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=twiggy
pkgver=0.6.0
-pkgrel=1
+pkgrel=3
pkgdesc="Twiggy a code size profiler for Wasm"
url="https://github.com/rustwasm/twiggy"
-arch="all !s390x !mips !mips64" # Limited by cargo
+arch="all !s390x !riscv64" # Limited by cargo
license="Apache-2.0"
-makedepends="cargo"
+makedepends="cargo cargo-auditable"
source="$pkgname-$pkgver.tar.gz::https://github.com/rustwasm/twiggy/archive/$pkgver.tar.gz"
+
build() {
- cargo build --release --locked
+ cargo auditable build --release --locked
}
check() {
diff --git a/testing/twinkle/APKBUILD b/testing/twinkle/APKBUILD
new file mode 100644
index 00000000000..2f8238772f7
--- /dev/null
+++ b/testing/twinkle/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=twinkle
+pkgver=1.10.3
+pkgrel=2
+pkgdesc="SIP softphone"
+url="https://github.com/LubosD/twinkle"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ alsa-lib-dev
+ bison
+ ccrtp-dev
+ cmake
+ commoncpp-dev
+ file-dev
+ flex
+ libsndfile-dev
+ libxml2-dev
+ qt5-qtbase-dev
+ qt5-qtdeclarative-dev
+ qt5-qttools-dev
+ readline-dev
+ samurai
+ speex-dev
+ speexdsp-dev
+"
+subpackages="$pkgname-doc"
+source="https://github.com/LubosD/twinkle/archive/refs/tags/v$pkgver/twinkle-$pkgver.tar.gz
+ glibc.patch
+ "
+options="!check" # no tests provided
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DWITH_SPEEX=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7b70a346e6d3f1dd08c1d019dd671da3cb3539815d8a14de7268b2bf43fc0b632834e00d3b63823b1338472a1b91f727a479e5381da8b1076327b112c8a9bea2 twinkle-1.10.3.tar.gz
+c537a0a83725435e60d436987713cd24f3e1a96ac0de5990a0fdeaeff8535baddc58ab567a217b9947938f6aede03d827de4ed6ffbdb28b15eb33390775700d8 glibc.patch
+"
diff --git a/testing/twinkle/glibc.patch b/testing/twinkle/glibc.patch
new file mode 100644
index 00000000000..004f9bd9e28
--- /dev/null
+++ b/testing/twinkle/glibc.patch
@@ -0,0 +1,22 @@
+--- a/src/sockets/dnssrv.cpp
++++ b/src/sockets/dnssrv.cpp
+@@ -162,7 +162,7 @@
+ result.clear();
+ for (ctr=0; ctr<num_srv; ctr++) {
+ name srvname;
+- if (ns_name_ntop (srv [ctr]+SRV_SERVER, srvname, MAXDNAME) < 0) {
++ if (ns_name_uncompress (names.buf, names.buf+names.len, srv [ctr]+SRV_SERVER, srvname, MAXDNAME) < 0) {
+ return -errno;
+ }
+
+--- a/src/threads/mutex.cpp
++++ b/src/threads/mutex.cpp
+@@ -36,7 +36,7 @@
+ pthread_mutexattr_init(&attr);
+
+
+- int ret = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
++ int ret = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ if (ret != 0) throw string(
+ "t_mutex::t_mutex failed to create a recursive mutex.");
+
diff --git a/testing/typescript/APKBUILD b/testing/typescript/APKBUILD
new file mode 100644
index 00000000000..ca232a3b8ec
--- /dev/null
+++ b/testing/typescript/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=typescript
+pkgver=5.4.4
+pkgrel=0
+pkgdesc="TypeScript is a superset of JavaScript that compiles to clean JavaScript output."
+url="https://www.typescriptlang.org/"
+arch="noarch"
+license="Apache-2.0"
+depends="cmd:node"
+options="!check" # not implemented
+source="https://github.com/microsoft/TypeScript/releases/download/v$pkgver/typescript-$pkgver.tgz"
+builddir="$srcdir/package"
+
+package() {
+ local destdir="usr/share/node_modules/$pkgname"
+
+ mkdir -p "$pkgdir"/$destdir
+ cp -R "$builddir"/* "$pkgdir"/$destdir/
+
+ mkdir -p "$pkgdir"/usr/bin
+ ln -s /$destdir/bin/tsc "$pkgdir"/usr/bin/tsc
+ ln -s /$destdir/bin/tsserver "$pkgdir"/usr/bin/tsserver
+}
+
+sha512sums="
+74613656ff1ca55bf0dbcbfc1c23eac9bd3c1336c1511c43a6e849bd3aeeb128547c69e11c169f0ec2dd4b5121871c8be8125013ed9c4f77433c0bfe310ea82f typescript-5.4.4.tgz
+"
diff --git a/testing/typst-lsp/APKBUILD b/testing/typst-lsp/APKBUILD
new file mode 100644
index 00000000000..9e911209d08
--- /dev/null
+++ b/testing/typst-lsp/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=typst-lsp
+pkgver=0.13.0
+pkgrel=0
+pkgdesc="Language server for typst"
+url="https://github.com/nvarner/typst-lsp"
+# typst, rust-analyzer
+arch="aarch64 ppc64le x86_64"
+license="MIT"
+depends="rust-analyzer"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+source="
+ https://github.com/nvarner/typst-lsp/archive/refs/tags/v$pkgver/typst-lsp-$pkgver.tar.gz
+ "
+options="net !check" # no tests
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build \
+ --release \
+ --frozen \
+ --no-default-features \
+ --features=remote-packages,native-tls
+}
+
+package() {
+ install -Dm755 target/release/typst-lsp -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+1287257320ab502d806d8df3d819ddfe803f98c96dfc9c9e50b7a1cd905527638bb8025107d828d54f846875b82d02e2862dc8a5da0e915009edb8ed133ba3f1 typst-lsp-0.13.0.tar.gz
+"
diff --git a/testing/typstfmt/APKBUILD b/testing/typstfmt/APKBUILD
new file mode 100644
index 00000000000..eae08b70f6b
--- /dev/null
+++ b/testing/typstfmt/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: lauren n. liberda <lauren@selfisekai.rocks>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
+pkgname=typstfmt
+pkgver=0.2.7
+pkgrel=0
+pkgdesc="Basic formatter for the Typst language with a future"
+url="https://github.com/astrale-sharp/typstfmt"
+# typst
+arch="all !s390x !ppc64le !riscv64 !armhf"
+license="MIT"
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-doc"
+source="https://github.com/astrale-sharp/typstfmt/archive/$pkgver/typstfmt-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/typstfmt "$pkgdir"/usr/bin/typstfmt
+ install -Dm644 LICENSE.md -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+sha512sums="
+a274b9b26e9583494080a54d6dadf3c0f26db2846659c8fa29af6ca7a42120cb549eef57be2e7d8495a44c9c51d5f2b4d1ff5140f14670b17c12b62a505b5c22 typstfmt-0.2.7.tar.gz
+"
diff --git a/testing/u1db-qt/0001-point-qmlplugindump-to-qmlplugindump-qt5.patch b/testing/u1db-qt/0001-point-qmlplugindump-to-qmlplugindump-qt5.patch
new file mode 100644
index 00000000000..68f52f67698
--- /dev/null
+++ b/testing/u1db-qt/0001-point-qmlplugindump-to-qmlplugindump-qt5.patch
@@ -0,0 +1,25 @@
+From 55104fc641dc955ce0574c7b3ee67fc5ed249a94 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 26 Nov 2023 06:16:36 -0500
+Subject: [PATCH] point qmlplugindump to qmlplugindump-qt5
+
+---
+ modules/U1db/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/U1db/CMakeLists.txt b/modules/U1db/CMakeLists.txt
+index 05cc7c4..db4e97b 100644
+--- a/modules/U1db/CMakeLists.txt
++++ b/modules/U1db/CMakeLists.txt
+@@ -50,7 +50,7 @@ install(FILES qmldir
+ add_custom_command(
+ TARGET U1DBPlugin
+ POST_BUILD
+- COMMAND "qmlplugindump" "U1db" "1.0" "${CMAKE_BINARY_DIR}/modules" ">" "plugins.qmltypes"
++ COMMAND "qmlplugindump-qt5" "U1db" "1.0" "${CMAKE_BINARY_DIR}/modules" ">" "plugins.qmltypes"
+ WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+ )
+
+--
+2.42.0
+
diff --git a/testing/u1db-qt/0002-point-qmltestrunner-to-qmltestrunner-qt5.patch b/testing/u1db-qt/0002-point-qmltestrunner-to-qmltestrunner-qt5.patch
new file mode 100644
index 00000000000..61738731e11
--- /dev/null
+++ b/testing/u1db-qt/0002-point-qmltestrunner-to-qmltestrunner-qt5.patch
@@ -0,0 +1,23 @@
+From eeaa315b792c728e18a46f41074a1839bf32ab92 Mon Sep 17 00:00:00 2001
+From: Brandon Boese <brandonboese@protonmail.com>
+Date: Sun, 26 Nov 2023 06:20:52 -0500
+Subject: [PATCH] point qmltestrunner to qmltestrunner-qt5
+
+---
+ tests/strict-qmltestrunner.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/strict-qmltestrunner.sh b/tests/strict-qmltestrunner.sh
+index 9986d1b..510451f 100755
+--- a/tests/strict-qmltestrunner.sh
++++ b/tests/strict-qmltestrunner.sh
+@@ -16,5 +16,5 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ #
+ ################################################################################
+-qmltestrunner $* || exit 1
++qmltestrunner-qt5 $* || exit 1
+ test 0 -eq $(grep -c qwarn plugintest-xunit.xml) || exit 1
+--
+2.42.0
+
diff --git a/testing/u1db-qt/APKBUILD b/testing/u1db-qt/APKBUILD
new file mode 100644
index 00000000000..f49485fedc6
--- /dev/null
+++ b/testing/u1db-qt/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Luca Weiss <luca@z3ntu.xyz>
+# Contributor: Brandon Boese <brandonboese@protonmail.com>
+pkgname=u1db-qt
+pkgver=0.1.7
+pkgrel=0
+pkgdesc="Simple Qt5 binding and QtQuick2 plugin for U1DB"
+url="https://gitlab.com/ubports/development/core/u1db-qt"
+arch="all"
+license="GPL-3.0-only"
+makedepends="
+ cmake
+ samurai
+ qt5-qtdeclarative-dev
+ "
+checkdepends="
+ dbus-test-runner
+ "
+source="https://gitlab.com/ubports/development/core/u1db-qt/-/archive/$pkgver/u1db-qt-$pkgver.tar.gz
+ 0001-point-qmlplugindump-to-qmlplugindump-qt5.patch
+ 0002-point-qmltestrunner-to-qmltestrunner-qt5.patch
+ "
+options="!check" # requires a display
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+bd64c0f48e8a078c9393948d41e06eb13b337e6b5fa965cd01e2a854495b6fac1aa6567871d3f781952190c22a834f5fcc4f012499ef8374d0b985c21f57db0f u1db-qt-0.1.7.tar.gz
+69ae5a296e43d5429a4e32deaa777015d2ec2c8ca8a4946d6da36dd4aa934345f41e2449d16360a3f8ac061acf2e9f9b91c8ee777e849f399ec4818c10e39f17 0001-point-qmlplugindump-to-qmlplugindump-qt5.patch
+f57ec76224aab9600c2d0bbcd596231c1fe92f24475eba295b0bbbcc301df9f57695d9f2e3ed65f678f1e888081a782fa8789a5f721a1cb3d6cbe7f894ba86da 0002-point-qmltestrunner-to-qmltestrunner-qt5.patch
+"
diff --git a/testing/uasm/APKBUILD b/testing/uasm/APKBUILD
new file mode 100644
index 00000000000..ff19af3f550
--- /dev/null
+++ b/testing/uasm/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Olliver Schinagl <oliver@schinagl.nl>
+# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
+pkgname=uasm
+pkgver=2.56.2
+pkgrel=0
+pkgdesc="UASM - Macro Assembler"
+url="https://www.terraspace.co.uk/uasm.html"
+arch="all"
+license="custom"
+options="!check !spdx" # No tests available, license is the JWasm open source license
+source="https://github.com/Terraspace/UASM/archive/v$pkgver/uasm-$pkgver.tar.gz"
+builddir="$srcdir/UASM-$pkgver"
+
+build() {
+ make -f gccLinux64.mak
+}
+
+package() {
+ install -Dm0755 GccUnixR/uasm \
+ "$pkgdir"/usr/bin/uasm
+ install -Dm0644 License.txt \
+ "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+1f6c1037909d012f3293985c4e0516f4b61497de23cac6bbb58db735efb512599c0bba5d60d8ce999e6afc57e44484a094bf10f0ee185a51afd826f5541c9337 uasm-2.56.2.tar.gz
+"
diff --git a/testing/ubase/APKBUILD b/testing/ubase/APKBUILD
index 311b4ea9270..fa03628e728 100644
--- a/testing/ubase/APKBUILD
+++ b/testing/ubase/APKBUILD
@@ -1,33 +1,41 @@
# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-_commit=3c88778c6c85d97fb63c41c05304519e0484b07c
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
pkgname=ubase
-pkgver=20190312
-pkgrel=0
+pkgver=20200605
+_gitrev=f152e7fc3bd1675060818ac224f96541a2d9d6e7
+pkgrel=2
pkgdesc="Suckless collection of unportable base"
-url="https://core.suckless.org/ubase"
-arch="all !mips !mips64" # fails to build on mips
+url="https://github.com/michaelforney/ubase"
+arch="all"
license="MIT"
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
subpackages="$pkgname-doc"
-makedepends="git"
-source="" # source is only distributed as a git repo
-options="suid !check" # upstream provides no test suite
-builddir="$srcdir/$pkgname"
+source="https://github.com/michaelforney/ubase/archive/$_gitrev/$pkgname-$_gitrev.tar.gz
+ config.patch
+ setup-ubase.in
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # upstream provides no test suite
prepare() {
- cd "$srcdir"
- git clone git://git.suckless.org/ubase
- cd ubase
- git checkout $_commit
+ default_prepare
+ sed "s/@@VERSION@@/$pkgver/" "$srcdir"/setup-ubase.in > setup-ubase
}
build() {
- cd "$builddir"
- make
+ make ubase-box CFLAGS="$CFLAGS"
}
package() {
- cd "$builddir"
- chmod a+s passwd
- make DESTDIR="$pkgdir" PREFIX=/usr install
+ make ubase-box-install DESTDIR="$pkgdir" PREFIX=/ MANPREFIX=/usr/share/man VERSION=$pkgver
+ find "$pkgdir"/bin -type l -delete
+
+ install -D -m755 setup-ubase -t "$pkgdir"/usr/sbin/
}
+
+sha512sums="
+3e7c023048b24857267ec57d07b9f19533f8738aac1901d7b421e21e2421e4cc3d6130b3548585f21cda6a8ee99c87098a0648d72cd2f14ad2ff59bf766593bb ubase-f152e7fc3bd1675060818ac224f96541a2d9d6e7.tar.gz
+5b944c737e77f144651e48e5221057b714e14811707f2fc17bfc336c4d32c4792e449e9cbb42d7e2f02c36438721045d961c34b01cf5b342e9e3ed2914d2bcb2 config.patch
+59b3a25e85c247dd86b85990b6076708cd94316a8332665a9d8277bf2f0ace5fae549f5ef83145dd25003df2eb302a0106fbafcf9205a4a1893677b27adefceb setup-ubase.in
+"
diff --git a/testing/ubase/config.patch b/testing/ubase/config.patch
new file mode 100644
index 00000000000..13646a45834
--- /dev/null
+++ b/testing/ubase/config.patch
@@ -0,0 +1,16 @@
+--- a/config.def.h
++++ b/config.def.h
+@@ -1,10 +1,10 @@
+ /* See LICENSE file for copyright and license details. */
+
+-#define ENV_SUPATH "/bin"
+-#define ENV_PATH "/bin"
++#define ENV_SUPATH "/usr/sbin:/usr/bin:/sbin:/bin"
++#define ENV_PATH "/usr/bin:/bin"
+ #define PW_CIPHER "$6$" /* SHA-512 */
+ #undef UTMP_PATH
+-#define UTMP_PATH "/var/run/utmp"
++#define UTMP_PATH "/run/utmp"
+ #undef BTMP_PATH
+ #define BTMP_PATH "/var/log/btmp"
+ #undef WTMP_PATH
diff --git a/testing/ubase/setup-ubase.in b/testing/ubase/setup-ubase.in
new file mode 100644
index 00000000000..68463e7e94d
--- /dev/null
+++ b/testing/ubase/setup-ubase.in
@@ -0,0 +1,125 @@
+#!/bin/sh
+#---help---
+# Usage:
+# setup-ubase install [-d <dest>] [-f] [-v] [<applet>...]
+# setup-ubase uninstall [-d <dest>] [-v] [<applet>...]
+# setup-ubase status [-d <dest>]
+# setup-ubase (-h | -V)
+#
+# Install or uninstall applet symlinks for ubase-box.
+#
+# Arguments:
+# <applet> Name of the applet(s) to (un)install or show status for.
+# Defaults to all ubase-box applets.
+#
+# Options:
+# -d <dest> Path to directory where to install ubase symlinks. If not given,
+# symlinks are created in the same directories as busybox symlinks
+# (if busybox is installed, otherwise /usr/bin).
+# -f If the symlink destination exists, replace it.
+# -v Be verbose.
+# -h Show this message and exit.
+# -V Print ubox version and exit.
+#
+# Report bugs at <https://gitlab.alpinelinux.org/alpine/aports/-/issues>
+#---help---
+set -eu
+
+PROGNAME='setup-ubase'
+VERSION=@@VERSION@@
+UBASE_BOX='/bin/ubase-box'
+
+
+help() {
+ sed -n '/^#---help---/,/^#---help---/p' "$0" | sed 's/^# \?//; 1d;$d;'
+}
+
+die() {
+ echo "$PROGNAME: $2" >&2
+ exit $1
+}
+
+bb_appletdir() {
+ local path=$(/bin/busybox --list-full | grep "/$1$" 2>/dev/null) || :
+ path=${path%/*}
+
+ echo "/${path:-usr/bin}"
+}
+
+if [ $# -eq 0 ]; then
+ help; exit 1
+fi
+
+ACTION=
+case "${1:-}" in
+ -*);;
+ *) ACTION=$1; shift;;
+esac
+
+DESTDIR=
+FORCE=false
+VERBOSE=false
+while getopts ':d:fvhV' OPT; do
+ case "$OPT" in
+ d) DESTDIR="$OPTARG";;
+ f) FORCE=true;;
+ v) VERBOSE=true;;
+ h) help; exit 0;;
+ V) echo "ubase $VERSION"; exit 0;;
+ \?) die 10 "unknown option: -$OPTARG";;
+ esac
+done
+shift $((OPTIND - 1))
+
+[ "$ACTION" ] || { ACTION=${1:-}; shift; }
+[ "$ACTION" ] || die 10 "invalid arguments, missing <action> (see $PROGNAME -h)"
+
+[ -x $UBASE_BOX ] || die 10 "ERROR: $UBASE_BOX does not exist or is not executable!"
+
+[ $# -eq 0 ] && set -- $($UBASE_BOX)
+
+rc=0
+for applet in "$@"; do
+ applet_link="${DESTDIR:-$(bb_appletdir $applet)}/$applet"
+
+ case "$ACTION" in
+ install)
+ [ "$applet_link" -ef "$UBASE_BOX" ] && continue
+
+ if [ -e "$applet_link" ] && ! $FORCE; then
+ $VERBOSE && echo "Skipping $applet - file $applet_link exists" >&2
+ continue
+ fi
+
+ $VERBOSE && echo "Creating symlink $applet_link -> $UBASE_BOX"
+ ln -fs "$UBASE_BOX" "$applet_link" || rc=11
+ ;;
+ uninstall)
+ if [ "$applet_link" -ef "$UBASE_BOX" ]; then
+ $VERBOSE && echo "Removing $applet_link"
+ rm "$applet_link" || rc=11
+ fi
+ ;;
+ status)
+ state=
+ if [ "$applet_link" -ef "$UBASE_BOX" ]; then
+ state='installed'
+ elif [ -e "$applet_link" ]; then
+ state="not-installed ($applet_link exists)"
+ else
+ state='not-installed'
+ fi
+ printf '%-13s%s\n' "$applet" "$state"
+ ;;
+ *)
+ die 10 "invalid action: $ACTION"
+ ;;
+ esac
+done
+
+if [ "$ACTION" = 'uninstall' ] && [ -x /bin/busybox ]; then
+ # Restore possibly overwritten busybox symlinks.
+ /bin/busybox --install -s
+fi
+
+exit $rc
diff --git a/testing/ubase/ubase.post-install b/testing/ubase/ubase.post-install
new file mode 100644
index 00000000000..1a25d5488b5
--- /dev/null
+++ b/testing/ubase/ubase.post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* Use setup-ubase to install ubase applet symlinks.
+*
+EOF
diff --git a/testing/ubase/ubase.post-upgrade b/testing/ubase/ubase.post-upgrade
new file mode 120000
index 00000000000..14c304bb02c
--- /dev/null
+++ b/testing/ubase/ubase.post-upgrade
@@ -0,0 +1 @@
+ubase.post-install \ No newline at end of file
diff --git a/testing/ubase/ubase.pre-deinstall b/testing/ubase/ubase.pre-deinstall
new file mode 100644
index 00000000000..8cea86b8ad7
--- /dev/null
+++ b/testing/ubase/ubase.pre-deinstall
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for dir in /bin /sbin /usr/bin /usr/sbin; do
+ /usr/sbin/setup-ubase uninstall -d $dir
+done
+
+exit 0
diff --git a/testing/ubuntu-archive-keyring/APKBUILD b/testing/ubuntu-archive-keyring/APKBUILD
index b65aeeb7d8f..b5fbc96e264 100644
--- a/testing/ubuntu-archive-keyring/APKBUILD
+++ b/testing/ubuntu-archive-keyring/APKBUILD
@@ -1,35 +1,23 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=ubuntu-archive-keyring
-pkgver=2016.05.13.1
-_pkgver=${pkgver%.*}${pkgver//*./-}
-pkgrel=1
-pkgdesc="GnuPG archive keys of the Debian archive"
-url="https://packages.debian.org/sid/debian-archive-keyring"
+pkgver=2023.11.28.1
+pkgrel=0
+pkgdesc="GnuPG keys of the Ubuntu Cloud Archive"
+url="https://launchpad.net/ubuntu/+source/ubuntu-keyring"
arch="noarch"
license="GPL"
depends="gnupg"
-makedepends="tar xz"
options="!check" # upstream doesn't have a test suite.
subpackages="$pkgname-doc"
-source="http://ftp.debian.org/debian/pool/main/u/ubuntu-keyring/${pkgname}_${_pkgver}_all.deb"
-
-unpack() {
- cd "$srcdir"
- for i in $source; do
- case $i in
- *.deb) ar x ${i##*/} || return 1 ;;
- esac
- done
-}
-
-build() {
- return 0
-}
+source="https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ubuntu-keyring/$pkgver/ubuntu-keyring_$pkgver.tar.xz"
+builddir="$srcdir/ubuntu-keyring"
package() {
- mkdir -p "$pkgdir"
- tar -xJf "$srcdir"/data.tar.xz -C "$pkgdir"/
+ install -Dm644 keyrings/* -t "$pkgdir"/usr/share/keyrings/
+ install -Dm644 debian/copyright -t "$pkgdir"/usr/share/licenses/$pkgname/
}
-sha512sums="8234457c379d2a3d0524e5ab5abf806aa8c49806ec863e7fd1d95a63c2b32ccbcaf2375e186de3bd0611b1d8f227d4ee03428d63f30f5b45597036fd5d5a0a56 ubuntu-archive-keyring_2016.05.13-1_all.deb"
+sha512sums="
+b17824a91d6e25c5658eae8d9ae509a4158b406768d5d4a8e117a230226ab7cd4327cf7e5b9bbb7baae7c66f3807d27926de85a1ea5c11a82684a890aeb8fd18 ubuntu-keyring_2023.11.28.1.tar.xz
+"
diff --git a/testing/uclient/APKBUILD b/testing/uclient/APKBUILD
new file mode 100644
index 00000000000..26f8a661657
--- /dev/null
+++ b/testing/uclient/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=uclient
+pkgver=20210514
+pkgrel=0
+pkgdesc="ustream-based HTTP client library"
+url="https://git.openwrt.org/project/uclient.git"
+arch="all"
+license="ISC"
+depends=""
+depends_dev="libubox-dev ustream-ssl-dev"
+makedepends="cmake $depends_dev"
+subpackages="$pkgname-dev $pkgname-fetch:_fetch"
+_owrtgit=6a6011df
+_owrtver="${pkgver:0:4}-${pkgver:4:2}-${pkgver:6:2}-${_owrtgit}"
+source="https://sources.openwrt.org/uclient-${_owrtver}.tar.xz"
+builddir="$srcdir/uclient-${_owrtver}"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+_fetch() {
+ amove usr/bin/uclient-fetch
+}
+
+sha512sums="
+91f0beccb367f39da998e46e160f5f73fcf7755f0ea88b72a970d9377efb5390deb6dd4d717a1b7b7cefffc61135cc1ffa24f1df78b87adb94a1a37b0b14abb3 uclient-2021-05-14-6a6011df.tar.xz
+"
diff --git a/testing/ucspi-tcp/APKBUILD b/testing/ucspi-tcp/APKBUILD
index c9473a6db4c..02bac52750e 100644
--- a/testing/ucspi-tcp/APKBUILD
+++ b/testing/ucspi-tcp/APKBUILD
@@ -1,9 +1,9 @@
-# Contributor: Francesco Colista <francesco.colista@gmail.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Johannes Findeisen <you@hanez.org>
pkgname=ucspi-tcp
pkgver=0.88
-pkgrel=1
+pkgrel=2
pkgdesc="Easy-to-use command-line tools for building TCP client-server applications."
url="https://cr.yp.to/ucspi-tcp.html"
arch="all"
diff --git a/testing/udftools/APKBUILD b/testing/udftools/APKBUILD
deleted file mode 100644
index fc07c2131a5..00000000000
--- a/testing/udftools/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=udftools
-pkgver=2.2
-pkgrel=0
-arch="all"
-url="https://github.com/pali/udftools/"
-pkgdesc="Tools for UDF filesystems and DVD/CD-R(W) drives"
-license="GPL-2.0-or-later"
-makedepends="automake autoconf libtool eudev-dev linux-headers"
-source="https://github.com/pali/udftools/releases/download/$pkgver/udftools-$pkgver.tar.gz"
-subpackages="$pkgname-doc"
-options="!check" # No tests
-
-prepare() {
- default_prepare
-
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr
-
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="1d6f7b725053ab8c2092ca07bce07fb075168ba48f7d2580076ee84b2652af3898622746c5a2f0bdb8c0d1d0e09d1f4a3cbaae4f998924652a56561b84690e2b udftools-2.2.tar.gz"
diff --git a/testing/udpcast/APKBUILD b/testing/udpcast/APKBUILD
index 15833bd1df6..a90e10f7d20 100644
--- a/testing/udpcast/APKBUILD
+++ b/testing/udpcast/APKBUILD
@@ -1,38 +1,37 @@
-# Contributor:
-# Maintainer: Jay Christopherson <jaychris@gmail.com>
+# Contributor: Jay Christopherson <jaychris@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=udpcast
-pkgver=20120424
-pkgrel=0
-pkgdesc="Port of UDPcast file transfer tool"
-url="https://www.udpcast.linux.lu/index.html"
+pkgver=20230924
+pkgrel=1
+pkgdesc="Multicast file transfer tool"
+url="https://www.udpcast.linux.lu/"
arch="all"
-license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends="$depends_dev linux-headers m4 perl"
-install=""
-subpackages="$pkgname-doc $pkgname-dev"
+license="GPL-2.0-or-later AND BSD-2-Clause"
+makedepends="linux-headers m4 perl"
+subpackages="$pkgname-dev $pkgname-doc"
source="https://www.udpcast.linux.lu/download/udpcast-$pkgver.tar.gz
console.patch
+ fix-includes.patch
"
-
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare || return 1
- update_config_guess || return 1
-}
+options="!check" # no tests provided
build() {
- cd "$builddir"
- ./configure --prefix=/usr || return 1
- make || return 1
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="b16a1d3215cbefba1e4d6bb0b38f4715e476c41ddc93fa1a38c5e707af786f4a97badd1eea494f7838f276f370af414d8379db04a14b9b3ff32a1318f16db33d udpcast-20120424.tar.gz
-7abfcf317b5985f680258abc913a48cfd21a26f77625780e57d93960f7efeb0f214ce4d4188bd75cedb9dccac5a5fe9befed2044e3df3b0e8228ac6e0663c41c console.patch"
+sha512sums="
+3b56e6e524d8e7ebc230cfecc9e3af590ad29963cba44f24663d0f361c294c85a54fa8cedbdf48276a76fcf772ce9a2b2d65854f71d8336e73a98aec56b822bc udpcast-20230924.tar.gz
+7abfcf317b5985f680258abc913a48cfd21a26f77625780e57d93960f7efeb0f214ce4d4188bd75cedb9dccac5a5fe9befed2044e3df3b0e8228ac6e0663c41c console.patch
+f10cc923f445fc5e0e828d2e7d21febcaa16a1ec65538c5736ae4eadd3251ab65740b827f9d5bfb77b5ce5908a490588751d349cf5f711a41951ddcee090de8a fix-includes.patch
+"
diff --git a/testing/udpcast/fix-includes.patch b/testing/udpcast/fix-includes.patch
new file mode 100644
index 00000000000..810824e2294
--- /dev/null
+++ b/testing/udpcast/fix-includes.patch
@@ -0,0 +1,10 @@
+--- a/receivedata.c
++++ b/receivedata.c
+@@ -13,6 +13,7 @@
+ #include "udp-receiver.h"
+ #include "util.h"
+ #include "statistics.h"
++#include "stddef.h"
+ #include "fec.h"
+
+ #define DEBUG 0
diff --git a/testing/udpt/APKBUILD b/testing/udpt/APKBUILD
new file mode 100644
index 00000000000..cca54a0fd6b
--- /dev/null
+++ b/testing/udpt/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Thomas Kienlen <kommander@laposte.net>
+# Maintainer: Thomas Kienlen <kommander@laposte.net>
+pkgname=udpt
+pkgver=3.1.2
+pkgrel=0
+pkgdesc="Lightweight UDP torrent tracker"
+url="https://github.com/naim94a/udpt"
+arch="all"
+license="MIT"
+makedepends="cargo cargo-auditable"
+pkgusers="udpt"
+pkggroups="udpt"
+install="udpt.pre-install"
+subpackages="$pkgname-openrc"
+source="https://github.com/naim94a/udpt/archive/refs/tags/v$pkgver/udpt-$pkgver.tar.gz
+ lock.patch
+ udpt.initd
+ udpt.conf
+ "
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m 755 target/release/udpt-rs "$pkgdir/usr/bin/udpt"
+ install -D -m 755 "$srcdir/udpt.initd" "$pkgdir/etc/init.d/udpt"
+ install -D -m 660 -o udpt -g udpt "$srcdir/udpt.conf" "$pkgdir/etc/udpt.conf"
+}
+
+sha512sums="
+de0d715a87be3568448c61ae9b6484c4b9ad5863d956119ed80b3e821135208f59ca0a06dfa027b501dae51596d30f8f4ea81aba235f1f8464c77b9acc49e909 udpt-3.1.2.tar.gz
+b28ecc070fe27b7d71fa8812f5dc7412c1bbd28bbc160028fb8abf65c6408bbd39d416aa931ef41dd1733d9f92a54172e41b6083a8ed5ac996b2bb557e979f84 lock.patch
+e233e4d76a0ad458579810ebb9d5697604bfebb0f51f218bcd27ceff55d2a86c50bc28b278da6793f6e688492eb962043f1e876852b3d8dcec046bff56abe78b udpt.initd
+9646e424a2fe4355745241ce84f989453bf75b26bad772d2ba7e72eade6b51d5f8d4b6e3eb671edff3c892a47dda029a3aed93276a3a4f992db13cce57e1521d udpt.conf
+"
diff --git a/testing/udpt/lock.patch b/testing/udpt/lock.patch
new file mode 100644
index 00000000000..e6dc30954a7
--- /dev/null
+++ b/testing/udpt/lock.patch
@@ -0,0 +1,13 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 48cd614..7dfed24 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -800,7 +800,7 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+ [[package]]
+ name = "udpt-rs"
+-version = "3.1.1"
++version = "3.1.2"
+ dependencies = [
+ "async-compression",
+ "binascii",
diff --git a/testing/udpt/udpt.conf b/testing/udpt/udpt.conf
new file mode 100644
index 00000000000..515a45feeb2
--- /dev/null
+++ b/testing/udpt/udpt.conf
@@ -0,0 +1,13 @@
+mode = "dynamic"
+db_path = "/var/lib/udpt/database.json.bz2"
+log_level = "info"
+
+[udp]
+announce_interval = 120 # Two minutes
+bind_address = "0.0.0.0:1212"
+
+# [http]
+# bind_address = "127.0.0.1:1212"
+#
+# [http.access_tokens]
+# someone = "MyAccessToken"
diff --git a/testing/udpt/udpt.initd b/testing/udpt/udpt.initd
new file mode 100644
index 00000000000..f45c3617c2c
--- /dev/null
+++ b/testing/udpt/udpt.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+
+description="UDP bittorrent Tracker"
+supervisor=supervise-daemon
+command=/usr/bin/udpt
+command_args="-c /etc/udpt.conf"
+command_user="udpt:udpt"
+output_log=/var/log/$RC_SVCNAME.log
+stopsig="SIGINT"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath --directory --owner $command_user --mode 0775 \
+ /var/lib/$RC_SVCNAME
+ checkpath --file --owner $command_user --mode 0644 \
+ /var/log/$RC_SVCNAME.log
+}
diff --git a/testing/udpt/udpt.pre-install b/testing/udpt/udpt.pre-install
new file mode 100755
index 00000000000..5d608bf8b1a
--- /dev/null
+++ b/testing/udpt/udpt.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+addgroup -S udpt 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -g udpt udpt 2>/dev/null
+exit 0
diff --git a/testing/ueberzug/APKBUILD b/testing/ueberzug/APKBUILD
new file mode 100644
index 00000000000..c5a9bba09ea
--- /dev/null
+++ b/testing/ueberzug/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Sergiy Stupar <owner@sestolab.pp.ua>
+# Maintainer: Sergiy Stupar <owner@sestolab.pp.ua>
+pkgname=ueberzug
+pkgver=18.2.2
+pkgrel=1
+pkgdesc="Command line util which allows one to draw images on terminals by using child windows"
+url="https://github.com/ueber-devel/ueberzug"
+arch="all"
+license="GPL-3.0-or-later"
+depends="
+ py3-attrs
+ py3-docopt
+ py3-pillow
+ "
+makedepends="
+ libxext-dev
+ libxres-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ueber-devel/ueberzug/archive/$pkgver.tar.gz"
+options="!check" # No tests
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+9253b687000a36a9d90408a6760c2ee8a78e48eabb72cab8fb5fb42bb7eaaacec6695b7c1e5bb51bfe651e4a06d19df0d9a82800054ff954c4825349fa72b872 ueberzug-18.2.2.tar.gz
+"
diff --git a/testing/uefitool/APKBUILD b/testing/uefitool/APKBUILD
new file mode 100644
index 00000000000..77594c54014
--- /dev/null
+++ b/testing/uefitool/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Mogens Jensen <mogens-jensen@protonmail.com>
+# Maintainer: Mogens Jensen <mogens-jensen@protonmail.com>
+pkgname=uefitool
+pkgver=0.28.0
+pkgrel=1
+pkgdesc="UEFI firmware image viewer and editor"
+url="https://github.com/LongSoft/UEFITool"
+arch="all"
+license="BSD-2-Clause"
+makedepends="qt5-qtbase-dev"
+options="!check" # No test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/LongSoft/UEFITool/archive/$pkgver.tar.gz"
+builddir="$srcdir/UEFITool-$pkgver"
+
+build() {
+ qmake-qt5 -o Makefile uefitool.pro
+ make
+ qmake-qt5 -o UEFIPatch/Makefile UEFIPatch/uefipatch.pro
+ make -C UEFIPatch
+ qmake-qt5 -o UEFIReplace/Makefile UEFIReplace/uefireplace.pro
+ make -C UEFIReplace
+}
+
+package() {
+ install -d "$pkgdir"/usr/bin
+ install -m 0755 UEFITool "$pkgdir"/usr/bin/UEFITool
+ install -m 0755 UEFIPatch/UEFIPatch "$pkgdir"/usr/bin/UEFIPatch
+ install -m 0755 UEFIReplace/UEFIReplace "$pkgdir"/usr/bin/UEFIReplace
+}
+
+sha512sums="5db9b2004dcc8482dd03713fd67b86cabb93455723e1cafad1ec9b877b0b73354e7f692dd3f5ff7ecc5992d6abd5ca2fb5b0cd2d103f4e722320164539d29483 uefitool-0.28.0.tar.gz"
diff --git a/testing/ufw-extras/APKBUILD b/testing/ufw-extras/APKBUILD
deleted file mode 100644
index 13843cadfb4..00000000000
--- a/testing/ufw-extras/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer:
-pkgname=ufw-extras
-pkgver=0.5
-pkgrel=0
-pkgdesc="Extra configuration files for uncomplicated firewall (ufw)."
-url="https://github.com/xyproto/ufw-extras"
-arch="noarch"
-license="GPL-2.0-or-later"
-options="!check" # No test suite
-depends="ufw"
-source="$pkgname-$pkgver.tar.gz::https://github.com/xyproto/ufw-extras/archive/$pkgver.tar.gz"
-
-package() {
- local file;
- for file in "ufw-"*; do
- install -Dm644 "$file" "$pkgdir/etc/ufw/applications.d/$file"
- done
-}
-
-sha512sums="5d2deeee693bd56e7345512377842ade4a57c660be037927a2f6ab3fef6e9eb4b007990bb0c18b0c0ad1dda88b31c2bf7aec821dbd96b904f07cd6d9cfe6c120 ufw-extras-0.5.tar.gz"
diff --git a/testing/ufw/APKBUILD b/testing/ufw/APKBUILD
deleted file mode 100644
index 27927c53057..00000000000
--- a/testing/ufw/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Danilo Falcão <danilo@falcao.org>
-# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
-# Maintainer:
-pkgname=ufw
-pkgver=0.36
-pkgrel=2
-pkgdesc="Uncomplicated CLI tool managing a netfilter firewall"
-url="https://launchpad.net/ufw"
-arch="noarch"
-license="GPL-3.0-or-later"
-options="!check" # 3 tests fails
-depends="iptables ip6tables python3"
-subpackages="$pkgname-doc $pkgname-openrc $pkgname-bash-completion:bashcomp:noarch"
-source="https://launchpad.net/ufw/$(echo $pkgver|cut -c1-4)/$pkgver/+download/ufw-$pkgver.tar.gz
- $pkgname.initd
- fix-lib_path.patch
- "
-
-check() {
- sh run_tests.sh
-}
-
-package() {
- python3 setup.py install --root="$pkgdir"
-
- install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
- chmod 644 "$pkgdir"/etc/ufw/*.rules
-
- install -Dm0644 "$builddir"/shell-completion/bash \
- "$pkgdir"/usr/share/bash-completion/completions/ufw
-}
-
-sha512sums="b32d7f79f43c203149c48b090ee0d063df78fcf654344ee11066a7363e799a62b046758ffe02b8bd15121545ac2a6b61df21fe56f8b810319fe4dd562cbdadb3 ufw-0.36.tar.gz
-b0405525a22bfa70f656ec3685a0aa509645d52771465a3fc068e789cd4bbf86e8409cb4021200794729dcba3c10c99d5c2ba06ae91eca9e3b942a407525e6d5 ufw.initd
-86b29ff76f6d858cacdf677be5e08daad0b203a27b65ea40da69e11a97d66d93bd60690ee2563b26d8e6b1e89e7fc72d76ebb15dff9e5a38080cb9a799e96f16 fix-lib_path.patch"
diff --git a/testing/ufw/fix-lib_path.patch b/testing/ufw/fix-lib_path.patch
deleted file mode 100644
index aff9826989c..00000000000
--- a/testing/ufw/fix-lib_path.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -55,7 +55,7 @@
- return
-
- real_confdir = os.path.join('/etc')
-- real_statedir = os.path.join('/lib', 'ufw')
-+ real_statedir = os.path.join('/usr/lib', 'ufw')
- real_prefix = self.prefix
- if self.home != None:
- real_confdir = self.home + real_confdir
diff --git a/testing/ufw/ufw.initd b/testing/ufw/ufw.initd
deleted file mode 100644
index 0438058996c..00000000000
--- a/testing/ufw/ufw.initd
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-firewall/ufw/files/ufw-2.initd,v 1.1 2011/07/24 11:18:22 pva Exp $
-
-depend() {
- before net
- provide firewall
-}
-
-start() {
- ebegin "Starting ufw"
- _source_file || { eend $?; return $?; }
-
- local enabled_in_cfg ret
- _check_if_enabled_in_cfg
- enabled_in_cfg=$?
-
- # Avoid "Firewall already started, use 'force-reload'" message that
- # appears if `ufw enable' had been run before start().
- if _status_quiet; then
- eend 0
- return
- fi
-
- # The ufw_start function does the same: if ufw is disabled using `ufw disable',
- # ufw_start would not start ufw and return 0, so let's handle this case.
- case $enabled_in_cfg in
- 0)
- ufw_start
- ret=$?
- eend $ret "Failed to start ufw."
- ;;
- 1)
- # see /etc/conf.d/<name>
- if [ "${ufw_nonfatal_if_disabled:-no}" != "yes" ]; then
- ret=1
- eend $ret "Not starting firewall (not enabled), use \"ufw enable\" first."
- else
- ret=0
- eend 0
- fi
- ;;
- 2)
- ret=1
- eend $ret "Failed to start ufw."
- ;;
- esac
-
- return $ret
-}
-
-stop() {
- ebegin "Stopping ufw"
- _source_file || { eend $?; return $?; }
- local enabled_in_cfg ret
- _check_if_enabled_in_cfg
- enabled_in_cfg=$?
-
- # Same as above (unless --force is passed to ufw_stop).
- case $enabled_in_cfg in
- 0)
- ufw_stop
- ret=$?
- ;;
- 1)
- einfo "INFO: ufw is configured to be disabled"
- ufw_stop --force
- ret=$?
- ;;
- 2)
- ret=1
- ;;
- esac
-
- eend $ret "Failed to stop ufw."
- return $ret
-}
-
-_status_quiet() {
- # return values: 0 - started, 1 - stopped, 2 - error
- # Does not execute _source_file.
- local ret
- ufw_status > /dev/null
- ret=$?
- # Return values for ufw_status come from /usr/lib/ufw/ufw-init-functions.
- case $ret in
- 0) return 0 ;;
- 3) return 1 ;;
- *) return 2 ;;
- esac
-}
-
-_source_file() {
- local sourced_f="/usr/lib/ufw/ufw-init-functions"
- if [ ! -f "$sourced_f" ]; then
- eerror "Cannot find file $sourced_f!"
- return 1
- fi
-
- local _path=$PATH
- if ! source "$sourced_f"; then
- # PATH can be broken here, fix it...
- PATH=$_path
- eerror "Error sourcing file $sourced_f"
- return 1
- fi
-
- if [ -z "$PATH" ]; then
- PATH=$_path
- else
- PATH="${PATH}:${_path}"
- fi
- return 0
-}
-
-_check_if_enabled_in_cfg() {
- # Check if user has enabled the firewall with "ufw enable".
- # Return 0 if firewall enabled in configuration file, 1 otherwise, 2 on error.
-
- local sourced_f="/etc/ufw/ufw.conf"
- if [ ! -f "$sourced_f" ]; then
- eerror "Cannot find file $sourced_f!"
- return 2
- fi
-
- if ! source "$sourced_f"; then
- eerror "Error sourcing file $sourced_f"
- return 2
- fi
-
- if [ "$ENABLED" = "yes" ] || [ "$ENABLED" = "YES" ]; then
- return 0
- else
- return 1
- fi
-}
diff --git a/testing/unclutter-xfixes/APKBUILD b/testing/unclutter-xfixes/APKBUILD
deleted file mode 100644
index 580e5349a52..00000000000
--- a/testing/unclutter-xfixes/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
-# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
-pkgname=unclutter-xfixes
-pkgver=1.5
-pkgrel=0
-url="https://github.com/Airblader/$pkgname"
-arch="all"
-license="MIT"
-pkgdesc="Hides mouse pointer while not in use"
-makedepends="libxfixes-dev libev-dev libxi-dev asciidoc"
-subpackages="$pkgname-doc"
-_myver="$pkgname-$pkgver"
-source="$_myver.tar.gz::https://github.com/Airblader/$pkgname/archive/v$pkgver.tar.gz"
-
-build() {
- make
-}
-
-package() {
- install -D -m755 "$builddir/unclutter" "$pkgdir/usr/bin/$pkgname"
- install -D -m444 "$builddir/man/$pkgname.1" "$pkgdir/usr/share/man/man1/$pkgname.1"
-}
-
-sha512sums="0b8823d5ab64193f7e5fe03ceecbe0f475bbe36f78c4a0295705a80e9df1e5a8c4f65eb749b55e5b8b06aa3248e4f2fc1daac1b14b84aab157bdfbff39bba095 unclutter-xfixes-1.5.tar.gz"
diff --git a/testing/undock/APKBUILD b/testing/undock/APKBUILD
new file mode 100644
index 00000000000..0588f1f8449
--- /dev/null
+++ b/testing/undock/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=undock
+pkgver=0.7.0
+pkgrel=2
+pkgdesc="Tool to extract contents of a container image into a local folder"
+url="https://crazymax.dev/undock/"
+arch="all"
+license="MIT"
+makedepends="go linux-headers gpgme-dev btrfs-progs-dev lvm2-dev sqlite-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/crazy-max/undock/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+_gotags="containers_image_openpgp exclude_graphdriver_btrfs exclude_graphdriver_devicemapper libsqlite3"
+
+build() {
+ go build -v -o bin/$pkgname \
+ -ldflags "-X main.version=$pkgver" \
+ -tags "$_gotags" \
+ ./cmd
+}
+
+check() {
+ go test -tags "$_gotags" ./...
+}
+
+package() {
+ install -Dm755 bin/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+ac3bd91a67445b12ea6c5f9a5e40055a99da1718679fcb670cdd35c47d7bab67dd8fe8563baf922baeb741df9e0a4cd82b4bcfdc2cf2e65c19ed2b848354c18d undock-0.7.0.tar.gz
+"
diff --git a/testing/unicorn/APKBUILD b/testing/unicorn/APKBUILD
new file mode 100644
index 00000000000..e94f7a25189
--- /dev/null
+++ b/testing/unicorn/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=unicorn
+pkgver=2.0.1
+pkgrel=4
+pkgdesc="Unicorn CPU emulator engine"
+url="https://www.unicorn-engine.org/"
+# ppc: fails check
+# rest: ftbfs
+arch="all !armv7 !armhf !ppc64le !s390x"
+license="GPL-2.0-or-later"
+makedepends="cmake linux-headers python3 py3-setuptools py3-gpep517 py3-wheel samurai"
+subpackages="$pkgname-dev py3-$pkgname-pyc:pyc py3-unicorn:py3"
+source="https://github.com/unicorn-engine/unicorn/archive/refs/tags/$pkgver/unicorn-$pkgver.tar.gz
+ endian.patch
+ python-libdir.patch
+ "
+
+# secfixes:
+# 2.0.1-r0:
+# - CVE-2022-29693
+# - CVE-2022-29694
+# - CVE-2022-29695
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+
+ cd bindings/python
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ cd bindings/python
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+
+ # dupe of parent package
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/unicorn/lib/
+}
+
+py3() {
+ pkgdesc="$pkgdesc (Python bindings)"
+ depends="python3 $pkgname=$pkgver-r$pkgrel py3-setuptools"
+
+ amove usr/lib/python3*
+}
+
+sha512sums="
+4249d33d38614ea1ca51e38c7838cb276306100aa44c65ad1b3e39304e4b856ac643a9c6f9d13678fc07bea58989a08b64653d17afe9e62bcef2936ba63e1b1f unicorn-2.0.1.tar.gz
+c1373171c1d9ee106f9dab94e7d283b3b8c1eb19013ffc96d1b6156c1571057f9984f08db4f07ea98d6bd7855a6aa39386ca33cade4bb9e367cb8b2705c865c1 endian.patch
+994150b8625ff7198ef344f85b88f62a3cb9fe429a8985d03ec049fd99f223ccc8b59a1a909d025a0ef387fab4b2c22b96b5ee4de93efdda57a7747fae080704 python-libdir.patch
+"
diff --git a/testing/unicorn/endian.patch b/testing/unicorn/endian.patch
new file mode 100644
index 00000000000..0506d1354c4
--- /dev/null
+++ b/testing/unicorn/endian.patch
@@ -0,0 +1,57 @@
+diff --git a/tests/unit/endian.h b/tests/unit/endian.h
+index 5bc8630..3e24763 100644
+--- a/tests/unit/endian.h
++++ b/tests/unit/endian.h
+@@ -29,47 +29,13 @@
+ #ifndef BOOST_DETAIL_ENDIAN_HPP
+ #define BOOST_DETAIL_ENDIAN_HPP
+
+-// GNU libc offers the helpful header <endian.h> which defines
+-// __BYTE_ORDER
+-
+-#if defined (__GLIBC__)
+-# include <endian.h>
+-# if (__BYTE_ORDER == __LITTLE_ENDIAN)
+-# define BOOST_LITTLE_ENDIAN
+-# elif (__BYTE_ORDER == __BIG_ENDIAN)
+-# define BOOST_BIG_ENDIAN
+-# elif (__BYTE_ORDER == __PDP_ENDIAN)
+-# define BOOST_PDP_ENDIAN
+-# else
+-# error Unknown machine endianness detected.
+-# endif
+-# define BOOST_BYTE_ORDER __BYTE_ORDER
+-#elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)
+-# define BOOST_BIG_ENDIAN
+-# define BOOST_BYTE_ORDER 4321
+-#elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)
++#include <endian.h>
++#if (__BYTE_ORDER == __LITTLE_ENDIAN)
+ # define BOOST_LITTLE_ENDIAN
+-# define BOOST_BYTE_ORDER 1234
+-#elif defined(__sparc) || defined(__sparc__) \
+- || defined(_POWER) || defined(__powerpc__) \
+- || defined(__ppc__) || defined(__hpux) || defined(__hppa) \
+- || defined(_MIPSEB) || defined(_POWER) \
+- || defined(__s390__)
++#elif (__BYTE_ORDER == __BIG_ENDIAN)
+ # define BOOST_BIG_ENDIAN
+-# define BOOST_BYTE_ORDER 4321
+-#elif defined(__i386__) || defined(__alpha__) \
+- || defined(__ia64) || defined(__ia64__) \
+- || defined(_M_IX86) || defined(_M_IA64) \
+- || defined(_M_ALPHA) || defined(__amd64) \
+- || defined(__amd64__) || defined(_M_AMD64) \
+- || defined(__x86_64) || defined(__x86_64__) \
+- || defined(_M_X64) || defined(__bfin__)
+-
+-# define BOOST_LITTLE_ENDIAN
+-# define BOOST_BYTE_ORDER 1234
+-#else
+-# error The file boost/detail/endian.hpp needs to be set up for your CPU type.
++#elif (__BYTE_ORDER == __PDP_ENDIAN)
++# define BOOST_PDP_ENDIAN
+ #endif
+
+-
+ #endif
diff --git a/testing/unicorn/python-libdir.patch b/testing/unicorn/python-libdir.patch
new file mode 100644
index 00000000000..080acb0cef6
--- /dev/null
+++ b/testing/unicorn/python-libdir.patch
@@ -0,0 +1,13 @@
+diff --git a/bindings/python/unicorn/unicorn.py b/bindings/python/unicorn/unicorn.py
+index c782356..b7d0be2 100644
+--- a/bindings/python/unicorn/unicorn.py
++++ b/bindings/python/unicorn/unicorn.py
+@@ -86,7 +86,7 @@ _path_list = [os.getenv('LIBUNICORN_PATH', None),
+ os.path.join(os.path.split(__file__)[0], 'lib'),
+ '',
+ distutils.sysconfig.get_python_lib(),
+- "/usr/local/lib/" if sys.platform == 'darwin' else '/usr/lib64',
++ "/usr/local/lib/" if sys.platform == 'darwin' else '/usr/lib',
+ os.getenv('PATH', '')]
+
+ #print(_path_list)
diff --git a/testing/unify/APKBUILD b/testing/unify/APKBUILD
deleted file mode 100644
index e6e5cd7302d..00000000000
--- a/testing/unify/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=unify
-pkgver=0.4
-pkgrel=2
-pkgdesc="A strings modification tool for (single/double) quote"
-url="https://github.com/myint/unify"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="python3-dev py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/myint/unify/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- python3 setup.py build
-}
-
-check() {
- cd "$builddir"
- python3 setup.py test
-}
-
-package() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="dc06553f13480eca832ed40e632d63581471017a36d6fa7f360b324657ac135bb74e803f3082ee03d1d31977000cf7724ff249f4183fae6a1ca9cfd9e69346e6 unify-0.4.tar.gz"
diff --git a/testing/unit-php81/APKBUILD b/testing/unit-php81/APKBUILD
new file mode 100644
index 00000000000..3de005e1ce1
--- /dev/null
+++ b/testing/unit-php81/APKBUILD
@@ -0,0 +1,73 @@
+# Contributor: André Klitzing <aklitzing@gmail.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Andy Postnikov <apostnikov@gmail.com>
+pkgname=unit-php81
+pkgver=1.32.1
+pkgrel=0
+pkgdesc="PHP 8.1 module for NGINX Unit"
+url="https://unit.nginx.org/"
+arch="all"
+license="Apache-2.0"
+_phpver=81
+depends="unit"
+makedepends="
+ linux-headers
+ openssl-dev>3
+ php$_phpver-dev
+ php$_phpver-embed
+ "
+checkdepends="procps-ng
+ py3-openssl
+ py3-pytest
+ php$_phpver-opcache
+ "
+source="https://unit.nginx.org/download/unit-$pkgver.tar.gz
+ phpver.patch
+ fix-tls-tests.patch
+ "
+builddir="$srcdir/unit-$pkgver"
+
+build() {
+ ./configure \
+ --prefix="/usr" \
+ --localstatedir="/var" \
+ --statedir="/var/lib/unit" \
+ --control="unix:/run/control.unit.sock" \
+ --pid="/run/unit.pid" \
+ --log="/var/log/unit.log" \
+ --tmpdir=/tmp \
+ --modulesdir="/usr/lib/unit/modules" \
+ --openssl \
+ --user=unit \
+ --group=unit \
+ --tests
+ ./configure php --module=php$_phpver --config=php-config$_phpver
+
+ make
+ make php$_phpver tests
+}
+
+check() {
+ # FIXME: some tests fail in CI or locally in checkroot too
+ local _fds=160 # fds leaking in tests
+ local _allow_fail=no
+ case "$CARCH" in
+ armhf | armv7) _allow_fail=yes ;; # segfault
+ esac
+ pytest test --fds-threshold=$_fds -k "
+ test_php \
+ and not test_php_isolation \
+ and not test_php_application_forbidden \
+ and not test_php_application_shared_opcache \
+ " || [ "$_allow_fail" = yes ]
+}
+
+package() {
+ make php$_phpver-install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+159b36f7afb8857188c9b64ee192e18d6990da3733caafcfb684b98e3f5182a7589ed2439f32af0cd3c763a3fa73f061f5a73ef01894182b1c12a4cd324c528a unit-1.32.1.tar.gz
+2fe9966f54fd5d23316810b0260d966e2093c303d8a9ecea693971fe2243c579ed5db0e41e01fc01e56801387bd19cc72f5b26c45d21e5d48084e9ded384965b phpver.patch
+aae610dd2e8056d278397af708926a8e24f282158dc539182f9dfd44582f6b8bba1a57df7769539572f4268db305d84f12eb9fe07dfeec9a8781a6f66ca28386 fix-tls-tests.patch
+"
diff --git a/testing/unit-php81/fix-tls-tests.patch b/testing/unit-php81/fix-tls-tests.patch
new file mode 100644
index 00000000000..fa8e35179c6
--- /dev/null
+++ b/testing/unit-php81/fix-tls-tests.patch
@@ -0,0 +1,40 @@
+Patch-Source: https://github.com/nginx/unit/commit/a625a0b1f0d822b3224b7b29565fe9733b634afd
+From a625a0b1f0d822b3224b7b29565fe9733b634afd Mon Sep 17 00:00:00 2001
+From: Andrei Zeliankou <zelenkov@nginx.com>
+Date: Mon, 8 Apr 2024 02:18:37 +0100
+Subject: [PATCH] Tests: compatibility with OpenSSL 3.2.0
+
+OpenSSL 3.2.0 generates X.509v3 certificates by default. These
+certificates, even self-signed, cannot sign other certificates unless
+"CA:TRUE" is explicitly set in the basicConstraints extension.
+As a result, tests attempting this are currently failing.
+
+Fix is to provide "CA:TRUE" in the basicConstraints for self-signed root
+certificates used in "openssl ca" commands.
+
+Closes: https://github.com/nginx/unit/issues/1202
+Tested-by: Andrew Clayton <a.clayton@nginx.com>
+Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
+---
+ test/unit/applications/tls.py | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/test/unit/applications/tls.py b/test/unit/applications/tls.py
+index 75354dd91..b48293be6 100644
+--- a/test/unit/applications/tls.py
++++ b/test/unit/applications/tls.py
+@@ -85,9 +85,13 @@ def openssl_conf(self, rewrite=False, alt_names=None):
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+
+ {a_sec if alt_names else ""}
+-[ req_distinguished_name ]'''
++[ req_distinguished_name ]
++
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE'''
+ )
+
+ def load(self, script, name=None):
diff --git a/testing/unit-php81/phpver.patch b/testing/unit-php81/phpver.patch
new file mode 100644
index 00000000000..8168a71b204
--- /dev/null
+++ b/testing/unit-php81/phpver.patch
@@ -0,0 +1,15 @@
+--- a/auto/modules/php
++++ b/auto/modules/php
+@@ -102,11 +102,7 @@
+ `${NXT_PHP_CONFIG} --libs`"
+
+ else
+- if [ $NXT_PHP_MAJOR_VERSION -ge 8 ]; then
+- NXT_PHP_LIB="-lphp"
+- else
+- NXT_PHP_LIB="-lphp${NXT_PHP_VERSION%%.*}"
+- fi
++ NXT_PHP_LIB="-lphp${NXT_PHP_MAJOR_VERSION}${NXT_PHP_MINOR_VERSION}"
+
+ if [ "$NXT_PHP_LIB_PATH" != "" ]; then
+ # "php-config --ldflags" does not contain path to libphp, but
diff --git a/testing/unshield/APKBUILD b/testing/unshield/APKBUILD
deleted file mode 100644
index 53fc21130ae..00000000000
--- a/testing/unshield/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Clayton Craft <clayton@craftyguy.net>
-# Maintainer: Clayton Craft <clayton@craftyguy.net>
-pkgname=unshield
-pkgver=1.4.3
-pkgrel=0
-pkgdesc="Extracts CAB files from InstallShield installers"
-# Note: only tested on the following archs, may work on others too but not
-# adding them until this has been confirmed
-arch="x86_64 aarch64"
-url="https://github.com/twogood/unshield"
-license="MIT"
-makedepends="cmake zlib-dev"
-checkdepends="bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/twogood/unshield/archive/$pkgver.tar.gz"
-subpackages="
- $pkgname-doc
- $pkgname-dev
- "
-options="!check"
-# Package includes unit tests but they fail to execute:
-# https://github.com/twogood/unshield/issues/99
-
-build() {
- cmake -B build . \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_BUILD_TYPE=None
- make -C build
-}
-
-check() {
- UNSHIELD=$builddir/src/unshield bash run-tests.sh
-}
-
-package() {
- make -C build DESTDIR="$pkgdir" install
-}
-sha512sums="2f058e0a28d0497e2afe231ded1b1bb16745401398eb1035e628d263351b10a1343c9664f3937b8912755db9dc5236a1b43e9bcba596affb7aa8b036f49382aa unshield-1.4.3.tar.gz"
diff --git a/testing/up/APKBUILD b/testing/up/APKBUILD
new file mode 100644
index 00000000000..256d2ed4f49
--- /dev/null
+++ b/testing/up/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Francesco Camuffo <dev@fmac.xyz>
+# Maintainer: Francesco Camuffo <dev@fmac.xyz>
+pkgname=up
+pkgver=0.4
+pkgrel=20
+pkgdesc="Ultimate Plumber is a tool for writing Linux pipes with instant live preview"
+url="https://github.com/akavel/up"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/akavel/up/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -o bin/$pkgname
+}
+
+check() {
+ go test
+}
+
+package() {
+ install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+cleanup_srcdir() {
+ go clean -modcache
+ default_cleanup_srcdir
+}
+
+sha512sums="f9032decec6f2288a50c91fbc25d76fb572e8942f035382067fdad79dd319fb42251d6b0df0d65d1eb9a9632b8431122951a4509c06dae759def3075014dcdd0 up-0.4.tar.gz"
diff --git a/testing/upmpdcli/APKBUILD b/testing/upmpdcli/APKBUILD
deleted file mode 100644
index 8d2763c2c85..00000000000
--- a/testing/upmpdcli/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Marvin Steadfast <marvin@xsteadfastx.org>
-# Maintainer: Marvin Steadfast <marvin@xsteadfastx.org>
-pkgname=upmpdcli
-pkgver=1.4.7
-pkgrel=0
-pkgdesc="upmpdcli is a UPnP Media Renderer front-end for MPD, the Music Player Daemon"
-url="http://www.lesbonscomptes.com/upmpdcli"
-arch="all !armhf !armv7"
-license="LGPL-2.1-or-later"
-options="!check"
-makedepends="libupnpp-dev libmpdclient-dev libmicrohttpd-dev jsoncpp-dev"
-subpackages="$pkgname-doc"
-source="upmpdcli-$pkgver.tar.gz::http://www.lesbonscomptes.com/upmpdcli/downloads/upmpdcli-$pkgver.tar.gz"
-
-build() {
- ./configure --prefix=/usr --sysconfdir=/etc
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="752870518415f8825f9c1a389397c4fa4c923f219039378e024091a38d3df3b3c2f1c5e944b50dfd2c2b98f8e91282ca2a6ab70ca298295b26e64e6992833e56 upmpdcli-1.4.7.tar.gz"
diff --git a/testing/upterm/APKBUILD b/testing/upterm/APKBUILD
new file mode 100644
index 00000000000..02feffefb8f
--- /dev/null
+++ b/testing/upterm/APKBUILD
@@ -0,0 +1,64 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=upterm
+pkgver=0.13.2
+pkgrel=2
+pkgdesc="Secure terminal sharing"
+url="https://upterm.dev/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+checkdepends="bash"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-server
+ $pkgname-server-openrc
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/owenthereal/upterm/archive/refs/tags/v$pkgver.tar.gz
+ uptermd.initd
+ uptermd.confd
+ "
+options="net !check" # fail on network flakiness
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ for cli in upterm uptermd; do
+ go build -v -o out/$cli ./cmd/$cli
+ done
+
+ # Re-generate completion files and man pages
+ go run cmd/gendoc/main.go
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 out/upterm out/uptermd \
+ -t "$pkgdir"/usr/bin/
+
+ install -Dm644 etc/man/man1/*.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 etc/completion/upterm.bash_completion.sh \
+ "$pkgdir"/usr/share/bash-completion/completions/upterm
+ install -Dm644 etc/completion/upterm.zsh_completion \
+ "$pkgdir"/usr/share/zsh/site-functions/_upterm
+ install -Dm755 "$srcdir"/uptermd.initd "$pkgdir"/etc/init.d/uptermd
+ install -Dm644 "$srcdir"/uptermd.confd "$pkgdir"/etc/conf.d/uptermd
+}
+
+server() {
+ pkgdesc="$pkgdesc (server)"
+ amove usr/bin/uptermd
+}
+
+sha512sums="
+a0563f148bb8ab3d5222fed5644aefadb980c22f1368736f33438e9ecd0ef807cdedebc29b6035249b307eb41c80d910062965742ae0631646054cf6d7a9e378 upterm-0.13.2.tar.gz
+45165ca78a4f399583baaf151588d046b075c9632574720ec49887e542f8874fb63907ce390f40505d13499f2f35caa4b9aca5a10163c12c838fc9621ec897bd uptermd.initd
+8ffec044a02b1a0cd5ca7b5e31fdb6f1ee958b16e346c913b9387d6a5ef4fb8b9e7ac881d0b449eeb1e0fca945f401a5db0572cfcc5684028d1709588ff8e61b uptermd.confd
+"
diff --git a/testing/upterm/uptermd.confd b/testing/upterm/uptermd.confd
new file mode 100644
index 00000000000..4d2ee9813e6
--- /dev/null
+++ b/testing/upterm/uptermd.confd
@@ -0,0 +1,7 @@
+# Configuration file for /etc/init.d/uptermd
+
+# Additional arguments to pass to uptermd.
+command_args="--ssh-addr 0.0.0.0:2222"
+
+# Uncomment to use process supervisor.
+#supervisor="supervise-daemon"
diff --git a/testing/upterm/uptermd.initd b/testing/upterm/uptermd.initd
new file mode 100644
index 00000000000..47aa7acdc0d
--- /dev/null
+++ b/testing/upterm/uptermd.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name=uptermd
+description="Secure terminal sharing deamon"
+command="/usr/bin/uptermd"
+command_args="${command_args:---ssh-addr 0.0.0.0:2222}"
+command_background="yes"
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/testing/uranium/874_fix-simplebutton-use-of-um-colorimage.patch b/testing/uranium/874_fix-simplebutton-use-of-um-colorimage.patch
new file mode 100644
index 00000000000..3112c9c520a
--- /dev/null
+++ b/testing/uranium/874_fix-simplebutton-use-of-um-colorimage.patch
@@ -0,0 +1,34 @@
+From 88fd460a63263d66173f1e0127b0f208577d7f4e Mon Sep 17 00:00:00 2001
+Patch-Source: https://github.com/Ultimaker/Uranium/pull/874
+From: fieldOfView <aldo@fieldofview.com>
+Date: Sat, 20 May 2023 21:14:36 +0200
+Subject: [PATCH] Fix SimpleButton use of UM.ColorImage
+
+Fixes https://github.com/Ultimaker/Cura/issues/15524
+---
+ UM/Qt/qml/UM/SimpleButton.qml | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/UM/Qt/qml/UM/SimpleButton.qml b/UM/Qt/qml/UM/SimpleButton.qml
+index d3d398753c..d3bd0e8e14 100644
+--- a/UM/Qt/qml/UM/SimpleButton.qml
++++ b/UM/Qt/qml/UM/SimpleButton.qml
+@@ -1,7 +1,8 @@
+-// Copyright (c) 2018 Ultimaker B.V.
++// Copyright (c) 2023 Ultimaker B.V.
+ // Uranium is released under the terms of the LGPLv3 or higher.
+
+ import QtQuick 2.1
++import UM 1.5 as UM
+
+ MouseArea
+ {
+@@ -27,7 +28,7 @@ MouseArea
+ radius: 0
+ }
+
+- ColorImage
++ UM.ColorImage
+ {
+ id: image
+
diff --git a/testing/uranium/APKBUILD b/testing/uranium/APKBUILD
new file mode 100644
index 00000000000..2b98a85bec5
--- /dev/null
+++ b/testing/uranium/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=uranium
+pkgver=5.2.2
+pkgrel=3
+pkgdesc="A Python framework for building Desktop applications"
+url="https://github.com/Ultimaker/Uranium"
+arch="noarch !armhf !riscv64" # armhf: no py3-qt5, rv64: no py3-shapely
+license="LGPL-3.0-or-later"
+depends="
+ py3-cryptography
+ py3-numpy
+ py3-qt6
+ py3-scipy
+ python3
+ "
+# add cura-binary-data to makedepends when packaged
+makedepends="samurai cmake doxygen gettext-dev graphviz"
+checkdepends="py3-pytest py3-pytest-benchmark py3-twisted"
+options="!check" # checks broken from 5.x onward
+source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/Uranium/archive/refs/tags/$pkgver.tar.gz
+ cmake.patch
+ 874_fix-simplebutton-use-of-um-colorimage.patch
+ fix-logger-used-but-not-imported.patch
+ qt-try-ints-then-bytes.patch
+ cmake-helpers.patch"
+builddir="$srcdir/Uranium-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DGETTEXT_MSGINIT_EXECUTABLE=msginit \
+ -DCURA_BINARY_DATA_DIRECTORY=/usr/share/cura \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ # useless code style test with another dependency
+ ctest -j $JOBS --output-on-failure -T Test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir "$pkgdir"/usr/share/uranium/cmake
+ mv "$pkgdir"/usr/share/cmake-*/Modules/* "$pkgdir"/usr/share/uranium/cmake/
+}
+
+sha512sums="
+a9c222400022e05b5c42c72843b024204a58f5d233805bdffa610a2d9cbd1873773868b049aabbe52c6e859f235ca5428fcdfdbb86651f428483999060611e10 uranium-5.2.2.tar.gz
+196a04164de288f5bffeebb73ace9390059dcffebaf40395368f413d1af2e2c668d85dd4c761ad226732540d41598235c2c368152cc157d2e89445ce27738c9b cmake.patch
+c50b37a3a44c4d4f66d115e72a430b82a8125efa49ce51271d5cad7fac15b2941a6a82b71fd07cef751b159296b64d783b348cebe7dfd865f0121815d2cf41f4 874_fix-simplebutton-use-of-um-colorimage.patch
+78e1415133bc4135f93633375bdb71a9e04b9cd128067d223985d0878f0e3de3ed1d336117fc527f0804b99878bd56817e3eb7a5aa545cc877b9f43386e17e78 fix-logger-used-but-not-imported.patch
+26489638fcf80822d16b0a295aee21a8973c23a023b1daf7f2cf5f7be7c56e72a15edd87ac6993f8a2ad09086d7d1a8b7d32247522c9429183625e3a0b63f2ae qt-try-ints-then-bytes.patch
+aa185ce3592036f045e3386266015cc08443c2e4f9b9a4c03c77c13525af98d68eaa3360e8858e0561417a826c73bf8a2b209bcad91d2cc16cce32fb0231fcf8 cmake-helpers.patch
+"
diff --git a/testing/uranium/cmake-helpers.patch b/testing/uranium/cmake-helpers.patch
new file mode 100644
index 00000000000..3c5d1f36122
--- /dev/null
+++ b/testing/uranium/cmake-helpers.patch
@@ -0,0 +1,89 @@
+--- /dev/null
++++ ./cmake/UraniumPluginInstall.cmake
+@@ -0,0 +1,86 @@
++# Copyright (c) 2022 Ultimaker B.V.
++# UraniumPluginInstall.cmake is released under the terms of the LGPLv3 or higher.
++
++#
++# This module detects all plugins that need to be installed and adds them using the CMake install() command.
++# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it.
++#
++# Plugins can be configured to NOT BE INSTALLED via the variable "UM_NO_INSTALL_PLUGINS" as a list of string in the
++# form of "a;b;c" or "a,b,c". By default all plugins will be installed.
++#
++
++# Options or configuration variables
++set(UM_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.")
++
++file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json)
++list(LENGTH _plugin_json_list _plugin_json_list_len)
++
++# Sort the lists alphabetically so we can handle cases like this:
++# - plugins/my_plugin/plugin.json
++# - plugins/my_plugin/my_module/plugin.json
++# In this case, only "plugins/my_plugin" should be added via install().
++set(_no_install_plugin_list ${UM_NO_INSTALL_PLUGINS})
++# Sanitize the string so the comparison will be case-insensitive.
++string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list)
++string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list)
++
++# WORKAROUND counterpart of what's in cura-build.
++string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}")
++
++list(LENGTH _no_install_plugin_list _no_install_plugin_list_len)
++
++if(_no_install_plugin_list_len GREATER 0)
++ list(SORT _no_install_plugin_list)
++endif()
++if(_plugin_json_list_len GREATER 0)
++ list(SORT _plugin_json_list)
++endif()
++
++# Check all plugin directories and add them via install() if needed.
++set(_install_plugin_list "")
++foreach(_plugin_json_path ${_plugin_json_list})
++ get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY)
++ file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir})
++ get_filename_component(_plugin_dir_name ${_plugin_dir} NAME)
++
++ # Make plugin name comparison case-insensitive
++ string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase)
++
++ # Check if this plugin needs to be skipped for installation
++ set(_add_plugin ON) # Indicates if this plugin should be added to the build or not.
++ set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is
++ # specified in the NO_INSTALL_PLUGINS list.
++ if(_no_install_plugin_list)
++ if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list)
++ set(_add_plugin OFF)
++ set(_is_no_install_plugin ON)
++ endif()
++ endif()
++
++ # Make sure this is not a subdirectory in a plugin that's already in the install list
++ if(_add_plugin)
++ foreach(_known_install_plugin_dir ${_install_plugin_list})
++ if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+")
++ set(_add_plugin OFF)
++ break()
++ endif()
++ endforeach()
++ endif()
++
++ if(_add_plugin)
++ message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}")
++ get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY)
++ install(DIRECTORY ${_rel_plugin_dir}
++ DESTINATION lib${LIB_SUFFIX}/uranium/${_rel_plugin_parent_dir}
++ PATTERN "__pycache__" EXCLUDE
++ PATTERN "*.qmlc" EXCLUDE
++ )
++ list(APPEND _install_plugin_list ${_plugin_dir})
++ elseif(_is_no_install_plugin)
++ message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}")
++ execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py
++ -d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages
++ ${_plugin_dir_name}
++ RESULT_VARIABLE _mod_json_result)
++ endif()
++endforeach()
diff --git a/testing/uranium/cmake.patch b/testing/uranium/cmake.patch
new file mode 100644
index 00000000000..b1a888ba059
--- /dev/null
+++ b/testing/uranium/cmake.patch
@@ -0,0 +1,16 @@
+--- ./CMakeLists.txt.orig
++++ ./CMakeLists.txt
+@@ -19,9 +19,12 @@
+ # Build Translations
+ CREATE_TRANSLATION_TARGETS()
+
++find_package(Python REQUIRED COMPONENTS Interpreter)
+
+-install(DIRECTORY UM DESTINATION "${Python_SITELIB_LOCAL}")
++install(DIRECTORY UM DESTINATION "${Python_SITELIB}")
+
+ install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake-${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}/Modules/ )
+ install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/uranium)
++
++include(UraniumPluginInstall)
diff --git a/testing/uranium/fix-logger-used-but-not-imported.patch b/testing/uranium/fix-logger-used-but-not-imported.patch
new file mode 100644
index 00000000000..151893c2e04
--- /dev/null
+++ b/testing/uranium/fix-logger-used-but-not-imported.patch
@@ -0,0 +1,14 @@
+Patch-Source: https://src.fedoraproject.org/rpms/python-uranium/blob/rawhide/f/Uranium-5.3.0-qt-try-ints-then-bytes-for-gl-mask-functions.patch
+
+diff --git a/UM/View/SelectionPass.py.orig b/UM/View/SelectionPass.py
+index 945b789..ef042a5 100644
+--- a/UM/View/SelectionPass.py.orig
++++ b/UM/View/SelectionPass.py
+@@ -5,6 +5,7 @@ import enum
+ import random
+ from typing import TYPE_CHECKING
+
++from UM.Logger import Logger
+ from UM.Resources import Resources
+ from UM.Application import Application
+
diff --git a/testing/uranium/qt-try-ints-then-bytes.patch b/testing/uranium/qt-try-ints-then-bytes.patch
new file mode 100644
index 00000000000..8f7d6dbeeb6
--- /dev/null
+++ b/testing/uranium/qt-try-ints-then-bytes.patch
@@ -0,0 +1,96 @@
+Patch-Source: https://src.fedoraproject.org/rpms/python-uranium/blob/rawhide/f/Uranium-5.3.0-qt-try-ints-then-bytes-for-gl-mask-functions.patch
+
+diff --git a/UM/View/RenderBatch.py.orig b/UM/View/RenderBatch.py
+index 6deeeb1..5f1eda5 100644
+--- a/UM/View/RenderBatch.py.orig
++++ b/UM/View/RenderBatch.py
+@@ -186,10 +186,24 @@ class RenderBatch:
+
+ if self._render_type == self.RenderType.Solid:
+ self._gl.glEnable(self._gl.GL_DEPTH_TEST)
+- self._gl.glDepthMask(self._gl.GL_TRUE)
++ try:
++ self._gl.glDepthMask(self._gl.GL_TRUE)
++ except:
++ Logger.log("w", "glDepthMask does not like ints, trying bytes...")
++ try:
++ self._gl.glDepthMask(b'1')
++ except:
++ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants")
+ elif self._render_type == self.RenderType.Transparent:
+ self._gl.glEnable(self._gl.GL_DEPTH_TEST)
+- self._gl.glDepthMask(self._gl.GL_FALSE)
++ try:
++ self._gl.glDepthMask(self._gl.GL_FALSE)
++ except:
++ Logger.log("w", "glDepthMask does not like ints, trying bytes...")
++ try:
++ self._gl.glDepthMask(b'1')
++ except:
++ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants")
+ elif self._render_type == self.RenderType.Overlay:
+ self._gl.glDisable(self._gl.GL_DEPTH_TEST)
+
+diff --git a/UM/View/RenderPass.py.orig b/UM/View/RenderPass.py
+index 8068ddf..8cb4f67 100644
+--- a/UM/View/RenderPass.py.orig
++++ b/UM/View/RenderPass.py
+@@ -93,8 +93,22 @@ class RenderPass:
+ self._fbo.bind()
+
+ # Ensure we can actually write to the relevant FBO components.
+- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE,self._gl.GL_TRUE, self._gl.GL_TRUE)
+- self._gl.glDepthMask(self._gl.GL_TRUE)
++ try:
++ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE,self._gl.GL_TRUE, self._gl.GL_TRUE)
++ except:
++ Logger.log("w", "glColorMask does not like ints, trying bytes...")
++ try:
++ self._gl.glColorMask(b'1', b'1',b'1', b'1')
++ except:
++ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants")
++ try:
++ self._gl.glDepthMask(self._gl.GL_TRUE)
++ except:
++ Logger.log("w", "glDepthMask does not like ints, trying bytes...")
++ try:
++ self._gl.glDepthMask(b'1')
++ except:
++ Logger.log("e", "glDepthMask does not like ints or bytes, no idea what it wants")
+
+ self._gl.glClear(self._gl.GL_COLOR_BUFFER_BIT | self._gl.GL_DEPTH_BUFFER_BIT)
+
+diff --git a/UM/View/SelectionPass.py.orig b/UM/View/SelectionPass.py
+index ef042a5..c28fe4f 100644
+--- a/UM/View/SelectionPass.py.orig
++++ b/UM/View/SelectionPass.py
+@@ -110,13 +110,27 @@ class SelectionPass(RenderPass):
+ if selectable_objects:
+ batch.render(self._scene.getActiveCamera())
+
+- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_FALSE)
++ try:
++ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_FALSE)
++ except:
++ Logger.log("w", "glColorMask does not like ints, trying bytes...")
++ try:
++ self._gl.glColorMask(b'1', b'1', b'1', b'0')
++ except:
++ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants")
+ self._gl.glDisable(self._gl.GL_DEPTH_TEST)
+
+ tool_handle.render(self._scene.getActiveCamera())
+
+ self._gl.glEnable(self._gl.GL_DEPTH_TEST)
+- self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE)
++ try:
++ self._gl.glColorMask(self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE, self._gl.GL_TRUE)
++ except:
++ Logger.log("w", "glColorMask does not like ints, trying bytes...")
++ try:
++ self._gl.glColorMask(b'1', b'1', b'1', b'1')
++ except:
++ Logger.log("e", "glColorMask does not like ints or bytes, no idea what it wants")
+
+ self.release()
+
diff --git a/testing/urlwatch/APKBUILD b/testing/urlwatch/APKBUILD
new file mode 100644
index 00000000000..1e0a9bccb17
--- /dev/null
+++ b/testing/urlwatch/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Thiago Perrotta <tbperrotta@gmail.com>
+# Maintainer: Thiago Perrotta <tbperrotta@gmail.com>
+pkgname=urlwatch
+pkgver=2.28
+pkgrel=1
+pkgdesc="Tool for monitoring webpages for updates"
+url="https://thp.io/2008/urlwatch/"
+arch="noarch !ppc64le" # blocked by py3-keyring
+license="BSD-3-Clause"
+depends="
+ python3
+ py3-appdirs
+ py3-cssselect
+ py3-keyring
+ py3-lxml
+ py3-minidb
+ py3-requests
+ py3-yaml
+ "
+makedepends="py3-setuptools"
+checkdepends="py3-pytest py3-docutils py3-pycodestyle"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/u/urlwatch/urlwatch-$pkgver.tar.gz
+ lxml-5.patch
+ "
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 setup.py install --root="$pkgdir" --skip-build
+}
+
+sha512sums="
+21a662006dc92c0c636ef0beebc4f2ec90b82182aa0ba94a3348026c2c001b6d74198a14c198f681c8e773b640b6030b63de1a081984ea4d1bbc1e2648bc4161 urlwatch-2.28.tar.gz
+ade44bf3953406c26699d7dbf3377c283b75e7ba38cba9710aad2a4fe488ce49435874e73a52f8009572692d4cc23b25f06ecfc6c7e5866745b4617daa3e001a lxml-5.patch
+"
diff --git a/testing/urlwatch/lxml-5.patch b/testing/urlwatch/lxml-5.patch
new file mode 100644
index 00000000000..1598ad4d942
--- /dev/null
+++ b/testing/urlwatch/lxml-5.patch
@@ -0,0 +1,35 @@
+Patch-Source: https://github.com/thp/urlwatch/commit/123de66d019aef7fc18fab6d56cc2a54d81fea3f
+--
+From 123de66d019aef7fc18fab6d56cc2a54d81fea3f Mon Sep 17 00:00:00 2001
+From: James Hewitt <james.hewitt@gmail.com>
+Date: Mon, 12 Feb 2024 18:12:49 +0000
+Subject: [PATCH] Update CSS Selector to use new style (#786)
+
+New style of calling the CSSSelector directly instead of using the
+evaluate function. This has been supported since lxml 1.1 [1] and the
+evaluate method has been deprecated since lxml 2.1 [2].
+
+[1] https://github.com/lxml/lxml/blob/lxml-1.1/src/lxml/xpath.pxi#L66
+[2] https://github.com/lxml/lxml/blob/lxml-2.1/src/lxml/xpath.pxi#L143
+
+Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
+---
+ lib/urlwatch/filters.py | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/urlwatch/filters.py b/lib/urlwatch/filters.py
+index 7b7c95b1..ed21b4c0 100644
+--- a/lib/urlwatch/filters.py
++++ b/lib/urlwatch/filters.py
+@@ -761,9 +761,9 @@ def _get_filtered_elements(self):
+ excluded_elems = None
+ if self.filter_kind == 'css':
+ selected_elems = CSSSelector(self.expression,
+- namespaces=self.namespaces).evaluate(root)
++ namespaces=self.namespaces)(root)
+ excluded_elems = CSSSelector(self.exclude,
+- namespaces=self.namespaces).evaluate(root) if self.exclude else None
++ namespaces=self.namespaces)(root) if self.exclude else None
+ elif self.filter_kind == 'xpath':
+ selected_elems = root.xpath(self.expression, namespaces=self.namespaces)
+ excluded_elems = root.xpath(self.exclude, namespaces=self.namespaces) if self.exclude else None
diff --git a/testing/usb-moded/APKBUILD b/testing/usb-moded/APKBUILD
deleted file mode 100644
index 39b4dac1bf0..00000000000
--- a/testing/usb-moded/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=usb-moded
-pkgver=0.86.0
-_pkgver=mer/$pkgver+mer40
-pkgrel=0
-pkgdesc="A daemon activating a certain USB profile based on the usb cable connection status"
-url="https://git.sailfishos.org/mer-core/usb-moded"
-arch="all"
-license="GPL-2.0-only"
-depends_dev="glib-dev dbus-glib-dev gobject-introspection-dev eudev-dev kmod-dev libdsme-dev elogind-dev ssu-sysinfo-dev sailfish-access-control"
-makedepends="$depends_dev automake autoconf libtool dbus-dev"
-subpackages="$pkgname-dev"
-source="https://git.sailfishos.org/mer-core/usb-moded/-/archive/$_pkgver/usb-moded-${_pkgver/\//-}.tar.gz
- fix-musl-incompatibility.patch
- "
-options="!check" # No test suite available
-builddir="$srcdir/$pkgname-${_pkgver/\//-}"
-
-prepare() {
- default_prepare
-
- # Fix invalid pkgconf version
- sed -i 's/+mer/./' configure.ac
-
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --enable-connman \
- --enable-ofono
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-
- # The pkg-config file isn't installed automatically for some reason
- install -dm 755 "$pkgdir"/usr/lib/pkgconfig
- install -m 644 usb_moded.pc "$pkgdir"/usr/lib/pkgconfig/
-
- install -dm 755 "$pkgdir"/usr/include/$pkgname
- cp src/*.h src/*.xml "$pkgdir"/usr/include/$pkgname
-}
-
-sha512sums="6c35a67fa7a44068af2fe942d9e828ae0456ed76e184c2fde57d319a6de4ab691de84c596f85f26770e30951972527c34204cb9221563bc9d84868042e0c6733 usb-moded-mer-0.86.0+mer40.tar.gz
-504ce76ab1464b13a96fc69946d3b9bee45d91479786a9eb9bf82e893a22fd24c48bde71db789b769a4811069bde8003baf612594e35054b2da2865e9cb175ff fix-musl-incompatibility.patch"
diff --git a/testing/usb-moded/fix-musl-incompatibility.patch b/testing/usb-moded/fix-musl-incompatibility.patch
deleted file mode 100644
index 336f7573531..00000000000
--- a/testing/usb-moded/fix-musl-incompatibility.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Has been merged upstream already. https://git.sailfishos.org/mer-core/usb-moded/merge_requests/57
-
-From 6d19366c5c9fff70c0337e1288b33c6834e3374c Mon Sep 17 00:00:00 2001
-From: Bart Ribbers <bribbers@disroot.org>
-Date: Wed, 25 Mar 2020 12:48:55 +0100
-Subject: [PATCH] Define TEMP_FAILURE_RETRY on non-glibc systems
-
-This makes it work for example on Musl systems
----
- src/usb_moded-modesetting.h | 10 ++++++++++
- src/usb_moded-sigpipe.h | 10 ++++++++++
- 2 files changed, 20 insertions(+)
-
-diff --git a/src/usb_moded-modesetting.h b/src/usb_moded-modesetting.h
-index 95e345a..92cceab 100644
---- a/src/usb_moded-modesetting.h
-+++ b/src/usb_moded-modesetting.h
-@@ -57,4 +57,14 @@ void modesetting_quit (void);
- # define write_to_file(path,text)\
- modesetting_write_to_file_real(__FILE__,__LINE__,__FUNCTION__,(path),(text))
-
-+/* Used to retry syscalls that can return EINTR. Taken from bionic unistd.h */
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(exp) ({ \
-+ __typeof__(exp) _rc; \
-+ do { \
-+ _rc = (exp); \
-+ } while (_rc == -1 && errno == EINTR); \
-+ _rc; })
-+#endif
-+
- #endif /* USB_MODED_MODESETTING_H_ */
-diff --git a/src/usb_moded-sigpipe.h b/src/usb_moded-sigpipe.h
-index 095863d..fcea271 100644
---- a/src/usb_moded-sigpipe.h
-+++ b/src/usb_moded-sigpipe.h
-@@ -37,4 +37,14 @@
-
- bool sigpipe_init(void);
-
-+/* Used to retry syscalls that can return EINTR. Taken from Bionic unistd.h */
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(exp) ({ \
-+ __typeof__(exp) _rc; \
-+ do { \
-+ _rc = (exp); \
-+ } while (_rc == -1 && errno == EINTR); \
-+ _rc; })
-+#endif
-+
- #endif /* USB_MODED_SIGPIPE_H_ */
---
-2.23.0
-
diff --git a/testing/usbguard-notifier/APKBUILD b/testing/usbguard-notifier/APKBUILD
new file mode 100644
index 00000000000..28d955832b9
--- /dev/null
+++ b/testing/usbguard-notifier/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer:
+pkgname=usbguard-notifier
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Notifies on USBGuard policy and device presence changes"
+url="https://github.com/Cropi/usbguard-notifier"
+license="GPL-2.0-or-later"
+arch="all"
+makedepends="
+ autoconf
+ automake
+ libtool
+ usbguard-dev
+ librsvg-dev
+ libnotify-dev
+ catch2
+ asciidoc
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Cropi/usbguard-notifier/archive/usbguard-notifier-$pkgver.tar.gz
+ no-systemd.patch"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+ sed -i "s#/usr/include/catch#/usr/include/catch2#g" configure.ac
+ autoreconf -fiv
+}
+
+check() {
+ make check
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="
+709afccec9fdc94d4cd1f2f941b6819c3b353dc2f60beeb12791cc9e3dfe9ad6e9d00664c3e5d5979b5d454374b1a633362f0de6513a767b3b6e2b6d2196eb6c usbguard-notifier-0.1.0.tar.gz
+09ca4890884d0a62d1b152c6cc5120c9856f46b778cba6f3d36a831ad6f0e5e6651e4e5532e8cefbc55583b862af4c649e6299591fed66b4c9187f7e4f363f85 no-systemd.patch
+"
diff --git a/testing/usbguard-notifier/no-systemd.patch b/testing/usbguard-notifier/no-systemd.patch
new file mode 100644
index 00000000000..8244796a3cb
--- /dev/null
+++ b/testing/usbguard-notifier/no-systemd.patch
@@ -0,0 +1,93 @@
+Reason: Remove installation of systemd service file
+Upstream: No
+
+diff --git a/Makefile.am b/Makefile.am
+index dc4174f..e9011fe 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -112,33 +112,6 @@ EXTRA_DIST += \
+ .svg.o:
+ $(LD) -r -b binary -o $@ $<
+
+-#
+-# unit file
+-#
+-install-data-hook: install-systemd-service
+-uninstall-hook: uninstall-systemd-service
+-
+-CLEANFILES += $(top_builddir)/usbguard-notifier.service
+-
+-#
+-# Notifier service
+-#
+-EXTRA_DIST += \
+- $(top_srcdir)/usbguard-notifier.service.in
+-
+-usbguard-notifier.service: $(top_srcdir)/usbguard-notifier.service.in
+- $(SED) -e "s|%bindir%|${bindir}|" $^ > $@ || rm -f $@
+-
+-install-systemd-service: $(top_builddir)/usbguard-notifier.service
+- $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
+- $(INSTALL) -m 644 $(top_builddir)/usbguard-notifier.service \
+- $(DESTDIR)$(SYSTEMD_UNIT_DIR)/usbguard-notifier.service
+-
+-uninstall-systemd-service:
+- rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/usbguard-notifier.service
+-
+-CLEANFILES += $(top_builddir)/usbguard-notifier.service
+-
+ #
+ # Common defines
+ #
+diff --git a/configure.ac b/configure.ac
+index 42dd859..25461cf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -81,16 +81,6 @@ AC_ARG_ENABLE([notifier-cli],
+ [notifier_cli_enabled=yes]
+ )
+
+-AC_ARG_ENABLE([systemd-systemunitdir],
+- [AC_HELP_STRING([--enable-systemd-systemunitdir], [enable systemd system unit dir(default=no)])],
+- [case "${enableval}" in
+- yes) systemd_systemunitdir=yes;;
+- no) systemd_systemunitdir=no;;
+- *) AC_MSG_ERROR([bad value ${enableval} for --enable-systemd-systemunitdir]) ;;
+- esac],
+- [systemd_systemunitdir=no]
+-)
+-
+ # librsvg2
+ PKG_CHECK_MODULES(
+ [rsvg],
+@@ -113,20 +103,6 @@ if test -z "$A2X"; then
+ AC_MSG_FAILURE([Cannot detect documentation generator (asciidoc / a2x)])
+ fi
+
+-# systemd
+-if test "x$systemd_systemunitdir" = xyes; then
+- systemd_unit_dir="`$PKG_CONFIG systemd --variable=systemdsystemunitdir`"
+-else
+- systemd_unit_dir="`$PKG_CONFIG systemd --variable=systemduserunitdir`"
+-fi
+-
+-if test "x$systemd_unit_dir" = x; then
+- AC_MSG_FAILURE([Cannot detect the systemd system unit dir])
+-fi
+-AC_SUBST(SYSTEMD_UNIT_DIR, $systemd_unit_dir)
+-AC_DEFINE([SYSTEMD_SUPPORT_ENABLED], [1], [Enable systemd support int the project])
+-AM_CONDITIONAL([SYSTEMD_SUPPORT_ENABLED], [test "x$systemd" = xyes ])
+-
+ # Catch C++ library
+ AC_ARG_WITH([bundled-catch], AS_HELP_STRING([--with-bundled-catch],
+ [Build using the bundled Catch library]),
+@@ -189,9 +165,6 @@ AC_CONFIG_FILES([
+
+ AC_OUTPUT
+
+-echo ""
+-echo "============== MACROS ================="
+-echo " systemd: $systemd_unit_dir"
+ echo ""
+ echo "========== LINKER OPTIONS ============="
+ echo " Catch: $catch_summary"
diff --git a/testing/usbguard/APKBUILD b/testing/usbguard/APKBUILD
new file mode 100644
index 00000000000..ee11787c8ba
--- /dev/null
+++ b/testing/usbguard/APKBUILD
@@ -0,0 +1,73 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Contributor: Nicolas Lorin <androw95220@gmail.com>
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=usbguard
+pkgver=1.1.2
+pkgrel=8
+pkgdesc="Software framework for implementing USB device authorization policies"
+url="https://usbguard.github.io/"
+license="GPL-2.0-or-later"
+arch="all"
+makedepends="
+ abseil-cpp-dev
+ asciidoc
+ audit-dev
+ catch2
+ libcap-ng-dev
+ libqb-dev
+ libseccomp-dev
+ libsodium-dev
+ pegtl
+ protobuf-dev
+ "
+checkdepends="coreutils"
+subpackages="
+ libusbguard:libs
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/USBGuard/usbguard/releases/download/usbguard-$pkgver/usbguard-$pkgver.tar.gz
+ gcc13.patch
+ usbguard.initd
+ "
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --without-bundled-catch \
+ --without-bundled-pegtl \
+ --without-dbus \
+ --without-polkit \
+ --with-crypto-library=sodium
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+
+ install -Dm644 scripts/bash_completion/usbguard \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 scripts/usbguard-zsh-completion \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+03b6dd026a0fe6a7a055208f09a56e2cc86985570388e33fde08671b8aa2d60ea4a0e59505e9646ddf50f42f5b6310d1b230379f9c26ec99c7ca736f3b4ad850 usbguard-1.1.2.tar.gz
+db5153bacfed442abbbb4bb4fc8250f6469a654600aa3eddb1dda3d5800a265099c9f6ff48e7987d8fd03d4f456cbd83a9012ea4e9983e753392149696f75f06 gcc13.patch
+9d6752f08df0ba510fa02c0c9b55a92f063297653480c4d8863f87f159dc51449a34643e75af7619146e2e53c91d479be91ecc0c9adc0c764d037f4df466e534 usbguard.initd
+"
diff --git a/testing/usbguard/gcc13.patch b/testing/usbguard/gcc13.patch
new file mode 100644
index 00000000000..50ce73eba64
--- /dev/null
+++ b/testing/usbguard/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/src/Library/Base64.hpp b/src/Library/Base64.hpp
+index 0947f21..0badaf3 100644
+--- a/src/Library/Base64.hpp
++++ b/src/Library/Base64.hpp
+@@ -22,6 +22,7 @@
+ #include <build-config.h>
+ #endif
+
++#include <cstdint>
+ #include <string>
+ #include <cstddef>
+
diff --git a/testing/usbguard/usbguard.initd b/testing/usbguard/usbguard.initd
new file mode 100644
index 00000000000..ef42b78a1ba
--- /dev/null
+++ b/testing/usbguard/usbguard.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="USBGuard"
+description="Software framework for implementing USB device authorization policies"
+command="/usr/sbin/usbguard-daemon"
+command_args="-s"
+
+depend() {
+ use logger
+}
diff --git a/testing/usbip-utils/APKBUILD b/testing/usbip-utils/APKBUILD
deleted file mode 100644
index 779645ba0d9..00000000000
--- a/testing/usbip-utils/APKBUILD
+++ /dev/null
@@ -1,70 +0,0 @@
-# Contributor: Der Tiger <der.tiger.alpine@arcor.de>
-# Maintainer: wener <wenermail@gmail.com>
-pkgname=usbip-utils
-pkgver=4.18.13
-pkgrel=1
-pkgdesc="Utilities for USB device sharing over IP network"
-url="https://kernel.org/doc/readme/drivers-staging-usbip-userspace-README"
-arch="all"
-license="GPL-2.0"
-depends="glib sysfsutils usbutils"
-depends_dev="gcc automake autoconf eudev-dev libtool linux-headers sysfsutils-dev glib-dev"
-makedepends="$depends_dev tar"
-install=""
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$pkgver.tar.gz
- usbip.initd
- usbip.confd
- fix-ppc64le-disable-werror.patch"
-
-_baseurl="linux-$pkgver/tools/usb/usbip"
-builddir="$srcdir/usbip"
-
-unpack() {
- cd "$srcdir"
-
- mkdir "$builddir"
- tar -C $builddir --strip-components=4 -zxv -f $srcdir/linux-$pkgver.tar.gz $_baseurl
-}
-
-prepare() {
- local i
- cd "$builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i;;
- esac
- done
-}
-
-build() {
- cd "$builddir"
- export CFLAGS=$(echo $CFLAGS | sed 's|-Os|-O2|')
- export CPPFLAGS="$CFLAGS"
- /bin/sh autogen.sh
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --libdir=/usr/lib \
- --datarootdir=/usr/share
- make
-}
-
-check() {
- cd "$builddir"
- ./src/usbip version
- ./src/usbipd --version
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- install -m755 -D "$srcdir"/usbip.initd "$pkgdir"/etc/init.d/usbip
- install -m755 -D "$srcdir"/usbip.confd "$pkgdir"/etc/conf.d/usbip
-}
-
-sha512sums="d8b6076617f1b6e88bb485165c0a36567bb6ab9c372ecabf749515f5b5c7de3a8c38a1a262d3b9f2feeda5a76a3fede493fe098811a01f06fe079fe5f7656ecb linux-4.18.13.tar.gz
-fcbd64d844c9bc187d08cef5995e91a46c0df78deb24e96ac9210c0e2c730eca0301970d9b8ffbf003df274682d05072431a26b59d8c491f396618268a12ec92 usbip.initd
-eb8de617e27c4d5fdfee9c442e8f74b0afb4d0fe7b59eca3a19629eb70fea7e09b3c125bc968aa8810d845ce661c829bd0f3fdb2288664f2cccf423bc0ae6ae8 usbip.confd
-473d194edc7677d0eb9864cf1e3922264ddd2d89e1015188f09c59e50a84a77f08d1e5c99700d4f3c8c01bea318aa614482f7902f0c97f5d87d6fbe388e840f8 fix-ppc64le-disable-werror.patch"
diff --git a/testing/usbip-utils/fix-ppc64le-disable-werror.patch b/testing/usbip-utils/fix-ppc64le-disable-werror.patch
deleted file mode 100644
index 90c2ccd008e..00000000000
--- a/testing/usbip-utils/fix-ppc64le-disable-werror.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -18,7 +18,7 @@
- # Silent build for automake >= 1.11
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
--AC_SUBST([EXTRA_CFLAGS], ["-Wall -Werror -Wextra -std=gnu99"])
-+AC_SUBST([EXTRA_CFLAGS], ["-Wall -Wextra -std=gnu99"])
-
- # Checks for programs.
- AC_PROG_CC
diff --git a/testing/usbip-utils/usbip.confd b/testing/usbip-utils/usbip.confd
deleted file mode 100644
index dcd259c2b20..00000000000
--- a/testing/usbip-utils/usbip.confd
+++ /dev/null
@@ -1,18 +0,0 @@
-#--------------------------------
-# USBIP Settings
-#--------------------------------
-# - Start daemon to share local devices
-USBIP_START_DAEMON=no
-
-# - Automatically bind local busses
-# format: "{bus} [{bus2} [..]]"
-# or : "{vendorID}:{productID} [..]"
-# example: "3-8 1-1 1b2c:4d1a"
-USBIP_AUTO_BIND=""
-
-# - Automatically attach remote busses
-# format: "{host ip} {remote bus} [..]"
-# or: "{host ip} {vendorID}:{productID} [..]"
-# example: "10.10.10.10 5-1 192.168.0.1 1234:abcd"
-USBIP_AUTO_ATTACH=""
-
diff --git a/testing/usbip-utils/usbip.initd b/testing/usbip-utils/usbip.initd
deleted file mode 100644
index f0e908c721e..00000000000
--- a/testing/usbip-utils/usbip.initd
+++ /dev/null
@@ -1,244 +0,0 @@
-#!/sbin/openrc-run
-
-description="Load USBIP kernel modules and run daemon"
-
-: ${USBIP_EXEC:=$(which usbip)}
-: ${USBIP_EXEC_DAEMON:=$(which usbipd)}
-
-depend()
-{
- provide usbip
- need sysfs net
-}
-
-LoadKernelModule ()
-{
- local module=$1
- #-----------------
- result=
- if [ -z "$(/sbin/lsmod | grep "^$(basename $module)")" ]
- then
- local filename=$(find lib/modules/`uname -r`/kernel -type f -name $module.ko -printf '%f\n')
- if [ -n "$filename" ]
- then
- if ! /sbin/modprobe $module
- then
- eerror "Cannot load kernel module '$module'."
- result=failed
- fi
- else
- eerror "Cannot find kernel module '$module'."
- result=failed
- fi
- fi
- [ -z "$result" ]
-}
-
-IsAvailable ()
-{
- local bus_or_device=$(echo $1 | tr '[A-Z]' '[a-z]')
- local host=$2
- #-----------------
- host=${host:+--remote=$host}
- : ${host:=--local}
- $USBIP_EXEC list --parsable $host |
- sed -n 's|.*busid='$bus_or_device'#.*|yes|p; \
- s|.*usbid='$bus_or_device'#.*|yes|p'
-}
-
-GetBus ()
-{
- local device=$(echo $1 | tr '[A-Z]' '[a-z]')
- local host=$2
- #-----------------
- host=${host:+--remote=$host}
- : ${host:=--local}
- case "$host" in
- "--remote"*) # FIXME: USBIP bug causing remote devices not to be listed parsable
- $USBIP_EXEC list --parsable $host |
- sed -n 's|^[ \t]*\([0-9][0-9]*-[0-9][0-9]*\):.*('"$device"').*|\1|p';;
- *)
- $USBIP_EXEC list --parsable $host |
- sed -n 's|.*busid=\([0-9][0-9]*-[0-9][0-9]*\)#usbid='"$device"'#.*|\1|p';;
- esac
-}
-
-ExecuteUsbip()
-{
- local command=$1
- local bus=$2
- local host=$3
- local port=$4
- #-----------------
- local result=
- if [ -n "$command" ]
- then
- if $USBIP_EXEC $command ${bus:+--busid=$bus} ${host:+--remote=$host} ${port:+--port $port} 1> /dev/null 2> /dev/null
- then
- einfo "Executed command '$command'${bus:+ with bus '$bus'}${host:+ on host '$host'}${port:+ on port '$port'}, successfully."
- else
- ewarn "Executing command '$command'${bus:+ with bus '$bus'}${host:+ on host '$host'}${port:+ on port '$port'} failed."
- result=failed
- fi
- fi
- [ -z "$result" ]
-}
-
-ValidateCommand ()
-{
- local command=$1
- local bus_or_device=$2
- local host=$3
- #-----------------
- local result=
- local bus=
- if [ -z "$host" -o -n "$(echo $host | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$')" ]
- then
- if [ -n "$(echo $bus_or_device | grep '^[[:xdigit:]]\{4\}:[[:xdigit:]]\{4\}$')" ]
- then
- bus="$(GetBus $bus_or_device $host)"
- if [ -z "$bus" ]
- then
- ewarn "Device '$bus_or_device' not available${host:+ on host '$host'}."
- result=failed
- fi
- else
- if [ -n "$(echo $bus_or_device | grep '^[0-9][0-9]*-[0-9][0-9]*$')" ]
- then
- bus=$bus_or_device
- else
- ewarn "Unrecognized bus or device '$bus_or_device'."
- result=failed
- fi
- fi
- if [ -n "$bus" ]
- then
- case "$command" in
- "bind"|"unbind")
- ExecuteUsbip $command $bus || result=failed;;
- "attach")
- if [ -n "$host" ]
- then
- ExecuteUsbip $command $bus $host || result=failed
- else
- ewarn "Host statement is missing in command '$command'."
- result=failed
- fi
- ;;
- *)
- ewarn "Unhandled command '$command'."; result=failed;;
- esac
- fi
- else
- ewarn "Illegal host ip address '$host'."
- result=failed
- fi
- [ -z "$result" ]
-}
-
-ProcessList ()
-{
- local command=$1
- shift
- local list=$*
- #-----------------
- local result=
- local no_host=
- case "$command" in
- "bind"|"unbind") no_host=yes;;
- *) no_host=;;
- esac
- local host=
- local item=
- ( for item in $list
- do
- if [ -n "$host" -o -n "$no_host" ]
- then
- ValidateCommand $command $item $host || result=failed
- host=
- else
- host=$item
- fi
- done
- [ -z "$result" ] )
-}
-
-DetachAll ()
-{
- # FIXME: At this stage, there is no way to get the vhci_hcd port id of any attached device
- for port in $(seq 0 15)
- do
- $USBIP_EXEC detach --port $port 2> /dev/null
- done
- [ 1 -eq 1 ]
-}
-
-UnbindAll ()
-{
- local result=
- ProcessList unbind "$($USBIP_EXEC list --parsable --local | sed -n 's|^busid=\([0-9][0-9]*-[0-9][0-9]*\)#.*=usbip-host#$|\1|p' | tr '\n' ' ')"
-}
-
-start_daemon()
-{
- ebegin "Starting usbip daemon"
- if LoadKernelModule usbip-host
- then
- start-stop-daemon --start --exec $USBIP_EXEC_DAEMON -- -D
- fi
- eend $?
-}
-
-start()
-{
- ebegin "Starting usbip"
- if LoadKernelModule usbip-core
- then
- if LoadKernelModule vhci-hcd
- then
- eend 0
- if yesno "${USBIP_START_DAEMON:-no}"
- then
- start_daemon
- fi
- if [ -n "$USBIP_AUTO_BIND" ]
- then
- ebegin "Auto-binding local busses"
- ProcessList bind $USBIP_AUTO_BIND
- eend $?
- fi
- if [ -n "$USBIP_AUTO_ATTACH" ]
- then
- ebegin "Auto-attaching remote busses"
- ProcessList attach $USBIP_AUTO_ATTACH
- eend $?
- fi
- else
- eend 1
- fi
- else
- eend 1
- fi
-}
-
-stop_daemon()
-{
- ebegin "Stopping usbip daemon"
- start-stop-daemon --stop --exec $USBIP_EXEC_DAEMON
- eend $?
-}
-
-stop()
-{
- ebegin "Detaching remote busses"
- DetachAll
- eend $?
- ebegin "Un-binding local busses"
- UnbindAll
- eend $?
- if [ -n "$(pidof $(basename "$USBIP_EXEC_DAEMON"))" ]
- then
- stop_daemon
- fi
-}
-
diff --git a/testing/usbmuxd/001-confiure-no-udev.patch b/testing/usbmuxd/001-confiure-no-udev.patch
new file mode 100644
index 00000000000..9cd02a445ca
--- /dev/null
+++ b/testing/usbmuxd/001-confiure-no-udev.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -88,7 +88,7 @@
+ if test "x$with_systemd" = xyes; then
+ udev_activation_rule="ENV{SYSTEMD_WANTS}=\"usbmuxd.service\""
+ else
+- udev_activation_rule="RUN+=\"@sbindir@/usbmuxd --user usbmux --udev\""
++ udev_activation_rule="RUN+=\"@sbindir@/usbmuxd --user usbmux --enable-exit\""
+ fi
+ AC_SUBST(udev_activation_rule)
+
diff --git a/testing/usbmuxd/APKBUILD b/testing/usbmuxd/APKBUILD
index 6fe1eee2502..8b94d9039c9 100644
--- a/testing/usbmuxd/APKBUILD
+++ b/testing/usbmuxd/APKBUILD
@@ -1,16 +1,20 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
pkgname=usbmuxd
-pkgver=1.1.0
-pkgrel=0
+pkgver=1.1.1
+pkgrel=6
pkgdesc="Socket Daemon to multiplex connections from iOS"
url="https://github.com/libimobiledevice/usbmuxd"
arch="all"
makedepends="automake autoconf libtool libusb-dev libplist-dev
libimobiledevice-dev"
license="GPL-2.0-or-later"
+install="$pkgname.post-install"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/libimobiledevice/usbmuxd/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/libimobiledevice/usbmuxd/archive/$pkgver.tar.gz
+ 001-confiure-no-udev.patch
+ libplist-2.3.0.patch
+ "
prepare() {
default_prepare
@@ -37,4 +41,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="c9735ca7294927a6ec42edbd948e6736e366e0b9fac90c109f3066dfe71b2aeb0272ce2a33784be30c4188f0a3a65f29e4515ae041ed7cf01d9d95ea751c2284 usbmuxd-1.1.0.tar.gz"
+sha512sums="
+500e5f9a3500ad49bd8c195da71586db88964dd62dd716bb6a30827cc42bfdab38326b98204afdf606b1795d270d7f0261a59576558405de3540f6038a575856 usbmuxd-1.1.1.tar.gz
+a8a4ed6877c691a44b53b2c554149c90034cbed8d48e0daf682aa7afbfb8f12cb05e4d99bd05dccc2e814f6001ccf19d61e9bff8c2da5e44ede386ea3565661f 001-confiure-no-udev.patch
+03351f2cd20846f168e4ae5b4a44397bbca44994b3345d534de9d3c5b376d2e696ccd09e96d72b48ead068cd28f502e460443a736633c6bf7f5a603a7a0620d1 libplist-2.3.0.patch
+"
diff --git a/testing/usbmuxd/libplist-2.3.0.patch b/testing/usbmuxd/libplist-2.3.0.patch
new file mode 100644
index 00000000000..6004066de74
--- /dev/null
+++ b/testing/usbmuxd/libplist-2.3.0.patch
@@ -0,0 +1,34 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/72eb72074e5353b698875dcbd9edb4711c649de2/trunk/libplist-2.3.0.diff
+--
+diff --git i/src/utils.c w/src/utils.c
+index 206c684..a91faea 100644
+--- i/src/utils.c
++++ w/src/utils.c
+@@ -302,7 +302,7 @@ int plist_read_from_filename(plist_t *plist, const char *filename)
+ return 1;
+ }
+
+-int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format)
++int plist_write_to_filename(plist_t plist, const char *filename, plist_format_t format)
+ {
+ char *buffer = NULL;
+ uint32_t length;
+diff --git i/src/utils.h w/src/utils.h
+index b5cab3f..3e9eb41 100644
+--- i/src/utils.h
++++ w/src/utils.h
+@@ -78,13 +78,8 @@ char *string_concat(const char *str, ...);
+ int buffer_read_from_filename(const char *filename, char **buffer, uint64_t *length);
+ int buffer_write_to_filename(const char *filename, const char *buffer, uint64_t length);
+
+-enum plist_format_t {
+- PLIST_FORMAT_XML,
+- PLIST_FORMAT_BINARY
+-};
+-
+ int plist_read_from_filename(plist_t *plist, const char *filename);
+-int plist_write_to_filename(plist_t plist, const char *filename, enum plist_format_t format);
++int plist_write_to_filename(plist_t plist, const char *filename, plist_format_t format);
+
+ uint64_t mstime64(void);
+ void get_tick_count(struct timeval * tv);
diff --git a/testing/usbmuxd/usbmuxd.post-install b/testing/usbmuxd/usbmuxd.post-install
new file mode 100644
index 00000000000..6ef6673aa2d
--- /dev/null
+++ b/testing/usbmuxd/usbmuxd.post-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# creating default user required by usbmuxd
+adduser -S -G dialout -H -g "usbmux daemon" usbmux 2>/dev/null
diff --git a/testing/user-managerd/APKBUILD b/testing/user-managerd/APKBUILD
deleted file mode 100644
index fe64c31047d..00000000000
--- a/testing/user-managerd/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=user-managerd
-pkgver=0.5.3
-pkgrel=0
-pkgdesc="Daemon for handling Sailfish OS device users"
-url="https://github.com/sailfishos/user-managerd"
-arch="all"
-license="BSD-3-Clause"
-depends_dev="qt5-qtbase-dev libuser-dev sailfish-access-control elogind-dev libmce-qt-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev"
-source="https://github.com/sailfishos/user-managerd/archive/$pkgver/user-managerd-$pkgver.tar.gz"
-
-build() {
- qmake-qt5
- make
-}
-
-package() {
- INSTALL_ROOT="$pkgdir" make install
-}
-
-sha512sums="dcc889155a8ffb6c762659e0aee859a630b14cc02a195562121174b2677e7ba81c7a35522cf45f4a0ec3c3f17a1ecf356620f2087a85bd20cbc737f90cf5bbf5 user-managerd-0.5.3.tar.gz"
diff --git a/testing/usql/APKBUILD b/testing/usql/APKBUILD
new file mode 100644
index 00000000000..dfc32a62910
--- /dev/null
+++ b/testing/usql/APKBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=usql
+pkgver=0.15.6
+pkgrel=4
+pkgdesc="Universal command-line interface for SQL databases"
+url="https://github.com/xo/usql"
+# riscv64: not supported by go-ole (undefined: VARIANT)
+# x86, armhf, armv7: netezza and cockroachdb drivers fail to build on 32-bit
+# - https://github.com/xo/usql/issues/59
+# - https://github.com/IBM/nzgo/issues/38
+# - https://github.com/cockroachdb/pebble/issues/1575
+arch="all !riscv64 !armhf !armv7 !x86"
+license="MIT"
+makedepends="go unixodbc-dev icu-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xo/usql/archive/refs/tags/v$pkgver.tar.gz"
+
+export CGO_ENABLED=1 # needed for godror and odbc drivers
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+export _GOTAGS="all sqlite_app_armor sqlite_fts5 sqlite_introspect sqlite_json1 sqlite_stat4 sqlite_userauth sqlite_vtable sqlite_icu"
+
+build() {
+ export CGO_CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
+ local _goldflags="
+ -X github.com/xo/usql/text.CommandName=$pkgname
+ -X github.com/xo/usql/text.CommandVersion=$pkgver
+ "
+
+ go build -v -ldflags "$_goldflags" -tags "$_GOTAGS" -o $pkgname
+}
+
+check() {
+ # Tests for specific drivers require docker
+ # shellcheck disable=2046
+ go test $(go list ./... | grep -v /drivers)
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+e843f35c8b4c2ae9af4fdc3ac966b1412580268ce7ba3d837189251db9b89a5042458e5b21b2b2f952dcbad27250e6b91d19645a8831f6aa13dbee13624b8908 usql-0.15.6.tar.gz
+"
diff --git a/testing/ustr/APKBUILD b/testing/ustr/APKBUILD
index e01a91828f0..80ec0018e83 100644
--- a/testing/ustr/APKBUILD
+++ b/testing/ustr/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ustr
pkgver=1.0.4
-pkgrel=0
+pkgrel=1
pkgdesc="String library, very low memory overhead, simple to import"
url="http://www.and.org/ustr/"
arch="all"
diff --git a/testing/ustream-ssl/APKBUILD b/testing/ustream-ssl/APKBUILD
new file mode 100644
index 00000000000..ac212f7ce6e
--- /dev/null
+++ b/testing/ustream-ssl/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=ustream-ssl
+pkgver=20220116
+pkgrel=1
+pkgdesc="ustream SSL library"
+url="https://git.openwrt.org/project/ustream-ssl.git"
+arch="all"
+license="ISC"
+depends=""
+depends_dev="libubox-dev openssl-dev"
+makedepends="cmake $depends_dev"
+subpackages="$pkgname-dev"
+_owrtgit=868fd881
+_owrtver="${pkgver:0:4}-${pkgver:4:2}-${pkgver:6:2}-${_owrtgit}"
+source="https://sources.openwrt.org/ustream-ssl-${_owrtver}.tar.xz"
+builddir="$srcdir/ustream-ssl-${_owrtver}"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+92d65c1163fe2d2fcd6ff28c825a54bb92c552a2b1fd698502c790bd8461bfe6e08a19df45a96c356ef63acf5c277a24c0ab438c4285649d8de60926171b9348 ustream-ssl-2022-01-16-868fd881.tar.xz
+"
diff --git a/testing/utop/APKBUILD b/testing/utop/APKBUILD
new file mode 100644
index 00000000000..ad78e473f97
--- /dev/null
+++ b/testing/utop/APKBUILD
@@ -0,0 +1,145 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=utop
+pkgver=2.9.1
+pkgrel=4
+pkgdesc="Universal toplevel for OCaml"
+url="https://github.com/ocaml-community/utop"
+arch="all !riscv64 !loongarch64" # ocaml
+license="BSD-3-Clause"
+depends="
+ ocaml-$pkgname=$pkgver-r$pkgrel
+ $pkgname-common=$pkgver-r$pkgrel
+ "
+makedepends="
+ dune
+ ocaml
+ ocaml-bigarray-compat-dev
+ ocaml-camomile-dev
+ ocaml-charinfo_width-dev
+ ocaml-compiler-libs
+ ocaml-cppo
+ ocaml-csexp-dev
+ ocaml-findlib-dev
+ ocaml-lambda-term-dev
+ ocaml-lwt-dev
+ ocaml-lwt_log-dev
+ ocaml-lwt_react
+ ocaml-mew-dev
+ ocaml-mew_vi-dev
+ ocaml-mmap-dev
+ ocaml-ocplib-endian-dev
+ ocaml-react-dev
+ ocaml-result-dev
+ ocaml-seq-dev
+ ocaml-trie-dev
+ ocaml-zed-dev
+ "
+subpackages="
+ $pkgname-full:_full
+ $pkgname-common:_common:noarch
+ $pkgname-doc
+ $pkgname-emacs::noarch
+ ocaml-$pkgname-dev:_libdev
+ ocaml-$pkgname:_lib
+ "
+source="$pkgname-$pkgver.tar.bz2::https://github.com/ocaml-community/utop/releases/download/$pkgver/utop-$pkgver.tbz"
+
+# 32-bit archs
+case "$CARCH" in
+ arm*|x86) options="$options textrels" ;;
+esac
+
+build() {
+ export OCAMLPATH=/usr/lib/ocaml
+ dune build --root . @install --no-buffer --verbose
+}
+
+check() {
+ dune runtest --no-buffer --verbose
+}
+
+package() {
+ dune install \
+ --destdir="$pkgdir" \
+ --prefix=/usr \
+ --libdir=/usr/lib/ocaml
+
+ # There's just a readme and changelog.
+ rm -Rf "$pkgdir"/usr/doc
+
+ mkdir -vp "$pkgdir"/usr/share
+ mv -vf "$pkgdir"/usr/man "$pkgdir"/usr/share/
+}
+
+_full() {
+ pkgdesc="$pkgdesc (non-expunged)"
+
+ amove usr/bin/utop-full
+}
+
+_common() {
+ pkgdesc="Common files for utop and utop-full"
+ depends=""
+
+ amove usr/share/$pkgname
+}
+
+emacs() {
+ pkgdesc="utop plugin for Emacs"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
+}
+
+_libdev() {
+ pkgdesc="$pkgdesc (development files)"
+ depends="ocaml-$pkgname=$pkgver-r$pkgrel"
+ local sitelib="usr/lib/ocaml/$pkgname"
+
+ cd "$pkgdir"
+
+ local path; find $sitelib \( \
+ -name '*.cmt' -o \
+ -name '*.cmti' -o \
+ -name '*.ml' -o \
+ -name '*.mli' \
+ \) | while read -r path
+ do
+ amove "$path"
+ done
+
+}
+
+_lib() {
+ pkgdesc="$pkgdesc (library)"
+ depends=""
+
+ amove usr/lib/ocaml
+}
+
+prepare_py_provides() {
+ local datadir="${subpkgdir:-$pkgdir}"
+ local pkgbasedir=${pkgbasedir:-"$startdir/pkg"}
+ local controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
+
+ options_has "!tracedeps" && return 0
+
+ ocaml4-abuild-find provides \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir" \
+ "$pkgver-r$pkgrel"
+}
+
+scan_python3_dependency() {
+ local controldir="$2" datadir="$3"
+
+ ocaml4-abuild-find requires \
+ "$datadir"/usr/lib/ocaml \
+ "$controldir"
+}
+
+sha512sums="
+002fa809d4924419f51b81df968b653a111ae5992837792fcb867adf2e44c15d40fadccc9784ef61f21ea3233f9da74016433920bf909d808752b7f825f8cdb1 utop-2.9.1.tar.bz2
+"
diff --git a/testing/uucp/APKBUILD b/testing/uucp/APKBUILD
index 3856ee64613..8677683609c 100644
--- a/testing/uucp/APKBUILD
+++ b/testing/uucp/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Mathew Meins <mathewm@sdf.lonestar.org>
pkgname=uucp
pkgver=1.07
-pkgrel=3
+pkgrel=5
pkgdesc="Taylor UUCP is a free implementation of UUCP"
url="https://airs.com/ian/uucp.html"
arch="all"
@@ -16,7 +16,8 @@ subpackages="$pkgname-doc"
options="suid"
pkgusers="uucp"
pkggroups="uucp"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz
+ format-strings.patch"
builddir="$srcdir"/$pkgname-$pkgver
build() {
@@ -62,4 +63,7 @@ package() {
"$pkgdir"/etc/uucp/passwd || return 1
}
-sha512sums="13d215890234e638bed53dce7bab6eb78e0ce6b658f23ac1d7f8abc6e1d97963bef76aa4148ca644f450d5a1678fac940b73fbcd5845d7f5bea3afbd8055229b uucp-1.07.tar.gz"
+sha512sums="
+13d215890234e638bed53dce7bab6eb78e0ce6b658f23ac1d7f8abc6e1d97963bef76aa4148ca644f450d5a1678fac940b73fbcd5845d7f5bea3afbd8055229b uucp-1.07.tar.gz
+8b93f4e7708ba2d7830b6b4f3e2994ee56513de0ef406109572b1d550f7e44b3610c3e6b3cb357200976efc75854b9febdb8ea7b4ef7b881483ddcf9e6c5618c format-strings.patch
+"
diff --git a/testing/uucp/format-strings.patch b/testing/uucp/format-strings.patch
new file mode 100644
index 00000000000..7d7ad23ea36
--- /dev/null
+++ b/testing/uucp/format-strings.patch
@@ -0,0 +1,13 @@
+Patch-Source: https://sources.debian.org/patches/uucp/1.07-27/compiler-warnings.patch
+
+--- uucp.orig/uuconv.c 2013-04-26 16:06:16.000000000 +0200
++++ uucp/uuconv.c 2013-05-08 10:49:06.000000000 +0200
+@@ -676,7 +676,7 @@
+ {
+ if ((*pz)[0] != '-' && pz != pzarg)
+ fprintf (e, " ");
+- fprintf (e, *pz);
++ fprintf (e, "%s", *pz);
+ }
+ }
+
diff --git a/testing/uxn/APKBUILD b/testing/uxn/APKBUILD
new file mode 100644
index 00000000000..00a940daae7
--- /dev/null
+++ b/testing/uxn/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Waweic <waweic@activ.ism.rocks>
+pkgname=uxn
+pkgver=1.0
+pkgrel=0
+pkgdesc="An assembler and emulator for the Uxn stack-machine"
+url="https://wiki.xxiivv.com/site/uxn.html"
+arch="all"
+license="MIT"
+makedepends="sdl2-dev"
+subpackages="$pkgname-doc"
+options="!check" #Tests not working yet
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~rabbits/uxn/archive/$pkgver.tar.gz"
+
+build() {
+ HOME=$(mktemp -d) ./build.sh --no-run
+}
+
+package() {
+ install -Dm 755 -t "$pkgdir"/usr/bin/ "bin/uxnasm"
+ install -Dm 755 -t "$pkgdir"/usr/bin/ "bin/uxnemu"
+ install -Dm 755 -t "$pkgdir"/usr/bin/ "bin/uxncli"
+
+ install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+sha512sums="
+3d2f86f5dc702d73be8c9203dca10bdebf79f5052ab2fab044e46cb4189ddace46365b619e4da30b43804cb056fbb907ef9ff13b5f60e7ad30ce0f129724312c uxn-1.0.tar.gz
+"
diff --git a/testing/vala-language-server/APKBUILD b/testing/vala-language-server/APKBUILD
deleted file mode 100644
index 1ede39891e6..00000000000
--- a/testing/vala-language-server/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=vala-language-server
-pkgver=0.48
-pkgrel=0
-pkgdesc="Code Intelligence for Vala"
-url="https://github.com/benwaffle/vala-language-server"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="meson vala json-glib-dev glib-dev libgee-dev jsonrpc-glib-dev"
-source="https://github.com/benwaffle/vala-language-server/releases/download/${pkgver/_/-}/vala-language-server-${pkgver/_/-}.tar.xz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- -Ddefault_library=shared \
- . output
- ninja -C output
-}
-
-check() {
- ninja -C output test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-}
-
-sha512sums="886d3a4b29caec6fd6d2dce1f61502523b117b26c6c5ca083f116f125c49600a40a194f66abaf6712fe09ce63ba9a4cdbb24244249f201e4aa1e937b69695c6b vala-language-server-0.48.tar.xz"
diff --git a/testing/vale/APKBUILD b/testing/vale/APKBUILD
new file mode 100644
index 00000000000..f05df856f74
--- /dev/null
+++ b/testing/vale/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Andrej Kolchin <KAAtheWise@protonmail.com>
+# Maintainer: Andrej Kolchin <KAAtheWise@protonmail.com>
+pkgname=vale
+pkgver=3.4.1
+pkgrel=1
+pkgdesc="A markup-aware linter for prose built with speed and extensibility in mind"
+url="https://vale.sh/"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/errata-ai/vale/archive/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+build() {
+ go build -ldflags "-X main.version=v$pkgver" -o bin/vale ./cmd/vale
+}
+
+check() {
+ go test ./internal/core ./internal/lint ./internal/check ./internal/nlp ./internal/glob ./cmd/vale
+}
+
+package() {
+ install -Dm755 bin/vale -t "$pkgdir"/usr/bin
+
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+93a70954fa67e8f1a7c3c3c8681784b06c32388c70eb6c75ae90292ae3a913dbb89a0539361b689470ee6a77fd9e0419312a98f64af4d1236d32dc436e3a4d9d vale-3.4.1.tar.gz
+"
diff --git a/testing/valkey/APKBUILD b/testing/valkey/APKBUILD
new file mode 100644
index 00000000000..5d53544d71d
--- /dev/null
+++ b/testing/valkey/APKBUILD
@@ -0,0 +1,106 @@
+# Contributor: V.Krishn <vkrishn4@gmail.com>
+# Contributor: Eivind Uggedal <eu@eju.no>
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=valkey
+pkgver=7.2.5
+pkgrel=0
+pkgdesc="Open source high-performance key/value datastore (fork of Redis)"
+url="https://valkey.io/"
+arch="all"
+license="BSD-3-Clause"
+pkgusers="valkey"
+pkggroups="valkey"
+makedepends="linux-headers openssl-dev"
+checkdepends="tcl procps"
+install="
+ $pkgname.pre-install
+ $pkgname-compat.pre-install
+ "
+subpackages="
+ $pkgname-benchmark
+ $pkgname-cli
+ $pkgname-compat::noarch
+ $pkgname-openrc
+ "
+source="https://github.com/valkey-io/valkey/archive/$pkgver/valkey-$pkgver.tar.gz
+ valkey.conf.patch
+ sentinel.conf.patch
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname-sentinel.initd
+ $pkgname-sentinel.confd
+ "
+
+case "$CARCH" in
+ # FIXME: One test is broken on s390x.
+ s390x) options="!check";;
+esac
+
+build() {
+ export CFLAGS="$CFLAGS -DUSE_MALLOC_USABLE_SIZE -O2 -flto=auto"
+ make USE_JEMALLOC=no \
+ MALLOC=libc \
+ BUILD_TLS=yes \
+ all
+}
+
+check() {
+ make test
+}
+
+package() {
+ make install PREFIX=/usr INSTALL_BIN="$pkgdir/usr/bin"
+
+ cd "$pkgdir"
+
+ # NOTE: /etc/valkey and /etc/valkey/sentinel.conf must be writable for valkey,
+ # otherwise Sentinel fails to start.
+ install -d -m 750 -o valkey -g valkey \
+ etc/valkey \
+ etc/valkey/valkey.d \
+ var/lib/valkey \
+ var/lib/valkey/sentinel
+
+ install -D -m 640 -o root -g valkey "$builddir"/valkey.conf etc/valkey/valkey.conf
+ install -D -m 640 -o valkey -g valkey "$builddir"/sentinel.conf etc/valkey/sentinel.conf
+
+ install -D -m 755 "$srcdir"/valkey.initd etc/init.d/valkey
+ install -D -m 755 "$srcdir"/valkey-sentinel.initd etc/init.d/valkey-sentinel
+ install -D -m 644 "$srcdir"/valkey.confd etc/conf.d/valkey
+ install -D -m 644 "$srcdir"/valkey-sentinel.confd etc/conf.d/valkey-sentinel
+
+ install -d -m 750 -o valkey -g valkey \
+ var/lib/valkey \
+ var/lib/valkey/sentinel
+}
+
+benchmark() {
+ pkgdesc="Valkey benchmarking tool"
+
+ amove usr/bin/valkey-benchmark
+}
+
+cli() {
+ pkgdesc="Valkey CLI client"
+
+ amove usr/bin/valkey-cli
+}
+
+compat() {
+ pkgdesc="Valkey command symlinks and system group for compatibility with redis"
+ depends="!redis"
+
+ amove usr/bin/redis-*
+ rm "$subpkgdir"/usr/bin/redis-benchmark
+}
+
+sha512sums="
+0b684a5ffe045ce51bb2f4f76429928784b8b46ee4817a95b658ffd69313a90b3d0fb12e0ddbb0b4cb57a7e0c79072f603eb4524a9bcce96ecc9ae8f1a5f02c3 valkey-7.2.5.tar.gz
+20278cb287d9bc15839a120af4379d18bbc3bef61f07834931c807be87a2227027ad4f1bbd1fba3fdcc99b37e67262f2c925e99905b4bc1b15697a5be282265b valkey.conf.patch
+d0311d2bfade7efbfa2bdcc6c74e8e8a151c09c627e30f5cea1826155dcb4f7ca4c1d35aba26bccec933575fadcbe5785e16b4801058fec73c7de5537ffeb09a sentinel.conf.patch
+605c1f39cf5f206e03d19af54412a66732ad3c65d5cb36e5d6cfb9d28779807d2da9c29d01f07e0ba2956446cb6935b66c92844a74b255b6070870b30d7d45d8 valkey.initd
+639a007f7e98cf7614d2afb6e109042883030e0bdf4eaf1dc3df3ecab8043d6be30647e1e46295f783efc7baf42dc420b2e5dcf388913efdc5bdf2cd1e418f9f valkey.confd
+dd407cb4047524114b4814a28993978acbe300989acc466ec3809171bf19a1e0562756f7b5954981a087a37437c2c281e4a3667d361cfa8873d1c20d1b900632 valkey-sentinel.initd
+926316561f0802b577caee03e7bccc5538dc8270095df95853549fdd519fac8d0e89bc3e563cdba2d7ec0dfe10db5e50b95859549597beec894c820abfdbecee valkey-sentinel.confd
+"
diff --git a/testing/valkey/sentinel.conf.patch b/testing/valkey/sentinel.conf.patch
new file mode 100644
index 00000000000..182cd086186
--- /dev/null
+++ b/testing/valkey/sentinel.conf.patch
@@ -0,0 +1,64 @@
+--- a/sentinel.conf
++++ b/sentinel.conf
+@@ -9,16 +9,6 @@
+ # The port that this sentinel instance will run on
+ port 26379
+
+-# By default Valkey Sentinel does not run as a daemon. Use 'yes' if you need it.
+-# Note that Valkey will write a pid file in /var/run/valkey-sentinel.pid when
+-# daemonized.
+-daemonize no
+-
+-# When running daemonized, Valkey Sentinel writes a pid file in
+-# /var/run/valkey-sentinel.pid by default. You can specify a custom pid file
+-# location here.
+-pidfile /var/run/valkey-sentinel.pid
+-
+ # Specify the server verbosity level.
+ # This can be one of:
+ # debug (a lot of information, useful for development/testing)
+@@ -31,14 +21,14 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # Sentinel to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++# logfile /var/log/valkey/sentinel.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+-# syslog-enabled no
++syslog-enabled yes
+
+ # Specify the syslog identity.
+-# syslog-ident sentinel
++syslog-ident sentinel
+
+ # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+ # syslog-facility local0
+@@ -70,7 +60,7 @@
+ # For Valkey Sentinel to chdir to /tmp at startup is the simplest thing
+ # for the process to don't interfere with administrative tasks such as
+ # unmounting filesystems.
+-dir /tmp
++dir /var/lib/valkey/sentinel
+
+ # sentinel monitor <master-name> <ip> <valkey-port> <quorum>
+ #
+@@ -266,7 +256,7 @@
+ #
+ # Example:
+ #
+-# sentinel notification-script mymaster /var/valkey/notify.sh
++# sentinel notification-script mymaster /etc/valkey/notify.sh
+
+ # CLIENTS RECONFIGURATION SCRIPT
+ #
+@@ -291,7 +281,7 @@
+ #
+ # Example:
+ #
+-# sentinel client-reconfig-script mymaster /var/valkey/reconfig.sh
++# sentinel client-reconfig-script mymaster /etc/valkey/reconfig.sh
+
+ # SECURITY
+ #
diff --git a/testing/valkey/valkey-compat.pre-install b/testing/valkey/valkey-compat.pre-install
new file mode 100644
index 00000000000..e23cf4612f7
--- /dev/null
+++ b/testing/valkey/valkey-compat.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S redis 2>/dev/null
+addgroup valkey redis 2>/dev/null
+
+exit 0
diff --git a/testing/valkey/valkey-sentinel.confd b/testing/valkey/valkey-sentinel.confd
new file mode 100644
index 00000000000..daea879564b
--- /dev/null
+++ b/testing/valkey/valkey-sentinel.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/valkey-sentinel
+
+# Valkey Sentinel configuration file.
+#cfgfile="/etc/valkey/sentinel.conf"
+
+# User (and group) to run valkey as.
+#command_user="valkey:valkey"
+
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/testing/valkey/valkey-sentinel.initd b/testing/valkey/valkey-sentinel.initd
new file mode 100644
index 00000000000..7402907f02c
--- /dev/null
+++ b/testing/valkey/valkey-sentinel.initd
@@ -0,0 +1,38 @@
+#!/sbin/openrc-run
+
+name="Valkey Sentinel"
+
+: ${cfgfile:="/etc/valkey/sentinel.conf"}
+: ${command_user:="valkey:valkey"}
+
+command="/usr/bin/valkey-sentinel"
+command_args="$cfgfile --daemonize no $command_args"
+command_background="yes"
+
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
+depend() {
+ use net localmount logger
+ after keepalived firewall valkey
+ provide redis-sentinel
+}
+
+start_pre() {
+ # Sets start-start-daemon's --chdir.
+ directory="$(config_get 'dir' '/var/lib/valkey')" || return 1
+
+ local logfile="$(config_get 'logfile')"
+ if [ "$logfile" ]; then
+ checkpath -f -o "$command_user" "$logfile" || return 1
+ fi
+}
+
+config_get() {
+ local key="$1"
+ local default="${2:-}"
+
+ local value="$(awk "\$1 == \"$key\" { print \$2 }" "$cfgfile")"
+ printf '%s\n' "${value:-$default}"
+}
diff --git a/testing/valkey/valkey.conf.patch b/testing/valkey/valkey.conf.patch
new file mode 100644
index 00000000000..f8cdcdc82e8
--- /dev/null
+++ b/testing/valkey/valkey.conf.patch
@@ -0,0 +1,87 @@
+We force "daemonize no" in init script, so daemonize and pidfile does not
+have any effect in valkey.conf. It's init/rc system's job to daemonize
+programs and handle pidfiles, if it needs it!
+
+Applications often communicate with Redis via unix socket, so it's
+convenient to have it enabled by default.
+
+--- a/valkey.conf
++++ b/valkey.conf
+@@ -152,8 +152,8 @@
+ # incoming connections. There is no default, so the server will not listen
+ # on a unix socket when not specified.
+ #
+-# unixsocket /run/valkey.sock
+-# unixsocketperm 700
++unixsocket /run/valkey.sock
++unixsocketperm 770
+
+ # Close the connection after a client is idle for N seconds (0 to disable)
+ timeout 0
+@@ -300,11 +300,6 @@
+
+ ################################# GENERAL #####################################
+
+-# By default the server does not run as a daemon. Use 'yes' if you need it.
+-# Note that the server will write a pid file in /var/run/valkey.pid when daemonized.
+-# When the server is supervised by upstart or systemd, this parameter has no impact.
+-daemonize no
+-
+ # If you run the server from upstart or systemd, the server can interact with your
+ # supervision tree. Options:
+ # supervised no - no supervision interaction
+@@ -323,20 +318,6 @@
+ #
+ # supervised auto
+
+-# If a pid file is specified, the server writes it where specified at startup
+-# and removes it at exit.
+-#
+-# When the server runs non daemonized, no pid file is created if none is
+-# specified in the configuration. When the server is daemonized, the pid file
+-# is used even if not specified, defaulting to "/var/run/redis.pid".
+-#
+-# Creating a pid file is best effort: if the server is not able to create it
+-# nothing bad happens, the server will start and run normally.
+-#
+-# Note that on modern Linux systems "/run/valkey.pid" is more conforming
+-# and should be used instead.
+-pidfile /var/run/valkey_6379.pid
+-
+ # Specify the server verbosity level.
+ # This can be one of:
+ # debug (a lot of information, useful for development/testing)
+@@ -349,14 +330,14 @@
+ # Specify the log file name. Also the empty string can be used to force
+ # the server to log on the standard output. Note that if you use standard
+ # output for logging but daemonize, logs will be sent to /dev/null
+-logfile ""
++# logfile /var/log/valkey.log
+
+ # To enable logging to the system logger, just set 'syslog-enabled' to yes,
+ # and optionally update the other syslog parameters to suit your needs.
+-# syslog-enabled no
++syslog-enabled yes
+
+ # Specify the syslog identity.
+-# syslog-ident redis
++syslog-ident valkey
+
+ # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+ # syslog-facility local0
+@@ -504,7 +485,7 @@
+ # The Append Only File will also be created inside this directory.
+ #
+ # Note that you must specify a directory here, not a file name.
+-dir ./
++dir /var/lib/valkey
+
+ ################################# REPLICATION #################################
+
+@@ -2282,3 +2263,6 @@
+ # to suppress
+ #
+ # ignore-warnings ARM64-COW-BUG
++
++# Include configuration fragments.
++include /etc/valkey/valkey.d/*.conf
diff --git a/testing/valkey/valkey.confd b/testing/valkey/valkey.confd
new file mode 100644
index 00000000000..7951cf1b041
--- /dev/null
+++ b/testing/valkey/valkey.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/valkey
+
+# Valkey configuration file.
+#cfgfile="/etc/valkey/valkey.conf"
+
+# User (and group) to run valkey as.
+#command_user="valkey:valkey"
+
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/testing/valkey/valkey.initd b/testing/valkey/valkey.initd
new file mode 100644
index 00000000000..7fd3ece5392
--- /dev/null
+++ b/testing/valkey/valkey.initd
@@ -0,0 +1,46 @@
+#!/sbin/openrc-run
+
+name="Valkey server"
+description="Open source high-performance key/value datastore (fork of Redis)"
+
+: ${cfgfile:="/etc/valkey/valkey.conf"}
+: ${command_user:="valkey:valkey"}
+
+command="/usr/bin/valkey-server"
+command_args="$cfgfile --daemonize no $command_args"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
+depend() {
+ use net localmount logger
+ after keepalived firewall
+ provide redis
+}
+
+start_pre() {
+ # Sets start-start-daemon's --chdir.
+ directory="$(config_get 'dir' '/var/lib/valkey')"
+ checkpath -d -o "$command_user" "$directory" || return 1
+
+ local logfile="$(config_get 'logfile')"
+ if [ "$logfile" ]; then
+ checkpath -f -o "$command_user" "$logfile" || return 1
+ fi
+
+ local unixsocket="$(config_get 'unixsocket')"
+ if [ "$unixsocket" ] && ! [ -e "${unixsocket%/*}" ]; then
+ checkpath -d -o "$command_user" "${unixsocket%/*}" || return 1
+ fi
+
+ return 0
+}
+
+config_get() {
+ local key="$1"
+ local default="${2:-}"
+
+ local value="$(awk "\$1 == \"$key\" { print \$2 }" "$cfgfile")"
+ printf '%s\n' "${value:-$default}"
+}
diff --git a/testing/valkey/valkey.pre-install b/testing/valkey/valkey.pre-install
new file mode 100644
index 00000000000..58440139d2d
--- /dev/null
+++ b/testing/valkey/valkey.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S valkey 2>/dev/null
+adduser -S -D -H -h /var/lib/valkey -s /sbin/nologin -G valkey -g valkey valkey 2>/dev/null
+
+exit 0
diff --git a/testing/vals/APKBUILD b/testing/vals/APKBUILD
new file mode 100644
index 00000000000..2700087ddab
--- /dev/null
+++ b/testing/vals/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=vals
+pkgver=0.35.0
+pkgrel=2
+pkgdesc="Helm-like configuration values loader with support for various sources"
+url="https://github.com/helmfile/vals"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/helmfile/vals/archive/refs/tags/v$pkgver.tar.gz"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v \
+ -o bin/$pkgname \
+ -ldflags "-X main.version=v$pkgver -X main.commit=AlpineLinux" \
+ ./cmd/vals
+}
+
+check() {
+ # TestValues_.* tests require the running backend services
+ # TestGetStringMap test fails in CI only (XXX: investigate more)
+ # Tests in pkg/providers/k8s module requires a kubeconfig file with a locally running k8s cluster
+ # shellcheck disable=2046
+ go test -skip 'TestValues_.*|TestGetStringMap' $(go list ./... | grep -v 'pkg/providers/k8s')
+}
+
+package() {
+ install -Dm755 bin/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+de74c28c3bf6766d3e1af92f561bd85d77825e25de8f4c2330ef7c1121a4c420b69bd3ef07d2edfa8e8abaccb76e741c1cb4289b9ef3e10f2246deb69d932255 vals-0.35.0.tar.gz
+"
diff --git a/testing/vamp-sdk/APKBUILD b/testing/vamp-sdk/APKBUILD
deleted file mode 100644
index 8ae37a296ad..00000000000
--- a/testing/vamp-sdk/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Alexander Edland <alpine@ocv.me>
-# Maintainer: Alexander Edland <alpine@ocv.me>
-pkgname=vamp-sdk
-pkgver=2.7.1
-pkgrel=0
-pkgdesc="Framework for audio analysis and feature extraction"
-url="https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk"
-arch="all"
-license="BSD-3-Clause"
-options="!check" # testing is done by make
-makedepends="libsndfile-dev"
-subpackages="$pkgname-dev"
-source="https://code.soundsoftware.ac.uk/attachments/download/2206/vamp-plugin-sdk-$pkgver.tar.gz"
-builddir="$srcdir/vamp-plugin-sdk-$pkgver"
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- cd "$builddir"
- make -j1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="91dd7cae72334718dcbdac06b1ffa3f3ba76e977b82b928ab634d9982aa15ca4e30978a7778215753c61e56831077d7634d24e65e468ab6a8a87a5957fb09bf3 vamp-plugin-sdk-2.7.1.tar.gz"
diff --git a/testing/varnish-modules/APKBUILD b/testing/varnish-modules/APKBUILD
new file mode 100644
index 00000000000..4136e65e8e9
--- /dev/null
+++ b/testing/varnish-modules/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Guillaume Quintard <guillaume.quintard@gmail.com>
+# Maintainer: Guillaume Quintard <guillaume.quintard@gmail.com>
+pkgname=varnish-modules
+pkgver=0.23.0
+pkgrel=1
+pkgdesc="collection of modules for varnish"
+url="https://github.com/varnish/varnish-modules"
+arch="all"
+license="BSD-2-Clause"
+_vversion="7.4.2"
+makedepends="autoconf automake gcc libtool make py3-docutils python3
+ varnish-dev~=$_vversion"
+depends="varnish~=$_vversion"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/varnish/varnish-modules/releases/download/$pkgver/varnish-modules-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var/lib
+ make
+}
+
+check() {
+ make check -k VERBOSE=1
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+913cba864261141cd38bae258960699b29e89e4a67025397b92a37d2677872305738a78bb14fe245517da3fd987613e68a41481e968565dd6da1ee2d85eca726 $pkgname-$pkgver.tar.gz
+"
diff --git a/testing/vbindiff/APKBUILD b/testing/vbindiff/APKBUILD
new file mode 100644
index 00000000000..beed87d9f4d
--- /dev/null
+++ b/testing/vbindiff/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Alex Yam <alex@alexyam.com>
+pkgname=vbindiff
+pkgver=3.0_beta5
+pkgrel=1
+pkgdesc="ncurses hex editor with diff mode for binary file comparison, supports files up to 4GB"
+url="https://www.cjmweb.net/vbindiff/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="ncurses-dev"
+options="!check" # no test suite
+source="https://www.cjmweb.net/vbindiff/vbindiff-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="cc9bc3b950f7b452fbc231f5cf4976b428dbeb96bfe13d518829f8a58898174a4c3b4b1ca0ed075c5b71c7ec27a8e7db4d09e36db74f727e40c524941dd8dbcc vbindiff-3.0_beta5.tar.gz"
diff --git a/testing/vcdimager/APKBUILD b/testing/vcdimager/APKBUILD
index 19fc7b43e04..b2617a1a62f 100644
--- a/testing/vcdimager/APKBUILD
+++ b/testing/vcdimager/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=vcdimager
pkgver=2.0.1
-pkgrel=1
+pkgrel=3
pkgdesc="Mastering suite for authoring disassembling and analyzing Video CD's and Super Video CD's"
url="http://www.vcdimager.org"
arch="all"
diff --git a/testing/vcmi/APKBUILD b/testing/vcmi/APKBUILD
new file mode 100644
index 00000000000..3a80d61e669
--- /dev/null
+++ b/testing/vcmi/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: ovf <ovf@mm.st>
+pkgname=vcmi
+pkgver=1.4.5
+pkgrel=1
+pkgdesc="Open-source engine for Heroes of Might and Magic III"
+url="https://vcmi.eu"
+# ppc64le, riscv64: no luajit
+# game engine
+arch="aarch64 x86_64"
+license="GPL-2.0-or-later"
+makedepends="
+ boost-dev
+ cmake
+ ffmpeg-dev
+ fuzzylite-dev
+ luajit-dev
+ minizip-dev
+ onetbb-dev
+ qt6-qtbase-dev
+ qt6-qttools-dev
+ samurai
+ sdl2-dev
+ sdl2_image-dev
+ sdl2_mixer-dev
+ sdl2_ttf-dev
+ zlib-dev
+ "
+source="https://github.com/vcmi/vcmi/archive/refs/tags/$pkgver/vcmi-$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 -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DFORCE_BUNDLED_FL=OFF \
+ -DFORCE_BUNDLED_MINIZIP=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+538d1b065282f2ff234ad5101dfdc35d9b280473db897d2aaca91d7760f4a8fb2be7f91c7731515fdcdf19b9204b832b244381feda0988efa89c11a66f937a98 vcmi-1.4.5.tar.gz
+"
diff --git a/testing/vcsh/APKBUILD b/testing/vcsh/APKBUILD
new file mode 100644
index 00000000000..ee65a5aa076
--- /dev/null
+++ b/testing/vcsh/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Martin Kühl <martin.kuehl@posteo.net>
+# Maintainer: Martin Kühl <martin.kuehl@posteo.net>
+pkgname=vcsh
+pkgver=2.0.5
+pkgrel=0
+pkgdesc="config manager based on Git"
+url="https://github.com/RichiH/vcsh"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="git"
+subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-zsh-completion"
+source="https://github.com/RichiH/vcsh/releases/download/v$pkgver/vcsh-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e33be3ee1a6ed908704eb2e355840598595b711d47e5fb8d5b79e3d715d81faa410226641e374aecee98de2938117ec094a1fe3d21e54d68e3ae117d07185f6b vcsh-2.0.5.tar.xz
+"
diff --git a/testing/vcstool/APKBUILD b/testing/vcstool/APKBUILD
new file mode 100644
index 00000000000..9ee5ca6576f
--- /dev/null
+++ b/testing/vcstool/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Russ Webber <russ@rw.id.au>
+# Maintainer: Russ Webber <russ@rw.id.au>
+pkgname=vcstool
+pkgver=0.3.0
+pkgrel=5
+pkgdesc="A command line tool designed to make working with multiple repositories easier"
+url="https://github.com/dirk-thomas/vcstool"
+arch="noarch"
+license="Apache-2.0"
+depends="py3-yaml py3-setuptools"
+makedepends="py3-gpep517 py3-wheel"
+checkdepends="py3-pytest py3-flake8 py3-flake8-import-order subversion mercurial git"
+subpackages="
+ $pkgname-pyc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ $pkgname-tcsh-completion:tcshcomp:noarch
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/dirk-thomas/vcstool/archive/$pkgver.tar.gz"
+options="!check" # fail due to various git errors, and outdated dependency expectations
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ gpep517 install-wheel --destdir .testenv --prefix '' .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ gpep517 install-wheel --destdir "$pkgdir" \
+ .dist/*.whl
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ mkdir -p "$pkgdir"/usr/share/zsh/site-functions
+ mkdir -p "$pkgdir"/usr/share/tcsh-completion/completions
+ mv "$pkgdir"/usr/share/vcstool-completion/vcs.bash "$pkgdir"/usr/share/bash-completion/completions
+ mv "$pkgdir"/usr/share/vcstool-completion/vcs.zsh "$pkgdir"/usr/share/zsh/site-functions
+ mv "$pkgdir"/usr/share/vcstool-completion/vcs.tcsh "$pkgdir"/usr/share/tcsh-completion/completions
+ rm -rf "$pkgdir"/usr/share/vcstool-completion
+}
+
+tcshcomp() {
+ pkgdesc="tcsh completions for $pkgname"
+ depends=""
+ install_if="$pkgname=$pkgver-r$pkgrel tcsh"
+
+ amove /usr/share/tcsh-completion/completions
+}
+
+sha512sums="
+f50ec4c23fce65f71ec0070b709840150f6a90b0620dd937c234c408951b4eb6ad9d53d841d3862ce7ece54c15458fd9db434341fd4a1eabb40a7084fb71b101 vcstool-0.3.0.tar.gz
+"
diff --git a/testing/vdpauinfo/APKBUILD b/testing/vdpauinfo/APKBUILD
deleted file mode 100644
index e105218f832..00000000000
--- a/testing/vdpauinfo/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Taner Tas <taner76@gmail.com>
-pkgname=vdpauinfo
-pkgver=1.3
-pkgrel=0
-pkgdesc="Command line utility for querying the capabilities of a VDPAU device."
-options="!check" # No testsuite
-url="https://cgit.freedesktop.org/vdpau/vdpauinfo"
-arch="all"
-license="custom"
-makedepends="libx11-dev libvdpau-dev"
-source="https://gitlab.freedesktop.org/vdpau/vdpauinfo/uploads/6fa9718c507ef0fb6966170ef55344bf/vdpauinfo-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="a17812edb0596a50445b312efdbd14800f85d2e7c3d7b62114bc7ac6008da43032cd75c4464c3b2c89c0091184ac98dfa7698a1503d91331f6db44a437775fd0 vdpauinfo-1.3.tar.gz"
diff --git a/testing/vdr-plugin-dvbapi/APKBUILD b/testing/vdr-plugin-dvbapi/APKBUILD
index 73967ef0d54..e5a49846f50 100644
--- a/testing/vdr-plugin-dvbapi/APKBUILD
+++ b/testing/vdr-plugin-dvbapi/APKBUILD
@@ -1,4 +1,4 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
pkgname=vdr-plugin-dvbapi
pkgver=2.2.5
diff --git a/testing/vector/APKBUILD b/testing/vector/APKBUILD
new file mode 100644
index 00000000000..7eddc588b8b
--- /dev/null
+++ b/testing/vector/APKBUILD
@@ -0,0 +1,96 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=vector
+pkgver=0.34.2
+pkgrel=0
+pkgdesc="High-performance observability data pipeline"
+url="https://vector.dev/"
+# s390x, ppc64le, riscv64: blocked by ring crate
+# 32-bit: memory allocation error
+arch="all !s390x !ppc64le !riscv64 !x86 !armhf !armv7"
+license="MPL-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ cmake
+ librdkafka-dev
+ openssl-dev
+ perl
+ protobuf-dev
+ protoc
+ python3
+ zlib-ng-dev
+ zstd-dev
+ "
+checkdepends="bash cargo-nextest tzdata"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/vectordotdev/vector/archive/refs/tags/v$pkgver.tar.gz
+ use-system-libs.patch
+ skip-failed-tests.patch
+ vector.initd
+ vector.confd
+ logrotate
+ "
+
+export OPENSSL_NO_VENDOR=1
+
+prepare() {
+ default_prepare
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided zlib-ng
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ z-ng = { rustc-link-lib = ["z-ng"], rustc-cfg = ["zng"] }
+ EOF
+
+ # "cargo auditable build" still tries to pull dependencies for other platforms
+ cargo fetch --locked
+}
+
+build() {
+ cargo auditable build \
+ --release \
+ --frozen \
+ --no-default-features \
+ --features default-musl,component-validation-runner
+
+ # cargo-nextest drops the release build, so back it up here
+ cp -r target/release releasebuild
+}
+
+check() {
+ # Upstream recommends running tests with "cargo nextest" instead of "cargo test"
+ cargo nextest run \
+ --fail-fast \
+ --frozen \
+ --no-default-features \
+ --offline \
+ --release \
+ --workspace \
+ --test-threads num-cpus
+}
+
+package() {
+ install -Dm755 releasebuild/vector -t "$pkgdir"/usr/bin/
+ install -Dm644 config/vector.yaml -t "$pkgdir"/etc/vector/
+ install -Dm644 "$srcdir"/logrotate "$pkgdir"/etc/logrotate.d/vector
+
+ mkdir -p "$pkgdir"/usr/share/doc/vector
+ cp -r config/examples "$pkgdir"/usr/share/doc/vector/examples
+
+ install -Dm755 "$srcdir"/vector.initd "$pkgdir"/etc/init.d/vector
+ install -Dm644 "$srcdir"/vector.confd "$pkgdir"/etc/conf.d/vector
+}
+
+sha512sums="
+9bebfc73509d748e43693b904f26469384ab70cc3c67c908a0d960b236fe6f44295c0a460a7eeb3bb17bd756860a407f95929c94060a681327c27b6ea907bacb vector-0.34.2.tar.gz
+7f4ed2bdfc8cf8116909e32f9b9caa70bd60d4c63763c8d8f2f47adfe725ea058e05d1e9891415433596260c9264cefdbcae9a70033fceca1c98ac24e964f087 use-system-libs.patch
+3e0d61d64411ce679241effccbe858ff2c68b20e96d8f9f12089671d8dcc84b0583f6db7512be90b716e3655e18d8a47e1359f4013444f448ec12f0de12f9c25 skip-failed-tests.patch
+806c2594d9d7b4bf1c24436a3982801a37ec3d8784acb97266eb7111fe35d8d05a64ef981100bd8aa35a71ad9c7c98de634428f696bded31993143ca572b6757 vector.initd
+313f79e65e61754e8a611f8221d7c0cf36ee5af6f30aeff720924e64bb03d7f44c54fc31ae20926c354905f61df347830a7cba0c37afd41c1f59a25c52fa6f06 vector.confd
+62db792de321655558bdb23ab9b3a7b35b84de445657011d88e8205cce4a926ff7b20f5304ec48fa646f1f259ad2136eceb5a377c4520071799da502eeff7592 logrotate
+"
diff --git a/testing/vector/logrotate b/testing/vector/logrotate
new file mode 100644
index 00000000000..61fbb96fe3c
--- /dev/null
+++ b/testing/vector/logrotate
@@ -0,0 +1,14 @@
+/var/log/vector.log {
+ rotate 4
+ weekly
+ compress
+ delaycompress
+ notifempty
+ missingok
+ copytruncate
+ minsize 100k
+ create 0644 vector vector
+ postrotate
+ /sbin/rc-service vector reload
+ endscript
+}
diff --git a/testing/vector/skip-failed-tests.patch b/testing/vector/skip-failed-tests.patch
new file mode 100644
index 00000000000..28f2025d71f
--- /dev/null
+++ b/testing/vector/skip-failed-tests.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/codecs/src/encoding/format/native_json.rs b/lib/codecs/src/encoding/format/native_json.rs
+index 94fd6b3..715e554 100644
+--- a/lib/codecs/src/encoding/format/native_json.rs
++++ b/lib/codecs/src/encoding/format/native_json.rs
+@@ -87,6 +87,7 @@ mod tests {
+ }
+
+ #[test]
++ #[ignore]
+ fn serialize_aggregated_histogram() {
+ let histogram_event = Event::from(Metric::new(
+ "histogram",
diff --git a/testing/vector/use-system-libs.patch b/testing/vector/use-system-libs.patch
new file mode 100644
index 00000000000..de81d6edfaa
--- /dev/null
+++ b/testing/vector/use-system-libs.patch
@@ -0,0 +1,77 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index d5b347b..81f95c4 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -3407,6 +3407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+ dependencies = [
+ "crc32fast",
++ "libz-ng-sys",
+ "miniz_oxide",
+ ]
+
+@@ -4890,6 +4891,16 @@ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
++[[package]]
++name = "libz-ng-sys"
++version = "1.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dd9f43e75536a46ee0f92b758f6b63846e594e86638c61a9251338a65baea63"
++dependencies = [
++ "cmake",
++ "libc",
++]
++
+ [[package]]
+ name = "libz-sys"
+ version = "1.1.12"
+@@ -4897,6 +4908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+ dependencies = [
+ "cc",
++ "cmake",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+@@ -9950,6 +9962,7 @@ dependencies = [
+ "kube",
+ "lapin",
+ "libc",
++ "libz-sys",
+ "listenfd",
+ "logfmt",
+ "loki-logproto",
+diff --git a/Cargo.toml b/Cargo.toml
+index 21d8aa1..069db37 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -253,7 +253,7 @@ dyn-clone = { version = "1.0.16", default-features = false }
+ encoding_rs = { version = "0.8.33", default-features = false, features = ["serde"] }
+ enum_dispatch = { version = "0.3.12", default-features = false }
+ exitcode = { version = "1.1.2", default-features = false }
+-flate2 = { version = "1.0.28", default-features = false, features = ["default"] }
++flate2 = { version = "1.0.28", default-features = false, features = ["zlib-ng"] }
+ futures-util = { version = "0.3.29", default-features = false }
+ glob = { version = "0.3.1", default-features = false }
+ governor = { version = "0.6.0", default-features = false, features = ["dashmap", "jitter", "std"], optional = true }
+@@ -318,7 +318,8 @@ typetag = { version = "0.2.13", default-features = false }
+ url = { version = "2.4.1", default-features = false, features = ["serde"] }
+ uuid = { version = "1", default-features = false, features = ["serde", "v4"] }
+ warp = { version = "0.3.6", default-features = false }
+-zstd = { version = "0.13.0", default-features = false }
++zstd = { version = "0.13.0", default-features = false, features = ["pkg-config"] }
++libz-sys = { version = "1.1.12", default-features = false, features = ["zlib-ng"] }
+ arr_macro = { version = "0.2.1" }
+
+ # depending on fork for bumped nix dependency
+@@ -385,7 +386,7 @@ default-cmake = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build
+ # Default features for *-pc-windows-msvc
+ # TODO: Enable SASL https://github.com/vectordotdev/vector/pull/3081#issuecomment-659298042
+ default-msvc = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "transforms", "enterprise"]
+-default-musl = ["api", "api-client", "enrichment-tables", "rdkafka?/cmake_build", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "enterprise"]
++default-musl = ["api", "api-client", "enrichment-tables", "rdkafka?/dynamic-linking", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi", "enterprise"]
+ default-no-api-client = ["api", "enrichment-tables", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "enterprise"]
+ default-no-vrl-cli = ["api", "sinks", "sources", "sources-dnstap", "transforms", "unix", "rdkafka?/gssapi-vendored", "enterprise"]
+ tokio-console = ["dep:console-subscriber", "tokio/tracing"]
diff --git a/testing/vector/vector.confd b/testing/vector/vector.confd
new file mode 100644
index 00000000000..412c44580a3
--- /dev/null
+++ b/testing/vector/vector.confd
@@ -0,0 +1,13 @@
+# vector service configuration options
+
+# extra arguments to pass to vector
+command_args=""
+
+# user:group to run the process with
+command_user="vector:vector"
+
+# where to store logs for vector process output
+#logfile="/var/log/vector.log"
+
+# comment to use traditional service management
+supervisor=supervise-daemon
diff --git a/testing/vector/vector.initd b/testing/vector/vector.initd
new file mode 100644
index 00000000000..daebc119cd0
--- /dev/null
+++ b/testing/vector/vector.initd
@@ -0,0 +1,38 @@
+#!/sbin/openrc-run
+
+: ${command_user:="vector:vector"}
+: ${logfile:="/var/log/$RC_SVCNAME.log"}
+
+name=vector
+description="Vector high-performance observability data pipeline"
+command="/usr/bin/vector"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+capabilities="^cap_net_bind_service"
+
+extra_started_commands="reload"
+description_reload="Reload vector daemon"
+
+output_log="$logfile"
+error_log="$logfile"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o $command_user /var/lib/vector
+ $command validate
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME"
+ $command validate
+ if [ -n "$supervisor" ]; then
+ $supervisor "$RC_SVCNAME" --signal HUP
+ else
+ start-stop-daemon --signal HUP --pidfile "$pidfile"
+ fi
+ eend $?
+}
diff --git a/testing/vector/vector.pre-install b/testing/vector/vector.pre-install
new file mode 100644
index 00000000000..e8ae285234a
--- /dev/null
+++ b/testing/vector/vector.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S vector 2>/dev/null
+adduser -S -D -h /var/lib/vector -s /sbin/nologin -G vector -g vector vector 2>/dev/null
+adduser vector adm 2>/dev/null
+
+exit 0
diff --git a/testing/vectoroids/APKBUILD b/testing/vectoroids/APKBUILD
new file mode 100644
index 00000000000..9efa75b358f
--- /dev/null
+++ b/testing/vectoroids/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=vectoroids
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Vector-based rock-shooting"
+url="http://www.newbreedsoftware.com/vectoroids/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="libmikmod"
+makedepends="sdl12-compat-dev sdl_image-dev sdl_mixer-dev"
+subpackages="$pkgname-doc"
+options="!check" # No test suite
+source="https://github.com/antonialoytorrens/nbs/raw/master/unix/x/vectoroids/src/vectoroids-$pkgver.tar.gz
+ vectoroids.desktop
+ vectoroids-icon.xpm
+ "
+
+build() {
+ make DATA_PREFIX=/usr/share/games/vectoroids/
+}
+
+package() {
+ make install \
+ DATA_PREFIX="$pkgdir"/usr/share/games/vectoroids \
+ BIN_PREFIX="$pkgdir"/usr/bin \
+ MAN_PREFIX="$pkgdir"/usr/share/man
+ install -Dm644 "$srcdir"/vectoroids-icon.xpm \
+ "$pkgdir"/usr/share/pixmaps/vectoroids-icon.xpm
+ install -Dm664 "$srcdir"/vectoroids.desktop \
+ "$pkgdir"/usr/share/applications/vectoroids.desktop
+}
+
+sha512sums="d392f996c77cb7b02b25c8273623b71681c181a3d7078b6cd0068afb1ef03e7d3553c2cc662a272465882e06f73208a68665197d4dcc2206888e2768f768997d vectoroids-1.1.0.tar.gz
+fde69036c2273c01a623e762e88d541e3e5ee5ac3b07163525b7d72f25a2caf4b81f0f954c2a415993d5e04763b2259c92ff2a6c78a94c9b936411addeaa22de vectoroids.desktop
+a47d267547e766549e5425eef48442370903120b02e5c18ba92c08a6448637fd5d8e3814856990630fccf6cf407c10ccf4ef360108e284ebd0b706526c774395 vectoroids-icon.xpm"
diff --git a/testing/vectoroids/vectoroids-icon.xpm b/testing/vectoroids/vectoroids-icon.xpm
new file mode 100644
index 00000000000..5e8d621addc
--- /dev/null
+++ b/testing/vectoroids/vectoroids-icon.xpm
@@ -0,0 +1,49 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 11 1",
+" c black",
+". c #191919",
+"X c gray20",
+"o c #00007f",
+"O c #4c4c4c",
+"+ c #666667",
+"@ c gray50",
+"# c blue",
+"$ c gray60",
+"% c #b2b2b2",
+"& c None",
+/* pixels */
+"&&&& &&& &&&&&&&&&&&&&& &&&&&&&&",
+"&& &&XOX&&&&&&&&&&& XO& &&&&&",
+"&& &+@X$O& &&&&& &.+++&&&&&&&&",
+"&&& @ &.+&.&&&&&&&&+@O X+++. &",
+"& &+O& .+& &&&&&..+@ &&+OOX&&&&",
+"& &@. @O& &&&& @++ && &&X$XXX.",
+"& &X@&&+&&&&&&&.+&&&&&&& &X$++X",
+"&& &.+++ &&&&& XO &&&&&& &. O.",
+"&&& &. &&&&&&& &XX& &&&&&& & O.",
+"&&&&&&&&&&&&&&& +O& &&&&&& OO&",
+"&&&&&&&&&&&&&& &.@. &&&&&& &XO ",
+"&&&&&&&&&&&&&& &XO& &&&&& .+@X&",
+"&&&&&&&&&& .&& &.$.&.&&&&&&&+ &",
+"&&&&&&&&& &&&&&.&XO& &&&.XXO+& &",
+"&&&&&&&& &o#&&& &OX& &.@OXX& &",
+"&&&&&&& X$$ && &.$.&&& .O&&&&&&",
+"&&&&&&& &#o@.&&& O++X &.+ &&&",
+"&&&&&& &O$X#.&&&&&&&O@+XOX &&&&",
+"&&&&& &O$o&@.&&&&& & XOX& &&&&&",
+"&&&& &#.&.#.&&&&&&& &&&& &&&&&&",
+"&&& @$& &#.&&&&&&&& &&&&&&&",
+"&&&..##.. &$ &&&&&&&&&&&. &&&&&",
+"&& &o@. &#.&&&&&&&&& &&&&&&&&&",
+"&&& %o &&.&$.&&&&&&&& &.++X& &&&",
+" .#$&&.o&&#.&&&&&&& & ++.@. &&",
+".&+#&oo$$o @.&&&&&& $.&&&+.&&&",
+" X$+$#o+o@&$.&&&&&& &O+ &O &&&",
+"&o#+o.&&o$.@ &&&&&& &XX & O$ &&&",
+"&& &&& . o@#.&&&&&&& O@.X$.& &&",
+"&&& & X#% &&&&&&&&&& OO.& &&&",
+"&&&&&&&& &#$ &&&&&&&&& & .& &&&&",
+"&&&&&&&& ..&&&&&&&&&&&&&& &&&&&"
+};
diff --git a/testing/vectoroids/vectoroids.desktop b/testing/vectoroids/vectoroids.desktop
new file mode 100644
index 00000000000..d89c51a3676
--- /dev/null
+++ b/testing/vectoroids/vectoroids.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Vectoroids
+Comment=A clone of the classic arcade game "Asteroids"
+Exec=vectoroids --fullscreen
+Icon=vectoroids-icon
+Terminal=false
+Type=Application
+Categories=Application;Game;ArcadeGame;
+Keywords=Game;ArcadeGame;
diff --git a/testing/venc/APKBUILD b/testing/venc/APKBUILD
new file mode 100644
index 00000000000..8c8383d4978
--- /dev/null
+++ b/testing/venc/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Guy Godfroy <guy.godfroy@gugod.fr>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=venc
+_pkgname=VenC
+pkgver=3.1.1
+pkgrel=1
+pkgdesc="Static blog generator"
+url="https://venc.software/"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="py3-yaml py3-unidecode"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+source="$_pkgname-v$pkgver.tar.gz::https://framagit.org/denissalem/VenC/-/archive/v$pkgver/$_pkgname-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-v$pkgver/src"
+options="!check" # broken test scripts
+subpackages="$pkgname-pyc"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+fa4b34a53ff24074eb084a3e1c4b8b0b950e7bbcb03b88d4d11721a21b275f2092280dc1bbf2eaef8859fbf7dfdcb9ba5a3843e348b9328c5930f7f0524cde07 VenC-v3.1.1.tar.gz
+"
diff --git a/testing/vera++/APKBUILD b/testing/vera++/APKBUILD
new file mode 100644
index 00000000000..f86fc03244d
--- /dev/null
+++ b/testing/vera++/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=vera++
+pkgver=1.3.0
+pkgrel=10
+pkgdesc="tool for verification, analysis and transformation of C++ source code"
+url="https://bitbucket.org/verateam/vera"
+arch="all"
+license="BSL-1.0"
+makedepends="cmake ninja tcl-dev tk-dev python3-dev boost-dev lua-dev"
+# documentation relies on pandoc, which is x86_64 only and currently broken
+#subpackages="$pkgname-doc"
+source="
+ https://bitbucket.org/verateam/vera/downloads/vera%2B%2B-$pkgver.tar.gz
+
+ fix-not-declared-in-this-scope.patch
+ drop-failing-ruledump-test.patch
+ "
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DVERA_LUA=OFF \
+ -DVERA_USE_SYSTEM_BOOST=ON \
+ -DVERA_USE_SYSTEM_PYTHON=ON \
+ -DPYTHON_EXECUTABLE=/usr/bin/python3 \
+
+ cmake --build build
+}
+
+check() {
+ cmake --build build --target test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+4057deaa45439b4965aee9810ffa429e984fe201173ac87fa8cdc7c39f3f8dd258abf550433d4fb0c6751aaf26f564349587e191d2797e5b318a46f0b5fb5a9e vera%2B%2B-1.3.0.tar.gz
+1772d67467a50df04c9d1b56c13c9e86836582dfe7ca0f914dd5d2b8ee6622a4e1e7243bacf7c82a6367a53d81a3c3dc84b1575b2928c5a7ac5134693debb854 fix-not-declared-in-this-scope.patch
+4456fec1aad874e758d146f29bc1df36896d0b8157c2705c230c2c513f6ef0ce50dcf4e0035e3cd813449722bc906082acc395bfbdffc4ca4ac3109ea90ea516 drop-failing-ruledump-test.patch
+"
diff --git a/testing/vera++/drop-failing-ruledump-test.patch b/testing/vera++/drop-failing-ruledump-test.patch
new file mode 100644
index 00000000000..4c188812510
--- /dev/null
+++ b/testing/vera++/drop-failing-ruledump-test.patch
@@ -0,0 +1,34 @@
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -586,31 +586,6 @@
+ 63: full block {} expected in the control structure
+ 64: full block {} expected in the control structure")
+
+-vera_add_test(RuleDUMP
+- "" "Tokens in file ${CMAKE_CURRENT_SOURCE_DIR}/T017.cpp:
+-1/0\tnamespace\tnamespace
+-1/9\tnewline\t
+-
+-2/0\tleftbrace\t{
+-2/1\tnewline\t
+-
+-3/0\tcppcomment\t// some stuff here
+-
+-4/0\tmsext_stdcall\t__stdcall
+-4/9\tnewline\t
+-
+-5/0\trightbrace\t}
+-5/1\tnewline\t
+-
+-6/0\teof\t
+-
+-"
+- "" 0
+- --rule DUMP
+- --root "${CMAKE_SOURCE_DIR}"
+- ${CMAKE_CURRENT_SOURCE_DIR}/T017.cpp
+-)
+-
+ vera_add_test(ErrorReport
+ "" "" "vera++: can't read \"auie\": no such variable
+ while executing
diff --git a/testing/vera++/fix-not-declared-in-this-scope.patch b/testing/vera++/fix-not-declared-in-this-scope.patch
new file mode 100644
index 00000000000..d8360652ad2
--- /dev/null
+++ b/testing/vera++/fix-not-declared-in-this-scope.patch
@@ -0,0 +1,11 @@
+--- a/src/plugins/python/PythonInterpreter.cpp
++++ b/src/plugins/python/PythonInterpreter.cpp
+@@ -133,7 +133,7 @@
+ {
+ try
+ {
+- PyImport_AppendInittab("vera", initvera);
++ PyImport_AppendInittab("vera", PyInit_vera);
+ Py_Initialize();
+
+ py::object main_module = py::import("__main__");
diff --git a/testing/veracrypt/APKBUILD b/testing/veracrypt/APKBUILD
deleted file mode 100644
index 95c10a722e0..00000000000
--- a/testing/veracrypt/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Sascha Paunovic <azarus@posteo.net>
-# Maintainer: Sascha Paunovic <azarus@posteo.net>
-pkgname=veracrypt
-_pkgname=VeraCrypt
-pkgver=1.22
-pkgrel=6
-pkgdesc="disk encryption with strong security based on TrueCrypt"
-url="https://www.veracrypt.fr/"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # issues on linking
-license="Apache-2.0"
-depends="device-mapper"
-makedepends="fuse-dev wxgtk-dev libsm-dev yasm"
-options="!check" # no test suite provided
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.bz2::https://launchpad.net/veracrypt/trunk/$pkgver/+download/${_pkgname}_${pkgver}_Source.tar.bz2
- sysmacros.patch
- "
-builddir="$srcdir/"
-
-build() {
- cd "$builddir"/src
- make TC_EXTRA_LFLAGS="-ldl $LDFLAGS" \
- TC_EXTRA_CXXFLAGS="$CXXFLAGS $CPPFLAGS" \
- TC_EXTRA_CFLAGS="$CFLAGS $CPPFLAGS"
-}
-
-package() {
- cd "$builddir"/src
- install -Dm 755 Main/$pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm 644 Resources/Icons/VeraCrypt-256x256.xpm \
- "$pkgdir"/usr/share/pixmaps/veracrypt.xpm
- install -Dm 644 License.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
- mkdir -p "$pkgdir"/usr/share/applications
- cat >> "$pkgdir"/usr/share/applications/veracrypt.desktop <<-EOF
- [Desktop Entry]
- Type=Application
- Exec=veracrypt
- Icon=veracrypt.xpm
- Comment=Disk encryption with strong security based on TrueCrypt
- Terminal=false
- Name=VeraCrypt
- StartupNotify=true
- Categories=System;Administration;
- EOF
-}
-
-sha512sums="08795a42ab4eddb4792538d0207e6a45efad967abe257ba0a722b15f5bd43736f5e7cdce80b6c641dc1587c75f8f2b9b314f67e787a5a99031b5b47eea159b3d veracrypt-1.22.tar.bz2
-34cbd10e3de5c0248a4d634e42a592b71c7c83e3edd4dd2ae05cc29bc7f9b3f71f85d32bbc5dcd68df9478a3fa2a0357ffbc9262baf76bf767c83b517ae29a09 sysmacros.patch"
diff --git a/testing/veracrypt/sysmacros.patch b/testing/veracrypt/sysmacros.patch
deleted file mode 100644
index 84d89694e5e..00000000000
--- a/testing/veracrypt/sysmacros.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/Platform/Unix/FilesystemPath.cpp b/src/Platform/Unix/FilesystemPath.cpp
-index d6c9cd2..7c28af4 100644
---- a/src/Platform/Unix/FilesystemPath.cpp
-+++ b/src/Platform/Unix/FilesystemPath.cpp
-@@ -15,6 +15,7 @@
- #include "Platform/StringConverter.h"
- #include <stdio.h>
- #include <sys/stat.h>
-+#include <sys/sysmacros.h>
-
- namespace VeraCrypt
- {
-
diff --git a/testing/vfd-configurations/APKBUILD b/testing/vfd-configurations/APKBUILD
new file mode 100644
index 00000000000..17e8e0176d7
--- /dev/null
+++ b/testing/vfd-configurations/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Petr Hodina <phodina@protonmail.com>
+# Maintainer: Petr Hodina <phodina@protonmail.com>
+pkgname=vfd-configurations
+pkgver=0_git20230612
+pkgrel=0
+_gitrev=beea98634cf9a4c7f70f6b565158ff7140c357f6
+pkgdesc="Collection of configuration files for linux devices with a front facing display"
+url="https://github.com/arthur-liberman/vfd-configurations"
+arch="noarch"
+license="GPL-3.0-or-later"
+source="vfd-configurations-$_gitrev.tar.gz::https://github.com/arthur-liberman/vfd-configurations/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # has no test suite
+
+package() {
+ install -Dm644 ./*.conf -t "$pkgdir"/usr/share/$pkgname/
+ cp -r kvim2 "$pkgdir"/usr/share/$pkgname/
+ cp -r le-potato "$pkgdir"/usr/share/$pkgname/
+ cp -r odroid-c2 "$pkgdir"/usr/share/$pkgname/
+ cp -r odroid-hc4 "$pkgdir"/usr/share/$pkgname/
+ cp -r odroid-n2 "$pkgdir"/usr/share/$pkgname/
+}
+
+sha512sums="
+bda1ed5a405b12e35278853b88c270d631deebc46c0ac6995bb54f38865d91a4cebdca615002a984600aeb655b771307994379058658551211e9337ae42863ac vfd-configurations-beea98634cf9a4c7f70f6b565158ff7140c357f6.tar.gz
+"
diff --git a/testing/vice/APKBUILD b/testing/vice/APKBUILD
index 8482b1b62ca..825f0e9049a 100644
--- a/testing/vice/APKBUILD
+++ b/testing/vice/APKBUILD
@@ -1,24 +1,49 @@
# Contributor: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
# Maintainer: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
pkgname=vice
-pkgver=3.4
+pkgver=3.8
pkgrel=0
pkgdesc="emulates the C64/DTV, C128, VIC20, almost all PETs, PLUS4 and CBM-II"
-url="http://vice-emu.sourceforge.net/"
+url="https://vice-emu.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="gtk+3.0-dev glew-dev giflib-dev ffmpeg-dev jpeg-dev libpng-dev alsa-lib-dev
- linux-headers texinfo automake autoconf bison flex xa bdftopcf mkfontdir
- bash"
-subpackages="$pkgname-doc"
+makedepends="
+ alsa-lib-dev
+ autoconf
+ automake
+ bash
+ bdftopcf
+ bison
+ curl-dev
+ ffmpeg4-dev
+ flex
+ giflib-dev
+ glew-dev
+ gtk+3.0-dev
+ jpeg-dev
+ libpng-dev
+ linux-headers
+ texinfo
+ xa
+ "
source="https://downloads.sourceforge.net/vice-emu/vice-$pkgver.tar.gz
disable-fc-cache.patch
- fix__u_char.patch"
+ "
+
+# Starting with version 3.8, only PDF docs are installed to
+# /usr/share/doc/vice, texlive is required to generate that
+case "$CARCH" in
+ppc64le|s390x|riscv64)
+ ;;
+*)
+ makedepends="$makedepends texlive"
+ subpackages="$subpackages $pkgname-doc"
+ _extra_opts="--enable-pdf-docs"
+ ;;
+esac
prepare() {
- sed -i 's/\r//' "$builddir/src/opencbm.h"
default_prepare
- sed -i 's/lib64/lib/g' configure.ac
autoreconf -fi
}
@@ -28,18 +53,21 @@ build() {
--enable-native-gtk3ui \
--enable-x64 \
--disable-no-pic \
- --enable-external-ffmpeg
+ --without-pulse \
+ --enable-external-ffmpeg \
+ $_extra_opts
make
}
package() {
- make DESTDIR="$pkgdir" realdocdir="/usr/share/doc/vice" install
+ make DESTDIR="$pkgdir" install
}
check() {
make -C "$builddir" check
}
-sha512sums="3d42e7bbe15ec6efac918d11e354052048dac8efdeedc64bb724cb8aaf2dd8ec7a2fc176ddbc93722ce7c680f06d3966efc10587c24e9643238315ded025c4b8 vice-3.4.tar.gz
+sha512sums="
+fe644667736c32386b62af53314a95bf510c75d476eaab14b4c37693f2f57d6815126ab3db2f0cb11300c1a4a07c29b3f25210800ce97a673a0460ab59d0ebba vice-3.8.tar.gz
ed6fee34eefcb04c42b4575591dfeffca8548eae354dee66dabdbc4abac0311cbbedcdc07cdfcb01da4840d57ab331a31583e17160820462a2c064835a75d75d disable-fc-cache.patch
-3132be50c402068865b530ed9df71a073012623ce48e3fa162f33af7bdcdd6d890590955868bb5591e018c17359e860ccff9eb0cde9bfd99582ac921400e8f2f fix__u_char.patch"
+"
diff --git a/testing/vice/fix__u_char.patch b/testing/vice/fix__u_char.patch
deleted file mode 100644
index 046ae82a05f..00000000000
--- a/testing/vice/fix__u_char.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ru a/src/opencbm.h b/src/opencbm.h
---- a/src/opencbm.h 2016-11-14 00:23:10.000000000 +0100
-+++ b/src/opencbm.h 2017-01-20 19:54:12.098939871 +0100
-@@ -131,6 +131,9 @@
-
- #endif
-
-+/* There is no __u_char on alpine linux */
-+#define __u_char unsigned char /*!< __u_char as unsigned char */
-+
- /* specifiers for the IEC bus lines */
- #define IEC_DATA 0x01 /*!< Specify the DATA line */
- #define IEC_CLOCK 0x02 /*!< Specify the CLOCK line */
diff --git a/testing/victoria-metrics/APKBUILD b/testing/victoria-metrics/APKBUILD
deleted file mode 100644
index bd4e948d0f8..00000000000
--- a/testing/victoria-metrics/APKBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Contributor: Konstantin Kulikov <k.kulikov2@gmail.com>
-# Maintainer: Konstantin Kulikov <k.kulikov2@gmail.com>
-pkgname=victoria-metrics
-pkgver=1.36.2
-pkgrel=0
-provides=victoriametrics
-pkgdesc="Fast, cost-effective and scalable time series database"
-url="https://github.com/VictoriaMetrics/VictoriaMetrics"
-# Test failures on other archs, FP precision mostly.
-arch="x86_64"
-license="Apache-2.0"
-makedepends="go"
-subpackages="$pkgname-openrc $pkgname-tools:_tools $pkgname-backup-tools:_backup_tools"
-install="$pkgname.pre-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/VictoriaMetrics/VictoriaMetrics/archive/v$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd
- "
-builddir="$srcdir/VictoriaMetrics-$pkgver"
-
-# Depends on cgo zstd package that ships prebuilt object files built against glibc.
-# It is possible to rebuild it against musl, but
-# pure go zstd lib works well enough and is not written in C.
-export CGO_ENABLED=0
-
-export GOPATH=${GOPATH:-$srcdir/go}
-export GOCACHE=${GOCACHE:-$srcdir/go-build}
-export GOTMPDIR=${GOTMPDIR:-$srcdir}
-
-build() {
- local ldflags="-w -s -X github.com/VictoriaMetrics/VictoriaMetrics/lib/buildinfo.Version=$pkgver"
- local bin
- for bin in victoria-metrics vmagent vmalert vmauth vmrestore vmbackup; do
- go build -mod=vendor -ldflags="$ldflags" -o bin/$bin ./app/$bin
- done
-}
-
-check() {
- go test -short -mod=vendor ./...
-}
-
-package() {
- install -Dm755 $builddir/bin/$pkgname $pkgdir/usr/bin/$pkgname
- install -Dm755 $srcdir/$pkgname.initd $pkgdir/etc/init.d/$pkgname
- install -Dm644 $srcdir/$pkgname.confd $pkgdir/etc/conf.d/$pkgname
-}
-
-_tools() {
- pkgdesc="$pkgdesc (vmagent, vmalert, vmauth)"
- install -Dm755 $builddir/bin/vmagent $subpkgdir/usr/bin/vmagent
- install -Dm755 $builddir/bin/vmalert $subpkgdir/usr/bin/vmalert
- install -Dm755 $builddir/bin/vmauth $subpkgdir/usr/bin/vmauth
-}
-
-_backup_tools() {
- pkgdesc="$pkgdesc (vmbackup, vmrestore)"
- install -Dm755 $builddir/bin/vmbackup $subpkgdir/usr/bin/vmbackup
- install -Dm755 $builddir/bin/vmrestore $subpkgdir/usr/bin/vmrestore
-}
-
-sha512sums="99e127bf417a7d2d424ae113c79a3f694afb5fff159e43fc4d87a525333deb911c8a052d72671127923af94a912af9eecb8ba2dcbc3ee3e99368f366a587760f victoria-metrics-1.36.2.tar.gz
-6e6fee6240abf9aab9a6c6174bf44394cd09c6e0c5b2743bef520ee6660f48f209e8f2f12c79b4d8546f2d1468d90409dac9c2b693218bede516a0f715c64c48 victoria-metrics.initd
-0b5150faf35695f61255e957757c560bf92f0c75317a61a900a6a179e18d918ed5bd7d1405053f10fd93c64ae0e873ab0855044abcab9883bbe3d32ba1079041 victoria-metrics.confd"
diff --git a/testing/victoria-metrics/victoria-metrics.confd b/testing/victoria-metrics/victoria-metrics.confd
deleted file mode 100644
index e830a4575ef..00000000000
--- a/testing/victoria-metrics/victoria-metrics.confd
+++ /dev/null
@@ -1,18 +0,0 @@
-# Home variable is used by init.d script to precreate db dir with correct user.
-# Unset if you want to manage it manually.
-victoriametrics_home=/var/lib/victoria-metrics
-
-# Daemon options. See "victoria-metrics -help" for list.
-#
-# Using mmap in go can stall goroutines. VM includes workaround that depends on cgo,
-# but alpine package is built without cgo. Disabling mmap may yield better performance.
-# See: https://github.com/VictoriaMetrics/VictoriaMetrics/blob/baedb25936669179fa726639e267a52d8cdfedc2/lib/fs/copy_mmap_nocgo.go#L7
-victoriametrics_opts="-storageDataPath $victoriametrics_home -httpListenAddr 127.0.0.1:8428 -fs.disableMmap"
-
-# Uncomment both lines if you want logs to go to syslog
-#error_logger="logger -t $RC_SVCNAME"
-#rc_need=logger
-
-# Depending on workload daemon may take some time to stop.
-# Uncomment variable below to increase stop wait time (value is in seconds).
-#retry=10
diff --git a/testing/victoria-metrics/victoria-metrics.initd b/testing/victoria-metrics/victoria-metrics.initd
deleted file mode 100644
index 080f5b15a4c..00000000000
--- a/testing/victoria-metrics/victoria-metrics.initd
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/sbin/openrc-run
-
-name="Victoria Metrics"
-description="Fast, cost-effective and scalable time series database"
-
-command="/usr/bin/victoria-metrics"
-command_args="$victoriametrics_opts"
-command_user=victoriametrics:victoriametrics
-command_background=yes
-pidfile="/run/$RC_SVCNAME.pid"
-
-depend() {
- need net
- after firewall
-}
-
-start_pre() {
- if [ -n "$victoriametrics_home" ]; then
- checkpath -d -o $command_user -m755 "$victoriametrics_home"
- fi
-}
diff --git a/testing/victoria-metrics/victoria-metrics.pre-install b/testing/victoria-metrics/victoria-metrics.pre-install
deleted file mode 100644
index 183c53eea88..00000000000
--- a/testing/victoria-metrics/victoria-metrics.pre-install
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-name=victoriametrics
-
-addgroup -S "$name" 2>/dev/null
-adduser -S -D -H -h /var/lib/victoria-metrics -s /sbin/nologin -G $name -g $name $name 2>/dev/null
-
-exit 0
diff --git a/testing/vidcutter/APKBUILD b/testing/vidcutter/APKBUILD
index 2219d423256..1c8fac60af5 100644
--- a/testing/vidcutter/APKBUILD
+++ b/testing/vidcutter/APKBUILD
@@ -1,16 +1,25 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=vidcutter
-pkgver=6.0.0
-pkgrel=4
+pkgver=6.0.5.1
+pkgrel=5
pkgdesc="A modern, simple to use, constantly evolving and hella fast MEDIA CUTTER"
url="https://vidcutter.ozmartians.com"
arch="all !armhf" # Blocked by py3-qt5 -> qt5-qtdeclarative
license="GPL-3.0-or-later"
depends="python3 ffmpeg mediainfo py3-qt5 py3-opengl"
-subpackages="$pkgname-doc"
-makedepends="mpv-dev python3-dev py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ozmartian/vidcutter/archive/$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-pyc"
+makedepends="cython mpv-dev python3-dev py3-setuptools"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ozmartian/vidcutter/archive/$pkgver.tar.gz
+ pyqt5-5.15.8.patch
+ $pkgname-libmpv2-1.patch::https://github.com/ozmartian/vidcutter/commit/1d88825feb5a73a50d019914ba9d0008562a58ce.patch
+ "
+
+prepare() {
+ default_prepare
+
+ rm vidcutter/libs/pympv/mpv.c
+}
build() {
python3 setup.py build
@@ -21,7 +30,11 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="9970d9918cca9a7681bc5ca8d8b5d16212cf3dad0f2bc3e9c6727340c340801696dcb7ff4e901c2c0a25b86e9cb165bb3f783c18b4a8fd5f4ddba8490a7fd7a0 vidcutter-6.0.0.tar.gz"
+sha512sums="
+f2ea2a86d9eaa3c6593e785daad6869c151baa1add529c9edaf2282f7acad762fbb29804790aece5e4fcd89e9e9bc77f61d1f0b68a1b1f3ecf58951ee8f200e9 vidcutter-6.0.5.1.tar.gz
+b87193045ba826a1ce29d4c32f5c7da6e791117c66ba32bc6740a08f09f28cdbeec597215121ccc7b9958f81bf299a0fa14e3f8c8200a8e355e08f948601b95f pyqt5-5.15.8.patch
+063908bf939c03952d623cc0ae7ea301d4605660a548e3088f6c901f3d98cf13a5e49180414c8a1c05931d9c4ca2a251858951676632768ff30954a6df7a4e4a vidcutter-libmpv2-1.patch
+"
diff --git a/testing/vidcutter/pyqt5-5.15.8.patch b/testing/vidcutter/pyqt5-5.15.8.patch
new file mode 100644
index 00000000000..5f2251de35c
--- /dev/null
+++ b/testing/vidcutter/pyqt5-5.15.8.patch
@@ -0,0 +1,17 @@
+diff --git a/vidcutter/about.py b/vidcutter/about.py
+index 4c8ea44..102f8b3 100644
+--- a/vidcutter/about.py
++++ b/vidcutter/about.py
+@@ -26,7 +26,11 @@ import logging
+ import sys
+ from datetime import datetime
+
+-from PyQt5.Qt import PYQT_VERSION_STR
++# import changed in PyQt 5.15.8, so try both
++try:
++ from PyQt5.Qt import PYQT_VERSION_STR
++except ImportError:
++ from PyQt5.QtCore import PYQT_VERSION_STR
+ from PyQt5.QtCore import QFile, QObject, QSize, QTextStream, Qt
+ from PyQt5.QtGui import QPixmap
+ from PyQt5.QtWidgets import (QDialog, QDialogButtonBox, QHBoxLayout, QLabel, QScrollArea, QSizePolicy, QStyleFactory,
diff --git a/testing/video-trimmer/APKBUILD b/testing/video-trimmer/APKBUILD
new file mode 100644
index 00000000000..9d9630cb202
--- /dev/null
+++ b/testing/video-trimmer/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=video-trimmer
+pkgver=0.8.2
+pkgrel=0
+pkgdesc="Trim videos quickly"
+url="https://gitlab.gnome.org/YaLTeR/video-trimmer"
+# s390x, riscv64: blocked by blueprint-compiler
+arch="all !s390x !riscv64"
+license="GPL-3.0-or-later"
+depends="gst-libav"
+makedepends="
+ blueprint-compiler
+ cargo
+ desktop-file-utils
+ gtk4.0-dev
+ libadwaita-dev
+ meson
+ "
+subpackages="$pkgname-lang"
+source="https://gitlab.gnome.org/YaLTeR/video-trimmer/-/archive/v$pkgver/video-trimmer-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+4d46842b9c846b5724b7e685b2eebfc8877d97c96849d931270affa27ee0dc1f69b72a34e44dcb68d6179f4fe3a8cee49b0f872ddcc3da5f02717daec8c993f3 video-trimmer-v0.8.2.tar.gz
+"
diff --git a/testing/vidstab/APKBUILD b/testing/vidstab/APKBUILD
deleted file mode 100644
index 2b62075cf8a..00000000000
--- a/testing/vidstab/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=vidstab
-_pkgname=vid.stab
-pkgver=1.1.0
-pkgrel=1
-arch="all"
-url="http://public.hronopik.de/vid.stab/"
-pkgdesc="Video stabilization library"
-license="GPL-2.0-or-later"
-makedepends="cmake"
-source="$pkgname-$pkgver.tar.gz::https://github.com/georgmartius/vid.stab/archive/v$pkgver.tar.gz"
-subpackages="$pkgname-dev"
-options="!check" # No tests
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- cmake \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib
- make
-}
-
-check() {
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="e82a4b6dd854b8415952cc0a8bdea06c01ff40a497c8e98177831e29031ec535b9f47cc30d5444c47bfd91871615a1662e3991185e9eb179acf37ea601073cdf vidstab-1.1.0.tar.gz"
diff --git a/testing/viewnior/APKBUILD b/testing/viewnior/APKBUILD
index d67603ed040..d5e6d8a9d04 100644
--- a/testing/viewnior/APKBUILD
+++ b/testing/viewnior/APKBUILD
@@ -1,36 +1,36 @@
# Contributor: August Klein <amatcoder@gmail.com>
# Maintainer: August Klein <amatcoder@gmail.com>
pkgname=viewnior
-_pkgname=Viewnior
-pkgver=1.7
-pkgrel=2
-pkgdesc="A fast and simple image viewer"
+pkgver=1.8
+pkgrel=1
+pkgdesc="Fast and simple image viewer"
url="http://siyanpanayotov.com/project/viewnior"
arch="all"
-license="GPL-3.0"
-depends=""
-makedepends="gnome-common meson ninja gtk+2.0-dev exiv2-dev desktop-file-utils"
+license="GPL-3.0-or-later"
+makedepends="
+ desktop-file-utils
+ exiv2-dev
+ gtk+2.0-dev
+ meson
+ "
subpackages="$pkgname-lang $pkgname-doc"
-source="https://github.com/hellosiyan/$_pkgname/archive/$pkgname-$pkgver.tar.gz"
-
-builddir="$srcdir"/$_pkgname-$pkgname-$pkgver
-
-prepare() {
- cd "$builddir"
- mkdir builddir
-}
+source="https://github.com/hellosiyan/Viewnior/archive/viewnior-$pkgver.tar.gz
+ exiv2-0.28.patch
+ "
+builddir="$srcdir"/Viewnior-$pkgname-$pkgver
build() {
- cd "$builddir"
- meson builddir \
- --prefix=/usr \
- --buildtype=plain
- ninja -C builddir
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
}
package() {
- cd "$builddir"
- DESTDIR="$pkgdir" ninja -C builddir install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="5ba17d7b5ceeffa65b04213f179c1439b09ac44e412e0750dde159b118a714f28d3a290509a402b234e4e7ba5b185fc73eef65d418598f344911e4e2c1373fe5 viewnior-1.7.tar.gz"
+sha512sums="
+0f9698801172ef6b8f5df4132526b2e605e9aa9fd69cf41a091a3623de9b2e84ca857e625aaa9e83f29df318f70a13fb458bac0df11ae46837b78ef257a00bee viewnior-1.8.tar.gz
+d1d83b1e0ef909f141e2e61fabdf11e9db6fb22caf61fb6ed0c002aac141750dd0a6f3c84df9a9354f473a80e816283fb24938c7cf9ff97fbdfc4be26aa843ff exiv2-0.28.patch
+"
diff --git a/testing/viewnior/exiv2-0.28.patch b/testing/viewnior/exiv2-0.28.patch
new file mode 100644
index 00000000000..71459dee157
--- /dev/null
+++ b/testing/viewnior/exiv2-0.28.patch
@@ -0,0 +1,147 @@
+Patch-Source: https://gitlab.archlinux.org/archlinux/packaging/packages/viewnior/-/blob/f206ce6c22a3ec5f1f9ea1bde4077584f80458dd/exiv2-0.28.patch
+--
+From b6bb81a1b46e911d15bbf9a730972523de177705 Mon Sep 17 00:00:00 2001
+From: tastytea <tastytea@tastytea.de>
+Date: Tue, 16 May 2023 10:54:40 +0200
+Subject: [PATCH 1/2] change exiv2 AutoPtr to unique_ptr
+
+exiv2-0.28.0 removed Exiv2::Image::AutoPtr and added
+Exiv2::Image::UniquePtr instead. since it's a typedef for
+std::unique_ptr<Image>, i'm using that directly instead of adding a
+condition on the exiv2 version.
+---
+ src/uni-exiv2.cpp | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/src/uni-exiv2.cpp b/src/uni-exiv2.cpp
+index 0d14b9f..77064c2 100644
+--- a/src/uni-exiv2.cpp
++++ b/src/uni-exiv2.cpp
+@@ -22,12 +22,13 @@
+
+ #include <exiv2/exiv2.hpp>
+ #include <iostream>
++#include <memory>
+
+ #include "uni-exiv2.hpp"
+
+ #define ARRAY_SIZE(array) (sizeof array/sizeof(array[0]))
+
+-static Exiv2::Image::AutoPtr cached_image;
++static std::unique_ptr<Exiv2::Image> cached_image;
+
+ extern "C"
+ void
+@@ -35,8 +36,8 @@ uni_read_exiv2_map(const char *uri, void (*callback)(const char*, const char*, v
+ {
+ Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute);
+ try {
+- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(uri);
+- if ( image.get() == 0 ) {
++ std::unique_ptr<Exiv2::Image> image = Exiv2::ImageFactory::open(uri);
++ if (image == nullptr) {
+ return;
+ }
+
+@@ -91,14 +92,14 @@ uni_read_exiv2_to_cache(const char *uri)
+ {
+ Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute);
+
+- if ( cached_image.get() != NULL ) {
++ if (cached_image != nullptr) {
+ cached_image->clearMetadata();
+- cached_image.reset(NULL);
++ cached_image.reset(nullptr);
+ }
+
+ try {
+ cached_image = Exiv2::ImageFactory::open(uri);
+- if ( cached_image.get() == 0 ) {
++ if (cached_image == nullptr) {
+ return 1;
+ }
+
+@@ -116,13 +117,13 @@ uni_write_exiv2_from_cache(const char *uri)
+ {
+ Exiv2::LogMsg::setLevel(Exiv2::LogMsg::mute);
+
+- if ( cached_image.get() == NULL ) {
++ if (cached_image == nullptr) {
+ return 1;
+ }
+
+ try {
+- Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(uri);
+- if ( image.get() == 0 ) {
++ std::unique_ptr<Exiv2::Image> image = Exiv2::ImageFactory::open(uri);
++ if (image == nullptr) {
+ return 2;
+ }
+
+@@ -130,7 +131,7 @@ uni_write_exiv2_from_cache(const char *uri)
+ image->writeMetadata();
+
+ cached_image->clearMetadata();
+- cached_image.reset(NULL);
++ cached_image.reset(nullptr);
+
+ return 0;
+ } catch (Exiv2::AnyError& e) {
+
+From 47d0b98cb46526aa8aa035bebcabc14a11fa57ee Mon Sep 17 00:00:00 2001
+From: tastytea <tastytea@tastytea.de>
+Date: Tue, 16 May 2023 11:17:00 +0200
+Subject: [PATCH 2/2] add support for exiv-0.28.0 errors
+
+exiv2-0.28.0 changed Exiv2::AnyError to Exiv2::Error.
+---
+ src/uni-exiv2.cpp | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/src/uni-exiv2.cpp b/src/uni-exiv2.cpp
+index 77064c2..567a50f 100644
+--- a/src/uni-exiv2.cpp
++++ b/src/uni-exiv2.cpp
+@@ -28,6 +28,15 @@
+
+ #define ARRAY_SIZE(array) (sizeof array/sizeof(array[0]))
+
++#define EXIV_ERROR Exiv2::AnyError
++#ifdef EXIV2_VERSION
++ #ifdef EXIV2_TEST_VERSION
++ #if EXIV2_TEST_VERSION(0,28,0)
++ #define EXIV_ERROR Exiv2::Error
++ #endif
++ #endif
++#endif
++
+ static std::unique_ptr<Exiv2::Image> cached_image;
+
+ extern "C"
+@@ -81,7 +90,7 @@ uni_read_exiv2_map(const char *uri, void (*callback)(const char*, const char*, v
+ }
+ }
+ }
+- } catch (Exiv2::AnyError& e) {
++ } catch (EXIV_ERROR& e) {
+ std::cerr << "Exiv2: '" << e << "'\n";
+ }
+ }
+@@ -104,7 +113,7 @@ uni_read_exiv2_to_cache(const char *uri)
+ }
+
+ cached_image->readMetadata();
+- } catch (Exiv2::AnyError& e) {
++ } catch (EXIV_ERROR& e) {
+ std::cerr << "Exiv2: '" << e << "'\n";
+ }
+
+@@ -134,7 +143,7 @@ uni_write_exiv2_from_cache(const char *uri)
+ cached_image.reset(nullptr);
+
+ return 0;
+- } catch (Exiv2::AnyError& e) {
++ } catch (EXIV_ERROR& e) {
+ std::cerr << "Exiv2: '" << e << "'\n";
+ }
+
diff --git a/testing/vile/APKBUILD b/testing/vile/APKBUILD
new file mode 100644
index 00000000000..1ddb38e3522
--- /dev/null
+++ b/testing/vile/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Vlad Glagolev <scm@vaygr.net>
+# Maintainer: Vlad Glagolev <scm@vaygr.net>
+pkgname=vile
+pkgver=9.8z
+pkgrel=0
+pkgdesc="vi-like Emacs"
+url="https://invisible-island.net/vile/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="flex ncurses-dev"
+subpackages="$pkgname-doc"
+source="https://invisible-island.net/archives/vile/current/vile-$pkgver.tgz"
+
+build() {
+ CFLAGS="$CFLAGS -D_GNU_SOURCE" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-stripping \
+ --enable-filters \
+ --enable-plugins \
+ --with-ncurses \
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="
+f5ff6f3d239f993d7b060e89650567e1c622cec1a024901e29d15cd9a588e8603097e12087d54e88beca91a3a7cd7328a541bac62889368da6636f143d6380ff vile-9.8z.tgz
+"
diff --git a/testing/vim-airline/APKBUILD b/testing/vim-airline/APKBUILD
new file mode 100644
index 00000000000..3aacb99bbb6
--- /dev/null
+++ b/testing/vim-airline/APKBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=vim-airline
+pkgver=0.11
+pkgrel=0
+pkgdesc="vim status line, written in Vimscript"
+url="https://github.com/vim-airline/vim-airline"
+arch="all"
+license="MIT"
+depends="vim"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/vim-airline/vim-airline/archive/refs/tags/v$pkgver.tar.gz"
+options="!check"
+
+package() {
+ install -d "$pkgdir"/usr/share/vim/vimfiles
+ cp -ra autoload doc plugin "$pkgdir"/usr/share/vim/vimfiles/
+ install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
+ install -Dm 644 README.md CHANGELOG.md -t "$pkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+7837f9ae02c1503c7eb6918776292ac6e4b03535eb95aaf20ee091264af5e62c12b471a6e243db80891114848e71f75d9d1022df68909dd4940c88f093e3deb8 vim-airline-0.11.tar.gz
+"
diff --git a/testing/vim-rust/APKBUILD b/testing/vim-rust/APKBUILD
index b1090a8317c..7e6efc09cc6 100644
--- a/testing/vim-rust/APKBUILD
+++ b/testing/vim-rust/APKBUILD
@@ -15,7 +15,6 @@ install=""
subpackages=""
source="https://github.com/rust-lang/rust.vim/archive/$_commit.zip"
-
builddir="$srcdir"/rust.vim-$_commit
build() {
:
diff --git a/testing/vimb/APKBUILD b/testing/vimb/APKBUILD
deleted file mode 100644
index 40f9d7efa5d..00000000000
--- a/testing/vimb/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=vimb
-pkgver=3.6.0
-pkgrel=0
-pkgdesc="The vim like browser"
-url="https://fanglingsu.github.io/vimb/"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="webkit2gtk-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/fanglingsu/vimb/archive/$pkgver.tar.gz"
-
-build() {
- make PREFIX=/usr
-}
-
-check() {
- make test
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="0c1a131641c47ec0dd7a5346d5e7260f85293ecc105e04e6265680c53bbbdc8d98acc4f4e11443efc4e4148aa0b77c496cf7e5f59d44857e6e612c3d4a643c8f vimb-3.6.0.tar.gz"
diff --git a/testing/vimiv-qt/APKBUILD b/testing/vimiv-qt/APKBUILD
deleted file mode 100644
index fe109728cbd..00000000000
--- a/testing/vimiv-qt/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=vimiv-qt
-pkgver=0.7.0
-pkgrel=0
-pkgdesc="an image viewer with vim-like keybindings"
-url="https://github.com/karlch/vimiv-qt"
-arch="all !armhf" # armhf blocked by py3-qt5 (qt5-qtdeclarative)
-license="GPL-3.0-only"
-depends="python3 py3-qt5"
-makedepends="python3-dev py3-setuptools"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/karlch/vimiv-qt/archive/v$pkgver.tar.gz"
-options="!check" # Not working yet.
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- make -f misc/Makefile DESTDIR="$pkgdir" install
-}
-
-sha512sums="d73572bf2c9888290ea9889c13b099f72f0d4c379bd50ed26ca7f9af7d4a7d67e161caa0142145cb0dddaee80bb72714c8dab803e7090437ac43d1df26e10114 vimiv-qt-0.7.0.tar.gz"
diff --git a/testing/vimiv/APKBUILD b/testing/vimiv/APKBUILD
deleted file mode 100644
index 136186bff26..00000000000
--- a/testing/vimiv/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=vimiv
-pkgver=0.9.1
-pkgrel=0
-pkgdesc="an image viewer with vim-like keybindings"
-url="https://github.com/karlch/vimiv-qt"
-arch="all"
-license="GPL-3.0-only"
-depends="python3 py3-gobject3 gtk+3.0 py3-pillow"
-makedepends="python3-dev py3-setuptools"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/karlch/vimiv/archive/v$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b500e5b54450238b6471c1ea0c0831dc6b16238a99b9fcb531bc93bd0aa0b92fa192cbf2dd29f1679856f840dd6f6e4d27971403c85b71b6f333c525b77d9e69 vimiv-0.9.1.tar.gz"
diff --git a/testing/vimix-theme/APKBUILD b/testing/vimix-theme/APKBUILD
deleted file mode 100644
index 851aa8f200b..00000000000
--- a/testing/vimix-theme/APKBUILD
+++ /dev/null
@@ -1,83 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=vimix-theme
-_datever=2020-02-24
-pkgver=${_datever//-/}
-pkgrel=0
-pkgdesc="Flat Material Design Theme"
-options="!check" # It is a theme, there is nothing to test
-url="https://github.com/vinceliuice/vimix-gtk-themes"
-arch="noarch"
-license="GPL-3.0-only"
-makedepends="bash sassc"
-# These are the only variants of theme that are packaged if you want to package
-# as based in the needs of the people in Alpine Linux, if you are in Alpine
-# Linux and wishes to have another theme feel free to contribute
-subpackages="
- vimix-ruby-dark:_dark_ruby:noarch
- vimix-ruby-dark-gnome-shell:_dark_ruby_gnome_shell:noarch
- vimix-ruby-dark-gtk2:_dark_ruby_gtk2:noarch
- vimix-ruby-dark-gtk3:_dark_ruby_gtk3:noarch
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/vinceliuice/vimix-gtk-themes/archive/$_datever.tar.gz"
-builddir="$srcdir/vimix-gtk-themes-$_datever"
-
-package() {
- install -dm0755 "$pkgdir"/usr/share/themes
-}
-
-_dark_ruby() {
- pkgdesc="Dark, Ruby hue variant of Vimix theme"
-
- install -dm0755 "$subpkgdir"/usr/share/themes
-
- "$builddir"/install.sh \
- --size laptop \
- --theme ruby \
- --color dark \
- --flat \
- -d "$subpkgdir"/usr/share/themes
-
- # We don't need those at the moment, if anyone wants them they can
- # add it to the package by adding a subpackage
- rm -rf "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/cinnamon
- rm -rf "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/metacity-1
- rm -rf "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/unity
- rm -rf "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/xfwm4
- rm -rf "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/plank
-
- # Move back the assets for the gnome-shell subpackage of this theme
- # back to the mainpkg which can be moved then with the 'amove' function
- # made available by abuild
- mkdir -p "$pkgdir"/usr/share/themes/vimix-dark-laptop-ruby
- mv "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/gnome-shell \
- "$pkgdir"/usr/share/themes/vimix-dark-laptop-ruby
- mv "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/gtk-2.0 \
- "$pkgdir"/usr/share/themes/vimix-dark-laptop-ruby
- mv "$subpkgdir"/usr/share/themes/vimix-dark-laptop-ruby/gtk-3.0 \
- "$pkgdir"/usr/share/themes/vimix-dark-laptop-ruby
-}
-
-_dark_ruby_gnome_shell() {
- pkgdesc="GNOME Shell assets for Dark, Ruby hue variant of Vimix theme"
- install_if="vimix-ruby-dark=$pkgver-r$pkgrel gnome-shell"
-
- amove usr/share/themes/vimix-dark-laptop-ruby/gnome-shell
-}
-
-_dark_ruby_gtk2() {
- pkgdesc="GTK+2.0 assets for Dark, Ruby hue variant of Vimix theme"
- depends="gtk-murrine-engine gtk-engines"
- install_if="vimix-ruby-dark=$pkgver-r$pkgrel gtk+2.0"
-
- amove usr/share/themes/vimix-dark-laptop-ruby/gtk-2.0
-}
-
-_dark_ruby_gtk3() {
- pkgdesc="GTK+3.0 assets for Dark, Ruby hue variant of Vimix theme"
- install_if="vimix-ruby-dark=$pkgver-r$pkgrel gtk+3.0"
-
- amove usr/share/themes/vimix-dark-laptop-ruby/gtk-3.0
-}
-
-sha512sums="bd8508a4de541f28d9eda1feacbc5e68996f2bd502e324a9e628be62cf18f812b0e00a0c01fd8816770bdf395f5f0675aa024b346c5bdaf8c8f65807b254849f vimix-theme-20200224.tar.gz"
diff --git a/testing/vinegar/APKBUILD b/testing/vinegar/APKBUILD
new file mode 100644
index 00000000000..50e7481883d
--- /dev/null
+++ b/testing/vinegar/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=vinegar
+pkgver=1.7.4
+pkgrel=2
+pkgdesc="An open-source, minimal, configurable, fast bootstrapper for running Roblox on Linux"
+url="https://vinegarhq.org"
+arch="x86_64" # Roblox only has binaries for x86_64 on windows
+license="GPL-3.0-only"
+depends="cmd:wine"
+makedepends="
+ go
+ make
+ mesa-dev
+ libxkbcommon-dev
+ libxcursor-dev
+ wayland-dev
+ vulkan-loader-dev
+ vulkan-validation-layers-dev
+"
+source="$pkgname-$pkgver.tar.gz::https://github.com/vinegarhq/vinegar/archive/refs/tags/v$pkgver.tar.gz"
+options="net"
+
+build() {
+ make
+}
+
+check() {
+ make tests
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+1f9130b91fcf1353b56da8cf5d1c7716ae5c611df940e413ae8d075f26f516fbfdcd92c047fc32f92fe9cc718a5018f3948c0dafdb37067aa4cdd0840ec75ed9 vinegar-1.7.4.tar.gz
+"
diff --git a/testing/virtctl/APKBUILD b/testing/virtctl/APKBUILD
new file mode 100644
index 00000000000..a1f3947acb3
--- /dev/null
+++ b/testing/virtctl/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=virtctl
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="CLI client for KubeVirt - the Kubernetes Virtualization API"
+url="https://kubevirt.io/"
+arch="all"
+license="Apache-2.0"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/kubevirt/kubevirt/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/kubevirt-$pkgver"
+
+_goldflags="
+-X kubevirt.io/client-go/version.gitVersion=v$pkgver
+-X kubevirt.io/client-go/version.gitCommit=AlpineLinux
+-X kubevirt.io/client-go/version.gitTreeState=clean
+-X kubevirt.io/client-go/version.buildDate=0
+"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v -ldflags "$_goldflags" ./cmd/virtctl/virtctl.go
+
+ for shell in bash fish zsh; do
+ ./$pkgname completion $shell > $pkgname.$shell
+ done
+}
+
+check() {
+ # Only run unittest for virtctl
+ go test -ldflags "$_goldflags" ./pkg/virtctl/...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 $pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 $pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 $pkgname.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+ad74d916784ae06ff1395700d5d2d600348f06bc2e236d1614a57dc16ae339b480190a67bb65f943a64e4ceafd7b34e3ec6fe6622fa138ae2b78ab9c3228fc9a virtctl-1.1.1.tar.gz
+"
diff --git a/testing/virter/APKBUILD b/testing/virter/APKBUILD
new file mode 100644
index 00000000000..c2ffd90aff6
--- /dev/null
+++ b/testing/virter/APKBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=virter
+pkgver=0.26.0
+pkgrel=3
+pkgdesc="CLI tool for simple creation and cloning of libvirt virtual machines"
+url="https://github.com/LINBIT/virter"
+arch="all"
+license="Apache-2.0"
+depends="libvirt dnsmasq-utils"
+makedepends="go"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/LINBIT/virter/archive/refs/tags/v$pkgver.tar.gz
+ update-mockery.patch
+ "
+
+build() {
+ local _goldflags="
+ -X github.com/LINBIT/virter/cmd.version=v$pkgver
+ -X github.com/LINBIT/virter/cmd.builddate=$(date -u "+%Y-%m-%dT%H:%M:%S%z" ${SOURCE_DATE_EPOCH:+-d @$SOURCE_DATE_EPOCH})
+ -X github.com/LINBIT/virter/cmd.githash=AlpineLinux
+ "
+ go build -v -ldflags "$_goldflags"
+
+ for shell in bash fish zsh; do
+ ./virter completion $shell > virter.$shell
+ done
+}
+
+check() {
+ # Create mock files with mockery
+ go generate internal/virter/virter_test.go
+
+ go test ./...
+}
+
+package() {
+ install -Dm755 virter -t "$pkgdir"/usr/bin/
+
+ install -Dm644 doc/*.md -t "$pkgdir"/usr/share/doc/"$pkgname"/
+ cp -r examples "$pkgdir"/usr/share/doc/"$pkgname"/
+
+ install -Dm644 virter.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/virter
+ install -Dm644 virter.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/virter.fish
+ install -Dm644 virter.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_virter
+}
+
+sha512sums="
+c06885759beb9c8cb3310b070afb378413ec205ab1d503a08958b38f18d69789d4735a02528e329e823c250afde9e94a77ef4dc3297e315ad8aebafbf762e799 virter-0.26.0.tar.gz
+8e383f190f0f9489e328257cb974d50be9b1f2cf862f2454beb89866ebb79c4745a08850b964ad5da7bac0c39059fdc643fcc8ce58c6af7b1216112fbb50582b update-mockery.patch
+"
diff --git a/testing/virter/update-mockery.patch b/testing/virter/update-mockery.patch
new file mode 100644
index 00000000000..3596e300df4
--- /dev/null
+++ b/testing/virter/update-mockery.patch
@@ -0,0 +1,19 @@
+Update to latest for Go 1.22 compatibility
+
+--- a/internal/virter/virter_test.go
++++ b/internal/virter/virter_test.go
+@@ -7,10 +7,10 @@
+ "github.com/LINBIT/virter/internal/virter/mocks"
+ )
+
+-//go:generate go run github.com/vektra/mockery/v2@v2.38.0 --name=ShellClient
+-//go:generate go run github.com/vektra/mockery/v2@v2.38.0 --name=AfterNotifier
+-//go:generate go run github.com/vektra/mockery/v2@v2.38.0 --name=NetworkCopier --dir=../../pkg/netcopy
+-//go:generate go run github.com/vektra/mockery/v2@v2.38.0 --name=KeyStore --dir=../../pkg/sshkeys
++//go:generate go run github.com/vektra/mockery/v2@v2.42.1 --name=ShellClient
++//go:generate go run github.com/vektra/mockery/v2@v2.42.1 --name=AfterNotifier
++//go:generate go run github.com/vektra/mockery/v2@v2.42.1 --name=NetworkCopier --dir=../../pkg/netcopy
++//go:generate go run github.com/vektra/mockery/v2@v2.42.1 --name=KeyStore --dir=../../pkg/sshkeys
+
+ const poolName = "some-pool"
+ const networkName = "some-network"
diff --git a/testing/virtme-ng/APKBUILD b/testing/virtme-ng/APKBUILD
new file mode 100644
index 00000000000..1d032416575
--- /dev/null
+++ b/testing/virtme-ng/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=virtme-ng
+pkgver=1.23
+pkgrel=1
+pkgdesc="tool that allows to easily and quickly recompile and test a Linux kernel"
+url="https://github.com/arighi/virtme-ng"
+arch="all"
+license="GPL-2-or-later"
+depends="qemu python3"
+makedepends="py3-setuptools py3-argcomplete"
+options="!check" # no tests
+subpackages="$pkgname-bash-completion"
+source="$pkgname-$pkgver.tar.gz::https://github.com/arighi/virtme-ng/archive/refs/tags/v$pkgver.tar.gz"
+
+package() {
+ python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+sha512sums="
+44e516c42e2fea074d2b7d81bdf9bf628d37531f388b17a38e2c025e2198b3625dcdd0092c8abbba07a610e5856af55eb8c7aea7dcbf90a8dce7a1e3063b4880 virtme-ng-1.23.tar.gz
+"
diff --git a/testing/virtualgl/APKBUILD b/testing/virtualgl/APKBUILD
index e0ecb2ba575..dac70db39a0 100644
--- a/testing/virtualgl/APKBUILD
+++ b/testing/virtualgl/APKBUILD
@@ -1,39 +1,54 @@
# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=virtualgl
-_pkgname=VirtualGL
-pkgver=2.6.3
+pkgver=3.1
pkgrel=0
-pkgdesc="VirtualGL is a toolkit to run remote OpenGL applications with full 3D hardware acceleration."
+pkgdesc="Toolkit to run remote OpenGL applications with full 3D hardware acceleration"
url="https://virtualgl.org/"
arch="x86_64 ppc64le"
license="LGPL-2.1-or-later"
-makedepends="mesa-dev cmake openssl-dev libjpeg-turbo-dev libx11-dev glu-dev libxv-dev
- xcb-util-keysyms-dev libxtst-dev"
+makedepends="
+ cmake
+ fltk-dev
+ glu-dev
+ libjpeg-turbo-dev
+ libx11-dev
+ libxtst-dev
+ libxv-dev
+ mesa-dev
+ opencl-dev
+ openssl-dev
+ samurai
+ xcb-util-keysyms-dev
+ "
subpackages="$pkgname-dev $pkgname-doc"
-source="https://downloads.sourceforge.net/project/virtualgl/$pkgver/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+source="https://downloads.sourceforge.net/project/virtualgl/$pkgver/VirtualGL-$pkgver.tar.gz
+ install.patch
+ "
+builddir="$srcdir/VirtualGL-$pkgver"
build() {
- mkdir -p build && cd build
-
- cmake .. \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${pkgname} \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DCMAKE_INSTALL_BINDIR=/usr/bin \
- -DTJPEG_INCLUDE_DIR=/usr/include \
- -DTJPEG_LIBRARY=/usr/lib/libturbojpeg.so \
- -DOPENGL_glu_LIBRARY=/usr/lib/libGLU.so \
- -DVGL_USESSL=1 \
- -DVGL_FAKEXCB=1 \
- -DVGL_FAKEOPENCL=0
- make
+ -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/$pkgname \
+ -DVGL_FAKEXCB=ON \
+ -DVGL_FAKEOPENCL=ON \
+ -DVGL_SYSTEMFLTK=ON
+ cmake --build build
}
package() {
- cd "$builddir/build"
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ # conflicts with mesa-utils
+ mv "$pkgdir"/usr/bin/eglinfo "$pkgdir"/usr/bin/virtualgl-eglinfo
+ mv "$pkgdir"/usr/bin/glxinfo "$pkgdir"/usr/bin/virtualgl-glxinfo
+
+ # not required
+ rm "$pkgdir"/usr/bin/.vglrun.vars64
}
-sha512sums="c01c602335d51c94840c32021a5ce4f982939d67efbe1458fce67582c5a76ac42f5b733998a8c8f04a77d57d7c2de01377f7cabcf848c01bfd9b2d8e0b318fea VirtualGL-2.6.3.tar.gz"
+sha512sums="
+cd1109b4dee426918e61348b22b3bfb0c45102bbb0bcde9b78c36b607a396bbff7d7c72cf3bf9626128da0f1776c42bbb59be863239e60e0f7307d2a73de463b VirtualGL-3.1.tar.gz
+3ccd2133d303c10f1447d24ab09c414e59039afe04744964b0dfa1371cf04b32292d46b2436e0feb88774e4d156762e0804bfd9dcd410607419f9754704af4db install.patch
+"
diff --git a/testing/virtualgl/install.patch b/testing/virtualgl/install.patch
new file mode 100644
index 00000000000..812a22bd054
--- /dev/null
+++ b/testing/virtualgl/install.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 25f1f00..7dab863 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,6 +8,8 @@ if(POLICY CMP0053)
+ cmake_policy(SET CMP0053 NEW)
+ endif()
+
++include(GNUInstallDirs)
++
+ if(WIN32)
+ project(VirtualGL-Utils)
+ else()
diff --git a/testing/visidata/APKBUILD b/testing/visidata/APKBUILD
new file mode 100644
index 00000000000..ae888f44c33
--- /dev/null
+++ b/testing/visidata/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=visidata
+pkgver=2.11.1
+pkgrel=2
+pkgdesc="Terminal spreadsheet multitool"
+url="https://visidata.org"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="python3 py3-appdirs py3-setuptools py3-dateutil"
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-doc $pkgname-zsh-completion $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/saulpw/visidata/archive/v$pkgver.tar.gz
+ devendor-appdirs.patch
+ sh-default.patch
+ use-importlib.patch
+ "
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+
+ ./dev/zsh-completion.py
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ install -Dm644 _visidata \
+ -t "$pkgdir"/usr/share/zsh/site-functions/
+}
+
+sha512sums="
+01905795ae6216e3cf662b43732394c68b43ffc8a4dc40da8552ebefaba4535fa3937aec1825cb108267dd83ab1b6a1072d1e698d416eae883dba915ca40b332 visidata-2.11.1.tar.gz
+506e62c230b166a22d5d73e539303ed12f4915685ee522a030b49fbd23685accd4ae0958f6dd90f921d4be740371036c91107d424b69acde45be12a922c42dad devendor-appdirs.patch
+44aa8c6ccba8f5e37e316a7891557ab7b895d907f72dcaba53cb3e143c31681b607831fa5cf2fbc255716215e75677ec8a476dfe91c600c437ca8b2017ff340e sh-default.patch
+f021d2f621e468b83e5284225ec715cfabb86c5a5050bf945aa8147d2d995862b7f03038c778f9ba6636463cd77b4d76ce7f5af01aab796a190f86a53b55395b use-importlib.patch
+"
diff --git a/testing/visidata/devendor-appdirs.patch b/testing/visidata/devendor-appdirs.patch
new file mode 100644
index 00000000000..fff01790fad
--- /dev/null
+++ b/testing/visidata/devendor-appdirs.patch
@@ -0,0 +1,26 @@
+diff --git a/setup.py b/setup.py
+index 68a7101..487cd0c 100755
+--- a/setup.py
++++ b/setup.py
+@@ -26,7 +26,7 @@ setup(name='visidata',
+ 'windows-curses; platform_system == "Windows"',
+ 'importlib-metadata >= 3.6',
+ ],
+- packages=['visidata', 'visidata.loaders', 'visidata.vendor', 'visidata.tests', 'visidata.ddw', 'visidata.man'],
++ packages=['visidata', 'visidata.loaders', 'visidata.ddw', 'visidata.man'],
+ data_files=[('share/man/man1', ['visidata/man/vd.1', 'visidata/man/visidata.1'])],
+ package_data={'visidata.man': ['vd.1', 'vd.txt'], 'visidata.ddw': ['input.ddw'], 'visidata.tests': ['sample.tsv']},
+ license='GPLv3',
+diff --git a/visidata/settings.py b/visidata/settings.py
+index 6db4157..b7b6e53 100644
+--- a/visidata/settings.py
++++ b/visidata/settings.py
+@@ -7,7 +7,7 @@ import os
+
+ import visidata
+ from visidata import VisiData, BaseSheet, vd, AttrDict
+-from visidata.vendor.appdirs import user_config_dir, user_cache_dir
++from appdirs import user_config_dir, user_cache_dir
+
+
+ # [settingname] -> { objname(Sheet-instance/Sheet-type/'global'/'default'): Option/Command/longname }
diff --git a/testing/visidata/sh-default.patch b/testing/visidata/sh-default.patch
new file mode 100644
index 00000000000..e534cfeeaa7
--- /dev/null
+++ b/testing/visidata/sh-default.patch
@@ -0,0 +1,13 @@
+diff --git a/visidata/shell.py b/visidata/shell.py
+index a05fe27..d6d1f62 100644
+--- a/visidata/shell.py
++++ b/visidata/shell.py
+@@ -67,7 +67,7 @@ class ColumnShell(Column):
+ else:
+ args.append(arg)
+
+- p = subprocess.Popen([os.getenv('SHELL', 'bash'), '-c', ' '.join(args)],
++ p = subprocess.Popen([os.getenv('SHELL', 'sh'), '-c', ' '.join(args)],
+ stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ return p.communicate()
+ except Exception as e:
diff --git a/testing/visidata/use-importlib.patch b/testing/visidata/use-importlib.patch
new file mode 100644
index 00000000000..7ec0054e308
--- /dev/null
+++ b/testing/visidata/use-importlib.patch
@@ -0,0 +1,25 @@
+diff --git a/setup.py b/setup.py
+index 23eed1d4..e84ce823 100755
+--- a/setup.py
++++ b/setup.py
+@@ -24,7 +24,6 @@ setup(name='visidata',
+ install_requires=[
+ 'python-dateutil',
+ 'windows-curses; platform_system == "Windows"',
+- 'importlib-metadata >= 3.6',
+ ],
+ packages=['visidata', 'visidata.loaders', 'visidata.vendor', 'visidata.tests', 'visidata.ddw', 'visidata.man'],
+ data_files=[('share/man/man1', ['visidata/man/vd.1', 'visidata/man/visidata.1'])],
+diff --git a/visidata/settings.py b/visidata/settings.py
+index 1fc62df4..d9c44ad6 100644
+--- a/visidata/settings.py
++++ b/visidata/settings.py
+@@ -375,7 +375,7 @@ def loadConfigAndPlugins(vd, args=AttrDict()):
+ # autoload installed plugins first
+ args_plugins_autoload = args.plugins_autoload if 'plugins_autoload' in args else True
+ if not args.nothing and args_plugins_autoload and vd.options.plugins_autoload:
+- from importlib_metadata import entry_points # a backport which supports < 3.8 https://github.com/pypa/twine/pull/732
++ from importlib.metadata import entry_points
+ try:
+ eps = entry_points()
+ eps_visidata = eps.select(group='visidata.plugins') if 'visidata.plugins' in eps.groups else []
diff --git a/testing/visurf/APKBUILD b/testing/visurf/APKBUILD
new file mode 100644
index 00000000000..bdbb9b8c5b9
--- /dev/null
+++ b/testing/visurf/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=visurf
+pkgver=0.0.0_git20220301
+_commit=8f7036e440f47a37ec917b6856ba20cd747adceb
+_netsurf=3.10
+_libcss=f420dd16136de1dc07f18824c6d0f5540d5df6d1
+pkgrel=1
+pkgdesc="power-user frontend for netsurf with vi-inspired keybindings"
+url="https://sr.ht/~sircmpwn/visurf/"
+arch="all"
+license="MIT GPL-2.0-only"
+makedepends="
+ flex bison gperf wayland-protocols expat-dev curl-dev wayland-dev
+ cairo-dev pango-dev libxkbcommon-dev libjpeg-turbo-dev libwebp-dev
+ openssl-dev>3 libpng-dev perl
+ "
+options="!check" # no tests
+source="
+ https://git.sr.ht/~sircmpwn/visurf/archive/$_commit.tar.gz
+ https://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-all-$_netsurf.tar.gz
+ http://git.netsurf-browser.org/libcss.git/snapshot/libcss-$_libcss.tar.gz
+ "
+builddir="$srcdir/netsurf-all-$_netsurf"
+
+build() {
+ rm -rf netsurf libcss
+ mv "$srcdir"/visurf-$_commit netsurf
+ mv "$srcdir"/libcss-$_libcss libcss
+ make TARGET=visurf PREFIX=/usr LIBDIR=lib INCLUDEDIR=include
+}
+
+package() {
+ make TARGET=visurf DESTDIR="$pkgdir" PREFIX=/usr install
+ install -Dm755 netsurf/tools/urlfilter "$pkgdir"/usr/bin/urlfilter
+}
+
+sha512sums="
+22f1b76449bc42c9be9705730f68cb5c4d642a17cbf04009d440b846403d872c361bf61d8e04c47c607576833232e62f9b2190f910df00276137e72044b831ea 8f7036e440f47a37ec917b6856ba20cd747adceb.tar.gz
+fc4c300eef07c540a7e07f8034db25b7e5fb731b5956029af2220f8638802aa38c055ad54b5683c14501aef9c22fb781b96613c16ae9a6996c3833ceede6f9bf netsurf-all-3.10.tar.gz
+26d9f3ba1aa26540351466ca3f998a9b5e2c4cc8c38cb3201d24f3e3b72683bb12e2ae180ed503cd4a153e9f34c5caccb9218e70056ac2a0d1e1faeb68807929 libcss-f420dd16136de1dc07f18824c6d0f5540d5df6d1.tar.gz
+"
diff --git a/testing/vit/APKBUILD b/testing/vit/APKBUILD
new file mode 100644
index 00000000000..d96bd4d30c8
--- /dev/null
+++ b/testing/vit/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Edd Salkield <edd@salkield.uk>
+# Maintainer: Edd Salkield <edd@salkield.uk>
+pkgname=vit
+pkgver=2.3.2
+pkgrel=1
+pkgdesc="Lightweight, fast, curses-based front end to Taskwarrior"
+url="https://github.com/vit-project/vit"
+arch="noarch"
+license="MIT"
+depends="python3 py3-tasklib py3-urwid"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/vit-project/vit/archive/v$pkgver/vit-v$pkgver.tar.gz"
+
+build() {
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
+}
+
+check() {
+ export TERM=xterm-256color
+ 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 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+029311eb0ae67b8bd0b6e41715c85a1883d6d11218f45f7637e3f6f049c6eb022858adc3c72455c3bd1d9de39638926026b8849b9ed7e0b04406362fda836817 vit-v2.3.2.tar.gz
+"
diff --git a/testing/vivid/APKBUILD b/testing/vivid/APKBUILD
new file mode 100644
index 00000000000..171f6daff44
--- /dev/null
+++ b/testing/vivid/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=vivid
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="Themeable LS_COLORS generator with a rich filetype database"
+url="https://github.com/sharkdp/vivid"
+arch="all"
+license="Apache-2.0 AND MIT"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sharkdp/vivid/archive/refs/tags/v$pkgver.tar.gz"
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL="z"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/vivid -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+fa5be2fdde6c157f0827c457a9b4642a4830994f8adc196ee0cb98032726eec97c538caa430712334acbd6310ad6e47bb3bc8c2bbd6bc786dfde61b6b6906818 vivid-0.9.0.tar.gz
+"
diff --git a/testing/vixl/0001-vixl-Meson-support.patch b/testing/vixl/0001-vixl-Meson-support.patch
new file mode 100644
index 00000000000..50b61939c46
--- /dev/null
+++ b/testing/vixl/0001-vixl-Meson-support.patch
@@ -0,0 +1,814 @@
+diff --git a/doc/aarch32/meson.build b/doc/aarch32/meson.build
+new file mode 100644
+index 00000000..6baf8d57
+--- /dev/null
++++ b/doc/aarch32/meson.build
+@@ -0,0 +1,13 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++custom_target(
++ 'doc_aarch32',
++ command: [markdown, '@INPUT@'],
++ input: 'getting-started-aarch32.md',
++ output: '@BASENAME@.html',
++ capture: true,
++ install: true,
++ install_dir: doc_dir/'aarch32'
++)
+diff --git a/doc/aarch64/meson.build b/doc/aarch64/meson.build
+new file mode 100644
+index 00000000..d6fe068d
+--- /dev/null
++++ b/doc/aarch64/meson.build
+@@ -0,0 +1,22 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++doc_aarch64_files = [
++ 'getting-started-aarch64',
++ 'supported-instructions-aarch64'
++]
++
++foreach file : doc_aarch64_files
++ custom_target(
++ 'doc_aarch64_' + file,
++ command: [markdown, '@INPUT@'],
++ input: file + '.md',
++ output: file + '.html',
++ capture: true,
++ install: true,
++ install_dir: doc_dir/'aarch64'
++ )
++endforeach
++
++subdir('topics')
+diff --git a/doc/aarch64/topics/meson.build b/doc/aarch64/topics/meson.build
+new file mode 100644
+index 00000000..40a4f7df
+--- /dev/null
++++ b/doc/aarch64/topics/meson.build
+@@ -0,0 +1,18 @@
++doc_aarch64_topics_files = [
++ 'extending-the-disassembler',
++ 'index',
++ 'state-trace',
++ 'ycm'
++]
++
++foreach file : doc_aarch64_topics_files
++ custom_target(
++ 'doc_aarch64_topics_' + file,
++ command: [markdown, '@INPUT@'],
++ input: file + '.md',
++ output: file + '.html',
++ capture: true,
++ install: true,
++ install_dir: doc_dir/'aarch64'/'topics'
++ )
++endforeach
+diff --git a/doc/meson.build b/doc/meson.build
+new file mode 100644
+index 00000000..f23f5c94
+--- /dev/null
++++ b/doc/meson.build
+@@ -0,0 +1,22 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++doc_dir = get_option('datadir')/'doc'/meson.project_name()
++
++custom_target(
++ 'doc',
++ command: [markdown, '@INPUT@'],
++ input: '..'/'README.md',
++ output: '@BASENAME@.html',
++ capture: true,
++ install: true,
++ install_dir: doc_dir
++)
++
++if build_a32 or build_t32
++ subdir('aarch32')
++endif
++if build_a64
++ subdir('aarch64')
++endif
+diff --git a/meson.build b/meson.build
+new file mode 100644
+index 00000000..1f4e5646
+--- /dev/null
++++ b/meson.build
+@@ -0,0 +1,151 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++project(
++ 'vixl',
++ 'cpp',
++ default_options: [
++ 'cpp_std=c++17',
++ 'buildtype=release',
++ 'warning_level=3',
++ 'werror=false',
++ 'd_ndebug=if-release',
++ 'b_lto=true'
++ ],
++ license: 'BSD-3-Clause',
++ meson_version: '>=0.49.0',
++ version: '5.1.0',
++)
++
++extra_args = []
++
++if get_option('debug')
++ extra_args += '-DVIXL_DEBUG'
++endif
++
++hosts_32bit = ['arc', 'arm', 'c2000', 'csky', 'mips', 'ppc', 'riscv32', 'rx', 'sparc', 'wasm32', 'x86']
++can_target_aarch64 = not (host_machine.cpu_family() in hosts_32bit)
++
++build_a32 = false
++build_t32 = false
++build_a64 = false
++
++targets = get_option('target')
++if 'auto' in targets or 'all' in targets
++ if can_target_aarch64 or 'all' in targets
++ extra_args += [
++ '-DVIXL_INCLUDE_TARGET_A32',
++ '-DVIXL_INCLUDE_TARGET_T32',
++ '-DVIXL_INCLUDE_TARGET_A64'
++ ]
++ build_a32 = true
++ build_t32 = true
++ build_a64 = true
++ else
++ extra_args += [
++ '-DVIXL_INCLUDE_TARGET_A32',
++ '-DVIXL_INCLUDE_TARGET_T32'
++ ]
++ build_a32 = true
++ build_t32 = true
++ endif
++else
++ if 'a32' in targets or 'aarch32' in targets
++ extra_args += [
++ '-DVIXL_INCLUDE_TARGET_A32'
++ ]
++ build_a32 = true
++ endif
++ if 't32' in targets or 'aarch32' in targets
++ extra_args += [
++ '-DVIXL_INCLUDE_TARGET_T32'
++ ]
++ build_t32 = true
++ endif
++ if 'a64' in targets or 'aarch64' in targets
++ extra_args += [
++ '-DVIXL_INCLUDE_TARGET_A64'
++ ]
++ build_a64 = true
++ endif
++endif
++
++target_sources = []
++if build_a32 or build_t32
++ subdir('src'/'aarch32')
++endif
++if build_a64
++ subdir('src'/'aarch64')
++endif
++
++if get_option('simulator') == 'auto'
++ if not (host_machine.cpu_family() == 'aarch64') and can_target_aarch64
++ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
++ endif
++elif get_option('simulator') == 'aarch64'
++ if can_target_aarch64 and build_a64
++ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
++ else
++ error('Building an AArch64 simulator implies that VIXL targets AArch64. Set `target` to include `aarch64` or `a64`.')
++ endif
++endif
++
++allocator = get_option('code_buffer_allocator')
++if (allocator == 'auto' and host_machine.system() == 'linux') or allocator == 'mmap'
++ extra_args += '-DVIXL_CODE_BUFFER_MMAP'
++else
++ extra_args += '-DVIXL_CODE_BUFFER_MALLOC'
++endif
++
++markdown = find_program('markdown', required: get_option('doc'))
++if markdown.found()
++ subdir('doc')
++endif
++
++libvixl = library(
++ 'vixl',
++ 'src'/'code-buffer-vixl.cc',
++ 'src'/'compiler-intrinsics-vixl.cc',
++ 'src'/'cpu-features.cc',
++ 'src'/'utils-vixl.cc',
++ cpp_args: extra_args,
++ include_directories: 'src',
++ install: true,
++ sources: target_sources,
++ version: meson.project_version()
++)
++
++vixl_dep = declare_dependency(
++ compile_args: extra_args,
++ include_directories: 'src',
++ link_with: libvixl
++)
++
++if meson.version().version_compare('>=0.54.0')
++ meson.override_dependency('vixl', vixl_dep)
++endif
++
++install_headers(
++ 'src'/'assembler-base-vixl.h',
++ 'src'/'code-buffer-vixl.h',
++ 'src'/'code-generation-scopes-vixl.h',
++ 'src'/'compiler-intrinsics-vixl.h',
++ 'src'/'cpu-features.h',
++ 'src'/'globals-vixl.h',
++ 'src'/'invalset-vixl.h',
++ 'src'/'macro-assembler-interface.h',
++ 'src'/'platform-vixl.h',
++ 'src'/'pool-manager-impl.h',
++ 'src'/'pool-manager.h',
++ 'src'/'utils-vixl.h',
++ subdir: 'vixl'
++)
++
++import('pkgconfig').generate(
++ libvixl,
++ description: 'ARMv8 Runtime Code Generation Library',
++ extra_cflags: extra_args,
++ subdirs: 'vixl',
++ url: 'https://github.com/Linaro/vixl'
++)
+diff --git a/meson.patch b/meson.patch
+new file mode 100644
+index 00000000..2360398d
+--- /dev/null
++++ b/meson.patch
+@@ -0,0 +1,421 @@
++Origin: upstream, https://github.com/Linaro/vixl/pull/7
++Last-Update: 2021-10-15
++
++From 21ac158c034e725442208fef93c7e67fcf92ac36 Mon Sep 17 00:00:00 2001
++From: Andrea Pappacoda <andrea@pappacoda.it>
++Date: Wed, 13 Oct 2021 22:06:34 +0200
++Subject: [PATCH] build: add Meson support
++
++I was trying to package Vixl, but the SCons build system does not
++provide an install target, so I would've had to add it. It seemed too
++difficult, so I directly created a quite basic Meson build script.
++
++It provides most features of the SCons script, except for tests and
++benchmarks, while adding a rich install target, with library soname
++versioning and a pkg-config file.
++
++Meson is a simple yet powerful build system, and you're interested in
++using it as your main build system I could add tests and benchmarks :)
++---
++ doc/aarch32/meson.build | 13 +++
++ doc/aarch64/meson.build | 22 +++++
++ doc/aarch64/topics/meson.build | 18 ++++
++ doc/meson.build | 22 +++++
++ meson.build | 151 +++++++++++++++++++++++++++++++++
++ meson_options.txt | 34 ++++++++
++ src/aarch32/meson.build | 31 +++++++
++ src/aarch64/meson.build | 45 ++++++++++
++ 8 files changed, 337 insertions(+)
++ create mode 100644 doc/aarch32/meson.build
++ create mode 100644 doc/aarch64/meson.build
++ create mode 100644 doc/aarch64/topics/meson.build
++ create mode 100644 doc/meson.build
++ create mode 100644 meson.build
++ create mode 100644 meson_options.txt
++ create mode 100644 src/aarch32/meson.build
++ create mode 100644 src/aarch64/meson.build
++
++diff --git a/doc/aarch32/meson.build b/doc/aarch32/meson.build
++new file mode 100644
++index 00000000..6baf8d57
++--- /dev/null
+++++ b/doc/aarch32/meson.build
++@@ -0,0 +1,13 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++custom_target(
+++ 'doc_aarch32',
+++ command: [markdown, '@INPUT@'],
+++ input: 'getting-started-aarch32.md',
+++ output: '@BASENAME@.html',
+++ capture: true,
+++ install: true,
+++ install_dir: doc_dir/'aarch32'
+++)
++diff --git a/doc/aarch64/meson.build b/doc/aarch64/meson.build
++new file mode 100644
++index 00000000..d6fe068d
++--- /dev/null
+++++ b/doc/aarch64/meson.build
++@@ -0,0 +1,22 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++doc_aarch64_files = [
+++ 'getting-started-aarch64',
+++ 'supported-instructions-aarch64'
+++]
+++
+++foreach file : doc_aarch64_files
+++ custom_target(
+++ 'doc_aarch64_' + file,
+++ command: [markdown, '@INPUT@'],
+++ input: file + '.md',
+++ output: file + '.html',
+++ capture: true,
+++ install: true,
+++ install_dir: doc_dir/'aarch64'
+++ )
+++endforeach
+++
+++subdir('topics')
++diff --git a/doc/aarch64/topics/meson.build b/doc/aarch64/topics/meson.build
++new file mode 100644
++index 00000000..40a4f7df
++--- /dev/null
+++++ b/doc/aarch64/topics/meson.build
++@@ -0,0 +1,18 @@
+++doc_aarch64_topics_files = [
+++ 'extending-the-disassembler',
+++ 'index',
+++ 'state-trace',
+++ 'ycm'
+++]
+++
+++foreach file : doc_aarch64_topics_files
+++ custom_target(
+++ 'doc_aarch64_topics_' + file,
+++ command: [markdown, '@INPUT@'],
+++ input: file + '.md',
+++ output: file + '.html',
+++ capture: true,
+++ install: true,
+++ install_dir: doc_dir/'aarch64'/'topics'
+++ )
+++endforeach
++diff --git a/doc/meson.build b/doc/meson.build
++new file mode 100644
++index 00000000..f23f5c94
++--- /dev/null
+++++ b/doc/meson.build
++@@ -0,0 +1,22 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++doc_dir = get_option('datadir')/'doc'/meson.project_name()
+++
+++custom_target(
+++ 'doc',
+++ command: [markdown, '@INPUT@'],
+++ input: '..'/'README.md',
+++ output: '@BASENAME@.html',
+++ capture: true,
+++ install: true,
+++ install_dir: doc_dir
+++)
+++
+++if build_a32 or build_t32
+++ subdir('aarch32')
+++endif
+++if build_a64
+++ subdir('aarch64')
+++endif
++diff --git a/meson.build b/meson.build
++new file mode 100644
++index 00000000..96d8165e
++--- /dev/null
+++++ b/meson.build
++@@ -0,0 +1,151 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++project(
+++ 'vixl',
+++ 'cpp',
+++ default_options: [
+++ 'cpp_std=c++14',
+++ 'buildtype=release',
+++ 'warning_level=3',
+++ 'werror=true',
+++ 'd_ndebug=if-release',
+++ 'b_lto=true'
+++ ],
+++ license: 'BSD-3-Clause',
+++ meson_version: '>=0.49.0',
+++ version: '5.1.0',
+++)
+++
+++extra_args = []
+++
+++if get_option('debug')
+++ extra_args += '-DVIXL_DEBUG'
+++endif
+++
+++hosts_32bit = ['arc', 'arm', 'c2000', 'csky', 'mips', 'ppc', 'riscv32', 'rx', 'sparc', 'wasm32', 'x86']
+++can_target_aarch64 = not (host_machine.cpu_family() in hosts_32bit)
+++
+++build_a32 = false
+++build_t32 = false
+++build_a64 = false
+++
+++targets = get_option('target')
+++if 'auto' in targets or 'all' in targets
+++ if can_target_aarch64 or 'all' in targets
+++ extra_args += [
+++ '-DVIXL_INCLUDE_TARGET_A32',
+++ '-DVIXL_INCLUDE_TARGET_T32',
+++ '-DVIXL_INCLUDE_TARGET_A64'
+++ ]
+++ build_a32 = true
+++ build_t32 = true
+++ build_a64 = true
+++ else
+++ extra_args += [
+++ '-DVIXL_INCLUDE_TARGET_A32',
+++ '-DVIXL_INCLUDE_TARGET_T32'
+++ ]
+++ build_a32 = true
+++ build_t32 = true
+++ endif
+++else
+++ if 'a32' in targets or 'aarch32' in targets
+++ extra_args += [
+++ '-DVIXL_INCLUDE_TARGET_A32'
+++ ]
+++ build_a32 = true
+++ endif
+++ if 't32' in targets or 'aarch32' in targets
+++ extra_args += [
+++ '-DVIXL_INCLUDE_TARGET_T32'
+++ ]
+++ build_t32 = true
+++ endif
+++ if 'a64' in targets or 'aarch64' in targets
+++ extra_args += [
+++ '-DVIXL_INCLUDE_TARGET_A64'
+++ ]
+++ build_a64 = true
+++ endif
+++endif
+++
+++target_sources = []
+++if build_a32 or build_t32
+++ subdir('src'/'aarch32')
+++endif
+++if build_a64
+++ subdir('src'/'aarch64')
+++endif
+++
+++if get_option('simulator') == 'auto'
+++ if not (host_machine.cpu_family() == 'aarch64') and can_target_aarch64
+++ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
+++ endif
+++elif get_option('simulator') == 'aarch64'
+++ if can_target_aarch64 and build_a64
+++ extra_args += '-DVIXL_INCLUDE_SIMULATOR_AARCH64'
+++ else
+++ error('Building an AArch64 simulator implies that VIXL targets AArch64. Set `target` to include `aarch64` or `a64`.')
+++ endif
+++endif
+++
+++allocator = get_option('code_buffer_allocator')
+++if (allocator == 'auto' and host_machine.system() == 'linux') or allocator == 'mmap'
+++ extra_args += '-DVIXL_CODE_BUFFER_MMAP'
+++else
+++ extra_args += '-DVIXL_CODE_BUFFER_MALLOC'
+++endif
+++
+++markdown = find_program('markdown', required: get_option('doc'))
+++if markdown.found()
+++ subdir('doc')
+++endif
+++
+++libvixl = library(
+++ 'vixl',
+++ 'src'/'code-buffer-vixl.cc',
+++ 'src'/'compiler-intrinsics-vixl.cc',
+++ 'src'/'cpu-features.cc',
+++ 'src'/'utils-vixl.cc',
+++ cpp_args: extra_args,
+++ include_directories: 'src',
+++ install: true,
+++ sources: target_sources,
+++ version: meson.project_version()
+++)
+++
+++vixl_dep = declare_dependency(
+++ compile_args: extra_args,
+++ include_directories: 'src',
+++ link_with: libvixl
+++)
+++
+++if meson.version().version_compare('>=0.54.0')
+++ meson.override_dependency('vixl', vixl_dep)
+++endif
+++
+++install_headers(
+++ 'src'/'assembler-base-vixl.h',
+++ 'src'/'code-buffer-vixl.h',
+++ 'src'/'code-generation-scopes-vixl.h',
+++ 'src'/'compiler-intrinsics-vixl.h',
+++ 'src'/'cpu-features.h',
+++ 'src'/'globals-vixl.h',
+++ 'src'/'invalset-vixl.h',
+++ 'src'/'macro-assembler-interface.h',
+++ 'src'/'platform-vixl.h',
+++ 'src'/'pool-manager-impl.h',
+++ 'src'/'pool-manager.h',
+++ 'src'/'utils-vixl.h',
+++ subdir: 'vixl'
+++)
+++
+++import('pkgconfig').generate(
+++ libvixl,
+++ description: 'ARMv8 Runtime Code Generation Library',
+++ extra_cflags: extra_args,
+++ subdirs: 'vixl',
+++ url: 'https://github.com/Linaro/vixl'
+++)
++diff --git a/meson_options.txt b/meson_options.txt
++new file mode 100644
++index 00000000..602d4c82
++--- /dev/null
+++++ b/meson_options.txt
++@@ -0,0 +1,34 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++option(
+++ 'target',
+++ type: 'array',
+++ choices: ['auto', 'all', 'aarch32', 'a32', 't32', 'aarch64', 'a64'],
+++ value: ['auto'],
+++ description: 'Target ISA/Architecture'
+++)
+++
+++option(
+++ 'simulator',
+++ type: 'combo',
+++ choices: ['auto', 'aarch64', 'none'],
+++ value: 'auto',
+++ description: 'Simulators to include'
+++)
+++
+++option(
+++ 'code_buffer_allocator',
+++ type: 'combo',
+++ choices: ['auto', 'malloc', 'mmap'],
+++ value: 'auto',
+++ description: 'Configure the allocation mechanism in the CodeBuffer'
+++)
+++
+++option(
+++ 'doc',
+++ type: 'feature',
+++ value: 'auto',
+++ description: 'Convert documentation to HTML (requires the `markdown` program)'
+++)
++diff --git a/src/aarch32/meson.build b/src/aarch32/meson.build
++new file mode 100644
++index 00000000..f4997860
++--- /dev/null
+++++ b/src/aarch32/meson.build
++@@ -0,0 +1,31 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++# Need to wrap the filenames in files() otherwise this array would be treated
+++# as a simple array of strings, and when used in the master meson.build they
+++# would refer to nonexistent paths. Wrapping in files() ensures that the
+++# filenames will be always relative to this directory, even if referenced in
+++# a different one. As a general rule, when I need to refer to a file from a
+++# different build directory I should wrap it in files().
+++
+++target_sources += files(
+++ 'assembler-aarch32.cc',
+++ 'constants-aarch32.cc',
+++ 'disasm-aarch32.cc',
+++ 'instructions-aarch32.cc',
+++ 'location-aarch32.cc',
+++ 'macro-assembler-aarch32.cc',
+++ 'operands-aarch32.cc'
+++)
+++
+++install_headers(
+++ 'assembler-aarch32.h',
+++ 'constants-aarch32.h',
+++ 'disasm-aarch32.h',
+++ 'instructions-aarch32.h',
+++ 'location-aarch32.h',
+++ 'macro-assembler-aarch32.h',
+++ 'operands-aarch32.h',
+++ subdir: 'vixl'/'aarch32'
+++)
++diff --git a/src/aarch64/meson.build b/src/aarch64/meson.build
++new file mode 100644
++index 00000000..7cd353a3
++--- /dev/null
+++++ b/src/aarch64/meson.build
++@@ -0,0 +1,45 @@
+++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
+++#
+++# SPDX-License-Identifier: BSD-3-Clause
+++
+++# Need to wrap the filenames in files() otherwise this array would be treated
+++# as a simple array of strings, and when used in the master meson.build they
+++# would refer to nonexistent paths. Wrapping in files() ensures that the
+++# filenames will be always relative to this directory, even if referenced in
+++# a different one. As a general rule, when I need to refer to a file from a
+++# different build directory I should wrap it in files().
+++
+++target_sources += files(
+++ 'assembler-aarch64.cc',
+++ 'assembler-sve-aarch64.cc',
+++ 'cpu-aarch64.cc',
+++ 'cpu-features-auditor-aarch64.cc',
+++ 'decoder-aarch64.cc',
+++ 'disasm-aarch64.cc',
+++ 'instructions-aarch64.cc',
+++ 'logic-aarch64.cc',
+++ 'macro-assembler-aarch64.cc',
+++ 'macro-assembler-sve-aarch64.cc',
+++ 'operands-aarch64.cc',
+++ 'pointer-auth-aarch64.cc',
+++ 'registers-aarch64.cc',
+++ 'simulator-aarch64.cc'
+++)
+++
+++install_headers(
+++ 'abi-aarch64.h',
+++ 'assembler-aarch64.h',
+++ 'constants-aarch64.h',
+++ 'cpu-aarch64.h',
+++ 'cpu-features-auditor-aarch64.h',
+++ 'decoder-aarch64.h',
+++ 'decoder-constants-aarch64.h',
+++ 'disasm-aarch64.h',
+++ 'instructions-aarch64.h',
+++ 'macro-assembler-aarch64.h',
+++ 'operands-aarch64.h',
+++ 'registers-aarch64.h',
+++ 'simulator-aarch64.h',
+++ 'simulator-constants-aarch64.h',
+++ subdir: 'vixl'/'aarch64'
+++)
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 00000000..602d4c82
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,34 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++option(
++ 'target',
++ type: 'array',
++ choices: ['auto', 'all', 'aarch32', 'a32', 't32', 'aarch64', 'a64'],
++ value: ['auto'],
++ description: 'Target ISA/Architecture'
++)
++
++option(
++ 'simulator',
++ type: 'combo',
++ choices: ['auto', 'aarch64', 'none'],
++ value: 'auto',
++ description: 'Simulators to include'
++)
++
++option(
++ 'code_buffer_allocator',
++ type: 'combo',
++ choices: ['auto', 'malloc', 'mmap'],
++ value: 'auto',
++ description: 'Configure the allocation mechanism in the CodeBuffer'
++)
++
++option(
++ 'doc',
++ type: 'feature',
++ value: 'auto',
++ description: 'Convert documentation to HTML (requires the `markdown` program)'
++)
+diff --git a/src/aarch32/meson.build b/src/aarch32/meson.build
+new file mode 100644
+index 00000000..f4997860
+--- /dev/null
++++ b/src/aarch32/meson.build
+@@ -0,0 +1,31 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++# Need to wrap the filenames in files() otherwise this array would be treated
++# as a simple array of strings, and when used in the master meson.build they
++# would refer to nonexistent paths. Wrapping in files() ensures that the
++# filenames will be always relative to this directory, even if referenced in
++# a different one. As a general rule, when I need to refer to a file from a
++# different build directory I should wrap it in files().
++
++target_sources += files(
++ 'assembler-aarch32.cc',
++ 'constants-aarch32.cc',
++ 'disasm-aarch32.cc',
++ 'instructions-aarch32.cc',
++ 'location-aarch32.cc',
++ 'macro-assembler-aarch32.cc',
++ 'operands-aarch32.cc'
++)
++
++install_headers(
++ 'assembler-aarch32.h',
++ 'constants-aarch32.h',
++ 'disasm-aarch32.h',
++ 'instructions-aarch32.h',
++ 'location-aarch32.h',
++ 'macro-assembler-aarch32.h',
++ 'operands-aarch32.h',
++ subdir: 'vixl'/'aarch32'
++)
+diff --git a/src/aarch64/meson.build b/src/aarch64/meson.build
+new file mode 100644
+index 00000000..9eaf0f9d
+--- /dev/null
++++ b/src/aarch64/meson.build
+@@ -0,0 +1,47 @@
++# SPDX-FileCopyrightText: 2021 Andrea Pappacoda
++#
++# SPDX-License-Identifier: BSD-3-Clause
++
++# Need to wrap the filenames in files() otherwise this array would be treated
++# as a simple array of strings, and when used in the master meson.build they
++# would refer to nonexistent paths. Wrapping in files() ensures that the
++# filenames will be always relative to this directory, even if referenced in
++# a different one. As a general rule, when I need to refer to a file from a
++# different build directory I should wrap it in files().
++
++target_sources += files(
++ 'assembler-aarch64.cc',
++ 'assembler-sve-aarch64.cc',
++ 'cpu-aarch64.cc',
++ 'cpu-features-auditor-aarch64.cc',
++ 'decoder-aarch64.cc',
++ 'disasm-aarch64.cc',
++ 'instructions-aarch64.cc',
++ 'logic-aarch64.cc',
++ 'macro-assembler-aarch64.cc',
++ 'macro-assembler-sve-aarch64.cc',
++ 'operands-aarch64.cc',
++ 'pointer-auth-aarch64.cc',
++ 'registers-aarch64.cc',
++ 'simulator-aarch64.cc'
++)
++
++install_headers(
++ 'abi-aarch64.h',
++ 'assembler-aarch64.h',
++ 'constants-aarch64.h',
++ 'cpu-aarch64.h',
++ 'cpu-features-auditor-aarch64.h',
++ 'debugger-aarch64.h',
++ 'decoder-aarch64.h',
++ 'decoder-constants-aarch64.h',
++ 'decoder-visitor-map-aarch64.h',
++ 'disasm-aarch64.h',
++ 'instructions-aarch64.h',
++ 'macro-assembler-aarch64.h',
++ 'operands-aarch64.h',
++ 'registers-aarch64.h',
++ 'simulator-aarch64.h',
++ 'simulator-constants-aarch64.h',
++ subdir: 'vixl'/'aarch64'
++)
+
diff --git a/testing/vixl/APKBUILD b/testing/vixl/APKBUILD
new file mode 100644
index 00000000000..db4e913e94e
--- /dev/null
+++ b/testing/vixl/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=vixl
+pkgver=7.0.0
+pkgrel=0
+pkgdesc="AArch32 and AArch64 Runtime Code Generation Library"
+url="https://github.com/Linaro/vixl"
+arch="aarch64 armv7"
+license="BSD-3-Clause"
+makedepends="meson"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Linaro/vixl/archive/refs/tags/$pkgver.tar.gz
+ 0001-vixl-Meson-support.patch
+ "
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+4b883151b363a71e0b2109a544832be46d87a51de782d65cca66f5bf3f1f1e2c8c6fd42a180b95bd784b72f62a17fd659b05674579ed9566e8ba3a364dcbfd5f vixl-7.0.0.tar.gz
+158a3f3c34fe3b2a422c6cab2c98d6255f3c2f5a2c9c56401a992a01fa1943dd39a5cb8edcff39d9923f7c2498a8826062b0e5dceb002ed7355fd5ed2edea70d 0001-vixl-Meson-support.patch
+"
diff --git a/testing/vkbasalt/APKBUILD b/testing/vkbasalt/APKBUILD
new file mode 100644
index 00000000000..4eaf9ff094e
--- /dev/null
+++ b/testing/vkbasalt/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
+pkgname=vkbasalt
+pkgver=0.3.2.10
+pkgrel=0
+pkgdesc="vulkan post processing layer for linux"
+url="https://github.com/DadSchoorse/vkBasalt"
+license="Zlib"
+arch="all"
+makedepends="
+ glslang
+ libx11-dev
+ meson
+ spirv-headers
+ vulkan-headers
+ "
+subpackages="
+ $pkgname-doc
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/DadSchoorse/vkBasalt/releases/download/v0.3.2.10/vkBasalt-$pkgver.tar.gz
+ "
+
+builddir="$srcdir/vkBasalt-$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+}
+
+doc() {
+ install -Dm 644 "$builddir"/config/vkBasalt.conf "$subpkgdir"/usr/share/vkBasalt/vkBasalt.conf.example
+}
+
+sha512sums="
+b80ca0320b99832d05d2d38e5e9d8f5981a5608d1509a1e4ea16bb4d0970ac13474e53e35a1634f2683e24c9ca0e4661545edd388b63b23c63782998ec0e03a4 vkbasalt-0.3.2.10.tar.gz
+"
diff --git a/testing/vlang/APKBUILD b/testing/vlang/APKBUILD
new file mode 100644
index 00000000000..61968720ba3
--- /dev/null
+++ b/testing/vlang/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+
+pkgname=vlang
+pkgver=0.4.3
+# this has to be updated with the version
+_vc_commit_sha="5e691a82c01957870b451e06216a9fb3a4e83a18"
+pkgrel=0
+pkgdesc="Simple, fast, safe, compiled language for developing maintainable software."
+url="https://vlang.io"
+arch="x86_64 aarch64"
+license="MIT"
+# to be able to symlink /usr/lib/vlang/thirdparty/tcc/lib/libgc.a to /usr/lib/libgc.a
+depends="gc-dev"
+makedepends="gcc gc-dev libx11-dev"
+source="
+v-$pkgver.tar.gz::https://github.com/vlang/v/archive/refs/tags/$pkgver.tar.gz
+vc-$pkgver.tar.gz::https://github.com/vlang/vc/archive/$_vc_commit_sha.tar.gz
+"
+builddir="$srcdir/v-$pkgver"
+options="net"
+
+build() {
+ mv "../vc-$_vc_commit_sha" ./vc
+
+ # cannot rely on prebuild tcc libgc.a
+ # needs gc-dev
+ mkdir -p thirdparty/tcc/lib
+ ln -s /usr/lib/libgc.a thirdparty/tcc/lib/libgc.a
+
+ gcc -std=gnu11 -w -o v1 vc/v.c -lm -lpthread
+ ./v1 -no-parallel -o v2 -prod cmd/v
+ ./v2 -o v -prod cmd/v
+ rm -rf v1 v2
+
+ ./v run ./cmd/tools/detect_tcc.v
+
+ VEXE=$builddir/v ./v build-tools -v
+}
+
+check() {
+ ./v self
+}
+
+package() {
+ install -d $pkgdir/usr/lib/vlang $pkgdir/usr/share/vlang $pkgdir/usr/bin
+ install -Dm644 LICENSE pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm755 v $pkgdir/usr/lib/vlang
+ cp -a cmd $pkgdir/usr/lib/vlang/
+ cp -a examples $pkgdir/usr/share/vlang/
+ cp -a thirdparty $pkgdir/usr/lib/vlang/
+ cp -a vlib $pkgdir/usr/lib/vlang/
+ cp v.mod $pkgdir/usr/lib/vlang/
+ ln -s /usr/lib/vlang/v $pkgdir/usr/bin/v
+
+ touch $pkgdir/usr/lib/vlang/cmd/tools/.disable_autorecompilation
+}
+sha512sums="
+b6646a2973ab1e9a718227113bd47440f72b559fbbd53760cfe441ac90f52dee0d12b082812a31ab2d0e0e96bde1c23ba79619c7a759361329ef9f8f33d1970a v-0.4.3.tar.gz
+b99a12bb006559dfe41f5205e83e18d0b238cd14f19a6452fc5f0f97110d09048cb25a0867dfb7bf96369f697a542ae66b26ddd47a5bb1e3fdd6098576abbb14 vc-0.4.3.tar.gz
+"
diff --git a/testing/vmtouch/APKBUILD b/testing/vmtouch/APKBUILD
new file mode 100644
index 00000000000..f9153902166
--- /dev/null
+++ b/testing/vmtouch/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: ovf <ovf@mm.st>
+pkgname=vmtouch
+pkgver=1.3.1
+pkgrel=0
+pkgdesc="Portable file system cache diagnostics and control"
+url="https://hoytech.com/vmtouch/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="perl"
+subpackages="$pkgname-doc"
+source="https://github.com/hoytech/vmtouch/archive/refs/tags/v$pkgver/vmtouch-$pkgver.tar.gz"
+options="!check" # there are no tests
+
+build() {
+ make PREFIX=/usr
+}
+
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+77c4f55c003a03c06e894cc19fae651f4be85ab416d5ba64053580d6daa2ac59be59e8d4a93b243681ef7ead47fe7fb12b2efa3971af33af89c2ab39905ea854 vmtouch-1.3.1.tar.gz
+"
diff --git a/testing/voikko-fi/APKBUILD b/testing/voikko-fi/APKBUILD
new file mode 100644
index 00000000000..25eae00a401
--- /dev/null
+++ b/testing/voikko-fi/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=voikko-fi
+pkgver=2.5
+pkgrel=0
+pkgdesc="Finnish dictionary for libvoikko spell checker"
+url="https://voikko.puimula.org/"
+arch="noarch"
+license="GPL-2.0-or-later"
+makedepends="foma libvoikko"
+options="!check" # no tests
+source="https://www.puimula.org/voikko-sources/voikko-fi/voikko-fi-$pkgver.tar.gz"
+
+build() {
+ make vvfst
+}
+
+package() {
+ make DESTDIR="$pkgdir/usr/share/voikko/" vvfst-install
+}
+
+sha512sums="
+6de3c6c13a9fb05a463a55177dc1707d5e4ca01c7ccf08e0f8ab73cb3a353ee4935adc23a1b5f6c5da568dbb075c081a700d8d46eb99b6bcbed0efb4d977f59a voikko-fi-2.5.tar.gz
+"
diff --git a/testing/volatility3/APKBUILD b/testing/volatility3/APKBUILD
index 8c0e592499b..f615ed90f6e 100644
--- a/testing/volatility3/APKBUILD
+++ b/testing/volatility3/APKBUILD
@@ -1,20 +1,21 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=volatility3
-pkgver=1.0.0_beta1
-_pkgver=${pkgver/_beta1/-beta.1}
-pkgrel=2
+pkgver=2.5.2
+pkgrel=1
pkgdesc="Volatile memory forensics toolkit"
url="https://github.com/volatilityfoundation/volatility3"
arch="noarch !armhf !armv7" # py3-yara
license="custom"
-depends="py3-crypto py3-capstone py3-yara"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/volatilityfoundation/volatility3/archive/v$_pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$_pkgver"
+depends="py3-crypto py3-capstone py3-yara py3-pefile"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-doc $pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/volatilityfoundation/volatility3/archive/v$pkgver.tar.gz"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -22,8 +23,12 @@ check() {
}
package() {
- python3 setup.py install --root "$pkgdir"
- install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+
+ install -Dm644 LICENSE.txt \
+ -t "$pkgdir"/usr/share/licenses/$pkgname/
}
-sha512sums="28118e1c1e0092d10279f925296148ab312036daec74f4a3615c275f85fb927e2a38b27f7a9472e335b8eb5f41cd668273e549f2e593d774a33e31159988bde2 volatility3-1.0.0_beta1.tar.gz"
+sha512sums="
+02cfd06928f1667ec481e776c45e954d4a40fa6da6ffbdd30e0980bd5d09ce70d0e31de6e352a833c36045e67c2120ea6a10e2d3ec1327e9e4e4e1c2af494fcf volatility3-2.5.2.tar.gz
+"
diff --git a/testing/volumeicon/APKBUILD b/testing/volumeicon/APKBUILD
new file mode 100644
index 00000000000..6139b4ab83f
--- /dev/null
+++ b/testing/volumeicon/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=volumeicon
+pkgver=0.5.1
+pkgrel=1
+pkgdesc="Volume Icon is a lightweight volume control that sits in your systray"
+url="http://softwarebakery.com/maato/volumeicon.html"
+arch="all"
+license="GPL-3.0-only"
+makedepends="gtk+3.0-dev intltool alsa-lib-dev libnotify-dev
+ automake autoconf libtool"
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Maato/volumeicon/archive/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-notify
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="c158a1a1bdf84e91fa039defc4c2a7fefa53f9a3ffc48b92388144fee6f7400f2e20618d3527d5c26f694d2280b1035fa4f91080ffe3b4baa5d229130d0c13b7 volumeicon-0.5.1.tar.gz"
diff --git a/testing/vpnc/APKBUILD b/testing/vpnc/APKBUILD
deleted file mode 100644
index 9a000bab5fe..00000000000
--- a/testing/vpnc/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=vpnc
-pkgver=0.5.3
-_commit=fa0689cc9a67d02a614c7a2406dfe2e794825a31
-pkgrel=8
-pkgdesc="IPSec VPN client compatible with Cisco equipment"
-url="https://github.com/streambinder/vpnc"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="gnutls-dev libgcrypt-dev openssl-dev perl linux-headers"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.zip::https://github.com/streambinder/vpnc/archive/$_commit.zip
- vpnc.initd
- vpnc.confd"
-builddir="$srcdir/$pkgname-$_commit"
-
-build() {
- sed 's|^#OPENSSL|OPENSSL|g' -i Makefile
- sed 's|/sbin/resolvconf|/usr/sbin/resolvconf|g' -i src/vpnc-script
- make PREFIX=/usr
-}
-
-check() {
- make test
-}
-
-package() {
- make PREFIX=/usr DESTDIR="$pkgdir" install
- install -m755 -D "$srcdir"/vpnc.initd \
- "$pkgdir"/etc/init.d/vpnc
- install -m644 -D "$srcdir"/vpnc.confd \
- "$pkgdir"/etc/conf.d/vpnc
-}
-
-sha512sums="b78a0e9689b743bcda002e1b8b1f924757477c07899b2b6e5d6b4d3a82399f7cc5daaf9f5d10cb337a0a9b082053f9e083f9a9848a6d01481e8846a1d4ad4165 vpnc-0.5.3.zip
-416bba9c539d14c61a014f2a08e7324ffd4b8d1764af051d555b93e083f5811c3332e22c2aa81fd2a2856ddb69e9370455dfe7da7b36c010a0f4e8dbc233fbbd vpnc.initd
-1254f687dcd9822becfcccabbb34d8343d715d70247dbf4b5e018835fff24b33f5272368f77199d697c8d11d913182b1f756d5e08a46b2057849779f09b19633 vpnc.confd"
diff --git a/testing/vpnc/vpnc.confd b/testing/vpnc/vpnc.confd
deleted file mode 100644
index 62789bd407e..00000000000
--- a/testing/vpnc/vpnc.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-# If you wish to see the output made by vpnc, for example the password
-# prompt, set this variable to yes
-
-VPNCOUTPUT="no"
diff --git a/testing/vpnc/vpnc.initd b/testing/vpnc/vpnc.initd
deleted file mode 100644
index 58c7854bd9b..00000000000
--- a/testing/vpnc/vpnc.initd
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/sbin/openrc-run
-
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/vpnc/files/vpnc-3.init,v 1.2 2010/08/13 08:39:48 fauli Exp $
-
-VPNDIR="/etc/vpnc"
-VPN="${SVCNAME#*.}"
-if [ -n ${VPN} ] && [ ${SVCNAME} != "vpnc" ]; then
- mkdir -p /var/run/vpnc
- VPNPID="/var/run/vpnc/${VPN}.pid"
-else
- VPNPID="/var/run/vpnc.pid"
-fi
-VPNCONF="${VPNDIR}/${VPN}.conf"
-VPNSCRIPTDIR="${VPNDIR}/scripts.d"
-PREUPSCRIPT="${VPNSCRIPTDIR}/${VPN}-preup.sh"
-PREDOWNSCRIPT="${VPNSCRIPTDIR}/${VPN}-predown.sh"
-POSTUPSCRIPT="${VPNSCRIPTDIR}/${VPN}-postup.sh"
-POSTDOWNSCRIPT="${VPNSCRIPTDIR}/${VPN}-postdown.sh"
-# We should source this file to avoid problems when init script
-# name differs from the default name
-. /etc/conf.d/vpnc
-
-depend() {
- need net
- before netmount
-}
-
-checktundevice() {
- if [ ! -e /dev/net/tun ]; then
- if ! modprobe tun ; then
- eerror "TUN/TAP support is not available in this kernel"
- return 1
- fi
- fi
- if [ -h /dev/net/tun ] && [ -c /dev/misc/net/tun ]; then
- ebegin "Detected broken /dev/net/tun symlink, fixing"
- rm -f /dev/net/tun
- ln -s /dev/misc/net/tun /dev/net/tun
- eend $?
- fi
-}
-
-screenoutput() {
- if [ "${VPNCOUTPUT}" = "yes" ]; then
- export SCREEN_OUTPUT="/dev/stdout"
- else
- export SCREEN_OUTPUT="/dev/null"
- fi
-}
-
-start() {
- ebegin "Starting VPNC: ${VPN}"
-
- checktundevice || return 1
- screenoutput
-
- if [ ! -e "${VPNCONF}" ]; then
- eend 1 "${VPNCONF} does not exist"
- return 1
- fi
-
- local args=""
-
- if [ -x "${PREUPSCRIPT}" ] ; then
- "${PREUPSCRIPT}" > ${SCREEN_OUTPUT}
- fi
-
- start-stop-daemon --start --pidfile "${VPNPID}" --exec /usr/sbin/vpnc \
- -- --pid-file "${VPNPID}" "${VPNCONF}" > ${SCREEN_OUTPUT}
- local retval=$?
- if [ ! ${retval} -eq 0 ]; then
- eend ${retval}
- return ${retval}
- fi
-
- if [ -x "${POSTUPSCRIPT}" ] ; then
- "${POSTUPSCRIPT}" > ${SCREEN_OUTPUT}
- fi
- eend $?
-}
-
-stop() {
- ebegin "Stopping VPNC: ${VPN}"
- screenoutput
- if [ -x "${PREDOWNSCRIPT}" ] ; then
- "${PREDOWNSCRIPT}" > ${SCREEN_OUTPUT}
- fi
-
- start-stop-daemon --stop --pidfile "${VPNPID}"
- local retval=$?
- if [ ! ${retval} -eq 0 ]; then
- eend ${retval}
- return ${retval}
- fi
-
-
- if [ -x "${POSTDOWNSCRIPT}" ] ; then
- "${POSTDOWNSCRIPT}" > ${SCREEN_OUTPUT}
- fi
- eend $?
-}
diff --git a/testing/vtk/APKBUILD b/testing/vtk/APKBUILD
deleted file mode 100644
index 858fac044f0..00000000000
--- a/testing/vtk/APKBUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=vtk
-pkgver=8.2.0
-pkgrel=4
-pkgdesc="A software system for 3D computer graphics, image processing and visualization"
-url="https://vtk.org/"
-arch="x86_64" # dependency pdal-dev is only provided for x86_64
-license="BSD-3-Clause"
-makedepends="cmake boost-dev zlib-dev tk-dev glew-dev qt5-qtbase-dev
- qt5-qtx11extras-dev qt5-qttools-dev libpng-dev sqlite-dev doxygen ffmpeg-dev
- jpeg-dev libxml2-dev openmpi-dev gdal-dev pdal-dev unixodbc-dev
- "
-subpackages="$pkgname-doc $pkgname-dev"
-source="
- https://www.vtk.org/files/release/${pkgver%.*}/VTK-$pkgver.tar.gz
- https://www.vtk.org/files/release/${pkgver%.*}/VTKData-$pkgver.tar.gz
- https://www.vtk.org/files/release/${pkgver%.*}/VTKLargeData-$pkgver.tar.gz
- pthreads_declaration.patch
- fix-build.patch
- "
-builddir="$srcdir/VTK-$pkgver"
-options="!check" # No unit tests provided
-
-build() {
- mkdir -p build
- cd build
- cmake .. \
- -Wno-dev \
- -DCMAKE_SKIP_RPATH=ON \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_DOCUMENTATION=OFF \
- -DVTK_USE_FFMPEG_ENCODER=ON \
- -DModule_vtkIOPDAL=ON \
- -DVTK_USE_LARGE_DATA=ON \
- -DVTK_QT_VERSION="5" \
- -DVTK_PYTHON_VERSION="3" \
- -DVTK_CUSTOM_LIBRARY_SUFFIX="" \
- -DVTK_INSTALL_INCLUDE_DIR=include/vtk \
- -DCMAKE_BUILD_TYPE=None
- make
-}
-
-package() {
- cd build
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="521bd4dabedbc24b0e80a314a34ecd7554b04af28a7973245e3a9cf99a09b995d1b8ac42305c8e53369f226a0a6da3cdb29105ba2c90b46492736ef717760286 VTK-8.2.0.tar.gz
-517d0f6dfdb0c61f59df933f06d3a28c8a48ea684aaff311456213fe493e2a20128886144325fc4edfa376b2d375a2dae6c60ad6e3d5d2f4a7b0ac1d8545c87b VTKData-8.2.0.tar.gz
-8a7ea3d5870b1e4ccb31c77b4c270d00208349da1b2938e957210db3ec1449b678c66edc2faee1d4514aca6d725f642abc91e10ab0c151f6743cad1c53485588 VTKLargeData-8.2.0.tar.gz
-ce72da79026681cbc2ad46e68cc555c42d232650b8a28b5b76ad4d5bbe3f576ebae3724f76e90a5d81e6ff1ab4b46f9631bfb2402c2f1ac6b493b6168ec7d192 pthreads_declaration.patch
-c814628a7ce9e1015cb02d4c9ad7ae7c6ad6d5d83b553f0c484414744488e4d0fa313924b4fd0f579a363352832347035147d1be3aca6f6a4885b6f9a1590b9e fix-build.patch"
diff --git a/testing/vtk/fix-build.patch b/testing/vtk/fix-build.patch
deleted file mode 100644
index d1bff0496bf..00000000000
--- a/testing/vtk/fix-build.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-It is not up for upstream to decide the valid build type.
-
-diff --git a/ThirdParty/eigen/vtkeigen/CMakeLists.txt b/ThirdParty/eigen/vtkeigen/CMakeLists.txt
-index fc5ca90..c9e6a35 100644
---- a/ThirdParty/eigen/vtkeigen/CMakeLists.txt
-+++ b/ThirdParty/eigen/vtkeigen/CMakeLists.txt
-@@ -21,13 +21,6 @@ if (NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Release")
- endif()
-
--string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_tolower)
--if( NOT cmake_build_type_tolower STREQUAL "debug"
-- AND NOT cmake_build_type_tolower STREQUAL "release"
-- AND NOT cmake_build_type_tolower STREQUAL "relwithdebinfo")
-- message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).")
--endif()
--
-
- #############################################################################
- # retrieve version infomation #
diff --git a/testing/vtk/pthreads_declaration.patch b/testing/vtk/pthreads_declaration.patch
deleted file mode 100644
index dc8cfd79d20..00000000000
--- a/testing/vtk/pthreads_declaration.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- VTK-8.2.0.bak/ThirdParty/libxml2/vtklibxml2/threads.c
-+++ VTK-8.2.0/ThirdParty/libxml2/vtklibxml2/threads.c
-@@ -49,7 +49,7 @@
- #ifdef HAVE_PTHREAD_H
-
- static int libxml_is_threaded = -1;
--#ifdef __GNUC__
-+#if 0
- #ifdef linux
- #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
- extern int pthread_once (pthread_once_t *__once_control,
diff --git a/testing/vym/APKBUILD b/testing/vym/APKBUILD
new file mode 100644
index 00000000000..4bc7227c0c6
--- /dev/null
+++ b/testing/vym/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: nu <llnu@protonmail.ch>
+# Maintainer: nu <llnu@protonmail.ch>
+pkgname=vym
+pkgver=2.9.26
+pkgrel=0
+pkgdesc="View Your Mind (VYM) is a cross-platform concept mapping software"
+url="https://www.insilmaril.de/vym/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="
+ cmake
+ qt5-qtbase-dev
+ qt5-qtscript-dev
+ qt5-qtsvg-dev
+ qt5-qttools-dev
+ samurai
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/insilmaril/vym/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_DATAROOTDIR=share/vym
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ mv "$pkgdir"/usr/share/vym/doc "$pkgdir"/usr/share/doc
+ mv "$pkgdir"/usr/share/vym/man "$pkgdir"/usr/share/man
+}
+
+sha512sums="
+400d328877b18020a614af6784aa4c355c80d38366e606877d82f67d403ffef81097a32572ea46546c55bddae53bba78fce7d8313b07ffc346dc5ef7073cbbe1 vym-2.9.26.tar.gz
+"
diff --git a/testing/w_scan2/APKBUILD b/testing/w_scan2/APKBUILD
index 72290c0ecf3..a5da338db89 100644
--- a/testing/w_scan2/APKBUILD
+++ b/testing/w_scan2/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=w_scan2
-pkgver=1.0.9
+pkgver=1.0.15
pkgrel=0
pkgdesc="Universal ATSC and DVB blind scanner"
url="https://github.com/stefantalpalaru/w_scan2"
@@ -28,4 +28,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="4f04f458e45f99c00c42840542a7387a1fae1aea8ed0beb3cad6e5a3677b50235610e87d91127583600aaaf6333b08ac81d1f799312658470a4f33f31202e8e1 w_scan2-1.0.9.tar.gz"
+sha512sums="
+bec567ca5b160083754e7ba31bfe625f16efe71916a00c800557598e0229361c629285017c495d2e50a37e1366d8b00780b4b0e9b081ac20e4f13382b4becf3f w_scan2-1.0.15.tar.gz
+"
diff --git a/testing/wabt/APKBUILD b/testing/wabt/APKBUILD
index 1fc09c2d63a..f032addc1d5 100644
--- a/testing/wabt/APKBUILD
+++ b/testing/wabt/APKBUILD
@@ -1,39 +1,72 @@
# Contributor: Ian Douglas Scott <ian@iandouglasscott.com>
-# Maintainer: Ian Douglas Scott <ian@iandouglasscott.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=wabt
-pkgver=1.0.15
+pkgver=1.0.34
pkgrel=0
+_wasm_c_api="b6dd1fb658a282c64b029867845bc50ae59e1497"
+_picosha2="27fcf6979298949e8a462e16d09a0351c18fcaf2"
pkgdesc="WebAssembly binary toolkit"
-arch="all"
+# s390x: lld
+# riscv64: llvm still has broken lto on riscv with floating abi errors
+arch="all !s390x !riscv64"
url="https://github.com/WebAssembly/wabt"
license="Apache-2.0"
-makedepends="cmake"
+makedepends="
+ clang
+ cmake
+ lld
+ samurai
+ "
subpackages="$pkgname-doc"
-_wasm_c_api_commit="d9a80099d496b5cdba6f3fe8fc77586e0e505ddc"
-source="$pkgname-$pkgver.tar.gz::$url/archive/$pkgver.tar.gz
- wasm-c-api-$_wasm_c_api_commit.tar.gz::https://github.com/WebAssembly/wasm-c-api/archive/$_wasm_c_api_commit.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/WebAssembly/wabt/archive/$pkgver.tar.gz
+ wasm-c-api-$_wasm_c_api.tar.gz::https://github.com/WebAssembly/wasm-c-api/archive/$_wasm_c_api.tar.gz
+ picosha2-$_picosha2.tar.gz::https://github.com/okdshin/PicoSHA2/archive/$_picosha2.tar.gz
"
# Tests require vendored dependencies (as git submodules). Should be modified
# to use copies from repository.
options="!check"
-build() {
- # https://github.com/WebAssembly/wabt/issues/1315
+# secfixes:
+# 1.0.30-r0:
+# - CVE-2022-43280
+# - CVE-2022-43282
+# - CVE-2022-43283
+
+prepare() {
+ default_prepare
+
rmdir third_party/wasm-c-api
- ln -s ../../wasm-c-api-$_wasm_c_api_commit third_party/wasm-c-api
-
- mkdir -p build
- cd build
- cmake -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DBUILD_TESTS=OFF \
- ..
- make
+ ln -sfv "$srcdir"/wasm-c-api-$_wasm_c_api third_party/wasm-c-api
+
+ rmdir third_party/picosha2
+ ln -sfv "$srcdir"/PicoSHA2-$_picosha2 third_party/picosha2
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+
+ CC=clang \
+ CXX=clang++ \
+ CFLAGS="$CFLAGS -O2 -flto=thin" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=thin" \
+ LDFLAGS="$LDFLAGS -fuse-ld=lld" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTS=OFF \
+ $crossopts
+
+ cmake --build build
}
package() {
- cd build
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="ef3579a1fb409c397b081374532c7bba12ab6a77ca8aaa09abf7767de4685035482015d679eab8ae3a6e098f407c3ddf208948d714399974892f0784545c5ecf wabt-1.0.15.tar.gz
-b6ee7d2d83a3ca7b3cb3ee110282f7d32eada1d9020cadd3fdec58f40478879fd9ac9fada526021d8f6e8a26e1df7353df313d4149be2ffe4aea3a28f856fd89 wasm-c-api-d9a80099d496b5cdba6f3fe8fc77586e0e505ddc.tar.gz"
+
+sha512sums="
+93be77d18b2311276af2abff8a954f3d029b1689ba8c89e1c3f0d199ddc0af505ffaa8489fbe0df4fc8beae1a37c645971d63794ff440e305042ff1b94bd83ef wabt-1.0.34.tar.gz
+5d3eec2184f8b66e2358b85f416afaea172f24155a61c9412a9d9374aa50347cf0ebe940f35727bc8c0ffe287033b967cc97a857feab6aa9e5098458e72b4fd0 wasm-c-api-b6dd1fb658a282c64b029867845bc50ae59e1497.tar.gz
+9bf66c70c5828a0b89210d1690078a3d418276e9615170cf5b0a72a28bc37087d075f27c07d525ccbb490102b263527e06516fa41ce6231bc918745abbc85fd9 picosha2-27fcf6979298949e8a462e16d09a0351c18fcaf2.tar.gz
+"
diff --git a/testing/waffle/APKBUILD b/testing/waffle/APKBUILD
deleted file mode 100644
index 18d283d3678..00000000000
--- a/testing/waffle/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
-# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
-pkgname=waffle
-pkgver=1.6.1
-pkgrel=0
-pkgdesc="C library for selecting an OpenGL API and window system at runtime"
-url="https://gitlab.freedesktop.org/mesa/waffle"
-arch="all"
-license="BSD-2-Clause"
-makedepends="eudev-dev mesa-dev mesa-gbm mesa-egl wayland-dev meson cmocka-dev"
-source="$pkgname-$pkgver.tar.gz::https://gitlab.freedesktop.org/mesa/waffle/-/archive/v$pkgver/waffle-v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-v$pkgver"
-options="!check" # tests are platform dependant (x11/wayland)
-subpackages="$pkgname-doc"
-
-prepare() {
- meson build \
- --buildtype=plain \
- --prefix=/usr \
- -Dbuild-examples=false
-}
-
-build() {
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-sha512sums="b3ffb338e8dcd77a9f44a0ec0e65af0dbabecd16ce86f3e52c39f9fbaae2d01d2c0051d917b3b8186b7a91e323951127f72e7bd6ea5d335bd38080dc8aa799a4 waffle-1.6.1.tar.gz"
diff --git a/testing/waifu2x-converter-cpp/APKBUILD b/testing/waifu2x-converter-cpp/APKBUILD
new file mode 100644
index 00000000000..dc3cb141b5f
--- /dev/null
+++ b/testing/waifu2x-converter-cpp/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=waifu2x-converter-cpp
+pkgver=5.3.4
+pkgrel=5
+pkgdesc="image upscaler for anime-style art capable of opencl"
+url="https://github.com/DeadSix27/waifu2x-converter-cpp"
+arch="all !ppc64le !s390x !riscv64" # limited by opencv
+license="MIT"
+depends="so:libOpenCL.so.1"
+makedepends="cmake opencl-dev opencv-dev samurai"
+source="https://github.com/DeadSix27/waifu2x-converter-cpp/archive/v$pkgver/waifu2x-converter-cpp-$pkgver.tar.gz"
+options="!check" # no tests
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -G Ninja \
+ $CMAKE_CROSSOPTS .
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+05bd5114bd5bf5084d619d6509e51bdc642d5643775d91f03ca0995cbc5e32e757f00f6f31706533546b5d936638c0dd9d2da8ccca25b3498ff4da4020695c2a waifu2x-converter-cpp-5.3.4.tar.gz
+"
diff --git a/testing/wait4x/APKBUILD b/testing/wait4x/APKBUILD
deleted file mode 100644
index 560c103471f..00000000000
--- a/testing/wait4x/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Mohammad Abdolirad <m.abdolirad@gmail.com>
-# Maintainer: Mohammad Abdolirad <m.abdolirad@gmail.com>
-pkgname=wait4x
-pkgver=0.3.0
-pkgrel=1
-pkgdesc="Waiting for a port to enter into specify state"
-url="https://github.com/atkrad/wait4x"
-arch="all"
-license="MIT"
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/atkrad/wait4x/archive/v$pkgver.tar.gz"
-options="!check" # Wait4X doesn't provide tests
-_commitsha="e7512dc9"
-_commitdatetime="2020-04-22T19:54:00Z"
-
-build() {
- go build -v \
- -ldflags "-X github.com/atkrad/wait4x/cmd.AppVersion=v$pkgver -X github.com/atkrad/wait4x/cmd.GitCommit=$_commitsha -X github.com/atkrad/wait4x/cmd.BuildTime=$_commitdatetime" \
- -o bin/$pkgname
-}
-
-package() {
- install -Dm755 "$builddir"/bin/$pkgname "$pkgdir"/usr/bin/$pkgname
-}
-
-sha512sums="0995e4fe783710f50a4dcdb42b610a590064854ec06438358cd95e1a3b590a17dbb43c8c8c08224ddd1bc810cdab43a1abdec7ed479ffa812b43370e14920e93 wait4x-0.3.0.tar.gz"
diff --git a/testing/warp-s3/APKBUILD b/testing/warp-s3/APKBUILD
new file mode 100644
index 00000000000..4339b2bd48e
--- /dev/null
+++ b/testing/warp-s3/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=warp-s3
+pkgver=0.8.0
+pkgrel=3
+pkgdesc="Benchmarking tool for S3"
+url="https://github.com/minio/warp"
+license="AGPL-3.0"
+arch="all !armhf !armv7 !x86" # tests fail on 32-bit architectures
+makedepends="go"
+options="net"
+source="https://github.com/minio/warp/archive/v$pkgver/warp-s3-$pkgver.tar.gz"
+builddir="$srcdir/warp-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build \
+ -ldflags "-X github.com/minio/warp/pkg.Version=$pkgver" \
+ -o warp-s3
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+e6d3d48193c74d6468733440553c8be50075561ad75e4ce07d9a147fd5808bc1cbbe61a41fd4fb4e76eb1e4d2e723c706eae27d8ad97f17b8930d3926c167ad4 warp-s3-0.8.0.tar.gz
+"
diff --git a/testing/warpinator/APKBUILD b/testing/warpinator/APKBUILD
new file mode 100644
index 00000000000..9beafd07dc6
--- /dev/null
+++ b/testing/warpinator/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=warpinator
+pkgver=1.8.3
+pkgrel=0
+pkgdesc="Share files across the LAN"
+url="https://github.com/linuxmint/warpinator"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ bubblewrap
+ py3-cairo
+ py3-cryptography
+ py3-google-api-core
+ py3-grpcio
+ py3-landlock
+ py3-netifaces
+ py3-pynacl
+ py3-qrcode
+ py3-setproctitle
+ py3-setuptools
+ py3-xapp
+ py3-zeroconf
+ xapp
+ "
+makedepends="
+ appstream-dev
+ gettext-dev
+ gobject-introspection
+ grpc-dev
+ itstool
+ meson
+ polkit-dev
+ python3-dev
+ py3-protobuf
+ xapp-dev
+ "
+subpackages="
+ $pkgname-lang
+ $pkgname-nemo
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/warpinator/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # No upstream testsuite defined
+build() {
+ meson setup \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --buildtype=plain \
+ -Dbundle-grpc=false \
+ -Dbundle-landlock=false \
+ -Dbundle-zeroconf=false \
+ . output
+ meson compile ${JOBS:+-j ${JOBS}} -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+nemo() {
+ pkgdesc="$pkgdesc (nemo integration)"
+ install_if="$pkgname=$pkgver-r$pkgrel nemo"
+
+ amove usr/share/nemo
+}
+
+sha512sums="
+e8db3fb97bb5b17ad8e91fb48345f2a582382468281ad63776dc69fd703b3d4deedab0d6278c2902d417ae0bf32a8a46cbbdd84b9a2bd919c530967e7e9d9eb4 warpinator-1.8.3.tar.gz
+"
diff --git a/testing/warzone2100/APKBUILD b/testing/warzone2100/APKBUILD
new file mode 100644
index 00000000000..1b6a0b4df71
--- /dev/null
+++ b/testing/warzone2100/APKBUILD
@@ -0,0 +1,72 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=warzone2100
+pkgver=4.3.5
+pkgrel=1
+pkgdesc="3D realtime strategy game on a future Earth"
+url="https://wz2100.net/"
+# huge videogame
+arch="x86_64"
+license="GPL-2.0-or-later"
+# todo: bundles some font-dejavu/font-noto-cjk, but needs patching
+makedepends="
+ asciidoc
+ cmake
+ curl-dev
+ freetype-dev
+ fribidi-dev
+ gawk
+ harfbuzz-dev
+ libpng-dev
+ libsodium-dev
+ libtheora-dev
+ libvorbis-dev
+ mesa-dev
+ openal-soft-dev
+ opus-dev
+ physfs-dev
+ qt5-qtscript-dev
+ samurai
+ sdl2-dev
+ sqlite-dev
+ vulkan-headers
+ zip
+ zstd-dev
+ "
+subpackages="$pkgname-doc $pkgname-lang $pkgname-data::noarch"
+source="$pkgname-$pkgver.tar.xz::https://github.com/Warzone2100/warzone2100/releases/download/$pkgver/warzone2100_src.tar.xz
+ samurai.patch
+ "
+builddir="$srcdir/warzone2100"
+options="!check" # who tests videogames
+
+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=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DWZ_DISTRIBUTOR="AlpineLinux" \
+ -DWZ_ENABLE_WARNINGS_AS_ERRORS=OFF \
+ -DENABLE_DISCORD=OFF \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+package() {
+ depends="$pkgname-data=$pkgver-r$pkgrel"
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+data() {
+ pkgdesc="Data files for warzone2100"
+
+ amove usr/share/warzone2100
+}
+
+sha512sums="
+ec65f22a0aad9fe482c4ea916cb321d171b10f0a9b181fea7db2eb17bf54e32b3828c8259082fff266713e2cab4e32dcc455d0d5b923a5ca221fc77b11137062 warzone2100-4.3.5.tar.xz
+7f2998c29a3d6e94b0d475f1d467752568533fe9c84ffdee7a441f62cd8027aecbfdd990d4b1ea00099d6bc1776a0d88cb5b3336f802e274d93ea0740b421be2 samurai.patch
+"
diff --git a/testing/warzone2100/samurai.patch b/testing/warzone2100/samurai.patch
new file mode 100644
index 00000000000..b92b32d331f
--- /dev/null
+++ b/testing/warzone2100/samurai.patch
@@ -0,0 +1,13 @@
+diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
+index 1336ebe..ceb926b 100644
+--- a/3rdparty/CMakeLists.txt
++++ b/3rdparty/CMakeLists.txt
+@@ -102,7 +102,7 @@ if (WZ_ENABLE_BASIS_UNIVERSAL)
+ message(FATAL_ERROR "Failed to create directory for basis_universal_host_build")
+ endif()
+ execute_process(
+- COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal_host_build"
++ COMMAND ${CMAKE_COMMAND} -G Ninja -DCMAKE_BUILD_TYPE=Release "${CMAKE_CURRENT_SOURCE_DIR}/basis_universal_host_build"
+ WORKING_DIRECTORY "${BASISU_BINARY_DIR}"
+ RESULT_VARIABLE _basis_result
+ )
diff --git a/testing/wasmtime/APKBUILD b/testing/wasmtime/APKBUILD
new file mode 100644
index 00000000000..4ef7664e0c1
--- /dev/null
+++ b/testing/wasmtime/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=wasmtime
+pkgver=18.0.3
+pkgrel=0
+pkgdesc="Fast and secure runtime for WebAssembly"
+url="https://wasmtime.dev/"
+# others unsupported
+arch="aarch64 x86_64"
+license="Apache-2.0"
+depends_dev="libwasmtime=$pkgver-r$pkgrel"
+makedepends="
+ cargo
+ cargo-auditable
+ chrpath
+ rust-wasm
+ zstd-dev
+ "
+subpackages="libwasmtime $pkgname-dev"
+source="https://github.com/bytecodealliance/wasmtime/releases/download/v$pkgver/wasmtime-v$pkgver-src.tar.gz
+ system-zstd.patch
+ "
+builddir="$srcdir/wasmtime-v$pkgver-src"
+# net: fetch dependencies
+# check: custom_limiter_detect_os_oom_failure fails with oom for some reason
+options="!check net"
+
+
+prepare() {
+ default_prepare
+
+ git init -q
+ # can't patch deps with vendor dir
+ rm -fv .cargo/config.toml
+ rm -rf vendor
+
+ # Rust target triple.
+ local target=$(rustc -vV | sed -n 's/host: //p')
+
+ # Build against system-provided libs
+ mkdir -p .cargo
+ cat >> .cargo/config.toml <<-EOF
+ [target.$target]
+ zstd = { rustc-link-lib = ["zstd"] }
+ EOF
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+ cargo auditable build --frozen --release -p wasmtime-c-api
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/wasmtime -t "$pkgdir"/usr/bin/
+ # remove gigantic useless rpath to /usr/lib
+ chrpath -d target/release/libwasmtime.so
+ install -Dm644 target/release/libwasmtime.so -t "$pkgdir"/usr/lib/
+ cp -a crates/c-api/include "$pkgdir"/usr/
+}
+
+libwasmtime() {
+ amove usr/lib
+}
+
+sha512sums="
+de00e97c7075b6b0bf1dc7b1189512bd47cad60cae30d4885bedd070d2efabeb2fb5bf3409b49ad2713e2f8cc141186811bcb0527fc92cb4c9c278aea8713af5 wasmtime-v18.0.3-src.tar.gz
+5441687022cee3a4774052cf81aef786bfb6385f0474c13964320c529b9f82128063f088c6a6e3e3f2883b592b118f13e0dacb309697d0e8d8e2d9670e33bba7 system-zstd.patch
+"
diff --git a/testing/wasmtime/system-zstd.patch b/testing/wasmtime/system-zstd.patch
new file mode 100644
index 00000000000..7dbdf11eebb
--- /dev/null
+++ b/testing/wasmtime/system-zstd.patch
@@ -0,0 +1,67 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f5a3e5e..dc23e54 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2272,6 +2272,12 @@ dependencies = [
+ "zeroize",
+ ]
+
++[[package]]
++name = "pkg-config"
++version = "0.3.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
++
+ [[package]]
+ name = "plotters"
+ version = "0.3.1"
+@@ -4641,18 +4647,18 @@ dependencies = [
+
+ [[package]]
+ name = "zstd"
+-version = "0.11.1+zstd.1.5.2"
++version = "0.12.3+zstd.1.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "77a16b8414fde0414e90c612eba70985577451c4c504b99885ebed24762cb81a"
++checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806"
+ dependencies = [
+ "zstd-safe",
+ ]
+
+ [[package]]
+ name = "zstd-safe"
+-version = "5.0.1+zstd.1.5.2"
++version = "6.0.4+zstd.1.5.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7c12659121420dd6365c5c3de4901f97145b79651fb1d25814020ed2ed0585ae"
++checksum = "7afb4b54b8910cf5447638cb54bf4e8a65cbedd783af98b98c62ffe91f185543"
+ dependencies = [
+ "libc",
+ "zstd-sys",
+@@ -4660,10 +4666,11 @@ dependencies = [
+
+ [[package]]
+ name = "zstd-sys"
+-version = "2.0.1+zstd.1.5.2"
++version = "2.0.8+zstd.1.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b"
++checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+ dependencies = [
+ "cc",
+ "libc",
++ "pkg-config",
+ ]
+diff --git a/crates/cache/Cargo.toml b/crates/cache/Cargo.toml
+index b7fb059..1d9419f 100644
+--- a/crates/cache/Cargo.toml
++++ b/crates/cache/Cargo.toml
+@@ -18,7 +18,7 @@ log = { workspace = true }
+ serde = { version = "1.0.94", features = ["derive"] }
+ sha2 = "0.10.2"
+ toml = "0.5.5"
+-zstd = { version = "0.11.1", default-features = false }
++zstd = { version = "0.12", default-features = false, features = ["pkg-config"] }
+
+ [target.'cfg(target_os = "windows")'.dependencies.windows-sys]
+ workspace = true
diff --git a/testing/watchbind/APKBUILD b/testing/watchbind/APKBUILD
new file mode 100644
index 00000000000..b4dc030d0b5
--- /dev/null
+++ b/testing/watchbind/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=watchbind
+pkgver=0.2.1
+pkgrel=0
+pkgdesc="Turn any shell command into a powerful TUI with custom keybindings"
+url="https://github.com/fritzrehde/watchbind"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cargo cargo-auditable"
+subpackages="$pkgname-doc"
+options="net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/fritzrehde/watchbind/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 "target/release/$pkgname" -t "$pkgdir/usr/bin"
+ install -Dm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname"
+}
+
+sha512sums="
+4084e854e070b2c9736e2ef10025f6703efcac8e9fb9c345f09e03a2048d0437e2d470b684f25306b66fca99cbeab40202d0560eba24aa2a69220b34369d2f46 watchbind-0.2.1.tar.gz
+"
diff --git a/testing/watchdog/APKBUILD b/testing/watchdog/APKBUILD
new file mode 100644
index 00000000000..3b23d94e372
--- /dev/null
+++ b/testing/watchdog/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=watchdog
+pkgver=5.16
+pkgrel=1
+pkgdesc="watchdog daemon"
+url="https://sourceforge.net/projects/watchdog/"
+arch="all"
+license="GPL-2.0-or-later"
+options="!check" # no test
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/watchdog/watchdog-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --with-pidfile=/run/watchdog.pid \
+ --with-ka_pidfile=/run/wd_keepalive.pid \
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+1c9c921570ec7ddc3e4ff88b2029f1c3865277e547fb8970575df4b61fdf1f06f443f49ad09f11c29d913ca7d6ab05c5b19ec049ac218a8bcebd20b1bf5f0bbd watchdog-5.16.tar.gz
+"
diff --git a/testing/watchexec/APKBUILD b/testing/watchexec/APKBUILD
deleted file mode 100644
index f0965e7c807..00000000000
--- a/testing/watchexec/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Chloe Kudryavtsev <toast@toastin.space>
-# Maintainer: Chloe Kudryavtsev <toast@toastin.space>
-pkgname=watchexec
-pkgver=1.12.0
-pkgrel=0
-pkgdesc='Executes commands in response to file modifications'
-url='https://github.com/watchexec/watchexec'
-arch='x86_64 x86 armhf armv7 aarch64 ppc64le' # limited by rust/cargo
-license='Apache-2.0'
-makedepends='cargo'
-subpackages="$pkgname-doc
- $pkgname-zsh-completion
- "
-source="watchexec-$pkgver.tar.gz::https://github.com/watchexec/watchexec/archive/$pkgver.tar.gz"
-
-export CARGO_HOME="$srcdir"/cargo
-
-build() {
- cargo build \
- --release \
- --verbose
-}
-
-check() {
- cargo test --all \
- --release \
- --verbose
-}
-
-package() {
- install -Dm755 target/release/"$pkgname" "$pkgdir"/usr/bin/"$pkgname"
- install -Dm644 doc/"$pkgname".1 "$pkgdir"/usr/share/man/man1/"$pkgname".1
- install -Dm644 "$builddir"/completions/zsh \
- "$pkgdir"/usr/share/zsh/site-functions/_watchexec
-}
-
-sha512sums="71c93f926863c5fbda26fa69316c1ad8ee4d2afac1e89b1231f0b7b3879efe736304beb49865b9bbb5840e730f922b8a6ecc962c5893fbf5b734ce462f96e25b watchexec-1.12.0.tar.gz"
diff --git a/testing/watchman/APKBUILD b/testing/watchman/APKBUILD
deleted file mode 100644
index e53175e9be2..00000000000
--- a/testing/watchman/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: André Klitzing <aklitzing@gmail.com>
-pkgname=watchman
-pkgver=4.9.0
-pkgrel=2
-pkgdesc="A file watching service"
-url="https://facebook.github.io/watchman/"
-arch="all !s390x !mips !mips64" # broken tests on big-endian
-license="Apache-2.0"
-makedepends="pcre-dev autoconf automake linux-headers libtool openssl-dev python3-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/facebook/watchman/archive/v$pkgver.tar.gz
- e77eb9597c4c094a0b0bbeef0b957b49b40b87eb.patch
- Replaced-memset-calls-with-appropriate-C++11-init-or-assignment.patch
- "
-builddir="$srcdir/"$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- ./autogen.sh
- ./configure --prefix= --exec-prefix=/usr --enable-lenient
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR=$pkgdir install-binPROGRAMS
-}
-
-sha512sums="f25b77f73bca3e25a0254a98af5c8125b8a31133ec3702cac656459f3522d5f0bf2e96d5893ca9fb5ce3ae18adce58224746bd8ca9afc5c312bcd697cb5b2d5d watchman-4.9.0.tar.gz
-6bb0bb780c6f4067e74dcdeafdef3063ac8e1885e7e9529594e83261107975b152b4fde2693d026c275a7dc7b7dc08e209dd772aeea186678933dbbec5a8f1fe e77eb9597c4c094a0b0bbeef0b957b49b40b87eb.patch
-f511cd9bc3468fdf18b09fd7738755fce0cabc4aa1026dfb45066675e359f62ec5b1d69effa2d8cfb9c68520ce7c62bd619ad5681652c418427f0282a7930b99 Replaced-memset-calls-with-appropriate-C++11-init-or-assignment.patch"
diff --git a/testing/watchman/Replaced-memset-calls-with-appropriate-C++11-init-or-assignment.patch b/testing/watchman/Replaced-memset-calls-with-appropriate-C++11-init-or-assignment.patch
deleted file mode 100644
index 1b56062c490..00000000000
--- a/testing/watchman/Replaced-memset-calls-with-appropriate-C++11-init-or-assignment.patch
+++ /dev/null
@@ -1,482 +0,0 @@
-From 8ab92d2d307066f3aa44f13be0e4ac7c11c740ca Mon Sep 17 00:00:00 2001
-From: Sergey Zhupanov <zhupanov@fb.com>
-Date: Thu, 25 Jan 2018 14:58:21 -0800
-Subject: [PATCH] Replaced memset calls with appopriate C++11 init or
- assignment.
-
-Summary: Replaced memset calls with appropriate C++ init or assignment to default-constructed struct.
-
-Reviewed By: wez
-
-Differential Revision: D6770919
-
-fbshipit-source-id: 7d623da7935b54cf00c4775f56298845c528c9f1
----
- FileDescriptor.cpp | 6 ++----
- Pipe.cpp | 3 +--
- json.cpp | 2 +-
- listener.cpp | 6 ++----
- log.cpp | 3 +--
- main.cpp | 6 ++----
- opendir.cpp | 4 ++--
- scm/Mercurial.cpp | 2 +-
- stream_unix.cpp | 3 +--
- stream_win.cpp | 3 +--
- tests/bser.cpp | 2 +-
- watcher/eden.cpp | 2 +-
- watcher/fsevents.cpp | 6 ++----
- watcher/kqueue.cpp | 9 +++------
- watcher/win32.cpp | 3 +--
- winbuild/backtrace.cpp | 2 +-
- winbuild/dir.cpp | 2 +-
- winbuild/posix_spawn.cpp | 14 +++++---------
- 18 files changed, 29 insertions(+), 49 deletions(-)
-
-diff --git a/FileDescriptor.cpp b/FileDescriptor.cpp
-index 21c79285..4f4e220e 100644
---- a/FileDescriptor.cpp
-+++ b/FileDescriptor.cpp
-@@ -151,7 +151,7 @@ bool FileDescriptor::isNonBlock() const {
- * If the case does not match, throws an exception. */
- static void checkCanonicalBaseName(const char *path) {
- #ifdef __APPLE__
-- struct attrlist attrlist;
-+ struct attrlist attrlist = {};
- struct {
- uint32_t len;
- attrreference_t ref;
-@@ -160,7 +160,6 @@ static void checkCanonicalBaseName(const char *path) {
- w_string_piece pathPiece(path);
- auto base = pathPiece.baseName();
-
-- memset(&attrlist, 0, sizeof(attrlist));
- attrlist.bitmapcount = ATTR_BIT_MAP_COUNT;
- attrlist.commonattr = ATTR_CMN_NAME;
-
-@@ -237,7 +236,7 @@ FileDescriptor openFileHandle(const char *path,
- #else // _WIN32
- DWORD access = 0, share = 0, create = 0, attrs = 0;
- DWORD err;
-- SECURITY_ATTRIBUTES sec;
-+ SECURITY_ATTRIBUTES sec = {};
-
- if (!strcmp(path, "/dev/null")) {
- path = "NUL:";
-@@ -259,7 +258,6 @@ FileDescriptor openFileHandle(const char *path,
- // We want more posix-y behavior by default
- share = FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE;
-
-- memset(&sec, 0, sizeof(sec));
- sec.nLength = sizeof(sec);
- sec.bInheritHandle = TRUE;
- if (opts.closeOnExec) {
-diff --git a/Pipe.cpp b/Pipe.cpp
-index 6e087ba2..a6fe3100 100644
---- a/Pipe.cpp
-+++ b/Pipe.cpp
-@@ -11,9 +11,8 @@ Pipe::Pipe() {
- #ifdef _WIN32
- HANDLE readPipe;
- HANDLE writePipe;
-- SECURITY_ATTRIBUTES sec;
-+ SECURITY_ATTRIBUTES sec = {};
-
-- memset(&sec, 0, sizeof(sec));
- sec.nLength = sizeof(sec);
- sec.bInheritHandle = FALSE; // O_CLOEXEC equivalent
- constexpr DWORD kPipeSize = 64 * 1024;
-diff --git a/json.cpp b/json.cpp
-index f1a02121..257ec795 100644
---- a/json.cpp
-+++ b/json.cpp
-@@ -492,7 +492,7 @@ bool watchman_json_buffer::passThru(
- }
-
- json_ref watchman_json_buffer::decodeNext(w_stm_t stm, json_error_t* jerr) {
-- memset(jerr, 0, sizeof(*jerr));
-+ *jerr = json_error_t();
- if (!readAndDetectPdu(stm, jerr)) {
- return nullptr;
- }
-diff --git a/listener.cpp b/listener.cpp
-index 99f7126c..4953020d 100644
---- a/listener.cpp
-+++ b/listener.cpp
-@@ -446,7 +446,7 @@ static std::shared_ptr<watchman_client> make_new_client(
- #ifdef _WIN32
- static void named_pipe_accept_loop_internal(const char* path) {
- HANDLE handles[2];
-- OVERLAPPED olap;
-+ OVERLAPPED olap = {};
- HANDLE connected_event = CreateEvent(NULL, FALSE, TRUE, NULL);
-
- if (!connected_event) {
-@@ -459,7 +459,6 @@ static void named_pipe_accept_loop_internal(const char* path) {
-
- handles[0] = connected_event;
- handles[1] = listener_thread_event;
-- memset(&olap, 0, sizeof(olap));
- olap.hEvent = connected_event;
-
- w_log(W_LOG_ERR, "waiting for pipe clients on %s\n", path);
-@@ -592,7 +591,7 @@ static void accept_loop(FileDescriptor&& listenerDescriptor) {
- bool w_start_listener(const char *path)
- {
- #ifndef _WIN32
-- struct sigaction sa;
-+ struct sigaction sa = {};
- sigset_t sigset;
- #endif
-
-@@ -667,7 +666,6 @@ bool w_start_listener(const char *path)
-
- /* allow SIGUSR1 and SIGCHLD to wake up a blocked thread, without restarting
- * syscalls */
-- memset(&sa, 0, sizeof(sa));
- sa.sa_handler = wakeme;
- sa.sa_flags = 0;
- sigaction(SIGUSR1, &sa, NULL);
-diff --git a/log.cpp b/log.cpp
-index 9b0b96fa..489fbf90 100644
---- a/log.cpp
-+++ b/log.cpp
-@@ -298,9 +298,8 @@ static LONG WINAPI exception_filter(LPEXCEPTION_POINTERS excep) {
-
- void w_setup_signal_handlers(void) {
- #ifndef _WIN32
-- struct sigaction sa;
-+ struct sigaction sa = {};
-
-- memset(&sa, 0, sizeof(sa));
- sa.sa_sigaction = crash_handler;
- sa.sa_flags = SA_SIGINFO|SA_RESETHAND;
-
-diff --git a/main.cpp b/main.cpp
-index b43b3f6d..1f1783be 100644
---- a/main.cpp
-+++ b/main.cpp
-@@ -49,7 +49,7 @@ static bool lock_pidfile(void) {
-
- static bool lock_pidfile(void) {
- #if !defined(USE_GIMLI) && !defined(_WIN32)
-- struct flock lock;
-+ struct flock lock = {};
- pid_t mypid;
-
- // We defer computing this path until we're in the server context because
-@@ -58,7 +58,6 @@
- compute_file_name(&pid_file, compute_user_name(), "pid", "pidfile");
-
- mypid = getpid();
-- memset(&lock, 0, sizeof(lock));
- lock.l_type = F_WRLCK;
- lock.l_start = 0;
- lock.l_whence = SEEK_SET;
-@@ -1041,10 +1040,9 @@ static json_ref build_command(int argc, char** argv) {
-
- // Read blob from stdin
- if (json_input_arg) {
-- json_error_t err;
-+ json_error_t err = {};
- w_jbuffer_t buf;
-
-- memset(&err, 0, sizeof(err));
- auto cmd = buf.decodeNext(w_stm_stdin(), &err);
-
- if (buf.pdu_type == is_bser) {
-diff --git a/opendir.cpp b/opendir.cpp
-index 2d546983..eb4e22b0 100644
---- a/opendir.cpp
-+++ b/opendir.cpp
-@@ -142,7 +142,7 @@ DirHandle::DirHandle(const char* path, bool strict) {
- throw std::system_error(ENOTDIR, std::generic_category(), path);
- }
-
-- memset(&attrlist_, 0, sizeof(attrlist_));
-+ attrlist_ = attrlist();
- attrlist_.bitmapcount = ATTR_BIT_MAP_COUNT;
- attrlist_.commonattr = ATTR_CMN_RETURNED_ATTRS |
- ATTR_CMN_ERROR |
-@@ -216,7 +216,7 @@ const watchman_dir_ent* DirHandle::readDir() {
- return &ent_;
- }
-
-- memset(&ent_.stat, 0, sizeof(ent_.stat));
-+ ent_.stat = watchman::FileInformation();
-
- ent_.stat.dev = item->dev;
- memcpy(&ent_.stat.mtime, &item->mtime, sizeof(item->mtime));
-diff --git a/scm/Mercurial.cpp b/scm/Mercurial.cpp
-index 0b69702e..956b708c 100644
---- a/scm/Mercurial.cpp
-+++ b/scm/Mercurial.cpp
-@@ -29,7 +29,7 @@ ChildProcess::Options Mercurial::makeHgOptions() const {
- }
-
- Mercurial::infoCache::infoCache(std::string path) : dirStatePath(path) {
-- memset(&dirstate, 0, sizeof(dirstate));
-+ dirstate = FileInformation();
- }
-
- w_string Mercurial::infoCache::lookupMergeBase(const std::string& commitId) {
-diff --git a/stream_unix.cpp b/stream_unix.cpp
-index db5af1c3..c9082f3e 100644
---- a/stream_unix.cpp
-+++ b/stream_unix.cpp
-@@ -222,7 +222,7 @@ std::unique_ptr<watchman_stream> w_stm_fdopen(FileDescriptor&& fd) {
- std::unique_ptr<watchman_stream> w_stm_connect_unix(
- const char* path,
- int timeoutms) {
-- struct sockaddr_un un;
-+ struct sockaddr_un un = {};
- int max_attempts = timeoutms / 10;
- int attempts = 0;
- int bufsize = WATCHMAN_IO_BUF_SIZE;
-@@ -238,7 +238,6 @@ std::unique_ptr<watchman_stream> w_stm_connect_unix(
- return nullptr;
- }
-
-- memset(&un, 0, sizeof(un));
- un.sun_family = PF_LOCAL;
- memcpy(un.sun_path, path, strlen(path));
-
-diff --git a/stream_win.cpp b/stream_win.cpp
-index 85d1cb73..70831626 100644
---- a/stream_win.cpp
-+++ b/stream_win.cpp
-@@ -715,7 +715,7 @@ int w_poll_events(struct watchman_event_poll *p, int n, int timeoutms) {
- FileDescriptor w_handle_open(const char* path, int flags) {
- DWORD access = 0, share = 0, create = 0, attrs = 0;
- DWORD err;
-- SECURITY_ATTRIBUTES sec;
-+ SECURITY_ATTRIBUTES sec = {};
-
- if (!strcmp(path, "/dev/null")) {
- path = "NUL:";
-@@ -733,7 +733,6 @@ FileDescriptor w_handle_open(const char* path, int flags) {
- // We want more posix-y behavior by default
- share = FILE_SHARE_DELETE|FILE_SHARE_READ|FILE_SHARE_WRITE;
-
-- memset(&sec, 0, sizeof(sec));
- sec.nLength = sizeof(sec);
- sec.bInheritHandle = TRUE;
- if (flags & O_CLOEXEC) {
-diff --git a/tests/bser.cpp b/tests/bser.cpp
-index 881cb5bb..d6f0b9c8 100644
---- a/tests/bser.cpp
-+++ b/tests/bser.cpp
-@@ -155,7 +155,7 @@ static bool check_roundtrip(
- const char* end = dump_buf->data() + dump_buf->size();
- hexdump(dump_buf->data(), end);
-
-- memset(&jerr, 0, sizeof(jerr));
-+ jerr = json_error_t();
- auto decoded = bunser(dump_buf->data(), end, &needed, &jerr);
- ok(decoded, "decoded something (err = %s)", jerr.text);
-
-diff --git a/watcher/eden.cpp b/watcher/eden.cpp
-index a97bb3ea..55d6ba62 100644
---- a/watcher/eden.cpp
-+++ b/watcher/eden.cpp
-@@ -173,7 +173,7 @@ class EdenFileResult : public FileResult {
- exists_ = true;
- } else {
- exists_ = false;
-- memset(&stat_, 0, sizeof(stat_));
-+ stat_ = watchman::FileInformation();
- }
- }
-
-diff --git a/watcher/fsevents.cpp b/watcher/fsevents.cpp
-index 25a4f9cb..56da24cc 100644
---- a/watcher/fsevents.cpp
-+++ b/watcher/fsevents.cpp
-@@ -275,7 +275,7 @@ static fse_stream* fse_stream_make(
- const std::shared_ptr<w_root_t>& root,
- FSEventStreamEventId since,
- w_string& failure_reason) {
-- FSEventStreamContext ctx;
-+ FSEventStreamContext ctx = {};
- CFMutableArrayRef parray = nullptr;
- CFStringRef cpath = nullptr;
- double latency;
-@@ -328,7 +328,6 @@ static fse_stream* fse_stream_make(
- }
- }
-
-- memset(&ctx, 0, sizeof(ctx));
- ctx.info = fse_stream;
-
- parray = CFArrayCreateMutable(nullptr, 0, &kCFTypeArrayCallBacks);
-@@ -440,7 +439,7 @@ static fse_stream* fse_stream_make(
-
- void FSEventsWatcher::FSEventsThread(const std::shared_ptr<w_root_t>& root) {
- CFFileDescriptorRef fdref;
-- CFFileDescriptorContext fdctx;
-+ CFFileDescriptorContext fdctx = {};
-
- w_set_thread_name("fsevents %s", root->root_path.c_str());
-
-@@ -450,7 +449,6 @@ void FSEventsWatcher::FSEventsThread(const std::shared_ptr<w_root_t>& root) {
-
- attempt_resync_on_drop = root->config.getBool("fsevents_try_resync", true);
-
-- memset(&fdctx, 0, sizeof(fdctx));
- fdctx.info = root.get();
-
- fdref = CFFileDescriptorCreate(
-diff --git a/watcher/kqueue.cpp b/watcher/kqueue.cpp
-index 7c288fe6..554d188b 100644
---- a/watcher/kqueue.cpp
-+++ b/watcher/kqueue.cpp
-@@ -70,7 +70,7 @@ KQueueWatcher::KQueueWatcher(w_root_t* root)
- }
-
- bool KQueueWatcher::startWatchFile(struct watchman_file* file) {
-- struct kevent k;
-+ struct kevent k = {};
-
- auto full_name = w_dir_path_cat_str(file->parent, file->getName());
- {
-@@ -98,7 +98,6 @@ bool KQueueWatcher::startWatchFile(struct watchman_file* file) {
- return false;
- }
-
-- memset(&k, 0, sizeof(k));
- EV_SET(
- &k,
- rawFd,
-@@ -140,7 +139,7 @@ std::unique_ptr<watchman_dir_handle> KQueueWatcher::startWatchDir(
- struct timeval,
- const char* path) {
- struct stat st, osdirst;
-- struct kevent k;
-+ struct kevent k = {};
-
- auto osdir = w_dir_open(path);
-
-@@ -169,7 +168,6 @@ std::unique_ptr<watchman_dir_handle> KQueueWatcher::startWatchDir(
- std::string("directory replaced between opendir and open: ") + path);
- }
-
-- memset(&k, 0, sizeof(k));
- auto dir_name = dir->getFullPath();
- EV_SET(
- &k,
-@@ -256,7 +254,7 @@ bool KQueueWatcher::consumeNotify(
- fflags,
- flags_label);
- if ((fflags & (NOTE_DELETE|NOTE_RENAME|NOTE_REVOKE))) {
-- struct kevent k;
-+ struct kevent k = {};
-
- if (w_string_equal(path, root->root_path)) {
- w_log(
-@@ -269,7 +267,6 @@ bool KQueueWatcher::consumeNotify(
- }
-
- // Remove our watch bits
-- memset(&k, 0, sizeof(k));
- EV_SET(&k, fd, EVFILT_VNODE, EV_DELETE, 0, 0, nullptr);
- kevent(kq_fd.fd(), &k, 1, nullptr, 0, 0);
- wlock->name_to_fd.erase(path);
-diff --git a/watcher/win32.cpp b/watcher/win32.cpp
-index 561cc02b..45edc22b 100644
---- a/watcher/win32.cpp
-+++ b/watcher/win32.cpp
-@@ -108,7 +108,7 @@ void WinWatcher::signalThreads() {
- void WinWatcher::readChangesThread(const std::shared_ptr<w_root_t>& root) {
- std::vector<uint8_t> buf;
- DWORD err, filter;
-- OVERLAPPED olap;
-+ OVERLAPPED olap = {};
- BOOL initiate_read = true;
- HANDLE handles[2] = {olapEvent, ping};
- DWORD bytes;
-@@ -132,7 +132,6 @@ void WinWatcher::readChangesThread(const std::shared_ptr<w_root_t>& root) {
- FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_SIZE |
- FILE_NOTIFY_CHANGE_LAST_WRITE;
-
-- memset(&olap, 0, sizeof(olap));
- olap.hEvent = olapEvent;
-
- buf.resize(size);
-diff --git a/winbuild/backtrace.cpp b/winbuild/backtrace.cpp
-index e949a578..d3488408 100644
---- a/winbuild/backtrace.cpp
-+++ b/winbuild/backtrace.cpp
-@@ -40,7 +40,7 @@ char **backtrace_symbols(void **array, size_t n_frames) {
-
- std::call_once(sym_init_once, sym_init);
-
-- memset(&sym.info, 0, sizeof(sym.info));
-+ sym.info = SYMBOL_INFO();
- sym.info.MaxNameLen = sizeof(sym) - sizeof(sym.info);
- sym.info.SizeOfStruct = sizeof(sym.info);
-
-diff --git a/winbuild/dir.cpp b/winbuild/dir.cpp
-index 747b1a9f..f0a69398 100644
---- a/winbuild/dir.cpp
-+++ b/winbuild/dir.cpp
-@@ -41,7 +41,7 @@ class WinDirHandle : public watchman_dir_handle {
- win7_ = true;
- }
-
-- memset(&ent_, 0, sizeof(ent_));
-+ ent_ = watchman_dir_ent();
- ent_.d_name = nameBuf_;
- ent_.has_stat = true;
- if (path[1] == ':') {
-diff --git a/winbuild/posix_spawn.cpp b/winbuild/posix_spawn.cpp
-index 7a12f548..532df654 100644
---- a/winbuild/posix_spawn.cpp
-+++ b/winbuild/posix_spawn.cpp
-@@ -37,7 +37,7 @@ pid_t waitpid(pid_t pid, int* status, int options) {
- }
-
- int posix_spawnattr_init(posix_spawnattr_t *attrp) {
-- memset(attrp, 0, sizeof(*attrp));
-+ *attrp = posix_spawnattr_t();
- return 0;
- }
-
-@@ -72,7 +72,7 @@ int posix_spawnattr_destroy(posix_spawnattr_t *attrp) {
- }
-
- int posix_spawn_file_actions_init(posix_spawn_file_actions_t *actions) {
-- memset(actions, 0, sizeof(*actions));
-+ *actions = posix_spawn_file_actions_t();
- return 0;
- }
-
-@@ -242,9 +242,9 @@ static int posix_spawn_common(
- const posix_spawn_file_actions_t *file_actions,
- const posix_spawnattr_t *attrp,
- char *const argv[], char *const envp[]) {
-- STARTUPINFOEX sinfo;
-- SECURITY_ATTRIBUTES sec;
-- PROCESS_INFORMATION pinfo;
-+ STARTUPINFOEX sinfo = {};
-+ SECURITY_ATTRIBUTES sec = {};
-+ PROCESS_INFORMATION pinfo = {};
- char *cmdbuf;
- char *env_block;
- DWORD create_flags = CREATE_NO_WINDOW|EXTENDED_STARTUPINFO_PRESENT;
-@@ -263,17 +263,13 @@ static int posix_spawn_common(
- return ENOMEM;
- }
-
-- memset(&sinfo, 0, sizeof(sinfo));
- sinfo.StartupInfo.cb = sizeof(sinfo);
- sinfo.StartupInfo.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
- sinfo.StartupInfo.wShowWindow = SW_HIDE;
-
-- memset(&sec, 0, sizeof(sec));
- sec.nLength = sizeof(sec);
- sec.bInheritHandle = TRUE;
-
-- memset(&pinfo, 0, sizeof(pinfo));
--
- if (attrp->flags & POSIX_SPAWN_SETPGROUP) {
- create_flags |= CREATE_NEW_PROCESS_GROUP;
- }
diff --git a/testing/watchman/e77eb9597c4c094a0b0bbeef0b957b49b40b87eb.patch b/testing/watchman/e77eb9597c4c094a0b0bbeef0b957b49b40b87eb.patch
deleted file mode 100644
index 17288fef58e..00000000000
--- a/testing/watchman/e77eb9597c4c094a0b0bbeef0b957b49b40b87eb.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From e77eb9597c4c094a0b0bbeef0b957b49b40b87eb Mon Sep 17 00:00:00 2001
-From: Wez Furlong <wez@fb.com>
-Date: Mon, 8 Jan 2018 21:57:43 -0800
-Subject: [PATCH] fix art.t test failure on alpine linux
-
-Summary:
-Looks like we end up with root_ holding a nullptr after
-the associated test is finished. This only seems to be a problem
-in practice on Alpine linux's musl libc based environment, and
-only when built with `-O2`. Not sure if this is a c++ standard
-library implementation issue or a compiler optimization, or a
-combination of both of those things.
-
-Guard against that with a simple nullptr check.
-
-Refs https://github.com/facebook/watchman/issues/546
-
-Reviewed By: simpkins
-
-Differential Revision: D6681244
-
-fbshipit-source-id: f119b3552c0aeedc325fa83c71b12745536b1dac
----
- thirdparty/libart/src/art-inl.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/thirdparty/libart/src/art-inl.h b/thirdparty/libart/src/art-inl.h
-index fce055be..acc7cd67 100644
---- a/thirdparty/libart/src/art-inl.h
-+++ b/thirdparty/libart/src/art-inl.h
-@@ -760,7 +760,7 @@ art_tree<ValueType, KeyType>::Node::maximum() const {
- template <typename ValueType, typename KeyType>
- typename art_tree<ValueType, KeyType>::Leaf*
- art_tree<ValueType, KeyType>::minimum() const {
-- return root_->minimum();
-+ return root_ ? root_->minimum() : nullptr;
- }
-
- /**
-@@ -769,7 +769,7 @@ art_tree<ValueType, KeyType>::minimum() const {
- template <typename ValueType, typename KeyType>
- typename art_tree<ValueType, KeyType>::Leaf*
- art_tree<ValueType, KeyType>::maximum() const {
-- return root_->maximum();
-+ return root_ ? root_->maximum() : nullptr;
- }
-
- template <typename ValueType, typename KeyType>
diff --git a/testing/watchmate/APKBUILD b/testing/watchmate/APKBUILD
new file mode 100644
index 00000000000..6b66667769d
--- /dev/null
+++ b/testing/watchmate/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Siva Mahadevan <me@svmhdvn.name>
+# Maintainer: Siva Mahadevan <me@svmhdvn.name>
+pkgname=watchmate
+pkgver=0.5.1
+pkgrel=1
+pkgdesc="Companion app for InfiniTime-powered PineTime smart watch"
+url="https://github.com/azymohliad/watchmate"
+# s390x: https://github.com/nix-rust/nix/issues/1968
+arch="all !s390x"
+license="GPL-3.0-only"
+makedepends="
+ cargo
+ cargo-auditable
+ dbus-dev
+ gdk-pixbuf-dev
+ graphene-dev
+ gtk4.0-dev
+ libadwaita-dev
+ openssl-dev
+ pango-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/azymohliad/watchmate/archive/refs/tags/v$pkgver.tar.gz"
+options="net" # needed for downloading dependencies
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --release --frozen
+}
+
+package() {
+ local appid="io.gitlab.azymohliad.WatchMate"
+ install -Dm755 target/release/"$pkgname" -t "$pkgdir"/usr/bin/
+ install -Dm644 "assets/$appid.desktop" -t "$pkgdir/usr/share/applications/"
+ install -Dm644 "assets/$appid.gschema.xml" -t "$pkgdir/usr/share/glib-2.0/schemas/"
+ install -Dm644 "assets/$appid.metainfo.xml" -t "$pkgdir/usr/share/metainfo/"
+ install -Dm644 "assets/icons/$appid.svg" -t \
+ "$pkgdir/usr/share/icons/hicolor/scalable/apps/"
+ install -Dm644 "assets/icons/$appid-symbolic.svg" -t \
+ "$pkgdir/usr/share/icons/hicolor/symbolic/apps/"
+}
+
+sha512sums="
+24afe6c86710a712ff8e0aaa03d6b43b150ebae840abaeb61d4a3bc385e71dca6d9bde0f37f9577b1900519918e8bd212a994a823b73287085f08e58b0bf7e83 watchmate-0.5.1.tar.gz
+"
diff --git a/testing/watershot/APKBUILD b/testing/watershot/APKBUILD
new file mode 100644
index 00000000000..f1b2fd77085
--- /dev/null
+++ b/testing/watershot/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=watershot
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="A simple wayland native screenshot tool"
+url="https://github.com/Kirottu/watershot"
+# s390x: no desktop on this arch
+arch="all !s390x"
+license="GPL-3.0-only"
+depends="grim"
+makedepends="
+ cargo
+ cargo-auditable
+ fontconfig-dev
+ libxkbcommon-dev
+ wayland-dev
+ "
+source="https://github.com/Kirottu/watershot/archive/v$pkgver/watershot-$pkgver.tar.gz
+ cargo-features.patch
+ "
+options="!check" # no tests provided
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL="z"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+8997eaf8277c5abc166b064999d3ba7ddfe88b10536aea07cd91a7fc9e3720490fc6343b6b091d1c9e09d5f3de7b9251f01f926a4ad43600681527320bba4209 watershot-0.2.0.tar.gz
+a5b1c7b86970a056894fdb2e9cd174227982764b50fbd96a2765a2d3a1bd729593bee5ac2487dbbc94f247a76bceea17b6bf585c5bc0d734d3e978c8389103c0 cargo-features.patch
+"
diff --git a/testing/watershot/cargo-features.patch b/testing/watershot/cargo-features.patch
new file mode 100644
index 00000000000..f72a5bf28be
--- /dev/null
+++ b/testing/watershot/cargo-features.patch
@@ -0,0 +1,364 @@
+Patch-Source: https://github.com/Kirottu/watershot/pull/15
+--
+diff --git a/Cargo.lock b/Cargo.lock
+index bef75e4..dd3d142 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -44,15 +44,6 @@ dependencies = [
+ "version_check",
+ ]
+
+-[[package]]
+-name = "aho-corasick"
+-version = "0.7.20"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+-dependencies = [
+- "memchr",
+-]
+-
+ [[package]]
+ name = "android_system_properties"
+ version = "0.1.5"
+@@ -128,12 +119,6 @@ version = "0.6.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+-[[package]]
+-name = "bit_field"
+-version = "0.10.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
+-
+ [[package]]
+ name = "bitflags"
+ version = "1.3.2"
+@@ -377,12 +362,6 @@ dependencies = [
+ "cfg-if",
+ ]
+
+-[[package]]
+-name = "crunchy"
+-version = "0.2.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+-
+ [[package]]
+ name = "cxx"
+ version = "1.0.87"
+@@ -476,10 +455,8 @@ version = "0.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+ dependencies = [
+- "humantime",
+ "is-terminal",
+ "log",
+- "regex",
+ "termcolor",
+ ]
+
+@@ -504,21 +481,6 @@ dependencies = [
+ "libc",
+ ]
+
+-[[package]]
+-name = "exr"
+-version = "1.5.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8eb5f255b5980bb0c8cf676b675d1a99be40f316881444f44e0462eaf5df5ded"
+-dependencies = [
+- "bit_field",
+- "flume",
+- "half",
+- "lebe",
+- "miniz_oxide",
+- "smallvec",
+- "threadpool",
+-]
+-
+ [[package]]
+ name = "fastrand"
+ version = "1.8.0"
+@@ -544,19 +506,6 @@ dependencies = [
+ "miniz_oxide",
+ ]
+
+-[[package]]
+-name = "flume"
+-version = "0.10.14"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
+-dependencies = [
+- "futures-core",
+- "futures-sink",
+- "nanorand",
+- "pin-project",
+- "spin",
+-]
+-
+ [[package]]
+ name = "fnv"
+ version = "1.0.7"
+@@ -587,18 +536,6 @@ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+-[[package]]
+-name = "futures-core"
+-version = "0.3.25"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+-
+-[[package]]
+-name = "futures-sink"
+-version = "0.3.25"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+-
+ [[package]]
+ name = "getrandom"
+ version = "0.2.8"
+@@ -606,20 +543,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+ dependencies = [
+ "cfg-if",
+- "js-sys",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+- "wasm-bindgen",
+-]
+-
+-[[package]]
+-name = "gif"
+-version = "0.11.4"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06"
+-dependencies = [
+- "color_quant",
+- "weezl",
+ ]
+
+ [[package]]
+@@ -730,15 +655,6 @@ dependencies = [
+ "bitflags 1.3.2",
+ ]
+
+-[[package]]
+-name = "half"
+-version = "2.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ad6a9459c9c30b177b925162351f97e7d967c7ea8bab3b8352805327daf45554"
+-dependencies = [
+- "crunchy",
+-]
+-
+ [[package]]
+ name = "hashbrown"
+ version = "0.12.3"
+@@ -793,12 +709,6 @@ version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+-[[package]]
+-name = "humantime"
+-version = "2.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+-
+ [[package]]
+ name = "iana-time-zone"
+ version = "0.1.53"
+@@ -832,14 +742,10 @@ dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+- "exr",
+- "gif",
+ "jpeg-decoder",
+ "num-rational",
+ "num-traits",
+ "png",
+- "scoped_threadpool",
+- "tiff",
+ "webp",
+ ]
+
+@@ -928,12 +834,6 @@ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+-[[package]]
+-name = "lebe"
+-version = "0.5.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
+-
+ [[package]]
+ name = "libc"
+ version = "0.2.138"
+@@ -1097,15 +997,6 @@ dependencies = [
+ "unicode-xid",
+ ]
+
+-[[package]]
+-name = "nanorand"
+-version = "0.7.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+-dependencies = [
+- "getrandom",
+-]
+-
+ [[package]]
+ name = "nix"
+ version = "0.24.3"
+@@ -1295,26 +1186,6 @@ dependencies = [
+ "indexmap",
+ ]
+
+-[[package]]
+-name = "pin-project"
+-version = "1.0.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+-dependencies = [
+- "pin-project-internal",
+-]
+-
+-[[package]]
+-name = "pin-project-internal"
+-version = "1.0.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+-dependencies = [
+- "proc-macro2",
+- "quote",
+- "syn 1.0.107",
+-]
+-
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.26"
+@@ -1484,23 +1355,6 @@ dependencies = [
+ "bitflags 1.3.2",
+ ]
+
+-[[package]]
+-name = "regex"
+-version = "1.7.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+-dependencies = [
+- "aho-corasick",
+- "memchr",
+- "regex-syntax",
+-]
+-
+-[[package]]
+-name = "regex-syntax"
+-version = "0.6.28"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+-
+ [[package]]
+ name = "remove_dir_all"
+ version = "0.5.3"
+@@ -1559,12 +1413,6 @@ version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+-[[package]]
+-name = "scoped_threadpool"
+-version = "0.1.9"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+-
+ [[package]]
+ name = "scopeguard"
+ version = "1.1.0"
+@@ -1636,15 +1484,6 @@ dependencies = [
+ "xkbcommon",
+ ]
+
+-[[package]]
+-name = "spin"
+-version = "0.9.4"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+-dependencies = [
+- "lock_api",
+-]
+-
+ [[package]]
+ name = "spirv"
+ version = "0.2.0+1.5.4"
+@@ -1732,26 +1571,6 @@ dependencies = [
+ "syn 1.0.107",
+ ]
+
+-[[package]]
+-name = "threadpool"
+-version = "1.8.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+-dependencies = [
+- "num_cpus",
+-]
+-
+-[[package]]
+-name = "tiff"
+-version = "0.8.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471"
+-dependencies = [
+- "flate2",
+- "jpeg-decoder",
+- "weezl",
+-]
+-
+ [[package]]
+ name = "time"
+ version = "0.1.45"
+@@ -2090,12 +1909,6 @@ dependencies = [
+ "libwebp-sys",
+ ]
+
+-[[package]]
+-name = "weezl"
+-version = "0.1.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+-
+ [[package]]
+ name = "wgpu"
+ version = "0.16.1"
+diff --git a/Cargo.toml b/Cargo.toml
+index a73b6a2..03dab10 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -6,11 +6,15 @@ edition = "2021"
+
+ # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
++[features]
++default = ["webp"]
++webp = ["image/webp-encoder"]
++
+ [dependencies]
+ smithay-client-toolkit = "0.17.0"
+ wayland-backend = { version = "0.1.2", features = ["client_system"] }
+ wayland-client = { version = "0.30.2", features = ["calloop"] }
+-image = { version = "0.24.5", features = ["webp-encoder"] }
++image = { version = "0.24.5", default-features = false, features = ["farbfeld", "jpeg", "jpeg_rayon", "png"] }
+ ron = "0.8.0"
+ serde = { version = "1.0.152", features = ["derive"] }
+ fontconfig = "0.6.0"
+@@ -18,7 +22,7 @@ wl-clipboard-rs = "0.7.0"
+ nix = { version = "0.26.1", default-features = false, features = ["process"] }
+ clap = { version = "4.0.32", features = ["derive"] }
+ chrono = "0.4.23"
+-env_logger = "0.10.0"
++env_logger = { version = "0.10.0", default-features = false, features = ["auto-color"] }
+ log = "0.4.17"
+ wgpu = "0.16.1"
+ raw-window-handle = "0.5.2"
diff --git a/testing/way-displays/APKBUILD b/testing/way-displays/APKBUILD
new file mode 100644
index 00000000000..90020d7bc7b
--- /dev/null
+++ b/testing/way-displays/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
+pkgname=way-displays
+pkgver=1.8.1
+pkgrel=2
+pkgdesc="Auto Manage Your Wayland Displays"
+url="https://github.com/alex-courtis/way-displays"
+arch="all"
+license="MIT"
+makedepends="
+ eudev-dev
+ libinput-dev
+ wayland-dev
+ wayland-protocols
+ yaml-cpp-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/alex-courtis/way-displays/archive/$pkgver/way-displays-$pkgver.tar.gz"
+options="!check" # no tests provided
+
+build() {
+ make
+}
+
+package() {
+ make install PREFIX=/usr PREFIX_ETC=/ DESTDIR="$pkgdir"
+}
+
+sha512sums="
+e93f71f98cc3294b1973ca0c99ef72d284d882d37242128552416560990e055dc9fd77203934b8a3f1f0c034c24041728d0131d53eafe073066440896bcd3af9 way-displays-1.8.1.tar.gz
+"
diff --git a/testing/wayfire-plugins-extra/APKBUILD b/testing/wayfire-plugins-extra/APKBUILD
new file mode 100644
index 00000000000..f0c771b299e
--- /dev/null
+++ b/testing/wayfire-plugins-extra/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Maarten van Gompel <proycon@anaproy.nl>
+pkgname=wayfire-plugins-extra
+pkgver=0.8.1
+pkgrel=0
+pkgdesc="Additional plugins for Wayfire"
+url="https://wayfire.org"
+arch="all"
+license="MIT"
+makedepends="
+ meson
+ wayfire-dev
+ wlroots-dev
+ glibmm-dev
+ libevdev-dev
+ nlohmann-json
+ wayland-protocols
+ wayland-dev
+ "
+options="!check" # no testsuite
+source="https://github.com/WayfireWM/wayfire-plugins-extra/releases/download/v$pkgver/wayfire-plugins-extra-$pkgver.tar.xz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+ebe12545b0a0ca1c443f334b9bfa31d1f446636dbef2b91c280715ad58d8802ab129f6894959727c0b872558f799c973a158e679683f915a5ef89b67087eed01 wayfire-plugins-extra-0.8.1.tar.xz
+"
diff --git a/testing/wayfire/APKBUILD b/testing/wayfire/APKBUILD
index 0aa8baff256..850bc345666 100644
--- a/testing/wayfire/APKBUILD
+++ b/testing/wayfire/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname=wayfire
-pkgver=0.4.0
+pkgver=0.8.1
pkgrel=0
pkgdesc="Compiz-clone Wayland compositor"
url="https://wayfire.org"
@@ -14,26 +14,30 @@ makedepends="
glm-dev
wf-config-dev
cairo-dev
- libexecinfo-dev
libxml2-dev
+ wayland-protocols
+ pango-dev
+ nlohmann-json
"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/WayfireWM/wayfire/releases/download/v$pkgver/wayfire-$pkgver.tar.xz"
options="!check" # no testsuite
-subpackages="$pkgname-dev"
-source="https://github.com/WayfireWM/wayfire/releases/download/$pkgver/wayfire-$pkgver.tar.xz"
build() {
- meson build \
- --prefix=/usr \
- --buildtype=plain \
+ abuild-meson \
-Duse_system_wlroots=enabled \
- -Duse_system_wfconfig=enabled
+ -Duse_system_wfconfig=enabled \
+ . output
+ meson compile -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C build install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm644 wayfire.ini "$pkgdir"/usr/share/wayfire/wayfire.ini.default
install -Dm644 wayfire.desktop "$pkgdir"/usr/share/wayland-sessions/wayfire.desktop
}
-sha512sums="e96cdb90ce36c005476e08608683983aa167e58aea80fcfd3b24ab0836ec4aa50fb5a7eeb0872a1b1014e3073ed826e1c83d3146b39d3cdb2a8b3a0895155649 wayfire-0.4.0.tar.xz"
+sha512sums="
+7bce5656b6a7a7fe53b37492465dee3e591eb386666fdd3d6876f4a589f059510fb2d0c0a326df260ca6a293edf4ba43bb55f813e85d4d2d38d6ef1319280254 wayfire-0.8.1.tar.xz
+"
diff --git a/testing/wayfire/wayfire.post-install b/testing/wayfire/wayfire.post-install
index 78f40b35edf..d71470fe486 100644
--- a/testing/wayfire/wayfire.post-install
+++ b/testing/wayfire/wayfire.post-install
@@ -1,5 +1,9 @@
#!/bin/sh
-echo -e "\nPlease copy the default config file from /usr/share/wayfire/wayfire.ini.default"
-echo -e "to ~/.config/wayfire.ini\n"
-echo -e "You can install wcm package to config Wayfire.\n"
+cat >&2 <<EOF
+*
+* Please copy the default config file from /usr/share/wayfire/wayfire.ini.default
+* to ~/.config/wayfire.ini
+* You can install wcm package to config Wayfire.
+*
+EOF
diff --git a/testing/waylevel/APKBUILD b/testing/waylevel/APKBUILD
new file mode 100644
index 00000000000..3ff571f9eed
--- /dev/null
+++ b/testing/waylevel/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=waylevel
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A tool to print Wayland toplevels status and info"
+url="https://git.sr.ht/~shinyzenith/waylevel"
+# s390x: nix crate fails to build
+# riscv64: rust broken
+arch="all !s390x !riscv64"
+license="BSD-2-Clause"
+depends="wayland-libs-client"
+makedepends="
+ cargo
+ cargo-auditable
+ wayland-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~shinyzenith/waylevel/archive/$pkgver.tar.gz"
+
+export CARGO_PROFILE_RELEASE_OPT_LEVEL="z"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+3bf9064c7c76fe0c034542a130ae8f016d6bca56ca89f8ed39a5358ad76f1bc3fb43fb64f762a0040755ddbe90604167088237dc09e2f7eca1d0139b180a87b2 waylevel-1.0.0.tar.gz
+"
diff --git a/testing/waylock/APKBUILD b/testing/waylock/APKBUILD
new file mode 100644
index 00000000000..b15f8173f38
--- /dev/null
+++ b/testing/waylock/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=waylock
+pkgver=1.0.0
+pkgrel=0
+pkgdesc="A small screenlocker for Wayland compositors"
+url="https://codeberg.org/ifreund/waylock"
+arch="aarch64 x86_64" # blocked by zig
+license="ISC"
+makedepends="
+ libxkbcommon-dev
+ linux-pam-dev
+ scdoc
+ wayland-dev
+ wayland-protocols
+ zig
+ "
+subpackages="$pkgname-doc"
+source="https://codeberg.org/ifreund/waylock/releases/download/v$pkgver/waylock-$pkgver.tar.gz
+ pam-base-auth.patch
+ "
+
+build() {
+ DESTDIR='.dest' zig build \
+ --prefix /usr \
+ -Doptimize=ReleaseSafe \
+ -Dcpu=baseline \
+ -Dpie=true \
+ -Dman-pages=true \
+ --prefix /usr install
+}
+
+package() {
+ mkdir -p "$pkgdir"
+ cp -r .dest/* "$pkgdir"/
+}
+
+sha512sums="
+ceb5920c1ca3e7e46185e8f438a73fecc4245bf1293628775998d4b1e1dbf5cf682ffff9ca6e801135873cf278ae2fccedb3dc418641db3bac282047fccce4cb waylock-1.0.0.tar.gz
+e3f5aa479908babbeea2febecdf7c57a5cf6b9153c4cd63731721cdf6d50bd0417077b37effec1520064918a422c4313d24ee9c2b2a77c328be931ffbeb03161 pam-base-auth.patch
+"
diff --git a/testing/waylock/pam-base-auth.patch b/testing/waylock/pam-base-auth.patch
new file mode 100644
index 00000000000..6df43826f15
--- /dev/null
+++ b/testing/waylock/pam-base-auth.patch
@@ -0,0 +1,7 @@
+We don't have system-auth, but base-auth.
+
+--- a/pam.d/waylock
++++ b/pam.d/waylock
+@@ -1 +1 @@
+-auth include system-auth
++auth include base-auth
diff --git a/testing/waynergy/APKBUILD b/testing/waynergy/APKBUILD
new file mode 100644
index 00000000000..a9dcac09041
--- /dev/null
+++ b/testing/waynergy/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
+pkgname=waynergy
+pkgver=0.0.16
+pkgrel=0
+pkgdesc="A synergy client for Wayland compositors"
+url="https://github.com/r-c-f/waynergy"
+arch="all"
+license="MIT"
+depends="wl-clipboard"
+makedepends="
+ libretls-dev
+ libxkbcommon-dev
+ meson
+ wayland-dev
+ "
+source="https://github.com/r-c-f/waynergy/archive/v$pkgver/waynergy-$pkgver.tar.gz"
+options="!check" # no tests defined
+
+build() {
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+00b1e47da70960120baba0e195ea4806254bf1ab73261340d1d9947681b5590eb3a6dd4bc82af724dbe03c777e9986fbfdb91e0054acd77f3b4b2d76a40942c3 waynergy-0.0.16.tar.gz
+"
diff --git a/testing/waypipe/APKBUILD b/testing/waypipe/APKBUILD
deleted file mode 100644
index c91309e4f74..00000000000
--- a/testing/waypipe/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
-# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
-pkgname=waypipe
-pkgver=0.6.1
-pkgrel=2
-pkgdesc="A proxy for Wayland clients"
-url="https://gitlab.freedesktop.org/mstoeckl/waypipe"
-arch="all"
-license="MIT"
-makedepends="meson wayland-protocols wayland-dev scdoc lz4-dev mesa-gbm libdrm-dev libva-dev"
-source="https://gitlab.freedesktop.org/mstoeckl/waypipe/-/archive/v$pkgver/waypipe-v$pkgver.tar.gz"
-options="!check" # not all tests pass
-subpackages="$pkgname-doc"
-builddir="$srcdir/$pkgname-v$pkgver"
-
-build() {
- meson \
- --buildtype=plain \
- --prefix=/usr \
- --mandir=/usr/share/man \
- -Dwerror=false \
- -Db_ndebug=true \
- build
- ninja -C build
-}
-
-check() {
- ninja -C build test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="7b7cdc6d808f8f9e3720425af6ca1a75b81ffadc990e181f52940320efab6d5c6b55dcc10adb36c90b784426a71fab2a037206f4cb2634775628b52dc27cb830 waypipe-v0.6.1.tar.gz"
diff --git a/testing/wayqt/APKBUILD b/testing/wayqt/APKBUILD
new file mode 100644
index 00000000000..a76904a01e1
--- /dev/null
+++ b/testing/wayqt/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=wayqt
+pkgver=0.2.0
+pkgrel=0
+pkgdesc="Qt-based wrapper for various wayland protocols"
+url="https://gitlab.com/desktop-frameworks/wayqt"
+# armhf: blocked by wayqt
+arch="all !armhf"
+license="MIT"
+makedepends="
+ meson
+ qt5-qtbase-dev
+ qt5-qtwayland-dev
+ wayland-protocols
+ wlroots0.16-dev
+"
+subpackages="$pkgname-dev"
+source="https://gitlab.com/desktop-frameworks/wayqt/-/archive/v$pkgver/wayqt-v$pkgver.tar.gz"
+builddir="$srcdir/wayqt-v$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson \
+ -Duse_qt_version=qt5 \
+ output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+885e8da87fa09957a3def467a499d7b6db4202a5102695ee54cd03ecefc74aaba342a1801b7b6b7c30074bd6e089f1148098069182489c88bc0cc025d3708e31 wayqt-v0.2.0.tar.gz
+"
diff --git a/testing/wayvnc/APKBUILD b/testing/wayvnc/APKBUILD
deleted file mode 100644
index c60df8df11e..00000000000
--- a/testing/wayvnc/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=wayvnc
-pkgver=0.1.2
-pkgrel=0
-pkgdesc="A VNC server for wlroots-based Wayland compositors"
-url="https://github.com/any1/wayvnc"
-arch="all"
-license="ISC"
-makedepends="meson wlroots-dev libuv-dev neatvnc-dev"
-options="!check" # no test suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/any1/wayvnc/archive/v$pkgver.tar.gz"
-
-build() {
- meson \
- --buildtype=plain \
- --prefix=/usr \
- build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="3ca395e1d6e3329cab51b6aaee53bc080a66b19b9c9a48d12a8226cc7024619acc85665aac4f5001d5c06dceffde9bc825b2ffa59ab0ed09e4340ef85a203a05 wayvnc-0.1.2.tar.gz"
diff --git a/testing/wazero/APKBUILD b/testing/wazero/APKBUILD
new file mode 100644
index 00000000000..a9ae1ac12bb
--- /dev/null
+++ b/testing/wazero/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Jason Staten <code.alpine@jxs.me>
+pkgname=wazero
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="WebAssembly Core Specification 1.0 and 2.0 compliant runtime"
+url="https://wazero.io"
+# Tests fail on 32-bit and ppc64le architectures
+arch="x86_64 aarch64"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/tetratelabs/wazero/archive/refs/tags/v$pkgver.tar.gz
+ debug-test-path.patch
+ "
+
+build() {
+ go build \
+ -ldflags "-X github.com/tetratelabs/wazero/internal/version.version=$pkgver" \
+ ./cmd/wazero
+}
+
+check() {
+ # gojs/goos -buildmode=pie not supported on js/wasm
+ export GOFLAGS="${GOFLAGS/-buildmode=pie}"
+ # integration_test/vs/compiler requires real paths for relative read
+ export GOFLAGS="${GOFLAGS/-trimpath}"
+
+ # Test_crypto is failing on Go 1.22, and gojs will be removed in
+ # wazero 1.7.0: https://github.com/tetratelabs/wazero/pull/2027
+ go test -skip Test_crypto github.com/tetratelabs/wazero/internal/...
+}
+
+package() {
+ install -Dm755 wazero -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+12b86ceda21c382ab4e4e071a2a8972556df41f580b2e24d383150907d9840cfbb471d823709a1f520dd20066095c06409bc83f6bd45c3315fa9fc9fac7b2efb wazero-1.6.0.tar.gz
+289e501d3604c7b4a2907d6b93c7ee93751c3d8dfe0565ec1bf9d275734cd973d03713056405d0adaa7a762a5748f47664fd24b900540ff5b9383fe54a72ac88 debug-test-path.patch
+"
diff --git a/testing/wazero/debug-test-path.patch b/testing/wazero/debug-test-path.patch
new file mode 100644
index 00000000000..324291a24a8
--- /dev/null
+++ b/testing/wazero/debug-test-path.patch
@@ -0,0 +1,14 @@
+diff --git a/debug_test.go b/debug_test.go
+index 1747423..26921d5 100644
+--- a/internal/wasmdebug/debug_test.go
++++ b/internal/wasmdebug/debug_test.go
+@@ -144,7 +144,7 @@ wasm stack trace:
+ x.y()`)
+ require.Contains(t, errStr, "Go runtime stack trace:")
+ require.Contains(t, errStr, "goroutine ")
+- require.Contains(t, errStr, "wazero/internal/wasmdebug/debug_test.go")
++ require.Contains(t, errStr, "internal/wasmdebug/debug_test.go")
+ }
+
+ // compile-time check to ensure testRuntimeErr implements runtime.Error.
+
diff --git a/testing/wbg/APKBUILD b/testing/wbg/APKBUILD
new file mode 100644
index 00000000000..c1a54e6594c
--- /dev/null
+++ b/testing/wbg/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=wbg
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="Simple wallpaper application for Wayland compositors"
+url="https://codeberg.org/dnkl/wbg"
+arch="all"
+license="MIT"
+makedepends="meson
+ libjpeg-turbo-dev
+ libpng-dev
+ pixman-dev
+ tllist-dev
+ wayland-dev
+ wayland-protocols
+ "
+options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::https://codeberg.org/dnkl/wbg/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
+
+build() {
+ abuild-meson \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+78384b85074cb1803b47ec16e843c5de4b17a824a3826398902d18dcdd50d5b678cad8eba599e6e17a8ab60f795993c0f2bf2a4fa275f2a90effdfc0d1685175 wbg-1.1.0.tar.gz
+"
diff --git a/testing/wch-isp/APKBUILD b/testing/wch-isp/APKBUILD
new file mode 100644
index 00000000000..86839a36300
--- /dev/null
+++ b/testing/wch-isp/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Jules Maselbas <jmaselbas@zdiv.net>
+# Maintainer: Jules Maselbas <jmaselbas@zdiv.net>
+pkgname=wch-isp
+pkgver=0.4.1
+pkgrel=1
+pkgdesc="Firmware programmer for WCH microcontrollers over USB"
+url="https://sr.ht/~jmaselbas/wch-isp"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libusb-dev pkgconf"
+subpackages="$pkgname-doc $pkgname-udev-rules:udev_rules:noarch"
+options="!check" # no tests
+source="https://pub.zdiv.net/dist/wch-isp-$pkgver.tar.gz"
+
+build() {
+ make all
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr UDEVPREFIX=/lib/udev install install-rules
+}
+
+udev_rules() {
+ pkgdesc="udev rules for $pkgname"
+ amove lib/udev/rules.d/50-wchisp.rules
+}
+
+sha512sums="
+a2cd8806a7e5d02eae7641279e68f4b6d130c86476e8c3259199b294815c00208059f43060aa8b93eeafaf9adbd9ef71e7e3b4f39389104813f95c87fd86e9ad wch-isp-0.4.1.tar.gz
+"
diff --git a/testing/wcm/APKBUILD b/testing/wcm/APKBUILD
index 3db5e5a674e..005151628ac 100644
--- a/testing/wcm/APKBUILD
+++ b/testing/wcm/APKBUILD
@@ -1,22 +1,25 @@
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname=wcm
-pkgver=0.4.0
+pkgver=0.8.0
pkgrel=0
pkgdesc="Wayfire Config Manager"
url="https://wayfire.org"
arch="all"
license="MIT"
-makedepends="wf-config-dev meson libxml++-dev gtk+3.0-dev wayfire-dev"
+makedepends="wf-config-dev meson libxml2-dev gtkmm3-dev wayfire-dev"
options="!check" # no testsuite
-source="$pkgname-$pkgver.tar.gz::https://github.com/WayfireWM/wcm/archive/v$pkgver.tar.gz"
+source="https://github.com/WayfireWM/wcm/releases/download/v$pkgver/wcm-$pkgver.tar.xz"
build() {
- meson build --prefix=/usr --buildtype=plain
+ abuild-meson build
+ meson compile -C build
}
package() {
- DESTDIR="$pkgdir" ninja -C build install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
}
-sha512sums="4136ceba90c054165b4b0e7a79d78af827d8b8ddb8b54820bda0c17bbaa28eb74981ce94d8c386b91257ca023a34f76f121a003229365afe72d65323f0a1d2cd wcm-0.4.0.tar.gz"
+sha512sums="
+43d863cfd44dc10874f6ac0c511cd07d84721c53955315fb6eed54ba5f6ac9ebcdcf19e515639deafb333d8e45d95ce8e5222ce1d3344fc7d72f09b018bf517e wcm-0.8.0.tar.xz
+"
diff --git a/testing/websocat/APKBUILD b/testing/websocat/APKBUILD
deleted file mode 100644
index d48ca622311..00000000000
--- a/testing/websocat/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
-pkgname="websocat"
-pkgver="1.5.0"
-pkgrel=0
-pkgdesc="Netcat, curl and socat for WebSockets"
-url="https://github.com/vi/websocat"
-arch="all !s390x !mips !mips64" # Limited by cargo/rust
-license="MIT"
-makedepends="cargo"
-options="net"
-source="${pkgname}-${pkgver}.tar.gz::https://github.com/vi/websocat/archive/v${pkgver}.tar.gz"
-
-build() {
- cargo build --release
-}
-
-check() {
- cargo test --release
-}
-
-package() {
- cargo install --path . --root="${pkgdir}/usr"
- rm "${pkgdir}/usr/.crates.toml"
-}
-
-sha512sums="d161aee2153e5fec47e5e81f160abfb7a0b45c5c48f96af341d5d737cd77237fbdf1f9923e80b39a745e19f94ce225b2eb5aa0d03403e4d87ffc4b8b042b4709 websocat-1.5.0.tar.gz"
diff --git a/testing/websocketd/APKBUILD b/testing/websocketd/APKBUILD
deleted file mode 100644
index 05a247c4649..00000000000
--- a/testing/websocketd/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=websocketd
-pkgver=0.3.1
-pkgrel=1
-pkgdesc="Like inetd, but for WebSockets. Turn any application that uses STDIO/STDOUT into a WebSocket server."
-url="https://github.com/joewalnes/websocketd"
-arch="all"
-license="BSD-2-Clause"
-options="!check" #no test provided
-makedepends="go"
-source="$pkgname-$pkgver.tar.gz::https://github.com/joewalnes/websocketd/archive/v$pkgver.tar.gz
-make.patch"
-
-build() {
- make websocketd
-}
-package() {
- install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-}
-
-sha512sums="0b6914e656df24eca6060baad6336ea6916385c0e8ec998ba49ec777d298250f9e31b49277d3e35365c855e98e15f15ed07fde99dbb4212804c6463ce6bd8598 websocketd-0.3.1.tar.gz
-d9d9eaf5990e0be007bf77091932c33d2c921b45c1a289ffea6662d7842a357227c0ac5358962c74fbcd5886ca3194b0028d41e9ca5081a7bceedc838cc10384 make.patch"
diff --git a/testing/websocketd/make.patch b/testing/websocketd/make.patch
deleted file mode 100644
index 678afdb27c0..00000000000
--- a/testing/websocketd/make.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 9871b7d..7091128 100644
---- a/Makefile
-+++ b/Makefile
-@@ -10,13 +10,7 @@
- # To manually invoke the locally installed Go, use ./go
-
- # Go installation config.
--GO_VER=1.11.5
--SYSTEM_NAME:=$(shell uname -s | tr '[:upper:]' '[:lower:]')
--SYSTEM_ARCH:=$(shell uname -m)
--GO_ARCH:=$(if $(filter x86_64, $(SYSTEM_ARCH)),amd64,386)
--GO_VERSION:=$(GO_VER).$(SYSTEM_NAME)-$(GO_ARCH)
--GO_DOWNLOAD_URL:=https://dl.google.com/go/go$(GO_VERSION).tar.gz
--GO_DIR:=go-$(GO_VER)
-+GO_DIR:=/usr
-
- # Build websocketd binary
- websocketd: $(GO_DIR)/bin/go $(wildcard *.go) $(wildcard libwebsocketd/*.go)
-@@ -24,13 +18,6 @@ websocketd: $(GO_DIR)/bin/go $(wildcard *.go) $(wildcard libwebsocketd/*.go)
-
- localgo: $(GO_DIR)/bin/go
-
--# Download and unpack Go distribution.
--$(GO_DIR)/bin/go:
-- mkdir -p $(GO_DIR)
-- rm -f $@
-- @echo Downloading and unpacking Go $(GO_VERSION) to $(GO_DIR)
-- curl -s $(GO_DOWNLOAD_URL) | tar xf - --strip-components=1 -C $(GO_DIR)
--
- # Clean up binary
- clean:
- rm -rf websocketd
diff --git a/testing/websockify/APKBUILD b/testing/websockify/APKBUILD
deleted file mode 100644
index 72140d156e2..00000000000
--- a/testing/websockify/APKBUILD
+++ /dev/null
@@ -1,21 +0,0 @@
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
-pkgname=websockify
-pkgver=0.9.0
-pkgrel=1
-pkgdesc="WebSockets support for any application/server"
-url="https://github.com/kanaka/websockify"
-arch="noarch !mips !mips64" # blocked by py3-numpy
-license="LGPL-3.0-or-later"
-depends="python3 py3-numpy py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/kanaka/websockify/archive/v$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="d2251f653a40dc6dca0e5541845565d968c60be96a20a9b70b0305c4b7578f7fe205d4b98a94bb77d7c9383a396833af90fe92a6ade7e1a6f2d9bf8513d372c8 websockify-0.9.0.tar.gz"
diff --git a/testing/weex/APKBUILD b/testing/weex/APKBUILD
deleted file mode 100644
index 3e80dc1dbf7..00000000000
--- a/testing/weex/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Milan P. Staniić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=weex
-pkgver=2.8.3
-pkgrel=0
-pkgdesc="Non-interactive FTP and FTPS client for updating web pages"
-url="http://weex.sourceforge.net/"
-arch="all"
-license="GPL-2.0-or-later"
-depends=""
-makedepends="openssl-dev"
-install=""
-options="!check"
-subpackages="$pkgname-doc"
-source="http://http.debian.net/debian/pool/main/w/weex/weex_2.8.3.tar.gz"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- cd "$builddir"
- export CBUILD=$CHOST
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --disable-dependency-tracking \
- --disable-nls
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="0444501cebb0a01dc213ec3efe046499bcabe0e84b315806e60dcc8b96d74e3157d116eba84b2bdff6657e4997dd6b1f7e689c2098b6d45b8e06e67dd74694fa weex_2.8.3.tar.gz"
diff --git a/testing/weggli/APKBUILD b/testing/weggli/APKBUILD
new file mode 100644
index 00000000000..6337128a56a
--- /dev/null
+++ b/testing/weggli/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=weggli
+pkgver=0.2.4
+pkgrel=1
+pkgdesc="Semantic search tool for C and C++ codebases"
+url="https://github.com/googleprojectzero/weggli"
+license="Apache-2.0"
+arch="all !s390x !riscv64" # blocked by rust/cargo
+makedepends="cargo cargo-auditable"
+source="https://github.com/googleprojectzero/weggli/archive/v$pkgver/weggli-$pkgver.tar.gz"
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/weggli -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+2473415f60f2834e652d3f6f933bc648e659fca8fef85e82d2cfb87cb039727a38aa32b2eb90ac93cf7d2f11a803daeb73350e85ac1144ed9194757854bc225e weggli-0.2.4.tar.gz
+"
diff --git a/testing/welle-io/APKBUILD b/testing/welle-io/APKBUILD
new file mode 100644
index 00000000000..ddb8b45f227
--- /dev/null
+++ b/testing/welle-io/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Jakob Meier <comcloudway@ccw.icu>
+# Maintainer: Jakob Meier <comcloudway@ccw.icu>
+pkgname=welle-io
+pkgver=2.4
+pkgrel=5
+pkgdesc="A DAB/DAB+ Software Defined Radio (SDR)"
+url="https://www.welle.io/"
+arch="all"
+license="GPL-2.0-or-later"
+# potentally missing: airspy-dev
+makedepends="
+ cmake
+ faad2-dev
+ fftw-dev
+ lame-dev
+ librtlsdr-dev
+ mpg123-dev
+ qt5-qtbase-dev
+ qt5-qtcharts-dev
+ qt5-qtdeclarative-dev
+ qt5-qtmultimedia-dev
+ qt5-qtquickcontrols2-dev
+ qt5-qttools-dev
+ samurai
+ soapy-sdr-dev
+ alsa-lib-dev
+ "
+subpackages="$pkgname-doc welle-cli:cli"
+source="welle-$pkgver.tar.gz::https://github.com/AlbrechtL/welle.io/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/welle.io-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ # DCMAKE_EXE_LINKER_FLAGS required,
+ # to prevent segfault when trying to interact with device
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DRTLSDR=ON \
+ -DSOAPYSDR=ON \
+ -DCMAKE_EXE_LINKER_FLAGS=-Wl,-z,stack-size=512000 \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+cli() {
+ pkgdesc="$pkgdesc (cli frontend)"
+ amove usr/bin/welle-cli
+}
+
+sha512sums="
+2d03388ed9e39e400a423ced88616f267da0516f6db9c0391dcc8fb96dc02898fb36ee8dcbabe3024f681a7ba2cc72e478236ce2f19f0fa16ccd769989331927 welle-2.4.tar.gz
+"
diff --git a/testing/wesnoth/APKBUILD b/testing/wesnoth/APKBUILD
deleted file mode 100644
index d9ccd1b49b5..00000000000
--- a/testing/wesnoth/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=wesnoth
-pkgver=1.14.11
-_major=${pkgver%.*}
-pkgrel=0
-pkgdesc="turn-based strategy game in fantasy world"
-url="https://www.wesnoth.org"
-arch="all !mips !mips64" # fails to build on mips
-license="GPL-2.0-only"
-makedepends="boost-dev bzip2-dev cairo-dev cmake dbus-dev fontconfig-dev
- fribidi-dev libvorbis-dev openssl-dev pango-dev sdl2-dev
- sdl2_image-dev sdl2_mixer-dev sdl2_ttf-dev zlib-dev"
-subpackages="$pkgname-doc"
-source="https://sourceforge.net/projects/wesnoth/files/wesnoth-$_major/wesnoth-$pkgver/wesnoth-$pkgver.tar.bz2"
-options="!check" # No tests
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- $CMAKE_CROSSOPTS .
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="f0c932a2623df35bdcae3d758f3c9ef583ab04bb886408d75b2fe3ee9600af0f55764448782d64561a44150b4628d6340050425d15fc140984e23d5c40769c66 wesnoth-1.14.11.tar.bz2"
diff --git a/testing/wf-config/APKBUILD b/testing/wf-config/APKBUILD
index 7ebecff6012..8a4c7da1a40 100644
--- a/testing/wf-config/APKBUILD
+++ b/testing/wf-config/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Danct12 <danct12@disroot.org>
# Maintainer: Danct12 <danct12@disroot.org>
pkgname=wf-config
-pkgver=0.4.0
+pkgver=0.8.0
pkgrel=0
pkgdesc="Library for managing configuration files written for Wayfire"
url="https://wayfire.org"
@@ -16,18 +16,17 @@ makedepends="
"
options="!check" # no testsuite
subpackages="$pkgname-dev"
-source="https://github.com/WayfireWM/wf-config/releases/download/$pkgver/wf-config-$pkgver.tar.xz"
+source="https://github.com/WayfireWM/wf-config/releases/download/v$pkgver/wf-config-$pkgver.tar.xz"
build() {
- meson \
- --prefix=/usr \
- --buildtype=plain \
- . output
- ninja -C output
+ abuild-meson . output
+ meson compile -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-sha512sums="30358ada695012b9f4be835f2b2d032e0d8d52c3e9d49d39ae975c74bc0cac188341e507124a088d8cdb3d62c77645a7d435262d15a6cc604b4738861362a299 wf-config-0.4.0.tar.xz"
+sha512sums="
+79cca2429a39ee81f853043698c57fc08025634926773253cff73fc564dcf203335b4b861d82b60a769bbab7b07be6a7e181c9ea29ad98ce930de20f9723893f wf-config-0.8.0.tar.xz
+"
diff --git a/testing/wf-shell/APKBUILD b/testing/wf-shell/APKBUILD
new file mode 100644
index 00000000000..6c3b082eff9
--- /dev/null
+++ b/testing/wf-shell/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Maarten van Gompel <proycon@anaproy.nl>
+pkgname=wf-shell
+pkgver=0.8.1
+pkgrel=0
+pkgdesc="A GTK3-based panel for wayfire"
+url="https://wayfire.org"
+arch="all"
+license="MIT"
+install="$pkgname.post-install"
+makedepends="
+ meson
+ wayfire-dev
+ gtk-layer-shell-dev
+ libdbusmenu-gtk3-dev
+ pulseaudio-dev
+ alsa-lib-dev
+ gtkmm3-dev
+ "
+options="!check" # no testsuite
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/WayfireWM/wf-shell/releases/download/v$pkgver/wf-shell-$pkgver.tar.xz"
+
+build() {
+ abuild-meson -Dpulse=enabled -Dwayland-logout=true . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+b0d283dee712ed01bdabb373f8144e6c231aa68669be8851e6603678972d9f2bdcadda773df49510c902f8e8845fdb767f9da65356640fe37843dd92d0c240f2 wf-shell-0.8.1.tar.xz
+"
diff --git a/testing/wf-shell/wf-shell.post-install b/testing/wf-shell/wf-shell.post-install
new file mode 100644
index 00000000000..1eb9a2e56e5
--- /dev/null
+++ b/testing/wf-shell/wf-shell.post-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* Please copy the default config file from /usr/share/wf-shell/wf-shell.ini.example
+* to ~/.config/wf-shell.ini
+*
+EOF
diff --git a/testing/wgcf/APKBUILD b/testing/wgcf/APKBUILD
new file mode 100644
index 00000000000..42e907924a5
--- /dev/null
+++ b/testing/wgcf/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=wgcf
+pkgver=2.2.21
+pkgrel=2
+pkgdesc="Unofficial CLI for Cloudflare Warp"
+url="https://github.com/ViRb3/wgcf"
+arch="all"
+license="MIT"
+makedepends="go"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/ViRb3/wgcf/archive/refs/tags/v$pkgver.tar.gz"
+options="net" # download Go modules
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -v
+
+ for shell in bash fish zsh; do
+ ./wgcf completion $shell > wgcf.$shell
+ done
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 wgcf -t "$pkgdir"/usr/bin/
+
+ install -Dm644 wgcf.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/wgcf
+ install -Dm644 wgcf.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/wgcf.fish
+ install -Dm644 wgcf.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_wgcf
+}
+
+sha512sums="
+595c08cf266e06014d2978db94d452368a7ea86aa4fe90906903ac4a18aea2108329b4029b8909a9737e97e9f828112b04efc91aa61169fe07dc7ef364d4ec17 wgcf-2.2.21.tar.gz
+"
diff --git a/testing/wget2/APKBUILD b/testing/wget2/APKBUILD
new file mode 100644
index 00000000000..105dfe536db
--- /dev/null
+++ b/testing/wget2/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Andy Postnikov <apostnikov@gmail.com>
+# Contributor: Sandro Jäckel <sandro.jaeckel@posteo.de>
+# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
+pkgname=wget2
+pkgver=2.1.0
+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="
+ brotli-dev
+ bzip2-dev
+ doxygen
+ graphviz
+ libidn2-dev
+ lzlib-dev
+ texinfo
+ nghttp2-dev
+ openssl-dev
+ pcre2-dev
+ zlib-dev
+ zstd-dev
+ xz-dev
+ "
+checkdepends="libmicrohttpd-dev"
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs"
+source="https://ftp.gnu.org/gnu/wget/wget2-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-libidn \
+ --with-ssl=openssl \
+ --without-libpsl \
+ --without-libhsts \
+ --without-gpgme \
+ --enable-fuzzing \
+ --disable-manylibs \
+ --disable-nls \
+ --disable-rpath
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/bin/wget2_noinstall"
+ install -Dm644 docs/man/man1/wget2.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+ae1fc267b1c2ee182ee59f0fc34fef238326a20f1ea1c15be6db2c16b70d49e89f61ca937d3e64d214f73ef9646ba4318782ac4210db51bd3d89c55ce4406872 wget2-2.1.0.tar.gz
+"
diff --git a/testing/whipper/APKBUILD b/testing/whipper/APKBUILD
index 9b9c29d8d43..299d87397b1 100644
--- a/testing/whipper/APKBUILD
+++ b/testing/whipper/APKBUILD
@@ -1,11 +1,13 @@
# Contributor: Galen Abell <galen@galenabell.com>
# Maintainer: Galen Abell <galen@galenabell.com>
pkgname=whipper
-pkgver=0.9.0
-pkgrel=0
+pkgver=0.10.0
+pkgrel=5
pkgdesc="python CD-DA ripper preferring accuracy over speed"
+# https://github.com/whipper-team/whipper/issues/515
+options="net !check"
url="https://github.com/whipper-team/whipper"
-arch="all !armv7 !x86" # TODO tests fail on armv7 and x86, ref whipper issue #429
+arch="all !armhf !armv7 !x86" # TODO tests fail on armv7 and x86, ref whipper issue #429
license="GPL-3.0-only"
depends="
python3
@@ -22,22 +24,37 @@ depends="
flac
sox
"
-makedepends="python3-dev py3-wheel libsndfile-dev"
-checkdepends="py3-setuptools_scm py3-twisted"
-options="net"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-setuptools_scm
+ python3-dev
+ py3-wheel
+ libsndfile-dev
+ "
+checkdepends="py3-twisted"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/whipper-team/whipper/archive/v$pkgver.tar.gz"
build() {
export SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver"
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH="$(echo $PWD/build/lib.*)" python3 -m unittest discover
+ 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" --skip-build
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="49e66ad2c6e8450199a53a28bb71725704daac86ce2cbf68080d4dee1c2357cf8367ddb4735a07f2ffe612d84f016661e5b6f94efa9d5a7d6b8cf56ee32b0ae7 whipper-0.9.0.tar.gz"
+
+sha512sums="
+728ad98185aa2d29f4fb215a597136691bb2c3590b3cac4f659238f90a3b4328c377fafe830a725b655f050538739f404b3eca853db4c39001d1b9d721dc7fd8 whipper-0.10.0.tar.gz
+"
diff --git a/testing/wiimms-iso-tools/APKBUILD b/testing/wiimms-iso-tools/APKBUILD
new file mode 100644
index 00000000000..619e13aec72
--- /dev/null
+++ b/testing/wiimms-iso-tools/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Sebastian Hudak <sebastian@sebsite.pw>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=wiimms-iso-tools
+pkgver=3.04a
+pkgrel=1
+pkgdesc="Set of command-line tools to work with Wii/GameCube ISO and WBFS files"
+# releases aren't tagged; this commit matches version 3.04a
+_commit=e58ce7463bc8829c46bcba52e8232f550e49c17c
+url="https://wit.wiimm.de/"
+arch="x86 x86_64"
+license="GPL-2.0-or-later"
+makedepends="bash linux-headers ncurses-dev openssl-dev>3 zlib-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$_commit.tar.gz::https://github.com/Wiimm/wiimms-iso-tools/archive/$_commit.tar.gz
+ $pkgname.patch"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No tests
+
+build() {
+ make -C project INSTALL_PATH="$pkgdir/usr" all doc
+}
+
+package() {
+ make -C project INSTALL_PATH="$pkgdir/usr" install
+ mkdir -p "$pkgdir"/usr/share/doc/wit/
+ install -m644 project/doc/*.txt "$pkgdir"/usr/share/doc/wit/
+}
+
+sha512sums="
+b750964dafd54a04b8c32849499e4af3a2c996aaa3c41e06766bdee1210bbe273aa4eaad0e75ff9142a93d36e3042f84e57a602ba6bd610e734f864f7504a842 wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c.tar.gz
+a501814ed144592bfb8ee42663d2e0cf33d3a157fce8544e3ac21ab87ea530ad3c79acc4bd7ee61a33d3f87f5c7943d0b7519455a7a029bf894ee752801c11d8 wiimms-iso-tools.patch
+"
diff --git a/testing/wiimms-iso-tools/wiimms-iso-tools.patch b/testing/wiimms-iso-tools/wiimms-iso-tools.patch
new file mode 100644
index 00000000000..2551a292b84
--- /dev/null
+++ b/testing/wiimms-iso-tools/wiimms-iso-tools.patch
@@ -0,0 +1,46 @@
+Manually linking tinfo is unnecessary and results in a linker error.
+
+diff -Naur wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c/project/Makefile wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c-alpine/project/Makefile
+--- wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c/project/Makefile 2021-04-18 11:43:37.000000000 +0000
++++ wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c-alpine/project/Makefile 2021-12-11 23:47:51.596954056 +0000
+@@ -303,7 +303,6 @@
+ CFLAGS += -O3 -Isrc/libwbfs -Isrc -I$(UI) -I. -Iwork
+
+ ifeq ($(SYSTEM_LINUX),1)
+- LIBS += -ltinfo
+ CFLAGS += -Wno-format-truncation
+ endif
+
+wiimms-iso-tools assumes that the global variables stdin, stdout, and stderr
+are mutable. This is true in glibc, but false in musl. This patch removes code
+which attempts to mutate standard streams.
+
+diff -Naur wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c/project/dclib/dclib-color.c wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c-alpine/project/dclib/dclib-color.c
+--- wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c/project/dclib/dclib-color.c 2021-04-18 11:43:37.000000000 +0000
++++ wiimms-iso-tools-e58ce7463bc8829c46bcba52e8232f550e49c17c-alpine/project/dclib/dclib-color.c 2021-12-11 23:48:55.610289581 +0000
+@@ -4810,8 +4810,6 @@
+ {
+ DASSERT(ssf);
+
+- stdout = ssf->std_out;
+- stderr = ssf->std_err;
+ stdlog = ssf->std_log;
+ stdmsg = ssf->std_msg;
+ stdwrn = ssf->std_wrn;
+@@ -4839,7 +4837,7 @@
+ if (ssf)
+ SaveStdFiles(ssf);
+
+- stdout = stdwrn = stdmsg = f;
++ stdwrn = stdmsg = f;
+ colout = colwrn = colmsg = colset ? colset : GetFileColorSet(f);
+
+ // special handling for stdlog
+@@ -4851,7 +4849,6 @@
+
+ if (err_too)
+ {
+- stderr = stdout;
+ colerr = colout;
+ }
+ }
diff --git a/testing/wiimms-szs-tools/APKBUILD b/testing/wiimms-szs-tools/APKBUILD
new file mode 100644
index 00000000000..0f2976802d5
--- /dev/null
+++ b/testing/wiimms-szs-tools/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Sebastian Hudak <sebastian@sebsite.pw>
+# Maintainer: Sebastian Hudak <sebastian@sebsite.pw>
+pkgname=wiimms-szs-tools
+pkgver=2.26a
+pkgrel=0
+pkgdesc="Set of command-line tools to work with Mario Kart Wii files"
+# releases aren't tagged; this commit matches version 2.26a
+_commit=9ae8841ec4720e74173e2f72fac33f0848bbf435
+url="https://szs.wiimm.de/"
+arch="x86 x86_64"
+license="GPL-2.0-or-later"
+makedepends="bash libpng-dev linux-headers ncurses-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$_commit.tar.gz::https://github.com/Wiimm/wiimms-szs-tools/archive/$_commit.tar.gz
+ $pkgname.patch"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No tests
+
+build() {
+ make -C project INSTALL_PATH="$pkgdir/usr" all doc
+}
+
+package() {
+ make -C project INSTALL_PATH="$pkgdir/usr" install
+ mkdir -p "$pkgdir"/usr/share/doc/szs/
+ install -m644 project/doc/*.txt "$pkgdir"/usr/share/doc/szs/
+}
+
+sha512sums="
+3e4f3555e53012096a64f9d4dba4bae2b4284ca185a2c9e732b022734558bddc6f040ad180d1074906c9fdc91750a37b5883fd902db0da65d816dd46c79c3d1e wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435.tar.gz
+570f0bfa2f72d87a485e3a6a27f7b5ab2925cad4f100c43723e4ba0d1ef6fc7a6c34c4572d7b1ae4d95b862edf142b2ad276e9563106dd09ee6569bbe82e4aa4 wiimms-szs-tools.patch
+"
diff --git a/testing/wiimms-szs-tools/wiimms-szs-tools.patch b/testing/wiimms-szs-tools/wiimms-szs-tools.patch
new file mode 100644
index 00000000000..cfcc9368292
--- /dev/null
+++ b/testing/wiimms-szs-tools/wiimms-szs-tools.patch
@@ -0,0 +1,77 @@
+Manually linking tinfo is unnecessary and results in a linker error.
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/Makefile wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/Makefile
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/Makefile 2021-12-22 16:40:12.263507617 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/Makefile 2021-12-22 16:40:41.880175306 +0000
+@@ -161,7 +161,6 @@
+ CFLAGS += -ffunction-sections -fdata-sections
+ LDFLAGS += -Xlinker --gc-sections
+ #LDFLAGS += -Xlinker --print-gc-sections
+- LIBS += -ltinfo
+ LDFLAGS += -static-libgcc
+ endif
+
+wiimms-szs-tools assumes that the global variables stdin, stdout, and stderr
+are mutable. This is true in glibc, but false in musl. This patch removes code
+which attempts to mutate standard streams.
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/dclib-color.c wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/dclib-color.c
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/dclib-color.c 2021-12-22 16:40:12.266840951 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/dclib-color.c 2021-12-22 16:40:41.883508639 +0000
+@@ -4848,8 +4848,6 @@
+ {
+ DASSERT(ssf);
+
+- stdout = ssf->std_out;
+- stderr = ssf->std_err;
+ stdlog = ssf->std_log;
+ stdmsg = ssf->std_msg;
+ stdwrn = ssf->std_wrn;
+@@ -4877,7 +4875,7 @@
+ if (ssf)
+ SaveStdFiles(ssf);
+
+- stdout = stdwrn = stdmsg = f;
++ stdwrn = stdmsg = f;
+ colout = colwrn = colmsg = colset ? colset : GetFileColorSet(f);
+
+ // special handling for stdlog
+@@ -4889,7 +4887,6 @@
+
+ if (err_too)
+ {
+- stderr = stdout;
+ colerr = colout;
+ }
+ }
+
+Don't define non-static global variable in header file. (This variable is only
+ever used in one source file, so having it in the header is pointless.)
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/lib-mkw.h wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/lib-mkw.h
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/lib-mkw.h 2021-12-22 16:40:12.266840951 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/lib-mkw.h 2021-12-22 16:41:03.896842729 +0000
+@@ -198,8 +198,6 @@
+
+ //-----------------------------------------------------------------------------
+
+-const MkwPointInfo_t MkwPointInfo[MPI__N+1];
+-
+ // [[24P--]] all tables
+
+ extern u8 MkwPointsTab[MKW_STD_MAX_PLAYER2];
+
+Add missing semicolon.
+
+diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/src/lib-staticr.c wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/src/lib-staticr.c
+--- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/src/lib-staticr.c 2021-12-22 16:40:12.270174285 +0000
++++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/src/lib-staticr.c 2021-12-22 16:40:41.886841972 +0000
+@@ -1922,7 +1922,7 @@
+ default: return 0;
+ }
+
+- DASSERT(ri)
++ DASSERT(ri);
+ if (!ri->sect[0].addr)
+ {
+ for ( dol_sect_info_t *ptr = ri->sect; ptr->section >= 0; ptr++ )
diff --git a/testing/wiki-tui/APKBUILD b/testing/wiki-tui/APKBUILD
new file mode 100644
index 00000000000..8af1baa64bf
--- /dev/null
+++ b/testing/wiki-tui/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+# Maintainer: Orhun Parmaksız <orhunparmaksiz@gmail.com>
+pkgname=wiki-tui
+pkgver=0.8.2
+pkgrel=0
+pkgdesc="Simple and easy to use Wikipedia Text User Interface"
+url="https://github.com/Builditluc/wiki-tui"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ openssl-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Builditluc/wiki-tui/archive/v$pkgver.tar.gz"
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 755 target/release/wiki-tui -t "$pkgdir"/usr/bin
+ install -Dm 644 README.md -t "$pkgdir"/usr/share/doc/$pkgname
+ install -Dm 644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+}
+
+sha512sums="
+9240c17ab9410bf4182349701d06df73f56b11fceb24415c5249a982026fb236d87ab151b7a5b62683d70c38414fe67270b8f2012eb9188fddebf2d6c366fd22 wiki-tui-0.8.2.tar.gz
+"
diff --git a/testing/windowmaker/APKBUILD b/testing/windowmaker/APKBUILD
deleted file mode 100644
index 6d8e03de3b0..00000000000
--- a/testing/windowmaker/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Emily Ingalls <emily@ingalls.rocks>
-# Maintainer: Emily Ingalls <emily@ingalls.rocks>
-pkgname=windowmaker
-pkgver=0.95.9
-pkgrel=0
-pkgdesc="Window manager for X emulating the NeXTSTEP user interface"
-url="https://windowmaker.org/"
-arch="all"
-license="GPL-2.0-or-later"
-depends_dev="libxmu-dev libxft-dev libxinerama-dev libxrandr-dev
- libjpeg-turbo-dev tiff-dev libwebp-dev"
-makedepends="$depends_dev libx11-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://windowmaker.org/pub/source/release/WindowMaker-$pkgver.tar.gz"
-builddir="$srcdir/WindowMaker-$pkgver"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --disable-static \
- --enable-modelock
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rmdir "$pkgdir"/usr/share/locale/
-}
-
-sha512sums="ca3ddc863f5b5b782e90f38c0019fe14d1109d6b11d0a3d5d6c728ddc1817747eea92e22e36933d445e72c70661e039ee56efa70f2654657c8980269fd5b4584 WindowMaker-0.95.9.tar.gz"
diff --git a/testing/wine-mono/APKBUILD b/testing/wine-mono/APKBUILD
index d597b14e2bb..b2d5f3c7ebf 100644
--- a/testing/wine-mono/APKBUILD
+++ b/testing/wine-mono/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
pkgname=wine-mono
-pkgver=5.0.0
-pkgrel=0
+pkgver=8.1.0
+pkgrel=1
pkgdesc="Wine's built-in replacement for Microsoft's .NET"
url="https://wiki.winehq.org/Mono"
-arch="x86_64"
+arch="x86_64 x86"
license="MIT"
depends="wine"
options="!check"
-source="https://dl.winehq.org/wine/wine-mono/$pkgver/wine-mono-$pkgver-x86.msi"
+source="https://github.com/madewokherd/wine-mono/releases/download/wine-mono-$pkgver/wine-mono-$pkgver-x86.msi"
build() {
return 0
@@ -17,7 +17,9 @@ build() {
package() {
install -Dm644 "$srcdir"/$pkgname-$pkgver-x86.msi \
- "$pkgdir"/usr/share/wine/mono/$pkgname-$pkgver-x86.msi
+ -t "$pkgdir"/usr/share/wine/mono/
}
-sha512sums="8f83122d4b552b3a3d8b000abbd19b7a72edf45e52fa63a9220228240d8e4c014531bb265d062a38f6924fae07dd45420a5c7566f99e0c471e116fb80906c08c wine-mono-5.0.0-x86.msi"
+sha512sums="
+5c788dfa0c9b664242f3ce0ab24f3f9256dabf1e9fadc516140f267c763da1865b4536c707660acaf66e4a37d93198f5499971b4261e63d91252f6a7fc3eae4e wine-mono-8.1.0-x86.msi
+"
diff --git a/testing/wine-staging/APKBUILD b/testing/wine-staging/APKBUILD
new file mode 100644
index 00000000000..75cbc2d6f83
--- /dev/null
+++ b/testing/wine-staging/APKBUILD
@@ -0,0 +1,175 @@
+# Contributor: Pedro Filipe <xpecex@outlook.com>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Contributor: Åukasz Jendrysik <scadu@yandex.com>
+# Contributor: Martell Malone <martell@marinelayer.io>
+# Contributor: Craig Andrews <candrews@integralblue.com>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Contributor: sewn <sewn@disroot.org>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=wine-staging
+pkgver=9.7
+_pkgver="${pkgver%".${pkgver#*.*.}"}"
+pkgrel=0
+pkgdesc="Compatibility layer for running Windows programs -- Staging patchset"
+url="https://www.winehq.org"
+arch="x86 x86_64"
+license="LGPL-2.0-or-later"
+depends="
+ libxi
+ libxrandr
+ "
+depends_dev="$pkgname perl"
+makedepends="
+ alsa-lib-dev
+ autoconf
+ automake
+ bison
+ bash
+ python3
+ cups-dev
+ dbus-dev
+ flex-dev
+ fontconfig-dev
+ freetype-dev
+ gnutls-dev
+ gstreamer-dev
+ gst-plugins-base-dev
+ krb5-dev
+ libgphoto2-dev
+ libpcap-dev
+ libusb-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxi-dev
+ libxinerama-dev
+ libxkbcommon-dev
+ libxrandr-dev
+ libxrender-dev
+ mesa-dev
+ mingw-w64-gcc
+ ncurses-dev
+ opencl-dev
+ pcsc-lite-dev
+ pulseaudio-dev
+ sane-dev
+ sdl2-dev
+ udisks2-dev
+ v4l-utils-dev
+ vulkan-loader-dev
+ wayland-dev
+ "
+provides="wine=$pkgver-r$pkgrel"
+subpackages="$pkgname-dev $pkgname-doc"
+checkdepends="xvfb-run"
+source="https://dl.winehq.org/wine/source/${pkgver/.[1-9]*/.x}/wine-$_pkgver.tar.xz
+ wine-staging-$pkgver.tar.gz::https://gitlab.winehq.org/wine/wine-staging/-/archive/v$pkgver/wine-staging-v$pkgver.tar.gz
+ rpath.patch
+ "
+builddir="$srcdir/wine-$_pkgver"
+options="textrels !check" # As of 2.0.3 most of the tests fails
+# ignore tracing something in a weird rpath just to silence a warning
+# no effect
+somask="ntdll.so win32u.so"
+
+prepare() {
+ default_prepare
+ # fix opencl header detection
+ sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure*
+
+ "$srcdir/wine-staging-v$pkgver"/staging/patchinstall.py DESTDIR="$builddir" --all
+}
+
+case "$CARCH" in
+x86_64)
+ # also pull in 32-target, enabled with --enable-archs
+ makedepends="$makedepends i686-mingw-w64-gcc"
+ ;;
+esac
+
+build() {
+ export CFLAGS="$CFLAGS -O2 -Wno-error=format-security"
+ export CXXFLAGS="$CXXFLAGS -O2 -Wno-error=format-security"
+ export CPPFLAGS="$CPPFLAGS -O2 -Wno-error=format-security"
+
+ # invalid to the msys linker
+ export LDFLAGS="${LDFLAGS/,-Wl,-z,pack-relative-relocs}"
+
+ case "$CARCH" in
+ x86_64)
+ local win64="--enable-win64"
+ local archs="--enable-archs=x86_64,i386"
+ ;;
+ x86)
+ local no_pie="-no-pie"
+ ;;
+ esac
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-dbus \
+ --with-mingw \
+ --with-x \
+ --with-vulkan \
+ $win64 \
+ $archs
+ make LDFLAGS="$LDFLAGS $no_pie" tools/winedump/winedump
+ make
+}
+
+check() {
+ xvfb-run make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dm755 tools/wineapploader \
+ "$pkgdir"/usr/bin/wineapploader
+
+ local file
+ for file in msiexec notepad regedit regsvr32 wineboot \
+ winecfg wineconsole winefile winemine winepath; do
+ rm -v "$pkgdir"/usr/bin/$file
+ ln -sfv /usr/bin/wineapploader "$pkgdir"/usr/bin/$file
+ done
+
+ case "$CARCH" in
+ x86_64)
+ x86_64-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib/wine/x86_64-windows/*.dll
+ i686-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib/wine/i386-windows/*.dll
+
+ # add compat links, since with archs these rename back to non-64
+ ln -sfv wine "$pkgdir"/usr/bin/wine64
+ ln -sfv wine-preloader "$pkgdir"/usr/bin/wine64-preloader
+ ;;
+ x86)
+ i686-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib/wine/i386-windows/*.dll
+ ;;
+ esac
+}
+
+dev() {
+ default_dev
+
+ local file
+ for file in widl wmc wrc winebuild winedump function_grep.pl \
+ winedbg winemaker winegcc winecpp wineg++; do
+ amove usr/bin/$file
+ done
+}
+
+doc() {
+ default_doc
+ rm -fr "$subpkgdir"/usr/share/man/*.UTF-8
+}
+
+sha512sums="
+0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80 wine-9.7.tar.xz
+eebd079eefcaed9e021de2e00741a76b0b2f4dacbf05763de9dab94624e1ae934a7b0b391f6c5efffcb3bcadd09790609cbe77ab1a4f3cfff880352ee040c5c5 wine-staging-9.7.tar.gz
+9881abfd0e7e4589cd5724291f9ec06ccb9d88b842c69abb5ea7865b6c27c778a060e60a9776c3620a030555cf61b8cceded55db9f04d5e45d9c627306763bff rpath.patch
+"
diff --git a/testing/wine-staging/rpath.patch b/testing/wine-staging/rpath.patch
new file mode 100644
index 00000000000..b694468a27f
--- /dev/null
+++ b/testing/wine-staging/rpath.patch
@@ -0,0 +1,57 @@
+diff --git a/configure b/configure
+index 296c3e4..e838871 100755
+--- a/configure
++++ b/configure
+@@ -10306,6 +10306,38 @@ then :
+ fi
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ as_ac_var=`printf "%s\n" "ac_cv_cflags_-Wl,-rpath,\\\\\\$ORIGIN" | $as_tr_sh`
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-rpath,\\\$ORIGIN" >&5
++printf %s "checking whether the compiler supports -Wl,-rpath,\\\$ORIGIN... " >&6; }
++if eval test \${$as_ac_var+y}
++then :
++ printf %s "(cached) " >&6
++else $as_nop
++ ac_wine_try_cflags_saved=$CFLAGS
++CFLAGS="$CFLAGS -Wl,-rpath,\\\$ORIGIN"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++int main(int argc, char **argv) { return 0; }
++_ACEOF
++if ac_fn_c_try_link "$LINENO"
++then :
++ eval "$as_ac_var=yes"
++else $as_nop
++ eval "$as_ac_var=no"
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam \
++ conftest$ac_exeext conftest.$ac_ext
++CFLAGS=$ac_wine_try_cflags_saved
++fi
++eval ac_res=\$$as_ac_var
++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++printf "%s\n" "$ac_res" >&6; }
++if eval test \"x\$"$as_ac_var"\" = x"yes"
++then :
++ UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"
++fi
+ ;;
+ esac
+
+diff --git a/configure.ac b/configure.ac
+index 140f26a..02497c9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -784,6 +784,9 @@ case $host_os in
+ [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"])
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"])
+ ;;
+ esac
+
diff --git a/testing/winetricks/APKBUILD b/testing/winetricks/APKBUILD
index c8e21f24910..59c64bf6eec 100644
--- a/testing/winetricks/APKBUILD
+++ b/testing/winetricks/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer:
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
pkgname=winetricks
-pkgver=20200412
-pkgrel=0
+pkgver=20230212
+pkgrel=1
pkgdesc="Winetricks is an easy way to work around problems in Wine"
url="https://github.com/Winetricks/winetricks"
arch="x86 x86_64" # Limited by the wine pkg
license="LGPL-2.1-or-later"
options="!check" # Missing depends bashate & shellcheck
-depends="cabextract unzip wine xmessage"
+depends="cabextract unzip wine xmessage wget"
subpackages="$pkgname-doc $pkgname-bash-completion"
source="https://github.com/Winetricks/winetricks/archive/$pkgver/winetricks-$pkgver.tar.gz"
@@ -16,4 +16,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="d6ca5628b7d296b3168ef088ca0b03aff8b73da8a139061ca64fac0685ec29bf2b7e075b89226f8ce3af511947eac45d4c72cfb1199e6b72666fc67547b77588 winetricks-20200412.tar.gz"
+sha512sums="
+3d2211091754a2a254d5ac8dab27d59d488d512149d8060828cf9d69df96f5ccad183f2ba9f2172452a2ae322236e86e7fce560836a2bc05dc9a36c2a422f245 winetricks-20230212.tar.gz
+"
diff --git a/testing/wireguard-go/APKBUILD b/testing/wireguard-go/APKBUILD
index 464822f26d7..5308ead2788 100644
--- a/testing/wireguard-go/APKBUILD
+++ b/testing/wireguard-go/APKBUILD
@@ -1,18 +1,22 @@
# Contributor: Stefan Reiff <kroko87@hotmail.com>
# Maintainer: Stefan Reiff <kroko87@hotmail.com>
pkgname=wireguard-go
-pkgver=0.0.20200320
-pkgrel=1
+pkgver=0.0.20230223
+pkgrel=4
pkgdesc="Next generation secure network tunnel: userspace implementation in go"
-arch="all"
url="https://www.wireguard.com"
license="GPL-2.0-only"
+arch="all"
makedepends="go"
depends="wireguard-tools-wg wireguard-tools-wg-quick"
subpackages="$pkgname-doc"
options="!check"
source="https://git.zx2c4.com/wireguard-go/snapshot/wireguard-go-$pkgver.tar.xz"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
build() {
make
}
@@ -20,7 +24,9 @@ build() {
package() {
make DESTDIR="$pkgdir" install
install -Dm644 README.md "$pkgdir"/usr/share/doc/$pkgname/README.md
- install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="e403b8747ec42f0e34eaedfa54f3fa5b09fb26cf0c7cf6c8f6c7f0edf2b7896f272860ee0561f8ecc051375e61a7b2b8ceb64e1f9a080f16f3c5ceb9e6c0f93b wireguard-go-0.0.20200320.tar.xz"
+sha512sums="
+221ecea400fdfdfd564d8ab3b1939cab289b28a00c8d2e8e41bd56484f09d66e20a3dd34dc81471e7fc5133bebffc621be984b8a8d3475a0e4b08daa350d5583 wireguard-go-0.0.20230223.tar.xz
+"
diff --git a/testing/wiremapper/APKBUILD b/testing/wiremapper/APKBUILD
new file mode 100644
index 00000000000..0c67d691883
--- /dev/null
+++ b/testing/wiremapper/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Martijn Braam <martijn@brixit.nl>
+# Contributor: Martijn Braam <martijn@brixit.nl>
+pkgname=wiremapper
+pkgver=0.10.0
+pkgrel=0
+pkgdesc="GTK3 app for the Pockethernet hardware"
+url="https://gitlab.com/MartijnBraam/wiremapper"
+arch="all"
+license="MIT"
+source="https://gitlab.com/MartijnBraam/wiremapper/-/archive/$pkgver/wiremapper-$pkgver.tar.gz"
+depends="python3 py3-pockethernet py3-gobject3 py3-setuptools gtk+3.0 libhandy1"
+makedepends="meson libhandy1-dev"
+options="!check" # There's no testsuite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+dc961223626f84f4f7284087c40c8290b6dea56a5d3909909827ffefd7c576386eaac572a21bc73a3097723965b26f93c2a208fb45b44944166bab950b4c8cbf wiremapper-0.10.0.tar.gz
+"
diff --git a/testing/wiringx/APKBUILD b/testing/wiringx/APKBUILD
index ec31faa6abc..ca06d10f69a 100644
--- a/testing/wiringx/APKBUILD
+++ b/testing/wiringx/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Milan P. Stanić <mps@arvanta.net>
# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname="wiringx"
-pkgver="0_git20191126"
-_commitid=8efb38935b92f86f4932d7bb52169694854f307c
+pkgname=wiringx
+pkgver=0_git20240317
+_commitid=a6bb3092d262f9801a685a4591eff937fbd4a403
pkgrel=1
pkgdesc="modular approach to several GPIO interfaces"
url="https://github.com/wiringX/wiringX"
-arch="aarch64 armv7 armhf"
+arch="aarch64 armv7 armhf riscv64"
license="MPL-2.0"
options="!check" # no testsuite
makedepends="cmake linux-headers"
@@ -27,7 +27,7 @@ build() {
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} .
+ $CMAKE_CROSSOPTS .
make
}
@@ -36,5 +36,7 @@ package() {
rm -rf "$pkgdir"/usr/sbin
}
-sha512sums="50642c0ec248f15e7a3c4a13fff296331c1e065157c5d36688ca3ee02be0f94668333dd0fe859782736ccccf93380d24d1e58b40f3e74137818da3776742353d wiringx-0_git20191126.tar.gz
-b7751f0396fb90a5550a064006eb5f75ff5835a9e0c7b419abfdb2ec42313ab4bd6365874415a41f4f2cf6e9c778eec72b317e14dfbc439216e21c6bc4f73294 fix_time_t.patch"
+sha512sums="
+79e0509eb37c659c695168b324a6fafebe0493d7bf559c6d20cf395ff14379c0abae5fdb3347c34acdac6bb81a1e912a418b6b51159b58ee213e81fe33293cf1 wiringx-0_git20240317.tar.gz
+b7751f0396fb90a5550a064006eb5f75ff5835a9e0c7b419abfdb2ec42313ab4bd6365874415a41f4f2cf6e9c778eec72b317e14dfbc439216e21c6bc4f73294 fix_time_t.patch
+"
diff --git a/testing/witchery/APKBUILD b/testing/witchery/APKBUILD
new file mode 100644
index 00000000000..057c70e2504
--- /dev/null
+++ b/testing/witchery/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+pkgname=witchery
+pkgver=0.0.3
+pkgrel=2
+pkgdesc="build distroless images with Alpine tools"
+url="https://github.com/witchery-project/witchery"
+arch="noarch"
+license="ISC"
+depends="alpine-sdk"
+makedepends=""
+checkdepends=""
+install=""
+subpackages=""
+source="https://github.com/witchery-project/witchery/archive/v$pkgver/witchery-$pkgver.tar.gz
+ correct-install-location.patch
+ "
+builddir="$srcdir/witchery-$pkgver"
+options="!check" # No test suite.
+
+build() {
+ :
+}
+
+package() {
+ DESTDIR="$pkgdir" make install
+}
+
+sha512sums="
+713c130e2a7059a49f4c672a73614cd8413aa0fc9dcd8ec5a7ff6f9e7b7b3839aafe0403bb3a3214ba0534d0e143d2764a377dd19c0c86db7fd86b335bb1309b witchery-0.0.3.tar.gz
+168e4dc973025d060a9a6b9ac95c4a624137381b91f4eb8c7b3096272f7efe3d353486869954ad1f99e01da6518f51ecf56b294b87b77dd46ebb24986dbfbbc2 correct-install-location.patch
+"
diff --git a/testing/witchery/correct-install-location.patch b/testing/witchery/correct-install-location.patch
new file mode 100644
index 00000000000..0c1e190fc49
--- /dev/null
+++ b/testing/witchery/correct-install-location.patch
@@ -0,0 +1,9 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,3 +1,3 @@
+ install:
+- install -Dm755 witchery-buildapk ${DESTDIR}/usr/bin
+- install -Dm755 witchery-compose ${DESTDIR}/usr/bin
+\ No newline at end of file
++ install -Dm755 witchery-buildapk -t ${DESTDIR}/usr/bin
++ install -Dm755 witchery-compose -t ${DESTDIR}/usr/bin
diff --git a/testing/wk-adblock/APKBUILD b/testing/wk-adblock/APKBUILD
new file mode 100644
index 00000000000..1d2f723bf3f
--- /dev/null
+++ b/testing/wk-adblock/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: David Ventura <david@davidv.dev>
+pkgname=wk-adblock
+pkgver=0.0.4
+_commit=665ffb4126ae924e345d04adcf6242066216a508
+pkgrel=5
+pkgdesc="Simple ad-blocker for Webkit2 Webview"
+options="!check" # No testsuite
+url="https://github.com/DavidVentura/webextension-adblocker/"
+arch="x86_64 armv7 armhf aarch64 x86 ppc64le" # limited by rust
+license="GPL-3.0-or-later"
+makedepends="cargo clang-dev glib-dev llvm-dev webkit2gtk-4.1-dev cargo-auditable"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://codeload.github.com/DavidVentura/webextension-adblocker/tar.gz/$_commit
+ cargo-lock.patch
+ webkit2gtk-4.1.patch
+ "
+builddir="$srcdir/webextension-adblocker-$_commit"
+
+# optimise size
+export CARGO_FEATURE_USE_SYSTEM_LIBS=1
+
+prepare() {
+ default_prepare
+
+ cd wk-we-adblock
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cd wk-we-adblock
+ cargo auditable build --release --frozen
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+ install -Dm644 manpage "$pkgdir"/usr/share/man/man1/$pkgname.1
+}
+
+sha512sums="
+a2d1b36e364311c9e14849ee76628d0e1d1964b5f5b9ba4a3a4211ec798080d1ff97ce0c08bc708114e3ed6a40a7ef437406280e61a880340d691c5a5d0712b3 wk-adblock-0.0.4.tar.gz
+1808c2b078a29ee26a1f45818a81e11de0c5180efba0643e1d6c686d702dbf9dbff4b112f75a3e6ee1747887731ab3ecb892993e9bcca8975e107f63bc9f6661 cargo-lock.patch
+096887e59aea7c7a0b127c7735bc4f234ad26f785bdf895306ad1e95ad3a6dafbc5e74633774671a9989a847f4fd604365b09b3c4000a04a21adb68e3c597320 webkit2gtk-4.1.patch
+"
diff --git a/testing/wk-adblock/cargo-lock.patch b/testing/wk-adblock/cargo-lock.patch
new file mode 100644
index 00000000000..2ba4b70a9ad
--- /dev/null
+++ b/testing/wk-adblock/cargo-lock.patch
@@ -0,0 +1,1062 @@
+--- /dev/null
++++ b/wk-we-adblock/Cargo.lock
+@@ -0,0 +1,1059 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++version = 3
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
++dependencies = [
++ "autocfg 1.1.0",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
++
++[[package]]
++name = "bindgen"
++version = "0.53.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5"
++dependencies = [
++ "bitflags",
++ "cexpr",
++ "cfg-if 0.1.10",
++ "clang-sys",
++ "clap",
++ "env_logger",
++ "lazy_static",
++ "lazycell",
++ "log",
++ "peeking_take_while",
++ "proc-macro2",
++ "quote",
++ "regex",
++ "rustc-hash",
++ "shlex",
++ "which",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
++
++[[package]]
++name = "bstr"
++version = "0.2.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
++dependencies = [
++ "lazy_static",
++ "memchr",
++ "regex-automata",
++ "serde",
++]
++
++[[package]]
++name = "byteorder"
++version = "1.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
++
++[[package]]
++name = "cast"
++version = "0.2.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a"
++dependencies = [
++ "rustc_version 0.4.0",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.73"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
++
++[[package]]
++name = "cexpr"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
++dependencies = [
++ "nom",
++]
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "cfg-if"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
++
++[[package]]
++name = "clang-sys"
++version = "0.29.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a"
++dependencies = [
++ "glob",
++ "libc",
++ "libloading",
++]
++
++[[package]]
++name = "clap"
++version = "2.34.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "cloudabi"
++version = "0.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
++dependencies = [
++ "bitflags",
++]
++
++[[package]]
++name = "criterion"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0363053954f3e679645fc443321ca128b7b950a6fe288cf5f9335cc22ee58394"
++dependencies = [
++ "atty",
++ "cast",
++ "clap",
++ "criterion-plot",
++ "csv",
++ "itertools",
++ "lazy_static",
++ "libc",
++ "num-traits",
++ "rand_core 0.3.1",
++ "rand_os",
++ "rand_xoshiro",
++ "rayon",
++ "rayon-core",
++ "serde",
++ "serde_derive",
++ "serde_json",
++ "tinytemplate",
++ "walkdir",
++]
++
++[[package]]
++name = "criterion-plot"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76f9212ddf2f4a9eb2d401635190600656a1f88a932ef53d06e7fa4c7e02fb8e"
++dependencies = [
++ "byteorder",
++ "cast",
++ "itertools",
++]
++
++[[package]]
++name = "crossbeam-channel"
++version = "0.5.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crossbeam-epoch",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.9.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
++dependencies = [
++ "autocfg 1.1.0",
++ "cfg-if 1.0.0",
++ "crossbeam-utils",
++ "lazy_static",
++ "memoffset",
++ "scopeguard",
++]
++
++[[package]]
++name = "crossbeam-utils"
++version = "0.8.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
++dependencies = [
++ "cfg-if 1.0.0",
++ "lazy_static",
++]
++
++[[package]]
++name = "csv"
++version = "1.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1"
++dependencies = [
++ "bstr",
++ "csv-core",
++ "itoa 0.4.8",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "csv-core"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "either"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
++
++[[package]]
++name = "env_logger"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
++dependencies = [
++ "atty",
++ "humantime",
++ "log",
++ "regex",
++ "termcolor",
++]
++
++[[package]]
++name = "fid-rs"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6c28658c0c3420305705adde833a0d2d614207507d013a5f25707553fb2ae2cd"
++dependencies = [
++ "rayon",
++]
++
++[[package]]
++name = "fuchsia-cprng"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
++
++[[package]]
++name = "glib-sys"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7e9b997a66e9a23d073f2b1abb4dbfc3925e0b8952f67efd8d9b6e168e4cdc1"
++dependencies = [
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
++name = "gobject-sys"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "952133b60c318a62bf82ee75b93acc7e84028a093e06b9e27981c2b6fe68218c"
++dependencies = [
++ "glib-sys",
++ "libc",
++ "system-deps",
++]
++
++[[package]]
++name = "heck"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "humantime"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
++dependencies = [
++ "quick-error",
++]
++
++[[package]]
++name = "itertools"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
++
++[[package]]
++name = "itoa"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "lazycell"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
++
++[[package]]
++name = "libc"
++version = "0.2.126"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
++
++[[package]]
++name = "libloading"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
++dependencies = [
++ "cc",
++ "winapi",
++]
++
++[[package]]
++name = "lock_api"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
++dependencies = [
++ "scopeguard",
++]
++
++[[package]]
++name = "log"
++version = "0.4.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "louds-rs"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e16a91fb20f74b6d9a758a0103a2884af525a2fa34fbfe19f4b3c5482a4a54e9"
++dependencies = [
++ "fid-rs",
++]
++
++[[package]]
++name = "maybe-uninit"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
++
++[[package]]
++name = "memchr"
++version = "2.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
++
++[[package]]
++name = "memoffset"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
++dependencies = [
++ "autocfg 1.1.0",
++]
++
++[[package]]
++name = "nom"
++version = "5.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
++dependencies = [
++ "memchr",
++ "version_check",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
++dependencies = [
++ "autocfg 1.1.0",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "once_cell"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d584f08c2d717d5c23a6414fc2822b71c651560713e54fa7eace675f758a355e"
++dependencies = [
++ "parking_lot",
++]
++
++[[package]]
++name = "parking_lot"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
++dependencies = [
++ "lock_api",
++ "parking_lot_core",
++ "rustc_version 0.2.3",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
++dependencies = [
++ "cfg-if 0.1.10",
++ "cloudabi",
++ "libc",
++ "redox_syscall",
++ "rustc_version 0.2.3",
++ "smallvec",
++ "winapi",
++]
++
++[[package]]
++name = "peeking_take_while"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.25"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.39"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
++dependencies = [
++ "unicode-ident",
++]
++
++[[package]]
++name = "quick-error"
++version = "1.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
++
++[[package]]
++name = "quote"
++version = "1.0.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
++dependencies = [
++ "autocfg 0.1.8",
++ "libc",
++ "rand_chacha",
++ "rand_core 0.4.2",
++ "rand_hc",
++ "rand_isaac",
++ "rand_jitter",
++ "rand_os",
++ "rand_pcg",
++ "rand_xorshift",
++ "winapi",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
++dependencies = [
++ "autocfg 0.1.8",
++ "rand_core 0.3.1",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
++dependencies = [
++ "rand_core 0.4.2",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
++
++[[package]]
++name = "rand_hc"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
++dependencies = [
++ "rand_core 0.3.1",
++]
++
++[[package]]
++name = "rand_isaac"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
++dependencies = [
++ "rand_core 0.3.1",
++]
++
++[[package]]
++name = "rand_jitter"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
++dependencies = [
++ "libc",
++ "rand_core 0.4.2",
++ "winapi",
++]
++
++[[package]]
++name = "rand_os"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
++dependencies = [
++ "cloudabi",
++ "fuchsia-cprng",
++ "libc",
++ "rand_core 0.4.2",
++ "rdrand",
++ "winapi",
++]
++
++[[package]]
++name = "rand_pcg"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
++dependencies = [
++ "autocfg 0.1.8",
++ "rand_core 0.4.2",
++]
++
++[[package]]
++name = "rand_xorshift"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
++dependencies = [
++ "rand_core 0.3.1",
++]
++
++[[package]]
++name = "rand_xoshiro"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "03b418169fb9c46533f326efd6eed2576699c44ca92d3052a066214a8d828929"
++dependencies = [
++ "byteorder",
++ "rand_core 0.3.1",
++]
++
++[[package]]
++name = "rayon"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
++dependencies = [
++ "autocfg 1.1.0",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
++]
++
++[[package]]
++name = "rayon-core"
++version = "1.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
++dependencies = [
++ "crossbeam-channel",
++ "crossbeam-deque",
++ "crossbeam-utils",
++ "num_cpus",
++]
++
++[[package]]
++name = "rdrand"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
++dependencies = [
++ "rand_core 0.3.1",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "regex"
++version = "1.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++]
++
++[[package]]
++name = "regex-automata"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
++
++[[package]]
++name = "rustc-hash"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++dependencies = [
++ "semver 0.9.0",
++]
++
++[[package]]
++name = "rustc_version"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
++dependencies = [
++ "semver 1.0.10",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++dependencies = [
++ "semver-parser",
++]
++
++[[package]]
++name = "semver"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a41d061efea015927ac527063765e73601444cdc344ba855bc7bd44578b25e1c"
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++
++[[package]]
++name = "serde"
++version = "1.0.137"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
++
++[[package]]
++name = "serde_derive"
++version = "1.0.137"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.81"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
++dependencies = [
++ "itoa 1.0.2",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "shlex"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
++
++[[package]]
++name = "smallvec"
++version = "0.6.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
++dependencies = [
++ "maybe-uninit",
++]
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "strum"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "57bd81eb48f4c437cadc685403cad539345bf703d78e63707418431cecd4522b"
++
++[[package]]
++name = "strum_macros"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "87c85aa3f8ea653bfd3ddf25f7ee357ee4d204731f6aa9ad04002306f6e2774c"
++dependencies = [
++ "heck",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.96"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0748dd251e24453cb8717f0354206b91557e4ec8703673a4b30208f2abaf1ebf"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-ident",
++]
++
++[[package]]
++name = "system-deps"
++version = "1.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
++dependencies = [
++ "heck",
++ "pkg-config",
++ "strum",
++ "strum_macros",
++ "thiserror",
++ "toml",
++ "version-compare",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.31"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.31"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "tinytemplate"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
++dependencies = [
++ "serde",
++ "serde_json",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
++dependencies = [
++ "serde",
++]
++
++[[package]]
++name = "trie-rs"
++version = "0.1.2-alpha.0"
++source = "git+https://github.com/davidventura/trie-rs#fab7d8cfca7cca35443d85e294655d6d73d85720"
++dependencies = [
++ "louds-rs",
++]
++
++[[package]]
++name = "unicode-ident"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
++
++[[package]]
++name = "unicode-width"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "version-compare"
++version = "0.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d63556a25bae6ea31b52e640d7c41d1ab27faba4ccb600013837a3d0b3994ca1"
++
++[[package]]
++name = "version_check"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
++
++[[package]]
++name = "walkdir"
++version = "2.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
++dependencies = [
++ "same-file",
++ "winapi",
++ "winapi-util",
++]
++
++[[package]]
++name = "which"
++version = "3.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "wk-we-adblock"
++version = "0.1.0"
++dependencies = [
++ "bindgen",
++ "criterion",
++ "gobject-sys",
++ "lazy_static",
++ "once_cell",
++ "pkg-config",
++ "rand",
++ "trie-rs",
++]
diff --git a/testing/wk-adblock/webkit2gtk-4.1.patch b/testing/wk-adblock/webkit2gtk-4.1.patch
new file mode 100644
index 00000000000..903a37fd2c1
--- /dev/null
+++ b/testing/wk-adblock/webkit2gtk-4.1.patch
@@ -0,0 +1,13 @@
+diff --git a/wk-we-adblock/build.rs b/wk-we-adblock/build.rs
+index f945e71..7153e04 100644
+--- a/wk-we-adblock/build.rs
++++ b/wk-we-adblock/build.rs
+@@ -5,7 +5,7 @@ use std::env;
+ use std::path::PathBuf;
+
+ fn main() {
+- let webkit2gtk = pkg_config::probe_library("webkit2gtk-4.0").unwrap();
++ let webkit2gtk = pkg_config::probe_library("webkit2gtk-4.1").unwrap();
+ let gtk = pkg_config::probe_library("gtk+-3.0").unwrap();
+
+ println!("cargo:rerun-if-changed=wrapper.h");
diff --git a/testing/wl-clipboard-x11/APKBUILD b/testing/wl-clipboard-x11/APKBUILD
index 01b13ae9186..f38989d3c22 100644
--- a/testing/wl-clipboard-x11/APKBUILD
+++ b/testing/wl-clipboard-x11/APKBUILD
@@ -2,14 +2,17 @@
# Maintainer: Robert Sacks <robert@sacks.email>
pkgname=wl-clipboard-x11
pkgver=5
-pkgrel=0
+pkgrel=3
pkgdesc="A wrapper to use wl-clipboard as a drop-in replacement to X11 clipboard tools"
url="https://github.com/brunelli/wl-clipboard-x11"
arch="noarch"
license="GPL-3.0-or-later"
options="!check"
-provides="xclip xsel"
depends="wl-clipboard"
+# other provider of cmd:xclip is xclip
+# other provider of cmd:xsel is xsel
+provider_priority=10 # lowest
+provides="cmd:xclip cmd:xsel"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/brunelli/wl-clipboard-x11/archive/v$pkgver.tar.gz"
@@ -17,4 +20,6 @@ package() {
DESTDIR="$pkgdir" make install
}
-sha512sums="3c40c2f9b44ca5f10d16ae5a696fba04c8fea9a94be910055f3d627d975eea337507dedf9c9f9ffaee90fb8b5a7d77786b34b95a6ad08a31b45fefb0514ef468 wl-clipboard-x11-5.tar.gz"
+sha512sums="
+3c40c2f9b44ca5f10d16ae5a696fba04c8fea9a94be910055f3d627d975eea337507dedf9c9f9ffaee90fb8b5a7d77786b34b95a6ad08a31b45fefb0514ef468 wl-clipboard-x11-5.tar.gz
+"
diff --git a/testing/wl-gammarelay/APKBUILD b/testing/wl-gammarelay/APKBUILD
new file mode 100644
index 00000000000..33065da8cc5
--- /dev/null
+++ b/testing/wl-gammarelay/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=wl-gammarelay
+pkgver=0.1.1
+pkgrel=6
+pkgdesc="Control color temperature and brightness under Wayland via DBus"
+url="https://github.com/jeremija/wl-gammarelay"
+license="GPL-3.0"
+arch="all"
+makedepends="go wayland-dev"
+source="https://github.com/jeremija/wl-gammarelay/archive/v$pkgver/wl-gammarelay-$pkgver.tar.gz"
+options="!check net" # no test suite, fetch dependencies
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ make -C protocol
+ go build -ldflags "-X main.Version=$pkgver"
+}
+
+package() {
+ install -Dm755 wl-gammarelay "$pkgdir"/usr/bin/wl-gammarelay
+}
+
+sha512sums="
+94251802a30bc5ecad9755c95c740cf0c56b2483e6bd08d7a77c34ec87e13f7ebf8f029e408053e0e03f4ce202e36d24f23c0c463271bca680ad4fd72eec9391 wl-gammarelay-0.1.1.tar.gz
+"
diff --git a/testing/wlavu/APKBUILD b/testing/wlavu/APKBUILD
new file mode 100644
index 00000000000..aa8ecf64f80
--- /dev/null
+++ b/testing/wlavu/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=wlavu
+pkgver=0_git20201101
+_commit="665d39e70c16521cb6f883f25b8c5c4eeb863d44"
+pkgrel=1
+pkgdesc="PipeWire VU-meter for Wayland"
+url="https://git.sr.ht/~kennylevinsen/wlavu"
+license="MIT"
+arch="all !s390x" # limited by pipewire
+options="!check" # no test suite
+makedepends="
+ meson
+ wayland-dev
+ wayland-protocols
+ pipewire-dev
+ "
+source="$pkgname-$_commit.tar.gz::https://git.sr.ht/~kennylevinsen/wlavu/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="20597dbbb9b764ebab832130e809a77b8210242bc63cf8af7659bf0e8b2bba948509b432d70abbfccdd73d655157d8d65e3041aeebe318db36fac1ce958854d9 wlavu-665d39e70c16521cb6f883f25b8c5c4eeb863d44.tar.gz"
diff --git a/testing/wlclock/APKBUILD b/testing/wlclock/APKBUILD
new file mode 100644
index 00000000000..83f308cb656
--- /dev/null
+++ b/testing/wlclock/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=wlclock
+pkgver=1.0.1
+pkgrel=0
+pkgdesc="Digital analog clock for Wayland desktops"
+url="https://git.sr.ht/~leon_plickat/wlclock"
+license="GPL-3.0"
+arch="all"
+makedepends="
+ meson
+ cairo-dev
+ wayland-dev
+ wayland-protocols
+ scdoc
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~leon_plickat/wlclock/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # no test suite
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+426ee85a0b7f896b4d471a799e1f808876e8a915464b720584ca9514c79d982629a40cfef63d54c9135dbd734510c08d1265b407c08cfb149bc32edba987a435 wlclock-1.0.1.tar.gz
+"
diff --git a/testing/wlopm/APKBUILD b/testing/wlopm/APKBUILD
new file mode 100644
index 00000000000..de77e83177a
--- /dev/null
+++ b/testing/wlopm/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Nulo <alpine@nulo.in>
+# Maintainer: Nulo <alpine@nulo.in>
+pkgname=wlopm
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Wayland output power management"
+url="https://sr.ht/~leon_plickat/wlopm/"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # No test suite
+makedepends="wayland-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~leon_plickat/wlopm/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ make
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+a9690051786cfef1f96b574c8afaf35a7e234c0fa3b35b210be1fc1a963304c94f77d60935b32030cc641e87279d58b74f55dd3a6a4fcef905fb9432dd58ecab wlopm-0.1.0.tar.gz
+"
diff --git a/testing/wlrobs/APKBUILD b/testing/wlrobs/APKBUILD
new file mode 100644
index 00000000000..fa346994603
--- /dev/null
+++ b/testing/wlrobs/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+pkgname=wlrobs
+pkgver=1.0
+pkgrel=4
+pkgdesc="obs-studio plugin that allows you to screen capture on wlroots"
+url="https://hg.sr.ht/~scoopta/wlrobs"
+arch="all !riscv64 !ppc64le" # obs -> luajit
+license="GPL-3.0-only"
+makedepends="
+ libdrm-dev
+ mesa-dev
+ meson
+ ninja
+ obs-studio-dev
+ wayland-dev
+"
+source="https://dev.alpinelinux.org/archive/wlrobs/wlrobs-$pkgver.tar.gz "
+builddir="$srcdir/$pkgname-v$pkgver"
+options="!check" # No tests provided
+
+_srcurl="https://hg.sr.ht/~scoopta/wlrobs/archive/v$pkgver.tar.gz"
+
+snapshot() {
+ mkdir -p "$srcdir"
+ wget "$_srcurl" -O "$srcdir/$pkgname-$pkgver.tar.gz"
+ scp "$srcdir/$pkgname-$pkgver.tar.gz" \
+ dev.alpinelinux.org:/archive/$pkgname/
+}
+
+build() {
+ abuild-meson \
+ -Duse_dmabuf=true \
+ build
+ meson compile -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+801b95edc426d1c85567ff3dff5ae483090ba9e38e11564b60305a41096e496db2da27c472df92b22c2bd44be717432a9a62e051125eba77b30d2b57326f8683 wlrobs-1.0.tar.gz
+"
diff --git a/testing/wlroots0.12/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch b/testing/wlroots0.12/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch
new file mode 100644
index 00000000000..15d492cd0c9
--- /dev/null
+++ b/testing/wlroots0.12/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch
@@ -0,0 +1,51 @@
+Upstream: no
+
+From e43ba0857cb39eae30b5e02cb87723e6456dc61e Mon Sep 17 00:00:00 2001
+From: Oliver Smith <ollieparanoid@postmarketos.org>
+Date: Tue, 10 Nov 2020 20:57:04 +0100
+Subject: [PATCH] Revert "layer-shell: error on 0 dimension without anchors"
+
+This reverts commit 8dec751a6d84335fb04288b8efab6dd5c90288d3, which
+introduced a consistency check:
+https://github.com/swaywm/wlroots/commit/8dec751a6d84335fb04288b8efab6dd5c90288d3
+
+Currently this causes phosh to crash, so let's revert it temporarily:
+https://source.puri.sm/Librem5/phosh/-/issues/422
+---
+ types/wlr_layer_shell_v1.c | 20 --------------------
+ 1 file changed, 20 deletions(-)
+
+diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c
+index bc681117..d83b22b8 100644
+--- a/types/wlr_layer_shell_v1.c
++++ b/types/wlr_layer_shell_v1.c
+@@ -307,26 +307,6 @@ static void layer_surface_role_commit(struct wlr_surface *wlr_surface) {
+ return;
+ }
+
+- const uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
+- ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
+- if (surface->client_pending.desired_width == 0 &&
+- (surface->client_pending.anchor & horiz) != horiz) {
+- wl_resource_post_error(surface->resource,
+- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
+- "width 0 requested without setting left and right anchors");
+- return;
+- }
+-
+- const uint32_t vert = ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
+- ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
+- if (surface->client_pending.desired_height == 0 &&
+- (surface->client_pending.anchor & vert) != vert) {
+- wl_resource_post_error(surface->resource,
+- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
+- "height 0 requested without setting top and bottom anchors");
+- return;
+- }
+-
+ if (surface->closed) {
+ // Ignore commits after the compositor has closed it
+ return;
+--
+2.20.1
+
diff --git a/testing/wlroots0.12/APKBUILD b/testing/wlroots0.12/APKBUILD
new file mode 100644
index 00000000000..850ef11ba64
--- /dev/null
+++ b/testing/wlroots0.12/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Maintainer:
+pkgname=wlroots0.12
+pkgver=0.12.0
+pkgrel=1
+pkgdesc="modular Wayland compositor library (version 0.12.0 for phoc)"
+url="https://github.com/swaywm/wlroots"
+arch="all"
+license="MIT"
+options="!check" # contains no test suite
+makedepends="
+ elogind-dev
+ eudev-dev
+ libcap-dev
+ libinput-dev
+ libxcb-dev
+ libxkbcommon-dev
+ mesa-dev
+ meson
+ ninja
+ pixman-dev
+ wayland-dev
+ wayland-protocols
+ xcb-util-image-dev
+ xcb-util-wm-dev
+ xkeyboard-config-dev
+ "
+subpackages="$pkgname-dbg $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/swaywm/wlroots/archive/$pkgver.tar.gz
+ 0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch
+ "
+builddir="$srcdir/wlroots-$pkgver"
+
+replaces="wlroots"
+
+build() {
+ abuild-meson \
+ -Dlogind=enabled \
+ -Dlogind-provider=elogind \
+ -Dexamples=false \
+ . build
+ meson compile -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+560eae30932b777c1f07fb44592d5601c5d10ef74b31b6b9e4166a14caadab2bfa88d39282f159785d4c7f22f78d204f9bb7fab65d58afaf14b72a8486f9b415 wlroots0.12-0.12.0.tar.gz
+5547741b35fc8364360dabb93a6f988b6be9299b77ee4adf2c7edfcd4a3c97f2f0cbbd19a41548254fe5d2327ed45300824920ce3c9d0cb0846a3ba5b5a83e02 0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch
+"
diff --git a/testing/wlroots0.15/0001-wlr_output_commit_state_clear_back_buffer.patch b/testing/wlroots0.15/0001-wlr_output_commit_state_clear_back_buffer.patch
new file mode 100644
index 00000000000..5e4196762c9
--- /dev/null
+++ b/testing/wlroots0.15/0001-wlr_output_commit_state_clear_back_buffer.patch
@@ -0,0 +1,30 @@
+From 7b8609eeb67bfea90e2a20409f870fd229af9a5d Mon Sep 17 00:00:00 2001
+From: Alexander Orzechowski <orzechowski.alexander@gmail.com>
+Date: Sat, 4 Jun 2022 18:18:02 -0400
+Subject: [PATCH] wlr_output_commit_state: Make sure to clear the back buffer
+
+Fixes: #3445
+---
+ types/output/output.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/types/output/output.c b/types/output/output.c
+index 85590ab63..4cf0fa8f5 100644
+--- a/types/output/output.c
++++ b/types/output/output.c
+@@ -654,10 +654,12 @@ bool wlr_output_test(struct wlr_output *output) {
+ bool wlr_output_commit(struct wlr_output *output) {
+ if (!output_basic_test(output)) {
+ wlr_log(WLR_ERROR, "Basic output test failed for %s", output->name);
++ output_clear_back_buffer(output);
+ return false;
+ }
+
+ if (!output_ensure_buffer(output)) {
++ output_clear_back_buffer(output);
+ return false;
+ }
+
+--
+GitLab
+
diff --git a/testing/wlroots0.15/APKBUILD b/testing/wlroots0.15/APKBUILD
new file mode 100644
index 00000000000..9cc5e7a7ddf
--- /dev/null
+++ b/testing/wlroots0.15/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
+# Contributor:
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=wlroots0.15
+pkgver=0.15.1
+pkgrel=6
+pkgdesc="Modular Wayland compositor library"
+url="https://gitlab.freedesktop.org/wlroots/wlroots"
+license="MIT"
+arch="all"
+makedepends="
+ eudev-dev
+ glslang-dev
+ hwdata-dev
+ libcap-dev
+ libinput-dev
+ libseat-dev
+ libxcb-dev
+ libxkbcommon-dev
+ mesa-dev
+ meson
+ ninja
+ pixman-dev
+ vulkan-loader-dev
+ wayland-dev
+ wayland-protocols
+ xcb-util-image-dev
+ xcb-util-renderutil-dev
+ xcb-util-wm-dev
+ xkeyboard-config-dev
+ xwayland-dev
+ "
+subpackages="$pkgname-dbg $pkgname-dev"
+source="https://gitlab.freedesktop.org/wlroots/wlroots/-/archive/$pkgver/wlroots-$pkgver.tar.gz
+ 0001-wlr_output_commit_state_clear_back_buffer.patch
+ "
+options="!check" # no test suite
+builddir="$srcdir/wlroots-$pkgver"
+
+replaces="wlroots"
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Dexamples=false \
+ . build
+ meson compile -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+6228160f2f350a406c612f1048d7075cf2f78206cc84bc16f889d5d0acd614f9e98845fffed03d7067cfdbd7558b77fcc5d8cedc3868d866e476523126a63677 wlroots-0.15.1.tar.gz
+5e163ed2b918287397cd7485207ea3ee19ef5585771c709f937b4dc442aa86153d9c8414295d336a9379896e1c9728614e6126d768c3efa6da41ef961d480970 0001-wlr_output_commit_state_clear_back_buffer.patch
+"
diff --git a/testing/wlvncc/APKBUILD b/testing/wlvncc/APKBUILD
new file mode 100644
index 00000000000..1d07c11d133
--- /dev/null
+++ b/testing/wlvncc/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Maxim Karasev <mxkrsv@disroot.org>
+# Maintainer: Maxim Karasev <mxkrsv@disroot.org>
+pkgname=wlvncc
+pkgver=0.0.0_git20230105
+_commit=2b9a886edd38204ef36e9f9f65dd32aaa3784530
+pkgrel=0
+pkgdesc="wayland native VNC client"
+url="https://github.com/any1/wlvncc"
+arch="all"
+license="ISC AND GPL-2.0-or-later"
+makedepends="
+ aml-dev
+ cyrus-sasl-dev
+ ffmpeg-dev
+ gnutls-dev
+ libdrm-dev
+ libgcrypt-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libxkbcommon-dev
+ lzo-dev
+ mesa-dev
+ meson
+ openssl-dev
+ pixman-dev
+ wayland-dev
+ zlib-dev
+ "
+source="https://github.com/any1/wlvncc/archive/$_commit/wlvncc-$pkgver.tar.gz"
+builddir="$srcdir/wlvncc-$_commit"
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+67fbd7c5c513113f6660d6711b09573de4bbd305c4f64ff4cc833864cf66c296ee23209a0ce4af6edb8e58ced462477f2105c1963e80471266d31a3ccc629db9 wlvncc-0.0.0_git20230105.tar.gz
+"
diff --git a/testing/wmctrl/APKBUILD b/testing/wmctrl/APKBUILD
index 3595a6bda01..4c8f99b64c2 100644
--- a/testing/wmctrl/APKBUILD
+++ b/testing/wmctrl/APKBUILD
@@ -2,40 +2,29 @@
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=wmctrl
pkgver=1.07
-pkgrel=0
+pkgrel=1
pkgdesc="wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager"
url="https://sites.google.com/site/tstyblo/wmctrl"
arch="all"
license="GPL"
-depends=""
-depends_dev=""
makedepends="libxmu-dev libx11-dev glib-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://sites.google.com/site/tstyblo/wmctrl/wmctrl-1.07.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://sites.google.com/site/tstyblo/wmctrl/wmctrl-$pkgver.tar.gz
+ fix-x86_64.patch
+ "
build() {
- cd "$_builddir"
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man || return 1
- make
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="4c77ad1e204e8d444f682ad1d05c0993bcab9097ac6d4b6a944556ab85acbe713f549dbaf443cd4d1226a162ce7d46fbd209c92652e87fc8e609feee74907daa wmctrl-1.07.tar.gz"
+sha512sums="
+4c77ad1e204e8d444f682ad1d05c0993bcab9097ac6d4b6a944556ab85acbe713f549dbaf443cd4d1226a162ce7d46fbd209c92652e87fc8e609feee74907daa wmctrl-1.07.tar.gz
+595f34d85cb08bad729d5903f3b6f9068d8e78ba9b814dc27d45082bed057b88875eaf77927a1808c9156f19f204363ff39db74a5efef1db0e41b586a975c6e3 fix-x86_64.patch
+"
diff --git a/testing/wmctrl/fix-x86_64.patch b/testing/wmctrl/fix-x86_64.patch
new file mode 100644
index 00000000000..30cf2e16b52
--- /dev/null
+++ b/testing/wmctrl/fix-x86_64.patch
@@ -0,0 +1,33 @@
+Patch-Source: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=362068
+Description: Correct 64 Architecture implementation of 32 bit data
+Author: Chris Donoghue <cdonoghu@gmail.com>
+Bug-Debian: http://bugs.debian.org/362068
+
+--- wmctrl-1.07.orig/main.c
++++ wmctrl-1.07/main.c
+@@ -1425,6 +1425,16 @@ static gchar *get_property (Display *dis
+ *
+ * long_length = Specifies the length in 32-bit multiples of the
+ * data to be retrieved.
++ *
++ * NOTE: see
++ * http://mail.gnome.org/archives/wm-spec-list/2003-March/msg00067.html
++ * In particular:
++ *
++ * When the X window system was ported to 64-bit architectures, a
++ * rather peculiar design decision was made. 32-bit quantities such
++ * as Window IDs, atoms, etc, were kept as longs in the client side
++ * APIs, even when long was changed to 64 bits.
++ *
+ */
+ if (XGetWindowProperty(disp, win, xa_prop_name, 0, MAX_PROPERTY_VALUE_LEN / 4, False,
+ xa_prop_type, &xa_ret_type, &ret_format,
+@@ -1441,6 +1451,8 @@ static gchar *get_property (Display *dis
+
+ /* null terminate the result to make string handling easier */
+ tmp_size = (ret_format / 8) * ret_nitems;
++ /* Correct 64 Architecture implementation of 32 bit data */
++ if(ret_format==32) tmp_size *= sizeof(long)/4;
+ ret = g_malloc(tmp_size + 1);
+ memcpy(ret, ret_prop, tmp_size);
+ ret[tmp_size] = '\0';
diff --git a/testing/wmi-client/APKBUILD b/testing/wmi-client/APKBUILD
index 65b11dcd431..03b6879b7ea 100644
--- a/testing/wmi-client/APKBUILD
+++ b/testing/wmi-client/APKBUILD
@@ -3,7 +3,7 @@
pkgname=wmi-client
_pkgname="${pkgname/-*/}"
pkgver=1.3.16
-pkgrel=3
+pkgrel=4
pkgdesc="DCOM/WMI client implementation"
url="https://www.orvant.com/packages"
arch="all !aarch64"
@@ -24,6 +24,7 @@ builddir="$srcdir/$_pkgname-$pkgver"
prepare() {
default_prepare
update_config_guess
+ update_config_sub
}
build() {
diff --git a/testing/wmutils/APKBUILD b/testing/wmutils/APKBUILD
index f6dc47d2874..82d838b0246 100644
--- a/testing/wmutils/APKBUILD
+++ b/testing/wmutils/APKBUILD
@@ -1,6 +1,6 @@
-# Maintainer:
+# Maintainer: John Vogel <jvogel4@stny.rr.com>
pkgname=wmutils
-pkgver=1.5
+pkgver=1.7
pkgrel=1
pkgdesc="Set of X11 windows manipulation tools"
options="!check" # No testsuite
@@ -20,4 +20,6 @@ package() {
make DESTDIR="$pkgdir" PREFIX=/usr MANPREFIX=/usr/share/man install
}
-sha512sums="24989f53f9b42b927d285c25bcf25e09d89347b2d53232683c5de07318a4e3e535b87590bfcdd31309e63e1f0e85f6cdf8db7c32b039db883d6240bb210c78c2 wmutils-1.5.tar.gz"
+sha512sums="
+726fb328f503c6338f3b855ea77d797db647a78d1de02cfbb3778f27d10dbaa6cec14f46558d46da866b33467a1ab7871634075800d8f2ef00d3e0b5d331c65a wmutils-1.7.tar.gz
+"
diff --git a/testing/wob/APKBUILD b/testing/wob/APKBUILD
deleted file mode 100644
index 730cac4d028..00000000000
--- a/testing/wob/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=wob
-pkgver=0.8
-pkgrel=0
-pkgdesc="A lightweight overlay volume/backlight/progress/anything bar for Wayland."
-url="https://github.com/francma/wob"
-arch="all"
-license="ISC"
-makedepends="meson git wayland-protocols wayland-dev scdoc"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/francma/wob/archive/$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- build-release
- ninja -C build-release
-}
-
-check() {
- ninja -C build-release test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build-release install
-}
-sha512sums="2ff525db1f2eb3e93def8d0c052ff7ba348acfa5f396b6f958754ed1f760e54d14ea140bdc4c6d2daa0cdc3a3ec3efe027cd5cad7f56b5b11d50b51ed7ca2924 wob-0.8.tar.gz"
diff --git a/testing/wofi/APKBUILD b/testing/wofi/APKBUILD
deleted file mode 100644
index 1b8445fc1f3..00000000000
--- a/testing/wofi/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Galen Abell <galen@galenabell.com>
-# Maintainer: Galen Abell <galen@galenabell.com>
-pkgname=wofi
-pkgver=1.1.2
-pkgrel=0
-pkgdesc="A launcher/menu program for wlroots based wayland compositors."
-url="https://hg.sr.ht/~scoopta/wofi"
-arch="" # Uses autogenerated tarballs, see https://todo.sr.ht/~sircmpwn/hg.sr.ht/33
-license="GPL-3.0-only"
-makedepends="wayland-dev gtk+3.0-dev meson"
-options="!check" # no tests
-subpackages="$pkgname-doc"
-source="$pkgname-v$pkgver.tar.gz::https://hg.sr.ht/~scoopta/wofi/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-v$pkgver"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-sha512sums="94981fbc76e354308a7d478b316c858407d35b4400bd44449c8dd4dbe64f36630af136b615dd52171bb341da1c699fdb5196e0a2484e253375c2df6d90d5eb3b wofi-v1.1.2.tar.gz"
diff --git a/testing/wok/APKBUILD b/testing/wok/APKBUILD
index 4b0e1cfb741..6b3578f32ff 100644
--- a/testing/wok/APKBUILD
+++ b/testing/wok/APKBUILD
@@ -2,19 +2,21 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=wok
pkgver=3.0.0
-pkgrel=0
+pkgrel=6
pkgdesc="Webserver of Kimchi - a cherrypy framework for multi-purpose plug-ins"
url="https://kimchi-project.github.io/wok/"
-arch="noarch !mips64" # blocked by websockify
+# s390x: blocked by polkist (py3-libvirt -> libvirt -> polkit)
+# riscv64: blocked by nginx
+arch="noarch !s390x !riscv64"
license="Apache-2.0 AND LGPL-2.1-only"
depends="python3 nginx logrotate py3-cherrypy py3-jsonschema
- py3-pyparted py3-pyldap py3-psutil py3-m2crypto py-cheetah
+ py3-pyparted py3-ldap py3-psutil py3-m2crypto py-cheetah
py3-augeas py3-pam py3-lxml py3-libvirt py3-yaml
- ttf-opensans ttf-font-awesome"
+ font-opensans font-awesome-free"
makedepends="automake autoconf libtool gettext-dev
python3-dev py3-pyflakes libxslt py3-setuptools websockify py3-mock"
options="!check" # depends on jaraco
-subpackages="$pkgname-lang $pkgname-doc"
+subpackages="$pkgname-lang $pkgname-doc $pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/kimchi-project/wok/archive/$pkgver.tar.gz
wokd.initd
alpine-specific-pushserver.patch
diff --git a/testing/wol/0001-musl-fixes.patch b/testing/wol/0001-musl-fixes.patch
new file mode 100644
index 00000000000..ab89e64fe1b
--- /dev/null
+++ b/testing/wol/0001-musl-fixes.patch
@@ -0,0 +1,17 @@
+diff --git a/lib/getline.h b/lib/getline.h
+index 991184c..a90d3b8 100644
+--- a/lib/getline.h
++++ b/lib/getline.h
+@@ -28,10 +28,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ # endif
+
+ # if __GLIBC__ < 2
+-int
++ssize_t
+ getline PARAMS ((char **_lineptr, size_t *_n, FILE *_stream));
+
+-int
++ssize_t
+ getdelim PARAMS ((char **_lineptr, size_t *_n, int _delimiter, FILE *_stream));
+ # endif
+
diff --git a/testing/wol/APKBUILD b/testing/wol/APKBUILD
new file mode 100644
index 00000000000..fcb0fd348e1
--- /dev/null
+++ b/testing/wol/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=wol
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="Wake On LAN functionality in a small program"
+url="https://wake-on-lan.sourceforge.io/"
+arch="all"
+license="GPL-2.0-or-later"
+subpackages="$pkgname-doc $pkgname-lang"
+source="
+ https://downloads.sourceforge.net/project/wake-on-lan/wol/$pkgver/wol-$pkgver.tar.gz
+ 0001-musl-fixes.patch
+ "
+
+prepare() {
+ default_prepare
+
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --infodir=/usr/share/info
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir"/usr/lib/charset.alias
+ rm -rf "$pkgdir"/usr/share/locale/locale.alias
+ rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
+}
+
+sha512sums="
+233cbd038633c4b04a22710c04a8349d7706c6b4ff0554b6899ee3309349502a318f6fb05a4ad4c80cd373c362b2ad8818cb52a432d768f569e80f05658615a3 wol-0.7.1.tar.gz
+993374df9eb3b4968c08cb151656d2e607da88ef94042edda1d4633c782238241a64b4097faabe6dfdb8323a54d58d428a4d4e2adb18c63b1bbb5935a7bdce98 0001-musl-fixes.patch
+"
diff --git a/testing/wolfssh/APKBUILD b/testing/wolfssh/APKBUILD
new file mode 100644
index 00000000000..fcc38d2aa38
--- /dev/null
+++ b/testing/wolfssh/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=wolfssh
+pkgver=1.4.17
+_pkgver=$pkgver-stable
+pkgrel=0
+pkgdesc="Small, fast, portable SSH implementation, including SCP and SFTP"
+url="https://www.wolfssl.com"
+arch="all"
+license="GPL-3.0-only"
+depends_dev="wolfssl-dev"
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ libtool
+ "
+checkdepends="bash"
+subpackages="$pkgname-dev"
+source="https://github.com/wolfSSL/wolfssh/archive/v$_pkgver/$pkgname-$_pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$_pkgver"
+
+case "$CARCH" in
+ s390x) options="!check";; # tests fail
+esac
+
+prepare() {
+ default_prepare
+
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-distro
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+8ade29fee96b36f1fbfd275ded26b4b1e16227e7c6a0a8ddb8a376977bd0f91ecb2f5e3a812b9bf0e1a5080e85ee1d776de5950fa76e4fe87418a82187dc03bc wolfssh-1.4.17-stable.tar.gz
+"
diff --git a/testing/woodpecker/0001-we-use-the-prebuild-webui.patch b/testing/woodpecker/0001-we-use-the-prebuild-webui.patch
new file mode 100644
index 00000000000..5fa28dc9169
--- /dev/null
+++ b/testing/woodpecker/0001-we-use-the-prebuild-webui.patch
@@ -0,0 +1,25 @@
+From bfda0d8509d3ce9e3e5e2b2744b9aa12fcd01f40 Mon Sep 17 00:00:00 2001
+From: 6543 <6543@obermui.de>
+Date: Sun, 21 Jan 2024 23:37:16 +0100
+Subject: [PATCH] we use the prebuild webui
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 0b0f700f5..3d41d0193 100644
+--- a/Makefile
++++ b/Makefile
+@@ -185,7 +185,7 @@ test: test-agent test-server test-server-datastore test-cli test-lib test-ui ##
+ build-ui: ## Build UI
+ (cd web/; pnpm install --frozen-lockfile; pnpm build)
+
+-build-server: build-ui generate-swagger ## Build server
++build-server: generate-swagger ## Build server
+ CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -o dist/woodpecker-server${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/server
+
+ build-agent: ## Build agent
+--
+2.43.0
+
diff --git a/testing/woodpecker/APKBUILD b/testing/woodpecker/APKBUILD
new file mode 100644
index 00000000000..aa5a5cb9a69
--- /dev/null
+++ b/testing/woodpecker/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=woodpecker
+pkgver=2.3.0
+pkgrel=3
+pkgdesc="Simple yet powerful CI/CD engine with great extensibility"
+url="https://woodpecker-ci.org"
+arch="all"
+license="Apache-2.0"
+pkgusers="woodpecker"
+pkggroups="woodpecker"
+makedepends="
+ go
+ go-swag
+ sqlite-dev
+ "
+subpackages="$pkgname-doc $pkgname-openrc"
+install="$pkgname.pre-install"
+source="$pkgname-$pkgver.tar.gz::https://github.com/woodpecker-ci/woodpecker/releases/download/v$pkgver/woodpecker-src.tar.gz
+ 0001-we-use-the-prebuild-webui.patch
+ woodpecker.initd
+ woodpecker.confd
+ woodpecker.conf
+ fix-cgo.patch
+ "
+
+export GOFLAGS="$GOFLAGS -tags=libsqlite3"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+unpack() {
+ mkdir -p $builddir
+ tar -xzvf $srcdir/$pkgname-$pkgver.tar.gz -C $builddir
+}
+
+build() {
+ export TARGETARCH="$(go env GOHOSTARCH)"
+ make build -j1 STATIC_BUILD=false
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 "$builddir"/dist/woodpecker-server \
+ "$pkgdir"/usr/bin/woodpecker-server
+ install -Dm755 "$builddir"/dist/woodpecker-agent \
+ "$pkgdir"/usr/bin/woodpecker-agent
+ install -Dm755 "$builddir"/dist/woodpecker-cli \
+ "$pkgdir"/usr/bin/woodpecker-cli
+ install -Dm 644 "$builddir"/LICENSE \
+ "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+ install -Dm755 "$srcdir"/woodpecker.initd \
+ "$pkgdir"/etc/init.d/woodpecker
+ install -Dm644 "$srcdir"/woodpecker.confd \
+ "$pkgdir"/etc/conf.d/woodpecker
+
+ install -Dm640 -o woodpecker -g woodpecker "$srcdir"/woodpecker.conf \
+ "$pkgdir"/etc/woodpecker.conf
+ install -dm755 -o woodpecker -g woodpecker "$pkgdir"/var/lib/woodpecker
+}
+
+sha512sums="
+3dc50ac720dfac5f7f558b3c0168a186b35751741af889d1330f968e8d7c3a34f6451fada002987c22336d14d34c952a94928a3733402f7bb58279bf4f0b9201 woodpecker-2.3.0.tar.gz
+aecf28a0e893ef39f4a9c834aab6d9cdfef5a7f01ba5918134e2e7f3784ae102e642b9e247957da9c480ac7486b5f82027bff8df3033e90a503de57597b69917 0001-we-use-the-prebuild-webui.patch
+69fe477f805dcb71b0220b9af2b3d0226b2e92f3c46764f37a139bb7303ad7cdb1caa2a711d1f9d22fccb357bbfbecb1c6cba2033c9101a11c0bb67b405c3e55 woodpecker.initd
+0be91432e730cb0ad3663bebe7a257437cbefe5fa5c2f3145d621545d6cd2ff89ae41f338a5874166d2b03dc8caab73d26cd4322ed1122d4949cae5d6002b823 woodpecker.confd
+cb15d7ff290d9b68d5f63c20401ab622c8a7067d336841c876a6d3325e9d2a3ede3a85b792131d7d77a4126cbdb6f30a5a6113468f1efd736a2c1bbf2bfefbe4 woodpecker.conf
+2e7a002378d9005a775efee97012ccf0bf1724382e89e4ff0a75cc9f29c57423d820b0ebdd3b72d5176a6e98ff82b60c9d98671d70e0c24b3e131ce513a520cb fix-cgo.patch
+"
diff --git a/testing/woodpecker/fix-cgo.patch b/testing/woodpecker/fix-cgo.patch
new file mode 100644
index 00000000000..74d3ec18103
--- /dev/null
+++ b/testing/woodpecker/fix-cgo.patch
@@ -0,0 +1,53 @@
+--- a/Makefile
++++ b/Makefile
+@@ -189,10 +189,10 @@
+ CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -o dist/woodpecker-server${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/server
+
+ build-agent: ## Build agent
+- CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -o dist/woodpecker-agent${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -o dist/woodpecker-agent${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+
+ build-cli: ## Build cli
+- CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -o dist/woodpecker-cli${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ CGO_ENABLED=${CGO_ENABLED} GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags '${LDFLAGS}' -o dist/woodpecker-cli${BIN_SUFFIX} go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+
+ build-tarball: ## Build tar archive
+ mkdir -p dist && tar chzvf dist/woodpecker-src.tar.gz \
+@@ -244,12 +244,12 @@
+
+ release-agent: ## Create agent binaries for release
+ # compile
+- GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/linux_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+- GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/linux_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+- GOOS=linux GOARCH=arm CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/linux_arm/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+- GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/windows_amd64/woodpecker-agent.exe go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+- GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/darwin_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+- GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/agent/darwin_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/agent/linux_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ GOOS=linux GOARCH=arm64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/agent/linux_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ GOOS=linux GOARCH=arm CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/agent/linux_arm/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ GOOS=windows GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/agent/windows_amd64/woodpecker-agent.exe go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/agent/darwin_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
++ GOOS=darwin GOARCH=arm64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/agent/darwin_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v2/cmd/agent
+ # tar binary files
+ tar -cvzf dist/woodpecker-agent_linux_amd64.tar.gz -C dist/agent/linux_amd64 woodpecker-agent
+ tar -cvzf dist/woodpecker-agent_linux_arm64.tar.gz -C dist/agent/linux_arm64 woodpecker-agent
+@@ -260,12 +260,12 @@
+
+ release-cli: ## Create cli binaries for release
+ # compile
+- GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/cli/linux_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+- GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/cli/linux_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+- GOOS=linux GOARCH=arm CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/cli/linux_arm/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+- GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/cli/windows_amd64/woodpecker-cli.exe go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+- GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/cli/darwin_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+- GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o dist/cli/darwin_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/cli/linux_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ GOOS=linux GOARCH=arm64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/cli/linux_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ GOOS=linux GOARCH=arm CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/cli/linux_arm/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ GOOS=windows GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/cli/windows_amd64/woodpecker-cli.exe go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/cli/darwin_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
++ GOOS=darwin GOARCH=arm64 CGO_ENABLED=${CGO_ENABLED} go build -ldflags '${LDFLAGS}' -o dist/cli/darwin_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v2/cmd/cli
+ # tar binary files
+ tar -cvzf dist/woodpecker-cli_linux_amd64.tar.gz -C dist/cli/linux_amd64 woodpecker-cli
+ tar -cvzf dist/woodpecker-cli_linux_arm64.tar.gz -C dist/cli/linux_arm64 woodpecker-cli
diff --git a/testing/woodpecker/woodpecker.conf b/testing/woodpecker/woodpecker.conf
new file mode 100644
index 00000000000..d572938d207
--- /dev/null
+++ b/testing/woodpecker/woodpecker.conf
@@ -0,0 +1,8 @@
+# Woodpecker configuration
+# Reference: https://woodpecker-ci.org/docs/administration/server-config
+
+# WOODPECKER_GITHUB_CLIENT_ID=your-id
+# WOODPECKER_GITHUB_CLIENT_SECRET=super-duper-secret
+# WOODPECKER_RPC_SECRET=super-duper-secret
+# WOODPECKER_SERVER_HOST=drone.company.com
+# WOODPECKER_SERVER_PROTO=https
diff --git a/testing/woodpecker/woodpecker.confd b/testing/woodpecker/woodpecker.confd
new file mode 100644
index 00000000000..add1cb0f694
--- /dev/null
+++ b/testing/woodpecker/woodpecker.confd
@@ -0,0 +1,4 @@
+# Configuration for /etc/init.d/woodpecker
+
+# env file path
+#env_file="/etc/woodpecker.conf"
diff --git a/testing/woodpecker/woodpecker.initd b/testing/woodpecker/woodpecker.initd
new file mode 100644
index 00000000000..1838930561f
--- /dev/null
+++ b/testing/woodpecker/woodpecker.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+supervisor=supervise-daemon
+
+name="Woodpecker CI server"
+
+command="/usr/bin/woodpecker-server"
+command_args="-env-file ${env_file:-/etc/woodpecker.conf}"
+command_user="woodpecker:woodpecker"
+directory="/var/lib/woodpecker"
+
+error_log="/var/log/woodpecker.log"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 755 -o "woodpecker:woodpecker" /var/lib/woodpecker
+ checkpath -f -m 644 -o "woodpecker:woodpecker" /var/log/woodpecker.log
+}
diff --git a/testing/woodpecker/woodpecker.pre-install b/testing/woodpecker/woodpecker.pre-install
new file mode 100644
index 00000000000..83ff0809e17
--- /dev/null
+++ b/testing/woodpecker/woodpecker.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S woodpecker 2>/dev/null
+adduser -S -D -H -h /var/lib/woodpecker -s /sbin/nologin -G woodpecker -g woodpecker woodpecker 2>/dev/null
+
+exit 0
diff --git a/testing/wordgrinder/APKBUILD b/testing/wordgrinder/APKBUILD
index 7c8e19ea996..b3ded22922c 100644
--- a/testing/wordgrinder/APKBUILD
+++ b/testing/wordgrinder/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Roberto Oliveira <robertoguimaraes8@gmail.com>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=wordgrinder
-pkgver=0.7.2
-pkgrel=0
+pkgver=0.8
+pkgrel=1
pkgdesc="A simple Unicode-aware word processor that runs on the console"
url="https://cowlark.com/wordgrinder/"
arch="all"
@@ -13,12 +13,9 @@ options="!check"
source="$pkgname-$pkgver.tar.gz::https://github.com/davidgiven/wordgrinder/archive/$pkgver.tar.gz
fixes-musl.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
package() {
- cd "$builddir"
make install PREFIX=/usr DESTDIR="$pkgdir"
}
-sha512sums="abf3fbeec25e557c780af9b633634d22214e20ae56aebe6574c97ba3d5e8d1adc985329ecf7930370f644d9762d064fb99ac8b64a5c95fa8e5ac6e14627f4d23 wordgrinder-0.7.2.tar.gz
-559eb2c04ba950fa72a0474e6bb74d2fbe64e8322af13d9b15622bde93013d0b8adba30fda2fa8e0f1e86ba1b7a28c238c5284c98685f118117314e2dea9b4ed fixes-musl.patch"
+sha512sums="192e21381dc7644ca1682fe2c5984f97675c7727b84971559625c4a30da28699164d62168022f9de76ec3250ecab32e65a720585c19c2105685d79c8c33a4d2b wordgrinder-0.8.tar.gz
+46a344f663c82bd538d48be05f4453eec2a1c0e6459c610560fb891eba6d24b2900d08761f10c3c396b0c38e5baba28ae8108b59c14def03f604d07bf7a3c593 fixes-musl.patch"
diff --git a/testing/wordgrinder/fixes-musl.patch b/testing/wordgrinder/fixes-musl.patch
index 491993181a2..37731c169d5 100644
--- a/testing/wordgrinder/fixes-musl.patch
+++ b/testing/wordgrinder/fixes-musl.patch
@@ -1,23 +1,13 @@
+diff --git a/src/c/arch/unix/cursesw/dpy.c b/src/c/arch/unix/cursesw/dpy.c
+index e9931bd..6345c89 100644
--- a/src/c/arch/unix/cursesw/dpy.c
+++ b/src/c/arch/unix/cursesw/dpy.c
-@@ -114,7 +114,7 @@
- {
- struct timeval then;
- gettimeofday(&then, NULL);
-- u_int64_t thenms = (then.tv_usec/1000) + ((u_int64_t) then.tv_sec*1000);
-+ uint64_t thenms = (then.tv_usec/1000) + ((uint64_t) then.tv_sec*1000);
+@@ -12,6 +12,8 @@
- for (;;)
- {
-@@ -123,9 +123,9 @@
- {
- struct timeval now;
- gettimeofday(&now, NULL);
-- u_int64_t nowms = (now.tv_usec/1000) + ((u_int64_t) now.tv_sec*1000);
-+ uint64_t nowms = (now.tv_usec/1000) + ((uint64_t) now.tv_sec*1000);
-
-- int delay = ((u_int64_t) timeout*1000) + nowms - thenms;
-+ int delay = ((uint64_t) timeout*1000) + nowms - thenms;
- if (delay <= 0)
- return -KEY_TIMEOUT;
+ #define KEY_TIMEOUT (KEY_MAX + 1)
++typedef uint64_t u_int64_t;
++
+ #if defined A_ITALIC
+ static bool has_italics = false;
+ #endif
diff --git a/testing/words/APKBUILD b/testing/words/APKBUILD
deleted file mode 100644
index b6d26d2bffb..00000000000
--- a/testing/words/APKBUILD
+++ /dev/null
@@ -1,127 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=words
-pkgver=2.1
-pkgrel=0
-pkgdesc="Collection of international 'words' file for /usr/share/dict"
-url="https://ftp.gnu.org/gnu/aspell/dict/0index.html"
-arch="noarch"
-license="GPL-2.0-or-later"
-makedepends="aspell-utils"
-subpackages="
- words-en:en:noarch
- words-gb:gb:noarch
- words-it:it:noarch
- words-es:es:noarch
- words-fi:fir:noarch
- words-fr:fr:noarch
- words-de:de:noarch
- "
-source="https://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2017.08.24-0.tar.bz2
- https://ftp.gnu.org/gnu/aspell/dict/fi/aspell6-fi-0.7-0.tar.bz2
- https://ftp.gnu.org/gnu/aspell/dict/fr/aspell-fr-0.50-3.tar.bz2
- https://ftp.gnu.org/gnu/aspell/dict/de-alt/aspell6-de-alt-2.1-1.tar.bz2
- https://ftp.gnu.org/gnu/aspell/dict/it/aspell6-it-2.2_20050523-0.tar.bz2
- https://ftp.gnu.org/gnu/aspell/dict/de/aspell-de-0.50-2.tar.bz2
- https://ftp.gnu.org/gnu/aspell/dict/es/aspell6-es-1.11-2.tar.bz2
- "
-builddir="$srcdir/words"
-
-prepare() {
- mkdir -p "$builddir"
- default_prepare
-}
-
-build() {
- find "$srcdir" -name '*.cwl' -not -path "$srcdir/$pkgname/*" -exec cp -u '{}' './' \;
- preunzip *.cwl
- for wl in *.wl; do
- iconv -f ISO-8859-1 -t UTF-8 $wl | \
- cut -d '/' -f 1 | LC_ALL=C sort -df > $wl.utf8
- done
- rm *.wl
-
- # locale specific sort for other languages?
- # sort specified from FS#47262
- cat en-common.wl.utf8 en_US* | sort -u | LC_ALL=C sort -df > us-merged
- cat en-common.wl.utf8 en_GB* | sort -u | LC_ALL=C sort -df > gb-merged
- cat de-only.wl.utf8 de_* | sort -u | LC_ALL=C sort -df > de-merged
-}
-
-package() {
- install -Dm644 us-merged "$pkgdir/usr/share/dict/american-english"
- install -Dm644 gb-merged "$pkgdir/usr/share/dict/british-english"
- ln -s american-english "$pkgdir/usr/share/dict/usa"
- ln -s british-english "$pkgdir/usr/share/dict/british"
-
- install -Dm644 de-merged "$pkgdir/usr/share/dict/ngerman"
- install -Dm644 de-alt.wl.utf8 "$pkgdir/usr/share/dict/ogerman"
- ln -s ngerman "$pkgdir/usr/share/dict/german"
-
- install -Dm644 fr-40-only.wl.utf8 "$pkgdir/usr/share/dict/french"
-
- install -Dm644 es.wl.utf8 "$pkgdir/usr/share/dict/spanish"
- install -Dm644 fi.wl.utf8 "$pkgdir/usr/share/dict/finnish"
- install -Dm644 it.wl.utf8 "$pkgdir/usr/share/dict/italian"
-}
-
-en() {
- depends=""
- pkgdesc="American English dictionary in /usr/share/dict"
-
- amove usr/share/dict/usa
- amove usr/share/dict/american-english
-}
-
-gb() {
- depends=""
- pkgdesc="British English dictionary in /usr/share/dict"
-
- amove usr/share/dict/british
- amove usr/share/dict/british-english
-}
-
-it() {
- depends=""
- pkgdesc="Italian dictionary in /usr/share/dict"
-
- amove usr/share/dict/italian
-}
-
-es() {
- depends=""
- pkgdesc="Spanish dictionary in /usr/share/dict"
-
- amove usr/share/dict/spanish
-}
-
-fir() {
- depends=""
- pkgdesc="Finnish dictionary in /usr/share/dict"
-
- amove usr/share/dict/finnish
-}
-
-fr() {
- depends=""
- pkgdesc="French dictionary in /usr/share/dict"
-
- amove usr/share/dict/french
-}
-
-de() {
- depends=""
- pkgdesc="German dictionary in /usr/share/dict"
-
- amove usr/share/dict/german
- amove usr/share/dict/ngerman
- amove usr/share/dict/ogerman
-}
-
-sha512sums="2530f6bff61456ccf4e0e8383ab8583a1421b6001f156b4419385a272a54217b01e93d7aed8acff15f1e49afbb13bb81fd66002662ce7233c465ec0737fdfedc aspell6-en-2017.08.24-0.tar.bz2
-d1f27bc8e36033cba6ddaa978f2facfe8d134ab70124ec80d5397dba2b533b512755312feaf2afa838f68e4449479953a8b951264fbbfc28cdfd9457f67f67f7 aspell6-fi-0.7-0.tar.bz2
-bb5d1faada9283521096a19a8f5abada2a19cc02717f6dde57846ef46a4df253113b10a2bb72d2b0e32e4a3ab24b541a5acd9f4595b908d2f6cd2fc448d8bc3b aspell-fr-0.50-3.tar.bz2
-823324bc299e9adbbe5308681a5f74ee2a76a32816e8abc9d19c3da0c4eae756eaf1a3c76e2d75449b51010854ab869379073b1fe377e505662187d6c38230b4 aspell6-de-alt-2.1-1.tar.bz2
-2a2ccdbb8bb52e8e08525a40f985c1a2987c00d5e9fd39f57b8dc8689f3503f63751efe9ae4bec45fc5efea64666cd64abbda3e437ad0819f15b5a96987cda5a aspell6-it-2.2_20050523-0.tar.bz2
-79b0c9776c4a9b8bb0c5b3902bd1aa5daf6262b2a02753165d2fdb056b9bb0efcf5c4290d85bf98103cca29cf7aa81f99f725ea0faf5ab98b36ce080bdf8afbc aspell-de-0.50-2.tar.bz2
-5d0159f24d6bff43db682a4beb25e82dd362c205acf7c9e0d728808c0e54a8a566befe26316f384099c72e6c429713f8ad7d2dc66a8f04a15e1d5a9cfe2290d8 aspell6-es-1.11-2.tar.bz2"
diff --git a/testing/wpa_actiond/APKBUILD b/testing/wpa_actiond/APKBUILD
index 4fca0c241a0..92e0397288f 100644
--- a/testing/wpa_actiond/APKBUILD
+++ b/testing/wpa_actiond/APKBUILD
@@ -2,13 +2,15 @@
# Maintainer: Marian <marian.buschsieweke@ovgu.de>
pkgname=wpa_actiond
pkgver=1.4
-pkgrel=3
+pkgrel=7
pkgdesc="Daemon that connects to wpa_supplicant and handles connect and disconnect events"
-url="https://git.archlinux.org/wpa_actiond.git/"
+url="http://projects.archlinux.org/wpa_actiond.git"
arch="all"
license="GPL-2.0-only"
-source="https://git.archlinux.org/wpa_actiond.git/snapshot/wpa_actiond-$pkgver.tar.gz
+subpackages="$pkgname-openrc"
+source="https://sources.archlinux.org/other/wpa_actiond/wpa_actiond-$pkgver.tar.xz
no_trampoline.patch
+ wait-for-three-failed-PONGs-before-disco.patch
wpa_actiond.confd
wpa_actiond.initd
"
@@ -20,11 +22,14 @@ build() {
package() {
install -Dm755 wpa_actiond "$pkgdir"/usr/sbin/wpa_actiond
- install -Dm755 ../wpa_actiond.initd "$pkgdir"/etc/init.d/wpa_actiond
- install -Dm755 ../wpa_actiond.confd "$pkgdir"/etc/conf.d/wpa_actiond
+ install -Dm755 "$srcdir"/wpa_actiond.initd "$pkgdir"/etc/init.d/wpa_actiond
+ install -Dm644 "$srcdir"/wpa_actiond.confd "$pkgdir"/etc/conf.d/wpa_actiond
}
-sha512sums="21e6e6a650f27565a0a314d2ae85cb246e07baf866220ed3fd33db764f389d91f0804fc79da4e2d0b7f68094683d8ee2ff9aa365612919edb293994bf92881fd wpa_actiond-1.4.tar.gz
+sha512sums="
+1ac38cdb6ce534cb14cfada4def31c17feff61408868ffd63cd1a516cdbade992719b575a96f5ab4046a1d451bfae526ccdf8eb68cfc7bdc022df3506ae07296 wpa_actiond-1.4.tar.xz
ebd49ffe1a83e08cd51d99677ce8c3f84ecdd4f3ec4a2c81a336bd87af56db0d36534003f9d7c3b34de129a3a4ef4ee4e9683f2a54729af86c946206c11cd20d no_trampoline.patch
+928bd9935549ffcde22679a6486e6c71633cfa66205be6f634d61e0c42ca64eb1db88eccb5499b5d6eda57ccabf4eeb1ac6ef510f1f14ec0bd3162fa4f530af2 wait-for-three-failed-PONGs-before-disco.patch
104ffd6e04d8f69fb238428256e2bc4a8e6acd5e333fc411a72b5ae2d82f4efff6e8d4e08a282ca1a8c2ffe0b2a7fd8cd3ac222e19d6c177c721b957ef4fa5e9 wpa_actiond.confd
-37f470728d74f0ca0d7c0c37ee8642710654f7ab3f8763d8ddb629dd096ad08adec266ba8d3dc15917fdbcd5667f302f6703909b3e86cd91c5c102c7412da788 wpa_actiond.initd"
+37f470728d74f0ca0d7c0c37ee8642710654f7ab3f8763d8ddb629dd096ad08adec266ba8d3dc15917fdbcd5667f302f6703909b3e86cd91c5c102c7412da788 wpa_actiond.initd
+"
diff --git a/testing/wpa_actiond/wait-for-three-failed-PONGs-before-disco.patch b/testing/wpa_actiond/wait-for-three-failed-PONGs-before-disco.patch
new file mode 100644
index 00000000000..3e0f22b68ad
--- /dev/null
+++ b/testing/wpa_actiond/wait-for-three-failed-PONGs-before-disco.patch
@@ -0,0 +1,72 @@
+From 8b74c8b3f69e501560e5f0c25cbcbc4aefcbc0ed Mon Sep 17 00:00:00 2001
+From: Emil Velikov <emil.l.velikov@gmail.com>
+Date: Mon, 21 Aug 2017 11:34:00 +0200
+Subject: [PATCH] wpa_actiond: Wait for three "failed" PONGs before
+ disconnecting
+
+When the system is very low on resources, select() may return 0 even
+when wpa_supplicant is alive and kicking.
+
+Don't disconnect as soon at that occurs - wait three times and clearly
+log it.
+
+Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
+---
+ wpa_actiond.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/wpa_actiond.c b/wpa_actiond.c
+index d60d885..03a9d7f 100644
+--- a/wpa_actiond.c
++++ b/wpa_actiond.c
+@@ -292,6 +292,7 @@ static void loop(const char *iface, const char *ctrlpath, const int disconnect_t
+ /* path to control socket */
+ char *ctrlsock = NULL;
+ int ctrlsocklen;
++ int pong_failures = 0;
+
+ ssid[0] = '\0';
+ old_ssid[0] = '\0';
+@@ -359,6 +360,7 @@ static void loop(const char *iface, const char *ctrlpath, const int disconnect_t
+ }
+ logevent(WPA_ACTIOND_LOG_TERMINATE, iface, "");
+ state = WPA_ACTIOND_STATE_TERMINATED;
++ pong_failures = 0;
+ break;
+ case 0:
+ if (state == WPA_ACTIOND_STATE_CONNECTION_LOST) {
+@@ -372,8 +374,15 @@ static void loop(const char *iface, const char *ctrlpath, const int disconnect_t
+ reply_len = 0;
+ reply[reply_len] = '\0';
+ if(!str_match(reply, "PONG")) {
++ if (pong_failures <= 3) {
++ logevent(WPA_ACTIOND_LOG_CUSTOM_ERROR, iface, "wpa_supplicant failed to reply (PONG)");
++ pong_failures++;
++ break;
++ }
++
+ /* supplicant has been terminated */
+ if(state == WPA_ACTIOND_STATE_CONNECTED || state == WPA_ACTIOND_STATE_CONNECTION_LOST) {
++ logevent(WPA_ACTIOND_LOG_CUSTOM_ERROR, iface, "wpa_supplicant failed to reply three times in a row - disconnecting");
+ logevent(WPA_ACTIOND_LOG_DISCONNECTED, iface, ssid);
+ action(WPA_ACTIOND_ACTION_DISCONNECT, iface, ssid, idstr, wpa_ctrl_get_fd(ctrl), script);
+ }
+@@ -381,6 +390,7 @@ static void loop(const char *iface, const char *ctrlpath, const int disconnect_t
+ state = WPA_ACTIOND_STATE_TERMINATED;
+ }
+ }
++ pong_failures = 0;
+ break;
+ default:
+ /* event received */
+@@ -446,6 +456,7 @@ static void loop(const char *iface, const char *ctrlpath, const int disconnect_t
+ /* we are not interested in this event */
+ break;
+ }
++ pong_failures = 0;
+ }
+ }
+
+--
+2.15.0
+
diff --git a/testing/wpaperd/APKBUILD b/testing/wpaperd/APKBUILD
new file mode 100644
index 00000000000..5b518babecd
--- /dev/null
+++ b/testing/wpaperd/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=wpaperd
+pkgver=0.3.0
+pkgrel=2
+pkgdesc="Wallpaper daemon for Wayland"
+url="https://github.com/danyspin97/wpaperd"
+license="GPL-3.0-or-later"
+arch="all !s390x !riscv64" # blocked by rust/cargo
+makedepends="cargo libxkbcommon-dev scdoc cargo-auditable"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
+source="https://github.com/danyspin97/wpaperd/archive/$pkgver/wpaperd-$pkgver.tar.gz
+ cargo-lock.patch
+ "
+options="!check" # no test suite
+
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+
+ scdoc <man/wpaperd-output.5.scd >man/wpaperd-output.5
+}
+
+package() {
+ install -Dm755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+
+ install -Dm644 man/*.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 man/*.5 -t "$pkgdir"/usr/share/man/man5/
+
+ install -Dm644 completions/$pkgname.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm644 completions/$pkgname.fish \
+ "$pkgdir"/usr/share/fish/vendor_completions.d/$pkgname.fish
+ install -Dm644 completions/_$pkgname \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+sha512sums="
+8fa4136e503e76f5c9b0cabe8679dedf6997f8fd6d0348f19743bfc7dfda2e3360e2ede3353539ada785816d07ac97fbc2b932c4cab76b06ed9db639be03af6a wpaperd-0.3.0.tar.gz
+8d8d5ce658f9ca48064ba1037669c775807eb4d8d7651551f97c5b386e910820c484c1b0d6a7740e8ccd672431bf9bc8759d72b763ac3b4e9a066507ed628604 cargo-lock.patch
+"
diff --git a/testing/wpaperd/cargo-lock.patch b/testing/wpaperd/cargo-lock.patch
new file mode 100644
index 00000000000..bc4c8e864da
--- /dev/null
+++ b/testing/wpaperd/cargo-lock.patch
@@ -0,0 +1,11 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1988,7 +1988,7 @@ checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+
+ [[package]]
+ name = "wpaperd"
+-version = "1.0.0"
++version = "0.3.0"
+ dependencies = [
+ "clap 4.1.6",
+ "clap_complete",
diff --git a/testing/wput/APKBUILD b/testing/wput/APKBUILD
index 79e02fd82b7..6648a1df476 100644
--- a/testing/wput/APKBUILD
+++ b/testing/wput/APKBUILD
@@ -2,38 +2,36 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=wput
pkgver=0.6.2
-pkgrel=3
+pkgrel=4
pkgdesc="A command line tool to upload files to FTP site"
-url="http://wput.sourceforge.net/"
+url="https://wput.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
makedepends="gnutls-dev"
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tgz
+source="https://downloads.sourceforge.net/wput/wput-$pkgver.tgz
$pkgname-destdir.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+
+# Fix build with gcc >= 10.X
+export CFLAGS="$CFLAGS -fcommon"
prepare() {
- default_prepare || return 1
+ default_prepare
- cd "$builddir"
update_config_guess && update_config_sub
}
build() {
- cd "$builddir"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --disable-g-switch \
- || return 1
- make || return 1
+ --disable-g-switch
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
sha512sums="e1d0fb8570cbda44c97215ee1a021a9867f2e91323b3d7f7df1d7fd68a1b2aba40a7f3068e5e85e8c736b1dba1fba62df375af99e3fb96cd0fd414b139c641bd wput-0.6.2.tgz
diff --git a/testing/wqy-zenhei/44-wqy-zenhei.conf b/testing/wqy-zenhei/44-wqy-zenhei.conf
deleted file mode 100644
index 6894073d3b1..00000000000
--- a/testing/wqy-zenhei/44-wqy-zenhei.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-<fontconfig>
- <alias>
- <family>serif</family>
- <prefer>
- <family>Bitstream Vera Serif</family>
- <family>DejaVu Serif</family>
- <family>WenQuanYi Zen Hei</family>
- </prefer>
- </alias>
- <alias>
- <family>sans-serif</family>
- <prefer>
- <family>DejaVu Sans</family>
- <family>Bitstream Vera Sans</family>
- <family>WenQuanYi Zen Hei</family>
- </prefer>
- </alias>
- <alias>
- <family>monospace</family>
- <default>WenQuanYi Zen Hei Mono</default>
- <prefer>
- <family>DejaVu Sans Mono</family>
- <family>Bitstream Vera Sans Mono</family>
- <family>WenQuanYi Zen Hei Mono</family>
- </prefer>
- </alias>
-</fontconfig>
diff --git a/testing/wqy-zenhei/91-wqy-zenhei.conf b/testing/wqy-zenhei/91-wqy-zenhei.conf
deleted file mode 100644
index d7d962fd742..00000000000
--- a/testing/wqy-zenhei/91-wqy-zenhei.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-<fontconfig>
- <match target="font">
- <test qual="any" name="family">
- <string>WenQuanYi Zen Hei</string>
- </test>
- <test qual="any" name="family">
- <string>文泉驿正黑</string>
- </test>
- <test qual="any" name="family">
- <string>文泉驛正黑</string>
- </test>
- <edit name="globaladvance"><bool>false</bool></edit>
- <edit name="spacing"><int>0</int></edit>
- <edit name="antialias" mode="assign"><bool>true</bool></edit>
- <edit name="hinting" mode="assign"><bool>true</bool></edit>
- <edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
- <edit name="autohint" mode="assign"><bool>false</bool></edit>
- <edit name="rh_prefer_bitmaps" mode="assign"><bool>false</bool></edit>
- <edit name="rgba" mode="assign"><const>none</const></edit>
- <edit name="embeddedbitmap"><bool>false</bool></edit>
- </match>
-</fontconfig>
diff --git a/testing/wqy-zenhei/APKBUILD b/testing/wqy-zenhei/APKBUILD
deleted file mode 100644
index f86b88ffb69..00000000000
--- a/testing/wqy-zenhei/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=wqy-zenhei
-pkgver=0.9.47
-pkgrel=0
-pkgdesc="Hei-Ti style (sans-serif) Chinese outline font"
-options="!check" # No testsuite
-url="http://wenq.org/wqy2/index.cgi?ZenHei"
-arch="noarch"
-license="GPL-2.0"
-depends="fontconfig mkfontscale"
-source="https://downloads.sourceforge.net/wqy/wqy-zenhei-0.9.45.tar.gz
- 44-wqy-zenhei.conf
- 91-wqy-zenhei.conf"
-builddir="$srcdir/$pkgname"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/fonts/wenquanyi/$pkgname \
- "$pkgdir"/etc/fonts/conf.avail \
- "$pkgdir"/etc/fonts/conf.d
-
- install -m644 "$builddir"/$pkgname.ttc \
- "$pkgdir"/usr/share/fonts/wenquanyi/$pkgname
-
- for j in "$srcdir"/*.conf; do
- install -m644 "$j" "$pkgdir"/etc/fonts/conf.avail
- ln -sf /etc/fonts/conf.avail/${j##*/} \
- "$pkgdir"/etc/fonts/conf.d/${j##*/}
- done
-
- sed '/<!-- /d' "$builddir"/43-wqy-zenhei-sharp.conf \
- > "$pkgdir"/etc/fonts/conf.avail/43-wqy-zenhei-sharp.conf
-}
-
-sha512sums="02bc35891696453e4f730c7e2e3147566b4efc3a30f8d5cf81b1b8f244c629c76d0d812b74555143a5475a70b52d586a6fca52aa2df411649fe0ee2e12fda3a6 wqy-zenhei-0.9.45.tar.gz
-4b3a1ab9e978bff484172951322c7d8de41d306dd86c28a3f4ed5ee3adfbd9742dbcf5ccbe6270bef272e2bef35174396b4a519148dbf3623096ebc222887cf6 44-wqy-zenhei.conf
-65005c4345ae9a78a680fb5d1c1e6837df827fd8f1ddd305f27b4d61190cad833ea5a728fbdbb73f4af0316e022ebffe9e29363b8ef9ee8730ad2a436ee8d18e 91-wqy-zenhei.conf"
diff --git a/testing/wroomd/APKBUILD b/testing/wroomd/APKBUILD
new file mode 100644
index 00000000000..1b1df2d1e95
--- /dev/null
+++ b/testing/wroomd/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Affe Null <affenull2345@gmail.com>
+pkgname=wroomd
+pkgver=0.1.0
+pkgrel=0
+pkgdesc="Modem management daemon for Qualcomm platforms"
+url="https://git.abscue.de/obp/wroomd"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="
+ cargo
+ cargo-auditable
+ eudev-dev
+ "
+pkggroups="wroomd"
+subpackages="$pkgname-openrc"
+source="https://git.abscue.de/obp/wroomd/-/archive/$pkgver/wroomd-$pkgver.tar.bz2
+ de.abscue.obp.Wroomd.conf
+ wroomd.initd"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --release --frozen
+}
+
+package() {
+ install -Dm755 target/release/wroomd -t "$pkgdir"/usr/bin
+ install -Dm755 "$srcdir"/wroomd.initd "$pkgdir"/etc/init.d/wroomd
+ install -Dm644 "$srcdir"/de.abscue.obp.Wroomd.conf -t "$pkgdir"/usr/share/dbus-1/system.d
+}
+
+sha512sums="
+9edbcac983a909f4337520632f864c1eeef92f0483659e2c82eb656933614c5b7d6bb79f4cf7ce70f5a34b46787f197f3a106b7c876a6eaba5f84d6bb41b895a wroomd-0.1.0.tar.bz2
+4295f59367c61f6e60216281aea95829f966d5e4239a006fe855777544995baebac69fde659d0e275d07ee76da043c2bdadf990952915ac0dd452a177025f48c de.abscue.obp.Wroomd.conf
+b31398173ee291020cbd09bc5af40e65bf0ce7f86229727ba75ab4d8ffe0c7a4c99cc07d159aa5091beb943ed2bc4fe55fff2e06634866482571fc5c353593f3 wroomd.initd
+"
diff --git a/testing/wroomd/de.abscue.obp.Wroomd.conf b/testing/wroomd/de.abscue.obp.Wroomd.conf
new file mode 100644
index 00000000000..6c1f4fb65e1
--- /dev/null
+++ b/testing/wroomd/de.abscue.obp.Wroomd.conf
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE busconfig PUBLIC
+ "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <!-- Only root can own the service -->
+ <policy user="root">
+ <allow own="de.abscue.obp.Wroomd"/>
+ </policy>
+
+ <policy group="wroomd">
+ <allow send_destination="de.abscue.obp.Wroomd"/>
+ </policy>
+</busconfig>
diff --git a/testing/wroomd/wroomd.initd b/testing/wroomd/wroomd.initd
new file mode 100644
index 00000000000..14251e70847
--- /dev/null
+++ b/testing/wroomd/wroomd.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="wroomd"
+description="Modem management daemon for Qualcomm platforms"
+
+command="/usr/bin/wroomd"
+
+depend() {
+ need dbus
+}
diff --git a/testing/wshowkeys/APKBUILD b/testing/wshowkeys/APKBUILD
new file mode 100644
index 00000000000..46308a5ee73
--- /dev/null
+++ b/testing/wshowkeys/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=wshowkeys
+pkgver=1.0
+pkgrel=0
+pkgdesc="Displays keys being pressed on a Wayland session"
+url="https://git.sr.ht/~sircmpwn/wshowkeys"
+license="GPL-3.0"
+arch="all"
+makedepends="
+ cairo-dev
+ eudev-dev
+ libinput-dev
+ libxkbcommon-dev
+ meson
+ pango-dev
+ wayland-dev
+ wayland-protocols
+ "
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/wshowkeys/archive/$pkgver.tar.gz
+ fix-protocol-error.patch
+ "
+options="!check suid" # has no test suite; needs to be setuid to read input events
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ chmod u+s "$pkgdir"/usr/bin/wshowkeys
+}
+
+sha512sums="
+09f190d9825cb051d61484801ea7d9766c2b3c9fee4171a8926237c905a00fa98327f5d85ff601a9faf845e1cb8d58c7056811ffc7d4904985bd03d750581e6a wshowkeys-1.0.tar.gz
+69635df42ae47235c18822fea77ee38126b22093929333613da0c9d01c071eb7978013796179d3471dfb8651083f0c1f1aea5dc43f9cba9b59a2a69fd25f1913 fix-protocol-error.patch
+"
diff --git a/testing/wshowkeys/fix-protocol-error.patch b/testing/wshowkeys/fix-protocol-error.patch
new file mode 100644
index 00000000000..ab93fb4ebd9
--- /dev/null
+++ b/testing/wshowkeys/fix-protocol-error.patch
@@ -0,0 +1,23 @@
+Patch-Source: https://github.com/ammgws/wshowkeys/commit/35b6f15bd088511c28bcb3f2e36cbc4eb3621588
+
+From 35b6f15bd088511c28bcb3f2e36cbc4eb3621588 Mon Sep 17 00:00:00 2001
+From: Jason Nader <jason.nader@protonmail.com>
+Date: Sun, 1 Aug 2021 18:35:57 +0900
+Subject: [PATCH] Fix error when setting anchors with 0 dimension
+
+---
+ main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/main.c b/main.c
+index f979e24..cda6e37 100644
+--- a/main.c
++++ b/main.c
+@@ -627,6 +627,7 @@ int main(int argc, char *argv[]) {
+ assert(state.layer_surface);
+ zwlr_layer_surface_v1_add_listener(
+ state.layer_surface, &layer_surface_listener, &state);
++ zwlr_layer_surface_v1_set_size(state.layer_surface, 1, 1);
+ zwlr_layer_surface_v1_set_anchor(state.layer_surface, anchor);
+ zwlr_layer_surface_v1_set_margin(state.layer_surface,
+ margin, margin, margin, margin);
diff --git a/testing/wsmancli/APKBUILD b/testing/wsmancli/APKBUILD
index c5356fa4e57..6d34393e665 100644
--- a/testing/wsmancli/APKBUILD
+++ b/testing/wsmancli/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=wsmancli
-pkgver=2.6.0
+pkgver=2.6.2
pkgrel=0
pkgdesc="Openwsman command line client"
url="https://openwsman.github.io/"
@@ -34,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="40f69dfefd5cfc9c1d137c5c58bd0e84e1bb460ecb6770e1c56b023477f7521769f04e041682686d267796477704c7465d437f6fdb4068268a51d1136d5c8a56 wsmancli-2.6.0.tar.gz"
+sha512sums="
+9b1c99b18d2f9f6125a48bb4639ffa970b67fd4ac2dae401a0b9205ab7a0650ebd77737ce386761143aedefd18a59b92407a63831568ca5597e92281df8414b0 wsmancli-2.6.2.tar.gz
+"
diff --git a/testing/wtfutil/APKBUILD b/testing/wtfutil/APKBUILD
new file mode 100644
index 00000000000..59a1e303cef
--- /dev/null
+++ b/testing/wtfutil/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: guddaff <alpine@guddaff.de>
+# Maintainer: guddaff <alpine@guddaff.de>
+pkgname=wtfutil
+pkgver=0.43.0
+pkgrel=5
+pkgdesc="personal information dashboard"
+url="https://wtfutil.com/"
+arch="all"
+license="MPL-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/wtfutil/wtf/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/wtf-$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -o bin/wtfutil
+}
+
+check() {
+ # hangs
+ # shellcheck disable=2046
+ go test $(go list ./... | grep -Ev '(wtf/modules/urlcheck|wtf/view)')
+}
+
+package() {
+ install -Dm755 bin/wtfutil "$pkgdir"/usr/bin/wtfutil
+}
+
+sha512sums="
+0e6c67add5bc90795503b9f337b377ad2b0a13d1ff4357971ed518f49979eac2c67a1df0fc86846c79616f96ccbf40cb2089185d55596b77832ebdea9213e212 wtfutil-0.43.0.tar.gz
+"
diff --git a/testing/wys/APKBUILD b/testing/wys/APKBUILD
deleted file mode 100644
index d23c337be7c..00000000000
--- a/testing/wys/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Clayton Craft <clayton@craftyguy.net>
-# Maintainer: Clayton Craft <clayton@craftyguy.net>
-pkgname=wys
-pkgver=0.1.7
-pkgrel=0
-pkgdesc="A daemon to bring up and take down PulseAudio loopbacks for phone call audio."
-arch="all"
-url="https://source.puri.sm/Librem5/wys"
-license="GPL-3.0-or-later"
-makedepends="meson pulseaudio-dev glib-dev modemmanager-dev"
-source="
- $pkgname-$pkgver.tar.gz::https://source.puri.sm/Librem5/wys/-/archive/v$pkgver/wys-v$pkgver.tar.gz
- wys.desktop"
-builddir=$srcdir/$pkgname-v$pkgver
-
-build() {
- meson \
- -Dprefix=$pkgdir/usr \
- -Dsysconfdir=$pkgdir/etc \
- -Dmandir=share/man \
- -Dlocalstatedir=$pkgdir/var \
- -Dbuildtype=plain \
- build
-
- ninja -C ./build
-}
-
-check() {
- ninja -C ./build test
-}
-
-package() {
- mkdir -p $pkgdir
- ninja -C $builddir/build install
- install -D -m644 $srcdir/wys.desktop $pkgdir/etc/xdg/autostart/wys.desktop
-}
-
-sha512sums="81a9f97cced2ceee0823bf3e45bb8fd6b79d8ae6d8fb1b459f8a5e24ebde0884899924c5af601466317ff397246028aafeec97504179f54c78e83eee7f322437 wys-0.1.7.tar.gz
-0f67c24d9af727e803d5cdb2dc01c7d99a2bfe33414fdc29cf5ec34c5a308b3a5f65970832087310e25e4ba7dc706b5a1d1ae99ab595d7264e972047a08f71e4 wys.desktop"
diff --git a/testing/wys/wys.desktop b/testing/wys/wys.desktop
deleted file mode 100644
index 1284dc41f5c..00000000000
--- a/testing/wys/wys.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Name=Wys
-Name[es]=Wys
-Comment=Daemon for managing PulseAudio for phone call audio
-Comment[es]=Demonio para manejar PulseAudio por audio de llamadas telefónicas
-Exec=/usr/bin/wys
-NoDisplay=true
-Terminal=false
-Type=Application
-StartupNotify=true
-X-GNOME-AutoRestart=true
diff --git a/testing/x11-calc/APKBUILD b/testing/x11-calc/APKBUILD
new file mode 100644
index 00000000000..437e1bc11aa
--- /dev/null
+++ b/testing/x11-calc/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: macmpi <spam@ipik.org>
+# Maintainer: macmpi <spam@ipik.org>
+pkgname=x11-calc
+pkgver=0.14.0147
+pkgrel=0
+pkgdesc="An HP calculator emulator"
+url="https://github.com/mike632t/x11-calc"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="libx11-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mike632t/x11-calc/archive/refs/tags/v$pkgver.tar.gz"
+# does not have any tests
+options="!check"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" prefix=/usr DESKTOP=freedesktop install
+}
+
+sha512sums="
+8baf896c55b4b18bb7087d039d60a98d8cc4063bd7aabab8c462f773508e7841b300904c502eaf381d5771a2b853b2a1bd2d4b6826cadf39d5299212dee33714 x11-calc-0.14.0147.tar.gz
+"
diff --git a/testing/x11docker/APKBUILD b/testing/x11docker/APKBUILD
new file mode 100644
index 00000000000..a107cfd96ad
--- /dev/null
+++ b/testing/x11docker/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=x11docker
+pkgver=7.6.0
+pkgrel=1
+pkgdesc="run GUI applications and desktops in docker. Focus on security"
+url="https://github.com/mviereck/x11docker"
+arch="noarch"
+license="MIT"
+install="$pkgname.post-install"
+subpackages="$pkgname-doc"
+depends="
+ bash
+ cmd:xclip
+ xauth
+ xdotool
+ xdpyinfo
+ xhost
+ xinit
+ zenity
+ "
+options="!check" # no tests
+source="https://github.com/mviereck/x11docker/archive/v$pkgver/x11docker-$pkgver.tar.gz"
+
+package() {
+ install -Dm755 x11docker -t "$pkgdir"/usr/bin
+ install -Dm644 x11docker.man "$pkgdir"/usr/share/man/man1/x11docker.1
+}
+
+sha512sums="
+9cc6f4fb0bb87fed6aa37457278ad79bf3ba603c8c80b3af8a14fb150efffa6687dfad6509cb0f9a38517b550c56a91737892caaed3d62ca776136b5629f3ccc x11docker-7.6.0.tar.gz
+"
diff --git a/testing/x11docker/x11docker.post-install b/testing/x11docker/x11docker.post-install
new file mode 100644
index 00000000000..86401f78c1b
--- /dev/null
+++ b/testing/x11docker/x11docker.post-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+cat >&2 <<-EOF
+* x11docker can utilise any of: podman, nerdctl, docker
+* ensure you have the one you want to use installed.
+* it can also use weston/xwayland/xorg-wm's for the containers, see the
+* official documentation for dependencies you might need and how to configure
+* it.
+EOF
+
+exit 0
diff --git a/testing/xa/APKBUILD b/testing/xa/APKBUILD
index f95596f2b90..40afb6159b9 100644
--- a/testing/xa/APKBUILD
+++ b/testing/xa/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
pkgname=xa
-pkgver=2.3.11
+pkgver=2.3.14
pkgrel=0
pkgdesc="cross-assembler and utility suite for 65xx/65816 processors"
url="https://www.floodgap.com/retrotech/xa"
@@ -23,4 +23,6 @@ package() {
make DESTDIR="$pkgdir/usr" install
}
-sha512sums="2be31b6a67d30e94be616c465591614881028a8bc308202de7561a5719573582b3f29a205a0be76e1f9071621b4882c9aef95cf3494f376e88edc40afa1545dc xa-2.3.11.tar.gz"
+sha512sums="
+71d4631cb3e698b6522ca76c4b34078ded0632533bdaaa8b8d584eb27f0958ed288a6765136ff0ad03cd861a2dccbb76c6d8db0abf277a61ae864ad23212653d xa-2.3.14.tar.gz
+"
diff --git a/testing/xandikos/APKBUILD b/testing/xandikos/APKBUILD
new file mode 100644
index 00000000000..84de42aa7f9
--- /dev/null
+++ b/testing/xandikos/APKBUILD
@@ -0,0 +1,57 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=xandikos
+pkgver=0.2.11
+pkgrel=1
+pkgdesc="a lightweight yet complete CardDAV/CalDAV server that backs onto a Git repository"
+url="https://xandikos.org"
+arch="noarch"
+license="GPL-3.0-or-later"
+depends="
+ py3-aiohttp
+ py3-defusedxml
+ py3-dulwich
+ py3-icalendar
+ py3-jinja2
+ py3-multidict
+ py3-vobject
+ "
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-pyc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/jelmer/xandikos/archive/v$pkgver.tar.gz
+ xandikos.initd
+ xandikos.confd
+ "
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --system-site-packages testenv
+ testenv/bin/python3 -m installer dist/*.whl
+ testenv/bin/python3 -m pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" dist/*.whl
+
+ install -m644 -D man/$pkgname.8 \
+ "$pkgdir"/usr/share/man/man8/$pkgname
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+}
+
+sha512sums="
+e65a7a5f7b063ce46a94ef9a3c62a761cc60a422b9f5199151824dc8eff70c31593ab854cf6b79fa2d9c1111c3b69320d7df2a1c28c5205858cc22cdb68b936a xandikos-0.2.11.tar.gz
+8d49ef3ce004a666d4e9b1e97114d5bf381aa75538518ce7b15202bacf73ef90cd3ad751d6aae73b2b5768b37f58045ed3f34db0d004a8c5f479c1a79cbbcd60 xandikos.initd
+8e1ef71e22809c9c7424dd518949e936d09d1da7f2911862d7943b71976554d74f72f186ea76bf8510b8fd95a75028fe369e5907c20695211425cf50c911388a xandikos.confd
+"
diff --git a/testing/xandikos/xandikos.confd b/testing/xandikos/xandikos.confd
new file mode 100644
index 00000000000..306cf7c7152
--- /dev/null
+++ b/testing/xandikos/xandikos.confd
@@ -0,0 +1,25 @@
+# Xandikos options
+
+#
+# Directory where xandikos should store data
+#
+
+ROOT_DIR="/var/lib/xandikos"
+
+#
+# Default listening address
+#
+
+LISTEN_ADDRESS="127.0.0.1"
+
+#
+# Default listening port
+#
+
+LISTEN_PORT="8080"
+
+#
+# The name of the principal user.
+#
+
+USER_PRINCIPAL=""
diff --git a/testing/xandikos/xandikos.initd b/testing/xandikos/xandikos.initd
new file mode 100644
index 00000000000..c47224cb892
--- /dev/null
+++ b/testing/xandikos/xandikos.initd
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+
+LOGS=/var/log/xandikos.log
+USER=xandikos
+
+name=xandikos
+description="xandikos caldav/carddav server"
+
+supervisor=supervise-daemon
+supervise_daemon_args="-1 $LOGS -2 $LOGS"
+
+command=/usr/bin/xandikos
+command_args="-d $ROOT_DIR -l $LISTEN_ADDRESS -p $LISTEN_PORT --current-user-principal $USER_PRINCIPAL --autocreate"
+command_background="yes"
+
+start_stop_daemon_args="--user $USER:$USER"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ if [ -z "$USER_PRINCIPAL" ]; then
+ eerror "You must specify a user principal"
+ return 1
+ fi
+
+ checkpath -f "$LOGS" -m 644 -o "$USER:$USER"
+ checkpath -d "$ROOT_DIR" -m 750 -o "$USER:$USER"
+}
diff --git a/testing/xandikos/xandikos.pre-install b/testing/xandikos/xandikos.pre-install
new file mode 100644
index 00000000000..b1093b2f7f5
--- /dev/null
+++ b/testing/xandikos/xandikos.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S xandikos 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G xandikos -g xandikos xandikos 2>/dev/null
+
+exit 0
diff --git a/testing/xboard/APKBUILD b/testing/xboard/APKBUILD
new file mode 100644
index 00000000000..1ca60905234
--- /dev/null
+++ b/testing/xboard/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=xboard
+pkgver=4.9.1
+pkgrel=2
+pkgdesc="Graphical chessboard for the X Window System"
+url="https://www.gnu.org/software/xboard"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check" # no test suite
+makedepends="
+ autoconf
+ automake
+ cairo-dev
+ gtk+2.0-dev
+ librsvg-dev
+ libtool
+ texinfo
+ xdg-utils
+ "
+source="https://ftp.gnu.org/gnu/xboard/xboard-$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-lang"
+
+prepare() {
+ default_prepare
+ sed -i s/fairymax/gnuchess/ \
+ gtk/xboard.h \
+ xaw/xboard.h \
+ xboard.conf \
+ xboard.man \
+ xboard.info \
+ xboard.texi
+
+ autoreconf -fvi
+}
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --enable-zippy
+ make CFLAGS="$CFLAGS -fcommon"
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7c6f17450edc3f56d5987f6363da01633850b87b0d6664524a4697216dc66aa58f84314ba57ee68aebfbb01ef96995e34be4e98fb4a5124e3f5090690f91ae08 xboard-4.9.1.tar.gz
+"
diff --git a/testing/xca/APKBUILD b/testing/xca/APKBUILD
deleted file mode 100644
index 794ee86ba57..00000000000
--- a/testing/xca/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=xca
-pkgver=2.3.0
-pkgrel=0
-pkgdesc="X Certificate and Key Management"
-url="https://hohnstaedt.de/xca/"
-arch="all"
-license="BSD-3-Clause"
-options="!check" # no tests
-depends="qt5-qtbase-sqlite"
-makedepends="qt5-qttools-dev openssl-dev libtool"
-subpackages="$pkgname-doc"
-source="https://github.com/chris2511/xca/releases/download/RELEASE.$pkgver/xca-$pkgver.tar.gz"
-builddir="$srcdir/"xca-$pkgver
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="35522aa308e1022a739f3255f13fcf63f481000f9b7411027a009a185e33ddceeb5cf9b55406a4899d2393c7e5ace10354ff24b3b2b0c3045d110f679756b0b8 xca-2.3.0.tar.gz"
diff --git a/testing/xcaddy/APKBUILD b/testing/xcaddy/APKBUILD
new file mode 100644
index 00000000000..165695b3a42
--- /dev/null
+++ b/testing/xcaddy/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Fabricio Silva <hi@fabricio.dev>
+# Maintainer: Fabricio Silva <hi@fabricio.dev>
+pkgname=xcaddy
+pkgver=0.3.5
+pkgrel=4
+pkgdesc="Build Caddy with plugins"
+url="https://github.com/caddyserver/xcaddy"
+license="Apache-2.0"
+arch="all"
+depends="go"
+source="https://github.com/caddyserver/xcaddy/archive/v$pkgver/caddy-$pkgver.tar.gz"
+options="net" # for downloading Go modules
+
+export GOFLAGS="$GOFLAGS -modcacherw"
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -trimpath -o bin/xcaddy ./cmd/xcaddy
+}
+
+check() {
+ go test ./...
+}
+
+package() {
+ install -Dm755 bin/xcaddy -t "$pkgdir"/usr/sbin/
+}
+
+sha512sums="
+7f37bf819618d51dcc4dfd89a90403c0841f277bcf5f9f3cf548ed89d486faf92608522df161ad3a2daf9f046feb91c4b4feb6f7ddeb336c9e0946576052b34e caddy-0.3.5.tar.gz
+"
diff --git a/testing/xcape/APKBUILD b/testing/xcape/APKBUILD
new file mode 100644
index 00000000000..b18b98e7f68
--- /dev/null
+++ b/testing/xcape/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=xcape
+pkgver=1.2
+pkgrel=0
+pkgdesc="Configure modifier keys to act as other keys when pressed and released on their own"
+url="https://github.com/alols/xcape"
+arch="all"
+license="GPL-3.0"
+options="!check" # no test suite
+makedepends="libxtst-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/alols/xcape/archive/v$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make MANDIR=/share/man/man1 DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+5ae8502250a9ec55a4b0c5f7301c1597c652b76904261153b720362e3c5882e8db980c85396a2594f99ae2fb72ab7070c1b06c9432d54b7da84975ff45b25a79 xcape-1.2.tar.gz
+"
diff --git a/testing/xcompmgr/APKBUILD b/testing/xcompmgr/APKBUILD
new file mode 100644
index 00000000000..9e4b61bedee
--- /dev/null
+++ b/testing/xcompmgr/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=xcompmgr
+pkgver=1.1.9
+pkgrel=0
+pkgdesc="Composite Window-effects manager for X.org"
+url="https://xorg.freedesktop.org/"
+arch="all"
+license="MIT"
+makedepends="libxcomposite-dev libxdamage-dev libxrender-dev libxext-dev"
+subpackages="$pkgname-doc"
+source="https://xorg.freedesktop.org/releases/individual/app/xcompmgr-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+699117492af7fd84b36d317dcbf422d5ec86a7f21e29370caa737cd940d8ff866a5c8704ba2e7bd17a64e085d77fd23b628263d619813dead85cd669ff5b860e xcompmgr-1.1.9.tar.xz
+"
diff --git a/testing/xcur2png/APKBUILD b/testing/xcur2png/APKBUILD
new file mode 100644
index 00000000000..e659e4cfa0e
--- /dev/null
+++ b/testing/xcur2png/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Zach DeCook <zachdecook@librem.one>
+# Maintainer: Zach DeCook <zachdecook@librem.one>
+pkgname=xcur2png
+pkgver=0.7.1
+pkgrel=0
+pkgdesc="Convert X cursors to PNG images and xcursorgen config-file"
+url="https://github.com/eworm-de/xcur2png"
+arch="all"
+license="GPL-3.0"
+subpackages="$pkgname-doc"
+source="https://github.com/eworm-de/xcur2png/archive/$pkgver/xcur2png-$pkgver.tar.gz"
+makedepends="autoconf automake libpng-dev libxcursor-dev"
+checkdepends="adwaita-icon-theme"
+
+build() {
+ aclocal
+ autoheader
+ autoconf
+ automake --add-missing
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ ./xcur2png /usr/share/icons/Adwaita/cursors/default
+}
+
+package() {
+ make -j1 DESTDIR="$pkgdir" install
+}
+
+
+sha512sums="
+3964546602c902674732e47e81e2998171fe37cef08a94c6d3375a7ef905d02141cf312f9c005f506bfac12ce82cd9af1a9d553d6cfb9f8cf1a4f59951fdea1c xcur2png-0.7.1.tar.gz
+"
diff --git a/testing/xdg-desktop-portal-hyprland/APKBUILD b/testing/xdg-desktop-portal-hyprland/APKBUILD
new file mode 100644
index 00000000000..c860c62c0f5
--- /dev/null
+++ b/testing/xdg-desktop-portal-hyprland/APKBUILD
@@ -0,0 +1,48 @@
+# Contributor: Rabindra Dhakal <contact@qaidvoid.dev>
+# Maintainer: Rabindra Dhakal <contact@qaidvoid.dev>
+pkgname=xdg-desktop-portal-hyprland
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="xdg-desktop-portal backend for hyprland"
+url="https://github.com/hyprwm/xdg-desktop-portal-hyprland"
+arch="all !armhf !armv7 !x86" # 32bit builds broken
+license="BSD-3-Clause"
+options="!check" # No tests
+depends="
+ hyprlang
+ xdg-desktop-portal
+ "
+makedepends="
+ basu-dev
+ cmake
+ hyprland-protocols
+ pipewire-dev
+ qt6-qtwayland-dev
+ sdbus-cpp-dev
+ wayland-dev
+ "
+subpackages="$pkgname-doc"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/hyprwm/xdg-desktop-portal-hyprland/archive/v$pkgver.tar.gz
+ use-system-installed-sdbus-c++.patch
+ "
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_LIBEXECDIR=/usr/libexec \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ rm -rf "$pkgdir"/usr/lib/systemd
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+8d0f9b97fca4566efe717de6d739d10ec51ce5aa33459940f759fc90543fcca3b094d3e570446c5f82c9146249ce39c00fa215b0b83573a466a9907aec9366f3 xdg-desktop-portal-hyprland-1.3.1.tar.gz
+dc93557c1faa0e903ad133cd96484b9b1bb7d6fceb09b5a8c71e5053deb6db1e34fd31a11f7b8a41d2468abe310414d831ca43cdf15b947a5dec562297e870a2 use-system-installed-sdbus-c++.patch
+"
diff --git a/testing/xdg-desktop-portal-hyprland/use-system-installed-sdbus-c++.patch b/testing/xdg-desktop-portal-hyprland/use-system-installed-sdbus-c++.patch
new file mode 100644
index 00000000000..1ecaa8ffc2a
--- /dev/null
+++ b/testing/xdg-desktop-portal-hyprland/use-system-installed-sdbus-c++.patch
@@ -0,0 +1,32 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 73f429b..e760098 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -38,17 +38,12 @@ add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value
+ message(STATUS "Checking deps...")
+ add_subdirectory(hyprland-share-picker)
+
++find_package(sdbus-c++ REQUIRED)
+ find_package(Threads REQUIRED)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(deps REQUIRED IMPORTED_TARGET wayland-client wayland-protocols libpipewire-0.3 libspa-0.2 libdrm gbm hyprlang>=0.2.0)
+
+ # check whether we can find sdbus-c++ through pkg-config
+-pkg_check_modules(SDBUS IMPORTED_TARGET sdbus-c++)
+-if(NOT SDBUS_FOUND)
+- include_directories("subprojects/sdbus-cpp/include/")
+- add_subdirectory(subprojects/sdbus-cpp)
+- add_library(PkgConfig::SDBUS ALIAS sdbus-c++)
+-endif()
+
+ # same for hyprland-protocols
+ pkg_check_modules(HYPRLAND_PROTOS IMPORTED_TARGET hyprland-protocols)
+@@ -60,7 +55,7 @@ endif()
+
+ file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp")
+ add_executable(xdg-desktop-portal-hyprland ${SRCFILES})
+-target_link_libraries(xdg-desktop-portal-hyprland PRIVATE rt PkgConfig::SDBUS Threads::Threads PkgConfig::deps)
++target_link_libraries(xdg-desktop-portal-hyprland PRIVATE rt sdbus-c++ Threads::Threads PkgConfig::deps)
+
+ # protocols
+ find_program(WaylandScanner NAMES wayland-scanner)
diff --git a/testing/xdg-desktop-portal-wlr/0001-core-fix-error-handling-in-main.patch b/testing/xdg-desktop-portal-wlr/0001-core-fix-error-handling-in-main.patch
deleted file mode 100644
index 804a97dce78..00000000000
--- a/testing/xdg-desktop-portal-wlr/0001-core-fix-error-handling-in-main.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-https://github.com/emersion/xdg-desktop-portal-wlr/commit/a105e0e36356fe3743975054e07318a93ec9bcb4
-From a105e0e36356fe3743975054e07318a93ec9bcb4 Mon Sep 17 00:00:00 2001
-From: Marian Buschsieweke <maribu@users.noreply.github.com>
-Date: Thu, 21 May 2020 16:44:47 +0200
-Subject: core: fix error handling in main
-
-The error handling at the `error:` label tears down the whole state. Thus, the
-state needs to be fully initialized in order for the tear down to succeed.
-Currently, if e.g. `sd_bus_open_user()` fails, a `segfault` is triggered by
-the tear down. This commit adds individual tear down code that only touches
-stuff that until that point was successfully initialized.
----
- src/core/main.c | 9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/src/core/main.c b/src/core/main.c
-index 6421b17..b86e79a 100644
---- a/src/core/main.c
-+++ b/src/core/main.c
-@@ -70,14 +70,15 @@ int main(int argc, char *argv[]) {
- ret = sd_bus_open_user(&bus);
- if (ret < 0) {
- logprint(ERROR, "dbus: failed to connect to user bus: %s", strerror(-ret));
-- goto error;
-+ return EXIT_FAILURE;
- }
- logprint(DEBUG, "dbus: connected");
-
- struct wl_display *wl_display = wl_display_connect(NULL);
- if (!wl_display) {
- logprint(ERROR, "wayland: failed to connect to display");
-- goto error;
-+ sd_bus_unref(bus);
-+ return EXIT_FAILURE;
- }
- logprint(DEBUG, "wlroots: wl_display connected");
-
-@@ -85,7 +86,9 @@ int main(int argc, char *argv[]) {
- struct pw_loop *pw_loop = pw_loop_new(NULL);
- if (!pw_loop) {
- logprint(ERROR, "pipewire: failed to create loop");
-- goto error;
-+ wl_display_disconnect(wl_display);
-+ sd_bus_unref(bus);
-+ return EXIT_FAILURE;
- }
- logprint(DEBUG, "pipewire: pw_loop created");
-
---
-2.26.2
-
diff --git a/testing/xdg-desktop-portal-wlr/APKBUILD b/testing/xdg-desktop-portal-wlr/APKBUILD
deleted file mode 100644
index 3614f36aedb..00000000000
--- a/testing/xdg-desktop-portal-wlr/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-pkgname=xdg-desktop-portal-wlr
-pkgver=0.1.0
-pkgrel=0
-pkgdesc="wlroots implementation of xdg-desktop-portal"
-url="https://github.com/emersion/xdg-desktop-portal-wlr"
-arch="all"
-license="MIT"
-depends="xdg-desktop-portal elogind"
-makedepends="wlroots-dev pipewire-dev meson"
-source="
- https://github.com/emersion/xdg-desktop-portal-wlr/releases/download/v0.1.0/xdg-desktop-portal-wlr-$pkgver.tar.gz
- 0001-core-fix-error-handling-in-main.patch
- "
-subpackages="$pkgname-dbg"
-options="!check" # No check yet
-
-build() {
- abuild-meson build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
- rm -rf "$pkgdir"/usr/lib/systemd
-}
-
-sha512sums="07ae2ba3583e53f3b0e5b97cb60cb85ae835c403906f3b214f6feedc615e3266f5a0f9dc12997802834fdeb2958f6b22c195eebe420a93b3a697460a2a4e3367 xdg-desktop-portal-wlr-0.1.0.tar.gz
-719d1a8e9f61e95bad9af068221bee0f1383bee424071459cd1a676281f663c33cad8b45604c53ede9bdaeb5bbfe26a0b6100d2349e1cff0ac3ec4e9d96102ba 0001-core-fix-error-handling-in-main.patch"
diff --git a/testing/xdg-ninja/APKBUILD b/testing/xdg-ninja/APKBUILD
new file mode 100644
index 00000000000..0e29ee93d03
--- /dev/null
+++ b/testing/xdg-ninja/APKBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=xdg-ninja
+pkgver=0.2.0.2
+pkgrel=0
+pkgdesc="Shell script which checks your home directory for unwanted files and directories"
+url="https://github.com/b3nj5m1n/xdg-ninja"
+arch="noarch"
+license="MIT"
+depends="jq"
+source="https://github.com/b3nj5m1n/xdg-ninja/archive/v$pkgver/xdg-ninja-$pkgver.tar.gz"
+options="!check" # no upstream tests
+
+package() {
+ local bin="$pkgdir/usr/bin"
+ local lib="$pkgdir/usr/lib/$pkgname"
+ install -Dm755 -t "$lib" "$pkgname.sh"
+ install -dm755 "$bin"
+ ln -s "${lib#"$pkgdir"}/$pkgname.sh" "$bin/$pkgname"
+ cp -rpt "$lib" "programs"
+}
+
+sha512sums="
+d96764067af5812869d53b99b0a04d224f8a5d70f2664df7149c11692c32d2b86105436d7aad3271192aeb8eb128a22571227cf2a1b6d99e80765f0a505ff71a xdg-ninja-0.2.0.2.tar.gz
+"
diff --git a/testing/xdg-user-dirs-gtk/APKBUILD b/testing/xdg-user-dirs-gtk/APKBUILD
new file mode 100644
index 00000000000..5d2c45475ed
--- /dev/null
+++ b/testing/xdg-user-dirs-gtk/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xdg-user-dirs-gtk
+pkgver=0.11
+pkgrel=2
+pkgdesc="GTK frontend for xdg-user-dirs"
+url="https://gitlab.gnome.org/GNOME/xdg-user-dirs-gtk"
+arch="all"
+license="GPL-2.0-or-later"
+depends="xdg-user-dirs"
+makedepends="gtk+3.0-dev intltool"
+subpackages="$pkgname-lang"
+source="https://download.gnome.org/sources/xdg-user-dirs-gtk/$pkgver/xdg-user-dirs-gtk-$pkgver.tar.xz
+ more-desktops.patch
+ "
+options="!check" # no tests
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+2a650c6372126f807ac90fb0508e1b11636b38b5960a3037b547e9f1bb1a6b82653f20da7d5aae1144eebec040e3af89a02fbf70c1768724019b384f6d9cf85a xdg-user-dirs-gtk-0.11.tar.xz
+276f8be2a09550238acf81cbbb037e89c49469d4d854fb5a26d394335698379d180a3ced48f71c12cf87efecff1f6ce057579b63456f8a2334652d77e1a8eb8c more-desktops.patch
+"
diff --git a/testing/xdg-user-dirs-gtk/more-desktops.patch b/testing/xdg-user-dirs-gtk/more-desktops.patch
new file mode 100644
index 00000000000..c92aec6a2ac
--- /dev/null
+++ b/testing/xdg-user-dirs-gtk/more-desktops.patch
@@ -0,0 +1,13 @@
+diff --git a/user-dirs-update-gtk.desktop.in b/user-dirs-update-gtk.desktop.in
+index 78d5f7c..6539552 100644
+--- a/user-dirs-update-gtk.desktop.in
++++ b/user-dirs-update-gtk.desktop.in
+@@ -4,7 +4,7 @@ Exec=xdg-user-dirs-gtk-update
+ _Name=User folders update
+ _Comment=Update common folders names to match current locale
+ Terminal=false
+-OnlyShowIn=GNOME;LXDE;Unity;
++OnlyShowIn=GNOME;LXDE;Unity;MATE;XFCE;
+ Type=Application
+ StartupNotify=false
+ X-KDE-autostart-after=panel
diff --git a/testing/xdg-user-dirs/APKBUILD b/testing/xdg-user-dirs/APKBUILD
deleted file mode 100644
index ffb0e09d935..00000000000
--- a/testing/xdg-user-dirs/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Bart Ribbers <bribbers@disroot.org>
-# Maintainer: Bart Ribbers <bribbers@disroot.org>
-pkgname=xdg-user-dirs
-pkgver=0.17
-pkgrel=0
-arch="all"
-url="https://www.freedesktop.org/wiki/Software/xdg-user-dirs"
-pkgdesc="Manage user directories like ~/Desktop and ~/Music"
-license="MIT AND GPL-2.0-only"
-makedepends="autoconf automake libtool gettext-dev"
-source="https://gitlab.freedesktop.org/xdg/xdg-user-dirs/-/archive/$pkgver/xdg-user-dirs-$pkgver.tar.gz"
-subpackages="$pkgname-lang"
-
-prepare() {
- default_prepare
-
- NOCONFIGURE=1 ./autogen.sh
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --disable-documentation # Broken, tries to load a network resource but fails
- make
-}
-
-package() {
- DESTDIR="$pkgdir" make install
-}
-
-sha512sums="d434bbf60514e7dce7a49965ae8a07216cd2917e5a21e8f5c3a1e086abdcc2a80afeace154cfb1b8c2ae73ea9993ee050af2869b8618d298362c60ec7951ec65 xdg-user-dirs-0.17.tar.gz"
diff --git a/testing/xed/APKBUILD b/testing/xed/APKBUILD
new file mode 100644
index 00000000000..aaa5e573ce8
--- /dev/null
+++ b/testing/xed/APKBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xed
+pkgver=3.4.5
+pkgrel=0
+pkgdesc="X-Apps Text Editor"
+url="https://github.com/linuxmint/xed"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ intltool
+ itstool
+ libpeas-dev
+ gobject-introspection-dev
+ gspell-dev
+ gtksourceview4-dev
+ gvfs-dev
+ gzip
+ meson
+ python3
+ xapp-dev
+ "
+checkdepends="cage-run"
+subpackages="$pkgname-lang $pkgname-dev $pkgname-doc $pkgname-python"
+source="$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/xed/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # needs dogtail
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
+}
+
+check() {
+ cage-run meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+python() {
+ depends="$pkgname=$pkgver-r$pkgrel libpeas-python3"
+ pkgdesc="$pkgdesc (python plugins)"
+ amove \
+ usr/lib/xed/plugins/joinlines* \
+ usr/lib/xed/plugins/open-uri-context-menu* \
+ usr/lib/xed/plugins/textsize*
+}
+
+sha512sums="
+d136158ac2bbe52079e050682d74a4a3692a72bdd170d8f2875a329e7da3d21b947be4131e8d49fbca68ef473e9fb5924864e07c610cf6e0cfea1acd9a8f45e4 xed-3.4.5.tar.gz
+"
diff --git a/testing/xendmail/APKBUILD b/testing/xendmail/APKBUILD
new file mode 100644
index 00000000000..224487f3352
--- /dev/null
+++ b/testing/xendmail/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=xendmail
+pkgver=0.4.3
+pkgrel=0
+pkgdesc="Like sendmail, for users"
+url="https://git.sr.ht/~whynothugo/xendmail"
+# rust-ring
+arch="all !s390x !ppc64le !riscv64"
+license="Apache-2.0"
+makedepends="cargo cargo-auditable scdoc"
+subpackages="$pkgname-doc"
+source="xendmail-$pkgver.tar.gz::https://git.sr.ht/~whynothugo/xendmail/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+options="net" # fetch dependencies
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+ make xendmail.1
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm 0755 target/release/$pkgname "$pkgdir/usr/bin/$pkgname"
+ install -dm 0755 "$pkgdir/usr/sbin"
+ install -Dm 0644 xendmail.1 -t "$pkgdir/usr/share/man/man8/"
+ ln -s /usr/bin/$pkgname "$pkgdir/usr/sbin/sendmail"
+}
+
+sha512sums="
+c7637e88b40ad7b1880822ff1f5b4fff495eb70ca5b3a59b5301eae7a18c9ca7236946d6b952f710ff9a41385bb10154299eb7562756c08eb1299bcbae86f00f xendmail-0.4.3.tar.gz
+"
diff --git a/testing/xf86-input-wacom/APKBUILD b/testing/xf86-input-wacom/APKBUILD
deleted file mode 100644
index d80be8fc763..00000000000
--- a/testing/xf86-input-wacom/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=xf86-input-wacom
-pkgver=0.39.0
-pkgrel=1
-pkgdesc="X.org Wacom tablet input driver"
-url="https://github.com/linuxwacom/xf86-input-wacom"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="xorg-server-dev libxext-dev libxi-dev libxrandr-dev libxinerama-dev
- eudev-dev util-macros libpciaccess-dev"
-checkdepends="bash findutils"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-$pkgver/xf86-input-wacom-$pkgver.tar.bz2"
-
-build() {
- ./configure --prefix=/usr
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/lib/systemd
-}
-
-sha512sums="9ad92c86c4ba3587d68e2107057c89dfe8628c0a2ec882f5a424ab4983c18ff6048489d7f6d3a8de87403744f74de1982de25327fc955bb5c21346a242e0aaa3 xf86-input-wacom-0.39.0.tar.bz2"
diff --git a/testing/xf86-video-vboxvideo/APKBUILD b/testing/xf86-video-vboxvideo/APKBUILD
index 5b7eade6f78..6f05d130e05 100644
--- a/testing/xf86-video-vboxvideo/APKBUILD
+++ b/testing/xf86-video-vboxvideo/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xf86-video-vboxvideo
pkgver=1.0.0
-pkgrel=0
+pkgrel=1
pkgdesc="VirtualBox guest video driver"
url="https://cgit.freedesktop.org/xorg/driver/xf86-video-vbox/"
arch="x86 x86_64"
@@ -14,7 +14,8 @@ source="https://www.x.org/releases/individual/driver/$pkgname-$pkgver.tar.gz"
builddir="$srcdir/"$pkgname-$pkgver
build() {
- cd "$builddir"
+ export CFLAGS="${CFLAGS/-fno-plt}"
+ export CXXFLAGS="${CXXFLAGS/-fno-plt}"
export LDFLAGS="$LDFLAGS -Wl,-z,lazy"
./configure \
--build=$CBUILD \
@@ -25,15 +26,14 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-
-sha512sums="391fc70cb7774e6e4a15f59ae7c92b1ad4dd0cf0854d92d42d990562d35686892646cbf965fd33bc0087e75a23b04162fea67829bad47173401ebac928bdfe47 xf86-video-vboxvideo-1.0.0.tar.gz"
+sha512sums="
+391fc70cb7774e6e4a15f59ae7c92b1ad4dd0cf0854d92d42d990562d35686892646cbf965fd33bc0087e75a23b04162fea67829bad47173401ebac928bdfe47 xf86-video-vboxvideo-1.0.0.tar.gz
+"
diff --git a/testing/xfce4-calculator-plugin/APKBUILD b/testing/xfce4-calculator-plugin/APKBUILD
index 97f338aacba..fc625b8e3e4 100644
--- a/testing/xfce4-calculator-plugin/APKBUILD
+++ b/testing/xfce4-calculator-plugin/APKBUILD
@@ -1,19 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xfce4-calculator-plugin
-pkgver=0.7.0
+pkgver=0.7.2
pkgrel=0
pkgdesc="Calculator plugin for the Xfce4 panel"
url="https://goodies.xfce.org/projects/panel-plugins/xfce4-calculator-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
+arch="all"
license="GPL-2.0"
makedepends="xfce4-panel-dev libxfce4ui-dev"
subpackages="$pkgname-lang"
source="https://archive.xfce.org/src/panel-plugins/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
-
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,13 +24,13 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="cf5a1005d03163a2b44440bd2ac3a40ae2bf5d217893cb11e96b83ccdf621195dd38f315e762d1edc7570c9fde5568a1517f4e3abe6f9c74daa6c027e276c2c9 xfce4-calculator-plugin-0.7.0.tar.bz2"
+sha512sums="
+98fa51ff0afbb09e3066f629113f6a584c5afd9228c87ee67afd7a56b065060ece16ee646ec6a2c685907a0d9733cba19cbf25bc034e009a013af2122155cc2c xfce4-calculator-plugin-0.7.2.tar.bz2
+"
diff --git a/testing/xfce4-diskperf-plugin/APKBUILD b/testing/xfce4-diskperf-plugin/APKBUILD
new file mode 100644
index 00000000000..735ea91ded3
--- /dev/null
+++ b/testing/xfce4-diskperf-plugin/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-diskperf-plugin
+pkgver=2.7.0
+pkgrel=0
+pkgdesc="Displays disk I/O performance"
+url="https://docs.xfce.org/panel-plugins/xfce4-diskperf-plugin/start"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ gtk+3.0-dev
+ libxfce4ui-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.xfce.org/panel-plugins/xfce4-diskperf-plugin/-/archive/xfce4-diskperf-plugin-$pkgver/xfce4-diskperf-plugin-xfce4-diskperf-plugin-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+6a1df3f53728c4a4a95cf36c7218653a4fb6ff15fa337e64d7918528be632193ef31ef1d2f5e1da8593868230e4ece29672ceea0720ecae8bf0da3294e1d4ad2 xfce4-diskperf-plugin-2.7.0.tar.gz
+"
diff --git a/testing/xfce4-docklike-plugin/APKBUILD b/testing/xfce4-docklike-plugin/APKBUILD
new file mode 100644
index 00000000000..f1a7a34cc78
--- /dev/null
+++ b/testing/xfce4-docklike-plugin/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Hakan Erduman <hakan@erduman.de>
+pkgname=xfce4-docklike-plugin
+pkgver=0.4.2
+pkgrel=0
+pkgdesc="Modern, minimalist taskbar for Xfce"
+url="https://docs.xfce.org/panel-plugins/xfce4-docklike-plugin/start"
+arch="all"
+license="GPL-3.0-only"
+makedepends="xfce4-panel-dev libxfce4ui-dev libwnck3-dev"
+subpackages="$pkgname-lang"
+source="https://archive.xfce.org/src/panel-plugins/xfce4-docklike-plugin/${pkgver%.*}/xfce4-docklike-plugin-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+8e96abbde0f9f81bb4797302aba3a711307ab46c832aac92351e038543e078bbf42f86785ee06c28c9d38dff0655ee2933247e9086ba0925f5aa05416b3ef708 xfce4-docklike-plugin-0.4.2.tar.bz2
+"
diff --git a/testing/xfce4-fsguard-plugin/APKBUILD b/testing/xfce4-fsguard-plugin/APKBUILD
new file mode 100644
index 00000000000..d98b7a105b4
--- /dev/null
+++ b/testing/xfce4-fsguard-plugin/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-fsguard-plugin
+pkgver=1.1.3
+pkgrel=0
+pkgdesc="Checks the free space of a given mountpoint"
+url="https://docs.xfce.org/panel-plugins/xfce4-fsguard-plugin/start"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ gtk+3.0-dev
+ libxfce4ui-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="xfce4-fsguard-plugin-lang"
+source="xfce4-fsguard-plugin-$pkgver.tar.gz::https://gitlab.xfce.org/panel-plugins/xfce4-fsguard-plugin/-/archive/xfce4-fsguard-plugin-$pkgver/xfce4-fsguard-plugin-xfce4-fsguard-plugin-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e6786869b16fa22a65cea8b559a67c02845c5016ea2372f493d0d61d7cc4b85cdec6649bc93104549a7b24898359f6bbeb35356eae5b2afecc314e985e8c2e7a xfce4-fsguard-plugin-1.1.3.tar.gz
+"
+
diff --git a/testing/xfce4-genmon-plugin/APKBUILD b/testing/xfce4-genmon-plugin/APKBUILD
deleted file mode 100644
index 437efcffeca..00000000000
--- a/testing/xfce4-genmon-plugin/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Maintainer: Robert Hencke <robert.hencke@gmail.com>
-pkgname=xfce4-genmon-plugin
-pkgver=4.0.2
-pkgrel=0
-pkgdesc="A generic, script-driven monitoring plugin for the Xfce panel"
-url="http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
-license="LGPL-2.1-or-later"
-makedepends="xfce4-panel-dev libxfce4ui-dev"
-options="!check" # no tests
-subpackages="$pkgname-lang"
-source="http://archive.xfce.org/src/panel-plugins/xfce4-genmon-plugin/${pkgver%.*}/xfce4-genmon-plugin-$pkgver.tar.bz2"
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="78a9cd95a83d6ffcb512647f1c674589bf80e4ef24a3431be96fd7506c7642e42c796f7316e034083fe794ab79521d856083b12a186276a1dfe4f14dbe97149e xfce4-genmon-plugin-4.0.2.tar.bz2"
diff --git a/testing/xfce4-hamster-plugin/APKBUILD b/testing/xfce4-hamster-plugin/APKBUILD
new file mode 100644
index 00000000000..92f660640c6
--- /dev/null
+++ b/testing/xfce4-hamster-plugin/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Hakan Erduman <hakan@erduman.de>
+pkgname=xfce4-hamster-plugin
+pkgver=1.17
+pkgrel=0
+pkgdesc="Recreation of the gnome-shell hamster extension as a xfce4 panel plugin."
+url="https://github.com/projecthamster/xfce4-hamster-plugin"
+arch="all"
+license="GPL-2.0-or-later"
+options="!check" # No test suite
+makedepends="
+ cmake
+ libxfce4ui-dev
+ libxfce4util-dev
+ samurai
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://github.com/projecthamster/xfce4-hamster-plugin/archive/refs/tags/v$pkgver.tar.gz"
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+2bdde6638502f726613c06d19cfd2b82324454fc64232562ceb3582796d7937b6883dd3c9933e415ee242d79b082309c2ede86366e066104fce2a322164ce101 xfce4-hamster-plugin-1.17.tar.gz
+"
diff --git a/testing/xfce4-mailwatch-plugin/APKBUILD b/testing/xfce4-mailwatch-plugin/APKBUILD
index 1f7c2ef6a2b..b4bb6338d9a 100644
--- a/testing/xfce4-mailwatch-plugin/APKBUILD
+++ b/testing/xfce4-mailwatch-plugin/APKBUILD
@@ -1,28 +1,20 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
+# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
pkgname=xfce4-mailwatch-plugin
-pkgver=1.2.0
+pkgver=1.3.1
pkgrel=1
pkgdesc="a multi-protocol, multi-mailbox mail watcher"
url="https://goodies.xfce.org/projects/panel-plugins/xfce4-mailwatch-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
+arch="all"
license="GPL-2.0"
depends=""
depends_dev=""
makedepends="$depends_dev intltool libx11-dev glib-dev gtk+2.0-dev
xfce4-panel-dev libxfce4ui-dev exo-dev libgcrypt-dev gnutls-dev"
-install=""
subpackages="$pkgname-lang"
-source="https://archive.xfce.org/src/panel-plugins/xfce4-mailwatch-plugin/1.2/xfce4-mailwatch-plugin-$pkgver.tar.bz2"
-builddir="$srcdir/xfce4-mailwatch-plugin-$pkgver"
-
-prepare() {
- default_prepare || return 1
- update_config_sub || return 1
-}
+source="https://archive.xfce.org/src/panel-plugins/xfce4-mailwatch-plugin/${pkgver%.*}/xfce4-mailwatch-plugin-$pkgver.tar.bz2"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -30,14 +22,14 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
- --enable-ssl \
- || return 1
- make || return 1
+ --enable-ssl
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="6f5128b2341ab275427e02b1ef063cb2fdcf4027f5c47cfc0ed26086462eb0e9f7353441ea1b9380b91a892414934203b781445f604d67200786e3dd85183a83 xfce4-mailwatch-plugin-1.2.0.tar.bz2"
+sha512sums="
+cc84c0511fff983283f6af132ff224f62373a1bb608f14b332a75f259f7842491b09f7d9f9d833cb31f81eb392a1b55fe4bf6da8a15b4c62abd2e9640392fb1d xfce4-mailwatch-plugin-1.3.1.tar.bz2
+"
diff --git a/testing/xfce4-mixer/APKBUILD b/testing/xfce4-mixer/APKBUILD
new file mode 100644
index 00000000000..d84625cbbcc
--- /dev/null
+++ b/testing/xfce4-mixer/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-mixer
+pkgver=4.18.1
+pkgrel=2
+pkgdesc="volume control for the xfce desktop"
+url="https://docs.xfce.org/apps/xfce4-mixer/start"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ gstreamer-dev
+ keybinder3-dev
+ libxfce4ui-dev
+ pulseaudio-dev
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://archive.xfce.org/src/apps/xfce4-mixer/${pkgver%.*}/xfce4-mixer-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+9123f1fca2f95687a0d9a1eeac435082956943f67e972331eab50534f8f44a8ed244e917bcaf19ca752ffdbbafb41435292c29cdbb85ad02107fc9cec31a652c xfce4-mixer-4.18.1.tar.bz2
+"
diff --git a/testing/xfce4-mpc-plugin/APKBUILD b/testing/xfce4-mpc-plugin/APKBUILD
new file mode 100644
index 00000000000..9049e3e9b26
--- /dev/null
+++ b/testing/xfce4-mpc-plugin/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-mpc-plugin
+pkgver=0.5.3
+pkgrel=0
+pkgdesc="MPD Client Plugin"
+url="https://docs.xfce.org/panel-plugins/xfce4-mpc-plugin/start"
+arch="all"
+license="ISC"
+makedepends="
+ gtk+3.0-dev
+ libxfce4ui-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.xfce.org/panel-plugins/xfce4-mpc-plugin/-/archive/xfce4-mpc-plugin-$pkgver/xfce4-mpc-plugin-xfce4-mpc-plugin-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+66ec587ed5f67e28e93fa796b492f00393d8ee12011b12c93a73e4ac4c4b4cc2495f5774706e0d01c90caa74e819082bc214dd362cbaa10aa52dca08be3fe3b5 xfce4-mpc-plugin-0.5.3.tar.gz
+"
+
diff --git a/testing/xfce4-netload-plugin/APKBUILD b/testing/xfce4-netload-plugin/APKBUILD
new file mode 100644
index 00000000000..033ad8e62e7
--- /dev/null
+++ b/testing/xfce4-netload-plugin/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-netload-plugin
+pkgver=1.4.1
+pkgrel=0
+pkgdesc="A netload plugin for the Xfce4 desktop environment"
+url="https://docs.xfce.org/panel-plugins/xfce4-netload-plugin/start"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ gtk+3.0-dev
+ libxfce4ui-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.xfce.org/panel-plugins/xfce4-netload-plugin/-/archive/xfce4-netload-plugin-$pkgver/xfce4-netload-plugin-xfce4-netload-plugin-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+2497936ede75260cdd8e654492517dcc653bab4905ce11cf3f769aabc2d7f9058cf414d6202d394abb905ba2aa1ebb189c0611e56790d0df383b5c703417f391 xfce4-netload-plugin-1.4.1.tar.gz
+"
diff --git a/testing/xfce4-panel-profiles/APKBUILD b/testing/xfce4-panel-profiles/APKBUILD
new file mode 100644
index 00000000000..cba0718b564
--- /dev/null
+++ b/testing/xfce4-panel-profiles/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=xfce4-panel-profiles
+pkgver=1.0.14
+pkgrel=1
+pkgdesc="simple application to manage Xfce panel layouts"
+url="https://gitlab.xfce.org/apps/xfce4-panel-profiles"
+arch="all"
+license="GPL-3.0"
+depends="python3 py3-gobject3 py3-psutil"
+makedepends="libxfce4ui-dev"
+options="!check"
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://archive.xfce.org/src/apps/xfce4-panel-profiles/${pkgver%.*}/xfce4-panel-profiles-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+e316e9d4f0d27b16ce83a50adfe1a3fe2102b7f5c3ed9e9ceebf5968e265064b4d4ade1e0dbd84180758a9c1fa72d8df1fb4d06a631d07956ea8add0f66da984 xfce4-panel-profiles-1.0.14.tar.bz2
+"
diff --git a/testing/xfce4-places-plugin/APKBUILD b/testing/xfce4-places-plugin/APKBUILD
new file mode 100644
index 00000000000..78a5e6e93dc
--- /dev/null
+++ b/testing/xfce4-places-plugin/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Hakan Erduman <hakan@erduman.de>
+pkgname=xfce4-places-plugin
+pkgver=1.8.3
+pkgrel=0
+pkgdesc="Quick access to folders, documents, and removable media"
+url="https://docs.xfce.org/panel-plugins/xfce4-places-plugin/start"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ exo-dev
+ libwnck3-dev
+ libxfce4ui-dev
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="https://archive.xfce.org/src/panel-plugins/xfce4-places-plugin/${pkgver%.*}/xfce4-places-plugin-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+31ab8a47606c6406e93a753c55eb902fb25828f2c89c31814c11534dde327e656678ffcd590b41ebfab0a761bfcf0dae72e1ca3bb84eef5d0592f52114556ac9 xfce4-places-plugin-1.8.3.tar.bz2
+"
diff --git a/testing/xfce4-pulseaudio-plugin/APKBUILD b/testing/xfce4-pulseaudio-plugin/APKBUILD
deleted file mode 100644
index d6d87d0f762..00000000000
--- a/testing/xfce4-pulseaudio-plugin/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: VÖRÖSKÅI András <voroskoi@gmail.com>
-# Maintainer:
-pkgname=xfce4-pulseaudio-plugin
-pkgver=0.4.3
-pkgrel=0
-pkgdesc="Xfce panel plugin for pulseaudio mixer control"
-url="https://goodies.xfce.org/projects/panel-plugins/xfce4-pulseaudio-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
-license="GPL-2.0-or-later"
-makedepends="xfce4-panel-dev pulseaudio-dev libxfce4ui-dev dbus-dev exo-dev
- dbus-glib-dev libnotify-dev"
-options="!check" # Check is empty
-subpackages="$pkgname-lang"
-source="https://archive.xfce.org/src/panel-plugins/xfce4-pulseaudio-plugin/${pkgver%.*}/xfce4-pulseaudio-plugin-$pkgver.tar.bz2"
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="d3214b2b7c35a0a87ea60a5d843f5027d1b09f320d4d24c6bf89a8936de92226223cb4dc5368edf4c0a1aedb3b8796510981eeadee8e836e764569d9284f0efa xfce4-pulseaudio-plugin-0.4.3.tar.bz2"
diff --git a/testing/xfce4-sensors-plugin/APKBUILD b/testing/xfce4-sensors-plugin/APKBUILD
deleted file mode 100644
index de7af137776..00000000000
--- a/testing/xfce4-sensors-plugin/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=xfce4-sensors-plugin
-pkgver=1.3.92
-pkgrel=1
-pkgdesc="Reads your hardware sensor values and displays them in your panel"
-url="https://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
-license="GPL-2.0-or-later"
-depends_dev="xfce4-panel-dev lm-sensors-dev"
-makedepends="$depends_dev bash libxfce4ui-dev"
-subpackages="$pkgname-dev $pkgname-lang $pkgname-doc"
-source="https://archive.xfce.org/src/panel-plugins/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2"
-
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="a5b7d90683c993205323084431606cc6d13de88989e3636fba5c06bfa7ef52fbe6285e3bd7f8eb70683541b5c42727c8fbe7bf80e8832bcfb378de0e6d7d7b37 xfce4-sensors-plugin-1.3.92.tar.bz2"
diff --git a/testing/xfce4-smartbookmark-plugin/APKBUILD b/testing/xfce4-smartbookmark-plugin/APKBUILD
new file mode 100644
index 00000000000..a827ce685ea
--- /dev/null
+++ b/testing/xfce4-smartbookmark-plugin/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-smartbookmark-plugin
+pkgver=0.5.2
+pkgrel=0
+pkgdesc="Query search engines from the panel"
+url="https://docs.xfce.org/panel-plugins/xfce4-smartbookmark-plugin/start"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ gtk+3.0-dev
+ libxfce4ui-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.xfce.org/panel-plugins/xfce4-smartbookmark-plugin/-/archive/0.5.2/xfce4-smartbookmark-plugin-0.5.2.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+48203972cfc789b27d8363aa63f74f5b85f4c2bfe188458d208e968fdbdacb1a00c0ced28700b30807930b90fdc3980f75a74bccf50ac0f72bea08a172bafd38 xfce4-smartbookmark-plugin-0.5.2.tar.gz
+"
diff --git a/testing/xfce4-statusnotifier-plugin/APKBUILD b/testing/xfce4-statusnotifier-plugin/APKBUILD
deleted file mode 100644
index 5337816eb23..00000000000
--- a/testing/xfce4-statusnotifier-plugin/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname="xfce4-statusnotifier-plugin"
-pkgver="0.2.2"
-pkgrel=0
-pkgdesc="Panel area status notifier plugin for Xfce4"
-url="https://docs.xfce.org/panel-plugins/xfce4-statusnotifier-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
-license="GPL-2.0-only"
-makedepends="glib-dev libxfce4ui-dev xfce4-panel-dev libdbusmenu-gtk3-dev"
-subpackages="$pkgname-lang"
-source="https://archive.xfce.org/src/panel-plugins/xfce4-statusnotifier-plugin/${pkgver%.*}/xfce4-statusnotifier-plugin-$pkgver.tar.bz2"
-builddir="$srcdir/xfce4-statusnotifier-plugin-$pkgver"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="76f719ffed4ec9e178a844173cb0728888beba9a1ad69c9da025cb2d1fb3ad18448b4b4a60a94bb329ec7b80760307000550d451859c33f4b5d7bb8590cf227d xfce4-statusnotifier-plugin-0.2.2.tar.bz2"
diff --git a/testing/xfce4-stopwatch-plugin/APKBUILD b/testing/xfce4-stopwatch-plugin/APKBUILD
deleted file mode 100644
index d775862cc17..00000000000
--- a/testing/xfce4-stopwatch-plugin/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname="xfce4-stopwatch-plugin"
-pkgver="0.3.1"
-pkgrel=1
-pkgdesc="Stopwatch plugin for the Xfce panel"
-url="https://goodies.xfce.org/projects/panel-plugins/xfce4-stopwatch-plugin"
-arch="all !mips !mips64" # blocked by libxfce4ui-dev
-license="BSD"
-makedepends="xfce4-panel-dev libxfce4ui-dev gtk+3.0-dev"
-options="!check" # no testsuite
-subpackages="$pkgname-lang"
-source="http://archive.xfce.org/src/panel-plugins/xfce4-stopwatch-plugin/${pkgver%.*}/xfce4-stopwatch-plugin-$pkgver.tar.bz2
- plugindir.patch"
-builddir="$srcdir/xfce4-stopwatch-plugin-$pkgver"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="f90b6728a4b0589230ccdbdc2beaebd4cde69895c68911d0417fe34a924f05612c65f0337865d5c83b28dd172c7ab56a462d60a425d5377bdbc82d69967d6860 xfce4-stopwatch-plugin-0.3.1.tar.bz2
-4f81ca4d032e7bc08366b69d771ad27047d3a5a390e9883cc883833adb6a4575d76f3530f114f7878ac517a5062460f4de74bd685f178815e63bb9d03e8c8d5a plugindir.patch"
diff --git a/testing/xfce4-stopwatch-plugin/plugindir.patch b/testing/xfce4-stopwatch-plugin/plugindir.patch
deleted file mode 100644
index 02eec18a31b..00000000000
--- a/testing/xfce4-stopwatch-plugin/plugindir.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-temp workaround
-diff --git a/panel-plugin/Makefile.in b/panel-plugin/Makefile.in
-index 25a3cdd..c1dda42 100644
---- a/panel-plugin/Makefile.in
-+++ b/panel-plugin/Makefile.in
-@@ -394,7 +394,7 @@ stopwatch_VALABUILTSOURCES = $(stopwatch_VALASOURCES:.vala=.c)
- #
- # Plugin
- #
--plugindir = $(libexecdir)/xfce4/panel/plugins
-+plugindir = $(libdir)/xfce4/panel/plugins
- plugin_LTLIBRARIES = libstopwatch.la
- libstopwatch_la_SOURCES = \
- $(stopwatch_VALABUILTSOURCES)
diff --git a/testing/xfce4-systemload-plugin/10-wrong-var-type-on-32bit.patch b/testing/xfce4-systemload-plugin/10-wrong-var-type-on-32bit.patch
new file mode 100644
index 00000000000..54196904942
--- /dev/null
+++ b/testing/xfce4-systemload-plugin/10-wrong-var-type-on-32bit.patch
@@ -0,0 +1,21 @@
+From: Akbarkhon Variskhanov <akbarkhon.variskhanov AT gmail.com>
+Date: Tue, 20 Dec 2022 13:50:40 +0500
+Subject: Fix build failure due to wrong var type
+
+---
+ panel-plugin/network.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/panel-plugin/network.cc b/panel-plugin/network.cc
+index 6a85dab..3de831d 100644
+--- a/panel-plugin/network.cc
++++ b/panel-plugin/network.cc
+@@ -114,7 +114,7 @@ read_netload_proc (gulong *bytes)
+ gint
+ read_netload (gulong *net, gulong *NTotal)
+ {
+- static guint64 bytes[2];
++ static gulong bytes[2];
+ static gint64 time[2];
+
+ *net = 0;
diff --git a/testing/xfce4-systemload-plugin/APKBUILD b/testing/xfce4-systemload-plugin/APKBUILD
new file mode 100644
index 00000000000..b8b59b51c8f
--- /dev/null
+++ b/testing/xfce4-systemload-plugin/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Daniel Fancsali <fancsali@gmail.com>
+pkgname=xfce4-systemload-plugin
+pkgver=1.3.2
+pkgrel=0
+pkgdesc="System load plugin for the Xfce Panel"
+url="https://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin"
+arch="all"
+license="BSD-2-Clause"
+makedepends="xfce4-panel-dev libxfce4ui-dev"
+subpackages="$pkgname-lang"
+source="
+ https://archive.xfce.org/src/panel-plugins/xfce4-systemload-plugin/${pkgver%.*}/xfce4-systemload-plugin-$pkgver.tar.bz2
+ 10-wrong-var-type-on-32bit.patch
+"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+f432988f439e5fd7ada16b3e6eaa42b3351531ba3e2b63e2570387bf4d7e605ff9d5a97fde3f5f5eb323ff08aaf3c050f161a5768392b80aa99fabaabda82431 xfce4-systemload-plugin-1.3.2.tar.bz2
+913a112a49c544d3b2a56e2b24621285e10178d188ee041bd12f62c7395ad3b8131fd951a9a33dc216a3d0322510d7c60daf7cd1c9d3169857fc920baac390c7 10-wrong-var-type-on-32bit.patch
+"
diff --git a/testing/xfce4-timer-plugin/APKBUILD b/testing/xfce4-timer-plugin/APKBUILD
new file mode 100644
index 00000000000..0d1154beebb
--- /dev/null
+++ b/testing/xfce4-timer-plugin/APKBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=xfce4-timer-plugin
+pkgver=1.7.2
+pkgrel=0
+pkgdesc="Timer plugin for Xfce"
+url="https://docs.xfce.org/panel-plugins/xfce4-timer-plugin"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="xfce4-panel-dev libxfce4ui-dev gtk+3.0-dev"
+options="!check" # no testsuite
+subpackages="$pkgname-lang"
+source="https://archive.xfce.org/src/panel-plugins/xfce4-timer-plugin/${pkgver%.*}/xfce4-timer-plugin-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+11a3b146c56f1526530b7f810c76ba95ef4dc7c113fa0ad2839494a5bc66c09f4a3ff966bc5d76055482a284c6c082b08a4b6af4684e5ccdec67946b0cdd820d xfce4-timer-plugin-1.7.2.tar.bz2
+"
diff --git a/testing/xfce4-verve-plugin/APKBUILD b/testing/xfce4-verve-plugin/APKBUILD
new file mode 100644
index 00000000000..0521a52146f
--- /dev/null
+++ b/testing/xfce4-verve-plugin/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xfce4-verve-plugin
+pkgver=2.0.3
+pkgrel=0
+pkgdesc="Command line interface with auto-completion and command history"
+url="https://docs.xfce.org/panel-plugins/xfce4-verve-plugin/start"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ gtk+3.0-dev
+ libxfce4ui-dev
+ pcre2-dev
+ xfce4-dev-tools
+ xfce4-panel-dev
+ "
+subpackages="$pkgname-lang"
+source="$pkgname-$pkgver.tar.gz::https://gitlab.xfce.org/panel-plugins/xfce4-verve-plugin/-/archive/xfce4-verve-plugin-$pkgver/xfce4-verve-plugin-xfce4-verve-plugin-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+baafbc0a6973e6392eea957ae384a7595df4277d9948b9e8a406eb3277b54460d937c11595787279605427f4244196480bfde5c80716dcca351db01eaf67b507 xfce4-verve-plugin-2.0.3.tar.gz
+"
diff --git a/testing/xfd/APKBUILD b/testing/xfd/APKBUILD
index f648013bff4..9c68031c957 100644
--- a/testing/xfd/APKBUILD
+++ b/testing/xfd/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Taner Tas <taner76@gmail.com>
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=xfd
-pkgver=1.1.3
+pkgver=1.1.4
pkgrel=0
pkgdesc="Xorg font display application."
url="https://xorg.freedesktop.org/"
@@ -19,7 +19,7 @@ makedepends="
"
subpackages="$pkgname-doc"
source="
- https://xorg.freedesktop.org/archive/individual/app/$pkgname-$pkgver.tar.gz
+ https://xorg.freedesktop.org/archive/individual/app/$pkgname-$pkgver.tar.xz
"
options="!check" # No test suite
@@ -33,4 +33,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="6154c3014b407b6eb01615e214c7bda8ab7b2d11ca4e5e457fdd79d757c37cd6b358c46b45e782c5462324bfb539830520e228e9600546fb1b0878e0974abc78 xfd-1.1.3.tar.gz"
+sha512sums="
+fa1f8a7b5d89be20fb2b1e3e0e8f4d7f9463e91fd385d21e1403a398c2e263112043b568417c420c5ee33bec60e06658498dd55df6d7ac19da3af0844f932209 xfd-1.1.4.tar.xz
+"
diff --git a/testing/xfdashboard/APKBUILD b/testing/xfdashboard/APKBUILD
deleted file mode 100644
index 226a02b9089..00000000000
--- a/testing/xfdashboard/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=xfdashboard
-pkgver=0.7.7
-pkgrel=0
-pkgdesc="Maybe a Gnome shell like dashboard for Xfce"
-url="https://goodies.xfce.org/projects/applications/xfdashboard/start"
-arch="all"
-license="GPL-2.0-or-later"
-makedepends="clutter-dev xfconf-dev garcon-dev gtk+3.0-dev libwnck3-dev"
-subpackages="$pkgname-dev $pkgname-lang"
-source="https://archive.xfce.org/src/apps/xfdashboard/${pkgver%.*}/xfdashboard-$pkgver.tar.bz2"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="561badb0b752dabb095881134050046f98eb4374c8e3c647a4ba7226c1efce650790ef3630b53a30cd48dab190afba31de2faef8991c13af64f7eb980b099989 xfdashboard-0.7.7.tar.bz2"
diff --git a/testing/xfe/10-fix-build.patch b/testing/xfe/10-fix-build.patch
new file mode 100644
index 00000000000..4850e282fbf
--- /dev/null
+++ b/testing/xfe/10-fix-build.patch
@@ -0,0 +1,7 @@
+--- xfe-1.46.1.orig/po/POTFILES.skip
++++ xfe-1.46.1/po/POTFILES.skip
+@@ -5,3 +5,4 @@
+ xfw.desktop.in.in
+ intl/plural.c
+ org.root.xfe.policy.in
++org.xfe.root.policy.in
diff --git a/testing/xfe/APKBUILD b/testing/xfe/APKBUILD
new file mode 100644
index 00000000000..e5dec96f5db
--- /dev/null
+++ b/testing/xfe/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: Peter Shkenev <santurysim@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=xfe
+pkgver=1.46.1
+pkgrel=0
+pkgdesc="MS-Explorer or Commander like file manager for X"
+url="http://roland65.free.fr/xfe/index.php?page=home"
+arch="all"
+license="GPL-2.0-only"
+makedepends="
+ fox-dev
+ libx11-dev
+ freetype-dev
+ libxft-dev
+ xcb-util-dev
+ gettext-dev
+ intltool
+ "
+subpackages="$pkgname-doc $pkgname-lang $pkgname-xfi $pkgname-xfp $pkgname-xfw"
+source="
+ https://downloads.sourceforge.net/xfe/xfe-$pkgver.tar.xz
+ 10-fix-build.patch
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+xfi() {
+ pkgdesc="$pkgdesc (image viewer)"
+ amove usr/bin/xfi
+}
+
+xfp() {
+ pkgdesc="$pkgdesc (DEB/RPM package viewer)"
+ amove usr/bin/xfp
+}
+
+xfw() {
+ pkgdesc="$pkgdesc (text editor)"
+ amove usr/bin/xfw
+}
+
+sha512sums="
+bdd0eb017797e8e5d0ea61e86cbcff686eaee5dd5a14fbe770630ccd0c31f2ea6e544e66cc8bc178760670e821caae388d12ba285c8556f618a540cffeb61593 xfe-1.46.1.tar.xz
+68e0357c2c13a1856d2de11f0b118ae0299e6c47654d9f5b03bc9cca6e675195694ed7ff408eb41546da90b26bc62d7f820399712714f7a79773d5c6adaef67d 10-fix-build.patch
+"
diff --git a/testing/xgalaga/APKBUILD b/testing/xgalaga/APKBUILD
new file mode 100644
index 00000000000..635af112d25
--- /dev/null
+++ b/testing/xgalaga/APKBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=xgalaga
+pkgver=2.1.1.0
+pkgrel=1
+pkgdesc="Clone of the classic game Galaga for the X Window System"
+url="http://rumsey.org/xgal.html"
+arch="all"
+license="GPL-2.0-only"
+makedepends="linux-headers libx11-dev libxmu-dev libxpm-dev man-db"
+subpackages="$pkgname-doc"
+options="!check" # No testsuite
+source="https://sourceforge.net/projects/aat-linux-repository/files/sources/alpine/xgalaga/xgalaga-$pkgver.tar.gz
+ xgalaga.desktop
+ xgalaga-hyperspace.desktop
+ xgalaga-icon.xpm
+ "
+
+prepare() {
+ default_prepare
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr/share/games/xgalaga \
+ --mandir=/usr/share/man \
+ --exec_prefix=/usr/bin
+ make
+}
+
+package() {
+ make install \
+ DESTDIR="$pkgdir" \
+ mandir=/usr/share/man \
+ prefix=/usr/share/games/xgalaga \
+ exec_prefix=/usr/bin
+ install -Dm644 "$srcdir"/xgalaga.desktop \
+ "$pkgdir"/usr/share/applications/xgalaga.desktop
+ install -Dm644 "$srcdir"/xgalaga-hyperspace.desktop \
+ "$pkgdir"/usr/share/applications/xgalaga-hyperspace.desktop
+ install -Dm664 "$srcdir"/xgalaga-icon.xpm \
+ "$pkgdir"/usr/share/pixmaps/xgalaga-icon.xpm
+}
+
+sha512sums="9b9defc3e306c2fab9549dec6b56e72d3b41e0c0560b92cb08425bd64ea4a6e1be84dab3162a8c8afc06d619ae6c2c0df0a5a40aa42f7aea6ecce60b3d49122f xgalaga-2.1.1.0.tar.gz
+03abc0b497fd85f71b5b65b841c3d4443007be98bb8195ac1a27e75e0e3ad767247739629fb8e979cef1d37f554e4cf522f8cc3892f2f021e9cbc53833f4d563 xgalaga.desktop
+04fde2562c10f40809ca30364ae3013a769bc6d635028707c3b9fd6076e47a7d3ab9d2f5acf4477543d403f79fd821f4d8f12749e784335cec737784bd1c6268 xgalaga-hyperspace.desktop
+dea30501caaff5001cb012cdad8f58f1854ec5c45f2a68266f5a25c63120defb91ea77a98a7fa21a145c32af3a693a0c604fc3cb838d1f06da43231acbc67b4a xgalaga-icon.xpm"
diff --git a/testing/xgalaga/xgalaga-hyperspace.desktop b/testing/xgalaga/xgalaga-hyperspace.desktop
new file mode 100644
index 00000000000..6a3f769617a
--- /dev/null
+++ b/testing/xgalaga/xgalaga-hyperspace.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Name=Galaga:Hyperspace
+Comment=Play enhanced Galaga Game
+Comment[de]=Spiele das verbesserte Galaga-Spiel
+Exec=xgalaga-hyperspace
+Icon=xgalaga-icon
+Terminal=false
+Type=Application
+Categories=Game;ArcadeGame;
+Keywords=shmup;shootemup;shooter;
diff --git a/testing/xgalaga/xgalaga-icon.xpm b/testing/xgalaga/xgalaga-icon.xpm
new file mode 100644
index 00000000000..229776623cb
--- /dev/null
+++ b/testing/xgalaga/xgalaga-icon.xpm
@@ -0,0 +1,55 @@
+/* XPM */
+static char *xgalaga-icon[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 17 1",
+" c None",
+". c #191919",
+"X c #00007F",
+"o c #7F0000",
+"O c #7F7F00",
+"+ c #4C4C4C",
+"@ c gray50",
+"# c blue",
+"$ c green",
+"% c red",
+"& c yellow",
+"* c gray60",
+"= c #B2B2B2",
+"- c gray80",
+"; c gray90",
+": c gray100",
+"> c None",
+/* pixels */
+" O-O ",
+" %o& ",
+" : &O O ",
+" ",
+" $ ",
+" ",
+" ",
+" .oO O ",
+" &%OO. ",
+" O;o ",
+" OOo% ",
+" .O O& . ",
+" .o%o. ",
+" oOO%o ",
+" .%%XOO. ",
+" oOo%o%o ",
+" o;o. ",
+" @ @;@ @ ",
+" +;+ .@-@ +;+ . ",
+" @;@ .@;* @;@ OO ",
+" @;@@ @;@.@@-@ Oo%& ",
+" @;@--=;===@;@ .O-O ",
+" % @;=@@@-*@@=-@ %O%O ",
+" @;@@+@-@+@@;@ &Oo ",
+" @;@. *-* @-* ",
+" +*+ +;+ +*+ ",
+" X#X @ X#X ",
+" X#X X#X ",
+" X#X X#X ",
+" XXX XXX ",
+" ",
+" "
+};
diff --git a/testing/xgalaga/xgalaga.desktop b/testing/xgalaga/xgalaga.desktop
new file mode 100644
index 00000000000..430cf501281
--- /dev/null
+++ b/testing/xgalaga/xgalaga.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=XGalaga
+Comment=
+Keywords=Game;
+Icon=xgalaga-icon
+TryExec=xgalaga
+Exec=xgalaga
+Terminal=false
+Categories=Game;
+StartupNotify=true
diff --git a/testing/xiccd/APKBUILD b/testing/xiccd/APKBUILD
new file mode 100644
index 00000000000..8214345de8c
--- /dev/null
+++ b/testing/xiccd/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Saijin-Naib <Saijin-Naib_package-maintenance@outlook.com>
+pkgname=xiccd
+pkgver=0.3.0_git20211219
+_pkgrev=b51882079dabd4025eefbf89f58bd18e3e63b769
+pkgrel=1
+pkgdesc="X Color Profile Daemon"
+url="https://github.com/agalakhov/xiccd"
+arch="all !s390x !riscv64" # colord
+options="!check" # no tests
+license="GPL-3.0-or-later"
+depends="
+ colord
+ polkit
+ "
+makedepends="
+ autoconf
+ automake
+ colord-dev
+ glib-dev
+ libx11-dev
+ libxrandr-dev
+ "
+subpackages="$pkgname-doc"
+source="$pkgname-$_pkgrev.tar.gz::https://github.com/agalakhov/xiccd/archive/$_pkgrev.tar.gz"
+builddir="$srcdir/$pkgname-$_pkgrev"
+
+prepare() {
+ default_prepare
+ aclocal
+ autoconf
+ automake --add-missing --foreign --force --copy
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ # makefiles do not respect sysconfdir...
+ make sysconfigdir=/etc DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7f0592cd7be245e465b80d39dc4f21511e73e2b83881c318bd425e1bc4b576df2b1c7ba588c0459d9bd44aa67f2e454f507d130e4ef90243b1a54870fd19f51d xiccd-b51882079dabd4025eefbf89f58bd18e3e63b769.tar.gz
+"
diff --git a/testing/xisxwayland/APKBUILD b/testing/xisxwayland/APKBUILD
new file mode 100644
index 00000000000..1a15788c80f
--- /dev/null
+++ b/testing/xisxwayland/APKBUILD
@@ -0,0 +1,32 @@
+# Maintainer:
+pkgname=xisxwayland
+pkgver=2
+pkgrel=1
+pkgdesc="Detect if X is XWayland"
+url="https://gitlab.freedesktop.org/xorg/app/xisxwayland"
+arch="all"
+license="MIT"
+makedepends="
+ libx11-dev
+ libxrandr-dev
+ meson
+ "
+subpackages="$pkgname-doc"
+source="https://xorg.freedesktop.org/archive/individual/app/xisxwayland-$pkgver.tar.xz"
+
+build() {
+ abuild-meson . output
+ meson compile -C output
+}
+
+check() {
+ meson test --print-errorlogs --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+b89e19c85a5cd7e62a52e22772f80f03bfea069e31412ca11ac38174c4a2994be559e9d5fb49e6d1921b3f1b06ee71b50ede48990a1e7804a96207b08fc7827f xisxwayland-2.tar.xz
+"
diff --git a/testing/xkb-switch/APKBUILD b/testing/xkb-switch/APKBUILD
new file mode 100644
index 00000000000..19e104483e3
--- /dev/null
+++ b/testing/xkb-switch/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=xkb-switch
+pkgver=1.8.5
+pkgrel=0
+pkgdesc="query and change the XKB layout state"
+url="https://github.com/grwlf/xkb-switch"
+arch="all"
+license="GPL-3.0-or-later"
+options="!check"
+makedepends="cmake libx11-dev libxkbfile-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/grwlf/xkb-switch/archive/$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ # Let the abuild handle man page compression
+ sed -i 's/gzip//' CMakeLists.txt
+}
+
+build() {
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+bc71b668e56fae3c1ce1ce306dea062ade4a58a53c52b27d1353c4444e6c56fc8fbb57ac7920fb5cf0ac6baf9263de86194f277721e37913b8198b9726d084cd xkb-switch-1.8.5.tar.gz
+"
diff --git a/testing/xlhtml/APKBUILD b/testing/xlhtml/APKBUILD
new file mode 100644
index 00000000000..5c6db8b7f7b
--- /dev/null
+++ b/testing/xlhtml/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Noel Kuntze <noel.kuntze@thermi.consulting>
+# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
+
+pkgname=xlhtml
+pkgver=0.5.1
+pkgrel=0
+pkgdesc="An Excel spreadsheet (.xls) and PowerPoint (.ppt) to HTML converter"
+arch="all"
+url="https://chicago.sourceforge.net/xlhtml/"
+license='GPL-2.0-or-later '
+source="https://bitbucket.org/jsuto/piler/downloads/xlhtml-$pkgver-sj-mod.tar.gz"
+options="!check" # no test suite
+subpackages="$pkgname-doc"
+
+builddir="$srcdir/$pkgname-$pkgver-sj-mod"
+
+prepare() {
+ default_prepare
+ update_config_sub
+ update_config_guess
+}
+
+build() {
+ ./configure.real --prefix=/usr --mandir="$pkgdir/usr/share/man"
+ make
+}
+
+package() {
+ make prefix="$pkgdir/usr" install
+}
+
+sha512sums="
+1efb387e218a3d7fd3935a65398fba64561b45b1b7916ba1bf4e13edf5155748e811e4e0c35a6d3d83b30f4585a66186fae25199cdaf0c369d085f31ec52fe9d xlhtml-0.5.1-sj-mod.tar.gz
+"
diff --git a/testing/xload/APKBUILD b/testing/xload/APKBUILD
index 3de87faa888..773e24789cf 100644
--- a/testing/xload/APKBUILD
+++ b/testing/xload/APKBUILD
@@ -1,21 +1,19 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=xload
-pkgver="1.1.3"
+pkgver=1.1.4
pkgrel=0
pkgdesc="System load average display for X"
url="https://xorg.freedesktop.org"
arch="all"
license="MIT"
-depends="libintl"
makedepends="libx11-dev libxaw-dev libxmu-dev libxt-dev gettext-dev"
subpackages="$pkgname-doc"
-source="https://www.x.org/archive/individual/app/${pkgname}-${pkgver}.tar.bz2"
+source="https://www.x.org/archive/individual/app/xload-$pkgver.tar.xz"
build() {
export CFLAGS="$CFLAGS -DRLOADSTUB"
export LIBS="$LIBS -lintl"
- cd "$builddir"
- ./configure \
+ ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
@@ -26,13 +24,14 @@ build() {
make
}
-check(){
- make -C "$builddir" check
+check() {
+ make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="8dbc4f0cee7b30d7381be819152b27653d9b0049266e59bde2e2c972a88c4f2bdea766fc407bbdfef15d0aab30fedc756189a1048170a812853133a5094fe7a5 xload-1.1.3.tar.bz2"
+sha512sums="
+114babe4e5a60f4713f9e4627ee0a1bbb2f1f238cb46f24c38aecff67f25e6b0f58cbd554c71095ddc2b01398adbfa379550a34c23c413db52157648028554f2 xload-1.1.4.tar.xz
+"
diff --git a/testing/xmag/APKBUILD b/testing/xmag/APKBUILD
new file mode 100644
index 00000000000..df31e2274db
--- /dev/null
+++ b/testing/xmag/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=xmag
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="Utility to display a magnified snapshot of a portion of an X11 screen"
+url="https://gitlab.freedesktop.org/xorg/app/xmag"
+arch="all"
+license="custom"
+options="!check" # no test suite
+makedepends="
+ libx11-dev
+ libxaw-dev
+ libxmu-dev
+ libxt-dev
+ util-macros
+ "
+source="https://xorg.freedesktop.org/archive/individual/app/xmag-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING -t "$pkgdir"/usr/share/licenses/"$pkgname"
+}
+
+sha512sums="
+aa0a2e00e618e80f0d7c8a9e49bdb92d8f27caab242ccb5a848c4b0f30cb00b5ea905157452ca99b7941b090d19f96e3e8e228da2285dbb7fa51159735d30f45 xmag-1.0.7.tar.gz
+"
diff --git a/testing/xml2rfc/APKBUILD b/testing/xml2rfc/APKBUILD
index fdef1e9ea10..c1a2a9a2e67 100644
--- a/testing/xml2rfc/APKBUILD
+++ b/testing/xml2rfc/APKBUILD
@@ -1,18 +1,21 @@
-# Contributor:
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=xml2rfc
-pkgver=2.45.1
+pkgver=3.21.0
pkgrel=0
-pkgdesc="A tool for converting XML documents into internet drafts and RFCs"
+pkgdesc="tool for converting XML documents into internet drafts and RFCs"
options="!check" # Requires unpackaged i18naddress
-url="https://tools.ietf.org/"
+url="https://github.com/ietf-tools/xml2rfc"
arch="noarch"
license="BSD-2-Clause"
-depends="python3 py3-setuptools py3-six py3-requests py3-lxml"
+depends="python3 py3-six py3-requests py3-lxml"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/x/xml2rfc/xml2rfc-$pkgver.tar.gz"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -20,7 +23,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="d6e0570dee5af96d7beb1bfe3aa7d938b21d108c296b9c0adc8f1ad1d221edbbed9edff736e27c56421ed1a034e57a4ad30c2258a2dab80d12d27b837452d4da xml2rfc-2.45.1.tar.gz"
+sha512sums="
+3f64b4692a51f201b6d8524c232e7e927829c0e8854e8f71d7f395f399be5ddd88195bbce5839979ea93abaf85fb3fc6527b80e699a74a6dababf8f35c1c1bab xml2rfc-3.21.0.tar.gz
+"
diff --git a/testing/xmp/APKBUILD b/testing/xmp/APKBUILD
new file mode 100644
index 00000000000..c00123e9017
--- /dev/null
+++ b/testing/xmp/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+pkgname=xmp
+pkgver=4.2.0
+pkgrel=0
+pkgdesc="Command-line mod player using libxmp"
+url="https://github.com/libxmp/xmp-cli"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ alsa-lib-dev
+ autoconf
+ automake
+ libxmp-dev
+ pulseaudio-dev
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/libxmp/xmp-cli/archive/refs/tags/xmp-$pkgver.tar.gz"
+options="!check" # no test suite
+builddir="$srcdir/$pkgname-cli-$pkgname-$pkgver/"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ ./configure --disable-oss --enable-pulseaudio prefix=/usr
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir" PREFIX=/usr
+}
+
+sha512sums="
+60d625e83cff6af80382d75b09a0ef1d9b60d86c2cae5ba79b619d8b4999bf15398efefde446670323a17e6f30ca17b0dc737a9265bd7299cf832074291c1c14 xmp-4.2.0.tar.gz
+"
diff --git a/testing/xmpp-dns/APKBUILD b/testing/xmpp-dns/APKBUILD
new file mode 100644
index 00000000000..7a337c34f6f
--- /dev/null
+++ b/testing/xmpp-dns/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=xmpp-dns
+pkgver=0.2.4
+pkgrel=16
+pkgdesc="CLI tool to check XMPP SRV records"
+url="https://salsa.debian.org/mdosch/xmpp-dns/"
+arch="all"
+license="BSD-2-Clause"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://salsa.debian.org/mdosch/xmpp-dns/-/archive/v$pkgver/xmpp-dns-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+export GOFLAGS="$GOFLAGS -modcacherw"
+
+build() {
+ go build -o xmpp-dns
+}
+
+check() {
+ go fmt "$(go list ./... | grep -v /vendor/)"
+ go vet "$(go list ./... | grep -v /vendor/)"
+ go test "$(go list ./... | grep -v /vendor/)"
+}
+
+package() {
+ install -Dm755 xmpp-dns -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+2e0b6b6bfd47a2d0b4a9809d0d0e80eda802503606f49421199ebd406a9dd66bf425a1247d4280bc43e182812a0a83047ef93c0f9c4152e7e421bcbac9489619 xmpp-dns-0.2.4.tar.gz
+"
diff --git a/testing/xmppipe/APKBUILD b/testing/xmppipe/APKBUILD
new file mode 100644
index 00000000000..5e6980e50fa
--- /dev/null
+++ b/testing/xmppipe/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Anjandev Momi <anjan@momi.ca>
+# Maintainer: Anjandev Momi <anjan@momi.ca>
+pkgname=xmppipe
+pkgver=0.16.0
+pkgrel=1
+pkgdesc="stdio over XMPP"
+url="https://github.com/msantos/xmppipe"
+arch="all"
+license="ISC"
+makedepends="libstrophe-dev audit-dev"
+checkdepends="bats"
+source="$pkgname-$pkgver.tar.gz::https://github.com/msantos/xmppipe/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # checks require inputting xmpp username and password in plaintext
+
+build() {
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 xmppipe -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+beb8e83d6d33989510812ae32d551c59ece1064a80817170ea3c0ab07986d30f1e7ee1f3dc2b976b2636b54b3892fd12bcf8b71a8e3cf443605989c29525d18e xmppipe-0.16.0.tar.gz
+"
diff --git a/testing/xmrig-proxy/APKBUILD b/testing/xmrig-proxy/APKBUILD
deleted file mode 100644
index 8896d9e8cf9..00000000000
--- a/testing/xmrig-proxy/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-
-pkgname=xmrig-proxy
-pkgver=5.10.2
-pkgrel=0
-pkgdesc="XMRig Proxy is a high performance Monero (XMR) Stratum protocol proxy"
-url="https://xmrig.com/xmrig-proxy"
-arch="all"
-license="GPL-3.0-or-later"
-options="!check" # No test suite from upstream
-makedepends="cmake libuv-dev libmicrohttpd-dev openssl-dev util-linux-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/xmrig/xmrig-proxy/archive/v$pkgver.tar.gz"
-
-build() {
- cmake -B build -DCMAKE_BUILD_TYPE=None
- make -C build
-}
-
-package() {
- install -Dm 755 build/xmrig-proxy $pkgdir/usr/bin/xmrig-proxy
-
- install -Dm 644 -t "$pkgdir"/usr/share/doc/$pkgname/ README.md
-}
-
-sha512sums="78009bb68a03ec88fcdcb735ae7ea2303a65d7f8b75b5382100e0ff2b156ab47de74ffec8b7f75c324541af5092c04113ac6e2d4a77e0184b8205070fac3cafc xmrig-proxy-5.10.2.tar.gz"
diff --git a/testing/xmrig/APKBUILD b/testing/xmrig/APKBUILD
deleted file mode 100644
index 7b8840bc0e5..00000000000
--- a/testing/xmrig/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=xmrig
-pkgver=5.11.2
-pkgrel=0
-pkgdesc="XMRig is a high performance Monero (XMR) miner"
-url="https://xmrig.com/"
-arch="all !s390x !ppc64le !aarch64 !mips !mips64" # gets stuck on aarch64 builder
-license="GPL-3.0-or-later"
-options="!check" # No test suite from upstream
-makedepends="cmake libmicrohttpd-dev libuv-dev openssl-dev hwloc-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/xmrig/xmrig/archive/v$pkgver.tar.gz"
-
-case "$CARCH" in
- aarch64*) CMAKE_CROSSOPTS="-DARM_TARGET=8"; makedepends="$makedepends linux-headers" ;;
- armv7*) CMAKE_CROSSOPTS="-DARM_TARGET=7"; makedepends="$makedepends linux-headers" ;;
- armhf*) CMAKE_CROSSOPTS="-DARM_TARGET=7"; makedepends="$makedepends linux-headers" ;;
-esac
-
-build() {
- cmake -B build $CMAKE_CROSSOPTS -DCMAKE_BUILD_TYPE=None
- make -C build
-}
-
-package() {
- install -Dm 755 build/xmrig $pkgdir/usr/bin/xmrig
-
- install -Dm 644 -t "$pkgdir"/usr/share/doc/$pkgname/ README.md
-}
-
-sha512sums="326aaf347deb82abc6c9f7739af67f398f38bc11cc845cbd8990ff9e4a652dc9415ba8f3a87a2909be44f5f2fd8522247afdb58045470697e9a4617fca668d30 xmrig-5.11.2.tar.gz"
diff --git a/testing/xob/APKBUILD b/testing/xob/APKBUILD
new file mode 100644
index 00000000000..43507d07558
--- /dev/null
+++ b/testing/xob/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Magnus Sandin <magnus.sandin@gmail.com>
+# Maintainer: Magnus Sandin <magnus.sandin@gmail.com>
+pkgname=xob
+pkgver=0.3
+pkgrel=0
+pkgdesc="A lightweight overlay bar for the X Window System"
+url="https://github.com/florentc/xob"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-doc"
+makedepends="
+ libconfig-dev
+ libxrender-dev
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/florentc/xob/archive/refs/tags/v$pkgver.tar.gz
+ "
+options="!check" # No tests available
+
+build() {
+ make sysconfdir="/etc" prefix="/usr"
+}
+
+package() {
+ make install DESTDIR="$pkgdir" sysconfdir="/etc" prefix="/usr"
+}
+
+
+sha512sums="
+b599ab37fb9eda15ecb4b6963eb4ca993905e8e34af8496a8a92de50b20724c799f222d5e37a430a9499df2b2c0ceb322f607e2d0e82db01cffba646ab9e3309 xob-0.3.tar.gz
+"
diff --git a/testing/xone-src/APKBUILD b/testing/xone-src/APKBUILD
new file mode 100644
index 00000000000..af0b966d56d
--- /dev/null
+++ b/testing/xone-src/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Umar Getagazov <umar@handlerug.me>
+# Maintainer: Umar Getagazov <umar@handlerug.me>
+pkgname=xone-src
+_modname=${pkgname%-src}
+pkgver=0.3_git20230517
+pkgrel=0
+_gitrev=bbf0dcc484c3f5611f4e375da43e0e0ef08f3d18
+pkgdesc="Linux kernel driver for Xbox One and Xbox Series X|S accessories (sources)"
+url="https://github.com/medusalix/xone"
+arch="noarch"
+license="GPL-2.0-or-later"
+install="$pkgname.post-install"
+provides="xone=$pkgver"
+source="$_modname-$pkgver.tar.gz::https://github.com/medusalix/xone/archive/$_gitrev.tar.gz
+ modules-load.conf"
+options="!check" # no tests
+builddir="$srcdir/$_modname-$_gitrev"
+
+package() {
+ install -Dm644 "$srcdir"/modules-load.conf \
+ "$pkgdir"/usr/lib/modules-load.d/xone-wired.conf
+ install -Dm644 "$builddir"/install/modprobe.conf \
+ "$pkgdir"/etc/modprobe.d/xone-blacklist.conf
+ install -Dm755 "$builddir"/install/firmware.sh \
+ "$pkgdir"/usr/bin/xone-get-firmware.sh
+ install -Dm644 "$builddir"/Kbuild "$pkgdir"/usr/src/$_modname-$pkgver/Kbuild
+ cp -r "$builddir"/bus "$builddir"/driver "$builddir"/transport \
+ "$pkgdir"/usr/src/$_modname-$pkgver/
+
+ cat >"$pkgdir"/usr/src/$_modname-$pkgver/AKMBUILD <<-EOF
+ modname=$_modname
+ modver=$pkgver-r$pkgrel
+ built_modules="$_modname-wired.ko $_modname-dongle.ko $_modname-gip.ko "\\
+ "$_modname-gip-gamepad.ko $_modname-gip-headset.ko $_modname-gip-chatpad.ko "\\
+ "$_modname-gip-guitar.ko"
+ EOF
+}
+
+sha512sums="
+78cd605a5d56c8230e8800dd43f9f423da52d896625242669480211a4105bbce3364669b742f678b6b48ecd3bc42ad2982d46fe0c6e99ec8e05b69a47c5c88ab xone-0.3_git20230517.tar.gz
+838de6003c723dc3955986b9cde883cae6e29c90995798110f285b1b1b362116f9e3a065f541e8d5d132dc460d245b37ce7479e9189b63e5fe9adf0c5f37529f modules-load.conf
+"
diff --git a/testing/xone-src/modules-load.conf b/testing/xone-src/modules-load.conf
new file mode 100644
index 00000000000..618c855c26d
--- /dev/null
+++ b/testing/xone-src/modules-load.conf
@@ -0,0 +1,2 @@
+xone-wired
+xone-dongle
diff --git a/testing/xone-src/xone-src.post-install b/testing/xone-src/xone-src.post-install
new file mode 100644
index 00000000000..cf116160f0b
--- /dev/null
+++ b/testing/xone-src/xone-src.post-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* If you want to use the wireless dongle, download the binary firmware blob
+* from Microsoft by running xone-get-firmware.sh.
+*
+EOF
+
+exit 0
diff --git a/testing/xonotic-data/APKBUILD b/testing/xonotic-data/APKBUILD
deleted file mode 100644
index 5180baceb56..00000000000
--- a/testing/xonotic-data/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor:
-# Maintainer:
-pkgname=xonotic-data
-pkgver=0.8.2
-pkgrel=0
-pkgdesc="Data files for Xonotic"
-url="https://www.xonotic.org/"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends=""
-makedepends=""
-options="!check"
-source="$pkgname-$pkgver.zip::https://dl.xonotic.org/${pkgname%-*}-${pkgver}.zip"
-builddir="$srcdir"/Xonotic
-
-package() {
- mkdir -p "$pkgdir"/usr/share/xonotic/
- mv "$srcdir"/Xonotic/data "$pkgdir"/usr/share/xonotic/
-}
-
-sha512sums="0787fcf326827ae0292e5917c7ff2c7fd79947209d4b62e7f83b8b828bec15b575da304e0631f9f163c9b0bd93bed13616e142398ff08cbdaaea890a939dfca5 xonotic-data-0.8.2.zip"
diff --git a/testing/xonotic/APKBUILD b/testing/xonotic/APKBUILD
deleted file mode 100644
index d1943e31f3c..00000000000
--- a/testing/xonotic/APKBUILD
+++ /dev/null
@@ -1,114 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor:
-# Maintainer:
-pkgname=xonotic
-pkgver=0.8.2
-pkgrel=0
-pkgdesc="A free, fast-paced crossplatform first-person shooter"
-url="https://www.xonotic.org/"
-arch="x86 x86_64"
-license="GPL-2.0-or-later"
-depends="xonotic-data"
-makedepends="autoconf
- automake
- libtool
- alsa-lib-dev
- curl-dev
- libjpeg-turbo-dev
- libmodplug-dev
- libvorbis-dev
- libxpm-dev
- libxxf86dga-dev
- libxxf86vm-dev
- sdl2-dev
- libpng-dev
- mesa-dev
- gmp-dev"
-install=""
-subpackages="$pkgname-server $pkgname-sdl $pkgname-glx"
-options="!check"
-source="$pkgname-$pkgver.zip::http://dl.xonotic.org/${pkgname}-${pkgver}-source.zip
- xonotic-moncontrol.patch
- xonotic-sdl.desktop
- xonotic-glx.desktop"
-builddir="$srcdir"/Xonotic
-
-build() {
- cd "$builddir"
-
- local r
- for r in sv sdl cl; do
- make -C "$builddir"/source/darkplaces \
- CPUOPTIMIZATIONS="$CFLAGS" \
- DP_FS_BASEDIR="/usr/share/$pkgname" \
- DP_LINK_TO_LIBJPEG=1 \
- "$r"-release
- done
-
- cd "$builddir"/source/d0_blind_id
- sh autogen.sh
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- cd "$builddir"/source/d0_blind_id
- make DESTDIR="$pkgdir" install
-
- cd "$pkgdir"/usr
- rm -r include
- cd lib
- rm -r pkgconfig *.a
-
- local size
- for size in 16 22 24 32 48 64 128 256 512; do
- install -Dm644 "$builddir"/misc/logos/icons_png/xonotic_"$size".png \
- "$pkgdir"/usr/share/icons/hicolor/"$size"x"$size"/apps/xonotic.png
- done
-}
-
-server() {
- pkgdesc="$pkgdesc (Server)"
- depends="xonotic"
-
- mkdir -p "$subpkgdir"/usr/bin
- install -Dm755 "$builddir"/source/darkplaces/darkplaces-dedicated \
- "$subpkgdir"/usr/bin/xonotic-dedicated
-}
-
-sdl() {
- pkgdesc="$pkgdesc (SDL client)"
- depends="xonotic"
-
- mkdir -p "$subpkgdir"/usr/bin
- install -Dm755 "$builddir"/source/darkplaces/darkplaces-sdl \
- "$subpkgdir"/usr/bin/xonotic-sdl
-
- mkdir -p "$subpkgdir"/usr/share/applications
- install -Dm644 "$srcdir"/xonotic-sdl.desktop \
- "$subpkgdir"/usr/share/applications/xonotic-sdl.desktop
-}
-
-glx() {
- pkgdesc="$pkgdesc (GLX client)"
- depends="xonotic"
-
- mkdir -p "$subpkgdir"/usr/bin
- install -Dm755 "$builddir"/source/darkplaces/darkplaces-glx \
- "$subpkgdir"/usr/bin/xonotic-glx
-
- mkdir -p "$subpkgdir"/usr/share/applications
- install -Dm644 "$srcdir"/xonotic-glx.desktop \
- "$subpkgdir"/usr/share/applications/xonotic-glx.desktop
-}
-
-sha512sums="1a803f3ebd2e1c3a2000e6b7a6ec0ab3a64c92a9c7b41c329a5054a51bb624a790a84bd6b3a344a59f3bd7bf18feecec0b39e2ddfc116c52ad85d22731a0fba0 xonotic-0.8.2.zip
-d74a1d1421dc68dbf46595510cea463382e69c8421110cd7b187419530dbfe9d262d9b65843b89b49aa91d9e32041e11941e411fe52f2dcb0ede18311ab821ec xonotic-moncontrol.patch
-963273811453f713ab70f5d12b918c1513a9a7995cd1d2572f0b9060d945391bf7db4ae04ae586531ecf3a088f837803a66ac267d9285928d8b2e82c98b7158b xonotic-sdl.desktop
-2e06d588d68d629a9690b4dd3372c7ad77b240afcd86cf0cdf2de15548d3feaa0e446df1a29339be4593d23bfcf389930bdd1d7021f1e2558d70bb15e28646bd xonotic-glx.desktop"
diff --git a/testing/xonotic/xonotic-glx.desktop b/testing/xonotic/xonotic-glx.desktop
deleted file mode 100644
index ebce0e19632..00000000000
--- a/testing/xonotic/xonotic-glx.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Type=Application
-Version=2.5
-Encoding=UTF-8
-Name=Xonotic (GLX)
-Comment=a free open-source first person shooter
-Icon=xonotic
-Exec=/usr/bin/xonotic-glx
-Terminal=false
-StartupNotify=false
-Categories=Game;
diff --git a/testing/xonotic/xonotic-moncontrol.patch b/testing/xonotic/xonotic-moncontrol.patch
deleted file mode 100644
index 4fdd6a663b6..00000000000
--- a/testing/xonotic/xonotic-moncontrol.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- Xonotic.orig/source/darkplaces/sys_shared.c
-+++ Xonotic/source/darkplaces/sys_shared.c
-@@ -69,9 +69,6 @@
- else
- moncleanup();
- #endif
--#elif defined(__linux__) || defined(__FreeBSD__)
-- extern int moncontrol(int);
-- moncontrol(enable);
- #endif
- }
-
diff --git a/testing/xonotic/xonotic-sdl.desktop b/testing/xonotic/xonotic-sdl.desktop
deleted file mode 100644
index 2c631916b24..00000000000
--- a/testing/xonotic/xonotic-sdl.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Type=Application
-Version=2.5
-Encoding=UTF-8
-Name=Xonotic (SDL)
-Comment=a free open-source first person shooter
-Icon=xonotic
-Exec=/usr/bin/xonotic-sdl
-Terminal=false
-StartupNotify=false
-Categories=Game;
diff --git a/testing/xonsh/APKBUILD b/testing/xonsh/APKBUILD
new file mode 100644
index 00000000000..8d4e5a899c6
--- /dev/null
+++ b/testing/xonsh/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: Hoang Nguyen <folliekazetani@protonmail.com>
+# Contributor: vinnie <fz12345@gmail.com>
+# Maintainer: vinnie <fz12345@gmail.com>
+pkgname=xonsh
+pkgver=0.15.1
+pkgrel=1
+pkgdesc="Python-powered, cross-platform, Unix-gazing shell"
+url="https://xon.sh"
+arch="noarch"
+license="BSD-2-Clause"
+depends="
+ py3-distro
+ py3-prompt_toolkit>=3.0
+ py3-pygments>=2.2
+ py3-pyperclip
+ py3-ujson
+ "
+makedepends="py3-setuptools py3-gpep517 py3-installer py3-wheel"
+# man-db with groff-1.23.0 breaks "test_man.py" due to escape codes in output
+checkdepends="
+ mandoc
+ py3-pip
+ py3-pyte
+ py3-pytest
+ py3-pytest-mock
+ py3-pytest-rerunfailures
+ py3-pytest-subprocess
+ py3-pytest-timeout
+ py3-virtualenv
+ "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xonsh/xonsh/archive/$pkgver.tar.gz
+ no-col.patch
+ "
+
+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 \
+ --ignore=tests/test_integrations.py \
+ --ignore=tests/test_pipelines.py \
+ --ignore=tests/test_ptk_shell.py \
+ --ignore=tests/completers/test_bash_completer.py \
+ --ignore=tests/procs/test_specs.py \
+ --deselect tests/test_man.py::test_man_completion
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+
+ # The build process appends dirty bit into the version string
+ # if a git repo is detected
+ sed -i "s/^\(__version__ =\).*/\1 \"$pkgver\"/" \
+ "$pkgdir"/usr/lib/python*/site-packages/xonsh/__init__.py
+}
+
+sha512sums="
+5a8640a80c8aa1a08cabcd643880603ddf9d1181ca1dfb396b5970fb59205a19be4fbd5ff8f0a36779fd25d7204748ad2426f311b7a9e7b954fc3a541a1e2131 xonsh-0.15.1.tar.gz
+56e6548dde6faaa70e000f0d49a260ca0fe5297b0ec0abb1ab2cb0c22154479a957155f06037b91d9fda3736f3c7935d019a6c45adf506334e5940dfd8ac37d1 no-col.patch
+"
diff --git a/testing/xonsh/no-col.patch b/testing/xonsh/no-col.patch
new file mode 100644
index 00000000000..9e54bf3a65a
--- /dev/null
+++ b/testing/xonsh/no-col.patch
@@ -0,0 +1,13 @@
+we can't use col(1), because it was [gated behind if(__GLIBC__)][1]
+in util-linux; according to upstream, it's also deprecated
+
+[1]: https://github.com/util-linux/util-linux/commit/8886d84e25a457702b45194d69a47313f76dc6bc
+
+diff --git a/xonsh/completers/man.py b/xonsh/completers/man.py
+index a2e56f1..944ae6b 100644
+--- a/xonsh/completers/man.py
++++ b/xonsh/completers/man.py
+@@ -25,2 +25,3 @@ def get_man_completions_path() -> Path:
+ def _get_man_page(cmd: str):
++ return None
+ """without control characters"""
diff --git a/testing/xonsh/xonsh.post-install b/testing/xonsh/xonsh.post-install
new file mode 100644
index 00000000000..253465b2ac5
--- /dev/null
+++ b/testing/xonsh/xonsh.post-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+add-shell '/usr/bin/xonsh'
+exit 0
diff --git a/testing/xonsh/xonsh.post-upgrade b/testing/xonsh/xonsh.post-upgrade
new file mode 120000
index 00000000000..043e81e0c33
--- /dev/null
+++ b/testing/xonsh/xonsh.post-upgrade
@@ -0,0 +1 @@
+xonsh.post-install \ No newline at end of file
diff --git a/testing/xonsh/xonsh.pre-deinstall b/testing/xonsh/xonsh.pre-deinstall
new file mode 100644
index 00000000000..c2d7870a5df
--- /dev/null
+++ b/testing/xonsh/xonsh.pre-deinstall
@@ -0,0 +1,3 @@
+#!/bin/sh
+remove-shell '/usr/bin/xonsh'
+exit 0
diff --git a/testing/xorgxrdp/APKBUILD b/testing/xorgxrdp/APKBUILD
deleted file mode 100644
index 3683a7869ae..00000000000
--- a/testing/xorgxrdp/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@gmail.com>
-# Maintainer:
-pkgname=xorgxrdp
-pkgver=0.2.13
-pkgrel=0
-pkgdesc="Xorg drivers for xrdp"
-options="!check" # Testsuite is non-functional
-url="https://github.com/neutrinolabs/xorgxrdp"
-arch="all !x86"
-license="X11"
-makedepends="xorg-server-dev xrdp-dev nasm libpciaccess-dev"
-subpackages="$pkgname-dev"
-source="https://github.com/neutrinolabs/xorgxrdp/releases/download/v$pkgver/xorgxrdp-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="1f0f6982917b4cd18660ab950a0f04ba962643a71fc2a7d7caeb3c30a6cd37ecb6e757efce3571c6c12f928eddb4e3311080a65f9074c7719980d3d7a6201185 xorgxrdp-0.2.13.tar.gz"
diff --git a/testing/xosview/APKBUILD b/testing/xosview/APKBUILD
new file mode 100644
index 00000000000..52eaeeae788
--- /dev/null
+++ b/testing/xosview/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Mark Hills <mark@xwax.org>
+# Maintainer: Mark Hills <mark@xwax.org>
+pkgname=xosview
+pkgver=1.24
+pkgrel=0
+pkgdesc="The classic system monitoring tool"
+url="https://www.pogo.org.uk/~mark/xosview/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libx11-dev libxpm-dev linux-headers"
+options="!check" # no tests provided
+subpackages="$pkgname-doc"
+source="https://www.pogo.org.uk/~mark/xosview/releases/xosview-$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" \
+ PREFIX=/usr \
+ install
+}
+
+sha512sums="
+aeeecc3be8c4a22bb62062ca51c927ace186c0652f7cc16fbdd7b7d3acb247242d1ad64960cfb4622bd1626fdfcd26ef6938df2b4f788ee8fc44e5cf59396540 xosview-1.24.tar.gz
+"
diff --git a/testing/xournal/APKBUILD b/testing/xournal/APKBUILD
deleted file mode 100644
index fe6e7f26108..00000000000
--- a/testing/xournal/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
-pkgname=xournal
-pkgver=0.4.8.2016
-pkgrel=1
-pkgdesc="Notetaking, sketching, keeping a journal using a stylus"
-url="http://xournal.sourceforge.net/"
-arch="all"
-license="GPL-2.0"
-makedepends="libgnomecanvas-dev poppler-dev gtk+2.0-dev libart-lgpl-dev"
-subpackages="$pkgname-lang"
-source="https://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz
- static-inline.patch"
-builddir="$srcdir/"$pkgname-$pkgver
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --target=$CTARGET \
- --prefix=/usr
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="1426d5c9ba3486fbe342d49fc19fcc162965cd6a7b7754f79665e43fe0e60e6f42f61969405ace78fdaa7b99cbb3d4b07b7fb5df246d68a329b52084b6eec76e xournal-0.4.8.2016.tar.gz
-de5dbe8a6ee98215cca22e0776817f655b7dfe741ebb186e7fdfa0569bc078888f84669d0ddbcf7abfd31232a533b02f00acc8b2a7204339b2e69a4a7f8f7df4 static-inline.patch"
diff --git a/testing/xournal/static-inline.patch b/testing/xournal/static-inline.patch
deleted file mode 100644
index 5a874950289..00000000000
--- a/testing/xournal/static-inline.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff --git a/src/xo-shapes.c b/src/xo-shapes.c
-index 33840fd..4ed17da 100644
---- a/src/xo-shapes.c
-+++ b/src/xo-shapes.c
-@@ -72,42 +72,42 @@ void calc_inertia(double *pt, int start, int end, struct Inertia *s)
-
- /* compute normalized quantities */
-
--inline double center_x(struct Inertia s)
--{
-+static inline double center_x(struct Inertia s)
-+{
- return s.sx/s.mass;
- }
-
--inline double center_y(struct Inertia s)
--{
-+static inline double center_y(struct Inertia s)
-+{
- return s.sy/s.mass;
- }
-
--inline double I_xx(struct Inertia s)
-+static inline double I_xx(struct Inertia s)
- {
- if (s.mass <= 0.) return 0.;
- return (s.sxx - s.sx*s.sx/s.mass)/s.mass;
- }
-
--inline double I_xy(struct Inertia s)
-+static inline double I_xy(struct Inertia s)
- {
- if (s.mass <= 0.) return 0.;
- return (s.sxy - s.sx*s.sy/s.mass)/s.mass;
- }
-
--inline double I_yy(struct Inertia s)
-+static inline double I_yy(struct Inertia s)
- {
- if (s.mass <= 0.) return 0.;
- return (s.syy - s.sy*s.sy/s.mass)/s.mass;
- }
-
--inline double I_rad(struct Inertia s)
-+static inline double I_rad(struct Inertia s)
- {
- double ixx = I_xx(s), iyy = I_yy(s);
- if (ixx+iyy <= 0.) return 0.;
- return sqrt(ixx+iyy);
- }
-
--inline double I_det(struct Inertia s)
-+static inline double I_det(struct Inertia s)
- {
- double ixx = I_xx(s), iyy = I_yy(s), ixy = I_xy(s);
- if (s.mass <= 0.) return 0.;
diff --git a/testing/xplr/APKBUILD b/testing/xplr/APKBUILD
new file mode 100644
index 00000000000..2de0488e31b
--- /dev/null
+++ b/testing/xplr/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: omni <omni+alpine@hack.org>
+pkgname=xplr
+pkgver=0.21.5
+pkgrel=2
+pkgdesc="Hackable, minimal, fast TUI file explorer"
+url="https://xplr.dev"
+# s390x: nix crate
+arch="all !s390x"
+license="MIT"
+makedepends="cargo lua5.4-dev cargo-auditable"
+options="net"
+subpackages="$pkgname-doc"
+source="
+ https://github.com/sayanarijit/xplr/archive/refs/tags/v$pkgver/xplr-$pkgver.tar.gz
+ remove-vendored-lua.patch
+ modified-field-lua54.patch
+ "
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+check() {
+ # cargo test doesn't build target/debug/xplr binary
+ cargo auditable build --frozen
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/xplr -t "$pkgdir"/usr/bin/
+
+ install -Dm644 "$builddir"/assets/desktop/xplr.desktop \
+ -t "$pkgdir"/usr/share/applications
+ install -Dm644 "$builddir"/assets/icon/xplr.svg \
+ "$pkgdir"/usr/share/pixmaps/xplr.svg
+ install -Dm644 "$builddir"/assets/icon/xplr.svg \
+ "$pkgdir"/usr/share/icons/hicolor/scalable/apps/xplr.svg
+ for res in 16 32 64 128; do
+ install -Dm 644 assets/icon/"$pkgname""$res".png \
+ "$pkgdir"/usr/share/icons/hicolor/"$res"x"$res"/apps/"$pkgname".png
+ done
+
+ install -Dm644 src/init.lua \
+ -t "$pkgdir"/usr/share/doc/"$pkgname"/examples/
+ install -Dm644 docs/en/src/* \
+ -t "$pkgdir"/usr/share/doc/"$pkgname"/
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+sha512sums="
+4f6323d123e3963c1b427df55200771f2d3cf2d8cfc07dac488d513215030bf98c96bdcbdf5b801f319afd3fd780c82abfbc6b212a6178bdfae86f798dd0f0df xplr-0.21.5.tar.gz
+65886618305c63119e3be0e08f4fae7f9b63ad479767f1abe40c6de56356619caddc5b360f05018e64c758f59780bd265e51796d2fd29d95e41bffebe16abc6e remove-vendored-lua.patch
+9a4109b0988065ce4ae79535238c447e281f6e730957faab2c48b6a0c861eac2a6263c5cac24bc8dbdaa37e442e4c52ea4279b52d4e75df9a5ea1f0e3321728e modified-field-lua54.patch
+"
diff --git a/testing/xplr/modified-field-lua54.patch b/testing/xplr/modified-field-lua54.patch
new file mode 100644
index 00000000000..4c394f8584b
--- /dev/null
+++ b/testing/xplr/modified-field-lua54.patch
@@ -0,0 +1,13 @@
+Switch to ISO 8601 while we're at it, but the important change here is to round
+down to a value that tostring() can always handle.
+--- a/src/init.lua
++++ b/src/init.lua
+@@ -3046,7 +3046,7 @@ end
+
+ -- Renders the fifth column in the table
+ xplr.fn.builtin.fmt_general_table_row_cols_4 = function(m)
+- return tostring(os.date("%a %b %d %H:%M:%S %Y", m.last_modified / 1000000000))
++ return tostring(os.date("%Y-%m-%d %H:%M:%S", math.floor(m.last_modified / 1000000000)))
+ end
+
+ -- This is where the custom functions can be added.
diff --git a/testing/xplr/remove-vendored-lua.patch b/testing/xplr/remove-vendored-lua.patch
new file mode 100644
index 00000000000..bea10dc954b
--- /dev/null
+++ b/testing/xplr/remove-vendored-lua.patch
@@ -0,0 +1,48 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -774,25 +774,6 @@
+ ]
+
+ [[package]]
+-name = "lua-src"
+-version = "546.0.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2da0daa7eee611a4c30c8f5ee31af55266e26e573971ba9336d2993e2da129b2"
+-dependencies = [
+- "cc",
+-]
+-
+-[[package]]
+-name = "luajit-src"
+-version = "210.5.3+29b0b28"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c2bb89013916ce5c949f01a1fbd6d435a58e1d980767a791d755911211d792d"
+-dependencies = [
+- "cc",
+- "which",
+-]
+-
+-[[package]]
+ name = "memchr"
+ version = "2.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -865,8 +846,6 @@
+ dependencies = [
+ "cc",
+ "cfg-if",
+- "lua-src",
+- "luajit-src",
+ "pkg-config",
+ ]
+
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -73,7 +73,7 @@
+
+ [dependencies.mlua]
+ version = "0.9.2"
+-features = ['luajit', 'vendored', 'serialize', 'send']
++features = ['lua54', 'serialize', 'send']
+
+ [dependencies.tui-input]
+ version = "0.8.0"
diff --git a/testing/xremap-wlr/APKBUILD b/testing/xremap-wlr/APKBUILD
new file mode 100644
index 00000000000..e87ea5dd697
--- /dev/null
+++ b/testing/xremap-wlr/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Coco Liliace <coco@liliace.dev>
+# Maintainer: Coco Liliace <coco@liliace.dev>
+pkgname=xremap-wlr
+pkgver=0.8.18
+pkgrel=0
+pkgdesc="Key remapper for Wayland"
+url="https://github.com/k0kubun/xremap"
+# nix
+arch="all !s390x !riscv64"
+license="MIT"
+makedepends="cargo cargo-auditable"
+replaces="xremap-sway"
+source="$pkgname-$pkgver.tar.gz::https://github.com/k0kubun/xremap/archive/v$pkgver.tar.gz"
+builddir="$srcdir/xremap-$pkgver"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release --features wlroots
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 -t "$pkgdir"/usr/bin ./target/release/xremap
+}
+
+sha512sums="
+9ad0394e1824d5b423fd38d47f953844942119d69f6cf2c49f9e85dba18b6297957b30b77e265238b47e968921507620c4db1e6772d6cc69de278146556e6edf xremap-wlr-0.8.18.tar.gz
+"
diff --git a/testing/xsane/0001-libpng15.patch b/testing/xsane/0001-libpng15.patch
new file mode 100644
index 00000000000..e9f3535d29b
--- /dev/null
+++ b/testing/xsane/0001-libpng15.patch
@@ -0,0 +1,30 @@
+Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
+
+ Build with libpng15.
+
+--- a/src/xsane-save.c
++++ b/src/xsane-save.c
+@@ -4910,7 +4910,11 @@ int xsane_save_png(FILE *outfile, int compression, FILE *imagefile, Image_info *
+ return -1; /* error */
+ }
+
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if ( setjmp( png_jmpbuf ( png_ptr ) ) )
++#else
+ if (setjmp(png_ptr->jmpbuf))
++#endif
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
+ xsane_back_gtk_error(buf, TRUE);
+@@ -5100,7 +5104,11 @@ int xsane_save_png_16(FILE *outfile, int compression, FILE *imagefile, Image_inf
+ return -1; /* error */
+ }
+
++#if PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 4
++ if ( setjmp( png_jmpbuf ( png_ptr ) ) )
++#else
+ if (setjmp(png_ptr->jmpbuf))
++#endif
+ {
+ snprintf(buf, sizeof(buf), "%s %s", ERR_DURING_SAVE, ERR_LIBPNG);
+ xsane_back_gtk_error(buf, TRUE);
diff --git a/testing/xsane/APKBUILD b/testing/xsane/APKBUILD
new file mode 100644
index 00000000000..98160c3785d
--- /dev/null
+++ b/testing/xsane/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=xsane
+pkgver=0.999
+pkgrel=1
+pkgdesc="Graphical SANE frontend"
+url="http://www.xsane.org/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="sane-dev libpng-dev gtk+2.0-dev"
+subpackages="$pkgname-doc $pkgname-lang"
+source="
+ https://gitlab.com/sane-project/frontend/xsane/-/archive/$pkgver/xsane-$pkgver.tar.gz
+ 0001-libpng15.patch
+"
+options="!check" # no test suite provided
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+7f993dc941ea5347e94ed84021de5fce32af924a10e749f517aae45b5e9623127967ad4b8bbd12d064601b9d6ea4142c5e3fe2410405b785bfb8508badeee6fe xsane-0.999.tar.gz
+e1a92665fddd744b18841b510155cd3369976f8738d2e644ce91b202b5e51d4d62e5d06fabebbad01d61b3e725f339885678d5126b3af01a834d50ecd8303e98 0001-libpng15.patch
+"
diff --git a/testing/xsecurelock/APKBUILD b/testing/xsecurelock/APKBUILD
new file mode 100644
index 00000000000..7474dee2726
--- /dev/null
+++ b/testing/xsecurelock/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer:
+pkgname=xsecurelock
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="X11 screen lock utility with security in mind"
+url="https://github.com/google/xsecurelock"
+arch="all"
+license="Apache-2.0"
+options="!check" # no test suite
+makedepends="
+ libx11-dev
+ libxcomposite-dev
+ libxext-dev
+ libxfixes-dev
+ libxft-dev
+ libxmu-dev
+ libxrandr-dev
+ libxscrnsaver-dev
+ linux-pam-dev
+ xorgproto
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/google/xsecurelock/releases/download/v$pkgver/xsecurelock-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --target="$CTARGET" \
+ --build="$CBUILD" \
+ --host="$CHOST" \
+ --prefix=/usr \
+ --with-pam-service-name=system-login
+ make GIT_VERSION="$pkgver"
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+23a3c0ac6302bf9550f26fd7a16034dc19899d2523e2211040332cc7ffd14927b9b6af7fdd577ab65e2a5f5c7d0b2b7156b1e2812d40bb4dc0d2ca04c6fc53cc xsecurelock-1.9.0.tar.gz
+"
diff --git a/testing/xsel/APKBUILD b/testing/xsel/APKBUILD
deleted file mode 100644
index a705d0f4fe9..00000000000
--- a/testing/xsel/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: dai9ah <dai9ah@protonmail.com>
-# Maintainer: dai9ah <dai9ah@protonmail.com>
-pkgname=xsel
-pkgver=1.2.0_git20190821
-pkgrel=0
-pkgdesc="Command-line program for manipulating the X selection"
-url="http://www.vergenet.net/~conrad/software/xsel"
-arch="all"
-license="MIT"
-makedepends="libxt-dev autoconf automake libtool"
-subpackages="$pkgname-doc"
-_commit=ef01f3c72a195dbce682184c842b81b17d7d7ad1
-source="$pkgname-$pkgver.tar.gz::https://github.com/kfish/xsel/archive/$_commit.tar.gz"
-builddir="$srcdir/$pkgname-$_commit"
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- ./xsel --help > /dev/null
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="b95648cc203b915c6288e44d0615b92dd7740f58447db2ff99f74cdb08353d63bb15327199a22a70776301d7c0670cba3297a86b4bdea68ed89c8484b839205c xsel-1.2.0_git20190821.tar.gz"
diff --git a/testing/xsoldier/APKBUILD b/testing/xsoldier/APKBUILD
new file mode 100644
index 00000000000..eb421c87337
--- /dev/null
+++ b/testing/xsoldier/APKBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
+pkgname=xsoldier
+pkgver=1.8
+pkgrel=1
+pkgdesc="A space-based shoot'em up game"
+url="http://www.interq.or.jp/libra/oohara/xsoldier/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="libx11-dev libxpm-dev"
+subpackages="$pkgname-doc"
+source="http://www.interq.or.jp/libra/oohara/xsoldier/xsoldier-$pkgver.tar.gz
+ xsoldier.desktop
+ xsoldier.xpm
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --localstatedir=/var/games/xsoldier
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 "$srcdir"/xsoldier.desktop \
+ "$pkgdir"/usr/share/applications/xsoldier.desktop
+ install -Dm664 "$srcdir"/xsoldier.xpm \
+ "$pkgdir"/usr/share/pixmaps/xsoldier-icon.xpm
+}
+
+sha512sums="2f150c3ba31357cac03024146e3a02c9d69fbdaec8e8214284ee996a52eb58c4cf475192e38524f3e031d71a5f0c3b2c744ef1fc81a52eff8b0a9f44a48f8484 xsoldier-1.8.tar.gz
+4681b43589ae4daf0840047279bf3ef0210a8d6a5341f7221b6e0d5da28f66f9f79cb30c455734722f277ad7ea29d6aa314c4fb641eaf0c87ba896871ea43111 xsoldier.desktop
+de49e259b6e1e8a7481b6746c0620a635b7b2e989cb7c7a6170aba80a726bdee6e3be0614d0f40a8302d53fb86e17a6b97b260615e52cd287772bbe6ac4fee85 xsoldier.xpm"
diff --git a/testing/xsoldier/xsoldier.desktop b/testing/xsoldier/xsoldier.desktop
new file mode 100644
index 00000000000..c13f3599acb
--- /dev/null
+++ b/testing/xsoldier/xsoldier.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=X Soldier
+Comment=Shoot 'em up game with the "not shooting" bonus
+Keywords=Game;xsoldier;
+Icon=xsoldier-icon
+TryExec=xsoldier
+Exec=xsoldier
+Terminal=false
+Categories=Game;
+StartupNotify=true
diff --git a/testing/xsoldier/xsoldier.xpm b/testing/xsoldier/xsoldier.xpm
new file mode 100644
index 00000000000..b41594ae6f8
--- /dev/null
+++ b/testing/xsoldier/xsoldier.xpm
@@ -0,0 +1,54 @@
+/* XPM */
+static char *xsoldier[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 16 1",
+" c black",
+". c #191919",
+"X c gray20",
+"o c #00007f",
+"O c #007f7f",
+"+ c #7f0000",
+"@ c #7f007f",
+"# c #4c4c4c",
+"$ c #666667",
+"% c gray50",
+"& c blue",
+"* c cyan",
+"= c red",
+"- c gray60",
+"; c #b2b2b2",
+": c None",
+/* pixels */
+"$.: : :::::::::::::::::: : :O$",
+"$Oo: : :::::::::::::::: : :O-$",
+"%oOO:. : :::::::::::::: : :OO&$",
+"%oO&X: : :::::::::::: : :O&&%$",
+"$o&OOO: : :::::::::: : :O&OOO%",
+"$OOO&Oo:. : : : : :oOO*&&$",
+"XoO&OOOo: :: :: :: :oO&*O&O$",
+". oOo&OOo: :....: :O*&OO&O.X",
+" XO&OOOo: :X-$$X : :OOO&O&O.:.",
+" :.oOO&O&O::#;#$X.::O&&&O&OO: ",
+" : :.oOOO&Oo:#=+=+ :XO&OO*O.: ",
+": : :.o&OOoOO===+++o*&O*O&o: : ",
+":: : :.O&OOoO==+==+O&O&&Oo: : :",
+"::: : :.oOO&&==++++&O*OOo: : ::",
+":::: : :oOOOO===+=#OO&Oo:. : :::",
+":::: : :X&OO=@@@@+OO&O : ::::",
+"::::: : :oO#@&**&$OOO. : :::::",
+"::::: : :oOOO@***O@O&Oo: : :::::",
+":::: : :.OO&o=@$$@@OOoO.: : ::::",
+"::: : :O&O&O==+=++oO&O& : : :::",
+":: : :OOO&*&$==+=oOoOoOO. : ::",
+" : :O&&O&OOX=+++.OO&OOOo: : ",
+":: :O&O*OOO.:+==+:.OO&&oOO: ::",
+" :..O&OO&&o.: ++. :.oOOO&Oo. : ",
+" :X$O&O*Oo: : .. : : oOO&OO%.: ",
+" :.$&O&o.: :: :: :.OO&O%.: ",
+" :.#&OO.: : :: :: : .:oOoO$.: ",
+" :.$OO : :::::::: : : O&O.: ",
+" :.#o: : ::::::::::: : :.o%.: ",
+" : X: : ::::::::::::: : #.: ",
+" :: : :::::::::::::::: : :..: ",
+":: :::::::::::::::::::: : : "
+};
diff --git a/testing/xtensor/APKBUILD b/testing/xtensor/APKBUILD
new file mode 100644
index 00000000000..d882124a496
--- /dev/null
+++ b/testing/xtensor/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=xtensor
+pkgver=0.24.7
+pkgrel=0
+pkgdesc="C++ tensors with broadcasting and lazy computing"
+url="https://github.com/xtensor-stack/xensor"
+arch="noarch !s390x" # test failure on s390x
+license="BSD-3-Clause"
+makedepends="cmake samurai doctest-dev xtl nlohmann-json"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xtensor-stack/xtensor/archive/refs/tags/$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 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DBUILD_TESTS="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+
+sha512sums="
+1b2683225a400e2ed06679eedc13c001be80163afb8b42918091670995c04f26ef03ffa9ef72ec7fe6c9d4c1aa88df9ad17698abe5ccd8b19a057ebc10956594 xtensor-0.24.7.tar.gz
+"
diff --git a/testing/xtitle/APKBUILD b/testing/xtitle/APKBUILD
index c1a1393ed6d..4c3bf4547f9 100644
--- a/testing/xtitle/APKBUILD
+++ b/testing/xtitle/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Camille Scholtz <onodera@openmailbox.org>
pkgname=xtitle
pkgver=0.4.4
-pkgrel=0
+pkgrel=1
pkgdesc="Outputs X window titles"
url="https://github.com/baskerville/xtitle"
arch="all"
diff --git a/testing/xtl/APKBUILD b/testing/xtl/APKBUILD
new file mode 100644
index 00000000000..ecabdb98631
--- /dev/null
+++ b/testing/xtl/APKBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=xtl
+pkgver=0.7.7
+pkgrel=0
+pkgdesc="The x template library"
+url="https://github.com/xtensor-stack/xtl"
+arch="noarch"
+license="BSD-3-Clause"
+makedepends="cmake samurai doctest-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/xtensor-stack/xtl/archive/refs/tags/$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 \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DBUILD_TESTS="$(want_check && echo ON || echo OFF)" \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+
+sha512sums="
+07c2a68db3dbac556dbb0397e54792ddc7a3e87573bff04faa4262dc433b710392ff9c915d428f5abd1ae892ac9bc7744645e75fdb2bb2cee83c523e087c793e xtl-0.7.7.tar.gz
+"
diff --git a/testing/xva-img/APKBUILD b/testing/xva-img/APKBUILD
index 1e7d7d617ec..eeb50eebe22 100644
--- a/testing/xva-img/APKBUILD
+++ b/testing/xva-img/APKBUILD
@@ -1,13 +1,13 @@
# Contributor:
# Maintainer:
pkgname=xva-img
-pkgver=1.4.1
-pkgrel=0
+pkgver=1.4.2
+pkgrel=1
pkgdesc="tool for converting XVA images"
url="https://github.com/eriklax/xva-img"
arch="all"
license="GPL-2.0-or-later"
-makedepends="openssl-dev cmake"
+makedepends="openssl-dev>3 cmake"
source="xva-img-$pkgver.tar.gz::https://github.com/eriklax/xva-img/archive/$pkgver.tar.gz"
build() {
@@ -22,4 +22,4 @@ package() {
make -C build DESTDIR="$pkgdir" install
}
-sha512sums="4f296f4e6dd923de16894b20a691b64048aecba529785bd7b17918ea9ece0b12a8534c4ef293822beb2135a90eaa290025da8ca162807f5958527444d5349870 xva-img-1.4.1.tar.gz"
+sha512sums="df33eb83cf510b2b644f3c2916f3fea712e2a6a0e20b2e4223dde3a25220d3e0fd8eebcfd48f91c49687c62c0b908cddf6eeab9066fb71faac6b85826f851b87 xva-img-1.4.2.tar.gz"
diff --git a/testing/xvidtune/APKBUILD b/testing/xvidtune/APKBUILD
index e6464fad9a3..aa926aa2a5a 100644
--- a/testing/xvidtune/APKBUILD
+++ b/testing/xvidtune/APKBUILD
@@ -1,25 +1,22 @@
# Maintainer: Taner Tas <taner76@gmail.com>
pkgname=xvidtune
-pkgver="1.0.3"
+pkgver=1.0.4
pkgrel=0
-pkgdesc="A client interface to the X server video mode extension."
+pkgdesc="Client interface to the X server video mode extension"
url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
-makedepends="libx11-dev libxxf86vm-dev libxaw-dev libxmu-dev libxt-dev"
+makedepends="
+ libx11-dev
+ libxaw-dev
+ libxmu-dev
+ libxt-dev
+ libxxf86vm-dev
+ "
subpackages="$pkgname-doc"
-source="https://www.x.org/archive/individual/app/${pkgname}-${pkgver}.tar.bz2"
-
-prepare() {
- default_prepare
-
- cd "$builddir"
- chmod +w config.guess config.sub
- update_config_guess && update_config_sub
-}
+source="https://www.x.org/archive/individual/app/xvidtune-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -28,14 +25,14 @@ build() {
make
}
-check(){
- cd "$builddir"
+check() {
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="0f8a4fca1b544ef8f9623246fb0ece75739a0889f2e729c040cd768c595f0bbbfa3a665576369032535c34c7d55784a29b62f0d51432bf2b75d2cec619db7352 xvidtune-1.0.3.tar.bz2"
+sha512sums="
+747d5358f4f7d3d7db508c3f034711ce4b9dd278160d35312e9c4d1604623e84a2438d039b536546fd2df7db8c5ea1907e8a6101985fad2932b6dee5a62c7b80 xvidtune-1.0.4.tar.xz
+"
diff --git a/testing/xvkbd/APKBUILD b/testing/xvkbd/APKBUILD
index f59e7909463..037b4dba741 100644
--- a/testing/xvkbd/APKBUILD
+++ b/testing/xvkbd/APKBUILD
@@ -2,13 +2,12 @@
# Maintainer:
pkgname=xvkbd
pkgver=4.1
-pkgrel=0
+pkgrel=2
pkgdesc="The xvkbd virtual keyboard for X11"
url="http://t-sato.in.coocan.jp/xvkbd/"
-arch="all"
+arch="all !riscv64" # imake does not support riscv64
license="GPL-2.0-or-later"
options="!check" # No test suite
-depends="libxt libxmu libxaw libxtst"
makedepends="imake xorg-server-dev libxt-dev libxmu-dev
libxaw-dev libxtst-dev xorg-cf-files"
subpackages="$pkgname-doc"
@@ -37,8 +36,10 @@ package() {
}
-sha512sums="6a27a659bacc0f78d70c0afab7ae0f6301f0e7f0c9ed12c581fb4fd5040791536aed50c82ccbd703377244156aade80136567276193f2789a23f05c341b6c0e9 xvkbd-4.1.tar.gz
+sha512sums="
+6a27a659bacc0f78d70c0afab7ae0f6301f0e7f0c9ed12c581fb4fd5040791536aed50c82ccbd703377244156aade80136567276193f2789a23f05c341b6c0e9 xvkbd-4.1.tar.gz
1cce82ed48fa93f2df4743513d50efccee5494b22b7ced38d198dc2b566d0c251718ef2e05426201236684c0f63bb27b4d164c36eecd4008cd456a203c85b7f1 10-remove-dependency-on-Xaw3d.patch
e8b265856c3152c231cbded838d1585b57cdca6c53654d72781e52aed7e8d18650202db046497699e47384b0a96deb99521eed4693d1e30757938d08fb2e1e68 20-remove-icon-mask.patch
bd7fbcb8eb0aa9f928048ad94737ed02fcd07c29d4c85371cc32e6c05011252c073b41ea4b6e78294131c0926d84b707a0febb2c214391a46682cd16d8080a23 xvkbd.desktop
-c4465298fab7fdce048d238b949078f0ad3b9f5d8a8b0cbb7424a8877824e188637e37c883805c1a611bec75e3d0855af20675b7a98367d15e9093670cf71cf5 xvkbd.png"
+c4465298fab7fdce048d238b949078f0ad3b9f5d8a8b0cbb7424a8877824e188637e37c883805c1a611bec75e3d0855af20675b7a98367d15e9093670cf71cf5 xvkbd.png
+"
diff --git a/testing/xwaylandvideobridge/APKBUILD b/testing/xwaylandvideobridge/APKBUILD
new file mode 100644
index 00000000000..5f0c6b22216
--- /dev/null
+++ b/testing/xwaylandvideobridge/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: team/kde <bribbers@disroot.org>
+
+# The group tag is just to easily find this APKBUILD by some scripts for automation
+# group=kde-other
+pkgname=xwaylandvideobridge
+pkgver=0.4.0
+pkgrel=1
+# armhf blocked by extra-cmake-modules
+arch="all !armhf"
+url="https://invent.kde.org/system/xwaylandvideobridge"
+pkgdesc="Utility to allow streaming Wayland windows to X applications"
+license="BSD-3-Clause AND LGPL-2.0-or-later"
+makedepends="
+ extra-cmake-modules
+ kcoreaddons-dev
+ ki18n-dev
+ knotifications-dev
+ kpipewire-dev
+ kstatusnotifieritem-dev
+ kwindowsystem-dev
+ qt6-qtbase-dev
+ samurai
+ "
+subpackages="$pkgname-lang"
+_repo_url="https://invent.kde.org/system/xwaylandvideobridge.git"
+source="https://download.kde.org/stable/xwaylandvideobridge/xwaylandvideobridge-$pkgver.tar.xz"
+
+install_if="xwayland xdg-desktop-portal-kde"
+
+build() {
+ cmake -B build -G Ninja \
+ -DBUILD_WITH_QT6=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+d0352b7ce94f1a355d8fd8f42a45436483a87d90da1904295f984012859651472eabbca39df5107793790d48474b6de1c8766e31461d1548134547cbc7dfd5a4 xwaylandvideobridge-0.4.0.tar.xz
+"
diff --git a/testing/yaegi/APKBUILD b/testing/yaegi/APKBUILD
new file mode 100644
index 00000000000..7c8f1fabdb3
--- /dev/null
+++ b/testing/yaegi/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=yaegi
+pkgver=0.16.0
+pkgrel=2
+pkgdesc="Elegant Go interpreter"
+url="https://github.com/traefik/yaegi"
+# 32bit: TestEvalBuiltin test fails
+# riscv64: interp tests time out
+arch="all !x86 !armhf !armv7 !riscv64"
+license="Apache-2.0"
+makedepends="go"
+source="$pkgname-$pkgver.tar.gz::https://github.com/traefik/yaegi/archive/refs/tags/v$pkgver.tar.gz"
+# Required to pass tests.
+# Ref: https://github.com/traefik/yaegi/issues/1523#issuecomment-1465730351
+builddir="$srcdir/src/github.com/traefik/$pkgname"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ export GOPATH="$srcdir"
+
+ mkdir -p "$(dirname $builddir)"
+ mv "$srcdir/$pkgname-$pkgver" "$builddir"/
+
+ default_prepare
+}
+
+build() {
+ go build -v -ldflags "-X main.version=v$pkgver" ./cmd/yaegi/
+}
+
+check() {
+ # extract_test.go:157: cannot find package "math"
+ GOFLAGS="${GOFLAGS/-trimpath/}" go test ./...
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+68962e276c64ec9b681d183b48f179960709397233e4062b8338d35adf526a3ac14ecb52d45e5f0a5aaada206b184bd650a917110db962522bc0b83afd3a60b7 yaegi-0.16.0.tar.gz
+"
diff --git a/testing/yafic/APKBUILD b/testing/yafic/APKBUILD
deleted file mode 100644
index a870c014491..00000000000
--- a/testing/yafic/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=yafic
-pkgver=1.2.2
-pkgrel=4
-pkgdesc="Yet Another File Integrity Checker"
-url="https://www.saddi.com/software/yafic/"
-arch="all"
-license="BSD"
-makedepends="db-dev openssl-dev"
-subpackages="$pkgname-doc"
-source="https://prdownloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
- openssl-1.1.patch
- "
-builddir="$srcdir/$pkgname-$pkgver"
-
-check() {
- cd "$builddir"
- make check
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc/yafic \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- install -Dm0644 yafic.conf.sample "$pkgdir"/etc/yafic/yafic.conf
-}
-
-
-sha512sums="8e05a0838fc2063f1c6bb69d660e9ff5c9fbdc4199e1396232327498c04d037b35307c348d64d928e561875f5cf0ad40c24fd097680cd814b2308608cf738957 yafic-1.2.2.tar.gz
-ffe7781f2f6cff56f5bd32da5329db45122f899d3be9857ec4c51aeeadd90f30fa335cfe9d94116b8cc20cb5384317f7b98eb6165e280419dc3d47abec2f9d9f openssl-1.1.patch"
diff --git a/testing/yafic/openssl-1.1.patch b/testing/yafic/openssl-1.1.patch
deleted file mode 100644
index f11815f1557..00000000000
--- a/testing/yafic/openssl-1.1.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-diff --git a/crypto.c b/crypto.c
-index 43f62ae..8d7f3c4 100644
---- a/crypto.c
-+++ b/crypto.c
-@@ -100,7 +100,7 @@ void
- SignFile (int fd, const char *filename, const char *sigfile)
- {
- const EVP_MD *mdType;
-- EVP_MD_CTX ctx;
-+ EVP_MD_CTX *ctx;
- ssize_t len;
- unsigned char *sig = NULL;
- unsigned int sigLen;
-@@ -111,8 +111,7 @@ SignFile (int fd, const char *filename, const char *sigfile)
- if (!pkey)
- return;
-
-- mdType = EVP_PKEY_type (pkey->type) == EVP_PKEY_DSA ? EVP_dss1 () :
-- EVP_sha1 ();
-+ mdType = EVP_sha1 ();
-
- if (!sigfile) {
- int tlen = strlen (filename) + 4 + 1;
-@@ -122,11 +121,9 @@ SignFile (int fd, const char *filename, const char *sigfile)
- sigfile = tsigfile;
- }
-
--#ifdef HAVE_EVP_MD_CTX_INIT
-- EVP_MD_CTX_init (&ctx);
--#endif
-+ ctx = EVP_MD_CTX_new();
- #ifdef EVP_DIGESTINIT_VOID
-- EVP_SignInit (&ctx, mdType);
-+ EVP_SignInit (ctx, mdType);
- #else
- if (!EVP_SignInit (&ctx, mdType))
- opensslError ("EVP_SignInit");
-@@ -134,7 +131,7 @@ SignFile (int fd, const char *filename, const char *sigfile)
-
- while ((len = read (fd, HashBuffer, HASH_BUFFER_SIZE)) > 0) {
- #ifdef EVP_DIGESTINIT_VOID
-- EVP_SignUpdate (&ctx, HashBuffer, len);
-+ EVP_SignUpdate (ctx, HashBuffer, len);
- #else
- if (!EVP_SignUpdate (&ctx, HashBuffer, len))
- opensslError ("EVP_SignUpdate");
-@@ -146,7 +143,7 @@ SignFile (int fd, const char *filename, const char *sigfile)
-
- sig = mymalloc (EVP_PKEY_size (pkey));
-
-- if (EVP_SignFinal (&ctx, sig, &sigLen, pkey)) {
-+ if (EVP_SignFinal (ctx, sig, &sigLen, pkey)) {
- if ((f = open (sigfile, O_CREAT|O_WRONLY|O_TRUNC, 0600)) != -1) {
- if (write (f, sig, sigLen) != sigLen)
- yaficError (sigfile);
-@@ -162,7 +159,7 @@ SignFile (int fd, const char *filename, const char *sigfile)
- if (sig) free (sig);
- if (tsigfile) free (tsigfile);
- #ifdef HAVE_EVP_MD_CTX_CLEANUP
-- EVP_MD_CTX_cleanup (&ctx);
-+ EVP_MD_CTX_cleanup (ctx);
- #endif
- }
-
-@@ -170,7 +167,7 @@ void
- VerifyFile (int fd, const char *filename, const char *sigfile)
- {
- const EVP_MD *mdType;
-- EVP_MD_CTX ctx;
-+ EVP_MD_CTX *ctx;
- ssize_t len;
- unsigned char *sig = NULL;
- int f;
-@@ -181,8 +178,7 @@ VerifyFile (int fd, const char *filename, const char *sigfile)
- if (!pkey)
- return;
-
-- mdType = EVP_PKEY_type (pkey->type) == EVP_PKEY_DSA ? EVP_dss1 () :
-- EVP_sha1 ();
-+ mdType = EVP_sha1 ();
-
- if (!sigfile) {
- int tlen = strlen (filename) + 4 + 1;
-@@ -195,11 +191,9 @@ VerifyFile (int fd, const char *filename, const char *sigfile)
- fprintf (stderr, "Verifying %s: ", filename);
- fflush (stderr);
-
--#ifdef HAVE_EVP_MD_CTX_INIT
-- EVP_MD_CTX_init (&ctx);
--#endif
-+ ctx = EVP_MD_CTX_new();
- #ifdef EVP_DIGESTINIT_VOID
-- EVP_VerifyInit (&ctx, mdType);
-+ EVP_VerifyInit (ctx, mdType);
- #else
- if (!EVP_VerifyInit (&ctx, mdType)) {
- fprintf (stderr, "Error\n");
-@@ -209,9 +203,9 @@ VerifyFile (int fd, const char *filename, const char *sigfile)
-
- while ((len = read (fd, HashBuffer, HASH_BUFFER_SIZE)) > 0) {
- #ifdef EVP_DIGESTINIT_VOID
-- EVP_VerifyUpdate (&ctx, HashBuffer, len);
-+ EVP_VerifyUpdate (ctx, HashBuffer, len);
- #else
-- if (!EVP_VerifyUpdate (&ctx, HashBuffer, len)) {
-+ if (!EVP_VerifyUpdate (ctx, HashBuffer, len)) {
- fprintf (stderr, "Error\n");
- opensslError ("EVP_SignUpdate");
- }
-@@ -233,7 +227,7 @@ VerifyFile (int fd, const char *filename, const char *sigfile)
-
- close (f);
-
-- ret = EVP_VerifyFinal (&ctx, sig, len, pkey);
-+ ret = EVP_VerifyFinal (ctx, sig, len, pkey);
- if (ret < 0) {
- fprintf (stderr, "Error\n");
- opensslError ("EVP_VerifyFinal");
-@@ -254,7 +248,7 @@ VerifyFile (int fd, const char *filename, const char *sigfile)
- if (sig) free (sig);
- if (tsigfile) free (tsigfile);
- #ifdef HAVE_EVP_MD_CTX_CLEANUP
-- EVP_MD_CTX_cleanup (&ctx);
-+ EVP_MD_CTX_cleanup (ctx);
- #endif
- }
-
-@@ -265,7 +259,7 @@ KeyTypeStr (void)
-
- if (pkey) {
- int bits = EVP_PKEY_bits (pkey);
-- int type = EVP_PKEY_type (pkey->type);
-+ int type = EVP_PKEY_base_id (pkey);
-
- switch (type) {
- case EVP_PKEY_RSA:
diff --git a/testing/yamkix/APKBUILD b/testing/yamkix/APKBUILD
new file mode 100644
index 00000000000..daddb7bcc06
--- /dev/null
+++ b/testing/yamkix/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Galen Abell <galen@galenabell.com>
+# Maintainer: Galen Abell <galen@galenabell.com>
+pkgname=yamkix
+pkgver=0.10.0
+pkgrel=1
+pkgdesc="A python based yaml formatter"
+url="https://github.com/looztra/yamkix"
+arch="noarch"
+license="Apache-2.0"
+depends="python3 py3-ruamel.yaml"
+makedepends="py3-gpep517 py3-poetry-core py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/looztra/yamkix/archive/v$pkgver.tar.gz"
+
+[ "$CARCH" = "riscv64" ] && makedepends="$makedepends $checkdepends"
+
+prepare() {
+ default_prepare
+
+ # Use normal poetry build backend instead of poetry-dynamic-versioning.
+ sed -i "s/^__version__ = .*/__version__ = \"$pkgver\"/" \
+ src/yamkix/__init__.py
+ sed -i \
+ -e "s/^version = .*/version = \"$pkgver\"/" \
+ -e "s/^build-backend = .*/build-backend = \"poetry.core.masonry.api\"/" \
+ pyproject.toml
+}
+
+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="
+3f15ebc687b95c1b44c31146032713d51a87933bc3d10b4c44668a217e99b49e3ac26914434f6885bbdad58e8234a7eb6517b44097a832477b507a9697341ec1 yamkix-0.10.0.tar.gz
+"
diff --git a/testing/yara/APKBUILD b/testing/yara/APKBUILD
deleted file mode 100644
index 487d9fc858c..00000000000
--- a/testing/yara/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Maintainer: Daniel Isaksen <d@duniel.no>
-pkgname=yara
-pkgver=4.0.1
-pkgrel=0
-pkgdesc="The pattern matching swiss knife for malware researchers"
-url="https://virustotal.github.io/yara/"
-arch="all !armhf !armv7" # armhf: tests fail
-license="BSD-3-Clause"
-makedepends="automake file-dev openssl-dev autoconf libtool flex"
-source="$pkgname-$pkgver.tar.gz::https://github.com/VirusTotal/yara/archive/v$pkgver.tar.gz
-remove-test-rules.patch"
-subpackages="$pkgname-doc"
-
-prepare() {
- default_prepare
- autoreconf -fiv
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --with-crypto \
- --enable-magic
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm 644 COPYING "$pkgdir/usr/share/licenses/$pkgname"/COPYING
- install -Dm 644 README.md "$pkgdir/usr/share/doc/$pkgname"/README.md
- cp -r docs "$pkgdir/usr/share/doc/$pkgname"
-}
-
-sha512sums="5d91b8df242299084916d9634e950359e7a9df26a7964ca2ca52cecf79a969d5aefd1c2dd89f5e762cf3a3c907cd616bd738b540f8600ad94522cbc3f1b031d3 yara-4.0.1.tar.gz
-dd3de272614fdfe2ee4658eacacdc54213af44879c1756f2432294221f5fba23e8de028da43f1d47e69c9209266f7d49a6619d7e1af9ef71bc14d07549ad3df1 remove-test-rules.patch"
diff --git a/testing/yara/remove-test-rules.patch b/testing/yara/remove-test-rules.patch
deleted file mode 100644
index 6d8444f451d..00000000000
--- a/testing/yara/remove-test-rules.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 062b77f..5bde105 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -33,8 +33,6 @@ test_arena_SOURCES = tests/test-arena.c
- test_arena_LDADD = libyara/.libs/libyara.a
- test_atoms_SOURCES = tests/test-atoms.c tests/util.c libyara/atoms.c
- test_atoms_LDADD = libyara/.libs/libyara.a
--test_rules_SOURCES = tests/test-rules.c tests/util.c
--test_rules_LDADD = libyara/.libs/libyara.a
- test_pe_SOURCES = tests/test-pe.c tests/util.c
- test_pe_LDADD = libyara/.libs/libyara.a
- test_elf_SOURCES = tests/test-elf.c tests/util.c
-@@ -59,7 +57,6 @@ check_PROGRAMS = \
- test-alignment \
- test-atoms \
- test-api \
-- test-rules \
- test-pe \
- test-elf \
- test-version \
diff --git a/testing/yarr/APKBUILD b/testing/yarr/APKBUILD
new file mode 100644
index 00000000000..9bf86b1b66d
--- /dev/null
+++ b/testing/yarr/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=yarr
+pkgver=2.4
+pkgrel=5
+pkgdesc="Yarr is a web-based feed aggregator which can be used both as a desktop application and a personal self-hosted server"
+url="https://github.com/nkanaev/yarr/"
+# fails tests on 32-bit
+arch="all !x86 !armhf !armv7"
+license="MIT"
+makedepends="go sqlite-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/nkanaev/yarr/archive/refs/tags/v$pkgver/yarr-$pkgver.tar.gz
+ yarr.initd
+ yarr.confd
+ "
+
+build() {
+ go build -tags "sqlite_foreign_keys libsqlite3 release" -ldflags="-X 'main.Version=$pkgver'" -o yarr src/main.go
+}
+
+check() {
+ cd src
+ go test -tags "sqlite_foreign_keys libsqlite3 release" ./...
+
+}
+
+package() {
+ install -m755 -D yarr "$pkgdir"/usr/bin/"$pkgname"
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname
+
+ mkdir -p "$pkgdir"/usr/share/doc/"$pkgname"
+ cp -a doc "$pkgdir"/usr/share/doc/"$pkgname"
+}
+
+sha512sums="
+8a45012453db6ff5df3256b5bdf384fe426fb5ca408d9167669f28c7d948c3d94c7fc4b796d08b1d45c74e0df9e96b14ef16a0fa2a320d87510b49f92ccae849 yarr-2.4.tar.gz
+9373b444bd679b98b429fe935e6c397057cc834db477f3c2e1d75b07a8e5a8634de2a2159fa9157c479d1d1856cfa770e73328e58ce07ba2cb92d7ab7f1fe827 yarr.initd
+e2858394556bf6497969354c2a2c0514c334e3d745d0425fc606b44fdc68013a25df093160b6d6fcbec8e98ee623a3add0e51d8d9664397e27dc36f33d965be4 yarr.confd
+"
diff --git a/testing/yarr/yarr.confd b/testing/yarr/yarr.confd
new file mode 100755
index 00000000000..335b389fae4
--- /dev/null
+++ b/testing/yarr/yarr.confd
@@ -0,0 +1,12 @@
+output_log=/var/log/yarr.log
+error_log=/var/log/yarr.log
+
+export YARR_ADDR=0.0.0.0:7070
+export YARR_DB=/var/lib/yarr/yarr.db
+
+# uncomment and configure for serving over https
+# export YARR_CERTFILE=
+# export YARR_KEYFILE=
+
+# File containing username and password, not required
+# export YARR_AUTHFILE=
diff --git a/testing/yarr/yarr.initd b/testing/yarr/yarr.initd
new file mode 100755
index 00000000000..3a7b6fe0ac9
--- /dev/null
+++ b/testing/yarr/yarr.initd
@@ -0,0 +1,17 @@
+#!/sbin/openrc-run
+
+name=yarr
+command="/usr/bin/yarr"
+command_user="yarr:yarr"
+command_background=true
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need net localmount
+ after firewall
+}
+
+start_pre() {
+ checkpath -f "$output_log" -o "$command_user"
+ checkpath -f "$error_log" -o "$command_user"
+}
diff --git a/testing/yarr/yarr.pre-install b/testing/yarr/yarr.pre-install
new file mode 100755
index 00000000000..c4cbf48eee6
--- /dev/null
+++ b/testing/yarr/yarr.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S yarr 2>/dev/null
+adduser -S -D -h /var/lib/yarr -s /sbin/nologin -G yarr -g yarr yarr 2>/dev/null
+
+exit 0
diff --git a/testing/yaru-common/APKBUILD b/testing/yaru-common/APKBUILD
new file mode 100644
index 00000000000..d0232b74216
--- /dev/null
+++ b/testing/yaru-common/APKBUILD
@@ -0,0 +1,334 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: Brandon Boese <brandonboese@protonmail.com>
+pkgname=yaru-common
+_pkgname=yaru
+pkgver=23.10.0
+_minorpkgver=-0ubuntu2
+pkgrel=0
+pkgdesc="Ubuntu community theme"
+options="!check" # No testsuite
+url="https://community.ubuntu.com/c/desktop/theme-refresh"
+arch="noarch"
+license="GPL-3.0-or-later AND CC-BY-SA-4.0"
+makedepends="
+ bash
+ coreutils
+ dbus
+ glib-dev
+ meson
+ sassc
+ xvfb-run
+ "
+subpackages="
+ $_pkgname-icon-theme-bark:_icon_theme_bark
+ $_pkgname-icon-theme-blue:_icon_theme_blue
+ $_pkgname-icon-theme-magenta:_icon_theme_magenta
+ $_pkgname-icon-theme-mate:_icon_theme_mate
+ $_pkgname-icon-theme-olive:_icon_theme_olive
+ $_pkgname-icon-theme-prussiangreen:_icon_theme_prussiangreen
+ $_pkgname-icon-theme-purple:_icon_theme_purple
+ $_pkgname-icon-theme-red:_icon_theme_red
+ $_pkgname-icon-theme-sage:_icon_theme_sage
+ $_pkgname-icon-theme-viridian:_icon_theme_viridian
+ $_pkgname-icon-theme:_icon_theme
+ $_pkgname-schemas:_schemas
+ $_pkgname-shell:_shell
+ $_pkgname-sounds:_sounds
+ $_pkgname-theme-bark:_theme_bark
+ $_pkgname-theme-blue:_theme_blue
+ $_pkgname-theme-hdpi:_theme_hdpi
+ $_pkgname-theme-magenta:_theme_magenta
+ $_pkgname-theme-mate:_theme_mate
+ $_pkgname-theme-olive:_theme_olive
+ $_pkgname-theme-prussiangreen:_theme_prussiangreen
+ $_pkgname-theme-purple:_theme_purple
+ $_pkgname-theme-red:_theme_red
+ $_pkgname-theme-sage:_theme_sage
+ $_pkgname-theme-viridian:_theme_viridian
+ $_pkgname-theme:_theme
+ "
+source="$_pkgname-$pkgver.tar.gz::https://github.com/ubuntu/yaru/archive/$pkgver$_minorpkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver$_minorpkgver"
+
+build() {
+ abuild-meson \
+ -Dmate=true \
+ -Dmate-dark=true \
+ -Dubuntu-unity=true \
+ -Dxfwm4=true \
+ -Dcinnamon=true \
+ -Dcinnamon-dark=true \
+ -Dcinnamon-shell=true \
+ . output
+ meson compile -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+_icon_theme_bark() {
+ depends=""
+ pkgdesc="Bark variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-bark "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-bark-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_bark() {
+ depends="yaru-common"
+ pkgdesc="Bark variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-bark \
+ "$subpkgdir"/usr/share/themes/Yaru-bark
+ mv "$pkgdir"/usr/share/themes/Yaru-bark-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-bark-dark
+}
+
+_icon_theme_blue() {
+ depends=""
+ pkgdesc="Blue variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-blue "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-blue-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_blue() {
+ depends="yaru-common"
+ pkgdesc="Blue variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-blue \
+ "$subpkgdir"/usr/share/themes/Yaru-blue
+ mv "$pkgdir"/usr/share/themes/Yaru-blue-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-blue-dark
+}
+
+_theme_hdpi() {
+ depends="yaru-common"
+ pkgdesc="Hdpi variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-hdpi \
+ "$subpkgdir"/usr/share/themes/Yaru-hdpi
+ mv "$pkgdir"/usr/share/themes/Yaru-dark-hdpi \
+ "$subpkgdir"/usr/share/themes/Yaru-dark-hdpi
+ mv "$pkgdir"/usr/share/themes/Yaru-xhdpi \
+ "$subpkgdir"/usr/share/themes/Yaru-xhdpi
+ mv "$pkgdir"/usr/share/themes/Yaru-dark-xhdpi \
+ "$subpkgdir"/usr/share/themes/Yaru-dark-xhdpi
+}
+
+_icon_theme_magenta() {
+ depends=""
+ pkgdesc="Magenta variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-magenta "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-magenta-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_magenta() {
+ depends="yaru-common"
+ pkgdesc="Magenta variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-magenta \
+ "$subpkgdir"/usr/share/themes/Yaru-magenta
+ mv "$pkgdir"/usr/share/themes/Yaru-magenta-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-magenta-dark
+}
+
+_icon_theme_mate() {
+ depends=""
+ pkgdesc="Mate variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-mate "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-mate-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_mate() {
+ depends="yaru-common"
+ pkgdesc="Mate variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-mate \
+ "$subpkgdir"/usr/share/themes/Yaru-mate
+ mv "$pkgdir"/usr/share/themes/Yaru-mate-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-mate-dark
+}
+
+_icon_theme_olive() {
+ depends=""
+ pkgdesc="Olive variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-olive "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-olive-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_olive() {
+ depends="yaru-common"
+ pkgdesc="Olive variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-olive \
+ "$subpkgdir"/usr/share/themes/Yaru-olive
+ mv "$pkgdir"/usr/share/themes/Yaru-olive-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-olive-dark
+}
+
+_icon_theme_prussiangreen() {
+ depends=""
+ pkgdesc="Prussian green variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-prussiangreen "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-prussiangreen-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_prussiangreen() {
+ depends="yaru-common"
+ pkgdesc="Prussian green variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-prussiangreen \
+ "$subpkgdir"/usr/share/themes/Yaru-prussiangreen
+ mv "$pkgdir"/usr/share/themes/Yaru-prussiangreen-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-prussiangreen-dark
+}
+
+_icon_theme_purple() {
+ depends=""
+ pkgdesc="Purple variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-purple "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-purple-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_purple() {
+ depends="yaru-common"
+ pkgdesc="Purple variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-purple \
+ "$subpkgdir"/usr/share/themes/Yaru-purple
+ mv "$pkgdir"/usr/share/themes/Yaru-purple-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-purple-dark
+}
+
+_icon_theme_red() {
+ depends=""
+ pkgdesc="Red variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-red "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-red-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_red() {
+ depends="yaru-common"
+ pkgdesc="Red variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-red \
+ "$subpkgdir"/usr/share/themes/Yaru-red
+ mv "$pkgdir"/usr/share/themes/Yaru-red-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-red-dark
+}
+
+_icon_theme_sage() {
+ depends=""
+ pkgdesc="Sage variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-sage "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-sage-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_sage() {
+ depends="yaru-common"
+ pkgdesc="Sage variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-sage \
+ "$subpkgdir"/usr/share/themes/Yaru-sage
+ mv "$pkgdir"/usr/share/themes/Yaru-sage-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-sage-dark
+}
+
+_icon_theme_viridian() {
+ depends=""
+ pkgdesc="Viridian variant of Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-viridian "$subpkgdir"/usr/share/icons
+ mv "$pkgdir"/usr/share/icons/Yaru-viridian-dark "$subpkgdir"/usr/share/icons
+}
+
+_theme_viridian() {
+ depends="yaru-common"
+ pkgdesc="Viridian variant of Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share/themes
+ mv "$pkgdir"/usr/share/themes/Yaru-viridian \
+ "$subpkgdir"/usr/share/themes/Yaru-viridian
+ mv "$pkgdir"/usr/share/themes/Yaru-viridian-dark \
+ "$subpkgdir"/usr/share/themes/Yaru-viridian-dark
+}
+
+_schemas() {
+ depends="yaru-common yaru-icon-theme yaru-theme"
+ pkgdesc="Schema files for Yaru theme"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/share/glib-2.0 "$subpkgdir"/usr/share
+}
+
+_shell() {
+ depends="yaru-common yaru-icon-theme yaru-schemas yaru-sounds yaru-theme"
+ pkgdesc="Yaru shell theme for the GNOME Desktop Environment"
+
+ install_if="yaru-common=$pkgver-r$pkgrel gnome-shell"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/share/gnome-shell "$subpkgdir"/usr/share
+
+ mv "$pkgdir"/usr/share/wayland-sessions \
+ "$pkgdir"/usr/share/xsessions \
+ "$subpkgdir"/usr/share
+}
+
+_sounds() {
+ depends=""
+ pkgdesc="Yaru sound resources"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/share/sounds "$subpkgdir"/usr/share
+}
+
+_icon_theme() {
+ depends=""
+ pkgdesc="Yaru icon theme"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/share/icons "$subpkgdir"/usr/share
+}
+
+_theme() {
+ depends="yaru-common"
+ pkgdesc="Yaru, the Ubuntu community theme"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/share/themes \
+ "$subpkgdir"/usr/share
+}
+
+sha512sums="
+4047df97026d79f4fcd541a0afea6c39294956761c9face9d5506cd188b05b52c6d627d2e25226bce09a6dcb682f4e1aff7411dc69ae4770c8cd9c19783f30de yaru-23.10.0.tar.gz
+"
diff --git a/testing/yass/APKBUILD b/testing/yass/APKBUILD
new file mode 100644
index 00000000000..c6a5f0df239
--- /dev/null
+++ b/testing/yass/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=yass
+pkgver=2.5.0
+pkgrel=0
+pkgdesc="Karaoke Editor"
+url="https://yass-along.com/"
+# blocked by openjdk11-jre-headless
+arch="all !x86 !armhf !armv7 !riscv64"
+license="GPL-3.0-or-later"
+depends="openjdk11-jre"
+makedepends="apache-ant openjdk8"
+source="https://github.com/SarutaSan72/Yass/archive/refs/tags/$pkgver/yass-$pkgver.tar.gz
+ yass
+ "
+builddir="$srcdir/Yass-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ JAVA_HOME="/usr/lib/jvm/java-8-openjdk" ant -f build-jar.xml compile jar
+}
+
+package() {
+ install -Dm644 "$builddir"/release/yass-$pkgver.jar "$pkgdir"/usr/share/yass/yass.jar
+ install -Dm755 "$srcdir"/yass "$pkgdir"/usr/bin/yass
+}
+
+sha512sums="
+0d64caf7c34b0bb16473025941baff8f91573020cddea7a128386159f0580b955361a0afdd31c00a64779f360b4f46131ee43384011f8d09d25c831341cbd2fd yass-2.5.0.tar.gz
+7f8fb663aeef66e1659ac3e4bafa0aec9074e4caa2bf7894be28e33a6efbea1199cb47d19068f6637269636c8ab5e254486fad2113fad854d70df0dc78b7a305 yass
+"
diff --git a/testing/yass/build.xml b/testing/yass/build.xml
new file mode 100644
index 00000000000..c3246dfe799
--- /dev/null
+++ b/testing/yass/build.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<project default="jar" name="Create Yass Executables">
+ <!-- setup -->
+ <property name="yass.version" value="2.3.0" />
+
+ <!-- javac -sourcepath src -classpath resources -d bin.old **/*.java -->
+ <target name="compile">
+ <mkdir dir="bin"/>
+ <javac srcdir="src" destdir="bin" classpath="resources"/>
+ </target>
+
+ <target name="jar" depends="compile">
+ <jar destfile="./release/yass-${yass.version}.jar" filesetmanifest="mergewithoutmain">
+ <manifest>
+ <attribute name="Main-Class" value="yass.YassMain"/>
+ <attribute name="Class-Path" value="."/>
+ </manifest>
+ <fileset dir="./bin"/>
+ <fileset dir="./resources"/>
+ <fileset dir="./src" excludes="**/*.java"/>
+ </jar>
+ </target>
+</project>
diff --git a/testing/yass/yass b/testing/yass/yass
new file mode 100644
index 00000000000..1d8bd42455d
--- /dev/null
+++ b/testing/yass/yass
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/lib/jvm/java-11-openjdk/bin/java -jar /usr/share/yass/yass.jar "$@"
diff --git a/testing/yazi/APKBUILD b/testing/yazi/APKBUILD
new file mode 100644
index 00000000000..f135367246c
--- /dev/null
+++ b/testing/yazi/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=yazi
+pkgver=0.2.4
+pkgrel=1
+pkgdesc="Blazing fast terminal file manager written in Rust, based on async I/O"
+url="https://yazi-rs.github.io"
+arch="all"
+license="MIT"
+makedepends="
+ cargo
+ cargo-auditable
+ lua5.4-dev
+"
+subpackages="$pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+"
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/sxyazi/yazi/archive/refs/tags/v$pkgver.tar.gz
+ system-lua.patch
+"
+options="net"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ YAZI_GEN_COMPLETIONS=true cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/yazi "$pkgdir"/usr/bin/yazi
+ install -Dm644 yazi-boot/completions/yazi.bash "$pkgdir"/usr/share/bash-completion/completions/yazi
+ install -Dm644 yazi-boot/completions/yazi.fish "$pkgdir"/usr/share/fish/vendor_completions.d/yazi.fish
+ install -Dm644 yazi-boot/completions/_yazi "$pkgdir"/usr/share/zsh/site-functions/_yazi
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
+
+sha512sums="
+185d0b35489907fae68b41381fbbbdcdded7536d6084bbd897e0c49f19e2e999b7a98537a840adbf768995af793727ad6607f026df5de2263c6469c72eac5e5a yazi-0.2.4.tar.gz
+6aea3e201908144142ae2b8bf21c1c8bef8721ed876ca77749742a87d6d5ace0bb2266e016c2656d72a92cae13cb82d14b4683ed8393622c79b93966606e9bb2 system-lua.patch
+"
diff --git a/testing/yazi/system-lua.patch b/testing/yazi/system-lua.patch
new file mode 100644
index 00000000000..7be8002f98a
--- /dev/null
+++ b/testing/yazi/system-lua.patch
@@ -0,0 +1,154 @@
+--- a/yazi-fm/Cargo.toml
++++ b/yazi-fm/Cargo.toml
+@@ -23,7 +23,7 @@
+ crossterm = { version = "^0", features = [ "event-stream" ] }
+ fdlimit = "^0"
+ futures = "^0"
+-mlua = { version = "^0", features = [ "lua54", "vendored" ] }
++mlua = { version = "^0", features = [ "lua54" ] }
+ ratatui = "^0"
+ tokio = { version = "^1", features = [ "parking_lot" ] }
+ unicode-width = "^0"
+--- a/yazi-plugin/Cargo.toml
++++ b/yazi-plugin/Cargo.toml
+@@ -19,7 +19,7 @@
+ crossterm = "^0"
+ futures = "^0"
+ md-5 = "^0"
+-mlua = { version = "^0", features = [ "lua54", "vendored", "serialize", "macros", "async" ] }
++mlua = { version = "^0", features = [ "lua54", "serialize", "macros", "async" ] }
+ parking_lot = "^0"
+ ratatui = "^0"
+ serde = "^1"
+--- a/yazi-proxy/Cargo.toml
++++ b/yazi-proxy/Cargo.toml
+@@ -14,5 +14,5 @@
+
+ # External dependencies
+ anyhow = "^1"
+-mlua = { version = "^0", features = [ "lua54", "vendored" ] }
++mlua = { version = "^0", features = [ "lua54" ] }
+ tokio = { version = "^1", features = [ "parking_lot" ] }
++++ a/Cargo.lock
+--- b/Cargo.lock
+@@ -611,16 +611,6 @@
+ ]
+
+ [[package]]
+-name = "errno"
+-version = "0.3.8"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+-dependencies = [
+- "libc",
+- "windows-sys 0.52.0",
+-]
+-
+-[[package]]
+ name = "error-code"
+ version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -896,15 +886,6 @@
+ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+ [[package]]
+-name = "home"
+-version = "0.5.9"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+-dependencies = [
+- "windows-sys 0.52.0",
+-]
+-
+-[[package]]
+ name = "iana-time-zone"
+ version = "0.1.60"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1104,12 +1085,6 @@
+ ]
+
+ [[package]]
+-name = "linux-raw-sys"
+-version = "0.4.13"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+-
+-[[package]]
+ name = "lock_api"
+ version = "0.4.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1135,25 +1110,6 @@
+ ]
+
+ [[package]]
+-name = "lua-src"
+-version = "546.0.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2da0daa7eee611a4c30c8f5ee31af55266e26e573971ba9336d2993e2da129b2"
+-dependencies = [
+- "cc",
+-]
+-
+-[[package]]
+-name = "luajit-src"
+-version = "210.5.6+9cc2e42"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "23b365d859c9ffc187f48bb3e25ec80c3b40cf3f68f53544f4adeaee70554157"
+-dependencies = [
+- "cc",
+- "which",
+-]
+-
+-[[package]]
+ name = "malloc_buf"
+ version = "0.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -1232,8 +1188,6 @@
+ dependencies = [
+ "cc",
+ "cfg-if",
+- "lua-src",
+- "luajit-src",
+ "pkg-config",
+ ]
+
+@@ -1651,19 +1605,6 @@
+ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+ [[package]]
+-name = "rustix"
+-version = "0.38.31"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+-dependencies = [
+- "bitflags 2.4.2",
+- "errno",
+- "libc",
+- "linux-raw-sys",
+- "windows-sys 0.52.0",
+-]
+-
+-[[package]]
+ name = "rustversion"
+ version = "1.0.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -2426,19 +2367,6 @@
+ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
+-
+-[[package]]
+-name = "which"
+-version = "6.0.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
+-dependencies = [
+- "either",
+- "home",
+- "once_cell",
+- "rustix",
+- "windows-sys 0.52.0",
+-]
+
+ [[package]]
+ name = "winapi"
diff --git a/testing/ydcv/APKBUILD b/testing/ydcv/APKBUILD
index 1af1119e820..385bc97f59b 100644
--- a/testing/ydcv/APKBUILD
+++ b/testing/ydcv/APKBUILD
@@ -1,20 +1,20 @@
# Contributor: Ivan Tham <pickfire@riseup.net>
-# Maintainer: Ivan Tham <pickfire@riseup.net>
+# Maintainer:
pkgname=ydcv
pkgver=0.7
-pkgrel=1
+pkgrel=7
pkgdesc="YouDao Console Version - Chinese online translate"
url="https://github.com/felixonmars/ydcv"
arch="noarch"
license="GPL-3.0-only"
depends="python3"
-makedepends="py3-setuptools"
-subpackages="$pkgname-zsh-completion"
+makedepends="py3-setuptools py3-setuptools_scm"
+subpackages="$pkgname-zsh-completion $pkgname-pyc"
source="ydcv-$pkgver.tar.gz::https://github.com/felixonmars/ydcv/archive/$pkgver.tar.gz"
options="!check"
build() {
- git init
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
python3 setup.py build
}
@@ -23,4 +23,7 @@ package() {
install -Dm644 "$builddir"/contrib/zsh_completion \
-t "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
}
-sha512sums="04277b2cc586bf19b0cd8cb52c0287ac75b235f72cbab19358a962f14de74f042cc90da1ec7ded06e3ce07a4694a6511599ce9213485ed0e4d40a84d296663bf ydcv-0.7.tar.gz"
+
+sha512sums="
+04277b2cc586bf19b0cd8cb52c0287ac75b235f72cbab19358a962f14de74f042cc90da1ec7ded06e3ce07a4694a6511599ce9213485ed0e4d40a84d296663bf ydcv-0.7.tar.gz
+"
diff --git a/testing/yices2/APKBUILD b/testing/yices2/APKBUILD
new file mode 100644
index 00000000000..70a6be0d242
--- /dev/null
+++ b/testing/yices2/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=yices2
+pkgver=2.6.4
+pkgrel=0
+pkgdesc="Solver for Satisfiability Modulo Theories (SMT) problems"
+url="https://github.com/SRI-CSL/yices2"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="autoconf automake gperf gmp-dev"
+checkdepends="bash"
+subpackages="$pkgname-dev $pkgname-libs"
+source="https://github.com/SRI-CSL/yices2/archive/refs/tags/Yices-$pkgver/yices2-$pkgver.tar.gz"
+builddir="$srcdir/yices2-Yices-$pkgver"
+
+prepare() {
+ default_prepare
+ NOCONFIGURE=1 autoreconf -vfi
+}
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --enable-thread-safety
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/lib/*.a
+}
+
+sha512sums="
+d8102c41fda0e200fd1336ae317b516d2797d10c187b8f7aecf0c9b08b4b487b90bef8c358099b2da51c0367326939f9610fd4e6d5a41a392cf1114bd04b8763 yices2-2.6.4.tar.gz
+"
diff --git a/testing/yodl/APKBUILD b/testing/yodl/APKBUILD
index c8931362361..69e0c6b6e04 100644
--- a/testing/yodl/APKBUILD
+++ b/testing/yodl/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Shiz <hi@shiz.me>
pkgname=yodl
pkgver=4.02.00
-pkgrel=0
+pkgrel=1
pkgdesc="Pre-document language and tools to process it"
url="https://fbb-git.github.io/yodl/"
arch="all"
diff --git a/testing/yoe-kiosk-browser/APKBUILD b/testing/yoe-kiosk-browser/APKBUILD
new file mode 100644
index 00000000000..37197fa178c
--- /dev/null
+++ b/testing/yoe-kiosk-browser/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Khem Raj <raj.khem@gmail.com>
+# Maintainer: Khem Raj <raj.khem@gmail.com>
+pkgname=yoe-kiosk-browser
+pkgver=0_git20231118
+_gitrev=6e94c4013f4f636a9d65561243e675dff0ae381d
+pkgrel=0
+pkgdesc="Qt6 WebEngine (Chromium) based browser designed for embedded kiosk (full screen, single app) applications"
+url="https://github.com/YoeDistro/yoe-kiosk-browser"
+arch="aarch64 x86_64"
+license="BSD-3-Clause"
+depends="qt6-qtbase qt6-qtdeclarative qt6-qtwebengine qt6-qtwebview qt6-qtvirtualkeyboard"
+makedepends="cmake ninja qt6-qtbase-dev qt6-qtdeclarative-dev qt6-qtwebengine-dev qt6-qtwebview-dev"
+source="yoe-kiosk-browser-$_gitrev.tar.gz::https://github.com/YoeDistro/yoe-kiosk-browser/archive/$_gitrev.tar.gz"
+builddir="$srcdir/$pkgname-$_gitrev"
+options="!check" # no test suite
+
+build() {
+ cmake -B build -G Ninja
+ cmake --build build
+}
+
+package() {
+ install -Dm755 build/yoe-kiosk-browser -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+adc85d8733c9476cd8be5eeeec2af40f494fbde51d7b72f07a299b2209e057e73f97dfb60cb820e3fec9976df06e179e5b79389c2e511d1791df63f9e0545e21 yoe-kiosk-browser-6e94c4013f4f636a9d65561243e675dff0ae381d.tar.gz
+"
diff --git a/testing/yoshimi/APKBUILD b/testing/yoshimi/APKBUILD
new file mode 100644
index 00000000000..763caddcd6e
--- /dev/null
+++ b/testing/yoshimi/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=yoshimi
+pkgver=2.3.2
+pkgrel=0
+pkgdesc="Sophisticated software synthesizer"
+url="https://yoshimi.github.io/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="fltk-fluid"
+makedepends="
+ alsa-lib-dev
+ argp-standalone
+ cairo-dev
+ cmake
+ fftw-dev
+ fltk-dev
+ fontconfig-dev
+ jack-dev
+ lv2-dev
+ mesa-dev
+ mxml-dev
+ readline-dev
+ samurai
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/Yoshimi/yoshimi/archive/$pkgver/yoshimi-$pkgver.tar.gz"
+options="!check" # not sure if they even exist
+
+build() {
+ cmake -B build -G Ninja -S src \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+6ddca4a5cffc609880fcbb625eca471b9926cb3cc0bef9f349ef3fafe6280f5e3957e62db0c103856c680d0a3dde0b15225569d7171553ae74ee4c78c848b598 yoshimi-2.3.2.tar.gz
+"
diff --git a/testing/yosys/APKBUILD b/testing/yosys/APKBUILD
new file mode 100644
index 00000000000..17815d7c5ed
--- /dev/null
+++ b/testing/yosys/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Dominika Liberda <ja@sdomi.pl>
+# Maintainer: Dominika Liberda <ja@sdomi.pl>
+pkgname=yosys
+pkgver=0.36
+pkgrel=3
+pkgdesc="Yosys Open SYnthesis Suite"
+url="https://yosyshq.net"
+# doesn't build
+arch="all !s390x !riscv64"
+license="ISC"
+depends="
+ abc
+ "
+makedepends="
+ bash
+ bison
+ boost-dev
+ clang
+ flex
+ gawk
+ graphviz-dev
+ libffi-dev
+ lld
+ protobuf-dev
+ python3
+ readline-dev
+ tcl-dev
+ zlib-dev
+ "
+subpackages="$pkgname-dev py3-$pkgname:py3:noarch"
+source="https://github.com/YosysHQ/yosys/archive/refs/tags/yosys-$pkgver.tar.gz
+ "
+builddir="$srcdir/$pkgname-$pkgname-$pkgver/"
+options="!check" # current yosys employee confirmed those dont work
+
+build() {
+ export CFLAGS="$CFLAGS -flto=thin"
+ export CXXFLAGS="$CXXFLAGS -flto=thin"
+ export LDFLAGS="$LDFLAGS -fuse-ld=lld"
+
+ local pyver="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
+
+ cat > Makefile.conf <<- EOF
+ CONFIG:=clang
+ PREFIX:=/usr
+ ABCEXTERNAL:=abc
+ BOOST_PYTHON_LIB:=-lpython$pyver -lboost_python${pyver/./}
+ ENABLE_LIBYOSYS:=1
+ ENABLE_NDEBUG:=1
+ ENABLE_PROTOBUF:=1
+ ENABLE_PYOSYS:=1
+ ENABLE_ABC:=1
+ EOF
+
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ # link python to the global yosys
+ ln -sfv /usr/lib/yosys/libyosys.so "$pkgdir"/usr/lib/python3*/site-packages/pyosys/libyosys.so
+}
+
+py3() {
+ pkgdesc="$pkgdesc (python module)"
+ depends="python3 $pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/python3*
+}
+
+sha512sums="
+3d496ab7efba75b6a8e3ded30d62214e868c52b7f0609f214ea4a336dcb9e38343fc3ae0ddea18c026028989d4caee06efa3822210d8e88e159a3fca28fcae4e yosys-0.36.tar.gz
+"
diff --git a/testing/youki/APKBUILD b/testing/youki/APKBUILD
new file mode 100644
index 00000000000..d085b73dc34
--- /dev/null
+++ b/testing/youki/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=youki
+pkgver=0.3.1
+pkgrel=0
+pkgdesc="Container runtime written in Rust"
+url="https://github.com/containers/youki"
+# ppc64le: syscalls crate inline asm is unstable for ppc64le
+# s390x: nix crate lacks support
+# riscv64: syscalls crate lacks support
+# armv7: need for rustc to catch to up pass thumb-mode properly
+arch="all !armv7 !ppc64le !s390x !riscv64"
+license="Apache-2.0"
+makedepends="
+ cargo
+ cargo-auditable
+ dbus-dev
+ libseccomp-dev
+ zlib-dev
+ "
+subpackages="$pkgname-dbg"
+source="https://github.com/containers/youki/archive/v$pkgver/youki-$pkgver.tar.gz"
+options="!check" # FIXME: some tests fail
+
+# prioritize crun and runc
+provides="oci-runtime"
+provider_priority=80
+
+# Disable systemd_cgroups
+_cargo_opts='--frozen --no-default-features --features=libcgroups/v1,libcgroups/v2'
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build $_cargo_opts --release
+}
+
+check() {
+ cargo test $_cargo_opts
+}
+
+package() {
+ install -D -m755 target/release/youki -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+6c73f406e1717c45a45d1beba2ceb26b9ffd965880f517b72aa4753504fd8e40f502aea6587429c17f6dcff3b5fda38ed496f0794f35bb65f003ece48be85e6c youki-0.3.1.tar.gz
+"
diff --git a/testing/youtube-tui/APKBUILD b/testing/youtube-tui/APKBUILD
new file mode 100644
index 00000000000..599152c0493
--- /dev/null
+++ b/testing/youtube-tui/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Cowington Post <cowingtonpost@gmail.com>
+pkgname=youtube-tui
+pkgver=0.8.0
+pkgrel=0
+pkgdesc="Aesthetically pleasing YouTube TUI written in Rust"
+url="https://siriusmart.github.io/youtube-tui/"
+arch="all"
+license="GPL-3.0-or-later"
+makedepends="cargo cargo-auditable mpv-dev libsixel-dev"
+source="https://github.com/Siriusmart/youtube-tui/archive/v$pkgver/youtube-tui-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+package() {
+ install -Dm755 target/release/youtube-tui -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+85a6b164b82a965f5b95a451ebe4175114db89b3a7ce9741e3b373e677cd961cc582404414b60e7ca0a0ebe2f997d1fab63a24009285db33257368c8289df211 youtube-tui-0.8.0.tar.gz
+"
diff --git a/testing/youtube-viewer/APKBUILD b/testing/youtube-viewer/APKBUILD
new file mode 100644
index 00000000000..a9b368148ca
--- /dev/null
+++ b/testing/youtube-viewer/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=youtube-viewer
+pkgver=3.11.1
+pkgrel=0
+pkgdesc="Lightweight YouTube client"
+url="https://github.com/trizen/youtube-viewer"
+arch="noarch"
+license="Artistic-2.0"
+makedepends="perl-module-build"
+depends="
+ perl-data-dump
+ perl-json
+ perl-libwww
+ perl-lwp-protocol-https
+ perl-term-readline-gnu
+ perl-unicode-linebreak
+ "
+checkdepends="perl-test-pod"
+subpackages="$pkgname-doc $pkgname-gtk"
+source="$pkgname-$pkgver.tar.gz::https://github.com/trizen/youtube-viewer/archive/$pkgver.tar.gz"
+
+build() {
+ perl Build.PL --gtk3 \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+}
+
+gtk() {
+ depends="$pkgname perl-gtk3 perl-file-sharedir"
+ pkgdesc="$pkgdesc (GTK interface)"
+
+ amove "usr/bin/gtk*-youtube-viewer"
+ amove "usr/share/perl5/vendor_perl/auto/share/dist/WWW-YoutubeViewer/gtk*"
+ amove usr/share/perl5/vendor_perl/auto/share/dist/WWW-YoutubeViewer/icons
+}
+
+sha512sums="
+4ad037bf0cd15405ad7eebfc3de18d7980759951a5dd5d773536558bd04c57fbb2219dd84a3f92bb738cefa9f0caec5814b5af77d4b57f4b49a612a7ace52524 youtube-viewer-3.11.1.tar.gz
+"
diff --git a/testing/ytmdl/APKBUILD b/testing/ytmdl/APKBUILD
new file mode 100644
index 00000000000..c2f3805a1a0
--- /dev/null
+++ b/testing/ytmdl/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Dmitry Zakharchenko <dmitz@disroot.org>
+# Maintainer: Dmitry Zakharchenko <dmitz@disroot.org>
+pkgname=ytmdl
+pkgver=2023.11.26
+pkgrel=1
+pkgdesc="Download songs with metadata from Youtube"
+url="https://github.com/deepjyoti30/ytmdl"
+arch="noarch !armhf !ppc64le" # limited by py3-youtube-search
+license="MIT"
+depends="python3
+ py3-beautifulsoup4
+ py3-colorama
+ py3-downloader-cli
+ py3-ffmpeg
+ py3-itunespy
+ py3-lxml
+ py3-musicbrainzngs
+ py3-mutagen
+ py3-pydes
+ py3-pysocks
+ py3-requests
+ py3-rich
+ py3-simber
+ py3-spotipy
+ py3-unidecode
+ py3-urllib3
+ py3-xdg
+ py3-youtube-search
+ py3-ytmusicapi
+ yt-dlp
+ "
+makedepends="py3-setuptools"
+options="!check" # no test suite
+subpackages="$pkgname-bash-completion $pkgname-zsh-completion $pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/y/ytmdl/ytmdl-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ sed -e '/install_requires/d/setup_requires/d' -i setup.py
+# -e 's|etc/bash_completion.d|usr/share/bash-completion/completions|' \
+# -e 's|zsh/functions/Completion/Unix|zsh/site-functions|' \
+# setup.py
+}
+
+build() {
+ python3 setup.py build
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+
+ rm -r "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/zsh/functions
+ install -Dm644 ytmdl.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/"$pkgname"
+ install -Dm644 ytmdl.zsh \
+ "$pkgdir"/usr/share/zsh/site-functions/_"$pkgname"
+}
+
+sha512sums="
+cc2452eabff7727168bca3a37458985c8a664b9365ba11a74b921777a484221cad687637cf95a1ca6d4ba942442fc1120d5930139778c894bf4872c8c4afd40d ytmdl-2023.11.26.tar.gz
+"
diff --git a/testing/ytop/APKBUILD b/testing/ytop/APKBUILD
deleted file mode 100644
index 18f6ca746ce..00000000000
--- a/testing/ytop/APKBUILD
+++ /dev/null
@@ -1,22 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=ytop
-pkgver=0.6.2
-pkgrel=0
-pkgdesc="A TUI system monitor written in Rust"
-url="https://github.com/cjbassi/ytop"
-arch="all !s390x !mips !mips64" # limited by cargo
-license="MIT"
-options="!check" # no test suite
-makedepends="cargo"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cjbassi/ytop/archive/$pkgver.tar.gz"
-
-build() {
- cargo build --release --locked --all-features
-}
-
-package() {
- install -Dm755 target/release/ytop "$pkgdir"/usr/bin/ytop
-}
-
-sha512sums="1d16f6fc36fe6a119e1fff644229516a4b14bff0e3611caf45d24d41a7bc5e5ccea98623b6b5242b8b59f06df11d7e762cc962cceede81db45f7b2a07ebaa46f ytop-0.6.2.tar.gz"
diff --git a/testing/ytt/0001-e2e-tests.patch b/testing/ytt/0001-e2e-tests.patch
new file mode 100644
index 00000000000..3d3506f5f12
--- /dev/null
+++ b/testing/ytt/0001-e2e-tests.patch
@@ -0,0 +1,24 @@
+From 624c264934d14048009113d14c3b4116e687b224 Mon Sep 17 00:00:00 2001
+From: techknowlogick <techknowlogick@gitea.io>
+Date: Mon, 7 Jun 2021 16:40:44 -0400
+Subject: [PATCH] skip pipe tests in e2e
+
+Signed-off-by: techknowlogick <techknowlogick@gitea.io>
+---
+ test/e2e/e2e_test.go | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go
+index ef4222b..c9a6d58 100644
+--- a/test/e2e/e2e_test.go
++++ b/test/e2e/e2e_test.go
+@@ -152,6 +152,7 @@ func TestJsonOutput(t *testing.T) {
+ }
+
+ func TestPipes(t *testing.T) {
++ t.Skip("Skip these tests")
+ if runtime.GOOS == "windows" {
+ t.Skip("Skipping test as it applies to linux based OS")
+ }
+--
+2.31.1
diff --git a/testing/ytt/APKBUILD b/testing/ytt/APKBUILD
new file mode 100644
index 00000000000..ac7d4747f90
--- /dev/null
+++ b/testing/ytt/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: techknowlogick <techknowlogick@gitea.com>
+# Maintainer: techknowlogick <techknowlogick@gitea.com>
+pkgname=ytt
+pkgver=0.47.0
+pkgrel=2
+pkgdesc="YAML templating tool that works on YAML structure instead of text"
+url="https://carvel.dev/ytt/"
+arch="all !armhf !armv7 !x86"
+license="Apache-2.0"
+makedepends="go"
+options="chmod-clean net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/carvel-dev/ytt/archive/v$pkgver.tar.gz
+ 0001-e2e-tests.patch"
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ local ldflags="-X github.com/vmware-tanzu/carvel-ytt/pkg/version.Version=$pkgver"
+ export GOPATH="$srcdir"
+ rm -f website/generated.go
+
+ go fmt ./cmd/... ./pkg/...
+ go mod vendor
+ go mod tidy
+
+ rm -f pkg/website/generated.go
+ go build -trimpath -ldflags="$ldflags" -o ytt ./cmd/ytt/...
+ ./ytt version
+
+ (
+ # Use newly built binary to template all website assets
+ # into a single Go file
+ cd pkg/website
+ ./../../ytt \
+ -f . \
+ -f ../../examples/playground/basics \
+ -f ../../examples/playground/overlays \
+ -f ../../examples/playground/getting-started \
+ --file-mark 'alt-example**/*:type=data' \
+ --file-mark 'example**/*:type=data' \
+ --file-mark 'generated.go.txt:exclusive-for-output=true' \
+ --dangerous-emptied-output-directory ../../tmp/
+ )
+ mv tmp/generated.go.txt pkg/website/generated.go
+
+ # Rebuild ytt with website assets
+ rm -f ./ytt
+ go build -trimpath -ldflags="$ldflags" -o ytt ./cmd/ytt/...
+}
+
+check() {
+ # disable specific shellcheck test as wordsplitting is wanted
+ # shellcheck disable=SC2046
+ go test -v $(go list ./...|grep -v yaml.v2) "$@"
+ ./ytt version
+}
+
+package() {
+ install -D -m 755 $pkgname "$pkgdir"/usr/bin/$pkgname
+}
+
+sha512sums="
+820441b1fa7d3e89213f8187823005a6e1996cd7458f70f36a75bdd6e3bcfb779a95be0bbb7f73b0871e24eba6e5490dca75b51a31e69e037cf45147f34648be ytt-0.47.0.tar.gz
+7e90b64b9f5ed789002f30e1dfbe0c0a8176f1e619c14aa1e9d541359f2f24ff17165785c09b2f7b7bcc21082b568527506c20b6a33987a03f9c88a0c418cfaf 0001-e2e-tests.patch
+"
diff --git a/testing/yubico-piv-tool/APKBUILD b/testing/yubico-piv-tool/APKBUILD
deleted file mode 100644
index 5b0aee8b71b..00000000000
--- a/testing/yubico-piv-tool/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Christophe BERAUD-DUFOUR <christophe.berauddufour@gmail.com>
-# Maintainer: Christophe BERAUD-DUFOUR <christophe.berauddufour@gmail.com>
-pkgname=yubico-piv-tool
-pkgver=2.0.0
-pkgrel=0
-pkgdesc="PIV Tools for yubikey"
-url="https://developers.yubico.com/yubico-piv-tool"
-arch="all"
-license="BSD-2-Clause"
-makedepends="openssl-dev pcsc-lite-dev"
-checkdepends="check-dev bash"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://developers.yubico.com/yubico-piv-tool/Releases/yubico-piv-tool-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="6aefdb84b11b41bc46bb6a5cdf0332a8288db1fbe5eb63c3deb0a6881616d2ae3ad48bd79fa40ce0d96ff076e2ee1b0b81054e7737984ec1db7bd0e48db85f3a yubico-piv-tool-2.0.0.tar.gz"
diff --git a/testing/yubikey-agent/APKBUILD b/testing/yubikey-agent/APKBUILD
new file mode 100644
index 00000000000..56ce0a66076
--- /dev/null
+++ b/testing/yubikey-agent/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=yubikey-agent
+pkgver=0.1.6
+pkgrel=4
+pkgdesc="Seamless ssh-agent for YubiKeys"
+url="https://github.com/FiloSottile/yubikey-agent"
+license="BSD-3-Clause"
+arch="all"
+makedepends="go pcsc-lite-dev"
+source="https://github.com/FiloSottile/yubikey-agent/archive/v$pkgver/yubikey-agent-$pkgver.tar.gz"
+options="!check" # no test suite
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ go build -ldflags "-X main.Version=$pkgver"
+}
+
+package() {
+ install -Dm755 $pkgname -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+6c444f068be53efef54fa6b37ea275d13056fbd1f3944a469e4e5bb485d7a75ff7e270dbe2b61bf159532f8828c89f3a42d85cc8ff31893c81eeb6005d3ea77c yubikey-agent-0.1.6.tar.gz
+"
diff --git a/testing/z/APKBUILD b/testing/z/APKBUILD
index 400501a3b1e..1f12db99040 100644
--- a/testing/z/APKBUILD
+++ b/testing/z/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Anirudh Oppiliappan <x@icyphox.sh>
# Maintainer: Anirudh Oppiliappan <x@icyphox.sh>
-pkgname="z"
-pkgver="1.11"
+pkgname=z
+pkgver=1.12
pkgrel=0
pkgdesc="Tracks your most used directories, based on 'frecency'"
url="https://github.com/rupa/z"
@@ -18,4 +18,6 @@ package() {
install -Dm 644 z.1 "$pkgdir"/usr/share/man/man1/z.1
}
-sha512sums="e8463f8fe2781ff12814e47b1764ddc46875a3a01c0499cb174473df16ba28ea16c2577f7ec27a088c5bd98775ac29f81190b3131d4a953315f01be4e2d548c5 z-1.11.tar.gz"
+sha512sums="
+62c88893cd9f8c2d64a264a806aa97f86bb1876797b83f28db8291c8f06efcc6a7ad2be0550963c664b1c3cf6e689eb1aa9e68b1e75eabf2ec7fae55a9cda450 z-1.12.tar.gz
+"
diff --git a/testing/zafiro-icon-theme/APKBUILD b/testing/zafiro-icon-theme/APKBUILD
index 69929011338..12329b90461 100644
--- a/testing/zafiro-icon-theme/APKBUILD
+++ b/testing/zafiro-icon-theme/APKBUILD
@@ -1,19 +1,20 @@
# Maintainer: Bradley Saulteaux <bradsoto@gmail.com>
pkgname=zafiro-icon-theme
-pkgver=1.1
+pkgver=1.3
pkgrel=0
pkgdesc="icon pack flat with light colors"
url="https://github.com/zayronxio/Zafiro-icons"
-arch="noarch !s390x !mips !mips64" # librsvg
+arch="noarch"
license="GPL-3.0-only"
-depends="librsvg"
-options="!check"
source="$pkgname-$pkgver.tar.gz::https://github.com/zayronxio/Zafiro-icons/archive/$pkgver.tar.gz"
builddir="$srcdir/Zafiro-icons-$pkgver"
+options="!check" # just icons
package() {
- mkdir -p $pkgdir/usr/share/icons
- mv $builddir $pkgdir/usr/share/icons/zafiro-icons
+ mkdir -p "$pkgdir"/usr/share/icons/zafiro-icons
+ cp -a Dark Light "$pkgdir"/usr/share/icons/zafiro-icons/
}
-sha512sums="9c8f29e0396ccc2e7817abf9081628eaca66c78df2005be1bd0b8d8ff2b1fed95a949b9029562bc9e0e6a1ae30e39d23cc91a3998a1c2bb487fec16b672209ae zafiro-icon-theme-1.1.tar.gz"
+sha512sums="
+c1c6c6a8bf57cdfa880cdadcc3a0ac0c26020e802f4ad7c121c01600941ae7ea35225a6f05d67771ce4d28b77449d531456ffc97164c580c3e7d46e1cd6d0e1b zafiro-icon-theme-1.3.tar.gz
+"
diff --git a/testing/zapret/APKBUILD b/testing/zapret/APKBUILD
new file mode 100644
index 00000000000..723494f1b25
--- /dev/null
+++ b/testing/zapret/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=zapret
+pkgver=0.0.0_git20220125
+_commit=9a7d1e8e56ef20903e2a39da5d627a5a60c2cbf2
+pkgrel=0
+pkgdesc="autonomous deep packet inspection circumvention toolkit"
+url="https://github.com/bol-van/zapret"
+arch="all"
+license="MIT"
+depends="ipset bind-tools"
+makedepends="zlib-dev libcap-dev libnetfilter_queue-dev bsd-compat-headers"
+depends_openrc="iptables ip6tables"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://github.com/bol-van/zapret/archive/$_commit/zapret-$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd
+ "
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # no tests
+
+build() {
+ make TGT=binaries/alpine
+}
+
+package() {
+ install -Dm755 binaries/alpine/nfqws binaries/alpine/tpws \
+ -t "$pkgdir"/usr/bin
+
+ install -Dm644 "$srcdir"/zapret.confd "$pkgdir"/etc/conf.d/zapret
+ install -Dm755 "$srcdir"/zapret.initd "$pkgdir"/etc/init.d/zapret
+
+ install -Dm644 config "$pkgdir"/usr/share/"$pkgname"/config
+ cp -r ipset "$pkgdir"/usr/share/"$pkgname"
+ mkdir -p "$pkgdir"/usr/share/"$pkgname"/init.d
+ cp -r init.d/sysv "$pkgdir"/usr/share/"$pkgname"/init.d
+
+ mkdir -p "$pkgdir"/usr/share/doc/"$pkgname"
+ cp -r docs/* "$pkgdir"/usr/share/doc/"$pkgname"
+ mkdir -p "$pkgdir"/usr/share/licenses/"$pkgname"
+ mv "$pkgdir"/usr/share/doc/"$pkgname"/LICENSE.txt "$pkgdir"/usr/share/licenses/"$pkgname"
+}
+
+sha512sums="
+49c3bad3cbbd79400c3748392c6ab4cb542c2a4a3e7307697bc3670ecc9ed15e45fd20aea7a3322ed303d33372943e4b97a3e792c149e3aefd964d36f5c6824e zapret-0.0.0_git20220125.tar.gz
+6582053bc83fec3609233fb06f3ae88ef1257fc52c3d8699473f6593b2a45d458401d2f70f25306fedd8718776a3e09077113cf79917be1c99bfa3f56a63a16d zapret.initd
+962b18fe57ddd20d870f91a7de7f7b6b108602ec94553d4efc1372cf247d95ca472043d490f16e9c5e83f3aa78ae09fcd3028df49d497c0f76292782981111e1 zapret.confd
+"
diff --git a/testing/zapret/zapret.confd b/testing/zapret/zapret.confd
new file mode 100644
index 00000000000..8be586006b9
--- /dev/null
+++ b/testing/zapret/zapret.confd
@@ -0,0 +1,5 @@
+ZAPRET_BASE=/usr/share/zapret
+TPWS=/usr/bin/tpws
+NFQWS=/usr/bin/nfqws
+IP2NET=/usr/bin/ip2net
+MDIG=/usr/bin/mdig
diff --git a/testing/zapret/zapret.initd b/testing/zapret/zapret.initd
new file mode 100644
index 00000000000..2be4cd3742b
--- /dev/null
+++ b/testing/zapret/zapret.initd
@@ -0,0 +1,52 @@
+#!/sbin/openrc-run
+
+. "$ZAPRET_BASE"/init.d/sysv/functions
+
+extra_commands="start_fw stop_fw start_daemons stop_daemons"
+
+name="zapret"
+description="DPI bypass toolkit"
+description_start_fw="Apply firewall rules"
+description_stop_fw="Remove firewall rules"
+description_start_daemons="Run daemons"
+description_stop_daemons="Stop daemons"
+
+depend() {
+ need net
+ use dns logger netmount
+}
+
+start() {
+ start_daemons
+ [ "$INIT_APPLY_FW" != "1" ] || start_fw
+}
+
+stop() {
+ stop_daemons
+ [ "$INIT_APPLY_FW" != "1" ] || stop_fw
+}
+
+start_fw() {
+ ebegin "Applying firewall rules"
+ zapret_apply_firewall
+ eend $? "Failed to apply firewall rules"
+}
+
+stop_fw() {
+ ebegin "Removing firewall rules"
+ zapret_unapply_firewall
+ eend $? "Failed to remove firewall rules"
+}
+
+start_daemons() {
+ ebegin "Starting daemons"
+ zapret_run_daemons
+ eend $? "Failed to start daemons"
+}
+
+stop_daemons() {
+ ebegin "Stopping daemons"
+ zapret_stop_daemons
+ eend $? "Failed to stop daemons"
+}
+
diff --git a/testing/zapret/zapret.pre-install b/testing/zapret/zapret.pre-install
new file mode 100644
index 00000000000..1f8c9162d8a
--- /dev/null
+++ b/testing/zapret/zapret.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+addgroup -S tpws 2>/dev/null
+adduser -S -D -H -h /var/lib/tpws -s /sbin/nologin -G tpws -g tpws tpws 2>/dev/null
+exit 0
+
diff --git a/testing/zaproxy/APKBUILD b/testing/zaproxy/APKBUILD
new file mode 100644
index 00000000000..3c6d3c76ca5
--- /dev/null
+++ b/testing/zaproxy/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Ado <ado@expedio.it>
+# Maintainer: Ado <ado@expedio.it>
+pkgname=zaproxy
+pkgver=2.14.0
+pkgrel=0
+pkgdesc="OWASP Zed Attack Proxy web app scanner"
+url="https://www.zaproxy.org/"
+arch="all !x86 !armhf !armv7 !riscv64 !aarch64 !ppc64le"
+license="Apache-2.0"
+_java_v=11
+depends="
+ bash
+ openjdk$_java_v-jre
+ font-liberation
+ "
+makedepends="
+ tar
+ gradle
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/zaproxy/zaproxy/archive/v$pkgver.tar.gz"
+options="!check"
+
+build() {
+ /usr/bin/gradle :zap:distLinux
+}
+
+package() {
+ install -d "$pkgdir/usr/share/$pkgname"
+ install -d "$pkgdir/usr/bin/"
+ tar -zxf "zap/build/distributions/ZAP_${pkgver}_Linux.tar.gz" -C "$pkgdir/usr/share/$pkgname" --strip-components=1
+ ln -s "/usr/share/zaproxy/zap.sh" "$pkgdir/usr/bin/$pkgname"
+}
+
+
+sha512sums="
+660bb3b8f4789a2ae76c040ae879136da294f189bb331abc5f1e249a7fe69b64433c8a3e66d56d4f4d41072b20963afaa5615d76df5ade4049ea9d592faf017b zaproxy-2.14.0.tar.gz
+"
diff --git a/testing/zarchive/APKBUILD b/testing/zarchive/APKBUILD
new file mode 100644
index 00000000000..88dd5abec21
--- /dev/null
+++ b/testing/zarchive/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Simon Rupf <simon@rupf.net>
+pkgname=zarchive
+pkgver=0.1.2
+pkgrel=2
+pkgdesc="Library for creating and reading zstd-compressed file archives (.zar)"
+url="https://github.com/Exzap/ZArchive"
+arch="all"
+license="MIT-0"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ cmake
+ samurai
+ zstd-dev
+ "
+subpackages="$pkgname-libs $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Exzap/ZArchive/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/ZArchive-$pkgver"
+options="!check" # no tests
+
+build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto -DNDEBUG" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto -DNDEBUG" \
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+b9666e8e86e5162b4ee641905a288088311d5cd1af510b2fbf22eba722ad2d8ca43a081b14c0106743807eff256bac9a0cacbdeb06e8ccad0e8d5b9ed8fa886e zarchive-0.1.2.tar.gz
+"
diff --git a/testing/zarf/APKBUILD b/testing/zarf/APKBUILD
new file mode 100644
index 00000000000..f6d2a59844d
--- /dev/null
+++ b/testing/zarf/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: William Walker <w_walker@icloud.com>
+# Maintainer: William Walker <w_walker@icloud.com>
+pkgname=zarf
+pkgver=0.32.1
+pkgrel=2
+pkgdesc="DevSecOps for Air Gap & Limited-Connection Systems"
+url="https://zarf.dev/"
+# not useful/supported elsewhere
+arch="aarch64 x86_64"
+license="Apache-2.0"
+makedepends="go nodejs npm"
+source="$pkgname-v$pkgver.tar.gz::https://github.com/defenseunicorns/zarf/archive/refs/tags/v$pkgver.tar.gz"
+# tests are integration tests that need a full setup
+options="net !check"
+
+build() {
+ local ldflags="
+ -X github.com/defenseunicorns/zarf/src/config.CLIVersion=v$pkgver
+ -X k8s.io/component-base/version.gitVersion=v0.0.0+zarfv$pkgver
+ -X k8s.io/component-base/version.gitCommit=alpine
+ -X k8s.io/component-base/version.buildDate=null
+ "
+ go build -ldflags "$ldflags" -o build/zarf main.go
+}
+
+package() {
+ install -Dm755 build/zarf -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+b2730fb3594a0bfca6600d6e9c16f1a35b2c5f136501ebf0734aed7f1c57c1f6cc124e7d491b6a9edb8d837494a72158123d83728f54ef422338514d9181b1d2 zarf-v0.32.1.tar.gz
+"
diff --git a/testing/zathura-cb/APKBUILD b/testing/zathura-cb/APKBUILD
deleted file mode 100644
index f48eb8ed8ce..00000000000
--- a/testing/zathura-cb/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
-pkgname=zathura-cb
-pkgver=0.1.8
-pkgrel=0
-pkgdesc="Comic book support for zathura"
-url="https://git.pwmt.org/pwmt/zathura-cb"
-arch="all"
-license="Zlib"
-depends="
- desktop-file-utils
- zathura
- "
-makedepends="
- libarchive-dev
- meson
- ninja
- zathura-dev
- "
-source="https://git.pwmt.org/pwmt/zathura-cb/-/archive/$pkgver/zathura-cb-$pkgver.tar.gz"
-options="!check" # no test suite
-
-build() {
- meson \
- --buildtype=plain \
- --prefix=/usr \
- build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-sha512sums="88021ef6712d4ef7cf6e9a6bbb5eecd5e35124ec36607f4e3670660253fa6eff17cecd7f3fe31fdfb05e3f38effbfbc894695752b5cd4e4bdb032ade6d3326e3 zathura-cb-0.1.8.tar.gz"
diff --git a/testing/zathura-pdf-mupdf/APKBUILD b/testing/zathura-pdf-mupdf/APKBUILD
deleted file mode 100644
index da168db824b..00000000000
--- a/testing/zathura-pdf-mupdf/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=zathura-pdf-mupdf
-pkgver=0.3.5
-pkgrel=2
-pkgdesc="mupdf plugin to zathura"
-url="https://git.pwmt.org/pwmt/zathura-pdf-mupdf"
-arch="all"
-license="zlib"
-makedepends="meson ninja mupdf-dev zathura-dev girara-dev openssl-dev openjpeg-dev libjpeg-turbo-dev jbig2dec-dev"
-depends="zathura !zathura-pdf-poppler"
-source="https://git.pwmt.org/pwmt/zathura-pdf-mupdf/-/archive/$pkgver/zathura-pdf-mupdf-$pkgver.tar.gz
- c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch"
-
-options="!check" # no test suite
-
-build() {
- meson \
- --prefix=/usr \
- --buildtype=plain \
- -Dlink-external=true \
- build
- ninja -C build
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-}
-
-sha512sums="1f7a748fee74296a008cef42c8f2e443409c77e16caa8441f74136260aaac7dee4d3c03e8a88532c45a0f9972e1b4965d4cffd488a00123d4d8cee9bcec2cf30 zathura-pdf-mupdf-0.3.5.tar.gz
-d27145847bcac80644a13dfc474db1a88b8cd1def822d9ba0e0ffd454b699a75aad057960558318dc9be0abbc74499801a3542ef651e86853e5fc1f3d1bd2faa c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch"
diff --git a/testing/zathura-pdf-mupdf/c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch b/testing/zathura-pdf-mupdf/c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch
deleted file mode 100644
index eae81bcb1dc..00000000000
--- a/testing/zathura-pdf-mupdf/c7f341addb76d5e6fd8c24c666d8fe97c451a4cb.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From c7f341addb76d5e6fd8c24c666d8fe97c451a4cb Mon Sep 17 00:00:00 2001
-From: Moritz Lipp <mail@mlq.me>
-Date: Thu, 7 May 2020 20:42:01 +0200
-Subject: [PATCH] Update to mupdf 1.17
-
----
- zathura-pdf-mupdf/index.c | 4 +++-
- zathura-pdf-mupdf/links.c | 5 +++--
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/zathura-pdf-mupdf/index.c b/zathura-pdf-mupdf/index.c
-index c421f5c..cbbe978 100644
---- a/zathura-pdf-mupdf/index.c
-+++ b/zathura-pdf-mupdf/index.c
-@@ -65,9 +65,11 @@ build_index(fz_context* ctx, fz_document* document, fz_outline* outline, girara_
- float x = 0;
- float y = 0;
-
-+ fz_location location = fz_resolve_link(ctx, document, outline->uri, &x, &y);
-+
- type = ZATHURA_LINK_GOTO_DEST;
- target.destination_type = ZATHURA_LINK_DESTINATION_XYZ;
-- target.page_number = fz_resolve_link(ctx, document, outline->uri, &x, &y);
-+ target.page_number = location.page;
- target.left = x;
- target.top = y;
- target.zoom = 0.0;
-diff --git a/zathura-pdf-mupdf/links.c b/zathura-pdf-mupdf/links.c
-index 99c5715..157f039 100644
---- a/zathura-pdf-mupdf/links.c
-+++ b/zathura-pdf-mupdf/links.c
-@@ -54,10 +54,11 @@ pdf_page_links_get(zathura_page_t* page, void* data, zathura_error_t* error)
- float x = 0;
- float y = 0;
-
-+ fz_location location = fz_resolve_link(mupdf_document->ctx, mupdf_document->document, link->uri, &x, &y);
-+
- type = ZATHURA_LINK_GOTO_DEST;
- target.destination_type = ZATHURA_LINK_DESTINATION_XYZ;
-- target.page_number = fz_resolve_link(mupdf_document->ctx,
-- mupdf_document->document, link->uri, &x, &y);
-+ target.page_number = location.page;
- target.left = x;
- target.top = y;
- target.zoom = 0.0;
---
-2.26.0
-
diff --git a/testing/zef/APKBUILD b/testing/zef/APKBUILD
deleted file mode 100644
index 70b090180d2..00000000000
--- a/testing/zef/APKBUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Contributor: Curt Tilmes <Curt.Tilmes@nasa.gov>
-# Maintainer: Curt Tilmes <Curt.Tilmes@nasa.gov>
-pkgname=zef
-pkgver=0.8.4
-pkgrel=0
-pkgdesc="Raku / Perl6 Module Management"
-url="https://github.com/ugexe/zef"
-arch="all !x86 !armhf !armv7 !s390x !mips !mips64" # limited by rakudo
-options="!archcheck" # Precompiled arch dependent files included (quiet noarch warning)
-license="Artistic-2.0"
-depends="rakudo git wget curl tar unzip perl perl-utils"
-makedepends="rakudo-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ugexe/zef/archive/v$pkgver.tar.gz"
-
-check() {
- prove -e 'raku -Ilib'
-}
-
-package() {
- RAKUDO_RERESOLVE_DEPENDENCIES=0 /usr/share/perl6/bin/install-dist.p6 \
- --to="$pkgdir/usr/share/perl6/vendor" --for=vendor
- rm "$pkgdir"/usr/share/perl6/vendor/bin/zef-j \
- "$pkgdir"/usr/share/perl6/vendor/bin/zef-m
- mkdir -p "$pkgdir"/usr/bin
- ln -s /usr/share/perl6/vendor/bin/zef "$pkgdir"/usr/bin/zef
-}
-
-doc() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/doc/"$pkgname"
- for file in LICENSE META6.json README.pod; do
- cp $file "$subpkgdir"/usr/share/doc/"$pkgname"
- done
-}
-
-sha512sums="02542ab26c63213bfa4cc06d9643201ad0ea5f1148a4ab4bd366f2273ba00f598753bf56d64f2296e1438f53122ed4b0142695eead6180025301aeb01bda5c78 zef-0.8.4.tar.gz"
diff --git a/testing/zeitgeist/APKBUILD b/testing/zeitgeist/APKBUILD
deleted file mode 100644
index d5a9065ad97..00000000000
--- a/testing/zeitgeist/APKBUILD
+++ /dev/null
@@ -1,66 +0,0 @@
-# Maintainer: Luca Weiss <luca@z3ntu.xyz>
-pkgname=zeitgeist
-pkgver=1.0.2
-pkgrel=2
-pkgdesc="Activity logging framework"
-arch="all"
-url="https://zeitgeist.freedesktop.org/"
-license="LGPL-2.1-or-later"
-depends_dev="sqlite-dev gobject-introspection-dev xapian-core-dev telepathy-glib-dev
- gtk+3.0-dev json-glib-dev"
-makedepends="$depends_dev autoconf automake gettext-dev libtool py3-rdflib vala git
- raptor2"
-source="https://gitlab.freedesktop.org/zeitgeist/zeitgeist/-/archive/v$pkgver/zeitgeist-v$pkgver.tar.gz
- gettext_0.20.patch"
-subpackages="
- $pkgname-dev
- $pkgname-doc
- lib$pkgname:libs
- py3-$pkgname:py3:noarch
- $pkgname-bash-completion
- "
-builddir="$srcdir/$pkgname-v$pkgver"
-options="!check" # Needs D-Bus server, see https://gitlab.freedesktop.org/zeitgeist/zeitgeist/issues/4
-
-prepare() {
- default_prepare
-
- NOCONFIGURE=1 ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --libexecdir=/usr/lib \
- --enable-fts
-
- sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-
- # systemd
- rm -rf "$pkgdir"/usr/lib/systemd
-}
-
-py3() {
- pkgdesc="Python3 bindings for $pkgname"
- depends="python3 lib$pkgname=$pkgver-r$pkgrel"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib
-}
-
-sha512sums="077c2b751b5cb96efc5da6e47336456e1dec4238b1d252218c6da137049dd0c61d518b6079e632fbbfe5edeced0c89e922c826aed1f0811fd6a29ad89abd53ae zeitgeist-v1.0.2.tar.gz
-db47a77efe7ba5cc3f71a9a2d438359c8c9a8dcd2e016726f7776d373177c863e848e4ed4525df66237c79fbf94e3cad3e2844ac685a90e663680cb71e44ff5d gettext_0.20.patch"
diff --git a/testing/zeitgeist/gettext_0.20.patch b/testing/zeitgeist/gettext_0.20.patch
deleted file mode 100644
index 8e42fa5760c..00000000000
--- a/testing/zeitgeist/gettext_0.20.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 14d8efa..3ea1cc7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -31,7 +31,7 @@ AM_SILENT_RULES([yes])
- GETTEXT_PACKAGE=AC_PACKAGE_NAME
- AC_SUBST(GETTEXT_PACKAGE)
- AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
--AM_GNU_GETTEXT_VERSION([0.19])
-+AM_GNU_GETTEXT_VERSION([0.20])
- AM_GNU_GETTEXT([external])
-
- AC_SUBST(CFLAGS)
diff --git a/testing/zerofree/APKBUILD b/testing/zerofree/APKBUILD
deleted file mode 100644
index ed055500838..00000000000
--- a/testing/zerofree/APKBUILD
+++ /dev/null
@@ -1,24 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=zerofree
-pkgver=1.1.1
-pkgrel=0
-pkgdesc="Zero free blocks from ext2, ext3 and ext4 file-systems"
-url="https://frippery.org/uml/"
-arch="all"
-license="GPL-2.0-only"
-options="!check" # No test suite from upstream
-makedepends="e2fsprogs-dev"
-source="https://frippery.org/uml/zerofree-$pkgver.tgz
- types.patch"
-
-build() {
- make
-}
-
-package() {
- install -Dm 755 -t "$pkgdir/usr/bin/" zerofree
-}
-
-sha512sums="2d7ee57a877bff2491c48054338a26d624ae75c238ac2b0568a75de88b6621c16cc1e7d65500879825d14d8ba44a5173587a061459072769c165bee47c3f9f1c zerofree-1.1.1.tgz
-0cf3833271195c2f1da591af625928d8207d6bb39702cdc9f8ade0e7e773096e4f55860438863f06639f205283c0cccbaaf8b4d9ee98e3850a5075e38d06a187 types.patch"
diff --git a/testing/zerofree/types.patch b/testing/zerofree/types.patch
deleted file mode 100644
index fecdbd49b0a..00000000000
--- a/testing/zerofree/types.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- zerofree-1.1.1/zerofree.c.orig 2019-05-05 19:22:49.000000000 -0500
-+++ zerofree-1.1.1/zerofree.c 2019-05-05 19:21:50.000000000 -0500
-@@ -17,6 +17,7 @@
- * Jan Krämer.
- */
-
-+#include <sys/types.h>
- #include <ext2fs/ext2fs.h>
- #include <stdio.h>
- #include <unistd.h>
diff --git a/testing/zeromq-gsl/APKBUILD b/testing/zeromq-gsl/APKBUILD
deleted file mode 100644
index bc3cd67a473..00000000000
--- a/testing/zeromq-gsl/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Hristiyan Ivanov <hristiyan.d.ivanov@gmail.com>
-pkgname=zeromq-gsl
-pkgver=4.1.5
-pkgrel=0
-pkgdesc="A universal code generator"
-url="https://zeromq.org/"
-arch="all !mips !mips64" # qbyte not defined on mips
-license="GPL-3.0-or-later"
-makedepends="pcre-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/zeromq/gsl/archive/v$pkgver.tar.gz
- fix-makefile.patch
- "
-builddir="$srcdir/gsl-$pkgver"
-
-build() {
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" PREFIX=/usr install
-}
-
-sha512sums="37d8dafe165297a8aea1a0255ebeb3ceb29d3bf297f1671a68eb2804202104abdf7ea49d4351d91f70771c782d4c14c7d4c028135af5df4499f5966c29f71064 zeromq-gsl-4.1.5.tar.gz
-0acc55d05ad35fbac1fc0489c6aa277ac9db7e03eef49a559fc291b979629b6b30dae462ff7f709ea0cf0bfddc52144199de37c5efb451ee6872178d4117a065 fix-makefile.patch"
diff --git a/testing/zeromq-gsl/fix-makefile.patch b/testing/zeromq-gsl/fix-makefile.patch
deleted file mode 100644
index 373da180390..00000000000
--- a/testing/zeromq-gsl/fix-makefile.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/src/Makefile b/src/Makefile
-index 45ed952..5e7aed3 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -37,10 +37,9 @@
- INSTALL = /usr/bin/install -c
-
- # Installation directories, good for Debian Packaging
--DESTDIR ?= /usr/local
--prefix = ${DESTDIR}
--mandir = ${prefix}/share/man/man1
--bindir = ${prefix}/bin
-+PREFIX ?= /usr/local
-+mandir = ${PREFIX}/share/man/man1
-+bindir = ${PREFIX}/bin
-
- RM ?= rm -f
-
-@@ -203,10 +202,10 @@ check: gsl$(EXE)
- ./gsl$(EXE) teststr
-
- install:
-- $(INSTALL) -m 755 -d "$(bindir)"
-- $(INSTALL) -m 755 gsl "$(bindir)"
-- $(INSTALL) -m 755 -d "$(mandir)"
-- $(INSTALL) -m 644 gsl.1 "$(mandir)"
-+ $(INSTALL) -m 755 -d $(DESTDIR)/"$(bindir)"
-+ $(INSTALL) -m 755 gsl $(DESTDIR)/"$(bindir)"
-+ $(INSTALL) -m 755 -d $(DESTDIR)/"$(mandir)"
-+ $(INSTALL) -m 644 gsl.1 $(DESTDIR)/"$(mandir)"
-
- uninstall:
- $(RM) "$(bindir)/gsl"
diff --git a/testing/zfs-src/AKMBUILD b/testing/zfs-src/AKMBUILD
new file mode 100644
index 00000000000..1e5892ca9e8
--- /dev/null
+++ b/testing/zfs-src/AKMBUILD
@@ -0,0 +1,18 @@
+modname=zfs
+modver=2.2.1
+makedepends="libtool linux-headers glib-dev e2fsprogs-dev util-linux-dev libtirpc-dev"
+built_modules="module/spl.ko \
+ module/zfs.ko"
+
+build() {
+ cd "$builddir"
+ "$srcdir"/configure --prefix=/usr \
+ --with-tirpc \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --with-config=kernel \
+ --with-linux="$kernel_srcdir"
+ make $MAKEFLAGS
+}
diff --git a/testing/zfs-src/APKBUILD b/testing/zfs-src/APKBUILD
new file mode 100644
index 00000000000..22efbc43dfc
--- /dev/null
+++ b/testing/zfs-src/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Umar Getagazov <umar@handlerug.me>
+# Maintainer: Umar Getagazov <umar@handlerug.me>
+pkgname=zfs-src
+_modname=${pkgname%-src}
+pkgver=2.2.1
+pkgrel=0
+pkgdesc="ZFS for Linux (sources, AKMS)"
+url="https://zfsonlinux.org"
+arch="noarch"
+license="CDDL-1.0"
+depends="akms"
+options="!check" # irrelevant for a -src package
+source="https://github.com/openzfs/zfs/releases/download/zfs-$pkgver/zfs-$pkgver.tar.gz
+ AKMBUILD
+ "
+builddir="$srcdir/$_modname-$pkgver"
+
+package() {
+ mkdir -p "$pkgdir"/usr/src
+ cp -r "$builddir" "$pkgdir"/usr/src/zfs
+ install -Dm644 "$srcdir"/AKMBUILD "$pkgdir"/usr/src/zfs/AKMBUILD
+}
+
+sha512sums="
+05e17046ac4f0ba923151be3e554e075db4783c8936c5dcee2d3b6d459fb386ba33f9eb38d15c185db58a1d26926147a66c3b3fe14e9de40987f0e95efa2bb31 zfs-2.2.1.tar.gz
+0300d1e3a50f2fdab590b31d74cebb2bc2a94fa3872e8659cec9cb838fd89b76efea18cdb3e04837094633aea0a14f8d4060d8f0b23df0978dfa00c865490fc2 AKMBUILD
+"
diff --git a/testing/zfsnap/APKBUILD b/testing/zfsnap/APKBUILD
deleted file mode 100644
index 7b7f704f787..00000000000
--- a/testing/zfsnap/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: Shyam Sunder <sgsunder1@gmail.com>
-# Maintainer: Shyam Sunder <sgsunder1@gmail.com>
-pkgname=zfsnap
-pkgver=2.0.0b3
-pkgrel=0
-pkgdesc="A portable, performant script to make rolling ZFS snapshots easy"
-url="https://www.zfsnap.org/"
-arch="noarch !armhf !armv7" # Limited by zfs
-license="BSD-3-Clause"
-depends="zfs"
-options="!check" # no unit tests, only consists of shell scripts
-subpackages="
- $pkgname-doc
- $pkgname-bash-completion
- $pkgname-zsh-completion
- "
-source="https://github.com/zfsnap/zfsnap/archive/v2.0.0-beta3.tar.gz"
-builddir="$srcdir/$pkgname-2.0.0-beta3"
-
-prepare() {
- default_prepare
- sed -i \
- -e 's#/sbin/zfs#/usr/sbin/zfs#g' \
- -e 's#/sbin/zpool#/usr/sbin/zpool#g' \
- "$builddir"/share/zfsnap/core.sh
-}
-
-package() {
- install -Dm755 "$builddir"/sbin/zfsnap.sh \
- "$pkgdir"/usr/sbin/zfsnap
- install -Dm755 "$builddir"/share/zfsnap/core.sh \
- "$pkgdir"/usr/share/zfsnap/core.sh
- install -Dm755 "$builddir"/share/zfsnap/commands/destroy.sh \
- "$pkgdir"/usr/share/zfsnap/commands/destroy.sh
- install -Dm755 "$builddir"/share/zfsnap/commands/recurseback.sh \
- "$pkgdir"/usr/share/zfsnap/commands/recurseback.sh
- install -Dm755 "$builddir"/share/zfsnap/commands/snapshot.sh \
- "$pkgdir"/usr/share/zfsnap/commands/snapshot.sh
- install -Dm644 "$builddir"/man/man8/zfsnap.8 \
- "$pkgdir"/usr/share/man/man8/zfsnap.8
-
- install -Dm644 "$builddir"/completion/$pkgname-completion.bash \
- "$pkgdir"/usr/share/bash-completion/completions/$pkgname
- install -Dm644 "$builddir"/completion/$pkgname-completion.zsh \
- "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
-}
-
-sha512sums="85df793abd97a3db26fcb9d779627ea295b2132dc462c3b1afc70a877d8093196992a7912957157555714c5f1e07ae1694e7fbed9ebae2482fd5f2d846eaf694 v2.0.0-beta3.tar.gz"
diff --git a/testing/zig/APKBUILD b/testing/zig/APKBUILD
index e9aa7abc60a..d0248fe9feb 100644
--- a/testing/zig/APKBUILD
+++ b/testing/zig/APKBUILD
@@ -1,54 +1,71 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: lauren n. liberda <lauren@selfisekai.rocks>
pkgname=zig
-pkgver=0.6.0
-pkgrel=1
-pkgdesc="general-purpose programming language designed for robustness, optimality, and maintainability"
+pkgver=0.12.0
+pkgrel=0
+pkgdesc="General-purpose programming language designed for robustness, optimality, and maintainability"
url="https://ziglang.org/"
+# arm*, x86: fails to build (allocation failed)
+# ppc64le,riscv64: builds but the test command crashes
+# s390x: blocked by lld-dev
arch="x86_64 aarch64"
license="MIT"
+install="$pkgname.pre-upgrade"
+_llvmver=17
+# will need switch to lld$_llvmver-dev later
+makedepends="
+ clang$_llvmver-dev
+ cmake
+ libxml2-dev
+ lld-dev
+ llvm$_llvmver-dev
+ samurai
+ zlib-dev
+ "
provides="zig-dev=$pkgver-r$pkgrel"
subpackages="$pkgname-doc"
-makedepends="cmake clang-dev clang-libs llvm10-libs llvm-dev lld-dev libstdc++
- zlib-static libxml2-dev llvm10-static clang-static lld-static"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ziglang/zig/archive/$pkgver.tar.gz"
+source="https://ziglang.org/download/$pkgver/zig-$pkgver.tar.xz
+ "
build() {
+ local crossopts=
if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- mkdir -p build
- cd build
- cmake \
- -DCMAKE_BUILD_TYPE=None \
+
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- ${CMAKE_CROSSOPTS} \
- ..
- make
+ -DCMAKE_PREFIX_PATH=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DZIG_VERSION="$pkgver" \
+ -DZIG_SHARED_LLVM=ON \
+ -DZIG_TARGET_MCPU=baseline \
+ -DCLANG_INCLUDE_DIRS=/usr/lib/llvm$_llvmver/include \
+ $crossopts
+
+ cmake --build build
+
+ ./build/stage3/bin/zig build docs
}
check() {
- cd build
- ./zig build test \
- -Dskip-release \
+ ./build/stage3/bin/zig build test \
+ -Dcpu=baseline \
+ -Dskip-debug \
+ -Dskip-release-safe \
-Dskip-release-small \
- -Dskip-release-fast \
- -Dskip-non-native \
- -Dskip-libc \
- -Dskip-self-hosted
+ -Dskip-non-native
}
package() {
- make -C build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
- # Documentation is generated as part of `./zig build test` in check().
- # If this is no longer the case at some point it can be
- # generated explicitly using `./zig build docs`.
- install -Dm644 zig-cache/langref.html \
- "$pkgdir"/usr/share/doc/$pkgname/langref.html
+ mkdir -p "$pkgdir/usr/share/doc/"
+ cp -r zig-out/doc "$pkgdir/usr/share/doc/$pkgname"
}
-sha512sums="062f3437a080c1d823558c834dd143222e3f0537cc4256c4fa687ed94078a4312be60e402b0effa916ce8305a3482e1736a93c3ec4275fc5a526a0d78a3b1a47 zig-0.6.0.tar.gz"
+sha512sums="
+0c3d9396fea4905245c7e32ce6bd9b4ff140f061cd8a957929e4c84cf105f5bbcbf2e7c030013ac649edb569e909f65d928b3e8a86f35c9076fb62e996feea14 zig-0.12.0.tar.xz
+"
diff --git a/testing/zig/zig.pre-upgrade b/testing/zig/zig.pre-upgrade
new file mode 100644
index 00000000000..a396aae7ec2
--- /dev/null
+++ b/testing/zig/zig.pre-upgrade
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+ver_old=$2
+
+if [ "$(apk version -t "$ver_old" '0.10.0-r2')" = '<' ]; then
+ # zig 0.10 upgrades libcxx which renames the __string header to a directory
+ # https://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/10856
+ rm -r /usr/lib/zig/libcxx/include/__string
+fi
+
+exit 0
diff --git a/testing/zile/APKBUILD b/testing/zile/APKBUILD
index 5999a9319d6..3dfc58b475c 100644
--- a/testing/zile/APKBUILD
+++ b/testing/zile/APKBUILD
@@ -1,34 +1,38 @@
# Contributor: Jose Maria Garcia <josemaria.alkala@gmail.com>
# Maintainer: Jose Maria Garcia <josemaria.alkala@gmail.com>
pkgname=zile
-pkgver=2.4.14
+pkgver=2.6.2
pkgrel=0
pkgdesc="GNU Zile is a text editor development kit."
url="https://www.gnu.org/software/zile"
arch="all"
-license="GPL3"
-depends=""
-makedepends="ncurses-dev gc-dev perl help2man"
-install=""
-subpackages="${pkgname}-doc"
-source="https://ftp.gnu.org/gnu/zile/${pkgname}-${pkgver}.tar.gz"
-builddir="$srcdir/${pkgname}-${pkgver}"
+license="GPL-3.0-or-later"
+makedepends="
+ glib-dev
+ gobject-introspection-dev
+ help2man
+ libgee-dev
+ ncurses-dev
+ perl
+"
+subpackages="$pkgname-doc"
+source="https://ftp.gnu.org/gnu/zile/zile-$pkgver.tar.gz"
+options="!check"
build() {
- cd "$builddir"
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/charset.alias
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir"/usr/lib/charset.alias
}
-sha512sums="0dea56fd13a82015ec73de3139a4b2c27ad4c001ed535f1bae557ee49f9d8a188610a08160998d0a36b95fec42b46a019fd43634ef6502ebd27e162164de98cc zile-2.4.14.tar.gz"
-
+sha512sums="
+16d5cece403fc215d53b35c31fe6f743d53d7a01cdc7d101cabe6760173539c9c31e092b29c374f28a723708027f6de626fcfee302962848091f85078fa81761 zile-2.6.2.tar.gz
+"
diff --git a/testing/zim-tools/APKBUILD b/testing/zim-tools/APKBUILD
deleted file mode 100644
index c4bf825bc17..00000000000
--- a/testing/zim-tools/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=zim-tools
-pkgver=1.2.1
-pkgrel=0
-pkgdesc="Various ZIM command line tools"
-url="https://github.com/openzim/zim-tools"
-arch="all !mips !mips64" # blocked by libzim-dev
-license="GPL-3.0-or-later"
-options="!check" # No test suite from upstream
-makedepends="meson libzim-dev"
-subpackages="$pkgname-doc"
-source="zim-tools-$pkgver.tar.gz::https://github.com/openzim/zim-tools/archive/$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . output
- ninja -C output
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C output install
-
- install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
-}
-
-sha512sums="9658e706df18f01bdbd76580a6889009d107afff1c50d3c349f616b41cc11dbe886a53e3ddf6cab1dea6033483cc8c21774dbac40cb560450829f46dbca63c4c zim-tools-1.2.1.tar.gz"
diff --git a/testing/zim/APKBUILD b/testing/zim/APKBUILD
deleted file mode 100644
index 972a1e2cfc7..00000000000
--- a/testing/zim/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contributor: Adam Nye <adam@spoontech.biz>
-# Maintainer: Adam Nye <adam@spoontech.biz>
-pkgname=zim
-pkgver=0.72.1
-pkgrel=0
-pkgdesc="Desktop wiki editor"
-options="!check" # Tests broken starting with 0.71.0
-url="http://zim-wiki.org"
-arch="all"
-license="GPL-2.0-or-later"
-depends="python3 py3-gobject3 py3-xdg xdg-utils gtk+3.0"
-makedepends="desktop-file-utils"
-subpackages="$pkgname-doc $pkgname-lang"
-source="http://zim-wiki.org/downloads/zim-$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- install -dm755 "$pkgdir"/usr/share/icons
- cp -r xdg/hicolor "$pkgdir"/usr/share/icons
-}
-
-sha512sums="3a6f9c0028643913974d3d3419fac947e9c03846bb0fc89be2ad9b20d60893eeb2c079f2f807794c935383d5d90a72bddb4855bc22320cf93f956a4dbe517f0e zim-0.72.1.tar.gz"
diff --git a/testing/zimg/APKBUILD b/testing/zimg/APKBUILD
deleted file mode 100644
index 6afdaaee829..00000000000
--- a/testing/zimg/APKBUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-# Contributor: Alexander Edland <alpine@ocv.me>
-# Maintainer: Alexander Edland <alpine@ocv.me>
-pkgname=zimg
-pkgver=2.9.3
-pkgrel=0
-pkgdesc="Scaling, colorspace conversion and dithering library"
-url="https://github.com/sekrit-twc/zimg"
-arch="all !s390x !mips !mips64" # Tests fail on big-endian
-license="WTFPL-2.0"
-makedepends="autoconf automake libtool"
-subpackages="$pkgname-doc $pkgname-dev"
-source="zimg-$pkgver.tar.gz::https://github.com/sekrit-twc/zimg/archive/release-$pkgver.tar.gz
- zimg-gtest-1.8.0.tar.gz::https://github.com/google/googletest/archive/release-1.8.0.tar.gz"
-builddir="$srcdir/zimg-release-$pkgver"
-options="!check" # we run tests in the build stage
-
-prepare() {
- default_prepare
- mkdir -p "$pkgdir"
- # googletest is required in-tree
- ln -s "$srcdir"/googletest-*/* test/extra/googletest
- autoreconf -vfi
-}
-
-build() {
- # build and run test binaries here
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static \
- --enable-unit-test
- make
- make test/unit_test.log
- test/unit_test
-
- # build release binaries here without enabling tests,
- # as they make zimg slower
- make clean
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="dfa5dd8f6f6335f6f5106e792774ae649d056c42c8f586627996be172d98b17e0583c41f1dc421edd0fc27793240df9f87217d8cdfc24a2367646e046109b196 zimg-2.9.3.tar.gz
-1dbece324473e53a83a60601b02c92c089f5d314761351974e097b2cf4d24af4296f9eb8653b6b03b1e363d9c5f793897acae1f0c7ac40149216035c4d395d9d zimg-gtest-1.8.0.tar.gz"
diff --git a/testing/zimwriterfs/APKBUILD b/testing/zimwriterfs/APKBUILD
deleted file mode 100644
index 8ee65192723..00000000000
--- a/testing/zimwriterfs/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Oleg Titov <oleg.titov@gmail.com>
-# Maintainer: Oleg Titov <oleg.titov@gmail.com>
-pkgname=zimwriterfs
-pkgver=1.3.8
-pkgrel=3
-pkgdesc="Console tool to create ZIM files"
-url="https://openzim.org/"
-arch="all !mips !mips64" # blocked by libzim-dev
-license="GPL-3.0-or-later"
-makedepends="meson gumbo-parser-dev file-dev libzim-dev"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/openzim/zimwriterfs/archive/$pkgver.tar.gz"
-
-build() {
- meson \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --buildtype=plain \
- . build
- ninja -C build
-}
-
-check() {
- ninja -C build test
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
-
- install -Dm 644 -t "$pkgdir/usr/share/doc/$pkgname" README.md
-}
-
-sha512sums="7e2893f81b68a624a8308ef6fcfcf39eee1e2c3af28d15bb2f42c5dcfd62027eb04eea900407d910379f28ff7cc1bda0035d649c90e8f5dc21c81c0390b87adf zimwriterfs-1.3.8.tar.gz"
diff --git a/testing/zita-convolver/APKBUILD b/testing/zita-convolver/APKBUILD
deleted file mode 100644
index 87b982c58f8..00000000000
--- a/testing/zita-convolver/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: David Demelier <markand@malikania.fr>
-# Maintainer: David Demelier <markand@malikania.fr>
-pkgname=zita-convolver
-pkgver=4.0.3
-pkgrel=0
-pkgdesc="fast, partitioned convolution engine library"
-url="https://kokkinizita.linuxaudio.org/linuxaudio"
-arch="all"
-license="GPL-3.0-only"
-makedepends="fftw-dev"
-subpackages="$pkgname-dev"
-source="https://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-convolver-$pkgver.tar.bz2
- patch-Makefile.patch"
-builddir="$srcdir/$pkgname-$pkgver/source"
-options="!check" # No tests
-
-build() {
- make
-}
-
-package() {
- make LIBDIR=/usr/lib PREFIX=/usr DESTDIR="$pkgdir" install
-}
-
-sha512sums="62d7841757f10c094e43ed755e187f947c5743f302ed2a1ee6064a850c18921466f4505d8a2a7b3ad23619db7f1ad7307e1dfb2e8a1e7685e60ece2ffff4f6ca zita-convolver-4.0.3.tar.bz2
-15e07b06813ca336200a064734f7d2ef54cb74dfd438708675bb85b9cfd30f02c7b8c9b4e4abea368286c07a6e4e1ed5ae62cd69e6dc528e26d15cee5ff98c12 patch-Makefile.patch"
diff --git a/testing/zita-convolver/patch-Makefile.patch b/testing/zita-convolver/patch-Makefile.patch
deleted file mode 100644
index 500224a8cc8..00000000000
--- a/testing/zita-convolver/patch-Makefile.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Calls ldconfig which is not available and remove -march=native because it's not
-portable across platforms.
-
-Upstream: rejected, author not cooperative.
-
-From: Fons Adriaensen <fons@linuxaudio.org>
-To: David Demelier <markand@malikania.fr>
-Subject: Re: [PATCH] zita-convolver: fix build on Alpine Linux
-> I've packaged your zita-convolver software under Alpine Linux (which
-> uses musl [1] libc). Distributions that use musl do not have ldconfig
-> and even with, it's a system command that should not be called directly
-> from the software IMHO. It's a packager/user issue.
-
-Don't know what you mean by 'should not be called directly from the
-software', but calling ldconfig is required on most Linux systems
-when installing a shared library.
-
-> Also, it looks like the -march=native option isn't portable, it is not
-> recognized under certains architectures (s390x IIRC).
-
-If I would remove everything that isn't supported everywhere from
-zita-convolver, then it would simply not exist.
-
-The source code and Makefile are meant to work on most Linux
-systems. When that is not the case it is up to the packagers
-to make the required changes.
-
-So, thanks for the work done, but these changes won't make it
-into the code I make available.
---- a/Makefile 2020-04-17 23:15:45.045478833 +0200
-+++ b/Makefile 2020-04-17 23:15:51.438846231 +0200
-@@ -34,7 +34,6 @@
- CPPFLAGS += -I. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
- CPPFLAGS += -DENABLE_VECTOR_MODE
- CXXFLAGS += -fPIC -Wall -ffast-math -funroll-loops -O2
--CXXFLAGS += -march=native
- LDLFAGS +=
- LDLIBS +=
-
-@@ -56,7 +55,6 @@
- install -d $(DESTDIR)$(LIBDIR)
- install -m 644 $(ZITA-CONVOLVER_H) $(DESTDIR)$(INCDIR)
- install -m 755 $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR)
-- ldconfig
- ln -sf $(ZITA-CONVOLVER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-CONVOLVER_SO)
-
- uninstall:
diff --git a/testing/zita-njbridge/APKBUILD b/testing/zita-njbridge/APKBUILD
new file mode 100644
index 00000000000..2ce9aec46d8
--- /dev/null
+++ b/testing/zita-njbridge/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jacek Pruciak <alpine@juniorjpdj.pl>
+# Maintainer: Jacek Pruciak <alpine@juniorjpdj.pl>
+pkgname=zita-njbridge
+pkgver=0.4.8
+pkgrel=1
+pkgdesc="Command line Jack clients to transmit full quality multichannel audio over a local IP network"
+url="https://kokkinizita.linuxaudio.org/linuxaudio"
+arch="all"
+license="GPL-3.0-only"
+makedepends="zita-resampler-dev jack-dev"
+subpackages="$pkgname-doc"
+source="https://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-njbridge-$pkgver.tar.bz2"
+options="!check" # No tests
+
+build() {
+ make -C source
+}
+
+package() {
+ make PREFIX=/usr DESTDIR="$pkgdir" -C source install
+}
+
+sha512sums="
+0e2b5882bfdc9a67b84c6446bcbb75e496c64ed19ac3ddf06dddc6e10fe57510f27096c341a6e3b2e563d10489ecc1acb5666ff4c4df10586e648c5d62164832 zita-njbridge-0.4.8.tar.bz2
+"
diff --git a/testing/zita-resampler/APKBUILD b/testing/zita-resampler/APKBUILD
index 2a641d70913..9c364e94690 100644
--- a/testing/zita-resampler/APKBUILD
+++ b/testing/zita-resampler/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: David Demelier <markand@malikania.fr>
# Maintainer: David Demelier <markand@malikania.fr>
pkgname=zita-resampler
-pkgver=1.6.2
+pkgver=1.10.1
pkgrel=0
pkgdesc="library for resampling audio signals"
url="https://kokkinizita.linuxaudio.org/linuxaudio"
@@ -9,7 +9,7 @@ arch="all"
license="GPL-3.0-only"
makedepends="libsndfile-dev"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-resampler-$pkgver.tar.bz2
+source="https://kokkinizita.linuxaudio.org/linuxaudio/downloads/zita-resampler-$pkgver.tar.xz
patch-Makefile.patch"
options="!check" # No tests
@@ -24,7 +24,12 @@ build() {
package() {
make PREFIX=/usr LIBDIR=/usr/lib DESTDIR="$pkgdir" -C source install
make PREFIX=/usr LIBDIR=/usr/lib DESTDIR="$pkgdir" -C apps install
+
+ # Needed for zita-njbridge and some other MAO software.
+ ln -sf libzita-resampler.so.$pkgver "$pkgdir"/usr/lib/libzita-resampler.so.1
}
-sha512sums="d547419dd222c8a399d8f196efa1ec88a3f781275b696ae2fe1bb6e2fc329285affb8aace85972c304ad256becc4a155534dd5ef4ce3c57cbc9dcca0122b670c zita-resampler-1.6.2.tar.bz2
-2b69d34c768465ac92a3f6e3fbccb89099b221c097c22323f10b6db0a7d8941d805dc1869f51d172bfe0e86ce53e0f112c5cce9647f24795c1faa09573b1531d patch-Makefile.patch"
+sha512sums="
+ba95286b0744df393194f4f94a8aad62f6c088cf80f6be71482ed55beef6503a9bab6644f2565b69002247611fcf0fb6561fc0072578466a0133311721b43cf5 zita-resampler-1.10.1.tar.xz
+787433be1250d83c30e1de129a41fcde4f96679b1e05b644f20ca7d47609cd032e08f1c925bf8cea9a7a66f4225eb64f15516cd010a9ad60534b5c13215aa647 patch-Makefile.patch
+"
diff --git a/testing/zita-resampler/patch-Makefile.patch b/testing/zita-resampler/patch-Makefile.patch
index a7b0925575f..e1d9f56358c 100644
--- a/testing/zita-resampler/patch-Makefile.patch
+++ b/testing/zita-resampler/patch-Makefile.patch
@@ -1,35 +1,21 @@
Calls ldconfig which is not available and remove -march=native because it's not
portable across platforms.
-Upstream: not yet, in touch with the author.
---- a/apps/Makefile 2020-04-17 19:56:50.213695405 +0200
-+++ b/apps/Makefile 2020-04-17 19:56:59.230416753 +0200
-@@ -55,8 +55,8 @@
-
-
- install: all
-- install -d $(BINDIR)
-- install -d $(MANDIR)
-+ install -d $(DESTDIR)$(BINDIR)
-+ install -d $(DESTDIR)$(MANDIR)
- install -m 755 zresample $(DESTDIR)$(BINDIR)
- install -m 755 zretune $(DESTDIR)$(BINDIR)
- install -m 644 zresample.1.gz $(DESTDIR)$(MANDIR)
---- a/source/Makefile 2020-04-19 10:26:26.758860827 +0200
-+++ b/source/Makefile 2020-04-19 10:26:38.365583098 +0200
-@@ -33,7 +33,6 @@
+Upstream: no, upstream author isn't cooperative.
+diff --git a/source/Makefile b/source/Makefile
+index c7aa3b3..b2140b9 100644
+--- a/source/Makefile
++++ b/source/Makefile
+@@ -31,11 +31,9 @@ VERSION = $(MAJVERS).$(MINVERS)
+ DISTDIR = zita-resampler-$(VERSION)
CPPFLAGS += -I. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
- CXXFLAGS += -Wall -fPIC -O2 -ffast-math
+-CPPFLAGS += -DENABLE_SSE2
+ CPPFLAGS += -DZITA_RESAMPLER_MAJOR_VERSION=$(MAJVERS)
+ CPPFLAGS += -DZITA_RESAMPLER_MINOR_VERSION=$(MINVERS)
+-CXXFLAGS += -Wall -fPIC -O2 -ffast-math
-CXXFLAGS += -march=native
++CXXFLAGS += -Wall -fPIC -O2
LDFLAGS +=
LDLIBS +=
-@@ -58,7 +57,6 @@
- install -d $(DESTDIR)$(LIBDIR)
- install -m 644 $(ZITA-RESAMPLER_H) $(DESTDIR)$(INCDIR)/zita-resampler
- install -m 755 $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR)
-- ldconfig
- ln -sf $(ZITA-RESAMPLER_MIN) $(DESTDIR)$(LIBDIR)/$(ZITA-RESAMPLER_SO)
-
- uninstall:
diff --git a/testing/zkgroup/APKBUILD b/testing/zkgroup/APKBUILD
new file mode 100644
index 00000000000..8071f771c78
--- /dev/null
+++ b/testing/zkgroup/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Siva Mahadevan <me@svmhdvn.name>
+# Maintainer: Siva Mahadevan <me@svmhdvn.name>
+pkgname=zkgroup
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="Library for the Signal Private Group System"
+url="https://github.com/signalapp/zkgroup"
+arch="all !s390x !ppc64le !riscv64" # limited by cargo
+license="GPL-3.0-only"
+makedepends="cargo cargo-auditable"
+source="$pkgname-$pkgver.tar.gz::https://github.com/signalapp/zkgroup/archive/v$pkgver.tar.gz"
+
+
+build() {
+ cargo auditable build --release --locked
+}
+
+check() {
+ cargo test --release --locked
+}
+
+package() {
+ install -Dm755 "target/release/libzkgroup.so" "$pkgdir/usr/lib/libzkgroup.so"
+}
+
+sha512sums="
+1323a736fe72ef55d80cbcaaca77a34c6693f37b083cb9af88c9d805cf227ab42f095e690166e01b290923dfdc87207c4d0fdd30de8718d1859b83558252d4d1 zkgroup-0.9.0.tar.gz
+"
diff --git a/testing/zls/APKBUILD b/testing/zls/APKBUILD
new file mode 100644
index 00000000000..7df2a3b7077
--- /dev/null
+++ b/testing/zls/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Rabindra Dhakal <contact@qaidvoid.dev>
+pkgname=zls
+pkgver=0.11.0
+pkgrel=1
+_knownfolders=a564f582122326328dad6b59209d070d57c4e6ae
+_diffz=90353d401c59e2ca5ed0abe5444c29ad3d7489aa
+_binned_allocator=6c3321e0969ff2463f8335da5601986cf2108690
+pkgdesc="Zig Language Server"
+url="https://github.com/zigtools/zls"
+arch="aarch64 x86_64"
+license="MIT"
+depends="zig"
+source="$pkgname-$pkgver.tar.gz::https://github.com/zigtools/zls/archive/refs/tags/$pkgver.tar.gz
+ known-folders-$_knownfolders.tar.gz::https://github.com/ziglibs/known-folders/archive/$_knownfolders.tar.gz
+ diffz-$_diffz.tar.gz::https://github.com/ziglibs/diffz/archive/$_diffz.tar.gz
+ binned_allocator-$_binned_allocator::https://gist.github.com/antlilja/8372900fcc09e38d7b0b6bbaddad3904/archive/$_binned_allocator.tar.gz"
+
+prepare() {
+ default_prepare
+
+ mkdir -p "$srcdir"/cache/p
+ mv "$srcdir"/known-folders-$_knownfolders "$srcdir"/cache/p/122048992ca58a78318b6eba4f65c692564be5af3b30fbef50cd4abeda981b2e7fa5
+ mv "$srcdir"/diffz-$_diffz "$srcdir"/cache/p/122089a8247a693cad53beb161bde6c30f71376cd4298798d45b32740c3581405864
+ mv "$srcdir"/binned_allocator-$_binned_allocator "$srcdir"/cache/1220363c7e27b2d3f39de6ff6e90f9537a0634199860fea237a55ddb1e1717f5d6a5
+}
+
+build() {
+ export ZIG_GLOBAL_CACHE_DIR="$srcdir"/cache
+ zig build \
+ -Dcpu=baseline \
+ -Dtarget=native-linux.6.1 \
+ -Doptimize=ReleaseSafe \
+ -Dpie=true
+}
+
+check() {
+ export ZIG_GLOBAL_CACHE_DIR="$srcdir"/cache
+ zig build test \
+ -Dcpu=baseline \
+ -Dtarget=native-linux.6.1 \
+ -Doptimize=ReleaseSafe \
+ -Dpie=true
+}
+
+package() {
+ install -Dm755 zig-out/bin/zls -t "$pkgdir"/usr/bin/
+}
+
+sha512sums="
+88a754cdd110997736ceda1c6f145267d1c72c83ff0d5946d8d0b40ec64668f2e6b826b9d3ca1c2f195b304097968a4fe61ae4778e3f571638dde87d8f03c21d zls-0.11.0.tar.gz
+4aa0148e859fb9cb0bc816906dedd204f16ce3001f07f13ad688b1307036d2517373a5bc9184a9aa3634be51851658f4da9b4484718e089c6cc65a30c725fe00 known-folders-a564f582122326328dad6b59209d070d57c4e6ae.tar.gz
+387ee728bdc96ba44e3a7a1974e109377f0ca8a4802198a3dc1d5160af682b9a8613309e105ab4f65e76fe1fae08b88463aa692f643e7d8cc03db4de2f94b847 diffz-90353d401c59e2ca5ed0abe5444c29ad3d7489aa.tar.gz
+62c7ed619b7cda6ca197c13066c3b6320baa16ff0f8e48b6ed1dd6dde26fd9cd652c78b8e975a43055fc5fad8b014531f32d95efc878ed863cf2b80b06668897 binned_allocator-6c3321e0969ff2463f8335da5601986cf2108690
+"
diff --git a/testing/znc-backlog/APKBUILD b/testing/znc-backlog/APKBUILD
new file mode 100644
index 00000000000..74b73000f6c
--- /dev/null
+++ b/testing/znc-backlog/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=znc-backlog
+pkgver=0_git20210503
+pkgrel=7
+pkgdesc="Request backlog for IRC channels"
+url="https://wiki.znc.in/Backlog"
+arch="all"
+license="Apache-2.0"
+makedepends="znc-dev icu-dev openssl-dev>3 zlib-dev"
+# Upstream does not version, instead use the most recent hash of their master branch
+_latest_upstream_hash="44314a6aca0409ae59b0d841807261be1159fff4"
+source="$pkgname-$pkgver.tar.gz::https://github.com/FruitieX/znc-backlog/archive/$_latest_upstream_hash.tar.gz"
+options="!check" # Upstream has no tests
+builddir="$srcdir/$pkgname-$_latest_upstream_hash"
+
+build() {
+ make
+}
+
+package() {
+ install -D -m644 "$builddir"/backlog.so "$pkgdir"/usr/lib/znc/backlog.so
+}
+
+sha512sums="
+7dc77c5aa0243b147b5cf8ffd15566a2859927c856ec364c25809c5a2394733c703f6bc292ef55f9e9be74d4bab9921feeb208a669c153e43d405226796cc41c znc-backlog-0_git20210503.tar.gz
+"
diff --git a/testing/znc-clientbuffer/APKBUILD b/testing/znc-clientbuffer/APKBUILD
new file mode 100644
index 00000000000..9968fc0e77c
--- /dev/null
+++ b/testing/znc-clientbuffer/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=znc-clientbuffer
+pkgver=1.0.48
+pkgrel=7
+pkgdesc="ZNC module for client specific buffers"
+url="https://wiki.znc.in/Clientbuffer"
+arch="all"
+license="MIT"
+makedepends="znc-dev icu-dev openssl-dev>3 zlib-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/CyberShadow/znc-clientbuffer/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # Upstream has no tests
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ make PREFIX=/usr
+}
+
+package() {
+ install -D -m644 "$builddir"/clientbuffer.so "$pkgdir"/usr/lib/znc/clientbuffer.so
+}
+
+sha512sums="
+eac4d748b670a8e3563a424fcb5c9c411af6c9b1f9965f065936ddfcfbff946783e34e0d6b32de18fb3b87fb27db129ff58bedfb179473c804750a9b770897f6 znc-clientbuffer-1.0.48.tar.gz
+"
diff --git a/testing/znc-playback/APKBUILD b/testing/znc-playback/APKBUILD
new file mode 100644
index 00000000000..2455d41c228
--- /dev/null
+++ b/testing/znc-playback/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=znc-playback
+pkgver=0_git20210503
+pkgrel=7
+pkgdesc="An advanced playback module for ZNC"
+url="https://wiki.znc.in/Playback"
+arch="all"
+license="Unlicense"
+makedepends="znc-dev icu-dev openssl-dev>3 zlib-dev"
+# Upstream does not version, instead use the most recent hash of their master branch
+_latest_upstream_hash="8dd128bfe2b24b2cc6a9ea2e2d28bfaa28d2a833"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jpnurmi/znc-playback/archive/$_latest_upstream_hash.tar.gz"
+options="!check" # Upstream has no tests
+builddir="$srcdir/$pkgname-$_latest_upstream_hash"
+
+build() {
+ make
+}
+
+package() {
+ install -D -m644 "$builddir"/playback.so "$pkgdir"/usr/lib/znc/playback.so
+}
+
+sha512sums="
+50e924574c71fb6ace98c654201040aa2c193f4f1f811aa2ea26ad6ce6ced21bafe61c207936164125d84509e252890b383b21d904fe4cd46490711073052daf znc-playback-0_git20210503.tar.gz
+"
diff --git a/testing/znc-push/APKBUILD b/testing/znc-push/APKBUILD
new file mode 100644
index 00000000000..257b5729e28
--- /dev/null
+++ b/testing/znc-push/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Mike Crute <mike@crute.us>
+# Maintainer: Mike Crute <mike@crute.us>
+pkgname=znc-push
+pkgver=0_git20220823
+pkgrel=7
+pkgdesc="Push notification service module for ZNC"
+url="https://wiki.znc.in/Push"
+arch="all"
+license="MIT"
+makedepends="znc-dev icu-dev openssl-dev>3 zlib-dev"
+# Upstream does not version, instead use the most recent hash of their master branch
+_latest_upstream_hash="23d84678de2696e0b1f51aa5074764d29a98d37b"
+source="$pkgname-$pkgver.tar.gz::https://github.com/jreese/znc-push/archive/$_latest_upstream_hash.tar.gz"
+options="!check" # Upstream has no tests
+builddir="$srcdir/$pkgname-$_latest_upstream_hash"
+
+build() {
+ make
+}
+
+package() {
+ install -D -m644 "$builddir"/push.so "$pkgdir"/usr/lib/znc/push.so
+}
+
+sha512sums="
+014361220ab8056157572117fe64f86c23b6ff398f4684d5e8b8c3687e668d3eba54d7866e5040474d55e9a364d2d2c812d68a521a1cebf74e6a23880a10a1ba znc-push-0_git20220823.tar.gz
+"
diff --git a/testing/zola/APKBUILD b/testing/zola/APKBUILD
deleted file mode 100644
index 0e1c4ea8587..00000000000
--- a/testing/zola/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
-pkgname=zola
-pkgver=0.11.0
-pkgrel=0
-pkgdesc="Opionated static site generator"
-url="https://github.com/getzola/zola"
-# (! denote spurious SIGSEGVs, depends on upstream LLVM x Rust)
-arch="x86_64 !armv7 armhf aarch64 !x86" # Limited by cargo
-license="MIT"
-makedepends="cargo openssl-dev libsass-dev oniguruma-dev"
-subpackages="
- $pkgname-zsh-completion
- $pkgname-fish-completion
- $pkgname-bash-completion
- "
-source="$pkgname-$pkgver.tar.gz::https://github.com/getzola/zola/archive/v$pkgver.tar.gz"
-
-export RUSTONIG_SYSTEM_LIBONIG=1 # Link against system liboniguruma
-
-build() {
- cargo build --release --verbose --locked
-}
-
-check() {
- cargo test all --release --verbose --locked
-}
-
-package() {
- install -Dm0755 target/release/zola "$pkgdir"/usr/bin/zola
-
- install -Dm644 "$builddir"/completions/zola.bash \
- "$pkgdir"/usr/share/bash-completion/completions/zola
- install -Dm644 "$builddir"/completions/_zola \
- "$pkgdir"/usr/share/zsh/site-functions/_zola
- install -Dm644 "$builddir"/completions/zola.fish \
- "$pkgdir"/usr/share/fish/completions/zola.fish
-}
-
-
-sha512sums="5dfa1cfa084ad2b5d526f328ec8c78e3fc9f764bd2915ed2fd2913d9ca3392dab6952f5d39596824d514fccfce1fd957c9f2a647b19bcd53af6c1c5253040360 zola-0.11.0.tar.gz"
diff --git a/testing/zot/APKBUILD b/testing/zot/APKBUILD
new file mode 100644
index 00000000000..7cc8c40ae51
--- /dev/null
+++ b/testing/zot/APKBUILD
@@ -0,0 +1,132 @@
+# Maintainer: Hoang Nguyen <folliekazetani@protonmail.com>
+pkgname=zot
+pkgver=2.0.1
+_zui_commit=f4a6030d93c4111af699a3ea0c154bd212e5aa06
+pkgrel=3
+pkgdesc="Vendor-neutral OCI-native container image registry"
+url="https://zotregistry.io/"
+# 32-bit, s390x, riscv64: tests fail to build
+arch="all !armv7 !armhf !x86 !s390x !riscv64"
+license="Apache-2.0"
+makedepends="go linux-headers npm nodejs"
+subpackages="
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-cli:_cli
+ $pkgname-exporter:_exporter
+ $pkgname-cli-bash-completion:_bashcomp:noarch
+ $pkgname-cli-fish-completion:_fishcomp:noarch
+ $pkgname-cli-zsh-completion:_zshcomp:noarch
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/project-zot/zot/archive/refs/tags/v$pkgver.tar.gz
+ zui-$_zui_commit.tar.gz::https://github.com/project-zot/zui/archive/$_zui_commit.tar.gz
+ zot.initd
+ zot.confd
+
+ basename_patch
+ bump-go-sqlite3.patch
+ "
+options="net" # download Go modules
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+prepare() {
+ default_prepare
+ go mod vendor -v
+ patch -p1 -i "$srcdir"/basename_patch
+
+ cd "$srcdir"/zui-$_zui_commit
+ npm install --no-progress
+}
+
+build() {
+ cd "$srcdir"/zui-$_zui_commit
+ npm run build
+ cp -r build "$builddir"/pkg/extensions/
+
+ cd "$builddir"
+ local _extensions="sync,search,scrub,metrics,lint,ui,mgmt,profile,userprefs,imagetrust"
+ local _goldflags="
+ -X zotregistry.io/zot/pkg/api/config.ReleaseTag=v$pkgver
+ -X zotregistry.io/zot/pkg/api/config.Commit=AlpineLinux
+ -X zotregistry.io/zot/pkg/api/config.BinaryType=${_extensions//,/-}
+ -X zotregistry.io/zot/pkg/api/config.GoVersion=$(go env GOVERSION)
+ "
+
+ for binary in zot zb zli; do
+ go build -v \
+ -ldflags "$_goldflags" \
+ -tags "$_extensions,containers_image_openpgp" \
+ ./cmd/$binary
+ done
+ go build -v -tags containers_image_openpgp ./cmd/zxp
+
+ # Only generate shell completions for the CLI client
+ for shell in bash fish zsh; do
+ ./zli completion $shell > zli.$shell
+ done
+}
+
+check() {
+ # Skip tests requiring static container image tarballs (pulled via skopeo) in ./test/data/
+ # and oras binary in ./hack/tools/
+ # shellcheck disable=2046
+ go test -tags containers_image_openpgp \
+ -skip TestHTTPClient \
+ $(go list ./... | grep -v \
+ -e 'pkg/test/image-utils$' \
+ -e 'pkg/test/common$' \
+ -e 'pkg/storage/local$')
+}
+
+package() {
+ install -Dm755 zot -t "$pkgdir"/usr/bin/
+
+ install -Dm644 examples/config-*.json -t "$pkgdir"/usr/share/doc/zot/examples/
+
+ install -Dm755 "$srcdir"/zot.initd -t "$pkgdir"/etc/init.d/zot
+ install -Dm644 "$srcdir"/zot.confd -t "$pkgdir"/etc/conf.d/zot
+}
+
+_cli() {
+ pkgdesc="$pkgdesc - CLI tools"
+ install -Dm755 "$builddir"/zli "$builddir"/zb -t "$subpkgdir"/usr/bin/
+}
+
+_exporter() {
+ pkgdesc="$pkgdesc - metrics exporter"
+ install -Dm755 "$builddir"/zxp -t "$subpkgdir"/usr/bin/
+}
+
+_bashcomp() {
+ pkgdesc="Bash completions for $pkgname-cli"
+ install_if="bash-completion $pkgname-cli=$pkgver-r$pkgrel"
+ install -Dm644 "$builddir"/zli.bash \
+ "$subpkgdir"/usr/share/bash-completion/completions/zli
+}
+
+_fishcomp() {
+ pkgdesc="Fish completions for $pkgname-cli"
+ install_if="fish $pkgname-cli=$pkgver-r$pkgrel"
+ install -Dm644 "$builddir"/zli.fish \
+ "$subpkgdir"/usr/share/fish/vendor_completions.d/zli.fish
+}
+
+_zshcomp() {
+ pkgdesc="Zsh completions for $pkgname-cli"
+ install_if="zsh $pkgname-cli=$pkgver-r$pkgrel"
+ install -Dm644 "$builddir"/zli.zsh \
+ "$subpkgdir"/usr/share/zsh/site-functions/_zli
+}
+
+sha512sums="
+47fb6a87d6d9548c5add65ba9a3ba3b5bcd6e28a12989967c67ad491c0753521ba9b453d418cef32ecc4de6929868718a9cb4734c4dbadc1602bd9cd0ce9e81a zot-2.0.1.tar.gz
+8b0f168193c664bb9f22f3340c8fcf934cf20cb53f89e25be417efb5633deb01f2dcedbd4960b03a94490f89a44ac2e53def839e2aa9489eab6ca52759d02c18 zui-f4a6030d93c4111af699a3ea0c154bd212e5aa06.tar.gz
+86dfa273e97110b703fbc368757520ef6169dead185ff54b5b8ba45e764949bc3a21a51d53a1605d7163faef8c83c066e688577f5315b8c0afb09f69a2bbe3bb zot.initd
+b128ecaf3e35cfdab8069da9a8267a9faed50b892ae07b6a4a22a4108236d6cdbc10cc4cf0105c728e9e6da6ac773f56d1dd84de1ba4463110058b6c2f190b30 zot.confd
+640526de31a5eb21112c3d3fd30ce78331e5f5998166c9af9405ebad919a9a895ee82e3eed7067c2ce7e3e558e31907398fec1ad895be708e9f8ada696076216 basename_patch
+f7efef45062db2418d6b78d7767876ff9d37204ba66da764e94cff9492fc4c2807600f1d6574d2446db7f936a5bafdf4476d4ade400910f62d30ff675ee330e3 bump-go-sqlite3.patch
+"
diff --git a/testing/zot/basename_patch b/testing/zot/basename_patch
new file mode 100644
index 00000000000..4a11a3c1ba3
--- /dev/null
+++ b/testing/zot/basename_patch
@@ -0,0 +1,10 @@
+--- a/vendor/github.com/containers/storage/pkg/unshare/unshare.c
++++ b/vendor/github.com/containers/storage/pkg/unshare/unshare.c
+@@ -18,6 +18,7 @@
+ #include <sys/vfs.h>
+ #include <sys/mount.h>
+ #include <linux/limits.h>
++#include <libgen.h>
+
+ /* Open Source projects like conda-forge, want to package podman and are based
+ off of centos:6, Conda-force has minimal libc requirements and is lacking
diff --git a/testing/zot/bump-go-sqlite3.patch b/testing/zot/bump-go-sqlite3.patch
new file mode 100644
index 00000000000..da05ad0fb43
--- /dev/null
+++ b/testing/zot/bump-go-sqlite3.patch
@@ -0,0 +1,800 @@
+--- a/go.mod
++++ b/go.mod
+@@ -1,7 +1,9 @@
+ module zotregistry.io/zot
+
+-go 1.20
++go 1.21
+
++toolchain go1.22.0
++
+ require (
+ github.com/99designs/gqlgen v0.17.41
+ github.com/Masterminds/semver v1.5.0
+@@ -38,7 +40,7 @@
+ github.com/swaggo/swag v1.16.2
+ github.com/vektah/gqlparser/v2 v2.5.10
+ go.etcd.io/bbolt v1.3.8
+- golang.org/x/crypto v0.17.0
++ golang.org/x/crypto v0.18.0
+ gopkg.in/resty.v1 v1.12.0
+ gopkg.in/yaml.v2 v2.4.0
+ )
+@@ -60,13 +62,13 @@
+ github.com/swaggo/http-swagger v1.3.4
+ github.com/zitadel/oidc v1.13.5
+ golang.org/x/oauth2 v0.15.0
+- modernc.org/sqlite v1.27.0
++ modernc.org/sqlite v1.29.3
+ oras.land/oras-go/v2 v2.3.1
+ )
+
+ require (
+- golang.org/x/sync v0.5.0 // indirect
+- golang.org/x/sys v0.15.0 // indirect
++ golang.org/x/sync v0.6.0 // indirect
++ golang.org/x/sys v0.16.0 // indirect
+ golang.org/x/text v0.14.0 // indirect
+ )
+
+@@ -142,7 +144,6 @@
+ github.com/gosuri/uitable v0.0.4 // indirect
+ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect
+ github.com/jmoiron/sqlx v1.3.5 // indirect
+- github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
+ github.com/kylelemons/godebug v1.1.0 // indirect
+ github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
+ github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
+@@ -157,7 +158,7 @@
+ github.com/masahiro331/go-ext4-filesystem v0.0.0-20230612143131-27ccd485b7a1 // indirect
+ github.com/masahiro331/go-vmdk-parser v0.0.0-20221225061455-612096e4bbbd // indirect
+ github.com/masahiro331/go-xfs-filesystem v0.0.0-20230608043311-a335f4599b70 // indirect
+- github.com/mattn/go-sqlite3 v1.14.18 // indirect
++ github.com/mattn/go-sqlite3 v1.14.22 // indirect
+ github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
+ github.com/microsoft/go-rustaudit v0.0.0-20220808201409-204dfee52032 // indirect
+ github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect
+@@ -169,6 +170,7 @@
+ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
+ github.com/morikuni/aec v1.0.0 // indirect
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
++ github.com/ncruces/go-strftime v0.1.9 // indirect
+ github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481 // indirect
+ github.com/oleiade/reflections v1.0.1 // indirect
+ github.com/opencontainers/selinux v1.11.0 // indirect
+@@ -212,15 +214,12 @@
+ k8s.io/cli-runtime v0.28.2 // indirect
+ k8s.io/component-base v0.28.2 // indirect
+ k8s.io/kubectl v0.28.2 // indirect
+- lukechampine.com/uint128 v1.2.0 // indirect
+- modernc.org/cc/v3 v3.40.0 // indirect
+- modernc.org/ccgo/v3 v3.16.13 // indirect
+- modernc.org/libc v1.29.0 // indirect
++ modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect
++ modernc.org/libc v1.41.0 // indirect
+ modernc.org/mathutil v1.6.0 // indirect
+ modernc.org/memory v1.7.2 // indirect
+- modernc.org/opt v0.1.3 // indirect
+- modernc.org/strutil v1.1.3 // indirect
+- modernc.org/token v1.0.1 // indirect
++ modernc.org/strutil v1.2.0 // indirect
++ modernc.org/token v1.1.0 // indirect
+ oras.land/oras-go v1.2.4-0.20230829103011-4d0bf161925b // indirect
+ sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect
+ sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect
+@@ -469,10 +468,10 @@
+ go.uber.org/zap v1.26.0 // indirect
+ golang.org/x/exp v0.0.0-20231108232855-2478ac86f678
+ golang.org/x/mod v0.14.0 // indirect
+- golang.org/x/net v0.19.0 // indirect
+- golang.org/x/term v0.15.0 // indirect
++ golang.org/x/net v0.20.0 // indirect
++ golang.org/x/term v0.16.0 // indirect
+ golang.org/x/time v0.5.0 // indirect
+- golang.org/x/tools v0.15.0 // indirect
++ golang.org/x/tools v0.17.0 // indirect
+ golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
+ google.golang.org/api v0.152.0 // indirect
+ google.golang.org/appengine v1.6.8 // indirect
+@@ -499,3 +498,5 @@
+
+ // https://github.com/gorilla/mux/issues/739
+ replace github.com/gorilla/mux => github.com/gorilla/mux v1.8.0
++
++replace modernc.org/sqlite v1.27.0 => modernc.org/sqlite v1.29.3
+--- a/go.sum
++++ b/go.sum
+@@ -115,6 +115,7 @@
+ cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI=
+ cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8=
+ cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM=
++cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI=
+ cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
+ cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
+ cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
+@@ -203,6 +204,7 @@
+ github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA=
+ github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU=
+ github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230618160516-e936619f9f18 h1:rd389Q26LMy03gG4anandGFC2LW/xvjga5GezeeaxQk=
++github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230618160516-e936619f9f18/go.mod h1:fgJuSBrJP5qZtKqaMJE0hmhS2tmRH+44IkfZvjtaf1M=
+ github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0 h1:8+4G8JaejP8Xa6W46PzJEwisNgBXMvFcz78N6zG/ARw=
+ github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0/go.mod h1:GgeIE+1be8Ivm7Sh4RgwI42aTtC9qrcj+Y9Y6CjJhJs=
+ github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
+@@ -214,7 +216,9 @@
+ github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 h1:d81/ng9rET2YqdVkVwkb6EXeRrLJIwyGnJcAlAWKwhs=
+ github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI=
+ github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw=
++github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY=
+ github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80=
++github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI=
+ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
+ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
+ github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
+@@ -251,6 +255,7 @@
+ github.com/CycloneDX/cyclonedx-go v0.7.2 h1:kKQ0t1dPOlugSIYVOMiMtFqeXI2wp/f5DBIdfux8gnQ=
+ github.com/CycloneDX/cyclonedx-go v0.7.2/go.mod h1:K2bA+324+Og0X84fA8HhN2X066K7Bxz4rpMQ4ZhjtSk=
+ github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
++github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
+ github.com/GoogleCloudPlatform/docker-credential-gcr v2.0.5+incompatible h1:juIaKLLVhqzP55d8x4cSVgwyQv76Z55/fRv/UBr2KkQ=
+ github.com/GoogleCloudPlatform/docker-credential-gcr v2.0.5+incompatible/go.mod h1:BB1eHdMLYEFuFdBlRMb0N7YGVdM5s6Pt0njxgvfbGGs=
+ github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
+@@ -281,6 +286,7 @@
+ github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE=
+ github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
+ github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs=
++github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ=
+ github.com/ThalesIgnite/crypto11 v1.2.5 h1:1IiIIEqYmBvUYFeMnHqRft4bwf/O36jryEUpY+9ef8E=
+ github.com/ThalesIgnite/crypto11 v1.2.5/go.mod h1:ILDKtnCKiQ7zRoNxcp36Y1ZR8LBPmR2E23+wTQe/MlE=
+ github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
+@@ -297,6 +303,7 @@
+ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+ github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0=
++github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
+ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 h1:Kk6a4nehpJ3UuJRqlA3JxYxBZEqCeOmATOvrbT4p9RA=
+ github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4=
+ github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.2/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
+@@ -339,20 +346,25 @@
+ github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0=
+ github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
+ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk=
++github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
+ github.com/alicebob/miniredis/v2 v2.30.4 h1:8S4/o1/KoUArAGbGwPxcwf0krlzceva2XVOSchFS7Eo=
++github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg=
+ github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
+ github.com/aliyun/credentials-go v1.3.1 h1:uq/0v7kWrxmoLGpqjx7vtQ/s03f0zR//0br/xWDTE28=
+ github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0=
+ github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 h1:aM1rlcoLz8y5B2r4tTLMiVTrMtpfY0O8EScKJxaSaEc=
+ github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092/go.mod h1:rYqSE9HbjzpHTI74vwPvae4ZVYZd1lue2ta6xHPdblA=
+ github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
++github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
+ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
++github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
+ github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
+ github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU=
+ github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
+ github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
+ github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
+ github.com/aquasecurity/bolt-fixtures v0.0.0-20200903104109-d34e7f983986 h1:2a30xLN2sUZcMXl50hg+PJCIDdJgIvIbVcKqLJ/ZrtM=
++github.com/aquasecurity/bolt-fixtures v0.0.0-20200903104109-d34e7f983986/go.mod h1:NT+jyeCzXk6vXR5MTkdn4z64TgGfE5HMLC8qfj5unl8=
+ github.com/aquasecurity/defsec v0.93.1 h1:y4XgRknjs2M58XVLANBT1wulO7N6Rz1oyfwNuzID+h4=
+ github.com/aquasecurity/defsec v0.93.1/go.mod h1:i80K4WRNbcIWDOQDWnTHkutBwplzw/uZD4laKbhu4sE=
+ github.com/aquasecurity/go-dep-parser v0.0.0-20231030050624-4548cca9a5c9 h1:AYees+PQjw47SEdM6e/xxgrFzHA+UWxQl6WndDzILNY=
+@@ -369,6 +381,7 @@
+ github.com/aquasecurity/table v1.8.0 h1:9ntpSwrUfjrM6/YviArlx/ZBGd6ix8W+MtojQcM7tv0=
+ github.com/aquasecurity/table v1.8.0/go.mod h1:eqOmvjjB7AhXFgFqpJUEE/ietg7RrMSJZXyTN8E/wZw=
+ github.com/aquasecurity/testdocker v0.0.0-20230111101738-e741bda259da h1:pj/adfN0Wbzc0H8YkI1nX5K92wOU5/1/1TRuuc0y5Nw=
++github.com/aquasecurity/testdocker v0.0.0-20230111101738-e741bda259da/go.mod h1:852lbQLpK2nCwlR4ZLYIccxYCfoQao6q9Nl6tjz54v8=
+ github.com/aquasecurity/tml v0.6.1 h1:y2ZlGSfrhnn7t4ZJ/0rotuH+v5Jgv6BDDO5jB6A9gwo=
+ github.com/aquasecurity/tml v0.6.1/go.mod h1:OnYMWY5lvI9ejU7yH9LCberWaaTBW7hBFsITiIMY2yY=
+ github.com/aquasecurity/trivy v0.47.0 h1:Nlo5x5vCoBvPTz6QkHXgpYS7jT3WoCU7n7FHQ+A8FOk=
+@@ -385,6 +398,7 @@
+ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+ github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
++github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
+ github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
+ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
+ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
+@@ -453,6 +467,7 @@
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow=
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA=
+ github.com/aws/aws-sdk-go-v2/service/kms v1.27.2 h1:I0NiSQiZu1UzP0akJWXSacjckEpYdN4VN7XYYfW6EYs=
++github.com/aws/aws-sdk-go-v2/service/kms v1.27.2/go.mod h1:E2IzqbIZfYuYUgib2KxlaweBbkxHCb3ZIgnp85TjKic=
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4=
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ=
+ github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.25.2 h1:JKbfiLwEqJp8zaOAOn6AVSMS96gdwP3TjBMvZYsbxqE=
+@@ -488,13 +503,18 @@
+ github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I=
+ github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
+ github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M=
++github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0=
+ github.com/briandowns/spinner v1.23.0 h1:alDF2guRWqa/FOZZYWjlMIx2L6H0wyewPxo/CH4Pt2A=
+ github.com/briandowns/spinner v1.23.0/go.mod h1:rPG4gmXeN3wQV/TsAY4w8lPdIM6RX3yqeBQJSrbXjuE=
+ github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70=
++github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
+ github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
+ github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng=
++github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
+ github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ=
++github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
+ github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o=
++github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
+ github.com/buildkite/agent/v3 v3.59.0 h1:4+4gnl5DAgmDXs2JomzlVcYAiWJWkb6U9631Nh3wr0A=
+ github.com/buildkite/agent/v3 v3.59.0/go.mod h1:htNkEYNyaN7sNK63I1AIMJ30kR3l7IwxF5OCDh25jHY=
+ github.com/buildkite/go-pipeline v0.2.0 h1:+abnWSScMhJscxYgom2z0dzuXbjnYOz4RPeHmrfy31k=
+@@ -503,10 +523,13 @@
+ github.com/buildkite/interpolate v0.0.0-20200526001904-07f35b4ae251/go.mod h1:gbPR1gPu9dB96mucYIR7T3B7p/78hRVSOuzIWLHK2Y4=
+ github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
+ github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA=
++github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q=
+ github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
+ github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
+ github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M=
++github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
+ github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
++github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
+ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
+ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+@@ -544,6 +567,7 @@
+ github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg=
+ github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc=
+ github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE=
++github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
+ github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ=
+ github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be/go.mod h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w=
+ github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0=
+@@ -590,19 +614,24 @@
+ github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+ github.com/creack/pty v1.1.20 h1:VIPb/a2s17qNeQgDnkfZC35RScx+blkKF8GV68n80J4=
++github.com/creack/pty v1.1.20/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
+ github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46 h1:2Dx4IHfC1yHWI12AxQDJM1QbRCDfk6M+blLzlZCXdrc=
+ github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46/go.mod h1:uzvlm1mxhHkdfqitSA92i7Se+S9ksOn3a3qmv/kyOCw=
+ github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
+ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
+ github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE=
++github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec=
+ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
+ github.com/depcheck-test/depcheck-test v0.0.0-20220607135614-199033aaa936 h1:foGzavPWwtoyBvjWyKJYDYsyzy+23iBV7NKTwdk+LRY=
++github.com/depcheck-test/depcheck-test v0.0.0-20220607135614-199033aaa936/go.mod h1:ttKPnOepYt4LLzD+loXQ1rT6EmpyIYHro7TAJuIIlHo=
+ github.com/dgraph-io/badger/v3 v3.2103.5 h1:ylPa6qzbjYRQMU6jokoj4wzcaweHylt//CH0AKt0akg=
++github.com/dgraph-io/badger/v3 v3.2103.5/go.mod h1:4MPiseMeDQ3FNCYwRbbcBOGJLf5jsE0PPFzRiKjtcdw=
+ github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8=
++github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA=
+ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
+@@ -619,11 +648,13 @@
+ github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=
+ github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE=
+ github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc=
++github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2/go.mod h1:WHNsWjnIn2V1LYOrME7e8KxSeKunYHsxEm4am0BUtcI=
+ github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=
+ github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
+ github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E=
+ github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
+ github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
++github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
+ github.com/docker/cli v24.0.7+incompatible h1:wa/nIwYFW7BVTGa7SWPVyyXU9lgORqUb1xfI36MSkFg=
+ github.com/docker/cli v24.0.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+ github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
+@@ -641,9 +672,11 @@
+ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
+ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
+ github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 h1:UhxFibDNY/bfvqU5CAUmr9zpesgbU6SWc8/B4mflAE4=
++github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
+ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
+ github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
+ github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
++github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
+ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
+ github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+ github.com/emicklei/proto v1.12.1 h1:6n/Z2pZAnBwuhU66Gs8160B8rrrYKo7h2F2sCOnNceE=
+@@ -672,18 +705,24 @@
+ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
+ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
++github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
+ github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI=
++github.com/foxcpp/go-mockdns v1.0.0/go.mod h1:lgRN6+KxQBawyIghpnl5CezHFGS9VLzvtVlwxvzXTQ4=
+ github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
+ github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
++github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+ github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
+ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+ github.com/fxamacker/cbor/v2 v2.5.0 h1:oHsG0V/Q6E/wqTS2O1Cozzsy69nqCiguo5Q1a1ADivE=
++github.com/fxamacker/cbor/v2 v2.5.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo=
+ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+ github.com/glebarez/go-sqlite v1.20.3 h1:89BkqGOXR9oRmG58ZrzgoY/Fhy5x0M+/WV48U5zVrZ4=
++github.com/glebarez/go-sqlite v1.20.3/go.mod h1:u3N6D/wftiAzIOJtZl6BmedqxmmkDfH3q+ihjqxC9u0=
+ github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
++github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
+ github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA=
+ github.com/go-asn1-ber/asn1-ber v1.5.5/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
+ github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec=
+@@ -695,6 +734,7 @@
+ github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
+ github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
+ github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
++github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
+ github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
+ github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
+ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
+@@ -756,15 +796,20 @@
+ github.com/go-pkgz/expirable-cache v0.0.3 h1:rTh6qNPp78z0bQE6HDhXBHUwqnV9i09Vm6dksJLXQDc=
+ github.com/go-pkgz/expirable-cache v0.0.3/go.mod h1:+IauqN00R2FqNRLCLA+X5YljQJrwB179PfiAoMPlTlQ=
+ github.com/go-quicktest/qt v1.100.0 h1:I7iSLgIwNp0E0UnSvKJzs7ig0jg/Iq83zsZjtQNW7jY=
++github.com/go-quicktest/qt v1.100.0/go.mod h1:leyLsQ4jksGmF1KaQEyabnqGIiJTbOU5S46QegToEj4=
+ github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
+ github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
+ github.com/go-rod/rod v0.114.5 h1:1x6oqnslwFVuXJbJifgxspJUd3O4ntaGhRLHt+4Er9c=
++github.com/go-rod/rod v0.114.5/go.mod h1:aiedSEFg5DwG/fnNbUOTPMTTWX3MRj6vIs/a684Mthw=
+ github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
++github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
+ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+ github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
+ github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
++github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
+ github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg=
++github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
+ github.com/gobuffalo/logger v1.0.6 h1:nnZNpxYo0zx+Aj9RfMPBm+x9zAU2OayFh/xrAWi34HU=
+ github.com/gobuffalo/logger v1.0.6/go.mod h1:J31TBEHR1QLV2683OXTAItYIg8pv2JMHnF/quuAbMjs=
+ github.com/gobuffalo/packd v1.0.1 h1:U2wXfRr4E9DH8IdsDLlRFwTZTK7hLfq9qT/QHXGVe/0=
+@@ -774,8 +819,10 @@
+ github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
+ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
+ github.com/goccy/go-yaml v1.8.1 h1:JuZRFlqLM5cWF6A+waL8AKVuCcqvKOuhJtUQI+L3ez0=
++github.com/goccy/go-yaml v1.8.1/go.mod h1:wS4gNoLalDSJxo/SpngzPQ2BN4uuZVLCmbM4S3vd4+Y=
+ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+ github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
++github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+ github.com/godror/godror v0.24.2/go.mod h1:wZv/9vPiUib6tkoDl+AZ/QLf5YZgMravZ7jxH2eQWAE=
+ github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
+ github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
+@@ -794,6 +841,7 @@
+ github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
+ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+ github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
++github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
+ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+ github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+ github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+@@ -842,6 +890,7 @@
+ github.com/google/certificate-transparency-go v1.1.7 h1:IASD+NtgSTJLPdzkthwvAG1ZVbF2WtFg4IvoA68XGSw=
+ github.com/google/certificate-transparency-go v1.1.7/go.mod h1:FSSBo8fyMVgqptbfF6j5p/XNdgQftAhSmXcIxV9iphE=
+ github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM=
++github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
+ github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU=
+ github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M=
+ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+@@ -882,6 +931,7 @@
+ github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+ github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+ github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=
++github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+ github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+ github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+ github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+@@ -899,6 +949,7 @@
+ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+ github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b h1:RMpPgZTSApbPf7xaVel+QkoGPRLFLrwFO89uDUHEGf0=
++github.com/google/pprof v0.0.0-20231023181126-ff6d637d2a7b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik=
+ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+ github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
+ github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
+@@ -906,7 +957,9 @@
+ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
+ github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
+ github.com/google/tink/go v1.7.0 h1:6Eox8zONGebBFcCBqkVmt60LaWZa6xg1cl/DwAh/J1w=
++github.com/google/tink/go v1.7.0/go.mod h1:GAUOd+QE3pgj9q8VKIGTCP33c/B7eb4NhxLcgTJZStM=
+ github.com/google/trillian v1.5.3 h1:3ioA5p09qz+U9/t2riklZtaQdZclaStp0/eQNfewNRg=
++github.com/google/trillian v1.5.3/go.mod h1:p4tcg7eBr7aT6DxrAoILpc3uXNfcuAvZSnQKonVg+Eo=
+ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+@@ -962,6 +1015,7 @@
+ github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
+ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk=
++github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk=
+ github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
+ github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
+ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+@@ -974,6 +1028,7 @@
+ github.com/hashicorp/go-getter v1.7.2/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744=
+ github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
+ github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c=
++github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
+ github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
+ github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
+ github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
+@@ -983,12 +1038,16 @@
+ github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
+ github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
+ github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
++github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
+ github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo=
+ github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I=
+ github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs=
++github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8=
+ github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts=
++github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4=
+ github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
+ github.com/hashicorp/go-sockaddr v1.0.5 h1:dvk7TIXCZpmfOlM+9mlcrWmWjw/wlKT+VDq2wMvfPJU=
++github.com/hashicorp/go-sockaddr v1.0.5/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI=
+ github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
+ github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+@@ -1000,6 +1059,7 @@
+ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
++github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+ github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
+ github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
+ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+@@ -1012,7 +1072,9 @@
+ github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
+ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
+ github.com/hashicorp/vault/api v1.10.0 h1:/US7sIjWN6Imp4o/Rj1Ce2Nr5bki/AXi9vAW3p2tOJQ=
++github.com/hashicorp/vault/api v1.10.0/go.mod h1:jo5Y/ET+hNyz+JnKDt8XLAdKs+AM0G5W0Vp1IrFI8N8=
+ github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef h1:A9HsByNhogrvm9cWb28sjiS3i7tcKCkflWFEkHfuAgM=
++github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs=
+ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+ github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+ github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+@@ -1035,12 +1097,15 @@
+ github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267 h1:TMtDYDHKYY15rFihtRfck/bfFqNfvcabqvXAFQfAUpY=
+ github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267/go.mod h1:h1nSAbGFqGVzn6Jyl1R/iCcBUHN4g+gW1u9CoBTrb9E=
+ github.com/jellydator/ttlcache/v3 v3.1.0 h1:0gPFG0IHHP6xyUyXq+JaD8fwkDCqgqwohXNJBcYE71g=
++github.com/jellydator/ttlcache/v3 v3.1.0/go.mod h1:hi7MGFdMAwZna5n2tuvh63DvFLzVKySzCVW6+0gA2n4=
+ github.com/jeremija/gosubmit v0.2.7 h1:At0OhGCFGPXyjPYAsCchoBUhE099pcBXmsb4iZqROIc=
++github.com/jeremija/gosubmit v0.2.7/go.mod h1:Ui+HS073lCFREXBbdfrJzMB57OI/bdxTiLtrDHHhFPI=
+ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
+ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
+ github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+ github.com/jmhodges/clock v1.2.0 h1:eq4kys+NI0PLngzaHEe7AmPT90XMGIEySD1JfV1PDIs=
++github.com/jmhodges/clock v1.2.0/go.mod h1:qKjhA7x7u/lQpPB1XAqX1b1lCI/w3/fNuYpI/ZjLynI=
+ github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
+ github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
+ github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+@@ -1059,8 +1124,6 @@
+ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+ github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw=
+ github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk=
+-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
+-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
+ github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
+ github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
+ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+@@ -1167,8 +1230,8 @@
+ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+ github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
+ github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
+-github.com/mattn/go-sqlite3 v1.14.18 h1:JL0eqdCOq6DJVNPSvArO/bIV9/P7fbGrV00LZHc+5aI=
+-github.com/mattn/go-sqlite3 v1.14.18/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
++github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
++github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+ github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+ github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
+ github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
+@@ -1176,6 +1239,7 @@
+ github.com/microsoft/go-rustaudit v0.0.0-20220808201409-204dfee52032/go.mod h1:vYT9HE7WCvL64iVeZylKmCsWKfE+JZ8105iuh2Trk8g=
+ github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
+ github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo=
++github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
+ github.com/miekg/pkcs11 v1.0.3-0.20190429190417-a667d056470f/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
+ github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
+ github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
+@@ -1240,6 +1304,8 @@
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
++github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
++github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
+ github.com/nelsam/hel/v2 v2.3.2/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w=
+ github.com/nelsam/hel/v2 v2.3.3/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w=
+ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+@@ -1269,11 +1335,13 @@
+ github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
+ github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
+ github.com/onsi/ginkgo/v2 v2.13.1 h1:LNGfMbR2OVGBfXjvRZIZ2YCTQdGKtPLvuI1rMCCj3OU=
++github.com/onsi/ginkgo/v2 v2.13.1/go.mod h1:XStQ8QcGwLyF4HdfcZB8SFOS/MWCgDuXMSBe6zrvLgM=
+ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+ github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+ github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
+ github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8=
++github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
+ github.com/open-policy-agent/opa v0.59.0 h1:1WFU/KUhJAr3qatm0Lf8Ea5jp10ZmlE2M07oaLiHypg=
+ github.com/open-policy-agent/opa v0.59.0/go.mod h1:rdJSkEc4oQ+0074/3Fsgno5bkPsYxTjU5aLNmMujIvI=
+ github.com/opencontainers/distribution-spec/specs-go v0.0.0-20230117141039-067a0f5b0e25 h1:DpApB9YKcjGF1Lc8FmEAD5Xa1LRhVftJGgpe3+47Vc0=
+@@ -1295,6 +1363,7 @@
+ github.com/oras-project/artifacts-spec v1.0.0-rc.2 h1:9SMCNSxkJEHqWGDiMCuy6TXHgvjgwXGdXZZGXLKQvVE=
+ github.com/oras-project/artifacts-spec v1.0.0-rc.2/go.mod h1:Xch2aLzSwtkhbFFN6LUzTfLtukYvMMdXJ4oZ8O7BOdc=
+ github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU=
++github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w=
+ github.com/owenrumney/go-sarif v1.1.1/go.mod h1:dNDiPlF04ESR/6fHlPyq7gHKmrM0sHUvAGjsoh8ZH0U=
+ github.com/owenrumney/go-sarif/v2 v2.3.0 h1:wP5yEpI53zr0v5cBmagXzLbHZp9Oylyo3AJDpfLBITs=
+ github.com/owenrumney/go-sarif/v2 v2.3.0/go.mod h1:MSqMMx9WqlBSY7pXoOZWgEsVB4FDNfhcaXDA1j6Sr+w=
+@@ -1377,18 +1446,22 @@
+ github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
+ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+ github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
++github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
+ github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo=
++github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
+ github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
+ github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A=
+ github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
+ github.com/rubenv/sql-migrate v1.3.1 h1:Vx+n4Du8X8VTYuXbhNxdEUoh6wiJERA0GlWocR5FrbA=
+ github.com/rubenv/sql-migrate v1.3.1/go.mod h1:YzG/Vh82CwyhTFXy+Mf5ahAiiEOpAlHurg+23VEzcsk=
+ github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww=
++github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY=
+ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
+ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
+ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk=
++github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
+ github.com/sagikazarmark/locafero v0.3.0 h1:zT7VEGWC2DTflmccN/5T1etyKvxSxpHsjb9cJvm4SvQ=
+ github.com/sagikazarmark/locafero v0.3.0/go.mod h1:w+v7UsPNFwzF1cHuOajOOzoq4U7v/ig1mpRjqV+Bu1U=
+ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
+@@ -1400,6 +1473,7 @@
+ github.com/sassoftware/relic v7.2.1+incompatible h1:Pwyh1F3I0r4clFJXkSI8bOyJINGqpgjJU3DYAZeI05A=
+ github.com/sassoftware/relic v7.2.1+incompatible/go.mod h1:CWfAxv73/iLZ17rbyhIEq3K9hs5w6FpNMdUT//qR+zk=
+ github.com/sassoftware/relic/v7 v7.6.1 h1:O5s8ewCgq5QYNpv45dK4u6IpBmDM9RIcsbf/G1uXepQ=
++github.com/sassoftware/relic/v7 v7.6.1/go.mod h1:NxwtWxWxlUa9as2qZi635Ye6bBT/tGnMALLq7dSfOOU=
+ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+ github.com/secure-systems-lab/go-securesystemslib v0.7.0 h1:OwvJ5jQf9LnIAS83waAjPbcMsODrTQUpJ02eNLUoxBg=
+ github.com/secure-systems-lab/go-securesystemslib v0.7.0/go.mod h1:/2gYnlnHVQ6xeGtfIqFy7Do03K4cdCY0A/GlJLDKLHI=
+@@ -1423,9 +1497,13 @@
+ github.com/sigstore/sigstore v1.7.6 h1:zB0woXx+3Bp7dk7AjklHF1VhXBdCs84VXkZbp0IHLv8=
+ github.com/sigstore/sigstore v1.7.6/go.mod h1:FJE+NpEZIs4QKqZl4B2RtaVLVDcDtocAwTiNlexeBkY=
+ github.com/sigstore/sigstore/pkg/signature/kms/aws v1.7.6 h1:WzZExOcFanrFfCi7SUgkBtJicWnSNziBD9nSSQIrqhc=
++github.com/sigstore/sigstore/pkg/signature/kms/aws v1.7.6/go.mod h1:3zOHOLHnCE6EXyVH+6Z/lC9O1RDsbmR045NQ1DogiHw=
+ github.com/sigstore/sigstore/pkg/signature/kms/azure v1.7.6 h1:wsPt9kNXF1ZZyae2wO35NLsK+cjWqPGpuPaDdXzRe0g=
++github.com/sigstore/sigstore/pkg/signature/kms/azure v1.7.6/go.mod h1:LH+ct6D77J8Ks6PXijMYYhmlQ1mbqKHbmy7+Sw5/Woc=
+ github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.7.6 h1:aMVT9XXFQEnBtJ6szzanyAdKT5gFK4emN+jLSlFlOso=
++github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.7.6/go.mod h1:Hwhlx8JSZJF1R27JlwW/Bl2h40reG3MfKANREtBI0L8=
+ github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.7.6 h1:TdSHzcFtPJxbk4B+huWC6GDq7OpgHmLg18inRo9u70I=
++github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.7.6/go.mod h1:/l/PzSbTOuIAtglOwUdlzzYvjIZ2WyaBpt5722JTmLY=
+ github.com/sigstore/timestamp-authority v1.2.0 h1:Ffk10QsHxu6aLwySQ7WuaoWkD63QkmcKtozlEFot/VI=
+ github.com/sigstore/timestamp-authority v1.2.0/go.mod h1:ojKaftH78Ovfow9DzuNl5WgTCEYSa4m5622UkKDHRXc=
+ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+@@ -1438,6 +1516,7 @@
+ github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA=
+ github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog=
+ github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262 h1:unQFBIznI+VYD1/1fApl1A+9VcBk+9dcqGfnePY87LY=
++github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262/go.mod h1:MyOHs9Po2fbM1LHej6sBUT8ozbxmMOFG+E+rx/GSGuc=
+ github.com/smarty/assertions v1.15.0 h1:cR//PqUBUiQRakZWqBiFFQ9wb8emQGDb0HeGdqGByCY=
+ github.com/smarty/assertions v1.15.0/go.mod h1:yABtdzeQs6l1brC900WlRNwj6ZR55d7B+E8C6HtKdec=
+ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+@@ -1447,6 +1526,7 @@
+ github.com/smartystreets/goconvey v1.8.1/go.mod h1:+/u4qLyY6x1jReYOp7GOM2FSt8aP9CzCZL03bI28W60=
+ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
+ github.com/sosedoff/gitkit v0.4.0 h1:opyQJ/h9xMRLsz2ca/2CRXtstePcpldiZN8DpLLF8Os=
++github.com/sosedoff/gitkit v0.4.0/go.mod h1:V3EpGZ0nvCBhXerPsbDeqtyReNb48cwP9KtkUYTKT5I=
+ github.com/sosodev/duration v1.1.0 h1:kQcaiGbJaIsRqgQy7VGlZrVw1giWO+lDoX3MCPnpVO4=
+ github.com/sosodev/duration v1.1.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=
+ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
+@@ -1517,6 +1597,7 @@
+ github.com/tchap/go-patricia/v2 v2.3.1 h1:6rQp39lgIYZ+MHmdEq4xzuk1t7OdC35z/xm0BGhTkes=
+ github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
+ github.com/terminalstatic/go-xsd-validate v0.1.5 h1:RqpJnf6HGE2CB/lZB1A8BYguk8uRtcvYAPLCF15qguo=
++github.com/terminalstatic/go-xsd-validate v0.1.5/go.mod h1:18lsvYFofBflqCrvo1umpABZ99+GneNTw2kEEc8UPJw=
+ github.com/tetratelabs/wazero v1.2.1 h1:J4X2hrGzJvt+wqltuvcSjHQ7ujQxA9gb6PeMs4qlUWs=
+ github.com/tetratelabs/wazero v1.2.1/go.mod h1:wYx2gNRg8/WihJfSDxA1TIL8H+GkfLYm+bIfbblu9VQ=
+ github.com/thales-e-security/pool v0.0.2 h1:RAPs4q2EbWsTit6tpzuvTFlgFRJ3S8Evf5gtvVDbmPg=
+@@ -1548,9 +1629,11 @@
+ github.com/vektah/gqlparser/v2 v2.5.10 h1:6zSM4azXC9u4Nxy5YmdmGu4uKamfwsdKTwp5zsEealU=
+ github.com/vektah/gqlparser/v2 v2.5.10/go.mod h1:1rCcfwB2ekJofmluGWXMSEnPMZgbxzwj6FaZ/4OT8Cc=
+ github.com/veraison/go-cose v1.2.0 h1:Ok0Hr3GMAf8K/1NB4sV65QGgCiukG1w1QD+H5tmt0Ow=
++github.com/veraison/go-cose v1.2.0/go.mod h1:7ziE85vSq4ScFTg6wyoMXjucIGOf4JkFEZi/an96Ct4=
+ github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
+ github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
+ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
++github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
+ github.com/xanzy/go-gitlab v0.94.0 h1:GmBl2T5zqUHqyjkxFSvsT7CbelGdAH/dmBqUBqS+4BE=
+ github.com/xanzy/go-gitlab v0.94.0/go.mod h1:ETg8tcj4OhrB84UEgeE8dSuV/0h4BBL1uOV/qK0vlyI=
+ github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
+@@ -1577,10 +1660,15 @@
+ github.com/yashtewari/glob-intersection v0.2.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok=
+ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
+ github.com/ysmood/fetchup v0.2.3 h1:ulX+SonA0Vma5zUFXtv52Kzip/xe7aj4vqT5AJwQ+ZQ=
++github.com/ysmood/fetchup v0.2.3/go.mod h1:xhibcRKziSvol0H1/pj33dnKrYyI2ebIvz5cOOkYGns=
+ github.com/ysmood/goob v0.4.0 h1:HsxXhyLBeGzWXnqVKtmT9qM7EuVs/XOgkX7T6r1o1AQ=
++github.com/ysmood/goob v0.4.0/go.mod h1:u6yx7ZhS4Exf2MwciFr6nIM8knHQIE22lFpWHnfql18=
+ github.com/ysmood/got v0.34.1 h1:IrV2uWLs45VXNvZqhJ6g2nIhY+pgIG1CUoOcqfXFl1s=
++github.com/ysmood/got v0.34.1/go.mod h1:yddyjq/PmAf08RMLSwDjPyCvHvYed+WjHnQxpH851LM=
+ github.com/ysmood/gson v0.7.3 h1:QFkWbTH8MxyUTKPkVWAENJhxqdBa4lYTQWqZCiLG6kE=
++github.com/ysmood/gson v0.7.3/go.mod h1:3Kzs5zDl21g5F/BlLTNcuAGAYLKt2lV5G8D1zF3RNmg=
+ github.com/ysmood/leakless v0.8.0 h1:BzLrVoiwxikpgEQR0Lk8NyBN5Cit2b1z+u0mgL4ZJak=
++github.com/ysmood/leakless v0.8.0/go.mod h1:R8iAXPRaG97QJwqxs74RdwzcRHT1SWCGTNqY8q0JvMQ=
+ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+ github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+@@ -1590,10 +1678,15 @@
+ github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+ github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE=
++github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
+ github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI=
++github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
+ github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE=
++github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
+ github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY=
++github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
+ github.com/zalando/go-keyring v0.2.2 h1:f0xmpYiSrHtSNAVgwip93Cg8tuF45HJM6rHq/A5RI/4=
++github.com/zalando/go-keyring v0.2.2/go.mod h1:sI3evg9Wvpw3+n4SqplGSJUMwtDeROfD4nsFz4z9PG0=
+ github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
+ github.com/zclconf/go-cty v1.13.0 h1:It5dfKTTZHe9aeppbNOda3mN7Ag7sg6QkBNm6TkyFa0=
+ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0=
+@@ -1602,6 +1695,7 @@
+ github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs=
+ github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
+ github.com/zitadel/logging v0.3.4 h1:9hZsTjMMTE3X2LUi0xcF9Q9EdLo+FAezeu52ireBbHM=
++github.com/zitadel/logging v0.3.4/go.mod h1:aPpLQhE+v6ocNK0TWrBrd363hZ95KcI17Q1ixAQwZF0=
+ github.com/zitadel/oidc v1.13.5 h1:7jhh68NGZitLqwLiVU9Dtwa4IraJPFF1vS+4UupO93U=
+ github.com/zitadel/oidc v1.13.5/go.mod h1:rHs1DhU3Sv3tnI6bQRVlFa3u0lCwtR7S21WHY+yXgPA=
+ go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+@@ -1629,7 +1723,9 @@
+ go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc=
+ go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo=
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw=
++go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg=
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk=
++go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0=
+ go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4=
+ go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
+ go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8=
+@@ -1638,6 +1734,7 @@
+ go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=
+ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
+ go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
++go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
+ go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY=
+ go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
+ go.step.sm/crypto v0.38.0 h1:kRVtzOjplP5xDh9UlenXdDAtXWCfVL6GevZgpiom1Zg=
+@@ -1645,6 +1742,7 @@
+ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
+ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
++go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
+ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
+ go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
+@@ -1682,8 +1780,8 @@
+ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
+ golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
+ golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
+-golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
+-golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
++golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
++golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
+ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+@@ -1794,8 +1892,8 @@
+ golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
+ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+ golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ=
+-golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
+-golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
++golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
++golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
+ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+@@ -1839,8 +1937,8 @@
+ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+ golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+-golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
+-golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
++golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
++golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+ golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+@@ -1939,8 +2037,8 @@
+ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+-golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
+-golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
++golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
++golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+ golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+@@ -1954,8 +2052,8 @@
+ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
+ golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
+ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
+-golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
+-golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
++golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE=
++golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
+ golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+@@ -2046,8 +2144,8 @@
+ golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
+ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+ golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+-golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8=
+-golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
++golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
++golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
+ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+@@ -2329,6 +2427,7 @@
+ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+ gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
+ gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
++gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
+ helm.sh/helm/v3 v3.12.3 h1:5y1+Sbty12t48T/t/CGNYUIME5BJ0WKfmW/sobYqkFg=
+ helm.sh/helm/v3 v3.12.3/go.mod h1:KPKQiX9IP5HX7o5YnnhViMnNuKiL/lJBVQ47GHe1R0k=
+ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+@@ -2360,30 +2459,22 @@
+ k8s.io/kubectl v0.28.2/go.mod h1:6EQWTPySF1fn7yKoQZHYf9TPwIl2AygHEcJoxFekr64=
+ k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
+ k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+-lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI=
+-lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
+-modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw=
+-modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
+-modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw=
+-modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
+-modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk=
+-modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
+-modernc.org/libc v1.29.0 h1:tTFRFq69YKCF2QyGNuRUQxKBm1uZZLubf6Cjh/pVHXs=
+-modernc.org/libc v1.29.0/go.mod h1:DaG/4Q3LRRdqpiLyP0C2m1B8ZMGkQ+cCgOIjEtQlYhQ=
++modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
++modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
++modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI=
++modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
++modernc.org/libc v1.41.0 h1:g9YAc6BkKlgORsUWj+JwqoB1wU3o4DE3bM3yvA3k+Gk=
++modernc.org/libc v1.41.0/go.mod h1:w0eszPsiXoOnoMJgrXjglgLuDy/bt5RR4y3QzUUeodY=
+ modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
+ modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
+ modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
+ modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E=
+-modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
+-modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
+-modernc.org/sqlite v1.27.0 h1:MpKAHoyYB7xqcwnUwkuD+npwEa0fojF0B5QRbN+auJ8=
+-modernc.org/sqlite v1.27.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0=
+-modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
+-modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
+-modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY=
+-modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg=
+-modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+-modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY=
++modernc.org/sqlite v1.29.3 h1:6L71d3zXVB8oubdVSuwiurNyYRetQ3It8l1FSwylwQ0=
++modernc.org/sqlite v1.29.3/go.mod h1:MjUIBKZ+tU/lqjNLbVAAMjsQPdWdA/ciwdhsT9kBwk8=
++modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
++modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
++modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
++modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
+ oras.land/oras-go v1.2.4-0.20230829103011-4d0bf161925b h1:l686f99tTmPu2ivMXCQeEup0BRgl+JH9IPNEbqAude0=
+ oras.land/oras-go v1.2.4-0.20230829103011-4d0bf161925b/go.mod h1:3epPRss3O+fN+y5SrffVQuubeSpw9atz1gcaAX+V0Tw=
+ oras.land/oras-go/v2 v2.3.1 h1:lUC6q8RkeRReANEERLfH86iwGn55lbSWP20egdFHVec=
+@@ -2405,3 +2496,4 @@
+ sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
+ sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
+ software.sslmate.com/src/go-pkcs12 v0.2.0 h1:nlFkj7bTysH6VkC4fGphtjXRbezREPgrHuJG20hBGPE=
++software.sslmate.com/src/go-pkcs12 v0.2.0/go.mod h1:23rNcYsMabIc1otwLpTkCCPwUq6kQsTyowttG/as0kQ=
diff --git a/testing/zot/zot.confd b/testing/zot/zot.confd
new file mode 100644
index 00000000000..cd2532640b3
--- /dev/null
+++ b/testing/zot/zot.confd
@@ -0,0 +1,10 @@
+# zot service configuration options
+
+# user:group to run the process with
+#command_user="zot:zot"
+
+# location of the configuration file
+#cfgfile="/etc/zot/config.json"
+
+# comment to use traditional service management
+supervisor=supervise-daemon
diff --git a/testing/zot/zot.initd b/testing/zot/zot.initd
new file mode 100644
index 00000000000..50acbbf4ee2
--- /dev/null
+++ b/testing/zot/zot.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+: ${command_user:="zot:zot"}
+: ${cfgfile:="/etc/zot/config.json"}
+
+name=zot
+description="OCI-native container image registry"
+command="/usr/bin/zot"
+command_args="serve $cfgfile"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
+depend() {
+ need net localmount
+ after firewall
+}
+
+start_pre() {
+ $command verify "$cfgfile"
+}
diff --git a/testing/zot/zot.pre-install b/testing/zot/zot.pre-install
new file mode 100644
index 00000000000..1172808ceef
--- /dev/null
+++ b/testing/zot/zot.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S zot 2>/dev/null
+adduser -S -D -h /var/lib/zot -s /sbin/nologin -G zot -g zot zot 2>/dev/null
+
+exit 0
diff --git a/testing/zrepl/APKBUILD b/testing/zrepl/APKBUILD
new file mode 100644
index 00000000000..17376cf571b
--- /dev/null
+++ b/testing/zrepl/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Shawn Rose <shawnandrewrose@gmail.com>
+# Maintainer: Shawn Rose <shawnandrewrose@gmail.com>
+pkgname=zrepl
+pkgver=0.6.1
+pkgrel=3
+pkgdesc="one-stop, integrated solution for ZFS replication"
+url="https://zrepl.github.io/"
+# s390x: failing tests
+arch="all !s390x !armhf"
+license="MIT"
+makedepends="go bash"
+subpackages="
+ $pkgname-openrc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="
+ $pkgname-$pkgver.tar.gz::https://github.com/zrepl/zrepl/archive/v$pkgver.tar.gz
+ zrepl.yml
+ zrepl.initd
+ "
+
+export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
+export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
+export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"
+
+build() {
+ export GO111MODULE=on
+ go build \
+ -mod=readonly \
+ -ldflags "-X github.com/zrepl/zrepl/version.zreplVersion=v$pkgver" \
+ -o "artifacts/zrepl"
+ ./artifacts/zrepl gencompletion bash ./artifacts/bash-completion
+ ./artifacts/zrepl gencompletion zsh ./artifacts/zsh-completion
+}
+
+check() {
+ go test -mod=readonly ./...
+}
+
+package() {
+ install -Dm0755 artifacts/zrepl "$pkgdir"/usr/bin/zrepl
+ install -Dm755 "$srcdir"/zrepl.initd \
+ "$pkgdir"/etc/init.d/zrepl
+ install -Dm644 "$srcdir"/zrepl.yml \
+ "$pkgdir"/etc/zrepl/zrepl.yml
+ install -Dm0644 artifacts/bash-completion \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ install -Dm0644 artifacts/zsh-completion \
+ "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
+ cd "$builddir/config/samples"
+ find ./* -type f -exec install -m 644 -D "{}" "$pkgdir/usr/share/$pkgname/examples/{}" \;
+}
+
+cleanup_srcdir() {
+ export GOPATH="$srcdir"
+ go clean -modcache
+ default_cleanup_srcdir
+}
+
+sha512sums="
+0fb28014f4c50d2512eec2b767883b342f8fc6cd5661dd04bebfb75d9774f4face9402202e2e830c0ca9b831502fdeac1c00e874ea3b0e9188c8df54e353dc70 zrepl-0.6.1.tar.gz
+ae39a92de1bfd3f0e957b70d02fe05918426fab9203da99d9ee2ee81c173f67e3a55ae525126c4cb0966d0911d7a5bb4c0977915bc0bd11c9a1b607777d39286 zrepl.yml
+a6c77686e0189aec4e1ab281d6473c530f9b4371738aca392a6dd6599ed554af9e7d50d68221b4d575bdf3f607640892da34a96d53847d74bbfcf75a25b1836a zrepl.initd
+"
diff --git a/testing/zrepl/zrepl.initd b/testing/zrepl/zrepl.initd
new file mode 100644
index 00000000000..f31b07a510d
--- /dev/null
+++ b/testing/zrepl/zrepl.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name=$RC_SVCNAME
+cfgfile="/etc/$RC_SVCNAME/$RC_SVCNAME.yml"
+command="/usr/bin/zrepl"
+command_args=" --config /etc/zrepl/zrepl.yml daemon"
+pidfile="/run/$RC_SVCNAME/$RC_SVCNAME.pid"
+command_background="yes"
+
+start_pre() {
+ checkpath --directory --mode 0700 /run/$RC_SVCNAME
+}
diff --git a/testing/zrepl/zrepl.yml b/testing/zrepl/zrepl.yml
new file mode 100644
index 00000000000..05d211b696d
--- /dev/null
+++ b/testing/zrepl/zrepl.yml
@@ -0,0 +1,12 @@
+global:
+ logging:
+ - type: syslog
+ format: human
+ level: warn
+
+jobs:
+# - name: foo
+# type: bar
+
+# see /usr/share/zrepl/examples/
+# or https://zrepl.github.io/configuration/overview.html
diff --git a/testing/zsh-fast-syntax-highlighting/APKBUILD b/testing/zsh-fast-syntax-highlighting/APKBUILD
new file mode 100644
index 00000000000..d307f0f3b8b
--- /dev/null
+++ b/testing/zsh-fast-syntax-highlighting/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Matthias Ahouansou <matthias@ahouansou.cz>
+# Maintainer: Matthias Ahouansou <matthias@ahouansou.cz>
+pkgname=zsh-fast-syntax-highlighting
+pkgver=1.55_git20230705
+_gitrev=cf318e06a9b7c9f2219d78f41b46fa6e06011fd9
+pkgrel=0
+pkgdesc="Feature-rich syntax highlighting for ZSH"
+url="https://github.com/zdharma-continuum/fast-syntax-highlighting"
+arch="noarch"
+license="BSD-3-Clause"
+depends="zsh"
+#checkdepends="zunit"
+subpackages="$pkgname-doc"
+source="fast-syntax-highlighting-$_gitrev.tar.gz::https://github.com/zdharma-continuum/fast-syntax-highlighting/archive/$_gitrev.tar.gz"
+builddir="$srcdir/fast-syntax-highlighting-$_gitrev"
+options="!check" # zunit is not currently packaged
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/zsh/plugins
+ install -Dm 644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+ install -Dm 644 CHROMA_GUIDE.adoc -t "$pkgdir"/usr/share/doc/"$pkgname"/
+ install -Dm 644 THEME_GUIDE.md -t "$pkgdir"/usr/share/doc/"$pkgname"/
+
+ rm test tests images .github -r
+ rm .fast* .gitignore .zunit.yml
+ rm CHANGELOG.md CHROMA_GUIDE.adoc LICENSE README.md THEME_GUIDE.md
+
+ mkdir -p "$pkgdir"/usr/share/zsh/plugins/fast-syntax-highlighting
+ mv ./* "$pkgdir"/usr/share/zsh/plugins/fast-syntax-highlighting
+}
+
+sha512sums="
+805bf31b305c32cc2509a3cf28d4f49d94dcdf32dcd91dab9d2933be71d34c15b1b8a948dc48fe00642d8799fda41743d914dca0c13b75b5b13277e07750d22c fast-syntax-highlighting-cf318e06a9b7c9f2219d78f41b46fa6e06011fd9.tar.gz
+"
diff --git a/testing/zsh-fzf-tab/APKBUILD b/testing/zsh-fzf-tab/APKBUILD
new file mode 100644
index 00000000000..c05e30fdd5f
--- /dev/null
+++ b/testing/zsh-fzf-tab/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Maxim Karasev <begs@disroot.org>
+# Maintainer: Maxim Karasev <begs@disroot.org>
+pkgname=zsh-fzf-tab
+_name=fzf-tab
+pkgver=0_git20220331
+_commit=7e0eee64df6c7c81a57792674646b5feaf89f263
+pkgrel=0
+pkgdesc="replace zsh's default completion selection menu with fzf"
+options="!check" # No testsuite
+url="https://github.com/Aloxaf/fzf-tab"
+arch="noarch"
+license="MIT"
+depends="zsh"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Aloxaf/fzf-tab/archive/$_commit.tar.gz"
+builddir="$srcdir/$_name-$_commit"
+
+package() {
+ install -D $_name.zsh $_name.plugin.zsh -t \
+ "$pkgdir/usr/share/zsh/plugins/$_name"
+ cp -r lib "$pkgdir/usr/share/zsh/plugins/$_name"
+}
+
+sha512sums="
+a8867f79915b3e43b2ba7ddb9c891be7e08539035801c13bf33fd74523cd0f089fb0dbb702fdf1a8176cf8814c39a41c4a58c7c433becbbffe8757a63c0d1adc zsh-fzf-tab-0_git20220331.tar.gz
+"
diff --git a/testing/zsh-histdb-skim/APKBUILD b/testing/zsh-histdb-skim/APKBUILD
new file mode 100644
index 00000000000..6141ccf38f6
--- /dev/null
+++ b/testing/zsh-histdb-skim/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=zsh-histdb-skim
+pkgver=0.8.6
+pkgrel=0
+pkgdesc="A zsh histdb browser using skim"
+url="https://github.com/m42e/zsh-histdb-skim"
+# riscv64: textrels
+# s390x: fails to build nix crate
+arch="all !riscv64 !s390x"
+license="MIT"
+depends="zsh-histdb"
+makedepends="
+ cargo
+ cargo-auditable
+ sqlite-dev
+ "
+source="https://github.com/m42e/zsh-histdb-skim/archive/v$pkgver/zsh-histdb-skim-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --locked
+}
+
+build() {
+ cargo auditable build --frozen --release
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ local plugname="${pkgname#zsh-}"
+
+ install -D -m755 target/release/$pkgname -t "$pkgdir"/usr/bin/
+
+ install -D -m644 zsh-histdb-skim-vendored.zsh \
+ "$pkgdir"/usr/share/zsh/plugins/$plugname/$plugname.plugin.zsh
+}
+
+sha512sums="
+36e5ecc5b1b4c4fa04b07d54b1e319b5726b721cbaff480dfa2c5c78528b94d120dcc35f6878fd3c34e1f5afc3b77171cb9f3f67b7c21e093bff2a789579c90f zsh-histdb-skim-0.8.6.tar.gz
+"
diff --git a/testing/zsh-history-substring-search/APKBUILD b/testing/zsh-history-substring-search/APKBUILD
deleted file mode 100644
index 0f608644c91..00000000000
--- a/testing/zsh-history-substring-search/APKBUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=zsh-history-substring-search
-pkgver=1.0.2
-pkgrel=0
-pkgdesc="Zsh port of the Fish shell's history search"
-url="https://github.com/zsh-users/zsh-history-substring-search"
-arch="noarch"
-license="BSD-3-Clause"
-depends="zsh"
-source="$pkgname-$pkgver.tar.gz::https://github.com/zsh-users/zsh-history-substring-search/archive/v$pkgver.tar.gz"
-options="!check" # upstream does not provide tests
-
-package() {
- install -D -m 644 $pkgname.zsh \
- "$pkgdir"/usr/share/zsh/packages/$pkgname/$pkgname.zsh
-}
-
-sha512sums="9547cdd74f6bd5b102ca29b7b455cd4ce7450fe86864b5a149365de4c37d3da887edb403b195e80c142fe61861a3e4c063a5d8ba08ec0532b27a1207c80a023d zsh-history-substring-search-1.0.2.tar.gz"
diff --git a/testing/zsh-manydots-magic/APKBUILD b/testing/zsh-manydots-magic/APKBUILD
new file mode 100644
index 00000000000..2147ab50460
--- /dev/null
+++ b/testing/zsh-manydots-magic/APKBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
+pkgname=zsh-manydots-magic
+pkgver=0_git20230607
+_commit=4372de0718714046f0c7ef87b43fc0a598896af6
+pkgrel=1
+pkgdesc="zle tweak for emulating ...==../.. etc"
+url="https://github.com/knu/zsh-manydots-magic"
+arch="noarch"
+license="BSD-2-Clause"
+depends="zsh"
+source="$pkgname-$pkgver.tar.gz::https://github.com/knu/zsh-manydots-magic/archive/$_commit.tar.gz"
+builddir="$srcdir/$pkgname-$_commit"
+options="!check" # No testsuite
+
+package() {
+ install -Dm644 manydots-magic -t "$pkgdir/usr/share/zsh/site-functions/"
+}
+
+sha512sums="
+5221bfdd0893eed3fe7d3d2fbcd8e43c2eef484c7425dab846b986ae8b7068509c77a7412413a1e9644485ad0aae9683b4cd916d9669b2b62e65d8d53845be51 zsh-manydots-magic-0_git20230607.tar.gz
+"
diff --git a/testing/zutty/APKBUILD b/testing/zutty/APKBUILD
new file mode 100644
index 00000000000..74120ef9601
--- /dev/null
+++ b/testing/zutty/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Hakan Erduman <hakan@erduman.de>
+# Maintainer: Hakan Erduman <hakan@erduman.de>
+pkgname=zutty
+pkgver=0.14
+pkgrel=0
+pkgdesc="Zero-cost unicode teletype - a high-end terminal for low-end systems"
+url="https://tomscii.sig7.se/zutty"
+arch="all !x86"
+license="GPL-3.0-or-later"
+makedepends="
+ freetype-dev
+ libxmu-dev
+ mesa-dev
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/tomscii/zutty/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # only manual tests available
+
+build() {
+ python3 waf configure --prefix=/usr
+ python3 waf build
+}
+
+package() {
+ python3 waf install --destdir="$pkgdir"
+ # upstream does not handle localization so .desktop and icons are as-is
+ install -Dm664 "$srcdir/$pkgname-$pkgver"/icons/zutty.desktop "$pkgdir"/usr/share/applications/zutty.desktop
+ install -Dm664 "$srcdir/$pkgname-$pkgver"/icons/zutty.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/zutty.svg
+ for d in "$srcdir/$pkgname-$pkgver"/icons/zutty_*x*.png; do
+ dd=$(basename "$d" .png | cut -d'_' -f2)
+ install -Dm664 "$d" "$pkgdir"/usr/share/icons/hicolor/"$dd"/zutty.png
+ done
+ # upstream has no man-page, just org-mode ASCII text
+}
+
+sha512sums="
+d73894feefa1fb58c76aa5f9d68a47b9871ab8d02eb5dd2575769c4f082a65cb9df2bdb2478e5aa54d121eb19a16269f169e79d72f0df779760520f2d501c086 zutty-0.14.tar.gz
+"
diff --git a/testing/zycore/APKBUILD b/testing/zycore/APKBUILD
new file mode 100644
index 00000000000..797044f016a
--- /dev/null
+++ b/testing/zycore/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Michael M <mic@hael.xyz>
+# Maintainer: Michael M <mic@hael.xyz>
+pkgname=zycore
+pkgver=1.5.0
+pkgrel=0
+pkgdesc="Independent types for Zyantific projects (development files)"
+url="https://github.com/zyantific/zycore-c"
+arch="x86 x86_64 aarch64 armhf armv7 ppc64le riscv64"
+license="MIT"
+makedepends="cmake samurai doxygen"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/zyantific/zycore-c/archive/v$pkgver/zycore-c-$pkgver.tar.gz"
+builddir="$srcdir/zycore-c-$pkgver"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DZYCORE_BUILD_SHARED_LIB=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+f57af4e5c6f919299e673ff4afd19a7e3cc01acaf5cde73db47063eb30881487fa33d2fd5707a3e55a8cd8df4bb4b668bc7273b8b8b5eebea1e78c1c36f715b2 zycore-1.5.0.tar.gz
+"
diff --git a/testing/zydis/APKBUILD b/testing/zydis/APKBUILD
new file mode 100644
index 00000000000..de687bade6e
--- /dev/null
+++ b/testing/zydis/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Michael M <mic@hael.xyz>
+# Maintainer: Michael M <mic@hael.xyz>
+pkgname=zydis
+pkgver=4.1.0
+pkgrel=0
+pkgdesc="Fast and lightweight x86/x86-64 disassembler and code generation library"
+url="https://zydis.re"
+arch="x86 x86_64 aarch64 armhf armv7"
+license="MIT"
+depends_dev="zycore-dev"
+makedepends="cmake samurai doxygen zycore-dev"
+checkdepends="python3"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/zyantific/zydis/archive/v$pkgver/zydis-$pkgver.tar.gz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DZYDIS_BUILD_SHARED_LIB=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ -DZYAN_SYSTEM_ZYCORE=ON \
+ -DPACKAGE_PREFIX_DIR=/usr \
+ -DZYDIS_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+e07add4d43768ded02a238911fde6e74d2391abf8df282f774fca1a8c3fca3e97b03e90e0f3c7c0f3c75485fb29c0be4071d5e5b2e23dd5b8b1a864e3b713fbc zydis-4.1.0.tar.gz
+"